summaryrefslogtreecommitdiff
path: root/Modules
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2015-09-29 22:12:29 +0300
committerSerhiy Storchaka <storchaka@gmail.com>2015-09-29 22:12:29 +0300
commitbe22b93c7571e1c1e14a908ef43f8ce5a938c761 (patch)
treec9f7a57b7d829af4c0ed23637e3d2c9fcc228669 /Modules
parentb145d4b48f27cfe2391d901639817052c0858763 (diff)
parent2a72dd76c1d646d38d50623fa61b1b1028cae87b (diff)
downloadcpython-be22b93c7571e1c1e14a908ef43f8ce5a938c761.tar.gz
Issue #25262. Added support for BINBYTES8 opcode in Python implementation of
unpickler. Highest 32 bits of 64-bit size for BINUNICODE8 and BINBYTES8 opcodes no longer silently ignored on 32-bit platforms in C implementation.
Diffstat (limited to 'Modules')
-rw-r--r--Modules/README2
-rw-r--r--Modules/Setup.config.in2
-rw-r--r--Modules/Setup.dist2
-rw-r--r--Modules/_bz2module.c263
-rw-r--r--Modules/_codecsmodule.c1270
-rw-r--r--Modules/_collectionsmodule.c699
-rw-r--r--Modules/_cryptmodule.c41
-rw-r--r--Modules/_csv.c85
-rw-r--r--Modules/_ctypes/_ctypes.c7
-rw-r--r--Modules/_ctypes/callproc.c2
-rw-r--r--Modules/_ctypes/cfield.c24
-rw-r--r--Modules/_ctypes/libffi_msvc/ffi.c37
-rw-r--r--Modules/_cursesmodule.c85
-rw-r--r--Modules/_datetimemodule.c98
-rw-r--r--Modules/_dbmmodule.c203
-rw-r--r--Modules/_decimal/_decimal.c4
-rw-r--r--Modules/_decimal/docstrings.h860
-rw-r--r--Modules/_decimal/libmpdec/mpdecimal.c1
-rw-r--r--Modules/_decimal/tests/deccheck.py7
-rw-r--r--Modules/_elementtree.c1030
-rw-r--r--Modules/_freeze_importlib.c144
-rw-r--r--Modules/_functoolsmodule.c626
-rw-r--r--Modules/_gdbmmodule.c306
-rw-r--r--Modules/_hashopenssl.c34
-rw-r--r--Modules/_heapqmodule.c432
-rw-r--r--Modules/_io/_iomodule.c306
-rw-r--r--Modules/_io/_iomodule.h2
-rw-r--r--Modules/_io/bufferedio.c1023
-rw-r--r--Modules/_io/bytesio.c661
-rw-r--r--Modules/_io/clinic/_iomodule.c.h159
-rw-r--r--Modules/_io/clinic/bufferedio.c.h454
-rw-r--r--Modules/_io/clinic/bytesio.c.h422
-rw-r--r--Modules/_io/clinic/fileio.c.h367
-rw-r--r--Modules/_io/clinic/iobase.c.h279
-rw-r--r--Modules/_io/clinic/stringio.c.h286
-rw-r--r--Modules/_io/clinic/textio.c.h456
-rw-r--r--Modules/_io/fileio.c650
-rw-r--r--Modules/_io/iobase.c264
-rw-r--r--Modules/_io/stringio.c269
-rw-r--r--Modules/_io/textio.c539
-rw-r--r--Modules/_json.c170
-rw-r--r--Modules/_lsprof.c11
-rw-r--r--Modules/_lzmamodule.c226
-rw-r--r--Modules/_opcode.c37
-rw-r--r--Modules/_operator.c285
-rw-r--r--Modules/_pickle.c294
-rw-r--r--Modules/_posixsubprocess.c23
-rw-r--r--Modules/_randommodule.c138
-rw-r--r--Modules/_scproxy.c2
-rw-r--r--Modules/_sqlite/connection.c3
-rw-r--r--Modules/_sqlite/connection.h2
-rw-r--r--Modules/_sqlite/cursor.c6
-rw-r--r--Modules/_sqlite/microprotocols.h2
-rw-r--r--Modules/_sqlite/row.c5
-rw-r--r--Modules/_sre.c1053
-rw-r--r--Modules/_ssl.c1793
-rw-r--r--Modules/_stat.c36
-rw-r--r--Modules/_struct.c14
-rw-r--r--Modules/_testbuffer.c61
-rw-r--r--Modules/_testcapimodule.c552
-rw-r--r--Modules/_testembed.c140
-rw-r--r--Modules/_testmultiphase.c594
-rw-r--r--Modules/_threadmodule.c155
-rw-r--r--Modules/_tkinter.c1085
-rw-r--r--Modules/_tracemalloc.c86
-rw-r--r--Modules/_weakref.c31
-rw-r--r--Modules/_winapi.c991
-rw-r--r--Modules/arraymodule.c768
-rw-r--r--Modules/atexitmodule.c10
-rw-r--r--Modules/audioop.c69
-rw-r--r--Modules/binascii.c39
-rw-r--r--Modules/cjkcodecs/_codecs_iso2022.c7
-rw-r--r--Modules/cjkcodecs/cjkcodecs.h4
-rw-r--r--Modules/cjkcodecs/clinic/multibytecodec.c.h320
-rw-r--r--Modules/cjkcodecs/multibytecodec.c345
-rw-r--r--Modules/clinic/_bz2module.c.h48
-rw-r--r--Modules/clinic/_codecsmodule.c.h1396
-rw-r--r--Modules/clinic/_cryptmodule.c.h37
-rw-r--r--Modules/clinic/_cursesmodule.c.h71
-rw-r--r--Modules/clinic/_datetimemodule.c.h37
-rw-r--r--Modules/clinic/_dbmmodule.c.h141
-rw-r--r--Modules/clinic/_elementtree.c.h679
-rw-r--r--Modules/clinic/_gdbmmodule.c.h253
-rw-r--r--Modules/clinic/_lzmamodule.c.h73
-rw-r--r--Modules/clinic/_opcode.c.h36
-rw-r--r--Modules/clinic/_pickle.c.h43
-rw-r--r--Modules/clinic/_sre.c.h693
-rw-r--r--Modules/clinic/_ssl.c.h1105
-rw-r--r--Modules/clinic/_tkinter.c.h624
-rw-r--r--Modules/clinic/_weakref.c.h31
-rw-r--r--Modules/clinic/_winapi.c.h854
-rw-r--r--Modules/clinic/arraymodule.c.h499
-rw-r--r--Modules/clinic/audioop.c.h120
-rw-r--r--Modules/clinic/binascii.c.h117
-rw-r--r--Modules/clinic/cmathmodule.c.h860
-rw-r--r--Modules/clinic/fcntlmodule.c.h185
-rw-r--r--Modules/clinic/grpmodule.c.h85
-rw-r--r--Modules/clinic/md5module.c.h95
-rw-r--r--Modules/clinic/posixmodule.c.h5791
-rw-r--r--Modules/clinic/pwdmodule.c.h71
-rw-r--r--Modules/clinic/pyexpat.c.h284
-rw-r--r--Modules/clinic/sha1module.c.h95
-rw-r--r--Modules/clinic/sha256module.c.h123
-rw-r--r--Modules/clinic/sha512module.c.h171
-rw-r--r--Modules/clinic/signalmodule.c.h432
-rw-r--r--Modules/clinic/spwdmodule.c.h68
-rw-r--r--Modules/clinic/unicodedata.c.h368
-rw-r--r--Modules/clinic/zlibmodule.c.h58
-rw-r--r--Modules/cmathmodule.c558
-rw-r--r--Modules/config.c.in2
-rw-r--r--Modules/faulthandler.c216
-rw-r--r--Modules/fcntlmodule.c443
-rw-r--r--Modules/gcmodule.c82
-rw-r--r--Modules/getpath.c38
-rw-r--r--Modules/grpmodule.c78
-rw-r--r--Modules/itertoolsmodule.c2
-rw-r--r--Modules/ld_so_aix.in6
-rw-r--r--Modules/main.c39
-rwxr-xr-xModules/makesetup2
-rw-r--r--Modules/mathmodule.c160
-rw-r--r--Modules/md5module.c123
-rw-r--r--Modules/mmapmodule.c62
-rw-r--r--Modules/nismodule.c4
-rw-r--r--Modules/ossaudiodev.c92
-rw-r--r--Modules/parsermodule.c375
-rw-r--r--Modules/posixmodule.c8213
-rw-r--r--Modules/pwdmodule.c71
-rw-r--r--Modules/pyexpat.c383
-rw-r--r--Modules/python.c77
-rw-r--r--Modules/readline.c41
-rw-r--r--Modules/selectmodule.c465
-rw-r--r--Modules/sha1module.c114
-rw-r--r--Modules/sha256module.c146
-rw-r--r--Modules/sha512module.c156
-rw-r--r--Modules/signalmodule.c744
-rw-r--r--Modules/socketmodule.c1319
-rw-r--r--Modules/socketmodule.h9
-rw-r--r--Modules/spwdmodule.c48
-rw-r--r--Modules/sre.h9
-rw-r--r--Modules/sre_constants.h3
-rw-r--r--Modules/sre_lib.h28
-rw-r--r--Modules/symtablemodule.c3
-rw-r--r--Modules/timemodule.c412
-rw-r--r--Modules/tkappinit.c19
-rw-r--r--Modules/tkinter.h8
-rw-r--r--Modules/unicodedata.c463
-rw-r--r--Modules/unicodedata_db.h7130
-rw-r--r--Modules/unicodename_db.h42270
-rw-r--r--Modules/winreparse.h53
-rw-r--r--Modules/xxlimited.c83
-rw-r--r--Modules/xxmodule.c54
-rw-r--r--Modules/xxsubtype.c61
-rw-r--r--Modules/zipimport.c32
-rw-r--r--Modules/zlibmodule.c18
154 files changed, 65011 insertions, 37004 deletions
diff --git a/Modules/README b/Modules/README
new file mode 100644
index 0000000000..9b79f53889
--- /dev/null
+++ b/Modules/README
@@ -0,0 +1,2 @@
+Source files for standard library extension modules,
+and former extension modules that are now builtin modules.
diff --git a/Modules/Setup.config.in b/Modules/Setup.config.in
index 5ac2404bf8..adac030b6a 100644
--- a/Modules/Setup.config.in
+++ b/Modules/Setup.config.in
@@ -7,7 +7,7 @@
@USE_THREAD_MODULE@_thread _threadmodule.c
# The signal module
-@USE_SIGNAL_MODULE@signal signalmodule.c
+@USE_SIGNAL_MODULE@_signal signalmodule.c
# The rest of the modules previously listed in this file are built
# by the setup.py script in Python 2.1 and later.
diff --git a/Modules/Setup.dist b/Modules/Setup.dist
index b60b5946f9..06ba6adf24 100644
--- a/Modules/Setup.dist
+++ b/Modules/Setup.dist
@@ -118,6 +118,7 @@ _collections _collectionsmodule.c # Container types
itertools itertoolsmodule.c # Functions creating iterators for efficient looping
atexit atexitmodule.c # Register functions to be run at interpreter-shutdown
_stat _stat.c # stat.h interface
+time timemodule.c # -lm # time operations and variables
# access to ISO C locale support
_locale _localemodule.c # -lintl
@@ -171,7 +172,6 @@ _symtable symtablemodule.c
#cmath cmathmodule.c _math.c # -lm # complex math library functions
#math mathmodule.c _math.c # -lm # math library functions, e.g. sin()
#_struct _struct.c # binary structure packing/unpacking
-#time timemodule.c # -lm # time operations and variables
#_weakref _weakref.c # basic weak reference support
#_testcapi _testcapimodule.c # Python C API test module
#_random _randommodule.c # Random number generator
diff --git a/Modules/_bz2module.c b/Modules/_bz2module.c
index e652f4dfcd..7dfd3072dc 100644
--- a/Modules/_bz2module.c
+++ b/Modules/_bz2module.c
@@ -51,6 +51,14 @@ typedef struct {
bz_stream bzs;
char eof; /* T_BOOL expects a char */
PyObject *unused_data;
+ char needs_input;
+ char *input_buffer;
+ size_t input_buffer_size;
+
+ /* bzs->avail_in is only 32 bit, so we store the true length
+ separately. Conversion and looping is encapsulated in
+ decompress_buf() */
+ size_t bzs_avail_in_real;
#ifdef WITH_THREAD
PyThread_type_lock lock;
#endif
@@ -111,19 +119,23 @@ catch_bz2_error(int bzerror)
}
#if BUFSIZ < 8192
-#define SMALLCHUNK 8192
+#define INITIAL_BUFFER_SIZE 8192
#else
-#define SMALLCHUNK BUFSIZ
+#define INITIAL_BUFFER_SIZE BUFSIZ
#endif
static int
-grow_buffer(PyObject **buf)
+grow_buffer(PyObject **buf, Py_ssize_t max_length)
{
/* Expand the buffer by an amount proportional to the current size,
giving us amortized linear-time behavior. Use a less-than-double
growth factor to avoid excessive allocation. */
size_t size = PyBytes_GET_SIZE(*buf);
size_t new_size = size + (size >> 3) + 6;
+
+ if (max_length > 0 && new_size > (size_t) max_length)
+ new_size = (size_t) max_length;
+
if (new_size > size) {
return _PyBytes_Resize(buf, new_size);
} else { /* overflow */
@@ -142,14 +154,14 @@ compress(BZ2Compressor *c, char *data, size_t len, int action)
size_t data_size = 0;
PyObject *result;
- result = PyBytes_FromStringAndSize(NULL, SMALLCHUNK);
+ result = PyBytes_FromStringAndSize(NULL, INITIAL_BUFFER_SIZE);
if (result == NULL)
return NULL;
c->bzs.next_in = data;
c->bzs.avail_in = 0;
c->bzs.next_out = PyBytes_AS_STRING(result);
- c->bzs.avail_out = SMALLCHUNK;
+ c->bzs.avail_out = INITIAL_BUFFER_SIZE;
for (;;) {
char *this_out;
int bzerror;
@@ -168,7 +180,7 @@ compress(BZ2Compressor *c, char *data, size_t len, int action)
if (c->bzs.avail_out == 0) {
size_t buffer_left = PyBytes_GET_SIZE(result) - data_size;
if (buffer_left == 0) {
- if (grow_buffer(&result) < 0)
+ if (grow_buffer(&result, -1) < 0)
goto error;
c->bzs.next_out = PyBytes_AS_STRING(result) + data_size;
buffer_left = PyBytes_GET_SIZE(result) - data_size;
@@ -188,7 +200,7 @@ compress(BZ2Compressor *c, char *data, size_t len, int action)
if (action == BZ_FINISH && bzerror == BZ_STREAM_END)
break;
}
- if (data_size != PyBytes_GET_SIZE(result))
+ if (data_size != (size_t)PyBytes_GET_SIZE(result))
if (_PyBytes_Resize(&result, data_size) < 0)
goto error;
return result;
@@ -199,12 +211,11 @@ error:
}
/*[clinic input]
-output preset file
module _bz2
class _bz2.BZ2Compressor "BZ2Compressor *" "&BZ2Compressor_Type"
class _bz2.BZ2Decompressor "BZ2Decompressor *" "&BZ2Decompressor_Type"
[clinic start generated code]*/
-/*[clinic end generated code: output=da39a3ee5e6b4b0d input=e3b139924f5e18cc]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=dc7d7992a79f9cb7]*/
#include "clinic/_bz2module.c.h"
@@ -402,64 +413,176 @@ static PyTypeObject BZ2Compressor_Type = {
/* BZ2Decompressor class. */
-static PyObject *
-decompress(BZ2Decompressor *d, char *data, size_t len)
+/* Decompress data of length d->bzs_avail_in_real in d->bzs.next_in. The output
+ buffer is allocated dynamically and returned. At most max_length bytes are
+ returned, so some of the input may not be consumed. d->bzs.next_in and
+ d->bzs_avail_in_real are updated to reflect the consumed input. */
+static PyObject*
+decompress_buf(BZ2Decompressor *d, Py_ssize_t max_length)
{
- size_t data_size = 0;
+ /* data_size is strictly positive, but because we repeatedly have to
+ compare against max_length and PyBytes_GET_SIZE we declare it as
+ signed */
+ Py_ssize_t data_size = 0;
PyObject *result;
+ bz_stream *bzs = &d->bzs;
- result = PyBytes_FromStringAndSize(NULL, SMALLCHUNK);
+ if (max_length < 0 || max_length >= INITIAL_BUFFER_SIZE)
+ result = PyBytes_FromStringAndSize(NULL, INITIAL_BUFFER_SIZE);
+ else
+ result = PyBytes_FromStringAndSize(NULL, max_length);
if (result == NULL)
- return result;
- d->bzs.next_in = data;
- /* On a 64-bit system, len might not fit in avail_in (an unsigned int).
- Do decompression in chunks of no more than UINT_MAX bytes each. */
- d->bzs.avail_in = (unsigned int)Py_MIN(len, UINT_MAX);
- len -= d->bzs.avail_in;
- d->bzs.next_out = PyBytes_AS_STRING(result);
- d->bzs.avail_out = SMALLCHUNK;
+ return NULL;
+
+ bzs->next_out = PyBytes_AS_STRING(result);
for (;;) {
- char *this_out;
- int bzerror;
+ int bzret;
+ size_t avail;
+
+ /* On a 64-bit system, buffer length might not fit in avail_out, so we
+ do decompression in chunks of no more than UINT_MAX bytes
+ each. Note that the expression for `avail` is guaranteed to be
+ positive, so the cast is safe. */
+ avail = (size_t) (PyBytes_GET_SIZE(result) - data_size);
+ bzs->avail_out = (unsigned int)Py_MIN(avail, UINT_MAX);
+ bzs->avail_in = (unsigned int)Py_MIN(d->bzs_avail_in_real, UINT_MAX);
+ d->bzs_avail_in_real -= bzs->avail_in;
Py_BEGIN_ALLOW_THREADS
- this_out = d->bzs.next_out;
- bzerror = BZ2_bzDecompress(&d->bzs);
- data_size += d->bzs.next_out - this_out;
+ bzret = BZ2_bzDecompress(bzs);
+ data_size = bzs->next_out - PyBytes_AS_STRING(result);
+ d->bzs_avail_in_real += bzs->avail_in;
Py_END_ALLOW_THREADS
- if (catch_bz2_error(bzerror))
+ if (catch_bz2_error(bzret))
goto error;
- if (bzerror == BZ_STREAM_END) {
+ if (bzret == BZ_STREAM_END) {
d->eof = 1;
- len += d->bzs.avail_in;
- if (len > 0) { /* Save leftover input to unused_data */
- Py_CLEAR(d->unused_data);
- d->unused_data = PyBytes_FromStringAndSize(d->bzs.next_in, len);
- if (d->unused_data == NULL)
- goto error;
- }
break;
- }
- if (d->bzs.avail_in == 0) {
- if (len == 0)
+ } else if (d->bzs_avail_in_real == 0) {
+ break;
+ } else if (bzs->avail_out == 0) {
+ if (data_size == max_length)
break;
- d->bzs.avail_in = (unsigned int)Py_MIN(len, UINT_MAX);
- len -= d->bzs.avail_in;
+ if (data_size == PyBytes_GET_SIZE(result) &&
+ grow_buffer(&result, max_length) == -1)
+ goto error;
+ bzs->next_out = PyBytes_AS_STRING(result) + data_size;
}
- if (d->bzs.avail_out == 0) {
- size_t buffer_left = PyBytes_GET_SIZE(result) - data_size;
- if (buffer_left == 0) {
- if (grow_buffer(&result) < 0)
+ }
+ if (data_size != PyBytes_GET_SIZE(result))
+ if (_PyBytes_Resize(&result, data_size) == -1)
+ goto error;
+
+ return result;
+
+error:
+ Py_XDECREF(result);
+ return NULL;
+}
+
+
+static PyObject *
+decompress(BZ2Decompressor *d, char *data, size_t len, Py_ssize_t max_length)
+{
+ char input_buffer_in_use;
+ PyObject *result;
+ bz_stream *bzs = &d->bzs;
+
+ /* Prepend unconsumed input if necessary */
+ if (bzs->next_in != NULL) {
+ size_t avail_now, avail_total;
+
+ /* Number of bytes we can append to input buffer */
+ avail_now = (d->input_buffer + d->input_buffer_size)
+ - (bzs->next_in + d->bzs_avail_in_real);
+
+ /* Number of bytes we can append if we move existing
+ contents to beginning of buffer (overwriting
+ consumed input) */
+ avail_total = d->input_buffer_size - d->bzs_avail_in_real;
+
+ if (avail_total < len) {
+ size_t offset = bzs->next_in - d->input_buffer;
+ char *tmp;
+ size_t new_size = d->input_buffer_size + len - avail_now;
+
+ /* Assign to temporary variable first, so we don't
+ lose address of allocated buffer if realloc fails */
+ tmp = PyMem_Realloc(d->input_buffer, new_size);
+ if (tmp == NULL) {
+ PyErr_SetNone(PyExc_MemoryError);
+ return NULL;
+ }
+ d->input_buffer = tmp;
+ d->input_buffer_size = new_size;
+
+ bzs->next_in = d->input_buffer + offset;
+ }
+ else if (avail_now < len) {
+ memmove(d->input_buffer, bzs->next_in,
+ d->bzs_avail_in_real);
+ bzs->next_in = d->input_buffer;
+ }
+ memcpy((void*)(bzs->next_in + d->bzs_avail_in_real), data, len);
+ d->bzs_avail_in_real += len;
+ input_buffer_in_use = 1;
+ }
+ else {
+ bzs->next_in = data;
+ d->bzs_avail_in_real = len;
+ input_buffer_in_use = 0;
+ }
+
+ result = decompress_buf(d, max_length);
+ if(result == NULL)
+ return NULL;
+
+ if (d->eof) {
+ d->needs_input = 0;
+ if (d->bzs_avail_in_real > 0) {
+ Py_CLEAR(d->unused_data);
+ d->unused_data = PyBytes_FromStringAndSize(
+ bzs->next_in, d->bzs_avail_in_real);
+ if (d->unused_data == NULL)
+ goto error;
+ }
+ }
+ else if (d->bzs_avail_in_real == 0) {
+ bzs->next_in = NULL;
+ d->needs_input = 1;
+ }
+ else {
+ d->needs_input = 0;
+
+ /* If we did not use the input buffer, we now have
+ to copy the tail from the caller's buffer into the
+ input buffer */
+ if (!input_buffer_in_use) {
+
+ /* Discard buffer if it's too small
+ (resizing it may needlessly copy the current contents) */
+ if (d->input_buffer != NULL &&
+ d->input_buffer_size < d->bzs_avail_in_real) {
+ PyMem_Free(d->input_buffer);
+ d->input_buffer = NULL;
+ }
+
+ /* Allocate if necessary */
+ if (d->input_buffer == NULL) {
+ d->input_buffer = PyMem_Malloc(d->bzs_avail_in_real);
+ if (d->input_buffer == NULL) {
+ PyErr_SetNone(PyExc_MemoryError);
goto error;
- d->bzs.next_out = PyBytes_AS_STRING(result) + data_size;
- buffer_left = PyBytes_GET_SIZE(result) - data_size;
+ }
+ d->input_buffer_size = d->bzs_avail_in_real;
}
- d->bzs.avail_out = (unsigned int)Py_MIN(buffer_left, UINT_MAX);
+
+ /* Copy tail */
+ memcpy(d->input_buffer, bzs->next_in, d->bzs_avail_in_real);
+ bzs->next_in = d->input_buffer;
}
}
- if (data_size != PyBytes_GET_SIZE(result))
- if (_PyBytes_Resize(&result, data_size) < 0)
- goto error;
+
return result;
error:
@@ -470,21 +593,30 @@ error:
/*[clinic input]
_bz2.BZ2Decompressor.decompress
+ self: self(type="BZ2Decompressor *")
data: Py_buffer
- /
+ max_length: Py_ssize_t=-1
+
+Decompress *data*, returning uncompressed data as bytes.
-Provide data to the decompressor object.
+If *max_length* is nonnegative, returns at most *max_length* bytes of
+decompressed data. If this limit is reached and further output can be
+produced, *self.needs_input* will be set to ``False``. In this case, the next
+call to *decompress()* may provide *data* as b'' to obtain more of the output.
-Returns a chunk of decompressed data if possible, or b'' otherwise.
+If all of the input data was decompressed and returned (either because this
+was less than *max_length* bytes, or because *max_length* was negative),
+*self.needs_input* will be set to True.
-Attempting to decompress data after the end of stream is reached
-raises an EOFError. Any data found after the end of the stream
-is ignored and saved in the unused_data attribute.
+Attempting to decompress data after the end of stream is reached raises an
+EOFError. Any data found after the end of the stream is ignored and saved in
+the unused_data attribute.
[clinic start generated code]*/
static PyObject *
-_bz2_BZ2Decompressor_decompress_impl(BZ2Decompressor *self, Py_buffer *data)
-/*[clinic end generated code: output=086e4b99e60cb3f6 input=616c2a6db5269961]*/
+_bz2_BZ2Decompressor_decompress_impl(BZ2Decompressor *self, Py_buffer *data,
+ Py_ssize_t max_length)
+/*[clinic end generated code: output=23e41045deb240a3 input=9558b424c8b00516]*/
{
PyObject *result = NULL;
@@ -492,7 +624,7 @@ _bz2_BZ2Decompressor_decompress_impl(BZ2Decompressor *self, Py_buffer *data)
if (self->eof)
PyErr_SetString(PyExc_EOFError, "End of stream already reached");
else
- result = decompress(self, data->buf, data->len);
+ result = decompress(self, data->buf, data->len, max_length);
RELEASE_LOCK(self);
return result;
}
@@ -527,7 +659,11 @@ _bz2_BZ2Decompressor___init___impl(BZ2Decompressor *self)
}
#endif
- self->unused_data = PyBytes_FromStringAndSize("", 0);
+ self->needs_input = 1;
+ self->bzs_avail_in_real = 0;
+ self->input_buffer = NULL;
+ self->input_buffer_size = 0;
+ self->unused_data = PyBytes_FromStringAndSize(NULL, 0);
if (self->unused_data == NULL)
goto error;
@@ -549,6 +685,8 @@ error:
static void
BZ2Decompressor_dealloc(BZ2Decompressor *self)
{
+ if(self->input_buffer != NULL)
+ PyMem_Free(self->input_buffer);
BZ2_bzDecompressEnd(&self->bzs);
Py_CLEAR(self->unused_data);
#ifdef WITH_THREAD
@@ -570,11 +708,16 @@ PyDoc_STRVAR(BZ2Decompressor_eof__doc__,
PyDoc_STRVAR(BZ2Decompressor_unused_data__doc__,
"Data found after the end of the compressed stream.");
+PyDoc_STRVAR(BZ2Decompressor_needs_input_doc,
+"True if more input is needed before more decompressed data can be produced.");
+
static PyMemberDef BZ2Decompressor_members[] = {
{"eof", T_BOOL, offsetof(BZ2Decompressor, eof),
READONLY, BZ2Decompressor_eof__doc__},
{"unused_data", T_OBJECT_EX, offsetof(BZ2Decompressor, unused_data),
READONLY, BZ2Decompressor_unused_data__doc__},
+ {"needs_input", T_BOOL, offsetof(BZ2Decompressor, needs_input), READONLY,
+ BZ2Decompressor_needs_input_doc},
{NULL}
};
diff --git a/Modules/_codecsmodule.c b/Modules/_codecsmodule.c
index 52f34793c4..7575773f45 100644
--- a/Modules/_codecsmodule.c
+++ b/Modules/_codecsmodule.c
@@ -47,19 +47,25 @@ module _codecs
[clinic start generated code]*/
/*[clinic end generated code: output=da39a3ee5e6b4b0d input=e1390e3da3cb9deb]*/
+#include "clinic/_codecsmodule.c.h"
/* --- Registry ----------------------------------------------------------- */
-PyDoc_STRVAR(register__doc__,
-"register(search_function)\n\
-\n\
-Register a codec search function. Search functions are expected to take\n\
-one argument, the encoding name in all lower case letters, and either\n\
-return None, or a tuple of functions (encoder, decoder, stream_reader,\n\
-stream_writer) (or a CodecInfo object).");
+/*[clinic input]
+_codecs.register
+ search_function: object
+ /
-static
-PyObject *codec_register(PyObject *self, PyObject *search_function)
+Register a codec search function.
+
+Search functions are expected to take one argument, the encoding name in
+all lower case letters, and either return None, or a tuple of functions
+(encoder, decoder, stream_reader, stream_writer) (or a CodecInfo object).
+[clinic start generated code]*/
+
+static PyObject *
+_codecs_register(PyModuleDef *module, PyObject *search_function)
+/*[clinic end generated code: output=d17608b6ad380eb8 input=369578467955cae4]*/
{
if (PyCodec_Register(search_function))
return NULL;
@@ -67,75 +73,73 @@ PyObject *codec_register(PyObject *self, PyObject *search_function)
Py_RETURN_NONE;
}
-PyDoc_STRVAR(lookup__doc__,
-"lookup(encoding) -> CodecInfo\n\
-\n\
-Looks up a codec tuple in the Python codec registry and returns\n\
-a CodecInfo object.");
-
-static
-PyObject *codec_lookup(PyObject *self, PyObject *args)
-{
- char *encoding;
+/*[clinic input]
+_codecs.lookup
+ encoding: str
+ /
- if (!PyArg_ParseTuple(args, "s:lookup", &encoding))
- return NULL;
+Looks up a codec tuple in the Python codec registry and returns a CodecInfo object.
+[clinic start generated code]*/
+static PyObject *
+_codecs_lookup_impl(PyModuleDef *module, const char *encoding)
+/*[clinic end generated code: output=798e41aff0c04ef6 input=3c572c0db3febe9c]*/
+{
return _PyCodec_Lookup(encoding);
}
-PyDoc_STRVAR(encode__doc__,
-"encode(obj, [encoding[,errors]]) -> object\n\
-\n\
-Encodes obj using the codec registered for encoding. encoding defaults\n\
-to the default encoding. errors may be given to set a different error\n\
-handling scheme. Default is 'strict' meaning that encoding errors raise\n\
-a ValueError. Other possible values are 'ignore', 'replace' and\n\
-'xmlcharrefreplace' as well as any other name registered with\n\
-codecs.register_error that can handle ValueErrors.");
+/*[clinic input]
+_codecs.encode
+ obj: object
+ encoding: str(c_default="NULL") = "utf-8"
+ errors: str(c_default="NULL") = "strict"
+
+Encodes obj using the codec registered for encoding.
+
+The default encoding is 'utf-8'. errors may be given to set a
+different error handling scheme. Default is 'strict' meaning that encoding
+errors raise a ValueError. Other possible values are 'ignore', 'replace'
+and 'backslashreplace' as well as any other name registered with
+codecs.register_error that can handle ValueErrors.
+[clinic start generated code]*/
static PyObject *
-codec_encode(PyObject *self, PyObject *args)
+_codecs_encode_impl(PyModuleDef *module, PyObject *obj, const char *encoding,
+ const char *errors)
+/*[clinic end generated code: output=5c073f62249c8d7c input=cd5b685040ff61f0]*/
{
- const char *encoding = NULL;
- const char *errors = NULL;
- PyObject *v;
-
- if (!PyArg_ParseTuple(args, "O|ss:encode", &v, &encoding, &errors))
- return NULL;
-
if (encoding == NULL)
encoding = PyUnicode_GetDefaultEncoding();
/* Encode via the codec registry */
- return PyCodec_Encode(v, encoding, errors);
+ return PyCodec_Encode(obj, encoding, errors);
}
-PyDoc_STRVAR(decode__doc__,
-"decode(obj, [encoding[,errors]]) -> object\n\
-\n\
-Decodes obj using the codec registered for encoding. encoding defaults\n\
-to the default encoding. errors may be given to set a different error\n\
-handling scheme. Default is 'strict' meaning that encoding errors raise\n\
-a ValueError. Other possible values are 'ignore' and 'replace'\n\
-as well as any other name registered with codecs.register_error that is\n\
-able to handle ValueErrors.");
+/*[clinic input]
+_codecs.decode
+ obj: object
+ encoding: str(c_default="NULL") = "utf-8"
+ errors: str(c_default="NULL") = "strict"
+
+Decodes obj using the codec registered for encoding.
+
+Default encoding is 'utf-8'. errors may be given to set a
+different error handling scheme. Default is 'strict' meaning that encoding
+errors raise a ValueError. Other possible values are 'ignore', 'replace'
+and 'backslashreplace' as well as any other name registered with
+codecs.register_error that can handle ValueErrors.
+[clinic start generated code]*/
static PyObject *
-codec_decode(PyObject *self, PyObject *args)
+_codecs_decode_impl(PyModuleDef *module, PyObject *obj, const char *encoding,
+ const char *errors)
+/*[clinic end generated code: output=c81cbf6189a7f878 input=7702c0cc2fa1add6]*/
{
- const char *encoding = NULL;
- const char *errors = NULL;
- PyObject *v;
-
- if (!PyArg_ParseTuple(args, "O|ss:decode", &v, &encoding, &errors))
- return NULL;
-
if (encoding == NULL)
encoding = PyUnicode_GetDefaultEncoding();
/* Decode via the codec registry */
- return PyCodec_Decode(v, encoding, errors);
+ return PyCodec_Decode(obj, encoding, errors);
}
/* --- Helpers ------------------------------------------------------------ */
@@ -149,37 +153,9 @@ _codecs._forget_codec
Purge the named codec from the internal codec lookup cache
[clinic start generated code]*/
-PyDoc_STRVAR(_codecs__forget_codec__doc__,
-"_forget_codec($module, encoding, /)\n"
-"--\n"
-"\n"
-"Purge the named codec from the internal codec lookup cache");
-
-#define _CODECS__FORGET_CODEC_METHODDEF \
- {"_forget_codec", (PyCFunction)_codecs__forget_codec, METH_VARARGS, _codecs__forget_codec__doc__},
-
-static PyObject *
-_codecs__forget_codec_impl(PyModuleDef *module, const char *encoding);
-
-static PyObject *
-_codecs__forget_codec(PyModuleDef *module, PyObject *args)
-{
- PyObject *return_value = NULL;
- const char *encoding;
-
- if (!PyArg_ParseTuple(args,
- "s:_forget_codec",
- &encoding))
- goto exit;
- return_value = _codecs__forget_codec_impl(module, encoding);
-
-exit:
- return return_value;
-}
-
static PyObject *
_codecs__forget_codec_impl(PyModuleDef *module, const char *encoding)
-/*[clinic end generated code: output=a75e631591702a5c input=18d5d92d0e386c38]*/
+/*[clinic end generated code: output=b56a9b99d2d28080 input=18d5d92d0e386c38]*/
{
if (_PyCodec_Forget(encoding) < 0) {
return NULL;
@@ -188,48 +164,49 @@ _codecs__forget_codec_impl(PyModuleDef *module, const char *encoding)
}
static
-PyObject *codec_tuple(PyObject *unicode,
+PyObject *codec_tuple(PyObject *decoded,
Py_ssize_t len)
{
- PyObject *v;
- if (unicode == NULL)
+ if (decoded == NULL)
return NULL;
- v = Py_BuildValue("On", unicode, len);
- Py_DECREF(unicode);
- return v;
+ return Py_BuildValue("Nn", decoded, len);
}
/* --- String codecs ------------------------------------------------------ */
+/*[clinic input]
+_codecs.escape_decode
+ data: Py_buffer(accept={str, buffer})
+ errors: str(accept={str, NoneType}) = NULL
+ /
+[clinic start generated code]*/
+
static PyObject *
-escape_decode(PyObject *self,
- PyObject *args)
+_codecs_escape_decode_impl(PyModuleDef *module, Py_buffer *data,
+ const char *errors)
+/*[clinic end generated code: output=648fa3e78d03e658 input=0018edfd99db714d]*/
{
- const char *errors = NULL;
- const char *data;
- Py_ssize_t size;
-
- if (!PyArg_ParseTuple(args, "s#|z:escape_decode",
- &data, &size, &errors))
- return NULL;
- return codec_tuple(PyBytes_DecodeEscape(data, size, errors, 0, NULL),
- size);
+ PyObject *decoded = PyBytes_DecodeEscape(data->buf, data->len,
+ errors, 0, NULL);
+ return codec_tuple(decoded, data->len);
}
+/*[clinic input]
+_codecs.escape_encode
+ data: object(subclass_of='&PyBytes_Type')
+ errors: str(accept={str, NoneType}) = NULL
+ /
+[clinic start generated code]*/
+
static PyObject *
-escape_encode(PyObject *self,
- PyObject *args)
+_codecs_escape_encode_impl(PyModuleDef *module, PyObject *data,
+ const char *errors)
+/*[clinic end generated code: output=fcd6f34fe4111c50 input=da9ded00992f32f2]*/
{
- PyObject *str;
Py_ssize_t size;
Py_ssize_t newsize;
- const char *errors = NULL;
PyObject *v;
- if (!PyArg_ParseTuple(args, "O!|z:escape_encode",
- &PyBytes_Type, &str, &errors))
- return NULL;
-
- size = PyBytes_GET_SIZE(str);
+ size = PyBytes_GET_SIZE(data);
if (size > PY_SSIZE_T_MAX / 4) {
PyErr_SetString(PyExc_OverflowError,
"string is too large to encode");
@@ -249,7 +226,7 @@ escape_encode(PyObject *self,
for (i = 0; i < size; i++) {
/* There's at least enough room for a hex escape */
assert(newsize - (p - PyBytes_AS_STRING(v)) >= 4);
- c = PyBytes_AS_STRING(str)[i];
+ c = PyBytes_AS_STRING(data)[i];
if (c == '\'' || c == '\\')
*p++ = '\\', *p++ = c;
else if (c == '\t')
@@ -277,18 +254,18 @@ escape_encode(PyObject *self,
}
/* --- Decoder ------------------------------------------------------------ */
+/*[clinic input]
+_codecs.unicode_internal_decode
+ obj: object
+ errors: str(accept={str, NoneType}) = NULL
+ /
+[clinic start generated code]*/
static PyObject *
-unicode_internal_decode(PyObject *self,
- PyObject *args)
+_codecs_unicode_internal_decode_impl(PyModuleDef *module, PyObject *obj,
+ const char *errors)
+/*[clinic end generated code: output=9fe47c2cd8807d92 input=8d57930aeda170c6]*/
{
- PyObject *obj;
- const char *errors = NULL;
-
- if (!PyArg_ParseTuple(args, "O|z:unicode_internal_decode",
- &obj, &errors))
- return NULL;
-
if (PyUnicode_Check(obj)) {
if (PyUnicode_READY(obj) < 0)
return NULL;
@@ -309,120 +286,109 @@ unicode_internal_decode(PyObject *self,
}
}
+/*[clinic input]
+_codecs.utf_7_decode
+ data: Py_buffer
+ errors: str(accept={str, NoneType}) = NULL
+ final: int(c_default="0") = False
+ /
+[clinic start generated code]*/
+
static PyObject *
-utf_7_decode(PyObject *self,
- PyObject *args)
+_codecs_utf_7_decode_impl(PyModuleDef *module, Py_buffer *data,
+ const char *errors, int final)
+/*[clinic end generated code: output=ca945e907e72e827 input=bc4d6247ecdb01e6]*/
{
- Py_buffer pbuf;
- const char *errors = NULL;
- int final = 0;
- Py_ssize_t consumed;
- PyObject *decoded = NULL;
-
- if (!PyArg_ParseTuple(args, "y*|zi:utf_7_decode",
- &pbuf, &errors, &final))
- return NULL;
- consumed = pbuf.len;
-
- decoded = PyUnicode_DecodeUTF7Stateful(pbuf.buf, pbuf.len, errors,
- final ? NULL : &consumed);
- PyBuffer_Release(&pbuf);
- if (decoded == NULL)
- return NULL;
+ Py_ssize_t consumed = data->len;
+ PyObject *decoded = PyUnicode_DecodeUTF7Stateful(data->buf, data->len,
+ errors,
+ final ? NULL : &consumed);
return codec_tuple(decoded, consumed);
}
+/*[clinic input]
+_codecs.utf_8_decode
+ data: Py_buffer
+ errors: str(accept={str, NoneType}) = NULL
+ final: int(c_default="0") = False
+ /
+[clinic start generated code]*/
+
static PyObject *
-utf_8_decode(PyObject *self,
- PyObject *args)
+_codecs_utf_8_decode_impl(PyModuleDef *module, Py_buffer *data,
+ const char *errors, int final)
+/*[clinic end generated code: output=7309f9ff4ef5c9b6 input=39161d71e7422ee2]*/
{
- Py_buffer pbuf;
- const char *errors = NULL;
- int final = 0;
- Py_ssize_t consumed;
- PyObject *decoded = NULL;
-
- if (!PyArg_ParseTuple(args, "y*|zi:utf_8_decode",
- &pbuf, &errors, &final))
- return NULL;
- consumed = pbuf.len;
-
- decoded = PyUnicode_DecodeUTF8Stateful(pbuf.buf, pbuf.len, errors,
- final ? NULL : &consumed);
- PyBuffer_Release(&pbuf);
- if (decoded == NULL)
- return NULL;
+ Py_ssize_t consumed = data->len;
+ PyObject *decoded = PyUnicode_DecodeUTF8Stateful(data->buf, data->len,
+ errors,
+ final ? NULL : &consumed);
return codec_tuple(decoded, consumed);
}
+/*[clinic input]
+_codecs.utf_16_decode
+ data: Py_buffer
+ errors: str(accept={str, NoneType}) = NULL
+ final: int(c_default="0") = False
+ /
+[clinic start generated code]*/
+
static PyObject *
-utf_16_decode(PyObject *self,
- PyObject *args)
+_codecs_utf_16_decode_impl(PyModuleDef *module, Py_buffer *data,
+ const char *errors, int final)
+/*[clinic end generated code: output=8d2fa0507d9bef2c input=f3cf01d1461007ce]*/
{
- Py_buffer pbuf;
- const char *errors = NULL;
int byteorder = 0;
- int final = 0;
- Py_ssize_t consumed;
- PyObject *decoded;
-
- if (!PyArg_ParseTuple(args, "y*|zi:utf_16_decode",
- &pbuf, &errors, &final))
- return NULL;
- consumed = pbuf.len; /* This is overwritten unless final is true. */
- decoded = PyUnicode_DecodeUTF16Stateful(pbuf.buf, pbuf.len, errors,
- &byteorder, final ? NULL : &consumed);
- PyBuffer_Release(&pbuf);
- if (decoded == NULL)
- return NULL;
+ /* This is overwritten unless final is true. */
+ Py_ssize_t consumed = data->len;
+ PyObject *decoded = PyUnicode_DecodeUTF16Stateful(data->buf, data->len,
+ errors, &byteorder,
+ final ? NULL : &consumed);
return codec_tuple(decoded, consumed);
}
+/*[clinic input]
+_codecs.utf_16_le_decode
+ data: Py_buffer
+ errors: str(accept={str, NoneType}) = NULL
+ final: int(c_default="0") = False
+ /
+[clinic start generated code]*/
+
static PyObject *
-utf_16_le_decode(PyObject *self,
- PyObject *args)
+_codecs_utf_16_le_decode_impl(PyModuleDef *module, Py_buffer *data,
+ const char *errors, int final)
+/*[clinic end generated code: output=4fd621515ef4ce18 input=a77e3bf97335d94e]*/
{
- Py_buffer pbuf;
- const char *errors = NULL;
int byteorder = -1;
- int final = 0;
- Py_ssize_t consumed;
- PyObject *decoded = NULL;
-
- if (!PyArg_ParseTuple(args, "y*|zi:utf_16_le_decode",
- &pbuf, &errors, &final))
- return NULL;
-
- consumed = pbuf.len; /* This is overwritten unless final is true. */
- decoded = PyUnicode_DecodeUTF16Stateful(pbuf.buf, pbuf.len, errors,
- &byteorder, final ? NULL : &consumed);
- PyBuffer_Release(&pbuf);
- if (decoded == NULL)
- return NULL;
+ /* This is overwritten unless final is true. */
+ Py_ssize_t consumed = data->len;
+ PyObject *decoded = PyUnicode_DecodeUTF16Stateful(data->buf, data->len,
+ errors, &byteorder,
+ final ? NULL : &consumed);
return codec_tuple(decoded, consumed);
}
+/*[clinic input]
+_codecs.utf_16_be_decode
+ data: Py_buffer
+ errors: str(accept={str, NoneType}) = NULL
+ final: int(c_default="0") = False
+ /
+[clinic start generated code]*/
+
static PyObject *
-utf_16_be_decode(PyObject *self,
- PyObject *args)
+_codecs_utf_16_be_decode_impl(PyModuleDef *module, Py_buffer *data,
+ const char *errors, int final)
+/*[clinic end generated code: output=792f4eacb3e1fa05 input=606f69fae91b5563]*/
{
- Py_buffer pbuf;
- const char *errors = NULL;
int byteorder = 1;
- int final = 0;
- Py_ssize_t consumed;
- PyObject *decoded = NULL;
-
- if (!PyArg_ParseTuple(args, "y*|zi:utf_16_be_decode",
- &pbuf, &errors, &final))
- return NULL;
-
- consumed = pbuf.len; /* This is overwritten unless final is true. */
- decoded = PyUnicode_DecodeUTF16Stateful(pbuf.buf, pbuf.len, errors,
- &byteorder, final ? NULL : &consumed);
- PyBuffer_Release(&pbuf);
- if (decoded == NULL)
- return NULL;
+ /* This is overwritten unless final is true. */
+ Py_ssize_t consumed = data->len;
+ PyObject *decoded = PyUnicode_DecodeUTF16Stateful(data->buf, data->len,
+ errors, &byteorder,
+ final ? NULL : &consumed);
return codec_tuple(decoded, consumed);
}
@@ -433,98 +399,94 @@ utf_16_be_decode(PyObject *self,
being the value in effect at the end of data.
*/
+/*[clinic input]
+_codecs.utf_16_ex_decode
+ data: Py_buffer
+ errors: str(accept={str, NoneType}) = NULL
+ byteorder: int = 0
+ final: int(c_default="0") = False
+ /
+[clinic start generated code]*/
static PyObject *
-utf_16_ex_decode(PyObject *self,
- PyObject *args)
+_codecs_utf_16_ex_decode_impl(PyModuleDef *module, Py_buffer *data,
+ const char *errors, int byteorder, int final)
+/*[clinic end generated code: output=f136a186dc2defa0 input=f6e7f697658c013e]*/
{
- Py_buffer pbuf;
- const char *errors = NULL;
- int byteorder = 0;
- PyObject *unicode, *tuple;
- int final = 0;
- Py_ssize_t consumed;
+ /* This is overwritten unless final is true. */
+ Py_ssize_t consumed = data->len;
- if (!PyArg_ParseTuple(args, "y*|zii:utf_16_ex_decode",
- &pbuf, &errors, &byteorder, &final))
- return NULL;
- consumed = pbuf.len; /* This is overwritten unless final is true. */
- unicode = PyUnicode_DecodeUTF16Stateful(pbuf.buf, pbuf.len, errors,
- &byteorder, final ? NULL : &consumed);
- PyBuffer_Release(&pbuf);
- if (unicode == NULL)
+ PyObject *decoded = PyUnicode_DecodeUTF16Stateful(data->buf, data->len,
+ errors, &byteorder,
+ final ? NULL : &consumed);
+ if (decoded == NULL)
return NULL;
- tuple = Py_BuildValue("Oni", unicode, consumed, byteorder);
- Py_DECREF(unicode);
- return tuple;
+ return Py_BuildValue("Nni", decoded, consumed, byteorder);
}
+/*[clinic input]
+_codecs.utf_32_decode
+ data: Py_buffer
+ errors: str(accept={str, NoneType}) = NULL
+ final: int(c_default="0") = False
+ /
+[clinic start generated code]*/
+
static PyObject *
-utf_32_decode(PyObject *self,
- PyObject *args)
+_codecs_utf_32_decode_impl(PyModuleDef *module, Py_buffer *data,
+ const char *errors, int final)
+/*[clinic end generated code: output=b7635e55857e8efb input=86d4f41c6c2e763d]*/
{
- Py_buffer pbuf;
- const char *errors = NULL;
int byteorder = 0;
- int final = 0;
- Py_ssize_t consumed;
- PyObject *decoded;
-
- if (!PyArg_ParseTuple(args, "y*|zi:utf_32_decode",
- &pbuf, &errors, &final))
- return NULL;
- consumed = pbuf.len; /* This is overwritten unless final is true. */
- decoded = PyUnicode_DecodeUTF32Stateful(pbuf.buf, pbuf.len, errors,
- &byteorder, final ? NULL : &consumed);
- PyBuffer_Release(&pbuf);
- if (decoded == NULL)
- return NULL;
+ /* This is overwritten unless final is true. */
+ Py_ssize_t consumed = data->len;
+ PyObject *decoded = PyUnicode_DecodeUTF32Stateful(data->buf, data->len,
+ errors, &byteorder,
+ final ? NULL : &consumed);
return codec_tuple(decoded, consumed);
}
+/*[clinic input]
+_codecs.utf_32_le_decode
+ data: Py_buffer
+ errors: str(accept={str, NoneType}) = NULL
+ final: int(c_default="0") = False
+ /
+[clinic start generated code]*/
+
static PyObject *
-utf_32_le_decode(PyObject *self,
- PyObject *args)
+_codecs_utf_32_le_decode_impl(PyModuleDef *module, Py_buffer *data,
+ const char *errors, int final)
+/*[clinic end generated code: output=a79d1787d8ddf988 input=d18b650772d188ba]*/
{
- Py_buffer pbuf;
- const char *errors = NULL;
int byteorder = -1;
- int final = 0;
- Py_ssize_t consumed;
- PyObject *decoded;
-
- if (!PyArg_ParseTuple(args, "y*|zi:utf_32_le_decode",
- &pbuf, &errors, &final))
- return NULL;
- consumed = pbuf.len; /* This is overwritten unless final is true. */
- decoded = PyUnicode_DecodeUTF32Stateful(pbuf.buf, pbuf.len, errors,
- &byteorder, final ? NULL : &consumed);
- PyBuffer_Release(&pbuf);
- if (decoded == NULL)
- return NULL;
+ /* This is overwritten unless final is true. */
+ Py_ssize_t consumed = data->len;
+ PyObject *decoded = PyUnicode_DecodeUTF32Stateful(data->buf, data->len,
+ errors, &byteorder,
+ final ? NULL : &consumed);
return codec_tuple(decoded, consumed);
}
+/*[clinic input]
+_codecs.utf_32_be_decode
+ data: Py_buffer
+ errors: str(accept={str, NoneType}) = NULL
+ final: int(c_default="0") = False
+ /
+[clinic start generated code]*/
+
static PyObject *
-utf_32_be_decode(PyObject *self,
- PyObject *args)
+_codecs_utf_32_be_decode_impl(PyModuleDef *module, Py_buffer *data,
+ const char *errors, int final)
+/*[clinic end generated code: output=a8356b0f36779981 input=19c271b5d34926d8]*/
{
- Py_buffer pbuf;
- const char *errors = NULL;
int byteorder = 1;
- int final = 0;
- Py_ssize_t consumed;
- PyObject *decoded;
-
- if (!PyArg_ParseTuple(args, "y*|zi:utf_32_be_decode",
- &pbuf, &errors, &final))
- return NULL;
- consumed = pbuf.len; /* This is overwritten unless final is true. */
- decoded = PyUnicode_DecodeUTF32Stateful(pbuf.buf, pbuf.len, errors,
- &byteorder, final ? NULL : &consumed);
- PyBuffer_Release(&pbuf);
- if (decoded == NULL)
- return NULL;
+ /* This is overwritten unless final is true. */
+ Py_ssize_t consumed = data->len;
+ PyObject *decoded = PyUnicode_DecodeUTF32Stateful(data->buf, data->len,
+ errors, &byteorder,
+ final ? NULL : &consumed);
return codec_tuple(decoded, consumed);
}
@@ -535,167 +497,157 @@ utf_32_be_decode(PyObject *self,
being the value in effect at the end of data.
*/
+/*[clinic input]
+_codecs.utf_32_ex_decode
+ data: Py_buffer
+ errors: str(accept={str, NoneType}) = NULL
+ byteorder: int = 0
+ final: int(c_default="0") = False
+ /
+[clinic start generated code]*/
static PyObject *
-utf_32_ex_decode(PyObject *self,
- PyObject *args)
+_codecs_utf_32_ex_decode_impl(PyModuleDef *module, Py_buffer *data,
+ const char *errors, int byteorder, int final)
+/*[clinic end generated code: output=ab8c70977c1992f5 input=4af3e6ccfe34a076]*/
{
- Py_buffer pbuf;
- const char *errors = NULL;
- int byteorder = 0;
- PyObject *unicode, *tuple;
- int final = 0;
- Py_ssize_t consumed;
-
- if (!PyArg_ParseTuple(args, "y*|zii:utf_32_ex_decode",
- &pbuf, &errors, &byteorder, &final))
- return NULL;
- consumed = pbuf.len; /* This is overwritten unless final is true. */
- unicode = PyUnicode_DecodeUTF32Stateful(pbuf.buf, pbuf.len, errors,
- &byteorder, final ? NULL : &consumed);
- PyBuffer_Release(&pbuf);
- if (unicode == NULL)
+ Py_ssize_t consumed = data->len;
+ PyObject *decoded = PyUnicode_DecodeUTF32Stateful(data->buf, data->len,
+ errors, &byteorder,
+ final ? NULL : &consumed);
+ if (decoded == NULL)
return NULL;
- tuple = Py_BuildValue("Oni", unicode, consumed, byteorder);
- Py_DECREF(unicode);
- return tuple;
+ return Py_BuildValue("Nni", decoded, consumed, byteorder);
}
+/*[clinic input]
+_codecs.unicode_escape_decode
+ data: Py_buffer(accept={str, buffer})
+ errors: str(accept={str, NoneType}) = NULL
+ /
+[clinic start generated code]*/
+
static PyObject *
-unicode_escape_decode(PyObject *self,
- PyObject *args)
+_codecs_unicode_escape_decode_impl(PyModuleDef *module, Py_buffer *data,
+ const char *errors)
+/*[clinic end generated code: output=d1aa63f2620c4999 input=49fd27d06813a7f5]*/
{
- Py_buffer pbuf;
- const char *errors = NULL;
- PyObject *unicode;
-
- if (!PyArg_ParseTuple(args, "s*|z:unicode_escape_decode",
- &pbuf, &errors))
- return NULL;
-
- unicode = PyUnicode_DecodeUnicodeEscape(pbuf.buf, pbuf.len, errors);
- PyBuffer_Release(&pbuf);
- return codec_tuple(unicode, pbuf.len);
+ PyObject *decoded = PyUnicode_DecodeUnicodeEscape(data->buf, data->len,
+ errors);
+ return codec_tuple(decoded, data->len);
}
+/*[clinic input]
+_codecs.raw_unicode_escape_decode
+ data: Py_buffer(accept={str, buffer})
+ errors: str(accept={str, NoneType}) = NULL
+ /
+[clinic start generated code]*/
+
static PyObject *
-raw_unicode_escape_decode(PyObject *self,
- PyObject *args)
+_codecs_raw_unicode_escape_decode_impl(PyModuleDef *module, Py_buffer *data,
+ const char *errors)
+/*[clinic end generated code: output=0bf96cc182d81379 input=770903a211434ebc]*/
{
- Py_buffer pbuf;
- const char *errors = NULL;
- PyObject *unicode;
-
- if (!PyArg_ParseTuple(args, "s*|z:raw_unicode_escape_decode",
- &pbuf, &errors))
- return NULL;
-
- unicode = PyUnicode_DecodeRawUnicodeEscape(pbuf.buf, pbuf.len, errors);
- PyBuffer_Release(&pbuf);
- return codec_tuple(unicode, pbuf.len);
+ PyObject *decoded = PyUnicode_DecodeRawUnicodeEscape(data->buf, data->len,
+ errors);
+ return codec_tuple(decoded, data->len);
}
+/*[clinic input]
+_codecs.latin_1_decode
+ data: Py_buffer
+ errors: str(accept={str, NoneType}) = NULL
+ /
+[clinic start generated code]*/
+
static PyObject *
-latin_1_decode(PyObject *self,
- PyObject *args)
+_codecs_latin_1_decode_impl(PyModuleDef *module, Py_buffer *data,
+ const char *errors)
+/*[clinic end generated code: output=66b916f5055aaf13 input=5cad0f1759c618ec]*/
{
- Py_buffer pbuf;
- PyObject *unicode;
- const char *errors = NULL;
-
- if (!PyArg_ParseTuple(args, "y*|z:latin_1_decode",
- &pbuf, &errors))
- return NULL;
-
- unicode = PyUnicode_DecodeLatin1(pbuf.buf, pbuf.len, errors);
- PyBuffer_Release(&pbuf);
- return codec_tuple(unicode, pbuf.len);
+ PyObject *decoded = PyUnicode_DecodeLatin1(data->buf, data->len, errors);
+ return codec_tuple(decoded, data->len);
}
+/*[clinic input]
+_codecs.ascii_decode
+ data: Py_buffer
+ errors: str(accept={str, NoneType}) = NULL
+ /
+[clinic start generated code]*/
+
static PyObject *
-ascii_decode(PyObject *self,
- PyObject *args)
+_codecs_ascii_decode_impl(PyModuleDef *module, Py_buffer *data,
+ const char *errors)
+/*[clinic end generated code: output=7f213a1b5cdafc65 input=ad1106f64037bd16]*/
{
- Py_buffer pbuf;
- PyObject *unicode;
- const char *errors = NULL;
-
- if (!PyArg_ParseTuple(args, "y*|z:ascii_decode",
- &pbuf, &errors))
- return NULL;
-
- unicode = PyUnicode_DecodeASCII(pbuf.buf, pbuf.len, errors);
- PyBuffer_Release(&pbuf);
- return codec_tuple(unicode, pbuf.len);
+ PyObject *decoded = PyUnicode_DecodeASCII(data->buf, data->len, errors);
+ return codec_tuple(decoded, data->len);
}
+/*[clinic input]
+_codecs.charmap_decode
+ data: Py_buffer
+ errors: str(accept={str, NoneType}) = NULL
+ mapping: object = NULL
+ /
+[clinic start generated code]*/
+
static PyObject *
-charmap_decode(PyObject *self,
- PyObject *args)
+_codecs_charmap_decode_impl(PyModuleDef *module, Py_buffer *data,
+ const char *errors, PyObject *mapping)
+/*[clinic end generated code: output=87d27f365098bbae input=19712ca35c5a80e2]*/
{
- Py_buffer pbuf;
- PyObject *unicode;
- const char *errors = NULL;
- PyObject *mapping = NULL;
+ PyObject *decoded;
- if (!PyArg_ParseTuple(args, "y*|zO:charmap_decode",
- &pbuf, &errors, &mapping))
- return NULL;
if (mapping == Py_None)
mapping = NULL;
- unicode = PyUnicode_DecodeCharmap(pbuf.buf, pbuf.len, mapping, errors);
- PyBuffer_Release(&pbuf);
- return codec_tuple(unicode, pbuf.len);
+ decoded = PyUnicode_DecodeCharmap(data->buf, data->len, mapping, errors);
+ return codec_tuple(decoded, data->len);
}
#ifdef HAVE_MBCS
+/*[clinic input]
+_codecs.mbcs_decode
+ data: Py_buffer
+ errors: str(accept={str, NoneType}) = NULL
+ final: int(c_default="0") = False
+ /
+[clinic start generated code]*/
+
static PyObject *
-mbcs_decode(PyObject *self,
- PyObject *args)
+_codecs_mbcs_decode_impl(PyModuleDef *module, Py_buffer *data,
+ const char *errors, int final)
+/*[clinic end generated code: output=0ebaf3a5b20e53fa input=d492c1ca64f4fa8a]*/
{
- Py_buffer pbuf;
- const char *errors = NULL;
- int final = 0;
- Py_ssize_t consumed;
- PyObject *decoded = NULL;
-
- if (!PyArg_ParseTuple(args, "y*|zi:mbcs_decode",
- &pbuf, &errors, &final))
- return NULL;
- consumed = pbuf.len;
-
- decoded = PyUnicode_DecodeMBCSStateful(pbuf.buf, pbuf.len, errors,
- final ? NULL : &consumed);
- PyBuffer_Release(&pbuf);
- if (decoded == NULL)
- return NULL;
+ Py_ssize_t consumed = data->len;
+ PyObject *decoded = PyUnicode_DecodeMBCSStateful(data->buf, data->len,
+ errors, final ? NULL : &consumed);
return codec_tuple(decoded, consumed);
}
+/*[clinic input]
+_codecs.code_page_decode
+ codepage: int
+ data: Py_buffer
+ errors: str(accept={str, NoneType}) = NULL
+ final: int(c_default="0") = False
+ /
+[clinic start generated code]*/
+
static PyObject *
-code_page_decode(PyObject *self,
- PyObject *args)
+_codecs_code_page_decode_impl(PyModuleDef *module, int codepage,
+ Py_buffer *data, const char *errors, int final)
+/*[clinic end generated code: output=4318e3d9971e31ba input=4f3152a304e21d51]*/
{
- Py_buffer pbuf;
- const char *errors = NULL;
- int final = 0;
- Py_ssize_t consumed;
- PyObject *decoded = NULL;
- int code_page;
-
- if (!PyArg_ParseTuple(args, "iy*|zi:code_page_decode",
- &code_page, &pbuf, &errors, &final))
- return NULL;
- consumed = pbuf.len;
-
- decoded = PyUnicode_DecodeCodePageStateful(code_page,
- pbuf.buf, pbuf.len, errors,
- final ? NULL : &consumed);
- PyBuffer_Release(&pbuf);
- if (decoded == NULL)
- return NULL;
+ Py_ssize_t consumed = data->len;
+ PyObject *decoded = PyUnicode_DecodeCodePageStateful(codepage,
+ data->buf, data->len,
+ errors,
+ final ? NULL : &consumed);
return codec_tuple(decoded, consumed);
}
@@ -703,43 +655,39 @@ code_page_decode(PyObject *self,
/* --- Encoder ------------------------------------------------------------ */
+/*[clinic input]
+_codecs.readbuffer_encode
+ data: Py_buffer(accept={str, buffer})
+ errors: str(accept={str, NoneType}) = NULL
+ /
+[clinic start generated code]*/
+
static PyObject *
-readbuffer_encode(PyObject *self,
- PyObject *args)
+_codecs_readbuffer_encode_impl(PyModuleDef *module, Py_buffer *data,
+ const char *errors)
+/*[clinic end generated code: output=319cc24083299859 input=b7c322b89d4ab923]*/
{
- Py_buffer pdata;
- const char *data;
- Py_ssize_t size;
- const char *errors = NULL;
- PyObject *result;
-
- if (!PyArg_ParseTuple(args, "s*|z:readbuffer_encode",
- &pdata, &errors))
- return NULL;
- data = pdata.buf;
- size = pdata.len;
-
- result = PyBytes_FromStringAndSize(data, size);
- PyBuffer_Release(&pdata);
- return codec_tuple(result, size);
+ PyObject *result = PyBytes_FromStringAndSize(data->buf, data->len);
+ return codec_tuple(result, data->len);
}
+/*[clinic input]
+_codecs.unicode_internal_encode
+ obj: object
+ errors: str(accept={str, NoneType}) = NULL
+ /
+[clinic start generated code]*/
+
static PyObject *
-unicode_internal_encode(PyObject *self,
- PyObject *args)
+_codecs_unicode_internal_encode_impl(PyModuleDef *module, PyObject *obj,
+ const char *errors)
+/*[clinic end generated code: output=be08457068ad503b input=8628f0280cf5ba61]*/
{
- PyObject *obj;
- const char *errors = NULL;
-
if (PyErr_WarnEx(PyExc_DeprecationWarning,
"unicode_internal codec has been deprecated",
1))
return NULL;
- if (!PyArg_ParseTuple(args, "O|z:unicode_internal_encode",
- &obj, &errors))
- return NULL;
-
if (PyUnicode_Check(obj)) {
Py_UNICODE *u;
Py_ssize_t len, size;
@@ -750,7 +698,7 @@ unicode_internal_encode(PyObject *self,
u = PyUnicode_AsUnicodeAndSize(obj, &len);
if (u == NULL)
return NULL;
- if (len > PY_SSIZE_T_MAX / sizeof(Py_UNICODE))
+ if ((size_t)len > (size_t)PY_SSIZE_T_MAX / sizeof(Py_UNICODE))
return PyErr_NoMemory();
size = len * sizeof(Py_UNICODE);
return codec_tuple(PyBytes_FromStringAndSize((const char*)u, size),
@@ -761,22 +709,26 @@ unicode_internal_encode(PyObject *self,
PyObject *result;
if (PyObject_GetBuffer(obj, &view, PyBUF_SIMPLE) != 0)
return NULL;
- result = codec_tuple(PyBytes_FromStringAndSize(view.buf, view.len), view.len);
+ result = codec_tuple(PyBytes_FromStringAndSize(view.buf, view.len),
+ view.len);
PyBuffer_Release(&view);
return result;
}
}
+/*[clinic input]
+_codecs.utf_7_encode
+ str: object
+ errors: str(accept={str, NoneType}) = NULL
+ /
+[clinic start generated code]*/
+
static PyObject *
-utf_7_encode(PyObject *self,
- PyObject *args)
+_codecs_utf_7_encode_impl(PyModuleDef *module, PyObject *str,
+ const char *errors)
+/*[clinic end generated code: output=a7accc496a32b759 input=fd91a78f103b0421]*/
{
- PyObject *str, *v;
- const char *errors = NULL;
-
- if (!PyArg_ParseTuple(args, "O|z:utf_7_encode",
- &str, &errors))
- return NULL;
+ PyObject *v;
str = PyUnicode_FromObject(str);
if (str == NULL || PyUnicode_READY(str) < 0) {
@@ -789,16 +741,19 @@ utf_7_encode(PyObject *self,
return v;
}
+/*[clinic input]
+_codecs.utf_8_encode
+ str: object
+ errors: str(accept={str, NoneType}) = NULL
+ /
+[clinic start generated code]*/
+
static PyObject *
-utf_8_encode(PyObject *self,
- PyObject *args)
+_codecs_utf_8_encode_impl(PyModuleDef *module, PyObject *str,
+ const char *errors)
+/*[clinic end generated code: output=ec831d80e7aedede input=2c22d40532f071f3]*/
{
- PyObject *str, *v;
- const char *errors = NULL;
-
- if (!PyArg_ParseTuple(args, "O|z:utf_8_encode",
- &str, &errors))
- return NULL;
+ PyObject *v;
str = PyUnicode_FromObject(str);
if (str == NULL || PyUnicode_READY(str) < 0) {
@@ -818,17 +773,20 @@ utf_8_encode(PyObject *self,
*/
+/*[clinic input]
+_codecs.utf_16_encode
+ str: object
+ errors: str(accept={str, NoneType}) = NULL
+ byteorder: int = 0
+ /
+[clinic start generated code]*/
+
static PyObject *
-utf_16_encode(PyObject *self,
- PyObject *args)
+_codecs_utf_16_encode_impl(PyModuleDef *module, PyObject *str,
+ const char *errors, int byteorder)
+/*[clinic end generated code: output=93ac58e960a9ee4d input=3935a489b2d5385e]*/
{
- PyObject *str, *v;
- const char *errors = NULL;
- int byteorder = 0;
-
- if (!PyArg_ParseTuple(args, "O|zi:utf_16_encode",
- &str, &errors, &byteorder))
- return NULL;
+ PyObject *v;
str = PyUnicode_FromObject(str);
if (str == NULL || PyUnicode_READY(str) < 0) {
@@ -841,16 +799,19 @@ utf_16_encode(PyObject *self,
return v;
}
+/*[clinic input]
+_codecs.utf_16_le_encode
+ str: object
+ errors: str(accept={str, NoneType}) = NULL
+ /
+[clinic start generated code]*/
+
static PyObject *
-utf_16_le_encode(PyObject *self,
- PyObject *args)
+_codecs_utf_16_le_encode_impl(PyModuleDef *module, PyObject *str,
+ const char *errors)
+/*[clinic end generated code: output=422bedb8da34fb66 input=bc27df05d1d20dfe]*/
{
- PyObject *str, *v;
- const char *errors = NULL;
-
- if (!PyArg_ParseTuple(args, "O|z:utf_16_le_encode",
- &str, &errors))
- return NULL;
+ PyObject *v;
str = PyUnicode_FromObject(str);
if (str == NULL || PyUnicode_READY(str) < 0) {
@@ -863,16 +824,19 @@ utf_16_le_encode(PyObject *self,
return v;
}
+/*[clinic input]
+_codecs.utf_16_be_encode
+ str: object
+ errors: str(accept={str, NoneType}) = NULL
+ /
+[clinic start generated code]*/
+
static PyObject *
-utf_16_be_encode(PyObject *self,
- PyObject *args)
+_codecs_utf_16_be_encode_impl(PyModuleDef *module, PyObject *str,
+ const char *errors)
+/*[clinic end generated code: output=3aa7ee9502acdd77 input=5a69d4112763462b]*/
{
- PyObject *str, *v;
- const char *errors = NULL;
-
- if (!PyArg_ParseTuple(args, "O|z:utf_16_be_encode",
- &str, &errors))
- return NULL;
+ PyObject *v;
str = PyUnicode_FromObject(str);
if (str == NULL || PyUnicode_READY(str) < 0) {
@@ -892,17 +856,20 @@ utf_16_be_encode(PyObject *self,
*/
+/*[clinic input]
+_codecs.utf_32_encode
+ str: object
+ errors: str(accept={str, NoneType}) = NULL
+ byteorder: int = 0
+ /
+[clinic start generated code]*/
+
static PyObject *
-utf_32_encode(PyObject *self,
- PyObject *args)
+_codecs_utf_32_encode_impl(PyModuleDef *module, PyObject *str,
+ const char *errors, int byteorder)
+/*[clinic end generated code: output=3e7d5a003b02baed input=434a1efa492b8d58]*/
{
- PyObject *str, *v;
- const char *errors = NULL;
- int byteorder = 0;
-
- if (!PyArg_ParseTuple(args, "O|zi:utf_32_encode",
- &str, &errors, &byteorder))
- return NULL;
+ PyObject *v;
str = PyUnicode_FromObject(str);
if (str == NULL || PyUnicode_READY(str) < 0) {
@@ -915,16 +882,19 @@ utf_32_encode(PyObject *self,
return v;
}
+/*[clinic input]
+_codecs.utf_32_le_encode
+ str: object
+ errors: str(accept={str, NoneType}) = NULL
+ /
+[clinic start generated code]*/
+
static PyObject *
-utf_32_le_encode(PyObject *self,
- PyObject *args)
+_codecs_utf_32_le_encode_impl(PyModuleDef *module, PyObject *str,
+ const char *errors)
+/*[clinic end generated code: output=5dda641cd33dbfc2 input=dfa2d7dc78b99422]*/
{
- PyObject *str, *v;
- const char *errors = NULL;
-
- if (!PyArg_ParseTuple(args, "O|z:utf_32_le_encode",
- &str, &errors))
- return NULL;
+ PyObject *v;
str = PyUnicode_FromObject(str);
if (str == NULL || PyUnicode_READY(str) < 0) {
@@ -937,16 +907,19 @@ utf_32_le_encode(PyObject *self,
return v;
}
+/*[clinic input]
+_codecs.utf_32_be_encode
+ str: object
+ errors: str(accept={str, NoneType}) = NULL
+ /
+[clinic start generated code]*/
+
static PyObject *
-utf_32_be_encode(PyObject *self,
- PyObject *args)
+_codecs_utf_32_be_encode_impl(PyModuleDef *module, PyObject *str,
+ const char *errors)
+/*[clinic end generated code: output=ccca8b44d91a7c7a input=4595617b18169002]*/
{
- PyObject *str, *v;
- const char *errors = NULL;
-
- if (!PyArg_ParseTuple(args, "O|z:utf_32_be_encode",
- &str, &errors))
- return NULL;
+ PyObject *v;
str = PyUnicode_FromObject(str);
if (str == NULL || PyUnicode_READY(str) < 0) {
@@ -959,16 +932,19 @@ utf_32_be_encode(PyObject *self,
return v;
}
+/*[clinic input]
+_codecs.unicode_escape_encode
+ str: object
+ errors: str(accept={str, NoneType}) = NULL
+ /
+[clinic start generated code]*/
+
static PyObject *
-unicode_escape_encode(PyObject *self,
- PyObject *args)
+_codecs_unicode_escape_encode_impl(PyModuleDef *module, PyObject *str,
+ const char *errors)
+/*[clinic end generated code: output=389f23d2b8f8d80b input=8273506f14076912]*/
{
- PyObject *str, *v;
- const char *errors = NULL;
-
- if (!PyArg_ParseTuple(args, "O|z:unicode_escape_encode",
- &str, &errors))
- return NULL;
+ PyObject *v;
str = PyUnicode_FromObject(str);
if (str == NULL || PyUnicode_READY(str) < 0) {
@@ -981,16 +957,19 @@ unicode_escape_encode(PyObject *self,
return v;
}
+/*[clinic input]
+_codecs.raw_unicode_escape_encode
+ str: object
+ errors: str(accept={str, NoneType}) = NULL
+ /
+[clinic start generated code]*/
+
static PyObject *
-raw_unicode_escape_encode(PyObject *self,
- PyObject *args)
+_codecs_raw_unicode_escape_encode_impl(PyModuleDef *module, PyObject *str,
+ const char *errors)
+/*[clinic end generated code: output=fec4e39d6ec37a62 input=181755d5dfacef3c]*/
{
- PyObject *str, *v;
- const char *errors = NULL;
-
- if (!PyArg_ParseTuple(args, "O|z:raw_unicode_escape_encode",
- &str, &errors))
- return NULL;
+ PyObject *v;
str = PyUnicode_FromObject(str);
if (str == NULL || PyUnicode_READY(str) < 0) {
@@ -1003,16 +982,19 @@ raw_unicode_escape_encode(PyObject *self,
return v;
}
+/*[clinic input]
+_codecs.latin_1_encode
+ str: object
+ errors: str(accept={str, NoneType}) = NULL
+ /
+[clinic start generated code]*/
+
static PyObject *
-latin_1_encode(PyObject *self,
- PyObject *args)
+_codecs_latin_1_encode_impl(PyModuleDef *module, PyObject *str,
+ const char *errors)
+/*[clinic end generated code: output=ecf00eb8e48c889c input=f03f6dcf1d84bee4]*/
{
- PyObject *str, *v;
- const char *errors = NULL;
-
- if (!PyArg_ParseTuple(args, "O|z:latin_1_encode",
- &str, &errors))
- return NULL;
+ PyObject *v;
str = PyUnicode_FromObject(str);
if (str == NULL || PyUnicode_READY(str) < 0) {
@@ -1025,16 +1007,19 @@ latin_1_encode(PyObject *self,
return v;
}
+/*[clinic input]
+_codecs.ascii_encode
+ str: object
+ errors: str(accept={str, NoneType}) = NULL
+ /
+[clinic start generated code]*/
+
static PyObject *
-ascii_encode(PyObject *self,
- PyObject *args)
+_codecs_ascii_encode_impl(PyModuleDef *module, PyObject *str,
+ const char *errors)
+/*[clinic end generated code: output=a9d18fc6b6b91cfb input=d87e25a10a593fee]*/
{
- PyObject *str, *v;
- const char *errors = NULL;
-
- if (!PyArg_ParseTuple(args, "O|z:ascii_encode",
- &str, &errors))
- return NULL;
+ PyObject *v;
str = PyUnicode_FromObject(str);
if (str == NULL || PyUnicode_READY(str) < 0) {
@@ -1047,17 +1032,21 @@ ascii_encode(PyObject *self,
return v;
}
+/*[clinic input]
+_codecs.charmap_encode
+ str: object
+ errors: str(accept={str, NoneType}) = NULL
+ mapping: object = NULL
+ /
+[clinic start generated code]*/
+
static PyObject *
-charmap_encode(PyObject *self,
- PyObject *args)
+_codecs_charmap_encode_impl(PyModuleDef *module, PyObject *str,
+ const char *errors, PyObject *mapping)
+/*[clinic end generated code: output=14ca42b83853c643 input=85f4172661e8dad9]*/
{
- PyObject *str, *v;
- const char *errors = NULL;
- PyObject *mapping = NULL;
+ PyObject *v;
- if (!PyArg_ParseTuple(args, "O|zO:charmap_encode",
- &str, &errors, &mapping))
- return NULL;
if (mapping == Py_None)
mapping = NULL;
@@ -1072,27 +1061,34 @@ charmap_encode(PyObject *self,
return v;
}
-static PyObject*
-charmap_build(PyObject *self, PyObject *args)
+/*[clinic input]
+_codecs.charmap_build
+ map: unicode
+ /
+[clinic start generated code]*/
+
+static PyObject *
+_codecs_charmap_build_impl(PyModuleDef *module, PyObject *map)
+/*[clinic end generated code: output=9485b58fa44afa6a input=d91a91d1717dbc6d]*/
{
- PyObject *map;
- if (!PyArg_ParseTuple(args, "U:charmap_build", &map))
- return NULL;
return PyUnicode_BuildEncodingMap(map);
}
#ifdef HAVE_MBCS
+/*[clinic input]
+_codecs.mbcs_encode
+ str: object
+ errors: str(accept={str, NoneType}) = NULL
+ /
+[clinic start generated code]*/
+
static PyObject *
-mbcs_encode(PyObject *self,
- PyObject *args)
+_codecs_mbcs_encode_impl(PyModuleDef *module, PyObject *str,
+ const char *errors)
+/*[clinic end generated code: output=d1a013bc68798bd7 input=65c09ee1e4203263]*/
{
- PyObject *str, *v;
- const char *errors = NULL;
-
- if (!PyArg_ParseTuple(args, "O|z:mbcs_encode",
- &str, &errors))
- return NULL;
+ PyObject *v;
str = PyUnicode_FromObject(str);
if (str == NULL || PyUnicode_READY(str) < 0) {
@@ -1105,17 +1101,20 @@ mbcs_encode(PyObject *self,
return v;
}
+/*[clinic input]
+_codecs.code_page_encode
+ code_page: int
+ str: object
+ errors: str(accept={str, NoneType}) = NULL
+ /
+[clinic start generated code]*/
+
static PyObject *
-code_page_encode(PyObject *self,
- PyObject *args)
+_codecs_code_page_encode_impl(PyModuleDef *module, int code_page,
+ PyObject *str, const char *errors)
+/*[clinic end generated code: output=3b406618dbfbce25 input=c8562ec460c2e309]*/
{
- PyObject *str, *v;
- const char *errors = NULL;
- int code_page;
-
- if (!PyArg_ParseTuple(args, "iO|z:code_page_encode",
- &code_page, &str, &errors))
- return NULL;
+ PyObject *v;
str = PyUnicode_FromObject(str);
if (str == NULL || PyUnicode_READY(str) < 0) {
@@ -1134,99 +1133,94 @@ code_page_encode(PyObject *self,
/* --- Error handler registry --------------------------------------------- */
-PyDoc_STRVAR(register_error__doc__,
-"register_error(errors, handler)\n\
-\n\
-Register the specified error handler under the name\n\
-errors. handler must be a callable object, that\n\
-will be called with an exception instance containing\n\
-information about the location of the encoding/decoding\n\
-error and must return a (replacement, new position) tuple.");
+/*[clinic input]
+_codecs.register_error
+ errors: str
+ handler: object
+ /
-static PyObject *register_error(PyObject *self, PyObject *args)
-{
- const char *name;
- PyObject *handler;
+Register the specified error handler under the name errors.
- if (!PyArg_ParseTuple(args, "sO:register_error",
- &name, &handler))
- return NULL;
- if (PyCodec_RegisterError(name, handler))
+handler must be a callable object, that will be called with an exception
+instance containing information about the location of the encoding/decoding
+error and must return a (replacement, new position) tuple.
+[clinic start generated code]*/
+
+static PyObject *
+_codecs_register_error_impl(PyModuleDef *module, const char *errors,
+ PyObject *handler)
+/*[clinic end generated code: output=be00d3b1849ce68a input=5e6709203c2e33fe]*/
+{
+ if (PyCodec_RegisterError(errors, handler))
return NULL;
Py_RETURN_NONE;
}
-PyDoc_STRVAR(lookup_error__doc__,
-"lookup_error(errors) -> handler\n\
-\n\
-Return the error handler for the specified error handling name\n\
-or raise a LookupError, if no handler exists under this name.");
+/*[clinic input]
+_codecs.lookup_error
+ name: str
+ /
-static PyObject *lookup_error(PyObject *self, PyObject *args)
-{
- const char *name;
+lookup_error(errors) -> handler
- if (!PyArg_ParseTuple(args, "s:lookup_error",
- &name))
- return NULL;
+Return the error handler for the specified error handling name or raise a
+LookupError, if no handler exists under this name.
+[clinic start generated code]*/
+
+static PyObject *
+_codecs_lookup_error_impl(PyModuleDef *module, const char *name)
+/*[clinic end generated code: output=731e6df8c83c6158 input=4775dd65e6235aba]*/
+{
return PyCodec_LookupError(name);
}
/* --- Module API --------------------------------------------------------- */
static PyMethodDef _codecs_functions[] = {
- {"register", codec_register, METH_O,
- register__doc__},
- {"lookup", codec_lookup, METH_VARARGS,
- lookup__doc__},
- {"encode", codec_encode, METH_VARARGS,
- encode__doc__},
- {"decode", codec_decode, METH_VARARGS,
- decode__doc__},
- {"escape_encode", escape_encode, METH_VARARGS},
- {"escape_decode", escape_decode, METH_VARARGS},
- {"utf_8_encode", utf_8_encode, METH_VARARGS},
- {"utf_8_decode", utf_8_decode, METH_VARARGS},
- {"utf_7_encode", utf_7_encode, METH_VARARGS},
- {"utf_7_decode", utf_7_decode, METH_VARARGS},
- {"utf_16_encode", utf_16_encode, METH_VARARGS},
- {"utf_16_le_encode", utf_16_le_encode, METH_VARARGS},
- {"utf_16_be_encode", utf_16_be_encode, METH_VARARGS},
- {"utf_16_decode", utf_16_decode, METH_VARARGS},
- {"utf_16_le_decode", utf_16_le_decode, METH_VARARGS},
- {"utf_16_be_decode", utf_16_be_decode, METH_VARARGS},
- {"utf_16_ex_decode", utf_16_ex_decode, METH_VARARGS},
- {"utf_32_encode", utf_32_encode, METH_VARARGS},
- {"utf_32_le_encode", utf_32_le_encode, METH_VARARGS},
- {"utf_32_be_encode", utf_32_be_encode, METH_VARARGS},
- {"utf_32_decode", utf_32_decode, METH_VARARGS},
- {"utf_32_le_decode", utf_32_le_decode, METH_VARARGS},
- {"utf_32_be_decode", utf_32_be_decode, METH_VARARGS},
- {"utf_32_ex_decode", utf_32_ex_decode, METH_VARARGS},
- {"unicode_escape_encode", unicode_escape_encode, METH_VARARGS},
- {"unicode_escape_decode", unicode_escape_decode, METH_VARARGS},
- {"unicode_internal_encode", unicode_internal_encode, METH_VARARGS},
- {"unicode_internal_decode", unicode_internal_decode, METH_VARARGS},
- {"raw_unicode_escape_encode", raw_unicode_escape_encode, METH_VARARGS},
- {"raw_unicode_escape_decode", raw_unicode_escape_decode, METH_VARARGS},
- {"latin_1_encode", latin_1_encode, METH_VARARGS},
- {"latin_1_decode", latin_1_decode, METH_VARARGS},
- {"ascii_encode", ascii_encode, METH_VARARGS},
- {"ascii_decode", ascii_decode, METH_VARARGS},
- {"charmap_encode", charmap_encode, METH_VARARGS},
- {"charmap_decode", charmap_decode, METH_VARARGS},
- {"charmap_build", charmap_build, METH_VARARGS},
- {"readbuffer_encode", readbuffer_encode, METH_VARARGS},
-#ifdef HAVE_MBCS
- {"mbcs_encode", mbcs_encode, METH_VARARGS},
- {"mbcs_decode", mbcs_decode, METH_VARARGS},
- {"code_page_encode", code_page_encode, METH_VARARGS},
- {"code_page_decode", code_page_decode, METH_VARARGS},
-#endif
- {"register_error", register_error, METH_VARARGS,
- register_error__doc__},
- {"lookup_error", lookup_error, METH_VARARGS,
- lookup_error__doc__},
+ _CODECS_REGISTER_METHODDEF
+ _CODECS_LOOKUP_METHODDEF
+ _CODECS_ENCODE_METHODDEF
+ _CODECS_DECODE_METHODDEF
+ _CODECS_ESCAPE_ENCODE_METHODDEF
+ _CODECS_ESCAPE_DECODE_METHODDEF
+ _CODECS_UTF_8_ENCODE_METHODDEF
+ _CODECS_UTF_8_DECODE_METHODDEF
+ _CODECS_UTF_7_ENCODE_METHODDEF
+ _CODECS_UTF_7_DECODE_METHODDEF
+ _CODECS_UTF_16_ENCODE_METHODDEF
+ _CODECS_UTF_16_LE_ENCODE_METHODDEF
+ _CODECS_UTF_16_BE_ENCODE_METHODDEF
+ _CODECS_UTF_16_DECODE_METHODDEF
+ _CODECS_UTF_16_LE_DECODE_METHODDEF
+ _CODECS_UTF_16_BE_DECODE_METHODDEF
+ _CODECS_UTF_16_EX_DECODE_METHODDEF
+ _CODECS_UTF_32_ENCODE_METHODDEF
+ _CODECS_UTF_32_LE_ENCODE_METHODDEF
+ _CODECS_UTF_32_BE_ENCODE_METHODDEF
+ _CODECS_UTF_32_DECODE_METHODDEF
+ _CODECS_UTF_32_LE_DECODE_METHODDEF
+ _CODECS_UTF_32_BE_DECODE_METHODDEF
+ _CODECS_UTF_32_EX_DECODE_METHODDEF
+ _CODECS_UNICODE_ESCAPE_ENCODE_METHODDEF
+ _CODECS_UNICODE_ESCAPE_DECODE_METHODDEF
+ _CODECS_UNICODE_INTERNAL_ENCODE_METHODDEF
+ _CODECS_UNICODE_INTERNAL_DECODE_METHODDEF
+ _CODECS_RAW_UNICODE_ESCAPE_ENCODE_METHODDEF
+ _CODECS_RAW_UNICODE_ESCAPE_DECODE_METHODDEF
+ _CODECS_LATIN_1_ENCODE_METHODDEF
+ _CODECS_LATIN_1_DECODE_METHODDEF
+ _CODECS_ASCII_ENCODE_METHODDEF
+ _CODECS_ASCII_DECODE_METHODDEF
+ _CODECS_CHARMAP_ENCODE_METHODDEF
+ _CODECS_CHARMAP_DECODE_METHODDEF
+ _CODECS_CHARMAP_BUILD_METHODDEF
+ _CODECS_READBUFFER_ENCODE_METHODDEF
+ _CODECS_MBCS_ENCODE_METHODDEF
+ _CODECS_MBCS_DECODE_METHODDEF
+ _CODECS_CODE_PAGE_ENCODE_METHODDEF
+ _CODECS_CODE_PAGE_DECODE_METHODDEF
+ _CODECS_REGISTER_ERROR_METHODDEF
+ _CODECS_LOOKUP_ERROR_METHODDEF
_CODECS__FORGET_CODEC_METHODDEF
{NULL, NULL} /* sentinel */
};
diff --git a/Modules/_collectionsmodule.c b/Modules/_collectionsmodule.c
index 65803a4d62..5dea8cbbd1 100644
--- a/Modules/_collectionsmodule.c
+++ b/Modules/_collectionsmodule.c
@@ -1,50 +1,73 @@
#include "Python.h"
#include "structmember.h"
+#ifdef STDC_HEADERS
+#include <stddef.h>
+#else
+#include <sys/types.h> /* For size_t */
+#endif
+
/* collections module implementation of a deque() datatype
Written and maintained by Raymond D. Hettinger <python@rcn.com>
- Copyright (c) 2004-2013 Python Software Foundation.
+ Copyright (c) 2004-2015 Python Software Foundation.
All rights reserved.
*/
/* The block length may be set to any number over 1. Larger numbers
* reduce the number of calls to the memory allocator, give faster
- * indexing and rotation, and reduce the link::data overhead ratio.
- *
- * Ideally, the block length will be set to two less than some
- * multiple of the cache-line length (so that the full block
- * including the leftlink and rightlink will fit neatly into
- * cache lines).
+ * indexing and rotation, and reduce the link to data overhead ratio.
+ * Making the block length a power of two speeds-up the modulo
+ * and division calculations in deque_item() and deque_ass_item().
*/
-#define BLOCKLEN 62
+#define BLOCKLEN 64
#define CENTER ((BLOCKLEN - 1) / 2)
-/* A `dequeobject` is composed of a doubly-linked list of `block` nodes.
+/* Data for deque objects is stored in a doubly-linked list of fixed
+ * length blocks. This assures that appends or pops never move any
+ * other data elements besides the one being appended or popped.
+ *
+ * Another advantage is that it completely avoids use of realloc(),
+ * resulting in more predictable performance.
+ *
+ * Textbook implementations of doubly-linked lists store one datum
+ * per link, but that gives them a 200% memory overhead (a prev and
+ * next link for each datum) and it costs one malloc() call per data
+ * element. By using fixed-length blocks, the link to data ratio is
+ * significantly improved and there are proportionally fewer calls
+ * to malloc() and free(). The data blocks of consecutive pointers
+ * also improve cache locality.
+ *
* The list of blocks is never empty, so d.leftblock and d.rightblock
* are never equal to NULL. The list is not circular.
*
* A deque d's first element is at d.leftblock[leftindex]
* and its last element is at d.rightblock[rightindex].
- * Unlike Python slice indices, these indices are inclusive
- * on both ends. This makes the algorithms for left and
- * right operations more symmetrical and simplifies the design.
*
- * The indices, d.leftindex and d.rightindex are always in the range
- * 0 <= index < BLOCKLEN.
- * Their exact relationship is:
- * (d.leftindex + d.len - 1) % BLOCKLEN == d.rightindex.
+ * Unlike Python slice indices, these indices are inclusive on both
+ * ends. This makes the algorithms for left and right operations
+ * more symmetrical and it simplifies the design.
*
- * Empty deques have d.len == 0; d.leftblock==d.rightblock;
- * d.leftindex == CENTER+1; and d.rightindex == CENTER.
- * Checking for d.len == 0 is the intended way to see whether d is empty.
+ * The indices, d.leftindex and d.rightindex are always in the range:
+ * 0 <= index < BLOCKLEN
+ *
+ * And their exact relationship is:
+ * (d.leftindex + d.len - 1) % BLOCKLEN == d.rightindex
*
- * Whenever d.leftblock == d.rightblock,
- * d.leftindex + d.len - 1 == d.rightindex.
+ * Whenever d.leftblock == d.rightblock, then:
+ * d.leftindex + d.len - 1 == d.rightindex
*
- * However, when d.leftblock != d.rightblock, d.leftindex and d.rightindex
- * become indices into distinct blocks and either may be larger than the
- * other.
+ * However, when d.leftblock != d.rightblock, the d.leftindex and
+ * d.rightindex become indices into distinct blocks and either may
+ * be larger than the other.
+ *
+ * Empty deques have:
+ * d.len == 0
+ * d.leftblock == d.rightblock
+ * d.leftindex == CENTER + 1
+ * d.rightindex == CENTER
+ *
+ * Checking for d.len == 0 is the intended way to see whether d is empty.
*/
typedef struct BLOCK {
@@ -53,6 +76,19 @@ typedef struct BLOCK {
struct BLOCK *rightlink;
} block;
+typedef struct {
+ PyObject_VAR_HEAD
+ block *leftblock;
+ block *rightblock;
+ Py_ssize_t leftindex; /* 0 <= leftindex < BLOCKLEN */
+ Py_ssize_t rightindex; /* 0 <= rightindex < BLOCKLEN */
+ size_t state; /* incremented whenever the indices move */
+ Py_ssize_t maxlen;
+ PyObject *weakreflist;
+} dequeobject;
+
+static PyTypeObject deque_type;
+
/* For debug builds, add error checking to track the endpoints
* in the chain of links. The goal is to make sure that link
* assignments only take place at endpoints so that links already
@@ -74,8 +110,14 @@ typedef struct BLOCK {
#define CHECK_NOT_END(link)
#endif
+/* To prevent len from overflowing PY_SSIZE_T_MAX, we refuse to
+ allocate new blocks if the current len is nearing overflow.
+*/
+
+#define MAX_DEQUE_LEN (PY_SSIZE_T_MAX - 3*BLOCKLEN)
+
/* A simple freelisting scheme is used to minimize calls to the memory
- allocator. It accomodates common use cases where new blocks are being
+ allocator. It accommodates common use cases where new blocks are being
added at about the same rate as old blocks are being freed.
*/
@@ -86,9 +128,7 @@ static block *freeblocks[MAXFREEBLOCKS];
static block *
newblock(Py_ssize_t len) {
block *b;
- /* To prevent len from overflowing PY_SSIZE_T_MAX, we refuse to
- * allocate new blocks if the current len is nearing overflow. */
- if (len >= PY_SSIZE_T_MAX - 2*BLOCKLEN) {
+ if (len >= MAX_DEQUE_LEN) {
PyErr_SetString(PyExc_OverflowError,
"cannot add more blocks to the deque");
return NULL;
@@ -116,34 +156,11 @@ freeblock(block *b)
}
}
-typedef struct {
- PyObject_VAR_HEAD
- block *leftblock;
- block *rightblock;
- Py_ssize_t leftindex; /* in range(BLOCKLEN) */
- Py_ssize_t rightindex; /* in range(BLOCKLEN) */
- long state; /* incremented whenever the indices move */
- Py_ssize_t maxlen;
- PyObject *weakreflist; /* List of weak references */
-} dequeobject;
-
-/* The deque's size limit is d.maxlen. The limit can be zero or positive.
- * If there is no limit, then d.maxlen == -1.
- *
- * After an item is added to a deque, we check to see if the size has grown past
- * the limit. If it has, we get the size back down to the limit by popping an
- * item off of the opposite end. The methods that can trigger this are append(),
- * appendleft(), extend(), and extendleft().
- */
-
-#define TRIM(d, popfunction) \
- if (d->maxlen != -1 && Py_SIZE(d) > d->maxlen) { \
- PyObject *rv = popfunction(d, NULL); \
- assert(rv != NULL && Py_SIZE(d) <= d->maxlen); \
- Py_DECREF(rv); \
- }
-
-static PyTypeObject deque_type;
+/* XXX Todo:
+ If aligned memory allocations become available, make the
+ deque object 64 byte aligned so that all of the fields
+ can be retrieved or updated in a single cache line.
+*/
static PyObject *
deque_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
@@ -165,14 +182,14 @@ deque_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
MARK_END(b->rightlink);
assert(BLOCKLEN >= 2);
+ Py_SIZE(deque) = 0;
deque->leftblock = b;
deque->rightblock = b;
deque->leftindex = CENTER + 1;
deque->rightindex = CENTER;
- Py_SIZE(deque) = 0;
deque->state = 0;
- deque->weakreflist = NULL;
deque->maxlen = -1;
+ deque->weakreflist = NULL;
return (PyObject *)deque;
}
@@ -193,13 +210,7 @@ deque_pop(dequeobject *deque, PyObject *unused)
deque->state++;
if (deque->rightindex == -1) {
- if (Py_SIZE(deque) == 0) {
- assert(deque->leftblock == deque->rightblock);
- assert(deque->leftindex == deque->rightindex+1);
- /* re-center instead of freeing a block */
- deque->leftindex = CENTER + 1;
- deque->rightindex = CENTER;
- } else {
+ if (Py_SIZE(deque)) {
prevblock = deque->rightblock->leftlink;
assert(deque->leftblock != deque->rightblock);
freeblock(deque->rightblock);
@@ -207,6 +218,12 @@ deque_pop(dequeobject *deque, PyObject *unused)
MARK_END(prevblock->rightlink);
deque->rightblock = prevblock;
deque->rightindex = BLOCKLEN - 1;
+ } else {
+ assert(deque->leftblock == deque->rightblock);
+ assert(deque->leftindex == deque->rightindex+1);
+ /* re-center instead of freeing a block */
+ deque->leftindex = CENTER + 1;
+ deque->rightindex = CENTER;
}
}
return item;
@@ -231,13 +248,7 @@ deque_popleft(dequeobject *deque, PyObject *unused)
deque->state++;
if (deque->leftindex == BLOCKLEN) {
- if (Py_SIZE(deque) == 0) {
- assert(deque->leftblock == deque->rightblock);
- assert(deque->leftindex == deque->rightindex+1);
- /* re-center instead of freeing a block */
- deque->leftindex = CENTER + 1;
- deque->rightindex = CENTER;
- } else {
+ if (Py_SIZE(deque)) {
assert(deque->leftblock != deque->rightblock);
prevblock = deque->leftblock->rightlink;
freeblock(deque->leftblock);
@@ -245,6 +256,12 @@ deque_popleft(dequeobject *deque, PyObject *unused)
MARK_END(prevblock->leftlink);
deque->leftblock = prevblock;
deque->leftindex = 0;
+ } else {
+ assert(deque->leftblock == deque->rightblock);
+ assert(deque->leftindex == deque->rightindex+1);
+ /* re-center instead of freeing a block */
+ deque->leftindex = CENTER + 1;
+ deque->rightindex = CENTER;
}
}
return item;
@@ -252,11 +269,42 @@ deque_popleft(dequeobject *deque, PyObject *unused)
PyDoc_STRVAR(popleft_doc, "Remove and return the leftmost element.");
+/* The deque's size limit is d.maxlen. The limit can be zero or positive.
+ * If there is no limit, then d.maxlen == -1.
+ *
+ * After an item is added to a deque, we check to see if the size has grown past
+ * the limit. If it has, we get the size back down to the limit by popping an
+ * item off of the opposite end. The methods that can trigger this are append(),
+ * appendleft(), extend(), and extendleft().
+ */
+
+static void
+deque_trim_right(dequeobject *deque)
+{
+ if (deque->maxlen != -1 && Py_SIZE(deque) > deque->maxlen) {
+ PyObject *rv = deque_pop(deque, NULL);
+ assert(rv != NULL);
+ assert(Py_SIZE(deque) <= deque->maxlen);
+ Py_DECREF(rv);
+ }
+}
+
+static void
+deque_trim_left(dequeobject *deque)
+{
+ if (deque->maxlen != -1 && Py_SIZE(deque) > deque->maxlen) {
+ PyObject *rv = deque_popleft(deque, NULL);
+ assert(rv != NULL);
+ assert(Py_SIZE(deque) <= deque->maxlen);
+ Py_DECREF(rv);
+ }
+}
+
static PyObject *
deque_append(dequeobject *deque, PyObject *item)
{
deque->state++;
- if (deque->rightindex == BLOCKLEN-1) {
+ if (deque->rightindex == BLOCKLEN - 1) {
block *b = newblock(Py_SIZE(deque));
if (b == NULL)
return NULL;
@@ -271,7 +319,7 @@ deque_append(dequeobject *deque, PyObject *item)
Py_SIZE(deque)++;
deque->rightindex++;
deque->rightblock->data[deque->rightindex] = item;
- TRIM(deque, deque_popleft);
+ deque_trim_left(deque);
Py_RETURN_NONE;
}
@@ -296,7 +344,7 @@ deque_appendleft(dequeobject *deque, PyObject *item)
Py_SIZE(deque)++;
deque->leftindex--;
deque->leftblock->data[deque->leftindex] = item;
- TRIM(deque, deque_pop);
+ deque_trim_right(deque);
Py_RETURN_NONE;
}
@@ -352,7 +400,7 @@ deque_extend(dequeobject *deque, PyObject *iterable)
while ((item = PyIter_Next(it)) != NULL) {
deque->state++;
- if (deque->rightindex == BLOCKLEN-1) {
+ if (deque->rightindex == BLOCKLEN - 1) {
block *b = newblock(Py_SIZE(deque));
if (b == NULL) {
Py_DECREF(item);
@@ -369,11 +417,13 @@ deque_extend(dequeobject *deque, PyObject *iterable)
Py_SIZE(deque)++;
deque->rightindex++;
deque->rightblock->data[deque->rightindex] = item;
- TRIM(deque, deque_popleft);
+ deque_trim_left(deque);
}
- Py_DECREF(it);
- if (PyErr_Occurred())
+ if (PyErr_Occurred()) {
+ Py_DECREF(it);
return NULL;
+ }
+ Py_DECREF(it);
Py_RETURN_NONE;
}
@@ -430,11 +480,13 @@ deque_extendleft(dequeobject *deque, PyObject *iterable)
Py_SIZE(deque)++;
deque->leftindex--;
deque->leftblock->data[deque->leftindex] = item;
- TRIM(deque, deque_pop);
+ deque_trim_right(deque);
}
- Py_DECREF(it);
- if (PyErr_Occurred())
+ if (PyErr_Occurred()) {
+ Py_DECREF(it);
return NULL;
+ }
+ Py_DECREF(it);
Py_RETURN_NONE;
}
@@ -449,11 +501,151 @@ deque_inplace_concat(dequeobject *deque, PyObject *other)
result = deque_extend(deque, other);
if (result == NULL)
return result;
+ Py_INCREF(deque);
Py_DECREF(result);
+ return (PyObject *)deque;
+}
+
+static PyObject *deque_copy(PyObject *deque);
+
+static PyObject *
+deque_concat(dequeobject *deque, PyObject *other)
+{
+ PyObject *new_deque, *result;
+ int rv;
+
+ rv = PyObject_IsInstance(other, (PyObject *)&deque_type);
+ if (rv <= 0) {
+ if (rv == 0) {
+ PyErr_Format(PyExc_TypeError,
+ "can only concatenate deque (not \"%.200s\") to deque",
+ other->ob_type->tp_name);
+ }
+ return NULL;
+ }
+
+ new_deque = deque_copy((PyObject *)deque);
+ if (new_deque == NULL)
+ return NULL;
+ result = deque_extend((dequeobject *)new_deque, other);
+ if (result == NULL) {
+ Py_DECREF(new_deque);
+ return NULL;
+ }
+ Py_DECREF(result);
+ return new_deque;
+}
+
+static void deque_clear(dequeobject *deque);
+
+static PyObject *
+deque_repeat(dequeobject *deque, Py_ssize_t n)
+{
+ dequeobject *new_deque;
+ PyObject *result;
+
+ /* XXX add a special case for when maxlen is defined */
+ if (n < 0)
+ n = 0;
+ else if (n > 0 && Py_SIZE(deque) > MAX_DEQUE_LEN / n)
+ return PyErr_NoMemory();
+
+ new_deque = (dequeobject *)deque_new(&deque_type, (PyObject *)NULL, (PyObject *)NULL);
+ new_deque->maxlen = deque->maxlen;
+
+ for ( ; n ; n--) {
+ result = deque_extend(new_deque, (PyObject *)deque);
+ if (result == NULL) {
+ Py_DECREF(new_deque);
+ return NULL;
+ }
+ Py_DECREF(result);
+ }
+ return (PyObject *)new_deque;
+}
+
+static PyObject *
+deque_inplace_repeat(dequeobject *deque, Py_ssize_t n)
+{
+ Py_ssize_t i, size;
+ PyObject *seq;
+ PyObject *rv;
+
+ size = Py_SIZE(deque);
+ if (size == 0 || n == 1) {
+ Py_INCREF(deque);
+ return (PyObject *)deque;
+ }
+
+ if (n <= 0) {
+ deque_clear(deque);
+ Py_INCREF(deque);
+ return (PyObject *)deque;
+ }
+
+ if (size > MAX_DEQUE_LEN / n) {
+ return PyErr_NoMemory();
+ }
+
+ if (size == 1) {
+ /* common case, repeating a single element */
+ PyObject *item = deque->leftblock->data[deque->leftindex];
+
+ if (deque->maxlen != -1 && n > deque->maxlen)
+ n = deque->maxlen;
+
+ for (i = 0 ; i < n-1 ; i++) {
+ rv = deque_append(deque, item);
+ if (rv == NULL)
+ return NULL;
+ Py_DECREF(rv);
+ }
+ Py_INCREF(deque);
+ return (PyObject *)deque;
+ }
+
+ seq = PySequence_List((PyObject *)deque);
+ if (seq == NULL)
+ return seq;
+
+ for (i = 0 ; i < n-1 ; i++) {
+ rv = deque_extend(deque, seq);
+ if (rv == NULL) {
+ Py_DECREF(seq);
+ return NULL;
+ }
+ Py_DECREF(rv);
+ }
Py_INCREF(deque);
+ Py_DECREF(seq);
return (PyObject *)deque;
}
+/* The rotate() method is part of the public API and is used internally
+as a primitive for other methods.
+
+Rotation by 1 or -1 is a common case, so any optimizations for high
+volume rotations should take care not to penalize the common case.
+
+Conceptually, a rotate by one is equivalent to a pop on one side and an
+append on the other. However, a pop/append pair is unnecessarily slow
+because it requires a incref/decref pair for an object located randomly
+in memory. It is better to just move the object pointer from one block
+to the next without changing the reference count.
+
+When moving batches of pointers, it is tempting to use memcpy() but that
+proved to be slower than a simple loop for a variety of reasons.
+Memcpy() cannot know in advance that we're copying pointers instead of
+bytes, that the source and destination are pointer aligned and
+non-overlapping, that moving just one pointer is a common case, that we
+never need to move more than BLOCKLEN pointers, and that at least one
+pointer is always moved.
+
+For high volume rotations, newblock() and freeblock() are never called
+more than once. Previously emptied blocks are immediately reused as a
+destination block. If a block is left-over at the end, it is freed.
+*/
+
static int
_deque_rotate(dequeobject *deque, Py_ssize_t n)
{
@@ -503,13 +695,13 @@ _deque_rotate(dequeobject *deque, Py_ssize_t n)
if (m > leftindex)
m = leftindex;
assert (m > 0 && m <= len);
- src = &rightblock->data[rightindex];
- dest = &leftblock->data[leftindex - 1];
rightindex -= m;
leftindex -= m;
+ src = &rightblock->data[rightindex + 1];
+ dest = &leftblock->data[leftindex];
n -= m;
do {
- *(dest--) = *(src--);
+ *(dest++) = *(src++);
} while (--m);
}
if (rightindex == -1) {
@@ -585,7 +777,7 @@ deque_rotate(dequeobject *deque, PyObject *args)
if (!PyArg_ParseTuple(args, "|n:rotate", &n))
return NULL;
- if (_deque_rotate(deque, n) == 0)
+ if (!_deque_rotate(deque, n))
Py_RETURN_NONE;
return NULL;
}
@@ -600,7 +792,7 @@ deque_reverse(dequeobject *deque, PyObject *unused)
block *rightblock = deque->rightblock;
Py_ssize_t leftindex = deque->leftindex;
Py_ssize_t rightindex = deque->rightindex;
- Py_ssize_t n = (Py_SIZE(deque))/2;
+ Py_ssize_t n = Py_SIZE(deque) / 2;
Py_ssize_t i;
PyObject *tmp;
@@ -643,8 +835,8 @@ deque_count(dequeobject *deque, PyObject *v)
Py_ssize_t n = Py_SIZE(deque);
Py_ssize_t i;
Py_ssize_t count = 0;
+ size_t start_state = deque->state;
PyObject *item;
- long start_state = deque->state;
int cmp;
for (i=0 ; i<n ; i++) {
@@ -675,6 +867,38 @@ deque_count(dequeobject *deque, PyObject *v)
PyDoc_STRVAR(count_doc,
"D.count(value) -> integer -- return number of occurrences of value");
+static int
+deque_contains(dequeobject *deque, PyObject *v)
+{
+ block *b = deque->leftblock;
+ Py_ssize_t index = deque->leftindex;
+ Py_ssize_t n = Py_SIZE(deque);
+ Py_ssize_t i;
+ size_t start_state = deque->state;
+ PyObject *item;
+ int cmp;
+
+ for (i=0 ; i<n ; i++) {
+ CHECK_NOT_END(b);
+ item = b->data[index];
+ cmp = PyObject_RichCompareBool(item, v, Py_EQ);
+ if (cmp) {
+ return cmp;
+ }
+ if (start_state != deque->state) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "deque mutated during iteration");
+ return -1;
+ }
+ index++;
+ if (index == BLOCKLEN) {
+ b = b->rightlink;
+ index = 0;
+ }
+ }
+ return 0;
+}
+
static Py_ssize_t
deque_len(dequeobject *deque)
{
@@ -682,6 +906,101 @@ deque_len(dequeobject *deque)
}
static PyObject *
+deque_index(dequeobject *deque, PyObject *args)
+{
+ Py_ssize_t i, start=0, stop=Py_SIZE(deque);
+ PyObject *v, *item;
+ block *b = deque->leftblock;
+ Py_ssize_t index = deque->leftindex;
+ size_t start_state = deque->state;
+
+ if (!PyArg_ParseTuple(args, "O|O&O&:index", &v,
+ _PyEval_SliceIndex, &start,
+ _PyEval_SliceIndex, &stop))
+ return NULL;
+ if (start < 0) {
+ start += Py_SIZE(deque);
+ if (start < 0)
+ start = 0;
+ }
+ if (stop < 0) {
+ stop += Py_SIZE(deque);
+ if (stop < 0)
+ stop = 0;
+ }
+ if (stop > Py_SIZE(deque))
+ stop = Py_SIZE(deque);
+
+ for (i=0 ; i<stop ; i++) {
+ if (i >= start) {
+ int cmp;
+ CHECK_NOT_END(b);
+ item = b->data[index];
+ cmp = PyObject_RichCompareBool(item, v, Py_EQ);
+ if (cmp > 0)
+ return PyLong_FromSsize_t(i);
+ else if (cmp < 0)
+ return NULL;
+ if (start_state != deque->state) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "deque mutated during iteration");
+ return NULL;
+ }
+ }
+ index++;
+ if (index == BLOCKLEN) {
+ b = b->rightlink;
+ index = 0;
+ }
+ }
+ PyErr_Format(PyExc_ValueError, "%R is not in deque", v);
+ return NULL;
+}
+
+PyDoc_STRVAR(index_doc,
+"D.index(value, [start, [stop]]) -> integer -- return first index of value.\n"
+"Raises ValueError if the value is not present.");
+
+/* insert(), remove(), and delitem() are implemented in terms of
+ rotate() for simplicity and reasonable performance near the end
+ points. If for some reason these methods become popular, it is not
+ hard to re-implement this using direct data movement (similar to
+ the code used in list slice assignments) and achieve a performance
+ boost (by moving each pointer only once instead of twice).
+*/
+
+static PyObject *
+deque_insert(dequeobject *deque, PyObject *args)
+{
+ Py_ssize_t index;
+ Py_ssize_t n = Py_SIZE(deque);
+ PyObject *value;
+ PyObject *rv;
+
+ if (!PyArg_ParseTuple(args, "nO:insert", &index, &value))
+ return NULL;
+ if (index >= n)
+ return deque_append(deque, value);
+ if (index <= -n || index == 0)
+ return deque_appendleft(deque, value);
+ if (_deque_rotate(deque, -index))
+ return NULL;
+ if (index < 0)
+ rv = deque_append(deque, value);
+ else
+ rv = deque_appendleft(deque, value);
+ if (rv == NULL)
+ return NULL;
+ Py_DECREF(rv);
+ if (_deque_rotate(deque, index))
+ return NULL;
+ Py_RETURN_NONE;
+}
+
+PyDoc_STRVAR(insert_doc,
+"D.insert(index, object) -- insert object before index");
+
+static PyObject *
deque_remove(dequeobject *deque, PyObject *value)
{
Py_ssize_t i, n=Py_SIZE(deque);
@@ -719,16 +1038,80 @@ PyDoc_STRVAR(remove_doc,
static void
deque_clear(dequeobject *deque)
{
+ block *b;
+ block *prevblock;
+ block *leftblock;
+ Py_ssize_t leftindex;
+ Py_ssize_t n;
PyObject *item;
+ /* During the process of clearing a deque, decrefs can cause the
+ deque to mutate. To avoid fatal confusion, we have to make the
+ deque empty before clearing the blocks and never refer to
+ anything via deque->ref while clearing. (This is the same
+ technique used for clearing lists, sets, and dicts.)
+
+ Making the deque empty requires allocating a new empty block. In
+ the unlikely event that memory is full, we fall back to an
+ alternate method that doesn't require a new block. Repeating
+ pops in a while-loop is slower, possibly re-entrant (and a clever
+ adversary could cause it to never terminate).
+ */
+
+ b = newblock(0);
+ if (b == NULL) {
+ PyErr_Clear();
+ goto alternate_method;
+ }
+
+ /* Remember the old size, leftblock, and leftindex */
+ leftblock = deque->leftblock;
+ leftindex = deque->leftindex;
+ n = Py_SIZE(deque);
+
+ /* Set the deque to be empty using the newly allocated block */
+ MARK_END(b->leftlink);
+ MARK_END(b->rightlink);
+ Py_SIZE(deque) = 0;
+ deque->leftblock = b;
+ deque->rightblock = b;
+ deque->leftindex = CENTER + 1;
+ deque->rightindex = CENTER;
+ deque->state++;
+
+ /* Now the old size, leftblock, and leftindex are disconnected from
+ the empty deque and we can use them to decref the pointers.
+ */
+ while (n--) {
+ item = leftblock->data[leftindex];
+ Py_DECREF(item);
+ leftindex++;
+ if (leftindex == BLOCKLEN && n) {
+ CHECK_NOT_END(leftblock->rightlink);
+ prevblock = leftblock;
+ leftblock = leftblock->rightlink;
+ leftindex = 0;
+ freeblock(prevblock);
+ }
+ }
+ CHECK_END(leftblock->rightlink);
+ freeblock(leftblock);
+ return;
+
+ alternate_method:
while (Py_SIZE(deque)) {
item = deque_pop(deque, NULL);
assert (item != NULL);
Py_DECREF(item);
}
- assert(deque->leftblock == deque->rightblock &&
- deque->leftindex - 1 == deque->rightindex &&
- Py_SIZE(deque) == 0);
+}
+
+static int
+valid_index(Py_ssize_t i, Py_ssize_t limit)
+{
+ /* The cast to size_t let us use just a single comparison
+ to check whether i is in the range: 0 <= i < limit */
+ return (size_t) i < (size_t) limit;
}
static PyObject *
@@ -738,9 +1121,8 @@ deque_item(dequeobject *deque, Py_ssize_t i)
PyObject *item;
Py_ssize_t n, index=i;
- if (i < 0 || i >= Py_SIZE(deque)) {
- PyErr_SetString(PyExc_IndexError,
- "deque index out of range");
+ if (!valid_index(i, Py_SIZE(deque))) {
+ PyErr_SetString(PyExc_IndexError, "deque index out of range");
return NULL;
}
@@ -752,14 +1134,16 @@ deque_item(dequeobject *deque, Py_ssize_t i)
b = deque->rightblock;
} else {
i += deque->leftindex;
- n = i / BLOCKLEN;
- i %= BLOCKLEN;
+ n = (Py_ssize_t)((size_t) i / BLOCKLEN);
+ i = (Py_ssize_t)((size_t) i % BLOCKLEN);
if (index < (Py_SIZE(deque) >> 1)) {
b = deque->leftblock;
while (n--)
b = b->rightlink;
} else {
- n = (deque->leftindex + Py_SIZE(deque) - 1) / BLOCKLEN - n;
+ n = (Py_ssize_t)(
+ ((size_t)(deque->leftindex + Py_SIZE(deque) - 1))
+ / BLOCKLEN - n);
b = deque->rightblock;
while (n--)
b = b->leftlink;
@@ -770,13 +1154,6 @@ deque_item(dequeobject *deque, Py_ssize_t i)
return item;
}
-/* delitem() implemented in terms of rotate for simplicity and reasonable
- performance near the end points. If for some reason this method becomes
- popular, it is not hard to re-implement this using direct data movement
- (similar to code in list slice assignment) and achieve a two or threefold
- performance boost.
-*/
-
static int
deque_del_item(dequeobject *deque, Py_ssize_t i)
{
@@ -800,23 +1177,24 @@ deque_ass_item(dequeobject *deque, Py_ssize_t i, PyObject *v)
block *b;
Py_ssize_t n, len=Py_SIZE(deque), halflen=(len+1)>>1, index=i;
- if (i < 0 || i >= len) {
- PyErr_SetString(PyExc_IndexError,
- "deque index out of range");
+ if (!valid_index(i, len)) {
+ PyErr_SetString(PyExc_IndexError, "deque index out of range");
return -1;
}
if (v == NULL)
return deque_del_item(deque, i);
i += deque->leftindex;
- n = i / BLOCKLEN;
- i %= BLOCKLEN;
+ n = (Py_ssize_t)((size_t) i / BLOCKLEN);
+ i = (Py_ssize_t)((size_t) i % BLOCKLEN);
if (index <= halflen) {
b = deque->leftblock;
while (n--)
b = b->rightlink;
} else {
- n = (deque->leftindex + len - 1) / BLOCKLEN - n;
+ n = (Py_ssize_t)(
+ ((size_t)(deque->leftindex + Py_SIZE(deque) - 1))
+ / BLOCKLEN - n);
b = deque->rightblock;
while (n--)
b = b->leftlink;
@@ -938,13 +1316,12 @@ deque_repr(PyObject *deque)
return NULL;
}
if (((dequeobject *)deque)->maxlen != -1)
-
result = PyUnicode_FromFormat("deque(%R, maxlen=%zd)",
aslist, ((dequeobject *)deque)->maxlen);
else
result = PyUnicode_FromFormat("deque(%R)", aslist);
- Py_DECREF(aslist);
Py_ReprLeave(deque);
+ Py_DECREF(aslist);
return result;
}
@@ -1073,6 +1450,12 @@ deque_sizeof(dequeobject *deque, void *unused)
PyDoc_STRVAR(sizeof_doc,
"D.__sizeof__() -- size of D in memory, in bytes");
+static int
+deque_bool(dequeobject *deque)
+{
+ return Py_SIZE(deque) != 0;
+}
+
static PyObject *
deque_get_maxlen(dequeobject *deque)
{
@@ -1081,6 +1464,9 @@ deque_get_maxlen(dequeobject *deque)
return PyLong_FromSsize_t(deque->maxlen);
}
+
+/* deque object ********************************************************/
+
static PyGetSetDef deque_getset[] = {
{"maxlen", (getter)deque_get_maxlen, (setter)NULL,
"maximum size of a deque or None if unbounded"},
@@ -1089,19 +1475,30 @@ static PyGetSetDef deque_getset[] = {
static PySequenceMethods deque_as_sequence = {
(lenfunc)deque_len, /* sq_length */
- 0, /* sq_concat */
- 0, /* sq_repeat */
+ (binaryfunc)deque_concat, /* sq_concat */
+ (ssizeargfunc)deque_repeat, /* sq_repeat */
(ssizeargfunc)deque_item, /* sq_item */
0, /* sq_slice */
- (ssizeobjargproc)deque_ass_item, /* sq_ass_item */
+ (ssizeobjargproc)deque_ass_item, /* sq_ass_item */
0, /* sq_ass_slice */
- 0, /* sq_contains */
- (binaryfunc)deque_inplace_concat, /* sq_inplace_concat */
- 0, /* sq_inplace_repeat */
-
+ (objobjproc)deque_contains, /* sq_contains */
+ (binaryfunc)deque_inplace_concat, /* sq_inplace_concat */
+ (ssizeargfunc)deque_inplace_repeat, /* sq_inplace_repeat */
};
-/* deque object ********************************************************/
+static PyNumberMethods deque_as_number = {
+ 0, /* nb_add */
+ 0, /* nb_subtract */
+ 0, /* nb_multiply */
+ 0, /* nb_remainder */
+ 0, /* nb_divmod */
+ 0, /* nb_power */
+ 0, /* nb_negative */
+ 0, /* nb_positive */
+ 0, /* nb_absolute */
+ (inquiry)deque_bool, /* nb_bool */
+ 0, /* nb_invert */
+ };
static PyObject *deque_iter(dequeobject *deque);
static PyObject *deque_reviter(dequeobject *deque);
@@ -1117,17 +1514,23 @@ static PyMethodDef deque_methods[] = {
METH_NOARGS, clear_doc},
{"__copy__", (PyCFunction)deque_copy,
METH_NOARGS, copy_doc},
+ {"copy", (PyCFunction)deque_copy,
+ METH_NOARGS, copy_doc},
{"count", (PyCFunction)deque_count,
- METH_O, count_doc},
+ METH_O, count_doc},
{"extend", (PyCFunction)deque_extend,
METH_O, extend_doc},
{"extendleft", (PyCFunction)deque_extendleft,
METH_O, extendleft_doc},
+ {"index", (PyCFunction)deque_index,
+ METH_VARARGS, index_doc},
+ {"insert", (PyCFunction)deque_insert,
+ METH_VARARGS, insert_doc},
{"pop", (PyCFunction)deque_pop,
METH_NOARGS, pop_doc},
{"popleft", (PyCFunction)deque_popleft,
METH_NOARGS, popleft_doc},
- {"__reduce__", (PyCFunction)deque_reduce,
+ {"__reduce__", (PyCFunction)deque_reduce,
METH_NOARGS, reduce_doc},
{"remove", (PyCFunction)deque_remove,
METH_O, remove_doc},
@@ -1145,7 +1548,7 @@ static PyMethodDef deque_methods[] = {
PyDoc_STRVAR(deque_doc,
"deque([iterable[, maxlen]]) --> deque object\n\
\n\
-Build an ordered collection with optimized access from its endpoints.");
+A list-like sequence optimized for data accesses near its endpoints.");
static PyTypeObject deque_type = {
PyVarObject_HEAD_INIT(NULL, 0)
@@ -1159,7 +1562,7 @@ static PyTypeObject deque_type = {
0, /* tp_setattr */
0, /* tp_reserved */
deque_repr, /* tp_repr */
- 0, /* tp_as_number */
+ &deque_as_number, /* tp_as_number */
&deque_as_sequence, /* tp_as_sequence */
0, /* tp_as_mapping */
PyObject_HashNotImplemented, /* tp_hash */
@@ -1195,10 +1598,10 @@ static PyTypeObject deque_type = {
typedef struct {
PyObject_HEAD
- Py_ssize_t index;
block *b;
+ Py_ssize_t index;
dequeobject *deque;
- long state; /* state when the iterator is created */
+ size_t state; /* state when the iterator is created */
Py_ssize_t counter; /* number of items remaining for iteration */
} dequeiterobject;
@@ -1315,7 +1718,7 @@ static PyMethodDef dequeiter_methods[] = {
static PyTypeObject dequeiter_type = {
PyVarObject_HEAD_INIT(NULL, 0)
- "_collections._deque_iterator", /* tp_name */
+ "_collections._deque_iterator", /* tp_name */
sizeof(dequeiterobject), /* tp_basicsize */
0, /* tp_itemsize */
/* methods */
@@ -1334,7 +1737,7 @@ static PyTypeObject dequeiter_type = {
PyObject_GenericGetAttr, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,/* tp_flags */
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, /* tp_flags */
0, /* tp_doc */
(traverseproc)dequeiter_traverse, /* tp_traverse */
0, /* tp_clear */
@@ -1437,7 +1840,7 @@ dequereviter_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
static PyTypeObject dequereviter_type = {
PyVarObject_HEAD_INIT(NULL, 0)
- "_collections._deque_reverse_iterator", /* tp_name */
+ "_collections._deque_reverse_iterator", /* tp_name */
sizeof(dequeiterobject), /* tp_basicsize */
0, /* tp_itemsize */
/* methods */
@@ -1456,7 +1859,7 @@ static PyTypeObject dequereviter_type = {
PyObject_GenericGetAttr, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,/* tp_flags */
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, /* tp_flags */
0, /* tp_doc */
(traverseproc)dequeiter_traverse, /* tp_traverse */
0, /* tp_clear */
@@ -1800,19 +2203,40 @@ _count_elements(PyObject *self, PyObject *args)
if (mapping_get != NULL && mapping_get == dict_get &&
mapping_setitem != NULL && mapping_setitem == dict_setitem) {
while (1) {
+ /* Fast path advantages:
+ 1. Eliminate double hashing
+ (by re-using the same hash for both the get and set)
+ 2. Avoid argument overhead of PyObject_CallFunctionObjArgs
+ (argument tuple creation and parsing)
+ 3. Avoid indirection through a bound method object
+ (creates another argument tuple)
+ 4. Avoid initial increment from zero
+ (reuse an existing one-object instead)
+ */
+ Py_hash_t hash;
+
key = PyIter_Next(it);
if (key == NULL)
break;
- oldval = PyDict_GetItem(mapping, key);
+
+ if (!PyUnicode_CheckExact(key) ||
+ (hash = ((PyASCIIObject *) key)->hash) == -1)
+ {
+ hash = PyObject_Hash(key);
+ if (hash == -1)
+ goto done;
+ }
+
+ oldval = _PyDict_GetItem_KnownHash(mapping, key, hash);
if (oldval == NULL) {
- if (PyDict_SetItem(mapping, key, one) == -1)
- break;
+ if (_PyDict_SetItem_KnownHash(mapping, key, one, hash) == -1)
+ goto done;
} else {
newval = PyNumber_Add(oldval, one);
if (newval == NULL)
- break;
- if (PyDict_SetItem(mapping, key, newval) == -1)
- break;
+ goto done;
+ if (_PyDict_SetItem_KnownHash(mapping, key, newval, hash) == -1)
+ goto done;
Py_CLEAR(newval);
}
Py_DECREF(key);
@@ -1901,6 +2325,9 @@ PyInit__collections(void)
Py_INCREF(&defdict_type);
PyModule_AddObject(m, "defaultdict", (PyObject *)&defdict_type);
+ Py_INCREF(&PyODict_Type);
+ PyModule_AddObject(m, "OrderedDict", (PyObject *)&PyODict_Type);
+
if (PyType_Ready(&dequeiter_type) < 0)
return NULL;
Py_INCREF(&dequeiter_type);
diff --git a/Modules/_cryptmodule.c b/Modules/_cryptmodule.c
index da44ef34ee..d422cfdff7 100644
--- a/Modules/_cryptmodule.c
+++ b/Modules/_cryptmodule.c
@@ -12,12 +12,13 @@ module crypt
[clinic start generated code]*/
/*[clinic end generated code: output=da39a3ee5e6b4b0d input=c6252cf4f2f2ae81]*/
+#include "clinic/_cryptmodule.c.h"
/*[clinic input]
crypt.crypt
- word: 's'
- salt: 's'
+ word: str
+ salt: str
/
Hash a *word* with the given *salt* and return the hashed password.
@@ -29,43 +30,9 @@ results for a given *word*.
[clinic start generated code]*/
-PyDoc_STRVAR(crypt_crypt__doc__,
-"crypt($module, word, salt, /)\n"
-"--\n"
-"\n"
-"Hash a *word* with the given *salt* and return the hashed password.\n"
-"\n"
-"*word* will usually be a user\'s password. *salt* (either a random 2 or 16\n"
-"character string, possibly prefixed with $digit$ to indicate the method)\n"
-"will be used to perturb the encryption algorithm and produce distinct\n"
-"results for a given *word*.");
-
-#define CRYPT_CRYPT_METHODDEF \
- {"crypt", (PyCFunction)crypt_crypt, METH_VARARGS, crypt_crypt__doc__},
-
-static PyObject *
-crypt_crypt_impl(PyModuleDef *module, const char *word, const char *salt);
-
-static PyObject *
-crypt_crypt(PyModuleDef *module, PyObject *args)
-{
- PyObject *return_value = NULL;
- const char *word;
- const char *salt;
-
- if (!PyArg_ParseTuple(args,
- "ss:crypt",
- &word, &salt))
- goto exit;
- return_value = crypt_crypt_impl(module, word, salt);
-
-exit:
- return return_value;
-}
-
static PyObject *
crypt_crypt_impl(PyModuleDef *module, const char *word, const char *salt)
-/*[clinic end generated code: output=3eaacdf994a6ff23 input=4d93b6d0f41fbf58]*/
+/*[clinic end generated code: output=995ad1e854d83069 input=0e8edec9c364352b]*/
{
/* On some platforms (AtheOS) crypt returns NULL for an invalid
salt. Return None in that case. XXX Maybe raise an exception? */
diff --git a/Modules/_csv.c b/Modules/_csv.c
index 7a7156431c..a614191ac6 100644
--- a/Modules/_csv.c
+++ b/Modules/_csv.c
@@ -248,7 +248,7 @@ _set_char(const char *name, Py_UCS4 *target, PyObject *src, Py_UCS4 dflt)
len = PyUnicode_GetLength(src);
if (len > 1) {
PyErr_Format(PyExc_TypeError,
- "\"%s\" must be an 1-character string",
+ "\"%s\" must be a 1-character string",
name);
return -1;
}
@@ -290,7 +290,7 @@ dialect_check_quoting(int quoting)
StyleDesc *qs;
for (qs = quote_styles; qs->name; qs++) {
- if (qs->style == quoting)
+ if ((int)qs->style == quoting)
return 0;
}
PyErr_Format(PyExc_TypeError, "bad \"quoting\" value");
@@ -432,7 +432,7 @@ dialect_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
goto err;
if (self->delimiter == 0) {
PyErr_SetString(PyExc_TypeError,
- "\"delimiter\" must be an 1-character string");
+ "\"delimiter\" must be a 1-character string");
goto err;
}
if (quotechar == Py_None && quoting == NULL)
@@ -1009,7 +1009,7 @@ join_reset(WriterObj *self)
*/
static Py_ssize_t
join_append_data(WriterObj *self, unsigned int field_kind, void *field_data,
- Py_ssize_t field_len, int quote_empty, int *quoted,
+ Py_ssize_t field_len, int *quoted,
int copy_phase)
{
DialectObj *dialect = self->dialect;
@@ -1071,18 +1071,6 @@ join_append_data(WriterObj *self, unsigned int field_kind, void *field_data,
ADDCH(c);
}
- /* If field is empty check if it needs to be quoted.
- */
- if (i == 0 && quote_empty) {
- if (dialect->quoting == QUOTE_NONE) {
- PyErr_Format(_csvstate_global->error_obj,
- "single empty field record must be quoted");
- return -1;
- }
- else
- *quoted = 1;
- }
-
if (*quoted) {
if (copy_phase)
ADDCH(dialect->quotechar);
@@ -1126,7 +1114,7 @@ join_check_rec_size(WriterObj *self, Py_ssize_t rec_len)
}
static int
-join_append(WriterObj *self, PyObject *field, int *quoted, int quote_empty)
+join_append(WriterObj *self, PyObject *field, int quoted)
{
unsigned int field_kind = -1;
void *field_data = NULL;
@@ -1141,7 +1129,7 @@ join_append(WriterObj *self, PyObject *field, int *quoted, int quote_empty)
field_len = PyUnicode_GET_LENGTH(field);
}
rec_len = join_append_data(self, field_kind, field_data, field_len,
- quote_empty, quoted, 0);
+ &quoted, 0);
if (rec_len < 0)
return 0;
@@ -1150,7 +1138,7 @@ join_append(WriterObj *self, PyObject *field, int *quoted, int quote_empty)
return 0;
self->rec_len = join_append_data(self, field_kind, field_data, field_len,
- quote_empty, quoted, 1);
+ &quoted, 1);
self->num_fields++;
return 1;
@@ -1181,37 +1169,30 @@ join_append_lineterminator(WriterObj *self)
}
PyDoc_STRVAR(csv_writerow_doc,
-"writerow(sequence)\n"
+"writerow(iterable)\n"
"\n"
-"Construct and write a CSV record from a sequence of fields. Non-string\n"
+"Construct and write a CSV record from an iterable of fields. Non-string\n"
"elements will be converted to string.");
static PyObject *
csv_writerow(WriterObj *self, PyObject *seq)
{
DialectObj *dialect = self->dialect;
- Py_ssize_t len, i;
- PyObject *line, *result;
+ PyObject *iter, *field, *line, *result;
- if (!PySequence_Check(seq))
- return PyErr_Format(_csvstate_global->error_obj, "sequence expected");
-
- len = PySequence_Length(seq);
- if (len < 0)
- return NULL;
+ iter = PyObject_GetIter(seq);
+ if (iter == NULL)
+ return PyErr_Format(_csvstate_global->error_obj,
+ "iterable expected, not %.200s",
+ seq->ob_type->tp_name);
/* Join all fields in internal buffer.
*/
join_reset(self);
- for (i = 0; i < len; i++) {
- PyObject *field;
+ while ((field = PyIter_Next(iter))) {
int append_ok;
int quoted;
- field = PySequence_GetItem(seq, i);
- if (field == NULL)
- return NULL;
-
switch (dialect->quoting) {
case QUOTE_NONNUMERIC:
quoted = !PyNumber_Check(field);
@@ -1225,11 +1206,11 @@ csv_writerow(WriterObj *self, PyObject *seq)
}
if (PyUnicode_Check(field)) {
- append_ok = join_append(self, field, &quoted, len == 1);
+ append_ok = join_append(self, field, quoted);
Py_DECREF(field);
}
else if (field == Py_None) {
- append_ok = join_append(self, NULL, &quoted, len == 1);
+ append_ok = join_append(self, NULL, quoted);
Py_DECREF(field);
}
else {
@@ -1237,19 +1218,37 @@ csv_writerow(WriterObj *self, PyObject *seq)
str = PyObject_Str(field);
Py_DECREF(field);
- if (str == NULL)
+ if (str == NULL) {
+ Py_DECREF(iter);
return NULL;
- append_ok = join_append(self, str, &quoted, len == 1);
+ }
+ append_ok = join_append(self, str, quoted);
Py_DECREF(str);
}
- if (!append_ok)
+ if (!append_ok) {
+ Py_DECREF(iter);
+ return NULL;
+ }
+ }
+ Py_DECREF(iter);
+ if (PyErr_Occurred())
+ return NULL;
+
+ if (self->num_fields > 0 && self->rec_size == 0) {
+ if (dialect->quoting == QUOTE_NONE) {
+ PyErr_Format(_csvstate_global->error_obj,
+ "single empty field record must be quoted");
+ return NULL;
+ }
+ self->num_fields--;
+ if (!join_append(self, NULL, 1))
return NULL;
}
/* Add line terminator.
*/
if (!join_append_lineterminator(self))
- return 0;
+ return NULL;
line = PyUnicode_FromKindAndData(PyUnicode_4BYTE_KIND,
(void *) self->rec, self->rec_len);
@@ -1261,9 +1260,9 @@ csv_writerow(WriterObj *self, PyObject *seq)
}
PyDoc_STRVAR(csv_writerows_doc,
-"writerows(sequence of sequences)\n"
+"writerows(iterable of iterables)\n"
"\n"
-"Construct and write a series of sequences to a csv file. Non-string\n"
+"Construct and write a series of iterables to a csv file. Non-string\n"
"elements will be converted to string.");
static PyObject *
diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c
index 2e5939c257..b9fd82e835 100644
--- a/Modules/_ctypes/_ctypes.c
+++ b/Modules/_ctypes/_ctypes.c
@@ -301,7 +301,7 @@ _ctypes_alloc_format_string_with_shape(int ndim, const Py_ssize_t *shape,
char *new_prefix;
char *result;
char buf[32];
- int prefix_len;
+ Py_ssize_t prefix_len;
int k;
prefix_len = 32 * ndim + 3;
@@ -2819,8 +2819,9 @@ _PyCData_set(CDataObject *dst, PyObject *type, SETFUNC setfunc, PyObject *value,
src->b_ptr,
size);
- if (PyCPointerTypeObject_Check(type))
- /* XXX */;
+ if (PyCPointerTypeObject_Check(type)) {
+ /* XXX */
+ }
value = GetKeepedObjects(src);
if (value == NULL)
diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c
index 8daeffca93..03a911fa06 100644
--- a/Modules/_ctypes/callproc.c
+++ b/Modules/_ctypes/callproc.c
@@ -1603,7 +1603,7 @@ resize(PyObject *self, PyObject *args)
"Memory cannot be resized because this object doesn't own it");
return NULL;
}
- if (size <= sizeof(obj->b_value)) {
+ if ((size_t)size <= sizeof(obj->b_value)) {
/* internal default buffer is large enough */
obj->b_size = size;
goto done;
diff --git a/Modules/_ctypes/cfield.c b/Modules/_ctypes/cfield.c
index c89d91956a..3c7a52a6d9 100644
--- a/Modules/_ctypes/cfield.c
+++ b/Modules/_ctypes/cfield.c
@@ -1355,14 +1355,6 @@ z_get(void *ptr, Py_ssize_t size)
{
/* XXX What about invalid pointers ??? */
if (*(void **)ptr) {
-#if defined(MS_WIN32) && !defined(_WIN32_WCE)
- if (IsBadStringPtrA(*(char **)ptr, -1)) {
- PyErr_Format(PyExc_ValueError,
- "invalid string pointer %p",
- *(char **)ptr);
- return NULL;
- }
-#endif
return PyBytes_FromStringAndSize(*(char **)ptr,
strlen(*(char **)ptr));
} else {
@@ -1419,14 +1411,6 @@ Z_get(void *ptr, Py_ssize_t size)
wchar_t *p;
p = *(wchar_t **)ptr;
if (p) {
-#if defined(MS_WIN32) && !defined(_WIN32_WCE)
- if (IsBadStringPtrW(*(wchar_t **)ptr, -1)) {
- PyErr_Format(PyExc_ValueError,
- "invalid string pointer %p",
- *(wchar_t **)ptr);
- return NULL;
- }
-#endif
return PyUnicode_FromWideChar(p, wcslen(p));
} else {
Py_INCREF(Py_None);
@@ -1456,15 +1440,15 @@ BSTR_set(void *ptr, PyObject *value, Py_ssize_t size)
/* create a BSTR from value */
if (value) {
wchar_t* wvalue;
- Py_ssize_t size;
- wvalue = PyUnicode_AsUnicodeAndSize(value, &size);
+ Py_ssize_t wsize;
+ wvalue = PyUnicode_AsUnicodeAndSize(value, &wsize);
if (wvalue == NULL)
return NULL;
- if ((unsigned) size != size) {
+ if ((unsigned) wsize != wsize) {
PyErr_SetString(PyExc_ValueError, "String too long for BSTR");
return NULL;
}
- bstr = SysAllocStringLen(wvalue, (unsigned)size);
+ bstr = SysAllocStringLen(wvalue, (unsigned)wsize);
Py_DECREF(value);
} else
bstr = NULL;
diff --git a/Modules/_ctypes/libffi_msvc/ffi.c b/Modules/_ctypes/libffi_msvc/ffi.c
index 76cb03efcd..b7586c70eb 100644
--- a/Modules/_ctypes/libffi_msvc/ffi.c
+++ b/Modules/_ctypes/libffi_msvc/ffi.c
@@ -65,37 +65,56 @@ void ffi_prep_args(char *stack, extended_cif *ecif)
argp = (char *) ALIGN(argp, sizeof(void *));
z = (*p_arg)->size;
- if (z < sizeof(int))
+ if (z < sizeof(intptr_t))
{
- z = sizeof(int);
+ z = sizeof(intptr_t);
switch ((*p_arg)->type)
{
case FFI_TYPE_SINT8:
- *(signed int *) argp = (signed int)*(SINT8 *)(* p_argv);
+ *(intptr_t *) argp = (intptr_t)*(SINT8 *)(* p_argv);
break;
case FFI_TYPE_UINT8:
- *(unsigned int *) argp = (unsigned int)*(UINT8 *)(* p_argv);
+ *(uintptr_t *) argp = (uintptr_t)*(UINT8 *)(* p_argv);
break;
case FFI_TYPE_SINT16:
- *(signed int *) argp = (signed int)*(SINT16 *)(* p_argv);
+ *(intptr_t *) argp = (intptr_t)*(SINT16 *)(* p_argv);
break;
case FFI_TYPE_UINT16:
- *(unsigned int *) argp = (unsigned int)*(UINT16 *)(* p_argv);
+ *(uintptr_t *) argp = (uintptr_t)*(UINT16 *)(* p_argv);
break;
case FFI_TYPE_SINT32:
- *(signed int *) argp = (signed int)*(SINT32 *)(* p_argv);
+ *(intptr_t *) argp = (intptr_t)*(SINT32 *)(* p_argv);
break;
case FFI_TYPE_UINT32:
- *(unsigned int *) argp = (unsigned int)*(UINT32 *)(* p_argv);
+ *(uintptr_t *) argp = (uintptr_t)*(UINT32 *)(* p_argv);
+ break;
+
+ case FFI_TYPE_FLOAT:
+ *(uintptr_t *) argp = 0;
+ *(float *) argp = *(float *)(* p_argv);
+ break;
+
+ // 64-bit value cases should never be used for x86 and AMD64 builds
+ case FFI_TYPE_SINT64:
+ *(intptr_t *) argp = (intptr_t)*(SINT64 *)(* p_argv);
+ break;
+
+ case FFI_TYPE_UINT64:
+ *(uintptr_t *) argp = (uintptr_t)*(UINT64 *)(* p_argv);
break;
case FFI_TYPE_STRUCT:
- *(unsigned int *) argp = (unsigned int)*(UINT32 *)(* p_argv);
+ *(uintptr_t *) argp = (uintptr_t)*(UINT32 *)(* p_argv);
+ break;
+
+ case FFI_TYPE_DOUBLE:
+ *(uintptr_t *) argp = 0;
+ *(double *) argp = *(double *)(* p_argv);
break;
default:
diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c
index 5ffce2f954..d64bdc74e9 100644
--- a/Modules/_cursesmodule.c
+++ b/Modules/_cursesmodule.c
@@ -140,6 +140,8 @@ class curses.window "PyCursesWindowObject *" "&PyCursesWindow_Type"
[clinic start generated code]*/
/*[clinic end generated code: output=da39a3ee5e6b4b0d input=88c860abdbb50e0c]*/
+#include "clinic/_cursesmodule.c.h"
+
/* Definition of exception curses.error */
static PyObject *PyCursesError;
@@ -583,75 +585,10 @@ By default, the character position and attributes are the
current settings for the window object.
[clinic start generated code]*/
-PyDoc_STRVAR(curses_window_addch__doc__,
-"addch([y, x,] ch, [attr])\n"
-"Paint character ch at (y, x) with attributes attr.\n"
-"\n"
-" y\n"
-" Y-coordinate.\n"
-" x\n"
-" X-coordinate.\n"
-" ch\n"
-" Character to add.\n"
-" attr\n"
-" Attributes for the character.\n"
-"\n"
-"Paint character ch at (y, x) with attributes attr,\n"
-"overwriting any character previously painted at that location.\n"
-"By default, the character position and attributes are the\n"
-"current settings for the window object.");
-
-#define CURSES_WINDOW_ADDCH_METHODDEF \
- {"addch", (PyCFunction)curses_window_addch, METH_VARARGS, curses_window_addch__doc__},
-
static PyObject *
-curses_window_addch_impl(PyCursesWindowObject *self, int group_left_1, int y, int x, PyObject *ch, int group_right_1, long attr);
-
-static PyObject *
-curses_window_addch(PyCursesWindowObject *self, PyObject *args)
-{
- PyObject *return_value = NULL;
- int group_left_1 = 0;
- int y = 0;
- int x = 0;
- PyObject *ch;
- int group_right_1 = 0;
- long attr = 0;
-
- switch (PyTuple_GET_SIZE(args)) {
- case 1:
- if (!PyArg_ParseTuple(args, "O:addch", &ch))
- goto exit;
- break;
- case 2:
- if (!PyArg_ParseTuple(args, "Ol:addch", &ch, &attr))
- goto exit;
- group_right_1 = 1;
- break;
- case 3:
- if (!PyArg_ParseTuple(args, "iiO:addch", &y, &x, &ch))
- goto exit;
- group_left_1 = 1;
- break;
- case 4:
- if (!PyArg_ParseTuple(args, "iiOl:addch", &y, &x, &ch, &attr))
- goto exit;
- group_right_1 = 1;
- group_left_1 = 1;
- break;
- default:
- PyErr_SetString(PyExc_TypeError, "curses.window.addch requires 1 to 4 arguments");
- goto exit;
- }
- return_value = curses_window_addch_impl(self, group_left_1, y, x, ch, group_right_1, attr);
-
-exit:
- return return_value;
-}
-
-static PyObject *
-curses_window_addch_impl(PyCursesWindowObject *self, int group_left_1, int y, int x, PyObject *ch, int group_right_1, long attr)
-/*[clinic end generated code: output=d4b97cc287010c54 input=5a41efb34a2de338]*/
+curses_window_addch_impl(PyCursesWindowObject *self, int group_left_1, int y,
+ int x, PyObject *ch, int group_right_1, long attr)
+/*[clinic end generated code: output=99f7f85078ec06c3 input=5a41efb34a2de338]*/
{
PyCursesWindowObject *cwself = (PyCursesWindowObject *)self;
int coordinates_group = group_left_1;
@@ -2675,7 +2612,7 @@ PyCurses_KeyName(PyObject *self, PyObject *args)
}
knp = keyname(ch);
- return PyBytes_FromString((knp == NULL) ? "" : (char *)knp);
+ return PyBytes_FromString((knp == NULL) ? "" : knp);
}
#endif
@@ -2929,6 +2866,13 @@ update_lines_cols(void)
Py_DECREF(m);
return 1;
}
+
+static PyObject *
+PyCurses_update_lines_cols(PyObject *self)
+{
+ return PyLong_FromLong((long) update_lines_cols());
+}
+
#endif
#ifdef HAVE_CURSES_RESIZETERM
@@ -3331,6 +3275,9 @@ static PyMethodDef PyCurses_methods[] = {
{"typeahead", (PyCFunction)PyCurses_TypeAhead, METH_VARARGS},
{"unctrl", (PyCFunction)PyCurses_UnCtrl, METH_VARARGS},
{"ungetch", (PyCFunction)PyCurses_UngetCh, METH_VARARGS},
+#if defined(HAVE_CURSES_RESIZETERM) || defined(HAVE_CURSES_RESIZE_TERM)
+ {"update_lines_cols", (PyCFunction)PyCurses_update_lines_cols, METH_NOARGS},
+#endif
#ifdef HAVE_NCURSESW
{"unget_wch", (PyCFunction)PyCurses_Unget_Wch, METH_VARARGS},
#endif
diff --git a/Modules/_datetimemodule.c b/Modules/_datetimemodule.c
index 6084ffa201..e3de537a8d 100644
--- a/Modules/_datetimemodule.c
+++ b/Modules/_datetimemodule.c
@@ -7,6 +7,10 @@
#include <time.h>
+#ifdef MS_WINDOWS
+# include <winsock2.h> /* struct timeval */
+#endif
+
/* Differentiate between building the core module and building extension
* modules.
*/
@@ -22,6 +26,8 @@ class datetime.datetime "PyDateTime_DateTime *" "&PyDateTime_DateTimeType"
[clinic start generated code]*/
/*[clinic end generated code: output=da39a3ee5e6b4b0d input=78142cb64b9e98bc]*/
+#include "clinic/_datetimemodule.c.h"
+
/* We require that C int be at least 32 bits, and use int virtually
* everywhere. In just a few cases we use a temp long, where a Python
* API returns a C long. In such cases, we have to ensure that the
@@ -2459,7 +2465,7 @@ date_local_from_object(PyObject *cls, PyObject *obj)
struct tm *tm;
time_t t;
- if (_PyTime_ObjectToTime_t(obj, &t, _PyTime_ROUND_DOWN) == -1)
+ if (_PyTime_ObjectToTime_t(obj, &t, _PyTime_ROUND_FLOOR) == -1)
return NULL;
tm = localtime(&t);
@@ -3805,29 +3811,6 @@ time_replace(PyDateTime_Time *self, PyObject *args, PyObject *kw)
return clone;
}
-static int
-time_bool(PyObject *self)
-{
- PyObject *offset, *tzinfo;
- int offsecs = 0;
-
- if (TIME_GET_SECOND(self) || TIME_GET_MICROSECOND(self)) {
- /* Since utcoffset is in whole minutes, nothing can
- * alter the conclusion that this is nonzero.
- */
- return 1;
- }
- tzinfo = GET_TIME_TZINFO(self);
- if (tzinfo != Py_None) {
- offset = call_utcoffset(tzinfo, Py_None);
- if (offset == NULL)
- return -1;
- offsecs = GET_TD_DAYS(offset)*86400 + GET_TD_SECONDS(offset);
- Py_DECREF(offset);
- }
- return (TIME_GET_MINUTE(self)*60 - offsecs + TIME_GET_HOUR(self)*3600) != 0;
-}
-
/* Pickle support, a simple use of __reduce__. */
/* Let basestate be the non-tzinfo data string.
@@ -3895,19 +3878,6 @@ PyDoc_STR("time([hour[, minute[, second[, microsecond[, tzinfo]]]]]) --> a time
All arguments are optional. tzinfo may be None, or an instance of\n\
a tzinfo subclass. The remaining arguments may be ints.\n");
-static PyNumberMethods time_as_number = {
- 0, /* nb_add */
- 0, /* nb_subtract */
- 0, /* nb_multiply */
- 0, /* nb_remainder */
- 0, /* nb_divmod */
- 0, /* nb_power */
- 0, /* nb_negative */
- 0, /* nb_positive */
- 0, /* nb_absolute */
- (inquiry)time_bool, /* nb_bool */
-};
-
static PyTypeObject PyDateTime_TimeType = {
PyVarObject_HEAD_INIT(NULL, 0)
"datetime.time", /* tp_name */
@@ -3919,7 +3889,7 @@ static PyTypeObject PyDateTime_TimeType = {
0, /* tp_setattr */
0, /* tp_reserved */
(reprfunc)time_repr, /* tp_repr */
- &time_as_number, /* tp_as_number */
+ 0, /* tp_as_number */
0, /* tp_as_sequence */
0, /* tp_as_mapping */
(hashfunc)time_hash, /* tp_hash */
@@ -4194,10 +4164,15 @@ datetime_from_timestamp(PyObject *cls, TM_FUNC f, double timestamp,
static PyObject *
datetime_best_possible(PyObject *cls, TM_FUNC f, PyObject *tzinfo)
{
- _PyTime_timeval t;
- _PyTime_gettimeofday(&t);
- return datetime_from_timet_and_us(cls, f, t.tv_sec, (int)t.tv_usec,
- tzinfo);
+ _PyTime_t ts = _PyTime_GetSystemClock();
+ time_t secs;
+ int us;
+
+ if (_PyTime_AsTimevalTime_t(ts, &secs, &us, _PyTime_ROUND_FLOOR) < 0)
+ return NULL;
+ assert(0 <= us && us <= 999999);
+
+ return datetime_from_timet_and_us(cls, f, secs, us, tzinfo);
}
/*[clinic input]
@@ -4213,43 +4188,9 @@ Returns new datetime object representing current time local to tz.
If no tz is specified, uses local timezone.
[clinic start generated code]*/
-PyDoc_STRVAR(datetime_datetime_now__doc__,
-"now($type, /, tz=None)\n"
-"--\n"
-"\n"
-"Returns new datetime object representing current time local to tz.\n"
-"\n"
-" tz\n"
-" Timezone object.\n"
-"\n"
-"If no tz is specified, uses local timezone.");
-
-#define DATETIME_DATETIME_NOW_METHODDEF \
- {"now", (PyCFunction)datetime_datetime_now, METH_VARARGS|METH_KEYWORDS|METH_CLASS, datetime_datetime_now__doc__},
-
-static PyObject *
-datetime_datetime_now_impl(PyTypeObject *type, PyObject *tz);
-
-static PyObject *
-datetime_datetime_now(PyTypeObject *type, PyObject *args, PyObject *kwargs)
-{
- PyObject *return_value = NULL;
- static char *_keywords[] = {"tz", NULL};
- PyObject *tz = Py_None;
-
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,
- "|O:now", _keywords,
- &tz))
- goto exit;
- return_value = datetime_datetime_now_impl(type, tz);
-
-exit:
- return return_value;
-}
-
static PyObject *
datetime_datetime_now_impl(PyTypeObject *type, PyObject *tz)
-/*[clinic end generated code: output=583c5637e3c843fa input=80d09869c5267d00]*/
+/*[clinic end generated code: output=b3386e5345e2b47a input=80d09869c5267d00]*/
{
PyObject *self;
@@ -5111,8 +5052,7 @@ static PyMethodDef datetime_methods[] = {
{"utcfromtimestamp", (PyCFunction)datetime_utcfromtimestamp,
METH_VARARGS | METH_CLASS,
- PyDoc_STR("timestamp -> UTC datetime from a POSIX timestamp "
- "(like time.time()).")},
+ PyDoc_STR("Construct a naive UTC datetime from a POSIX timestamp.")},
{"strptime", (PyCFunction)datetime_strptime,
METH_VARARGS | METH_CLASS,
diff --git a/Modules/_dbmmodule.c b/Modules/_dbmmodule.c
index 93ea4161a7..02899e4303 100644
--- a/Modules/_dbmmodule.c
+++ b/Modules/_dbmmodule.c
@@ -29,10 +29,10 @@ static char *which_dbm = "Berkeley DB";
#endif
/*[clinic input]
-module dbm
-class dbm.dbm "dbmobject *" "&Dbmtype"
+module _dbm
+class _dbm.dbm "dbmobject *" "&Dbmtype"
[clinic start generated code]*/
-/*[clinic end generated code: output=da39a3ee5e6b4b0d input=92450564684a69a3]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=9b1aa8756d16150e]*/
typedef struct {
PyObject_HEAD
@@ -40,6 +40,8 @@ typedef struct {
DBM *di_dbm;
} dbmobject;
+#include "clinic/_dbmmodule.c.h"
+
static PyTypeObject Dbmtype;
#define is_dbmobject(v) (Py_TYPE(v) == &Dbmtype)
@@ -49,15 +51,6 @@ static PyTypeObject Dbmtype;
static PyObject *DbmError;
-/*[python input]
-class dbmobject_converter(self_converter):
- type = "dbmobject *"
- def pre_render(self):
- super().pre_render()
- self.name = 'dp'
-[python start generated code]*/
-/*[python end generated code: output=da39a3ee5e6b4b0d input=6ad536357913879a]*/
-
static PyObject *
newdbmobject(const char *file, int flags, int mode)
{
@@ -181,29 +174,43 @@ static PyMappingMethods dbm_as_mapping = {
(objobjargproc)dbm_ass_sub, /*mp_ass_subscript*/
};
+/*[clinic input]
+_dbm.dbm.close
+
+Close the database.
+[clinic start generated code]*/
+
static PyObject *
-dbm__close(dbmobject *dp, PyObject *unused)
+_dbm_dbm_close_impl(dbmobject *self)
+/*[clinic end generated code: output=c8dc5b6709600b86 input=046db72377d51be8]*/
{
- if (dp->di_dbm)
- dbm_close(dp->di_dbm);
- dp->di_dbm = NULL;
+ if (self->di_dbm)
+ dbm_close(self->di_dbm);
+ self->di_dbm = NULL;
Py_INCREF(Py_None);
return Py_None;
}
+/*[clinic input]
+_dbm.dbm.keys
+
+Return a list of all keys in the database.
+[clinic start generated code]*/
+
static PyObject *
-dbm_keys(dbmobject *dp, PyObject *unused)
+_dbm_dbm_keys_impl(dbmobject *self)
+/*[clinic end generated code: output=434549f7c121b33c input=d210ba778cd9c68a]*/
{
PyObject *v, *item;
datum key;
int err;
- check_dbmobject_open(dp);
+ check_dbmobject_open(self);
v = PyList_New(0);
if (v == NULL)
return NULL;
- for (key = dbm_firstkey(dp->di_dbm); key.dptr;
- key = dbm_nextkey(dp->di_dbm)) {
+ for (key = dbm_firstkey(self->di_dbm); key.dptr;
+ key = dbm_nextkey(self->di_dbm)) {
item = PyBytes_FromStringAndSize(key.dptr, key.dsize);
if (item == NULL) {
Py_DECREF(v);
@@ -265,58 +272,27 @@ static PySequenceMethods dbm_as_sequence = {
};
/*[clinic input]
+_dbm.dbm.get
-dbm.dbm.get
-
- self: dbmobject
-
- key: str(length=True)
- default: object = None
+ key: str(accept={str, robuffer}, zeroes=True)
+ default: object(c_default="NULL") = b''
/
Return the value for key if present, otherwise default.
[clinic start generated code]*/
-PyDoc_STRVAR(dbm_dbm_get__doc__,
-"get($self, key, default=None, /)\n"
-"--\n"
-"\n"
-"Return the value for key if present, otherwise default.");
-
-#define DBM_DBM_GET_METHODDEF \
- {"get", (PyCFunction)dbm_dbm_get, METH_VARARGS, dbm_dbm_get__doc__},
-
-static PyObject *
-dbm_dbm_get_impl(dbmobject *dp, const char *key, Py_ssize_clean_t key_length, PyObject *default_value);
-
static PyObject *
-dbm_dbm_get(dbmobject *dp, PyObject *args)
-{
- PyObject *return_value = NULL;
- const char *key;
- Py_ssize_clean_t key_length;
- PyObject *default_value = Py_None;
-
- if (!PyArg_ParseTuple(args,
- "s#|O:get",
- &key, &key_length, &default_value))
- goto exit;
- return_value = dbm_dbm_get_impl(dp, key, key_length, default_value);
-
-exit:
- return return_value;
-}
-
-static PyObject *
-dbm_dbm_get_impl(dbmobject *dp, const char *key, Py_ssize_clean_t key_length, PyObject *default_value)
-/*[clinic end generated code: output=452ea11394e7e92d input=aecf5efd2f2b1a3b]*/
+_dbm_dbm_get_impl(dbmobject *self, const char *key,
+ Py_ssize_clean_t key_length, PyObject *default_value)
+/*[clinic end generated code: output=b44f95eba8203d93 input=a3a279957f85eb6d]*/
+/*[clinic end generated code: output=4f5c0e523eaf1251 input=9402c0af8582dc69]*/
{
datum dbm_key, val;
dbm_key.dptr = (char *)key;
dbm_key.dsize = key_length;
- check_dbmobject_open(dp);
- val = dbm_fetch(dp->di_dbm, dbm_key);
+ check_dbmobject_open(self);
+ val = dbm_fetch(self->di_dbm, dbm_key);
if (val.dptr != NULL)
return PyBytes_FromStringAndSize(val.dptr, val.dsize);
@@ -324,46 +300,55 @@ dbm_dbm_get_impl(dbmobject *dp, const char *key, Py_ssize_clean_t key_length, Py
return default_value;
}
+/*[clinic input]
+_dbm.dbm.setdefault
+ key: str(accept={str, robuffer}, zeroes=True)
+ default: object(c_default="NULL") = b''
+ /
+
+Return the value for key if present, otherwise default.
+
+If key is not in the database, it is inserted with default as the value.
+[clinic start generated code]*/
+
static PyObject *
-dbm_setdefault(dbmobject *dp, PyObject *args)
+_dbm_dbm_setdefault_impl(dbmobject *self, const char *key,
+ Py_ssize_clean_t key_length,
+ PyObject *default_value)
+/*[clinic end generated code: output=52545886cf272161 input=bf40c48edaca01d6]*/
{
- datum key, val;
- PyObject *defvalue = NULL;
- char *tmp_ptr;
+ datum dbm_key, val;
Py_ssize_t tmp_size;
- if (!PyArg_ParseTuple(args, "s#|O:setdefault",
- &tmp_ptr, &tmp_size, &defvalue))
- return NULL;
- key.dptr = tmp_ptr;
- key.dsize = tmp_size;
- check_dbmobject_open(dp);
- val = dbm_fetch(dp->di_dbm, key);
+ dbm_key.dptr = (char *)key;
+ dbm_key.dsize = key_length;
+ check_dbmobject_open(self);
+ val = dbm_fetch(self->di_dbm, dbm_key);
if (val.dptr != NULL)
return PyBytes_FromStringAndSize(val.dptr, val.dsize);
- if (defvalue == NULL) {
- defvalue = PyBytes_FromStringAndSize(NULL, 0);
- if (defvalue == NULL)
+ if (default_value == NULL) {
+ default_value = PyBytes_FromStringAndSize(NULL, 0);
+ if (default_value == NULL)
return NULL;
val.dptr = NULL;
val.dsize = 0;
}
else {
- if ( !PyArg_Parse(defvalue, "s#", &val.dptr, &tmp_size) ) {
+ if ( !PyArg_Parse(default_value, "s#", &val.dptr, &tmp_size) ) {
PyErr_SetString(PyExc_TypeError,
"dbm mappings have byte string elements only");
return NULL;
}
val.dsize = tmp_size;
- Py_INCREF(defvalue);
+ Py_INCREF(default_value);
}
- if (dbm_store(dp->di_dbm, key, val, DBM_INSERT) < 0) {
- dbm_clearerr(dp->di_dbm);
+ if (dbm_store(self->di_dbm, dbm_key, val, DBM_INSERT) < 0) {
+ dbm_clearerr(self->di_dbm);
PyErr_SetString(DbmError, "cannot add item to database");
- Py_DECREF(defvalue);
+ Py_DECREF(default_value);
return NULL;
}
- return defvalue;
+ return default_value;
}
static PyObject *
@@ -382,15 +367,10 @@ dbm__exit__(PyObject *self, PyObject *args)
static PyMethodDef dbm_methods[] = {
- {"close", (PyCFunction)dbm__close, METH_NOARGS,
- "close()\nClose the database."},
- {"keys", (PyCFunction)dbm_keys, METH_NOARGS,
- "keys() -> list\nReturn a list of all keys in the database."},
- DBM_DBM_GET_METHODDEF
- {"setdefault", (PyCFunction)dbm_setdefault, METH_VARARGS,
- "setdefault(key[, default]) -> value\n"
- "Return the value for key if present, otherwise default. If key\n"
- "is not in the database, it is inserted with default as the value."},
+ _DBM_DBM_CLOSE_METHODDEF
+ _DBM_DBM_KEYS_METHODDEF
+ _DBM_DBM_GET_METHODDEF
+ _DBM_DBM_SETDEFAULT_METHODDEF
{"__enter__", dbm__enter__, METH_NOARGS, NULL},
{"__exit__", dbm__exit__, METH_VARARGS, NULL},
{NULL, NULL} /* sentinel */
@@ -431,7 +411,7 @@ static PyTypeObject Dbmtype = {
/*[clinic input]
-dbm.open as dbmopen
+_dbm.open as dbmopen
filename: str
The filename to open.
@@ -449,47 +429,10 @@ Return a database object.
[clinic start generated code]*/
-PyDoc_STRVAR(dbmopen__doc__,
-"open($module, filename, flags=\'r\', mode=0o666, /)\n"
-"--\n"
-"\n"
-"Return a database object.\n"
-"\n"
-" filename\n"
-" The filename to open.\n"
-" flags\n"
-" How to open the file. \"r\" for reading, \"w\" for writing, etc.\n"
-" mode\n"
-" If creating a new file, the mode bits for the new file\n"
-" (e.g. os.O_RDWR).");
-
-#define DBMOPEN_METHODDEF \
- {"open", (PyCFunction)dbmopen, METH_VARARGS, dbmopen__doc__},
-
-static PyObject *
-dbmopen_impl(PyModuleDef *module, const char *filename, const char *flags, int mode);
-
-static PyObject *
-dbmopen(PyModuleDef *module, PyObject *args)
-{
- PyObject *return_value = NULL;
- const char *filename;
- const char *flags = "r";
- int mode = 438;
-
- if (!PyArg_ParseTuple(args,
- "s|si:open",
- &filename, &flags, &mode))
- goto exit;
- return_value = dbmopen_impl(module, filename, flags, mode);
-
-exit:
- return return_value;
-}
-
static PyObject *
-dbmopen_impl(PyModuleDef *module, const char *filename, const char *flags, int mode)
-/*[clinic end generated code: output=9a7b725f9c4dcec2 input=6499ab0fab1333ac]*/
+dbmopen_impl(PyModuleDef *module, const char *filename, const char *flags,
+ int mode)
+/*[clinic end generated code: output=e8d4b36f25c733fd input=226334bade5764e6]*/
{
int iflags;
diff --git a/Modules/_decimal/_decimal.c b/Modules/_decimal/_decimal.c
index f00088736e..169914c2f7 100644
--- a/Modules/_decimal/_decimal.c
+++ b/Modules/_decimal/_decimal.c
@@ -5640,7 +5640,7 @@ PyInit__decimal(void)
goto error; /* GCOV_NOT_REACHED */
}
- ASSIGN_PTR(cm->ex, PyErr_NewException((char *)cm->fqname, base, NULL));
+ ASSIGN_PTR(cm->ex, PyErr_NewException(cm->fqname, base, NULL));
Py_DECREF(base);
/* add to module */
@@ -5672,7 +5672,7 @@ PyInit__decimal(void)
goto error; /* GCOV_NOT_REACHED */
}
- ASSIGN_PTR(cm->ex, PyErr_NewException((char *)cm->fqname, base, NULL));
+ ASSIGN_PTR(cm->ex, PyErr_NewException(cm->fqname, base, NULL));
Py_DECREF(base);
Py_INCREF(cm->ex);
diff --git a/Modules/_decimal/docstrings.h b/Modules/_decimal/docstrings.h
index a6490b982a..71029a994b 100644
--- a/Modules/_decimal/docstrings.h
+++ b/Modules/_decimal/docstrings.h
@@ -19,26 +19,30 @@
PyDoc_STRVAR(doc__decimal,
"C decimal arithmetic module");
-PyDoc_STRVAR(doc_getcontext,"\n\
-getcontext() - Get the current default context.\n\
+PyDoc_STRVAR(doc_getcontext,
+"getcontext($module, /)\n--\n\n\
+Get the current default context.\n\
\n");
-PyDoc_STRVAR(doc_setcontext,"\n\
-setcontext(c) - Set a new default context.\n\
+PyDoc_STRVAR(doc_setcontext,
+"setcontext($module, context, /)\n--\n\n\
+Set a new default context.\n\
\n");
-PyDoc_STRVAR(doc_localcontext,"\n\
-localcontext(ctx=None) - Return a context manager that will set the default\n\
-context to a copy of ctx on entry to the with-statement and restore the\n\
-previous default context when exiting the with-statement. If no context is\n\
-specified, a copy of the current default context is used.\n\
+PyDoc_STRVAR(doc_localcontext,
+"localcontext($module, /, ctx=None)\n--\n\n\
+Return a context manager that will set the default context to a copy of ctx\n\
+on entry to the with-statement and restore the previous default context when\n\
+exiting the with-statement. If no context is specified, a copy of the current\n\
+default context is used.\n\
\n");
#ifdef EXTRA_FUNCTIONALITY
-PyDoc_STRVAR(doc_ieee_context,"\n\
-IEEEContext(bits) - Return a context object initialized to the proper values for\n\
-one of the IEEE interchange formats. The argument must be a multiple of 32 and\n\
-less than IEEE_CONTEXT_MAX_BITS. For the most common values, the constants\n\
+PyDoc_STRVAR(doc_ieee_context,
+"IEEEContext($module, bits, /)\n--\n\n\
+Return a context object initialized to the proper values for one of the\n\
+IEEE interchange formats. The argument must be a multiple of 32 and less\n\
+than IEEE_CONTEXT_MAX_BITS. For the most common values, the constants\n\
DECIMAL32, DECIMAL64 and DECIMAL128 are provided.\n\
\n");
#endif
@@ -48,32 +52,34 @@ DECIMAL32, DECIMAL64 and DECIMAL128 are provided.\n\
/* Decimal Object and Methods */
/******************************************************************************/
-PyDoc_STRVAR(doc_decimal,"\n\
-Decimal(value=\"0\", context=None): Construct a new Decimal object.\n\
-value can be an integer, string, tuple, or another Decimal object.\n\
-If no value is given, return Decimal('0'). The context does not affect\n\
-the conversion and is only passed to determine if the InvalidOperation\n\
-trap is active.\n\
+PyDoc_STRVAR(doc_decimal,
+"Decimal(value=\"0\", context=None)\n--\n\n\
+Construct a new Decimal object. 'value' can be an integer, string, tuple,\n\
+or another Decimal object. If no value is given, return Decimal('0'). The\n\
+context does not affect the conversion and is only passed to determine if\n\
+the InvalidOperation trap is active.\n\
\n");
-PyDoc_STRVAR(doc_adjusted,"\n\
-adjusted() - Return the adjusted exponent of the number.\n\
-\n\
-Defined as exp + digits - 1.\n\
+PyDoc_STRVAR(doc_adjusted,
+"adjusted($self, /)\n--\n\n\
+Return the adjusted exponent of the number. Defined as exp + digits - 1.\n\
\n");
-PyDoc_STRVAR(doc_as_tuple,"\n\
-as_tuple() - Return a tuple representation of the number.\n\
+PyDoc_STRVAR(doc_as_tuple,
+"as_tuple($self, /)\n--\n\n\
+Return a tuple representation of the number.\n\
\n");
-PyDoc_STRVAR(doc_canonical,"\n\
-canonical() - Return the canonical encoding of the argument. Currently,\n\
-the encoding of a Decimal instance is always canonical, so this operation\n\
-returns its argument unchanged.\n\
+PyDoc_STRVAR(doc_canonical,
+"canonical($self, /)\n--\n\n\
+Return the canonical encoding of the argument. Currently, the encoding\n\
+of a Decimal instance is always canonical, so this operation returns its\n\
+argument unchanged.\n\
\n");
-PyDoc_STRVAR(doc_compare,"\n\
-compare(other, context=None) - Compare self to other. Return a decimal value:\n\
+PyDoc_STRVAR(doc_compare,
+"compare($self, /, other, context=None)\n--\n\n\
+Compare self to other. Return a decimal value:\n\
\n\
a or b is a NaN ==> Decimal('NaN')\n\
a < b ==> Decimal('-1')\n\
@@ -81,17 +87,18 @@ compare(other, context=None) - Compare self to other. Return a decimal value:\n\
a > b ==> Decimal('1')\n\
\n");
-PyDoc_STRVAR(doc_compare_signal,"\n\
-compare_signal(other, context=None) - Identical to compare, except that\n\
-all NaNs signal.\n\
+PyDoc_STRVAR(doc_compare_signal,
+"compare_signal($self, /, other, context=None)\n--\n\n\
+Identical to compare, except that all NaNs signal.\n\
\n");
-PyDoc_STRVAR(doc_compare_total,"\n\
-compare_total(other, context=None) - Compare two operands using their\n\
-abstract representation rather than their numerical value. Similar to the\n\
-compare() method, but the result gives a total ordering on Decimal instances.\n\
-Two Decimal instances with the same numeric value but different representations\n\
-compare unequal in this ordering:\n\
+PyDoc_STRVAR(doc_compare_total,
+"compare_total($self, /, other, context=None)\n--\n\n\
+Compare two operands using their abstract representation rather than\n\
+their numerical value. Similar to the compare() method, but the result\n\
+gives a total ordering on Decimal instances. Two Decimal instances with\n\
+the same numeric value but different representations compare unequal\n\
+in this ordering:\n\
\n\
>>> Decimal('12.0').compare_total(Decimal('12'))\n\
Decimal('-1')\n\
@@ -107,36 +114,39 @@ and no rounding is performed. As an exception, the C version may raise\n\
InvalidOperation if the second operand cannot be converted exactly.\n\
\n");
-PyDoc_STRVAR(doc_compare_total_mag,"\n\
-compare_total_mag(other, context=None) - Compare two operands using their\n\
-abstract representation rather than their value as in compare_total(), but\n\
-ignoring the sign of each operand. x.compare_total_mag(y) is equivalent to\n\
-x.copy_abs().compare_total(y.copy_abs()).\n\
+PyDoc_STRVAR(doc_compare_total_mag,
+"compare_total_mag($self, /, other, context=None)\n--\n\n\
+Compare two operands using their abstract representation rather than their\n\
+value as in compare_total(), but ignoring the sign of each operand.\n\
+\n\
+x.compare_total_mag(y) is equivalent to x.copy_abs().compare_total(y.copy_abs()).\n\
\n\
This operation is unaffected by context and is quiet: no flags are changed\n\
and no rounding is performed. As an exception, the C version may raise\n\
InvalidOperation if the second operand cannot be converted exactly.\n\
\n");
-PyDoc_STRVAR(doc_conjugate,"\n\
-conjugate() - Return self.\n\
+PyDoc_STRVAR(doc_conjugate,
+"conjugate($self, /)\n--\n\n\
+Return self.\n\
\n");
-PyDoc_STRVAR(doc_copy_abs,"\n\
-copy_abs() - Return the absolute value of the argument. This operation\n\
-is unaffected by context and is quiet: no flags are changed and no rounding\n\
-is performed.\n\
+PyDoc_STRVAR(doc_copy_abs,
+"copy_abs($self, /)\n--\n\n\
+Return the absolute value of the argument. This operation is unaffected by\n\
+context and is quiet: no flags are changed and no rounding is performed.\n\
\n");
-PyDoc_STRVAR(doc_copy_negate,"\n\
-copy_negate() - Return the negation of the argument. This operation is\n\
-unaffected by context and is quiet: no flags are changed and no rounding\n\
-is performed.\n\
+PyDoc_STRVAR(doc_copy_negate,
+"copy_negate($self, /)\n--\n\n\
+Return the negation of the argument. This operation is unaffected by context\n\
+and is quiet: no flags are changed and no rounding is performed.\n\
\n");
-PyDoc_STRVAR(doc_copy_sign,"\n\
-copy_sign(other, context=None) - Return a copy of the first operand with\n\
-the sign set to be the same as the sign of the second operand. For example:\n\
+PyDoc_STRVAR(doc_copy_sign,
+"copy_sign($self, /, other, context=None)\n--\n\n\
+Return a copy of the first operand with the sign set to be the same as the\n\
+sign of the second operand. For example:\n\
\n\
>>> Decimal('2.3').copy_sign(Decimal('-1.5'))\n\
Decimal('-2.3')\n\
@@ -146,14 +156,16 @@ and no rounding is performed. As an exception, the C version may raise\n\
InvalidOperation if the second operand cannot be converted exactly.\n\
\n");
-PyDoc_STRVAR(doc_exp,"\n\
-exp(context=None) - Return the value of the (natural) exponential function\n\
-e**x at the given number. The function always uses the ROUND_HALF_EVEN mode\n\
-and the result is correctly rounded.\n\
+PyDoc_STRVAR(doc_exp,
+"exp($self, /, context=None)\n--\n\n\
+Return the value of the (natural) exponential function e**x at the given\n\
+number. The function always uses the ROUND_HALF_EVEN mode and the result\n\
+is correctly rounded.\n\
\n");
-PyDoc_STRVAR(doc_from_float,"\n\
-from_float(f) - Class method that converts a float to a decimal number, exactly.\n\
+PyDoc_STRVAR(doc_from_float,
+"from_float($type, f, /)\n--\n\n\
+Class method that converts a float to a decimal number, exactly.\n\
Since 0.1 is not exactly representable in binary floating point,\n\
Decimal.from_float(0.1) is not the same as Decimal('0.1').\n\
\n\
@@ -168,155 +180,176 @@ Decimal.from_float(0.1) is not the same as Decimal('0.1').\n\
\n\
\n");
-PyDoc_STRVAR(doc_fma,"\n\
-fma(other, third, context=None) - Fused multiply-add. Return self*other+third\n\
-with no rounding of the intermediate product self*other.\n\
+PyDoc_STRVAR(doc_fma,
+"fma($self, /, other, third, context=None)\n--\n\n\
+Fused multiply-add. Return self*other+third with no rounding of the\n\
+intermediate product self*other.\n\
\n\
>>> Decimal(2).fma(3, 5)\n\
Decimal('11')\n\
\n\
\n");
-PyDoc_STRVAR(doc_is_canonical,"\n\
-is_canonical() - Return True if the argument is canonical and False otherwise.\n\
-Currently, a Decimal instance is always canonical, so this operation always\n\
-returns True.\n\
+PyDoc_STRVAR(doc_is_canonical,
+"is_canonical($self, /)\n--\n\n\
+Return True if the argument is canonical and False otherwise. Currently,\n\
+a Decimal instance is always canonical, so this operation always returns\n\
+True.\n\
\n");
-PyDoc_STRVAR(doc_is_finite,"\n\
-is_finite() - Return True if the argument is a finite number, and False if the\n\
-argument is infinite or a NaN.\n\
+PyDoc_STRVAR(doc_is_finite,
+"is_finite($self, /)\n--\n\n\
+Return True if the argument is a finite number, and False if the argument\n\
+is infinite or a NaN.\n\
\n");
-PyDoc_STRVAR(doc_is_infinite,"\n\
-is_infinite() - Return True if the argument is either positive or negative\n\
-infinity and False otherwise.\n\
+PyDoc_STRVAR(doc_is_infinite,
+"is_infinite($self, /)\n--\n\n\
+Return True if the argument is either positive or negative infinity and\n\
+False otherwise.\n\
\n");
-PyDoc_STRVAR(doc_is_nan,"\n\
-is_nan() - Return True if the argument is a (quiet or signaling) NaN and\n\
-False otherwise.\n\
+PyDoc_STRVAR(doc_is_nan,
+"is_nan($self, /)\n--\n\n\
+Return True if the argument is a (quiet or signaling) NaN and False\n\
+otherwise.\n\
\n");
-PyDoc_STRVAR(doc_is_normal,"\n\
-is_normal(context=None) - Return True if the argument is a normal finite\n\
-non-zero number with an adjusted exponent greater than or equal to Emin.\n\
-Return False if the argument is zero, subnormal, infinite or a NaN.\n\
+PyDoc_STRVAR(doc_is_normal,
+"is_normal($self, /, context=None)\n--\n\n\
+Return True if the argument is a normal finite non-zero number with an\n\
+adjusted exponent greater than or equal to Emin. Return False if the\n\
+argument is zero, subnormal, infinite or a NaN.\n\
\n");
-PyDoc_STRVAR(doc_is_qnan,"\n\
-is_qnan() - Return True if the argument is a quiet NaN, and False otherwise.\n\
+PyDoc_STRVAR(doc_is_qnan,
+"is_qnan($self, /)\n--\n\n\
+Return True if the argument is a quiet NaN, and False otherwise.\n\
\n");
-PyDoc_STRVAR(doc_is_signed,"\n\
-is_signed() - Return True if the argument has a negative sign and\n\
-False otherwise. Note that both zeros and NaNs can carry signs.\n\
+PyDoc_STRVAR(doc_is_signed,
+"is_signed($self, /)\n--\n\n\
+Return True if the argument has a negative sign and False otherwise.\n\
+Note that both zeros and NaNs can carry signs.\n\
\n");
-PyDoc_STRVAR(doc_is_snan,"\n\
-is_snan() - Return True if the argument is a signaling NaN and False otherwise.\n\
+PyDoc_STRVAR(doc_is_snan,
+"is_snan($self, /)\n--\n\n\
+Return True if the argument is a signaling NaN and False otherwise.\n\
\n");
-PyDoc_STRVAR(doc_is_subnormal,"\n\
-is_subnormal(context=None) - Return True if the argument is subnormal, and\n\
-False otherwise. A number is subnormal if it is non-zero, finite, and has an\n\
-adjusted exponent less than Emin.\n\
+PyDoc_STRVAR(doc_is_subnormal,
+"is_subnormal($self, /, context=None)\n--\n\n\
+Return True if the argument is subnormal, and False otherwise. A number is\n\
+subnormal if it is non-zero, finite, and has an adjusted exponent less\n\
+than Emin.\n\
\n");
-PyDoc_STRVAR(doc_is_zero,"\n\
-is_zero() - Return True if the argument is a (positive or negative) zero and\n\
-False otherwise.\n\
+PyDoc_STRVAR(doc_is_zero,
+"is_zero($self, /)\n--\n\n\
+Return True if the argument is a (positive or negative) zero and False\n\
+otherwise.\n\
\n");
-PyDoc_STRVAR(doc_ln,"\n\
-ln(context=None) - Return the natural (base e) logarithm of the operand.\n\
-The function always uses the ROUND_HALF_EVEN mode and the result is\n\
-correctly rounded.\n\
+PyDoc_STRVAR(doc_ln,
+"ln($self, /, context=None)\n--\n\n\
+Return the natural (base e) logarithm of the operand. The function always\n\
+uses the ROUND_HALF_EVEN mode and the result is correctly rounded.\n\
\n");
-PyDoc_STRVAR(doc_log10,"\n\
-log10(context=None) - Return the base ten logarithm of the operand.\n\
-The function always uses the ROUND_HALF_EVEN mode and the result is\n\
-correctly rounded.\n\
+PyDoc_STRVAR(doc_log10,
+"log10($self, /, context=None)\n--\n\n\
+Return the base ten logarithm of the operand. The function always uses the\n\
+ROUND_HALF_EVEN mode and the result is correctly rounded.\n\
\n");
-PyDoc_STRVAR(doc_logb,"\n\
-logb(context=None) - For a non-zero number, return the adjusted exponent\n\
-of the operand as a Decimal instance. If the operand is a zero, then\n\
-Decimal('-Infinity') is returned and the DivisionByZero condition is\n\
-raised. If the operand is an infinity then Decimal('Infinity') is returned.\n\
+PyDoc_STRVAR(doc_logb,
+"logb($self, /, context=None)\n--\n\n\
+For a non-zero number, return the adjusted exponent of the operand as a\n\
+Decimal instance. If the operand is a zero, then Decimal('-Infinity') is\n\
+returned and the DivisionByZero condition is raised. If the operand is\n\
+an infinity then Decimal('Infinity') is returned.\n\
\n");
-PyDoc_STRVAR(doc_logical_and,"\n\
-logical_and(other, context=None) - Return the digit-wise and of the two\n\
-(logical) operands.\n\
+PyDoc_STRVAR(doc_logical_and,
+"logical_and($self, /, other, context=None)\n--\n\n\
+Return the digit-wise 'and' of the two (logical) operands.\n\
\n");
-PyDoc_STRVAR(doc_logical_invert,"\n\
-logical_invert(context=None) - Return the digit-wise inversion of the\n\
-(logical) operand.\n\
+PyDoc_STRVAR(doc_logical_invert,
+"logical_invert($self, /, context=None)\n--\n\n\
+Return the digit-wise inversion of the (logical) operand.\n\
\n");
-PyDoc_STRVAR(doc_logical_or,"\n\
-logical_or(other, context=None) - Return the digit-wise or of the two\n\
-(logical) operands.\n\
+PyDoc_STRVAR(doc_logical_or,
+"logical_or($self, /, other, context=None)\n--\n\n\
+Return the digit-wise 'or' of the two (logical) operands.\n\
\n");
-PyDoc_STRVAR(doc_logical_xor,"\n\
-logical_xor(other, context=None) - Return the digit-wise exclusive or of the\n\
-two (logical) operands.\n\
+PyDoc_STRVAR(doc_logical_xor,
+"logical_xor($self, /, other, context=None)\n--\n\n\
+Return the digit-wise 'exclusive or' of the two (logical) operands.\n\
\n");
-PyDoc_STRVAR(doc_max,"\n\
-max(other, context=None) - Maximum of self and other. If one operand is a\n\
-quiet NaN and the other is numeric, the numeric operand is returned.\n\
+PyDoc_STRVAR(doc_max,
+"max($self, /, other, context=None)\n--\n\n\
+Maximum of self and other. If one operand is a quiet NaN and the other is\n\
+numeric, the numeric operand is returned.\n\
\n");
-PyDoc_STRVAR(doc_max_mag,"\n\
-max_mag(other, context=None) - Similar to the max() method, but the\n\
-comparison is done using the absolute values of the operands.\n\
+PyDoc_STRVAR(doc_max_mag,
+"max_mag($self, /, other, context=None)\n--\n\n\
+Similar to the max() method, but the comparison is done using the absolute\n\
+values of the operands.\n\
\n");
-PyDoc_STRVAR(doc_min,"\n\
-min(other, context=None) - Minimum of self and other. If one operand is a\n\
-quiet NaN and the other is numeric, the numeric operand is returned.\n\
+PyDoc_STRVAR(doc_min,
+"min($self, /, other, context=None)\n--\n\n\
+Minimum of self and other. If one operand is a quiet NaN and the other is\n\
+numeric, the numeric operand is returned.\n\
\n");
-PyDoc_STRVAR(doc_min_mag,"\n\
-min_mag(other, context=None) - Similar to the min() method, but the\n\
-comparison is done using the absolute values of the operands.\n\
+PyDoc_STRVAR(doc_min_mag,
+"min_mag($self, /, other, context=None)\n--\n\n\
+Similar to the min() method, but the comparison is done using the absolute\n\
+values of the operands.\n\
\n");
-PyDoc_STRVAR(doc_next_minus,"\n\
-next_minus(context=None) - Return the largest number representable in the\n\
-given context (or in the current default context if no context is given) that\n\
-is smaller than the given operand.\n\
+PyDoc_STRVAR(doc_next_minus,
+"next_minus($self, /, context=None)\n--\n\n\
+Return the largest number representable in the given context (or in the\n\
+current default context if no context is given) that is smaller than the\n\
+given operand.\n\
\n");
-PyDoc_STRVAR(doc_next_plus,"\n\
-next_plus(context=None) - Return the smallest number representable in the\n\
-given context (or in the current default context if no context is given) that\n\
-is larger than the given operand.\n\
+PyDoc_STRVAR(doc_next_plus,
+"next_plus($self, /, context=None)\n--\n\n\
+Return the smallest number representable in the given context (or in the\n\
+current default context if no context is given) that is larger than the\n\
+given operand.\n\
\n");
-PyDoc_STRVAR(doc_next_toward,"\n\
-next_toward(other, context=None) - If the two operands are unequal, return\n\
-the number closest to the first operand in the direction of the second operand.\n\
-If both operands are numerically equal, return a copy of the first operand\n\
-with the sign set to be the same as the sign of the second operand.\n\
+PyDoc_STRVAR(doc_next_toward,
+"next_toward($self, /, other, context=None)\n--\n\n\
+If the two operands are unequal, return the number closest to the first\n\
+operand in the direction of the second operand. If both operands are\n\
+numerically equal, return a copy of the first operand with the sign set\n\
+to be the same as the sign of the second operand.\n\
\n");
-PyDoc_STRVAR(doc_normalize,"\n\
-normalize(context=None) - Normalize the number by stripping the rightmost\n\
-trailing zeros and converting any result equal to Decimal('0') to Decimal('0e0').\n\
-Used for producing canonical values for members of an equivalence class. For\n\
-example, Decimal('32.100') and Decimal('0.321000e+2') both normalize to the\n\
-equivalent value Decimal('32.1').\n\
+PyDoc_STRVAR(doc_normalize,
+"normalize($self, /, context=None)\n--\n\n\
+Normalize the number by stripping the rightmost trailing zeros and\n\
+converting any result equal to Decimal('0') to Decimal('0e0'). Used\n\
+for producing canonical values for members of an equivalence class.\n\
+For example, Decimal('32.100') and Decimal('0.321000e+2') both normalize\n\
+to the equivalent value Decimal('32.1').\n\
\n");
-PyDoc_STRVAR(doc_number_class,"\n\
-number_class(context=None) - Return a string describing the class of the\n\
-operand. The returned value is one of the following ten strings:\n\
+PyDoc_STRVAR(doc_number_class,
+"number_class($self, /, context=None)\n--\n\n\
+Return a string describing the class of the operand. The returned value\n\
+is one of the following ten strings:\n\
\n\
* '-Infinity', indicating that the operand is negative infinity.\n\
* '-Normal', indicating that the operand is a negative normal number.\n\
@@ -331,9 +364,10 @@ operand. The returned value is one of the following ten strings:\n\
\n\
\n");
-PyDoc_STRVAR(doc_quantize,"\n\
-quantize(exp, rounding=None, context=None) - Return a value equal to the\n\
-first operand after rounding and having the exponent of the second operand.\n\
+PyDoc_STRVAR(doc_quantize,
+"quantize($self, /, exp, rounding=None, context=None)\n--\n\n\
+Return a value equal to the first operand after rounding and having the\n\
+exponent of the second operand.\n\
\n\
>>> Decimal('1.41421356').quantize(Decimal('1.000'))\n\
Decimal('1.414')\n\
@@ -352,93 +386,98 @@ rounding argument if given, else by the given context argument; if neither\n\
argument is given, the rounding mode of the current thread's context is used.\n\
\n");
-PyDoc_STRVAR(doc_radix,"\n\
-radix() - Return Decimal(10), the radix (base) in which the Decimal class does\n\
+PyDoc_STRVAR(doc_radix,
+"radix($self, /)\n--\n\n\
+Return Decimal(10), the radix (base) in which the Decimal class does\n\
all its arithmetic. Included for compatibility with the specification.\n\
\n");
-PyDoc_STRVAR(doc_remainder_near,"\n\
-remainder_near(other, context=None) - Return the remainder from dividing\n\
-self by other. This differs from self % other in that the sign of the\n\
-remainder is chosen so as to minimize its absolute value. More precisely, the\n\
-return value is self - n * other where n is the integer nearest to the exact\n\
-value of self / other, and if two integers are equally near then the even one\n\
-is chosen.\n\
+PyDoc_STRVAR(doc_remainder_near,
+"remainder_near($self, /, other, context=None)\n--\n\n\
+Return the remainder from dividing self by other. This differs from\n\
+self % other in that the sign of the remainder is chosen so as to minimize\n\
+its absolute value. More precisely, the return value is self - n * other\n\
+where n is the integer nearest to the exact value of self / other, and\n\
+if two integers are equally near then the even one is chosen.\n\
\n\
If the result is zero then its sign will be the sign of self.\n\
\n");
-PyDoc_STRVAR(doc_rotate,"\n\
-rotate(other, context=None) - Return the result of rotating the digits of the\n\
-first operand by an amount specified by the second operand. The second operand\n\
-must be an integer in the range -precision through precision. The absolute\n\
-value of the second operand gives the number of places to rotate. If the second\n\
-operand is positive then rotation is to the left; otherwise rotation is to the\n\
-right. The coefficient of the first operand is padded on the left with zeros to\n\
+PyDoc_STRVAR(doc_rotate,
+"rotate($self, /, other, context=None)\n--\n\n\
+Return the result of rotating the digits of the first operand by an amount\n\
+specified by the second operand. The second operand must be an integer in\n\
+the range -precision through precision. The absolute value of the second\n\
+operand gives the number of places to rotate. If the second operand is\n\
+positive then rotation is to the left; otherwise rotation is to the right.\n\
+The coefficient of the first operand is padded on the left with zeros to\n\
length precision if necessary. The sign and exponent of the first operand are\n\
unchanged.\n\
\n");
-PyDoc_STRVAR(doc_same_quantum,"\n\
-same_quantum(other, context=None) - Test whether self and other have the\n\
-same exponent or whether both are NaN.\n\
+PyDoc_STRVAR(doc_same_quantum,
+"same_quantum($self, /, other, context=None)\n--\n\n\
+Test whether self and other have the same exponent or whether both are NaN.\n\
\n\
This operation is unaffected by context and is quiet: no flags are changed\n\
and no rounding is performed. As an exception, the C version may raise\n\
InvalidOperation if the second operand cannot be converted exactly.\n\
\n");
-PyDoc_STRVAR(doc_scaleb,"\n\
-scaleb(other, context=None) - Return the first operand with the exponent\n\
-adjusted the second. Equivalently, return the first operand multiplied by\n\
-10**other. The second operand must be an integer.\n\
+PyDoc_STRVAR(doc_scaleb,
+"scaleb($self, /, other, context=None)\n--\n\n\
+Return the first operand with the exponent adjusted the second. Equivalently,\n\
+return the first operand multiplied by 10**other. The second operand must be\n\
+an integer.\n\
\n");
-PyDoc_STRVAR(doc_shift,"\n\
-shift(other, context=None) - Return the result of shifting the digits of\n\
-the first operand by an amount specified by the second operand. The second\n\
-operand must be an integer in the range -precision through precision. The\n\
-absolute value of the second operand gives the number of places to shift.\n\
-If the second operand is positive, then the shift is to the left; otherwise\n\
-the shift is to the right. Digits shifted into the coefficient are zeros.\n\
-The sign and exponent of the first operand are unchanged.\n\
+PyDoc_STRVAR(doc_shift,
+"shift($self, /, other, context=None)\n--\n\n\
+Return the result of shifting the digits of the first operand by an amount\n\
+specified by the second operand. The second operand must be an integer in\n\
+the range -precision through precision. The absolute value of the second\n\
+operand gives the number of places to shift. If the second operand is\n\
+positive, then the shift is to the left; otherwise the shift is to the\n\
+right. Digits shifted into the coefficient are zeros. The sign and exponent\n\
+of the first operand are unchanged.\n\
\n");
-PyDoc_STRVAR(doc_sqrt,"\n\
-sqrt(context=None) - Return the square root of the argument to full precision.\n\
-The result is correctly rounded using the ROUND_HALF_EVEN rounding mode.\n\
+PyDoc_STRVAR(doc_sqrt,
+"sqrt($self, /, context=None)\n--\n\n\
+Return the square root of the argument to full precision. The result is\n\
+correctly rounded using the ROUND_HALF_EVEN rounding mode.\n\
\n");
-PyDoc_STRVAR(doc_to_eng_string,"\n\
-to_eng_string(context=None) - Convert to an engineering-type string.\n\
-Engineering notation has an exponent which is a multiple of 3, so there\n\
-are up to 3 digits left of the decimal place. For example, Decimal('123E+1')\n\
-is converted to Decimal('1.23E+3').\n\
+PyDoc_STRVAR(doc_to_eng_string,
+"to_eng_string($self, /, context=None)\n--\n\n\
+Convert to an engineering-type string. Engineering notation has an exponent\n\
+which is a multiple of 3, so there are up to 3 digits left of the decimal\n\
+place. For example, Decimal('123E+1') is converted to Decimal('1.23E+3').\n\
\n\
The value of context.capitals determines whether the exponent sign is lower\n\
or upper case. Otherwise, the context does not affect the operation.\n\
\n");
-PyDoc_STRVAR(doc_to_integral,"\n\
-to_integral(rounding=None, context=None) - Identical to the\n\
-to_integral_value() method. The to_integral() name has been kept\n\
-for compatibility with older versions.\n\
+PyDoc_STRVAR(doc_to_integral,
+"to_integral($self, /, rounding=None, context=None)\n--\n\n\
+Identical to the to_integral_value() method. The to_integral() name has been\n\
+kept for compatibility with older versions.\n\
\n");
-PyDoc_STRVAR(doc_to_integral_exact,"\n\
-to_integral_exact(rounding=None, context=None) - Round to the nearest\n\
-integer, signaling Inexact or Rounded as appropriate if rounding occurs.\n\
-The rounding mode is determined by the rounding parameter if given, else\n\
-by the given context. If neither parameter is given, then the rounding mode\n\
-of the current default context is used.\n\
+PyDoc_STRVAR(doc_to_integral_exact,
+"to_integral_exact($self, /, rounding=None, context=None)\n--\n\n\
+Round to the nearest integer, signaling Inexact or Rounded as appropriate if\n\
+rounding occurs. The rounding mode is determined by the rounding parameter\n\
+if given, else by the given context. If neither parameter is given, then the\n\
+rounding mode of the current default context is used.\n\
\n");
-PyDoc_STRVAR(doc_to_integral_value,"\n\
-to_integral_value(rounding=None, context=None) - Round to the nearest\n\
-integer without signaling Inexact or Rounded. The rounding mode is determined\n\
-by the rounding parameter if given, else by the given context. If neither\n\
-parameter is given, then the rounding mode of the current default context is\n\
-used.\n\
+PyDoc_STRVAR(doc_to_integral_value,
+"to_integral_value($self, /, rounding=None, context=None)\n--\n\n\
+Round to the nearest integer without signaling Inexact or Rounded. The\n\
+rounding mode is determined by the rounding parameter if given, else by\n\
+the given context. If neither parameter is given, then the rounding mode\n\
+of the current default context is used.\n\
\n");
@@ -446,9 +485,10 @@ used.\n\
/* Context Object and Methods */
/******************************************************************************/
-PyDoc_STRVAR(doc_context,"\n\
+PyDoc_STRVAR(doc_context,
+"Context(prec=None, rounding=None, Emin=None, Emax=None, capitals=None, clamp=None, flags=None, traps=None)\n--\n\n\
The context affects almost all operations and controls rounding,\n\
-Over/Underflow, raising of exceptions and much more. A new context\n\
+Over/Underflow, raising of exceptions and much more. A new context\n\
can be constructed as follows:\n\
\n\
>>> c = Context(prec=28, Emin=-425000000, Emax=425000000,\n\
@@ -460,308 +500,372 @@ can be constructed as follows:\n\
\n");
#ifdef EXTRA_FUNCTIONALITY
-PyDoc_STRVAR(doc_ctx_apply,"\n\
-apply(x) - Apply self to Decimal x.\n\
+PyDoc_STRVAR(doc_ctx_apply,
+"apply($self, x, /)\n--\n\n\
+Apply self to Decimal x.\n\
\n");
#endif
-PyDoc_STRVAR(doc_ctx_clear_flags,"\n\
-clear_flags() - Reset all flags to False.\n\
+PyDoc_STRVAR(doc_ctx_clear_flags,
+"clear_flags($self, /)\n--\n\n\
+Reset all flags to False.\n\
\n");
-PyDoc_STRVAR(doc_ctx_clear_traps,"\n\
-clear_traps() - Set all traps to False.\n\
+PyDoc_STRVAR(doc_ctx_clear_traps,
+"clear_traps($self, /)\n--\n\n\
+Set all traps to False.\n\
\n");
-PyDoc_STRVAR(doc_ctx_copy,"\n\
-copy() - Return a duplicate of the context with all flags cleared.\n\
+PyDoc_STRVAR(doc_ctx_copy,
+"copy($self, /)\n--\n\n\
+Return a duplicate of the context with all flags cleared.\n\
\n");
-PyDoc_STRVAR(doc_ctx_copy_decimal,"\n\
-copy_decimal(x) - Return a copy of Decimal x.\n\
+PyDoc_STRVAR(doc_ctx_copy_decimal,
+"copy_decimal($self, x, /)\n--\n\n\
+Return a copy of Decimal x.\n\
\n");
-PyDoc_STRVAR(doc_ctx_create_decimal,"\n\
-create_decimal(x) - Create a new Decimal instance from x, using self as the\n\
-context. Unlike the Decimal constructor, this function observes the context\n\
-limits.\n\
+PyDoc_STRVAR(doc_ctx_create_decimal,
+"create_decimal($self, num=\"0\", /)\n--\n\n\
+Create a new Decimal instance from num, using self as the context. Unlike the\n\
+Decimal constructor, this function observes the context limits.\n\
\n");
-PyDoc_STRVAR(doc_ctx_create_decimal_from_float,"\n\
-create_decimal_from_float(f) - Create a new Decimal instance from float f.\n\
-Unlike the Decimal.from_float() class method, this function observes the\n\
-context limits.\n\
+PyDoc_STRVAR(doc_ctx_create_decimal_from_float,
+"create_decimal_from_float($self, f, /)\n--\n\n\
+Create a new Decimal instance from float f. Unlike the Decimal.from_float()\n\
+class method, this function observes the context limits.\n\
\n");
-PyDoc_STRVAR(doc_ctx_Etiny,"\n\
-Etiny() - Return a value equal to Emin - prec + 1, which is the minimum\n\
-exponent value for subnormal results. When underflow occurs, the exponent\n\
-is set to Etiny.\n\
+PyDoc_STRVAR(doc_ctx_Etiny,
+"Etiny($self, /)\n--\n\n\
+Return a value equal to Emin - prec + 1, which is the minimum exponent value\n\
+for subnormal results. When underflow occurs, the exponent is set to Etiny.\n\
\n");
-PyDoc_STRVAR(doc_ctx_Etop,"\n\
-Etop() - Return a value equal to Emax - prec + 1. This is the maximum exponent\n\
-if the _clamp field of the context is set to 1 (IEEE clamp mode). Etop() must\n\
-not be negative.\n\
+PyDoc_STRVAR(doc_ctx_Etop,
+"Etop($self, /)\n--\n\n\
+Return a value equal to Emax - prec + 1. This is the maximum exponent\n\
+if the _clamp field of the context is set to 1 (IEEE clamp mode). Etop()\n\
+must not be negative.\n\
\n");
-PyDoc_STRVAR(doc_ctx_abs,"\n\
-abs(x) - Return the absolute value of x.\n\
+PyDoc_STRVAR(doc_ctx_abs,
+"abs($self, x, /)\n--\n\n\
+Return the absolute value of x.\n\
\n");
-PyDoc_STRVAR(doc_ctx_add,"\n\
-add(x, y) - Return the sum of x and y.\n\
+PyDoc_STRVAR(doc_ctx_add,
+"add($self, x, y, /)\n--\n\n\
+Return the sum of x and y.\n\
\n");
-PyDoc_STRVAR(doc_ctx_canonical,"\n\
-canonical(x) - Return a new instance of x.\n\
+PyDoc_STRVAR(doc_ctx_canonical,
+"canonical($self, x, /)\n--\n\n\
+Return a new instance of x.\n\
\n");
-PyDoc_STRVAR(doc_ctx_compare,"\n\
-compare(x, y) - Compare x and y numerically.\n\
+PyDoc_STRVAR(doc_ctx_compare,
+"compare($self, x, y, /)\n--\n\n\
+Compare x and y numerically.\n\
\n");
-PyDoc_STRVAR(doc_ctx_compare_signal,"\n\
-compare_signal(x, y) - Compare x and y numerically. All NaNs signal.\n\
+PyDoc_STRVAR(doc_ctx_compare_signal,
+"compare_signal($self, x, y, /)\n--\n\n\
+Compare x and y numerically. All NaNs signal.\n\
\n");
-PyDoc_STRVAR(doc_ctx_compare_total,"\n\
-compare_total(x, y) - Compare x and y using their abstract representation.\n\
+PyDoc_STRVAR(doc_ctx_compare_total,
+"compare_total($self, x, y, /)\n--\n\n\
+Compare x and y using their abstract representation.\n\
\n");
-PyDoc_STRVAR(doc_ctx_compare_total_mag,"\n\
-compare_total_mag(x, y) - Compare x and y using their abstract representation,\n\
-ignoring sign.\n\
+PyDoc_STRVAR(doc_ctx_compare_total_mag,
+"compare_total_mag($self, x, y, /)\n--\n\n\
+Compare x and y using their abstract representation, ignoring sign.\n\
\n");
-PyDoc_STRVAR(doc_ctx_copy_abs,"\n\
-copy_abs(x) - Return a copy of x with the sign set to 0.\n\
+PyDoc_STRVAR(doc_ctx_copy_abs,
+"copy_abs($self, x, /)\n--\n\n\
+Return a copy of x with the sign set to 0.\n\
\n");
-PyDoc_STRVAR(doc_ctx_copy_negate,"\n\
-copy_negate(x) - Return a copy of x with the sign inverted.\n\
+PyDoc_STRVAR(doc_ctx_copy_negate,
+"copy_negate($self, x, /)\n--\n\n\
+Return a copy of x with the sign inverted.\n\
\n");
-PyDoc_STRVAR(doc_ctx_copy_sign,"\n\
-copy_sign(x, y) - Copy the sign from y to x.\n\
+PyDoc_STRVAR(doc_ctx_copy_sign,
+"copy_sign($self, x, y, /)\n--\n\n\
+Copy the sign from y to x.\n\
\n");
-PyDoc_STRVAR(doc_ctx_divide,"\n\
-divide(x, y) - Return x divided by y.\n\
+PyDoc_STRVAR(doc_ctx_divide,
+"divide($self, x, y, /)\n--\n\n\
+Return x divided by y.\n\
\n");
-PyDoc_STRVAR(doc_ctx_divide_int,"\n\
-divide_int(x, y) - Return x divided by y, truncated to an integer.\n\
+PyDoc_STRVAR(doc_ctx_divide_int,
+"divide_int($self, x, y, /)\n--\n\n\
+Return x divided by y, truncated to an integer.\n\
\n");
-PyDoc_STRVAR(doc_ctx_divmod,"\n\
-divmod(x, y) - Return quotient and remainder of the division x / y.\n\
+PyDoc_STRVAR(doc_ctx_divmod,
+"divmod($self, x, y, /)\n--\n\n\
+Return quotient and remainder of the division x / y.\n\
\n");
-PyDoc_STRVAR(doc_ctx_exp,"\n\
-exp(x) - Return e ** x.\n\
+PyDoc_STRVAR(doc_ctx_exp,
+"exp($self, x, /)\n--\n\n\
+Return e ** x.\n\
\n");
-PyDoc_STRVAR(doc_ctx_fma,"\n\
-fma(x, y, z) - Return x multiplied by y, plus z.\n\
+PyDoc_STRVAR(doc_ctx_fma,
+"fma($self, x, y, z, /)\n--\n\n\
+Return x multiplied by y, plus z.\n\
\n");
-PyDoc_STRVAR(doc_ctx_is_canonical,"\n\
-is_canonical(x) - Return True if x is canonical, False otherwise.\n\
+PyDoc_STRVAR(doc_ctx_is_canonical,
+"is_canonical($self, x, /)\n--\n\n\
+Return True if x is canonical, False otherwise.\n\
\n");
-PyDoc_STRVAR(doc_ctx_is_finite,"\n\
-is_finite(x) - Return True if x is finite, False otherwise.\n\
+PyDoc_STRVAR(doc_ctx_is_finite,
+"is_finite($self, x, /)\n--\n\n\
+Return True if x is finite, False otherwise.\n\
\n");
-PyDoc_STRVAR(doc_ctx_is_infinite,"\n\
-is_infinite(x) - Return True if x is infinite, False otherwise.\n\
+PyDoc_STRVAR(doc_ctx_is_infinite,
+"is_infinite($self, x, /)\n--\n\n\
+Return True if x is infinite, False otherwise.\n\
\n");
-PyDoc_STRVAR(doc_ctx_is_nan,"\n\
-is_nan(x) - Return True if x is a qNaN or sNaN, False otherwise.\n\
+PyDoc_STRVAR(doc_ctx_is_nan,
+"is_nan($self, x, /)\n--\n\n\
+Return True if x is a qNaN or sNaN, False otherwise.\n\
\n");
-PyDoc_STRVAR(doc_ctx_is_normal,"\n\
-is_normal(x) - Return True if x is a normal number, False otherwise.\n\
+PyDoc_STRVAR(doc_ctx_is_normal,
+"is_normal($self, x, /)\n--\n\n\
+Return True if x is a normal number, False otherwise.\n\
\n");
-PyDoc_STRVAR(doc_ctx_is_qnan,"\n\
-is_qnan(x) - Return True if x is a quiet NaN, False otherwise.\n\
+PyDoc_STRVAR(doc_ctx_is_qnan,
+"is_qnan($self, x, /)\n--\n\n\
+Return True if x is a quiet NaN, False otherwise.\n\
\n");
-PyDoc_STRVAR(doc_ctx_is_signed,"\n\
-is_signed(x) - Return True if x is negative, False otherwise.\n\
+PyDoc_STRVAR(doc_ctx_is_signed,
+"is_signed($self, x, /)\n--\n\n\
+Return True if x is negative, False otherwise.\n\
\n");
-PyDoc_STRVAR(doc_ctx_is_snan,"\n\
-is_snan() - Return True if x is a signaling NaN, False otherwise.\n\
+PyDoc_STRVAR(doc_ctx_is_snan,
+"is_snan($self, x, /)\n--\n\n\
+Return True if x is a signaling NaN, False otherwise.\n\
\n");
-PyDoc_STRVAR(doc_ctx_is_subnormal,"\n\
-is_subnormal(x) - Return True if x is subnormal, False otherwise.\n\
+PyDoc_STRVAR(doc_ctx_is_subnormal,
+"is_subnormal($self, x, /)\n--\n\n\
+Return True if x is subnormal, False otherwise.\n\
\n");
-PyDoc_STRVAR(doc_ctx_is_zero,"\n\
-is_zero(x) - Return True if x is a zero, False otherwise.\n\
+PyDoc_STRVAR(doc_ctx_is_zero,
+"is_zero($self, x, /)\n--\n\n\
+Return True if x is a zero, False otherwise.\n\
\n");
-PyDoc_STRVAR(doc_ctx_ln,"\n\
-ln(x) - Return the natural (base e) logarithm of x.\n\
+PyDoc_STRVAR(doc_ctx_ln,
+"ln($self, x, /)\n--\n\n\
+Return the natural (base e) logarithm of x.\n\
\n");
-PyDoc_STRVAR(doc_ctx_log10,"\n\
-log10(x) - Return the base 10 logarithm of x.\n\
+PyDoc_STRVAR(doc_ctx_log10,
+"log10($self, x, /)\n--\n\n\
+Return the base 10 logarithm of x.\n\
\n");
-PyDoc_STRVAR(doc_ctx_logb,"\n\
-logb(x) - Return the exponent of the magnitude of the operand's MSD.\n\
+PyDoc_STRVAR(doc_ctx_logb,
+"logb($self, x, /)\n--\n\n\
+Return the exponent of the magnitude of the operand's MSD.\n\
\n");
-PyDoc_STRVAR(doc_ctx_logical_and,"\n\
-logical_and(x, y) - Digit-wise and of x and y.\n\
+PyDoc_STRVAR(doc_ctx_logical_and,
+"logical_and($self, x, y, /)\n--\n\n\
+Digit-wise and of x and y.\n\
\n");
-PyDoc_STRVAR(doc_ctx_logical_invert,"\n\
-logical_invert(x) - Invert all digits of x.\n\
+PyDoc_STRVAR(doc_ctx_logical_invert,
+"logical_invert($self, x, /)\n--\n\n\
+Invert all digits of x.\n\
\n");
-PyDoc_STRVAR(doc_ctx_logical_or,"\n\
-logical_or(x, y) - Digit-wise or of x and y.\n\
+PyDoc_STRVAR(doc_ctx_logical_or,
+"logical_or($self, x, y, /)\n--\n\n\
+Digit-wise or of x and y.\n\
\n");
-PyDoc_STRVAR(doc_ctx_logical_xor,"\n\
-logical_xor(x, y) - Digit-wise xor of x and y.\n\
+PyDoc_STRVAR(doc_ctx_logical_xor,
+"logical_xor($self, x, y, /)\n--\n\n\
+Digit-wise xor of x and y.\n\
\n");
-PyDoc_STRVAR(doc_ctx_max,"\n\
-max(x, y) - Compare the values numerically and return the maximum.\n\
+PyDoc_STRVAR(doc_ctx_max,
+"max($self, x, y, /)\n--\n\n\
+Compare the values numerically and return the maximum.\n\
\n");
-PyDoc_STRVAR(doc_ctx_max_mag,"\n\
-max_mag(x, y) - Compare the values numerically with their sign ignored.\n\
+PyDoc_STRVAR(doc_ctx_max_mag,
+"max_mag($self, x, y, /)\n--\n\n\
+Compare the values numerically with their sign ignored.\n\
\n");
-PyDoc_STRVAR(doc_ctx_min,"\n\
-min(x, y) - Compare the values numerically and return the minimum.\n\
+PyDoc_STRVAR(doc_ctx_min,
+"min($self, x, y, /)\n--\n\n\
+Compare the values numerically and return the minimum.\n\
\n");
-PyDoc_STRVAR(doc_ctx_min_mag,"\n\
-min_mag(x, y) - Compare the values numerically with their sign ignored.\n\
+PyDoc_STRVAR(doc_ctx_min_mag,
+"min_mag($self, x, y, /)\n--\n\n\
+Compare the values numerically with their sign ignored.\n\
\n");
-PyDoc_STRVAR(doc_ctx_minus,"\n\
-minus(x) - Minus corresponds to the unary prefix minus operator in Python,\n\
-but applies the context to the result.\n\
+PyDoc_STRVAR(doc_ctx_minus,
+"minus($self, x, /)\n--\n\n\
+Minus corresponds to the unary prefix minus operator in Python, but applies\n\
+the context to the result.\n\
\n");
-PyDoc_STRVAR(doc_ctx_multiply,"\n\
-multiply(x, y) - Return the product of x and y.\n\
+PyDoc_STRVAR(doc_ctx_multiply,
+"multiply($self, x, y, /)\n--\n\n\
+Return the product of x and y.\n\
\n");
-PyDoc_STRVAR(doc_ctx_next_minus,"\n\
-next_minus(x) - Return the largest representable number smaller than x.\n\
+PyDoc_STRVAR(doc_ctx_next_minus,
+"next_minus($self, x, /)\n--\n\n\
+Return the largest representable number smaller than x.\n\
\n");
-PyDoc_STRVAR(doc_ctx_next_plus,"\n\
-next_plus(x) - Return the smallest representable number larger than x.\n\
+PyDoc_STRVAR(doc_ctx_next_plus,
+"next_plus($self, x, /)\n--\n\n\
+Return the smallest representable number larger than x.\n\
\n");
-PyDoc_STRVAR(doc_ctx_next_toward,"\n\
-next_toward(x) - Return the number closest to x, in the direction towards y.\n\
+PyDoc_STRVAR(doc_ctx_next_toward,
+"next_toward($self, x, y, /)\n--\n\n\
+Return the number closest to x, in the direction towards y.\n\
\n");
-PyDoc_STRVAR(doc_ctx_normalize,"\n\
-normalize(x) - Reduce x to its simplest form. Alias for reduce(x).\n\
+PyDoc_STRVAR(doc_ctx_normalize,
+"normalize($self, x, /)\n--\n\n\
+Reduce x to its simplest form. Alias for reduce(x).\n\
\n");
-PyDoc_STRVAR(doc_ctx_number_class,"\n\
-number_class(x) - Return an indication of the class of x.\n\
+PyDoc_STRVAR(doc_ctx_number_class,
+"number_class($self, x, /)\n--\n\n\
+Return an indication of the class of x.\n\
\n");
-PyDoc_STRVAR(doc_ctx_plus,"\n\
-plus(x) - Plus corresponds to the unary prefix plus operator in Python,\n\
-but applies the context to the result.\n\
+PyDoc_STRVAR(doc_ctx_plus,
+"plus($self, x, /)\n--\n\n\
+Plus corresponds to the unary prefix plus operator in Python, but applies\n\
+the context to the result.\n\
\n");
-PyDoc_STRVAR(doc_ctx_power,"\n\
-power(x, y) - Compute x**y. If x is negative, then y must be integral.\n\
-The result will be inexact unless y is integral and the result is finite\n\
-and can be expressed exactly in 'precision' digits. In the Python version\n\
-the result is always correctly rounded, in the C version the result is\n\
-almost always correctly rounded.\n\
+PyDoc_STRVAR(doc_ctx_power,
+"power($self, /, a, b, modulo=None)\n--\n\n\
+Compute a**b. If 'a' is negative, then 'b' must be integral. The result\n\
+will be inexact unless 'a' is integral and the result is finite and can\n\
+be expressed exactly in 'precision' digits. In the Python version the\n\
+result is always correctly rounded, in the C version the result is almost\n\
+always correctly rounded.\n\
\n\
-power(x, y, m) - Compute (x**y) % m. The following restrictions hold:\n\
+If modulo is given, compute (a**b) % modulo. The following restrictions\n\
+hold:\n\
\n\
* all three arguments must be integral\n\
- * y must be nonnegative\n\
- * at least one of x or y must be nonzero\n\
- * m must be nonzero and less than 10**prec in absolute value\n\
+ * 'b' must be nonnegative\n\
+ * at least one of 'a' or 'b' must be nonzero\n\
+ * modulo must be nonzero and less than 10**prec in absolute value\n\
\n\
\n");
-PyDoc_STRVAR(doc_ctx_quantize,"\n\
-quantize(x, y) - Return a value equal to x (rounded), having the exponent of y.\n\
+PyDoc_STRVAR(doc_ctx_quantize,
+"quantize($self, x, y, /)\n--\n\n\
+Return a value equal to x (rounded), having the exponent of y.\n\
\n");
-PyDoc_STRVAR(doc_ctx_radix,"\n\
-radix() - Return 10.\n\
+PyDoc_STRVAR(doc_ctx_radix,
+"radix($self, /)\n--\n\n\
+Return 10.\n\
\n");
-PyDoc_STRVAR(doc_ctx_remainder,"\n\
-remainder(x, y) - Return the remainder from integer division. The sign of\n\
-the result, if non-zero, is the same as that of the original dividend.\n\
+PyDoc_STRVAR(doc_ctx_remainder,
+"remainder($self, x, y, /)\n--\n\n\
+Return the remainder from integer division. The sign of the result,\n\
+if non-zero, is the same as that of the original dividend.\n\
\n");
-PyDoc_STRVAR(doc_ctx_remainder_near,"\n\
-remainder_near(x, y) - Return x - y * n, where n is the integer nearest the\n\
-exact value of x / y (if the result is 0 then its sign will be the sign of x).\n\
+PyDoc_STRVAR(doc_ctx_remainder_near,
+"remainder_near($self, x, y, /)\n--\n\n\
+Return x - y * n, where n is the integer nearest the exact value of x / y\n\
+(if the result is 0 then its sign will be the sign of x).\n\
\n");
-PyDoc_STRVAR(doc_ctx_rotate,"\n\
-rotate(x, y) - Return a copy of x, rotated by y places.\n\
+PyDoc_STRVAR(doc_ctx_rotate,
+"rotate($self, x, y, /)\n--\n\n\
+Return a copy of x, rotated by y places.\n\
\n");
-PyDoc_STRVAR(doc_ctx_same_quantum,"\n\
-same_quantum(x, y) - Return True if the two operands have the same exponent.\n\
+PyDoc_STRVAR(doc_ctx_same_quantum,
+"same_quantum($self, x, y, /)\n--\n\n\
+Return True if the two operands have the same exponent.\n\
\n");
-PyDoc_STRVAR(doc_ctx_scaleb,"\n\
-scaleb(x, y) - Return the first operand after adding the second value\n\
-to its exp.\n\
+PyDoc_STRVAR(doc_ctx_scaleb,
+"scaleb($self, x, y, /)\n--\n\n\
+Return the first operand after adding the second value to its exp.\n\
\n");
-PyDoc_STRVAR(doc_ctx_shift,"\n\
-shift(x, y) - Return a copy of x, shifted by y places.\n\
+PyDoc_STRVAR(doc_ctx_shift,
+"shift($self, x, y, /)\n--\n\n\
+Return a copy of x, shifted by y places.\n\
\n");
-PyDoc_STRVAR(doc_ctx_sqrt,"\n\
-sqrt(x) - Square root of a non-negative number to context precision.\n\
+PyDoc_STRVAR(doc_ctx_sqrt,
+"sqrt($self, x, /)\n--\n\n\
+Square root of a non-negative number to context precision.\n\
\n");
-PyDoc_STRVAR(doc_ctx_subtract,"\n\
-subtract(x, y) - Return the difference between x and y.\n\
+PyDoc_STRVAR(doc_ctx_subtract,
+"subtract($self, x, y, /)\n--\n\n\
+Return the difference between x and y.\n\
\n");
-PyDoc_STRVAR(doc_ctx_to_eng_string,"\n\
-to_eng_string(x) - Convert a number to a string, using engineering notation.\n\
+PyDoc_STRVAR(doc_ctx_to_eng_string,
+"to_eng_string($self, x, /)\n--\n\n\
+Convert a number to a string, using engineering notation.\n\
\n");
-PyDoc_STRVAR(doc_ctx_to_integral,"\n\
-to_integral(x) - Identical to to_integral_value(x).\n\
+PyDoc_STRVAR(doc_ctx_to_integral,
+"to_integral($self, x, /)\n--\n\n\
+Identical to to_integral_value(x).\n\
\n");
-PyDoc_STRVAR(doc_ctx_to_integral_exact,"\n\
-to_integral_exact(x) - Round to an integer. Signal if the result is\n\
-rounded or inexact.\n\
+PyDoc_STRVAR(doc_ctx_to_integral_exact,
+"to_integral_exact($self, x, /)\n--\n\n\
+Round to an integer. Signal if the result is rounded or inexact.\n\
\n");
-PyDoc_STRVAR(doc_ctx_to_integral_value,"\n\
-to_integral_value(x) - Round to an integer.\n\
+PyDoc_STRVAR(doc_ctx_to_integral_value,
+"to_integral_value($self, x, /)\n--\n\n\
+Round to an integer.\n\
\n");
-PyDoc_STRVAR(doc_ctx_to_sci_string,"\n\
-to_sci_string(x) - Convert a number to a string using scientific notation.\n\
+PyDoc_STRVAR(doc_ctx_to_sci_string,
+"to_sci_string($self, x, /)\n--\n\n\
+Convert a number to a string using scientific notation.\n\
\n");
diff --git a/Modules/_decimal/libmpdec/mpdecimal.c b/Modules/_decimal/libmpdec/mpdecimal.c
index 21d222277c..593f9f5e03 100644
--- a/Modules/_decimal/libmpdec/mpdecimal.c
+++ b/Modules/_decimal/libmpdec/mpdecimal.c
@@ -43,6 +43,7 @@
#ifdef PPRO
#if defined(_MSC_VER)
#include <float.h>
+ #pragma float_control(precise, on)
#pragma fenv_access(on)
#elif !defined(__OpenBSD__) && !defined(__NetBSD__)
/* C99 */
diff --git a/Modules/_decimal/tests/deccheck.py b/Modules/_decimal/tests/deccheck.py
index 27137b2e49..ab7d5bdf4e 100644
--- a/Modules/_decimal/tests/deccheck.py
+++ b/Modules/_decimal/tests/deccheck.py
@@ -36,6 +36,7 @@ from test.support import import_fresh_module
from randdec import randfloat, all_unary, all_binary, all_ternary
from randdec import unary_optarg, binary_optarg, ternary_optarg
from formathelper import rand_format, rand_locale
+from _pydecimal import _dec_from_triple
C = import_fresh_module('decimal', fresh=['_decimal'])
P = import_fresh_module('decimal', blocked=['_decimal'])
@@ -370,7 +371,7 @@ class SkipHandler:
return abs(a - b)
def standard_ulp(self, dec, prec):
- return P._dec_from_triple(0, '1', dec._exp+len(dec._int)-prec)
+ return _dec_from_triple(0, '1', dec._exp+len(dec._int)-prec)
def rounding_direction(self, x, mode):
"""Determine the effective direction of the rounding when
@@ -401,10 +402,10 @@ class SkipHandler:
# Convert infinities to the largest representable number + 1.
x = exact
if exact.is_infinite():
- x = P._dec_from_triple(exact._sign, '10', context.p.Emax)
+ x = _dec_from_triple(exact._sign, '10', context.p.Emax)
y = rounded
if rounded.is_infinite():
- y = P._dec_from_triple(rounded._sign, '10', context.p.Emax)
+ y = _dec_from_triple(rounded._sign, '10', context.p.Emax)
# err = (rounded - exact) / ulp(rounded)
self.maxctx.prec = p * 2
diff --git a/Modules/_elementtree.c b/Modules/_elementtree.c
index 826342aa91..911b5ac5a9 100644
--- a/Modules/_elementtree.c
+++ b/Modules/_elementtree.c
@@ -11,6 +11,8 @@
*--------------------------------------------------------------------
*/
+#define PY_SSIZE_T_CLEAN
+
#include "Python.h"
#include "structmember.h"
@@ -185,8 +187,8 @@ typedef struct {
PyObject* attrib;
/* child elements */
- int length; /* actual number of items */
- int allocated; /* allocated items */
+ Py_ssize_t length; /* actual number of items */
+ Py_ssize_t allocated; /* allocated items */
/* this either points to _children or to a malloced buffer */
PyObject* *children;
@@ -251,7 +253,7 @@ LOCAL(void)
dealloc_extra(ElementObject* self)
{
ElementObjectExtra *myextra;
- int i;
+ Py_ssize_t i;
if (!self->extra)
return;
@@ -368,6 +370,14 @@ get_attrib_from_keywords(PyObject *kwds)
return attrib;
}
+/*[clinic input]
+module _elementtree
+class _elementtree.Element "ElementObject *" "&Element_Type"
+class _elementtree.TreeBuilder "TreeBuilderObject *" "&TreeBuilder_Type"
+class _elementtree.XMLParser "XMLParserObject *" "&XMLParser_Type"
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=159aa50a54061c22]*/
+
static int
element_init(PyObject *self, PyObject *args, PyObject *kwds)
{
@@ -429,9 +439,9 @@ element_init(PyObject *self, PyObject *args, PyObject *kwds)
}
LOCAL(int)
-element_resize(ElementObject* self, int extra)
+element_resize(ElementObject* self, Py_ssize_t extra)
{
- int size;
+ Py_ssize_t size;
PyObject* *children;
/* make sure self->children can hold the given number of extra
@@ -442,7 +452,7 @@ element_resize(ElementObject* self, int extra)
return -1;
}
- size = self->extra->length + extra;
+ size = self->extra->length + extra; /* never overflows */
if (size > self->extra->allocated) {
/* use Python 2.4's list growth strategy */
@@ -453,6 +463,8 @@ element_resize(ElementObject* self, int extra)
* be safe.
*/
size = size ? size : 1;
+ if ((size_t)size > PY_SSIZE_T_MAX/sizeof(PyObject*))
+ goto nomemory;
if (self->extra->children != self->extra->_children) {
/* Coverity CID #182 size_error: Allocating 1 bytes to pointer
* "children", which needs at least 4 bytes. Although it's a
@@ -613,7 +625,7 @@ element_gc_traverse(ElementObject *self, visitproc visit, void *arg)
Py_VISIT(JOIN_OBJ(self->tail));
if (self->extra) {
- int i;
+ Py_ssize_t i;
Py_VISIT(self->extra->attrib);
for (i = 0; i < self->extra->length; ++i)
@@ -654,25 +666,33 @@ element_dealloc(ElementObject* self)
/* -------------------------------------------------------------------- */
-static PyObject*
-element_append(ElementObject* self, PyObject* args)
-{
- PyObject* element;
- if (!PyArg_ParseTuple(args, "O!:append", &Element_Type, &element))
- return NULL;
+/*[clinic input]
+_elementtree.Element.append
+
+ subelement: object(subclass_of='&Element_Type')
+ /
- if (element_add_subelement(self, element) < 0)
+[clinic start generated code]*/
+
+static PyObject *
+_elementtree_Element_append_impl(ElementObject *self, PyObject *subelement)
+/*[clinic end generated code: output=54a884b7cf2295f4 input=3ed648beb5bfa22a]*/
+{
+ if (element_add_subelement(self, subelement) < 0)
return NULL;
Py_RETURN_NONE;
}
-static PyObject*
-element_clearmethod(ElementObject* self, PyObject* args)
-{
- if (!PyArg_ParseTuple(args, ":clear"))
- return NULL;
+/*[clinic input]
+_elementtree.Element.clear
+
+[clinic start generated code]*/
+static PyObject *
+_elementtree_Element_clear_impl(ElementObject *self)
+/*[clinic end generated code: output=8bcd7a51f94cfff6 input=3c719ff94bf45dd6]*/
+{
dealloc_extra(self);
Py_INCREF(Py_None);
@@ -686,15 +706,18 @@ element_clearmethod(ElementObject* self, PyObject* args)
Py_RETURN_NONE;
}
-static PyObject*
-element_copy(ElementObject* self, PyObject* args)
+/*[clinic input]
+_elementtree.Element.__copy__
+
+[clinic start generated code]*/
+
+static PyObject *
+_elementtree_Element___copy___impl(ElementObject *self)
+/*[clinic end generated code: output=2c701ebff7247781 input=ad87aaebe95675bf]*/
{
- int i;
+ Py_ssize_t i;
ElementObject* element;
- if (!PyArg_ParseTuple(args, ":__copy__"))
- return NULL;
-
element = (ElementObject*) create_new_element(
self->tag, (self->extra) ? self->extra->attrib : Py_None);
if (!element)
@@ -725,10 +748,19 @@ element_copy(ElementObject* self, PyObject* args)
return (PyObject*) element;
}
-static PyObject*
-element_deepcopy(ElementObject* self, PyObject* args)
+/*[clinic input]
+_elementtree.Element.__deepcopy__
+
+ memo: object
+ /
+
+[clinic start generated code]*/
+
+static PyObject *
+_elementtree_Element___deepcopy__(ElementObject *self, PyObject *memo)
+/*[clinic end generated code: output=d1f19851d17bf239 input=df24c2b602430b77]*/
{
- int i;
+ Py_ssize_t i;
ElementObject* element;
PyObject* tag;
PyObject* attrib;
@@ -736,10 +768,6 @@ element_deepcopy(ElementObject* self, PyObject* args)
PyObject* tail;
PyObject* id;
- PyObject* memo;
- if (!PyArg_ParseTuple(args, "O:__deepcopy__", &memo))
- return NULL;
-
tag = deepcopy(self->tag, memo);
if (!tag)
return NULL;
@@ -810,17 +838,22 @@ element_deepcopy(ElementObject* self, PyObject* args)
return NULL;
}
-static PyObject*
-element_sizeof(PyObject* myself, PyObject* args)
+/*[clinic input]
+_elementtree.Element.__sizeof__ -> Py_ssize_t
+
+[clinic start generated code]*/
+
+static Py_ssize_t
+_elementtree_Element___sizeof___impl(ElementObject *self)
+/*[clinic end generated code: output=bf73867721008000 input=70f4b323d55a17c1]*/
{
- ElementObject *self = (ElementObject*)myself;
Py_ssize_t result = sizeof(ElementObject);
if (self->extra) {
result += sizeof(ElementObjectExtra);
if (self->extra->children != self->extra->_children)
result += sizeof(PyObject*) * self->extra->allocated;
}
- return PyLong_FromSsize_t(result);
+ return result;
}
/* dict keys for getstate/setstate. */
@@ -836,10 +869,16 @@ element_sizeof(PyObject* myself, PyObject* args)
* any unnecessary structures there; and (b) it buys compatibility with 3.2
* pickles. See issue #16076.
*/
+/*[clinic input]
+_elementtree.Element.__getstate__
+
+[clinic start generated code]*/
+
static PyObject *
-element_getstate(ElementObject *self)
+_elementtree_Element___getstate___impl(ElementObject *self)
+/*[clinic end generated code: output=37279aeeb6bb5b04 input=f0d16d7ec2f7adc1]*/
{
- int i, noattrib;
+ Py_ssize_t i, noattrib;
PyObject *instancedict = NULL, *children;
/* Build a list of children. */
@@ -952,6 +991,7 @@ element_setstate_from_attributes(ElementObject *self,
/* __setstate__ for Element instance from the Python implementation.
* 'state' should be the instance dict.
*/
+
static PyObject *
element_setstate_from_Python(ElementObject *self, PyObject *state)
{
@@ -977,8 +1017,17 @@ element_setstate_from_Python(ElementObject *self, PyObject *state)
return retval;
}
+/*[clinic input]
+_elementtree.Element.__setstate__
+
+ state: object
+ /
+
+[clinic start generated code]*/
+
static PyObject *
-element_setstate(ElementObject *self, PyObject *state)
+_elementtree_Element___setstate__(ElementObject *self, PyObject *state)
+/*[clinic end generated code: output=ea28bf3491b1f75e input=aaf80abea7c1e3b9]*/
{
if (!PyDict_CheckExact(state)) {
PyErr_Format(PyExc_TypeError,
@@ -1032,21 +1081,26 @@ checkpath(PyObject* tag)
return 1; /* unknown type; might be path expression */
}
-static PyObject*
-element_extend(ElementObject* self, PyObject* args)
+/*[clinic input]
+_elementtree.Element.extend
+
+ elements: object
+ /
+
+[clinic start generated code]*/
+
+static PyObject *
+_elementtree_Element_extend(ElementObject *self, PyObject *elements)
+/*[clinic end generated code: output=f6e67fc2ff529191 input=807bc4f31c69f7c0]*/
{
PyObject* seq;
Py_ssize_t i;
- PyObject* seq_in;
- if (!PyArg_ParseTuple(args, "O:extend", &seq_in))
- return NULL;
-
- seq = PySequence_Fast(seq_in, "");
+ seq = PySequence_Fast(elements, "");
if (!seq) {
PyErr_Format(
PyExc_TypeError,
- "expected sequence, not \"%.200s\"", Py_TYPE(seq_in)->tp_name
+ "expected sequence, not \"%.200s\"", Py_TYPE(elements)->tp_name
);
return NULL;
}
@@ -1077,23 +1131,26 @@ element_extend(ElementObject* self, PyObject* args)
Py_RETURN_NONE;
}
-static PyObject*
-element_find(ElementObject *self, PyObject *args, PyObject *kwds)
+/*[clinic input]
+_elementtree.Element.find
+
+ path: object
+ namespaces: object = None
+
+[clinic start generated code]*/
+
+static PyObject *
+_elementtree_Element_find_impl(ElementObject *self, PyObject *path,
+ PyObject *namespaces)
+/*[clinic end generated code: output=41b43f0f0becafae input=359b6985f6489d2e]*/
{
- int i;
- PyObject* tag;
- PyObject* namespaces = Py_None;
- static char *kwlist[] = {"path", "namespaces", 0};
+ Py_ssize_t i;
elementtreestate *st = ET_STATE_GLOBAL;
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|O:find", kwlist,
- &tag, &namespaces))
- return NULL;
-
- if (checkpath(tag) || namespaces != Py_None) {
+ if (checkpath(path) || namespaces != Py_None) {
_Py_IDENTIFIER(find);
return _PyObject_CallMethodId(
- st->elementpath_obj, &PyId_find, "OOO", self, tag, namespaces
+ st->elementpath_obj, &PyId_find, "OOO", self, path, namespaces
);
}
@@ -1106,7 +1163,7 @@ element_find(ElementObject *self, PyObject *args, PyObject *kwds)
if (!Element_CheckExact(item))
continue;
Py_INCREF(item);
- rc = PyObject_RichCompareBool(((ElementObject*)item)->tag, tag, Py_EQ);
+ rc = PyObject_RichCompareBool(((ElementObject*)item)->tag, path, Py_EQ);
if (rc > 0)
return item;
Py_DECREF(item);
@@ -1117,24 +1174,28 @@ element_find(ElementObject *self, PyObject *args, PyObject *kwds)
Py_RETURN_NONE;
}
-static PyObject*
-element_findtext(ElementObject *self, PyObject *args, PyObject *kwds)
+/*[clinic input]
+_elementtree.Element.findtext
+
+ path: object
+ default: object = None
+ namespaces: object = None
+
+[clinic start generated code]*/
+
+static PyObject *
+_elementtree_Element_findtext_impl(ElementObject *self, PyObject *path,
+ PyObject *default_value,
+ PyObject *namespaces)
+/*[clinic end generated code: output=83b3ba4535d308d2 input=b53a85aa5aa2a916]*/
{
- int i;
- PyObject* tag;
- PyObject* default_value = Py_None;
- PyObject* namespaces = Py_None;
+ Py_ssize_t i;
_Py_IDENTIFIER(findtext);
- static char *kwlist[] = {"path", "default", "namespaces", 0};
elementtreestate *st = ET_STATE_GLOBAL;
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|OO:findtext", kwlist,
- &tag, &default_value, &namespaces))
- return NULL;
-
- if (checkpath(tag) || namespaces != Py_None)
+ if (checkpath(path) || namespaces != Py_None)
return _PyObject_CallMethodId(
- st->elementpath_obj, &PyId_findtext, "OOOO", self, tag, default_value, namespaces
+ st->elementpath_obj, &PyId_findtext, "OOOO", self, path, default_value, namespaces
);
if (!self->extra) {
@@ -1148,7 +1209,7 @@ element_findtext(ElementObject *self, PyObject *args, PyObject *kwds)
if (!Element_CheckExact(item))
continue;
Py_INCREF(item);
- rc = PyObject_RichCompareBool(item->tag, tag, Py_EQ);
+ rc = PyObject_RichCompareBool(item->tag, path, Py_EQ);
if (rc > 0) {
PyObject* text = element_get_text(item);
if (text == Py_None) {
@@ -1168,20 +1229,24 @@ element_findtext(ElementObject *self, PyObject *args, PyObject *kwds)
return default_value;
}
-static PyObject*
-element_findall(ElementObject *self, PyObject *args, PyObject *kwds)
+/*[clinic input]
+_elementtree.Element.findall
+
+ path: object
+ namespaces: object = None
+
+[clinic start generated code]*/
+
+static PyObject *
+_elementtree_Element_findall_impl(ElementObject *self, PyObject *path,
+ PyObject *namespaces)
+/*[clinic end generated code: output=1a0bd9f5541b711d input=4d9e6505a638550c]*/
{
- int i;
+ Py_ssize_t i;
PyObject* out;
- PyObject* tag;
- PyObject* namespaces = Py_None;
- static char *kwlist[] = {"path", "namespaces", 0};
+ PyObject* tag = path;
elementtreestate *st = ET_STATE_GLOBAL;
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|O:findall", kwlist,
- &tag, &namespaces))
- return NULL;
-
if (checkpath(tag) || namespaces != Py_None) {
_Py_IDENTIFIER(findall);
return _PyObject_CallMethodId(
@@ -1214,36 +1279,41 @@ element_findall(ElementObject *self, PyObject *args, PyObject *kwds)
return out;
}
-static PyObject*
-element_iterfind(ElementObject *self, PyObject *args, PyObject *kwds)
+/*[clinic input]
+_elementtree.Element.iterfind
+
+ path: object
+ namespaces: object = None
+
+[clinic start generated code]*/
+
+static PyObject *
+_elementtree_Element_iterfind_impl(ElementObject *self, PyObject *path,
+ PyObject *namespaces)
+/*[clinic end generated code: output=ecdd56d63b19d40f input=abb974e350fb65c7]*/
{
- PyObject* tag;
- PyObject* namespaces = Py_None;
+ PyObject* tag = path;
_Py_IDENTIFIER(iterfind);
- static char *kwlist[] = {"path", "namespaces", 0};
elementtreestate *st = ET_STATE_GLOBAL;
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|O:iterfind", kwlist,
- &tag, &namespaces)) {
- return NULL;
- }
-
return _PyObject_CallMethodId(
st->elementpath_obj, &PyId_iterfind, "OOO", self, tag, namespaces);
}
-static PyObject*
-element_get(ElementObject* self, PyObject* args, PyObject* kwds)
-{
- PyObject* value;
- static char* kwlist[] = {"key", "default", 0};
+/*[clinic input]
+_elementtree.Element.get
- PyObject* key;
- PyObject* default_value = Py_None;
+ key: object
+ default: object = None
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|O:get", kwlist, &key,
- &default_value))
- return NULL;
+[clinic start generated code]*/
+
+static PyObject *
+_elementtree_Element_get_impl(ElementObject *self, PyObject *key,
+ PyObject *default_value)
+/*[clinic end generated code: output=523c614142595d75 input=ee153bbf8cdb246e]*/
+{
+ PyObject* value;
if (!self->extra || self->extra->attrib == Py_None)
value = default_value;
@@ -1257,17 +1327,20 @@ element_get(ElementObject* self, PyObject* args, PyObject* kwds)
return value;
}
-static PyObject*
-element_getchildren(ElementObject* self, PyObject* args)
+/*[clinic input]
+_elementtree.Element.getchildren
+
+[clinic start generated code]*/
+
+static PyObject *
+_elementtree_Element_getchildren_impl(ElementObject *self)
+/*[clinic end generated code: output=e50ffe118637b14f input=0f754dfded150d5f]*/
{
- int i;
+ Py_ssize_t i;
PyObject* list;
/* FIXME: report as deprecated? */
- if (!PyArg_ParseTuple(args, ":getchildren"))
- return NULL;
-
if (!self->extra)
return PyList_New(0);
@@ -1289,25 +1362,30 @@ static PyObject *
create_elementiter(ElementObject *self, PyObject *tag, int gettext);
-static PyObject *
-element_iter(ElementObject *self, PyObject *args, PyObject *kwds)
-{
- PyObject* tag = Py_None;
- static char* kwlist[] = {"tag", 0};
+/*[clinic input]
+_elementtree.Element.iter
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "|O:iter", kwlist, &tag))
- return NULL;
+ tag: object = None
+[clinic start generated code]*/
+
+static PyObject *
+_elementtree_Element_iter_impl(ElementObject *self, PyObject *tag)
+/*[clinic end generated code: output=3f49f9a862941cc5 input=774d5b12e573aedd]*/
+{
return create_elementiter(self, tag, 0);
}
-static PyObject*
-element_itertext(ElementObject* self, PyObject* args)
-{
- if (!PyArg_ParseTuple(args, ":itertext"))
- return NULL;
+/*[clinic input]
+_elementtree.Element.itertext
+
+[clinic start generated code]*/
+static PyObject *
+_elementtree_Element_itertext_impl(ElementObject *self)
+/*[clinic end generated code: output=5fa34b2fbcb65df6 input=af8f0e42cb239c89]*/
+{
return create_elementiter(self, Py_None, 1);
}
@@ -1329,16 +1407,21 @@ element_getitem(PyObject* self_, Py_ssize_t index)
return self->extra->children[index];
}
-static PyObject*
-element_insert(ElementObject* self, PyObject* args)
-{
- int i;
+/*[clinic input]
+_elementtree.Element.insert
- int index;
- PyObject* element;
- if (!PyArg_ParseTuple(args, "iO!:insert", &index,
- &Element_Type, &element))
- return NULL;
+ index: Py_ssize_t
+ subelement: object(subclass_of='&Element_Type')
+ /
+
+[clinic start generated code]*/
+
+static PyObject *
+_elementtree_Element_insert_impl(ElementObject *self, Py_ssize_t index,
+ PyObject *subelement)
+/*[clinic end generated code: output=990adfef4d424c0b input=cd6fbfcdab52d7a8]*/
+{
+ Py_ssize_t i;
if (!self->extra) {
if (create_extra(self, NULL) < 0)
@@ -1359,32 +1442,38 @@ element_insert(ElementObject* self, PyObject* args)
for (i = self->extra->length; i > index; i--)
self->extra->children[i] = self->extra->children[i-1];
- Py_INCREF(element);
- self->extra->children[index] = element;
+ Py_INCREF(subelement);
+ self->extra->children[index] = subelement;
self->extra->length++;
Py_RETURN_NONE;
}
-static PyObject*
-element_items(ElementObject* self, PyObject* args)
-{
- if (!PyArg_ParseTuple(args, ":items"))
- return NULL;
+/*[clinic input]
+_elementtree.Element.items
+
+[clinic start generated code]*/
+static PyObject *
+_elementtree_Element_items_impl(ElementObject *self)
+/*[clinic end generated code: output=6db2c778ce3f5a4d input=adbe09aaea474447]*/
+{
if (!self->extra || self->extra->attrib == Py_None)
return PyList_New(0);
return PyDict_Items(self->extra->attrib);
}
-static PyObject*
-element_keys(ElementObject* self, PyObject* args)
-{
- if (!PyArg_ParseTuple(args, ":keys"))
- return NULL;
+/*[clinic input]
+_elementtree.Element.keys
+[clinic start generated code]*/
+
+static PyObject *
+_elementtree_Element_keys_impl(ElementObject *self)
+/*[clinic end generated code: output=bc5bfabbf20eeb3c input=f02caf5b496b5b0b]*/
+{
if (!self->extra || self->extra->attrib == Py_None)
return PyList_New(0);
@@ -1400,16 +1489,22 @@ element_length(ElementObject* self)
return self->extra->length;
}
-static PyObject*
-element_makeelement(PyObject* self, PyObject* args, PyObject* kw)
+/*[clinic input]
+_elementtree.Element.makeelement
+
+ tag: object
+ attrib: object
+ /
+
+[clinic start generated code]*/
+
+static PyObject *
+_elementtree_Element_makeelement_impl(ElementObject *self, PyObject *tag,
+ PyObject *attrib)
+/*[clinic end generated code: output=4109832d5bb789ef input=9480d1d2e3e68235]*/
{
PyObject* elem;
- PyObject* tag;
- PyObject* attrib;
- if (!PyArg_ParseTuple(args, "OO:makeelement", &tag, &attrib))
- return NULL;
-
attrib = PyDict_Copy(attrib);
if (!attrib)
return NULL;
@@ -1421,16 +1516,21 @@ element_makeelement(PyObject* self, PyObject* args, PyObject* kw)
return elem;
}
-static PyObject*
-element_remove(ElementObject* self, PyObject* args)
+/*[clinic input]
+_elementtree.Element.remove
+
+ subelement: object(subclass_of='&Element_Type')
+ /
+
+[clinic start generated code]*/
+
+static PyObject *
+_elementtree_Element_remove_impl(ElementObject *self, PyObject *subelement)
+/*[clinic end generated code: output=38fe6c07d6d87d1f input=d52fc28ededc0bd8]*/
{
- int i;
+ Py_ssize_t i;
int rc;
- PyObject* element;
- PyObject* found;
-
- if (!PyArg_ParseTuple(args, "O!:remove", &Element_Type, &element))
- return NULL;
+ PyObject *found;
if (!self->extra) {
/* element has no children, so raise exception */
@@ -1442,9 +1542,9 @@ element_remove(ElementObject* self, PyObject* args)
}
for (i = 0; i < self->extra->length; i++) {
- if (self->extra->children[i] == element)
+ if (self->extra->children[i] == subelement)
break;
- rc = PyObject_RichCompareBool(self->extra->children[i], element, Py_EQ);
+ rc = PyObject_RichCompareBool(self->extra->children[i], subelement, Py_EQ);
if (rc > 0)
break;
if (rc < 0)
@@ -1452,7 +1552,7 @@ element_remove(ElementObject* self, PyObject* args)
}
if (i >= self->extra->length) {
- /* element is not in children, so raise exception */
+ /* subelement is not in children, so raise exception */
PyErr_SetString(
PyExc_ValueError,
"list.remove(x): x not in list"
@@ -1479,16 +1579,22 @@ element_repr(ElementObject* self)
return PyUnicode_FromFormat("<Element at %p>", self);
}
-static PyObject*
-element_set(ElementObject* self, PyObject* args)
+/*[clinic input]
+_elementtree.Element.set
+
+ key: object
+ value: object
+ /
+
+[clinic start generated code]*/
+
+static PyObject *
+_elementtree_Element_set_impl(ElementObject *self, PyObject *key,
+ PyObject *value)
+/*[clinic end generated code: output=fb938806be3c5656 input=1efe90f7d82b3fe9]*/
{
PyObject* attrib;
- PyObject* key;
- PyObject* value;
- if (!PyArg_ParseTuple(args, "OO:set", &key, &value))
- return NULL;
-
if (!self->extra) {
if (create_extra(self, NULL) < 0)
return NULL;
@@ -1508,7 +1614,7 @@ static int
element_setitem(PyObject* self_, Py_ssize_t index, PyObject* item)
{
ElementObject* self = (ElementObject*) self_;
- int i;
+ Py_ssize_t i;
PyObject* old;
if (!self->extra || index < 0 || index >= self->extra->length) {
@@ -1769,43 +1875,6 @@ element_ass_subscr(PyObject* self_, PyObject* item, PyObject* value)
}
}
-static PyMethodDef element_methods[] = {
-
- {"clear", (PyCFunction) element_clearmethod, METH_VARARGS},
-
- {"get", (PyCFunction) element_get, METH_VARARGS | METH_KEYWORDS},
- {"set", (PyCFunction) element_set, METH_VARARGS},
-
- {"find", (PyCFunction) element_find, METH_VARARGS | METH_KEYWORDS},
- {"findtext", (PyCFunction) element_findtext, METH_VARARGS | METH_KEYWORDS},
- {"findall", (PyCFunction) element_findall, METH_VARARGS | METH_KEYWORDS},
-
- {"append", (PyCFunction) element_append, METH_VARARGS},
- {"extend", (PyCFunction) element_extend, METH_VARARGS},
- {"insert", (PyCFunction) element_insert, METH_VARARGS},
- {"remove", (PyCFunction) element_remove, METH_VARARGS},
-
- {"iter", (PyCFunction) element_iter, METH_VARARGS | METH_KEYWORDS},
- {"itertext", (PyCFunction) element_itertext, METH_VARARGS},
- {"iterfind", (PyCFunction) element_iterfind, METH_VARARGS | METH_KEYWORDS},
-
- {"getiterator", (PyCFunction) element_iter, METH_VARARGS | METH_KEYWORDS},
- {"getchildren", (PyCFunction) element_getchildren, METH_VARARGS},
-
- {"items", (PyCFunction) element_items, METH_VARARGS},
- {"keys", (PyCFunction) element_keys, METH_VARARGS},
-
- {"makeelement", (PyCFunction) element_makeelement, METH_VARARGS},
-
- {"__copy__", (PyCFunction) element_copy, METH_VARARGS},
- {"__deepcopy__", (PyCFunction) element_deepcopy, METH_VARARGS},
- {"__sizeof__", element_sizeof, METH_NOARGS},
- {"__getstate__", (PyCFunction)element_getstate, METH_NOARGS},
- {"__setstate__", (PyCFunction)element_setstate, METH_O},
-
- {NULL, NULL}
-};
-
static PyObject*
element_getattro(ElementObject* self, PyObject* nameobj)
{
@@ -1902,54 +1971,6 @@ static PySequenceMethods element_as_sequence = {
0,
};
-static PyMappingMethods element_as_mapping = {
- (lenfunc) element_length,
- (binaryfunc) element_subscr,
- (objobjargproc) element_ass_subscr,
-};
-
-static PyTypeObject Element_Type = {
- PyVarObject_HEAD_INIT(NULL, 0)
- "xml.etree.ElementTree.Element", sizeof(ElementObject), 0,
- /* methods */
- (destructor)element_dealloc, /* tp_dealloc */
- 0, /* tp_print */
- 0, /* tp_getattr */
- 0, /* tp_setattr */
- 0, /* tp_reserved */
- (reprfunc)element_repr, /* tp_repr */
- 0, /* tp_as_number */
- &element_as_sequence, /* tp_as_sequence */
- &element_as_mapping, /* tp_as_mapping */
- 0, /* tp_hash */
- 0, /* tp_call */
- 0, /* tp_str */
- (getattrofunc)element_getattro, /* tp_getattro */
- (setattrofunc)element_setattro, /* tp_setattro */
- 0, /* tp_as_buffer */
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC,
- /* tp_flags */
- 0, /* tp_doc */
- (traverseproc)element_gc_traverse, /* tp_traverse */
- (inquiry)element_gc_clear, /* tp_clear */
- 0, /* tp_richcompare */
- offsetof(ElementObject, weakreflist), /* tp_weaklistoffset */
- 0, /* tp_iter */
- 0, /* tp_iternext */
- element_methods, /* tp_methods */
- 0, /* tp_members */
- 0, /* tp_getset */
- 0, /* tp_base */
- 0, /* tp_dict */
- 0, /* tp_descr_get */
- 0, /* tp_descr_set */
- 0, /* tp_dictoffset */
- (initproc)element_init, /* tp_init */
- PyType_GenericAlloc, /* tp_alloc */
- element_new, /* tp_new */
- 0, /* tp_free */
-};
-
/******************************* Element iterator ****************************/
/* ElementIterObject represents the iteration state over an XML element in
@@ -2312,23 +2333,24 @@ treebuilder_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
return (PyObject *)t;
}
+/*[clinic input]
+_elementtree.TreeBuilder.__init__
+
+ element_factory: object = NULL
+
+[clinic start generated code]*/
+
static int
-treebuilder_init(PyObject *self, PyObject *args, PyObject *kwds)
+_elementtree_TreeBuilder___init___impl(TreeBuilderObject *self,
+ PyObject *element_factory)
+/*[clinic end generated code: output=91cfa7558970ee96 input=1b424eeefc35249c]*/
{
- static char *kwlist[] = {"element_factory", 0};
- PyObject *element_factory = NULL;
- TreeBuilderObject *self_tb = (TreeBuilderObject *)self;
PyObject *tmp;
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "|O:TreeBuilder", kwlist,
- &element_factory)) {
- return -1;
- }
-
if (element_factory) {
Py_INCREF(element_factory);
- tmp = self_tb->element_factory;
- self_tb->element_factory = element_factory;
+ tmp = self->element_factory;
+ self->element_factory = element_factory;
Py_XDECREF(tmp);
}
@@ -2648,23 +2670,33 @@ treebuilder_handle_namespace(TreeBuilderObject* self, int start,
/* -------------------------------------------------------------------- */
/* methods (in alphabetical order) */
-static PyObject*
-treebuilder_data(TreeBuilderObject* self, PyObject* args)
-{
- PyObject* data;
- if (!PyArg_ParseTuple(args, "O:data", &data))
- return NULL;
+/*[clinic input]
+_elementtree.TreeBuilder.data
+
+ data: object
+ /
+[clinic start generated code]*/
+
+static PyObject *
+_elementtree_TreeBuilder_data(TreeBuilderObject *self, PyObject *data)
+/*[clinic end generated code: output=69144c7100795bb2 input=a0540c532b284d29]*/
+{
return treebuilder_handle_data(self, data);
}
-static PyObject*
-treebuilder_end(TreeBuilderObject* self, PyObject* args)
-{
- PyObject* tag;
- if (!PyArg_ParseTuple(args, "O:end", &tag))
- return NULL;
+/*[clinic input]
+_elementtree.TreeBuilder.end
+
+ tag: object
+ /
+[clinic start generated code]*/
+
+static PyObject *
+_elementtree_TreeBuilder_end(TreeBuilderObject *self, PyObject *tag)
+/*[clinic end generated code: output=9a98727cc691cd9d input=22dc3674236f5745]*/
+{
return treebuilder_handle_end(self, tag);
}
@@ -2684,75 +2716,34 @@ treebuilder_done(TreeBuilderObject* self)
return res;
}
-static PyObject*
-treebuilder_close(TreeBuilderObject* self, PyObject* args)
-{
- if (!PyArg_ParseTuple(args, ":close"))
- return NULL;
+/*[clinic input]
+_elementtree.TreeBuilder.close
+
+[clinic start generated code]*/
+static PyObject *
+_elementtree_TreeBuilder_close_impl(TreeBuilderObject *self)
+/*[clinic end generated code: output=b441fee3202f61ee input=f7c9c65dc718de14]*/
+{
return treebuilder_done(self);
}
-static PyObject*
-treebuilder_start(TreeBuilderObject* self, PyObject* args)
-{
- PyObject* tag;
- PyObject* attrib = Py_None;
- if (!PyArg_ParseTuple(args, "O|O:start", &tag, &attrib))
- return NULL;
+/*[clinic input]
+_elementtree.TreeBuilder.start
- return treebuilder_handle_start(self, tag, attrib);
-}
+ tag: object
+ attrs: object = None
+ /
-static PyMethodDef treebuilder_methods[] = {
- {"data", (PyCFunction) treebuilder_data, METH_VARARGS},
- {"start", (PyCFunction) treebuilder_start, METH_VARARGS},
- {"end", (PyCFunction) treebuilder_end, METH_VARARGS},
- {"close", (PyCFunction) treebuilder_close, METH_VARARGS},
- {NULL, NULL}
-};
+[clinic start generated code]*/
-static PyTypeObject TreeBuilder_Type = {
- PyVarObject_HEAD_INIT(NULL, 0)
- "xml.etree.ElementTree.TreeBuilder", sizeof(TreeBuilderObject), 0,
- /* methods */
- (destructor)treebuilder_dealloc, /* tp_dealloc */
- 0, /* tp_print */
- 0, /* tp_getattr */
- 0, /* tp_setattr */
- 0, /* tp_reserved */
- 0, /* tp_repr */
- 0, /* tp_as_number */
- 0, /* tp_as_sequence */
- 0, /* tp_as_mapping */
- 0, /* tp_hash */
- 0, /* tp_call */
- 0, /* tp_str */
- 0, /* tp_getattro */
- 0, /* tp_setattro */
- 0, /* tp_as_buffer */
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC,
- /* tp_flags */
- 0, /* tp_doc */
- (traverseproc)treebuilder_gc_traverse, /* tp_traverse */
- (inquiry)treebuilder_gc_clear, /* tp_clear */
- 0, /* tp_richcompare */
- 0, /* tp_weaklistoffset */
- 0, /* tp_iter */
- 0, /* tp_iternext */
- treebuilder_methods, /* tp_methods */
- 0, /* tp_members */
- 0, /* tp_getset */
- 0, /* tp_base */
- 0, /* tp_dict */
- 0, /* tp_descr_get */
- 0, /* tp_descr_set */
- 0, /* tp_dictoffset */
- (initproc)treebuilder_init, /* tp_init */
- PyType_GenericAlloc, /* tp_alloc */
- treebuilder_new, /* tp_new */
- 0, /* tp_free */
-};
+static PyObject *
+_elementtree_TreeBuilder_start_impl(TreeBuilderObject *self, PyObject *tag,
+ PyObject *attrs)
+/*[clinic end generated code: output=e7e9dc2861349411 input=95fc1758dd042c65]*/
+{
+ return treebuilder_handle_start(self, tag, attrs);
+}
/* ==================================================================== */
/* the expat interface */
@@ -2791,7 +2782,11 @@ typedef struct {
} XMLParserObject;
-static PyObject* xmlparser_doctype(XMLParserObject* self, PyObject* args);
+static PyObject*
+_elementtree_XMLParser_doctype(XMLParserObject* self, PyObject* args);
+static PyObject *
+_elementtree_XMLParser_doctype_impl(XMLParserObject *self, PyObject *name,
+ PyObject *pubid, PyObject *system);
/* helpers */
@@ -2869,12 +2864,13 @@ makeuniversal(XMLParserObject* self, const char* string)
* message string is the default for the given error_code.
*/
static void
-expat_set_error(enum XML_Error error_code, int line, int column, char *message)
+expat_set_error(enum XML_Error error_code, Py_ssize_t line, Py_ssize_t column,
+ const char *message)
{
PyObject *errmsg, *error, *position, *code;
elementtreestate *st = ET_STATE_GLOBAL;
- errmsg = PyUnicode_FromFormat("%s: line %d, column %d",
+ errmsg = PyUnicode_FromFormat("%s: line %zd, column %zd",
message ? message : EXPAT(ErrorString)(error_code),
line, column);
if (errmsg == NULL)
@@ -2898,7 +2894,7 @@ expat_set_error(enum XML_Error error_code, int line, int column, char *message)
}
Py_DECREF(code);
- position = Py_BuildValue("(ii)", line, column);
+ position = Py_BuildValue("(nn)", line, column);
if (!position) {
Py_DECREF(error);
return;
@@ -3200,8 +3196,9 @@ expat_start_doctype_handler(XMLParserObject *self,
!(PyCFunction_Check(parser_doctype) &&
PyCFunction_GET_SELF(parser_doctype) == self_pyobj &&
PyCFunction_GET_FUNCTION(parser_doctype) ==
- (PyCFunction) xmlparser_doctype)) {
- res = xmlparser_doctype(self, NULL);
+ (PyCFunction) _elementtree_XMLParser_doctype)) {
+ res = _elementtree_XMLParser_doctype_impl(self, doctype_name_obj,
+ pubid_obj, sysid_obj);
if (!res)
goto clear;
Py_DECREF(res);
@@ -3260,33 +3257,34 @@ xmlparser_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
return (PyObject *)self;
}
-static int
-xmlparser_init(PyObject *self, PyObject *args, PyObject *kwds)
-{
- XMLParserObject *self_xp = (XMLParserObject *)self;
- PyObject *target = NULL, *html = NULL;
- char *encoding = NULL;
- static char *kwlist[] = {"html", "target", "encoding", 0};
+/*[clinic input]
+_elementtree.XMLParser.__init__
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "|OOz:XMLParser", kwlist,
- &html, &target, &encoding)) {
- return -1;
- }
+ html: object = NULL
+ target: object = NULL
+ encoding: str(accept={str, NoneType}) = NULL
+
+[clinic start generated code]*/
- self_xp->entity = PyDict_New();
- if (!self_xp->entity)
+static int
+_elementtree_XMLParser___init___impl(XMLParserObject *self, PyObject *html,
+ PyObject *target, const char *encoding)
+/*[clinic end generated code: output=d6a16c63dda54441 input=155bc5695baafffd]*/
+{
+ self->entity = PyDict_New();
+ if (!self->entity)
return -1;
- self_xp->names = PyDict_New();
- if (!self_xp->names) {
- Py_CLEAR(self_xp->entity);
+ self->names = PyDict_New();
+ if (!self->names) {
+ Py_CLEAR(self->entity);
return -1;
}
- self_xp->parser = EXPAT(ParserCreate_MM)(encoding, &ExpatMemoryHandler, "}");
- if (!self_xp->parser) {
- Py_CLEAR(self_xp->entity);
- Py_CLEAR(self_xp->names);
+ self->parser = EXPAT(ParserCreate_MM)(encoding, &ExpatMemoryHandler, "}");
+ if (!self->parser) {
+ Py_CLEAR(self->entity);
+ Py_CLEAR(self->names);
PyErr_NoMemory();
return -1;
}
@@ -3296,55 +3294,55 @@ xmlparser_init(PyObject *self, PyObject *args, PyObject *kwds)
} else {
target = treebuilder_new(&TreeBuilder_Type, NULL, NULL);
if (!target) {
- Py_CLEAR(self_xp->entity);
- Py_CLEAR(self_xp->names);
- EXPAT(ParserFree)(self_xp->parser);
+ Py_CLEAR(self->entity);
+ Py_CLEAR(self->names);
+ EXPAT(ParserFree)(self->parser);
return -1;
}
}
- self_xp->target = target;
+ self->target = target;
- self_xp->handle_start = PyObject_GetAttrString(target, "start");
- self_xp->handle_data = PyObject_GetAttrString(target, "data");
- self_xp->handle_end = PyObject_GetAttrString(target, "end");
- self_xp->handle_comment = PyObject_GetAttrString(target, "comment");
- self_xp->handle_pi = PyObject_GetAttrString(target, "pi");
- self_xp->handle_close = PyObject_GetAttrString(target, "close");
- self_xp->handle_doctype = PyObject_GetAttrString(target, "doctype");
+ self->handle_start = PyObject_GetAttrString(target, "start");
+ self->handle_data = PyObject_GetAttrString(target, "data");
+ self->handle_end = PyObject_GetAttrString(target, "end");
+ self->handle_comment = PyObject_GetAttrString(target, "comment");
+ self->handle_pi = PyObject_GetAttrString(target, "pi");
+ self->handle_close = PyObject_GetAttrString(target, "close");
+ self->handle_doctype = PyObject_GetAttrString(target, "doctype");
PyErr_Clear();
/* configure parser */
- EXPAT(SetUserData)(self_xp->parser, self_xp);
+ EXPAT(SetUserData)(self->parser, self);
EXPAT(SetElementHandler)(
- self_xp->parser,
+ self->parser,
(XML_StartElementHandler) expat_start_handler,
(XML_EndElementHandler) expat_end_handler
);
EXPAT(SetDefaultHandlerExpand)(
- self_xp->parser,
+ self->parser,
(XML_DefaultHandler) expat_default_handler
);
EXPAT(SetCharacterDataHandler)(
- self_xp->parser,
+ self->parser,
(XML_CharacterDataHandler) expat_data_handler
);
- if (self_xp->handle_comment)
+ if (self->handle_comment)
EXPAT(SetCommentHandler)(
- self_xp->parser,
+ self->parser,
(XML_CommentHandler) expat_comment_handler
);
- if (self_xp->handle_pi)
+ if (self->handle_pi)
EXPAT(SetProcessingInstructionHandler)(
- self_xp->parser,
+ self->parser,
(XML_ProcessingInstructionHandler) expat_pi_handler
);
EXPAT(SetStartDoctypeDeclHandler)(
- self_xp->parser,
+ self->parser,
(XML_StartDoctypeDeclHandler) expat_start_doctype_handler
);
EXPAT(SetUnknownEncodingHandler)(
- self_xp->parser,
+ self->parser,
EXPAT(DefaultUnknownEncodingHandler), NULL
);
@@ -3420,15 +3418,18 @@ expat_parse(XMLParserObject* self, const char* data, int data_len, int final)
Py_RETURN_NONE;
}
-static PyObject*
-xmlparser_close(XMLParserObject* self, PyObject* args)
+/*[clinic input]
+_elementtree.XMLParser.close
+
+[clinic start generated code]*/
+
+static PyObject *
+_elementtree_XMLParser_close_impl(XMLParserObject *self)
+/*[clinic end generated code: output=d68d375dd23bc7fb input=ca7909ca78c3abfe]*/
{
/* end feeding data to parser */
PyObject* res;
- if (!PyArg_ParseTuple(args, ":close"))
- return NULL;
-
res = expat_parse(self, "", 0, 1);
if (!res)
return NULL;
@@ -3446,15 +3447,24 @@ xmlparser_close(XMLParserObject* self, PyObject* args)
}
}
-static PyObject*
-xmlparser_feed(XMLParserObject* self, PyObject* arg)
+/*[clinic input]
+_elementtree.XMLParser.feed
+
+ data: object
+ /
+
+[clinic start generated code]*/
+
+static PyObject *
+_elementtree_XMLParser_feed(XMLParserObject *self, PyObject *data)
+/*[clinic end generated code: output=e42b6a78eec7446d input=fe231b6b8de3ce1f]*/
{
/* feed data to parser */
- if (PyUnicode_Check(arg)) {
+ if (PyUnicode_Check(data)) {
Py_ssize_t data_len;
- const char *data = PyUnicode_AsUTF8AndSize(arg, &data_len);
- if (data == NULL)
+ const char *data_ptr = PyUnicode_AsUTF8AndSize(data, &data_len);
+ if (data_ptr == NULL)
return NULL;
if (data_len > INT_MAX) {
PyErr_SetString(PyExc_OverflowError, "size does not fit in an int");
@@ -3462,12 +3472,12 @@ xmlparser_feed(XMLParserObject* self, PyObject* arg)
}
/* Explicitly set UTF-8 encoding. Return code ignored. */
(void)EXPAT(SetEncoding)(self->parser, "utf-8");
- return expat_parse(self, data, (int)data_len, 0);
+ return expat_parse(self, data_ptr, (int)data_len, 0);
}
else {
Py_buffer view;
PyObject *res;
- if (PyObject_GetBuffer(arg, &view, PyBUF_SIMPLE) < 0)
+ if (PyObject_GetBuffer(data, &view, PyBUF_SIMPLE) < 0)
return NULL;
if (view.len > INT_MAX) {
PyBuffer_Release(&view);
@@ -3480,8 +3490,17 @@ xmlparser_feed(XMLParserObject* self, PyObject* arg)
}
}
-static PyObject*
-xmlparser_parse_whole(XMLParserObject* self, PyObject* args)
+/*[clinic input]
+_elementtree.XMLParser._parse_whole
+
+ file: object
+ /
+
+[clinic start generated code]*/
+
+static PyObject *
+_elementtree_XMLParser__parse_whole(XMLParserObject *self, PyObject *file)
+/*[clinic end generated code: output=f797197bb818dda3 input=19ecc893b6f3e752]*/
{
/* (internal) parse the whole input, until end of stream */
PyObject* reader;
@@ -3489,11 +3508,7 @@ xmlparser_parse_whole(XMLParserObject* self, PyObject* args)
PyObject* temp;
PyObject* res;
- PyObject* fileobj;
- if (!PyArg_ParseTuple(args, "O:_parse", &fileobj))
- return NULL;
-
- reader = PyObject_GetAttrString(fileobj, "read");
+ reader = PyObject_GetAttrString(file, "read");
if (!reader)
return NULL;
@@ -3528,8 +3543,14 @@ xmlparser_parse_whole(XMLParserObject* self, PyObject* args)
break;
}
+ if (PyBytes_GET_SIZE(buffer) > INT_MAX) {
+ Py_DECREF(buffer);
+ Py_DECREF(reader);
+ PyErr_SetString(PyExc_OverflowError, "size does not fit in an int");
+ return NULL;
+ }
res = expat_parse(
- self, PyBytes_AS_STRING(buffer), PyBytes_GET_SIZE(buffer), 0
+ self, PyBytes_AS_STRING(buffer), (int)PyBytes_GET_SIZE(buffer), 0
);
Py_DECREF(buffer);
@@ -3554,8 +3575,20 @@ xmlparser_parse_whole(XMLParserObject* self, PyObject* args)
return res;
}
-static PyObject*
-xmlparser_doctype(XMLParserObject *self, PyObject *args)
+/*[clinic input]
+_elementtree.XMLParser.doctype
+
+ name: object
+ pubid: object
+ system: object
+ /
+
+[clinic start generated code]*/
+
+static PyObject *
+_elementtree_XMLParser_doctype_impl(XMLParserObject *self, PyObject *name,
+ PyObject *pubid, PyObject *system)
+/*[clinic end generated code: output=10fb50c2afded88d input=84050276cca045e1]*/
{
if (PyErr_WarnEx(PyExc_DeprecationWarning,
"This method of XMLParser is deprecated. Define"
@@ -3566,19 +3599,25 @@ xmlparser_doctype(XMLParserObject *self, PyObject *args)
Py_RETURN_NONE;
}
-static PyObject*
-xmlparser_setevents(XMLParserObject *self, PyObject* args)
+/*[clinic input]
+_elementtree.XMLParser._setevents
+
+ events_queue: object(subclass_of='&PyList_Type')
+ events_to_report: object = None
+ /
+
+[clinic start generated code]*/
+
+static PyObject *
+_elementtree_XMLParser__setevents_impl(XMLParserObject *self,
+ PyObject *events_queue,
+ PyObject *events_to_report)
+/*[clinic end generated code: output=1440092922b13ed1 input=59db9742910c6174]*/
{
/* activate element event reporting */
Py_ssize_t i, seqlen;
TreeBuilderObject *target;
-
- PyObject *events_queue;
- PyObject *events_to_report = Py_None;
PyObject *events_seq;
- if (!PyArg_ParseTuple(args, "O!|O:_setevents", &PyList_Type, &events_queue,
- &events_to_report))
- return NULL;
if (!TreeBuilder_CheckExact(self->target)) {
PyErr_SetString(
@@ -3662,15 +3701,6 @@ xmlparser_setevents(XMLParserObject *self, PyObject* args)
Py_RETURN_NONE;
}
-static PyMethodDef xmlparser_methods[] = {
- {"feed", (PyCFunction) xmlparser_feed, METH_O},
- {"close", (PyCFunction) xmlparser_close, METH_VARARGS},
- {"_parse_whole", (PyCFunction) xmlparser_parse_whole, METH_VARARGS},
- {"_setevents", (PyCFunction) xmlparser_setevents, METH_VARARGS},
- {"doctype", (PyCFunction) xmlparser_doctype, METH_VARARGS},
- {NULL, NULL}
-};
-
static PyObject*
xmlparser_getattro(XMLParserObject* self, PyObject* nameobj)
{
@@ -3695,6 +3725,152 @@ xmlparser_getattro(XMLParserObject* self, PyObject* nameobj)
return PyObject_GenericGetAttr((PyObject*) self, nameobj);
}
+#include "clinic/_elementtree.c.h"
+
+static PyMethodDef element_methods[] = {
+
+ _ELEMENTTREE_ELEMENT_CLEAR_METHODDEF
+
+ _ELEMENTTREE_ELEMENT_GET_METHODDEF
+ _ELEMENTTREE_ELEMENT_SET_METHODDEF
+
+ _ELEMENTTREE_ELEMENT_FIND_METHODDEF
+ _ELEMENTTREE_ELEMENT_FINDTEXT_METHODDEF
+ _ELEMENTTREE_ELEMENT_FINDALL_METHODDEF
+
+ _ELEMENTTREE_ELEMENT_APPEND_METHODDEF
+ _ELEMENTTREE_ELEMENT_EXTEND_METHODDEF
+ _ELEMENTTREE_ELEMENT_INSERT_METHODDEF
+ _ELEMENTTREE_ELEMENT_REMOVE_METHODDEF
+
+ _ELEMENTTREE_ELEMENT_ITER_METHODDEF
+ _ELEMENTTREE_ELEMENT_ITERTEXT_METHODDEF
+ _ELEMENTTREE_ELEMENT_ITERFIND_METHODDEF
+
+ {"getiterator", (PyCFunction)_elementtree_Element_iter, METH_VARARGS|METH_KEYWORDS, _elementtree_Element_iter__doc__},
+ _ELEMENTTREE_ELEMENT_GETCHILDREN_METHODDEF
+
+ _ELEMENTTREE_ELEMENT_ITEMS_METHODDEF
+ _ELEMENTTREE_ELEMENT_KEYS_METHODDEF
+
+ _ELEMENTTREE_ELEMENT_MAKEELEMENT_METHODDEF
+
+ _ELEMENTTREE_ELEMENT___COPY___METHODDEF
+ _ELEMENTTREE_ELEMENT___DEEPCOPY___METHODDEF
+ _ELEMENTTREE_ELEMENT___SIZEOF___METHODDEF
+ _ELEMENTTREE_ELEMENT___GETSTATE___METHODDEF
+ _ELEMENTTREE_ELEMENT___SETSTATE___METHODDEF
+
+ {NULL, NULL}
+};
+
+static PyMappingMethods element_as_mapping = {
+ (lenfunc) element_length,
+ (binaryfunc) element_subscr,
+ (objobjargproc) element_ass_subscr,
+};
+
+static PyTypeObject Element_Type = {
+ PyVarObject_HEAD_INIT(NULL, 0)
+ "xml.etree.ElementTree.Element", sizeof(ElementObject), 0,
+ /* methods */
+ (destructor)element_dealloc, /* tp_dealloc */
+ 0, /* tp_print */
+ 0, /* tp_getattr */
+ 0, /* tp_setattr */
+ 0, /* tp_reserved */
+ (reprfunc)element_repr, /* tp_repr */
+ 0, /* tp_as_number */
+ &element_as_sequence, /* tp_as_sequence */
+ &element_as_mapping, /* tp_as_mapping */
+ 0, /* tp_hash */
+ 0, /* tp_call */
+ 0, /* tp_str */
+ (getattrofunc)element_getattro, /* tp_getattro */
+ (setattrofunc)element_setattro, /* tp_setattro */
+ 0, /* tp_as_buffer */
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC,
+ /* tp_flags */
+ 0, /* tp_doc */
+ (traverseproc)element_gc_traverse, /* tp_traverse */
+ (inquiry)element_gc_clear, /* tp_clear */
+ 0, /* tp_richcompare */
+ offsetof(ElementObject, weakreflist), /* tp_weaklistoffset */
+ 0, /* tp_iter */
+ 0, /* tp_iternext */
+ element_methods, /* tp_methods */
+ 0, /* tp_members */
+ 0, /* tp_getset */
+ 0, /* tp_base */
+ 0, /* tp_dict */
+ 0, /* tp_descr_get */
+ 0, /* tp_descr_set */
+ 0, /* tp_dictoffset */
+ (initproc)element_init, /* tp_init */
+ PyType_GenericAlloc, /* tp_alloc */
+ element_new, /* tp_new */
+ 0, /* tp_free */
+};
+
+static PyMethodDef treebuilder_methods[] = {
+ _ELEMENTTREE_TREEBUILDER_DATA_METHODDEF
+ _ELEMENTTREE_TREEBUILDER_START_METHODDEF
+ _ELEMENTTREE_TREEBUILDER_END_METHODDEF
+ _ELEMENTTREE_TREEBUILDER_CLOSE_METHODDEF
+ {NULL, NULL}
+};
+
+static PyTypeObject TreeBuilder_Type = {
+ PyVarObject_HEAD_INIT(NULL, 0)
+ "xml.etree.ElementTree.TreeBuilder", sizeof(TreeBuilderObject), 0,
+ /* methods */
+ (destructor)treebuilder_dealloc, /* tp_dealloc */
+ 0, /* tp_print */
+ 0, /* tp_getattr */
+ 0, /* tp_setattr */
+ 0, /* tp_reserved */
+ 0, /* tp_repr */
+ 0, /* tp_as_number */
+ 0, /* tp_as_sequence */
+ 0, /* tp_as_mapping */
+ 0, /* tp_hash */
+ 0, /* tp_call */
+ 0, /* tp_str */
+ 0, /* tp_getattro */
+ 0, /* tp_setattro */
+ 0, /* tp_as_buffer */
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC,
+ /* tp_flags */
+ 0, /* tp_doc */
+ (traverseproc)treebuilder_gc_traverse, /* tp_traverse */
+ (inquiry)treebuilder_gc_clear, /* tp_clear */
+ 0, /* tp_richcompare */
+ 0, /* tp_weaklistoffset */
+ 0, /* tp_iter */
+ 0, /* tp_iternext */
+ treebuilder_methods, /* tp_methods */
+ 0, /* tp_members */
+ 0, /* tp_getset */
+ 0, /* tp_base */
+ 0, /* tp_dict */
+ 0, /* tp_descr_get */
+ 0, /* tp_descr_set */
+ 0, /* tp_dictoffset */
+ _elementtree_TreeBuilder___init__, /* tp_init */
+ PyType_GenericAlloc, /* tp_alloc */
+ treebuilder_new, /* tp_new */
+ 0, /* tp_free */
+};
+
+static PyMethodDef xmlparser_methods[] = {
+ _ELEMENTTREE_XMLPARSER_FEED_METHODDEF
+ _ELEMENTTREE_XMLPARSER_CLOSE_METHODDEF
+ _ELEMENTTREE_XMLPARSER__PARSE_WHOLE_METHODDEF
+ _ELEMENTTREE_XMLPARSER__SETEVENTS_METHODDEF
+ _ELEMENTTREE_XMLPARSER_DOCTYPE_METHODDEF
+ {NULL, NULL}
+};
+
static PyTypeObject XMLParser_Type = {
PyVarObject_HEAD_INIT(NULL, 0)
"xml.etree.ElementTree.XMLParser", sizeof(XMLParserObject), 0,
@@ -3731,7 +3907,7 @@ static PyTypeObject XMLParser_Type = {
0, /* tp_descr_get */
0, /* tp_descr_set */
0, /* tp_dictoffset */
- (initproc)xmlparser_init, /* tp_init */
+ _elementtree_XMLParser___init__, /* tp_init */
PyType_GenericAlloc, /* tp_alloc */
xmlparser_new, /* tp_new */
0, /* tp_free */
@@ -3798,7 +3974,7 @@ PyInit__elementtree(void)
if (expat_capi) {
/* check that it's usable */
if (strcmp(expat_capi->magic, PyExpat_CAPI_MAGIC) != 0 ||
- expat_capi->size < sizeof(struct PyExpat_CAPI) ||
+ (size_t)expat_capi->size < sizeof(struct PyExpat_CAPI) ||
expat_capi->MAJOR_VERSION != XML_MAJOR_VERSION ||
expat_capi->MINOR_VERSION != XML_MINOR_VERSION ||
expat_capi->MICRO_VERSION != XML_MICRO_VERSION) {
diff --git a/Modules/_freeze_importlib.c b/Modules/_freeze_importlib.c
deleted file mode 100644
index 57b1ac0662..0000000000
--- a/Modules/_freeze_importlib.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/* This is built as a stand-alone executable by the Makefile, and helps turn
- Lib/importlib/_bootstrap.py into a frozen module in Python/importlib.h
-*/
-
-#include <Python.h>
-#include <marshal.h>
-
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#ifndef MS_WINDOWS
-#include <unistd.h>
-#endif
-
-
-/* To avoid a circular dependency on frozen.o, we create our own structure
- of frozen modules instead, left deliberately blank so as to avoid
- unintentional import of a stale version of _frozen_importlib. */
-
-const static struct _frozen _PyImport_FrozenModules[] = {
- {0, 0, 0} /* sentinel */
-};
-
-#ifndef MS_WINDOWS
-/* On Windows, this links with the regular pythonXY.dll, so this variable comes
- from frozen.obj. In the Makefile, frozen.o is not linked into this executable,
- so we define the variable here. */
-const struct _frozen *PyImport_FrozenModules;
-#endif
-
-const char header[] = "/* Auto-generated by Modules/_freeze_importlib.c */";
-
-int
-main(int argc, char *argv[])
-{
- char *inpath, *outpath;
- FILE *infile = NULL, *outfile = NULL;
- struct stat st;
- size_t text_size, data_size, n;
- char *text = NULL;
- unsigned char *data;
- PyObject *code = NULL, *marshalled = NULL;
-
- PyImport_FrozenModules = _PyImport_FrozenModules;
-
- if (argc != 3) {
- fprintf(stderr, "need to specify input and output paths\n");
- return 2;
- }
- inpath = argv[1];
- outpath = argv[2];
- infile = fopen(inpath, "rb");
- if (infile == NULL) {
- fprintf(stderr, "cannot open '%s' for reading\n", inpath);
- goto error;
- }
- if (fstat(fileno(infile), &st)) {
- fprintf(stderr, "cannot fstat '%s'\n", inpath);
- goto error;
- }
- text_size = st.st_size;
- text = (char *) malloc(text_size + 1);
- if (text == NULL) {
- fprintf(stderr, "could not allocate %ld bytes\n", (long) text_size);
- goto error;
- }
- n = fread(text, 1, text_size, infile);
- fclose(infile);
- infile = NULL;
- if (n < text_size) {
- fprintf(stderr, "read too short: got %ld instead of %ld bytes\n",
- (long) n, (long) text_size);
- goto error;
- }
- text[text_size] = '\0';
-
- Py_NoUserSiteDirectory++;
- Py_NoSiteFlag++;
- Py_IgnoreEnvironmentFlag++;
-
- Py_SetProgramName(L"./_freeze_importlib");
- /* Don't install importlib, since it could execute outdated bytecode. */
- _Py_InitializeEx_Private(1, 0);
-
- code = Py_CompileStringExFlags(text, "<frozen importlib._bootstrap>",
- Py_file_input, NULL, 0);
- if (code == NULL)
- goto error;
- free(text);
- text = NULL;
-
- marshalled = PyMarshal_WriteObjectToString(code, Py_MARSHAL_VERSION);
- Py_CLEAR(code);
- if (marshalled == NULL)
- goto error;
-
- assert(PyBytes_CheckExact(marshalled));
- data = (unsigned char *) PyBytes_AS_STRING(marshalled);
- data_size = PyBytes_GET_SIZE(marshalled);
-
- /* Open the file in text mode. The hg checkout should be using the eol extension,
- which in turn should cause the EOL style match the C library's text mode */
- outfile = fopen(outpath, "w");
- if (outfile == NULL) {
- fprintf(stderr, "cannot open '%s' for writing\n", outpath);
- goto error;
- }
- fprintf(outfile, "%s\n", header);
- fprintf(outfile, "const unsigned char _Py_M__importlib[] = {\n");
- for (n = 0; n < data_size; n += 16) {
- size_t i, end = Py_MIN(n + 16, data_size);
- fprintf(outfile, " ");
- for (i = n; i < end; i++) {
- fprintf(outfile, "%d,", (unsigned int) data[i]);
- }
- fprintf(outfile, "\n");
- }
- fprintf(outfile, "};\n");
-
- Py_CLEAR(marshalled);
-
- Py_Finalize();
- if (outfile) {
- if (ferror(outfile)) {
- fprintf(stderr, "error when writing to '%s'\n", outpath);
- goto error;
- }
- fclose(outfile);
- }
- return 0;
-
-error:
- PyErr_Print();
- Py_Finalize();
- if (infile)
- fclose(infile);
- if (outfile)
- fclose(outfile);
- if (text)
- free(text);
- if (marshalled)
- Py_DECREF(marshalled);
- return 1;
-}
diff --git a/Modules/_functoolsmodule.c b/Modules/_functoolsmodule.c
index 24da67741b..dc64cfee2d 100644
--- a/Modules/_functoolsmodule.c
+++ b/Modules/_functoolsmodule.c
@@ -25,7 +25,7 @@ static PyTypeObject partial_type;
static PyObject *
partial_new(PyTypeObject *type, PyObject *args, PyObject *kw)
{
- PyObject *func;
+ PyObject *func, *pargs, *nargs, *pkw;
partialobject *pto;
if (PyTuple_GET_SIZE(args) < 1) {
@@ -34,7 +34,16 @@ partial_new(PyTypeObject *type, PyObject *args, PyObject *kw)
return NULL;
}
+ pargs = pkw = Py_None;
func = PyTuple_GET_ITEM(args, 0);
+ if (Py_TYPE(func) == &partial_type && type == &partial_type) {
+ partialobject *part = (partialobject *)func;
+ if (part->dict == NULL) {
+ pargs = part->args;
+ pkw = part->kw;
+ func = part->fn;
+ }
+ }
if (!PyCallable_Check(func)) {
PyErr_SetString(PyExc_TypeError,
"the first argument must be callable");
@@ -48,18 +57,63 @@ partial_new(PyTypeObject *type, PyObject *args, PyObject *kw)
pto->fn = func;
Py_INCREF(func);
- pto->args = PyTuple_GetSlice(args, 1, PY_SSIZE_T_MAX);
- if (pto->args == NULL) {
+
+ nargs = PyTuple_GetSlice(args, 1, PY_SSIZE_T_MAX);
+ if (nargs == NULL) {
+ pto->args = NULL;
pto->kw = NULL;
Py_DECREF(pto);
return NULL;
}
- pto->kw = (kw != NULL) ? PyDict_Copy(kw) : PyDict_New();
- if (pto->kw == NULL) {
- Py_DECREF(pto);
- return NULL;
+ if (pargs == Py_None || PyTuple_GET_SIZE(pargs) == 0) {
+ pto->args = nargs;
+ Py_INCREF(nargs);
+ }
+ else if (PyTuple_GET_SIZE(nargs) == 0) {
+ pto->args = pargs;
+ Py_INCREF(pargs);
+ }
+ else {
+ pto->args = PySequence_Concat(pargs, nargs);
+ if (pto->args == NULL) {
+ pto->kw = NULL;
+ Py_DECREF(pto);
+ return NULL;
+ }
}
+ Py_DECREF(nargs);
+ if (kw != NULL) {
+ if (pkw == Py_None) {
+ pto->kw = PyDict_Copy(kw);
+ }
+ else {
+ pto->kw = PyDict_Copy(pkw);
+ if (pto->kw != NULL) {
+ if (PyDict_Merge(pto->kw, kw, 1) != 0) {
+ Py_DECREF(pto);
+ return NULL;
+ }
+ }
+ }
+ if (pto->kw == NULL) {
+ Py_DECREF(pto);
+ return NULL;
+ }
+ }
+ else {
+ if (pkw == Py_None) {
+ pto->kw = PyDict_New();
+ if (pto->kw == NULL) {
+ Py_DECREF(pto);
+ return NULL;
+ }
+ }
+ else {
+ pto->kw = pkw;
+ Py_INCREF(pkw);
+ }
+ }
pto->weakreflist = NULL;
pto->dict = NULL;
@@ -536,6 +590,550 @@ For example, reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) calculates\n\
of the sequence in the calculation, and serves as a default when the\n\
sequence is empty.");
+/* lru_cache object **********************************************************/
+
+/* this object is used delimit args and keywords in the cache keys */
+static PyObject *kwd_mark = NULL;
+
+struct lru_list_elem;
+struct lru_cache_object;
+
+typedef struct lru_list_elem {
+ PyObject_HEAD
+ struct lru_list_elem *prev, *next; /* borrowed links */
+ PyObject *key, *result;
+} lru_list_elem;
+
+static void
+lru_list_elem_dealloc(lru_list_elem *link)
+{
+ _PyObject_GC_UNTRACK(link);
+ Py_XDECREF(link->key);
+ Py_XDECREF(link->result);
+ PyObject_GC_Del(link);
+}
+
+static int
+lru_list_elem_traverse(lru_list_elem *link, visitproc visit, void *arg)
+{
+ Py_VISIT(link->key);
+ Py_VISIT(link->result);
+ return 0;
+}
+
+static int
+lru_list_elem_clear(lru_list_elem *link)
+{
+ Py_CLEAR(link->key);
+ Py_CLEAR(link->result);
+ return 0;
+}
+
+static PyTypeObject lru_list_elem_type = {
+ PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ "functools._lru_list_elem", /* tp_name */
+ sizeof(lru_list_elem), /* tp_basicsize */
+ 0, /* tp_itemsize */
+ /* methods */
+ (destructor)lru_list_elem_dealloc, /* tp_dealloc */
+ 0, /* tp_print */
+ 0, /* tp_getattr */
+ 0, /* tp_setattr */
+ 0, /* tp_reserved */
+ 0, /* tp_repr */
+ 0, /* tp_as_number */
+ 0, /* tp_as_sequence */
+ 0, /* tp_as_mapping */
+ 0, /* tp_hash */
+ 0, /* tp_call */
+ 0, /* tp_str */
+ 0, /* tp_getattro */
+ 0, /* tp_setattro */
+ 0, /* tp_as_buffer */
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, /* tp_flags */
+ 0, /* tp_doc */
+ (traverseproc)lru_list_elem_traverse, /* tp_traverse */
+ (inquiry)lru_list_elem_clear, /* tp_clear */
+};
+
+
+typedef PyObject *(*lru_cache_ternaryfunc)(struct lru_cache_object *, PyObject *, PyObject *);
+
+typedef struct lru_cache_object {
+ lru_list_elem root; /* includes PyObject_HEAD */
+ Py_ssize_t maxsize;
+ PyObject *maxsize_O;
+ PyObject *func;
+ lru_cache_ternaryfunc wrapper;
+ PyObject *cache;
+ PyObject *cache_info_type;
+ Py_ssize_t misses, hits;
+ int typed;
+ PyObject *dict;
+ int full;
+} lru_cache_object;
+
+static PyTypeObject lru_cache_type;
+
+static PyObject *
+lru_cache_make_key(PyObject *args, PyObject *kwds, int typed)
+{
+ PyObject *key, *sorted_items;
+ Py_ssize_t key_size, pos, key_pos;
+
+ /* short path, key will match args anyway, which is a tuple */
+ if (!typed && !kwds) {
+ Py_INCREF(args);
+ return args;
+ }
+
+ if (kwds && PyDict_Size(kwds) > 0) {
+ sorted_items = PyDict_Items(kwds);
+ if (!sorted_items)
+ return NULL;
+ if (PyList_Sort(sorted_items) < 0) {
+ Py_DECREF(sorted_items);
+ return NULL;
+ }
+ } else
+ sorted_items = NULL;
+
+ key_size = PyTuple_GET_SIZE(args);
+ if (sorted_items)
+ key_size += PyList_GET_SIZE(sorted_items);
+ if (typed)
+ key_size *= 2;
+ if (sorted_items)
+ key_size++;
+
+ key = PyTuple_New(key_size);
+ if (key == NULL)
+ goto done;
+
+ key_pos = 0;
+ for (pos = 0; pos < PyTuple_GET_SIZE(args); ++pos) {
+ PyObject *item = PyTuple_GET_ITEM(args, pos);
+ Py_INCREF(item);
+ PyTuple_SET_ITEM(key, key_pos++, item);
+ }
+ if (sorted_items) {
+ Py_INCREF(kwd_mark);
+ PyTuple_SET_ITEM(key, key_pos++, kwd_mark);
+ for (pos = 0; pos < PyList_GET_SIZE(sorted_items); ++pos) {
+ PyObject *item = PyList_GET_ITEM(sorted_items, pos);
+ Py_INCREF(item);
+ PyTuple_SET_ITEM(key, key_pos++, item);
+ }
+ }
+ if (typed) {
+ for (pos = 0; pos < PyTuple_GET_SIZE(args); ++pos) {
+ PyObject *item = (PyObject *)Py_TYPE(PyTuple_GET_ITEM(args, pos));
+ Py_INCREF(item);
+ PyTuple_SET_ITEM(key, key_pos++, item);
+ }
+ if (sorted_items) {
+ for (pos = 0; pos < PyList_GET_SIZE(sorted_items); ++pos) {
+ PyObject *tp_items = PyList_GET_ITEM(sorted_items, pos);
+ PyObject *item = (PyObject *)Py_TYPE(PyTuple_GET_ITEM(tp_items, 1));
+ Py_INCREF(item);
+ PyTuple_SET_ITEM(key, key_pos++, item);
+ }
+ }
+ }
+ assert(key_pos == key_size);
+
+done:
+ if (sorted_items)
+ Py_DECREF(sorted_items);
+ return key;
+}
+
+static PyObject *
+uncached_lru_cache_wrapper(lru_cache_object *self, PyObject *args, PyObject *kwds)
+{
+ PyObject *result = PyObject_Call(self->func, args, kwds);
+ if (!result)
+ return NULL;
+ self->misses++;
+ return result;
+}
+
+static PyObject *
+infinite_lru_cache_wrapper(lru_cache_object *self, PyObject *args, PyObject *kwds)
+{
+ PyObject *result;
+ PyObject *key = lru_cache_make_key(args, kwds, self->typed);
+ if (!key)
+ return NULL;
+ result = PyDict_GetItemWithError(self->cache, key);
+ if (result) {
+ Py_INCREF(result);
+ self->hits++;
+ Py_DECREF(key);
+ return result;
+ }
+ if (PyErr_Occurred()) {
+ Py_DECREF(key);
+ return NULL;
+ }
+ result = PyObject_Call(self->func, args, kwds);
+ if (!result) {
+ Py_DECREF(key);
+ return NULL;
+ }
+ if (PyDict_SetItem(self->cache, key, result) < 0) {
+ Py_DECREF(result);
+ Py_DECREF(key);
+ return NULL;
+ }
+ Py_DECREF(key);
+ self->misses++;
+ return result;
+}
+
+static void
+lru_cache_extricate_link(lru_list_elem *link)
+{
+ link->prev->next = link->next;
+ link->next->prev = link->prev;
+}
+
+static void
+lru_cache_append_link(lru_cache_object *self, lru_list_elem *link)
+{
+ lru_list_elem *root = &self->root;
+ lru_list_elem *last = root->prev;
+ last->next = root->prev = link;
+ link->prev = last;
+ link->next = root;
+}
+
+static PyObject *
+bounded_lru_cache_wrapper(lru_cache_object *self, PyObject *args, PyObject *kwds)
+{
+ lru_list_elem *link;
+ PyObject *key, *result;
+
+ key = lru_cache_make_key(args, kwds, self->typed);
+ if (!key)
+ return NULL;
+ link = (lru_list_elem *)PyDict_GetItemWithError(self->cache, key);
+ if (link) {
+ lru_cache_extricate_link(link);
+ lru_cache_append_link(self, link);
+ self->hits++;
+ result = link->result;
+ Py_INCREF(result);
+ Py_DECREF(key);
+ return result;
+ }
+ if (PyErr_Occurred()) {
+ Py_DECREF(key);
+ return NULL;
+ }
+ result = PyObject_Call(self->func, args, kwds);
+ if (!result) {
+ Py_DECREF(key);
+ return NULL;
+ }
+ if (self->full && self->root.next != &self->root) {
+ /* Use the oldest item to store the new key and result. */
+ PyObject *oldkey, *oldresult;
+ /* Extricate the oldest item. */
+ link = self->root.next;
+ lru_cache_extricate_link(link);
+ /* Remove it from the cache.
+ The cache dict holds one reference to the link,
+ and the linked list holds yet one reference to it. */
+ if (PyDict_DelItem(self->cache, link->key) < 0) {
+ lru_cache_append_link(self, link);
+ Py_DECREF(key);
+ Py_DECREF(result);
+ return NULL;
+ }
+ /* Keep a reference to the old key and old result to
+ prevent their ref counts from going to zero during the
+ update. That will prevent potentially arbitrary object
+ clean-up code (i.e. __del__) from running while we're
+ still adjusting the links. */
+ oldkey = link->key;
+ oldresult = link->result;
+
+ link->key = key;
+ link->result = result;
+ if (PyDict_SetItem(self->cache, key, (PyObject *)link) < 0) {
+ Py_DECREF(link);
+ Py_DECREF(oldkey);
+ Py_DECREF(oldresult);
+ return NULL;
+ }
+ lru_cache_append_link(self, link);
+ Py_INCREF(result); /* for return */
+ Py_DECREF(oldkey);
+ Py_DECREF(oldresult);
+ } else {
+ /* Put result in a new link at the front of the queue. */
+ link = (lru_list_elem *)PyObject_GC_New(lru_list_elem,
+ &lru_list_elem_type);
+ if (link == NULL) {
+ Py_DECREF(key);
+ Py_DECREF(result);
+ return NULL;
+ }
+
+ link->key = key;
+ link->result = result;
+ _PyObject_GC_TRACK(link);
+ if (PyDict_SetItem(self->cache, key, (PyObject *)link) < 0) {
+ Py_DECREF(link);
+ return NULL;
+ }
+ lru_cache_append_link(self, link);
+ Py_INCREF(result); /* for return */
+ self->full = (PyDict_Size(self->cache) >= self->maxsize);
+ }
+ self->misses++;
+ return result;
+}
+
+static PyObject *
+lru_cache_new(PyTypeObject *type, PyObject *args, PyObject *kw)
+{
+ PyObject *func, *maxsize_O, *cache_info_type, *cachedict;
+ int typed;
+ lru_cache_object *obj;
+ Py_ssize_t maxsize;
+ PyObject *(*wrapper)(lru_cache_object *, PyObject *, PyObject *);
+ static char *keywords[] = {"user_function", "maxsize", "typed",
+ "cache_info_type", NULL};
+
+ if (!PyArg_ParseTupleAndKeywords(args, kw, "OOpO:lru_cache", keywords,
+ &func, &maxsize_O, &typed,
+ &cache_info_type)) {
+ return NULL;
+ }
+
+ if (!PyCallable_Check(func)) {
+ PyErr_SetString(PyExc_TypeError,
+ "the first argument must be callable");
+ return NULL;
+ }
+
+ /* select the caching function, and make/inc maxsize_O */
+ if (maxsize_O == Py_None) {
+ wrapper = infinite_lru_cache_wrapper;
+ /* use this only to initialize lru_cache_object attribute maxsize */
+ maxsize = -1;
+ } else if (PyIndex_Check(maxsize_O)) {
+ maxsize = PyNumber_AsSsize_t(maxsize_O, PyExc_OverflowError);
+ if (maxsize == -1 && PyErr_Occurred())
+ return NULL;
+ if (maxsize == 0)
+ wrapper = uncached_lru_cache_wrapper;
+ else
+ wrapper = bounded_lru_cache_wrapper;
+ } else {
+ PyErr_SetString(PyExc_TypeError, "maxsize should be integer or None");
+ return NULL;
+ }
+
+ if (!(cachedict = PyDict_New()))
+ return NULL;
+
+ obj = (lru_cache_object *)type->tp_alloc(type, 0);
+ if (obj == NULL) {
+ Py_DECREF(cachedict);
+ return NULL;
+ }
+
+ obj->cache = cachedict;
+ obj->root.prev = &obj->root;
+ obj->root.next = &obj->root;
+ obj->maxsize = maxsize;
+ Py_INCREF(maxsize_O);
+ obj->maxsize_O = maxsize_O;
+ Py_INCREF(func);
+ obj->func = func;
+ obj->wrapper = wrapper;
+ obj->misses = obj->hits = 0;
+ obj->typed = typed;
+ Py_INCREF(cache_info_type);
+ obj->cache_info_type = cache_info_type;
+
+ return (PyObject *)obj;
+}
+
+static lru_list_elem *
+lru_cache_unlink_list(lru_cache_object *self)
+{
+ lru_list_elem *root = &self->root;
+ lru_list_elem *link = root->next;
+ if (link == root)
+ return NULL;
+ root->prev->next = NULL;
+ root->next = root->prev = root;
+ return link;
+}
+
+static void
+lru_cache_clear_list(lru_list_elem *link)
+{
+ while (link != NULL) {
+ lru_list_elem *next = link->next;
+ Py_DECREF(link);
+ link = next;
+ }
+}
+
+static void
+lru_cache_dealloc(lru_cache_object *obj)
+{
+ lru_list_elem *list = lru_cache_unlink_list(obj);
+ Py_XDECREF(obj->maxsize_O);
+ Py_XDECREF(obj->func);
+ Py_XDECREF(obj->cache);
+ Py_XDECREF(obj->dict);
+ Py_XDECREF(obj->cache_info_type);
+ lru_cache_clear_list(list);
+ Py_TYPE(obj)->tp_free(obj);
+}
+
+static PyObject *
+lru_cache_call(lru_cache_object *self, PyObject *args, PyObject *kwds)
+{
+ return self->wrapper(self, args, kwds);
+}
+
+static PyObject *
+lru_cache_descr_get(PyObject *self, PyObject *obj, PyObject *type)
+{
+ if (obj == Py_None || obj == NULL) {
+ Py_INCREF(self);
+ return self;
+ }
+ return PyMethod_New(self, obj);
+}
+
+static PyObject *
+lru_cache_cache_info(lru_cache_object *self, PyObject *unused)
+{
+ return PyObject_CallFunction(self->cache_info_type, "nnOn",
+ self->hits, self->misses, self->maxsize_O,
+ PyDict_Size(self->cache));
+}
+
+static PyObject *
+lru_cache_cache_clear(lru_cache_object *self, PyObject *unused)
+{
+ lru_list_elem *list = lru_cache_unlink_list(self);
+ self->hits = self->misses = 0;
+ self->full = 0;
+ PyDict_Clear(self->cache);
+ lru_cache_clear_list(list);
+ Py_RETURN_NONE;
+}
+
+static int
+lru_cache_tp_traverse(lru_cache_object *self, visitproc visit, void *arg)
+{
+ lru_list_elem *link = self->root.next;
+ while (link != &self->root) {
+ lru_list_elem *next = link->next;
+ Py_VISIT(link);
+ link = next;
+ }
+ Py_VISIT(self->maxsize_O);
+ Py_VISIT(self->func);
+ Py_VISIT(self->cache);
+ Py_VISIT(self->cache_info_type);
+ Py_VISIT(self->dict);
+ return 0;
+}
+
+static int
+lru_cache_tp_clear(lru_cache_object *self)
+{
+ lru_list_elem *list = lru_cache_unlink_list(self);
+ Py_CLEAR(self->maxsize_O);
+ Py_CLEAR(self->func);
+ Py_CLEAR(self->cache);
+ Py_CLEAR(self->cache_info_type);
+ Py_CLEAR(self->dict);
+ lru_cache_clear_list(list);
+ return 0;
+}
+
+
+PyDoc_STRVAR(lru_cache_doc,
+"Create a cached callable that wraps another function.\n\
+\n\
+user_function: the function being cached\n\
+\n\
+maxsize: 0 for no caching\n\
+ None for unlimited cache size\n\
+ n for a bounded cache\n\
+\n\
+typed: False cache f(3) and f(3.0) as identical calls\n\
+ True cache f(3) and f(3.0) as distinct calls\n\
+\n\
+cache_info_type: namedtuple class with the fields:\n\
+ hits misses currsize maxsize\n"
+);
+
+static PyMethodDef lru_cache_methods[] = {
+ {"cache_info", (PyCFunction)lru_cache_cache_info, METH_NOARGS},
+ {"cache_clear", (PyCFunction)lru_cache_cache_clear, METH_NOARGS},
+ {NULL}
+};
+
+static PyGetSetDef lru_cache_getsetlist[] = {
+ {"__dict__", PyObject_GenericGetDict, PyObject_GenericSetDict},
+ {NULL}
+};
+
+static PyTypeObject lru_cache_type = {
+ PyVarObject_HEAD_INIT(NULL, 0)
+ "functools._lru_cache_wrapper", /* tp_name */
+ sizeof(lru_cache_object), /* tp_basicsize */
+ 0, /* tp_itemsize */
+ /* methods */
+ (destructor)lru_cache_dealloc, /* tp_dealloc */
+ 0, /* tp_print */
+ 0, /* tp_getattr */
+ 0, /* tp_setattr */
+ 0, /* tp_reserved */
+ 0, /* tp_repr */
+ 0, /* tp_as_number */
+ 0, /* tp_as_sequence */
+ 0, /* tp_as_mapping */
+ 0, /* tp_hash */
+ (ternaryfunc)lru_cache_call, /* tp_call */
+ 0, /* tp_str */
+ 0, /* tp_getattro */
+ 0, /* tp_setattro */
+ 0, /* tp_as_buffer */
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
+ /* tp_flags */
+ lru_cache_doc, /* tp_doc */
+ (traverseproc)lru_cache_tp_traverse,/* tp_traverse */
+ (inquiry)lru_cache_tp_clear, /* tp_clear */
+ 0, /* tp_richcompare */
+ 0, /* tp_weaklistoffset */
+ 0, /* tp_iter */
+ 0, /* tp_iternext */
+ lru_cache_methods, /* tp_methods */
+ 0, /* tp_members */
+ lru_cache_getsetlist, /* tp_getset */
+ 0, /* tp_base */
+ 0, /* tp_dict */
+ lru_cache_descr_get, /* tp_descr_get */
+ 0, /* tp_descr_set */
+ offsetof(lru_cache_object, dict), /* tp_dictoffset */
+ 0, /* tp_init */
+ 0, /* tp_alloc */
+ lru_cache_new, /* tp_new */
+};
+
/* module level code ********************************************************/
PyDoc_STRVAR(module_doc,
@@ -548,6 +1146,11 @@ static PyMethodDef module_methods[] = {
{NULL, NULL} /* sentinel */
};
+static void
+module_free(void *m)
+{
+ Py_CLEAR(kwd_mark);
+}
static struct PyModuleDef _functoolsmodule = {
PyModuleDef_HEAD_INIT,
@@ -558,7 +1161,7 @@ static struct PyModuleDef _functoolsmodule = {
NULL,
NULL,
NULL,
- NULL
+ module_free,
};
PyMODINIT_FUNC
@@ -569,6 +1172,7 @@ PyInit__functools(void)
char *name;
PyTypeObject *typelist[] = {
&partial_type,
+ &lru_cache_type,
NULL
};
@@ -576,6 +1180,12 @@ PyInit__functools(void)
if (m == NULL)
return NULL;
+ kwd_mark = PyObject_CallObject((PyObject *)&PyBaseObject_Type, NULL);
+ if (!kwd_mark) {
+ Py_DECREF(m);
+ return NULL;
+ }
+
for (i=0 ; typelist[i] != NULL ; i++) {
if (PyType_Ready(typelist[i]) < 0) {
Py_DECREF(m);
diff --git a/Modules/_gdbmmodule.c b/Modules/_gdbmmodule.c
index 229e16e627..f070a14007 100644
--- a/Modules/_gdbmmodule.c
+++ b/Modules/_gdbmmodule.c
@@ -16,17 +16,23 @@
extern const char * gdbm_strerror(gdbm_error);
#endif
+/*[clinic input]
+module _gdbm
+class _gdbm.gdbm "dbmobject *" "&Dbmtype"
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=113927c6170729b2]*/
+
PyDoc_STRVAR(gdbmmodule__doc__,
"This module provides an interface to the GNU DBM (GDBM) library.\n\
\n\
This module is quite similar to the dbm module, but uses GDBM instead to\n\
-provide some additional functionality. Please note that the file formats\n\
-created by GDBM and dbm are incompatible. \n\
+provide some additional functionality. Please note that the file formats\n\
+created by GDBM and dbm are incompatible.\n\
\n\
GDBM objects behave like mappings (dictionaries), except that keys and\n\
-values are always strings. Printing a GDBM object doesn't print the\n\
-keys and values, and the items() and values() methods are not\n\
-supported.");
+values are always immutable bytes-like objects or strings. Printing\n\
+a GDBM object doesn't print the keys and values, and the items() and\n\
+values() methods are not supported.");
typedef struct {
PyObject_HEAD
@@ -36,6 +42,8 @@ typedef struct {
static PyTypeObject Dbmtype;
+#include "clinic/_gdbmmodule.c.h"
+
#define is_dbmobject(v) (Py_TYPE(v) == &Dbmtype)
#define check_dbmobject_open(v) if ((v)->di_dbm == NULL) \
{ PyErr_SetString(DbmError, "GDBM object has already been closed"); \
@@ -48,15 +56,15 @@ static PyObject *DbmError;
PyDoc_STRVAR(gdbm_object__doc__,
"This object represents a GDBM database.\n\
GDBM objects behave like mappings (dictionaries), except that keys and\n\
-values are always strings. Printing a GDBM object doesn't print the\n\
-keys and values, and the items() and values() methods are not\n\
-supported.\n\
+values are always immutable bytes-like objects or strings. Printing\n\
+a GDBM object doesn't print the keys and values, and the items() and\n\
+values() methods are not supported.\n\
\n\
GDBM objects also support additional operations such as firstkey,\n\
nextkey, reorganize, and sync.");
static PyObject *
-newdbmobject(char *file, int flags, int mode)
+newdbmobject(const char *file, int flags, int mode)
{
dbmobject *dp;
@@ -65,7 +73,7 @@ newdbmobject(char *file, int flags, int mode)
return NULL;
dp->di_size = -1;
errno = 0;
- if ((dp->di_dbm = gdbm_open(file, 0, flags, mode, NULL)) == 0) {
+ if ((dp->di_dbm = gdbm_open((char *)file, 0, flags, mode, NULL)) == 0) {
if (errno != 0)
PyErr_SetFromErrno(DbmError);
else
@@ -135,24 +143,27 @@ dbm_subscript(dbmobject *dp, PyObject *key)
return v;
}
-PyDoc_STRVAR(dbm_get__doc__,
-"get(key[, default]) -> value\n\
-Get the value for key, or default if not present; if not given,\n\
-default is None.");
+/*[clinic input]
+_gdbm.gdbm.get
+
+ key: object
+ default: object = None
+ /
+
+Get the value for key, or default if not present.
+[clinic start generated code]*/
static PyObject *
-dbm_get(dbmobject *dp, PyObject *args)
+_gdbm_gdbm_get_impl(dbmobject *self, PyObject *key, PyObject *default_value)
+/*[clinic end generated code: output=19b7c585ad4f554a input=a9c20423f34c17b6]*/
{
- PyObject *v, *res;
- PyObject *def = Py_None;
+ PyObject *res;
- if (!PyArg_UnpackTuple(args, "get", 1, 2, &v, &def))
- return NULL;
- res = dbm_subscript(dp, v);
+ res = dbm_subscript(self, key);
if (res == NULL && PyErr_ExceptionMatches(PyExc_KeyError)) {
PyErr_Clear();
- Py_INCREF(def);
- return def;
+ Py_INCREF(default_value);
+ return default_value;
}
return res;
}
@@ -198,25 +209,29 @@ dbm_ass_sub(dbmobject *dp, PyObject *v, PyObject *w)
return 0;
}
-PyDoc_STRVAR(dbm_setdefault__doc__,
-"setdefault(key[, default]) -> value\n\
-Get value for key, or set it to default and return default if not present;\n\
-if not given, default is None.");
+/*[clinic input]
+_gdbm.gdbm.setdefault
+
+ key: object
+ default: object = None
+ /
+
+Get value for key, or set it to default and return default if not present.
+[clinic start generated code]*/
static PyObject *
-dbm_setdefault(dbmobject *dp, PyObject *args)
+_gdbm_gdbm_setdefault_impl(dbmobject *self, PyObject *key,
+ PyObject *default_value)
+/*[clinic end generated code: output=88760ee520329012 input=0db46b69e9680171]*/
{
- PyObject *v, *res;
- PyObject *def = Py_None;
+ PyObject *res;
- if (!PyArg_UnpackTuple(args, "setdefault", 1, 2, &v, &def))
- return NULL;
- res = dbm_subscript(dp, v);
+ res = dbm_subscript(self, key);
if (res == NULL && PyErr_ExceptionMatches(PyExc_KeyError)) {
PyErr_Clear();
- if (dbm_ass_sub(dp, v, def) < 0)
+ if (dbm_ass_sub(self, key, default_value) < 0)
return NULL;
- return dbm_subscript(dp, v);
+ return dbm_subscript(self, key);
}
return res;
}
@@ -227,43 +242,49 @@ static PyMappingMethods dbm_as_mapping = {
(objobjargproc)dbm_ass_sub, /*mp_ass_subscript*/
};
-PyDoc_STRVAR(dbm_close__doc__,
-"close() -> None\n\
-Closes the database.");
+/*[clinic input]
+_gdbm.gdbm.close
+
+Close the database.
+[clinic start generated code]*/
static PyObject *
-dbm_close(dbmobject *dp, PyObject *unused)
+_gdbm_gdbm_close_impl(dbmobject *self)
+/*[clinic end generated code: output=23512a594598b563 input=0a203447379b45fd]*/
{
- if (dp->di_dbm)
- gdbm_close(dp->di_dbm);
- dp->di_dbm = NULL;
+ if (self->di_dbm)
+ gdbm_close(self->di_dbm);
+ self->di_dbm = NULL;
Py_INCREF(Py_None);
return Py_None;
}
/* XXX Should return a set or a set view */
-PyDoc_STRVAR(dbm_keys__doc__,
-"keys() -> list_of_keys\n\
-Get a list of all keys in the database.");
+/*[clinic input]
+_gdbm.gdbm.keys
+
+Get a list of all keys in the database.
+[clinic start generated code]*/
static PyObject *
-dbm_keys(dbmobject *dp, PyObject *unused)
+_gdbm_gdbm_keys_impl(dbmobject *self)
+/*[clinic end generated code: output=cb4b1776c3645dcc input=1832ee0a3132cfaf]*/
{
PyObject *v, *item;
datum key, nextkey;
int err;
- if (dp == NULL || !is_dbmobject(dp)) {
+ if (self == NULL || !is_dbmobject(self)) {
PyErr_BadInternalCall();
return NULL;
}
- check_dbmobject_open(dp);
+ check_dbmobject_open(self);
v = PyList_New(0);
if (v == NULL)
return NULL;
- key = gdbm_firstkey(dp->di_dbm);
+ key = gdbm_firstkey(self->di_dbm);
while (key.dptr) {
item = PyBytes_FromStringAndSize(key.dptr, key.dsize);
if (item == NULL) {
@@ -278,7 +299,7 @@ dbm_keys(dbmobject *dp, PyObject *unused)
Py_DECREF(v);
return NULL;
}
- nextkey = gdbm_nextkey(dp->di_dbm, key);
+ nextkey = gdbm_nextkey(self->di_dbm, key);
free(key.dptr);
key = nextkey;
}
@@ -329,21 +350,25 @@ static PySequenceMethods dbm_as_sequence = {
0, /* sq_inplace_repeat */
};
-PyDoc_STRVAR(dbm_firstkey__doc__,
-"firstkey() -> key\n\
-It's possible to loop over every key in the database using this method\n\
-and the nextkey() method. The traversal is ordered by GDBM's internal\n\
-hash values, and won't be sorted by the key values. This method\n\
-returns the starting key.");
+/*[clinic input]
+_gdbm.gdbm.firstkey
+
+Return the starting key for the traversal.
+
+It's possible to loop over every key in the database using this method
+and the nextkey() method. The traversal is ordered by GDBM's internal
+hash values, and won't be sorted by the key values.
+[clinic start generated code]*/
static PyObject *
-dbm_firstkey(dbmobject *dp, PyObject *unused)
+_gdbm_gdbm_firstkey_impl(dbmobject *self)
+/*[clinic end generated code: output=9ff85628d84b65d2 input=0dbd6a335d69bba0]*/
{
PyObject *v;
datum key;
- check_dbmobject_open(dp);
- key = gdbm_firstkey(dp->di_dbm);
+ check_dbmobject_open(self);
+ key = gdbm_firstkey(self->di_dbm);
if (key.dptr) {
v = PyBytes_FromStringAndSize(key.dptr, key.dsize);
free(key.dptr);
@@ -355,27 +380,35 @@ dbm_firstkey(dbmobject *dp, PyObject *unused)
}
}
-PyDoc_STRVAR(dbm_nextkey__doc__,
-"nextkey(key) -> next_key\n\
-Returns the key that follows key in the traversal.\n\
-The following code prints every key in the database db, without having\n\
-to create a list in memory that contains them all:\n\
-\n\
- k = db.firstkey()\n\
- while k != None:\n\
- print k\n\
- k = db.nextkey(k)");
+/*[clinic input]
+_gdbm.gdbm.nextkey
+
+ key: str(accept={str, robuffer}, zeroes=True)
+ /
+
+Returns the key that follows key in the traversal.
+
+The following code prints every key in the database db, without having
+to create a list in memory that contains them all:
+
+ k = db.firstkey()
+ while k != None:
+ print(k)
+ k = db.nextkey(k)
+[clinic start generated code]*/
static PyObject *
-dbm_nextkey(dbmobject *dp, PyObject *args)
+_gdbm_gdbm_nextkey_impl(dbmobject *self, const char *key,
+ Py_ssize_clean_t key_length)
+/*[clinic end generated code: output=192ab892de6eb2f6 input=1f1606943614e36f]*/
{
PyObject *v;
- datum key, nextkey;
+ datum dbm_key, nextkey;
- if (!PyArg_ParseTuple(args, "s#:nextkey", &key.dptr, &key.dsize))
- return NULL;
- check_dbmobject_open(dp);
- nextkey = gdbm_nextkey(dp->di_dbm, key);
+ dbm_key.dptr = (char *)key;
+ dbm_key.dsize = key_length;
+ check_dbmobject_open(self);
+ nextkey = gdbm_nextkey(self->di_dbm, dbm_key);
if (nextkey.dptr) {
v = PyBytes_FromStringAndSize(nextkey.dptr, nextkey.dsize);
free(nextkey.dptr);
@@ -387,20 +420,25 @@ dbm_nextkey(dbmobject *dp, PyObject *args)
}
}
-PyDoc_STRVAR(dbm_reorganize__doc__,
-"reorganize() -> None\n\
-If you have carried out a lot of deletions and would like to shrink\n\
-the space used by the GDBM file, this routine will reorganize the\n\
-database. GDBM will not shorten the length of a database file except\n\
-by using this reorganization; otherwise, deleted file space will be\n\
-kept and reused as new (key,value) pairs are added.");
+/*[clinic input]
+_gdbm.gdbm.reorganize
+
+Reorganize the database.
+
+If you have carried out a lot of deletions and would like to shrink
+the space used by the GDBM file, this routine will reorganize the
+database. GDBM will not shorten the length of a database file except
+by using this reorganization; otherwise, deleted file space will be
+kept and reused as new (key,value) pairs are added.
+[clinic start generated code]*/
static PyObject *
-dbm_reorganize(dbmobject *dp, PyObject *unused)
+_gdbm_gdbm_reorganize_impl(dbmobject *self)
+/*[clinic end generated code: output=38d9624df92e961d input=f6bea85bcfd40dd2]*/
{
- check_dbmobject_open(dp);
+ check_dbmobject_open(self);
errno = 0;
- if (gdbm_reorganize(dp->di_dbm) < 0) {
+ if (gdbm_reorganize(self->di_dbm) < 0) {
if (errno != 0)
PyErr_SetFromErrno(DbmError);
else
@@ -411,16 +449,21 @@ dbm_reorganize(dbmobject *dp, PyObject *unused)
return Py_None;
}
-PyDoc_STRVAR(dbm_sync__doc__,
-"sync() -> None\n\
-When the database has been opened in fast mode, this method forces\n\
-any unwritten data to be written to the disk.");
+/*[clinic input]
+_gdbm.gdbm.sync
+
+Flush the database to the disk file.
+
+When the database has been opened in fast mode, this method forces
+any unwritten data to be written to the disk.
+[clinic start generated code]*/
static PyObject *
-dbm_sync(dbmobject *dp, PyObject *unused)
+_gdbm_gdbm_sync_impl(dbmobject *self)
+/*[clinic end generated code: output=488b15f47028f125 input=2a47d2c9e153ab8a]*/
{
- check_dbmobject_open(dp);
- gdbm_sync(dp->di_dbm);
+ check_dbmobject_open(self);
+ gdbm_sync(self->di_dbm);
Py_INCREF(Py_None);
return Py_None;
}
@@ -440,14 +483,15 @@ dbm__exit__(PyObject *self, PyObject *args)
}
static PyMethodDef dbm_methods[] = {
- {"close", (PyCFunction)dbm_close, METH_NOARGS, dbm_close__doc__},
- {"keys", (PyCFunction)dbm_keys, METH_NOARGS, dbm_keys__doc__},
- {"firstkey", (PyCFunction)dbm_firstkey,METH_NOARGS, dbm_firstkey__doc__},
- {"nextkey", (PyCFunction)dbm_nextkey, METH_VARARGS, dbm_nextkey__doc__},
- {"reorganize",(PyCFunction)dbm_reorganize,METH_NOARGS, dbm_reorganize__doc__},
- {"sync", (PyCFunction)dbm_sync, METH_NOARGS, dbm_sync__doc__},
- {"get", (PyCFunction)dbm_get, METH_VARARGS, dbm_get__doc__},
- {"setdefault",(PyCFunction)dbm_setdefault,METH_VARARGS, dbm_setdefault__doc__},
+ _GDBM_GDBM_CLOSE_METHODDEF
+ _GDBM_GDBM_KEYS_METHODDEF
+ _GDBM_GDBM_FIRSTKEY_METHODDEF
+ _GDBM_GDBM_NEXTKEY_METHODDEF
+ _GDBM_GDBM_REORGANIZE_METHODDEF
+ _GDBM_GDBM_SYNC_METHODDEF
+ _GDBM_GDBM_GET_METHODDEF
+ _GDBM_GDBM_GET_METHODDEF
+ _GDBM_GDBM_SETDEFAULT_METHODDEF
{"__enter__", dbm__enter__, METH_NOARGS, NULL},
{"__exit__", dbm__exit__, METH_VARARGS, NULL},
{NULL, NULL} /* sentinel */
@@ -486,40 +530,44 @@ static PyTypeObject Dbmtype = {
/* ----------------------------------------------------------------- */
-PyDoc_STRVAR(dbmopen__doc__,
-"open(filename, [flags, [mode]]) -> dbm_object\n\
-Open a dbm database and return a dbm object. The filename argument is\n\
-the name of the database file.\n\
-\n\
-The optional flags argument can be 'r' (to open an existing database\n\
-for reading only -- default), 'w' (to open an existing database for\n\
-reading and writing), 'c' (which creates the database if it doesn't\n\
-exist), or 'n' (which always creates a new empty database).\n\
-\n\
-Some versions of gdbm support additional flags which must be\n\
-appended to one of the flags described above. The module constant\n\
-'open_flags' is a string of valid additional flags. The 'f' flag\n\
-opens the database in fast mode; altered data will not automatically\n\
-be written to the disk after every change. This results in faster\n\
-writes to the database, but may result in an inconsistent database\n\
-if the program crashes while the database is still open. Use the\n\
-sync() method to force any unwritten data to be written to the disk.\n\
-The 's' flag causes all database operations to be synchronized to\n\
-disk. The 'u' flag disables locking of the database file.\n\
-\n\
-The optional mode argument is the Unix mode of the file, used only\n\
-when the database has to be created. It defaults to octal 0666. ");
+/*[clinic input]
+_gdbm.open as dbmopen
+ filename as name: str
+ flags: str="r"
+ mode: int(py_default="0o666") = 0o666
+ /
+
+Open a dbm database and return a dbm object.
+
+The filename argument is the name of the database file.
+
+The optional flags argument can be 'r' (to open an existing database
+for reading only -- default), 'w' (to open an existing database for
+reading and writing), 'c' (which creates the database if it doesn't
+exist), or 'n' (which always creates a new empty database).
+
+Some versions of gdbm support additional flags which must be
+appended to one of the flags described above. The module constant
+'open_flags' is a string of valid additional flags. The 'f' flag
+opens the database in fast mode; altered data will not automatically
+be written to the disk after every change. This results in faster
+writes to the database, but may result in an inconsistent database
+if the program crashes while the database is still open. Use the
+sync() method to force any unwritten data to be written to the disk.
+The 's' flag causes all database operations to be synchronized to
+disk. The 'u' flag disables locking of the database file.
+
+The optional mode argument is the Unix mode of the file, used only
+when the database has to be created. It defaults to octal 0o666.
+[clinic start generated code]*/
static PyObject *
-dbmopen(PyObject *self, PyObject *args)
+dbmopen_impl(PyModuleDef *module, const char *name, const char *flags,
+ int mode)
+/*[clinic end generated code: output=365b31415c03ccd4 input=55563cd60e51984a]*/
{
- char *name;
- char *flags = "r";
int iflags;
- int mode = 0666;
- if (!PyArg_ParseTuple(args, "s|si:open", &name, &flags, &mode))
- return NULL;
switch (flags[0]) {
case 'r':
iflags = GDBM_READER;
@@ -580,7 +628,7 @@ static char dbmmodule_open_flags[] = "rwcn"
;
static PyMethodDef dbmmodule_methods[] = {
- { "open", (PyCFunction)dbmopen, METH_VARARGS, dbmopen__doc__},
+ DBMOPEN_METHODDEF
{ 0, 0 },
};
diff --git a/Modules/_hashopenssl.c b/Modules/_hashopenssl.c
index d5dde6a8eb..8ccc243108 100644
--- a/Modules/_hashopenssl.c
+++ b/Modules/_hashopenssl.c
@@ -16,6 +16,7 @@
#include "Python.h"
#include "structmember.h"
#include "hashlib.h"
+#include "pystrhex.h"
/* EVP is the preferred interface to hashing in OpenSSL */
@@ -31,10 +32,6 @@
#define HASH_OBJ_CONSTRUCTOR 0
#endif
-/* Minimum OpenSSL version needed to support sha224 and higher. */
-#if defined(OPENSSL_VERSION_NUMBER) && (OPENSSL_VERSION_NUMBER >= 0x00908000)
-#define _OPENSSL_SUPPORTS_SHA2
-#endif
typedef struct {
PyObject_HEAD
@@ -56,12 +53,10 @@ static PyTypeObject EVPtype;
DEFINE_CONSTS_FOR_NEW(md5)
DEFINE_CONSTS_FOR_NEW(sha1)
-#ifdef _OPENSSL_SUPPORTS_SHA2
DEFINE_CONSTS_FOR_NEW(sha224)
DEFINE_CONSTS_FOR_NEW(sha256)
DEFINE_CONSTS_FOR_NEW(sha384)
DEFINE_CONSTS_FOR_NEW(sha512)
-#endif
static EVPobject *
@@ -163,9 +158,7 @@ EVP_hexdigest(EVPobject *self, PyObject *unused)
{
unsigned char digest[EVP_MAX_MD_SIZE];
EVP_MD_CTX temp_ctx;
- PyObject *retval;
- char *hex_digest;
- unsigned int i, j, digest_size;
+ unsigned int digest_size;
/* Get the raw (binary) digest value */
locked_EVP_MD_CTX_copy(&temp_ctx, self);
@@ -174,22 +167,7 @@ EVP_hexdigest(EVPobject *self, PyObject *unused)
EVP_MD_CTX_cleanup(&temp_ctx);
- /* Allocate a new buffer */
- hex_digest = PyMem_Malloc(digest_size * 2 + 1);
- if (!hex_digest)
- return PyErr_NoMemory();
-
- /* Make hex version of the digest */
- for(i=j=0; i<digest_size; i++) {
- unsigned char c;
- c = (digest[i] >> 4) & 0xf;
- hex_digest[j++] = Py_hexdigits[c];
- c = (digest[i] & 0xf);
- hex_digest[j++] = Py_hexdigits[c];
- }
- retval = PyUnicode_FromStringAndSize(hex_digest, digest_size * 2);
- PyMem_Free(hex_digest);
- return retval;
+ return _Py_strhex((const char *)digest, digest_size);
}
PyDoc_STRVAR(EVP_update__doc__,
@@ -798,12 +776,10 @@ generate_hash_name_list(void)
GEN_CONSTRUCTOR(md5)
GEN_CONSTRUCTOR(sha1)
-#ifdef _OPENSSL_SUPPORTS_SHA2
GEN_CONSTRUCTOR(sha224)
GEN_CONSTRUCTOR(sha256)
GEN_CONSTRUCTOR(sha384)
GEN_CONSTRUCTOR(sha512)
-#endif
/* List of functions exported by this module */
@@ -815,12 +791,10 @@ static struct PyMethodDef EVP_functions[] = {
#endif
CONSTRUCTOR_METH_DEF(md5),
CONSTRUCTOR_METH_DEF(sha1),
-#ifdef _OPENSSL_SUPPORTS_SHA2
CONSTRUCTOR_METH_DEF(sha224),
CONSTRUCTOR_METH_DEF(sha256),
CONSTRUCTOR_METH_DEF(sha384),
CONSTRUCTOR_METH_DEF(sha512),
-#endif
{NULL, NULL} /* Sentinel */
};
@@ -877,11 +851,9 @@ PyInit__hashlib(void)
/* these constants are used by the convenience constructors */
INIT_CONSTRUCTOR_CONSTANTS(md5);
INIT_CONSTRUCTOR_CONSTANTS(sha1);
-#ifdef _OPENSSL_SUPPORTS_SHA2
INIT_CONSTRUCTOR_CONSTANTS(sha224);
INIT_CONSTRUCTOR_CONSTANTS(sha256);
INIT_CONSTRUCTOR_CONSTANTS(sha384);
INIT_CONSTRUCTOR_CONSTANTS(sha512);
-#endif
return m;
}
diff --git a/Modules/_heapqmodule.c b/Modules/_heapqmodule.c
index 04845f165a..c343862b8c 100644
--- a/Modules/_heapqmodule.c
+++ b/Modules/_heapqmodule.c
@@ -9,9 +9,9 @@ annotated by François Pinard, and converted to C by Raymond Hettinger.
#include "Python.h"
static int
-_siftdown(PyListObject *heap, Py_ssize_t startpos, Py_ssize_t pos)
+siftdown(PyListObject *heap, Py_ssize_t startpos, Py_ssize_t pos)
{
- PyObject *newitem, *parent;
+ PyObject *newitem, *parent, **arr;
Py_ssize_t parentpos, size;
int cmp;
@@ -24,12 +24,13 @@ _siftdown(PyListObject *heap, Py_ssize_t startpos, Py_ssize_t pos)
/* Follow the path to the root, moving parents down until finding
a place newitem fits. */
- newitem = PyList_GET_ITEM(heap, pos);
+ arr = _PyList_ITEMS(heap);
+ newitem = arr[pos];
while (pos > startpos) {
parentpos = (pos - 1) >> 1;
- parent = PyList_GET_ITEM(heap, parentpos);
+ parent = arr[parentpos];
cmp = PyObject_RichCompareBool(newitem, parent, Py_LT);
- if (cmp == -1)
+ if (cmp < 0)
return -1;
if (size != PyList_GET_SIZE(heap)) {
PyErr_SetString(PyExc_RuntimeError,
@@ -38,20 +39,21 @@ _siftdown(PyListObject *heap, Py_ssize_t startpos, Py_ssize_t pos)
}
if (cmp == 0)
break;
- parent = PyList_GET_ITEM(heap, parentpos);
- newitem = PyList_GET_ITEM(heap, pos);
- PyList_SET_ITEM(heap, parentpos, newitem);
- PyList_SET_ITEM(heap, pos, parent);
+ arr = _PyList_ITEMS(heap);
+ parent = arr[parentpos];
+ newitem = arr[pos];
+ arr[parentpos] = newitem;
+ arr[pos] = parent;
pos = parentpos;
}
return 0;
}
static int
-_siftup(PyListObject *heap, Py_ssize_t pos)
+siftup(PyListObject *heap, Py_ssize_t pos)
{
- Py_ssize_t startpos, endpos, childpos, rightpos, limit;
- PyObject *tmp1, *tmp2;
+ Py_ssize_t startpos, endpos, childpos, limit;
+ PyObject *tmp1, *tmp2, **arr;
int cmp;
assert(PyList_Check(heap));
@@ -63,20 +65,19 @@ _siftup(PyListObject *heap, Py_ssize_t pos)
}
/* Bubble up the smaller child until hitting a leaf. */
+ arr = _PyList_ITEMS(heap);
limit = endpos / 2; /* smallest pos that has no child */
while (pos < limit) {
/* Set childpos to index of smaller child. */
childpos = 2*pos + 1; /* leftmost child position */
- rightpos = childpos + 1;
- if (rightpos < endpos) {
+ if (childpos + 1 < endpos) {
cmp = PyObject_RichCompareBool(
- PyList_GET_ITEM(heap, childpos),
- PyList_GET_ITEM(heap, rightpos),
+ arr[childpos],
+ arr[childpos + 1],
Py_LT);
- if (cmp == -1)
+ if (cmp < 0)
return -1;
- if (cmp == 0)
- childpos = rightpos;
+ childpos += ((unsigned)cmp ^ 1); /* increment when cmp==0 */
if (endpos != PyList_GET_SIZE(heap)) {
PyErr_SetString(PyExc_RuntimeError,
"list changed size during iteration");
@@ -84,14 +85,15 @@ _siftup(PyListObject *heap, Py_ssize_t pos)
}
}
/* Move the smaller child up. */
- tmp1 = PyList_GET_ITEM(heap, childpos);
- tmp2 = PyList_GET_ITEM(heap, pos);
- PyList_SET_ITEM(heap, childpos, tmp2);
- PyList_SET_ITEM(heap, pos, tmp1);
+ arr = _PyList_ITEMS(heap);
+ tmp1 = arr[childpos];
+ tmp2 = arr[pos];
+ arr[childpos] = tmp2;
+ arr[pos] = tmp1;
pos = childpos;
}
/* Bubble it up to its final resting place (by sifting its parents down). */
- return _siftdown(heap, startpos, pos);
+ return siftdown(heap, startpos, pos);
}
static PyObject *
@@ -107,20 +109,19 @@ heappush(PyObject *self, PyObject *args)
return NULL;
}
- if (PyList_Append(heap, item) == -1)
+ if (PyList_Append(heap, item))
return NULL;
- if (_siftdown((PyListObject *)heap, 0, PyList_GET_SIZE(heap)-1) == -1)
+ if (siftdown((PyListObject *)heap, 0, PyList_GET_SIZE(heap)-1))
return NULL;
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
PyDoc_STRVAR(heappush_doc,
"heappush(heap, item) -> None. Push item onto heap, maintaining the heap invariant.");
static PyObject *
-heappop(PyObject *self, PyObject *heap)
+heappop_internal(PyObject *heap, int siftup_func(PyListObject *, Py_ssize_t))
{
PyObject *lastelt, *returnitem;
Py_ssize_t n;
@@ -130,7 +131,7 @@ heappop(PyObject *self, PyObject *heap)
return NULL;
}
- /* # raises appropriate IndexError if heap is empty */
+ /* raises IndexError if the heap is empty */
n = PyList_GET_SIZE(heap);
if (n == 0) {
PyErr_SetString(PyExc_IndexError, "index out of range");
@@ -139,7 +140,7 @@ heappop(PyObject *self, PyObject *heap)
lastelt = PyList_GET_ITEM(heap, n-1) ;
Py_INCREF(lastelt);
- if (PyList_SetSlice(heap, n-1, n, NULL) < 0) {
+ if (PyList_SetSlice(heap, n-1, n, NULL)) {
Py_DECREF(lastelt);
return NULL;
}
@@ -149,18 +150,24 @@ heappop(PyObject *self, PyObject *heap)
return lastelt;
returnitem = PyList_GET_ITEM(heap, 0);
PyList_SET_ITEM(heap, 0, lastelt);
- if (_siftup((PyListObject *)heap, 0) == -1) {
+ if (siftup_func((PyListObject *)heap, 0)) {
Py_DECREF(returnitem);
return NULL;
}
return returnitem;
}
+static PyObject *
+heappop(PyObject *self, PyObject *heap)
+{
+ return heappop_internal(heap, siftup);
+}
+
PyDoc_STRVAR(heappop_doc,
"Pop the smallest item off the heap, maintaining the heap invariant.");
static PyObject *
-heapreplace(PyObject *self, PyObject *args)
+heapreplace_internal(PyObject *args, int siftup_func(PyListObject *, Py_ssize_t))
{
PyObject *heap, *item, *returnitem;
@@ -172,7 +179,7 @@ heapreplace(PyObject *self, PyObject *args)
return NULL;
}
- if (PyList_GET_SIZE(heap) < 1) {
+ if (PyList_GET_SIZE(heap) == 0) {
PyErr_SetString(PyExc_IndexError, "index out of range");
return NULL;
}
@@ -180,13 +187,19 @@ heapreplace(PyObject *self, PyObject *args)
returnitem = PyList_GET_ITEM(heap, 0);
Py_INCREF(item);
PyList_SET_ITEM(heap, 0, item);
- if (_siftup((PyListObject *)heap, 0) == -1) {
+ if (siftup_func((PyListObject *)heap, 0)) {
Py_DECREF(returnitem);
return NULL;
}
return returnitem;
}
+static PyObject *
+heapreplace(PyObject *self, PyObject *args)
+{
+ return heapreplace_internal(args, siftup);
+}
+
PyDoc_STRVAR(heapreplace_doc,
"heapreplace(heap, item) -> value. Pop and return the current smallest value, and add the new item.\n\
\n\
@@ -211,13 +224,13 @@ heappushpop(PyObject *self, PyObject *args)
return NULL;
}
- if (PyList_GET_SIZE(heap) < 1) {
+ if (PyList_GET_SIZE(heap) == 0) {
Py_INCREF(item);
return item;
}
cmp = PyObject_RichCompareBool(PyList_GET_ITEM(heap, 0), item, Py_LT);
- if (cmp == -1)
+ if (cmp < 0)
return NULL;
if (cmp == 0) {
Py_INCREF(item);
@@ -232,7 +245,7 @@ heappushpop(PyObject *self, PyObject *args)
returnitem = PyList_GET_ITEM(heap, 0);
Py_INCREF(item);
PyList_SET_ITEM(heap, 0, item);
- if (_siftup((PyListObject *)heap, 0) == -1) {
+ if (siftup((PyListObject *)heap, 0)) {
Py_DECREF(returnitem);
return NULL;
}
@@ -244,8 +257,73 @@ PyDoc_STRVAR(heappushpop_doc,
from the heap. The combined action runs more efficiently than\n\
heappush() followed by a separate call to heappop().");
+static Py_ssize_t
+keep_top_bit(Py_ssize_t n)
+{
+ int i = 0;
+
+ while (n > 1) {
+ n >>= 1;
+ i++;
+ }
+ return n << i;
+}
+
+/* Cache friendly version of heapify()
+ -----------------------------------
+
+ Build-up a heap in O(n) time by performing siftup() operations
+ on nodes whose children are already heaps.
+
+ The simplest way is to sift the nodes in reverse order from
+ n//2-1 to 0 inclusive. The downside is that children may be
+ out of cache by the time their parent is reached.
+
+ A better way is to not wait for the children to go out of cache.
+ Once a sibling pair of child nodes have been sifted, immediately
+ sift their parent node (while the children are still in cache).
+
+ Both ways build child heaps before their parents, so both ways
+ do the exact same number of comparisons and produce exactly
+ the same heap. The only difference is that the traversal
+ order is optimized for cache efficiency.
+*/
+
static PyObject *
-heapify(PyObject *self, PyObject *heap)
+cache_friendly_heapify(PyObject *heap, int siftup_func(PyListObject *, Py_ssize_t))
+{
+ Py_ssize_t i, j, m, mhalf, leftmost;
+
+ m = PyList_GET_SIZE(heap) >> 1; /* index of first childless node */
+ leftmost = keep_top_bit(m + 1) - 1; /* leftmost node in row of m */
+ mhalf = m >> 1; /* parent of first childless node */
+
+ for (i = leftmost - 1 ; i >= mhalf ; i--) {
+ j = i;
+ while (1) {
+ if (siftup_func((PyListObject *)heap, j))
+ return NULL;
+ if (!(j & 1))
+ break;
+ j >>= 1;
+ }
+ }
+
+ for (i = m - 1 ; i >= leftmost ; i--) {
+ j = i;
+ while (1) {
+ if (siftup_func((PyListObject *)heap, j))
+ return NULL;
+ if (!(j & 1))
+ break;
+ j >>= 1;
+ }
+ }
+ Py_RETURN_NONE;
+}
+
+static PyObject *
+heapify_internal(PyObject *heap, int siftup_func(PyListObject *, Py_ssize_t))
{
Py_ssize_t i, n;
@@ -254,7 +332,14 @@ heapify(PyObject *self, PyObject *heap)
return NULL;
}
+ /* For heaps likely to be bigger than L1 cache, we use the cache
+ friendly heapify function. For smaller heaps that fit entirely
+ in cache, we prefer the simpler algorithm with less branching.
+ */
n = PyList_GET_SIZE(heap);
+ if (n > 2500)
+ return cache_friendly_heapify(heap, siftup_func);
+
/* Transform bottom-up. The largest index there's any point to
looking at is the largest with a child index in-range, so must
have 2*i + 1 < n, or i < (n-1)/2. If n is even = 2*j, this is
@@ -262,142 +347,68 @@ heapify(PyObject *self, PyObject *heap)
n is odd = 2*j+1, this is (2*j+1-1)/2 = j so j-1 is the largest,
and that's again n//2-1.
*/
- for (i=n/2-1 ; i>=0 ; i--)
- if(_siftup((PyListObject *)heap, i) == -1)
+ for (i = n/2 - 1 ; i >= 0 ; i--)
+ if (siftup_func((PyListObject *)heap, i))
return NULL;
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
-PyDoc_STRVAR(heapify_doc,
-"Transform list into a heap, in-place, in O(len(heap)) time.");
-
static PyObject *
-nlargest(PyObject *self, PyObject *args)
+heapify(PyObject *self, PyObject *heap)
{
- PyObject *heap=NULL, *elem, *iterable, *sol, *it, *oldelem;
- Py_ssize_t i, n;
- int cmp;
-
- if (!PyArg_ParseTuple(args, "nO:nlargest", &n, &iterable))
- return NULL;
-
- it = PyObject_GetIter(iterable);
- if (it == NULL)
- return NULL;
-
- heap = PyList_New(0);
- if (heap == NULL)
- goto fail;
-
- for (i=0 ; i<n ; i++ ){
- elem = PyIter_Next(it);
- if (elem == NULL) {
- if (PyErr_Occurred())
- goto fail;
- else
- goto sortit;
- }
- if (PyList_Append(heap, elem) == -1) {
- Py_DECREF(elem);
- goto fail;
- }
- Py_DECREF(elem);
- }
- if (PyList_GET_SIZE(heap) == 0)
- goto sortit;
-
- for (i=n/2-1 ; i>=0 ; i--)
- if(_siftup((PyListObject *)heap, i) == -1)
- goto fail;
-
- sol = PyList_GET_ITEM(heap, 0);
- while (1) {
- elem = PyIter_Next(it);
- if (elem == NULL) {
- if (PyErr_Occurred())
- goto fail;
- else
- goto sortit;
- }
- cmp = PyObject_RichCompareBool(sol, elem, Py_LT);
- if (cmp == -1) {
- Py_DECREF(elem);
- goto fail;
- }
- if (cmp == 0) {
- Py_DECREF(elem);
- continue;
- }
- oldelem = PyList_GET_ITEM(heap, 0);
- PyList_SET_ITEM(heap, 0, elem);
- Py_DECREF(oldelem);
- if (_siftup((PyListObject *)heap, 0) == -1)
- goto fail;
- sol = PyList_GET_ITEM(heap, 0);
- }
-sortit:
- if (PyList_Sort(heap) == -1)
- goto fail;
- if (PyList_Reverse(heap) == -1)
- goto fail;
- Py_DECREF(it);
- return heap;
-
-fail:
- Py_DECREF(it);
- Py_XDECREF(heap);
- return NULL;
+ return heapify_internal(heap, siftup);
}
-PyDoc_STRVAR(nlargest_doc,
-"Find the n largest elements in a dataset.\n\
-\n\
-Equivalent to: sorted(iterable, reverse=True)[:n]\n");
+PyDoc_STRVAR(heapify_doc,
+"Transform list into a heap, in-place, in O(len(heap)) time.");
static int
-_siftdownmax(PyListObject *heap, Py_ssize_t startpos, Py_ssize_t pos)
+siftdown_max(PyListObject *heap, Py_ssize_t startpos, Py_ssize_t pos)
{
- PyObject *newitem, *parent;
+ PyObject *newitem, *parent, **arr;
+ Py_ssize_t parentpos, size;
int cmp;
- Py_ssize_t parentpos;
assert(PyList_Check(heap));
- if (pos >= PyList_GET_SIZE(heap)) {
+ size = PyList_GET_SIZE(heap);
+ if (pos >= size) {
PyErr_SetString(PyExc_IndexError, "index out of range");
return -1;
}
- newitem = PyList_GET_ITEM(heap, pos);
- Py_INCREF(newitem);
/* Follow the path to the root, moving parents down until finding
a place newitem fits. */
- while (pos > startpos){
+ arr = _PyList_ITEMS(heap);
+ newitem = arr[pos];
+ while (pos > startpos) {
parentpos = (pos - 1) >> 1;
- parent = PyList_GET_ITEM(heap, parentpos);
+ parent = arr[parentpos];
cmp = PyObject_RichCompareBool(parent, newitem, Py_LT);
- if (cmp == -1) {
- Py_DECREF(newitem);
+ if (cmp < 0)
+ return -1;
+ if (size != PyList_GET_SIZE(heap)) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "list changed size during iteration");
return -1;
}
if (cmp == 0)
break;
- Py_INCREF(parent);
- Py_DECREF(PyList_GET_ITEM(heap, pos));
- PyList_SET_ITEM(heap, pos, parent);
+ arr = _PyList_ITEMS(heap);
+ parent = arr[parentpos];
+ newitem = arr[pos];
+ arr[parentpos] = newitem;
+ arr[pos] = parent;
pos = parentpos;
}
- Py_DECREF(PyList_GET_ITEM(heap, pos));
- PyList_SET_ITEM(heap, pos, newitem);
return 0;
}
static int
-_siftupmax(PyListObject *heap, Py_ssize_t pos)
+siftup_max(PyListObject *heap, Py_ssize_t pos)
{
- Py_ssize_t startpos, endpos, childpos, rightpos, limit;
+ Py_ssize_t startpos, endpos, childpos, limit;
+ PyObject *tmp1, *tmp2, **arr;
int cmp;
- PyObject *newitem, *tmp;
assert(PyList_Check(heap));
endpos = PyList_GET_SIZE(heap);
@@ -406,125 +417,62 @@ _siftupmax(PyListObject *heap, Py_ssize_t pos)
PyErr_SetString(PyExc_IndexError, "index out of range");
return -1;
}
- newitem = PyList_GET_ITEM(heap, pos);
- Py_INCREF(newitem);
/* Bubble up the smaller child until hitting a leaf. */
+ arr = _PyList_ITEMS(heap);
limit = endpos / 2; /* smallest pos that has no child */
while (pos < limit) {
/* Set childpos to index of smaller child. */
childpos = 2*pos + 1; /* leftmost child position */
- rightpos = childpos + 1;
- if (rightpos < endpos) {
+ if (childpos + 1 < endpos) {
cmp = PyObject_RichCompareBool(
- PyList_GET_ITEM(heap, rightpos),
- PyList_GET_ITEM(heap, childpos),
+ arr[childpos + 1],
+ arr[childpos],
Py_LT);
- if (cmp == -1) {
- Py_DECREF(newitem);
+ if (cmp < 0)
+ return -1;
+ childpos += ((unsigned)cmp ^ 1); /* increment when cmp==0 */
+ if (endpos != PyList_GET_SIZE(heap)) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "list changed size during iteration");
return -1;
}
- if (cmp == 0)
- childpos = rightpos;
}
/* Move the smaller child up. */
- tmp = PyList_GET_ITEM(heap, childpos);
- Py_INCREF(tmp);
- Py_DECREF(PyList_GET_ITEM(heap, pos));
- PyList_SET_ITEM(heap, pos, tmp);
+ arr = _PyList_ITEMS(heap);
+ tmp1 = arr[childpos];
+ tmp2 = arr[pos];
+ arr[childpos] = tmp2;
+ arr[pos] = tmp1;
pos = childpos;
}
-
- /* The leaf at pos is empty now. Put newitem there, and bubble
- it up to its final resting place (by sifting its parents down). */
- Py_DECREF(PyList_GET_ITEM(heap, pos));
- PyList_SET_ITEM(heap, pos, newitem);
- return _siftdownmax(heap, startpos, pos);
+ /* Bubble it up to its final resting place (by sifting its parents down). */
+ return siftdown_max(heap, startpos, pos);
}
static PyObject *
-nsmallest(PyObject *self, PyObject *args)
+heappop_max(PyObject *self, PyObject *heap)
{
- PyObject *heap=NULL, *elem, *iterable, *los, *it, *oldelem;
- Py_ssize_t i, n;
- int cmp;
-
- if (!PyArg_ParseTuple(args, "nO:nsmallest", &n, &iterable))
- return NULL;
+ return heappop_internal(heap, siftup_max);
+}
- it = PyObject_GetIter(iterable);
- if (it == NULL)
- return NULL;
+PyDoc_STRVAR(heappop_max_doc, "Maxheap variant of heappop.");
- heap = PyList_New(0);
- if (heap == NULL)
- goto fail;
-
- for (i=0 ; i<n ; i++ ){
- elem = PyIter_Next(it);
- if (elem == NULL) {
- if (PyErr_Occurred())
- goto fail;
- else
- goto sortit;
- }
- if (PyList_Append(heap, elem) == -1) {
- Py_DECREF(elem);
- goto fail;
- }
- Py_DECREF(elem);
- }
- n = PyList_GET_SIZE(heap);
- if (n == 0)
- goto sortit;
-
- for (i=n/2-1 ; i>=0 ; i--)
- if(_siftupmax((PyListObject *)heap, i) == -1)
- goto fail;
-
- los = PyList_GET_ITEM(heap, 0);
- while (1) {
- elem = PyIter_Next(it);
- if (elem == NULL) {
- if (PyErr_Occurred())
- goto fail;
- else
- goto sortit;
- }
- cmp = PyObject_RichCompareBool(elem, los, Py_LT);
- if (cmp == -1) {
- Py_DECREF(elem);
- goto fail;
- }
- if (cmp == 0) {
- Py_DECREF(elem);
- continue;
- }
-
- oldelem = PyList_GET_ITEM(heap, 0);
- PyList_SET_ITEM(heap, 0, elem);
- Py_DECREF(oldelem);
- if (_siftupmax((PyListObject *)heap, 0) == -1)
- goto fail;
- los = PyList_GET_ITEM(heap, 0);
- }
+static PyObject *
+heapreplace_max(PyObject *self, PyObject *args)
+{
+ return heapreplace_internal(args, siftup_max);
+}
-sortit:
- if (PyList_Sort(heap) == -1)
- goto fail;
- Py_DECREF(it);
- return heap;
+PyDoc_STRVAR(heapreplace_max_doc, "Maxheap variant of heapreplace");
-fail:
- Py_DECREF(it);
- Py_XDECREF(heap);
- return NULL;
+static PyObject *
+heapify_max(PyObject *self, PyObject *heap)
+{
+ return heapify_internal(heap, siftup_max);
}
-PyDoc_STRVAR(nsmallest_doc,
-"Find the n smallest elements in a dataset.\n\
-\n\
-Equivalent to: sorted(iterable)[:n]\n");
+PyDoc_STRVAR(heapify_max_doc, "Maxheap variant of heapify.");
static PyMethodDef heapq_methods[] = {
{"heappush", (PyCFunction)heappush,
@@ -537,10 +485,12 @@ static PyMethodDef heapq_methods[] = {
METH_VARARGS, heapreplace_doc},
{"heapify", (PyCFunction)heapify,
METH_O, heapify_doc},
- {"nlargest", (PyCFunction)nlargest,
- METH_VARARGS, nlargest_doc},
- {"nsmallest", (PyCFunction)nsmallest,
- METH_VARARGS, nsmallest_doc},
+ {"_heappop_max", (PyCFunction)heappop_max,
+ METH_O, heappop_max_doc},
+ {"_heapreplace_max",(PyCFunction)heapreplace_max,
+ METH_VARARGS, heapreplace_max_doc},
+ {"_heapify_max", (PyCFunction)heapify_max,
+ METH_O, heapify_max_doc},
{NULL, NULL} /* sentinel */
};
diff --git a/Modules/_io/_iomodule.c b/Modules/_io/_iomodule.c
index 45c31a550e..528bcd4ac1 100644
--- a/Modules/_io/_iomodule.c
+++ b/Modules/_io/_iomodule.c
@@ -93,140 +93,145 @@ PyDoc_STRVAR(module_doc,
/*
* The main open() function
*/
-PyDoc_STRVAR(open_doc,
-"open(file, mode='r', buffering=-1, encoding=None,\n"
-" errors=None, newline=None, closefd=True, opener=None) -> file object\n"
-"\n"
-"Open file and return a stream. Raise IOError upon failure.\n"
-"\n"
-"file is either a text or byte string giving the name (and the path\n"
-"if the file isn't in the current working directory) of the file to\n"
-"be opened or an integer file descriptor of the file to be\n"
-"wrapped. (If a file descriptor is given, it is closed when the\n"
-"returned I/O object is closed, unless closefd is set to False.)\n"
-"\n"
-"mode is an optional string that specifies the mode in which the file\n"
-"is opened. It defaults to 'r' which means open for reading in text\n"
-"mode. Other common values are 'w' for writing (truncating the file if\n"
-"it already exists), 'x' for creating and writing to a new file, and\n"
-"'a' for appending (which on some Unix systems, means that all writes\n"
-"append to the end of the file regardless of the current seek position).\n"
-"In text mode, if encoding is not specified the encoding used is platform\n"
-"dependent: locale.getpreferredencoding(False) is called to get the\n"
-"current locale encoding. (For reading and writing raw bytes use binary\n"
-"mode and leave encoding unspecified.) The available modes are:\n"
-"\n"
-"========= ===============================================================\n"
-"Character Meaning\n"
-"--------- ---------------------------------------------------------------\n"
-"'r' open for reading (default)\n"
-"'w' open for writing, truncating the file first\n"
-"'x' create a new file and open it for writing\n"
-"'a' open for writing, appending to the end of the file if it exists\n"
-"'b' binary mode\n"
-"'t' text mode (default)\n"
-"'+' open a disk file for updating (reading and writing)\n"
-"'U' universal newline mode (deprecated)\n"
-"========= ===============================================================\n"
-"\n"
-"The default mode is 'rt' (open for reading text). For binary random\n"
-"access, the mode 'w+b' opens and truncates the file to 0 bytes, while\n"
-"'r+b' opens the file without truncation. The 'x' mode implies 'w' and\n"
-"raises an `FileExistsError` if the file already exists.\n"
-"\n"
-"Python distinguishes between files opened in binary and text modes,\n"
-"even when the underlying operating system doesn't. Files opened in\n"
-"binary mode (appending 'b' to the mode argument) return contents as\n"
-"bytes objects without any decoding. In text mode (the default, or when\n"
-"'t' is appended to the mode argument), the contents of the file are\n"
-"returned as strings, the bytes having been first decoded using a\n"
-"platform-dependent encoding or using the specified encoding if given.\n"
-"\n"
-"'U' mode is deprecated and will raise an exception in future versions\n"
-"of Python. It has no effect in Python 3. Use newline to control\n"
-"universal newlines mode.\n"
-"\n"
-"buffering is an optional integer used to set the buffering policy.\n"
-"Pass 0 to switch buffering off (only allowed in binary mode), 1 to select\n"
-"line buffering (only usable in text mode), and an integer > 1 to indicate\n"
-"the size of a fixed-size chunk buffer. When no buffering argument is\n"
-"given, the default buffering policy works as follows:\n"
-"\n"
-"* Binary files are buffered in fixed-size chunks; the size of the buffer\n"
-" is chosen using a heuristic trying to determine the underlying device's\n"
-" \"block size\" and falling back on `io.DEFAULT_BUFFER_SIZE`.\n"
-" On many systems, the buffer will typically be 4096 or 8192 bytes long.\n"
-"\n"
-"* \"Interactive\" text files (files for which isatty() returns True)\n"
-" use line buffering. Other text files use the policy described above\n"
-" for binary files.\n"
-"\n"
-"encoding is the name of the encoding used to decode or encode the\n"
-"file. This should only be used in text mode. The default encoding is\n"
-"platform dependent, but any encoding supported by Python can be\n"
-"passed. See the codecs module for the list of supported encodings.\n"
-"\n"
-"errors is an optional string that specifies how encoding errors are to\n"
-"be handled---this argument should not be used in binary mode. Pass\n"
-"'strict' to raise a ValueError exception if there is an encoding error\n"
-"(the default of None has the same effect), or pass 'ignore' to ignore\n"
-"errors. (Note that ignoring encoding errors can lead to data loss.)\n"
-"See the documentation for codecs.register or run 'help(codecs.Codec)'\n"
-"for a list of the permitted encoding error strings.\n"
-"\n"
-"newline controls how universal newlines works (it only applies to text\n"
-"mode). It can be None, '', '\\n', '\\r', and '\\r\\n'. It works as\n"
-"follows:\n"
-"\n"
-"* On input, if newline is None, universal newlines mode is\n"
-" enabled. Lines in the input can end in '\\n', '\\r', or '\\r\\n', and\n"
-" these are translated into '\\n' before being returned to the\n"
-" caller. If it is '', universal newline mode is enabled, but line\n"
-" endings are returned to the caller untranslated. If it has any of\n"
-" the other legal values, input lines are only terminated by the given\n"
-" string, and the line ending is returned to the caller untranslated.\n"
-"\n"
-"* On output, if newline is None, any '\\n' characters written are\n"
-" translated to the system default line separator, os.linesep. If\n"
-" newline is '' or '\\n', no translation takes place. If newline is any\n"
-" of the other legal values, any '\\n' characters written are translated\n"
-" to the given string.\n"
-"\n"
-"If closefd is False, the underlying file descriptor will be kept open\n"
-"when the file is closed. This does not work when a file name is given\n"
-"and must be True in that case.\n"
-"\n"
-"A custom opener can be used by passing a callable as *opener*. The\n"
-"underlying file descriptor for the file object is then obtained by\n"
-"calling *opener* with (*file*, *flags*). *opener* must return an open\n"
-"file descriptor (passing os.open as *opener* results in functionality\n"
-"similar to passing None).\n"
-"\n"
-"open() returns a file object whose type depends on the mode, and\n"
-"through which the standard file operations such as reading and writing\n"
-"are performed. When open() is used to open a file in a text mode ('w',\n"
-"'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open\n"
-"a file in a binary mode, the returned class varies: in read binary\n"
-"mode, it returns a BufferedReader; in write binary and append binary\n"
-"modes, it returns a BufferedWriter, and in read/write mode, it returns\n"
-"a BufferedRandom.\n"
-"\n"
-"It is also possible to use a string or bytearray as a file for both\n"
-"reading and writing. For strings StringIO can be used like a file\n"
-"opened in a text mode, and for bytes a BytesIO can be used like a file\n"
-"opened in a binary mode.\n"
- );
+/*[clinic input]
+module _io
+
+_io.open
+ file: object
+ mode: str = "r"
+ buffering: int = -1
+ encoding: str(accept={str, NoneType}) = NULL
+ errors: str(accept={str, NoneType}) = NULL
+ newline: str(accept={str, NoneType}) = NULL
+ closefd: int(c_default="1") = True
+ opener: object = None
+
+Open file and return a stream. Raise IOError upon failure.
+
+file is either a text or byte string giving the name (and the path
+if the file isn't in the current working directory) of the file to
+be opened or an integer file descriptor of the file to be
+wrapped. (If a file descriptor is given, it is closed when the
+returned I/O object is closed, unless closefd is set to False.)
+
+mode is an optional string that specifies the mode in which the file
+is opened. It defaults to 'r' which means open for reading in text
+mode. Other common values are 'w' for writing (truncating the file if
+it already exists), 'x' for creating and writing to a new file, and
+'a' for appending (which on some Unix systems, means that all writes
+append to the end of the file regardless of the current seek position).
+In text mode, if encoding is not specified the encoding used is platform
+dependent: locale.getpreferredencoding(False) is called to get the
+current locale encoding. (For reading and writing raw bytes use binary
+mode and leave encoding unspecified.) The available modes are:
+
+========= ===============================================================
+Character Meaning
+--------- ---------------------------------------------------------------
+'r' open for reading (default)
+'w' open for writing, truncating the file first
+'x' create a new file and open it for writing
+'a' open for writing, appending to the end of the file if it exists
+'b' binary mode
+'t' text mode (default)
+'+' open a disk file for updating (reading and writing)
+'U' universal newline mode (deprecated)
+========= ===============================================================
+
+The default mode is 'rt' (open for reading text). For binary random
+access, the mode 'w+b' opens and truncates the file to 0 bytes, while
+'r+b' opens the file without truncation. The 'x' mode implies 'w' and
+raises an `FileExistsError` if the file already exists.
+
+Python distinguishes between files opened in binary and text modes,
+even when the underlying operating system doesn't. Files opened in
+binary mode (appending 'b' to the mode argument) return contents as
+bytes objects without any decoding. In text mode (the default, or when
+'t' is appended to the mode argument), the contents of the file are
+returned as strings, the bytes having been first decoded using a
+platform-dependent encoding or using the specified encoding if given.
+
+'U' mode is deprecated and will raise an exception in future versions
+of Python. It has no effect in Python 3. Use newline to control
+universal newlines mode.
+
+buffering is an optional integer used to set the buffering policy.
+Pass 0 to switch buffering off (only allowed in binary mode), 1 to select
+line buffering (only usable in text mode), and an integer > 1 to indicate
+the size of a fixed-size chunk buffer. When no buffering argument is
+given, the default buffering policy works as follows:
+
+* Binary files are buffered in fixed-size chunks; the size of the buffer
+ is chosen using a heuristic trying to determine the underlying device's
+ "block size" and falling back on `io.DEFAULT_BUFFER_SIZE`.
+ On many systems, the buffer will typically be 4096 or 8192 bytes long.
+
+* "Interactive" text files (files for which isatty() returns True)
+ use line buffering. Other text files use the policy described above
+ for binary files.
+
+encoding is the name of the encoding used to decode or encode the
+file. This should only be used in text mode. The default encoding is
+platform dependent, but any encoding supported by Python can be
+passed. See the codecs module for the list of supported encodings.
+
+errors is an optional string that specifies how encoding errors are to
+be handled---this argument should not be used in binary mode. Pass
+'strict' to raise a ValueError exception if there is an encoding error
+(the default of None has the same effect), or pass 'ignore' to ignore
+errors. (Note that ignoring encoding errors can lead to data loss.)
+See the documentation for codecs.register or run 'help(codecs.Codec)'
+for a list of the permitted encoding error strings.
+
+newline controls how universal newlines works (it only applies to text
+mode). It can be None, '', '\n', '\r', and '\r\n'. It works as
+follows:
+
+* On input, if newline is None, universal newlines mode is
+ enabled. Lines in the input can end in '\n', '\r', or '\r\n', and
+ these are translated into '\n' before being returned to the
+ caller. If it is '', universal newline mode is enabled, but line
+ endings are returned to the caller untranslated. If it has any of
+ the other legal values, input lines are only terminated by the given
+ string, and the line ending is returned to the caller untranslated.
+
+* On output, if newline is None, any '\n' characters written are
+ translated to the system default line separator, os.linesep. If
+ newline is '' or '\n', no translation takes place. If newline is any
+ of the other legal values, any '\n' characters written are translated
+ to the given string.
+
+If closefd is False, the underlying file descriptor will be kept open
+when the file is closed. This does not work when a file name is given
+and must be True in that case.
+
+A custom opener can be used by passing a callable as *opener*. The
+underlying file descriptor for the file object is then obtained by
+calling *opener* with (*file*, *flags*). *opener* must return an open
+file descriptor (passing os.open as *opener* results in functionality
+similar to passing None).
+
+open() returns a file object whose type depends on the mode, and
+through which the standard file operations such as reading and writing
+are performed. When open() is used to open a file in a text mode ('w',
+'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open
+a file in a binary mode, the returned class varies: in read binary
+mode, it returns a BufferedReader; in write binary and append binary
+modes, it returns a BufferedWriter, and in read/write mode, it returns
+a BufferedRandom.
+
+It is also possible to use a string or bytearray as a file for both
+reading and writing. For strings StringIO can be used like a file
+opened in a text mode, and for bytes a BytesIO can be used like a file
+opened in a binary mode.
+[clinic start generated code]*/
static PyObject *
-io_open(PyObject *self, PyObject *args, PyObject *kwds)
+_io_open_impl(PyModuleDef *module, PyObject *file, const char *mode,
+ int buffering, const char *encoding, const char *errors,
+ const char *newline, int closefd, PyObject *opener)
+/*[clinic end generated code: output=7615d0d746eb14d2 input=f4e1ca75223987bc]*/
{
- char *kwlist[] = {"file", "mode", "buffering",
- "encoding", "errors", "newline",
- "closefd", "opener", NULL};
- PyObject *file, *opener = Py_None;
- char *mode = "r";
- int buffering = -1, closefd = 1;
- char *encoding = NULL, *errors = NULL, *newline = NULL;
unsigned i;
int creating = 0, reading = 0, writing = 0, appending = 0, updating = 0;
@@ -237,18 +242,11 @@ io_open(PyObject *self, PyObject *args, PyObject *kwds)
PyObject *raw, *modeobj = NULL, *buffer, *wrapper, *result = NULL;
+ _Py_IDENTIFIER(_blksize);
_Py_IDENTIFIER(isatty);
- _Py_IDENTIFIER(fileno);
_Py_IDENTIFIER(mode);
_Py_IDENTIFIER(close);
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|sizzziO:open", kwlist,
- &file, &mode, &buffering,
- &encoding, &errors, &newline,
- &closefd, &opener)) {
- return NULL;
- }
-
if (!PyUnicode_Check(file) &&
!PyBytes_Check(file) &&
!PyNumber_Check(file)) {
@@ -380,24 +378,14 @@ io_open(PyObject *self, PyObject *args, PyObject *kwds)
line_buffering = 0;
if (buffering < 0) {
- buffering = DEFAULT_BUFFER_SIZE;
-#ifdef HAVE_STRUCT_STAT_ST_BLKSIZE
- {
- struct stat st;
- long fileno;
- PyObject *res = _PyObject_CallMethodId(raw, &PyId_fileno, NULL);
- if (res == NULL)
- goto error;
-
- fileno = PyLong_AsLong(res);
- Py_DECREF(res);
- if (fileno == -1 && PyErr_Occurred())
- goto error;
-
- if (fstat(fileno, &st) >= 0 && st.st_blksize > 1)
- buffering = st.st_blksize;
- }
-#endif
+ PyObject *blksize_obj;
+ blksize_obj = _PyObject_GetAttrId(raw, &PyId__blksize);
+ if (blksize_obj == NULL)
+ goto error;
+ buffering = PyLong_AsLong(blksize_obj);
+ Py_DECREF(blksize_obj);
+ if (buffering == -1 && PyErr_Occurred())
+ goto error;
}
if (buffering < 0) {
PyErr_SetString(PyExc_ValueError,
@@ -621,8 +609,10 @@ iomodule_free(PyObject *mod) {
* Module definition
*/
+#include "clinic/_iomodule.c.h"
+
static PyMethodDef module_methods[] = {
- {"open", (PyCFunction)io_open, METH_VARARGS|METH_KEYWORDS, open_doc},
+ _IO_OPEN_METHODDEF
{NULL, NULL}
};
diff --git a/Modules/_io/_iomodule.h b/Modules/_io/_iomodule.h
index 8927864e8c..9d5205ec30 100644
--- a/Modules/_io/_iomodule.h
+++ b/Modules/_io/_iomodule.h
@@ -69,7 +69,7 @@ extern int _PyIO_trap_eintr(void);
* Offset type for positioning.
*/
-/* Printing a variable of type off_t (with e.g., PyString_FromFormat)
+/* Printing a variable of type off_t (with e.g., PyUnicode_FromFormat)
correctly and without producing compiler warnings is surprisingly painful.
We identify an integer type whose size matches off_t and then: (1) cast the
off_t to that integer type and (2) use the appropriate conversion
diff --git a/Modules/_io/bufferedio.c b/Modules/_io/bufferedio.c
index 365bb85c74..29e000bde4 100644
--- a/Modules/_io/bufferedio.c
+++ b/Modules/_io/bufferedio.c
@@ -13,6 +13,24 @@
#include "pythread.h"
#include "_iomodule.h"
+/*[clinic input]
+module _io
+class _io._BufferedIOBase "PyObject *" "&PyBufferedIOBase_Type"
+class _io._Buffered "buffered *" "&PyBufferedIOBase_Type"
+class _io.BufferedReader "buffered *" "&PyBufferedReader_Type"
+class _io.BufferedWriter "buffered *" "&PyBufferedWriter_Type"
+class _io.BufferedRWPair "rwpair *" "&PyBufferedRWPair_Type"
+class _io.BufferedRandom "buffered *" "&PyBufferedRandom_Type"
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=59460b9c5639984d]*/
+
+/*[python input]
+class io_ssize_t_converter(CConverter):
+ type = 'Py_ssize_t'
+ converter = '_PyIO_ConvertSsize_t'
+[python start generated code]*/
+/*[python end generated code: output=da39a3ee5e6b4b0d input=d0a811d3cbfd1b33]*/
+
_Py_IDENTIFIER(close);
_Py_IDENTIFIER(_dealloc_warn);
_Py_IDENTIFIER(flush);
@@ -24,6 +42,7 @@ _Py_IDENTIFIER(read);
_Py_IDENTIFIER(read1);
_Py_IDENTIFIER(readable);
_Py_IDENTIFIER(readinto);
+_Py_IDENTIFIER(readinto1);
_Py_IDENTIFIER(writable);
_Py_IDENTIFIER(write);
@@ -47,45 +66,63 @@ PyDoc_STRVAR(bufferediobase_doc,
);
static PyObject *
-bufferediobase_readinto(PyObject *self, PyObject *args)
+_bufferediobase_readinto_generic(PyObject *self, Py_buffer *buffer, char readinto1)
{
- Py_buffer buf;
Py_ssize_t len;
PyObject *data;
- if (!PyArg_ParseTuple(args, "w*:readinto", &buf)) {
- return NULL;
- }
-
- data = _PyObject_CallMethodId(self, &PyId_read, "n", buf.len);
+ data = _PyObject_CallMethodId(self,
+ readinto1 ? &PyId_read1 : &PyId_read,
+ "n", buffer->len);
if (data == NULL)
- goto error;
+ return NULL;
if (!PyBytes_Check(data)) {
Py_DECREF(data);
PyErr_SetString(PyExc_TypeError, "read() should return bytes");
- goto error;
+ return NULL;
}
len = Py_SIZE(data);
- if (len > buf.len) {
+ if (len > buffer->len) {
PyErr_Format(PyExc_ValueError,
"read() returned too much data: "
"%zd bytes requested, %zd returned",
- buf.len, len);
+ buffer->len, len);
Py_DECREF(data);
- goto error;
+ return NULL;
}
- memcpy(buf.buf, PyBytes_AS_STRING(data), len);
+ memcpy(buffer->buf, PyBytes_AS_STRING(data), len);
- PyBuffer_Release(&buf);
Py_DECREF(data);
return PyLong_FromSsize_t(len);
+}
- error:
- PyBuffer_Release(&buf);
- return NULL;
+/*[clinic input]
+_io._BufferedIOBase.readinto
+ buffer: Py_buffer(accept={rwbuffer})
+ /
+[clinic start generated code]*/
+
+static PyObject *
+_io__BufferedIOBase_readinto_impl(PyObject *self, Py_buffer *buffer)
+/*[clinic end generated code: output=8c8cda6684af8038 input=00a6b9a38f29830a]*/
+{
+ return _bufferediobase_readinto_generic(self, buffer, 0);
+}
+
+/*[clinic input]
+_io._BufferedIOBase.readinto1
+ buffer: Py_buffer(accept={rwbuffer})
+ /
+[clinic start generated code]*/
+
+static PyObject *
+_io__BufferedIOBase_readinto1_impl(PyObject *self, Py_buffer *buffer)
+/*[clinic end generated code: output=358623e4fd2b69d3 input=ebad75b4aadfb9be]*/
+{
+ return _bufferediobase_readinto_generic(self, buffer, 1);
}
static PyObject *
@@ -97,14 +134,18 @@ bufferediobase_unsupported(const char *message)
return NULL;
}
-PyDoc_STRVAR(bufferediobase_detach_doc,
- "Disconnect this buffer from its underlying raw stream and return it.\n"
- "\n"
- "After the raw stream has been detached, the buffer is in an unusable\n"
- "state.\n");
+/*[clinic input]
+_io._BufferedIOBase.detach
+
+Disconnect this buffer from its underlying raw stream and return it.
+
+After the raw stream has been detached, the buffer is in an unusable
+state.
+[clinic start generated code]*/
static PyObject *
-bufferediobase_detach(PyObject *self)
+_io__BufferedIOBase_detach_impl(PyObject *self)
+/*[clinic end generated code: output=754977c8d10ed88c input=822427fb58fe4169]*/
{
return bufferediobase_unsupported("detach");
}
@@ -162,68 +203,6 @@ bufferediobase_write(PyObject *self, PyObject *args)
}
-static PyMethodDef bufferediobase_methods[] = {
- {"detach", (PyCFunction)bufferediobase_detach, METH_NOARGS, bufferediobase_detach_doc},
- {"read", bufferediobase_read, METH_VARARGS, bufferediobase_read_doc},
- {"read1", bufferediobase_read1, METH_VARARGS, bufferediobase_read1_doc},
- {"readinto", bufferediobase_readinto, METH_VARARGS, NULL},
- {"write", bufferediobase_write, METH_VARARGS, bufferediobase_write_doc},
- {NULL, NULL}
-};
-
-PyTypeObject PyBufferedIOBase_Type = {
- PyVarObject_HEAD_INIT(NULL, 0)
- "_io._BufferedIOBase", /*tp_name*/
- 0, /*tp_basicsize*/
- 0, /*tp_itemsize*/
- 0, /*tp_dealloc*/
- 0, /*tp_print*/
- 0, /*tp_getattr*/
- 0, /*tp_setattr*/
- 0, /*tp_compare */
- 0, /*tp_repr*/
- 0, /*tp_as_number*/
- 0, /*tp_as_sequence*/
- 0, /*tp_as_mapping*/
- 0, /*tp_hash */
- 0, /*tp_call*/
- 0, /*tp_str*/
- 0, /*tp_getattro*/
- 0, /*tp_setattro*/
- 0, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE
- | Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
- bufferediobase_doc, /* tp_doc */
- 0, /* tp_traverse */
- 0, /* tp_clear */
- 0, /* tp_richcompare */
- 0, /* tp_weaklistoffset */
- 0, /* tp_iter */
- 0, /* tp_iternext */
- bufferediobase_methods, /* tp_methods */
- 0, /* tp_members */
- 0, /* tp_getset */
- &PyIOBase_Type, /* tp_base */
- 0, /* tp_dict */
- 0, /* tp_descr_get */
- 0, /* tp_descr_set */
- 0, /* tp_dictoffset */
- 0, /* tp_init */
- 0, /* tp_alloc */
- 0, /* tp_new */
- 0, /* tp_free */
- 0, /* tp_is_gc */
- 0, /* tp_bases */
- 0, /* tp_mro */
- 0, /* tp_cache */
- 0, /* tp_subclasses */
- 0, /* tp_weaklist */
- 0, /* tp_del */
- 0, /* tp_version_tag */
- 0, /* tp_finalize */
-};
-
-
typedef struct {
PyObject_HEAD
@@ -318,7 +297,7 @@ _enter_buffered_busy(buffered *self)
* Note that non-daemon threads have already exited here, so this
* shouldn't affect carefully written threaded I/O code.
*/
- st = PyThread_acquire_lock_timed(self->lock, 1e6, 0);
+ st = PyThread_acquire_lock_timed(self->lock, (PY_TIMEOUT_T)1e6, 0);
}
Py_END_ALLOW_THREADS
if (relax_locking && st != PY_LOCK_ACQUIRED) {
@@ -683,11 +662,7 @@ static void
_set_BlockingIOError(char *msg, Py_ssize_t written)
{
PyObject *err;
-#ifdef Py_DEBUG
- /* in debug mode, PyEval_EvalFrameEx() fails with an assertion error
- if an exception is set when it is called */
PyErr_Clear();
-#endif
err = PyObject_CallFunction(PyExc_BlockingIOError, "isn",
errno, msg, written);
if (err)
@@ -882,19 +857,22 @@ buffered_flush(buffered *self, PyObject *args)
return res;
}
+/*[clinic input]
+_io._Buffered.peek
+ size: Py_ssize_t = 0
+ /
+
+[clinic start generated code]*/
+
static PyObject *
-buffered_peek(buffered *self, PyObject *args)
+_io__Buffered_peek_impl(buffered *self, Py_ssize_t size)
+/*[clinic end generated code: output=ba7a097ca230102b input=37ffb97d06ff4adb]*/
{
- Py_ssize_t n = 0;
PyObject *res = NULL;
CHECK_INITIALIZED(self)
CHECK_CLOSED(self, "peek of closed file")
- if (!PyArg_ParseTuple(args, "|n:peek", &n)) {
- return NULL;
- }
-
if (!ENTER_BUFFERED(self))
return NULL;
@@ -911,16 +889,19 @@ end:
return res;
}
+/*[clinic input]
+_io._Buffered.read
+ size as n: io_ssize_t = -1
+ /
+[clinic start generated code]*/
+
static PyObject *
-buffered_read(buffered *self, PyObject *args)
+_io__Buffered_read_impl(buffered *self, Py_ssize_t n)
+/*[clinic end generated code: output=f41c78bb15b9bbe9 input=c0939ec7f9e9354f]*/
{
- Py_ssize_t n = -1;
PyObject *res;
CHECK_INITIALIZED(self)
- if (!PyArg_ParseTuple(args, "|O&:read", &_PyIO_ConvertSsize_t, &n)) {
- return NULL;
- }
if (n < -1) {
PyErr_SetString(PyExc_ValueError,
"read length must be positive or -1");
@@ -949,17 +930,20 @@ buffered_read(buffered *self, PyObject *args)
return res;
}
+/*[clinic input]
+_io._Buffered.read1
+ size as n: Py_ssize_t
+ /
+[clinic start generated code]*/
+
static PyObject *
-buffered_read1(buffered *self, PyObject *args)
+_io__Buffered_read1_impl(buffered *self, Py_ssize_t n)
+/*[clinic end generated code: output=bcc4fb4e54d103a3 input=8d2869c18b983184]*/
{
- Py_ssize_t n, have, r;
+ Py_ssize_t have, r;
PyObject *res = NULL;
CHECK_INITIALIZED(self)
- if (!PyArg_ParseTuple(args, "n:read1", &n)) {
- return NULL;
- }
-
if (n < 0) {
PyErr_SetString(PyExc_ValueError,
"read length must be positive");
@@ -1003,32 +987,27 @@ buffered_read1(buffered *self, PyObject *args)
}
static PyObject *
-buffered_readinto(buffered *self, PyObject *args)
+_buffered_readinto_generic(buffered *self, Py_buffer *buffer, char readinto1)
{
- Py_buffer buf;
Py_ssize_t n, written = 0, remaining;
PyObject *res = NULL;
CHECK_INITIALIZED(self)
- if (!PyArg_ParseTuple(args, "w*:readinto", &buf))
- return NULL;
-
n = Py_SAFE_DOWNCAST(READAHEAD(self), Py_off_t, Py_ssize_t);
if (n > 0) {
- if (n >= buf.len) {
- memcpy(buf.buf, self->buffer + self->pos, buf.len);
- self->pos += buf.len;
- res = PyLong_FromSsize_t(buf.len);
- goto end_unlocked;
+ if (n >= buffer->len) {
+ memcpy(buffer->buf, self->buffer + self->pos, buffer->len);
+ self->pos += buffer->len;
+ return PyLong_FromSsize_t(buffer->len);
}
- memcpy(buf.buf, self->buffer + self->pos, n);
+ memcpy(buffer->buf, self->buffer + self->pos, n);
self->pos += n;
written = n;
}
if (!ENTER_BUFFERED(self))
- goto end_unlocked;
+ return NULL;
if (self->writable) {
res = buffered_flush_and_rewind_unlocked(self);
@@ -1040,26 +1019,32 @@ buffered_readinto(buffered *self, PyObject *args)
_bufferedreader_reset_buf(self);
self->pos = 0;
- for (remaining = buf.len - written;
+ for (remaining = buffer->len - written;
remaining > 0;
written += n, remaining -= n) {
/* If remaining bytes is larger than internal buffer size, copy
* directly into caller's buffer. */
if (remaining > self->buffer_size) {
- n = _bufferedreader_raw_read(self, (char *) buf.buf + written,
+ n = _bufferedreader_raw_read(self, (char *) buffer->buf + written,
remaining);
}
- else {
+
+ /* In readinto1 mode, we do not want to fill the internal
+ buffer if we already have some data to return */
+ else if (!(readinto1 && written)) {
n = _bufferedreader_fill_buffer(self);
if (n > 0) {
if (n > remaining)
n = remaining;
- memcpy((char *) buf.buf + written,
+ memcpy((char *) buffer->buf + written,
self->buffer + self->pos, n);
self->pos += n;
continue; /* short circuit */
}
}
+ else
+ n = 0;
+
if (n == 0 || (n == -2 && written > 0))
break;
if (n < 0) {
@@ -1069,16 +1054,47 @@ buffered_readinto(buffered *self, PyObject *args)
}
goto end;
}
+
+ /* At most one read in readinto1 mode */
+ if (readinto1) {
+ written += n;
+ break;
+ }
}
res = PyLong_FromSsize_t(written);
end:
LEAVE_BUFFERED(self);
-end_unlocked:
- PyBuffer_Release(&buf);
return res;
}
+/*[clinic input]
+_io._Buffered.readinto
+ buffer: Py_buffer(accept={rwbuffer})
+ /
+[clinic start generated code]*/
+
+static PyObject *
+_io__Buffered_readinto_impl(buffered *self, Py_buffer *buffer)
+/*[clinic end generated code: output=bcb376580b1d8170 input=ed6b98b7a20a3008]*/
+{
+ return _buffered_readinto_generic(self, buffer, 0);
+}
+
+/*[clinic input]
+_io._Buffered.readinto1
+ buffer: Py_buffer(accept={rwbuffer})
+ /
+[clinic start generated code]*/
+
+static PyObject *
+_io__Buffered_readinto1_impl(buffered *self, Py_buffer *buffer)
+/*[clinic end generated code: output=6e5c6ac5868205d6 input=4455c5d55fdf1687]*/
+{
+ return _buffered_readinto_generic(self, buffer, 1);
+}
+
+
static PyObject *
_buffered_readline(buffered *self, Py_ssize_t limit)
{
@@ -1190,15 +1206,18 @@ end_unlocked:
return res;
}
+/*[clinic input]
+_io._Buffered.readline
+ size: io_ssize_t = -1
+ /
+[clinic start generated code]*/
+
static PyObject *
-buffered_readline(buffered *self, PyObject *args)
+_io__Buffered_readline_impl(buffered *self, Py_ssize_t size)
+/*[clinic end generated code: output=24dd2aa6e33be83c input=ff1e0df821cb4e5c]*/
{
- Py_ssize_t limit = -1;
-
CHECK_INITIALIZED(self)
- if (!PyArg_ParseTuple(args, "|O&:readline", &_PyIO_ConvertSsize_t, &limit))
- return NULL;
- return _buffered_readline(self, limit);
+ return _buffered_readline(self, size);
}
@@ -1216,17 +1235,21 @@ buffered_tell(buffered *self, PyObject *args)
return PyLong_FromOff_t(pos);
}
+/*[clinic input]
+_io._Buffered.seek
+ target as targetobj: object
+ whence: int = 0
+ /
+[clinic start generated code]*/
+
static PyObject *
-buffered_seek(buffered *self, PyObject *args)
+_io__Buffered_seek_impl(buffered *self, PyObject *targetobj, int whence)
+/*[clinic end generated code: output=7ae0e8dc46efdefb input=a9c4920bfcba6163]*/
{
Py_off_t target, n;
- int whence = 0;
- PyObject *targetobj, *res = NULL;
+ PyObject *res = NULL;
CHECK_INITIALIZED(self)
- if (!PyArg_ParseTuple(args, "O|i:seek", &targetobj, &whence)) {
- return NULL;
- }
/* Do some error checking instead of trusting OS 'seek()'
** error detection, just in case.
@@ -1308,17 +1331,19 @@ end:
return res;
}
+/*[clinic input]
+_io._Buffered.truncate
+ pos: object = None
+ /
+[clinic start generated code]*/
+
static PyObject *
-buffered_truncate(buffered *self, PyObject *args)
+_io__Buffered_truncate_impl(buffered *self, PyObject *pos)
+/*[clinic end generated code: output=667ca03c60c270de input=8a1be34d57cca2d3]*/
{
- PyObject *pos = Py_None;
PyObject *res = NULL;
CHECK_INITIALIZED(self)
- if (!PyArg_ParseTuple(args, "|O:truncate", &pos)) {
- return NULL;
- }
-
if (!ENTER_BUFFERED(self))
return NULL;
@@ -1403,29 +1428,27 @@ buffered_repr(buffered *self)
* class BufferedReader
*/
-PyDoc_STRVAR(bufferedreader_doc,
- "Create a new buffered reader using the given readable raw IO object.");
-
static void _bufferedreader_reset_buf(buffered *self)
{
self->read_end = -1;
}
+/*[clinic input]
+_io.BufferedReader.__init__
+ raw: object
+ buffer_size: Py_ssize_t(c_default="DEFAULT_BUFFER_SIZE") = DEFAULT_BUFFER_SIZE
+
+Create a new buffered reader using the given readable raw IO object.
+[clinic start generated code]*/
+
static int
-bufferedreader_init(buffered *self, PyObject *args, PyObject *kwds)
+_io_BufferedReader___init___impl(buffered *self, PyObject *raw,
+ Py_ssize_t buffer_size)
+/*[clinic end generated code: output=cddcfefa0ed294c4 input=fb887e06f11b4e48]*/
{
- char *kwlist[] = {"raw", "buffer_size", NULL};
- Py_ssize_t buffer_size = DEFAULT_BUFFER_SIZE;
- PyObject *raw;
-
self->ok = 0;
self->detached = 0;
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|n:BufferedReader", kwlist,
- &raw, &buffer_size)) {
- return -1;
- }
-
if (_PyIOBase_check_readable(raw, Py_True) == NULL)
return -1;
@@ -1746,111 +1769,12 @@ _bufferedreader_peek_unlocked(buffered *self)
self->pos = 0;
return PyBytes_FromStringAndSize(self->buffer, r);
}
-
-static PyMethodDef bufferedreader_methods[] = {
- /* BufferedIOMixin methods */
- {"detach", (PyCFunction)buffered_detach, METH_NOARGS},
- {"flush", (PyCFunction)buffered_simple_flush, METH_NOARGS},
- {"close", (PyCFunction)buffered_close, METH_NOARGS},
- {"seekable", (PyCFunction)buffered_seekable, METH_NOARGS},
- {"readable", (PyCFunction)buffered_readable, METH_NOARGS},
- {"writable", (PyCFunction)buffered_writable, METH_NOARGS},
- {"fileno", (PyCFunction)buffered_fileno, METH_NOARGS},
- {"isatty", (PyCFunction)buffered_isatty, METH_NOARGS},
- {"_dealloc_warn", (PyCFunction)buffered_dealloc_warn, METH_O},
- {"__getstate__", (PyCFunction)buffered_getstate, METH_NOARGS},
-
- {"read", (PyCFunction)buffered_read, METH_VARARGS},
- {"peek", (PyCFunction)buffered_peek, METH_VARARGS},
- {"read1", (PyCFunction)buffered_read1, METH_VARARGS},
- {"readinto", (PyCFunction)buffered_readinto, METH_VARARGS},
- {"readline", (PyCFunction)buffered_readline, METH_VARARGS},
- {"seek", (PyCFunction)buffered_seek, METH_VARARGS},
- {"tell", (PyCFunction)buffered_tell, METH_NOARGS},
- {"truncate", (PyCFunction)buffered_truncate, METH_VARARGS},
- {"__sizeof__", (PyCFunction)buffered_sizeof, METH_NOARGS},
- {NULL, NULL}
-};
-
-static PyMemberDef bufferedreader_members[] = {
- {"raw", T_OBJECT, offsetof(buffered, raw), READONLY},
- {"_finalizing", T_BOOL, offsetof(buffered, finalizing), 0},
- {NULL}
-};
-
-static PyGetSetDef bufferedreader_getset[] = {
- {"closed", (getter)buffered_closed_get, NULL, NULL},
- {"name", (getter)buffered_name_get, NULL, NULL},
- {"mode", (getter)buffered_mode_get, NULL, NULL},
- {NULL}
-};
-
-
-PyTypeObject PyBufferedReader_Type = {
- PyVarObject_HEAD_INIT(NULL, 0)
- "_io.BufferedReader", /*tp_name*/
- sizeof(buffered), /*tp_basicsize*/
- 0, /*tp_itemsize*/
- (destructor)buffered_dealloc, /*tp_dealloc*/
- 0, /*tp_print*/
- 0, /*tp_getattr*/
- 0, /*tp_setattr*/
- 0, /*tp_compare */
- (reprfunc)buffered_repr, /*tp_repr*/
- 0, /*tp_as_number*/
- 0, /*tp_as_sequence*/
- 0, /*tp_as_mapping*/
- 0, /*tp_hash */
- 0, /*tp_call*/
- 0, /*tp_str*/
- 0, /*tp_getattro*/
- 0, /*tp_setattro*/
- 0, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE
- | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
- bufferedreader_doc, /* tp_doc */
- (traverseproc)buffered_traverse, /* tp_traverse */
- (inquiry)buffered_clear, /* tp_clear */
- 0, /* tp_richcompare */
- offsetof(buffered, weakreflist), /*tp_weaklistoffset*/
- 0, /* tp_iter */
- (iternextfunc)buffered_iternext, /* tp_iternext */
- bufferedreader_methods, /* tp_methods */
- bufferedreader_members, /* tp_members */
- bufferedreader_getset, /* tp_getset */
- 0, /* tp_base */
- 0, /* tp_dict */
- 0, /* tp_descr_get */
- 0, /* tp_descr_set */
- offsetof(buffered, dict), /* tp_dictoffset */
- (initproc)bufferedreader_init, /* tp_init */
- 0, /* tp_alloc */
- PyType_GenericNew, /* tp_new */
- 0, /* tp_free */
- 0, /* tp_is_gc */
- 0, /* tp_bases */
- 0, /* tp_mro */
- 0, /* tp_cache */
- 0, /* tp_subclasses */
- 0, /* tp_weaklist */
- 0, /* tp_del */
- 0, /* tp_version_tag */
- 0, /* tp_finalize */
-};
/*
* class BufferedWriter
*/
-PyDoc_STRVAR(bufferedwriter_doc,
- "A buffer for a writeable sequential RawIO object.\n"
- "\n"
- "The constructor creates a BufferedWriter for the given writeable raw\n"
- "stream. If the buffer_size is not given, it defaults to\n"
- "DEFAULT_BUFFER_SIZE.\n"
- );
-
static void
_bufferedwriter_reset_buf(buffered *self)
{
@@ -1858,21 +1782,26 @@ _bufferedwriter_reset_buf(buffered *self)
self->write_end = -1;
}
+/*[clinic input]
+_io.BufferedWriter.__init__
+ raw: object
+ buffer_size: Py_ssize_t(c_default="DEFAULT_BUFFER_SIZE") = DEFAULT_BUFFER_SIZE
+
+A buffer for a writeable sequential RawIO object.
+
+The constructor creates a BufferedWriter for the given writeable raw
+stream. If the buffer_size is not given, it defaults to
+DEFAULT_BUFFER_SIZE.
+[clinic start generated code]*/
+
static int
-bufferedwriter_init(buffered *self, PyObject *args, PyObject *kwds)
+_io_BufferedWriter___init___impl(buffered *self, PyObject *raw,
+ Py_ssize_t buffer_size)
+/*[clinic end generated code: output=c8942a020c0dee64 input=914be9b95e16007b]*/
{
- char *kwlist[] = {"raw", "buffer_size", NULL};
- Py_ssize_t buffer_size = DEFAULT_BUFFER_SIZE;
- PyObject *raw;
-
self->ok = 0;
self->detached = 0;
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|n:BufferedWriter", kwlist,
- &raw, &buffer_size)) {
- return -1;
- }
-
if (_PyIOBase_check_writable(raw, Py_True) == NULL)
return -1;
@@ -1993,29 +1922,28 @@ error:
return NULL;
}
+/*[clinic input]
+_io.BufferedWriter.write
+ buffer: Py_buffer
+ /
+[clinic start generated code]*/
+
static PyObject *
-bufferedwriter_write(buffered *self, PyObject *args)
+_io_BufferedWriter_write_impl(buffered *self, Py_buffer *buffer)
+/*[clinic end generated code: output=7f8d1365759bfc6b input=dd87dd85fc7f8850]*/
{
PyObject *res = NULL;
- Py_buffer buf;
Py_ssize_t written, avail, remaining;
Py_off_t offset;
CHECK_INITIALIZED(self)
- if (!PyArg_ParseTuple(args, "y*:write", &buf)) {
- return NULL;
- }
-
if (IS_CLOSED(self)) {
PyErr_SetString(PyExc_ValueError, "write to closed file");
- PyBuffer_Release(&buf);
return NULL;
}
- if (!ENTER_BUFFERED(self)) {
- PyBuffer_Release(&buf);
+ if (!ENTER_BUFFERED(self))
return NULL;
- }
/* Fast path: the data to write can be fully buffered. */
if (!VALID_READ_BUFFER(self) && !VALID_WRITE_BUFFER(self)) {
@@ -2023,15 +1951,15 @@ bufferedwriter_write(buffered *self, PyObject *args)
self->raw_pos = 0;
}
avail = Py_SAFE_DOWNCAST(self->buffer_size - self->pos, Py_off_t, Py_ssize_t);
- if (buf.len <= avail) {
- memcpy(self->buffer + self->pos, buf.buf, buf.len);
+ if (buffer->len <= avail) {
+ memcpy(self->buffer + self->pos, buffer->buf, buffer->len);
if (!VALID_WRITE_BUFFER(self) || self->write_pos > self->pos) {
self->write_pos = self->pos;
}
- ADJUST_POSITION(self, self->pos + buf.len);
+ ADJUST_POSITION(self, self->pos + buffer->len);
if (self->pos > self->write_end)
self->write_end = self->pos;
- written = buf.len;
+ written = buffer->len;
goto end;
}
@@ -2054,17 +1982,17 @@ bufferedwriter_write(buffered *self, PyObject *args)
self->write_pos = 0;
avail = Py_SAFE_DOWNCAST(self->buffer_size - self->write_end,
Py_off_t, Py_ssize_t);
- if (buf.len <= avail) {
+ if (buffer->len <= avail) {
/* Everything can be buffered */
PyErr_Clear();
- memcpy(self->buffer + self->write_end, buf.buf, buf.len);
- self->write_end += buf.len;
- self->pos += buf.len;
- written = buf.len;
+ memcpy(self->buffer + self->write_end, buffer->buf, buffer->len);
+ self->write_end += buffer->len;
+ self->pos += buffer->len;
+ written = buffer->len;
goto end;
}
/* Buffer as much as possible. */
- memcpy(self->buffer + self->write_end, buf.buf, avail);
+ memcpy(self->buffer + self->write_end, buffer->buf, avail);
self->write_end += avail;
self->pos += avail;
/* XXX Modifying the existing exception e using the pointer w
@@ -2090,11 +2018,11 @@ bufferedwriter_write(buffered *self, PyObject *args)
}
/* Then write buf itself. At this point the buffer has been emptied. */
- remaining = buf.len;
+ remaining = buffer->len;
written = 0;
while (remaining > self->buffer_size) {
Py_ssize_t n = _bufferedwriter_raw_write(
- self, (char *) buf.buf + written, buf.len - written);
+ self, (char *) buffer->buf + written, buffer->len - written);
if (n == -1) {
goto error;
} else if (n == -2) {
@@ -2102,7 +2030,7 @@ bufferedwriter_write(buffered *self, PyObject *args)
if (remaining > self->buffer_size) {
/* Can't buffer everything, still buffer as much as possible */
memcpy(self->buffer,
- (char *) buf.buf + written, self->buffer_size);
+ (char *) buffer->buf + written, self->buffer_size);
self->raw_pos = 0;
ADJUST_POSITION(self, self->buffer_size);
self->write_end = self->buffer_size;
@@ -2125,7 +2053,7 @@ bufferedwriter_write(buffered *self, PyObject *args)
if (self->readable)
_bufferedreader_reset_buf(self);
if (remaining > 0) {
- memcpy(self->buffer, (char *) buf.buf + written, remaining);
+ memcpy(self->buffer, (char *) buffer->buf + written, remaining);
written += remaining;
}
self->write_pos = 0;
@@ -2139,96 +2067,8 @@ end:
error:
LEAVE_BUFFERED(self)
- PyBuffer_Release(&buf);
return res;
}
-
-static PyMethodDef bufferedwriter_methods[] = {
- /* BufferedIOMixin methods */
- {"close", (PyCFunction)buffered_close, METH_NOARGS},
- {"detach", (PyCFunction)buffered_detach, METH_NOARGS},
- {"seekable", (PyCFunction)buffered_seekable, METH_NOARGS},
- {"readable", (PyCFunction)buffered_readable, METH_NOARGS},
- {"writable", (PyCFunction)buffered_writable, METH_NOARGS},
- {"fileno", (PyCFunction)buffered_fileno, METH_NOARGS},
- {"isatty", (PyCFunction)buffered_isatty, METH_NOARGS},
- {"_dealloc_warn", (PyCFunction)buffered_dealloc_warn, METH_O},
- {"__getstate__", (PyCFunction)buffered_getstate, METH_NOARGS},
-
- {"write", (PyCFunction)bufferedwriter_write, METH_VARARGS},
- {"truncate", (PyCFunction)buffered_truncate, METH_VARARGS},
- {"flush", (PyCFunction)buffered_flush, METH_NOARGS},
- {"seek", (PyCFunction)buffered_seek, METH_VARARGS},
- {"tell", (PyCFunction)buffered_tell, METH_NOARGS},
- {"__sizeof__", (PyCFunction)buffered_sizeof, METH_NOARGS},
- {NULL, NULL}
-};
-
-static PyMemberDef bufferedwriter_members[] = {
- {"raw", T_OBJECT, offsetof(buffered, raw), READONLY},
- {"_finalizing", T_BOOL, offsetof(buffered, finalizing), 0},
- {NULL}
-};
-
-static PyGetSetDef bufferedwriter_getset[] = {
- {"closed", (getter)buffered_closed_get, NULL, NULL},
- {"name", (getter)buffered_name_get, NULL, NULL},
- {"mode", (getter)buffered_mode_get, NULL, NULL},
- {NULL}
-};
-
-
-PyTypeObject PyBufferedWriter_Type = {
- PyVarObject_HEAD_INIT(NULL, 0)
- "_io.BufferedWriter", /*tp_name*/
- sizeof(buffered), /*tp_basicsize*/
- 0, /*tp_itemsize*/
- (destructor)buffered_dealloc, /*tp_dealloc*/
- 0, /*tp_print*/
- 0, /*tp_getattr*/
- 0, /*tp_setattr*/
- 0, /*tp_compare */
- (reprfunc)buffered_repr, /*tp_repr*/
- 0, /*tp_as_number*/
- 0, /*tp_as_sequence*/
- 0, /*tp_as_mapping*/
- 0, /*tp_hash */
- 0, /*tp_call*/
- 0, /*tp_str*/
- 0, /*tp_getattro*/
- 0, /*tp_setattro*/
- 0, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE
- | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
- bufferedwriter_doc, /* tp_doc */
- (traverseproc)buffered_traverse, /* tp_traverse */
- (inquiry)buffered_clear, /* tp_clear */
- 0, /* tp_richcompare */
- offsetof(buffered, weakreflist), /*tp_weaklistoffset*/
- 0, /* tp_iter */
- 0, /* tp_iternext */
- bufferedwriter_methods, /* tp_methods */
- bufferedwriter_members, /* tp_members */
- bufferedwriter_getset, /* tp_getset */
- 0, /* tp_base */
- 0, /* tp_dict */
- 0, /* tp_descr_get */
- 0, /* tp_descr_set */
- offsetof(buffered, dict), /* tp_dictoffset */
- (initproc)bufferedwriter_init, /* tp_init */
- 0, /* tp_alloc */
- PyType_GenericNew, /* tp_new */
- 0, /* tp_free */
- 0, /* tp_is_gc */
- 0, /* tp_bases */
- 0, /* tp_mro */
- 0, /* tp_cache */
- 0, /* tp_subclasses */
- 0, /* tp_weaklist */
- 0, /* tp_del */
- 0, /* tp_version_tag */
- 0, /* tp_finalize */
-};
@@ -2236,18 +2076,6 @@ PyTypeObject PyBufferedWriter_Type = {
* BufferedRWPair
*/
-PyDoc_STRVAR(bufferedrwpair_doc,
- "A buffered reader and writer object together.\n"
- "\n"
- "A buffered reader object and buffered writer object put together to\n"
- "form a sequential IO object that can read and write. This is typically\n"
- "used with a socket or two-way pipe.\n"
- "\n"
- "reader and writer are RawIOBase objects that are readable and\n"
- "writeable respectively. If the buffer_size is omitted it defaults to\n"
- "DEFAULT_BUFFER_SIZE.\n"
- );
-
/* XXX The usefulness of this (compared to having two separate IO objects) is
* questionable.
*/
@@ -2260,17 +2088,29 @@ typedef struct {
PyObject *weakreflist;
} rwpair;
-static int
-bufferedrwpair_init(rwpair *self, PyObject *args, PyObject *kwds)
-{
- PyObject *reader, *writer;
- Py_ssize_t buffer_size = DEFAULT_BUFFER_SIZE;
+/*[clinic input]
+_io.BufferedRWPair.__init__
+ reader: object
+ writer: object
+ buffer_size: Py_ssize_t(c_default="DEFAULT_BUFFER_SIZE") = DEFAULT_BUFFER_SIZE
+ /
- if (!PyArg_ParseTuple(args, "OO|n:BufferedRWPair", &reader, &writer,
- &buffer_size)) {
- return -1;
- }
+A buffered reader and writer object together.
+
+A buffered reader object and buffered writer object put together to
+form a sequential IO object that can read and write. This is typically
+used with a socket or two-way pipe.
+reader and writer are RawIOBase objects that are readable and
+writeable respectively. If the buffer_size is omitted it defaults to
+DEFAULT_BUFFER_SIZE.
+[clinic start generated code]*/
+
+static int
+_io_BufferedRWPair___init___impl(rwpair *self, PyObject *reader,
+ PyObject *writer, Py_ssize_t buffer_size)
+/*[clinic end generated code: output=327e73d1aee8f984 input=620d42d71f33a031]*/
+{
if (_PyIOBase_check_readable(reader, Py_True) == NULL)
return -1;
if (_PyIOBase_check_writable(writer, Py_True) == NULL)
@@ -2365,6 +2205,12 @@ bufferedrwpair_readinto(rwpair *self, PyObject *args)
}
static PyObject *
+bufferedrwpair_readinto1(rwpair *self, PyObject *args)
+{
+ return _forward_call(self->reader, &PyId_readinto1, args);
+}
+
+static PyObject *
bufferedrwpair_write(rwpair *self, PyObject *args)
{
return _forward_call(self->writer, &PyId_write, args);
@@ -2429,12 +2275,313 @@ bufferedrwpair_closed_get(rwpair *self, void *context)
}
return PyObject_GetAttr((PyObject *) self->writer, _PyIO_str_closed);
}
+
+
+
+/*
+ * BufferedRandom
+ */
+
+/*[clinic input]
+_io.BufferedRandom.__init__
+ raw: object
+ buffer_size: Py_ssize_t(c_default="DEFAULT_BUFFER_SIZE") = DEFAULT_BUFFER_SIZE
+
+A buffered interface to random access streams.
+
+The constructor creates a reader and writer for a seekable stream,
+raw, given in the first argument. If the buffer_size is omitted it
+defaults to DEFAULT_BUFFER_SIZE.
+[clinic start generated code]*/
+
+static int
+_io_BufferedRandom___init___impl(buffered *self, PyObject *raw,
+ Py_ssize_t buffer_size)
+/*[clinic end generated code: output=d3d64eb0f64e64a3 input=a4e818fb86d0e50c]*/
+{
+ self->ok = 0;
+ self->detached = 0;
+
+ if (_PyIOBase_check_seekable(raw, Py_True) == NULL)
+ return -1;
+ if (_PyIOBase_check_readable(raw, Py_True) == NULL)
+ return -1;
+ if (_PyIOBase_check_writable(raw, Py_True) == NULL)
+ return -1;
+
+ Py_CLEAR(self->raw);
+ Py_INCREF(raw);
+ self->raw = raw;
+ self->buffer_size = buffer_size;
+ self->readable = 1;
+ self->writable = 1;
+
+ if (_buffered_init(self) < 0)
+ return -1;
+ _bufferedreader_reset_buf(self);
+ _bufferedwriter_reset_buf(self);
+ self->pos = 0;
+
+ self->fast_closed_checks = (Py_TYPE(self) == &PyBufferedRandom_Type &&
+ Py_TYPE(raw) == &PyFileIO_Type);
+
+ self->ok = 1;
+ return 0;
+}
+
+#include "clinic/bufferedio.c.h"
+
+
+static PyMethodDef bufferediobase_methods[] = {
+ _IO__BUFFEREDIOBASE_DETACH_METHODDEF
+ {"read", bufferediobase_read, METH_VARARGS, bufferediobase_read_doc},
+ {"read1", bufferediobase_read1, METH_VARARGS, bufferediobase_read1_doc},
+ _IO__BUFFEREDIOBASE_READINTO_METHODDEF
+ _IO__BUFFEREDIOBASE_READINTO1_METHODDEF
+ {"write", bufferediobase_write, METH_VARARGS, bufferediobase_write_doc},
+ {NULL, NULL}
+};
+
+PyTypeObject PyBufferedIOBase_Type = {
+ PyVarObject_HEAD_INIT(NULL, 0)
+ "_io._BufferedIOBase", /*tp_name*/
+ 0, /*tp_basicsize*/
+ 0, /*tp_itemsize*/
+ 0, /*tp_dealloc*/
+ 0, /*tp_print*/
+ 0, /*tp_getattr*/
+ 0, /*tp_setattr*/
+ 0, /*tp_compare */
+ 0, /*tp_repr*/
+ 0, /*tp_as_number*/
+ 0, /*tp_as_sequence*/
+ 0, /*tp_as_mapping*/
+ 0, /*tp_hash */
+ 0, /*tp_call*/
+ 0, /*tp_str*/
+ 0, /*tp_getattro*/
+ 0, /*tp_setattro*/
+ 0, /*tp_as_buffer*/
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE
+ | Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
+ bufferediobase_doc, /* tp_doc */
+ 0, /* tp_traverse */
+ 0, /* tp_clear */
+ 0, /* tp_richcompare */
+ 0, /* tp_weaklistoffset */
+ 0, /* tp_iter */
+ 0, /* tp_iternext */
+ bufferediobase_methods, /* tp_methods */
+ 0, /* tp_members */
+ 0, /* tp_getset */
+ &PyIOBase_Type, /* tp_base */
+ 0, /* tp_dict */
+ 0, /* tp_descr_get */
+ 0, /* tp_descr_set */
+ 0, /* tp_dictoffset */
+ 0, /* tp_init */
+ 0, /* tp_alloc */
+ 0, /* tp_new */
+ 0, /* tp_free */
+ 0, /* tp_is_gc */
+ 0, /* tp_bases */
+ 0, /* tp_mro */
+ 0, /* tp_cache */
+ 0, /* tp_subclasses */
+ 0, /* tp_weaklist */
+ 0, /* tp_del */
+ 0, /* tp_version_tag */
+ 0, /* tp_finalize */
+};
+
+
+static PyMethodDef bufferedreader_methods[] = {
+ /* BufferedIOMixin methods */
+ {"detach", (PyCFunction)buffered_detach, METH_NOARGS},
+ {"flush", (PyCFunction)buffered_simple_flush, METH_NOARGS},
+ {"close", (PyCFunction)buffered_close, METH_NOARGS},
+ {"seekable", (PyCFunction)buffered_seekable, METH_NOARGS},
+ {"readable", (PyCFunction)buffered_readable, METH_NOARGS},
+ {"writable", (PyCFunction)buffered_writable, METH_NOARGS},
+ {"fileno", (PyCFunction)buffered_fileno, METH_NOARGS},
+ {"isatty", (PyCFunction)buffered_isatty, METH_NOARGS},
+ {"_dealloc_warn", (PyCFunction)buffered_dealloc_warn, METH_O},
+ {"__getstate__", (PyCFunction)buffered_getstate, METH_NOARGS},
+
+ _IO__BUFFERED_READ_METHODDEF
+ _IO__BUFFERED_PEEK_METHODDEF
+ _IO__BUFFERED_READ1_METHODDEF
+ _IO__BUFFERED_READINTO_METHODDEF
+ _IO__BUFFERED_READINTO1_METHODDEF
+ _IO__BUFFERED_READLINE_METHODDEF
+ _IO__BUFFERED_SEEK_METHODDEF
+ {"tell", (PyCFunction)buffered_tell, METH_NOARGS},
+ _IO__BUFFERED_TRUNCATE_METHODDEF
+ {"__sizeof__", (PyCFunction)buffered_sizeof, METH_NOARGS},
+ {NULL, NULL}
+};
+
+static PyMemberDef bufferedreader_members[] = {
+ {"raw", T_OBJECT, offsetof(buffered, raw), READONLY},
+ {"_finalizing", T_BOOL, offsetof(buffered, finalizing), 0},
+ {NULL}
+};
+
+static PyGetSetDef bufferedreader_getset[] = {
+ {"closed", (getter)buffered_closed_get, NULL, NULL},
+ {"name", (getter)buffered_name_get, NULL, NULL},
+ {"mode", (getter)buffered_mode_get, NULL, NULL},
+ {NULL}
+};
+
+
+PyTypeObject PyBufferedReader_Type = {
+ PyVarObject_HEAD_INIT(NULL, 0)
+ "_io.BufferedReader", /*tp_name*/
+ sizeof(buffered), /*tp_basicsize*/
+ 0, /*tp_itemsize*/
+ (destructor)buffered_dealloc, /*tp_dealloc*/
+ 0, /*tp_print*/
+ 0, /*tp_getattr*/
+ 0, /*tp_setattr*/
+ 0, /*tp_compare */
+ (reprfunc)buffered_repr, /*tp_repr*/
+ 0, /*tp_as_number*/
+ 0, /*tp_as_sequence*/
+ 0, /*tp_as_mapping*/
+ 0, /*tp_hash */
+ 0, /*tp_call*/
+ 0, /*tp_str*/
+ 0, /*tp_getattro*/
+ 0, /*tp_setattro*/
+ 0, /*tp_as_buffer*/
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE
+ | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
+ _io_BufferedReader___init____doc__, /* tp_doc */
+ (traverseproc)buffered_traverse, /* tp_traverse */
+ (inquiry)buffered_clear, /* tp_clear */
+ 0, /* tp_richcompare */
+ offsetof(buffered, weakreflist), /*tp_weaklistoffset*/
+ 0, /* tp_iter */
+ (iternextfunc)buffered_iternext, /* tp_iternext */
+ bufferedreader_methods, /* tp_methods */
+ bufferedreader_members, /* tp_members */
+ bufferedreader_getset, /* tp_getset */
+ 0, /* tp_base */
+ 0, /* tp_dict */
+ 0, /* tp_descr_get */
+ 0, /* tp_descr_set */
+ offsetof(buffered, dict), /* tp_dictoffset */
+ _io_BufferedReader___init__, /* tp_init */
+ 0, /* tp_alloc */
+ PyType_GenericNew, /* tp_new */
+ 0, /* tp_free */
+ 0, /* tp_is_gc */
+ 0, /* tp_bases */
+ 0, /* tp_mro */
+ 0, /* tp_cache */
+ 0, /* tp_subclasses */
+ 0, /* tp_weaklist */
+ 0, /* tp_del */
+ 0, /* tp_version_tag */
+ 0, /* tp_finalize */
+};
+
+
+static PyMethodDef bufferedwriter_methods[] = {
+ /* BufferedIOMixin methods */
+ {"close", (PyCFunction)buffered_close, METH_NOARGS},
+ {"detach", (PyCFunction)buffered_detach, METH_NOARGS},
+ {"seekable", (PyCFunction)buffered_seekable, METH_NOARGS},
+ {"readable", (PyCFunction)buffered_readable, METH_NOARGS},
+ {"writable", (PyCFunction)buffered_writable, METH_NOARGS},
+ {"fileno", (PyCFunction)buffered_fileno, METH_NOARGS},
+ {"isatty", (PyCFunction)buffered_isatty, METH_NOARGS},
+ {"_dealloc_warn", (PyCFunction)buffered_dealloc_warn, METH_O},
+ {"__getstate__", (PyCFunction)buffered_getstate, METH_NOARGS},
+
+ _IO_BUFFEREDWRITER_WRITE_METHODDEF
+ _IO__BUFFERED_TRUNCATE_METHODDEF
+ {"flush", (PyCFunction)buffered_flush, METH_NOARGS},
+ _IO__BUFFERED_SEEK_METHODDEF
+ {"tell", (PyCFunction)buffered_tell, METH_NOARGS},
+ {"__sizeof__", (PyCFunction)buffered_sizeof, METH_NOARGS},
+ {NULL, NULL}
+};
+
+static PyMemberDef bufferedwriter_members[] = {
+ {"raw", T_OBJECT, offsetof(buffered, raw), READONLY},
+ {"_finalizing", T_BOOL, offsetof(buffered, finalizing), 0},
+ {NULL}
+};
+
+static PyGetSetDef bufferedwriter_getset[] = {
+ {"closed", (getter)buffered_closed_get, NULL, NULL},
+ {"name", (getter)buffered_name_get, NULL, NULL},
+ {"mode", (getter)buffered_mode_get, NULL, NULL},
+ {NULL}
+};
+
+
+PyTypeObject PyBufferedWriter_Type = {
+ PyVarObject_HEAD_INIT(NULL, 0)
+ "_io.BufferedWriter", /*tp_name*/
+ sizeof(buffered), /*tp_basicsize*/
+ 0, /*tp_itemsize*/
+ (destructor)buffered_dealloc, /*tp_dealloc*/
+ 0, /*tp_print*/
+ 0, /*tp_getattr*/
+ 0, /*tp_setattr*/
+ 0, /*tp_compare */
+ (reprfunc)buffered_repr, /*tp_repr*/
+ 0, /*tp_as_number*/
+ 0, /*tp_as_sequence*/
+ 0, /*tp_as_mapping*/
+ 0, /*tp_hash */
+ 0, /*tp_call*/
+ 0, /*tp_str*/
+ 0, /*tp_getattro*/
+ 0, /*tp_setattro*/
+ 0, /*tp_as_buffer*/
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE
+ | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
+ _io_BufferedWriter___init____doc__, /* tp_doc */
+ (traverseproc)buffered_traverse, /* tp_traverse */
+ (inquiry)buffered_clear, /* tp_clear */
+ 0, /* tp_richcompare */
+ offsetof(buffered, weakreflist), /*tp_weaklistoffset*/
+ 0, /* tp_iter */
+ 0, /* tp_iternext */
+ bufferedwriter_methods, /* tp_methods */
+ bufferedwriter_members, /* tp_members */
+ bufferedwriter_getset, /* tp_getset */
+ 0, /* tp_base */
+ 0, /* tp_dict */
+ 0, /* tp_descr_get */
+ 0, /* tp_descr_set */
+ offsetof(buffered, dict), /* tp_dictoffset */
+ _io_BufferedWriter___init__, /* tp_init */
+ 0, /* tp_alloc */
+ PyType_GenericNew, /* tp_new */
+ 0, /* tp_free */
+ 0, /* tp_is_gc */
+ 0, /* tp_bases */
+ 0, /* tp_mro */
+ 0, /* tp_cache */
+ 0, /* tp_subclasses */
+ 0, /* tp_weaklist */
+ 0, /* tp_del */
+ 0, /* tp_version_tag */
+ 0, /* tp_finalize */
+};
+
static PyMethodDef bufferedrwpair_methods[] = {
{"read", (PyCFunction)bufferedrwpair_read, METH_VARARGS},
{"peek", (PyCFunction)bufferedrwpair_peek, METH_VARARGS},
{"read1", (PyCFunction)bufferedrwpair_read1, METH_VARARGS},
{"readinto", (PyCFunction)bufferedrwpair_readinto, METH_VARARGS},
+ {"readinto1", (PyCFunction)bufferedrwpair_readinto1, METH_VARARGS},
{"write", (PyCFunction)bufferedrwpair_write, METH_VARARGS},
{"flush", (PyCFunction)bufferedrwpair_flush, METH_NOARGS},
@@ -2477,7 +2624,7 @@ PyTypeObject PyBufferedRWPair_Type = {
0, /*tp_as_buffer*/
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE
| Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_HAVE_FINALIZE, /* tp_flags */
- bufferedrwpair_doc, /* tp_doc */
+ _io_BufferedRWPair___init____doc__, /* tp_doc */
(traverseproc)bufferedrwpair_traverse, /* tp_traverse */
(inquiry)bufferedrwpair_clear, /* tp_clear */
0, /* tp_richcompare */
@@ -2492,7 +2639,7 @@ PyTypeObject PyBufferedRWPair_Type = {
0, /* tp_descr_get */
0, /* tp_descr_set */
offsetof(rwpair, dict), /* tp_dictoffset */
- (initproc)bufferedrwpair_init, /* tp_init */
+ _io_BufferedRWPair___init__, /* tp_init */
0, /* tp_alloc */
PyType_GenericNew, /* tp_new */
0, /* tp_free */
@@ -2506,62 +2653,7 @@ PyTypeObject PyBufferedRWPair_Type = {
0, /* tp_version_tag */
0, /* tp_finalize */
};
-
-
-/*
- * BufferedRandom
- */
-
-PyDoc_STRVAR(bufferedrandom_doc,
- "A buffered interface to random access streams.\n"
- "\n"
- "The constructor creates a reader and writer for a seekable stream,\n"
- "raw, given in the first argument. If the buffer_size is omitted it\n"
- "defaults to DEFAULT_BUFFER_SIZE.\n"
- );
-
-static int
-bufferedrandom_init(buffered *self, PyObject *args, PyObject *kwds)
-{
- char *kwlist[] = {"raw", "buffer_size", NULL};
- Py_ssize_t buffer_size = DEFAULT_BUFFER_SIZE;
- PyObject *raw;
-
- self->ok = 0;
- self->detached = 0;
-
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|n:BufferedRandom", kwlist,
- &raw, &buffer_size)) {
- return -1;
- }
-
- if (_PyIOBase_check_seekable(raw, Py_True) == NULL)
- return -1;
- if (_PyIOBase_check_readable(raw, Py_True) == NULL)
- return -1;
- if (_PyIOBase_check_writable(raw, Py_True) == NULL)
- return -1;
-
- Py_CLEAR(self->raw);
- Py_INCREF(raw);
- self->raw = raw;
- self->buffer_size = buffer_size;
- self->readable = 1;
- self->writable = 1;
-
- if (_buffered_init(self) < 0)
- return -1;
- _bufferedreader_reset_buf(self);
- _bufferedwriter_reset_buf(self);
- self->pos = 0;
-
- self->fast_closed_checks = (Py_TYPE(self) == &PyBufferedRandom_Type &&
- Py_TYPE(raw) == &PyFileIO_Type);
-
- self->ok = 1;
- return 0;
-}
static PyMethodDef bufferedrandom_methods[] = {
/* BufferedIOMixin methods */
@@ -2577,15 +2669,16 @@ static PyMethodDef bufferedrandom_methods[] = {
{"flush", (PyCFunction)buffered_flush, METH_NOARGS},
- {"seek", (PyCFunction)buffered_seek, METH_VARARGS},
+ _IO__BUFFERED_SEEK_METHODDEF
{"tell", (PyCFunction)buffered_tell, METH_NOARGS},
- {"truncate", (PyCFunction)buffered_truncate, METH_VARARGS},
- {"read", (PyCFunction)buffered_read, METH_VARARGS},
- {"read1", (PyCFunction)buffered_read1, METH_VARARGS},
- {"readinto", (PyCFunction)buffered_readinto, METH_VARARGS},
- {"readline", (PyCFunction)buffered_readline, METH_VARARGS},
- {"peek", (PyCFunction)buffered_peek, METH_VARARGS},
- {"write", (PyCFunction)bufferedwriter_write, METH_VARARGS},
+ _IO__BUFFERED_TRUNCATE_METHODDEF
+ _IO__BUFFERED_READ_METHODDEF
+ _IO__BUFFERED_READ1_METHODDEF
+ _IO__BUFFERED_READINTO_METHODDEF
+ _IO__BUFFERED_READINTO1_METHODDEF
+ _IO__BUFFERED_READLINE_METHODDEF
+ _IO__BUFFERED_PEEK_METHODDEF
+ _IO_BUFFEREDWRITER_WRITE_METHODDEF
{"__sizeof__", (PyCFunction)buffered_sizeof, METH_NOARGS},
{NULL, NULL}
};
@@ -2626,7 +2719,7 @@ PyTypeObject PyBufferedRandom_Type = {
0, /*tp_as_buffer*/
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE
| Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
- bufferedrandom_doc, /* tp_doc */
+ _io_BufferedRandom___init____doc__, /* tp_doc */
(traverseproc)buffered_traverse, /* tp_traverse */
(inquiry)buffered_clear, /* tp_clear */
0, /* tp_richcompare */
@@ -2641,7 +2734,7 @@ PyTypeObject PyBufferedRandom_Type = {
0, /* tp_descr_get */
0, /* tp_descr_set */
offsetof(buffered, dict), /*tp_dictoffset*/
- (initproc)bufferedrandom_init, /* tp_init */
+ _io_BufferedRandom___init__, /* tp_init */
0, /* tp_alloc */
PyType_GenericNew, /* tp_new */
0, /* tp_free */
diff --git a/Modules/_io/bytesio.c b/Modules/_io/bytesio.c
index b55ab72e00..31cc1f79a1 100644
--- a/Modules/_io/bytesio.c
+++ b/Modules/_io/bytesio.c
@@ -2,12 +2,17 @@
#include "structmember.h" /* for offsetof() */
#include "_iomodule.h"
+/*[clinic input]
+module _io
+class _io.BytesIO "bytesio *" "&PyBytesIO_Type"
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=7f50ec034f5c0b26]*/
+
typedef struct {
PyObject_HEAD
- char *buf;
+ PyObject *buf;
Py_ssize_t pos;
Py_ssize_t string_size;
- size_t buf_size;
PyObject *dict;
PyObject *weakreflist;
Py_ssize_t exports;
@@ -18,6 +23,12 @@ typedef struct {
bytesio *source;
} bytesiobuf;
+/* The bytesio object can be in three states:
+ * Py_REFCNT(buf) == 1, exports == 0.
+ * Py_REFCNT(buf) > 1. exports == 0,
+ first modification or export causes the internal buffer copying.
+ * exports > 0. Py_REFCNT(buf) == 1, any modifications are forbidden.
+*/
#define CHECK_CLOSED(self) \
if ((self)->buf == NULL) { \
@@ -33,40 +44,64 @@ typedef struct {
return NULL; \
}
+#define SHARED_BUF(self) (Py_REFCNT((self)->buf) > 1)
+
/* Internal routine to get a line from the buffer of a BytesIO
object. Returns the length between the current position to the
next newline character. */
static Py_ssize_t
-get_line(bytesio *self, char **output)
+scan_eol(bytesio *self, Py_ssize_t len)
{
- char *n;
- const char *str_end;
- Py_ssize_t len;
+ const char *start, *n;
+ Py_ssize_t maxlen;
assert(self->buf != NULL);
+ assert(self->pos >= 0);
- /* Move to the end of the line, up to the end of the string, s. */
- str_end = self->buf + self->string_size;
- for (n = self->buf + self->pos;
- n < str_end && *n != '\n';
- n++);
-
- /* Skip the newline character */
- if (n < str_end)
- n++;
-
- /* Get the length from the current position to the end of the line. */
- len = n - (self->buf + self->pos);
- *output = self->buf + self->pos;
+ if (self->pos >= self->string_size)
+ return 0;
+ /* Move to the end of the line, up to the end of the string, s. */
+ maxlen = self->string_size - self->pos;
+ if (len < 0 || len > maxlen)
+ len = maxlen;
+
+ if (len) {
+ start = PyBytes_AS_STRING(self->buf) + self->pos;
+ n = memchr(start, '\n', len);
+ if (n)
+ /* Get the length from the current position to the end of
+ the line. */
+ len = n - start + 1;
+ }
assert(len >= 0);
assert(self->pos < PY_SSIZE_T_MAX - len);
- self->pos += len;
return len;
}
+/* Internal routine for detaching the shared buffer of BytesIO objects.
+ The caller should ensure that the 'size' argument is non-negative and
+ not lesser than self->string_size. Returns 0 on success, -1 otherwise. */
+static int
+unshare_buffer(bytesio *self, size_t size)
+{
+ PyObject *new_buf, *old_buf;
+ assert(SHARED_BUF(self));
+ assert(self->exports == 0);
+ assert(size >= (size_t)self->string_size);
+ new_buf = PyBytes_FromStringAndSize(NULL, size);
+ if (new_buf == NULL)
+ return -1;
+ memcpy(PyBytes_AS_STRING(new_buf), PyBytes_AS_STRING(self->buf),
+ self->string_size);
+ old_buf = self->buf;
+ self->buf = new_buf;
+ Py_DECREF(old_buf);
+ return 0;
+}
+
/* Internal routine for changing the size of the buffer of BytesIO objects.
The caller should ensure that the 'size' argument is non-negative. Returns
0 on success, -1 otherwise. */
@@ -75,8 +110,7 @@ resize_buffer(bytesio *self, size_t size)
{
/* Here, unsigned types are used to avoid dealing with signed integer
overflow, which is undefined in C. */
- size_t alloc = self->buf_size;
- char *new_buf = NULL;
+ size_t alloc = PyBytes_GET_SIZE(self->buf);
assert(self->buf != NULL);
@@ -104,13 +138,15 @@ resize_buffer(bytesio *self, size_t size)
if (alloc > ((size_t)-1) / sizeof(char))
goto overflow;
- new_buf = (char *)PyMem_Realloc(self->buf, alloc * sizeof(char));
- if (new_buf == NULL) {
- PyErr_NoMemory();
- return -1;
+
+ if (SHARED_BUF(self)) {
+ if (unshare_buffer(self, alloc) < 0)
+ return -1;
+ }
+ else {
+ if (_PyBytes_Resize(&self->buf, alloc) < 0)
+ return -1;
}
- self->buf_size = alloc;
- self->buf = new_buf;
return 0;
@@ -125,12 +161,18 @@ resize_buffer(bytesio *self, size_t size)
static Py_ssize_t
write_bytes(bytesio *self, const char *bytes, Py_ssize_t len)
{
+ size_t endpos;
assert(self->buf != NULL);
assert(self->pos >= 0);
assert(len >= 0);
- if ((size_t)self->pos + len > self->buf_size) {
- if (resize_buffer(self, (size_t)self->pos + len) < 0)
+ endpos = (size_t)self->pos + len;
+ if (endpos > (size_t)PyBytes_GET_SIZE(self->buf)) {
+ if (resize_buffer(self, endpos) < 0)
+ return -1;
+ }
+ else if (SHARED_BUF(self)) {
+ if (unshare_buffer(self, Py_MAX(endpos, (size_t)self->string_size)) < 0)
return -1;
}
@@ -143,18 +185,18 @@ write_bytes(bytesio *self, const char *bytes, Py_ssize_t len)
| | <--to pad-->|<---to write---> |
0 buf position
*/
- memset(self->buf + self->string_size, '\0',
+ memset(PyBytes_AS_STRING(self->buf) + self->string_size, '\0',
(self->pos - self->string_size) * sizeof(char));
}
/* Copy the data to the internal buffer, overwriting some of the existing
data if self->pos < self->string_size. */
- memcpy(self->buf + self->pos, bytes, len);
- self->pos += len;
+ memcpy(PyBytes_AS_STRING(self->buf) + self->pos, bytes, len);
+ self->pos = endpos;
/* Set the new length of the internal string if it has changed. */
- if (self->string_size < self->pos) {
- self->string_size = self->pos;
+ if ((size_t)self->string_size < endpos) {
+ self->string_size = endpos;
}
return len;
@@ -171,40 +213,71 @@ bytesio_get_closed(bytesio *self)
}
}
-PyDoc_STRVAR(readable_doc,
-"readable() -> bool. Returns True if the IO object can be read.");
+/*[clinic input]
+_io.BytesIO.readable
+
+Returns True if the IO object can be read.
+[clinic start generated code]*/
+
+static PyObject *
+_io_BytesIO_readable_impl(bytesio *self)
+/*[clinic end generated code: output=4e93822ad5b62263 input=96c5d0cccfb29f5c]*/
+{
+ CHECK_CLOSED(self);
+ Py_RETURN_TRUE;
+}
-PyDoc_STRVAR(writable_doc,
-"writable() -> bool. Returns True if the IO object can be written.");
+/*[clinic input]
+_io.BytesIO.writable
-PyDoc_STRVAR(seekable_doc,
-"seekable() -> bool. Returns True if the IO object can be seeked.");
+Returns True if the IO object can be written.
+[clinic start generated code]*/
-/* Generic getter for the writable, readable and seekable properties */
static PyObject *
-return_not_closed(bytesio *self)
+_io_BytesIO_writable_impl(bytesio *self)
+/*[clinic end generated code: output=64ff6a254b1150b8 input=700eed808277560a]*/
{
CHECK_CLOSED(self);
Py_RETURN_TRUE;
}
-PyDoc_STRVAR(flush_doc,
-"flush() -> None. Does nothing.");
+/*[clinic input]
+_io.BytesIO.seekable
+
+Returns True if the IO object can be seeked.
+[clinic start generated code]*/
+
+static PyObject *
+_io_BytesIO_seekable_impl(bytesio *self)
+/*[clinic end generated code: output=6b417f46dcc09b56 input=9421f65627a344dd]*/
+{
+ CHECK_CLOSED(self);
+ Py_RETURN_TRUE;
+}
+
+/*[clinic input]
+_io.BytesIO.flush
+
+Does nothing.
+[clinic start generated code]*/
static PyObject *
-bytesio_flush(bytesio *self)
+_io_BytesIO_flush_impl(bytesio *self)
+/*[clinic end generated code: output=187e3d781ca134a0 input=561ea490be4581a7]*/
{
CHECK_CLOSED(self);
Py_RETURN_NONE;
}
-PyDoc_STRVAR(getbuffer_doc,
-"getbuffer() -> bytes.\n"
-"\n"
-"Get a read-write view over the contents of the BytesIO object.");
+/*[clinic input]
+_io.BytesIO.getbuffer
+
+Get a read-write view over the contents of the BytesIO object.
+[clinic start generated code]*/
static PyObject *
-bytesio_getbuffer(bytesio *self)
+_io_BytesIO_getbuffer_impl(bytesio *self)
+/*[clinic end generated code: output=72cd7c6e13aa09ed input=8f738ef615865176]*/
{
PyTypeObject *type = &_PyBytesIOBuffer_Type;
bytesiobuf *buf;
@@ -222,59 +295,104 @@ bytesio_getbuffer(bytesio *self)
return view;
}
-PyDoc_STRVAR(getval_doc,
-"getvalue() -> bytes.\n"
-"\n"
-"Retrieve the entire contents of the BytesIO object.");
+/*[clinic input]
+_io.BytesIO.getvalue
+
+Retrieve the entire contents of the BytesIO object.
+[clinic start generated code]*/
static PyObject *
-bytesio_getvalue(bytesio *self)
+_io_BytesIO_getvalue_impl(bytesio *self)
+/*[clinic end generated code: output=b3f6a3233c8fd628 input=4b403ac0af3973ed]*/
{
CHECK_CLOSED(self);
- return PyBytes_FromStringAndSize(self->buf, self->string_size);
+ if (self->string_size <= 1 || self->exports > 0)
+ return PyBytes_FromStringAndSize(PyBytes_AS_STRING(self->buf),
+ self->string_size);
+
+ if (self->string_size != PyBytes_GET_SIZE(self->buf)) {
+ if (SHARED_BUF(self)) {
+ if (unshare_buffer(self, self->string_size) < 0)
+ return NULL;
+ }
+ else {
+ if (_PyBytes_Resize(&self->buf, self->string_size) < 0)
+ return NULL;
+ }
+ }
+ Py_INCREF(self->buf);
+ return self->buf;
}
-PyDoc_STRVAR(isatty_doc,
-"isatty() -> False.\n"
-"\n"
-"Always returns False since BytesIO objects are not connected\n"
-"to a tty-like device.");
+/*[clinic input]
+_io.BytesIO.isatty
+
+Always returns False.
+
+BytesIO objects are not connected to a TTY-like device.
+[clinic start generated code]*/
static PyObject *
-bytesio_isatty(bytesio *self)
+_io_BytesIO_isatty_impl(bytesio *self)
+/*[clinic end generated code: output=df67712e669f6c8f input=6f97f0985d13f827]*/
{
CHECK_CLOSED(self);
Py_RETURN_FALSE;
}
-PyDoc_STRVAR(tell_doc,
-"tell() -> current file position, an integer\n");
+/*[clinic input]
+_io.BytesIO.tell
+
+Current file position, an integer.
+[clinic start generated code]*/
static PyObject *
-bytesio_tell(bytesio *self)
+_io_BytesIO_tell_impl(bytesio *self)
+/*[clinic end generated code: output=b54b0f93cd0e5e1d input=b106adf099cb3657]*/
{
CHECK_CLOSED(self);
return PyLong_FromSsize_t(self->pos);
}
-PyDoc_STRVAR(read_doc,
-"read([size]) -> read at most size bytes, returned as a bytes object.\n"
-"\n"
-"If the size argument is negative, read until EOF is reached.\n"
-"Return an empty bytes object at EOF.");
+static PyObject *
+read_bytes(bytesio *self, Py_ssize_t size)
+{
+ char *output;
+
+ assert(self->buf != NULL);
+ assert(size <= self->string_size);
+ if (size > 1 &&
+ self->pos == 0 && size == PyBytes_GET_SIZE(self->buf) &&
+ self->exports == 0) {
+ self->pos += size;
+ Py_INCREF(self->buf);
+ return self->buf;
+ }
+
+ output = PyBytes_AS_STRING(self->buf) + self->pos;
+ self->pos += size;
+ return PyBytes_FromStringAndSize(output, size);
+}
+
+/*[clinic input]
+_io.BytesIO.read
+ size as arg: object = None
+ /
+
+Read at most size bytes, returned as a bytes object.
+
+If the size argument is negative, read until EOF is reached.
+Return an empty bytes object at EOF.
+[clinic start generated code]*/
static PyObject *
-bytesio_read(bytesio *self, PyObject *args)
+_io_BytesIO_read_impl(bytesio *self, PyObject *arg)
+/*[clinic end generated code: output=85dacb535c1e1781 input=cc7ba4a797bb1555]*/
{
Py_ssize_t size, n;
- char *output;
- PyObject *arg = Py_None;
CHECK_CLOSED(self);
- if (!PyArg_ParseTuple(args, "|O:read", &arg))
- return NULL;
-
if (PyLong_Check(arg)) {
size = PyLong_AsSsize_t(arg);
if (size == -1 && PyErr_Occurred())
@@ -298,52 +416,48 @@ bytesio_read(bytesio *self, PyObject *args)
size = 0;
}
- assert(self->buf != NULL);
- output = self->buf + self->pos;
- self->pos += size;
-
- return PyBytes_FromStringAndSize(output, size);
+ return read_bytes(self, size);
}
-PyDoc_STRVAR(read1_doc,
-"read1(size) -> read at most size bytes, returned as a bytes object.\n"
-"\n"
-"If the size argument is negative or omitted, read until EOF is reached.\n"
-"Return an empty bytes object at EOF.");
+/*[clinic input]
+_io.BytesIO.read1
+ size: object
+ /
+
+Read at most size bytes, returned as a bytes object.
+
+If the size argument is negative or omitted, read until EOF is reached.
+Return an empty bytes object at EOF.
+[clinic start generated code]*/
static PyObject *
-bytesio_read1(bytesio *self, PyObject *n)
+_io_BytesIO_read1(bytesio *self, PyObject *size)
+/*[clinic end generated code: output=16021f5d0ac3d4e2 input=d4f40bb8f2f99418]*/
{
- PyObject *arg, *res;
-
- arg = PyTuple_Pack(1, n);
- if (arg == NULL)
- return NULL;
- res = bytesio_read(self, arg);
- Py_DECREF(arg);
- return res;
+ return _io_BytesIO_read_impl(self, size);
}
-PyDoc_STRVAR(readline_doc,
-"readline([size]) -> next line from the file, as a bytes object.\n"
-"\n"
-"Retain newline. A non-negative size argument limits the maximum\n"
-"number of bytes to return (an incomplete line may be returned then).\n"
-"Return an empty bytes object at EOF.\n");
+/*[clinic input]
+_io.BytesIO.readline
+ size as arg: object = None
+ /
+
+Next line from the file, as a bytes object.
+
+Retain newline. A non-negative size argument limits the maximum
+number of bytes to return (an incomplete line may be returned then).
+Return an empty bytes object at EOF.
+[clinic start generated code]*/
static PyObject *
-bytesio_readline(bytesio *self, PyObject *args)
+_io_BytesIO_readline_impl(bytesio *self, PyObject *arg)
+/*[clinic end generated code: output=1c2115534a4f9276 input=ca31f06de6eab257]*/
{
Py_ssize_t size, n;
- char *output;
- PyObject *arg = Py_None;
CHECK_CLOSED(self);
- if (!PyArg_ParseTuple(args, "|O:readline", &arg))
- return NULL;
-
if (PyLong_Check(arg)) {
size = PyLong_AsSsize_t(arg);
if (size == -1 && PyErr_Occurred())
@@ -359,37 +473,33 @@ bytesio_readline(bytesio *self, PyObject *args)
return NULL;
}
- n = get_line(self, &output);
+ n = scan_eol(self, size);
- if (size >= 0 && size < n) {
- size = n - size;
- n -= size;
- self->pos -= size;
- }
-
- return PyBytes_FromStringAndSize(output, n);
+ return read_bytes(self, n);
}
-PyDoc_STRVAR(readlines_doc,
-"readlines([size]) -> list of strings, each a line from the file.\n"
-"\n"
-"Call readline() repeatedly and return a list of the lines so read.\n"
-"The optional size argument, if given, is an approximate bound on the\n"
-"total number of bytes in the lines returned.\n");
+/*[clinic input]
+_io.BytesIO.readlines
+ size as arg: object = None
+ /
+
+List of bytes objects, each a line from the file.
+
+Call readline() repeatedly and return a list of the lines so read.
+The optional size argument, if given, is an approximate bound on the
+total number of bytes in the lines returned.
+[clinic start generated code]*/
static PyObject *
-bytesio_readlines(bytesio *self, PyObject *args)
+_io_BytesIO_readlines_impl(bytesio *self, PyObject *arg)
+/*[clinic end generated code: output=09b8e34c880808ff input=691aa1314f2c2a87]*/
{
Py_ssize_t maxsize, size, n;
PyObject *result, *line;
char *output;
- PyObject *arg = Py_None;
CHECK_CLOSED(self);
- if (!PyArg_ParseTuple(args, "|O:readlines", &arg))
- return NULL;
-
if (PyLong_Check(arg)) {
maxsize = PyLong_AsSsize_t(arg);
if (maxsize == -1 && PyErr_Occurred())
@@ -410,7 +520,9 @@ bytesio_readlines(bytesio *self, PyObject *args)
if (!result)
return NULL;
- while ((n = get_line(self, &output)) != 0) {
+ output = PyBytes_AS_STRING(self->buf) + self->pos;
+ while ((n = scan_eol(self, -1)) != 0) {
+ self->pos += n;
line = PyBytes_FromStringAndSize(output, n);
if (!line)
goto on_error;
@@ -422,6 +534,7 @@ bytesio_readlines(bytesio *self, PyObject *args)
size += n;
if (maxsize > 0 && size >= maxsize)
break;
+ output += n;
}
return result;
@@ -430,25 +543,27 @@ bytesio_readlines(bytesio *self, PyObject *args)
return NULL;
}
-PyDoc_STRVAR(readinto_doc,
-"readinto(bytearray) -> int. Read up to len(b) bytes into b.\n"
-"\n"
-"Returns number of bytes read (0 for EOF), or None if the object\n"
-"is set not to block as has no data to read.");
+/*[clinic input]
+_io.BytesIO.readinto
+ buffer: Py_buffer(accept={rwbuffer})
+ /
+
+Read up to len(buffer) bytes into buffer.
+
+Returns number of bytes read (0 for EOF), or None if the object
+is set not to block as has no data to read.
+[clinic start generated code]*/
static PyObject *
-bytesio_readinto(bytesio *self, PyObject *arg)
+_io_BytesIO_readinto_impl(bytesio *self, Py_buffer *buffer)
+/*[clinic end generated code: output=a5d407217dcf0639 input=71581f32635c3a31]*/
{
- Py_buffer buffer;
Py_ssize_t len, n;
CHECK_CLOSED(self);
- if (!PyArg_Parse(arg, "w*", &buffer))
- return NULL;
-
/* adjust invalid sizes */
- len = buffer.len;
+ len = buffer->len;
n = self->string_size - self->pos;
if (len > n) {
len = n;
@@ -456,33 +571,34 @@ bytesio_readinto(bytesio *self, PyObject *arg)
len = 0;
}
- memcpy(buffer.buf, self->buf + self->pos, len);
+ memcpy(buffer->buf, PyBytes_AS_STRING(self->buf) + self->pos, len);
assert(self->pos + len < PY_SSIZE_T_MAX);
assert(len >= 0);
self->pos += len;
- PyBuffer_Release(&buffer);
return PyLong_FromSsize_t(len);
}
-PyDoc_STRVAR(truncate_doc,
-"truncate([size]) -> int. Truncate the file to at most size bytes.\n"
-"\n"
-"Size defaults to the current file position, as returned by tell().\n"
-"The current file position is unchanged. Returns the new size.\n");
+/*[clinic input]
+_io.BytesIO.truncate
+ size as arg: object = None
+ /
+
+Truncate the file to at most size bytes.
+
+Size defaults to the current file position, as returned by tell().
+The current file position is unchanged. Returns the new size.
+[clinic start generated code]*/
static PyObject *
-bytesio_truncate(bytesio *self, PyObject *args)
+_io_BytesIO_truncate_impl(bytesio *self, PyObject *arg)
+/*[clinic end generated code: output=81e6be60e67ddd66 input=11ed1966835462ba]*/
{
Py_ssize_t size;
- PyObject *arg = Py_None;
CHECK_CLOSED(self);
CHECK_EXPORTS(self);
- if (!PyArg_ParseTuple(args, "|O:truncate", &arg))
- return NULL;
-
if (PyLong_Check(arg)) {
size = PyLong_AsSsize_t(arg);
if (size == -1 && PyErr_Occurred())
@@ -516,49 +632,49 @@ bytesio_truncate(bytesio *self, PyObject *args)
static PyObject *
bytesio_iternext(bytesio *self)
{
- char *next;
Py_ssize_t n;
CHECK_CLOSED(self);
- n = get_line(self, &next);
+ n = scan_eol(self, -1);
- if (!next || n == 0)
+ if (n == 0)
return NULL;
- return PyBytes_FromStringAndSize(next, n);
+ return read_bytes(self, n);
}
-PyDoc_STRVAR(seek_doc,
-"seek(pos[, whence]) -> int. Change stream position.\n"
-"\n"
-"Seek to byte offset pos relative to position indicated by whence:\n"
-" 0 Start of stream (the default). pos should be >= 0;\n"
-" 1 Current position - pos may be negative;\n"
-" 2 End of stream - pos usually negative.\n"
-"Returns the new absolute position.");
+/*[clinic input]
+_io.BytesIO.seek
+ pos: Py_ssize_t
+ whence: int = 0
+ /
+
+Change stream position.
+
+Seek to byte offset pos relative to position indicated by whence:
+ 0 Start of stream (the default). pos should be >= 0;
+ 1 Current position - pos may be negative;
+ 2 End of stream - pos usually negative.
+Returns the new absolute position.
+[clinic start generated code]*/
static PyObject *
-bytesio_seek(bytesio *self, PyObject *args)
+_io_BytesIO_seek_impl(bytesio *self, Py_ssize_t pos, int whence)
+/*[clinic end generated code: output=c26204a68e9190e4 input=1e875e6ebc652948]*/
{
- Py_ssize_t pos;
- int mode = 0;
-
CHECK_CLOSED(self);
- if (!PyArg_ParseTuple(args, "n|i:seek", &pos, &mode))
- return NULL;
-
- if (pos < 0 && mode == 0) {
+ if (pos < 0 && whence == 0) {
PyErr_Format(PyExc_ValueError,
"negative seek value %zd", pos);
return NULL;
}
- /* mode 0: offset relative to beginning of the string.
- mode 1: offset relative to current position.
- mode 2: offset relative the end of the string. */
- if (mode == 1) {
+ /* whence = 0: offset relative to beginning of the string.
+ whence = 1: offset relative to current position.
+ whence = 2: offset relative the end of the string. */
+ if (whence == 1) {
if (pos > PY_SSIZE_T_MAX - self->pos) {
PyErr_SetString(PyExc_OverflowError,
"new position too large");
@@ -566,7 +682,7 @@ bytesio_seek(bytesio *self, PyObject *args)
}
pos += self->pos;
}
- else if (mode == 2) {
+ else if (whence == 2) {
if (pos > PY_SSIZE_T_MAX - self->string_size) {
PyErr_SetString(PyExc_OverflowError,
"new position too large");
@@ -574,9 +690,9 @@ bytesio_seek(bytesio *self, PyObject *args)
}
pos += self->string_size;
}
- else if (mode != 0) {
+ else if (whence != 0) {
PyErr_Format(PyExc_ValueError,
- "invalid whence (%i, should be 0, 1 or 2)", mode);
+ "invalid whence (%i, should be 0, 1 or 2)", whence);
return NULL;
}
@@ -587,54 +703,63 @@ bytesio_seek(bytesio *self, PyObject *args)
return PyLong_FromSsize_t(self->pos);
}
-PyDoc_STRVAR(write_doc,
-"write(bytes) -> int. Write bytes to file.\n"
-"\n"
-"Return the number of bytes written.");
+/*[clinic input]
+_io.BytesIO.write
+ b: object
+ /
+
+Write bytes to file.
+
+Return the number of bytes written.
+[clinic start generated code]*/
static PyObject *
-bytesio_write(bytesio *self, PyObject *obj)
+_io_BytesIO_write(bytesio *self, PyObject *b)
+/*[clinic end generated code: output=53316d99800a0b95 input=f5ec7c8c64ed720a]*/
{
Py_ssize_t n = 0;
Py_buffer buf;
- PyObject *result = NULL;
CHECK_CLOSED(self);
CHECK_EXPORTS(self);
- if (PyObject_GetBuffer(obj, &buf, PyBUF_CONTIG_RO) < 0)
+ if (PyObject_GetBuffer(b, &buf, PyBUF_CONTIG_RO) < 0)
return NULL;
if (buf.len != 0)
n = write_bytes(self, buf.buf, buf.len);
- if (n >= 0)
- result = PyLong_FromSsize_t(n);
PyBuffer_Release(&buf);
- return result;
+ return n >= 0 ? PyLong_FromSsize_t(n) : NULL;
}
-PyDoc_STRVAR(writelines_doc,
-"writelines(lines) -> None. Write bytes objects to the file.\n"
-"\n"
-"Note that newlines are not added. The argument can be any iterable\n"
-"object producing bytes objects. This is equivalent to calling write() for\n"
-"each bytes object.");
+/*[clinic input]
+_io.BytesIO.writelines
+ lines: object
+ /
+
+Write lines to the file.
+
+Note that newlines are not added. lines can be any iterable object
+producing bytes-like objects. This is equivalent to calling write() for
+each element.
+[clinic start generated code]*/
static PyObject *
-bytesio_writelines(bytesio *self, PyObject *v)
+_io_BytesIO_writelines(bytesio *self, PyObject *lines)
+/*[clinic end generated code: output=7f33aa3271c91752 input=e972539176fc8fc1]*/
{
PyObject *it, *item;
PyObject *ret;
CHECK_CLOSED(self);
- it = PyObject_GetIter(v);
+ it = PyObject_GetIter(lines);
if (it == NULL)
return NULL;
while ((item = PyIter_Next(it)) != NULL) {
- ret = bytesio_write(self, item);
+ ret = _io_BytesIO_write(self, item);
Py_DECREF(item);
if (ret == NULL) {
Py_DECREF(it);
@@ -651,17 +776,18 @@ bytesio_writelines(bytesio *self, PyObject *v)
Py_RETURN_NONE;
}
-PyDoc_STRVAR(close_doc,
-"close() -> None. Disable all I/O operations.");
+/*[clinic input]
+_io.BytesIO.close
+
+Disable all I/O operations.
+[clinic start generated code]*/
static PyObject *
-bytesio_close(bytesio *self)
+_io_BytesIO_close_impl(bytesio *self)
+/*[clinic end generated code: output=1471bb9411af84a0 input=37e1f55556e61f60]*/
{
CHECK_EXPORTS(self);
- if (self->buf != NULL) {
- PyMem_Free(self->buf);
- self->buf = NULL;
- }
+ Py_CLEAR(self->buf);
Py_RETURN_NONE;
}
@@ -683,7 +809,7 @@ bytesio_close(bytesio *self)
static PyObject *
bytesio_getstate(bytesio *self)
{
- PyObject *initvalue = bytesio_getvalue(self);
+ PyObject *initvalue = _io_BytesIO_getvalue_impl(self);
PyObject *dict;
PyObject *state;
@@ -733,7 +859,7 @@ bytesio_setstate(bytesio *self, PyObject *state)
/* Set the value of the internal buffer. If state[0] does not support the
buffer protocol, bytesio_write will raise the appropriate TypeError. */
- result = bytesio_write(self, PyTuple_GET_ITEM(state, 0));
+ result = _io_BytesIO_write(self, PyTuple_GET_ITEM(state, 0));
if (result == NULL)
return NULL;
Py_DECREF(result);
@@ -791,10 +917,7 @@ bytesio_dealloc(bytesio *self)
"deallocated BytesIO object has exported buffers");
PyErr_Print();
}
- if (self->buf != NULL) {
- PyMem_Free(self->buf);
- self->buf = NULL;
- }
+ Py_CLEAR(self->buf);
Py_CLEAR(self->dict);
if (self->weakreflist != NULL)
PyObject_ClearWeakRefs((PyObject *) self);
@@ -814,7 +937,7 @@ bytesio_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
/* tp_alloc initializes all the fields to zero. So we don't have to
initialize them here. */
- self->buf = (char *)PyMem_Malloc(0);
+ self->buf = PyBytes_FromStringAndSize(NULL, 0);
if (self->buf == NULL) {
Py_DECREF(self);
return PyErr_NoMemory();
@@ -823,27 +946,41 @@ bytesio_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
return (PyObject *)self;
}
-static int
-bytesio_init(bytesio *self, PyObject *args, PyObject *kwds)
-{
- char *kwlist[] = {"initial_bytes", NULL};
- PyObject *initvalue = NULL;
+/*[clinic input]
+_io.BytesIO.__init__
+ initial_bytes as initvalue: object(c_default="NULL") = b''
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "|O:BytesIO", kwlist,
- &initvalue))
- return -1;
+Buffered I/O implementation using an in-memory bytes buffer.
+[clinic start generated code]*/
+static int
+_io_BytesIO___init___impl(bytesio *self, PyObject *initvalue)
+/*[clinic end generated code: output=65c0c51e24c5b621 input=aac7f31b67bf0fb6]*/
+{
/* In case, __init__ is called multiple times. */
self->string_size = 0;
self->pos = 0;
+ if (self->exports > 0) {
+ PyErr_SetString(PyExc_BufferError,
+ "Existing exports of data: object cannot be re-sized");
+ return -1;
+ }
if (initvalue && initvalue != Py_None) {
- PyObject *res;
- res = bytesio_write(self, initvalue);
- if (res == NULL)
- return -1;
- Py_DECREF(res);
- self->pos = 0;
+ if (PyBytes_CheckExact(initvalue)) {
+ Py_INCREF(initvalue);
+ Py_XDECREF(self->buf);
+ self->buf = initvalue;
+ self->string_size = PyBytes_GET_SIZE(initvalue);
+ }
+ else {
+ PyObject *res;
+ res = _io_BytesIO_write(self, initvalue);
+ if (res == NULL)
+ return -1;
+ Py_DECREF(res);
+ self->pos = 0;
+ }
}
return 0;
@@ -855,8 +992,8 @@ bytesio_sizeof(bytesio *self, void *unused)
Py_ssize_t res;
res = sizeof(bytesio);
- if (self->buf)
- res += self->buf_size;
+ if (self->buf && !SHARED_BUF(self))
+ res += _PySys_GetSizeOf(self->buf);
return PyLong_FromSsize_t(res);
}
@@ -875,6 +1012,8 @@ bytesio_clear(bytesio *self)
}
+#include "clinic/bytesio.c.h"
+
static PyGetSetDef bytesio_getsetlist[] = {
{"closed", (getter)bytesio_get_closed, NULL,
"True if the file is closed."},
@@ -882,36 +1021,30 @@ static PyGetSetDef bytesio_getsetlist[] = {
};
static struct PyMethodDef bytesio_methods[] = {
- {"readable", (PyCFunction)return_not_closed, METH_NOARGS, readable_doc},
- {"seekable", (PyCFunction)return_not_closed, METH_NOARGS, seekable_doc},
- {"writable", (PyCFunction)return_not_closed, METH_NOARGS, writable_doc},
- {"close", (PyCFunction)bytesio_close, METH_NOARGS, close_doc},
- {"flush", (PyCFunction)bytesio_flush, METH_NOARGS, flush_doc},
- {"isatty", (PyCFunction)bytesio_isatty, METH_NOARGS, isatty_doc},
- {"tell", (PyCFunction)bytesio_tell, METH_NOARGS, tell_doc},
- {"write", (PyCFunction)bytesio_write, METH_O, write_doc},
- {"writelines", (PyCFunction)bytesio_writelines, METH_O, writelines_doc},
- {"read1", (PyCFunction)bytesio_read1, METH_O, read1_doc},
- {"readinto", (PyCFunction)bytesio_readinto, METH_O, readinto_doc},
- {"readline", (PyCFunction)bytesio_readline, METH_VARARGS, readline_doc},
- {"readlines", (PyCFunction)bytesio_readlines, METH_VARARGS, readlines_doc},
- {"read", (PyCFunction)bytesio_read, METH_VARARGS, read_doc},
- {"getbuffer", (PyCFunction)bytesio_getbuffer, METH_NOARGS, getbuffer_doc},
- {"getvalue", (PyCFunction)bytesio_getvalue, METH_NOARGS, getval_doc},
- {"seek", (PyCFunction)bytesio_seek, METH_VARARGS, seek_doc},
- {"truncate", (PyCFunction)bytesio_truncate, METH_VARARGS, truncate_doc},
+ _IO_BYTESIO_READABLE_METHODDEF
+ _IO_BYTESIO_SEEKABLE_METHODDEF
+ _IO_BYTESIO_WRITABLE_METHODDEF
+ _IO_BYTESIO_CLOSE_METHODDEF
+ _IO_BYTESIO_FLUSH_METHODDEF
+ _IO_BYTESIO_ISATTY_METHODDEF
+ _IO_BYTESIO_TELL_METHODDEF
+ _IO_BYTESIO_WRITE_METHODDEF
+ _IO_BYTESIO_WRITELINES_METHODDEF
+ _IO_BYTESIO_READ1_METHODDEF
+ _IO_BYTESIO_READINTO_METHODDEF
+ _IO_BYTESIO_READLINE_METHODDEF
+ _IO_BYTESIO_READLINES_METHODDEF
+ _IO_BYTESIO_READ_METHODDEF
+ _IO_BYTESIO_GETBUFFER_METHODDEF
+ _IO_BYTESIO_GETVALUE_METHODDEF
+ _IO_BYTESIO_SEEK_METHODDEF
+ _IO_BYTESIO_TRUNCATE_METHODDEF
{"__getstate__", (PyCFunction)bytesio_getstate, METH_NOARGS, NULL},
{"__setstate__", (PyCFunction)bytesio_setstate, METH_O, NULL},
{"__sizeof__", (PyCFunction)bytesio_sizeof, METH_NOARGS, NULL},
{NULL, NULL} /* sentinel */
};
-PyDoc_STRVAR(bytesio_doc,
-"BytesIO([buffer]) -> object\n"
-"\n"
-"Create a buffered I/O implementation using an in-memory bytes\n"
-"buffer, ready for reading and writing.");
-
PyTypeObject PyBytesIO_Type = {
PyVarObject_HEAD_INIT(NULL, 0)
"_io.BytesIO", /*tp_name*/
@@ -934,7 +1067,7 @@ PyTypeObject PyBytesIO_Type = {
0, /*tp_as_buffer*/
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE |
Py_TPFLAGS_HAVE_GC, /*tp_flags*/
- bytesio_doc, /*tp_doc*/
+ _io_BytesIO___init____doc__, /*tp_doc*/
(traverseproc)bytesio_traverse, /*tp_traverse*/
(inquiry)bytesio_clear, /*tp_clear*/
0, /*tp_richcompare*/
@@ -949,7 +1082,7 @@ PyTypeObject PyBytesIO_Type = {
0, /*tp_descr_get*/
0, /*tp_descr_set*/
offsetof(bytesio, dict), /*tp_dictoffset*/
- (initproc)bytesio_init, /*tp_init*/
+ _io_BytesIO___init__, /*tp_init*/
0, /*tp_alloc*/
bytesio_new, /*tp_new*/
};
@@ -964,18 +1097,24 @@ PyTypeObject PyBytesIO_Type = {
static int
bytesiobuf_getbuffer(bytesiobuf *obj, Py_buffer *view, int flags)
{
- int ret;
bytesio *b = (bytesio *) obj->source;
+
if (view == NULL) {
- b->exports++;
- return 0;
+ PyErr_SetString(PyExc_BufferError,
+ "bytesiobuf_getbuffer: view==NULL argument is obsolete");
+ return -1;
}
- ret = PyBuffer_FillInfo(view, (PyObject*)obj, b->buf, b->string_size,
- 0, flags);
- if (ret >= 0) {
- b->exports++;
+ if (SHARED_BUF(b)) {
+ if (unshare_buffer(b, b->string_size) < 0)
+ return -1;
}
- return ret;
+
+ /* cannot fail if view != NULL and readonly == 0 */
+ (void)PyBuffer_FillInfo(view, (PyObject*)obj,
+ PyBytes_AS_STRING(b->buf), b->string_size,
+ 0, flags);
+ b->exports++;
+ return 0;
}
static void
diff --git a/Modules/_io/clinic/_iomodule.c.h b/Modules/_io/clinic/_iomodule.c.h
new file mode 100644
index 0000000000..a3abb93cc7
--- /dev/null
+++ b/Modules/_io/clinic/_iomodule.c.h
@@ -0,0 +1,159 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(_io_open__doc__,
+"open($module, /, file, mode=\'r\', buffering=-1, encoding=None,\n"
+" errors=None, newline=None, closefd=True, opener=None)\n"
+"--\n"
+"\n"
+"Open file and return a stream. Raise IOError upon failure.\n"
+"\n"
+"file is either a text or byte string giving the name (and the path\n"
+"if the file isn\'t in the current working directory) of the file to\n"
+"be opened or an integer file descriptor of the file to be\n"
+"wrapped. (If a file descriptor is given, it is closed when the\n"
+"returned I/O object is closed, unless closefd is set to False.)\n"
+"\n"
+"mode is an optional string that specifies the mode in which the file\n"
+"is opened. It defaults to \'r\' which means open for reading in text\n"
+"mode. Other common values are \'w\' for writing (truncating the file if\n"
+"it already exists), \'x\' for creating and writing to a new file, and\n"
+"\'a\' for appending (which on some Unix systems, means that all writes\n"
+"append to the end of the file regardless of the current seek position).\n"
+"In text mode, if encoding is not specified the encoding used is platform\n"
+"dependent: locale.getpreferredencoding(False) is called to get the\n"
+"current locale encoding. (For reading and writing raw bytes use binary\n"
+"mode and leave encoding unspecified.) The available modes are:\n"
+"\n"
+"========= ===============================================================\n"
+"Character Meaning\n"
+"--------- ---------------------------------------------------------------\n"
+"\'r\' open for reading (default)\n"
+"\'w\' open for writing, truncating the file first\n"
+"\'x\' create a new file and open it for writing\n"
+"\'a\' open for writing, appending to the end of the file if it exists\n"
+"\'b\' binary mode\n"
+"\'t\' text mode (default)\n"
+"\'+\' open a disk file for updating (reading and writing)\n"
+"\'U\' universal newline mode (deprecated)\n"
+"========= ===============================================================\n"
+"\n"
+"The default mode is \'rt\' (open for reading text). For binary random\n"
+"access, the mode \'w+b\' opens and truncates the file to 0 bytes, while\n"
+"\'r+b\' opens the file without truncation. The \'x\' mode implies \'w\' and\n"
+"raises an `FileExistsError` if the file already exists.\n"
+"\n"
+"Python distinguishes between files opened in binary and text modes,\n"
+"even when the underlying operating system doesn\'t. Files opened in\n"
+"binary mode (appending \'b\' to the mode argument) return contents as\n"
+"bytes objects without any decoding. In text mode (the default, or when\n"
+"\'t\' is appended to the mode argument), the contents of the file are\n"
+"returned as strings, the bytes having been first decoded using a\n"
+"platform-dependent encoding or using the specified encoding if given.\n"
+"\n"
+"\'U\' mode is deprecated and will raise an exception in future versions\n"
+"of Python. It has no effect in Python 3. Use newline to control\n"
+"universal newlines mode.\n"
+"\n"
+"buffering is an optional integer used to set the buffering policy.\n"
+"Pass 0 to switch buffering off (only allowed in binary mode), 1 to select\n"
+"line buffering (only usable in text mode), and an integer > 1 to indicate\n"
+"the size of a fixed-size chunk buffer. When no buffering argument is\n"
+"given, the default buffering policy works as follows:\n"
+"\n"
+"* Binary files are buffered in fixed-size chunks; the size of the buffer\n"
+" is chosen using a heuristic trying to determine the underlying device\'s\n"
+" \"block size\" and falling back on `io.DEFAULT_BUFFER_SIZE`.\n"
+" On many systems, the buffer will typically be 4096 or 8192 bytes long.\n"
+"\n"
+"* \"Interactive\" text files (files for which isatty() returns True)\n"
+" use line buffering. Other text files use the policy described above\n"
+" for binary files.\n"
+"\n"
+"encoding is the name of the encoding used to decode or encode the\n"
+"file. This should only be used in text mode. The default encoding is\n"
+"platform dependent, but any encoding supported by Python can be\n"
+"passed. See the codecs module for the list of supported encodings.\n"
+"\n"
+"errors is an optional string that specifies how encoding errors are to\n"
+"be handled---this argument should not be used in binary mode. Pass\n"
+"\'strict\' to raise a ValueError exception if there is an encoding error\n"
+"(the default of None has the same effect), or pass \'ignore\' to ignore\n"
+"errors. (Note that ignoring encoding errors can lead to data loss.)\n"
+"See the documentation for codecs.register or run \'help(codecs.Codec)\'\n"
+"for a list of the permitted encoding error strings.\n"
+"\n"
+"newline controls how universal newlines works (it only applies to text\n"
+"mode). It can be None, \'\', \'\\n\', \'\\r\', and \'\\r\\n\'. It works as\n"
+"follows:\n"
+"\n"
+"* On input, if newline is None, universal newlines mode is\n"
+" enabled. Lines in the input can end in \'\\n\', \'\\r\', or \'\\r\\n\', and\n"
+" these are translated into \'\\n\' before being returned to the\n"
+" caller. If it is \'\', universal newline mode is enabled, but line\n"
+" endings are returned to the caller untranslated. If it has any of\n"
+" the other legal values, input lines are only terminated by the given\n"
+" string, and the line ending is returned to the caller untranslated.\n"
+"\n"
+"* On output, if newline is None, any \'\\n\' characters written are\n"
+" translated to the system default line separator, os.linesep. If\n"
+" newline is \'\' or \'\\n\', no translation takes place. If newline is any\n"
+" of the other legal values, any \'\\n\' characters written are translated\n"
+" to the given string.\n"
+"\n"
+"If closefd is False, the underlying file descriptor will be kept open\n"
+"when the file is closed. This does not work when a file name is given\n"
+"and must be True in that case.\n"
+"\n"
+"A custom opener can be used by passing a callable as *opener*. The\n"
+"underlying file descriptor for the file object is then obtained by\n"
+"calling *opener* with (*file*, *flags*). *opener* must return an open\n"
+"file descriptor (passing os.open as *opener* results in functionality\n"
+"similar to passing None).\n"
+"\n"
+"open() returns a file object whose type depends on the mode, and\n"
+"through which the standard file operations such as reading and writing\n"
+"are performed. When open() is used to open a file in a text mode (\'w\',\n"
+"\'r\', \'wt\', \'rt\', etc.), it returns a TextIOWrapper. When used to open\n"
+"a file in a binary mode, the returned class varies: in read binary\n"
+"mode, it returns a BufferedReader; in write binary and append binary\n"
+"modes, it returns a BufferedWriter, and in read/write mode, it returns\n"
+"a BufferedRandom.\n"
+"\n"
+"It is also possible to use a string or bytearray as a file for both\n"
+"reading and writing. For strings StringIO can be used like a file\n"
+"opened in a text mode, and for bytes a BytesIO can be used like a file\n"
+"opened in a binary mode.");
+
+#define _IO_OPEN_METHODDEF \
+ {"open", (PyCFunction)_io_open, METH_VARARGS|METH_KEYWORDS, _io_open__doc__},
+
+static PyObject *
+_io_open_impl(PyModuleDef *module, PyObject *file, const char *mode,
+ int buffering, const char *encoding, const char *errors,
+ const char *newline, int closefd, PyObject *opener);
+
+static PyObject *
+_io_open(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"file", "mode", "buffering", "encoding", "errors", "newline", "closefd", "opener", NULL};
+ PyObject *file;
+ const char *mode = "r";
+ int buffering = -1;
+ const char *encoding = NULL;
+ const char *errors = NULL;
+ const char *newline = NULL;
+ int closefd = 1;
+ PyObject *opener = Py_None;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|sizzziO:open", _keywords,
+ &file, &mode, &buffering, &encoding, &errors, &newline, &closefd, &opener))
+ goto exit;
+ return_value = _io_open_impl(module, file, mode, buffering, encoding, errors, newline, closefd, opener);
+
+exit:
+ return return_value;
+}
+/*[clinic end generated code: output=97cdc09bf68a8064 input=a9049054013a1b77]*/
diff --git a/Modules/_io/clinic/bufferedio.c.h b/Modules/_io/clinic/bufferedio.c.h
new file mode 100644
index 0000000000..437e275730
--- /dev/null
+++ b/Modules/_io/clinic/bufferedio.c.h
@@ -0,0 +1,454 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(_io__BufferedIOBase_readinto__doc__,
+"readinto($self, buffer, /)\n"
+"--\n"
+"\n");
+
+#define _IO__BUFFEREDIOBASE_READINTO_METHODDEF \
+ {"readinto", (PyCFunction)_io__BufferedIOBase_readinto, METH_O, _io__BufferedIOBase_readinto__doc__},
+
+static PyObject *
+_io__BufferedIOBase_readinto_impl(PyObject *self, Py_buffer *buffer);
+
+static PyObject *
+_io__BufferedIOBase_readinto(PyObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_buffer buffer = {NULL, NULL};
+
+ if (!PyArg_Parse(arg, "w*:readinto", &buffer))
+ goto exit;
+ return_value = _io__BufferedIOBase_readinto_impl(self, &buffer);
+
+exit:
+ /* Cleanup for buffer */
+ if (buffer.obj)
+ PyBuffer_Release(&buffer);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(_io__BufferedIOBase_readinto1__doc__,
+"readinto1($self, buffer, /)\n"
+"--\n"
+"\n");
+
+#define _IO__BUFFEREDIOBASE_READINTO1_METHODDEF \
+ {"readinto1", (PyCFunction)_io__BufferedIOBase_readinto1, METH_O, _io__BufferedIOBase_readinto1__doc__},
+
+static PyObject *
+_io__BufferedIOBase_readinto1_impl(PyObject *self, Py_buffer *buffer);
+
+static PyObject *
+_io__BufferedIOBase_readinto1(PyObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_buffer buffer = {NULL, NULL};
+
+ if (!PyArg_Parse(arg, "w*:readinto1", &buffer))
+ goto exit;
+ return_value = _io__BufferedIOBase_readinto1_impl(self, &buffer);
+
+exit:
+ /* Cleanup for buffer */
+ if (buffer.obj)
+ PyBuffer_Release(&buffer);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(_io__BufferedIOBase_detach__doc__,
+"detach($self, /)\n"
+"--\n"
+"\n"
+"Disconnect this buffer from its underlying raw stream and return it.\n"
+"\n"
+"After the raw stream has been detached, the buffer is in an unusable\n"
+"state.");
+
+#define _IO__BUFFEREDIOBASE_DETACH_METHODDEF \
+ {"detach", (PyCFunction)_io__BufferedIOBase_detach, METH_NOARGS, _io__BufferedIOBase_detach__doc__},
+
+static PyObject *
+_io__BufferedIOBase_detach_impl(PyObject *self);
+
+static PyObject *
+_io__BufferedIOBase_detach(PyObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io__BufferedIOBase_detach_impl(self);
+}
+
+PyDoc_STRVAR(_io__Buffered_peek__doc__,
+"peek($self, size=0, /)\n"
+"--\n"
+"\n");
+
+#define _IO__BUFFERED_PEEK_METHODDEF \
+ {"peek", (PyCFunction)_io__Buffered_peek, METH_VARARGS, _io__Buffered_peek__doc__},
+
+static PyObject *
+_io__Buffered_peek_impl(buffered *self, Py_ssize_t size);
+
+static PyObject *
+_io__Buffered_peek(buffered *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_ssize_t size = 0;
+
+ if (!PyArg_ParseTuple(args, "|n:peek",
+ &size))
+ goto exit;
+ return_value = _io__Buffered_peek_impl(self, size);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_io__Buffered_read__doc__,
+"read($self, size=-1, /)\n"
+"--\n"
+"\n");
+
+#define _IO__BUFFERED_READ_METHODDEF \
+ {"read", (PyCFunction)_io__Buffered_read, METH_VARARGS, _io__Buffered_read__doc__},
+
+static PyObject *
+_io__Buffered_read_impl(buffered *self, Py_ssize_t n);
+
+static PyObject *
+_io__Buffered_read(buffered *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_ssize_t n = -1;
+
+ if (!PyArg_ParseTuple(args, "|O&:read",
+ _PyIO_ConvertSsize_t, &n))
+ goto exit;
+ return_value = _io__Buffered_read_impl(self, n);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_io__Buffered_read1__doc__,
+"read1($self, size, /)\n"
+"--\n"
+"\n");
+
+#define _IO__BUFFERED_READ1_METHODDEF \
+ {"read1", (PyCFunction)_io__Buffered_read1, METH_O, _io__Buffered_read1__doc__},
+
+static PyObject *
+_io__Buffered_read1_impl(buffered *self, Py_ssize_t n);
+
+static PyObject *
+_io__Buffered_read1(buffered *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_ssize_t n;
+
+ if (!PyArg_Parse(arg, "n:read1", &n))
+ goto exit;
+ return_value = _io__Buffered_read1_impl(self, n);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_io__Buffered_readinto__doc__,
+"readinto($self, buffer, /)\n"
+"--\n"
+"\n");
+
+#define _IO__BUFFERED_READINTO_METHODDEF \
+ {"readinto", (PyCFunction)_io__Buffered_readinto, METH_O, _io__Buffered_readinto__doc__},
+
+static PyObject *
+_io__Buffered_readinto_impl(buffered *self, Py_buffer *buffer);
+
+static PyObject *
+_io__Buffered_readinto(buffered *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_buffer buffer = {NULL, NULL};
+
+ if (!PyArg_Parse(arg, "w*:readinto", &buffer))
+ goto exit;
+ return_value = _io__Buffered_readinto_impl(self, &buffer);
+
+exit:
+ /* Cleanup for buffer */
+ if (buffer.obj)
+ PyBuffer_Release(&buffer);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(_io__Buffered_readinto1__doc__,
+"readinto1($self, buffer, /)\n"
+"--\n"
+"\n");
+
+#define _IO__BUFFERED_READINTO1_METHODDEF \
+ {"readinto1", (PyCFunction)_io__Buffered_readinto1, METH_O, _io__Buffered_readinto1__doc__},
+
+static PyObject *
+_io__Buffered_readinto1_impl(buffered *self, Py_buffer *buffer);
+
+static PyObject *
+_io__Buffered_readinto1(buffered *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_buffer buffer = {NULL, NULL};
+
+ if (!PyArg_Parse(arg, "w*:readinto1", &buffer))
+ goto exit;
+ return_value = _io__Buffered_readinto1_impl(self, &buffer);
+
+exit:
+ /* Cleanup for buffer */
+ if (buffer.obj)
+ PyBuffer_Release(&buffer);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(_io__Buffered_readline__doc__,
+"readline($self, size=-1, /)\n"
+"--\n"
+"\n");
+
+#define _IO__BUFFERED_READLINE_METHODDEF \
+ {"readline", (PyCFunction)_io__Buffered_readline, METH_VARARGS, _io__Buffered_readline__doc__},
+
+static PyObject *
+_io__Buffered_readline_impl(buffered *self, Py_ssize_t size);
+
+static PyObject *
+_io__Buffered_readline(buffered *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_ssize_t size = -1;
+
+ if (!PyArg_ParseTuple(args, "|O&:readline",
+ _PyIO_ConvertSsize_t, &size))
+ goto exit;
+ return_value = _io__Buffered_readline_impl(self, size);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_io__Buffered_seek__doc__,
+"seek($self, target, whence=0, /)\n"
+"--\n"
+"\n");
+
+#define _IO__BUFFERED_SEEK_METHODDEF \
+ {"seek", (PyCFunction)_io__Buffered_seek, METH_VARARGS, _io__Buffered_seek__doc__},
+
+static PyObject *
+_io__Buffered_seek_impl(buffered *self, PyObject *targetobj, int whence);
+
+static PyObject *
+_io__Buffered_seek(buffered *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *targetobj;
+ int whence = 0;
+
+ if (!PyArg_ParseTuple(args, "O|i:seek",
+ &targetobj, &whence))
+ goto exit;
+ return_value = _io__Buffered_seek_impl(self, targetobj, whence);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_io__Buffered_truncate__doc__,
+"truncate($self, pos=None, /)\n"
+"--\n"
+"\n");
+
+#define _IO__BUFFERED_TRUNCATE_METHODDEF \
+ {"truncate", (PyCFunction)_io__Buffered_truncate, METH_VARARGS, _io__Buffered_truncate__doc__},
+
+static PyObject *
+_io__Buffered_truncate_impl(buffered *self, PyObject *pos);
+
+static PyObject *
+_io__Buffered_truncate(buffered *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *pos = Py_None;
+
+ if (!PyArg_UnpackTuple(args, "truncate",
+ 0, 1,
+ &pos))
+ goto exit;
+ return_value = _io__Buffered_truncate_impl(self, pos);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_io_BufferedReader___init____doc__,
+"BufferedReader(raw, buffer_size=DEFAULT_BUFFER_SIZE)\n"
+"--\n"
+"\n"
+"Create a new buffered reader using the given readable raw IO object.");
+
+static int
+_io_BufferedReader___init___impl(buffered *self, PyObject *raw,
+ Py_ssize_t buffer_size);
+
+static int
+_io_BufferedReader___init__(PyObject *self, PyObject *args, PyObject *kwargs)
+{
+ int return_value = -1;
+ static char *_keywords[] = {"raw", "buffer_size", NULL};
+ PyObject *raw;
+ Py_ssize_t buffer_size = DEFAULT_BUFFER_SIZE;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|n:BufferedReader", _keywords,
+ &raw, &buffer_size))
+ goto exit;
+ return_value = _io_BufferedReader___init___impl((buffered *)self, raw, buffer_size);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_io_BufferedWriter___init____doc__,
+"BufferedWriter(raw, buffer_size=DEFAULT_BUFFER_SIZE)\n"
+"--\n"
+"\n"
+"A buffer for a writeable sequential RawIO object.\n"
+"\n"
+"The constructor creates a BufferedWriter for the given writeable raw\n"
+"stream. If the buffer_size is not given, it defaults to\n"
+"DEFAULT_BUFFER_SIZE.");
+
+static int
+_io_BufferedWriter___init___impl(buffered *self, PyObject *raw,
+ Py_ssize_t buffer_size);
+
+static int
+_io_BufferedWriter___init__(PyObject *self, PyObject *args, PyObject *kwargs)
+{
+ int return_value = -1;
+ static char *_keywords[] = {"raw", "buffer_size", NULL};
+ PyObject *raw;
+ Py_ssize_t buffer_size = DEFAULT_BUFFER_SIZE;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|n:BufferedWriter", _keywords,
+ &raw, &buffer_size))
+ goto exit;
+ return_value = _io_BufferedWriter___init___impl((buffered *)self, raw, buffer_size);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_io_BufferedWriter_write__doc__,
+"write($self, buffer, /)\n"
+"--\n"
+"\n");
+
+#define _IO_BUFFEREDWRITER_WRITE_METHODDEF \
+ {"write", (PyCFunction)_io_BufferedWriter_write, METH_O, _io_BufferedWriter_write__doc__},
+
+static PyObject *
+_io_BufferedWriter_write_impl(buffered *self, Py_buffer *buffer);
+
+static PyObject *
+_io_BufferedWriter_write(buffered *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_buffer buffer = {NULL, NULL};
+
+ if (!PyArg_Parse(arg, "y*:write", &buffer))
+ goto exit;
+ return_value = _io_BufferedWriter_write_impl(self, &buffer);
+
+exit:
+ /* Cleanup for buffer */
+ if (buffer.obj)
+ PyBuffer_Release(&buffer);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(_io_BufferedRWPair___init____doc__,
+"BufferedRWPair(reader, writer, buffer_size=DEFAULT_BUFFER_SIZE, /)\n"
+"--\n"
+"\n"
+"A buffered reader and writer object together.\n"
+"\n"
+"A buffered reader object and buffered writer object put together to\n"
+"form a sequential IO object that can read and write. This is typically\n"
+"used with a socket or two-way pipe.\n"
+"\n"
+"reader and writer are RawIOBase objects that are readable and\n"
+"writeable respectively. If the buffer_size is omitted it defaults to\n"
+"DEFAULT_BUFFER_SIZE.");
+
+static int
+_io_BufferedRWPair___init___impl(rwpair *self, PyObject *reader,
+ PyObject *writer, Py_ssize_t buffer_size);
+
+static int
+_io_BufferedRWPair___init__(PyObject *self, PyObject *args, PyObject *kwargs)
+{
+ int return_value = -1;
+ PyObject *reader;
+ PyObject *writer;
+ Py_ssize_t buffer_size = DEFAULT_BUFFER_SIZE;
+
+ if ((Py_TYPE(self) == &PyBufferedRWPair_Type) &&
+ !_PyArg_NoKeywords("BufferedRWPair", kwargs))
+ goto exit;
+ if (!PyArg_ParseTuple(args, "OO|n:BufferedRWPair",
+ &reader, &writer, &buffer_size))
+ goto exit;
+ return_value = _io_BufferedRWPair___init___impl((rwpair *)self, reader, writer, buffer_size);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_io_BufferedRandom___init____doc__,
+"BufferedRandom(raw, buffer_size=DEFAULT_BUFFER_SIZE)\n"
+"--\n"
+"\n"
+"A buffered interface to random access streams.\n"
+"\n"
+"The constructor creates a reader and writer for a seekable stream,\n"
+"raw, given in the first argument. If the buffer_size is omitted it\n"
+"defaults to DEFAULT_BUFFER_SIZE.");
+
+static int
+_io_BufferedRandom___init___impl(buffered *self, PyObject *raw,
+ Py_ssize_t buffer_size);
+
+static int
+_io_BufferedRandom___init__(PyObject *self, PyObject *args, PyObject *kwargs)
+{
+ int return_value = -1;
+ static char *_keywords[] = {"raw", "buffer_size", NULL};
+ PyObject *raw;
+ Py_ssize_t buffer_size = DEFAULT_BUFFER_SIZE;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|n:BufferedRandom", _keywords,
+ &raw, &buffer_size))
+ goto exit;
+ return_value = _io_BufferedRandom___init___impl((buffered *)self, raw, buffer_size);
+
+exit:
+ return return_value;
+}
+/*[clinic end generated code: output=2bbb5e239b4ffe6f input=a9049054013a1b77]*/
diff --git a/Modules/_io/clinic/bytesio.c.h b/Modules/_io/clinic/bytesio.c.h
new file mode 100644
index 0000000000..1ab1d65a65
--- /dev/null
+++ b/Modules/_io/clinic/bytesio.c.h
@@ -0,0 +1,422 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(_io_BytesIO_readable__doc__,
+"readable($self, /)\n"
+"--\n"
+"\n"
+"Returns True if the IO object can be read.");
+
+#define _IO_BYTESIO_READABLE_METHODDEF \
+ {"readable", (PyCFunction)_io_BytesIO_readable, METH_NOARGS, _io_BytesIO_readable__doc__},
+
+static PyObject *
+_io_BytesIO_readable_impl(bytesio *self);
+
+static PyObject *
+_io_BytesIO_readable(bytesio *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io_BytesIO_readable_impl(self);
+}
+
+PyDoc_STRVAR(_io_BytesIO_writable__doc__,
+"writable($self, /)\n"
+"--\n"
+"\n"
+"Returns True if the IO object can be written.");
+
+#define _IO_BYTESIO_WRITABLE_METHODDEF \
+ {"writable", (PyCFunction)_io_BytesIO_writable, METH_NOARGS, _io_BytesIO_writable__doc__},
+
+static PyObject *
+_io_BytesIO_writable_impl(bytesio *self);
+
+static PyObject *
+_io_BytesIO_writable(bytesio *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io_BytesIO_writable_impl(self);
+}
+
+PyDoc_STRVAR(_io_BytesIO_seekable__doc__,
+"seekable($self, /)\n"
+"--\n"
+"\n"
+"Returns True if the IO object can be seeked.");
+
+#define _IO_BYTESIO_SEEKABLE_METHODDEF \
+ {"seekable", (PyCFunction)_io_BytesIO_seekable, METH_NOARGS, _io_BytesIO_seekable__doc__},
+
+static PyObject *
+_io_BytesIO_seekable_impl(bytesio *self);
+
+static PyObject *
+_io_BytesIO_seekable(bytesio *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io_BytesIO_seekable_impl(self);
+}
+
+PyDoc_STRVAR(_io_BytesIO_flush__doc__,
+"flush($self, /)\n"
+"--\n"
+"\n"
+"Does nothing.");
+
+#define _IO_BYTESIO_FLUSH_METHODDEF \
+ {"flush", (PyCFunction)_io_BytesIO_flush, METH_NOARGS, _io_BytesIO_flush__doc__},
+
+static PyObject *
+_io_BytesIO_flush_impl(bytesio *self);
+
+static PyObject *
+_io_BytesIO_flush(bytesio *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io_BytesIO_flush_impl(self);
+}
+
+PyDoc_STRVAR(_io_BytesIO_getbuffer__doc__,
+"getbuffer($self, /)\n"
+"--\n"
+"\n"
+"Get a read-write view over the contents of the BytesIO object.");
+
+#define _IO_BYTESIO_GETBUFFER_METHODDEF \
+ {"getbuffer", (PyCFunction)_io_BytesIO_getbuffer, METH_NOARGS, _io_BytesIO_getbuffer__doc__},
+
+static PyObject *
+_io_BytesIO_getbuffer_impl(bytesio *self);
+
+static PyObject *
+_io_BytesIO_getbuffer(bytesio *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io_BytesIO_getbuffer_impl(self);
+}
+
+PyDoc_STRVAR(_io_BytesIO_getvalue__doc__,
+"getvalue($self, /)\n"
+"--\n"
+"\n"
+"Retrieve the entire contents of the BytesIO object.");
+
+#define _IO_BYTESIO_GETVALUE_METHODDEF \
+ {"getvalue", (PyCFunction)_io_BytesIO_getvalue, METH_NOARGS, _io_BytesIO_getvalue__doc__},
+
+static PyObject *
+_io_BytesIO_getvalue_impl(bytesio *self);
+
+static PyObject *
+_io_BytesIO_getvalue(bytesio *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io_BytesIO_getvalue_impl(self);
+}
+
+PyDoc_STRVAR(_io_BytesIO_isatty__doc__,
+"isatty($self, /)\n"
+"--\n"
+"\n"
+"Always returns False.\n"
+"\n"
+"BytesIO objects are not connected to a TTY-like device.");
+
+#define _IO_BYTESIO_ISATTY_METHODDEF \
+ {"isatty", (PyCFunction)_io_BytesIO_isatty, METH_NOARGS, _io_BytesIO_isatty__doc__},
+
+static PyObject *
+_io_BytesIO_isatty_impl(bytesio *self);
+
+static PyObject *
+_io_BytesIO_isatty(bytesio *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io_BytesIO_isatty_impl(self);
+}
+
+PyDoc_STRVAR(_io_BytesIO_tell__doc__,
+"tell($self, /)\n"
+"--\n"
+"\n"
+"Current file position, an integer.");
+
+#define _IO_BYTESIO_TELL_METHODDEF \
+ {"tell", (PyCFunction)_io_BytesIO_tell, METH_NOARGS, _io_BytesIO_tell__doc__},
+
+static PyObject *
+_io_BytesIO_tell_impl(bytesio *self);
+
+static PyObject *
+_io_BytesIO_tell(bytesio *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io_BytesIO_tell_impl(self);
+}
+
+PyDoc_STRVAR(_io_BytesIO_read__doc__,
+"read($self, size=None, /)\n"
+"--\n"
+"\n"
+"Read at most size bytes, returned as a bytes object.\n"
+"\n"
+"If the size argument is negative, read until EOF is reached.\n"
+"Return an empty bytes object at EOF.");
+
+#define _IO_BYTESIO_READ_METHODDEF \
+ {"read", (PyCFunction)_io_BytesIO_read, METH_VARARGS, _io_BytesIO_read__doc__},
+
+static PyObject *
+_io_BytesIO_read_impl(bytesio *self, PyObject *arg);
+
+static PyObject *
+_io_BytesIO_read(bytesio *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *arg = Py_None;
+
+ if (!PyArg_UnpackTuple(args, "read",
+ 0, 1,
+ &arg))
+ goto exit;
+ return_value = _io_BytesIO_read_impl(self, arg);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_io_BytesIO_read1__doc__,
+"read1($self, size, /)\n"
+"--\n"
+"\n"
+"Read at most size bytes, returned as a bytes object.\n"
+"\n"
+"If the size argument is negative or omitted, read until EOF is reached.\n"
+"Return an empty bytes object at EOF.");
+
+#define _IO_BYTESIO_READ1_METHODDEF \
+ {"read1", (PyCFunction)_io_BytesIO_read1, METH_O, _io_BytesIO_read1__doc__},
+
+PyDoc_STRVAR(_io_BytesIO_readline__doc__,
+"readline($self, size=None, /)\n"
+"--\n"
+"\n"
+"Next line from the file, as a bytes object.\n"
+"\n"
+"Retain newline. A non-negative size argument limits the maximum\n"
+"number of bytes to return (an incomplete line may be returned then).\n"
+"Return an empty bytes object at EOF.");
+
+#define _IO_BYTESIO_READLINE_METHODDEF \
+ {"readline", (PyCFunction)_io_BytesIO_readline, METH_VARARGS, _io_BytesIO_readline__doc__},
+
+static PyObject *
+_io_BytesIO_readline_impl(bytesio *self, PyObject *arg);
+
+static PyObject *
+_io_BytesIO_readline(bytesio *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *arg = Py_None;
+
+ if (!PyArg_UnpackTuple(args, "readline",
+ 0, 1,
+ &arg))
+ goto exit;
+ return_value = _io_BytesIO_readline_impl(self, arg);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_io_BytesIO_readlines__doc__,
+"readlines($self, size=None, /)\n"
+"--\n"
+"\n"
+"List of bytes objects, each a line from the file.\n"
+"\n"
+"Call readline() repeatedly and return a list of the lines so read.\n"
+"The optional size argument, if given, is an approximate bound on the\n"
+"total number of bytes in the lines returned.");
+
+#define _IO_BYTESIO_READLINES_METHODDEF \
+ {"readlines", (PyCFunction)_io_BytesIO_readlines, METH_VARARGS, _io_BytesIO_readlines__doc__},
+
+static PyObject *
+_io_BytesIO_readlines_impl(bytesio *self, PyObject *arg);
+
+static PyObject *
+_io_BytesIO_readlines(bytesio *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *arg = Py_None;
+
+ if (!PyArg_UnpackTuple(args, "readlines",
+ 0, 1,
+ &arg))
+ goto exit;
+ return_value = _io_BytesIO_readlines_impl(self, arg);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_io_BytesIO_readinto__doc__,
+"readinto($self, buffer, /)\n"
+"--\n"
+"\n"
+"Read up to len(buffer) bytes into buffer.\n"
+"\n"
+"Returns number of bytes read (0 for EOF), or None if the object\n"
+"is set not to block as has no data to read.");
+
+#define _IO_BYTESIO_READINTO_METHODDEF \
+ {"readinto", (PyCFunction)_io_BytesIO_readinto, METH_O, _io_BytesIO_readinto__doc__},
+
+static PyObject *
+_io_BytesIO_readinto_impl(bytesio *self, Py_buffer *buffer);
+
+static PyObject *
+_io_BytesIO_readinto(bytesio *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_buffer buffer = {NULL, NULL};
+
+ if (!PyArg_Parse(arg, "w*:readinto", &buffer))
+ goto exit;
+ return_value = _io_BytesIO_readinto_impl(self, &buffer);
+
+exit:
+ /* Cleanup for buffer */
+ if (buffer.obj)
+ PyBuffer_Release(&buffer);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(_io_BytesIO_truncate__doc__,
+"truncate($self, size=None, /)\n"
+"--\n"
+"\n"
+"Truncate the file to at most size bytes.\n"
+"\n"
+"Size defaults to the current file position, as returned by tell().\n"
+"The current file position is unchanged. Returns the new size.");
+
+#define _IO_BYTESIO_TRUNCATE_METHODDEF \
+ {"truncate", (PyCFunction)_io_BytesIO_truncate, METH_VARARGS, _io_BytesIO_truncate__doc__},
+
+static PyObject *
+_io_BytesIO_truncate_impl(bytesio *self, PyObject *arg);
+
+static PyObject *
+_io_BytesIO_truncate(bytesio *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *arg = Py_None;
+
+ if (!PyArg_UnpackTuple(args, "truncate",
+ 0, 1,
+ &arg))
+ goto exit;
+ return_value = _io_BytesIO_truncate_impl(self, arg);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_io_BytesIO_seek__doc__,
+"seek($self, pos, whence=0, /)\n"
+"--\n"
+"\n"
+"Change stream position.\n"
+"\n"
+"Seek to byte offset pos relative to position indicated by whence:\n"
+" 0 Start of stream (the default). pos should be >= 0;\n"
+" 1 Current position - pos may be negative;\n"
+" 2 End of stream - pos usually negative.\n"
+"Returns the new absolute position.");
+
+#define _IO_BYTESIO_SEEK_METHODDEF \
+ {"seek", (PyCFunction)_io_BytesIO_seek, METH_VARARGS, _io_BytesIO_seek__doc__},
+
+static PyObject *
+_io_BytesIO_seek_impl(bytesio *self, Py_ssize_t pos, int whence);
+
+static PyObject *
+_io_BytesIO_seek(bytesio *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_ssize_t pos;
+ int whence = 0;
+
+ if (!PyArg_ParseTuple(args, "n|i:seek",
+ &pos, &whence))
+ goto exit;
+ return_value = _io_BytesIO_seek_impl(self, pos, whence);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_io_BytesIO_write__doc__,
+"write($self, b, /)\n"
+"--\n"
+"\n"
+"Write bytes to file.\n"
+"\n"
+"Return the number of bytes written.");
+
+#define _IO_BYTESIO_WRITE_METHODDEF \
+ {"write", (PyCFunction)_io_BytesIO_write, METH_O, _io_BytesIO_write__doc__},
+
+PyDoc_STRVAR(_io_BytesIO_writelines__doc__,
+"writelines($self, lines, /)\n"
+"--\n"
+"\n"
+"Write lines to the file.\n"
+"\n"
+"Note that newlines are not added. lines can be any iterable object\n"
+"producing bytes-like objects. This is equivalent to calling write() for\n"
+"each element.");
+
+#define _IO_BYTESIO_WRITELINES_METHODDEF \
+ {"writelines", (PyCFunction)_io_BytesIO_writelines, METH_O, _io_BytesIO_writelines__doc__},
+
+PyDoc_STRVAR(_io_BytesIO_close__doc__,
+"close($self, /)\n"
+"--\n"
+"\n"
+"Disable all I/O operations.");
+
+#define _IO_BYTESIO_CLOSE_METHODDEF \
+ {"close", (PyCFunction)_io_BytesIO_close, METH_NOARGS, _io_BytesIO_close__doc__},
+
+static PyObject *
+_io_BytesIO_close_impl(bytesio *self);
+
+static PyObject *
+_io_BytesIO_close(bytesio *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io_BytesIO_close_impl(self);
+}
+
+PyDoc_STRVAR(_io_BytesIO___init____doc__,
+"BytesIO(initial_bytes=b\'\')\n"
+"--\n"
+"\n"
+"Buffered I/O implementation using an in-memory bytes buffer.");
+
+static int
+_io_BytesIO___init___impl(bytesio *self, PyObject *initvalue);
+
+static int
+_io_BytesIO___init__(PyObject *self, PyObject *args, PyObject *kwargs)
+{
+ int return_value = -1;
+ static char *_keywords[] = {"initial_bytes", NULL};
+ PyObject *initvalue = NULL;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|O:BytesIO", _keywords,
+ &initvalue))
+ goto exit;
+ return_value = _io_BytesIO___init___impl((bytesio *)self, initvalue);
+
+exit:
+ return return_value;
+}
+/*[clinic end generated code: output=500ccc149587fac4 input=a9049054013a1b77]*/
diff --git a/Modules/_io/clinic/fileio.c.h b/Modules/_io/clinic/fileio.c.h
new file mode 100644
index 0000000000..4a1205e933
--- /dev/null
+++ b/Modules/_io/clinic/fileio.c.h
@@ -0,0 +1,367 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(_io_FileIO_close__doc__,
+"close($self, /)\n"
+"--\n"
+"\n"
+"Close the file.\n"
+"\n"
+"A closed file cannot be used for further I/O operations. close() may be\n"
+"called more than once without error.");
+
+#define _IO_FILEIO_CLOSE_METHODDEF \
+ {"close", (PyCFunction)_io_FileIO_close, METH_NOARGS, _io_FileIO_close__doc__},
+
+static PyObject *
+_io_FileIO_close_impl(fileio *self);
+
+static PyObject *
+_io_FileIO_close(fileio *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io_FileIO_close_impl(self);
+}
+
+PyDoc_STRVAR(_io_FileIO___init____doc__,
+"FileIO(file, mode=\'r\', closefd=True, opener=None)\n"
+"--\n"
+"\n"
+"Open a file.\n"
+"\n"
+"The mode can be \'r\' (default), \'w\', \'x\' or \'a\' for reading,\n"
+"writing, exclusive creation or appending. The file will be created if it\n"
+"doesn\'t exist when opened for writing or appending; it will be truncated\n"
+"when opened for writing. A FileExistsError will be raised if it already\n"
+"exists when opened for creating. Opening a file for creating implies\n"
+"writing so this mode behaves in a similar way to \'w\'.Add a \'+\' to the mode\n"
+"to allow simultaneous reading and writing. A custom opener can be used by\n"
+"passing a callable as *opener*. The underlying file descriptor for the file\n"
+"object is then obtained by calling opener with (*name*, *flags*).\n"
+"*opener* must return an open file descriptor (passing os.open as *opener*\n"
+"results in functionality similar to passing None).");
+
+static int
+_io_FileIO___init___impl(fileio *self, PyObject *nameobj, const char *mode,
+ int closefd, PyObject *opener);
+
+static int
+_io_FileIO___init__(PyObject *self, PyObject *args, PyObject *kwargs)
+{
+ int return_value = -1;
+ static char *_keywords[] = {"file", "mode", "closefd", "opener", NULL};
+ PyObject *nameobj;
+ const char *mode = "r";
+ int closefd = 1;
+ PyObject *opener = Py_None;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|siO:FileIO", _keywords,
+ &nameobj, &mode, &closefd, &opener))
+ goto exit;
+ return_value = _io_FileIO___init___impl((fileio *)self, nameobj, mode, closefd, opener);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_io_FileIO_fileno__doc__,
+"fileno($self, /)\n"
+"--\n"
+"\n"
+"Return the underlying file descriptor (an integer).");
+
+#define _IO_FILEIO_FILENO_METHODDEF \
+ {"fileno", (PyCFunction)_io_FileIO_fileno, METH_NOARGS, _io_FileIO_fileno__doc__},
+
+static PyObject *
+_io_FileIO_fileno_impl(fileio *self);
+
+static PyObject *
+_io_FileIO_fileno(fileio *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io_FileIO_fileno_impl(self);
+}
+
+PyDoc_STRVAR(_io_FileIO_readable__doc__,
+"readable($self, /)\n"
+"--\n"
+"\n"
+"True if file was opened in a read mode.");
+
+#define _IO_FILEIO_READABLE_METHODDEF \
+ {"readable", (PyCFunction)_io_FileIO_readable, METH_NOARGS, _io_FileIO_readable__doc__},
+
+static PyObject *
+_io_FileIO_readable_impl(fileio *self);
+
+static PyObject *
+_io_FileIO_readable(fileio *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io_FileIO_readable_impl(self);
+}
+
+PyDoc_STRVAR(_io_FileIO_writable__doc__,
+"writable($self, /)\n"
+"--\n"
+"\n"
+"True if file was opened in a write mode.");
+
+#define _IO_FILEIO_WRITABLE_METHODDEF \
+ {"writable", (PyCFunction)_io_FileIO_writable, METH_NOARGS, _io_FileIO_writable__doc__},
+
+static PyObject *
+_io_FileIO_writable_impl(fileio *self);
+
+static PyObject *
+_io_FileIO_writable(fileio *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io_FileIO_writable_impl(self);
+}
+
+PyDoc_STRVAR(_io_FileIO_seekable__doc__,
+"seekable($self, /)\n"
+"--\n"
+"\n"
+"True if file supports random-access.");
+
+#define _IO_FILEIO_SEEKABLE_METHODDEF \
+ {"seekable", (PyCFunction)_io_FileIO_seekable, METH_NOARGS, _io_FileIO_seekable__doc__},
+
+static PyObject *
+_io_FileIO_seekable_impl(fileio *self);
+
+static PyObject *
+_io_FileIO_seekable(fileio *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io_FileIO_seekable_impl(self);
+}
+
+PyDoc_STRVAR(_io_FileIO_readinto__doc__,
+"readinto($self, buffer, /)\n"
+"--\n"
+"\n"
+"Same as RawIOBase.readinto().");
+
+#define _IO_FILEIO_READINTO_METHODDEF \
+ {"readinto", (PyCFunction)_io_FileIO_readinto, METH_O, _io_FileIO_readinto__doc__},
+
+static PyObject *
+_io_FileIO_readinto_impl(fileio *self, Py_buffer *buffer);
+
+static PyObject *
+_io_FileIO_readinto(fileio *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_buffer buffer = {NULL, NULL};
+
+ if (!PyArg_Parse(arg, "w*:readinto", &buffer))
+ goto exit;
+ return_value = _io_FileIO_readinto_impl(self, &buffer);
+
+exit:
+ /* Cleanup for buffer */
+ if (buffer.obj)
+ PyBuffer_Release(&buffer);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(_io_FileIO_readall__doc__,
+"readall($self, /)\n"
+"--\n"
+"\n"
+"Read all data from the file, returned as bytes.\n"
+"\n"
+"In non-blocking mode, returns as much as is immediately available,\n"
+"or None if no data is available. Return an empty bytes object at EOF.");
+
+#define _IO_FILEIO_READALL_METHODDEF \
+ {"readall", (PyCFunction)_io_FileIO_readall, METH_NOARGS, _io_FileIO_readall__doc__},
+
+static PyObject *
+_io_FileIO_readall_impl(fileio *self);
+
+static PyObject *
+_io_FileIO_readall(fileio *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io_FileIO_readall_impl(self);
+}
+
+PyDoc_STRVAR(_io_FileIO_read__doc__,
+"read($self, size=-1, /)\n"
+"--\n"
+"\n"
+"Read at most size bytes, returned as bytes.\n"
+"\n"
+"Only makes one system call, so less data may be returned than requested.\n"
+"In non-blocking mode, returns None if no data is available.\n"
+"Return an empty bytes object at EOF.");
+
+#define _IO_FILEIO_READ_METHODDEF \
+ {"read", (PyCFunction)_io_FileIO_read, METH_VARARGS, _io_FileIO_read__doc__},
+
+static PyObject *
+_io_FileIO_read_impl(fileio *self, Py_ssize_t size);
+
+static PyObject *
+_io_FileIO_read(fileio *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_ssize_t size = -1;
+
+ if (!PyArg_ParseTuple(args, "|O&:read",
+ _PyIO_ConvertSsize_t, &size))
+ goto exit;
+ return_value = _io_FileIO_read_impl(self, size);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_io_FileIO_write__doc__,
+"write($self, b, /)\n"
+"--\n"
+"\n"
+"Write bytes b to file, return number written.\n"
+"\n"
+"Only makes one system call, so not all of the data may be written.\n"
+"The number of bytes actually written is returned. In non-blocking mode,\n"
+"returns None if the write would block.");
+
+#define _IO_FILEIO_WRITE_METHODDEF \
+ {"write", (PyCFunction)_io_FileIO_write, METH_O, _io_FileIO_write__doc__},
+
+static PyObject *
+_io_FileIO_write_impl(fileio *self, Py_buffer *b);
+
+static PyObject *
+_io_FileIO_write(fileio *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_buffer b = {NULL, NULL};
+
+ if (!PyArg_Parse(arg, "y*:write", &b))
+ goto exit;
+ return_value = _io_FileIO_write_impl(self, &b);
+
+exit:
+ /* Cleanup for b */
+ if (b.obj)
+ PyBuffer_Release(&b);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(_io_FileIO_seek__doc__,
+"seek($self, pos, whence=0, /)\n"
+"--\n"
+"\n"
+"Move to new file position and return the file position.\n"
+"\n"
+"Argument offset is a byte count. Optional argument whence defaults to\n"
+"SEEK_SET or 0 (offset from start of file, offset should be >= 0); other values\n"
+"are SEEK_CUR or 1 (move relative to current position, positive or negative),\n"
+"and SEEK_END or 2 (move relative to end of file, usually negative, although\n"
+"many platforms allow seeking beyond the end of a file).\n"
+"\n"
+"Note that not all file objects are seekable.");
+
+#define _IO_FILEIO_SEEK_METHODDEF \
+ {"seek", (PyCFunction)_io_FileIO_seek, METH_VARARGS, _io_FileIO_seek__doc__},
+
+static PyObject *
+_io_FileIO_seek_impl(fileio *self, PyObject *pos, int whence);
+
+static PyObject *
+_io_FileIO_seek(fileio *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *pos;
+ int whence = 0;
+
+ if (!PyArg_ParseTuple(args, "O|i:seek",
+ &pos, &whence))
+ goto exit;
+ return_value = _io_FileIO_seek_impl(self, pos, whence);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_io_FileIO_tell__doc__,
+"tell($self, /)\n"
+"--\n"
+"\n"
+"Current file position.\n"
+"\n"
+"Can raise OSError for non seekable files.");
+
+#define _IO_FILEIO_TELL_METHODDEF \
+ {"tell", (PyCFunction)_io_FileIO_tell, METH_NOARGS, _io_FileIO_tell__doc__},
+
+static PyObject *
+_io_FileIO_tell_impl(fileio *self);
+
+static PyObject *
+_io_FileIO_tell(fileio *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io_FileIO_tell_impl(self);
+}
+
+#if defined(HAVE_FTRUNCATE)
+
+PyDoc_STRVAR(_io_FileIO_truncate__doc__,
+"truncate($self, size=None, /)\n"
+"--\n"
+"\n"
+"Truncate the file to at most size bytes and return the truncated size.\n"
+"\n"
+"Size defaults to the current file position, as returned by tell().\n"
+"The current file position is changed to the value of size.");
+
+#define _IO_FILEIO_TRUNCATE_METHODDEF \
+ {"truncate", (PyCFunction)_io_FileIO_truncate, METH_VARARGS, _io_FileIO_truncate__doc__},
+
+static PyObject *
+_io_FileIO_truncate_impl(fileio *self, PyObject *posobj);
+
+static PyObject *
+_io_FileIO_truncate(fileio *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *posobj = NULL;
+
+ if (!PyArg_UnpackTuple(args, "truncate",
+ 0, 1,
+ &posobj))
+ goto exit;
+ return_value = _io_FileIO_truncate_impl(self, posobj);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_FTRUNCATE) */
+
+PyDoc_STRVAR(_io_FileIO_isatty__doc__,
+"isatty($self, /)\n"
+"--\n"
+"\n"
+"True if the file is connected to a TTY device.");
+
+#define _IO_FILEIO_ISATTY_METHODDEF \
+ {"isatty", (PyCFunction)_io_FileIO_isatty, METH_NOARGS, _io_FileIO_isatty__doc__},
+
+static PyObject *
+_io_FileIO_isatty_impl(fileio *self);
+
+static PyObject *
+_io_FileIO_isatty(fileio *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io_FileIO_isatty_impl(self);
+}
+
+#ifndef _IO_FILEIO_TRUNCATE_METHODDEF
+ #define _IO_FILEIO_TRUNCATE_METHODDEF
+#endif /* !defined(_IO_FILEIO_TRUNCATE_METHODDEF) */
+/*[clinic end generated code: output=b1a20b10c81add64 input=a9049054013a1b77]*/
diff --git a/Modules/_io/clinic/iobase.c.h b/Modules/_io/clinic/iobase.c.h
new file mode 100644
index 0000000000..3cea079d45
--- /dev/null
+++ b/Modules/_io/clinic/iobase.c.h
@@ -0,0 +1,279 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(_io__IOBase_tell__doc__,
+"tell($self, /)\n"
+"--\n"
+"\n"
+"Return current stream position.");
+
+#define _IO__IOBASE_TELL_METHODDEF \
+ {"tell", (PyCFunction)_io__IOBase_tell, METH_NOARGS, _io__IOBase_tell__doc__},
+
+static PyObject *
+_io__IOBase_tell_impl(PyObject *self);
+
+static PyObject *
+_io__IOBase_tell(PyObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io__IOBase_tell_impl(self);
+}
+
+PyDoc_STRVAR(_io__IOBase_flush__doc__,
+"flush($self, /)\n"
+"--\n"
+"\n"
+"Flush write buffers, if applicable.\n"
+"\n"
+"This is not implemented for read-only and non-blocking streams.");
+
+#define _IO__IOBASE_FLUSH_METHODDEF \
+ {"flush", (PyCFunction)_io__IOBase_flush, METH_NOARGS, _io__IOBase_flush__doc__},
+
+static PyObject *
+_io__IOBase_flush_impl(PyObject *self);
+
+static PyObject *
+_io__IOBase_flush(PyObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io__IOBase_flush_impl(self);
+}
+
+PyDoc_STRVAR(_io__IOBase_close__doc__,
+"close($self, /)\n"
+"--\n"
+"\n"
+"Flush and close the IO object.\n"
+"\n"
+"This method has no effect if the file is already closed.");
+
+#define _IO__IOBASE_CLOSE_METHODDEF \
+ {"close", (PyCFunction)_io__IOBase_close, METH_NOARGS, _io__IOBase_close__doc__},
+
+static PyObject *
+_io__IOBase_close_impl(PyObject *self);
+
+static PyObject *
+_io__IOBase_close(PyObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io__IOBase_close_impl(self);
+}
+
+PyDoc_STRVAR(_io__IOBase_seekable__doc__,
+"seekable($self, /)\n"
+"--\n"
+"\n"
+"Return whether object supports random access.\n"
+"\n"
+"If False, seek(), tell() and truncate() will raise UnsupportedOperation.\n"
+"This method may need to do a test seek().");
+
+#define _IO__IOBASE_SEEKABLE_METHODDEF \
+ {"seekable", (PyCFunction)_io__IOBase_seekable, METH_NOARGS, _io__IOBase_seekable__doc__},
+
+static PyObject *
+_io__IOBase_seekable_impl(PyObject *self);
+
+static PyObject *
+_io__IOBase_seekable(PyObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io__IOBase_seekable_impl(self);
+}
+
+PyDoc_STRVAR(_io__IOBase_readable__doc__,
+"readable($self, /)\n"
+"--\n"
+"\n"
+"Return whether object was opened for reading.\n"
+"\n"
+"If False, read() will raise UnsupportedOperation.");
+
+#define _IO__IOBASE_READABLE_METHODDEF \
+ {"readable", (PyCFunction)_io__IOBase_readable, METH_NOARGS, _io__IOBase_readable__doc__},
+
+static PyObject *
+_io__IOBase_readable_impl(PyObject *self);
+
+static PyObject *
+_io__IOBase_readable(PyObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io__IOBase_readable_impl(self);
+}
+
+PyDoc_STRVAR(_io__IOBase_writable__doc__,
+"writable($self, /)\n"
+"--\n"
+"\n"
+"Return whether object was opened for writing.\n"
+"\n"
+"If False, write() will raise UnsupportedOperation.");
+
+#define _IO__IOBASE_WRITABLE_METHODDEF \
+ {"writable", (PyCFunction)_io__IOBase_writable, METH_NOARGS, _io__IOBase_writable__doc__},
+
+static PyObject *
+_io__IOBase_writable_impl(PyObject *self);
+
+static PyObject *
+_io__IOBase_writable(PyObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io__IOBase_writable_impl(self);
+}
+
+PyDoc_STRVAR(_io__IOBase_fileno__doc__,
+"fileno($self, /)\n"
+"--\n"
+"\n"
+"Returns underlying file descriptor if one exists.\n"
+"\n"
+"An IOError is raised if the IO object does not use a file descriptor.");
+
+#define _IO__IOBASE_FILENO_METHODDEF \
+ {"fileno", (PyCFunction)_io__IOBase_fileno, METH_NOARGS, _io__IOBase_fileno__doc__},
+
+static PyObject *
+_io__IOBase_fileno_impl(PyObject *self);
+
+static PyObject *
+_io__IOBase_fileno(PyObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io__IOBase_fileno_impl(self);
+}
+
+PyDoc_STRVAR(_io__IOBase_isatty__doc__,
+"isatty($self, /)\n"
+"--\n"
+"\n"
+"Return whether this is an \'interactive\' stream.\n"
+"\n"
+"Return False if it can\'t be determined.");
+
+#define _IO__IOBASE_ISATTY_METHODDEF \
+ {"isatty", (PyCFunction)_io__IOBase_isatty, METH_NOARGS, _io__IOBase_isatty__doc__},
+
+static PyObject *
+_io__IOBase_isatty_impl(PyObject *self);
+
+static PyObject *
+_io__IOBase_isatty(PyObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io__IOBase_isatty_impl(self);
+}
+
+PyDoc_STRVAR(_io__IOBase_readline__doc__,
+"readline($self, size=-1, /)\n"
+"--\n"
+"\n"
+"Read and return a line from the stream.\n"
+"\n"
+"If size is specified, at most size bytes will be read.\n"
+"\n"
+"The line terminator is always b\'\\n\' for binary files; for text\n"
+"files, the newlines argument to open can be used to select the line\n"
+"terminator(s) recognized.");
+
+#define _IO__IOBASE_READLINE_METHODDEF \
+ {"readline", (PyCFunction)_io__IOBase_readline, METH_VARARGS, _io__IOBase_readline__doc__},
+
+static PyObject *
+_io__IOBase_readline_impl(PyObject *self, Py_ssize_t limit);
+
+static PyObject *
+_io__IOBase_readline(PyObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_ssize_t limit = -1;
+
+ if (!PyArg_ParseTuple(args, "|O&:readline",
+ _PyIO_ConvertSsize_t, &limit))
+ goto exit;
+ return_value = _io__IOBase_readline_impl(self, limit);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_io__IOBase_readlines__doc__,
+"readlines($self, hint=-1, /)\n"
+"--\n"
+"\n"
+"Return a list of lines from the stream.\n"
+"\n"
+"hint can be specified to control the number of lines read: no more\n"
+"lines will be read if the total size (in bytes/characters) of all\n"
+"lines so far exceeds hint.");
+
+#define _IO__IOBASE_READLINES_METHODDEF \
+ {"readlines", (PyCFunction)_io__IOBase_readlines, METH_VARARGS, _io__IOBase_readlines__doc__},
+
+static PyObject *
+_io__IOBase_readlines_impl(PyObject *self, Py_ssize_t hint);
+
+static PyObject *
+_io__IOBase_readlines(PyObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_ssize_t hint = -1;
+
+ if (!PyArg_ParseTuple(args, "|O&:readlines",
+ _PyIO_ConvertSsize_t, &hint))
+ goto exit;
+ return_value = _io__IOBase_readlines_impl(self, hint);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_io__IOBase_writelines__doc__,
+"writelines($self, lines, /)\n"
+"--\n"
+"\n");
+
+#define _IO__IOBASE_WRITELINES_METHODDEF \
+ {"writelines", (PyCFunction)_io__IOBase_writelines, METH_O, _io__IOBase_writelines__doc__},
+
+PyDoc_STRVAR(_io__RawIOBase_read__doc__,
+"read($self, size=-1, /)\n"
+"--\n"
+"\n");
+
+#define _IO__RAWIOBASE_READ_METHODDEF \
+ {"read", (PyCFunction)_io__RawIOBase_read, METH_VARARGS, _io__RawIOBase_read__doc__},
+
+static PyObject *
+_io__RawIOBase_read_impl(PyObject *self, Py_ssize_t n);
+
+static PyObject *
+_io__RawIOBase_read(PyObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_ssize_t n = -1;
+
+ if (!PyArg_ParseTuple(args, "|n:read",
+ &n))
+ goto exit;
+ return_value = _io__RawIOBase_read_impl(self, n);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_io__RawIOBase_readall__doc__,
+"readall($self, /)\n"
+"--\n"
+"\n"
+"Read until EOF, using multiple read() call.");
+
+#define _IO__RAWIOBASE_READALL_METHODDEF \
+ {"readall", (PyCFunction)_io__RawIOBase_readall, METH_NOARGS, _io__RawIOBase_readall__doc__},
+
+static PyObject *
+_io__RawIOBase_readall_impl(PyObject *self);
+
+static PyObject *
+_io__RawIOBase_readall(PyObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io__RawIOBase_readall_impl(self);
+}
+/*[clinic end generated code: output=fe034152b6884e65 input=a9049054013a1b77]*/
diff --git a/Modules/_io/clinic/stringio.c.h b/Modules/_io/clinic/stringio.c.h
new file mode 100644
index 0000000000..a8e32a3376
--- /dev/null
+++ b/Modules/_io/clinic/stringio.c.h
@@ -0,0 +1,286 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(_io_StringIO_getvalue__doc__,
+"getvalue($self, /)\n"
+"--\n"
+"\n"
+"Retrieve the entire contents of the object.");
+
+#define _IO_STRINGIO_GETVALUE_METHODDEF \
+ {"getvalue", (PyCFunction)_io_StringIO_getvalue, METH_NOARGS, _io_StringIO_getvalue__doc__},
+
+static PyObject *
+_io_StringIO_getvalue_impl(stringio *self);
+
+static PyObject *
+_io_StringIO_getvalue(stringio *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io_StringIO_getvalue_impl(self);
+}
+
+PyDoc_STRVAR(_io_StringIO_tell__doc__,
+"tell($self, /)\n"
+"--\n"
+"\n"
+"Tell the current file position.");
+
+#define _IO_STRINGIO_TELL_METHODDEF \
+ {"tell", (PyCFunction)_io_StringIO_tell, METH_NOARGS, _io_StringIO_tell__doc__},
+
+static PyObject *
+_io_StringIO_tell_impl(stringio *self);
+
+static PyObject *
+_io_StringIO_tell(stringio *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io_StringIO_tell_impl(self);
+}
+
+PyDoc_STRVAR(_io_StringIO_read__doc__,
+"read($self, size=None, /)\n"
+"--\n"
+"\n"
+"Read at most size characters, returned as a string.\n"
+"\n"
+"If the argument is negative or omitted, read until EOF\n"
+"is reached. Return an empty string at EOF.");
+
+#define _IO_STRINGIO_READ_METHODDEF \
+ {"read", (PyCFunction)_io_StringIO_read, METH_VARARGS, _io_StringIO_read__doc__},
+
+static PyObject *
+_io_StringIO_read_impl(stringio *self, PyObject *arg);
+
+static PyObject *
+_io_StringIO_read(stringio *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *arg = Py_None;
+
+ if (!PyArg_UnpackTuple(args, "read",
+ 0, 1,
+ &arg))
+ goto exit;
+ return_value = _io_StringIO_read_impl(self, arg);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_io_StringIO_readline__doc__,
+"readline($self, size=None, /)\n"
+"--\n"
+"\n"
+"Read until newline or EOF.\n"
+"\n"
+"Returns an empty string if EOF is hit immediately.");
+
+#define _IO_STRINGIO_READLINE_METHODDEF \
+ {"readline", (PyCFunction)_io_StringIO_readline, METH_VARARGS, _io_StringIO_readline__doc__},
+
+static PyObject *
+_io_StringIO_readline_impl(stringio *self, PyObject *arg);
+
+static PyObject *
+_io_StringIO_readline(stringio *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *arg = Py_None;
+
+ if (!PyArg_UnpackTuple(args, "readline",
+ 0, 1,
+ &arg))
+ goto exit;
+ return_value = _io_StringIO_readline_impl(self, arg);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_io_StringIO_truncate__doc__,
+"truncate($self, pos=None, /)\n"
+"--\n"
+"\n"
+"Truncate size to pos.\n"
+"\n"
+"The pos argument defaults to the current file position, as\n"
+"returned by tell(). The current file position is unchanged.\n"
+"Returns the new absolute position.");
+
+#define _IO_STRINGIO_TRUNCATE_METHODDEF \
+ {"truncate", (PyCFunction)_io_StringIO_truncate, METH_VARARGS, _io_StringIO_truncate__doc__},
+
+static PyObject *
+_io_StringIO_truncate_impl(stringio *self, PyObject *arg);
+
+static PyObject *
+_io_StringIO_truncate(stringio *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *arg = Py_None;
+
+ if (!PyArg_UnpackTuple(args, "truncate",
+ 0, 1,
+ &arg))
+ goto exit;
+ return_value = _io_StringIO_truncate_impl(self, arg);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_io_StringIO_seek__doc__,
+"seek($self, pos, whence=0, /)\n"
+"--\n"
+"\n"
+"Change stream position.\n"
+"\n"
+"Seek to character offset pos relative to position indicated by whence:\n"
+" 0 Start of stream (the default). pos should be >= 0;\n"
+" 1 Current position - pos must be 0;\n"
+" 2 End of stream - pos must be 0.\n"
+"Returns the new absolute position.");
+
+#define _IO_STRINGIO_SEEK_METHODDEF \
+ {"seek", (PyCFunction)_io_StringIO_seek, METH_VARARGS, _io_StringIO_seek__doc__},
+
+static PyObject *
+_io_StringIO_seek_impl(stringio *self, Py_ssize_t pos, int whence);
+
+static PyObject *
+_io_StringIO_seek(stringio *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_ssize_t pos;
+ int whence = 0;
+
+ if (!PyArg_ParseTuple(args, "n|i:seek",
+ &pos, &whence))
+ goto exit;
+ return_value = _io_StringIO_seek_impl(self, pos, whence);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_io_StringIO_write__doc__,
+"write($self, s, /)\n"
+"--\n"
+"\n"
+"Write string to file.\n"
+"\n"
+"Returns the number of characters written, which is always equal to\n"
+"the length of the string.");
+
+#define _IO_STRINGIO_WRITE_METHODDEF \
+ {"write", (PyCFunction)_io_StringIO_write, METH_O, _io_StringIO_write__doc__},
+
+PyDoc_STRVAR(_io_StringIO_close__doc__,
+"close($self, /)\n"
+"--\n"
+"\n"
+"Close the IO object.\n"
+"\n"
+"Attempting any further operation after the object is closed\n"
+"will raise a ValueError.\n"
+"\n"
+"This method has no effect if the file is already closed.");
+
+#define _IO_STRINGIO_CLOSE_METHODDEF \
+ {"close", (PyCFunction)_io_StringIO_close, METH_NOARGS, _io_StringIO_close__doc__},
+
+static PyObject *
+_io_StringIO_close_impl(stringio *self);
+
+static PyObject *
+_io_StringIO_close(stringio *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io_StringIO_close_impl(self);
+}
+
+PyDoc_STRVAR(_io_StringIO___init____doc__,
+"StringIO(initial_value=\'\', newline=\'\\n\')\n"
+"--\n"
+"\n"
+"Text I/O implementation using an in-memory buffer.\n"
+"\n"
+"The initial_value argument sets the value of object. The newline\n"
+"argument is like the one of TextIOWrapper\'s constructor.");
+
+static int
+_io_StringIO___init___impl(stringio *self, PyObject *value,
+ PyObject *newline_obj);
+
+static int
+_io_StringIO___init__(PyObject *self, PyObject *args, PyObject *kwargs)
+{
+ int return_value = -1;
+ static char *_keywords[] = {"initial_value", "newline", NULL};
+ PyObject *value = NULL;
+ PyObject *newline_obj = NULL;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|OO:StringIO", _keywords,
+ &value, &newline_obj))
+ goto exit;
+ return_value = _io_StringIO___init___impl((stringio *)self, value, newline_obj);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_io_StringIO_readable__doc__,
+"readable($self, /)\n"
+"--\n"
+"\n"
+"Returns True if the IO object can be read.");
+
+#define _IO_STRINGIO_READABLE_METHODDEF \
+ {"readable", (PyCFunction)_io_StringIO_readable, METH_NOARGS, _io_StringIO_readable__doc__},
+
+static PyObject *
+_io_StringIO_readable_impl(stringio *self);
+
+static PyObject *
+_io_StringIO_readable(stringio *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io_StringIO_readable_impl(self);
+}
+
+PyDoc_STRVAR(_io_StringIO_writable__doc__,
+"writable($self, /)\n"
+"--\n"
+"\n"
+"Returns True if the IO object can be written.");
+
+#define _IO_STRINGIO_WRITABLE_METHODDEF \
+ {"writable", (PyCFunction)_io_StringIO_writable, METH_NOARGS, _io_StringIO_writable__doc__},
+
+static PyObject *
+_io_StringIO_writable_impl(stringio *self);
+
+static PyObject *
+_io_StringIO_writable(stringio *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io_StringIO_writable_impl(self);
+}
+
+PyDoc_STRVAR(_io_StringIO_seekable__doc__,
+"seekable($self, /)\n"
+"--\n"
+"\n"
+"Returns True if the IO object can be seeked.");
+
+#define _IO_STRINGIO_SEEKABLE_METHODDEF \
+ {"seekable", (PyCFunction)_io_StringIO_seekable, METH_NOARGS, _io_StringIO_seekable__doc__},
+
+static PyObject *
+_io_StringIO_seekable_impl(stringio *self);
+
+static PyObject *
+_io_StringIO_seekable(stringio *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io_StringIO_seekable_impl(self);
+}
+/*[clinic end generated code: output=f061cf3a20cd14ed input=a9049054013a1b77]*/
diff --git a/Modules/_io/clinic/textio.c.h b/Modules/_io/clinic/textio.c.h
new file mode 100644
index 0000000000..dc7e8c7584
--- /dev/null
+++ b/Modules/_io/clinic/textio.c.h
@@ -0,0 +1,456 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(_io_IncrementalNewlineDecoder___init____doc__,
+"IncrementalNewlineDecoder(decoder, translate, errors=\'strict\')\n"
+"--\n"
+"\n"
+"Codec used when reading a file in universal newlines mode.\n"
+"\n"
+"It wraps another incremental decoder, translating \\r\\n and \\r into \\n.\n"
+"It also records the types of newlines encountered. When used with\n"
+"translate=False, it ensures that the newline sequence is returned in\n"
+"one piece. When used with decoder=None, it expects unicode strings as\n"
+"decode input and translates newlines without first invoking an external\n"
+"decoder.");
+
+static int
+_io_IncrementalNewlineDecoder___init___impl(nldecoder_object *self,
+ PyObject *decoder, int translate,
+ PyObject *errors);
+
+static int
+_io_IncrementalNewlineDecoder___init__(PyObject *self, PyObject *args, PyObject *kwargs)
+{
+ int return_value = -1;
+ static char *_keywords[] = {"decoder", "translate", "errors", NULL};
+ PyObject *decoder;
+ int translate;
+ PyObject *errors = NULL;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "Oi|O:IncrementalNewlineDecoder", _keywords,
+ &decoder, &translate, &errors))
+ goto exit;
+ return_value = _io_IncrementalNewlineDecoder___init___impl((nldecoder_object *)self, decoder, translate, errors);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_io_IncrementalNewlineDecoder_decode__doc__,
+"decode($self, /, input, final=False)\n"
+"--\n"
+"\n");
+
+#define _IO_INCREMENTALNEWLINEDECODER_DECODE_METHODDEF \
+ {"decode", (PyCFunction)_io_IncrementalNewlineDecoder_decode, METH_VARARGS|METH_KEYWORDS, _io_IncrementalNewlineDecoder_decode__doc__},
+
+static PyObject *
+_io_IncrementalNewlineDecoder_decode_impl(nldecoder_object *self,
+ PyObject *input, int final);
+
+static PyObject *
+_io_IncrementalNewlineDecoder_decode(nldecoder_object *self, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"input", "final", NULL};
+ PyObject *input;
+ int final = 0;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|i:decode", _keywords,
+ &input, &final))
+ goto exit;
+ return_value = _io_IncrementalNewlineDecoder_decode_impl(self, input, final);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_io_IncrementalNewlineDecoder_getstate__doc__,
+"getstate($self, /)\n"
+"--\n"
+"\n");
+
+#define _IO_INCREMENTALNEWLINEDECODER_GETSTATE_METHODDEF \
+ {"getstate", (PyCFunction)_io_IncrementalNewlineDecoder_getstate, METH_NOARGS, _io_IncrementalNewlineDecoder_getstate__doc__},
+
+static PyObject *
+_io_IncrementalNewlineDecoder_getstate_impl(nldecoder_object *self);
+
+static PyObject *
+_io_IncrementalNewlineDecoder_getstate(nldecoder_object *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io_IncrementalNewlineDecoder_getstate_impl(self);
+}
+
+PyDoc_STRVAR(_io_IncrementalNewlineDecoder_setstate__doc__,
+"setstate($self, state, /)\n"
+"--\n"
+"\n");
+
+#define _IO_INCREMENTALNEWLINEDECODER_SETSTATE_METHODDEF \
+ {"setstate", (PyCFunction)_io_IncrementalNewlineDecoder_setstate, METH_O, _io_IncrementalNewlineDecoder_setstate__doc__},
+
+PyDoc_STRVAR(_io_IncrementalNewlineDecoder_reset__doc__,
+"reset($self, /)\n"
+"--\n"
+"\n");
+
+#define _IO_INCREMENTALNEWLINEDECODER_RESET_METHODDEF \
+ {"reset", (PyCFunction)_io_IncrementalNewlineDecoder_reset, METH_NOARGS, _io_IncrementalNewlineDecoder_reset__doc__},
+
+static PyObject *
+_io_IncrementalNewlineDecoder_reset_impl(nldecoder_object *self);
+
+static PyObject *
+_io_IncrementalNewlineDecoder_reset(nldecoder_object *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io_IncrementalNewlineDecoder_reset_impl(self);
+}
+
+PyDoc_STRVAR(_io_TextIOWrapper___init____doc__,
+"TextIOWrapper(buffer, encoding=None, errors=None, newline=None,\n"
+" line_buffering=False, write_through=False)\n"
+"--\n"
+"\n"
+"Character and line based layer over a BufferedIOBase object, buffer.\n"
+"\n"
+"encoding gives the name of the encoding that the stream will be\n"
+"decoded or encoded with. It defaults to locale.getpreferredencoding(False).\n"
+"\n"
+"errors determines the strictness of encoding and decoding (see\n"
+"help(codecs.Codec) or the documentation for codecs.register) and\n"
+"defaults to \"strict\".\n"
+"\n"
+"newline controls how line endings are handled. It can be None, \'\',\n"
+"\'\\n\', \'\\r\', and \'\\r\\n\'. It works as follows:\n"
+"\n"
+"* On input, if newline is None, universal newlines mode is\n"
+" enabled. Lines in the input can end in \'\\n\', \'\\r\', or \'\\r\\n\', and\n"
+" these are translated into \'\\n\' before being returned to the\n"
+" caller. If it is \'\', universal newline mode is enabled, but line\n"
+" endings are returned to the caller untranslated. If it has any of\n"
+" the other legal values, input lines are only terminated by the given\n"
+" string, and the line ending is returned to the caller untranslated.\n"
+"\n"
+"* On output, if newline is None, any \'\\n\' characters written are\n"
+" translated to the system default line separator, os.linesep. If\n"
+" newline is \'\' or \'\\n\', no translation takes place. If newline is any\n"
+" of the other legal values, any \'\\n\' characters written are translated\n"
+" to the given string.\n"
+"\n"
+"If line_buffering is True, a call to flush is implied when a call to\n"
+"write contains a newline character.");
+
+static int
+_io_TextIOWrapper___init___impl(textio *self, PyObject *buffer,
+ const char *encoding, const char *errors,
+ const char *newline, int line_buffering,
+ int write_through);
+
+static int
+_io_TextIOWrapper___init__(PyObject *self, PyObject *args, PyObject *kwargs)
+{
+ int return_value = -1;
+ static char *_keywords[] = {"buffer", "encoding", "errors", "newline", "line_buffering", "write_through", NULL};
+ PyObject *buffer;
+ const char *encoding = NULL;
+ const char *errors = NULL;
+ const char *newline = NULL;
+ int line_buffering = 0;
+ int write_through = 0;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|zzzii:TextIOWrapper", _keywords,
+ &buffer, &encoding, &errors, &newline, &line_buffering, &write_through))
+ goto exit;
+ return_value = _io_TextIOWrapper___init___impl((textio *)self, buffer, encoding, errors, newline, line_buffering, write_through);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_io_TextIOWrapper_detach__doc__,
+"detach($self, /)\n"
+"--\n"
+"\n");
+
+#define _IO_TEXTIOWRAPPER_DETACH_METHODDEF \
+ {"detach", (PyCFunction)_io_TextIOWrapper_detach, METH_NOARGS, _io_TextIOWrapper_detach__doc__},
+
+static PyObject *
+_io_TextIOWrapper_detach_impl(textio *self);
+
+static PyObject *
+_io_TextIOWrapper_detach(textio *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io_TextIOWrapper_detach_impl(self);
+}
+
+PyDoc_STRVAR(_io_TextIOWrapper_write__doc__,
+"write($self, text, /)\n"
+"--\n"
+"\n");
+
+#define _IO_TEXTIOWRAPPER_WRITE_METHODDEF \
+ {"write", (PyCFunction)_io_TextIOWrapper_write, METH_O, _io_TextIOWrapper_write__doc__},
+
+static PyObject *
+_io_TextIOWrapper_write_impl(textio *self, PyObject *text);
+
+static PyObject *
+_io_TextIOWrapper_write(textio *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ PyObject *text;
+
+ if (!PyArg_Parse(arg, "U:write", &text))
+ goto exit;
+ return_value = _io_TextIOWrapper_write_impl(self, text);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_io_TextIOWrapper_read__doc__,
+"read($self, size=-1, /)\n"
+"--\n"
+"\n");
+
+#define _IO_TEXTIOWRAPPER_READ_METHODDEF \
+ {"read", (PyCFunction)_io_TextIOWrapper_read, METH_VARARGS, _io_TextIOWrapper_read__doc__},
+
+static PyObject *
+_io_TextIOWrapper_read_impl(textio *self, Py_ssize_t n);
+
+static PyObject *
+_io_TextIOWrapper_read(textio *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_ssize_t n = -1;
+
+ if (!PyArg_ParseTuple(args, "|O&:read",
+ _PyIO_ConvertSsize_t, &n))
+ goto exit;
+ return_value = _io_TextIOWrapper_read_impl(self, n);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_io_TextIOWrapper_readline__doc__,
+"readline($self, size=-1, /)\n"
+"--\n"
+"\n");
+
+#define _IO_TEXTIOWRAPPER_READLINE_METHODDEF \
+ {"readline", (PyCFunction)_io_TextIOWrapper_readline, METH_VARARGS, _io_TextIOWrapper_readline__doc__},
+
+static PyObject *
+_io_TextIOWrapper_readline_impl(textio *self, Py_ssize_t size);
+
+static PyObject *
+_io_TextIOWrapper_readline(textio *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_ssize_t size = -1;
+
+ if (!PyArg_ParseTuple(args, "|n:readline",
+ &size))
+ goto exit;
+ return_value = _io_TextIOWrapper_readline_impl(self, size);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_io_TextIOWrapper_seek__doc__,
+"seek($self, cookie, whence=0, /)\n"
+"--\n"
+"\n");
+
+#define _IO_TEXTIOWRAPPER_SEEK_METHODDEF \
+ {"seek", (PyCFunction)_io_TextIOWrapper_seek, METH_VARARGS, _io_TextIOWrapper_seek__doc__},
+
+static PyObject *
+_io_TextIOWrapper_seek_impl(textio *self, PyObject *cookieObj, int whence);
+
+static PyObject *
+_io_TextIOWrapper_seek(textio *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *cookieObj;
+ int whence = 0;
+
+ if (!PyArg_ParseTuple(args, "O|i:seek",
+ &cookieObj, &whence))
+ goto exit;
+ return_value = _io_TextIOWrapper_seek_impl(self, cookieObj, whence);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_io_TextIOWrapper_tell__doc__,
+"tell($self, /)\n"
+"--\n"
+"\n");
+
+#define _IO_TEXTIOWRAPPER_TELL_METHODDEF \
+ {"tell", (PyCFunction)_io_TextIOWrapper_tell, METH_NOARGS, _io_TextIOWrapper_tell__doc__},
+
+static PyObject *
+_io_TextIOWrapper_tell_impl(textio *self);
+
+static PyObject *
+_io_TextIOWrapper_tell(textio *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io_TextIOWrapper_tell_impl(self);
+}
+
+PyDoc_STRVAR(_io_TextIOWrapper_truncate__doc__,
+"truncate($self, pos=None, /)\n"
+"--\n"
+"\n");
+
+#define _IO_TEXTIOWRAPPER_TRUNCATE_METHODDEF \
+ {"truncate", (PyCFunction)_io_TextIOWrapper_truncate, METH_VARARGS, _io_TextIOWrapper_truncate__doc__},
+
+static PyObject *
+_io_TextIOWrapper_truncate_impl(textio *self, PyObject *pos);
+
+static PyObject *
+_io_TextIOWrapper_truncate(textio *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *pos = Py_None;
+
+ if (!PyArg_UnpackTuple(args, "truncate",
+ 0, 1,
+ &pos))
+ goto exit;
+ return_value = _io_TextIOWrapper_truncate_impl(self, pos);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_io_TextIOWrapper_fileno__doc__,
+"fileno($self, /)\n"
+"--\n"
+"\n");
+
+#define _IO_TEXTIOWRAPPER_FILENO_METHODDEF \
+ {"fileno", (PyCFunction)_io_TextIOWrapper_fileno, METH_NOARGS, _io_TextIOWrapper_fileno__doc__},
+
+static PyObject *
+_io_TextIOWrapper_fileno_impl(textio *self);
+
+static PyObject *
+_io_TextIOWrapper_fileno(textio *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io_TextIOWrapper_fileno_impl(self);
+}
+
+PyDoc_STRVAR(_io_TextIOWrapper_seekable__doc__,
+"seekable($self, /)\n"
+"--\n"
+"\n");
+
+#define _IO_TEXTIOWRAPPER_SEEKABLE_METHODDEF \
+ {"seekable", (PyCFunction)_io_TextIOWrapper_seekable, METH_NOARGS, _io_TextIOWrapper_seekable__doc__},
+
+static PyObject *
+_io_TextIOWrapper_seekable_impl(textio *self);
+
+static PyObject *
+_io_TextIOWrapper_seekable(textio *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io_TextIOWrapper_seekable_impl(self);
+}
+
+PyDoc_STRVAR(_io_TextIOWrapper_readable__doc__,
+"readable($self, /)\n"
+"--\n"
+"\n");
+
+#define _IO_TEXTIOWRAPPER_READABLE_METHODDEF \
+ {"readable", (PyCFunction)_io_TextIOWrapper_readable, METH_NOARGS, _io_TextIOWrapper_readable__doc__},
+
+static PyObject *
+_io_TextIOWrapper_readable_impl(textio *self);
+
+static PyObject *
+_io_TextIOWrapper_readable(textio *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io_TextIOWrapper_readable_impl(self);
+}
+
+PyDoc_STRVAR(_io_TextIOWrapper_writable__doc__,
+"writable($self, /)\n"
+"--\n"
+"\n");
+
+#define _IO_TEXTIOWRAPPER_WRITABLE_METHODDEF \
+ {"writable", (PyCFunction)_io_TextIOWrapper_writable, METH_NOARGS, _io_TextIOWrapper_writable__doc__},
+
+static PyObject *
+_io_TextIOWrapper_writable_impl(textio *self);
+
+static PyObject *
+_io_TextIOWrapper_writable(textio *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io_TextIOWrapper_writable_impl(self);
+}
+
+PyDoc_STRVAR(_io_TextIOWrapper_isatty__doc__,
+"isatty($self, /)\n"
+"--\n"
+"\n");
+
+#define _IO_TEXTIOWRAPPER_ISATTY_METHODDEF \
+ {"isatty", (PyCFunction)_io_TextIOWrapper_isatty, METH_NOARGS, _io_TextIOWrapper_isatty__doc__},
+
+static PyObject *
+_io_TextIOWrapper_isatty_impl(textio *self);
+
+static PyObject *
+_io_TextIOWrapper_isatty(textio *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io_TextIOWrapper_isatty_impl(self);
+}
+
+PyDoc_STRVAR(_io_TextIOWrapper_flush__doc__,
+"flush($self, /)\n"
+"--\n"
+"\n");
+
+#define _IO_TEXTIOWRAPPER_FLUSH_METHODDEF \
+ {"flush", (PyCFunction)_io_TextIOWrapper_flush, METH_NOARGS, _io_TextIOWrapper_flush__doc__},
+
+static PyObject *
+_io_TextIOWrapper_flush_impl(textio *self);
+
+static PyObject *
+_io_TextIOWrapper_flush(textio *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io_TextIOWrapper_flush_impl(self);
+}
+
+PyDoc_STRVAR(_io_TextIOWrapper_close__doc__,
+"close($self, /)\n"
+"--\n"
+"\n");
+
+#define _IO_TEXTIOWRAPPER_CLOSE_METHODDEF \
+ {"close", (PyCFunction)_io_TextIOWrapper_close, METH_NOARGS, _io_TextIOWrapper_close__doc__},
+
+static PyObject *
+_io_TextIOWrapper_close_impl(textio *self);
+
+static PyObject *
+_io_TextIOWrapper_close(textio *self, PyObject *Py_UNUSED(ignored))
+{
+ return _io_TextIOWrapper_close_impl(self);
+}
+/*[clinic end generated code: output=690608f85aab8ba5 input=a9049054013a1b77]*/
diff --git a/Modules/_io/fileio.c b/Modules/_io/fileio.c
index 74508a7f42..12e37bbbbe 100644
--- a/Modules/_io/fileio.c
+++ b/Modules/_io/fileio.c
@@ -43,6 +43,19 @@
#define SMALLCHUNK BUFSIZ
#endif
+/*[clinic input]
+module _io
+class _io.FileIO "fileio *" "&PyFileIO_Type"
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=1c77708b41fda70c]*/
+
+/*[python input]
+class io_ssize_t_converter(CConverter):
+ type = 'Py_ssize_t'
+ converter = '_PyIO_ConvertSsize_t'
+[python start generated code]*/
+/*[python end generated code: output=da39a3ee5e6b4b0d input=d0a811d3cbfd1b33]*/
+
typedef struct {
PyObject_HEAD
int fd;
@@ -53,6 +66,7 @@ typedef struct {
signed int seekable : 2; /* -1 means unknown */
unsigned int closefd : 1;
char finalizing;
+ unsigned int blksize;
PyObject *weakreflist;
PyObject *dict;
} fileio;
@@ -106,9 +120,11 @@ internal_close(fileio *self)
/* fd is accessible and someone else may have closed it */
if (_PyVerify_fd(fd)) {
Py_BEGIN_ALLOW_THREADS
+ _Py_BEGIN_SUPPRESS_IPH
err = close(fd);
if (err < 0)
save_errno = errno;
+ _Py_END_SUPPRESS_IPH
Py_END_ALLOW_THREADS
} else {
save_errno = errno;
@@ -123,8 +139,18 @@ internal_close(fileio *self)
return 0;
}
+/*[clinic input]
+_io.FileIO.close
+
+Close the file.
+
+A closed file cannot be used for further I/O operations. close() may be
+called more than once without error.
+[clinic start generated code]*/
+
static PyObject *
-fileio_close(fileio *self)
+_io_FileIO_close_impl(fileio *self)
+/*[clinic end generated code: output=7737a319ef3bad0b input=f35231760d54a522]*/
{
PyObject *res;
PyObject *exc, *val, *tb;
@@ -168,6 +194,7 @@ fileio_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
self->writable = 0;
self->appending = 0;
self->seekable = -1;
+ self->blksize = 0;
self->closefd = 1;
self->weakreflist = NULL;
}
@@ -175,57 +202,40 @@ fileio_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
return (PyObject *) self;
}
-/* On Unix, open will succeed for directories.
- In Python, there should be no file objects referring to
- directories, so we need a check. */
-
-static int
-dircheck(fileio* self, PyObject *nameobj)
-{
-#if defined(HAVE_FSTAT) && defined(S_ISDIR) && defined(EISDIR)
- struct stat buf;
- if (self->fd < 0)
- return 0;
- if (fstat(self->fd, &buf) == 0 && S_ISDIR(buf.st_mode)) {
- errno = EISDIR;
- PyErr_SetFromErrnoWithFilenameObject(PyExc_IOError, nameobj);
- return -1;
- }
-#endif
- return 0;
-}
-
-static int
-check_fd(int fd)
-{
-#if defined(HAVE_FSTAT)
- struct stat buf;
- if (!_PyVerify_fd(fd) || (fstat(fd, &buf) < 0 && errno == EBADF)) {
- PyObject *exc;
- char *msg = strerror(EBADF);
- exc = PyObject_CallFunction(PyExc_OSError, "(is)",
- EBADF, msg);
- PyErr_SetObject(PyExc_OSError, exc);
- Py_XDECREF(exc);
- return -1;
- }
-#endif
- return 0;
-}
-
#ifdef O_CLOEXEC
extern int _Py_open_cloexec_works;
#endif
+/*[clinic input]
+_io.FileIO.__init__
+ file as nameobj: object
+ mode: str = "r"
+ closefd: int(c_default="1") = True
+ opener: object = None
+
+Open a file.
+
+The mode can be 'r' (default), 'w', 'x' or 'a' for reading,
+writing, exclusive creation or appending. The file will be created if it
+doesn't exist when opened for writing or appending; it will be truncated
+when opened for writing. A FileExistsError will be raised if it already
+exists when opened for creating. Opening a file for creating implies
+writing so this mode behaves in a similar way to 'w'.Add a '+' to the mode
+to allow simultaneous reading and writing. A custom opener can be used by
+passing a callable as *opener*. The underlying file descriptor for the file
+object is then obtained by calling opener with (*name*, *flags*).
+*opener* must return an open file descriptor (passing os.open as *opener*
+results in functionality similar to passing None).
+[clinic start generated code]*/
+
static int
-fileio_init(PyObject *oself, PyObject *args, PyObject *kwds)
+_io_FileIO___init___impl(fileio *self, PyObject *nameobj, const char *mode,
+ int closefd, PyObject *opener)
+/*[clinic end generated code: output=23413f68e6484bbd input=193164e293d6c097]*/
{
- fileio *self = (fileio *) oself;
- static char *kwlist[] = {"file", "mode", "closefd", "opener", NULL};
const char *name = NULL;
- PyObject *nameobj, *stringobj = NULL, *opener = Py_None;
- char *mode = "r";
- char *s;
+ PyObject *stringobj = NULL;
+ const char *s;
#ifdef MS_WINDOWS
Py_UNICODE *widename = NULL;
#endif
@@ -233,15 +243,16 @@ fileio_init(PyObject *oself, PyObject *args, PyObject *kwds)
int rwa = 0, plus = 0;
int flags = 0;
int fd = -1;
- int closefd = 1;
int fd_is_own = 0;
#ifdef O_CLOEXEC
int *atomic_flag_works = &_Py_open_cloexec_works;
#elif !defined(MS_WINDOWS)
int *atomic_flag_works = NULL;
#endif
+ struct _Py_stat_struct fdfstat;
+ int async_err = 0;
- assert(PyFileIO_Check(oself));
+ assert(PyFileIO_Check(self));
if (self->fd >= 0) {
if (self->closefd) {
/* Have to close the existing file first. */
@@ -252,11 +263,6 @@ fileio_init(PyObject *oself, PyObject *args, PyObject *kwds)
self->fd = -1;
}
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|siO:fileio",
- kwlist, &nameobj, &mode, &closefd,
- &opener))
- return -1;
-
if (PyFloat_Check(nameobj)) {
PyErr_SetString(PyExc_TypeError,
"integer argument expected, got float");
@@ -280,7 +286,7 @@ fileio_init(PyObject *oself, PyObject *args, PyObject *kwds)
if (widename == NULL)
return -1;
if (wcslen(widename) != length) {
- PyErr_SetString(PyExc_TypeError, "embedded NUL character");
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
return -1;
}
} else
@@ -366,8 +372,6 @@ fileio_init(PyObject *oself, PyObject *args, PyObject *kwds)
#endif
if (fd >= 0) {
- if (check_fd(fd))
- goto error;
self->fd = fd;
self->closefd = closefd;
}
@@ -381,15 +385,20 @@ fileio_init(PyObject *oself, PyObject *args, PyObject *kwds)
errno = 0;
if (opener == Py_None) {
- Py_BEGIN_ALLOW_THREADS
+ do {
+ Py_BEGIN_ALLOW_THREADS
#ifdef MS_WINDOWS
- if (widename != NULL)
- self->fd = _wopen(widename, flags, 0666);
- else
+ if (widename != NULL)
+ self->fd = _wopen(widename, flags, 0666);
+ else
#endif
- self->fd = open(name, flags, 0666);
+ self->fd = open(name, flags, 0666);
+ Py_END_ALLOW_THREADS
+ } while (self->fd < 0 && errno == EINTR &&
+ !(async_err = PyErr_CheckSignals()));
- Py_END_ALLOW_THREADS
+ if (async_err)
+ goto error;
}
else {
PyObject *fdobj;
@@ -427,8 +436,24 @@ fileio_init(PyObject *oself, PyObject *args, PyObject *kwds)
goto error;
#endif
}
- if (dircheck(self, nameobj) < 0)
+
+ self->blksize = DEFAULT_BUFFER_SIZE;
+ if (_Py_fstat(self->fd, &fdfstat) < 0)
+ goto error;
+#if defined(S_ISDIR) && defined(EISDIR)
+ /* On Unix, open will succeed for directories.
+ In Python, there should be no file objects referring to
+ directories, so we need a check. */
+ if (S_ISDIR(fdfstat.st_mode)) {
+ errno = EISDIR;
+ PyErr_SetFromErrnoWithFilenameObject(PyExc_IOError, nameobj);
goto error;
+ }
+#endif /* defined(S_ISDIR) */
+#ifdef HAVE_STRUCT_STAT_ST_BLKSIZE
+ if (fdfstat.st_blksize > 1)
+ self->blksize = fdfstat.st_blksize;
+#endif /* HAVE_STRUCT_STAT_ST_BLKSIZE */
#if defined(MS_WINDOWS) || defined(__CYGWIN__)
/* don't translate newlines (\r\n <=> \n) */
@@ -506,32 +531,60 @@ err_mode(char *action)
return NULL;
}
+/*[clinic input]
+_io.FileIO.fileno
+
+Return the underlying file descriptor (an integer).
+[clinic start generated code]*/
+
static PyObject *
-fileio_fileno(fileio *self)
+_io_FileIO_fileno_impl(fileio *self)
+/*[clinic end generated code: output=a9626ce5398ece90 input=0b9b2de67335ada3]*/
{
if (self->fd < 0)
return err_closed();
return PyLong_FromLong((long) self->fd);
}
+/*[clinic input]
+_io.FileIO.readable
+
+True if file was opened in a read mode.
+[clinic start generated code]*/
+
static PyObject *
-fileio_readable(fileio *self)
+_io_FileIO_readable_impl(fileio *self)
+/*[clinic end generated code: output=640744a6150fe9ba input=a3fdfed6eea721c5]*/
{
if (self->fd < 0)
return err_closed();
return PyBool_FromLong((long) self->readable);
}
+/*[clinic input]
+_io.FileIO.writable
+
+True if file was opened in a write mode.
+[clinic start generated code]*/
+
static PyObject *
-fileio_writable(fileio *self)
+_io_FileIO_writable_impl(fileio *self)
+/*[clinic end generated code: output=96cefc5446e89977 input=c204a808ca2e1748]*/
{
if (self->fd < 0)
return err_closed();
return PyBool_FromLong((long) self->writable);
}
+/*[clinic input]
+_io.FileIO.seekable
+
+True if file supports random-access.
+[clinic start generated code]*/
+
static PyObject *
-fileio_seekable(fileio *self)
+_io_FileIO_seekable_impl(fileio *self)
+/*[clinic end generated code: output=47909ca0a42e9287 input=c8e5554d2fd63c7f]*/
{
if (self->fd < 0)
return err_closed();
@@ -548,11 +601,19 @@ fileio_seekable(fileio *self)
return PyBool_FromLong((long) self->seekable);
}
+/*[clinic input]
+_io.FileIO.readinto
+ buffer: Py_buffer(accept={rwbuffer})
+ /
+
+Same as RawIOBase.readinto().
+[clinic start generated code]*/
+
static PyObject *
-fileio_readinto(fileio *self, PyObject *args)
+_io_FileIO_readinto_impl(fileio *self, Py_buffer *buffer)
+/*[clinic end generated code: output=b01a5a22c8415cb4 input=4721d7b68b154eaf]*/
{
- Py_buffer pbuf;
- Py_ssize_t n, len;
+ Py_ssize_t n;
int err;
if (self->fd < 0)
@@ -560,48 +621,21 @@ fileio_readinto(fileio *self, PyObject *args)
if (!self->readable)
return err_mode("reading");
- if (!PyArg_ParseTuple(args, "w*", &pbuf))
- return NULL;
-
- if (_PyVerify_fd(self->fd)) {
- len = pbuf.len;
- Py_BEGIN_ALLOW_THREADS
- errno = 0;
-#ifdef MS_WINDOWS
- if (len > INT_MAX)
- len = INT_MAX;
- n = read(self->fd, pbuf.buf, (int)len);
-#else
- n = read(self->fd, pbuf.buf, len);
-#endif
- Py_END_ALLOW_THREADS
- } else
- n = -1;
+ n = _Py_read(self->fd, buffer->buf, buffer->len);
+ /* copy errno because PyBuffer_Release() can indirectly modify it */
err = errno;
- PyBuffer_Release(&pbuf);
- if (n < 0) {
- if (err == EAGAIN)
+
+ if (n == -1) {
+ if (err == EAGAIN) {
+ PyErr_Clear();
Py_RETURN_NONE;
- errno = err;
- PyErr_SetFromErrno(PyExc_IOError);
+ }
return NULL;
}
return PyLong_FromSsize_t(n);
}
-#ifndef HAVE_FSTAT
-
-static PyObject *
-fileio_readall(fileio *self)
-{
- _Py_IDENTIFIER(readall);
- return _PyObject_CallMethodId((PyObject*)&PyRawIOBase_Type,
- &PyId_readall, "O", self);
-}
-
-#else
-
static size_t
new_buffersize(fileio *self, size_t currentsize)
{
@@ -621,10 +655,20 @@ new_buffersize(fileio *self, size_t currentsize)
return addend + currentsize;
}
+/*[clinic input]
+_io.FileIO.readall
+
+Read all data from the file, returned as bytes.
+
+In non-blocking mode, returns as much as is immediately available,
+or None if no data is available. Return an empty bytes object at EOF.
+[clinic start generated code]*/
+
static PyObject *
-fileio_readall(fileio *self)
+_io_FileIO_readall_impl(fileio *self)
+/*[clinic end generated code: output=faa0292b213b4022 input=dbdc137f55602834]*/
{
- struct stat st;
+ struct _Py_stat_struct status;
Py_off_t pos, end;
PyObject *result;
Py_ssize_t bytes_read = 0;
@@ -636,13 +680,16 @@ fileio_readall(fileio *self)
if (!_PyVerify_fd(self->fd))
return PyErr_SetFromErrno(PyExc_IOError);
+ _Py_BEGIN_SUPPRESS_IPH
#ifdef MS_WINDOWS
pos = _lseeki64(self->fd, 0L, SEEK_CUR);
#else
pos = lseek(self->fd, 0L, SEEK_CUR);
#endif
- if (fstat(self->fd, &st) == 0)
- end = st.st_size;
+ _Py_END_SUPPRESS_IPH
+
+ if (_Py_fstat_noraise(self->fd, &status) == 0)
+ end = status.st_size;
else
end = (Py_off_t)-1;
@@ -676,35 +723,22 @@ fileio_readall(fileio *self)
return NULL;
}
}
- Py_BEGIN_ALLOW_THREADS
- errno = 0;
- n = bufsize - bytes_read;
-#ifdef MS_WINDOWS
- if (n > INT_MAX)
- n = INT_MAX;
- n = read(self->fd, PyBytes_AS_STRING(result) + bytes_read, (int)n);
-#else
- n = read(self->fd, PyBytes_AS_STRING(result) + bytes_read, n);
-#endif
- Py_END_ALLOW_THREADS
+
+ n = _Py_read(self->fd,
+ PyBytes_AS_STRING(result) + bytes_read,
+ bufsize - bytes_read);
+
if (n == 0)
break;
- if (n < 0) {
- if (errno == EINTR) {
- if (PyErr_CheckSignals()) {
- Py_DECREF(result);
- return NULL;
- }
- continue;
- }
+ if (n == -1) {
if (errno == EAGAIN) {
+ PyErr_Clear();
if (bytes_read > 0)
break;
Py_DECREF(result);
Py_RETURN_NONE;
}
Py_DECREF(result);
- PyErr_SetFromErrno(PyExc_IOError);
return NULL;
}
bytes_read += n;
@@ -718,14 +752,24 @@ fileio_readall(fileio *self)
return result;
}
-#endif /* HAVE_FSTAT */
+/*[clinic input]
+_io.FileIO.read
+ size: io_ssize_t = -1
+ /
+
+Read at most size bytes, returned as bytes.
+
+Only makes one system call, so less data may be returned than requested.
+In non-blocking mode, returns None if no data is available.
+Return an empty bytes object at EOF.
+[clinic start generated code]*/
static PyObject *
-fileio_read(fileio *self, PyObject *args)
+_io_FileIO_read_impl(fileio *self, Py_ssize_t size)
+/*[clinic end generated code: output=42528d39dd0ca641 input=5c6caa5490c13a9b]*/
{
char *ptr;
Py_ssize_t n;
- Py_ssize_t size = -1;
PyObject *bytes;
if (self->fd < 0)
@@ -733,41 +777,29 @@ fileio_read(fileio *self, PyObject *args)
if (!self->readable)
return err_mode("reading");
- if (!PyArg_ParseTuple(args, "|O&", &_PyIO_ConvertSsize_t, &size))
- return NULL;
-
- if (size < 0) {
- return fileio_readall(self);
- }
+ if (size < 0)
+ return _io_FileIO_readall_impl(self);
#ifdef MS_WINDOWS
+ /* On Windows, the count parameter of read() is an int */
if (size > INT_MAX)
size = INT_MAX;
#endif
+
bytes = PyBytes_FromStringAndSize(NULL, size);
if (bytes == NULL)
return NULL;
ptr = PyBytes_AS_STRING(bytes);
- if (_PyVerify_fd(self->fd)) {
- Py_BEGIN_ALLOW_THREADS
- errno = 0;
-#ifdef MS_WINDOWS
- n = read(self->fd, ptr, (int)size);
-#else
- n = read(self->fd, ptr, size);
-#endif
- Py_END_ALLOW_THREADS
- } else
- n = -1;
-
- if (n < 0) {
+ n = _Py_read(self->fd, ptr, size);
+ if (n == -1) {
+ /* copy errno because Py_DECREF() can indirectly modify it */
int err = errno;
Py_DECREF(bytes);
- if (err == EAGAIN)
+ if (err == EAGAIN) {
+ PyErr_Clear();
Py_RETURN_NONE;
- errno = err;
- PyErr_SetFromErrno(PyExc_IOError);
+ }
return NULL;
}
@@ -781,11 +813,23 @@ fileio_read(fileio *self, PyObject *args)
return (PyObject *) bytes;
}
+/*[clinic input]
+_io.FileIO.write
+ b: Py_buffer
+ /
+
+Write bytes b to file, return number written.
+
+Only makes one system call, so not all of the data may be written.
+The number of bytes actually written is returned. In non-blocking mode,
+returns None if the write would block.
+[clinic start generated code]*/
+
static PyObject *
-fileio_write(fileio *self, PyObject *args)
+_io_FileIO_write_impl(fileio *self, Py_buffer *b)
+/*[clinic end generated code: output=b4059db3d363a2f7 input=ffbd8834f447ac31]*/
{
- Py_buffer pbuf;
- Py_ssize_t n, len;
+ Py_ssize_t n;
int err;
if (self->fd < 0)
@@ -793,39 +837,15 @@ fileio_write(fileio *self, PyObject *args)
if (!self->writable)
return err_mode("writing");
- if (!PyArg_ParseTuple(args, "y*", &pbuf))
- return NULL;
-
- if (_PyVerify_fd(self->fd)) {
- Py_BEGIN_ALLOW_THREADS
- errno = 0;
- len = pbuf.len;
-#ifdef MS_WINDOWS
- if (len > 32767 && isatty(self->fd)) {
- /* Issue #11395: the Windows console returns an error (12: not
- enough space error) on writing into stdout if stdout mode is
- binary and the length is greater than 66,000 bytes (or less,
- depending on heap usage). */
- len = 32767;
- }
- else if (len > INT_MAX)
- len = INT_MAX;
- n = write(self->fd, pbuf.buf, (int)len);
-#else
- n = write(self->fd, pbuf.buf, len);
-#endif
- Py_END_ALLOW_THREADS
- } else
- n = -1;
+ n = _Py_write(self->fd, b->buf, b->len);
+ /* copy errno because PyBuffer_Release() can indirectly modify it */
err = errno;
- PyBuffer_Release(&pbuf);
-
if (n < 0) {
- if (err == EAGAIN)
+ if (err == EAGAIN) {
+ PyErr_Clear();
Py_RETURN_NONE;
- errno = err;
- PyErr_SetFromErrno(PyExc_IOError);
+ }
return NULL;
}
@@ -873,11 +893,13 @@ portable_lseek(int fd, PyObject *posobj, int whence)
if (_PyVerify_fd(fd)) {
Py_BEGIN_ALLOW_THREADS
+ _Py_BEGIN_SUPPRESS_IPH
#ifdef MS_WINDOWS
res = _lseeki64(fd, pos, whence);
#else
res = lseek(fd, pos, whence);
#endif
+ _Py_END_SUPPRESS_IPH
Py_END_ALLOW_THREADS
} else
res = -1;
@@ -891,23 +913,44 @@ portable_lseek(int fd, PyObject *posobj, int whence)
#endif
}
+/*[clinic input]
+_io.FileIO.seek
+ pos: object
+ whence: int = 0
+ /
+
+Move to new file position and return the file position.
+
+Argument offset is a byte count. Optional argument whence defaults to
+SEEK_SET or 0 (offset from start of file, offset should be >= 0); other values
+are SEEK_CUR or 1 (move relative to current position, positive or negative),
+and SEEK_END or 2 (move relative to end of file, usually negative, although
+many platforms allow seeking beyond the end of a file).
+
+Note that not all file objects are seekable.
+[clinic start generated code]*/
+
static PyObject *
-fileio_seek(fileio *self, PyObject *args)
+_io_FileIO_seek_impl(fileio *self, PyObject *pos, int whence)
+/*[clinic end generated code: output=c976acdf054e6655 input=0439194b0774d454]*/
{
- PyObject *posobj;
- int whence = 0;
-
if (self->fd < 0)
return err_closed();
- if (!PyArg_ParseTuple(args, "O|i", &posobj, &whence))
- return NULL;
-
- return portable_lseek(self->fd, posobj, whence);
+ return portable_lseek(self->fd, pos, whence);
}
+/*[clinic input]
+_io.FileIO.tell
+
+Current file position.
+
+Can raise OSError for non seekable files.
+[clinic start generated code]*/
+
static PyObject *
-fileio_tell(fileio *self, PyObject *args)
+_io_FileIO_tell_impl(fileio *self)
+/*[clinic end generated code: output=ffe2147058809d0b input=807e24ead4cec2f9]*/
{
if (self->fd < 0)
return err_closed();
@@ -916,13 +959,22 @@ fileio_tell(fileio *self, PyObject *args)
}
#ifdef HAVE_FTRUNCATE
+/*[clinic input]
+_io.FileIO.truncate
+ size as posobj: object = NULL
+ /
+
+Truncate the file to at most size bytes and return the truncated size.
+
+Size defaults to the current file position, as returned by tell().
+The current file position is changed to the value of size.
+[clinic start generated code]*/
+
static PyObject *
-fileio_truncate(fileio *self, PyObject *args)
+_io_FileIO_truncate_impl(fileio *self, PyObject *posobj)
+/*[clinic end generated code: output=e49ca7a916c176fa input=9026af44686b7318]*/
{
- PyObject *posobj = NULL; /* the new size wanted by the user */
-#ifndef MS_WINDOWS
Py_off_t pos;
-#endif
int ret;
int fd;
@@ -932,9 +984,6 @@ fileio_truncate(fileio *self, PyObject *args)
if (!self->writable)
return err_mode("writing");
- if (!PyArg_ParseTuple(args, "|O", &posobj))
- return NULL;
-
if (posobj == Py_None || posobj == NULL) {
/* Get the current position. */
posobj = portable_lseek(fd, NULL, 1);
@@ -945,52 +994,6 @@ fileio_truncate(fileio *self, PyObject *args)
Py_INCREF(posobj);
}
-#ifdef MS_WINDOWS
- /* MS _chsize doesn't work if newsize doesn't fit in 32 bits,
- so don't even try using it. */
- {
- PyObject *oldposobj, *tempposobj;
- HANDLE hFile;
-
- /* we save the file pointer position */
- oldposobj = portable_lseek(fd, NULL, 1);
- if (oldposobj == NULL) {
- Py_DECREF(posobj);
- return NULL;
- }
-
- /* we then move to the truncation position */
- tempposobj = portable_lseek(fd, posobj, 0);
- if (tempposobj == NULL) {
- Py_DECREF(oldposobj);
- Py_DECREF(posobj);
- return NULL;
- }
- Py_DECREF(tempposobj);
-
- /* Truncate. Note that this may grow the file! */
- Py_BEGIN_ALLOW_THREADS
- errno = 0;
- hFile = (HANDLE)_get_osfhandle(fd);
- ret = hFile == (HANDLE)-1; /* testing for INVALID_HANDLE value */
- if (ret == 0) {
- ret = SetEndOfFile(hFile) == 0;
- if (ret)
- errno = EACCES;
- }
- Py_END_ALLOW_THREADS
-
- /* we restore the file pointer position in any case */
- tempposobj = portable_lseek(fd, oldposobj, 0);
- Py_DECREF(oldposobj);
- if (tempposobj == NULL) {
- Py_DECREF(posobj);
- return NULL;
- }
- Py_DECREF(tempposobj);
- }
-#else
-
#if defined(HAVE_LARGEFILE_SUPPORT)
pos = PyLong_AsLongLong(posobj);
#else
@@ -1002,12 +1005,16 @@ fileio_truncate(fileio *self, PyObject *args)
}
Py_BEGIN_ALLOW_THREADS
+ _Py_BEGIN_SUPPRESS_IPH
errno = 0;
+#ifdef MS_WINDOWS
+ ret = _chsize_s(fd, pos);
+#else
ret = ftruncate(fd, pos);
+#endif
+ _Py_END_SUPPRESS_IPH
Py_END_ALLOW_THREADS
-#endif /* !MS_WINDOWS */
-
if (ret != 0) {
Py_DECREF(posobj);
PyErr_SetFromErrno(PyExc_IOError);
@@ -1057,26 +1064,40 @@ fileio_repr(fileio *self)
PyErr_Clear();
else
return NULL;
- res = PyUnicode_FromFormat("<_io.FileIO fd=%d mode='%s'>",
- self->fd, mode_string(self));
+ res = PyUnicode_FromFormat(
+ "<_io.FileIO fd=%d mode='%s' closefd=%s>",
+ self->fd, mode_string(self), self->closefd ? "True" : "False");
}
else {
- res = PyUnicode_FromFormat("<_io.FileIO name=%R mode='%s'>",
- nameobj, mode_string(self));
+ res = PyUnicode_FromFormat(
+ "<_io.FileIO name=%R mode='%s' closefd=%s>",
+ nameobj, mode_string(self), self->closefd ? "True" : "False");
Py_DECREF(nameobj);
}
return res;
}
+/*[clinic input]
+_io.FileIO.isatty
+
+True if the file is connected to a TTY device.
+[clinic start generated code]*/
+
static PyObject *
-fileio_isatty(fileio *self)
+_io_FileIO_isatty_impl(fileio *self)
+/*[clinic end generated code: output=932c39924e9a8070 input=cd94ca1f5e95e843]*/
{
long res;
if (self->fd < 0)
return err_closed();
Py_BEGIN_ALLOW_THREADS
- res = isatty(self->fd);
+ _Py_BEGIN_SUPPRESS_IPH
+ if (_PyVerify_fd(self->fd))
+ res = isatty(self->fd);
+ else
+ res = 0;
+ _Py_END_SUPPRESS_IPH
Py_END_ALLOW_THREADS
return PyBool_FromLong(res);
}
@@ -1089,110 +1110,22 @@ fileio_getstate(fileio *self)
return NULL;
}
-
-PyDoc_STRVAR(fileio_doc,
-"file(name: str[, mode: str][, opener: None]) -> file IO object\n"
-"\n"
-"Open a file. The mode can be 'r' (default), 'w', 'x' or 'a' for reading,\n"
-"writing, exclusive creation or appending. The file will be created if it\n"
-"doesn't exist when opened for writing or appending; it will be truncated\n"
-"when opened for writing. A FileExistsError will be raised if it already\n"
-"exists when opened for creating. Opening a file for creating implies\n"
-"writing so this mode behaves in a similar way to 'w'.Add a '+' to the mode\n"
-"to allow simultaneous reading and writing. A custom opener can be used by\n"
-"passing a callable as *opener*. The underlying file descriptor for the file\n"
-"object is then obtained by calling opener with (*name*, *flags*).\n"
-"*opener* must return an open file descriptor (passing os.open as *opener*\n"
-"results in functionality similar to passing None).");
-
-PyDoc_STRVAR(read_doc,
-"read(size: int) -> bytes. read at most size bytes, returned as bytes.\n"
-"\n"
-"Only makes one system call, so less data may be returned than requested\n"
-"In non-blocking mode, returns None if no data is available.\n"
-"Return an empty bytes object at EOF.");
-
-PyDoc_STRVAR(readall_doc,
-"readall() -> bytes. read all data from the file, returned as bytes.\n"
-"\n"
-"In non-blocking mode, returns as much as is immediately available,\n"
-"or None if no data is available. Return an empty bytes object at EOF.");
-
-PyDoc_STRVAR(write_doc,
-"write(b: bytes) -> int. Write bytes b to file, return number written.\n"
-"\n"
-"Only makes one system call, so not all of the data may be written.\n"
-"The number of bytes actually written is returned. In non-blocking mode,\n"
-"returns None if the write would block."
-);
-
-PyDoc_STRVAR(fileno_doc,
-"fileno() -> int. Return the underlying file descriptor (an integer).");
-
-PyDoc_STRVAR(seek_doc,
-"seek(offset: int[, whence: int]) -> int. Move to new file position and\n"
-"return the file position.\n"
-"\n"
-"Argument offset is a byte count. Optional argument whence defaults to\n"
-"SEEK_SET or 0 (offset from start of file, offset should be >= 0); other values\n"
-"are SEEK_CUR or 1 (move relative to current position, positive or negative),\n"
-"and SEEK_END or 2 (move relative to end of file, usually negative, although\n"
-"many platforms allow seeking beyond the end of a file).\n"
-"\n"
-"Note that not all file objects are seekable.");
-
-#ifdef HAVE_FTRUNCATE
-PyDoc_STRVAR(truncate_doc,
-"truncate([size: int]) -> int. Truncate the file to at most size bytes\n"
-"and return the truncated size.\n"
-"\n"
-"Size defaults to the current file position, as returned by tell().\n"
-"The current file position is changed to the value of size.");
-#endif
-
-PyDoc_STRVAR(tell_doc,
-"tell() -> int. Current file position.\n"
-"\n"
-"Can raise OSError for non seekable files."
-);
-
-PyDoc_STRVAR(readinto_doc,
-"readinto() -> Same as RawIOBase.readinto().");
-
-PyDoc_STRVAR(close_doc,
-"close() -> None. Close the file.\n"
-"\n"
-"A closed file cannot be used for further I/O operations. close() may be\n"
-"called more than once without error.");
-
-PyDoc_STRVAR(isatty_doc,
-"isatty() -> bool. True if the file is connected to a TTY device.");
-
-PyDoc_STRVAR(seekable_doc,
-"seekable() -> bool. True if file supports random-access.");
-
-PyDoc_STRVAR(readable_doc,
-"readable() -> bool. True if file was opened in a read mode.");
-
-PyDoc_STRVAR(writable_doc,
-"writable() -> bool. True if file was opened in a write mode.");
+#include "clinic/fileio.c.h"
static PyMethodDef fileio_methods[] = {
- {"read", (PyCFunction)fileio_read, METH_VARARGS, read_doc},
- {"readall", (PyCFunction)fileio_readall, METH_NOARGS, readall_doc},
- {"readinto", (PyCFunction)fileio_readinto, METH_VARARGS, readinto_doc},
- {"write", (PyCFunction)fileio_write, METH_VARARGS, write_doc},
- {"seek", (PyCFunction)fileio_seek, METH_VARARGS, seek_doc},
- {"tell", (PyCFunction)fileio_tell, METH_VARARGS, tell_doc},
-#ifdef HAVE_FTRUNCATE
- {"truncate", (PyCFunction)fileio_truncate, METH_VARARGS, truncate_doc},
-#endif
- {"close", (PyCFunction)fileio_close, METH_NOARGS, close_doc},
- {"seekable", (PyCFunction)fileio_seekable, METH_NOARGS, seekable_doc},
- {"readable", (PyCFunction)fileio_readable, METH_NOARGS, readable_doc},
- {"writable", (PyCFunction)fileio_writable, METH_NOARGS, writable_doc},
- {"fileno", (PyCFunction)fileio_fileno, METH_NOARGS, fileno_doc},
- {"isatty", (PyCFunction)fileio_isatty, METH_NOARGS, isatty_doc},
+ _IO_FILEIO_READ_METHODDEF
+ _IO_FILEIO_READALL_METHODDEF
+ _IO_FILEIO_READINTO_METHODDEF
+ _IO_FILEIO_WRITE_METHODDEF
+ _IO_FILEIO_SEEK_METHODDEF
+ _IO_FILEIO_TELL_METHODDEF
+ _IO_FILEIO_TRUNCATE_METHODDEF
+ _IO_FILEIO_CLOSE_METHODDEF
+ _IO_FILEIO_SEEKABLE_METHODDEF
+ _IO_FILEIO_READABLE_METHODDEF
+ _IO_FILEIO_WRITABLE_METHODDEF
+ _IO_FILEIO_FILENO_METHODDEF
+ _IO_FILEIO_ISATTY_METHODDEF
{"_dealloc_warn", (PyCFunction)fileio_dealloc_warn, METH_O, NULL},
{"__getstate__", (PyCFunction)fileio_getstate, METH_NOARGS, NULL},
{NULL, NULL} /* sentinel */
@@ -1227,6 +1160,7 @@ static PyGetSetDef fileio_getsetlist[] = {
};
static PyMemberDef fileio_members[] = {
+ {"_blksize", T_UINT, offsetof(fileio, blksize), 0},
{"_finalizing", T_BOOL, offsetof(fileio, finalizing), 0},
{NULL}
};
@@ -1253,7 +1187,7 @@ PyTypeObject PyFileIO_Type = {
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE
| Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_HAVE_FINALIZE, /* tp_flags */
- fileio_doc, /* tp_doc */
+ _io_FileIO___init____doc__, /* tp_doc */
(traverseproc)fileio_traverse, /* tp_traverse */
(inquiry)fileio_clear, /* tp_clear */
0, /* tp_richcompare */
@@ -1268,7 +1202,7 @@ PyTypeObject PyFileIO_Type = {
0, /* tp_descr_get */
0, /* tp_descr_set */
offsetof(fileio, dict), /* tp_dictoffset */
- fileio_init, /* tp_init */
+ _io_FileIO___init__, /* tp_init */
PyType_GenericAlloc, /* tp_alloc */
fileio_new, /* tp_new */
PyObject_GC_Del, /* tp_free */
diff --git a/Modules/_io/iobase.c b/Modules/_io/iobase.c
index ef06b43ca6..025007e40d 100644
--- a/Modules/_io/iobase.c
+++ b/Modules/_io/iobase.c
@@ -13,6 +13,20 @@
#include "structmember.h"
#include "_iomodule.h"
+/*[clinic input]
+module _io
+class _io._IOBase "PyObject *" "&PyIOBase_Type"
+class _io._RawIOBase "PyObject *" "&PyRawIOBase_Type"
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=d29a4d076c2b211c]*/
+
+/*[python input]
+class io_ssize_t_converter(CConverter):
+ type = 'Py_ssize_t'
+ converter = '_PyIO_ConvertSsize_t'
+[python start generated code]*/
+/*[python end generated code: output=da39a3ee5e6b4b0d input=d0a811d3cbfd1b33]*/
+
/*
* IOBase class, an abstract class
*/
@@ -96,11 +110,15 @@ iobase_seek(PyObject *self, PyObject *args)
return iobase_unsupported("seek");
}
-PyDoc_STRVAR(iobase_tell_doc,
- "Return current stream position.");
+/*[clinic input]
+_io._IOBase.tell
+
+Return current stream position.
+[clinic start generated code]*/
static PyObject *
-iobase_tell(PyObject *self, PyObject *args)
+_io__IOBase_tell_impl(PyObject *self)
+/*[clinic end generated code: output=89a1c0807935abe2 input=04e615fec128801f]*/
{
_Py_IDENTIFIER(seek);
@@ -121,13 +139,17 @@ iobase_truncate(PyObject *self, PyObject *args)
/* Flush and close methods */
-PyDoc_STRVAR(iobase_flush_doc,
- "Flush write buffers, if applicable.\n"
- "\n"
- "This is not implemented for read-only and non-blocking streams.\n");
+/*[clinic input]
+_io._IOBase.flush
+
+Flush write buffers, if applicable.
+
+This is not implemented for read-only and non-blocking streams.
+[clinic start generated code]*/
static PyObject *
-iobase_flush(PyObject *self, PyObject *args)
+_io__IOBase_flush_impl(PyObject *self)
+/*[clinic end generated code: output=7cef4b4d54656a3b input=773be121abe270aa]*/
{
/* XXX Should this return the number of bytes written??? */
if (IS_CLOSED(self)) {
@@ -137,11 +159,6 @@ iobase_flush(PyObject *self, PyObject *args)
Py_RETURN_NONE;
}
-PyDoc_STRVAR(iobase_close_doc,
- "Flush and close the IO object.\n"
- "\n"
- "This method has no effect if the file is already closed.\n");
-
static int
iobase_closed(PyObject *self)
{
@@ -180,8 +197,17 @@ _PyIOBase_check_closed(PyObject *self, PyObject *args)
`__IOBase_closed` and call flush() by itself, but it is redundant with
whatever behaviour a non-trivial derived class will implement. */
+/*[clinic input]
+_io._IOBase.close
+
+Flush and close the IO object.
+
+This method has no effect if the file is already closed.
+[clinic start generated code]*/
+
static PyObject *
-iobase_close(PyObject *self, PyObject *args)
+_io__IOBase_close_impl(PyObject *self)
+/*[clinic end generated code: output=63c6a6f57d783d6d input=f4494d5c31dbc6b7]*/
{
PyObject *res;
@@ -304,14 +330,18 @@ iobase_dealloc(iobase *self)
/* Inquiry methods */
-PyDoc_STRVAR(iobase_seekable_doc,
- "Return whether object supports random access.\n"
- "\n"
- "If False, seek(), tell() and truncate() will raise UnsupportedOperation.\n"
- "This method may need to do a test seek().");
+/*[clinic input]
+_io._IOBase.seekable
+
+Return whether object supports random access.
+
+If False, seek(), tell() and truncate() will raise UnsupportedOperation.
+This method may need to do a test seek().
+[clinic start generated code]*/
static PyObject *
-iobase_seekable(PyObject *self, PyObject *args)
+_io__IOBase_seekable_impl(PyObject *self)
+/*[clinic end generated code: output=4c24c67f5f32a43d input=22676eebb81dcf1e]*/
{
Py_RETURN_FALSE;
}
@@ -333,13 +363,17 @@ _PyIOBase_check_seekable(PyObject *self, PyObject *args)
return res;
}
-PyDoc_STRVAR(iobase_readable_doc,
- "Return whether object was opened for reading.\n"
- "\n"
- "If False, read() will raise UnsupportedOperation.");
+/*[clinic input]
+_io._IOBase.readable
+
+Return whether object was opened for reading.
+
+If False, read() will raise UnsupportedOperation.
+[clinic start generated code]*/
static PyObject *
-iobase_readable(PyObject *self, PyObject *args)
+_io__IOBase_readable_impl(PyObject *self)
+/*[clinic end generated code: output=e48089250686388b input=12fc3d8f6be46434]*/
{
Py_RETURN_FALSE;
}
@@ -362,13 +396,17 @@ _PyIOBase_check_readable(PyObject *self, PyObject *args)
return res;
}
-PyDoc_STRVAR(iobase_writable_doc,
- "Return whether object was opened for writing.\n"
- "\n"
- "If False, write() will raise UnsupportedOperation.");
+/*[clinic input]
+_io._IOBase.writable
+
+Return whether object was opened for writing.
+
+If False, write() will raise UnsupportedOperation.
+[clinic start generated code]*/
static PyObject *
-iobase_writable(PyObject *self, PyObject *args)
+_io__IOBase_writable_impl(PyObject *self)
+/*[clinic end generated code: output=406001d0985be14f input=c17a0bb6a8dfc590]*/
{
Py_RETURN_FALSE;
}
@@ -413,24 +451,32 @@ iobase_exit(PyObject *self, PyObject *args)
/* XXX Should these be present even if unimplemented? */
-PyDoc_STRVAR(iobase_fileno_doc,
- "Returns underlying file descriptor if one exists.\n"
- "\n"
- "An IOError is raised if the IO object does not use a file descriptor.\n");
+/*[clinic input]
+_io._IOBase.fileno
+
+Returns underlying file descriptor if one exists.
+
+An IOError is raised if the IO object does not use a file descriptor.
+[clinic start generated code]*/
static PyObject *
-iobase_fileno(PyObject *self, PyObject *args)
+_io__IOBase_fileno_impl(PyObject *self)
+/*[clinic end generated code: output=7cc0973f0f5f3b73 input=32773c5df4b7eede]*/
{
return iobase_unsupported("fileno");
}
-PyDoc_STRVAR(iobase_isatty_doc,
- "Return whether this is an 'interactive' stream.\n"
- "\n"
- "Return False if it can't be determined.\n");
+/*[clinic input]
+_io._IOBase.isatty
+
+Return whether this is an 'interactive' stream.
+
+Return False if it can't be determined.
+[clinic start generated code]*/
static PyObject *
-iobase_isatty(PyObject *self, PyObject *args)
+_io__IOBase_isatty_impl(PyObject *self)
+/*[clinic end generated code: output=60cab77cede41cdd input=9ef76530d368458b]*/
{
if (_PyIOBase_check_closed(self, Py_True) == NULL)
return NULL;
@@ -439,30 +485,31 @@ iobase_isatty(PyObject *self, PyObject *args)
/* Readline(s) and writelines */
-PyDoc_STRVAR(iobase_readline_doc,
- "Read and return a line from the stream.\n"
- "\n"
- "If limit is specified, at most limit bytes will be read.\n"
- "\n"
- "The line terminator is always b'\\n' for binary files; for text\n"
- "files, the newlines argument to open can be used to select the line\n"
- "terminator(s) recognized.\n");
+/*[clinic input]
+_io._IOBase.readline
+ size as limit: io_ssize_t = -1
+ /
+
+Read and return a line from the stream.
+
+If size is specified, at most size bytes will be read.
+
+The line terminator is always b'\n' for binary files; for text
+files, the newlines argument to open can be used to select the line
+terminator(s) recognized.
+[clinic start generated code]*/
static PyObject *
-iobase_readline(PyObject *self, PyObject *args)
+_io__IOBase_readline_impl(PyObject *self, Py_ssize_t limit)
+/*[clinic end generated code: output=4479f79b58187840 input=df4cc8884f553cab]*/
{
/* For backwards compatibility, a (slowish) readline(). */
- Py_ssize_t limit = -1;
int has_peek = 0;
PyObject *buffer, *result;
Py_ssize_t old_size = -1;
_Py_IDENTIFIER(peek);
- if (!PyArg_ParseTuple(args, "|O&:readline", &_PyIO_ConvertSsize_t, &limit)) {
- return NULL;
- }
-
if (_PyObject_HasAttrId(self, &PyId_peek))
has_peek = 1;
@@ -585,23 +632,25 @@ iobase_iternext(PyObject *self)
return line;
}
-PyDoc_STRVAR(iobase_readlines_doc,
- "Return a list of lines from the stream.\n"
- "\n"
- "hint can be specified to control the number of lines read: no more\n"
- "lines will be read if the total size (in bytes/characters) of all\n"
- "lines so far exceeds hint.");
+/*[clinic input]
+_io._IOBase.readlines
+ hint: io_ssize_t = -1
+ /
+
+Return a list of lines from the stream.
+
+hint can be specified to control the number of lines read: no more
+lines will be read if the total size (in bytes/characters) of all
+lines so far exceeds hint.
+[clinic start generated code]*/
static PyObject *
-iobase_readlines(PyObject *self, PyObject *args)
+_io__IOBase_readlines_impl(PyObject *self, Py_ssize_t hint)
+/*[clinic end generated code: output=2f50421677fa3dea input=1961c4a95e96e661]*/
{
- Py_ssize_t hint = -1, length = 0;
+ Py_ssize_t length = 0;
PyObject *result;
- if (!PyArg_ParseTuple(args, "|O&:readlines", &_PyIO_ConvertSsize_t, &hint)) {
- return NULL;
- }
-
result = PyList_New(0);
if (result == NULL)
return NULL;
@@ -646,14 +695,17 @@ iobase_readlines(PyObject *self, PyObject *args)
return result;
}
+/*[clinic input]
+_io._IOBase.writelines
+ lines: object
+ /
+[clinic start generated code]*/
+
static PyObject *
-iobase_writelines(PyObject *self, PyObject *args)
+_io__IOBase_writelines(PyObject *self, PyObject *lines)
+/*[clinic end generated code: output=976eb0a9b60a6628 input=432e729a8450b3cb]*/
{
- PyObject *lines, *iter, *res;
-
- if (!PyArg_ParseTuple(args, "O:writelines", &lines)) {
- return NULL;
- }
+ PyObject *iter, *res;
if (_PyIOBase_check_closed(self, Py_True) == NULL)
return NULL;
@@ -688,31 +740,33 @@ iobase_writelines(PyObject *self, PyObject *args)
Py_RETURN_NONE;
}
+#include "clinic/iobase.c.h"
+
static PyMethodDef iobase_methods[] = {
{"seek", iobase_seek, METH_VARARGS, iobase_seek_doc},
- {"tell", iobase_tell, METH_NOARGS, iobase_tell_doc},
+ _IO__IOBASE_TELL_METHODDEF
{"truncate", iobase_truncate, METH_VARARGS, iobase_truncate_doc},
- {"flush", iobase_flush, METH_NOARGS, iobase_flush_doc},
- {"close", iobase_close, METH_NOARGS, iobase_close_doc},
+ _IO__IOBASE_FLUSH_METHODDEF
+ _IO__IOBASE_CLOSE_METHODDEF
- {"seekable", iobase_seekable, METH_NOARGS, iobase_seekable_doc},
- {"readable", iobase_readable, METH_NOARGS, iobase_readable_doc},
- {"writable", iobase_writable, METH_NOARGS, iobase_writable_doc},
+ _IO__IOBASE_SEEKABLE_METHODDEF
+ _IO__IOBASE_READABLE_METHODDEF
+ _IO__IOBASE_WRITABLE_METHODDEF
{"_checkClosed", _PyIOBase_check_closed, METH_NOARGS},
{"_checkSeekable", _PyIOBase_check_seekable, METH_NOARGS},
{"_checkReadable", _PyIOBase_check_readable, METH_NOARGS},
{"_checkWritable", _PyIOBase_check_writable, METH_NOARGS},
- {"fileno", iobase_fileno, METH_NOARGS, iobase_fileno_doc},
- {"isatty", iobase_isatty, METH_NOARGS, iobase_isatty_doc},
+ _IO__IOBASE_FILENO_METHODDEF
+ _IO__IOBASE_ISATTY_METHODDEF
{"__enter__", iobase_enter, METH_NOARGS},
{"__exit__", iobase_exit, METH_VARARGS},
- {"readline", iobase_readline, METH_VARARGS, iobase_readline_doc},
- {"readlines", iobase_readlines, METH_VARARGS, iobase_readlines_doc},
- {"writelines", iobase_writelines, METH_VARARGS},
+ _IO__IOBASE_READLINE_METHODDEF
+ _IO__IOBASE_READLINES_METHODDEF
+ _IO__IOBASE_WRITELINES_METHODDEF
{NULL, NULL}
};
@@ -795,16 +849,18 @@ PyDoc_STRVAR(rawiobase_doc,
* either.)
*/
+/*[clinic input]
+_io._RawIOBase.read
+ size as n: Py_ssize_t = -1
+ /
+[clinic start generated code]*/
+
static PyObject *
-rawiobase_read(PyObject *self, PyObject *args)
+_io__RawIOBase_read_impl(PyObject *self, Py_ssize_t n)
+/*[clinic end generated code: output=6cdeb731e3c9f13c input=b6d0dcf6417d1374]*/
{
- Py_ssize_t n = -1;
PyObject *b, *res;
- if (!PyArg_ParseTuple(args, "|n:read", &n)) {
- return NULL;
- }
-
if (n < 0) {
_Py_IDENTIFIER(readall);
@@ -836,11 +892,15 @@ rawiobase_read(PyObject *self, PyObject *args)
}
-PyDoc_STRVAR(rawiobase_readall_doc,
- "Read until EOF, using multiple read() call.");
+/*[clinic input]
+_io._RawIOBase.readall
+
+Read until EOF, using multiple read() call.
+[clinic start generated code]*/
static PyObject *
-rawiobase_readall(PyObject *self, PyObject *args)
+_io__RawIOBase_readall_impl(PyObject *self)
+/*[clinic end generated code: output=1987b9ce929425a0 input=688874141213622a]*/
{
int r;
PyObject *chunks = PyList_New(0);
@@ -892,9 +952,25 @@ rawiobase_readall(PyObject *self, PyObject *args)
return result;
}
+static PyObject *
+rawiobase_readinto(PyObject *self, PyObject *args)
+{
+ PyErr_SetNone(PyExc_NotImplementedError);
+ return NULL;
+}
+
+static PyObject *
+rawiobase_write(PyObject *self, PyObject *args)
+{
+ PyErr_SetNone(PyExc_NotImplementedError);
+ return NULL;
+}
+
static PyMethodDef rawiobase_methods[] = {
- {"read", rawiobase_read, METH_VARARGS},
- {"readall", rawiobase_readall, METH_NOARGS, rawiobase_readall_doc},
+ _IO__RAWIOBASE_READ_METHODDEF
+ _IO__RAWIOBASE_READALL_METHODDEF
+ {"readinto", rawiobase_readinto, METH_VARARGS},
+ {"write", rawiobase_write, METH_VARARGS},
{NULL, NULL}
};
diff --git a/Modules/_io/stringio.c b/Modules/_io/stringio.c
index 9d73884f73..8315ab8e70 100644
--- a/Modules/_io/stringio.c
+++ b/Modules/_io/stringio.c
@@ -11,6 +11,12 @@
#define STATE_REALIZED 1
#define STATE_ACCUMULATING 2
+/*[clinic input]
+module _io
+class _io.StringIO "stringio *" "&PyStringIO_Type"
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=c17bc0f42165cd7d]*/
+
typedef struct {
PyObject_HEAD
Py_UCS4 *buf;
@@ -39,6 +45,8 @@ typedef struct {
PyObject *weakreflist;
} stringio;
+static int _io_StringIO___init__(PyObject *self, PyObject *args, PyObject *kwargs);
+
#define CHECK_INITIALIZED(self) \
if (self->ok <= 0) { \
PyErr_SetString(PyExc_ValueError, \
@@ -58,12 +66,6 @@ typedef struct {
return NULL; \
}
-PyDoc_STRVAR(stringio_doc,
- "Text I/O implementation using an in-memory buffer.\n"
- "\n"
- "The initial_value argument sets the value of object. The newline\n"
- "argument is like the one of TextIOWrapper's constructor.");
-
/* Internal routine for changing the size, in terms of characters, of the
buffer of StringIO objects. The caller should ensure that the 'size'
@@ -264,11 +266,15 @@ fail:
return -1;
}
-PyDoc_STRVAR(stringio_getvalue_doc,
- "Retrieve the entire contents of the object.");
+/*[clinic input]
+_io.StringIO.getvalue
+
+Retrieve the entire contents of the object.
+[clinic start generated code]*/
static PyObject *
-stringio_getvalue(stringio *self)
+_io_StringIO_getvalue_impl(stringio *self)
+/*[clinic end generated code: output=27b6a7bfeaebce01 input=d23cb81d6791cf88]*/
{
CHECK_INITIALIZED(self);
CHECK_CLOSED(self);
@@ -278,33 +284,40 @@ stringio_getvalue(stringio *self)
self->string_size);
}
-PyDoc_STRVAR(stringio_tell_doc,
- "Tell the current file position.");
+/*[clinic input]
+_io.StringIO.tell
+
+Tell the current file position.
+[clinic start generated code]*/
static PyObject *
-stringio_tell(stringio *self)
+_io_StringIO_tell_impl(stringio *self)
+/*[clinic end generated code: output=2e87ac67b116c77b input=ec866ebaff02f405]*/
{
CHECK_INITIALIZED(self);
CHECK_CLOSED(self);
return PyLong_FromSsize_t(self->pos);
}
-PyDoc_STRVAR(stringio_read_doc,
- "Read at most n characters, returned as a string.\n"
- "\n"
- "If the argument is negative or omitted, read until EOF\n"
- "is reached. Return an empty string at EOF.\n");
+/*[clinic input]
+_io.StringIO.read
+ size as arg: object = None
+ /
+
+Read at most size characters, returned as a string.
+
+If the argument is negative or omitted, read until EOF
+is reached. Return an empty string at EOF.
+[clinic start generated code]*/
static PyObject *
-stringio_read(stringio *self, PyObject *args)
+_io_StringIO_read_impl(stringio *self, PyObject *arg)
+/*[clinic end generated code: output=3676864773746f68 input=9a319015f6f3965c]*/
{
Py_ssize_t size, n;
Py_UCS4 *output;
- PyObject *arg = Py_None;
CHECK_INITIALIZED(self);
- if (!PyArg_ParseTuple(args, "|O:read", &arg))
- return NULL;
CHECK_CLOSED(self);
if (PyNumber_Check(arg)) {
@@ -373,20 +386,23 @@ _stringio_readline(stringio *self, Py_ssize_t limit)
return PyUnicode_FromKindAndData(PyUnicode_4BYTE_KIND, start, len);
}
-PyDoc_STRVAR(stringio_readline_doc,
- "Read until newline or EOF.\n"
- "\n"
- "Returns an empty string if EOF is hit immediately.\n");
+/*[clinic input]
+_io.StringIO.readline
+ size as arg: object = None
+ /
+
+Read until newline or EOF.
+
+Returns an empty string if EOF is hit immediately.
+[clinic start generated code]*/
static PyObject *
-stringio_readline(stringio *self, PyObject *args)
+_io_StringIO_readline_impl(stringio *self, PyObject *arg)
+/*[clinic end generated code: output=99fdcac03a3dee81 input=e0e0ed4042040176]*/
{
- PyObject *arg = Py_None;
Py_ssize_t limit = -1;
CHECK_INITIALIZED(self);
- if (!PyArg_ParseTuple(args, "|O:readline", &arg))
- return NULL;
CHECK_CLOSED(self);
ENSURE_REALIZED(self);
@@ -441,22 +457,25 @@ stringio_iternext(stringio *self)
return line;
}
-PyDoc_STRVAR(stringio_truncate_doc,
- "Truncate size to pos.\n"
- "\n"
- "The pos argument defaults to the current file position, as\n"
- "returned by tell(). The current file position is unchanged.\n"
- "Returns the new absolute position.\n");
+/*[clinic input]
+_io.StringIO.truncate
+ pos as arg: object = None
+ /
+
+Truncate size to pos.
+
+The pos argument defaults to the current file position, as
+returned by tell(). The current file position is unchanged.
+Returns the new absolute position.
+[clinic start generated code]*/
static PyObject *
-stringio_truncate(stringio *self, PyObject *args)
+_io_StringIO_truncate_impl(stringio *self, PyObject *arg)
+/*[clinic end generated code: output=6072439c2b01d306 input=748619a494ba53ad]*/
{
Py_ssize_t size;
- PyObject *arg = Py_None;
CHECK_INITIALIZED(self);
- if (!PyArg_ParseTuple(args, "|O:truncate", &arg))
- return NULL;
CHECK_CLOSED(self);
if (PyNumber_Check(arg)) {
@@ -490,49 +509,51 @@ stringio_truncate(stringio *self, PyObject *args)
return PyLong_FromSsize_t(size);
}
-PyDoc_STRVAR(stringio_seek_doc,
- "Change stream position.\n"
- "\n"
- "Seek to character offset pos relative to position indicated by whence:\n"
- " 0 Start of stream (the default). pos should be >= 0;\n"
- " 1 Current position - pos must be 0;\n"
- " 2 End of stream - pos must be 0.\n"
- "Returns the new absolute position.\n");
+/*[clinic input]
+_io.StringIO.seek
+ pos: Py_ssize_t
+ whence: int = 0
+ /
+
+Change stream position.
+
+Seek to character offset pos relative to position indicated by whence:
+ 0 Start of stream (the default). pos should be >= 0;
+ 1 Current position - pos must be 0;
+ 2 End of stream - pos must be 0.
+Returns the new absolute position.
+[clinic start generated code]*/
static PyObject *
-stringio_seek(stringio *self, PyObject *args)
+_io_StringIO_seek_impl(stringio *self, Py_ssize_t pos, int whence)
+/*[clinic end generated code: output=e9e0ac9a8ae71c25 input=e3855b24e7cae06a]*/
{
- Py_ssize_t pos;
- int mode = 0;
-
CHECK_INITIALIZED(self);
- if (!PyArg_ParseTuple(args, "n|i:seek", &pos, &mode))
- return NULL;
CHECK_CLOSED(self);
- if (mode != 0 && mode != 1 && mode != 2) {
+ if (whence != 0 && whence != 1 && whence != 2) {
PyErr_Format(PyExc_ValueError,
- "Invalid whence (%i, should be 0, 1 or 2)", mode);
+ "Invalid whence (%i, should be 0, 1 or 2)", whence);
return NULL;
}
- else if (pos < 0 && mode == 0) {
+ else if (pos < 0 && whence == 0) {
PyErr_Format(PyExc_ValueError,
"Negative seek position %zd", pos);
return NULL;
}
- else if (mode != 0 && pos != 0) {
+ else if (whence != 0 && pos != 0) {
PyErr_SetString(PyExc_IOError,
"Can't do nonzero cur-relative seeks");
return NULL;
}
- /* mode 0: offset relative to beginning of the string.
- mode 1: no change to current position.
- mode 2: change position to end of file. */
- if (mode == 1) {
+ /* whence = 0: offset relative to beginning of the string.
+ whence = 1: no change to current position.
+ whence = 2: change position to end of file. */
+ if (whence == 1) {
pos = self->pos;
}
- else if (mode == 2) {
+ else if (whence == 2) {
pos = self->string_size;
}
@@ -541,14 +562,20 @@ stringio_seek(stringio *self, PyObject *args)
return PyLong_FromSsize_t(self->pos);
}
-PyDoc_STRVAR(stringio_write_doc,
- "Write string to file.\n"
- "\n"
- "Returns the number of characters written, which is always equal to\n"
- "the length of the string.\n");
+/*[clinic input]
+_io.StringIO.write
+ s as obj: object
+ /
+
+Write string to file.
+
+Returns the number of characters written, which is always equal to
+the length of the string.
+[clinic start generated code]*/
static PyObject *
-stringio_write(stringio *self, PyObject *obj)
+_io_StringIO_write(stringio *self, PyObject *obj)
+/*[clinic end generated code: output=0deaba91a15b94da input=cf96f3b16586e669]*/
{
Py_ssize_t size;
@@ -569,14 +596,20 @@ stringio_write(stringio *self, PyObject *obj)
return PyLong_FromSsize_t(size);
}
-PyDoc_STRVAR(stringio_close_doc,
- "Close the IO object. Attempting any further operation after the\n"
- "object is closed will raise a ValueError.\n"
- "\n"
- "This method has no effect if the file is already closed.\n");
+/*[clinic input]
+_io.StringIO.close
+
+Close the IO object.
+
+Attempting any further operation after the object is closed
+will raise a ValueError.
+
+This method has no effect if the file is already closed.
+[clinic start generated code]*/
static PyObject *
-stringio_close(stringio *self)
+_io_StringIO_close_impl(stringio *self)
+/*[clinic end generated code: output=04399355cbe518f1 input=cbc10b45f35d6d46]*/
{
self->closed = 1;
/* Free up some memory */
@@ -644,19 +677,25 @@ stringio_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
return (PyObject *)self;
}
+/*[clinic input]
+_io.StringIO.__init__
+ initial_value as value: object(c_default="NULL") = ''
+ newline as newline_obj: object(c_default="NULL") = '\n'
+
+Text I/O implementation using an in-memory buffer.
+
+The initial_value argument sets the value of object. The newline
+argument is like the one of TextIOWrapper's constructor.
+[clinic start generated code]*/
+
static int
-stringio_init(stringio *self, PyObject *args, PyObject *kwds)
+_io_StringIO___init___impl(stringio *self, PyObject *value,
+ PyObject *newline_obj)
+/*[clinic end generated code: output=a421ea023b22ef4e input=cee2d9181b2577a3]*/
{
- char *kwlist[] = {"initial_value", "newline", NULL};
- PyObject *value = NULL;
- PyObject *newline_obj = NULL;
char *newline = "\n";
Py_ssize_t value_len;
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "|OO:__init__", kwlist,
- &value, &newline_obj))
- return -1;
-
/* Parse the newline argument. This used to be done with the 'z'
specifier, however this allowed any object with the buffer interface to
be converted. Thus we have to parse it manually since we only want to
@@ -761,33 +800,45 @@ stringio_init(stringio *self, PyObject *args, PyObject *kwds)
/* Properties and pseudo-properties */
-PyDoc_STRVAR(stringio_readable_doc,
-"readable() -> bool. Returns True if the IO object can be read.");
+/*[clinic input]
+_io.StringIO.readable
-PyDoc_STRVAR(stringio_writable_doc,
-"writable() -> bool. Returns True if the IO object can be written.");
-
-PyDoc_STRVAR(stringio_seekable_doc,
-"seekable() -> bool. Returns True if the IO object can be seeked.");
+Returns True if the IO object can be read.
+[clinic start generated code]*/
static PyObject *
-stringio_seekable(stringio *self, PyObject *args)
+_io_StringIO_readable_impl(stringio *self)
+/*[clinic end generated code: output=b19d44dd8b1ceb99 input=39ce068b224c21ad]*/
{
CHECK_INITIALIZED(self);
CHECK_CLOSED(self);
Py_RETURN_TRUE;
}
+/*[clinic input]
+_io.StringIO.writable
+
+Returns True if the IO object can be written.
+[clinic start generated code]*/
+
static PyObject *
-stringio_readable(stringio *self, PyObject *args)
+_io_StringIO_writable_impl(stringio *self)
+/*[clinic end generated code: output=13e4dd77187074ca input=7a691353aac38835]*/
{
CHECK_INITIALIZED(self);
CHECK_CLOSED(self);
Py_RETURN_TRUE;
}
+/*[clinic input]
+_io.StringIO.seekable
+
+Returns True if the IO object can be seeked.
+[clinic start generated code]*/
+
static PyObject *
-stringio_writable(stringio *self, PyObject *args)
+_io_StringIO_seekable_impl(stringio *self)
+/*[clinic end generated code: output=4d20b4641c756879 input=4c606d05b32952e6]*/
{
CHECK_INITIALIZED(self);
CHECK_CLOSED(self);
@@ -809,7 +860,7 @@ stringio_writable(stringio *self, PyObject *args)
static PyObject *
stringio_getstate(stringio *self)
{
- PyObject *initvalue = stringio_getvalue(self);
+ PyObject *initvalue = _io_StringIO_getvalue_impl(self);
PyObject *dict;
PyObject *state;
@@ -857,7 +908,7 @@ stringio_setstate(stringio *self, PyObject *state)
initarg = PyTuple_GetSlice(state, 0, 2);
if (initarg == NULL)
return NULL;
- if (stringio_init(self, initarg, NULL) < 0) {
+ if (_io_StringIO___init__((PyObject *)self, initarg, NULL) < 0) {
Py_DECREF(initarg);
return NULL;
}
@@ -959,19 +1010,21 @@ stringio_newlines(stringio *self, void *context)
return PyObject_GetAttr(self->decoder, _PyIO_str_newlines);
}
+#include "clinic/stringio.c.h"
+
static struct PyMethodDef stringio_methods[] = {
- {"close", (PyCFunction)stringio_close, METH_NOARGS, stringio_close_doc},
- {"getvalue", (PyCFunction)stringio_getvalue, METH_NOARGS, stringio_getvalue_doc},
- {"read", (PyCFunction)stringio_read, METH_VARARGS, stringio_read_doc},
- {"readline", (PyCFunction)stringio_readline, METH_VARARGS, stringio_readline_doc},
- {"tell", (PyCFunction)stringio_tell, METH_NOARGS, stringio_tell_doc},
- {"truncate", (PyCFunction)stringio_truncate, METH_VARARGS, stringio_truncate_doc},
- {"seek", (PyCFunction)stringio_seek, METH_VARARGS, stringio_seek_doc},
- {"write", (PyCFunction)stringio_write, METH_O, stringio_write_doc},
-
- {"seekable", (PyCFunction)stringio_seekable, METH_NOARGS, stringio_seekable_doc},
- {"readable", (PyCFunction)stringio_readable, METH_NOARGS, stringio_readable_doc},
- {"writable", (PyCFunction)stringio_writable, METH_NOARGS, stringio_writable_doc},
+ _IO_STRINGIO_CLOSE_METHODDEF
+ _IO_STRINGIO_GETVALUE_METHODDEF
+ _IO_STRINGIO_READ_METHODDEF
+ _IO_STRINGIO_READLINE_METHODDEF
+ _IO_STRINGIO_TELL_METHODDEF
+ _IO_STRINGIO_TRUNCATE_METHODDEF
+ _IO_STRINGIO_SEEK_METHODDEF
+ _IO_STRINGIO_WRITE_METHODDEF
+
+ _IO_STRINGIO_SEEKABLE_METHODDEF
+ _IO_STRINGIO_READABLE_METHODDEF
+ _IO_STRINGIO_WRITABLE_METHODDEF
{"__getstate__", (PyCFunction)stringio_getstate, METH_NOARGS},
{"__setstate__", (PyCFunction)stringio_setstate, METH_O},
@@ -1013,7 +1066,7 @@ PyTypeObject PyStringIO_Type = {
0, /*tp_as_buffer*/
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE
| Py_TPFLAGS_HAVE_GC, /*tp_flags*/
- stringio_doc, /*tp_doc*/
+ _io_StringIO___init____doc__, /*tp_doc*/
(traverseproc)stringio_traverse, /*tp_traverse*/
(inquiry)stringio_clear, /*tp_clear*/
0, /*tp_richcompare*/
@@ -1028,7 +1081,7 @@ PyTypeObject PyStringIO_Type = {
0, /*tp_descr_get*/
0, /*tp_descr_set*/
offsetof(stringio, dict), /*tp_dictoffset*/
- (initproc)stringio_init, /*tp_init*/
+ _io_StringIO___init__, /*tp_init*/
0, /*tp_alloc*/
stringio_new, /*tp_new*/
};
diff --git a/Modules/_io/textio.c b/Modules/_io/textio.c
index b419275a80..c962c0ba08 100644
--- a/Modules/_io/textio.c
+++ b/Modules/_io/textio.c
@@ -11,6 +11,20 @@
#include "structmember.h"
#include "_iomodule.h"
+/*[clinic input]
+module _io
+class _io.IncrementalNewlineDecoder "nldecoder_object *" "&PyIncrementalNewlineDecoder_Type"
+class _io.TextIOWrapper "textio *" "&TextIOWrapper_TYpe"
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=2097a4fc85670c26]*/
+
+/*[python input]
+class io_ssize_t_converter(CConverter):
+ type = 'Py_ssize_t'
+ converter = '_PyIO_ConvertSsize_t'
+[python start generated code]*/
+/*[python end generated code: output=da39a3ee5e6b4b0d input=d0a811d3cbfd1b33]*/
+
_Py_IDENTIFIER(close);
_Py_IDENTIFIER(_dealloc_warn);
_Py_IDENTIFIER(decode);
@@ -210,38 +224,37 @@ PyTypeObject PyTextIOBase_Type = {
/* IncrementalNewlineDecoder */
-PyDoc_STRVAR(incrementalnewlinedecoder_doc,
- "Codec used when reading a file in universal newlines mode. It wraps\n"
- "another incremental decoder, translating \\r\\n and \\r into \\n. It also\n"
- "records the types of newlines encountered. When used with\n"
- "translate=False, it ensures that the newline sequence is returned in\n"
- "one piece. When used with decoder=None, it expects unicode strings as\n"
- "decode input and translates newlines without first invoking an external\n"
- "decoder.\n"
- );
-
typedef struct {
PyObject_HEAD
PyObject *decoder;
PyObject *errors;
- signed int pendingcr: 1;
- signed int translate: 1;
+ unsigned int pendingcr: 1;
+ unsigned int translate: 1;
unsigned int seennl: 3;
} nldecoder_object;
-static int
-incrementalnewlinedecoder_init(nldecoder_object *self,
- PyObject *args, PyObject *kwds)
-{
- PyObject *decoder;
- int translate;
- PyObject *errors = NULL;
- char *kwlist[] = {"decoder", "translate", "errors", NULL};
+/*[clinic input]
+_io.IncrementalNewlineDecoder.__init__
+ decoder: object
+ translate: int
+ errors: object(c_default="NULL") = "strict"
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "Oi|O:IncrementalNewlineDecoder",
- kwlist, &decoder, &translate, &errors))
- return -1;
+Codec used when reading a file in universal newlines mode.
+
+It wraps another incremental decoder, translating \r\n and \r into \n.
+It also records the types of newlines encountered. When used with
+translate=False, it ensures that the newline sequence is returned in
+one piece. When used with decoder=None, it expects unicode strings as
+decode input and translates newlines without first invoking an external
+decoder.
+[clinic start generated code]*/
+static int
+_io_IncrementalNewlineDecoder___init___impl(nldecoder_object *self,
+ PyObject *decoder, int translate,
+ PyObject *errors)
+/*[clinic end generated code: output=fbd04d443e764ec2 input=89db6b19c6b126bf]*/
+{
self->decoder = decoder;
Py_INCREF(decoder);
@@ -495,22 +508,27 @@ _PyIncrementalNewlineDecoder_decode(PyObject *myself,
return NULL;
}
+/*[clinic input]
+_io.IncrementalNewlineDecoder.decode
+ input: object
+ final: int(c_default="0") = False
+[clinic start generated code]*/
+
static PyObject *
-incrementalnewlinedecoder_decode(nldecoder_object *self,
- PyObject *args, PyObject *kwds)
+_io_IncrementalNewlineDecoder_decode_impl(nldecoder_object *self,
+ PyObject *input, int final)
+/*[clinic end generated code: output=0d486755bb37a66e input=d65677385bfd6827]*/
{
- char *kwlist[] = {"input", "final", NULL};
- PyObject *input;
- int final = 0;
-
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|i:IncrementalNewlineDecoder",
- kwlist, &input, &final))
- return NULL;
return _PyIncrementalNewlineDecoder_decode((PyObject *) self, input, final);
}
+/*[clinic input]
+_io.IncrementalNewlineDecoder.getstate
+[clinic start generated code]*/
+
static PyObject *
-incrementalnewlinedecoder_getstate(nldecoder_object *self, PyObject *args)
+_io_IncrementalNewlineDecoder_getstate_impl(nldecoder_object *self)
+/*[clinic end generated code: output=f0d2c9c136f4e0d0 input=f8ff101825e32e7f]*/
{
PyObject *buffer;
unsigned PY_LONG_LONG flag;
@@ -520,7 +538,7 @@ incrementalnewlinedecoder_getstate(nldecoder_object *self, PyObject *args)
_PyIO_str_getstate, NULL);
if (state == NULL)
return NULL;
- if (!PyArg_Parse(state, "(OK)", &buffer, &flag)) {
+ if (!PyArg_ParseTuple(state, "OK", &buffer, &flag)) {
Py_DECREF(state);
return NULL;
}
@@ -537,16 +555,24 @@ incrementalnewlinedecoder_getstate(nldecoder_object *self, PyObject *args)
return Py_BuildValue("NK", buffer, flag);
}
+/*[clinic input]
+_io.IncrementalNewlineDecoder.setstate
+ state: object
+ /
+[clinic start generated code]*/
+
static PyObject *
-incrementalnewlinedecoder_setstate(nldecoder_object *self, PyObject *state)
+_io_IncrementalNewlineDecoder_setstate(nldecoder_object *self,
+ PyObject *state)
+/*[clinic end generated code: output=c10c622508b576cb input=c53fb505a76dbbe2]*/
{
PyObject *buffer;
unsigned PY_LONG_LONG flag;
- if (!PyArg_Parse(state, "(OK)", &buffer, &flag))
+ if (!PyArg_ParseTuple(state, "OK", &buffer, &flag))
return NULL;
- self->pendingcr = (int) flag & 1;
+ self->pendingcr = (int) (flag & 1);
flag >>= 1;
if (self->decoder != Py_None)
@@ -556,8 +582,13 @@ incrementalnewlinedecoder_setstate(nldecoder_object *self, PyObject *state)
Py_RETURN_NONE;
}
+/*[clinic input]
+_io.IncrementalNewlineDecoder.reset
+[clinic start generated code]*/
+
static PyObject *
-incrementalnewlinedecoder_reset(nldecoder_object *self, PyObject *args)
+_io_IncrementalNewlineDecoder_reset_impl(nldecoder_object *self)
+/*[clinic end generated code: output=32fa40c7462aa8ff input=728678ddaea776df]*/
{
self->seennl = 0;
self->pendingcr = 0;
@@ -591,95 +622,8 @@ incrementalnewlinedecoder_newlines_get(nldecoder_object *self, void *context)
}
-
-static PyMethodDef incrementalnewlinedecoder_methods[] = {
- {"decode", (PyCFunction)incrementalnewlinedecoder_decode, METH_VARARGS|METH_KEYWORDS},
- {"getstate", (PyCFunction)incrementalnewlinedecoder_getstate, METH_NOARGS},
- {"setstate", (PyCFunction)incrementalnewlinedecoder_setstate, METH_O},
- {"reset", (PyCFunction)incrementalnewlinedecoder_reset, METH_NOARGS},
- {NULL}
-};
-
-static PyGetSetDef incrementalnewlinedecoder_getset[] = {
- {"newlines", (getter)incrementalnewlinedecoder_newlines_get, NULL, NULL},
- {NULL}
-};
-
-PyTypeObject PyIncrementalNewlineDecoder_Type = {
- PyVarObject_HEAD_INIT(NULL, 0)
- "_io.IncrementalNewlineDecoder", /*tp_name*/
- sizeof(nldecoder_object), /*tp_basicsize*/
- 0, /*tp_itemsize*/
- (destructor)incrementalnewlinedecoder_dealloc, /*tp_dealloc*/
- 0, /*tp_print*/
- 0, /*tp_getattr*/
- 0, /*tp_setattr*/
- 0, /*tp_compare */
- 0, /*tp_repr*/
- 0, /*tp_as_number*/
- 0, /*tp_as_sequence*/
- 0, /*tp_as_mapping*/
- 0, /*tp_hash */
- 0, /*tp_call*/
- 0, /*tp_str*/
- 0, /*tp_getattro*/
- 0, /*tp_setattro*/
- 0, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/
- incrementalnewlinedecoder_doc, /* tp_doc */
- 0, /* tp_traverse */
- 0, /* tp_clear */
- 0, /* tp_richcompare */
- 0, /*tp_weaklistoffset*/
- 0, /* tp_iter */
- 0, /* tp_iternext */
- incrementalnewlinedecoder_methods, /* tp_methods */
- 0, /* tp_members */
- incrementalnewlinedecoder_getset, /* tp_getset */
- 0, /* tp_base */
- 0, /* tp_dict */
- 0, /* tp_descr_get */
- 0, /* tp_descr_set */
- 0, /* tp_dictoffset */
- (initproc)incrementalnewlinedecoder_init, /* tp_init */
- 0, /* tp_alloc */
- PyType_GenericNew, /* tp_new */
-};
-
-
/* TextIOWrapper */
-PyDoc_STRVAR(textiowrapper_doc,
- "Character and line based layer over a BufferedIOBase object, buffer.\n"
- "\n"
- "encoding gives the name of the encoding that the stream will be\n"
- "decoded or encoded with. It defaults to locale.getpreferredencoding(False).\n"
- "\n"
- "errors determines the strictness of encoding and decoding (see\n"
- "help(codecs.Codec) or the documentation for codecs.register) and\n"
- "defaults to \"strict\".\n"
- "\n"
- "newline controls how line endings are handled. It can be None, '',\n"
- "'\\n', '\\r', and '\\r\\n'. It works as follows:\n"
- "\n"
- "* On input, if newline is None, universal newlines mode is\n"
- " enabled. Lines in the input can end in '\\n', '\\r', or '\\r\\n', and\n"
- " these are translated into '\\n' before being returned to the\n"
- " caller. If it is '', universal newline mode is enabled, but line\n"
- " endings are returned to the caller untranslated. If it has any of\n"
- " the other legal values, input lines are only terminated by the given\n"
- " string, and the line ending is returned to the caller untranslated.\n"
- "\n"
- "* On output, if newline is None, any '\\n' characters written are\n"
- " translated to the system default line separator, os.linesep. If\n"
- " newline is '' or '\\n', no translation takes place. If newline is any\n"
- " of the other legal values, any '\\n' characters written are translated\n"
- " to the given string.\n"
- "\n"
- "If line_buffering is True, a call to flush is implied when a call to\n"
- "write contains a newline character."
- );
-
typedef PyObject *
(*encodefunc_t)(PyObject *, PyObject *);
@@ -742,7 +686,6 @@ typedef struct
PyObject *dict;
} textio;
-
/* A couple of specialized cases in order to bypass the slow incremental
encoding methods for the most popular encodings. */
@@ -843,28 +786,59 @@ static encodefuncentry encodefuncs[] = {
};
+/*[clinic input]
+_io.TextIOWrapper.__init__
+ buffer: object
+ encoding: str(accept={str, NoneType}) = NULL
+ errors: str(accept={str, NoneType}) = NULL
+ newline: str(accept={str, NoneType}) = NULL
+ line_buffering: int(c_default="0") = False
+ write_through: int(c_default="0") = False
+
+Character and line based layer over a BufferedIOBase object, buffer.
+
+encoding gives the name of the encoding that the stream will be
+decoded or encoded with. It defaults to locale.getpreferredencoding(False).
+
+errors determines the strictness of encoding and decoding (see
+help(codecs.Codec) or the documentation for codecs.register) and
+defaults to "strict".
+
+newline controls how line endings are handled. It can be None, '',
+'\n', '\r', and '\r\n'. It works as follows:
+
+* On input, if newline is None, universal newlines mode is
+ enabled. Lines in the input can end in '\n', '\r', or '\r\n', and
+ these are translated into '\n' before being returned to the
+ caller. If it is '', universal newline mode is enabled, but line
+ endings are returned to the caller untranslated. If it has any of
+ the other legal values, input lines are only terminated by the given
+ string, and the line ending is returned to the caller untranslated.
+
+* On output, if newline is None, any '\n' characters written are
+ translated to the system default line separator, os.linesep. If
+ newline is '' or '\n', no translation takes place. If newline is any
+ of the other legal values, any '\n' characters written are translated
+ to the given string.
+
+If line_buffering is True, a call to flush is implied when a call to
+write contains a newline character.
+[clinic start generated code]*/
+
static int
-textiowrapper_init(textio *self, PyObject *args, PyObject *kwds)
-{
- char *kwlist[] = {"buffer", "encoding", "errors",
- "newline", "line_buffering", "write_through",
- NULL};
- PyObject *buffer, *raw, *codec_info = NULL;
- char *encoding = NULL;
- char *errors = NULL;
- char *newline = NULL;
- int line_buffering = 0, write_through = 0;
+_io_TextIOWrapper___init___impl(textio *self, PyObject *buffer,
+ const char *encoding, const char *errors,
+ const char *newline, int line_buffering,
+ int write_through)
+/*[clinic end generated code: output=56a83402ce2a8381 input=3126cb3101a2c99b]*/
+{
+ PyObject *raw, *codec_info = NULL;
_PyIO_State *state = NULL;
-
PyObject *res;
int r;
self->ok = 0;
self->detached = 0;
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|zzzii:fileio",
- kwlist, &buffer, &encoding, &errors,
- &newline, &line_buffering, &write_through))
- return -1;
if (newline && newline[0] != '\0'
&& !(newline[0] == '\n' && newline[1] == '\0')
@@ -1244,8 +1218,13 @@ textiowrapper_closed_get(textio *self, void *context);
}
+/*[clinic input]
+_io.TextIOWrapper.detach
+[clinic start generated code]*/
+
static PyObject *
-textiowrapper_detach(textio *self)
+_io_TextIOWrapper_detach_impl(textio *self)
+/*[clinic end generated code: output=7ba3715cd032d5f2 input=e5a71fbda9e1d9f9]*/
{
PyObject *buffer, *res;
CHECK_ATTACHED(self);
@@ -1290,25 +1269,26 @@ _textiowrapper_writeflush(textio *self)
return 0;
}
+/*[clinic input]
+_io.TextIOWrapper.write
+ text: unicode
+ /
+[clinic start generated code]*/
+
static PyObject *
-textiowrapper_write(textio *self, PyObject *args)
+_io_TextIOWrapper_write_impl(textio *self, PyObject *text)
+/*[clinic end generated code: output=d2deb0d50771fcec input=fdf19153584a0e44]*/
{
PyObject *ret;
- PyObject *text; /* owned reference */
PyObject *b;
Py_ssize_t textlen;
int haslf = 0;
int needflush = 0, text_needflush = 0;
- CHECK_ATTACHED(self);
-
- if (!PyArg_ParseTuple(args, "U:write", &text)) {
- return NULL;
- }
-
if (PyUnicode_READY(text) == -1)
return NULL;
+ CHECK_ATTACHED(self);
CHECK_CLOSED(self);
if (self->encoder == NULL)
@@ -1441,6 +1421,7 @@ textiowrapper_read_chunk(textio *self, Py_ssize_t size_hint)
PyObject *dec_buffer = NULL;
PyObject *dec_flags = NULL;
PyObject *input_chunk = NULL;
+ Py_buffer input_chunk_buf;
PyObject *decoded_chars, *chunk_size;
Py_ssize_t nbytes, nchars;
int eof;
@@ -1468,7 +1449,16 @@ textiowrapper_read_chunk(textio *self, Py_ssize_t size_hint)
/* Given this, we know there was a valid snapshot point
* len(dec_buffer) bytes ago with decoder state (b'', dec_flags).
*/
- if (PyArg_Parse(state, "(OO)", &dec_buffer, &dec_flags) < 0) {
+ if (PyArg_ParseTuple(state, "OO", &dec_buffer, &dec_flags) < 0) {
+ Py_DECREF(state);
+ return -1;
+ }
+
+ if (!PyBytes_Check(dec_buffer)) {
+ PyErr_Format(PyExc_TypeError,
+ "decoder getstate() should have returned a bytes "
+ "object, not '%.200s'",
+ Py_TYPE(dec_buffer)->tp_name);
Py_DECREF(state);
return -1;
}
@@ -1484,23 +1474,24 @@ textiowrapper_read_chunk(textio *self, Py_ssize_t size_hint)
chunk_size = PyLong_FromSsize_t(Py_MAX(self->chunk_size, size_hint));
if (chunk_size == NULL)
goto fail;
+
input_chunk = PyObject_CallMethodObjArgs(self->buffer,
(self->has_read1 ? _PyIO_str_read1: _PyIO_str_read),
chunk_size, NULL);
Py_DECREF(chunk_size);
if (input_chunk == NULL)
goto fail;
- if (!PyBytes_Check(input_chunk)) {
+
+ if (PyObject_GetBuffer(input_chunk, &input_chunk_buf, 0) != 0) {
PyErr_Format(PyExc_TypeError,
- "underlying %s() should have returned a bytes object, "
+ "underlying %s() should have returned a bytes-like object, "
"not '%.200s'", (self->has_read1 ? "read1": "read"),
Py_TYPE(input_chunk)->tp_name);
goto fail;
}
- nbytes = PyBytes_Size(input_chunk);
+ nbytes = input_chunk_buf.len;
eof = (nbytes == 0);
-
if (Py_TYPE(self->decoder) == &PyIncrementalNewlineDecoder_Type) {
decoded_chars = _PyIncrementalNewlineDecoder_decode(
self->decoder, input_chunk, eof);
@@ -1509,6 +1500,7 @@ textiowrapper_read_chunk(textio *self, Py_ssize_t size_hint)
decoded_chars = PyObject_CallMethodObjArgs(self->decoder,
_PyIO_str_decode, input_chunk, eof ? Py_True : Py_False, NULL);
}
+ PyBuffer_Release(&input_chunk_buf);
if (check_decoded(decoded_chars) < 0)
goto fail;
@@ -1525,18 +1517,12 @@ textiowrapper_read_chunk(textio *self, Py_ssize_t size_hint)
/* At the snapshot point, len(dec_buffer) bytes before the read, the
* next input to be decoded is dec_buffer + input_chunk.
*/
- PyObject *next_input = PyNumber_Add(dec_buffer, input_chunk);
- if (next_input == NULL)
- goto fail;
- if (!PyBytes_Check(next_input)) {
- PyErr_Format(PyExc_TypeError,
- "decoder getstate() should have returned a bytes "
- "object, not '%.200s'",
- Py_TYPE(next_input)->tp_name);
- Py_DECREF(next_input);
+ PyObject *next_input = dec_buffer;
+ PyBytes_Concat(&next_input, input_chunk);
+ if (next_input == NULL) {
+ dec_buffer = NULL; /* Reference lost to PyBytes_Concat */
goto fail;
}
- Py_DECREF(dec_buffer);
Py_CLEAR(self->snapshot);
self->snapshot = Py_BuildValue("NN", dec_flags, next_input);
}
@@ -1551,17 +1537,19 @@ textiowrapper_read_chunk(textio *self, Py_ssize_t size_hint)
return -1;
}
+/*[clinic input]
+_io.TextIOWrapper.read
+ size as n: io_ssize_t = -1
+ /
+[clinic start generated code]*/
+
static PyObject *
-textiowrapper_read(textio *self, PyObject *args)
+_io_TextIOWrapper_read_impl(textio *self, Py_ssize_t n)
+/*[clinic end generated code: output=7e651ce6cc6a25a6 input=8c09398424085cca]*/
{
- Py_ssize_t n = -1;
PyObject *result = NULL, *chunks = NULL;
CHECK_ATTACHED(self);
-
- if (!PyArg_ParseTuple(args, "|O&:read", &_PyIO_ConvertSsize_t, &n))
- return NULL;
-
CHECK_CLOSED(self);
if (self->decoder == NULL)
@@ -1725,7 +1713,7 @@ _PyIO_find_line_ending(
else {
/* Non-universal mode. */
Py_ssize_t readnl_len = PyUnicode_GET_LENGTH(readnl);
- char *nl = PyUnicode_DATA(readnl);
+ Py_UCS1 *nl = PyUnicode_1BYTE_DATA(readnl);
/* Assume that readnl is an ASCII character. */
assert(PyUnicode_KIND(readnl) == PyUnicode_1BYTE_KIND);
if (readnl_len == 1) {
@@ -1927,16 +1915,18 @@ _textiowrapper_readline(textio *self, Py_ssize_t limit)
return NULL;
}
+/*[clinic input]
+_io.TextIOWrapper.readline
+ size: Py_ssize_t = -1
+ /
+[clinic start generated code]*/
+
static PyObject *
-textiowrapper_readline(textio *self, PyObject *args)
+_io_TextIOWrapper_readline_impl(textio *self, Py_ssize_t size)
+/*[clinic end generated code: output=344afa98804e8b25 input=56c7172483b36db6]*/
{
- Py_ssize_t limit = -1;
-
CHECK_ATTACHED(self);
- if (!PyArg_ParseTuple(args, "|n:readline", &limit)) {
- return NULL;
- }
- return _textiowrapper_readline(self, limit);
+ return _textiowrapper_readline(self, size);
}
/* Seek and Tell */
@@ -2068,19 +2058,23 @@ _textiowrapper_encoder_setstate(textio *self, cookie_type *cookie)
self, cookie->start_pos == 0 && cookie->dec_flags == 0);
}
+/*[clinic input]
+_io.TextIOWrapper.seek
+ cookie as cookieObj: object
+ whence: int = 0
+ /
+[clinic start generated code]*/
+
static PyObject *
-textiowrapper_seek(textio *self, PyObject *args)
+_io_TextIOWrapper_seek_impl(textio *self, PyObject *cookieObj, int whence)
+/*[clinic end generated code: output=0a15679764e2d04d input=0458abeb3d7842be]*/
{
- PyObject *cookieObj, *posobj;
+ PyObject *posobj;
cookie_type cookie;
- int whence = 0;
PyObject *res;
int cmp;
CHECK_ATTACHED(self);
-
- if (!PyArg_ParseTuple(args, "O|i:seek", &cookieObj, &whence))
- return NULL;
CHECK_CLOSED(self);
Py_INCREF(cookieObj);
@@ -2252,8 +2246,13 @@ textiowrapper_seek(textio *self, PyObject *args)
}
+/*[clinic input]
+_io.TextIOWrapper.tell
+[clinic start generated code]*/
+
static PyObject *
-textiowrapper_tell(textio *self, PyObject *args)
+_io_TextIOWrapper_tell_impl(textio *self)
+/*[clinic end generated code: output=4f168c08bf34ad5f input=9a2caf88c24f9ddf]*/
{
PyObject *res;
PyObject *posobj = NULL;
@@ -2263,7 +2262,6 @@ textiowrapper_tell(textio *self, PyObject *args)
Py_ssize_t skip_bytes, skip_back;
PyObject *saved_state = NULL;
char *input, *input_end;
- char *dec_buffer;
Py_ssize_t dec_buffer_len;
int dec_flags;
@@ -2306,7 +2304,7 @@ textiowrapper_tell(textio *self, PyObject *args)
goto fail;
/* Skip backward to the snapshot point (see _read_chunk). */
- if (!PyArg_Parse(self->snapshot, "(iO)", &cookie.dec_flags, &next_input))
+ if (!PyArg_ParseTuple(self->snapshot, "iO", &cookie.dec_flags, &next_input))
goto fail;
assert (PyBytes_Check(next_input));
@@ -2328,14 +2326,24 @@ textiowrapper_tell(textio *self, PyObject *args)
goto fail;
#define DECODER_GETSTATE() do { \
+ PyObject *dec_buffer; \
PyObject *_state = PyObject_CallMethodObjArgs(self->decoder, \
_PyIO_str_getstate, NULL); \
if (_state == NULL) \
goto fail; \
- if (!PyArg_Parse(_state, "(y#i)", &dec_buffer, &dec_buffer_len, &dec_flags)) { \
+ if (!PyArg_ParseTuple(_state, "Oi", &dec_buffer, &dec_flags)) { \
+ Py_DECREF(_state); \
+ goto fail; \
+ } \
+ if (!PyBytes_Check(dec_buffer)) { \
+ PyErr_Format(PyExc_TypeError, \
+ "decoder getstate() should have returned a bytes " \
+ "object, not '%.200s'", \
+ Py_TYPE(dec_buffer)->tp_name); \
Py_DECREF(_state); \
goto fail; \
} \
+ dec_buffer_len = PyBytes_GET_SIZE(dec_buffer); \
Py_DECREF(_state); \
} while (0)
@@ -2460,16 +2468,19 @@ fail:
return NULL;
}
+/*[clinic input]
+_io.TextIOWrapper.truncate
+ pos: object = None
+ /
+[clinic start generated code]*/
+
static PyObject *
-textiowrapper_truncate(textio *self, PyObject *args)
+_io_TextIOWrapper_truncate_impl(textio *self, PyObject *pos)
+/*[clinic end generated code: output=90ec2afb9bb7745f input=56ec8baa65aea377]*/
{
- PyObject *pos = Py_None;
PyObject *res;
CHECK_ATTACHED(self)
- if (!PyArg_ParseTuple(args, "|O:truncate", &pos)) {
- return NULL;
- }
res = PyObject_CallMethodObjArgs((PyObject *) self, _PyIO_str_flush, NULL);
if (res == NULL)
@@ -2534,36 +2545,61 @@ error:
/* Inquiries */
+/*[clinic input]
+_io.TextIOWrapper.fileno
+[clinic start generated code]*/
+
static PyObject *
-textiowrapper_fileno(textio *self, PyObject *args)
+_io_TextIOWrapper_fileno_impl(textio *self)
+/*[clinic end generated code: output=21490a4c3da13e6c input=c488ca83d0069f9b]*/
{
CHECK_ATTACHED(self);
return _PyObject_CallMethodId(self->buffer, &PyId_fileno, NULL);
}
+/*[clinic input]
+_io.TextIOWrapper.seekable
+[clinic start generated code]*/
+
static PyObject *
-textiowrapper_seekable(textio *self, PyObject *args)
+_io_TextIOWrapper_seekable_impl(textio *self)
+/*[clinic end generated code: output=ab223dbbcffc0f00 input=8b005ca06e1fca13]*/
{
CHECK_ATTACHED(self);
return _PyObject_CallMethodId(self->buffer, &PyId_seekable, NULL);
}
+/*[clinic input]
+_io.TextIOWrapper.readable
+[clinic start generated code]*/
+
static PyObject *
-textiowrapper_readable(textio *self, PyObject *args)
+_io_TextIOWrapper_readable_impl(textio *self)
+/*[clinic end generated code: output=72ff7ba289a8a91b input=0704ea7e01b0d3eb]*/
{
CHECK_ATTACHED(self);
return _PyObject_CallMethodId(self->buffer, &PyId_readable, NULL);
}
+/*[clinic input]
+_io.TextIOWrapper.writable
+[clinic start generated code]*/
+
static PyObject *
-textiowrapper_writable(textio *self, PyObject *args)
+_io_TextIOWrapper_writable_impl(textio *self)
+/*[clinic end generated code: output=a728c71790d03200 input=c41740bc9d8636e8]*/
{
CHECK_ATTACHED(self);
return _PyObject_CallMethodId(self->buffer, &PyId_writable, NULL);
}
+/*[clinic input]
+_io.TextIOWrapper.isatty
+[clinic start generated code]*/
+
static PyObject *
-textiowrapper_isatty(textio *self, PyObject *args)
+_io_TextIOWrapper_isatty_impl(textio *self)
+/*[clinic end generated code: output=12be1a35bace882e input=fb68d9f2c99bbfff]*/
{
CHECK_ATTACHED(self);
return _PyObject_CallMethodId(self->buffer, &PyId_isatty, NULL);
@@ -2577,8 +2613,13 @@ textiowrapper_getstate(textio *self, PyObject *args)
return NULL;
}
+/*[clinic input]
+_io.TextIOWrapper.flush
+[clinic start generated code]*/
+
static PyObject *
-textiowrapper_flush(textio *self, PyObject *args)
+_io_TextIOWrapper_flush_impl(textio *self)
+/*[clinic end generated code: output=59de9165f9c2e4d2 input=928c60590694ab85]*/
{
CHECK_ATTACHED(self);
CHECK_CLOSED(self);
@@ -2588,8 +2629,13 @@ textiowrapper_flush(textio *self, PyObject *args)
return _PyObject_CallMethodId(self->buffer, &PyId_flush, NULL);
}
+/*[clinic input]
+_io.TextIOWrapper.close
+[clinic start generated code]*/
+
static PyObject *
-textiowrapper_close(textio *self, PyObject *args)
+_io_TextIOWrapper_close_impl(textio *self)
+/*[clinic end generated code: output=056ccf8b4876e4f4 input=9c2114315eae1948]*/
{
PyObject *res;
int r;
@@ -2733,24 +2779,81 @@ textiowrapper_chunk_size_set(textio *self, PyObject *arg, void *context)
return 0;
}
+#include "clinic/textio.c.h"
+
+static PyMethodDef incrementalnewlinedecoder_methods[] = {
+ _IO_INCREMENTALNEWLINEDECODER_DECODE_METHODDEF
+ _IO_INCREMENTALNEWLINEDECODER_GETSTATE_METHODDEF
+ _IO_INCREMENTALNEWLINEDECODER_SETSTATE_METHODDEF
+ _IO_INCREMENTALNEWLINEDECODER_RESET_METHODDEF
+ {NULL}
+};
+
+static PyGetSetDef incrementalnewlinedecoder_getset[] = {
+ {"newlines", (getter)incrementalnewlinedecoder_newlines_get, NULL, NULL},
+ {NULL}
+};
+
+PyTypeObject PyIncrementalNewlineDecoder_Type = {
+ PyVarObject_HEAD_INIT(NULL, 0)
+ "_io.IncrementalNewlineDecoder", /*tp_name*/
+ sizeof(nldecoder_object), /*tp_basicsize*/
+ 0, /*tp_itemsize*/
+ (destructor)incrementalnewlinedecoder_dealloc, /*tp_dealloc*/
+ 0, /*tp_print*/
+ 0, /*tp_getattr*/
+ 0, /*tp_setattr*/
+ 0, /*tp_compare */
+ 0, /*tp_repr*/
+ 0, /*tp_as_number*/
+ 0, /*tp_as_sequence*/
+ 0, /*tp_as_mapping*/
+ 0, /*tp_hash */
+ 0, /*tp_call*/
+ 0, /*tp_str*/
+ 0, /*tp_getattro*/
+ 0, /*tp_setattro*/
+ 0, /*tp_as_buffer*/
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/
+ _io_IncrementalNewlineDecoder___init____doc__, /* tp_doc */
+ 0, /* tp_traverse */
+ 0, /* tp_clear */
+ 0, /* tp_richcompare */
+ 0, /*tp_weaklistoffset*/
+ 0, /* tp_iter */
+ 0, /* tp_iternext */
+ incrementalnewlinedecoder_methods, /* tp_methods */
+ 0, /* tp_members */
+ incrementalnewlinedecoder_getset, /* tp_getset */
+ 0, /* tp_base */
+ 0, /* tp_dict */
+ 0, /* tp_descr_get */
+ 0, /* tp_descr_set */
+ 0, /* tp_dictoffset */
+ _io_IncrementalNewlineDecoder___init__, /* tp_init */
+ 0, /* tp_alloc */
+ PyType_GenericNew, /* tp_new */
+};
+
+
static PyMethodDef textiowrapper_methods[] = {
- {"detach", (PyCFunction)textiowrapper_detach, METH_NOARGS},
- {"write", (PyCFunction)textiowrapper_write, METH_VARARGS},
- {"read", (PyCFunction)textiowrapper_read, METH_VARARGS},
- {"readline", (PyCFunction)textiowrapper_readline, METH_VARARGS},
- {"flush", (PyCFunction)textiowrapper_flush, METH_NOARGS},
- {"close", (PyCFunction)textiowrapper_close, METH_NOARGS},
-
- {"fileno", (PyCFunction)textiowrapper_fileno, METH_NOARGS},
- {"seekable", (PyCFunction)textiowrapper_seekable, METH_NOARGS},
- {"readable", (PyCFunction)textiowrapper_readable, METH_NOARGS},
- {"writable", (PyCFunction)textiowrapper_writable, METH_NOARGS},
- {"isatty", (PyCFunction)textiowrapper_isatty, METH_NOARGS},
+ _IO_TEXTIOWRAPPER_DETACH_METHODDEF
+ _IO_TEXTIOWRAPPER_WRITE_METHODDEF
+ _IO_TEXTIOWRAPPER_READ_METHODDEF
+ _IO_TEXTIOWRAPPER_READLINE_METHODDEF
+ _IO_TEXTIOWRAPPER_FLUSH_METHODDEF
+ _IO_TEXTIOWRAPPER_CLOSE_METHODDEF
+
+ _IO_TEXTIOWRAPPER_FILENO_METHODDEF
+ _IO_TEXTIOWRAPPER_SEEKABLE_METHODDEF
+ _IO_TEXTIOWRAPPER_READABLE_METHODDEF
+ _IO_TEXTIOWRAPPER_WRITABLE_METHODDEF
+ _IO_TEXTIOWRAPPER_ISATTY_METHODDEF
{"__getstate__", (PyCFunction)textiowrapper_getstate, METH_NOARGS},
- {"seek", (PyCFunction)textiowrapper_seek, METH_VARARGS},
- {"tell", (PyCFunction)textiowrapper_tell, METH_NOARGS},
- {"truncate", (PyCFunction)textiowrapper_truncate, METH_VARARGS},
+ _IO_TEXTIOWRAPPER_SEEK_METHODDEF
+ _IO_TEXTIOWRAPPER_TELL_METHODDEF
+ _IO_TEXTIOWRAPPER_TRUNCATE_METHODDEF
{NULL, NULL}
};
@@ -2796,7 +2899,7 @@ PyTypeObject PyTextIOWrapper_Type = {
0, /*tp_as_buffer*/
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE
| Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
- textiowrapper_doc, /* tp_doc */
+ _io_TextIOWrapper___init____doc__, /* tp_doc */
(traverseproc)textiowrapper_traverse, /* tp_traverse */
(inquiry)textiowrapper_clear, /* tp_clear */
0, /* tp_richcompare */
@@ -2811,7 +2914,7 @@ PyTypeObject PyTextIOWrapper_Type = {
0, /* tp_descr_get */
0, /* tp_descr_set */
offsetof(textio, dict), /*tp_dictoffset*/
- (initproc)textiowrapper_init, /* tp_init */
+ _io_TextIOWrapper___init__, /* tp_init */
0, /* tp_alloc */
PyType_GenericNew, /* tp_new */
0, /* tp_free */
diff --git a/Modules/_json.c b/Modules/_json.c
index dded2c965b..f63d758348 100644
--- a/Modules/_json.c
+++ b/Modules/_json.c
@@ -47,7 +47,7 @@ typedef struct _PyEncoderObject {
PyObject *item_separator;
PyObject *sort_keys;
PyObject *skipkeys;
- int fast_encode;
+ PyCFunction fast_encode;
int allow_nan;
} PyEncoderObject;
@@ -225,26 +225,122 @@ ascii_escape_unicode(PyObject *pystr)
return rval;
}
+static PyObject *
+escape_unicode(PyObject *pystr)
+{
+ /* Take a PyUnicode pystr and return a new escaped PyUnicode */
+ Py_ssize_t i;
+ Py_ssize_t input_chars;
+ Py_ssize_t output_size;
+ Py_ssize_t chars;
+ PyObject *rval;
+ void *input;
+ int kind;
+ Py_UCS4 maxchar;
+
+ if (PyUnicode_READY(pystr) == -1)
+ return NULL;
+
+ maxchar = PyUnicode_MAX_CHAR_VALUE(pystr);
+ input_chars = PyUnicode_GET_LENGTH(pystr);
+ input = PyUnicode_DATA(pystr);
+ kind = PyUnicode_KIND(pystr);
+
+ /* Compute the output size */
+ for (i = 0, output_size = 2; i < input_chars; i++) {
+ Py_UCS4 c = PyUnicode_READ(kind, input, i);
+ Py_ssize_t d;
+ switch (c) {
+ case '\\': case '"': case '\b': case '\f':
+ case '\n': case '\r': case '\t':
+ d = 2;
+ break;
+ default:
+ if (c <= 0x1f)
+ d = 6;
+ else
+ d = 1;
+ }
+ if (output_size > PY_SSIZE_T_MAX - d) {
+ PyErr_SetString(PyExc_OverflowError, "string is too long to escape");
+ return NULL;
+ }
+ output_size += d;
+ }
+
+ rval = PyUnicode_New(output_size, maxchar);
+ if (rval == NULL)
+ return NULL;
+
+ kind = PyUnicode_KIND(rval);
+
+#define ENCODE_OUTPUT do { \
+ chars = 0; \
+ output[chars++] = '"'; \
+ for (i = 0; i < input_chars; i++) { \
+ Py_UCS4 c = PyUnicode_READ(kind, input, i); \
+ switch (c) { \
+ case '\\': output[chars++] = '\\'; output[chars++] = c; break; \
+ case '"': output[chars++] = '\\'; output[chars++] = c; break; \
+ case '\b': output[chars++] = '\\'; output[chars++] = 'b'; break; \
+ case '\f': output[chars++] = '\\'; output[chars++] = 'f'; break; \
+ case '\n': output[chars++] = '\\'; output[chars++] = 'n'; break; \
+ case '\r': output[chars++] = '\\'; output[chars++] = 'r'; break; \
+ case '\t': output[chars++] = '\\'; output[chars++] = 't'; break; \
+ default: \
+ if (c <= 0x1f) { \
+ output[chars++] = '\\'; \
+ output[chars++] = 'u'; \
+ output[chars++] = '0'; \
+ output[chars++] = '0'; \
+ output[chars++] = Py_hexdigits[(c >> 4) & 0xf]; \
+ output[chars++] = Py_hexdigits[(c ) & 0xf]; \
+ } else { \
+ output[chars++] = c; \
+ } \
+ } \
+ } \
+ output[chars++] = '"'; \
+ } while (0)
+
+ if (kind == PyUnicode_1BYTE_KIND) {
+ Py_UCS1 *output = PyUnicode_1BYTE_DATA(rval);
+ ENCODE_OUTPUT;
+ } else if (kind == PyUnicode_2BYTE_KIND) {
+ Py_UCS2 *output = PyUnicode_2BYTE_DATA(rval);
+ ENCODE_OUTPUT;
+ } else {
+ Py_UCS4 *output = PyUnicode_4BYTE_DATA(rval);
+ assert(kind == PyUnicode_4BYTE_KIND);
+ ENCODE_OUTPUT;
+ }
+#undef ENCODE_OUTPUT
+
+#ifdef Py_DEBUG
+ assert(_PyUnicode_CheckConsistency(rval, 1));
+#endif
+ return rval;
+}
+
static void
raise_errmsg(char *msg, PyObject *s, Py_ssize_t end)
{
- /* Use the Python function json.decoder.errmsg to raise a nice
- looking ValueError exception */
- static PyObject *errmsg_fn = NULL;
- PyObject *pymsg;
- if (errmsg_fn == NULL) {
+ /* Use JSONDecodeError exception to raise a nice looking ValueError subclass */
+ static PyObject *JSONDecodeError = NULL;
+ PyObject *exc;
+ if (JSONDecodeError == NULL) {
PyObject *decoder = PyImport_ImportModule("json.decoder");
if (decoder == NULL)
return;
- errmsg_fn = PyObject_GetAttrString(decoder, "errmsg");
+ JSONDecodeError = PyObject_GetAttrString(decoder, "JSONDecodeError");
Py_DECREF(decoder);
- if (errmsg_fn == NULL)
+ if (JSONDecodeError == NULL)
return;
}
- pymsg = PyObject_CallFunction(errmsg_fn, "(zOn)", msg, s, end);
- if (pymsg) {
- PyErr_SetObject(PyExc_ValueError, pymsg);
- Py_DECREF(pymsg);
+ exc = PyObject_CallFunction(JSONDecodeError, "(zOn)", msg, s, end);
+ if (exc) {
+ PyErr_SetObject(JSONDecodeError, exc);
+ Py_DECREF(exc);
}
}
@@ -537,6 +633,31 @@ py_encode_basestring_ascii(PyObject* self UNUSED, PyObject *pystr)
return rval;
}
+
+PyDoc_STRVAR(pydoc_encode_basestring,
+ "encode_basestring(string) -> string\n"
+ "\n"
+ "Return a JSON representation of a Python string"
+);
+
+static PyObject *
+py_encode_basestring(PyObject* self UNUSED, PyObject *pystr)
+{
+ PyObject *rval;
+ /* Return a JSON representation of a Python string */
+ /* METH_O */
+ if (PyUnicode_Check(pystr)) {
+ rval = escape_unicode(pystr);
+ }
+ else {
+ PyErr_Format(PyExc_TypeError,
+ "first argument must be a string, not %.80s",
+ Py_TYPE(pystr)->tp_name);
+ return NULL;
+ }
+ return rval;
+}
+
static void
scanner_dealloc(PyObject *self)
{
@@ -715,7 +836,7 @@ bail:
static PyObject *
_parse_array_unicode(PyScannerObject *s, PyObject *pystr, Py_ssize_t idx, Py_ssize_t *next_idx_ptr) {
- /* Read a JSON array from PyString pystr.
+ /* Read a JSON array from PyUnicode pystr.
idx is the index of the first character after the opening brace.
*next_idx_ptr is a return-by-reference index to the first character after
the closing brace.
@@ -787,8 +908,8 @@ bail:
}
static PyObject *
-_parse_constant(PyScannerObject *s, char *constant, Py_ssize_t idx, Py_ssize_t *next_idx_ptr) {
- /* Read a JSON constant from PyString pystr.
+_parse_constant(PyScannerObject *s, const char *constant, Py_ssize_t idx, Py_ssize_t *next_idx_ptr) {
+ /* Read a JSON constant.
constant is the constant string that was found
("NaN", "Infinity", "-Infinity").
idx is the index of the first character of the constant
@@ -820,7 +941,7 @@ _match_number_unicode(PyScannerObject *s, PyObject *pystr, Py_ssize_t start, Py_
the number.
Returns a new PyObject representation of that number:
- PyInt, PyLong, or PyFloat.
+ PyLong, or PyFloat.
May return other types if parse_int or parse_float are set
*/
void *str;
@@ -1244,7 +1365,14 @@ encoder_init(PyObject *self, PyObject *args, PyObject *kwds)
s->item_separator = item_separator;
s->sort_keys = sort_keys;
s->skipkeys = skipkeys;
- s->fast_encode = (PyCFunction_Check(s->encoder) && PyCFunction_GetFunction(s->encoder) == (PyCFunction)py_encode_basestring_ascii);
+ s->fast_encode = NULL;
+ if (PyCFunction_Check(s->encoder)) {
+ PyCFunction f = PyCFunction_GetFunction(s->encoder);
+ if (f == (PyCFunction)py_encode_basestring_ascii ||
+ f == (PyCFunction)py_encode_basestring) {
+ s->fast_encode = f;
+ }
+ }
s->allow_nan = allow_nan;
Py_INCREF(s->markers);
@@ -1393,7 +1521,7 @@ encoder_encode_string(PyEncoderObject *s, PyObject *obj)
{
/* Return the JSON representation of a string */
if (s->fast_encode)
- return py_encode_basestring_ascii(NULL, obj);
+ return s->fast_encode(NULL, obj);
else
return PyObject_CallFunctionObjArgs(s->encoder, obj, NULL);
}
@@ -1840,6 +1968,10 @@ static PyMethodDef speedups_methods[] = {
(PyCFunction)py_encode_basestring_ascii,
METH_O,
pydoc_encode_basestring_ascii},
+ {"encode_basestring",
+ (PyCFunction)py_encode_basestring,
+ METH_O,
+ pydoc_encode_basestring},
{"scanstring",
(PyCFunction)py_scanstring,
METH_VARARGS,
@@ -1862,7 +1994,7 @@ static struct PyModuleDef jsonmodule = {
NULL
};
-PyObject*
+PyMODINIT_FUNC
PyInit__json(void)
{
PyObject *m = PyModule_Create(&jsonmodule);
diff --git a/Modules/_lsprof.c b/Modules/_lsprof.c
index 0137d95443..66e534f2a8 100644
--- a/Modules/_lsprof.c
+++ b/Modules/_lsprof.c
@@ -202,6 +202,8 @@ normalizeUserObj(PyObject *obj)
*/
PyObject *self = fn->m_self;
PyObject *name = PyUnicode_FromString(fn->m_ml->ml_name);
+ PyObject *modname = fn->m_module;
+
if (name != NULL) {
PyObject *mo = _PyType_Lookup(Py_TYPE(self), name);
Py_XINCREF(mo);
@@ -213,9 +215,14 @@ normalizeUserObj(PyObject *obj)
return res;
}
}
+ /* Otherwise, use __module__ */
PyErr_Clear();
- return PyUnicode_FromFormat("<built-in method %s>",
- fn->m_ml->ml_name);
+ if (modname != NULL && PyUnicode_Check(modname))
+ return PyUnicode_FromFormat("<built-in method %S.%s>",
+ modname, fn->m_ml->ml_name);
+ else
+ return PyUnicode_FromFormat("<built-in method %s>",
+ fn->m_ml->ml_name);
}
}
diff --git a/Modules/_lzmamodule.c b/Modules/_lzmamodule.c
index c43676ab75..7e4e2dfa8e 100644
--- a/Modules/_lzmamodule.c
+++ b/Modules/_lzmamodule.c
@@ -66,6 +66,9 @@ typedef struct {
int check;
char eof;
PyObject *unused_data;
+ char needs_input;
+ uint8_t *input_buffer;
+ size_t input_buffer_size;
#ifdef WITH_THREAD
PyThread_type_lock lock;
#endif
@@ -142,10 +145,15 @@ PyLzma_Free(void *opaque, void *ptr)
#endif
static int
-grow_buffer(PyObject **buf)
+grow_buffer(PyObject **buf, Py_ssize_t max_length)
{
- size_t size = PyBytes_GET_SIZE(*buf);
- return _PyBytes_Resize(buf, size + (size >> 3) + 6);
+ Py_ssize_t size = PyBytes_GET_SIZE(*buf);
+ Py_ssize_t newsize = size + (size >> 3) + 6;
+
+ if (max_length > 0 && newsize > max_length)
+ newsize = max_length;
+
+ return _PyBytes_Resize(buf, newsize);
}
@@ -470,12 +478,11 @@ error:
/*[clinic input]
-output preset file
module _lzma
class _lzma.LZMACompressor "Compressor *" "&Compressor_type"
class _lzma.LZMADecompressor "Decompressor *" "&Decompressor_type"
[clinic start generated code]*/
-/*[clinic end generated code: output=da39a3ee5e6b4b0d input=f17afc786525d6c2]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=2c14bbe05ff0c147]*/
#include "clinic/_lzmamodule.c.h"
@@ -504,7 +511,7 @@ class lzma_filter_converter(CConverter):
static PyObject *
compress(Compressor *c, uint8_t *data, size_t len, lzma_action action)
{
- size_t data_size = 0;
+ Py_ssize_t data_size = 0;
PyObject *result;
result = PyBytes_FromStringAndSize(NULL, INITIAL_BUFFER_SIZE);
@@ -527,7 +534,7 @@ compress(Compressor *c, uint8_t *data, size_t len, lzma_action action)
(action == LZMA_FINISH && lzret == LZMA_STREAM_END)) {
break;
} else if (c->lzs.avail_out == 0) {
- if (grow_buffer(&result) == -1)
+ if (grow_buffer(&result, -1) == -1)
goto error;
c->lzs.next_out = (uint8_t *)PyBytes_AS_STRING(result) + data_size;
c->lzs.avail_out = PyBytes_GET_SIZE(result) - data_size;
@@ -888,25 +895,33 @@ static PyTypeObject Compressor_type = {
/* LZMADecompressor class. */
-static PyObject *
-decompress(Decompressor *d, uint8_t *data, size_t len)
+/* Decompress data of length d->lzs.avail_in in d->lzs.next_in. The output
+ buffer is allocated dynamically and returned. At most max_length bytes are
+ returned, so some of the input may not be consumed. d->lzs.next_in and
+ d->lzs.avail_in are updated to reflect the consumed input. */
+static PyObject*
+decompress_buf(Decompressor *d, Py_ssize_t max_length)
{
- size_t data_size = 0;
+ Py_ssize_t data_size = 0;
PyObject *result;
+ lzma_stream *lzs = &d->lzs;
- result = PyBytes_FromStringAndSize(NULL, INITIAL_BUFFER_SIZE);
+ if (max_length < 0 || max_length >= INITIAL_BUFFER_SIZE)
+ result = PyBytes_FromStringAndSize(NULL, INITIAL_BUFFER_SIZE);
+ else
+ result = PyBytes_FromStringAndSize(NULL, max_length);
if (result == NULL)
return NULL;
- d->lzs.next_in = data;
- d->lzs.avail_in = len;
- d->lzs.next_out = (uint8_t *)PyBytes_AS_STRING(result);
- d->lzs.avail_out = PyBytes_GET_SIZE(result);
+
+ lzs->next_out = (uint8_t *)PyBytes_AS_STRING(result);
+ lzs->avail_out = PyBytes_GET_SIZE(result);
+
for (;;) {
lzma_ret lzret;
Py_BEGIN_ALLOW_THREADS
- lzret = lzma_code(&d->lzs, LZMA_RUN);
- data_size = (char *)d->lzs.next_out - PyBytes_AS_STRING(result);
+ lzret = lzma_code(lzs, LZMA_RUN);
+ data_size = (char *)lzs->next_out - PyBytes_AS_STRING(result);
Py_END_ALLOW_THREADS
if (catch_lzma_error(lzret))
goto error;
@@ -914,26 +929,131 @@ decompress(Decompressor *d, uint8_t *data, size_t len)
d->check = lzma_get_check(&d->lzs);
if (lzret == LZMA_STREAM_END) {
d->eof = 1;
- if (d->lzs.avail_in > 0) {
- Py_CLEAR(d->unused_data);
- d->unused_data = PyBytes_FromStringAndSize(
- (char *)d->lzs.next_in, d->lzs.avail_in);
- if (d->unused_data == NULL)
- goto error;
- }
break;
- } else if (d->lzs.avail_in == 0) {
+ } else if (lzs->avail_in == 0) {
break;
- } else if (d->lzs.avail_out == 0) {
- if (grow_buffer(&result) == -1)
+ } else if (lzs->avail_out == 0) {
+ if (data_size == max_length)
+ break;
+ if (grow_buffer(&result, max_length) == -1)
goto error;
- d->lzs.next_out = (uint8_t *)PyBytes_AS_STRING(result) + data_size;
- d->lzs.avail_out = PyBytes_GET_SIZE(result) - data_size;
+ lzs->next_out = (uint8_t *)PyBytes_AS_STRING(result) + data_size;
+ lzs->avail_out = PyBytes_GET_SIZE(result) - data_size;
}
}
if (data_size != PyBytes_GET_SIZE(result))
if (_PyBytes_Resize(&result, data_size) == -1)
goto error;
+
+ return result;
+
+error:
+ Py_XDECREF(result);
+ return NULL;
+}
+
+static PyObject *
+decompress(Decompressor *d, uint8_t *data, size_t len, Py_ssize_t max_length)
+{
+ char input_buffer_in_use;
+ PyObject *result;
+ lzma_stream *lzs = &d->lzs;
+
+ /* Prepend unconsumed input if necessary */
+ if (lzs->next_in != NULL) {
+ size_t avail_now, avail_total;
+
+ /* Number of bytes we can append to input buffer */
+ avail_now = (d->input_buffer + d->input_buffer_size)
+ - (lzs->next_in + lzs->avail_in);
+
+ /* Number of bytes we can append if we move existing
+ contents to beginning of buffer (overwriting
+ consumed input) */
+ avail_total = d->input_buffer_size - lzs->avail_in;
+
+ if (avail_total < len) {
+ size_t offset = lzs->next_in - d->input_buffer;
+ uint8_t *tmp;
+ size_t new_size = d->input_buffer_size + len - avail_now;
+
+ /* Assign to temporary variable first, so we don't
+ lose address of allocated buffer if realloc fails */
+ tmp = PyMem_Realloc(d->input_buffer, new_size);
+ if (tmp == NULL) {
+ PyErr_SetNone(PyExc_MemoryError);
+ return NULL;
+ }
+ d->input_buffer = tmp;
+ d->input_buffer_size = new_size;
+
+ lzs->next_in = d->input_buffer + offset;
+ }
+ else if (avail_now < len) {
+ memmove(d->input_buffer, lzs->next_in,
+ lzs->avail_in);
+ lzs->next_in = d->input_buffer;
+ }
+ memcpy((void*)(lzs->next_in + lzs->avail_in), data, len);
+ lzs->avail_in += len;
+ input_buffer_in_use = 1;
+ }
+ else {
+ lzs->next_in = data;
+ lzs->avail_in = len;
+ input_buffer_in_use = 0;
+ }
+
+ result = decompress_buf(d, max_length);
+ if(result == NULL)
+ return NULL;
+
+ if (d->eof) {
+ d->needs_input = 0;
+ if (lzs->avail_in > 0) {
+ Py_CLEAR(d->unused_data);
+ d->unused_data = PyBytes_FromStringAndSize(
+ (char *)lzs->next_in, lzs->avail_in);
+ if (d->unused_data == NULL)
+ goto error;
+ }
+ }
+ else if (lzs->avail_in == 0) {
+ lzs->next_in = NULL;
+ d->needs_input = 1;
+ }
+ else {
+ d->needs_input = 0;
+
+ /* If we did not use the input buffer, we now have
+ to copy the tail from the caller's buffer into the
+ input buffer */
+ if (!input_buffer_in_use) {
+
+ /* Discard buffer if it's too small
+ (resizing it may needlessly copy the current contents) */
+ if (d->input_buffer != NULL &&
+ d->input_buffer_size < lzs->avail_in) {
+ PyMem_Free(d->input_buffer);
+ d->input_buffer = NULL;
+ }
+
+ /* Allocate if necessary */
+ if (d->input_buffer == NULL) {
+ d->input_buffer = PyMem_Malloc(lzs->avail_in);
+ if (d->input_buffer == NULL) {
+ PyErr_SetNone(PyExc_MemoryError);
+ goto error;
+ }
+ d->input_buffer_size = lzs->avail_in;
+ }
+
+ /* Copy tail */
+ memcpy(d->input_buffer, lzs->next_in, lzs->avail_in);
+ lzs->next_in = d->input_buffer;
+ }
+ }
+
return result;
error:
@@ -946,20 +1066,28 @@ _lzma.LZMADecompressor.decompress
self: self(type="Decompressor *")
data: Py_buffer
- /
+ max_length: Py_ssize_t=-1
+
+Decompress *data*, returning uncompressed data as bytes.
-Provide data to the decompressor object.
+If *max_length* is nonnegative, returns at most *max_length* bytes of
+decompressed data. If this limit is reached and further output can be
+produced, *self.needs_input* will be set to ``False``. In this case, the next
+call to *decompress()* may provide *data* as b'' to obtain more of the output.
-Returns a chunk of decompressed data if possible, or b'' otherwise.
+If all of the input data was decompressed and returned (either because this
+was less than *max_length* bytes, or because *max_length* was negative),
+*self.needs_input* will be set to True.
-Attempting to decompress data after the end of stream is reached
-raises an EOFError. Any data found after the end of the stream
-is ignored and saved in the unused_data attribute.
+Attempting to decompress data after the end of stream is reached raises an
+EOFError. Any data found after the end of the stream is ignored and saved in
+the unused_data attribute.
[clinic start generated code]*/
static PyObject *
-_lzma_LZMADecompressor_decompress_impl(Decompressor *self, Py_buffer *data)
-/*[clinic end generated code: output=d86e78da7ff0ff21 input=50c4768b821bf0ef]*/
+_lzma_LZMADecompressor_decompress_impl(Decompressor *self, Py_buffer *data,
+ Py_ssize_t max_length)
+/*[clinic end generated code: output=ef4e20ec7122241d input=f2bb902cc1caf203]*/
{
PyObject *result = NULL;
@@ -967,7 +1095,7 @@ _lzma_LZMADecompressor_decompress_impl(Decompressor *self, Py_buffer *data)
if (self->eof)
PyErr_SetString(PyExc_EOFError, "Already at end of stream");
else
- result = decompress(self, data->buf, data->len);
+ result = decompress(self, data->buf, data->len, max_length);
RELEASE_LOCK(self);
return result;
}
@@ -1023,8 +1151,9 @@ For one-shot decompression, use the decompress() function instead.
[clinic start generated code]*/
static int
-_lzma_LZMADecompressor___init___impl(Decompressor *self, int format, PyObject *memlimit, PyObject *filters)
-/*[clinic end generated code: output=9b119f6f2cc2d7a8 input=458ca6132ef29801]*/
+_lzma_LZMADecompressor___init___impl(Decompressor *self, int format,
+ PyObject *memlimit, PyObject *filters)
+/*[clinic end generated code: output=3e1821f8aa36564c input=458ca6132ef29801]*/
{
const uint32_t decoder_flags = LZMA_TELL_ANY_CHECK | LZMA_TELL_NO_CHECK;
uint64_t memlimit_ = UINT64_MAX;
@@ -1055,6 +1184,7 @@ _lzma_LZMADecompressor___init___impl(Decompressor *self, int format, PyObject *m
self->alloc.alloc = PyLzma_Malloc;
self->alloc.free = PyLzma_Free;
self->lzs.allocator = &self->alloc;
+ self->lzs.next_in = NULL;
#ifdef WITH_THREAD
self->lock = PyThread_allocate_lock();
@@ -1065,6 +1195,9 @@ _lzma_LZMADecompressor___init___impl(Decompressor *self, int format, PyObject *m
#endif
self->check = LZMA_CHECK_UNKNOWN;
+ self->needs_input = 1;
+ self->input_buffer = NULL;
+ self->input_buffer_size = 0;
self->unused_data = PyBytes_FromStringAndSize(NULL, 0);
if (self->unused_data == NULL)
goto error;
@@ -1113,6 +1246,9 @@ error:
static void
Decompressor_dealloc(Decompressor *self)
{
+ if(self->input_buffer != NULL)
+ PyMem_Free(self->input_buffer);
+
lzma_end(&self->lzs);
Py_CLEAR(self->unused_data);
#ifdef WITH_THREAD
@@ -1134,6 +1270,9 @@ PyDoc_STRVAR(Decompressor_check_doc,
PyDoc_STRVAR(Decompressor_eof_doc,
"True if the end-of-stream marker has been reached.");
+PyDoc_STRVAR(Decompressor_needs_input_doc,
+"True if more input is needed before more decompressed data can be produced.");
+
PyDoc_STRVAR(Decompressor_unused_data_doc,
"Data found after the end of the compressed stream.");
@@ -1142,6 +1281,8 @@ static PyMemberDef Decompressor_members[] = {
Decompressor_check_doc},
{"eof", T_BOOL, offsetof(Decompressor, eof), READONLY,
Decompressor_eof_doc},
+ {"needs_input", T_BOOL, offsetof(Decompressor, needs_input), READONLY,
+ Decompressor_needs_input_doc},
{"unused_data", T_OBJECT_EX, offsetof(Decompressor, unused_data), READONLY,
Decompressor_unused_data_doc},
{NULL}
@@ -1260,8 +1401,9 @@ The result does not include the filter ID itself, only the options.
[clinic start generated code]*/
static PyObject *
-_lzma__decode_filter_properties_impl(PyModuleDef *module, lzma_vli filter_id, Py_buffer *encoded_props)
-/*[clinic end generated code: output=235f7f5345d48744 input=246410800782160c]*/
+_lzma__decode_filter_properties_impl(PyModuleDef *module, lzma_vli filter_id,
+ Py_buffer *encoded_props)
+/*[clinic end generated code: output=af248f570746668b input=246410800782160c]*/
{
lzma_filter filter;
lzma_ret lzret;
diff --git a/Modules/_opcode.c b/Modules/_opcode.c
index fee388f596..663bb21a5f 100644
--- a/Modules/_opcode.c
+++ b/Modules/_opcode.c
@@ -6,6 +6,8 @@ module _opcode
[clinic start generated code]*/
/*[clinic end generated code: output=da39a3ee5e6b4b0d input=117442e66eb376e6]*/
+#include "clinic/_opcode.c.h"
+
/*[clinic input]
_opcode.stack_effect -> int
@@ -17,42 +19,9 @@ _opcode.stack_effect -> int
Compute the stack effect of the opcode.
[clinic start generated code]*/
-PyDoc_STRVAR(_opcode_stack_effect__doc__,
-"stack_effect($module, opcode, oparg=None, /)\n"
-"--\n"
-"\n"
-"Compute the stack effect of the opcode.");
-
-#define _OPCODE_STACK_EFFECT_METHODDEF \
- {"stack_effect", (PyCFunction)_opcode_stack_effect, METH_VARARGS, _opcode_stack_effect__doc__},
-
-static int
-_opcode_stack_effect_impl(PyModuleDef *module, int opcode, PyObject *oparg);
-
-static PyObject *
-_opcode_stack_effect(PyModuleDef *module, PyObject *args)
-{
- PyObject *return_value = NULL;
- int opcode;
- PyObject *oparg = Py_None;
- int _return_value;
-
- if (!PyArg_ParseTuple(args,
- "i|O:stack_effect",
- &opcode, &oparg))
- goto exit;
- _return_value = _opcode_stack_effect_impl(module, opcode, oparg);
- if ((_return_value == -1) && PyErr_Occurred())
- goto exit;
- return_value = PyLong_FromLong((long)_return_value);
-
-exit:
- return return_value;
-}
-
static int
_opcode_stack_effect_impl(PyModuleDef *module, int opcode, PyObject *oparg)
-/*[clinic end generated code: output=9e1133f8d587bc67 input=2d0a9ee53c0418f5]*/
+/*[clinic end generated code: output=1fcafd5596c6b050 input=2d0a9ee53c0418f5]*/
{
int effect;
int oparg_int = 0;
diff --git a/Modules/_operator.c b/Modules/_operator.c
index adeb99e90a..735affcdbb 100644
--- a/Modules/_operator.c
+++ b/Modules/_operator.c
@@ -69,6 +69,7 @@ spami(truth , PyObject_IsTrue)
spam2(op_add , PyNumber_Add)
spam2(op_sub , PyNumber_Subtract)
spam2(op_mul , PyNumber_Multiply)
+spam2(op_matmul , PyNumber_MatrixMultiply)
spam2(op_floordiv , PyNumber_FloorDivide)
spam2(op_truediv , PyNumber_TrueDivide)
spam2(op_mod , PyNumber_Remainder)
@@ -86,6 +87,7 @@ spam2(op_or_ , PyNumber_Or)
spam2(op_iadd , PyNumber_InPlaceAdd)
spam2(op_isub , PyNumber_InPlaceSubtract)
spam2(op_imul , PyNumber_InPlaceMultiply)
+spam2(op_imatmul , PyNumber_InPlaceMatrixMultiply)
spam2(op_ifloordiv , PyNumber_InPlaceFloorDivide)
spam2(op_itruediv , PyNumber_InPlaceTrueDivide)
spam2(op_imod , PyNumber_InPlaceRemainder)
@@ -239,7 +241,7 @@ PyDoc_STRVAR(compare_digest__doc__,
"Return 'a == b'. This function uses an approach designed to prevent\n"
"timing analysis, making it appropriate for cryptography.\n"
"a and b must both be of the same type: either str (ASCII only),\n"
-"or any type that supports the buffer protocol (e.g. bytes).\n"
+"or any bytes-like object.\n"
"\n"
"Note: If a and b are of different lengths, or if an error occurs,\n"
"a timing attack could theoretically reveal information about the\n"
@@ -343,6 +345,7 @@ spam2o(index, "index(a) -- Same as a.__index__()")
spam2(add, "add(a, b) -- Same as a + b.")
spam2(sub, "sub(a, b) -- Same as a - b.")
spam2(mul, "mul(a, b) -- Same as a * b.")
+spam2(matmul, "matmul(a, b) -- Same as a @ b.")
spam2(floordiv, "floordiv(a, b) -- Same as a // b.")
spam2(truediv, "truediv(a, b) -- Same as a / b.")
spam2(mod, "mod(a, b) -- Same as a % b.")
@@ -360,6 +363,7 @@ spam2(or_, "or_(a, b) -- Same as a | b.")
spam2(iadd, "a = iadd(a, b) -- Same as a += b.")
spam2(isub, "a = isub(a, b) -- Same as a -= b.")
spam2(imul, "a = imul(a, b) -- Same as a *= b.")
+spam2(imatmul, "a = imatmul(a, b) -- Same as a @= b.")
spam2(ifloordiv, "a = ifloordiv(a, b) -- Same as a //= b.")
spam2(itruediv, "a = itruediv(a, b) -- Same as a /= b")
spam2(imod, "a = imod(a, b) -- Same as a %= b.")
@@ -481,6 +485,41 @@ itemgetter_call(itemgetterobject *ig, PyObject *args, PyObject *kw)
return result;
}
+static PyObject *
+itemgetter_repr(itemgetterobject *ig)
+{
+ PyObject *repr;
+ const char *reprfmt;
+
+ int status = Py_ReprEnter((PyObject *)ig);
+ if (status != 0) {
+ if (status < 0)
+ return NULL;
+ return PyUnicode_FromFormat("%s(...)", Py_TYPE(ig)->tp_name);
+ }
+
+ reprfmt = ig->nitems == 1 ? "%s(%R)" : "%s%R";
+ repr = PyUnicode_FromFormat(reprfmt, Py_TYPE(ig)->tp_name, ig->item);
+ Py_ReprLeave((PyObject *)ig);
+ return repr;
+}
+
+static PyObject *
+itemgetter_reduce(itemgetterobject *ig)
+{
+ if (ig->nitems == 1)
+ return Py_BuildValue("O(O)", Py_TYPE(ig), ig->item);
+ return PyTuple_Pack(2, Py_TYPE(ig), ig->item);
+}
+
+PyDoc_STRVAR(reduce_doc, "Return state information for pickling");
+
+static PyMethodDef itemgetter_methods[] = {
+ {"__reduce__", (PyCFunction)itemgetter_reduce, METH_NOARGS,
+ reduce_doc},
+ {NULL}
+};
+
PyDoc_STRVAR(itemgetter_doc,
"itemgetter(item, ...) --> itemgetter object\n\
\n\
@@ -499,7 +538,7 @@ static PyTypeObject itemgetter_type = {
0, /* tp_getattr */
0, /* tp_setattr */
0, /* tp_reserved */
- 0, /* tp_repr */
+ (reprfunc)itemgetter_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
0, /* tp_as_mapping */
@@ -517,7 +556,7 @@ static PyTypeObject itemgetter_type = {
0, /* tp_weaklistoffset */
0, /* tp_iter */
0, /* tp_iternext */
- 0, /* tp_methods */
+ itemgetter_methods, /* tp_methods */
0, /* tp_members */
0, /* tp_getset */
0, /* tp_base */
@@ -733,6 +772,93 @@ attrgetter_call(attrgetterobject *ag, PyObject *args, PyObject *kw)
return result;
}
+static PyObject *
+dotjoinattr(PyObject *attr, PyObject **attrsep)
+{
+ if (PyTuple_CheckExact(attr)) {
+ if (*attrsep == NULL) {
+ *attrsep = PyUnicode_FromString(".");
+ if (*attrsep == NULL)
+ return NULL;
+ }
+ return PyUnicode_Join(*attrsep, attr);
+ } else {
+ Py_INCREF(attr);
+ return attr;
+ }
+}
+
+static PyObject *
+attrgetter_args(attrgetterobject *ag)
+{
+ Py_ssize_t i;
+ PyObject *attrsep = NULL;
+ PyObject *attrstrings = PyTuple_New(ag->nattrs);
+ if (attrstrings == NULL)
+ return NULL;
+
+ for (i = 0; i < ag->nattrs; ++i) {
+ PyObject *attr = PyTuple_GET_ITEM(ag->attr, i);
+ PyObject *attrstr = dotjoinattr(attr, &attrsep);
+ if (attrstr == NULL) {
+ Py_XDECREF(attrsep);
+ Py_DECREF(attrstrings);
+ return NULL;
+ }
+ PyTuple_SET_ITEM(attrstrings, i, attrstr);
+ }
+ Py_XDECREF(attrsep);
+ return attrstrings;
+}
+
+static PyObject *
+attrgetter_repr(attrgetterobject *ag)
+{
+ PyObject *repr = NULL;
+ int status = Py_ReprEnter((PyObject *)ag);
+ if (status != 0) {
+ if (status < 0)
+ return NULL;
+ return PyUnicode_FromFormat("%s(...)", Py_TYPE(ag)->tp_name);
+ }
+
+ if (ag->nattrs == 1) {
+ PyObject *attrsep = NULL;
+ PyObject *attr = dotjoinattr(PyTuple_GET_ITEM(ag->attr, 0), &attrsep);
+ if (attr != NULL) {
+ repr = PyUnicode_FromFormat("%s(%R)", Py_TYPE(ag)->tp_name, attr);
+ Py_DECREF(attr);
+ }
+ Py_XDECREF(attrsep);
+ }
+ else {
+ PyObject *attrstrings = attrgetter_args(ag);
+ if (attrstrings != NULL) {
+ repr = PyUnicode_FromFormat("%s%R",
+ Py_TYPE(ag)->tp_name, attrstrings);
+ Py_DECREF(attrstrings);
+ }
+ }
+ Py_ReprLeave((PyObject *)ag);
+ return repr;
+}
+
+static PyObject *
+attrgetter_reduce(attrgetterobject *ag)
+{
+ PyObject *attrstrings = attrgetter_args(ag);
+ if (attrstrings == NULL)
+ return NULL;
+
+ return Py_BuildValue("ON", Py_TYPE(ag), attrstrings);
+}
+
+static PyMethodDef attrgetter_methods[] = {
+ {"__reduce__", (PyCFunction)attrgetter_reduce, METH_NOARGS,
+ reduce_doc},
+ {NULL}
+};
+
PyDoc_STRVAR(attrgetter_doc,
"attrgetter(attr, ...) --> attrgetter object\n\
\n\
@@ -753,7 +879,7 @@ static PyTypeObject attrgetter_type = {
0, /* tp_getattr */
0, /* tp_setattr */
0, /* tp_reserved */
- 0, /* tp_repr */
+ (reprfunc)attrgetter_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
0, /* tp_as_mapping */
@@ -771,7 +897,7 @@ static PyTypeObject attrgetter_type = {
0, /* tp_weaklistoffset */
0, /* tp_iter */
0, /* tp_iternext */
- 0, /* tp_methods */
+ attrgetter_methods, /* tp_methods */
0, /* tp_members */
0, /* tp_getset */
0, /* tp_base */
@@ -809,6 +935,13 @@ methodcaller_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
return NULL;
}
+ name = PyTuple_GET_ITEM(args, 0);
+ if (!PyUnicode_Check(name)) {
+ PyErr_SetString(PyExc_TypeError,
+ "method name must be a string");
+ return NULL;
+ }
+
/* create methodcallerobject structure */
mc = PyObject_GC_New(methodcallerobject, &methodcaller_type);
if (mc == NULL)
@@ -821,8 +954,8 @@ methodcaller_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
}
mc->args = newargs;
- name = PyTuple_GET_ITEM(args, 0);
Py_INCREF(name);
+ PyUnicode_InternInPlace(&name);
mc->name = name;
Py_XINCREF(kwds);
@@ -865,6 +998,142 @@ methodcaller_call(methodcallerobject *mc, PyObject *args, PyObject *kw)
return result;
}
+static PyObject *
+methodcaller_repr(methodcallerobject *mc)
+{
+ PyObject *argreprs, *repr = NULL, *sep, *joinedargreprs;
+ Py_ssize_t numtotalargs, numposargs, numkwdargs, i;
+ int status = Py_ReprEnter((PyObject *)mc);
+ if (status != 0) {
+ if (status < 0)
+ return NULL;
+ return PyUnicode_FromFormat("%s(...)", Py_TYPE(mc)->tp_name);
+ }
+
+ if (mc->kwds != NULL) {
+ numkwdargs = PyDict_Size(mc->kwds);
+ if (numkwdargs < 0) {
+ Py_ReprLeave((PyObject *)mc);
+ return NULL;
+ }
+ } else {
+ numkwdargs = 0;
+ }
+
+ numposargs = PyTuple_GET_SIZE(mc->args);
+ numtotalargs = numposargs + numkwdargs;
+
+ if (numtotalargs == 0) {
+ repr = PyUnicode_FromFormat("%s(%R)", Py_TYPE(mc)->tp_name, mc->name);
+ Py_ReprLeave((PyObject *)mc);
+ return repr;
+ }
+
+ argreprs = PyTuple_New(numtotalargs);
+ if (argreprs == NULL) {
+ Py_ReprLeave((PyObject *)mc);
+ return NULL;
+ }
+
+ for (i = 0; i < numposargs; ++i) {
+ PyObject *onerepr = PyObject_Repr(PyTuple_GET_ITEM(mc->args, i));
+ if (onerepr == NULL)
+ goto done;
+ PyTuple_SET_ITEM(argreprs, i, onerepr);
+ }
+
+ if (numkwdargs != 0) {
+ PyObject *key, *value;
+ Py_ssize_t pos = 0;
+ while (PyDict_Next(mc->kwds, &pos, &key, &value)) {
+ PyObject *onerepr = PyUnicode_FromFormat("%U=%R", key, value);
+ if (onerepr == NULL)
+ goto done;
+ if (i >= numtotalargs) {
+ i = -1;
+ break;
+ }
+ PyTuple_SET_ITEM(argreprs, i, onerepr);
+ ++i;
+ }
+ if (i != numtotalargs) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "keywords dict changed size during iteration");
+ goto done;
+ }
+ }
+
+ sep = PyUnicode_FromString(", ");
+ if (sep == NULL)
+ goto done;
+
+ joinedargreprs = PyUnicode_Join(sep, argreprs);
+ Py_DECREF(sep);
+ if (joinedargreprs == NULL)
+ goto done;
+
+ repr = PyUnicode_FromFormat("%s(%R, %U)", Py_TYPE(mc)->tp_name,
+ mc->name, joinedargreprs);
+ Py_DECREF(joinedargreprs);
+
+done:
+ Py_DECREF(argreprs);
+ Py_ReprLeave((PyObject *)mc);
+ return repr;
+}
+
+static PyObject *
+methodcaller_reduce(methodcallerobject *mc)
+{
+ PyObject *newargs;
+ if (!mc->kwds || PyDict_Size(mc->kwds) == 0) {
+ Py_ssize_t i;
+ Py_ssize_t callargcount = PyTuple_GET_SIZE(mc->args);
+ newargs = PyTuple_New(1 + callargcount);
+ if (newargs == NULL)
+ return NULL;
+ Py_INCREF(mc->name);
+ PyTuple_SET_ITEM(newargs, 0, mc->name);
+ for (i = 0; i < callargcount; ++i) {
+ PyObject *arg = PyTuple_GET_ITEM(mc->args, i);
+ Py_INCREF(arg);
+ PyTuple_SET_ITEM(newargs, i + 1, arg);
+ }
+ return Py_BuildValue("ON", Py_TYPE(mc), newargs);
+ }
+ else {
+ PyObject *functools;
+ PyObject *partial;
+ PyObject *constructor;
+ _Py_IDENTIFIER(partial);
+ functools = PyImport_ImportModule("functools");
+ if (!functools)
+ return NULL;
+ partial = _PyObject_GetAttrId(functools, &PyId_partial);
+ Py_DECREF(functools);
+ if (!partial)
+ return NULL;
+ newargs = PyTuple_New(2);
+ if (newargs == NULL) {
+ Py_DECREF(partial);
+ return NULL;
+ }
+ Py_INCREF(Py_TYPE(mc));
+ PyTuple_SET_ITEM(newargs, 0, (PyObject *)Py_TYPE(mc));
+ Py_INCREF(mc->name);
+ PyTuple_SET_ITEM(newargs, 1, mc->name);
+ constructor = PyObject_Call(partial, newargs, mc->kwds);
+ Py_DECREF(newargs);
+ Py_DECREF(partial);
+ return Py_BuildValue("NO", constructor, mc->args);
+ }
+}
+
+static PyMethodDef methodcaller_methods[] = {
+ {"__reduce__", (PyCFunction)methodcaller_reduce, METH_NOARGS,
+ reduce_doc},
+ {NULL}
+};
PyDoc_STRVAR(methodcaller_doc,
"methodcaller(name, ...) --> methodcaller object\n\
\n\
@@ -884,7 +1153,7 @@ static PyTypeObject methodcaller_type = {
0, /* tp_getattr */
0, /* tp_setattr */
0, /* tp_reserved */
- 0, /* tp_repr */
+ (reprfunc)methodcaller_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
0, /* tp_as_mapping */
@@ -902,7 +1171,7 @@ static PyTypeObject methodcaller_type = {
0, /* tp_weaklistoffset */
0, /* tp_iter */
0, /* tp_iternext */
- 0, /* tp_methods */
+ methodcaller_methods, /* tp_methods */
0, /* tp_members */
0, /* tp_getset */
0, /* tp_base */
diff --git a/Modules/_pickle.c b/Modules/_pickle.c
index 830479fe94..f3b73f176d 100644
--- a/Modules/_pickle.c
+++ b/Modules/_pickle.c
@@ -5,14 +5,13 @@ PyDoc_STRVAR(pickle_module_doc,
"Optimized C implementation for the Python pickle module.");
/*[clinic input]
-output preset file
module _pickle
class _pickle.Pickler "PicklerObject *" "&Pickler_Type"
class _pickle.PicklerMemoProxy "PicklerMemoProxyObject *" "&PicklerMemoProxyType"
class _pickle.Unpickler "UnpicklerObject *" "&Unpickler_Type"
class _pickle.UnpicklerMemoProxy "UnpicklerMemoProxyObject *" "&UnpicklerMemoProxyType"
[clinic start generated code]*/
-/*[clinic end generated code: output=da39a3ee5e6b4b0d input=11c45248a41dd3fc]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=4b3e113468a58e6c]*/
/* Bump this when new opcodes are added to the pickle protocol. */
enum {
@@ -152,6 +151,8 @@ typedef struct {
/* codecs.encode, used for saving bytes in older protocols */
PyObject *codecs_encode;
+ /* builtins.getattr, used for saving nested names with protocol < 4 */
+ PyObject *getattr;
} PickleState;
/* Forward declaration of the _pickle module definition. */
@@ -188,16 +189,26 @@ _Pickle_ClearState(PickleState *st)
Py_CLEAR(st->name_mapping_3to2);
Py_CLEAR(st->import_mapping_3to2);
Py_CLEAR(st->codecs_encode);
+ Py_CLEAR(st->getattr);
}
/* Initialize the given pickle module state. */
static int
_Pickle_InitState(PickleState *st)
{
+ PyObject *builtins;
PyObject *copyreg = NULL;
PyObject *compat_pickle = NULL;
PyObject *codecs = NULL;
+ builtins = PyEval_GetBuiltins();
+ if (builtins == NULL)
+ goto error;
+ st->getattr = PyDict_GetItemString(builtins, "getattr");
+ if (st->getattr == NULL)
+ goto error;
+ Py_INCREF(st->getattr);
+
copyreg = PyImport_ImportModule("copyreg");
if (!copyreg)
goto error;
@@ -420,12 +431,12 @@ static int
Pdata_grow(Pdata *self)
{
PyObject **data = self->data;
- Py_ssize_t allocated = self->allocated;
- Py_ssize_t new_allocated;
+ size_t allocated = (size_t)self->allocated;
+ size_t new_allocated;
new_allocated = (allocated >> 3) + 6;
/* check for integer overflow */
- if (new_allocated > PY_SSIZE_T_MAX - allocated)
+ if (new_allocated > (size_t)PY_SSIZE_T_MAX - allocated)
goto nomemory;
new_allocated += allocated;
PyMem_RESIZE(data, PyObject *, new_allocated);
@@ -433,7 +444,7 @@ Pdata_grow(Pdata *self)
goto nomemory;
self->data = data;
- self->allocated = new_allocated;
+ self->allocated = (Py_ssize_t)new_allocated;
return 0;
nomemory:
@@ -848,7 +859,7 @@ _Pickler_ClearBuffer(PicklerObject *self)
static void
_write_size64(char *out, size_t value)
{
- int i;
+ size_t i;
assert(sizeof(size_t) <= 8);
@@ -1459,7 +1470,7 @@ memo_get(PicklerObject *self, PyObject *key)
pdata[1] = (unsigned char)(*value & 0xff);
len = 2;
}
- else if (*value <= 0xffffffffL) {
+ else if ((size_t)*value <= 0xffffffffUL) {
pdata[0] = LONG_BINGET;
pdata[1] = (unsigned char)(*value & 0xff);
pdata[2] = (unsigned char)((*value >> 8) & 0xff);
@@ -1516,7 +1527,7 @@ memo_put(PicklerObject *self, PyObject *obj)
pdata[1] = (unsigned char)idx;
len = 2;
}
- else if (idx <= 0xffffffffL) {
+ else if ((size_t)idx <= 0xffffffffUL) {
pdata[0] = LONG_BINPUT;
pdata[1] = (unsigned char)(idx & 0xff);
pdata[2] = (unsigned char)((idx >> 8) & 0xff);
@@ -1538,66 +1549,101 @@ memo_put(PicklerObject *self, PyObject *obj)
}
static PyObject *
-getattribute(PyObject *obj, PyObject *name, int allow_qualname) {
- PyObject *dotted_path;
- Py_ssize_t i;
+get_dotted_path(PyObject *obj, PyObject *name) {
_Py_static_string(PyId_dot, ".");
_Py_static_string(PyId_locals, "<locals>");
+ PyObject *dotted_path;
+ Py_ssize_t i, n;
dotted_path = PyUnicode_Split(name, _PyUnicode_FromId(&PyId_dot), -1);
- if (dotted_path == NULL) {
- return NULL;
- }
- assert(Py_SIZE(dotted_path) >= 1);
- if (!allow_qualname && Py_SIZE(dotted_path) > 1) {
- PyErr_Format(PyExc_AttributeError,
- "Can't get qualified attribute %R on %R;"
- "use protocols >= 4 to enable support",
- name, obj);
- Py_DECREF(dotted_path);
+ if (dotted_path == NULL)
return NULL;
- }
- Py_INCREF(obj);
- for (i = 0; i < Py_SIZE(dotted_path); i++) {
+ n = PyList_GET_SIZE(dotted_path);
+ assert(n >= 1);
+ for (i = 0; i < n; i++) {
PyObject *subpath = PyList_GET_ITEM(dotted_path, i);
- PyObject *tmp;
PyObject *result = PyUnicode_RichCompare(
subpath, _PyUnicode_FromId(&PyId_locals), Py_EQ);
int is_equal = (result == Py_True);
assert(PyBool_Check(result));
Py_DECREF(result);
if (is_equal) {
- PyErr_Format(PyExc_AttributeError,
- "Can't get local attribute %R on %R", name, obj);
+ if (obj == NULL)
+ PyErr_Format(PyExc_AttributeError,
+ "Can't pickle local object %R", name);
+ else
+ PyErr_Format(PyExc_AttributeError,
+ "Can't pickle local attribute %R on %R", name, obj);
Py_DECREF(dotted_path);
- Py_DECREF(obj);
return NULL;
}
- tmp = PyObject_GetAttr(obj, subpath);
- Py_DECREF(obj);
- if (tmp == NULL) {
- if (PyErr_ExceptionMatches(PyExc_AttributeError)) {
- PyErr_Clear();
- PyErr_Format(PyExc_AttributeError,
- "Can't get attribute %R on %R", name, obj);
- }
- Py_DECREF(dotted_path);
+ }
+ return dotted_path;
+}
+
+static PyObject *
+get_deep_attribute(PyObject *obj, PyObject *names, PyObject **pparent)
+{
+ Py_ssize_t i, n;
+ PyObject *parent = NULL;
+
+ assert(PyList_CheckExact(names));
+ Py_INCREF(obj);
+ n = PyList_GET_SIZE(names);
+ for (i = 0; i < n; i++) {
+ PyObject *name = PyList_GET_ITEM(names, i);
+ Py_XDECREF(parent);
+ parent = obj;
+ obj = PyObject_GetAttr(parent, name);
+ if (obj == NULL) {
+ Py_DECREF(parent);
return NULL;
}
- obj = tmp;
}
- Py_DECREF(dotted_path);
+ if (pparent != NULL)
+ *pparent = parent;
+ else
+ Py_XDECREF(parent);
return obj;
}
+static void
+reformat_attribute_error(PyObject *obj, PyObject *name)
+{
+ if (PyErr_ExceptionMatches(PyExc_AttributeError)) {
+ PyErr_Clear();
+ PyErr_Format(PyExc_AttributeError,
+ "Can't get attribute %R on %R", name, obj);
+ }
+}
+
+
+static PyObject *
+getattribute(PyObject *obj, PyObject *name, int allow_qualname)
+{
+ PyObject *dotted_path, *attr;
+
+ if (allow_qualname) {
+ dotted_path = get_dotted_path(obj, name);
+ if (dotted_path == NULL)
+ return NULL;
+ attr = get_deep_attribute(obj, dotted_path, NULL);
+ Py_DECREF(dotted_path);
+ }
+ else
+ attr = PyObject_GetAttr(obj, name);
+ if (attr == NULL)
+ reformat_attribute_error(obj, name);
+ return attr;
+}
+
static PyObject *
-whichmodule(PyObject *global, PyObject *global_name, int allow_qualname)
+whichmodule(PyObject *global, PyObject *dotted_path)
{
PyObject *module_name;
PyObject *modules_dict;
PyObject *module;
- PyObject *obj;
- Py_ssize_t i, j;
+ Py_ssize_t i;
_Py_IDENTIFIER(__module__);
_Py_IDENTIFIER(modules);
_Py_IDENTIFIER(__main__);
@@ -1619,6 +1665,7 @@ whichmodule(PyObject *global, PyObject *global_name, int allow_qualname)
}
assert(module_name == NULL);
+ /* Fallback on walking sys.modules */
modules_dict = _PySys_GetObjectId(&PyId_modules);
if (modules_dict == NULL) {
PyErr_SetString(PyExc_RuntimeError, "unable to get sys.modules");
@@ -1626,31 +1673,28 @@ whichmodule(PyObject *global, PyObject *global_name, int allow_qualname)
}
i = 0;
- while ((j = PyDict_Next(modules_dict, &i, &module_name, &module))) {
- PyObject *result = PyUnicode_RichCompare(
- module_name, _PyUnicode_FromId(&PyId___main__), Py_EQ);
- int is_equal = (result == Py_True);
- assert(PyBool_Check(result));
- Py_DECREF(result);
- if (is_equal)
+ while (PyDict_Next(modules_dict, &i, &module_name, &module)) {
+ PyObject *candidate;
+ if (PyUnicode_Check(module_name) &&
+ !PyUnicode_CompareWithASCIIString(module_name, "__main__"))
continue;
if (module == Py_None)
continue;
- obj = getattribute(module, global_name, allow_qualname);
- if (obj == NULL) {
+ candidate = get_deep_attribute(module, dotted_path, NULL);
+ if (candidate == NULL) {
if (!PyErr_ExceptionMatches(PyExc_AttributeError))
return NULL;
PyErr_Clear();
continue;
}
- if (obj == global) {
- Py_DECREF(obj);
+ if (candidate == global) {
Py_INCREF(module_name);
+ Py_DECREF(candidate);
return module_name;
}
- Py_DECREF(obj);
+ Py_DECREF(candidate);
}
/* If no module is found, use __main__. */
@@ -1936,7 +1980,7 @@ save_float(PicklerObject *self, PyObject *obj)
if (_Pickler_Write(self, &op, 1) < 0)
goto done;
- buf = PyOS_double_to_string(x, 'g', 17, 0, NULL);
+ buf = PyOS_double_to_string(x, 'r', 0, Py_DTSF_ADD_DOT_0, NULL);
if (!buf) {
PyErr_NoMemory();
goto done;
@@ -2016,7 +2060,7 @@ save_bytes(PicklerObject *self, PyObject *obj)
header[1] = (unsigned char)size;
len = 2;
}
- else if (size <= 0xffffffffL) {
+ else if ((size_t)size <= 0xffffffffUL) {
header[0] = BINBYTES;
header[1] = (unsigned char)(size & 0xff);
header[2] = (unsigned char)((size >> 8) & 0xff);
@@ -2053,9 +2097,10 @@ save_bytes(PicklerObject *self, PyObject *obj)
static PyObject *
raw_unicode_escape(PyObject *obj)
{
- PyObject *repr, *result;
+ PyObject *repr;
char *p;
- Py_ssize_t i, size, expandsize;
+ Py_ssize_t i, size;
+ size_t expandsize;
void *data;
unsigned int kind;
@@ -2070,15 +2115,16 @@ raw_unicode_escape(PyObject *obj)
else
expandsize = 6;
- if (size > PY_SSIZE_T_MAX / expandsize)
+ if ((size_t)size > (size_t)PY_SSIZE_T_MAX / expandsize)
return PyErr_NoMemory();
- repr = PyByteArray_FromStringAndSize(NULL, expandsize * size);
+ repr = PyBytes_FromStringAndSize(NULL, expandsize * size);
if (repr == NULL)
return NULL;
if (size == 0)
- goto done;
+ return repr;
+ assert(Py_REFCNT(repr) == 1);
- p = PyByteArray_AS_STRING(repr);
+ p = PyBytes_AS_STRING(repr);
for (i=0; i < size; i++) {
Py_UCS4 ch = PyUnicode_READ(kind, data, i);
/* Map 32-bit characters to '\Uxxxxxxxx' */
@@ -2107,12 +2153,10 @@ raw_unicode_escape(PyObject *obj)
else
*p++ = (char) ch;
}
- size = p - PyByteArray_AS_STRING(repr);
-
-done:
- result = PyBytes_FromStringAndSize(PyByteArray_AS_STRING(repr), size);
- Py_DECREF(repr);
- return result;
+ size = p - PyBytes_AS_STRING(repr);
+ if (_PyBytes_Resize(&repr, size) < 0)
+ return NULL;
+ return repr;
}
static int
@@ -2121,12 +2165,13 @@ write_utf8(PicklerObject *self, char *data, Py_ssize_t size)
char header[9];
Py_ssize_t len;
+ assert(size >= 0);
if (size <= 0xff && self->proto >= 4) {
header[0] = SHORT_BINUNICODE;
header[1] = (unsigned char)(size & 0xff);
len = 2;
}
- else if (size <= 0xffffffffUL) {
+ else if ((size_t)size <= 0xffffffffUL) {
header[0] = BINUNICODE;
header[1] = (unsigned char)(size & 0xff);
header[2] = (unsigned char)((size >> 8) & 0xff);
@@ -3061,6 +3106,9 @@ save_global(PicklerObject *self, PyObject *obj, PyObject *name)
PyObject *global_name = NULL;
PyObject *module_name = NULL;
PyObject *module = NULL;
+ PyObject *parent = NULL;
+ PyObject *dotted_path = NULL;
+ PyObject *lastname = NULL;
PyObject *cls;
PickleState *st = _Pickle_GetGlobalState();
int status = 0;
@@ -3074,13 +3122,11 @@ save_global(PicklerObject *self, PyObject *obj, PyObject *name)
global_name = name;
}
else {
- if (self->proto >= 4) {
- global_name = _PyObject_GetAttrId(obj, &PyId___qualname__);
- if (global_name == NULL) {
- if (!PyErr_ExceptionMatches(PyExc_AttributeError))
- goto error;
- PyErr_Clear();
- }
+ global_name = _PyObject_GetAttrId(obj, &PyId___qualname__);
+ if (global_name == NULL) {
+ if (!PyErr_ExceptionMatches(PyExc_AttributeError))
+ goto error;
+ PyErr_Clear();
}
if (global_name == NULL) {
global_name = _PyObject_GetAttrId(obj, &PyId___name__);
@@ -3089,7 +3135,10 @@ save_global(PicklerObject *self, PyObject *obj, PyObject *name)
}
}
- module_name = whichmodule(obj, global_name, self->proto >= 4);
+ dotted_path = get_dotted_path(module, global_name);
+ if (dotted_path == NULL)
+ goto error;
+ module_name = whichmodule(obj, dotted_path);
if (module_name == NULL)
goto error;
@@ -3108,7 +3157,10 @@ save_global(PicklerObject *self, PyObject *obj, PyObject *name)
obj, module_name);
goto error;
}
- cls = getattribute(module, global_name, self->proto >= 4);
+ lastname = PyList_GET_ITEM(dotted_path, PyList_GET_SIZE(dotted_path)-1);
+ Py_INCREF(lastname);
+ cls = get_deep_attribute(module, dotted_path, &parent);
+ Py_CLEAR(dotted_path);
if (cls == NULL) {
PyErr_Format(st->PicklingError,
"Can't pickle %R: attribute lookup %S on %S failed",
@@ -3195,6 +3247,11 @@ save_global(PicklerObject *self, PyObject *obj, PyObject *name)
}
else {
gen_global:
+ if (parent == module) {
+ Py_INCREF(lastname);
+ Py_DECREF(global_name);
+ global_name = lastname;
+ }
if (self->proto >= 4) {
const char stack_global_op = STACK_GLOBAL;
@@ -3206,6 +3263,15 @@ save_global(PicklerObject *self, PyObject *obj, PyObject *name)
if (_Pickler_Write(self, &stack_global_op, 1) < 0)
goto error;
}
+ else if (parent != module) {
+ PickleState *st = _Pickle_GetGlobalState();
+ PyObject *reduce_value = Py_BuildValue("(O(OO))",
+ st->getattr, parent, lastname);
+ status = save_reduce(self, reduce_value, NULL);
+ Py_DECREF(reduce_value);
+ if (status < 0)
+ goto error;
+ }
else {
/* Generate a normal global opcode if we are using a pickle
protocol < 4, or if the object is not registered in the
@@ -3284,6 +3350,9 @@ save_global(PicklerObject *self, PyObject *obj, PyObject *name)
Py_XDECREF(module_name);
Py_XDECREF(global_name);
Py_XDECREF(module);
+ Py_XDECREF(parent);
+ Py_XDECREF(dotted_path);
+ Py_XDECREF(lastname);
return status;
}
@@ -3463,20 +3532,19 @@ save_reduce(PicklerObject *self, PyObject *args, PyObject *obj)
}
PyErr_Clear();
}
- else if (self->proto >= 4) {
- _Py_IDENTIFIER(__newobj_ex__);
- use_newobj_ex = PyUnicode_Check(name) &&
- PyUnicode_Compare(
- name, _PyUnicode_FromId(&PyId___newobj_ex__)) == 0;
- Py_DECREF(name);
- }
- else {
- _Py_IDENTIFIER(__newobj__);
- use_newobj = PyUnicode_Check(name) &&
- PyUnicode_Compare(
- name, _PyUnicode_FromId(&PyId___newobj__)) == 0;
- Py_DECREF(name);
+ else if (PyUnicode_Check(name)) {
+ if (self->proto >= 4) {
+ _Py_IDENTIFIER(__newobj_ex__);
+ use_newobj_ex = PyUnicode_Compare(
+ name, _PyUnicode_FromId(&PyId___newobj_ex__)) == 0;
+ }
+ if (!use_newobj_ex) {
+ _Py_IDENTIFIER(__newobj__);
+ use_newobj = PyUnicode_Compare(
+ name, _PyUnicode_FromId(&PyId___newobj__)) == 0;
+ }
}
+ Py_XDECREF(name);
}
if (use_newobj_ex) {
@@ -3561,7 +3629,7 @@ save_reduce(PicklerObject *self, PyObject *args, PyObject *obj)
>>> pickle.dumps(1+2j)
Traceback (most recent call last):
...
- RuntimeError: maximum recursion depth exceeded
+ RecursionError: maximum recursion depth exceeded
Removing the complex class from copyreg.dispatch_table made the
__reduce_ex__() method emit another complex object:
@@ -4041,8 +4109,9 @@ to map the new Python 3 names to the old module names used in Python
[clinic start generated code]*/
static int
-_pickle_Pickler___init___impl(PicklerObject *self, PyObject *file, PyObject *protocol, int fix_imports)
-/*[clinic end generated code: output=56e229f3b1f4332f input=b8cdeb7e3f5ee674]*/
+_pickle_Pickler___init___impl(PicklerObject *self, PyObject *file,
+ PyObject *protocol, int fix_imports)
+/*[clinic end generated code: output=b5f31078dab17fb0 input=b8cdeb7e3f5ee674]*/
{
_Py_IDENTIFIER(persistent_id);
_Py_IDENTIFIER(dispatch_table);
@@ -4569,7 +4638,7 @@ static long
calc_binint(char *bytes, int nbytes)
{
unsigned char *s = (unsigned char *)bytes;
- int i;
+ Py_ssize_t i;
long x = 0;
for (i = 0; i < nbytes; i++) {
@@ -6245,8 +6314,10 @@ needed. Both arguments passed are str objects.
[clinic start generated code]*/
static PyObject *
-_pickle_Unpickler_find_class_impl(UnpicklerObject *self, PyObject *module_name, PyObject *global_name)
-/*[clinic end generated code: output=64c77437e088e188 input=e2e6a865de093ef4]*/
+_pickle_Unpickler_find_class_impl(UnpicklerObject *self,
+ PyObject *module_name,
+ PyObject *global_name)
+/*[clinic end generated code: output=becc08d7f9ed41e3 input=e2e6a865de093ef4]*/
{
PyObject *global;
PyObject *modules_dict;
@@ -6457,8 +6528,10 @@ string instances as bytes objects.
[clinic start generated code]*/
static int
-_pickle_Unpickler___init___impl(UnpicklerObject *self, PyObject *file, int fix_imports, const char *encoding, const char *errors)
-/*[clinic end generated code: output=b9ed1d84d315f3b5 input=30b4dc9e976b890c]*/
+_pickle_Unpickler___init___impl(UnpicklerObject *self, PyObject *file,
+ int fix_imports, const char *encoding,
+ const char *errors)
+/*[clinic end generated code: output=e2c8ce748edc57b0 input=30b4dc9e976b890c]*/
{
_Py_IDENTIFIER(persistent_load);
@@ -6886,8 +6959,9 @@ to map the new Python 3 names to the old module names used in Python
[clinic start generated code]*/
static PyObject *
-_pickle_dump_impl(PyModuleDef *module, PyObject *obj, PyObject *file, PyObject *protocol, int fix_imports)
-/*[clinic end generated code: output=a606e626d553850d input=e9e5fdd48de92eae]*/
+_pickle_dump_impl(PyModuleDef *module, PyObject *obj, PyObject *file,
+ PyObject *protocol, int fix_imports)
+/*[clinic end generated code: output=0de7dff89c406816 input=e9e5fdd48de92eae]*/
{
PicklerObject *pickler = _Pickler_New();
@@ -6939,8 +7013,9 @@ Python 2, so that the pickle data stream is readable with Python 2.
[clinic start generated code]*/
static PyObject *
-_pickle_dumps_impl(PyModuleDef *module, PyObject *obj, PyObject *protocol, int fix_imports)
-/*[clinic end generated code: output=777f0deefe5b88ee input=293dbeda181580b7]*/
+_pickle_dumps_impl(PyModuleDef *module, PyObject *obj, PyObject *protocol,
+ int fix_imports)
+/*[clinic end generated code: output=daa380db56fe07b9 input=293dbeda181580b7]*/
{
PyObject *result;
PicklerObject *pickler = _Pickler_New();
@@ -6999,8 +7074,9 @@ string instances as bytes objects.
[clinic start generated code]*/
static PyObject *
-_pickle_load_impl(PyModuleDef *module, PyObject *file, int fix_imports, const char *encoding, const char *errors)
-/*[clinic end generated code: output=568c61356c172654 input=da97372e38e510a6]*/
+_pickle_load_impl(PyModuleDef *module, PyObject *file, int fix_imports,
+ const char *encoding, const char *errors)
+/*[clinic end generated code: output=798f1c57cb2b4eb1 input=da97372e38e510a6]*/
{
PyObject *result;
UnpicklerObject *unpickler = _Unpickler_New();
@@ -7052,8 +7128,9 @@ string instances as bytes objects.
[clinic start generated code]*/
static PyObject *
-_pickle_loads_impl(PyModuleDef *module, PyObject *data, int fix_imports, const char *encoding, const char *errors)
-/*[clinic end generated code: output=0b3845ad110b2522 input=f57f0fdaa2b4cb8b]*/
+_pickle_loads_impl(PyModuleDef *module, PyObject *data, int fix_imports,
+ const char *encoding, const char *errors)
+/*[clinic end generated code: output=61e9cdb01e36a736 input=f57f0fdaa2b4cb8b]*/
{
PyObject *result;
UnpicklerObject *unpickler = _Unpickler_New();
@@ -7115,6 +7192,7 @@ pickle_traverse(PyObject *m, visitproc visit, void *arg)
Py_VISIT(st->name_mapping_3to2);
Py_VISIT(st->import_mapping_3to2);
Py_VISIT(st->codecs_encode);
+ Py_VISIT(st->getattr);
return 0;
}
diff --git a/Modules/_posixsubprocess.c b/Modules/_posixsubprocess.c
index 452d592f15..a327fc56b2 100644
--- a/Modules/_posixsubprocess.c
+++ b/Modules/_posixsubprocess.c
@@ -264,7 +264,7 @@ _close_open_fds_safe(int start_fd, PyObject* py_fds_to_keep)
{
int fd_dir_fd;
- fd_dir_fd = _Py_open(FD_DIR, O_RDONLY);
+ fd_dir_fd = _Py_open_noraise(FD_DIR, O_RDONLY);
if (fd_dir_fd == -1) {
/* No way to get a list of open fds. */
_close_fds_by_brute_force(start_fd, py_fds_to_keep);
@@ -392,7 +392,7 @@ child_exec(char *const exec_array[],
PyObject *preexec_fn,
PyObject *preexec_fn_args_tuple)
{
- int i, saved_errno, unused, reached_preexec = 0;
+ int i, saved_errno, reached_preexec = 0;
PyObject *result;
const char* err_msg = "";
/* Buffer large enough to hold a hex integer. We can't malloc. */
@@ -506,28 +506,29 @@ error:
saved_errno = errno;
/* Report the posix error to our parent process. */
/* We ignore all write() return values as the total size of our writes is
- * less than PIPEBUF and we cannot do anything about an error anyways. */
+ less than PIPEBUF and we cannot do anything about an error anyways.
+ Use _Py_write_noraise() to retry write() if it is interrupted by a
+ signal (fails with EINTR). */
if (saved_errno) {
char *cur;
- unused = write(errpipe_write, "OSError:", 8);
+ _Py_write_noraise(errpipe_write, "OSError:", 8);
cur = hex_errno + sizeof(hex_errno);
while (saved_errno != 0 && cur > hex_errno) {
- *--cur = "0123456789ABCDEF"[saved_errno % 16];
+ *--cur = Py_hexdigits[saved_errno % 16];
saved_errno /= 16;
}
- unused = write(errpipe_write, cur, hex_errno + sizeof(hex_errno) - cur);
- unused = write(errpipe_write, ":", 1);
+ _Py_write_noraise(errpipe_write, cur, hex_errno + sizeof(hex_errno) - cur);
+ _Py_write_noraise(errpipe_write, ":", 1);
if (!reached_preexec) {
/* Indicate to the parent that the error happened before exec(). */
- unused = write(errpipe_write, "noexec", 6);
+ _Py_write_noraise(errpipe_write, "noexec", 6);
}
/* We can't call strerror(saved_errno). It is not async signal safe.
* The parent process will look the error message up. */
} else {
- unused = write(errpipe_write, "SubprocessError:0:", 18);
- unused = write(errpipe_write, err_msg, strlen(err_msg));
+ _Py_write_noraise(errpipe_write, "SubprocessError:0:", 18);
+ _Py_write_noraise(errpipe_write, err_msg, strlen(err_msg));
}
- if (unused) return; /* silly? yes! avoids gcc compiler warning. */
}
diff --git a/Modules/_randommodule.c b/Modules/_randommodule.c
index 416e266f0b..95ad4a429a 100644
--- a/Modules/_randommodule.c
+++ b/Modules/_randommodule.c
@@ -69,17 +69,21 @@
#include "Python.h"
#include <time.h> /* for seeding to current time */
+#ifndef PY_UINT32_T
+# error "Failed to find an exact-width 32-bit integer type"
+#endif
+
/* Period parameters -- These are all magic. Don't change. */
#define N 624
#define M 397
-#define MATRIX_A 0x9908b0dfUL /* constant vector a */
-#define UPPER_MASK 0x80000000UL /* most significant w-r bits */
-#define LOWER_MASK 0x7fffffffUL /* least significant r bits */
+#define MATRIX_A 0x9908b0dfU /* constant vector a */
+#define UPPER_MASK 0x80000000U /* most significant w-r bits */
+#define LOWER_MASK 0x7fffffffU /* least significant r bits */
typedef struct {
PyObject_HEAD
- unsigned long state[N];
int index;
+ PY_UINT32_T state[N];
} RandomObject;
static PyTypeObject Random_Type;
@@ -91,13 +95,13 @@ static PyTypeObject Random_Type;
/* generates a random number on [0,0xffffffff]-interval */
-static unsigned long
+static PY_UINT32_T
genrand_int32(RandomObject *self)
{
- unsigned long y;
- static unsigned long mag01[2]={0x0UL, MATRIX_A};
+ PY_UINT32_T y;
+ static PY_UINT32_T mag01[2]={0x0U, MATRIX_A};
/* mag01[x] = x * MATRIX_A for x=0,1 */
- unsigned long *mt;
+ PY_UINT32_T *mt;
mt = self->state;
if (self->index >= N) { /* generate N words at one time */
@@ -105,22 +109,22 @@ genrand_int32(RandomObject *self)
for (kk=0;kk<N-M;kk++) {
y = (mt[kk]&UPPER_MASK)|(mt[kk+1]&LOWER_MASK);
- mt[kk] = mt[kk+M] ^ (y >> 1) ^ mag01[y & 0x1UL];
+ mt[kk] = mt[kk+M] ^ (y >> 1) ^ mag01[y & 0x1U];
}
for (;kk<N-1;kk++) {
y = (mt[kk]&UPPER_MASK)|(mt[kk+1]&LOWER_MASK);
- mt[kk] = mt[kk+(M-N)] ^ (y >> 1) ^ mag01[y & 0x1UL];
+ mt[kk] = mt[kk+(M-N)] ^ (y >> 1) ^ mag01[y & 0x1U];
}
y = (mt[N-1]&UPPER_MASK)|(mt[0]&LOWER_MASK);
- mt[N-1] = mt[M-1] ^ (y >> 1) ^ mag01[y & 0x1UL];
+ mt[N-1] = mt[M-1] ^ (y >> 1) ^ mag01[y & 0x1U];
self->index = 0;
}
y = mt[self->index++];
y ^= (y >> 11);
- y ^= (y << 7) & 0x9d2c5680UL;
- y ^= (y << 15) & 0xefc60000UL;
+ y ^= (y << 7) & 0x9d2c5680U;
+ y ^= (y << 15) & 0xefc60000U;
y ^= (y >> 18);
return y;
}
@@ -137,28 +141,26 @@ genrand_int32(RandomObject *self)
static PyObject *
random_random(RandomObject *self)
{
- unsigned long a=genrand_int32(self)>>5, b=genrand_int32(self)>>6;
+ PY_UINT32_T a=genrand_int32(self)>>5, b=genrand_int32(self)>>6;
return PyFloat_FromDouble((a*67108864.0+b)*(1.0/9007199254740992.0));
}
/* initializes mt[N] with a seed */
static void
-init_genrand(RandomObject *self, unsigned long s)
+init_genrand(RandomObject *self, PY_UINT32_T s)
{
int mti;
- unsigned long *mt;
+ PY_UINT32_T *mt;
mt = self->state;
- mt[0]= s & 0xffffffffUL;
+ mt[0]= s;
for (mti=1; mti<N; mti++) {
mt[mti] =
- (1812433253UL * (mt[mti-1] ^ (mt[mti-1] >> 30)) + mti);
+ (1812433253U * (mt[mti-1] ^ (mt[mti-1] >> 30)) + mti);
/* See Knuth TAOCP Vol2. 3rd Ed. P.106 for multiplier. */
/* In the previous versions, MSBs of the seed affect */
/* only MSBs of the array mt[]. */
/* 2002/01/09 modified by Makoto Matsumoto */
- mt[mti] &= 0xffffffffUL;
- /* for >32 bit machines */
}
self->index = mti;
return;
@@ -168,32 +170,30 @@ init_genrand(RandomObject *self, unsigned long s)
/* init_key is the array for initializing keys */
/* key_length is its length */
static PyObject *
-init_by_array(RandomObject *self, unsigned long init_key[], size_t key_length)
+init_by_array(RandomObject *self, PY_UINT32_T init_key[], size_t key_length)
{
size_t i, j, k; /* was signed in the original code. RDH 12/16/2002 */
- unsigned long *mt;
+ PY_UINT32_T *mt;
mt = self->state;
- init_genrand(self, 19650218UL);
+ init_genrand(self, 19650218U);
i=1; j=0;
k = (N>key_length ? N : key_length);
for (; k; k--) {
- mt[i] = (mt[i] ^ ((mt[i-1] ^ (mt[i-1] >> 30)) * 1664525UL))
- + init_key[j] + (unsigned long)j; /* non linear */
- mt[i] &= 0xffffffffUL; /* for WORDSIZE > 32 machines */
+ mt[i] = (mt[i] ^ ((mt[i-1] ^ (mt[i-1] >> 30)) * 1664525U))
+ + init_key[j] + (PY_UINT32_T)j; /* non linear */
i++; j++;
if (i>=N) { mt[0] = mt[N-1]; i=1; }
if (j>=key_length) j=0;
}
for (k=N-1; k; k--) {
- mt[i] = (mt[i] ^ ((mt[i-1] ^ (mt[i-1] >> 30)) * 1566083941UL))
- - (unsigned long)i; /* non linear */
- mt[i] &= 0xffffffffUL; /* for WORDSIZE > 32 machines */
+ mt[i] = (mt[i] ^ ((mt[i-1] ^ (mt[i-1] >> 30)) * 1566083941U))
+ - (PY_UINT32_T)i; /* non linear */
i++;
if (i>=N) { mt[0] = mt[N-1]; i=1; }
}
- mt[0] = 0x80000000UL; /* MSB is 1; assuring non-zero initial array */
+ mt[0] = 0x80000000U; /* MSB is 1; assuring non-zero initial array */
Py_INCREF(Py_None);
return Py_None;
}
@@ -208,9 +208,8 @@ random_seed(RandomObject *self, PyObject *args)
{
PyObject *result = NULL; /* guilty until proved innocent */
PyObject *n = NULL;
- unsigned long *key = NULL;
- unsigned char *key_as_bytes = NULL;
- size_t bits, keyused, i;
+ PY_UINT32_T *key = NULL;
+ size_t bits, keyused;
int res;
PyObject *arg = NULL;
@@ -221,7 +220,7 @@ random_seed(RandomObject *self, PyObject *args)
time_t now;
time(&now);
- init_genrand(self, (unsigned long)now);
+ init_genrand(self, (PY_UINT32_T)now);
Py_INCREF(Py_None);
return Py_None;
}
@@ -249,35 +248,31 @@ random_seed(RandomObject *self, PyObject *args)
keyused = bits == 0 ? 1 : (bits - 1) / 32 + 1;
/* Convert seed to byte sequence. */
- key_as_bytes = (unsigned char *)PyMem_Malloc((size_t)4 * keyused);
- if (key_as_bytes == NULL) {
+ key = (PY_UINT32_T *)PyMem_Malloc((size_t)4 * keyused);
+ if (key == NULL) {
PyErr_NoMemory();
goto Done;
}
res = _PyLong_AsByteArray((PyLongObject *)n,
- key_as_bytes, keyused * 4,
- 1, /* little-endian */
+ (unsigned char *)key, keyused * 4,
+ PY_LITTLE_ENDIAN,
0); /* unsigned */
if (res == -1) {
- PyMem_Free(key_as_bytes);
+ PyMem_Free(key);
goto Done;
}
- /* Fill array of unsigned longs from byte sequence. */
- key = (unsigned long *)PyMem_Malloc(sizeof(unsigned long) * keyused);
- if (key == NULL) {
- PyErr_NoMemory();
- PyMem_Free(key_as_bytes);
- goto Done;
- }
- for (i = 0; i < keyused; i++) {
- key[i] =
- ((unsigned long)key_as_bytes[4*i + 0] << 0) +
- ((unsigned long)key_as_bytes[4*i + 1] << 8) +
- ((unsigned long)key_as_bytes[4*i + 2] << 16) +
- ((unsigned long)key_as_bytes[4*i + 3] << 24);
+#if PY_BIG_ENDIAN
+ {
+ size_t i, j;
+ /* Reverse an array. */
+ for (i = 0, j = keyused - 1; i < j; i++, j--) {
+ PY_UINT32_T tmp = key[i];
+ key[i] = key[j];
+ key[j] = tmp;
+ }
}
- PyMem_Free(key_as_bytes);
+#endif
result = init_by_array(self, key, keyused);
Done:
Py_XDECREF(n);
@@ -334,7 +329,7 @@ random_setstate(RandomObject *self, PyObject *state)
element = PyLong_AsUnsignedLong(PyTuple_GET_ITEM(state, i));
if (element == (unsigned long)-1 && PyErr_Occurred())
return NULL;
- self->state[i] = element & 0xffffffffUL; /* Make sure we get sane state */
+ self->state[i] = (PY_UINT32_T)element;
}
index = PyLong_AsLong(PyTuple_GET_ITEM(state, i));
@@ -353,9 +348,9 @@ random_setstate(RandomObject *self, PyObject *state)
static PyObject *
random_getrandbits(RandomObject *self, PyObject *args)
{
- int k, i, bytes;
- unsigned long r;
- unsigned char *bytearray;
+ int k, i, words;
+ PY_UINT32_T r;
+ PY_UINT32_T *wordarray;
PyObject *result;
if (!PyArg_ParseTuple(args, "i:getrandbits", &k))
@@ -370,27 +365,30 @@ random_getrandbits(RandomObject *self, PyObject *args)
if (k <= 32) /* Fast path */
return PyLong_FromUnsignedLong(genrand_int32(self) >> (32 - k));
- bytes = ((k - 1) / 32 + 1) * 4;
- bytearray = (unsigned char *)PyMem_Malloc(bytes);
- if (bytearray == NULL) {
+ words = (k - 1) / 32 + 1;
+ wordarray = (PY_UINT32_T *)PyMem_Malloc(words * 4);
+ if (wordarray == NULL) {
PyErr_NoMemory();
return NULL;
}
- /* Fill-out whole words, byte-by-byte to avoid endianness issues */
- for (i=0 ; i<bytes ; i+=4, k-=32) {
+ /* Fill-out bits of long integer, by 32-bit words, from least significant
+ to most significant. */
+#if PY_LITTLE_ENDIAN
+ for (i = 0; i < words; i++, k -= 32)
+#else
+ for (i = words - 1; i >= 0; i--, k -= 32)
+#endif
+ {
r = genrand_int32(self);
if (k < 32)
- r >>= (32 - k);
- bytearray[i+0] = (unsigned char)r;
- bytearray[i+1] = (unsigned char)(r >> 8);
- bytearray[i+2] = (unsigned char)(r >> 16);
- bytearray[i+3] = (unsigned char)(r >> 24);
+ r >>= (32 - k); /* Drop least significant bits */
+ wordarray[i] = r;
}
- /* little endian order to match bytearray assignment order */
- result = _PyLong_FromByteArray(bytearray, bytes, 1, 0);
- PyMem_Free(bytearray);
+ result = _PyLong_FromByteArray((unsigned char *)wordarray, words * 4,
+ PY_LITTLE_ENDIAN, 0 /* unsigned */);
+ PyMem_Free(wordarray);
return result;
}
diff --git a/Modules/_scproxy.c b/Modules/_scproxy.c
index 3b2a38ea32..66b6e3439f 100644
--- a/Modules/_scproxy.c
+++ b/Modules/_scproxy.c
@@ -249,7 +249,7 @@ static struct PyModuleDef mod_module = {
extern "C" {
#endif
-PyObject*
+PyMODINIT_FUNC
PyInit__scproxy(void)
{
return PyModule_Create(&mod_module);
diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c
index d3903286c8..a08ebfe8c4 100644
--- a/Modules/_sqlite/connection.c
+++ b/Modules/_sqlite/connection.c
@@ -1241,6 +1241,9 @@ PyObject* pysqlite_connection_call(pysqlite_Connection* self, PyObject* args, Py
return NULL;
}
+ if (!_PyArg_NoKeywords(MODULE_NAME ".Connection()", kwargs))
+ return NULL;
+
if (!PyArg_ParseTuple(args, "O", &sql))
return NULL;
diff --git a/Modules/_sqlite/connection.h b/Modules/_sqlite/connection.h
index 0c9734caf7..fbd9063779 100644
--- a/Modules/_sqlite/connection.h
+++ b/Modules/_sqlite/connection.h
@@ -52,7 +52,7 @@ typedef struct
* first get called with count=0? */
double timeout_started;
- /* None for autocommit, otherwise a PyString with the isolation level */
+ /* None for autocommit, otherwise a PyUnicode with the isolation level */
PyObject* isolation_level;
/* NULL for autocommit, otherwise a string with the BEGIN statement; will be
diff --git a/Modules/_sqlite/cursor.c b/Modules/_sqlite/cursor.c
index db96b02519..c1599c02df 100644
--- a/Modules/_sqlite/cursor.c
+++ b/Modules/_sqlite/cursor.c
@@ -46,7 +46,7 @@ static pysqlite_StatementKind detect_statement_type(const char* statement)
dst = buf;
*dst = 0;
- while (Py_ISALPHA(*src) && dst - buf < sizeof(buf) - 2) {
+ while (Py_ISALPHA(*src) && (dst - buf) < ((Py_ssize_t)sizeof(buf) - 2)) {
*dst++ = Py_TOLOWER(*src++);
}
@@ -334,11 +334,7 @@ PyObject* _pysqlite_fetch_one_row(pysqlite_Cursor* self)
if (self->connection->text_factory == (PyObject*)&PyUnicode_Type) {
converted = PyUnicode_FromStringAndSize(val_str, nbytes);
if (!converted) {
-#ifdef Py_DEBUG
- /* in debug mode, type_call() fails with an assertion
- error if an exception is set when it is called */
PyErr_Clear();
-#endif
colname = sqlite3_column_name(self->statement->st, i);
if (!colname) {
colname = "<unknown column name>";
diff --git a/Modules/_sqlite/microprotocols.h b/Modules/_sqlite/microprotocols.h
index 3a9944fc79..6941716c4c 100644
--- a/Modules/_sqlite/microprotocols.h
+++ b/Modules/_sqlite/microprotocols.h
@@ -48,7 +48,7 @@ extern PyObject *pysqlite_microprotocols_adapt(
PyObject *obj, PyObject *proto, PyObject *alt);
extern PyObject *
- pysqlite_adapt(pysqlite_Cursor* self, PyObject *args);
+ pysqlite_adapt(pysqlite_Cursor* self, PyObject *args);
#define pysqlite_adapt_doc \
"adapt(obj, protocol, alternate) -> adapt obj to given protocol. Non-standard."
diff --git a/Modules/_sqlite/row.c b/Modules/_sqlite/row.c
index ee73446006..07584e30e5 100644
--- a/Modules/_sqlite/row.c
+++ b/Modules/_sqlite/row.c
@@ -142,8 +142,7 @@ PyObject* pysqlite_row_subscript(pysqlite_Row* self, PyObject* idx)
return NULL;
}
else if (PySlice_Check(idx)) {
- PyErr_SetString(PyExc_ValueError, "slices not implemented, yet");
- return NULL;
+ return PyObject_GetItem(self->data, idx);
}
else {
PyErr_SetString(PyExc_IndexError, "Index must be int or string");
@@ -159,7 +158,7 @@ Py_ssize_t pysqlite_row_length(pysqlite_Row* self, PyObject* args, PyObject* kwa
PyObject* pysqlite_row_keys(pysqlite_Row* self, PyObject* args, PyObject* kwargs)
{
PyObject* list;
- int nitems, i;
+ Py_ssize_t nitems, i;
list = PyList_New(0);
if (!list) {
diff --git a/Modules/_sre.c b/Modules/_sre.c
index d6fcda18b6..957ccbc7ff 100644
--- a/Modules/_sre.c
+++ b/Modules/_sre.c
@@ -97,48 +97,25 @@ static char copyright[] =
/* -------------------------------------------------------------------- */
/* search engine state */
-/* default character predicates (run sre_chars.py to regenerate tables) */
-
-#define SRE_DIGIT_MASK 1
-#define SRE_SPACE_MASK 2
-#define SRE_LINEBREAK_MASK 4
-#define SRE_ALNUM_MASK 8
-#define SRE_WORD_MASK 16
-
-/* FIXME: this assumes ASCII. create tables in init_sre() instead */
-
-static char sre_char_info[128] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 6, 2,
-2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0,
-0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25, 25, 25, 25, 25, 25,
-25, 25, 0, 0, 0, 0, 0, 0, 0, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
-24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 0, 0,
-0, 0, 16, 0, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
-24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 0, 0, 0, 0, 0 };
-
-static char sre_char_lower[128] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
-10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
-27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
-44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
-61, 62, 63, 64, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
-108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
-122, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
-106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
-120, 121, 122, 123, 124, 125, 126, 127 };
-
#define SRE_IS_DIGIT(ch)\
- ((ch) < 128 ? (sre_char_info[(ch)] & SRE_DIGIT_MASK) : 0)
+ ((ch) < 128 && Py_ISDIGIT(ch))
#define SRE_IS_SPACE(ch)\
- ((ch) < 128 ? (sre_char_info[(ch)] & SRE_SPACE_MASK) : 0)
+ ((ch) < 128 && Py_ISSPACE(ch))
#define SRE_IS_LINEBREAK(ch)\
- ((ch) < 128 ? (sre_char_info[(ch)] & SRE_LINEBREAK_MASK) : 0)
+ ((ch) == '\n')
#define SRE_IS_ALNUM(ch)\
- ((ch) < 128 ? (sre_char_info[(ch)] & SRE_ALNUM_MASK) : 0)
+ ((ch) < 128 && Py_ISALNUM(ch))
#define SRE_IS_WORD(ch)\
- ((ch) < 128 ? (sre_char_info[(ch)] & SRE_WORD_MASK) : 0)
+ ((ch) < 128 && (Py_ISALNUM(ch) || (ch) == '_'))
static unsigned int sre_lower(unsigned int ch)
{
- return ((ch) < 128 ? (unsigned int)sre_char_lower[ch] : ch);
+ return ((ch) < 128 ? Py_TOLOWER(ch) : ch);
+}
+
+static unsigned int sre_upper(unsigned int ch)
+{
+ return ((ch) < 128 ? Py_TOUPPER(ch) : ch);
}
/* locale-specific character predicates */
@@ -152,6 +129,11 @@ static unsigned int sre_lower_locale(unsigned int ch)
return ((ch) < 256 ? (unsigned int)tolower((ch)) : ch);
}
+static unsigned int sre_upper_locale(unsigned int ch)
+{
+ return ((ch) < 256 ? (unsigned int)toupper((ch)) : ch);
+}
+
/* unicode-specific character predicates */
#define SRE_UNI_IS_DIGIT(ch) Py_UNICODE_ISDECIMAL(ch)
@@ -165,6 +147,11 @@ static unsigned int sre_lower_unicode(unsigned int ch)
return (unsigned int) Py_UNICODE_TOLOWER(ch);
}
+static unsigned int sre_upper_unicode(unsigned int ch)
+{
+ return (unsigned int) Py_UNICODE_TOUPPER(ch);
+}
+
LOCAL(int)
sre_category(SRE_CODE category, unsigned int ch)
{
@@ -271,25 +258,50 @@ data_stack_grow(SRE_STATE* state, Py_ssize_t size)
/* see sre.h for object declarations */
static PyObject*pattern_new_match(PatternObject*, SRE_STATE*, Py_ssize_t);
-static PyObject*pattern_scanner(PatternObject*, PyObject*, PyObject* kw);
+static PyObject *pattern_scanner(PatternObject *, PyObject *, Py_ssize_t, Py_ssize_t);
-static PyObject *
-sre_codesize(PyObject* self, PyObject *unused)
+
+/*[clinic input]
+module _sre
+class _sre.SRE_Pattern "PatternObject *" "&Pattern_Type"
+class _sre.SRE_Match "MatchObject *" "&Match_Type"
+class _sre.SRE_Scanner "ScannerObject *" "&Scanner_Type"
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=b0230ec19a0deac8]*/
+
+static PyTypeObject Pattern_Type;
+static PyTypeObject Match_Type;
+static PyTypeObject Scanner_Type;
+
+/*[clinic input]
+_sre.getcodesize -> int
+[clinic start generated code]*/
+
+static int
+_sre_getcodesize_impl(PyModuleDef *module)
+/*[clinic end generated code: output=794f1f98ef4883e5 input=bd6f6ecf4916bb2b]*/
{
- return PyLong_FromSize_t(sizeof(SRE_CODE));
+ return sizeof(SRE_CODE);
}
-static PyObject *
-sre_getlower(PyObject* self, PyObject* args)
+/*[clinic input]
+_sre.getlower -> int
+
+ character: int
+ flags: int
+ /
+
+[clinic start generated code]*/
+
+static int
+_sre_getlower_impl(PyModuleDef *module, int character, int flags)
+/*[clinic end generated code: output=5fc3616ae2a4c306 input=087d2f1c44bbca6f]*/
{
- int character, flags;
- if (!PyArg_ParseTuple(args, "ii", &character, &flags))
- return NULL;
if (flags & SRE_FLAG_LOCALE)
- return Py_BuildValue("i", sre_lower_locale(character));
+ return sre_lower_locale(character);
if (flags & SRE_FLAG_UNICODE)
- return Py_BuildValue("i", sre_lower_unicode(character));
- return Py_BuildValue("i", sre_lower(character));
+ return sre_lower_unicode(character);
+ return sre_lower(character);
}
LOCAL(void)
@@ -328,7 +340,7 @@ getstring(PyObject* string, Py_ssize_t* p_length,
/* get pointer to byte string buffer */
if (PyObject_GetBuffer(string, view, PyBUF_SIMPLE) != 0) {
- PyErr_SetString(PyExc_TypeError, "expected string or buffer");
+ PyErr_SetString(PyExc_TypeError, "expected string or bytes-like object");
return NULL;
}
@@ -357,6 +369,11 @@ state_init(SRE_STATE* state, PatternObject* pattern, PyObject* string,
memset(state, 0, sizeof(SRE_STATE));
+ state->mark = PyMem_New(void *, pattern->groups * 2);
+ if (!state->mark) {
+ PyErr_NoMemory();
+ goto err;
+ }
state->lastmark = -1;
state->lastindex = -1;
@@ -367,12 +384,12 @@ state_init(SRE_STATE* state, PatternObject* pattern, PyObject* string,
if (isbytes && pattern->isbytes == 0) {
PyErr_SetString(PyExc_TypeError,
- "can't use a string pattern on a bytes-like object");
+ "cannot use a string pattern on a bytes-like object");
goto err;
}
if (!isbytes && pattern->isbytes > 0) {
PyErr_SetString(PyExc_TypeError,
- "can't use a bytes pattern on a string-like object");
+ "cannot use a bytes pattern on a string-like object");
goto err;
}
@@ -400,15 +417,23 @@ state_init(SRE_STATE* state, PatternObject* pattern, PyObject* string,
state->pos = start;
state->endpos = end;
- if (pattern->flags & SRE_FLAG_LOCALE)
+ if (pattern->flags & SRE_FLAG_LOCALE) {
state->lower = sre_lower_locale;
- else if (pattern->flags & SRE_FLAG_UNICODE)
+ state->upper = sre_upper_locale;
+ }
+ else if (pattern->flags & SRE_FLAG_UNICODE) {
state->lower = sre_lower_unicode;
- else
+ state->upper = sre_upper_unicode;
+ }
+ else {
state->lower = sre_lower;
+ state->upper = sre_upper;
+ }
return string;
err:
+ PyMem_Del(state->mark);
+ state->mark = NULL;
if (state->buffer.buf)
PyBuffer_Release(&state->buffer);
return NULL;
@@ -421,6 +446,8 @@ state_fini(SRE_STATE* state)
PyBuffer_Release(&state->buffer);
Py_XDECREF(state->string);
data_stack_dealloc(state);
+ PyMem_Del(state->mark);
+ state->mark = NULL;
}
/* calculate offset from start of string */
@@ -473,8 +500,9 @@ pattern_error(Py_ssize_t status)
{
switch (status) {
case SRE_ERROR_RECURSION_LIMIT:
+ /* This error code seems to be unused. */
PyErr_SetString(
- PyExc_RuntimeError,
+ PyExc_RecursionError,
"maximum recursion limit exceeded"
);
break;
@@ -550,26 +578,32 @@ fix_string_param(PyObject *string, PyObject *string2, const char *oldname)
return string;
}
+/*[clinic input]
+_sre.SRE_Pattern.match
+
+ string: object = NULL
+ pos: Py_ssize_t = 0
+ endpos: Py_ssize_t(c_default="PY_SSIZE_T_MAX") = sys.maxsize
+ *
+ pattern: object = NULL
+
+Matches zero or more characters at the beginning of the string.
+[clinic start generated code]*/
+
static PyObject *
-pattern_match(PatternObject *self, PyObject *args, PyObject *kwargs)
+_sre_SRE_Pattern_match_impl(PatternObject *self, PyObject *string,
+ Py_ssize_t pos, Py_ssize_t endpos,
+ PyObject *pattern)
+/*[clinic end generated code: output=74b4b1da3bb2d84e input=3d079aa99979b81d]*/
{
- static char *_keywords[] = {"string", "pos", "endpos", "pattern", NULL};
- PyObject *string = NULL;
- Py_ssize_t pos = 0;
- Py_ssize_t endpos = PY_SSIZE_T_MAX;
- PyObject *pattern = NULL;
SRE_STATE state;
Py_ssize_t status;
+ PyObject *match;
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,
- "|Onn$O:match", _keywords,
- &string, &pos, &endpos, &pattern))
- return NULL;
string = fix_string_param(string, pattern, "pattern");
if (!string)
return NULL;
- string = state_init(&state, (PatternObject *)self, string, pos, endpos);
- if (!string)
+ if (!state_init(&state, (PatternObject *)self, string, pos, endpos))
return NULL;
state.ptr = state.start;
@@ -579,34 +613,43 @@ pattern_match(PatternObject *self, PyObject *args, PyObject *kwargs)
status = sre_match(&state, PatternObject_GetCode(self), 0);
TRACE(("|%p|%p|END\n", PatternObject_GetCode(self), state.ptr));
- if (PyErr_Occurred())
+ if (PyErr_Occurred()) {
+ state_fini(&state);
return NULL;
+ }
+ match = pattern_new_match(self, &state, status);
state_fini(&state);
-
- return (PyObject *)pattern_new_match(self, &state, status);
+ return match;
}
-static PyObject*
-pattern_fullmatch(PatternObject* self, PyObject* args, PyObject* kw)
+/*[clinic input]
+_sre.SRE_Pattern.fullmatch
+
+ string: object = NULL
+ pos: Py_ssize_t = 0
+ endpos: Py_ssize_t(c_default="PY_SSIZE_T_MAX") = sys.maxsize
+ *
+ pattern: object = NULL
+
+Matches against all of the string
+[clinic start generated code]*/
+
+static PyObject *
+_sre_SRE_Pattern_fullmatch_impl(PatternObject *self, PyObject *string,
+ Py_ssize_t pos, Py_ssize_t endpos,
+ PyObject *pattern)
+/*[clinic end generated code: output=1c98bc5da744ea94 input=d4228606cc12580f]*/
{
SRE_STATE state;
Py_ssize_t status;
+ PyObject *match;
- PyObject *string = NULL, *string2 = NULL;
- Py_ssize_t start = 0;
- Py_ssize_t end = PY_SSIZE_T_MAX;
- static char* kwlist[] = { "string", "pos", "endpos", "pattern", NULL };
- if (!PyArg_ParseTupleAndKeywords(args, kw, "|Onn$O:fullmatch", kwlist,
- &string, &start, &end, &string2))
- return NULL;
-
- string = fix_string_param(string, string2, "pattern");
+ string = fix_string_param(string, pattern, "pattern");
if (!string)
return NULL;
- string = state_init(&state, self, string, start, end);
- if (!string)
+ if (!state_init(&state, self, string, pos, endpos))
return NULL;
state.ptr = state.start;
@@ -616,34 +659,45 @@ pattern_fullmatch(PatternObject* self, PyObject* args, PyObject* kw)
status = sre_match(&state, PatternObject_GetCode(self), 1);
TRACE(("|%p|%p|END\n", PatternObject_GetCode(self), state.ptr));
- if (PyErr_Occurred())
+ if (PyErr_Occurred()) {
+ state_fini(&state);
return NULL;
+ }
+ match = pattern_new_match(self, &state, status);
state_fini(&state);
-
- return pattern_new_match(self, &state, status);
+ return match;
}
-static PyObject*
-pattern_search(PatternObject* self, PyObject* args, PyObject* kw)
+/*[clinic input]
+_sre.SRE_Pattern.search
+
+ string: object = NULL
+ pos: Py_ssize_t = 0
+ endpos: Py_ssize_t(c_default="PY_SSIZE_T_MAX") = sys.maxsize
+ *
+ pattern: object = NULL
+
+Scan through string looking for a match, and return a corresponding match object instance.
+
+Return None if no position in the string matches.
+[clinic start generated code]*/
+
+static PyObject *
+_sre_SRE_Pattern_search_impl(PatternObject *self, PyObject *string,
+ Py_ssize_t pos, Py_ssize_t endpos,
+ PyObject *pattern)
+/*[clinic end generated code: output=3839394a18e5ea4f input=dab42720f4be3a4b]*/
{
SRE_STATE state;
Py_ssize_t status;
+ PyObject *match;
- PyObject *string = NULL, *string2 = NULL;
- Py_ssize_t start = 0;
- Py_ssize_t end = PY_SSIZE_T_MAX;
- static char* kwlist[] = { "string", "pos", "endpos", "pattern", NULL };
- if (!PyArg_ParseTupleAndKeywords(args, kw, "|Onn$O:search", kwlist,
- &string, &start, &end, &string2))
- return NULL;
-
- string = fix_string_param(string, string2, "pattern");
+ string = fix_string_param(string, pattern, "pattern");
if (!string)
return NULL;
- string = state_init(&state, self, string, start, end);
- if (!string)
+ if (!state_init(&state, self, string, pos, endpos))
return NULL;
TRACE(("|%p|%p|SEARCH\n", PatternObject_GetCode(self), state.ptr));
@@ -652,12 +706,14 @@ pattern_search(PatternObject* self, PyObject* args, PyObject* kw)
TRACE(("|%p|%p|END\n", PatternObject_GetCode(self), state.ptr));
- state_fini(&state);
-
- if (PyErr_Occurred())
+ if (PyErr_Occurred()) {
+ state_fini(&state);
return NULL;
+ }
- return pattern_new_match(self, &state, status);
+ match = pattern_new_match(self, &state, status);
+ state_fini(&state);
+ return match;
}
static PyObject*
@@ -707,28 +763,34 @@ deepcopy(PyObject** object, PyObject* memo)
}
#endif
-static PyObject*
-pattern_findall(PatternObject* self, PyObject* args, PyObject* kw)
+/*[clinic input]
+_sre.SRE_Pattern.findall
+
+ string: object = NULL
+ pos: Py_ssize_t = 0
+ endpos: Py_ssize_t(c_default="PY_SSIZE_T_MAX") = sys.maxsize
+ *
+ source: object = NULL
+
+Return a list of all non-overlapping matches of pattern in string.
+[clinic start generated code]*/
+
+static PyObject *
+_sre_SRE_Pattern_findall_impl(PatternObject *self, PyObject *string,
+ Py_ssize_t pos, Py_ssize_t endpos,
+ PyObject *source)
+/*[clinic end generated code: output=51295498b300639d input=df688355c056b9de]*/
{
SRE_STATE state;
PyObject* list;
Py_ssize_t status;
Py_ssize_t i, b, e;
- PyObject *string = NULL, *string2 = NULL;
- Py_ssize_t start = 0;
- Py_ssize_t end = PY_SSIZE_T_MAX;
- static char* kwlist[] = { "string", "pos", "endpos", "source", NULL };
- if (!PyArg_ParseTupleAndKeywords(args, kw, "|Onn$O:findall", kwlist,
- &string, &start, &end, &string2))
- return NULL;
-
- string = fix_string_param(string, string2, "source");
+ string = fix_string_param(string, source, "source");
if (!string)
return NULL;
- string = state_init(&state, self, string, start, end);
- if (!string)
+ if (!state_init(&state, self, string, pos, endpos))
return NULL;
list = PyList_New(0);
@@ -808,14 +870,28 @@ error:
}
-static PyObject*
-pattern_finditer(PatternObject* pattern, PyObject* args, PyObject* kw)
+/*[clinic input]
+_sre.SRE_Pattern.finditer
+
+ string: object
+ pos: Py_ssize_t = 0
+ endpos: Py_ssize_t(c_default="PY_SSIZE_T_MAX") = sys.maxsize
+
+Return an iterator over all non-overlapping matches for the RE pattern in string.
+
+For each match, the iterator returns a match object.
+[clinic start generated code]*/
+
+static PyObject *
+_sre_SRE_Pattern_finditer_impl(PatternObject *self, PyObject *string,
+ Py_ssize_t pos, Py_ssize_t endpos)
+/*[clinic end generated code: output=0bbb1a0aeb38bb14 input=612aab69e9fe08e4]*/
{
PyObject* scanner;
PyObject* search;
PyObject* iterator;
- scanner = pattern_scanner(pattern, args, kw);
+ scanner = pattern_scanner(self, string, pos, endpos);
if (!scanner)
return NULL;
@@ -830,8 +906,38 @@ pattern_finditer(PatternObject* pattern, PyObject* args, PyObject* kw)
return iterator;
}
-static PyObject*
-pattern_split(PatternObject* self, PyObject* args, PyObject* kw)
+/*[clinic input]
+_sre.SRE_Pattern.scanner
+
+ string: object
+ pos: Py_ssize_t = 0
+ endpos: Py_ssize_t(c_default="PY_SSIZE_T_MAX") = sys.maxsize
+
+[clinic start generated code]*/
+
+static PyObject *
+_sre_SRE_Pattern_scanner_impl(PatternObject *self, PyObject *string,
+ Py_ssize_t pos, Py_ssize_t endpos)
+/*[clinic end generated code: output=54ea548aed33890b input=3aacdbde77a3a637]*/
+{
+ return pattern_scanner(self, string, pos, endpos);
+}
+
+/*[clinic input]
+_sre.SRE_Pattern.split
+
+ string: object = NULL
+ maxsplit: Py_ssize_t = 0
+ *
+ source: object = NULL
+
+Split string by the occurrences of pattern.
+[clinic start generated code]*/
+
+static PyObject *
+_sre_SRE_Pattern_split_impl(PatternObject *self, PyObject *string,
+ Py_ssize_t maxsplit, PyObject *source)
+/*[clinic end generated code: output=20bac2ff55b9f84c input=41e0b2e35e599d7b]*/
{
SRE_STATE state;
PyObject* list;
@@ -841,19 +947,24 @@ pattern_split(PatternObject* self, PyObject* args, PyObject* kw)
Py_ssize_t i;
void* last;
- PyObject *string = NULL, *string2 = NULL;
- Py_ssize_t maxsplit = 0;
- static char* kwlist[] = { "string", "maxsplit", "source", NULL };
- if (!PyArg_ParseTupleAndKeywords(args, kw, "|On$O:split", kwlist,
- &string, &maxsplit, &string2))
- return NULL;
-
- string = fix_string_param(string, string2, "source");
+ string = fix_string_param(string, source, "source");
if (!string)
return NULL;
- string = state_init(&state, self, string, 0, PY_SSIZE_T_MAX);
- if (!string)
+ assert(self->codesize != 0);
+ if (self->code[0] != SRE_OP_INFO || self->code[3] == 0) {
+ if (self->code[0] == SRE_OP_INFO && self->code[4] == 0) {
+ PyErr_SetString(PyExc_ValueError,
+ "split() requires a non-empty pattern match.");
+ return NULL;
+ }
+ if (PyErr_WarnEx(PyExc_FutureWarning,
+ "split() requires a non-empty pattern match.",
+ 1) < 0)
+ return NULL;
+ }
+
+ if (!state_init(&state, self, string, 0, PY_SSIZE_T_MAX))
return NULL;
list = PyList_New(0);
@@ -997,8 +1108,7 @@ pattern_subx(PatternObject* self, PyObject* ptemplate, PyObject* string,
}
}
- string = state_init(&state, self, string, 0, PY_SSIZE_T_MAX);
- if (!string) {
+ if (!state_init(&state, self, string, 0, PY_SSIZE_T_MAX)) {
Py_DECREF(filter);
return NULL;
}
@@ -1140,36 +1250,50 @@ error:
}
-static PyObject*
-pattern_sub(PatternObject* self, PyObject* args, PyObject* kw)
-{
- PyObject* ptemplate;
- PyObject* string;
- Py_ssize_t count = 0;
- static char* kwlist[] = { "repl", "string", "count", NULL };
- if (!PyArg_ParseTupleAndKeywords(args, kw, "OO|n:sub", kwlist,
- &ptemplate, &string, &count))
- return NULL;
+/*[clinic input]
+_sre.SRE_Pattern.sub
- return pattern_subx(self, ptemplate, string, count, 0);
+ repl: object
+ string: object
+ count: Py_ssize_t = 0
+
+Return the string obtained by replacing the leftmost non-overlapping occurrences of pattern in string by the replacement repl.
+[clinic start generated code]*/
+
+static PyObject *
+_sre_SRE_Pattern_sub_impl(PatternObject *self, PyObject *repl,
+ PyObject *string, Py_ssize_t count)
+/*[clinic end generated code: output=1dbf2ec3479cba00 input=c53d70be0b3caf86]*/
+{
+ return pattern_subx(self, repl, string, count, 0);
}
-static PyObject*
-pattern_subn(PatternObject* self, PyObject* args, PyObject* kw)
-{
- PyObject* ptemplate;
- PyObject* string;
- Py_ssize_t count = 0;
- static char* kwlist[] = { "repl", "string", "count", NULL };
- if (!PyArg_ParseTupleAndKeywords(args, kw, "OO|n:subn", kwlist,
- &ptemplate, &string, &count))
- return NULL;
+/*[clinic input]
+_sre.SRE_Pattern.subn
+
+ repl: object
+ string: object
+ count: Py_ssize_t = 0
- return pattern_subx(self, ptemplate, string, count, 1);
+Return the tuple (new_string, number_of_subs_made) found by replacing the leftmost non-overlapping occurrences of pattern with the replacement repl.
+[clinic start generated code]*/
+
+static PyObject *
+_sre_SRE_Pattern_subn_impl(PatternObject *self, PyObject *repl,
+ PyObject *string, Py_ssize_t count)
+/*[clinic end generated code: output=0d9522cd529e9728 input=e7342d7ce6083577]*/
+{
+ return pattern_subx(self, repl, string, count, 1);
}
-static PyObject*
-pattern_copy(PatternObject* self, PyObject *unused)
+/*[clinic input]
+_sre.SRE_Pattern.__copy__
+
+[clinic start generated code]*/
+
+static PyObject *
+_sre_SRE_Pattern___copy___impl(PatternObject *self)
+/*[clinic end generated code: output=85dedc2db1bd8694 input=a730a59d863bc9f5]*/
{
#ifdef USE_BUILTIN_COPY
PatternObject* copy;
@@ -1196,8 +1320,16 @@ pattern_copy(PatternObject* self, PyObject *unused)
#endif
}
-static PyObject*
-pattern_deepcopy(PatternObject* self, PyObject* memo)
+/*[clinic input]
+_sre.SRE_Pattern.__deepcopy__
+
+ memo: object
+
+[clinic start generated code]*/
+
+static PyObject *
+_sre_SRE_Pattern___deepcopy___impl(PatternObject *self, PyObject *memo)
+/*[clinic end generated code: output=75efe69bd12c5d7d input=3959719482c07f70]*/
{
#ifdef USE_BUILTIN_COPY
PatternObject* copy;
@@ -1238,7 +1370,7 @@ pattern_repr(PatternObject *obj)
};
PyObject *result = NULL;
PyObject *flag_items;
- int i;
+ size_t i;
int flags = obj->flags;
/* Omit re.UNICODE for valid string patterns. */
@@ -1299,131 +1431,40 @@ done:
return result;
}
-PyDoc_STRVAR(pattern_match_doc,
-"match(string[, pos[, endpos]]) -> match object or None.\n\
- Matches zero or more characters at the beginning of the string");
-
-PyDoc_STRVAR(pattern_fullmatch_doc,
-"fullmatch(string[, pos[, endpos]]) -> match object or None.\n\
- Matches against all of the string");
-
-PyDoc_STRVAR(pattern_search_doc,
-"search(string[, pos[, endpos]]) -> match object or None.\n\
- Scan through string looking for a match, and return a corresponding\n\
- match object instance. Return None if no position in the string matches.");
-
-PyDoc_STRVAR(pattern_split_doc,
-"split(string[, maxsplit = 0]) -> list.\n\
- Split string by the occurrences of pattern.");
-
-PyDoc_STRVAR(pattern_findall_doc,
-"findall(string[, pos[, endpos]]) -> list.\n\
- Return a list of all non-overlapping matches of pattern in string.");
-
-PyDoc_STRVAR(pattern_finditer_doc,
-"finditer(string[, pos[, endpos]]) -> iterator.\n\
- Return an iterator over all non-overlapping matches for the \n\
- RE pattern in string. For each match, the iterator returns a\n\
- match object.");
-
-PyDoc_STRVAR(pattern_sub_doc,
-"sub(repl, string[, count = 0]) -> newstring.\n\
- Return the string obtained by replacing the leftmost non-overlapping\n\
- occurrences of pattern in string by the replacement repl.");
-
-PyDoc_STRVAR(pattern_subn_doc,
-"subn(repl, string[, count = 0]) -> (newstring, number of subs)\n\
- Return the tuple (new_string, number_of_subs_made) found by replacing\n\
- the leftmost non-overlapping occurrences of pattern with the\n\
- replacement repl.");
-
PyDoc_STRVAR(pattern_doc, "Compiled regular expression objects");
-static PyMethodDef pattern_methods[] = {
- {"match", (PyCFunction) pattern_match, METH_VARARGS|METH_KEYWORDS,
- pattern_match_doc},
- {"fullmatch", (PyCFunction) pattern_fullmatch, METH_VARARGS|METH_KEYWORDS,
- pattern_fullmatch_doc},
- {"search", (PyCFunction) pattern_search, METH_VARARGS|METH_KEYWORDS,
- pattern_search_doc},
- {"sub", (PyCFunction) pattern_sub, METH_VARARGS|METH_KEYWORDS,
- pattern_sub_doc},
- {"subn", (PyCFunction) pattern_subn, METH_VARARGS|METH_KEYWORDS,
- pattern_subn_doc},
- {"split", (PyCFunction) pattern_split, METH_VARARGS|METH_KEYWORDS,
- pattern_split_doc},
- {"findall", (PyCFunction) pattern_findall, METH_VARARGS|METH_KEYWORDS,
- pattern_findall_doc},
- {"finditer", (PyCFunction) pattern_finditer, METH_VARARGS|METH_KEYWORDS,
- pattern_finditer_doc},
- {"scanner", (PyCFunction) pattern_scanner, METH_VARARGS|METH_KEYWORDS},
- {"__copy__", (PyCFunction) pattern_copy, METH_NOARGS},
- {"__deepcopy__", (PyCFunction) pattern_deepcopy, METH_O},
- {NULL, NULL}
-};
+/* PatternObject's 'groupindex' method. */
+static PyObject *
+pattern_groupindex(PatternObject *self)
+{
+ return PyDictProxy_New(self->groupindex);
+}
-#define PAT_OFF(x) offsetof(PatternObject, x)
-static PyMemberDef pattern_members[] = {
- {"pattern", T_OBJECT, PAT_OFF(pattern), READONLY},
- {"flags", T_INT, PAT_OFF(flags), READONLY},
- {"groups", T_PYSSIZET, PAT_OFF(groups), READONLY},
- {"groupindex", T_OBJECT, PAT_OFF(groupindex), READONLY},
- {NULL} /* Sentinel */
-};
+static int _validate(PatternObject *self); /* Forward */
-static PyTypeObject Pattern_Type = {
- PyVarObject_HEAD_INIT(NULL, 0)
- "_" SRE_MODULE ".SRE_Pattern",
- sizeof(PatternObject), sizeof(SRE_CODE),
- (destructor)pattern_dealloc, /* tp_dealloc */
- 0, /* tp_print */
- 0, /* tp_getattr */
- 0, /* tp_setattr */
- 0, /* tp_reserved */
- (reprfunc)pattern_repr, /* tp_repr */
- 0, /* tp_as_number */
- 0, /* tp_as_sequence */
- 0, /* tp_as_mapping */
- 0, /* tp_hash */
- 0, /* tp_call */
- 0, /* tp_str */
- 0, /* tp_getattro */
- 0, /* tp_setattro */
- 0, /* tp_as_buffer */
- Py_TPFLAGS_DEFAULT, /* tp_flags */
- pattern_doc, /* tp_doc */
- 0, /* tp_traverse */
- 0, /* tp_clear */
- 0, /* tp_richcompare */
- offsetof(PatternObject, weakreflist), /* tp_weaklistoffset */
- 0, /* tp_iter */
- 0, /* tp_iternext */
- pattern_methods, /* tp_methods */
- pattern_members, /* tp_members */
-};
+/*[clinic input]
+_sre.compile
-static int _validate(PatternObject *self); /* Forward */
+ pattern: object
+ flags: int
+ code: object(subclass_of='&PyList_Type')
+ groups: Py_ssize_t
+ groupindex: object
+ indexgroup: object
+
+[clinic start generated code]*/
static PyObject *
-_compile(PyObject* self_, PyObject* args)
+_sre_compile_impl(PyModuleDef *module, PyObject *pattern, int flags,
+ PyObject *code, Py_ssize_t groups, PyObject *groupindex,
+ PyObject *indexgroup)
+/*[clinic end generated code: output=3004b293730bf309 input=7d059ec8ae1edb85]*/
{
/* "compile" pattern descriptor to pattern object */
PatternObject* self;
Py_ssize_t i, n;
- PyObject* pattern;
- int flags = 0;
- PyObject* code;
- Py_ssize_t groups = 0;
- PyObject* groupindex = NULL;
- PyObject* indexgroup = NULL;
-
- if (!PyArg_ParseTuple(args, "OiO!|nOO", &pattern, &flags,
- &PyList_Type, &code, &groups,
- &groupindex, &indexgroup))
- return NULL;
-
n = PyList_GET_SIZE(code);
/* coverity[ampersand_in_size] */
self = PyObject_NEW_VAR(PatternObject, &Pattern_Type, n);
@@ -1579,6 +1620,7 @@ _validate_charset(SRE_CODE *code, SRE_CODE *end)
break;
case SRE_OP_RANGE:
+ case SRE_OP_RANGE_IGNORE:
GET_ARG;
GET_ARG;
break;
@@ -1935,10 +1977,9 @@ _validate_inner(SRE_CODE *code, SRE_CODE *end, Py_ssize_t groups)
static int
_validate_outer(SRE_CODE *code, SRE_CODE *end, Py_ssize_t groups)
{
- if (groups < 0 || groups > 100 || code >= end || end[-1] != SRE_OP_SUCCESS)
+ if (groups < 0 || (size_t)groups > SRE_MAXGROUPS ||
+ code >= end || end[-1] != SRE_OP_SUCCESS)
FAIL;
- if (groups == 0) /* fix for simplejson */
- groups = 100; /* 100 groups should always be safe */
return _validate_inner(code, end-1, groups);
}
@@ -2036,13 +2077,22 @@ match_getslice(MatchObject* self, PyObject* index, PyObject* def)
return match_getslice_by_index(self, match_getindex(self, index), def);
}
-static PyObject*
-match_expand(MatchObject* self, PyObject* ptemplate)
+/*[clinic input]
+_sre.SRE_Match.expand
+
+ template: object
+
+Return the string obtained by doing backslash substitution on the string template, as done by the sub() method.
+[clinic start generated code]*/
+
+static PyObject *
+_sre_SRE_Match_expand_impl(MatchObject *self, PyObject *template)
+/*[clinic end generated code: output=931b58ccc323c3a1 input=4bfdb22c2f8b146a]*/
{
/* delegate to Python code */
return call(
SRE_PY_MODULE, "_expand",
- PyTuple_Pack(3, self->pattern, self, ptemplate)
+ PyTuple_Pack(3, self->pattern, self, template)
);
}
@@ -2081,24 +2131,29 @@ match_group(MatchObject* self, PyObject* args)
return result;
}
-static PyObject*
-match_groups(MatchObject* self, PyObject* args, PyObject* kw)
+/*[clinic input]
+_sre.SRE_Match.groups
+
+ default: object = None
+ Is used for groups that did not participate in the match.
+
+Return a tuple containing all the subgroups of the match, from 1.
+[clinic start generated code]*/
+
+static PyObject *
+_sre_SRE_Match_groups_impl(MatchObject *self, PyObject *default_value)
+/*[clinic end generated code: output=daf8e2641537238a input=bb069ef55dabca91]*/
{
PyObject* result;
Py_ssize_t index;
- PyObject* def = Py_None;
- static char* kwlist[] = { "default", NULL };
- if (!PyArg_ParseTupleAndKeywords(args, kw, "|O:groups", kwlist, &def))
- return NULL;
-
result = PyTuple_New(self->groups-1);
if (!result)
return NULL;
for (index = 1; index < self->groups; index++) {
PyObject* item;
- item = match_getslice_by_index(self, index, def);
+ item = match_getslice_by_index(self, index, default_value);
if (!item) {
Py_DECREF(result);
return NULL;
@@ -2109,18 +2164,23 @@ match_groups(MatchObject* self, PyObject* args, PyObject* kw)
return result;
}
-static PyObject*
-match_groupdict(MatchObject* self, PyObject* args, PyObject* kw)
+/*[clinic input]
+_sre.SRE_Match.groupdict
+
+ default: object = None
+ Is used for groups that did not participate in the match.
+
+Return a dictionary containing all the named subgroups of the match, keyed by the subgroup name.
+[clinic start generated code]*/
+
+static PyObject *
+_sre_SRE_Match_groupdict_impl(MatchObject *self, PyObject *default_value)
+/*[clinic end generated code: output=29917c9073e41757 input=0ded7960b23780aa]*/
{
PyObject* result;
PyObject* keys;
Py_ssize_t index;
- PyObject* def = Py_None;
- static char* kwlist[] = { "default", NULL };
- if (!PyArg_ParseTupleAndKeywords(args, kw, "|O:groupdict", kwlist, &def))
- return NULL;
-
result = PyDict_New();
if (!result || !self->pattern->groupindex)
return result;
@@ -2136,7 +2196,7 @@ match_groupdict(MatchObject* self, PyObject* args, PyObject* kw)
key = PyList_GET_ITEM(keys, index);
if (!key)
goto failed;
- value = match_getslice(self, key, def);
+ value = match_getslice(self, key, default_value);
if (!value) {
Py_DECREF(key);
goto failed;
@@ -2157,50 +2217,58 @@ failed:
return NULL;
}
-static PyObject*
-match_start(MatchObject* self, PyObject* args)
-{
- Py_ssize_t index;
+/*[clinic input]
+_sre.SRE_Match.start -> Py_ssize_t
- PyObject* index_ = NULL;
- if (!PyArg_UnpackTuple(args, "start", 0, 1, &index_))
- return NULL;
+ group: object(c_default="NULL") = 0
+ /
- index = match_getindex(self, index_);
+Return index of the start of the substring matched by group.
+[clinic start generated code]*/
+
+static Py_ssize_t
+_sre_SRE_Match_start_impl(MatchObject *self, PyObject *group)
+/*[clinic end generated code: output=3f6e7f9df2fb5201 input=ced8e4ed4b33ee6c]*/
+{
+ Py_ssize_t index = match_getindex(self, group);
if (index < 0 || index >= self->groups) {
PyErr_SetString(
PyExc_IndexError,
"no such group"
);
- return NULL;
+ return -1;
}
/* mark is -1 if group is undefined */
- return PyLong_FromSsize_t(self->mark[index*2]);
+ return self->mark[index*2];
}
-static PyObject*
-match_end(MatchObject* self, PyObject* args)
-{
- Py_ssize_t index;
+/*[clinic input]
+_sre.SRE_Match.end -> Py_ssize_t
- PyObject* index_ = NULL;
- if (!PyArg_UnpackTuple(args, "end", 0, 1, &index_))
- return NULL;
+ group: object(c_default="NULL") = 0
+ /
+
+Return index of the end of the substring matched by group.
+[clinic start generated code]*/
- index = match_getindex(self, index_);
+static Py_ssize_t
+_sre_SRE_Match_end_impl(MatchObject *self, PyObject *group)
+/*[clinic end generated code: output=f4240b09911f7692 input=1b799560c7f3d7e6]*/
+{
+ Py_ssize_t index = match_getindex(self, group);
if (index < 0 || index >= self->groups) {
PyErr_SetString(
PyExc_IndexError,
"no such group"
);
- return NULL;
+ return -1;
}
/* mark is -1 if group is undefined */
- return PyLong_FromSsize_t(self->mark[index*2+1]);
+ return self->mark[index*2+1];
}
LOCAL(PyObject*)
@@ -2230,16 +2298,20 @@ _pair(Py_ssize_t i1, Py_ssize_t i2)
return NULL;
}
-static PyObject*
-match_span(MatchObject* self, PyObject* args)
-{
- Py_ssize_t index;
+/*[clinic input]
+_sre.SRE_Match.span
- PyObject* index_ = NULL;
- if (!PyArg_UnpackTuple(args, "span", 0, 1, &index_))
- return NULL;
+ group: object(c_default="NULL") = 0
+ /
- index = match_getindex(self, index_);
+For MatchObject m, return the 2-tuple (m.start(group), m.end(group)).
+[clinic start generated code]*/
+
+static PyObject *
+_sre_SRE_Match_span_impl(MatchObject *self, PyObject *group)
+/*[clinic end generated code: output=f02ae40594d14fe6 input=49092b6008d176d3]*/
+{
+ Py_ssize_t index = match_getindex(self, group);
if (index < 0 || index >= self->groups) {
PyErr_SetString(
@@ -2279,8 +2351,14 @@ match_regs(MatchObject* self)
return regs;
}
-static PyObject*
-match_copy(MatchObject* self, PyObject *unused)
+/*[clinic input]
+_sre.SRE_Match.__copy__
+
+[clinic start generated code]*/
+
+static PyObject *
+_sre_SRE_Match___copy___impl(MatchObject *self)
+/*[clinic end generated code: output=a779c5fc8b5b4eb4 input=3bb4d30b6baddb5b]*/
{
#ifdef USE_BUILTIN_COPY
MatchObject* copy;
@@ -2310,8 +2388,16 @@ match_copy(MatchObject* self, PyObject *unused)
#endif
}
-static PyObject*
-match_deepcopy(MatchObject* self, PyObject* memo)
+/*[clinic input]
+_sre.SRE_Match.__deepcopy__
+
+ memo: object
+
+[clinic start generated code]*/
+
+static PyObject *
+_sre_SRE_Match___deepcopy___impl(MatchObject *self, PyObject *memo)
+/*[clinic end generated code: output=2b657578eb03f4a3 input=b65b72489eac64cc]*/
{
#ifdef USE_BUILTIN_COPY
MatchObject* copy;
@@ -2342,50 +2428,6 @@ PyDoc_STRVAR(match_group_doc,
Return subgroup(s) of the match by indices or names.\n\
For 0 returns the entire match.");
-PyDoc_STRVAR(match_start_doc,
-"start([group=0]) -> int.\n\
- Return index of the start of the substring matched by group.");
-
-PyDoc_STRVAR(match_end_doc,
-"end([group=0]) -> int.\n\
- Return index of the end of the substring matched by group.");
-
-PyDoc_STRVAR(match_span_doc,
-"span([group]) -> tuple.\n\
- For MatchObject m, return the 2-tuple (m.start(group), m.end(group)).");
-
-PyDoc_STRVAR(match_groups_doc,
-"groups([default=None]) -> tuple.\n\
- Return a tuple containing all the subgroups of the match, from 1.\n\
- The default argument is used for groups\n\
- that did not participate in the match");
-
-PyDoc_STRVAR(match_groupdict_doc,
-"groupdict([default=None]) -> dict.\n\
- Return a dictionary containing all the named subgroups of the match,\n\
- keyed by the subgroup name. The default argument is used for groups\n\
- that did not participate in the match");
-
-PyDoc_STRVAR(match_expand_doc,
-"expand(template) -> str.\n\
- Return the string obtained by doing backslash substitution\n\
- on the string template, as done by the sub() method.");
-
-static PyMethodDef match_methods[] = {
- {"group", (PyCFunction) match_group, METH_VARARGS, match_group_doc},
- {"start", (PyCFunction) match_start, METH_VARARGS, match_start_doc},
- {"end", (PyCFunction) match_end, METH_VARARGS, match_end_doc},
- {"span", (PyCFunction) match_span, METH_VARARGS, match_span_doc},
- {"groups", (PyCFunction) match_groups, METH_VARARGS|METH_KEYWORDS,
- match_groups_doc},
- {"groupdict", (PyCFunction) match_groupdict, METH_VARARGS|METH_KEYWORDS,
- match_groupdict_doc},
- {"expand", (PyCFunction) match_expand, METH_O, match_expand_doc},
- {"__copy__", (PyCFunction) match_copy, METH_NOARGS},
- {"__deepcopy__", (PyCFunction) match_deepcopy, METH_O},
- {NULL, NULL}
-};
-
static PyObject *
match_lastindex_get(MatchObject *self)
{
@@ -2436,57 +2478,6 @@ match_repr(MatchObject *self)
}
-static PyGetSetDef match_getset[] = {
- {"lastindex", (getter)match_lastindex_get, (setter)NULL},
- {"lastgroup", (getter)match_lastgroup_get, (setter)NULL},
- {"regs", (getter)match_regs_get, (setter)NULL},
- {NULL}
-};
-
-#define MATCH_OFF(x) offsetof(MatchObject, x)
-static PyMemberDef match_members[] = {
- {"string", T_OBJECT, MATCH_OFF(string), READONLY},
- {"re", T_OBJECT, MATCH_OFF(pattern), READONLY},
- {"pos", T_PYSSIZET, MATCH_OFF(pos), READONLY},
- {"endpos", T_PYSSIZET, MATCH_OFF(endpos), READONLY},
- {NULL}
-};
-
-/* FIXME: implement setattr("string", None) as a special case (to
- detach the associated string, if any */
-
-static PyTypeObject Match_Type = {
- PyVarObject_HEAD_INIT(NULL,0)
- "_" SRE_MODULE ".SRE_Match",
- sizeof(MatchObject), sizeof(Py_ssize_t),
- (destructor)match_dealloc, /* tp_dealloc */
- 0, /* tp_print */
- 0, /* tp_getattr */
- 0, /* tp_setattr */
- 0, /* tp_reserved */
- (reprfunc)match_repr, /* tp_repr */
- 0, /* tp_as_number */
- 0, /* tp_as_sequence */
- 0, /* tp_as_mapping */
- 0, /* tp_hash */
- 0, /* tp_call */
- 0, /* tp_str */
- 0, /* tp_getattro */
- 0, /* tp_setattro */
- 0, /* tp_as_buffer */
- Py_TPFLAGS_DEFAULT, /* tp_flags */
- match_doc, /* tp_doc */
- 0, /* tp_traverse */
- 0, /* tp_clear */
- 0, /* tp_richcompare */
- 0, /* tp_weaklistoffset */
- 0, /* tp_iter */
- 0, /* tp_iternext */
- match_methods, /* tp_methods */
- match_members, /* tp_members */
- match_getset, /* tp_getset */
-};
-
static PyObject*
pattern_new_match(PatternObject* pattern, SRE_STATE* state, Py_ssize_t status)
{
@@ -2562,8 +2553,14 @@ scanner_dealloc(ScannerObject* self)
PyObject_DEL(self);
}
-static PyObject*
-scanner_match(ScannerObject* self, PyObject *unused)
+/*[clinic input]
+_sre.SRE_Scanner.match
+
+[clinic start generated code]*/
+
+static PyObject *
+_sre_SRE_Scanner_match_impl(ScannerObject *self)
+/*[clinic end generated code: output=936b30c63d4b81eb input=881a0154f8c13d9a]*/
{
SRE_STATE* state = &self->state;
PyObject* match;
@@ -2596,8 +2593,14 @@ scanner_match(ScannerObject* self, PyObject *unused)
}
-static PyObject*
-scanner_search(ScannerObject* self, PyObject *unused)
+/*[clinic input]
+_sre.SRE_Scanner.search
+
+[clinic start generated code]*/
+
+static PyObject *
+_sre_SRE_Scanner_search_impl(ScannerObject *self)
+/*[clinic end generated code: output=7dc211986088f025 input=161223ee92ef9270]*/
{
SRE_STATE* state = &self->state;
PyObject* match;
@@ -2629,9 +2632,160 @@ scanner_search(ScannerObject* self, PyObject *unused)
return match;
}
+static PyObject *
+pattern_scanner(PatternObject *self, PyObject *string, Py_ssize_t pos, Py_ssize_t endpos)
+{
+ ScannerObject* scanner;
+
+ /* create scanner object */
+ scanner = PyObject_NEW(ScannerObject, &Scanner_Type);
+ if (!scanner)
+ return NULL;
+ scanner->pattern = NULL;
+
+ /* create search state object */
+ if (!state_init(&scanner->state, self, string, pos, endpos)) {
+ Py_DECREF(scanner);
+ return NULL;
+ }
+
+ Py_INCREF(self);
+ scanner->pattern = (PyObject*) self;
+
+ return (PyObject*) scanner;
+}
+
+#include "clinic/_sre.c.h"
+
+static PyMethodDef pattern_methods[] = {
+ _SRE_SRE_PATTERN_MATCH_METHODDEF
+ _SRE_SRE_PATTERN_FULLMATCH_METHODDEF
+ _SRE_SRE_PATTERN_SEARCH_METHODDEF
+ _SRE_SRE_PATTERN_SUB_METHODDEF
+ _SRE_SRE_PATTERN_SUBN_METHODDEF
+ _SRE_SRE_PATTERN_FINDALL_METHODDEF
+ _SRE_SRE_PATTERN_SPLIT_METHODDEF
+ _SRE_SRE_PATTERN_FINDITER_METHODDEF
+ _SRE_SRE_PATTERN_SCANNER_METHODDEF
+ _SRE_SRE_PATTERN___COPY___METHODDEF
+ _SRE_SRE_PATTERN___DEEPCOPY___METHODDEF
+ {NULL, NULL}
+};
+
+static PyGetSetDef pattern_getset[] = {
+ {"groupindex", (getter)pattern_groupindex, (setter)NULL,
+ "A dictionary mapping group names to group numbers."},
+ {NULL} /* Sentinel */
+};
+
+#define PAT_OFF(x) offsetof(PatternObject, x)
+static PyMemberDef pattern_members[] = {
+ {"pattern", T_OBJECT, PAT_OFF(pattern), READONLY},
+ {"flags", T_INT, PAT_OFF(flags), READONLY},
+ {"groups", T_PYSSIZET, PAT_OFF(groups), READONLY},
+ {NULL} /* Sentinel */
+};
+
+static PyTypeObject Pattern_Type = {
+ PyVarObject_HEAD_INIT(NULL, 0)
+ "_" SRE_MODULE ".SRE_Pattern",
+ sizeof(PatternObject), sizeof(SRE_CODE),
+ (destructor)pattern_dealloc, /* tp_dealloc */
+ 0, /* tp_print */
+ 0, /* tp_getattr */
+ 0, /* tp_setattr */
+ 0, /* tp_reserved */
+ (reprfunc)pattern_repr, /* tp_repr */
+ 0, /* tp_as_number */
+ 0, /* tp_as_sequence */
+ 0, /* tp_as_mapping */
+ 0, /* tp_hash */
+ 0, /* tp_call */
+ 0, /* tp_str */
+ 0, /* tp_getattro */
+ 0, /* tp_setattro */
+ 0, /* tp_as_buffer */
+ Py_TPFLAGS_DEFAULT, /* tp_flags */
+ pattern_doc, /* tp_doc */
+ 0, /* tp_traverse */
+ 0, /* tp_clear */
+ 0, /* tp_richcompare */
+ offsetof(PatternObject, weakreflist), /* tp_weaklistoffset */
+ 0, /* tp_iter */
+ 0, /* tp_iternext */
+ pattern_methods, /* tp_methods */
+ pattern_members, /* tp_members */
+ pattern_getset, /* tp_getset */
+};
+
+
+static PyMethodDef match_methods[] = {
+ {"group", (PyCFunction) match_group, METH_VARARGS, match_group_doc},
+ _SRE_SRE_MATCH_START_METHODDEF
+ _SRE_SRE_MATCH_END_METHODDEF
+ _SRE_SRE_MATCH_SPAN_METHODDEF
+ _SRE_SRE_MATCH_GROUPS_METHODDEF
+ _SRE_SRE_MATCH_GROUPDICT_METHODDEF
+ _SRE_SRE_MATCH_EXPAND_METHODDEF
+ _SRE_SRE_MATCH___COPY___METHODDEF
+ _SRE_SRE_MATCH___DEEPCOPY___METHODDEF
+ {NULL, NULL}
+};
+
+static PyGetSetDef match_getset[] = {
+ {"lastindex", (getter)match_lastindex_get, (setter)NULL},
+ {"lastgroup", (getter)match_lastgroup_get, (setter)NULL},
+ {"regs", (getter)match_regs_get, (setter)NULL},
+ {NULL}
+};
+
+#define MATCH_OFF(x) offsetof(MatchObject, x)
+static PyMemberDef match_members[] = {
+ {"string", T_OBJECT, MATCH_OFF(string), READONLY},
+ {"re", T_OBJECT, MATCH_OFF(pattern), READONLY},
+ {"pos", T_PYSSIZET, MATCH_OFF(pos), READONLY},
+ {"endpos", T_PYSSIZET, MATCH_OFF(endpos), READONLY},
+ {NULL}
+};
+
+/* FIXME: implement setattr("string", None) as a special case (to
+ detach the associated string, if any */
+
+static PyTypeObject Match_Type = {
+ PyVarObject_HEAD_INIT(NULL,0)
+ "_" SRE_MODULE ".SRE_Match",
+ sizeof(MatchObject), sizeof(Py_ssize_t),
+ (destructor)match_dealloc, /* tp_dealloc */
+ 0, /* tp_print */
+ 0, /* tp_getattr */
+ 0, /* tp_setattr */
+ 0, /* tp_reserved */
+ (reprfunc)match_repr, /* tp_repr */
+ 0, /* tp_as_number */
+ 0, /* tp_as_sequence */
+ 0, /* tp_as_mapping */
+ 0, /* tp_hash */
+ 0, /* tp_call */
+ 0, /* tp_str */
+ 0, /* tp_getattro */
+ 0, /* tp_setattro */
+ 0, /* tp_as_buffer */
+ Py_TPFLAGS_DEFAULT, /* tp_flags */
+ match_doc, /* tp_doc */
+ 0, /* tp_traverse */
+ 0, /* tp_clear */
+ 0, /* tp_richcompare */
+ 0, /* tp_weaklistoffset */
+ 0, /* tp_iter */
+ 0, /* tp_iternext */
+ match_methods, /* tp_methods */
+ match_members, /* tp_members */
+ match_getset, /* tp_getset */
+};
+
static PyMethodDef scanner_methods[] = {
- {"match", (PyCFunction) scanner_match, METH_NOARGS},
- {"search", (PyCFunction) scanner_search, METH_NOARGS},
+ _SRE_SRE_SCANNER_MATCH_METHODDEF
+ _SRE_SRE_SCANNER_SEARCH_METHODDEF
{NULL, NULL}
};
@@ -2673,47 +2827,10 @@ static PyTypeObject Scanner_Type = {
0, /* tp_getset */
};
-static PyObject*
-pattern_scanner(PatternObject* pattern, PyObject* args, PyObject* kw)
-{
- /* create search state object */
-
- ScannerObject* self;
-
- PyObject *string = NULL, *string2 = NULL;
- Py_ssize_t start = 0;
- Py_ssize_t end = PY_SSIZE_T_MAX;
- static char* kwlist[] = { "string", "pos", "endpos", "source", NULL };
- if (!PyArg_ParseTupleAndKeywords(args, kw, "|Onn$O:scanner", kwlist,
- &string, &start, &end, &string2))
- return NULL;
-
- string = fix_string_param(string, string2, "source");
- if (!string)
- return NULL;
-
- /* create scanner object */
- self = PyObject_NEW(ScannerObject, &Scanner_Type);
- if (!self)
- return NULL;
- self->pattern = NULL;
-
- string = state_init(&self->state, pattern, string, start, end);
- if (!string) {
- Py_DECREF(self);
- return NULL;
- }
-
- Py_INCREF(pattern);
- self->pattern = (PyObject*) pattern;
-
- return (PyObject*) self;
-}
-
static PyMethodDef _functions[] = {
- {"compile", _compile, METH_VARARGS},
- {"getcodesize", sre_codesize, METH_NOARGS},
- {"getlower", sre_getlower, METH_VARARGS},
+ _SRE_COMPILE_METHODDEF
+ _SRE_GETCODESIZE_METHODDEF
+ _SRE_GETLOWER_METHODDEF
{NULL, NULL}
};
@@ -2763,6 +2880,12 @@ PyMODINIT_FUNC PyInit__sre(void)
Py_DECREF(x);
}
+ x = PyLong_FromUnsignedLong(SRE_MAXGROUPS);
+ if (x) {
+ PyDict_SetItemString(d, "MAXGROUPS", x);
+ Py_DECREF(x);
+ }
+
x = PyUnicode_FromString(copyright);
if (x) {
PyDict_SetItemString(d, "copyright", x);
diff --git a/Modules/_ssl.c b/Modules/_ssl.c
index 4dc1534d46..e43c5026b7 100644
--- a/Modules/_ssl.c
+++ b/Modules/_ssl.c
@@ -64,6 +64,7 @@ static PySocketModule_APIObject PySocketModule;
#include "openssl/ssl.h"
#include "openssl/err.h"
#include "openssl/rand.h"
+#include "openssl/bio.h"
/* SSL error object */
static PyObject *PySSLErrorObject;
@@ -108,6 +109,10 @@ struct py_ssl_library_code {
# define HAVE_SNI 0
#endif
+#ifdef TLSEXT_TYPE_application_layer_protocol_negotiation
+# define HAVE_ALPN
+#endif
+
enum py_ssl_error {
/* these mirror ssl.h */
PY_SSL_ERROR_NONE,
@@ -161,13 +166,6 @@ static unsigned int _ssl_locks_count = 0;
#define X509_NAME_MAXLEN 256
-/* RAND_* APIs got added to OpenSSL in 0.9.5 */
-#if OPENSSL_VERSION_NUMBER >= 0x0090500fL
-# define HAVE_OPENSSL_RAND 1
-#else
-# undef HAVE_OPENSSL_RAND
-#endif
-
/* SSL_CTX_clear_options() and SSL_clear_options() were first added in
* OpenSSL 0.9.8m but do not appear in some 0.9.9-dev versions such the
* 0.9.9 from "May 2008" that NetBSD 5.0 uses. */
@@ -181,36 +179,18 @@ static unsigned int _ssl_locks_count = 0;
* older SSL, but let's be safe */
#define PySSL_CB_MAXLEN 128
-/* SSL_get_finished got added to OpenSSL in 0.9.5 */
-#if OPENSSL_VERSION_NUMBER >= 0x0090500fL
-# define HAVE_OPENSSL_FINISHED 1
-#else
-# define HAVE_OPENSSL_FINISHED 0
-#endif
-
-/* ECDH support got added to OpenSSL in 0.9.8 */
-#if OPENSSL_VERSION_NUMBER < 0x0090800fL && !defined(OPENSSL_NO_ECDH)
-# define OPENSSL_NO_ECDH
-#endif
-
-/* compression support got added to OpenSSL in 0.9.8 */
-#if OPENSSL_VERSION_NUMBER < 0x0090800fL && !defined(OPENSSL_NO_COMP)
-# define OPENSSL_NO_COMP
-#endif
-
-/* X509_VERIFY_PARAM got added to OpenSSL in 0.9.8 */
-#if OPENSSL_VERSION_NUMBER >= 0x0090800fL
-# define HAVE_OPENSSL_VERIFY_PARAM
-#endif
-
typedef struct {
PyObject_HEAD
SSL_CTX *ctx;
#ifdef OPENSSL_NPN_NEGOTIATED
- char *npn_protocols;
+ unsigned char *npn_protocols;
int npn_protocols_len;
#endif
+#ifdef HAVE_ALPN
+ unsigned char *alpn_protocols;
+ int alpn_protocols_len;
+#endif
#ifndef OPENSSL_NO_TLSEXT
PyObject *set_hostname;
#endif
@@ -226,20 +206,35 @@ typedef struct {
char shutdown_seen_zero;
char handshake_done;
enum py_ssl_server_or_client socket_type;
+ PyObject *owner; /* Python level "owner" passed to servername callback */
+ PyObject *server_hostname;
} PySSLSocket;
+typedef struct {
+ PyObject_HEAD
+ BIO *bio;
+ int eof_written;
+} PySSLMemoryBIO;
+
static PyTypeObject PySSLContext_Type;
static PyTypeObject PySSLSocket_Type;
+static PyTypeObject PySSLMemoryBIO_Type;
+
+/*[clinic input]
+module _ssl
+class _ssl._SSLContext "PySSLContext *" "&PySSLContext_Type"
+class _ssl._SSLSocket "PySSLSocket *" "&PySSLSocket_Type"
+class _ssl.MemoryBIO "PySSLMemoryBIO *" "&PySSLMemoryBIO_Type"
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=7bf7cb832638e2e1]*/
-static PyObject *PySSL_SSLwrite(PySSLSocket *self, PyObject *args);
-static PyObject *PySSL_SSLread(PySSLSocket *self, PyObject *args);
-static int check_socket_and_wait_for_timeout(PySocketSockObject *s,
- int writing);
-static PyObject *PySSL_peercert(PySSLSocket *self, PyObject *args);
-static PyObject *PySSL_cipher(PySSLSocket *self);
+#include "clinic/_ssl.c.h"
+
+static int PySSL_select(PySocketSockObject *s, int writing, _PyTime_t timeout);
#define PySSLContext_Check(v) (Py_TYPE(v) == &PySSLContext_Type)
#define PySSLSocket_Check(v) (Py_TYPE(v) == &PySSLSocket_Type)
+#define PySSLMemoryBIO_Check(v) (Py_TYPE(v) == &PySSLMemoryBIO_Type)
typedef enum {
SOCKET_IS_NONBLOCKING,
@@ -251,11 +246,16 @@ typedef enum {
} timeout_state;
/* Wrap error strings with filename and line # */
-#define STRINGIFY1(x) #x
-#define STRINGIFY2(x) STRINGIFY1(x)
#define ERRSTR1(x,y,z) (x ":" y ": " z)
-#define ERRSTR(x) ERRSTR1("_ssl.c", STRINGIFY2(__LINE__), x)
+#define ERRSTR(x) ERRSTR1("_ssl.c", Py_STRINGIFY(__LINE__), x)
+
+/* Get the socket from a PySSLSocket, if it has one */
+#define GET_SOCKET(obj) ((obj)->Socket ? \
+ (PySocketSockObject *) PyWeakref_GetObject((obj)->Socket) : NULL)
+/* If sock is NULL, use a timeout of 0 second */
+#define GET_SOCKET_TIMEOUT(sock) \
+ ((sock != NULL) ? (sock)->sock_timeout : 0)
/*
* SSL errors.
@@ -419,13 +419,12 @@ PySSL_SetError(PySSLSocket *obj, int ret, char *filename, int lineno)
case SSL_ERROR_SYSCALL:
{
if (e == 0) {
- PySocketSockObject *s
- = (PySocketSockObject *) PyWeakref_GetObject(obj->Socket);
+ PySocketSockObject *s = GET_SOCKET(obj);
if (ret == 0 || (((PyObject *)s) == Py_None)) {
p = PY_SSL_ERROR_EOF;
type = PySSLEOFErrorObject;
errstr = "EOF occurred in violation of protocol";
- } else if (ret == -1) {
+ } else if (s && ret == -1) {
/* underlying BIO reported an I/O error */
Py_INCREF(s);
ERR_clear_error();
@@ -479,10 +478,12 @@ _setSSLError (char *errstr, int errcode, char *filename, int lineno) {
static PySSLSocket *
newPySSLSocket(PySSLContext *sslctx, PySocketSockObject *sock,
enum py_ssl_server_or_client socket_type,
- char *server_hostname)
+ char *server_hostname,
+ PySSLMemoryBIO *inbio, PySSLMemoryBIO *outbio)
{
PySSLSocket *self;
SSL_CTX *ctx = sslctx->ctx;
+ PyObject *hostname;
long mode;
self = PyObject_New(PySSLSocket, &PySSLSocket_Type);
@@ -495,6 +496,18 @@ newPySSLSocket(PySSLContext *sslctx, PySocketSockObject *sock,
self->ctx = sslctx;
self->shutdown_seen_zero = 0;
self->handshake_done = 0;
+ self->owner = NULL;
+ if (server_hostname != NULL) {
+ hostname = PyUnicode_Decode(server_hostname, strlen(server_hostname),
+ "idna", "strict");
+ if (hostname == NULL) {
+ Py_DECREF(self);
+ return NULL;
+ }
+ self->server_hostname = hostname;
+ } else
+ self->server_hostname = NULL;
+
Py_INCREF(sslctx);
/* Make sure the SSL error state is initialized */
@@ -504,8 +517,17 @@ newPySSLSocket(PySSLContext *sslctx, PySocketSockObject *sock,
PySSL_BEGIN_ALLOW_THREADS
self->ssl = SSL_new(ctx);
PySSL_END_ALLOW_THREADS
- SSL_set_app_data(self->ssl,self);
- SSL_set_fd(self->ssl, Py_SAFE_DOWNCAST(sock->sock_fd, SOCKET_T, int));
+ SSL_set_app_data(self->ssl, self);
+ if (sock) {
+ SSL_set_fd(self->ssl, Py_SAFE_DOWNCAST(sock->sock_fd, SOCKET_T, int));
+ } else {
+ /* BIOs are reference counted and SSL_set_bio borrows our reference.
+ * To prevent a double free in memory_bio_dealloc() we need to take an
+ * extra reference here. */
+ CRYPTO_add(&inbio->bio->references, 1, CRYPTO_LOCK_BIO);
+ CRYPTO_add(&outbio->bio->references, 1, CRYPTO_LOCK_BIO);
+ SSL_set_bio(self->ssl, inbio->bio, outbio->bio);
+ }
mode = SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER;
#ifdef SSL_MODE_AUTO_RETRY
mode |= SSL_MODE_AUTO_RETRY;
@@ -520,7 +542,7 @@ newPySSLSocket(PySSLContext *sslctx, PySocketSockObject *sock,
/* If the socket is in non-blocking mode or timeout mode, set the BIO
* to non-blocking mode (blocking is the default)
*/
- if (sock->sock_timeout >= 0.0) {
+ if (sock && sock->sock_timeout >= 0) {
BIO_set_nbio(SSL_get_rbio(self->ssl), 1);
BIO_set_nbio(SSL_get_wbio(self->ssl), 1);
}
@@ -533,35 +555,52 @@ newPySSLSocket(PySSLContext *sslctx, PySocketSockObject *sock,
PySSL_END_ALLOW_THREADS
self->socket_type = socket_type;
- self->Socket = PyWeakref_NewRef((PyObject *) sock, NULL);
- if (self->Socket == NULL) {
- Py_DECREF(self);
- return NULL;
+ if (sock != NULL) {
+ self->Socket = PyWeakref_NewRef((PyObject *) sock, NULL);
+ if (self->Socket == NULL) {
+ Py_DECREF(self);
+ Py_XDECREF(self->server_hostname);
+ return NULL;
+ }
}
return self;
}
/* SSL object methods */
-static PyObject *PySSL_SSLdo_handshake(PySSLSocket *self)
+/*[clinic input]
+_ssl._SSLSocket.do_handshake
+[clinic start generated code]*/
+
+static PyObject *
+_ssl__SSLSocket_do_handshake_impl(PySSLSocket *self)
+/*[clinic end generated code: output=6c0898a8936548f6 input=d2d737de3df018c8]*/
{
int ret;
int err;
int sockstate, nonblocking;
- PySocketSockObject *sock
- = (PySocketSockObject *) PyWeakref_GetObject(self->Socket);
+ PySocketSockObject *sock = GET_SOCKET(self);
+ _PyTime_t timeout, deadline = 0;
+ int has_timeout;
+
+ if (sock) {
+ if (((PyObject*)sock) == Py_None) {
+ _setSSLError("Underlying socket connection gone",
+ PY_SSL_ERROR_NO_SOCKET, __FILE__, __LINE__);
+ return NULL;
+ }
+ Py_INCREF(sock);
- if (((PyObject*)sock) == Py_None) {
- _setSSLError("Underlying socket connection gone",
- PY_SSL_ERROR_NO_SOCKET, __FILE__, __LINE__);
- return NULL;
+ /* just in case the blocking state of the socket has been changed */
+ nonblocking = (sock->sock_timeout >= 0);
+ BIO_set_nbio(SSL_get_rbio(self->ssl), nonblocking);
+ BIO_set_nbio(SSL_get_wbio(self->ssl), nonblocking);
}
- Py_INCREF(sock);
- /* just in case the blocking state of the socket has been changed */
- nonblocking = (sock->sock_timeout >= 0.0);
- BIO_set_nbio(SSL_get_rbio(self->ssl), nonblocking);
- BIO_set_nbio(SSL_get_wbio(self->ssl), nonblocking);
+ timeout = GET_SOCKET_TIMEOUT(sock);
+ has_timeout = (timeout > 0);
+ if (has_timeout)
+ deadline = _PyTime_GetMonotonicClock() + timeout;
/* Actually negotiate SSL connection */
/* XXX If SSL_do_handshake() returns 0, it's also a failure. */
@@ -570,15 +609,21 @@ static PyObject *PySSL_SSLdo_handshake(PySSLSocket *self)
ret = SSL_do_handshake(self->ssl);
err = SSL_get_error(self->ssl, ret);
PySSL_END_ALLOW_THREADS
+
if (PyErr_CheckSignals())
goto error;
+
+ if (has_timeout)
+ timeout = deadline - _PyTime_GetMonotonicClock();
+
if (err == SSL_ERROR_WANT_READ) {
- sockstate = check_socket_and_wait_for_timeout(sock, 0);
+ sockstate = PySSL_select(sock, 0, timeout);
} else if (err == SSL_ERROR_WANT_WRITE) {
- sockstate = check_socket_and_wait_for_timeout(sock, 1);
+ sockstate = PySSL_select(sock, 1, timeout);
} else {
sockstate = SOCKET_OPERATION_OK;
}
+
if (sockstate == SOCKET_HAS_TIMED_OUT) {
PyErr_SetString(PySocketModule.timeout_error,
ERRSTR("The handshake operation timed out"));
@@ -595,7 +640,7 @@ static PyObject *PySSL_SSLdo_handshake(PySSLSocket *self)
break;
}
} while (err == SSL_ERROR_WANT_READ || err == SSL_ERROR_WANT_WRITE);
- Py_DECREF(sock);
+ Py_XDECREF(sock);
if (ret < 1)
return PySSL_SetError(self, ret, __FILE__, __LINE__);
@@ -610,7 +655,7 @@ static PyObject *PySSL_SSLdo_handshake(PySSLSocket *self)
return Py_None;
error:
- Py_DECREF(sock);
+ Py_XDECREF(sock);
return NULL;
}
@@ -779,12 +824,7 @@ _get_peer_alt_names (X509 *certificate) {
char buf[2048];
char *vptr;
int len;
- /* Issue #2973: ASN1_item_d2i() API changed in OpenSSL 0.9.6m */
-#if OPENSSL_VERSION_NUMBER >= 0x009060dfL
const unsigned char *p;
-#else
- unsigned char *p;
-#endif
if (certificate == NULL)
return peer_alt_names;
@@ -1274,25 +1314,28 @@ _certificate_to_der(X509 *certificate)
return retval;
}
-static PyObject *
-PySSL_test_decode_certificate (PyObject *mod, PyObject *args) {
+/*[clinic input]
+_ssl._test_decode_cert
+ path: object(converter="PyUnicode_FSConverter")
+ /
+
+[clinic start generated code]*/
+static PyObject *
+_ssl__test_decode_cert_impl(PyModuleDef *module, PyObject *path)
+/*[clinic end generated code: output=679e01db282804e9 input=cdeaaf02d4346628]*/
+{
PyObject *retval = NULL;
- PyObject *filename;
X509 *x=NULL;
BIO *cert;
- if (!PyArg_ParseTuple(args, "O&:test_decode_certificate",
- PyUnicode_FSConverter, &filename))
- return NULL;
-
if ((cert=BIO_new(BIO_s_file())) == NULL) {
PyErr_SetString(PySSLErrorObject,
"Can't malloc memory to read file");
goto fail0;
}
- if (BIO_read_filename(cert, PyBytes_AsString(filename)) <= 0) {
+ if (BIO_read_filename(cert, PyBytes_AsString(path)) <= 0) {
PyErr_SetString(PySSLErrorObject,
"Can't open file");
goto fail0;
@@ -1309,20 +1352,33 @@ PySSL_test_decode_certificate (PyObject *mod, PyObject *args) {
X509_free(x);
fail0:
- Py_DECREF(filename);
+ Py_DECREF(path);
if (cert != NULL) BIO_free(cert);
return retval;
}
+/*[clinic input]
+_ssl._SSLSocket.peer_certificate
+ der as binary_mode: bool = False
+ /
+
+Returns the certificate for the peer.
+
+If no certificate was provided, returns None. If a certificate was
+provided, but not validated, returns an empty dictionary. Otherwise
+returns a dict containing information about the peer certificate.
+
+If the optional argument is True, returns a DER-encoded copy of the
+peer certificate, or None if no certificate was provided. This will
+return the certificate even if it wasn't validated.
+[clinic start generated code]*/
+
static PyObject *
-PySSL_peercert(PySSLSocket *self, PyObject *args)
+_ssl__SSLSocket_peer_certificate_impl(PySSLSocket *self, int binary_mode)
+/*[clinic end generated code: output=f0dc3e4d1d818a1d input=8281bd1d193db843]*/
{
int verification;
- int binary_mode = 0;
-
- if (!PyArg_ParseTuple(args, "|p:peer_certificate", &binary_mode))
- return NULL;
if (!self->handshake_done) {
PyErr_SetString(PyExc_ValueError,
@@ -1344,68 +1400,123 @@ PySSL_peercert(PySSLSocket *self, PyObject *args)
}
}
-PyDoc_STRVAR(PySSL_peercert_doc,
-"peer_certificate([der=False]) -> certificate\n\
-\n\
-Returns the certificate for the peer. If no certificate was provided,\n\
-returns None. If a certificate was provided, but not validated, returns\n\
-an empty dictionary. Otherwise returns a dict containing information\n\
-about the peer certificate.\n\
-\n\
-If the optional argument is True, returns a DER-encoded copy of the\n\
-peer certificate, or None if no certificate was provided. This will\n\
-return the certificate even if it wasn't validated.");
-
-static PyObject *PySSL_cipher (PySSLSocket *self) {
-
- PyObject *retval, *v;
- const SSL_CIPHER *current;
- char *cipher_name;
- char *cipher_protocol;
-
- if (self->ssl == NULL)
- Py_RETURN_NONE;
- current = SSL_get_current_cipher(self->ssl);
- if (current == NULL)
- Py_RETURN_NONE;
-
- retval = PyTuple_New(3);
+static PyObject *
+cipher_to_tuple(const SSL_CIPHER *cipher)
+{
+ const char *cipher_name, *cipher_protocol;
+ PyObject *v, *retval = PyTuple_New(3);
if (retval == NULL)
return NULL;
- cipher_name = (char *) SSL_CIPHER_get_name(current);
+ cipher_name = SSL_CIPHER_get_name(cipher);
if (cipher_name == NULL) {
Py_INCREF(Py_None);
PyTuple_SET_ITEM(retval, 0, Py_None);
} else {
v = PyUnicode_FromString(cipher_name);
if (v == NULL)
- goto fail0;
+ goto fail;
PyTuple_SET_ITEM(retval, 0, v);
}
- cipher_protocol = (char *) SSL_CIPHER_get_version(current);
+
+ cipher_protocol = SSL_CIPHER_get_version(cipher);
if (cipher_protocol == NULL) {
Py_INCREF(Py_None);
PyTuple_SET_ITEM(retval, 1, Py_None);
} else {
v = PyUnicode_FromString(cipher_protocol);
if (v == NULL)
- goto fail0;
+ goto fail;
PyTuple_SET_ITEM(retval, 1, v);
}
- v = PyLong_FromLong(SSL_CIPHER_get_bits(current, NULL));
+
+ v = PyLong_FromLong(SSL_CIPHER_get_bits(cipher, NULL));
if (v == NULL)
- goto fail0;
+ goto fail;
PyTuple_SET_ITEM(retval, 2, v);
+
return retval;
- fail0:
+ fail:
Py_DECREF(retval);
return NULL;
}
+/*[clinic input]
+_ssl._SSLSocket.shared_ciphers
+[clinic start generated code]*/
+
+static PyObject *
+_ssl__SSLSocket_shared_ciphers_impl(PySSLSocket *self)
+/*[clinic end generated code: output=3d174ead2e42c4fd input=0bfe149da8fe6306]*/
+{
+ SSL_SESSION *sess = SSL_get_session(self->ssl);
+ STACK_OF(SSL_CIPHER) *ciphers;
+ int i;
+ PyObject *res;
+
+ if (!sess || !sess->ciphers)
+ Py_RETURN_NONE;
+ ciphers = sess->ciphers;
+ res = PyList_New(sk_SSL_CIPHER_num(ciphers));
+ if (!res)
+ return NULL;
+ for (i = 0; i < sk_SSL_CIPHER_num(ciphers); i++) {
+ PyObject *tup = cipher_to_tuple(sk_SSL_CIPHER_value(ciphers, i));
+ if (!tup) {
+ Py_DECREF(res);
+ return NULL;
+ }
+ PyList_SET_ITEM(res, i, tup);
+ }
+ return res;
+}
+
+/*[clinic input]
+_ssl._SSLSocket.cipher
+[clinic start generated code]*/
+
+static PyObject *
+_ssl__SSLSocket_cipher_impl(PySSLSocket *self)
+/*[clinic end generated code: output=376417c16d0e5815 input=548fb0e27243796d]*/
+{
+ const SSL_CIPHER *current;
+
+ if (self->ssl == NULL)
+ Py_RETURN_NONE;
+ current = SSL_get_current_cipher(self->ssl);
+ if (current == NULL)
+ Py_RETURN_NONE;
+ return cipher_to_tuple(current);
+}
+
+/*[clinic input]
+_ssl._SSLSocket.version
+[clinic start generated code]*/
+
+static PyObject *
+_ssl__SSLSocket_version_impl(PySSLSocket *self)
+/*[clinic end generated code: output=178aed33193b2cdb input=900186a503436fd6]*/
+{
+ const char *version;
+
+ if (self->ssl == NULL)
+ Py_RETURN_NONE;
+ version = SSL_get_version(self->ssl);
+ if (!strcmp(version, "unknown"))
+ Py_RETURN_NONE;
+ return PyUnicode_FromString(version);
+}
+
#ifdef OPENSSL_NPN_NEGOTIATED
-static PyObject *PySSL_selected_npn_protocol(PySSLSocket *self) {
+/*[clinic input]
+_ssl._SSLSocket.selected_npn_protocol
+[clinic start generated code]*/
+
+static PyObject *
+_ssl__SSLSocket_selected_npn_protocol_impl(PySSLSocket *self)
+/*[clinic end generated code: output=b91d494cd207ecf6 input=c28fde139204b826]*/
+{
const unsigned char *out;
unsigned int outlen;
@@ -1414,11 +1525,38 @@ static PyObject *PySSL_selected_npn_protocol(PySSLSocket *self) {
if (out == NULL)
Py_RETURN_NONE;
- return PyUnicode_FromStringAndSize((char *) out, outlen);
+ return PyUnicode_FromStringAndSize((char *)out, outlen);
+}
+#endif
+
+#ifdef HAVE_ALPN
+/*[clinic input]
+_ssl._SSLSocket.selected_alpn_protocol
+[clinic start generated code]*/
+
+static PyObject *
+_ssl__SSLSocket_selected_alpn_protocol_impl(PySSLSocket *self)
+/*[clinic end generated code: output=ec33688b303d250f input=442de30e35bc2913]*/
+{
+ const unsigned char *out;
+ unsigned int outlen;
+
+ SSL_get0_alpn_selected(self->ssl, &out, &outlen);
+
+ if (out == NULL)
+ Py_RETURN_NONE;
+ return PyUnicode_FromStringAndSize((char *)out, outlen);
}
#endif
-static PyObject *PySSL_compression(PySSLSocket *self) {
+/*[clinic input]
+_ssl._SSLSocket.compression
+[clinic start generated code]*/
+
+static PyObject *
+_ssl__SSLSocket_compression_impl(PySSLSocket *self)
+/*[clinic end generated code: output=bd16cb1bb4646ae7 input=5d059d0a2bbc32c8]*/
+{
#ifdef OPENSSL_NO_COMP
Py_RETURN_NONE;
#else
@@ -1473,6 +1611,54 @@ on the SSLContext to change the certificate information associated with the\n\
SSLSocket before the cryptographic exchange handshake messages\n");
+static PyObject *
+PySSL_get_server_side(PySSLSocket *self, void *c)
+{
+ return PyBool_FromLong(self->socket_type == PY_SSL_SERVER);
+}
+
+PyDoc_STRVAR(PySSL_get_server_side_doc,
+"Whether this is a server-side socket.");
+
+static PyObject *
+PySSL_get_server_hostname(PySSLSocket *self, void *c)
+{
+ if (self->server_hostname == NULL)
+ Py_RETURN_NONE;
+ Py_INCREF(self->server_hostname);
+ return self->server_hostname;
+}
+
+PyDoc_STRVAR(PySSL_get_server_hostname_doc,
+"The currently set server hostname (for SNI).");
+
+static PyObject *
+PySSL_get_owner(PySSLSocket *self, void *c)
+{
+ PyObject *owner;
+
+ if (self->owner == NULL)
+ Py_RETURN_NONE;
+
+ owner = PyWeakref_GetObject(self->owner);
+ Py_INCREF(owner);
+ return owner;
+}
+
+static int
+PySSL_set_owner(PySSLSocket *self, PyObject *value, void *c)
+{
+ Py_XDECREF(self->owner);
+ self->owner = PyWeakref_NewRef(value, NULL);
+ if (self->owner == NULL)
+ return -1;
+ return 0;
+}
+
+PyDoc_STRVAR(PySSL_get_owner_doc,
+"The Python-level owner of this object.\
+Passed as \"self\" in servername callback.");
+
static void PySSL_dealloc(PySSLSocket *self)
{
@@ -1482,6 +1668,8 @@ static void PySSL_dealloc(PySSLSocket *self)
SSL_free(self->ssl);
Py_XDECREF(self->Socket);
Py_XDECREF(self->ctx);
+ Py_XDECREF(self->server_hostname);
+ Py_XDECREF(self->owner);
PyObject_Del(self);
}
@@ -1491,17 +1679,27 @@ static void PySSL_dealloc(PySSLSocket *self)
*/
static int
-check_socket_and_wait_for_timeout(PySocketSockObject *s, int writing)
+PySSL_select(PySocketSockObject *s, int writing, _PyTime_t timeout)
{
+ int rc;
+#ifdef HAVE_POLL
+ struct pollfd pollfd;
+ _PyTime_t ms;
+#else
+ int nfds;
fd_set fds;
struct timeval tv;
- int rc;
+#endif
/* Nothing to do unless we're in timeout mode (not non-blocking) */
- if (s->sock_timeout < 0.0)
- return SOCKET_IS_BLOCKING;
- else if (s->sock_timeout == 0.0)
+ if ((s == NULL) || (timeout == 0))
return SOCKET_IS_NONBLOCKING;
+ else if (timeout < 0) {
+ if (s->sock_timeout > 0)
+ return SOCKET_HAS_TIMED_OUT;
+ else
+ return SOCKET_IS_BLOCKING;
+ }
/* Guard against closed socket */
if (s->sock_fd < 0)
@@ -1510,85 +1708,91 @@ check_socket_and_wait_for_timeout(PySocketSockObject *s, int writing)
/* Prefer poll, if available, since you can poll() any fd
* which can't be done with select(). */
#ifdef HAVE_POLL
- {
- struct pollfd pollfd;
- int timeout;
-
- pollfd.fd = s->sock_fd;
- pollfd.events = writing ? POLLOUT : POLLIN;
-
- /* s->sock_timeout is in seconds, timeout in ms */
- timeout = (int)(s->sock_timeout * 1000 + 0.5);
- PySSL_BEGIN_ALLOW_THREADS
- rc = poll(&pollfd, 1, timeout);
- PySSL_END_ALLOW_THREADS
+ pollfd.fd = s->sock_fd;
+ pollfd.events = writing ? POLLOUT : POLLIN;
- goto normal_return;
- }
-#endif
+ /* timeout is in seconds, poll() uses milliseconds */
+ ms = (int)_PyTime_AsMilliseconds(timeout, _PyTime_ROUND_CEILING);
+ assert(ms <= INT_MAX);
+ PySSL_BEGIN_ALLOW_THREADS
+ rc = poll(&pollfd, 1, (int)ms);
+ PySSL_END_ALLOW_THREADS
+#else
/* Guard against socket too large for select*/
if (!_PyIsSelectable_fd(s->sock_fd))
return SOCKET_TOO_LARGE_FOR_SELECT;
- /* Construct the arguments to select */
- tv.tv_sec = (int)s->sock_timeout;
- tv.tv_usec = (int)((s->sock_timeout - tv.tv_sec) * 1e6);
+ _PyTime_AsTimeval_noraise(timeout, &tv, _PyTime_ROUND_CEILING);
+
FD_ZERO(&fds);
FD_SET(s->sock_fd, &fds);
- /* See if the socket is ready */
+ /* Wait until the socket becomes ready */
PySSL_BEGIN_ALLOW_THREADS
+ nfds = Py_SAFE_DOWNCAST(s->sock_fd+1, SOCKET_T, int);
if (writing)
- rc = select(Py_SAFE_DOWNCAST(s->sock_fd+1, SOCKET_T, int),
- NULL, &fds, NULL, &tv);
+ rc = select(nfds, NULL, &fds, NULL, &tv);
else
- rc = select(Py_SAFE_DOWNCAST(s->sock_fd+1, SOCKET_T, int),
- &fds, NULL, NULL, &tv);
+ rc = select(nfds, &fds, NULL, NULL, &tv);
PySSL_END_ALLOW_THREADS
-
-#ifdef HAVE_POLL
-normal_return:
#endif
+
/* Return SOCKET_TIMED_OUT on timeout, SOCKET_OPERATION_OK otherwise
(when we are able to write or when there's something to read) */
return rc == 0 ? SOCKET_HAS_TIMED_OUT : SOCKET_OPERATION_OK;
}
-static PyObject *PySSL_SSLwrite(PySSLSocket *self, PyObject *args)
+/*[clinic input]
+_ssl._SSLSocket.write
+ b: Py_buffer
+ /
+
+Writes the bytes-like object b into the SSL object.
+
+Returns the number of bytes written.
+[clinic start generated code]*/
+
+static PyObject *
+_ssl__SSLSocket_write_impl(PySSLSocket *self, Py_buffer *b)
+/*[clinic end generated code: output=aa7a6be5527358d8 input=77262d994fe5100a]*/
{
- Py_buffer buf;
int len;
int sockstate;
int err;
int nonblocking;
- PySocketSockObject *sock
- = (PySocketSockObject *) PyWeakref_GetObject(self->Socket);
-
- if (((PyObject*)sock) == Py_None) {
- _setSSLError("Underlying socket connection gone",
- PY_SSL_ERROR_NO_SOCKET, __FILE__, __LINE__);
- return NULL;
- }
- Py_INCREF(sock);
-
- if (!PyArg_ParseTuple(args, "y*:write", &buf)) {
- Py_DECREF(sock);
- return NULL;
+ PySocketSockObject *sock = GET_SOCKET(self);
+ _PyTime_t timeout, deadline = 0;
+ int has_timeout;
+
+ if (sock != NULL) {
+ if (((PyObject*)sock) == Py_None) {
+ _setSSLError("Underlying socket connection gone",
+ PY_SSL_ERROR_NO_SOCKET, __FILE__, __LINE__);
+ return NULL;
+ }
+ Py_INCREF(sock);
}
- if (buf.len > INT_MAX) {
+ if (b->len > INT_MAX) {
PyErr_Format(PyExc_OverflowError,
"string longer than %d bytes", INT_MAX);
goto error;
}
- /* just in case the blocking state of the socket has been changed */
- nonblocking = (sock->sock_timeout >= 0.0);
- BIO_set_nbio(SSL_get_rbio(self->ssl), nonblocking);
- BIO_set_nbio(SSL_get_wbio(self->ssl), nonblocking);
+ if (sock != NULL) {
+ /* just in case the blocking state of the socket has been changed */
+ nonblocking = (sock->sock_timeout >= 0);
+ BIO_set_nbio(SSL_get_rbio(self->ssl), nonblocking);
+ BIO_set_nbio(SSL_get_wbio(self->ssl), nonblocking);
+ }
+
+ timeout = GET_SOCKET_TIMEOUT(sock);
+ has_timeout = (timeout > 0);
+ if (has_timeout)
+ deadline = _PyTime_GetMonotonicClock() + timeout;
- sockstate = check_socket_and_wait_for_timeout(sock, 1);
+ sockstate = PySSL_select(sock, 1, timeout);
if (sockstate == SOCKET_HAS_TIMED_OUT) {
PyErr_SetString(PySocketModule.timeout_error,
"The write operation timed out");
@@ -1602,21 +1806,27 @@ static PyObject *PySSL_SSLwrite(PySSLSocket *self, PyObject *args)
"Underlying socket too large for select().");
goto error;
}
+
do {
PySSL_BEGIN_ALLOW_THREADS
- len = SSL_write(self->ssl, buf.buf, (int)buf.len);
+ len = SSL_write(self->ssl, b->buf, (int)b->len);
err = SSL_get_error(self->ssl, len);
PySSL_END_ALLOW_THREADS
- if (PyErr_CheckSignals()) {
+
+ if (PyErr_CheckSignals())
goto error;
- }
+
+ if (has_timeout)
+ timeout = deadline - _PyTime_GetMonotonicClock();
+
if (err == SSL_ERROR_WANT_READ) {
- sockstate = check_socket_and_wait_for_timeout(sock, 0);
+ sockstate = PySSL_select(sock, 0, timeout);
} else if (err == SSL_ERROR_WANT_WRITE) {
- sockstate = check_socket_and_wait_for_timeout(sock, 1);
+ sockstate = PySSL_select(sock, 1, timeout);
} else {
sockstate = SOCKET_OPERATION_OK;
}
+
if (sockstate == SOCKET_HAS_TIMED_OUT) {
PyErr_SetString(PySocketModule.timeout_error,
"The write operation timed out");
@@ -1630,26 +1840,26 @@ static PyObject *PySSL_SSLwrite(PySSLSocket *self, PyObject *args)
}
} while (err == SSL_ERROR_WANT_READ || err == SSL_ERROR_WANT_WRITE);
- Py_DECREF(sock);
- PyBuffer_Release(&buf);
+ Py_XDECREF(sock);
if (len > 0)
return PyLong_FromLong(len);
else
return PySSL_SetError(self, len, __FILE__, __LINE__);
error:
- Py_DECREF(sock);
- PyBuffer_Release(&buf);
+ Py_XDECREF(sock);
return NULL;
}
-PyDoc_STRVAR(PySSL_SSLwrite_doc,
-"write(s) -> len\n\
-\n\
-Writes the string s into the SSL object. Returns the number\n\
-of bytes written.");
+/*[clinic input]
+_ssl._SSLSocket.pending
-static PyObject *PySSL_SSLpending(PySSLSocket *self)
+Returns the number of already decrypted bytes available for read, pending on the connection.
+[clinic start generated code]*/
+
+static PyObject *
+_ssl__SSLSocket_pending_impl(PySSLSocket *self)
+/*[clinic end generated code: output=983d9fecdc308a83 input=2b77487d6dfd597f]*/
{
int count = 0;
@@ -1662,49 +1872,52 @@ static PyObject *PySSL_SSLpending(PySSLSocket *self)
return PyLong_FromLong(count);
}
-PyDoc_STRVAR(PySSL_SSLpending_doc,
-"pending() -> count\n\
-\n\
-Returns the number of already decrypted bytes available for read,\n\
-pending on the connection.\n");
+/*[clinic input]
+_ssl._SSLSocket.read
+ size as len: int
+ [
+ buffer: Py_buffer(accept={rwbuffer})
+ ]
+ /
-static PyObject *PySSL_SSLread(PySSLSocket *self, PyObject *args)
+Read up to size bytes from the SSL socket.
+[clinic start generated code]*/
+
+static PyObject *
+_ssl__SSLSocket_read_impl(PySSLSocket *self, int len, int group_right_1,
+ Py_buffer *buffer)
+/*[clinic end generated code: output=00097776cec2a0af input=ff157eb918d0905b]*/
{
PyObject *dest = NULL;
- Py_buffer buf;
char *mem;
- int len, count;
- int buf_passed = 0;
+ int count;
int sockstate;
int err;
int nonblocking;
- PySocketSockObject *sock
- = (PySocketSockObject *) PyWeakref_GetObject(self->Socket);
-
- if (((PyObject*)sock) == Py_None) {
- _setSSLError("Underlying socket connection gone",
- PY_SSL_ERROR_NO_SOCKET, __FILE__, __LINE__);
- return NULL;
+ PySocketSockObject *sock = GET_SOCKET(self);
+ _PyTime_t timeout, deadline = 0;
+ int has_timeout;
+
+ if (sock != NULL) {
+ if (((PyObject*)sock) == Py_None) {
+ _setSSLError("Underlying socket connection gone",
+ PY_SSL_ERROR_NO_SOCKET, __FILE__, __LINE__);
+ return NULL;
+ }
+ Py_INCREF(sock);
}
- Py_INCREF(sock);
- buf.obj = NULL;
- buf.buf = NULL;
- if (!PyArg_ParseTuple(args, "i|w*:read", &len, &buf))
- goto error;
-
- if ((buf.buf == NULL) && (buf.obj == NULL)) {
+ if (!group_right_1) {
dest = PyBytes_FromStringAndSize(NULL, len);
if (dest == NULL)
goto error;
mem = PyBytes_AS_STRING(dest);
}
else {
- buf_passed = 1;
- mem = buf.buf;
- if (len <= 0 || len > buf.len) {
- len = (int) buf.len;
- if (buf.len != len) {
+ mem = buffer->buf;
+ if (len <= 0 || len > buffer->len) {
+ len = (int) buffer->len;
+ if (buffer->len != len) {
PyErr_SetString(PyExc_OverflowError,
"maximum length can't fit in a C 'int'");
goto error;
@@ -1712,31 +1925,43 @@ static PyObject *PySSL_SSLread(PySSLSocket *self, PyObject *args)
}
}
- /* just in case the blocking state of the socket has been changed */
- nonblocking = (sock->sock_timeout >= 0.0);
- BIO_set_nbio(SSL_get_rbio(self->ssl), nonblocking);
- BIO_set_nbio(SSL_get_wbio(self->ssl), nonblocking);
+ if (sock != NULL) {
+ /* just in case the blocking state of the socket has been changed */
+ nonblocking = (sock->sock_timeout >= 0);
+ BIO_set_nbio(SSL_get_rbio(self->ssl), nonblocking);
+ BIO_set_nbio(SSL_get_wbio(self->ssl), nonblocking);
+ }
+
+ timeout = GET_SOCKET_TIMEOUT(sock);
+ has_timeout = (timeout > 0);
+ if (has_timeout)
+ deadline = _PyTime_GetMonotonicClock() + timeout;
do {
PySSL_BEGIN_ALLOW_THREADS
count = SSL_read(self->ssl, mem, len);
err = SSL_get_error(self->ssl, count);
PySSL_END_ALLOW_THREADS
+
if (PyErr_CheckSignals())
goto error;
+
+ if (has_timeout)
+ timeout = deadline - _PyTime_GetMonotonicClock();
+
if (err == SSL_ERROR_WANT_READ) {
- sockstate = check_socket_and_wait_for_timeout(sock, 0);
+ sockstate = PySSL_select(sock, 0, timeout);
} else if (err == SSL_ERROR_WANT_WRITE) {
- sockstate = check_socket_and_wait_for_timeout(sock, 1);
- } else if ((err == SSL_ERROR_ZERO_RETURN) &&
- (SSL_get_shutdown(self->ssl) ==
- SSL_RECEIVED_SHUTDOWN))
+ sockstate = PySSL_select(sock, 1, timeout);
+ } else if (err == SSL_ERROR_ZERO_RETURN &&
+ SSL_get_shutdown(self->ssl) == SSL_RECEIVED_SHUTDOWN)
{
count = 0;
goto done;
- } else {
- sockstate = SOCKET_OPERATION_OK;
}
+ else
+ sockstate = SOCKET_OPERATION_OK;
+
if (sockstate == SOCKET_HAS_TIMED_OUT) {
PyErr_SetString(PySocketModule.timeout_error,
"The read operation timed out");
@@ -1745,55 +1970,66 @@ static PyObject *PySSL_SSLread(PySSLSocket *self, PyObject *args)
break;
}
} while (err == SSL_ERROR_WANT_READ || err == SSL_ERROR_WANT_WRITE);
+
if (count <= 0) {
PySSL_SetError(self, count, __FILE__, __LINE__);
goto error;
}
done:
- Py_DECREF(sock);
- if (!buf_passed) {
+ Py_XDECREF(sock);
+ if (!group_right_1) {
_PyBytes_Resize(&dest, count);
return dest;
}
else {
- PyBuffer_Release(&buf);
return PyLong_FromLong(count);
}
error:
- Py_DECREF(sock);
- if (!buf_passed)
+ Py_XDECREF(sock);
+ if (!group_right_1)
Py_XDECREF(dest);
- else
- PyBuffer_Release(&buf);
return NULL;
}
-PyDoc_STRVAR(PySSL_SSLread_doc,
-"read([len]) -> string\n\
-\n\
-Read up to len bytes from the SSL socket.");
+/*[clinic input]
+_ssl._SSLSocket.shutdown
+
+Does the SSL shutdown handshake with the remote end.
-static PyObject *PySSL_SSLshutdown(PySSLSocket *self)
+Returns the underlying socket object.
+[clinic start generated code]*/
+
+static PyObject *
+_ssl__SSLSocket_shutdown_impl(PySSLSocket *self)
+/*[clinic end generated code: output=ca1aa7ed9d25ca42 input=ede2cc1a2ddf0ee4]*/
{
int err, ssl_err, sockstate, nonblocking;
int zeros = 0;
- PySocketSockObject *sock
- = (PySocketSockObject *) PyWeakref_GetObject(self->Socket);
+ PySocketSockObject *sock = GET_SOCKET(self);
+ _PyTime_t timeout, deadline = 0;
+ int has_timeout;
+
+ if (sock != NULL) {
+ /* Guard against closed socket */
+ if ((((PyObject*)sock) == Py_None) || (sock->sock_fd < 0)) {
+ _setSSLError("Underlying socket connection gone",
+ PY_SSL_ERROR_NO_SOCKET, __FILE__, __LINE__);
+ return NULL;
+ }
+ Py_INCREF(sock);
- /* Guard against closed socket */
- if ((((PyObject*)sock) == Py_None) || (sock->sock_fd < 0)) {
- _setSSLError("Underlying socket connection gone",
- PY_SSL_ERROR_NO_SOCKET, __FILE__, __LINE__);
- return NULL;
+ /* Just in case the blocking state of the socket has been changed */
+ nonblocking = (sock->sock_timeout >= 0);
+ BIO_set_nbio(SSL_get_rbio(self->ssl), nonblocking);
+ BIO_set_nbio(SSL_get_wbio(self->ssl), nonblocking);
}
- Py_INCREF(sock);
- /* Just in case the blocking state of the socket has been changed */
- nonblocking = (sock->sock_timeout >= 0.0);
- BIO_set_nbio(SSL_get_rbio(self->ssl), nonblocking);
- BIO_set_nbio(SSL_get_wbio(self->ssl), nonblocking);
+ timeout = GET_SOCKET_TIMEOUT(sock);
+ has_timeout = (timeout > 0);
+ if (has_timeout)
+ deadline = _PyTime_GetMonotonicClock() + timeout;
while (1) {
PySSL_BEGIN_ALLOW_THREADS
@@ -1809,6 +2045,7 @@ static PyObject *PySSL_SSLshutdown(PySSLSocket *self)
SSL_set_read_ahead(self->ssl, 0);
err = SSL_shutdown(self->ssl);
PySSL_END_ALLOW_THREADS
+
/* If err == 1, a secure shutdown with SSL_shutdown() is complete */
if (err > 0)
break;
@@ -1823,14 +2060,18 @@ static PyObject *PySSL_SSLshutdown(PySSLSocket *self)
continue;
}
+ if (has_timeout)
+ timeout = deadline - _PyTime_GetMonotonicClock();
+
/* Possibly retry shutdown until timeout or failure */
ssl_err = SSL_get_error(self->ssl, err);
if (ssl_err == SSL_ERROR_WANT_READ)
- sockstate = check_socket_and_wait_for_timeout(sock, 0);
+ sockstate = PySSL_select(sock, 0, timeout);
else if (ssl_err == SSL_ERROR_WANT_WRITE)
- sockstate = check_socket_and_wait_for_timeout(sock, 1);
+ sockstate = PySSL_select(sock, 1, timeout);
else
break;
+
if (sockstate == SOCKET_HAS_TIMED_OUT) {
if (ssl_err == SSL_ERROR_WANT_READ)
PyErr_SetString(PySocketModule.timeout_error,
@@ -1851,27 +2092,31 @@ static PyObject *PySSL_SSLshutdown(PySSLSocket *self)
}
if (err < 0) {
- Py_DECREF(sock);
+ Py_XDECREF(sock);
return PySSL_SetError(self, err, __FILE__, __LINE__);
}
- else
+ if (sock)
/* It's already INCREF'ed */
return (PyObject *) sock;
+ else
+ Py_RETURN_NONE;
error:
- Py_DECREF(sock);
+ Py_XDECREF(sock);
return NULL;
}
-PyDoc_STRVAR(PySSL_SSLshutdown_doc,
-"shutdown(s) -> socket\n\
-\n\
-Does the SSL shutdown handshake with the remote end, and returns\n\
-the underlying socket object.");
+/*[clinic input]
+_ssl._SSLSocket.tls_unique_cb
+
+Returns the 'tls-unique' channel binding data, as defined by RFC 5929.
+
+If the TLS handshake is not yet complete, None is returned.
+[clinic start generated code]*/
-#if HAVE_OPENSSL_FINISHED
static PyObject *
-PySSL_tls_unique_cb(PySSLSocket *self)
+_ssl__SSLSocket_tls_unique_cb_impl(PySSLSocket *self)
+/*[clinic end generated code: output=f3a832d603f586af input=439525c7b3d8d34d]*/
{
PyObject *retval = NULL;
char buf[PySSL_CB_MAXLEN];
@@ -1895,42 +2140,32 @@ PySSL_tls_unique_cb(PySSLSocket *self)
return retval;
}
-PyDoc_STRVAR(PySSL_tls_unique_cb_doc,
-"tls_unique_cb() -> bytes\n\
-\n\
-Returns the 'tls-unique' channel binding data, as defined by RFC 5929.\n\
-\n\
-If the TLS handshake is not yet complete, None is returned");
-
-#endif /* HAVE_OPENSSL_FINISHED */
-
static PyGetSetDef ssl_getsetlist[] = {
{"context", (getter) PySSL_get_context,
(setter) PySSL_set_context, PySSL_set_context_doc},
+ {"server_side", (getter) PySSL_get_server_side, NULL,
+ PySSL_get_server_side_doc},
+ {"server_hostname", (getter) PySSL_get_server_hostname, NULL,
+ PySSL_get_server_hostname_doc},
+ {"owner", (getter) PySSL_get_owner, (setter) PySSL_set_owner,
+ PySSL_get_owner_doc},
{NULL}, /* sentinel */
};
static PyMethodDef PySSLMethods[] = {
- {"do_handshake", (PyCFunction)PySSL_SSLdo_handshake, METH_NOARGS},
- {"write", (PyCFunction)PySSL_SSLwrite, METH_VARARGS,
- PySSL_SSLwrite_doc},
- {"read", (PyCFunction)PySSL_SSLread, METH_VARARGS,
- PySSL_SSLread_doc},
- {"pending", (PyCFunction)PySSL_SSLpending, METH_NOARGS,
- PySSL_SSLpending_doc},
- {"peer_certificate", (PyCFunction)PySSL_peercert, METH_VARARGS,
- PySSL_peercert_doc},
- {"cipher", (PyCFunction)PySSL_cipher, METH_NOARGS},
-#ifdef OPENSSL_NPN_NEGOTIATED
- {"selected_npn_protocol", (PyCFunction)PySSL_selected_npn_protocol, METH_NOARGS},
-#endif
- {"compression", (PyCFunction)PySSL_compression, METH_NOARGS},
- {"shutdown", (PyCFunction)PySSL_SSLshutdown, METH_NOARGS,
- PySSL_SSLshutdown_doc},
-#if HAVE_OPENSSL_FINISHED
- {"tls_unique_cb", (PyCFunction)PySSL_tls_unique_cb, METH_NOARGS,
- PySSL_tls_unique_cb_doc},
-#endif
+ _SSL__SSLSOCKET_DO_HANDSHAKE_METHODDEF
+ _SSL__SSLSOCKET_WRITE_METHODDEF
+ _SSL__SSLSOCKET_READ_METHODDEF
+ _SSL__SSLSOCKET_PENDING_METHODDEF
+ _SSL__SSLSOCKET_PEER_CERTIFICATE_METHODDEF
+ _SSL__SSLSOCKET_CIPHER_METHODDEF
+ _SSL__SSLSOCKET_SHARED_CIPHERS_METHODDEF
+ _SSL__SSLSOCKET_VERSION_METHODDEF
+ _SSL__SSLSOCKET_SELECTED_NPN_PROTOCOL_METHODDEF
+ _SSL__SSLSOCKET_SELECTED_ALPN_PROTOCOL_METHODDEF
+ _SSL__SSLSOCKET_COMPRESSION_METHODDEF
+ _SSL__SSLSOCKET_SHUTDOWN_METHODDEF
+ _SSL__SSLSOCKET_TLS_UNIQUE_CB_METHODDEF
{NULL, NULL}
};
@@ -1973,20 +2208,21 @@ static PyTypeObject PySSLSocket_Type = {
* _SSLContext objects
*/
+/*[clinic input]
+@classmethod
+_ssl._SSLContext.__new__
+ protocol as proto_version: int
+ /
+[clinic start generated code]*/
+
static PyObject *
-context_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
+_ssl__SSLContext_impl(PyTypeObject *type, int proto_version)
+/*[clinic end generated code: output=2cf0d7a0741b6bd1 input=8d58a805b95fc534]*/
{
- char *kwlist[] = {"protocol", NULL};
PySSLContext *self;
- int proto_version = PY_SSL_VERSION_SSL23;
long options;
SSL_CTX *ctx = NULL;
- if (!PyArg_ParseTupleAndKeywords(
- args, kwds, "i:_SSLContext", kwlist,
- &proto_version))
- return NULL;
-
PySSL_BEGIN_ALLOW_THREADS
if (proto_version == PY_SSL_VERSION_TLS1)
ctx = SSL_CTX_new(TLSv1_method());
@@ -2031,6 +2267,9 @@ context_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
#ifdef OPENSSL_NPN_NEGOTIATED
self->npn_protocols = NULL;
#endif
+#ifdef HAVE_ALPN
+ self->alpn_protocols = NULL;
+#endif
#ifndef OPENSSL_NO_TLSEXT
self->set_hostname = NULL;
#endif
@@ -2099,20 +2338,25 @@ context_dealloc(PySSLContext *self)
context_clear(self);
SSL_CTX_free(self->ctx);
#ifdef OPENSSL_NPN_NEGOTIATED
- PyMem_Free(self->npn_protocols);
+ PyMem_FREE(self->npn_protocols);
+#endif
+#ifdef HAVE_ALPN
+ PyMem_FREE(self->alpn_protocols);
#endif
Py_TYPE(self)->tp_free(self);
}
+/*[clinic input]
+_ssl._SSLContext.set_ciphers
+ cipherlist: str
+ /
+[clinic start generated code]*/
+
static PyObject *
-set_ciphers(PySSLContext *self, PyObject *args)
+_ssl__SSLContext_set_ciphers_impl(PySSLContext *self, const char *cipherlist)
+/*[clinic end generated code: output=3a3162f3557c0f3f input=a7ac931b9f3ca7fc]*/
{
- int ret;
- const char *cipherlist;
-
- if (!PyArg_ParseTuple(args, "s:set_ciphers", &cipherlist))
- return NULL;
- ret = SSL_CTX_set_cipher_list(self->ctx, cipherlist);
+ int ret = SSL_CTX_set_cipher_list(self->ctx, cipherlist);
if (ret == 0) {
/* Clearing the error queue is necessary on some OpenSSL versions,
otherwise the error will be reported again when another SSL call
@@ -2126,6 +2370,30 @@ set_ciphers(PySSLContext *self, PyObject *args)
}
#ifdef OPENSSL_NPN_NEGOTIATED
+static int
+do_protocol_selection(int alpn, unsigned char **out, unsigned char *outlen,
+ const unsigned char *server_protocols, unsigned int server_protocols_len,
+ const unsigned char *client_protocols, unsigned int client_protocols_len)
+{
+ int ret;
+ if (client_protocols == NULL) {
+ client_protocols = (unsigned char *)"";
+ client_protocols_len = 0;
+ }
+ if (server_protocols == NULL) {
+ server_protocols = (unsigned char *)"";
+ server_protocols_len = 0;
+ }
+
+ ret = SSL_select_next_proto(out, outlen,
+ server_protocols, server_protocols_len,
+ client_protocols, client_protocols_len);
+ if (alpn && ret != OPENSSL_NPN_NEGOTIATED)
+ return SSL_TLSEXT_ERR_NOACK;
+
+ return SSL_TLSEXT_ERR_OK;
+}
+
/* this callback gets passed to SSL_CTX_set_next_protos_advertise_cb */
static int
_advertiseNPN_cb(SSL *s,
@@ -2135,10 +2403,10 @@ _advertiseNPN_cb(SSL *s,
PySSLContext *ssl_ctx = (PySSLContext *) args;
if (ssl_ctx->npn_protocols == NULL) {
- *data = (unsigned char *) "";
+ *data = (unsigned char *)"";
*len = 0;
} else {
- *data = (unsigned char *) ssl_ctx->npn_protocols;
+ *data = ssl_ctx->npn_protocols;
*len = ssl_ctx->npn_protocols_len;
}
@@ -2151,46 +2419,30 @@ _selectNPN_cb(SSL *s,
const unsigned char *server, unsigned int server_len,
void *args)
{
- PySSLContext *ssl_ctx = (PySSLContext *) args;
-
- unsigned char *client = (unsigned char *) ssl_ctx->npn_protocols;
- int client_len;
-
- if (client == NULL) {
- client = (unsigned char *) "";
- client_len = 0;
- } else {
- client_len = ssl_ctx->npn_protocols_len;
- }
-
- SSL_select_next_proto(out, outlen,
- server, server_len,
- client, client_len);
-
- return SSL_TLSEXT_ERR_OK;
+ PySSLContext *ctx = (PySSLContext *)args;
+ return do_protocol_selection(0, out, outlen, server, server_len,
+ ctx->npn_protocols, ctx->npn_protocols_len);
}
#endif
+/*[clinic input]
+_ssl._SSLContext._set_npn_protocols
+ protos: Py_buffer
+ /
+[clinic start generated code]*/
+
static PyObject *
-_set_npn_protocols(PySSLContext *self, PyObject *args)
+_ssl__SSLContext__set_npn_protocols_impl(PySSLContext *self,
+ Py_buffer *protos)
+/*[clinic end generated code: output=72b002c3324390c6 input=319fcb66abf95bd7]*/
{
#ifdef OPENSSL_NPN_NEGOTIATED
- Py_buffer protos;
-
- if (!PyArg_ParseTuple(args, "y*:set_npn_protocols", &protos))
- return NULL;
-
- if (self->npn_protocols != NULL) {
- PyMem_Free(self->npn_protocols);
- }
-
- self->npn_protocols = PyMem_Malloc(protos.len);
- if (self->npn_protocols == NULL) {
- PyBuffer_Release(&protos);
+ PyMem_Free(self->npn_protocols);
+ self->npn_protocols = PyMem_Malloc(protos->len);
+ if (self->npn_protocols == NULL)
return PyErr_NoMemory();
- }
- memcpy(self->npn_protocols, protos.buf, protos.len);
- self->npn_protocols_len = (int) protos.len;
+ memcpy(self->npn_protocols, protos->buf, protos->len);
+ self->npn_protocols_len = (int) protos->len;
/* set both server and client callbacks, because the context can
* be used to create both types of sockets */
@@ -2201,7 +2453,6 @@ _set_npn_protocols(PySSLContext *self, PyObject *args)
_selectNPN_cb,
self);
- PyBuffer_Release(&protos);
Py_RETURN_NONE;
#else
PyErr_SetString(PyExc_NotImplementedError,
@@ -2210,6 +2461,51 @@ _set_npn_protocols(PySSLContext *self, PyObject *args)
#endif
}
+#ifdef HAVE_ALPN
+static int
+_selectALPN_cb(SSL *s,
+ const unsigned char **out, unsigned char *outlen,
+ const unsigned char *client_protocols, unsigned int client_protocols_len,
+ void *args)
+{
+ PySSLContext *ctx = (PySSLContext *)args;
+ return do_protocol_selection(1, (unsigned char **)out, outlen,
+ ctx->alpn_protocols, ctx->alpn_protocols_len,
+ client_protocols, client_protocols_len);
+}
+#endif
+
+/*[clinic input]
+_ssl._SSLContext._set_alpn_protocols
+ protos: Py_buffer
+ /
+[clinic start generated code]*/
+
+static PyObject *
+_ssl__SSLContext__set_alpn_protocols_impl(PySSLContext *self,
+ Py_buffer *protos)
+/*[clinic end generated code: output=87599a7f76651a9b input=9bba964595d519be]*/
+{
+#ifdef HAVE_ALPN
+ PyMem_FREE(self->alpn_protocols);
+ self->alpn_protocols = PyMem_Malloc(protos->len);
+ if (!self->alpn_protocols)
+ return PyErr_NoMemory();
+ memcpy(self->alpn_protocols, protos->buf, protos->len);
+ self->alpn_protocols_len = protos->len;
+
+ if (SSL_CTX_set_alpn_protos(self->ctx, self->alpn_protocols, self->alpn_protocols_len))
+ return PyErr_NoMemory();
+ SSL_CTX_set_alpn_select_cb(self->ctx, _selectALPN_cb, self);
+
+ Py_RETURN_NONE;
+#else
+ PyErr_SetString(PyExc_NotImplementedError,
+ "The ALPN extension requires OpenSSL 1.0.2 or later.");
+ return NULL;
+#endif
+}
+
static PyObject *
get_verify_mode(PySSLContext *self, void *c)
{
@@ -2253,7 +2549,6 @@ set_verify_mode(PySSLContext *self, PyObject *arg, void *c)
return 0;
}
-#ifdef HAVE_OPENSSL_VERIFY_PARAM
static PyObject *
get_verify_flags(PySSLContext *self, void *c)
{
@@ -2291,7 +2586,6 @@ set_verify_flags(PySSLContext *self, PyObject *arg, void *c)
}
return 0;
}
-#endif
static PyObject *
get_options(PySSLContext *self, void *c)
@@ -2448,11 +2742,19 @@ error:
return -1;
}
+/*[clinic input]
+_ssl._SSLContext.load_cert_chain
+ certfile: object
+ keyfile: object = NULL
+ password: object = NULL
+
+[clinic start generated code]*/
+
static PyObject *
-load_cert_chain(PySSLContext *self, PyObject *args, PyObject *kwds)
+_ssl__SSLContext_load_cert_chain_impl(PySSLContext *self, PyObject *certfile,
+ PyObject *keyfile, PyObject *password)
+/*[clinic end generated code: output=9480bc1c380e2095 input=7cf9ac673cbee6fc]*/
{
- char *kwlist[] = {"certfile", "keyfile", "password", NULL};
- PyObject *certfile, *keyfile = NULL, *password = NULL;
PyObject *certfile_bytes = NULL, *keyfile_bytes = NULL;
pem_password_cb *orig_passwd_cb = self->ctx->default_passwd_callback;
void *orig_passwd_userdata = self->ctx->default_passwd_callback_userdata;
@@ -2461,10 +2763,6 @@ load_cert_chain(PySSLContext *self, PyObject *args, PyObject *kwds)
errno = 0;
ERR_clear_error();
- if (!PyArg_ParseTupleAndKeywords(args, kwds,
- "O|OO:load_cert_chain", kwlist,
- &certfile, &keyfile, &password))
- return NULL;
if (keyfile == Py_None)
keyfile = NULL;
if (!PyUnicode_FSConverter(certfile, &certfile_bytes)) {
@@ -2632,21 +2930,26 @@ _add_ca_certs(PySSLContext *self, void *data, Py_ssize_t len,
}
+/*[clinic input]
+_ssl._SSLContext.load_verify_locations
+ cafile: object = NULL
+ capath: object = NULL
+ cadata: object = NULL
+
+[clinic start generated code]*/
+
static PyObject *
-load_verify_locations(PySSLContext *self, PyObject *args, PyObject *kwds)
+_ssl__SSLContext_load_verify_locations_impl(PySSLContext *self,
+ PyObject *cafile,
+ PyObject *capath,
+ PyObject *cadata)
+/*[clinic end generated code: output=454c7e41230ca551 input=997f1fb3a784ef88]*/
{
- char *kwlist[] = {"cafile", "capath", "cadata", NULL};
- PyObject *cafile = NULL, *capath = NULL, *cadata = NULL;
PyObject *cafile_bytes = NULL, *capath_bytes = NULL;
const char *cafile_buf = NULL, *capath_buf = NULL;
int r = 0, ok = 1;
errno = 0;
- if (!PyArg_ParseTupleAndKeywords(args, kwds,
- "|OOO:load_verify_locations", kwlist,
- &cafile, &capath, &cadata))
- return NULL;
-
if (cafile == Py_None)
cafile = NULL;
if (capath == Py_None)
@@ -2743,18 +3046,24 @@ load_verify_locations(PySSLContext *self, PyObject *args, PyObject *kwds)
}
}
+/*[clinic input]
+_ssl._SSLContext.load_dh_params
+ path as filepath: object
+ /
+
+[clinic start generated code]*/
+
static PyObject *
-load_dh_params(PySSLContext *self, PyObject *filepath)
+_ssl__SSLContext_load_dh_params(PySSLContext *self, PyObject *filepath)
+/*[clinic end generated code: output=1c8e57a38e055af0 input=c8871f3c796ae1d6]*/
{
FILE *f;
DH *dh;
f = _Py_fopen_obj(filepath, "rb");
- if (f == NULL) {
- if (!PyErr_Occurred())
- PyErr_SetFromErrnoWithFilenameObject(PyExc_OSError, filepath);
+ if (f == NULL)
return NULL;
- }
+
errno = 0;
PySSL_BEGIN_ALLOW_THREADS
dh = PEM_read_DHparams(f, NULL, NULL, NULL);
@@ -2776,38 +3085,76 @@ load_dh_params(PySSLContext *self, PyObject *filepath)
Py_RETURN_NONE;
}
+/*[clinic input]
+_ssl._SSLContext._wrap_socket
+ sock: object(subclass_of="PySocketModule.Sock_Type")
+ server_side: int
+ server_hostname as hostname_obj: object = None
+
+[clinic start generated code]*/
+
static PyObject *
-context_wrap_socket(PySSLContext *self, PyObject *args, PyObject *kwds)
+_ssl__SSLContext__wrap_socket_impl(PySSLContext *self, PyObject *sock,
+ int server_side, PyObject *hostname_obj)
+/*[clinic end generated code: output=6973e4b60995e933 input=83859b9156ddfc63]*/
{
- char *kwlist[] = {"sock", "server_side", "server_hostname", NULL};
- PySocketSockObject *sock;
- int server_side = 0;
char *hostname = NULL;
- PyObject *hostname_obj, *res;
+ PyObject *res;
/* server_hostname is either None (or absent), or to be encoded
using the idna encoding. */
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "O!i|O!:_wrap_socket", kwlist,
- PySocketModule.Sock_Type,
- &sock, &server_side,
- Py_TYPE(Py_None), &hostname_obj)) {
- PyErr_Clear();
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "O!iet:_wrap_socket", kwlist,
- PySocketModule.Sock_Type,
- &sock, &server_side,
- "idna", &hostname))
+ if (hostname_obj != Py_None) {
+ if (!PyArg_Parse(hostname_obj, "et", "idna", &hostname))
return NULL;
}
- res = (PyObject *) newPySSLSocket(self, sock, server_side,
- hostname);
+ res = (PyObject *) newPySSLSocket(self, (PySocketSockObject *)sock,
+ server_side, hostname,
+ NULL, NULL);
if (hostname != NULL)
PyMem_Free(hostname);
return res;
}
+/*[clinic input]
+_ssl._SSLContext._wrap_bio
+ incoming: object(subclass_of="&PySSLMemoryBIO_Type", type="PySSLMemoryBIO *")
+ outgoing: object(subclass_of="&PySSLMemoryBIO_Type", type="PySSLMemoryBIO *")
+ server_side: int
+ server_hostname as hostname_obj: object = None
+
+[clinic start generated code]*/
+
+static PyObject *
+_ssl__SSLContext__wrap_bio_impl(PySSLContext *self, PySSLMemoryBIO *incoming,
+ PySSLMemoryBIO *outgoing, int server_side,
+ PyObject *hostname_obj)
+/*[clinic end generated code: output=4fe4ba75ad95940d input=17725ecdac0bf220]*/
+{
+ char *hostname = NULL;
+ PyObject *res;
+
+ /* server_hostname is either None (or absent), or to be encoded
+ using the idna encoding. */
+ if (hostname_obj != Py_None) {
+ if (!PyArg_Parse(hostname_obj, "et", "idna", &hostname))
+ return NULL;
+ }
+
+ res = (PyObject *) newPySSLSocket(self, NULL, server_side, hostname,
+ incoming, outgoing);
+
+ PyMem_Free(hostname);
+ return res;
+}
+
+/*[clinic input]
+_ssl._SSLContext.session_stats
+[clinic start generated code]*/
+
static PyObject *
-session_stats(PySSLContext *self, PyObject *unused)
+_ssl__SSLContext_session_stats_impl(PySSLContext *self)
+/*[clinic end generated code: output=0d96411c42893bfb input=7e0a81fb11102c8b]*/
{
int r;
PyObject *value, *stats = PyDict_New();
@@ -2845,8 +3192,13 @@ error:
return NULL;
}
+/*[clinic input]
+_ssl._SSLContext.set_default_verify_paths
+[clinic start generated code]*/
+
static PyObject *
-set_default_verify_paths(PySSLContext *self, PyObject *unused)
+_ssl__SSLContext_set_default_verify_paths_impl(PySSLContext *self)
+/*[clinic end generated code: output=0bee74e6e09deaaa input=35f3408021463d74]*/
{
if (!SSL_CTX_set_default_verify_paths(self->ctx)) {
_setSSLError(NULL, 0, __FILE__, __LINE__);
@@ -2856,8 +3208,16 @@ set_default_verify_paths(PySSLContext *self, PyObject *unused)
}
#ifndef OPENSSL_NO_ECDH
+/*[clinic input]
+_ssl._SSLContext.set_ecdh_curve
+ name: object
+ /
+
+[clinic start generated code]*/
+
static PyObject *
-set_ecdh_curve(PySSLContext *self, PyObject *name)
+_ssl__SSLContext_set_ecdh_curve(PySSLContext *self, PyObject *name)
+/*[clinic end generated code: output=23022c196e40d7d2 input=c2bafb6f6e34726b]*/
{
PyObject *name_bytes;
int nid;
@@ -2912,11 +3272,25 @@ _servername_callback(SSL *s, int *al, void *args)
ssl = SSL_get_app_data(s);
assert(PySSLSocket_Check(ssl));
- ssl_socket = PyWeakref_GetObject(ssl->Socket);
+
+ /* The servername callback expects a argument that represents the current
+ * SSL connection and that has a .context attribute that can be changed to
+ * identify the requested hostname. Since the official API is the Python
+ * level API we want to pass the callback a Python level object rather than
+ * a _ssl.SSLSocket instance. If there's an "owner" (typically an
+ * SSLObject) that will be passed. Otherwise if there's a socket then that
+ * will be passed. If both do not exist only then the C-level object is
+ * passed. */
+ if (ssl->owner)
+ ssl_socket = PyWeakref_GetObject(ssl->owner);
+ else if (ssl->Socket)
+ ssl_socket = PyWeakref_GetObject(ssl->Socket);
+ else
+ ssl_socket = (PyObject *) ssl;
+
Py_INCREF(ssl_socket);
- if (ssl_socket == Py_None) {
+ if (ssl_socket == Py_None)
goto error;
- }
if (servername == NULL) {
result = PyObject_CallFunctionObjArgs(ssl_ctx->set_hostname, ssl_socket,
@@ -2977,25 +3351,23 @@ error:
}
#endif
-PyDoc_STRVAR(PySSL_set_servername_callback_doc,
-"set_servername_callback(method)\n\
-\n\
-This sets a callback that will be called when a server name is provided by\n\
-the SSL/TLS client in the SNI extension.\n\
-\n\
-If the argument is None then the callback is disabled. The method is called\n\
-with the SSLSocket, the server name as a string, and the SSLContext object.\n\
-See RFC 6066 for details of the SNI extension.");
+/*[clinic input]
+_ssl._SSLContext.set_servername_callback
+ method as cb: object
+ /
+
+Set a callback that will be called when a server name is provided by the SSL/TLS client in the SNI extension.
+
+If the argument is None then the callback is disabled. The method is called
+with the SSLSocket, the server name as a string, and the SSLContext object.
+See RFC 6066 for details of the SNI extension.
+[clinic start generated code]*/
static PyObject *
-set_servername_callback(PySSLContext *self, PyObject *args)
+_ssl__SSLContext_set_servername_callback(PySSLContext *self, PyObject *cb)
+/*[clinic end generated code: output=3439a1b2d5d3b7ea input=a2a83620197d602b]*/
{
#if HAVE_SNI && !defined(OPENSSL_NO_TLSEXT)
- PyObject *cb;
-
- if (!PyArg_ParseTuple(args, "O", &cb))
- return NULL;
-
Py_CLEAR(self->set_hostname);
if (cb == Py_None) {
SSL_CTX_set_tlsext_servername_callback(self->ctx, NULL);
@@ -3022,17 +3394,21 @@ set_servername_callback(PySSLContext *self, PyObject *args)
#endif
}
-PyDoc_STRVAR(PySSL_get_stats_doc,
-"cert_store_stats() -> {'crl': int, 'x509_ca': int, 'x509': int}\n\
-\n\
-Returns quantities of loaded X.509 certificates. X.509 certificates with a\n\
-CA extension and certificate revocation lists inside the context's cert\n\
-store.\n\
-NOTE: Certificates in a capath directory aren't loaded unless they have\n\
-been used at least once.");
+/*[clinic input]
+_ssl._SSLContext.cert_store_stats
+
+Returns quantities of loaded X.509 certificates.
+
+X.509 certificates with a CA extension and certificate revocation lists
+inside the context's cert store.
+
+NOTE: Certificates in a capath directory aren't loaded unless they have
+been used at least once.
+[clinic start generated code]*/
static PyObject *
-cert_store_stats(PySSLContext *self)
+_ssl__SSLContext_cert_store_stats_impl(PySSLContext *self)
+/*[clinic end generated code: output=5f356f4d9cca874d input=eb40dd0f6d0e40cf]*/
{
X509_STORE *store;
X509_OBJECT *obj;
@@ -3065,27 +3441,26 @@ cert_store_stats(PySSLContext *self)
"x509_ca", ca);
}
-PyDoc_STRVAR(PySSL_get_ca_certs_doc,
-"get_ca_certs(binary_form=False) -> list of loaded certificate\n\
-\n\
-Returns a list of dicts with information of loaded CA certs. If the\n\
-optional argument is True, returns a DER-encoded copy of the CA certificate.\n\
-NOTE: Certificates in a capath directory aren't loaded unless they have\n\
-been used at least once.");
+/*[clinic input]
+_ssl._SSLContext.get_ca_certs
+ binary_form: bool = False
+
+Returns a list of dicts with information of loaded CA certs.
+
+If the optional argument is True, returns a DER-encoded copy of the CA
+certificate.
+
+NOTE: Certificates in a capath directory aren't loaded unless they have
+been used at least once.
+[clinic start generated code]*/
static PyObject *
-get_ca_certs(PySSLContext *self, PyObject *args, PyObject *kwds)
+_ssl__SSLContext_get_ca_certs_impl(PySSLContext *self, int binary_form)
+/*[clinic end generated code: output=0d58f148f37e2938 input=6887b5a09b7f9076]*/
{
- char *kwlist[] = {"binary_form", NULL};
X509_STORE *store;
PyObject *ci = NULL, *rlist = NULL;
int i;
- int binary_mode = 0;
-
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "|p:get_ca_certs",
- kwlist, &binary_mode)) {
- return NULL;
- }
if ((rlist = PyList_New(0)) == NULL) {
return NULL;
@@ -3106,7 +3481,7 @@ get_ca_certs(PySSLContext *self, PyObject *args, PyObject *kwds)
if (!X509_check_ca(cert)) {
continue;
}
- if (binary_mode) {
+ if (binary_form) {
ci = _certificate_to_der(cert);
} else {
ci = _decode_certificate(cert);
@@ -3133,42 +3508,28 @@ static PyGetSetDef context_getsetlist[] = {
(setter) set_check_hostname, NULL},
{"options", (getter) get_options,
(setter) set_options, NULL},
-#ifdef HAVE_OPENSSL_VERIFY_PARAM
{"verify_flags", (getter) get_verify_flags,
(setter) set_verify_flags, NULL},
-#endif
{"verify_mode", (getter) get_verify_mode,
(setter) set_verify_mode, NULL},
{NULL}, /* sentinel */
};
static struct PyMethodDef context_methods[] = {
- {"_wrap_socket", (PyCFunction) context_wrap_socket,
- METH_VARARGS | METH_KEYWORDS, NULL},
- {"set_ciphers", (PyCFunction) set_ciphers,
- METH_VARARGS, NULL},
- {"_set_npn_protocols", (PyCFunction) _set_npn_protocols,
- METH_VARARGS, NULL},
- {"load_cert_chain", (PyCFunction) load_cert_chain,
- METH_VARARGS | METH_KEYWORDS, NULL},
- {"load_dh_params", (PyCFunction) load_dh_params,
- METH_O, NULL},
- {"load_verify_locations", (PyCFunction) load_verify_locations,
- METH_VARARGS | METH_KEYWORDS, NULL},
- {"session_stats", (PyCFunction) session_stats,
- METH_NOARGS, NULL},
- {"set_default_verify_paths", (PyCFunction) set_default_verify_paths,
- METH_NOARGS, NULL},
-#ifndef OPENSSL_NO_ECDH
- {"set_ecdh_curve", (PyCFunction) set_ecdh_curve,
- METH_O, NULL},
-#endif
- {"set_servername_callback", (PyCFunction) set_servername_callback,
- METH_VARARGS, PySSL_set_servername_callback_doc},
- {"cert_store_stats", (PyCFunction) cert_store_stats,
- METH_NOARGS, PySSL_get_stats_doc},
- {"get_ca_certs", (PyCFunction) get_ca_certs,
- METH_VARARGS | METH_KEYWORDS, PySSL_get_ca_certs_doc},
+ _SSL__SSLCONTEXT__WRAP_SOCKET_METHODDEF
+ _SSL__SSLCONTEXT__WRAP_BIO_METHODDEF
+ _SSL__SSLCONTEXT_SET_CIPHERS_METHODDEF
+ _SSL__SSLCONTEXT__SET_ALPN_PROTOCOLS_METHODDEF
+ _SSL__SSLCONTEXT__SET_NPN_PROTOCOLS_METHODDEF
+ _SSL__SSLCONTEXT_LOAD_CERT_CHAIN_METHODDEF
+ _SSL__SSLCONTEXT_LOAD_DH_PARAMS_METHODDEF
+ _SSL__SSLCONTEXT_LOAD_VERIFY_LOCATIONS_METHODDEF
+ _SSL__SSLCONTEXT_SESSION_STATS_METHODDEF
+ _SSL__SSLCONTEXT_SET_DEFAULT_VERIFY_PATHS_METHODDEF
+ _SSL__SSLCONTEXT_SET_ECDH_CURVE_METHODDEF
+ _SSL__SSLCONTEXT_SET_SERVERNAME_CALLBACK_METHODDEF
+ _SSL__SSLCONTEXT_CERT_STORE_STATS_METHODDEF
+ _SSL__SSLCONTEXT_GET_CA_CERTS_METHODDEF
{NULL, NULL} /* sentinel */
};
@@ -3210,23 +3571,252 @@ static PyTypeObject PySSLContext_Type = {
0, /*tp_dictoffset*/
0, /*tp_init*/
0, /*tp_alloc*/
- context_new, /*tp_new*/
+ _ssl__SSLContext, /*tp_new*/
+};
+
+
+/*
+ * MemoryBIO objects
+ */
+
+/*[clinic input]
+@classmethod
+_ssl.MemoryBIO.__new__
+
+[clinic start generated code]*/
+
+static PyObject *
+_ssl_MemoryBIO_impl(PyTypeObject *type)
+/*[clinic end generated code: output=8820a58db78330ac input=26d22e4909ecb1b5]*/
+{
+ BIO *bio;
+ PySSLMemoryBIO *self;
+
+ bio = BIO_new(BIO_s_mem());
+ if (bio == NULL) {
+ PyErr_SetString(PySSLErrorObject,
+ "failed to allocate BIO");
+ return NULL;
+ }
+ /* Since our BIO is non-blocking an empty read() does not indicate EOF,
+ * just that no data is currently available. The SSL routines should retry
+ * the read, which we can achieve by calling BIO_set_retry_read(). */
+ BIO_set_retry_read(bio);
+ BIO_set_mem_eof_return(bio, -1);
+
+ assert(type != NULL && type->tp_alloc != NULL);
+ self = (PySSLMemoryBIO *) type->tp_alloc(type, 0);
+ if (self == NULL) {
+ BIO_free(bio);
+ return NULL;
+ }
+ self->bio = bio;
+ self->eof_written = 0;
+
+ return (PyObject *) self;
+}
+
+static void
+memory_bio_dealloc(PySSLMemoryBIO *self)
+{
+ BIO_free(self->bio);
+ Py_TYPE(self)->tp_free(self);
+}
+
+static PyObject *
+memory_bio_get_pending(PySSLMemoryBIO *self, void *c)
+{
+ return PyLong_FromLong(BIO_ctrl_pending(self->bio));
+}
+
+PyDoc_STRVAR(PySSL_memory_bio_pending_doc,
+"The number of bytes pending in the memory BIO.");
+
+static PyObject *
+memory_bio_get_eof(PySSLMemoryBIO *self, void *c)
+{
+ return PyBool_FromLong((BIO_ctrl_pending(self->bio) == 0)
+ && self->eof_written);
+}
+
+PyDoc_STRVAR(PySSL_memory_bio_eof_doc,
+"Whether the memory BIO is at EOF.");
+
+/*[clinic input]
+_ssl.MemoryBIO.read
+ size as len: int = -1
+ /
+
+Read up to size bytes from the memory BIO.
+
+If size is not specified, read the entire buffer.
+If the return value is an empty bytes instance, this means either
+EOF or that no data is available. Use the "eof" property to
+distinguish between the two.
+[clinic start generated code]*/
+
+static PyObject *
+_ssl_MemoryBIO_read_impl(PySSLMemoryBIO *self, int len)
+/*[clinic end generated code: output=a657aa1e79cd01b3 input=574d7be06a902366]*/
+{
+ int avail, nbytes;
+ PyObject *result;
+
+ avail = BIO_ctrl_pending(self->bio);
+ if ((len < 0) || (len > avail))
+ len = avail;
+
+ result = PyBytes_FromStringAndSize(NULL, len);
+ if ((result == NULL) || (len == 0))
+ return result;
+
+ nbytes = BIO_read(self->bio, PyBytes_AS_STRING(result), len);
+ /* There should never be any short reads but check anyway. */
+ if ((nbytes < len) && (_PyBytes_Resize(&result, len) < 0)) {
+ Py_DECREF(result);
+ return NULL;
+ }
+
+ return result;
+}
+
+/*[clinic input]
+_ssl.MemoryBIO.write
+ b: Py_buffer
+ /
+
+Writes the bytes b into the memory BIO.
+
+Returns the number of bytes written.
+[clinic start generated code]*/
+
+static PyObject *
+_ssl_MemoryBIO_write_impl(PySSLMemoryBIO *self, Py_buffer *b)
+/*[clinic end generated code: output=156ec59110d75935 input=e45757b3e17c4808]*/
+{
+ int nbytes;
+
+ if (b->len > INT_MAX) {
+ PyErr_Format(PyExc_OverflowError,
+ "string longer than %d bytes", INT_MAX);
+ return NULL;
+ }
+
+ if (self->eof_written) {
+ PyErr_SetString(PySSLErrorObject,
+ "cannot write() after write_eof()");
+ return NULL;
+ }
+
+ nbytes = BIO_write(self->bio, b->buf, b->len);
+ if (nbytes < 0) {
+ _setSSLError(NULL, 0, __FILE__, __LINE__);
+ return NULL;
+ }
+
+ return PyLong_FromLong(nbytes);
+}
+
+/*[clinic input]
+_ssl.MemoryBIO.write_eof
+
+Write an EOF marker to the memory BIO.
+
+When all data has been read, the "eof" property will be True.
+[clinic start generated code]*/
+
+static PyObject *
+_ssl_MemoryBIO_write_eof_impl(PySSLMemoryBIO *self)
+/*[clinic end generated code: output=d4106276ccd1ed34 input=56a945f1d29e8bd6]*/
+{
+ self->eof_written = 1;
+ /* After an EOF is written, a zero return from read() should be a real EOF
+ * i.e. it should not be retried. Clear the SHOULD_RETRY flag. */
+ BIO_clear_retry_flags(self->bio);
+ BIO_set_mem_eof_return(self->bio, 0);
+
+ Py_RETURN_NONE;
+}
+
+static PyGetSetDef memory_bio_getsetlist[] = {
+ {"pending", (getter) memory_bio_get_pending, NULL,
+ PySSL_memory_bio_pending_doc},
+ {"eof", (getter) memory_bio_get_eof, NULL,
+ PySSL_memory_bio_eof_doc},
+ {NULL}, /* sentinel */
};
+static struct PyMethodDef memory_bio_methods[] = {
+ _SSL_MEMORYBIO_READ_METHODDEF
+ _SSL_MEMORYBIO_WRITE_METHODDEF
+ _SSL_MEMORYBIO_WRITE_EOF_METHODDEF
+ {NULL, NULL} /* sentinel */
+};
+static PyTypeObject PySSLMemoryBIO_Type = {
+ PyVarObject_HEAD_INIT(NULL, 0)
+ "_ssl.MemoryBIO", /*tp_name*/
+ sizeof(PySSLMemoryBIO), /*tp_basicsize*/
+ 0, /*tp_itemsize*/
+ (destructor)memory_bio_dealloc, /*tp_dealloc*/
+ 0, /*tp_print*/
+ 0, /*tp_getattr*/
+ 0, /*tp_setattr*/
+ 0, /*tp_reserved*/
+ 0, /*tp_repr*/
+ 0, /*tp_as_number*/
+ 0, /*tp_as_sequence*/
+ 0, /*tp_as_mapping*/
+ 0, /*tp_hash*/
+ 0, /*tp_call*/
+ 0, /*tp_str*/
+ 0, /*tp_getattro*/
+ 0, /*tp_setattro*/
+ 0, /*tp_as_buffer*/
+ Py_TPFLAGS_DEFAULT, /*tp_flags*/
+ 0, /*tp_doc*/
+ 0, /*tp_traverse*/
+ 0, /*tp_clear*/
+ 0, /*tp_richcompare*/
+ 0, /*tp_weaklistoffset*/
+ 0, /*tp_iter*/
+ 0, /*tp_iternext*/
+ memory_bio_methods, /*tp_methods*/
+ 0, /*tp_members*/
+ memory_bio_getsetlist, /*tp_getset*/
+ 0, /*tp_base*/
+ 0, /*tp_dict*/
+ 0, /*tp_descr_get*/
+ 0, /*tp_descr_set*/
+ 0, /*tp_dictoffset*/
+ 0, /*tp_init*/
+ 0, /*tp_alloc*/
+ _ssl_MemoryBIO, /*tp_new*/
+};
-#ifdef HAVE_OPENSSL_RAND
/* helper routines for seeding the SSL PRNG */
+/*[clinic input]
+_ssl.RAND_add
+ string as view: Py_buffer(accept={str, buffer})
+ entropy: double
+ /
+
+Mix string into the OpenSSL PRNG state.
+
+entropy (a float) is a lower bound on the entropy contained in
+string. See RFC 1750.
+[clinic start generated code]*/
+
static PyObject *
-PySSL_RAND_add(PyObject *self, PyObject *args)
+_ssl_RAND_add_impl(PyModuleDef *module, Py_buffer *view, double entropy)
+/*[clinic end generated code: output=0f8d5c8cce328958 input=580c85e6a3a4fe29]*/
{
- char *buf;
+ const char *buf;
Py_ssize_t len, written;
- double entropy;
- if (!PyArg_ParseTuple(args, "s#d:RAND_add", &buf, &len, &entropy))
- return NULL;
+ buf = (const char *)view->buf;
+ len = view->len;
do {
written = Py_MIN(len, INT_MAX);
RAND_add(buf, (int)written, entropy);
@@ -3237,12 +3827,6 @@ PySSL_RAND_add(PyObject *self, PyObject *args)
return Py_None;
}
-PyDoc_STRVAR(PySSL_RAND_add_doc,
-"RAND_add(string, entropy)\n\
-\n\
-Mix string into the OpenSSL PRNG state. entropy (a float) is a lower\n\
-bound on the entropy contained in string. See RFC 1750.");
-
static PyObject *
PySSL_RAND(int len, int pseudo)
{
@@ -3282,60 +3866,72 @@ PySSL_RAND(int len, int pseudo)
return NULL;
}
+/*[clinic input]
+_ssl.RAND_bytes
+ n: int
+ /
+
+Generate n cryptographically strong pseudo-random bytes.
+[clinic start generated code]*/
+
static PyObject *
-PySSL_RAND_bytes(PyObject *self, PyObject *args)
+_ssl_RAND_bytes_impl(PyModuleDef *module, int n)
+/*[clinic end generated code: output=7d8741bdc1d435f3 input=678ddf2872dfebfc]*/
{
- int len;
- if (!PyArg_ParseTuple(args, "i:RAND_bytes", &len))
- return NULL;
- return PySSL_RAND(len, 0);
+ return PySSL_RAND(n, 0);
}
-PyDoc_STRVAR(PySSL_RAND_bytes_doc,
-"RAND_bytes(n) -> bytes\n\
-\n\
-Generate n cryptographically strong pseudo-random bytes.");
+/*[clinic input]
+_ssl.RAND_pseudo_bytes
+ n: int
+ /
+
+Generate n pseudo-random bytes.
+
+Return a pair (bytes, is_cryptographic). is_cryptographic is True
+if the bytes generated are cryptographically strong.
+[clinic start generated code]*/
static PyObject *
-PySSL_RAND_pseudo_bytes(PyObject *self, PyObject *args)
+_ssl_RAND_pseudo_bytes_impl(PyModuleDef *module, int n)
+/*[clinic end generated code: output=dd673813107f3875 input=58312bd53f9bbdd0]*/
{
- int len;
- if (!PyArg_ParseTuple(args, "i:RAND_pseudo_bytes", &len))
- return NULL;
- return PySSL_RAND(len, 1);
+ return PySSL_RAND(n, 1);
}
-PyDoc_STRVAR(PySSL_RAND_pseudo_bytes_doc,
-"RAND_pseudo_bytes(n) -> (bytes, is_cryptographic)\n\
-\n\
-Generate n pseudo-random bytes. is_cryptographic is True if the bytes\
-generated are cryptographically strong.");
+/*[clinic input]
+_ssl.RAND_status
+
+Returns 1 if the OpenSSL PRNG has been seeded with enough data and 0 if not.
+
+It is necessary to seed the PRNG with RAND_add() on some platforms before
+using the ssl() function.
+[clinic start generated code]*/
static PyObject *
-PySSL_RAND_status(PyObject *self)
+_ssl_RAND_status_impl(PyModuleDef *module)
+/*[clinic end generated code: output=7f7ef57bc7dd1d1c input=8a774b02d1dc81f3]*/
{
return PyLong_FromLong(RAND_status());
}
-PyDoc_STRVAR(PySSL_RAND_status_doc,
-"RAND_status() -> 0 or 1\n\
-\n\
-Returns 1 if the OpenSSL PRNG has been seeded with enough data and 0 if not.\n\
-It is necessary to seed the PRNG with RAND_add() on some platforms before\n\
-using the ssl() function.");
-
#ifdef HAVE_RAND_EGD
-static PyObject *
-PySSL_RAND_egd(PyObject *self, PyObject *args)
-{
- PyObject *path;
- int bytes;
+/*[clinic input]
+_ssl.RAND_egd
+ path: object(converter="PyUnicode_FSConverter")
+ /
- if (!PyArg_ParseTuple(args, "O&:RAND_egd",
- PyUnicode_FSConverter, &path))
- return NULL;
+Queries the entropy gather daemon (EGD) on the socket named by 'path'.
+
+Returns number of bytes read. Raises SSLError if connection to EGD
+fails or if it does not provide enough data to seed PRNG.
+[clinic start generated code]*/
- bytes = RAND_egd(PyBytes_AsString(path));
+static PyObject *
+_ssl_RAND_egd_impl(PyModuleDef *module, PyObject *path)
+/*[clinic end generated code: output=8e728e501e28541b input=1aeb7eb948312195]*/
+{
+ int bytes = RAND_egd(PyBytes_AsString(path));
Py_DECREF(path);
if (bytes == -1) {
PyErr_SetString(PySSLErrorObject,
@@ -3345,27 +3941,21 @@ PySSL_RAND_egd(PyObject *self, PyObject *args)
}
return PyLong_FromLong(bytes);
}
-
-PyDoc_STRVAR(PySSL_RAND_egd_doc,
-"RAND_egd(path) -> bytes\n\
-\n\
-Queries the entropy gather daemon (EGD) on the socket named by 'path'.\n\
-Returns number of bytes read. Raises SSLError if connection to EGD\n\
-fails or if it does not provide enough data to seed PRNG.");
#endif /* HAVE_RAND_EGD */
-#endif /* HAVE_OPENSSL_RAND */
-PyDoc_STRVAR(PySSL_get_default_verify_paths_doc,
-"get_default_verify_paths() -> tuple\n\
-\n\
-Return search paths and environment vars that are used by SSLContext's\n\
-set_default_verify_paths() to load default CAs. The values are\n\
-'cert_file_env', 'cert_file', 'cert_dir_env', 'cert_dir'.");
+/*[clinic input]
+_ssl.get_default_verify_paths
+
+Return search paths and environment vars that are used by SSLContext's set_default_verify_paths() to load default CAs.
+
+The values are 'cert_file_env', 'cert_file', 'cert_dir_env', 'cert_dir'.
+[clinic start generated code]*/
static PyObject *
-PySSL_get_default_verify_paths(PyObject *self)
+_ssl_get_default_verify_paths_impl(PyModuleDef *module)
+/*[clinic end generated code: output=5a2820ce7e3304d3 input=5210c953d98c3eb5]*/
{
PyObject *ofile_env = NULL;
PyObject *ofile = NULL;
@@ -3424,26 +4014,24 @@ asn1obj2py(ASN1_OBJECT *obj)
}
}
-PyDoc_STRVAR(PySSL_txt2obj_doc,
-"txt2obj(txt, name=False) -> (nid, shortname, longname, oid)\n\
-\n\
-Lookup NID, short name, long name and OID of an ASN1_OBJECT. By default\n\
-objects are looked up by OID. With name=True short and long name are also\n\
-matched.");
+/*[clinic input]
+_ssl.txt2obj
+ txt: str
+ name: bool = False
-static PyObject*
-PySSL_txt2obj(PyObject *self, PyObject *args, PyObject *kwds)
+Lookup NID, short name, long name and OID of an ASN1_OBJECT.
+
+By default objects are looked up by OID. With name=True short and
+long name are also matched.
+[clinic start generated code]*/
+
+static PyObject *
+_ssl_txt2obj_impl(PyModuleDef *module, const char *txt, int name)
+/*[clinic end generated code: output=2ae2c30531b8809f input=1c1e7d0aa7c48602]*/
{
- char *kwlist[] = {"txt", "name", NULL};
PyObject *result = NULL;
- char *txt;
- int name = 0;
ASN1_OBJECT *obj;
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "s|p:txt2obj",
- kwlist, &txt, &name)) {
- return NULL;
- }
obj = OBJ_txt2obj(txt, name ? 0 : 1);
if (obj == NULL) {
PyErr_Format(PyExc_ValueError, "unknown object '%.100s'", txt);
@@ -3454,21 +4042,21 @@ PySSL_txt2obj(PyObject *self, PyObject *args, PyObject *kwds)
return result;
}
-PyDoc_STRVAR(PySSL_nid2obj_doc,
-"nid2obj(nid) -> (nid, shortname, longname, oid)\n\
-\n\
-Lookup NID, short name, long name and OID of an ASN1_OBJECT by NID.");
+/*[clinic input]
+_ssl.nid2obj
+ nid: int
+ /
-static PyObject*
-PySSL_nid2obj(PyObject *self, PyObject *args)
+Lookup NID, short name, long name and OID of an ASN1_OBJECT by NID.
+[clinic start generated code]*/
+
+static PyObject *
+_ssl_nid2obj_impl(PyModuleDef *module, int nid)
+/*[clinic end generated code: output=8db1df89e44badb8 input=51787a3bee7d8f98]*/
{
PyObject *result = NULL;
- int nid;
ASN1_OBJECT *obj;
- if (!PyArg_ParseTuple(args, "i:nid2obj", &nid)) {
- return NULL;
- }
if (nid < NID_undef) {
PyErr_SetString(PyExc_ValueError, "NID must be positive.");
return NULL;
@@ -3568,30 +4156,28 @@ parseKeyUsage(PCCERT_CONTEXT pCertCtx, DWORD flags)
return retval;
}
-PyDoc_STRVAR(PySSL_enum_certificates_doc,
-"enum_certificates(store_name) -> []\n\
-\n\
-Retrieve certificates from Windows' cert store. store_name may be one of\n\
-'CA', 'ROOT' or 'MY'. The system may provide more cert storages, too.\n\
-The function returns a list of (bytes, encoding_type, trust) tuples. The\n\
-encoding_type flag can be interpreted with X509_ASN_ENCODING or\n\
-PKCS_7_ASN_ENCODING. The trust setting is either a set of OIDs or the\n\
-boolean True.");
+/*[clinic input]
+_ssl.enum_certificates
+ store_name: str
+
+Retrieve certificates from Windows' cert store.
+
+store_name may be one of 'CA', 'ROOT' or 'MY'. The system may provide
+more cert storages, too. The function returns a list of (bytes,
+encoding_type, trust) tuples. The encoding_type flag can be interpreted
+with X509_ASN_ENCODING or PKCS_7_ASN_ENCODING. The trust setting is either
+a set of OIDs or the boolean True.
+[clinic start generated code]*/
static PyObject *
-PySSL_enum_certificates(PyObject *self, PyObject *args, PyObject *kwds)
+_ssl_enum_certificates_impl(PyModuleDef *module, const char *store_name)
+/*[clinic end generated code: output=cc4ebc10b8adacfc input=915f60d70461ea4e]*/
{
- char *kwlist[] = {"store_name", NULL};
- char *store_name;
HCERTSTORE hStore = NULL;
PCCERT_CONTEXT pCertCtx = NULL;
PyObject *keyusage = NULL, *cert = NULL, *enc = NULL, *tup = NULL;
PyObject *result = NULL;
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "s:enum_certificates",
- kwlist, &store_name)) {
- return NULL;
- }
result = PyList_New(0);
if (result == NULL) {
return NULL;
@@ -3657,29 +4243,27 @@ PySSL_enum_certificates(PyObject *self, PyObject *args, PyObject *kwds)
return result;
}
-PyDoc_STRVAR(PySSL_enum_crls_doc,
-"enum_crls(store_name) -> []\n\
-\n\
-Retrieve CRLs from Windows' cert store. store_name may be one of\n\
-'CA', 'ROOT' or 'MY'. The system may provide more cert storages, too.\n\
-The function returns a list of (bytes, encoding_type) tuples. The\n\
-encoding_type flag can be interpreted with X509_ASN_ENCODING or\n\
-PKCS_7_ASN_ENCODING.");
+/*[clinic input]
+_ssl.enum_crls
+ store_name: str
+
+Retrieve CRLs from Windows' cert store.
+
+store_name may be one of 'CA', 'ROOT' or 'MY'. The system may provide
+more cert storages, too. The function returns a list of (bytes,
+encoding_type) tuples. The encoding_type flag can be interpreted with
+X509_ASN_ENCODING or PKCS_7_ASN_ENCODING.
+[clinic start generated code]*/
static PyObject *
-PySSL_enum_crls(PyObject *self, PyObject *args, PyObject *kwds)
+_ssl_enum_crls_impl(PyModuleDef *module, const char *store_name)
+/*[clinic end generated code: output=763490a2aa1c50d5 input=a1f1d7629f1c5d3d]*/
{
- char *kwlist[] = {"store_name", NULL};
- char *store_name;
HCERTSTORE hStore = NULL;
PCCRL_CONTEXT pCrlCtx = NULL;
PyObject *crl = NULL, *enc = NULL, *tup = NULL;
PyObject *result = NULL;
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "s:enum_crls",
- kwlist, &store_name)) {
- return NULL;
- }
result = PyList_New(0);
if (result == NULL) {
return NULL;
@@ -3737,36 +4321,18 @@ PySSL_enum_crls(PyObject *self, PyObject *args, PyObject *kwds)
#endif /* _MSC_VER */
/* List of functions exported by this module. */
-
static PyMethodDef PySSL_methods[] = {
- {"_test_decode_cert", PySSL_test_decode_certificate,
- METH_VARARGS},
-#ifdef HAVE_OPENSSL_RAND
- {"RAND_add", PySSL_RAND_add, METH_VARARGS,
- PySSL_RAND_add_doc},
- {"RAND_bytes", PySSL_RAND_bytes, METH_VARARGS,
- PySSL_RAND_bytes_doc},
- {"RAND_pseudo_bytes", PySSL_RAND_pseudo_bytes, METH_VARARGS,
- PySSL_RAND_pseudo_bytes_doc},
-#ifdef HAVE_RAND_EGD
- {"RAND_egd", PySSL_RAND_egd, METH_VARARGS,
- PySSL_RAND_egd_doc},
-#endif
- {"RAND_status", (PyCFunction)PySSL_RAND_status, METH_NOARGS,
- PySSL_RAND_status_doc},
-#endif
- {"get_default_verify_paths", (PyCFunction)PySSL_get_default_verify_paths,
- METH_NOARGS, PySSL_get_default_verify_paths_doc},
-#ifdef _MSC_VER
- {"enum_certificates", (PyCFunction)PySSL_enum_certificates,
- METH_VARARGS | METH_KEYWORDS, PySSL_enum_certificates_doc},
- {"enum_crls", (PyCFunction)PySSL_enum_crls,
- METH_VARARGS | METH_KEYWORDS, PySSL_enum_crls_doc},
-#endif
- {"txt2obj", (PyCFunction)PySSL_txt2obj,
- METH_VARARGS | METH_KEYWORDS, PySSL_txt2obj_doc},
- {"nid2obj", (PyCFunction)PySSL_nid2obj,
- METH_VARARGS, PySSL_nid2obj_doc},
+ _SSL__TEST_DECODE_CERT_METHODDEF
+ _SSL_RAND_ADD_METHODDEF
+ _SSL_RAND_BYTES_METHODDEF
+ _SSL_RAND_PSEUDO_BYTES_METHODDEF
+ _SSL_RAND_EGD_METHODDEF
+ _SSL_RAND_STATUS_METHODDEF
+ _SSL_GET_DEFAULT_VERIFY_PATHS_METHODDEF
+ _SSL_ENUM_CERTIFICATES_METHODDEF
+ _SSL_ENUM_CRLS_METHODDEF
+ _SSL_TXT2OBJ_METHODDEF
+ _SSL_NID2OBJ_METHODDEF
{NULL, NULL} /* Sentinel */
};
@@ -3906,6 +4472,8 @@ PyInit__ssl(void)
return NULL;
if (PyType_Ready(&PySSLSocket_Type) < 0)
return NULL;
+ if (PyType_Ready(&PySSLMemoryBIO_Type) < 0)
+ return NULL;
m = PyModule_Create(&_sslmodule);
if (m == NULL)
@@ -3969,6 +4537,9 @@ PyInit__ssl(void)
if (PyDict_SetItemString(d, "_SSLSocket",
(PyObject *)&PySSLSocket_Type) != 0)
return NULL;
+ if (PyDict_SetItemString(d, "MemoryBIO",
+ (PyObject *)&PySSLMemoryBIO_Type) != 0)
+ return NULL;
PyModule_AddIntConstant(m, "SSL_ERROR_ZERO_RETURN",
PY_SSL_ERROR_ZERO_RETURN);
PyModule_AddIntConstant(m, "SSL_ERROR_WANT_READ",
@@ -4109,11 +4680,7 @@ PyInit__ssl(void)
Py_INCREF(r);
PyModule_AddObject(m, "HAS_SNI", r);
-#if HAVE_OPENSSL_FINISHED
r = Py_True;
-#else
- r = Py_False;
-#endif
Py_INCREF(r);
PyModule_AddObject(m, "HAS_TLS_UNIQUE", r);
@@ -4133,6 +4700,14 @@ PyInit__ssl(void)
Py_INCREF(r);
PyModule_AddObject(m, "HAS_NPN", r);
+#ifdef HAVE_ALPN
+ r = Py_True;
+#else
+ r = Py_False;
+#endif
+ Py_INCREF(r);
+ PyModule_AddObject(m, "HAS_ALPN", r);
+
/* Mappings for error codes */
err_codes_to_names = PyDict_New();
err_names_to_codes = PyDict_New();
diff --git a/Modules/_stat.c b/Modules/_stat.c
index a301fa8840..f6cb303500 100644
--- a/Modules/_stat.c
+++ b/Modules/_stat.c
@@ -27,9 +27,21 @@ extern "C" {
#endif /* HAVE_SYS_STAT_H */
#ifdef MS_WINDOWS
+#include <windows.h>
typedef unsigned short mode_t;
+
+/* FILE_ATTRIBUTE_INTEGRITY_STREAM and FILE_ATTRIBUTE_NO_SCRUB_DATA
+ are not present in VC2010, so define them manually */
+#ifndef FILE_ATTRIBUTE_INTEGRITY_STREAM
+# define FILE_ATTRIBUTE_INTEGRITY_STREAM 0x8000
+#endif
+
+#ifndef FILE_ATTRIBUTE_NO_SCRUB_DATA
+# define FILE_ATTRIBUTE_NO_SCRUB_DATA 0x20000
#endif
+#endif /* MS_WINDOWS */
+
/* From Python's stat.py */
#ifndef S_IMODE
# define S_IMODE 07777
@@ -473,6 +485,10 @@ ST_SIZE\n\
ST_ATIME\n\
ST_MTIME\n\
ST_CTIME\n\
+\n"
+
+"FILE_ATTRIBUTE_*: Windows file attribute constants\n\
+ (only present on Windows)\n\
");
@@ -555,6 +571,26 @@ PyInit__stat(void)
if (PyModule_AddIntConstant(m, "ST_MTIME", 8)) return NULL;
if (PyModule_AddIntConstant(m, "ST_CTIME", 9)) return NULL;
+#ifdef MS_WINDOWS
+ if (PyModule_AddIntMacro(m, FILE_ATTRIBUTE_ARCHIVE)) return NULL;
+ if (PyModule_AddIntMacro(m, FILE_ATTRIBUTE_COMPRESSED)) return NULL;
+ if (PyModule_AddIntMacro(m, FILE_ATTRIBUTE_DEVICE)) return NULL;
+ if (PyModule_AddIntMacro(m, FILE_ATTRIBUTE_DIRECTORY)) return NULL;
+ if (PyModule_AddIntMacro(m, FILE_ATTRIBUTE_ENCRYPTED)) return NULL;
+ if (PyModule_AddIntMacro(m, FILE_ATTRIBUTE_HIDDEN)) return NULL;
+ if (PyModule_AddIntMacro(m, FILE_ATTRIBUTE_INTEGRITY_STREAM)) return NULL;
+ if (PyModule_AddIntMacro(m, FILE_ATTRIBUTE_NORMAL)) return NULL;
+ if (PyModule_AddIntMacro(m, FILE_ATTRIBUTE_NOT_CONTENT_INDEXED)) return NULL;
+ if (PyModule_AddIntMacro(m, FILE_ATTRIBUTE_NO_SCRUB_DATA)) return NULL;
+ if (PyModule_AddIntMacro(m, FILE_ATTRIBUTE_OFFLINE)) return NULL;
+ if (PyModule_AddIntMacro(m, FILE_ATTRIBUTE_READONLY)) return NULL;
+ if (PyModule_AddIntMacro(m, FILE_ATTRIBUTE_REPARSE_POINT)) return NULL;
+ if (PyModule_AddIntMacro(m, FILE_ATTRIBUTE_SPARSE_FILE)) return NULL;
+ if (PyModule_AddIntMacro(m, FILE_ATTRIBUTE_SYSTEM)) return NULL;
+ if (PyModule_AddIntMacro(m, FILE_ATTRIBUTE_TEMPORARY)) return NULL;
+ if (PyModule_AddIntMacro(m, FILE_ATTRIBUTE_VIRTUAL)) return NULL;
+#endif
+
return m;
}
diff --git a/Modules/_struct.c b/Modules/_struct.c
index ad9959e1e5..068c5d1e1d 100644
--- a/Modules/_struct.c
+++ b/Modules/_struct.c
@@ -85,8 +85,6 @@ typedef struct { char c; _Bool x; } s_bool;
#define BOOL_ALIGN 0
#endif
-#define STRINGIFY(x) #x
-
#ifdef __powerc
#pragma options align=reset
#endif
@@ -546,8 +544,8 @@ np_short(char *p, PyObject *v, const formatdef *f)
return -1;
if (x < SHRT_MIN || x > SHRT_MAX){
PyErr_SetString(StructError,
- "short format requires " STRINGIFY(SHRT_MIN)
- " <= number <= " STRINGIFY(SHRT_MAX));
+ "short format requires " Py_STRINGIFY(SHRT_MIN)
+ " <= number <= " Py_STRINGIFY(SHRT_MAX));
return -1;
}
y = (short)x;
@@ -564,7 +562,8 @@ np_ushort(char *p, PyObject *v, const formatdef *f)
return -1;
if (x < 0 || x > USHRT_MAX){
PyErr_SetString(StructError,
- "ushort format requires 0 <= number <= " STRINGIFY(USHRT_MAX));
+ "ushort format requires 0 <= number <= "
+ Py_STRINGIFY(USHRT_MAX));
return -1;
}
y = (unsigned short)x;
@@ -1264,7 +1263,8 @@ prepare_s(PyStructObject *self)
const char *s;
const char *fmt;
char c;
- Py_ssize_t size, len, ncodes, num, itemsize;
+ Py_ssize_t size, len, num, itemsize;
+ size_t ncodes;
fmt = PyBytes_AS_STRING(self->s_format);
@@ -1320,7 +1320,7 @@ prepare_s(PyStructObject *self)
}
/* check for overflow */
- if ((ncodes + 1) > (PY_SSIZE_T_MAX / sizeof(formatcode))) {
+ if ((ncodes + 1) > ((size_t)PY_SSIZE_T_MAX / sizeof(formatcode))) {
PyErr_NoMemory();
return -1;
}
diff --git a/Modules/_testbuffer.c b/Modules/_testbuffer.c
index 176df7c5ba..43db8a8e53 100644
--- a/Modules/_testbuffer.c
+++ b/Modules/_testbuffer.c
@@ -190,7 +190,7 @@ ndbuf_delete(NDArrayObject *nd, ndbuf_t *elt)
elt->prev->next = elt->next;
else
nd->head = elt->next;
-
+
if (elt->next)
elt->next->prev = elt->prev;
@@ -767,7 +767,7 @@ out:
+-----------------+-----------+-------------+----------------+
| base.readonly | 0 | OK | OK |
+-----------------+-----------+-------------+----------------+
- | base.format | NULL | OK | OK |
+ | base.format | NULL | OK | OK |
+-----------------+-----------+-------------+----------------+
| base.ndim | 1 | 1 | OK |
+-----------------+-----------+-------------+----------------+
@@ -1510,6 +1510,19 @@ ndarray_getbuf(NDArrayObject *self, Py_buffer *view, int flags)
view->shape = NULL;
}
+ /* Ascertain that the new buffer has the same contiguity as the exporter */
+ if (ND_C_CONTIGUOUS(baseflags) != PyBuffer_IsContiguous(view, 'C') ||
+ /* skip cast to 1-d */
+ (view->format != NULL && view->shape != NULL &&
+ ND_FORTRAN_CONTIGUOUS(baseflags) != PyBuffer_IsContiguous(view, 'F')) ||
+ /* cast to 1-d */
+ (view->format == NULL && view->shape == NULL &&
+ !PyBuffer_IsContiguous(view, 'F'))) {
+ PyErr_SetString(PyExc_BufferError,
+ "ndarray: contiguity mismatch in getbuf()");
+ return -1;
+ }
+
view->obj = (PyObject *)self;
Py_INCREF(view->obj);
self->head->exports++;
@@ -2005,7 +2018,7 @@ ndarray_get_obj(NDArrayObject *self, void *closure)
{
Py_buffer *base = &self->head->base;
- if (base->obj == NULL) {
+ if (base->obj == NULL) {
Py_RETURN_NONE;
}
Py_INCREF(base->obj);
@@ -2206,6 +2219,8 @@ ndarray_add_suboffsets(PyObject *self, PyObject *dummy)
for (i = 0; i < base->ndim; i++)
base->suboffsets[i] = -1;
+ nd->head->flags &= ~(ND_C|ND_FORTRAN);
+
Py_RETURN_NONE;
}
@@ -2469,13 +2484,12 @@ arraycmp(const Py_ssize_t *a1, const Py_ssize_t *a2, const Py_ssize_t *shape,
{
Py_ssize_t i;
- if (ndim == 1 && shape && shape[0] == 1) {
- /* This is for comparing strides: For example, the array
- [175], shape=[1], strides=[-5] is considered contiguous. */
- return 1;
- }
for (i = 0; i < ndim; i++) {
+ if (shape && shape[i] <= 1) {
+ /* strides can differ if the dimension is less than 2 */
+ continue;
+ }
if (a1[i] != a2[i]) {
return 0;
}
@@ -2544,7 +2558,7 @@ result:
PyBuffer_Release(&v1);
PyBuffer_Release(&v2);
- ret = equal ? Py_True : Py_False;
+ ret = equal ? Py_True : Py_False;
Py_INCREF(ret);
return ret;
}
@@ -2555,30 +2569,35 @@ is_contiguous(PyObject *self, PyObject *args)
PyObject *obj;
PyObject *order;
PyObject *ret = NULL;
- Py_buffer view;
+ Py_buffer view, *base;
char ord;
if (!PyArg_ParseTuple(args, "OO", &obj, &order)) {
return NULL;
}
- if (PyObject_GetBuffer(obj, &view, PyBUF_FULL_RO) < 0) {
- PyErr_SetString(PyExc_TypeError,
- "is_contiguous: object does not implement the buffer "
- "protocol");
+ ord = get_ascii_order(order);
+ if (ord == CHAR_MAX) {
return NULL;
}
- ord = get_ascii_order(order);
- if (ord == CHAR_MAX) {
- goto release;
+ if (NDArray_Check(obj)) {
+ /* Skip the buffer protocol to check simple etc. buffers directly. */
+ base = &((NDArrayObject *)obj)->head->base;
+ ret = PyBuffer_IsContiguous(base, ord) ? Py_True : Py_False;
+ }
+ else {
+ if (PyObject_GetBuffer(obj, &view, PyBUF_FULL_RO) < 0) {
+ PyErr_SetString(PyExc_TypeError,
+ "is_contiguous: object does not implement the buffer "
+ "protocol");
+ return NULL;
+ }
+ ret = PyBuffer_IsContiguous(&view, ord) ? Py_True : Py_False;
+ PyBuffer_Release(&view);
}
- ret = PyBuffer_IsContiguous(&view, ord) ? Py_True : Py_False;
Py_INCREF(ret);
-
-release:
- PyBuffer_Release(&view);
return ret;
}
diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c
index 8ebe9709b7..ba0a24bd1d 100644
--- a/Modules/_testcapimodule.c
+++ b/Modules/_testcapimodule.c
@@ -12,6 +12,11 @@
#include "structmember.h"
#include "datetime.h"
#include "marshal.h"
+#include <signal.h>
+
+#ifdef MS_WINDOWS
+# include <winsock2.h> /* struct timeval */
+#endif
#ifdef WITH_THREAD
#include "pythread.h"
@@ -68,6 +73,10 @@ test_config(PyObject *self)
static PyObject*
test_sizeof_c_types(PyObject *self)
{
+#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 5)))
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#endif
#define CHECK_SIZEOF(TYPE, EXPECTED) \
if (EXPECTED != sizeof(TYPE)) { \
PyErr_Format(TestError, \
@@ -125,6 +134,9 @@ test_sizeof_c_types(PyObject *self)
#undef IS_SIGNED
#undef CHECK_SIGNESS
#undef CHECK_SIZEOF
+#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 5)))
+#pragma GCC diagnostic pop
+#endif
}
@@ -1719,7 +1731,7 @@ test_long_numbits(PyObject *self)
{-0xffffL, 16, -1},
{0xfffffffL, 28, 1},
{-0xfffffffL, 28, -1}};
- int i;
+ size_t i;
for (i = 0; i < Py_ARRAY_LENGTH(testcases); ++i) {
size_t nbits;
@@ -2480,7 +2492,7 @@ make_memoryview_from_NULL_pointer(PyObject *self)
return NULL;
return PyMemoryView_FromBuffer(&info);
}
-
+
static PyObject *
test_from_contiguous(PyObject* self, PyObject *noargs)
{
@@ -2531,6 +2543,58 @@ test_from_contiguous(PyObject* self, PyObject *noargs)
Py_RETURN_NONE;
}
+#if (defined(__linux__) || defined(__FreeBSD__)) && defined(__GNUC__)
+extern PyTypeObject _PyBytesIOBuffer_Type;
+
+static PyObject *
+test_pep3118_obsolete_write_locks(PyObject* self, PyObject *noargs)
+{
+ PyTypeObject *type = &_PyBytesIOBuffer_Type;
+ PyObject *b;
+ char *dummy[1];
+ int ret, match;
+
+ /* PyBuffer_FillInfo() */
+ ret = PyBuffer_FillInfo(NULL, NULL, dummy, 1, 0, PyBUF_SIMPLE);
+ match = PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_BufferError);
+ PyErr_Clear();
+ if (ret != -1 || match == 0)
+ goto error;
+
+ /* bytesiobuf_getbuffer() */
+ b = type->tp_alloc(type, 0);
+ if (b == NULL) {
+ return NULL;
+ }
+
+ ret = PyObject_GetBuffer(b, NULL, PyBUF_SIMPLE);
+ Py_DECREF(b);
+ match = PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_BufferError);
+ PyErr_Clear();
+ if (ret != -1 || match == 0)
+ goto error;
+
+ Py_RETURN_NONE;
+
+error:
+ PyErr_SetString(TestError,
+ "test_pep3118_obsolete_write_locks: failure");
+ return NULL;
+}
+#endif
+
+/* This tests functions that historically supported write locks. It is
+ wrong to call getbuffer() with view==NULL and a compliant getbufferproc
+ is entitled to segfault in that case. */
+static PyObject *
+getbuffer_with_null_view(PyObject* self, PyObject *obj)
+{
+ if (PyObject_GetBuffer(obj, NULL, PyBUF_SIMPLE) < 0)
+ return NULL;
+
+ Py_RETURN_NONE;
+}
+
/* Test that the fatal error from not having a current thread doesn't
cause an infinite loop. Run via Lib/test/test_capi.py */
static PyObject *
@@ -2582,7 +2646,7 @@ run_in_subinterp(PyObject *self, PyObject *args)
static int
check_time_rounding(int round)
{
- if (round != _PyTime_ROUND_DOWN && round != _PyTime_ROUND_UP) {
+ if (round != _PyTime_ROUND_FLOOR && round != _PyTime_ROUND_CEILING) {
PyErr_SetString(PyExc_ValueError, "invalid rounding");
return -1;
}
@@ -2715,6 +2779,21 @@ with_tp_del(PyObject *self, PyObject *args)
return obj;
}
+static PyMethodDef ml;
+
+static PyObject *
+create_cfunction(PyObject *self, PyObject *args)
+{
+ return PyCFunction_NewEx(&ml, self, NULL);
+}
+
+static PyMethodDef ml = {
+ "create_cfunction",
+ create_cfunction,
+ METH_NOARGS,
+ NULL
+};
+
static PyObject *
_test_incref(PyObject *ob)
{
@@ -2773,6 +2852,20 @@ test_pymem_alloc0(PyObject *self)
{
void *ptr;
+ ptr = PyMem_RawMalloc(0);
+ if (ptr == NULL) {
+ PyErr_SetString(PyExc_RuntimeError, "PyMem_RawMalloc(0) returns NULL");
+ return NULL;
+ }
+ PyMem_RawFree(ptr);
+
+ ptr = PyMem_RawCalloc(0, 0);
+ if (ptr == NULL) {
+ PyErr_SetString(PyExc_RuntimeError, "PyMem_RawCalloc(0, 0) returns NULL");
+ return NULL;
+ }
+ PyMem_RawFree(ptr);
+
ptr = PyMem_Malloc(0);
if (ptr == NULL) {
PyErr_SetString(PyExc_RuntimeError, "PyMem_Malloc(0) returns NULL");
@@ -2780,6 +2873,13 @@ test_pymem_alloc0(PyObject *self)
}
PyMem_Free(ptr);
+ ptr = PyMem_Calloc(0, 0);
+ if (ptr == NULL) {
+ PyErr_SetString(PyExc_RuntimeError, "PyMem_Calloc(0, 0) returns NULL");
+ return NULL;
+ }
+ PyMem_Free(ptr);
+
ptr = PyObject_Malloc(0);
if (ptr == NULL) {
PyErr_SetString(PyExc_RuntimeError, "PyObject_Malloc(0) returns NULL");
@@ -2787,13 +2887,22 @@ test_pymem_alloc0(PyObject *self)
}
PyObject_Free(ptr);
+ ptr = PyObject_Calloc(0, 0);
+ if (ptr == NULL) {
+ PyErr_SetString(PyExc_RuntimeError, "PyObject_Calloc(0, 0) returns NULL");
+ return NULL;
+ }
+ PyObject_Free(ptr);
+
Py_RETURN_NONE;
}
typedef struct {
- PyMemAllocator alloc;
+ PyMemAllocatorEx alloc;
size_t malloc_size;
+ size_t calloc_nelem;
+ size_t calloc_elsize;
void *realloc_ptr;
size_t realloc_new_size;
void *free_ptr;
@@ -2806,6 +2915,14 @@ static void* hook_malloc (void* ctx, size_t size)
return hook->alloc.malloc(hook->alloc.ctx, size);
}
+static void* hook_calloc (void* ctx, size_t nelem, size_t elsize)
+{
+ alloc_hook_t *hook = (alloc_hook_t *)ctx;
+ hook->calloc_nelem = nelem;
+ hook->calloc_elsize = elsize;
+ return hook->alloc.calloc(hook->alloc.ctx, nelem, elsize);
+}
+
static void* hook_realloc (void* ctx, void* ptr, size_t new_size)
{
alloc_hook_t *hook = (alloc_hook_t *)ctx;
@@ -2827,17 +2944,15 @@ test_setallocators(PyMemAllocatorDomain domain)
PyObject *res = NULL;
const char *error_msg;
alloc_hook_t hook;
- PyMemAllocator alloc;
- size_t size, size2;
+ PyMemAllocatorEx alloc;
+ size_t size, size2, nelem, elsize;
void *ptr, *ptr2;
- hook.malloc_size = 0;
- hook.realloc_ptr = NULL;
- hook.realloc_new_size = 0;
- hook.free_ptr = NULL;
+ memset(&hook, 0, sizeof(hook));
alloc.ctx = &hook;
alloc.malloc = &hook_malloc;
+ alloc.calloc = &hook_calloc;
alloc.realloc = &hook_realloc;
alloc.free = &hook_free;
PyMem_GetAllocator(domain, &hook.alloc);
@@ -2894,6 +3009,33 @@ test_setallocators(PyMemAllocatorDomain domain)
goto fail;
}
+ nelem = 2;
+ elsize = 5;
+ switch(domain)
+ {
+ case PYMEM_DOMAIN_RAW: ptr = PyMem_RawCalloc(nelem, elsize); break;
+ case PYMEM_DOMAIN_MEM: ptr = PyMem_Calloc(nelem, elsize); break;
+ case PYMEM_DOMAIN_OBJ: ptr = PyObject_Calloc(nelem, elsize); break;
+ default: ptr = NULL; break;
+ }
+
+ if (ptr == NULL) {
+ error_msg = "calloc failed";
+ goto fail;
+ }
+
+ if (hook.calloc_nelem != nelem || hook.calloc_elsize != elsize) {
+ error_msg = "calloc invalid nelem or elsize";
+ goto fail;
+ }
+
+ switch(domain)
+ {
+ case PYMEM_DOMAIN_RAW: PyMem_RawFree(ptr); break;
+ case PYMEM_DOMAIN_MEM: PyMem_Free(ptr); break;
+ case PYMEM_DOMAIN_OBJ: PyObject_Free(ptr); break;
+ }
+
Py_INCREF(Py_None);
res = Py_None;
goto finally;
@@ -2953,6 +3095,12 @@ PyDoc_STRVAR(docstring_with_signature,
"This docstring has a valid signature."
);
+PyDoc_STRVAR(docstring_with_signature_but_no_doc,
+"docstring_with_signature_but_no_doc($module, /, sig)\n"
+"--\n"
+"\n"
+);
+
PyDoc_STRVAR(docstring_with_signature_and_extra_newlines,
"docstring_with_signature_and_extra_newlines($module, /, parameter)\n"
"--\n"
@@ -3063,6 +3211,24 @@ exit:
}
#endif /* WITH_THREAD */
+static PyObject*
+test_raise_signal(PyObject* self, PyObject *args)
+{
+ int signum, err;
+
+ if (PyArg_ParseTuple(args, "i:raise_signal", &signum) < 0)
+ return NULL;
+
+ err = raise(signum);
+ if (err)
+ return PyErr_SetFromErrno(PyExc_OSError);
+
+ if (PyErr_CheckSignals() < 0)
+ return NULL;
+
+ Py_RETURN_NONE;
+}
+
/* marshal */
static PyObject*
@@ -3216,6 +3382,142 @@ pymarshal_read_object_from_file(PyObject* self, PyObject *args)
return Py_BuildValue("Nl", obj, pos);
}
+static PyObject*
+return_null_without_error(PyObject *self, PyObject *args)
+{
+ /* invalid call: return NULL without setting an error,
+ * _Py_CheckFunctionResult() must detect such bug at runtime. */
+ PyErr_Clear();
+ return NULL;
+}
+
+static PyObject*
+return_result_with_error(PyObject *self, PyObject *args)
+{
+ /* invalid call: return a result with an error set,
+ * _Py_CheckFunctionResult() must detect such bug at runtime. */
+ PyErr_SetNone(PyExc_ValueError);
+ Py_RETURN_NONE;
+}
+
+static PyObject *
+test_pytime_fromseconds(PyObject *self, PyObject *args)
+{
+ int seconds;
+ _PyTime_t ts;
+
+ if (!PyArg_ParseTuple(args, "i", &seconds))
+ return NULL;
+ ts = _PyTime_FromSeconds(seconds);
+ return _PyTime_AsNanosecondsObject(ts);
+}
+
+static PyObject *
+test_pytime_fromsecondsobject(PyObject *self, PyObject *args)
+{
+ PyObject *obj;
+ int round;
+ _PyTime_t ts;
+
+ if (!PyArg_ParseTuple(args, "Oi", &obj, &round))
+ return NULL;
+ if (check_time_rounding(round) < 0)
+ return NULL;
+ if (_PyTime_FromSecondsObject(&ts, obj, round) == -1)
+ return NULL;
+ return _PyTime_AsNanosecondsObject(ts);
+}
+
+static PyObject *
+test_pytime_assecondsdouble(PyObject *self, PyObject *args)
+{
+ PY_LONG_LONG ns;
+ _PyTime_t ts;
+ double d;
+
+ if (!PyArg_ParseTuple(args, "L", &ns))
+ return NULL;
+ ts = _PyTime_FromNanoseconds(ns);
+ d = _PyTime_AsSecondsDouble(ts);
+ return PyFloat_FromDouble(d);
+}
+
+static PyObject *
+test_PyTime_AsTimeval(PyObject *self, PyObject *args)
+{
+ PY_LONG_LONG ns;
+ int round;
+ _PyTime_t t;
+ struct timeval tv;
+ PyObject *seconds;
+
+ if (!PyArg_ParseTuple(args, "Li", &ns, &round))
+ return NULL;
+ if (check_time_rounding(round) < 0)
+ return NULL;
+ t = _PyTime_FromNanoseconds(ns);
+ if (_PyTime_AsTimeval(t, &tv, round) < 0)
+ return NULL;
+
+ seconds = PyLong_FromLong((PY_LONG_LONG)tv.tv_sec);
+ if (seconds == NULL)
+ return NULL;
+ return Py_BuildValue("Nl", seconds, tv.tv_usec);
+}
+
+#ifdef HAVE_CLOCK_GETTIME
+static PyObject *
+test_PyTime_AsTimespec(PyObject *self, PyObject *args)
+{
+ PY_LONG_LONG ns;
+ _PyTime_t t;
+ struct timespec ts;
+
+ if (!PyArg_ParseTuple(args, "L", &ns))
+ return NULL;
+ t = _PyTime_FromNanoseconds(ns);
+ if (_PyTime_AsTimespec(t, &ts) == -1)
+ return NULL;
+ return Py_BuildValue("Nl", _PyLong_FromTime_t(ts.tv_sec), ts.tv_nsec);
+}
+#endif
+
+static PyObject *
+test_PyTime_AsMilliseconds(PyObject *self, PyObject *args)
+{
+ PY_LONG_LONG ns;
+ int round;
+ _PyTime_t t, ms;
+
+ if (!PyArg_ParseTuple(args, "Li", &ns, &round))
+ return NULL;
+ if (check_time_rounding(round) < 0)
+ return NULL;
+ t = _PyTime_FromNanoseconds(ns);
+ ms = _PyTime_AsMilliseconds(t, round);
+ /* This conversion rely on the fact that _PyTime_t is a number of
+ nanoseconds */
+ return _PyTime_AsNanosecondsObject(ms);
+}
+
+static PyObject *
+test_PyTime_AsMicroseconds(PyObject *self, PyObject *args)
+{
+ PY_LONG_LONG ns;
+ int round;
+ _PyTime_t t, ms;
+
+ if (!PyArg_ParseTuple(args, "Li", &ns, &round))
+ return NULL;
+ if (check_time_rounding(round) < 0)
+ return NULL;
+ t = _PyTime_FromNanoseconds(ns);
+ ms = _PyTime_AsMicroseconds(t, round);
+ /* This conversion rely on the fact that _PyTime_t is a number of
+ nanoseconds */
+ return _PyTime_AsNanosecondsObject(ms);
+}
+
static PyMethodDef TestMethods[] = {
{"raise_exception", raise_exception, METH_VARARGS},
@@ -3249,6 +3551,10 @@ static PyMethodDef TestMethods[] = {
{"test_unicode_compare_with_ascii", (PyCFunction)test_unicode_compare_with_ascii, METH_NOARGS},
{"test_capsule", (PyCFunction)test_capsule, METH_NOARGS},
{"test_from_contiguous", (PyCFunction)test_from_contiguous, METH_NOARGS},
+#if (defined(__linux__) || defined(__FreeBSD__)) && defined(__GNUC__)
+ {"test_pep3118_obsolete_write_locks", (PyCFunction)test_pep3118_obsolete_write_locks, METH_NOARGS},
+#endif
+ {"getbuffer_with_null_view", getbuffer_with_null_view, METH_O},
{"getargs_tuple", getargs_tuple, METH_VARARGS},
{"getargs_keywords", (PyCFunction)getargs_keywords,
METH_VARARGS|METH_KEYWORDS},
@@ -3322,6 +3628,7 @@ static PyMethodDef TestMethods[] = {
{"pytime_object_to_timeval", test_pytime_object_to_timeval, METH_VARARGS},
{"pytime_object_to_timespec", test_pytime_object_to_timespec, METH_VARARGS},
{"with_tp_del", with_tp_del, METH_VARARGS},
+ {"create_cfunction", create_cfunction, METH_NOARGS},
{"test_pymem_alloc0",
(PyCFunction)test_pymem_alloc0, METH_NOARGS},
{"test_pymem_setrawallocators",
@@ -3347,12 +3654,17 @@ static PyMethodDef TestMethods[] = {
{"docstring_with_signature",
(PyCFunction)test_with_docstring, METH_NOARGS,
docstring_with_signature},
+ {"docstring_with_signature_but_no_doc",
+ (PyCFunction)test_with_docstring, METH_NOARGS,
+ docstring_with_signature_but_no_doc},
{"docstring_with_signature_and_extra_newlines",
(PyCFunction)test_with_docstring, METH_NOARGS,
docstring_with_signature_and_extra_newlines},
{"docstring_with_signature_with_defaults",
(PyCFunction)test_with_docstring, METH_NOARGS,
docstring_with_signature_with_defaults},
+ {"raise_signal",
+ (PyCFunction)test_raise_signal, METH_VARARGS},
#ifdef WITH_THREAD
{"call_in_temporary_c_thread", call_in_temporary_c_thread, METH_O,
PyDoc_STR("set_error_class(error_class) -> None")},
@@ -3369,6 +3681,19 @@ static PyMethodDef TestMethods[] = {
pymarshal_read_last_object_from_file, METH_VARARGS},
{"pymarshal_read_object_from_file",
pymarshal_read_object_from_file, METH_VARARGS},
+ {"return_null_without_error",
+ return_null_without_error, METH_NOARGS},
+ {"return_result_with_error",
+ return_result_with_error, METH_NOARGS},
+ {"PyTime_FromSeconds", test_pytime_fromseconds, METH_VARARGS},
+ {"PyTime_FromSecondsObject", test_pytime_fromsecondsobject, METH_VARARGS},
+ {"PyTime_AsSecondsDouble", test_pytime_assecondsdouble, METH_VARARGS},
+ {"PyTime_AsTimeval", test_PyTime_AsTimeval, METH_VARARGS},
+#ifdef HAVE_CLOCK_GETTIME
+ {"PyTime_AsTimespec", test_PyTime_AsTimespec, METH_VARARGS},
+#endif
+ {"PyTime_AsMilliseconds", test_PyTime_AsMilliseconds, METH_VARARGS},
+ {"PyTime_AsMicroseconds", test_PyTime_AsMicroseconds, METH_VARARGS},
{NULL, NULL} /* sentinel */
};
@@ -3528,6 +3853,201 @@ static PyTypeObject test_structmembersType = {
};
+typedef struct {
+ PyObject_HEAD
+} matmulObject;
+
+static PyObject *
+matmulType_matmul(PyObject *self, PyObject *other)
+{
+ return Py_BuildValue("(sOO)", "matmul", self, other);
+}
+
+static PyObject *
+matmulType_imatmul(PyObject *self, PyObject *other)
+{
+ return Py_BuildValue("(sOO)", "imatmul", self, other);
+}
+
+static void
+matmulType_dealloc(PyObject *self)
+{
+ Py_TYPE(self)->tp_free(self);
+}
+
+static PyNumberMethods matmulType_as_number = {
+ 0, /* nb_add */
+ 0, /* nb_subtract */
+ 0, /* nb_multiply */
+ 0, /* nb_remainde r*/
+ 0, /* nb_divmod */
+ 0, /* nb_power */
+ 0, /* nb_negative */
+ 0, /* tp_positive */
+ 0, /* tp_absolute */
+ 0, /* tp_bool */
+ 0, /* nb_invert */
+ 0, /* nb_lshift */
+ 0, /* nb_rshift */
+ 0, /* nb_and */
+ 0, /* nb_xor */
+ 0, /* nb_or */
+ 0, /* nb_int */
+ 0, /* nb_reserved */
+ 0, /* nb_float */
+ 0, /* nb_inplace_add */
+ 0, /* nb_inplace_subtract */
+ 0, /* nb_inplace_multiply */
+ 0, /* nb_inplace_remainder */
+ 0, /* nb_inplace_power */
+ 0, /* nb_inplace_lshift */
+ 0, /* nb_inplace_rshift */
+ 0, /* nb_inplace_and */
+ 0, /* nb_inplace_xor */
+ 0, /* nb_inplace_or */
+ 0, /* nb_floor_divide */
+ 0, /* nb_true_divide */
+ 0, /* nb_inplace_floor_divide */
+ 0, /* nb_inplace_true_divide */
+ 0, /* nb_index */
+ matmulType_matmul, /* nb_matrix_multiply */
+ matmulType_imatmul /* nb_matrix_inplace_multiply */
+};
+
+static PyTypeObject matmulType = {
+ PyVarObject_HEAD_INIT(NULL, 0)
+ "matmulType",
+ sizeof(matmulObject), /* tp_basicsize */
+ 0, /* tp_itemsize */
+ matmulType_dealloc, /* destructor tp_dealloc */
+ 0, /* tp_print */
+ 0, /* tp_getattr */
+ 0, /* tp_setattr */
+ 0, /* tp_reserved */
+ 0, /* tp_repr */
+ &matmulType_as_number, /* tp_as_number */
+ 0, /* tp_as_sequence */
+ 0, /* tp_as_mapping */
+ 0, /* tp_hash */
+ 0, /* tp_call */
+ 0, /* tp_str */
+ PyObject_GenericGetAttr, /* tp_getattro */
+ PyObject_GenericSetAttr, /* tp_setattro */
+ 0, /* tp_as_buffer */
+ 0, /* tp_flags */
+ "C level type with matrix operations defined",
+ 0, /* traverseproc tp_traverse */
+ 0, /* tp_clear */
+ 0, /* tp_richcompare */
+ 0, /* tp_weaklistoffset */
+ 0, /* tp_iter */
+ 0, /* tp_iternext */
+ 0, /* tp_methods */
+ 0, /* tp_members */
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ PyType_GenericNew, /* tp_new */
+ PyObject_Del, /* tp_free */
+};
+
+
+typedef struct {
+ PyObject_HEAD
+ PyObject *ao_iterator;
+} awaitObject;
+
+
+static PyObject *
+awaitObject_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
+{
+ PyObject *v;
+ awaitObject *ao;
+
+ if (!PyArg_UnpackTuple(args, "awaitObject", 1, 1, &v))
+ return NULL;
+
+ ao = (awaitObject *)type->tp_alloc(type, 0);
+ if (ao == NULL) {
+ return NULL;
+ }
+
+ Py_INCREF(v);
+ ao->ao_iterator = v;
+
+ return (PyObject *)ao;
+}
+
+
+static void
+awaitObject_dealloc(awaitObject *ao)
+{
+ Py_CLEAR(ao->ao_iterator);
+ Py_TYPE(ao)->tp_free(ao);
+}
+
+
+static PyObject *
+awaitObject_await(awaitObject *ao)
+{
+ Py_INCREF(ao->ao_iterator);
+ return ao->ao_iterator;
+}
+
+static PyAsyncMethods awaitType_as_async = {
+ (unaryfunc)awaitObject_await, /* am_await */
+ 0, /* am_aiter */
+ 0 /* am_anext */
+};
+
+
+static PyTypeObject awaitType = {
+ PyVarObject_HEAD_INIT(NULL, 0)
+ "awaitType",
+ sizeof(awaitObject), /* tp_basicsize */
+ 0, /* tp_itemsize */
+ (destructor)awaitObject_dealloc, /* destructor tp_dealloc */
+ 0, /* tp_print */
+ 0, /* tp_getattr */
+ 0, /* tp_setattr */
+ &awaitType_as_async, /* tp_as_async */
+ 0, /* tp_repr */
+ 0, /* tp_as_number */
+ 0, /* tp_as_sequence */
+ 0, /* tp_as_mapping */
+ 0, /* tp_hash */
+ 0, /* tp_call */
+ 0, /* tp_str */
+ PyObject_GenericGetAttr, /* tp_getattro */
+ PyObject_GenericSetAttr, /* tp_setattro */
+ 0, /* tp_as_buffer */
+ 0, /* tp_flags */
+ "C level type with tp_as_async",
+ 0, /* traverseproc tp_traverse */
+ 0, /* tp_clear */
+ 0, /* tp_richcompare */
+ 0, /* tp_weaklistoffset */
+ 0, /* tp_iter */
+ 0, /* tp_iternext */
+ 0, /* tp_methods */
+ 0, /* tp_members */
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ awaitObject_new, /* tp_new */
+ PyObject_Del, /* tp_free */
+};
+
static struct PyModuleDef _testcapimodule = {
PyModuleDef_HEAD_INIT,
@@ -3541,6 +4061,9 @@ static struct PyModuleDef _testcapimodule = {
NULL
};
+/* Per PEP 489, this module will not be converted to multi-phase initialization
+ */
+
PyMODINIT_FUNC
PyInit__testcapi(void)
{
@@ -3557,6 +4080,15 @@ PyInit__testcapi(void)
/* don't use a name starting with "test", since we don't want
test_capi to automatically call this */
PyModule_AddObject(m, "_test_structmembersType", (PyObject *)&test_structmembersType);
+ if (PyType_Ready(&matmulType) < 0)
+ return NULL;
+ Py_INCREF(&matmulType);
+ PyModule_AddObject(m, "matmulType", (PyObject *)&matmulType);
+
+ if (PyType_Ready(&awaitType) < 0)
+ return NULL;
+ Py_INCREF(&awaitType);
+ PyModule_AddObject(m, "awaitType", (PyObject *)&awaitType);
PyModule_AddObject(m, "CHAR_MAX", PyLong_FromLong(CHAR_MAX));
PyModule_AddObject(m, "CHAR_MIN", PyLong_FromLong(CHAR_MIN));
diff --git a/Modules/_testembed.c b/Modules/_testembed.c
deleted file mode 100644
index a21d2518be..0000000000
--- a/Modules/_testembed.c
+++ /dev/null
@@ -1,140 +0,0 @@
-#include <Python.h>
-#include <stdio.h>
-
-/*********************************************************
- * Embedded interpreter tests that need a custom exe
- *
- * Executed via 'EmbeddingTests' in Lib/test/test_capi.py
- *********************************************************/
-
-static void _testembed_Py_Initialize(void)
-{
- /* HACK: the "./" at front avoids a search along the PATH in
- Modules/getpath.c */
- Py_SetProgramName(L"./_testembed");
- Py_Initialize();
-}
-
-
-/*****************************************************
- * Test repeated initalisation and subinterpreters
- *****************************************************/
-
-static void print_subinterp(void)
-{
- /* Just output some debug stuff */
- PyThreadState *ts = PyThreadState_Get();
- printf("interp %p, thread state %p: ", ts->interp, ts);
- fflush(stdout);
- PyRun_SimpleString(
- "import sys;"
- "print('id(modules) =', id(sys.modules));"
- "sys.stdout.flush()"
- );
-}
-
-static void test_repeated_init_and_subinterpreters(void)
-{
- PyThreadState *mainstate, *substate;
-#ifdef WITH_THREAD
- PyGILState_STATE gilstate;
-#endif
- int i, j;
-
- for (i=0; i<3; i++) {
- printf("--- Pass %d ---\n", i);
- _testembed_Py_Initialize();
- mainstate = PyThreadState_Get();
-
-#ifdef WITH_THREAD
- PyEval_InitThreads();
- PyEval_ReleaseThread(mainstate);
-
- gilstate = PyGILState_Ensure();
-#endif
- print_subinterp();
- PyThreadState_Swap(NULL);
-
- for (j=0; j<3; j++) {
- substate = Py_NewInterpreter();
- print_subinterp();
- Py_EndInterpreter(substate);
- }
-
- PyThreadState_Swap(mainstate);
- print_subinterp();
-#ifdef WITH_THREAD
- PyGILState_Release(gilstate);
-#endif
-
- PyEval_RestoreThread(mainstate);
- Py_Finalize();
- }
-}
-
-/*****************************************************
- * Test forcing a particular IO encoding
- *****************************************************/
-
-static void check_stdio_details(const char *encoding, const char * errors)
-{
- /* Output info for the test case to check */
- if (encoding) {
- printf("Expected encoding: %s\n", encoding);
- } else {
- printf("Expected encoding: default\n");
- }
- if (errors) {
- printf("Expected errors: %s\n", errors);
- } else {
- printf("Expected errors: default\n");
- }
- fflush(stdout);
- /* Force the given IO encoding */
- Py_SetStandardStreamEncoding(encoding, errors);
- _testembed_Py_Initialize();
- PyRun_SimpleString(
- "import sys;"
- "print('stdin: {0.encoding}:{0.errors}'.format(sys.stdin));"
- "print('stdout: {0.encoding}:{0.errors}'.format(sys.stdout));"
- "print('stderr: {0.encoding}:{0.errors}'.format(sys.stderr));"
- "sys.stdout.flush()"
- );
- Py_Finalize();
-}
-
-static void test_forced_io_encoding(void)
-{
- /* Check various combinations */
- printf("--- Use defaults ---\n");
- check_stdio_details(NULL, NULL);
- printf("--- Set errors only ---\n");
- check_stdio_details(NULL, "surrogateescape");
- printf("--- Set encoding only ---\n");
- check_stdio_details("latin-1", NULL);
- printf("--- Set encoding and errors ---\n");
- check_stdio_details("latin-1", "surrogateescape");
-
- /* Check calling after initialization fails */
- Py_Initialize();
-
- if (Py_SetStandardStreamEncoding(NULL, NULL) == 0) {
- printf("Unexpected success calling Py_SetStandardStreamEncoding");
- }
- Py_Finalize();
-}
-
-/* Different embedding tests */
-int main(int argc, char *argv[])
-{
-
- /* TODO: Check the argument string to allow for more test cases */
- if (argc > 1) {
- /* For now: assume "forced_io_encoding */
- test_forced_io_encoding();
- } else {
- /* Run the original embedding test case by default */
- test_repeated_init_and_subinterpreters();
- }
- return 0;
-}
diff --git a/Modules/_testmultiphase.c b/Modules/_testmultiphase.c
new file mode 100644
index 0000000000..2005205d33
--- /dev/null
+++ b/Modules/_testmultiphase.c
@@ -0,0 +1,594 @@
+
+/* Testing module for multi-phase initialization of extension modules (PEP 489)
+ */
+
+#include "Python.h"
+
+/* Example objects */
+typedef struct {
+ PyObject_HEAD
+ PyObject *x_attr; /* Attributes dictionary */
+} ExampleObject;
+
+/* Example methods */
+
+static int
+Example_traverse(ExampleObject *self, visitproc visit, void *arg)
+{
+ Py_VISIT(self->x_attr);
+ return 0;
+}
+
+static int
+Example_finalize(ExampleObject *self)
+{
+ Py_CLEAR(self->x_attr);
+ return 0;
+}
+
+static PyObject *
+Example_demo(ExampleObject *self, PyObject *args)
+{
+ PyObject *o = NULL;
+ if (!PyArg_ParseTuple(args, "|O:demo", &o))
+ return NULL;
+ if (o != NULL && PyUnicode_Check(o)) {
+ Py_INCREF(o);
+ return o;
+ }
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+
+
+static PyMethodDef Example_methods[] = {
+ {"demo", (PyCFunction)Example_demo, METH_VARARGS,
+ PyDoc_STR("demo() -> None")},
+ {NULL, NULL} /* sentinel */
+};
+
+static PyObject *
+Example_getattro(ExampleObject *self, PyObject *name)
+{
+ if (self->x_attr != NULL) {
+ PyObject *v = PyDict_GetItem(self->x_attr, name);
+ if (v != NULL) {
+ Py_INCREF(v);
+ return v;
+ }
+ }
+ return PyObject_GenericGetAttr((PyObject *)self, name);
+}
+
+static int
+Example_setattr(ExampleObject *self, char *name, PyObject *v)
+{
+ if (self->x_attr == NULL) {
+ self->x_attr = PyDict_New();
+ if (self->x_attr == NULL)
+ return -1;
+ }
+ if (v == NULL) {
+ int rv = PyDict_DelItemString(self->x_attr, name);
+ if (rv < 0)
+ PyErr_SetString(PyExc_AttributeError,
+ "delete non-existing Example attribute");
+ return rv;
+ }
+ else
+ return PyDict_SetItemString(self->x_attr, name, v);
+}
+
+static PyType_Slot Example_Type_slots[] = {
+ {Py_tp_doc, "The Example type"},
+ {Py_tp_finalize, Example_finalize},
+ {Py_tp_traverse, Example_traverse},
+ {Py_tp_getattro, Example_getattro},
+ {Py_tp_setattr, Example_setattr},
+ {Py_tp_methods, Example_methods},
+ {0, 0},
+};
+
+static PyType_Spec Example_Type_spec = {
+ "_testimportexec.Example",
+ sizeof(ExampleObject),
+ 0,
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_HAVE_FINALIZE,
+ Example_Type_slots
+};
+
+/* Function of two integers returning integer */
+
+PyDoc_STRVAR(testexport_foo_doc,
+"foo(i,j)\n\
+\n\
+Return the sum of i and j.");
+
+static PyObject *
+testexport_foo(PyObject *self, PyObject *args)
+{
+ long i, j;
+ long res;
+ if (!PyArg_ParseTuple(args, "ll:foo", &i, &j))
+ return NULL;
+ res = i + j;
+ return PyLong_FromLong(res);
+}
+
+/* Test that PyState registration fails */
+
+PyDoc_STRVAR(call_state_registration_func_doc,
+"register_state(0): call PyState_FindModule()\n\
+register_state(1): call PyState_AddModule()\n\
+register_state(2): call PyState_RemoveModule()");
+
+static PyObject *
+call_state_registration_func(PyObject *mod, PyObject *args)
+{
+ int i, ret;
+ PyModuleDef *def = PyModule_GetDef(mod);
+ if (def == NULL) {
+ return NULL;
+ }
+ if (!PyArg_ParseTuple(args, "i:call_state_registration_func", &i))
+ return NULL;
+ switch (i) {
+ case 0:
+ mod = PyState_FindModule(def);
+ if (mod == NULL) {
+ Py_RETURN_NONE;
+ }
+ return mod;
+ case 1:
+ ret = PyState_AddModule(mod, def);
+ if (ret != 0) {
+ return NULL;
+ }
+ break;
+ case 2:
+ ret = PyState_RemoveModule(def);
+ if (ret != 0) {
+ return NULL;
+ }
+ break;
+ }
+ Py_RETURN_NONE;
+}
+
+
+static PyType_Slot Str_Type_slots[] = {
+ {Py_tp_base, NULL}, /* filled out in module exec function */
+ {0, 0},
+};
+
+static PyType_Spec Str_Type_spec = {
+ "_testimportexec.Str",
+ 0,
+ 0,
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
+ Str_Type_slots
+};
+
+static PyMethodDef testexport_methods[] = {
+ {"foo", testexport_foo, METH_VARARGS,
+ testexport_foo_doc},
+ {"call_state_registration_func", call_state_registration_func,
+ METH_VARARGS, call_state_registration_func_doc},
+ {NULL, NULL} /* sentinel */
+};
+
+static int execfunc(PyObject *m)
+{
+ PyObject *temp = NULL;
+
+ /* Due to cross platform compiler issues the slots must be filled
+ * here. It's required for portability to Windows without requiring
+ * C++. */
+ Str_Type_slots[0].pfunc = &PyUnicode_Type;
+
+ /* Add a custom type */
+ temp = PyType_FromSpec(&Example_Type_spec);
+ if (temp == NULL)
+ goto fail;
+ if (PyModule_AddObject(m, "Example", temp) != 0)
+ goto fail;
+
+ /* Add an exception type */
+ temp = PyErr_NewException("_testimportexec.error", NULL, NULL);
+ if (temp == NULL)
+ goto fail;
+ if (PyModule_AddObject(m, "error", temp) != 0)
+ goto fail;
+
+ /* Add Str */
+ temp = PyType_FromSpec(&Str_Type_spec);
+ if (temp == NULL)
+ goto fail;
+ if (PyModule_AddObject(m, "Str", temp) != 0)
+ goto fail;
+
+ if (PyModule_AddIntConstant(m, "int_const", 1969) != 0)
+ goto fail;
+
+ if (PyModule_AddStringConstant(m, "str_const", "something different") != 0)
+ goto fail;
+
+ return 0;
+ fail:
+ return -1;
+}
+
+/* Helper for module definitions; there'll be a lot of them */
+#define TEST_MODULE_DEF(name, slots, methods) { \
+ PyModuleDef_HEAD_INIT, /* m_base */ \
+ name, /* m_name */ \
+ PyDoc_STR("Test module " name), /* m_doc */ \
+ 0, /* m_size */ \
+ methods, /* m_methods */ \
+ slots, /* m_slots */ \
+ NULL, /* m_traverse */ \
+ NULL, /* m_clear */ \
+ NULL, /* m_free */ \
+}
+
+PyModuleDef_Slot main_slots[] = {
+ {Py_mod_exec, execfunc},
+ {0, NULL},
+};
+
+static PyModuleDef main_def = TEST_MODULE_DEF("main", main_slots, testexport_methods);
+
+PyMODINIT_FUNC
+PyInit__testmultiphase(PyObject *spec)
+{
+ return PyModuleDef_Init(&main_def);
+}
+
+
+/**** Importing a non-module object ****/
+
+static PyModuleDef def_nonmodule;
+
+/* Create a SimpleNamespace(three=3) */
+static PyObject*
+createfunc_nonmodule(PyObject *spec, PyModuleDef *def)
+{
+ PyObject *dct, *ns, *three;
+
+ if (def != &def_nonmodule) {
+ PyErr_SetString(PyExc_SystemError, "def does not match");
+ return NULL;
+ }
+
+ dct = PyDict_New();
+ if (dct == NULL)
+ return NULL;
+
+ three = PyLong_FromLong(3);
+ if (three == NULL) {
+ Py_DECREF(dct);
+ return NULL;
+ }
+ PyDict_SetItemString(dct, "three", three);
+ Py_DECREF(three);
+
+ ns = _PyNamespace_New(dct);
+ Py_DECREF(dct);
+ return ns;
+}
+
+static PyModuleDef_Slot slots_create_nonmodule[] = {
+ {Py_mod_create, createfunc_nonmodule},
+ {0, NULL},
+};
+
+static PyModuleDef def_nonmodule = TEST_MODULE_DEF(
+ "_testmultiphase_nonmodule", slots_create_nonmodule, NULL);
+
+PyMODINIT_FUNC
+PyInit__testmultiphase_nonmodule(PyObject *spec)
+{
+ return PyModuleDef_Init(&def_nonmodule);
+}
+
+/**** Non-ASCII-named modules ****/
+
+static PyModuleDef def_nonascii_latin = { \
+ PyModuleDef_HEAD_INIT, /* m_base */
+ "_testmultiphase_nonascii_latin", /* m_name */
+ PyDoc_STR("Module named in Czech"), /* m_doc */
+ 0, /* m_size */
+ NULL, /* m_methods */
+ NULL, /* m_slots */
+ NULL, /* m_traverse */
+ NULL, /* m_clear */
+ NULL, /* m_free */
+};
+
+PyMODINIT_FUNC
+PyInitU__testmultiphase_zkouka_naten_evc07gi8e(PyObject *spec)
+{
+ return PyModuleDef_Init(&def_nonascii_latin);
+}
+
+static PyModuleDef def_nonascii_kana = { \
+ PyModuleDef_HEAD_INIT, /* m_base */
+ "_testmultiphase_nonascii_kana", /* m_name */
+ PyDoc_STR("Module named in Japanese"), /* m_doc */
+ 0, /* m_size */
+ NULL, /* m_methods */
+ NULL, /* m_slots */
+ NULL, /* m_traverse */
+ NULL, /* m_clear */
+ NULL, /* m_free */
+};
+
+PyMODINIT_FUNC
+PyInitU_eckzbwbhc6jpgzcx415x(PyObject *spec)
+{
+ return PyModuleDef_Init(&def_nonascii_kana);
+}
+
+/*** Module with a single-character name ***/
+
+PyMODINIT_FUNC
+PyInit_x(PyObject *spec)
+{
+ return PyModuleDef_Init(&main_def);
+}
+
+/**** Testing NULL slots ****/
+
+static PyModuleDef null_slots_def = TEST_MODULE_DEF(
+ "_testmultiphase_null_slots", NULL, NULL);
+
+PyMODINIT_FUNC
+PyInit__testmultiphase_null_slots(PyObject *spec)
+{
+ return PyModuleDef_Init(&null_slots_def);
+}
+
+/**** Problematic modules ****/
+
+static PyModuleDef_Slot slots_bad_large[] = {
+ {_Py_mod_LAST_SLOT + 1, NULL},
+ {0, NULL},
+};
+
+static PyModuleDef def_bad_large = TEST_MODULE_DEF(
+ "_testmultiphase_bad_slot_large", slots_bad_large, NULL);
+
+PyMODINIT_FUNC
+PyInit__testmultiphase_bad_slot_large(PyObject *spec)
+{
+ return PyModuleDef_Init(&def_bad_large);
+}
+
+static PyModuleDef_Slot slots_bad_negative[] = {
+ {-1, NULL},
+ {0, NULL},
+};
+
+static PyModuleDef def_bad_negative = TEST_MODULE_DEF(
+ "_testmultiphase_bad_slot_negative", slots_bad_negative, NULL);
+
+PyMODINIT_FUNC
+PyInit__testmultiphase_bad_slot_negative(PyObject *spec)
+{
+ return PyModuleDef_Init(&def_bad_negative);
+}
+
+static PyModuleDef def_create_int_with_state = { \
+ PyModuleDef_HEAD_INIT, /* m_base */
+ "create_with_state", /* m_name */
+ PyDoc_STR("Not a PyModuleObject object, but requests per-module state"),
+ 10, /* m_size */
+ NULL, /* m_methods */
+ slots_create_nonmodule, /* m_slots */
+ NULL, /* m_traverse */
+ NULL, /* m_clear */
+ NULL, /* m_free */
+};
+
+PyMODINIT_FUNC
+PyInit__testmultiphase_create_int_with_state(PyObject *spec)
+{
+ return PyModuleDef_Init(&def_create_int_with_state);
+}
+
+
+static PyModuleDef def_negative_size = { \
+ PyModuleDef_HEAD_INIT, /* m_base */
+ "negative_size", /* m_name */
+ PyDoc_STR("PyModuleDef with negative m_size"),
+ -1, /* m_size */
+ NULL, /* m_methods */
+ slots_create_nonmodule, /* m_slots */
+ NULL, /* m_traverse */
+ NULL, /* m_clear */
+ NULL, /* m_free */
+};
+
+PyMODINIT_FUNC
+PyInit__testmultiphase_negative_size(PyObject *spec)
+{
+ return PyModuleDef_Init(&def_negative_size);
+}
+
+
+static PyModuleDef uninitialized_def = TEST_MODULE_DEF("main", main_slots, testexport_methods);
+
+PyMODINIT_FUNC
+PyInit__testmultiphase_export_uninitialized(PyObject *spec)
+{
+ return (PyObject*) &uninitialized_def;
+}
+
+PyMODINIT_FUNC
+PyInit__testmultiphase_export_null(PyObject *spec)
+{
+ return NULL;
+}
+
+PyMODINIT_FUNC
+PyInit__testmultiphase_export_raise(PyObject *spec)
+{
+ PyErr_SetString(PyExc_SystemError, "bad export function");
+ return NULL;
+}
+
+PyMODINIT_FUNC
+PyInit__testmultiphase_export_unreported_exception(PyObject *spec)
+{
+ PyErr_SetString(PyExc_SystemError, "bad export function");
+ return PyModuleDef_Init(&main_def);
+}
+
+static PyObject*
+createfunc_null(PyObject *spec, PyModuleDef *def)
+{
+ return NULL;
+}
+
+PyModuleDef_Slot slots_create_null[] = {
+ {Py_mod_create, createfunc_null},
+ {0, NULL},
+};
+
+static PyModuleDef def_create_null = TEST_MODULE_DEF(
+ "_testmultiphase_create_null", slots_create_null, NULL);
+
+PyMODINIT_FUNC
+PyInit__testmultiphase_create_null(PyObject *spec)
+{
+ return PyModuleDef_Init(&def_create_null);
+}
+
+static PyObject*
+createfunc_raise(PyObject *spec, PyModuleDef *def)
+{
+ PyErr_SetString(PyExc_SystemError, "bad create function");
+ return NULL;
+}
+
+static PyModuleDef_Slot slots_create_raise[] = {
+ {Py_mod_create, createfunc_raise},
+ {0, NULL},
+};
+
+static PyModuleDef def_create_raise = TEST_MODULE_DEF(
+ "_testmultiphase_create_null", slots_create_raise, NULL);
+
+PyMODINIT_FUNC
+PyInit__testmultiphase_create_raise(PyObject *spec)
+{
+ return PyModuleDef_Init(&def_create_raise);
+}
+
+static PyObject*
+createfunc_unreported_exception(PyObject *spec, PyModuleDef *def)
+{
+ PyErr_SetString(PyExc_SystemError, "bad create function");
+ return PyModule_New("foo");
+}
+
+static PyModuleDef_Slot slots_create_unreported_exception[] = {
+ {Py_mod_create, createfunc_unreported_exception},
+ {0, NULL},
+};
+
+static PyModuleDef def_create_unreported_exception = TEST_MODULE_DEF(
+ "_testmultiphase_create_unreported_exception", slots_create_unreported_exception, NULL);
+
+PyMODINIT_FUNC
+PyInit__testmultiphase_create_unreported_exception(PyObject *spec)
+{
+ return PyModuleDef_Init(&def_create_unreported_exception);
+}
+
+static PyModuleDef_Slot slots_nonmodule_with_exec_slots[] = {
+ {Py_mod_create, createfunc_nonmodule},
+ {Py_mod_exec, execfunc},
+ {0, NULL},
+};
+
+static PyModuleDef def_nonmodule_with_exec_slots = TEST_MODULE_DEF(
+ "_testmultiphase_nonmodule_with_exec_slots", slots_nonmodule_with_exec_slots, NULL);
+
+PyMODINIT_FUNC
+PyInit__testmultiphase_nonmodule_with_exec_slots(PyObject *spec)
+{
+ return PyModuleDef_Init(&def_nonmodule_with_exec_slots);
+}
+
+static int
+execfunc_err(PyObject *mod)
+{
+ return -1;
+}
+
+static PyModuleDef_Slot slots_exec_err[] = {
+ {Py_mod_exec, execfunc_err},
+ {0, NULL},
+};
+
+static PyModuleDef def_exec_err = TEST_MODULE_DEF(
+ "_testmultiphase_exec_err", slots_exec_err, NULL);
+
+PyMODINIT_FUNC
+PyInit__testmultiphase_exec_err(PyObject *spec)
+{
+ return PyModuleDef_Init(&def_exec_err);
+}
+
+static int
+execfunc_raise(PyObject *spec)
+{
+ PyErr_SetString(PyExc_SystemError, "bad exec function");
+ return -1;
+}
+
+static PyModuleDef_Slot slots_exec_raise[] = {
+ {Py_mod_exec, execfunc_raise},
+ {0, NULL},
+};
+
+static PyModuleDef def_exec_raise = TEST_MODULE_DEF(
+ "_testmultiphase_exec_raise", slots_exec_raise, NULL);
+
+PyMODINIT_FUNC
+PyInit__testmultiphase_exec_raise(PyObject *mod)
+{
+ return PyModuleDef_Init(&def_exec_raise);
+}
+
+static int
+execfunc_unreported_exception(PyObject *mod)
+{
+ PyErr_SetString(PyExc_SystemError, "bad exec function");
+ return 0;
+}
+
+static PyModuleDef_Slot slots_exec_unreported_exception[] = {
+ {Py_mod_exec, execfunc_unreported_exception},
+ {0, NULL},
+};
+
+static PyModuleDef def_exec_unreported_exception = TEST_MODULE_DEF(
+ "_testmultiphase_exec_unreported_exception", slots_exec_unreported_exception, NULL);
+
+PyMODINIT_FUNC
+PyInit__testmultiphase_exec_unreported_exception(PyObject *spec)
+{
+ return PyModuleDef_Init(&def_exec_unreported_exception);
+}
+
+/*** Helper for imp test ***/
+
+static PyModuleDef imp_dummy_def = TEST_MODULE_DEF("imp_dummy", main_slots, testexport_methods);
+
+PyMODINIT_FUNC
+PyInit_imp_dummy(PyObject *spec)
+{
+ return PyModuleDef_Init(&imp_dummy_def);
+}
diff --git a/Modules/_threadmodule.c b/Modules/_threadmodule.c
index f80f76a638..bcb3aeeb22 100644
--- a/Modules/_threadmodule.c
+++ b/Modules/_threadmodule.c
@@ -49,21 +49,18 @@ lock_dealloc(lockobject *self)
* timeout.
*/
static PyLockStatus
-acquire_timed(PyThread_type_lock lock, PY_TIMEOUT_T microseconds)
+acquire_timed(PyThread_type_lock lock, _PyTime_t timeout)
{
PyLockStatus r;
- _PyTime_timeval curtime;
- _PyTime_timeval endtime;
-
-
- if (microseconds > 0) {
- _PyTime_gettimeofday(&endtime);
- endtime.tv_sec += microseconds / (1000 * 1000);
- endtime.tv_usec += microseconds % (1000 * 1000);
- }
+ _PyTime_t endtime = 0;
+ _PyTime_t microseconds;
+ if (timeout > 0)
+ endtime = _PyTime_GetMonotonicClock() + timeout;
do {
+ microseconds = _PyTime_AsMicroseconds(timeout, _PyTime_ROUND_CEILING);
+
/* first a simple non-blocking try without releasing the GIL */
r = PyThread_acquire_lock_timed(lock, 0, 0);
if (r == PY_LOCK_FAILURE && microseconds != 0) {
@@ -82,14 +79,12 @@ acquire_timed(PyThread_type_lock lock, PY_TIMEOUT_T microseconds)
/* If we're using a timeout, recompute the timeout after processing
* signals, since those can take time. */
- if (microseconds > 0) {
- _PyTime_gettimeofday(&curtime);
- microseconds = ((endtime.tv_sec - curtime.tv_sec) * 1000000 +
- (endtime.tv_usec - curtime.tv_usec));
+ if (timeout > 0) {
+ timeout = endtime - _PyTime_GetMonotonicClock();
/* Check for negative values, since those mean block forever.
*/
- if (microseconds <= 0) {
+ if (timeout < 0) {
r = PY_LOCK_FAILURE;
}
}
@@ -99,44 +94,61 @@ acquire_timed(PyThread_type_lock lock, PY_TIMEOUT_T microseconds)
return r;
}
-static PyObject *
-lock_PyThread_acquire_lock(lockobject *self, PyObject *args, PyObject *kwds)
+static int
+lock_acquire_parse_args(PyObject *args, PyObject *kwds,
+ _PyTime_t *timeout)
{
char *kwlist[] = {"blocking", "timeout", NULL};
int blocking = 1;
- double timeout = -1;
- PY_TIMEOUT_T microseconds;
- PyLockStatus r;
+ PyObject *timeout_obj = NULL;
+ const _PyTime_t unset_timeout = _PyTime_FromSeconds(-1);
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "|id:acquire", kwlist,
- &blocking, &timeout))
- return NULL;
+ *timeout = unset_timeout ;
- if (!blocking && timeout != -1) {
- PyErr_SetString(PyExc_ValueError, "can't specify a timeout "
- "for a non-blocking call");
- return NULL;
+ if (!PyArg_ParseTupleAndKeywords(args, kwds, "|iO:acquire", kwlist,
+ &blocking, &timeout_obj))
+ return -1;
+
+ if (timeout_obj
+ && _PyTime_FromSecondsObject(timeout,
+ timeout_obj, _PyTime_ROUND_CEILING) < 0)
+ return -1;
+
+ if (!blocking && *timeout != unset_timeout ) {
+ PyErr_SetString(PyExc_ValueError,
+ "can't specify a timeout for a non-blocking call");
+ return -1;
}
- if (timeout < 0 && timeout != -1) {
- PyErr_SetString(PyExc_ValueError, "timeout value must be "
- "strictly positive");
- return NULL;
+ if (*timeout < 0 && *timeout != unset_timeout) {
+ PyErr_SetString(PyExc_ValueError,
+ "timeout value must be positive");
+ return -1;
}
if (!blocking)
- microseconds = 0;
- else if (timeout == -1)
- microseconds = -1;
- else {
- timeout *= 1e6;
- if (timeout >= (double) PY_TIMEOUT_MAX) {
+ *timeout = 0;
+ else if (*timeout != unset_timeout) {
+ _PyTime_t microseconds;
+
+ microseconds = _PyTime_AsMicroseconds(*timeout, _PyTime_ROUND_CEILING);
+ if (microseconds >= PY_TIMEOUT_MAX) {
PyErr_SetString(PyExc_OverflowError,
"timeout value is too large");
- return NULL;
+ return -1;
}
- microseconds = (PY_TIMEOUT_T) timeout;
}
+ return 0;
+}
+
+static PyObject *
+lock_PyThread_acquire_lock(lockobject *self, PyObject *args, PyObject *kwds)
+{
+ _PyTime_t timeout;
+ PyLockStatus r;
- r = acquire_timed(self->lock_lock, microseconds);
+ if (lock_acquire_parse_args(args, kwds, &timeout) < 0)
+ return NULL;
+
+ r = acquire_timed(self->lock_lock, timeout);
if (r == PY_LOCK_INTR) {
return NULL;
}
@@ -192,6 +204,13 @@ PyDoc_STRVAR(locked_doc,
\n\
Return whether the lock is in the locked state.");
+static PyObject *
+lock_repr(lockobject *self)
+{
+ return PyUnicode_FromFormat("<%s %s object at %p>",
+ self->locked ? "locked" : "unlocked", Py_TYPE(self)->tp_name, self);
+}
+
static PyMethodDef lock_methods[] = {
{"acquire_lock", (PyCFunction)lock_PyThread_acquire_lock,
METH_VARARGS | METH_KEYWORDS, acquire_doc},
@@ -223,7 +242,7 @@ static PyTypeObject Locktype = {
0, /*tp_getattr*/
0, /*tp_setattr*/
0, /*tp_reserved*/
- 0, /*tp_repr*/
+ (reprfunc)lock_repr, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
0, /*tp_as_mapping*/
@@ -274,41 +293,13 @@ rlock_dealloc(rlockobject *self)
static PyObject *
rlock_acquire(rlockobject *self, PyObject *args, PyObject *kwds)
{
- char *kwlist[] = {"blocking", "timeout", NULL};
- int blocking = 1;
- double timeout = -1;
- PY_TIMEOUT_T microseconds;
+ _PyTime_t timeout;
long tid;
PyLockStatus r = PY_LOCK_ACQUIRED;
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "|id:acquire", kwlist,
- &blocking, &timeout))
+ if (lock_acquire_parse_args(args, kwds, &timeout) < 0)
return NULL;
- if (!blocking && timeout != -1) {
- PyErr_SetString(PyExc_ValueError, "can't specify a timeout "
- "for a non-blocking call");
- return NULL;
- }
- if (timeout < 0 && timeout != -1) {
- PyErr_SetString(PyExc_ValueError, "timeout value must be "
- "strictly positive");
- return NULL;
- }
- if (!blocking)
- microseconds = 0;
- else if (timeout == -1)
- microseconds = -1;
- else {
- timeout *= 1e6;
- if (timeout >= (double) PY_TIMEOUT_MAX) {
- PyErr_SetString(PyExc_OverflowError,
- "timeout value is too large");
- return NULL;
- }
- microseconds = (PY_TIMEOUT_T) timeout;
- }
-
tid = PyThread_get_thread_ident();
if (self->rlock_count > 0 && tid == self->rlock_owner) {
unsigned long count = self->rlock_count + 1;
@@ -320,7 +311,7 @@ rlock_acquire(rlockobject *self, PyObject *args, PyObject *kwds)
self->rlock_count = count;
Py_RETURN_TRUE;
}
- r = acquire_timed(self->rlock_lock, microseconds);
+ r = acquire_timed(self->rlock_lock, timeout);
if (r == PY_LOCK_ACQUIRED) {
assert(self->rlock_count == 0);
self->rlock_owner = tid;
@@ -475,8 +466,10 @@ rlock_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
static PyObject *
rlock_repr(rlockobject *self)
{
- return PyUnicode_FromFormat("<%s owner=%ld count=%lu>",
- Py_TYPE(self)->tp_name, self->rlock_owner, self->rlock_count);
+ return PyUnicode_FromFormat("<%s %s object owner=%ld count=%lu at %p>",
+ self->rlock_count ? "locked" : "unlocked",
+ Py_TYPE(self)->tp_name, self->rlock_owner,
+ self->rlock_count, self);
}
@@ -1359,7 +1352,9 @@ static struct PyModuleDef threadmodule = {
PyMODINIT_FUNC
PyInit__thread(void)
{
- PyObject *m, *d, *timeout_max;
+ PyObject *m, *d, *v;
+ double time_max;
+ double timeout_max;
/* Initialize types: */
if (PyType_Ready(&localdummytype) < 0)
@@ -1376,10 +1371,14 @@ PyInit__thread(void)
if (m == NULL)
return NULL;
- timeout_max = PyFloat_FromDouble(PY_TIMEOUT_MAX / 1000000);
- if (!timeout_max)
+ timeout_max = PY_TIMEOUT_MAX / 1000000;
+ time_max = floor(_PyTime_AsSecondsDouble(_PyTime_MAX));
+ timeout_max = Py_MIN(timeout_max, time_max);
+
+ v = PyFloat_FromDouble(timeout_max);
+ if (!v)
return NULL;
- if (PyModule_AddObject(m, "TIMEOUT_MAX", timeout_max) < 0)
+ if (PyModule_AddObject(m, "TIMEOUT_MAX", v) < 0)
return NULL;
/* Add a symbolic constant */
diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c
index 52025bb16f..41ad5f91f7 100644
--- a/Modules/_tkinter.c
+++ b/Modules/_tkinter.c
@@ -9,8 +9,8 @@ Copyright (C) 1994 Steen Lumholt.
/* TCL/TK VERSION INFO:
- Only Tcl/Tk 8.3.1 and later are supported. Older versions are not
- supported. Use Python 2.6 or older if you cannot upgrade your
+ Only Tcl/Tk 8.4 and later are supported. Older versions are not
+ supported. Use Python 3.4 or older if you cannot upgrade your
Tcl/Tk libraries.
*/
@@ -21,6 +21,7 @@ Copyright (C) 1994 Steen Lumholt.
*/
+#define PY_SSIZE_T_CLEAN
#include "Python.h"
#include <ctype.h>
@@ -36,13 +37,6 @@ Copyright (C) 1994 Steen Lumholt.
#define CHECK_SIZE(size, elemsize) \
((size_t)(size) <= Py_MIN((size_t)INT_MAX, UINT_MAX / (size_t)(elemsize)))
-/* Starting with Tcl 8.4, many APIs offer const-correctness. Unfortunately,
- making _tkinter correct for this API means to break earlier
- versions. USE_COMPAT_CONST allows to make _tkinter work with both 8.4 and
- earlier versions. Once Tcl releases before 8.4 don't need to be supported
- anymore, this should go. */
-#define USE_COMPAT_CONST
-
/* If Tcl is compiled for threads, we must also define TCL_THREAD. We define
it always; if Tcl is not threaded, the thread functions in
Tcl are empty. */
@@ -58,15 +52,8 @@ Copyright (C) 1994 Steen Lumholt.
#include "tkinter.h"
-/* For Tcl 8.2 and 8.3, CONST* is not defined (except on Cygwin). */
-#ifndef CONST84_RETURN
-#define CONST84_RETURN
-#undef CONST
-#define CONST
-#endif
-
-#if TK_HEX_VERSION < 0x08030201
-#error "Tk older than 8.3.1 not supported"
+#if TK_HEX_VERSION < 0x08040200
+#error "Tk older than 8.4 not supported"
#endif
#if TK_HEX_VERSION >= 0x08050208 && TK_HEX_VERSION < 0x08060000 || \
@@ -114,7 +101,65 @@ Copyright (C) 1994 Steen Lumholt.
#ifdef MS_WINDOWS
#include <conio.h>
#define WAIT_FOR_STDIN
+
+static PyObject *
+_get_tcl_lib_path()
+{
+ static PyObject *tcl_library_path = NULL;
+ static int already_checked = 0;
+
+ if (already_checked == 0) {
+ PyObject *prefix;
+ struct stat stat_buf;
+ int stat_return_value;
+
+ prefix = PyUnicode_FromWideChar(Py_GetPrefix(), -1);
+ if (prefix == NULL) {
+ return NULL;
+ }
+
+ /* Check expected location for an installed Python first */
+ tcl_library_path = PyUnicode_FromString("\\tcl\\tcl" TCL_VERSION);
+ if (tcl_library_path == NULL) {
+ return NULL;
+ }
+ tcl_library_path = PyUnicode_Concat(prefix, tcl_library_path);
+ if (tcl_library_path == NULL) {
+ return NULL;
+ }
+ stat_return_value = _Py_stat(tcl_library_path, &stat_buf);
+ if (stat_return_value == -2) {
+ return NULL;
+ }
+ if (stat_return_value == -1) {
+ /* install location doesn't exist, reset errno and see if
+ we're a repository build */
+ errno = 0;
+#ifdef Py_TCLTK_DIR
+ tcl_library_path = PyUnicode_FromString(
+ Py_TCLTK_DIR "\\lib\\tcl" TCL_VERSION);
+ if (tcl_library_path == NULL) {
+ return NULL;
+ }
+ stat_return_value = _Py_stat(tcl_library_path, &stat_buf);
+ if (stat_return_value == -2) {
+ return NULL;
+ }
+ if (stat_return_value == -1) {
+ /* tcltkDir for a repository build doesn't exist either,
+ reset errno and leave Tcl to its own devices */
+ errno = 0;
+ tcl_library_path = NULL;
+ }
+#else
+ tcl_library_path = NULL;
#endif
+ }
+ already_checked = 1;
+ }
+ return tcl_library_path;
+}
+#endif /* MS_WINDOWS */
#ifdef WITH_THREAD
@@ -385,10 +430,10 @@ unicodeFromTclObj(Tcl_Obj *value)
static PyObject *
-Split(char *list)
+Split(const char *list)
{
int argc;
- char **argv;
+ const char **argv;
PyObject *v;
if (list == NULL) {
@@ -432,7 +477,7 @@ static PyObject *
SplitObj(PyObject *arg)
{
if (PyTuple_Check(arg)) {
- int i, size;
+ Py_ssize_t i, size;
PyObject *elem, *newelem, *result;
size = PyTuple_Size(arg);
@@ -448,7 +493,7 @@ SplitObj(PyObject *arg)
return NULL;
}
if (!result) {
- int k;
+ Py_ssize_t k;
if (newelem == elem) {
Py_DECREF(newelem);
continue;
@@ -468,9 +513,29 @@ SplitObj(PyObject *arg)
return result;
/* Fall through, returning arg. */
}
+ else if (PyList_Check(arg)) {
+ Py_ssize_t i, size;
+ PyObject *elem, *newelem, *result;
+
+ size = PyList_GET_SIZE(arg);
+ result = PyTuple_New(size);
+ if (!result)
+ return NULL;
+ /* Recursively invoke SplitObj for all list items. */
+ for(i = 0; i < size; i++) {
+ elem = PyList_GET_ITEM(arg, i);
+ newelem = SplitObj(elem);
+ if (!newelem) {
+ Py_XDECREF(result);
+ return NULL;
+ }
+ PyTuple_SetItem(result, i, newelem);
+ }
+ return result;
+ }
else if (PyUnicode_Check(arg)) {
int argc;
- char **argv;
+ const char **argv;
char *list = PyUnicode_AsUTF8(arg);
if (list == NULL ||
@@ -485,7 +550,7 @@ SplitObj(PyObject *arg)
}
else if (PyBytes_Check(arg)) {
int argc;
- char **argv;
+ const char **argv;
char *list = PyBytes_AsString(arg);
if (Tcl_SplitList((Tcl_Interp *)NULL, list, &argc, &argv) != TCL_OK) {
@@ -502,6 +567,14 @@ SplitObj(PyObject *arg)
}
+/*[clinic input]
+module _tkinter
+class _tkinter.tkapp "TkappObject *" "&Tkapp_Type_spec"
+class _tkinter.Tcl_Obj "PyTclObject *" "&PyTclObject_Type_spec"
+class _tkinter.tktimertoken "TkttObject *" "&Tktt_Type_spec"
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=b1ebf15c162ee229]*/
+
/**** Tkapp Object ****/
#ifndef WITH_APPINIT
@@ -552,8 +625,9 @@ static void EnableEventHook(void); /* Forward */
static void DisableEventHook(void); /* Forward */
static TkappObject *
-Tkapp_New(char *screenName, char *className,
- int interactive, int wantobjects, int wantTk, int sync, char *use)
+Tkapp_New(const char *screenName, const char *className,
+ int interactive, int wantobjects, int wantTk, int sync,
+ const char *use)
{
TkappObject *v;
char *argv0;
@@ -610,7 +684,7 @@ Tkapp_New(char *screenName, char *className,
Tcl_SetVar(v->interp, "tcl_interactive", "0", TCL_GLOBAL_ONLY);
/* This is used to get the application class for Tk 4.1 and up */
- argv0 = (char*)attemptckalloc(strlen(className) + 1);
+ argv0 = (char*)PyMem_Malloc(strlen(className) + 1);
if (!argv0) {
PyErr_NoMemory();
Py_DECREF(v);
@@ -621,7 +695,7 @@ Tkapp_New(char *screenName, char *className,
if (Py_ISUPPER(Py_CHARMASK(argv0[0])))
argv0[0] = Py_TOLOWER(Py_CHARMASK(argv0[0]));
Tcl_SetVar(v->interp, "argv0", argv0, TCL_GLOBAL_ONLY);
- ckfree(argv0);
+ PyMem_Free(argv0);
if (! wantTk) {
Tcl_SetVar(v->interp,
@@ -637,14 +711,14 @@ Tkapp_New(char *screenName, char *className,
/* some initial arguments need to be in argv */
if (sync || use) {
char *args;
- int len = 0;
+ Py_ssize_t len = 0;
if (sync)
len += sizeof "-sync";
if (use)
- len += strlen(use) + sizeof "-use ";
+ len += strlen(use) + sizeof "-use "; /* never overflows */
- args = (char*)attemptckalloc(len);
+ args = (char*)PyMem_Malloc(len);
if (!args) {
PyErr_NoMemory();
Py_DECREF(v);
@@ -662,8 +736,35 @@ Tkapp_New(char *screenName, char *className,
}
Tcl_SetVar(v->interp, "argv", args, TCL_GLOBAL_ONLY);
- ckfree(args);
+ PyMem_Free(args);
+ }
+
+#ifdef MS_WINDOWS
+ {
+ PyObject *str_path;
+ PyObject *utf8_path;
+ DWORD ret;
+
+ ret = GetEnvironmentVariableW(L"TCL_LIBRARY", NULL, 0);
+ if (!ret && GetLastError() == ERROR_ENVVAR_NOT_FOUND) {
+ str_path = _get_tcl_lib_path();
+ if (str_path == NULL && PyErr_Occurred()) {
+ return NULL;
+ }
+ if (str_path != NULL) {
+ utf8_path = PyUnicode_AsUTF8String(str_path);
+ if (utf8_path == NULL) {
+ return NULL;
+ }
+ Tcl_SetVar(v->interp,
+ "tcl_library",
+ PyBytes_AsString(utf8_path),
+ TCL_GLOBAL_ONLY);
+ Py_DECREF(utf8_path);
+ }
+ }
}
+#endif
if (Tcl_AppInit(v->interp) != TCL_OK) {
PyObject *result = Tkinter_Error((PyObject *)v);
@@ -929,9 +1030,14 @@ AsObj(PyObject *value)
{
Tcl_Obj *result;
- if (PyBytes_Check(value))
+ if (PyBytes_Check(value)) {
+ if (PyBytes_GET_SIZE(value) >= INT_MAX) {
+ PyErr_SetString(PyExc_OverflowError, "bytes object is too long");
+ return NULL;
+ }
return Tcl_NewByteArrayObj((unsigned char *)PyBytes_AS_STRING(value),
- PyBytes_GET_SIZE(value));
+ (int)PyBytes_GET_SIZE(value));
+ }
if (PyBool_Check(value))
return Tcl_NewBooleanObj(PyObject_IsTrue(value));
@@ -970,24 +1076,28 @@ AsObj(PyObject *value)
if (PyFloat_Check(value))
return Tcl_NewDoubleObj(PyFloat_AS_DOUBLE(value));
- if (PyTuple_Check(value)) {
+ if (PyTuple_Check(value) || PyList_Check(value)) {
Tcl_Obj **argv;
Py_ssize_t size, i;
- size = PyTuple_Size(value);
+ size = PySequence_Fast_GET_SIZE(value);
if (size == 0)
return Tcl_NewListObj(0, NULL);
if (!CHECK_SIZE(size, sizeof(Tcl_Obj *))) {
- PyErr_SetString(PyExc_OverflowError, "tuple is too long");
+ PyErr_SetString(PyExc_OverflowError,
+ PyTuple_Check(value) ? "tuple is too long" :
+ "list is too long");
return NULL;
}
- argv = (Tcl_Obj **) attemptckalloc(((size_t)size) * sizeof(Tcl_Obj *));
- if(!argv)
- return 0;
+ argv = (Tcl_Obj **) PyMem_Malloc(((size_t)size) * sizeof(Tcl_Obj *));
+ if (!argv) {
+ PyErr_NoMemory();
+ return NULL;
+ }
for (i = 0; i < size; i++)
- argv[i] = AsObj(PyTuple_GetItem(value,i));
- result = Tcl_NewListObj(PyTuple_Size(value), argv);
- ckfree(FREECAST argv);
+ argv[i] = AsObj(PySequence_Fast_GET_ITEM(value,i));
+ result = Tcl_NewListObj((int)size, argv);
+ PyMem_Free(argv);
return result;
}
@@ -1012,9 +1122,9 @@ AsObj(PyObject *value)
}
kind = PyUnicode_KIND(value);
if (kind == sizeof(Tcl_UniChar))
- return Tcl_NewUnicodeObj(inbuf, size);
+ return Tcl_NewUnicodeObj(inbuf, (int)size);
allocsize = ((size_t)size) * sizeof(Tcl_UniChar);
- outbuf = (Tcl_UniChar*)attemptckalloc(allocsize);
+ outbuf = (Tcl_UniChar*)PyMem_Malloc(allocsize);
/* Else overflow occurred, and we take the next exit */
if (!outbuf) {
PyErr_NoMemory();
@@ -1031,14 +1141,14 @@ AsObj(PyObject *value)
"character U+%x is above the range "
"(U+0000-U+FFFF) allowed by Tcl",
ch);
- ckfree(FREECAST outbuf);
+ PyMem_Free(outbuf);
return NULL;
}
#endif
outbuf[i] = ch;
}
- result = Tcl_NewUnicodeObj(outbuf, size);
- ckfree(FREECAST outbuf);
+ result = Tcl_NewUnicodeObj(outbuf, (int)size);
+ PyMem_Free(outbuf);
return result;
}
@@ -1067,7 +1177,6 @@ fromBoolean(PyObject* tkapp, Tcl_Obj *value)
return PyBool_FromLong(boolValue);
}
-#ifdef TCL_WIDE_INT_TYPE
static PyObject*
fromWideIntObj(PyObject* tkapp, Tcl_Obj *value)
{
@@ -1084,7 +1193,6 @@ fromWideIntObj(PyObject* tkapp, Tcl_Obj *value)
}
return NULL;
}
-#endif
#ifdef HAVE_LIBTOMMAMTH
static PyObject*
@@ -1157,7 +1265,6 @@ FromObj(PyObject* tkapp, Tcl_Obj *value)
fall through to wideInt handling. */
}
-#ifdef TCL_WIDE_INT_TYPE
if (value->typePtr == app->IntType ||
value->typePtr == app->WideIntType) {
result = fromWideIntObj(tkapp, value);
@@ -1167,7 +1274,6 @@ FromObj(PyObject* tkapp, Tcl_Obj *value)
/* If there is an error in the wideInt conversion,
fall through to bignum handling. */
}
-#endif
#ifdef HAVE_LIBTOMMAMTH
if (value->typePtr == app->IntType ||
@@ -1258,7 +1364,7 @@ Tkapp_CallDeallocArgs(Tcl_Obj** objv, Tcl_Obj** objStore, int objc)
for (i = 0; i < objc; i++)
Tcl_DecrRefCount(objv[i]);
if (objv != objStore)
- ckfree(FREECAST objv);
+ PyMem_Free(objv);
}
/* Convert Python objects to Tcl objects. This must happen in the
@@ -1272,7 +1378,7 @@ Tkapp_CallArgs(PyObject *args, Tcl_Obj** objStore, int *pobjc)
if (args == NULL)
/* do nothing */;
- else if (!PyTuple_Check(args)) {
+ else if (!(PyTuple_Check(args) || PyList_Check(args))) {
objv[0] = AsObj(args);
if (objv[0] == 0)
goto finally;
@@ -1280,14 +1386,16 @@ Tkapp_CallArgs(PyObject *args, Tcl_Obj** objStore, int *pobjc)
Tcl_IncrRefCount(objv[0]);
}
else {
- objc = PyTuple_Size(args);
+ objc = PySequence_Fast_GET_SIZE(args);
if (objc > ARGSZ) {
if (!CHECK_SIZE(objc, sizeof(Tcl_Obj *))) {
- PyErr_SetString(PyExc_OverflowError, "tuple is too long");
+ PyErr_SetString(PyExc_OverflowError,
+ PyTuple_Check(args) ? "tuple is too long" :
+ "list is too long");
return NULL;
}
- objv = (Tcl_Obj **)attemptckalloc(((size_t)objc) * sizeof(Tcl_Obj *));
+ objv = (Tcl_Obj **)PyMem_Malloc(((size_t)objc) * sizeof(Tcl_Obj *));
if (objv == NULL) {
PyErr_NoMemory();
objc = 0;
@@ -1296,7 +1404,7 @@ Tkapp_CallArgs(PyObject *args, Tcl_Obj** objStore, int *pobjc)
}
for (i = 0; i < objc; i++) {
- PyObject *v = PyTuple_GetItem(args, i);
+ PyObject *v = PySequence_Fast_GET_ITEM(args, i);
if (v == Py_None) {
objc = i;
break;
@@ -1311,10 +1419,10 @@ Tkapp_CallArgs(PyObject *args, Tcl_Obj** objStore, int *pobjc)
Tcl_IncrRefCount(objv[i]);
}
}
- *pobjc = objc;
+ *pobjc = (int)objc;
return objv;
finally:
- Tkapp_CallDeallocArgs(objv, objStore, objc);
+ Tkapp_CallDeallocArgs(objv, objStore, (int)objc);
return NULL;
}
@@ -1474,16 +1582,21 @@ Tkapp_Call(PyObject *selfptr, PyObject *args)
}
+/*[clinic input]
+_tkinter.tkapp.eval
+
+ script: str
+ /
+
+[clinic start generated code]*/
+
static PyObject *
-Tkapp_Eval(PyObject *self, PyObject *args)
+_tkinter_tkapp_eval_impl(TkappObject *self, const char *script)
+/*[clinic end generated code: output=24b79831f700dea0 input=481484123a455f22]*/
{
- char *script;
PyObject *res = NULL;
int err;
- if (!PyArg_ParseTuple(args, "s:eval", &script))
- return NULL;
-
CHECK_STRING_LENGTH(script);
CHECK_TCL_APPARTMENT;
@@ -1491,23 +1604,28 @@ Tkapp_Eval(PyObject *self, PyObject *args)
err = Tcl_Eval(Tkapp_Interp(self), script);
ENTER_OVERLAP
if (err == TCL_ERROR)
- res = Tkinter_Error(self);
+ res = Tkinter_Error((PyObject *)self);
else
res = unicodeFromTclString(Tkapp_Result(self));
LEAVE_OVERLAP_TCL
return res;
}
+/*[clinic input]
+_tkinter.tkapp.evalfile
+
+ fileName: str
+ /
+
+[clinic start generated code]*/
+
static PyObject *
-Tkapp_EvalFile(PyObject *self, PyObject *args)
+_tkinter_tkapp_evalfile_impl(TkappObject *self, const char *fileName)
+/*[clinic end generated code: output=63be88dcee4f11d3 input=873ab707e5e947e1]*/
{
- char *fileName;
PyObject *res = NULL;
int err;
- if (!PyArg_ParseTuple(args, "s:evalfile", &fileName))
- return NULL;
-
CHECK_STRING_LENGTH(fileName);
CHECK_TCL_APPARTMENT;
@@ -1515,23 +1633,28 @@ Tkapp_EvalFile(PyObject *self, PyObject *args)
err = Tcl_EvalFile(Tkapp_Interp(self), fileName);
ENTER_OVERLAP
if (err == TCL_ERROR)
- res = Tkinter_Error(self);
+ res = Tkinter_Error((PyObject *)self);
else
res = unicodeFromTclString(Tkapp_Result(self));
LEAVE_OVERLAP_TCL
return res;
}
+/*[clinic input]
+_tkinter.tkapp.record
+
+ script: str
+ /
+
+[clinic start generated code]*/
+
static PyObject *
-Tkapp_Record(PyObject *self, PyObject *args)
+_tkinter_tkapp_record_impl(TkappObject *self, const char *script)
+/*[clinic end generated code: output=0ffe08a0061730df input=c0b0db5a21412cac]*/
{
- char *script;
PyObject *res = NULL;
int err;
- if (!PyArg_ParseTuple(args, "s:record", &script))
- return NULL;
-
CHECK_STRING_LENGTH(script);
CHECK_TCL_APPARTMENT;
@@ -1539,20 +1662,25 @@ Tkapp_Record(PyObject *self, PyObject *args)
err = Tcl_RecordAndEval(Tkapp_Interp(self), script, TCL_NO_EVAL);
ENTER_OVERLAP
if (err == TCL_ERROR)
- res = Tkinter_Error(self);
+ res = Tkinter_Error((PyObject *)self);
else
res = unicodeFromTclString(Tkapp_Result(self));
LEAVE_OVERLAP_TCL
return res;
}
+/*[clinic input]
+_tkinter.tkapp.adderrinfo
+
+ msg: str
+ /
+
+[clinic start generated code]*/
+
static PyObject *
-Tkapp_AddErrorInfo(PyObject *self, PyObject *args)
+_tkinter_tkapp_adderrinfo_impl(TkappObject *self, const char *msg)
+/*[clinic end generated code: output=0e222ee2050eb357 input=4971399317d4c136]*/
{
- char *msg;
-
- if (!PyArg_ParseTuple(args, "s:adderrorinfo", &msg))
- return NULL;
CHECK_STRING_LENGTH(msg);
CHECK_TCL_APPARTMENT;
@@ -1585,6 +1713,15 @@ typedef struct VarEvent {
} VarEvent;
#endif
+/*[python]
+
+class varname_converter(CConverter):
+ type = 'const char *'
+ converter = 'varname_converter'
+
+[python]*/
+/*[python checksum: da39a3ee5e6b4b0d3255bfef95601890afd80709]*/
+
static int
varname_converter(PyObject *in, void *_out)
{
@@ -1596,8 +1733,8 @@ varname_converter(PyObject *in, void *_out)
return 0;
}
s = PyBytes_AsString(in);
- if (strlen(s) != PyBytes_Size(in)) {
- PyErr_SetString(PyExc_ValueError, "null byte in bytes object");
+ if (strlen(s) != (size_t)PyBytes_Size(in)) {
+ PyErr_SetString(PyExc_ValueError, "embedded null byte");
return 0;
}
*out = s;
@@ -1613,8 +1750,8 @@ varname_converter(PyObject *in, void *_out)
PyErr_SetString(PyExc_OverflowError, "string is too long");
return 0;
}
- if (strlen(s) != size) {
- PyErr_SetString(PyExc_ValueError, "null character in string");
+ if (strlen(s) != (size_t)size) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
return 0;
}
*out = s;
@@ -1667,7 +1804,6 @@ var_invoke(EventFunc func, PyObject *selfptr, PyObject *args, int flags)
#ifdef WITH_THREAD
TkappObject *self = (TkappObject*)selfptr;
if (self->threaded && self->thread_id != Tcl_GetCurrentThread()) {
- TkappObject *self = (TkappObject*)selfptr;
VarEvent *ev;
PyObject *res, *exc_type, *exc_val;
Tcl_Condition cond = NULL;
@@ -1862,31 +1998,39 @@ Tkapp_GlobalUnsetVar(PyObject *self, PyObject *args)
/** Tcl to Python **/
+/*[clinic input]
+_tkinter.tkapp.getint
+
+ arg: object
+ /
+
+[clinic start generated code]*/
+
static PyObject *
-Tkapp_GetInt(PyObject *self, PyObject *args)
+_tkinter_tkapp_getint(TkappObject *self, PyObject *arg)
+/*[clinic end generated code: output=88cf293fae307cfe input=034026997c5b91f8]*/
{
char *s;
-#if defined(TCL_WIDE_INT_TYPE) || defined(HAVE_LIBTOMMAMTH)
Tcl_Obj *value;
PyObject *result;
-#else
- int intValue;
-#endif
- if (PyTuple_Size(args) == 1) {
- PyObject* o = PyTuple_GetItem(args, 0);
- if (PyLong_Check(o)) {
- Py_INCREF(o);
- return o;
- }
+ if (PyLong_Check(arg)) {
+ Py_INCREF(arg);
+ return arg;
+ }
+
+ if (PyTclObject_Check(arg)) {
+ value = ((PyTclObject*)arg)->value;
+ Tcl_IncrRefCount(value);
+ }
+ else {
+ if (!PyArg_Parse(arg, "s:getint", &s))
+ return NULL;
+ CHECK_STRING_LENGTH(s);
+ value = Tcl_NewStringObj(s, -1);
+ if (value == NULL)
+ return Tkinter_Error((PyObject *)self);
}
- if (!PyArg_ParseTuple(args, "s:getint", &s))
- return NULL;
- CHECK_STRING_LENGTH(s);
-#if defined(TCL_WIDE_INT_TYPE) || defined(HAVE_LIBTOMMAMTH)
- value = Tcl_NewStringObj(s, -1);
- if (value == NULL)
- return Tkinter_Error(self);
/* Don't use Tcl_GetInt() because it returns ambiguous result for value
in ranges -2**32..-2**31-1 and 2**31..2**32-1 (on 32-bit platform).
@@ -1894,43 +2038,67 @@ Tkapp_GetInt(PyObject *self, PyObject *args)
value in ranges -2**64..-2**63-1 and 2**63..2**64-1 (on 32-bit platform).
*/
#ifdef HAVE_LIBTOMMAMTH
- result = fromBignumObj(self, value);
+ result = fromBignumObj((PyObject *)self, value);
#else
- result = fromWideIntObj(self, value);
+ result = fromWideIntObj((PyObject *)self, value);
#endif
Tcl_DecrRefCount(value);
if (result != NULL || PyErr_Occurred())
return result;
-#else
- if (Tcl_GetInt(Tkapp_Interp(self), s, &intValue) == TCL_OK)
- return PyLong_FromLong(intValue);
-#endif
- return Tkinter_Error(self);
+ return Tkinter_Error((PyObject *)self);
}
+/*[clinic input]
+_tkinter.tkapp.getdouble
+
+ arg: object
+ /
+
+[clinic start generated code]*/
+
static PyObject *
-Tkapp_GetDouble(PyObject *self, PyObject *args)
+_tkinter_tkapp_getdouble(TkappObject *self, PyObject *arg)
+/*[clinic end generated code: output=c52b138bd8b956b9 input=22015729ce9ef7f8]*/
{
char *s;
double v;
- if (PyTuple_Size(args) == 1) {
- PyObject *o = PyTuple_GetItem(args, 0);
- if (PyFloat_Check(o)) {
- Py_INCREF(o);
- return o;
- }
+ if (PyFloat_Check(arg)) {
+ Py_INCREF(arg);
+ return arg;
}
- if (!PyArg_ParseTuple(args, "s:getdouble", &s))
+
+ if (PyNumber_Check(arg)) {
+ return PyNumber_Float(arg);
+ }
+
+ if (PyTclObject_Check(arg)) {
+ if (Tcl_GetDoubleFromObj(Tkapp_Interp(self),
+ ((PyTclObject*)arg)->value,
+ &v) == TCL_ERROR)
+ return Tkinter_Error((PyObject *)self);
+ return PyFloat_FromDouble(v);
+ }
+
+ if (!PyArg_Parse(arg, "s:getdouble", &s))
return NULL;
CHECK_STRING_LENGTH(s);
if (Tcl_GetDouble(Tkapp_Interp(self), s, &v) == TCL_ERROR)
- return Tkinter_Error(self);
- return Py_BuildValue("d", v);
+ return Tkinter_Error((PyObject *)self);
+ return PyFloat_FromDouble(v);
}
+/*[clinic input]
+_tkinter.tkapp.getboolean
+
+ arg: object
+ /
+
+[clinic start generated code]*/
+
static PyObject *
-Tkapp_GetBoolean(PyObject *self, PyObject *arg)
+_tkinter_tkapp_getboolean(TkappObject *self, PyObject *arg)
+/*[clinic end generated code: output=726a9ae445821d91 input=7f11248ef8f8776e]*/
{
char *s;
int v;
@@ -1943,7 +2111,7 @@ Tkapp_GetBoolean(PyObject *self, PyObject *arg)
if (Tcl_GetBooleanFromObj(Tkapp_Interp(self),
((PyTclObject*)arg)->value,
&v) == TCL_ERROR)
- return Tkinter_Error(self);
+ return Tkinter_Error((PyObject *)self);
return PyBool_FromLong(v);
}
@@ -1951,20 +2119,25 @@ Tkapp_GetBoolean(PyObject *self, PyObject *arg)
return NULL;
CHECK_STRING_LENGTH(s);
if (Tcl_GetBoolean(Tkapp_Interp(self), s, &v) == TCL_ERROR)
- return Tkinter_Error(self);
+ return Tkinter_Error((PyObject *)self);
return PyBool_FromLong(v);
}
+/*[clinic input]
+_tkinter.tkapp.exprstring
+
+ s: str
+ /
+
+[clinic start generated code]*/
+
static PyObject *
-Tkapp_ExprString(PyObject *self, PyObject *args)
+_tkinter_tkapp_exprstring_impl(TkappObject *self, const char *s)
+/*[clinic end generated code: output=beda323d3ed0abb1 input=fa78f751afb2f21b]*/
{
- char *s;
PyObject *res = NULL;
int retval;
- if (!PyArg_ParseTuple(args, "s:exprstring", &s))
- return NULL;
-
CHECK_STRING_LENGTH(s);
CHECK_TCL_APPARTMENT;
@@ -1972,24 +2145,29 @@ Tkapp_ExprString(PyObject *self, PyObject *args)
retval = Tcl_ExprString(Tkapp_Interp(self), s);
ENTER_OVERLAP
if (retval == TCL_ERROR)
- res = Tkinter_Error(self);
+ res = Tkinter_Error((PyObject *)self);
else
res = unicodeFromTclString(Tkapp_Result(self));
LEAVE_OVERLAP_TCL
return res;
}
+/*[clinic input]
+_tkinter.tkapp.exprlong
+
+ s: str
+ /
+
+[clinic start generated code]*/
+
static PyObject *
-Tkapp_ExprLong(PyObject *self, PyObject *args)
+_tkinter_tkapp_exprlong_impl(TkappObject *self, const char *s)
+/*[clinic end generated code: output=5d6a46b63c6ebcf9 input=11bd7eee0c57b4dc]*/
{
- char *s;
PyObject *res = NULL;
int retval;
long v;
- if (!PyArg_ParseTuple(args, "s:exprlong", &s))
- return NULL;
-
CHECK_STRING_LENGTH(s);
CHECK_TCL_APPARTMENT;
@@ -1997,23 +2175,29 @@ Tkapp_ExprLong(PyObject *self, PyObject *args)
retval = Tcl_ExprLong(Tkapp_Interp(self), s, &v);
ENTER_OVERLAP
if (retval == TCL_ERROR)
- res = Tkinter_Error(self);
+ res = Tkinter_Error((PyObject *)self);
else
- res = Py_BuildValue("l", v);
+ res = PyLong_FromLong(v);
LEAVE_OVERLAP_TCL
return res;
}
+/*[clinic input]
+_tkinter.tkapp.exprdouble
+
+ s: str
+ /
+
+[clinic start generated code]*/
+
static PyObject *
-Tkapp_ExprDouble(PyObject *self, PyObject *args)
+_tkinter_tkapp_exprdouble_impl(TkappObject *self, const char *s)
+/*[clinic end generated code: output=ff78df1081ea4158 input=ff02bc11798832d5]*/
{
- char *s;
PyObject *res = NULL;
double v;
int retval;
- if (!PyArg_ParseTuple(args, "s:exprdouble", &s))
- return NULL;
CHECK_STRING_LENGTH(s);
CHECK_TCL_APPARTMENT;
PyFPE_START_PROTECT("Tkapp_ExprDouble", return 0)
@@ -2022,61 +2206,74 @@ Tkapp_ExprDouble(PyObject *self, PyObject *args)
ENTER_OVERLAP
PyFPE_END_PROTECT(retval)
if (retval == TCL_ERROR)
- res = Tkinter_Error(self);
+ res = Tkinter_Error((PyObject *)self);
else
- res = Py_BuildValue("d", v);
+ res = PyFloat_FromDouble(v);
LEAVE_OVERLAP_TCL
return res;
}
+/*[clinic input]
+_tkinter.tkapp.exprboolean
+
+ s: str
+ /
+
+[clinic start generated code]*/
+
static PyObject *
-Tkapp_ExprBoolean(PyObject *self, PyObject *args)
+_tkinter_tkapp_exprboolean_impl(TkappObject *self, const char *s)
+/*[clinic end generated code: output=8b28038c22887311 input=c8c66022bdb8d5d3]*/
{
- char *s;
PyObject *res = NULL;
int retval;
int v;
- if (!PyArg_ParseTuple(args, "s:exprboolean", &s))
- return NULL;
CHECK_STRING_LENGTH(s);
CHECK_TCL_APPARTMENT;
ENTER_TCL
retval = Tcl_ExprBoolean(Tkapp_Interp(self), s, &v);
ENTER_OVERLAP
if (retval == TCL_ERROR)
- res = Tkinter_Error(self);
+ res = Tkinter_Error((PyObject *)self);
else
- res = Py_BuildValue("i", v);
+ res = PyLong_FromLong(v);
LEAVE_OVERLAP_TCL
return res;
}
+/*[clinic input]
+_tkinter.tkapp.splitlist
+
+ arg: object
+ /
+
+[clinic start generated code]*/
+
static PyObject *
-Tkapp_SplitList(PyObject *self, PyObject *args)
+_tkinter_tkapp_splitlist(TkappObject *self, PyObject *arg)
+/*[clinic end generated code: output=13b51d34386d36fb input=2b2e13351e3c0b53]*/
{
char *list;
int argc;
- char **argv;
- PyObject *arg, *v;
+ const char **argv;
+ PyObject *v;
int i;
- if (!PyArg_ParseTuple(args, "O:splitlist", &arg))
- return NULL;
if (PyTclObject_Check(arg)) {
int objc;
Tcl_Obj **objv;
if (Tcl_ListObjGetElements(Tkapp_Interp(self),
((PyTclObject*)arg)->value,
&objc, &objv) == TCL_ERROR) {
- return Tkinter_Error(self);
+ return Tkinter_Error((PyObject *)self);
}
if (!(v = PyTuple_New(objc)))
return NULL;
for (i = 0; i < objc; i++) {
- PyObject *s = FromObj(self, objv[i]);
+ PyObject *s = FromObj((PyObject*)self, objv[i]);
if (!s || PyTuple_SetItem(v, i, s)) {
Py_DECREF(v);
return NULL;
@@ -2088,15 +2285,18 @@ Tkapp_SplitList(PyObject *self, PyObject *args)
Py_INCREF(arg);
return arg;
}
+ if (PyList_Check(arg)) {
+ return PySequence_Tuple(arg);
+ }
- if (!PyArg_ParseTuple(args, "et:splitlist", "utf-8", &list))
+ if (!PyArg_Parse(arg, "et:splitlist", "utf-8", &list))
return NULL;
CHECK_STRING_LENGTH(list);
if (Tcl_SplitList(Tkapp_Interp(self), list,
&argc, &argv) == TCL_ERROR) {
PyMem_Free(list);
- return Tkinter_Error(self);
+ return Tkinter_Error((PyObject *)self);
}
if (!(v = PyTuple_New(argc)))
@@ -2117,14 +2317,21 @@ Tkapp_SplitList(PyObject *self, PyObject *args)
return v;
}
+/*[clinic input]
+_tkinter.tkapp.split
+
+ arg: object
+ /
+
+[clinic start generated code]*/
+
static PyObject *
-Tkapp_Split(PyObject *self, PyObject *args)
+_tkinter_tkapp_split(TkappObject *self, PyObject *arg)
+/*[clinic end generated code: output=e08ad832363facfd input=a1c78349eacaa140]*/
{
- PyObject *arg, *v;
+ PyObject *v;
char *list;
- if (!PyArg_ParseTuple(args, "O:split", &arg))
- return NULL;
if (PyTclObject_Check(arg)) {
Tcl_Obj *value = ((PyTclObject*)arg)->value;
int objc;
@@ -2132,16 +2339,16 @@ Tkapp_Split(PyObject *self, PyObject *args)
int i;
if (Tcl_ListObjGetElements(Tkapp_Interp(self), value,
&objc, &objv) == TCL_ERROR) {
- return FromObj(self, value);
+ return FromObj((PyObject*)self, value);
}
if (objc == 0)
return PyUnicode_FromString("");
if (objc == 1)
- return FromObj(self, objv[0]);
+ return FromObj((PyObject*)self, objv[0]);
if (!(v = PyTuple_New(objc)))
return NULL;
for (i = 0; i < objc; i++) {
- PyObject *s = FromObj(self, objv[i]);
+ PyObject *s = FromObj((PyObject*)self, objv[i]);
if (!s || PyTuple_SetItem(v, i, s)) {
Py_DECREF(v);
return NULL;
@@ -2149,10 +2356,10 @@ Tkapp_Split(PyObject *self, PyObject *args)
}
return v;
}
- if (PyTuple_Check(arg))
+ if (PyTuple_Check(arg) || PyList_Check(arg))
return SplitObj(arg);
- if (!PyArg_ParseTuple(args, "et:split", "utf-8", &list))
+ if (!PyArg_Parse(arg, "et:split", "utf-8", &list))
return NULL;
CHECK_STRING_LENGTH(list);
v = Split(list);
@@ -2183,7 +2390,7 @@ PythonCmd_Error(Tcl_Interp *interp)
* function or method.
*/
static int
-PythonCmd(ClientData clientData, Tcl_Interp *interp, int argc, char *argv[])
+PythonCmd(ClientData clientData, Tcl_Interp *interp, int argc, const char *argv[])
{
PythonCmd_ClientData *data = (PythonCmd_ClientData *)clientData;
PyObject *func, *arg, *res;
@@ -2252,7 +2459,7 @@ TCL_DECLARE_MUTEX(command_mutex)
typedef struct CommandEvent{
Tcl_Event ev;
Tcl_Interp* interp;
- char *name;
+ const char *name;
int create;
int *status;
ClientData *data;
@@ -2275,18 +2482,25 @@ Tkapp_CommandProc(CommandEvent *ev, int flags)
}
#endif
+/*[clinic input]
+_tkinter.tkapp.createcommand
+
+ self: self(type="TkappObject *")
+ name: str
+ func: object
+ /
+
+[clinic start generated code]*/
+
static PyObject *
-Tkapp_CreateCommand(PyObject *selfptr, PyObject *args)
+_tkinter_tkapp_createcommand_impl(TkappObject *self, const char *name,
+ PyObject *func)
+/*[clinic end generated code: output=2a1c79a4ee2af410 input=2bc2c046a0914234]*/
{
- TkappObject *self = (TkappObject*)selfptr;
PythonCmd_ClientData *data;
- char *cmdName;
- PyObject *func;
int err;
- if (!PyArg_ParseTuple(args, "sO:createcommand", &cmdName, &func))
- return NULL;
- CHECK_STRING_LENGTH(cmdName);
+ CHECK_STRING_LENGTH(name);
if (!PyCallable_Check(func)) {
PyErr_SetString(PyExc_TypeError, "command not callable");
return NULL;
@@ -2303,7 +2517,7 @@ Tkapp_CreateCommand(PyObject *selfptr, PyObject *args)
return PyErr_NoMemory();
Py_INCREF(self);
Py_INCREF(func);
- data->self = selfptr;
+ data->self = (PyObject *) self;
data->func = func;
#ifdef WITH_THREAD
if (self->threaded && self->thread_id != Tcl_GetCurrentThread()) {
@@ -2317,7 +2531,7 @@ Tkapp_CreateCommand(PyObject *selfptr, PyObject *args)
ev->ev.proc = (Tcl_EventProc*)Tkapp_CommandProc;
ev->interp = self->interp;
ev->create = 1;
- ev->name = cmdName;
+ ev->name = name;
ev->data = (ClientData)data;
ev->status = &err;
ev->done = &cond;
@@ -2329,7 +2543,7 @@ Tkapp_CreateCommand(PyObject *selfptr, PyObject *args)
{
ENTER_TCL
err = Tcl_CreateCommand(
- Tkapp_Interp(self), cmdName, PythonCmd,
+ Tkapp_Interp(self), name, PythonCmd,
(ClientData)data, PythonCmdDelete) == NULL;
LEAVE_TCL
}
@@ -2344,16 +2558,22 @@ Tkapp_CreateCommand(PyObject *selfptr, PyObject *args)
+/*[clinic input]
+_tkinter.tkapp.deletecommand
+
+ self: self(type="TkappObject *")
+ name: str
+ /
+
+[clinic start generated code]*/
+
static PyObject *
-Tkapp_DeleteCommand(PyObject *selfptr, PyObject *args)
+_tkinter_tkapp_deletecommand_impl(TkappObject *self, const char *name)
+/*[clinic end generated code: output=a67e8cb5845e0d2d input=b6306468f10b219c]*/
{
- TkappObject *self = (TkappObject*)selfptr;
- char *cmdName;
int err;
- if (!PyArg_ParseTuple(args, "s:deletecommand", &cmdName))
- return NULL;
- CHECK_STRING_LENGTH(cmdName);
+ CHECK_STRING_LENGTH(name);
#ifdef WITH_THREAD
if (self->threaded && self->thread_id != Tcl_GetCurrentThread()) {
@@ -2367,7 +2587,7 @@ Tkapp_DeleteCommand(PyObject *selfptr, PyObject *args)
ev->ev.proc = (Tcl_EventProc*)Tkapp_CommandProc;
ev->interp = self->interp;
ev->create = 0;
- ev->name = cmdName;
+ ev->name = name;
ev->status = &err;
ev->done = &cond;
Tkapp_ThreadSend(self, (Tcl_Event*)ev, &cond,
@@ -2378,7 +2598,7 @@ Tkapp_DeleteCommand(PyObject *selfptr, PyObject *args)
#endif
{
ENTER_TCL
- err = Tcl_DeleteCommand(self->interp, cmdName);
+ err = Tcl_DeleteCommand(self->interp, name);
LEAVE_TCL
}
if (err == -1) {
@@ -2459,17 +2679,23 @@ FileHandler(ClientData clientData, int mask)
LEAVE_PYTHON
}
+/*[clinic input]
+_tkinter.tkapp.createfilehandler
+
+ file: object
+ mask: int
+ func: object
+ /
+
+[clinic start generated code]*/
+
static PyObject *
-Tkapp_CreateFileHandler(PyObject *self, PyObject *args)
- /* args is (file, mask, func) */
+_tkinter_tkapp_createfilehandler_impl(TkappObject *self, PyObject *file,
+ int mask, PyObject *func)
+/*[clinic end generated code: output=f73ce82de801c353 input=84943a5286e47947]*/
{
FileHandler_ClientData *data;
- PyObject *file, *func;
- int mask, tfile;
-
- if (!PyArg_ParseTuple(args, "OiO:createfilehandler",
- &file, &mask, &func))
- return NULL;
+ int tfile;
CHECK_TCL_APPARTMENT;
@@ -2492,15 +2718,20 @@ Tkapp_CreateFileHandler(PyObject *self, PyObject *args)
Py_RETURN_NONE;
}
+/*[clinic input]
+_tkinter.tkapp.deletefilehandler
+
+ file: object
+ /
+
+[clinic start generated code]*/
+
static PyObject *
-Tkapp_DeleteFileHandler(PyObject *self, PyObject *args)
+_tkinter_tkapp_deletefilehandler(TkappObject *self, PyObject *file)
+/*[clinic end generated code: output=b53cc96ebf9476fd input=abbec19d66312e2a]*/
{
- PyObject *file;
int tfile;
- if (!PyArg_ParseTuple(args, "O:deletefilehandler", &file))
- return NULL;
-
CHECK_TCL_APPARTMENT;
tfile = PyObject_AsFileDescriptor(file);
@@ -2528,14 +2759,20 @@ typedef struct {
PyObject *func;
} TkttObject;
+/*[clinic input]
+_tkinter.tktimertoken.deletetimerhandler
+
+ self: self(type="TkttObject *")
+
+[clinic start generated code]*/
+
static PyObject *
-Tktt_DeleteTimerHandler(PyObject *self, PyObject *args)
+_tkinter_tktimertoken_deletetimerhandler_impl(TkttObject *self)
+/*[clinic end generated code: output=bd7fe17f328cfa55 input=25ba5dd594e52084]*/
{
- TkttObject *v = (TkttObject *)self;
+ TkttObject *v = self;
PyObject *func = v->func;
- if (!PyArg_ParseTuple(args, ":deletetimerhandler"))
- return NULL;
if (v->token != NULL) {
Tcl_DeleteTimerHandler(v->token);
v->token = NULL;
@@ -2548,12 +2785,6 @@ Tktt_DeleteTimerHandler(PyObject *self, PyObject *args)
Py_RETURN_NONE;
}
-static PyMethodDef Tktt_methods[] =
-{
- {"deletetimerhandler", Tktt_DeleteTimerHandler, METH_VARARGS},
- {NULL, NULL}
-};
-
static TkttObject *
Tktt_New(PyObject *func)
{
@@ -2595,22 +2826,6 @@ Tktt_Repr(PyObject *self)
v->func == NULL ? ", handler deleted" : "");
}
-static PyType_Slot Tktt_Type_slots[] = {
- {Py_tp_dealloc, Tktt_Dealloc},
- {Py_tp_repr, Tktt_Repr},
- {Py_tp_methods, Tktt_methods},
- {0, 0}
-};
-
-static PyType_Spec Tktt_Type_spec = {
- "_tkinter.tktimertoken",
- sizeof(TkttObject),
- 0,
- Py_TPFLAGS_DEFAULT,
- Tktt_Type_slots,
-};
-
-
/** Timer Handler **/
static void
@@ -2641,16 +2856,22 @@ TimerHandler(ClientData clientData)
LEAVE_PYTHON
}
+/*[clinic input]
+_tkinter.tkapp.createtimerhandler
+
+ milliseconds: int
+ func: object
+ /
+
+[clinic start generated code]*/
+
static PyObject *
-Tkapp_CreateTimerHandler(PyObject *self, PyObject *args)
+_tkinter_tkapp_createtimerhandler_impl(TkappObject *self, int milliseconds,
+ PyObject *func)
+/*[clinic end generated code: output=2da5959b9d031911 input=ba6729f32f0277a5]*/
{
- int milliseconds;
- PyObject *func;
TkttObject *v;
- if (!PyArg_ParseTuple(args, "iO:createtimerhandler",
- &milliseconds, &func))
- return NULL;
if (!PyCallable_Check(func)) {
PyErr_SetString(PyExc_TypeError, "bad argument list");
return NULL;
@@ -2670,18 +2891,23 @@ Tkapp_CreateTimerHandler(PyObject *self, PyObject *args)
/** Event Loop **/
+/*[clinic input]
+_tkinter.tkapp.mainloop
+
+ self: self(type="TkappObject *")
+ threshold: int = 0
+ /
+
+[clinic start generated code]*/
+
static PyObject *
-Tkapp_MainLoop(PyObject *selfptr, PyObject *args)
+_tkinter_tkapp_mainloop_impl(TkappObject *self, int threshold)
+/*[clinic end generated code: output=0ba8eabbe57841b0 input=ad57c9c1dd2b9470]*/
{
- int threshold = 0;
- TkappObject *self = (TkappObject*)selfptr;
#ifdef WITH_THREAD
PyThreadState *tstate = PyThreadState_Get();
#endif
- if (!PyArg_ParseTuple(args, "|i:mainloop", &threshold))
- return NULL;
-
CHECK_TCL_APPARTMENT;
self->dispatching = 1;
@@ -2733,44 +2959,56 @@ Tkapp_MainLoop(PyObject *selfptr, PyObject *args)
Py_RETURN_NONE;
}
+/*[clinic input]
+_tkinter.tkapp.dooneevent
+
+ flags: int = 0
+ /
+
+[clinic start generated code]*/
+
static PyObject *
-Tkapp_DoOneEvent(PyObject *self, PyObject *args)
+_tkinter_tkapp_dooneevent_impl(TkappObject *self, int flags)
+/*[clinic end generated code: output=27c6b2aa464cac29 input=6542b928e364b793]*/
{
- int flags = 0;
int rv;
- if (!PyArg_ParseTuple(args, "|i:dooneevent", &flags))
- return NULL;
-
ENTER_TCL
rv = Tcl_DoOneEvent(flags);
LEAVE_TCL
- return Py_BuildValue("i", rv);
+ return PyLong_FromLong(rv);
}
+/*[clinic input]
+_tkinter.tkapp.quit
+[clinic start generated code]*/
+
static PyObject *
-Tkapp_Quit(PyObject *self, PyObject *args)
+_tkinter_tkapp_quit_impl(TkappObject *self)
+/*[clinic end generated code: output=7f21eeff481f754f input=e03020dc38aff23c]*/
{
-
- if (!PyArg_ParseTuple(args, ":quit"))
- return NULL;
-
quitMainLoop = 1;
Py_RETURN_NONE;
}
+/*[clinic input]
+_tkinter.tkapp.interpaddr
+[clinic start generated code]*/
+
static PyObject *
-Tkapp_InterpAddr(PyObject *self, PyObject *args)
+_tkinter_tkapp_interpaddr_impl(TkappObject *self)
+/*[clinic end generated code: output=6caaae3273b3c95a input=2dd32cbddb55a111]*/
{
-
- if (!PyArg_ParseTuple(args, ":interpaddr"))
- return NULL;
-
return PyLong_FromVoidPtr(Tkapp_Interp(self));
}
+/*[clinic input]
+_tkinter.tkapp.loadtk
+[clinic start generated code]*/
+
static PyObject *
-Tkapp_TkInit(PyObject *self, PyObject *args)
+_tkinter_tkapp_loadtk_impl(TkappObject *self)
+/*[clinic end generated code: output=e9e10a954ce46d2a input=b5e82afedd6354f0]*/
{
Tcl_Interp *interp = Tkapp_Interp(self);
const char * _tk_exists = NULL;
@@ -2796,7 +3034,7 @@ Tkapp_TkInit(PyObject *self, PyObject *args)
if (err == TCL_ERROR) {
/* This sets an exception, but we cannot return right
away because we need to exit the overlap first. */
- Tkinter_Error(self);
+ Tkinter_Error((PyObject *)self);
} else {
_tk_exists = Tkapp_Result(self);
}
@@ -2831,57 +3069,21 @@ Tkapp_WantObjects(PyObject *self, PyObject *args)
Py_RETURN_NONE;
}
-static PyObject *
-Tkapp_WillDispatch(PyObject *self, PyObject *args)
-{
-
- ((TkappObject*)self)->dispatching = 1;
-
- Py_RETURN_NONE;
-}
+/*[clinic input]
+_tkinter.tkapp.willdispatch
+ self: self(type="TkappObject *")
-/**** Tkapp Method List ****/
+[clinic start generated code]*/
-static PyMethodDef Tkapp_methods[] =
+static PyObject *
+_tkinter_tkapp_willdispatch_impl(TkappObject *self)
+/*[clinic end generated code: output=0e3f46d244642155 input=2630699767808970]*/
{
- {"willdispatch", Tkapp_WillDispatch, METH_NOARGS},
- {"wantobjects", Tkapp_WantObjects, METH_VARARGS},
- {"call", Tkapp_Call, METH_VARARGS},
- {"eval", Tkapp_Eval, METH_VARARGS},
- {"evalfile", Tkapp_EvalFile, METH_VARARGS},
- {"record", Tkapp_Record, METH_VARARGS},
- {"adderrorinfo", Tkapp_AddErrorInfo, METH_VARARGS},
- {"setvar", Tkapp_SetVar, METH_VARARGS},
- {"globalsetvar", Tkapp_GlobalSetVar, METH_VARARGS},
- {"getvar", Tkapp_GetVar, METH_VARARGS},
- {"globalgetvar", Tkapp_GlobalGetVar, METH_VARARGS},
- {"unsetvar", Tkapp_UnsetVar, METH_VARARGS},
- {"globalunsetvar", Tkapp_GlobalUnsetVar, METH_VARARGS},
- {"getint", Tkapp_GetInt, METH_VARARGS},
- {"getdouble", Tkapp_GetDouble, METH_VARARGS},
- {"getboolean", Tkapp_GetBoolean, METH_O},
- {"exprstring", Tkapp_ExprString, METH_VARARGS},
- {"exprlong", Tkapp_ExprLong, METH_VARARGS},
- {"exprdouble", Tkapp_ExprDouble, METH_VARARGS},
- {"exprboolean", Tkapp_ExprBoolean, METH_VARARGS},
- {"splitlist", Tkapp_SplitList, METH_VARARGS},
- {"split", Tkapp_Split, METH_VARARGS},
- {"createcommand", Tkapp_CreateCommand, METH_VARARGS},
- {"deletecommand", Tkapp_DeleteCommand, METH_VARARGS},
-#ifdef HAVE_CREATEFILEHANDLER
- {"createfilehandler", Tkapp_CreateFileHandler, METH_VARARGS},
- {"deletefilehandler", Tkapp_DeleteFileHandler, METH_VARARGS},
-#endif
- {"createtimerhandler", Tkapp_CreateTimerHandler, METH_VARARGS},
- {"mainloop", Tkapp_MainLoop, METH_VARARGS},
- {"dooneevent", Tkapp_DoOneEvent, METH_VARARGS},
- {"quit", Tkapp_Quit, METH_VARARGS},
- {"interpaddr", Tkapp_InterpAddr, METH_VARARGS},
- {"loadtk", Tkapp_TkInit, METH_NOARGS},
- {NULL, NULL}
-};
+ self->dispatching = 1;
+ Py_RETURN_NONE;
+}
/**** Tkapp Type Methods ****/
@@ -2899,41 +3101,26 @@ Tkapp_Dealloc(PyObject *self)
DisableEventHook();
}
-static PyType_Slot Tkapp_Type_slots[] = {
- {Py_tp_dealloc, Tkapp_Dealloc},
- {Py_tp_methods, Tkapp_methods},
- {0, 0}
-};
-
-
-static PyType_Spec Tkapp_Type_spec = {
- "_tkinter.tkapp",
- sizeof(TkappObject),
- 0,
- Py_TPFLAGS_DEFAULT,
- Tkapp_Type_slots,
-};
-
/**** Tkinter Module ****/
typedef struct {
PyObject* tuple;
- int size; /* current size */
- int maxsize; /* allocated size */
+ Py_ssize_t size; /* current size */
+ Py_ssize_t maxsize; /* allocated size */
} FlattenContext;
static int
-_bump(FlattenContext* context, int size)
+_bump(FlattenContext* context, Py_ssize_t size)
{
/* expand tuple to hold (at least) size new items.
return true if successful, false if an exception was raised */
- int maxsize = context->maxsize * 2;
+ Py_ssize_t maxsize = context->maxsize * 2; /* never overflows */
if (maxsize < context->size + size)
- maxsize = context->size + size;
+ maxsize = context->size + size; /* never overflows */
context->maxsize = maxsize;
@@ -2945,41 +3132,21 @@ _flatten1(FlattenContext* context, PyObject* item, int depth)
{
/* add tuple or list to argument tuple (recursively) */
- int i, size;
+ Py_ssize_t i, size;
if (depth > 1000) {
PyErr_SetString(PyExc_ValueError,
"nesting too deep in _flatten");
return 0;
- } else if (PyList_Check(item)) {
- size = PyList_GET_SIZE(item);
+ } else if (PyTuple_Check(item) || PyList_Check(item)) {
+ size = PySequence_Fast_GET_SIZE(item);
/* preallocate (assume no nesting) */
if (context->size + size > context->maxsize &&
!_bump(context, size))
return 0;
/* copy items to output tuple */
for (i = 0; i < size; i++) {
- PyObject *o = PyList_GET_ITEM(item, i);
- if (PyList_Check(o) || PyTuple_Check(o)) {
- if (!_flatten1(context, o, depth + 1))
- return 0;
- } else if (o != Py_None) {
- if (context->size + 1 > context->maxsize &&
- !_bump(context, 1))
- return 0;
- Py_INCREF(o);
- PyTuple_SET_ITEM(context->tuple,
- context->size++, o);
- }
- }
- } else if (PyTuple_Check(item)) {
- /* same, for tuples */
- size = PyTuple_GET_SIZE(item);
- if (context->size + size > context->maxsize &&
- !_bump(context, size))
- return 0;
- for (i = 0; i < size; i++) {
- PyObject *o = PyTuple_GET_ITEM(item, i);
+ PyObject *o = PySequence_Fast_GET_ITEM(item, i);
if (PyList_Check(o) || PyTuple_Check(o)) {
if (!_flatten1(context, o, depth + 1))
return 0;
@@ -2999,14 +3166,19 @@ _flatten1(FlattenContext* context, PyObject* item, int depth)
return 1;
}
+/*[clinic input]
+_tkinter._flatten
+
+ item: object
+ /
+
+[clinic start generated code]*/
+
static PyObject *
-Tkinter_Flatten(PyObject* self, PyObject* args)
+_tkinter__flatten(PyModuleDef *module, PyObject *item)
+/*[clinic end generated code: output=9505049ec74c3480 input=6b9c12260aa1157f]*/
{
FlattenContext context;
- PyObject* item;
-
- if (!PyArg_ParseTuple(args, "O:_flatten", &item))
- return NULL;
context.maxsize = PySequence_Size(item);
if (context.maxsize < 0)
@@ -3029,26 +3201,33 @@ Tkinter_Flatten(PyObject* self, PyObject* args)
return context.tuple;
}
+/*[clinic input]
+_tkinter.create
+
+ screenName: str(accept={str, NoneType}) = NULL
+ baseName: str = NULL
+ className: str = "Tk"
+ interactive: int(c_default="0") = False
+ wantobjects: int(c_default="0") = False
+ wantTk: int(c_default="1") = True
+ if false, then Tk_Init() doesn't get called
+ sync: int(c_default="0") = False
+ if true, then pass -sync to wish
+ use: str(accept={str, NoneType}) = NULL
+ if not None, then pass -use to wish
+ /
+
+[clinic start generated code]*/
+
static PyObject *
-Tkinter_Create(PyObject *self, PyObject *args)
-{
- char *screenName = NULL;
- char *baseName = NULL; /* XXX this is not used anymore;
- try getting rid of it. */
- char *className = NULL;
- int interactive = 0;
- int wantobjects = 0;
- int wantTk = 1; /* If false, then Tk_Init() doesn't get called */
- int sync = 0; /* pass -sync to wish */
- char *use = NULL; /* pass -use to wish */
-
- className = "Tk";
-
- if (!PyArg_ParseTuple(args, "|zssiiiiz:create",
- &screenName, &baseName, &className,
- &interactive, &wantobjects, &wantTk,
- &sync, &use))
- return NULL;
+_tkinter_create_impl(PyModuleDef *module, const char *screenName,
+ const char *baseName, const char *className,
+ int interactive, int wantobjects, int wantTk, int sync,
+ const char *use)
+/*[clinic end generated code: output=b8847800fc3b27eb input=0d522aad1cb0ca0e]*/
+{
+ /* XXX baseName is not used anymore;
+ * try getting rid of it. */
CHECK_STRING_LENGTH(screenName);
CHECK_STRING_LENGTH(baseName);
CHECK_STRING_LENGTH(className);
@@ -3059,12 +3238,21 @@ Tkinter_Create(PyObject *self, PyObject *args)
sync, use);
}
+/*[clinic input]
+_tkinter.setbusywaitinterval
+
+ new_val: int
+ /
+
+Set the busy-wait interval in milliseconds between successive calls to Tcl_DoOneEvent in a threaded Python interpreter.
+
+It should be set to a divisor of the maximum time between frames in an animation.
+[clinic start generated code]*/
+
static PyObject *
-Tkinter_setbusywaitinterval(PyObject *self, PyObject *args)
+_tkinter_setbusywaitinterval_impl(PyModuleDef *module, int new_val)
+/*[clinic end generated code: output=0b9d7ef7940461ea input=deca1d6f9e6dae47]*/
{
- int new_val;
- if (!PyArg_ParseTuple(args, "i:setbusywaitinterval", &new_val))
- return NULL;
if (new_val < 0) {
PyErr_SetString(PyExc_ValueError,
"busywaitinterval must be >= 0");
@@ -3074,34 +3262,103 @@ Tkinter_setbusywaitinterval(PyObject *self, PyObject *args)
Py_RETURN_NONE;
}
-static char setbusywaitinterval_doc[] =
-"setbusywaitinterval(n) -> None\n\
-\n\
-Set the busy-wait interval in milliseconds between successive\n\
-calls to Tcl_DoOneEvent in a threaded Python interpreter.\n\
-It should be set to a divisor of the maximum time between\n\
-frames in an animation.";
+/*[clinic input]
+_tkinter.getbusywaitinterval -> int
-static PyObject *
-Tkinter_getbusywaitinterval(PyObject *self, PyObject *args)
+Return the current busy-wait interval between successive calls to Tcl_DoOneEvent in a threaded Python interpreter.
+[clinic start generated code]*/
+
+static int
+_tkinter_getbusywaitinterval_impl(PyModuleDef *module)
+/*[clinic end generated code: output=9d09eee026e96971 input=a695878d2d576a84]*/
{
- return PyLong_FromLong(Tkinter_busywaitinterval);
+ return Tkinter_busywaitinterval;
}
-static char getbusywaitinterval_doc[] =
-"getbusywaitinterval() -> int\n\
-\n\
-Return the current busy-wait interval between successive\n\
-calls to Tcl_DoOneEvent in a threaded Python interpreter.";
+#include "clinic/_tkinter.c.h"
+
+static PyMethodDef Tktt_methods[] =
+{
+ _TKINTER_TKTIMERTOKEN_DELETETIMERHANDLER_METHODDEF
+ {NULL, NULL}
+};
+
+static PyType_Slot Tktt_Type_slots[] = {
+ {Py_tp_dealloc, Tktt_Dealloc},
+ {Py_tp_repr, Tktt_Repr},
+ {Py_tp_methods, Tktt_methods},
+ {0, 0}
+};
+
+static PyType_Spec Tktt_Type_spec = {
+ "_tkinter.tktimertoken",
+ sizeof(TkttObject),
+ 0,
+ Py_TPFLAGS_DEFAULT,
+ Tktt_Type_slots,
+};
+
+
+/**** Tkapp Method List ****/
+
+static PyMethodDef Tkapp_methods[] =
+{
+ _TKINTER_TKAPP_WILLDISPATCH_METHODDEF
+ {"wantobjects", Tkapp_WantObjects, METH_VARARGS},
+ {"call", Tkapp_Call, METH_VARARGS},
+ _TKINTER_TKAPP_EVAL_METHODDEF
+ _TKINTER_TKAPP_EVALFILE_METHODDEF
+ _TKINTER_TKAPP_RECORD_METHODDEF
+ _TKINTER_TKAPP_ADDERRINFO_METHODDEF
+ {"setvar", Tkapp_SetVar, METH_VARARGS},
+ {"globalsetvar", Tkapp_GlobalSetVar, METH_VARARGS},
+ {"getvar", Tkapp_GetVar, METH_VARARGS},
+ {"globalgetvar", Tkapp_GlobalGetVar, METH_VARARGS},
+ {"unsetvar", Tkapp_UnsetVar, METH_VARARGS},
+ {"globalunsetvar", Tkapp_GlobalUnsetVar, METH_VARARGS},
+ _TKINTER_TKAPP_GETINT_METHODDEF
+ _TKINTER_TKAPP_GETDOUBLE_METHODDEF
+ _TKINTER_TKAPP_GETBOOLEAN_METHODDEF
+ _TKINTER_TKAPP_EXPRSTRING_METHODDEF
+ _TKINTER_TKAPP_EXPRLONG_METHODDEF
+ _TKINTER_TKAPP_EXPRDOUBLE_METHODDEF
+ _TKINTER_TKAPP_EXPRBOOLEAN_METHODDEF
+ _TKINTER_TKAPP_SPLITLIST_METHODDEF
+ _TKINTER_TKAPP_SPLIT_METHODDEF
+ _TKINTER_TKAPP_CREATECOMMAND_METHODDEF
+ _TKINTER_TKAPP_DELETECOMMAND_METHODDEF
+ _TKINTER_TKAPP_CREATEFILEHANDLER_METHODDEF
+ _TKINTER_TKAPP_DELETEFILEHANDLER_METHODDEF
+ _TKINTER_TKAPP_CREATETIMERHANDLER_METHODDEF
+ _TKINTER_TKAPP_MAINLOOP_METHODDEF
+ _TKINTER_TKAPP_DOONEEVENT_METHODDEF
+ _TKINTER_TKAPP_QUIT_METHODDEF
+ _TKINTER_TKAPP_INTERPADDR_METHODDEF
+ _TKINTER_TKAPP_LOADTK_METHODDEF
+ {NULL, NULL}
+};
+
+static PyType_Slot Tkapp_Type_slots[] = {
+ {Py_tp_dealloc, Tkapp_Dealloc},
+ {Py_tp_methods, Tkapp_methods},
+ {0, 0}
+};
+
+
+static PyType_Spec Tkapp_Type_spec = {
+ "_tkinter.tkapp",
+ sizeof(TkappObject),
+ 0,
+ Py_TPFLAGS_DEFAULT,
+ Tkapp_Type_slots,
+};
static PyMethodDef moduleMethods[] =
{
- {"_flatten", Tkinter_Flatten, METH_VARARGS},
- {"create", Tkinter_Create, METH_VARARGS},
- {"setbusywaitinterval",Tkinter_setbusywaitinterval, METH_VARARGS,
- setbusywaitinterval_doc},
- {"getbusywaitinterval",(PyCFunction)Tkinter_getbusywaitinterval,
- METH_NOARGS, getbusywaitinterval_doc},
+ _TKINTER__FLATTEN_METHODDEF
+ _TKINTER_CREATE_METHODDEF
+ _TKINTER_SETBUSYWAITINTERVAL_METHODDEF
+ _TKINTER_GETBUSYWAITINTERVAL_METHODDEF
{NULL, NULL}
};
@@ -3345,8 +3602,40 @@ PyInit__tkinter(void)
uexe = PyUnicode_FromWideChar(Py_GetProgramName(), -1);
if (uexe) {
cexe = PyUnicode_EncodeFSDefault(uexe);
- if (cexe)
+ if (cexe) {
+#ifdef MS_WINDOWS
+ int set_var = 0;
+ PyObject *str_path;
+ wchar_t *wcs_path;
+ DWORD ret;
+
+ ret = GetEnvironmentVariableW(L"TCL_LIBRARY", NULL, 0);
+
+ if (!ret && GetLastError() == ERROR_ENVVAR_NOT_FOUND) {
+ str_path = _get_tcl_lib_path();
+ if (str_path == NULL && PyErr_Occurred()) {
+ return NULL;
+ }
+ if (str_path != NULL) {
+ wcs_path = PyUnicode_AsWideCharString(str_path, NULL);
+ if (wcs_path == NULL) {
+ return NULL;
+ }
+ SetEnvironmentVariableW(L"TCL_LIBRARY", wcs_path);
+ set_var = 1;
+ }
+ }
+
Tcl_FindExecutable(PyBytes_AsString(cexe));
+
+ if (set_var) {
+ SetEnvironmentVariableW(L"TCL_LIBRARY", NULL);
+ PyMem_Free(wcs_path);
+ }
+#else
+ Tcl_FindExecutable(PyBytes_AsString(cexe));
+#endif /* MS_WINDOWS */
+ }
Py_XDECREF(cexe);
Py_DECREF(uexe);
}
diff --git a/Modules/_tracemalloc.c b/Modules/_tracemalloc.c
index 409f4dbdd5..226a473b4c 100644
--- a/Modules/_tracemalloc.c
+++ b/Modules/_tracemalloc.c
@@ -16,14 +16,11 @@ static void raw_free(void *ptr);
# define TRACE_DEBUG
#endif
-#define _STR(VAL) #VAL
-#define STR(VAL) _STR(VAL)
-
/* Protected by the GIL */
static struct {
- PyMemAllocator mem;
- PyMemAllocator raw;
- PyMemAllocator obj;
+ PyMemAllocatorEx mem;
+ PyMemAllocatorEx raw;
+ PyMemAllocatorEx obj;
} allocators;
static struct {
@@ -82,7 +79,7 @@ typedef struct {
(sizeof(traceback_t) + sizeof(frame_t) * (NFRAME - 1))
#define MAX_NFRAME \
- ((INT_MAX - sizeof(traceback_t)) / sizeof(frame_t) + 1)
+ ((INT_MAX - (int)sizeof(traceback_t)) / (int)sizeof(frame_t) + 1)
static PyObject *unknown_filename = NULL;
static traceback_t tracemalloc_empty_traceback;
@@ -476,17 +473,22 @@ tracemalloc_remove_trace(void *ptr)
}
static void*
-tracemalloc_malloc(void *ctx, size_t size)
+tracemalloc_alloc(int use_calloc, void *ctx, size_t nelem, size_t elsize)
{
- PyMemAllocator *alloc = (PyMemAllocator *)ctx;
+ PyMemAllocatorEx *alloc = (PyMemAllocatorEx *)ctx;
void *ptr;
- ptr = alloc->malloc(alloc->ctx, size);
+ assert(elsize == 0 || nelem <= PY_SIZE_MAX / elsize);
+
+ if (use_calloc)
+ ptr = alloc->calloc(alloc->ctx, nelem, elsize);
+ else
+ ptr = alloc->malloc(alloc->ctx, nelem * elsize);
if (ptr == NULL)
return NULL;
TABLES_LOCK();
- if (tracemalloc_add_trace(ptr, size) < 0) {
+ if (tracemalloc_add_trace(ptr, nelem * elsize) < 0) {
/* Failed to allocate a trace for the new memory block */
TABLES_UNLOCK();
alloc->free(alloc->ctx, ptr);
@@ -499,7 +501,7 @@ tracemalloc_malloc(void *ctx, size_t size)
static void*
tracemalloc_realloc(void *ctx, void *ptr, size_t new_size)
{
- PyMemAllocator *alloc = (PyMemAllocator *)ctx;
+ PyMemAllocatorEx *alloc = (PyMemAllocatorEx *)ctx;
void *ptr2;
ptr2 = alloc->realloc(alloc->ctx, ptr, new_size);
@@ -544,7 +546,7 @@ tracemalloc_realloc(void *ctx, void *ptr, size_t new_size)
static void
tracemalloc_free(void *ctx, void *ptr)
{
- PyMemAllocator *alloc = (PyMemAllocator *)ctx;
+ PyMemAllocatorEx *alloc = (PyMemAllocatorEx *)ctx;
if (ptr == NULL)
return;
@@ -560,13 +562,16 @@ tracemalloc_free(void *ctx, void *ptr)
}
static void*
-tracemalloc_malloc_gil(void *ctx, size_t size)
+tracemalloc_alloc_gil(int use_calloc, void *ctx, size_t nelem, size_t elsize)
{
void *ptr;
if (get_reentrant()) {
- PyMemAllocator *alloc = (PyMemAllocator *)ctx;
- return alloc->malloc(alloc->ctx, size);
+ PyMemAllocatorEx *alloc = (PyMemAllocatorEx *)ctx;
+ if (use_calloc)
+ return alloc->calloc(alloc->ctx, nelem, elsize);
+ else
+ return alloc->malloc(alloc->ctx, nelem * elsize);
}
/* Ignore reentrant call. PyObjet_Malloc() calls PyMem_Malloc() for
@@ -574,13 +579,25 @@ tracemalloc_malloc_gil(void *ctx, size_t size)
allocation twice. */
set_reentrant(1);
- ptr = tracemalloc_malloc(ctx, size);
+ ptr = tracemalloc_alloc(use_calloc, ctx, nelem, elsize);
set_reentrant(0);
return ptr;
}
static void*
+tracemalloc_malloc_gil(void *ctx, size_t size)
+{
+ return tracemalloc_alloc_gil(0, ctx, 1, size);
+}
+
+static void*
+tracemalloc_calloc_gil(void *ctx, size_t nelem, size_t elsize)
+{
+ return tracemalloc_alloc_gil(1, ctx, nelem, elsize);
+}
+
+static void*
tracemalloc_realloc_gil(void *ctx, void *ptr, size_t new_size)
{
void *ptr2;
@@ -590,7 +607,7 @@ tracemalloc_realloc_gil(void *ctx, void *ptr, size_t new_size)
Example: PyMem_RawRealloc() is called internally by pymalloc
(_PyObject_Malloc() and _PyObject_Realloc()) to allocate a new
arena (new_arena()). */
- PyMemAllocator *alloc = (PyMemAllocator *)ctx;
+ PyMemAllocatorEx *alloc = (PyMemAllocatorEx *)ctx;
ptr2 = alloc->realloc(alloc->ctx, ptr, new_size);
if (ptr2 != NULL && ptr != NULL) {
@@ -614,7 +631,7 @@ tracemalloc_realloc_gil(void *ctx, void *ptr, size_t new_size)
#ifdef TRACE_RAW_MALLOC
static void*
-tracemalloc_raw_malloc(void *ctx, size_t size)
+tracemalloc_raw_alloc(int use_calloc, void *ctx, size_t nelem, size_t elsize)
{
#ifdef WITH_THREAD
PyGILState_STATE gil_state;
@@ -622,8 +639,11 @@ tracemalloc_raw_malloc(void *ctx, size_t size)
void *ptr;
if (get_reentrant()) {
- PyMemAllocator *alloc = (PyMemAllocator *)ctx;
- return alloc->malloc(alloc->ctx, size);
+ PyMemAllocatorEx *alloc = (PyMemAllocatorEx *)ctx;
+ if (use_calloc)
+ return alloc->calloc(alloc->ctx, nelem, elsize);
+ else
+ return alloc->malloc(alloc->ctx, nelem * elsize);
}
/* Ignore reentrant call. PyGILState_Ensure() may call PyMem_RawMalloc()
@@ -633,10 +653,10 @@ tracemalloc_raw_malloc(void *ctx, size_t size)
#ifdef WITH_THREAD
gil_state = PyGILState_Ensure();
- ptr = tracemalloc_malloc(ctx, size);
+ ptr = tracemalloc_alloc(use_calloc, ctx, nelem, elsize);
PyGILState_Release(gil_state);
#else
- ptr = tracemalloc_malloc(ctx, size);
+ ptr = tracemalloc_alloc(use_calloc, ctx, nelem, elsize);
#endif
set_reentrant(0);
@@ -644,6 +664,18 @@ tracemalloc_raw_malloc(void *ctx, size_t size)
}
static void*
+tracemalloc_raw_malloc(void *ctx, size_t size)
+{
+ return tracemalloc_raw_alloc(0, ctx, 1, size);
+}
+
+static void*
+tracemalloc_raw_calloc(void *ctx, size_t nelem, size_t elsize)
+{
+ return tracemalloc_raw_alloc(1, ctx, nelem, elsize);
+}
+
+static void*
tracemalloc_raw_realloc(void *ctx, void *ptr, size_t new_size)
{
#ifdef WITH_THREAD
@@ -653,7 +685,7 @@ tracemalloc_raw_realloc(void *ctx, void *ptr, size_t new_size)
if (get_reentrant()) {
/* Reentrant call to PyMem_RawRealloc(). */
- PyMemAllocator *alloc = (PyMemAllocator *)ctx;
+ PyMemAllocatorEx *alloc = (PyMemAllocatorEx *)ctx;
ptr2 = alloc->realloc(alloc->ctx, ptr, new_size);
@@ -831,7 +863,7 @@ tracemalloc_deinit(void)
static int
tracemalloc_start(int max_nframe)
{
- PyMemAllocator alloc;
+ PyMemAllocatorEx alloc;
size_t size;
if (tracemalloc_init() < 0)
@@ -856,6 +888,7 @@ tracemalloc_start(int max_nframe)
#ifdef TRACE_RAW_MALLOC
alloc.malloc = tracemalloc_raw_malloc;
+ alloc.calloc = tracemalloc_raw_calloc;
alloc.realloc = tracemalloc_raw_realloc;
alloc.free = tracemalloc_free;
@@ -865,6 +898,7 @@ tracemalloc_start(int max_nframe)
#endif
alloc.malloc = tracemalloc_malloc_gil;
+ alloc.calloc = tracemalloc_calloc_gil;
alloc.realloc = tracemalloc_realloc_gil;
alloc.free = tracemalloc_free;
@@ -1195,7 +1229,7 @@ py_tracemalloc_start(PyObject *self, PyObject *args)
if (nframe < 1 || nframe > MAX_NFRAME) {
PyErr_Format(PyExc_ValueError,
"the number of frames must be in range [1; %i]",
- (int)MAX_NFRAME);
+ MAX_NFRAME);
return NULL;
}
nframe_int = Py_SAFE_DOWNCAST(nframe, Py_ssize_t, int);
diff --git a/Modules/_weakref.c b/Modules/_weakref.c
index da589314ea..7c99d7e786 100644
--- a/Modules/_weakref.c
+++ b/Modules/_weakref.c
@@ -9,6 +9,8 @@ module _weakref
[clinic start generated code]*/
/*[clinic end generated code: output=da39a3ee5e6b4b0d input=ffec73b85846596d]*/
+#include "clinic/_weakref.c.h"
+
/*[clinic input]
_weakref.getweakrefcount -> Py_ssize_t
@@ -19,36 +21,9 @@ _weakref.getweakrefcount -> Py_ssize_t
Return the number of weak references to 'object'.
[clinic start generated code]*/
-PyDoc_STRVAR(_weakref_getweakrefcount__doc__,
-"getweakrefcount($module, object, /)\n"
-"--\n"
-"\n"
-"Return the number of weak references to \'object\'.");
-
-#define _WEAKREF_GETWEAKREFCOUNT_METHODDEF \
- {"getweakrefcount", (PyCFunction)_weakref_getweakrefcount, METH_O, _weakref_getweakrefcount__doc__},
-
-static Py_ssize_t
-_weakref_getweakrefcount_impl(PyModuleDef *module, PyObject *object);
-
-static PyObject *
-_weakref_getweakrefcount(PyModuleDef *module, PyObject *object)
-{
- PyObject *return_value = NULL;
- Py_ssize_t _return_value;
-
- _return_value = _weakref_getweakrefcount_impl(module, object);
- if ((_return_value == -1) && PyErr_Occurred())
- goto exit;
- return_value = PyLong_FromSsize_t(_return_value);
-
-exit:
- return return_value;
-}
-
static Py_ssize_t
_weakref_getweakrefcount_impl(PyModuleDef *module, PyObject *object)
-/*[clinic end generated code: output=032eedbfd7d69e10 input=cedb69711b6a2507]*/
+/*[clinic end generated code: output=6a6ad0b98285e468 input=cedb69711b6a2507]*/
{
PyWeakReference **list;
diff --git a/Modules/_winapi.c b/Modules/_winapi.c
index d472c9ee53..3e7f18741f 100644
--- a/Modules/_winapi.c
+++ b/Modules/_winapi.c
@@ -40,6 +40,7 @@
#define WINDOWS_LEAN_AND_MEAN
#include "windows.h"
#include <crtdbg.h>
+#include "winreparse.h"
#if defined(MS_WIN32) && !defined(MS_WIN64)
#define HANDLE_TO_PYNUM(handle) \
@@ -57,8 +58,6 @@
#define F_HANDLE F_POINTER
#define F_DWORD "k"
-#define F_BOOL "i"
-#define F_UINT "I"
#define T_HANDLE T_POINTER
@@ -146,17 +145,68 @@ overlapped_dealloc(OverlappedObject *self)
PyObject_Del(self);
}
+/*[clinic input]
+module _winapi
+class _winapi.Overlapped "OverlappedObject *" "&OverlappedType"
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=c13d3f5fd1dabb84]*/
+
+/*[python input]
+def create_converter(type_, format_unit):
+ name = type_ + '_converter'
+ # registered upon creation by CConverter's metaclass
+ type(name, (CConverter,), {'type': type_, 'format_unit': format_unit})
+
+# format unit differs between platforms for these
+create_converter('HANDLE', '" F_HANDLE "')
+create_converter('HMODULE', '" F_HANDLE "')
+create_converter('LPSECURITY_ATTRIBUTES', '" F_POINTER "')
+
+create_converter('BOOL', 'i') # F_BOOL used previously (always 'i')
+create_converter('DWORD', 'k') # F_DWORD is always "k" (which is much shorter)
+create_converter('LPCTSTR', 's')
+create_converter('LPWSTR', 'u')
+create_converter('UINT', 'I') # F_UINT used previously (always 'I')
+
+class HANDLE_return_converter(CReturnConverter):
+ type = 'HANDLE'
+
+ def render(self, function, data):
+ self.declare(data)
+ self.err_occurred_if("_return_value == INVALID_HANDLE_VALUE", data)
+ data.return_conversion.append(
+ 'if (_return_value == NULL)\n Py_RETURN_NONE;\n')
+ data.return_conversion.append(
+ 'return_value = HANDLE_TO_PYNUM(_return_value);\n')
+
+class DWORD_return_converter(CReturnConverter):
+ type = 'DWORD'
+
+ def render(self, function, data):
+ self.declare(data)
+ self.err_occurred_if("_return_value == DWORD_MAX", data)
+ data.return_conversion.append(
+ 'return_value = Py_BuildValue("k", _return_value);\n')
+[python start generated code]*/
+/*[python end generated code: output=da39a3ee5e6b4b0d input=374076979596ebba]*/
+
+#include "clinic/_winapi.c.h"
+
+/*[clinic input]
+_winapi.Overlapped.GetOverlappedResult
+
+ wait: bool
+ /
+[clinic start generated code]*/
+
static PyObject *
-overlapped_GetOverlappedResult(OverlappedObject *self, PyObject *waitobj)
+_winapi_Overlapped_GetOverlappedResult_impl(OverlappedObject *self, int wait)
+/*[clinic end generated code: output=bdd0c1ed6518cd03 input=194505ee8e0e3565]*/
{
- int wait;
BOOL res;
DWORD transferred = 0;
DWORD err;
- wait = PyObject_IsTrue(waitobj);
- if (wait < 0)
- return NULL;
Py_BEGIN_ALLOW_THREADS
res = GetOverlappedResult(self->handle, &self->overlapped, &transferred,
wait != 0);
@@ -185,8 +235,13 @@ overlapped_GetOverlappedResult(OverlappedObject *self, PyObject *waitobj)
return Py_BuildValue("II", (unsigned) transferred, (unsigned) err);
}
+/*[clinic input]
+_winapi.Overlapped.getbuffer
+[clinic start generated code]*/
+
static PyObject *
-overlapped_getbuffer(OverlappedObject *self)
+_winapi_Overlapped_getbuffer_impl(OverlappedObject *self)
+/*[clinic end generated code: output=95a3eceefae0f748 input=347fcfd56b4ceabd]*/
{
PyObject *res;
if (!self->completed) {
@@ -200,8 +255,13 @@ overlapped_getbuffer(OverlappedObject *self)
return res;
}
+/*[clinic input]
+_winapi.Overlapped.cancel
+[clinic start generated code]*/
+
static PyObject *
-overlapped_cancel(OverlappedObject *self)
+_winapi_Overlapped_cancel_impl(OverlappedObject *self)
+/*[clinic end generated code: output=fcb9ab5df4ebdae5 input=cbf3da142290039f]*/
{
BOOL res = TRUE;
@@ -222,10 +282,9 @@ overlapped_cancel(OverlappedObject *self)
}
static PyMethodDef overlapped_methods[] = {
- {"GetOverlappedResult", (PyCFunction) overlapped_GetOverlappedResult,
- METH_O, NULL},
- {"getbuffer", (PyCFunction) overlapped_getbuffer, METH_NOARGS, NULL},
- {"cancel", (PyCFunction) overlapped_cancel, METH_NOARGS, NULL},
+ _WINAPI_OVERLAPPED_GETOVERLAPPEDRESULT_METHODDEF
+ _WINAPI_OVERLAPPED_GETBUFFER_METHODDEF
+ _WINAPI_OVERLAPPED_CANCEL_METHODDEF
{NULL}
};
@@ -299,22 +358,23 @@ new_overlapped(HANDLE handle)
/* -------------------------------------------------------------------- */
/* windows API functions */
-PyDoc_STRVAR(CloseHandle_doc,
-"CloseHandle(handle) -> None\n\
-\n\
-Close handle.");
+/*[clinic input]
+_winapi.CloseHandle
+
+ handle: HANDLE
+ /
+
+Close handle.
+[clinic start generated code]*/
static PyObject *
-winapi_CloseHandle(PyObject *self, PyObject *args)
+_winapi_CloseHandle_impl(PyModuleDef *module, HANDLE handle)
+/*[clinic end generated code: output=0548595c71cb4bf7 input=7f0e4ac36e0352b8]*/
{
- HANDLE hObject;
BOOL success;
- if (!PyArg_ParseTuple(args, F_HANDLE ":CloseHandle", &hObject))
- return NULL;
-
Py_BEGIN_ALLOW_THREADS
- success = CloseHandle(hObject);
+ success = CloseHandle(handle);
Py_END_ALLOW_THREADS
if (!success)
@@ -323,28 +383,29 @@ winapi_CloseHandle(PyObject *self, PyObject *args)
Py_RETURN_NONE;
}
+/*[clinic input]
+_winapi.ConnectNamedPipe
+
+ handle: HANDLE
+ overlapped as use_overlapped: int(c_default='0') = False
+[clinic start generated code]*/
+
static PyObject *
-winapi_ConnectNamedPipe(PyObject *self, PyObject *args, PyObject *kwds)
+_winapi_ConnectNamedPipe_impl(PyModuleDef *module, HANDLE handle,
+ int use_overlapped)
+/*[clinic end generated code: output=fed3b165d1bca95a input=edc83da007ebf3be]*/
{
- HANDLE hNamedPipe;
- int use_overlapped = 0;
BOOL success;
OverlappedObject *overlapped = NULL;
- static char *kwlist[] = {"handle", "overlapped", NULL};
-
- if (!PyArg_ParseTupleAndKeywords(args, kwds,
- F_HANDLE "|" F_BOOL, kwlist,
- &hNamedPipe, &use_overlapped))
- return NULL;
if (use_overlapped) {
- overlapped = new_overlapped(hNamedPipe);
+ overlapped = new_overlapped(handle);
if (!overlapped)
return NULL;
}
Py_BEGIN_ALLOW_THREADS
- success = ConnectNamedPipe(hNamedPipe,
+ success = ConnectNamedPipe(handle,
overlapped ? &overlapped->overlapped : NULL);
Py_END_ALLOW_THREADS
@@ -368,94 +429,238 @@ winapi_ConnectNamedPipe(PyObject *self, PyObject *args, PyObject *kwds)
Py_RETURN_NONE;
}
-static PyObject *
-winapi_CreateFile(PyObject *self, PyObject *args)
+/*[clinic input]
+_winapi.CreateFile -> HANDLE
+
+ file_name: LPCTSTR
+ desired_access: DWORD
+ share_mode: DWORD
+ security_attributes: LPSECURITY_ATTRIBUTES
+ creation_disposition: DWORD
+ flags_and_attributes: DWORD
+ template_file: HANDLE
+ /
+[clinic start generated code]*/
+
+static HANDLE
+_winapi_CreateFile_impl(PyModuleDef *module, LPCTSTR file_name,
+ DWORD desired_access, DWORD share_mode,
+ LPSECURITY_ATTRIBUTES security_attributes,
+ DWORD creation_disposition,
+ DWORD flags_and_attributes, HANDLE template_file)
+/*[clinic end generated code: output=c6e1d78f8affd10c input=6423c3e40372dbd5]*/
{
- LPCTSTR lpFileName;
- DWORD dwDesiredAccess;
- DWORD dwShareMode;
- LPSECURITY_ATTRIBUTES lpSecurityAttributes;
- DWORD dwCreationDisposition;
- DWORD dwFlagsAndAttributes;
- HANDLE hTemplateFile;
HANDLE handle;
- if (!PyArg_ParseTuple(args, "s" F_DWORD F_DWORD F_POINTER
- F_DWORD F_DWORD F_HANDLE,
- &lpFileName, &dwDesiredAccess, &dwShareMode,
- &lpSecurityAttributes, &dwCreationDisposition,
- &dwFlagsAndAttributes, &hTemplateFile))
- return NULL;
-
Py_BEGIN_ALLOW_THREADS
- handle = CreateFile(lpFileName, dwDesiredAccess,
- dwShareMode, lpSecurityAttributes,
- dwCreationDisposition,
- dwFlagsAndAttributes, hTemplateFile);
+ handle = CreateFile(file_name, desired_access,
+ share_mode, security_attributes,
+ creation_disposition,
+ flags_and_attributes, template_file);
Py_END_ALLOW_THREADS
if (handle == INVALID_HANDLE_VALUE)
- return PyErr_SetFromWindowsErr(0);
+ PyErr_SetFromWindowsErr(0);
- return Py_BuildValue(F_HANDLE, handle);
+ return handle;
}
+/*[clinic input]
+_winapi.CreateJunction
+
+ src_path: LPWSTR
+ dst_path: LPWSTR
+ /
+[clinic start generated code]*/
+
static PyObject *
-winapi_CreateNamedPipe(PyObject *self, PyObject *args)
+_winapi_CreateJunction_impl(PyModuleDef *module, LPWSTR src_path,
+ LPWSTR dst_path)
+/*[clinic end generated code: output=eccae9364e46f6da input=8cd1f9964b6e3d36]*/
{
- LPCTSTR lpName;
- DWORD dwOpenMode;
- DWORD dwPipeMode;
- DWORD nMaxInstances;
- DWORD nOutBufferSize;
- DWORD nInBufferSize;
- DWORD nDefaultTimeOut;
- LPSECURITY_ATTRIBUTES lpSecurityAttributes;
- HANDLE handle;
+ /* Privilege adjustment */
+ HANDLE token = NULL;
+ TOKEN_PRIVILEGES tp;
+
+ /* Reparse data buffer */
+ const USHORT prefix_len = 4;
+ USHORT print_len = 0;
+ USHORT rdb_size = 0;
+ PREPARSE_DATA_BUFFER rdb = NULL;
+
+ /* Junction point creation */
+ HANDLE junction = NULL;
+ DWORD ret = 0;
+
+ if (src_path == NULL || dst_path == NULL)
+ return PyErr_SetFromWindowsErr(ERROR_INVALID_PARAMETER);
+
+ if (wcsncmp(src_path, L"\\??\\", prefix_len) == 0)
+ return PyErr_SetFromWindowsErr(ERROR_INVALID_PARAMETER);
+
+ /* Adjust privileges to allow rewriting directory entry as a
+ junction point. */
+ if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &token))
+ goto cleanup;
+
+ if (!LookupPrivilegeValue(NULL, SE_RESTORE_NAME, &tp.Privileges[0].Luid))
+ goto cleanup;
+
+ tp.PrivilegeCount = 1;
+ tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
+ if (!AdjustTokenPrivileges(token, FALSE, &tp, sizeof(TOKEN_PRIVILEGES),
+ NULL, NULL))
+ goto cleanup;
+
+ if (GetFileAttributesW(src_path) == INVALID_FILE_ATTRIBUTES)
+ goto cleanup;
+
+ /* Store the absolute link target path length in print_len. */
+ print_len = (USHORT)GetFullPathNameW(src_path, 0, NULL, NULL);
+ if (print_len == 0)
+ goto cleanup;
+
+ /* NUL terminator should not be part of print_len. */
+ --print_len;
+
+ /* REPARSE_DATA_BUFFER usage is heavily under-documented, especially for
+ junction points. Here's what I've learned along the way:
+ - A junction point has two components: a print name and a substitute
+ name. They both describe the link target, but the substitute name is
+ the physical target and the print name is shown in directory listings.
+ - The print name must be a native name, prefixed with "\??\".
+ - Both names are stored after each other in the same buffer (the
+ PathBuffer) and both must be NUL-terminated.
+ - There are four members defining their respective offset and length
+ inside PathBuffer: SubstituteNameOffset, SubstituteNameLength,
+ PrintNameOffset and PrintNameLength.
+ - The total size we need to allocate for the REPARSE_DATA_BUFFER, thus,
+ is the sum of:
+ - the fixed header size (REPARSE_DATA_BUFFER_HEADER_SIZE)
+ - the size of the MountPointReparseBuffer member without the PathBuffer
+ - the size of the prefix ("\??\") in bytes
+ - the size of the print name in bytes
+ - the size of the substitute name in bytes
+ - the size of two NUL terminators in bytes */
+ rdb_size = REPARSE_DATA_BUFFER_HEADER_SIZE +
+ sizeof(rdb->MountPointReparseBuffer) -
+ sizeof(rdb->MountPointReparseBuffer.PathBuffer) +
+ /* Two +1's for NUL terminators. */
+ (prefix_len + print_len + 1 + print_len + 1) * sizeof(WCHAR);
+ rdb = (PREPARSE_DATA_BUFFER)PyMem_RawMalloc(rdb_size);
+ if (rdb == NULL)
+ goto cleanup;
+
+ memset(rdb, 0, rdb_size);
+ rdb->ReparseTag = IO_REPARSE_TAG_MOUNT_POINT;
+ rdb->ReparseDataLength = rdb_size - REPARSE_DATA_BUFFER_HEADER_SIZE;
+ rdb->MountPointReparseBuffer.SubstituteNameOffset = 0;
+ rdb->MountPointReparseBuffer.SubstituteNameLength =
+ (prefix_len + print_len) * sizeof(WCHAR);
+ rdb->MountPointReparseBuffer.PrintNameOffset =
+ rdb->MountPointReparseBuffer.SubstituteNameLength + sizeof(WCHAR);
+ rdb->MountPointReparseBuffer.PrintNameLength = print_len * sizeof(WCHAR);
+
+ /* Store the full native path of link target at the substitute name
+ offset (0). */
+ wcscpy(rdb->MountPointReparseBuffer.PathBuffer, L"\\??\\");
+ if (GetFullPathNameW(src_path, print_len + 1,
+ rdb->MountPointReparseBuffer.PathBuffer + prefix_len,
+ NULL) == 0)
+ goto cleanup;
+
+ /* Copy everything but the native prefix to the print name offset. */
+ wcscpy(rdb->MountPointReparseBuffer.PathBuffer +
+ prefix_len + print_len + 1,
+ rdb->MountPointReparseBuffer.PathBuffer + prefix_len);
+
+ /* Create a directory for the junction point. */
+ if (!CreateDirectoryW(dst_path, NULL))
+ goto cleanup;
+
+ junction = CreateFileW(dst_path, GENERIC_READ | GENERIC_WRITE, 0, NULL,
+ OPEN_EXISTING,
+ FILE_FLAG_OPEN_REPARSE_POINT | FILE_FLAG_BACKUP_SEMANTICS, NULL);
+ if (junction == INVALID_HANDLE_VALUE)
+ goto cleanup;
+
+ /* Make the directory entry a junction point. */
+ if (!DeviceIoControl(junction, FSCTL_SET_REPARSE_POINT, rdb, rdb_size,
+ NULL, 0, &ret, NULL))
+ goto cleanup;
+
+cleanup:
+ ret = GetLastError();
+
+ CloseHandle(token);
+ CloseHandle(junction);
+ PyMem_RawFree(rdb);
+
+ if (ret != 0)
+ return PyErr_SetFromWindowsErr(ret);
- if (!PyArg_ParseTuple(args, "s" F_DWORD F_DWORD F_DWORD
- F_DWORD F_DWORD F_DWORD F_POINTER,
- &lpName, &dwOpenMode, &dwPipeMode,
- &nMaxInstances, &nOutBufferSize,
- &nInBufferSize, &nDefaultTimeOut,
- &lpSecurityAttributes))
- return NULL;
+ Py_RETURN_NONE;
+}
+
+/*[clinic input]
+_winapi.CreateNamedPipe -> HANDLE
+
+ name: LPCTSTR
+ open_mode: DWORD
+ pipe_mode: DWORD
+ max_instances: DWORD
+ out_buffer_size: DWORD
+ in_buffer_size: DWORD
+ default_timeout: DWORD
+ security_attributes: LPSECURITY_ATTRIBUTES
+ /
+[clinic start generated code]*/
+
+static HANDLE
+_winapi_CreateNamedPipe_impl(PyModuleDef *module, LPCTSTR name,
+ DWORD open_mode, DWORD pipe_mode,
+ DWORD max_instances, DWORD out_buffer_size,
+ DWORD in_buffer_size, DWORD default_timeout,
+ LPSECURITY_ATTRIBUTES security_attributes)
+/*[clinic end generated code: output=44ca2a06a219b523 input=5a73530b84d8bc37]*/
+{
+ HANDLE handle;
Py_BEGIN_ALLOW_THREADS
- handle = CreateNamedPipe(lpName, dwOpenMode, dwPipeMode,
- nMaxInstances, nOutBufferSize,
- nInBufferSize, nDefaultTimeOut,
- lpSecurityAttributes);
+ handle = CreateNamedPipe(name, open_mode, pipe_mode,
+ max_instances, out_buffer_size,
+ in_buffer_size, default_timeout,
+ security_attributes);
Py_END_ALLOW_THREADS
if (handle == INVALID_HANDLE_VALUE)
- return PyErr_SetFromWindowsErr(0);
+ PyErr_SetFromWindowsErr(0);
- return Py_BuildValue(F_HANDLE, handle);
+ return handle;
}
-PyDoc_STRVAR(CreatePipe_doc,
-"CreatePipe(pipe_attrs, size) -> (read_handle, write_handle)\n\
-\n\
-Create an anonymous pipe, and return handles to the read and\n\
-write ends of the pipe.\n\
-\n\
-pipe_attrs is ignored internally and can be None.");
+/*[clinic input]
+_winapi.CreatePipe
+
+ pipe_attrs: object
+ Ignored internally, can be None.
+ size: DWORD
+ /
+
+Create an anonymous pipe.
+
+Returns a 2-tuple of handles, to the read and write ends of the pipe.
+[clinic start generated code]*/
static PyObject *
-winapi_CreatePipe(PyObject* self, PyObject* args)
+_winapi_CreatePipe_impl(PyModuleDef *module, PyObject *pipe_attrs,
+ DWORD size)
+/*[clinic end generated code: output=fef99f3b4222bc78 input=c4f2cfa56ef68d90]*/
{
HANDLE read_pipe;
HANDLE write_pipe;
BOOL result;
- PyObject* pipe_attributes; /* ignored */
- DWORD size;
-
- if (! PyArg_ParseTuple(args, "O" F_DWORD ":CreatePipe",
- &pipe_attributes, &size))
- return NULL;
-
Py_BEGIN_ALLOW_THREADS
result = CreatePipe(&read_pipe, &write_pipe, NULL, size);
Py_END_ALLOW_THREADS
@@ -586,20 +791,36 @@ getenvironment(PyObject* environment)
return NULL;
}
-PyDoc_STRVAR(CreateProcess_doc,
-"CreateProcess(app_name, cmd_line, proc_attrs, thread_attrs,\n\
- inherit, flags, env_mapping, curdir,\n\
- startup_info) -> (proc_handle, thread_handle,\n\
- pid, tid)\n\
-\n\
-Create a new process and its primary thread. The return\n\
-value is a tuple of the process handle, thread handle,\n\
-process ID, and thread ID.\n\
-\n\
-proc_attrs and thread_attrs are ignored internally and can be None.");
+/*[clinic input]
+_winapi.CreateProcess
+
+ application_name: Py_UNICODE(accept={str, NoneType})
+ command_line: Py_UNICODE(accept={str, NoneType})
+ proc_attrs: object
+ Ignored internally, can be None.
+ thread_attrs: object
+ Ignored internally, can be None.
+ inherit_handles: BOOL
+ creation_flags: DWORD
+ env_mapping: object
+ current_directory: Py_UNICODE(accept={str, NoneType})
+ startup_info: object
+ /
+
+Create a new process and its primary thread.
+
+The return value is a tuple of the process handle, thread handle,
+process ID, and thread ID.
+[clinic start generated code]*/
static PyObject *
-winapi_CreateProcess(PyObject* self, PyObject* args)
+_winapi_CreateProcess_impl(PyModuleDef *module, Py_UNICODE *application_name,
+ Py_UNICODE *command_line, PyObject *proc_attrs,
+ PyObject *thread_attrs, BOOL inherit_handles,
+ DWORD creation_flags, PyObject *env_mapping,
+ Py_UNICODE *current_directory,
+ PyObject *startup_info)
+/*[clinic end generated code: output=874bb350ff9ed4ef input=4a43b05038d639bb]*/
{
BOOL result;
PROCESS_INFORMATION pi;
@@ -607,28 +828,6 @@ winapi_CreateProcess(PyObject* self, PyObject* args)
PyObject* environment;
wchar_t *wenvironment;
- wchar_t* application_name;
- wchar_t* command_line;
- PyObject* process_attributes; /* ignored */
- PyObject* thread_attributes; /* ignored */
- BOOL inherit_handles;
- DWORD creation_flags;
- PyObject* env_mapping;
- wchar_t* current_directory;
- PyObject* startup_info;
-
- if (! PyArg_ParseTuple(args, "ZZOO" F_BOOL F_DWORD "OZO:CreateProcess",
- &application_name,
- &command_line,
- &process_attributes,
- &thread_attributes,
- &inherit_handles,
- &creation_flags,
- &env_mapping,
- &current_directory,
- &startup_info))
- return NULL;
-
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
@@ -682,41 +881,36 @@ winapi_CreateProcess(PyObject* self, PyObject* args)
pi.dwThreadId);
}
-PyDoc_STRVAR(DuplicateHandle_doc,
-"DuplicateHandle(source_proc_handle, source_handle,\n\
- target_proc_handle, target_handle, access,\n\
- inherit[, options]) -> handle\n\
-\n\
-Return a duplicate handle object.\n\
-\n\
-The duplicate handle refers to the same object as the original\n\
-handle. Therefore, any changes to the object are reflected\n\
-through both handles.");
+/*[clinic input]
+_winapi.DuplicateHandle -> HANDLE
-static PyObject *
-winapi_DuplicateHandle(PyObject* self, PyObject* args)
+ source_process_handle: HANDLE
+ source_handle: HANDLE
+ target_process_handle: HANDLE
+ desired_access: DWORD
+ inherit_handle: BOOL
+ options: DWORD = 0
+ /
+
+Return a duplicate handle object.
+
+The duplicate handle refers to the same object as the original
+handle. Therefore, any changes to the object are reflected
+through both handles.
+[clinic start generated code]*/
+
+static HANDLE
+_winapi_DuplicateHandle_impl(PyModuleDef *module,
+ HANDLE source_process_handle,
+ HANDLE source_handle,
+ HANDLE target_process_handle,
+ DWORD desired_access, BOOL inherit_handle,
+ DWORD options)
+/*[clinic end generated code: output=0799515b68b5237b input=b933e3f2356a8c12]*/
{
HANDLE target_handle;
BOOL result;
- HANDLE source_process_handle;
- HANDLE source_handle;
- HANDLE target_process_handle;
- DWORD desired_access;
- BOOL inherit_handle;
- DWORD options = 0;
-
- if (! PyArg_ParseTuple(args,
- F_HANDLE F_HANDLE F_HANDLE F_DWORD F_BOOL F_DWORD
- ":DuplicateHandle",
- &source_process_handle,
- &source_handle,
- &target_process_handle,
- &desired_access,
- &inherit_handle,
- &options))
- return NULL;
-
Py_BEGIN_ALLOW_THREADS
result = DuplicateHandle(
source_process_handle,
@@ -729,98 +923,111 @@ winapi_DuplicateHandle(PyObject* self, PyObject* args)
);
Py_END_ALLOW_THREADS
- if (! result)
- return PyErr_SetFromWindowsErr(GetLastError());
+ if (! result) {
+ PyErr_SetFromWindowsErr(GetLastError());
+ return INVALID_HANDLE_VALUE;
+ }
- return HANDLE_TO_PYNUM(target_handle);
+ return target_handle;
}
-static PyObject *
-winapi_ExitProcess(PyObject *self, PyObject *args)
-{
- UINT uExitCode;
+/*[clinic input]
+_winapi.ExitProcess
- if (!PyArg_ParseTuple(args, F_UINT, &uExitCode))
- return NULL;
+ ExitCode: UINT
+ /
+
+[clinic start generated code]*/
+static PyObject *
+_winapi_ExitProcess_impl(PyModuleDef *module, UINT ExitCode)
+/*[clinic end generated code: output=25f3b499c24cedc8 input=4f05466a9406c558]*/
+{
#if defined(Py_DEBUG)
SetErrorMode(SEM_FAILCRITICALERRORS|SEM_NOALIGNMENTFAULTEXCEPT|
SEM_NOGPFAULTERRORBOX|SEM_NOOPENFILEERRORBOX);
_CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_DEBUG);
#endif
- ExitProcess(uExitCode);
+ ExitProcess(ExitCode);
return NULL;
}
-PyDoc_STRVAR(GetCurrentProcess_doc,
-"GetCurrentProcess() -> handle\n\
-\n\
-Return a handle object for the current process.");
+/*[clinic input]
+_winapi.GetCurrentProcess -> HANDLE
-static PyObject *
-winapi_GetCurrentProcess(PyObject* self, PyObject* args)
-{
- if (! PyArg_ParseTuple(args, ":GetCurrentProcess"))
- return NULL;
+Return a handle object for the current process.
+[clinic start generated code]*/
- return HANDLE_TO_PYNUM(GetCurrentProcess());
+static HANDLE
+_winapi_GetCurrentProcess_impl(PyModuleDef *module)
+/*[clinic end generated code: output=be29ac3ad5f8291e input=b213403fd4b96b41]*/
+{
+ return GetCurrentProcess();
}
-PyDoc_STRVAR(GetExitCodeProcess_doc,
-"GetExitCodeProcess(handle) -> Exit code\n\
-\n\
-Return the termination status of the specified process.");
+/*[clinic input]
+_winapi.GetExitCodeProcess -> DWORD
-static PyObject *
-winapi_GetExitCodeProcess(PyObject* self, PyObject* args)
+ process: HANDLE
+ /
+
+Return the termination status of the specified process.
+[clinic start generated code]*/
+
+static DWORD
+_winapi_GetExitCodeProcess_impl(PyModuleDef *module, HANDLE process)
+/*[clinic end generated code: output=0b10f0848a410f65 input=61b6bfc7dc2ee374]*/
{
DWORD exit_code;
BOOL result;
- HANDLE process;
- if (! PyArg_ParseTuple(args, F_HANDLE ":GetExitCodeProcess", &process))
- return NULL;
-
result = GetExitCodeProcess(process, &exit_code);
- if (! result)
- return PyErr_SetFromWindowsErr(GetLastError());
+ if (! result) {
+ PyErr_SetFromWindowsErr(GetLastError());
+ exit_code = DWORD_MAX;
+ }
- return PyLong_FromUnsignedLong(exit_code);
+ return exit_code;
}
-static PyObject *
-winapi_GetLastError(PyObject *self, PyObject *args)
+/*[clinic input]
+_winapi.GetLastError -> DWORD
+[clinic start generated code]*/
+
+static DWORD
+_winapi_GetLastError_impl(PyModuleDef *module)
+/*[clinic end generated code: output=0ea00d8e67bdd056 input=62d47fb9bce038ba]*/
{
- return Py_BuildValue(F_DWORD, GetLastError());
+ return GetLastError();
}
-PyDoc_STRVAR(GetModuleFileName_doc,
-"GetModuleFileName(module) -> path\n\
-\n\
-Return the fully-qualified path for the file that contains\n\
-the specified module. The module must have been loaded by the\n\
-current process.\n\
-\n\
-The module parameter should be a handle to the loaded module\n\
-whose path is being requested. If this parameter is 0, \n\
-GetModuleFileName retrieves the path of the executable file\n\
-of the current process.");
+/*[clinic input]
+_winapi.GetModuleFileName
+
+ module_handle: HMODULE
+ /
+
+Return the fully-qualified path for the file that contains module.
+
+The module must have been loaded by the current process.
+
+The module parameter should be a handle to the loaded module
+whose path is being requested. If this parameter is 0,
+GetModuleFileName retrieves the path of the executable file
+of the current process.
+[clinic start generated code]*/
static PyObject *
-winapi_GetModuleFileName(PyObject* self, PyObject* args)
+_winapi_GetModuleFileName_impl(PyModuleDef *module, HMODULE module_handle)
+/*[clinic end generated code: output=90063dc63bdbfa18 input=6d66ff7deca5d11f]*/
{
BOOL result;
- HMODULE module;
WCHAR filename[MAX_PATH];
- if (! PyArg_ParseTuple(args, F_HANDLE ":GetModuleFileName",
- &module))
- return NULL;
-
- result = GetModuleFileNameW(module, filename, MAX_PATH);
+ result = GetModuleFileNameW(module_handle, filename, MAX_PATH);
filename[MAX_PATH-1] = '\0';
if (! result)
@@ -829,83 +1036,96 @@ winapi_GetModuleFileName(PyObject* self, PyObject* args)
return PyUnicode_FromWideChar(filename, wcslen(filename));
}
-PyDoc_STRVAR(GetStdHandle_doc,
-"GetStdHandle(handle) -> integer\n\
-\n\
-Return a handle to the specified standard device\n\
-(STD_INPUT_HANDLE, STD_OUTPUT_HANDLE, STD_ERROR_HANDLE).\n\
-The integer associated with the handle object is returned.");
+/*[clinic input]
+_winapi.GetStdHandle -> HANDLE
-static PyObject *
-winapi_GetStdHandle(PyObject* self, PyObject* args)
+ std_handle: DWORD
+ One of STD_INPUT_HANDLE, STD_OUTPUT_HANDLE, or STD_ERROR_HANDLE.
+ /
+
+Return a handle to the specified standard device.
+
+The integer associated with the handle object is returned.
+[clinic start generated code]*/
+
+static HANDLE
+_winapi_GetStdHandle_impl(PyModuleDef *module, DWORD std_handle)
+/*[clinic end generated code: output=5f5ca28b28c6fad2 input=07016b06a2fc8826]*/
{
HANDLE handle;
- DWORD std_handle;
-
- if (! PyArg_ParseTuple(args, F_DWORD ":GetStdHandle", &std_handle))
- return NULL;
Py_BEGIN_ALLOW_THREADS
handle = GetStdHandle(std_handle);
Py_END_ALLOW_THREADS
if (handle == INVALID_HANDLE_VALUE)
- return PyErr_SetFromWindowsErr(GetLastError());
+ PyErr_SetFromWindowsErr(GetLastError());
- if (! handle) {
- Py_INCREF(Py_None);
- return Py_None;
- }
-
- /* note: returns integer, not handle object */
- return HANDLE_TO_PYNUM(handle);
+ return handle;
}
-PyDoc_STRVAR(GetVersion_doc,
-"GetVersion() -> version\n\
-\n\
-Return the version number of the current operating system.");
+/*[clinic input]
+_winapi.GetVersion -> long
-static PyObject *
-winapi_GetVersion(PyObject* self, PyObject* args)
-{
- if (! PyArg_ParseTuple(args, ":GetVersion"))
- return NULL;
+Return the version number of the current operating system.
+[clinic start generated code]*/
+
+static long
+_winapi_GetVersion_impl(PyModuleDef *module)
+/*[clinic end generated code: output=95a2f8ad3b948ca8 input=e21dff8d0baeded2]*/
+/* Disable deprecation warnings about GetVersionEx as the result is
+ being passed straight through to the caller, who is responsible for
+ using it correctly. */
+#pragma warning(push)
+#pragma warning(disable:4996)
- return PyLong_FromUnsignedLong(GetVersion());
+{
+ return GetVersion();
}
-static PyObject *
-winapi_OpenProcess(PyObject *self, PyObject *args)
+#pragma warning(pop)
+
+/*[clinic input]
+_winapi.OpenProcess -> HANDLE
+
+ desired_access: DWORD
+ inherit_handle: BOOL
+ process_id: DWORD
+ /
+[clinic start generated code]*/
+
+static HANDLE
+_winapi_OpenProcess_impl(PyModuleDef *module, DWORD desired_access,
+ BOOL inherit_handle, DWORD process_id)
+/*[clinic end generated code: output=6bc52eda82a3d226 input=ec98c4cf4ea2ec36]*/
{
- DWORD dwDesiredAccess;
- BOOL bInheritHandle;
- DWORD dwProcessId;
HANDLE handle;
- if (!PyArg_ParseTuple(args, F_DWORD F_BOOL F_DWORD,
- &dwDesiredAccess, &bInheritHandle, &dwProcessId))
- return NULL;
-
- handle = OpenProcess(dwDesiredAccess, bInheritHandle, dwProcessId);
- if (handle == NULL)
- return PyErr_SetFromWindowsErr(0);
+ handle = OpenProcess(desired_access, inherit_handle, process_id);
+ if (handle == NULL) {
+ PyErr_SetFromWindowsErr(0);
+ handle = INVALID_HANDLE_VALUE;
+ }
- return Py_BuildValue(F_HANDLE, handle);
+ return handle;
}
+/*[clinic input]
+_winapi.PeekNamedPipe
+
+ handle: HANDLE
+ size: int = 0
+ /
+[clinic start generated code]*/
+
static PyObject *
-winapi_PeekNamedPipe(PyObject *self, PyObject *args)
+_winapi_PeekNamedPipe_impl(PyModuleDef *module, HANDLE handle, int size)
+/*[clinic end generated code: output=e6c908e2fb63c798 input=c7aa53bfbce69d70]*/
{
- HANDLE handle;
- int size = 0;
PyObject *buf = NULL;
DWORD nread, navail, nleft;
BOOL ret;
- if (!PyArg_ParseTuple(args, F_HANDLE "|i:PeekNamedPipe" , &handle, &size))
- return NULL;
-
if (size < 0) {
PyErr_SetString(PyExc_ValueError, "negative size");
return NULL;
@@ -938,23 +1158,24 @@ winapi_PeekNamedPipe(PyObject *self, PyObject *args)
}
}
+/*[clinic input]
+_winapi.ReadFile
+
+ handle: HANDLE
+ size: int
+ overlapped as use_overlapped: int(c_default='0') = False
+[clinic start generated code]*/
+
static PyObject *
-winapi_ReadFile(PyObject *self, PyObject *args, PyObject *kwds)
+_winapi_ReadFile_impl(PyModuleDef *module, HANDLE handle, int size,
+ int use_overlapped)
+/*[clinic end generated code: output=d7695db4db97b135 input=8dd810194e86ac7d]*/
{
- HANDLE handle;
- int size;
DWORD nread;
PyObject *buf;
BOOL ret;
- int use_overlapped = 0;
DWORD err;
OverlappedObject *overlapped = NULL;
- static char *kwlist[] = {"handle", "size", "overlapped", NULL};
-
- if (!PyArg_ParseTupleAndKeywords(args, kwds,
- F_HANDLE "i|i:ReadFile", kwlist,
- &handle, &size, &use_overlapped))
- return NULL;
buf = PyBytes_FromStringAndSize(NULL, size);
if (!buf)
@@ -997,18 +1218,27 @@ winapi_ReadFile(PyObject *self, PyObject *args, PyObject *kwds)
return Py_BuildValue("NI", buf, err);
}
+/*[clinic input]
+_winapi.SetNamedPipeHandleState
+
+ named_pipe: HANDLE
+ mode: object
+ max_collection_count: object
+ collect_data_timeout: object
+ /
+[clinic start generated code]*/
+
static PyObject *
-winapi_SetNamedPipeHandleState(PyObject *self, PyObject *args)
+_winapi_SetNamedPipeHandleState_impl(PyModuleDef *module, HANDLE named_pipe,
+ PyObject *mode,
+ PyObject *max_collection_count,
+ PyObject *collect_data_timeout)
+/*[clinic end generated code: output=25aa3c28dee223ce input=9142d72163d0faa6]*/
{
- HANDLE hNamedPipe;
- PyObject *oArgs[3];
+ PyObject *oArgs[3] = {mode, max_collection_count, collect_data_timeout};
DWORD dwArgs[3], *pArgs[3] = {NULL, NULL, NULL};
int i;
- if (!PyArg_ParseTuple(args, F_HANDLE "OOO",
- &hNamedPipe, &oArgs[0], &oArgs[1], &oArgs[2]))
- return NULL;
-
PyErr_Clear();
for (i = 0 ; i < 3 ; i++) {
@@ -1020,49 +1250,54 @@ winapi_SetNamedPipeHandleState(PyObject *self, PyObject *args)
}
}
- if (!SetNamedPipeHandleState(hNamedPipe, pArgs[0], pArgs[1], pArgs[2]))
+ if (!SetNamedPipeHandleState(named_pipe, pArgs[0], pArgs[1], pArgs[2]))
return PyErr_SetFromWindowsErr(0);
Py_RETURN_NONE;
}
-PyDoc_STRVAR(TerminateProcess_doc,
-"TerminateProcess(handle, exit_code) -> None\n\
-\n\
-Terminate the specified process and all of its threads.");
+
+/*[clinic input]
+_winapi.TerminateProcess
+
+ handle: HANDLE
+ exit_code: UINT
+ /
+
+Terminate the specified process and all of its threads.
+[clinic start generated code]*/
static PyObject *
-winapi_TerminateProcess(PyObject* self, PyObject* args)
+_winapi_TerminateProcess_impl(PyModuleDef *module, HANDLE handle,
+ UINT exit_code)
+/*[clinic end generated code: output=937c1bb6219aca8b input=d6bc0aa1ee3bb4df]*/
{
BOOL result;
- HANDLE process;
- UINT exit_code;
- if (! PyArg_ParseTuple(args, F_HANDLE F_UINT ":TerminateProcess",
- &process, &exit_code))
- return NULL;
-
- result = TerminateProcess(process, exit_code);
+ result = TerminateProcess(handle, exit_code);
if (! result)
return PyErr_SetFromWindowsErr(GetLastError());
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
+/*[clinic input]
+_winapi.WaitNamedPipe
+
+ name: LPCTSTR
+ timeout: DWORD
+ /
+[clinic start generated code]*/
+
static PyObject *
-winapi_WaitNamedPipe(PyObject *self, PyObject *args)
+_winapi_WaitNamedPipe_impl(PyModuleDef *module, LPCTSTR name, DWORD timeout)
+/*[clinic end generated code: output=5bca5e02f448c9d7 input=36fc781291b1862c]*/
{
- LPCTSTR lpNamedPipeName;
- DWORD nTimeOut;
BOOL success;
- if (!PyArg_ParseTuple(args, "s" F_DWORD, &lpNamedPipeName, &nTimeOut))
- return NULL;
-
Py_BEGIN_ALLOW_THREADS
- success = WaitNamedPipe(lpNamedPipeName, nTimeOut);
+ success = WaitNamedPipe(name, timeout);
Py_END_ALLOW_THREADS
if (!success)
@@ -1071,21 +1306,25 @@ winapi_WaitNamedPipe(PyObject *self, PyObject *args)
Py_RETURN_NONE;
}
+/*[clinic input]
+_winapi.WaitForMultipleObjects
+
+ handle_seq: object
+ wait_flag: BOOL
+ milliseconds: DWORD(c_default='INFINITE') = _winapi.INFINITE
+ /
+[clinic start generated code]*/
+
static PyObject *
-winapi_WaitForMultipleObjects(PyObject* self, PyObject* args)
+_winapi_WaitForMultipleObjects_impl(PyModuleDef *module,
+ PyObject *handle_seq, BOOL wait_flag,
+ DWORD milliseconds)
+/*[clinic end generated code: output=acb440728d06d130 input=36f76ca057cd28a0]*/
{
DWORD result;
- PyObject *handle_seq;
HANDLE handles[MAXIMUM_WAIT_OBJECTS];
HANDLE sigint_event = NULL;
Py_ssize_t nhandles, i;
- BOOL wait_flag;
- DWORD milliseconds = INFINITE;
-
- if (!PyArg_ParseTuple(args, "O" F_BOOL "|" F_DWORD
- ":WaitForMultipleObjects",
- &handle_seq, &wait_flag, &milliseconds))
- return NULL;
if (!PySequence_Check(handle_seq)) {
PyErr_Format(PyExc_TypeError,
@@ -1139,53 +1378,57 @@ winapi_WaitForMultipleObjects(PyObject* self, PyObject* args)
return PyLong_FromLong((int) result);
}
-PyDoc_STRVAR(WaitForSingleObject_doc,
-"WaitForSingleObject(handle, timeout) -> result\n\
-\n\
-Wait until the specified object is in the signaled state or\n\
-the time-out interval elapses. The timeout value is specified\n\
-in milliseconds.");
+/*[clinic input]
+_winapi.WaitForSingleObject -> long
-static PyObject *
-winapi_WaitForSingleObject(PyObject* self, PyObject* args)
+ handle: HANDLE
+ milliseconds: DWORD
+ /
+
+Wait for a single object.
+
+Wait until the specified object is in the signaled state or
+the time-out interval elapses. The timeout value is specified
+in milliseconds.
+[clinic start generated code]*/
+
+static long
+_winapi_WaitForSingleObject_impl(PyModuleDef *module, HANDLE handle,
+ DWORD milliseconds)
+/*[clinic end generated code: output=34ae40c269749c48 input=443d1ab076edc7b1]*/
{
DWORD result;
- HANDLE handle;
- DWORD milliseconds;
- if (! PyArg_ParseTuple(args, F_HANDLE F_DWORD ":WaitForSingleObject",
- &handle,
- &milliseconds))
- return NULL;
-
Py_BEGIN_ALLOW_THREADS
result = WaitForSingleObject(handle, milliseconds);
Py_END_ALLOW_THREADS
- if (result == WAIT_FAILED)
- return PyErr_SetFromWindowsErr(GetLastError());
+ if (result == WAIT_FAILED) {
+ PyErr_SetFromWindowsErr(GetLastError());
+ return -1;
+ }
- return PyLong_FromUnsignedLong(result);
+ return result;
}
+/*[clinic input]
+_winapi.WriteFile
+
+ handle: HANDLE
+ buffer: object
+ overlapped as use_overlapped: int(c_default='0') = False
+[clinic start generated code]*/
+
static PyObject *
-winapi_WriteFile(PyObject *self, PyObject *args, PyObject *kwds)
+_winapi_WriteFile_impl(PyModuleDef *module, HANDLE handle, PyObject *buffer,
+ int use_overlapped)
+/*[clinic end generated code: output=65e70ea41f4d2a1d input=51846a5af52053fd]*/
{
- HANDLE handle;
Py_buffer _buf, *buf;
- PyObject *bufobj;
DWORD len, written;
BOOL ret;
- int use_overlapped = 0;
DWORD err;
OverlappedObject *overlapped = NULL;
- static char *kwlist[] = {"handle", "buffer", "overlapped", NULL};
-
- /* First get handle and use_overlapped to know which Py_buffer to use */
- if (!PyArg_ParseTupleAndKeywords(args, kwds,
- F_HANDLE "O|i:WriteFile", kwlist,
- &handle, &bufobj, &use_overlapped))
- return NULL;
if (use_overlapped) {
overlapped = new_overlapped(handle);
@@ -1196,7 +1439,7 @@ winapi_WriteFile(PyObject *self, PyObject *args, PyObject *kwds)
else
buf = &_buf;
- if (!PyArg_Parse(bufobj, "y*", buf)) {
+ if (!PyArg_Parse(buffer, "y*", buf)) {
Py_XDECREF(overlapped);
return NULL;
}
@@ -1229,52 +1472,30 @@ winapi_WriteFile(PyObject *self, PyObject *args, PyObject *kwds)
static PyMethodDef winapi_functions[] = {
- {"CloseHandle", winapi_CloseHandle, METH_VARARGS,
- CloseHandle_doc},
- {"ConnectNamedPipe", (PyCFunction)winapi_ConnectNamedPipe,
- METH_VARARGS | METH_KEYWORDS, ""},
- {"CreateFile", winapi_CreateFile, METH_VARARGS,
- ""},
- {"CreateNamedPipe", winapi_CreateNamedPipe, METH_VARARGS,
- ""},
- {"CreatePipe", winapi_CreatePipe, METH_VARARGS,
- CreatePipe_doc},
- {"CreateProcess", winapi_CreateProcess, METH_VARARGS,
- CreateProcess_doc},
- {"DuplicateHandle", winapi_DuplicateHandle, METH_VARARGS,
- DuplicateHandle_doc},
- {"ExitProcess", winapi_ExitProcess, METH_VARARGS,
- ""},
- {"GetCurrentProcess", winapi_GetCurrentProcess, METH_VARARGS,
- GetCurrentProcess_doc},
- {"GetExitCodeProcess", winapi_GetExitCodeProcess, METH_VARARGS,
- GetExitCodeProcess_doc},
- {"GetLastError", winapi_GetLastError, METH_NOARGS,
- GetCurrentProcess_doc},
- {"GetModuleFileName", winapi_GetModuleFileName, METH_VARARGS,
- GetModuleFileName_doc},
- {"GetStdHandle", winapi_GetStdHandle, METH_VARARGS,
- GetStdHandle_doc},
- {"GetVersion", winapi_GetVersion, METH_VARARGS,
- GetVersion_doc},
- {"OpenProcess", winapi_OpenProcess, METH_VARARGS,
- ""},
- {"PeekNamedPipe", winapi_PeekNamedPipe, METH_VARARGS,
- ""},
- {"ReadFile", (PyCFunction)winapi_ReadFile, METH_VARARGS | METH_KEYWORDS,
- ""},
- {"SetNamedPipeHandleState", winapi_SetNamedPipeHandleState, METH_VARARGS,
- ""},
- {"TerminateProcess", winapi_TerminateProcess, METH_VARARGS,
- TerminateProcess_doc},
- {"WaitNamedPipe", winapi_WaitNamedPipe, METH_VARARGS,
- ""},
- {"WaitForMultipleObjects", winapi_WaitForMultipleObjects, METH_VARARGS,
- ""},
- {"WaitForSingleObject", winapi_WaitForSingleObject, METH_VARARGS,
- WaitForSingleObject_doc},
- {"WriteFile", (PyCFunction)winapi_WriteFile, METH_VARARGS | METH_KEYWORDS,
- ""},
+ _WINAPI_CLOSEHANDLE_METHODDEF
+ _WINAPI_CONNECTNAMEDPIPE_METHODDEF
+ _WINAPI_CREATEFILE_METHODDEF
+ _WINAPI_CREATENAMEDPIPE_METHODDEF
+ _WINAPI_CREATEPIPE_METHODDEF
+ _WINAPI_CREATEPROCESS_METHODDEF
+ _WINAPI_CREATEJUNCTION_METHODDEF
+ _WINAPI_DUPLICATEHANDLE_METHODDEF
+ _WINAPI_EXITPROCESS_METHODDEF
+ _WINAPI_GETCURRENTPROCESS_METHODDEF
+ _WINAPI_GETEXITCODEPROCESS_METHODDEF
+ _WINAPI_GETLASTERROR_METHODDEF
+ _WINAPI_GETMODULEFILENAME_METHODDEF
+ _WINAPI_GETSTDHANDLE_METHODDEF
+ _WINAPI_GETVERSION_METHODDEF
+ _WINAPI_OPENPROCESS_METHODDEF
+ _WINAPI_PEEKNAMEDPIPE_METHODDEF
+ _WINAPI_READFILE_METHODDEF
+ _WINAPI_SETNAMEDPIPEHANDLESTATE_METHODDEF
+ _WINAPI_TERMINATEPROCESS_METHODDEF
+ _WINAPI_WAITNAMEDPIPE_METHODDEF
+ _WINAPI_WAITFORMULTIPLEOBJECTS_METHODDEF
+ _WINAPI_WAITFORSINGLEOBJECT_METHODDEF
+ _WINAPI_WRITEFILE_METHODDEF
{NULL, NULL}
};
diff --git a/Modules/arraymodule.c b/Modules/arraymodule.c
index 5ab1ab6836..a3ccf9344f 100644
--- a/Modules/arraymodule.c
+++ b/Modules/arraymodule.c
@@ -15,6 +15,11 @@
#endif /* HAVE_SYS_TYPES_H */
#endif /* !STDC_HEADERS */
+/*[clinic input]
+module array
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=7d1b8d7f5958fd83]*/
+
struct arrayobject; /* Forward */
/* All possible arraydescr values are defined in the vector "descriptors"
@@ -42,6 +47,63 @@ typedef struct arrayobject {
static PyTypeObject Arraytype;
+typedef struct {
+ PyObject_HEAD
+ Py_ssize_t index;
+ arrayobject *ao;
+ PyObject* (*getitem)(struct arrayobject *, Py_ssize_t);
+} arrayiterobject;
+
+static PyTypeObject PyArrayIter_Type;
+
+#define PyArrayIter_Check(op) PyObject_TypeCheck(op, &PyArrayIter_Type)
+
+enum machine_format_code {
+ UNKNOWN_FORMAT = -1,
+ /* UNKNOWN_FORMAT is used to indicate that the machine format for an
+ * array type code cannot be interpreted. When this occurs, a list of
+ * Python objects is used to represent the content of the array
+ * instead of using the memory content of the array directly. In that
+ * case, the array_reconstructor mechanism is bypassed completely, and
+ * the standard array constructor is used instead.
+ *
+ * This is will most likely occur when the machine doesn't use IEEE
+ * floating-point numbers.
+ */
+
+ UNSIGNED_INT8 = 0,
+ SIGNED_INT8 = 1,
+ UNSIGNED_INT16_LE = 2,
+ UNSIGNED_INT16_BE = 3,
+ SIGNED_INT16_LE = 4,
+ SIGNED_INT16_BE = 5,
+ UNSIGNED_INT32_LE = 6,
+ UNSIGNED_INT32_BE = 7,
+ SIGNED_INT32_LE = 8,
+ SIGNED_INT32_BE = 9,
+ UNSIGNED_INT64_LE = 10,
+ UNSIGNED_INT64_BE = 11,
+ SIGNED_INT64_LE = 12,
+ SIGNED_INT64_BE = 13,
+ IEEE_754_FLOAT_LE = 14,
+ IEEE_754_FLOAT_BE = 15,
+ IEEE_754_DOUBLE_LE = 16,
+ IEEE_754_DOUBLE_BE = 17,
+ UTF16_LE = 18,
+ UTF16_BE = 19,
+ UTF32_LE = 20,
+ UTF32_BE = 21
+};
+#define MACHINE_FORMAT_CODE_MIN 0
+#define MACHINE_FORMAT_CODE_MAX 21
+
+
+/*
+ * Must come after arrayobject, arrayiterobject,
+ * and enum machine_code_type definitions.
+ */
+#include "clinic/arraymodule.c.h"
+
#define array_Check(op) PyObject_TypeCheck(op, &Arraytype)
#define array_CheckExact(op) (Py_TYPE(op) == &Arraytype)
@@ -471,6 +533,10 @@ static struct arraydescr descriptors[] = {
/****************************************************************************
Implementations of array object methods.
****************************************************************************/
+/*[clinic input]
+class array.array "arrayobject *" "&Arraytype"
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=ad43d37e942a8854]*/
static PyObject *
newarrayobject(PyTypeObject *type, Py_ssize_t size, struct arraydescr *descr)
@@ -684,16 +750,35 @@ array_slice(arrayobject *a, Py_ssize_t ilow, Py_ssize_t ihigh)
return (PyObject *)np;
}
+
+/*[clinic input]
+array.array.__copy__
+
+Return a copy of the array.
+[clinic start generated code]*/
+
static PyObject *
-array_copy(arrayobject *a, PyObject *unused)
+array_array___copy___impl(arrayobject *self)
+/*[clinic end generated code: output=dec7c3f925d9619e input=ad1ee5b086965f09]*/
{
- return array_slice(a, 0, Py_SIZE(a));
+ return array_slice(self, 0, Py_SIZE(self));
}
-PyDoc_STRVAR(copy_doc,
-"copy(array)\n\
-\n\
- Return a copy of the array.");
+/*[clinic input]
+array.array.__deepcopy__
+
+ unused: object
+ /
+
+Return a copy of the array.
+[clinic start generated code]*/
+
+static PyObject *
+array_array___deepcopy__(arrayobject *self, PyObject *unused)
+/*[clinic end generated code: output=1ec748d8e14a9faa input=2405ecb4933748c4]*/
+{
+ return array_array___copy___impl(self);
+}
static PyObject *
array_concat(arrayobject *a, PyObject *bb)
@@ -961,8 +1046,18 @@ ins(arrayobject *self, Py_ssize_t where, PyObject *v)
return Py_None;
}
+/*[clinic input]
+array.array.count
+
+ v: object
+ /
+
+Return number of occurrences of v in the array.
+[clinic start generated code]*/
+
static PyObject *
-array_count(arrayobject *self, PyObject *v)
+array_array_count(arrayobject *self, PyObject *v)
+/*[clinic end generated code: output=3dd3624bf7135a3a input=d9bce9d65e39d1f5]*/
{
Py_ssize_t count = 0;
Py_ssize_t i;
@@ -984,13 +1079,19 @@ array_count(arrayobject *self, PyObject *v)
return PyLong_FromSsize_t(count);
}
-PyDoc_STRVAR(count_doc,
-"count(x)\n\
-\n\
-Return number of occurrences of x in the array.");
+
+/*[clinic input]
+array.array.index
+
+ v: object
+ /
+
+Return index of first occurrence of v in the array.
+[clinic start generated code]*/
static PyObject *
-array_index(arrayobject *self, PyObject *v)
+array_array_index(arrayobject *self, PyObject *v)
+/*[clinic end generated code: output=d48498d325602167 input=cf619898c6649d08]*/
{
Py_ssize_t i;
@@ -1013,11 +1114,6 @@ array_index(arrayobject *self, PyObject *v)
return NULL;
}
-PyDoc_STRVAR(index_doc,
-"index(x)\n\
-\n\
-Return index of first occurrence of x in the array.");
-
static int
array_contains(arrayobject *self, PyObject *v)
{
@@ -1034,8 +1130,18 @@ array_contains(arrayobject *self, PyObject *v)
return cmp;
}
+/*[clinic input]
+array.array.remove
+
+ v: object
+ /
+
+Remove the first occurrence of v in the array.
+[clinic start generated code]*/
+
static PyObject *
-array_remove(arrayobject *self, PyObject *v)
+array_array_remove(arrayobject *self, PyObject *v)
+/*[clinic end generated code: output=bef06be9fdf9dceb input=0b1e5aed25590027]*/
{
int i;
@@ -1062,18 +1168,23 @@ array_remove(arrayobject *self, PyObject *v)
return NULL;
}
-PyDoc_STRVAR(remove_doc,
-"remove(x)\n\
-\n\
-Remove the first occurrence of x in the array.");
+/*[clinic input]
+array.array.pop
+
+ i: Py_ssize_t = -1
+ /
+
+Return the i-th element and delete it from the array.
+
+i defaults to -1.
+[clinic start generated code]*/
static PyObject *
-array_pop(arrayobject *self, PyObject *args)
+array_array_pop_impl(arrayobject *self, Py_ssize_t i)
+/*[clinic end generated code: output=bc1f0c54fe5308e4 input=8e5feb4c1a11cd44]*/
{
- Py_ssize_t i = -1;
PyObject *v;
- if (!PyArg_ParseTuple(args, "|n:pop", &i))
- return NULL;
+
if (Py_SIZE(self) == 0) {
/* Special-case most common failure cause */
PyErr_SetString(PyExc_IndexError, "pop from empty array");
@@ -1095,13 +1206,18 @@ array_pop(arrayobject *self, PyObject *args)
return v;
}
-PyDoc_STRVAR(pop_doc,
-"pop([i])\n\
-\n\
-Return the i-th element and delete it from the array. i defaults to -1.");
+/*[clinic input]
+array.array.extend
+
+ bb: object
+ /
+
+Append items to the end of the array.
+[clinic start generated code]*/
static PyObject *
-array_extend(arrayobject *self, PyObject *bb)
+array_array_extend(arrayobject *self, PyObject *bb)
+/*[clinic end generated code: output=bbddbc8e8bef871d input=43be86aba5c31e44]*/
{
if (array_do_extend(self, bb) == -1)
return NULL;
@@ -1109,29 +1225,35 @@ array_extend(arrayobject *self, PyObject *bb)
return Py_None;
}
-PyDoc_STRVAR(extend_doc,
-"extend(array or iterable)\n\
-\n\
- Append items to the end of the array.");
+/*[clinic input]
+array.array.insert
+
+ i: Py_ssize_t
+ v: object
+ /
+
+Insert a new item v into the array before position i.
+[clinic start generated code]*/
static PyObject *
-array_insert(arrayobject *self, PyObject *args)
+array_array_insert_impl(arrayobject *self, Py_ssize_t i, PyObject *v)
+/*[clinic end generated code: output=5a3648e278348564 input=5577d1b4383e9313]*/
{
- Py_ssize_t i;
- PyObject *v;
- if (!PyArg_ParseTuple(args, "nO:insert", &i, &v))
- return NULL;
return ins(self, i, v);
}
-PyDoc_STRVAR(insert_doc,
-"insert(i,x)\n\
-\n\
-Insert a new item x into the array before position i.");
+/*[clinic input]
+array.array.buffer_info
+Return a tuple (address, length) giving the current memory address and the length in items of the buffer used to hold array's contents.
+
+The length should be multiplied by the itemsize attribute to calculate
+the buffer length in bytes.
+[clinic start generated code]*/
static PyObject *
-array_buffer_info(arrayobject *self, PyObject *unused)
+array_array_buffer_info_impl(arrayobject *self)
+/*[clinic end generated code: output=9b2a4ec3ae7e98e7 input=a58bae5c6e1ac6a6]*/
{
PyObject *retval = NULL, *v;
@@ -1156,29 +1278,34 @@ array_buffer_info(arrayobject *self, PyObject *unused)
return retval;
}
-PyDoc_STRVAR(buffer_info_doc,
-"buffer_info() -> (address, length)\n\
-\n\
-Return a tuple (address, length) giving the current memory address and\n\
-the length in items of the buffer used to hold array's contents\n\
-The length should be multiplied by the itemsize attribute to calculate\n\
-the buffer length in bytes.");
+/*[clinic input]
+array.array.append
+
+ v: object
+ /
+Append new value v to the end of the array.
+[clinic start generated code]*/
static PyObject *
-array_append(arrayobject *self, PyObject *v)
+array_array_append(arrayobject *self, PyObject *v)
+/*[clinic end generated code: output=745a0669bf8db0e2 input=0b98d9d78e78f0fa]*/
{
return ins(self, Py_SIZE(self), v);
}
-PyDoc_STRVAR(append_doc,
-"append(x)\n\
-\n\
-Append new value x to the end of the array.");
+/*[clinic input]
+array.array.byteswap
+
+Byteswap all items of the array.
+If the items in the array are not 1, 2, 4, or 8 bytes in size, RuntimeError is
+raised.
+[clinic start generated code]*/
static PyObject *
-array_byteswap(arrayobject *self, PyObject *unused)
+array_array_byteswap_impl(arrayobject *self)
+/*[clinic end generated code: output=5f8236cbdf0d90b5 input=6a85591b950a0186]*/
{
char *p;
Py_ssize_t i;
@@ -1228,14 +1355,15 @@ array_byteswap(arrayobject *self, PyObject *unused)
return Py_None;
}
-PyDoc_STRVAR(byteswap_doc,
-"byteswap()\n\
-\n\
-Byteswap all items of the array. If the items in the array are not 1, 2,\n\
-4, or 8 bytes in size, RuntimeError is raised.");
+/*[clinic input]
+array.array.reverse
+
+Reverse the order of the items in the array.
+[clinic start generated code]*/
static PyObject *
-array_reverse(arrayobject *self, PyObject *unused)
+array_array_reverse_impl(arrayobject *self)
+/*[clinic end generated code: output=c04868b36f6f4089 input=cd904f01b27d966a]*/
{
Py_ssize_t itemsize = self->ob_descr->itemsize;
char *p, *q;
@@ -1261,27 +1389,26 @@ array_reverse(arrayobject *self, PyObject *unused)
return Py_None;
}
-PyDoc_STRVAR(reverse_doc,
-"reverse()\n\
-\n\
-Reverse the order of the items in the array.");
+/*[clinic input]
+array.array.fromfile
+ f: object
+ n: Py_ssize_t
+ /
-/* Forward */
-static PyObject *array_frombytes(arrayobject *self, PyObject *args);
+Read n objects from the file object f and append them to the end of the array.
+[clinic start generated code]*/
static PyObject *
-array_fromfile(arrayobject *self, PyObject *args)
+array_array_fromfile_impl(arrayobject *self, PyObject *f, Py_ssize_t n)
+/*[clinic end generated code: output=ec9f600e10f53510 input=e188afe8e58adf40]*/
{
- PyObject *f, *b, *res;
+ PyObject *b, *res;
Py_ssize_t itemsize = self->ob_descr->itemsize;
- Py_ssize_t n, nbytes;
+ Py_ssize_t nbytes;
_Py_IDENTIFIER(read);
int not_enough_bytes;
- if (!PyArg_ParseTuple(args, "On:fromfile", &f, &n))
- return NULL;
-
if (n < 0) {
PyErr_SetString(PyExc_ValueError, "negative count");
return NULL;
@@ -1305,13 +1432,8 @@ array_fromfile(arrayobject *self, PyObject *args)
not_enough_bytes = (PyBytes_GET_SIZE(b) != nbytes);
- args = Py_BuildValue("(O)", b);
+ res = array_array_frombytes(self, b);
Py_DECREF(b);
- if (args == NULL)
- return NULL;
-
- res = array_frombytes(self, args);
- Py_DECREF(args);
if (res == NULL)
return NULL;
@@ -1325,15 +1447,18 @@ array_fromfile(arrayobject *self, PyObject *args)
return res;
}
-PyDoc_STRVAR(fromfile_doc,
-"fromfile(f, n)\n\
-\n\
-Read n objects from the file object f and append them to the end of the\n\
-array.");
+/*[clinic input]
+array.array.tofile
+ f: object
+ /
+
+Write all items (as machine values) to the file object f.
+[clinic start generated code]*/
static PyObject *
-array_tofile(arrayobject *self, PyObject *f)
+array_array_tofile(arrayobject *self, PyObject *f)
+/*[clinic end generated code: output=3a2cfa8128df0777 input=b0669a484aab0831]*/
{
Py_ssize_t nbytes = Py_SIZE(self) * self->ob_descr->itemsize;
/* Write 64K blocks at a time */
@@ -1368,14 +1493,18 @@ array_tofile(arrayobject *self, PyObject *f)
return Py_None;
}
-PyDoc_STRVAR(tofile_doc,
-"tofile(f)\n\
-\n\
-Write all items (as machine values) to the file object f.");
+/*[clinic input]
+array.array.fromlist
+ list: object
+ /
+
+Append items to array from list.
+[clinic start generated code]*/
static PyObject *
-array_fromlist(arrayobject *self, PyObject *list)
+array_array_fromlist(arrayobject *self, PyObject *list)
+/*[clinic end generated code: output=26411c2d228a3e3f input=be2605a96c49680f]*/
{
Py_ssize_t n;
@@ -1402,13 +1531,15 @@ array_fromlist(arrayobject *self, PyObject *list)
return Py_None;
}
-PyDoc_STRVAR(fromlist_doc,
-"fromlist(list)\n\
-\n\
-Append items to array from list.");
+/*[clinic input]
+array.array.tolist
+
+Convert array to an ordinary list with the same items.
+[clinic start generated code]*/
static PyObject *
-array_tolist(arrayobject *self, PyObject *unused)
+array_array_tolist_impl(arrayobject *self)
+/*[clinic end generated code: output=00b60cc9eab8ef89 input=a8d7784a94f86b53]*/
{
PyObject *list = PyList_New(Py_SIZE(self));
Py_ssize_t i;
@@ -1429,11 +1560,6 @@ error:
return NULL;
}
-PyDoc_STRVAR(tolist_doc,
-"tolist() -> list\n\
-\n\
-Convert array to an ordinary list with the same items.");
-
static PyObject *
frombytes(arrayobject *self, Py_buffer *buffer)
{
@@ -1471,47 +1597,52 @@ frombytes(arrayobject *self, Py_buffer *buffer)
return Py_None;
}
+/*[clinic input]
+array.array.fromstring
+
+ buffer: Py_buffer(accept={str, buffer})
+ /
+
+Appends items from the string, interpreting it as an array of machine values, as if it had been read from a file using the fromfile() method).
+
+This method is deprecated. Use frombytes instead.
+[clinic start generated code]*/
+
static PyObject *
-array_fromstring(arrayobject *self, PyObject *args)
+array_array_fromstring_impl(arrayobject *self, Py_buffer *buffer)
+/*[clinic end generated code: output=31c4baa779df84ce input=a3341a512e11d773]*/
{
- Py_buffer buffer;
if (PyErr_WarnEx(PyExc_DeprecationWarning,
"fromstring() is deprecated. Use frombytes() instead.", 2) != 0)
return NULL;
- if (!PyArg_ParseTuple(args, "s*:fromstring", &buffer))
- return NULL;
- else
- return frombytes(self, &buffer);
+ return frombytes(self, buffer);
}
-PyDoc_STRVAR(fromstring_doc,
-"fromstring(string)\n\
-\n\
-Appends items from the string, interpreting it as an array of machine\n\
-values, as if it had been read from a file using the fromfile() method).\n\
-\n\
-This method is deprecated. Use frombytes instead.");
+/*[clinic input]
+array.array.frombytes
+ buffer: Py_buffer
+ /
+
+Appends items from the string, interpreting it as an array of machine values, as if it had been read from a file using the fromfile() method).
+[clinic start generated code]*/
static PyObject *
-array_frombytes(arrayobject *self, PyObject *args)
+array_array_frombytes_impl(arrayobject *self, Py_buffer *buffer)
+/*[clinic end generated code: output=d9842c8f7510a516 input=2bbf2b53ebfcc988]*/
{
- Py_buffer buffer;
- if (!PyArg_ParseTuple(args, "y*:frombytes", &buffer))
- return NULL;
- else
- return frombytes(self, &buffer);
+ return frombytes(self, buffer);
}
-PyDoc_STRVAR(frombytes_doc,
-"frombytes(bytestring)\n\
-\n\
-Appends items from the string, interpreting it as an array of machine\n\
-values, as if it had been read from a file using the fromfile() method).");
+/*[clinic input]
+array.array.tobytes
+Convert the array to an array of machine values and return the bytes representation.
+[clinic start generated code]*/
static PyObject *
-array_tobytes(arrayobject *self, PyObject *unused)
+array_array_tobytes_impl(arrayobject *self)
+/*[clinic end generated code: output=87318e4edcdc2bb6 input=90ee495f96de34f5]*/
{
if (Py_SIZE(self) <= PY_SSIZE_T_MAX / self->ob_descr->itemsize) {
return PyBytes_FromStringAndSize(self->ob_item,
@@ -1521,40 +1652,44 @@ array_tobytes(arrayobject *self, PyObject *unused)
}
}
-PyDoc_STRVAR(tobytes_doc,
-"tobytes() -> bytes\n\
-\n\
-Convert the array to an array of machine values and return the bytes\n\
-representation.");
+/*[clinic input]
+array.array.tostring
+Convert the array to an array of machine values and return the bytes representation.
+
+This method is deprecated. Use tobytes instead.
+[clinic start generated code]*/
static PyObject *
-array_tostring(arrayobject *self, PyObject *unused)
+array_array_tostring_impl(arrayobject *self)
+/*[clinic end generated code: output=7d6bd92745a2c8f3 input=b6c0ddee7b30457e]*/
{
if (PyErr_WarnEx(PyExc_DeprecationWarning,
"tostring() is deprecated. Use tobytes() instead.", 2) != 0)
return NULL;
- return array_tobytes(self, unused);
+ return array_array_tobytes_impl(self);
}
-PyDoc_STRVAR(tostring_doc,
-"tostring() -> bytes\n\
-\n\
-Convert the array to an array of machine values and return the bytes\n\
-representation.\n\
-\n\
-This method is deprecated. Use tobytes instead.");
+/*[clinic input]
+array.array.fromunicode
+
+ ustr: Py_UNICODE(zeroes=True)
+ /
+Extends this array with data from the unicode string ustr.
+
+The array must be a unicode type array; otherwise a ValueError is raised.
+Use array.frombytes(ustr.encode(...)) to append Unicode data to an array of
+some other type.
+[clinic start generated code]*/
static PyObject *
-array_fromunicode(arrayobject *self, PyObject *args)
+array_array_fromunicode_impl(arrayobject *self, Py_UNICODE *ustr,
+ Py_ssize_clean_t ustr_length)
+/*[clinic end generated code: output=ebb72fc16975e06d input=150f00566ffbca6e]*/
{
- Py_UNICODE *ustr;
- Py_ssize_t n;
char typecode;
- if (!PyArg_ParseTuple(args, "u#:fromunicode", &ustr, &n))
- return NULL;
typecode = self->ob_descr->typecode;
if (typecode != 'u') {
PyErr_SetString(PyExc_ValueError,
@@ -1562,29 +1697,30 @@ array_fromunicode(arrayobject *self, PyObject *args)
"unicode type arrays");
return NULL;
}
- if (n > 0) {
+ if (ustr_length > 0) {
Py_ssize_t old_size = Py_SIZE(self);
- if (array_resize(self, old_size + n) == -1)
+ if (array_resize(self, old_size + ustr_length) == -1)
return NULL;
memcpy(self->ob_item + old_size * sizeof(Py_UNICODE),
- ustr, n * sizeof(Py_UNICODE));
+ ustr, ustr_length * sizeof(Py_UNICODE));
}
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
-PyDoc_STRVAR(fromunicode_doc,
-"fromunicode(ustr)\n\
-\n\
-Extends this array with data from the unicode string ustr.\n\
-The array must be a unicode type array; otherwise a ValueError\n\
-is raised. Use array.frombytes(ustr.encode(...)) to\n\
-append Unicode data to an array of some other type.");
+/*[clinic input]
+array.array.tounicode
+
+Extends this array with data from the unicode string ustr.
+Convert the array to a unicode string. The array must be a unicode type array;
+otherwise a ValueError is raised. Use array.tobytes().decode() to obtain a
+unicode string from an array of some other type.
+[clinic start generated code]*/
static PyObject *
-array_tounicode(arrayobject *self, PyObject *unused)
+array_array_tounicode_impl(arrayobject *self)
+/*[clinic end generated code: output=08e442378336e1ef input=127242eebe70b66d]*/
{
char typecode;
typecode = self->ob_descr->typecode;
@@ -1596,70 +1732,24 @@ array_tounicode(arrayobject *self, PyObject *unused)
return PyUnicode_FromUnicode((Py_UNICODE *) self->ob_item, Py_SIZE(self));
}
-PyDoc_STRVAR(tounicode_doc,
-"tounicode() -> unicode\n\
-\n\
-Convert the array to a unicode string. The array must be\n\
-a unicode type array; otherwise a ValueError is raised. Use\n\
-array.tobytes().decode() to obtain a unicode string from\n\
-an array of some other type.");
+/*[clinic input]
+array.array.__sizeof__
+Size of the array in memory, in bytes.
+[clinic start generated code]*/
static PyObject *
-array_sizeof(arrayobject *self, PyObject *unused)
+array_array___sizeof___impl(arrayobject *self)
+/*[clinic end generated code: output=d8e1c61ebbe3eaed input=805586565bf2b3c6]*/
{
Py_ssize_t res;
res = sizeof(arrayobject) + self->allocated * self->ob_descr->itemsize;
return PyLong_FromSsize_t(res);
}
-PyDoc_STRVAR(sizeof_doc,
-"__sizeof__() -> int\n\
-\n\
-Size of the array in memory, in bytes.");
-
/*********************** Pickling support ************************/
-enum machine_format_code {
- UNKNOWN_FORMAT = -1,
- /* UNKNOWN_FORMAT is used to indicate that the machine format for an
- * array type code cannot be interpreted. When this occurs, a list of
- * Python objects is used to represent the content of the array
- * instead of using the memory content of the array directly. In that
- * case, the array_reconstructor mechanism is bypassed completely, and
- * the standard array constructor is used instead.
- *
- * This is will most likely occur when the machine doesn't use IEEE
- * floating-point numbers.
- */
-
- UNSIGNED_INT8 = 0,
- SIGNED_INT8 = 1,
- UNSIGNED_INT16_LE = 2,
- UNSIGNED_INT16_BE = 3,
- SIGNED_INT16_LE = 4,
- SIGNED_INT16_BE = 5,
- UNSIGNED_INT32_LE = 6,
- UNSIGNED_INT32_BE = 7,
- SIGNED_INT32_LE = 8,
- SIGNED_INT32_BE = 9,
- UNSIGNED_INT64_LE = 10,
- UNSIGNED_INT64_BE = 11,
- SIGNED_INT64_LE = 12,
- SIGNED_INT64_BE = 13,
- IEEE_754_FLOAT_LE = 14,
- IEEE_754_FLOAT_BE = 15,
- IEEE_754_DOUBLE_LE = 16,
- IEEE_754_DOUBLE_BE = 17,
- UTF16_LE = 18,
- UTF16_BE = 19,
- UTF32_LE = 20,
- UTF32_BE = 21
-};
-#define MACHINE_FORMAT_CODE_MIN 0
-#define MACHINE_FORMAT_CODE_MAX 21
-
static const struct mformatdescr {
size_t size;
int is_signed;
@@ -1835,21 +1925,29 @@ make_array(PyTypeObject *arraytype, char typecode, PyObject *items)
* This functions is a special constructor used when unpickling an array. It
* provides a portable way to rebuild an array from its memory representation.
*/
+/*[clinic input]
+array._array_reconstructor
+
+ arraytype: object(type="PyTypeObject *")
+ typecode: int(accept={str})
+ mformat_code: int(type="enum machine_format_code")
+ items: object
+ /
+
+Internal. Used for pickling support.
+[clinic start generated code]*/
+
static PyObject *
-array_reconstructor(PyObject *self, PyObject *args)
+array__array_reconstructor_impl(PyModuleDef *module, PyTypeObject *arraytype,
+ int typecode,
+ enum machine_format_code mformat_code,
+ PyObject *items)
+/*[clinic end generated code: output=6ecbf0e8e4d92ab9 input=2464dc8f4c7736b5]*/
{
- PyTypeObject *arraytype;
- PyObject *items;
PyObject *converted_items;
PyObject *result;
- int typecode;
- enum machine_format_code mformat_code;
struct arraydescr *descr;
- if (!PyArg_ParseTuple(args, "OCiO:array._array_reconstructor",
- &arraytype, &typecode, &mformat_code, &items))
- return NULL;
-
if (!PyType_Check(arraytype)) {
PyErr_Format(PyExc_TypeError,
"first argument must a type object, not %.200s",
@@ -2000,7 +2098,7 @@ array_reconstructor(PyObject *self, PyObject *args)
*/
for (descr = descriptors; descr->typecode != '\0'; descr++) {
if (descr->is_integer_type &&
- descr->itemsize == mf_descr.size &&
+ (size_t)descr->itemsize == mf_descr.size &&
descr->is_signed == mf_descr.is_signed)
typecode = descr->typecode;
}
@@ -2038,13 +2136,23 @@ array_reconstructor(PyObject *self, PyObject *args)
return result;
}
+/*[clinic input]
+array.array.__reduce_ex__
+
+ value: object
+ /
+
+Return state information for pickling.
+[clinic start generated code]*/
+
static PyObject *
-array_reduce_ex(arrayobject *array, PyObject *value)
+array_array___reduce_ex__(arrayobject *self, PyObject *value)
+/*[clinic end generated code: output=051e0a6175d0eddb input=c36c3f85de7df6cd]*/
{
PyObject *dict;
PyObject *result;
PyObject *array_str;
- int typecode = array->ob_descr->typecode;
+ int typecode = self->ob_descr->typecode;
int mformat_code;
static PyObject *array_reconstructor = NULL;
long protocol;
@@ -2072,7 +2180,7 @@ array_reduce_ex(arrayobject *array, PyObject *value)
if (protocol == -1 && PyErr_Occurred())
return NULL;
- dict = _PyObject_GetAttrId((PyObject *)array, &PyId___dict__);
+ dict = _PyObject_GetAttrId((PyObject *)self, &PyId___dict__);
if (dict == NULL) {
if (!PyErr_ExceptionMatches(PyExc_AttributeError))
return NULL;
@@ -2095,32 +2203,30 @@ array_reduce_ex(arrayobject *array, PyObject *value)
* coercing unicode objects to bytes in array_reconstructor.
*/
PyObject *list;
- list = array_tolist(array, NULL);
+ list = array_array_tolist_impl(self);
if (list == NULL) {
Py_DECREF(dict);
return NULL;
}
result = Py_BuildValue(
- "O(CO)O", Py_TYPE(array), typecode, list, dict);
+ "O(CO)O", Py_TYPE(self), typecode, list, dict);
Py_DECREF(list);
Py_DECREF(dict);
return result;
}
- array_str = array_tobytes(array, NULL);
+ array_str = array_array_tobytes_impl(self);
if (array_str == NULL) {
Py_DECREF(dict);
return NULL;
}
result = Py_BuildValue(
- "O(OCiN)O", array_reconstructor, Py_TYPE(array), typecode,
+ "O(OCiN)O", array_reconstructor, Py_TYPE(self), typecode,
mformat_code, array_str, dict);
Py_DECREF(dict);
return result;
}
-PyDoc_STRVAR(reduce_doc, "Return state information for pickling.");
-
static PyObject *
array_get_typecode(arrayobject *a, void *closure)
{
@@ -2143,55 +2249,31 @@ static PyGetSetDef array_getsets [] = {
};
static PyMethodDef array_methods[] = {
- {"append", (PyCFunction)array_append, METH_O,
- append_doc},
- {"buffer_info", (PyCFunction)array_buffer_info, METH_NOARGS,
- buffer_info_doc},
- {"byteswap", (PyCFunction)array_byteswap, METH_NOARGS,
- byteswap_doc},
- {"__copy__", (PyCFunction)array_copy, METH_NOARGS,
- copy_doc},
- {"count", (PyCFunction)array_count, METH_O,
- count_doc},
- {"__deepcopy__", (PyCFunction)array_copy, METH_O,
- copy_doc},
- {"extend", (PyCFunction)array_extend, METH_O,
- extend_doc},
- {"fromfile", (PyCFunction)array_fromfile, METH_VARARGS,
- fromfile_doc},
- {"fromlist", (PyCFunction)array_fromlist, METH_O,
- fromlist_doc},
- {"fromstring", (PyCFunction)array_fromstring, METH_VARARGS,
- fromstring_doc},
- {"frombytes", (PyCFunction)array_frombytes, METH_VARARGS,
- frombytes_doc},
- {"fromunicode", (PyCFunction)array_fromunicode, METH_VARARGS,
- fromunicode_doc},
- {"index", (PyCFunction)array_index, METH_O,
- index_doc},
- {"insert", (PyCFunction)array_insert, METH_VARARGS,
- insert_doc},
- {"pop", (PyCFunction)array_pop, METH_VARARGS,
- pop_doc},
- {"__reduce_ex__", (PyCFunction)array_reduce_ex, METH_O,
- reduce_doc},
- {"remove", (PyCFunction)array_remove, METH_O,
- remove_doc},
- {"reverse", (PyCFunction)array_reverse, METH_NOARGS,
- reverse_doc},
- {"tofile", (PyCFunction)array_tofile, METH_O,
- tofile_doc},
- {"tolist", (PyCFunction)array_tolist, METH_NOARGS,
- tolist_doc},
- {"tostring", (PyCFunction)array_tostring, METH_NOARGS,
- tostring_doc},
- {"tobytes", (PyCFunction)array_tobytes, METH_NOARGS,
- tobytes_doc},
- {"tounicode", (PyCFunction)array_tounicode, METH_NOARGS,
- tounicode_doc},
- {"__sizeof__", (PyCFunction)array_sizeof, METH_NOARGS,
- sizeof_doc},
- {NULL, NULL} /* sentinel */
+ ARRAY_ARRAY_APPEND_METHODDEF
+ ARRAY_ARRAY_BUFFER_INFO_METHODDEF
+ ARRAY_ARRAY_BYTESWAP_METHODDEF
+ ARRAY_ARRAY___COPY___METHODDEF
+ ARRAY_ARRAY_COUNT_METHODDEF
+ ARRAY_ARRAY___DEEPCOPY___METHODDEF
+ ARRAY_ARRAY_EXTEND_METHODDEF
+ ARRAY_ARRAY_FROMFILE_METHODDEF
+ ARRAY_ARRAY_FROMLIST_METHODDEF
+ ARRAY_ARRAY_FROMSTRING_METHODDEF
+ ARRAY_ARRAY_FROMBYTES_METHODDEF
+ ARRAY_ARRAY_FROMUNICODE_METHODDEF
+ ARRAY_ARRAY_INDEX_METHODDEF
+ ARRAY_ARRAY_INSERT_METHODDEF
+ ARRAY_ARRAY_POP_METHODDEF
+ ARRAY_ARRAY___REDUCE_EX___METHODDEF
+ ARRAY_ARRAY_REMOVE_METHODDEF
+ ARRAY_ARRAY_REVERSE_METHODDEF
+ ARRAY_ARRAY_TOFILE_METHODDEF
+ ARRAY_ARRAY_TOLIST_METHODDEF
+ ARRAY_ARRAY_TOSTRING_METHODDEF
+ ARRAY_ARRAY_TOBYTES_METHODDEF
+ ARRAY_ARRAY_TOUNICODE_METHODDEF
+ ARRAY_ARRAY___SIZEOF___METHODDEF
+ {NULL, NULL} /* sentinel */
};
static PyObject *
@@ -2207,9 +2289,9 @@ array_repr(arrayobject *a)
return PyUnicode_FromFormat("array('%c')", (int)typecode);
}
if (typecode == 'u') {
- v = array_tounicode(a, NULL);
+ v = array_array_tounicode_impl(a);
} else {
- v = array_tolist(a, NULL);
+ v = array_array_tolist_impl(a);
}
if (v == NULL)
return NULL;
@@ -2446,7 +2528,11 @@ static const void *emptybuf = "";
static int
array_buffer_getbuf(arrayobject *self, Py_buffer *view, int flags)
{
- if (view==NULL) goto finish;
+ if (view == NULL) {
+ PyErr_SetString(PyExc_BufferError,
+ "array_buffer_getbuf: view==NULL argument is obsolete");
+ return -1;
+ }
view->buf = (void *)self->ob_item;
view->obj = (PyObject*)self;
@@ -2476,7 +2562,6 @@ array_buffer_getbuf(arrayobject *self, Py_buffer *view, int flags)
#endif
}
- finish:
self->ob_exports++;
return 0;
}
@@ -2586,15 +2671,9 @@ array_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
}
else if (initial != NULL && (PyByteArray_Check(initial) ||
PyBytes_Check(initial))) {
- PyObject *t_initial, *v;
- t_initial = PyTuple_Pack(1, initial);
- if (t_initial == NULL) {
- Py_DECREF(a);
- return NULL;
- }
- v = array_frombytes((arrayobject *)a,
- t_initial);
- Py_DECREF(t_initial);
+ PyObject *v;
+ v = array_array_frombytes((arrayobject *)a,
+ initial);
if (v == NULL) {
Py_DECREF(a);
return NULL;
@@ -2766,16 +2845,10 @@ static PyTypeObject Arraytype = {
/*********************** Array Iterator **************************/
-typedef struct {
- PyObject_HEAD
- Py_ssize_t index;
- arrayobject *ao;
- PyObject * (*getitem)(struct arrayobject *, Py_ssize_t);
-} arrayiterobject;
-
-static PyTypeObject PyArrayIter_Type;
-
-#define PyArrayIter_Check(op) PyObject_TypeCheck(op, &PyArrayIter_Type)
+/*[clinic input]
+class array.arrayiterator "arrayiterobject *" "&PyArrayIter_Type"
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=5aefd2d74d8c8e30]*/
static PyObject *
array_iter(arrayobject *ao)
@@ -2823,33 +2896,47 @@ arrayiter_traverse(arrayiterobject *it, visitproc visit, void *arg)
return 0;
}
+/*[clinic input]
+array.arrayiterator.__reduce__
+
+Return state information for pickling.
+[clinic start generated code]*/
+
static PyObject *
-arrayiter_reduce(arrayiterobject *it)
+array_arrayiterator___reduce___impl(arrayiterobject *self)
+/*[clinic end generated code: output=7898a52e8e66e016 input=a062ea1e9951417a]*/
{
return Py_BuildValue("N(O)n", _PyObject_GetBuiltin("iter"),
- it->ao, it->index);
+ self->ao, self->index);
}
+/*[clinic input]
+array.arrayiterator.__setstate__
+
+ state: object
+ /
+
+Set state information for unpickling.
+[clinic start generated code]*/
+
static PyObject *
-arrayiter_setstate(arrayiterobject *it, PyObject *state)
+array_arrayiterator___setstate__(arrayiterobject *self, PyObject *state)
+/*[clinic end generated code: output=397da9904e443cbe input=f47d5ceda19e787b]*/
{
Py_ssize_t index = PyLong_AsSsize_t(state);
if (index == -1 && PyErr_Occurred())
return NULL;
if (index < 0)
index = 0;
- else if (index > Py_SIZE(it->ao))
- index = Py_SIZE(it->ao); /* iterator exhausted */
- it->index = index;
+ else if (index > Py_SIZE(self->ao))
+ index = Py_SIZE(self->ao); /* iterator exhausted */
+ self->index = index;
Py_RETURN_NONE;
}
-PyDoc_STRVAR(setstate_doc, "Set state information for unpickling.");
static PyMethodDef arrayiter_methods[] = {
- {"__reduce__", (PyCFunction)arrayiter_reduce, METH_NOARGS,
- reduce_doc},
- {"__setstate__", (PyCFunction)arrayiter_setstate, METH_O,
- setstate_doc},
+ ARRAY_ARRAYITERATOR___REDUCE___METHODDEF
+ ARRAY_ARRAYITERATOR___SETSTATE___METHODDEF
{NULL, NULL} /* sentinel */
};
@@ -2890,39 +2977,21 @@ static PyTypeObject PyArrayIter_Type = {
/* No functions in array module. */
static PyMethodDef a_methods[] = {
- {"_array_reconstructor", array_reconstructor, METH_VARARGS,
- PyDoc_STR("Internal. Used for pickling support.")},
+ ARRAY__ARRAY_RECONSTRUCTOR_METHODDEF
{NULL, NULL, 0, NULL} /* Sentinel */
};
-static struct PyModuleDef arraymodule = {
- PyModuleDef_HEAD_INIT,
- "array",
- module_doc,
- -1,
- a_methods,
- NULL,
- NULL,
- NULL,
- NULL
-};
-
-
-PyMODINIT_FUNC
-PyInit_array(void)
+static int
+array_modexec(PyObject *m)
{
- PyObject *m;
char buffer[Py_ARRAY_LENGTH(descriptors)], *p;
PyObject *typecodes;
Py_ssize_t size = 0;
struct arraydescr *descr;
if (PyType_Ready(&Arraytype) < 0)
- return NULL;
+ return -1;
Py_TYPE(&PyArrayIter_Type) = &PyType_Type;
- m = PyModule_Create(&arraymodule);
- if (m == NULL)
- return NULL;
Py_INCREF((PyObject *)&Arraytype);
PyModule_AddObject(m, "ArrayType", (PyObject *)&Arraytype);
@@ -2945,5 +3014,30 @@ PyInit_array(void)
Py_DECREF(m);
m = NULL;
}
- return m;
+ return 0;
+}
+
+static PyModuleDef_Slot arrayslots[] = {
+ {Py_mod_exec, array_modexec},
+ {0, NULL}
+};
+
+
+static struct PyModuleDef arraymodule = {
+ PyModuleDef_HEAD_INIT,
+ "array",
+ module_doc,
+ 0,
+ a_methods,
+ arrayslots,
+ NULL,
+ NULL,
+ NULL
+};
+
+
+PyMODINIT_FUNC
+PyInit_array(void)
+{
+ return PyModuleDef_Init(&arraymodule);
}
diff --git a/Modules/atexitmodule.c b/Modules/atexitmodule.c
index 98870141dd..739c18836f 100644
--- a/Modules/atexitmodule.c
+++ b/Modules/atexitmodule.c
@@ -60,7 +60,7 @@ atexit_cleanup(atexitmodule_state *modstate)
modstate->ncallbacks = 0;
}
-/* Installed into pythonrun.c's atexit mechanism */
+/* Installed into pylifecycle.c's atexit mechanism */
static void
atexit_callfuncs(void)
@@ -94,7 +94,7 @@ atexit_callfuncs(void)
if (exc_type) {
Py_DECREF(exc_type);
Py_XDECREF(exc_value);
- Py_XDECREF(exc_tb);
+ Py_XDECREF(exc_tb);
}
PyErr_Fetch(&exc_type, &exc_value, &exc_tb);
if (!PyErr_ExceptionMatches(PyExc_SystemExit)) {
@@ -147,7 +147,7 @@ atexit_register(PyObject *self, PyObject *args, PyObject *kwargs)
if (PyTuple_GET_SIZE(args) == 0) {
PyErr_SetString(PyExc_TypeError,
"register() takes at least 1 argument (0 given)");
- return NULL;
+ return NULL;
}
func = PyTuple_GET_ITEM(args, 0);
@@ -159,7 +159,7 @@ atexit_register(PyObject *self, PyObject *args, PyObject *kwargs)
new_callback = PyMem_Malloc(sizeof(atexit_callback));
if (new_callback == NULL)
- return PyErr_NoMemory();
+ return PyErr_NoMemory();
new_callback->args = PyTuple_GetSlice(args, 1, PyTuple_GET_SIZE(args));
if (new_callback->args == NULL) {
@@ -336,7 +336,7 @@ PyInit_atexit(void)
modstate = GET_ATEXIT_STATE(m);
modstate->callback_len = 32;
modstate->ncallbacks = 0;
- modstate->atexit_callbacks = PyMem_New(atexit_callback*,
+ modstate->atexit_callbacks = PyMem_New(atexit_callback*,
modstate->callback_len);
if (modstate->atexit_callbacks == NULL)
return NULL;
diff --git a/Modules/audioop.c b/Modules/audioop.c
index 5efed0c661..bbc458f9b7 100644
--- a/Modules/audioop.c
+++ b/Modules/audioop.c
@@ -391,10 +391,9 @@ audioop_check_parameters(Py_ssize_t len, int size)
}
/*[clinic input]
-output preset file
module audioop
[clinic start generated code]*/
-/*[clinic end generated code: output=da39a3ee5e6b4b0d input=5619f935f269199a]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=8fa8f6611be3591a]*/
/*[clinic input]
audioop.getsample
@@ -408,8 +407,9 @@ Return the value of sample index from the fragment.
[clinic start generated code]*/
static PyObject *
-audioop_getsample_impl(PyModuleDef *module, Py_buffer *fragment, int width, Py_ssize_t index)
-/*[clinic end generated code: output=f4482497e6f6e78f input=88edbe2871393549]*/
+audioop_getsample_impl(PyModuleDef *module, Py_buffer *fragment, int width,
+ Py_ssize_t index)
+/*[clinic end generated code: output=3995e189fdc8ec16 input=88edbe2871393549]*/
{
int val;
@@ -594,8 +594,9 @@ Try to match reference as well as possible to a portion of fragment.
[clinic start generated code]*/
static PyObject *
-audioop_findfit_impl(PyModuleDef *module, Py_buffer *fragment, Py_buffer *reference)
-/*[clinic end generated code: output=505fd04d4244db31 input=62c305605e183c9a]*/
+audioop_findfit_impl(PyModuleDef *module, Py_buffer *fragment,
+ Py_buffer *reference)
+/*[clinic end generated code: output=609eedf5d823d6dd input=62c305605e183c9a]*/
{
const short *cp1, *cp2;
Py_ssize_t len1, len2;
@@ -662,8 +663,9 @@ Return a factor F such that rms(add(fragment, mul(reference, -F))) is minimal.
[clinic start generated code]*/
static PyObject *
-audioop_findfactor_impl(PyModuleDef *module, Py_buffer *fragment, Py_buffer *reference)
-/*[clinic end generated code: output=ddf35a1e57575ce4 input=816680301d012b21]*/
+audioop_findfactor_impl(PyModuleDef *module, Py_buffer *fragment,
+ Py_buffer *reference)
+/*[clinic end generated code: output=5566a8c55de54f99 input=816680301d012b21]*/
{
const short *cp1, *cp2;
Py_ssize_t len;
@@ -703,8 +705,9 @@ Search fragment for a slice of specified number of samples with maximum energy.
[clinic start generated code]*/
static PyObject *
-audioop_findmax_impl(PyModuleDef *module, Py_buffer *fragment, Py_ssize_t length)
-/*[clinic end generated code: output=21d0c2a1e5655134 input=2f304801ed42383c]*/
+audioop_findmax_impl(PyModuleDef *module, Py_buffer *fragment,
+ Py_ssize_t length)
+/*[clinic end generated code: output=01fe796fad2573bb input=2f304801ed42383c]*/
{
const short *cp1;
Py_ssize_t len1;
@@ -897,8 +900,9 @@ Return a fragment that has all samples in the original fragment multiplied by th
[clinic start generated code]*/
static PyObject *
-audioop_mul_impl(PyModuleDef *module, Py_buffer *fragment, int width, double factor)
-/*[clinic end generated code: output=a697ebbd5852d38f input=c726667baa157d3c]*/
+audioop_mul_impl(PyModuleDef *module, Py_buffer *fragment, int width,
+ double factor)
+/*[clinic end generated code: output=1c7c31191ac86b10 input=c726667baa157d3c]*/
{
signed char *ncp;
Py_ssize_t i;
@@ -938,8 +942,9 @@ Convert a stereo fragment to a mono fragment.
[clinic start generated code]*/
static PyObject *
-audioop_tomono_impl(PyModuleDef *module, Py_buffer *fragment, int width, double lfactor, double rfactor)
-/*[clinic end generated code: output=436e7710521661dd input=c4ec949b3f4dddfa]*/
+audioop_tomono_impl(PyModuleDef *module, Py_buffer *fragment, int width,
+ double lfactor, double rfactor)
+/*[clinic end generated code: output=553f547c5e29e3b6 input=c4ec949b3f4dddfa]*/
{
signed char *cp, *ncp;
Py_ssize_t len, i;
@@ -986,8 +991,9 @@ Generate a stereo fragment from a mono fragment.
[clinic start generated code]*/
static PyObject *
-audioop_tostereo_impl(PyModuleDef *module, Py_buffer *fragment, int width, double lfactor, double rfactor)
-/*[clinic end generated code: output=6ff50681c87f4c1c input=27b6395ebfdff37a]*/
+audioop_tostereo_impl(PyModuleDef *module, Py_buffer *fragment, int width,
+ double lfactor, double rfactor)
+/*[clinic end generated code: output=697bb6ba41e9dd2c input=27b6395ebfdff37a]*/
{
signed char *ncp;
Py_ssize_t i;
@@ -1033,8 +1039,9 @@ Return a fragment which is the addition of the two samples passed as parameters.
[clinic start generated code]*/
static PyObject *
-audioop_add_impl(PyModuleDef *module, Py_buffer *fragment1, Py_buffer *fragment2, int width)
-/*[clinic end generated code: output=f9218bf9ea75c3f1 input=4a8d4bae4c1605c7]*/
+audioop_add_impl(PyModuleDef *module, Py_buffer *fragment1,
+ Py_buffer *fragment2, int width)
+/*[clinic end generated code: output=fe6c12f143e0b027 input=4a8d4bae4c1605c7]*/
{
signed char *ncp;
Py_ssize_t i;
@@ -1091,8 +1098,9 @@ Return a fragment that is the original fragment with a bias added to each sample
[clinic start generated code]*/
static PyObject *
-audioop_bias_impl(PyModuleDef *module, Py_buffer *fragment, int width, int bias)
-/*[clinic end generated code: output=8ec80b3f5d510a51 input=2b5cce5c3bb4838c]*/
+audioop_bias_impl(PyModuleDef *module, Py_buffer *fragment, int width,
+ int bias)
+/*[clinic end generated code: output=ac1f4dda20a01c26 input=2b5cce5c3bb4838c]*/
{
signed char *ncp;
Py_ssize_t i;
@@ -1218,8 +1226,9 @@ Convert samples between 1-, 2-, 3- and 4-byte formats.
[clinic start generated code]*/
static PyObject *
-audioop_lin2lin_impl(PyModuleDef *module, Py_buffer *fragment, int width, int newwidth)
-/*[clinic end generated code: output=3f9468a74472a93e input=5ce08c8aa2f24d96]*/
+audioop_lin2lin_impl(PyModuleDef *module, Py_buffer *fragment, int width,
+ int newwidth)
+/*[clinic end generated code: output=cb6ca950d1df9898 input=5ce08c8aa2f24d96]*/
{
unsigned char *ncp;
Py_ssize_t i, j;
@@ -1275,8 +1284,10 @@ Convert the frame rate of the input fragment.
[clinic start generated code]*/
static PyObject *
-audioop_ratecv_impl(PyModuleDef *module, Py_buffer *fragment, int width, int nchannels, int inrate, int outrate, PyObject *state, int weightA, int weightB)
-/*[clinic end generated code: output=5585dddc4b5ff236 input=aff3acdc94476191]*/
+audioop_ratecv_impl(PyModuleDef *module, Py_buffer *fragment, int width,
+ int nchannels, int inrate, int outrate, PyObject *state,
+ int weightA, int weightB)
+/*[clinic end generated code: output=59e1787bfa49b9d9 input=aff3acdc94476191]*/
{
char *cp, *ncp;
Py_ssize_t len;
@@ -1602,8 +1613,9 @@ Convert samples to 4 bit Intel/DVI ADPCM encoding.
[clinic start generated code]*/
static PyObject *
-audioop_lin2adpcm_impl(PyModuleDef *module, Py_buffer *fragment, int width, PyObject *state)
-/*[clinic end generated code: output=4654c29d2731fafe input=12919d549b90c90a]*/
+audioop_lin2adpcm_impl(PyModuleDef *module, Py_buffer *fragment, int width,
+ PyObject *state)
+/*[clinic end generated code: output=93f0996f592b5ce5 input=12919d549b90c90a]*/
{
signed char *ncp;
Py_ssize_t i;
@@ -1729,8 +1741,9 @@ Decode an Intel/DVI ADPCM coded fragment to a linear fragment.
[clinic start generated code]*/
static PyObject *
-audioop_adpcm2lin_impl(PyModuleDef *module, Py_buffer *fragment, int width, PyObject *state)
-/*[clinic end generated code: output=371965cdcc0aa69b input=f5221144f5ca9ef0]*/
+audioop_adpcm2lin_impl(PyModuleDef *module, Py_buffer *fragment, int width,
+ PyObject *state)
+/*[clinic end generated code: output=236cf6dc2c829181 input=f5221144f5ca9ef0]*/
{
signed char *cp;
signed char *ncp;
diff --git a/Modules/binascii.c b/Modules/binascii.c
index ea14d3c027..d920d23871 100644
--- a/Modules/binascii.c
+++ b/Modules/binascii.c
@@ -56,6 +56,7 @@
#define PY_SSIZE_T_CLEAN
#include "Python.h"
+#include "pystrhex.h"
#ifdef USE_ZLIB_CRC32
#include "zlib.h"
#endif
@@ -184,10 +185,9 @@ static unsigned short crctab_hqx[256] = {
};
/*[clinic input]
-output preset file
module binascii
[clinic start generated code]*/
-/*[clinic end generated code: output=da39a3ee5e6b4b0d input=44c6f840ce708f0c]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=de89fb46bcaf3fec]*/
/*[python input]
@@ -1118,33 +1118,7 @@ static PyObject *
binascii_b2a_hex_impl(PyModuleDef *module, Py_buffer *data)
/*[clinic end generated code: output=179318922c2f8fda input=96423cfa299ff3b1]*/
{
- char* argbuf;
- Py_ssize_t arglen;
- PyObject *retval;
- char* retbuf;
- Py_ssize_t i, j;
-
- argbuf = data->buf;
- arglen = data->len;
-
- assert(arglen >= 0);
- if (arglen > PY_SSIZE_T_MAX / 2)
- return PyErr_NoMemory();
-
- retval = PyBytes_FromStringAndSize(NULL, arglen*2);
- if (!retval)
- return NULL;
- retbuf = PyBytes_AS_STRING(retval);
-
- /* make hex version of string, taken from shamodule.c */
- for (i=j=0; i < arglen; i++) {
- unsigned char c;
- c = (argbuf[i] >> 4) & 0xf;
- retbuf[j++] = Py_hexdigits[c];
- c = argbuf[i] & 0xf;
- retbuf[j++] = Py_hexdigits[c];
- }
- return retval;
+ return _Py_strhex_bytes((const char *)data->buf, data->len);
}
/*[clinic input]
@@ -1159,7 +1133,7 @@ static PyObject *
binascii_hexlify_impl(PyModuleDef *module, Py_buffer *data)
/*[clinic end generated code: output=6098440091fb61dc input=2e3afae7f083f061]*/
{
- return binascii_b2a_hex_impl(module, data);
+ return _Py_strhex_bytes((const char *)data->buf, data->len);
}
static int
@@ -1382,8 +1356,9 @@ are both encoded. When quotetabs is set, space and tabs are encoded.
[clinic start generated code]*/
static PyObject *
-binascii_b2a_qp_impl(PyModuleDef *module, Py_buffer *data, int quotetabs, int istext, int header)
-/*[clinic end generated code: output=ff2991ba640fff3e input=7f2a9aaa008e92b2]*/
+binascii_b2a_qp_impl(PyModuleDef *module, Py_buffer *data, int quotetabs,
+ int istext, int header)
+/*[clinic end generated code: output=a87ca9ccb94e2a9f input=7f2a9aaa008e92b2]*/
{
Py_ssize_t in, out;
unsigned char *databuf, *odata;
diff --git a/Modules/cjkcodecs/_codecs_iso2022.c b/Modules/cjkcodecs/_codecs_iso2022.c
index 5c401aaf8e..1ce4218f30 100644
--- a/Modules/cjkcodecs/_codecs_iso2022.c
+++ b/Modules/cjkcodecs/_codecs_iso2022.c
@@ -292,7 +292,7 @@ iso2022processesc(const void *config, MultibyteCodec_State *state,
const unsigned char **inbuf, Py_ssize_t *inleft)
{
unsigned char charset, designation;
- Py_ssize_t i, esclen;
+ Py_ssize_t i, esclen = 0;
for (i = 1;i < MAX_ESCSEQLEN;i++) {
if (i >= *inleft)
@@ -307,10 +307,9 @@ iso2022processesc(const void *config, MultibyteCodec_State *state,
}
}
- if (i >= MAX_ESCSEQLEN)
- return 1; /* unterminated escape sequence */
-
switch (esclen) {
+ case 0:
+ return 1; /* unterminated escape sequence */
case 3:
if (INBYTE2 == '$') {
charset = INBYTE3 | CHARSET_DBCS;
diff --git a/Modules/cjkcodecs/cjkcodecs.h b/Modules/cjkcodecs/cjkcodecs.h
index d15ccfbb07..23642df9af 100644
--- a/Modules/cjkcodecs/cjkcodecs.h
+++ b/Modules/cjkcodecs/cjkcodecs.h
@@ -362,7 +362,7 @@ importmap(const char *modname, const char *symbol,
if (mod == NULL)
return -1;
- o = PyObject_GetAttrString(mod, (char*)symbol);
+ o = PyObject_GetAttrString(mod, symbol);
if (o == NULL)
goto errorexit;
else if (!PyCapsule_IsValid(o, PyMultibyteCodec_CAPSULE_NAME)) {
@@ -401,7 +401,7 @@ errorexit:
NULL, \
NULL \
}; \
- PyObject* \
+ PyMODINIT_FUNC \
PyInit__codecs_##loc(void) \
{ \
PyObject *m = PyModule_Create(&__module); \
diff --git a/Modules/cjkcodecs/clinic/multibytecodec.c.h b/Modules/cjkcodecs/clinic/multibytecodec.c.h
new file mode 100644
index 0000000000..8a47ff88a6
--- /dev/null
+++ b/Modules/cjkcodecs/clinic/multibytecodec.c.h
@@ -0,0 +1,320 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(_multibytecodec_MultibyteCodec_encode__doc__,
+"encode($self, /, input, errors=None)\n"
+"--\n"
+"\n"
+"Return an encoded string version of `input\'.\n"
+"\n"
+"\'errors\' may be given to set a different error handling scheme. Default is\n"
+"\'strict\' meaning that encoding errors raise a UnicodeEncodeError. Other possible\n"
+"values are \'ignore\', \'replace\' and \'xmlcharrefreplace\' as well as any other name\n"
+"registered with codecs.register_error that can handle UnicodeEncodeErrors.");
+
+#define _MULTIBYTECODEC_MULTIBYTECODEC_ENCODE_METHODDEF \
+ {"encode", (PyCFunction)_multibytecodec_MultibyteCodec_encode, METH_VARARGS|METH_KEYWORDS, _multibytecodec_MultibyteCodec_encode__doc__},
+
+static PyObject *
+_multibytecodec_MultibyteCodec_encode_impl(MultibyteCodecObject *self,
+ PyObject *input,
+ const char *errors);
+
+static PyObject *
+_multibytecodec_MultibyteCodec_encode(MultibyteCodecObject *self, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"input", "errors", NULL};
+ PyObject *input;
+ const char *errors = NULL;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|z:encode", _keywords,
+ &input, &errors))
+ goto exit;
+ return_value = _multibytecodec_MultibyteCodec_encode_impl(self, input, errors);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_multibytecodec_MultibyteCodec_decode__doc__,
+"decode($self, /, input, errors=None)\n"
+"--\n"
+"\n"
+"Decodes \'input\'.\n"
+"\n"
+"\'errors\' may be given to set a different error handling scheme. Default is\n"
+"\'strict\' meaning that encoding errors raise a UnicodeDecodeError. Other possible\n"
+"values are \'ignore\' and \'replace\' as well as any other name registered with\n"
+"codecs.register_error that is able to handle UnicodeDecodeErrors.\"");
+
+#define _MULTIBYTECODEC_MULTIBYTECODEC_DECODE_METHODDEF \
+ {"decode", (PyCFunction)_multibytecodec_MultibyteCodec_decode, METH_VARARGS|METH_KEYWORDS, _multibytecodec_MultibyteCodec_decode__doc__},
+
+static PyObject *
+_multibytecodec_MultibyteCodec_decode_impl(MultibyteCodecObject *self,
+ Py_buffer *input,
+ const char *errors);
+
+static PyObject *
+_multibytecodec_MultibyteCodec_decode(MultibyteCodecObject *self, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"input", "errors", NULL};
+ Py_buffer input = {NULL, NULL};
+ const char *errors = NULL;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "y*|z:decode", _keywords,
+ &input, &errors))
+ goto exit;
+ return_value = _multibytecodec_MultibyteCodec_decode_impl(self, &input, errors);
+
+exit:
+ /* Cleanup for input */
+ if (input.obj)
+ PyBuffer_Release(&input);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(_multibytecodec_MultibyteIncrementalEncoder_encode__doc__,
+"encode($self, /, input, final=False)\n"
+"--\n"
+"\n");
+
+#define _MULTIBYTECODEC_MULTIBYTEINCREMENTALENCODER_ENCODE_METHODDEF \
+ {"encode", (PyCFunction)_multibytecodec_MultibyteIncrementalEncoder_encode, METH_VARARGS|METH_KEYWORDS, _multibytecodec_MultibyteIncrementalEncoder_encode__doc__},
+
+static PyObject *
+_multibytecodec_MultibyteIncrementalEncoder_encode_impl(MultibyteIncrementalEncoderObject *self,
+ PyObject *input,
+ int final);
+
+static PyObject *
+_multibytecodec_MultibyteIncrementalEncoder_encode(MultibyteIncrementalEncoderObject *self, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"input", "final", NULL};
+ PyObject *input;
+ int final = 0;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|i:encode", _keywords,
+ &input, &final))
+ goto exit;
+ return_value = _multibytecodec_MultibyteIncrementalEncoder_encode_impl(self, input, final);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_multibytecodec_MultibyteIncrementalEncoder_reset__doc__,
+"reset($self, /)\n"
+"--\n"
+"\n");
+
+#define _MULTIBYTECODEC_MULTIBYTEINCREMENTALENCODER_RESET_METHODDEF \
+ {"reset", (PyCFunction)_multibytecodec_MultibyteIncrementalEncoder_reset, METH_NOARGS, _multibytecodec_MultibyteIncrementalEncoder_reset__doc__},
+
+static PyObject *
+_multibytecodec_MultibyteIncrementalEncoder_reset_impl(MultibyteIncrementalEncoderObject *self);
+
+static PyObject *
+_multibytecodec_MultibyteIncrementalEncoder_reset(MultibyteIncrementalEncoderObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _multibytecodec_MultibyteIncrementalEncoder_reset_impl(self);
+}
+
+PyDoc_STRVAR(_multibytecodec_MultibyteIncrementalDecoder_decode__doc__,
+"decode($self, /, input, final=False)\n"
+"--\n"
+"\n");
+
+#define _MULTIBYTECODEC_MULTIBYTEINCREMENTALDECODER_DECODE_METHODDEF \
+ {"decode", (PyCFunction)_multibytecodec_MultibyteIncrementalDecoder_decode, METH_VARARGS|METH_KEYWORDS, _multibytecodec_MultibyteIncrementalDecoder_decode__doc__},
+
+static PyObject *
+_multibytecodec_MultibyteIncrementalDecoder_decode_impl(MultibyteIncrementalDecoderObject *self,
+ Py_buffer *input,
+ int final);
+
+static PyObject *
+_multibytecodec_MultibyteIncrementalDecoder_decode(MultibyteIncrementalDecoderObject *self, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"input", "final", NULL};
+ Py_buffer input = {NULL, NULL};
+ int final = 0;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "y*|i:decode", _keywords,
+ &input, &final))
+ goto exit;
+ return_value = _multibytecodec_MultibyteIncrementalDecoder_decode_impl(self, &input, final);
+
+exit:
+ /* Cleanup for input */
+ if (input.obj)
+ PyBuffer_Release(&input);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(_multibytecodec_MultibyteIncrementalDecoder_reset__doc__,
+"reset($self, /)\n"
+"--\n"
+"\n");
+
+#define _MULTIBYTECODEC_MULTIBYTEINCREMENTALDECODER_RESET_METHODDEF \
+ {"reset", (PyCFunction)_multibytecodec_MultibyteIncrementalDecoder_reset, METH_NOARGS, _multibytecodec_MultibyteIncrementalDecoder_reset__doc__},
+
+static PyObject *
+_multibytecodec_MultibyteIncrementalDecoder_reset_impl(MultibyteIncrementalDecoderObject *self);
+
+static PyObject *
+_multibytecodec_MultibyteIncrementalDecoder_reset(MultibyteIncrementalDecoderObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _multibytecodec_MultibyteIncrementalDecoder_reset_impl(self);
+}
+
+PyDoc_STRVAR(_multibytecodec_MultibyteStreamReader_read__doc__,
+"read($self, sizeobj=None, /)\n"
+"--\n"
+"\n");
+
+#define _MULTIBYTECODEC_MULTIBYTESTREAMREADER_READ_METHODDEF \
+ {"read", (PyCFunction)_multibytecodec_MultibyteStreamReader_read, METH_VARARGS, _multibytecodec_MultibyteStreamReader_read__doc__},
+
+static PyObject *
+_multibytecodec_MultibyteStreamReader_read_impl(MultibyteStreamReaderObject *self,
+ PyObject *sizeobj);
+
+static PyObject *
+_multibytecodec_MultibyteStreamReader_read(MultibyteStreamReaderObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *sizeobj = Py_None;
+
+ if (!PyArg_UnpackTuple(args, "read",
+ 0, 1,
+ &sizeobj))
+ goto exit;
+ return_value = _multibytecodec_MultibyteStreamReader_read_impl(self, sizeobj);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_multibytecodec_MultibyteStreamReader_readline__doc__,
+"readline($self, sizeobj=None, /)\n"
+"--\n"
+"\n");
+
+#define _MULTIBYTECODEC_MULTIBYTESTREAMREADER_READLINE_METHODDEF \
+ {"readline", (PyCFunction)_multibytecodec_MultibyteStreamReader_readline, METH_VARARGS, _multibytecodec_MultibyteStreamReader_readline__doc__},
+
+static PyObject *
+_multibytecodec_MultibyteStreamReader_readline_impl(MultibyteStreamReaderObject *self,
+ PyObject *sizeobj);
+
+static PyObject *
+_multibytecodec_MultibyteStreamReader_readline(MultibyteStreamReaderObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *sizeobj = Py_None;
+
+ if (!PyArg_UnpackTuple(args, "readline",
+ 0, 1,
+ &sizeobj))
+ goto exit;
+ return_value = _multibytecodec_MultibyteStreamReader_readline_impl(self, sizeobj);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_multibytecodec_MultibyteStreamReader_readlines__doc__,
+"readlines($self, sizehintobj=None, /)\n"
+"--\n"
+"\n");
+
+#define _MULTIBYTECODEC_MULTIBYTESTREAMREADER_READLINES_METHODDEF \
+ {"readlines", (PyCFunction)_multibytecodec_MultibyteStreamReader_readlines, METH_VARARGS, _multibytecodec_MultibyteStreamReader_readlines__doc__},
+
+static PyObject *
+_multibytecodec_MultibyteStreamReader_readlines_impl(MultibyteStreamReaderObject *self,
+ PyObject *sizehintobj);
+
+static PyObject *
+_multibytecodec_MultibyteStreamReader_readlines(MultibyteStreamReaderObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *sizehintobj = Py_None;
+
+ if (!PyArg_UnpackTuple(args, "readlines",
+ 0, 1,
+ &sizehintobj))
+ goto exit;
+ return_value = _multibytecodec_MultibyteStreamReader_readlines_impl(self, sizehintobj);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_multibytecodec_MultibyteStreamReader_reset__doc__,
+"reset($self, /)\n"
+"--\n"
+"\n");
+
+#define _MULTIBYTECODEC_MULTIBYTESTREAMREADER_RESET_METHODDEF \
+ {"reset", (PyCFunction)_multibytecodec_MultibyteStreamReader_reset, METH_NOARGS, _multibytecodec_MultibyteStreamReader_reset__doc__},
+
+static PyObject *
+_multibytecodec_MultibyteStreamReader_reset_impl(MultibyteStreamReaderObject *self);
+
+static PyObject *
+_multibytecodec_MultibyteStreamReader_reset(MultibyteStreamReaderObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _multibytecodec_MultibyteStreamReader_reset_impl(self);
+}
+
+PyDoc_STRVAR(_multibytecodec_MultibyteStreamWriter_write__doc__,
+"write($self, strobj, /)\n"
+"--\n"
+"\n");
+
+#define _MULTIBYTECODEC_MULTIBYTESTREAMWRITER_WRITE_METHODDEF \
+ {"write", (PyCFunction)_multibytecodec_MultibyteStreamWriter_write, METH_O, _multibytecodec_MultibyteStreamWriter_write__doc__},
+
+PyDoc_STRVAR(_multibytecodec_MultibyteStreamWriter_writelines__doc__,
+"writelines($self, lines, /)\n"
+"--\n"
+"\n");
+
+#define _MULTIBYTECODEC_MULTIBYTESTREAMWRITER_WRITELINES_METHODDEF \
+ {"writelines", (PyCFunction)_multibytecodec_MultibyteStreamWriter_writelines, METH_O, _multibytecodec_MultibyteStreamWriter_writelines__doc__},
+
+PyDoc_STRVAR(_multibytecodec_MultibyteStreamWriter_reset__doc__,
+"reset($self, /)\n"
+"--\n"
+"\n");
+
+#define _MULTIBYTECODEC_MULTIBYTESTREAMWRITER_RESET_METHODDEF \
+ {"reset", (PyCFunction)_multibytecodec_MultibyteStreamWriter_reset, METH_NOARGS, _multibytecodec_MultibyteStreamWriter_reset__doc__},
+
+static PyObject *
+_multibytecodec_MultibyteStreamWriter_reset_impl(MultibyteStreamWriterObject *self);
+
+static PyObject *
+_multibytecodec_MultibyteStreamWriter_reset(MultibyteStreamWriterObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _multibytecodec_MultibyteStreamWriter_reset_impl(self);
+}
+
+PyDoc_STRVAR(_multibytecodec___create_codec__doc__,
+"__create_codec($module, arg, /)\n"
+"--\n"
+"\n");
+
+#define _MULTIBYTECODEC___CREATE_CODEC_METHODDEF \
+ {"__create_codec", (PyCFunction)_multibytecodec___create_codec, METH_O, _multibytecodec___create_codec__doc__},
+/*[clinic end generated code: output=eebb21e18c3043d1 input=a9049054013a1b77]*/
diff --git a/Modules/cjkcodecs/multibytecodec.c b/Modules/cjkcodecs/multibytecodec.c
index e0d9b678c2..e4547f75c9 100644
--- a/Modules/cjkcodecs/multibytecodec.c
+++ b/Modules/cjkcodecs/multibytecodec.c
@@ -8,6 +8,13 @@
#include "Python.h"
#include "structmember.h"
#include "multibytecodec.h"
+#include "clinic/multibytecodec.c.h"
+
+/*[clinic input]
+module _multibytecodec
+class _multibytecodec.MultibyteCodec "MultibyteCodecObject *" "&MultibyteCodec_Type"
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=6ad689546cbb5450]*/
typedef struct {
PyObject *inobj;
@@ -22,27 +29,7 @@ typedef struct {
_PyUnicodeWriter writer;
} MultibyteDecodeBuffer;
-PyDoc_STRVAR(MultibyteCodec_Encode__doc__,
-"I.encode(unicode[, errors]) -> (string, length consumed)\n\
-\n\
-Return an encoded string version of `unicode'. errors may be given to\n\
-set a different error handling scheme. Default is 'strict' meaning that\n\
-encoding errors raise a UnicodeEncodeError. Other possible values are\n\
-'ignore', 'replace' and 'xmlcharrefreplace' as well as any other name\n\
-registered with codecs.register_error that can handle UnicodeEncodeErrors.");
-
-PyDoc_STRVAR(MultibyteCodec_Decode__doc__,
-"I.decode(string[, errors]) -> (unicodeobject, length consumed)\n\
-\n\
-Decodes `string' using I, an MultibyteCodec instance. errors may be given\n\
-to set a different error handling scheme. Default is 'strict' meaning\n\
-that encoding errors raise a UnicodeDecodeError. Other possible values\n\
-are 'ignore' and 'replace' as well as any other name registered with\n\
-codecs.register_error that is able to handle UnicodeDecodeErrors.");
-
-static char *codeckwarglist[] = {"input", "errors", NULL};
static char *incnewkwarglist[] = {"errors", NULL};
-static char *incrementalkwarglist[] = {"input", "final", NULL};
static char *streamkwarglist[] = {"stream", "errors", NULL};
static PyObject *multibytecodec_encode(MultibyteCodec *,
@@ -553,26 +540,37 @@ errorexit:
return NULL;
}
+/*[clinic input]
+_multibytecodec.MultibyteCodec.encode
+
+ input: object
+ errors: str(accept={str, NoneType}) = NULL
+
+Return an encoded string version of `input'.
+
+'errors' may be given to set a different error handling scheme. Default is
+'strict' meaning that encoding errors raise a UnicodeEncodeError. Other possible
+values are 'ignore', 'replace' and 'xmlcharrefreplace' as well as any other name
+registered with codecs.register_error that can handle UnicodeEncodeErrors.
+[clinic start generated code]*/
+
static PyObject *
-MultibyteCodec_Encode(MultibyteCodecObject *self,
- PyObject *args, PyObject *kwargs)
+_multibytecodec_MultibyteCodec_encode_impl(MultibyteCodecObject *self,
+ PyObject *input,
+ const char *errors)
+/*[clinic end generated code: output=7b26652045ba56a9 input=05f6ced3c8dd0582]*/
{
MultibyteCodec_State state;
- PyObject *errorcb, *r, *arg, *ucvt;
- const char *errors = NULL;
+ PyObject *errorcb, *r, *ucvt;
Py_ssize_t datalen;
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|z:encode",
- codeckwarglist, &arg, &errors))
- return NULL;
-
- if (PyUnicode_Check(arg))
+ if (PyUnicode_Check(input))
ucvt = NULL;
else {
- arg = ucvt = PyObject_Str(arg);
- if (arg == NULL)
+ input = ucvt = PyObject_Str(input);
+ if (input == NULL)
return NULL;
- else if (!PyUnicode_Check(arg)) {
+ else if (!PyUnicode_Check(input)) {
PyErr_SetString(PyExc_TypeError,
"couldn't convert the object to unicode.");
Py_DECREF(ucvt);
@@ -580,11 +578,11 @@ MultibyteCodec_Encode(MultibyteCodecObject *self,
}
}
- if (PyUnicode_READY(arg) < 0) {
+ if (PyUnicode_READY(input) < 0) {
Py_XDECREF(ucvt);
return NULL;
}
- datalen = PyUnicode_GET_LENGTH(arg);
+ datalen = PyUnicode_GET_LENGTH(input);
errorcb = internal_error_callback(errors);
if (errorcb == NULL) {
@@ -596,7 +594,7 @@ MultibyteCodec_Encode(MultibyteCodecObject *self,
self->codec->encinit(&state, self->codec->config) != 0)
goto errorexit;
r = multibytecodec_encode(self->codec, &state,
- arg, NULL, errorcb,
+ input, NULL, errorcb,
MBENC_FLUSH | MBENC_RESET);
if (r == NULL)
goto errorexit;
@@ -611,31 +609,41 @@ errorexit:
return NULL;
}
+/*[clinic input]
+_multibytecodec.MultibyteCodec.decode
+
+ input: Py_buffer
+ errors: str(accept={str, NoneType}) = NULL
+
+Decodes 'input'.
+
+'errors' may be given to set a different error handling scheme. Default is
+'strict' meaning that encoding errors raise a UnicodeDecodeError. Other possible
+values are 'ignore' and 'replace' as well as any other name registered with
+codecs.register_error that is able to handle UnicodeDecodeErrors."
+[clinic start generated code]*/
+
static PyObject *
-MultibyteCodec_Decode(MultibyteCodecObject *self,
- PyObject *args, PyObject *kwargs)
+_multibytecodec_MultibyteCodec_decode_impl(MultibyteCodecObject *self,
+ Py_buffer *input,
+ const char *errors)
+/*[clinic end generated code: output=ff419f65bad6cc77 input=a7d45f87f75e5e02]*/
{
MultibyteCodec_State state;
MultibyteDecodeBuffer buf;
PyObject *errorcb, *res;
- Py_buffer pdata;
- const char *data, *errors = NULL;
+ const char *data;
Py_ssize_t datalen;
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "y*|z:decode",
- codeckwarglist, &pdata, &errors))
- return NULL;
- data = pdata.buf;
- datalen = pdata.len;
+ data = input->buf;
+ datalen = input->len;
errorcb = internal_error_callback(errors);
if (errorcb == NULL) {
- PyBuffer_Release(&pdata);
return NULL;
}
if (datalen == 0) {
- PyBuffer_Release(&pdata);
ERROR_DECREF(errorcb);
return make_tuple(PyUnicode_New(0, 0), 0);
}
@@ -668,13 +676,11 @@ MultibyteCodec_Decode(MultibyteCodecObject *self,
if (res == NULL)
goto errorexit;
- PyBuffer_Release(&pdata);
Py_XDECREF(buf.excobj);
ERROR_DECREF(errorcb);
return make_tuple(res, datalen);
errorexit:
- PyBuffer_Release(&pdata);
ERROR_DECREF(errorcb);
Py_XDECREF(buf.excobj);
_PyUnicodeWriter_Dealloc(&buf.writer);
@@ -683,13 +689,9 @@ errorexit:
}
static struct PyMethodDef multibytecodec_methods[] = {
- {"encode", (PyCFunction)MultibyteCodec_Encode,
- METH_VARARGS | METH_KEYWORDS,
- MultibyteCodec_Encode__doc__},
- {"decode", (PyCFunction)MultibyteCodec_Decode,
- METH_VARARGS | METH_KEYWORDS,
- MultibyteCodec_Decode__doc__},
- {NULL, NULL},
+ _MULTIBYTECODEC_MULTIBYTECODEC_ENCODE_METHODDEF
+ _MULTIBYTECODEC_MULTIBYTECODEC_DECODE_METHODDEF
+ {NULL, NULL},
};
static void
@@ -873,26 +875,34 @@ decoder_feed_buffer(MultibyteStatefulDecoderContext *ctx,
}
-/**
- * MultibyteIncrementalEncoder object
- */
+/*[clinic input]
+ class _multibytecodec.MultibyteIncrementalEncoder "MultibyteIncrementalEncoderObject *" "&MultibyteIncrementalEncoder_Type"
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=3be82909cd08924d]*/
-static PyObject *
-mbiencoder_encode(MultibyteIncrementalEncoderObject *self,
- PyObject *args, PyObject *kwargs)
-{
- PyObject *data;
- int final = 0;
+/*[clinic input]
+_multibytecodec.MultibyteIncrementalEncoder.encode
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|i:encode",
- incrementalkwarglist, &data, &final))
- return NULL;
+ input: object
+ final: int(c_default="0") = False
+[clinic start generated code]*/
- return encoder_encode_stateful(STATEFUL_ECTX(self), data, final);
+static PyObject *
+_multibytecodec_MultibyteIncrementalEncoder_encode_impl(MultibyteIncrementalEncoderObject *self,
+ PyObject *input,
+ int final)
+/*[clinic end generated code: output=123361b6c505e2c1 input=a345c688fa664f92]*/
+{
+ return encoder_encode_stateful(STATEFUL_ECTX(self), input, final);
}
+/*[clinic input]
+_multibytecodec.MultibyteIncrementalEncoder.reset
+[clinic start generated code]*/
+
static PyObject *
-mbiencoder_reset(MultibyteIncrementalEncoderObject *self)
+_multibytecodec_MultibyteIncrementalEncoder_reset_impl(MultibyteIncrementalEncoderObject *self)
+/*[clinic end generated code: output=b4125d8f537a253f input=930f06760707b6ea]*/
{
/* Longest output: 4 bytes (b'\x0F\x1F(B') with ISO 2022 */
unsigned char buffer[4], *outbuf;
@@ -909,11 +919,9 @@ mbiencoder_reset(MultibyteIncrementalEncoderObject *self)
}
static struct PyMethodDef mbiencoder_methods[] = {
- {"encode", (PyCFunction)mbiencoder_encode,
- METH_VARARGS | METH_KEYWORDS, NULL},
- {"reset", (PyCFunction)mbiencoder_reset,
- METH_NOARGS, NULL},
- {NULL, NULL},
+ _MULTIBYTECODEC_MULTIBYTEINCREMENTALENCODER_ENCODE_METHODDEF
+ _MULTIBYTECODEC_MULTIBYTEINCREMENTALENCODER_RESET_METHODDEF
+ {NULL, NULL},
};
static PyObject *
@@ -1024,26 +1032,31 @@ static PyTypeObject MultibyteIncrementalEncoder_Type = {
};
-/**
- * MultibyteIncrementalDecoder object
- */
+/*[clinic input]
+ class _multibytecodec.MultibyteIncrementalDecoder "MultibyteIncrementalDecoderObject *" "&MultibyteIncrementalDecoder_Type"
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=f6003faaf2cea692]*/
+
+/*[clinic input]
+_multibytecodec.MultibyteIncrementalDecoder.decode
+
+ input: Py_buffer
+ final: int(c_default="0") = False
+[clinic start generated code]*/
static PyObject *
-mbidecoder_decode(MultibyteIncrementalDecoderObject *self,
- PyObject *args, PyObject *kwargs)
+_multibytecodec_MultibyteIncrementalDecoder_decode_impl(MultibyteIncrementalDecoderObject *self,
+ Py_buffer *input,
+ int final)
+/*[clinic end generated code: output=b9b9090e8a9ce2ba input=576631c61906d39d]*/
{
MultibyteDecodeBuffer buf;
char *data, *wdata = NULL;
- Py_buffer pdata;
Py_ssize_t wsize, size, origpending;
- int final = 0;
PyObject *res;
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "y*|i:decode",
- incrementalkwarglist, &pdata, &final))
- return NULL;
- data = pdata.buf;
- size = pdata.len;
+ data = input->buf;
+ size = input->len;
_PyUnicodeWriter_Init(&buf.writer);
buf.excobj = NULL;
@@ -1094,14 +1107,12 @@ mbidecoder_decode(MultibyteIncrementalDecoderObject *self,
if (res == NULL)
goto errorexit;
- PyBuffer_Release(&pdata);
if (wdata != data)
PyMem_Del(wdata);
Py_XDECREF(buf.excobj);
return res;
errorexit:
- PyBuffer_Release(&pdata);
if (wdata != NULL && wdata != data)
PyMem_Del(wdata);
Py_XDECREF(buf.excobj);
@@ -1109,8 +1120,13 @@ errorexit:
return NULL;
}
+/*[clinic input]
+_multibytecodec.MultibyteIncrementalDecoder.reset
+[clinic start generated code]*/
+
static PyObject *
-mbidecoder_reset(MultibyteIncrementalDecoderObject *self)
+_multibytecodec_MultibyteIncrementalDecoder_reset_impl(MultibyteIncrementalDecoderObject *self)
+/*[clinic end generated code: output=da423b1782c23ed1 input=3b63b3be85b2fb45]*/
{
if (self->codec->decreset != NULL &&
self->codec->decreset(&self->state, self->codec->config) != 0)
@@ -1121,11 +1137,9 @@ mbidecoder_reset(MultibyteIncrementalDecoderObject *self)
}
static struct PyMethodDef mbidecoder_methods[] = {
- {"decode", (PyCFunction)mbidecoder_decode,
- METH_VARARGS | METH_KEYWORDS, NULL},
- {"reset", (PyCFunction)mbidecoder_reset,
- METH_NOARGS, NULL},
- {NULL, NULL},
+ _MULTIBYTECODEC_MULTIBYTEINCREMENTALDECODER_DECODE_METHODDEF
+ _MULTIBYTECODEC_MULTIBYTEINCREMENTALDECODER_RESET_METHODDEF
+ {NULL, NULL},
};
static PyObject *
@@ -1236,9 +1250,10 @@ static PyTypeObject MultibyteIncrementalDecoder_Type = {
};
-/**
- * MultibyteStreamReader object
- */
+/*[clinic input]
+ class _multibytecodec.MultibyteStreamReader "MultibyteStreamReaderObject *" "MultibyteStreamReader_Type"
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=d323634b74976f09]*/
static PyObject *
mbstreamreader_iread(MultibyteStreamReaderObject *self,
@@ -1260,10 +1275,10 @@ mbstreamreader_iread(MultibyteStreamReaderObject *self,
if (sizehint < 0)
cres = PyObject_CallMethod(self->stream,
- (char *)method, NULL);
+ method, NULL);
else
cres = PyObject_CallMethod(self->stream,
- (char *)method, "i", sizehint);
+ method, "i", sizehint);
if (cres == NULL)
goto errorexit;
@@ -1345,16 +1360,21 @@ errorexit:
return NULL;
}
+/*[clinic input]
+ _multibytecodec.MultibyteStreamReader.read
+
+ sizeobj: object = None
+ /
+[clinic start generated code]*/
+
static PyObject *
-mbstreamreader_read(MultibyteStreamReaderObject *self, PyObject *args)
+_multibytecodec_MultibyteStreamReader_read_impl(MultibyteStreamReaderObject *self,
+ PyObject *sizeobj)
+/*[clinic end generated code: output=35621eb75355d5b8 input=015b0d3ff2fca485]*/
{
- PyObject *sizeobj = NULL;
Py_ssize_t size;
- if (!PyArg_UnpackTuple(args, "read", 0, 1, &sizeobj))
- return NULL;
-
- if (sizeobj == Py_None || sizeobj == NULL)
+ if (sizeobj == Py_None)
size = -1;
else if (PyLong_Check(sizeobj))
size = PyLong_AsSsize_t(sizeobj);
@@ -1369,16 +1389,21 @@ mbstreamreader_read(MultibyteStreamReaderObject *self, PyObject *args)
return mbstreamreader_iread(self, "read", size);
}
+/*[clinic input]
+ _multibytecodec.MultibyteStreamReader.readline
+
+ sizeobj: object = None
+ /
+[clinic start generated code]*/
+
static PyObject *
-mbstreamreader_readline(MultibyteStreamReaderObject *self, PyObject *args)
+_multibytecodec_MultibyteStreamReader_readline_impl(MultibyteStreamReaderObject *self,
+ PyObject *sizeobj)
+/*[clinic end generated code: output=4fbfaae1ed457a11 input=41ccc64f9bb0cec3]*/
{
- PyObject *sizeobj = NULL;
Py_ssize_t size;
- if (!PyArg_UnpackTuple(args, "readline", 0, 1, &sizeobj))
- return NULL;
-
- if (sizeobj == Py_None || sizeobj == NULL)
+ if (sizeobj == Py_None)
size = -1;
else if (PyLong_Check(sizeobj))
size = PyLong_AsSsize_t(sizeobj);
@@ -1393,16 +1418,22 @@ mbstreamreader_readline(MultibyteStreamReaderObject *self, PyObject *args)
return mbstreamreader_iread(self, "readline", size);
}
+/*[clinic input]
+ _multibytecodec.MultibyteStreamReader.readlines
+
+ sizehintobj: object = None
+ /
+[clinic start generated code]*/
+
static PyObject *
-mbstreamreader_readlines(MultibyteStreamReaderObject *self, PyObject *args)
+_multibytecodec_MultibyteStreamReader_readlines_impl(MultibyteStreamReaderObject *self,
+ PyObject *sizehintobj)
+/*[clinic end generated code: output=e7c4310768ed2ad4 input=54932f5d4d88e880]*/
{
- PyObject *sizehintobj = NULL, *r, *sr;
+ PyObject *r, *sr;
Py_ssize_t sizehint;
- if (!PyArg_UnpackTuple(args, "readlines", 0, 1, &sizehintobj))
- return NULL;
-
- if (sizehintobj == Py_None || sizehintobj == NULL)
+ if (sizehintobj == Py_None)
sizehint = -1;
else if (PyLong_Check(sizehintobj))
sizehint = PyLong_AsSsize_t(sizehintobj);
@@ -1423,8 +1454,13 @@ mbstreamreader_readlines(MultibyteStreamReaderObject *self, PyObject *args)
return sr;
}
+/*[clinic input]
+ _multibytecodec.MultibyteStreamReader.reset
+[clinic start generated code]*/
+
static PyObject *
-mbstreamreader_reset(MultibyteStreamReaderObject *self)
+_multibytecodec_MultibyteStreamReader_reset_impl(MultibyteStreamReaderObject *self)
+/*[clinic end generated code: output=138490370a680abc input=5d4140db84b5e1e2]*/
{
if (self->codec->decreset != NULL &&
self->codec->decreset(&self->state, self->codec->config) != 0)
@@ -1435,14 +1471,10 @@ mbstreamreader_reset(MultibyteStreamReaderObject *self)
}
static struct PyMethodDef mbstreamreader_methods[] = {
- {"read", (PyCFunction)mbstreamreader_read,
- METH_VARARGS, NULL},
- {"readline", (PyCFunction)mbstreamreader_readline,
- METH_VARARGS, NULL},
- {"readlines", (PyCFunction)mbstreamreader_readlines,
- METH_VARARGS, NULL},
- {"reset", (PyCFunction)mbstreamreader_reset,
- METH_NOARGS, NULL},
+ _MULTIBYTECODEC_MULTIBYTESTREAMREADER_READ_METHODDEF
+ _MULTIBYTECODEC_MULTIBYTESTREAMREADER_READLINE_METHODDEF
+ _MULTIBYTECODEC_MULTIBYTESTREAMREADER_READLINES_METHODDEF
+ _MULTIBYTECODEC_MULTIBYTESTREAMREADER_RESET_METHODDEF
{NULL, NULL},
};
@@ -1565,9 +1597,10 @@ static PyTypeObject MultibyteStreamReader_Type = {
};
-/**
- * MultibyteStreamWriter object
- */
+/*[clinic input]
+ class _multibytecodec.MultibyteStreamWriter "MultibyteStreamWriterObject *" "&MultibyteStreamWriter_Type"
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=cde22780a215d6ac]*/
static int
mbstreamwriter_iwrite(MultibyteStreamWriterObject *self,
@@ -1588,8 +1621,17 @@ mbstreamwriter_iwrite(MultibyteStreamWriterObject *self,
return 0;
}
+/*[clinic input]
+ _multibytecodec.MultibyteStreamWriter.write
+
+ strobj: object
+ /
+[clinic start generated code]*/
+
static PyObject *
-mbstreamwriter_write(MultibyteStreamWriterObject *self, PyObject *strobj)
+_multibytecodec_MultibyteStreamWriter_write(MultibyteStreamWriterObject *self,
+ PyObject *strobj)
+/*[clinic end generated code: output=e13ae841c895251e input=551dc4c018c10a2b]*/
{
if (mbstreamwriter_iwrite(self, strobj))
return NULL;
@@ -1597,8 +1639,17 @@ mbstreamwriter_write(MultibyteStreamWriterObject *self, PyObject *strobj)
Py_RETURN_NONE;
}
+/*[clinic input]
+ _multibytecodec.MultibyteStreamWriter.writelines
+
+ lines: object
+ /
+[clinic start generated code]*/
+
static PyObject *
-mbstreamwriter_writelines(MultibyteStreamWriterObject *self, PyObject *lines)
+_multibytecodec_MultibyteStreamWriter_writelines(MultibyteStreamWriterObject *self,
+ PyObject *lines)
+/*[clinic end generated code: output=e5c4285ac8e7d522 input=57797fe7008d4e96]*/
{
PyObject *strobj;
int i, r;
@@ -1624,8 +1675,13 @@ mbstreamwriter_writelines(MultibyteStreamWriterObject *self, PyObject *lines)
Py_RETURN_NONE;
}
+/*[clinic input]
+ _multibytecodec.MultibyteStreamWriter.reset
+[clinic start generated code]*/
+
static PyObject *
-mbstreamwriter_reset(MultibyteStreamWriterObject *self)
+_multibytecodec_MultibyteStreamWriter_reset_impl(MultibyteStreamWriterObject *self)
+/*[clinic end generated code: output=8f54a4d9b03db5ff input=b56dbcbaf35cc10c]*/
{
PyObject *pwrt;
@@ -1727,13 +1783,10 @@ mbstreamwriter_dealloc(MultibyteStreamWriterObject *self)
}
static struct PyMethodDef mbstreamwriter_methods[] = {
- {"write", (PyCFunction)mbstreamwriter_write,
- METH_O, NULL},
- {"writelines", (PyCFunction)mbstreamwriter_writelines,
- METH_O, NULL},
- {"reset", (PyCFunction)mbstreamwriter_reset,
- METH_NOARGS, NULL},
- {NULL, NULL},
+ _MULTIBYTECODEC_MULTIBYTESTREAMWRITER_WRITE_METHODDEF
+ _MULTIBYTECODEC_MULTIBYTESTREAMWRITER_WRITELINES_METHODDEF
+ _MULTIBYTECODEC_MULTIBYTESTREAMWRITER_RESET_METHODDEF
+ {NULL, NULL},
};
static PyMemberDef mbstreamwriter_members[] = {
@@ -1787,12 +1840,16 @@ static PyTypeObject MultibyteStreamWriter_Type = {
};
-/**
- * Exposed factory function
- */
+/*[clinic input]
+_multibytecodec.__create_codec
+
+ arg: object
+ /
+[clinic start generated code]*/
static PyObject *
-__create_codec(PyObject *ignore, PyObject *arg)
+_multibytecodec___create_codec(PyModuleDef *module, PyObject *arg)
+/*[clinic end generated code: output=fbe74f6510640163 input=6840b2a6b183fcfa]*/
{
MultibyteCodecObject *self;
MultibyteCodec *codec;
@@ -1815,7 +1872,7 @@ __create_codec(PyObject *ignore, PyObject *arg)
}
static struct PyMethodDef __methods[] = {
- {"__create_codec", (PyCFunction)__create_codec, METH_O},
+ _MULTIBYTECODEC___CREATE_CODEC_METHODDEF
{NULL, NULL},
};
diff --git a/Modules/clinic/_bz2module.c.h b/Modules/clinic/_bz2module.c.h
index 8a201a08de..3ed8303e95 100644
--- a/Modules/clinic/_bz2module.c.h
+++ b/Modules/clinic/_bz2module.c.h
@@ -14,20 +14,18 @@ PyDoc_STRVAR(_bz2_BZ2Compressor_compress__doc__,
"flush() method to finish the compression process.");
#define _BZ2_BZ2COMPRESSOR_COMPRESS_METHODDEF \
- {"compress", (PyCFunction)_bz2_BZ2Compressor_compress, METH_VARARGS, _bz2_BZ2Compressor_compress__doc__},
+ {"compress", (PyCFunction)_bz2_BZ2Compressor_compress, METH_O, _bz2_BZ2Compressor_compress__doc__},
static PyObject *
_bz2_BZ2Compressor_compress_impl(BZ2Compressor *self, Py_buffer *data);
static PyObject *
-_bz2_BZ2Compressor_compress(BZ2Compressor *self, PyObject *args)
+_bz2_BZ2Compressor_compress(BZ2Compressor *self, PyObject *arg)
{
PyObject *return_value = NULL;
Py_buffer data = {NULL, NULL};
- if (!PyArg_ParseTuple(args,
- "y*:compress",
- &data))
+ if (!PyArg_Parse(arg, "y*:compress", &data))
goto exit;
return_value = _bz2_BZ2Compressor_compress_impl(self, &data);
@@ -84,8 +82,7 @@ _bz2_BZ2Compressor___init__(PyObject *self, PyObject *args, PyObject *kwargs)
if ((Py_TYPE(self) == &BZ2Compressor_Type) &&
!_PyArg_NoKeywords("BZ2Compressor", kwargs))
goto exit;
- if (!PyArg_ParseTuple(args,
- "|i:BZ2Compressor",
+ if (!PyArg_ParseTuple(args, "|i:BZ2Compressor",
&compresslevel))
goto exit;
return_value = _bz2_BZ2Compressor___init___impl((BZ2Compressor *)self, compresslevel);
@@ -95,34 +92,43 @@ exit:
}
PyDoc_STRVAR(_bz2_BZ2Decompressor_decompress__doc__,
-"decompress($self, data, /)\n"
+"decompress($self, /, data, max_length=-1)\n"
"--\n"
"\n"
-"Provide data to the decompressor object.\n"
+"Decompress *data*, returning uncompressed data as bytes.\n"
"\n"
-"Returns a chunk of decompressed data if possible, or b\'\' otherwise.\n"
+"If *max_length* is nonnegative, returns at most *max_length* bytes of\n"
+"decompressed data. If this limit is reached and further output can be\n"
+"produced, *self.needs_input* will be set to ``False``. In this case, the next\n"
+"call to *decompress()* may provide *data* as b\'\' to obtain more of the output.\n"
"\n"
-"Attempting to decompress data after the end of stream is reached\n"
-"raises an EOFError. Any data found after the end of the stream\n"
-"is ignored and saved in the unused_data attribute.");
+"If all of the input data was decompressed and returned (either because this\n"
+"was less than *max_length* bytes, or because *max_length* was negative),\n"
+"*self.needs_input* will be set to True.\n"
+"\n"
+"Attempting to decompress data after the end of stream is reached raises an\n"
+"EOFError. Any data found after the end of the stream is ignored and saved in\n"
+"the unused_data attribute.");
#define _BZ2_BZ2DECOMPRESSOR_DECOMPRESS_METHODDEF \
- {"decompress", (PyCFunction)_bz2_BZ2Decompressor_decompress, METH_VARARGS, _bz2_BZ2Decompressor_decompress__doc__},
+ {"decompress", (PyCFunction)_bz2_BZ2Decompressor_decompress, METH_VARARGS|METH_KEYWORDS, _bz2_BZ2Decompressor_decompress__doc__},
static PyObject *
-_bz2_BZ2Decompressor_decompress_impl(BZ2Decompressor *self, Py_buffer *data);
+_bz2_BZ2Decompressor_decompress_impl(BZ2Decompressor *self, Py_buffer *data,
+ Py_ssize_t max_length);
static PyObject *
-_bz2_BZ2Decompressor_decompress(BZ2Decompressor *self, PyObject *args)
+_bz2_BZ2Decompressor_decompress(BZ2Decompressor *self, PyObject *args, PyObject *kwargs)
{
PyObject *return_value = NULL;
+ static char *_keywords[] = {"data", "max_length", NULL};
Py_buffer data = {NULL, NULL};
+ Py_ssize_t max_length = -1;
- if (!PyArg_ParseTuple(args,
- "y*:decompress",
- &data))
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "y*|n:decompress", _keywords,
+ &data, &max_length))
goto exit;
- return_value = _bz2_BZ2Decompressor_decompress_impl(self, &data);
+ return_value = _bz2_BZ2Decompressor_decompress_impl(self, &data, max_length);
exit:
/* Cleanup for data */
@@ -159,4 +165,4 @@ _bz2_BZ2Decompressor___init__(PyObject *self, PyObject *args, PyObject *kwargs)
exit:
return return_value;
}
-/*[clinic end generated code: output=21ca4405519a0931 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=fef29b76b3314fc7 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_codecsmodule.c.h b/Modules/clinic/_codecsmodule.c.h
new file mode 100644
index 0000000000..e94be1176e
--- /dev/null
+++ b/Modules/clinic/_codecsmodule.c.h
@@ -0,0 +1,1396 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(_codecs_register__doc__,
+"register($module, search_function, /)\n"
+"--\n"
+"\n"
+"Register a codec search function.\n"
+"\n"
+"Search functions are expected to take one argument, the encoding name in\n"
+"all lower case letters, and either return None, or a tuple of functions\n"
+"(encoder, decoder, stream_reader, stream_writer) (or a CodecInfo object).");
+
+#define _CODECS_REGISTER_METHODDEF \
+ {"register", (PyCFunction)_codecs_register, METH_O, _codecs_register__doc__},
+
+PyDoc_STRVAR(_codecs_lookup__doc__,
+"lookup($module, encoding, /)\n"
+"--\n"
+"\n"
+"Looks up a codec tuple in the Python codec registry and returns a CodecInfo object.");
+
+#define _CODECS_LOOKUP_METHODDEF \
+ {"lookup", (PyCFunction)_codecs_lookup, METH_O, _codecs_lookup__doc__},
+
+static PyObject *
+_codecs_lookup_impl(PyModuleDef *module, const char *encoding);
+
+static PyObject *
+_codecs_lookup(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ const char *encoding;
+
+ if (!PyArg_Parse(arg, "s:lookup", &encoding))
+ goto exit;
+ return_value = _codecs_lookup_impl(module, encoding);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs_encode__doc__,
+"encode($module, /, obj, encoding=\'utf-8\', errors=\'strict\')\n"
+"--\n"
+"\n"
+"Encodes obj using the codec registered for encoding.\n"
+"\n"
+"The default encoding is \'utf-8\'. errors may be given to set a\n"
+"different error handling scheme. Default is \'strict\' meaning that encoding\n"
+"errors raise a ValueError. Other possible values are \'ignore\', \'replace\'\n"
+"and \'backslashreplace\' as well as any other name registered with\n"
+"codecs.register_error that can handle ValueErrors.");
+
+#define _CODECS_ENCODE_METHODDEF \
+ {"encode", (PyCFunction)_codecs_encode, METH_VARARGS|METH_KEYWORDS, _codecs_encode__doc__},
+
+static PyObject *
+_codecs_encode_impl(PyModuleDef *module, PyObject *obj, const char *encoding,
+ const char *errors);
+
+static PyObject *
+_codecs_encode(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"obj", "encoding", "errors", NULL};
+ PyObject *obj;
+ const char *encoding = NULL;
+ const char *errors = NULL;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|ss:encode", _keywords,
+ &obj, &encoding, &errors))
+ goto exit;
+ return_value = _codecs_encode_impl(module, obj, encoding, errors);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs_decode__doc__,
+"decode($module, /, obj, encoding=\'utf-8\', errors=\'strict\')\n"
+"--\n"
+"\n"
+"Decodes obj using the codec registered for encoding.\n"
+"\n"
+"Default encoding is \'utf-8\'. errors may be given to set a\n"
+"different error handling scheme. Default is \'strict\' meaning that encoding\n"
+"errors raise a ValueError. Other possible values are \'ignore\', \'replace\'\n"
+"and \'backslashreplace\' as well as any other name registered with\n"
+"codecs.register_error that can handle ValueErrors.");
+
+#define _CODECS_DECODE_METHODDEF \
+ {"decode", (PyCFunction)_codecs_decode, METH_VARARGS|METH_KEYWORDS, _codecs_decode__doc__},
+
+static PyObject *
+_codecs_decode_impl(PyModuleDef *module, PyObject *obj, const char *encoding,
+ const char *errors);
+
+static PyObject *
+_codecs_decode(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"obj", "encoding", "errors", NULL};
+ PyObject *obj;
+ const char *encoding = NULL;
+ const char *errors = NULL;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|ss:decode", _keywords,
+ &obj, &encoding, &errors))
+ goto exit;
+ return_value = _codecs_decode_impl(module, obj, encoding, errors);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs__forget_codec__doc__,
+"_forget_codec($module, encoding, /)\n"
+"--\n"
+"\n"
+"Purge the named codec from the internal codec lookup cache");
+
+#define _CODECS__FORGET_CODEC_METHODDEF \
+ {"_forget_codec", (PyCFunction)_codecs__forget_codec, METH_O, _codecs__forget_codec__doc__},
+
+static PyObject *
+_codecs__forget_codec_impl(PyModuleDef *module, const char *encoding);
+
+static PyObject *
+_codecs__forget_codec(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ const char *encoding;
+
+ if (!PyArg_Parse(arg, "s:_forget_codec", &encoding))
+ goto exit;
+ return_value = _codecs__forget_codec_impl(module, encoding);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs_escape_decode__doc__,
+"escape_decode($module, data, errors=None, /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_ESCAPE_DECODE_METHODDEF \
+ {"escape_decode", (PyCFunction)_codecs_escape_decode, METH_VARARGS, _codecs_escape_decode__doc__},
+
+static PyObject *
+_codecs_escape_decode_impl(PyModuleDef *module, Py_buffer *data,
+ const char *errors);
+
+static PyObject *
+_codecs_escape_decode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_buffer data = {NULL, NULL};
+ const char *errors = NULL;
+
+ if (!PyArg_ParseTuple(args, "s*|z:escape_decode",
+ &data, &errors))
+ goto exit;
+ return_value = _codecs_escape_decode_impl(module, &data, errors);
+
+exit:
+ /* Cleanup for data */
+ if (data.obj)
+ PyBuffer_Release(&data);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs_escape_encode__doc__,
+"escape_encode($module, data, errors=None, /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_ESCAPE_ENCODE_METHODDEF \
+ {"escape_encode", (PyCFunction)_codecs_escape_encode, METH_VARARGS, _codecs_escape_encode__doc__},
+
+static PyObject *
+_codecs_escape_encode_impl(PyModuleDef *module, PyObject *data,
+ const char *errors);
+
+static PyObject *
+_codecs_escape_encode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *data;
+ const char *errors = NULL;
+
+ if (!PyArg_ParseTuple(args, "O!|z:escape_encode",
+ &PyBytes_Type, &data, &errors))
+ goto exit;
+ return_value = _codecs_escape_encode_impl(module, data, errors);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs_unicode_internal_decode__doc__,
+"unicode_internal_decode($module, obj, errors=None, /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_UNICODE_INTERNAL_DECODE_METHODDEF \
+ {"unicode_internal_decode", (PyCFunction)_codecs_unicode_internal_decode, METH_VARARGS, _codecs_unicode_internal_decode__doc__},
+
+static PyObject *
+_codecs_unicode_internal_decode_impl(PyModuleDef *module, PyObject *obj,
+ const char *errors);
+
+static PyObject *
+_codecs_unicode_internal_decode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *obj;
+ const char *errors = NULL;
+
+ if (!PyArg_ParseTuple(args, "O|z:unicode_internal_decode",
+ &obj, &errors))
+ goto exit;
+ return_value = _codecs_unicode_internal_decode_impl(module, obj, errors);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs_utf_7_decode__doc__,
+"utf_7_decode($module, data, errors=None, final=False, /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_UTF_7_DECODE_METHODDEF \
+ {"utf_7_decode", (PyCFunction)_codecs_utf_7_decode, METH_VARARGS, _codecs_utf_7_decode__doc__},
+
+static PyObject *
+_codecs_utf_7_decode_impl(PyModuleDef *module, Py_buffer *data,
+ const char *errors, int final);
+
+static PyObject *
+_codecs_utf_7_decode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_buffer data = {NULL, NULL};
+ const char *errors = NULL;
+ int final = 0;
+
+ if (!PyArg_ParseTuple(args, "y*|zi:utf_7_decode",
+ &data, &errors, &final))
+ goto exit;
+ return_value = _codecs_utf_7_decode_impl(module, &data, errors, final);
+
+exit:
+ /* Cleanup for data */
+ if (data.obj)
+ PyBuffer_Release(&data);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs_utf_8_decode__doc__,
+"utf_8_decode($module, data, errors=None, final=False, /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_UTF_8_DECODE_METHODDEF \
+ {"utf_8_decode", (PyCFunction)_codecs_utf_8_decode, METH_VARARGS, _codecs_utf_8_decode__doc__},
+
+static PyObject *
+_codecs_utf_8_decode_impl(PyModuleDef *module, Py_buffer *data,
+ const char *errors, int final);
+
+static PyObject *
+_codecs_utf_8_decode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_buffer data = {NULL, NULL};
+ const char *errors = NULL;
+ int final = 0;
+
+ if (!PyArg_ParseTuple(args, "y*|zi:utf_8_decode",
+ &data, &errors, &final))
+ goto exit;
+ return_value = _codecs_utf_8_decode_impl(module, &data, errors, final);
+
+exit:
+ /* Cleanup for data */
+ if (data.obj)
+ PyBuffer_Release(&data);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs_utf_16_decode__doc__,
+"utf_16_decode($module, data, errors=None, final=False, /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_UTF_16_DECODE_METHODDEF \
+ {"utf_16_decode", (PyCFunction)_codecs_utf_16_decode, METH_VARARGS, _codecs_utf_16_decode__doc__},
+
+static PyObject *
+_codecs_utf_16_decode_impl(PyModuleDef *module, Py_buffer *data,
+ const char *errors, int final);
+
+static PyObject *
+_codecs_utf_16_decode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_buffer data = {NULL, NULL};
+ const char *errors = NULL;
+ int final = 0;
+
+ if (!PyArg_ParseTuple(args, "y*|zi:utf_16_decode",
+ &data, &errors, &final))
+ goto exit;
+ return_value = _codecs_utf_16_decode_impl(module, &data, errors, final);
+
+exit:
+ /* Cleanup for data */
+ if (data.obj)
+ PyBuffer_Release(&data);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs_utf_16_le_decode__doc__,
+"utf_16_le_decode($module, data, errors=None, final=False, /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_UTF_16_LE_DECODE_METHODDEF \
+ {"utf_16_le_decode", (PyCFunction)_codecs_utf_16_le_decode, METH_VARARGS, _codecs_utf_16_le_decode__doc__},
+
+static PyObject *
+_codecs_utf_16_le_decode_impl(PyModuleDef *module, Py_buffer *data,
+ const char *errors, int final);
+
+static PyObject *
+_codecs_utf_16_le_decode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_buffer data = {NULL, NULL};
+ const char *errors = NULL;
+ int final = 0;
+
+ if (!PyArg_ParseTuple(args, "y*|zi:utf_16_le_decode",
+ &data, &errors, &final))
+ goto exit;
+ return_value = _codecs_utf_16_le_decode_impl(module, &data, errors, final);
+
+exit:
+ /* Cleanup for data */
+ if (data.obj)
+ PyBuffer_Release(&data);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs_utf_16_be_decode__doc__,
+"utf_16_be_decode($module, data, errors=None, final=False, /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_UTF_16_BE_DECODE_METHODDEF \
+ {"utf_16_be_decode", (PyCFunction)_codecs_utf_16_be_decode, METH_VARARGS, _codecs_utf_16_be_decode__doc__},
+
+static PyObject *
+_codecs_utf_16_be_decode_impl(PyModuleDef *module, Py_buffer *data,
+ const char *errors, int final);
+
+static PyObject *
+_codecs_utf_16_be_decode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_buffer data = {NULL, NULL};
+ const char *errors = NULL;
+ int final = 0;
+
+ if (!PyArg_ParseTuple(args, "y*|zi:utf_16_be_decode",
+ &data, &errors, &final))
+ goto exit;
+ return_value = _codecs_utf_16_be_decode_impl(module, &data, errors, final);
+
+exit:
+ /* Cleanup for data */
+ if (data.obj)
+ PyBuffer_Release(&data);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs_utf_16_ex_decode__doc__,
+"utf_16_ex_decode($module, data, errors=None, byteorder=0, final=False,\n"
+" /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_UTF_16_EX_DECODE_METHODDEF \
+ {"utf_16_ex_decode", (PyCFunction)_codecs_utf_16_ex_decode, METH_VARARGS, _codecs_utf_16_ex_decode__doc__},
+
+static PyObject *
+_codecs_utf_16_ex_decode_impl(PyModuleDef *module, Py_buffer *data,
+ const char *errors, int byteorder, int final);
+
+static PyObject *
+_codecs_utf_16_ex_decode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_buffer data = {NULL, NULL};
+ const char *errors = NULL;
+ int byteorder = 0;
+ int final = 0;
+
+ if (!PyArg_ParseTuple(args, "y*|zii:utf_16_ex_decode",
+ &data, &errors, &byteorder, &final))
+ goto exit;
+ return_value = _codecs_utf_16_ex_decode_impl(module, &data, errors, byteorder, final);
+
+exit:
+ /* Cleanup for data */
+ if (data.obj)
+ PyBuffer_Release(&data);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs_utf_32_decode__doc__,
+"utf_32_decode($module, data, errors=None, final=False, /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_UTF_32_DECODE_METHODDEF \
+ {"utf_32_decode", (PyCFunction)_codecs_utf_32_decode, METH_VARARGS, _codecs_utf_32_decode__doc__},
+
+static PyObject *
+_codecs_utf_32_decode_impl(PyModuleDef *module, Py_buffer *data,
+ const char *errors, int final);
+
+static PyObject *
+_codecs_utf_32_decode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_buffer data = {NULL, NULL};
+ const char *errors = NULL;
+ int final = 0;
+
+ if (!PyArg_ParseTuple(args, "y*|zi:utf_32_decode",
+ &data, &errors, &final))
+ goto exit;
+ return_value = _codecs_utf_32_decode_impl(module, &data, errors, final);
+
+exit:
+ /* Cleanup for data */
+ if (data.obj)
+ PyBuffer_Release(&data);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs_utf_32_le_decode__doc__,
+"utf_32_le_decode($module, data, errors=None, final=False, /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_UTF_32_LE_DECODE_METHODDEF \
+ {"utf_32_le_decode", (PyCFunction)_codecs_utf_32_le_decode, METH_VARARGS, _codecs_utf_32_le_decode__doc__},
+
+static PyObject *
+_codecs_utf_32_le_decode_impl(PyModuleDef *module, Py_buffer *data,
+ const char *errors, int final);
+
+static PyObject *
+_codecs_utf_32_le_decode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_buffer data = {NULL, NULL};
+ const char *errors = NULL;
+ int final = 0;
+
+ if (!PyArg_ParseTuple(args, "y*|zi:utf_32_le_decode",
+ &data, &errors, &final))
+ goto exit;
+ return_value = _codecs_utf_32_le_decode_impl(module, &data, errors, final);
+
+exit:
+ /* Cleanup for data */
+ if (data.obj)
+ PyBuffer_Release(&data);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs_utf_32_be_decode__doc__,
+"utf_32_be_decode($module, data, errors=None, final=False, /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_UTF_32_BE_DECODE_METHODDEF \
+ {"utf_32_be_decode", (PyCFunction)_codecs_utf_32_be_decode, METH_VARARGS, _codecs_utf_32_be_decode__doc__},
+
+static PyObject *
+_codecs_utf_32_be_decode_impl(PyModuleDef *module, Py_buffer *data,
+ const char *errors, int final);
+
+static PyObject *
+_codecs_utf_32_be_decode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_buffer data = {NULL, NULL};
+ const char *errors = NULL;
+ int final = 0;
+
+ if (!PyArg_ParseTuple(args, "y*|zi:utf_32_be_decode",
+ &data, &errors, &final))
+ goto exit;
+ return_value = _codecs_utf_32_be_decode_impl(module, &data, errors, final);
+
+exit:
+ /* Cleanup for data */
+ if (data.obj)
+ PyBuffer_Release(&data);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs_utf_32_ex_decode__doc__,
+"utf_32_ex_decode($module, data, errors=None, byteorder=0, final=False,\n"
+" /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_UTF_32_EX_DECODE_METHODDEF \
+ {"utf_32_ex_decode", (PyCFunction)_codecs_utf_32_ex_decode, METH_VARARGS, _codecs_utf_32_ex_decode__doc__},
+
+static PyObject *
+_codecs_utf_32_ex_decode_impl(PyModuleDef *module, Py_buffer *data,
+ const char *errors, int byteorder, int final);
+
+static PyObject *
+_codecs_utf_32_ex_decode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_buffer data = {NULL, NULL};
+ const char *errors = NULL;
+ int byteorder = 0;
+ int final = 0;
+
+ if (!PyArg_ParseTuple(args, "y*|zii:utf_32_ex_decode",
+ &data, &errors, &byteorder, &final))
+ goto exit;
+ return_value = _codecs_utf_32_ex_decode_impl(module, &data, errors, byteorder, final);
+
+exit:
+ /* Cleanup for data */
+ if (data.obj)
+ PyBuffer_Release(&data);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs_unicode_escape_decode__doc__,
+"unicode_escape_decode($module, data, errors=None, /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_UNICODE_ESCAPE_DECODE_METHODDEF \
+ {"unicode_escape_decode", (PyCFunction)_codecs_unicode_escape_decode, METH_VARARGS, _codecs_unicode_escape_decode__doc__},
+
+static PyObject *
+_codecs_unicode_escape_decode_impl(PyModuleDef *module, Py_buffer *data,
+ const char *errors);
+
+static PyObject *
+_codecs_unicode_escape_decode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_buffer data = {NULL, NULL};
+ const char *errors = NULL;
+
+ if (!PyArg_ParseTuple(args, "s*|z:unicode_escape_decode",
+ &data, &errors))
+ goto exit;
+ return_value = _codecs_unicode_escape_decode_impl(module, &data, errors);
+
+exit:
+ /* Cleanup for data */
+ if (data.obj)
+ PyBuffer_Release(&data);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs_raw_unicode_escape_decode__doc__,
+"raw_unicode_escape_decode($module, data, errors=None, /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_RAW_UNICODE_ESCAPE_DECODE_METHODDEF \
+ {"raw_unicode_escape_decode", (PyCFunction)_codecs_raw_unicode_escape_decode, METH_VARARGS, _codecs_raw_unicode_escape_decode__doc__},
+
+static PyObject *
+_codecs_raw_unicode_escape_decode_impl(PyModuleDef *module, Py_buffer *data,
+ const char *errors);
+
+static PyObject *
+_codecs_raw_unicode_escape_decode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_buffer data = {NULL, NULL};
+ const char *errors = NULL;
+
+ if (!PyArg_ParseTuple(args, "s*|z:raw_unicode_escape_decode",
+ &data, &errors))
+ goto exit;
+ return_value = _codecs_raw_unicode_escape_decode_impl(module, &data, errors);
+
+exit:
+ /* Cleanup for data */
+ if (data.obj)
+ PyBuffer_Release(&data);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs_latin_1_decode__doc__,
+"latin_1_decode($module, data, errors=None, /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_LATIN_1_DECODE_METHODDEF \
+ {"latin_1_decode", (PyCFunction)_codecs_latin_1_decode, METH_VARARGS, _codecs_latin_1_decode__doc__},
+
+static PyObject *
+_codecs_latin_1_decode_impl(PyModuleDef *module, Py_buffer *data,
+ const char *errors);
+
+static PyObject *
+_codecs_latin_1_decode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_buffer data = {NULL, NULL};
+ const char *errors = NULL;
+
+ if (!PyArg_ParseTuple(args, "y*|z:latin_1_decode",
+ &data, &errors))
+ goto exit;
+ return_value = _codecs_latin_1_decode_impl(module, &data, errors);
+
+exit:
+ /* Cleanup for data */
+ if (data.obj)
+ PyBuffer_Release(&data);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs_ascii_decode__doc__,
+"ascii_decode($module, data, errors=None, /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_ASCII_DECODE_METHODDEF \
+ {"ascii_decode", (PyCFunction)_codecs_ascii_decode, METH_VARARGS, _codecs_ascii_decode__doc__},
+
+static PyObject *
+_codecs_ascii_decode_impl(PyModuleDef *module, Py_buffer *data,
+ const char *errors);
+
+static PyObject *
+_codecs_ascii_decode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_buffer data = {NULL, NULL};
+ const char *errors = NULL;
+
+ if (!PyArg_ParseTuple(args, "y*|z:ascii_decode",
+ &data, &errors))
+ goto exit;
+ return_value = _codecs_ascii_decode_impl(module, &data, errors);
+
+exit:
+ /* Cleanup for data */
+ if (data.obj)
+ PyBuffer_Release(&data);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs_charmap_decode__doc__,
+"charmap_decode($module, data, errors=None, mapping=None, /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_CHARMAP_DECODE_METHODDEF \
+ {"charmap_decode", (PyCFunction)_codecs_charmap_decode, METH_VARARGS, _codecs_charmap_decode__doc__},
+
+static PyObject *
+_codecs_charmap_decode_impl(PyModuleDef *module, Py_buffer *data,
+ const char *errors, PyObject *mapping);
+
+static PyObject *
+_codecs_charmap_decode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_buffer data = {NULL, NULL};
+ const char *errors = NULL;
+ PyObject *mapping = NULL;
+
+ if (!PyArg_ParseTuple(args, "y*|zO:charmap_decode",
+ &data, &errors, &mapping))
+ goto exit;
+ return_value = _codecs_charmap_decode_impl(module, &data, errors, mapping);
+
+exit:
+ /* Cleanup for data */
+ if (data.obj)
+ PyBuffer_Release(&data);
+
+ return return_value;
+}
+
+#if defined(HAVE_MBCS)
+
+PyDoc_STRVAR(_codecs_mbcs_decode__doc__,
+"mbcs_decode($module, data, errors=None, final=False, /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_MBCS_DECODE_METHODDEF \
+ {"mbcs_decode", (PyCFunction)_codecs_mbcs_decode, METH_VARARGS, _codecs_mbcs_decode__doc__},
+
+static PyObject *
+_codecs_mbcs_decode_impl(PyModuleDef *module, Py_buffer *data,
+ const char *errors, int final);
+
+static PyObject *
+_codecs_mbcs_decode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_buffer data = {NULL, NULL};
+ const char *errors = NULL;
+ int final = 0;
+
+ if (!PyArg_ParseTuple(args, "y*|zi:mbcs_decode",
+ &data, &errors, &final))
+ goto exit;
+ return_value = _codecs_mbcs_decode_impl(module, &data, errors, final);
+
+exit:
+ /* Cleanup for data */
+ if (data.obj)
+ PyBuffer_Release(&data);
+
+ return return_value;
+}
+
+#endif /* defined(HAVE_MBCS) */
+
+#if defined(HAVE_MBCS)
+
+PyDoc_STRVAR(_codecs_code_page_decode__doc__,
+"code_page_decode($module, codepage, data, errors=None, final=False, /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_CODE_PAGE_DECODE_METHODDEF \
+ {"code_page_decode", (PyCFunction)_codecs_code_page_decode, METH_VARARGS, _codecs_code_page_decode__doc__},
+
+static PyObject *
+_codecs_code_page_decode_impl(PyModuleDef *module, int codepage,
+ Py_buffer *data, const char *errors, int final);
+
+static PyObject *
+_codecs_code_page_decode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int codepage;
+ Py_buffer data = {NULL, NULL};
+ const char *errors = NULL;
+ int final = 0;
+
+ if (!PyArg_ParseTuple(args, "iy*|zi:code_page_decode",
+ &codepage, &data, &errors, &final))
+ goto exit;
+ return_value = _codecs_code_page_decode_impl(module, codepage, &data, errors, final);
+
+exit:
+ /* Cleanup for data */
+ if (data.obj)
+ PyBuffer_Release(&data);
+
+ return return_value;
+}
+
+#endif /* defined(HAVE_MBCS) */
+
+PyDoc_STRVAR(_codecs_readbuffer_encode__doc__,
+"readbuffer_encode($module, data, errors=None, /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_READBUFFER_ENCODE_METHODDEF \
+ {"readbuffer_encode", (PyCFunction)_codecs_readbuffer_encode, METH_VARARGS, _codecs_readbuffer_encode__doc__},
+
+static PyObject *
+_codecs_readbuffer_encode_impl(PyModuleDef *module, Py_buffer *data,
+ const char *errors);
+
+static PyObject *
+_codecs_readbuffer_encode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_buffer data = {NULL, NULL};
+ const char *errors = NULL;
+
+ if (!PyArg_ParseTuple(args, "s*|z:readbuffer_encode",
+ &data, &errors))
+ goto exit;
+ return_value = _codecs_readbuffer_encode_impl(module, &data, errors);
+
+exit:
+ /* Cleanup for data */
+ if (data.obj)
+ PyBuffer_Release(&data);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs_unicode_internal_encode__doc__,
+"unicode_internal_encode($module, obj, errors=None, /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_UNICODE_INTERNAL_ENCODE_METHODDEF \
+ {"unicode_internal_encode", (PyCFunction)_codecs_unicode_internal_encode, METH_VARARGS, _codecs_unicode_internal_encode__doc__},
+
+static PyObject *
+_codecs_unicode_internal_encode_impl(PyModuleDef *module, PyObject *obj,
+ const char *errors);
+
+static PyObject *
+_codecs_unicode_internal_encode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *obj;
+ const char *errors = NULL;
+
+ if (!PyArg_ParseTuple(args, "O|z:unicode_internal_encode",
+ &obj, &errors))
+ goto exit;
+ return_value = _codecs_unicode_internal_encode_impl(module, obj, errors);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs_utf_7_encode__doc__,
+"utf_7_encode($module, str, errors=None, /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_UTF_7_ENCODE_METHODDEF \
+ {"utf_7_encode", (PyCFunction)_codecs_utf_7_encode, METH_VARARGS, _codecs_utf_7_encode__doc__},
+
+static PyObject *
+_codecs_utf_7_encode_impl(PyModuleDef *module, PyObject *str,
+ const char *errors);
+
+static PyObject *
+_codecs_utf_7_encode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *str;
+ const char *errors = NULL;
+
+ if (!PyArg_ParseTuple(args, "O|z:utf_7_encode",
+ &str, &errors))
+ goto exit;
+ return_value = _codecs_utf_7_encode_impl(module, str, errors);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs_utf_8_encode__doc__,
+"utf_8_encode($module, str, errors=None, /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_UTF_8_ENCODE_METHODDEF \
+ {"utf_8_encode", (PyCFunction)_codecs_utf_8_encode, METH_VARARGS, _codecs_utf_8_encode__doc__},
+
+static PyObject *
+_codecs_utf_8_encode_impl(PyModuleDef *module, PyObject *str,
+ const char *errors);
+
+static PyObject *
+_codecs_utf_8_encode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *str;
+ const char *errors = NULL;
+
+ if (!PyArg_ParseTuple(args, "O|z:utf_8_encode",
+ &str, &errors))
+ goto exit;
+ return_value = _codecs_utf_8_encode_impl(module, str, errors);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs_utf_16_encode__doc__,
+"utf_16_encode($module, str, errors=None, byteorder=0, /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_UTF_16_ENCODE_METHODDEF \
+ {"utf_16_encode", (PyCFunction)_codecs_utf_16_encode, METH_VARARGS, _codecs_utf_16_encode__doc__},
+
+static PyObject *
+_codecs_utf_16_encode_impl(PyModuleDef *module, PyObject *str,
+ const char *errors, int byteorder);
+
+static PyObject *
+_codecs_utf_16_encode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *str;
+ const char *errors = NULL;
+ int byteorder = 0;
+
+ if (!PyArg_ParseTuple(args, "O|zi:utf_16_encode",
+ &str, &errors, &byteorder))
+ goto exit;
+ return_value = _codecs_utf_16_encode_impl(module, str, errors, byteorder);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs_utf_16_le_encode__doc__,
+"utf_16_le_encode($module, str, errors=None, /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_UTF_16_LE_ENCODE_METHODDEF \
+ {"utf_16_le_encode", (PyCFunction)_codecs_utf_16_le_encode, METH_VARARGS, _codecs_utf_16_le_encode__doc__},
+
+static PyObject *
+_codecs_utf_16_le_encode_impl(PyModuleDef *module, PyObject *str,
+ const char *errors);
+
+static PyObject *
+_codecs_utf_16_le_encode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *str;
+ const char *errors = NULL;
+
+ if (!PyArg_ParseTuple(args, "O|z:utf_16_le_encode",
+ &str, &errors))
+ goto exit;
+ return_value = _codecs_utf_16_le_encode_impl(module, str, errors);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs_utf_16_be_encode__doc__,
+"utf_16_be_encode($module, str, errors=None, /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_UTF_16_BE_ENCODE_METHODDEF \
+ {"utf_16_be_encode", (PyCFunction)_codecs_utf_16_be_encode, METH_VARARGS, _codecs_utf_16_be_encode__doc__},
+
+static PyObject *
+_codecs_utf_16_be_encode_impl(PyModuleDef *module, PyObject *str,
+ const char *errors);
+
+static PyObject *
+_codecs_utf_16_be_encode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *str;
+ const char *errors = NULL;
+
+ if (!PyArg_ParseTuple(args, "O|z:utf_16_be_encode",
+ &str, &errors))
+ goto exit;
+ return_value = _codecs_utf_16_be_encode_impl(module, str, errors);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs_utf_32_encode__doc__,
+"utf_32_encode($module, str, errors=None, byteorder=0, /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_UTF_32_ENCODE_METHODDEF \
+ {"utf_32_encode", (PyCFunction)_codecs_utf_32_encode, METH_VARARGS, _codecs_utf_32_encode__doc__},
+
+static PyObject *
+_codecs_utf_32_encode_impl(PyModuleDef *module, PyObject *str,
+ const char *errors, int byteorder);
+
+static PyObject *
+_codecs_utf_32_encode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *str;
+ const char *errors = NULL;
+ int byteorder = 0;
+
+ if (!PyArg_ParseTuple(args, "O|zi:utf_32_encode",
+ &str, &errors, &byteorder))
+ goto exit;
+ return_value = _codecs_utf_32_encode_impl(module, str, errors, byteorder);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs_utf_32_le_encode__doc__,
+"utf_32_le_encode($module, str, errors=None, /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_UTF_32_LE_ENCODE_METHODDEF \
+ {"utf_32_le_encode", (PyCFunction)_codecs_utf_32_le_encode, METH_VARARGS, _codecs_utf_32_le_encode__doc__},
+
+static PyObject *
+_codecs_utf_32_le_encode_impl(PyModuleDef *module, PyObject *str,
+ const char *errors);
+
+static PyObject *
+_codecs_utf_32_le_encode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *str;
+ const char *errors = NULL;
+
+ if (!PyArg_ParseTuple(args, "O|z:utf_32_le_encode",
+ &str, &errors))
+ goto exit;
+ return_value = _codecs_utf_32_le_encode_impl(module, str, errors);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs_utf_32_be_encode__doc__,
+"utf_32_be_encode($module, str, errors=None, /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_UTF_32_BE_ENCODE_METHODDEF \
+ {"utf_32_be_encode", (PyCFunction)_codecs_utf_32_be_encode, METH_VARARGS, _codecs_utf_32_be_encode__doc__},
+
+static PyObject *
+_codecs_utf_32_be_encode_impl(PyModuleDef *module, PyObject *str,
+ const char *errors);
+
+static PyObject *
+_codecs_utf_32_be_encode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *str;
+ const char *errors = NULL;
+
+ if (!PyArg_ParseTuple(args, "O|z:utf_32_be_encode",
+ &str, &errors))
+ goto exit;
+ return_value = _codecs_utf_32_be_encode_impl(module, str, errors);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs_unicode_escape_encode__doc__,
+"unicode_escape_encode($module, str, errors=None, /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_UNICODE_ESCAPE_ENCODE_METHODDEF \
+ {"unicode_escape_encode", (PyCFunction)_codecs_unicode_escape_encode, METH_VARARGS, _codecs_unicode_escape_encode__doc__},
+
+static PyObject *
+_codecs_unicode_escape_encode_impl(PyModuleDef *module, PyObject *str,
+ const char *errors);
+
+static PyObject *
+_codecs_unicode_escape_encode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *str;
+ const char *errors = NULL;
+
+ if (!PyArg_ParseTuple(args, "O|z:unicode_escape_encode",
+ &str, &errors))
+ goto exit;
+ return_value = _codecs_unicode_escape_encode_impl(module, str, errors);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs_raw_unicode_escape_encode__doc__,
+"raw_unicode_escape_encode($module, str, errors=None, /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_RAW_UNICODE_ESCAPE_ENCODE_METHODDEF \
+ {"raw_unicode_escape_encode", (PyCFunction)_codecs_raw_unicode_escape_encode, METH_VARARGS, _codecs_raw_unicode_escape_encode__doc__},
+
+static PyObject *
+_codecs_raw_unicode_escape_encode_impl(PyModuleDef *module, PyObject *str,
+ const char *errors);
+
+static PyObject *
+_codecs_raw_unicode_escape_encode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *str;
+ const char *errors = NULL;
+
+ if (!PyArg_ParseTuple(args, "O|z:raw_unicode_escape_encode",
+ &str, &errors))
+ goto exit;
+ return_value = _codecs_raw_unicode_escape_encode_impl(module, str, errors);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs_latin_1_encode__doc__,
+"latin_1_encode($module, str, errors=None, /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_LATIN_1_ENCODE_METHODDEF \
+ {"latin_1_encode", (PyCFunction)_codecs_latin_1_encode, METH_VARARGS, _codecs_latin_1_encode__doc__},
+
+static PyObject *
+_codecs_latin_1_encode_impl(PyModuleDef *module, PyObject *str,
+ const char *errors);
+
+static PyObject *
+_codecs_latin_1_encode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *str;
+ const char *errors = NULL;
+
+ if (!PyArg_ParseTuple(args, "O|z:latin_1_encode",
+ &str, &errors))
+ goto exit;
+ return_value = _codecs_latin_1_encode_impl(module, str, errors);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs_ascii_encode__doc__,
+"ascii_encode($module, str, errors=None, /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_ASCII_ENCODE_METHODDEF \
+ {"ascii_encode", (PyCFunction)_codecs_ascii_encode, METH_VARARGS, _codecs_ascii_encode__doc__},
+
+static PyObject *
+_codecs_ascii_encode_impl(PyModuleDef *module, PyObject *str,
+ const char *errors);
+
+static PyObject *
+_codecs_ascii_encode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *str;
+ const char *errors = NULL;
+
+ if (!PyArg_ParseTuple(args, "O|z:ascii_encode",
+ &str, &errors))
+ goto exit;
+ return_value = _codecs_ascii_encode_impl(module, str, errors);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs_charmap_encode__doc__,
+"charmap_encode($module, str, errors=None, mapping=None, /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_CHARMAP_ENCODE_METHODDEF \
+ {"charmap_encode", (PyCFunction)_codecs_charmap_encode, METH_VARARGS, _codecs_charmap_encode__doc__},
+
+static PyObject *
+_codecs_charmap_encode_impl(PyModuleDef *module, PyObject *str,
+ const char *errors, PyObject *mapping);
+
+static PyObject *
+_codecs_charmap_encode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *str;
+ const char *errors = NULL;
+ PyObject *mapping = NULL;
+
+ if (!PyArg_ParseTuple(args, "O|zO:charmap_encode",
+ &str, &errors, &mapping))
+ goto exit;
+ return_value = _codecs_charmap_encode_impl(module, str, errors, mapping);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs_charmap_build__doc__,
+"charmap_build($module, map, /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_CHARMAP_BUILD_METHODDEF \
+ {"charmap_build", (PyCFunction)_codecs_charmap_build, METH_O, _codecs_charmap_build__doc__},
+
+static PyObject *
+_codecs_charmap_build_impl(PyModuleDef *module, PyObject *map);
+
+static PyObject *
+_codecs_charmap_build(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ PyObject *map;
+
+ if (!PyArg_Parse(arg, "U:charmap_build", &map))
+ goto exit;
+ return_value = _codecs_charmap_build_impl(module, map);
+
+exit:
+ return return_value;
+}
+
+#if defined(HAVE_MBCS)
+
+PyDoc_STRVAR(_codecs_mbcs_encode__doc__,
+"mbcs_encode($module, str, errors=None, /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_MBCS_ENCODE_METHODDEF \
+ {"mbcs_encode", (PyCFunction)_codecs_mbcs_encode, METH_VARARGS, _codecs_mbcs_encode__doc__},
+
+static PyObject *
+_codecs_mbcs_encode_impl(PyModuleDef *module, PyObject *str,
+ const char *errors);
+
+static PyObject *
+_codecs_mbcs_encode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *str;
+ const char *errors = NULL;
+
+ if (!PyArg_ParseTuple(args, "O|z:mbcs_encode",
+ &str, &errors))
+ goto exit;
+ return_value = _codecs_mbcs_encode_impl(module, str, errors);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_MBCS) */
+
+#if defined(HAVE_MBCS)
+
+PyDoc_STRVAR(_codecs_code_page_encode__doc__,
+"code_page_encode($module, code_page, str, errors=None, /)\n"
+"--\n"
+"\n");
+
+#define _CODECS_CODE_PAGE_ENCODE_METHODDEF \
+ {"code_page_encode", (PyCFunction)_codecs_code_page_encode, METH_VARARGS, _codecs_code_page_encode__doc__},
+
+static PyObject *
+_codecs_code_page_encode_impl(PyModuleDef *module, int code_page,
+ PyObject *str, const char *errors);
+
+static PyObject *
+_codecs_code_page_encode(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int code_page;
+ PyObject *str;
+ const char *errors = NULL;
+
+ if (!PyArg_ParseTuple(args, "iO|z:code_page_encode",
+ &code_page, &str, &errors))
+ goto exit;
+ return_value = _codecs_code_page_encode_impl(module, code_page, str, errors);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_MBCS) */
+
+PyDoc_STRVAR(_codecs_register_error__doc__,
+"register_error($module, errors, handler, /)\n"
+"--\n"
+"\n"
+"Register the specified error handler under the name errors.\n"
+"\n"
+"handler must be a callable object, that will be called with an exception\n"
+"instance containing information about the location of the encoding/decoding\n"
+"error and must return a (replacement, new position) tuple.");
+
+#define _CODECS_REGISTER_ERROR_METHODDEF \
+ {"register_error", (PyCFunction)_codecs_register_error, METH_VARARGS, _codecs_register_error__doc__},
+
+static PyObject *
+_codecs_register_error_impl(PyModuleDef *module, const char *errors,
+ PyObject *handler);
+
+static PyObject *
+_codecs_register_error(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ const char *errors;
+ PyObject *handler;
+
+ if (!PyArg_ParseTuple(args, "sO:register_error",
+ &errors, &handler))
+ goto exit;
+ return_value = _codecs_register_error_impl(module, errors, handler);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_codecs_lookup_error__doc__,
+"lookup_error($module, name, /)\n"
+"--\n"
+"\n"
+"lookup_error(errors) -> handler\n"
+"\n"
+"Return the error handler for the specified error handling name or raise a\n"
+"LookupError, if no handler exists under this name.");
+
+#define _CODECS_LOOKUP_ERROR_METHODDEF \
+ {"lookup_error", (PyCFunction)_codecs_lookup_error, METH_O, _codecs_lookup_error__doc__},
+
+static PyObject *
+_codecs_lookup_error_impl(PyModuleDef *module, const char *name);
+
+static PyObject *
+_codecs_lookup_error(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ const char *name;
+
+ if (!PyArg_Parse(arg, "s:lookup_error", &name))
+ goto exit;
+ return_value = _codecs_lookup_error_impl(module, name);
+
+exit:
+ return return_value;
+}
+
+#ifndef _CODECS_MBCS_DECODE_METHODDEF
+ #define _CODECS_MBCS_DECODE_METHODDEF
+#endif /* !defined(_CODECS_MBCS_DECODE_METHODDEF) */
+
+#ifndef _CODECS_CODE_PAGE_DECODE_METHODDEF
+ #define _CODECS_CODE_PAGE_DECODE_METHODDEF
+#endif /* !defined(_CODECS_CODE_PAGE_DECODE_METHODDEF) */
+
+#ifndef _CODECS_MBCS_ENCODE_METHODDEF
+ #define _CODECS_MBCS_ENCODE_METHODDEF
+#endif /* !defined(_CODECS_MBCS_ENCODE_METHODDEF) */
+
+#ifndef _CODECS_CODE_PAGE_ENCODE_METHODDEF
+ #define _CODECS_CODE_PAGE_ENCODE_METHODDEF
+#endif /* !defined(_CODECS_CODE_PAGE_ENCODE_METHODDEF) */
+/*[clinic end generated code: output=9c9967048027c1c7 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_cryptmodule.c.h b/Modules/clinic/_cryptmodule.c.h
new file mode 100644
index 0000000000..b8ec31e003
--- /dev/null
+++ b/Modules/clinic/_cryptmodule.c.h
@@ -0,0 +1,37 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(crypt_crypt__doc__,
+"crypt($module, word, salt, /)\n"
+"--\n"
+"\n"
+"Hash a *word* with the given *salt* and return the hashed password.\n"
+"\n"
+"*word* will usually be a user\'s password. *salt* (either a random 2 or 16\n"
+"character string, possibly prefixed with $digit$ to indicate the method)\n"
+"will be used to perturb the encryption algorithm and produce distinct\n"
+"results for a given *word*.");
+
+#define CRYPT_CRYPT_METHODDEF \
+ {"crypt", (PyCFunction)crypt_crypt, METH_VARARGS, crypt_crypt__doc__},
+
+static PyObject *
+crypt_crypt_impl(PyModuleDef *module, const char *word, const char *salt);
+
+static PyObject *
+crypt_crypt(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ const char *word;
+ const char *salt;
+
+ if (!PyArg_ParseTuple(args, "ss:crypt",
+ &word, &salt))
+ goto exit;
+ return_value = crypt_crypt_impl(module, word, salt);
+
+exit:
+ return return_value;
+}
+/*[clinic end generated code: output=22c295c9bce018c4 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_cursesmodule.c.h b/Modules/clinic/_cursesmodule.c.h
new file mode 100644
index 0000000000..5e11742499
--- /dev/null
+++ b/Modules/clinic/_cursesmodule.c.h
@@ -0,0 +1,71 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(curses_window_addch__doc__,
+"addch([y, x,] ch, [attr])\n"
+"Paint character ch at (y, x) with attributes attr.\n"
+"\n"
+" y\n"
+" Y-coordinate.\n"
+" x\n"
+" X-coordinate.\n"
+" ch\n"
+" Character to add.\n"
+" attr\n"
+" Attributes for the character.\n"
+"\n"
+"Paint character ch at (y, x) with attributes attr,\n"
+"overwriting any character previously painted at that location.\n"
+"By default, the character position and attributes are the\n"
+"current settings for the window object.");
+
+#define CURSES_WINDOW_ADDCH_METHODDEF \
+ {"addch", (PyCFunction)curses_window_addch, METH_VARARGS, curses_window_addch__doc__},
+
+static PyObject *
+curses_window_addch_impl(PyCursesWindowObject *self, int group_left_1, int y,
+ int x, PyObject *ch, int group_right_1, long attr);
+
+static PyObject *
+curses_window_addch(PyCursesWindowObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int group_left_1 = 0;
+ int y = 0;
+ int x = 0;
+ PyObject *ch;
+ int group_right_1 = 0;
+ long attr = 0;
+
+ switch (PyTuple_GET_SIZE(args)) {
+ case 1:
+ if (!PyArg_ParseTuple(args, "O:addch", &ch))
+ goto exit;
+ break;
+ case 2:
+ if (!PyArg_ParseTuple(args, "Ol:addch", &ch, &attr))
+ goto exit;
+ group_right_1 = 1;
+ break;
+ case 3:
+ if (!PyArg_ParseTuple(args, "iiO:addch", &y, &x, &ch))
+ goto exit;
+ group_left_1 = 1;
+ break;
+ case 4:
+ if (!PyArg_ParseTuple(args, "iiOl:addch", &y, &x, &ch, &attr))
+ goto exit;
+ group_right_1 = 1;
+ group_left_1 = 1;
+ break;
+ default:
+ PyErr_SetString(PyExc_TypeError, "curses.window.addch requires 1 to 4 arguments");
+ goto exit;
+ }
+ return_value = curses_window_addch_impl(self, group_left_1, y, x, ch, group_right_1, attr);
+
+exit:
+ return return_value;
+}
+/*[clinic end generated code: output=982b1e709577f3ec input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_datetimemodule.c.h b/Modules/clinic/_datetimemodule.c.h
new file mode 100644
index 0000000000..688c903e2f
--- /dev/null
+++ b/Modules/clinic/_datetimemodule.c.h
@@ -0,0 +1,37 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(datetime_datetime_now__doc__,
+"now($type, /, tz=None)\n"
+"--\n"
+"\n"
+"Returns new datetime object representing current time local to tz.\n"
+"\n"
+" tz\n"
+" Timezone object.\n"
+"\n"
+"If no tz is specified, uses local timezone.");
+
+#define DATETIME_DATETIME_NOW_METHODDEF \
+ {"now", (PyCFunction)datetime_datetime_now, METH_VARARGS|METH_KEYWORDS|METH_CLASS, datetime_datetime_now__doc__},
+
+static PyObject *
+datetime_datetime_now_impl(PyTypeObject *type, PyObject *tz);
+
+static PyObject *
+datetime_datetime_now(PyTypeObject *type, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"tz", NULL};
+ PyObject *tz = Py_None;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|O:now", _keywords,
+ &tz))
+ goto exit;
+ return_value = datetime_datetime_now_impl(type, tz);
+
+exit:
+ return return_value;
+}
+/*[clinic end generated code: output=7f45c670d6e4953a input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_dbmmodule.c.h b/Modules/clinic/_dbmmodule.c.h
new file mode 100644
index 0000000000..8474e02828
--- /dev/null
+++ b/Modules/clinic/_dbmmodule.c.h
@@ -0,0 +1,141 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(_dbm_dbm_close__doc__,
+"close($self, /)\n"
+"--\n"
+"\n"
+"Close the database.");
+
+#define _DBM_DBM_CLOSE_METHODDEF \
+ {"close", (PyCFunction)_dbm_dbm_close, METH_NOARGS, _dbm_dbm_close__doc__},
+
+static PyObject *
+_dbm_dbm_close_impl(dbmobject *self);
+
+static PyObject *
+_dbm_dbm_close(dbmobject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _dbm_dbm_close_impl(self);
+}
+
+PyDoc_STRVAR(_dbm_dbm_keys__doc__,
+"keys($self, /)\n"
+"--\n"
+"\n"
+"Return a list of all keys in the database.");
+
+#define _DBM_DBM_KEYS_METHODDEF \
+ {"keys", (PyCFunction)_dbm_dbm_keys, METH_NOARGS, _dbm_dbm_keys__doc__},
+
+static PyObject *
+_dbm_dbm_keys_impl(dbmobject *self);
+
+static PyObject *
+_dbm_dbm_keys(dbmobject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _dbm_dbm_keys_impl(self);
+}
+
+PyDoc_STRVAR(_dbm_dbm_get__doc__,
+"get($self, key, default=b\'\', /)\n"
+"--\n"
+"\n"
+"Return the value for key if present, otherwise default.");
+
+#define _DBM_DBM_GET_METHODDEF \
+ {"get", (PyCFunction)_dbm_dbm_get, METH_VARARGS, _dbm_dbm_get__doc__},
+
+static PyObject *
+_dbm_dbm_get_impl(dbmobject *self, const char *key,
+ Py_ssize_clean_t key_length, PyObject *default_value);
+
+static PyObject *
+_dbm_dbm_get(dbmobject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ const char *key;
+ Py_ssize_clean_t key_length;
+ PyObject *default_value = NULL;
+
+ if (!PyArg_ParseTuple(args, "s#|O:get",
+ &key, &key_length, &default_value))
+ goto exit;
+ return_value = _dbm_dbm_get_impl(self, key, key_length, default_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_dbm_dbm_setdefault__doc__,
+"setdefault($self, key, default=b\'\', /)\n"
+"--\n"
+"\n"
+"Return the value for key if present, otherwise default.\n"
+"\n"
+"If key is not in the database, it is inserted with default as the value.");
+
+#define _DBM_DBM_SETDEFAULT_METHODDEF \
+ {"setdefault", (PyCFunction)_dbm_dbm_setdefault, METH_VARARGS, _dbm_dbm_setdefault__doc__},
+
+static PyObject *
+_dbm_dbm_setdefault_impl(dbmobject *self, const char *key,
+ Py_ssize_clean_t key_length,
+ PyObject *default_value);
+
+static PyObject *
+_dbm_dbm_setdefault(dbmobject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ const char *key;
+ Py_ssize_clean_t key_length;
+ PyObject *default_value = NULL;
+
+ if (!PyArg_ParseTuple(args, "s#|O:setdefault",
+ &key, &key_length, &default_value))
+ goto exit;
+ return_value = _dbm_dbm_setdefault_impl(self, key, key_length, default_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(dbmopen__doc__,
+"open($module, filename, flags=\'r\', mode=0o666, /)\n"
+"--\n"
+"\n"
+"Return a database object.\n"
+"\n"
+" filename\n"
+" The filename to open.\n"
+" flags\n"
+" How to open the file. \"r\" for reading, \"w\" for writing, etc.\n"
+" mode\n"
+" If creating a new file, the mode bits for the new file\n"
+" (e.g. os.O_RDWR).");
+
+#define DBMOPEN_METHODDEF \
+ {"open", (PyCFunction)dbmopen, METH_VARARGS, dbmopen__doc__},
+
+static PyObject *
+dbmopen_impl(PyModuleDef *module, const char *filename, const char *flags,
+ int mode);
+
+static PyObject *
+dbmopen(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ const char *filename;
+ const char *flags = "r";
+ int mode = 438;
+
+ if (!PyArg_ParseTuple(args, "s|si:open",
+ &filename, &flags, &mode))
+ goto exit;
+ return_value = dbmopen_impl(module, filename, flags, mode);
+
+exit:
+ return return_value;
+}
+/*[clinic end generated code: output=1d92e81b28c558d0 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_elementtree.c.h b/Modules/clinic/_elementtree.c.h
new file mode 100644
index 0000000000..86b4c4cec7
--- /dev/null
+++ b/Modules/clinic/_elementtree.c.h
@@ -0,0 +1,679 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(_elementtree_Element_append__doc__,
+"append($self, subelement, /)\n"
+"--\n"
+"\n");
+
+#define _ELEMENTTREE_ELEMENT_APPEND_METHODDEF \
+ {"append", (PyCFunction)_elementtree_Element_append, METH_O, _elementtree_Element_append__doc__},
+
+static PyObject *
+_elementtree_Element_append_impl(ElementObject *self, PyObject *subelement);
+
+static PyObject *
+_elementtree_Element_append(ElementObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ PyObject *subelement;
+
+ if (!PyArg_Parse(arg, "O!:append", &Element_Type, &subelement))
+ goto exit;
+ return_value = _elementtree_Element_append_impl(self, subelement);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_elementtree_Element_clear__doc__,
+"clear($self, /)\n"
+"--\n"
+"\n");
+
+#define _ELEMENTTREE_ELEMENT_CLEAR_METHODDEF \
+ {"clear", (PyCFunction)_elementtree_Element_clear, METH_NOARGS, _elementtree_Element_clear__doc__},
+
+static PyObject *
+_elementtree_Element_clear_impl(ElementObject *self);
+
+static PyObject *
+_elementtree_Element_clear(ElementObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _elementtree_Element_clear_impl(self);
+}
+
+PyDoc_STRVAR(_elementtree_Element___copy____doc__,
+"__copy__($self, /)\n"
+"--\n"
+"\n");
+
+#define _ELEMENTTREE_ELEMENT___COPY___METHODDEF \
+ {"__copy__", (PyCFunction)_elementtree_Element___copy__, METH_NOARGS, _elementtree_Element___copy____doc__},
+
+static PyObject *
+_elementtree_Element___copy___impl(ElementObject *self);
+
+static PyObject *
+_elementtree_Element___copy__(ElementObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _elementtree_Element___copy___impl(self);
+}
+
+PyDoc_STRVAR(_elementtree_Element___deepcopy____doc__,
+"__deepcopy__($self, memo, /)\n"
+"--\n"
+"\n");
+
+#define _ELEMENTTREE_ELEMENT___DEEPCOPY___METHODDEF \
+ {"__deepcopy__", (PyCFunction)_elementtree_Element___deepcopy__, METH_O, _elementtree_Element___deepcopy____doc__},
+
+PyDoc_STRVAR(_elementtree_Element___sizeof____doc__,
+"__sizeof__($self, /)\n"
+"--\n"
+"\n");
+
+#define _ELEMENTTREE_ELEMENT___SIZEOF___METHODDEF \
+ {"__sizeof__", (PyCFunction)_elementtree_Element___sizeof__, METH_NOARGS, _elementtree_Element___sizeof____doc__},
+
+static Py_ssize_t
+_elementtree_Element___sizeof___impl(ElementObject *self);
+
+static PyObject *
+_elementtree_Element___sizeof__(ElementObject *self, PyObject *Py_UNUSED(ignored))
+{
+ PyObject *return_value = NULL;
+ Py_ssize_t _return_value;
+
+ _return_value = _elementtree_Element___sizeof___impl(self);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyLong_FromSsize_t(_return_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_elementtree_Element___getstate____doc__,
+"__getstate__($self, /)\n"
+"--\n"
+"\n");
+
+#define _ELEMENTTREE_ELEMENT___GETSTATE___METHODDEF \
+ {"__getstate__", (PyCFunction)_elementtree_Element___getstate__, METH_NOARGS, _elementtree_Element___getstate____doc__},
+
+static PyObject *
+_elementtree_Element___getstate___impl(ElementObject *self);
+
+static PyObject *
+_elementtree_Element___getstate__(ElementObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _elementtree_Element___getstate___impl(self);
+}
+
+PyDoc_STRVAR(_elementtree_Element___setstate____doc__,
+"__setstate__($self, state, /)\n"
+"--\n"
+"\n");
+
+#define _ELEMENTTREE_ELEMENT___SETSTATE___METHODDEF \
+ {"__setstate__", (PyCFunction)_elementtree_Element___setstate__, METH_O, _elementtree_Element___setstate____doc__},
+
+PyDoc_STRVAR(_elementtree_Element_extend__doc__,
+"extend($self, elements, /)\n"
+"--\n"
+"\n");
+
+#define _ELEMENTTREE_ELEMENT_EXTEND_METHODDEF \
+ {"extend", (PyCFunction)_elementtree_Element_extend, METH_O, _elementtree_Element_extend__doc__},
+
+PyDoc_STRVAR(_elementtree_Element_find__doc__,
+"find($self, /, path, namespaces=None)\n"
+"--\n"
+"\n");
+
+#define _ELEMENTTREE_ELEMENT_FIND_METHODDEF \
+ {"find", (PyCFunction)_elementtree_Element_find, METH_VARARGS|METH_KEYWORDS, _elementtree_Element_find__doc__},
+
+static PyObject *
+_elementtree_Element_find_impl(ElementObject *self, PyObject *path,
+ PyObject *namespaces);
+
+static PyObject *
+_elementtree_Element_find(ElementObject *self, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"path", "namespaces", NULL};
+ PyObject *path;
+ PyObject *namespaces = Py_None;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|O:find", _keywords,
+ &path, &namespaces))
+ goto exit;
+ return_value = _elementtree_Element_find_impl(self, path, namespaces);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_elementtree_Element_findtext__doc__,
+"findtext($self, /, path, default=None, namespaces=None)\n"
+"--\n"
+"\n");
+
+#define _ELEMENTTREE_ELEMENT_FINDTEXT_METHODDEF \
+ {"findtext", (PyCFunction)_elementtree_Element_findtext, METH_VARARGS|METH_KEYWORDS, _elementtree_Element_findtext__doc__},
+
+static PyObject *
+_elementtree_Element_findtext_impl(ElementObject *self, PyObject *path,
+ PyObject *default_value,
+ PyObject *namespaces);
+
+static PyObject *
+_elementtree_Element_findtext(ElementObject *self, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"path", "default", "namespaces", NULL};
+ PyObject *path;
+ PyObject *default_value = Py_None;
+ PyObject *namespaces = Py_None;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|OO:findtext", _keywords,
+ &path, &default_value, &namespaces))
+ goto exit;
+ return_value = _elementtree_Element_findtext_impl(self, path, default_value, namespaces);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_elementtree_Element_findall__doc__,
+"findall($self, /, path, namespaces=None)\n"
+"--\n"
+"\n");
+
+#define _ELEMENTTREE_ELEMENT_FINDALL_METHODDEF \
+ {"findall", (PyCFunction)_elementtree_Element_findall, METH_VARARGS|METH_KEYWORDS, _elementtree_Element_findall__doc__},
+
+static PyObject *
+_elementtree_Element_findall_impl(ElementObject *self, PyObject *path,
+ PyObject *namespaces);
+
+static PyObject *
+_elementtree_Element_findall(ElementObject *self, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"path", "namespaces", NULL};
+ PyObject *path;
+ PyObject *namespaces = Py_None;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|O:findall", _keywords,
+ &path, &namespaces))
+ goto exit;
+ return_value = _elementtree_Element_findall_impl(self, path, namespaces);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_elementtree_Element_iterfind__doc__,
+"iterfind($self, /, path, namespaces=None)\n"
+"--\n"
+"\n");
+
+#define _ELEMENTTREE_ELEMENT_ITERFIND_METHODDEF \
+ {"iterfind", (PyCFunction)_elementtree_Element_iterfind, METH_VARARGS|METH_KEYWORDS, _elementtree_Element_iterfind__doc__},
+
+static PyObject *
+_elementtree_Element_iterfind_impl(ElementObject *self, PyObject *path,
+ PyObject *namespaces);
+
+static PyObject *
+_elementtree_Element_iterfind(ElementObject *self, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"path", "namespaces", NULL};
+ PyObject *path;
+ PyObject *namespaces = Py_None;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|O:iterfind", _keywords,
+ &path, &namespaces))
+ goto exit;
+ return_value = _elementtree_Element_iterfind_impl(self, path, namespaces);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_elementtree_Element_get__doc__,
+"get($self, /, key, default=None)\n"
+"--\n"
+"\n");
+
+#define _ELEMENTTREE_ELEMENT_GET_METHODDEF \
+ {"get", (PyCFunction)_elementtree_Element_get, METH_VARARGS|METH_KEYWORDS, _elementtree_Element_get__doc__},
+
+static PyObject *
+_elementtree_Element_get_impl(ElementObject *self, PyObject *key,
+ PyObject *default_value);
+
+static PyObject *
+_elementtree_Element_get(ElementObject *self, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"key", "default", NULL};
+ PyObject *key;
+ PyObject *default_value = Py_None;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|O:get", _keywords,
+ &key, &default_value))
+ goto exit;
+ return_value = _elementtree_Element_get_impl(self, key, default_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_elementtree_Element_getchildren__doc__,
+"getchildren($self, /)\n"
+"--\n"
+"\n");
+
+#define _ELEMENTTREE_ELEMENT_GETCHILDREN_METHODDEF \
+ {"getchildren", (PyCFunction)_elementtree_Element_getchildren, METH_NOARGS, _elementtree_Element_getchildren__doc__},
+
+static PyObject *
+_elementtree_Element_getchildren_impl(ElementObject *self);
+
+static PyObject *
+_elementtree_Element_getchildren(ElementObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _elementtree_Element_getchildren_impl(self);
+}
+
+PyDoc_STRVAR(_elementtree_Element_iter__doc__,
+"iter($self, /, tag=None)\n"
+"--\n"
+"\n");
+
+#define _ELEMENTTREE_ELEMENT_ITER_METHODDEF \
+ {"iter", (PyCFunction)_elementtree_Element_iter, METH_VARARGS|METH_KEYWORDS, _elementtree_Element_iter__doc__},
+
+static PyObject *
+_elementtree_Element_iter_impl(ElementObject *self, PyObject *tag);
+
+static PyObject *
+_elementtree_Element_iter(ElementObject *self, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"tag", NULL};
+ PyObject *tag = Py_None;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|O:iter", _keywords,
+ &tag))
+ goto exit;
+ return_value = _elementtree_Element_iter_impl(self, tag);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_elementtree_Element_itertext__doc__,
+"itertext($self, /)\n"
+"--\n"
+"\n");
+
+#define _ELEMENTTREE_ELEMENT_ITERTEXT_METHODDEF \
+ {"itertext", (PyCFunction)_elementtree_Element_itertext, METH_NOARGS, _elementtree_Element_itertext__doc__},
+
+static PyObject *
+_elementtree_Element_itertext_impl(ElementObject *self);
+
+static PyObject *
+_elementtree_Element_itertext(ElementObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _elementtree_Element_itertext_impl(self);
+}
+
+PyDoc_STRVAR(_elementtree_Element_insert__doc__,
+"insert($self, index, subelement, /)\n"
+"--\n"
+"\n");
+
+#define _ELEMENTTREE_ELEMENT_INSERT_METHODDEF \
+ {"insert", (PyCFunction)_elementtree_Element_insert, METH_VARARGS, _elementtree_Element_insert__doc__},
+
+static PyObject *
+_elementtree_Element_insert_impl(ElementObject *self, Py_ssize_t index,
+ PyObject *subelement);
+
+static PyObject *
+_elementtree_Element_insert(ElementObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_ssize_t index;
+ PyObject *subelement;
+
+ if (!PyArg_ParseTuple(args, "nO!:insert",
+ &index, &Element_Type, &subelement))
+ goto exit;
+ return_value = _elementtree_Element_insert_impl(self, index, subelement);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_elementtree_Element_items__doc__,
+"items($self, /)\n"
+"--\n"
+"\n");
+
+#define _ELEMENTTREE_ELEMENT_ITEMS_METHODDEF \
+ {"items", (PyCFunction)_elementtree_Element_items, METH_NOARGS, _elementtree_Element_items__doc__},
+
+static PyObject *
+_elementtree_Element_items_impl(ElementObject *self);
+
+static PyObject *
+_elementtree_Element_items(ElementObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _elementtree_Element_items_impl(self);
+}
+
+PyDoc_STRVAR(_elementtree_Element_keys__doc__,
+"keys($self, /)\n"
+"--\n"
+"\n");
+
+#define _ELEMENTTREE_ELEMENT_KEYS_METHODDEF \
+ {"keys", (PyCFunction)_elementtree_Element_keys, METH_NOARGS, _elementtree_Element_keys__doc__},
+
+static PyObject *
+_elementtree_Element_keys_impl(ElementObject *self);
+
+static PyObject *
+_elementtree_Element_keys(ElementObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _elementtree_Element_keys_impl(self);
+}
+
+PyDoc_STRVAR(_elementtree_Element_makeelement__doc__,
+"makeelement($self, tag, attrib, /)\n"
+"--\n"
+"\n");
+
+#define _ELEMENTTREE_ELEMENT_MAKEELEMENT_METHODDEF \
+ {"makeelement", (PyCFunction)_elementtree_Element_makeelement, METH_VARARGS, _elementtree_Element_makeelement__doc__},
+
+static PyObject *
+_elementtree_Element_makeelement_impl(ElementObject *self, PyObject *tag,
+ PyObject *attrib);
+
+static PyObject *
+_elementtree_Element_makeelement(ElementObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *tag;
+ PyObject *attrib;
+
+ if (!PyArg_UnpackTuple(args, "makeelement",
+ 2, 2,
+ &tag, &attrib))
+ goto exit;
+ return_value = _elementtree_Element_makeelement_impl(self, tag, attrib);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_elementtree_Element_remove__doc__,
+"remove($self, subelement, /)\n"
+"--\n"
+"\n");
+
+#define _ELEMENTTREE_ELEMENT_REMOVE_METHODDEF \
+ {"remove", (PyCFunction)_elementtree_Element_remove, METH_O, _elementtree_Element_remove__doc__},
+
+static PyObject *
+_elementtree_Element_remove_impl(ElementObject *self, PyObject *subelement);
+
+static PyObject *
+_elementtree_Element_remove(ElementObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ PyObject *subelement;
+
+ if (!PyArg_Parse(arg, "O!:remove", &Element_Type, &subelement))
+ goto exit;
+ return_value = _elementtree_Element_remove_impl(self, subelement);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_elementtree_Element_set__doc__,
+"set($self, key, value, /)\n"
+"--\n"
+"\n");
+
+#define _ELEMENTTREE_ELEMENT_SET_METHODDEF \
+ {"set", (PyCFunction)_elementtree_Element_set, METH_VARARGS, _elementtree_Element_set__doc__},
+
+static PyObject *
+_elementtree_Element_set_impl(ElementObject *self, PyObject *key,
+ PyObject *value);
+
+static PyObject *
+_elementtree_Element_set(ElementObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *key;
+ PyObject *value;
+
+ if (!PyArg_UnpackTuple(args, "set",
+ 2, 2,
+ &key, &value))
+ goto exit;
+ return_value = _elementtree_Element_set_impl(self, key, value);
+
+exit:
+ return return_value;
+}
+
+static int
+_elementtree_TreeBuilder___init___impl(TreeBuilderObject *self,
+ PyObject *element_factory);
+
+static int
+_elementtree_TreeBuilder___init__(PyObject *self, PyObject *args, PyObject *kwargs)
+{
+ int return_value = -1;
+ static char *_keywords[] = {"element_factory", NULL};
+ PyObject *element_factory = NULL;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|O:TreeBuilder", _keywords,
+ &element_factory))
+ goto exit;
+ return_value = _elementtree_TreeBuilder___init___impl((TreeBuilderObject *)self, element_factory);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_elementtree_TreeBuilder_data__doc__,
+"data($self, data, /)\n"
+"--\n"
+"\n");
+
+#define _ELEMENTTREE_TREEBUILDER_DATA_METHODDEF \
+ {"data", (PyCFunction)_elementtree_TreeBuilder_data, METH_O, _elementtree_TreeBuilder_data__doc__},
+
+PyDoc_STRVAR(_elementtree_TreeBuilder_end__doc__,
+"end($self, tag, /)\n"
+"--\n"
+"\n");
+
+#define _ELEMENTTREE_TREEBUILDER_END_METHODDEF \
+ {"end", (PyCFunction)_elementtree_TreeBuilder_end, METH_O, _elementtree_TreeBuilder_end__doc__},
+
+PyDoc_STRVAR(_elementtree_TreeBuilder_close__doc__,
+"close($self, /)\n"
+"--\n"
+"\n");
+
+#define _ELEMENTTREE_TREEBUILDER_CLOSE_METHODDEF \
+ {"close", (PyCFunction)_elementtree_TreeBuilder_close, METH_NOARGS, _elementtree_TreeBuilder_close__doc__},
+
+static PyObject *
+_elementtree_TreeBuilder_close_impl(TreeBuilderObject *self);
+
+static PyObject *
+_elementtree_TreeBuilder_close(TreeBuilderObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _elementtree_TreeBuilder_close_impl(self);
+}
+
+PyDoc_STRVAR(_elementtree_TreeBuilder_start__doc__,
+"start($self, tag, attrs=None, /)\n"
+"--\n"
+"\n");
+
+#define _ELEMENTTREE_TREEBUILDER_START_METHODDEF \
+ {"start", (PyCFunction)_elementtree_TreeBuilder_start, METH_VARARGS, _elementtree_TreeBuilder_start__doc__},
+
+static PyObject *
+_elementtree_TreeBuilder_start_impl(TreeBuilderObject *self, PyObject *tag,
+ PyObject *attrs);
+
+static PyObject *
+_elementtree_TreeBuilder_start(TreeBuilderObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *tag;
+ PyObject *attrs = Py_None;
+
+ if (!PyArg_UnpackTuple(args, "start",
+ 1, 2,
+ &tag, &attrs))
+ goto exit;
+ return_value = _elementtree_TreeBuilder_start_impl(self, tag, attrs);
+
+exit:
+ return return_value;
+}
+
+static int
+_elementtree_XMLParser___init___impl(XMLParserObject *self, PyObject *html,
+ PyObject *target, const char *encoding);
+
+static int
+_elementtree_XMLParser___init__(PyObject *self, PyObject *args, PyObject *kwargs)
+{
+ int return_value = -1;
+ static char *_keywords[] = {"html", "target", "encoding", NULL};
+ PyObject *html = NULL;
+ PyObject *target = NULL;
+ const char *encoding = NULL;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|OOz:XMLParser", _keywords,
+ &html, &target, &encoding))
+ goto exit;
+ return_value = _elementtree_XMLParser___init___impl((XMLParserObject *)self, html, target, encoding);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_elementtree_XMLParser_close__doc__,
+"close($self, /)\n"
+"--\n"
+"\n");
+
+#define _ELEMENTTREE_XMLPARSER_CLOSE_METHODDEF \
+ {"close", (PyCFunction)_elementtree_XMLParser_close, METH_NOARGS, _elementtree_XMLParser_close__doc__},
+
+static PyObject *
+_elementtree_XMLParser_close_impl(XMLParserObject *self);
+
+static PyObject *
+_elementtree_XMLParser_close(XMLParserObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _elementtree_XMLParser_close_impl(self);
+}
+
+PyDoc_STRVAR(_elementtree_XMLParser_feed__doc__,
+"feed($self, data, /)\n"
+"--\n"
+"\n");
+
+#define _ELEMENTTREE_XMLPARSER_FEED_METHODDEF \
+ {"feed", (PyCFunction)_elementtree_XMLParser_feed, METH_O, _elementtree_XMLParser_feed__doc__},
+
+PyDoc_STRVAR(_elementtree_XMLParser__parse_whole__doc__,
+"_parse_whole($self, file, /)\n"
+"--\n"
+"\n");
+
+#define _ELEMENTTREE_XMLPARSER__PARSE_WHOLE_METHODDEF \
+ {"_parse_whole", (PyCFunction)_elementtree_XMLParser__parse_whole, METH_O, _elementtree_XMLParser__parse_whole__doc__},
+
+PyDoc_STRVAR(_elementtree_XMLParser_doctype__doc__,
+"doctype($self, name, pubid, system, /)\n"
+"--\n"
+"\n");
+
+#define _ELEMENTTREE_XMLPARSER_DOCTYPE_METHODDEF \
+ {"doctype", (PyCFunction)_elementtree_XMLParser_doctype, METH_VARARGS, _elementtree_XMLParser_doctype__doc__},
+
+static PyObject *
+_elementtree_XMLParser_doctype_impl(XMLParserObject *self, PyObject *name,
+ PyObject *pubid, PyObject *system);
+
+static PyObject *
+_elementtree_XMLParser_doctype(XMLParserObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *name;
+ PyObject *pubid;
+ PyObject *system;
+
+ if (!PyArg_UnpackTuple(args, "doctype",
+ 3, 3,
+ &name, &pubid, &system))
+ goto exit;
+ return_value = _elementtree_XMLParser_doctype_impl(self, name, pubid, system);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_elementtree_XMLParser__setevents__doc__,
+"_setevents($self, events_queue, events_to_report=None, /)\n"
+"--\n"
+"\n");
+
+#define _ELEMENTTREE_XMLPARSER__SETEVENTS_METHODDEF \
+ {"_setevents", (PyCFunction)_elementtree_XMLParser__setevents, METH_VARARGS, _elementtree_XMLParser__setevents__doc__},
+
+static PyObject *
+_elementtree_XMLParser__setevents_impl(XMLParserObject *self,
+ PyObject *events_queue,
+ PyObject *events_to_report);
+
+static PyObject *
+_elementtree_XMLParser__setevents(XMLParserObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *events_queue;
+ PyObject *events_to_report = Py_None;
+
+ if (!PyArg_ParseTuple(args, "O!|O:_setevents",
+ &PyList_Type, &events_queue, &events_to_report))
+ goto exit;
+ return_value = _elementtree_XMLParser__setevents_impl(self, events_queue, events_to_report);
+
+exit:
+ return return_value;
+}
+/*[clinic end generated code: output=25b8bf7e7f2151ca input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_gdbmmodule.c.h b/Modules/clinic/_gdbmmodule.c.h
new file mode 100644
index 0000000000..110ad9a539
--- /dev/null
+++ b/Modules/clinic/_gdbmmodule.c.h
@@ -0,0 +1,253 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(_gdbm_gdbm_get__doc__,
+"get($self, key, default=None, /)\n"
+"--\n"
+"\n"
+"Get the value for key, or default if not present.");
+
+#define _GDBM_GDBM_GET_METHODDEF \
+ {"get", (PyCFunction)_gdbm_gdbm_get, METH_VARARGS, _gdbm_gdbm_get__doc__},
+
+static PyObject *
+_gdbm_gdbm_get_impl(dbmobject *self, PyObject *key, PyObject *default_value);
+
+static PyObject *
+_gdbm_gdbm_get(dbmobject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *key;
+ PyObject *default_value = Py_None;
+
+ if (!PyArg_UnpackTuple(args, "get",
+ 1, 2,
+ &key, &default_value))
+ goto exit;
+ return_value = _gdbm_gdbm_get_impl(self, key, default_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_gdbm_gdbm_setdefault__doc__,
+"setdefault($self, key, default=None, /)\n"
+"--\n"
+"\n"
+"Get value for key, or set it to default and return default if not present.");
+
+#define _GDBM_GDBM_SETDEFAULT_METHODDEF \
+ {"setdefault", (PyCFunction)_gdbm_gdbm_setdefault, METH_VARARGS, _gdbm_gdbm_setdefault__doc__},
+
+static PyObject *
+_gdbm_gdbm_setdefault_impl(dbmobject *self, PyObject *key,
+ PyObject *default_value);
+
+static PyObject *
+_gdbm_gdbm_setdefault(dbmobject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *key;
+ PyObject *default_value = Py_None;
+
+ if (!PyArg_UnpackTuple(args, "setdefault",
+ 1, 2,
+ &key, &default_value))
+ goto exit;
+ return_value = _gdbm_gdbm_setdefault_impl(self, key, default_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_gdbm_gdbm_close__doc__,
+"close($self, /)\n"
+"--\n"
+"\n"
+"Close the database.");
+
+#define _GDBM_GDBM_CLOSE_METHODDEF \
+ {"close", (PyCFunction)_gdbm_gdbm_close, METH_NOARGS, _gdbm_gdbm_close__doc__},
+
+static PyObject *
+_gdbm_gdbm_close_impl(dbmobject *self);
+
+static PyObject *
+_gdbm_gdbm_close(dbmobject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _gdbm_gdbm_close_impl(self);
+}
+
+PyDoc_STRVAR(_gdbm_gdbm_keys__doc__,
+"keys($self, /)\n"
+"--\n"
+"\n"
+"Get a list of all keys in the database.");
+
+#define _GDBM_GDBM_KEYS_METHODDEF \
+ {"keys", (PyCFunction)_gdbm_gdbm_keys, METH_NOARGS, _gdbm_gdbm_keys__doc__},
+
+static PyObject *
+_gdbm_gdbm_keys_impl(dbmobject *self);
+
+static PyObject *
+_gdbm_gdbm_keys(dbmobject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _gdbm_gdbm_keys_impl(self);
+}
+
+PyDoc_STRVAR(_gdbm_gdbm_firstkey__doc__,
+"firstkey($self, /)\n"
+"--\n"
+"\n"
+"Return the starting key for the traversal.\n"
+"\n"
+"It\'s possible to loop over every key in the database using this method\n"
+"and the nextkey() method. The traversal is ordered by GDBM\'s internal\n"
+"hash values, and won\'t be sorted by the key values.");
+
+#define _GDBM_GDBM_FIRSTKEY_METHODDEF \
+ {"firstkey", (PyCFunction)_gdbm_gdbm_firstkey, METH_NOARGS, _gdbm_gdbm_firstkey__doc__},
+
+static PyObject *
+_gdbm_gdbm_firstkey_impl(dbmobject *self);
+
+static PyObject *
+_gdbm_gdbm_firstkey(dbmobject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _gdbm_gdbm_firstkey_impl(self);
+}
+
+PyDoc_STRVAR(_gdbm_gdbm_nextkey__doc__,
+"nextkey($self, key, /)\n"
+"--\n"
+"\n"
+"Returns the key that follows key in the traversal.\n"
+"\n"
+"The following code prints every key in the database db, without having\n"
+"to create a list in memory that contains them all:\n"
+"\n"
+" k = db.firstkey()\n"
+" while k != None:\n"
+" print(k)\n"
+" k = db.nextkey(k)");
+
+#define _GDBM_GDBM_NEXTKEY_METHODDEF \
+ {"nextkey", (PyCFunction)_gdbm_gdbm_nextkey, METH_O, _gdbm_gdbm_nextkey__doc__},
+
+static PyObject *
+_gdbm_gdbm_nextkey_impl(dbmobject *self, const char *key,
+ Py_ssize_clean_t key_length);
+
+static PyObject *
+_gdbm_gdbm_nextkey(dbmobject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ const char *key;
+ Py_ssize_clean_t key_length;
+
+ if (!PyArg_Parse(arg, "s#:nextkey", &key, &key_length))
+ goto exit;
+ return_value = _gdbm_gdbm_nextkey_impl(self, key, key_length);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_gdbm_gdbm_reorganize__doc__,
+"reorganize($self, /)\n"
+"--\n"
+"\n"
+"Reorganize the database.\n"
+"\n"
+"If you have carried out a lot of deletions and would like to shrink\n"
+"the space used by the GDBM file, this routine will reorganize the\n"
+"database. GDBM will not shorten the length of a database file except\n"
+"by using this reorganization; otherwise, deleted file space will be\n"
+"kept and reused as new (key,value) pairs are added.");
+
+#define _GDBM_GDBM_REORGANIZE_METHODDEF \
+ {"reorganize", (PyCFunction)_gdbm_gdbm_reorganize, METH_NOARGS, _gdbm_gdbm_reorganize__doc__},
+
+static PyObject *
+_gdbm_gdbm_reorganize_impl(dbmobject *self);
+
+static PyObject *
+_gdbm_gdbm_reorganize(dbmobject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _gdbm_gdbm_reorganize_impl(self);
+}
+
+PyDoc_STRVAR(_gdbm_gdbm_sync__doc__,
+"sync($self, /)\n"
+"--\n"
+"\n"
+"Flush the database to the disk file.\n"
+"\n"
+"When the database has been opened in fast mode, this method forces\n"
+"any unwritten data to be written to the disk.");
+
+#define _GDBM_GDBM_SYNC_METHODDEF \
+ {"sync", (PyCFunction)_gdbm_gdbm_sync, METH_NOARGS, _gdbm_gdbm_sync__doc__},
+
+static PyObject *
+_gdbm_gdbm_sync_impl(dbmobject *self);
+
+static PyObject *
+_gdbm_gdbm_sync(dbmobject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _gdbm_gdbm_sync_impl(self);
+}
+
+PyDoc_STRVAR(dbmopen__doc__,
+"open($module, filename, flags=\'r\', mode=0o666, /)\n"
+"--\n"
+"\n"
+"Open a dbm database and return a dbm object.\n"
+"\n"
+"The filename argument is the name of the database file.\n"
+"\n"
+"The optional flags argument can be \'r\' (to open an existing database\n"
+"for reading only -- default), \'w\' (to open an existing database for\n"
+"reading and writing), \'c\' (which creates the database if it doesn\'t\n"
+"exist), or \'n\' (which always creates a new empty database).\n"
+"\n"
+"Some versions of gdbm support additional flags which must be\n"
+"appended to one of the flags described above. The module constant\n"
+"\'open_flags\' is a string of valid additional flags. The \'f\' flag\n"
+"opens the database in fast mode; altered data will not automatically\n"
+"be written to the disk after every change. This results in faster\n"
+"writes to the database, but may result in an inconsistent database\n"
+"if the program crashes while the database is still open. Use the\n"
+"sync() method to force any unwritten data to be written to the disk.\n"
+"The \'s\' flag causes all database operations to be synchronized to\n"
+"disk. The \'u\' flag disables locking of the database file.\n"
+"\n"
+"The optional mode argument is the Unix mode of the file, used only\n"
+"when the database has to be created. It defaults to octal 0o666.");
+
+#define DBMOPEN_METHODDEF \
+ {"open", (PyCFunction)dbmopen, METH_VARARGS, dbmopen__doc__},
+
+static PyObject *
+dbmopen_impl(PyModuleDef *module, const char *name, const char *flags,
+ int mode);
+
+static PyObject *
+dbmopen(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ const char *name;
+ const char *flags = "r";
+ int mode = 438;
+
+ if (!PyArg_ParseTuple(args, "s|si:open",
+ &name, &flags, &mode))
+ goto exit;
+ return_value = dbmopen_impl(module, name, flags, mode);
+
+exit:
+ return return_value;
+}
+/*[clinic end generated code: output=d3d8d871bcccb68a input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_lzmamodule.c.h b/Modules/clinic/_lzmamodule.c.h
index c1ad8824af..59d9d51026 100644
--- a/Modules/clinic/_lzmamodule.c.h
+++ b/Modules/clinic/_lzmamodule.c.h
@@ -14,20 +14,18 @@ PyDoc_STRVAR(_lzma_LZMACompressor_compress__doc__,
"flush() method to finish the compression process.");
#define _LZMA_LZMACOMPRESSOR_COMPRESS_METHODDEF \
- {"compress", (PyCFunction)_lzma_LZMACompressor_compress, METH_VARARGS, _lzma_LZMACompressor_compress__doc__},
+ {"compress", (PyCFunction)_lzma_LZMACompressor_compress, METH_O, _lzma_LZMACompressor_compress__doc__},
static PyObject *
_lzma_LZMACompressor_compress_impl(Compressor *self, Py_buffer *data);
static PyObject *
-_lzma_LZMACompressor_compress(Compressor *self, PyObject *args)
+_lzma_LZMACompressor_compress(Compressor *self, PyObject *arg)
{
PyObject *return_value = NULL;
Py_buffer data = {NULL, NULL};
- if (!PyArg_ParseTuple(args,
- "y*:compress",
- &data))
+ if (!PyArg_Parse(arg, "y*:compress", &data))
goto exit;
return_value = _lzma_LZMACompressor_compress_impl(self, &data);
@@ -62,34 +60,43 @@ _lzma_LZMACompressor_flush(Compressor *self, PyObject *Py_UNUSED(ignored))
}
PyDoc_STRVAR(_lzma_LZMADecompressor_decompress__doc__,
-"decompress($self, data, /)\n"
+"decompress($self, /, data, max_length=-1)\n"
"--\n"
"\n"
-"Provide data to the decompressor object.\n"
+"Decompress *data*, returning uncompressed data as bytes.\n"
"\n"
-"Returns a chunk of decompressed data if possible, or b\'\' otherwise.\n"
+"If *max_length* is nonnegative, returns at most *max_length* bytes of\n"
+"decompressed data. If this limit is reached and further output can be\n"
+"produced, *self.needs_input* will be set to ``False``. In this case, the next\n"
+"call to *decompress()* may provide *data* as b\'\' to obtain more of the output.\n"
"\n"
-"Attempting to decompress data after the end of stream is reached\n"
-"raises an EOFError. Any data found after the end of the stream\n"
-"is ignored and saved in the unused_data attribute.");
+"If all of the input data was decompressed and returned (either because this\n"
+"was less than *max_length* bytes, or because *max_length* was negative),\n"
+"*self.needs_input* will be set to True.\n"
+"\n"
+"Attempting to decompress data after the end of stream is reached raises an\n"
+"EOFError. Any data found after the end of the stream is ignored and saved in\n"
+"the unused_data attribute.");
#define _LZMA_LZMADECOMPRESSOR_DECOMPRESS_METHODDEF \
- {"decompress", (PyCFunction)_lzma_LZMADecompressor_decompress, METH_VARARGS, _lzma_LZMADecompressor_decompress__doc__},
+ {"decompress", (PyCFunction)_lzma_LZMADecompressor_decompress, METH_VARARGS|METH_KEYWORDS, _lzma_LZMADecompressor_decompress__doc__},
static PyObject *
-_lzma_LZMADecompressor_decompress_impl(Decompressor *self, Py_buffer *data);
+_lzma_LZMADecompressor_decompress_impl(Decompressor *self, Py_buffer *data,
+ Py_ssize_t max_length);
static PyObject *
-_lzma_LZMADecompressor_decompress(Decompressor *self, PyObject *args)
+_lzma_LZMADecompressor_decompress(Decompressor *self, PyObject *args, PyObject *kwargs)
{
PyObject *return_value = NULL;
+ static char *_keywords[] = {"data", "max_length", NULL};
Py_buffer data = {NULL, NULL};
+ Py_ssize_t max_length = -1;
- if (!PyArg_ParseTuple(args,
- "y*:decompress",
- &data))
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "y*|n:decompress", _keywords,
+ &data, &max_length))
goto exit;
- return_value = _lzma_LZMADecompressor_decompress_impl(self, &data);
+ return_value = _lzma_LZMADecompressor_decompress_impl(self, &data, max_length);
exit:
/* Cleanup for data */
@@ -123,7 +130,8 @@ PyDoc_STRVAR(_lzma_LZMADecompressor___init____doc__,
"For one-shot decompression, use the decompress() function instead.");
static int
-_lzma_LZMADecompressor___init___impl(Decompressor *self, int format, PyObject *memlimit, PyObject *filters);
+_lzma_LZMADecompressor___init___impl(Decompressor *self, int format,
+ PyObject *memlimit, PyObject *filters);
static int
_lzma_LZMADecompressor___init__(PyObject *self, PyObject *args, PyObject *kwargs)
@@ -134,8 +142,7 @@ _lzma_LZMADecompressor___init__(PyObject *self, PyObject *args, PyObject *kwargs
PyObject *memlimit = Py_None;
PyObject *filters = Py_None;
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,
- "|iOO:LZMADecompressor", _keywords,
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|iOO:LZMADecompressor", _keywords,
&format, &memlimit, &filters))
goto exit;
return_value = _lzma_LZMADecompressor___init___impl((Decompressor *)self, format, memlimit, filters);
@@ -153,20 +160,18 @@ PyDoc_STRVAR(_lzma_is_check_supported__doc__,
"Always returns True for CHECK_NONE and CHECK_CRC32.");
#define _LZMA_IS_CHECK_SUPPORTED_METHODDEF \
- {"is_check_supported", (PyCFunction)_lzma_is_check_supported, METH_VARARGS, _lzma_is_check_supported__doc__},
+ {"is_check_supported", (PyCFunction)_lzma_is_check_supported, METH_O, _lzma_is_check_supported__doc__},
static PyObject *
_lzma_is_check_supported_impl(PyModuleDef *module, int check_id);
static PyObject *
-_lzma_is_check_supported(PyModuleDef *module, PyObject *args)
+_lzma_is_check_supported(PyModuleDef *module, PyObject *arg)
{
PyObject *return_value = NULL;
int check_id;
- if (!PyArg_ParseTuple(args,
- "i:is_check_supported",
- &check_id))
+ if (!PyArg_Parse(arg, "i:is_check_supported", &check_id))
goto exit;
return_value = _lzma_is_check_supported_impl(module, check_id);
@@ -183,20 +188,18 @@ PyDoc_STRVAR(_lzma__encode_filter_properties__doc__,
"The result does not include the filter ID itself, only the options.");
#define _LZMA__ENCODE_FILTER_PROPERTIES_METHODDEF \
- {"_encode_filter_properties", (PyCFunction)_lzma__encode_filter_properties, METH_VARARGS, _lzma__encode_filter_properties__doc__},
+ {"_encode_filter_properties", (PyCFunction)_lzma__encode_filter_properties, METH_O, _lzma__encode_filter_properties__doc__},
static PyObject *
_lzma__encode_filter_properties_impl(PyModuleDef *module, lzma_filter filter);
static PyObject *
-_lzma__encode_filter_properties(PyModuleDef *module, PyObject *args)
+_lzma__encode_filter_properties(PyModuleDef *module, PyObject *arg)
{
PyObject *return_value = NULL;
lzma_filter filter = {LZMA_VLI_UNKNOWN, NULL};
- if (!PyArg_ParseTuple(args,
- "O&:_encode_filter_properties",
- lzma_filter_converter, &filter))
+ if (!PyArg_Parse(arg, "O&:_encode_filter_properties", lzma_filter_converter, &filter))
goto exit;
return_value = _lzma__encode_filter_properties_impl(module, filter);
@@ -220,7 +223,8 @@ PyDoc_STRVAR(_lzma__decode_filter_properties__doc__,
{"_decode_filter_properties", (PyCFunction)_lzma__decode_filter_properties, METH_VARARGS, _lzma__decode_filter_properties__doc__},
static PyObject *
-_lzma__decode_filter_properties_impl(PyModuleDef *module, lzma_vli filter_id, Py_buffer *encoded_props);
+_lzma__decode_filter_properties_impl(PyModuleDef *module, lzma_vli filter_id,
+ Py_buffer *encoded_props);
static PyObject *
_lzma__decode_filter_properties(PyModuleDef *module, PyObject *args)
@@ -229,8 +233,7 @@ _lzma__decode_filter_properties(PyModuleDef *module, PyObject *args)
lzma_vli filter_id;
Py_buffer encoded_props = {NULL, NULL};
- if (!PyArg_ParseTuple(args,
- "O&y*:_decode_filter_properties",
+ if (!PyArg_ParseTuple(args, "O&y*:_decode_filter_properties",
lzma_vli_converter, &filter_id, &encoded_props))
goto exit;
return_value = _lzma__decode_filter_properties_impl(module, filter_id, &encoded_props);
@@ -242,4 +245,4 @@ exit:
return return_value;
}
-/*[clinic end generated code: output=808fec8216ac712b input=a9049054013a1b77]*/
+/*[clinic end generated code: output=2d3e0842be3d3fe1 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_opcode.c.h b/Modules/clinic/_opcode.c.h
new file mode 100644
index 0000000000..196a2eefd3
--- /dev/null
+++ b/Modules/clinic/_opcode.c.h
@@ -0,0 +1,36 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(_opcode_stack_effect__doc__,
+"stack_effect($module, opcode, oparg=None, /)\n"
+"--\n"
+"\n"
+"Compute the stack effect of the opcode.");
+
+#define _OPCODE_STACK_EFFECT_METHODDEF \
+ {"stack_effect", (PyCFunction)_opcode_stack_effect, METH_VARARGS, _opcode_stack_effect__doc__},
+
+static int
+_opcode_stack_effect_impl(PyModuleDef *module, int opcode, PyObject *oparg);
+
+static PyObject *
+_opcode_stack_effect(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int opcode;
+ PyObject *oparg = Py_None;
+ int _return_value;
+
+ if (!PyArg_ParseTuple(args, "i|O:stack_effect",
+ &opcode, &oparg))
+ goto exit;
+ _return_value = _opcode_stack_effect_impl(module, opcode, oparg);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyLong_FromLong((long)_return_value);
+
+exit:
+ return return_value;
+}
+/*[clinic end generated code: output=8ee7cb735705e8b3 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_pickle.c.h b/Modules/clinic/_pickle.c.h
index 975298ce47..b698ce81bd 100644
--- a/Modules/clinic/_pickle.c.h
+++ b/Modules/clinic/_pickle.c.h
@@ -85,7 +85,8 @@ PyDoc_STRVAR(_pickle_Pickler___init____doc__,
"2, so that the pickle data stream is readable with Python 2.");
static int
-_pickle_Pickler___init___impl(PicklerObject *self, PyObject *file, PyObject *protocol, int fix_imports);
+_pickle_Pickler___init___impl(PicklerObject *self, PyObject *file,
+ PyObject *protocol, int fix_imports);
static int
_pickle_Pickler___init__(PyObject *self, PyObject *args, PyObject *kwargs)
@@ -96,8 +97,7 @@ _pickle_Pickler___init__(PyObject *self, PyObject *args, PyObject *kwargs)
PyObject *protocol = NULL;
int fix_imports = 1;
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,
- "O|Op:Pickler", _keywords,
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|Op:Pickler", _keywords,
&file, &protocol, &fix_imports))
goto exit;
return_value = _pickle_Pickler___init___impl((PicklerObject *)self, file, protocol, fix_imports);
@@ -199,7 +199,9 @@ PyDoc_STRVAR(_pickle_Unpickler_find_class__doc__,
{"find_class", (PyCFunction)_pickle_Unpickler_find_class, METH_VARARGS, _pickle_Unpickler_find_class__doc__},
static PyObject *
-_pickle_Unpickler_find_class_impl(UnpicklerObject *self, PyObject *module_name, PyObject *global_name);
+_pickle_Unpickler_find_class_impl(UnpicklerObject *self,
+ PyObject *module_name,
+ PyObject *global_name);
static PyObject *
_pickle_Unpickler_find_class(UnpicklerObject *self, PyObject *args)
@@ -271,7 +273,9 @@ PyDoc_STRVAR(_pickle_Unpickler___init____doc__,
"string instances as bytes objects.");
static int
-_pickle_Unpickler___init___impl(UnpicklerObject *self, PyObject *file, int fix_imports, const char *encoding, const char *errors);
+_pickle_Unpickler___init___impl(UnpicklerObject *self, PyObject *file,
+ int fix_imports, const char *encoding,
+ const char *errors);
static int
_pickle_Unpickler___init__(PyObject *self, PyObject *args, PyObject *kwargs)
@@ -283,8 +287,7 @@ _pickle_Unpickler___init__(PyObject *self, PyObject *args, PyObject *kwargs)
const char *encoding = "ASCII";
const char *errors = "strict";
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,
- "O|$pss:Unpickler", _keywords,
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|$pss:Unpickler", _keywords,
&file, &fix_imports, &encoding, &errors))
goto exit;
return_value = _pickle_Unpickler___init___impl((UnpicklerObject *)self, file, fix_imports, encoding, errors);
@@ -377,7 +380,8 @@ PyDoc_STRVAR(_pickle_dump__doc__,
{"dump", (PyCFunction)_pickle_dump, METH_VARARGS|METH_KEYWORDS, _pickle_dump__doc__},
static PyObject *
-_pickle_dump_impl(PyModuleDef *module, PyObject *obj, PyObject *file, PyObject *protocol, int fix_imports);
+_pickle_dump_impl(PyModuleDef *module, PyObject *obj, PyObject *file,
+ PyObject *protocol, int fix_imports);
static PyObject *
_pickle_dump(PyModuleDef *module, PyObject *args, PyObject *kwargs)
@@ -389,8 +393,7 @@ _pickle_dump(PyModuleDef *module, PyObject *args, PyObject *kwargs)
PyObject *protocol = NULL;
int fix_imports = 1;
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,
- "OO|O$p:dump", _keywords,
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "OO|O$p:dump", _keywords,
&obj, &file, &protocol, &fix_imports))
goto exit;
return_value = _pickle_dump_impl(module, obj, file, protocol, fix_imports);
@@ -421,7 +424,8 @@ PyDoc_STRVAR(_pickle_dumps__doc__,
{"dumps", (PyCFunction)_pickle_dumps, METH_VARARGS|METH_KEYWORDS, _pickle_dumps__doc__},
static PyObject *
-_pickle_dumps_impl(PyModuleDef *module, PyObject *obj, PyObject *protocol, int fix_imports);
+_pickle_dumps_impl(PyModuleDef *module, PyObject *obj, PyObject *protocol,
+ int fix_imports);
static PyObject *
_pickle_dumps(PyModuleDef *module, PyObject *args, PyObject *kwargs)
@@ -432,8 +436,7 @@ _pickle_dumps(PyModuleDef *module, PyObject *args, PyObject *kwargs)
PyObject *protocol = NULL;
int fix_imports = 1;
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,
- "O|O$p:dumps", _keywords,
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|O$p:dumps", _keywords,
&obj, &protocol, &fix_imports))
goto exit;
return_value = _pickle_dumps_impl(module, obj, protocol, fix_imports);
@@ -475,7 +478,8 @@ PyDoc_STRVAR(_pickle_load__doc__,
{"load", (PyCFunction)_pickle_load, METH_VARARGS|METH_KEYWORDS, _pickle_load__doc__},
static PyObject *
-_pickle_load_impl(PyModuleDef *module, PyObject *file, int fix_imports, const char *encoding, const char *errors);
+_pickle_load_impl(PyModuleDef *module, PyObject *file, int fix_imports,
+ const char *encoding, const char *errors);
static PyObject *
_pickle_load(PyModuleDef *module, PyObject *args, PyObject *kwargs)
@@ -487,8 +491,7 @@ _pickle_load(PyModuleDef *module, PyObject *args, PyObject *kwargs)
const char *encoding = "ASCII";
const char *errors = "strict";
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,
- "O|$pss:load", _keywords,
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|$pss:load", _keywords,
&file, &fix_imports, &encoding, &errors))
goto exit;
return_value = _pickle_load_impl(module, file, fix_imports, encoding, errors);
@@ -521,7 +524,8 @@ PyDoc_STRVAR(_pickle_loads__doc__,
{"loads", (PyCFunction)_pickle_loads, METH_VARARGS|METH_KEYWORDS, _pickle_loads__doc__},
static PyObject *
-_pickle_loads_impl(PyModuleDef *module, PyObject *data, int fix_imports, const char *encoding, const char *errors);
+_pickle_loads_impl(PyModuleDef *module, PyObject *data, int fix_imports,
+ const char *encoding, const char *errors);
static PyObject *
_pickle_loads(PyModuleDef *module, PyObject *args, PyObject *kwargs)
@@ -533,8 +537,7 @@ _pickle_loads(PyModuleDef *module, PyObject *args, PyObject *kwargs)
const char *encoding = "ASCII";
const char *errors = "strict";
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,
- "O|$pss:loads", _keywords,
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|$pss:loads", _keywords,
&data, &fix_imports, &encoding, &errors))
goto exit;
return_value = _pickle_loads_impl(module, data, fix_imports, encoding, errors);
@@ -542,4 +545,4 @@ _pickle_loads(PyModuleDef *module, PyObject *args, PyObject *kwargs)
exit:
return return_value;
}
-/*[clinic end generated code: output=3aba79576e240c62 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=06f3a5233298448e input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_sre.c.h b/Modules/clinic/_sre.c.h
new file mode 100644
index 0000000000..6de470847e
--- /dev/null
+++ b/Modules/clinic/_sre.c.h
@@ -0,0 +1,693 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(_sre_getcodesize__doc__,
+"getcodesize($module, /)\n"
+"--\n"
+"\n");
+
+#define _SRE_GETCODESIZE_METHODDEF \
+ {"getcodesize", (PyCFunction)_sre_getcodesize, METH_NOARGS, _sre_getcodesize__doc__},
+
+static int
+_sre_getcodesize_impl(PyModuleDef *module);
+
+static PyObject *
+_sre_getcodesize(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ PyObject *return_value = NULL;
+ int _return_value;
+
+ _return_value = _sre_getcodesize_impl(module);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyLong_FromLong((long)_return_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_sre_getlower__doc__,
+"getlower($module, character, flags, /)\n"
+"--\n"
+"\n");
+
+#define _SRE_GETLOWER_METHODDEF \
+ {"getlower", (PyCFunction)_sre_getlower, METH_VARARGS, _sre_getlower__doc__},
+
+static int
+_sre_getlower_impl(PyModuleDef *module, int character, int flags);
+
+static PyObject *
+_sre_getlower(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int character;
+ int flags;
+ int _return_value;
+
+ if (!PyArg_ParseTuple(args, "ii:getlower",
+ &character, &flags))
+ goto exit;
+ _return_value = _sre_getlower_impl(module, character, flags);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyLong_FromLong((long)_return_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_sre_SRE_Pattern_match__doc__,
+"match($self, /, string=None, pos=0, endpos=sys.maxsize, *, pattern=None)\n"
+"--\n"
+"\n"
+"Matches zero or more characters at the beginning of the string.");
+
+#define _SRE_SRE_PATTERN_MATCH_METHODDEF \
+ {"match", (PyCFunction)_sre_SRE_Pattern_match, METH_VARARGS|METH_KEYWORDS, _sre_SRE_Pattern_match__doc__},
+
+static PyObject *
+_sre_SRE_Pattern_match_impl(PatternObject *self, PyObject *string,
+ Py_ssize_t pos, Py_ssize_t endpos,
+ PyObject *pattern);
+
+static PyObject *
+_sre_SRE_Pattern_match(PatternObject *self, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"string", "pos", "endpos", "pattern", NULL};
+ PyObject *string = NULL;
+ Py_ssize_t pos = 0;
+ Py_ssize_t endpos = PY_SSIZE_T_MAX;
+ PyObject *pattern = NULL;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|Onn$O:match", _keywords,
+ &string, &pos, &endpos, &pattern))
+ goto exit;
+ return_value = _sre_SRE_Pattern_match_impl(self, string, pos, endpos, pattern);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_sre_SRE_Pattern_fullmatch__doc__,
+"fullmatch($self, /, string=None, pos=0, endpos=sys.maxsize, *,\n"
+" pattern=None)\n"
+"--\n"
+"\n"
+"Matches against all of the string");
+
+#define _SRE_SRE_PATTERN_FULLMATCH_METHODDEF \
+ {"fullmatch", (PyCFunction)_sre_SRE_Pattern_fullmatch, METH_VARARGS|METH_KEYWORDS, _sre_SRE_Pattern_fullmatch__doc__},
+
+static PyObject *
+_sre_SRE_Pattern_fullmatch_impl(PatternObject *self, PyObject *string,
+ Py_ssize_t pos, Py_ssize_t endpos,
+ PyObject *pattern);
+
+static PyObject *
+_sre_SRE_Pattern_fullmatch(PatternObject *self, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"string", "pos", "endpos", "pattern", NULL};
+ PyObject *string = NULL;
+ Py_ssize_t pos = 0;
+ Py_ssize_t endpos = PY_SSIZE_T_MAX;
+ PyObject *pattern = NULL;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|Onn$O:fullmatch", _keywords,
+ &string, &pos, &endpos, &pattern))
+ goto exit;
+ return_value = _sre_SRE_Pattern_fullmatch_impl(self, string, pos, endpos, pattern);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_sre_SRE_Pattern_search__doc__,
+"search($self, /, string=None, pos=0, endpos=sys.maxsize, *,\n"
+" pattern=None)\n"
+"--\n"
+"\n"
+"Scan through string looking for a match, and return a corresponding match object instance.\n"
+"\n"
+"Return None if no position in the string matches.");
+
+#define _SRE_SRE_PATTERN_SEARCH_METHODDEF \
+ {"search", (PyCFunction)_sre_SRE_Pattern_search, METH_VARARGS|METH_KEYWORDS, _sre_SRE_Pattern_search__doc__},
+
+static PyObject *
+_sre_SRE_Pattern_search_impl(PatternObject *self, PyObject *string,
+ Py_ssize_t pos, Py_ssize_t endpos,
+ PyObject *pattern);
+
+static PyObject *
+_sre_SRE_Pattern_search(PatternObject *self, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"string", "pos", "endpos", "pattern", NULL};
+ PyObject *string = NULL;
+ Py_ssize_t pos = 0;
+ Py_ssize_t endpos = PY_SSIZE_T_MAX;
+ PyObject *pattern = NULL;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|Onn$O:search", _keywords,
+ &string, &pos, &endpos, &pattern))
+ goto exit;
+ return_value = _sre_SRE_Pattern_search_impl(self, string, pos, endpos, pattern);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_sre_SRE_Pattern_findall__doc__,
+"findall($self, /, string=None, pos=0, endpos=sys.maxsize, *,\n"
+" source=None)\n"
+"--\n"
+"\n"
+"Return a list of all non-overlapping matches of pattern in string.");
+
+#define _SRE_SRE_PATTERN_FINDALL_METHODDEF \
+ {"findall", (PyCFunction)_sre_SRE_Pattern_findall, METH_VARARGS|METH_KEYWORDS, _sre_SRE_Pattern_findall__doc__},
+
+static PyObject *
+_sre_SRE_Pattern_findall_impl(PatternObject *self, PyObject *string,
+ Py_ssize_t pos, Py_ssize_t endpos,
+ PyObject *source);
+
+static PyObject *
+_sre_SRE_Pattern_findall(PatternObject *self, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"string", "pos", "endpos", "source", NULL};
+ PyObject *string = NULL;
+ Py_ssize_t pos = 0;
+ Py_ssize_t endpos = PY_SSIZE_T_MAX;
+ PyObject *source = NULL;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|Onn$O:findall", _keywords,
+ &string, &pos, &endpos, &source))
+ goto exit;
+ return_value = _sre_SRE_Pattern_findall_impl(self, string, pos, endpos, source);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_sre_SRE_Pattern_finditer__doc__,
+"finditer($self, /, string, pos=0, endpos=sys.maxsize)\n"
+"--\n"
+"\n"
+"Return an iterator over all non-overlapping matches for the RE pattern in string.\n"
+"\n"
+"For each match, the iterator returns a match object.");
+
+#define _SRE_SRE_PATTERN_FINDITER_METHODDEF \
+ {"finditer", (PyCFunction)_sre_SRE_Pattern_finditer, METH_VARARGS|METH_KEYWORDS, _sre_SRE_Pattern_finditer__doc__},
+
+static PyObject *
+_sre_SRE_Pattern_finditer_impl(PatternObject *self, PyObject *string,
+ Py_ssize_t pos, Py_ssize_t endpos);
+
+static PyObject *
+_sre_SRE_Pattern_finditer(PatternObject *self, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"string", "pos", "endpos", NULL};
+ PyObject *string;
+ Py_ssize_t pos = 0;
+ Py_ssize_t endpos = PY_SSIZE_T_MAX;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|nn:finditer", _keywords,
+ &string, &pos, &endpos))
+ goto exit;
+ return_value = _sre_SRE_Pattern_finditer_impl(self, string, pos, endpos);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_sre_SRE_Pattern_scanner__doc__,
+"scanner($self, /, string, pos=0, endpos=sys.maxsize)\n"
+"--\n"
+"\n");
+
+#define _SRE_SRE_PATTERN_SCANNER_METHODDEF \
+ {"scanner", (PyCFunction)_sre_SRE_Pattern_scanner, METH_VARARGS|METH_KEYWORDS, _sre_SRE_Pattern_scanner__doc__},
+
+static PyObject *
+_sre_SRE_Pattern_scanner_impl(PatternObject *self, PyObject *string,
+ Py_ssize_t pos, Py_ssize_t endpos);
+
+static PyObject *
+_sre_SRE_Pattern_scanner(PatternObject *self, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"string", "pos", "endpos", NULL};
+ PyObject *string;
+ Py_ssize_t pos = 0;
+ Py_ssize_t endpos = PY_SSIZE_T_MAX;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|nn:scanner", _keywords,
+ &string, &pos, &endpos))
+ goto exit;
+ return_value = _sre_SRE_Pattern_scanner_impl(self, string, pos, endpos);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_sre_SRE_Pattern_split__doc__,
+"split($self, /, string=None, maxsplit=0, *, source=None)\n"
+"--\n"
+"\n"
+"Split string by the occurrences of pattern.");
+
+#define _SRE_SRE_PATTERN_SPLIT_METHODDEF \
+ {"split", (PyCFunction)_sre_SRE_Pattern_split, METH_VARARGS|METH_KEYWORDS, _sre_SRE_Pattern_split__doc__},
+
+static PyObject *
+_sre_SRE_Pattern_split_impl(PatternObject *self, PyObject *string,
+ Py_ssize_t maxsplit, PyObject *source);
+
+static PyObject *
+_sre_SRE_Pattern_split(PatternObject *self, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"string", "maxsplit", "source", NULL};
+ PyObject *string = NULL;
+ Py_ssize_t maxsplit = 0;
+ PyObject *source = NULL;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|On$O:split", _keywords,
+ &string, &maxsplit, &source))
+ goto exit;
+ return_value = _sre_SRE_Pattern_split_impl(self, string, maxsplit, source);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_sre_SRE_Pattern_sub__doc__,
+"sub($self, /, repl, string, count=0)\n"
+"--\n"
+"\n"
+"Return the string obtained by replacing the leftmost non-overlapping occurrences of pattern in string by the replacement repl.");
+
+#define _SRE_SRE_PATTERN_SUB_METHODDEF \
+ {"sub", (PyCFunction)_sre_SRE_Pattern_sub, METH_VARARGS|METH_KEYWORDS, _sre_SRE_Pattern_sub__doc__},
+
+static PyObject *
+_sre_SRE_Pattern_sub_impl(PatternObject *self, PyObject *repl,
+ PyObject *string, Py_ssize_t count);
+
+static PyObject *
+_sre_SRE_Pattern_sub(PatternObject *self, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"repl", "string", "count", NULL};
+ PyObject *repl;
+ PyObject *string;
+ Py_ssize_t count = 0;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "OO|n:sub", _keywords,
+ &repl, &string, &count))
+ goto exit;
+ return_value = _sre_SRE_Pattern_sub_impl(self, repl, string, count);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_sre_SRE_Pattern_subn__doc__,
+"subn($self, /, repl, string, count=0)\n"
+"--\n"
+"\n"
+"Return the tuple (new_string, number_of_subs_made) found by replacing the leftmost non-overlapping occurrences of pattern with the replacement repl.");
+
+#define _SRE_SRE_PATTERN_SUBN_METHODDEF \
+ {"subn", (PyCFunction)_sre_SRE_Pattern_subn, METH_VARARGS|METH_KEYWORDS, _sre_SRE_Pattern_subn__doc__},
+
+static PyObject *
+_sre_SRE_Pattern_subn_impl(PatternObject *self, PyObject *repl,
+ PyObject *string, Py_ssize_t count);
+
+static PyObject *
+_sre_SRE_Pattern_subn(PatternObject *self, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"repl", "string", "count", NULL};
+ PyObject *repl;
+ PyObject *string;
+ Py_ssize_t count = 0;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "OO|n:subn", _keywords,
+ &repl, &string, &count))
+ goto exit;
+ return_value = _sre_SRE_Pattern_subn_impl(self, repl, string, count);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_sre_SRE_Pattern___copy____doc__,
+"__copy__($self, /)\n"
+"--\n"
+"\n");
+
+#define _SRE_SRE_PATTERN___COPY___METHODDEF \
+ {"__copy__", (PyCFunction)_sre_SRE_Pattern___copy__, METH_NOARGS, _sre_SRE_Pattern___copy____doc__},
+
+static PyObject *
+_sre_SRE_Pattern___copy___impl(PatternObject *self);
+
+static PyObject *
+_sre_SRE_Pattern___copy__(PatternObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _sre_SRE_Pattern___copy___impl(self);
+}
+
+PyDoc_STRVAR(_sre_SRE_Pattern___deepcopy____doc__,
+"__deepcopy__($self, /, memo)\n"
+"--\n"
+"\n");
+
+#define _SRE_SRE_PATTERN___DEEPCOPY___METHODDEF \
+ {"__deepcopy__", (PyCFunction)_sre_SRE_Pattern___deepcopy__, METH_VARARGS|METH_KEYWORDS, _sre_SRE_Pattern___deepcopy____doc__},
+
+static PyObject *
+_sre_SRE_Pattern___deepcopy___impl(PatternObject *self, PyObject *memo);
+
+static PyObject *
+_sre_SRE_Pattern___deepcopy__(PatternObject *self, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"memo", NULL};
+ PyObject *memo;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O:__deepcopy__", _keywords,
+ &memo))
+ goto exit;
+ return_value = _sre_SRE_Pattern___deepcopy___impl(self, memo);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_sre_compile__doc__,
+"compile($module, /, pattern, flags, code, groups, groupindex,\n"
+" indexgroup)\n"
+"--\n"
+"\n");
+
+#define _SRE_COMPILE_METHODDEF \
+ {"compile", (PyCFunction)_sre_compile, METH_VARARGS|METH_KEYWORDS, _sre_compile__doc__},
+
+static PyObject *
+_sre_compile_impl(PyModuleDef *module, PyObject *pattern, int flags,
+ PyObject *code, Py_ssize_t groups, PyObject *groupindex,
+ PyObject *indexgroup);
+
+static PyObject *
+_sre_compile(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"pattern", "flags", "code", "groups", "groupindex", "indexgroup", NULL};
+ PyObject *pattern;
+ int flags;
+ PyObject *code;
+ Py_ssize_t groups;
+ PyObject *groupindex;
+ PyObject *indexgroup;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "OiO!nOO:compile", _keywords,
+ &pattern, &flags, &PyList_Type, &code, &groups, &groupindex, &indexgroup))
+ goto exit;
+ return_value = _sre_compile_impl(module, pattern, flags, code, groups, groupindex, indexgroup);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_sre_SRE_Match_expand__doc__,
+"expand($self, /, template)\n"
+"--\n"
+"\n"
+"Return the string obtained by doing backslash substitution on the string template, as done by the sub() method.");
+
+#define _SRE_SRE_MATCH_EXPAND_METHODDEF \
+ {"expand", (PyCFunction)_sre_SRE_Match_expand, METH_VARARGS|METH_KEYWORDS, _sre_SRE_Match_expand__doc__},
+
+static PyObject *
+_sre_SRE_Match_expand_impl(MatchObject *self, PyObject *template);
+
+static PyObject *
+_sre_SRE_Match_expand(MatchObject *self, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"template", NULL};
+ PyObject *template;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O:expand", _keywords,
+ &template))
+ goto exit;
+ return_value = _sre_SRE_Match_expand_impl(self, template);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_sre_SRE_Match_groups__doc__,
+"groups($self, /, default=None)\n"
+"--\n"
+"\n"
+"Return a tuple containing all the subgroups of the match, from 1.\n"
+"\n"
+" default\n"
+" Is used for groups that did not participate in the match.");
+
+#define _SRE_SRE_MATCH_GROUPS_METHODDEF \
+ {"groups", (PyCFunction)_sre_SRE_Match_groups, METH_VARARGS|METH_KEYWORDS, _sre_SRE_Match_groups__doc__},
+
+static PyObject *
+_sre_SRE_Match_groups_impl(MatchObject *self, PyObject *default_value);
+
+static PyObject *
+_sre_SRE_Match_groups(MatchObject *self, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"default", NULL};
+ PyObject *default_value = Py_None;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|O:groups", _keywords,
+ &default_value))
+ goto exit;
+ return_value = _sre_SRE_Match_groups_impl(self, default_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_sre_SRE_Match_groupdict__doc__,
+"groupdict($self, /, default=None)\n"
+"--\n"
+"\n"
+"Return a dictionary containing all the named subgroups of the match, keyed by the subgroup name.\n"
+"\n"
+" default\n"
+" Is used for groups that did not participate in the match.");
+
+#define _SRE_SRE_MATCH_GROUPDICT_METHODDEF \
+ {"groupdict", (PyCFunction)_sre_SRE_Match_groupdict, METH_VARARGS|METH_KEYWORDS, _sre_SRE_Match_groupdict__doc__},
+
+static PyObject *
+_sre_SRE_Match_groupdict_impl(MatchObject *self, PyObject *default_value);
+
+static PyObject *
+_sre_SRE_Match_groupdict(MatchObject *self, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"default", NULL};
+ PyObject *default_value = Py_None;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|O:groupdict", _keywords,
+ &default_value))
+ goto exit;
+ return_value = _sre_SRE_Match_groupdict_impl(self, default_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_sre_SRE_Match_start__doc__,
+"start($self, group=0, /)\n"
+"--\n"
+"\n"
+"Return index of the start of the substring matched by group.");
+
+#define _SRE_SRE_MATCH_START_METHODDEF \
+ {"start", (PyCFunction)_sre_SRE_Match_start, METH_VARARGS, _sre_SRE_Match_start__doc__},
+
+static Py_ssize_t
+_sre_SRE_Match_start_impl(MatchObject *self, PyObject *group);
+
+static PyObject *
+_sre_SRE_Match_start(MatchObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *group = NULL;
+ Py_ssize_t _return_value;
+
+ if (!PyArg_UnpackTuple(args, "start",
+ 0, 1,
+ &group))
+ goto exit;
+ _return_value = _sre_SRE_Match_start_impl(self, group);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyLong_FromSsize_t(_return_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_sre_SRE_Match_end__doc__,
+"end($self, group=0, /)\n"
+"--\n"
+"\n"
+"Return index of the end of the substring matched by group.");
+
+#define _SRE_SRE_MATCH_END_METHODDEF \
+ {"end", (PyCFunction)_sre_SRE_Match_end, METH_VARARGS, _sre_SRE_Match_end__doc__},
+
+static Py_ssize_t
+_sre_SRE_Match_end_impl(MatchObject *self, PyObject *group);
+
+static PyObject *
+_sre_SRE_Match_end(MatchObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *group = NULL;
+ Py_ssize_t _return_value;
+
+ if (!PyArg_UnpackTuple(args, "end",
+ 0, 1,
+ &group))
+ goto exit;
+ _return_value = _sre_SRE_Match_end_impl(self, group);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyLong_FromSsize_t(_return_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_sre_SRE_Match_span__doc__,
+"span($self, group=0, /)\n"
+"--\n"
+"\n"
+"For MatchObject m, return the 2-tuple (m.start(group), m.end(group)).");
+
+#define _SRE_SRE_MATCH_SPAN_METHODDEF \
+ {"span", (PyCFunction)_sre_SRE_Match_span, METH_VARARGS, _sre_SRE_Match_span__doc__},
+
+static PyObject *
+_sre_SRE_Match_span_impl(MatchObject *self, PyObject *group);
+
+static PyObject *
+_sre_SRE_Match_span(MatchObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *group = NULL;
+
+ if (!PyArg_UnpackTuple(args, "span",
+ 0, 1,
+ &group))
+ goto exit;
+ return_value = _sre_SRE_Match_span_impl(self, group);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_sre_SRE_Match___copy____doc__,
+"__copy__($self, /)\n"
+"--\n"
+"\n");
+
+#define _SRE_SRE_MATCH___COPY___METHODDEF \
+ {"__copy__", (PyCFunction)_sre_SRE_Match___copy__, METH_NOARGS, _sre_SRE_Match___copy____doc__},
+
+static PyObject *
+_sre_SRE_Match___copy___impl(MatchObject *self);
+
+static PyObject *
+_sre_SRE_Match___copy__(MatchObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _sre_SRE_Match___copy___impl(self);
+}
+
+PyDoc_STRVAR(_sre_SRE_Match___deepcopy____doc__,
+"__deepcopy__($self, /, memo)\n"
+"--\n"
+"\n");
+
+#define _SRE_SRE_MATCH___DEEPCOPY___METHODDEF \
+ {"__deepcopy__", (PyCFunction)_sre_SRE_Match___deepcopy__, METH_VARARGS|METH_KEYWORDS, _sre_SRE_Match___deepcopy____doc__},
+
+static PyObject *
+_sre_SRE_Match___deepcopy___impl(MatchObject *self, PyObject *memo);
+
+static PyObject *
+_sre_SRE_Match___deepcopy__(MatchObject *self, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"memo", NULL};
+ PyObject *memo;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O:__deepcopy__", _keywords,
+ &memo))
+ goto exit;
+ return_value = _sre_SRE_Match___deepcopy___impl(self, memo);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_sre_SRE_Scanner_match__doc__,
+"match($self, /)\n"
+"--\n"
+"\n");
+
+#define _SRE_SRE_SCANNER_MATCH_METHODDEF \
+ {"match", (PyCFunction)_sre_SRE_Scanner_match, METH_NOARGS, _sre_SRE_Scanner_match__doc__},
+
+static PyObject *
+_sre_SRE_Scanner_match_impl(ScannerObject *self);
+
+static PyObject *
+_sre_SRE_Scanner_match(ScannerObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _sre_SRE_Scanner_match_impl(self);
+}
+
+PyDoc_STRVAR(_sre_SRE_Scanner_search__doc__,
+"search($self, /)\n"
+"--\n"
+"\n");
+
+#define _SRE_SRE_SCANNER_SEARCH_METHODDEF \
+ {"search", (PyCFunction)_sre_SRE_Scanner_search, METH_NOARGS, _sre_SRE_Scanner_search__doc__},
+
+static PyObject *
+_sre_SRE_Scanner_search_impl(ScannerObject *self);
+
+static PyObject *
+_sre_SRE_Scanner_search(ScannerObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _sre_SRE_Scanner_search_impl(self);
+}
+/*[clinic end generated code: output=d1d73ab2c5008bd4 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_ssl.c.h b/Modules/clinic/_ssl.c.h
new file mode 100644
index 0000000000..4dbc5d0010
--- /dev/null
+++ b/Modules/clinic/_ssl.c.h
@@ -0,0 +1,1105 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(_ssl__SSLSocket_do_handshake__doc__,
+"do_handshake($self, /)\n"
+"--\n"
+"\n");
+
+#define _SSL__SSLSOCKET_DO_HANDSHAKE_METHODDEF \
+ {"do_handshake", (PyCFunction)_ssl__SSLSocket_do_handshake, METH_NOARGS, _ssl__SSLSocket_do_handshake__doc__},
+
+static PyObject *
+_ssl__SSLSocket_do_handshake_impl(PySSLSocket *self);
+
+static PyObject *
+_ssl__SSLSocket_do_handshake(PySSLSocket *self, PyObject *Py_UNUSED(ignored))
+{
+ return _ssl__SSLSocket_do_handshake_impl(self);
+}
+
+PyDoc_STRVAR(_ssl__test_decode_cert__doc__,
+"_test_decode_cert($module, path, /)\n"
+"--\n"
+"\n");
+
+#define _SSL__TEST_DECODE_CERT_METHODDEF \
+ {"_test_decode_cert", (PyCFunction)_ssl__test_decode_cert, METH_O, _ssl__test_decode_cert__doc__},
+
+static PyObject *
+_ssl__test_decode_cert_impl(PyModuleDef *module, PyObject *path);
+
+static PyObject *
+_ssl__test_decode_cert(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ PyObject *path;
+
+ if (!PyArg_Parse(arg, "O&:_test_decode_cert", PyUnicode_FSConverter, &path))
+ goto exit;
+ return_value = _ssl__test_decode_cert_impl(module, path);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_ssl__SSLSocket_peer_certificate__doc__,
+"peer_certificate($self, der=False, /)\n"
+"--\n"
+"\n"
+"Returns the certificate for the peer.\n"
+"\n"
+"If no certificate was provided, returns None. If a certificate was\n"
+"provided, but not validated, returns an empty dictionary. Otherwise\n"
+"returns a dict containing information about the peer certificate.\n"
+"\n"
+"If the optional argument is True, returns a DER-encoded copy of the\n"
+"peer certificate, or None if no certificate was provided. This will\n"
+"return the certificate even if it wasn\'t validated.");
+
+#define _SSL__SSLSOCKET_PEER_CERTIFICATE_METHODDEF \
+ {"peer_certificate", (PyCFunction)_ssl__SSLSocket_peer_certificate, METH_VARARGS, _ssl__SSLSocket_peer_certificate__doc__},
+
+static PyObject *
+_ssl__SSLSocket_peer_certificate_impl(PySSLSocket *self, int binary_mode);
+
+static PyObject *
+_ssl__SSLSocket_peer_certificate(PySSLSocket *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int binary_mode = 0;
+
+ if (!PyArg_ParseTuple(args, "|p:peer_certificate",
+ &binary_mode))
+ goto exit;
+ return_value = _ssl__SSLSocket_peer_certificate_impl(self, binary_mode);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_ssl__SSLSocket_shared_ciphers__doc__,
+"shared_ciphers($self, /)\n"
+"--\n"
+"\n");
+
+#define _SSL__SSLSOCKET_SHARED_CIPHERS_METHODDEF \
+ {"shared_ciphers", (PyCFunction)_ssl__SSLSocket_shared_ciphers, METH_NOARGS, _ssl__SSLSocket_shared_ciphers__doc__},
+
+static PyObject *
+_ssl__SSLSocket_shared_ciphers_impl(PySSLSocket *self);
+
+static PyObject *
+_ssl__SSLSocket_shared_ciphers(PySSLSocket *self, PyObject *Py_UNUSED(ignored))
+{
+ return _ssl__SSLSocket_shared_ciphers_impl(self);
+}
+
+PyDoc_STRVAR(_ssl__SSLSocket_cipher__doc__,
+"cipher($self, /)\n"
+"--\n"
+"\n");
+
+#define _SSL__SSLSOCKET_CIPHER_METHODDEF \
+ {"cipher", (PyCFunction)_ssl__SSLSocket_cipher, METH_NOARGS, _ssl__SSLSocket_cipher__doc__},
+
+static PyObject *
+_ssl__SSLSocket_cipher_impl(PySSLSocket *self);
+
+static PyObject *
+_ssl__SSLSocket_cipher(PySSLSocket *self, PyObject *Py_UNUSED(ignored))
+{
+ return _ssl__SSLSocket_cipher_impl(self);
+}
+
+PyDoc_STRVAR(_ssl__SSLSocket_version__doc__,
+"version($self, /)\n"
+"--\n"
+"\n");
+
+#define _SSL__SSLSOCKET_VERSION_METHODDEF \
+ {"version", (PyCFunction)_ssl__SSLSocket_version, METH_NOARGS, _ssl__SSLSocket_version__doc__},
+
+static PyObject *
+_ssl__SSLSocket_version_impl(PySSLSocket *self);
+
+static PyObject *
+_ssl__SSLSocket_version(PySSLSocket *self, PyObject *Py_UNUSED(ignored))
+{
+ return _ssl__SSLSocket_version_impl(self);
+}
+
+#if defined(OPENSSL_NPN_NEGOTIATED)
+
+PyDoc_STRVAR(_ssl__SSLSocket_selected_npn_protocol__doc__,
+"selected_npn_protocol($self, /)\n"
+"--\n"
+"\n");
+
+#define _SSL__SSLSOCKET_SELECTED_NPN_PROTOCOL_METHODDEF \
+ {"selected_npn_protocol", (PyCFunction)_ssl__SSLSocket_selected_npn_protocol, METH_NOARGS, _ssl__SSLSocket_selected_npn_protocol__doc__},
+
+static PyObject *
+_ssl__SSLSocket_selected_npn_protocol_impl(PySSLSocket *self);
+
+static PyObject *
+_ssl__SSLSocket_selected_npn_protocol(PySSLSocket *self, PyObject *Py_UNUSED(ignored))
+{
+ return _ssl__SSLSocket_selected_npn_protocol_impl(self);
+}
+
+#endif /* defined(OPENSSL_NPN_NEGOTIATED) */
+
+#if defined(HAVE_ALPN)
+
+PyDoc_STRVAR(_ssl__SSLSocket_selected_alpn_protocol__doc__,
+"selected_alpn_protocol($self, /)\n"
+"--\n"
+"\n");
+
+#define _SSL__SSLSOCKET_SELECTED_ALPN_PROTOCOL_METHODDEF \
+ {"selected_alpn_protocol", (PyCFunction)_ssl__SSLSocket_selected_alpn_protocol, METH_NOARGS, _ssl__SSLSocket_selected_alpn_protocol__doc__},
+
+static PyObject *
+_ssl__SSLSocket_selected_alpn_protocol_impl(PySSLSocket *self);
+
+static PyObject *
+_ssl__SSLSocket_selected_alpn_protocol(PySSLSocket *self, PyObject *Py_UNUSED(ignored))
+{
+ return _ssl__SSLSocket_selected_alpn_protocol_impl(self);
+}
+
+#endif /* defined(HAVE_ALPN) */
+
+PyDoc_STRVAR(_ssl__SSLSocket_compression__doc__,
+"compression($self, /)\n"
+"--\n"
+"\n");
+
+#define _SSL__SSLSOCKET_COMPRESSION_METHODDEF \
+ {"compression", (PyCFunction)_ssl__SSLSocket_compression, METH_NOARGS, _ssl__SSLSocket_compression__doc__},
+
+static PyObject *
+_ssl__SSLSocket_compression_impl(PySSLSocket *self);
+
+static PyObject *
+_ssl__SSLSocket_compression(PySSLSocket *self, PyObject *Py_UNUSED(ignored))
+{
+ return _ssl__SSLSocket_compression_impl(self);
+}
+
+PyDoc_STRVAR(_ssl__SSLSocket_write__doc__,
+"write($self, b, /)\n"
+"--\n"
+"\n"
+"Writes the bytes-like object b into the SSL object.\n"
+"\n"
+"Returns the number of bytes written.");
+
+#define _SSL__SSLSOCKET_WRITE_METHODDEF \
+ {"write", (PyCFunction)_ssl__SSLSocket_write, METH_O, _ssl__SSLSocket_write__doc__},
+
+static PyObject *
+_ssl__SSLSocket_write_impl(PySSLSocket *self, Py_buffer *b);
+
+static PyObject *
+_ssl__SSLSocket_write(PySSLSocket *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_buffer b = {NULL, NULL};
+
+ if (!PyArg_Parse(arg, "y*:write", &b))
+ goto exit;
+ return_value = _ssl__SSLSocket_write_impl(self, &b);
+
+exit:
+ /* Cleanup for b */
+ if (b.obj)
+ PyBuffer_Release(&b);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(_ssl__SSLSocket_pending__doc__,
+"pending($self, /)\n"
+"--\n"
+"\n"
+"Returns the number of already decrypted bytes available for read, pending on the connection.");
+
+#define _SSL__SSLSOCKET_PENDING_METHODDEF \
+ {"pending", (PyCFunction)_ssl__SSLSocket_pending, METH_NOARGS, _ssl__SSLSocket_pending__doc__},
+
+static PyObject *
+_ssl__SSLSocket_pending_impl(PySSLSocket *self);
+
+static PyObject *
+_ssl__SSLSocket_pending(PySSLSocket *self, PyObject *Py_UNUSED(ignored))
+{
+ return _ssl__SSLSocket_pending_impl(self);
+}
+
+PyDoc_STRVAR(_ssl__SSLSocket_read__doc__,
+"read(size, [buffer])\n"
+"Read up to size bytes from the SSL socket.");
+
+#define _SSL__SSLSOCKET_READ_METHODDEF \
+ {"read", (PyCFunction)_ssl__SSLSocket_read, METH_VARARGS, _ssl__SSLSocket_read__doc__},
+
+static PyObject *
+_ssl__SSLSocket_read_impl(PySSLSocket *self, int len, int group_right_1,
+ Py_buffer *buffer);
+
+static PyObject *
+_ssl__SSLSocket_read(PySSLSocket *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int len;
+ int group_right_1 = 0;
+ Py_buffer buffer = {NULL, NULL};
+
+ switch (PyTuple_GET_SIZE(args)) {
+ case 1:
+ if (!PyArg_ParseTuple(args, "i:read", &len))
+ goto exit;
+ break;
+ case 2:
+ if (!PyArg_ParseTuple(args, "iw*:read", &len, &buffer))
+ goto exit;
+ group_right_1 = 1;
+ break;
+ default:
+ PyErr_SetString(PyExc_TypeError, "_ssl._SSLSocket.read requires 1 to 2 arguments");
+ goto exit;
+ }
+ return_value = _ssl__SSLSocket_read_impl(self, len, group_right_1, &buffer);
+
+exit:
+ /* Cleanup for buffer */
+ if (buffer.obj)
+ PyBuffer_Release(&buffer);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(_ssl__SSLSocket_shutdown__doc__,
+"shutdown($self, /)\n"
+"--\n"
+"\n"
+"Does the SSL shutdown handshake with the remote end.\n"
+"\n"
+"Returns the underlying socket object.");
+
+#define _SSL__SSLSOCKET_SHUTDOWN_METHODDEF \
+ {"shutdown", (PyCFunction)_ssl__SSLSocket_shutdown, METH_NOARGS, _ssl__SSLSocket_shutdown__doc__},
+
+static PyObject *
+_ssl__SSLSocket_shutdown_impl(PySSLSocket *self);
+
+static PyObject *
+_ssl__SSLSocket_shutdown(PySSLSocket *self, PyObject *Py_UNUSED(ignored))
+{
+ return _ssl__SSLSocket_shutdown_impl(self);
+}
+
+PyDoc_STRVAR(_ssl__SSLSocket_tls_unique_cb__doc__,
+"tls_unique_cb($self, /)\n"
+"--\n"
+"\n"
+"Returns the \'tls-unique\' channel binding data, as defined by RFC 5929.\n"
+"\n"
+"If the TLS handshake is not yet complete, None is returned.");
+
+#define _SSL__SSLSOCKET_TLS_UNIQUE_CB_METHODDEF \
+ {"tls_unique_cb", (PyCFunction)_ssl__SSLSocket_tls_unique_cb, METH_NOARGS, _ssl__SSLSocket_tls_unique_cb__doc__},
+
+static PyObject *
+_ssl__SSLSocket_tls_unique_cb_impl(PySSLSocket *self);
+
+static PyObject *
+_ssl__SSLSocket_tls_unique_cb(PySSLSocket *self, PyObject *Py_UNUSED(ignored))
+{
+ return _ssl__SSLSocket_tls_unique_cb_impl(self);
+}
+
+static PyObject *
+_ssl__SSLContext_impl(PyTypeObject *type, int proto_version);
+
+static PyObject *
+_ssl__SSLContext(PyTypeObject *type, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ int proto_version;
+
+ if ((type == &PySSLContext_Type) &&
+ !_PyArg_NoKeywords("_SSLContext", kwargs))
+ goto exit;
+ if (!PyArg_ParseTuple(args, "i:_SSLContext",
+ &proto_version))
+ goto exit;
+ return_value = _ssl__SSLContext_impl(type, proto_version);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_ssl__SSLContext_set_ciphers__doc__,
+"set_ciphers($self, cipherlist, /)\n"
+"--\n"
+"\n");
+
+#define _SSL__SSLCONTEXT_SET_CIPHERS_METHODDEF \
+ {"set_ciphers", (PyCFunction)_ssl__SSLContext_set_ciphers, METH_O, _ssl__SSLContext_set_ciphers__doc__},
+
+static PyObject *
+_ssl__SSLContext_set_ciphers_impl(PySSLContext *self, const char *cipherlist);
+
+static PyObject *
+_ssl__SSLContext_set_ciphers(PySSLContext *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ const char *cipherlist;
+
+ if (!PyArg_Parse(arg, "s:set_ciphers", &cipherlist))
+ goto exit;
+ return_value = _ssl__SSLContext_set_ciphers_impl(self, cipherlist);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_ssl__SSLContext__set_npn_protocols__doc__,
+"_set_npn_protocols($self, protos, /)\n"
+"--\n"
+"\n");
+
+#define _SSL__SSLCONTEXT__SET_NPN_PROTOCOLS_METHODDEF \
+ {"_set_npn_protocols", (PyCFunction)_ssl__SSLContext__set_npn_protocols, METH_O, _ssl__SSLContext__set_npn_protocols__doc__},
+
+static PyObject *
+_ssl__SSLContext__set_npn_protocols_impl(PySSLContext *self,
+ Py_buffer *protos);
+
+static PyObject *
+_ssl__SSLContext__set_npn_protocols(PySSLContext *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_buffer protos = {NULL, NULL};
+
+ if (!PyArg_Parse(arg, "y*:_set_npn_protocols", &protos))
+ goto exit;
+ return_value = _ssl__SSLContext__set_npn_protocols_impl(self, &protos);
+
+exit:
+ /* Cleanup for protos */
+ if (protos.obj)
+ PyBuffer_Release(&protos);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(_ssl__SSLContext__set_alpn_protocols__doc__,
+"_set_alpn_protocols($self, protos, /)\n"
+"--\n"
+"\n");
+
+#define _SSL__SSLCONTEXT__SET_ALPN_PROTOCOLS_METHODDEF \
+ {"_set_alpn_protocols", (PyCFunction)_ssl__SSLContext__set_alpn_protocols, METH_O, _ssl__SSLContext__set_alpn_protocols__doc__},
+
+static PyObject *
+_ssl__SSLContext__set_alpn_protocols_impl(PySSLContext *self,
+ Py_buffer *protos);
+
+static PyObject *
+_ssl__SSLContext__set_alpn_protocols(PySSLContext *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_buffer protos = {NULL, NULL};
+
+ if (!PyArg_Parse(arg, "y*:_set_alpn_protocols", &protos))
+ goto exit;
+ return_value = _ssl__SSLContext__set_alpn_protocols_impl(self, &protos);
+
+exit:
+ /* Cleanup for protos */
+ if (protos.obj)
+ PyBuffer_Release(&protos);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(_ssl__SSLContext_load_cert_chain__doc__,
+"load_cert_chain($self, /, certfile, keyfile=None, password=None)\n"
+"--\n"
+"\n");
+
+#define _SSL__SSLCONTEXT_LOAD_CERT_CHAIN_METHODDEF \
+ {"load_cert_chain", (PyCFunction)_ssl__SSLContext_load_cert_chain, METH_VARARGS|METH_KEYWORDS, _ssl__SSLContext_load_cert_chain__doc__},
+
+static PyObject *
+_ssl__SSLContext_load_cert_chain_impl(PySSLContext *self, PyObject *certfile,
+ PyObject *keyfile, PyObject *password);
+
+static PyObject *
+_ssl__SSLContext_load_cert_chain(PySSLContext *self, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"certfile", "keyfile", "password", NULL};
+ PyObject *certfile;
+ PyObject *keyfile = NULL;
+ PyObject *password = NULL;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|OO:load_cert_chain", _keywords,
+ &certfile, &keyfile, &password))
+ goto exit;
+ return_value = _ssl__SSLContext_load_cert_chain_impl(self, certfile, keyfile, password);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_ssl__SSLContext_load_verify_locations__doc__,
+"load_verify_locations($self, /, cafile=None, capath=None, cadata=None)\n"
+"--\n"
+"\n");
+
+#define _SSL__SSLCONTEXT_LOAD_VERIFY_LOCATIONS_METHODDEF \
+ {"load_verify_locations", (PyCFunction)_ssl__SSLContext_load_verify_locations, METH_VARARGS|METH_KEYWORDS, _ssl__SSLContext_load_verify_locations__doc__},
+
+static PyObject *
+_ssl__SSLContext_load_verify_locations_impl(PySSLContext *self,
+ PyObject *cafile,
+ PyObject *capath,
+ PyObject *cadata);
+
+static PyObject *
+_ssl__SSLContext_load_verify_locations(PySSLContext *self, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"cafile", "capath", "cadata", NULL};
+ PyObject *cafile = NULL;
+ PyObject *capath = NULL;
+ PyObject *cadata = NULL;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|OOO:load_verify_locations", _keywords,
+ &cafile, &capath, &cadata))
+ goto exit;
+ return_value = _ssl__SSLContext_load_verify_locations_impl(self, cafile, capath, cadata);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_ssl__SSLContext_load_dh_params__doc__,
+"load_dh_params($self, path, /)\n"
+"--\n"
+"\n");
+
+#define _SSL__SSLCONTEXT_LOAD_DH_PARAMS_METHODDEF \
+ {"load_dh_params", (PyCFunction)_ssl__SSLContext_load_dh_params, METH_O, _ssl__SSLContext_load_dh_params__doc__},
+
+PyDoc_STRVAR(_ssl__SSLContext__wrap_socket__doc__,
+"_wrap_socket($self, /, sock, server_side, server_hostname=None)\n"
+"--\n"
+"\n");
+
+#define _SSL__SSLCONTEXT__WRAP_SOCKET_METHODDEF \
+ {"_wrap_socket", (PyCFunction)_ssl__SSLContext__wrap_socket, METH_VARARGS|METH_KEYWORDS, _ssl__SSLContext__wrap_socket__doc__},
+
+static PyObject *
+_ssl__SSLContext__wrap_socket_impl(PySSLContext *self, PyObject *sock,
+ int server_side, PyObject *hostname_obj);
+
+static PyObject *
+_ssl__SSLContext__wrap_socket(PySSLContext *self, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"sock", "server_side", "server_hostname", NULL};
+ PyObject *sock;
+ int server_side;
+ PyObject *hostname_obj = Py_None;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!i|O:_wrap_socket", _keywords,
+ PySocketModule.Sock_Type, &sock, &server_side, &hostname_obj))
+ goto exit;
+ return_value = _ssl__SSLContext__wrap_socket_impl(self, sock, server_side, hostname_obj);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_ssl__SSLContext__wrap_bio__doc__,
+"_wrap_bio($self, /, incoming, outgoing, server_side,\n"
+" server_hostname=None)\n"
+"--\n"
+"\n");
+
+#define _SSL__SSLCONTEXT__WRAP_BIO_METHODDEF \
+ {"_wrap_bio", (PyCFunction)_ssl__SSLContext__wrap_bio, METH_VARARGS|METH_KEYWORDS, _ssl__SSLContext__wrap_bio__doc__},
+
+static PyObject *
+_ssl__SSLContext__wrap_bio_impl(PySSLContext *self, PySSLMemoryBIO *incoming,
+ PySSLMemoryBIO *outgoing, int server_side,
+ PyObject *hostname_obj);
+
+static PyObject *
+_ssl__SSLContext__wrap_bio(PySSLContext *self, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"incoming", "outgoing", "server_side", "server_hostname", NULL};
+ PySSLMemoryBIO *incoming;
+ PySSLMemoryBIO *outgoing;
+ int server_side;
+ PyObject *hostname_obj = Py_None;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O!i|O:_wrap_bio", _keywords,
+ &PySSLMemoryBIO_Type, &incoming, &PySSLMemoryBIO_Type, &outgoing, &server_side, &hostname_obj))
+ goto exit;
+ return_value = _ssl__SSLContext__wrap_bio_impl(self, incoming, outgoing, server_side, hostname_obj);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_ssl__SSLContext_session_stats__doc__,
+"session_stats($self, /)\n"
+"--\n"
+"\n");
+
+#define _SSL__SSLCONTEXT_SESSION_STATS_METHODDEF \
+ {"session_stats", (PyCFunction)_ssl__SSLContext_session_stats, METH_NOARGS, _ssl__SSLContext_session_stats__doc__},
+
+static PyObject *
+_ssl__SSLContext_session_stats_impl(PySSLContext *self);
+
+static PyObject *
+_ssl__SSLContext_session_stats(PySSLContext *self, PyObject *Py_UNUSED(ignored))
+{
+ return _ssl__SSLContext_session_stats_impl(self);
+}
+
+PyDoc_STRVAR(_ssl__SSLContext_set_default_verify_paths__doc__,
+"set_default_verify_paths($self, /)\n"
+"--\n"
+"\n");
+
+#define _SSL__SSLCONTEXT_SET_DEFAULT_VERIFY_PATHS_METHODDEF \
+ {"set_default_verify_paths", (PyCFunction)_ssl__SSLContext_set_default_verify_paths, METH_NOARGS, _ssl__SSLContext_set_default_verify_paths__doc__},
+
+static PyObject *
+_ssl__SSLContext_set_default_verify_paths_impl(PySSLContext *self);
+
+static PyObject *
+_ssl__SSLContext_set_default_verify_paths(PySSLContext *self, PyObject *Py_UNUSED(ignored))
+{
+ return _ssl__SSLContext_set_default_verify_paths_impl(self);
+}
+
+#if !defined(OPENSSL_NO_ECDH)
+
+PyDoc_STRVAR(_ssl__SSLContext_set_ecdh_curve__doc__,
+"set_ecdh_curve($self, name, /)\n"
+"--\n"
+"\n");
+
+#define _SSL__SSLCONTEXT_SET_ECDH_CURVE_METHODDEF \
+ {"set_ecdh_curve", (PyCFunction)_ssl__SSLContext_set_ecdh_curve, METH_O, _ssl__SSLContext_set_ecdh_curve__doc__},
+
+#endif /* !defined(OPENSSL_NO_ECDH) */
+
+PyDoc_STRVAR(_ssl__SSLContext_set_servername_callback__doc__,
+"set_servername_callback($self, method, /)\n"
+"--\n"
+"\n"
+"Set a callback that will be called when a server name is provided by the SSL/TLS client in the SNI extension.\n"
+"\n"
+"If the argument is None then the callback is disabled. The method is called\n"
+"with the SSLSocket, the server name as a string, and the SSLContext object.\n"
+"See RFC 6066 for details of the SNI extension.");
+
+#define _SSL__SSLCONTEXT_SET_SERVERNAME_CALLBACK_METHODDEF \
+ {"set_servername_callback", (PyCFunction)_ssl__SSLContext_set_servername_callback, METH_O, _ssl__SSLContext_set_servername_callback__doc__},
+
+PyDoc_STRVAR(_ssl__SSLContext_cert_store_stats__doc__,
+"cert_store_stats($self, /)\n"
+"--\n"
+"\n"
+"Returns quantities of loaded X.509 certificates.\n"
+"\n"
+"X.509 certificates with a CA extension and certificate revocation lists\n"
+"inside the context\'s cert store.\n"
+"\n"
+"NOTE: Certificates in a capath directory aren\'t loaded unless they have\n"
+"been used at least once.");
+
+#define _SSL__SSLCONTEXT_CERT_STORE_STATS_METHODDEF \
+ {"cert_store_stats", (PyCFunction)_ssl__SSLContext_cert_store_stats, METH_NOARGS, _ssl__SSLContext_cert_store_stats__doc__},
+
+static PyObject *
+_ssl__SSLContext_cert_store_stats_impl(PySSLContext *self);
+
+static PyObject *
+_ssl__SSLContext_cert_store_stats(PySSLContext *self, PyObject *Py_UNUSED(ignored))
+{
+ return _ssl__SSLContext_cert_store_stats_impl(self);
+}
+
+PyDoc_STRVAR(_ssl__SSLContext_get_ca_certs__doc__,
+"get_ca_certs($self, /, binary_form=False)\n"
+"--\n"
+"\n"
+"Returns a list of dicts with information of loaded CA certs.\n"
+"\n"
+"If the optional argument is True, returns a DER-encoded copy of the CA\n"
+"certificate.\n"
+"\n"
+"NOTE: Certificates in a capath directory aren\'t loaded unless they have\n"
+"been used at least once.");
+
+#define _SSL__SSLCONTEXT_GET_CA_CERTS_METHODDEF \
+ {"get_ca_certs", (PyCFunction)_ssl__SSLContext_get_ca_certs, METH_VARARGS|METH_KEYWORDS, _ssl__SSLContext_get_ca_certs__doc__},
+
+static PyObject *
+_ssl__SSLContext_get_ca_certs_impl(PySSLContext *self, int binary_form);
+
+static PyObject *
+_ssl__SSLContext_get_ca_certs(PySSLContext *self, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"binary_form", NULL};
+ int binary_form = 0;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|p:get_ca_certs", _keywords,
+ &binary_form))
+ goto exit;
+ return_value = _ssl__SSLContext_get_ca_certs_impl(self, binary_form);
+
+exit:
+ return return_value;
+}
+
+static PyObject *
+_ssl_MemoryBIO_impl(PyTypeObject *type);
+
+static PyObject *
+_ssl_MemoryBIO(PyTypeObject *type, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+
+ if ((type == &PySSLMemoryBIO_Type) &&
+ !_PyArg_NoPositional("MemoryBIO", args))
+ goto exit;
+ if ((type == &PySSLMemoryBIO_Type) &&
+ !_PyArg_NoKeywords("MemoryBIO", kwargs))
+ goto exit;
+ return_value = _ssl_MemoryBIO_impl(type);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_ssl_MemoryBIO_read__doc__,
+"read($self, size=-1, /)\n"
+"--\n"
+"\n"
+"Read up to size bytes from the memory BIO.\n"
+"\n"
+"If size is not specified, read the entire buffer.\n"
+"If the return value is an empty bytes instance, this means either\n"
+"EOF or that no data is available. Use the \"eof\" property to\n"
+"distinguish between the two.");
+
+#define _SSL_MEMORYBIO_READ_METHODDEF \
+ {"read", (PyCFunction)_ssl_MemoryBIO_read, METH_VARARGS, _ssl_MemoryBIO_read__doc__},
+
+static PyObject *
+_ssl_MemoryBIO_read_impl(PySSLMemoryBIO *self, int len);
+
+static PyObject *
+_ssl_MemoryBIO_read(PySSLMemoryBIO *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int len = -1;
+
+ if (!PyArg_ParseTuple(args, "|i:read",
+ &len))
+ goto exit;
+ return_value = _ssl_MemoryBIO_read_impl(self, len);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_ssl_MemoryBIO_write__doc__,
+"write($self, b, /)\n"
+"--\n"
+"\n"
+"Writes the bytes b into the memory BIO.\n"
+"\n"
+"Returns the number of bytes written.");
+
+#define _SSL_MEMORYBIO_WRITE_METHODDEF \
+ {"write", (PyCFunction)_ssl_MemoryBIO_write, METH_O, _ssl_MemoryBIO_write__doc__},
+
+static PyObject *
+_ssl_MemoryBIO_write_impl(PySSLMemoryBIO *self, Py_buffer *b);
+
+static PyObject *
+_ssl_MemoryBIO_write(PySSLMemoryBIO *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_buffer b = {NULL, NULL};
+
+ if (!PyArg_Parse(arg, "y*:write", &b))
+ goto exit;
+ return_value = _ssl_MemoryBIO_write_impl(self, &b);
+
+exit:
+ /* Cleanup for b */
+ if (b.obj)
+ PyBuffer_Release(&b);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(_ssl_MemoryBIO_write_eof__doc__,
+"write_eof($self, /)\n"
+"--\n"
+"\n"
+"Write an EOF marker to the memory BIO.\n"
+"\n"
+"When all data has been read, the \"eof\" property will be True.");
+
+#define _SSL_MEMORYBIO_WRITE_EOF_METHODDEF \
+ {"write_eof", (PyCFunction)_ssl_MemoryBIO_write_eof, METH_NOARGS, _ssl_MemoryBIO_write_eof__doc__},
+
+static PyObject *
+_ssl_MemoryBIO_write_eof_impl(PySSLMemoryBIO *self);
+
+static PyObject *
+_ssl_MemoryBIO_write_eof(PySSLMemoryBIO *self, PyObject *Py_UNUSED(ignored))
+{
+ return _ssl_MemoryBIO_write_eof_impl(self);
+}
+
+PyDoc_STRVAR(_ssl_RAND_add__doc__,
+"RAND_add($module, string, entropy, /)\n"
+"--\n"
+"\n"
+"Mix string into the OpenSSL PRNG state.\n"
+"\n"
+"entropy (a float) is a lower bound on the entropy contained in\n"
+"string. See RFC 1750.");
+
+#define _SSL_RAND_ADD_METHODDEF \
+ {"RAND_add", (PyCFunction)_ssl_RAND_add, METH_VARARGS, _ssl_RAND_add__doc__},
+
+static PyObject *
+_ssl_RAND_add_impl(PyModuleDef *module, Py_buffer *view, double entropy);
+
+static PyObject *
+_ssl_RAND_add(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_buffer view = {NULL, NULL};
+ double entropy;
+
+ if (!PyArg_ParseTuple(args, "s*d:RAND_add",
+ &view, &entropy))
+ goto exit;
+ return_value = _ssl_RAND_add_impl(module, &view, entropy);
+
+exit:
+ /* Cleanup for view */
+ if (view.obj)
+ PyBuffer_Release(&view);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(_ssl_RAND_bytes__doc__,
+"RAND_bytes($module, n, /)\n"
+"--\n"
+"\n"
+"Generate n cryptographically strong pseudo-random bytes.");
+
+#define _SSL_RAND_BYTES_METHODDEF \
+ {"RAND_bytes", (PyCFunction)_ssl_RAND_bytes, METH_O, _ssl_RAND_bytes__doc__},
+
+static PyObject *
+_ssl_RAND_bytes_impl(PyModuleDef *module, int n);
+
+static PyObject *
+_ssl_RAND_bytes(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int n;
+
+ if (!PyArg_Parse(arg, "i:RAND_bytes", &n))
+ goto exit;
+ return_value = _ssl_RAND_bytes_impl(module, n);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_ssl_RAND_pseudo_bytes__doc__,
+"RAND_pseudo_bytes($module, n, /)\n"
+"--\n"
+"\n"
+"Generate n pseudo-random bytes.\n"
+"\n"
+"Return a pair (bytes, is_cryptographic). is_cryptographic is True\n"
+"if the bytes generated are cryptographically strong.");
+
+#define _SSL_RAND_PSEUDO_BYTES_METHODDEF \
+ {"RAND_pseudo_bytes", (PyCFunction)_ssl_RAND_pseudo_bytes, METH_O, _ssl_RAND_pseudo_bytes__doc__},
+
+static PyObject *
+_ssl_RAND_pseudo_bytes_impl(PyModuleDef *module, int n);
+
+static PyObject *
+_ssl_RAND_pseudo_bytes(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int n;
+
+ if (!PyArg_Parse(arg, "i:RAND_pseudo_bytes", &n))
+ goto exit;
+ return_value = _ssl_RAND_pseudo_bytes_impl(module, n);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_ssl_RAND_status__doc__,
+"RAND_status($module, /)\n"
+"--\n"
+"\n"
+"Returns 1 if the OpenSSL PRNG has been seeded with enough data and 0 if not.\n"
+"\n"
+"It is necessary to seed the PRNG with RAND_add() on some platforms before\n"
+"using the ssl() function.");
+
+#define _SSL_RAND_STATUS_METHODDEF \
+ {"RAND_status", (PyCFunction)_ssl_RAND_status, METH_NOARGS, _ssl_RAND_status__doc__},
+
+static PyObject *
+_ssl_RAND_status_impl(PyModuleDef *module);
+
+static PyObject *
+_ssl_RAND_status(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ return _ssl_RAND_status_impl(module);
+}
+
+#if defined(HAVE_RAND_EGD)
+
+PyDoc_STRVAR(_ssl_RAND_egd__doc__,
+"RAND_egd($module, path, /)\n"
+"--\n"
+"\n"
+"Queries the entropy gather daemon (EGD) on the socket named by \'path\'.\n"
+"\n"
+"Returns number of bytes read. Raises SSLError if connection to EGD\n"
+"fails or if it does not provide enough data to seed PRNG.");
+
+#define _SSL_RAND_EGD_METHODDEF \
+ {"RAND_egd", (PyCFunction)_ssl_RAND_egd, METH_O, _ssl_RAND_egd__doc__},
+
+static PyObject *
+_ssl_RAND_egd_impl(PyModuleDef *module, PyObject *path);
+
+static PyObject *
+_ssl_RAND_egd(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ PyObject *path;
+
+ if (!PyArg_Parse(arg, "O&:RAND_egd", PyUnicode_FSConverter, &path))
+ goto exit;
+ return_value = _ssl_RAND_egd_impl(module, path);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_RAND_EGD) */
+
+PyDoc_STRVAR(_ssl_get_default_verify_paths__doc__,
+"get_default_verify_paths($module, /)\n"
+"--\n"
+"\n"
+"Return search paths and environment vars that are used by SSLContext\'s set_default_verify_paths() to load default CAs.\n"
+"\n"
+"The values are \'cert_file_env\', \'cert_file\', \'cert_dir_env\', \'cert_dir\'.");
+
+#define _SSL_GET_DEFAULT_VERIFY_PATHS_METHODDEF \
+ {"get_default_verify_paths", (PyCFunction)_ssl_get_default_verify_paths, METH_NOARGS, _ssl_get_default_verify_paths__doc__},
+
+static PyObject *
+_ssl_get_default_verify_paths_impl(PyModuleDef *module);
+
+static PyObject *
+_ssl_get_default_verify_paths(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ return _ssl_get_default_verify_paths_impl(module);
+}
+
+PyDoc_STRVAR(_ssl_txt2obj__doc__,
+"txt2obj($module, /, txt, name=False)\n"
+"--\n"
+"\n"
+"Lookup NID, short name, long name and OID of an ASN1_OBJECT.\n"
+"\n"
+"By default objects are looked up by OID. With name=True short and\n"
+"long name are also matched.");
+
+#define _SSL_TXT2OBJ_METHODDEF \
+ {"txt2obj", (PyCFunction)_ssl_txt2obj, METH_VARARGS|METH_KEYWORDS, _ssl_txt2obj__doc__},
+
+static PyObject *
+_ssl_txt2obj_impl(PyModuleDef *module, const char *txt, int name);
+
+static PyObject *
+_ssl_txt2obj(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"txt", "name", NULL};
+ const char *txt;
+ int name = 0;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s|p:txt2obj", _keywords,
+ &txt, &name))
+ goto exit;
+ return_value = _ssl_txt2obj_impl(module, txt, name);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_ssl_nid2obj__doc__,
+"nid2obj($module, nid, /)\n"
+"--\n"
+"\n"
+"Lookup NID, short name, long name and OID of an ASN1_OBJECT by NID.");
+
+#define _SSL_NID2OBJ_METHODDEF \
+ {"nid2obj", (PyCFunction)_ssl_nid2obj, METH_O, _ssl_nid2obj__doc__},
+
+static PyObject *
+_ssl_nid2obj_impl(PyModuleDef *module, int nid);
+
+static PyObject *
+_ssl_nid2obj(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int nid;
+
+ if (!PyArg_Parse(arg, "i:nid2obj", &nid))
+ goto exit;
+ return_value = _ssl_nid2obj_impl(module, nid);
+
+exit:
+ return return_value;
+}
+
+#if defined(_MSC_VER)
+
+PyDoc_STRVAR(_ssl_enum_certificates__doc__,
+"enum_certificates($module, /, store_name)\n"
+"--\n"
+"\n"
+"Retrieve certificates from Windows\' cert store.\n"
+"\n"
+"store_name may be one of \'CA\', \'ROOT\' or \'MY\'. The system may provide\n"
+"more cert storages, too. The function returns a list of (bytes,\n"
+"encoding_type, trust) tuples. The encoding_type flag can be interpreted\n"
+"with X509_ASN_ENCODING or PKCS_7_ASN_ENCODING. The trust setting is either\n"
+"a set of OIDs or the boolean True.");
+
+#define _SSL_ENUM_CERTIFICATES_METHODDEF \
+ {"enum_certificates", (PyCFunction)_ssl_enum_certificates, METH_VARARGS|METH_KEYWORDS, _ssl_enum_certificates__doc__},
+
+static PyObject *
+_ssl_enum_certificates_impl(PyModuleDef *module, const char *store_name);
+
+static PyObject *
+_ssl_enum_certificates(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"store_name", NULL};
+ const char *store_name;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s:enum_certificates", _keywords,
+ &store_name))
+ goto exit;
+ return_value = _ssl_enum_certificates_impl(module, store_name);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(_MSC_VER) */
+
+#if defined(_MSC_VER)
+
+PyDoc_STRVAR(_ssl_enum_crls__doc__,
+"enum_crls($module, /, store_name)\n"
+"--\n"
+"\n"
+"Retrieve CRLs from Windows\' cert store.\n"
+"\n"
+"store_name may be one of \'CA\', \'ROOT\' or \'MY\'. The system may provide\n"
+"more cert storages, too. The function returns a list of (bytes,\n"
+"encoding_type) tuples. The encoding_type flag can be interpreted with\n"
+"X509_ASN_ENCODING or PKCS_7_ASN_ENCODING.");
+
+#define _SSL_ENUM_CRLS_METHODDEF \
+ {"enum_crls", (PyCFunction)_ssl_enum_crls, METH_VARARGS|METH_KEYWORDS, _ssl_enum_crls__doc__},
+
+static PyObject *
+_ssl_enum_crls_impl(PyModuleDef *module, const char *store_name);
+
+static PyObject *
+_ssl_enum_crls(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"store_name", NULL};
+ const char *store_name;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s:enum_crls", _keywords,
+ &store_name))
+ goto exit;
+ return_value = _ssl_enum_crls_impl(module, store_name);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(_MSC_VER) */
+
+#ifndef _SSL__SSLSOCKET_SELECTED_NPN_PROTOCOL_METHODDEF
+ #define _SSL__SSLSOCKET_SELECTED_NPN_PROTOCOL_METHODDEF
+#endif /* !defined(_SSL__SSLSOCKET_SELECTED_NPN_PROTOCOL_METHODDEF) */
+
+#ifndef _SSL__SSLSOCKET_SELECTED_ALPN_PROTOCOL_METHODDEF
+ #define _SSL__SSLSOCKET_SELECTED_ALPN_PROTOCOL_METHODDEF
+#endif /* !defined(_SSL__SSLSOCKET_SELECTED_ALPN_PROTOCOL_METHODDEF) */
+
+#ifndef _SSL__SSLCONTEXT_SET_ECDH_CURVE_METHODDEF
+ #define _SSL__SSLCONTEXT_SET_ECDH_CURVE_METHODDEF
+#endif /* !defined(_SSL__SSLCONTEXT_SET_ECDH_CURVE_METHODDEF) */
+
+#ifndef _SSL_RAND_EGD_METHODDEF
+ #define _SSL_RAND_EGD_METHODDEF
+#endif /* !defined(_SSL_RAND_EGD_METHODDEF) */
+
+#ifndef _SSL_ENUM_CERTIFICATES_METHODDEF
+ #define _SSL_ENUM_CERTIFICATES_METHODDEF
+#endif /* !defined(_SSL_ENUM_CERTIFICATES_METHODDEF) */
+
+#ifndef _SSL_ENUM_CRLS_METHODDEF
+ #define _SSL_ENUM_CRLS_METHODDEF
+#endif /* !defined(_SSL_ENUM_CRLS_METHODDEF) */
+/*[clinic end generated code: output=a14999cb565a69a2 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_tkinter.c.h b/Modules/clinic/_tkinter.c.h
new file mode 100644
index 0000000000..7917dec9c4
--- /dev/null
+++ b/Modules/clinic/_tkinter.c.h
@@ -0,0 +1,624 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(_tkinter_tkapp_eval__doc__,
+"eval($self, script, /)\n"
+"--\n"
+"\n");
+
+#define _TKINTER_TKAPP_EVAL_METHODDEF \
+ {"eval", (PyCFunction)_tkinter_tkapp_eval, METH_O, _tkinter_tkapp_eval__doc__},
+
+static PyObject *
+_tkinter_tkapp_eval_impl(TkappObject *self, const char *script);
+
+static PyObject *
+_tkinter_tkapp_eval(TkappObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ const char *script;
+
+ if (!PyArg_Parse(arg, "s:eval", &script))
+ goto exit;
+ return_value = _tkinter_tkapp_eval_impl(self, script);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_tkinter_tkapp_evalfile__doc__,
+"evalfile($self, fileName, /)\n"
+"--\n"
+"\n");
+
+#define _TKINTER_TKAPP_EVALFILE_METHODDEF \
+ {"evalfile", (PyCFunction)_tkinter_tkapp_evalfile, METH_O, _tkinter_tkapp_evalfile__doc__},
+
+static PyObject *
+_tkinter_tkapp_evalfile_impl(TkappObject *self, const char *fileName);
+
+static PyObject *
+_tkinter_tkapp_evalfile(TkappObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ const char *fileName;
+
+ if (!PyArg_Parse(arg, "s:evalfile", &fileName))
+ goto exit;
+ return_value = _tkinter_tkapp_evalfile_impl(self, fileName);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_tkinter_tkapp_record__doc__,
+"record($self, script, /)\n"
+"--\n"
+"\n");
+
+#define _TKINTER_TKAPP_RECORD_METHODDEF \
+ {"record", (PyCFunction)_tkinter_tkapp_record, METH_O, _tkinter_tkapp_record__doc__},
+
+static PyObject *
+_tkinter_tkapp_record_impl(TkappObject *self, const char *script);
+
+static PyObject *
+_tkinter_tkapp_record(TkappObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ const char *script;
+
+ if (!PyArg_Parse(arg, "s:record", &script))
+ goto exit;
+ return_value = _tkinter_tkapp_record_impl(self, script);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_tkinter_tkapp_adderrinfo__doc__,
+"adderrinfo($self, msg, /)\n"
+"--\n"
+"\n");
+
+#define _TKINTER_TKAPP_ADDERRINFO_METHODDEF \
+ {"adderrinfo", (PyCFunction)_tkinter_tkapp_adderrinfo, METH_O, _tkinter_tkapp_adderrinfo__doc__},
+
+static PyObject *
+_tkinter_tkapp_adderrinfo_impl(TkappObject *self, const char *msg);
+
+static PyObject *
+_tkinter_tkapp_adderrinfo(TkappObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ const char *msg;
+
+ if (!PyArg_Parse(arg, "s:adderrinfo", &msg))
+ goto exit;
+ return_value = _tkinter_tkapp_adderrinfo_impl(self, msg);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_tkinter_tkapp_getint__doc__,
+"getint($self, arg, /)\n"
+"--\n"
+"\n");
+
+#define _TKINTER_TKAPP_GETINT_METHODDEF \
+ {"getint", (PyCFunction)_tkinter_tkapp_getint, METH_O, _tkinter_tkapp_getint__doc__},
+
+PyDoc_STRVAR(_tkinter_tkapp_getdouble__doc__,
+"getdouble($self, arg, /)\n"
+"--\n"
+"\n");
+
+#define _TKINTER_TKAPP_GETDOUBLE_METHODDEF \
+ {"getdouble", (PyCFunction)_tkinter_tkapp_getdouble, METH_O, _tkinter_tkapp_getdouble__doc__},
+
+PyDoc_STRVAR(_tkinter_tkapp_getboolean__doc__,
+"getboolean($self, arg, /)\n"
+"--\n"
+"\n");
+
+#define _TKINTER_TKAPP_GETBOOLEAN_METHODDEF \
+ {"getboolean", (PyCFunction)_tkinter_tkapp_getboolean, METH_O, _tkinter_tkapp_getboolean__doc__},
+
+PyDoc_STRVAR(_tkinter_tkapp_exprstring__doc__,
+"exprstring($self, s, /)\n"
+"--\n"
+"\n");
+
+#define _TKINTER_TKAPP_EXPRSTRING_METHODDEF \
+ {"exprstring", (PyCFunction)_tkinter_tkapp_exprstring, METH_O, _tkinter_tkapp_exprstring__doc__},
+
+static PyObject *
+_tkinter_tkapp_exprstring_impl(TkappObject *self, const char *s);
+
+static PyObject *
+_tkinter_tkapp_exprstring(TkappObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ const char *s;
+
+ if (!PyArg_Parse(arg, "s:exprstring", &s))
+ goto exit;
+ return_value = _tkinter_tkapp_exprstring_impl(self, s);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_tkinter_tkapp_exprlong__doc__,
+"exprlong($self, s, /)\n"
+"--\n"
+"\n");
+
+#define _TKINTER_TKAPP_EXPRLONG_METHODDEF \
+ {"exprlong", (PyCFunction)_tkinter_tkapp_exprlong, METH_O, _tkinter_tkapp_exprlong__doc__},
+
+static PyObject *
+_tkinter_tkapp_exprlong_impl(TkappObject *self, const char *s);
+
+static PyObject *
+_tkinter_tkapp_exprlong(TkappObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ const char *s;
+
+ if (!PyArg_Parse(arg, "s:exprlong", &s))
+ goto exit;
+ return_value = _tkinter_tkapp_exprlong_impl(self, s);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_tkinter_tkapp_exprdouble__doc__,
+"exprdouble($self, s, /)\n"
+"--\n"
+"\n");
+
+#define _TKINTER_TKAPP_EXPRDOUBLE_METHODDEF \
+ {"exprdouble", (PyCFunction)_tkinter_tkapp_exprdouble, METH_O, _tkinter_tkapp_exprdouble__doc__},
+
+static PyObject *
+_tkinter_tkapp_exprdouble_impl(TkappObject *self, const char *s);
+
+static PyObject *
+_tkinter_tkapp_exprdouble(TkappObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ const char *s;
+
+ if (!PyArg_Parse(arg, "s:exprdouble", &s))
+ goto exit;
+ return_value = _tkinter_tkapp_exprdouble_impl(self, s);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_tkinter_tkapp_exprboolean__doc__,
+"exprboolean($self, s, /)\n"
+"--\n"
+"\n");
+
+#define _TKINTER_TKAPP_EXPRBOOLEAN_METHODDEF \
+ {"exprboolean", (PyCFunction)_tkinter_tkapp_exprboolean, METH_O, _tkinter_tkapp_exprboolean__doc__},
+
+static PyObject *
+_tkinter_tkapp_exprboolean_impl(TkappObject *self, const char *s);
+
+static PyObject *
+_tkinter_tkapp_exprboolean(TkappObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ const char *s;
+
+ if (!PyArg_Parse(arg, "s:exprboolean", &s))
+ goto exit;
+ return_value = _tkinter_tkapp_exprboolean_impl(self, s);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_tkinter_tkapp_splitlist__doc__,
+"splitlist($self, arg, /)\n"
+"--\n"
+"\n");
+
+#define _TKINTER_TKAPP_SPLITLIST_METHODDEF \
+ {"splitlist", (PyCFunction)_tkinter_tkapp_splitlist, METH_O, _tkinter_tkapp_splitlist__doc__},
+
+PyDoc_STRVAR(_tkinter_tkapp_split__doc__,
+"split($self, arg, /)\n"
+"--\n"
+"\n");
+
+#define _TKINTER_TKAPP_SPLIT_METHODDEF \
+ {"split", (PyCFunction)_tkinter_tkapp_split, METH_O, _tkinter_tkapp_split__doc__},
+
+PyDoc_STRVAR(_tkinter_tkapp_createcommand__doc__,
+"createcommand($self, name, func, /)\n"
+"--\n"
+"\n");
+
+#define _TKINTER_TKAPP_CREATECOMMAND_METHODDEF \
+ {"createcommand", (PyCFunction)_tkinter_tkapp_createcommand, METH_VARARGS, _tkinter_tkapp_createcommand__doc__},
+
+static PyObject *
+_tkinter_tkapp_createcommand_impl(TkappObject *self, const char *name,
+ PyObject *func);
+
+static PyObject *
+_tkinter_tkapp_createcommand(TkappObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ const char *name;
+ PyObject *func;
+
+ if (!PyArg_ParseTuple(args, "sO:createcommand",
+ &name, &func))
+ goto exit;
+ return_value = _tkinter_tkapp_createcommand_impl(self, name, func);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_tkinter_tkapp_deletecommand__doc__,
+"deletecommand($self, name, /)\n"
+"--\n"
+"\n");
+
+#define _TKINTER_TKAPP_DELETECOMMAND_METHODDEF \
+ {"deletecommand", (PyCFunction)_tkinter_tkapp_deletecommand, METH_O, _tkinter_tkapp_deletecommand__doc__},
+
+static PyObject *
+_tkinter_tkapp_deletecommand_impl(TkappObject *self, const char *name);
+
+static PyObject *
+_tkinter_tkapp_deletecommand(TkappObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ const char *name;
+
+ if (!PyArg_Parse(arg, "s:deletecommand", &name))
+ goto exit;
+ return_value = _tkinter_tkapp_deletecommand_impl(self, name);
+
+exit:
+ return return_value;
+}
+
+#if defined(HAVE_CREATEFILEHANDLER)
+
+PyDoc_STRVAR(_tkinter_tkapp_createfilehandler__doc__,
+"createfilehandler($self, file, mask, func, /)\n"
+"--\n"
+"\n");
+
+#define _TKINTER_TKAPP_CREATEFILEHANDLER_METHODDEF \
+ {"createfilehandler", (PyCFunction)_tkinter_tkapp_createfilehandler, METH_VARARGS, _tkinter_tkapp_createfilehandler__doc__},
+
+static PyObject *
+_tkinter_tkapp_createfilehandler_impl(TkappObject *self, PyObject *file,
+ int mask, PyObject *func);
+
+static PyObject *
+_tkinter_tkapp_createfilehandler(TkappObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *file;
+ int mask;
+ PyObject *func;
+
+ if (!PyArg_ParseTuple(args, "OiO:createfilehandler",
+ &file, &mask, &func))
+ goto exit;
+ return_value = _tkinter_tkapp_createfilehandler_impl(self, file, mask, func);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_CREATEFILEHANDLER) */
+
+#if defined(HAVE_CREATEFILEHANDLER)
+
+PyDoc_STRVAR(_tkinter_tkapp_deletefilehandler__doc__,
+"deletefilehandler($self, file, /)\n"
+"--\n"
+"\n");
+
+#define _TKINTER_TKAPP_DELETEFILEHANDLER_METHODDEF \
+ {"deletefilehandler", (PyCFunction)_tkinter_tkapp_deletefilehandler, METH_O, _tkinter_tkapp_deletefilehandler__doc__},
+
+#endif /* defined(HAVE_CREATEFILEHANDLER) */
+
+PyDoc_STRVAR(_tkinter_tktimertoken_deletetimerhandler__doc__,
+"deletetimerhandler($self, /)\n"
+"--\n"
+"\n");
+
+#define _TKINTER_TKTIMERTOKEN_DELETETIMERHANDLER_METHODDEF \
+ {"deletetimerhandler", (PyCFunction)_tkinter_tktimertoken_deletetimerhandler, METH_NOARGS, _tkinter_tktimertoken_deletetimerhandler__doc__},
+
+static PyObject *
+_tkinter_tktimertoken_deletetimerhandler_impl(TkttObject *self);
+
+static PyObject *
+_tkinter_tktimertoken_deletetimerhandler(TkttObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _tkinter_tktimertoken_deletetimerhandler_impl(self);
+}
+
+PyDoc_STRVAR(_tkinter_tkapp_createtimerhandler__doc__,
+"createtimerhandler($self, milliseconds, func, /)\n"
+"--\n"
+"\n");
+
+#define _TKINTER_TKAPP_CREATETIMERHANDLER_METHODDEF \
+ {"createtimerhandler", (PyCFunction)_tkinter_tkapp_createtimerhandler, METH_VARARGS, _tkinter_tkapp_createtimerhandler__doc__},
+
+static PyObject *
+_tkinter_tkapp_createtimerhandler_impl(TkappObject *self, int milliseconds,
+ PyObject *func);
+
+static PyObject *
+_tkinter_tkapp_createtimerhandler(TkappObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int milliseconds;
+ PyObject *func;
+
+ if (!PyArg_ParseTuple(args, "iO:createtimerhandler",
+ &milliseconds, &func))
+ goto exit;
+ return_value = _tkinter_tkapp_createtimerhandler_impl(self, milliseconds, func);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_tkinter_tkapp_mainloop__doc__,
+"mainloop($self, threshold=0, /)\n"
+"--\n"
+"\n");
+
+#define _TKINTER_TKAPP_MAINLOOP_METHODDEF \
+ {"mainloop", (PyCFunction)_tkinter_tkapp_mainloop, METH_VARARGS, _tkinter_tkapp_mainloop__doc__},
+
+static PyObject *
+_tkinter_tkapp_mainloop_impl(TkappObject *self, int threshold);
+
+static PyObject *
+_tkinter_tkapp_mainloop(TkappObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int threshold = 0;
+
+ if (!PyArg_ParseTuple(args, "|i:mainloop",
+ &threshold))
+ goto exit;
+ return_value = _tkinter_tkapp_mainloop_impl(self, threshold);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_tkinter_tkapp_dooneevent__doc__,
+"dooneevent($self, flags=0, /)\n"
+"--\n"
+"\n");
+
+#define _TKINTER_TKAPP_DOONEEVENT_METHODDEF \
+ {"dooneevent", (PyCFunction)_tkinter_tkapp_dooneevent, METH_VARARGS, _tkinter_tkapp_dooneevent__doc__},
+
+static PyObject *
+_tkinter_tkapp_dooneevent_impl(TkappObject *self, int flags);
+
+static PyObject *
+_tkinter_tkapp_dooneevent(TkappObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int flags = 0;
+
+ if (!PyArg_ParseTuple(args, "|i:dooneevent",
+ &flags))
+ goto exit;
+ return_value = _tkinter_tkapp_dooneevent_impl(self, flags);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_tkinter_tkapp_quit__doc__,
+"quit($self, /)\n"
+"--\n"
+"\n");
+
+#define _TKINTER_TKAPP_QUIT_METHODDEF \
+ {"quit", (PyCFunction)_tkinter_tkapp_quit, METH_NOARGS, _tkinter_tkapp_quit__doc__},
+
+static PyObject *
+_tkinter_tkapp_quit_impl(TkappObject *self);
+
+static PyObject *
+_tkinter_tkapp_quit(TkappObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _tkinter_tkapp_quit_impl(self);
+}
+
+PyDoc_STRVAR(_tkinter_tkapp_interpaddr__doc__,
+"interpaddr($self, /)\n"
+"--\n"
+"\n");
+
+#define _TKINTER_TKAPP_INTERPADDR_METHODDEF \
+ {"interpaddr", (PyCFunction)_tkinter_tkapp_interpaddr, METH_NOARGS, _tkinter_tkapp_interpaddr__doc__},
+
+static PyObject *
+_tkinter_tkapp_interpaddr_impl(TkappObject *self);
+
+static PyObject *
+_tkinter_tkapp_interpaddr(TkappObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _tkinter_tkapp_interpaddr_impl(self);
+}
+
+PyDoc_STRVAR(_tkinter_tkapp_loadtk__doc__,
+"loadtk($self, /)\n"
+"--\n"
+"\n");
+
+#define _TKINTER_TKAPP_LOADTK_METHODDEF \
+ {"loadtk", (PyCFunction)_tkinter_tkapp_loadtk, METH_NOARGS, _tkinter_tkapp_loadtk__doc__},
+
+static PyObject *
+_tkinter_tkapp_loadtk_impl(TkappObject *self);
+
+static PyObject *
+_tkinter_tkapp_loadtk(TkappObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _tkinter_tkapp_loadtk_impl(self);
+}
+
+PyDoc_STRVAR(_tkinter_tkapp_willdispatch__doc__,
+"willdispatch($self, /)\n"
+"--\n"
+"\n");
+
+#define _TKINTER_TKAPP_WILLDISPATCH_METHODDEF \
+ {"willdispatch", (PyCFunction)_tkinter_tkapp_willdispatch, METH_NOARGS, _tkinter_tkapp_willdispatch__doc__},
+
+static PyObject *
+_tkinter_tkapp_willdispatch_impl(TkappObject *self);
+
+static PyObject *
+_tkinter_tkapp_willdispatch(TkappObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _tkinter_tkapp_willdispatch_impl(self);
+}
+
+PyDoc_STRVAR(_tkinter__flatten__doc__,
+"_flatten($module, item, /)\n"
+"--\n"
+"\n");
+
+#define _TKINTER__FLATTEN_METHODDEF \
+ {"_flatten", (PyCFunction)_tkinter__flatten, METH_O, _tkinter__flatten__doc__},
+
+PyDoc_STRVAR(_tkinter_create__doc__,
+"create($module, screenName=None, baseName=None, className=\'Tk\',\n"
+" interactive=False, wantobjects=False, wantTk=True, sync=False,\n"
+" use=None, /)\n"
+"--\n"
+"\n"
+"\n"
+"\n"
+" wantTk\n"
+" if false, then Tk_Init() doesn\'t get called\n"
+" sync\n"
+" if true, then pass -sync to wish\n"
+" use\n"
+" if not None, then pass -use to wish");
+
+#define _TKINTER_CREATE_METHODDEF \
+ {"create", (PyCFunction)_tkinter_create, METH_VARARGS, _tkinter_create__doc__},
+
+static PyObject *
+_tkinter_create_impl(PyModuleDef *module, const char *screenName,
+ const char *baseName, const char *className,
+ int interactive, int wantobjects, int wantTk, int sync,
+ const char *use);
+
+static PyObject *
+_tkinter_create(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ const char *screenName = NULL;
+ const char *baseName = NULL;
+ const char *className = "Tk";
+ int interactive = 0;
+ int wantobjects = 0;
+ int wantTk = 1;
+ int sync = 0;
+ const char *use = NULL;
+
+ if (!PyArg_ParseTuple(args, "|zssiiiiz:create",
+ &screenName, &baseName, &className, &interactive, &wantobjects, &wantTk, &sync, &use))
+ goto exit;
+ return_value = _tkinter_create_impl(module, screenName, baseName, className, interactive, wantobjects, wantTk, sync, use);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_tkinter_setbusywaitinterval__doc__,
+"setbusywaitinterval($module, new_val, /)\n"
+"--\n"
+"\n"
+"Set the busy-wait interval in milliseconds between successive calls to Tcl_DoOneEvent in a threaded Python interpreter.\n"
+"\n"
+"It should be set to a divisor of the maximum time between frames in an animation.");
+
+#define _TKINTER_SETBUSYWAITINTERVAL_METHODDEF \
+ {"setbusywaitinterval", (PyCFunction)_tkinter_setbusywaitinterval, METH_O, _tkinter_setbusywaitinterval__doc__},
+
+static PyObject *
+_tkinter_setbusywaitinterval_impl(PyModuleDef *module, int new_val);
+
+static PyObject *
+_tkinter_setbusywaitinterval(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int new_val;
+
+ if (!PyArg_Parse(arg, "i:setbusywaitinterval", &new_val))
+ goto exit;
+ return_value = _tkinter_setbusywaitinterval_impl(module, new_val);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_tkinter_getbusywaitinterval__doc__,
+"getbusywaitinterval($module, /)\n"
+"--\n"
+"\n"
+"Return the current busy-wait interval between successive calls to Tcl_DoOneEvent in a threaded Python interpreter.");
+
+#define _TKINTER_GETBUSYWAITINTERVAL_METHODDEF \
+ {"getbusywaitinterval", (PyCFunction)_tkinter_getbusywaitinterval, METH_NOARGS, _tkinter_getbusywaitinterval__doc__},
+
+static int
+_tkinter_getbusywaitinterval_impl(PyModuleDef *module);
+
+static PyObject *
+_tkinter_getbusywaitinterval(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ PyObject *return_value = NULL;
+ int _return_value;
+
+ _return_value = _tkinter_getbusywaitinterval_impl(module);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyLong_FromLong((long)_return_value);
+
+exit:
+ return return_value;
+}
+
+#ifndef _TKINTER_TKAPP_CREATEFILEHANDLER_METHODDEF
+ #define _TKINTER_TKAPP_CREATEFILEHANDLER_METHODDEF
+#endif /* !defined(_TKINTER_TKAPP_CREATEFILEHANDLER_METHODDEF) */
+
+#ifndef _TKINTER_TKAPP_DELETEFILEHANDLER_METHODDEF
+ #define _TKINTER_TKAPP_DELETEFILEHANDLER_METHODDEF
+#endif /* !defined(_TKINTER_TKAPP_DELETEFILEHANDLER_METHODDEF) */
+/*[clinic end generated code: output=6dd667b91cf8addd input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_weakref.c.h b/Modules/clinic/_weakref.c.h
new file mode 100644
index 0000000000..87c701c52f
--- /dev/null
+++ b/Modules/clinic/_weakref.c.h
@@ -0,0 +1,31 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(_weakref_getweakrefcount__doc__,
+"getweakrefcount($module, object, /)\n"
+"--\n"
+"\n"
+"Return the number of weak references to \'object\'.");
+
+#define _WEAKREF_GETWEAKREFCOUNT_METHODDEF \
+ {"getweakrefcount", (PyCFunction)_weakref_getweakrefcount, METH_O, _weakref_getweakrefcount__doc__},
+
+static Py_ssize_t
+_weakref_getweakrefcount_impl(PyModuleDef *module, PyObject *object);
+
+static PyObject *
+_weakref_getweakrefcount(PyModuleDef *module, PyObject *object)
+{
+ PyObject *return_value = NULL;
+ Py_ssize_t _return_value;
+
+ _return_value = _weakref_getweakrefcount_impl(module, object);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyLong_FromSsize_t(_return_value);
+
+exit:
+ return return_value;
+}
+/*[clinic end generated code: output=4da9aade63eed77f input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_winapi.c.h b/Modules/clinic/_winapi.c.h
new file mode 100644
index 0000000000..34518e836b
--- /dev/null
+++ b/Modules/clinic/_winapi.c.h
@@ -0,0 +1,854 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(_winapi_Overlapped_GetOverlappedResult__doc__,
+"GetOverlappedResult($self, wait, /)\n"
+"--\n"
+"\n");
+
+#define _WINAPI_OVERLAPPED_GETOVERLAPPEDRESULT_METHODDEF \
+ {"GetOverlappedResult", (PyCFunction)_winapi_Overlapped_GetOverlappedResult, METH_O, _winapi_Overlapped_GetOverlappedResult__doc__},
+
+static PyObject *
+_winapi_Overlapped_GetOverlappedResult_impl(OverlappedObject *self, int wait);
+
+static PyObject *
+_winapi_Overlapped_GetOverlappedResult(OverlappedObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int wait;
+
+ if (!PyArg_Parse(arg, "p:GetOverlappedResult", &wait))
+ goto exit;
+ return_value = _winapi_Overlapped_GetOverlappedResult_impl(self, wait);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_winapi_Overlapped_getbuffer__doc__,
+"getbuffer($self, /)\n"
+"--\n"
+"\n");
+
+#define _WINAPI_OVERLAPPED_GETBUFFER_METHODDEF \
+ {"getbuffer", (PyCFunction)_winapi_Overlapped_getbuffer, METH_NOARGS, _winapi_Overlapped_getbuffer__doc__},
+
+static PyObject *
+_winapi_Overlapped_getbuffer_impl(OverlappedObject *self);
+
+static PyObject *
+_winapi_Overlapped_getbuffer(OverlappedObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _winapi_Overlapped_getbuffer_impl(self);
+}
+
+PyDoc_STRVAR(_winapi_Overlapped_cancel__doc__,
+"cancel($self, /)\n"
+"--\n"
+"\n");
+
+#define _WINAPI_OVERLAPPED_CANCEL_METHODDEF \
+ {"cancel", (PyCFunction)_winapi_Overlapped_cancel, METH_NOARGS, _winapi_Overlapped_cancel__doc__},
+
+static PyObject *
+_winapi_Overlapped_cancel_impl(OverlappedObject *self);
+
+static PyObject *
+_winapi_Overlapped_cancel(OverlappedObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _winapi_Overlapped_cancel_impl(self);
+}
+
+PyDoc_STRVAR(_winapi_CloseHandle__doc__,
+"CloseHandle($module, handle, /)\n"
+"--\n"
+"\n"
+"Close handle.");
+
+#define _WINAPI_CLOSEHANDLE_METHODDEF \
+ {"CloseHandle", (PyCFunction)_winapi_CloseHandle, METH_O, _winapi_CloseHandle__doc__},
+
+static PyObject *
+_winapi_CloseHandle_impl(PyModuleDef *module, HANDLE handle);
+
+static PyObject *
+_winapi_CloseHandle(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ HANDLE handle;
+
+ if (!PyArg_Parse(arg, "" F_HANDLE ":CloseHandle", &handle))
+ goto exit;
+ return_value = _winapi_CloseHandle_impl(module, handle);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_winapi_ConnectNamedPipe__doc__,
+"ConnectNamedPipe($module, /, handle, overlapped=False)\n"
+"--\n"
+"\n");
+
+#define _WINAPI_CONNECTNAMEDPIPE_METHODDEF \
+ {"ConnectNamedPipe", (PyCFunction)_winapi_ConnectNamedPipe, METH_VARARGS|METH_KEYWORDS, _winapi_ConnectNamedPipe__doc__},
+
+static PyObject *
+_winapi_ConnectNamedPipe_impl(PyModuleDef *module, HANDLE handle,
+ int use_overlapped);
+
+static PyObject *
+_winapi_ConnectNamedPipe(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"handle", "overlapped", NULL};
+ HANDLE handle;
+ int use_overlapped = 0;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "" F_HANDLE "|i:ConnectNamedPipe", _keywords,
+ &handle, &use_overlapped))
+ goto exit;
+ return_value = _winapi_ConnectNamedPipe_impl(module, handle, use_overlapped);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_winapi_CreateFile__doc__,
+"CreateFile($module, file_name, desired_access, share_mode,\n"
+" security_attributes, creation_disposition,\n"
+" flags_and_attributes, template_file, /)\n"
+"--\n"
+"\n");
+
+#define _WINAPI_CREATEFILE_METHODDEF \
+ {"CreateFile", (PyCFunction)_winapi_CreateFile, METH_VARARGS, _winapi_CreateFile__doc__},
+
+static HANDLE
+_winapi_CreateFile_impl(PyModuleDef *module, LPCTSTR file_name,
+ DWORD desired_access, DWORD share_mode,
+ LPSECURITY_ATTRIBUTES security_attributes,
+ DWORD creation_disposition,
+ DWORD flags_and_attributes, HANDLE template_file);
+
+static PyObject *
+_winapi_CreateFile(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ LPCTSTR file_name;
+ DWORD desired_access;
+ DWORD share_mode;
+ LPSECURITY_ATTRIBUTES security_attributes;
+ DWORD creation_disposition;
+ DWORD flags_and_attributes;
+ HANDLE template_file;
+ HANDLE _return_value;
+
+ if (!PyArg_ParseTuple(args, "skk" F_POINTER "kk" F_HANDLE ":CreateFile",
+ &file_name, &desired_access, &share_mode, &security_attributes, &creation_disposition, &flags_and_attributes, &template_file))
+ goto exit;
+ _return_value = _winapi_CreateFile_impl(module, file_name, desired_access, share_mode, security_attributes, creation_disposition, flags_and_attributes, template_file);
+ if ((_return_value == INVALID_HANDLE_VALUE) && PyErr_Occurred())
+ goto exit;
+ if (_return_value == NULL)
+ Py_RETURN_NONE;
+ return_value = HANDLE_TO_PYNUM(_return_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_winapi_CreateJunction__doc__,
+"CreateJunction($module, src_path, dst_path, /)\n"
+"--\n"
+"\n");
+
+#define _WINAPI_CREATEJUNCTION_METHODDEF \
+ {"CreateJunction", (PyCFunction)_winapi_CreateJunction, METH_VARARGS, _winapi_CreateJunction__doc__},
+
+static PyObject *
+_winapi_CreateJunction_impl(PyModuleDef *module, LPWSTR src_path,
+ LPWSTR dst_path);
+
+static PyObject *
+_winapi_CreateJunction(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ LPWSTR src_path;
+ LPWSTR dst_path;
+
+ if (!PyArg_ParseTuple(args, "uu:CreateJunction",
+ &src_path, &dst_path))
+ goto exit;
+ return_value = _winapi_CreateJunction_impl(module, src_path, dst_path);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_winapi_CreateNamedPipe__doc__,
+"CreateNamedPipe($module, name, open_mode, pipe_mode, max_instances,\n"
+" out_buffer_size, in_buffer_size, default_timeout,\n"
+" security_attributes, /)\n"
+"--\n"
+"\n");
+
+#define _WINAPI_CREATENAMEDPIPE_METHODDEF \
+ {"CreateNamedPipe", (PyCFunction)_winapi_CreateNamedPipe, METH_VARARGS, _winapi_CreateNamedPipe__doc__},
+
+static HANDLE
+_winapi_CreateNamedPipe_impl(PyModuleDef *module, LPCTSTR name,
+ DWORD open_mode, DWORD pipe_mode,
+ DWORD max_instances, DWORD out_buffer_size,
+ DWORD in_buffer_size, DWORD default_timeout,
+ LPSECURITY_ATTRIBUTES security_attributes);
+
+static PyObject *
+_winapi_CreateNamedPipe(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ LPCTSTR name;
+ DWORD open_mode;
+ DWORD pipe_mode;
+ DWORD max_instances;
+ DWORD out_buffer_size;
+ DWORD in_buffer_size;
+ DWORD default_timeout;
+ LPSECURITY_ATTRIBUTES security_attributes;
+ HANDLE _return_value;
+
+ if (!PyArg_ParseTuple(args, "skkkkkk" F_POINTER ":CreateNamedPipe",
+ &name, &open_mode, &pipe_mode, &max_instances, &out_buffer_size, &in_buffer_size, &default_timeout, &security_attributes))
+ goto exit;
+ _return_value = _winapi_CreateNamedPipe_impl(module, name, open_mode, pipe_mode, max_instances, out_buffer_size, in_buffer_size, default_timeout, security_attributes);
+ if ((_return_value == INVALID_HANDLE_VALUE) && PyErr_Occurred())
+ goto exit;
+ if (_return_value == NULL)
+ Py_RETURN_NONE;
+ return_value = HANDLE_TO_PYNUM(_return_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_winapi_CreatePipe__doc__,
+"CreatePipe($module, pipe_attrs, size, /)\n"
+"--\n"
+"\n"
+"Create an anonymous pipe.\n"
+"\n"
+" pipe_attrs\n"
+" Ignored internally, can be None.\n"
+"\n"
+"Returns a 2-tuple of handles, to the read and write ends of the pipe.");
+
+#define _WINAPI_CREATEPIPE_METHODDEF \
+ {"CreatePipe", (PyCFunction)_winapi_CreatePipe, METH_VARARGS, _winapi_CreatePipe__doc__},
+
+static PyObject *
+_winapi_CreatePipe_impl(PyModuleDef *module, PyObject *pipe_attrs,
+ DWORD size);
+
+static PyObject *
+_winapi_CreatePipe(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *pipe_attrs;
+ DWORD size;
+
+ if (!PyArg_ParseTuple(args, "Ok:CreatePipe",
+ &pipe_attrs, &size))
+ goto exit;
+ return_value = _winapi_CreatePipe_impl(module, pipe_attrs, size);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_winapi_CreateProcess__doc__,
+"CreateProcess($module, application_name, command_line, proc_attrs,\n"
+" thread_attrs, inherit_handles, creation_flags,\n"
+" env_mapping, current_directory, startup_info, /)\n"
+"--\n"
+"\n"
+"Create a new process and its primary thread.\n"
+"\n"
+" proc_attrs\n"
+" Ignored internally, can be None.\n"
+" thread_attrs\n"
+" Ignored internally, can be None.\n"
+"\n"
+"The return value is a tuple of the process handle, thread handle,\n"
+"process ID, and thread ID.");
+
+#define _WINAPI_CREATEPROCESS_METHODDEF \
+ {"CreateProcess", (PyCFunction)_winapi_CreateProcess, METH_VARARGS, _winapi_CreateProcess__doc__},
+
+static PyObject *
+_winapi_CreateProcess_impl(PyModuleDef *module, Py_UNICODE *application_name,
+ Py_UNICODE *command_line, PyObject *proc_attrs,
+ PyObject *thread_attrs, BOOL inherit_handles,
+ DWORD creation_flags, PyObject *env_mapping,
+ Py_UNICODE *current_directory,
+ PyObject *startup_info);
+
+static PyObject *
+_winapi_CreateProcess(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_UNICODE *application_name;
+ Py_UNICODE *command_line;
+ PyObject *proc_attrs;
+ PyObject *thread_attrs;
+ BOOL inherit_handles;
+ DWORD creation_flags;
+ PyObject *env_mapping;
+ Py_UNICODE *current_directory;
+ PyObject *startup_info;
+
+ if (!PyArg_ParseTuple(args, "ZZOOikOZO:CreateProcess",
+ &application_name, &command_line, &proc_attrs, &thread_attrs, &inherit_handles, &creation_flags, &env_mapping, &current_directory, &startup_info))
+ goto exit;
+ return_value = _winapi_CreateProcess_impl(module, application_name, command_line, proc_attrs, thread_attrs, inherit_handles, creation_flags, env_mapping, current_directory, startup_info);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_winapi_DuplicateHandle__doc__,
+"DuplicateHandle($module, source_process_handle, source_handle,\n"
+" target_process_handle, desired_access, inherit_handle,\n"
+" options=0, /)\n"
+"--\n"
+"\n"
+"Return a duplicate handle object.\n"
+"\n"
+"The duplicate handle refers to the same object as the original\n"
+"handle. Therefore, any changes to the object are reflected\n"
+"through both handles.");
+
+#define _WINAPI_DUPLICATEHANDLE_METHODDEF \
+ {"DuplicateHandle", (PyCFunction)_winapi_DuplicateHandle, METH_VARARGS, _winapi_DuplicateHandle__doc__},
+
+static HANDLE
+_winapi_DuplicateHandle_impl(PyModuleDef *module,
+ HANDLE source_process_handle,
+ HANDLE source_handle,
+ HANDLE target_process_handle,
+ DWORD desired_access, BOOL inherit_handle,
+ DWORD options);
+
+static PyObject *
+_winapi_DuplicateHandle(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ HANDLE source_process_handle;
+ HANDLE source_handle;
+ HANDLE target_process_handle;
+ DWORD desired_access;
+ BOOL inherit_handle;
+ DWORD options = 0;
+ HANDLE _return_value;
+
+ if (!PyArg_ParseTuple(args, "" F_HANDLE "" F_HANDLE "" F_HANDLE "ki|k:DuplicateHandle",
+ &source_process_handle, &source_handle, &target_process_handle, &desired_access, &inherit_handle, &options))
+ goto exit;
+ _return_value = _winapi_DuplicateHandle_impl(module, source_process_handle, source_handle, target_process_handle, desired_access, inherit_handle, options);
+ if ((_return_value == INVALID_HANDLE_VALUE) && PyErr_Occurred())
+ goto exit;
+ if (_return_value == NULL)
+ Py_RETURN_NONE;
+ return_value = HANDLE_TO_PYNUM(_return_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_winapi_ExitProcess__doc__,
+"ExitProcess($module, ExitCode, /)\n"
+"--\n"
+"\n");
+
+#define _WINAPI_EXITPROCESS_METHODDEF \
+ {"ExitProcess", (PyCFunction)_winapi_ExitProcess, METH_O, _winapi_ExitProcess__doc__},
+
+static PyObject *
+_winapi_ExitProcess_impl(PyModuleDef *module, UINT ExitCode);
+
+static PyObject *
+_winapi_ExitProcess(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ UINT ExitCode;
+
+ if (!PyArg_Parse(arg, "I:ExitProcess", &ExitCode))
+ goto exit;
+ return_value = _winapi_ExitProcess_impl(module, ExitCode);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_winapi_GetCurrentProcess__doc__,
+"GetCurrentProcess($module, /)\n"
+"--\n"
+"\n"
+"Return a handle object for the current process.");
+
+#define _WINAPI_GETCURRENTPROCESS_METHODDEF \
+ {"GetCurrentProcess", (PyCFunction)_winapi_GetCurrentProcess, METH_NOARGS, _winapi_GetCurrentProcess__doc__},
+
+static HANDLE
+_winapi_GetCurrentProcess_impl(PyModuleDef *module);
+
+static PyObject *
+_winapi_GetCurrentProcess(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ PyObject *return_value = NULL;
+ HANDLE _return_value;
+
+ _return_value = _winapi_GetCurrentProcess_impl(module);
+ if ((_return_value == INVALID_HANDLE_VALUE) && PyErr_Occurred())
+ goto exit;
+ if (_return_value == NULL)
+ Py_RETURN_NONE;
+ return_value = HANDLE_TO_PYNUM(_return_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_winapi_GetExitCodeProcess__doc__,
+"GetExitCodeProcess($module, process, /)\n"
+"--\n"
+"\n"
+"Return the termination status of the specified process.");
+
+#define _WINAPI_GETEXITCODEPROCESS_METHODDEF \
+ {"GetExitCodeProcess", (PyCFunction)_winapi_GetExitCodeProcess, METH_O, _winapi_GetExitCodeProcess__doc__},
+
+static DWORD
+_winapi_GetExitCodeProcess_impl(PyModuleDef *module, HANDLE process);
+
+static PyObject *
+_winapi_GetExitCodeProcess(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ HANDLE process;
+ DWORD _return_value;
+
+ if (!PyArg_Parse(arg, "" F_HANDLE ":GetExitCodeProcess", &process))
+ goto exit;
+ _return_value = _winapi_GetExitCodeProcess_impl(module, process);
+ if ((_return_value == DWORD_MAX) && PyErr_Occurred())
+ goto exit;
+ return_value = Py_BuildValue("k", _return_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_winapi_GetLastError__doc__,
+"GetLastError($module, /)\n"
+"--\n"
+"\n");
+
+#define _WINAPI_GETLASTERROR_METHODDEF \
+ {"GetLastError", (PyCFunction)_winapi_GetLastError, METH_NOARGS, _winapi_GetLastError__doc__},
+
+static DWORD
+_winapi_GetLastError_impl(PyModuleDef *module);
+
+static PyObject *
+_winapi_GetLastError(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ PyObject *return_value = NULL;
+ DWORD _return_value;
+
+ _return_value = _winapi_GetLastError_impl(module);
+ if ((_return_value == DWORD_MAX) && PyErr_Occurred())
+ goto exit;
+ return_value = Py_BuildValue("k", _return_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_winapi_GetModuleFileName__doc__,
+"GetModuleFileName($module, module_handle, /)\n"
+"--\n"
+"\n"
+"Return the fully-qualified path for the file that contains module.\n"
+"\n"
+"The module must have been loaded by the current process.\n"
+"\n"
+"The module parameter should be a handle to the loaded module\n"
+"whose path is being requested. If this parameter is 0,\n"
+"GetModuleFileName retrieves the path of the executable file\n"
+"of the current process.");
+
+#define _WINAPI_GETMODULEFILENAME_METHODDEF \
+ {"GetModuleFileName", (PyCFunction)_winapi_GetModuleFileName, METH_O, _winapi_GetModuleFileName__doc__},
+
+static PyObject *
+_winapi_GetModuleFileName_impl(PyModuleDef *module, HMODULE module_handle);
+
+static PyObject *
+_winapi_GetModuleFileName(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ HMODULE module_handle;
+
+ if (!PyArg_Parse(arg, "" F_HANDLE ":GetModuleFileName", &module_handle))
+ goto exit;
+ return_value = _winapi_GetModuleFileName_impl(module, module_handle);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_winapi_GetStdHandle__doc__,
+"GetStdHandle($module, std_handle, /)\n"
+"--\n"
+"\n"
+"Return a handle to the specified standard device.\n"
+"\n"
+" std_handle\n"
+" One of STD_INPUT_HANDLE, STD_OUTPUT_HANDLE, or STD_ERROR_HANDLE.\n"
+"\n"
+"The integer associated with the handle object is returned.");
+
+#define _WINAPI_GETSTDHANDLE_METHODDEF \
+ {"GetStdHandle", (PyCFunction)_winapi_GetStdHandle, METH_O, _winapi_GetStdHandle__doc__},
+
+static HANDLE
+_winapi_GetStdHandle_impl(PyModuleDef *module, DWORD std_handle);
+
+static PyObject *
+_winapi_GetStdHandle(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ DWORD std_handle;
+ HANDLE _return_value;
+
+ if (!PyArg_Parse(arg, "k:GetStdHandle", &std_handle))
+ goto exit;
+ _return_value = _winapi_GetStdHandle_impl(module, std_handle);
+ if ((_return_value == INVALID_HANDLE_VALUE) && PyErr_Occurred())
+ goto exit;
+ if (_return_value == NULL)
+ Py_RETURN_NONE;
+ return_value = HANDLE_TO_PYNUM(_return_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_winapi_GetVersion__doc__,
+"GetVersion($module, /)\n"
+"--\n"
+"\n"
+"Return the version number of the current operating system.");
+
+#define _WINAPI_GETVERSION_METHODDEF \
+ {"GetVersion", (PyCFunction)_winapi_GetVersion, METH_NOARGS, _winapi_GetVersion__doc__},
+
+static long
+_winapi_GetVersion_impl(PyModuleDef *module);
+
+static PyObject *
+_winapi_GetVersion(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ PyObject *return_value = NULL;
+ long _return_value;
+
+ _return_value = _winapi_GetVersion_impl(module);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyLong_FromLong(_return_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_winapi_OpenProcess__doc__,
+"OpenProcess($module, desired_access, inherit_handle, process_id, /)\n"
+"--\n"
+"\n");
+
+#define _WINAPI_OPENPROCESS_METHODDEF \
+ {"OpenProcess", (PyCFunction)_winapi_OpenProcess, METH_VARARGS, _winapi_OpenProcess__doc__},
+
+static HANDLE
+_winapi_OpenProcess_impl(PyModuleDef *module, DWORD desired_access,
+ BOOL inherit_handle, DWORD process_id);
+
+static PyObject *
+_winapi_OpenProcess(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ DWORD desired_access;
+ BOOL inherit_handle;
+ DWORD process_id;
+ HANDLE _return_value;
+
+ if (!PyArg_ParseTuple(args, "kik:OpenProcess",
+ &desired_access, &inherit_handle, &process_id))
+ goto exit;
+ _return_value = _winapi_OpenProcess_impl(module, desired_access, inherit_handle, process_id);
+ if ((_return_value == INVALID_HANDLE_VALUE) && PyErr_Occurred())
+ goto exit;
+ if (_return_value == NULL)
+ Py_RETURN_NONE;
+ return_value = HANDLE_TO_PYNUM(_return_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_winapi_PeekNamedPipe__doc__,
+"PeekNamedPipe($module, handle, size=0, /)\n"
+"--\n"
+"\n");
+
+#define _WINAPI_PEEKNAMEDPIPE_METHODDEF \
+ {"PeekNamedPipe", (PyCFunction)_winapi_PeekNamedPipe, METH_VARARGS, _winapi_PeekNamedPipe__doc__},
+
+static PyObject *
+_winapi_PeekNamedPipe_impl(PyModuleDef *module, HANDLE handle, int size);
+
+static PyObject *
+_winapi_PeekNamedPipe(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ HANDLE handle;
+ int size = 0;
+
+ if (!PyArg_ParseTuple(args, "" F_HANDLE "|i:PeekNamedPipe",
+ &handle, &size))
+ goto exit;
+ return_value = _winapi_PeekNamedPipe_impl(module, handle, size);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_winapi_ReadFile__doc__,
+"ReadFile($module, /, handle, size, overlapped=False)\n"
+"--\n"
+"\n");
+
+#define _WINAPI_READFILE_METHODDEF \
+ {"ReadFile", (PyCFunction)_winapi_ReadFile, METH_VARARGS|METH_KEYWORDS, _winapi_ReadFile__doc__},
+
+static PyObject *
+_winapi_ReadFile_impl(PyModuleDef *module, HANDLE handle, int size,
+ int use_overlapped);
+
+static PyObject *
+_winapi_ReadFile(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"handle", "size", "overlapped", NULL};
+ HANDLE handle;
+ int size;
+ int use_overlapped = 0;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "" F_HANDLE "i|i:ReadFile", _keywords,
+ &handle, &size, &use_overlapped))
+ goto exit;
+ return_value = _winapi_ReadFile_impl(module, handle, size, use_overlapped);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_winapi_SetNamedPipeHandleState__doc__,
+"SetNamedPipeHandleState($module, named_pipe, mode,\n"
+" max_collection_count, collect_data_timeout, /)\n"
+"--\n"
+"\n");
+
+#define _WINAPI_SETNAMEDPIPEHANDLESTATE_METHODDEF \
+ {"SetNamedPipeHandleState", (PyCFunction)_winapi_SetNamedPipeHandleState, METH_VARARGS, _winapi_SetNamedPipeHandleState__doc__},
+
+static PyObject *
+_winapi_SetNamedPipeHandleState_impl(PyModuleDef *module, HANDLE named_pipe,
+ PyObject *mode,
+ PyObject *max_collection_count,
+ PyObject *collect_data_timeout);
+
+static PyObject *
+_winapi_SetNamedPipeHandleState(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ HANDLE named_pipe;
+ PyObject *mode;
+ PyObject *max_collection_count;
+ PyObject *collect_data_timeout;
+
+ if (!PyArg_ParseTuple(args, "" F_HANDLE "OOO:SetNamedPipeHandleState",
+ &named_pipe, &mode, &max_collection_count, &collect_data_timeout))
+ goto exit;
+ return_value = _winapi_SetNamedPipeHandleState_impl(module, named_pipe, mode, max_collection_count, collect_data_timeout);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_winapi_TerminateProcess__doc__,
+"TerminateProcess($module, handle, exit_code, /)\n"
+"--\n"
+"\n"
+"Terminate the specified process and all of its threads.");
+
+#define _WINAPI_TERMINATEPROCESS_METHODDEF \
+ {"TerminateProcess", (PyCFunction)_winapi_TerminateProcess, METH_VARARGS, _winapi_TerminateProcess__doc__},
+
+static PyObject *
+_winapi_TerminateProcess_impl(PyModuleDef *module, HANDLE handle,
+ UINT exit_code);
+
+static PyObject *
+_winapi_TerminateProcess(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ HANDLE handle;
+ UINT exit_code;
+
+ if (!PyArg_ParseTuple(args, "" F_HANDLE "I:TerminateProcess",
+ &handle, &exit_code))
+ goto exit;
+ return_value = _winapi_TerminateProcess_impl(module, handle, exit_code);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_winapi_WaitNamedPipe__doc__,
+"WaitNamedPipe($module, name, timeout, /)\n"
+"--\n"
+"\n");
+
+#define _WINAPI_WAITNAMEDPIPE_METHODDEF \
+ {"WaitNamedPipe", (PyCFunction)_winapi_WaitNamedPipe, METH_VARARGS, _winapi_WaitNamedPipe__doc__},
+
+static PyObject *
+_winapi_WaitNamedPipe_impl(PyModuleDef *module, LPCTSTR name, DWORD timeout);
+
+static PyObject *
+_winapi_WaitNamedPipe(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ LPCTSTR name;
+ DWORD timeout;
+
+ if (!PyArg_ParseTuple(args, "sk:WaitNamedPipe",
+ &name, &timeout))
+ goto exit;
+ return_value = _winapi_WaitNamedPipe_impl(module, name, timeout);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_winapi_WaitForMultipleObjects__doc__,
+"WaitForMultipleObjects($module, handle_seq, wait_flag,\n"
+" milliseconds=_winapi.INFINITE, /)\n"
+"--\n"
+"\n");
+
+#define _WINAPI_WAITFORMULTIPLEOBJECTS_METHODDEF \
+ {"WaitForMultipleObjects", (PyCFunction)_winapi_WaitForMultipleObjects, METH_VARARGS, _winapi_WaitForMultipleObjects__doc__},
+
+static PyObject *
+_winapi_WaitForMultipleObjects_impl(PyModuleDef *module,
+ PyObject *handle_seq, BOOL wait_flag,
+ DWORD milliseconds);
+
+static PyObject *
+_winapi_WaitForMultipleObjects(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *handle_seq;
+ BOOL wait_flag;
+ DWORD milliseconds = INFINITE;
+
+ if (!PyArg_ParseTuple(args, "Oi|k:WaitForMultipleObjects",
+ &handle_seq, &wait_flag, &milliseconds))
+ goto exit;
+ return_value = _winapi_WaitForMultipleObjects_impl(module, handle_seq, wait_flag, milliseconds);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_winapi_WaitForSingleObject__doc__,
+"WaitForSingleObject($module, handle, milliseconds, /)\n"
+"--\n"
+"\n"
+"Wait for a single object.\n"
+"\n"
+"Wait until the specified object is in the signaled state or\n"
+"the time-out interval elapses. The timeout value is specified\n"
+"in milliseconds.");
+
+#define _WINAPI_WAITFORSINGLEOBJECT_METHODDEF \
+ {"WaitForSingleObject", (PyCFunction)_winapi_WaitForSingleObject, METH_VARARGS, _winapi_WaitForSingleObject__doc__},
+
+static long
+_winapi_WaitForSingleObject_impl(PyModuleDef *module, HANDLE handle,
+ DWORD milliseconds);
+
+static PyObject *
+_winapi_WaitForSingleObject(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ HANDLE handle;
+ DWORD milliseconds;
+ long _return_value;
+
+ if (!PyArg_ParseTuple(args, "" F_HANDLE "k:WaitForSingleObject",
+ &handle, &milliseconds))
+ goto exit;
+ _return_value = _winapi_WaitForSingleObject_impl(module, handle, milliseconds);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyLong_FromLong(_return_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_winapi_WriteFile__doc__,
+"WriteFile($module, /, handle, buffer, overlapped=False)\n"
+"--\n"
+"\n");
+
+#define _WINAPI_WRITEFILE_METHODDEF \
+ {"WriteFile", (PyCFunction)_winapi_WriteFile, METH_VARARGS|METH_KEYWORDS, _winapi_WriteFile__doc__},
+
+static PyObject *
+_winapi_WriteFile_impl(PyModuleDef *module, HANDLE handle, PyObject *buffer,
+ int use_overlapped);
+
+static PyObject *
+_winapi_WriteFile(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"handle", "buffer", "overlapped", NULL};
+ HANDLE handle;
+ PyObject *buffer;
+ int use_overlapped = 0;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "" F_HANDLE "O|i:WriteFile", _keywords,
+ &handle, &buffer, &use_overlapped))
+ goto exit;
+ return_value = _winapi_WriteFile_impl(module, handle, buffer, use_overlapped);
+
+exit:
+ return return_value;
+}
+/*[clinic end generated code: output=98771c6584056d19 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/arraymodule.c.h b/Modules/clinic/arraymodule.c.h
new file mode 100644
index 0000000000..fdf247e2ca
--- /dev/null
+++ b/Modules/clinic/arraymodule.c.h
@@ -0,0 +1,499 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(array_array___copy____doc__,
+"__copy__($self, /)\n"
+"--\n"
+"\n"
+"Return a copy of the array.");
+
+#define ARRAY_ARRAY___COPY___METHODDEF \
+ {"__copy__", (PyCFunction)array_array___copy__, METH_NOARGS, array_array___copy____doc__},
+
+static PyObject *
+array_array___copy___impl(arrayobject *self);
+
+static PyObject *
+array_array___copy__(arrayobject *self, PyObject *Py_UNUSED(ignored))
+{
+ return array_array___copy___impl(self);
+}
+
+PyDoc_STRVAR(array_array___deepcopy____doc__,
+"__deepcopy__($self, unused, /)\n"
+"--\n"
+"\n"
+"Return a copy of the array.");
+
+#define ARRAY_ARRAY___DEEPCOPY___METHODDEF \
+ {"__deepcopy__", (PyCFunction)array_array___deepcopy__, METH_O, array_array___deepcopy____doc__},
+
+PyDoc_STRVAR(array_array_count__doc__,
+"count($self, v, /)\n"
+"--\n"
+"\n"
+"Return number of occurrences of v in the array.");
+
+#define ARRAY_ARRAY_COUNT_METHODDEF \
+ {"count", (PyCFunction)array_array_count, METH_O, array_array_count__doc__},
+
+PyDoc_STRVAR(array_array_index__doc__,
+"index($self, v, /)\n"
+"--\n"
+"\n"
+"Return index of first occurrence of v in the array.");
+
+#define ARRAY_ARRAY_INDEX_METHODDEF \
+ {"index", (PyCFunction)array_array_index, METH_O, array_array_index__doc__},
+
+PyDoc_STRVAR(array_array_remove__doc__,
+"remove($self, v, /)\n"
+"--\n"
+"\n"
+"Remove the first occurrence of v in the array.");
+
+#define ARRAY_ARRAY_REMOVE_METHODDEF \
+ {"remove", (PyCFunction)array_array_remove, METH_O, array_array_remove__doc__},
+
+PyDoc_STRVAR(array_array_pop__doc__,
+"pop($self, i=-1, /)\n"
+"--\n"
+"\n"
+"Return the i-th element and delete it from the array.\n"
+"\n"
+"i defaults to -1.");
+
+#define ARRAY_ARRAY_POP_METHODDEF \
+ {"pop", (PyCFunction)array_array_pop, METH_VARARGS, array_array_pop__doc__},
+
+static PyObject *
+array_array_pop_impl(arrayobject *self, Py_ssize_t i);
+
+static PyObject *
+array_array_pop(arrayobject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_ssize_t i = -1;
+
+ if (!PyArg_ParseTuple(args, "|n:pop",
+ &i))
+ goto exit;
+ return_value = array_array_pop_impl(self, i);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(array_array_extend__doc__,
+"extend($self, bb, /)\n"
+"--\n"
+"\n"
+"Append items to the end of the array.");
+
+#define ARRAY_ARRAY_EXTEND_METHODDEF \
+ {"extend", (PyCFunction)array_array_extend, METH_O, array_array_extend__doc__},
+
+PyDoc_STRVAR(array_array_insert__doc__,
+"insert($self, i, v, /)\n"
+"--\n"
+"\n"
+"Insert a new item v into the array before position i.");
+
+#define ARRAY_ARRAY_INSERT_METHODDEF \
+ {"insert", (PyCFunction)array_array_insert, METH_VARARGS, array_array_insert__doc__},
+
+static PyObject *
+array_array_insert_impl(arrayobject *self, Py_ssize_t i, PyObject *v);
+
+static PyObject *
+array_array_insert(arrayobject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_ssize_t i;
+ PyObject *v;
+
+ if (!PyArg_ParseTuple(args, "nO:insert",
+ &i, &v))
+ goto exit;
+ return_value = array_array_insert_impl(self, i, v);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(array_array_buffer_info__doc__,
+"buffer_info($self, /)\n"
+"--\n"
+"\n"
+"Return a tuple (address, length) giving the current memory address and the length in items of the buffer used to hold array\'s contents.\n"
+"\n"
+"The length should be multiplied by the itemsize attribute to calculate\n"
+"the buffer length in bytes.");
+
+#define ARRAY_ARRAY_BUFFER_INFO_METHODDEF \
+ {"buffer_info", (PyCFunction)array_array_buffer_info, METH_NOARGS, array_array_buffer_info__doc__},
+
+static PyObject *
+array_array_buffer_info_impl(arrayobject *self);
+
+static PyObject *
+array_array_buffer_info(arrayobject *self, PyObject *Py_UNUSED(ignored))
+{
+ return array_array_buffer_info_impl(self);
+}
+
+PyDoc_STRVAR(array_array_append__doc__,
+"append($self, v, /)\n"
+"--\n"
+"\n"
+"Append new value v to the end of the array.");
+
+#define ARRAY_ARRAY_APPEND_METHODDEF \
+ {"append", (PyCFunction)array_array_append, METH_O, array_array_append__doc__},
+
+PyDoc_STRVAR(array_array_byteswap__doc__,
+"byteswap($self, /)\n"
+"--\n"
+"\n"
+"Byteswap all items of the array.\n"
+"\n"
+"If the items in the array are not 1, 2, 4, or 8 bytes in size, RuntimeError is\n"
+"raised.");
+
+#define ARRAY_ARRAY_BYTESWAP_METHODDEF \
+ {"byteswap", (PyCFunction)array_array_byteswap, METH_NOARGS, array_array_byteswap__doc__},
+
+static PyObject *
+array_array_byteswap_impl(arrayobject *self);
+
+static PyObject *
+array_array_byteswap(arrayobject *self, PyObject *Py_UNUSED(ignored))
+{
+ return array_array_byteswap_impl(self);
+}
+
+PyDoc_STRVAR(array_array_reverse__doc__,
+"reverse($self, /)\n"
+"--\n"
+"\n"
+"Reverse the order of the items in the array.");
+
+#define ARRAY_ARRAY_REVERSE_METHODDEF \
+ {"reverse", (PyCFunction)array_array_reverse, METH_NOARGS, array_array_reverse__doc__},
+
+static PyObject *
+array_array_reverse_impl(arrayobject *self);
+
+static PyObject *
+array_array_reverse(arrayobject *self, PyObject *Py_UNUSED(ignored))
+{
+ return array_array_reverse_impl(self);
+}
+
+PyDoc_STRVAR(array_array_fromfile__doc__,
+"fromfile($self, f, n, /)\n"
+"--\n"
+"\n"
+"Read n objects from the file object f and append them to the end of the array.");
+
+#define ARRAY_ARRAY_FROMFILE_METHODDEF \
+ {"fromfile", (PyCFunction)array_array_fromfile, METH_VARARGS, array_array_fromfile__doc__},
+
+static PyObject *
+array_array_fromfile_impl(arrayobject *self, PyObject *f, Py_ssize_t n);
+
+static PyObject *
+array_array_fromfile(arrayobject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *f;
+ Py_ssize_t n;
+
+ if (!PyArg_ParseTuple(args, "On:fromfile",
+ &f, &n))
+ goto exit;
+ return_value = array_array_fromfile_impl(self, f, n);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(array_array_tofile__doc__,
+"tofile($self, f, /)\n"
+"--\n"
+"\n"
+"Write all items (as machine values) to the file object f.");
+
+#define ARRAY_ARRAY_TOFILE_METHODDEF \
+ {"tofile", (PyCFunction)array_array_tofile, METH_O, array_array_tofile__doc__},
+
+PyDoc_STRVAR(array_array_fromlist__doc__,
+"fromlist($self, list, /)\n"
+"--\n"
+"\n"
+"Append items to array from list.");
+
+#define ARRAY_ARRAY_FROMLIST_METHODDEF \
+ {"fromlist", (PyCFunction)array_array_fromlist, METH_O, array_array_fromlist__doc__},
+
+PyDoc_STRVAR(array_array_tolist__doc__,
+"tolist($self, /)\n"
+"--\n"
+"\n"
+"Convert array to an ordinary list with the same items.");
+
+#define ARRAY_ARRAY_TOLIST_METHODDEF \
+ {"tolist", (PyCFunction)array_array_tolist, METH_NOARGS, array_array_tolist__doc__},
+
+static PyObject *
+array_array_tolist_impl(arrayobject *self);
+
+static PyObject *
+array_array_tolist(arrayobject *self, PyObject *Py_UNUSED(ignored))
+{
+ return array_array_tolist_impl(self);
+}
+
+PyDoc_STRVAR(array_array_fromstring__doc__,
+"fromstring($self, buffer, /)\n"
+"--\n"
+"\n"
+"Appends items from the string, interpreting it as an array of machine values, as if it had been read from a file using the fromfile() method).\n"
+"\n"
+"This method is deprecated. Use frombytes instead.");
+
+#define ARRAY_ARRAY_FROMSTRING_METHODDEF \
+ {"fromstring", (PyCFunction)array_array_fromstring, METH_O, array_array_fromstring__doc__},
+
+static PyObject *
+array_array_fromstring_impl(arrayobject *self, Py_buffer *buffer);
+
+static PyObject *
+array_array_fromstring(arrayobject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_buffer buffer = {NULL, NULL};
+
+ if (!PyArg_Parse(arg, "s*:fromstring", &buffer))
+ goto exit;
+ return_value = array_array_fromstring_impl(self, &buffer);
+
+exit:
+ /* Cleanup for buffer */
+ if (buffer.obj)
+ PyBuffer_Release(&buffer);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(array_array_frombytes__doc__,
+"frombytes($self, buffer, /)\n"
+"--\n"
+"\n"
+"Appends items from the string, interpreting it as an array of machine values, as if it had been read from a file using the fromfile() method).");
+
+#define ARRAY_ARRAY_FROMBYTES_METHODDEF \
+ {"frombytes", (PyCFunction)array_array_frombytes, METH_O, array_array_frombytes__doc__},
+
+static PyObject *
+array_array_frombytes_impl(arrayobject *self, Py_buffer *buffer);
+
+static PyObject *
+array_array_frombytes(arrayobject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_buffer buffer = {NULL, NULL};
+
+ if (!PyArg_Parse(arg, "y*:frombytes", &buffer))
+ goto exit;
+ return_value = array_array_frombytes_impl(self, &buffer);
+
+exit:
+ /* Cleanup for buffer */
+ if (buffer.obj)
+ PyBuffer_Release(&buffer);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(array_array_tobytes__doc__,
+"tobytes($self, /)\n"
+"--\n"
+"\n"
+"Convert the array to an array of machine values and return the bytes representation.");
+
+#define ARRAY_ARRAY_TOBYTES_METHODDEF \
+ {"tobytes", (PyCFunction)array_array_tobytes, METH_NOARGS, array_array_tobytes__doc__},
+
+static PyObject *
+array_array_tobytes_impl(arrayobject *self);
+
+static PyObject *
+array_array_tobytes(arrayobject *self, PyObject *Py_UNUSED(ignored))
+{
+ return array_array_tobytes_impl(self);
+}
+
+PyDoc_STRVAR(array_array_tostring__doc__,
+"tostring($self, /)\n"
+"--\n"
+"\n"
+"Convert the array to an array of machine values and return the bytes representation.\n"
+"\n"
+"This method is deprecated. Use tobytes instead.");
+
+#define ARRAY_ARRAY_TOSTRING_METHODDEF \
+ {"tostring", (PyCFunction)array_array_tostring, METH_NOARGS, array_array_tostring__doc__},
+
+static PyObject *
+array_array_tostring_impl(arrayobject *self);
+
+static PyObject *
+array_array_tostring(arrayobject *self, PyObject *Py_UNUSED(ignored))
+{
+ return array_array_tostring_impl(self);
+}
+
+PyDoc_STRVAR(array_array_fromunicode__doc__,
+"fromunicode($self, ustr, /)\n"
+"--\n"
+"\n"
+"Extends this array with data from the unicode string ustr.\n"
+"\n"
+"The array must be a unicode type array; otherwise a ValueError is raised.\n"
+"Use array.frombytes(ustr.encode(...)) to append Unicode data to an array of\n"
+"some other type.");
+
+#define ARRAY_ARRAY_FROMUNICODE_METHODDEF \
+ {"fromunicode", (PyCFunction)array_array_fromunicode, METH_O, array_array_fromunicode__doc__},
+
+static PyObject *
+array_array_fromunicode_impl(arrayobject *self, Py_UNICODE *ustr,
+ Py_ssize_clean_t ustr_length);
+
+static PyObject *
+array_array_fromunicode(arrayobject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_UNICODE *ustr;
+ Py_ssize_clean_t ustr_length;
+
+ if (!PyArg_Parse(arg, "u#:fromunicode", &ustr, &ustr_length))
+ goto exit;
+ return_value = array_array_fromunicode_impl(self, ustr, ustr_length);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(array_array_tounicode__doc__,
+"tounicode($self, /)\n"
+"--\n"
+"\n"
+"Extends this array with data from the unicode string ustr.\n"
+"\n"
+"Convert the array to a unicode string. The array must be a unicode type array;\n"
+"otherwise a ValueError is raised. Use array.tobytes().decode() to obtain a\n"
+"unicode string from an array of some other type.");
+
+#define ARRAY_ARRAY_TOUNICODE_METHODDEF \
+ {"tounicode", (PyCFunction)array_array_tounicode, METH_NOARGS, array_array_tounicode__doc__},
+
+static PyObject *
+array_array_tounicode_impl(arrayobject *self);
+
+static PyObject *
+array_array_tounicode(arrayobject *self, PyObject *Py_UNUSED(ignored))
+{
+ return array_array_tounicode_impl(self);
+}
+
+PyDoc_STRVAR(array_array___sizeof____doc__,
+"__sizeof__($self, /)\n"
+"--\n"
+"\n"
+"Size of the array in memory, in bytes.");
+
+#define ARRAY_ARRAY___SIZEOF___METHODDEF \
+ {"__sizeof__", (PyCFunction)array_array___sizeof__, METH_NOARGS, array_array___sizeof____doc__},
+
+static PyObject *
+array_array___sizeof___impl(arrayobject *self);
+
+static PyObject *
+array_array___sizeof__(arrayobject *self, PyObject *Py_UNUSED(ignored))
+{
+ return array_array___sizeof___impl(self);
+}
+
+PyDoc_STRVAR(array__array_reconstructor__doc__,
+"_array_reconstructor($module, arraytype, typecode, mformat_code, items,\n"
+" /)\n"
+"--\n"
+"\n"
+"Internal. Used for pickling support.");
+
+#define ARRAY__ARRAY_RECONSTRUCTOR_METHODDEF \
+ {"_array_reconstructor", (PyCFunction)array__array_reconstructor, METH_VARARGS, array__array_reconstructor__doc__},
+
+static PyObject *
+array__array_reconstructor_impl(PyModuleDef *module, PyTypeObject *arraytype,
+ int typecode,
+ enum machine_format_code mformat_code,
+ PyObject *items);
+
+static PyObject *
+array__array_reconstructor(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyTypeObject *arraytype;
+ int typecode;
+ enum machine_format_code mformat_code;
+ PyObject *items;
+
+ if (!PyArg_ParseTuple(args, "OCiO:_array_reconstructor",
+ &arraytype, &typecode, &mformat_code, &items))
+ goto exit;
+ return_value = array__array_reconstructor_impl(module, arraytype, typecode, mformat_code, items);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(array_array___reduce_ex____doc__,
+"__reduce_ex__($self, value, /)\n"
+"--\n"
+"\n"
+"Return state information for pickling.");
+
+#define ARRAY_ARRAY___REDUCE_EX___METHODDEF \
+ {"__reduce_ex__", (PyCFunction)array_array___reduce_ex__, METH_O, array_array___reduce_ex____doc__},
+
+PyDoc_STRVAR(array_arrayiterator___reduce____doc__,
+"__reduce__($self, /)\n"
+"--\n"
+"\n"
+"Return state information for pickling.");
+
+#define ARRAY_ARRAYITERATOR___REDUCE___METHODDEF \
+ {"__reduce__", (PyCFunction)array_arrayiterator___reduce__, METH_NOARGS, array_arrayiterator___reduce____doc__},
+
+static PyObject *
+array_arrayiterator___reduce___impl(arrayiterobject *self);
+
+static PyObject *
+array_arrayiterator___reduce__(arrayiterobject *self, PyObject *Py_UNUSED(ignored))
+{
+ return array_arrayiterator___reduce___impl(self);
+}
+
+PyDoc_STRVAR(array_arrayiterator___setstate____doc__,
+"__setstate__($self, state, /)\n"
+"--\n"
+"\n"
+"Set state information for unpickling.");
+
+#define ARRAY_ARRAYITERATOR___SETSTATE___METHODDEF \
+ {"__setstate__", (PyCFunction)array_arrayiterator___setstate__, METH_O, array_arrayiterator___setstate____doc__},
+/*[clinic end generated code: output=d2e82c65ea841cfc input=a9049054013a1b77]*/
diff --git a/Modules/clinic/audioop.c.h b/Modules/clinic/audioop.c.h
index 40ef5e2dc4..3ee29666cc 100644
--- a/Modules/clinic/audioop.c.h
+++ b/Modules/clinic/audioop.c.h
@@ -12,7 +12,8 @@ PyDoc_STRVAR(audioop_getsample__doc__,
{"getsample", (PyCFunction)audioop_getsample, METH_VARARGS, audioop_getsample__doc__},
static PyObject *
-audioop_getsample_impl(PyModuleDef *module, Py_buffer *fragment, int width, Py_ssize_t index);
+audioop_getsample_impl(PyModuleDef *module, Py_buffer *fragment, int width,
+ Py_ssize_t index);
static PyObject *
audioop_getsample(PyModuleDef *module, PyObject *args)
@@ -22,8 +23,7 @@ audioop_getsample(PyModuleDef *module, PyObject *args)
int width;
Py_ssize_t index;
- if (!PyArg_ParseTuple(args,
- "y*in:getsample",
+ if (!PyArg_ParseTuple(args, "y*in:getsample",
&fragment, &width, &index))
goto exit;
return_value = audioop_getsample_impl(module, &fragment, width, index);
@@ -55,8 +55,7 @@ audioop_max(PyModuleDef *module, PyObject *args)
Py_buffer fragment = {NULL, NULL};
int width;
- if (!PyArg_ParseTuple(args,
- "y*i:max",
+ if (!PyArg_ParseTuple(args, "y*i:max",
&fragment, &width))
goto exit;
return_value = audioop_max_impl(module, &fragment, width);
@@ -88,8 +87,7 @@ audioop_minmax(PyModuleDef *module, PyObject *args)
Py_buffer fragment = {NULL, NULL};
int width;
- if (!PyArg_ParseTuple(args,
- "y*i:minmax",
+ if (!PyArg_ParseTuple(args, "y*i:minmax",
&fragment, &width))
goto exit;
return_value = audioop_minmax_impl(module, &fragment, width);
@@ -121,8 +119,7 @@ audioop_avg(PyModuleDef *module, PyObject *args)
Py_buffer fragment = {NULL, NULL};
int width;
- if (!PyArg_ParseTuple(args,
- "y*i:avg",
+ if (!PyArg_ParseTuple(args, "y*i:avg",
&fragment, &width))
goto exit;
return_value = audioop_avg_impl(module, &fragment, width);
@@ -154,8 +151,7 @@ audioop_rms(PyModuleDef *module, PyObject *args)
Py_buffer fragment = {NULL, NULL};
int width;
- if (!PyArg_ParseTuple(args,
- "y*i:rms",
+ if (!PyArg_ParseTuple(args, "y*i:rms",
&fragment, &width))
goto exit;
return_value = audioop_rms_impl(module, &fragment, width);
@@ -178,7 +174,8 @@ PyDoc_STRVAR(audioop_findfit__doc__,
{"findfit", (PyCFunction)audioop_findfit, METH_VARARGS, audioop_findfit__doc__},
static PyObject *
-audioop_findfit_impl(PyModuleDef *module, Py_buffer *fragment, Py_buffer *reference);
+audioop_findfit_impl(PyModuleDef *module, Py_buffer *fragment,
+ Py_buffer *reference);
static PyObject *
audioop_findfit(PyModuleDef *module, PyObject *args)
@@ -187,8 +184,7 @@ audioop_findfit(PyModuleDef *module, PyObject *args)
Py_buffer fragment = {NULL, NULL};
Py_buffer reference = {NULL, NULL};
- if (!PyArg_ParseTuple(args,
- "y*y*:findfit",
+ if (!PyArg_ParseTuple(args, "y*y*:findfit",
&fragment, &reference))
goto exit;
return_value = audioop_findfit_impl(module, &fragment, &reference);
@@ -214,7 +210,8 @@ PyDoc_STRVAR(audioop_findfactor__doc__,
{"findfactor", (PyCFunction)audioop_findfactor, METH_VARARGS, audioop_findfactor__doc__},
static PyObject *
-audioop_findfactor_impl(PyModuleDef *module, Py_buffer *fragment, Py_buffer *reference);
+audioop_findfactor_impl(PyModuleDef *module, Py_buffer *fragment,
+ Py_buffer *reference);
static PyObject *
audioop_findfactor(PyModuleDef *module, PyObject *args)
@@ -223,8 +220,7 @@ audioop_findfactor(PyModuleDef *module, PyObject *args)
Py_buffer fragment = {NULL, NULL};
Py_buffer reference = {NULL, NULL};
- if (!PyArg_ParseTuple(args,
- "y*y*:findfactor",
+ if (!PyArg_ParseTuple(args, "y*y*:findfactor",
&fragment, &reference))
goto exit;
return_value = audioop_findfactor_impl(module, &fragment, &reference);
@@ -250,7 +246,8 @@ PyDoc_STRVAR(audioop_findmax__doc__,
{"findmax", (PyCFunction)audioop_findmax, METH_VARARGS, audioop_findmax__doc__},
static PyObject *
-audioop_findmax_impl(PyModuleDef *module, Py_buffer *fragment, Py_ssize_t length);
+audioop_findmax_impl(PyModuleDef *module, Py_buffer *fragment,
+ Py_ssize_t length);
static PyObject *
audioop_findmax(PyModuleDef *module, PyObject *args)
@@ -259,8 +256,7 @@ audioop_findmax(PyModuleDef *module, PyObject *args)
Py_buffer fragment = {NULL, NULL};
Py_ssize_t length;
- if (!PyArg_ParseTuple(args,
- "y*n:findmax",
+ if (!PyArg_ParseTuple(args, "y*n:findmax",
&fragment, &length))
goto exit;
return_value = audioop_findmax_impl(module, &fragment, length);
@@ -292,8 +288,7 @@ audioop_avgpp(PyModuleDef *module, PyObject *args)
Py_buffer fragment = {NULL, NULL};
int width;
- if (!PyArg_ParseTuple(args,
- "y*i:avgpp",
+ if (!PyArg_ParseTuple(args, "y*i:avgpp",
&fragment, &width))
goto exit;
return_value = audioop_avgpp_impl(module, &fragment, width);
@@ -325,8 +320,7 @@ audioop_maxpp(PyModuleDef *module, PyObject *args)
Py_buffer fragment = {NULL, NULL};
int width;
- if (!PyArg_ParseTuple(args,
- "y*i:maxpp",
+ if (!PyArg_ParseTuple(args, "y*i:maxpp",
&fragment, &width))
goto exit;
return_value = audioop_maxpp_impl(module, &fragment, width);
@@ -358,8 +352,7 @@ audioop_cross(PyModuleDef *module, PyObject *args)
Py_buffer fragment = {NULL, NULL};
int width;
- if (!PyArg_ParseTuple(args,
- "y*i:cross",
+ if (!PyArg_ParseTuple(args, "y*i:cross",
&fragment, &width))
goto exit;
return_value = audioop_cross_impl(module, &fragment, width);
@@ -382,7 +375,8 @@ PyDoc_STRVAR(audioop_mul__doc__,
{"mul", (PyCFunction)audioop_mul, METH_VARARGS, audioop_mul__doc__},
static PyObject *
-audioop_mul_impl(PyModuleDef *module, Py_buffer *fragment, int width, double factor);
+audioop_mul_impl(PyModuleDef *module, Py_buffer *fragment, int width,
+ double factor);
static PyObject *
audioop_mul(PyModuleDef *module, PyObject *args)
@@ -392,8 +386,7 @@ audioop_mul(PyModuleDef *module, PyObject *args)
int width;
double factor;
- if (!PyArg_ParseTuple(args,
- "y*id:mul",
+ if (!PyArg_ParseTuple(args, "y*id:mul",
&fragment, &width, &factor))
goto exit;
return_value = audioop_mul_impl(module, &fragment, width, factor);
@@ -416,7 +409,8 @@ PyDoc_STRVAR(audioop_tomono__doc__,
{"tomono", (PyCFunction)audioop_tomono, METH_VARARGS, audioop_tomono__doc__},
static PyObject *
-audioop_tomono_impl(PyModuleDef *module, Py_buffer *fragment, int width, double lfactor, double rfactor);
+audioop_tomono_impl(PyModuleDef *module, Py_buffer *fragment, int width,
+ double lfactor, double rfactor);
static PyObject *
audioop_tomono(PyModuleDef *module, PyObject *args)
@@ -427,8 +421,7 @@ audioop_tomono(PyModuleDef *module, PyObject *args)
double lfactor;
double rfactor;
- if (!PyArg_ParseTuple(args,
- "y*idd:tomono",
+ if (!PyArg_ParseTuple(args, "y*idd:tomono",
&fragment, &width, &lfactor, &rfactor))
goto exit;
return_value = audioop_tomono_impl(module, &fragment, width, lfactor, rfactor);
@@ -451,7 +444,8 @@ PyDoc_STRVAR(audioop_tostereo__doc__,
{"tostereo", (PyCFunction)audioop_tostereo, METH_VARARGS, audioop_tostereo__doc__},
static PyObject *
-audioop_tostereo_impl(PyModuleDef *module, Py_buffer *fragment, int width, double lfactor, double rfactor);
+audioop_tostereo_impl(PyModuleDef *module, Py_buffer *fragment, int width,
+ double lfactor, double rfactor);
static PyObject *
audioop_tostereo(PyModuleDef *module, PyObject *args)
@@ -462,8 +456,7 @@ audioop_tostereo(PyModuleDef *module, PyObject *args)
double lfactor;
double rfactor;
- if (!PyArg_ParseTuple(args,
- "y*idd:tostereo",
+ if (!PyArg_ParseTuple(args, "y*idd:tostereo",
&fragment, &width, &lfactor, &rfactor))
goto exit;
return_value = audioop_tostereo_impl(module, &fragment, width, lfactor, rfactor);
@@ -486,7 +479,8 @@ PyDoc_STRVAR(audioop_add__doc__,
{"add", (PyCFunction)audioop_add, METH_VARARGS, audioop_add__doc__},
static PyObject *
-audioop_add_impl(PyModuleDef *module, Py_buffer *fragment1, Py_buffer *fragment2, int width);
+audioop_add_impl(PyModuleDef *module, Py_buffer *fragment1,
+ Py_buffer *fragment2, int width);
static PyObject *
audioop_add(PyModuleDef *module, PyObject *args)
@@ -496,8 +490,7 @@ audioop_add(PyModuleDef *module, PyObject *args)
Py_buffer fragment2 = {NULL, NULL};
int width;
- if (!PyArg_ParseTuple(args,
- "y*y*i:add",
+ if (!PyArg_ParseTuple(args, "y*y*i:add",
&fragment1, &fragment2, &width))
goto exit;
return_value = audioop_add_impl(module, &fragment1, &fragment2, width);
@@ -523,7 +516,8 @@ PyDoc_STRVAR(audioop_bias__doc__,
{"bias", (PyCFunction)audioop_bias, METH_VARARGS, audioop_bias__doc__},
static PyObject *
-audioop_bias_impl(PyModuleDef *module, Py_buffer *fragment, int width, int bias);
+audioop_bias_impl(PyModuleDef *module, Py_buffer *fragment, int width,
+ int bias);
static PyObject *
audioop_bias(PyModuleDef *module, PyObject *args)
@@ -533,8 +527,7 @@ audioop_bias(PyModuleDef *module, PyObject *args)
int width;
int bias;
- if (!PyArg_ParseTuple(args,
- "y*ii:bias",
+ if (!PyArg_ParseTuple(args, "y*ii:bias",
&fragment, &width, &bias))
goto exit;
return_value = audioop_bias_impl(module, &fragment, width, bias);
@@ -566,8 +559,7 @@ audioop_reverse(PyModuleDef *module, PyObject *args)
Py_buffer fragment = {NULL, NULL};
int width;
- if (!PyArg_ParseTuple(args,
- "y*i:reverse",
+ if (!PyArg_ParseTuple(args, "y*i:reverse",
&fragment, &width))
goto exit;
return_value = audioop_reverse_impl(module, &fragment, width);
@@ -599,8 +591,7 @@ audioop_byteswap(PyModuleDef *module, PyObject *args)
Py_buffer fragment = {NULL, NULL};
int width;
- if (!PyArg_ParseTuple(args,
- "y*i:byteswap",
+ if (!PyArg_ParseTuple(args, "y*i:byteswap",
&fragment, &width))
goto exit;
return_value = audioop_byteswap_impl(module, &fragment, width);
@@ -623,7 +614,8 @@ PyDoc_STRVAR(audioop_lin2lin__doc__,
{"lin2lin", (PyCFunction)audioop_lin2lin, METH_VARARGS, audioop_lin2lin__doc__},
static PyObject *
-audioop_lin2lin_impl(PyModuleDef *module, Py_buffer *fragment, int width, int newwidth);
+audioop_lin2lin_impl(PyModuleDef *module, Py_buffer *fragment, int width,
+ int newwidth);
static PyObject *
audioop_lin2lin(PyModuleDef *module, PyObject *args)
@@ -633,8 +625,7 @@ audioop_lin2lin(PyModuleDef *module, PyObject *args)
int width;
int newwidth;
- if (!PyArg_ParseTuple(args,
- "y*ii:lin2lin",
+ if (!PyArg_ParseTuple(args, "y*ii:lin2lin",
&fragment, &width, &newwidth))
goto exit;
return_value = audioop_lin2lin_impl(module, &fragment, width, newwidth);
@@ -658,7 +649,9 @@ PyDoc_STRVAR(audioop_ratecv__doc__,
{"ratecv", (PyCFunction)audioop_ratecv, METH_VARARGS, audioop_ratecv__doc__},
static PyObject *
-audioop_ratecv_impl(PyModuleDef *module, Py_buffer *fragment, int width, int nchannels, int inrate, int outrate, PyObject *state, int weightA, int weightB);
+audioop_ratecv_impl(PyModuleDef *module, Py_buffer *fragment, int width,
+ int nchannels, int inrate, int outrate, PyObject *state,
+ int weightA, int weightB);
static PyObject *
audioop_ratecv(PyModuleDef *module, PyObject *args)
@@ -673,8 +666,7 @@ audioop_ratecv(PyModuleDef *module, PyObject *args)
int weightA = 1;
int weightB = 0;
- if (!PyArg_ParseTuple(args,
- "y*iiiiO|ii:ratecv",
+ if (!PyArg_ParseTuple(args, "y*iiiiO|ii:ratecv",
&fragment, &width, &nchannels, &inrate, &outrate, &state, &weightA, &weightB))
goto exit;
return_value = audioop_ratecv_impl(module, &fragment, width, nchannels, inrate, outrate, state, weightA, weightB);
@@ -706,8 +698,7 @@ audioop_lin2ulaw(PyModuleDef *module, PyObject *args)
Py_buffer fragment = {NULL, NULL};
int width;
- if (!PyArg_ParseTuple(args,
- "y*i:lin2ulaw",
+ if (!PyArg_ParseTuple(args, "y*i:lin2ulaw",
&fragment, &width))
goto exit;
return_value = audioop_lin2ulaw_impl(module, &fragment, width);
@@ -739,8 +730,7 @@ audioop_ulaw2lin(PyModuleDef *module, PyObject *args)
Py_buffer fragment = {NULL, NULL};
int width;
- if (!PyArg_ParseTuple(args,
- "y*i:ulaw2lin",
+ if (!PyArg_ParseTuple(args, "y*i:ulaw2lin",
&fragment, &width))
goto exit;
return_value = audioop_ulaw2lin_impl(module, &fragment, width);
@@ -772,8 +762,7 @@ audioop_lin2alaw(PyModuleDef *module, PyObject *args)
Py_buffer fragment = {NULL, NULL};
int width;
- if (!PyArg_ParseTuple(args,
- "y*i:lin2alaw",
+ if (!PyArg_ParseTuple(args, "y*i:lin2alaw",
&fragment, &width))
goto exit;
return_value = audioop_lin2alaw_impl(module, &fragment, width);
@@ -805,8 +794,7 @@ audioop_alaw2lin(PyModuleDef *module, PyObject *args)
Py_buffer fragment = {NULL, NULL};
int width;
- if (!PyArg_ParseTuple(args,
- "y*i:alaw2lin",
+ if (!PyArg_ParseTuple(args, "y*i:alaw2lin",
&fragment, &width))
goto exit;
return_value = audioop_alaw2lin_impl(module, &fragment, width);
@@ -829,7 +817,8 @@ PyDoc_STRVAR(audioop_lin2adpcm__doc__,
{"lin2adpcm", (PyCFunction)audioop_lin2adpcm, METH_VARARGS, audioop_lin2adpcm__doc__},
static PyObject *
-audioop_lin2adpcm_impl(PyModuleDef *module, Py_buffer *fragment, int width, PyObject *state);
+audioop_lin2adpcm_impl(PyModuleDef *module, Py_buffer *fragment, int width,
+ PyObject *state);
static PyObject *
audioop_lin2adpcm(PyModuleDef *module, PyObject *args)
@@ -839,8 +828,7 @@ audioop_lin2adpcm(PyModuleDef *module, PyObject *args)
int width;
PyObject *state;
- if (!PyArg_ParseTuple(args,
- "y*iO:lin2adpcm",
+ if (!PyArg_ParseTuple(args, "y*iO:lin2adpcm",
&fragment, &width, &state))
goto exit;
return_value = audioop_lin2adpcm_impl(module, &fragment, width, state);
@@ -863,7 +851,8 @@ PyDoc_STRVAR(audioop_adpcm2lin__doc__,
{"adpcm2lin", (PyCFunction)audioop_adpcm2lin, METH_VARARGS, audioop_adpcm2lin__doc__},
static PyObject *
-audioop_adpcm2lin_impl(PyModuleDef *module, Py_buffer *fragment, int width, PyObject *state);
+audioop_adpcm2lin_impl(PyModuleDef *module, Py_buffer *fragment, int width,
+ PyObject *state);
static PyObject *
audioop_adpcm2lin(PyModuleDef *module, PyObject *args)
@@ -873,8 +862,7 @@ audioop_adpcm2lin(PyModuleDef *module, PyObject *args)
int width;
PyObject *state;
- if (!PyArg_ParseTuple(args,
- "y*iO:adpcm2lin",
+ if (!PyArg_ParseTuple(args, "y*iO:adpcm2lin",
&fragment, &width, &state))
goto exit;
return_value = audioop_adpcm2lin_impl(module, &fragment, width, state);
@@ -886,4 +874,4 @@ exit:
return return_value;
}
-/*[clinic end generated code: output=be840bba5d40c2ce input=a9049054013a1b77]*/
+/*[clinic end generated code: output=a076e1b213a8727b input=a9049054013a1b77]*/
diff --git a/Modules/clinic/binascii.c.h b/Modules/clinic/binascii.c.h
index ef646ddddc..e348beebaa 100644
--- a/Modules/clinic/binascii.c.h
+++ b/Modules/clinic/binascii.c.h
@@ -9,20 +9,18 @@ PyDoc_STRVAR(binascii_a2b_uu__doc__,
"Decode a line of uuencoded data.");
#define BINASCII_A2B_UU_METHODDEF \
- {"a2b_uu", (PyCFunction)binascii_a2b_uu, METH_VARARGS, binascii_a2b_uu__doc__},
+ {"a2b_uu", (PyCFunction)binascii_a2b_uu, METH_O, binascii_a2b_uu__doc__},
static PyObject *
binascii_a2b_uu_impl(PyModuleDef *module, Py_buffer *data);
static PyObject *
-binascii_a2b_uu(PyModuleDef *module, PyObject *args)
+binascii_a2b_uu(PyModuleDef *module, PyObject *arg)
{
PyObject *return_value = NULL;
Py_buffer data = {NULL, NULL};
- if (!PyArg_ParseTuple(args,
- "O&:a2b_uu",
- ascii_buffer_converter, &data))
+ if (!PyArg_Parse(arg, "O&:a2b_uu", ascii_buffer_converter, &data))
goto exit;
return_value = binascii_a2b_uu_impl(module, &data);
@@ -41,20 +39,18 @@ PyDoc_STRVAR(binascii_b2a_uu__doc__,
"Uuencode line of data.");
#define BINASCII_B2A_UU_METHODDEF \
- {"b2a_uu", (PyCFunction)binascii_b2a_uu, METH_VARARGS, binascii_b2a_uu__doc__},
+ {"b2a_uu", (PyCFunction)binascii_b2a_uu, METH_O, binascii_b2a_uu__doc__},
static PyObject *
binascii_b2a_uu_impl(PyModuleDef *module, Py_buffer *data);
static PyObject *
-binascii_b2a_uu(PyModuleDef *module, PyObject *args)
+binascii_b2a_uu(PyModuleDef *module, PyObject *arg)
{
PyObject *return_value = NULL;
Py_buffer data = {NULL, NULL};
- if (!PyArg_ParseTuple(args,
- "y*:b2a_uu",
- &data))
+ if (!PyArg_Parse(arg, "y*:b2a_uu", &data))
goto exit;
return_value = binascii_b2a_uu_impl(module, &data);
@@ -73,20 +69,18 @@ PyDoc_STRVAR(binascii_a2b_base64__doc__,
"Decode a line of base64 data.");
#define BINASCII_A2B_BASE64_METHODDEF \
- {"a2b_base64", (PyCFunction)binascii_a2b_base64, METH_VARARGS, binascii_a2b_base64__doc__},
+ {"a2b_base64", (PyCFunction)binascii_a2b_base64, METH_O, binascii_a2b_base64__doc__},
static PyObject *
binascii_a2b_base64_impl(PyModuleDef *module, Py_buffer *data);
static PyObject *
-binascii_a2b_base64(PyModuleDef *module, PyObject *args)
+binascii_a2b_base64(PyModuleDef *module, PyObject *arg)
{
PyObject *return_value = NULL;
Py_buffer data = {NULL, NULL};
- if (!PyArg_ParseTuple(args,
- "O&:a2b_base64",
- ascii_buffer_converter, &data))
+ if (!PyArg_Parse(arg, "O&:a2b_base64", ascii_buffer_converter, &data))
goto exit;
return_value = binascii_a2b_base64_impl(module, &data);
@@ -105,20 +99,18 @@ PyDoc_STRVAR(binascii_b2a_base64__doc__,
"Base64-code line of data.");
#define BINASCII_B2A_BASE64_METHODDEF \
- {"b2a_base64", (PyCFunction)binascii_b2a_base64, METH_VARARGS, binascii_b2a_base64__doc__},
+ {"b2a_base64", (PyCFunction)binascii_b2a_base64, METH_O, binascii_b2a_base64__doc__},
static PyObject *
binascii_b2a_base64_impl(PyModuleDef *module, Py_buffer *data);
static PyObject *
-binascii_b2a_base64(PyModuleDef *module, PyObject *args)
+binascii_b2a_base64(PyModuleDef *module, PyObject *arg)
{
PyObject *return_value = NULL;
Py_buffer data = {NULL, NULL};
- if (!PyArg_ParseTuple(args,
- "y*:b2a_base64",
- &data))
+ if (!PyArg_Parse(arg, "y*:b2a_base64", &data))
goto exit;
return_value = binascii_b2a_base64_impl(module, &data);
@@ -137,20 +129,18 @@ PyDoc_STRVAR(binascii_a2b_hqx__doc__,
"Decode .hqx coding.");
#define BINASCII_A2B_HQX_METHODDEF \
- {"a2b_hqx", (PyCFunction)binascii_a2b_hqx, METH_VARARGS, binascii_a2b_hqx__doc__},
+ {"a2b_hqx", (PyCFunction)binascii_a2b_hqx, METH_O, binascii_a2b_hqx__doc__},
static PyObject *
binascii_a2b_hqx_impl(PyModuleDef *module, Py_buffer *data);
static PyObject *
-binascii_a2b_hqx(PyModuleDef *module, PyObject *args)
+binascii_a2b_hqx(PyModuleDef *module, PyObject *arg)
{
PyObject *return_value = NULL;
Py_buffer data = {NULL, NULL};
- if (!PyArg_ParseTuple(args,
- "O&:a2b_hqx",
- ascii_buffer_converter, &data))
+ if (!PyArg_Parse(arg, "O&:a2b_hqx", ascii_buffer_converter, &data))
goto exit;
return_value = binascii_a2b_hqx_impl(module, &data);
@@ -169,20 +159,18 @@ PyDoc_STRVAR(binascii_rlecode_hqx__doc__,
"Binhex RLE-code binary data.");
#define BINASCII_RLECODE_HQX_METHODDEF \
- {"rlecode_hqx", (PyCFunction)binascii_rlecode_hqx, METH_VARARGS, binascii_rlecode_hqx__doc__},
+ {"rlecode_hqx", (PyCFunction)binascii_rlecode_hqx, METH_O, binascii_rlecode_hqx__doc__},
static PyObject *
binascii_rlecode_hqx_impl(PyModuleDef *module, Py_buffer *data);
static PyObject *
-binascii_rlecode_hqx(PyModuleDef *module, PyObject *args)
+binascii_rlecode_hqx(PyModuleDef *module, PyObject *arg)
{
PyObject *return_value = NULL;
Py_buffer data = {NULL, NULL};
- if (!PyArg_ParseTuple(args,
- "y*:rlecode_hqx",
- &data))
+ if (!PyArg_Parse(arg, "y*:rlecode_hqx", &data))
goto exit;
return_value = binascii_rlecode_hqx_impl(module, &data);
@@ -201,20 +189,18 @@ PyDoc_STRVAR(binascii_b2a_hqx__doc__,
"Encode .hqx data.");
#define BINASCII_B2A_HQX_METHODDEF \
- {"b2a_hqx", (PyCFunction)binascii_b2a_hqx, METH_VARARGS, binascii_b2a_hqx__doc__},
+ {"b2a_hqx", (PyCFunction)binascii_b2a_hqx, METH_O, binascii_b2a_hqx__doc__},
static PyObject *
binascii_b2a_hqx_impl(PyModuleDef *module, Py_buffer *data);
static PyObject *
-binascii_b2a_hqx(PyModuleDef *module, PyObject *args)
+binascii_b2a_hqx(PyModuleDef *module, PyObject *arg)
{
PyObject *return_value = NULL;
Py_buffer data = {NULL, NULL};
- if (!PyArg_ParseTuple(args,
- "y*:b2a_hqx",
- &data))
+ if (!PyArg_Parse(arg, "y*:b2a_hqx", &data))
goto exit;
return_value = binascii_b2a_hqx_impl(module, &data);
@@ -233,20 +219,18 @@ PyDoc_STRVAR(binascii_rledecode_hqx__doc__,
"Decode hexbin RLE-coded string.");
#define BINASCII_RLEDECODE_HQX_METHODDEF \
- {"rledecode_hqx", (PyCFunction)binascii_rledecode_hqx, METH_VARARGS, binascii_rledecode_hqx__doc__},
+ {"rledecode_hqx", (PyCFunction)binascii_rledecode_hqx, METH_O, binascii_rledecode_hqx__doc__},
static PyObject *
binascii_rledecode_hqx_impl(PyModuleDef *module, Py_buffer *data);
static PyObject *
-binascii_rledecode_hqx(PyModuleDef *module, PyObject *args)
+binascii_rledecode_hqx(PyModuleDef *module, PyObject *arg)
{
PyObject *return_value = NULL;
Py_buffer data = {NULL, NULL};
- if (!PyArg_ParseTuple(args,
- "y*:rledecode_hqx",
- &data))
+ if (!PyArg_Parse(arg, "y*:rledecode_hqx", &data))
goto exit;
return_value = binascii_rledecode_hqx_impl(module, &data);
@@ -278,12 +262,11 @@ binascii_crc_hqx(PyModuleDef *module, PyObject *args)
unsigned int crc;
unsigned int _return_value;
- if (!PyArg_ParseTuple(args,
- "y*I:crc_hqx",
+ if (!PyArg_ParseTuple(args, "y*I:crc_hqx",
&data, &crc))
goto exit;
_return_value = binascii_crc_hqx_impl(module, &data, crc);
- if ((_return_value == -1) && PyErr_Occurred())
+ if ((_return_value == (unsigned int)-1) && PyErr_Occurred())
goto exit;
return_value = PyLong_FromUnsignedLong((unsigned long)_return_value);
@@ -315,12 +298,11 @@ binascii_crc32(PyModuleDef *module, PyObject *args)
unsigned int crc = 0;
unsigned int _return_value;
- if (!PyArg_ParseTuple(args,
- "y*|I:crc32",
+ if (!PyArg_ParseTuple(args, "y*|I:crc32",
&data, &crc))
goto exit;
_return_value = binascii_crc32_impl(module, &data, crc);
- if ((_return_value == -1) && PyErr_Occurred())
+ if ((_return_value == (unsigned int)-1) && PyErr_Occurred())
goto exit;
return_value = PyLong_FromUnsignedLong((unsigned long)_return_value);
@@ -342,20 +324,18 @@ PyDoc_STRVAR(binascii_b2a_hex__doc__,
"available as \"hexlify()\".");
#define BINASCII_B2A_HEX_METHODDEF \
- {"b2a_hex", (PyCFunction)binascii_b2a_hex, METH_VARARGS, binascii_b2a_hex__doc__},
+ {"b2a_hex", (PyCFunction)binascii_b2a_hex, METH_O, binascii_b2a_hex__doc__},
static PyObject *
binascii_b2a_hex_impl(PyModuleDef *module, Py_buffer *data);
static PyObject *
-binascii_b2a_hex(PyModuleDef *module, PyObject *args)
+binascii_b2a_hex(PyModuleDef *module, PyObject *arg)
{
PyObject *return_value = NULL;
Py_buffer data = {NULL, NULL};
- if (!PyArg_ParseTuple(args,
- "y*:b2a_hex",
- &data))
+ if (!PyArg_Parse(arg, "y*:b2a_hex", &data))
goto exit;
return_value = binascii_b2a_hex_impl(module, &data);
@@ -376,20 +356,18 @@ PyDoc_STRVAR(binascii_hexlify__doc__,
"The return value is a bytes object.");
#define BINASCII_HEXLIFY_METHODDEF \
- {"hexlify", (PyCFunction)binascii_hexlify, METH_VARARGS, binascii_hexlify__doc__},
+ {"hexlify", (PyCFunction)binascii_hexlify, METH_O, binascii_hexlify__doc__},
static PyObject *
binascii_hexlify_impl(PyModuleDef *module, Py_buffer *data);
static PyObject *
-binascii_hexlify(PyModuleDef *module, PyObject *args)
+binascii_hexlify(PyModuleDef *module, PyObject *arg)
{
PyObject *return_value = NULL;
Py_buffer data = {NULL, NULL};
- if (!PyArg_ParseTuple(args,
- "y*:hexlify",
- &data))
+ if (!PyArg_Parse(arg, "y*:hexlify", &data))
goto exit;
return_value = binascii_hexlify_impl(module, &data);
@@ -411,20 +389,18 @@ PyDoc_STRVAR(binascii_a2b_hex__doc__,
"This function is also available as \"unhexlify()\".");
#define BINASCII_A2B_HEX_METHODDEF \
- {"a2b_hex", (PyCFunction)binascii_a2b_hex, METH_VARARGS, binascii_a2b_hex__doc__},
+ {"a2b_hex", (PyCFunction)binascii_a2b_hex, METH_O, binascii_a2b_hex__doc__},
static PyObject *
binascii_a2b_hex_impl(PyModuleDef *module, Py_buffer *hexstr);
static PyObject *
-binascii_a2b_hex(PyModuleDef *module, PyObject *args)
+binascii_a2b_hex(PyModuleDef *module, PyObject *arg)
{
PyObject *return_value = NULL;
Py_buffer hexstr = {NULL, NULL};
- if (!PyArg_ParseTuple(args,
- "O&:a2b_hex",
- ascii_buffer_converter, &hexstr))
+ if (!PyArg_Parse(arg, "O&:a2b_hex", ascii_buffer_converter, &hexstr))
goto exit;
return_value = binascii_a2b_hex_impl(module, &hexstr);
@@ -445,20 +421,18 @@ PyDoc_STRVAR(binascii_unhexlify__doc__,
"hexstr must contain an even number of hex digits (upper or lower case).");
#define BINASCII_UNHEXLIFY_METHODDEF \
- {"unhexlify", (PyCFunction)binascii_unhexlify, METH_VARARGS, binascii_unhexlify__doc__},
+ {"unhexlify", (PyCFunction)binascii_unhexlify, METH_O, binascii_unhexlify__doc__},
static PyObject *
binascii_unhexlify_impl(PyModuleDef *module, Py_buffer *hexstr);
static PyObject *
-binascii_unhexlify(PyModuleDef *module, PyObject *args)
+binascii_unhexlify(PyModuleDef *module, PyObject *arg)
{
PyObject *return_value = NULL;
Py_buffer hexstr = {NULL, NULL};
- if (!PyArg_ParseTuple(args,
- "O&:unhexlify",
- ascii_buffer_converter, &hexstr))
+ if (!PyArg_Parse(arg, "O&:unhexlify", ascii_buffer_converter, &hexstr))
goto exit;
return_value = binascii_unhexlify_impl(module, &hexstr);
@@ -490,8 +464,7 @@ binascii_a2b_qp(PyModuleDef *module, PyObject *args, PyObject *kwargs)
Py_buffer data = {NULL, NULL};
int header = 0;
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,
- "O&|i:a2b_qp", _keywords,
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&|i:a2b_qp", _keywords,
ascii_buffer_converter, &data, &header))
goto exit;
return_value = binascii_a2b_qp_impl(module, &data, header);
@@ -518,7 +491,8 @@ PyDoc_STRVAR(binascii_b2a_qp__doc__,
{"b2a_qp", (PyCFunction)binascii_b2a_qp, METH_VARARGS|METH_KEYWORDS, binascii_b2a_qp__doc__},
static PyObject *
-binascii_b2a_qp_impl(PyModuleDef *module, Py_buffer *data, int quotetabs, int istext, int header);
+binascii_b2a_qp_impl(PyModuleDef *module, Py_buffer *data, int quotetabs,
+ int istext, int header);
static PyObject *
binascii_b2a_qp(PyModuleDef *module, PyObject *args, PyObject *kwargs)
@@ -530,8 +504,7 @@ binascii_b2a_qp(PyModuleDef *module, PyObject *args, PyObject *kwargs)
int istext = 1;
int header = 0;
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,
- "y*|iii:b2a_qp", _keywords,
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "y*|iii:b2a_qp", _keywords,
&data, &quotetabs, &istext, &header))
goto exit;
return_value = binascii_b2a_qp_impl(module, &data, quotetabs, istext, header);
@@ -543,4 +516,4 @@ exit:
return return_value;
}
-/*[clinic end generated code: output=22761b36f4f9e5bb input=a9049054013a1b77]*/
+/*[clinic end generated code: output=b1a3cbf7660ebaa5 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/cmathmodule.c.h b/Modules/clinic/cmathmodule.c.h
new file mode 100644
index 0000000000..7d61649783
--- /dev/null
+++ b/Modules/clinic/cmathmodule.c.h
@@ -0,0 +1,860 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(cmath_acos__doc__,
+"acos($module, z, /)\n"
+"--\n"
+"\n"
+"Return the arc cosine of z.");
+
+#define CMATH_ACOS_METHODDEF \
+ {"acos", (PyCFunction)cmath_acos, METH_O, cmath_acos__doc__},
+
+static Py_complex
+cmath_acos_impl(PyModuleDef *module, Py_complex z);
+
+static PyObject *
+cmath_acos(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_complex z;
+ Py_complex _return_value;
+
+ if (!PyArg_Parse(arg, "D:acos", &z))
+ goto exit;
+ /* modifications for z */
+ errno = 0; PyFPE_START_PROTECT("complex function", goto exit);
+ _return_value = cmath_acos_impl(module, z);
+ PyFPE_END_PROTECT(_return_value);
+ if (errno == EDOM) {
+ PyErr_SetString(PyExc_ValueError, "math domain error");
+ goto exit;
+ }
+ else if (errno == ERANGE) {
+ PyErr_SetString(PyExc_OverflowError, "math range error");
+ goto exit;
+ }
+ else {
+ return_value = PyComplex_FromCComplex(_return_value);
+ }
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(cmath_acosh__doc__,
+"acosh($module, z, /)\n"
+"--\n"
+"\n"
+"Return the inverse hyperbolic cosine of z.");
+
+#define CMATH_ACOSH_METHODDEF \
+ {"acosh", (PyCFunction)cmath_acosh, METH_O, cmath_acosh__doc__},
+
+static Py_complex
+cmath_acosh_impl(PyModuleDef *module, Py_complex z);
+
+static PyObject *
+cmath_acosh(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_complex z;
+ Py_complex _return_value;
+
+ if (!PyArg_Parse(arg, "D:acosh", &z))
+ goto exit;
+ /* modifications for z */
+ errno = 0; PyFPE_START_PROTECT("complex function", goto exit);
+ _return_value = cmath_acosh_impl(module, z);
+ PyFPE_END_PROTECT(_return_value);
+ if (errno == EDOM) {
+ PyErr_SetString(PyExc_ValueError, "math domain error");
+ goto exit;
+ }
+ else if (errno == ERANGE) {
+ PyErr_SetString(PyExc_OverflowError, "math range error");
+ goto exit;
+ }
+ else {
+ return_value = PyComplex_FromCComplex(_return_value);
+ }
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(cmath_asin__doc__,
+"asin($module, z, /)\n"
+"--\n"
+"\n"
+"Return the arc sine of z.");
+
+#define CMATH_ASIN_METHODDEF \
+ {"asin", (PyCFunction)cmath_asin, METH_O, cmath_asin__doc__},
+
+static Py_complex
+cmath_asin_impl(PyModuleDef *module, Py_complex z);
+
+static PyObject *
+cmath_asin(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_complex z;
+ Py_complex _return_value;
+
+ if (!PyArg_Parse(arg, "D:asin", &z))
+ goto exit;
+ /* modifications for z */
+ errno = 0; PyFPE_START_PROTECT("complex function", goto exit);
+ _return_value = cmath_asin_impl(module, z);
+ PyFPE_END_PROTECT(_return_value);
+ if (errno == EDOM) {
+ PyErr_SetString(PyExc_ValueError, "math domain error");
+ goto exit;
+ }
+ else if (errno == ERANGE) {
+ PyErr_SetString(PyExc_OverflowError, "math range error");
+ goto exit;
+ }
+ else {
+ return_value = PyComplex_FromCComplex(_return_value);
+ }
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(cmath_asinh__doc__,
+"asinh($module, z, /)\n"
+"--\n"
+"\n"
+"Return the inverse hyperbolic sine of z.");
+
+#define CMATH_ASINH_METHODDEF \
+ {"asinh", (PyCFunction)cmath_asinh, METH_O, cmath_asinh__doc__},
+
+static Py_complex
+cmath_asinh_impl(PyModuleDef *module, Py_complex z);
+
+static PyObject *
+cmath_asinh(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_complex z;
+ Py_complex _return_value;
+
+ if (!PyArg_Parse(arg, "D:asinh", &z))
+ goto exit;
+ /* modifications for z */
+ errno = 0; PyFPE_START_PROTECT("complex function", goto exit);
+ _return_value = cmath_asinh_impl(module, z);
+ PyFPE_END_PROTECT(_return_value);
+ if (errno == EDOM) {
+ PyErr_SetString(PyExc_ValueError, "math domain error");
+ goto exit;
+ }
+ else if (errno == ERANGE) {
+ PyErr_SetString(PyExc_OverflowError, "math range error");
+ goto exit;
+ }
+ else {
+ return_value = PyComplex_FromCComplex(_return_value);
+ }
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(cmath_atan__doc__,
+"atan($module, z, /)\n"
+"--\n"
+"\n"
+"Return the arc tangent of z.");
+
+#define CMATH_ATAN_METHODDEF \
+ {"atan", (PyCFunction)cmath_atan, METH_O, cmath_atan__doc__},
+
+static Py_complex
+cmath_atan_impl(PyModuleDef *module, Py_complex z);
+
+static PyObject *
+cmath_atan(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_complex z;
+ Py_complex _return_value;
+
+ if (!PyArg_Parse(arg, "D:atan", &z))
+ goto exit;
+ /* modifications for z */
+ errno = 0; PyFPE_START_PROTECT("complex function", goto exit);
+ _return_value = cmath_atan_impl(module, z);
+ PyFPE_END_PROTECT(_return_value);
+ if (errno == EDOM) {
+ PyErr_SetString(PyExc_ValueError, "math domain error");
+ goto exit;
+ }
+ else if (errno == ERANGE) {
+ PyErr_SetString(PyExc_OverflowError, "math range error");
+ goto exit;
+ }
+ else {
+ return_value = PyComplex_FromCComplex(_return_value);
+ }
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(cmath_atanh__doc__,
+"atanh($module, z, /)\n"
+"--\n"
+"\n"
+"Return the inverse hyperbolic tangent of z.");
+
+#define CMATH_ATANH_METHODDEF \
+ {"atanh", (PyCFunction)cmath_atanh, METH_O, cmath_atanh__doc__},
+
+static Py_complex
+cmath_atanh_impl(PyModuleDef *module, Py_complex z);
+
+static PyObject *
+cmath_atanh(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_complex z;
+ Py_complex _return_value;
+
+ if (!PyArg_Parse(arg, "D:atanh", &z))
+ goto exit;
+ /* modifications for z */
+ errno = 0; PyFPE_START_PROTECT("complex function", goto exit);
+ _return_value = cmath_atanh_impl(module, z);
+ PyFPE_END_PROTECT(_return_value);
+ if (errno == EDOM) {
+ PyErr_SetString(PyExc_ValueError, "math domain error");
+ goto exit;
+ }
+ else if (errno == ERANGE) {
+ PyErr_SetString(PyExc_OverflowError, "math range error");
+ goto exit;
+ }
+ else {
+ return_value = PyComplex_FromCComplex(_return_value);
+ }
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(cmath_cos__doc__,
+"cos($module, z, /)\n"
+"--\n"
+"\n"
+"Return the cosine of z.");
+
+#define CMATH_COS_METHODDEF \
+ {"cos", (PyCFunction)cmath_cos, METH_O, cmath_cos__doc__},
+
+static Py_complex
+cmath_cos_impl(PyModuleDef *module, Py_complex z);
+
+static PyObject *
+cmath_cos(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_complex z;
+ Py_complex _return_value;
+
+ if (!PyArg_Parse(arg, "D:cos", &z))
+ goto exit;
+ /* modifications for z */
+ errno = 0; PyFPE_START_PROTECT("complex function", goto exit);
+ _return_value = cmath_cos_impl(module, z);
+ PyFPE_END_PROTECT(_return_value);
+ if (errno == EDOM) {
+ PyErr_SetString(PyExc_ValueError, "math domain error");
+ goto exit;
+ }
+ else if (errno == ERANGE) {
+ PyErr_SetString(PyExc_OverflowError, "math range error");
+ goto exit;
+ }
+ else {
+ return_value = PyComplex_FromCComplex(_return_value);
+ }
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(cmath_cosh__doc__,
+"cosh($module, z, /)\n"
+"--\n"
+"\n"
+"Return the hyperbolic cosine of z.");
+
+#define CMATH_COSH_METHODDEF \
+ {"cosh", (PyCFunction)cmath_cosh, METH_O, cmath_cosh__doc__},
+
+static Py_complex
+cmath_cosh_impl(PyModuleDef *module, Py_complex z);
+
+static PyObject *
+cmath_cosh(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_complex z;
+ Py_complex _return_value;
+
+ if (!PyArg_Parse(arg, "D:cosh", &z))
+ goto exit;
+ /* modifications for z */
+ errno = 0; PyFPE_START_PROTECT("complex function", goto exit);
+ _return_value = cmath_cosh_impl(module, z);
+ PyFPE_END_PROTECT(_return_value);
+ if (errno == EDOM) {
+ PyErr_SetString(PyExc_ValueError, "math domain error");
+ goto exit;
+ }
+ else if (errno == ERANGE) {
+ PyErr_SetString(PyExc_OverflowError, "math range error");
+ goto exit;
+ }
+ else {
+ return_value = PyComplex_FromCComplex(_return_value);
+ }
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(cmath_exp__doc__,
+"exp($module, z, /)\n"
+"--\n"
+"\n"
+"Return the exponential value e**z.");
+
+#define CMATH_EXP_METHODDEF \
+ {"exp", (PyCFunction)cmath_exp, METH_O, cmath_exp__doc__},
+
+static Py_complex
+cmath_exp_impl(PyModuleDef *module, Py_complex z);
+
+static PyObject *
+cmath_exp(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_complex z;
+ Py_complex _return_value;
+
+ if (!PyArg_Parse(arg, "D:exp", &z))
+ goto exit;
+ /* modifications for z */
+ errno = 0; PyFPE_START_PROTECT("complex function", goto exit);
+ _return_value = cmath_exp_impl(module, z);
+ PyFPE_END_PROTECT(_return_value);
+ if (errno == EDOM) {
+ PyErr_SetString(PyExc_ValueError, "math domain error");
+ goto exit;
+ }
+ else if (errno == ERANGE) {
+ PyErr_SetString(PyExc_OverflowError, "math range error");
+ goto exit;
+ }
+ else {
+ return_value = PyComplex_FromCComplex(_return_value);
+ }
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(cmath_log10__doc__,
+"log10($module, z, /)\n"
+"--\n"
+"\n"
+"Return the base-10 logarithm of z.");
+
+#define CMATH_LOG10_METHODDEF \
+ {"log10", (PyCFunction)cmath_log10, METH_O, cmath_log10__doc__},
+
+static Py_complex
+cmath_log10_impl(PyModuleDef *module, Py_complex z);
+
+static PyObject *
+cmath_log10(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_complex z;
+ Py_complex _return_value;
+
+ if (!PyArg_Parse(arg, "D:log10", &z))
+ goto exit;
+ /* modifications for z */
+ errno = 0; PyFPE_START_PROTECT("complex function", goto exit);
+ _return_value = cmath_log10_impl(module, z);
+ PyFPE_END_PROTECT(_return_value);
+ if (errno == EDOM) {
+ PyErr_SetString(PyExc_ValueError, "math domain error");
+ goto exit;
+ }
+ else if (errno == ERANGE) {
+ PyErr_SetString(PyExc_OverflowError, "math range error");
+ goto exit;
+ }
+ else {
+ return_value = PyComplex_FromCComplex(_return_value);
+ }
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(cmath_sin__doc__,
+"sin($module, z, /)\n"
+"--\n"
+"\n"
+"Return the sine of z.");
+
+#define CMATH_SIN_METHODDEF \
+ {"sin", (PyCFunction)cmath_sin, METH_O, cmath_sin__doc__},
+
+static Py_complex
+cmath_sin_impl(PyModuleDef *module, Py_complex z);
+
+static PyObject *
+cmath_sin(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_complex z;
+ Py_complex _return_value;
+
+ if (!PyArg_Parse(arg, "D:sin", &z))
+ goto exit;
+ /* modifications for z */
+ errno = 0; PyFPE_START_PROTECT("complex function", goto exit);
+ _return_value = cmath_sin_impl(module, z);
+ PyFPE_END_PROTECT(_return_value);
+ if (errno == EDOM) {
+ PyErr_SetString(PyExc_ValueError, "math domain error");
+ goto exit;
+ }
+ else if (errno == ERANGE) {
+ PyErr_SetString(PyExc_OverflowError, "math range error");
+ goto exit;
+ }
+ else {
+ return_value = PyComplex_FromCComplex(_return_value);
+ }
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(cmath_sinh__doc__,
+"sinh($module, z, /)\n"
+"--\n"
+"\n"
+"Return the hyperbolic sine of z.");
+
+#define CMATH_SINH_METHODDEF \
+ {"sinh", (PyCFunction)cmath_sinh, METH_O, cmath_sinh__doc__},
+
+static Py_complex
+cmath_sinh_impl(PyModuleDef *module, Py_complex z);
+
+static PyObject *
+cmath_sinh(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_complex z;
+ Py_complex _return_value;
+
+ if (!PyArg_Parse(arg, "D:sinh", &z))
+ goto exit;
+ /* modifications for z */
+ errno = 0; PyFPE_START_PROTECT("complex function", goto exit);
+ _return_value = cmath_sinh_impl(module, z);
+ PyFPE_END_PROTECT(_return_value);
+ if (errno == EDOM) {
+ PyErr_SetString(PyExc_ValueError, "math domain error");
+ goto exit;
+ }
+ else if (errno == ERANGE) {
+ PyErr_SetString(PyExc_OverflowError, "math range error");
+ goto exit;
+ }
+ else {
+ return_value = PyComplex_FromCComplex(_return_value);
+ }
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(cmath_sqrt__doc__,
+"sqrt($module, z, /)\n"
+"--\n"
+"\n"
+"Return the square root of z.");
+
+#define CMATH_SQRT_METHODDEF \
+ {"sqrt", (PyCFunction)cmath_sqrt, METH_O, cmath_sqrt__doc__},
+
+static Py_complex
+cmath_sqrt_impl(PyModuleDef *module, Py_complex z);
+
+static PyObject *
+cmath_sqrt(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_complex z;
+ Py_complex _return_value;
+
+ if (!PyArg_Parse(arg, "D:sqrt", &z))
+ goto exit;
+ /* modifications for z */
+ errno = 0; PyFPE_START_PROTECT("complex function", goto exit);
+ _return_value = cmath_sqrt_impl(module, z);
+ PyFPE_END_PROTECT(_return_value);
+ if (errno == EDOM) {
+ PyErr_SetString(PyExc_ValueError, "math domain error");
+ goto exit;
+ }
+ else if (errno == ERANGE) {
+ PyErr_SetString(PyExc_OverflowError, "math range error");
+ goto exit;
+ }
+ else {
+ return_value = PyComplex_FromCComplex(_return_value);
+ }
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(cmath_tan__doc__,
+"tan($module, z, /)\n"
+"--\n"
+"\n"
+"Return the tangent of z.");
+
+#define CMATH_TAN_METHODDEF \
+ {"tan", (PyCFunction)cmath_tan, METH_O, cmath_tan__doc__},
+
+static Py_complex
+cmath_tan_impl(PyModuleDef *module, Py_complex z);
+
+static PyObject *
+cmath_tan(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_complex z;
+ Py_complex _return_value;
+
+ if (!PyArg_Parse(arg, "D:tan", &z))
+ goto exit;
+ /* modifications for z */
+ errno = 0; PyFPE_START_PROTECT("complex function", goto exit);
+ _return_value = cmath_tan_impl(module, z);
+ PyFPE_END_PROTECT(_return_value);
+ if (errno == EDOM) {
+ PyErr_SetString(PyExc_ValueError, "math domain error");
+ goto exit;
+ }
+ else if (errno == ERANGE) {
+ PyErr_SetString(PyExc_OverflowError, "math range error");
+ goto exit;
+ }
+ else {
+ return_value = PyComplex_FromCComplex(_return_value);
+ }
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(cmath_tanh__doc__,
+"tanh($module, z, /)\n"
+"--\n"
+"\n"
+"Return the hyperbolic tangent of z.");
+
+#define CMATH_TANH_METHODDEF \
+ {"tanh", (PyCFunction)cmath_tanh, METH_O, cmath_tanh__doc__},
+
+static Py_complex
+cmath_tanh_impl(PyModuleDef *module, Py_complex z);
+
+static PyObject *
+cmath_tanh(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_complex z;
+ Py_complex _return_value;
+
+ if (!PyArg_Parse(arg, "D:tanh", &z))
+ goto exit;
+ /* modifications for z */
+ errno = 0; PyFPE_START_PROTECT("complex function", goto exit);
+ _return_value = cmath_tanh_impl(module, z);
+ PyFPE_END_PROTECT(_return_value);
+ if (errno == EDOM) {
+ PyErr_SetString(PyExc_ValueError, "math domain error");
+ goto exit;
+ }
+ else if (errno == ERANGE) {
+ PyErr_SetString(PyExc_OverflowError, "math range error");
+ goto exit;
+ }
+ else {
+ return_value = PyComplex_FromCComplex(_return_value);
+ }
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(cmath_log__doc__,
+"log($module, x, y_obj=None, /)\n"
+"--\n"
+"\n"
+"The logarithm of z to the given base.\n"
+"\n"
+"If the base not specified, returns the natural logarithm (base e) of z.");
+
+#define CMATH_LOG_METHODDEF \
+ {"log", (PyCFunction)cmath_log, METH_VARARGS, cmath_log__doc__},
+
+static PyObject *
+cmath_log_impl(PyModuleDef *module, Py_complex x, PyObject *y_obj);
+
+static PyObject *
+cmath_log(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_complex x;
+ PyObject *y_obj = NULL;
+
+ if (!PyArg_ParseTuple(args, "D|O:log",
+ &x, &y_obj))
+ goto exit;
+ return_value = cmath_log_impl(module, x, y_obj);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(cmath_phase__doc__,
+"phase($module, z, /)\n"
+"--\n"
+"\n"
+"Return argument, also known as the phase angle, of a complex.");
+
+#define CMATH_PHASE_METHODDEF \
+ {"phase", (PyCFunction)cmath_phase, METH_O, cmath_phase__doc__},
+
+static PyObject *
+cmath_phase_impl(PyModuleDef *module, Py_complex z);
+
+static PyObject *
+cmath_phase(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_complex z;
+
+ if (!PyArg_Parse(arg, "D:phase", &z))
+ goto exit;
+ return_value = cmath_phase_impl(module, z);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(cmath_polar__doc__,
+"polar($module, z, /)\n"
+"--\n"
+"\n"
+"Convert a complex from rectangular coordinates to polar coordinates.\n"
+"\n"
+"r is the distance from 0 and phi the phase angle.");
+
+#define CMATH_POLAR_METHODDEF \
+ {"polar", (PyCFunction)cmath_polar, METH_O, cmath_polar__doc__},
+
+static PyObject *
+cmath_polar_impl(PyModuleDef *module, Py_complex z);
+
+static PyObject *
+cmath_polar(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_complex z;
+
+ if (!PyArg_Parse(arg, "D:polar", &z))
+ goto exit;
+ return_value = cmath_polar_impl(module, z);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(cmath_rect__doc__,
+"rect($module, r, phi, /)\n"
+"--\n"
+"\n"
+"Convert from polar coordinates to rectangular coordinates.");
+
+#define CMATH_RECT_METHODDEF \
+ {"rect", (PyCFunction)cmath_rect, METH_VARARGS, cmath_rect__doc__},
+
+static PyObject *
+cmath_rect_impl(PyModuleDef *module, double r, double phi);
+
+static PyObject *
+cmath_rect(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ double r;
+ double phi;
+
+ if (!PyArg_ParseTuple(args, "dd:rect",
+ &r, &phi))
+ goto exit;
+ return_value = cmath_rect_impl(module, r, phi);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(cmath_isfinite__doc__,
+"isfinite($module, z, /)\n"
+"--\n"
+"\n"
+"Return True if both the real and imaginary parts of z are finite, else False.");
+
+#define CMATH_ISFINITE_METHODDEF \
+ {"isfinite", (PyCFunction)cmath_isfinite, METH_O, cmath_isfinite__doc__},
+
+static PyObject *
+cmath_isfinite_impl(PyModuleDef *module, Py_complex z);
+
+static PyObject *
+cmath_isfinite(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_complex z;
+
+ if (!PyArg_Parse(arg, "D:isfinite", &z))
+ goto exit;
+ return_value = cmath_isfinite_impl(module, z);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(cmath_isnan__doc__,
+"isnan($module, z, /)\n"
+"--\n"
+"\n"
+"Checks if the real or imaginary part of z not a number (NaN).");
+
+#define CMATH_ISNAN_METHODDEF \
+ {"isnan", (PyCFunction)cmath_isnan, METH_O, cmath_isnan__doc__},
+
+static PyObject *
+cmath_isnan_impl(PyModuleDef *module, Py_complex z);
+
+static PyObject *
+cmath_isnan(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_complex z;
+
+ if (!PyArg_Parse(arg, "D:isnan", &z))
+ goto exit;
+ return_value = cmath_isnan_impl(module, z);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(cmath_isinf__doc__,
+"isinf($module, z, /)\n"
+"--\n"
+"\n"
+"Checks if the real or imaginary part of z is infinite.");
+
+#define CMATH_ISINF_METHODDEF \
+ {"isinf", (PyCFunction)cmath_isinf, METH_O, cmath_isinf__doc__},
+
+static PyObject *
+cmath_isinf_impl(PyModuleDef *module, Py_complex z);
+
+static PyObject *
+cmath_isinf(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_complex z;
+
+ if (!PyArg_Parse(arg, "D:isinf", &z))
+ goto exit;
+ return_value = cmath_isinf_impl(module, z);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(cmath_isclose__doc__,
+"isclose($module, /, a, b, *, rel_tol=1e-09, abs_tol=0.0)\n"
+"--\n"
+"\n"
+"Determine whether two complex numbers are close in value.\n"
+"\n"
+" rel_tol\n"
+" maximum difference for being considered \"close\", relative to the\n"
+" magnitude of the input values\n"
+" abs_tol\n"
+" maximum difference for being considered \"close\", regardless of the\n"
+" magnitude of the input values\n"
+"\n"
+"Return True if a is close in value to b, and False otherwise.\n"
+"\n"
+"For the values to be considered close, the difference between them must be\n"
+"smaller than at least one of the tolerances.\n"
+"\n"
+"-inf, inf and NaN behave similarly to the IEEE 754 Standard. That is, NaN is\n"
+"not close to anything, even itself. inf and -inf are only close to themselves.");
+
+#define CMATH_ISCLOSE_METHODDEF \
+ {"isclose", (PyCFunction)cmath_isclose, METH_VARARGS|METH_KEYWORDS, cmath_isclose__doc__},
+
+static int
+cmath_isclose_impl(PyModuleDef *module, Py_complex a, Py_complex b,
+ double rel_tol, double abs_tol);
+
+static PyObject *
+cmath_isclose(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"a", "b", "rel_tol", "abs_tol", NULL};
+ Py_complex a;
+ Py_complex b;
+ double rel_tol = 1e-09;
+ double abs_tol = 0.0;
+ int _return_value;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "DD|$dd:isclose", _keywords,
+ &a, &b, &rel_tol, &abs_tol))
+ goto exit;
+ _return_value = cmath_isclose_impl(module, a, b, rel_tol, abs_tol);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyBool_FromLong((long)_return_value);
+
+exit:
+ return return_value;
+}
+/*[clinic end generated code: output=229e9c48c9d27362 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/fcntlmodule.c.h b/Modules/clinic/fcntlmodule.c.h
new file mode 100644
index 0000000000..5e3b1c06f6
--- /dev/null
+++ b/Modules/clinic/fcntlmodule.c.h
@@ -0,0 +1,185 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(fcntl_fcntl__doc__,
+"fcntl($module, fd, cmd, arg=0, /)\n"
+"--\n"
+"\n"
+"Perform the operation `cmd` on file descriptor fd.\n"
+"\n"
+"The values used for `cmd` are operating system dependent, and are available\n"
+"as constants in the fcntl module, using the same names as used in\n"
+"the relevant C header files. The argument arg is optional, and\n"
+"defaults to 0; it may be an int or a string. If arg is given as a string,\n"
+"the return value of fcntl is a string of that length, containing the\n"
+"resulting value put in the arg buffer by the operating system. The length\n"
+"of the arg string is not allowed to exceed 1024 bytes. If the arg given\n"
+"is an integer or if none is specified, the result value is an integer\n"
+"corresponding to the return value of the fcntl call in the C code.");
+
+#define FCNTL_FCNTL_METHODDEF \
+ {"fcntl", (PyCFunction)fcntl_fcntl, METH_VARARGS, fcntl_fcntl__doc__},
+
+static PyObject *
+fcntl_fcntl_impl(PyModuleDef *module, int fd, int code, PyObject *arg);
+
+static PyObject *
+fcntl_fcntl(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int fd;
+ int code;
+ PyObject *arg = NULL;
+
+ if (!PyArg_ParseTuple(args, "O&i|O:fcntl",
+ conv_descriptor, &fd, &code, &arg))
+ goto exit;
+ return_value = fcntl_fcntl_impl(module, fd, code, arg);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(fcntl_ioctl__doc__,
+"ioctl($module, fd, request, arg=0, mutate_flag=True, /)\n"
+"--\n"
+"\n"
+"Perform the operation `request` on file descriptor `fd`.\n"
+"\n"
+"The values used for `request` are operating system dependent, and are available\n"
+"as constants in the fcntl or termios library modules, using the same names as\n"
+"used in the relevant C header files.\n"
+"\n"
+"The argument `arg` is optional, and defaults to 0; it may be an int or a\n"
+"buffer containing character data (most likely a string or an array).\n"
+"\n"
+"If the argument is a mutable buffer (such as an array) and if the\n"
+"mutate_flag argument (which is only allowed in this case) is true then the\n"
+"buffer is (in effect) passed to the operating system and changes made by\n"
+"the OS will be reflected in the contents of the buffer after the call has\n"
+"returned. The return value is the integer returned by the ioctl system\n"
+"call.\n"
+"\n"
+"If the argument is a mutable buffer and the mutable_flag argument is false,\n"
+"the behavior is as if a string had been passed.\n"
+"\n"
+"If the argument is an immutable buffer (most likely a string) then a copy\n"
+"of the buffer is passed to the operating system and the return value is a\n"
+"string of the same length containing whatever the operating system put in\n"
+"the buffer. The length of the arg buffer in this case is not allowed to\n"
+"exceed 1024 bytes.\n"
+"\n"
+"If the arg given is an integer or if none is specified, the result value is\n"
+"an integer corresponding to the return value of the ioctl call in the C\n"
+"code.");
+
+#define FCNTL_IOCTL_METHODDEF \
+ {"ioctl", (PyCFunction)fcntl_ioctl, METH_VARARGS, fcntl_ioctl__doc__},
+
+static PyObject *
+fcntl_ioctl_impl(PyModuleDef *module, int fd, unsigned int code,
+ PyObject *ob_arg, int mutate_arg);
+
+static PyObject *
+fcntl_ioctl(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int fd;
+ unsigned int code;
+ PyObject *ob_arg = NULL;
+ int mutate_arg = 1;
+
+ if (!PyArg_ParseTuple(args, "O&I|Op:ioctl",
+ conv_descriptor, &fd, &code, &ob_arg, &mutate_arg))
+ goto exit;
+ return_value = fcntl_ioctl_impl(module, fd, code, ob_arg, mutate_arg);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(fcntl_flock__doc__,
+"flock($module, fd, operation, /)\n"
+"--\n"
+"\n"
+"Perform the lock operation `operation` on file descriptor `fd`.\n"
+"\n"
+"See the Unix manual page for flock(2) for details (On some systems, this\n"
+"function is emulated using fcntl()).");
+
+#define FCNTL_FLOCK_METHODDEF \
+ {"flock", (PyCFunction)fcntl_flock, METH_VARARGS, fcntl_flock__doc__},
+
+static PyObject *
+fcntl_flock_impl(PyModuleDef *module, int fd, int code);
+
+static PyObject *
+fcntl_flock(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int fd;
+ int code;
+
+ if (!PyArg_ParseTuple(args, "O&i:flock",
+ conv_descriptor, &fd, &code))
+ goto exit;
+ return_value = fcntl_flock_impl(module, fd, code);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(fcntl_lockf__doc__,
+"lockf($module, fd, cmd, len=0, start=0, whence=0, /)\n"
+"--\n"
+"\n"
+"A wrapper around the fcntl() locking calls.\n"
+"\n"
+"`fd` is the file descriptor of the file to lock or unlock, and operation is one\n"
+"of the following values:\n"
+"\n"
+" LOCK_UN - unlock\n"
+" LOCK_SH - acquire a shared lock\n"
+" LOCK_EX - acquire an exclusive lock\n"
+"\n"
+"When operation is LOCK_SH or LOCK_EX, it can also be bitwise ORed with\n"
+"LOCK_NB to avoid blocking on lock acquisition. If LOCK_NB is used and the\n"
+"lock cannot be acquired, an IOError will be raised and the exception will\n"
+"have an errno attribute set to EACCES or EAGAIN (depending on the operating\n"
+"system -- for portability, check for either value).\n"
+"\n"
+"`len` is the number of bytes to lock, with the default meaning to lock to\n"
+"EOF. `start` is the byte offset, relative to `whence`, to that the lock\n"
+"starts. `whence` is as with fileobj.seek(), specifically:\n"
+"\n"
+" 0 - relative to the start of the file (SEEK_SET)\n"
+" 1 - relative to the current buffer position (SEEK_CUR)\n"
+" 2 - relative to the end of the file (SEEK_END)");
+
+#define FCNTL_LOCKF_METHODDEF \
+ {"lockf", (PyCFunction)fcntl_lockf, METH_VARARGS, fcntl_lockf__doc__},
+
+static PyObject *
+fcntl_lockf_impl(PyModuleDef *module, int fd, int code, PyObject *lenobj,
+ PyObject *startobj, int whence);
+
+static PyObject *
+fcntl_lockf(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int fd;
+ int code;
+ PyObject *lenobj = NULL;
+ PyObject *startobj = NULL;
+ int whence = 0;
+
+ if (!PyArg_ParseTuple(args, "O&i|OOi:lockf",
+ conv_descriptor, &fd, &code, &lenobj, &startobj, &whence))
+ goto exit;
+ return_value = fcntl_lockf_impl(module, fd, code, lenobj, startobj, whence);
+
+exit:
+ return return_value;
+}
+/*[clinic end generated code: output=92963b631d00f0fe input=a9049054013a1b77]*/
diff --git a/Modules/clinic/grpmodule.c.h b/Modules/clinic/grpmodule.c.h
new file mode 100644
index 0000000000..eb5b59d29b
--- /dev/null
+++ b/Modules/clinic/grpmodule.c.h
@@ -0,0 +1,85 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(grp_getgrgid__doc__,
+"getgrgid($module, /, id)\n"
+"--\n"
+"\n"
+"Return the group database entry for the given numeric group ID.\n"
+"\n"
+"If id is not valid, raise KeyError.");
+
+#define GRP_GETGRGID_METHODDEF \
+ {"getgrgid", (PyCFunction)grp_getgrgid, METH_VARARGS|METH_KEYWORDS, grp_getgrgid__doc__},
+
+static PyObject *
+grp_getgrgid_impl(PyModuleDef *module, PyObject *id);
+
+static PyObject *
+grp_getgrgid(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"id", NULL};
+ PyObject *id;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O:getgrgid", _keywords,
+ &id))
+ goto exit;
+ return_value = grp_getgrgid_impl(module, id);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(grp_getgrnam__doc__,
+"getgrnam($module, /, name)\n"
+"--\n"
+"\n"
+"Return the group database entry for the given group name.\n"
+"\n"
+"If name is not valid, raise KeyError.");
+
+#define GRP_GETGRNAM_METHODDEF \
+ {"getgrnam", (PyCFunction)grp_getgrnam, METH_VARARGS|METH_KEYWORDS, grp_getgrnam__doc__},
+
+static PyObject *
+grp_getgrnam_impl(PyModuleDef *module, PyObject *name);
+
+static PyObject *
+grp_getgrnam(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"name", NULL};
+ PyObject *name;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "U:getgrnam", _keywords,
+ &name))
+ goto exit;
+ return_value = grp_getgrnam_impl(module, name);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(grp_getgrall__doc__,
+"getgrall($module, /)\n"
+"--\n"
+"\n"
+"Return a list of all available group entries, in arbitrary order.\n"
+"\n"
+"An entry whose name starts with \'+\' or \'-\' represents an instruction\n"
+"to use YP/NIS and may not be accessible via getgrnam or getgrgid.");
+
+#define GRP_GETGRALL_METHODDEF \
+ {"getgrall", (PyCFunction)grp_getgrall, METH_NOARGS, grp_getgrall__doc__},
+
+static PyObject *
+grp_getgrall_impl(PyModuleDef *module);
+
+static PyObject *
+grp_getgrall(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ return grp_getgrall_impl(module);
+}
+/*[clinic end generated code: output=5191c25600afb1bd input=a9049054013a1b77]*/
diff --git a/Modules/clinic/md5module.c.h b/Modules/clinic/md5module.c.h
new file mode 100644
index 0000000000..f5a3117f10
--- /dev/null
+++ b/Modules/clinic/md5module.c.h
@@ -0,0 +1,95 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(MD5Type_copy__doc__,
+"copy($self, /)\n"
+"--\n"
+"\n"
+"Return a copy of the hash object.");
+
+#define MD5TYPE_COPY_METHODDEF \
+ {"copy", (PyCFunction)MD5Type_copy, METH_NOARGS, MD5Type_copy__doc__},
+
+static PyObject *
+MD5Type_copy_impl(MD5object *self);
+
+static PyObject *
+MD5Type_copy(MD5object *self, PyObject *Py_UNUSED(ignored))
+{
+ return MD5Type_copy_impl(self);
+}
+
+PyDoc_STRVAR(MD5Type_digest__doc__,
+"digest($self, /)\n"
+"--\n"
+"\n"
+"Return the digest value as a string of binary data.");
+
+#define MD5TYPE_DIGEST_METHODDEF \
+ {"digest", (PyCFunction)MD5Type_digest, METH_NOARGS, MD5Type_digest__doc__},
+
+static PyObject *
+MD5Type_digest_impl(MD5object *self);
+
+static PyObject *
+MD5Type_digest(MD5object *self, PyObject *Py_UNUSED(ignored))
+{
+ return MD5Type_digest_impl(self);
+}
+
+PyDoc_STRVAR(MD5Type_hexdigest__doc__,
+"hexdigest($self, /)\n"
+"--\n"
+"\n"
+"Return the digest value as a string of hexadecimal digits.");
+
+#define MD5TYPE_HEXDIGEST_METHODDEF \
+ {"hexdigest", (PyCFunction)MD5Type_hexdigest, METH_NOARGS, MD5Type_hexdigest__doc__},
+
+static PyObject *
+MD5Type_hexdigest_impl(MD5object *self);
+
+static PyObject *
+MD5Type_hexdigest(MD5object *self, PyObject *Py_UNUSED(ignored))
+{
+ return MD5Type_hexdigest_impl(self);
+}
+
+PyDoc_STRVAR(MD5Type_update__doc__,
+"update($self, obj, /)\n"
+"--\n"
+"\n"
+"Update this hash object\'s state with the provided string.");
+
+#define MD5TYPE_UPDATE_METHODDEF \
+ {"update", (PyCFunction)MD5Type_update, METH_O, MD5Type_update__doc__},
+
+PyDoc_STRVAR(_md5_md5__doc__,
+"md5($module, /, string=b\'\')\n"
+"--\n"
+"\n"
+"Return a new MD5 hash object; optionally initialized with a string.");
+
+#define _MD5_MD5_METHODDEF \
+ {"md5", (PyCFunction)_md5_md5, METH_VARARGS|METH_KEYWORDS, _md5_md5__doc__},
+
+static PyObject *
+_md5_md5_impl(PyModuleDef *module, PyObject *string);
+
+static PyObject *
+_md5_md5(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"string", NULL};
+ PyObject *string = NULL;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|O:md5", _keywords,
+ &string))
+ goto exit;
+ return_value = _md5_md5_impl(module, string);
+
+exit:
+ return return_value;
+}
+/*[clinic end generated code: output=0f803ded701aca54 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/posixmodule.c.h b/Modules/clinic/posixmodule.c.h
new file mode 100644
index 0000000000..9ef702a297
--- /dev/null
+++ b/Modules/clinic/posixmodule.c.h
@@ -0,0 +1,5791 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(os_stat__doc__,
+"stat($module, /, path, *, dir_fd=None, follow_symlinks=True)\n"
+"--\n"
+"\n"
+"Perform a stat system call on the given path.\n"
+"\n"
+" path\n"
+" Path to be examined; can be string, bytes, or open-file-descriptor int.\n"
+" dir_fd\n"
+" If not None, it should be a file descriptor open to a directory,\n"
+" and path should be a relative string; path will then be relative to\n"
+" that directory.\n"
+" follow_symlinks\n"
+" If False, and the last element of the path is a symbolic link,\n"
+" stat will examine the symbolic link itself instead of the file\n"
+" the link points to.\n"
+"\n"
+"dir_fd and follow_symlinks may not be implemented\n"
+" on your platform. If they are unavailable, using them will raise a\n"
+" NotImplementedError.\n"
+"\n"
+"It\'s an error to use dir_fd or follow_symlinks when specifying path as\n"
+" an open file descriptor.");
+
+#define OS_STAT_METHODDEF \
+ {"stat", (PyCFunction)os_stat, METH_VARARGS|METH_KEYWORDS, os_stat__doc__},
+
+static PyObject *
+os_stat_impl(PyModuleDef *module, path_t *path, int dir_fd,
+ int follow_symlinks);
+
+static PyObject *
+os_stat(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"path", "dir_fd", "follow_symlinks", NULL};
+ path_t path = PATH_T_INITIALIZE("stat", "path", 0, 1);
+ int dir_fd = DEFAULT_DIR_FD;
+ int follow_symlinks = 1;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&|$O&p:stat", _keywords,
+ path_converter, &path, FSTATAT_DIR_FD_CONVERTER, &dir_fd, &follow_symlinks))
+ goto exit;
+ return_value = os_stat_impl(module, &path, dir_fd, follow_symlinks);
+
+exit:
+ /* Cleanup for path */
+ path_cleanup(&path);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(os_lstat__doc__,
+"lstat($module, /, path, *, dir_fd=None)\n"
+"--\n"
+"\n"
+"Perform a stat system call on the given path, without following symbolic links.\n"
+"\n"
+"Like stat(), but do not follow symbolic links.\n"
+"Equivalent to stat(path, follow_symlinks=False).");
+
+#define OS_LSTAT_METHODDEF \
+ {"lstat", (PyCFunction)os_lstat, METH_VARARGS|METH_KEYWORDS, os_lstat__doc__},
+
+static PyObject *
+os_lstat_impl(PyModuleDef *module, path_t *path, int dir_fd);
+
+static PyObject *
+os_lstat(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"path", "dir_fd", NULL};
+ path_t path = PATH_T_INITIALIZE("lstat", "path", 0, 0);
+ int dir_fd = DEFAULT_DIR_FD;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&|$O&:lstat", _keywords,
+ path_converter, &path, FSTATAT_DIR_FD_CONVERTER, &dir_fd))
+ goto exit;
+ return_value = os_lstat_impl(module, &path, dir_fd);
+
+exit:
+ /* Cleanup for path */
+ path_cleanup(&path);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(os_access__doc__,
+"access($module, /, path, mode, *, dir_fd=None, effective_ids=False,\n"
+" follow_symlinks=True)\n"
+"--\n"
+"\n"
+"Use the real uid/gid to test for access to a path.\n"
+"\n"
+" path\n"
+" Path to be tested; can be string, bytes, or open-file-descriptor int.\n"
+" mode\n"
+" Operating-system mode bitfield. Can be F_OK to test existence,\n"
+" or the inclusive-OR of R_OK, W_OK, and X_OK.\n"
+" dir_fd\n"
+" If not None, it should be a file descriptor open to a directory,\n"
+" and path should be relative; path will then be relative to that\n"
+" directory.\n"
+" effective_ids\n"
+" If True, access will use the effective uid/gid instead of\n"
+" the real uid/gid.\n"
+" follow_symlinks\n"
+" If False, and the last element of the path is a symbolic link,\n"
+" access will examine the symbolic link itself instead of the file\n"
+" the link points to.\n"
+"\n"
+"dir_fd, effective_ids, and follow_symlinks may not be implemented\n"
+" on your platform. If they are unavailable, using them will raise a\n"
+" NotImplementedError.\n"
+"\n"
+"Note that most operations will use the effective uid/gid, therefore this\n"
+" routine can be used in a suid/sgid environment to test if the invoking user\n"
+" has the specified access to the path.");
+
+#define OS_ACCESS_METHODDEF \
+ {"access", (PyCFunction)os_access, METH_VARARGS|METH_KEYWORDS, os_access__doc__},
+
+static int
+os_access_impl(PyModuleDef *module, path_t *path, int mode, int dir_fd,
+ int effective_ids, int follow_symlinks);
+
+static PyObject *
+os_access(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"path", "mode", "dir_fd", "effective_ids", "follow_symlinks", NULL};
+ path_t path = PATH_T_INITIALIZE("access", "path", 0, 1);
+ int mode;
+ int dir_fd = DEFAULT_DIR_FD;
+ int effective_ids = 0;
+ int follow_symlinks = 1;
+ int _return_value;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&i|$O&pp:access", _keywords,
+ path_converter, &path, &mode, FACCESSAT_DIR_FD_CONVERTER, &dir_fd, &effective_ids, &follow_symlinks))
+ goto exit;
+ _return_value = os_access_impl(module, &path, mode, dir_fd, effective_ids, follow_symlinks);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyBool_FromLong((long)_return_value);
+
+exit:
+ /* Cleanup for path */
+ path_cleanup(&path);
+
+ return return_value;
+}
+
+#if defined(HAVE_TTYNAME)
+
+PyDoc_STRVAR(os_ttyname__doc__,
+"ttyname($module, fd, /)\n"
+"--\n"
+"\n"
+"Return the name of the terminal device connected to \'fd\'.\n"
+"\n"
+" fd\n"
+" Integer file descriptor handle.");
+
+#define OS_TTYNAME_METHODDEF \
+ {"ttyname", (PyCFunction)os_ttyname, METH_O, os_ttyname__doc__},
+
+static char *
+os_ttyname_impl(PyModuleDef *module, int fd);
+
+static PyObject *
+os_ttyname(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int fd;
+ char *_return_value;
+
+ if (!PyArg_Parse(arg, "i:ttyname", &fd))
+ goto exit;
+ _return_value = os_ttyname_impl(module, fd);
+ if (_return_value == NULL)
+ goto exit;
+ return_value = PyUnicode_DecodeFSDefault(_return_value);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_TTYNAME) */
+
+#if defined(HAVE_CTERMID)
+
+PyDoc_STRVAR(os_ctermid__doc__,
+"ctermid($module, /)\n"
+"--\n"
+"\n"
+"Return the name of the controlling terminal for this process.");
+
+#define OS_CTERMID_METHODDEF \
+ {"ctermid", (PyCFunction)os_ctermid, METH_NOARGS, os_ctermid__doc__},
+
+static PyObject *
+os_ctermid_impl(PyModuleDef *module);
+
+static PyObject *
+os_ctermid(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ return os_ctermid_impl(module);
+}
+
+#endif /* defined(HAVE_CTERMID) */
+
+PyDoc_STRVAR(os_chdir__doc__,
+"chdir($module, /, path)\n"
+"--\n"
+"\n"
+"Change the current working directory to the specified path.\n"
+"\n"
+"path may always be specified as a string.\n"
+"On some platforms, path may also be specified as an open file descriptor.\n"
+" If this functionality is unavailable, using it raises an exception.");
+
+#define OS_CHDIR_METHODDEF \
+ {"chdir", (PyCFunction)os_chdir, METH_VARARGS|METH_KEYWORDS, os_chdir__doc__},
+
+static PyObject *
+os_chdir_impl(PyModuleDef *module, path_t *path);
+
+static PyObject *
+os_chdir(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"path", NULL};
+ path_t path = PATH_T_INITIALIZE("chdir", "path", 0, PATH_HAVE_FCHDIR);
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&:chdir", _keywords,
+ path_converter, &path))
+ goto exit;
+ return_value = os_chdir_impl(module, &path);
+
+exit:
+ /* Cleanup for path */
+ path_cleanup(&path);
+
+ return return_value;
+}
+
+#if defined(HAVE_FCHDIR)
+
+PyDoc_STRVAR(os_fchdir__doc__,
+"fchdir($module, /, fd)\n"
+"--\n"
+"\n"
+"Change to the directory of the given file descriptor.\n"
+"\n"
+"fd must be opened on a directory, not a file.\n"
+"Equivalent to os.chdir(fd).");
+
+#define OS_FCHDIR_METHODDEF \
+ {"fchdir", (PyCFunction)os_fchdir, METH_VARARGS|METH_KEYWORDS, os_fchdir__doc__},
+
+static PyObject *
+os_fchdir_impl(PyModuleDef *module, int fd);
+
+static PyObject *
+os_fchdir(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"fd", NULL};
+ int fd;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&:fchdir", _keywords,
+ fildes_converter, &fd))
+ goto exit;
+ return_value = os_fchdir_impl(module, fd);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_FCHDIR) */
+
+PyDoc_STRVAR(os_chmod__doc__,
+"chmod($module, /, path, mode, *, dir_fd=None, follow_symlinks=True)\n"
+"--\n"
+"\n"
+"Change the access permissions of a file.\n"
+"\n"
+" path\n"
+" Path to be modified. May always be specified as a str or bytes.\n"
+" On some platforms, path may also be specified as an open file descriptor.\n"
+" If this functionality is unavailable, using it raises an exception.\n"
+" mode\n"
+" Operating-system mode bitfield.\n"
+" dir_fd\n"
+" If not None, it should be a file descriptor open to a directory,\n"
+" and path should be relative; path will then be relative to that\n"
+" directory.\n"
+" follow_symlinks\n"
+" If False, and the last element of the path is a symbolic link,\n"
+" chmod will modify the symbolic link itself instead of the file\n"
+" the link points to.\n"
+"\n"
+"It is an error to use dir_fd or follow_symlinks when specifying path as\n"
+" an open file descriptor.\n"
+"dir_fd and follow_symlinks may not be implemented on your platform.\n"
+" If they are unavailable, using them will raise a NotImplementedError.");
+
+#define OS_CHMOD_METHODDEF \
+ {"chmod", (PyCFunction)os_chmod, METH_VARARGS|METH_KEYWORDS, os_chmod__doc__},
+
+static PyObject *
+os_chmod_impl(PyModuleDef *module, path_t *path, int mode, int dir_fd,
+ int follow_symlinks);
+
+static PyObject *
+os_chmod(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"path", "mode", "dir_fd", "follow_symlinks", NULL};
+ path_t path = PATH_T_INITIALIZE("chmod", "path", 0, PATH_HAVE_FCHMOD);
+ int mode;
+ int dir_fd = DEFAULT_DIR_FD;
+ int follow_symlinks = 1;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&i|$O&p:chmod", _keywords,
+ path_converter, &path, &mode, FCHMODAT_DIR_FD_CONVERTER, &dir_fd, &follow_symlinks))
+ goto exit;
+ return_value = os_chmod_impl(module, &path, mode, dir_fd, follow_symlinks);
+
+exit:
+ /* Cleanup for path */
+ path_cleanup(&path);
+
+ return return_value;
+}
+
+#if defined(HAVE_FCHMOD)
+
+PyDoc_STRVAR(os_fchmod__doc__,
+"fchmod($module, /, fd, mode)\n"
+"--\n"
+"\n"
+"Change the access permissions of the file given by file descriptor fd.\n"
+"\n"
+"Equivalent to os.chmod(fd, mode).");
+
+#define OS_FCHMOD_METHODDEF \
+ {"fchmod", (PyCFunction)os_fchmod, METH_VARARGS|METH_KEYWORDS, os_fchmod__doc__},
+
+static PyObject *
+os_fchmod_impl(PyModuleDef *module, int fd, int mode);
+
+static PyObject *
+os_fchmod(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"fd", "mode", NULL};
+ int fd;
+ int mode;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "ii:fchmod", _keywords,
+ &fd, &mode))
+ goto exit;
+ return_value = os_fchmod_impl(module, fd, mode);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_FCHMOD) */
+
+#if defined(HAVE_LCHMOD)
+
+PyDoc_STRVAR(os_lchmod__doc__,
+"lchmod($module, /, path, mode)\n"
+"--\n"
+"\n"
+"Change the access permissions of a file, without following symbolic links.\n"
+"\n"
+"If path is a symlink, this affects the link itself rather than the target.\n"
+"Equivalent to chmod(path, mode, follow_symlinks=False).\"");
+
+#define OS_LCHMOD_METHODDEF \
+ {"lchmod", (PyCFunction)os_lchmod, METH_VARARGS|METH_KEYWORDS, os_lchmod__doc__},
+
+static PyObject *
+os_lchmod_impl(PyModuleDef *module, path_t *path, int mode);
+
+static PyObject *
+os_lchmod(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"path", "mode", NULL};
+ path_t path = PATH_T_INITIALIZE("lchmod", "path", 0, 0);
+ int mode;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&i:lchmod", _keywords,
+ path_converter, &path, &mode))
+ goto exit;
+ return_value = os_lchmod_impl(module, &path, mode);
+
+exit:
+ /* Cleanup for path */
+ path_cleanup(&path);
+
+ return return_value;
+}
+
+#endif /* defined(HAVE_LCHMOD) */
+
+#if defined(HAVE_CHFLAGS)
+
+PyDoc_STRVAR(os_chflags__doc__,
+"chflags($module, /, path, flags, follow_symlinks=True)\n"
+"--\n"
+"\n"
+"Set file flags.\n"
+"\n"
+"If follow_symlinks is False, and the last element of the path is a symbolic\n"
+" link, chflags will change flags on the symbolic link itself instead of the\n"
+" file the link points to.\n"
+"follow_symlinks may not be implemented on your platform. If it is\n"
+"unavailable, using it will raise a NotImplementedError.");
+
+#define OS_CHFLAGS_METHODDEF \
+ {"chflags", (PyCFunction)os_chflags, METH_VARARGS|METH_KEYWORDS, os_chflags__doc__},
+
+static PyObject *
+os_chflags_impl(PyModuleDef *module, path_t *path, unsigned long flags,
+ int follow_symlinks);
+
+static PyObject *
+os_chflags(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"path", "flags", "follow_symlinks", NULL};
+ path_t path = PATH_T_INITIALIZE("chflags", "path", 0, 0);
+ unsigned long flags;
+ int follow_symlinks = 1;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&k|p:chflags", _keywords,
+ path_converter, &path, &flags, &follow_symlinks))
+ goto exit;
+ return_value = os_chflags_impl(module, &path, flags, follow_symlinks);
+
+exit:
+ /* Cleanup for path */
+ path_cleanup(&path);
+
+ return return_value;
+}
+
+#endif /* defined(HAVE_CHFLAGS) */
+
+#if defined(HAVE_LCHFLAGS)
+
+PyDoc_STRVAR(os_lchflags__doc__,
+"lchflags($module, /, path, flags)\n"
+"--\n"
+"\n"
+"Set file flags.\n"
+"\n"
+"This function will not follow symbolic links.\n"
+"Equivalent to chflags(path, flags, follow_symlinks=False).");
+
+#define OS_LCHFLAGS_METHODDEF \
+ {"lchflags", (PyCFunction)os_lchflags, METH_VARARGS|METH_KEYWORDS, os_lchflags__doc__},
+
+static PyObject *
+os_lchflags_impl(PyModuleDef *module, path_t *path, unsigned long flags);
+
+static PyObject *
+os_lchflags(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"path", "flags", NULL};
+ path_t path = PATH_T_INITIALIZE("lchflags", "path", 0, 0);
+ unsigned long flags;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&k:lchflags", _keywords,
+ path_converter, &path, &flags))
+ goto exit;
+ return_value = os_lchflags_impl(module, &path, flags);
+
+exit:
+ /* Cleanup for path */
+ path_cleanup(&path);
+
+ return return_value;
+}
+
+#endif /* defined(HAVE_LCHFLAGS) */
+
+#if defined(HAVE_CHROOT)
+
+PyDoc_STRVAR(os_chroot__doc__,
+"chroot($module, /, path)\n"
+"--\n"
+"\n"
+"Change root directory to path.");
+
+#define OS_CHROOT_METHODDEF \
+ {"chroot", (PyCFunction)os_chroot, METH_VARARGS|METH_KEYWORDS, os_chroot__doc__},
+
+static PyObject *
+os_chroot_impl(PyModuleDef *module, path_t *path);
+
+static PyObject *
+os_chroot(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"path", NULL};
+ path_t path = PATH_T_INITIALIZE("chroot", "path", 0, 0);
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&:chroot", _keywords,
+ path_converter, &path))
+ goto exit;
+ return_value = os_chroot_impl(module, &path);
+
+exit:
+ /* Cleanup for path */
+ path_cleanup(&path);
+
+ return return_value;
+}
+
+#endif /* defined(HAVE_CHROOT) */
+
+#if defined(HAVE_FSYNC)
+
+PyDoc_STRVAR(os_fsync__doc__,
+"fsync($module, /, fd)\n"
+"--\n"
+"\n"
+"Force write of fd to disk.");
+
+#define OS_FSYNC_METHODDEF \
+ {"fsync", (PyCFunction)os_fsync, METH_VARARGS|METH_KEYWORDS, os_fsync__doc__},
+
+static PyObject *
+os_fsync_impl(PyModuleDef *module, int fd);
+
+static PyObject *
+os_fsync(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"fd", NULL};
+ int fd;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&:fsync", _keywords,
+ fildes_converter, &fd))
+ goto exit;
+ return_value = os_fsync_impl(module, fd);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_FSYNC) */
+
+#if defined(HAVE_SYNC)
+
+PyDoc_STRVAR(os_sync__doc__,
+"sync($module, /)\n"
+"--\n"
+"\n"
+"Force write of everything to disk.");
+
+#define OS_SYNC_METHODDEF \
+ {"sync", (PyCFunction)os_sync, METH_NOARGS, os_sync__doc__},
+
+static PyObject *
+os_sync_impl(PyModuleDef *module);
+
+static PyObject *
+os_sync(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ return os_sync_impl(module);
+}
+
+#endif /* defined(HAVE_SYNC) */
+
+#if defined(HAVE_FDATASYNC)
+
+PyDoc_STRVAR(os_fdatasync__doc__,
+"fdatasync($module, /, fd)\n"
+"--\n"
+"\n"
+"Force write of fd to disk without forcing update of metadata.");
+
+#define OS_FDATASYNC_METHODDEF \
+ {"fdatasync", (PyCFunction)os_fdatasync, METH_VARARGS|METH_KEYWORDS, os_fdatasync__doc__},
+
+static PyObject *
+os_fdatasync_impl(PyModuleDef *module, int fd);
+
+static PyObject *
+os_fdatasync(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"fd", NULL};
+ int fd;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&:fdatasync", _keywords,
+ fildes_converter, &fd))
+ goto exit;
+ return_value = os_fdatasync_impl(module, fd);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_FDATASYNC) */
+
+#if defined(HAVE_CHOWN)
+
+PyDoc_STRVAR(os_chown__doc__,
+"chown($module, /, path, uid, gid, *, dir_fd=None, follow_symlinks=True)\n"
+"--\n"
+"\n"
+"Change the owner and group id of path to the numeric uid and gid.\\\n"
+"\n"
+" path\n"
+" Path to be examined; can be string, bytes, or open-file-descriptor int.\n"
+" dir_fd\n"
+" If not None, it should be a file descriptor open to a directory,\n"
+" and path should be relative; path will then be relative to that\n"
+" directory.\n"
+" follow_symlinks\n"
+" If False, and the last element of the path is a symbolic link,\n"
+" stat will examine the symbolic link itself instead of the file\n"
+" the link points to.\n"
+"\n"
+"path may always be specified as a string.\n"
+"On some platforms, path may also be specified as an open file descriptor.\n"
+" If this functionality is unavailable, using it raises an exception.\n"
+"If dir_fd is not None, it should be a file descriptor open to a directory,\n"
+" and path should be relative; path will then be relative to that directory.\n"
+"If follow_symlinks is False, and the last element of the path is a symbolic\n"
+" link, chown will modify the symbolic link itself instead of the file the\n"
+" link points to.\n"
+"It is an error to use dir_fd or follow_symlinks when specifying path as\n"
+" an open file descriptor.\n"
+"dir_fd and follow_symlinks may not be implemented on your platform.\n"
+" If they are unavailable, using them will raise a NotImplementedError.");
+
+#define OS_CHOWN_METHODDEF \
+ {"chown", (PyCFunction)os_chown, METH_VARARGS|METH_KEYWORDS, os_chown__doc__},
+
+static PyObject *
+os_chown_impl(PyModuleDef *module, path_t *path, uid_t uid, gid_t gid,
+ int dir_fd, int follow_symlinks);
+
+static PyObject *
+os_chown(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"path", "uid", "gid", "dir_fd", "follow_symlinks", NULL};
+ path_t path = PATH_T_INITIALIZE("chown", "path", 0, PATH_HAVE_FCHOWN);
+ uid_t uid;
+ gid_t gid;
+ int dir_fd = DEFAULT_DIR_FD;
+ int follow_symlinks = 1;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&O&|$O&p:chown", _keywords,
+ path_converter, &path, _Py_Uid_Converter, &uid, _Py_Gid_Converter, &gid, FCHOWNAT_DIR_FD_CONVERTER, &dir_fd, &follow_symlinks))
+ goto exit;
+ return_value = os_chown_impl(module, &path, uid, gid, dir_fd, follow_symlinks);
+
+exit:
+ /* Cleanup for path */
+ path_cleanup(&path);
+
+ return return_value;
+}
+
+#endif /* defined(HAVE_CHOWN) */
+
+#if defined(HAVE_FCHOWN)
+
+PyDoc_STRVAR(os_fchown__doc__,
+"fchown($module, /, fd, uid, gid)\n"
+"--\n"
+"\n"
+"Change the owner and group id of the file specified by file descriptor.\n"
+"\n"
+"Equivalent to os.chown(fd, uid, gid).");
+
+#define OS_FCHOWN_METHODDEF \
+ {"fchown", (PyCFunction)os_fchown, METH_VARARGS|METH_KEYWORDS, os_fchown__doc__},
+
+static PyObject *
+os_fchown_impl(PyModuleDef *module, int fd, uid_t uid, gid_t gid);
+
+static PyObject *
+os_fchown(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"fd", "uid", "gid", NULL};
+ int fd;
+ uid_t uid;
+ gid_t gid;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "iO&O&:fchown", _keywords,
+ &fd, _Py_Uid_Converter, &uid, _Py_Gid_Converter, &gid))
+ goto exit;
+ return_value = os_fchown_impl(module, fd, uid, gid);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_FCHOWN) */
+
+#if defined(HAVE_LCHOWN)
+
+PyDoc_STRVAR(os_lchown__doc__,
+"lchown($module, /, path, uid, gid)\n"
+"--\n"
+"\n"
+"Change the owner and group id of path to the numeric uid and gid.\n"
+"\n"
+"This function will not follow symbolic links.\n"
+"Equivalent to os.chown(path, uid, gid, follow_symlinks=False).");
+
+#define OS_LCHOWN_METHODDEF \
+ {"lchown", (PyCFunction)os_lchown, METH_VARARGS|METH_KEYWORDS, os_lchown__doc__},
+
+static PyObject *
+os_lchown_impl(PyModuleDef *module, path_t *path, uid_t uid, gid_t gid);
+
+static PyObject *
+os_lchown(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"path", "uid", "gid", NULL};
+ path_t path = PATH_T_INITIALIZE("lchown", "path", 0, 0);
+ uid_t uid;
+ gid_t gid;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&O&:lchown", _keywords,
+ path_converter, &path, _Py_Uid_Converter, &uid, _Py_Gid_Converter, &gid))
+ goto exit;
+ return_value = os_lchown_impl(module, &path, uid, gid);
+
+exit:
+ /* Cleanup for path */
+ path_cleanup(&path);
+
+ return return_value;
+}
+
+#endif /* defined(HAVE_LCHOWN) */
+
+PyDoc_STRVAR(os_getcwd__doc__,
+"getcwd($module, /)\n"
+"--\n"
+"\n"
+"Return a unicode string representing the current working directory.");
+
+#define OS_GETCWD_METHODDEF \
+ {"getcwd", (PyCFunction)os_getcwd, METH_NOARGS, os_getcwd__doc__},
+
+static PyObject *
+os_getcwd_impl(PyModuleDef *module);
+
+static PyObject *
+os_getcwd(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ return os_getcwd_impl(module);
+}
+
+PyDoc_STRVAR(os_getcwdb__doc__,
+"getcwdb($module, /)\n"
+"--\n"
+"\n"
+"Return a bytes string representing the current working directory.");
+
+#define OS_GETCWDB_METHODDEF \
+ {"getcwdb", (PyCFunction)os_getcwdb, METH_NOARGS, os_getcwdb__doc__},
+
+static PyObject *
+os_getcwdb_impl(PyModuleDef *module);
+
+static PyObject *
+os_getcwdb(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ return os_getcwdb_impl(module);
+}
+
+#if defined(HAVE_LINK)
+
+PyDoc_STRVAR(os_link__doc__,
+"link($module, /, src, dst, *, src_dir_fd=None, dst_dir_fd=None,\n"
+" follow_symlinks=True)\n"
+"--\n"
+"\n"
+"Create a hard link to a file.\n"
+"\n"
+"If either src_dir_fd or dst_dir_fd is not None, it should be a file\n"
+" descriptor open to a directory, and the respective path string (src or dst)\n"
+" should be relative; the path will then be relative to that directory.\n"
+"If follow_symlinks is False, and the last element of src is a symbolic\n"
+" link, link will create a link to the symbolic link itself instead of the\n"
+" file the link points to.\n"
+"src_dir_fd, dst_dir_fd, and follow_symlinks may not be implemented on your\n"
+" platform. If they are unavailable, using them will raise a\n"
+" NotImplementedError.");
+
+#define OS_LINK_METHODDEF \
+ {"link", (PyCFunction)os_link, METH_VARARGS|METH_KEYWORDS, os_link__doc__},
+
+static PyObject *
+os_link_impl(PyModuleDef *module, path_t *src, path_t *dst, int src_dir_fd,
+ int dst_dir_fd, int follow_symlinks);
+
+static PyObject *
+os_link(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"src", "dst", "src_dir_fd", "dst_dir_fd", "follow_symlinks", NULL};
+ path_t src = PATH_T_INITIALIZE("link", "src", 0, 0);
+ path_t dst = PATH_T_INITIALIZE("link", "dst", 0, 0);
+ int src_dir_fd = DEFAULT_DIR_FD;
+ int dst_dir_fd = DEFAULT_DIR_FD;
+ int follow_symlinks = 1;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&|$O&O&p:link", _keywords,
+ path_converter, &src, path_converter, &dst, dir_fd_converter, &src_dir_fd, dir_fd_converter, &dst_dir_fd, &follow_symlinks))
+ goto exit;
+ return_value = os_link_impl(module, &src, &dst, src_dir_fd, dst_dir_fd, follow_symlinks);
+
+exit:
+ /* Cleanup for src */
+ path_cleanup(&src);
+ /* Cleanup for dst */
+ path_cleanup(&dst);
+
+ return return_value;
+}
+
+#endif /* defined(HAVE_LINK) */
+
+PyDoc_STRVAR(os_listdir__doc__,
+"listdir($module, /, path=None)\n"
+"--\n"
+"\n"
+"Return a list containing the names of the files in the directory.\n"
+"\n"
+"path can be specified as either str or bytes. If path is bytes,\n"
+" the filenames returned will also be bytes; in all other circumstances\n"
+" the filenames returned will be str.\n"
+"If path is None, uses the path=\'.\'.\n"
+"On some platforms, path may also be specified as an open file descriptor;\\\n"
+" the file descriptor must refer to a directory.\n"
+" If this functionality is unavailable, using it raises NotImplementedError.\n"
+"\n"
+"The list is in arbitrary order. It does not include the special\n"
+"entries \'.\' and \'..\' even if they are present in the directory.");
+
+#define OS_LISTDIR_METHODDEF \
+ {"listdir", (PyCFunction)os_listdir, METH_VARARGS|METH_KEYWORDS, os_listdir__doc__},
+
+static PyObject *
+os_listdir_impl(PyModuleDef *module, path_t *path);
+
+static PyObject *
+os_listdir(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"path", NULL};
+ path_t path = PATH_T_INITIALIZE("listdir", "path", 1, PATH_HAVE_FDOPENDIR);
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|O&:listdir", _keywords,
+ path_converter, &path))
+ goto exit;
+ return_value = os_listdir_impl(module, &path);
+
+exit:
+ /* Cleanup for path */
+ path_cleanup(&path);
+
+ return return_value;
+}
+
+#if defined(MS_WINDOWS)
+
+PyDoc_STRVAR(os__getfullpathname__doc__,
+"_getfullpathname($module, path, /)\n"
+"--\n"
+"\n");
+
+#define OS__GETFULLPATHNAME_METHODDEF \
+ {"_getfullpathname", (PyCFunction)os__getfullpathname, METH_O, os__getfullpathname__doc__},
+
+static PyObject *
+os__getfullpathname_impl(PyModuleDef *module, path_t *path);
+
+static PyObject *
+os__getfullpathname(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ path_t path = PATH_T_INITIALIZE("_getfullpathname", "path", 0, 0);
+
+ if (!PyArg_Parse(arg, "O&:_getfullpathname", path_converter, &path))
+ goto exit;
+ return_value = os__getfullpathname_impl(module, &path);
+
+exit:
+ /* Cleanup for path */
+ path_cleanup(&path);
+
+ return return_value;
+}
+
+#endif /* defined(MS_WINDOWS) */
+
+#if defined(MS_WINDOWS)
+
+PyDoc_STRVAR(os__getfinalpathname__doc__,
+"_getfinalpathname($module, path, /)\n"
+"--\n"
+"\n"
+"A helper function for samepath on windows.");
+
+#define OS__GETFINALPATHNAME_METHODDEF \
+ {"_getfinalpathname", (PyCFunction)os__getfinalpathname, METH_O, os__getfinalpathname__doc__},
+
+static PyObject *
+os__getfinalpathname_impl(PyModuleDef *module, PyObject *path);
+
+static PyObject *
+os__getfinalpathname(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ PyObject *path;
+
+ if (!PyArg_Parse(arg, "U:_getfinalpathname", &path))
+ goto exit;
+ return_value = os__getfinalpathname_impl(module, path);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(MS_WINDOWS) */
+
+#if defined(MS_WINDOWS)
+
+PyDoc_STRVAR(os__isdir__doc__,
+"_isdir($module, path, /)\n"
+"--\n"
+"\n");
+
+#define OS__ISDIR_METHODDEF \
+ {"_isdir", (PyCFunction)os__isdir, METH_O, os__isdir__doc__},
+
+static PyObject *
+os__isdir_impl(PyModuleDef *module, path_t *path);
+
+static PyObject *
+os__isdir(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ path_t path = PATH_T_INITIALIZE("_isdir", "path", 0, 0);
+
+ if (!PyArg_Parse(arg, "O&:_isdir", path_converter, &path))
+ goto exit;
+ return_value = os__isdir_impl(module, &path);
+
+exit:
+ /* Cleanup for path */
+ path_cleanup(&path);
+
+ return return_value;
+}
+
+#endif /* defined(MS_WINDOWS) */
+
+#if defined(MS_WINDOWS)
+
+PyDoc_STRVAR(os__getvolumepathname__doc__,
+"_getvolumepathname($module, /, path)\n"
+"--\n"
+"\n"
+"A helper function for ismount on Win32.");
+
+#define OS__GETVOLUMEPATHNAME_METHODDEF \
+ {"_getvolumepathname", (PyCFunction)os__getvolumepathname, METH_VARARGS|METH_KEYWORDS, os__getvolumepathname__doc__},
+
+static PyObject *
+os__getvolumepathname_impl(PyModuleDef *module, PyObject *path);
+
+static PyObject *
+os__getvolumepathname(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"path", NULL};
+ PyObject *path;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "U:_getvolumepathname", _keywords,
+ &path))
+ goto exit;
+ return_value = os__getvolumepathname_impl(module, path);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(MS_WINDOWS) */
+
+PyDoc_STRVAR(os_mkdir__doc__,
+"mkdir($module, /, path, mode=511, *, dir_fd=None)\n"
+"--\n"
+"\n"
+"Create a directory.\n"
+"\n"
+"If dir_fd is not None, it should be a file descriptor open to a directory,\n"
+" and path should be relative; path will then be relative to that directory.\n"
+"dir_fd may not be implemented on your platform.\n"
+" If it is unavailable, using it will raise a NotImplementedError.\n"
+"\n"
+"The mode argument is ignored on Windows.");
+
+#define OS_MKDIR_METHODDEF \
+ {"mkdir", (PyCFunction)os_mkdir, METH_VARARGS|METH_KEYWORDS, os_mkdir__doc__},
+
+static PyObject *
+os_mkdir_impl(PyModuleDef *module, path_t *path, int mode, int dir_fd);
+
+static PyObject *
+os_mkdir(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"path", "mode", "dir_fd", NULL};
+ path_t path = PATH_T_INITIALIZE("mkdir", "path", 0, 0);
+ int mode = 511;
+ int dir_fd = DEFAULT_DIR_FD;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&|i$O&:mkdir", _keywords,
+ path_converter, &path, &mode, MKDIRAT_DIR_FD_CONVERTER, &dir_fd))
+ goto exit;
+ return_value = os_mkdir_impl(module, &path, mode, dir_fd);
+
+exit:
+ /* Cleanup for path */
+ path_cleanup(&path);
+
+ return return_value;
+}
+
+#if defined(HAVE_NICE)
+
+PyDoc_STRVAR(os_nice__doc__,
+"nice($module, increment, /)\n"
+"--\n"
+"\n"
+"Add increment to the priority of process and return the new priority.");
+
+#define OS_NICE_METHODDEF \
+ {"nice", (PyCFunction)os_nice, METH_O, os_nice__doc__},
+
+static PyObject *
+os_nice_impl(PyModuleDef *module, int increment);
+
+static PyObject *
+os_nice(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int increment;
+
+ if (!PyArg_Parse(arg, "i:nice", &increment))
+ goto exit;
+ return_value = os_nice_impl(module, increment);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_NICE) */
+
+#if defined(HAVE_GETPRIORITY)
+
+PyDoc_STRVAR(os_getpriority__doc__,
+"getpriority($module, /, which, who)\n"
+"--\n"
+"\n"
+"Return program scheduling priority.");
+
+#define OS_GETPRIORITY_METHODDEF \
+ {"getpriority", (PyCFunction)os_getpriority, METH_VARARGS|METH_KEYWORDS, os_getpriority__doc__},
+
+static PyObject *
+os_getpriority_impl(PyModuleDef *module, int which, int who);
+
+static PyObject *
+os_getpriority(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"which", "who", NULL};
+ int which;
+ int who;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "ii:getpriority", _keywords,
+ &which, &who))
+ goto exit;
+ return_value = os_getpriority_impl(module, which, who);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_GETPRIORITY) */
+
+#if defined(HAVE_SETPRIORITY)
+
+PyDoc_STRVAR(os_setpriority__doc__,
+"setpriority($module, /, which, who, priority)\n"
+"--\n"
+"\n"
+"Set program scheduling priority.");
+
+#define OS_SETPRIORITY_METHODDEF \
+ {"setpriority", (PyCFunction)os_setpriority, METH_VARARGS|METH_KEYWORDS, os_setpriority__doc__},
+
+static PyObject *
+os_setpriority_impl(PyModuleDef *module, int which, int who, int priority);
+
+static PyObject *
+os_setpriority(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"which", "who", "priority", NULL};
+ int which;
+ int who;
+ int priority;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "iii:setpriority", _keywords,
+ &which, &who, &priority))
+ goto exit;
+ return_value = os_setpriority_impl(module, which, who, priority);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SETPRIORITY) */
+
+PyDoc_STRVAR(os_rename__doc__,
+"rename($module, /, src, dst, *, src_dir_fd=None, dst_dir_fd=None)\n"
+"--\n"
+"\n"
+"Rename a file or directory.\n"
+"\n"
+"If either src_dir_fd or dst_dir_fd is not None, it should be a file\n"
+" descriptor open to a directory, and the respective path string (src or dst)\n"
+" should be relative; the path will then be relative to that directory.\n"
+"src_dir_fd and dst_dir_fd, may not be implemented on your platform.\n"
+" If they are unavailable, using them will raise a NotImplementedError.");
+
+#define OS_RENAME_METHODDEF \
+ {"rename", (PyCFunction)os_rename, METH_VARARGS|METH_KEYWORDS, os_rename__doc__},
+
+static PyObject *
+os_rename_impl(PyModuleDef *module, path_t *src, path_t *dst, int src_dir_fd,
+ int dst_dir_fd);
+
+static PyObject *
+os_rename(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"src", "dst", "src_dir_fd", "dst_dir_fd", NULL};
+ path_t src = PATH_T_INITIALIZE("rename", "src", 0, 0);
+ path_t dst = PATH_T_INITIALIZE("rename", "dst", 0, 0);
+ int src_dir_fd = DEFAULT_DIR_FD;
+ int dst_dir_fd = DEFAULT_DIR_FD;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&|$O&O&:rename", _keywords,
+ path_converter, &src, path_converter, &dst, dir_fd_converter, &src_dir_fd, dir_fd_converter, &dst_dir_fd))
+ goto exit;
+ return_value = os_rename_impl(module, &src, &dst, src_dir_fd, dst_dir_fd);
+
+exit:
+ /* Cleanup for src */
+ path_cleanup(&src);
+ /* Cleanup for dst */
+ path_cleanup(&dst);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(os_replace__doc__,
+"replace($module, /, src, dst, *, src_dir_fd=None, dst_dir_fd=None)\n"
+"--\n"
+"\n"
+"Rename a file or directory, overwriting the destination.\n"
+"\n"
+"If either src_dir_fd or dst_dir_fd is not None, it should be a file\n"
+" descriptor open to a directory, and the respective path string (src or dst)\n"
+" should be relative; the path will then be relative to that directory.\n"
+"src_dir_fd and dst_dir_fd, may not be implemented on your platform.\n"
+" If they are unavailable, using them will raise a NotImplementedError.\"");
+
+#define OS_REPLACE_METHODDEF \
+ {"replace", (PyCFunction)os_replace, METH_VARARGS|METH_KEYWORDS, os_replace__doc__},
+
+static PyObject *
+os_replace_impl(PyModuleDef *module, path_t *src, path_t *dst,
+ int src_dir_fd, int dst_dir_fd);
+
+static PyObject *
+os_replace(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"src", "dst", "src_dir_fd", "dst_dir_fd", NULL};
+ path_t src = PATH_T_INITIALIZE("replace", "src", 0, 0);
+ path_t dst = PATH_T_INITIALIZE("replace", "dst", 0, 0);
+ int src_dir_fd = DEFAULT_DIR_FD;
+ int dst_dir_fd = DEFAULT_DIR_FD;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&|$O&O&:replace", _keywords,
+ path_converter, &src, path_converter, &dst, dir_fd_converter, &src_dir_fd, dir_fd_converter, &dst_dir_fd))
+ goto exit;
+ return_value = os_replace_impl(module, &src, &dst, src_dir_fd, dst_dir_fd);
+
+exit:
+ /* Cleanup for src */
+ path_cleanup(&src);
+ /* Cleanup for dst */
+ path_cleanup(&dst);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(os_rmdir__doc__,
+"rmdir($module, /, path, *, dir_fd=None)\n"
+"--\n"
+"\n"
+"Remove a directory.\n"
+"\n"
+"If dir_fd is not None, it should be a file descriptor open to a directory,\n"
+" and path should be relative; path will then be relative to that directory.\n"
+"dir_fd may not be implemented on your platform.\n"
+" If it is unavailable, using it will raise a NotImplementedError.");
+
+#define OS_RMDIR_METHODDEF \
+ {"rmdir", (PyCFunction)os_rmdir, METH_VARARGS|METH_KEYWORDS, os_rmdir__doc__},
+
+static PyObject *
+os_rmdir_impl(PyModuleDef *module, path_t *path, int dir_fd);
+
+static PyObject *
+os_rmdir(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"path", "dir_fd", NULL};
+ path_t path = PATH_T_INITIALIZE("rmdir", "path", 0, 0);
+ int dir_fd = DEFAULT_DIR_FD;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&|$O&:rmdir", _keywords,
+ path_converter, &path, UNLINKAT_DIR_FD_CONVERTER, &dir_fd))
+ goto exit;
+ return_value = os_rmdir_impl(module, &path, dir_fd);
+
+exit:
+ /* Cleanup for path */
+ path_cleanup(&path);
+
+ return return_value;
+}
+
+#if defined(HAVE_SYSTEM) && defined(MS_WINDOWS)
+
+PyDoc_STRVAR(os_system__doc__,
+"system($module, /, command)\n"
+"--\n"
+"\n"
+"Execute the command in a subshell.");
+
+#define OS_SYSTEM_METHODDEF \
+ {"system", (PyCFunction)os_system, METH_VARARGS|METH_KEYWORDS, os_system__doc__},
+
+static long
+os_system_impl(PyModuleDef *module, Py_UNICODE *command);
+
+static PyObject *
+os_system(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"command", NULL};
+ Py_UNICODE *command;
+ long _return_value;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "u:system", _keywords,
+ &command))
+ goto exit;
+ _return_value = os_system_impl(module, command);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyLong_FromLong(_return_value);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SYSTEM) && defined(MS_WINDOWS) */
+
+#if defined(HAVE_SYSTEM) && !defined(MS_WINDOWS)
+
+PyDoc_STRVAR(os_system__doc__,
+"system($module, /, command)\n"
+"--\n"
+"\n"
+"Execute the command in a subshell.");
+
+#define OS_SYSTEM_METHODDEF \
+ {"system", (PyCFunction)os_system, METH_VARARGS|METH_KEYWORDS, os_system__doc__},
+
+static long
+os_system_impl(PyModuleDef *module, PyObject *command);
+
+static PyObject *
+os_system(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"command", NULL};
+ PyObject *command = NULL;
+ long _return_value;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&:system", _keywords,
+ PyUnicode_FSConverter, &command))
+ goto exit;
+ _return_value = os_system_impl(module, command);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyLong_FromLong(_return_value);
+
+exit:
+ /* Cleanup for command */
+ Py_XDECREF(command);
+
+ return return_value;
+}
+
+#endif /* defined(HAVE_SYSTEM) && !defined(MS_WINDOWS) */
+
+PyDoc_STRVAR(os_umask__doc__,
+"umask($module, mask, /)\n"
+"--\n"
+"\n"
+"Set the current numeric umask and return the previous umask.");
+
+#define OS_UMASK_METHODDEF \
+ {"umask", (PyCFunction)os_umask, METH_O, os_umask__doc__},
+
+static PyObject *
+os_umask_impl(PyModuleDef *module, int mask);
+
+static PyObject *
+os_umask(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int mask;
+
+ if (!PyArg_Parse(arg, "i:umask", &mask))
+ goto exit;
+ return_value = os_umask_impl(module, mask);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(os_unlink__doc__,
+"unlink($module, /, path, *, dir_fd=None)\n"
+"--\n"
+"\n"
+"Remove a file (same as remove()).\n"
+"\n"
+"If dir_fd is not None, it should be a file descriptor open to a directory,\n"
+" and path should be relative; path will then be relative to that directory.\n"
+"dir_fd may not be implemented on your platform.\n"
+" If it is unavailable, using it will raise a NotImplementedError.");
+
+#define OS_UNLINK_METHODDEF \
+ {"unlink", (PyCFunction)os_unlink, METH_VARARGS|METH_KEYWORDS, os_unlink__doc__},
+
+static PyObject *
+os_unlink_impl(PyModuleDef *module, path_t *path, int dir_fd);
+
+static PyObject *
+os_unlink(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"path", "dir_fd", NULL};
+ path_t path = PATH_T_INITIALIZE("unlink", "path", 0, 0);
+ int dir_fd = DEFAULT_DIR_FD;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&|$O&:unlink", _keywords,
+ path_converter, &path, UNLINKAT_DIR_FD_CONVERTER, &dir_fd))
+ goto exit;
+ return_value = os_unlink_impl(module, &path, dir_fd);
+
+exit:
+ /* Cleanup for path */
+ path_cleanup(&path);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(os_remove__doc__,
+"remove($module, /, path, *, dir_fd=None)\n"
+"--\n"
+"\n"
+"Remove a file (same as unlink()).\n"
+"\n"
+"If dir_fd is not None, it should be a file descriptor open to a directory,\n"
+" and path should be relative; path will then be relative to that directory.\n"
+"dir_fd may not be implemented on your platform.\n"
+" If it is unavailable, using it will raise a NotImplementedError.");
+
+#define OS_REMOVE_METHODDEF \
+ {"remove", (PyCFunction)os_remove, METH_VARARGS|METH_KEYWORDS, os_remove__doc__},
+
+static PyObject *
+os_remove_impl(PyModuleDef *module, path_t *path, int dir_fd);
+
+static PyObject *
+os_remove(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"path", "dir_fd", NULL};
+ path_t path = PATH_T_INITIALIZE("remove", "path", 0, 0);
+ int dir_fd = DEFAULT_DIR_FD;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&|$O&:remove", _keywords,
+ path_converter, &path, UNLINKAT_DIR_FD_CONVERTER, &dir_fd))
+ goto exit;
+ return_value = os_remove_impl(module, &path, dir_fd);
+
+exit:
+ /* Cleanup for path */
+ path_cleanup(&path);
+
+ return return_value;
+}
+
+#if defined(HAVE_UNAME)
+
+PyDoc_STRVAR(os_uname__doc__,
+"uname($module, /)\n"
+"--\n"
+"\n"
+"Return an object identifying the current operating system.\n"
+"\n"
+"The object behaves like a named tuple with the following fields:\n"
+" (sysname, nodename, release, version, machine)");
+
+#define OS_UNAME_METHODDEF \
+ {"uname", (PyCFunction)os_uname, METH_NOARGS, os_uname__doc__},
+
+static PyObject *
+os_uname_impl(PyModuleDef *module);
+
+static PyObject *
+os_uname(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ return os_uname_impl(module);
+}
+
+#endif /* defined(HAVE_UNAME) */
+
+PyDoc_STRVAR(os_utime__doc__,
+"utime($module, /, path, times=None, *, ns=None, dir_fd=None,\n"
+" follow_symlinks=True)\n"
+"--\n"
+"\n"
+"Set the access and modified time of path.\n"
+"\n"
+"path may always be specified as a string.\n"
+"On some platforms, path may also be specified as an open file descriptor.\n"
+" If this functionality is unavailable, using it raises an exception.\n"
+"\n"
+"If times is not None, it must be a tuple (atime, mtime);\n"
+" atime and mtime should be expressed as float seconds since the epoch.\n"
+"If ns is specified, it must be a tuple (atime_ns, mtime_ns);\n"
+" atime_ns and mtime_ns should be expressed as integer nanoseconds\n"
+" since the epoch.\n"
+"If times is None and ns is unspecified, utime uses the current time.\n"
+"Specifying tuples for both times and ns is an error.\n"
+"\n"
+"If dir_fd is not None, it should be a file descriptor open to a directory,\n"
+" and path should be relative; path will then be relative to that directory.\n"
+"If follow_symlinks is False, and the last element of the path is a symbolic\n"
+" link, utime will modify the symbolic link itself instead of the file the\n"
+" link points to.\n"
+"It is an error to use dir_fd or follow_symlinks when specifying path\n"
+" as an open file descriptor.\n"
+"dir_fd and follow_symlinks may not be available on your platform.\n"
+" If they are unavailable, using them will raise a NotImplementedError.");
+
+#define OS_UTIME_METHODDEF \
+ {"utime", (PyCFunction)os_utime, METH_VARARGS|METH_KEYWORDS, os_utime__doc__},
+
+static PyObject *
+os_utime_impl(PyModuleDef *module, path_t *path, PyObject *times,
+ PyObject *ns, int dir_fd, int follow_symlinks);
+
+static PyObject *
+os_utime(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"path", "times", "ns", "dir_fd", "follow_symlinks", NULL};
+ path_t path = PATH_T_INITIALIZE("utime", "path", 0, PATH_UTIME_HAVE_FD);
+ PyObject *times = NULL;
+ PyObject *ns = NULL;
+ int dir_fd = DEFAULT_DIR_FD;
+ int follow_symlinks = 1;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&|O$OO&p:utime", _keywords,
+ path_converter, &path, &times, &ns, FUTIMENSAT_DIR_FD_CONVERTER, &dir_fd, &follow_symlinks))
+ goto exit;
+ return_value = os_utime_impl(module, &path, times, ns, dir_fd, follow_symlinks);
+
+exit:
+ /* Cleanup for path */
+ path_cleanup(&path);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(os__exit__doc__,
+"_exit($module, /, status)\n"
+"--\n"
+"\n"
+"Exit to the system with specified status, without normal exit processing.");
+
+#define OS__EXIT_METHODDEF \
+ {"_exit", (PyCFunction)os__exit, METH_VARARGS|METH_KEYWORDS, os__exit__doc__},
+
+static PyObject *
+os__exit_impl(PyModuleDef *module, int status);
+
+static PyObject *
+os__exit(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"status", NULL};
+ int status;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i:_exit", _keywords,
+ &status))
+ goto exit;
+ return_value = os__exit_impl(module, status);
+
+exit:
+ return return_value;
+}
+
+#if defined(HAVE_EXECV)
+
+PyDoc_STRVAR(os_execv__doc__,
+"execv($module, path, argv, /)\n"
+"--\n"
+"\n"
+"Execute an executable path with arguments, replacing current process.\n"
+"\n"
+" path\n"
+" Path of executable file.\n"
+" argv\n"
+" Tuple or list of strings.");
+
+#define OS_EXECV_METHODDEF \
+ {"execv", (PyCFunction)os_execv, METH_VARARGS, os_execv__doc__},
+
+static PyObject *
+os_execv_impl(PyModuleDef *module, PyObject *path, PyObject *argv);
+
+static PyObject *
+os_execv(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *path = NULL;
+ PyObject *argv;
+
+ if (!PyArg_ParseTuple(args, "O&O:execv",
+ PyUnicode_FSConverter, &path, &argv))
+ goto exit;
+ return_value = os_execv_impl(module, path, argv);
+
+exit:
+ /* Cleanup for path */
+ Py_XDECREF(path);
+
+ return return_value;
+}
+
+#endif /* defined(HAVE_EXECV) */
+
+#if defined(HAVE_EXECV)
+
+PyDoc_STRVAR(os_execve__doc__,
+"execve($module, /, path, argv, env)\n"
+"--\n"
+"\n"
+"Execute an executable path with arguments, replacing current process.\n"
+"\n"
+" path\n"
+" Path of executable file.\n"
+" argv\n"
+" Tuple or list of strings.\n"
+" env\n"
+" Dictionary of strings mapping to strings.");
+
+#define OS_EXECVE_METHODDEF \
+ {"execve", (PyCFunction)os_execve, METH_VARARGS|METH_KEYWORDS, os_execve__doc__},
+
+static PyObject *
+os_execve_impl(PyModuleDef *module, path_t *path, PyObject *argv,
+ PyObject *env);
+
+static PyObject *
+os_execve(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"path", "argv", "env", NULL};
+ path_t path = PATH_T_INITIALIZE("execve", "path", 0, PATH_HAVE_FEXECVE);
+ PyObject *argv;
+ PyObject *env;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&OO:execve", _keywords,
+ path_converter, &path, &argv, &env))
+ goto exit;
+ return_value = os_execve_impl(module, &path, argv, env);
+
+exit:
+ /* Cleanup for path */
+ path_cleanup(&path);
+
+ return return_value;
+}
+
+#endif /* defined(HAVE_EXECV) */
+
+#if defined(HAVE_SPAWNV)
+
+PyDoc_STRVAR(os_spawnv__doc__,
+"spawnv($module, mode, path, argv, /)\n"
+"--\n"
+"\n"
+"Execute the program specified by path in a new process.\n"
+"\n"
+" mode\n"
+" Mode of process creation.\n"
+" path\n"
+" Path of executable file.\n"
+" argv\n"
+" Tuple or list of strings.");
+
+#define OS_SPAWNV_METHODDEF \
+ {"spawnv", (PyCFunction)os_spawnv, METH_VARARGS, os_spawnv__doc__},
+
+static PyObject *
+os_spawnv_impl(PyModuleDef *module, int mode, PyObject *path, PyObject *argv);
+
+static PyObject *
+os_spawnv(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int mode;
+ PyObject *path = NULL;
+ PyObject *argv;
+
+ if (!PyArg_ParseTuple(args, "iO&O:spawnv",
+ &mode, PyUnicode_FSConverter, &path, &argv))
+ goto exit;
+ return_value = os_spawnv_impl(module, mode, path, argv);
+
+exit:
+ /* Cleanup for path */
+ Py_XDECREF(path);
+
+ return return_value;
+}
+
+#endif /* defined(HAVE_SPAWNV) */
+
+#if defined(HAVE_SPAWNV)
+
+PyDoc_STRVAR(os_spawnve__doc__,
+"spawnve($module, mode, path, argv, env, /)\n"
+"--\n"
+"\n"
+"Execute the program specified by path in a new process.\n"
+"\n"
+" mode\n"
+" Mode of process creation.\n"
+" path\n"
+" Path of executable file.\n"
+" argv\n"
+" Tuple or list of strings.\n"
+" env\n"
+" Dictionary of strings mapping to strings.");
+
+#define OS_SPAWNVE_METHODDEF \
+ {"spawnve", (PyCFunction)os_spawnve, METH_VARARGS, os_spawnve__doc__},
+
+static PyObject *
+os_spawnve_impl(PyModuleDef *module, int mode, PyObject *path,
+ PyObject *argv, PyObject *env);
+
+static PyObject *
+os_spawnve(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int mode;
+ PyObject *path = NULL;
+ PyObject *argv;
+ PyObject *env;
+
+ if (!PyArg_ParseTuple(args, "iO&OO:spawnve",
+ &mode, PyUnicode_FSConverter, &path, &argv, &env))
+ goto exit;
+ return_value = os_spawnve_impl(module, mode, path, argv, env);
+
+exit:
+ /* Cleanup for path */
+ Py_XDECREF(path);
+
+ return return_value;
+}
+
+#endif /* defined(HAVE_SPAWNV) */
+
+#if defined(HAVE_FORK1)
+
+PyDoc_STRVAR(os_fork1__doc__,
+"fork1($module, /)\n"
+"--\n"
+"\n"
+"Fork a child process with a single multiplexed (i.e., not bound) thread.\n"
+"\n"
+"Return 0 to child process and PID of child to parent process.");
+
+#define OS_FORK1_METHODDEF \
+ {"fork1", (PyCFunction)os_fork1, METH_NOARGS, os_fork1__doc__},
+
+static PyObject *
+os_fork1_impl(PyModuleDef *module);
+
+static PyObject *
+os_fork1(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ return os_fork1_impl(module);
+}
+
+#endif /* defined(HAVE_FORK1) */
+
+#if defined(HAVE_FORK)
+
+PyDoc_STRVAR(os_fork__doc__,
+"fork($module, /)\n"
+"--\n"
+"\n"
+"Fork a child process.\n"
+"\n"
+"Return 0 to child process and PID of child to parent process.");
+
+#define OS_FORK_METHODDEF \
+ {"fork", (PyCFunction)os_fork, METH_NOARGS, os_fork__doc__},
+
+static PyObject *
+os_fork_impl(PyModuleDef *module);
+
+static PyObject *
+os_fork(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ return os_fork_impl(module);
+}
+
+#endif /* defined(HAVE_FORK) */
+
+#if defined(HAVE_SCHED_H) && defined(HAVE_SCHED_GET_PRIORITY_MAX)
+
+PyDoc_STRVAR(os_sched_get_priority_max__doc__,
+"sched_get_priority_max($module, /, policy)\n"
+"--\n"
+"\n"
+"Get the maximum scheduling priority for policy.");
+
+#define OS_SCHED_GET_PRIORITY_MAX_METHODDEF \
+ {"sched_get_priority_max", (PyCFunction)os_sched_get_priority_max, METH_VARARGS|METH_KEYWORDS, os_sched_get_priority_max__doc__},
+
+static PyObject *
+os_sched_get_priority_max_impl(PyModuleDef *module, int policy);
+
+static PyObject *
+os_sched_get_priority_max(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"policy", NULL};
+ int policy;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i:sched_get_priority_max", _keywords,
+ &policy))
+ goto exit;
+ return_value = os_sched_get_priority_max_impl(module, policy);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SCHED_H) && defined(HAVE_SCHED_GET_PRIORITY_MAX) */
+
+#if defined(HAVE_SCHED_H) && defined(HAVE_SCHED_GET_PRIORITY_MAX)
+
+PyDoc_STRVAR(os_sched_get_priority_min__doc__,
+"sched_get_priority_min($module, /, policy)\n"
+"--\n"
+"\n"
+"Get the minimum scheduling priority for policy.");
+
+#define OS_SCHED_GET_PRIORITY_MIN_METHODDEF \
+ {"sched_get_priority_min", (PyCFunction)os_sched_get_priority_min, METH_VARARGS|METH_KEYWORDS, os_sched_get_priority_min__doc__},
+
+static PyObject *
+os_sched_get_priority_min_impl(PyModuleDef *module, int policy);
+
+static PyObject *
+os_sched_get_priority_min(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"policy", NULL};
+ int policy;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i:sched_get_priority_min", _keywords,
+ &policy))
+ goto exit;
+ return_value = os_sched_get_priority_min_impl(module, policy);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SCHED_H) && defined(HAVE_SCHED_GET_PRIORITY_MAX) */
+
+#if defined(HAVE_SCHED_H) && defined(HAVE_SCHED_SETSCHEDULER)
+
+PyDoc_STRVAR(os_sched_getscheduler__doc__,
+"sched_getscheduler($module, pid, /)\n"
+"--\n"
+"\n"
+"Get the scheduling policy for the process identifiedy by pid.\n"
+"\n"
+"Passing 0 for pid returns the scheduling policy for the calling process.");
+
+#define OS_SCHED_GETSCHEDULER_METHODDEF \
+ {"sched_getscheduler", (PyCFunction)os_sched_getscheduler, METH_O, os_sched_getscheduler__doc__},
+
+static PyObject *
+os_sched_getscheduler_impl(PyModuleDef *module, pid_t pid);
+
+static PyObject *
+os_sched_getscheduler(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ pid_t pid;
+
+ if (!PyArg_Parse(arg, "" _Py_PARSE_PID ":sched_getscheduler", &pid))
+ goto exit;
+ return_value = os_sched_getscheduler_impl(module, pid);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SCHED_H) && defined(HAVE_SCHED_SETSCHEDULER) */
+
+#if defined(HAVE_SCHED_H) && (defined(HAVE_SCHED_SETSCHEDULER) || defined(HAVE_SCHED_SETPARAM))
+
+PyDoc_STRVAR(os_sched_param__doc__,
+"sched_param(sched_priority)\n"
+"--\n"
+"\n"
+"Current has only one field: sched_priority\");\n"
+"\n"
+" sched_priority\n"
+" A scheduling parameter.");
+
+static PyObject *
+os_sched_param_impl(PyTypeObject *type, PyObject *sched_priority);
+
+static PyObject *
+os_sched_param(PyTypeObject *type, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"sched_priority", NULL};
+ PyObject *sched_priority;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O:sched_param", _keywords,
+ &sched_priority))
+ goto exit;
+ return_value = os_sched_param_impl(type, sched_priority);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SCHED_H) && (defined(HAVE_SCHED_SETSCHEDULER) || defined(HAVE_SCHED_SETPARAM)) */
+
+#if defined(HAVE_SCHED_H) && defined(HAVE_SCHED_SETSCHEDULER)
+
+PyDoc_STRVAR(os_sched_setscheduler__doc__,
+"sched_setscheduler($module, pid, policy, param, /)\n"
+"--\n"
+"\n"
+"Set the scheduling policy for the process identified by pid.\n"
+"\n"
+"If pid is 0, the calling process is changed.\n"
+"param is an instance of sched_param.");
+
+#define OS_SCHED_SETSCHEDULER_METHODDEF \
+ {"sched_setscheduler", (PyCFunction)os_sched_setscheduler, METH_VARARGS, os_sched_setscheduler__doc__},
+
+static PyObject *
+os_sched_setscheduler_impl(PyModuleDef *module, pid_t pid, int policy,
+ struct sched_param *param);
+
+static PyObject *
+os_sched_setscheduler(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ pid_t pid;
+ int policy;
+ struct sched_param param;
+
+ if (!PyArg_ParseTuple(args, "" _Py_PARSE_PID "iO&:sched_setscheduler",
+ &pid, &policy, convert_sched_param, &param))
+ goto exit;
+ return_value = os_sched_setscheduler_impl(module, pid, policy, &param);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SCHED_H) && defined(HAVE_SCHED_SETSCHEDULER) */
+
+#if defined(HAVE_SCHED_H) && defined(HAVE_SCHED_SETPARAM)
+
+PyDoc_STRVAR(os_sched_getparam__doc__,
+"sched_getparam($module, pid, /)\n"
+"--\n"
+"\n"
+"Returns scheduling parameters for the process identified by pid.\n"
+"\n"
+"If pid is 0, returns parameters for the calling process.\n"
+"Return value is an instance of sched_param.");
+
+#define OS_SCHED_GETPARAM_METHODDEF \
+ {"sched_getparam", (PyCFunction)os_sched_getparam, METH_O, os_sched_getparam__doc__},
+
+static PyObject *
+os_sched_getparam_impl(PyModuleDef *module, pid_t pid);
+
+static PyObject *
+os_sched_getparam(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ pid_t pid;
+
+ if (!PyArg_Parse(arg, "" _Py_PARSE_PID ":sched_getparam", &pid))
+ goto exit;
+ return_value = os_sched_getparam_impl(module, pid);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SCHED_H) && defined(HAVE_SCHED_SETPARAM) */
+
+#if defined(HAVE_SCHED_H) && defined(HAVE_SCHED_SETPARAM)
+
+PyDoc_STRVAR(os_sched_setparam__doc__,
+"sched_setparam($module, pid, param, /)\n"
+"--\n"
+"\n"
+"Set scheduling parameters for the process identified by pid.\n"
+"\n"
+"If pid is 0, sets parameters for the calling process.\n"
+"param should be an instance of sched_param.");
+
+#define OS_SCHED_SETPARAM_METHODDEF \
+ {"sched_setparam", (PyCFunction)os_sched_setparam, METH_VARARGS, os_sched_setparam__doc__},
+
+static PyObject *
+os_sched_setparam_impl(PyModuleDef *module, pid_t pid,
+ struct sched_param *param);
+
+static PyObject *
+os_sched_setparam(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ pid_t pid;
+ struct sched_param param;
+
+ if (!PyArg_ParseTuple(args, "" _Py_PARSE_PID "O&:sched_setparam",
+ &pid, convert_sched_param, &param))
+ goto exit;
+ return_value = os_sched_setparam_impl(module, pid, &param);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SCHED_H) && defined(HAVE_SCHED_SETPARAM) */
+
+#if defined(HAVE_SCHED_H) && defined(HAVE_SCHED_RR_GET_INTERVAL)
+
+PyDoc_STRVAR(os_sched_rr_get_interval__doc__,
+"sched_rr_get_interval($module, pid, /)\n"
+"--\n"
+"\n"
+"Return the round-robin quantum for the process identified by pid, in seconds.\n"
+"\n"
+"Value returned is a float.");
+
+#define OS_SCHED_RR_GET_INTERVAL_METHODDEF \
+ {"sched_rr_get_interval", (PyCFunction)os_sched_rr_get_interval, METH_O, os_sched_rr_get_interval__doc__},
+
+static double
+os_sched_rr_get_interval_impl(PyModuleDef *module, pid_t pid);
+
+static PyObject *
+os_sched_rr_get_interval(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ pid_t pid;
+ double _return_value;
+
+ if (!PyArg_Parse(arg, "" _Py_PARSE_PID ":sched_rr_get_interval", &pid))
+ goto exit;
+ _return_value = os_sched_rr_get_interval_impl(module, pid);
+ if ((_return_value == -1.0) && PyErr_Occurred())
+ goto exit;
+ return_value = PyFloat_FromDouble(_return_value);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SCHED_H) && defined(HAVE_SCHED_RR_GET_INTERVAL) */
+
+#if defined(HAVE_SCHED_H)
+
+PyDoc_STRVAR(os_sched_yield__doc__,
+"sched_yield($module, /)\n"
+"--\n"
+"\n"
+"Voluntarily relinquish the CPU.");
+
+#define OS_SCHED_YIELD_METHODDEF \
+ {"sched_yield", (PyCFunction)os_sched_yield, METH_NOARGS, os_sched_yield__doc__},
+
+static PyObject *
+os_sched_yield_impl(PyModuleDef *module);
+
+static PyObject *
+os_sched_yield(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ return os_sched_yield_impl(module);
+}
+
+#endif /* defined(HAVE_SCHED_H) */
+
+#if defined(HAVE_SCHED_H) && defined(HAVE_SCHED_SETAFFINITY)
+
+PyDoc_STRVAR(os_sched_setaffinity__doc__,
+"sched_setaffinity($module, pid, mask, /)\n"
+"--\n"
+"\n"
+"Set the CPU affinity of the process identified by pid to mask.\n"
+"\n"
+"mask should be an iterable of integers identifying CPUs.");
+
+#define OS_SCHED_SETAFFINITY_METHODDEF \
+ {"sched_setaffinity", (PyCFunction)os_sched_setaffinity, METH_VARARGS, os_sched_setaffinity__doc__},
+
+static PyObject *
+os_sched_setaffinity_impl(PyModuleDef *module, pid_t pid, PyObject *mask);
+
+static PyObject *
+os_sched_setaffinity(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ pid_t pid;
+ PyObject *mask;
+
+ if (!PyArg_ParseTuple(args, "" _Py_PARSE_PID "O:sched_setaffinity",
+ &pid, &mask))
+ goto exit;
+ return_value = os_sched_setaffinity_impl(module, pid, mask);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SCHED_H) && defined(HAVE_SCHED_SETAFFINITY) */
+
+#if defined(HAVE_SCHED_H) && defined(HAVE_SCHED_SETAFFINITY)
+
+PyDoc_STRVAR(os_sched_getaffinity__doc__,
+"sched_getaffinity($module, pid, /)\n"
+"--\n"
+"\n"
+"Return the affinity of the process identified by pid.\n"
+"\n"
+"The affinity is returned as a set of CPU identifiers.");
+
+#define OS_SCHED_GETAFFINITY_METHODDEF \
+ {"sched_getaffinity", (PyCFunction)os_sched_getaffinity, METH_O, os_sched_getaffinity__doc__},
+
+static PyObject *
+os_sched_getaffinity_impl(PyModuleDef *module, pid_t pid);
+
+static PyObject *
+os_sched_getaffinity(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ pid_t pid;
+
+ if (!PyArg_Parse(arg, "" _Py_PARSE_PID ":sched_getaffinity", &pid))
+ goto exit;
+ return_value = os_sched_getaffinity_impl(module, pid);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SCHED_H) && defined(HAVE_SCHED_SETAFFINITY) */
+
+#if (defined(HAVE_OPENPTY) || defined(HAVE__GETPTY) || defined(HAVE_DEV_PTMX))
+
+PyDoc_STRVAR(os_openpty__doc__,
+"openpty($module, /)\n"
+"--\n"
+"\n"
+"Open a pseudo-terminal.\n"
+"\n"
+"Return a tuple of (master_fd, slave_fd) containing open file descriptors\n"
+"for both the master and slave ends.");
+
+#define OS_OPENPTY_METHODDEF \
+ {"openpty", (PyCFunction)os_openpty, METH_NOARGS, os_openpty__doc__},
+
+static PyObject *
+os_openpty_impl(PyModuleDef *module);
+
+static PyObject *
+os_openpty(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ return os_openpty_impl(module);
+}
+
+#endif /* (defined(HAVE_OPENPTY) || defined(HAVE__GETPTY) || defined(HAVE_DEV_PTMX)) */
+
+#if defined(HAVE_FORKPTY)
+
+PyDoc_STRVAR(os_forkpty__doc__,
+"forkpty($module, /)\n"
+"--\n"
+"\n"
+"Fork a new process with a new pseudo-terminal as controlling tty.\n"
+"\n"
+"Returns a tuple of (pid, master_fd).\n"
+"Like fork(), return pid of 0 to the child process,\n"
+"and pid of child to the parent process.\n"
+"To both, return fd of newly opened pseudo-terminal.");
+
+#define OS_FORKPTY_METHODDEF \
+ {"forkpty", (PyCFunction)os_forkpty, METH_NOARGS, os_forkpty__doc__},
+
+static PyObject *
+os_forkpty_impl(PyModuleDef *module);
+
+static PyObject *
+os_forkpty(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ return os_forkpty_impl(module);
+}
+
+#endif /* defined(HAVE_FORKPTY) */
+
+#if defined(HAVE_GETEGID)
+
+PyDoc_STRVAR(os_getegid__doc__,
+"getegid($module, /)\n"
+"--\n"
+"\n"
+"Return the current process\'s effective group id.");
+
+#define OS_GETEGID_METHODDEF \
+ {"getegid", (PyCFunction)os_getegid, METH_NOARGS, os_getegid__doc__},
+
+static PyObject *
+os_getegid_impl(PyModuleDef *module);
+
+static PyObject *
+os_getegid(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ return os_getegid_impl(module);
+}
+
+#endif /* defined(HAVE_GETEGID) */
+
+#if defined(HAVE_GETEUID)
+
+PyDoc_STRVAR(os_geteuid__doc__,
+"geteuid($module, /)\n"
+"--\n"
+"\n"
+"Return the current process\'s effective user id.");
+
+#define OS_GETEUID_METHODDEF \
+ {"geteuid", (PyCFunction)os_geteuid, METH_NOARGS, os_geteuid__doc__},
+
+static PyObject *
+os_geteuid_impl(PyModuleDef *module);
+
+static PyObject *
+os_geteuid(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ return os_geteuid_impl(module);
+}
+
+#endif /* defined(HAVE_GETEUID) */
+
+#if defined(HAVE_GETGID)
+
+PyDoc_STRVAR(os_getgid__doc__,
+"getgid($module, /)\n"
+"--\n"
+"\n"
+"Return the current process\'s group id.");
+
+#define OS_GETGID_METHODDEF \
+ {"getgid", (PyCFunction)os_getgid, METH_NOARGS, os_getgid__doc__},
+
+static PyObject *
+os_getgid_impl(PyModuleDef *module);
+
+static PyObject *
+os_getgid(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ return os_getgid_impl(module);
+}
+
+#endif /* defined(HAVE_GETGID) */
+
+PyDoc_STRVAR(os_getpid__doc__,
+"getpid($module, /)\n"
+"--\n"
+"\n"
+"Return the current process id.");
+
+#define OS_GETPID_METHODDEF \
+ {"getpid", (PyCFunction)os_getpid, METH_NOARGS, os_getpid__doc__},
+
+static PyObject *
+os_getpid_impl(PyModuleDef *module);
+
+static PyObject *
+os_getpid(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ return os_getpid_impl(module);
+}
+
+#if defined(HAVE_GETGROUPS)
+
+PyDoc_STRVAR(os_getgroups__doc__,
+"getgroups($module, /)\n"
+"--\n"
+"\n"
+"Return list of supplemental group IDs for the process.");
+
+#define OS_GETGROUPS_METHODDEF \
+ {"getgroups", (PyCFunction)os_getgroups, METH_NOARGS, os_getgroups__doc__},
+
+static PyObject *
+os_getgroups_impl(PyModuleDef *module);
+
+static PyObject *
+os_getgroups(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ return os_getgroups_impl(module);
+}
+
+#endif /* defined(HAVE_GETGROUPS) */
+
+#if defined(HAVE_GETPGID)
+
+PyDoc_STRVAR(os_getpgid__doc__,
+"getpgid($module, /, pid)\n"
+"--\n"
+"\n"
+"Call the system call getpgid(), and return the result.");
+
+#define OS_GETPGID_METHODDEF \
+ {"getpgid", (PyCFunction)os_getpgid, METH_VARARGS|METH_KEYWORDS, os_getpgid__doc__},
+
+static PyObject *
+os_getpgid_impl(PyModuleDef *module, pid_t pid);
+
+static PyObject *
+os_getpgid(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"pid", NULL};
+ pid_t pid;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "" _Py_PARSE_PID ":getpgid", _keywords,
+ &pid))
+ goto exit;
+ return_value = os_getpgid_impl(module, pid);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_GETPGID) */
+
+#if defined(HAVE_GETPGRP)
+
+PyDoc_STRVAR(os_getpgrp__doc__,
+"getpgrp($module, /)\n"
+"--\n"
+"\n"
+"Return the current process group id.");
+
+#define OS_GETPGRP_METHODDEF \
+ {"getpgrp", (PyCFunction)os_getpgrp, METH_NOARGS, os_getpgrp__doc__},
+
+static PyObject *
+os_getpgrp_impl(PyModuleDef *module);
+
+static PyObject *
+os_getpgrp(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ return os_getpgrp_impl(module);
+}
+
+#endif /* defined(HAVE_GETPGRP) */
+
+#if defined(HAVE_SETPGRP)
+
+PyDoc_STRVAR(os_setpgrp__doc__,
+"setpgrp($module, /)\n"
+"--\n"
+"\n"
+"Make the current process the leader of its process group.");
+
+#define OS_SETPGRP_METHODDEF \
+ {"setpgrp", (PyCFunction)os_setpgrp, METH_NOARGS, os_setpgrp__doc__},
+
+static PyObject *
+os_setpgrp_impl(PyModuleDef *module);
+
+static PyObject *
+os_setpgrp(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ return os_setpgrp_impl(module);
+}
+
+#endif /* defined(HAVE_SETPGRP) */
+
+#if defined(HAVE_GETPPID)
+
+PyDoc_STRVAR(os_getppid__doc__,
+"getppid($module, /)\n"
+"--\n"
+"\n"
+"Return the parent\'s process id.\n"
+"\n"
+"If the parent process has already exited, Windows machines will still\n"
+"return its id; others systems will return the id of the \'init\' process (1).");
+
+#define OS_GETPPID_METHODDEF \
+ {"getppid", (PyCFunction)os_getppid, METH_NOARGS, os_getppid__doc__},
+
+static PyObject *
+os_getppid_impl(PyModuleDef *module);
+
+static PyObject *
+os_getppid(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ return os_getppid_impl(module);
+}
+
+#endif /* defined(HAVE_GETPPID) */
+
+#if defined(HAVE_GETLOGIN)
+
+PyDoc_STRVAR(os_getlogin__doc__,
+"getlogin($module, /)\n"
+"--\n"
+"\n"
+"Return the actual login name.");
+
+#define OS_GETLOGIN_METHODDEF \
+ {"getlogin", (PyCFunction)os_getlogin, METH_NOARGS, os_getlogin__doc__},
+
+static PyObject *
+os_getlogin_impl(PyModuleDef *module);
+
+static PyObject *
+os_getlogin(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ return os_getlogin_impl(module);
+}
+
+#endif /* defined(HAVE_GETLOGIN) */
+
+#if defined(HAVE_GETUID)
+
+PyDoc_STRVAR(os_getuid__doc__,
+"getuid($module, /)\n"
+"--\n"
+"\n"
+"Return the current process\'s user id.");
+
+#define OS_GETUID_METHODDEF \
+ {"getuid", (PyCFunction)os_getuid, METH_NOARGS, os_getuid__doc__},
+
+static PyObject *
+os_getuid_impl(PyModuleDef *module);
+
+static PyObject *
+os_getuid(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ return os_getuid_impl(module);
+}
+
+#endif /* defined(HAVE_GETUID) */
+
+#if defined(HAVE_KILL)
+
+PyDoc_STRVAR(os_kill__doc__,
+"kill($module, pid, signal, /)\n"
+"--\n"
+"\n"
+"Kill a process with a signal.");
+
+#define OS_KILL_METHODDEF \
+ {"kill", (PyCFunction)os_kill, METH_VARARGS, os_kill__doc__},
+
+static PyObject *
+os_kill_impl(PyModuleDef *module, pid_t pid, Py_ssize_t signal);
+
+static PyObject *
+os_kill(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ pid_t pid;
+ Py_ssize_t signal;
+
+ if (!PyArg_ParseTuple(args, "" _Py_PARSE_PID "n:kill",
+ &pid, &signal))
+ goto exit;
+ return_value = os_kill_impl(module, pid, signal);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_KILL) */
+
+#if defined(HAVE_KILLPG)
+
+PyDoc_STRVAR(os_killpg__doc__,
+"killpg($module, pgid, signal, /)\n"
+"--\n"
+"\n"
+"Kill a process group with a signal.");
+
+#define OS_KILLPG_METHODDEF \
+ {"killpg", (PyCFunction)os_killpg, METH_VARARGS, os_killpg__doc__},
+
+static PyObject *
+os_killpg_impl(PyModuleDef *module, pid_t pgid, int signal);
+
+static PyObject *
+os_killpg(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ pid_t pgid;
+ int signal;
+
+ if (!PyArg_ParseTuple(args, "" _Py_PARSE_PID "i:killpg",
+ &pgid, &signal))
+ goto exit;
+ return_value = os_killpg_impl(module, pgid, signal);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_KILLPG) */
+
+#if defined(HAVE_PLOCK)
+
+PyDoc_STRVAR(os_plock__doc__,
+"plock($module, op, /)\n"
+"--\n"
+"\n"
+"Lock program segments into memory.\");");
+
+#define OS_PLOCK_METHODDEF \
+ {"plock", (PyCFunction)os_plock, METH_O, os_plock__doc__},
+
+static PyObject *
+os_plock_impl(PyModuleDef *module, int op);
+
+static PyObject *
+os_plock(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int op;
+
+ if (!PyArg_Parse(arg, "i:plock", &op))
+ goto exit;
+ return_value = os_plock_impl(module, op);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_PLOCK) */
+
+#if defined(HAVE_SETUID)
+
+PyDoc_STRVAR(os_setuid__doc__,
+"setuid($module, uid, /)\n"
+"--\n"
+"\n"
+"Set the current process\'s user id.");
+
+#define OS_SETUID_METHODDEF \
+ {"setuid", (PyCFunction)os_setuid, METH_O, os_setuid__doc__},
+
+static PyObject *
+os_setuid_impl(PyModuleDef *module, uid_t uid);
+
+static PyObject *
+os_setuid(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ uid_t uid;
+
+ if (!PyArg_Parse(arg, "O&:setuid", _Py_Uid_Converter, &uid))
+ goto exit;
+ return_value = os_setuid_impl(module, uid);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SETUID) */
+
+#if defined(HAVE_SETEUID)
+
+PyDoc_STRVAR(os_seteuid__doc__,
+"seteuid($module, euid, /)\n"
+"--\n"
+"\n"
+"Set the current process\'s effective user id.");
+
+#define OS_SETEUID_METHODDEF \
+ {"seteuid", (PyCFunction)os_seteuid, METH_O, os_seteuid__doc__},
+
+static PyObject *
+os_seteuid_impl(PyModuleDef *module, uid_t euid);
+
+static PyObject *
+os_seteuid(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ uid_t euid;
+
+ if (!PyArg_Parse(arg, "O&:seteuid", _Py_Uid_Converter, &euid))
+ goto exit;
+ return_value = os_seteuid_impl(module, euid);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SETEUID) */
+
+#if defined(HAVE_SETEGID)
+
+PyDoc_STRVAR(os_setegid__doc__,
+"setegid($module, egid, /)\n"
+"--\n"
+"\n"
+"Set the current process\'s effective group id.");
+
+#define OS_SETEGID_METHODDEF \
+ {"setegid", (PyCFunction)os_setegid, METH_O, os_setegid__doc__},
+
+static PyObject *
+os_setegid_impl(PyModuleDef *module, gid_t egid);
+
+static PyObject *
+os_setegid(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ gid_t egid;
+
+ if (!PyArg_Parse(arg, "O&:setegid", _Py_Gid_Converter, &egid))
+ goto exit;
+ return_value = os_setegid_impl(module, egid);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SETEGID) */
+
+#if defined(HAVE_SETREUID)
+
+PyDoc_STRVAR(os_setreuid__doc__,
+"setreuid($module, ruid, euid, /)\n"
+"--\n"
+"\n"
+"Set the current process\'s real and effective user ids.");
+
+#define OS_SETREUID_METHODDEF \
+ {"setreuid", (PyCFunction)os_setreuid, METH_VARARGS, os_setreuid__doc__},
+
+static PyObject *
+os_setreuid_impl(PyModuleDef *module, uid_t ruid, uid_t euid);
+
+static PyObject *
+os_setreuid(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ uid_t ruid;
+ uid_t euid;
+
+ if (!PyArg_ParseTuple(args, "O&O&:setreuid",
+ _Py_Uid_Converter, &ruid, _Py_Uid_Converter, &euid))
+ goto exit;
+ return_value = os_setreuid_impl(module, ruid, euid);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SETREUID) */
+
+#if defined(HAVE_SETREGID)
+
+PyDoc_STRVAR(os_setregid__doc__,
+"setregid($module, rgid, egid, /)\n"
+"--\n"
+"\n"
+"Set the current process\'s real and effective group ids.");
+
+#define OS_SETREGID_METHODDEF \
+ {"setregid", (PyCFunction)os_setregid, METH_VARARGS, os_setregid__doc__},
+
+static PyObject *
+os_setregid_impl(PyModuleDef *module, gid_t rgid, gid_t egid);
+
+static PyObject *
+os_setregid(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ gid_t rgid;
+ gid_t egid;
+
+ if (!PyArg_ParseTuple(args, "O&O&:setregid",
+ _Py_Gid_Converter, &rgid, _Py_Gid_Converter, &egid))
+ goto exit;
+ return_value = os_setregid_impl(module, rgid, egid);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SETREGID) */
+
+#if defined(HAVE_SETGID)
+
+PyDoc_STRVAR(os_setgid__doc__,
+"setgid($module, gid, /)\n"
+"--\n"
+"\n"
+"Set the current process\'s group id.");
+
+#define OS_SETGID_METHODDEF \
+ {"setgid", (PyCFunction)os_setgid, METH_O, os_setgid__doc__},
+
+static PyObject *
+os_setgid_impl(PyModuleDef *module, gid_t gid);
+
+static PyObject *
+os_setgid(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ gid_t gid;
+
+ if (!PyArg_Parse(arg, "O&:setgid", _Py_Gid_Converter, &gid))
+ goto exit;
+ return_value = os_setgid_impl(module, gid);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SETGID) */
+
+#if defined(HAVE_SETGROUPS)
+
+PyDoc_STRVAR(os_setgroups__doc__,
+"setgroups($module, groups, /)\n"
+"--\n"
+"\n"
+"Set the groups of the current process to list.");
+
+#define OS_SETGROUPS_METHODDEF \
+ {"setgroups", (PyCFunction)os_setgroups, METH_O, os_setgroups__doc__},
+
+#endif /* defined(HAVE_SETGROUPS) */
+
+#if defined(HAVE_WAIT3)
+
+PyDoc_STRVAR(os_wait3__doc__,
+"wait3($module, /, options)\n"
+"--\n"
+"\n"
+"Wait for completion of a child process.\n"
+"\n"
+"Returns a tuple of information about the child process:\n"
+" (pid, status, rusage)");
+
+#define OS_WAIT3_METHODDEF \
+ {"wait3", (PyCFunction)os_wait3, METH_VARARGS|METH_KEYWORDS, os_wait3__doc__},
+
+static PyObject *
+os_wait3_impl(PyModuleDef *module, int options);
+
+static PyObject *
+os_wait3(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"options", NULL};
+ int options;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i:wait3", _keywords,
+ &options))
+ goto exit;
+ return_value = os_wait3_impl(module, options);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_WAIT3) */
+
+#if defined(HAVE_WAIT4)
+
+PyDoc_STRVAR(os_wait4__doc__,
+"wait4($module, /, pid, options)\n"
+"--\n"
+"\n"
+"Wait for completion of a specific child process.\n"
+"\n"
+"Returns a tuple of information about the child process:\n"
+" (pid, status, rusage)");
+
+#define OS_WAIT4_METHODDEF \
+ {"wait4", (PyCFunction)os_wait4, METH_VARARGS|METH_KEYWORDS, os_wait4__doc__},
+
+static PyObject *
+os_wait4_impl(PyModuleDef *module, pid_t pid, int options);
+
+static PyObject *
+os_wait4(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"pid", "options", NULL};
+ pid_t pid;
+ int options;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "" _Py_PARSE_PID "i:wait4", _keywords,
+ &pid, &options))
+ goto exit;
+ return_value = os_wait4_impl(module, pid, options);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_WAIT4) */
+
+#if (defined(HAVE_WAITID) && !defined(__APPLE__))
+
+PyDoc_STRVAR(os_waitid__doc__,
+"waitid($module, idtype, id, options, /)\n"
+"--\n"
+"\n"
+"Returns the result of waiting for a process or processes.\n"
+"\n"
+" idtype\n"
+" Must be one of be P_PID, P_PGID or P_ALL.\n"
+" id\n"
+" The id to wait on.\n"
+" options\n"
+" Constructed from the ORing of one or more of WEXITED, WSTOPPED\n"
+" or WCONTINUED and additionally may be ORed with WNOHANG or WNOWAIT.\n"
+"\n"
+"Returns either waitid_result or None if WNOHANG is specified and there are\n"
+"no children in a waitable state.");
+
+#define OS_WAITID_METHODDEF \
+ {"waitid", (PyCFunction)os_waitid, METH_VARARGS, os_waitid__doc__},
+
+static PyObject *
+os_waitid_impl(PyModuleDef *module, idtype_t idtype, id_t id, int options);
+
+static PyObject *
+os_waitid(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ idtype_t idtype;
+ id_t id;
+ int options;
+
+ if (!PyArg_ParseTuple(args, "i" _Py_PARSE_PID "i:waitid",
+ &idtype, &id, &options))
+ goto exit;
+ return_value = os_waitid_impl(module, idtype, id, options);
+
+exit:
+ return return_value;
+}
+
+#endif /* (defined(HAVE_WAITID) && !defined(__APPLE__)) */
+
+#if defined(HAVE_WAITPID)
+
+PyDoc_STRVAR(os_waitpid__doc__,
+"waitpid($module, pid, options, /)\n"
+"--\n"
+"\n"
+"Wait for completion of a given child process.\n"
+"\n"
+"Returns a tuple of information regarding the child process:\n"
+" (pid, status)\n"
+"\n"
+"The options argument is ignored on Windows.");
+
+#define OS_WAITPID_METHODDEF \
+ {"waitpid", (PyCFunction)os_waitpid, METH_VARARGS, os_waitpid__doc__},
+
+static PyObject *
+os_waitpid_impl(PyModuleDef *module, pid_t pid, int options);
+
+static PyObject *
+os_waitpid(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ pid_t pid;
+ int options;
+
+ if (!PyArg_ParseTuple(args, "" _Py_PARSE_PID "i:waitpid",
+ &pid, &options))
+ goto exit;
+ return_value = os_waitpid_impl(module, pid, options);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_WAITPID) */
+
+#if defined(HAVE_CWAIT)
+
+PyDoc_STRVAR(os_waitpid__doc__,
+"waitpid($module, pid, options, /)\n"
+"--\n"
+"\n"
+"Wait for completion of a given process.\n"
+"\n"
+"Returns a tuple of information regarding the process:\n"
+" (pid, status << 8)\n"
+"\n"
+"The options argument is ignored on Windows.");
+
+#define OS_WAITPID_METHODDEF \
+ {"waitpid", (PyCFunction)os_waitpid, METH_VARARGS, os_waitpid__doc__},
+
+static PyObject *
+os_waitpid_impl(PyModuleDef *module, Py_intptr_t pid, int options);
+
+static PyObject *
+os_waitpid(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_intptr_t pid;
+ int options;
+
+ if (!PyArg_ParseTuple(args, "" _Py_PARSE_INTPTR "i:waitpid",
+ &pid, &options))
+ goto exit;
+ return_value = os_waitpid_impl(module, pid, options);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_CWAIT) */
+
+#if defined(HAVE_WAIT)
+
+PyDoc_STRVAR(os_wait__doc__,
+"wait($module, /)\n"
+"--\n"
+"\n"
+"Wait for completion of a child process.\n"
+"\n"
+"Returns a tuple of information about the child process:\n"
+" (pid, status)");
+
+#define OS_WAIT_METHODDEF \
+ {"wait", (PyCFunction)os_wait, METH_NOARGS, os_wait__doc__},
+
+static PyObject *
+os_wait_impl(PyModuleDef *module);
+
+static PyObject *
+os_wait(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ return os_wait_impl(module);
+}
+
+#endif /* defined(HAVE_WAIT) */
+
+#if defined(HAVE_SYMLINK)
+
+PyDoc_STRVAR(os_symlink__doc__,
+"symlink($module, /, src, dst, target_is_directory=False, *, dir_fd=None)\n"
+"--\n"
+"\n"
+"Create a symbolic link pointing to src named dst.\n"
+"\n"
+"target_is_directory is required on Windows if the target is to be\n"
+" interpreted as a directory. (On Windows, symlink requires\n"
+" Windows 6.0 or greater, and raises a NotImplementedError otherwise.)\n"
+" target_is_directory is ignored on non-Windows platforms.\n"
+"\n"
+"If dir_fd is not None, it should be a file descriptor open to a directory,\n"
+" and path should be relative; path will then be relative to that directory.\n"
+"dir_fd may not be implemented on your platform.\n"
+" If it is unavailable, using it will raise a NotImplementedError.");
+
+#define OS_SYMLINK_METHODDEF \
+ {"symlink", (PyCFunction)os_symlink, METH_VARARGS|METH_KEYWORDS, os_symlink__doc__},
+
+static PyObject *
+os_symlink_impl(PyModuleDef *module, path_t *src, path_t *dst,
+ int target_is_directory, int dir_fd);
+
+static PyObject *
+os_symlink(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"src", "dst", "target_is_directory", "dir_fd", NULL};
+ path_t src = PATH_T_INITIALIZE("symlink", "src", 0, 0);
+ path_t dst = PATH_T_INITIALIZE("symlink", "dst", 0, 0);
+ int target_is_directory = 0;
+ int dir_fd = DEFAULT_DIR_FD;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&|p$O&:symlink", _keywords,
+ path_converter, &src, path_converter, &dst, &target_is_directory, SYMLINKAT_DIR_FD_CONVERTER, &dir_fd))
+ goto exit;
+ return_value = os_symlink_impl(module, &src, &dst, target_is_directory, dir_fd);
+
+exit:
+ /* Cleanup for src */
+ path_cleanup(&src);
+ /* Cleanup for dst */
+ path_cleanup(&dst);
+
+ return return_value;
+}
+
+#endif /* defined(HAVE_SYMLINK) */
+
+#if defined(HAVE_TIMES)
+
+PyDoc_STRVAR(os_times__doc__,
+"times($module, /)\n"
+"--\n"
+"\n"
+"Return a collection containing process timing information.\n"
+"\n"
+"The object returned behaves like a named tuple with these fields:\n"
+" (utime, stime, cutime, cstime, elapsed_time)\n"
+"All fields are floating point numbers.");
+
+#define OS_TIMES_METHODDEF \
+ {"times", (PyCFunction)os_times, METH_NOARGS, os_times__doc__},
+
+static PyObject *
+os_times_impl(PyModuleDef *module);
+
+static PyObject *
+os_times(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ return os_times_impl(module);
+}
+
+#endif /* defined(HAVE_TIMES) */
+
+#if defined(HAVE_GETSID)
+
+PyDoc_STRVAR(os_getsid__doc__,
+"getsid($module, pid, /)\n"
+"--\n"
+"\n"
+"Call the system call getsid(pid) and return the result.");
+
+#define OS_GETSID_METHODDEF \
+ {"getsid", (PyCFunction)os_getsid, METH_O, os_getsid__doc__},
+
+static PyObject *
+os_getsid_impl(PyModuleDef *module, pid_t pid);
+
+static PyObject *
+os_getsid(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ pid_t pid;
+
+ if (!PyArg_Parse(arg, "" _Py_PARSE_PID ":getsid", &pid))
+ goto exit;
+ return_value = os_getsid_impl(module, pid);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_GETSID) */
+
+#if defined(HAVE_SETSID)
+
+PyDoc_STRVAR(os_setsid__doc__,
+"setsid($module, /)\n"
+"--\n"
+"\n"
+"Call the system call setsid().");
+
+#define OS_SETSID_METHODDEF \
+ {"setsid", (PyCFunction)os_setsid, METH_NOARGS, os_setsid__doc__},
+
+static PyObject *
+os_setsid_impl(PyModuleDef *module);
+
+static PyObject *
+os_setsid(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ return os_setsid_impl(module);
+}
+
+#endif /* defined(HAVE_SETSID) */
+
+#if defined(HAVE_SETPGID)
+
+PyDoc_STRVAR(os_setpgid__doc__,
+"setpgid($module, pid, pgrp, /)\n"
+"--\n"
+"\n"
+"Call the system call setpgid(pid, pgrp).");
+
+#define OS_SETPGID_METHODDEF \
+ {"setpgid", (PyCFunction)os_setpgid, METH_VARARGS, os_setpgid__doc__},
+
+static PyObject *
+os_setpgid_impl(PyModuleDef *module, pid_t pid, pid_t pgrp);
+
+static PyObject *
+os_setpgid(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ pid_t pid;
+ pid_t pgrp;
+
+ if (!PyArg_ParseTuple(args, "" _Py_PARSE_PID "" _Py_PARSE_PID ":setpgid",
+ &pid, &pgrp))
+ goto exit;
+ return_value = os_setpgid_impl(module, pid, pgrp);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SETPGID) */
+
+#if defined(HAVE_TCGETPGRP)
+
+PyDoc_STRVAR(os_tcgetpgrp__doc__,
+"tcgetpgrp($module, fd, /)\n"
+"--\n"
+"\n"
+"Return the process group associated with the terminal specified by fd.");
+
+#define OS_TCGETPGRP_METHODDEF \
+ {"tcgetpgrp", (PyCFunction)os_tcgetpgrp, METH_O, os_tcgetpgrp__doc__},
+
+static PyObject *
+os_tcgetpgrp_impl(PyModuleDef *module, int fd);
+
+static PyObject *
+os_tcgetpgrp(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int fd;
+
+ if (!PyArg_Parse(arg, "i:tcgetpgrp", &fd))
+ goto exit;
+ return_value = os_tcgetpgrp_impl(module, fd);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_TCGETPGRP) */
+
+#if defined(HAVE_TCSETPGRP)
+
+PyDoc_STRVAR(os_tcsetpgrp__doc__,
+"tcsetpgrp($module, fd, pgid, /)\n"
+"--\n"
+"\n"
+"Set the process group associated with the terminal specified by fd.");
+
+#define OS_TCSETPGRP_METHODDEF \
+ {"tcsetpgrp", (PyCFunction)os_tcsetpgrp, METH_VARARGS, os_tcsetpgrp__doc__},
+
+static PyObject *
+os_tcsetpgrp_impl(PyModuleDef *module, int fd, pid_t pgid);
+
+static PyObject *
+os_tcsetpgrp(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int fd;
+ pid_t pgid;
+
+ if (!PyArg_ParseTuple(args, "i" _Py_PARSE_PID ":tcsetpgrp",
+ &fd, &pgid))
+ goto exit;
+ return_value = os_tcsetpgrp_impl(module, fd, pgid);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_TCSETPGRP) */
+
+PyDoc_STRVAR(os_open__doc__,
+"open($module, /, path, flags, mode=511, *, dir_fd=None)\n"
+"--\n"
+"\n"
+"Open a file for low level IO. Returns a file descriptor (integer).\n"
+"\n"
+"If dir_fd is not None, it should be a file descriptor open to a directory,\n"
+" and path should be relative; path will then be relative to that directory.\n"
+"dir_fd may not be implemented on your platform.\n"
+" If it is unavailable, using it will raise a NotImplementedError.");
+
+#define OS_OPEN_METHODDEF \
+ {"open", (PyCFunction)os_open, METH_VARARGS|METH_KEYWORDS, os_open__doc__},
+
+static int
+os_open_impl(PyModuleDef *module, path_t *path, int flags, int mode,
+ int dir_fd);
+
+static PyObject *
+os_open(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"path", "flags", "mode", "dir_fd", NULL};
+ path_t path = PATH_T_INITIALIZE("open", "path", 0, 0);
+ int flags;
+ int mode = 511;
+ int dir_fd = DEFAULT_DIR_FD;
+ int _return_value;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&i|i$O&:open", _keywords,
+ path_converter, &path, &flags, &mode, OPENAT_DIR_FD_CONVERTER, &dir_fd))
+ goto exit;
+ _return_value = os_open_impl(module, &path, flags, mode, dir_fd);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyLong_FromLong((long)_return_value);
+
+exit:
+ /* Cleanup for path */
+ path_cleanup(&path);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(os_close__doc__,
+"close($module, /, fd)\n"
+"--\n"
+"\n"
+"Close a file descriptor.");
+
+#define OS_CLOSE_METHODDEF \
+ {"close", (PyCFunction)os_close, METH_VARARGS|METH_KEYWORDS, os_close__doc__},
+
+static PyObject *
+os_close_impl(PyModuleDef *module, int fd);
+
+static PyObject *
+os_close(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"fd", NULL};
+ int fd;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i:close", _keywords,
+ &fd))
+ goto exit;
+ return_value = os_close_impl(module, fd);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(os_closerange__doc__,
+"closerange($module, fd_low, fd_high, /)\n"
+"--\n"
+"\n"
+"Closes all file descriptors in [fd_low, fd_high), ignoring errors.");
+
+#define OS_CLOSERANGE_METHODDEF \
+ {"closerange", (PyCFunction)os_closerange, METH_VARARGS, os_closerange__doc__},
+
+static PyObject *
+os_closerange_impl(PyModuleDef *module, int fd_low, int fd_high);
+
+static PyObject *
+os_closerange(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int fd_low;
+ int fd_high;
+
+ if (!PyArg_ParseTuple(args, "ii:closerange",
+ &fd_low, &fd_high))
+ goto exit;
+ return_value = os_closerange_impl(module, fd_low, fd_high);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(os_dup__doc__,
+"dup($module, fd, /)\n"
+"--\n"
+"\n"
+"Return a duplicate of a file descriptor.");
+
+#define OS_DUP_METHODDEF \
+ {"dup", (PyCFunction)os_dup, METH_O, os_dup__doc__},
+
+static int
+os_dup_impl(PyModuleDef *module, int fd);
+
+static PyObject *
+os_dup(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int fd;
+ int _return_value;
+
+ if (!PyArg_Parse(arg, "i:dup", &fd))
+ goto exit;
+ _return_value = os_dup_impl(module, fd);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyLong_FromLong((long)_return_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(os_dup2__doc__,
+"dup2($module, /, fd, fd2, inheritable=True)\n"
+"--\n"
+"\n"
+"Duplicate file descriptor.");
+
+#define OS_DUP2_METHODDEF \
+ {"dup2", (PyCFunction)os_dup2, METH_VARARGS|METH_KEYWORDS, os_dup2__doc__},
+
+static PyObject *
+os_dup2_impl(PyModuleDef *module, int fd, int fd2, int inheritable);
+
+static PyObject *
+os_dup2(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"fd", "fd2", "inheritable", NULL};
+ int fd;
+ int fd2;
+ int inheritable = 1;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "ii|p:dup2", _keywords,
+ &fd, &fd2, &inheritable))
+ goto exit;
+ return_value = os_dup2_impl(module, fd, fd2, inheritable);
+
+exit:
+ return return_value;
+}
+
+#if defined(HAVE_LOCKF)
+
+PyDoc_STRVAR(os_lockf__doc__,
+"lockf($module, fd, command, length, /)\n"
+"--\n"
+"\n"
+"Apply, test or remove a POSIX lock on an open file descriptor.\n"
+"\n"
+" fd\n"
+" An open file descriptor.\n"
+" command\n"
+" One of F_LOCK, F_TLOCK, F_ULOCK or F_TEST.\n"
+" length\n"
+" The number of bytes to lock, starting at the current position.");
+
+#define OS_LOCKF_METHODDEF \
+ {"lockf", (PyCFunction)os_lockf, METH_VARARGS, os_lockf__doc__},
+
+static PyObject *
+os_lockf_impl(PyModuleDef *module, int fd, int command, Py_off_t length);
+
+static PyObject *
+os_lockf(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int fd;
+ int command;
+ Py_off_t length;
+
+ if (!PyArg_ParseTuple(args, "iiO&:lockf",
+ &fd, &command, Py_off_t_converter, &length))
+ goto exit;
+ return_value = os_lockf_impl(module, fd, command, length);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_LOCKF) */
+
+PyDoc_STRVAR(os_lseek__doc__,
+"lseek($module, fd, position, how, /)\n"
+"--\n"
+"\n"
+"Set the position of a file descriptor. Return the new position.\n"
+"\n"
+"Return the new cursor position in number of bytes\n"
+"relative to the beginning of the file.");
+
+#define OS_LSEEK_METHODDEF \
+ {"lseek", (PyCFunction)os_lseek, METH_VARARGS, os_lseek__doc__},
+
+static Py_off_t
+os_lseek_impl(PyModuleDef *module, int fd, Py_off_t position, int how);
+
+static PyObject *
+os_lseek(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int fd;
+ Py_off_t position;
+ int how;
+ Py_off_t _return_value;
+
+ if (!PyArg_ParseTuple(args, "iO&i:lseek",
+ &fd, Py_off_t_converter, &position, &how))
+ goto exit;
+ _return_value = os_lseek_impl(module, fd, position, how);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyLong_FromPy_off_t(_return_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(os_read__doc__,
+"read($module, fd, length, /)\n"
+"--\n"
+"\n"
+"Read from a file descriptor. Returns a bytes object.");
+
+#define OS_READ_METHODDEF \
+ {"read", (PyCFunction)os_read, METH_VARARGS, os_read__doc__},
+
+static PyObject *
+os_read_impl(PyModuleDef *module, int fd, Py_ssize_t length);
+
+static PyObject *
+os_read(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int fd;
+ Py_ssize_t length;
+
+ if (!PyArg_ParseTuple(args, "in:read",
+ &fd, &length))
+ goto exit;
+ return_value = os_read_impl(module, fd, length);
+
+exit:
+ return return_value;
+}
+
+#if defined(HAVE_READV)
+
+PyDoc_STRVAR(os_readv__doc__,
+"readv($module, fd, buffers, /)\n"
+"--\n"
+"\n"
+"Read from a file descriptor fd into an iterable of buffers.\n"
+"\n"
+"The buffers should be mutable buffers accepting bytes.\n"
+"readv will transfer data into each buffer until it is full\n"
+"and then move on to the next buffer in the sequence to hold\n"
+"the rest of the data.\n"
+"\n"
+"readv returns the total number of bytes read,\n"
+"which may be less than the total capacity of all the buffers.");
+
+#define OS_READV_METHODDEF \
+ {"readv", (PyCFunction)os_readv, METH_VARARGS, os_readv__doc__},
+
+static Py_ssize_t
+os_readv_impl(PyModuleDef *module, int fd, PyObject *buffers);
+
+static PyObject *
+os_readv(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int fd;
+ PyObject *buffers;
+ Py_ssize_t _return_value;
+
+ if (!PyArg_ParseTuple(args, "iO:readv",
+ &fd, &buffers))
+ goto exit;
+ _return_value = os_readv_impl(module, fd, buffers);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyLong_FromSsize_t(_return_value);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_READV) */
+
+#if defined(HAVE_PREAD)
+
+PyDoc_STRVAR(os_pread__doc__,
+"pread($module, fd, length, offset, /)\n"
+"--\n"
+"\n"
+"Read a number of bytes from a file descriptor starting at a particular offset.\n"
+"\n"
+"Read length bytes from file descriptor fd, starting at offset bytes from\n"
+"the beginning of the file. The file offset remains unchanged.");
+
+#define OS_PREAD_METHODDEF \
+ {"pread", (PyCFunction)os_pread, METH_VARARGS, os_pread__doc__},
+
+static PyObject *
+os_pread_impl(PyModuleDef *module, int fd, int length, Py_off_t offset);
+
+static PyObject *
+os_pread(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int fd;
+ int length;
+ Py_off_t offset;
+
+ if (!PyArg_ParseTuple(args, "iiO&:pread",
+ &fd, &length, Py_off_t_converter, &offset))
+ goto exit;
+ return_value = os_pread_impl(module, fd, length, offset);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_PREAD) */
+
+PyDoc_STRVAR(os_write__doc__,
+"write($module, fd, data, /)\n"
+"--\n"
+"\n"
+"Write a bytes object to a file descriptor.");
+
+#define OS_WRITE_METHODDEF \
+ {"write", (PyCFunction)os_write, METH_VARARGS, os_write__doc__},
+
+static Py_ssize_t
+os_write_impl(PyModuleDef *module, int fd, Py_buffer *data);
+
+static PyObject *
+os_write(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int fd;
+ Py_buffer data = {NULL, NULL};
+ Py_ssize_t _return_value;
+
+ if (!PyArg_ParseTuple(args, "iy*:write",
+ &fd, &data))
+ goto exit;
+ _return_value = os_write_impl(module, fd, &data);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyLong_FromSsize_t(_return_value);
+
+exit:
+ /* Cleanup for data */
+ if (data.obj)
+ PyBuffer_Release(&data);
+
+ return return_value;
+}
+
+PyDoc_STRVAR(os_fstat__doc__,
+"fstat($module, /, fd)\n"
+"--\n"
+"\n"
+"Perform a stat system call on the given file descriptor.\n"
+"\n"
+"Like stat(), but for an open file descriptor.\n"
+"Equivalent to os.stat(fd).");
+
+#define OS_FSTAT_METHODDEF \
+ {"fstat", (PyCFunction)os_fstat, METH_VARARGS|METH_KEYWORDS, os_fstat__doc__},
+
+static PyObject *
+os_fstat_impl(PyModuleDef *module, int fd);
+
+static PyObject *
+os_fstat(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"fd", NULL};
+ int fd;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i:fstat", _keywords,
+ &fd))
+ goto exit;
+ return_value = os_fstat_impl(module, fd);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(os_isatty__doc__,
+"isatty($module, fd, /)\n"
+"--\n"
+"\n"
+"Return True if the fd is connected to a terminal.\n"
+"\n"
+"Return True if the file descriptor is an open file descriptor\n"
+"connected to the slave end of a terminal.");
+
+#define OS_ISATTY_METHODDEF \
+ {"isatty", (PyCFunction)os_isatty, METH_O, os_isatty__doc__},
+
+static int
+os_isatty_impl(PyModuleDef *module, int fd);
+
+static PyObject *
+os_isatty(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int fd;
+ int _return_value;
+
+ if (!PyArg_Parse(arg, "i:isatty", &fd))
+ goto exit;
+ _return_value = os_isatty_impl(module, fd);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyBool_FromLong((long)_return_value);
+
+exit:
+ return return_value;
+}
+
+#if defined(HAVE_PIPE)
+
+PyDoc_STRVAR(os_pipe__doc__,
+"pipe($module, /)\n"
+"--\n"
+"\n"
+"Create a pipe.\n"
+"\n"
+"Returns a tuple of two file descriptors:\n"
+" (read_fd, write_fd)");
+
+#define OS_PIPE_METHODDEF \
+ {"pipe", (PyCFunction)os_pipe, METH_NOARGS, os_pipe__doc__},
+
+static PyObject *
+os_pipe_impl(PyModuleDef *module);
+
+static PyObject *
+os_pipe(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ return os_pipe_impl(module);
+}
+
+#endif /* defined(HAVE_PIPE) */
+
+#if defined(HAVE_PIPE2)
+
+PyDoc_STRVAR(os_pipe2__doc__,
+"pipe2($module, flags, /)\n"
+"--\n"
+"\n"
+"Create a pipe with flags set atomically.\n"
+"\n"
+"Returns a tuple of two file descriptors:\n"
+" (read_fd, write_fd)\n"
+"\n"
+"flags can be constructed by ORing together one or more of these values:\n"
+"O_NONBLOCK, O_CLOEXEC.");
+
+#define OS_PIPE2_METHODDEF \
+ {"pipe2", (PyCFunction)os_pipe2, METH_O, os_pipe2__doc__},
+
+static PyObject *
+os_pipe2_impl(PyModuleDef *module, int flags);
+
+static PyObject *
+os_pipe2(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int flags;
+
+ if (!PyArg_Parse(arg, "i:pipe2", &flags))
+ goto exit;
+ return_value = os_pipe2_impl(module, flags);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_PIPE2) */
+
+#if defined(HAVE_WRITEV)
+
+PyDoc_STRVAR(os_writev__doc__,
+"writev($module, fd, buffers, /)\n"
+"--\n"
+"\n"
+"Iterate over buffers, and write the contents of each to a file descriptor.\n"
+"\n"
+"Returns the total number of bytes written.\n"
+"buffers must be a sequence of bytes-like objects.");
+
+#define OS_WRITEV_METHODDEF \
+ {"writev", (PyCFunction)os_writev, METH_VARARGS, os_writev__doc__},
+
+static Py_ssize_t
+os_writev_impl(PyModuleDef *module, int fd, PyObject *buffers);
+
+static PyObject *
+os_writev(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int fd;
+ PyObject *buffers;
+ Py_ssize_t _return_value;
+
+ if (!PyArg_ParseTuple(args, "iO:writev",
+ &fd, &buffers))
+ goto exit;
+ _return_value = os_writev_impl(module, fd, buffers);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyLong_FromSsize_t(_return_value);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_WRITEV) */
+
+#if defined(HAVE_PWRITE)
+
+PyDoc_STRVAR(os_pwrite__doc__,
+"pwrite($module, fd, buffer, offset, /)\n"
+"--\n"
+"\n"
+"Write bytes to a file descriptor starting at a particular offset.\n"
+"\n"
+"Write buffer to fd, starting at offset bytes from the beginning of\n"
+"the file. Returns the number of bytes writte. Does not change the\n"
+"current file offset.");
+
+#define OS_PWRITE_METHODDEF \
+ {"pwrite", (PyCFunction)os_pwrite, METH_VARARGS, os_pwrite__doc__},
+
+static Py_ssize_t
+os_pwrite_impl(PyModuleDef *module, int fd, Py_buffer *buffer,
+ Py_off_t offset);
+
+static PyObject *
+os_pwrite(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int fd;
+ Py_buffer buffer = {NULL, NULL};
+ Py_off_t offset;
+ Py_ssize_t _return_value;
+
+ if (!PyArg_ParseTuple(args, "iy*O&:pwrite",
+ &fd, &buffer, Py_off_t_converter, &offset))
+ goto exit;
+ _return_value = os_pwrite_impl(module, fd, &buffer, offset);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyLong_FromSsize_t(_return_value);
+
+exit:
+ /* Cleanup for buffer */
+ if (buffer.obj)
+ PyBuffer_Release(&buffer);
+
+ return return_value;
+}
+
+#endif /* defined(HAVE_PWRITE) */
+
+#if defined(HAVE_MKFIFO)
+
+PyDoc_STRVAR(os_mkfifo__doc__,
+"mkfifo($module, /, path, mode=438, *, dir_fd=None)\n"
+"--\n"
+"\n"
+"Create a \"fifo\" (a POSIX named pipe).\n"
+"\n"
+"If dir_fd is not None, it should be a file descriptor open to a directory,\n"
+" and path should be relative; path will then be relative to that directory.\n"
+"dir_fd may not be implemented on your platform.\n"
+" If it is unavailable, using it will raise a NotImplementedError.");
+
+#define OS_MKFIFO_METHODDEF \
+ {"mkfifo", (PyCFunction)os_mkfifo, METH_VARARGS|METH_KEYWORDS, os_mkfifo__doc__},
+
+static PyObject *
+os_mkfifo_impl(PyModuleDef *module, path_t *path, int mode, int dir_fd);
+
+static PyObject *
+os_mkfifo(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"path", "mode", "dir_fd", NULL};
+ path_t path = PATH_T_INITIALIZE("mkfifo", "path", 0, 0);
+ int mode = 438;
+ int dir_fd = DEFAULT_DIR_FD;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&|i$O&:mkfifo", _keywords,
+ path_converter, &path, &mode, MKFIFOAT_DIR_FD_CONVERTER, &dir_fd))
+ goto exit;
+ return_value = os_mkfifo_impl(module, &path, mode, dir_fd);
+
+exit:
+ /* Cleanup for path */
+ path_cleanup(&path);
+
+ return return_value;
+}
+
+#endif /* defined(HAVE_MKFIFO) */
+
+#if (defined(HAVE_MKNOD) && defined(HAVE_MAKEDEV))
+
+PyDoc_STRVAR(os_mknod__doc__,
+"mknod($module, /, path, mode=384, device=0, *, dir_fd=None)\n"
+"--\n"
+"\n"
+"Create a node in the file system.\n"
+"\n"
+"Create a node in the file system (file, device special file or named pipe)\n"
+"at path. mode specifies both the permissions to use and the\n"
+"type of node to be created, being combined (bitwise OR) with one of\n"
+"S_IFREG, S_IFCHR, S_IFBLK, and S_IFIFO. If S_IFCHR or S_IFBLK is set on mode,\n"
+"device defines the newly created device special file (probably using\n"
+"os.makedev()). Otherwise device is ignored.\n"
+"\n"
+"If dir_fd is not None, it should be a file descriptor open to a directory,\n"
+" and path should be relative; path will then be relative to that directory.\n"
+"dir_fd may not be implemented on your platform.\n"
+" If it is unavailable, using it will raise a NotImplementedError.");
+
+#define OS_MKNOD_METHODDEF \
+ {"mknod", (PyCFunction)os_mknod, METH_VARARGS|METH_KEYWORDS, os_mknod__doc__},
+
+static PyObject *
+os_mknod_impl(PyModuleDef *module, path_t *path, int mode, dev_t device,
+ int dir_fd);
+
+static PyObject *
+os_mknod(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"path", "mode", "device", "dir_fd", NULL};
+ path_t path = PATH_T_INITIALIZE("mknod", "path", 0, 0);
+ int mode = 384;
+ dev_t device = 0;
+ int dir_fd = DEFAULT_DIR_FD;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&|iO&$O&:mknod", _keywords,
+ path_converter, &path, &mode, _Py_Dev_Converter, &device, MKNODAT_DIR_FD_CONVERTER, &dir_fd))
+ goto exit;
+ return_value = os_mknod_impl(module, &path, mode, device, dir_fd);
+
+exit:
+ /* Cleanup for path */
+ path_cleanup(&path);
+
+ return return_value;
+}
+
+#endif /* (defined(HAVE_MKNOD) && defined(HAVE_MAKEDEV)) */
+
+#if defined(HAVE_DEVICE_MACROS)
+
+PyDoc_STRVAR(os_major__doc__,
+"major($module, device, /)\n"
+"--\n"
+"\n"
+"Extracts a device major number from a raw device number.");
+
+#define OS_MAJOR_METHODDEF \
+ {"major", (PyCFunction)os_major, METH_O, os_major__doc__},
+
+static unsigned int
+os_major_impl(PyModuleDef *module, dev_t device);
+
+static PyObject *
+os_major(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ dev_t device;
+ unsigned int _return_value;
+
+ if (!PyArg_Parse(arg, "O&:major", _Py_Dev_Converter, &device))
+ goto exit;
+ _return_value = os_major_impl(module, device);
+ if ((_return_value == (unsigned int)-1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyLong_FromUnsignedLong((unsigned long)_return_value);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_DEVICE_MACROS) */
+
+#if defined(HAVE_DEVICE_MACROS)
+
+PyDoc_STRVAR(os_minor__doc__,
+"minor($module, device, /)\n"
+"--\n"
+"\n"
+"Extracts a device minor number from a raw device number.");
+
+#define OS_MINOR_METHODDEF \
+ {"minor", (PyCFunction)os_minor, METH_O, os_minor__doc__},
+
+static unsigned int
+os_minor_impl(PyModuleDef *module, dev_t device);
+
+static PyObject *
+os_minor(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ dev_t device;
+ unsigned int _return_value;
+
+ if (!PyArg_Parse(arg, "O&:minor", _Py_Dev_Converter, &device))
+ goto exit;
+ _return_value = os_minor_impl(module, device);
+ if ((_return_value == (unsigned int)-1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyLong_FromUnsignedLong((unsigned long)_return_value);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_DEVICE_MACROS) */
+
+#if defined(HAVE_DEVICE_MACROS)
+
+PyDoc_STRVAR(os_makedev__doc__,
+"makedev($module, major, minor, /)\n"
+"--\n"
+"\n"
+"Composes a raw device number from the major and minor device numbers.");
+
+#define OS_MAKEDEV_METHODDEF \
+ {"makedev", (PyCFunction)os_makedev, METH_VARARGS, os_makedev__doc__},
+
+static dev_t
+os_makedev_impl(PyModuleDef *module, int major, int minor);
+
+static PyObject *
+os_makedev(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int major;
+ int minor;
+ dev_t _return_value;
+
+ if (!PyArg_ParseTuple(args, "ii:makedev",
+ &major, &minor))
+ goto exit;
+ _return_value = os_makedev_impl(module, major, minor);
+ if ((_return_value == (dev_t)-1) && PyErr_Occurred())
+ goto exit;
+ return_value = _PyLong_FromDev(_return_value);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_DEVICE_MACROS) */
+
+#if (defined HAVE_FTRUNCATE || defined MS_WINDOWS)
+
+PyDoc_STRVAR(os_ftruncate__doc__,
+"ftruncate($module, fd, length, /)\n"
+"--\n"
+"\n"
+"Truncate a file, specified by file descriptor, to a specific length.");
+
+#define OS_FTRUNCATE_METHODDEF \
+ {"ftruncate", (PyCFunction)os_ftruncate, METH_VARARGS, os_ftruncate__doc__},
+
+static PyObject *
+os_ftruncate_impl(PyModuleDef *module, int fd, Py_off_t length);
+
+static PyObject *
+os_ftruncate(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int fd;
+ Py_off_t length;
+
+ if (!PyArg_ParseTuple(args, "iO&:ftruncate",
+ &fd, Py_off_t_converter, &length))
+ goto exit;
+ return_value = os_ftruncate_impl(module, fd, length);
+
+exit:
+ return return_value;
+}
+
+#endif /* (defined HAVE_FTRUNCATE || defined MS_WINDOWS) */
+
+#if (defined HAVE_TRUNCATE || defined MS_WINDOWS)
+
+PyDoc_STRVAR(os_truncate__doc__,
+"truncate($module, /, path, length)\n"
+"--\n"
+"\n"
+"Truncate a file, specified by path, to a specific length.\n"
+"\n"
+"On some platforms, path may also be specified as an open file descriptor.\n"
+" If this functionality is unavailable, using it raises an exception.");
+
+#define OS_TRUNCATE_METHODDEF \
+ {"truncate", (PyCFunction)os_truncate, METH_VARARGS|METH_KEYWORDS, os_truncate__doc__},
+
+static PyObject *
+os_truncate_impl(PyModuleDef *module, path_t *path, Py_off_t length);
+
+static PyObject *
+os_truncate(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"path", "length", NULL};
+ path_t path = PATH_T_INITIALIZE("truncate", "path", 0, PATH_HAVE_FTRUNCATE);
+ Py_off_t length;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&:truncate", _keywords,
+ path_converter, &path, Py_off_t_converter, &length))
+ goto exit;
+ return_value = os_truncate_impl(module, &path, length);
+
+exit:
+ /* Cleanup for path */
+ path_cleanup(&path);
+
+ return return_value;
+}
+
+#endif /* (defined HAVE_TRUNCATE || defined MS_WINDOWS) */
+
+#if (defined(HAVE_POSIX_FALLOCATE) && !defined(POSIX_FADVISE_AIX_BUG))
+
+PyDoc_STRVAR(os_posix_fallocate__doc__,
+"posix_fallocate($module, fd, offset, length, /)\n"
+"--\n"
+"\n"
+"Ensure a file has allocated at least a particular number of bytes on disk.\n"
+"\n"
+"Ensure that the file specified by fd encompasses a range of bytes\n"
+"starting at offset bytes from the beginning and continuing for length bytes.");
+
+#define OS_POSIX_FALLOCATE_METHODDEF \
+ {"posix_fallocate", (PyCFunction)os_posix_fallocate, METH_VARARGS, os_posix_fallocate__doc__},
+
+static PyObject *
+os_posix_fallocate_impl(PyModuleDef *module, int fd, Py_off_t offset,
+ Py_off_t length);
+
+static PyObject *
+os_posix_fallocate(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int fd;
+ Py_off_t offset;
+ Py_off_t length;
+
+ if (!PyArg_ParseTuple(args, "iO&O&:posix_fallocate",
+ &fd, Py_off_t_converter, &offset, Py_off_t_converter, &length))
+ goto exit;
+ return_value = os_posix_fallocate_impl(module, fd, offset, length);
+
+exit:
+ return return_value;
+}
+
+#endif /* (defined(HAVE_POSIX_FALLOCATE) && !defined(POSIX_FADVISE_AIX_BUG)) */
+
+#if (defined(HAVE_POSIX_FADVISE) && !defined(POSIX_FADVISE_AIX_BUG))
+
+PyDoc_STRVAR(os_posix_fadvise__doc__,
+"posix_fadvise($module, fd, offset, length, advice, /)\n"
+"--\n"
+"\n"
+"Announce an intention to access data in a specific pattern.\n"
+"\n"
+"Announce an intention to access data in a specific pattern, thus allowing\n"
+"the kernel to make optimizations.\n"
+"The advice applies to the region of the file specified by fd starting at\n"
+"offset and continuing for length bytes.\n"
+"advice is one of POSIX_FADV_NORMAL, POSIX_FADV_SEQUENTIAL,\n"
+"POSIX_FADV_RANDOM, POSIX_FADV_NOREUSE, POSIX_FADV_WILLNEED, or\n"
+"POSIX_FADV_DONTNEED.");
+
+#define OS_POSIX_FADVISE_METHODDEF \
+ {"posix_fadvise", (PyCFunction)os_posix_fadvise, METH_VARARGS, os_posix_fadvise__doc__},
+
+static PyObject *
+os_posix_fadvise_impl(PyModuleDef *module, int fd, Py_off_t offset,
+ Py_off_t length, int advice);
+
+static PyObject *
+os_posix_fadvise(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int fd;
+ Py_off_t offset;
+ Py_off_t length;
+ int advice;
+
+ if (!PyArg_ParseTuple(args, "iO&O&i:posix_fadvise",
+ &fd, Py_off_t_converter, &offset, Py_off_t_converter, &length, &advice))
+ goto exit;
+ return_value = os_posix_fadvise_impl(module, fd, offset, length, advice);
+
+exit:
+ return return_value;
+}
+
+#endif /* (defined(HAVE_POSIX_FADVISE) && !defined(POSIX_FADVISE_AIX_BUG)) */
+
+#if defined(HAVE_PUTENV) && defined(MS_WINDOWS)
+
+PyDoc_STRVAR(os_putenv__doc__,
+"putenv($module, name, value, /)\n"
+"--\n"
+"\n"
+"Change or add an environment variable.");
+
+#define OS_PUTENV_METHODDEF \
+ {"putenv", (PyCFunction)os_putenv, METH_VARARGS, os_putenv__doc__},
+
+static PyObject *
+os_putenv_impl(PyModuleDef *module, PyObject *name, PyObject *value);
+
+static PyObject *
+os_putenv(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *name;
+ PyObject *value;
+
+ if (!PyArg_ParseTuple(args, "UU:putenv",
+ &name, &value))
+ goto exit;
+ return_value = os_putenv_impl(module, name, value);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_PUTENV) && defined(MS_WINDOWS) */
+
+#if defined(HAVE_PUTENV) && !defined(MS_WINDOWS)
+
+PyDoc_STRVAR(os_putenv__doc__,
+"putenv($module, name, value, /)\n"
+"--\n"
+"\n"
+"Change or add an environment variable.");
+
+#define OS_PUTENV_METHODDEF \
+ {"putenv", (PyCFunction)os_putenv, METH_VARARGS, os_putenv__doc__},
+
+static PyObject *
+os_putenv_impl(PyModuleDef *module, PyObject *name, PyObject *value);
+
+static PyObject *
+os_putenv(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *name = NULL;
+ PyObject *value = NULL;
+
+ if (!PyArg_ParseTuple(args, "O&O&:putenv",
+ PyUnicode_FSConverter, &name, PyUnicode_FSConverter, &value))
+ goto exit;
+ return_value = os_putenv_impl(module, name, value);
+
+exit:
+ /* Cleanup for name */
+ Py_XDECREF(name);
+ /* Cleanup for value */
+ Py_XDECREF(value);
+
+ return return_value;
+}
+
+#endif /* defined(HAVE_PUTENV) && !defined(MS_WINDOWS) */
+
+#if defined(HAVE_UNSETENV)
+
+PyDoc_STRVAR(os_unsetenv__doc__,
+"unsetenv($module, name, /)\n"
+"--\n"
+"\n"
+"Delete an environment variable.");
+
+#define OS_UNSETENV_METHODDEF \
+ {"unsetenv", (PyCFunction)os_unsetenv, METH_O, os_unsetenv__doc__},
+
+static PyObject *
+os_unsetenv_impl(PyModuleDef *module, PyObject *name);
+
+static PyObject *
+os_unsetenv(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ PyObject *name = NULL;
+
+ if (!PyArg_Parse(arg, "O&:unsetenv", PyUnicode_FSConverter, &name))
+ goto exit;
+ return_value = os_unsetenv_impl(module, name);
+
+exit:
+ /* Cleanup for name */
+ Py_XDECREF(name);
+
+ return return_value;
+}
+
+#endif /* defined(HAVE_UNSETENV) */
+
+PyDoc_STRVAR(os_strerror__doc__,
+"strerror($module, code, /)\n"
+"--\n"
+"\n"
+"Translate an error code to a message string.");
+
+#define OS_STRERROR_METHODDEF \
+ {"strerror", (PyCFunction)os_strerror, METH_O, os_strerror__doc__},
+
+static PyObject *
+os_strerror_impl(PyModuleDef *module, int code);
+
+static PyObject *
+os_strerror(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int code;
+
+ if (!PyArg_Parse(arg, "i:strerror", &code))
+ goto exit;
+ return_value = os_strerror_impl(module, code);
+
+exit:
+ return return_value;
+}
+
+#if defined(HAVE_SYS_WAIT_H) && defined(WCOREDUMP)
+
+PyDoc_STRVAR(os_WCOREDUMP__doc__,
+"WCOREDUMP($module, status, /)\n"
+"--\n"
+"\n"
+"Return True if the process returning status was dumped to a core file.");
+
+#define OS_WCOREDUMP_METHODDEF \
+ {"WCOREDUMP", (PyCFunction)os_WCOREDUMP, METH_O, os_WCOREDUMP__doc__},
+
+static int
+os_WCOREDUMP_impl(PyModuleDef *module, int status);
+
+static PyObject *
+os_WCOREDUMP(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int status;
+ int _return_value;
+
+ if (!PyArg_Parse(arg, "i:WCOREDUMP", &status))
+ goto exit;
+ _return_value = os_WCOREDUMP_impl(module, status);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyBool_FromLong((long)_return_value);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SYS_WAIT_H) && defined(WCOREDUMP) */
+
+#if defined(HAVE_SYS_WAIT_H) && defined(WIFCONTINUED)
+
+PyDoc_STRVAR(os_WIFCONTINUED__doc__,
+"WIFCONTINUED($module, /, status)\n"
+"--\n"
+"\n"
+"Return True if a particular process was continued from a job control stop.\n"
+"\n"
+"Return True if the process returning status was continued from a\n"
+"job control stop.");
+
+#define OS_WIFCONTINUED_METHODDEF \
+ {"WIFCONTINUED", (PyCFunction)os_WIFCONTINUED, METH_VARARGS|METH_KEYWORDS, os_WIFCONTINUED__doc__},
+
+static int
+os_WIFCONTINUED_impl(PyModuleDef *module, int status);
+
+static PyObject *
+os_WIFCONTINUED(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"status", NULL};
+ int status;
+ int _return_value;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i:WIFCONTINUED", _keywords,
+ &status))
+ goto exit;
+ _return_value = os_WIFCONTINUED_impl(module, status);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyBool_FromLong((long)_return_value);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SYS_WAIT_H) && defined(WIFCONTINUED) */
+
+#if defined(HAVE_SYS_WAIT_H) && defined(WIFSTOPPED)
+
+PyDoc_STRVAR(os_WIFSTOPPED__doc__,
+"WIFSTOPPED($module, /, status)\n"
+"--\n"
+"\n"
+"Return True if the process returning status was stopped.");
+
+#define OS_WIFSTOPPED_METHODDEF \
+ {"WIFSTOPPED", (PyCFunction)os_WIFSTOPPED, METH_VARARGS|METH_KEYWORDS, os_WIFSTOPPED__doc__},
+
+static int
+os_WIFSTOPPED_impl(PyModuleDef *module, int status);
+
+static PyObject *
+os_WIFSTOPPED(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"status", NULL};
+ int status;
+ int _return_value;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i:WIFSTOPPED", _keywords,
+ &status))
+ goto exit;
+ _return_value = os_WIFSTOPPED_impl(module, status);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyBool_FromLong((long)_return_value);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SYS_WAIT_H) && defined(WIFSTOPPED) */
+
+#if defined(HAVE_SYS_WAIT_H) && defined(WIFSIGNALED)
+
+PyDoc_STRVAR(os_WIFSIGNALED__doc__,
+"WIFSIGNALED($module, /, status)\n"
+"--\n"
+"\n"
+"Return True if the process returning status was terminated by a signal.");
+
+#define OS_WIFSIGNALED_METHODDEF \
+ {"WIFSIGNALED", (PyCFunction)os_WIFSIGNALED, METH_VARARGS|METH_KEYWORDS, os_WIFSIGNALED__doc__},
+
+static int
+os_WIFSIGNALED_impl(PyModuleDef *module, int status);
+
+static PyObject *
+os_WIFSIGNALED(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"status", NULL};
+ int status;
+ int _return_value;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i:WIFSIGNALED", _keywords,
+ &status))
+ goto exit;
+ _return_value = os_WIFSIGNALED_impl(module, status);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyBool_FromLong((long)_return_value);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SYS_WAIT_H) && defined(WIFSIGNALED) */
+
+#if defined(HAVE_SYS_WAIT_H) && defined(WIFEXITED)
+
+PyDoc_STRVAR(os_WIFEXITED__doc__,
+"WIFEXITED($module, /, status)\n"
+"--\n"
+"\n"
+"Return True if the process returning status exited via the exit() system call.");
+
+#define OS_WIFEXITED_METHODDEF \
+ {"WIFEXITED", (PyCFunction)os_WIFEXITED, METH_VARARGS|METH_KEYWORDS, os_WIFEXITED__doc__},
+
+static int
+os_WIFEXITED_impl(PyModuleDef *module, int status);
+
+static PyObject *
+os_WIFEXITED(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"status", NULL};
+ int status;
+ int _return_value;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i:WIFEXITED", _keywords,
+ &status))
+ goto exit;
+ _return_value = os_WIFEXITED_impl(module, status);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyBool_FromLong((long)_return_value);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SYS_WAIT_H) && defined(WIFEXITED) */
+
+#if defined(HAVE_SYS_WAIT_H) && defined(WEXITSTATUS)
+
+PyDoc_STRVAR(os_WEXITSTATUS__doc__,
+"WEXITSTATUS($module, /, status)\n"
+"--\n"
+"\n"
+"Return the process return code from status.");
+
+#define OS_WEXITSTATUS_METHODDEF \
+ {"WEXITSTATUS", (PyCFunction)os_WEXITSTATUS, METH_VARARGS|METH_KEYWORDS, os_WEXITSTATUS__doc__},
+
+static int
+os_WEXITSTATUS_impl(PyModuleDef *module, int status);
+
+static PyObject *
+os_WEXITSTATUS(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"status", NULL};
+ int status;
+ int _return_value;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i:WEXITSTATUS", _keywords,
+ &status))
+ goto exit;
+ _return_value = os_WEXITSTATUS_impl(module, status);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyLong_FromLong((long)_return_value);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SYS_WAIT_H) && defined(WEXITSTATUS) */
+
+#if defined(HAVE_SYS_WAIT_H) && defined(WTERMSIG)
+
+PyDoc_STRVAR(os_WTERMSIG__doc__,
+"WTERMSIG($module, /, status)\n"
+"--\n"
+"\n"
+"Return the signal that terminated the process that provided the status value.");
+
+#define OS_WTERMSIG_METHODDEF \
+ {"WTERMSIG", (PyCFunction)os_WTERMSIG, METH_VARARGS|METH_KEYWORDS, os_WTERMSIG__doc__},
+
+static int
+os_WTERMSIG_impl(PyModuleDef *module, int status);
+
+static PyObject *
+os_WTERMSIG(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"status", NULL};
+ int status;
+ int _return_value;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i:WTERMSIG", _keywords,
+ &status))
+ goto exit;
+ _return_value = os_WTERMSIG_impl(module, status);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyLong_FromLong((long)_return_value);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SYS_WAIT_H) && defined(WTERMSIG) */
+
+#if defined(HAVE_SYS_WAIT_H) && defined(WSTOPSIG)
+
+PyDoc_STRVAR(os_WSTOPSIG__doc__,
+"WSTOPSIG($module, /, status)\n"
+"--\n"
+"\n"
+"Return the signal that stopped the process that provided the status value.");
+
+#define OS_WSTOPSIG_METHODDEF \
+ {"WSTOPSIG", (PyCFunction)os_WSTOPSIG, METH_VARARGS|METH_KEYWORDS, os_WSTOPSIG__doc__},
+
+static int
+os_WSTOPSIG_impl(PyModuleDef *module, int status);
+
+static PyObject *
+os_WSTOPSIG(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"status", NULL};
+ int status;
+ int _return_value;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i:WSTOPSIG", _keywords,
+ &status))
+ goto exit;
+ _return_value = os_WSTOPSIG_impl(module, status);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyLong_FromLong((long)_return_value);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SYS_WAIT_H) && defined(WSTOPSIG) */
+
+#if (defined(HAVE_FSTATVFS) && defined(HAVE_SYS_STATVFS_H))
+
+PyDoc_STRVAR(os_fstatvfs__doc__,
+"fstatvfs($module, fd, /)\n"
+"--\n"
+"\n"
+"Perform an fstatvfs system call on the given fd.\n"
+"\n"
+"Equivalent to statvfs(fd).");
+
+#define OS_FSTATVFS_METHODDEF \
+ {"fstatvfs", (PyCFunction)os_fstatvfs, METH_O, os_fstatvfs__doc__},
+
+static PyObject *
+os_fstatvfs_impl(PyModuleDef *module, int fd);
+
+static PyObject *
+os_fstatvfs(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int fd;
+
+ if (!PyArg_Parse(arg, "i:fstatvfs", &fd))
+ goto exit;
+ return_value = os_fstatvfs_impl(module, fd);
+
+exit:
+ return return_value;
+}
+
+#endif /* (defined(HAVE_FSTATVFS) && defined(HAVE_SYS_STATVFS_H)) */
+
+#if (defined(HAVE_STATVFS) && defined(HAVE_SYS_STATVFS_H))
+
+PyDoc_STRVAR(os_statvfs__doc__,
+"statvfs($module, /, path)\n"
+"--\n"
+"\n"
+"Perform a statvfs system call on the given path.\n"
+"\n"
+"path may always be specified as a string.\n"
+"On some platforms, path may also be specified as an open file descriptor.\n"
+" If this functionality is unavailable, using it raises an exception.");
+
+#define OS_STATVFS_METHODDEF \
+ {"statvfs", (PyCFunction)os_statvfs, METH_VARARGS|METH_KEYWORDS, os_statvfs__doc__},
+
+static PyObject *
+os_statvfs_impl(PyModuleDef *module, path_t *path);
+
+static PyObject *
+os_statvfs(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"path", NULL};
+ path_t path = PATH_T_INITIALIZE("statvfs", "path", 0, PATH_HAVE_FSTATVFS);
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&:statvfs", _keywords,
+ path_converter, &path))
+ goto exit;
+ return_value = os_statvfs_impl(module, &path);
+
+exit:
+ /* Cleanup for path */
+ path_cleanup(&path);
+
+ return return_value;
+}
+
+#endif /* (defined(HAVE_STATVFS) && defined(HAVE_SYS_STATVFS_H)) */
+
+#if defined(MS_WINDOWS)
+
+PyDoc_STRVAR(os__getdiskusage__doc__,
+"_getdiskusage($module, /, path)\n"
+"--\n"
+"\n"
+"Return disk usage statistics about the given path as a (total, free) tuple.");
+
+#define OS__GETDISKUSAGE_METHODDEF \
+ {"_getdiskusage", (PyCFunction)os__getdiskusage, METH_VARARGS|METH_KEYWORDS, os__getdiskusage__doc__},
+
+static PyObject *
+os__getdiskusage_impl(PyModuleDef *module, Py_UNICODE *path);
+
+static PyObject *
+os__getdiskusage(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"path", NULL};
+ Py_UNICODE *path;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "u:_getdiskusage", _keywords,
+ &path))
+ goto exit;
+ return_value = os__getdiskusage_impl(module, path);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(MS_WINDOWS) */
+
+#if defined(HAVE_FPATHCONF)
+
+PyDoc_STRVAR(os_fpathconf__doc__,
+"fpathconf($module, fd, name, /)\n"
+"--\n"
+"\n"
+"Return the configuration limit name for the file descriptor fd.\n"
+"\n"
+"If there is no limit, return -1.");
+
+#define OS_FPATHCONF_METHODDEF \
+ {"fpathconf", (PyCFunction)os_fpathconf, METH_VARARGS, os_fpathconf__doc__},
+
+static long
+os_fpathconf_impl(PyModuleDef *module, int fd, int name);
+
+static PyObject *
+os_fpathconf(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int fd;
+ int name;
+ long _return_value;
+
+ if (!PyArg_ParseTuple(args, "iO&:fpathconf",
+ &fd, conv_path_confname, &name))
+ goto exit;
+ _return_value = os_fpathconf_impl(module, fd, name);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyLong_FromLong(_return_value);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_FPATHCONF) */
+
+#if defined(HAVE_PATHCONF)
+
+PyDoc_STRVAR(os_pathconf__doc__,
+"pathconf($module, /, path, name)\n"
+"--\n"
+"\n"
+"Return the configuration limit name for the file or directory path.\n"
+"\n"
+"If there is no limit, return -1.\n"
+"On some platforms, path may also be specified as an open file descriptor.\n"
+" If this functionality is unavailable, using it raises an exception.");
+
+#define OS_PATHCONF_METHODDEF \
+ {"pathconf", (PyCFunction)os_pathconf, METH_VARARGS|METH_KEYWORDS, os_pathconf__doc__},
+
+static long
+os_pathconf_impl(PyModuleDef *module, path_t *path, int name);
+
+static PyObject *
+os_pathconf(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"path", "name", NULL};
+ path_t path = PATH_T_INITIALIZE("pathconf", "path", 0, PATH_HAVE_FPATHCONF);
+ int name;
+ long _return_value;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&:pathconf", _keywords,
+ path_converter, &path, conv_path_confname, &name))
+ goto exit;
+ _return_value = os_pathconf_impl(module, &path, name);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyLong_FromLong(_return_value);
+
+exit:
+ /* Cleanup for path */
+ path_cleanup(&path);
+
+ return return_value;
+}
+
+#endif /* defined(HAVE_PATHCONF) */
+
+#if defined(HAVE_CONFSTR)
+
+PyDoc_STRVAR(os_confstr__doc__,
+"confstr($module, name, /)\n"
+"--\n"
+"\n"
+"Return a string-valued system configuration variable.");
+
+#define OS_CONFSTR_METHODDEF \
+ {"confstr", (PyCFunction)os_confstr, METH_O, os_confstr__doc__},
+
+static PyObject *
+os_confstr_impl(PyModuleDef *module, int name);
+
+static PyObject *
+os_confstr(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int name;
+
+ if (!PyArg_Parse(arg, "O&:confstr", conv_confstr_confname, &name))
+ goto exit;
+ return_value = os_confstr_impl(module, name);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_CONFSTR) */
+
+#if defined(HAVE_SYSCONF)
+
+PyDoc_STRVAR(os_sysconf__doc__,
+"sysconf($module, name, /)\n"
+"--\n"
+"\n"
+"Return an integer-valued system configuration variable.");
+
+#define OS_SYSCONF_METHODDEF \
+ {"sysconf", (PyCFunction)os_sysconf, METH_O, os_sysconf__doc__},
+
+static long
+os_sysconf_impl(PyModuleDef *module, int name);
+
+static PyObject *
+os_sysconf(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int name;
+ long _return_value;
+
+ if (!PyArg_Parse(arg, "O&:sysconf", conv_sysconf_confname, &name))
+ goto exit;
+ _return_value = os_sysconf_impl(module, name);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyLong_FromLong(_return_value);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SYSCONF) */
+
+PyDoc_STRVAR(os_abort__doc__,
+"abort($module, /)\n"
+"--\n"
+"\n"
+"Abort the interpreter immediately.\n"
+"\n"
+"This function \'dumps core\' or otherwise fails in the hardest way possible\n"
+"on the hosting operating system. This function never returns.");
+
+#define OS_ABORT_METHODDEF \
+ {"abort", (PyCFunction)os_abort, METH_NOARGS, os_abort__doc__},
+
+static PyObject *
+os_abort_impl(PyModuleDef *module);
+
+static PyObject *
+os_abort(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ return os_abort_impl(module);
+}
+
+#if defined(HAVE_GETLOADAVG)
+
+PyDoc_STRVAR(os_getloadavg__doc__,
+"getloadavg($module, /)\n"
+"--\n"
+"\n"
+"Return average recent system load information.\n"
+"\n"
+"Return the number of processes in the system run queue averaged over\n"
+"the last 1, 5, and 15 minutes as a tuple of three floats.\n"
+"Raises OSError if the load average was unobtainable.");
+
+#define OS_GETLOADAVG_METHODDEF \
+ {"getloadavg", (PyCFunction)os_getloadavg, METH_NOARGS, os_getloadavg__doc__},
+
+static PyObject *
+os_getloadavg_impl(PyModuleDef *module);
+
+static PyObject *
+os_getloadavg(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ return os_getloadavg_impl(module);
+}
+
+#endif /* defined(HAVE_GETLOADAVG) */
+
+PyDoc_STRVAR(os_device_encoding__doc__,
+"device_encoding($module, /, fd)\n"
+"--\n"
+"\n"
+"Return a string describing the encoding of a terminal\'s file descriptor.\n"
+"\n"
+"The file descriptor must be attached to a terminal.\n"
+"If the device is not a terminal, return None.");
+
+#define OS_DEVICE_ENCODING_METHODDEF \
+ {"device_encoding", (PyCFunction)os_device_encoding, METH_VARARGS|METH_KEYWORDS, os_device_encoding__doc__},
+
+static PyObject *
+os_device_encoding_impl(PyModuleDef *module, int fd);
+
+static PyObject *
+os_device_encoding(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"fd", NULL};
+ int fd;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i:device_encoding", _keywords,
+ &fd))
+ goto exit;
+ return_value = os_device_encoding_impl(module, fd);
+
+exit:
+ return return_value;
+}
+
+#if defined(HAVE_SETRESUID)
+
+PyDoc_STRVAR(os_setresuid__doc__,
+"setresuid($module, ruid, euid, suid, /)\n"
+"--\n"
+"\n"
+"Set the current process\'s real, effective, and saved user ids.");
+
+#define OS_SETRESUID_METHODDEF \
+ {"setresuid", (PyCFunction)os_setresuid, METH_VARARGS, os_setresuid__doc__},
+
+static PyObject *
+os_setresuid_impl(PyModuleDef *module, uid_t ruid, uid_t euid, uid_t suid);
+
+static PyObject *
+os_setresuid(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ uid_t ruid;
+ uid_t euid;
+ uid_t suid;
+
+ if (!PyArg_ParseTuple(args, "O&O&O&:setresuid",
+ _Py_Uid_Converter, &ruid, _Py_Uid_Converter, &euid, _Py_Uid_Converter, &suid))
+ goto exit;
+ return_value = os_setresuid_impl(module, ruid, euid, suid);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SETRESUID) */
+
+#if defined(HAVE_SETRESGID)
+
+PyDoc_STRVAR(os_setresgid__doc__,
+"setresgid($module, rgid, egid, sgid, /)\n"
+"--\n"
+"\n"
+"Set the current process\'s real, effective, and saved group ids.");
+
+#define OS_SETRESGID_METHODDEF \
+ {"setresgid", (PyCFunction)os_setresgid, METH_VARARGS, os_setresgid__doc__},
+
+static PyObject *
+os_setresgid_impl(PyModuleDef *module, gid_t rgid, gid_t egid, gid_t sgid);
+
+static PyObject *
+os_setresgid(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ gid_t rgid;
+ gid_t egid;
+ gid_t sgid;
+
+ if (!PyArg_ParseTuple(args, "O&O&O&:setresgid",
+ _Py_Gid_Converter, &rgid, _Py_Gid_Converter, &egid, _Py_Gid_Converter, &sgid))
+ goto exit;
+ return_value = os_setresgid_impl(module, rgid, egid, sgid);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SETRESGID) */
+
+#if defined(HAVE_GETRESUID)
+
+PyDoc_STRVAR(os_getresuid__doc__,
+"getresuid($module, /)\n"
+"--\n"
+"\n"
+"Return a tuple of the current process\'s real, effective, and saved user ids.");
+
+#define OS_GETRESUID_METHODDEF \
+ {"getresuid", (PyCFunction)os_getresuid, METH_NOARGS, os_getresuid__doc__},
+
+static PyObject *
+os_getresuid_impl(PyModuleDef *module);
+
+static PyObject *
+os_getresuid(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ return os_getresuid_impl(module);
+}
+
+#endif /* defined(HAVE_GETRESUID) */
+
+#if defined(HAVE_GETRESGID)
+
+PyDoc_STRVAR(os_getresgid__doc__,
+"getresgid($module, /)\n"
+"--\n"
+"\n"
+"Return a tuple of the current process\'s real, effective, and saved group ids.");
+
+#define OS_GETRESGID_METHODDEF \
+ {"getresgid", (PyCFunction)os_getresgid, METH_NOARGS, os_getresgid__doc__},
+
+static PyObject *
+os_getresgid_impl(PyModuleDef *module);
+
+static PyObject *
+os_getresgid(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ return os_getresgid_impl(module);
+}
+
+#endif /* defined(HAVE_GETRESGID) */
+
+#if defined(USE_XATTRS)
+
+PyDoc_STRVAR(os_getxattr__doc__,
+"getxattr($module, /, path, attribute, *, follow_symlinks=True)\n"
+"--\n"
+"\n"
+"Return the value of extended attribute attribute on path.\n"
+"\n"
+"path may be either a string or an open file descriptor.\n"
+"If follow_symlinks is False, and the last element of the path is a symbolic\n"
+" link, getxattr will examine the symbolic link itself instead of the file\n"
+" the link points to.");
+
+#define OS_GETXATTR_METHODDEF \
+ {"getxattr", (PyCFunction)os_getxattr, METH_VARARGS|METH_KEYWORDS, os_getxattr__doc__},
+
+static PyObject *
+os_getxattr_impl(PyModuleDef *module, path_t *path, path_t *attribute,
+ int follow_symlinks);
+
+static PyObject *
+os_getxattr(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"path", "attribute", "follow_symlinks", NULL};
+ path_t path = PATH_T_INITIALIZE("getxattr", "path", 0, 1);
+ path_t attribute = PATH_T_INITIALIZE("getxattr", "attribute", 0, 0);
+ int follow_symlinks = 1;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&|$p:getxattr", _keywords,
+ path_converter, &path, path_converter, &attribute, &follow_symlinks))
+ goto exit;
+ return_value = os_getxattr_impl(module, &path, &attribute, follow_symlinks);
+
+exit:
+ /* Cleanup for path */
+ path_cleanup(&path);
+ /* Cleanup for attribute */
+ path_cleanup(&attribute);
+
+ return return_value;
+}
+
+#endif /* defined(USE_XATTRS) */
+
+#if defined(USE_XATTRS)
+
+PyDoc_STRVAR(os_setxattr__doc__,
+"setxattr($module, /, path, attribute, value, flags=0, *,\n"
+" follow_symlinks=True)\n"
+"--\n"
+"\n"
+"Set extended attribute attribute on path to value.\n"
+"\n"
+"path may be either a string or an open file descriptor.\n"
+"If follow_symlinks is False, and the last element of the path is a symbolic\n"
+" link, setxattr will modify the symbolic link itself instead of the file\n"
+" the link points to.");
+
+#define OS_SETXATTR_METHODDEF \
+ {"setxattr", (PyCFunction)os_setxattr, METH_VARARGS|METH_KEYWORDS, os_setxattr__doc__},
+
+static PyObject *
+os_setxattr_impl(PyModuleDef *module, path_t *path, path_t *attribute,
+ Py_buffer *value, int flags, int follow_symlinks);
+
+static PyObject *
+os_setxattr(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"path", "attribute", "value", "flags", "follow_symlinks", NULL};
+ path_t path = PATH_T_INITIALIZE("setxattr", "path", 0, 1);
+ path_t attribute = PATH_T_INITIALIZE("setxattr", "attribute", 0, 0);
+ Py_buffer value = {NULL, NULL};
+ int flags = 0;
+ int follow_symlinks = 1;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&y*|i$p:setxattr", _keywords,
+ path_converter, &path, path_converter, &attribute, &value, &flags, &follow_symlinks))
+ goto exit;
+ return_value = os_setxattr_impl(module, &path, &attribute, &value, flags, follow_symlinks);
+
+exit:
+ /* Cleanup for path */
+ path_cleanup(&path);
+ /* Cleanup for attribute */
+ path_cleanup(&attribute);
+ /* Cleanup for value */
+ if (value.obj)
+ PyBuffer_Release(&value);
+
+ return return_value;
+}
+
+#endif /* defined(USE_XATTRS) */
+
+#if defined(USE_XATTRS)
+
+PyDoc_STRVAR(os_removexattr__doc__,
+"removexattr($module, /, path, attribute, *, follow_symlinks=True)\n"
+"--\n"
+"\n"
+"Remove extended attribute attribute on path.\n"
+"\n"
+"path may be either a string or an open file descriptor.\n"
+"If follow_symlinks is False, and the last element of the path is a symbolic\n"
+" link, removexattr will modify the symbolic link itself instead of the file\n"
+" the link points to.");
+
+#define OS_REMOVEXATTR_METHODDEF \
+ {"removexattr", (PyCFunction)os_removexattr, METH_VARARGS|METH_KEYWORDS, os_removexattr__doc__},
+
+static PyObject *
+os_removexattr_impl(PyModuleDef *module, path_t *path, path_t *attribute,
+ int follow_symlinks);
+
+static PyObject *
+os_removexattr(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"path", "attribute", "follow_symlinks", NULL};
+ path_t path = PATH_T_INITIALIZE("removexattr", "path", 0, 1);
+ path_t attribute = PATH_T_INITIALIZE("removexattr", "attribute", 0, 0);
+ int follow_symlinks = 1;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&|$p:removexattr", _keywords,
+ path_converter, &path, path_converter, &attribute, &follow_symlinks))
+ goto exit;
+ return_value = os_removexattr_impl(module, &path, &attribute, follow_symlinks);
+
+exit:
+ /* Cleanup for path */
+ path_cleanup(&path);
+ /* Cleanup for attribute */
+ path_cleanup(&attribute);
+
+ return return_value;
+}
+
+#endif /* defined(USE_XATTRS) */
+
+#if defined(USE_XATTRS)
+
+PyDoc_STRVAR(os_listxattr__doc__,
+"listxattr($module, /, path=None, *, follow_symlinks=True)\n"
+"--\n"
+"\n"
+"Return a list of extended attributes on path.\n"
+"\n"
+"path may be either None, a string, or an open file descriptor.\n"
+"if path is None, listxattr will examine the current directory.\n"
+"If follow_symlinks is False, and the last element of the path is a symbolic\n"
+" link, listxattr will examine the symbolic link itself instead of the file\n"
+" the link points to.");
+
+#define OS_LISTXATTR_METHODDEF \
+ {"listxattr", (PyCFunction)os_listxattr, METH_VARARGS|METH_KEYWORDS, os_listxattr__doc__},
+
+static PyObject *
+os_listxattr_impl(PyModuleDef *module, path_t *path, int follow_symlinks);
+
+static PyObject *
+os_listxattr(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"path", "follow_symlinks", NULL};
+ path_t path = PATH_T_INITIALIZE("listxattr", "path", 1, 1);
+ int follow_symlinks = 1;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|O&$p:listxattr", _keywords,
+ path_converter, &path, &follow_symlinks))
+ goto exit;
+ return_value = os_listxattr_impl(module, &path, follow_symlinks);
+
+exit:
+ /* Cleanup for path */
+ path_cleanup(&path);
+
+ return return_value;
+}
+
+#endif /* defined(USE_XATTRS) */
+
+PyDoc_STRVAR(os_urandom__doc__,
+"urandom($module, size, /)\n"
+"--\n"
+"\n"
+"Return a bytes object containing random bytes suitable for cryptographic use.");
+
+#define OS_URANDOM_METHODDEF \
+ {"urandom", (PyCFunction)os_urandom, METH_O, os_urandom__doc__},
+
+static PyObject *
+os_urandom_impl(PyModuleDef *module, Py_ssize_t size);
+
+static PyObject *
+os_urandom(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_ssize_t size;
+
+ if (!PyArg_Parse(arg, "n:urandom", &size))
+ goto exit;
+ return_value = os_urandom_impl(module, size);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(os_cpu_count__doc__,
+"cpu_count($module, /)\n"
+"--\n"
+"\n"
+"Return the number of CPUs in the system; return None if indeterminable.");
+
+#define OS_CPU_COUNT_METHODDEF \
+ {"cpu_count", (PyCFunction)os_cpu_count, METH_NOARGS, os_cpu_count__doc__},
+
+static PyObject *
+os_cpu_count_impl(PyModuleDef *module);
+
+static PyObject *
+os_cpu_count(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ return os_cpu_count_impl(module);
+}
+
+PyDoc_STRVAR(os_get_inheritable__doc__,
+"get_inheritable($module, fd, /)\n"
+"--\n"
+"\n"
+"Get the close-on-exe flag of the specified file descriptor.");
+
+#define OS_GET_INHERITABLE_METHODDEF \
+ {"get_inheritable", (PyCFunction)os_get_inheritable, METH_O, os_get_inheritable__doc__},
+
+static int
+os_get_inheritable_impl(PyModuleDef *module, int fd);
+
+static PyObject *
+os_get_inheritable(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int fd;
+ int _return_value;
+
+ if (!PyArg_Parse(arg, "i:get_inheritable", &fd))
+ goto exit;
+ _return_value = os_get_inheritable_impl(module, fd);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyBool_FromLong((long)_return_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(os_set_inheritable__doc__,
+"set_inheritable($module, fd, inheritable, /)\n"
+"--\n"
+"\n"
+"Set the inheritable flag of the specified file descriptor.");
+
+#define OS_SET_INHERITABLE_METHODDEF \
+ {"set_inheritable", (PyCFunction)os_set_inheritable, METH_VARARGS, os_set_inheritable__doc__},
+
+static PyObject *
+os_set_inheritable_impl(PyModuleDef *module, int fd, int inheritable);
+
+static PyObject *
+os_set_inheritable(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int fd;
+ int inheritable;
+
+ if (!PyArg_ParseTuple(args, "ii:set_inheritable",
+ &fd, &inheritable))
+ goto exit;
+ return_value = os_set_inheritable_impl(module, fd, inheritable);
+
+exit:
+ return return_value;
+}
+
+#if defined(MS_WINDOWS)
+
+PyDoc_STRVAR(os_get_handle_inheritable__doc__,
+"get_handle_inheritable($module, handle, /)\n"
+"--\n"
+"\n"
+"Get the close-on-exe flag of the specified file descriptor.");
+
+#define OS_GET_HANDLE_INHERITABLE_METHODDEF \
+ {"get_handle_inheritable", (PyCFunction)os_get_handle_inheritable, METH_O, os_get_handle_inheritable__doc__},
+
+static int
+os_get_handle_inheritable_impl(PyModuleDef *module, Py_intptr_t handle);
+
+static PyObject *
+os_get_handle_inheritable(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_intptr_t handle;
+ int _return_value;
+
+ if (!PyArg_Parse(arg, "" _Py_PARSE_INTPTR ":get_handle_inheritable", &handle))
+ goto exit;
+ _return_value = os_get_handle_inheritable_impl(module, handle);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyBool_FromLong((long)_return_value);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(MS_WINDOWS) */
+
+#if defined(MS_WINDOWS)
+
+PyDoc_STRVAR(os_set_handle_inheritable__doc__,
+"set_handle_inheritable($module, handle, inheritable, /)\n"
+"--\n"
+"\n"
+"Set the inheritable flag of the specified handle.");
+
+#define OS_SET_HANDLE_INHERITABLE_METHODDEF \
+ {"set_handle_inheritable", (PyCFunction)os_set_handle_inheritable, METH_VARARGS, os_set_handle_inheritable__doc__},
+
+static PyObject *
+os_set_handle_inheritable_impl(PyModuleDef *module, Py_intptr_t handle,
+ int inheritable);
+
+static PyObject *
+os_set_handle_inheritable(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ Py_intptr_t handle;
+ int inheritable;
+
+ if (!PyArg_ParseTuple(args, "" _Py_PARSE_INTPTR "p:set_handle_inheritable",
+ &handle, &inheritable))
+ goto exit;
+ return_value = os_set_handle_inheritable_impl(module, handle, inheritable);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(MS_WINDOWS) */
+
+#ifndef OS_TTYNAME_METHODDEF
+ #define OS_TTYNAME_METHODDEF
+#endif /* !defined(OS_TTYNAME_METHODDEF) */
+
+#ifndef OS_CTERMID_METHODDEF
+ #define OS_CTERMID_METHODDEF
+#endif /* !defined(OS_CTERMID_METHODDEF) */
+
+#ifndef OS_FCHDIR_METHODDEF
+ #define OS_FCHDIR_METHODDEF
+#endif /* !defined(OS_FCHDIR_METHODDEF) */
+
+#ifndef OS_FCHMOD_METHODDEF
+ #define OS_FCHMOD_METHODDEF
+#endif /* !defined(OS_FCHMOD_METHODDEF) */
+
+#ifndef OS_LCHMOD_METHODDEF
+ #define OS_LCHMOD_METHODDEF
+#endif /* !defined(OS_LCHMOD_METHODDEF) */
+
+#ifndef OS_CHFLAGS_METHODDEF
+ #define OS_CHFLAGS_METHODDEF
+#endif /* !defined(OS_CHFLAGS_METHODDEF) */
+
+#ifndef OS_LCHFLAGS_METHODDEF
+ #define OS_LCHFLAGS_METHODDEF
+#endif /* !defined(OS_LCHFLAGS_METHODDEF) */
+
+#ifndef OS_CHROOT_METHODDEF
+ #define OS_CHROOT_METHODDEF
+#endif /* !defined(OS_CHROOT_METHODDEF) */
+
+#ifndef OS_FSYNC_METHODDEF
+ #define OS_FSYNC_METHODDEF
+#endif /* !defined(OS_FSYNC_METHODDEF) */
+
+#ifndef OS_SYNC_METHODDEF
+ #define OS_SYNC_METHODDEF
+#endif /* !defined(OS_SYNC_METHODDEF) */
+
+#ifndef OS_FDATASYNC_METHODDEF
+ #define OS_FDATASYNC_METHODDEF
+#endif /* !defined(OS_FDATASYNC_METHODDEF) */
+
+#ifndef OS_CHOWN_METHODDEF
+ #define OS_CHOWN_METHODDEF
+#endif /* !defined(OS_CHOWN_METHODDEF) */
+
+#ifndef OS_FCHOWN_METHODDEF
+ #define OS_FCHOWN_METHODDEF
+#endif /* !defined(OS_FCHOWN_METHODDEF) */
+
+#ifndef OS_LCHOWN_METHODDEF
+ #define OS_LCHOWN_METHODDEF
+#endif /* !defined(OS_LCHOWN_METHODDEF) */
+
+#ifndef OS_LINK_METHODDEF
+ #define OS_LINK_METHODDEF
+#endif /* !defined(OS_LINK_METHODDEF) */
+
+#ifndef OS__GETFULLPATHNAME_METHODDEF
+ #define OS__GETFULLPATHNAME_METHODDEF
+#endif /* !defined(OS__GETFULLPATHNAME_METHODDEF) */
+
+#ifndef OS__GETFINALPATHNAME_METHODDEF
+ #define OS__GETFINALPATHNAME_METHODDEF
+#endif /* !defined(OS__GETFINALPATHNAME_METHODDEF) */
+
+#ifndef OS__ISDIR_METHODDEF
+ #define OS__ISDIR_METHODDEF
+#endif /* !defined(OS__ISDIR_METHODDEF) */
+
+#ifndef OS__GETVOLUMEPATHNAME_METHODDEF
+ #define OS__GETVOLUMEPATHNAME_METHODDEF
+#endif /* !defined(OS__GETVOLUMEPATHNAME_METHODDEF) */
+
+#ifndef OS_NICE_METHODDEF
+ #define OS_NICE_METHODDEF
+#endif /* !defined(OS_NICE_METHODDEF) */
+
+#ifndef OS_GETPRIORITY_METHODDEF
+ #define OS_GETPRIORITY_METHODDEF
+#endif /* !defined(OS_GETPRIORITY_METHODDEF) */
+
+#ifndef OS_SETPRIORITY_METHODDEF
+ #define OS_SETPRIORITY_METHODDEF
+#endif /* !defined(OS_SETPRIORITY_METHODDEF) */
+
+#ifndef OS_SYSTEM_METHODDEF
+ #define OS_SYSTEM_METHODDEF
+#endif /* !defined(OS_SYSTEM_METHODDEF) */
+
+#ifndef OS_UNAME_METHODDEF
+ #define OS_UNAME_METHODDEF
+#endif /* !defined(OS_UNAME_METHODDEF) */
+
+#ifndef OS_EXECV_METHODDEF
+ #define OS_EXECV_METHODDEF
+#endif /* !defined(OS_EXECV_METHODDEF) */
+
+#ifndef OS_EXECVE_METHODDEF
+ #define OS_EXECVE_METHODDEF
+#endif /* !defined(OS_EXECVE_METHODDEF) */
+
+#ifndef OS_SPAWNV_METHODDEF
+ #define OS_SPAWNV_METHODDEF
+#endif /* !defined(OS_SPAWNV_METHODDEF) */
+
+#ifndef OS_SPAWNVE_METHODDEF
+ #define OS_SPAWNVE_METHODDEF
+#endif /* !defined(OS_SPAWNVE_METHODDEF) */
+
+#ifndef OS_FORK1_METHODDEF
+ #define OS_FORK1_METHODDEF
+#endif /* !defined(OS_FORK1_METHODDEF) */
+
+#ifndef OS_FORK_METHODDEF
+ #define OS_FORK_METHODDEF
+#endif /* !defined(OS_FORK_METHODDEF) */
+
+#ifndef OS_SCHED_GET_PRIORITY_MAX_METHODDEF
+ #define OS_SCHED_GET_PRIORITY_MAX_METHODDEF
+#endif /* !defined(OS_SCHED_GET_PRIORITY_MAX_METHODDEF) */
+
+#ifndef OS_SCHED_GET_PRIORITY_MIN_METHODDEF
+ #define OS_SCHED_GET_PRIORITY_MIN_METHODDEF
+#endif /* !defined(OS_SCHED_GET_PRIORITY_MIN_METHODDEF) */
+
+#ifndef OS_SCHED_GETSCHEDULER_METHODDEF
+ #define OS_SCHED_GETSCHEDULER_METHODDEF
+#endif /* !defined(OS_SCHED_GETSCHEDULER_METHODDEF) */
+
+#ifndef OS_SCHED_SETSCHEDULER_METHODDEF
+ #define OS_SCHED_SETSCHEDULER_METHODDEF
+#endif /* !defined(OS_SCHED_SETSCHEDULER_METHODDEF) */
+
+#ifndef OS_SCHED_GETPARAM_METHODDEF
+ #define OS_SCHED_GETPARAM_METHODDEF
+#endif /* !defined(OS_SCHED_GETPARAM_METHODDEF) */
+
+#ifndef OS_SCHED_SETPARAM_METHODDEF
+ #define OS_SCHED_SETPARAM_METHODDEF
+#endif /* !defined(OS_SCHED_SETPARAM_METHODDEF) */
+
+#ifndef OS_SCHED_RR_GET_INTERVAL_METHODDEF
+ #define OS_SCHED_RR_GET_INTERVAL_METHODDEF
+#endif /* !defined(OS_SCHED_RR_GET_INTERVAL_METHODDEF) */
+
+#ifndef OS_SCHED_YIELD_METHODDEF
+ #define OS_SCHED_YIELD_METHODDEF
+#endif /* !defined(OS_SCHED_YIELD_METHODDEF) */
+
+#ifndef OS_SCHED_SETAFFINITY_METHODDEF
+ #define OS_SCHED_SETAFFINITY_METHODDEF
+#endif /* !defined(OS_SCHED_SETAFFINITY_METHODDEF) */
+
+#ifndef OS_SCHED_GETAFFINITY_METHODDEF
+ #define OS_SCHED_GETAFFINITY_METHODDEF
+#endif /* !defined(OS_SCHED_GETAFFINITY_METHODDEF) */
+
+#ifndef OS_OPENPTY_METHODDEF
+ #define OS_OPENPTY_METHODDEF
+#endif /* !defined(OS_OPENPTY_METHODDEF) */
+
+#ifndef OS_FORKPTY_METHODDEF
+ #define OS_FORKPTY_METHODDEF
+#endif /* !defined(OS_FORKPTY_METHODDEF) */
+
+#ifndef OS_GETEGID_METHODDEF
+ #define OS_GETEGID_METHODDEF
+#endif /* !defined(OS_GETEGID_METHODDEF) */
+
+#ifndef OS_GETEUID_METHODDEF
+ #define OS_GETEUID_METHODDEF
+#endif /* !defined(OS_GETEUID_METHODDEF) */
+
+#ifndef OS_GETGID_METHODDEF
+ #define OS_GETGID_METHODDEF
+#endif /* !defined(OS_GETGID_METHODDEF) */
+
+#ifndef OS_GETGROUPS_METHODDEF
+ #define OS_GETGROUPS_METHODDEF
+#endif /* !defined(OS_GETGROUPS_METHODDEF) */
+
+#ifndef OS_GETPGID_METHODDEF
+ #define OS_GETPGID_METHODDEF
+#endif /* !defined(OS_GETPGID_METHODDEF) */
+
+#ifndef OS_GETPGRP_METHODDEF
+ #define OS_GETPGRP_METHODDEF
+#endif /* !defined(OS_GETPGRP_METHODDEF) */
+
+#ifndef OS_SETPGRP_METHODDEF
+ #define OS_SETPGRP_METHODDEF
+#endif /* !defined(OS_SETPGRP_METHODDEF) */
+
+#ifndef OS_GETPPID_METHODDEF
+ #define OS_GETPPID_METHODDEF
+#endif /* !defined(OS_GETPPID_METHODDEF) */
+
+#ifndef OS_GETLOGIN_METHODDEF
+ #define OS_GETLOGIN_METHODDEF
+#endif /* !defined(OS_GETLOGIN_METHODDEF) */
+
+#ifndef OS_GETUID_METHODDEF
+ #define OS_GETUID_METHODDEF
+#endif /* !defined(OS_GETUID_METHODDEF) */
+
+#ifndef OS_KILL_METHODDEF
+ #define OS_KILL_METHODDEF
+#endif /* !defined(OS_KILL_METHODDEF) */
+
+#ifndef OS_KILLPG_METHODDEF
+ #define OS_KILLPG_METHODDEF
+#endif /* !defined(OS_KILLPG_METHODDEF) */
+
+#ifndef OS_PLOCK_METHODDEF
+ #define OS_PLOCK_METHODDEF
+#endif /* !defined(OS_PLOCK_METHODDEF) */
+
+#ifndef OS_SETUID_METHODDEF
+ #define OS_SETUID_METHODDEF
+#endif /* !defined(OS_SETUID_METHODDEF) */
+
+#ifndef OS_SETEUID_METHODDEF
+ #define OS_SETEUID_METHODDEF
+#endif /* !defined(OS_SETEUID_METHODDEF) */
+
+#ifndef OS_SETEGID_METHODDEF
+ #define OS_SETEGID_METHODDEF
+#endif /* !defined(OS_SETEGID_METHODDEF) */
+
+#ifndef OS_SETREUID_METHODDEF
+ #define OS_SETREUID_METHODDEF
+#endif /* !defined(OS_SETREUID_METHODDEF) */
+
+#ifndef OS_SETREGID_METHODDEF
+ #define OS_SETREGID_METHODDEF
+#endif /* !defined(OS_SETREGID_METHODDEF) */
+
+#ifndef OS_SETGID_METHODDEF
+ #define OS_SETGID_METHODDEF
+#endif /* !defined(OS_SETGID_METHODDEF) */
+
+#ifndef OS_SETGROUPS_METHODDEF
+ #define OS_SETGROUPS_METHODDEF
+#endif /* !defined(OS_SETGROUPS_METHODDEF) */
+
+#ifndef OS_WAIT3_METHODDEF
+ #define OS_WAIT3_METHODDEF
+#endif /* !defined(OS_WAIT3_METHODDEF) */
+
+#ifndef OS_WAIT4_METHODDEF
+ #define OS_WAIT4_METHODDEF
+#endif /* !defined(OS_WAIT4_METHODDEF) */
+
+#ifndef OS_WAITID_METHODDEF
+ #define OS_WAITID_METHODDEF
+#endif /* !defined(OS_WAITID_METHODDEF) */
+
+#ifndef OS_WAITPID_METHODDEF
+ #define OS_WAITPID_METHODDEF
+#endif /* !defined(OS_WAITPID_METHODDEF) */
+
+#ifndef OS_WAIT_METHODDEF
+ #define OS_WAIT_METHODDEF
+#endif /* !defined(OS_WAIT_METHODDEF) */
+
+#ifndef OS_SYMLINK_METHODDEF
+ #define OS_SYMLINK_METHODDEF
+#endif /* !defined(OS_SYMLINK_METHODDEF) */
+
+#ifndef OS_TIMES_METHODDEF
+ #define OS_TIMES_METHODDEF
+#endif /* !defined(OS_TIMES_METHODDEF) */
+
+#ifndef OS_GETSID_METHODDEF
+ #define OS_GETSID_METHODDEF
+#endif /* !defined(OS_GETSID_METHODDEF) */
+
+#ifndef OS_SETSID_METHODDEF
+ #define OS_SETSID_METHODDEF
+#endif /* !defined(OS_SETSID_METHODDEF) */
+
+#ifndef OS_SETPGID_METHODDEF
+ #define OS_SETPGID_METHODDEF
+#endif /* !defined(OS_SETPGID_METHODDEF) */
+
+#ifndef OS_TCGETPGRP_METHODDEF
+ #define OS_TCGETPGRP_METHODDEF
+#endif /* !defined(OS_TCGETPGRP_METHODDEF) */
+
+#ifndef OS_TCSETPGRP_METHODDEF
+ #define OS_TCSETPGRP_METHODDEF
+#endif /* !defined(OS_TCSETPGRP_METHODDEF) */
+
+#ifndef OS_LOCKF_METHODDEF
+ #define OS_LOCKF_METHODDEF
+#endif /* !defined(OS_LOCKF_METHODDEF) */
+
+#ifndef OS_READV_METHODDEF
+ #define OS_READV_METHODDEF
+#endif /* !defined(OS_READV_METHODDEF) */
+
+#ifndef OS_PREAD_METHODDEF
+ #define OS_PREAD_METHODDEF
+#endif /* !defined(OS_PREAD_METHODDEF) */
+
+#ifndef OS_PIPE_METHODDEF
+ #define OS_PIPE_METHODDEF
+#endif /* !defined(OS_PIPE_METHODDEF) */
+
+#ifndef OS_PIPE2_METHODDEF
+ #define OS_PIPE2_METHODDEF
+#endif /* !defined(OS_PIPE2_METHODDEF) */
+
+#ifndef OS_WRITEV_METHODDEF
+ #define OS_WRITEV_METHODDEF
+#endif /* !defined(OS_WRITEV_METHODDEF) */
+
+#ifndef OS_PWRITE_METHODDEF
+ #define OS_PWRITE_METHODDEF
+#endif /* !defined(OS_PWRITE_METHODDEF) */
+
+#ifndef OS_MKFIFO_METHODDEF
+ #define OS_MKFIFO_METHODDEF
+#endif /* !defined(OS_MKFIFO_METHODDEF) */
+
+#ifndef OS_MKNOD_METHODDEF
+ #define OS_MKNOD_METHODDEF
+#endif /* !defined(OS_MKNOD_METHODDEF) */
+
+#ifndef OS_MAJOR_METHODDEF
+ #define OS_MAJOR_METHODDEF
+#endif /* !defined(OS_MAJOR_METHODDEF) */
+
+#ifndef OS_MINOR_METHODDEF
+ #define OS_MINOR_METHODDEF
+#endif /* !defined(OS_MINOR_METHODDEF) */
+
+#ifndef OS_MAKEDEV_METHODDEF
+ #define OS_MAKEDEV_METHODDEF
+#endif /* !defined(OS_MAKEDEV_METHODDEF) */
+
+#ifndef OS_FTRUNCATE_METHODDEF
+ #define OS_FTRUNCATE_METHODDEF
+#endif /* !defined(OS_FTRUNCATE_METHODDEF) */
+
+#ifndef OS_TRUNCATE_METHODDEF
+ #define OS_TRUNCATE_METHODDEF
+#endif /* !defined(OS_TRUNCATE_METHODDEF) */
+
+#ifndef OS_POSIX_FALLOCATE_METHODDEF
+ #define OS_POSIX_FALLOCATE_METHODDEF
+#endif /* !defined(OS_POSIX_FALLOCATE_METHODDEF) */
+
+#ifndef OS_POSIX_FADVISE_METHODDEF
+ #define OS_POSIX_FADVISE_METHODDEF
+#endif /* !defined(OS_POSIX_FADVISE_METHODDEF) */
+
+#ifndef OS_PUTENV_METHODDEF
+ #define OS_PUTENV_METHODDEF
+#endif /* !defined(OS_PUTENV_METHODDEF) */
+
+#ifndef OS_UNSETENV_METHODDEF
+ #define OS_UNSETENV_METHODDEF
+#endif /* !defined(OS_UNSETENV_METHODDEF) */
+
+#ifndef OS_WCOREDUMP_METHODDEF
+ #define OS_WCOREDUMP_METHODDEF
+#endif /* !defined(OS_WCOREDUMP_METHODDEF) */
+
+#ifndef OS_WIFCONTINUED_METHODDEF
+ #define OS_WIFCONTINUED_METHODDEF
+#endif /* !defined(OS_WIFCONTINUED_METHODDEF) */
+
+#ifndef OS_WIFSTOPPED_METHODDEF
+ #define OS_WIFSTOPPED_METHODDEF
+#endif /* !defined(OS_WIFSTOPPED_METHODDEF) */
+
+#ifndef OS_WIFSIGNALED_METHODDEF
+ #define OS_WIFSIGNALED_METHODDEF
+#endif /* !defined(OS_WIFSIGNALED_METHODDEF) */
+
+#ifndef OS_WIFEXITED_METHODDEF
+ #define OS_WIFEXITED_METHODDEF
+#endif /* !defined(OS_WIFEXITED_METHODDEF) */
+
+#ifndef OS_WEXITSTATUS_METHODDEF
+ #define OS_WEXITSTATUS_METHODDEF
+#endif /* !defined(OS_WEXITSTATUS_METHODDEF) */
+
+#ifndef OS_WTERMSIG_METHODDEF
+ #define OS_WTERMSIG_METHODDEF
+#endif /* !defined(OS_WTERMSIG_METHODDEF) */
+
+#ifndef OS_WSTOPSIG_METHODDEF
+ #define OS_WSTOPSIG_METHODDEF
+#endif /* !defined(OS_WSTOPSIG_METHODDEF) */
+
+#ifndef OS_FSTATVFS_METHODDEF
+ #define OS_FSTATVFS_METHODDEF
+#endif /* !defined(OS_FSTATVFS_METHODDEF) */
+
+#ifndef OS_STATVFS_METHODDEF
+ #define OS_STATVFS_METHODDEF
+#endif /* !defined(OS_STATVFS_METHODDEF) */
+
+#ifndef OS__GETDISKUSAGE_METHODDEF
+ #define OS__GETDISKUSAGE_METHODDEF
+#endif /* !defined(OS__GETDISKUSAGE_METHODDEF) */
+
+#ifndef OS_FPATHCONF_METHODDEF
+ #define OS_FPATHCONF_METHODDEF
+#endif /* !defined(OS_FPATHCONF_METHODDEF) */
+
+#ifndef OS_PATHCONF_METHODDEF
+ #define OS_PATHCONF_METHODDEF
+#endif /* !defined(OS_PATHCONF_METHODDEF) */
+
+#ifndef OS_CONFSTR_METHODDEF
+ #define OS_CONFSTR_METHODDEF
+#endif /* !defined(OS_CONFSTR_METHODDEF) */
+
+#ifndef OS_SYSCONF_METHODDEF
+ #define OS_SYSCONF_METHODDEF
+#endif /* !defined(OS_SYSCONF_METHODDEF) */
+
+#ifndef OS_GETLOADAVG_METHODDEF
+ #define OS_GETLOADAVG_METHODDEF
+#endif /* !defined(OS_GETLOADAVG_METHODDEF) */
+
+#ifndef OS_SETRESUID_METHODDEF
+ #define OS_SETRESUID_METHODDEF
+#endif /* !defined(OS_SETRESUID_METHODDEF) */
+
+#ifndef OS_SETRESGID_METHODDEF
+ #define OS_SETRESGID_METHODDEF
+#endif /* !defined(OS_SETRESGID_METHODDEF) */
+
+#ifndef OS_GETRESUID_METHODDEF
+ #define OS_GETRESUID_METHODDEF
+#endif /* !defined(OS_GETRESUID_METHODDEF) */
+
+#ifndef OS_GETRESGID_METHODDEF
+ #define OS_GETRESGID_METHODDEF
+#endif /* !defined(OS_GETRESGID_METHODDEF) */
+
+#ifndef OS_GETXATTR_METHODDEF
+ #define OS_GETXATTR_METHODDEF
+#endif /* !defined(OS_GETXATTR_METHODDEF) */
+
+#ifndef OS_SETXATTR_METHODDEF
+ #define OS_SETXATTR_METHODDEF
+#endif /* !defined(OS_SETXATTR_METHODDEF) */
+
+#ifndef OS_REMOVEXATTR_METHODDEF
+ #define OS_REMOVEXATTR_METHODDEF
+#endif /* !defined(OS_REMOVEXATTR_METHODDEF) */
+
+#ifndef OS_LISTXATTR_METHODDEF
+ #define OS_LISTXATTR_METHODDEF
+#endif /* !defined(OS_LISTXATTR_METHODDEF) */
+
+#ifndef OS_GET_HANDLE_INHERITABLE_METHODDEF
+ #define OS_GET_HANDLE_INHERITABLE_METHODDEF
+#endif /* !defined(OS_GET_HANDLE_INHERITABLE_METHODDEF) */
+
+#ifndef OS_SET_HANDLE_INHERITABLE_METHODDEF
+ #define OS_SET_HANDLE_INHERITABLE_METHODDEF
+#endif /* !defined(OS_SET_HANDLE_INHERITABLE_METHODDEF) */
+/*[clinic end generated code: output=95824c52fd034654 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/pwdmodule.c.h b/Modules/clinic/pwdmodule.c.h
new file mode 100644
index 0000000000..9de2e4ff2a
--- /dev/null
+++ b/Modules/clinic/pwdmodule.c.h
@@ -0,0 +1,71 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(pwd_getpwuid__doc__,
+"getpwuid($module, uidobj, /)\n"
+"--\n"
+"\n"
+"Return the password database entry for the given numeric user ID.\n"
+"\n"
+"See `help(pwd)` for more on password database entries.");
+
+#define PWD_GETPWUID_METHODDEF \
+ {"getpwuid", (PyCFunction)pwd_getpwuid, METH_O, pwd_getpwuid__doc__},
+
+PyDoc_STRVAR(pwd_getpwnam__doc__,
+"getpwnam($module, arg, /)\n"
+"--\n"
+"\n"
+"Return the password database entry for the given user name.\n"
+"\n"
+"See `help(pwd)` for more on password database entries.");
+
+#define PWD_GETPWNAM_METHODDEF \
+ {"getpwnam", (PyCFunction)pwd_getpwnam, METH_O, pwd_getpwnam__doc__},
+
+static PyObject *
+pwd_getpwnam_impl(PyModuleDef *module, PyObject *arg);
+
+static PyObject *
+pwd_getpwnam(PyModuleDef *module, PyObject *arg_)
+{
+ PyObject *return_value = NULL;
+ PyObject *arg;
+
+ if (!PyArg_Parse(arg_, "U:getpwnam", &arg))
+ goto exit;
+ return_value = pwd_getpwnam_impl(module, arg);
+
+exit:
+ return return_value;
+}
+
+#if defined(HAVE_GETPWENT)
+
+PyDoc_STRVAR(pwd_getpwall__doc__,
+"getpwall($module, /)\n"
+"--\n"
+"\n"
+"Return a list of all available password database entries, in arbitrary order.\n"
+"\n"
+"See help(pwd) for more on password database entries.");
+
+#define PWD_GETPWALL_METHODDEF \
+ {"getpwall", (PyCFunction)pwd_getpwall, METH_NOARGS, pwd_getpwall__doc__},
+
+static PyObject *
+pwd_getpwall_impl(PyModuleDef *module);
+
+static PyObject *
+pwd_getpwall(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ return pwd_getpwall_impl(module);
+}
+
+#endif /* defined(HAVE_GETPWENT) */
+
+#ifndef PWD_GETPWALL_METHODDEF
+ #define PWD_GETPWALL_METHODDEF
+#endif /* !defined(PWD_GETPWALL_METHODDEF) */
+/*[clinic end generated code: output=2ed0ecf34fd3f98f input=a9049054013a1b77]*/
diff --git a/Modules/clinic/pyexpat.c.h b/Modules/clinic/pyexpat.c.h
new file mode 100644
index 0000000000..379c5db637
--- /dev/null
+++ b/Modules/clinic/pyexpat.c.h
@@ -0,0 +1,284 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(pyexpat_xmlparser_Parse__doc__,
+"Parse($self, data, isfinal=False, /)\n"
+"--\n"
+"\n"
+"Parse XML data.\n"
+"\n"
+"`isfinal\' should be true at end of input.");
+
+#define PYEXPAT_XMLPARSER_PARSE_METHODDEF \
+ {"Parse", (PyCFunction)pyexpat_xmlparser_Parse, METH_VARARGS, pyexpat_xmlparser_Parse__doc__},
+
+static PyObject *
+pyexpat_xmlparser_Parse_impl(xmlparseobject *self, PyObject *data,
+ int isfinal);
+
+static PyObject *
+pyexpat_xmlparser_Parse(xmlparseobject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *data;
+ int isfinal = 0;
+
+ if (!PyArg_ParseTuple(args, "O|i:Parse",
+ &data, &isfinal))
+ goto exit;
+ return_value = pyexpat_xmlparser_Parse_impl(self, data, isfinal);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(pyexpat_xmlparser_ParseFile__doc__,
+"ParseFile($self, file, /)\n"
+"--\n"
+"\n"
+"Parse XML data from file-like object.");
+
+#define PYEXPAT_XMLPARSER_PARSEFILE_METHODDEF \
+ {"ParseFile", (PyCFunction)pyexpat_xmlparser_ParseFile, METH_O, pyexpat_xmlparser_ParseFile__doc__},
+
+PyDoc_STRVAR(pyexpat_xmlparser_SetBase__doc__,
+"SetBase($self, base, /)\n"
+"--\n"
+"\n"
+"Set the base URL for the parser.");
+
+#define PYEXPAT_XMLPARSER_SETBASE_METHODDEF \
+ {"SetBase", (PyCFunction)pyexpat_xmlparser_SetBase, METH_O, pyexpat_xmlparser_SetBase__doc__},
+
+static PyObject *
+pyexpat_xmlparser_SetBase_impl(xmlparseobject *self, const char *base);
+
+static PyObject *
+pyexpat_xmlparser_SetBase(xmlparseobject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ const char *base;
+
+ if (!PyArg_Parse(arg, "s:SetBase", &base))
+ goto exit;
+ return_value = pyexpat_xmlparser_SetBase_impl(self, base);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(pyexpat_xmlparser_GetBase__doc__,
+"GetBase($self, /)\n"
+"--\n"
+"\n"
+"Return base URL string for the parser.");
+
+#define PYEXPAT_XMLPARSER_GETBASE_METHODDEF \
+ {"GetBase", (PyCFunction)pyexpat_xmlparser_GetBase, METH_NOARGS, pyexpat_xmlparser_GetBase__doc__},
+
+static PyObject *
+pyexpat_xmlparser_GetBase_impl(xmlparseobject *self);
+
+static PyObject *
+pyexpat_xmlparser_GetBase(xmlparseobject *self, PyObject *Py_UNUSED(ignored))
+{
+ return pyexpat_xmlparser_GetBase_impl(self);
+}
+
+PyDoc_STRVAR(pyexpat_xmlparser_GetInputContext__doc__,
+"GetInputContext($self, /)\n"
+"--\n"
+"\n"
+"Return the untranslated text of the input that caused the current event.\n"
+"\n"
+"If the event was generated by a large amount of text (such as a start tag\n"
+"for an element with many attributes), not all of the text may be available.");
+
+#define PYEXPAT_XMLPARSER_GETINPUTCONTEXT_METHODDEF \
+ {"GetInputContext", (PyCFunction)pyexpat_xmlparser_GetInputContext, METH_NOARGS, pyexpat_xmlparser_GetInputContext__doc__},
+
+static PyObject *
+pyexpat_xmlparser_GetInputContext_impl(xmlparseobject *self);
+
+static PyObject *
+pyexpat_xmlparser_GetInputContext(xmlparseobject *self, PyObject *Py_UNUSED(ignored))
+{
+ return pyexpat_xmlparser_GetInputContext_impl(self);
+}
+
+PyDoc_STRVAR(pyexpat_xmlparser_ExternalEntityParserCreate__doc__,
+"ExternalEntityParserCreate($self, context, encoding=None, /)\n"
+"--\n"
+"\n"
+"Create a parser for parsing an external entity based on the information passed to the ExternalEntityRefHandler.");
+
+#define PYEXPAT_XMLPARSER_EXTERNALENTITYPARSERCREATE_METHODDEF \
+ {"ExternalEntityParserCreate", (PyCFunction)pyexpat_xmlparser_ExternalEntityParserCreate, METH_VARARGS, pyexpat_xmlparser_ExternalEntityParserCreate__doc__},
+
+static PyObject *
+pyexpat_xmlparser_ExternalEntityParserCreate_impl(xmlparseobject *self,
+ const char *context,
+ const char *encoding);
+
+static PyObject *
+pyexpat_xmlparser_ExternalEntityParserCreate(xmlparseobject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ const char *context;
+ const char *encoding = NULL;
+
+ if (!PyArg_ParseTuple(args, "z|s:ExternalEntityParserCreate",
+ &context, &encoding))
+ goto exit;
+ return_value = pyexpat_xmlparser_ExternalEntityParserCreate_impl(self, context, encoding);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(pyexpat_xmlparser_SetParamEntityParsing__doc__,
+"SetParamEntityParsing($self, flag, /)\n"
+"--\n"
+"\n"
+"Controls parsing of parameter entities (including the external DTD subset).\n"
+"\n"
+"Possible flag values are XML_PARAM_ENTITY_PARSING_NEVER,\n"
+"XML_PARAM_ENTITY_PARSING_UNLESS_STANDALONE and\n"
+"XML_PARAM_ENTITY_PARSING_ALWAYS. Returns true if setting the flag\n"
+"was successful.");
+
+#define PYEXPAT_XMLPARSER_SETPARAMENTITYPARSING_METHODDEF \
+ {"SetParamEntityParsing", (PyCFunction)pyexpat_xmlparser_SetParamEntityParsing, METH_O, pyexpat_xmlparser_SetParamEntityParsing__doc__},
+
+static PyObject *
+pyexpat_xmlparser_SetParamEntityParsing_impl(xmlparseobject *self, int flag);
+
+static PyObject *
+pyexpat_xmlparser_SetParamEntityParsing(xmlparseobject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int flag;
+
+ if (!PyArg_Parse(arg, "i:SetParamEntityParsing", &flag))
+ goto exit;
+ return_value = pyexpat_xmlparser_SetParamEntityParsing_impl(self, flag);
+
+exit:
+ return return_value;
+}
+
+#if (XML_COMBINED_VERSION >= 19505)
+
+PyDoc_STRVAR(pyexpat_xmlparser_UseForeignDTD__doc__,
+"UseForeignDTD($self, flag=True, /)\n"
+"--\n"
+"\n"
+"Allows the application to provide an artificial external subset if one is not specified as part of the document instance.\n"
+"\n"
+"This readily allows the use of a \'default\' document type controlled by the\n"
+"application, while still getting the advantage of providing document type\n"
+"information to the parser. \'flag\' defaults to True if not provided.");
+
+#define PYEXPAT_XMLPARSER_USEFOREIGNDTD_METHODDEF \
+ {"UseForeignDTD", (PyCFunction)pyexpat_xmlparser_UseForeignDTD, METH_VARARGS, pyexpat_xmlparser_UseForeignDTD__doc__},
+
+static PyObject *
+pyexpat_xmlparser_UseForeignDTD_impl(xmlparseobject *self, int flag);
+
+static PyObject *
+pyexpat_xmlparser_UseForeignDTD(xmlparseobject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int flag = 1;
+
+ if (!PyArg_ParseTuple(args, "|p:UseForeignDTD",
+ &flag))
+ goto exit;
+ return_value = pyexpat_xmlparser_UseForeignDTD_impl(self, flag);
+
+exit:
+ return return_value;
+}
+
+#endif /* (XML_COMBINED_VERSION >= 19505) */
+
+PyDoc_STRVAR(pyexpat_xmlparser___dir____doc__,
+"__dir__($self, /)\n"
+"--\n"
+"\n");
+
+#define PYEXPAT_XMLPARSER___DIR___METHODDEF \
+ {"__dir__", (PyCFunction)pyexpat_xmlparser___dir__, METH_NOARGS, pyexpat_xmlparser___dir____doc__},
+
+static PyObject *
+pyexpat_xmlparser___dir___impl(xmlparseobject *self);
+
+static PyObject *
+pyexpat_xmlparser___dir__(xmlparseobject *self, PyObject *Py_UNUSED(ignored))
+{
+ return pyexpat_xmlparser___dir___impl(self);
+}
+
+PyDoc_STRVAR(pyexpat_ParserCreate__doc__,
+"ParserCreate($module, /, encoding=None, namespace_separator=None,\n"
+" intern=None)\n"
+"--\n"
+"\n"
+"Return a new XML parser object.");
+
+#define PYEXPAT_PARSERCREATE_METHODDEF \
+ {"ParserCreate", (PyCFunction)pyexpat_ParserCreate, METH_VARARGS|METH_KEYWORDS, pyexpat_ParserCreate__doc__},
+
+static PyObject *
+pyexpat_ParserCreate_impl(PyModuleDef *module, const char *encoding,
+ const char *namespace_separator, PyObject *intern);
+
+static PyObject *
+pyexpat_ParserCreate(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"encoding", "namespace_separator", "intern", NULL};
+ const char *encoding = NULL;
+ const char *namespace_separator = NULL;
+ PyObject *intern = NULL;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|zzO:ParserCreate", _keywords,
+ &encoding, &namespace_separator, &intern))
+ goto exit;
+ return_value = pyexpat_ParserCreate_impl(module, encoding, namespace_separator, intern);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(pyexpat_ErrorString__doc__,
+"ErrorString($module, code, /)\n"
+"--\n"
+"\n"
+"Returns string error for given number.");
+
+#define PYEXPAT_ERRORSTRING_METHODDEF \
+ {"ErrorString", (PyCFunction)pyexpat_ErrorString, METH_O, pyexpat_ErrorString__doc__},
+
+static PyObject *
+pyexpat_ErrorString_impl(PyModuleDef *module, long code);
+
+static PyObject *
+pyexpat_ErrorString(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ long code;
+
+ if (!PyArg_Parse(arg, "l:ErrorString", &code))
+ goto exit;
+ return_value = pyexpat_ErrorString_impl(module, code);
+
+exit:
+ return return_value;
+}
+
+#ifndef PYEXPAT_XMLPARSER_USEFOREIGNDTD_METHODDEF
+ #define PYEXPAT_XMLPARSER_USEFOREIGNDTD_METHODDEF
+#endif /* !defined(PYEXPAT_XMLPARSER_USEFOREIGNDTD_METHODDEF) */
+/*[clinic end generated code: output=bf4d99c9702d8a6c input=a9049054013a1b77]*/
diff --git a/Modules/clinic/sha1module.c.h b/Modules/clinic/sha1module.c.h
new file mode 100644
index 0000000000..fa865baec8
--- /dev/null
+++ b/Modules/clinic/sha1module.c.h
@@ -0,0 +1,95 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(SHA1Type_copy__doc__,
+"copy($self, /)\n"
+"--\n"
+"\n"
+"Return a copy of the hash object.");
+
+#define SHA1TYPE_COPY_METHODDEF \
+ {"copy", (PyCFunction)SHA1Type_copy, METH_NOARGS, SHA1Type_copy__doc__},
+
+static PyObject *
+SHA1Type_copy_impl(SHA1object *self);
+
+static PyObject *
+SHA1Type_copy(SHA1object *self, PyObject *Py_UNUSED(ignored))
+{
+ return SHA1Type_copy_impl(self);
+}
+
+PyDoc_STRVAR(SHA1Type_digest__doc__,
+"digest($self, /)\n"
+"--\n"
+"\n"
+"Return the digest value as a string of binary data.");
+
+#define SHA1TYPE_DIGEST_METHODDEF \
+ {"digest", (PyCFunction)SHA1Type_digest, METH_NOARGS, SHA1Type_digest__doc__},
+
+static PyObject *
+SHA1Type_digest_impl(SHA1object *self);
+
+static PyObject *
+SHA1Type_digest(SHA1object *self, PyObject *Py_UNUSED(ignored))
+{
+ return SHA1Type_digest_impl(self);
+}
+
+PyDoc_STRVAR(SHA1Type_hexdigest__doc__,
+"hexdigest($self, /)\n"
+"--\n"
+"\n"
+"Return the digest value as a string of hexadecimal digits.");
+
+#define SHA1TYPE_HEXDIGEST_METHODDEF \
+ {"hexdigest", (PyCFunction)SHA1Type_hexdigest, METH_NOARGS, SHA1Type_hexdigest__doc__},
+
+static PyObject *
+SHA1Type_hexdigest_impl(SHA1object *self);
+
+static PyObject *
+SHA1Type_hexdigest(SHA1object *self, PyObject *Py_UNUSED(ignored))
+{
+ return SHA1Type_hexdigest_impl(self);
+}
+
+PyDoc_STRVAR(SHA1Type_update__doc__,
+"update($self, obj, /)\n"
+"--\n"
+"\n"
+"Update this hash object\'s state with the provided string.");
+
+#define SHA1TYPE_UPDATE_METHODDEF \
+ {"update", (PyCFunction)SHA1Type_update, METH_O, SHA1Type_update__doc__},
+
+PyDoc_STRVAR(_sha1_sha1__doc__,
+"sha1($module, /, string=b\'\')\n"
+"--\n"
+"\n"
+"Return a new SHA1 hash object; optionally initialized with a string.");
+
+#define _SHA1_SHA1_METHODDEF \
+ {"sha1", (PyCFunction)_sha1_sha1, METH_VARARGS|METH_KEYWORDS, _sha1_sha1__doc__},
+
+static PyObject *
+_sha1_sha1_impl(PyModuleDef *module, PyObject *string);
+
+static PyObject *
+_sha1_sha1(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"string", NULL};
+ PyObject *string = NULL;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|O:sha1", _keywords,
+ &string))
+ goto exit;
+ return_value = _sha1_sha1_impl(module, string);
+
+exit:
+ return return_value;
+}
+/*[clinic end generated code: output=be19102f3120490a input=a9049054013a1b77]*/
diff --git a/Modules/clinic/sha256module.c.h b/Modules/clinic/sha256module.c.h
new file mode 100644
index 0000000000..c5fe188a9c
--- /dev/null
+++ b/Modules/clinic/sha256module.c.h
@@ -0,0 +1,123 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(SHA256Type_copy__doc__,
+"copy($self, /)\n"
+"--\n"
+"\n"
+"Return a copy of the hash object.");
+
+#define SHA256TYPE_COPY_METHODDEF \
+ {"copy", (PyCFunction)SHA256Type_copy, METH_NOARGS, SHA256Type_copy__doc__},
+
+static PyObject *
+SHA256Type_copy_impl(SHAobject *self);
+
+static PyObject *
+SHA256Type_copy(SHAobject *self, PyObject *Py_UNUSED(ignored))
+{
+ return SHA256Type_copy_impl(self);
+}
+
+PyDoc_STRVAR(SHA256Type_digest__doc__,
+"digest($self, /)\n"
+"--\n"
+"\n"
+"Return the digest value as a string of binary data.");
+
+#define SHA256TYPE_DIGEST_METHODDEF \
+ {"digest", (PyCFunction)SHA256Type_digest, METH_NOARGS, SHA256Type_digest__doc__},
+
+static PyObject *
+SHA256Type_digest_impl(SHAobject *self);
+
+static PyObject *
+SHA256Type_digest(SHAobject *self, PyObject *Py_UNUSED(ignored))
+{
+ return SHA256Type_digest_impl(self);
+}
+
+PyDoc_STRVAR(SHA256Type_hexdigest__doc__,
+"hexdigest($self, /)\n"
+"--\n"
+"\n"
+"Return the digest value as a string of hexadecimal digits.");
+
+#define SHA256TYPE_HEXDIGEST_METHODDEF \
+ {"hexdigest", (PyCFunction)SHA256Type_hexdigest, METH_NOARGS, SHA256Type_hexdigest__doc__},
+
+static PyObject *
+SHA256Type_hexdigest_impl(SHAobject *self);
+
+static PyObject *
+SHA256Type_hexdigest(SHAobject *self, PyObject *Py_UNUSED(ignored))
+{
+ return SHA256Type_hexdigest_impl(self);
+}
+
+PyDoc_STRVAR(SHA256Type_update__doc__,
+"update($self, obj, /)\n"
+"--\n"
+"\n"
+"Update this hash object\'s state with the provided string.");
+
+#define SHA256TYPE_UPDATE_METHODDEF \
+ {"update", (PyCFunction)SHA256Type_update, METH_O, SHA256Type_update__doc__},
+
+PyDoc_STRVAR(_sha256_sha256__doc__,
+"sha256($module, /, string=b\'\')\n"
+"--\n"
+"\n"
+"Return a new SHA-256 hash object; optionally initialized with a string.");
+
+#define _SHA256_SHA256_METHODDEF \
+ {"sha256", (PyCFunction)_sha256_sha256, METH_VARARGS|METH_KEYWORDS, _sha256_sha256__doc__},
+
+static PyObject *
+_sha256_sha256_impl(PyModuleDef *module, PyObject *string);
+
+static PyObject *
+_sha256_sha256(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"string", NULL};
+ PyObject *string = NULL;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|O:sha256", _keywords,
+ &string))
+ goto exit;
+ return_value = _sha256_sha256_impl(module, string);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_sha256_sha224__doc__,
+"sha224($module, /, string=b\'\')\n"
+"--\n"
+"\n"
+"Return a new SHA-224 hash object; optionally initialized with a string.");
+
+#define _SHA256_SHA224_METHODDEF \
+ {"sha224", (PyCFunction)_sha256_sha224, METH_VARARGS|METH_KEYWORDS, _sha256_sha224__doc__},
+
+static PyObject *
+_sha256_sha224_impl(PyModuleDef *module, PyObject *string);
+
+static PyObject *
+_sha256_sha224(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"string", NULL};
+ PyObject *string = NULL;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|O:sha224", _keywords,
+ &string))
+ goto exit;
+ return_value = _sha256_sha224_impl(module, string);
+
+exit:
+ return return_value;
+}
+/*[clinic end generated code: output=354cedf3b632c7b2 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/sha512module.c.h b/Modules/clinic/sha512module.c.h
new file mode 100644
index 0000000000..c308739d44
--- /dev/null
+++ b/Modules/clinic/sha512module.c.h
@@ -0,0 +1,171 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+#if defined(PY_LONG_LONG)
+
+PyDoc_STRVAR(SHA512Type_copy__doc__,
+"copy($self, /)\n"
+"--\n"
+"\n"
+"Return a copy of the hash object.");
+
+#define SHA512TYPE_COPY_METHODDEF \
+ {"copy", (PyCFunction)SHA512Type_copy, METH_NOARGS, SHA512Type_copy__doc__},
+
+static PyObject *
+SHA512Type_copy_impl(SHAobject *self);
+
+static PyObject *
+SHA512Type_copy(SHAobject *self, PyObject *Py_UNUSED(ignored))
+{
+ return SHA512Type_copy_impl(self);
+}
+
+#endif /* defined(PY_LONG_LONG) */
+
+#if defined(PY_LONG_LONG)
+
+PyDoc_STRVAR(SHA512Type_digest__doc__,
+"digest($self, /)\n"
+"--\n"
+"\n"
+"Return the digest value as a string of binary data.");
+
+#define SHA512TYPE_DIGEST_METHODDEF \
+ {"digest", (PyCFunction)SHA512Type_digest, METH_NOARGS, SHA512Type_digest__doc__},
+
+static PyObject *
+SHA512Type_digest_impl(SHAobject *self);
+
+static PyObject *
+SHA512Type_digest(SHAobject *self, PyObject *Py_UNUSED(ignored))
+{
+ return SHA512Type_digest_impl(self);
+}
+
+#endif /* defined(PY_LONG_LONG) */
+
+#if defined(PY_LONG_LONG)
+
+PyDoc_STRVAR(SHA512Type_hexdigest__doc__,
+"hexdigest($self, /)\n"
+"--\n"
+"\n"
+"Return the digest value as a string of hexadecimal digits.");
+
+#define SHA512TYPE_HEXDIGEST_METHODDEF \
+ {"hexdigest", (PyCFunction)SHA512Type_hexdigest, METH_NOARGS, SHA512Type_hexdigest__doc__},
+
+static PyObject *
+SHA512Type_hexdigest_impl(SHAobject *self);
+
+static PyObject *
+SHA512Type_hexdigest(SHAobject *self, PyObject *Py_UNUSED(ignored))
+{
+ return SHA512Type_hexdigest_impl(self);
+}
+
+#endif /* defined(PY_LONG_LONG) */
+
+#if defined(PY_LONG_LONG)
+
+PyDoc_STRVAR(SHA512Type_update__doc__,
+"update($self, obj, /)\n"
+"--\n"
+"\n"
+"Update this hash object\'s state with the provided string.");
+
+#define SHA512TYPE_UPDATE_METHODDEF \
+ {"update", (PyCFunction)SHA512Type_update, METH_O, SHA512Type_update__doc__},
+
+#endif /* defined(PY_LONG_LONG) */
+
+#if defined(PY_LONG_LONG)
+
+PyDoc_STRVAR(_sha512_sha512__doc__,
+"sha512($module, /, string=b\'\')\n"
+"--\n"
+"\n"
+"Return a new SHA-512 hash object; optionally initialized with a string.");
+
+#define _SHA512_SHA512_METHODDEF \
+ {"sha512", (PyCFunction)_sha512_sha512, METH_VARARGS|METH_KEYWORDS, _sha512_sha512__doc__},
+
+static PyObject *
+_sha512_sha512_impl(PyModuleDef *module, PyObject *string);
+
+static PyObject *
+_sha512_sha512(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"string", NULL};
+ PyObject *string = NULL;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|O:sha512", _keywords,
+ &string))
+ goto exit;
+ return_value = _sha512_sha512_impl(module, string);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(PY_LONG_LONG) */
+
+#if defined(PY_LONG_LONG)
+
+PyDoc_STRVAR(_sha512_sha384__doc__,
+"sha384($module, /, string=b\'\')\n"
+"--\n"
+"\n"
+"Return a new SHA-384 hash object; optionally initialized with a string.");
+
+#define _SHA512_SHA384_METHODDEF \
+ {"sha384", (PyCFunction)_sha512_sha384, METH_VARARGS|METH_KEYWORDS, _sha512_sha384__doc__},
+
+static PyObject *
+_sha512_sha384_impl(PyModuleDef *module, PyObject *string);
+
+static PyObject *
+_sha512_sha384(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static char *_keywords[] = {"string", NULL};
+ PyObject *string = NULL;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|O:sha384", _keywords,
+ &string))
+ goto exit;
+ return_value = _sha512_sha384_impl(module, string);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(PY_LONG_LONG) */
+
+#ifndef SHA512TYPE_COPY_METHODDEF
+ #define SHA512TYPE_COPY_METHODDEF
+#endif /* !defined(SHA512TYPE_COPY_METHODDEF) */
+
+#ifndef SHA512TYPE_DIGEST_METHODDEF
+ #define SHA512TYPE_DIGEST_METHODDEF
+#endif /* !defined(SHA512TYPE_DIGEST_METHODDEF) */
+
+#ifndef SHA512TYPE_HEXDIGEST_METHODDEF
+ #define SHA512TYPE_HEXDIGEST_METHODDEF
+#endif /* !defined(SHA512TYPE_HEXDIGEST_METHODDEF) */
+
+#ifndef SHA512TYPE_UPDATE_METHODDEF
+ #define SHA512TYPE_UPDATE_METHODDEF
+#endif /* !defined(SHA512TYPE_UPDATE_METHODDEF) */
+
+#ifndef _SHA512_SHA512_METHODDEF
+ #define _SHA512_SHA512_METHODDEF
+#endif /* !defined(_SHA512_SHA512_METHODDEF) */
+
+#ifndef _SHA512_SHA384_METHODDEF
+ #define _SHA512_SHA384_METHODDEF
+#endif /* !defined(_SHA512_SHA384_METHODDEF) */
+/*[clinic end generated code: output=1c7d385731fee7c0 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/signalmodule.c.h b/Modules/clinic/signalmodule.c.h
new file mode 100644
index 0000000000..ec07ef1f8e
--- /dev/null
+++ b/Modules/clinic/signalmodule.c.h
@@ -0,0 +1,432 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+#if defined(HAVE_ALARM)
+
+PyDoc_STRVAR(signal_alarm__doc__,
+"alarm($module, seconds, /)\n"
+"--\n"
+"\n"
+"Arrange for SIGALRM to arrive after the given number of seconds.");
+
+#define SIGNAL_ALARM_METHODDEF \
+ {"alarm", (PyCFunction)signal_alarm, METH_O, signal_alarm__doc__},
+
+static long
+signal_alarm_impl(PyModuleDef *module, int seconds);
+
+static PyObject *
+signal_alarm(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int seconds;
+ long _return_value;
+
+ if (!PyArg_Parse(arg, "i:alarm", &seconds))
+ goto exit;
+ _return_value = signal_alarm_impl(module, seconds);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyLong_FromLong(_return_value);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_ALARM) */
+
+#if defined(HAVE_PAUSE)
+
+PyDoc_STRVAR(signal_pause__doc__,
+"pause($module, /)\n"
+"--\n"
+"\n"
+"Wait until a signal arrives.");
+
+#define SIGNAL_PAUSE_METHODDEF \
+ {"pause", (PyCFunction)signal_pause, METH_NOARGS, signal_pause__doc__},
+
+static PyObject *
+signal_pause_impl(PyModuleDef *module);
+
+static PyObject *
+signal_pause(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ return signal_pause_impl(module);
+}
+
+#endif /* defined(HAVE_PAUSE) */
+
+PyDoc_STRVAR(signal_signal__doc__,
+"signal($module, signalnum, handler, /)\n"
+"--\n"
+"\n"
+"Set the action for the given signal.\n"
+"\n"
+"The action can be SIG_DFL, SIG_IGN, or a callable Python object.\n"
+"The previous action is returned. See getsignal() for possible return values.\n"
+"\n"
+"*** IMPORTANT NOTICE ***\n"
+"A signal handler function is called with two arguments:\n"
+"the first is the signal number, the second is the interrupted stack frame.");
+
+#define SIGNAL_SIGNAL_METHODDEF \
+ {"signal", (PyCFunction)signal_signal, METH_VARARGS, signal_signal__doc__},
+
+static PyObject *
+signal_signal_impl(PyModuleDef *module, int signalnum, PyObject *handler);
+
+static PyObject *
+signal_signal(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int signalnum;
+ PyObject *handler;
+
+ if (!PyArg_ParseTuple(args, "iO:signal",
+ &signalnum, &handler))
+ goto exit;
+ return_value = signal_signal_impl(module, signalnum, handler);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(signal_getsignal__doc__,
+"getsignal($module, signalnum, /)\n"
+"--\n"
+"\n"
+"Return the current action for the given signal.\n"
+"\n"
+"The return value can be:\n"
+" SIG_IGN -- if the signal is being ignored\n"
+" SIG_DFL -- if the default action for the signal is in effect\n"
+" None -- if an unknown handler is in effect\n"
+" anything else -- the callable Python object used as a handler");
+
+#define SIGNAL_GETSIGNAL_METHODDEF \
+ {"getsignal", (PyCFunction)signal_getsignal, METH_O, signal_getsignal__doc__},
+
+static PyObject *
+signal_getsignal_impl(PyModuleDef *module, int signalnum);
+
+static PyObject *
+signal_getsignal(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int signalnum;
+
+ if (!PyArg_Parse(arg, "i:getsignal", &signalnum))
+ goto exit;
+ return_value = signal_getsignal_impl(module, signalnum);
+
+exit:
+ return return_value;
+}
+
+#if defined(HAVE_SIGINTERRUPT)
+
+PyDoc_STRVAR(signal_siginterrupt__doc__,
+"siginterrupt($module, signalnum, flag, /)\n"
+"--\n"
+"\n"
+"Change system call restart behaviour.\n"
+"\n"
+"If flag is False, system calls will be restarted when interrupted by\n"
+"signal sig, else system calls will be interrupted.");
+
+#define SIGNAL_SIGINTERRUPT_METHODDEF \
+ {"siginterrupt", (PyCFunction)signal_siginterrupt, METH_VARARGS, signal_siginterrupt__doc__},
+
+static PyObject *
+signal_siginterrupt_impl(PyModuleDef *module, int signalnum, int flag);
+
+static PyObject *
+signal_siginterrupt(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int signalnum;
+ int flag;
+
+ if (!PyArg_ParseTuple(args, "ii:siginterrupt",
+ &signalnum, &flag))
+ goto exit;
+ return_value = signal_siginterrupt_impl(module, signalnum, flag);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SIGINTERRUPT) */
+
+#if defined(HAVE_SETITIMER)
+
+PyDoc_STRVAR(signal_setitimer__doc__,
+"setitimer($module, which, seconds, interval=0.0, /)\n"
+"--\n"
+"\n"
+"Sets given itimer (one of ITIMER_REAL, ITIMER_VIRTUAL or ITIMER_PROF).\n"
+"\n"
+"The timer will fire after value seconds and after that every interval seconds.\n"
+"The itimer can be cleared by setting seconds to zero.\n"
+"\n"
+"Returns old values as a tuple: (delay, interval).");
+
+#define SIGNAL_SETITIMER_METHODDEF \
+ {"setitimer", (PyCFunction)signal_setitimer, METH_VARARGS, signal_setitimer__doc__},
+
+static PyObject *
+signal_setitimer_impl(PyModuleDef *module, int which, double seconds,
+ double interval);
+
+static PyObject *
+signal_setitimer(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int which;
+ double seconds;
+ double interval = 0.0;
+
+ if (!PyArg_ParseTuple(args, "id|d:setitimer",
+ &which, &seconds, &interval))
+ goto exit;
+ return_value = signal_setitimer_impl(module, which, seconds, interval);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SETITIMER) */
+
+#if defined(HAVE_GETITIMER)
+
+PyDoc_STRVAR(signal_getitimer__doc__,
+"getitimer($module, which, /)\n"
+"--\n"
+"\n"
+"Returns current value of given itimer.");
+
+#define SIGNAL_GETITIMER_METHODDEF \
+ {"getitimer", (PyCFunction)signal_getitimer, METH_O, signal_getitimer__doc__},
+
+static PyObject *
+signal_getitimer_impl(PyModuleDef *module, int which);
+
+static PyObject *
+signal_getitimer(PyModuleDef *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int which;
+
+ if (!PyArg_Parse(arg, "i:getitimer", &which))
+ goto exit;
+ return_value = signal_getitimer_impl(module, which);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_GETITIMER) */
+
+#if defined(PYPTHREAD_SIGMASK)
+
+PyDoc_STRVAR(signal_pthread_sigmask__doc__,
+"pthread_sigmask($module, how, mask, /)\n"
+"--\n"
+"\n"
+"Fetch and/or change the signal mask of the calling thread.");
+
+#define SIGNAL_PTHREAD_SIGMASK_METHODDEF \
+ {"pthread_sigmask", (PyCFunction)signal_pthread_sigmask, METH_VARARGS, signal_pthread_sigmask__doc__},
+
+static PyObject *
+signal_pthread_sigmask_impl(PyModuleDef *module, int how, PyObject *mask);
+
+static PyObject *
+signal_pthread_sigmask(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int how;
+ PyObject *mask;
+
+ if (!PyArg_ParseTuple(args, "iO:pthread_sigmask",
+ &how, &mask))
+ goto exit;
+ return_value = signal_pthread_sigmask_impl(module, how, mask);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(PYPTHREAD_SIGMASK) */
+
+#if defined(HAVE_SIGPENDING)
+
+PyDoc_STRVAR(signal_sigpending__doc__,
+"sigpending($module, /)\n"
+"--\n"
+"\n"
+"Examine pending signals.\n"
+"\n"
+"Returns a set of signal numbers that are pending for delivery to\n"
+"the calling thread.");
+
+#define SIGNAL_SIGPENDING_METHODDEF \
+ {"sigpending", (PyCFunction)signal_sigpending, METH_NOARGS, signal_sigpending__doc__},
+
+static PyObject *
+signal_sigpending_impl(PyModuleDef *module);
+
+static PyObject *
+signal_sigpending(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ return signal_sigpending_impl(module);
+}
+
+#endif /* defined(HAVE_SIGPENDING) */
+
+#if defined(HAVE_SIGWAIT)
+
+PyDoc_STRVAR(signal_sigwait__doc__,
+"sigwait($module, sigset, /)\n"
+"--\n"
+"\n"
+"Wait for a signal.\n"
+"\n"
+"Suspend execution of the calling thread until the delivery of one of the\n"
+"signals specified in the signal set sigset. The function accepts the signal\n"
+"and returns the signal number.");
+
+#define SIGNAL_SIGWAIT_METHODDEF \
+ {"sigwait", (PyCFunction)signal_sigwait, METH_O, signal_sigwait__doc__},
+
+#endif /* defined(HAVE_SIGWAIT) */
+
+#if defined(HAVE_SIGWAITINFO)
+
+PyDoc_STRVAR(signal_sigwaitinfo__doc__,
+"sigwaitinfo($module, sigset, /)\n"
+"--\n"
+"\n"
+"Wait synchronously until one of the signals in *sigset* is delivered.\n"
+"\n"
+"Returns a struct_siginfo containing information about the signal.");
+
+#define SIGNAL_SIGWAITINFO_METHODDEF \
+ {"sigwaitinfo", (PyCFunction)signal_sigwaitinfo, METH_O, signal_sigwaitinfo__doc__},
+
+#endif /* defined(HAVE_SIGWAITINFO) */
+
+#if defined(HAVE_SIGTIMEDWAIT)
+
+PyDoc_STRVAR(signal_sigtimedwait__doc__,
+"sigtimedwait($module, sigset, timeout, /)\n"
+"--\n"
+"\n"
+"Like sigwaitinfo(), but with a timeout.\n"
+"\n"
+"The timeout is specified in seconds, with floating point numbers allowed.");
+
+#define SIGNAL_SIGTIMEDWAIT_METHODDEF \
+ {"sigtimedwait", (PyCFunction)signal_sigtimedwait, METH_VARARGS, signal_sigtimedwait__doc__},
+
+static PyObject *
+signal_sigtimedwait_impl(PyModuleDef *module, PyObject *sigset,
+ PyObject *timeout_obj);
+
+static PyObject *
+signal_sigtimedwait(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyObject *sigset;
+ PyObject *timeout_obj;
+
+ if (!PyArg_UnpackTuple(args, "sigtimedwait",
+ 2, 2,
+ &sigset, &timeout_obj))
+ goto exit;
+ return_value = signal_sigtimedwait_impl(module, sigset, timeout_obj);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SIGTIMEDWAIT) */
+
+#if (defined(HAVE_PTHREAD_KILL) && defined(WITH_THREAD))
+
+PyDoc_STRVAR(signal_pthread_kill__doc__,
+"pthread_kill($module, thread_id, signalnum, /)\n"
+"--\n"
+"\n"
+"Send a signal to a thread.");
+
+#define SIGNAL_PTHREAD_KILL_METHODDEF \
+ {"pthread_kill", (PyCFunction)signal_pthread_kill, METH_VARARGS, signal_pthread_kill__doc__},
+
+static PyObject *
+signal_pthread_kill_impl(PyModuleDef *module, long thread_id, int signalnum);
+
+static PyObject *
+signal_pthread_kill(PyModuleDef *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ long thread_id;
+ int signalnum;
+
+ if (!PyArg_ParseTuple(args, "li:pthread_kill",
+ &thread_id, &signalnum))
+ goto exit;
+ return_value = signal_pthread_kill_impl(module, thread_id, signalnum);
+
+exit:
+ return return_value;
+}
+
+#endif /* (defined(HAVE_PTHREAD_KILL) && defined(WITH_THREAD)) */
+
+#ifndef SIGNAL_ALARM_METHODDEF
+ #define SIGNAL_ALARM_METHODDEF
+#endif /* !defined(SIGNAL_ALARM_METHODDEF) */
+
+#ifndef SIGNAL_PAUSE_METHODDEF
+ #define SIGNAL_PAUSE_METHODDEF
+#endif /* !defined(SIGNAL_PAUSE_METHODDEF) */
+
+#ifndef SIGNAL_SIGINTERRUPT_METHODDEF
+ #define SIGNAL_SIGINTERRUPT_METHODDEF
+#endif /* !defined(SIGNAL_SIGINTERRUPT_METHODDEF) */
+
+#ifndef SIGNAL_SETITIMER_METHODDEF
+ #define SIGNAL_SETITIMER_METHODDEF
+#endif /* !defined(SIGNAL_SETITIMER_METHODDEF) */
+
+#ifndef SIGNAL_GETITIMER_METHODDEF
+ #define SIGNAL_GETITIMER_METHODDEF
+#endif /* !defined(SIGNAL_GETITIMER_METHODDEF) */
+
+#ifndef SIGNAL_PTHREAD_SIGMASK_METHODDEF
+ #define SIGNAL_PTHREAD_SIGMASK_METHODDEF
+#endif /* !defined(SIGNAL_PTHREAD_SIGMASK_METHODDEF) */
+
+#ifndef SIGNAL_SIGPENDING_METHODDEF
+ #define SIGNAL_SIGPENDING_METHODDEF
+#endif /* !defined(SIGNAL_SIGPENDING_METHODDEF) */
+
+#ifndef SIGNAL_SIGWAIT_METHODDEF
+ #define SIGNAL_SIGWAIT_METHODDEF
+#endif /* !defined(SIGNAL_SIGWAIT_METHODDEF) */
+
+#ifndef SIGNAL_SIGWAITINFO_METHODDEF
+ #define SIGNAL_SIGWAITINFO_METHODDEF
+#endif /* !defined(SIGNAL_SIGWAITINFO_METHODDEF) */
+
+#ifndef SIGNAL_SIGTIMEDWAIT_METHODDEF
+ #define SIGNAL_SIGTIMEDWAIT_METHODDEF
+#endif /* !defined(SIGNAL_SIGTIMEDWAIT_METHODDEF) */
+
+#ifndef SIGNAL_PTHREAD_KILL_METHODDEF
+ #define SIGNAL_PTHREAD_KILL_METHODDEF
+#endif /* !defined(SIGNAL_PTHREAD_KILL_METHODDEF) */
+/*[clinic end generated code: output=b99278c16c40ea43 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/spwdmodule.c.h b/Modules/clinic/spwdmodule.c.h
new file mode 100644
index 0000000000..c0d18db589
--- /dev/null
+++ b/Modules/clinic/spwdmodule.c.h
@@ -0,0 +1,68 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+#if defined(HAVE_GETSPNAM)
+
+PyDoc_STRVAR(spwd_getspnam__doc__,
+"getspnam($module, arg, /)\n"
+"--\n"
+"\n"
+"Return the shadow password database entry for the given user name.\n"
+"\n"
+"See `help(spwd)` for more on shadow password database entries.");
+
+#define SPWD_GETSPNAM_METHODDEF \
+ {"getspnam", (PyCFunction)spwd_getspnam, METH_O, spwd_getspnam__doc__},
+
+static PyObject *
+spwd_getspnam_impl(PyModuleDef *module, PyObject *arg);
+
+static PyObject *
+spwd_getspnam(PyModuleDef *module, PyObject *arg_)
+{
+ PyObject *return_value = NULL;
+ PyObject *arg;
+
+ if (!PyArg_Parse(arg_, "U:getspnam", &arg))
+ goto exit;
+ return_value = spwd_getspnam_impl(module, arg);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_GETSPNAM) */
+
+#if defined(HAVE_GETSPENT)
+
+PyDoc_STRVAR(spwd_getspall__doc__,
+"getspall($module, /)\n"
+"--\n"
+"\n"
+"Return a list of all available shadow password database entries, in arbitrary order.\n"
+"\n"
+"See `help(spwd)` for more on shadow password database entries.");
+
+#define SPWD_GETSPALL_METHODDEF \
+ {"getspall", (PyCFunction)spwd_getspall, METH_NOARGS, spwd_getspall__doc__},
+
+static PyObject *
+spwd_getspall_impl(PyModuleDef *module);
+
+static PyObject *
+spwd_getspall(PyModuleDef *module, PyObject *Py_UNUSED(ignored))
+{
+ return spwd_getspall_impl(module);
+}
+
+#endif /* defined(HAVE_GETSPENT) */
+
+#ifndef SPWD_GETSPNAM_METHODDEF
+ #define SPWD_GETSPNAM_METHODDEF
+#endif /* !defined(SPWD_GETSPNAM_METHODDEF) */
+
+#ifndef SPWD_GETSPALL_METHODDEF
+ #define SPWD_GETSPALL_METHODDEF
+#endif /* !defined(SPWD_GETSPALL_METHODDEF) */
+/*[clinic end generated code: output=6c178830413f7763 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/unicodedata.c.h b/Modules/clinic/unicodedata.c.h
new file mode 100644
index 0000000000..d520c1e3dd
--- /dev/null
+++ b/Modules/clinic/unicodedata.c.h
@@ -0,0 +1,368 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(unicodedata_UCD_decimal__doc__,
+"decimal($self, chr, default=None, /)\n"
+"--\n"
+"\n"
+"Converts a Unicode character into its equivalent decimal value.\n"
+"\n"
+"Returns the decimal value assigned to the character chr as integer.\n"
+"If no such value is defined, default is returned, or, if not given,\n"
+"ValueError is raised.");
+
+#define UNICODEDATA_UCD_DECIMAL_METHODDEF \
+ {"decimal", (PyCFunction)unicodedata_UCD_decimal, METH_VARARGS, unicodedata_UCD_decimal__doc__},
+
+static PyObject *
+unicodedata_UCD_decimal_impl(PyObject *self, int chr,
+ PyObject *default_value);
+
+static PyObject *
+unicodedata_UCD_decimal(PyObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int chr;
+ PyObject *default_value = NULL;
+
+ if (!PyArg_ParseTuple(args, "C|O:decimal",
+ &chr, &default_value))
+ goto exit;
+ return_value = unicodedata_UCD_decimal_impl(self, chr, default_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(unicodedata_UCD_digit__doc__,
+"digit($self, chr, default=None, /)\n"
+"--\n"
+"\n"
+"Converts a Unicode character into its equivalent digit value.\n"
+"\n"
+"Returns the digit value assigned to the character chr as integer.\n"
+"If no such value is defined, default is returned, or, if not given,\n"
+"ValueError is raised.");
+
+#define UNICODEDATA_UCD_DIGIT_METHODDEF \
+ {"digit", (PyCFunction)unicodedata_UCD_digit, METH_VARARGS, unicodedata_UCD_digit__doc__},
+
+static PyObject *
+unicodedata_UCD_digit_impl(PyObject *self, int chr, PyObject *default_value);
+
+static PyObject *
+unicodedata_UCD_digit(PyObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int chr;
+ PyObject *default_value = NULL;
+
+ if (!PyArg_ParseTuple(args, "C|O:digit",
+ &chr, &default_value))
+ goto exit;
+ return_value = unicodedata_UCD_digit_impl(self, chr, default_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(unicodedata_UCD_numeric__doc__,
+"numeric($self, chr, default=None, /)\n"
+"--\n"
+"\n"
+"Converts a Unicode character into its equivalent numeric value.\n"
+"\n"
+"Returns the numeric value assigned to the character chr as float.\n"
+"If no such value is defined, default is returned, or, if not given,\n"
+"ValueError is raised.");
+
+#define UNICODEDATA_UCD_NUMERIC_METHODDEF \
+ {"numeric", (PyCFunction)unicodedata_UCD_numeric, METH_VARARGS, unicodedata_UCD_numeric__doc__},
+
+static PyObject *
+unicodedata_UCD_numeric_impl(PyObject *self, int chr,
+ PyObject *default_value);
+
+static PyObject *
+unicodedata_UCD_numeric(PyObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int chr;
+ PyObject *default_value = NULL;
+
+ if (!PyArg_ParseTuple(args, "C|O:numeric",
+ &chr, &default_value))
+ goto exit;
+ return_value = unicodedata_UCD_numeric_impl(self, chr, default_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(unicodedata_UCD_category__doc__,
+"category($self, chr, /)\n"
+"--\n"
+"\n"
+"Returns the general category assigned to the character chr as string.");
+
+#define UNICODEDATA_UCD_CATEGORY_METHODDEF \
+ {"category", (PyCFunction)unicodedata_UCD_category, METH_O, unicodedata_UCD_category__doc__},
+
+static PyObject *
+unicodedata_UCD_category_impl(PyObject *self, int chr);
+
+static PyObject *
+unicodedata_UCD_category(PyObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int chr;
+
+ if (!PyArg_Parse(arg, "C:category", &chr))
+ goto exit;
+ return_value = unicodedata_UCD_category_impl(self, chr);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(unicodedata_UCD_bidirectional__doc__,
+"bidirectional($self, chr, /)\n"
+"--\n"
+"\n"
+"Returns the bidirectional class assigned to the character chr as string.\n"
+"\n"
+"If no such value is defined, an empty string is returned.");
+
+#define UNICODEDATA_UCD_BIDIRECTIONAL_METHODDEF \
+ {"bidirectional", (PyCFunction)unicodedata_UCD_bidirectional, METH_O, unicodedata_UCD_bidirectional__doc__},
+
+static PyObject *
+unicodedata_UCD_bidirectional_impl(PyObject *self, int chr);
+
+static PyObject *
+unicodedata_UCD_bidirectional(PyObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int chr;
+
+ if (!PyArg_Parse(arg, "C:bidirectional", &chr))
+ goto exit;
+ return_value = unicodedata_UCD_bidirectional_impl(self, chr);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(unicodedata_UCD_combining__doc__,
+"combining($self, chr, /)\n"
+"--\n"
+"\n"
+"Returns the canonical combining class assigned to the character chr as integer.\n"
+"\n"
+"Returns 0 if no combining class is defined.");
+
+#define UNICODEDATA_UCD_COMBINING_METHODDEF \
+ {"combining", (PyCFunction)unicodedata_UCD_combining, METH_O, unicodedata_UCD_combining__doc__},
+
+static int
+unicodedata_UCD_combining_impl(PyObject *self, int chr);
+
+static PyObject *
+unicodedata_UCD_combining(PyObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int chr;
+ int _return_value;
+
+ if (!PyArg_Parse(arg, "C:combining", &chr))
+ goto exit;
+ _return_value = unicodedata_UCD_combining_impl(self, chr);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyLong_FromLong((long)_return_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(unicodedata_UCD_mirrored__doc__,
+"mirrored($self, chr, /)\n"
+"--\n"
+"\n"
+"Returns the mirrored property assigned to the character chr as integer.\n"
+"\n"
+"Returns 1 if the character has been identified as a \"mirrored\"\n"
+"character in bidirectional text, 0 otherwise.");
+
+#define UNICODEDATA_UCD_MIRRORED_METHODDEF \
+ {"mirrored", (PyCFunction)unicodedata_UCD_mirrored, METH_O, unicodedata_UCD_mirrored__doc__},
+
+static int
+unicodedata_UCD_mirrored_impl(PyObject *self, int chr);
+
+static PyObject *
+unicodedata_UCD_mirrored(PyObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int chr;
+ int _return_value;
+
+ if (!PyArg_Parse(arg, "C:mirrored", &chr))
+ goto exit;
+ _return_value = unicodedata_UCD_mirrored_impl(self, chr);
+ if ((_return_value == -1) && PyErr_Occurred())
+ goto exit;
+ return_value = PyLong_FromLong((long)_return_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(unicodedata_UCD_east_asian_width__doc__,
+"east_asian_width($self, chr, /)\n"
+"--\n"
+"\n"
+"Returns the east asian width assigned to the character chr as string.");
+
+#define UNICODEDATA_UCD_EAST_ASIAN_WIDTH_METHODDEF \
+ {"east_asian_width", (PyCFunction)unicodedata_UCD_east_asian_width, METH_O, unicodedata_UCD_east_asian_width__doc__},
+
+static PyObject *
+unicodedata_UCD_east_asian_width_impl(PyObject *self, int chr);
+
+static PyObject *
+unicodedata_UCD_east_asian_width(PyObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int chr;
+
+ if (!PyArg_Parse(arg, "C:east_asian_width", &chr))
+ goto exit;
+ return_value = unicodedata_UCD_east_asian_width_impl(self, chr);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(unicodedata_UCD_decomposition__doc__,
+"decomposition($self, chr, /)\n"
+"--\n"
+"\n"
+"Returns the character decomposition mapping assigned to the character chr as string.\n"
+"\n"
+"An empty string is returned in case no such mapping is defined.");
+
+#define UNICODEDATA_UCD_DECOMPOSITION_METHODDEF \
+ {"decomposition", (PyCFunction)unicodedata_UCD_decomposition, METH_O, unicodedata_UCD_decomposition__doc__},
+
+static PyObject *
+unicodedata_UCD_decomposition_impl(PyObject *self, int chr);
+
+static PyObject *
+unicodedata_UCD_decomposition(PyObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int chr;
+
+ if (!PyArg_Parse(arg, "C:decomposition", &chr))
+ goto exit;
+ return_value = unicodedata_UCD_decomposition_impl(self, chr);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(unicodedata_UCD_normalize__doc__,
+"normalize($self, form, unistr, /)\n"
+"--\n"
+"\n"
+"Return the normal form \'form\' for the Unicode string unistr.\n"
+"\n"
+"Valid values for form are \'NFC\', \'NFKC\', \'NFD\', and \'NFKD\'.");
+
+#define UNICODEDATA_UCD_NORMALIZE_METHODDEF \
+ {"normalize", (PyCFunction)unicodedata_UCD_normalize, METH_VARARGS, unicodedata_UCD_normalize__doc__},
+
+static PyObject *
+unicodedata_UCD_normalize_impl(PyObject *self, const char *form,
+ PyObject *input);
+
+static PyObject *
+unicodedata_UCD_normalize(PyObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ const char *form;
+ PyObject *input;
+
+ if (!PyArg_ParseTuple(args, "sO!:normalize",
+ &form, &PyUnicode_Type, &input))
+ goto exit;
+ return_value = unicodedata_UCD_normalize_impl(self, form, input);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(unicodedata_UCD_name__doc__,
+"name($self, chr, default=None, /)\n"
+"--\n"
+"\n"
+"Returns the name assigned to the character chr as a string.\n"
+"\n"
+"If no name is defined, default is returned, or, if not given,\n"
+"ValueError is raised.");
+
+#define UNICODEDATA_UCD_NAME_METHODDEF \
+ {"name", (PyCFunction)unicodedata_UCD_name, METH_VARARGS, unicodedata_UCD_name__doc__},
+
+static PyObject *
+unicodedata_UCD_name_impl(PyObject *self, int chr, PyObject *default_value);
+
+static PyObject *
+unicodedata_UCD_name(PyObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int chr;
+ PyObject *default_value = NULL;
+
+ if (!PyArg_ParseTuple(args, "C|O:name",
+ &chr, &default_value))
+ goto exit;
+ return_value = unicodedata_UCD_name_impl(self, chr, default_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(unicodedata_UCD_lookup__doc__,
+"lookup($self, name, /)\n"
+"--\n"
+"\n"
+"Look up character by name.\n"
+"\n"
+"If a character with the given name is found, return the\n"
+"corresponding character. If not found, KeyError is raised.");
+
+#define UNICODEDATA_UCD_LOOKUP_METHODDEF \
+ {"lookup", (PyCFunction)unicodedata_UCD_lookup, METH_O, unicodedata_UCD_lookup__doc__},
+
+static PyObject *
+unicodedata_UCD_lookup_impl(PyObject *self, const char *name,
+ Py_ssize_clean_t name_length);
+
+static PyObject *
+unicodedata_UCD_lookup(PyObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ const char *name;
+ Py_ssize_clean_t name_length;
+
+ if (!PyArg_Parse(arg, "s#:lookup", &name, &name_length))
+ goto exit;
+ return_value = unicodedata_UCD_lookup_impl(self, name, name_length);
+
+exit:
+ return return_value;
+}
+/*[clinic end generated code: output=4f8da33c6bc6efc9 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/zlibmodule.c.h b/Modules/clinic/zlibmodule.c.h
index f54a805377..35661a5a46 100644
--- a/Modules/clinic/zlibmodule.c.h
+++ b/Modules/clinic/zlibmodule.c.h
@@ -26,8 +26,7 @@ zlib_compress(PyModuleDef *module, PyObject *args)
Py_buffer bytes = {NULL, NULL};
int level = Z_DEFAULT_COMPRESSION;
- if (!PyArg_ParseTuple(args,
- "y*|i:compress",
+ if (!PyArg_ParseTuple(args, "y*|i:compress",
&bytes, &level))
goto exit;
return_value = zlib_compress_impl(module, &bytes, level);
@@ -57,7 +56,8 @@ PyDoc_STRVAR(zlib_decompress__doc__,
{"decompress", (PyCFunction)zlib_decompress, METH_VARARGS, zlib_decompress__doc__},
static PyObject *
-zlib_decompress_impl(PyModuleDef *module, Py_buffer *data, int wbits, unsigned int bufsize);
+zlib_decompress_impl(PyModuleDef *module, Py_buffer *data, int wbits,
+ unsigned int bufsize);
static PyObject *
zlib_decompress(PyModuleDef *module, PyObject *args)
@@ -67,8 +67,7 @@ zlib_decompress(PyModuleDef *module, PyObject *args)
int wbits = MAX_WBITS;
unsigned int bufsize = DEF_BUF_SIZE;
- if (!PyArg_ParseTuple(args,
- "y*|iO&:decompress",
+ if (!PyArg_ParseTuple(args, "y*|iO&:decompress",
&data, &wbits, uint_converter, &bufsize))
goto exit;
return_value = zlib_decompress_impl(module, &data, wbits, bufsize);
@@ -111,7 +110,8 @@ PyDoc_STRVAR(zlib_compressobj__doc__,
{"compressobj", (PyCFunction)zlib_compressobj, METH_VARARGS|METH_KEYWORDS, zlib_compressobj__doc__},
static PyObject *
-zlib_compressobj_impl(PyModuleDef *module, int level, int method, int wbits, int memLevel, int strategy, Py_buffer *zdict);
+zlib_compressobj_impl(PyModuleDef *module, int level, int method, int wbits,
+ int memLevel, int strategy, Py_buffer *zdict);
static PyObject *
zlib_compressobj(PyModuleDef *module, PyObject *args, PyObject *kwargs)
@@ -125,8 +125,7 @@ zlib_compressobj(PyModuleDef *module, PyObject *args, PyObject *kwargs)
int strategy = Z_DEFAULT_STRATEGY;
Py_buffer zdict = {NULL, NULL};
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,
- "|iiiiiy*:compressobj", _keywords,
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|iiiiiy*:compressobj", _keywords,
&level, &method, &wbits, &memLevel, &strategy, &zdict))
goto exit;
return_value = zlib_compressobj_impl(module, level, method, wbits, memLevel, strategy, &zdict);
@@ -165,8 +164,7 @@ zlib_decompressobj(PyModuleDef *module, PyObject *args, PyObject *kwargs)
int wbits = MAX_WBITS;
PyObject *zdict = NULL;
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,
- "|iO:decompressobj", _keywords,
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|iO:decompressobj", _keywords,
&wbits, &zdict))
goto exit;
return_value = zlib_decompressobj_impl(module, wbits, zdict);
@@ -189,20 +187,18 @@ PyDoc_STRVAR(zlib_Compress_compress__doc__,
"Call the flush() method to clear these buffers.");
#define ZLIB_COMPRESS_COMPRESS_METHODDEF \
- {"compress", (PyCFunction)zlib_Compress_compress, METH_VARARGS, zlib_Compress_compress__doc__},
+ {"compress", (PyCFunction)zlib_Compress_compress, METH_O, zlib_Compress_compress__doc__},
static PyObject *
zlib_Compress_compress_impl(compobject *self, Py_buffer *data);
static PyObject *
-zlib_Compress_compress(compobject *self, PyObject *args)
+zlib_Compress_compress(compobject *self, PyObject *arg)
{
PyObject *return_value = NULL;
Py_buffer data = {NULL, NULL};
- if (!PyArg_ParseTuple(args,
- "y*:compress",
- &data))
+ if (!PyArg_Parse(arg, "y*:compress", &data))
goto exit;
return_value = zlib_Compress_compress_impl(self, &data);
@@ -235,7 +231,8 @@ PyDoc_STRVAR(zlib_Decompress_decompress__doc__,
{"decompress", (PyCFunction)zlib_Decompress_decompress, METH_VARARGS, zlib_Decompress_decompress__doc__},
static PyObject *
-zlib_Decompress_decompress_impl(compobject *self, Py_buffer *data, unsigned int max_length);
+zlib_Decompress_decompress_impl(compobject *self, Py_buffer *data,
+ unsigned int max_length);
static PyObject *
zlib_Decompress_decompress(compobject *self, PyObject *args)
@@ -244,8 +241,7 @@ zlib_Decompress_decompress(compobject *self, PyObject *args)
Py_buffer data = {NULL, NULL};
unsigned int max_length = 0;
- if (!PyArg_ParseTuple(args,
- "y*|O&:decompress",
+ if (!PyArg_ParseTuple(args, "y*|O&:decompress",
&data, uint_converter, &max_length))
goto exit;
return_value = zlib_Decompress_decompress_impl(self, &data, max_length);
@@ -282,8 +278,7 @@ zlib_Compress_flush(compobject *self, PyObject *args)
PyObject *return_value = NULL;
int mode = Z_FINISH;
- if (!PyArg_ParseTuple(args,
- "|i:flush",
+ if (!PyArg_ParseTuple(args, "|i:flush",
&mode))
goto exit;
return_value = zlib_Compress_flush_impl(self, mode);
@@ -314,10 +309,6 @@ zlib_Compress_copy(compobject *self, PyObject *Py_UNUSED(ignored))
#endif /* defined(HAVE_ZLIB_COPY) */
-#ifndef ZLIB_COMPRESS_COPY_METHODDEF
- #define ZLIB_COMPRESS_COPY_METHODDEF
-#endif /* !defined(ZLIB_COMPRESS_COPY_METHODDEF) */
-
#if defined(HAVE_ZLIB_COPY)
PyDoc_STRVAR(zlib_Decompress_copy__doc__,
@@ -340,10 +331,6 @@ zlib_Decompress_copy(compobject *self, PyObject *Py_UNUSED(ignored))
#endif /* defined(HAVE_ZLIB_COPY) */
-#ifndef ZLIB_DECOMPRESS_COPY_METHODDEF
- #define ZLIB_DECOMPRESS_COPY_METHODDEF
-#endif /* !defined(ZLIB_DECOMPRESS_COPY_METHODDEF) */
-
PyDoc_STRVAR(zlib_Decompress_flush__doc__,
"flush($self, length=zlib.DEF_BUF_SIZE, /)\n"
"--\n"
@@ -365,8 +352,7 @@ zlib_Decompress_flush(compobject *self, PyObject *args)
PyObject *return_value = NULL;
unsigned int length = DEF_BUF_SIZE;
- if (!PyArg_ParseTuple(args,
- "|O&:flush",
+ if (!PyArg_ParseTuple(args, "|O&:flush",
uint_converter, &length))
goto exit;
return_value = zlib_Decompress_flush_impl(self, length);
@@ -399,8 +385,7 @@ zlib_adler32(PyModuleDef *module, PyObject *args)
Py_buffer data = {NULL, NULL};
unsigned int value = 1;
- if (!PyArg_ParseTuple(args,
- "y*|I:adler32",
+ if (!PyArg_ParseTuple(args, "y*|I:adler32",
&data, &value))
goto exit;
return_value = zlib_adler32_impl(module, &data, value);
@@ -437,8 +422,7 @@ zlib_crc32(PyModuleDef *module, PyObject *args)
Py_buffer data = {NULL, NULL};
unsigned int value = 0;
- if (!PyArg_ParseTuple(args,
- "y*|I:crc32",
+ if (!PyArg_ParseTuple(args, "y*|I:crc32",
&data, &value))
goto exit;
return_value = zlib_crc32_impl(module, &data, value);
@@ -450,4 +434,8 @@ exit:
return return_value;
}
-/*[clinic end generated code: output=bc9473721ca7c962 input=a9049054013a1b77]*/
+
+#ifndef ZLIB_COMPRESS_COPY_METHODDEF
+ #define ZLIB_COMPRESS_COPY_METHODDEF
+#endif /* !defined(ZLIB_COMPRESS_COPY_METHODDEF) */
+/*[clinic end generated code: output=56ed1147bbbb4788 input=a9049054013a1b77]*/
diff --git a/Modules/cmathmodule.c b/Modules/cmathmodule.c
index b341c343e1..7f6c2c9df4 100644
--- a/Modules/cmathmodule.c
+++ b/Modules/cmathmodule.c
@@ -8,6 +8,40 @@
float.h. We assume that FLT_RADIX is either 2 or 16. */
#include <float.h>
+#include "clinic/cmathmodule.c.h"
+/*[clinic input]
+module cmath
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=308d6839f4a46333]*/
+
+/*[python input]
+class Py_complex_protected_converter(Py_complex_converter):
+ def modify(self):
+ return 'errno = 0; PyFPE_START_PROTECT("complex function", goto exit);'
+
+
+class Py_complex_protected_return_converter(CReturnConverter):
+ type = "Py_complex"
+
+ def render(self, function, data):
+ self.declare(data)
+ data.return_conversion.append("""
+PyFPE_END_PROTECT(_return_value);
+if (errno == EDOM) {{
+ PyErr_SetString(PyExc_ValueError, "math domain error");
+ goto exit;
+}}
+else if (errno == ERANGE) {{
+ PyErr_SetString(PyExc_OverflowError, "math range error");
+ goto exit;
+}}
+else {{
+ return_value = PyComplex_FromCComplex(_return_value);
+}}
+""".strip())
+[python start generated code]*/
+/*[python end generated code: output=da39a3ee5e6b4b0d input=231019039a6fbb9a]*/
+
#if (FLT_RADIX != 2 && FLT_RADIX != 16)
#error "Modules/cmathmodule.c expects FLT_RADIX to be 2 or 16"
#endif
@@ -48,12 +82,12 @@
#define CM_SCALE_DOWN (-(CM_SCALE_UP+1)/2)
/* forward declarations */
-static Py_complex c_asinh(Py_complex);
-static Py_complex c_atanh(Py_complex);
-static Py_complex c_cosh(Py_complex);
-static Py_complex c_sinh(Py_complex);
-static Py_complex c_sqrt(Py_complex);
-static Py_complex c_tanh(Py_complex);
+static Py_complex cmath_asinh_impl(PyModuleDef *, Py_complex);
+static Py_complex cmath_atanh_impl(PyModuleDef *, Py_complex);
+static Py_complex cmath_cosh_impl(PyModuleDef *, Py_complex);
+static Py_complex cmath_sinh_impl(PyModuleDef *, Py_complex);
+static Py_complex cmath_sqrt_impl(PyModuleDef *, Py_complex);
+static Py_complex cmath_tanh_impl(PyModuleDef *, Py_complex);
static PyObject * math_error(void);
/* Code to deal with special values (infinities, NaNs, etc.). */
@@ -123,8 +157,18 @@ special_type(double d)
static Py_complex acos_special_values[7][7];
+/*[clinic input]
+cmath.acos -> Py_complex_protected
+
+ z: Py_complex_protected
+ /
+
+Return the arc cosine of z.
+[clinic start generated code]*/
+
static Py_complex
-c_acos(Py_complex z)
+cmath_acos_impl(PyModuleDef *module, Py_complex z)
+/*[clinic end generated code: output=7c1dd21ff818db6b input=bd6cbd78ae851927]*/
{
Py_complex s1, s2, r;
@@ -145,10 +189,10 @@ c_acos(Py_complex z)
} else {
s1.real = 1.-z.real;
s1.imag = -z.imag;
- s1 = c_sqrt(s1);
+ s1 = cmath_sqrt_impl(module, s1);
s2.real = 1.+z.real;
s2.imag = z.imag;
- s2 = c_sqrt(s2);
+ s2 = cmath_sqrt_impl(module, s2);
r.real = 2.*atan2(s1.real, s2.real);
r.imag = m_asinh(s2.real*s1.imag - s2.imag*s1.real);
}
@@ -156,16 +200,18 @@ c_acos(Py_complex z)
return r;
}
-PyDoc_STRVAR(c_acos_doc,
-"acos(x)\n"
-"\n"
-"Return the arc cosine of x.");
-
static Py_complex acosh_special_values[7][7];
+/*[clinic input]
+cmath.acosh = cmath.acos
+
+Return the inverse hyperbolic cosine of z.
+[clinic start generated code]*/
+
static Py_complex
-c_acosh(Py_complex z)
+cmath_acosh_impl(PyModuleDef *module, Py_complex z)
+/*[clinic end generated code: output=c23c776429def981 input=3f61bee7d703e53c]*/
{
Py_complex s1, s2, r;
@@ -178,10 +224,10 @@ c_acosh(Py_complex z)
} else {
s1.real = z.real - 1.;
s1.imag = z.imag;
- s1 = c_sqrt(s1);
+ s1 = cmath_sqrt_impl(module, s1);
s2.real = z.real + 1.;
s2.imag = z.imag;
- s2 = c_sqrt(s2);
+ s2 = cmath_sqrt_impl(module, s2);
r.real = m_asinh(s1.real*s2.real + s1.imag*s2.imag);
r.imag = 2.*atan2(s1.imag, s2.real);
}
@@ -189,35 +235,38 @@ c_acosh(Py_complex z)
return r;
}
-PyDoc_STRVAR(c_acosh_doc,
-"acosh(x)\n"
-"\n"
-"Return the inverse hyperbolic cosine of x.");
+/*[clinic input]
+cmath.asin = cmath.acos
+Return the arc sine of z.
+[clinic start generated code]*/
static Py_complex
-c_asin(Py_complex z)
+cmath_asin_impl(PyModuleDef *module, Py_complex z)
+/*[clinic end generated code: output=42d2346d46690826 input=be0bf0cfdd5239c5]*/
{
/* asin(z) = -i asinh(iz) */
Py_complex s, r;
s.real = -z.imag;
s.imag = z.real;
- s = c_asinh(s);
+ s = cmath_asinh_impl(module, s);
r.real = s.imag;
r.imag = -s.real;
return r;
}
-PyDoc_STRVAR(c_asin_doc,
-"asin(x)\n"
-"\n"
-"Return the arc sine of x.");
-
static Py_complex asinh_special_values[7][7];
+/*[clinic input]
+cmath.asinh = cmath.acos
+
+Return the inverse hyperbolic sine of z.
+[clinic start generated code]*/
+
static Py_complex
-c_asinh(Py_complex z)
+cmath_asinh_impl(PyModuleDef *module, Py_complex z)
+/*[clinic end generated code: output=0c6664823c7b1b35 input=5c09448fcfc89a79]*/
{
Py_complex s1, s2, r;
@@ -235,10 +284,10 @@ c_asinh(Py_complex z)
} else {
s1.real = 1.+z.imag;
s1.imag = -z.real;
- s1 = c_sqrt(s1);
+ s1 = cmath_sqrt_impl(module, s1);
s2.real = 1.-z.imag;
s2.imag = z.real;
- s2 = c_sqrt(s2);
+ s2 = cmath_sqrt_impl(module, s2);
r.real = m_asinh(s1.real*s2.imag-s2.real*s1.imag);
r.imag = atan2(z.imag, s1.real*s2.real-s1.imag*s2.imag);
}
@@ -246,20 +295,22 @@ c_asinh(Py_complex z)
return r;
}
-PyDoc_STRVAR(c_asinh_doc,
-"asinh(x)\n"
-"\n"
-"Return the inverse hyperbolic sine of x.");
+/*[clinic input]
+cmath.atan = cmath.acos
+
+Return the arc tangent of z.
+[clinic start generated code]*/
static Py_complex
-c_atan(Py_complex z)
+cmath_atan_impl(PyModuleDef *module, Py_complex z)
+/*[clinic end generated code: output=b7d44f02c6a5c3b5 input=3b21ff7d5eac632a]*/
{
/* atan(z) = -i atanh(iz) */
Py_complex s, r;
s.real = -z.imag;
s.imag = z.real;
- s = c_atanh(s);
+ s = cmath_atanh_impl(module, s);
r.real = s.imag;
r.imag = -s.real;
return r;
@@ -295,16 +346,18 @@ c_atan2(Py_complex z)
return atan2(z.imag, z.real);
}
-PyDoc_STRVAR(c_atan_doc,
-"atan(x)\n"
-"\n"
-"Return the arc tangent of x.");
-
static Py_complex atanh_special_values[7][7];
+/*[clinic input]
+cmath.atanh = cmath.acos
+
+Return the inverse hyperbolic tangent of z.
+[clinic start generated code]*/
+
static Py_complex
-c_atanh(Py_complex z)
+cmath_atanh_impl(PyModuleDef *module, Py_complex z)
+/*[clinic end generated code: output=279e0b9fefc8da7c input=2b3fdb82fb34487b]*/
{
Py_complex r;
double ay, h;
@@ -313,7 +366,7 @@ c_atanh(Py_complex z)
/* Reduce to case where z.real >= 0., using atanh(z) = -atanh(-z). */
if (z.real < 0.) {
- return c_neg(c_atanh(c_neg(z)));
+ return _Py_c_neg(cmath_atanh_impl(module, _Py_c_neg(z)));
}
ay = fabs(z.imag);
@@ -350,34 +403,38 @@ c_atanh(Py_complex z)
return r;
}
-PyDoc_STRVAR(c_atanh_doc,
-"atanh(x)\n"
-"\n"
-"Return the inverse hyperbolic tangent of x.");
+/*[clinic input]
+cmath.cos = cmath.acos
+
+Return the cosine of z.
+[clinic start generated code]*/
static Py_complex
-c_cos(Py_complex z)
+cmath_cos_impl(PyModuleDef *module, Py_complex z)
+/*[clinic end generated code: output=9d1cdc1b5e761667 input=6022e39b77127ac7]*/
{
/* cos(z) = cosh(iz) */
Py_complex r;
r.real = -z.imag;
r.imag = z.real;
- r = c_cosh(r);
+ r = cmath_cosh_impl(module, r);
return r;
}
-PyDoc_STRVAR(c_cos_doc,
-"cos(x)\n"
-"\n"
-"Return the cosine of x.");
-
/* cosh(infinity + i*y) needs to be dealt with specially */
static Py_complex cosh_special_values[7][7];
+/*[clinic input]
+cmath.cosh = cmath.acos
+
+Return the hyperbolic cosine of z.
+[clinic start generated code]*/
+
static Py_complex
-c_cosh(Py_complex z)
+cmath_cosh_impl(PyModuleDef *module, Py_complex z)
+/*[clinic end generated code: output=f3b5d3282b3024d3 input=d6b66339e9cc332b]*/
{
Py_complex r;
double x_minus_one;
@@ -426,18 +483,20 @@ c_cosh(Py_complex z)
return r;
}
-PyDoc_STRVAR(c_cosh_doc,
-"cosh(x)\n"
-"\n"
-"Return the hyperbolic cosine of x.");
-
/* exp(infinity + i*y) and exp(-infinity + i*y) need special treatment for
finite y */
static Py_complex exp_special_values[7][7];
+/*[clinic input]
+cmath.exp = cmath.acos
+
+Return the exponential value e**z.
+[clinic start generated code]*/
+
static Py_complex
-c_exp(Py_complex z)
+cmath_exp_impl(PyModuleDef *module, Py_complex z)
+/*[clinic end generated code: output=6f8825eb2bcad9ba input=8b9e6cf8a92174c3]*/
{
Py_complex r;
double l;
@@ -486,12 +545,6 @@ c_exp(Py_complex z)
return r;
}
-PyDoc_STRVAR(c_exp_doc,
-"exp(x)\n"
-"\n"
-"Return the exponential value e**x.");
-
-
static Py_complex log_special_values[7][7];
static Py_complex
@@ -564,8 +617,15 @@ c_log(Py_complex z)
}
+/*[clinic input]
+cmath.log10 = cmath.acos
+
+Return the base-10 logarithm of z.
+[clinic start generated code]*/
+
static Py_complex
-c_log10(Py_complex z)
+cmath_log10_impl(PyModuleDef *module, Py_complex z)
+/*[clinic end generated code: output=c7c426ca0e782341 input=cff5644f73c1519c]*/
{
Py_complex r;
int errno_save;
@@ -578,36 +638,40 @@ c_log10(Py_complex z)
return r;
}
-PyDoc_STRVAR(c_log10_doc,
-"log10(x)\n"
-"\n"
-"Return the base-10 logarithm of x.");
+/*[clinic input]
+cmath.sin = cmath.acos
+
+Return the sine of z.
+[clinic start generated code]*/
static Py_complex
-c_sin(Py_complex z)
+cmath_sin_impl(PyModuleDef *module, Py_complex z)
+/*[clinic end generated code: output=e7f5e2b253825ac7 input=2d3519842a8b4b85]*/
{
/* sin(z) = -i sin(iz) */
Py_complex s, r;
s.real = -z.imag;
s.imag = z.real;
- s = c_sinh(s);
+ s = cmath_sinh_impl(module, s);
r.real = s.imag;
r.imag = -s.real;
return r;
}
-PyDoc_STRVAR(c_sin_doc,
-"sin(x)\n"
-"\n"
-"Return the sine of x.");
-
/* sinh(infinity + i*y) needs to be dealt with specially */
static Py_complex sinh_special_values[7][7];
+/*[clinic input]
+cmath.sinh = cmath.acos
+
+Return the hyperbolic sine of z.
+[clinic start generated code]*/
+
static Py_complex
-c_sinh(Py_complex z)
+cmath_sinh_impl(PyModuleDef *module, Py_complex z)
+/*[clinic end generated code: output=d71fff8298043a95 input=d2d3fc8c1ddfd2dd]*/
{
Py_complex r;
double x_minus_one;
@@ -655,16 +719,18 @@ c_sinh(Py_complex z)
return r;
}
-PyDoc_STRVAR(c_sinh_doc,
-"sinh(x)\n"
-"\n"
-"Return the hyperbolic sine of x.");
-
static Py_complex sqrt_special_values[7][7];
+/*[clinic input]
+cmath.sqrt = cmath.acos
+
+Return the square root of z.
+[clinic start generated code]*/
+
static Py_complex
-c_sqrt(Py_complex z)
+cmath_sqrt_impl(PyModuleDef *module, Py_complex z)
+/*[clinic end generated code: output=b6bda283d0c5a7b4 input=7088b166fc9a58c7]*/
{
/*
Method: use symmetries to reduce to the case when x = z.real and y
@@ -730,36 +796,40 @@ c_sqrt(Py_complex z)
return r;
}
-PyDoc_STRVAR(c_sqrt_doc,
-"sqrt(x)\n"
-"\n"
-"Return the square root of x.");
+/*[clinic input]
+cmath.tan = cmath.acos
+
+Return the tangent of z.
+[clinic start generated code]*/
static Py_complex
-c_tan(Py_complex z)
+cmath_tan_impl(PyModuleDef *module, Py_complex z)
+/*[clinic end generated code: output=df374bacf36d99b4 input=fc167e528767888e]*/
{
/* tan(z) = -i tanh(iz) */
Py_complex s, r;
s.real = -z.imag;
s.imag = z.real;
- s = c_tanh(s);
+ s = cmath_tanh_impl(module, s);
r.real = s.imag;
r.imag = -s.real;
return r;
}
-PyDoc_STRVAR(c_tan_doc,
-"tan(x)\n"
-"\n"
-"Return the tangent of x.");
-
/* tanh(infinity + i*y) needs to be dealt with specially */
static Py_complex tanh_special_values[7][7];
+/*[clinic input]
+cmath.tanh = cmath.acos
+
+Return the hyperbolic tangent of z.
+[clinic start generated code]*/
+
static Py_complex
-c_tanh(Py_complex z)
+cmath_tanh_impl(PyModuleDef *module, Py_complex z)
+/*[clinic end generated code: output=f578773d27a18e96 input=22f67f9dc6d29685]*/
{
/* Formula:
@@ -822,27 +892,35 @@ c_tanh(Py_complex z)
return r;
}
-PyDoc_STRVAR(c_tanh_doc,
-"tanh(x)\n"
-"\n"
-"Return the hyperbolic tangent of x.");
+/*[clinic input]
+cmath.log
+
+ x: Py_complex
+ y_obj: object = NULL
+ /
+
+The logarithm of z to the given base.
+
+If the base not specified, returns the natural logarithm (base e) of z.
+[clinic start generated code]*/
static PyObject *
-cmath_log(PyObject *self, PyObject *args)
+cmath_log_impl(PyModuleDef *module, Py_complex x, PyObject *y_obj)
+/*[clinic end generated code: output=35e2a1e5229b5a46 input=ee0e823a7c6e68ea]*/
{
- Py_complex x;
Py_complex y;
- if (!PyArg_ParseTuple(args, "D|D", &x, &y))
- return NULL;
-
errno = 0;
PyFPE_START_PROTECT("complex function", return 0)
x = c_log(x);
- if (PyTuple_GET_SIZE(args) == 2) {
+ if (y_obj != NULL) {
+ y = PyComplex_AsCComplex(y_obj);
+ if (PyErr_Occurred()) {
+ return NULL;
+ }
y = c_log(y);
- x = c_quot(x, y);
+ x = _Py_c_quot(x, y);
}
PyFPE_END_PROTECT(x)
if (errno != 0)
@@ -850,10 +928,6 @@ cmath_log(PyObject *self, PyObject *args)
return PyComplex_FromCComplex(x);
}
-PyDoc_STRVAR(cmath_log_doc,
-"log(x[, base]) -> the logarithm of x to the given base.\n\
-If the base not specified, returns the natural logarithm (base e) of x.");
-
/* And now the glue to make them available from Python: */
@@ -869,57 +943,22 @@ math_error(void)
return NULL;
}
-static PyObject *
-math_1(PyObject *args, Py_complex (*func)(Py_complex))
-{
- Py_complex x,r ;
- if (!PyArg_ParseTuple(args, "D", &x))
- return NULL;
- errno = 0;
- PyFPE_START_PROTECT("complex function", return 0);
- r = (*func)(x);
- PyFPE_END_PROTECT(r);
- if (errno == EDOM) {
- PyErr_SetString(PyExc_ValueError, "math domain error");
- return NULL;
- }
- else if (errno == ERANGE) {
- PyErr_SetString(PyExc_OverflowError, "math range error");
- return NULL;
- }
- else {
- return PyComplex_FromCComplex(r);
- }
-}
-#define FUNC1(stubname, func) \
- static PyObject * stubname(PyObject *self, PyObject *args) { \
- return math_1(args, func); \
- }
+/*[clinic input]
+cmath.phase
+
+ z: Py_complex
+ /
-FUNC1(cmath_acos, c_acos)
-FUNC1(cmath_acosh, c_acosh)
-FUNC1(cmath_asin, c_asin)
-FUNC1(cmath_asinh, c_asinh)
-FUNC1(cmath_atan, c_atan)
-FUNC1(cmath_atanh, c_atanh)
-FUNC1(cmath_cos, c_cos)
-FUNC1(cmath_cosh, c_cosh)
-FUNC1(cmath_exp, c_exp)
-FUNC1(cmath_log10, c_log10)
-FUNC1(cmath_sin, c_sin)
-FUNC1(cmath_sinh, c_sinh)
-FUNC1(cmath_sqrt, c_sqrt)
-FUNC1(cmath_tan, c_tan)
-FUNC1(cmath_tanh, c_tanh)
+Return argument, also known as the phase angle, of a complex.
+[clinic start generated code]*/
static PyObject *
-cmath_phase(PyObject *self, PyObject *args)
+cmath_phase_impl(PyModuleDef *module, Py_complex z)
+/*[clinic end generated code: output=e09eaf373cb624c3 input=5cf75228ba94b69d]*/
{
- Py_complex z;
double phi;
- if (!PyArg_ParseTuple(args, "D:phase", &z))
- return NULL;
+
errno = 0;
PyFPE_START_PROTECT("arg function", return 0)
phi = c_atan2(z);
@@ -930,21 +969,27 @@ cmath_phase(PyObject *self, PyObject *args)
return PyFloat_FromDouble(phi);
}
-PyDoc_STRVAR(cmath_phase_doc,
-"phase(z) -> float\n\n\
-Return argument, also known as the phase angle, of a complex.");
+/*[clinic input]
+cmath.polar
+
+ z: Py_complex
+ /
+
+Convert a complex from rectangular coordinates to polar coordinates.
+
+r is the distance from 0 and phi the phase angle.
+[clinic start generated code]*/
static PyObject *
-cmath_polar(PyObject *self, PyObject *args)
+cmath_polar_impl(PyModuleDef *module, Py_complex z)
+/*[clinic end generated code: output=07d41b16c877875a input=26c353574fd1a861]*/
{
- Py_complex z;
double r, phi;
- if (!PyArg_ParseTuple(args, "D:polar", &z))
- return NULL;
+
errno = 0;
PyFPE_START_PROTECT("polar function", return 0)
phi = c_atan2(z); /* should not cause any exception */
- r = c_abs(z); /* sets errno to ERANGE on overflow */
+ r = _Py_c_abs(z); /* sets errno to ERANGE on overflow */
PyFPE_END_PROTECT(r)
if (errno != 0)
return math_error();
@@ -952,11 +997,6 @@ cmath_polar(PyObject *self, PyObject *args)
return Py_BuildValue("dd", r, phi);
}
-PyDoc_STRVAR(cmath_polar_doc,
-"polar(z) -> r: float, phi: float\n\n\
-Convert a complex from rectangular coordinates to polar coordinates. r is\n\
-the distance from 0 and phi the phase angle.");
-
/*
rect() isn't covered by the C99 standard, but it's not too hard to
figure out 'spirit of C99' rules for special value handing:
@@ -970,13 +1010,21 @@ the distance from 0 and phi the phase angle.");
static Py_complex rect_special_values[7][7];
+/*[clinic input]
+cmath.rect
+
+ r: double
+ phi: double
+ /
+
+Convert from polar coordinates to rectangular coordinates.
+[clinic start generated code]*/
+
static PyObject *
-cmath_rect(PyObject *self, PyObject *args)
+cmath_rect_impl(PyModuleDef *module, double r, double phi)
+/*[clinic end generated code: output=d97a8749bd63e9d5 input=24c5646d147efd69]*/
{
Py_complex z;
- double r, phi;
- if (!PyArg_ParseTuple(args, "dd:rect", &r, &phi))
- return NULL;
errno = 0;
PyFPE_START_PROTECT("rect function", return 0)
@@ -1027,79 +1075,143 @@ cmath_rect(PyObject *self, PyObject *args)
return PyComplex_FromCComplex(z);
}
-PyDoc_STRVAR(cmath_rect_doc,
-"rect(r, phi) -> z: complex\n\n\
-Convert from polar coordinates to rectangular coordinates.");
+/*[clinic input]
+cmath.isfinite = cmath.polar
+
+Return True if both the real and imaginary parts of z are finite, else False.
+[clinic start generated code]*/
static PyObject *
-cmath_isfinite(PyObject *self, PyObject *args)
+cmath_isfinite_impl(PyModuleDef *module, Py_complex z)
+/*[clinic end generated code: output=8f6682fa93de45d6 input=848e7ee701895815]*/
{
- Py_complex z;
- if (!PyArg_ParseTuple(args, "D:isfinite", &z))
- return NULL;
return PyBool_FromLong(Py_IS_FINITE(z.real) && Py_IS_FINITE(z.imag));
}
-PyDoc_STRVAR(cmath_isfinite_doc,
-"isfinite(z) -> bool\n\
-Return True if both the real and imaginary parts of z are finite, else False.");
+/*[clinic input]
+cmath.isnan = cmath.polar
+
+Checks if the real or imaginary part of z not a number (NaN).
+[clinic start generated code]*/
static PyObject *
-cmath_isnan(PyObject *self, PyObject *args)
+cmath_isnan_impl(PyModuleDef *module, Py_complex z)
+/*[clinic end generated code: output=b85fe8c2047718ee input=71799f5d284c9baf]*/
{
- Py_complex z;
- if (!PyArg_ParseTuple(args, "D:isnan", &z))
- return NULL;
return PyBool_FromLong(Py_IS_NAN(z.real) || Py_IS_NAN(z.imag));
}
-PyDoc_STRVAR(cmath_isnan_doc,
-"isnan(z) -> bool\n\
-Checks if the real or imaginary part of z not a number (NaN)");
+/*[clinic input]
+cmath.isinf = cmath.polar
+
+Checks if the real or imaginary part of z is infinite.
+[clinic start generated code]*/
static PyObject *
-cmath_isinf(PyObject *self, PyObject *args)
+cmath_isinf_impl(PyModuleDef *module, Py_complex z)
+/*[clinic end generated code: output=8ca9c6109e468bf4 input=363df155c7181329]*/
{
- Py_complex z;
- if (!PyArg_ParseTuple(args, "D:isinf", &z))
- return NULL;
return PyBool_FromLong(Py_IS_INFINITY(z.real) ||
Py_IS_INFINITY(z.imag));
}
-PyDoc_STRVAR(cmath_isinf_doc,
-"isinf(z) -> bool\n\
-Checks if the real or imaginary part of z is infinite.");
+/*[clinic input]
+cmath.isclose -> bool
+
+ a: Py_complex
+ b: Py_complex
+ *
+ rel_tol: double = 1e-09
+ maximum difference for being considered "close", relative to the
+ magnitude of the input values
+ abs_tol: double = 0.0
+ maximum difference for being considered "close", regardless of the
+ magnitude of the input values
+
+Determine whether two complex numbers are close in value.
+Return True if a is close in value to b, and False otherwise.
+
+For the values to be considered close, the difference between them must be
+smaller than at least one of the tolerances.
+
+-inf, inf and NaN behave similarly to the IEEE 754 Standard. That is, NaN is
+not close to anything, even itself. inf and -inf are only close to themselves.
+[clinic start generated code]*/
+
+static int
+cmath_isclose_impl(PyModuleDef *module, Py_complex a, Py_complex b,
+ double rel_tol, double abs_tol)
+/*[clinic end generated code: output=da0c535fb54e2310 input=df9636d7de1d4ac3]*/
+{
+ double diff;
+
+ /* sanity check on the inputs */
+ if (rel_tol < 0.0 || abs_tol < 0.0 ) {
+ PyErr_SetString(PyExc_ValueError,
+ "tolerances must be non-negative");
+ return -1;
+ }
+
+ if ( (a.real == b.real) && (a.imag == b.imag) ) {
+ /* short circuit exact equality -- needed to catch two infinities of
+ the same sign. And perhaps speeds things up a bit sometimes.
+ */
+ return 1;
+ }
+
+ /* This catches the case of two infinities of opposite sign, or
+ one infinity and one finite number. Two infinities of opposite
+ sign would otherwise have an infinite relative tolerance.
+ Two infinities of the same sign are caught by the equality check
+ above.
+ */
+
+ if (Py_IS_INFINITY(a.real) || Py_IS_INFINITY(a.imag) ||
+ Py_IS_INFINITY(b.real) || Py_IS_INFINITY(b.imag)) {
+ return 0;
+ }
+
+ /* now do the regular computation
+ this is essentially the "weak" test from the Boost library
+ */
+
+ diff = _Py_c_abs(_Py_c_diff(a, b));
+
+ return (((diff <= rel_tol * _Py_c_abs(b)) ||
+ (diff <= rel_tol * _Py_c_abs(a))) ||
+ (diff <= abs_tol));
+}
PyDoc_STRVAR(module_doc,
"This module is always available. It provides access to mathematical\n"
"functions for complex numbers.");
static PyMethodDef cmath_methods[] = {
- {"acos", cmath_acos, METH_VARARGS, c_acos_doc},
- {"acosh", cmath_acosh, METH_VARARGS, c_acosh_doc},
- {"asin", cmath_asin, METH_VARARGS, c_asin_doc},
- {"asinh", cmath_asinh, METH_VARARGS, c_asinh_doc},
- {"atan", cmath_atan, METH_VARARGS, c_atan_doc},
- {"atanh", cmath_atanh, METH_VARARGS, c_atanh_doc},
- {"cos", cmath_cos, METH_VARARGS, c_cos_doc},
- {"cosh", cmath_cosh, METH_VARARGS, c_cosh_doc},
- {"exp", cmath_exp, METH_VARARGS, c_exp_doc},
- {"isfinite", cmath_isfinite, METH_VARARGS, cmath_isfinite_doc},
- {"isinf", cmath_isinf, METH_VARARGS, cmath_isinf_doc},
- {"isnan", cmath_isnan, METH_VARARGS, cmath_isnan_doc},
- {"log", cmath_log, METH_VARARGS, cmath_log_doc},
- {"log10", cmath_log10, METH_VARARGS, c_log10_doc},
- {"phase", cmath_phase, METH_VARARGS, cmath_phase_doc},
- {"polar", cmath_polar, METH_VARARGS, cmath_polar_doc},
- {"rect", cmath_rect, METH_VARARGS, cmath_rect_doc},
- {"sin", cmath_sin, METH_VARARGS, c_sin_doc},
- {"sinh", cmath_sinh, METH_VARARGS, c_sinh_doc},
- {"sqrt", cmath_sqrt, METH_VARARGS, c_sqrt_doc},
- {"tan", cmath_tan, METH_VARARGS, c_tan_doc},
- {"tanh", cmath_tanh, METH_VARARGS, c_tanh_doc},
- {NULL, NULL} /* sentinel */
+ CMATH_ACOS_METHODDEF
+ CMATH_ACOSH_METHODDEF
+ CMATH_ASIN_METHODDEF
+ CMATH_ASINH_METHODDEF
+ CMATH_ATAN_METHODDEF
+ CMATH_ATANH_METHODDEF
+ CMATH_COS_METHODDEF
+ CMATH_COSH_METHODDEF
+ CMATH_EXP_METHODDEF
+ CMATH_ISCLOSE_METHODDEF
+ CMATH_ISFINITE_METHODDEF
+ CMATH_ISINF_METHODDEF
+ CMATH_ISNAN_METHODDEF
+ CMATH_LOG_METHODDEF
+ CMATH_LOG10_METHODDEF
+ CMATH_PHASE_METHODDEF
+ CMATH_POLAR_METHODDEF
+ CMATH_RECT_METHODDEF
+ CMATH_SIN_METHODDEF
+ CMATH_SINH_METHODDEF
+ CMATH_SQRT_METHODDEF
+ CMATH_TAN_METHODDEF
+ CMATH_TANH_METHODDEF
+ {NULL, NULL} /* sentinel */
};
diff --git a/Modules/config.c.in b/Modules/config.c.in
index 7a24e2dc89..7b77199c2e 100644
--- a/Modules/config.c.in
+++ b/Modules/config.c.in
@@ -13,7 +13,7 @@ redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
/* !!! !!! !!! This file is edited by the makesetup script !!! !!! !!! */
/* This file contains the table of built-in modules.
- See init_builtin() in import.c. */
+ See create_builtin() in import.c. */
#include "Python.h"
diff --git a/Modules/faulthandler.c b/Modules/faulthandler.c
index 1493f8d885..530ddc7efd 100644
--- a/Modules/faulthandler.c
+++ b/Modules/faulthandler.c
@@ -5,7 +5,13 @@
#include <frameobject.h>
#include <signal.h>
#if defined(HAVE_PTHREAD_SIGMASK) && !defined(HAVE_BROKEN_PTHREAD_SIGMASK)
-#include <pthread.h>
+# include <pthread.h>
+#endif
+#ifdef MS_WINDOWS
+# include <windows.h>
+#endif
+#ifdef HAVE_SYS_RESOURCE_H
+# include <sys/resource.h>
#endif
/* Allocate at maximum 100 MB of the stack to raise the stack overflow */
@@ -22,9 +28,7 @@
# define FAULTHANDLER_USER
#endif
-/* cast size_t to int because write() takes an int on Windows
- (anyway, the length is smaller than 30 characters) */
-#define PUTS(fd, str) write(fd, str, (int)strlen(str))
+#define PUTS(fd, str) _Py_write_noraise(fd, str, strlen(str))
_Py_IDENTIFIER(enable);
_Py_IDENTIFIER(fileno);
@@ -127,32 +131,46 @@ static stack_t stack;
call its flush() method.
If file is NULL or Py_None, use sys.stderr as the new file.
+ If file is an integer, it will be treated as file descriptor.
- On success, return the new file and write the file descriptor into *p_fd.
- On error, return NULL. */
+ On success, return the file descriptor and write the new file into *file_ptr.
+ On error, return -1. */
-static PyObject*
-faulthandler_get_fileno(PyObject *file, int *p_fd)
+static int
+faulthandler_get_fileno(PyObject **file_ptr)
{
PyObject *result;
long fd_long;
int fd;
+ PyObject *file = *file_ptr;
if (file == NULL || file == Py_None) {
file = _PySys_GetObjectId(&PyId_stderr);
if (file == NULL) {
PyErr_SetString(PyExc_RuntimeError, "unable to get sys.stderr");
- return NULL;
+ return -1;
}
if (file == Py_None) {
PyErr_SetString(PyExc_RuntimeError, "sys.stderr is None");
- return NULL;
+ return -1;
}
}
+ else if (PyLong_Check(file)) {
+ fd = _PyLong_AsInt(file);
+ if (fd == -1 && PyErr_Occurred())
+ return -1;
+ if (fd < 0 || !_PyVerify_fd(fd)) {
+ PyErr_SetString(PyExc_ValueError,
+ "file is not a valid file descripter");
+ return -1;
+ }
+ *file_ptr = NULL;
+ return fd;
+ }
result = _PyObject_CallMethodId(file, &PyId_fileno, "");
if (result == NULL)
- return NULL;
+ return -1;
fd = -1;
if (PyLong_Check(result)) {
@@ -165,7 +183,7 @@ faulthandler_get_fileno(PyObject *file, int *p_fd)
if (fd == -1) {
PyErr_SetString(PyExc_RuntimeError,
"file.fileno() is not a valid file descriptor");
- return NULL;
+ return -1;
}
result = _PyObject_CallMethodId(file, &PyId_flush, "");
@@ -175,8 +193,8 @@ faulthandler_get_fileno(PyObject *file, int *p_fd)
/* ignore flush() error */
PyErr_Clear();
}
- *p_fd = fd;
- return file;
+ *file_ptr = file;
+ return fd;
}
/* Get the state of the current thread: only call this function if the current
@@ -193,6 +211,42 @@ get_thread_state(void)
return tstate;
}
+static void
+faulthandler_dump_traceback(int fd, int all_threads,
+ PyInterpreterState *interp)
+{
+ static volatile int reentrant = 0;
+ PyThreadState *tstate;
+
+ if (reentrant)
+ return;
+
+ reentrant = 1;
+
+#ifdef WITH_THREAD
+ /* SIGSEGV, SIGFPE, SIGABRT, SIGBUS and SIGILL are synchronous signals and
+ are thus delivered to the thread that caused the fault. Get the Python
+ thread state of the current thread.
+
+ PyThreadState_Get() doesn't give the state of the thread that caused the
+ fault if the thread released the GIL, and so this function cannot be
+ used. Read the thread local storage (TLS) instead: call
+ PyGILState_GetThisThreadState(). */
+ tstate = PyGILState_GetThisThreadState();
+#else
+ tstate = PyThreadState_Get();
+#endif
+
+ if (all_threads)
+ _Py_DumpTracebackThreads(fd, interp, tstate);
+ else {
+ if (tstate != NULL)
+ _Py_DumpTraceback(fd, tstate);
+ }
+
+ reentrant = 0;
+}
+
static PyObject*
faulthandler_dump_traceback_py(PyObject *self,
PyObject *args, PyObject *kwargs)
@@ -209,8 +263,8 @@ faulthandler_dump_traceback_py(PyObject *self,
&file, &all_threads))
return NULL;
- file = faulthandler_get_fileno(file, &fd);
- if (file == NULL)
+ fd = faulthandler_get_fileno(&file);
+ if (fd < 0)
return NULL;
tstate = get_thread_state();
@@ -227,6 +281,10 @@ faulthandler_dump_traceback_py(PyObject *self,
else {
_Py_DumpTraceback(fd, tstate);
}
+
+ if (PyErr_CheckSignals())
+ return NULL;
+
Py_RETURN_NONE;
}
@@ -250,7 +308,6 @@ faulthandler_fatal_error(int signum)
const int fd = fatal_error.fd;
unsigned int i;
fault_handler_t *handler = NULL;
- PyThreadState *tstate;
int save_errno = errno;
if (!fatal_error.enabled)
@@ -278,26 +335,8 @@ faulthandler_fatal_error(int signum)
PUTS(fd, handler->name);
PUTS(fd, "\n\n");
-#ifdef WITH_THREAD
- /* SIGSEGV, SIGFPE, SIGABRT, SIGBUS and SIGILL are synchronous signals and
- are thus delivered to the thread that caused the fault. Get the Python
- thread state of the current thread.
-
- PyThreadState_Get() doesn't give the state of the thread that caused the
- fault if the thread released the GIL, and so this function cannot be
- used. Read the thread local storage (TLS) instead: call
- PyGILState_GetThisThreadState(). */
- tstate = PyGILState_GetThisThreadState();
-#else
- tstate = PyThreadState_Get();
-#endif
-
- if (fatal_error.all_threads)
- _Py_DumpTracebackThreads(fd, fatal_error.interp, tstate);
- else {
- if (tstate != NULL)
- _Py_DumpTraceback(fd, tstate);
- }
+ faulthandler_dump_traceback(fd, fatal_error.all_threads,
+ fatal_error.interp);
errno = save_errno;
#ifdef MS_WINDOWS
@@ -333,8 +372,8 @@ faulthandler_enable(PyObject *self, PyObject *args, PyObject *kwargs)
"|Oi:enable", kwlist, &file, &all_threads))
return NULL;
- file = faulthandler_get_fileno(file, &fd);
- if (file == NULL)
+ fd = faulthandler_get_fileno(&file);
+ if (fd < 0)
return NULL;
tstate = get_thread_state();
@@ -342,7 +381,7 @@ faulthandler_enable(PyObject *self, PyObject *args, PyObject *kwargs)
return NULL;
Py_XDECREF(fatal_error.file);
- Py_INCREF(file);
+ Py_XINCREF(file);
fatal_error.file = file;
fatal_error.fd = fd;
fatal_error.all_threads = all_threads;
@@ -452,9 +491,9 @@ faulthandler_thread(void *unused)
assert(st == PY_LOCK_FAILURE);
/* get the thread holding the GIL, NULL if no thread hold the GIL */
- current = _Py_atomic_load_relaxed(&_PyThreadState_Current);
+ current = (PyThreadState*)_Py_atomic_load_relaxed(&_PyThreadState_Current);
- write(thread.fd, thread.header, (int)thread.header_len);
+ _Py_write_noraise(thread.fd, thread.header, (int)thread.header_len);
errmsg = _Py_DumpTracebackThreads(thread.fd, thread.interp, current);
ok = (errmsg == NULL);
@@ -547,8 +586,8 @@ faulthandler_dump_traceback_later(PyObject *self,
if (tstate == NULL)
return NULL;
- file = faulthandler_get_fileno(file, &fd);
- if (file == NULL)
+ fd = faulthandler_get_fileno(&file);
+ if (fd < 0)
return NULL;
/* format the timeout */
@@ -561,7 +600,7 @@ faulthandler_dump_traceback_later(PyObject *self,
cancel_dump_traceback_later();
Py_XDECREF(thread.file);
- Py_INCREF(file);
+ Py_XINCREF(file);
thread.file = file;
thread.fd = fd;
thread.timeout_us = timeout_us;
@@ -640,28 +679,14 @@ static void
faulthandler_user(int signum)
{
user_signal_t *user;
- PyThreadState *tstate;
int save_errno = errno;
user = &user_signals[signum];
if (!user->enabled)
return;
-#ifdef WITH_THREAD
- /* PyThreadState_Get() doesn't give the state of the current thread if
- the thread doesn't hold the GIL. Read the thread local storage (TLS)
- instead: call PyGILState_GetThisThreadState(). */
- tstate = PyGILState_GetThisThreadState();
-#else
- tstate = PyThreadState_Get();
-#endif
+ faulthandler_dump_traceback(user->fd, user->all_threads, user->interp);
- if (user->all_threads)
- _Py_DumpTracebackThreads(user->fd, user->interp, tstate);
- else {
- if (tstate != NULL)
- _Py_DumpTraceback(user->fd, tstate);
- }
#ifdef HAVE_SIGACTION
if (user->chain) {
(void)sigaction(signum, &user->previous, NULL);
@@ -731,8 +756,8 @@ faulthandler_register_py(PyObject *self,
if (tstate == NULL)
return NULL;
- file = faulthandler_get_fileno(file, &fd);
- if (file == NULL)
+ fd = faulthandler_get_fileno(&file);
+ if (fd < 0)
return NULL;
if (user_signals == NULL) {
@@ -754,7 +779,7 @@ faulthandler_register_py(PyObject *self,
}
Py_XDECREF(user->file);
- Py_INCREF(file);
+ Py_XINCREF(file);
user->file = file;
user->fd = fd;
user->all_threads = all_threads;
@@ -804,12 +829,41 @@ faulthandler_unregister_py(PyObject *self, PyObject *args)
#endif /* FAULTHANDLER_USER */
+static void
+faulthandler_suppress_crash_report(void)
+{
+#ifdef MS_WINDOWS
+ UINT mode;
+
+ /* Configure Windows to not display the Windows Error Reporting dialog */
+ mode = SetErrorMode(SEM_NOGPFAULTERRORBOX);
+ SetErrorMode(mode | SEM_NOGPFAULTERRORBOX);
+#endif
+
+#ifdef HAVE_SYS_RESOURCE_H
+ struct rlimit rl;
+
+ /* Disable creation of core dump */
+ if (getrlimit(RLIMIT_CORE, &rl) != 0) {
+ rl.rlim_cur = 0;
+ setrlimit(RLIMIT_CORE, &rl);
+ }
+#endif
+
+#ifdef _MSC_VER
+ /* Visual Studio: configure abort() to not display an error message nor
+ open a popup asking to report the fault. */
+ _set_abort_behavior(0, _WRITE_ABORT_MSG | _CALL_REPORTFAULT);
+#endif
+}
+
static PyObject *
faulthandler_read_null(PyObject *self, PyObject *args)
{
volatile int *x;
volatile int y;
+ faulthandler_suppress_crash_report();
x = NULL;
y = *x;
return PyLong_FromLong(y);
@@ -819,6 +873,7 @@ faulthandler_read_null(PyObject *self, PyObject *args)
static void
faulthandler_raise_sigsegv(void)
{
+ faulthandler_suppress_crash_report();
#if defined(MS_WINDOWS)
/* For SIGSEGV, faulthandler_fatal_error() restores the previous signal
handler and then gives back the execution flow to the program (without
@@ -861,6 +916,7 @@ faulthandler_sigfpe(PyObject *self, PyObject *args)
/* Do an integer division by zero: raise a SIGFPE on Intel CPU, but not on
PowerPC. Use volatile to disable compile-time optimizations. */
volatile int x = 1, y = 0, z;
+ faulthandler_suppress_crash_report();
z = x / y;
/* If the division by zero didn't raise a SIGFPE (e.g. on PowerPC),
raise it manually. */
@@ -873,39 +929,18 @@ faulthandler_sigfpe(PyObject *self, PyObject *args)
static PyObject *
faulthandler_sigabrt(PyObject *self, PyObject *args)
{
-#ifdef _MSC_VER
- /* Visual Studio: configure abort() to not display an error message nor
- open a popup asking to report the fault. */
- _set_abort_behavior(0, _WRITE_ABORT_MSG | _CALL_REPORTFAULT);
-#endif
+ faulthandler_suppress_crash_report();
abort();
Py_RETURN_NONE;
}
-#ifdef SIGBUS
-static PyObject *
-faulthandler_sigbus(PyObject *self, PyObject *args)
-{
- raise(SIGBUS);
- Py_RETURN_NONE;
-}
-#endif
-
-#ifdef SIGILL
-static PyObject *
-faulthandler_sigill(PyObject *self, PyObject *args)
-{
- raise(SIGILL);
- Py_RETURN_NONE;
-}
-#endif
-
static PyObject *
faulthandler_fatal_error_py(PyObject *self, PyObject *args)
{
char *message;
if (!PyArg_ParseTuple(args, "y:fatal_error", &message))
return NULL;
+ faulthandler_suppress_crash_report();
Py_FatalError(message);
Py_RETURN_NONE;
}
@@ -939,6 +974,7 @@ faulthandler_stack_overflow(PyObject *self)
Py_uintptr_t sp = (Py_uintptr_t)&depth;
Py_uintptr_t stop;
+ faulthandler_suppress_crash_report();
depth = 0;
stop = stack_overflow(sp - STACK_OVERFLOW_MAX_SIZE,
sp + STACK_OVERFLOW_MAX_SIZE,
@@ -1028,14 +1064,6 @@ static PyMethodDef module_methods[] = {
PyDoc_STR("_sigabrt(): raise a SIGABRT signal")},
{"_sigfpe", (PyCFunction)faulthandler_sigfpe, METH_NOARGS,
PyDoc_STR("_sigfpe(): raise a SIGFPE signal")},
-#ifdef SIGBUS
- {"_sigbus", (PyCFunction)faulthandler_sigbus, METH_NOARGS,
- PyDoc_STR("_sigbus(): raise a SIGBUS signal")},
-#endif
-#ifdef SIGILL
- {"_sigill", (PyCFunction)faulthandler_sigill, METH_NOARGS,
- PyDoc_STR("_sigill(): raise a SIGILL signal")},
-#endif
{"_fatal_error", faulthandler_fatal_error_py, METH_VARARGS,
PyDoc_STR("_fatal_error(message): call Py_FatalError(message)")},
#if defined(HAVE_SIGALTSTACK) && defined(HAVE_SIGACTION)
diff --git a/Modules/fcntlmodule.c b/Modules/fcntlmodule.c
index 9325940965..97ff07c12e 100644
--- a/Modules/fcntlmodule.c
+++ b/Modules/fcntlmodule.c
@@ -15,6 +15,11 @@
#include <stropts.h>
#endif
+/*[clinic input]
+module fcntl
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=124b58387c158179]*/
+
static int
conv_descriptor(PyObject *object, int *target)
{
@@ -26,48 +31,72 @@ conv_descriptor(PyObject *object, int *target)
return 1;
}
+/* Must come after conv_descriptor definition. */
+#include "clinic/fcntlmodule.c.h"
+
+/*[clinic input]
+fcntl.fcntl
+
+ fd: object(type='int', converter='conv_descriptor')
+ cmd as code: int
+ arg: object(c_default='NULL') = 0
+ /
-/* fcntl(fd, op, [arg]) */
+Perform the operation `cmd` on file descriptor fd.
+
+The values used for `cmd` are operating system dependent, and are available
+as constants in the fcntl module, using the same names as used in
+the relevant C header files. The argument arg is optional, and
+defaults to 0; it may be an int or a string. If arg is given as a string,
+the return value of fcntl is a string of that length, containing the
+resulting value put in the arg buffer by the operating system. The length
+of the arg string is not allowed to exceed 1024 bytes. If the arg given
+is an integer or if none is specified, the result value is an integer
+corresponding to the return value of the fcntl call in the C code.
+[clinic start generated code]*/
static PyObject *
-fcntl_fcntl(PyObject *self, PyObject *args)
+fcntl_fcntl_impl(PyModuleDef *module, int fd, int code, PyObject *arg)
+/*[clinic end generated code: output=afc5bfa74a03ef0d input=8cefbe59b29efbe2]*/
{
- int fd;
- int code;
- int arg;
+ unsigned int int_arg = 0;
int ret;
char *str;
Py_ssize_t len;
char buf[1024];
- if (PyArg_ParseTuple(args, "O&is#:fcntl",
- conv_descriptor, &fd, &code, &str, &len)) {
- if (len > sizeof buf) {
- PyErr_SetString(PyExc_ValueError,
- "fcntl string arg too long");
- return NULL;
+ if (arg != NULL) {
+ int parse_result;
+
+ if (PyArg_Parse(arg, "s#", &str, &len)) {
+ if ((size_t)len > sizeof buf) {
+ PyErr_SetString(PyExc_ValueError,
+ "fcntl string arg too long");
+ return NULL;
+ }
+ memcpy(buf, str, len);
+ Py_BEGIN_ALLOW_THREADS
+ ret = fcntl(fd, code, buf);
+ Py_END_ALLOW_THREADS
+ if (ret < 0) {
+ PyErr_SetFromErrno(PyExc_IOError);
+ return NULL;
+ }
+ return PyBytes_FromStringAndSize(buf, len);
}
- memcpy(buf, str, len);
- Py_BEGIN_ALLOW_THREADS
- ret = fcntl(fd, code, buf);
- Py_END_ALLOW_THREADS
- if (ret < 0) {
- PyErr_SetFromErrno(PyExc_IOError);
- return NULL;
+
+ PyErr_Clear();
+ parse_result = PyArg_Parse(arg,
+ "I;fcntl requires a file or file descriptor,"
+ " an integer and optionally a third integer or a string",
+ &int_arg);
+ if (!parse_result) {
+ return NULL;
}
- return PyBytes_FromStringAndSize(buf, len);
}
- PyErr_Clear();
- arg = 0;
- if (!PyArg_ParseTuple(args,
- "O&i|I;fcntl requires a file or file descriptor,"
- " an integer and optionally a third integer or a string",
- conv_descriptor, &fd, &code, &arg)) {
- return NULL;
- }
Py_BEGIN_ALLOW_THREADS
- ret = fcntl(fd, code, arg);
+ ret = fcntl(fd, code, (int)int_arg);
Py_END_ALLOW_THREADS
if (ret < 0) {
PyErr_SetFromErrno(PyExc_IOError);
@@ -76,33 +105,54 @@ fcntl_fcntl(PyObject *self, PyObject *args)
return PyLong_FromLong((long)ret);
}
-PyDoc_STRVAR(fcntl_doc,
-"fcntl(fd, op, [arg])\n\
-\n\
-Perform the operation op on file descriptor fd. The values used\n\
-for op are operating system dependent, and are available\n\
-as constants in the fcntl module, using the same names as used in\n\
-the relevant C header files. The argument arg is optional, and\n\
-defaults to 0; it may be an int or a string. If arg is given as a string,\n\
-the return value of fcntl is a string of that length, containing the\n\
-resulting value put in the arg buffer by the operating system. The length\n\
-of the arg string is not allowed to exceed 1024 bytes. If the arg given\n\
-is an integer or if none is specified, the result value is an integer\n\
-corresponding to the return value of the fcntl call in the C code.");
+/*[clinic input]
+fcntl.ioctl
+
+ fd: object(type='int', converter='conv_descriptor')
+ request as code: unsigned_int(bitwise=True)
+ arg as ob_arg: object(c_default='NULL') = 0
+ mutate_flag as mutate_arg: bool = True
+ /
-/* ioctl(fd, op, [arg]) */
+Perform the operation `request` on file descriptor `fd`.
+
+The values used for `request` are operating system dependent, and are available
+as constants in the fcntl or termios library modules, using the same names as
+used in the relevant C header files.
+
+The argument `arg` is optional, and defaults to 0; it may be an int or a
+buffer containing character data (most likely a string or an array).
+
+If the argument is a mutable buffer (such as an array) and if the
+mutate_flag argument (which is only allowed in this case) is true then the
+buffer is (in effect) passed to the operating system and changes made by
+the OS will be reflected in the contents of the buffer after the call has
+returned. The return value is the integer returned by the ioctl system
+call.
+
+If the argument is a mutable buffer and the mutable_flag argument is false,
+the behavior is as if a string had been passed.
+
+If the argument is an immutable buffer (most likely a string) then a copy
+of the buffer is passed to the operating system and the return value is a
+string of the same length containing whatever the operating system put in
+the buffer. The length of the arg buffer in this case is not allowed to
+exceed 1024 bytes.
+
+If the arg given is an integer or if none is specified, the result value is
+an integer corresponding to the return value of the ioctl call in the C
+code.
+[clinic start generated code]*/
static PyObject *
-fcntl_ioctl(PyObject *self, PyObject *args)
+fcntl_ioctl_impl(PyModuleDef *module, int fd, unsigned int code,
+ PyObject *ob_arg, int mutate_arg)
+/*[clinic end generated code: output=102faa0f7ebe2210 input=ede70c433cccbbb2]*/
{
#define IOCTL_BUFSZ 1024
- int fd;
- /* In PyArg_ParseTuple below, we use the unsigned non-checked 'I'
- format for the 'code' parameter because Python turns 0x8000000
- into either a large positive number (PyLong or PyInt on 64-bit
- platforms) or a negative number on others (32-bit PyInt)
- whereas the system expects it to be a 32bit bit field value
+ /* We use the unsigned non-checked 'I' format for the 'code' parameter
+ because the system expects it to be a 32bit bit field value
regardless of it being passed as an int or unsigned long on
various platforms. See the termios.TIOCSWINSZ constant across
platforms for an example of this.
@@ -111,101 +161,98 @@ fcntl_ioctl(PyObject *self, PyObject *args)
in their unsigned long ioctl codes this will break and need
special casing based on the platform being built on.
*/
- unsigned int code;
- int arg;
+ int arg = 0;
int ret;
Py_buffer pstr;
char *str;
Py_ssize_t len;
- int mutate_arg = 1;
char buf[IOCTL_BUFSZ+1]; /* argument plus NUL byte */
- if (PyArg_ParseTuple(args, "O&Iw*|i:ioctl",
- conv_descriptor, &fd, &code,
- &pstr, &mutate_arg)) {
- char *arg;
- str = pstr.buf;
- len = pstr.len;
-
- if (mutate_arg) {
- if (len <= IOCTL_BUFSZ) {
- memcpy(buf, str, len);
- buf[len] = '\0';
- arg = buf;
+ if (ob_arg != NULL) {
+ if (PyArg_Parse(ob_arg, "w*:ioctl", &pstr)) {
+ char *arg;
+ str = pstr.buf;
+ len = pstr.len;
+
+ if (mutate_arg) {
+ if (len <= IOCTL_BUFSZ) {
+ memcpy(buf, str, len);
+ buf[len] = '\0';
+ arg = buf;
+ }
+ else {
+ arg = str;
+ }
+ }
+ else {
+ if (len > IOCTL_BUFSZ) {
+ PyBuffer_Release(&pstr);
+ PyErr_SetString(PyExc_ValueError,
+ "ioctl string arg too long");
+ return NULL;
+ }
+ else {
+ memcpy(buf, str, len);
+ buf[len] = '\0';
+ arg = buf;
+ }
+ }
+ if (buf == arg) {
+ Py_BEGIN_ALLOW_THREADS /* think array.resize() */
+ ret = ioctl(fd, code, arg);
+ Py_END_ALLOW_THREADS
+ }
+ else {
+ ret = ioctl(fd, code, arg);
+ }
+ if (mutate_arg && (len <= IOCTL_BUFSZ)) {
+ memcpy(str, buf, len);
+ }
+ PyBuffer_Release(&pstr); /* No further access to str below this point */
+ if (ret < 0) {
+ PyErr_SetFromErrno(PyExc_IOError);
+ return NULL;
+ }
+ if (mutate_arg) {
+ return PyLong_FromLong(ret);
}
else {
- arg = str;
+ return PyBytes_FromStringAndSize(buf, len);
}
}
- else {
+
+ PyErr_Clear();
+ if (PyArg_Parse(ob_arg, "s*:ioctl", &pstr)) {
+ str = pstr.buf;
+ len = pstr.len;
if (len > IOCTL_BUFSZ) {
PyBuffer_Release(&pstr);
PyErr_SetString(PyExc_ValueError,
- "ioctl string arg too long");
+ "ioctl string arg too long");
return NULL;
}
- else {
- memcpy(buf, str, len);
- buf[len] = '\0';
- arg = buf;
- }
- }
- if (buf == arg) {
- Py_BEGIN_ALLOW_THREADS /* think array.resize() */
- ret = ioctl(fd, code, arg);
+ memcpy(buf, str, len);
+ buf[len] = '\0';
+ Py_BEGIN_ALLOW_THREADS
+ ret = ioctl(fd, code, buf);
Py_END_ALLOW_THREADS
- }
- else {
- ret = ioctl(fd, code, arg);
- }
- if (mutate_arg && (len <= IOCTL_BUFSZ)) {
- memcpy(str, buf, len);
- }
- PyBuffer_Release(&pstr); /* No further access to str below this point */
- if (ret < 0) {
- PyErr_SetFromErrno(PyExc_IOError);
- return NULL;
- }
- if (mutate_arg) {
- return PyLong_FromLong(ret);
- }
- else {
+ if (ret < 0) {
+ PyBuffer_Release(&pstr);
+ PyErr_SetFromErrno(PyExc_IOError);
+ return NULL;
+ }
+ PyBuffer_Release(&pstr);
return PyBytes_FromStringAndSize(buf, len);
}
- }
- PyErr_Clear();
- if (PyArg_ParseTuple(args, "O&Is*:ioctl",
- conv_descriptor, &fd, &code, &pstr)) {
- str = pstr.buf;
- len = pstr.len;
- if (len > IOCTL_BUFSZ) {
- PyBuffer_Release(&pstr);
- PyErr_SetString(PyExc_ValueError,
- "ioctl string arg too long");
- return NULL;
+ PyErr_Clear();
+ if (!PyArg_Parse(ob_arg,
+ "i;ioctl requires a file or file descriptor,"
+ " an integer and optionally an integer or buffer argument",
+ &arg)) {
+ return NULL;
}
- memcpy(buf, str, len);
- buf[len] = '\0';
- Py_BEGIN_ALLOW_THREADS
- ret = ioctl(fd, code, buf);
- Py_END_ALLOW_THREADS
- if (ret < 0) {
- PyBuffer_Release(&pstr);
- PyErr_SetFromErrno(PyExc_IOError);
- return NULL;
- }
- PyBuffer_Release(&pstr);
- return PyBytes_FromStringAndSize(buf, len);
- }
-
- PyErr_Clear();
- arg = 0;
- if (!PyArg_ParseTuple(args,
- "O&I|i;ioctl requires a file or file descriptor,"
- " an integer and optionally an integer or buffer argument",
- conv_descriptor, &fd, &code, &arg)) {
- return NULL;
+ // Fall-through to outside the 'if' statement.
}
Py_BEGIN_ALLOW_THREADS
ret = ioctl(fd, code, arg);
@@ -218,52 +265,25 @@ fcntl_ioctl(PyObject *self, PyObject *args)
#undef IOCTL_BUFSZ
}
-PyDoc_STRVAR(ioctl_doc,
-"ioctl(fd, op[, arg[, mutate_flag]])\n\
-\n\
-Perform the operation op on file descriptor fd. The values used for op\n\
-are operating system dependent, and are available as constants in the\n\
-fcntl or termios library modules, using the same names as used in the\n\
-relevant C header files.\n\
-\n\
-The argument arg is optional, and defaults to 0; it may be an int or a\n\
-buffer containing character data (most likely a string or an array). \n\
-\n\
-If the argument is a mutable buffer (such as an array) and if the\n\
-mutate_flag argument (which is only allowed in this case) is true then the\n\
-buffer is (in effect) passed to the operating system and changes made by\n\
-the OS will be reflected in the contents of the buffer after the call has\n\
-returned. The return value is the integer returned by the ioctl system\n\
-call.\n\
-\n\
-If the argument is a mutable buffer and the mutable_flag argument is not\n\
-passed or is false, the behavior is as if a string had been passed. This\n\
-behavior will change in future releases of Python.\n\
-\n\
-If the argument is an immutable buffer (most likely a string) then a copy\n\
-of the buffer is passed to the operating system and the return value is a\n\
-string of the same length containing whatever the operating system put in\n\
-the buffer. The length of the arg buffer in this case is not allowed to\n\
-exceed 1024 bytes.\n\
-\n\
-If the arg given is an integer or if none is specified, the result value is\n\
-an integer corresponding to the return value of the ioctl call in the C\n\
-code.");
-
-
-/* flock(fd, operation) */
+/*[clinic input]
+fcntl.flock
+
+ fd: object(type='int', converter='conv_descriptor')
+ operation as code: int
+ /
+
+Perform the lock operation `operation` on file descriptor `fd`.
+
+See the Unix manual page for flock(2) for details (On some systems, this
+function is emulated using fcntl()).
+[clinic start generated code]*/
static PyObject *
-fcntl_flock(PyObject *self, PyObject *args)
+fcntl_flock_impl(PyModuleDef *module, int fd, int code)
+/*[clinic end generated code: output=c9035133a7dbfc96 input=b70a0a41ca22a8a0]*/
{
- int fd;
- int code;
int ret;
- if (!PyArg_ParseTuple(args, "O&i:flock",
- conv_descriptor, &fd, &code))
- return NULL;
-
#ifdef HAVE_FLOCK
Py_BEGIN_ALLOW_THREADS
ret = flock(fd, code);
@@ -299,29 +319,50 @@ fcntl_flock(PyObject *self, PyObject *args)
PyErr_SetFromErrno(PyExc_IOError);
return NULL;
}
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
-PyDoc_STRVAR(flock_doc,
-"flock(fd, operation)\n\
-\n\
-Perform the lock operation op on file descriptor fd. See the Unix \n\
-manual page for flock(2) for details. (On some systems, this function is\n\
-emulated using fcntl().)");
+/*[clinic input]
+fcntl.lockf
+
+ fd: object(type='int', converter='conv_descriptor')
+ cmd as code: int
+ len as lenobj: object(c_default='NULL') = 0
+ start as startobj: object(c_default='NULL') = 0
+ whence: int = 0
+ /
+
+A wrapper around the fcntl() locking calls.
+
+`fd` is the file descriptor of the file to lock or unlock, and operation is one
+of the following values:
+
+ LOCK_UN - unlock
+ LOCK_SH - acquire a shared lock
+ LOCK_EX - acquire an exclusive lock
+
+When operation is LOCK_SH or LOCK_EX, it can also be bitwise ORed with
+LOCK_NB to avoid blocking on lock acquisition. If LOCK_NB is used and the
+lock cannot be acquired, an IOError will be raised and the exception will
+have an errno attribute set to EACCES or EAGAIN (depending on the operating
+system -- for portability, check for either value).
+
+`len` is the number of bytes to lock, with the default meaning to lock to
+EOF. `start` is the byte offset, relative to `whence`, to that the lock
+starts. `whence` is as with fileobj.seek(), specifically:
+
+ 0 - relative to the start of the file (SEEK_SET)
+ 1 - relative to the current buffer position (SEEK_CUR)
+ 2 - relative to the end of the file (SEEK_END)
+[clinic start generated code]*/
-/* lockf(fd, operation) */
static PyObject *
-fcntl_lockf(PyObject *self, PyObject *args)
+fcntl_lockf_impl(PyModuleDef *module, int fd, int code, PyObject *lenobj,
+ PyObject *startobj, int whence)
+/*[clinic end generated code: output=31af35eba08b9af7 input=9c594391de821f24]*/
{
- int fd, code, ret, whence = 0;
- PyObject *lenobj = NULL, *startobj = NULL;
-
- if (!PyArg_ParseTuple(args, "O&i|OOi:lockf",
- conv_descriptor, &fd, &code,
- &lenobj, &startobj, &whence))
- return NULL;
+ int ret;
#ifndef LOCK_SH
#define LOCK_SH 1 /* shared lock */
@@ -374,43 +415,17 @@ fcntl_lockf(PyObject *self, PyObject *args)
PyErr_SetFromErrno(PyExc_IOError);
return NULL;
}
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
-PyDoc_STRVAR(lockf_doc,
-"lockf (fd, operation, length=0, start=0, whence=0)\n\
-\n\
-This is essentially a wrapper around the fcntl() locking calls. fd is the\n\
-file descriptor of the file to lock or unlock, and operation is one of the\n\
-following values:\n\
-\n\
- LOCK_UN - unlock\n\
- LOCK_SH - acquire a shared lock\n\
- LOCK_EX - acquire an exclusive lock\n\
-\n\
-When operation is LOCK_SH or LOCK_EX, it can also be bitwise ORed with\n\
-LOCK_NB to avoid blocking on lock acquisition. If LOCK_NB is used and the\n\
-lock cannot be acquired, an IOError will be raised and the exception will\n\
-have an errno attribute set to EACCES or EAGAIN (depending on the operating\n\
-system -- for portability, check for either value).\n\
-\n\
-length is the number of bytes to lock, with the default meaning to lock to\n\
-EOF. start is the byte offset, relative to whence, to that the lock\n\
-starts. whence is as with fileobj.seek(), specifically:\n\
-\n\
- 0 - relative to the start of the file (SEEK_SET)\n\
- 1 - relative to the current buffer position (SEEK_CUR)\n\
- 2 - relative to the end of the file (SEEK_END)");
-
/* List of functions */
static PyMethodDef fcntl_methods[] = {
- {"fcntl", fcntl_fcntl, METH_VARARGS, fcntl_doc},
- {"ioctl", fcntl_ioctl, METH_VARARGS, ioctl_doc},
- {"flock", fcntl_flock, METH_VARARGS, flock_doc},
- {"lockf", fcntl_lockf, METH_VARARGS, lockf_doc},
- {NULL, NULL} /* sentinel */
+ FCNTL_FCNTL_METHODDEF
+ FCNTL_IOCTL_METHODDEF
+ FCNTL_FLOCK_METHODDEF
+ FCNTL_LOCKF_METHODDEF
+ {NULL, NULL} /* sentinel */
};
diff --git a/Modules/gcmodule.c b/Modules/gcmodule.c
index 9bb3666e1a..cb7222db89 100644
--- a/Modules/gcmodule.c
+++ b/Modules/gcmodule.c
@@ -25,6 +25,7 @@
#include "Python.h"
#include "frameobject.h" /* for PyFrame_ClearFreeList */
+#include "pytime.h" /* for _PyTime_GetMonotonicClock() */
/* Get an object's GC head */
#define AS_GC(o) ((PyGC_Head *)(o)-1)
@@ -166,7 +167,6 @@ static Py_ssize_t long_lived_pending = 0;
DEBUG_UNCOLLECTABLE | \
DEBUG_SAVEALL
static int debug;
-static PyObject *tmod = NULL;
/* Running stats per generation */
struct gc_generation_stats {
@@ -894,26 +894,6 @@ clear_freelists(void)
(void)PySet_ClearFreeList();
}
-static double
-get_time(void)
-{
- double result = 0;
- if (tmod != NULL) {
- _Py_IDENTIFIER(time);
-
- PyObject *f = _PyObject_CallMethodId(tmod, &PyId_time, NULL);
- if (f == NULL) {
- PyErr_Clear();
- }
- else {
- if (PyFloat_Check(f))
- result = PyFloat_AsDouble(f);
- Py_DECREF(f);
- }
- }
- return result;
-}
-
/* This is the main function. Read this to understand how the
* collection process works. */
static Py_ssize_t
@@ -928,7 +908,8 @@ collect(int generation, Py_ssize_t *n_collected, Py_ssize_t *n_uncollectable,
PyGC_Head unreachable; /* non-problematic unreachable trash */
PyGC_Head finalizers; /* objects with, & reachable from, __del__ */
PyGC_Head *gc;
- double t1 = 0.0;
+ _PyTime_t t1 = 0; /* initialize to prevent a compiler warning */
+
struct gc_generation_stats *stats = &generation_stats[generation];
if (debug & DEBUG_STATS) {
@@ -936,9 +917,10 @@ collect(int generation, Py_ssize_t *n_collected, Py_ssize_t *n_uncollectable,
generation);
PySys_WriteStderr("gc: objects in each generation:");
for (i = 0; i < NUM_GENERATIONS; i++)
- PySys_WriteStderr(" %" PY_FORMAT_SIZE_T "d",
+ PySys_FormatStderr(" %zd",
gc_list_size(GEN_HEAD(i)));
- t1 = get_time();
+ t1 = _PyTime_GetMonotonicClock();
+
PySys_WriteStderr("\n");
}
@@ -1042,19 +1024,16 @@ collect(int generation, Py_ssize_t *n_collected, Py_ssize_t *n_uncollectable,
debug_cycle("uncollectable", FROM_GC(gc));
}
if (debug & DEBUG_STATS) {
- double t2 = get_time();
+ _PyTime_t t2 = _PyTime_GetMonotonicClock();
+
if (m == 0 && n == 0)
PySys_WriteStderr("gc: done");
else
- PySys_WriteStderr(
- "gc: done, "
- "%" PY_FORMAT_SIZE_T "d unreachable, "
- "%" PY_FORMAT_SIZE_T "d uncollectable",
+ PySys_FormatStderr(
+ "gc: done, %zd unreachable, %zd uncollectable",
n+m, n);
- if (t1 && t2) {
- PySys_WriteStderr(", %.4fs elapsed", t2-t1);
- }
- PySys_WriteStderr(".\n");
+ PySys_WriteStderr(", %.4fs elapsed\n",
+ _PyTime_AsSecondsDouble(t2 - t1));
}
/* Append instances in the uncollectable set to a Python
@@ -1581,18 +1560,6 @@ PyInit_gc(void)
if (PyModule_AddObject(m, "callbacks", callbacks) < 0)
return NULL;
- /* Importing can't be done in collect() because collect()
- * can be called via PyGC_Collect() in Py_Finalize().
- * This wouldn't be a problem, except that <initialized> is
- * reset to 0 before calling collect which trips up
- * the import and triggers an assertion.
- */
- if (tmod == NULL) {
- tmod = PyImport_ImportModuleNoBlock("time");
- if (tmod == NULL)
- PyErr_Clear();
- }
-
#define ADD_INT(NAME) if (PyModule_AddIntConstant(m, #NAME, NAME) < 0) return NULL
ADD_INT(DEBUG_STATS);
ADD_INT(DEBUG_COLLECTABLE);
@@ -1681,7 +1648,6 @@ void
_PyGC_Fini(void)
{
Py_CLEAR(callbacks);
- Py_CLEAR(tmod);
}
/* for debugging */
@@ -1715,15 +1681,19 @@ PyObject_GC_UnTrack(void *op)
_PyObject_GC_UNTRACK(op);
}
-PyObject *
-_PyObject_GC_Malloc(size_t basicsize)
+static PyObject *
+_PyObject_GC_Alloc(int use_calloc, size_t basicsize)
{
PyObject *op;
PyGC_Head *g;
+ size_t size;
if (basicsize > PY_SSIZE_T_MAX - sizeof(PyGC_Head))
return PyErr_NoMemory();
- g = (PyGC_Head *)PyObject_MALLOC(
- sizeof(PyGC_Head) + basicsize);
+ size = sizeof(PyGC_Head) + basicsize;
+ if (use_calloc)
+ g = (PyGC_Head *)PyObject_Calloc(1, size);
+ else
+ g = (PyGC_Head *)PyObject_Malloc(size);
if (g == NULL)
return PyErr_NoMemory();
g->gc.gc_refs = 0;
@@ -1743,6 +1713,18 @@ _PyObject_GC_Malloc(size_t basicsize)
}
PyObject *
+_PyObject_GC_Malloc(size_t basicsize)
+{
+ return _PyObject_GC_Alloc(0, basicsize);
+}
+
+PyObject *
+_PyObject_GC_Calloc(size_t basicsize)
+{
+ return _PyObject_GC_Alloc(1, basicsize);
+}
+
+PyObject *
_PyObject_GC_New(PyTypeObject *tp)
{
PyObject *op = _PyObject_GC_Malloc(_PyObject_SIZE(tp));
diff --git a/Modules/getpath.c b/Modules/getpath.c
index 13e3817260..03d292c18b 100644
--- a/Modules/getpath.c
+++ b/Modules/getpath.c
@@ -131,6 +131,23 @@ static wchar_t exec_prefix[MAXPATHLEN+1];
static wchar_t progpath[MAXPATHLEN+1];
static wchar_t *module_search_path = NULL;
+/* Get file status. Encode the path to the locale encoding. */
+
+static int
+_Py_wstat(const wchar_t* path, struct stat *buf)
+{
+ int err;
+ char *fname;
+ fname = Py_EncodeLocale(path, NULL);
+ if (fname == NULL) {
+ errno = EINVAL;
+ return -1;
+ }
+ err = stat(fname, buf);
+ PyMem_Free(fname);
+ return err;
+}
+
static void
reduce(wchar_t *dir)
{
@@ -153,14 +170,14 @@ isfile(wchar_t *filename) /* Is file, not directory */
static int
-ismodule(wchar_t *filename) /* Is module -- check for .pyc/.pyo too */
+ismodule(wchar_t *filename) /* Is module -- check for .pyc too */
{
if (isfile(filename))
return 1;
/* Check for the compiled version of prefix. */
if (wcslen(filename) < MAXPATHLEN) {
- wcscat(filename, Py_OptimizeFlag ? L"o" : L"c");
+ wcscat(filename, L"c");
if (isfile(filename))
return 1;
}
@@ -336,7 +353,7 @@ search_for_prefix(wchar_t *argv0_path, wchar_t *home, wchar_t *_prefix,
joinpath(prefix, L"Modules/Setup");
if (isfile(prefix)) {
/* Check VPATH to see if argv0_path is in the build directory. */
- vpath = _Py_char2wchar(VPATH, NULL);
+ vpath = Py_DecodeLocale(VPATH, NULL);
if (vpath != NULL) {
wcsncpy(prefix, argv0_path, MAXPATHLEN);
prefix[MAXPATHLEN] = L'\0';
@@ -491,10 +508,10 @@ calculate_path(void)
wchar_t *_pythonpath, *_prefix, *_exec_prefix;
wchar_t *lib_python;
- _pythonpath = _Py_char2wchar(PYTHONPATH, NULL);
- _prefix = _Py_char2wchar(PREFIX, NULL);
- _exec_prefix = _Py_char2wchar(EXEC_PREFIX, NULL);
- lib_python = _Py_char2wchar("lib/python" VERSION, NULL);
+ _pythonpath = Py_DecodeLocale(PYTHONPATH, NULL);
+ _prefix = Py_DecodeLocale(PREFIX, NULL);
+ _exec_prefix = Py_DecodeLocale(EXEC_PREFIX, NULL);
+ lib_python = Py_DecodeLocale("lib/python" VERSION, NULL);
if (!_pythonpath || !_prefix || !_exec_prefix || !lib_python) {
Py_FatalError(
@@ -503,7 +520,7 @@ calculate_path(void)
}
if (_path) {
- path_buffer = _Py_char2wchar(_path, NULL);
+ path_buffer = Py_DecodeLocale(_path, NULL);
path = path_buffer;
}
@@ -584,7 +601,7 @@ calculate_path(void)
** be running the interpreter in the build directory, so we use the
** build-directory-specific logic to find Lib and such.
*/
- wchar_t* wbuf = _Py_char2wchar(modPath, NULL);
+ wchar_t* wbuf = Py_DecodeLocale(modPath, NULL);
if (wbuf == NULL) {
Py_FatalError("Cannot decode framework location");
}
@@ -709,7 +726,7 @@ calculate_path(void)
if (_rtpypath && _rtpypath[0] != '\0') {
size_t rtpypath_len;
- rtpypath = _Py_char2wchar(_rtpypath, &rtpypath_len);
+ rtpypath = Py_DecodeLocale(_rtpypath, &rtpypath_len);
if (rtpypath != NULL)
bufsz += rtpypath_len + 1;
}
@@ -874,4 +891,3 @@ Py_GetProgramFullPath(void)
#ifdef __cplusplus
}
#endif
-
diff --git a/Modules/grpmodule.c b/Modules/grpmodule.c
index da78253ccb..403e434697 100644
--- a/Modules/grpmodule.c
+++ b/Modules/grpmodule.c
@@ -6,6 +6,12 @@
#include <grp.h>
+#include "clinic/grpmodule.c.h"
+/*[clinic input]
+module grp
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=cade63f2ed1bd9f8]*/
+
static PyStructSequence_Field struct_group_type_fields[] = {
{"gr_name", "group name"},
{"gr_passwd", "password"},
@@ -76,14 +82,25 @@ mkgrent(struct group *p)
return v;
}
+/*[clinic input]
+grp.getgrgid
+
+ id: object
+
+Return the group database entry for the given numeric group ID.
+
+If id is not valid, raise KeyError.
+[clinic start generated code]*/
+
static PyObject *
-grp_getgrgid(PyObject *self, PyObject *pyo_id)
+grp_getgrgid_impl(PyModuleDef *module, PyObject *id)
+/*[clinic end generated code: output=8a11f5fdeb8c78a0 input=15fa0e2ccf5cda25]*/
{
PyObject *py_int_id;
gid_t gid;
struct group *p;
- py_int_id = PyNumber_Long(pyo_id);
+ py_int_id = PyNumber_Long(id);
if (!py_int_id)
return NULL;
if (!_Py_Gid_Converter(py_int_id, &gid)) {
@@ -103,22 +120,31 @@ grp_getgrgid(PyObject *self, PyObject *pyo_id)
return mkgrent(p);
}
+/*[clinic input]
+grp.getgrnam
+
+ name: unicode
+
+Return the group database entry for the given group name.
+
+If name is not valid, raise KeyError.
+[clinic start generated code]*/
+
static PyObject *
-grp_getgrnam(PyObject *self, PyObject *args)
+grp_getgrnam_impl(PyModuleDef *module, PyObject *name)
+/*[clinic end generated code: output=cd47511f4854da8e input=08ded29affa3c863]*/
{
- char *name;
+ char *name_chars;
struct group *p;
- PyObject *arg, *bytes, *retval = NULL;
+ PyObject *bytes, *retval = NULL;
- if (!PyArg_ParseTuple(args, "U:getgrnam", &arg))
- return NULL;
- if ((bytes = PyUnicode_EncodeFSDefault(arg)) == NULL)
+ if ((bytes = PyUnicode_EncodeFSDefault(name)) == NULL)
return NULL;
- if (PyBytes_AsStringAndSize(bytes, &name, NULL) == -1)
+ if (PyBytes_AsStringAndSize(bytes, &name_chars, NULL) == -1)
goto out;
- if ((p = getgrnam(name)) == NULL) {
- PyErr_Format(PyExc_KeyError, "getgrnam(): name not found: %s", name);
+ if ((p = getgrnam(name_chars)) == NULL) {
+ PyErr_Format(PyExc_KeyError, "getgrnam(): name not found: %s", name_chars);
goto out;
}
retval = mkgrent(p);
@@ -127,8 +153,18 @@ out:
return retval;
}
+/*[clinic input]
+grp.getgrall
+
+Return a list of all available group entries, in arbitrary order.
+
+An entry whose name starts with '+' or '-' represents an instruction
+to use YP/NIS and may not be accessible via getgrnam or getgrgid.
+[clinic start generated code]*/
+
static PyObject *
-grp_getgrall(PyObject *self, PyObject *ignore)
+grp_getgrall_impl(PyModuleDef *module)
+/*[clinic end generated code: output=add9037a20c202de input=d7df76c825c367df]*/
{
PyObject *d;
struct group *p;
@@ -151,20 +187,10 @@ grp_getgrall(PyObject *self, PyObject *ignore)
}
static PyMethodDef grp_methods[] = {
- {"getgrgid", grp_getgrgid, METH_O,
- "getgrgid(id) -> (gr_name,gr_passwd,gr_gid,gr_mem)\n\
-Return the group database entry for the given numeric group ID. If\n\
-id is not valid, raise KeyError."},
- {"getgrnam", grp_getgrnam, METH_VARARGS,
- "getgrnam(name) -> (gr_name,gr_passwd,gr_gid,gr_mem)\n\
-Return the group database entry for the given group name. If\n\
-name is not valid, raise KeyError."},
- {"getgrall", grp_getgrall, METH_NOARGS,
- "getgrall() -> list of tuples\n\
-Return a list of all available group entries, in arbitrary order.\n\
-An entry whose name starts with '+' or '-' represents an instruction\n\
-to use YP/NIS and may not be accessible via getgrnam or getgrgid."},
- {NULL, NULL} /* sentinel */
+ GRP_GETGRGID_METHODDEF
+ GRP_GETGRNAM_METHODDEF
+ GRP_GETGRALL_METHODDEF
+ {NULL, NULL}
};
PyDoc_STRVAR(grp__doc__,
diff --git a/Modules/itertoolsmodule.c b/Modules/itertoolsmodule.c
index 4693fbcc51..16ac2fb5f4 100644
--- a/Modules/itertoolsmodule.c
+++ b/Modules/itertoolsmodule.c
@@ -3884,7 +3884,7 @@ typedef struct {
fast_mode: when cnt an integer < PY_SSIZE_T_MAX and no step is specified.
- assert(cnt != PY_SSIZE_T_MAX && long_cnt == NULL && long_step==PyInt(1));
+ assert(cnt != PY_SSIZE_T_MAX && long_cnt == NULL && long_step==PyLong(1));
Advances with: cnt += 1
When count hits Y_SSIZE_T_MAX, switch to slow_mode.
diff --git a/Modules/ld_so_aix.in b/Modules/ld_so_aix.in
index 86a9f7e15e..961532bb91 100644
--- a/Modules/ld_so_aix.in
+++ b/Modules/ld_so_aix.in
@@ -5,7 +5,7 @@
# TYPE: executable, uses makexp_aix
# SYSTEM: AIX
#
-# DESCRIPTION: Creates a shareable .o from a set of pre-compiled
+# DESCRIPTION: Creates a shareable .o from a set of pre-compiled
# (unshared) .o files
#
# USAGE: ld_so_aix [CC] [arguments]
@@ -46,7 +46,7 @@
# 4. Uncommenting the "echo" lines gives detailed output
# about the commands executed in the script.
#
-#
+#
# HISTORY: Oct-1996 -- Support added for multiple .o files --
# -- and optional arguments processing. --
# Chris Myers (myers@tc.cornell.edu), Keith Kwok
@@ -132,7 +132,7 @@ do
done
if test "$objfile" = "libpython@VERSION@@ABIFLAGS@.so"; then
- ldsocoremode="true"
+ ldsocoremode="true"
fi
if test -z "$objs"; then
diff --git a/Modules/main.c b/Modules/main.c
index 87a21d7c30..2a9ea2882c 100644
--- a/Modules/main.c
+++ b/Modules/main.c
@@ -9,7 +9,6 @@
#include <windows.h>
#ifdef HAVE_FCNTL_H
#include <fcntl.h>
-#define PATH_MAX MAXPATHLEN
#endif
#endif
@@ -343,6 +342,8 @@ Py_Main(int argc, wchar_t **argv)
int version = 0;
int saw_unbuffered_flag = 0;
PyCompilerFlags cf;
+ PyObject *warning_option = NULL;
+ PyObject *warning_options = NULL;
cf.cf_flags = 0;
@@ -465,7 +466,15 @@ Py_Main(int argc, wchar_t **argv)
break;
case 'W':
- PySys_AddWarnOption(_PyOS_optarg);
+ if (warning_options == NULL)
+ warning_options = PyList_New(0);
+ if (warning_options == NULL)
+ Py_FatalError("failure in handling of -W argument");
+ warning_option = PyUnicode_FromWideChar(_PyOS_optarg, -1);
+ if (warning_option == NULL)
+ Py_FatalError("failure in handling of -W argument");
+ PyList_Append(warning_options, warning_option);
+ Py_DECREF(warning_option);
break;
case 'X':
@@ -511,16 +520,16 @@ Py_Main(int argc, wchar_t **argv)
#ifdef MS_WINDOWS
if (!Py_IgnoreEnvironmentFlag && (wp = _wgetenv(L"PYTHONWARNINGS")) &&
*wp != L'\0') {
- wchar_t *buf, *warning;
+ wchar_t *buf, *warning, *context = NULL;
buf = (wchar_t *)PyMem_RawMalloc((wcslen(wp) + 1) * sizeof(wchar_t));
if (buf == NULL)
Py_FatalError(
"not enough memory to copy PYTHONWARNINGS");
wcscpy(buf, wp);
- for (warning = wcstok(buf, L",");
+ for (warning = wcstok_s(buf, L",", &context);
warning != NULL;
- warning = wcstok(NULL, L",")) {
+ warning = wcstok_s(NULL, L",", &context)) {
PySys_AddWarnOption(warning);
}
PyMem_RawFree(buf);
@@ -559,6 +568,12 @@ Py_Main(int argc, wchar_t **argv)
PyMem_RawFree(buf);
}
#endif
+ if (warning_options != NULL) {
+ Py_ssize_t i;
+ for (i = 0; i < PyList_GET_SIZE(warning_options); i++) {
+ PySys_AddWarnOptionUnicode(PyList_GET_ITEM(warning_options, i));
+ }
+ }
if (command == NULL && module == NULL && _PyOS_optind < argc &&
wcscmp(argv[_PyOS_optind], L"-") != 0)
@@ -631,7 +646,7 @@ Py_Main(int argc, wchar_t **argv)
/* Used by Mac/Tools/pythonw.c to forward
* the argv0 of the stub executable
*/
- wchar_t* wbuf = _Py_char2wchar(pyvenv_launcher, NULL);
+ wchar_t* wbuf = Py_DecodeLocale(pyvenv_launcher, NULL);
if (wbuf == NULL) {
Py_FatalError("Cannot decode __PYVENV_LAUNCHER__");
@@ -652,6 +667,7 @@ Py_Main(int argc, wchar_t **argv)
Py_SetProgramName(argv[0]);
#endif
Py_Initialize();
+ Py_XDECREF(warning_options);
if (!Py_QuietFlag && (Py_VerboseFlag ||
(command == NULL && filename == NULL &&
@@ -713,7 +729,7 @@ Py_Main(int argc, wchar_t **argv)
char *cfilename_buffer;
const char *cfilename;
int err = errno;
- cfilename_buffer = _Py_wchar2char(filename, NULL);
+ cfilename_buffer = Py_EncodeLocale(filename, NULL);
if (cfilename_buffer != NULL)
cfilename = cfilename_buffer;
else
@@ -736,11 +752,12 @@ Py_Main(int argc, wchar_t **argv)
}
}
{
- /* XXX: does this work on Win/Win64? (see posix_fstat) */
- struct stat sb;
- if (fstat(fileno(fp), &sb) == 0 &&
+ struct _Py_stat_struct sb;
+ if (_Py_fstat_noraise(fileno(fp), &sb) == 0 &&
S_ISDIR(sb.st_mode)) {
- fprintf(stderr, "%ls: '%ls' is a directory, cannot continue\n", argv[0], filename);
+ fprintf(stderr,
+ "%ls: '%ls' is a directory, cannot continue\n",
+ argv[0], filename);
fclose(fp);
return 1;
}
diff --git a/Modules/makesetup b/Modules/makesetup
index 8b5cc28bba..90db42e4b2 100755
--- a/Modules/makesetup
+++ b/Modules/makesetup
@@ -266,7 +266,7 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' |
*) sed -e "
1i$NL/* Generated automatically from $config by makesetup. */
/MARKER 1/i$NL$EXTDECLS
-
+
/MARKER 2/i$NL$INITBITS
" $config >config.c
diff --git a/Modules/mathmodule.c b/Modules/mathmodule.c
index 243e2a333b..9359eb2b3a 100644
--- a/Modules/mathmodule.c
+++ b/Modules/mathmodule.c
@@ -223,6 +223,35 @@ lanczos_sum(double x)
return num/den;
}
+/* Constant for +infinity, generated in the same way as float('inf'). */
+
+static double
+m_inf(void)
+{
+#ifndef PY_NO_SHORT_FLOAT_REPR
+ return _Py_dg_infinity(0);
+#else
+ return Py_HUGE_VAL;
+#endif
+}
+
+/* Constant nan value, generated in the same way as float('nan'). */
+/* We don't currently assume that Py_NAN is defined everywhere. */
+
+#if !defined(PY_NO_SHORT_FLOAT_REPR) || defined(Py_NAN)
+
+static double
+m_nan(void)
+{
+#ifndef PY_NO_SHORT_FLOAT_REPR
+ return _Py_dg_stdnan(0);
+#else
+ return Py_NAN;
+#endif
+}
+
+#endif
+
static double
m_tgamma(double x)
{
@@ -656,6 +685,33 @@ m_log10(double x)
}
+static PyObject *
+math_gcd(PyObject *self, PyObject *args)
+{
+ PyObject *a, *b, *g;
+
+ if (!PyArg_ParseTuple(args, "OO:gcd", &a, &b))
+ return NULL;
+
+ a = PyNumber_Index(a);
+ if (a == NULL)
+ return NULL;
+ b = PyNumber_Index(b);
+ if (b == NULL) {
+ Py_DECREF(a);
+ return NULL;
+ }
+ g = _PyLong_GCD(a, b);
+ Py_DECREF(a);
+ Py_DECREF(b);
+ return g;
+}
+
+PyDoc_STRVAR(math_gcd_doc,
+"gcd(x, y) -> int\n\
+greatest common divisor of x and y");
+
+
/* Call is_error when errno != 0, and where x is the result libm
* returned. is_error will usually set up an exception and return
* true (1), but may return false (0) without setting up an exception.
@@ -1010,7 +1066,7 @@ _fsum_realloc(double **p_ptr, Py_ssize_t n,
Py_ssize_t m = *m_ptr;
m += m; /* double */
- if (n < m && m < (PY_SSIZE_T_MAX / sizeof(double))) {
+ if (n < m && (size_t)m < ((size_t)PY_SSIZE_T_MAX / sizeof(double))) {
double *p = *p_ptr;
if (p == ps) {
v = PyMem_Malloc(sizeof(double) * m);
@@ -1408,6 +1464,7 @@ static PyObject *
math_factorial(PyObject *self, PyObject *arg)
{
long x;
+ int overflow;
PyObject *result, *odd_part, *two_valuation;
if (PyFloat_Check(arg)) {
@@ -1421,15 +1478,22 @@ math_factorial(PyObject *self, PyObject *arg)
lx = PyLong_FromDouble(dx);
if (lx == NULL)
return NULL;
- x = PyLong_AsLong(lx);
+ x = PyLong_AsLongAndOverflow(lx, &overflow);
Py_DECREF(lx);
}
else
- x = PyLong_AsLong(arg);
+ x = PyLong_AsLongAndOverflow(arg, &overflow);
- if (x == -1 && PyErr_Occurred())
+ if (x == -1 && PyErr_Occurred()) {
return NULL;
- if (x < 0) {
+ }
+ else if (overflow == 1) {
+ PyErr_Format(PyExc_OverflowError,
+ "factorial() argument should not exceed %ld",
+ LONG_MAX);
+ return NULL;
+ }
+ else if (overflow == -1 || x < 0) {
PyErr_SetString(PyExc_ValueError,
"factorial() not defined for negative values");
return NULL;
@@ -1926,6 +1990,83 @@ PyDoc_STRVAR(math_isinf_doc,
"isinf(x) -> bool\n\n\
Return True if x is a positive or negative infinity, and False otherwise.");
+static PyObject *
+math_isclose(PyObject *self, PyObject *args, PyObject *kwargs)
+{
+ double a, b;
+ double rel_tol = 1e-9;
+ double abs_tol = 0.0;
+ double diff = 0.0;
+ long result = 0;
+
+ static char *keywords[] = {"a", "b", "rel_tol", "abs_tol", NULL};
+
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "dd|$dd:isclose",
+ keywords,
+ &a, &b, &rel_tol, &abs_tol
+ ))
+ return NULL;
+
+ /* sanity check on the inputs */
+ if (rel_tol < 0.0 || abs_tol < 0.0 ) {
+ PyErr_SetString(PyExc_ValueError,
+ "tolerances must be non-negative");
+ return NULL;
+ }
+
+ if ( a == b ) {
+ /* short circuit exact equality -- needed to catch two infinities of
+ the same sign. And perhaps speeds things up a bit sometimes.
+ */
+ Py_RETURN_TRUE;
+ }
+
+ /* This catches the case of two infinities of opposite sign, or
+ one infinity and one finite number. Two infinities of opposite
+ sign would otherwise have an infinite relative tolerance.
+ Two infinities of the same sign are caught by the equality check
+ above.
+ */
+
+ if (Py_IS_INFINITY(a) || Py_IS_INFINITY(b)) {
+ Py_RETURN_FALSE;
+ }
+
+ /* now do the regular computation
+ this is essentially the "weak" test from the Boost library
+ */
+
+ diff = fabs(b - a);
+
+ result = (((diff <= fabs(rel_tol * b)) ||
+ (diff <= fabs(rel_tol * a))) ||
+ (diff <= abs_tol));
+
+ return PyBool_FromLong(result);
+}
+
+PyDoc_STRVAR(math_isclose_doc,
+"is_close(a, b, *, rel_tol=1e-09, abs_tol=0.0) -> bool\n"
+"\n"
+"Determine whether two floating point numbers are close in value.\n"
+"\n"
+" rel_tol\n"
+" maximum difference for being considered \"close\", relative to the\n"
+" magnitude of the input values\n"
+" abs_tol\n"
+" maximum difference for being considered \"close\", regardless of the\n"
+" magnitude of the input values\n"
+"\n"
+"Return True if a is close in value to b, and False otherwise.\n"
+"\n"
+"For the values to be considered close, the difference between them\n"
+"must be smaller than at least one of the tolerances.\n"
+"\n"
+"-inf, inf and NaN behave similarly to the IEEE 754 Standard. That\n"
+"is, NaN is not close to anything, even itself. inf and -inf are\n"
+"only close to themselves.");
+
static PyMethodDef math_methods[] = {
{"acos", math_acos, METH_O, math_acos_doc},
{"acosh", math_acosh, METH_O, math_acosh_doc},
@@ -1950,7 +2091,10 @@ static PyMethodDef math_methods[] = {
{"frexp", math_frexp, METH_O, math_frexp_doc},
{"fsum", math_fsum, METH_O, math_fsum_doc},
{"gamma", math_gamma, METH_O, math_gamma_doc},
+ {"gcd", math_gcd, METH_VARARGS, math_gcd_doc},
{"hypot", math_hypot, METH_VARARGS, math_hypot_doc},
+ {"isclose", (PyCFunction) math_isclose, METH_VARARGS | METH_KEYWORDS,
+ math_isclose_doc},
{"isfinite", math_isfinite, METH_O, math_isfinite_doc},
{"isinf", math_isinf, METH_O, math_isinf_doc},
{"isnan", math_isnan, METH_O, math_isnan_doc},
@@ -2001,7 +2145,11 @@ PyInit_math(void)
PyModule_AddObject(m, "pi", PyFloat_FromDouble(Py_MATH_PI));
PyModule_AddObject(m, "e", PyFloat_FromDouble(Py_MATH_E));
+ PyModule_AddObject(m, "inf", PyFloat_FromDouble(m_inf()));
+#if !defined(PY_NO_SHORT_FLOAT_REPR) || defined(Py_NAN)
+ PyModule_AddObject(m, "nan", PyFloat_FromDouble(m_nan()));
+#endif
- finally:
+ finally:
return m;
}
diff --git a/Modules/md5module.c b/Modules/md5module.c
index 5cb3d36c9b..a9ebc8cc51 100644
--- a/Modules/md5module.c
+++ b/Modules/md5module.c
@@ -18,7 +18,13 @@
#include "Python.h"
#include "hashlib.h"
+#include "pystrhex.h"
+/*[clinic input]
+module _md5
+class MD5Type "MD5object *" "&PyType_Type"
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=6e5261719957a912]*/
/* Some useful types */
@@ -48,6 +54,7 @@ typedef struct {
struct md5_state hash_state;
} MD5object;
+#include "clinic/md5module.c.h"
/* ------------------------------------------------------------------------
*
@@ -332,30 +339,34 @@ MD5_dealloc(PyObject *ptr)
/* External methods for a hash object */
-PyDoc_STRVAR(MD5_copy__doc__, "Return a copy of the hash object.");
+/*[clinic input]
+MD5Type.copy
+
+Return a copy of the hash object.
+[clinic start generated code]*/
static PyObject *
-MD5_copy(MD5object *self, PyObject *unused)
+MD5Type_copy_impl(MD5object *self)
+/*[clinic end generated code: output=596eb36852f02071 input=2c09e6d2493f3079]*/
{
MD5object *newobj;
- if (Py_TYPE(self) == &MD5type) {
- if ( (newobj = newMD5object())==NULL)
- return NULL;
- } else {
- if ( (newobj = newMD5object())==NULL)
- return NULL;
- }
+ if ((newobj = newMD5object())==NULL)
+ return NULL;
newobj->hash_state = self->hash_state;
return (PyObject *)newobj;
}
-PyDoc_STRVAR(MD5_digest__doc__,
-"Return the digest value as a string of binary data.");
+/*[clinic input]
+MD5Type.digest
+
+Return the digest value as a string of binary data.
+[clinic start generated code]*/
static PyObject *
-MD5_digest(MD5object *self, PyObject *unused)
+MD5Type_digest_impl(MD5object *self)
+/*[clinic end generated code: output=eb691dc4190a07ec input=7b96e65389412a34]*/
{
unsigned char digest[MD5_DIGESTSIZE];
struct md5_state temp;
@@ -365,54 +376,41 @@ MD5_digest(MD5object *self, PyObject *unused)
return PyBytes_FromStringAndSize((const char *)digest, MD5_DIGESTSIZE);
}
-PyDoc_STRVAR(MD5_hexdigest__doc__,
-"Return the digest value as a string of hexadecimal digits.");
+/*[clinic input]
+MD5Type.hexdigest
+
+Return the digest value as a string of hexadecimal digits.
+[clinic start generated code]*/
static PyObject *
-MD5_hexdigest(MD5object *self, PyObject *unused)
+MD5Type_hexdigest_impl(MD5object *self)
+/*[clinic end generated code: output=17badced1f3ac932 input=b60b19de644798dd]*/
{
unsigned char digest[MD5_DIGESTSIZE];
struct md5_state temp;
- PyObject *retval;
- Py_UCS1 *hex_digest;
- int i, j;
/* Get the raw (binary) digest value */
temp = self->hash_state;
md5_done(&temp, digest);
- /* Create a new string */
- retval = PyUnicode_New(MD5_DIGESTSIZE * 2, 127);
- if (!retval)
- return NULL;
- hex_digest = PyUnicode_1BYTE_DATA(retval);
-
- /* Make hex version of the digest */
- for(i=j=0; i<MD5_DIGESTSIZE; i++) {
- unsigned char c;
- c = (digest[i] >> 4) & 0xf;
- hex_digest[j++] = Py_hexdigits[c];
- c = (digest[i] & 0xf);
- hex_digest[j++] = Py_hexdigits[c];
- }
-#ifdef Py_DEBUG
- assert(_PyUnicode_CheckConsistency(retval, 1));
-#endif
- return retval;
+ return _Py_strhex((const char*)digest, MD5_DIGESTSIZE);
}
-PyDoc_STRVAR(MD5_update__doc__,
-"Update this hash object's state with the provided string.");
+/*[clinic input]
+MD5Type.update
+
+ obj: object
+ /
+
+Update this hash object's state with the provided string.
+[clinic start generated code]*/
static PyObject *
-MD5_update(MD5object *self, PyObject *args)
+MD5Type_update(MD5object *self, PyObject *obj)
+/*[clinic end generated code: output=f6ad168416338423 input=6e1efcd9ecf17032]*/
{
- PyObject *obj;
Py_buffer buf;
- if (!PyArg_ParseTuple(args, "O:update", &obj))
- return NULL;
-
GET_BUFFER_VIEW_OR_ERROUT(obj, &buf);
md5_process(&self->hash_state, buf.buf, buf.len);
@@ -423,10 +421,10 @@ MD5_update(MD5object *self, PyObject *args)
}
static PyMethodDef MD5_methods[] = {
- {"copy", (PyCFunction)MD5_copy, METH_NOARGS, MD5_copy__doc__},
- {"digest", (PyCFunction)MD5_digest, METH_NOARGS, MD5_digest__doc__},
- {"hexdigest", (PyCFunction)MD5_hexdigest, METH_NOARGS, MD5_hexdigest__doc__},
- {"update", (PyCFunction)MD5_update, METH_VARARGS, MD5_update__doc__},
+ MD5TYPE_COPY_METHODDEF
+ MD5TYPE_DIGEST_METHODDEF
+ MD5TYPE_HEXDIGEST_METHODDEF
+ MD5TYPE_UPDATE_METHODDEF
{NULL, NULL} /* sentinel */
};
@@ -502,27 +500,26 @@ static PyTypeObject MD5type = {
/* The single module-level function: new() */
-PyDoc_STRVAR(MD5_new__doc__,
-"Return a new MD5 hash object; optionally initialized with a string.");
+/*[clinic input]
+_md5.md5
+
+ string: object(c_default="NULL") = b''
+
+Return a new MD5 hash object; optionally initialized with a string.
+[clinic start generated code]*/
static PyObject *
-MD5_new(PyObject *self, PyObject *args, PyObject *kwdict)
+_md5_md5_impl(PyModuleDef *module, PyObject *string)
+/*[clinic end generated code: output=3527436a2090b956 input=d12ef8f72d684f7b]*/
{
- static char *kwlist[] = {"string", NULL};
MD5object *new;
- PyObject *data_obj = NULL;
Py_buffer buf;
- if (!PyArg_ParseTupleAndKeywords(args, kwdict, "|O:new", kwlist,
- &data_obj)) {
- return NULL;
- }
-
- if (data_obj)
- GET_BUFFER_VIEW_OR_ERROUT(data_obj, &buf);
+ if (string)
+ GET_BUFFER_VIEW_OR_ERROUT(string, &buf);
if ((new = newMD5object()) == NULL) {
- if (data_obj)
+ if (string)
PyBuffer_Release(&buf);
return NULL;
}
@@ -531,11 +528,11 @@ MD5_new(PyObject *self, PyObject *args, PyObject *kwdict)
if (PyErr_Occurred()) {
Py_DECREF(new);
- if (data_obj)
+ if (string)
PyBuffer_Release(&buf);
return NULL;
}
- if (data_obj) {
+ if (string) {
md5_process(&new->hash_state, buf.buf, buf.len);
PyBuffer_Release(&buf);
}
@@ -547,7 +544,7 @@ MD5_new(PyObject *self, PyObject *args, PyObject *kwdict)
/* List of functions exported by this module */
static struct PyMethodDef MD5_functions[] = {
- {"md5", (PyCFunction)MD5_new, METH_VARARGS|METH_KEYWORDS, MD5_new__doc__},
+ _MD5_MD5_METHODDEF
{NULL, NULL} /* Sentinel */
};
diff --git a/Modules/mmapmodule.c b/Modules/mmapmodule.c
index a0cceebf55..daab52b388 100644
--- a/Modules/mmapmodule.c
+++ b/Modules/mmapmodule.c
@@ -301,16 +301,17 @@ mmap_gfind(mmap_object *self,
{
Py_ssize_t start = self->pos;
Py_ssize_t end = self->size;
- const char *needle;
- Py_ssize_t len;
+ Py_buffer view;
CHECK_VALID(NULL);
- if (!PyArg_ParseTuple(args, reverse ? "y#|nn:rfind" : "y#|nn:find",
- &needle, &len, &start, &end)) {
+ if (!PyArg_ParseTuple(args, reverse ? "y*|nn:rfind" : "y*|nn:find",
+ &view, &start, &end)) {
return NULL;
} else {
const char *p, *start_p, *end_p;
int sign = reverse ? -1 : 1;
+ const char *needle = view.buf;
+ Py_ssize_t len = view.len;
if (start < 0)
start += self->size;
@@ -335,9 +336,11 @@ mmap_gfind(mmap_object *self,
for (i = 0; i < len && needle[i] == p[i]; ++i)
/* nothing */;
if (i == len) {
+ PyBuffer_Release(&view);
return PyLong_FromSsize_t(p - self->data);
}
}
+ PyBuffer_Release(&view);
return PyLong_FromLong(-1);
}
}
@@ -385,22 +388,25 @@ static PyObject *
mmap_write_method(mmap_object *self,
PyObject *args)
{
- Py_ssize_t length;
- char *data;
+ Py_buffer data;
CHECK_VALID(NULL);
- if (!PyArg_ParseTuple(args, "y#:write", &data, &length))
+ if (!PyArg_ParseTuple(args, "y*:write", &data))
return(NULL);
- if (!is_writable(self))
+ if (!is_writable(self)) {
+ PyBuffer_Release(&data);
return NULL;
+ }
- if ((self->pos + length) > self->size) {
+ if ((self->pos + data.len) > self->size) {
PyErr_SetString(PyExc_ValueError, "data out of range");
+ PyBuffer_Release(&data);
return NULL;
}
- memcpy(self->data+self->pos, data, length);
- self->pos = self->pos+length;
+ memcpy(self->data + self->pos, data.buf, data.len);
+ self->pos = self->pos + data.len;
+ PyBuffer_Release(&data);
Py_INCREF(Py_None);
return Py_None;
}
@@ -459,15 +465,13 @@ mmap_size_method(mmap_object *self,
#ifdef UNIX
{
- struct stat buf;
- if (-1 == fstat(self->fd, &buf)) {
- PyErr_SetFromErrno(PyExc_OSError);
+ struct _Py_stat_struct status;
+ if (_Py_fstat(self->fd, &status) == -1)
return NULL;
- }
#ifdef HAVE_LARGEFILE_SUPPORT
- return PyLong_FromLongLong(buf.st_size);
+ return PyLong_FromLongLong(status.st_size);
#else
- return PyLong_FromLong(buf.st_size);
+ return PyLong_FromLong(status.st_size);
#endif
}
#endif /* UNIX */
@@ -1106,9 +1110,7 @@ _GetMapSize(PyObject *o, const char* param)
static PyObject *
new_mmap_object(PyTypeObject *type, PyObject *args, PyObject *kwdict)
{
-#ifdef HAVE_FSTAT
- struct stat st;
-#endif
+ struct _Py_stat_struct status;
mmap_object *m_obj;
PyObject *map_size_obj = NULL;
Py_ssize_t map_size;
@@ -1173,32 +1175,31 @@ new_mmap_object(PyTypeObject *type, PyObject *args, PyObject *kwdict)
if (fd != -1)
(void)fcntl(fd, F_FULLFSYNC);
#endif
-#ifdef HAVE_FSTAT
- if (fd != -1 && fstat(fd, &st) == 0 && S_ISREG(st.st_mode)) {
+ if (fd != -1 && _Py_fstat_noraise(fd, &status) == 0
+ && S_ISREG(status.st_mode)) {
if (map_size == 0) {
- if (st.st_size == 0) {
+ if (status.st_size == 0) {
PyErr_SetString(PyExc_ValueError,
"cannot mmap an empty file");
return NULL;
}
- if (offset >= st.st_size) {
+ if (offset >= status.st_size) {
PyErr_SetString(PyExc_ValueError,
"mmap offset is greater than file size");
return NULL;
}
- if (st.st_size - offset > PY_SSIZE_T_MAX) {
+ if (status.st_size - offset > PY_SSIZE_T_MAX) {
PyErr_SetString(PyExc_ValueError,
"mmap length is too large");
return NULL;
}
- map_size = (Py_ssize_t) (st.st_size - offset);
- } else if (offset + (size_t)map_size > st.st_size) {
+ map_size = (Py_ssize_t) (status.st_size - offset);
+ } else if (offset + map_size > status.st_size) {
PyErr_SetString(PyExc_ValueError,
"mmap length is greater than file size");
return NULL;
}
}
-#endif
m_obj = (mmap_object *)type->tp_alloc(type, 0);
if (m_obj == NULL) {return NULL;}
m_obj->data = NULL;
@@ -1221,7 +1222,6 @@ new_mmap_object(PyTypeObject *type, PyObject *args, PyObject *kwdict)
fd = devzero = _Py_open("/dev/zero", O_RDWR);
if (devzero == -1) {
Py_DECREF(m_obj);
- PyErr_SetFromErrno(PyExc_OSError);
return NULL;
}
#endif
@@ -1325,11 +1325,13 @@ new_mmap_object(PyTypeObject *type, PyObject *args, PyObject *kwdict)
*/
if (fileno != -1 && fileno != 0) {
/* Ensure that fileno is within the CRT's valid range */
- if (_PyVerify_fd(fileno) == 0) {
+ if (!_PyVerify_fd(fileno)) {
PyErr_SetFromErrno(PyExc_OSError);
return NULL;
}
+ _Py_BEGIN_SUPPRESS_IPH
fh = (HANDLE)_get_osfhandle(fileno);
+ _Py_END_SUPPRESS_IPH
if (fh==(HANDLE)-1) {
PyErr_SetFromErrno(PyExc_OSError);
return NULL;
diff --git a/Modules/nismodule.c b/Modules/nismodule.c
index 0af495fa53..64eb5dbc3d 100644
--- a/Modules/nismodule.c
+++ b/Modules/nismodule.c
@@ -456,8 +456,8 @@ static struct PyModuleDef nismodule = {
NULL
};
-PyObject*
-PyInit_nis (void)
+PyMODINIT_FUNC
+PyInit_nis(void)
{
PyObject *m, *d;
m = PyModule_Create(&nismodule);
diff --git a/Modules/ossaudiodev.c b/Modules/ossaudiodev.c
index 2d0dd098d8..d2fd5c81d1 100644
--- a/Modules/ossaudiodev.c
+++ b/Modules/ossaudiodev.c
@@ -19,6 +19,7 @@
* $Id$
*/
+#define PY_SSIZE_T_CLEAN
#include "Python.h"
#include "structmember.h"
@@ -51,8 +52,8 @@ typedef struct {
char *devicename; /* name of the device file */
int fd; /* file descriptor */
int mode; /* file mode (O_RDONLY, etc.) */
- int icount; /* input count */
- int ocount; /* output count */
+ Py_ssize_t icount; /* input count */
+ Py_ssize_t ocount; /* output count */
uint32_t afmts; /* audio formats supported by hardware */
} oss_audio_t;
@@ -116,11 +117,8 @@ newossobject(PyObject *arg)
provides a special ioctl() for non-blocking read/write, which is
exposed via oss_nonblock() below. */
fd = _Py_open(devicename, imode|O_NONBLOCK);
-
- if (fd == -1) {
- PyErr_SetFromErrnoWithFilename(PyExc_IOError, devicename);
+ if (fd == -1)
return NULL;
- }
/* And (try to) put it back in blocking mode so we get the
expected write() semantics. */
@@ -180,10 +178,8 @@ newossmixerobject(PyObject *arg)
}
fd = _Py_open(devicename, O_RDWR);
- if (fd == -1) {
- PyErr_SetFromErrnoWithFilename(PyExc_IOError, devicename);
+ if (fd == -1)
return NULL;
- }
if ((self = PyObject_New(oss_mixer_t, &OSSMixerType)) == NULL) {
close(fd);
@@ -404,29 +400,25 @@ oss_post(oss_audio_t *self, PyObject *args)
static PyObject *
oss_read(oss_audio_t *self, PyObject *args)
{
- int size, count;
- char *cp;
+ Py_ssize_t size, count;
PyObject *rv;
if (!_is_fd_valid(self->fd))
return NULL;
- if (!PyArg_ParseTuple(args, "i:read", &size))
+ if (!PyArg_ParseTuple(args, "n:read", &size))
return NULL;
+
rv = PyBytes_FromStringAndSize(NULL, size);
if (rv == NULL)
return NULL;
- cp = PyBytes_AS_STRING(rv);
- Py_BEGIN_ALLOW_THREADS
- count = read(self->fd, cp, size);
- Py_END_ALLOW_THREADS
-
- if (count < 0) {
- PyErr_SetFromErrno(PyExc_IOError);
+ count = _Py_read(self->fd, PyBytes_AS_STRING(rv), size);
+ if (count == -1) {
Py_DECREF(rv);
return NULL;
}
+
self->icount += count;
_PyBytes_Resize(&rv, count);
return rv;
@@ -435,33 +427,32 @@ oss_read(oss_audio_t *self, PyObject *args)
static PyObject *
oss_write(oss_audio_t *self, PyObject *args)
{
- char *cp;
- int rv, size;
+ Py_buffer data;
+ Py_ssize_t rv;
if (!_is_fd_valid(self->fd))
return NULL;
- if (!PyArg_ParseTuple(args, "y#:write", &cp, &size)) {
+ if (!PyArg_ParseTuple(args, "y*:write", &data)) {
return NULL;
}
- Py_BEGIN_ALLOW_THREADS
- rv = write(self->fd, cp, size);
- Py_END_ALLOW_THREADS
+ rv = _Py_write(self->fd, data.buf, data.len);
+ PyBuffer_Release(&data);
+ if (rv == -1)
+ return NULL;
- if (rv == -1) {
- return PyErr_SetFromErrno(PyExc_IOError);
- } else {
- self->ocount += rv;
- }
+ self->ocount += rv;
return PyLong_FromLong(rv);
}
static PyObject *
oss_writeall(oss_audio_t *self, PyObject *args)
{
- char *cp;
- int rv, size;
+ Py_buffer data;
+ const char *cp;
+ Py_ssize_t size;
+ Py_ssize_t rv;
fd_set write_set_fds;
int select_rv;
@@ -475,41 +466,50 @@ oss_writeall(oss_audio_t *self, PyObject *args)
if (!_is_fd_valid(self->fd))
return NULL;
- if (!PyArg_ParseTuple(args, "y#:write", &cp, &size))
+ if (!PyArg_ParseTuple(args, "y*:writeall", &data))
return NULL;
if (!_PyIsSelectable_fd(self->fd)) {
PyErr_SetString(PyExc_ValueError,
"file descriptor out of range for select");
+ PyBuffer_Release(&data);
return NULL;
}
/* use select to wait for audio device to be available */
FD_ZERO(&write_set_fds);
FD_SET(self->fd, &write_set_fds);
+ cp = (const char *)data.buf;
+ size = data.len;
while (size > 0) {
Py_BEGIN_ALLOW_THREADS
select_rv = select(self->fd+1, NULL, &write_set_fds, NULL, NULL);
Py_END_ALLOW_THREADS
- assert(select_rv != 0); /* no timeout, can't expire */
- if (select_rv == -1)
+
+ assert(select_rv != 0); /* no timeout, can't expire */
+ if (select_rv == -1) {
+ PyBuffer_Release(&data);
return PyErr_SetFromErrno(PyExc_IOError);
+ }
- Py_BEGIN_ALLOW_THREADS
- rv = write(self->fd, cp, size);
- Py_END_ALLOW_THREADS
+ rv = _Py_write(self->fd, cp, Py_MIN(size, INT_MAX));
if (rv == -1) {
- if (errno == EAGAIN) { /* buffer is full, try again */
- errno = 0;
+ /* buffer is full, try again */
+ if (errno == EAGAIN) {
+ PyErr_Clear();
continue;
- } else /* it's a real error */
- return PyErr_SetFromErrno(PyExc_IOError);
- } else { /* wrote rv bytes */
- self->ocount += rv;
- size -= rv;
- cp += rv;
+ }
+ /* it's a real error */
+ PyBuffer_Release(&data);
+ return NULL;
}
+
+ /* wrote rv bytes */
+ self->ocount += rv;
+ size -= rv;
+ cp += rv;
}
+ PyBuffer_Release(&data);
Py_INCREF(Py_None);
return Py_None;
}
diff --git a/Modules/parsermodule.c b/Modules/parsermodule.c
index 36e9893da8..8023558fd1 100644
--- a/Modules/parsermodule.c
+++ b/Modules/parsermodule.c
@@ -23,6 +23,11 @@
* that lint detects are gone, but there are still warnings with
* Py_[X]DECREF() and Py_[X]INCREF() macros. The lint annotations
* look like "NOTE(...)".
+ *
+ * To debug parser errors like
+ * "parser.ParserError: Expected node type 12, got 333."
+ * decode symbol numbers using the automatically-generated files
+ * Lib/symbol.h and Include/token.h.
*/
#include "Python.h" /* general Python API */
@@ -1036,6 +1041,8 @@ VALIDATER(testlist_comp); VALIDATER(yield_expr);
VALIDATER(or_test);
VALIDATER(test_nocond); VALIDATER(lambdef_nocond);
VALIDATER(yield_arg);
+VALIDATER(async_funcdef); VALIDATER(async_stmt);
+VALIDATER(atom_expr);
#undef VALIDATER
@@ -1087,30 +1094,56 @@ validate_terminal(node *terminal, int type, char *string)
return (res);
}
+/* X (',' X) [','] */
+static int
+validate_repeating_list_variable(node *tree,
+ int list_node_type,
+ int (*validate_child_func_inc)(node *, int *),
+ int *pos,
+ const char *const list_node_type_name)
+{
+ int nch = NCH(tree);
+ int res = (nch && validate_ntype(tree, list_node_type));
-/* X (',' X) [',']
- */
+ if (!res && !PyErr_Occurred()) {
+ /* Unconditionally raise. */
+ (void) validate_numnodes(tree, 1, list_node_type_name);
+ }
+ else {
+ for ( ; res && *pos < nch; ) {
+ res = validate_child_func_inc(tree, pos);
+ if (!res || *pos >= nch)
+ break;
+ res = validate_comma(CHILD(tree, (*pos)++));
+ }
+ }
+ return res;
+}
+
+/* X (',' X) [','] */
static int
-validate_repeating_list(node *tree, int ntype, int (*vfunc)(node *),
- const char *const name)
+validate_repeating_list(node *tree,
+ int list_node_type,
+ int (*validate_child_func)(node *),
+ const char *const list_node_type_name)
{
int nch = NCH(tree);
- int res = (nch && validate_ntype(tree, ntype)
- && vfunc(CHILD(tree, 0)));
+ int res = (nch && validate_ntype(tree, list_node_type));
+ int pos = 0;
- if (!res && !PyErr_Occurred())
- (void) validate_numnodes(tree, 1, name);
+ if (!res && !PyErr_Occurred()) {
+ /* Unconditionally raise. */
+ (void) validate_numnodes(tree, 1, list_node_type_name);
+ }
else {
- if (is_even(nch))
- res = validate_comma(CHILD(tree, --nch));
- if (res && nch > 1) {
- int pos = 1;
- for ( ; res && pos < nch; pos += 2)
- res = (validate_comma(CHILD(tree, pos))
- && vfunc(CHILD(tree, pos + 1)));
+ for ( ; res && pos < nch; ) {
+ res = validate_child_func(CHILD(tree, pos++));
+ if (!res || pos >= nch)
+ break;
+ res = validate_comma(CHILD(tree, pos++));
}
}
- return (res);
+ return res;
}
@@ -1577,6 +1610,7 @@ validate_compound_stmt(node *tree)
|| (ntype == try_stmt)
|| (ntype == with_stmt)
|| (ntype == funcdef)
+ || (ntype == async_stmt)
|| (ntype == classdef)
|| (ntype == decorated))
res = validate_node(tree);
@@ -2409,27 +2443,60 @@ validate_factor(node *tree)
/* power:
*
- * power: atom trailer* ('**' factor)*
+ * power: atom_expr trailer* ['**' factor]
*/
static int
validate_power(node *tree)
{
- int pos = 1;
int nch = NCH(tree);
int res = (validate_ntype(tree, power) && (nch >= 1)
- && validate_atom(CHILD(tree, 0)));
+ && validate_atom_expr(CHILD(tree, 0)));
- while (res && (pos < nch) && (TYPE(CHILD(tree, pos)) == trailer))
- res = validate_trailer(CHILD(tree, pos++));
- if (res && (pos < nch)) {
- if (!is_even(nch - pos)) {
+ if (nch > 1) {
+ if (nch != 3) {
err_string("illegal number of nodes for 'power'");
return (0);
}
- for ( ; res && (pos < (nch - 1)); pos += 2)
- res = (validate_doublestar(CHILD(tree, pos))
- && validate_factor(CHILD(tree, pos + 1)));
+ res = (validate_doublestar(CHILD(tree, 1))
+ && validate_factor(CHILD(tree, 2)));
}
+
+ return (res);
+}
+
+
+/* atom_expr:
+ *
+ * atom_expr: [AWAIT] atom trailer*
+ */
+static int
+validate_atom_expr(node *tree)
+{
+ int start = 0;
+ int nch = NCH(tree);
+ int res;
+ int pos;
+
+ res = validate_ntype(tree, atom_expr) && (nch >= 1);
+ if (!res) {
+ return (res);
+ }
+
+ if (TYPE(CHILD(tree, 0)) == AWAIT) {
+ start = 1;
+ if (nch < 2) {
+ err_string("illegal number of nodes for 'atom_expr'");
+ return (0);
+ }
+ }
+
+ res = validate_atom(CHILD(tree, start));
+ if (res) {
+ pos = start + 1;
+ while (res && (pos < nch) && (TYPE(CHILD(tree, pos)) == trailer))
+ res = validate_trailer(CHILD(tree, pos++));
+ }
+
return (res);
}
@@ -2493,39 +2560,28 @@ validate_atom(node *tree)
/* testlist_comp:
- * test ( comp_for | (',' test)* [','] )
+ * (test|star_expr) ( comp_for | (',' (test|star_expr))* [','] )
*/
static int
validate_testlist_comp(node *tree)
{
int nch = NCH(tree);
- int ok = nch;
+ int ok;
- if (nch == 0)
+ if (nch == 0) {
err_string("missing child nodes of testlist_comp");
- else {
- ok = validate_test_or_star_expr(CHILD(tree, 0));
+ return 0;
}
- /*
- * comp_for | (',' test)* [',']
- */
- if (nch == 2 && TYPE(CHILD(tree, 1)) == comp_for)
- ok = validate_comp_for(CHILD(tree, 1));
+ if (nch == 2 && TYPE(CHILD(tree, 1)) == comp_for) {
+ ok = (validate_test(CHILD(tree, 0))
+ && validate_comp_for(CHILD(tree, 1)));
+ }
else {
- /* (',' test)* [','] */
- int i = 1;
- while (ok && nch - i >= 2) {
- ok = (validate_comma(CHILD(tree, i))
- && validate_test_or_star_expr(CHILD(tree, i+1)));
- i += 2;
- }
- if (ok && i == nch-1)
- ok = validate_comma(CHILD(tree, i));
- else if (i != nch) {
- ok = 0;
- err_string("illegal trailing nodes for testlist_comp");
- }
+ ok = validate_repeating_list(tree,
+ testlist_comp,
+ validate_test_or_star_expr,
+ "testlist_comp");
}
return ok;
}
@@ -2638,6 +2694,55 @@ validate_funcdef(node *tree)
return res;
}
+/* async_funcdef: ASYNC funcdef */
+
+static int
+validate_async_funcdef(node *tree)
+{
+ int nch = NCH(tree);
+ int res = validate_ntype(tree, async_funcdef);
+ if (res) {
+ if (nch == 2) {
+ res = (validate_ntype(CHILD(tree, 0), ASYNC)
+ && validate_funcdef(CHILD(tree, 1)));
+ }
+ else {
+ res = 0;
+ err_string("illegal number of children for async_funcdef");
+ }
+ }
+ return res;
+}
+
+
+/* async_stmt: ASYNC (funcdef | with_stmt | for_stmt) */
+
+static int
+validate_async_stmt(node *tree)
+{
+ int nch = NCH(tree);
+ int res = (validate_ntype(tree, async_stmt)
+ && validate_ntype(CHILD(tree, 0), ASYNC));
+
+ if (nch != 2) {
+ res = 0;
+ err_string("illegal number of children for async_stmt");
+ } else {
+ if (TYPE(CHILD(tree, 1)) == funcdef) {
+ res = validate_funcdef(CHILD(tree, 1));
+ }
+ else if (TYPE(CHILD(tree, 1)) == with_stmt) {
+ res = validate_with_stmt(CHILD(tree, 1));
+ }
+ else if (TYPE(CHILD(tree, 1)) == for_stmt) {
+ res = validate_for(CHILD(tree, 1));
+ }
+ }
+
+ return res;
+}
+
+
/* decorated
* decorators (classdef | funcdef)
@@ -2732,9 +2837,6 @@ validate_arglist(node *tree)
}
ok = 1;
if (nch-i > 0) {
- /*
- * argument | '*' test [',' '**' test] | '**' test
- */
int sym = TYPE(CHILD(tree, i));
if (sym == argument) {
@@ -2745,30 +2847,7 @@ validate_arglist(node *tree)
ok = 0;
}
}
- else if (sym == STAR) {
- ok = validate_star(CHILD(tree, i));
- if (ok && (nch-i == 2))
- ok = validate_test(CHILD(tree, i+1));
- else if (ok && (nch-i == 5))
- ok = (validate_test(CHILD(tree, i+1))
- && validate_comma(CHILD(tree, i+2))
- && validate_doublestar(CHILD(tree, i+3))
- && validate_test(CHILD(tree, i+4)));
- else {
- err_string("illegal use of '*' in arglist");
- ok = 0;
- }
- }
- else if (sym == DOUBLESTAR) {
- if (nch-i == 2)
- ok = (validate_doublestar(CHILD(tree, i))
- && validate_test(CHILD(tree, i+1)));
- else {
- err_string("illegal use of '**' in arglist");
- ok = 0;
- }
- }
- else {
+ else {
err_string("illegal arglist specification");
ok = 0;
}
@@ -2778,9 +2857,10 @@ validate_arglist(node *tree)
-/* argument:
- *
- * [test '='] test [comp_for]
+/* argument: ( test [comp_for] |
+ * test '=' test |
+ * '**' test |
+ * '*' test )
*/
static int
validate_argument(node *tree)
@@ -2788,14 +2868,27 @@ validate_argument(node *tree)
int nch = NCH(tree);
int res = (validate_ntype(tree, argument)
&& ((nch == 1) || (nch == 2) || (nch == 3)));
- if (res)
- res = validate_test(CHILD(tree, 0));
- if (res && (nch == 2))
- res = validate_comp_for(CHILD(tree, 1));
- else if (res && (nch == 3))
- res = (validate_equal(CHILD(tree, 1))
- && validate_test(CHILD(tree, 2)));
+ if (res) {
+ if (TYPE(CHILD(tree, 0)) == DOUBLESTAR) {
+ res = validate_test(CHILD(tree, 1));
+ }
+ else if (TYPE(CHILD(tree, 0)) == STAR) {
+ res = validate_test(CHILD(tree, 1));
+ }
+ else if (nch == 1) {
+ res = validate_test(CHILD(tree, 0));
+ }
+ else if (nch == 2) {
+ res = (validate_test(CHILD(tree, 0))
+ && validate_comp_for(CHILD(tree, 1)));
+ }
+ else if (res && (nch == 3)) {
+ res = (validate_test(CHILD(tree, 0))
+ && validate_equal(CHILD(tree, 1))
+ && validate_test(CHILD(tree, 2)));
+ }
+ }
return (res);
}
@@ -2948,11 +3041,44 @@ validate_exprlist(node *tree)
validate_expr_or_star_expr, "exprlist"));
}
+/* Incrementing validate functions returns nonzero iff success (like other
+ * validate functions, and advance *i by the length of the matched pattern. */
+
+/* test ':' test */
+static int
+validate_test_colon_test_inc(node *tree, int *i)
+{
+ return (validate_test(CHILD(tree, (*i)++))
+ && validate_colon(CHILD(tree, (*i)++))
+ && validate_test(CHILD(tree, (*i)++)));
+}
+
+/* test ':' test | '**' expr */
+static int
+validate_dict_element_inc(node *tree, int *i)
+{
+ int nch = NCH(tree);
+ int res = 0;
+ if (nch - *i >= 2) {
+ if (TYPE(CHILD(tree, *i+1)) == COLON) {
+ /* test ':' test */
+ res = validate_test_colon_test_inc(tree, i);
+ } else {
+ /* '**' expr */
+ res = (validate_doublestar(CHILD(tree, (*i)++))
+ && validate_expr(CHILD(tree, (*i)++)));
+ }
+ }
+ return res;
+}
+
/*
* dictorsetmaker:
*
- * (test ':' test (comp_for | (',' test ':' test)* [','])) |
- * (test (comp_for | (',' test)* [',']))
+ * ( ((test ':' test | '**' expr)
+ * (comp_for | (',' (test ':' test | '**' expr))* [','])) |
+ * ((test | '*' test)
+ * (comp_for | (',' (test | '*' test))* [','])) )
*/
static int
validate_dictorsetmaker(node *tree)
@@ -2966,65 +3092,44 @@ validate_dictorsetmaker(node *tree)
return 0;
if (nch - i < 1) {
+ /* Unconditionally raise. */
(void) validate_numnodes(tree, 1, "dictorsetmaker");
return 0;
}
- res = validate_test(CHILD(tree, i++));
- if (!res)
- return 0;
-
- if (nch - i >= 2 && TYPE(CHILD(tree, i)) == COLON) {
+ if (nch - i >= 2
+ && ((TYPE(CHILD(tree, i+1)) == COLON) ||
+ (TYPE(CHILD(tree, i)) == DOUBLESTAR))) {
/* Dictionary display or dictionary comprehension. */
- res = (validate_colon(CHILD(tree, i++))
- && validate_test(CHILD(tree, i++)));
- if (!res)
- return 0;
-
- if (nch - i >= 1 && TYPE(CHILD(tree, i)) == comp_for) {
+ if (nch - i >= 4 && TYPE(CHILD(tree, i+3)) == comp_for) {
/* Dictionary comprehension. */
- res = validate_comp_for(CHILD(tree, i++));
+ res = (validate_test_colon_test_inc(tree, &i)
+ && validate_comp_for(CHILD(tree, i++)));
if (!res)
return 0;
- }
- else {
+ } else {
/* Dictionary display. */
- while (nch - i >= 4) {
- res = (validate_comma(CHILD(tree, i++))
- && validate_test(CHILD(tree, i++))
- && validate_colon(CHILD(tree, i++))
- && validate_test(CHILD(tree, i++)));
- if (!res)
- return 0;
- }
- if (nch - i == 1) {
- res = validate_comma(CHILD(tree, i++));
- if (!res)
- return 0;
- }
+ return validate_repeating_list_variable(
+ tree,
+ dictorsetmaker,
+ validate_dict_element_inc,
+ &i,
+ "dictorsetmaker");
}
- }
- else {
+ } else {
/* Set display or set comprehension. */
- if (nch - i >= 1 && TYPE(CHILD(tree, i)) == comp_for) {
+ if (nch - i >= 2 && TYPE(CHILD(tree, i + 1)) == comp_for) {
/* Set comprehension. */
- res = validate_comp_for(CHILD(tree, i++));
+ res = (validate_test(CHILD(tree, i++))
+ && validate_comp_for(CHILD(tree, i++)));
if (!res)
return 0;
- }
- else {
+ } else {
/* Set display. */
- while (nch - i >= 2) {
- res = (validate_comma(CHILD(tree, i++))
- && validate_test(CHILD(tree, i++)));
- if (!res)
- return 0;
- }
- if (nch - i == 1) {
- res = validate_comma(CHILD(tree, i++));
- if (!res)
- return 0;
- }
+ return validate_repeating_list(tree,
+ dictorsetmaker,
+ validate_test_or_star_expr,
+ "dictorsetmaker");
}
}
@@ -3068,6 +3173,12 @@ validate_node(node *tree)
/*
* Definition nodes.
*/
+ case async_funcdef:
+ res = validate_async_funcdef(tree);
+ break;
+ case async_stmt:
+ res = validate_async_stmt(tree);
+ break;
case funcdef:
res = validate_funcdef(tree);
break;
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 7c937e0553..854a7491c5 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -6,7 +6,7 @@
functions are either unimplemented or implemented differently. The source
assumes that for Windows NT, the macro 'MS_WINDOWS' is defined independent
of the compiler used. Different compilers define their own feature
- test macro, e.g. '__BORLANDC__' or '_MSC_VER'. */
+ test macro, e.g. '_MSC_VER'. */
@@ -25,8 +25,11 @@
#define PY_SSIZE_T_CLEAN
#include "Python.h"
+#include "structmember.h"
#ifndef MS_WINDOWS
#include "posixmodule.h"
+#else
+#include "winreparse.h"
#endif
#ifdef __cplusplus
@@ -141,13 +144,6 @@ corresponding Unix manual entries for more information on calls.");
#define HAVE_SYSTEM 1
#include <process.h>
#else
-#ifdef __BORLANDC__ /* Borland compiler */
-#define HAVE_EXECV 1
-#define HAVE_OPENDIR 1
-#define HAVE_PIPE 1
-#define HAVE_SYSTEM 1
-#define HAVE_WAIT 1
-#else
#ifdef _MSC_VER /* Microsoft compiler */
#define HAVE_GETPPID 1
#define HAVE_GETLOGIN 1
@@ -177,14 +173,14 @@ corresponding Unix manual entries for more information on calls.");
#define HAVE_WAIT 1
#define HAVE_TTYNAME 1
#endif /* _MSC_VER */
-#endif /* __BORLANDC__ */
#endif /* ! __WATCOMC__ || __QNX__ */
/*[clinic input]
+# one of the few times we lie about this name!
module os
[clinic start generated code]*/
-/*[clinic end generated code: output=da39a3ee5e6b4b0d input=8cff096d1133288f]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=94a0f0f978acae17]*/
#ifndef _MSC_VER
@@ -211,11 +207,7 @@ extern int rmdir(char *);
extern int chdir(const char *);
extern int rmdir(const char *);
#endif
-#ifdef __BORLANDC__
-extern int chmod(const char *, int);
-#else
extern int chmod(const char *, mode_t);
-#endif
/*#ifdef HAVE_FCHMOD
extern int fchmod(int, mode_t);
#endif*/
@@ -301,6 +293,9 @@ extern int lstat(const char *, struct stat *);
#ifndef IO_REPARSE_TAG_SYMLINK
#define IO_REPARSE_TAG_SYMLINK (0xA000000CL)
#endif
+#ifndef IO_REPARSE_TAG_MOUNT_POINT
+#define IO_REPARSE_TAG_MOUNT_POINT (0xA0000003L)
+#endif
#include "osdefs.h"
#include <malloc.h>
#include <windows.h>
@@ -356,8 +351,8 @@ static int win32_can_symlink = 0;
#ifdef MS_WINDOWS
# define STAT win32_stat
# define LSTAT win32_lstat
-# define FSTAT win32_fstat
-# define STRUCT_STAT struct win32_stat
+# define FSTAT _Py_fstat_noraise
+# define STRUCT_STAT struct _Py_stat_struct
#else
# define STAT stat
# define LSTAT lstat
@@ -378,6 +373,20 @@ static int win32_can_symlink = 0;
#define DWORD_MAX 4294967295U
+#ifdef MS_WINDOWS
+#define INITFUNC PyInit_nt
+#define MODNAME "nt"
+#else
+#define INITFUNC PyInit_posix
+#define MODNAME "posix"
+#endif
+
+#ifdef MS_WINDOWS
+/* defined in fileutils.c */
+PyAPI_FUNC(void) _Py_time_t_to_FILE_TIME(time_t, int, FILETIME *);
+PyAPI_FUNC(void) _Py_attribute_data_to_stat(BY_HANDLE_FILE_INFORMATION *,
+ ULONG, struct _Py_stat_struct *);
+#endif
#ifdef MS_WINDOWS
static int
@@ -701,7 +710,6 @@ dir_fd_converter(PyObject *o, void *p)
}
-
/*
* A PyArg_ParseTuple "converter" function
* that handles filesystem paths in the manner
@@ -797,8 +805,8 @@ typedef struct {
PyObject *cleanup;
} path_t;
-#define PATH_T_INITIALIZE(function_name, nullable, allow_fd) \
- {function_name, NULL, nullable, allow_fd, NULL, NULL, 0, 0, NULL, NULL}
+#define PATH_T_INITIALIZE(function_name, argument_name, nullable, allow_fd) \
+ {function_name, argument_name, nullable, allow_fd, NULL, NULL, -1, 0, NULL, NULL}
static void
path_cleanup(path_t *path) {
@@ -859,7 +867,7 @@ path_converter(PyObject *o, void *p) {
return 0;
}
if (wcslen(wide) != length) {
- FORMAT_EXCEPTION(PyExc_TypeError, "embedded null character");
+ FORMAT_EXCEPTION(PyExc_ValueError, "embedded null character");
Py_DECREF(unicode);
return 0;
}
@@ -925,8 +933,8 @@ path_converter(PyObject *o, void *p) {
#endif
narrow = PyBytes_AS_STRING(bytes);
- if (length != strlen(narrow)) {
- FORMAT_EXCEPTION(PyExc_ValueError, "embedded NUL character in %s");
+ if ((size_t)length != strlen(narrow)) {
+ FORMAT_EXCEPTION(PyExc_ValueError, "embedded null character in %s");
Py_DECREF(bytes);
return 0;
}
@@ -1027,97 +1035,46 @@ dir_fd_and_follow_symlinks_invalid(char *function_name, int dir_fd,
return 0;
}
-/* A helper used by a number of POSIX-only functions */
-#ifndef MS_WINDOWS
+#ifdef MS_WINDOWS
+ typedef PY_LONG_LONG Py_off_t;
+#else
+ typedef off_t Py_off_t;
+#endif
+
static int
-_parse_off_t(PyObject* arg, void* addr)
+Py_off_t_converter(PyObject *arg, void *addr)
{
-#if !defined(HAVE_LARGEFILE_SUPPORT)
- *((off_t*)addr) = PyLong_AsLong(arg);
+#ifdef HAVE_LARGEFILE_SUPPORT
+ *((Py_off_t *)addr) = PyLong_AsLongLong(arg);
#else
- *((off_t*)addr) = PyLong_AsLongLong(arg);
+ *((Py_off_t *)addr) = PyLong_AsLong(arg);
#endif
if (PyErr_Occurred())
return 0;
return 1;
}
+
+static PyObject *
+PyLong_FromPy_off_t(Py_off_t offset)
+{
+#ifdef HAVE_LARGEFILE_SUPPORT
+ return PyLong_FromLongLong(offset);
+#else
+ return PyLong_FromLong(offset);
#endif
+}
-#if defined _MSC_VER && _MSC_VER >= 1400
-/* Microsoft CRT in VS2005 and higher will verify that a filehandle is
- * valid and raise an assertion if it isn't.
- * Normally, an invalid fd is likely to be a C program error and therefore
- * an assertion can be useful, but it does contradict the POSIX standard
- * which for write(2) states:
- * "Otherwise, -1 shall be returned and errno set to indicate the error."
- * "[EBADF] The fildes argument is not a valid file descriptor open for
- * writing."
- * Furthermore, python allows the user to enter any old integer
- * as a fd and should merely raise a python exception on error.
- * The Microsoft CRT doesn't provide an official way to check for the
- * validity of a file descriptor, but we can emulate its internal behaviour
- * by using the exported __pinfo data member and knowledge of the
- * internal structures involved.
- * The structures below must be updated for each version of visual studio
- * according to the file internal.h in the CRT source, until MS comes
- * up with a less hacky way to do this.
- * (all of this is to avoid globally modifying the CRT behaviour using
- * _set_invalid_parameter_handler() and _CrtSetReportMode())
- */
-/* The actual size of the structure is determined at runtime.
- * Only the first items must be present.
- */
-typedef struct {
- intptr_t osfhnd;
- char osfile;
-} my_ioinfo;
-extern __declspec(dllimport) char * __pioinfo[];
+#if defined _MSC_VER && _MSC_VER >= 1400 && _MSC_VER < 1900
+/* Legacy implementation of _PyVerify_fd_dup2 while transitioning to
+ * MSVC 14.0. This should eventually be removed. (issue23524)
+ */
#define IOINFO_L2E 5
-#define IOINFO_ARRAY_ELTS (1 << IOINFO_L2E)
#define IOINFO_ARRAYS 64
+#define IOINFO_ARRAY_ELTS (1 << IOINFO_L2E)
#define _NHANDLE_ (IOINFO_ARRAYS * IOINFO_ARRAY_ELTS)
-#define FOPEN 0x01
#define _NO_CONSOLE_FILENO (intptr_t)-2
-/* This function emulates what the windows CRT does to validate file handles */
-int
-_PyVerify_fd(int fd)
-{
- const int i1 = fd >> IOINFO_L2E;
- const int i2 = fd & ((1 << IOINFO_L2E) - 1);
-
- static size_t sizeof_ioinfo = 0;
-
- /* Determine the actual size of the ioinfo structure,
- * as used by the CRT loaded in memory
- */
- if (sizeof_ioinfo == 0 && __pioinfo[0] != NULL) {
- sizeof_ioinfo = _msize(__pioinfo[0]) / IOINFO_ARRAY_ELTS;
- }
- if (sizeof_ioinfo == 0) {
- /* This should not happen... */
- goto fail;
- }
-
- /* See that it isn't a special CLEAR fileno */
- if (fd != _NO_CONSOLE_FILENO) {
- /* Microsoft CRT would check that 0<=fd<_nhandle but we can't do that. Instead
- * we check pointer validity and other info
- */
- if (0 <= i1 && i1 < IOINFO_ARRAYS && __pioinfo[i1] != NULL) {
- /* finally, check that the file is open */
- my_ioinfo* info = (my_ioinfo*)(__pioinfo[i1] + i2 * sizeof_ioinfo);
- if (info->osfile & FOPEN) {
- return 1;
- }
- }
- }
- fail:
- errno = EBADF;
- return 0;
-}
-
/* the special case of checking dup2. The target fd must be in a sensible range */
static int
_PyVerify_fd_dup2(int fd1, int fd2)
@@ -1132,46 +1089,10 @@ _PyVerify_fd_dup2(int fd1, int fd2)
return 0;
}
#else
-/* dummy version. _PyVerify_fd() is already defined in fileobject.h */
-#define _PyVerify_fd_dup2(A, B) (1)
+#define _PyVerify_fd_dup2(fd1, fd2) (_PyVerify_fd(fd1) && (fd2) >= 0)
#endif
#ifdef MS_WINDOWS
-/* The following structure was copied from
- http://msdn.microsoft.com/en-us/library/ms791514.aspx as the required
- include doesn't seem to be present in the Windows SDK (at least as included
- with Visual Studio Express). */
-typedef struct _REPARSE_DATA_BUFFER {
- ULONG ReparseTag;
- USHORT ReparseDataLength;
- USHORT Reserved;
- union {
- struct {
- USHORT SubstituteNameOffset;
- USHORT SubstituteNameLength;
- USHORT PrintNameOffset;
- USHORT PrintNameLength;
- ULONG Flags;
- WCHAR PathBuffer[1];
- } SymbolicLinkReparseBuffer;
-
- struct {
- USHORT SubstituteNameOffset;
- USHORT SubstituteNameLength;
- USHORT PrintNameOffset;
- USHORT PrintNameLength;
- WCHAR PathBuffer[1];
- } MountPointReparseBuffer;
-
- struct {
- UCHAR DataBuffer[1];
- } GenericReparseBuffer;
- };
-} REPARSE_DATA_BUFFER, *PREPARSE_DATA_BUFFER;
-
-#define REPARSE_DATA_BUFFER_HEADER_SIZE FIELD_OFFSET(REPARSE_DATA_BUFFER,\
- GenericReparseBuffer)
-#define MAXIMUM_REPARSE_DATA_BUFFER_SIZE ( 16 * 1024 )
static int
win32_get_reparse_tag(HANDLE reparse_point_handle, ULONG *reparse_tag)
@@ -1356,47 +1277,37 @@ path_error2(path_t *path, path_t *path2)
/* POSIX generic methods */
-static PyObject *
-posix_fildes(PyObject *fdobj, int (*func)(int))
+static int
+fildes_converter(PyObject *o, void *p)
{
int fd;
- int res;
- fd = PyObject_AsFileDescriptor(fdobj);
+ int *pointer = (int *)p;
+ fd = PyObject_AsFileDescriptor(o);
if (fd < 0)
- return NULL;
- if (!_PyVerify_fd(fd))
- return posix_error();
- Py_BEGIN_ALLOW_THREADS
- res = (*func)(fd);
- Py_END_ALLOW_THREADS
- if (res < 0)
- return posix_error();
- Py_INCREF(Py_None);
- return Py_None;
+ return 0;
+ *pointer = fd;
+ return 1;
}
static PyObject *
-posix_1str(const char *func_name, PyObject *args, char *format,
- int (*func)(const char*))
+posix_fildes_fd(int fd, int (*func)(int))
{
- path_t path;
int res;
- memset(&path, 0, sizeof(path));
- path.function_name = func_name;
- if (!PyArg_ParseTuple(args, format,
- path_converter, &path))
- return NULL;
- Py_BEGIN_ALLOW_THREADS
- res = (*func)(path.narrow);
- Py_END_ALLOW_THREADS
- if (res < 0) {
- path_error(&path);
- path_cleanup(&path);
- return NULL;
- }
- path_cleanup(&path);
- Py_INCREF(Py_None);
- return Py_None;
+ int async_err = 0;
+
+ if (!_PyVerify_fd(fd))
+ return posix_error();
+
+ do {
+ Py_BEGIN_ALLOW_THREADS
+ _Py_BEGIN_SUPPRESS_IPH
+ res = (*func)(fd);
+ _Py_END_SUPPRESS_IPH
+ Py_END_ALLOW_THREADS
+ } while (res != 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
+ if (res != 0)
+ return (!async_err) ? posix_error() : NULL;
+ Py_RETURN_NONE;
}
@@ -1475,89 +1386,7 @@ win32_wchdir(LPCWSTR path)
Therefore, we implement our own stat, based on the Win32 API directly.
*/
#define HAVE_STAT_NSEC 1
-
-struct win32_stat{
- unsigned long st_dev;
- __int64 st_ino;
- unsigned short st_mode;
- int st_nlink;
- int st_uid;
- int st_gid;
- unsigned long st_rdev;
- __int64 st_size;
- time_t st_atime;
- int st_atime_nsec;
- time_t st_mtime;
- int st_mtime_nsec;
- time_t st_ctime;
- int st_ctime_nsec;
-};
-
-static __int64 secs_between_epochs = 11644473600; /* Seconds between 1.1.1601 and 1.1.1970 */
-
-static void
-FILE_TIME_to_time_t_nsec(FILETIME *in_ptr, time_t *time_out, int* nsec_out)
-{
- /* XXX endianness. Shouldn't matter, as all Windows implementations are little-endian */
- /* Cannot simply cast and dereference in_ptr,
- since it might not be aligned properly */
- __int64 in;
- memcpy(&in, in_ptr, sizeof(in));
- *nsec_out = (int)(in % 10000000) * 100; /* FILETIME is in units of 100 nsec. */
- *time_out = Py_SAFE_DOWNCAST((in / 10000000) - secs_between_epochs, __int64, time_t);
-}
-
-static void
-time_t_to_FILE_TIME(time_t time_in, int nsec_in, FILETIME *out_ptr)
-{
- /* XXX endianness */
- __int64 out;
- out = time_in + secs_between_epochs;
- out = out * 10000000 + nsec_in / 100;
- memcpy(out_ptr, &out, sizeof(out));
-}
-
-/* Below, we *know* that ugo+r is 0444 */
-#if _S_IREAD != 0400
-#error Unsupported C library
-#endif
-static int
-attributes_to_mode(DWORD attr)
-{
- int m = 0;
- if (attr & FILE_ATTRIBUTE_DIRECTORY)
- m |= _S_IFDIR | 0111; /* IFEXEC for user,group,other */
- else
- m |= _S_IFREG;
- if (attr & FILE_ATTRIBUTE_READONLY)
- m |= 0444;
- else
- m |= 0666;
- return m;
-}
-
-static int
-attribute_data_to_stat(BY_HANDLE_FILE_INFORMATION *info, ULONG reparse_tag, struct win32_stat *result)
-{
- memset(result, 0, sizeof(*result));
- result->st_mode = attributes_to_mode(info->dwFileAttributes);
- result->st_size = (((__int64)info->nFileSizeHigh)<<32) + info->nFileSizeLow;
- result->st_dev = info->dwVolumeSerialNumber;
- result->st_rdev = result->st_dev;
- FILE_TIME_to_time_t_nsec(&info->ftCreationTime, &result->st_ctime, &result->st_ctime_nsec);
- FILE_TIME_to_time_t_nsec(&info->ftLastWriteTime, &result->st_mtime, &result->st_mtime_nsec);
- FILE_TIME_to_time_t_nsec(&info->ftLastAccessTime, &result->st_atime, &result->st_atime_nsec);
- result->st_nlink = info->nNumberOfLinks;
- result->st_ino = (((__int64)info->nFileIndexHigh)<<32) + info->nFileIndexLow;
- if (reparse_tag == IO_REPARSE_TAG_SYMLINK) {
- /* first clear the S_IFMT bits */
- result->st_mode ^= (result->st_mode & S_IFMT);
- /* now set the bits that make this a symlink */
- result->st_mode |= S_IFLNK;
- }
-
- return 0;
-}
+#define HAVE_STRUCT_STAT_ST_FILE_ATTRIBUTES 1
static BOOL
attributes_from_dir(LPCSTR pszFile, BY_HANDLE_FILE_INFORMATION *info, ULONG *reparse_tag)
@@ -1582,6 +1411,25 @@ attributes_from_dir(LPCSTR pszFile, BY_HANDLE_FILE_INFORMATION *info, ULONG *rep
return TRUE;
}
+static void
+find_data_to_file_info_w(WIN32_FIND_DATAW *pFileData,
+ BY_HANDLE_FILE_INFORMATION *info,
+ ULONG *reparse_tag)
+{
+ memset(info, 0, sizeof(*info));
+ info->dwFileAttributes = pFileData->dwFileAttributes;
+ info->ftCreationTime = pFileData->ftCreationTime;
+ info->ftLastAccessTime = pFileData->ftLastAccessTime;
+ info->ftLastWriteTime = pFileData->ftLastWriteTime;
+ info->nFileSizeHigh = pFileData->nFileSizeHigh;
+ info->nFileSizeLow = pFileData->nFileSizeLow;
+/* info->nNumberOfLinks = 1; */
+ if (pFileData->dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT)
+ *reparse_tag = pFileData->dwReserved0;
+ else
+ *reparse_tag = 0;
+}
+
static BOOL
attributes_from_dir_w(LPCWSTR pszFile, BY_HANDLE_FILE_INFORMATION *info, ULONG *reparse_tag)
{
@@ -1591,45 +1439,10 @@ attributes_from_dir_w(LPCWSTR pszFile, BY_HANDLE_FILE_INFORMATION *info, ULONG *
if (hFindFile == INVALID_HANDLE_VALUE)
return FALSE;
FindClose(hFindFile);
- memset(info, 0, sizeof(*info));
- *reparse_tag = 0;
- info->dwFileAttributes = FileData.dwFileAttributes;
- info->ftCreationTime = FileData.ftCreationTime;
- info->ftLastAccessTime = FileData.ftLastAccessTime;
- info->ftLastWriteTime = FileData.ftLastWriteTime;
- info->nFileSizeHigh = FileData.nFileSizeHigh;
- info->nFileSizeLow = FileData.nFileSizeLow;
-/* info->nNumberOfLinks = 1; */
- if (FileData.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT)
- *reparse_tag = FileData.dwReserved0;
+ find_data_to_file_info_w(&FileData, info, reparse_tag);
return TRUE;
}
-/* Grab GetFinalPathNameByHandle dynamically from kernel32 */
-static int has_GetFinalPathNameByHandle = -1;
-static DWORD (CALLBACK *Py_GetFinalPathNameByHandleW)(HANDLE, LPWSTR, DWORD,
- DWORD);
-static int
-check_GetFinalPathNameByHandle()
-{
- HINSTANCE hKernel32;
- DWORD (CALLBACK *Py_GetFinalPathNameByHandleA)(HANDLE, LPSTR, DWORD,
- DWORD);
-
- /* only recheck */
- if (-1 == has_GetFinalPathNameByHandle)
- {
- hKernel32 = GetModuleHandleW(L"KERNEL32");
- *(FARPROC*)&Py_GetFinalPathNameByHandleA = GetProcAddress(hKernel32,
- "GetFinalPathNameByHandleA");
- *(FARPROC*)&Py_GetFinalPathNameByHandleW = GetProcAddress(hKernel32,
- "GetFinalPathNameByHandleW");
- has_GetFinalPathNameByHandle = Py_GetFinalPathNameByHandleA &&
- Py_GetFinalPathNameByHandleW;
- }
- return has_GetFinalPathNameByHandle;
-}
-
static BOOL
get_target_path(HANDLE hdl, wchar_t **target_path)
{
@@ -1638,8 +1451,8 @@ get_target_path(HANDLE hdl, wchar_t **target_path)
/* We have a good handle to the target, use it to determine
the target path name (then we'll call lstat on it). */
- buf_size = Py_GetFinalPathNameByHandleW(hdl, 0, 0,
- VOLUME_NAME_DOS);
+ buf_size = GetFinalPathNameByHandleW(hdl, 0, 0,
+ VOLUME_NAME_DOS);
if(!buf_size)
return FALSE;
@@ -1649,7 +1462,7 @@ get_target_path(HANDLE hdl, wchar_t **target_path)
return FALSE;
}
- result_length = Py_GetFinalPathNameByHandleW(hdl,
+ result_length = GetFinalPathNameByHandleW(hdl,
buf, buf_size, VOLUME_NAME_DOS);
if(!result_length) {
@@ -1669,10 +1482,10 @@ get_target_path(HANDLE hdl, wchar_t **target_path)
}
static int
-win32_xstat_impl_w(const wchar_t *path, struct win32_stat *result,
+win32_xstat_impl_w(const wchar_t *path, struct _Py_stat_struct *result,
BOOL traverse);
static int
-win32_xstat_impl(const char *path, struct win32_stat *result,
+win32_xstat_impl(const char *path, struct _Py_stat_struct *result,
BOOL traverse)
{
int code;
@@ -1682,12 +1495,6 @@ win32_xstat_impl(const char *path, struct win32_stat *result,
wchar_t *target_path;
const char *dot;
- if(!check_GetFinalPathNameByHandle()) {
- /* If the OS doesn't have GetFinalPathNameByHandle, don't
- traverse reparse point. */
- traverse = FALSE;
- }
-
hFile = CreateFileA(
path,
FILE_READ_ATTRIBUTES, /* desired access */
@@ -1755,7 +1562,7 @@ win32_xstat_impl(const char *path, struct win32_stat *result,
} else
CloseHandle(hFile);
}
- attribute_data_to_stat(&info, reparse_tag, result);
+ _Py_attribute_data_to_stat(&info, reparse_tag, result);
/* Set S_IEXEC if it is an .exe, .bat, ... */
dot = strrchr(path, '.');
@@ -1768,7 +1575,7 @@ win32_xstat_impl(const char *path, struct win32_stat *result,
}
static int
-win32_xstat_impl_w(const wchar_t *path, struct win32_stat *result,
+win32_xstat_impl_w(const wchar_t *path, struct _Py_stat_struct *result,
BOOL traverse)
{
int code;
@@ -1778,12 +1585,6 @@ win32_xstat_impl_w(const wchar_t *path, struct win32_stat *result,
wchar_t *target_path;
const wchar_t *dot;
- if(!check_GetFinalPathNameByHandle()) {
- /* If the OS doesn't have GetFinalPathNameByHandle, don't
- traverse reparse point. */
- traverse = FALSE;
- }
-
hFile = CreateFileW(
path,
FILE_READ_ATTRIBUTES, /* desired access */
@@ -1851,7 +1652,7 @@ win32_xstat_impl_w(const wchar_t *path, struct win32_stat *result,
} else
CloseHandle(hFile);
}
- attribute_data_to_stat(&info, reparse_tag, result);
+ _Py_attribute_data_to_stat(&info, reparse_tag, result);
/* Set S_IEXEC if it is an .exe, .bat, ... */
dot = wcsrchr(path, '.');
@@ -1864,7 +1665,7 @@ win32_xstat_impl_w(const wchar_t *path, struct win32_stat *result,
}
static int
-win32_xstat(const char *path, struct win32_stat *result, BOOL traverse)
+win32_xstat(const char *path, struct _Py_stat_struct *result, BOOL traverse)
{
/* Protocol violation: we explicitly clear errno, instead of
setting it to a POSIX error. Callers should use GetLastError. */
@@ -1874,7 +1675,7 @@ win32_xstat(const char *path, struct win32_stat *result, BOOL traverse)
}
static int
-win32_xstat_w(const wchar_t *path, struct win32_stat *result, BOOL traverse)
+win32_xstat_w(const wchar_t *path, struct _Py_stat_struct *result, BOOL traverse)
{
/* Protocol violation: we explicitly clear errno, instead of
setting it to a POSIX error. Callers should use GetLastError. */
@@ -1896,80 +1697,29 @@ win32_xstat_w(const wchar_t *path, struct win32_stat *result, BOOL traverse)
The _w represent Unicode equivalents of the aforementioned ANSI functions. */
static int
-win32_lstat(const char* path, struct win32_stat *result)
+win32_lstat(const char* path, struct _Py_stat_struct *result)
{
return win32_xstat(path, result, FALSE);
}
static int
-win32_lstat_w(const wchar_t* path, struct win32_stat *result)
+win32_lstat_w(const wchar_t* path, struct _Py_stat_struct *result)
{
return win32_xstat_w(path, result, FALSE);
}
static int
-win32_stat(const char* path, struct win32_stat *result)
+win32_stat(const char* path, struct _Py_stat_struct *result)
{
return win32_xstat(path, result, TRUE);
}
static int
-win32_stat_w(const wchar_t* path, struct win32_stat *result)
+win32_stat_w(const wchar_t* path, struct _Py_stat_struct *result)
{
return win32_xstat_w(path, result, TRUE);
}
-static int
-win32_fstat(int file_number, struct win32_stat *result)
-{
- BY_HANDLE_FILE_INFORMATION info;
- HANDLE h;
- int type;
-
- if (!_PyVerify_fd(file_number))
- h = INVALID_HANDLE_VALUE;
- else
- h = (HANDLE)_get_osfhandle(file_number);
-
- /* Protocol violation: we explicitly clear errno, instead of
- setting it to a POSIX error. Callers should use GetLastError. */
- errno = 0;
-
- if (h == INVALID_HANDLE_VALUE) {
- /* This is really a C library error (invalid file handle).
- We set the Win32 error to the closes one matching. */
- SetLastError(ERROR_INVALID_HANDLE);
- return -1;
- }
- memset(result, 0, sizeof(*result));
-
- type = GetFileType(h);
- if (type == FILE_TYPE_UNKNOWN) {
- DWORD error = GetLastError();
- if (error != 0) {
- return -1;
- }
- /* else: valid but unknown file */
- }
-
- if (type != FILE_TYPE_DISK) {
- if (type == FILE_TYPE_CHAR)
- result->st_mode = _S_IFCHR;
- else if (type == FILE_TYPE_PIPE)
- result->st_mode = _S_IFIFO;
- return 0;
- }
-
- if (!GetFileInformationByHandle(h, &info)) {
- return -1;
- }
-
- attribute_data_to_stat(&info, 0, result);
- /* specific to fstat() */
- result->st_ino = (((__int64)info.nFileIndexHigh)<<32) + info.nFileIndexLow;
- return 0;
-}
-
#endif /* MS_WINDOWS */
PyDoc_STRVAR(stat_result__doc__,
@@ -2019,6 +1769,9 @@ static PyStructSequence_Field stat_result_fields[] = {
#ifdef HAVE_STRUCT_STAT_ST_BIRTHTIME
{"st_birthtime", "time of creation"},
#endif
+#ifdef HAVE_STRUCT_STAT_ST_FILE_ATTRIBUTES
+ {"st_file_attributes", "Windows file attribute bits"},
+#endif
{0}
};
@@ -2058,6 +1811,12 @@ static PyStructSequence_Field stat_result_fields[] = {
#define ST_BIRTHTIME_IDX ST_GEN_IDX
#endif
+#ifdef HAVE_STRUCT_STAT_ST_FILE_ATTRIBUTES
+#define ST_FILE_ATTRIBUTES_IDX (ST_BIRTHTIME_IDX+1)
+#else
+#define ST_FILE_ATTRIBUTES_IDX ST_BIRTHTIME_IDX
+#endif
+
static PyStructSequence_Desc stat_result_desc = {
"stat_result", /* name */
stat_result__doc__, /* doc */
@@ -2159,10 +1918,12 @@ static int _stat_float_times = 1;
PyDoc_STRVAR(stat_float_times__doc__,
"stat_float_times([newval]) -> oldval\n\n\
Determine whether os.[lf]stat represents time stamps as float objects.\n\
-If newval is True, future calls to stat() return floats, if it is False,\n\
-future calls return ints. \n\
-If newval is omitted, return the current setting.\n");
+\n\
+If value is True, future calls to stat() return floats; if it is False,\n\
+future calls return ints.\n\
+If value is omitted, return the current setting.\n");
+/* AC 3.5: the public default value should be None, not ready for that yet */
static PyObject*
stat_float_times(PyObject* self, PyObject *args)
{
@@ -2322,6 +2083,10 @@ _pystat_fromstructstat(STRUCT_STAT *st)
PyStructSequence_SET_ITEM(v, ST_FLAGS_IDX,
PyLong_FromLong((long)st->st_flags));
#endif
+#ifdef HAVE_STRUCT_STAT_ST_FILE_ATTRIBUTES
+ PyStructSequence_SET_ITEM(v, ST_FILE_ATTRIBUTES_IDX,
+ PyLong_FromUnsignedLong(st->st_file_attributes));
+#endif
if (PyErr_Occurred()) {
Py_DECREF(v);
@@ -2385,12 +2150,181 @@ posix_do_stat(char *function_name, path_t *path,
return _pystat_fromstructstat(&st);
}
+/*[python input]
+
+for s in """
+
+FACCESSAT
+FCHMODAT
+FCHOWNAT
+FSTATAT
+LINKAT
+MKDIRAT
+MKFIFOAT
+MKNODAT
+OPENAT
+READLINKAT
+SYMLINKAT
+UNLINKAT
+
+""".strip().split():
+ s = s.strip()
+ print("""
+#ifdef HAVE_{s}
+ #define {s}_DIR_FD_CONVERTER dir_fd_converter
+#else
+ #define {s}_DIR_FD_CONVERTER dir_fd_unavailable
+#endif
+""".rstrip().format(s=s))
+
+for s in """
+
+FCHDIR
+FCHMOD
+FCHOWN
+FDOPENDIR
+FEXECVE
+FPATHCONF
+FSTATVFS
+FTRUNCATE
+
+""".strip().split():
+ s = s.strip()
+ print("""
+#ifdef HAVE_{s}
+ #define PATH_HAVE_{s} 1
+#else
+ #define PATH_HAVE_{s} 0
+#endif
+
+""".rstrip().format(s=s))
+[python start generated code]*/
+
+#ifdef HAVE_FACCESSAT
+ #define FACCESSAT_DIR_FD_CONVERTER dir_fd_converter
+#else
+ #define FACCESSAT_DIR_FD_CONVERTER dir_fd_unavailable
+#endif
+
+#ifdef HAVE_FCHMODAT
+ #define FCHMODAT_DIR_FD_CONVERTER dir_fd_converter
+#else
+ #define FCHMODAT_DIR_FD_CONVERTER dir_fd_unavailable
+#endif
+
+#ifdef HAVE_FCHOWNAT
+ #define FCHOWNAT_DIR_FD_CONVERTER dir_fd_converter
+#else
+ #define FCHOWNAT_DIR_FD_CONVERTER dir_fd_unavailable
+#endif
+
#ifdef HAVE_FSTATAT
- #define OS_STAT_DIR_FD_CONVERTER dir_fd_converter
+ #define FSTATAT_DIR_FD_CONVERTER dir_fd_converter
+#else
+ #define FSTATAT_DIR_FD_CONVERTER dir_fd_unavailable
+#endif
+
+#ifdef HAVE_LINKAT
+ #define LINKAT_DIR_FD_CONVERTER dir_fd_converter
#else
- #define OS_STAT_DIR_FD_CONVERTER dir_fd_unavailable
+ #define LINKAT_DIR_FD_CONVERTER dir_fd_unavailable
#endif
+#ifdef HAVE_MKDIRAT
+ #define MKDIRAT_DIR_FD_CONVERTER dir_fd_converter
+#else
+ #define MKDIRAT_DIR_FD_CONVERTER dir_fd_unavailable
+#endif
+
+#ifdef HAVE_MKFIFOAT
+ #define MKFIFOAT_DIR_FD_CONVERTER dir_fd_converter
+#else
+ #define MKFIFOAT_DIR_FD_CONVERTER dir_fd_unavailable
+#endif
+
+#ifdef HAVE_MKNODAT
+ #define MKNODAT_DIR_FD_CONVERTER dir_fd_converter
+#else
+ #define MKNODAT_DIR_FD_CONVERTER dir_fd_unavailable
+#endif
+
+#ifdef HAVE_OPENAT
+ #define OPENAT_DIR_FD_CONVERTER dir_fd_converter
+#else
+ #define OPENAT_DIR_FD_CONVERTER dir_fd_unavailable
+#endif
+
+#ifdef HAVE_READLINKAT
+ #define READLINKAT_DIR_FD_CONVERTER dir_fd_converter
+#else
+ #define READLINKAT_DIR_FD_CONVERTER dir_fd_unavailable
+#endif
+
+#ifdef HAVE_SYMLINKAT
+ #define SYMLINKAT_DIR_FD_CONVERTER dir_fd_converter
+#else
+ #define SYMLINKAT_DIR_FD_CONVERTER dir_fd_unavailable
+#endif
+
+#ifdef HAVE_UNLINKAT
+ #define UNLINKAT_DIR_FD_CONVERTER dir_fd_converter
+#else
+ #define UNLINKAT_DIR_FD_CONVERTER dir_fd_unavailable
+#endif
+
+#ifdef HAVE_FCHDIR
+ #define PATH_HAVE_FCHDIR 1
+#else
+ #define PATH_HAVE_FCHDIR 0
+#endif
+
+#ifdef HAVE_FCHMOD
+ #define PATH_HAVE_FCHMOD 1
+#else
+ #define PATH_HAVE_FCHMOD 0
+#endif
+
+#ifdef HAVE_FCHOWN
+ #define PATH_HAVE_FCHOWN 1
+#else
+ #define PATH_HAVE_FCHOWN 0
+#endif
+
+#ifdef HAVE_FDOPENDIR
+ #define PATH_HAVE_FDOPENDIR 1
+#else
+ #define PATH_HAVE_FDOPENDIR 0
+#endif
+
+#ifdef HAVE_FEXECVE
+ #define PATH_HAVE_FEXECVE 1
+#else
+ #define PATH_HAVE_FEXECVE 0
+#endif
+
+#ifdef HAVE_FPATHCONF
+ #define PATH_HAVE_FPATHCONF 1
+#else
+ #define PATH_HAVE_FPATHCONF 0
+#endif
+
+#ifdef HAVE_FSTATVFS
+ #define PATH_HAVE_FSTATVFS 1
+#else
+ #define PATH_HAVE_FSTATVFS 0
+#endif
+
+#ifdef HAVE_FTRUNCATE
+ #define PATH_HAVE_FTRUNCATE 1
+#else
+ #define PATH_HAVE_FTRUNCATE 0
+#endif
+/*[python end generated code: output=4bd4f6f7d41267f1 input=80b4c890b6774ea5]*/
+
+#ifdef MS_WINDOWS
+ #undef PATH_HAVE_FTRUNCATE
+ #define PATH_HAVE_FTRUNCATE 1
+#endif
/*[python input]
@@ -2405,22 +2339,25 @@ class path_t_converter(CConverter):
def converter_init(self, *, allow_fd=False, nullable=False):
# right now path_t doesn't support default values.
# to support a default value, you'll need to override initialize().
- if self.default is not unspecified:
+ if self.default not in (unspecified, None):
fail("Can't specify a default to the path_t converter!")
- if self.c_default is not None:
- fail("Can't specify a c_default to the path_t converter!")
+ if self.c_default not in (None, 'Py_None'):
+ raise RuntimeError("Can't specify a c_default to the path_t converter!")
self.nullable = nullable
self.allow_fd = allow_fd
def pre_render(self):
def strify(value):
+ if isinstance(value, str):
+ return value
return str(int(bool(value)))
# add self.py_name here when merging with posixmodule conversion
- self.c_default = 'PATH_T_INITIALIZE("{}", {}, {})'.format(
+ self.c_default = 'PATH_T_INITIALIZE("{}", "{}", {}, {})'.format(
self.function.name,
+ self.name,
strify(self.nullable),
strify(self.allow_fd),
)
@@ -2431,15 +2368,87 @@ class path_t_converter(CConverter):
class dir_fd_converter(CConverter):
type = 'int'
- converter = 'OS_STAT_DIR_FD_CONVERTER'
- def converter_init(self):
+ def converter_init(self, requires=None):
if self.default in (unspecified, None):
self.c_default = 'DEFAULT_DIR_FD'
+ if isinstance(requires, str):
+ self.converter = requires.upper() + '_DIR_FD_CONVERTER'
+ else:
+ self.converter = 'dir_fd_converter'
+class fildes_converter(CConverter):
+ type = 'int'
+ converter = 'fildes_converter'
+
+class uid_t_converter(CConverter):
+ type = "uid_t"
+ converter = '_Py_Uid_Converter'
+
+class gid_t_converter(CConverter):
+ type = "gid_t"
+ converter = '_Py_Gid_Converter'
+
+class dev_t_converter(CConverter):
+ type = 'dev_t'
+ converter = '_Py_Dev_Converter'
+
+class dev_t_return_converter(unsigned_long_return_converter):
+ type = 'dev_t'
+ conversion_fn = '_PyLong_FromDev'
+ unsigned_cast = '(dev_t)'
+
+class FSConverter_converter(CConverter):
+ type = 'PyObject *'
+ converter = 'PyUnicode_FSConverter'
+ def converter_init(self):
+ if self.default is not unspecified:
+ fail("FSConverter_converter does not support default values")
+ self.c_default = 'NULL'
+
+ def cleanup(self):
+ return "Py_XDECREF(" + self.name + ");\n"
+
+class pid_t_converter(CConverter):
+ type = 'pid_t'
+ format_unit = '" _Py_PARSE_PID "'
+
+class idtype_t_converter(int_converter):
+ type = 'idtype_t'
+
+class id_t_converter(CConverter):
+ type = 'id_t'
+ format_unit = '" _Py_PARSE_PID "'
+
+class Py_intptr_t_converter(CConverter):
+ type = 'Py_intptr_t'
+ format_unit = '" _Py_PARSE_INTPTR "'
+
+class Py_off_t_converter(CConverter):
+ type = 'Py_off_t'
+ converter = 'Py_off_t_converter'
+
+class Py_off_t_return_converter(long_return_converter):
+ type = 'Py_off_t'
+ conversion_fn = 'PyLong_FromPy_off_t'
+
+class path_confname_converter(CConverter):
+ type="int"
+ converter="conv_path_confname"
+
+class confstr_confname_converter(path_confname_converter):
+ converter='conv_confstr_confname'
+
+class sysconf_confname_converter(path_confname_converter):
+ converter="conv_sysconf_confname"
+
+class sched_param_converter(CConverter):
+ type = 'struct sched_param'
+ converter = 'convert_sched_param'
+ impl_by_reference = True;
[python start generated code]*/
-/*[python end generated code: output=da39a3ee5e6b4b0d input=5c9f456f53244fc3]*/
+/*[python end generated code: output=da39a3ee5e6b4b0d input=affe68316f160401]*/
/*[clinic input]
@@ -2450,7 +2459,7 @@ os.stat
*
- dir_fd : dir_fd = None
+ dir_fd : dir_fd(requires='fstatat') = None
If not None, it should be a file descriptor open to a directory,
and path should be a relative string; path will then be relative to
that directory.
@@ -2471,103 +2480,41 @@ It's an error to use dir_fd or follow_symlinks when specifying path as
[clinic start generated code]*/
-PyDoc_STRVAR(os_stat__doc__,
-"stat($module, /, path, *, dir_fd=None, follow_symlinks=True)\n"
-"--\n"
-"\n"
-"Perform a stat system call on the given path.\n"
-"\n"
-" path\n"
-" Path to be examined; can be string, bytes, or open-file-descriptor int.\n"
-" dir_fd\n"
-" If not None, it should be a file descriptor open to a directory,\n"
-" and path should be a relative string; path will then be relative to\n"
-" that directory.\n"
-" follow_symlinks\n"
-" If False, and the last element of the path is a symbolic link,\n"
-" stat will examine the symbolic link itself instead of the file\n"
-" the link points to.\n"
-"\n"
-"dir_fd and follow_symlinks may not be implemented\n"
-" on your platform. If they are unavailable, using them will raise a\n"
-" NotImplementedError.\n"
-"\n"
-"It\'s an error to use dir_fd or follow_symlinks when specifying path as\n"
-" an open file descriptor.");
-
-#define OS_STAT_METHODDEF \
- {"stat", (PyCFunction)os_stat, METH_VARARGS|METH_KEYWORDS, os_stat__doc__},
-
static PyObject *
-os_stat_impl(PyModuleDef *module, path_t *path, int dir_fd, int follow_symlinks);
-
-static PyObject *
-os_stat(PyModuleDef *module, PyObject *args, PyObject *kwargs)
+os_stat_impl(PyModuleDef *module, path_t *path, int dir_fd,
+ int follow_symlinks)
+/*[clinic end generated code: output=e4f7569f95d523ca input=099d356c306fa24a]*/
{
- PyObject *return_value = NULL;
- static char *_keywords[] = {"path", "dir_fd", "follow_symlinks", NULL};
- path_t path = PATH_T_INITIALIZE("stat", 0, 1);
- int dir_fd = DEFAULT_DIR_FD;
- int follow_symlinks = 1;
+ return posix_do_stat("stat", path, dir_fd, follow_symlinks);
+}
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,
- "O&|$O&p:stat", _keywords,
- path_converter, &path, OS_STAT_DIR_FD_CONVERTER, &dir_fd, &follow_symlinks))
- goto exit;
- return_value = os_stat_impl(module, &path, dir_fd, follow_symlinks);
-exit:
- /* Cleanup for path */
- path_cleanup(&path);
+/*[clinic input]
+os.lstat
- return return_value;
-}
+ path : path_t
-static PyObject *
-os_stat_impl(PyModuleDef *module, path_t *path, int dir_fd, int follow_symlinks)
-/*[clinic end generated code: output=f1dcaa5e24db9882 input=5ae155bd475fd20a]*/
-{
- return posix_do_stat("stat", path, dir_fd, follow_symlinks);
-}
+ *
+
+ dir_fd : dir_fd(requires='fstatat') = None
-PyDoc_STRVAR(posix_lstat__doc__,
-"lstat(path, *, dir_fd=None) -> stat result\n\n\
-Like stat(), but do not follow symbolic links.\n\
-Equivalent to stat(path, follow_symlinks=False).");
+Perform a stat system call on the given path, without following symbolic links.
+
+Like stat(), but do not follow symbolic links.
+Equivalent to stat(path, follow_symlinks=False).
+[clinic start generated code]*/
static PyObject *
-posix_lstat(PyObject *self, PyObject *args, PyObject *kwargs)
+os_lstat_impl(PyModuleDef *module, path_t *path, int dir_fd)
+/*[clinic end generated code: output=7a748e333fcb39bd input=0b7474765927b925]*/
{
- static char *keywords[] = {"path", "dir_fd", NULL};
- path_t path;
- int dir_fd = DEFAULT_DIR_FD;
int follow_symlinks = 0;
- PyObject *return_value;
-
- memset(&path, 0, sizeof(path));
- path.function_name = "lstat";
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&|$O&:lstat", keywords,
- path_converter, &path,
-#ifdef HAVE_FSTATAT
- dir_fd_converter, &dir_fd
-#else
- dir_fd_unavailable, &dir_fd
-#endif
- ))
- return NULL;
- return_value = posix_do_stat("lstat", &path, dir_fd, follow_symlinks);
- path_cleanup(&path);
- return return_value;
+ return posix_do_stat("lstat", path, dir_fd, follow_symlinks);
}
-#ifdef HAVE_FACCESSAT
- #define OS_ACCESS_DIR_FD_CONVERTER dir_fd_converter
-#else
- #define OS_ACCESS_DIR_FD_CONVERTER dir_fd_unavailable
-#endif
/*[clinic input]
-os.access
+os.access -> bool
path: path_t(allow_fd=True)
Path to be tested; can be string, bytes, or open-file-descriptor int.
@@ -2578,7 +2525,7 @@ os.access
*
- dir_fd : dir_fd = None
+ dir_fd : dir_fd(requires='faccessat') = None
If not None, it should be a file descriptor open to a directory,
and path should be relative; path will then be relative to that
directory.
@@ -2605,73 +2552,12 @@ Note that most operations will use the effective uid/gid, therefore this
[clinic start generated code]*/
-PyDoc_STRVAR(os_access__doc__,
-"access($module, /, path, mode, *, dir_fd=None, effective_ids=False,\n"
-" follow_symlinks=True)\n"
-"--\n"
-"\n"
-"Use the real uid/gid to test for access to a path.\n"
-"\n"
-" path\n"
-" Path to be tested; can be string, bytes, or open-file-descriptor int.\n"
-" mode\n"
-" Operating-system mode bitfield. Can be F_OK to test existence,\n"
-" or the inclusive-OR of R_OK, W_OK, and X_OK.\n"
-" dir_fd\n"
-" If not None, it should be a file descriptor open to a directory,\n"
-" and path should be relative; path will then be relative to that\n"
-" directory.\n"
-" effective_ids\n"
-" If True, access will use the effective uid/gid instead of\n"
-" the real uid/gid.\n"
-" follow_symlinks\n"
-" If False, and the last element of the path is a symbolic link,\n"
-" access will examine the symbolic link itself instead of the file\n"
-" the link points to.\n"
-"\n"
-"dir_fd, effective_ids, and follow_symlinks may not be implemented\n"
-" on your platform. If they are unavailable, using them will raise a\n"
-" NotImplementedError.\n"
-"\n"
-"Note that most operations will use the effective uid/gid, therefore this\n"
-" routine can be used in a suid/sgid environment to test if the invoking user\n"
-" has the specified access to the path.");
-
-#define OS_ACCESS_METHODDEF \
- {"access", (PyCFunction)os_access, METH_VARARGS|METH_KEYWORDS, os_access__doc__},
-
-static PyObject *
-os_access_impl(PyModuleDef *module, path_t *path, int mode, int dir_fd, int effective_ids, int follow_symlinks);
-
-static PyObject *
-os_access(PyModuleDef *module, PyObject *args, PyObject *kwargs)
-{
- PyObject *return_value = NULL;
- static char *_keywords[] = {"path", "mode", "dir_fd", "effective_ids", "follow_symlinks", NULL};
- path_t path = PATH_T_INITIALIZE("access", 0, 1);
- int mode;
- int dir_fd = DEFAULT_DIR_FD;
- int effective_ids = 0;
- int follow_symlinks = 1;
-
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,
- "O&i|$O&pp:access", _keywords,
- path_converter, &path, &mode, OS_STAT_DIR_FD_CONVERTER, &dir_fd, &effective_ids, &follow_symlinks))
- goto exit;
- return_value = os_access_impl(module, &path, mode, dir_fd, effective_ids, follow_symlinks);
-
-exit:
- /* Cleanup for path */
- path_cleanup(&path);
-
- return return_value;
-}
-
-static PyObject *
-os_access_impl(PyModuleDef *module, path_t *path, int mode, int dir_fd, int effective_ids, int follow_symlinks)
-/*[clinic end generated code: output=a6ed4f151be9df0f input=2e2e7594371f5b7e]*/
+static int
+os_access_impl(PyModuleDef *module, path_t *path, int mode, int dir_fd,
+ int effective_ids, int follow_symlinks)
+/*[clinic end generated code: output=abaa53340210088d input=b75a756797af45ec]*/
{
- PyObject *return_value = NULL;
+ int return_value;
#ifdef MS_WINDOWS
DWORD attr;
@@ -2681,11 +2567,11 @@ os_access_impl(PyModuleDef *module, path_t *path, int mode, int dir_fd, int effe
#ifndef HAVE_FACCESSAT
if (follow_symlinks_specified("access", follow_symlinks))
- goto exit;
+ return -1;
if (effective_ids) {
argument_unavailable_error("access", "effective_ids");
- goto exit;
+ return -1;
}
#endif
@@ -2705,11 +2591,10 @@ os_access_impl(PyModuleDef *module, path_t *path, int mode, int dir_fd, int effe
* * or it's a directory.
* (Directories cannot be read-only on Windows.)
*/
- return_value = PyBool_FromLong(
- (attr != INVALID_FILE_ATTRIBUTES) &&
+ return_value = (attr != INVALID_FILE_ATTRIBUTES) &&
(!(mode & 2) ||
!(attr & FILE_ATTRIBUTE_READONLY) ||
- (attr & FILE_ATTRIBUTE_DIRECTORY)));
+ (attr & FILE_ATTRIBUTE_DIRECTORY));
#else
Py_BEGIN_ALLOW_THREADS
@@ -2728,12 +2613,9 @@ os_access_impl(PyModuleDef *module, path_t *path, int mode, int dir_fd, int effe
#endif
result = access(path->narrow, mode);
Py_END_ALLOW_THREADS
- return_value = PyBool_FromLong(!result);
+ return_value = !result;
#endif
-#ifndef HAVE_FACCESSAT
-exit:
-#endif
return return_value;
}
@@ -2752,7 +2634,6 @@ exit:
#ifdef HAVE_TTYNAME
-
/*[clinic input]
os.ttyname -> DecodeFSDefault
@@ -2764,44 +2645,9 @@ os.ttyname -> DecodeFSDefault
Return the name of the terminal device connected to 'fd'.
[clinic start generated code]*/
-PyDoc_STRVAR(os_ttyname__doc__,
-"ttyname($module, fd, /)\n"
-"--\n"
-"\n"
-"Return the name of the terminal device connected to \'fd\'.\n"
-"\n"
-" fd\n"
-" Integer file descriptor handle.");
-
-#define OS_TTYNAME_METHODDEF \
- {"ttyname", (PyCFunction)os_ttyname, METH_VARARGS, os_ttyname__doc__},
-
-static char *
-os_ttyname_impl(PyModuleDef *module, int fd);
-
-static PyObject *
-os_ttyname(PyModuleDef *module, PyObject *args)
-{
- PyObject *return_value = NULL;
- int fd;
- char *_return_value;
-
- if (!PyArg_ParseTuple(args,
- "i:ttyname",
- &fd))
- goto exit;
- _return_value = os_ttyname_impl(module, fd);
- if (_return_value == NULL)
- goto exit;
- return_value = PyUnicode_DecodeFSDefault(_return_value);
-
-exit:
- return return_value;
-}
-
static char *
os_ttyname_impl(PyModuleDef *module, int fd)
-/*[clinic end generated code: output=cee7bc4cffec01a2 input=5f72ca83e76b3b45]*/
+/*[clinic end generated code: output=03ad3d5ccaef75c3 input=5f72ca83e76b3b45]*/
{
char *ret;
@@ -2810,17 +2656,18 @@ os_ttyname_impl(PyModuleDef *module, int fd)
posix_error();
return ret;
}
-#else
-#define OS_TTYNAME_METHODDEF
#endif
#ifdef HAVE_CTERMID
-PyDoc_STRVAR(posix_ctermid__doc__,
-"ctermid() -> string\n\n\
-Return the name of the controlling terminal for this process.");
+/*[clinic input]
+os.ctermid
+
+Return the name of the controlling terminal for this process.
+[clinic start generated code]*/
static PyObject *
-posix_ctermid(PyObject *self, PyObject *noargs)
+os_ctermid_impl(PyModuleDef *module)
+/*[clinic end generated code: output=1b73788201e0aebd input=3b87fdd52556382d]*/
{
char *ret;
char buffer[L_ctermid];
@@ -2834,106 +2681,112 @@ posix_ctermid(PyObject *self, PyObject *noargs)
return posix_error();
return PyUnicode_DecodeFSDefault(buffer);
}
-#endif
+#endif /* HAVE_CTERMID */
-PyDoc_STRVAR(posix_chdir__doc__,
-"chdir(path)\n\n\
-Change the current working directory to the specified path.\n\
-\n\
-path may always be specified as a string.\n\
-On some platforms, path may also be specified as an open file descriptor.\n\
- If this functionality is unavailable, using it raises an exception.");
+
+/*[clinic input]
+os.chdir
+
+ path: path_t(allow_fd='PATH_HAVE_FCHDIR')
+
+Change the current working directory to the specified path.
+
+path may always be specified as a string.
+On some platforms, path may also be specified as an open file descriptor.
+ If this functionality is unavailable, using it raises an exception.
+[clinic start generated code]*/
static PyObject *
-posix_chdir(PyObject *self, PyObject *args, PyObject *kwargs)
+os_chdir_impl(PyModuleDef *module, path_t *path)
+/*[clinic end generated code: output=7358e3a20fb5aa93 input=1a4a15b4d12cb15d]*/
{
- path_t path;
int result;
- PyObject *return_value = NULL;
- static char *keywords[] = {"path", NULL};
-
- memset(&path, 0, sizeof(path));
- path.function_name = "chdir";
-#ifdef HAVE_FCHDIR
- path.allow_fd = 1;
-#endif
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&:chdir", keywords,
- path_converter, &path
- ))
- return NULL;
Py_BEGIN_ALLOW_THREADS
#ifdef MS_WINDOWS
- if (path.wide)
- result = win32_wchdir(path.wide);
+ if (path->wide)
+ result = win32_wchdir(path->wide);
else
- result = win32_chdir(path.narrow);
+ result = win32_chdir(path->narrow);
result = !result; /* on unix, success = 0, on windows, success = !0 */
#else
#ifdef HAVE_FCHDIR
- if (path.fd != -1)
- result = fchdir(path.fd);
+ if (path->fd != -1)
+ result = fchdir(path->fd);
else
#endif
- result = chdir(path.narrow);
+ result = chdir(path->narrow);
#endif
Py_END_ALLOW_THREADS
if (result) {
- return_value = path_error(&path);
- goto exit;
+ return path_error(path);
}
- return_value = Py_None;
- Py_INCREF(Py_None);
-
-exit:
- path_cleanup(&path);
- return return_value;
+ Py_RETURN_NONE;
}
+
#ifdef HAVE_FCHDIR
-PyDoc_STRVAR(posix_fchdir__doc__,
-"fchdir(fd)\n\n\
-Change to the directory of the given file descriptor. fd must be\n\
-opened on a directory, not a file. Equivalent to os.chdir(fd).");
+/*[clinic input]
+os.fchdir
+
+ fd: fildes
+
+Change to the directory of the given file descriptor.
+
+fd must be opened on a directory, not a file.
+Equivalent to os.chdir(fd).
+
+[clinic start generated code]*/
static PyObject *
-posix_fchdir(PyObject *self, PyObject *fdobj)
+os_fchdir_impl(PyModuleDef *module, int fd)
+/*[clinic end generated code: output=361d30df6b2d3418 input=18e816479a2fa985]*/
{
- return posix_fildes(fdobj, fchdir);
+ return posix_fildes_fd(fd, fchdir);
}
#endif /* HAVE_FCHDIR */
-PyDoc_STRVAR(posix_chmod__doc__,
-"chmod(path, mode, *, dir_fd=None, follow_symlinks=True)\n\n\
-Change the access permissions of a file.\n\
-\n\
-path may always be specified as a string.\n\
-On some platforms, path may also be specified as an open file descriptor.\n\
- If this functionality is unavailable, using it raises an exception.\n\
-If dir_fd is not None, it should be a file descriptor open to a directory,\n\
- and path should be relative; path will then be relative to that directory.\n\
-If follow_symlinks is False, and the last element of the path is a symbolic\n\
- link, chmod will modify the symbolic link itself instead of the file the\n\
- link points to.\n\
-It is an error to use dir_fd or follow_symlinks when specifying path as\n\
- an open file descriptor.\n\
-dir_fd and follow_symlinks may not be implemented on your platform.\n\
- If they are unavailable, using them will raise a NotImplementedError.");
+/*[clinic input]
+os.chmod
+
+ path: path_t(allow_fd='PATH_HAVE_FCHMOD')
+ Path to be modified. May always be specified as a str or bytes.
+ On some platforms, path may also be specified as an open file descriptor.
+ If this functionality is unavailable, using it raises an exception.
+
+ mode: int
+ Operating-system mode bitfield.
+
+ *
+
+ dir_fd : dir_fd(requires='fchmodat') = None
+ If not None, it should be a file descriptor open to a directory,
+ and path should be relative; path will then be relative to that
+ directory.
+
+ follow_symlinks: bool = True
+ If False, and the last element of the path is a symbolic link,
+ chmod will modify the symbolic link itself instead of the file
+ the link points to.
+
+Change the access permissions of a file.
+
+It is an error to use dir_fd or follow_symlinks when specifying path as
+ an open file descriptor.
+dir_fd and follow_symlinks may not be implemented on your platform.
+ If they are unavailable, using them will raise a NotImplementedError.
+
+[clinic start generated code]*/
static PyObject *
-posix_chmod(PyObject *self, PyObject *args, PyObject *kwargs)
+os_chmod_impl(PyModuleDef *module, path_t *path, int mode, int dir_fd,
+ int follow_symlinks)
+/*[clinic end generated code: output=05e7f73b1a843ba2 input=7f1618e5e15cc196]*/
{
- path_t path;
- int mode;
- int dir_fd = DEFAULT_DIR_FD;
- int follow_symlinks = 1;
int result;
- PyObject *return_value = NULL;
- static char *keywords[] = {"path", "mode", "dir_fd",
- "follow_symlinks", NULL};
#ifdef MS_WINDOWS
DWORD attr;
@@ -2943,33 +2796,17 @@ posix_chmod(PyObject *self, PyObject *args, PyObject *kwargs)
int fchmodat_nofollow_unsupported = 0;
#endif
- memset(&path, 0, sizeof(path));
- path.function_name = "chmod";
-#ifdef HAVE_FCHMOD
- path.allow_fd = 1;
-#endif
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&i|$O&p:chmod", keywords,
- path_converter, &path,
- &mode,
-#ifdef HAVE_FCHMODAT
- dir_fd_converter, &dir_fd,
-#else
- dir_fd_unavailable, &dir_fd,
-#endif
- &follow_symlinks))
- return NULL;
-
#if !(defined(HAVE_FCHMODAT) || defined(HAVE_LCHMOD))
if (follow_symlinks_specified("chmod", follow_symlinks))
- goto exit;
+ return NULL;
#endif
#ifdef MS_WINDOWS
Py_BEGIN_ALLOW_THREADS
- if (path.wide)
- attr = GetFileAttributesW(path.wide);
+ if (path->wide)
+ attr = GetFileAttributesW(path->wide);
else
- attr = GetFileAttributesA(path.narrow);
+ attr = GetFileAttributesA(path->narrow);
if (attr == INVALID_FILE_ATTRIBUTES)
result = 0;
else {
@@ -2977,27 +2814,26 @@ posix_chmod(PyObject *self, PyObject *args, PyObject *kwargs)
attr &= ~FILE_ATTRIBUTE_READONLY;
else
attr |= FILE_ATTRIBUTE_READONLY;
- if (path.wide)
- result = SetFileAttributesW(path.wide, attr);
+ if (path->wide)
+ result = SetFileAttributesW(path->wide, attr);
else
- result = SetFileAttributesA(path.narrow, attr);
+ result = SetFileAttributesA(path->narrow, attr);
}
Py_END_ALLOW_THREADS
if (!result) {
- return_value = path_error(&path);
- goto exit;
+ return path_error(path);
}
#else /* MS_WINDOWS */
Py_BEGIN_ALLOW_THREADS
#ifdef HAVE_FCHMOD
- if (path.fd != -1)
- result = fchmod(path.fd, mode);
+ if (path->fd != -1)
+ result = fchmod(path->fd, mode);
else
#endif
#ifdef HAVE_LCHMOD
if ((!follow_symlinks) && (dir_fd == DEFAULT_DIR_FD))
- result = lchmod(path.narrow, mode);
+ result = lchmod(path->narrow, mode);
else
#endif
#ifdef HAVE_FCHMODAT
@@ -3012,7 +2848,7 @@ posix_chmod(PyObject *self, PyObject *args, PyObject *kwargs)
* support dir_fd and follow_symlinks=False. (Hopefully.)
* Until then, we need to be careful what exception we raise.
*/
- result = fchmodat(dir_fd, path.narrow, mode,
+ result = fchmodat(dir_fd, path->narrow, mode,
follow_symlinks ? 0 : AT_SYMLINK_NOFOLLOW);
/*
* But wait! We can't throw the exception without allowing threads,
@@ -3025,7 +2861,7 @@ posix_chmod(PyObject *self, PyObject *args, PyObject *kwargs)
}
else
#endif
- result = chmod(path.narrow, mode);
+ result = chmod(path->narrow, mode);
Py_END_ALLOW_THREADS
if (result) {
@@ -3039,272 +2875,289 @@ posix_chmod(PyObject *self, PyObject *args, PyObject *kwargs)
}
else
#endif
- return_value = path_error(&path);
- goto exit;
+ return path_error(path);
}
#endif
- Py_INCREF(Py_None);
- return_value = Py_None;
-exit:
- path_cleanup(&path);
- return return_value;
+ Py_RETURN_NONE;
}
#ifdef HAVE_FCHMOD
-PyDoc_STRVAR(posix_fchmod__doc__,
-"fchmod(fd, mode)\n\n\
-Change the access permissions of the file given by file\n\
-descriptor fd. Equivalent to os.chmod(fd, mode).");
+/*[clinic input]
+os.fchmod
+
+ fd: int
+ mode: int
+
+Change the access permissions of the file given by file descriptor fd.
+
+Equivalent to os.chmod(fd, mode).
+[clinic start generated code]*/
static PyObject *
-posix_fchmod(PyObject *self, PyObject *args)
+os_fchmod_impl(PyModuleDef *module, int fd, int mode)
+/*[clinic end generated code: output=2ee31ca226d1ed33 input=8ab11975ca01ee5b]*/
{
- int fd, mode, res;
- if (!PyArg_ParseTuple(args, "ii:fchmod", &fd, &mode))
- return NULL;
- Py_BEGIN_ALLOW_THREADS
- res = fchmod(fd, mode);
- Py_END_ALLOW_THREADS
- if (res < 0)
- return posix_error();
+ int res;
+ int async_err = 0;
+
+ do {
+ Py_BEGIN_ALLOW_THREADS
+ res = fchmod(fd, mode);
+ Py_END_ALLOW_THREADS
+ } while (res != 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
+ if (res != 0)
+ return (!async_err) ? posix_error() : NULL;
+
Py_RETURN_NONE;
}
#endif /* HAVE_FCHMOD */
+
#ifdef HAVE_LCHMOD
-PyDoc_STRVAR(posix_lchmod__doc__,
-"lchmod(path, mode)\n\n\
-Change the access permissions of a file. If path is a symlink, this\n\
-affects the link itself rather than the target.\n\
-Equivalent to chmod(path, mode, follow_symlinks=False).");
+/*[clinic input]
+os.lchmod
+
+ path: path_t
+ mode: int
+
+Change the access permissions of a file, without following symbolic links.
+
+If path is a symlink, this affects the link itself rather than the target.
+Equivalent to chmod(path, mode, follow_symlinks=False)."
+[clinic start generated code]*/
static PyObject *
-posix_lchmod(PyObject *self, PyObject *args)
+os_lchmod_impl(PyModuleDef *module, path_t *path, int mode)
+/*[clinic end generated code: output=7c0cc46588d89e46 input=90c5663c7465d24f]*/
{
- path_t path;
- int i;
int res;
- memset(&path, 0, sizeof(path));
- path.function_name = "lchmod";
- if (!PyArg_ParseTuple(args, "O&i:lchmod",
- path_converter, &path, &i))
- return NULL;
Py_BEGIN_ALLOW_THREADS
- res = lchmod(path.narrow, i);
+ res = lchmod(path->narrow, mode);
Py_END_ALLOW_THREADS
if (res < 0) {
- path_error(&path);
- path_cleanup(&path);
+ path_error(path);
return NULL;
}
- path_cleanup(&path);
Py_RETURN_NONE;
}
#endif /* HAVE_LCHMOD */
#ifdef HAVE_CHFLAGS
-PyDoc_STRVAR(posix_chflags__doc__,
-"chflags(path, flags, *, follow_symlinks=True)\n\n\
-Set file flags.\n\
-\n\
-If follow_symlinks is False, and the last element of the path is a symbolic\n\
- link, chflags will change flags on the symbolic link itself instead of the\n\
- file the link points to.\n\
-follow_symlinks may not be implemented on your platform. If it is\n\
-unavailable, using it will raise a NotImplementedError.");
+/*[clinic input]
+os.chflags
+
+ path: path_t
+ flags: unsigned_long(bitwise=True)
+ follow_symlinks: bool=True
+
+Set file flags.
+
+If follow_symlinks is False, and the last element of the path is a symbolic
+ link, chflags will change flags on the symbolic link itself instead of the
+ file the link points to.
+follow_symlinks may not be implemented on your platform. If it is
+unavailable, using it will raise a NotImplementedError.
+
+[clinic start generated code]*/
static PyObject *
-posix_chflags(PyObject *self, PyObject *args, PyObject *kwargs)
+os_chflags_impl(PyModuleDef *module, path_t *path, unsigned long flags,
+ int follow_symlinks)
+/*[clinic end generated code: output=ff2d6e73534a95b9 input=0327e29feb876236]*/
{
- path_t path;
- unsigned long flags;
- int follow_symlinks = 1;
int result;
- PyObject *return_value = NULL;
- static char *keywords[] = {"path", "flags", "follow_symlinks", NULL};
-
- memset(&path, 0, sizeof(path));
- path.function_name = "chflags";
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&k|$i:chflags", keywords,
- path_converter, &path,
- &flags, &follow_symlinks))
- return NULL;
#ifndef HAVE_LCHFLAGS
if (follow_symlinks_specified("chflags", follow_symlinks))
- goto exit;
+ return NULL;
#endif
Py_BEGIN_ALLOW_THREADS
#ifdef HAVE_LCHFLAGS
if (!follow_symlinks)
- result = lchflags(path.narrow, flags);
+ result = lchflags(path->narrow, flags);
else
#endif
- result = chflags(path.narrow, flags);
+ result = chflags(path->narrow, flags);
Py_END_ALLOW_THREADS
- if (result) {
- return_value = path_error(&path);
- goto exit;
- }
-
- return_value = Py_None;
- Py_INCREF(Py_None);
+ if (result)
+ return path_error(path);
-exit:
- path_cleanup(&path);
- return return_value;
+ Py_RETURN_NONE;
}
#endif /* HAVE_CHFLAGS */
+
#ifdef HAVE_LCHFLAGS
-PyDoc_STRVAR(posix_lchflags__doc__,
-"lchflags(path, flags)\n\n\
-Set file flags.\n\
-This function will not follow symbolic links.\n\
-Equivalent to chflags(path, flags, follow_symlinks=False).");
+/*[clinic input]
+os.lchflags
+
+ path: path_t
+ flags: unsigned_long(bitwise=True)
+
+Set file flags.
+
+This function will not follow symbolic links.
+Equivalent to chflags(path, flags, follow_symlinks=False).
+[clinic start generated code]*/
static PyObject *
-posix_lchflags(PyObject *self, PyObject *args)
+os_lchflags_impl(PyModuleDef *module, path_t *path, unsigned long flags)
+/*[clinic end generated code: output=6741322fb949661b input=f9f82ea8b585ca9d]*/
{
- path_t path;
- unsigned long flags;
int res;
- memset(&path, 0, sizeof(path));
- path.function_name = "lchflags";
- if (!PyArg_ParseTuple(args, "O&k:lchflags",
- path_converter, &path, &flags))
- return NULL;
Py_BEGIN_ALLOW_THREADS
- res = lchflags(path.narrow, flags);
+ res = lchflags(path->narrow, flags);
Py_END_ALLOW_THREADS
if (res < 0) {
- path_error(&path);
- path_cleanup(&path);
- return NULL;
+ return path_error(path);
}
- path_cleanup(&path);
Py_RETURN_NONE;
}
#endif /* HAVE_LCHFLAGS */
+
#ifdef HAVE_CHROOT
-PyDoc_STRVAR(posix_chroot__doc__,
-"chroot(path)\n\n\
-Change root directory to path.");
+/*[clinic input]
+os.chroot
+ path: path_t
+
+Change root directory to path.
+
+[clinic start generated code]*/
static PyObject *
-posix_chroot(PyObject *self, PyObject *args)
+os_chroot_impl(PyModuleDef *module, path_t *path)
+/*[clinic end generated code: output=b6dbfabe74ecaa9d input=14822965652c3dc3]*/
{
- return posix_1str("chroot", args, "O&:chroot", chroot);
+ int res;
+ Py_BEGIN_ALLOW_THREADS
+ res = chroot(path->narrow);
+ Py_END_ALLOW_THREADS
+ if (res < 0)
+ return path_error(path);
+ Py_RETURN_NONE;
}
-#endif
+#endif /* HAVE_CHROOT */
+
#ifdef HAVE_FSYNC
-PyDoc_STRVAR(posix_fsync__doc__,
-"fsync(fildes)\n\n\
-force write of file with filedescriptor to disk.");
+/*[clinic input]
+os.fsync
+
+ fd: fildes
+
+Force write of fd to disk.
+[clinic start generated code]*/
static PyObject *
-posix_fsync(PyObject *self, PyObject *fdobj)
+os_fsync_impl(PyModuleDef *module, int fd)
+/*[clinic end generated code: output=83a350851064aea7 input=21c3645c056967f2]*/
{
- return posix_fildes(fdobj, fsync);
+ return posix_fildes_fd(fd, fsync);
}
#endif /* HAVE_FSYNC */
+
#ifdef HAVE_SYNC
-PyDoc_STRVAR(posix_sync__doc__,
-"sync()\n\n\
-Force write of everything to disk.");
+/*[clinic input]
+os.sync
+
+Force write of everything to disk.
+[clinic start generated code]*/
static PyObject *
-posix_sync(PyObject *self, PyObject *noargs)
+os_sync_impl(PyModuleDef *module)
+/*[clinic end generated code: output=ba524f656c201c40 input=84749fe5e9b404ff]*/
{
Py_BEGIN_ALLOW_THREADS
sync();
Py_END_ALLOW_THREADS
Py_RETURN_NONE;
}
-#endif
+#endif /* HAVE_SYNC */
-#ifdef HAVE_FDATASYNC
+#ifdef HAVE_FDATASYNC
#ifdef __hpux
extern int fdatasync(int); /* On HP-UX, in libc but not in unistd.h */
#endif
-PyDoc_STRVAR(posix_fdatasync__doc__,
-"fdatasync(fildes)\n\n\
-force write of file with filedescriptor to disk.\n\
- does not force update of metadata.");
+/*[clinic input]
+os.fdatasync
+
+ fd: fildes
+
+Force write of fd to disk without forcing update of metadata.
+[clinic start generated code]*/
static PyObject *
-posix_fdatasync(PyObject *self, PyObject *fdobj)
+os_fdatasync_impl(PyModuleDef *module, int fd)
+/*[clinic end generated code: output=e0f04a3aff515b75 input=bc74791ee54dd291]*/
{
- return posix_fildes(fdobj, fdatasync);
+ return posix_fildes_fd(fd, fdatasync);
}
#endif /* HAVE_FDATASYNC */
#ifdef HAVE_CHOWN
-PyDoc_STRVAR(posix_chown__doc__,
-"chown(path, uid, gid, *, dir_fd=None, follow_symlinks=True)\n\n\
-Change the owner and group id of path to the numeric uid and gid.\n\
-\n\
-path may always be specified as a string.\n\
-On some platforms, path may also be specified as an open file descriptor.\n\
- If this functionality is unavailable, using it raises an exception.\n\
-If dir_fd is not None, it should be a file descriptor open to a directory,\n\
- and path should be relative; path will then be relative to that directory.\n\
-If follow_symlinks is False, and the last element of the path is a symbolic\n\
- link, chown will modify the symbolic link itself instead of the file the\n\
- link points to.\n\
-It is an error to use dir_fd or follow_symlinks when specifying path as\n\
- an open file descriptor.\n\
-dir_fd and follow_symlinks may not be implemented on your platform.\n\
- If they are unavailable, using them will raise a NotImplementedError.");
+/*[clinic input]
+os.chown
+
+ path : path_t(allow_fd='PATH_HAVE_FCHOWN')
+ Path to be examined; can be string, bytes, or open-file-descriptor int.
+
+ uid: uid_t
+
+ gid: gid_t
+
+ *
+
+ dir_fd : dir_fd(requires='fchownat') = None
+ If not None, it should be a file descriptor open to a directory,
+ and path should be relative; path will then be relative to that
+ directory.
+
+ follow_symlinks: bool = True
+ If False, and the last element of the path is a symbolic link,
+ stat will examine the symbolic link itself instead of the file
+ the link points to.
+
+Change the owner and group id of path to the numeric uid and gid.\
+
+path may always be specified as a string.
+On some platforms, path may also be specified as an open file descriptor.
+ If this functionality is unavailable, using it raises an exception.
+If dir_fd is not None, it should be a file descriptor open to a directory,
+ and path should be relative; path will then be relative to that directory.
+If follow_symlinks is False, and the last element of the path is a symbolic
+ link, chown will modify the symbolic link itself instead of the file the
+ link points to.
+It is an error to use dir_fd or follow_symlinks when specifying path as
+ an open file descriptor.
+dir_fd and follow_symlinks may not be implemented on your platform.
+ If they are unavailable, using them will raise a NotImplementedError.
+
+[clinic start generated code]*/
static PyObject *
-posix_chown(PyObject *self, PyObject *args, PyObject *kwargs)
+os_chown_impl(PyModuleDef *module, path_t *path, uid_t uid, gid_t gid,
+ int dir_fd, int follow_symlinks)
+/*[clinic end generated code: output=e0a4559f394dbd91 input=a61cc35574814d5d]*/
{
- path_t path;
- uid_t uid;
- gid_t gid;
- int dir_fd = DEFAULT_DIR_FD;
- int follow_symlinks = 1;
int result;
- PyObject *return_value = NULL;
- static char *keywords[] = {"path", "uid", "gid", "dir_fd",
- "follow_symlinks", NULL};
-
- memset(&path, 0, sizeof(path));
- path.function_name = "chown";
-#ifdef HAVE_FCHOWN
- path.allow_fd = 1;
-#endif
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&O&|$O&p:chown", keywords,
- path_converter, &path,
- _Py_Uid_Converter, &uid,
- _Py_Gid_Converter, &gid,
-#ifdef HAVE_FCHOWNAT
- dir_fd_converter, &dir_fd,
-#else
- dir_fd_unavailable, &dir_fd,
-#endif
- &follow_symlinks))
- return NULL;
#if !(defined(HAVE_LCHOWN) || defined(HAVE_FCHOWNAT))
if (follow_symlinks_specified("chown", follow_symlinks))
- goto exit;
+ return NULL;
#endif
- if (dir_fd_and_fd_invalid("chown", dir_fd, path.fd) ||
- fd_and_follow_symlinks_invalid("chown", path.fd, follow_symlinks))
- goto exit;
+ if (dir_fd_and_fd_invalid("chown", dir_fd, path->fd) ||
+ fd_and_follow_symlinks_invalid("chown", path->fd, follow_symlinks))
+ return NULL;
#ifdef __APPLE__
/*
@@ -3315,102 +3168,98 @@ posix_chown(PyObject *self, PyObject *args, PyObject *kwargs)
*/
if ((!follow_symlinks) && (lchown == NULL)) {
follow_symlinks_specified("chown", follow_symlinks);
- goto exit;
+ return NULL;
}
#endif
Py_BEGIN_ALLOW_THREADS
#ifdef HAVE_FCHOWN
- if (path.fd != -1)
- result = fchown(path.fd, uid, gid);
+ if (path->fd != -1)
+ result = fchown(path->fd, uid, gid);
else
#endif
#ifdef HAVE_LCHOWN
if ((!follow_symlinks) && (dir_fd == DEFAULT_DIR_FD))
- result = lchown(path.narrow, uid, gid);
+ result = lchown(path->narrow, uid, gid);
else
#endif
#ifdef HAVE_FCHOWNAT
if ((dir_fd != DEFAULT_DIR_FD) || (!follow_symlinks))
- result = fchownat(dir_fd, path.narrow, uid, gid,
+ result = fchownat(dir_fd, path->narrow, uid, gid,
follow_symlinks ? 0 : AT_SYMLINK_NOFOLLOW);
else
#endif
- result = chown(path.narrow, uid, gid);
+ result = chown(path->narrow, uid, gid);
Py_END_ALLOW_THREADS
- if (result) {
- return_value = path_error(&path);
- goto exit;
- }
-
- return_value = Py_None;
- Py_INCREF(Py_None);
+ if (result)
+ return path_error(path);
-exit:
- path_cleanup(&path);
- return return_value;
+ Py_RETURN_NONE;
}
#endif /* HAVE_CHOWN */
+
#ifdef HAVE_FCHOWN
-PyDoc_STRVAR(posix_fchown__doc__,
-"fchown(fd, uid, gid)\n\n\
-Change the owner and group id of the file given by file descriptor\n\
-fd to the numeric uid and gid. Equivalent to os.chown(fd, uid, gid).");
+/*[clinic input]
+os.fchown
+
+ fd: int
+ uid: uid_t
+ gid: gid_t
+
+Change the owner and group id of the file specified by file descriptor.
+
+Equivalent to os.chown(fd, uid, gid).
+
+[clinic start generated code]*/
static PyObject *
-posix_fchown(PyObject *self, PyObject *args)
+os_fchown_impl(PyModuleDef *module, int fd, uid_t uid, gid_t gid)
+/*[clinic end generated code: output=7545abf8f6086d76 input=3af544ba1b13a0d7]*/
{
- int fd;
- uid_t uid;
- gid_t gid;
int res;
- if (!PyArg_ParseTuple(args, "iO&O&:fchown", &fd,
- _Py_Uid_Converter, &uid,
- _Py_Gid_Converter, &gid))
- return NULL;
- Py_BEGIN_ALLOW_THREADS
- res = fchown(fd, uid, gid);
- Py_END_ALLOW_THREADS
- if (res < 0)
- return posix_error();
+ int async_err = 0;
+
+ do {
+ Py_BEGIN_ALLOW_THREADS
+ res = fchown(fd, uid, gid);
+ Py_END_ALLOW_THREADS
+ } while (res != 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
+ if (res != 0)
+ return (!async_err) ? posix_error() : NULL;
+
Py_RETURN_NONE;
}
#endif /* HAVE_FCHOWN */
+
#ifdef HAVE_LCHOWN
-PyDoc_STRVAR(posix_lchown__doc__,
-"lchown(path, uid, gid)\n\n\
-Change the owner and group id of path to the numeric uid and gid.\n\
-This function will not follow symbolic links.\n\
-Equivalent to os.chown(path, uid, gid, follow_symlinks=False).");
+/*[clinic input]
+os.lchown
+
+ path : path_t
+ uid: uid_t
+ gid: gid_t
+
+Change the owner and group id of path to the numeric uid and gid.
+
+This function will not follow symbolic links.
+Equivalent to os.chown(path, uid, gid, follow_symlinks=False).
+[clinic start generated code]*/
static PyObject *
-posix_lchown(PyObject *self, PyObject *args)
+os_lchown_impl(PyModuleDef *module, path_t *path, uid_t uid, gid_t gid)
+/*[clinic end generated code: output=bb0d2da1579ac275 input=b1c6014d563a7161]*/
{
- path_t path;
- uid_t uid;
- gid_t gid;
int res;
- memset(&path, 0, sizeof(path));
- path.function_name = "lchown";
- if (!PyArg_ParseTuple(args, "O&O&O&:lchown",
- path_converter, &path,
- _Py_Uid_Converter, &uid,
- _Py_Gid_Converter, &gid))
- return NULL;
Py_BEGIN_ALLOW_THREADS
- res = lchown(path.narrow, uid, gid);
+ res = lchown(path->narrow, uid, gid);
Py_END_ALLOW_THREADS
if (res < 0) {
- path_error(&path);
- path_cleanup(&path);
- return NULL;
+ return path_error(path);
}
- path_cleanup(&path);
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
#endif /* HAVE_LCHOWN */
@@ -3487,148 +3336,125 @@ posix_getcwd(int use_bytes)
return obj;
}
-PyDoc_STRVAR(posix_getcwd__doc__,
-"getcwd() -> path\n\n\
-Return a unicode string representing the current working directory.");
+
+/*[clinic input]
+os.getcwd
+
+Return a unicode string representing the current working directory.
+[clinic start generated code]*/
static PyObject *
-posix_getcwd_unicode(PyObject *self)
+os_getcwd_impl(PyModuleDef *module)
+/*[clinic end generated code: output=efe3a8c0121525ea input=f069211bb70e3d39]*/
{
return posix_getcwd(0);
}
-PyDoc_STRVAR(posix_getcwdb__doc__,
-"getcwdb() -> path\n\n\
-Return a bytes string representing the current working directory.");
+
+/*[clinic input]
+os.getcwdb
+
+Return a bytes string representing the current working directory.
+[clinic start generated code]*/
static PyObject *
-posix_getcwd_bytes(PyObject *self)
+os_getcwdb_impl(PyModuleDef *module)
+/*[clinic end generated code: output=7fce42ee4b2a296a input=f6f6a378dad3d9cb]*/
{
return posix_getcwd(1);
}
+
#if ((!defined(HAVE_LINK)) && defined(MS_WINDOWS))
#define HAVE_LINK 1
#endif
#ifdef HAVE_LINK
-PyDoc_STRVAR(posix_link__doc__,
-"link(src, dst, *, src_dir_fd=None, dst_dir_fd=None, follow_symlinks=True)\n\n\
-Create a hard link to a file.\n\
-\n\
-If either src_dir_fd or dst_dir_fd is not None, it should be a file\n\
- descriptor open to a directory, and the respective path string (src or dst)\n\
- should be relative; the path will then be relative to that directory.\n\
-If follow_symlinks is False, and the last element of src is a symbolic\n\
- link, link will create a link to the symbolic link itself instead of the\n\
- file the link points to.\n\
-src_dir_fd, dst_dir_fd, and follow_symlinks may not be implemented on your\n\
- platform. If they are unavailable, using them will raise a\n\
- NotImplementedError.");
-
-static PyObject *
-posix_link(PyObject *self, PyObject *args, PyObject *kwargs)
-{
- path_t src, dst;
- int src_dir_fd = DEFAULT_DIR_FD;
- int dst_dir_fd = DEFAULT_DIR_FD;
- int follow_symlinks = 1;
- PyObject *return_value = NULL;
- static char *keywords[] = {"src", "dst", "src_dir_fd", "dst_dir_fd",
- "follow_symlinks", NULL};
+/*[clinic input]
+
+os.link
+
+ src : path_t
+ dst : path_t
+ *
+ src_dir_fd : dir_fd = None
+ dst_dir_fd : dir_fd = None
+ follow_symlinks: bool = True
+
+Create a hard link to a file.
+
+If either src_dir_fd or dst_dir_fd is not None, it should be a file
+ descriptor open to a directory, and the respective path string (src or dst)
+ should be relative; the path will then be relative to that directory.
+If follow_symlinks is False, and the last element of src is a symbolic
+ link, link will create a link to the symbolic link itself instead of the
+ file the link points to.
+src_dir_fd, dst_dir_fd, and follow_symlinks may not be implemented on your
+ platform. If they are unavailable, using them will raise a
+ NotImplementedError.
+[clinic start generated code]*/
+
+static PyObject *
+os_link_impl(PyModuleDef *module, path_t *src, path_t *dst, int src_dir_fd,
+ int dst_dir_fd, int follow_symlinks)
+/*[clinic end generated code: output=f47a7e88f7b391b6 input=b0095ebbcbaa7e04]*/
+{
#ifdef MS_WINDOWS
BOOL result;
#else
int result;
#endif
- memset(&src, 0, sizeof(src));
- memset(&dst, 0, sizeof(dst));
- src.function_name = "link";
- dst.function_name = "link";
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&|O&O&p:link", keywords,
- path_converter, &src,
- path_converter, &dst,
- dir_fd_converter, &src_dir_fd,
- dir_fd_converter, &dst_dir_fd,
- &follow_symlinks))
- return NULL;
-
#ifndef HAVE_LINKAT
if ((src_dir_fd != DEFAULT_DIR_FD) || (dst_dir_fd != DEFAULT_DIR_FD)) {
argument_unavailable_error("link", "src_dir_fd and dst_dir_fd");
- goto exit;
+ return NULL;
}
#endif
- if ((src.narrow && dst.wide) || (src.wide && dst.narrow)) {
+ if ((src->narrow && dst->wide) || (src->wide && dst->narrow)) {
PyErr_SetString(PyExc_NotImplementedError,
"link: src and dst must be the same type");
- goto exit;
+ return NULL;
}
#ifdef MS_WINDOWS
Py_BEGIN_ALLOW_THREADS
- if (src.wide)
- result = CreateHardLinkW(dst.wide, src.wide, NULL);
+ if (src->wide)
+ result = CreateHardLinkW(dst->wide, src->wide, NULL);
else
- result = CreateHardLinkA(dst.narrow, src.narrow, NULL);
+ result = CreateHardLinkA(dst->narrow, src->narrow, NULL);
Py_END_ALLOW_THREADS
- if (!result) {
- return_value = path_error2(&src, &dst);
- goto exit;
- }
+ if (!result)
+ return path_error2(src, dst);
#else
Py_BEGIN_ALLOW_THREADS
#ifdef HAVE_LINKAT
if ((src_dir_fd != DEFAULT_DIR_FD) ||
(dst_dir_fd != DEFAULT_DIR_FD) ||
(!follow_symlinks))
- result = linkat(src_dir_fd, src.narrow,
- dst_dir_fd, dst.narrow,
+ result = linkat(src_dir_fd, src->narrow,
+ dst_dir_fd, dst->narrow,
follow_symlinks ? AT_SYMLINK_FOLLOW : 0);
else
#endif
- result = link(src.narrow, dst.narrow);
+ result = link(src->narrow, dst->narrow);
Py_END_ALLOW_THREADS
- if (result) {
- return_value = path_error2(&src, &dst);
- goto exit;
- }
+ if (result)
+ return path_error2(src, dst);
#endif
- return_value = Py_None;
- Py_INCREF(Py_None);
-
-exit:
- path_cleanup(&src);
- path_cleanup(&dst);
- return return_value;
+ Py_RETURN_NONE;
}
#endif
-
-PyDoc_STRVAR(posix_listdir__doc__,
-"listdir(path='.') -> list_of_filenames\n\n\
-Return a list containing the names of the files in the directory.\n\
-The list is in arbitrary order. It does not include the special\n\
-entries '.' and '..' even if they are present in the directory.\n\
-\n\
-path can be specified as either str or bytes. If path is bytes,\n\
- the filenames returned will also be bytes; in all other circumstances\n\
- the filenames returned will be str.\n\
-On some platforms, path may also be specified as an open file descriptor;\n\
- the file descriptor must refer to a directory.\n\
- If this functionality is unavailable, using it raises NotImplementedError.");
-
#if defined(MS_WINDOWS) && !defined(HAVE_OPENDIR)
static PyObject *
_listdir_windows_no_opendir(path_t *path, PyObject *list)
{
- static char *keywords[] = {"path", NULL};
PyObject *v;
HANDLE hFindFile = INVALID_HANDLE_VALUE;
BOOL result;
@@ -3887,123 +3713,117 @@ exit:
} /* end of _posix_listdir */
#endif /* which OS */
-static PyObject *
-posix_listdir(PyObject *self, PyObject *args, PyObject *kwargs)
-{
- path_t path;
- PyObject *list = NULL;
- static char *keywords[] = {"path", NULL};
- PyObject *return_value;
- memset(&path, 0, sizeof(path));
- path.function_name = "listdir";
- path.nullable = 1;
-#ifdef HAVE_FDOPENDIR
- path.allow_fd = 1;
- path.fd = -1;
-#endif
+/*[clinic input]
+os.listdir
+
+ path : path_t(nullable=True, allow_fd='PATH_HAVE_FDOPENDIR') = None
+
+Return a list containing the names of the files in the directory.
+
+path can be specified as either str or bytes. If path is bytes,
+ the filenames returned will also be bytes; in all other circumstances
+ the filenames returned will be str.
+If path is None, uses the path='.'.
+On some platforms, path may also be specified as an open file descriptor;\
+ the file descriptor must refer to a directory.
+ If this functionality is unavailable, using it raises NotImplementedError.
+
+The list is in arbitrary order. It does not include the special
+entries '.' and '..' even if they are present in the directory.
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|O&:listdir", keywords,
- path_converter, &path)) {
- return NULL;
- }
+[clinic start generated code]*/
+
+static PyObject *
+os_listdir_impl(PyModuleDef *module, path_t *path)
+/*[clinic end generated code: output=1fbe67c1f780c8b7 input=09e300416e3cd729]*/
+{
#if defined(MS_WINDOWS) && !defined(HAVE_OPENDIR)
- return_value = _listdir_windows_no_opendir(&path, list);
+ return _listdir_windows_no_opendir(path, NULL);
#else
- return_value = _posix_listdir(&path, list);
+ return _posix_listdir(path, NULL);
#endif
- path_cleanup(&path);
- return return_value;
}
#ifdef MS_WINDOWS
/* A helper function for abspath on win32 */
+/*[clinic input]
+os._getfullpathname
+
+ path: path_t
+ /
+
+[clinic start generated code]*/
+
static PyObject *
-posix__getfullpathname(PyObject *self, PyObject *args)
+os__getfullpathname_impl(PyModuleDef *module, path_t *path)
+/*[clinic end generated code: output=b90b1f103b08773f input=332ed537c29d0a3e]*/
{
- const char *path;
- char outbuf[MAX_PATH];
- char *temp;
- PyObject *po;
-
- if (PyArg_ParseTuple(args, "U|:_getfullpathname", &po))
+ if (!path->narrow)
{
- wchar_t *wpath;
wchar_t woutbuf[MAX_PATH], *woutbufp = woutbuf;
wchar_t *wtemp;
DWORD result;
PyObject *v;
- wpath = PyUnicode_AsUnicode(po);
- if (wpath == NULL)
- return NULL;
- result = GetFullPathNameW(wpath,
+ result = GetFullPathNameW(path->wide,
Py_ARRAY_LENGTH(woutbuf),
woutbuf, &wtemp);
if (result > Py_ARRAY_LENGTH(woutbuf)) {
woutbufp = PyMem_New(wchar_t, result);
if (!woutbufp)
return PyErr_NoMemory();
- result = GetFullPathNameW(wpath, result, woutbufp, &wtemp);
+ result = GetFullPathNameW(path->wide, result, woutbufp, &wtemp);
}
if (result)
v = PyUnicode_FromWideChar(woutbufp, wcslen(woutbufp));
else
- v = win32_error_object("GetFullPathNameW", po);
+ v = win32_error_object("GetFullPathNameW", path->object);
if (woutbufp != woutbuf)
PyMem_Free(woutbufp);
return v;
}
- /* Drop the argument parsing error as narrow strings
- are also valid. */
- PyErr_Clear();
+ else {
+ char outbuf[MAX_PATH];
+ char *temp;
- if (!PyArg_ParseTuple (args, "y:_getfullpathname",
- &path))
- return NULL;
- if (win32_warn_bytes_api())
- return NULL;
- if (!GetFullPathName(path, Py_ARRAY_LENGTH(outbuf),
- outbuf, &temp)) {
- win32_error("GetFullPathName", path);
- return NULL;
- }
- if (PyUnicode_Check(PyTuple_GetItem(args, 0))) {
- return PyUnicode_Decode(outbuf, strlen(outbuf),
- Py_FileSystemDefaultEncoding, NULL);
+ if (!GetFullPathName(path->narrow, Py_ARRAY_LENGTH(outbuf),
+ outbuf, &temp)) {
+ win32_error_object("GetFullPathName", path->object);
+ return NULL;
+ }
+ return PyBytes_FromString(outbuf);
}
- return PyBytes_FromString(outbuf);
-} /* end of posix__getfullpathname */
+}
+
+
+/*[clinic input]
+os._getfinalpathname
+ path: unicode
+ /
+A helper function for samepath on windows.
+[clinic start generated code]*/
-/* A helper function for samepath on windows */
static PyObject *
-posix__getfinalpathname(PyObject *self, PyObject *args)
+os__getfinalpathname_impl(PyModuleDef *module, PyObject *path)
+/*[clinic end generated code: output=8be81a5f51a34bcf input=71d5e89334891bf4]*/
{
HANDLE hFile;
int buf_size;
wchar_t *target_path;
int result_length;
- PyObject *po, *result;
- wchar_t *path;
+ PyObject *result;
+ wchar_t *path_wchar;
- if (!PyArg_ParseTuple(args, "U|:_getfinalpathname", &po))
+ path_wchar = PyUnicode_AsUnicode(path);
+ if (path_wchar == NULL)
return NULL;
- path = PyUnicode_AsUnicode(po);
- if (path == NULL)
- return NULL;
-
- if(!check_GetFinalPathNameByHandle()) {
- /* If the OS doesn't have GetFinalPathNameByHandle, return a
- NotImplementedError. */
- return PyErr_Format(PyExc_NotImplementedError,
- "GetFinalPathNameByHandle not available on this platform");
- }
hFile = CreateFileW(
- path,
+ path_wchar,
0, /* desired access */
0, /* share mode */
NULL, /* security attributes */
@@ -4013,89 +3833,84 @@ posix__getfinalpathname(PyObject *self, PyObject *args)
NULL);
if(hFile == INVALID_HANDLE_VALUE)
- return win32_error_object("CreateFileW", po);
+ return win32_error_object("CreateFileW", path);
/* We have a good handle to the target, use it to determine the
target path name. */
- buf_size = Py_GetFinalPathNameByHandleW(hFile, 0, 0, VOLUME_NAME_NT);
+ buf_size = GetFinalPathNameByHandleW(hFile, 0, 0, VOLUME_NAME_NT);
if(!buf_size)
- return win32_error_object("GetFinalPathNameByHandle", po);
+ return win32_error_object("GetFinalPathNameByHandle", path);
target_path = PyMem_New(wchar_t, buf_size+1);
if(!target_path)
return PyErr_NoMemory();
- result_length = Py_GetFinalPathNameByHandleW(hFile, target_path,
- buf_size, VOLUME_NAME_DOS);
+ result_length = GetFinalPathNameByHandleW(hFile, target_path,
+ buf_size, VOLUME_NAME_DOS);
if(!result_length)
- return win32_error_object("GetFinalPathNamyByHandle", po);
+ return win32_error_object("GetFinalPathNamyByHandle", path);
if(!CloseHandle(hFile))
- return win32_error_object("CloseHandle", po);
+ return win32_error_object("CloseHandle", path);
target_path[result_length] = 0;
result = PyUnicode_FromWideChar(target_path, result_length);
PyMem_Free(target_path);
return result;
-
-} /* end of posix__getfinalpathname */
+}
PyDoc_STRVAR(posix__isdir__doc__,
"Return true if the pathname refers to an existing directory.");
+/*[clinic input]
+os._isdir
+
+ path: path_t
+ /
+
+[clinic start generated code]*/
+
static PyObject *
-posix__isdir(PyObject *self, PyObject *args)
+os__isdir_impl(PyModuleDef *module, path_t *path)
+/*[clinic end generated code: output=f17b2d4e1994b0ff input=e794f12faab62a2a]*/
{
- const char *path;
- PyObject *po;
DWORD attributes;
- if (PyArg_ParseTuple(args, "U|:_isdir", &po)) {
- wchar_t *wpath = PyUnicode_AsUnicode(po);
- if (wpath == NULL)
- return NULL;
-
- attributes = GetFileAttributesW(wpath);
- if (attributes == INVALID_FILE_ATTRIBUTES)
- Py_RETURN_FALSE;
- goto check;
- }
- /* Drop the argument parsing error as narrow strings
- are also valid. */
- PyErr_Clear();
+ if (!path->narrow)
+ attributes = GetFileAttributesW(path->wide);
+ else
+ attributes = GetFileAttributesA(path->narrow);
- if (!PyArg_ParseTuple(args, "y:_isdir", &path))
- return NULL;
- if (win32_warn_bytes_api())
- return NULL;
- attributes = GetFileAttributesA(path);
if (attributes == INVALID_FILE_ATTRIBUTES)
Py_RETURN_FALSE;
-check:
if (attributes & FILE_ATTRIBUTE_DIRECTORY)
Py_RETURN_TRUE;
else
Py_RETURN_FALSE;
}
-PyDoc_STRVAR(posix__getvolumepathname__doc__,
-"Return volume mount point of the specified path.");
-/* A helper function for ismount on windows */
+/*[clinic input]
+os._getvolumepathname
+
+ path: unicode
+
+A helper function for ismount on Win32.
+[clinic start generated code]*/
+
static PyObject *
-posix__getvolumepathname(PyObject *self, PyObject *args)
+os__getvolumepathname_impl(PyModuleDef *module, PyObject *path)
+/*[clinic end generated code: output=79a0ba729f956dbe input=7eacadc40acbda6b]*/
{
- PyObject *po, *result;
- wchar_t *path, *mountpath=NULL;
+ PyObject *result;
+ wchar_t *path_wchar, *mountpath=NULL;
size_t buflen;
BOOL ret;
- if (!PyArg_ParseTuple(args, "U|:_getvolumepathname", &po))
- return NULL;
- path = PyUnicode_AsUnicodeAndSize(po, &buflen);
- if (path == NULL)
+ path_wchar = PyUnicode_AsUnicodeAndSize(path, &buflen);
+ if (path_wchar == NULL)
return NULL;
buflen += 1;
@@ -4112,12 +3927,12 @@ posix__getvolumepathname(PyObject *self, PyObject *args)
return PyErr_NoMemory();
Py_BEGIN_ALLOW_THREADS
- ret = GetVolumePathNameW(path, mountpath,
+ ret = GetVolumePathNameW(path_wchar, mountpath,
Py_SAFE_DOWNCAST(buflen, size_t, DWORD));
Py_END_ALLOW_THREADS
if (!ret) {
- result = win32_error_object("_getvolumepathname", po);
+ result = win32_error_object("_getvolumepathname", path);
goto exit;
}
result = PyUnicode_FromWideChar(mountpath, wcslen(mountpath));
@@ -4126,78 +3941,66 @@ exit:
PyMem_Free(mountpath);
return result;
}
-/* end of posix__getvolumepathname */
#endif /* MS_WINDOWS */
-PyDoc_STRVAR(posix_mkdir__doc__,
-"mkdir(path, mode=0o777, *, dir_fd=None)\n\n\
-Create a directory.\n\
-\n\
-If dir_fd is not None, it should be a file descriptor open to a directory,\n\
- and path should be relative; path will then be relative to that directory.\n\
-dir_fd may not be implemented on your platform.\n\
- If it is unavailable, using it will raise a NotImplementedError.\n\
-\n\
-The mode argument is ignored on Windows.");
+
+/*[clinic input]
+os.mkdir
+
+ path : path_t
+
+ mode: int = 0o777
+
+ *
+
+ dir_fd : dir_fd(requires='mkdirat') = None
+
+# "mkdir(path, mode=0o777, *, dir_fd=None)\n\n\
+
+Create a directory.
+
+If dir_fd is not None, it should be a file descriptor open to a directory,
+ and path should be relative; path will then be relative to that directory.
+dir_fd may not be implemented on your platform.
+ If it is unavailable, using it will raise a NotImplementedError.
+
+The mode argument is ignored on Windows.
+[clinic start generated code]*/
static PyObject *
-posix_mkdir(PyObject *self, PyObject *args, PyObject *kwargs)
+os_mkdir_impl(PyModuleDef *module, path_t *path, int mode, int dir_fd)
+/*[clinic end generated code: output=8bf1f738873ef2c5 input=e965f68377e9b1ce]*/
{
- path_t path;
- int mode = 0777;
- int dir_fd = DEFAULT_DIR_FD;
- static char *keywords[] = {"path", "mode", "dir_fd", NULL};
- PyObject *return_value = NULL;
int result;
- memset(&path, 0, sizeof(path));
- path.function_name = "mkdir";
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&|i$O&:mkdir", keywords,
- path_converter, &path, &mode,
-#ifdef HAVE_MKDIRAT
- dir_fd_converter, &dir_fd
-#else
- dir_fd_unavailable, &dir_fd
-#endif
- ))
- return NULL;
-
#ifdef MS_WINDOWS
Py_BEGIN_ALLOW_THREADS
- if (path.wide)
- result = CreateDirectoryW(path.wide, NULL);
+ if (path->wide)
+ result = CreateDirectoryW(path->wide, NULL);
else
- result = CreateDirectoryA(path.narrow, NULL);
+ result = CreateDirectoryA(path->narrow, NULL);
Py_END_ALLOW_THREADS
- if (!result) {
- return_value = path_error(&path);
- goto exit;
- }
+ if (!result)
+ return path_error(path);
#else
Py_BEGIN_ALLOW_THREADS
#if HAVE_MKDIRAT
if (dir_fd != DEFAULT_DIR_FD)
- result = mkdirat(dir_fd, path.narrow, mode);
+ result = mkdirat(dir_fd, path->narrow, mode);
else
#endif
#if ( defined(__WATCOMC__) || defined(PYCC_VACPP) ) && !defined(__QNX__)
- result = mkdir(path.narrow);
+ result = mkdir(path->narrow);
#else
- result = mkdir(path.narrow, mode);
+ result = mkdir(path->narrow, mode);
#endif
Py_END_ALLOW_THREADS
- if (result < 0) {
- return_value = path_error(&path);
- goto exit;
- }
+ if (result < 0)
+ return path_error(path);
#endif
- return_value = Py_None;
- Py_INCREF(Py_None);
-exit:
- path_cleanup(&path);
- return return_value;
+ Py_RETURN_NONE;
}
@@ -4208,17 +4011,20 @@ exit:
#ifdef HAVE_NICE
-PyDoc_STRVAR(posix_nice__doc__,
-"nice(inc) -> new_priority\n\n\
-Decrease the priority of process by inc and return the new priority.");
+/*[clinic input]
+os.nice
+
+ increment: int
+ /
+
+Add increment to the priority of process and return the new priority.
+[clinic start generated code]*/
static PyObject *
-posix_nice(PyObject *self, PyObject *args)
+os_nice_impl(PyModuleDef *module, int increment)
+/*[clinic end generated code: output=8870418a3fc07b51 input=864be2d402a21da2]*/
{
- int increment, value;
-
- if (!PyArg_ParseTuple(args, "i:nice", &increment))
- return NULL;
+ int value;
/* There are two flavours of 'nice': one that returns the new
priority (as required by almost all standards out there) and the
@@ -4245,17 +4051,21 @@ posix_nice(PyObject *self, PyObject *args)
#ifdef HAVE_GETPRIORITY
-PyDoc_STRVAR(posix_getpriority__doc__,
-"getpriority(which, who) -> current_priority\n\n\
-Get program scheduling priority.");
+/*[clinic input]
+os.getpriority
+
+ which: int
+ who: int
+
+Return program scheduling priority.
+[clinic start generated code]*/
static PyObject *
-posix_getpriority(PyObject *self, PyObject *args)
+os_getpriority_impl(PyModuleDef *module, int which, int who)
+/*[clinic end generated code: output=4759937aa5b67ed6 input=9be615d40e2544ef]*/
{
- int which, who, retval;
+ int retval;
- if (!PyArg_ParseTuple(args, "ii", &which, &who))
- return NULL;
errno = 0;
retval = getpriority(which, who);
if (errno != 0)
@@ -4266,18 +4076,23 @@ posix_getpriority(PyObject *self, PyObject *args)
#ifdef HAVE_SETPRIORITY
-PyDoc_STRVAR(posix_setpriority__doc__,
-"setpriority(which, who, prio) -> None\n\n\
-Set program scheduling priority.");
+/*[clinic input]
+os.setpriority
+
+ which: int
+ who: int
+ priority: int
+
+Set program scheduling priority.
+[clinic start generated code]*/
static PyObject *
-posix_setpriority(PyObject *self, PyObject *args)
+os_setpriority_impl(PyModuleDef *module, int which, int who, int priority)
+/*[clinic end generated code: output=6497d3301547e7d5 input=710ccbf65b9dc513]*/
{
- int which, who, prio, retval;
+ int retval;
- if (!PyArg_ParseTuple(args, "iii", &which, &who, &prio))
- return NULL;
- retval = setpriority(which, who, prio);
+ retval = setpriority(which, who, priority);
if (retval == -1)
return posix_error();
Py_RETURN_NONE;
@@ -4286,17 +4101,10 @@ posix_setpriority(PyObject *self, PyObject *args)
static PyObject *
-internal_rename(PyObject *args, PyObject *kwargs, int is_replace)
+internal_rename(path_t *src, path_t *dst, int src_dir_fd, int dst_dir_fd, int is_replace)
{
char *function_name = is_replace ? "replace" : "rename";
- path_t src;
- path_t dst;
- int src_dir_fd = DEFAULT_DIR_FD;
- int dst_dir_fd = DEFAULT_DIR_FD;
int dir_fd_specified;
- PyObject *return_value = NULL;
- char format[24];
- static char *keywords[] = {"src", "dst", "src_dir_fd", "dst_dir_fd", NULL};
#ifdef MS_WINDOWS
BOOL result;
@@ -4305,210 +4113,200 @@ internal_rename(PyObject *args, PyObject *kwargs, int is_replace)
int result;
#endif
- memset(&src, 0, sizeof(src));
- memset(&dst, 0, sizeof(dst));
- src.function_name = function_name;
- dst.function_name = function_name;
- strcpy(format, "O&O&|$O&O&:");
- strcat(format, function_name);
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, format, keywords,
- path_converter, &src,
- path_converter, &dst,
- dir_fd_converter, &src_dir_fd,
- dir_fd_converter, &dst_dir_fd))
- return NULL;
-
dir_fd_specified = (src_dir_fd != DEFAULT_DIR_FD) ||
(dst_dir_fd != DEFAULT_DIR_FD);
#ifndef HAVE_RENAMEAT
if (dir_fd_specified) {
argument_unavailable_error(function_name, "src_dir_fd and dst_dir_fd");
- goto exit;
+ return NULL;
}
#endif
- if ((src.narrow && dst.wide) || (src.wide && dst.narrow)) {
+ if ((src->narrow && dst->wide) || (src->wide && dst->narrow)) {
PyErr_Format(PyExc_ValueError,
"%s: src and dst must be the same type", function_name);
- goto exit;
+ return NULL;
}
#ifdef MS_WINDOWS
Py_BEGIN_ALLOW_THREADS
- if (src.wide)
- result = MoveFileExW(src.wide, dst.wide, flags);
+ if (src->wide)
+ result = MoveFileExW(src->wide, dst->wide, flags);
else
- result = MoveFileExA(src.narrow, dst.narrow, flags);
+ result = MoveFileExA(src->narrow, dst->narrow, flags);
Py_END_ALLOW_THREADS
- if (!result) {
- return_value = path_error2(&src, &dst);
- goto exit;
- }
+ if (!result)
+ return path_error2(src, dst);
#else
Py_BEGIN_ALLOW_THREADS
#ifdef HAVE_RENAMEAT
if (dir_fd_specified)
- result = renameat(src_dir_fd, src.narrow, dst_dir_fd, dst.narrow);
+ result = renameat(src_dir_fd, src->narrow, dst_dir_fd, dst->narrow);
else
#endif
- result = rename(src.narrow, dst.narrow);
+ result = rename(src->narrow, dst->narrow);
Py_END_ALLOW_THREADS
- if (result) {
- return_value = path_error2(&src, &dst);
- goto exit;
- }
+ if (result)
+ return path_error2(src, dst);
#endif
-
- Py_INCREF(Py_None);
- return_value = Py_None;
-exit:
- path_cleanup(&src);
- path_cleanup(&dst);
- return return_value;
+ Py_RETURN_NONE;
}
-PyDoc_STRVAR(posix_rename__doc__,
-"rename(src, dst, *, src_dir_fd=None, dst_dir_fd=None)\n\n\
-Rename a file or directory.\n\
-\n\
-If either src_dir_fd or dst_dir_fd is not None, it should be a file\n\
- descriptor open to a directory, and the respective path string (src or dst)\n\
- should be relative; the path will then be relative to that directory.\n\
-src_dir_fd and dst_dir_fd, may not be implemented on your platform.\n\
- If they are unavailable, using them will raise a NotImplementedError.");
+
+/*[clinic input]
+os.rename
+
+ src : path_t
+ dst : path_t
+ *
+ src_dir_fd : dir_fd = None
+ dst_dir_fd : dir_fd = None
+
+Rename a file or directory.
+
+If either src_dir_fd or dst_dir_fd is not None, it should be a file
+ descriptor open to a directory, and the respective path string (src or dst)
+ should be relative; the path will then be relative to that directory.
+src_dir_fd and dst_dir_fd, may not be implemented on your platform.
+ If they are unavailable, using them will raise a NotImplementedError.
+[clinic start generated code]*/
static PyObject *
-posix_rename(PyObject *self, PyObject *args, PyObject *kwargs)
+os_rename_impl(PyModuleDef *module, path_t *src, path_t *dst, int src_dir_fd,
+ int dst_dir_fd)
+/*[clinic end generated code: output=08033bb2ec27fb5f input=faa61c847912c850]*/
{
- return internal_rename(args, kwargs, 0);
+ return internal_rename(src, dst, src_dir_fd, dst_dir_fd, 0);
}
-PyDoc_STRVAR(posix_replace__doc__,
-"replace(src, dst, *, src_dir_fd=None, dst_dir_fd=None)\n\n\
-Rename a file or directory, overwriting the destination.\n\
-\n\
-If either src_dir_fd or dst_dir_fd is not None, it should be a file\n\
- descriptor open to a directory, and the respective path string (src or dst)\n\
- should be relative; the path will then be relative to that directory.\n\
-src_dir_fd and dst_dir_fd, may not be implemented on your platform.\n\
- If they are unavailable, using them will raise a NotImplementedError.");
+
+/*[clinic input]
+os.replace = os.rename
+
+Rename a file or directory, overwriting the destination.
+
+If either src_dir_fd or dst_dir_fd is not None, it should be a file
+ descriptor open to a directory, and the respective path string (src or dst)
+ should be relative; the path will then be relative to that directory.
+src_dir_fd and dst_dir_fd, may not be implemented on your platform.
+ If they are unavailable, using them will raise a NotImplementedError."
+[clinic start generated code]*/
static PyObject *
-posix_replace(PyObject *self, PyObject *args, PyObject *kwargs)
+os_replace_impl(PyModuleDef *module, path_t *src, path_t *dst,
+ int src_dir_fd, int dst_dir_fd)
+/*[clinic end generated code: output=131d012eed8d3b8b input=25515dfb107c8421]*/
{
- return internal_rename(args, kwargs, 1);
+ return internal_rename(src, dst, src_dir_fd, dst_dir_fd, 1);
}
-PyDoc_STRVAR(posix_rmdir__doc__,
-"rmdir(path, *, dir_fd=None)\n\n\
-Remove a directory.\n\
-\n\
-If dir_fd is not None, it should be a file descriptor open to a directory,\n\
- and path should be relative; path will then be relative to that directory.\n\
-dir_fd may not be implemented on your platform.\n\
- If it is unavailable, using it will raise a NotImplementedError.");
+
+/*[clinic input]
+os.rmdir
+
+ path: path_t
+ *
+ dir_fd: dir_fd(requires='unlinkat') = None
+
+Remove a directory.
+
+If dir_fd is not None, it should be a file descriptor open to a directory,
+ and path should be relative; path will then be relative to that directory.
+dir_fd may not be implemented on your platform.
+ If it is unavailable, using it will raise a NotImplementedError.
+[clinic start generated code]*/
static PyObject *
-posix_rmdir(PyObject *self, PyObject *args, PyObject *kwargs)
+os_rmdir_impl(PyModuleDef *module, path_t *path, int dir_fd)
+/*[clinic end generated code: output=cabadec80d5a77c7 input=38c8b375ca34a7e2]*/
{
- path_t path;
- int dir_fd = DEFAULT_DIR_FD;
- static char *keywords[] = {"path", "dir_fd", NULL};
int result;
- PyObject *return_value = NULL;
-
- memset(&path, 0, sizeof(path));
- path.function_name = "rmdir";
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&|$O&:rmdir", keywords,
- path_converter, &path,
-#ifdef HAVE_UNLINKAT
- dir_fd_converter, &dir_fd
-#else
- dir_fd_unavailable, &dir_fd
-#endif
- ))
- return NULL;
Py_BEGIN_ALLOW_THREADS
#ifdef MS_WINDOWS
- if (path.wide)
- result = RemoveDirectoryW(path.wide);
+ if (path->wide)
+ result = RemoveDirectoryW(path->wide);
else
- result = RemoveDirectoryA(path.narrow);
+ result = RemoveDirectoryA(path->narrow);
result = !result; /* Windows, success=1, UNIX, success=0 */
#else
#ifdef HAVE_UNLINKAT
if (dir_fd != DEFAULT_DIR_FD)
- result = unlinkat(dir_fd, path.narrow, AT_REMOVEDIR);
+ result = unlinkat(dir_fd, path->narrow, AT_REMOVEDIR);
else
#endif
- result = rmdir(path.narrow);
+ result = rmdir(path->narrow);
#endif
Py_END_ALLOW_THREADS
- if (result) {
- return_value = path_error(&path);
- goto exit;
- }
-
- return_value = Py_None;
- Py_INCREF(Py_None);
+ if (result)
+ return path_error(path);
-exit:
- path_cleanup(&path);
- return return_value;
+ Py_RETURN_NONE;
}
#ifdef HAVE_SYSTEM
-PyDoc_STRVAR(posix_system__doc__,
-"system(command) -> exit_status\n\n\
-Execute the command (a string) in a subshell.");
-
-static PyObject *
-posix_system(PyObject *self, PyObject *args)
-{
- long sts;
#ifdef MS_WINDOWS
- wchar_t *command;
- if (!PyArg_ParseTuple(args, "u:system", &command))
- return NULL;
+/*[clinic input]
+os.system -> long
+
+ command: Py_UNICODE
+Execute the command in a subshell.
+[clinic start generated code]*/
+
+static long
+os_system_impl(PyModuleDef *module, Py_UNICODE *command)
+/*[clinic end generated code: output=4c3bd5abcd9c29e7 input=303f5ce97df606b0]*/
+{
+ long result;
Py_BEGIN_ALLOW_THREADS
- sts = _wsystem(command);
+ result = _wsystem(command);
Py_END_ALLOW_THREADS
-#else
- PyObject *command_obj;
- char *command;
- if (!PyArg_ParseTuple(args, "O&:system",
- PyUnicode_FSConverter, &command_obj))
- return NULL;
+ return result;
+}
+#else /* MS_WINDOWS */
+/*[clinic input]
+os.system -> long
- command = PyBytes_AsString(command_obj);
+ command: FSConverter
+
+Execute the command in a subshell.
+[clinic start generated code]*/
+
+static long
+os_system_impl(PyModuleDef *module, PyObject *command)
+/*[clinic end generated code: output=800f775e10b7be55 input=86a58554ba6094af]*/
+{
+ long result;
+ char *bytes = PyBytes_AsString(command);
Py_BEGIN_ALLOW_THREADS
- sts = system(command);
+ result = system(bytes);
Py_END_ALLOW_THREADS
- Py_DECREF(command_obj);
-#endif
- return PyLong_FromLong(sts);
+ return result;
}
#endif
+#endif /* HAVE_SYSTEM */
-PyDoc_STRVAR(posix_umask__doc__,
-"umask(new_mask) -> old_mask\n\n\
-Set the current numeric umask and return the previous umask.");
+/*[clinic input]
+os.umask
+
+ mask: int
+ /
+
+Set the current numeric umask and return the previous umask.
+[clinic start generated code]*/
static PyObject *
-posix_umask(PyObject *self, PyObject *args)
+os_umask_impl(PyModuleDef *module, int mask)
+/*[clinic end generated code: output=9e1fe3c9f14d6a05 input=ab6bfd9b24d8a7e8]*/
{
- int i;
- if (!PyArg_ParseTuple(args, "i:umask", &i))
- return NULL;
- i = (int)umask(i);
+ int i = (int)umask(mask);
if (i < 0)
return posix_error();
return PyLong_FromLong((long)i);
@@ -4537,7 +4335,10 @@ BOOL WINAPI Py_DeleteFileW(LPCWSTR lpFileName)
find_data_handle = FindFirstFileW(lpFileName, &find_data);
if(find_data_handle != INVALID_HANDLE_VALUE) {
- is_link = find_data.dwReserved0 == IO_REPARSE_TAG_SYMLINK;
+ /* IO_REPARSE_TAG_SYMLINK if it is a symlink and
+ IO_REPARSE_TAG_MOUNT_POINT if it is a junction point. */
+ is_link = find_data.dwReserved0 == IO_REPARSE_TAG_SYMLINK ||
+ find_data.dwReserved0 == IO_REPARSE_TAG_MOUNT_POINT;
FindClose(find_data_handle);
}
}
@@ -4550,81 +4351,73 @@ BOOL WINAPI Py_DeleteFileW(LPCWSTR lpFileName)
}
#endif /* MS_WINDOWS */
-PyDoc_STRVAR(posix_unlink__doc__,
-"unlink(path, *, dir_fd=None)\n\n\
-Remove a file (same as remove()).\n\
-\n\
-If dir_fd is not None, it should be a file descriptor open to a directory,\n\
- and path should be relative; path will then be relative to that directory.\n\
-dir_fd may not be implemented on your platform.\n\
- If it is unavailable, using it will raise a NotImplementedError.");
-PyDoc_STRVAR(posix_remove__doc__,
-"remove(path, *, dir_fd=None)\n\n\
-Remove a file (same as unlink()).\n\
-\n\
-If dir_fd is not None, it should be a file descriptor open to a directory,\n\
- and path should be relative; path will then be relative to that directory.\n\
-dir_fd may not be implemented on your platform.\n\
- If it is unavailable, using it will raise a NotImplementedError.");
+/*[clinic input]
+os.unlink
+
+ path: path_t
+ *
+ dir_fd: dir_fd(requires='unlinkat')=None
+
+Remove a file (same as remove()).
+
+If dir_fd is not None, it should be a file descriptor open to a directory,
+ and path should be relative; path will then be relative to that directory.
+dir_fd may not be implemented on your platform.
+ If it is unavailable, using it will raise a NotImplementedError.
+
+[clinic start generated code]*/
static PyObject *
-posix_unlink(PyObject *self, PyObject *args, PyObject *kwargs)
+os_unlink_impl(PyModuleDef *module, path_t *path, int dir_fd)
+/*[clinic end generated code: output=474afd5cd09b237e input=d7bcde2b1b2a2552]*/
{
- path_t path;
- int dir_fd = DEFAULT_DIR_FD;
- static char *keywords[] = {"path", "dir_fd", NULL};
int result;
- PyObject *return_value = NULL;
-
- memset(&path, 0, sizeof(path));
- path.function_name = "unlink";
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&|$O&:unlink", keywords,
- path_converter, &path,
-#ifdef HAVE_UNLINKAT
- dir_fd_converter, &dir_fd
-#else
- dir_fd_unavailable, &dir_fd
-#endif
- ))
- return NULL;
Py_BEGIN_ALLOW_THREADS
+ _Py_BEGIN_SUPPRESS_IPH
#ifdef MS_WINDOWS
- if (path.wide)
- result = Py_DeleteFileW(path.wide);
+ if (path->wide)
+ result = Py_DeleteFileW(path->wide);
else
- result = DeleteFileA(path.narrow);
+ result = DeleteFileA(path->narrow);
result = !result; /* Windows, success=1, UNIX, success=0 */
#else
#ifdef HAVE_UNLINKAT
if (dir_fd != DEFAULT_DIR_FD)
- result = unlinkat(dir_fd, path.narrow, 0);
+ result = unlinkat(dir_fd, path->narrow, 0);
else
#endif /* HAVE_UNLINKAT */
- result = unlink(path.narrow);
+ result = unlink(path->narrow);
#endif
+ _Py_END_SUPPRESS_IPH
Py_END_ALLOW_THREADS
- if (result) {
- return_value = path_error(&path);
- goto exit;
- }
-
- return_value = Py_None;
- Py_INCREF(Py_None);
+ if (result)
+ return path_error(path);
-exit:
- path_cleanup(&path);
- return return_value;
+ Py_RETURN_NONE;
}
-PyDoc_STRVAR(posix_uname__doc__,
-"uname() -> uname_result\n\n\
-Return an object identifying the current operating system.\n\
-The object behaves like a named tuple with the following fields:\n\
- (sysname, nodename, release, version, machine)");
+/*[clinic input]
+os.remove = os.unlink
+
+Remove a file (same as unlink()).
+
+If dir_fd is not None, it should be a file descriptor open to a directory,
+ and path should be relative; path will then be relative to that directory.
+dir_fd may not be implemented on your platform.
+ If it is unavailable, using it will raise a NotImplementedError.
+[clinic start generated code]*/
+
+static PyObject *
+os_remove_impl(PyModuleDef *module, path_t *path, int dir_fd)
+/*[clinic end generated code: output=d0d5149e64832b9e input=e05c5ab55cd30983]*/
+{
+ return os_unlink_impl(module, path, dir_fd);
+}
+
static PyStructSequence_Field uname_result_fields[] = {
{"sysname", "operating system name"},
@@ -4654,8 +4447,19 @@ static PyTypeObject UnameResultType;
#ifdef HAVE_UNAME
+/*[clinic input]
+os.uname
+
+Return an object identifying the current operating system.
+
+The object behaves like a named tuple with the following fields:
+ (sysname, nodename, release, version, machine)
+
+[clinic start generated code]*/
+
static PyObject *
-posix_uname(PyObject *self, PyObject *noargs)
+os_uname_impl(PyModuleDef *module)
+/*[clinic end generated code: output=01e1421b757e753f input=e68bd246db3043ed]*/
{
struct utsname u;
int res;
@@ -4694,31 +4498,6 @@ posix_uname(PyObject *self, PyObject *noargs)
#endif /* HAVE_UNAME */
-PyDoc_STRVAR(posix_utime__doc__,
-"utime(path, times=None, *[, ns], dir_fd=None, follow_symlinks=True)\n\
-Set the access and modified time of path.\n\
-\n\
-path may always be specified as a string.\n\
-On some platforms, path may also be specified as an open file descriptor.\n\
- If this functionality is unavailable, using it raises an exception.\n\
-\n\
-If times is not None, it must be a tuple (atime, mtime);\n\
- atime and mtime should be expressed as float seconds since the epoch.\n\
-If ns is specified, it must be a tuple (atime_ns, mtime_ns);\n\
- atime_ns and mtime_ns should be expressed as integer nanoseconds\n\
- since the epoch.\n\
-If times is None and ns is unspecified, utime uses the current time.\n\
-Specifying tuples for both times and ns is an error.\n\
-\n\
-If dir_fd is not None, it should be a file descriptor open to a directory,\n\
- and path should be relative; path will then be relative to that directory.\n\
-If follow_symlinks is False, and the last element of the path is a symbolic\n\
- link, utime will modify the symbolic link itself instead of the file the\n\
- link points to.\n\
-It is an error to use dir_fd or follow_symlinks when specifying path\n\
- as an open file descriptor.\n\
-dir_fd and follow_symlinks may not be available on your platform.\n\
- If they are unavailable, using them will raise a NotImplementedError.");
typedef struct {
int now;
@@ -4802,6 +4581,9 @@ utime_dir_fd(utime_t *ut, int dir_fd, char *path, int follow_symlinks)
#endif
}
+ #define FUTIMENSAT_DIR_FD_CONVERTER dir_fd_converter
+#else
+ #define FUTIMENSAT_DIR_FD_CONVERTER dir_fd_unavailable
#endif
#if defined(HAVE_FUTIMES) || defined(HAVE_FUTIMENS)
@@ -4818,6 +4600,9 @@ utime_fd(utime_t *ut, int fd)
#endif
}
+ #define PATH_UTIME_HAVE_FD 1
+#else
+ #define PATH_UTIME_HAVE_FD 0
#endif
@@ -4883,19 +4668,50 @@ exit:
return result;
}
-static PyObject *
-posix_utime(PyObject *self, PyObject *args, PyObject *kwargs)
-{
- path_t path;
- PyObject *times = NULL;
- PyObject *ns = NULL;
- int dir_fd = DEFAULT_DIR_FD;
- int follow_symlinks = 1;
- char *keywords[] = {"path", "times", "ns", "dir_fd",
- "follow_symlinks", NULL};
- utime_t utime;
+/*[clinic input]
+os.utime
+
+ path: path_t(allow_fd='PATH_UTIME_HAVE_FD')
+ times: object = NULL
+ *
+ ns: object = NULL
+ dir_fd: dir_fd(requires='futimensat') = None
+ follow_symlinks: bool=True
+
+# "utime(path, times=None, *[, ns], dir_fd=None, follow_symlinks=True)\n\
+
+Set the access and modified time of path.
+
+path may always be specified as a string.
+On some platforms, path may also be specified as an open file descriptor.
+ If this functionality is unavailable, using it raises an exception.
+
+If times is not None, it must be a tuple (atime, mtime);
+ atime and mtime should be expressed as float seconds since the epoch.
+If ns is specified, it must be a tuple (atime_ns, mtime_ns);
+ atime_ns and mtime_ns should be expressed as integer nanoseconds
+ since the epoch.
+If times is None and ns is unspecified, utime uses the current time.
+Specifying tuples for both times and ns is an error.
+
+If dir_fd is not None, it should be a file descriptor open to a directory,
+ and path should be relative; path will then be relative to that directory.
+If follow_symlinks is False, and the last element of the path is a symbolic
+ link, utime will modify the symbolic link itself instead of the file the
+ link points to.
+It is an error to use dir_fd or follow_symlinks when specifying path
+ as an open file descriptor.
+dir_fd and follow_symlinks may not be available on your platform.
+ If they are unavailable, using them will raise a NotImplementedError.
+[clinic start generated code]*/
+
+static PyObject *
+os_utime_impl(PyModuleDef *module, path_t *path, PyObject *times,
+ PyObject *ns, int dir_fd, int follow_symlinks)
+/*[clinic end generated code: output=31f3434e560ba2f0 input=081cdc54ca685385]*/
+{
#ifdef MS_WINDOWS
HANDLE hFile;
FILETIME atime, mtime;
@@ -4904,25 +4720,9 @@ posix_utime(PyObject *self, PyObject *args, PyObject *kwargs)
#endif
PyObject *return_value = NULL;
+ utime_t utime;
- memset(&path, 0, sizeof(path));
- path.function_name = "utime";
memset(&utime, 0, sizeof(utime_t));
-#if defined(HAVE_FUTIMES) || defined(HAVE_FUTIMENS)
- path.allow_fd = 1;
-#endif
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,
- "O&|O$OO&p:utime", keywords,
- path_converter, &path,
- &times, &ns,
-#if defined(HAVE_FUTIMESAT) || defined(HAVE_UTIMENSAT)
- dir_fd_converter, &dir_fd,
-#else
- dir_fd_unavailable, &dir_fd,
-#endif
- &follow_symlinks
- ))
- return NULL;
if (times && (times != Py_None) && ns) {
PyErr_SetString(PyExc_ValueError,
@@ -4942,9 +4742,9 @@ posix_utime(PyObject *self, PyObject *args, PyObject *kwargs)
}
utime.now = 0;
if (_PyTime_ObjectToTimespec(PyTuple_GET_ITEM(times, 0),
- &a_sec, &a_nsec, _PyTime_ROUND_DOWN) == -1 ||
+ &a_sec, &a_nsec, _PyTime_ROUND_FLOOR) == -1 ||
_PyTime_ObjectToTimespec(PyTuple_GET_ITEM(times, 1),
- &m_sec, &m_nsec, _PyTime_ROUND_DOWN) == -1) {
+ &m_sec, &m_nsec, _PyTime_ROUND_FLOOR) == -1) {
goto exit;
}
utime.atime_s = a_sec;
@@ -4976,9 +4776,9 @@ posix_utime(PyObject *self, PyObject *args, PyObject *kwargs)
goto exit;
#endif
- if (path_and_dir_fd_invalid("utime", &path, dir_fd) ||
- dir_fd_and_fd_invalid("utime", dir_fd, path.fd) ||
- fd_and_follow_symlinks_invalid("utime", path.fd, follow_symlinks))
+ if (path_and_dir_fd_invalid("utime", path, dir_fd) ||
+ dir_fd_and_fd_invalid("utime", dir_fd, path->fd) ||
+ fd_and_follow_symlinks_invalid("utime", path->fd, follow_symlinks))
goto exit;
#if !defined(HAVE_UTIMENSAT)
@@ -4992,17 +4792,17 @@ posix_utime(PyObject *self, PyObject *args, PyObject *kwargs)
#ifdef MS_WINDOWS
Py_BEGIN_ALLOW_THREADS
- if (path.wide)
- hFile = CreateFileW(path.wide, FILE_WRITE_ATTRIBUTES, 0,
+ if (path->wide)
+ hFile = CreateFileW(path->wide, FILE_WRITE_ATTRIBUTES, 0,
NULL, OPEN_EXISTING,
FILE_FLAG_BACKUP_SEMANTICS, NULL);
else
- hFile = CreateFileA(path.narrow, FILE_WRITE_ATTRIBUTES, 0,
+ hFile = CreateFileA(path->narrow, FILE_WRITE_ATTRIBUTES, 0,
NULL, OPEN_EXISTING,
FILE_FLAG_BACKUP_SEMANTICS, NULL);
Py_END_ALLOW_THREADS
if (hFile == INVALID_HANDLE_VALUE) {
- path_error(&path);
+ path_error(path);
goto exit;
}
@@ -5011,8 +4811,8 @@ posix_utime(PyObject *self, PyObject *args, PyObject *kwargs)
atime = mtime;
}
else {
- time_t_to_FILE_TIME(utime.atime_s, utime.atime_ns, &atime);
- time_t_to_FILE_TIME(utime.mtime_s, utime.mtime_ns, &mtime);
+ _Py_time_t_to_FILE_TIME(utime.atime_s, utime.atime_ns, &atime);
+ _Py_time_t_to_FILE_TIME(utime.mtime_s, utime.mtime_ns, &mtime);
}
if (!SetFileTime(hFile, NULL, &atime, &mtime)) {
/* Avoid putting the file name into the error here,
@@ -5027,23 +4827,23 @@ posix_utime(PyObject *self, PyObject *args, PyObject *kwargs)
#if UTIME_HAVE_NOFOLLOW_SYMLINKS
if ((!follow_symlinks) && (dir_fd == DEFAULT_DIR_FD))
- result = utime_nofollow_symlinks(&utime, path.narrow);
+ result = utime_nofollow_symlinks(&utime, path->narrow);
else
#endif
#if defined(HAVE_FUTIMESAT) || defined(HAVE_UTIMENSAT)
if ((dir_fd != DEFAULT_DIR_FD) || (!follow_symlinks))
- result = utime_dir_fd(&utime, dir_fd, path.narrow, follow_symlinks);
+ result = utime_dir_fd(&utime, dir_fd, path->narrow, follow_symlinks);
else
#endif
#if defined(HAVE_FUTIMES) || defined(HAVE_FUTIMENS)
- if (path.fd != -1)
- result = utime_fd(&utime, path.fd);
+ if (path->fd != -1)
+ result = utime_fd(&utime, path->fd);
else
#endif
- result = utime_default(&utime, path.narrow);
+ result = utime_default(&utime, path->narrow);
Py_END_ALLOW_THREADS
@@ -5059,7 +4859,6 @@ posix_utime(PyObject *self, PyObject *args, PyObject *kwargs)
return_value = Py_None;
exit:
- path_cleanup(&path);
#ifdef MS_WINDOWS
if (hFile != INVALID_HANDLE_VALUE)
CloseHandle(hFile);
@@ -5069,17 +4868,20 @@ exit:
/* Process operations */
-PyDoc_STRVAR(posix__exit__doc__,
-"_exit(status)\n\n\
-Exit to the system with specified status, without normal exit processing.");
+
+/*[clinic input]
+os._exit
+
+ status: int
+
+Exit to the system with specified status, without normal exit processing.
+[clinic start generated code]*/
static PyObject *
-posix__exit(PyObject *self, PyObject *args)
+os__exit_impl(PyModuleDef *module, int status)
+/*[clinic end generated code: output=472a3cbaf68f3621 input=5e6d57556b0c4a62]*/
{
- int sts;
- if (!PyArg_ParseTuple(args, "i:_exit", &sts))
- return NULL;
- _exit(sts);
+ _exit(status);
return NULL; /* Make gcc -Wall happy */
}
@@ -5217,96 +5019,83 @@ fail:
}
#endif
+
#ifdef HAVE_EXECV
-PyDoc_STRVAR(posix_execv__doc__,
-"execv(path, args)\n\n\
-Execute an executable path with arguments, replacing current process.\n\
-\n\
- path: path of executable file\n\
- args: tuple or list of strings");
+/*[clinic input]
+os.execv
+
+ path: FSConverter
+ Path of executable file.
+ argv: object
+ Tuple or list of strings.
+ /
+
+Execute an executable path with arguments, replacing current process.
+[clinic start generated code]*/
static PyObject *
-posix_execv(PyObject *self, PyObject *args)
+os_execv_impl(PyModuleDef *module, PyObject *path, PyObject *argv)
+/*[clinic end generated code: output=9221f08143146fff input=96041559925e5229]*/
{
- PyObject *opath;
- char *path;
- PyObject *argv;
+ char *path_char;
char **argvlist;
Py_ssize_t argc;
/* execv has two arguments: (path, argv), where
argv is a list or tuple of strings. */
- if (!PyArg_ParseTuple(args, "O&O:execv",
- PyUnicode_FSConverter,
- &opath, &argv))
- return NULL;
- path = PyBytes_AsString(opath);
+ path_char = PyBytes_AsString(path);
if (!PyList_Check(argv) && !PyTuple_Check(argv)) {
PyErr_SetString(PyExc_TypeError,
"execv() arg 2 must be a tuple or list");
- Py_DECREF(opath);
return NULL;
}
argc = PySequence_Size(argv);
if (argc < 1) {
PyErr_SetString(PyExc_ValueError, "execv() arg 2 must not be empty");
- Py_DECREF(opath);
return NULL;
}
argvlist = parse_arglist(argv, &argc);
if (argvlist == NULL) {
- Py_DECREF(opath);
return NULL;
}
- execv(path, argvlist);
+ execv(path_char, argvlist);
/* If we get here it's definitely an error */
free_string_array(argvlist, argc);
- Py_DECREF(opath);
return posix_error();
}
-PyDoc_STRVAR(posix_execve__doc__,
-"execve(path, args, env)\n\n\
-Execute a path with arguments and environment, replacing current process.\n\
-\n\
- path: path of executable file\n\
- args: tuple or list of arguments\n\
- env: dictionary of strings mapping to strings\n\
-\n\
-On some platforms, you may specify an open file descriptor for path;\n\
- execve will execute the program the file descriptor is open to.\n\
- If this functionality is unavailable, using it raises NotImplementedError.");
+
+/*[clinic input]
+os.execve
+
+ path: path_t(allow_fd='PATH_HAVE_FEXECVE')
+ Path of executable file.
+ argv: object
+ Tuple or list of strings.
+ env: object
+ Dictionary of strings mapping to strings.
+
+Execute an executable path with arguments, replacing current process.
+[clinic start generated code]*/
static PyObject *
-posix_execve(PyObject *self, PyObject *args, PyObject *kwargs)
+os_execve_impl(PyModuleDef *module, path_t *path, PyObject *argv,
+ PyObject *env)
+/*[clinic end generated code: output=181884fcdb21508e input=626804fa092606d9]*/
{
- path_t path;
- PyObject *argv, *env;
char **argvlist = NULL;
char **envlist;
Py_ssize_t argc, envc;
- static char *keywords[] = {"path", "argv", "environment", NULL};
/* execve has three arguments: (path, argv, env), where
argv is a list or tuple of strings and env is a dictionary
like posix.environ. */
- memset(&path, 0, sizeof(path));
- path.function_name = "execve";
-#ifdef HAVE_FEXECVE
- path.allow_fd = 1;
-#endif
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&OO:execve", keywords,
- path_converter, &path,
- &argv, &env
- ))
- return NULL;
-
if (!PyList_Check(argv) && !PyTuple_Check(argv)) {
PyErr_SetString(PyExc_TypeError,
"execve: argv must be a tuple or list");
@@ -5329,15 +5118,15 @@ posix_execve(PyObject *self, PyObject *args, PyObject *kwargs)
goto fail;
#ifdef HAVE_FEXECVE
- if (path.fd > -1)
- fexecve(path.fd, argvlist, envlist);
+ if (path->fd > -1)
+ fexecve(path->fd, argvlist, envlist);
else
#endif
- execve(path.narrow, argvlist, envlist);
+ execve(path->narrow, argvlist, envlist);
/* If we get here it's definitely an error */
- path_error(&path);
+ path_error(path);
while (--envc >= 0)
PyMem_DEL(envlist[envc]);
@@ -5345,29 +5134,33 @@ posix_execve(PyObject *self, PyObject *args, PyObject *kwargs)
fail:
if (argvlist)
free_string_array(argvlist, argc);
- path_cleanup(&path);
return NULL;
}
#endif /* HAVE_EXECV */
#ifdef HAVE_SPAWNV
-PyDoc_STRVAR(posix_spawnv__doc__,
-"spawnv(mode, path, args)\n\n\
-Execute the program 'path' in a new process.\n\
-\n\
- mode: mode of process creation\n\
- path: path of executable file\n\
- args: tuple or list of strings");
+/*[clinic input]
+os.spawnv
+
+ mode: int
+ Mode of process creation.
+ path: FSConverter
+ Path of executable file.
+ argv: object
+ Tuple or list of strings.
+ /
+
+Execute the program specified by path in a new process.
+[clinic start generated code]*/
static PyObject *
-posix_spawnv(PyObject *self, PyObject *args)
+os_spawnv_impl(PyModuleDef *module, int mode, PyObject *path, PyObject *argv)
+/*[clinic end generated code: output=140a7945484c8cc5 input=042c91dfc1e6debc]*/
{
- PyObject *opath;
- char *path;
- PyObject *argv;
+ char *path_char;
char **argvlist;
- int mode, i;
+ int i;
Py_ssize_t argc;
Py_intptr_t spawnval;
PyObject *(*getitem)(PyObject *, Py_ssize_t);
@@ -5375,11 +5168,7 @@ posix_spawnv(PyObject *self, PyObject *args)
/* spawnv has three arguments: (mode, path, argv), where
argv is a list or tuple of strings. */
- if (!PyArg_ParseTuple(args, "iO&O:spawnv", &mode,
- PyUnicode_FSConverter,
- &opath, &argv))
- return NULL;
- path = PyBytes_AsString(opath);
+ path_char = PyBytes_AsString(path);
if (PyList_Check(argv)) {
argc = PyList_Size(argv);
getitem = PyList_GetItem;
@@ -5391,13 +5180,11 @@ posix_spawnv(PyObject *self, PyObject *args)
else {
PyErr_SetString(PyExc_TypeError,
"spawnv() arg 2 must be a tuple or list");
- Py_DECREF(opath);
return NULL;
}
argvlist = PyMem_NEW(char *, argc+1);
if (argvlist == NULL) {
- Py_DECREF(opath);
return PyErr_NoMemory();
}
for (i = 0; i < argc; i++) {
@@ -5407,7 +5194,6 @@ posix_spawnv(PyObject *self, PyObject *args)
PyErr_SetString(
PyExc_TypeError,
"spawnv() arg 2 must contain only strings");
- Py_DECREF(opath);
return NULL;
}
}
@@ -5417,11 +5203,10 @@ posix_spawnv(PyObject *self, PyObject *args)
mode = _P_OVERLAY;
Py_BEGIN_ALLOW_THREADS
- spawnval = _spawnv(mode, path, argvlist);
+ spawnval = _spawnv(mode, path_char, argvlist);
Py_END_ALLOW_THREADS
free_string_array(argvlist, argc);
- Py_DECREF(opath);
if (spawnval == -1)
return posix_error();
@@ -5430,25 +5215,31 @@ posix_spawnv(PyObject *self, PyObject *args)
}
-PyDoc_STRVAR(posix_spawnve__doc__,
-"spawnve(mode, path, args, env)\n\n\
-Execute the program 'path' in a new process.\n\
-\n\
- mode: mode of process creation\n\
- path: path of executable file\n\
- args: tuple or list of arguments\n\
- env: dictionary of strings mapping to strings");
+/*[clinic input]
+os.spawnve
+
+ mode: int
+ Mode of process creation.
+ path: FSConverter
+ Path of executable file.
+ argv: object
+ Tuple or list of strings.
+ env: object
+ Dictionary of strings mapping to strings.
+ /
+
+Execute the program specified by path in a new process.
+[clinic start generated code]*/
static PyObject *
-posix_spawnve(PyObject *self, PyObject *args)
+os_spawnve_impl(PyModuleDef *module, int mode, PyObject *path,
+ PyObject *argv, PyObject *env)
+/*[clinic end generated code: output=e7f5f0703610531f input=02362fd937963f8f]*/
{
- PyObject *opath;
- char *path;
- PyObject *argv, *env;
+ char *path_char;
char **argvlist;
char **envlist;
PyObject *res = NULL;
- int mode;
Py_ssize_t argc, i, envc;
Py_intptr_t spawnval;
PyObject *(*getitem)(PyObject *, Py_ssize_t);
@@ -5458,11 +5249,7 @@ posix_spawnve(PyObject *self, PyObject *args)
argv is a list or tuple of strings and env is a dictionary
like posix.environ. */
- if (!PyArg_ParseTuple(args, "iO&OO:spawnve", &mode,
- PyUnicode_FSConverter,
- &opath, &argv, &env))
- return NULL;
- path = PyBytes_AsString(opath);
+ path_char = PyBytes_AsString(path);
if (PyList_Check(argv)) {
argc = PyList_Size(argv);
getitem = PyList_GetItem;
@@ -5506,7 +5293,7 @@ posix_spawnve(PyObject *self, PyObject *args)
mode = _P_OVERLAY;
Py_BEGIN_ALLOW_THREADS
- spawnval = _spawnve(mode, path, argvlist, envlist);
+ spawnval = _spawnve(mode, path_char, argvlist, envlist);
Py_END_ALLOW_THREADS
if (spawnval == -1)
@@ -5520,7 +5307,6 @@ posix_spawnve(PyObject *self, PyObject *args)
fail_1:
free_string_array(argvlist, lastarg);
fail_0:
- Py_DECREF(opath);
return res;
}
@@ -5528,14 +5314,17 @@ posix_spawnve(PyObject *self, PyObject *args)
#ifdef HAVE_FORK1
-PyDoc_STRVAR(posix_fork1__doc__,
-"fork1() -> pid\n\n\
-Fork a child process with a single multiplexed (i.e., not bound) thread.\n\
-\n\
-Return 0 to child process and PID of child to parent process.");
+/*[clinic input]
+os.fork1
+
+Fork a child process with a single multiplexed (i.e., not bound) thread.
+
+Return 0 to child process and PID of child to parent process.
+[clinic start generated code]*/
static PyObject *
-posix_fork1(PyObject *self, PyObject *noargs)
+os_fork1_impl(PyModuleDef *module)
+/*[clinic end generated code: output=e27b4f66419c9dcf input=12db02167893926e]*/
{
pid_t pid;
int result = 0;
@@ -5558,17 +5347,21 @@ posix_fork1(PyObject *self, PyObject *noargs)
}
return PyLong_FromPid(pid);
}
-#endif
+#endif /* HAVE_FORK1 */
#ifdef HAVE_FORK
-PyDoc_STRVAR(posix_fork__doc__,
-"fork() -> pid\n\n\
-Fork a child process.\n\
-Return 0 to child process and PID of child to parent process.");
+/*[clinic input]
+os.fork
+
+Fork a child process.
+
+Return 0 to child process and PID of child to parent process.
+[clinic start generated code]*/
static PyObject *
-posix_fork(PyObject *self, PyObject *noargs)
+os_fork_impl(PyModuleDef *module)
+/*[clinic end generated code: output=898b1ecd3498ba12 input=13c956413110eeaa]*/
{
pid_t pid;
int result = 0;
@@ -5591,92 +5384,106 @@ posix_fork(PyObject *self, PyObject *noargs)
}
return PyLong_FromPid(pid);
}
-#endif
+#endif /* HAVE_FORK */
-#ifdef HAVE_SCHED_H
+#ifdef HAVE_SCHED_H
#ifdef HAVE_SCHED_GET_PRIORITY_MAX
+/*[clinic input]
+os.sched_get_priority_max
-PyDoc_STRVAR(posix_sched_get_priority_max__doc__,
-"sched_get_priority_max(policy)\n\n\
-Get the maximum scheduling priority for *policy*.");
+ policy: int
+
+Get the maximum scheduling priority for policy.
+[clinic start generated code]*/
static PyObject *
-posix_sched_get_priority_max(PyObject *self, PyObject *args)
+os_sched_get_priority_max_impl(PyModuleDef *module, int policy)
+/*[clinic end generated code: output=a6a30fa5071f2d81 input=2097b7998eca6874]*/
{
- int policy, max;
+ int max;
- if (!PyArg_ParseTuple(args, "i:sched_get_priority_max", &policy))
- return NULL;
max = sched_get_priority_max(policy);
if (max < 0)
return posix_error();
return PyLong_FromLong(max);
}
-PyDoc_STRVAR(posix_sched_get_priority_min__doc__,
-"sched_get_priority_min(policy)\n\n\
-Get the minimum scheduling priority for *policy*.");
+
+/*[clinic input]
+os.sched_get_priority_min
+
+ policy: int
+
+Get the minimum scheduling priority for policy.
+[clinic start generated code]*/
static PyObject *
-posix_sched_get_priority_min(PyObject *self, PyObject *args)
+os_sched_get_priority_min_impl(PyModuleDef *module, int policy)
+/*[clinic end generated code: output=5ca3ed6bc43e9b20 input=21bc8fa0d70983bf]*/
{
- int policy, min;
-
- if (!PyArg_ParseTuple(args, "i:sched_get_priority_min", &policy))
- return NULL;
- min = sched_get_priority_min(policy);
+ int min = sched_get_priority_min(policy);
if (min < 0)
return posix_error();
return PyLong_FromLong(min);
}
-
#endif /* HAVE_SCHED_GET_PRIORITY_MAX */
+
#ifdef HAVE_SCHED_SETSCHEDULER
+/*[clinic input]
+os.sched_getscheduler
+ pid: pid_t
+ /
-PyDoc_STRVAR(posix_sched_getscheduler__doc__,
-"sched_getscheduler(pid)\n\n\
-Get the scheduling policy for the process with a PID of *pid*.\n\
-Passing a PID of 0 returns the scheduling policy for the calling process.");
+Get the scheduling policy for the process identifiedy by pid.
+
+Passing 0 for pid returns the scheduling policy for the calling process.
+[clinic start generated code]*/
static PyObject *
-posix_sched_getscheduler(PyObject *self, PyObject *args)
+os_sched_getscheduler_impl(PyModuleDef *module, pid_t pid)
+/*[clinic end generated code: output=8cd63c15caf54fa9 input=5f14cfd1f189e1a0]*/
{
- pid_t pid;
int policy;
- if (!PyArg_ParseTuple(args, _Py_PARSE_PID ":sched_getscheduler", &pid))
- return NULL;
policy = sched_getscheduler(pid);
if (policy < 0)
return posix_error();
return PyLong_FromLong(policy);
}
+#endif /* HAVE_SCHED_SETSCHEDULER */
-#endif
#if defined(HAVE_SCHED_SETSCHEDULER) || defined(HAVE_SCHED_SETPARAM)
+/*[clinic input]
+class os.sched_param "PyObject *" "&SchedParamType"
+
+@classmethod
+os.sched_param.__new__
+
+ sched_priority: object
+ A scheduling parameter.
+
+Current has only one field: sched_priority");
+[clinic start generated code]*/
static PyObject *
-sched_param_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
+os_sched_param_impl(PyTypeObject *type, PyObject *sched_priority)
+/*[clinic end generated code: output=48f4067d60f48c13 input=73a4c22f7071fc62]*/
{
- PyObject *res, *priority;
- static char *kwlist[] = {"sched_priority", NULL};
+ PyObject *res;
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O:sched_param", kwlist, &priority))
- return NULL;
res = PyStructSequence_New(type);
if (!res)
return NULL;
- Py_INCREF(priority);
- PyStructSequence_SET_ITEM(res, 0, priority);
+ Py_INCREF(sched_priority);
+ PyStructSequence_SET_ITEM(res, 0, sched_priority);
return res;
}
-PyDoc_STRVAR(sched_param__doc__,
-"sched_param(sched_priority): A scheduling parameter.\n\n\
-Current has only one field: sched_priority");
+
+PyDoc_VAR(os_sched_param__doc__);
static PyStructSequence_Field sched_param_fields[] = {
{"sched_priority", "the scheduling priority"},
@@ -5685,7 +5492,7 @@ static PyStructSequence_Field sched_param_fields[] = {
static PyStructSequence_Desc sched_param_desc = {
"sched_param", /* name */
- sched_param__doc__, /* doc */
+ os_sched_param__doc__, /* doc */
sched_param_fields,
1
};
@@ -5709,118 +5516,134 @@ convert_sched_param(PyObject *param, struct sched_param *res)
res->sched_priority = Py_SAFE_DOWNCAST(priority, long, int);
return 1;
}
+#endif /* defined(HAVE_SCHED_SETSCHEDULER) || defined(HAVE_SCHED_SETPARAM) */
-#endif
#ifdef HAVE_SCHED_SETSCHEDULER
+/*[clinic input]
+os.sched_setscheduler
-PyDoc_STRVAR(posix_sched_setscheduler__doc__,
-"sched_setscheduler(pid, policy, param)\n\n\
-Set the scheduling policy, *policy*, for *pid*.\n\
-If *pid* is 0, the calling process is changed.\n\
-*param* is an instance of sched_param.");
+ pid: pid_t
+ policy: int
+ param: sched_param
+ /
-static PyObject *
-posix_sched_setscheduler(PyObject *self, PyObject *args)
-{
- pid_t pid;
- int policy;
- struct sched_param param;
+Set the scheduling policy for the process identified by pid.
- if (!PyArg_ParseTuple(args, _Py_PARSE_PID "iO&:sched_setscheduler",
- &pid, &policy, &convert_sched_param, &param))
- return NULL;
+If pid is 0, the calling process is changed.
+param is an instance of sched_param.
+[clinic start generated code]*/
+static PyObject *
+os_sched_setscheduler_impl(PyModuleDef *module, pid_t pid, int policy,
+ struct sched_param *param)
+/*[clinic end generated code: output=37053e5c528c35c9 input=c581f9469a5327dd]*/
+{
/*
** sched_setscheduler() returns 0 in Linux, but the previous
** scheduling policy under Solaris/Illumos, and others.
** On error, -1 is returned in all Operating Systems.
*/
- if (sched_setscheduler(pid, policy, &param) == -1)
+ if (sched_setscheduler(pid, policy, param) == -1)
return posix_error();
Py_RETURN_NONE;
}
+#endif /* HAVE_SCHED_SETSCHEDULER*/
-#endif
#ifdef HAVE_SCHED_SETPARAM
+/*[clinic input]
+os.sched_getparam
+ pid: pid_t
+ /
-PyDoc_STRVAR(posix_sched_getparam__doc__,
-"sched_getparam(pid) -> sched_param\n\n\
-Returns scheduling parameters for the process with *pid* as an instance of the\n\
-sched_param class. A PID of 0 means the calling process.");
+Returns scheduling parameters for the process identified by pid.
+
+If pid is 0, returns parameters for the calling process.
+Return value is an instance of sched_param.
+[clinic start generated code]*/
static PyObject *
-posix_sched_getparam(PyObject *self, PyObject *args)
+os_sched_getparam_impl(PyModuleDef *module, pid_t pid)
+/*[clinic end generated code: output=f42c5bd2604ecd08 input=18a1ef9c2efae296]*/
{
- pid_t pid;
struct sched_param param;
- PyObject *res, *priority;
+ PyObject *result;
+ PyObject *priority;
- if (!PyArg_ParseTuple(args, _Py_PARSE_PID ":sched_getparam", &pid))
- return NULL;
if (sched_getparam(pid, &param))
return posix_error();
- res = PyStructSequence_New(&SchedParamType);
- if (!res)
+ result = PyStructSequence_New(&SchedParamType);
+ if (!result)
return NULL;
priority = PyLong_FromLong(param.sched_priority);
if (!priority) {
- Py_DECREF(res);
+ Py_DECREF(result);
return NULL;
}
- PyStructSequence_SET_ITEM(res, 0, priority);
- return res;
+ PyStructSequence_SET_ITEM(result, 0, priority);
+ return result;
}
-PyDoc_STRVAR(posix_sched_setparam__doc__,
-"sched_setparam(pid, param)\n\n\
-Set scheduling parameters for a process with PID *pid*.\n\
-A PID of 0 means the calling process.");
+
+/*[clinic input]
+os.sched_setparam
+ pid: pid_t
+ param: sched_param
+ /
+
+Set scheduling parameters for the process identified by pid.
+
+If pid is 0, sets parameters for the calling process.
+param should be an instance of sched_param.
+[clinic start generated code]*/
static PyObject *
-posix_sched_setparam(PyObject *self, PyObject *args)
+os_sched_setparam_impl(PyModuleDef *module, pid_t pid,
+ struct sched_param *param)
+/*[clinic end generated code: output=b7a3c589436cec9b input=6b8d6dfcecdc21bd]*/
{
- pid_t pid;
- struct sched_param param;
-
- if (!PyArg_ParseTuple(args, _Py_PARSE_PID "O&:sched_setparam",
- &pid, &convert_sched_param, &param))
- return NULL;
- if (sched_setparam(pid, &param))
+ if (sched_setparam(pid, param))
return posix_error();
Py_RETURN_NONE;
}
+#endif /* HAVE_SCHED_SETPARAM */
-#endif
#ifdef HAVE_SCHED_RR_GET_INTERVAL
+/*[clinic input]
+os.sched_rr_get_interval -> double
+ pid: pid_t
+ /
-PyDoc_STRVAR(posix_sched_rr_get_interval__doc__,
-"sched_rr_get_interval(pid) -> float\n\n\
-Return the round-robin quantum for the process with PID *pid* in seconds.");
+Return the round-robin quantum for the process identified by pid, in seconds.
-static PyObject *
-posix_sched_rr_get_interval(PyObject *self, PyObject *args)
+Value returned is a float.
+[clinic start generated code]*/
+
+static double
+os_sched_rr_get_interval_impl(PyModuleDef *module, pid_t pid)
+/*[clinic end generated code: output=7adc137a86dea581 input=2a973da15cca6fae]*/
{
- pid_t pid;
struct timespec interval;
-
- if (!PyArg_ParseTuple(args, _Py_PARSE_PID ":sched_rr_get_interval", &pid))
- return NULL;
- if (sched_rr_get_interval(pid, &interval))
- return posix_error();
- return PyFloat_FromDouble((double)interval.tv_sec + 1e-9*interval.tv_nsec);
+ if (sched_rr_get_interval(pid, &interval)) {
+ posix_error();
+ return -1.0;
+ }
+ return (double)interval.tv_sec + 1e-9*interval.tv_nsec;
}
+#endif /* HAVE_SCHED_RR_GET_INTERVAL */
-#endif
-PyDoc_STRVAR(posix_sched_yield__doc__,
-"sched_yield()\n\n\
-Voluntarily relinquish the CPU.");
+/*[clinic input]
+os.sched_yield
+
+Voluntarily relinquish the CPU.
+[clinic start generated code]*/
static PyObject *
-posix_sched_yield(PyObject *self, PyObject *noargs)
+os_sched_yield_impl(PyModuleDef *module)
+/*[clinic end generated code: output=d7bd51869c4cb6a8 input=e54d6f98189391d4]*/
{
if (sched_yield())
return posix_error();
@@ -5828,39 +5651,41 @@ posix_sched_yield(PyObject *self, PyObject *noargs)
}
#ifdef HAVE_SCHED_SETAFFINITY
-
/* The minimum number of CPUs allocated in a cpu_set_t */
static const int NCPUS_START = sizeof(unsigned long) * CHAR_BIT;
-PyDoc_STRVAR(posix_sched_setaffinity__doc__,
-"sched_setaffinity(pid, cpu_set)\n\n\
-Set the affinity of the process with PID *pid* to *cpu_set*.");
+/*[clinic input]
+os.sched_setaffinity
+ pid: pid_t
+ mask : object
+ /
+
+Set the CPU affinity of the process identified by pid to mask.
+
+mask should be an iterable of integers identifying CPUs.
+[clinic start generated code]*/
static PyObject *
-posix_sched_setaffinity(PyObject *self, PyObject *args)
+os_sched_setaffinity_impl(PyModuleDef *module, pid_t pid, PyObject *mask)
+/*[clinic end generated code: output=582bcbf40d3253a9 input=a0791a597c7085ba]*/
{
- pid_t pid;
int ncpus;
size_t setsize;
- cpu_set_t *mask = NULL;
- PyObject *iterable, *iterator = NULL, *item;
+ cpu_set_t *cpu_set = NULL;
+ PyObject *iterator = NULL, *item;
- if (!PyArg_ParseTuple(args, _Py_PARSE_PID "O:sched_setaffinity",
- &pid, &iterable))
- return NULL;
-
- iterator = PyObject_GetIter(iterable);
+ iterator = PyObject_GetIter(mask);
if (iterator == NULL)
return NULL;
ncpus = NCPUS_START;
setsize = CPU_ALLOC_SIZE(ncpus);
- mask = CPU_ALLOC(ncpus);
- if (mask == NULL) {
+ cpu_set = CPU_ALLOC(ncpus);
+ if (cpu_set == NULL) {
PyErr_NoMemory();
goto error;
}
- CPU_ZERO_S(setsize, mask);
+ CPU_ZERO_S(setsize, cpu_set);
while ((item = PyIter_Next(iterator))) {
long cpu;
@@ -5901,48 +5726,50 @@ posix_sched_setaffinity(PyObject *self, PyObject *args)
}
newsetsize = CPU_ALLOC_SIZE(newncpus);
CPU_ZERO_S(newsetsize, newmask);
- memcpy(newmask, mask, setsize);
- CPU_FREE(mask);
+ memcpy(newmask, cpu_set, setsize);
+ CPU_FREE(cpu_set);
setsize = newsetsize;
- mask = newmask;
+ cpu_set = newmask;
ncpus = newncpus;
}
- CPU_SET_S(cpu, setsize, mask);
+ CPU_SET_S(cpu, setsize, cpu_set);
}
Py_CLEAR(iterator);
- if (sched_setaffinity(pid, setsize, mask)) {
+ if (sched_setaffinity(pid, setsize, cpu_set)) {
posix_error();
goto error;
}
- CPU_FREE(mask);
+ CPU_FREE(cpu_set);
Py_RETURN_NONE;
error:
- if (mask)
- CPU_FREE(mask);
+ if (cpu_set)
+ CPU_FREE(cpu_set);
Py_XDECREF(iterator);
return NULL;
}
-PyDoc_STRVAR(posix_sched_getaffinity__doc__,
-"sched_getaffinity(pid, ncpus) -> cpu_set\n\n\
-Return the affinity of the process with PID *pid*.\n\
-The returned cpu_set will be of size *ncpus*.");
+
+/*[clinic input]
+os.sched_getaffinity
+ pid: pid_t
+ /
+
+Return the affinity of the process identified by pid.
+
+The affinity is returned as a set of CPU identifiers.
+[clinic start generated code]*/
static PyObject *
-posix_sched_getaffinity(PyObject *self, PyObject *args)
+os_sched_getaffinity_impl(PyModuleDef *module, pid_t pid)
+/*[clinic end generated code: output=b431a8f310e369e7 input=eaf161936874b8a1]*/
{
- pid_t pid;
int cpu, ncpus, count;
size_t setsize;
cpu_set_t *mask = NULL;
PyObject *res = NULL;
- if (!PyArg_ParseTuple(args, _Py_PARSE_PID ":sched_getaffinity",
- &pid))
- return NULL;
-
ncpus = NCPUS_START;
while (1) {
setsize = CPU_ALLOC_SIZE(ncpus);
@@ -5992,6 +5819,7 @@ error:
#endif /* HAVE_SCHED_H */
+
/* AIX uses /dev/ptc but is otherwise the same as /dev/ptmx */
/* IRIX has both /dev/ptc and /dev/ptmx, use ptmx */
#if defined(HAVE_DEV_PTC) && !defined(HAVE_DEV_PTMX)
@@ -6018,13 +5846,20 @@ error:
#endif
#endif /* defined(HAVE_OPENPTY) || defined(HAVE_FORKPTY) || defined(HAVE_DEV_PTMX */
+
#if defined(HAVE_OPENPTY) || defined(HAVE__GETPTY) || defined(HAVE_DEV_PTMX)
-PyDoc_STRVAR(posix_openpty__doc__,
-"openpty() -> (master_fd, slave_fd)\n\n\
-Open a pseudo-terminal, returning open fd's for both master and slave end.\n");
+/*[clinic input]
+os.openpty
+
+Open a pseudo-terminal.
+
+Return a tuple of (master_fd, slave_fd) containing open file descriptors
+for both the master and slave ends.
+[clinic start generated code]*/
static PyObject *
-posix_openpty(PyObject *self, PyObject *noargs)
+os_openpty_impl(PyModuleDef *module)
+/*[clinic end generated code: output=358e571c1ba135ee input=f3d99fd99e762907]*/
{
int master_fd = -1, slave_fd = -1;
#ifndef HAVE_OPENPTY
@@ -6055,7 +5890,7 @@ posix_openpty(PyObject *self, PyObject *noargs)
slave_fd = _Py_open(slave_name, O_RDWR);
if (slave_fd < 0)
- goto posix_error;
+ goto error;
#else
master_fd = open(DEV_PTY_FILE, O_RDWR | O_NOCTTY); /* open master */
@@ -6083,8 +5918,8 @@ posix_openpty(PyObject *self, PyObject *noargs)
goto posix_error;
slave_fd = _Py_open(slave_name, O_RDWR | O_NOCTTY); /* open slave */
- if (slave_fd < 0)
- goto posix_error;
+ if (slave_fd == -1)
+ goto error;
if (_Py_set_inheritable(master_fd, 0, NULL) < 0)
goto posix_error;
@@ -6102,9 +5937,7 @@ posix_openpty(PyObject *self, PyObject *noargs)
posix_error:
posix_error();
-#if defined(HAVE_OPENPTY) || defined(HAVE__GETPTY)
error:
-#endif
if (master_fd != -1)
close(master_fd);
if (slave_fd != -1)
@@ -6113,15 +5946,22 @@ error:
}
#endif /* defined(HAVE_OPENPTY) || defined(HAVE__GETPTY) || defined(HAVE_DEV_PTMX) */
+
#ifdef HAVE_FORKPTY
-PyDoc_STRVAR(posix_forkpty__doc__,
-"forkpty() -> (pid, master_fd)\n\n\
-Fork a new process with a new pseudo-terminal as controlling tty.\n\n\
-Like fork(), return 0 as pid to child process, and PID of child to parent.\n\
-To both, return fd of newly opened pseudo-terminal.\n");
+/*[clinic input]
+os.forkpty
+
+Fork a new process with a new pseudo-terminal as controlling tty.
+
+Returns a tuple of (pid, master_fd).
+Like fork(), return pid of 0 to the child process,
+and pid of child to the parent process.
+To both, return fd of newly opened pseudo-terminal.
+[clinic start generated code]*/
static PyObject *
-posix_forkpty(PyObject *self, PyObject *noargs)
+os_forkpty_impl(PyModuleDef *module)
+/*[clinic end generated code: output=a11b8391dce3cb57 input=f1f7f4bae3966010]*/
{
int master_fd = -1, result = 0;
pid_t pid;
@@ -6145,59 +5985,73 @@ posix_forkpty(PyObject *self, PyObject *noargs)
}
return Py_BuildValue("(Ni)", PyLong_FromPid(pid), master_fd);
}
-#endif
+#endif /* HAVE_FORKPTY */
#ifdef HAVE_GETEGID
-PyDoc_STRVAR(posix_getegid__doc__,
-"getegid() -> egid\n\n\
-Return the current process's effective group id.");
+/*[clinic input]
+os.getegid
+
+Return the current process's effective group id.
+[clinic start generated code]*/
static PyObject *
-posix_getegid(PyObject *self, PyObject *noargs)
+os_getegid_impl(PyModuleDef *module)
+/*[clinic end generated code: output=90f433a8c0b1d919 input=1596f79ad1107d5d]*/
{
return _PyLong_FromGid(getegid());
}
-#endif
+#endif /* HAVE_GETEGID */
#ifdef HAVE_GETEUID
-PyDoc_STRVAR(posix_geteuid__doc__,
-"geteuid() -> euid\n\n\
-Return the current process's effective user id.");
+/*[clinic input]
+os.geteuid
+
+Return the current process's effective user id.
+[clinic start generated code]*/
static PyObject *
-posix_geteuid(PyObject *self, PyObject *noargs)
+os_geteuid_impl(PyModuleDef *module)
+/*[clinic end generated code: output=1a532c4a66874357 input=4644c662d3bd9f19]*/
{
return _PyLong_FromUid(geteuid());
}
-#endif
+#endif /* HAVE_GETEUID */
#ifdef HAVE_GETGID
-PyDoc_STRVAR(posix_getgid__doc__,
-"getgid() -> gid\n\n\
-Return the current process's group id.");
+/*[clinic input]
+os.getgid
+
+Return the current process's group id.
+[clinic start generated code]*/
static PyObject *
-posix_getgid(PyObject *self, PyObject *noargs)
+os_getgid_impl(PyModuleDef *module)
+/*[clinic end generated code: output=91a22021b74ea46b input=58796344cd87c0f6]*/
{
return _PyLong_FromGid(getgid());
}
-#endif
+#endif /* HAVE_GETGID */
-PyDoc_STRVAR(posix_getpid__doc__,
-"getpid() -> pid\n\n\
-Return the current process id");
+/*[clinic input]
+os.getpid
+
+Return the current process id.
+[clinic start generated code]*/
static PyObject *
-posix_getpid(PyObject *self, PyObject *noargs)
+os_getpid_impl(PyModuleDef *module)
+/*[clinic end generated code: output=8fbf3a934ee09e62 input=5a9a00f0ab68aa00]*/
{
return PyLong_FromPid(getpid());
}
#ifdef HAVE_GETGROUPLIST
+
+/* AC 3.5: funny apple logic below */
PyDoc_STRVAR(posix_getgrouplist__doc__,
"getgrouplist(user, group) -> list of groups to which a user belongs\n\n\
Returns a list of groups to which a user belongs.\n\n\
@@ -6270,15 +6124,19 @@ posix_getgrouplist(PyObject *self, PyObject *args)
return list;
}
-#endif
+#endif /* HAVE_GETGROUPLIST */
+
#ifdef HAVE_GETGROUPS
-PyDoc_STRVAR(posix_getgroups__doc__,
-"getgroups() -> list of group IDs\n\n\
-Return list of supplemental group IDs for the process.");
+/*[clinic input]
+os.getgroups
+
+Return list of supplemental group IDs for the process.
+[clinic start generated code]*/
static PyObject *
-posix_getgroups(PyObject *self, PyObject *noargs)
+os_getgroups_impl(PyModuleDef *module)
+/*[clinic end generated code: output=6e7c4fd2db6d5c60 input=d3f109412e6a155c]*/
{
PyObject *result = NULL;
@@ -6377,7 +6235,7 @@ posix_getgroups(PyObject *self, PyObject *noargs)
return result;
}
-#endif
+#endif /* HAVE_GETGROUPS */
#ifdef HAVE_INITGROUPS
PyDoc_STRVAR(posix_initgroups__doc__,
@@ -6386,6 +6244,7 @@ Call the system initgroups() to initialize the group access list with all of\n\
the groups of which the specified username is a member, plus the specified\n\
group id.");
+/* AC 3.5: funny apple logic */
static PyObject *
posix_initgroups(PyObject *self, PyObject *args)
{
@@ -6418,20 +6277,23 @@ posix_initgroups(PyObject *self, PyObject *args)
Py_INCREF(Py_None);
return Py_None;
}
-#endif
+#endif /* HAVE_INITGROUPS */
+
#ifdef HAVE_GETPGID
-PyDoc_STRVAR(posix_getpgid__doc__,
-"getpgid(pid) -> pgid\n\n\
-Call the system call getpgid().");
+/*[clinic input]
+os.getpgid
+
+ pid: pid_t
+
+Call the system call getpgid(), and return the result.
+[clinic start generated code]*/
static PyObject *
-posix_getpgid(PyObject *self, PyObject *args)
+os_getpgid_impl(PyModuleDef *module, pid_t pid)
+/*[clinic end generated code: output=70e713b4d54b7c61 input=39d710ae3baaf1c7]*/
{
- pid_t pid, pgid;
- if (!PyArg_ParseTuple(args, _Py_PARSE_PID ":getpgid", &pid))
- return NULL;
- pgid = getpgid(pid);
+ pid_t pgid = getpgid(pid);
if (pgid < 0)
return posix_error();
return PyLong_FromPid(pgid);
@@ -6440,12 +6302,15 @@ posix_getpgid(PyObject *self, PyObject *args)
#ifdef HAVE_GETPGRP
-PyDoc_STRVAR(posix_getpgrp__doc__,
-"getpgrp() -> pgrp\n\n\
-Return the current process group id.");
+/*[clinic input]
+os.getpgrp
+
+Return the current process group id.
+[clinic start generated code]*/
static PyObject *
-posix_getpgrp(PyObject *self, PyObject *noargs)
+os_getpgrp_impl(PyModuleDef *module)
+/*[clinic end generated code: output=cf3403585846811f input=6846fb2bb9a3705e]*/
{
#ifdef GETPGRP_HAVE_ARG
return PyLong_FromPid(getpgrp(0));
@@ -6457,12 +6322,15 @@ posix_getpgrp(PyObject *self, PyObject *noargs)
#ifdef HAVE_SETPGRP
-PyDoc_STRVAR(posix_setpgrp__doc__,
-"setpgrp()\n\n\
-Make this process the process group leader.");
+/*[clinic input]
+os.setpgrp
+
+Make the current process the leader of its process group.
+[clinic start generated code]*/
static PyObject *
-posix_setpgrp(PyObject *self, PyObject *noargs)
+os_setpgrp_impl(PyModuleDef *module)
+/*[clinic end generated code: output=59650f55a963d7ac input=1f0619fcb5731e7e]*/
{
#ifdef SETPGRP_HAVE_ARG
if (setpgrp(0, 0) < 0)
@@ -6473,7 +6341,6 @@ posix_setpgrp(PyObject *self, PyObject *noargs)
Py_INCREF(Py_None);
return Py_None;
}
-
#endif /* HAVE_SETPGRP */
#ifdef HAVE_GETPPID
@@ -6520,14 +6387,19 @@ win32_getppid()
}
#endif /*MS_WINDOWS*/
-PyDoc_STRVAR(posix_getppid__doc__,
-"getppid() -> ppid\n\n\
-Return the parent's process id. If the parent process has already exited,\n\
-Windows machines will still return its id; others systems will return the id\n\
-of the 'init' process (1).");
+
+/*[clinic input]
+os.getppid
+
+Return the parent's process id.
+
+If the parent process has already exited, Windows machines will still
+return its id; others systems will return the id of the 'init' process (1).
+[clinic start generated code]*/
static PyObject *
-posix_getppid(PyObject *self, PyObject *noargs)
+os_getppid_impl(PyModuleDef *module)
+/*[clinic end generated code: output=4e49c8e7a8738cd2 input=e637cb87539c030e]*/
{
#ifdef MS_WINDOWS
return win32_getppid();
@@ -6539,12 +6411,15 @@ posix_getppid(PyObject *self, PyObject *noargs)
#ifdef HAVE_GETLOGIN
-PyDoc_STRVAR(posix_getlogin__doc__,
-"getlogin() -> string\n\n\
-Return the actual login name.");
+/*[clinic input]
+os.getlogin
+
+Return the actual login name.
+[clinic start generated code]*/
static PyObject *
-posix_getlogin(PyObject *self, PyObject *noargs)
+os_getlogin_impl(PyModuleDef *module)
+/*[clinic end generated code: output=037ebdb3e4b5dac1 input=2a21ab1e917163df]*/
{
PyObject *result = NULL;
#ifdef MS_WINDOWS
@@ -6577,77 +6452,54 @@ posix_getlogin(PyObject *self, PyObject *noargs)
}
#endif /* HAVE_GETLOGIN */
+
#ifdef HAVE_GETUID
-PyDoc_STRVAR(posix_getuid__doc__,
-"getuid() -> uid\n\n\
-Return the current process's user id.");
+/*[clinic input]
+os.getuid
+
+Return the current process's user id.
+[clinic start generated code]*/
static PyObject *
-posix_getuid(PyObject *self, PyObject *noargs)
+os_getuid_impl(PyModuleDef *module)
+/*[clinic end generated code: output=03a8b894cefb3fa5 input=b53c8b35f110a516]*/
{
return _PyLong_FromUid(getuid());
}
-#endif
+#endif /* HAVE_GETUID */
+
+#ifdef MS_WINDOWS
+#define HAVE_KILL
+#endif /* MS_WINDOWS */
#ifdef HAVE_KILL
-PyDoc_STRVAR(posix_kill__doc__,
-"kill(pid, sig)\n\n\
-Kill a process with a signal.");
+/*[clinic input]
+os.kill
-static PyObject *
-posix_kill(PyObject *self, PyObject *args)
-{
- pid_t pid;
- int sig;
- if (!PyArg_ParseTuple(args, _Py_PARSE_PID "i:kill", &pid, &sig))
- return NULL;
- if (kill(pid, sig) == -1)
- return posix_error();
- Py_INCREF(Py_None);
- return Py_None;
-}
-#endif
+ pid: pid_t
+ signal: Py_ssize_t
+ /
-#ifdef HAVE_KILLPG
-PyDoc_STRVAR(posix_killpg__doc__,
-"killpg(pgid, sig)\n\n\
-Kill a process group with a signal.");
+Kill a process with a signal.
+[clinic start generated code]*/
static PyObject *
-posix_killpg(PyObject *self, PyObject *args)
+os_kill_impl(PyModuleDef *module, pid_t pid, Py_ssize_t signal)
+/*[clinic end generated code: output=74f907dd00a83c26 input=61a36b86ca275ab9]*/
+#ifndef MS_WINDOWS
{
- int sig;
- pid_t pgid;
- /* XXX some man pages make the `pgid` parameter an int, others
- a pid_t. Since getpgrp() returns a pid_t, we assume killpg should
- take the same type. Moreover, pid_t is always at least as wide as
- int (else compilation of this module fails), which is safe. */
- if (!PyArg_ParseTuple(args, _Py_PARSE_PID "i:killpg", &pgid, &sig))
- return NULL;
- if (killpg(pgid, sig) == -1)
+ if (kill(pid, (int)signal) == -1)
return posix_error();
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
-#endif
-
-#ifdef MS_WINDOWS
-PyDoc_STRVAR(win32_kill__doc__,
-"kill(pid, sig)\n\n\
-Kill a process with a signal.");
-
-static PyObject *
-win32_kill(PyObject *self, PyObject *args)
+#else /* !MS_WINDOWS */
{
PyObject *result;
- pid_t pid;
- DWORD sig, err;
+ DWORD sig = (DWORD)signal;
+ DWORD err;
HANDLE handle;
- if (!PyArg_ParseTuple(args, _Py_PARSE_PID "k:kill", &pid, &sig))
- return NULL;
-
/* Console processes which share a common console can be sent CTRL+C or
CTRL+BREAK events, provided they handle said events. */
if (sig == CTRL_C_EVENT || sig == CTRL_BREAK_EVENT) {
@@ -6678,103 +6530,138 @@ win32_kill(PyObject *self, PyObject *args)
CloseHandle(handle);
return result;
}
-#endif /* MS_WINDOWS */
+#endif /* !MS_WINDOWS */
+#endif /* HAVE_KILL */
-#ifdef HAVE_PLOCK
+#ifdef HAVE_KILLPG
+/*[clinic input]
+os.killpg
+
+ pgid: pid_t
+ signal: int
+ /
+
+Kill a process group with a signal.
+[clinic start generated code]*/
+
+static PyObject *
+os_killpg_impl(PyModuleDef *module, pid_t pgid, int signal)
+/*[clinic end generated code: output=3434a766ef945f93 input=38b5449eb8faec19]*/
+{
+ /* XXX some man pages make the `pgid` parameter an int, others
+ a pid_t. Since getpgrp() returns a pid_t, we assume killpg should
+ take the same type. Moreover, pid_t is always at least as wide as
+ int (else compilation of this module fails), which is safe. */
+ if (killpg(pgid, signal) == -1)
+ return posix_error();
+ Py_RETURN_NONE;
+}
+#endif /* HAVE_KILLPG */
+
+
+#ifdef HAVE_PLOCK
#ifdef HAVE_SYS_LOCK_H
#include <sys/lock.h>
#endif
-PyDoc_STRVAR(posix_plock__doc__,
-"plock(op)\n\n\
+/*[clinic input]
+os.plock
+ op: int
+ /
+
Lock program segments into memory.");
+[clinic start generated code]*/
static PyObject *
-posix_plock(PyObject *self, PyObject *args)
+os_plock_impl(PyModuleDef *module, int op)
+/*[clinic end generated code: output=5cb851f81b914984 input=e6e5e348e1525f60]*/
{
- int op;
- if (!PyArg_ParseTuple(args, "i:plock", &op))
- return NULL;
if (plock(op) == -1)
return posix_error();
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
-#endif
+#endif /* HAVE_PLOCK */
+
#ifdef HAVE_SETUID
-PyDoc_STRVAR(posix_setuid__doc__,
-"setuid(uid)\n\n\
-Set the current process's user id.");
+/*[clinic input]
+os.setuid
+
+ uid: uid_t
+ /
+
+Set the current process's user id.
+[clinic start generated code]*/
static PyObject *
-posix_setuid(PyObject *self, PyObject *args)
+os_setuid_impl(PyModuleDef *module, uid_t uid)
+/*[clinic end generated code: output=941ea9a8d1e5d565 input=c921a3285aa22256]*/
{
- uid_t uid;
- if (!PyArg_ParseTuple(args, "O&:setuid", _Py_Uid_Converter, &uid))
- return NULL;
if (setuid(uid) < 0)
return posix_error();
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
#endif /* HAVE_SETUID */
#ifdef HAVE_SETEUID
-PyDoc_STRVAR(posix_seteuid__doc__,
-"seteuid(uid)\n\n\
-Set the current process's effective user id.");
+/*[clinic input]
+os.seteuid
+
+ euid: uid_t
+ /
+
+Set the current process's effective user id.
+[clinic start generated code]*/
static PyObject *
-posix_seteuid (PyObject *self, PyObject *args)
+os_seteuid_impl(PyModuleDef *module, uid_t euid)
+/*[clinic end generated code: output=66f4f6823a648d6d input=ba93d927e4781aa9]*/
{
- uid_t euid;
- if (!PyArg_ParseTuple(args, "O&:seteuid", _Py_Uid_Converter, &euid))
- return NULL;
- if (seteuid(euid) < 0) {
+ if (seteuid(euid) < 0)
return posix_error();
- } else {
- Py_INCREF(Py_None);
- return Py_None;
- }
+ Py_RETURN_NONE;
}
#endif /* HAVE_SETEUID */
+
#ifdef HAVE_SETEGID
-PyDoc_STRVAR(posix_setegid__doc__,
-"setegid(gid)\n\n\
-Set the current process's effective group id.");
+/*[clinic input]
+os.setegid
+
+ egid: gid_t
+ /
+
+Set the current process's effective group id.
+[clinic start generated code]*/
static PyObject *
-posix_setegid (PyObject *self, PyObject *args)
+os_setegid_impl(PyModuleDef *module, gid_t egid)
+/*[clinic end generated code: output=ca094a69a081a60f input=4080526d0ccd6ce3]*/
{
- gid_t egid;
- if (!PyArg_ParseTuple(args, "O&:setegid", _Py_Gid_Converter, &egid))
- return NULL;
- if (setegid(egid) < 0) {
+ if (setegid(egid) < 0)
return posix_error();
- } else {
- Py_INCREF(Py_None);
- return Py_None;
- }
+ Py_RETURN_NONE;
}
#endif /* HAVE_SETEGID */
+
#ifdef HAVE_SETREUID
-PyDoc_STRVAR(posix_setreuid__doc__,
-"setreuid(ruid, euid)\n\n\
-Set the current process's real and effective user ids.");
+/*[clinic input]
+os.setreuid
+
+ ruid: uid_t
+ euid: uid_t
+ /
+
+Set the current process's real and effective user ids.
+[clinic start generated code]*/
static PyObject *
-posix_setreuid (PyObject *self, PyObject *args)
+os_setreuid_impl(PyModuleDef *module, uid_t ruid, uid_t euid)
+/*[clinic end generated code: output=b2938c3e73d27ec7 input=0ca8978de663880c]*/
{
- uid_t ruid, euid;
- if (!PyArg_ParseTuple(args, "O&O&:setreuid",
- _Py_Uid_Converter, &ruid,
- _Py_Uid_Converter, &euid))
- return NULL;
if (setreuid(ruid, euid) < 0) {
return posix_error();
} else {
@@ -6784,53 +6671,62 @@ posix_setreuid (PyObject *self, PyObject *args)
}
#endif /* HAVE_SETREUID */
+
#ifdef HAVE_SETREGID
-PyDoc_STRVAR(posix_setregid__doc__,
-"setregid(rgid, egid)\n\n\
-Set the current process's real and effective group ids.");
+/*[clinic input]
+os.setregid
+
+ rgid: gid_t
+ egid: gid_t
+ /
+
+Set the current process's real and effective group ids.
+[clinic start generated code]*/
static PyObject *
-posix_setregid (PyObject *self, PyObject *args)
+os_setregid_impl(PyModuleDef *module, gid_t rgid, gid_t egid)
+/*[clinic end generated code: output=db18f1839ababe3d input=c59499f72846db78]*/
{
- gid_t rgid, egid;
- if (!PyArg_ParseTuple(args, "O&O&:setregid",
- _Py_Gid_Converter, &rgid,
- _Py_Gid_Converter, &egid))
- return NULL;
- if (setregid(rgid, egid) < 0) {
+ if (setregid(rgid, egid) < 0)
return posix_error();
- } else {
- Py_INCREF(Py_None);
- return Py_None;
- }
+ Py_RETURN_NONE;
}
#endif /* HAVE_SETREGID */
+
#ifdef HAVE_SETGID
-PyDoc_STRVAR(posix_setgid__doc__,
-"setgid(gid)\n\n\
-Set the current process's group id.");
+/*[clinic input]
+os.setgid
+ gid: gid_t
+ /
+
+Set the current process's group id.
+[clinic start generated code]*/
static PyObject *
-posix_setgid(PyObject *self, PyObject *args)
+os_setgid_impl(PyModuleDef *module, gid_t gid)
+/*[clinic end generated code: output=756cb42c6abd9d87 input=27d30c4059045dc6]*/
{
- gid_t gid;
- if (!PyArg_ParseTuple(args, "O&:setgid", _Py_Gid_Converter, &gid))
- return NULL;
if (setgid(gid) < 0)
return posix_error();
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
#endif /* HAVE_SETGID */
+
#ifdef HAVE_SETGROUPS
-PyDoc_STRVAR(posix_setgroups__doc__,
-"setgroups(list)\n\n\
-Set the groups of the current process to list.");
+/*[clinic input]
+os.setgroups
+
+ groups: object
+ /
+
+Set the groups of the current process to list.
+[clinic start generated code]*/
static PyObject *
-posix_setgroups(PyObject *self, PyObject *groups)
+os_setgroups(PyModuleDef *module, PyObject *groups)
+/*[clinic end generated code: output=7945c2e3cc817c58 input=fa742ca3daf85a7e]*/
{
int i, len;
gid_t grouplist[MAX_GROUPS];
@@ -6931,83 +6827,114 @@ wait_helper(pid_t pid, int status, struct rusage *ru)
}
#endif /* HAVE_WAIT3 || HAVE_WAIT4 */
+
#ifdef HAVE_WAIT3
-PyDoc_STRVAR(posix_wait3__doc__,
-"wait3(options) -> (pid, status, rusage)\n\n\
-Wait for completion of a child process.");
+/*[clinic input]
+os.wait3
+
+ options: int
+Wait for completion of a child process.
+
+Returns a tuple of information about the child process:
+ (pid, status, rusage)
+[clinic start generated code]*/
static PyObject *
-posix_wait3(PyObject *self, PyObject *args)
+os_wait3_impl(PyModuleDef *module, int options)
+/*[clinic end generated code: output=e18af4924dc54945 input=8ac4c56956b61710]*/
{
pid_t pid;
- int options;
struct rusage ru;
+ int async_err = 0;
WAIT_TYPE status;
WAIT_STATUS_INT(status) = 0;
- if (!PyArg_ParseTuple(args, "i:wait3", &options))
- return NULL;
-
- Py_BEGIN_ALLOW_THREADS
- pid = wait3(&status, options, &ru);
- Py_END_ALLOW_THREADS
+ do {
+ Py_BEGIN_ALLOW_THREADS
+ pid = wait3(&status, options, &ru);
+ Py_END_ALLOW_THREADS
+ } while (pid < 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
+ if (pid < 0)
+ return (!async_err) ? posix_error() : NULL;
return wait_helper(pid, WAIT_STATUS_INT(status), &ru);
}
#endif /* HAVE_WAIT3 */
+
#ifdef HAVE_WAIT4
-PyDoc_STRVAR(posix_wait4__doc__,
-"wait4(pid, options) -> (pid, status, rusage)\n\n\
-Wait for completion of a given child process.");
+/*[clinic input]
+
+os.wait4
+
+ pid: pid_t
+ options: int
+
+Wait for completion of a specific child process.
+
+Returns a tuple of information about the child process:
+ (pid, status, rusage)
+[clinic start generated code]*/
static PyObject *
-posix_wait4(PyObject *self, PyObject *args)
+os_wait4_impl(PyModuleDef *module, pid_t pid, int options)
+/*[clinic end generated code: output=714f19e6ff01e099 input=d11deed0750600ba]*/
{
- pid_t pid;
- int options;
+ pid_t res;
struct rusage ru;
+ int async_err = 0;
WAIT_TYPE status;
WAIT_STATUS_INT(status) = 0;
- if (!PyArg_ParseTuple(args, _Py_PARSE_PID "i:wait4", &pid, &options))
- return NULL;
-
- Py_BEGIN_ALLOW_THREADS
- pid = wait4(pid, &status, options, &ru);
- Py_END_ALLOW_THREADS
+ do {
+ Py_BEGIN_ALLOW_THREADS
+ res = wait4(pid, &status, options, &ru);
+ Py_END_ALLOW_THREADS
+ } while (res < 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
+ if (res < 0)
+ return (!async_err) ? posix_error() : NULL;
- return wait_helper(pid, WAIT_STATUS_INT(status), &ru);
+ return wait_helper(res, WAIT_STATUS_INT(status), &ru);
}
#endif /* HAVE_WAIT4 */
+
#if defined(HAVE_WAITID) && !defined(__APPLE__)
-PyDoc_STRVAR(posix_waitid__doc__,
-"waitid(idtype, id, options) -> waitid_result\n\n\
-Wait for the completion of one or more child processes.\n\n\
-idtype can be P_PID, P_PGID or P_ALL.\n\
-id specifies the pid to wait on.\n\
-options is constructed from the ORing of one or more of WEXITED, WSTOPPED\n\
-or WCONTINUED and additionally may be ORed with WNOHANG or WNOWAIT.\n\
-Returns either waitid_result or None if WNOHANG is specified and there are\n\
-no children in a waitable state.");
+/*[clinic input]
+os.waitid
+
+ idtype: idtype_t
+ Must be one of be P_PID, P_PGID or P_ALL.
+ id: id_t
+ The id to wait on.
+ options: int
+ Constructed from the ORing of one or more of WEXITED, WSTOPPED
+ or WCONTINUED and additionally may be ORed with WNOHANG or WNOWAIT.
+ /
+
+Returns the result of waiting for a process or processes.
+
+Returns either waitid_result or None if WNOHANG is specified and there are
+no children in a waitable state.
+[clinic start generated code]*/
static PyObject *
-posix_waitid(PyObject *self, PyObject *args)
+os_waitid_impl(PyModuleDef *module, idtype_t idtype, id_t id, int options)
+/*[clinic end generated code: output=5c0192750e22fa2e input=d8e7f76e052b7920]*/
{
PyObject *result;
- idtype_t idtype;
- id_t id;
- int options, res;
+ int res;
+ int async_err = 0;
siginfo_t si;
si.si_pid = 0;
- if (!PyArg_ParseTuple(args, "i" _Py_PARSE_PID "i:waitid", &idtype, &id, &options))
- return NULL;
- Py_BEGIN_ALLOW_THREADS
- res = waitid(idtype, id, &si, options);
- Py_END_ALLOW_THREADS
- if (res == -1)
- return posix_error();
+
+ do {
+ Py_BEGIN_ALLOW_THREADS
+ res = waitid(idtype, id, &si, options);
+ Py_END_ALLOW_THREADS
+ } while (res < 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
+ if (res < 0)
+ return (!async_err) ? posix_error() : NULL;
if (si.si_pid == 0)
Py_RETURN_NONE;
@@ -7028,79 +6955,111 @@ posix_waitid(PyObject *self, PyObject *args)
return result;
}
-#endif
+#endif /* defined(HAVE_WAITID) && !defined(__APPLE__) */
-#ifdef HAVE_WAITPID
-PyDoc_STRVAR(posix_waitpid__doc__,
-"waitpid(pid, options) -> (pid, status)\n\n\
-Wait for completion of a given child process.");
+
+#if defined(HAVE_WAITPID)
+/*[clinic input]
+os.waitpid
+ pid: pid_t
+ options: int
+ /
+
+Wait for completion of a given child process.
+
+Returns a tuple of information regarding the child process:
+ (pid, status)
+
+The options argument is ignored on Windows.
+[clinic start generated code]*/
static PyObject *
-posix_waitpid(PyObject *self, PyObject *args)
+os_waitpid_impl(PyModuleDef *module, pid_t pid, int options)
+/*[clinic end generated code: output=5e3593353d54b15b input=0bf1666b8758fda3]*/
{
- pid_t pid;
- int options;
+ pid_t res;
+ int async_err = 0;
WAIT_TYPE status;
WAIT_STATUS_INT(status) = 0;
- if (!PyArg_ParseTuple(args, _Py_PARSE_PID "i:waitpid", &pid, &options))
- return NULL;
- Py_BEGIN_ALLOW_THREADS
- pid = waitpid(pid, &status, options);
- Py_END_ALLOW_THREADS
- if (pid == -1)
- return posix_error();
+ do {
+ Py_BEGIN_ALLOW_THREADS
+ res = waitpid(pid, &status, options);
+ Py_END_ALLOW_THREADS
+ } while (res < 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
+ if (res < 0)
+ return (!async_err) ? posix_error() : NULL;
- return Py_BuildValue("Ni", PyLong_FromPid(pid), WAIT_STATUS_INT(status));
+ return Py_BuildValue("Ni", PyLong_FromPid(res), WAIT_STATUS_INT(status));
}
-
#elif defined(HAVE_CWAIT)
-
/* MS C has a variant of waitpid() that's usable for most purposes. */
-PyDoc_STRVAR(posix_waitpid__doc__,
-"waitpid(pid, options) -> (pid, status << 8)\n\n"
-"Wait for completion of a given process. options is ignored on Windows.");
+/*[clinic input]
+os.waitpid
+ pid: Py_intptr_t
+ options: int
+ /
+
+Wait for completion of a given process.
+
+Returns a tuple of information regarding the process:
+ (pid, status << 8)
+
+The options argument is ignored on Windows.
+[clinic start generated code]*/
static PyObject *
-posix_waitpid(PyObject *self, PyObject *args)
+os_waitpid_impl(PyModuleDef *module, Py_intptr_t pid, int options)
+/*[clinic end generated code: output=fc1d520db019625f input=444c8f51cca5b862]*/
{
- Py_intptr_t pid;
- int status, options;
+ int status;
+ Py_intptr_t res;
+ int async_err = 0;
- if (!PyArg_ParseTuple(args, _Py_PARSE_INTPTR "i:waitpid", &pid, &options))
- return NULL;
- Py_BEGIN_ALLOW_THREADS
- pid = _cwait(&status, pid, options);
- Py_END_ALLOW_THREADS
- if (pid == -1)
- return posix_error();
+ do {
+ Py_BEGIN_ALLOW_THREADS
+ res = _cwait(&status, pid, options);
+ Py_END_ALLOW_THREADS
+ } while (res < 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
+ if (res < 0)
+ return (!async_err) ? posix_error() : NULL;
/* shift the status left a byte so this is more like the POSIX waitpid */
- return Py_BuildValue(_Py_PARSE_INTPTR "i", pid, status << 8);
+ return Py_BuildValue(_Py_PARSE_INTPTR "i", res, status << 8);
}
-#endif /* HAVE_WAITPID || HAVE_CWAIT */
+#endif
+
#ifdef HAVE_WAIT
-PyDoc_STRVAR(posix_wait__doc__,
-"wait() -> (pid, status)\n\n\
-Wait for completion of a child process.");
+/*[clinic input]
+os.wait
+
+Wait for completion of a child process.
+
+Returns a tuple of information about the child process:
+ (pid, status)
+[clinic start generated code]*/
static PyObject *
-posix_wait(PyObject *self, PyObject *noargs)
+os_wait_impl(PyModuleDef *module)
+/*[clinic end generated code: output=4a7f4978393e0654 input=03b0182d4a4700ce]*/
{
pid_t pid;
+ int async_err = 0;
WAIT_TYPE status;
WAIT_STATUS_INT(status) = 0;
- Py_BEGIN_ALLOW_THREADS
- pid = wait(&status);
- Py_END_ALLOW_THREADS
- if (pid == -1)
- return posix_error();
+ do {
+ Py_BEGIN_ALLOW_THREADS
+ pid = wait(&status);
+ Py_END_ALLOW_THREADS
+ } while (pid < 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
+ if (pid < 0)
+ return (!async_err) ? posix_error() : NULL;
return Py_BuildValue("Ni", PyLong_FromPid(pid), WAIT_STATUS_INT(status));
}
-#endif
+#endif /* HAVE_WAIT */
#if defined(HAVE_READLINK) || defined(MS_WINDOWS)
@@ -7116,6 +7075,7 @@ dir_fd may not be implemented on your platform.\n\
#ifdef HAVE_READLINK
+/* AC 3.5: merge win32 and not together */
static PyObject *
posix_readlink(PyObject *self, PyObject *args, PyObject *kwargs)
{
@@ -7130,12 +7090,7 @@ posix_readlink(PyObject *self, PyObject *args, PyObject *kwargs)
path.function_name = "readlink";
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&|$O&:readlink", keywords,
path_converter, &path,
-#ifdef HAVE_READLINKAT
- dir_fd_converter, &dir_fd
-#else
- dir_fd_unavailable, &dir_fd
-#endif
- ))
+ READLINKAT_DIR_FD_CONVERTER, &dir_fd))
return NULL;
Py_BEGIN_ALLOW_THREADS
@@ -7161,23 +7116,86 @@ exit:
return return_value;
}
-
#endif /* HAVE_READLINK */
+#if !defined(HAVE_READLINK) && defined(MS_WINDOWS)
+
+static PyObject *
+win_readlink(PyObject *self, PyObject *args, PyObject *kwargs)
+{
+ wchar_t *path;
+ DWORD n_bytes_returned;
+ DWORD io_result;
+ PyObject *po, *result;
+ int dir_fd;
+ HANDLE reparse_point_handle;
+
+ char target_buffer[MAXIMUM_REPARSE_DATA_BUFFER_SIZE];
+ REPARSE_DATA_BUFFER *rdb = (REPARSE_DATA_BUFFER *)target_buffer;
+ wchar_t *print_name;
+
+ static char *keywords[] = {"path", "dir_fd", NULL};
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "U|$O&:readlink", keywords,
+ &po,
+ dir_fd_unavailable, &dir_fd
+ ))
+ return NULL;
+
+ path = PyUnicode_AsUnicode(po);
+ if (path == NULL)
+ return NULL;
+
+ /* First get a handle to the reparse point */
+ Py_BEGIN_ALLOW_THREADS
+ reparse_point_handle = CreateFileW(
+ path,
+ 0,
+ 0,
+ 0,
+ OPEN_EXISTING,
+ FILE_FLAG_OPEN_REPARSE_POINT|FILE_FLAG_BACKUP_SEMANTICS,
+ 0);
+ Py_END_ALLOW_THREADS
+
+ if (reparse_point_handle==INVALID_HANDLE_VALUE)
+ return win32_error_object("readlink", po);
+
+ Py_BEGIN_ALLOW_THREADS
+ /* New call DeviceIoControl to read the reparse point */
+ io_result = DeviceIoControl(
+ reparse_point_handle,
+ FSCTL_GET_REPARSE_POINT,
+ 0, 0, /* in buffer */
+ target_buffer, sizeof(target_buffer),
+ &n_bytes_returned,
+ 0 /* we're not using OVERLAPPED_IO */
+ );
+ CloseHandle(reparse_point_handle);
+ Py_END_ALLOW_THREADS
+
+ if (io_result==0)
+ return win32_error_object("readlink", po);
+
+ if (rdb->ReparseTag != IO_REPARSE_TAG_SYMLINK)
+ {
+ PyErr_SetString(PyExc_ValueError,
+ "not a symbolic link");
+ return NULL;
+ }
+ print_name = rdb->SymbolicLinkReparseBuffer.PathBuffer +
+ rdb->SymbolicLinkReparseBuffer.PrintNameOffset;
+
+ result = PyUnicode_FromWideChar(print_name,
+ rdb->SymbolicLinkReparseBuffer.PrintNameLength/2);
+ return result;
+}
+
+#endif /* !defined(HAVE_READLINK) && defined(MS_WINDOWS) */
+
+
#ifdef HAVE_SYMLINK
-PyDoc_STRVAR(posix_symlink__doc__,
-"symlink(src, dst, target_is_directory=False, *, dir_fd=None)\n\n\
-Create a symbolic link pointing to src named dst.\n\n\
-target_is_directory is required on Windows if the target is to be\n\
- interpreted as a directory. (On Windows, symlink requires\n\
- Windows 6.0 or greater, and raises a NotImplementedError otherwise.)\n\
- target_is_directory is ignored on non-Windows platforms.\n\
-\n\
-If dir_fd is not None, it should be a file descriptor open to a directory,\n\
- and path should be relative; path will then be relative to that directory.\n\
-dir_fd may not be implemented on your platform.\n\
- If it is unavailable, using it will raise a NotImplementedError.");
#if defined(MS_WINDOWS)
@@ -7323,189 +7341,102 @@ _check_dirA(char *src, char *dest)
&& src_info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY
);
}
-
#endif
+
+/*[clinic input]
+os.symlink
+ src: path_t
+ dst: path_t
+ target_is_directory: bool = False
+ *
+ dir_fd: dir_fd(requires='symlinkat')=None
+
+# "symlink(src, dst, target_is_directory=False, *, dir_fd=None)\n\n\
+
+Create a symbolic link pointing to src named dst.
+
+target_is_directory is required on Windows if the target is to be
+ interpreted as a directory. (On Windows, symlink requires
+ Windows 6.0 or greater, and raises a NotImplementedError otherwise.)
+ target_is_directory is ignored on non-Windows platforms.
+
+If dir_fd is not None, it should be a file descriptor open to a directory,
+ and path should be relative; path will then be relative to that directory.
+dir_fd may not be implemented on your platform.
+ If it is unavailable, using it will raise a NotImplementedError.
+
+[clinic start generated code]*/
+
static PyObject *
-posix_symlink(PyObject *self, PyObject *args, PyObject *kwargs)
+os_symlink_impl(PyModuleDef *module, path_t *src, path_t *dst,
+ int target_is_directory, int dir_fd)
+/*[clinic end generated code: output=a01b4bcf32403ccd input=e820ec4472547bc3]*/
{
- path_t src;
- path_t dst;
- int dir_fd = DEFAULT_DIR_FD;
- int target_is_directory = 0;
- static char *keywords[] = {"src", "dst", "target_is_directory",
- "dir_fd", NULL};
- PyObject *return_value;
#ifdef MS_WINDOWS
DWORD result;
#else
int result;
#endif
- memset(&src, 0, sizeof(src));
- src.function_name = "symlink";
- src.argument_name = "src";
- memset(&dst, 0, sizeof(dst));
- dst.function_name = "symlink";
- dst.argument_name = "dst";
-
#ifdef MS_WINDOWS
if (!check_CreateSymbolicLink()) {
PyErr_SetString(PyExc_NotImplementedError,
"CreateSymbolicLink functions not found");
- return NULL;
+ return NULL;
}
if (!win32_can_symlink) {
PyErr_SetString(PyExc_OSError, "symbolic link privilege not held");
- return NULL;
+ return NULL;
}
#endif
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&|i$O&:symlink",
- keywords,
- path_converter, &src,
- path_converter, &dst,
- &target_is_directory,
-#ifdef HAVE_SYMLINKAT
- dir_fd_converter, &dir_fd
-#else
- dir_fd_unavailable, &dir_fd
-#endif
- ))
- return NULL;
-
- if ((src.narrow && dst.wide) || (src.wide && dst.narrow)) {
+ if ((src->narrow && dst->wide) || (src->wide && dst->narrow)) {
PyErr_SetString(PyExc_ValueError,
"symlink: src and dst must be the same type");
- return_value = NULL;
- goto exit;
+ return NULL;
}
#ifdef MS_WINDOWS
Py_BEGIN_ALLOW_THREADS
- if (dst.wide) {
+ if (dst->wide) {
/* if src is a directory, ensure target_is_directory==1 */
- target_is_directory |= _check_dirW(src.wide, dst.wide);
- result = Py_CreateSymbolicLinkW(dst.wide, src.wide,
+ target_is_directory |= _check_dirW(src->wide, dst->wide);
+ result = Py_CreateSymbolicLinkW(dst->wide, src->wide,
target_is_directory);
}
else {
/* if src is a directory, ensure target_is_directory==1 */
- target_is_directory |= _check_dirA(src.narrow, dst.narrow);
- result = Py_CreateSymbolicLinkA(dst.narrow, src.narrow,
+ target_is_directory |= _check_dirA(src->narrow, dst->narrow);
+ result = Py_CreateSymbolicLinkA(dst->narrow, src->narrow,
target_is_directory);
}
Py_END_ALLOW_THREADS
- if (!result) {
- return_value = path_error2(&src, &dst);
- goto exit;
- }
+ if (!result)
+ return path_error2(src, dst);
#else
Py_BEGIN_ALLOW_THREADS
#if HAVE_SYMLINKAT
if (dir_fd != DEFAULT_DIR_FD)
- result = symlinkat(src.narrow, dir_fd, dst.narrow);
+ result = symlinkat(src->narrow, dir_fd, dst->narrow);
else
#endif
- result = symlink(src.narrow, dst.narrow);
+ result = symlink(src->narrow, dst->narrow);
Py_END_ALLOW_THREADS
- if (result) {
- return_value = path_error2(&src, &dst);
- goto exit;
- }
+ if (result)
+ return path_error2(src, dst);
#endif
- return_value = Py_None;
- Py_INCREF(Py_None);
- goto exit; /* silence "unused label" warning */
-exit:
- path_cleanup(&src);
- path_cleanup(&dst);
- return return_value;
+ Py_RETURN_NONE;
}
-
#endif /* HAVE_SYMLINK */
-#if !defined(HAVE_READLINK) && defined(MS_WINDOWS)
-
-static PyObject *
-win_readlink(PyObject *self, PyObject *args, PyObject *kwargs)
-{
- wchar_t *path;
- DWORD n_bytes_returned;
- DWORD io_result;
- PyObject *po, *result;
- int dir_fd;
- HANDLE reparse_point_handle;
-
- char target_buffer[MAXIMUM_REPARSE_DATA_BUFFER_SIZE];
- REPARSE_DATA_BUFFER *rdb = (REPARSE_DATA_BUFFER *)target_buffer;
- wchar_t *print_name;
-
- static char *keywords[] = {"path", "dir_fd", NULL};
-
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "U|$O&:readlink", keywords,
- &po,
- dir_fd_unavailable, &dir_fd
- ))
- return NULL;
-
- path = PyUnicode_AsUnicode(po);
- if (path == NULL)
- return NULL;
-
- /* First get a handle to the reparse point */
- Py_BEGIN_ALLOW_THREADS
- reparse_point_handle = CreateFileW(
- path,
- 0,
- 0,
- 0,
- OPEN_EXISTING,
- FILE_FLAG_OPEN_REPARSE_POINT|FILE_FLAG_BACKUP_SEMANTICS,
- 0);
- Py_END_ALLOW_THREADS
-
- if (reparse_point_handle==INVALID_HANDLE_VALUE)
- return win32_error_object("readlink", po);
-
- Py_BEGIN_ALLOW_THREADS
- /* New call DeviceIoControl to read the reparse point */
- io_result = DeviceIoControl(
- reparse_point_handle,
- FSCTL_GET_REPARSE_POINT,
- 0, 0, /* in buffer */
- target_buffer, sizeof(target_buffer),
- &n_bytes_returned,
- 0 /* we're not using OVERLAPPED_IO */
- );
- CloseHandle(reparse_point_handle);
- Py_END_ALLOW_THREADS
-
- if (io_result==0)
- return win32_error_object("readlink", po);
-
- if (rdb->ReparseTag != IO_REPARSE_TAG_SYMLINK)
- {
- PyErr_SetString(PyExc_ValueError,
- "not a symbolic link");
- return NULL;
- }
- print_name = rdb->SymbolicLinkReparseBuffer.PathBuffer +
- rdb->SymbolicLinkReparseBuffer.PrintNameOffset;
-
- result = PyUnicode_FromWideChar(print_name,
- rdb->SymbolicLinkReparseBuffer.PrintNameLength/2);
- return result;
-}
-
-#endif /* !defined(HAVE_READLINK) && defined(MS_WINDOWS) */
static PyStructSequence_Field times_result_fields[] = {
@@ -7571,15 +7502,26 @@ build_times_result(double user, double system,
return value;
}
-PyDoc_STRVAR(posix_times__doc__,
-"times() -> times_result\n\n\
-Return an object containing floating point numbers indicating process\n\
-times. The object behaves like a named tuple with these fields:\n\
- (utime, stime, cutime, cstime, elapsed_time)");
-#if defined(MS_WINDOWS)
+#ifndef MS_WINDOWS
+#define NEED_TICKS_PER_SECOND
+static long ticks_per_second = -1;
+#endif /* MS_WINDOWS */
+
+/*[clinic input]
+os.times
+
+Return a collection containing process timing information.
+
+The object returned behaves like a named tuple with these fields:
+ (utime, stime, cutime, cstime, elapsed_time)
+All fields are floating point numbers.
+[clinic start generated code]*/
+
static PyObject *
-posix_times(PyObject *self, PyObject *noargs)
+os_times_impl(PyModuleDef *module)
+/*[clinic end generated code: output=df0a63ebe6e6f091 input=2bf9df3d6ab2e48b]*/
+#ifdef MS_WINDOWS
{
FILETIME create, exit, kernel, user;
HANDLE hProc;
@@ -7599,12 +7541,10 @@ posix_times(PyObject *self, PyObject *noargs)
(double)0,
(double)0);
}
-#else /* Not Windows */
-#define NEED_TICKS_PER_SECOND
-static long ticks_per_second = -1;
-static PyObject *
-posix_times(PyObject *self, PyObject *noargs)
+#else /* MS_WINDOWS */
{
+
+
struct tms t;
clock_t c;
errno = 0;
@@ -7618,23 +7558,25 @@ posix_times(PyObject *self, PyObject *noargs)
(double)t.tms_cstime / ticks_per_second,
(double)c / ticks_per_second);
}
-#endif
-
+#endif /* MS_WINDOWS */
#endif /* HAVE_TIMES */
#ifdef HAVE_GETSID
-PyDoc_STRVAR(posix_getsid__doc__,
-"getsid(pid) -> sid\n\n\
-Call the system call getsid().");
+/*[clinic input]
+os.getsid
+
+ pid: pid_t
+ /
+
+Call the system call getsid(pid) and return the result.
+[clinic start generated code]*/
static PyObject *
-posix_getsid(PyObject *self, PyObject *args)
+os_getsid_impl(PyModuleDef *module, pid_t pid)
+/*[clinic end generated code: output=a074f80c0e6bfb38 input=eeb2b923a30ce04e]*/
{
- pid_t pid;
int sid;
- if (!PyArg_ParseTuple(args, _Py_PARSE_PID ":getsid", &pid))
- return NULL;
sid = getsid(pid);
if (sid < 0)
return posix_error();
@@ -7644,53 +7586,60 @@ posix_getsid(PyObject *self, PyObject *args)
#ifdef HAVE_SETSID
-PyDoc_STRVAR(posix_setsid__doc__,
-"setsid()\n\n\
-Call the system call setsid().");
+/*[clinic input]
+os.setsid
+
+Call the system call setsid().
+[clinic start generated code]*/
static PyObject *
-posix_setsid(PyObject *self, PyObject *noargs)
+os_setsid_impl(PyModuleDef *module)
+/*[clinic end generated code: output=398fc152ae327330 input=5fff45858e2f0776]*/
{
if (setsid() < 0)
return posix_error();
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
#endif /* HAVE_SETSID */
+
#ifdef HAVE_SETPGID
-PyDoc_STRVAR(posix_setpgid__doc__,
-"setpgid(pid, pgrp)\n\n\
-Call the system call setpgid().");
+/*[clinic input]
+os.setpgid
+
+ pid: pid_t
+ pgrp: pid_t
+ /
+
+Call the system call setpgid(pid, pgrp).
+[clinic start generated code]*/
static PyObject *
-posix_setpgid(PyObject *self, PyObject *args)
+os_setpgid_impl(PyModuleDef *module, pid_t pid, pid_t pgrp)
+/*[clinic end generated code: output=7079a8e932912841 input=fceb395eca572e1a]*/
{
- pid_t pid;
- int pgrp;
- if (!PyArg_ParseTuple(args, _Py_PARSE_PID "i:setpgid", &pid, &pgrp))
- return NULL;
if (setpgid(pid, pgrp) < 0)
return posix_error();
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
#endif /* HAVE_SETPGID */
#ifdef HAVE_TCGETPGRP
-PyDoc_STRVAR(posix_tcgetpgrp__doc__,
-"tcgetpgrp(fd) -> pgid\n\n\
-Return the process group associated with the terminal given by a fd.");
+/*[clinic input]
+os.tcgetpgrp
+
+ fd: int
+ /
+
+Return the process group associated with the terminal specified by fd.
+[clinic start generated code]*/
static PyObject *
-posix_tcgetpgrp(PyObject *self, PyObject *args)
+os_tcgetpgrp_impl(PyModuleDef *module, int fd)
+/*[clinic end generated code: output=ebb6dc5f111c7dc0 input=7f6c18eac10ada86]*/
{
- int fd;
- pid_t pgid;
- if (!PyArg_ParseTuple(args, "i:tcgetpgrp", &fd))
- return NULL;
- pgid = tcgetpgrp(fd);
+ pid_t pgid = tcgetpgrp(fd);
if (pgid < 0)
return posix_error();
return PyLong_FromPid(pgid);
@@ -7699,21 +7648,23 @@ posix_tcgetpgrp(PyObject *self, PyObject *args)
#ifdef HAVE_TCSETPGRP
-PyDoc_STRVAR(posix_tcsetpgrp__doc__,
-"tcsetpgrp(fd, pgid)\n\n\
-Set the process group associated with the terminal given by a fd.");
+/*[clinic input]
+os.tcsetpgrp
+
+ fd: int
+ pgid: pid_t
+ /
+
+Set the process group associated with the terminal specified by fd.
+[clinic start generated code]*/
static PyObject *
-posix_tcsetpgrp(PyObject *self, PyObject *args)
+os_tcsetpgrp_impl(PyModuleDef *module, int fd, pid_t pgid)
+/*[clinic end generated code: output=3e4b05177462cd22 input=5bdc997c6a619020]*/
{
- int fd;
- pid_t pgid;
- if (!PyArg_ParseTuple(args, "i" _Py_PARSE_PID ":tcsetpgrp", &fd, &pgid))
- return NULL;
if (tcsetpgrp(fd, pgid) < 0)
return posix_error();
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
#endif /* HAVE_TCSETPGRP */
@@ -7723,158 +7674,166 @@ posix_tcsetpgrp(PyObject *self, PyObject *args)
extern int _Py_open_cloexec_works;
#endif
-PyDoc_STRVAR(posix_open__doc__,
-"open(path, flags, mode=0o777, *, dir_fd=None)\n\n\
-Open a file for low level IO. Returns a file handle (integer).\n\
-\n\
-If dir_fd is not None, it should be a file descriptor open to a directory,\n\
- and path should be relative; path will then be relative to that directory.\n\
-dir_fd may not be implemented on your platform.\n\
- If it is unavailable, using it will raise a NotImplementedError.");
-static PyObject *
-posix_open(PyObject *self, PyObject *args, PyObject *kwargs)
+/*[clinic input]
+os.open -> int
+ path: path_t
+ flags: int
+ mode: int = 0o777
+ *
+ dir_fd: dir_fd(requires='openat') = None
+
+# "open(path, flags, mode=0o777, *, dir_fd=None)\n\n\
+
+Open a file for low level IO. Returns a file descriptor (integer).
+
+If dir_fd is not None, it should be a file descriptor open to a directory,
+ and path should be relative; path will then be relative to that directory.
+dir_fd may not be implemented on your platform.
+ If it is unavailable, using it will raise a NotImplementedError.
+[clinic start generated code]*/
+
+static int
+os_open_impl(PyModuleDef *module, path_t *path, int flags, int mode,
+ int dir_fd)
+/*[clinic end generated code: output=47e8cc63559f5ddd input=ad8623b29acd2934]*/
{
- path_t path;
- int flags;
- int mode = 0777;
- int dir_fd = DEFAULT_DIR_FD;
int fd;
- PyObject *return_value = NULL;
- static char *keywords[] = {"path", "flags", "mode", "dir_fd", NULL};
+ int async_err = 0;
+
#ifdef O_CLOEXEC
int *atomic_flag_works = &_Py_open_cloexec_works;
#elif !defined(MS_WINDOWS)
int *atomic_flag_works = NULL;
#endif
- memset(&path, 0, sizeof(path));
- path.function_name = "open";
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&i|i$O&:open", keywords,
- path_converter, &path,
- &flags, &mode,
-#ifdef HAVE_OPENAT
- dir_fd_converter, &dir_fd
-#else
- dir_fd_unavailable, &dir_fd
-#endif
- ))
- return NULL;
-
#ifdef MS_WINDOWS
flags |= O_NOINHERIT;
#elif defined(O_CLOEXEC)
flags |= O_CLOEXEC;
#endif
- Py_BEGIN_ALLOW_THREADS
+ _Py_BEGIN_SUPPRESS_IPH
+ do {
+ Py_BEGIN_ALLOW_THREADS
#ifdef MS_WINDOWS
- if (path.wide)
- fd = _wopen(path.wide, flags, mode);
- else
+ if (path->wide)
+ fd = _wopen(path->wide, flags, mode);
+ else
#endif
#ifdef HAVE_OPENAT
- if (dir_fd != DEFAULT_DIR_FD)
- fd = openat(dir_fd, path.narrow, flags, mode);
- else
+ if (dir_fd != DEFAULT_DIR_FD)
+ fd = openat(dir_fd, path->narrow, flags, mode);
+ else
#endif
- fd = open(path.narrow, flags, mode);
- Py_END_ALLOW_THREADS
+ fd = open(path->narrow, flags, mode);
+ Py_END_ALLOW_THREADS
+ } while (fd < 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
+ _Py_END_SUPPRESS_IPH
- if (fd == -1) {
- PyErr_SetFromErrnoWithFilenameObject(PyExc_OSError, path.object);
- goto exit;
+ if (fd < 0) {
+ if (!async_err)
+ PyErr_SetFromErrnoWithFilenameObject(PyExc_OSError, path->object);
+ return -1;
}
#ifndef MS_WINDOWS
if (_Py_set_inheritable(fd, 0, atomic_flag_works) < 0) {
close(fd);
- goto exit;
+ return -1;
}
#endif
- return_value = PyLong_FromLong((long)fd);
-
-exit:
- path_cleanup(&path);
- return return_value;
+ return fd;
}
-PyDoc_STRVAR(posix_close__doc__,
-"close(fd)\n\n\
-Close a file descriptor (for low level IO).");
-/*
-The underscore at end of function name avoids a name clash with the libc
-function posix_close.
-*/
+/*[clinic input]
+os.close
+
+ fd: int
+
+Close a file descriptor.
+[clinic start generated code]*/
+
static PyObject *
-posix_close_(PyObject *self, PyObject *args)
+os_close_impl(PyModuleDef *module, int fd)
+/*[clinic end generated code: output=47bf2ea536445a26 input=2bc42451ca5c3223]*/
{
- int fd, res;
- if (!PyArg_ParseTuple(args, "i:close", &fd))
- return NULL;
+ int res;
if (!_PyVerify_fd(fd))
return posix_error();
+ /* We do not want to retry upon EINTR: see http://lwn.net/Articles/576478/
+ * and http://linux.derkeiler.com/Mailing-Lists/Kernel/2005-09/3000.html
+ * for more details.
+ */
Py_BEGIN_ALLOW_THREADS
+ _Py_BEGIN_SUPPRESS_IPH
res = close(fd);
+ _Py_END_SUPPRESS_IPH
Py_END_ALLOW_THREADS
if (res < 0)
return posix_error();
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
-PyDoc_STRVAR(posix_closerange__doc__,
-"closerange(fd_low, fd_high)\n\n\
-Closes all file descriptors in [fd_low, fd_high), ignoring errors.");
+/*[clinic input]
+os.closerange
+
+ fd_low: int
+ fd_high: int
+ /
+
+Closes all file descriptors in [fd_low, fd_high), ignoring errors.
+[clinic start generated code]*/
static PyObject *
-posix_closerange(PyObject *self, PyObject *args)
+os_closerange_impl(PyModuleDef *module, int fd_low, int fd_high)
+/*[clinic end generated code: output=70e6adb95220ba96 input=5855a3d053ebd4ec]*/
{
- int fd_from, fd_to, i;
- if (!PyArg_ParseTuple(args, "ii:closerange", &fd_from, &fd_to))
- return NULL;
+ int i;
Py_BEGIN_ALLOW_THREADS
- for (i = fd_from; i < fd_to; i++)
+ _Py_BEGIN_SUPPRESS_IPH
+ for (i = fd_low; i < fd_high; i++)
if (_PyVerify_fd(i))
close(i);
+ _Py_END_SUPPRESS_IPH
Py_END_ALLOW_THREADS
Py_RETURN_NONE;
}
-PyDoc_STRVAR(posix_dup__doc__,
-"dup(fd) -> fd2\n\n\
-Return a duplicate of a file descriptor.");
-
-static PyObject *
-posix_dup(PyObject *self, PyObject *args)
-{
- int fd;
+/*[clinic input]
+os.dup -> int
- if (!PyArg_ParseTuple(args, "i:dup", &fd))
- return NULL;
+ fd: int
+ /
- fd = _Py_dup(fd);
- if (fd == -1)
- return NULL;
+Return a duplicate of a file descriptor.
+[clinic start generated code]*/
- return PyLong_FromLong((long)fd);
+static int
+os_dup_impl(PyModuleDef *module, int fd)
+/*[clinic end generated code: output=f4bbac8c7652d05e input=6f10f7ea97f7852a]*/
+{
+ return _Py_dup(fd);
}
-PyDoc_STRVAR(posix_dup2__doc__,
-"dup2(old_fd, new_fd)\n\n\
-Duplicate file descriptor.");
+/*[clinic input]
+os.dup2
+ fd: int
+ fd2: int
+ inheritable: bool=True
+
+Duplicate file descriptor.
+[clinic start generated code]*/
static PyObject *
-posix_dup2(PyObject *self, PyObject *args, PyObject *kwargs)
+os_dup2_impl(PyModuleDef *module, int fd, int fd2, int inheritable)
+/*[clinic end generated code: output=9a099d95881a7923 input=76e96f511be0352f]*/
{
- static char *keywords[] = {"fd", "fd2", "inheritable", NULL};
- int fd, fd2;
- int inheritable = 1;
int res;
#if defined(HAVE_DUP3) && \
!(defined(HAVE_FCNTL_H) && defined(F_DUP2FD_CLOEXEC))
@@ -7882,16 +7841,18 @@ posix_dup2(PyObject *self, PyObject *args, PyObject *kwargs)
int dup3_works = -1;
#endif
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "ii|i:dup2", keywords,
- &fd, &fd2, &inheritable))
- return NULL;
-
if (!_PyVerify_fd_dup2(fd, fd2))
return posix_error();
+ /* dup2() can fail with EINTR if the target FD is already open, because it
+ * then has to be closed. See os_close_impl() for why we don't handle EINTR
+ * upon close(), and therefore below.
+ */
#ifdef MS_WINDOWS
Py_BEGIN_ALLOW_THREADS
+ _Py_BEGIN_SUPPRESS_IPH
res = dup2(fd, fd2);
+ _Py_END_SUPPRESS_IPH
Py_END_ALLOW_THREADS
if (res < 0)
return posix_error();
@@ -7946,30 +7907,34 @@ posix_dup2(PyObject *self, PyObject *args, PyObject *kwargs)
#endif
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
+
#ifdef HAVE_LOCKF
-PyDoc_STRVAR(posix_lockf__doc__,
-"lockf(fd, cmd, len)\n\n\
-Apply, test or remove a POSIX lock on an open file descriptor.\n\n\
-fd is an open file descriptor.\n\
-cmd specifies the command to use - one of F_LOCK, F_TLOCK, F_ULOCK or\n\
-F_TEST.\n\
-len specifies the section of the file to lock.");
+/*[clinic input]
+os.lockf
+
+ fd: int
+ An open file descriptor.
+ command: int
+ One of F_LOCK, F_TLOCK, F_ULOCK or F_TEST.
+ length: Py_off_t
+ The number of bytes to lock, starting at the current position.
+ /
+
+Apply, test or remove a POSIX lock on an open file descriptor.
+
+[clinic start generated code]*/
static PyObject *
-posix_lockf(PyObject *self, PyObject *args)
+os_lockf_impl(PyModuleDef *module, int fd, int command, Py_off_t length)
+/*[clinic end generated code: output=25ff778f9e2fbf1b input=65da41d2106e9b79]*/
{
- int fd, cmd, res;
- off_t len;
- if (!PyArg_ParseTuple(args, "iiO&:lockf",
- &fd, &cmd, _parse_off_t, &len))
- return NULL;
+ int res;
Py_BEGIN_ALLOW_THREADS
- res = lockf(fd, cmd, len);
+ res = lockf(fd, command, length);
Py_END_ALLOW_THREADS
if (res < 0)
@@ -7977,95 +7942,105 @@ posix_lockf(PyObject *self, PyObject *args)
Py_RETURN_NONE;
}
-#endif
+#endif /* HAVE_LOCKF */
-PyDoc_STRVAR(posix_lseek__doc__,
-"lseek(fd, pos, how) -> newpos\n\n\
-Set the current position of a file descriptor.\n\
-Return the new cursor position in bytes, starting from the beginning.");
+/*[clinic input]
+os.lseek -> Py_off_t
-static PyObject *
-posix_lseek(PyObject *self, PyObject *args)
+ fd: int
+ position: Py_off_t
+ how: int
+ /
+
+Set the position of a file descriptor. Return the new position.
+
+Return the new cursor position in number of bytes
+relative to the beginning of the file.
+[clinic start generated code]*/
+
+static Py_off_t
+os_lseek_impl(PyModuleDef *module, int fd, Py_off_t position, int how)
+/*[clinic end generated code: output=65d4ab96d664998c input=902654ad3f96a6d3]*/
{
- int fd, how;
-#ifdef MS_WINDOWS
- PY_LONG_LONG pos, res;
-#else
- off_t pos, res;
-#endif
- PyObject *posobj;
- if (!PyArg_ParseTuple(args, "iOi:lseek", &fd, &posobj, &how))
- return NULL;
+ Py_off_t result;
+
+ if (!_PyVerify_fd(fd)) {
+ posix_error();
+ return -1;
+ }
#ifdef SEEK_SET
/* Turn 0, 1, 2 into SEEK_{SET,CUR,END} */
switch (how) {
- case 0: how = SEEK_SET; break;
- case 1: how = SEEK_CUR; break;
- case 2: how = SEEK_END; break;
+ case 0: how = SEEK_SET; break;
+ case 1: how = SEEK_CUR; break;
+ case 2: how = SEEK_END; break;
}
#endif /* SEEK_END */
-#if !defined(HAVE_LARGEFILE_SUPPORT)
- pos = PyLong_AsLong(posobj);
-#else
- pos = PyLong_AsLongLong(posobj);
-#endif
if (PyErr_Occurred())
- return NULL;
+ return -1;
- if (!_PyVerify_fd(fd))
- return posix_error();
+ if (!_PyVerify_fd(fd)) {
+ posix_error();
+ return -1;
+ }
Py_BEGIN_ALLOW_THREADS
+ _Py_BEGIN_SUPPRESS_IPH
#ifdef MS_WINDOWS
- res = _lseeki64(fd, pos, how);
+ result = _lseeki64(fd, position, how);
#else
- res = lseek(fd, pos, how);
+ result = lseek(fd, position, how);
#endif
+ _Py_END_SUPPRESS_IPH
Py_END_ALLOW_THREADS
- if (res < 0)
- return posix_error();
+ if (result < 0)
+ posix_error();
-#if !defined(HAVE_LARGEFILE_SUPPORT)
- return PyLong_FromLong(res);
-#else
- return PyLong_FromLongLong(res);
-#endif
+ return result;
}
-PyDoc_STRVAR(posix_read__doc__,
-"read(fd, buffersize) -> bytes\n\n\
-Read a file descriptor.");
+/*[clinic input]
+os.read
+ fd: int
+ length: Py_ssize_t
+ /
+
+Read from a file descriptor. Returns a bytes object.
+[clinic start generated code]*/
static PyObject *
-posix_read(PyObject *self, PyObject *args)
+os_read_impl(PyModuleDef *module, int fd, Py_ssize_t length)
+/*[clinic end generated code: output=be24f44178455e8b input=1df2eaa27c0bf1d3]*/
{
- int fd, size;
Py_ssize_t n;
PyObject *buffer;
- if (!PyArg_ParseTuple(args, "ii:read", &fd, &size))
- return NULL;
- if (size < 0) {
+
+ if (length < 0) {
errno = EINVAL;
return posix_error();
}
- buffer = PyBytes_FromStringAndSize((char *)NULL, size);
+
+#ifdef MS_WINDOWS
+ /* On Windows, the count parameter of read() is an int */
+ if (length > INT_MAX)
+ length = INT_MAX;
+#endif
+
+ buffer = PyBytes_FromStringAndSize((char *)NULL, length);
if (buffer == NULL)
return NULL;
- if (!_PyVerify_fd(fd)) {
- Py_DECREF(buffer);
- return posix_error();
- }
- Py_BEGIN_ALLOW_THREADS
- n = read(fd, PyBytes_AS_STRING(buffer), size);
- Py_END_ALLOW_THREADS
- if (n < 0) {
+
+ n = _Py_read(fd, PyBytes_AS_STRING(buffer), length);
+ if (n == -1) {
Py_DECREF(buffer);
- return posix_error();
+ return NULL;
}
- if (n != size)
+
+ if (n != length)
_PyBytes_Resize(&buffer, n);
+
return buffer;
}
@@ -8127,120 +8102,135 @@ iov_cleanup(struct iovec *iov, Py_buffer *buf, int cnt)
}
#endif
+
#ifdef HAVE_READV
-PyDoc_STRVAR(posix_readv__doc__,
-"readv(fd, buffers) -> bytesread\n\n\
-Read from a file descriptor fd into a number of mutable, bytes-like\n\
-objects (\"buffers\"). readv will transfer data into each buffer\n\
-until it is full and then move on to the next buffer in the sequence\n\
-to hold the rest of the data.\n\n\
-readv returns the total number of bytes read (which may be less than\n\
-the total capacity of all the buffers.");
+/*[clinic input]
+os.readv -> Py_ssize_t
-static PyObject *
-posix_readv(PyObject *self, PyObject *args)
+ fd: int
+ buffers: object
+ /
+
+Read from a file descriptor fd into an iterable of buffers.
+
+The buffers should be mutable buffers accepting bytes.
+readv will transfer data into each buffer until it is full
+and then move on to the next buffer in the sequence to hold
+the rest of the data.
+
+readv returns the total number of bytes read,
+which may be less than the total capacity of all the buffers.
+[clinic start generated code]*/
+
+static Py_ssize_t
+os_readv_impl(PyModuleDef *module, int fd, PyObject *buffers)
+/*[clinic end generated code: output=00fc56ff1800059f input=e679eb5dbfa0357d]*/
{
- int fd, cnt;
+ int cnt;
Py_ssize_t n;
- PyObject *seq;
+ int async_err = 0;
struct iovec *iov;
Py_buffer *buf;
- if (!PyArg_ParseTuple(args, "iO:readv", &fd, &seq))
- return NULL;
- if (!PySequence_Check(seq)) {
+ if (!PySequence_Check(buffers)) {
PyErr_SetString(PyExc_TypeError,
"readv() arg 2 must be a sequence");
- return NULL;
+ return -1;
}
- cnt = PySequence_Size(seq);
- if (iov_setup(&iov, &buf, seq, cnt, PyBUF_WRITABLE) < 0)
- return NULL;
+ cnt = PySequence_Size(buffers);
- Py_BEGIN_ALLOW_THREADS
- n = readv(fd, iov, cnt);
- Py_END_ALLOW_THREADS
+ if (iov_setup(&iov, &buf, buffers, cnt, PyBUF_WRITABLE) < 0)
+ return -1;
+
+ do {
+ Py_BEGIN_ALLOW_THREADS
+ n = readv(fd, iov, cnt);
+ Py_END_ALLOW_THREADS
+ } while (n < 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
iov_cleanup(iov, buf, cnt);
- if (n < 0)
- return posix_error();
+ if (n < 0) {
+ if (!async_err)
+ posix_error();
+ return -1;
+ }
- return PyLong_FromSsize_t(n);
+ return n;
}
-#endif
+#endif /* HAVE_READV */
+
#ifdef HAVE_PREAD
-PyDoc_STRVAR(posix_pread__doc__,
-"pread(fd, buffersize, offset) -> string\n\n\
-Read from a file descriptor, fd, at a position of offset. It will read up\n\
-to buffersize number of bytes. The file offset remains unchanged.");
+/*[clinic input]
+# TODO length should be size_t! but Python doesn't support parsing size_t yet.
+os.pread
+
+ fd: int
+ length: int
+ offset: Py_off_t
+ /
+
+Read a number of bytes from a file descriptor starting at a particular offset.
+
+Read length bytes from file descriptor fd, starting at offset bytes from
+the beginning of the file. The file offset remains unchanged.
+[clinic start generated code]*/
static PyObject *
-posix_pread(PyObject *self, PyObject *args)
+os_pread_impl(PyModuleDef *module, int fd, int length, Py_off_t offset)
+/*[clinic end generated code: output=90d1fed87f68fa33 input=084948dcbaa35d4c]*/
{
- int fd, size;
- off_t offset;
Py_ssize_t n;
+ int async_err = 0;
PyObject *buffer;
- if (!PyArg_ParseTuple(args, "iiO&:pread", &fd, &size, _parse_off_t, &offset))
- return NULL;
- if (size < 0) {
+ if (length < 0) {
errno = EINVAL;
return posix_error();
}
- buffer = PyBytes_FromStringAndSize((char *)NULL, size);
+ buffer = PyBytes_FromStringAndSize((char *)NULL, length);
if (buffer == NULL)
return NULL;
if (!_PyVerify_fd(fd)) {
Py_DECREF(buffer);
return posix_error();
}
- Py_BEGIN_ALLOW_THREADS
- n = pread(fd, PyBytes_AS_STRING(buffer), size, offset);
- Py_END_ALLOW_THREADS
+
+ do {
+ Py_BEGIN_ALLOW_THREADS
+ _Py_BEGIN_SUPPRESS_IPH
+ n = pread(fd, PyBytes_AS_STRING(buffer), length, offset);
+ _Py_END_SUPPRESS_IPH
+ Py_END_ALLOW_THREADS
+ } while (n < 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
+
if (n < 0) {
Py_DECREF(buffer);
- return posix_error();
+ return (!async_err) ? posix_error() : NULL;
}
- if (n != size)
+ if (n != length)
_PyBytes_Resize(&buffer, n);
return buffer;
}
-#endif
+#endif /* HAVE_PREAD */
-PyDoc_STRVAR(posix_write__doc__,
-"write(fd, data) -> byteswritten\n\n\
-Write bytes to a file descriptor.");
-static PyObject *
-posix_write(PyObject *self, PyObject *args)
-{
- Py_buffer pbuf;
- int fd;
- Py_ssize_t size, len;
+/*[clinic input]
+os.write -> Py_ssize_t
- if (!PyArg_ParseTuple(args, "iy*:write", &fd, &pbuf))
- return NULL;
- if (!_PyVerify_fd(fd)) {
- PyBuffer_Release(&pbuf);
- return posix_error();
- }
- len = pbuf.len;
- Py_BEGIN_ALLOW_THREADS
-#ifdef MS_WINDOWS
- if (len > INT_MAX)
- len = INT_MAX;
- size = write(fd, pbuf.buf, (int)len);
-#else
- size = write(fd, pbuf.buf, len);
-#endif
- Py_END_ALLOW_THREADS
- PyBuffer_Release(&pbuf);
- if (size < 0)
- return posix_error();
- return PyLong_FromSsize_t(size);
+ fd: int
+ data: Py_buffer
+ /
+
+Write a bytes object to a file descriptor.
+[clinic start generated code]*/
+
+static Py_ssize_t
+os_write_impl(PyModuleDef *module, int fd, Py_buffer *data)
+/*[clinic end generated code: output=58845c93c9ee1dda input=3207e28963234f3c]*/
+{
+ return _Py_write(fd, data->buf, data->len);
}
#ifdef HAVE_SENDFILE
@@ -8250,11 +8240,13 @@ sendfile(out, in, offset, count[, headers][, trailers], flags=0)\n\
-> byteswritten\n\
Copy count bytes from file descriptor in to file descriptor out.");
+/* AC 3.5: don't bother converting, has optional group*/
static PyObject *
posix_sendfile(PyObject *self, PyObject *args, PyObject *kwdict)
{
int in, out;
Py_ssize_t ret;
+ int async_err = 0;
off_t offset;
#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__APPLE__)
@@ -8276,10 +8268,10 @@ posix_sendfile(PyObject *self, PyObject *args, PyObject *kwdict)
#ifdef __APPLE__
if (!PyArg_ParseTupleAndKeywords(args, kwdict, "iiO&O&|OOi:sendfile",
- keywords, &out, &in, _parse_off_t, &offset, _parse_off_t, &sbytes,
+ keywords, &out, &in, Py_off_t_converter, &offset, Py_off_t_converter, &sbytes,
#else
if (!PyArg_ParseTupleAndKeywords(args, kwdict, "iiO&n|OOi:sendfile",
- keywords, &out, &in, _parse_off_t, &offset, &len,
+ keywords, &out, &in, Py_off_t_converter, &offset, &len,
#endif
&headers, &trailers, &flags))
return NULL;
@@ -8318,13 +8310,17 @@ posix_sendfile(PyObject *self, PyObject *args, PyObject *kwdict)
}
}
- Py_BEGIN_ALLOW_THREADS
+ _Py_BEGIN_SUPPRESS_IPH
+ do {
+ Py_BEGIN_ALLOW_THREADS
#ifdef __APPLE__
- ret = sendfile(in, out, offset, &sbytes, &sf, flags);
+ ret = sendfile(in, out, offset, &sbytes, &sf, flags);
#else
- ret = sendfile(in, out, offset, len, &sf, &sbytes, flags);
+ ret = sendfile(in, out, offset, len, &sf, &sbytes, flags);
#endif
- Py_END_ALLOW_THREADS
+ Py_END_ALLOW_THREADS
+ } while (ret < 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
+ _Py_END_SUPPRESS_IPH
if (sf.headers != NULL)
iov_cleanup(sf.headers, hbuf, sf.hdr_cnt);
@@ -8343,7 +8339,7 @@ posix_sendfile(PyObject *self, PyObject *args, PyObject *kwdict)
return posix_error();
}
}
- return posix_error();
+ return (!async_err) ? posix_error() : NULL;
}
goto done;
@@ -8364,76 +8360,106 @@ done:
return NULL;
#ifdef linux
if (offobj == Py_None) {
- Py_BEGIN_ALLOW_THREADS
- ret = sendfile(out, in, NULL, count);
- Py_END_ALLOW_THREADS
+ do {
+ Py_BEGIN_ALLOW_THREADS
+ ret = sendfile(out, in, NULL, count);
+ Py_END_ALLOW_THREADS
+ } while (ret < 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
if (ret < 0)
- return posix_error();
+ return (!async_err) ? posix_error() : NULL;
return Py_BuildValue("n", ret);
}
#endif
- if (!_parse_off_t(offobj, &offset))
+ if (!Py_off_t_converter(offobj, &offset))
return NULL;
- Py_BEGIN_ALLOW_THREADS
- ret = sendfile(out, in, &offset, count);
- Py_END_ALLOW_THREADS
+
+ do {
+ Py_BEGIN_ALLOW_THREADS
+ ret = sendfile(out, in, &offset, count);
+ Py_END_ALLOW_THREADS
+ } while (ret < 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
if (ret < 0)
- return posix_error();
+ return (!async_err) ? posix_error() : NULL;
return Py_BuildValue("n", ret);
#endif
}
-#endif
+#endif /* HAVE_SENDFILE */
-PyDoc_STRVAR(posix_fstat__doc__,
-"fstat(fd) -> stat result\n\n\
-Like stat(), but for an open file descriptor.\n\
-Equivalent to stat(fd=fd).");
+
+/*[clinic input]
+os.fstat
+
+ fd : int
+
+Perform a stat system call on the given file descriptor.
+
+Like stat(), but for an open file descriptor.
+Equivalent to os.stat(fd).
+[clinic start generated code]*/
static PyObject *
-posix_fstat(PyObject *self, PyObject *args)
+os_fstat_impl(PyModuleDef *module, int fd)
+/*[clinic end generated code: output=d71fe98bf042b626 input=27e0e0ebbe5600c9]*/
{
- int fd;
STRUCT_STAT st;
int res;
- if (!PyArg_ParseTuple(args, "i:fstat", &fd))
- return NULL;
- Py_BEGIN_ALLOW_THREADS
- res = FSTAT(fd, &st);
- Py_END_ALLOW_THREADS
+ int async_err = 0;
+
+ do {
+ Py_BEGIN_ALLOW_THREADS
+ res = FSTAT(fd, &st);
+ Py_END_ALLOW_THREADS
+ } while (res != 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
if (res != 0) {
#ifdef MS_WINDOWS
return PyErr_SetFromWindowsErr(0);
#else
- return posix_error();
+ return (!async_err) ? posix_error() : NULL;
#endif
}
return _pystat_fromstructstat(&st);
}
-PyDoc_STRVAR(posix_isatty__doc__,
-"isatty(fd) -> bool\n\n\
-Return True if the file descriptor 'fd' is an open file descriptor\n\
-connected to the slave end of a terminal.");
-static PyObject *
-posix_isatty(PyObject *self, PyObject *args)
+/*[clinic input]
+os.isatty -> bool
+ fd: int
+ /
+
+Return True if the fd is connected to a terminal.
+
+Return True if the file descriptor is an open file descriptor
+connected to the slave end of a terminal.
+[clinic start generated code]*/
+
+static int
+os_isatty_impl(PyModuleDef *module, int fd)
+/*[clinic end generated code: output=acec9d3c29d16d33 input=08ce94aa1eaf7b5e]*/
{
- int fd;
- if (!PyArg_ParseTuple(args, "i:isatty", &fd))
- return NULL;
+ int return_value;
if (!_PyVerify_fd(fd))
- return PyBool_FromLong(0);
- return PyBool_FromLong(isatty(fd));
+ return 0;
+ _Py_BEGIN_SUPPRESS_IPH
+ return_value = isatty(fd);
+ _Py_END_SUPPRESS_IPH
+ return return_value;
}
+
#ifdef HAVE_PIPE
-PyDoc_STRVAR(posix_pipe__doc__,
-"pipe() -> (read_end, write_end)\n\n\
-Create a pipe.");
+/*[clinic input]
+os.pipe
+
+Create a pipe.
+
+Returns a tuple of two file descriptors:
+ (read_fd, write_fd)
+[clinic start generated code]*/
static PyObject *
-posix_pipe(PyObject *self, PyObject *noargs)
+os_pipe_impl(PyModuleDef *module)
+/*[clinic end generated code: output=6b0cd3f868ec3c40 input=02535e8c8fa6c4d4]*/
{
int fds[2];
#ifdef MS_WINDOWS
@@ -8501,25 +8527,30 @@ posix_pipe(PyObject *self, PyObject *noargs)
}
#endif /* HAVE_PIPE */
+
#ifdef HAVE_PIPE2
-PyDoc_STRVAR(posix_pipe2__doc__,
-"pipe2(flags) -> (read_end, write_end)\n\n\
-Create a pipe with flags set atomically.\n\
-flags can be constructed by ORing together one or more of these values:\n\
-O_NONBLOCK, O_CLOEXEC.\n\
-");
+/*[clinic input]
+os.pipe2
+
+ flags: int
+ /
+
+Create a pipe with flags set atomically.
+
+Returns a tuple of two file descriptors:
+ (read_fd, write_fd)
+
+flags can be constructed by ORing together one or more of these values:
+O_NONBLOCK, O_CLOEXEC.
+[clinic start generated code]*/
static PyObject *
-posix_pipe2(PyObject *self, PyObject *arg)
+os_pipe2_impl(PyModuleDef *module, int flags)
+/*[clinic end generated code: output=c15b6075d0c6b2e7 input=f261b6e7e63c6817]*/
{
- int flags;
int fds[2];
int res;
- flags = _PyLong_AsInt(arg);
- if (flags == -1 && PyErr_Occurred())
- return NULL;
-
res = pipe2(fds, flags);
if (res != 0)
return posix_error();
@@ -8527,306 +8558,340 @@ posix_pipe2(PyObject *self, PyObject *arg)
}
#endif /* HAVE_PIPE2 */
+
#ifdef HAVE_WRITEV
-PyDoc_STRVAR(posix_writev__doc__,
-"writev(fd, buffers) -> byteswritten\n\n\
-Write the contents of *buffers* to file descriptor *fd*. *buffers*\n\
-must be a sequence of bytes-like objects.\n\n\
-writev writes the contents of each object to the file descriptor\n\
-and returns the total number of bytes written.");
+/*[clinic input]
+os.writev -> Py_ssize_t
+ fd: int
+ buffers: object
+ /
-static PyObject *
-posix_writev(PyObject *self, PyObject *args)
+Iterate over buffers, and write the contents of each to a file descriptor.
+
+Returns the total number of bytes written.
+buffers must be a sequence of bytes-like objects.
+[clinic start generated code]*/
+
+static Py_ssize_t
+os_writev_impl(PyModuleDef *module, int fd, PyObject *buffers)
+/*[clinic end generated code: output=a48925dbf2d5c238 input=5b8d17fe4189d2fe]*/
{
- int fd, cnt;
- Py_ssize_t res;
- PyObject *seq;
+ int cnt;
+ Py_ssize_t result;
+ int async_err = 0;
struct iovec *iov;
Py_buffer *buf;
- if (!PyArg_ParseTuple(args, "iO:writev", &fd, &seq))
- return NULL;
- if (!PySequence_Check(seq)) {
+
+ if (!PySequence_Check(buffers)) {
PyErr_SetString(PyExc_TypeError,
"writev() arg 2 must be a sequence");
- return NULL;
+ return -1;
}
- cnt = PySequence_Size(seq);
+ cnt = PySequence_Size(buffers);
- if (iov_setup(&iov, &buf, seq, cnt, PyBUF_SIMPLE) < 0) {
- return NULL;
+ if (iov_setup(&iov, &buf, buffers, cnt, PyBUF_SIMPLE) < 0) {
+ return -1;
}
- Py_BEGIN_ALLOW_THREADS
- res = writev(fd, iov, cnt);
- Py_END_ALLOW_THREADS
+ do {
+ Py_BEGIN_ALLOW_THREADS
+ result = writev(fd, iov, cnt);
+ Py_END_ALLOW_THREADS
+ } while (result < 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
iov_cleanup(iov, buf, cnt);
- if (res < 0)
- return posix_error();
+ if (result < 0 && !async_err)
+ posix_error();
- return PyLong_FromSsize_t(res);
+ return result;
}
-#endif
+#endif /* HAVE_WRITEV */
+
#ifdef HAVE_PWRITE
-PyDoc_STRVAR(posix_pwrite__doc__,
-"pwrite(fd, string, offset) -> byteswritten\n\n\
-Write string to a file descriptor, fd, from offset, leaving the file\n\
-offset unchanged.");
+/*[clinic input]
+os.pwrite -> Py_ssize_t
-static PyObject *
-posix_pwrite(PyObject *self, PyObject *args)
+ fd: int
+ buffer: Py_buffer
+ offset: Py_off_t
+ /
+
+Write bytes to a file descriptor starting at a particular offset.
+
+Write buffer to fd, starting at offset bytes from the beginning of
+the file. Returns the number of bytes writte. Does not change the
+current file offset.
+[clinic start generated code]*/
+
+static Py_ssize_t
+os_pwrite_impl(PyModuleDef *module, int fd, Py_buffer *buffer,
+ Py_off_t offset)
+/*[clinic end generated code: output=93aabdb40e17d325 input=19903f1b3dd26377]*/
{
- Py_buffer pbuf;
- int fd;
- off_t offset;
Py_ssize_t size;
-
- if (!PyArg_ParseTuple(args, "iy*O&:pwrite", &fd, &pbuf, _parse_off_t, &offset))
- return NULL;
+ int async_err = 0;
if (!_PyVerify_fd(fd)) {
- PyBuffer_Release(&pbuf);
- return posix_error();
+ posix_error();
+ return -1;
}
- Py_BEGIN_ALLOW_THREADS
- size = pwrite(fd, pbuf.buf, (size_t)pbuf.len, offset);
- Py_END_ALLOW_THREADS
- PyBuffer_Release(&pbuf);
- if (size < 0)
- return posix_error();
- return PyLong_FromSsize_t(size);
+
+ do {
+ Py_BEGIN_ALLOW_THREADS
+ _Py_BEGIN_SUPPRESS_IPH
+ size = pwrite(fd, buffer->buf, (size_t)buffer->len, offset);
+ _Py_END_SUPPRESS_IPH
+ Py_END_ALLOW_THREADS
+ } while (size < 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
+
+ if (size < 0 && !async_err)
+ posix_error();
+ return size;
}
-#endif
+#endif /* HAVE_PWRITE */
+
#ifdef HAVE_MKFIFO
-PyDoc_STRVAR(posix_mkfifo__doc__,
-"mkfifo(path, mode=0o666, *, dir_fd=None)\n\n\
-Create a FIFO (a POSIX named pipe).\n\
-\n\
-If dir_fd is not None, it should be a file descriptor open to a directory,\n\
- and path should be relative; path will then be relative to that directory.\n\
-dir_fd may not be implemented on your platform.\n\
- If it is unavailable, using it will raise a NotImplementedError.");
+/*[clinic input]
+os.mkfifo
+
+ path: path_t
+ mode: int=0o666
+ *
+ dir_fd: dir_fd(requires='mkfifoat')=None
+
+Create a "fifo" (a POSIX named pipe).
+
+If dir_fd is not None, it should be a file descriptor open to a directory,
+ and path should be relative; path will then be relative to that directory.
+dir_fd may not be implemented on your platform.
+ If it is unavailable, using it will raise a NotImplementedError.
+[clinic start generated code]*/
static PyObject *
-posix_mkfifo(PyObject *self, PyObject *args, PyObject *kwargs)
+os_mkfifo_impl(PyModuleDef *module, path_t *path, int mode, int dir_fd)
+/*[clinic end generated code: output=8f5f5e72c630049a input=73032e98a36e0e19]*/
{
- path_t path;
- int mode = 0666;
- int dir_fd = DEFAULT_DIR_FD;
int result;
- PyObject *return_value = NULL;
- static char *keywords[] = {"path", "mode", "dir_fd", NULL};
+ int async_err = 0;
- memset(&path, 0, sizeof(path));
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&|i$O&:mkfifo", keywords,
- path_converter, &path,
- &mode,
+ do {
+ Py_BEGIN_ALLOW_THREADS
#ifdef HAVE_MKFIFOAT
- dir_fd_converter, &dir_fd
-#else
- dir_fd_unavailable, &dir_fd
+ if (dir_fd != DEFAULT_DIR_FD)
+ result = mkfifoat(dir_fd, path->narrow, mode);
+ else
#endif
- ))
- return NULL;
+ result = mkfifo(path->narrow, mode);
+ Py_END_ALLOW_THREADS
+ } while (result != 0 && errno == EINTR &&
+ !(async_err = PyErr_CheckSignals()));
+ if (result != 0)
+ return (!async_err) ? posix_error() : NULL;
- Py_BEGIN_ALLOW_THREADS
-#ifdef HAVE_MKFIFOAT
- if (dir_fd != DEFAULT_DIR_FD)
- result = mkfifoat(dir_fd, path.narrow, mode);
- else
-#endif
- result = mkfifo(path.narrow, mode);
- Py_END_ALLOW_THREADS
+ Py_RETURN_NONE;
+}
+#endif /* HAVE_MKFIFO */
- if (result < 0) {
- return_value = posix_error();
- goto exit;
- }
- return_value = Py_None;
- Py_INCREF(Py_None);
+#if defined(HAVE_MKNOD) && defined(HAVE_MAKEDEV)
+/*[clinic input]
+os.mknod
-exit:
- path_cleanup(&path);
- return return_value;
-}
-#endif
+ path: path_t
+ mode: int=0o600
+ device: dev_t=0
+ *
+ dir_fd: dir_fd(requires='mknodat')=None
-#if defined(HAVE_MKNOD) && defined(HAVE_MAKEDEV)
-PyDoc_STRVAR(posix_mknod__doc__,
-"mknod(path, mode=0o600, device=0, *, dir_fd=None)\n\n\
-Create a filesystem node (file, device special file or named pipe)\n\
-named path. mode specifies both the permissions to use and the\n\
-type of node to be created, being combined (bitwise OR) with one of\n\
-S_IFREG, S_IFCHR, S_IFBLK, and S_IFIFO. For S_IFCHR and S_IFBLK,\n\
-device defines the newly created device special file (probably using\n\
-os.makedev()), otherwise it is ignored.\n\
-\n\
-If dir_fd is not None, it should be a file descriptor open to a directory,\n\
- and path should be relative; path will then be relative to that directory.\n\
-dir_fd may not be implemented on your platform.\n\
- If it is unavailable, using it will raise a NotImplementedError.");
+Create a node in the file system.
+Create a node in the file system (file, device special file or named pipe)
+at path. mode specifies both the permissions to use and the
+type of node to be created, being combined (bitwise OR) with one of
+S_IFREG, S_IFCHR, S_IFBLK, and S_IFIFO. If S_IFCHR or S_IFBLK is set on mode,
+device defines the newly created device special file (probably using
+os.makedev()). Otherwise device is ignored.
+
+If dir_fd is not None, it should be a file descriptor open to a directory,
+ and path should be relative; path will then be relative to that directory.
+dir_fd may not be implemented on your platform.
+ If it is unavailable, using it will raise a NotImplementedError.
+[clinic start generated code]*/
static PyObject *
-posix_mknod(PyObject *self, PyObject *args, PyObject *kwargs)
+os_mknod_impl(PyModuleDef *module, path_t *path, int mode, dev_t device,
+ int dir_fd)
+/*[clinic end generated code: output=5151a8a9f754d272 input=ee44531551a4d83b]*/
{
- path_t path;
- int mode = 0666;
- dev_t device = 0;
- int dir_fd = DEFAULT_DIR_FD;
int result;
- PyObject *return_value = NULL;
- static char *keywords[] = {"path", "mode", "device", "dir_fd", NULL};
+ int async_err = 0;
- memset(&path, 0, sizeof(path));
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&|iO&$O&:mknod", keywords,
- path_converter, &path,
- &mode, _Py_Dev_Converter, &device,
+ do {
+ Py_BEGIN_ALLOW_THREADS
#ifdef HAVE_MKNODAT
- dir_fd_converter, &dir_fd
-#else
- dir_fd_unavailable, &dir_fd
+ if (dir_fd != DEFAULT_DIR_FD)
+ result = mknodat(dir_fd, path->narrow, mode, device);
+ else
#endif
- ))
- return NULL;
+ result = mknod(path->narrow, mode, device);
+ Py_END_ALLOW_THREADS
+ } while (result != 0 && errno == EINTR &&
+ !(async_err = PyErr_CheckSignals()));
+ if (result != 0)
+ return (!async_err) ? posix_error() : NULL;
- Py_BEGIN_ALLOW_THREADS
-#ifdef HAVE_MKNODAT
- if (dir_fd != DEFAULT_DIR_FD)
- result = mknodat(dir_fd, path.narrow, mode, device);
- else
-#endif
- result = mknod(path.narrow, mode, device);
- Py_END_ALLOW_THREADS
+ Py_RETURN_NONE;
+}
+#endif /* defined(HAVE_MKNOD) && defined(HAVE_MAKEDEV) */
- if (result < 0) {
- return_value = posix_error();
- goto exit;
- }
- return_value = Py_None;
- Py_INCREF(Py_None);
+#ifdef HAVE_DEVICE_MACROS
+/*[clinic input]
+os.major -> unsigned_int
-exit:
- path_cleanup(&path);
- return return_value;
-}
-#endif
+ device: dev_t
+ /
-#ifdef HAVE_DEVICE_MACROS
-PyDoc_STRVAR(posix_major__doc__,
-"major(device) -> major number\n\
-Extracts a device major number from a raw device number.");
+Extracts a device major number from a raw device number.
+[clinic start generated code]*/
-static PyObject *
-posix_major(PyObject *self, PyObject *args)
+static unsigned int
+os_major_impl(PyModuleDef *module, dev_t device)
+/*[clinic end generated code: output=ba55693ab49bac34 input=1e16a4d30c4d4462]*/
{
- dev_t device;
- if (!PyArg_ParseTuple(args, "O&:major", _Py_Dev_Converter, &device))
- return NULL;
- return PyLong_FromLong((long)major(device));
+ return major(device);
}
-PyDoc_STRVAR(posix_minor__doc__,
-"minor(device) -> minor number\n\
-Extracts a device minor number from a raw device number.");
-static PyObject *
-posix_minor(PyObject *self, PyObject *args)
+/*[clinic input]
+os.minor -> unsigned_int
+
+ device: dev_t
+ /
+
+Extracts a device minor number from a raw device number.
+[clinic start generated code]*/
+
+static unsigned int
+os_minor_impl(PyModuleDef *module, dev_t device)
+/*[clinic end generated code: output=2867219ebf274e27 input=0842c6d23f24c65e]*/
{
- dev_t device;
- if (!PyArg_ParseTuple(args, "O&:minor", _Py_Dev_Converter, &device))
- return NULL;
- return PyLong_FromLong((long)minor(device));
+ return minor(device);
}
-PyDoc_STRVAR(posix_makedev__doc__,
-"makedev(major, minor) -> device number\n\
-Composes a raw device number from the major and minor device numbers.");
-static PyObject *
-posix_makedev(PyObject *self, PyObject *args)
+/*[clinic input]
+os.makedev -> dev_t
+
+ major: int
+ minor: int
+ /
+
+Composes a raw device number from the major and minor device numbers.
+[clinic start generated code]*/
+
+static dev_t
+os_makedev_impl(PyModuleDef *module, int major, int minor)
+/*[clinic end generated code: output=7cb6264352437660 input=4b9fd8fc73cbe48f]*/
{
- int major, minor;
- if (!PyArg_ParseTuple(args, "ii:makedev", &major, &minor))
- return NULL;
- return _PyLong_FromDev(makedev(major, minor));
+ return makedev(major, minor);
}
-#endif /* device macros */
+#endif /* HAVE_DEVICE_MACROS */
-#ifdef HAVE_FTRUNCATE
-PyDoc_STRVAR(posix_ftruncate__doc__,
-"ftruncate(fd, length)\n\n\
-Truncate a file to a specified length.");
+#if defined HAVE_FTRUNCATE || defined MS_WINDOWS
+/*[clinic input]
+os.ftruncate
+
+ fd: int
+ length: Py_off_t
+ /
+
+Truncate a file, specified by file descriptor, to a specific length.
+[clinic start generated code]*/
static PyObject *
-posix_ftruncate(PyObject *self, PyObject *args)
+os_ftruncate_impl(PyModuleDef *module, int fd, Py_off_t length)
+/*[clinic end generated code: output=3666f401d76bf834 input=63b43641e52818f2]*/
{
- int fd;
- off_t length;
- int res;
-
- if (!PyArg_ParseTuple(args, "iO&:ftruncate", &fd, _parse_off_t, &length))
- return NULL;
+ int result;
+ int async_err = 0;
- Py_BEGIN_ALLOW_THREADS
- res = ftruncate(fd, length);
- Py_END_ALLOW_THREADS
- if (res < 0)
+ if (!_PyVerify_fd(fd))
return posix_error();
- Py_INCREF(Py_None);
- return Py_None;
-}
+
+ do {
+ Py_BEGIN_ALLOW_THREADS
+ _Py_BEGIN_SUPPRESS_IPH
+#ifdef MS_WINDOWS
+ result = _chsize_s(fd, length);
+#else
+ result = ftruncate(fd, length);
#endif
+ _Py_END_SUPPRESS_IPH
+ Py_END_ALLOW_THREADS
+ } while (result != 0 && errno == EINTR &&
+ !(async_err = PyErr_CheckSignals()));
+ if (result != 0)
+ return (!async_err) ? posix_error() : NULL;
+ Py_RETURN_NONE;
+}
+#endif /* HAVE_FTRUNCATE || MS_WINDOWS */
-#ifdef HAVE_TRUNCATE
-PyDoc_STRVAR(posix_truncate__doc__,
-"truncate(path, length)\n\n\
-Truncate the file given by path to length bytes.\n\
-On some platforms, path may also be specified as an open file descriptor.\n\
- If this functionality is unavailable, using it raises an exception.");
+
+#if defined HAVE_TRUNCATE || defined MS_WINDOWS
+/*[clinic input]
+os.truncate
+ path: path_t(allow_fd='PATH_HAVE_FTRUNCATE')
+ length: Py_off_t
+
+Truncate a file, specified by path, to a specific length.
+
+On some platforms, path may also be specified as an open file descriptor.
+ If this functionality is unavailable, using it raises an exception.
+[clinic start generated code]*/
static PyObject *
-posix_truncate(PyObject *self, PyObject *args, PyObject *kwargs)
+os_truncate_impl(PyModuleDef *module, path_t *path, Py_off_t length)
+/*[clinic end generated code: output=f60a9e08370e9e2e input=77229cf0b50a9b77]*/
{
- path_t path;
- off_t length;
- int res;
- PyObject *result = NULL;
- static char *keywords[] = {"path", "length", NULL};
-
- memset(&path, 0, sizeof(path));
- path.function_name = "truncate";
-#ifdef HAVE_FTRUNCATE
- path.allow_fd = 1;
+ int result;
+#ifdef MS_WINDOWS
+ int fd;
#endif
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&:truncate", keywords,
- path_converter, &path,
- _parse_off_t, &length))
- return NULL;
+
+ if (path->fd != -1)
+ return os_ftruncate_impl(module, path->fd, length);
Py_BEGIN_ALLOW_THREADS
-#ifdef HAVE_FTRUNCATE
- if (path.fd != -1)
- res = ftruncate(path.fd, length);
+ _Py_BEGIN_SUPPRESS_IPH
+#ifdef MS_WINDOWS
+ if (path->wide)
+ fd = _wopen(path->wide, _O_WRONLY | _O_BINARY | _O_NOINHERIT);
else
-#endif
- res = truncate(path.narrow, length);
- Py_END_ALLOW_THREADS
- if (res < 0)
- result = path_error(&path);
+ fd = _open(path->narrow, _O_WRONLY | _O_BINARY | _O_NOINHERIT);
+ if (fd < 0)
+ result = -1;
else {
- Py_INCREF(Py_None);
- result = Py_None;
+ result = _chsize_s(fd, length);
+ close(fd);
+ if (result < 0)
+ errno = result;
}
- path_cleanup(&path);
- return result;
-}
+#else
+ result = truncate(path->narrow, length);
#endif
+ _Py_END_SUPPRESS_IPH
+ Py_END_ALLOW_THREADS
+ if (result < 0)
+ return path_error(path);
+
+ Py_RETURN_NONE;
+}
+#endif /* HAVE_TRUNCATE || MS_WINDOWS */
+
/* Issue #22396: On 32-bit AIX platform, the prototypes of os.posix_fadvise()
and os.posix_fallocate() in system headers are wrong if _LARGE_FILES is
@@ -8836,186 +8901,211 @@ posix_truncate(PyObject *self, PyObject *args, PyObject *kwargs)
# define POSIX_FADVISE_AIX_BUG
#endif
+
#if defined(HAVE_POSIX_FALLOCATE) && !defined(POSIX_FADVISE_AIX_BUG)
-PyDoc_STRVAR(posix_posix_fallocate__doc__,
-"posix_fallocate(fd, offset, len)\n\n\
-Ensures that enough disk space is allocated for the file specified by fd\n\
-starting from offset and continuing for len bytes.");
+/*[clinic input]
+os.posix_fallocate
+
+ fd: int
+ offset: Py_off_t
+ length: Py_off_t
+ /
+
+Ensure a file has allocated at least a particular number of bytes on disk.
+
+Ensure that the file specified by fd encompasses a range of bytes
+starting at offset bytes from the beginning and continuing for length bytes.
+[clinic start generated code]*/
static PyObject *
-posix_posix_fallocate(PyObject *self, PyObject *args)
+os_posix_fallocate_impl(PyModuleDef *module, int fd, Py_off_t offset,
+ Py_off_t length)
+/*[clinic end generated code: output=7f6f87a8c751e1b4 input=d7a2ef0ab2ca52fb]*/
{
- off_t len, offset;
- int res, fd;
-
- if (!PyArg_ParseTuple(args, "iO&O&:posix_fallocate",
- &fd, _parse_off_t, &offset, _parse_off_t, &len))
- return NULL;
+ int result;
+ int async_err = 0;
- Py_BEGIN_ALLOW_THREADS
- res = posix_fallocate(fd, offset, len);
- Py_END_ALLOW_THREADS
- if (res != 0) {
- errno = res;
- return posix_error();
- }
+ do {
+ Py_BEGIN_ALLOW_THREADS
+ result = posix_fallocate(fd, offset, length);
+ Py_END_ALLOW_THREADS
+ } while (result != 0 && errno == EINTR &&
+ !(async_err = PyErr_CheckSignals()));
+ if (result != 0)
+ return (!async_err) ? posix_error() : NULL;
Py_RETURN_NONE;
}
-#endif
+#endif /* HAVE_POSIX_FALLOCATE) && !POSIX_FADVISE_AIX_BUG */
+
#if defined(HAVE_POSIX_FADVISE) && !defined(POSIX_FADVISE_AIX_BUG)
-PyDoc_STRVAR(posix_posix_fadvise__doc__,
-"posix_fadvise(fd, offset, len, advice)\n\n\
-Announces an intention to access data in a specific pattern thus allowing\n\
-the kernel to make optimizations.\n\
-The advice applies to the region of the file specified by fd starting at\n\
-offset and continuing for len bytes.\n\
-advice is one of POSIX_FADV_NORMAL, POSIX_FADV_SEQUENTIAL,\n\
-POSIX_FADV_RANDOM, POSIX_FADV_NOREUSE, POSIX_FADV_WILLNEED or\n\
-POSIX_FADV_DONTNEED.");
+/*[clinic input]
+os.posix_fadvise
+
+ fd: int
+ offset: Py_off_t
+ length: Py_off_t
+ advice: int
+ /
+
+Announce an intention to access data in a specific pattern.
+
+Announce an intention to access data in a specific pattern, thus allowing
+the kernel to make optimizations.
+The advice applies to the region of the file specified by fd starting at
+offset and continuing for length bytes.
+advice is one of POSIX_FADV_NORMAL, POSIX_FADV_SEQUENTIAL,
+POSIX_FADV_RANDOM, POSIX_FADV_NOREUSE, POSIX_FADV_WILLNEED, or
+POSIX_FADV_DONTNEED.
+[clinic start generated code]*/
static PyObject *
-posix_posix_fadvise(PyObject *self, PyObject *args)
+os_posix_fadvise_impl(PyModuleDef *module, int fd, Py_off_t offset,
+ Py_off_t length, int advice)
+/*[clinic end generated code: output=457ce6a67189e10d input=0fbe554edc2f04b5]*/
{
- off_t len, offset;
- int res, fd, advice;
-
- if (!PyArg_ParseTuple(args, "iO&O&i:posix_fadvise",
- &fd, _parse_off_t, &offset, _parse_off_t, &len, &advice))
- return NULL;
+ int result;
+ int async_err = 0;
- Py_BEGIN_ALLOW_THREADS
- res = posix_fadvise(fd, offset, len, advice);
- Py_END_ALLOW_THREADS
- if (res != 0) {
- errno = res;
- return posix_error();
- }
+ do {
+ Py_BEGIN_ALLOW_THREADS
+ result = posix_fadvise(fd, offset, length, advice);
+ Py_END_ALLOW_THREADS
+ } while (result != 0 && errno == EINTR &&
+ !(async_err = PyErr_CheckSignals()));
+ if (result != 0)
+ return (!async_err) ? posix_error() : NULL;
Py_RETURN_NONE;
}
-#endif
+#endif /* HAVE_POSIX_FADVISE && !POSIX_FADVISE_AIX_BUG */
#ifdef HAVE_PUTENV
-PyDoc_STRVAR(posix_putenv__doc__,
-"putenv(key, value)\n\n\
-Change or add an environment variable.");
/* Save putenv() parameters as values here, so we can collect them when they
* get re-set with another call for the same key. */
static PyObject *posix_putenv_garbage;
-static PyObject *
-posix_putenv(PyObject *self, PyObject *args)
+static void
+posix_putenv_garbage_setitem(PyObject *name, PyObject *value)
{
- PyObject *newstr = NULL;
+ /* Install the first arg and newstr in posix_putenv_garbage;
+ * this will cause previous value to be collected. This has to
+ * happen after the real putenv() call because the old value
+ * was still accessible until then. */
+ if (PyDict_SetItem(posix_putenv_garbage, name, value))
+ /* really not much we can do; just leak */
+ PyErr_Clear();
+ else
+ Py_DECREF(value);
+}
+
+
#ifdef MS_WINDOWS
- PyObject *os1, *os2;
- wchar_t *newenv;
+/*[clinic input]
+os.putenv
- if (!PyArg_ParseTuple(args,
- "UU:putenv",
- &os1, &os2))
- return NULL;
+ name: unicode
+ value: unicode
+ /
- newstr = PyUnicode_FromFormat("%U=%U", os1, os2);
- if (newstr == NULL) {
+Change or add an environment variable.
+[clinic start generated code]*/
+
+static PyObject *
+os_putenv_impl(PyModuleDef *module, PyObject *name, PyObject *value)
+/*[clinic end generated code: output=a2438cf95e5a0c1c input=ba586581c2e6105f]*/
+{
+ wchar_t *env;
+
+ PyObject *unicode = PyUnicode_FromFormat("%U=%U", name, value);
+ if (unicode == NULL) {
PyErr_NoMemory();
- goto error;
+ return NULL;
}
- if (_MAX_ENV < PyUnicode_GET_LENGTH(newstr)) {
+ if (_MAX_ENV < PyUnicode_GET_LENGTH(unicode)) {
PyErr_Format(PyExc_ValueError,
"the environment variable is longer than %u characters",
_MAX_ENV);
goto error;
}
- newenv = PyUnicode_AsUnicode(newstr);
- if (newenv == NULL)
+ env = PyUnicode_AsUnicode(unicode);
+ if (env == NULL)
goto error;
- if (_wputenv(newenv)) {
+ if (_wputenv(env)) {
posix_error();
goto error;
}
-#else
- PyObject *os1, *os2;
- char *s1, *s2;
- char *newenv;
-
- if (!PyArg_ParseTuple(args,
- "O&O&:putenv",
- PyUnicode_FSConverter, &os1,
- PyUnicode_FSConverter, &os2))
- return NULL;
- s1 = PyBytes_AsString(os1);
- s2 = PyBytes_AsString(os2);
- newstr = PyBytes_FromFormat("%s=%s", s1, s2);
- if (newstr == NULL) {
- PyErr_NoMemory();
- goto error;
- }
+ posix_putenv_garbage_setitem(name, unicode);
+ Py_RETURN_NONE;
- newenv = PyBytes_AS_STRING(newstr);
- if (putenv(newenv)) {
- posix_error();
- goto error;
- }
-#endif
+error:
+ Py_DECREF(unicode);
+ return NULL;
+}
+#else /* MS_WINDOWS */
+/*[clinic input]
+os.putenv
- /* Install the first arg and newstr in posix_putenv_garbage;
- * this will cause previous value to be collected. This has to
- * happen after the real putenv() call because the old value
- * was still accessible until then. */
- if (PyDict_SetItem(posix_putenv_garbage, os1, newstr)) {
- /* really not much we can do; just leak */
- PyErr_Clear();
+ name: FSConverter
+ value: FSConverter
+ /
+
+Change or add an environment variable.
+[clinic start generated code]*/
+
+static PyObject *
+os_putenv_impl(PyModuleDef *module, PyObject *name, PyObject *value)
+/*[clinic end generated code: output=a2438cf95e5a0c1c input=a97bc6152f688d31]*/
+{
+ PyObject *bytes = NULL;
+ char *env;
+ char *name_string = PyBytes_AsString(name);
+ char *value_string = PyBytes_AsString(value);
+
+ bytes = PyBytes_FromFormat("%s=%s", name_string, value_string);
+ if (bytes == NULL) {
+ PyErr_NoMemory();
+ return NULL;
}
- else {
- Py_DECREF(newstr);
+
+ env = PyBytes_AS_STRING(bytes);
+ if (putenv(env)) {
+ Py_DECREF(bytes);
+ return posix_error();
}
-#ifndef MS_WINDOWS
- Py_DECREF(os1);
- Py_DECREF(os2);
-#endif
+ posix_putenv_garbage_setitem(name, bytes);
Py_RETURN_NONE;
-
-error:
-#ifndef MS_WINDOWS
- Py_DECREF(os1);
- Py_DECREF(os2);
-#endif
- Py_XDECREF(newstr);
- return NULL;
}
-#endif /* putenv */
+#endif /* MS_WINDOWS */
+#endif /* HAVE_PUTENV */
+
#ifdef HAVE_UNSETENV
-PyDoc_STRVAR(posix_unsetenv__doc__,
-"unsetenv(key)\n\n\
-Delete an environment variable.");
+/*[clinic input]
+os.unsetenv
+ name: FSConverter
+ /
+
+Delete an environment variable.
+[clinic start generated code]*/
static PyObject *
-posix_unsetenv(PyObject *self, PyObject *args)
+os_unsetenv_impl(PyModuleDef *module, PyObject *name)
+/*[clinic end generated code: output=25994b57016a2dc9 input=2bb5288a599c7107]*/
{
- PyObject *name;
#ifndef HAVE_BROKEN_UNSETENV
int err;
#endif
- if (!PyArg_ParseTuple(args, "O&:unsetenv",
-
- PyUnicode_FSConverter, &name))
- return NULL;
-
#ifdef HAVE_BROKEN_UNSETENV
unsetenv(PyBytes_AS_STRING(name));
#else
err = unsetenv(PyBytes_AS_STRING(name));
- if (err) {
- Py_DECREF(name);
+ if (err)
return posix_error();
- }
#endif
/* Remove the key from posix_putenv_garbage;
@@ -9027,23 +9117,25 @@ posix_unsetenv(PyObject *self, PyObject *args)
/* really not much we can do; just leak */
PyErr_Clear();
}
- Py_DECREF(name);
Py_RETURN_NONE;
}
-#endif /* unsetenv */
+#endif /* HAVE_UNSETENV */
+
-PyDoc_STRVAR(posix_strerror__doc__,
-"strerror(code) -> string\n\n\
-Translate an error code to a message string.");
+/*[clinic input]
+os.strerror
+
+ code: int
+ /
+
+Translate an error code to a message string.
+[clinic start generated code]*/
static PyObject *
-posix_strerror(PyObject *self, PyObject *args)
+os_strerror_impl(PyModuleDef *module, int code)
+/*[clinic end generated code: output=0280c6af51e5c9fe input=75a8673d97915a91]*/
{
- int code;
- char *message;
- if (!PyArg_ParseTuple(args, "i:strerror", &code))
- return NULL;
- message = strerror(code);
+ char *message = strerror(code);
if (message == NULL) {
PyErr_SetString(PyExc_ValueError,
"strerror() argument out of range");
@@ -9054,155 +9146,168 @@ posix_strerror(PyObject *self, PyObject *args)
#ifdef HAVE_SYS_WAIT_H
-
#ifdef WCOREDUMP
-PyDoc_STRVAR(posix_WCOREDUMP__doc__,
-"WCOREDUMP(status) -> bool\n\n\
-Return True if the process returning 'status' was dumped to a core file.");
+/*[clinic input]
+os.WCOREDUMP -> bool
-static PyObject *
-posix_WCOREDUMP(PyObject *self, PyObject *args)
-{
- WAIT_TYPE status;
- WAIT_STATUS_INT(status) = 0;
+ status: int
+ /
- if (!PyArg_ParseTuple(args, "i:WCOREDUMP", &WAIT_STATUS_INT(status)))
- return NULL;
+Return True if the process returning status was dumped to a core file.
+[clinic start generated code]*/
- return PyBool_FromLong(WCOREDUMP(status));
+static int
+os_WCOREDUMP_impl(PyModuleDef *module, int status)
+/*[clinic end generated code: output=134f70bbe63fbf41 input=8b05e7ab38528d04]*/
+{
+ WAIT_TYPE wait_status;
+ WAIT_STATUS_INT(wait_status) = status;
+ return WCOREDUMP(wait_status);
}
#endif /* WCOREDUMP */
+
#ifdef WIFCONTINUED
-PyDoc_STRVAR(posix_WIFCONTINUED__doc__,
-"WIFCONTINUED(status) -> bool\n\n\
-Return True if the process returning 'status' was continued from a\n\
-job control stop.");
+/*[clinic input]
+os.WIFCONTINUED -> bool
-static PyObject *
-posix_WIFCONTINUED(PyObject *self, PyObject *args)
-{
- WAIT_TYPE status;
- WAIT_STATUS_INT(status) = 0;
+ status: int
- if (!PyArg_ParseTuple(args, "i:WCONTINUED", &WAIT_STATUS_INT(status)))
- return NULL;
+Return True if a particular process was continued from a job control stop.
+
+Return True if the process returning status was continued from a
+job control stop.
+[clinic start generated code]*/
- return PyBool_FromLong(WIFCONTINUED(status));
+static int
+os_WIFCONTINUED_impl(PyModuleDef *module, int status)
+/*[clinic end generated code: output=9cdd26543ebb6dcd input=e777e7d38eb25bd9]*/
+{
+ WAIT_TYPE wait_status;
+ WAIT_STATUS_INT(wait_status) = status;
+ return WIFCONTINUED(wait_status);
}
#endif /* WIFCONTINUED */
+
#ifdef WIFSTOPPED
-PyDoc_STRVAR(posix_WIFSTOPPED__doc__,
-"WIFSTOPPED(status) -> bool\n\n\
-Return True if the process returning 'status' was stopped.");
+/*[clinic input]
+os.WIFSTOPPED -> bool
-static PyObject *
-posix_WIFSTOPPED(PyObject *self, PyObject *args)
-{
- WAIT_TYPE status;
- WAIT_STATUS_INT(status) = 0;
+ status: int
- if (!PyArg_ParseTuple(args, "i:WIFSTOPPED", &WAIT_STATUS_INT(status)))
- return NULL;
+Return True if the process returning status was stopped.
+[clinic start generated code]*/
- return PyBool_FromLong(WIFSTOPPED(status));
+static int
+os_WIFSTOPPED_impl(PyModuleDef *module, int status)
+/*[clinic end generated code: output=73bf35e44994a724 input=043cb7f1289ef904]*/
+{
+ WAIT_TYPE wait_status;
+ WAIT_STATUS_INT(wait_status) = status;
+ return WIFSTOPPED(wait_status);
}
#endif /* WIFSTOPPED */
+
#ifdef WIFSIGNALED
-PyDoc_STRVAR(posix_WIFSIGNALED__doc__,
-"WIFSIGNALED(status) -> bool\n\n\
-Return True if the process returning 'status' was terminated by a signal.");
+/*[clinic input]
+os.WIFSIGNALED -> bool
-static PyObject *
-posix_WIFSIGNALED(PyObject *self, PyObject *args)
-{
- WAIT_TYPE status;
- WAIT_STATUS_INT(status) = 0;
+ status: int
- if (!PyArg_ParseTuple(args, "i:WIFSIGNALED", &WAIT_STATUS_INT(status)))
- return NULL;
+Return True if the process returning status was terminated by a signal.
+[clinic start generated code]*/
- return PyBool_FromLong(WIFSIGNALED(status));
+static int
+os_WIFSIGNALED_impl(PyModuleDef *module, int status)
+/*[clinic end generated code: output=2697975771872420 input=d55ba7cc9ce5dc43]*/
+{
+ WAIT_TYPE wait_status;
+ WAIT_STATUS_INT(wait_status) = status;
+ return WIFSIGNALED(wait_status);
}
#endif /* WIFSIGNALED */
+
#ifdef WIFEXITED
-PyDoc_STRVAR(posix_WIFEXITED__doc__,
-"WIFEXITED(status) -> bool\n\n\
-Return true if the process returning 'status' exited using the exit()\n\
-system call.");
+/*[clinic input]
+os.WIFEXITED -> bool
-static PyObject *
-posix_WIFEXITED(PyObject *self, PyObject *args)
-{
- WAIT_TYPE status;
- WAIT_STATUS_INT(status) = 0;
+ status: int
- if (!PyArg_ParseTuple(args, "i:WIFEXITED", &WAIT_STATUS_INT(status)))
- return NULL;
+Return True if the process returning status exited via the exit() system call.
+[clinic start generated code]*/
- return PyBool_FromLong(WIFEXITED(status));
+static int
+os_WIFEXITED_impl(PyModuleDef *module, int status)
+/*[clinic end generated code: output=ca8f8c61f0b8532e input=d63775a6791586c0]*/
+{
+ WAIT_TYPE wait_status;
+ WAIT_STATUS_INT(wait_status) = status;
+ return WIFEXITED(wait_status);
}
#endif /* WIFEXITED */
+
#ifdef WEXITSTATUS
-PyDoc_STRVAR(posix_WEXITSTATUS__doc__,
-"WEXITSTATUS(status) -> integer\n\n\
-Return the process return code from 'status'.");
+/*[clinic input]
+os.WEXITSTATUS -> int
-static PyObject *
-posix_WEXITSTATUS(PyObject *self, PyObject *args)
-{
- WAIT_TYPE status;
- WAIT_STATUS_INT(status) = 0;
+ status: int
- if (!PyArg_ParseTuple(args, "i:WEXITSTATUS", &WAIT_STATUS_INT(status)))
- return NULL;
+Return the process return code from status.
+[clinic start generated code]*/
- return Py_BuildValue("i", WEXITSTATUS(status));
+static int
+os_WEXITSTATUS_impl(PyModuleDef *module, int status)
+/*[clinic end generated code: output=ea54da23d9e0f6af input=e1fb4944e377585b]*/
+{
+ WAIT_TYPE wait_status;
+ WAIT_STATUS_INT(wait_status) = status;
+ return WEXITSTATUS(wait_status);
}
#endif /* WEXITSTATUS */
+
#ifdef WTERMSIG
-PyDoc_STRVAR(posix_WTERMSIG__doc__,
-"WTERMSIG(status) -> integer\n\n\
-Return the signal that terminated the process that provided the 'status'\n\
-value.");
+/*[clinic input]
+os.WTERMSIG -> int
-static PyObject *
-posix_WTERMSIG(PyObject *self, PyObject *args)
-{
- WAIT_TYPE status;
- WAIT_STATUS_INT(status) = 0;
+ status: int
- if (!PyArg_ParseTuple(args, "i:WTERMSIG", &WAIT_STATUS_INT(status)))
- return NULL;
+Return the signal that terminated the process that provided the status value.
+[clinic start generated code]*/
- return Py_BuildValue("i", WTERMSIG(status));
+static int
+os_WTERMSIG_impl(PyModuleDef *module, int status)
+/*[clinic end generated code: output=4d25367026cb852c input=727fd7f84ec3f243]*/
+{
+ WAIT_TYPE wait_status;
+ WAIT_STATUS_INT(wait_status) = status;
+ return WTERMSIG(wait_status);
}
#endif /* WTERMSIG */
+
#ifdef WSTOPSIG
-PyDoc_STRVAR(posix_WSTOPSIG__doc__,
-"WSTOPSIG(status) -> integer\n\n\
-Return the signal that stopped the process that provided\n\
-the 'status' value.");
+/*[clinic input]
+os.WSTOPSIG -> int
-static PyObject *
-posix_WSTOPSIG(PyObject *self, PyObject *args)
-{
- WAIT_TYPE status;
- WAIT_STATUS_INT(status) = 0;
+ status: int
- if (!PyArg_ParseTuple(args, "i:WSTOPSIG", &WAIT_STATUS_INT(status)))
- return NULL;
+Return the signal that stopped the process that provided the status value.
+[clinic start generated code]*/
- return Py_BuildValue("i", WSTOPSIG(status));
+static int
+os_WSTOPSIG_impl(PyModuleDef *module, int status)
+/*[clinic end generated code: output=54eb9c13b001adb4 input=46ebf1d1b293c5c1]*/
+{
+ WAIT_TYPE wait_status;
+ WAIT_STATUS_INT(wait_status) = status;
+ return WSTOPSIG(wait_status);
}
#endif /* WSTOPSIG */
-
#endif /* HAVE_SYS_WAIT_H */
@@ -9257,104 +9362,101 @@ _pystatvfs_fromstructstatvfs(struct statvfs st) {
return v;
}
-PyDoc_STRVAR(posix_fstatvfs__doc__,
-"fstatvfs(fd) -> statvfs result\n\n\
-Perform an fstatvfs system call on the given fd.\n\
-Equivalent to statvfs(fd).");
+
+/*[clinic input]
+os.fstatvfs
+ fd: int
+ /
+
+Perform an fstatvfs system call on the given fd.
+
+Equivalent to statvfs(fd).
+[clinic start generated code]*/
static PyObject *
-posix_fstatvfs(PyObject *self, PyObject *args)
+os_fstatvfs_impl(PyModuleDef *module, int fd)
+/*[clinic end generated code: output=584a94a754497ac0 input=d8122243ac50975e]*/
{
- int fd, res;
+ int result;
+ int async_err = 0;
struct statvfs st;
- if (!PyArg_ParseTuple(args, "i:fstatvfs", &fd))
- return NULL;
- Py_BEGIN_ALLOW_THREADS
- res = fstatvfs(fd, &st);
- Py_END_ALLOW_THREADS
- if (res != 0)
- return posix_error();
+ do {
+ Py_BEGIN_ALLOW_THREADS
+ result = fstatvfs(fd, &st);
+ Py_END_ALLOW_THREADS
+ } while (result != 0 && errno == EINTR &&
+ !(async_err = PyErr_CheckSignals()));
+ if (result != 0)
+ return (!async_err) ? posix_error() : NULL;
return _pystatvfs_fromstructstatvfs(st);
}
-#endif /* HAVE_FSTATVFS && HAVE_SYS_STATVFS_H */
+#endif /* defined(HAVE_FSTATVFS) && defined(HAVE_SYS_STATVFS_H) */
#if defined(HAVE_STATVFS) && defined(HAVE_SYS_STATVFS_H)
#include <sys/statvfs.h>
+/*[clinic input]
+os.statvfs
-PyDoc_STRVAR(posix_statvfs__doc__,
-"statvfs(path)\n\n\
-Perform a statvfs system call on the given path.\n\
-\n\
-path may always be specified as a string.\n\
-On some platforms, path may also be specified as an open file descriptor.\n\
- If this functionality is unavailable, using it raises an exception.");
+ path: path_t(allow_fd='PATH_HAVE_FSTATVFS')
+
+Perform a statvfs system call on the given path.
+
+path may always be specified as a string.
+On some platforms, path may also be specified as an open file descriptor.
+ If this functionality is unavailable, using it raises an exception.
+[clinic start generated code]*/
static PyObject *
-posix_statvfs(PyObject *self, PyObject *args, PyObject *kwargs)
+os_statvfs_impl(PyModuleDef *module, path_t *path)
+/*[clinic end generated code: output=5ced07a2cf931f41 input=3f5c35791c669bd9]*/
{
- static char *keywords[] = {"path", NULL};
- path_t path;
int result;
- PyObject *return_value = NULL;
struct statvfs st;
- memset(&path, 0, sizeof(path));
- path.function_name = "statvfs";
-#ifdef HAVE_FSTATVFS
- path.allow_fd = 1;
-#endif
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&:statvfs", keywords,
- path_converter, &path
- ))
- return NULL;
-
Py_BEGIN_ALLOW_THREADS
#ifdef HAVE_FSTATVFS
- if (path.fd != -1) {
+ if (path->fd != -1) {
#ifdef __APPLE__
/* handle weak-linking on Mac OS X 10.3 */
if (fstatvfs == NULL) {
- fd_specified("statvfs", path.fd);
- goto exit;
+ fd_specified("statvfs", path->fd);
+ return NULL;
}
#endif
- result = fstatvfs(path.fd, &st);
+ result = fstatvfs(path->fd, &st);
}
else
#endif
- result = statvfs(path.narrow, &st);
+ result = statvfs(path->narrow, &st);
Py_END_ALLOW_THREADS
if (result) {
- return_value = path_error(&path);
- goto exit;
+ return path_error(path);
}
- return_value = _pystatvfs_fromstructstatvfs(st);
-
-exit:
- path_cleanup(&path);
- return return_value;
+ return _pystatvfs_fromstructstatvfs(st);
}
-#endif /* HAVE_STATVFS */
+#endif /* defined(HAVE_STATVFS) && defined(HAVE_SYS_STATVFS_H) */
+
#ifdef MS_WINDOWS
-PyDoc_STRVAR(win32__getdiskusage__doc__,
-"_getdiskusage(path) -> (total, free)\n\n\
-Return disk usage statistics about the given path as (total, free) tuple.");
+/*[clinic input]
+os._getdiskusage
+
+ path: Py_UNICODE
+
+Return disk usage statistics about the given path as a (total, free) tuple.
+[clinic start generated code]*/
static PyObject *
-win32__getdiskusage(PyObject *self, PyObject *args)
+os__getdiskusage_impl(PyModuleDef *module, Py_UNICODE *path)
+/*[clinic end generated code: output=60a9cf33449db1dd input=6458133aed893c78]*/
{
BOOL retval;
ULARGE_INTEGER _, total, free;
- const wchar_t *path;
-
- if (! PyArg_ParseTuple(args, "u", &path))
- return NULL;
Py_BEGIN_ALLOW_THREADS
retval = GetDiskFreeSpaceExW(path, &_, &total, &free);
@@ -9364,7 +9466,7 @@ win32__getdiskusage(PyObject *self, PyObject *args)
return Py_BuildValue("(LL)", total.QuadPart, free.QuadPart);
}
-#endif
+#endif /* MS_WINDOWS */
/* This is used for fpathconf(), pathconf(), confstr() and sysconf().
@@ -9521,81 +9623,73 @@ conv_path_confname(PyObject *arg, int *valuep)
}
#endif
+
#ifdef HAVE_FPATHCONF
-PyDoc_STRVAR(posix_fpathconf__doc__,
-"fpathconf(fd, name) -> integer\n\n\
-Return the configuration limit name for the file descriptor fd.\n\
-If there is no limit, return -1.");
+/*[clinic input]
+os.fpathconf -> long
-static PyObject *
-posix_fpathconf(PyObject *self, PyObject *args)
+ fd: int
+ name: path_confname
+ /
+
+Return the configuration limit name for the file descriptor fd.
+
+If there is no limit, return -1.
+[clinic start generated code]*/
+
+static long
+os_fpathconf_impl(PyModuleDef *module, int fd, int name)
+/*[clinic end generated code: output=082b2922d4441de7 input=5942a024d3777810]*/
{
- PyObject *result = NULL;
- int name, fd;
+ long limit;
- if (PyArg_ParseTuple(args, "iO&:fpathconf", &fd,
- conv_path_confname, &name)) {
- long limit;
+ errno = 0;
+ limit = fpathconf(fd, name);
+ if (limit == -1 && errno != 0)
+ posix_error();
- errno = 0;
- limit = fpathconf(fd, name);
- if (limit == -1 && errno != 0)
- posix_error();
- else
- result = PyLong_FromLong(limit);
- }
- return result;
+ return limit;
}
-#endif
+#endif /* HAVE_FPATHCONF */
#ifdef HAVE_PATHCONF
-PyDoc_STRVAR(posix_pathconf__doc__,
-"pathconf(path, name) -> integer\n\n\
-Return the configuration limit name for the file or directory path.\n\
-If there is no limit, return -1.\n\
-On some platforms, path may also be specified as an open file descriptor.\n\
- If this functionality is unavailable, using it raises an exception.");
+/*[clinic input]
+os.pathconf -> long
+ path: path_t(allow_fd='PATH_HAVE_FPATHCONF')
+ name: path_confname
-static PyObject *
-posix_pathconf(PyObject *self, PyObject *args, PyObject *kwargs)
-{
- path_t path;
- PyObject *result = NULL;
- int name;
- static char *keywords[] = {"path", "name", NULL};
+Return the configuration limit name for the file or directory path.
- memset(&path, 0, sizeof(path));
- path.function_name = "pathconf";
-#ifdef HAVE_FPATHCONF
- path.allow_fd = 1;
-#endif
- if (PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&:pathconf", keywords,
- path_converter, &path,
- conv_path_confname, &name)) {
+If there is no limit, return -1.
+On some platforms, path may also be specified as an open file descriptor.
+ If this functionality is unavailable, using it raises an exception.
+[clinic start generated code]*/
+
+static long
+os_pathconf_impl(PyModuleDef *module, path_t *path, int name)
+/*[clinic end generated code: output=3713029e9501f5ab input=bc3e2a985af27e5e]*/
+{
long limit;
errno = 0;
#ifdef HAVE_FPATHCONF
- if (path.fd != -1)
- limit = fpathconf(path.fd, name);
+ if (path->fd != -1)
+ limit = fpathconf(path->fd, name);
else
#endif
- limit = pathconf(path.narrow, name);
+ limit = pathconf(path->narrow, name);
if (limit == -1 && errno != 0) {
if (errno == EINVAL)
/* could be a path or name problem */
posix_error();
else
- result = path_error(&path);
- }
- else
- result = PyLong_FromLong(limit);
+ path_error(path);
}
- path_cleanup(&path);
- return result;
+
+ return limit;
}
-#endif
+#endif /* HAVE_PATHCONF */
#ifdef HAVE_CONFSTR
static struct constdef posix_constants_confstr[] = {
@@ -9759,21 +9853,24 @@ conv_confstr_confname(PyObject *arg, int *valuep)
/ sizeof(struct constdef));
}
-PyDoc_STRVAR(posix_confstr__doc__,
-"confstr(name) -> string\n\n\
-Return a string-valued system configuration variable.");
+
+/*[clinic input]
+os.confstr
+
+ name: confstr_confname
+ /
+
+Return a string-valued system configuration variable.
+[clinic start generated code]*/
static PyObject *
-posix_confstr(PyObject *self, PyObject *args)
+os_confstr_impl(PyModuleDef *module, int name)
+/*[clinic end generated code: output=6ff79c9eed8c2daf input=18fb4d0567242e65]*/
{
PyObject *result = NULL;
- int name;
char buffer[255];
size_t len;
- if (!PyArg_ParseTuple(args, "O&:confstr", conv_confstr_confname, &name))
- return NULL;
-
errno = 0;
len = confstr(name, buffer, sizeof(buffer));
if (len == 0) {
@@ -9787,18 +9884,20 @@ posix_confstr(PyObject *self, PyObject *args)
}
if (len >= sizeof(buffer)) {
+ size_t len2;
char *buf = PyMem_Malloc(len);
if (buf == NULL)
return PyErr_NoMemory();
- confstr(name, buf, len);
- result = PyUnicode_DecodeFSDefaultAndSize(buf, len-1);
+ len2 = confstr(name, buf, len);
+ assert(len == len2);
+ result = PyUnicode_DecodeFSDefaultAndSize(buf, len2-1);
PyMem_Free(buf);
}
else
result = PyUnicode_DecodeFSDefaultAndSize(buffer, len-1);
return result;
}
-#endif
+#endif /* HAVE_CONFSTR */
#ifdef HAVE_SYSCONF
@@ -10305,29 +10404,28 @@ conv_sysconf_confname(PyObject *arg, int *valuep)
/ sizeof(struct constdef));
}
-PyDoc_STRVAR(posix_sysconf__doc__,
-"sysconf(name) -> integer\n\n\
-Return an integer-valued system configuration variable.");
-static PyObject *
-posix_sysconf(PyObject *self, PyObject *args)
-{
- PyObject *result = NULL;
- int name;
+/*[clinic input]
+os.sysconf -> long
+ name: sysconf_confname
+ /
- if (PyArg_ParseTuple(args, "O&:sysconf", conv_sysconf_confname, &name)) {
- long value;
+Return an integer-valued system configuration variable.
+[clinic start generated code]*/
- errno = 0;
- value = sysconf(name);
- if (value == -1 && errno != 0)
- posix_error();
- else
- result = PyLong_FromLong(value);
- }
- return result;
+static long
+os_sysconf_impl(PyModuleDef *module, int name)
+/*[clinic end generated code: output=ed567306f58d69c4 input=279e3430a33f29e4]*/
+{
+ long value;
+
+ errno = 0;
+ value = sysconf(name);
+ if (value == -1 && errno != 0)
+ posix_error();
+ return value;
}
-#endif
+#endif /* HAVE_SYSCONF */
/* This code is used to ensure that the tables of configuration value names
@@ -10404,13 +10502,18 @@ setup_confname_tables(PyObject *module)
}
-PyDoc_STRVAR(posix_abort__doc__,
-"abort() -> does not return!\n\n\
-Abort the interpreter immediately. This 'dumps core' or otherwise fails\n\
-in the hardest way possible on the hosting operating system.");
+/*[clinic input]
+os.abort
+
+Abort the interpreter immediately.
+
+This function 'dumps core' or otherwise fails in the hardest way possible
+on the hosting operating system. This function never returns.
+[clinic start generated code]*/
static PyObject *
-posix_abort(PyObject *self, PyObject *noargs)
+os_abort_impl(PyModuleDef *module)
+/*[clinic end generated code: output=486bb96647c299b3 input=cf2c7d98bc504047]*/
{
abort();
/*NOTREACHED*/
@@ -10419,9 +10522,11 @@ posix_abort(PyObject *self, PyObject *noargs)
}
#ifdef MS_WINDOWS
+/* AC 3.5: change to path_t? but that might change exceptions */
PyDoc_STRVAR(win32_startfile__doc__,
-"startfile(filepath [, operation]) - Start a file with its associated\n\
-application.\n\
+"startfile(filepath [, operation])\n\
+\n\
+Start a file with its associated application.\n\
\n\
When \"operation\" is not specified or \"open\", this acts like\n\
double-clicking the file in Explorer, or giving the file name as an\n\
@@ -10438,6 +10543,37 @@ The filepath is relative to the current directory. If you want to use\n\
an absolute path, make sure the first character is not a slash (\"/\");\n\
the underlying Win32 ShellExecute function doesn't work if it is.");
+/* Grab ShellExecute dynamically from shell32 */
+static int has_ShellExecute = -1;
+static HINSTANCE (CALLBACK *Py_ShellExecuteA)(HWND, LPCSTR, LPCSTR, LPCSTR,
+ LPCSTR, INT);
+static HINSTANCE (CALLBACK *Py_ShellExecuteW)(HWND, LPCWSTR, LPCWSTR, LPCWSTR,
+ LPCWSTR, INT);
+static int
+check_ShellExecute()
+{
+ HINSTANCE hShell32;
+
+ /* only recheck */
+ if (-1 == has_ShellExecute) {
+ Py_BEGIN_ALLOW_THREADS
+ hShell32 = LoadLibraryW(L"SHELL32");
+ Py_END_ALLOW_THREADS
+ if (hShell32) {
+ *(FARPROC*)&Py_ShellExecuteA = GetProcAddress(hShell32,
+ "ShellExecuteA");
+ *(FARPROC*)&Py_ShellExecuteW = GetProcAddress(hShell32,
+ "ShellExecuteW");
+ has_ShellExecute = Py_ShellExecuteA &&
+ Py_ShellExecuteW;
+ } else {
+ has_ShellExecute = 0;
+ }
+ }
+ return has_ShellExecute;
+}
+
+
static PyObject *
win32_startfile(PyObject *self, PyObject *args)
{
@@ -10448,6 +10584,14 @@ win32_startfile(PyObject *self, PyObject *args)
HINSTANCE rc;
PyObject *unipath, *uoperation = NULL;
+
+ if(!check_ShellExecute()) {
+ /* If the OS doesn't have ShellExecute, return a
+ NotImplementedError. */
+ return PyErr_Format(PyExc_NotImplementedError,
+ "startfile not available on this platform");
+ }
+
if (!PyArg_ParseTuple(args, "U|s:startfile",
&unipath, &operation)) {
PyErr_Clear();
@@ -10476,8 +10620,8 @@ win32_startfile(PyObject *self, PyObject *args)
woperation = NULL;
Py_BEGIN_ALLOW_THREADS
- rc = ShellExecuteW((HWND)0, woperation, wpath,
- NULL, NULL, SW_SHOWNORMAL);
+ rc = Py_ShellExecuteW((HWND)0, woperation, wpath,
+ NULL, NULL, SW_SHOWNORMAL);
Py_END_ALLOW_THREADS
Py_XDECREF(uoperation);
@@ -10499,8 +10643,8 @@ normal:
}
filepath = PyBytes_AsString(ofilepath);
Py_BEGIN_ALLOW_THREADS
- rc = ShellExecute((HWND)0, operation, filepath,
- NULL, NULL, SW_SHOWNORMAL);
+ rc = Py_ShellExecuteA((HWND)0, operation, filepath,
+ NULL, NULL, SW_SHOWNORMAL);
Py_END_ALLOW_THREADS
if (rc <= (HINSTANCE)32) {
PyObject *errval = win32_error("startfile", filepath);
@@ -10511,17 +10655,23 @@ normal:
Py_INCREF(Py_None);
return Py_None;
}
-#endif
+#endif /* MS_WINDOWS */
+
#ifdef HAVE_GETLOADAVG
-PyDoc_STRVAR(posix_getloadavg__doc__,
-"getloadavg() -> (float, float, float)\n\n\
-Return the number of processes in the system run queue averaged over\n\
-the last 1, 5, and 15 minutes or raises OSError if the load average\n\
-was unobtainable");
+/*[clinic input]
+os.getloadavg
+
+Return average recent system load information.
+
+Return the number of processes in the system run queue averaged over
+the last 1, 5, and 15 minutes as a tuple of three floats.
+Raises OSError if the load average was unobtainable.
+[clinic start generated code]*/
static PyObject *
-posix_getloadavg(PyObject *self, PyObject *noargs)
+os_getloadavg_impl(PyModuleDef *module)
+/*[clinic end generated code: output=2b64c5b675d74c14 input=3d6d826b76d8a34e]*/
{
double loadavg[3];
if (getloadavg(loadavg, 3)!=3) {
@@ -10530,72 +10680,83 @@ posix_getloadavg(PyObject *self, PyObject *noargs)
} else
return Py_BuildValue("ddd", loadavg[0], loadavg[1], loadavg[2]);
}
-#endif
+#endif /* HAVE_GETLOADAVG */
-PyDoc_STRVAR(device_encoding__doc__,
-"device_encoding(fd) -> str\n\n\
-Return a string describing the encoding of the device\n\
-if the output is a terminal; else return None.");
-static PyObject *
-device_encoding(PyObject *self, PyObject *args)
-{
- int fd;
+/*[clinic input]
+os.device_encoding
+ fd: int
- if (!PyArg_ParseTuple(args, "i:device_encoding", &fd))
- return NULL;
+Return a string describing the encoding of a terminal's file descriptor.
+The file descriptor must be attached to a terminal.
+If the device is not a terminal, return None.
+[clinic start generated code]*/
+
+static PyObject *
+os_device_encoding_impl(PyModuleDef *module, int fd)
+/*[clinic end generated code: output=34f14e33468419c1 input=9e1d4a42b66df312]*/
+{
return _Py_device_encoding(fd);
}
+
#ifdef HAVE_SETRESUID
-PyDoc_STRVAR(posix_setresuid__doc__,
-"setresuid(ruid, euid, suid)\n\n\
-Set the current process's real, effective, and saved user ids.");
+/*[clinic input]
+os.setresuid
-static PyObject*
-posix_setresuid (PyObject *self, PyObject *args)
+ ruid: uid_t
+ euid: uid_t
+ suid: uid_t
+ /
+
+Set the current process's real, effective, and saved user ids.
+[clinic start generated code]*/
+
+static PyObject *
+os_setresuid_impl(PyModuleDef *module, uid_t ruid, uid_t euid, uid_t suid)
+/*[clinic end generated code: output=92cc330812c6ed0f input=9e33cb79a82792f3]*/
{
- /* We assume uid_t is no larger than a long. */
- uid_t ruid, euid, suid;
- if (!PyArg_ParseTuple(args, "O&O&O&:setresuid",
- _Py_Uid_Converter, &ruid,
- _Py_Uid_Converter, &euid,
- _Py_Uid_Converter, &suid))
- return NULL;
if (setresuid(ruid, euid, suid) < 0)
return posix_error();
Py_RETURN_NONE;
}
-#endif
+#endif /* HAVE_SETRESUID */
+
#ifdef HAVE_SETRESGID
-PyDoc_STRVAR(posix_setresgid__doc__,
-"setresgid(rgid, egid, sgid)\n\n\
-Set the current process's real, effective, and saved group ids.");
+/*[clinic input]
+os.setresgid
-static PyObject*
-posix_setresgid (PyObject *self, PyObject *args)
+ rgid: gid_t
+ egid: gid_t
+ sgid: gid_t
+ /
+
+Set the current process's real, effective, and saved group ids.
+[clinic start generated code]*/
+
+static PyObject *
+os_setresgid_impl(PyModuleDef *module, gid_t rgid, gid_t egid, gid_t sgid)
+/*[clinic end generated code: output=e91dc4842a604429 input=33e9e0785ef426b1]*/
{
- gid_t rgid, egid, sgid;
- if (!PyArg_ParseTuple(args, "O&O&O&:setresgid",
- _Py_Gid_Converter, &rgid,
- _Py_Gid_Converter, &egid,
- _Py_Gid_Converter, &sgid))
- return NULL;
if (setresgid(rgid, egid, sgid) < 0)
return posix_error();
Py_RETURN_NONE;
}
-#endif
+#endif /* HAVE_SETRESGID */
+
#ifdef HAVE_GETRESUID
-PyDoc_STRVAR(posix_getresuid__doc__,
-"getresuid() -> (ruid, euid, suid)\n\n\
-Get tuple of the current process's real, effective, and saved user ids.");
+/*[clinic input]
+os.getresuid
-static PyObject*
-posix_getresuid (PyObject *self, PyObject *noargs)
+Return a tuple of the current process's real, effective, and saved user ids.
+[clinic start generated code]*/
+
+static PyObject *
+os_getresuid_impl(PyModuleDef *module)
+/*[clinic end generated code: output=9ddef62faae8e477 input=41ccfa8e1f6517ad]*/
{
uid_t ruid, euid, suid;
if (getresuid(&ruid, &euid, &suid) < 0)
@@ -10604,90 +10765,88 @@ posix_getresuid (PyObject *self, PyObject *noargs)
_PyLong_FromUid(euid),
_PyLong_FromUid(suid));
}
-#endif
+#endif /* HAVE_GETRESUID */
+
#ifdef HAVE_GETRESGID
-PyDoc_STRVAR(posix_getresgid__doc__,
-"getresgid() -> (rgid, egid, sgid)\n\n\
-Get tuple of the current process's real, effective, and saved group ids.");
+/*[clinic input]
+os.getresgid
-static PyObject*
-posix_getresgid (PyObject *self, PyObject *noargs)
+Return a tuple of the current process's real, effective, and saved group ids.
+[clinic start generated code]*/
+
+static PyObject *
+os_getresgid_impl(PyModuleDef *module)
+/*[clinic end generated code: output=e1a553cbcf16234c input=517e68db9ca32df6]*/
{
- uid_t rgid, egid, sgid;
+ gid_t rgid, egid, sgid;
if (getresgid(&rgid, &egid, &sgid) < 0)
return posix_error();
return Py_BuildValue("(NNN)", _PyLong_FromGid(rgid),
_PyLong_FromGid(egid),
_PyLong_FromGid(sgid));
}
-#endif
+#endif /* HAVE_GETRESGID */
+
#ifdef USE_XATTRS
+/*[clinic input]
+os.getxattr
-PyDoc_STRVAR(posix_getxattr__doc__,
-"getxattr(path, attribute, *, follow_symlinks=True) -> value\n\n\
-Return the value of extended attribute attribute on path.\n\
-\n\
-path may be either a string or an open file descriptor.\n\
-If follow_symlinks is False, and the last element of the path is a symbolic\n\
- link, getxattr will examine the symbolic link itself instead of the file\n\
- the link points to.");
+ path: path_t(allow_fd=True)
+ attribute: path_t
+ *
+ follow_symlinks: bool = True
+
+Return the value of extended attribute attribute on path.
+
+path may be either a string or an open file descriptor.
+If follow_symlinks is False, and the last element of the path is a symbolic
+ link, getxattr will examine the symbolic link itself instead of the file
+ the link points to.
+
+[clinic start generated code]*/
static PyObject *
-posix_getxattr(PyObject *self, PyObject *args, PyObject *kwargs)
+os_getxattr_impl(PyModuleDef *module, path_t *path, path_t *attribute,
+ int follow_symlinks)
+/*[clinic end generated code: output=cf2cede74bd5d412 input=8c8ea3bab78d89c2]*/
{
- path_t path;
- path_t attribute;
- int follow_symlinks = 1;
+ Py_ssize_t i;
PyObject *buffer = NULL;
- int i;
- static char *keywords[] = {"path", "attribute", "follow_symlinks", NULL};
- memset(&path, 0, sizeof(path));
- memset(&attribute, 0, sizeof(attribute));
- path.function_name = "getxattr";
- attribute.function_name = "getxattr";
- path.allow_fd = 1;
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&|$p:getxattr", keywords,
- path_converter, &path,
- path_converter, &attribute,
- &follow_symlinks))
+ if (fd_and_follow_symlinks_invalid("getxattr", path->fd, follow_symlinks))
return NULL;
- if (fd_and_follow_symlinks_invalid("getxattr", path.fd, follow_symlinks))
- goto exit;
-
for (i = 0; ; i++) {
void *ptr;
ssize_t result;
static Py_ssize_t buffer_sizes[] = {128, XATTR_SIZE_MAX, 0};
Py_ssize_t buffer_size = buffer_sizes[i];
if (!buffer_size) {
- path_error(&path);
- goto exit;
+ path_error(path);
+ return NULL;
}
buffer = PyBytes_FromStringAndSize(NULL, buffer_size);
if (!buffer)
- goto exit;
+ return NULL;
ptr = PyBytes_AS_STRING(buffer);
Py_BEGIN_ALLOW_THREADS;
- if (path.fd >= 0)
- result = fgetxattr(path.fd, attribute.narrow, ptr, buffer_size);
+ if (path->fd >= 0)
+ result = fgetxattr(path->fd, attribute->narrow, ptr, buffer_size);
else if (follow_symlinks)
- result = getxattr(path.narrow, attribute.narrow, ptr, buffer_size);
+ result = getxattr(path->narrow, attribute->narrow, ptr, buffer_size);
else
- result = lgetxattr(path.narrow, attribute.narrow, ptr, buffer_size);
+ result = lgetxattr(path->narrow, attribute->narrow, ptr, buffer_size);
Py_END_ALLOW_THREADS;
if (result < 0) {
Py_DECREF(buffer);
- buffer = NULL;
if (errno == ERANGE)
continue;
- path_error(&path);
- goto exit;
+ path_error(path);
+ return NULL;
}
if (result != buffer_size) {
@@ -10697,168 +10856,134 @@ posix_getxattr(PyObject *self, PyObject *args, PyObject *kwargs)
break;
}
-exit:
- path_cleanup(&path);
- path_cleanup(&attribute);
return buffer;
}
-PyDoc_STRVAR(posix_setxattr__doc__,
-"setxattr(path, attribute, value, flags=0, *, follow_symlinks=True)\n\n\
-Set extended attribute attribute on path to value.\n\
-path may be either a string or an open file descriptor.\n\
-If follow_symlinks is False, and the last element of the path is a symbolic\n\
- link, setxattr will modify the symbolic link itself instead of the file\n\
- the link points to.");
+
+/*[clinic input]
+os.setxattr
+
+ path: path_t(allow_fd=True)
+ attribute: path_t
+ value: Py_buffer
+ flags: int = 0
+ *
+ follow_symlinks: bool = True
+
+Set extended attribute attribute on path to value.
+
+path may be either a string or an open file descriptor.
+If follow_symlinks is False, and the last element of the path is a symbolic
+ link, setxattr will modify the symbolic link itself instead of the file
+ the link points to.
+
+[clinic start generated code]*/
static PyObject *
-posix_setxattr(PyObject *self, PyObject *args, PyObject *kwargs)
+os_setxattr_impl(PyModuleDef *module, path_t *path, path_t *attribute,
+ Py_buffer *value, int flags, int follow_symlinks)
+/*[clinic end generated code: output=1b395ef82880fea0 input=f0d26833992015c2]*/
{
- path_t path;
- path_t attribute;
- Py_buffer value;
- int flags = 0;
- int follow_symlinks = 1;
- int result;
- PyObject *return_value = NULL;
- static char *keywords[] = {"path", "attribute", "value",
- "flags", "follow_symlinks", NULL};
+ ssize_t result;
- memset(&path, 0, sizeof(path));
- path.function_name = "setxattr";
- path.allow_fd = 1;
- memset(&attribute, 0, sizeof(attribute));
- memset(&value, 0, sizeof(value));
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&y*|i$p:setxattr",
- keywords,
- path_converter, &path,
- path_converter, &attribute,
- &value, &flags,
- &follow_symlinks))
+ if (fd_and_follow_symlinks_invalid("setxattr", path->fd, follow_symlinks))
return NULL;
- if (fd_and_follow_symlinks_invalid("setxattr", path.fd, follow_symlinks))
- goto exit;
-
Py_BEGIN_ALLOW_THREADS;
- if (path.fd > -1)
- result = fsetxattr(path.fd, attribute.narrow,
- value.buf, value.len, flags);
+ if (path->fd > -1)
+ result = fsetxattr(path->fd, attribute->narrow,
+ value->buf, value->len, flags);
else if (follow_symlinks)
- result = setxattr(path.narrow, attribute.narrow,
- value.buf, value.len, flags);
+ result = setxattr(path->narrow, attribute->narrow,
+ value->buf, value->len, flags);
else
- result = lsetxattr(path.narrow, attribute.narrow,
- value.buf, value.len, flags);
+ result = lsetxattr(path->narrow, attribute->narrow,
+ value->buf, value->len, flags);
Py_END_ALLOW_THREADS;
if (result) {
- return_value = path_error(&path);
- goto exit;
+ path_error(path);
+ return NULL;
}
- return_value = Py_None;
- Py_INCREF(return_value);
+ Py_RETURN_NONE;
+}
-exit:
- path_cleanup(&path);
- path_cleanup(&attribute);
- PyBuffer_Release(&value);
- return return_value;
-}
+/*[clinic input]
+os.removexattr
+
+ path: path_t(allow_fd=True)
+ attribute: path_t
+ *
+ follow_symlinks: bool = True
-PyDoc_STRVAR(posix_removexattr__doc__,
-"removexattr(path, attribute, *, follow_symlinks=True)\n\n\
-Remove extended attribute attribute on path.\n\
-path may be either a string or an open file descriptor.\n\
-If follow_symlinks is False, and the last element of the path is a symbolic\n\
- link, removexattr will modify the symbolic link itself instead of the file\n\
- the link points to.");
+Remove extended attribute attribute on path.
+
+path may be either a string or an open file descriptor.
+If follow_symlinks is False, and the last element of the path is a symbolic
+ link, removexattr will modify the symbolic link itself instead of the file
+ the link points to.
+
+[clinic start generated code]*/
static PyObject *
-posix_removexattr(PyObject *self, PyObject *args, PyObject *kwargs)
+os_removexattr_impl(PyModuleDef *module, path_t *path, path_t *attribute,
+ int follow_symlinks)
+/*[clinic end generated code: output=f92bb39ab992650d input=cdb54834161e3329]*/
{
- path_t path;
- path_t attribute;
- int follow_symlinks = 1;
- int result;
- PyObject *return_value = NULL;
- static char *keywords[] = {"path", "attribute", "follow_symlinks", NULL};
+ ssize_t result;
- memset(&path, 0, sizeof(path));
- path.function_name = "removexattr";
- memset(&attribute, 0, sizeof(attribute));
- attribute.function_name = "removexattr";
- path.allow_fd = 1;
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&|$p:removexattr",
- keywords,
- path_converter, &path,
- path_converter, &attribute,
- &follow_symlinks))
+ if (fd_and_follow_symlinks_invalid("removexattr", path->fd, follow_symlinks))
return NULL;
- if (fd_and_follow_symlinks_invalid("removexattr", path.fd, follow_symlinks))
- goto exit;
-
Py_BEGIN_ALLOW_THREADS;
- if (path.fd > -1)
- result = fremovexattr(path.fd, attribute.narrow);
+ if (path->fd > -1)
+ result = fremovexattr(path->fd, attribute->narrow);
else if (follow_symlinks)
- result = removexattr(path.narrow, attribute.narrow);
+ result = removexattr(path->narrow, attribute->narrow);
else
- result = lremovexattr(path.narrow, attribute.narrow);
+ result = lremovexattr(path->narrow, attribute->narrow);
Py_END_ALLOW_THREADS;
if (result) {
- return_value = path_error(&path);
- goto exit;
+ return path_error(path);
}
- return_value = Py_None;
- Py_INCREF(return_value);
+ Py_RETURN_NONE;
+}
-exit:
- path_cleanup(&path);
- path_cleanup(&attribute);
- return return_value;
-}
+/*[clinic input]
+os.listxattr
-PyDoc_STRVAR(posix_listxattr__doc__,
-"listxattr(path='.', *, follow_symlinks=True)\n\n\
-Return a list of extended attributes on path.\n\
-\n\
-path may be either None, a string, or an open file descriptor.\n\
-if path is None, listxattr will examine the current directory.\n\
-If follow_symlinks is False, and the last element of the path is a symbolic\n\
- link, listxattr will examine the symbolic link itself instead of the file\n\
- the link points to.");
+ path: path_t(allow_fd=True, nullable=True) = None
+ *
+ follow_symlinks: bool = True
+
+Return a list of extended attributes on path.
+
+path may be either None, a string, or an open file descriptor.
+if path is None, listxattr will examine the current directory.
+If follow_symlinks is False, and the last element of the path is a symbolic
+ link, listxattr will examine the symbolic link itself instead of the file
+ the link points to.
+[clinic start generated code]*/
static PyObject *
-posix_listxattr(PyObject *self, PyObject *args, PyObject *kwargs)
+os_listxattr_impl(PyModuleDef *module, path_t *path, int follow_symlinks)
+/*[clinic end generated code: output=a87ad6ce56e42a4f input=08cca53ac0b07c13]*/
{
- path_t path;
- int follow_symlinks = 1;
Py_ssize_t i;
PyObject *result = NULL;
+ const char *name;
char *buffer = NULL;
- char *name;
- static char *keywords[] = {"path", "follow_symlinks", NULL};
- memset(&path, 0, sizeof(path));
- path.function_name = "listxattr";
- path.allow_fd = 1;
- path.fd = -1;
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|O&$p:listxattr", keywords,
- path_converter, &path,
- &follow_symlinks))
- return NULL;
-
- if (fd_and_follow_symlinks_invalid("listxattr", path.fd, follow_symlinks))
+ if (fd_and_follow_symlinks_invalid("listxattr", path->fd, follow_symlinks))
goto exit;
- name = path.narrow ? path.narrow : ".";
+ name = path->narrow ? path->narrow : ".";
+
for (i = 0; ; i++) {
char *start, *trace, *end;
ssize_t length;
@@ -10866,7 +10991,7 @@ posix_listxattr(PyObject *self, PyObject *args, PyObject *kwargs)
Py_ssize_t buffer_size = buffer_sizes[i];
if (!buffer_size) {
/* ERANGE */
- path_error(&path);
+ path_error(path);
break;
}
buffer = PyMem_MALLOC(buffer_size);
@@ -10876,8 +11001,8 @@ posix_listxattr(PyObject *self, PyObject *args, PyObject *kwargs)
}
Py_BEGIN_ALLOW_THREADS;
- if (path.fd > -1)
- length = flistxattr(path.fd, buffer, buffer_size);
+ if (path->fd > -1)
+ length = flistxattr(path->fd, buffer, buffer_size);
else if (follow_symlinks)
length = listxattr(name, buffer, buffer_size);
else
@@ -10890,7 +11015,7 @@ posix_listxattr(PyObject *self, PyObject *args, PyObject *kwargs)
buffer = NULL;
continue;
}
- path_error(&path);
+ path_error(path);
break;
}
@@ -10923,43 +11048,43 @@ posix_listxattr(PyObject *self, PyObject *args, PyObject *kwargs)
break;
}
exit:
- path_cleanup(&path);
if (buffer)
PyMem_FREE(buffer);
return result;
}
-
#endif /* USE_XATTRS */
-PyDoc_STRVAR(posix_urandom__doc__,
-"urandom(n) -> str\n\n\
-Return n random bytes suitable for cryptographic use.");
+/*[clinic input]
+os.urandom
+
+ size: Py_ssize_t
+ /
+
+Return a bytes object containing random bytes suitable for cryptographic use.
+[clinic start generated code]*/
static PyObject *
-posix_urandom(PyObject *self, PyObject *args)
+os_urandom_impl(PyModuleDef *module, Py_ssize_t size)
+/*[clinic end generated code: output=e0011f021501f03b input=4067cdb1b6776c29]*/
{
- Py_ssize_t size;
- PyObject *result;
- int ret;
+ PyObject *bytes;
+ int result;
- /* Read arguments */
- if (!PyArg_ParseTuple(args, "n:urandom", &size))
- return NULL;
if (size < 0)
return PyErr_Format(PyExc_ValueError,
"negative argument not allowed");
- result = PyBytes_FromStringAndSize(NULL, size);
- if (result == NULL)
+ bytes = PyBytes_FromStringAndSize(NULL, size);
+ if (bytes == NULL)
return NULL;
- ret = _PyOS_URandom(PyBytes_AS_STRING(result),
- PyBytes_GET_SIZE(result));
- if (ret == -1) {
- Py_DECREF(result);
+ result = _PyOS_URandom(PyBytes_AS_STRING(bytes),
+ PyBytes_GET_SIZE(bytes));
+ if (result == -1) {
+ Py_DECREF(bytes);
return NULL;
}
- return result;
+ return bytes;
}
/* Terminal size querying */
@@ -10983,6 +11108,7 @@ static PyStructSequence_Desc TerminalSize_desc = {
};
#if defined(TERMSIZE_USE_CONIO) || defined(TERMSIZE_USE_IOCTL)
+/* AC 3.5: fd should accept None */
PyDoc_STRVAR(termsize__doc__,
"Return the size of the terminal window as (columns, lines).\n" \
"\n" \
@@ -11068,13 +11194,16 @@ get_terminal_size(PyObject *self, PyObject *args)
}
#endif /* defined(TERMSIZE_USE_CONIO) || defined(TERMSIZE_USE_IOCTL) */
-PyDoc_STRVAR(posix_cpu_count__doc__,
-"cpu_count() -> integer\n\n\
-Return the number of CPUs in the system, or None if this value cannot be\n\
-established.");
+
+/*[clinic input]
+os.cpu_count
+
+Return the number of CPUs in the system; return None if indeterminable.
+[clinic start generated code]*/
static PyObject *
-posix_cpu_count(PyObject *self)
+os_cpu_count_impl(PyModuleDef *module)
+/*[clinic end generated code: output=c59ee7f6bce832b8 input=d55e2f8f3823a628]*/
{
int ncpu = 0;
#ifdef MS_WINDOWS
@@ -11103,111 +11232,943 @@ posix_cpu_count(PyObject *self)
Py_RETURN_NONE;
}
-PyDoc_STRVAR(get_inheritable__doc__,
- "get_inheritable(fd) -> bool\n" \
+
+/*[clinic input]
+os.get_inheritable -> bool
+
+ fd: int
+ /
+
+Get the close-on-exe flag of the specified file descriptor.
+[clinic start generated code]*/
+
+static int
+os_get_inheritable_impl(PyModuleDef *module, int fd)
+/*[clinic end generated code: output=36110bb36efaa21e input=89ac008dc9ab6b95]*/
+{
+ int return_value;
+ if (!_PyVerify_fd(fd)) {
+ posix_error();
+ return -1;
+ }
+
+ _Py_BEGIN_SUPPRESS_IPH
+ return_value = _Py_get_inheritable(fd);
+ _Py_END_SUPPRESS_IPH
+ return return_value;
+}
+
+
+/*[clinic input]
+os.set_inheritable
+ fd: int
+ inheritable: int
+ /
+
+Set the inheritable flag of the specified file descriptor.
+[clinic start generated code]*/
+
+static PyObject *
+os_set_inheritable_impl(PyModuleDef *module, int fd, int inheritable)
+/*[clinic end generated code: output=2ac5c6ce8623f045 input=9ceaead87a1e2402]*/
+{
+ int result;
+ if (!_PyVerify_fd(fd))
+ return posix_error();
+
+ _Py_BEGIN_SUPPRESS_IPH
+ result = _Py_set_inheritable(fd, inheritable, NULL);
+ _Py_END_SUPPRESS_IPH
+ if (result < 0)
+ return NULL;
+ Py_RETURN_NONE;
+}
+
+
+#ifdef MS_WINDOWS
+/*[clinic input]
+os.get_handle_inheritable -> bool
+ handle: Py_intptr_t
+ /
+
+Get the close-on-exe flag of the specified file descriptor.
+[clinic start generated code]*/
+
+static int
+os_get_handle_inheritable_impl(PyModuleDef *module, Py_intptr_t handle)
+/*[clinic end generated code: output=3b7b3e1b43f312b6 input=5f7759443aae3dc5]*/
+{
+ DWORD flags;
+
+ if (!GetHandleInformation((HANDLE)handle, &flags)) {
+ PyErr_SetFromWindowsErr(0);
+ return -1;
+ }
+
+ return flags & HANDLE_FLAG_INHERIT;
+}
+
+
+/*[clinic input]
+os.set_handle_inheritable
+ handle: Py_intptr_t
+ inheritable: bool
+ /
+
+Set the inheritable flag of the specified handle.
+[clinic start generated code]*/
+
+static PyObject *
+os_set_handle_inheritable_impl(PyModuleDef *module, Py_intptr_t handle,
+ int inheritable)
+/*[clinic end generated code: output=d2e111a96c9eb296 input=e64b2b2730469def]*/
+{
+ DWORD flags = inheritable ? HANDLE_FLAG_INHERIT : 0;
+ if (!SetHandleInformation((HANDLE)handle, HANDLE_FLAG_INHERIT, flags)) {
+ PyErr_SetFromWindowsErr(0);
+ return NULL;
+ }
+ Py_RETURN_NONE;
+}
+#endif /* MS_WINDOWS */
+
+#ifndef MS_WINDOWS
+PyDoc_STRVAR(get_blocking__doc__,
+ "get_blocking(fd) -> bool\n" \
"\n" \
- "Get the close-on-exe flag of the specified file descriptor.");
+ "Get the blocking mode of the file descriptor:\n" \
+ "False if the O_NONBLOCK flag is set, True if the flag is cleared.");
static PyObject*
-posix_get_inheritable(PyObject *self, PyObject *args)
+posix_get_blocking(PyObject *self, PyObject *args)
{
int fd;
- int inheritable;
+ int blocking;
- if (!PyArg_ParseTuple(args, "i:get_inheritable", &fd))
+ if (!PyArg_ParseTuple(args, "i:get_blocking", &fd))
return NULL;
if (!_PyVerify_fd(fd))
return posix_error();
- inheritable = _Py_get_inheritable(fd);
- if (inheritable < 0)
+ _Py_BEGIN_SUPPRESS_IPH
+ blocking = _Py_get_blocking(fd);
+ _Py_END_SUPPRESS_IPH
+ if (blocking < 0)
return NULL;
- return PyBool_FromLong(inheritable);
+ return PyBool_FromLong(blocking);
}
-PyDoc_STRVAR(set_inheritable__doc__,
- "set_inheritable(fd, inheritable)\n" \
+PyDoc_STRVAR(set_blocking__doc__,
+ "set_blocking(fd, blocking)\n" \
"\n" \
- "Set the inheritable flag of the specified file descriptor.");
+ "Set the blocking mode of the specified file descriptor.\n" \
+ "Set the O_NONBLOCK flag if blocking is False,\n" \
+ "clear the O_NONBLOCK flag otherwise.");
static PyObject*
-posix_set_inheritable(PyObject *self, PyObject *args)
+posix_set_blocking(PyObject *self, PyObject *args)
{
- int fd, inheritable;
+ int fd, blocking, result;
- if (!PyArg_ParseTuple(args, "ii:set_inheritable", &fd, &inheritable))
+ if (!PyArg_ParseTuple(args, "ii:set_blocking", &fd, &blocking))
return NULL;
if (!_PyVerify_fd(fd))
return posix_error();
- if (_Py_set_inheritable(fd, inheritable, NULL) < 0)
+ _Py_BEGIN_SUPPRESS_IPH
+ result = _Py_set_blocking(fd, blocking);
+ _Py_END_SUPPRESS_IPH
+ if (result < 0)
return NULL;
Py_RETURN_NONE;
}
+#endif /* !MS_WINDOWS */
+
+
+PyDoc_STRVAR(posix_scandir__doc__,
+"scandir(path='.') -> iterator of DirEntry objects for given path");
+static char *follow_symlinks_keywords[] = {"follow_symlinks", NULL};
+typedef struct {
+ PyObject_HEAD
+ PyObject *name;
+ PyObject *path;
+ PyObject *stat;
+ PyObject *lstat;
#ifdef MS_WINDOWS
-PyDoc_STRVAR(get_handle_inheritable__doc__,
- "get_handle_inheritable(fd) -> bool\n" \
- "\n" \
- "Get the close-on-exe flag of the specified file descriptor.");
+ struct _Py_stat_struct win32_lstat;
+ __int64 win32_file_index;
+ int got_file_index;
+#else /* POSIX */
+#ifdef HAVE_DIRENT_D_TYPE
+ unsigned char d_type;
+#endif
+ ino_t d_ino;
+#endif
+} DirEntry;
-static PyObject*
-posix_get_handle_inheritable(PyObject *self, PyObject *args)
+static void
+DirEntry_dealloc(DirEntry *entry)
{
- Py_intptr_t handle;
- DWORD flags;
+ Py_XDECREF(entry->name);
+ Py_XDECREF(entry->path);
+ Py_XDECREF(entry->stat);
+ Py_XDECREF(entry->lstat);
+ Py_TYPE(entry)->tp_free((PyObject *)entry);
+}
+
+/* Forward reference */
+static int
+DirEntry_test_mode(DirEntry *self, int follow_symlinks, unsigned short mode_bits);
- if (!PyArg_ParseTuple(args, _Py_PARSE_INTPTR ":get_handle_inheritable", &handle))
+/* Set exception and return -1 on error, 0 for False, 1 for True */
+static int
+DirEntry_is_symlink(DirEntry *self)
+{
+#ifdef MS_WINDOWS
+ return (self->win32_lstat.st_mode & S_IFMT) == S_IFLNK;
+#elif defined(HAVE_DIRENT_D_TYPE)
+ /* POSIX */
+ if (self->d_type != DT_UNKNOWN)
+ return self->d_type == DT_LNK;
+ else
+ return DirEntry_test_mode(self, 0, S_IFLNK);
+#else
+ /* POSIX without d_type */
+ return DirEntry_test_mode(self, 0, S_IFLNK);
+#endif
+}
+
+static PyObject *
+DirEntry_py_is_symlink(DirEntry *self)
+{
+ int result;
+
+ result = DirEntry_is_symlink(self);
+ if (result == -1)
return NULL;
+ return PyBool_FromLong(result);
+}
- if (!GetHandleInformation((HANDLE)handle, &flags)) {
- PyErr_SetFromWindowsErr(0);
+static PyObject *
+DirEntry_fetch_stat(DirEntry *self, int follow_symlinks)
+{
+ int result;
+ struct _Py_stat_struct st;
+
+#ifdef MS_WINDOWS
+ wchar_t *path;
+
+ path = PyUnicode_AsUnicode(self->path);
+ if (!path)
return NULL;
+
+ if (follow_symlinks)
+ result = win32_stat_w(path, &st);
+ else
+ result = win32_lstat_w(path, &st);
+
+ if (result != 0) {
+ return PyErr_SetExcFromWindowsErrWithFilenameObject(PyExc_OSError,
+ 0, self->path);
}
+#else /* POSIX */
+ PyObject *bytes;
+ char *path;
- return PyBool_FromLong(flags & HANDLE_FLAG_INHERIT);
+ if (!PyUnicode_FSConverter(self->path, &bytes))
+ return NULL;
+ path = PyBytes_AS_STRING(bytes);
+
+ if (follow_symlinks)
+ result = STAT(path, &st);
+ else
+ result = LSTAT(path, &st);
+ Py_DECREF(bytes);
+
+ if (result != 0)
+ return PyErr_SetFromErrnoWithFilenameObject(PyExc_OSError, self->path);
+#endif
+
+ return _pystat_fromstructstat(&st);
}
-PyDoc_STRVAR(set_handle_inheritable__doc__,
- "set_handle_inheritable(fd, inheritable)\n" \
- "\n" \
- "Set the inheritable flag of the specified handle.");
+static PyObject *
+DirEntry_get_lstat(DirEntry *self)
+{
+ if (!self->lstat) {
+#ifdef MS_WINDOWS
+ self->lstat = _pystat_fromstructstat(&self->win32_lstat);
+#else /* POSIX */
+ self->lstat = DirEntry_fetch_stat(self, 0);
+#endif
+ }
+ Py_XINCREF(self->lstat);
+ return self->lstat;
+}
-static PyObject*
-posix_set_handle_inheritable(PyObject *self, PyObject *args)
+static PyObject *
+DirEntry_get_stat(DirEntry *self, int follow_symlinks)
{
- int inheritable = 1;
- Py_intptr_t handle;
- DWORD flags;
+ if (!follow_symlinks)
+ return DirEntry_get_lstat(self);
- if (!PyArg_ParseTuple(args, _Py_PARSE_INTPTR "i:set_handle_inheritable",
- &handle, &inheritable))
+ if (!self->stat) {
+ int result = DirEntry_is_symlink(self);
+ if (result == -1)
+ return NULL;
+ else if (result)
+ self->stat = DirEntry_fetch_stat(self, 1);
+ else
+ self->stat = DirEntry_get_lstat(self);
+ }
+
+ Py_XINCREF(self->stat);
+ return self->stat;
+}
+
+static PyObject *
+DirEntry_stat(DirEntry *self, PyObject *args, PyObject *kwargs)
+{
+ int follow_symlinks = 1;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|$p:DirEntry.stat",
+ follow_symlinks_keywords, &follow_symlinks))
return NULL;
- if (inheritable)
- flags = HANDLE_FLAG_INHERIT;
- else
- flags = 0;
- if (!SetHandleInformation((HANDLE)handle, HANDLE_FLAG_INHERIT, flags)) {
- PyErr_SetFromWindowsErr(0);
+ return DirEntry_get_stat(self, follow_symlinks);
+}
+
+/* Set exception and return -1 on error, 0 for False, 1 for True */
+static int
+DirEntry_test_mode(DirEntry *self, int follow_symlinks, unsigned short mode_bits)
+{
+ PyObject *stat = NULL;
+ PyObject *st_mode = NULL;
+ long mode;
+ int result;
+#if defined(MS_WINDOWS) || defined(HAVE_DIRENT_D_TYPE)
+ int is_symlink;
+ int need_stat;
+#endif
+#ifdef MS_WINDOWS
+ unsigned long dir_bits;
+#endif
+ _Py_IDENTIFIER(st_mode);
+
+#ifdef MS_WINDOWS
+ is_symlink = (self->win32_lstat.st_mode & S_IFMT) == S_IFLNK;
+ need_stat = follow_symlinks && is_symlink;
+#elif defined(HAVE_DIRENT_D_TYPE)
+ is_symlink = self->d_type == DT_LNK;
+ need_stat = self->d_type == DT_UNKNOWN || (follow_symlinks && is_symlink);
+#endif
+
+#if defined(MS_WINDOWS) || defined(HAVE_DIRENT_D_TYPE)
+ if (need_stat) {
+#endif
+ stat = DirEntry_get_stat(self, follow_symlinks);
+ if (!stat) {
+ if (PyErr_ExceptionMatches(PyExc_FileNotFoundError)) {
+ /* If file doesn't exist (anymore), then return False
+ (i.e., say it's not a file/directory) */
+ PyErr_Clear();
+ return 0;
+ }
+ goto error;
+ }
+ st_mode = _PyObject_GetAttrId(stat, &PyId_st_mode);
+ if (!st_mode)
+ goto error;
+
+ mode = PyLong_AsLong(st_mode);
+ if (mode == -1 && PyErr_Occurred())
+ goto error;
+ Py_CLEAR(st_mode);
+ Py_CLEAR(stat);
+ result = (mode & S_IFMT) == mode_bits;
+#if defined(MS_WINDOWS) || defined(HAVE_DIRENT_D_TYPE)
+ }
+ else if (is_symlink) {
+ assert(mode_bits != S_IFLNK);
+ result = 0;
+ }
+ else {
+ assert(mode_bits == S_IFDIR || mode_bits == S_IFREG);
+#ifdef MS_WINDOWS
+ dir_bits = self->win32_lstat.st_file_attributes & FILE_ATTRIBUTE_DIRECTORY;
+ if (mode_bits == S_IFDIR)
+ result = dir_bits != 0;
+ else
+ result = dir_bits == 0;
+#else /* POSIX */
+ if (mode_bits == S_IFDIR)
+ result = self->d_type == DT_DIR;
+ else
+ result = self->d_type == DT_REG;
+#endif
+ }
+#endif
+
+ return result;
+
+error:
+ Py_XDECREF(st_mode);
+ Py_XDECREF(stat);
+ return -1;
+}
+
+static PyObject *
+DirEntry_py_test_mode(DirEntry *self, int follow_symlinks, unsigned short mode_bits)
+{
+ int result;
+
+ result = DirEntry_test_mode(self, follow_symlinks, mode_bits);
+ if (result == -1)
+ return NULL;
+ return PyBool_FromLong(result);
+}
+
+static PyObject *
+DirEntry_is_dir(DirEntry *self, PyObject *args, PyObject *kwargs)
+{
+ int follow_symlinks = 1;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|$p:DirEntry.is_dir",
+ follow_symlinks_keywords, &follow_symlinks))
return NULL;
+
+ return DirEntry_py_test_mode(self, follow_symlinks, S_IFDIR);
+}
+
+static PyObject *
+DirEntry_is_file(DirEntry *self, PyObject *args, PyObject *kwargs)
+{
+ int follow_symlinks = 1;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|$p:DirEntry.is_file",
+ follow_symlinks_keywords, &follow_symlinks))
+ return NULL;
+
+ return DirEntry_py_test_mode(self, follow_symlinks, S_IFREG);
+}
+
+static PyObject *
+DirEntry_inode(DirEntry *self)
+{
+#ifdef MS_WINDOWS
+ if (!self->got_file_index) {
+ wchar_t *path;
+ struct _Py_stat_struct stat;
+
+ path = PyUnicode_AsUnicode(self->path);
+ if (!path)
+ return NULL;
+
+ if (win32_lstat_w(path, &stat) != 0) {
+ return PyErr_SetExcFromWindowsErrWithFilenameObject(PyExc_OSError,
+ 0, self->path);
+ }
+
+ self->win32_file_index = stat.st_ino;
+ self->got_file_index = 1;
}
- Py_RETURN_NONE;
+ return PyLong_FromLongLong((PY_LONG_LONG)self->win32_file_index);
+#else /* POSIX */
+#ifdef HAVE_LARGEFILE_SUPPORT
+ return PyLong_FromLongLong((PY_LONG_LONG)self->d_ino);
+#else
+ return PyLong_FromLong((long)self->d_ino);
+#endif
+#endif
+}
+
+static PyObject *
+DirEntry_repr(DirEntry *self)
+{
+ return PyUnicode_FromFormat("<DirEntry %R>", self->name);
}
-#endif /* MS_WINDOWS */
+static PyMemberDef DirEntry_members[] = {
+ {"name", T_OBJECT_EX, offsetof(DirEntry, name), READONLY,
+ "the entry's base filename, relative to scandir() \"path\" argument"},
+ {"path", T_OBJECT_EX, offsetof(DirEntry, path), READONLY,
+ "the entry's full path name; equivalent to os.path.join(scandir_path, entry.name)"},
+ {NULL}
+};
+
+static PyMethodDef DirEntry_methods[] = {
+ {"is_dir", (PyCFunction)DirEntry_is_dir, METH_VARARGS | METH_KEYWORDS,
+ "return True if the entry is a directory; cached per entry"
+ },
+ {"is_file", (PyCFunction)DirEntry_is_file, METH_VARARGS | METH_KEYWORDS,
+ "return True if the entry is a file; cached per entry"
+ },
+ {"is_symlink", (PyCFunction)DirEntry_py_is_symlink, METH_NOARGS,
+ "return True if the entry is a symbolic link; cached per entry"
+ },
+ {"stat", (PyCFunction)DirEntry_stat, METH_VARARGS | METH_KEYWORDS,
+ "return stat_result object for the entry; cached per entry"
+ },
+ {"inode", (PyCFunction)DirEntry_inode, METH_NOARGS,
+ "return inode of the entry; cached per entry",
+ },
+ {NULL}
+};
+
+static PyTypeObject DirEntryType = {
+ PyVarObject_HEAD_INIT(NULL, 0)
+ MODNAME ".DirEntry", /* tp_name */
+ sizeof(DirEntry), /* tp_basicsize */
+ 0, /* tp_itemsize */
+ /* methods */
+ (destructor)DirEntry_dealloc, /* tp_dealloc */
+ 0, /* tp_print */
+ 0, /* tp_getattr */
+ 0, /* tp_setattr */
+ 0, /* tp_compare */
+ (reprfunc)DirEntry_repr, /* tp_repr */
+ 0, /* tp_as_number */
+ 0, /* tp_as_sequence */
+ 0, /* tp_as_mapping */
+ 0, /* tp_hash */
+ 0, /* tp_call */
+ 0, /* tp_str */
+ 0, /* tp_getattro */
+ 0, /* tp_setattro */
+ 0, /* tp_as_buffer */
+ Py_TPFLAGS_DEFAULT, /* tp_flags */
+ 0, /* tp_doc */
+ 0, /* tp_traverse */
+ 0, /* tp_clear */
+ 0, /* tp_richcompare */
+ 0, /* tp_weaklistoffset */
+ 0, /* tp_iter */
+ 0, /* tp_iternext */
+ DirEntry_methods, /* tp_methods */
+ DirEntry_members, /* tp_members */
+};
+
+#ifdef MS_WINDOWS
+
+static wchar_t *
+join_path_filenameW(wchar_t *path_wide, wchar_t* filename)
+{
+ Py_ssize_t path_len;
+ Py_ssize_t size;
+ wchar_t *result;
+ wchar_t ch;
+
+ if (!path_wide) { /* Default arg: "." */
+ path_wide = L".";
+ path_len = 1;
+ }
+ else {
+ path_len = wcslen(path_wide);
+ }
+
+ /* The +1's are for the path separator and the NUL */
+ size = path_len + 1 + wcslen(filename) + 1;
+ result = PyMem_New(wchar_t, size);
+ if (!result) {
+ PyErr_NoMemory();
+ return NULL;
+ }
+ wcscpy(result, path_wide);
+ if (path_len > 0) {
+ ch = result[path_len - 1];
+ if (ch != SEP && ch != ALTSEP && ch != L':')
+ result[path_len++] = SEP;
+ wcscpy(result + path_len, filename);
+ }
+ return result;
+}
+
+static PyObject *
+DirEntry_from_find_data(path_t *path, WIN32_FIND_DATAW *dataW)
+{
+ DirEntry *entry;
+ BY_HANDLE_FILE_INFORMATION file_info;
+ ULONG reparse_tag;
+ wchar_t *joined_path;
+
+ entry = PyObject_New(DirEntry, &DirEntryType);
+ if (!entry)
+ return NULL;
+ entry->name = NULL;
+ entry->path = NULL;
+ entry->stat = NULL;
+ entry->lstat = NULL;
+ entry->got_file_index = 0;
+
+ entry->name = PyUnicode_FromWideChar(dataW->cFileName, -1);
+ if (!entry->name)
+ goto error;
+
+ joined_path = join_path_filenameW(path->wide, dataW->cFileName);
+ if (!joined_path)
+ goto error;
+
+ entry->path = PyUnicode_FromWideChar(joined_path, -1);
+ PyMem_Free(joined_path);
+ if (!entry->path)
+ goto error;
+
+ find_data_to_file_info_w(dataW, &file_info, &reparse_tag);
+ _Py_attribute_data_to_stat(&file_info, reparse_tag, &entry->win32_lstat);
+
+ return (PyObject *)entry;
+
+error:
+ Py_DECREF(entry);
+ return NULL;
+}
+
+#else /* POSIX */
+
+static char *
+join_path_filename(char *path_narrow, char* filename, Py_ssize_t filename_len)
+{
+ Py_ssize_t path_len;
+ Py_ssize_t size;
+ char *result;
+
+ if (!path_narrow) { /* Default arg: "." */
+ path_narrow = ".";
+ path_len = 1;
+ }
+ else {
+ path_len = strlen(path_narrow);
+ }
+
+ if (filename_len == -1)
+ filename_len = strlen(filename);
+
+ /* The +1's are for the path separator and the NUL */
+ size = path_len + 1 + filename_len + 1;
+ result = PyMem_New(char, size);
+ if (!result) {
+ PyErr_NoMemory();
+ return NULL;
+ }
+ strcpy(result, path_narrow);
+ if (path_len > 0 && result[path_len - 1] != '/')
+ result[path_len++] = '/';
+ strcpy(result + path_len, filename);
+ return result;
+}
+
+static PyObject *
+DirEntry_from_posix_info(path_t *path, char *name, Py_ssize_t name_len,
+ ino_t d_ino
+#ifdef HAVE_DIRENT_D_TYPE
+ , unsigned char d_type
+#endif
+ )
+{
+ DirEntry *entry;
+ char *joined_path;
+
+ entry = PyObject_New(DirEntry, &DirEntryType);
+ if (!entry)
+ return NULL;
+ entry->name = NULL;
+ entry->path = NULL;
+ entry->stat = NULL;
+ entry->lstat = NULL;
+
+ joined_path = join_path_filename(path->narrow, name, name_len);
+ if (!joined_path)
+ goto error;
+
+ if (!path->narrow || !PyBytes_Check(path->object)) {
+ entry->name = PyUnicode_DecodeFSDefaultAndSize(name, name_len);
+ entry->path = PyUnicode_DecodeFSDefault(joined_path);
+ }
+ else {
+ entry->name = PyBytes_FromStringAndSize(name, name_len);
+ entry->path = PyBytes_FromString(joined_path);
+ }
+ PyMem_Free(joined_path);
+ if (!entry->name || !entry->path)
+ goto error;
+
+#ifdef HAVE_DIRENT_D_TYPE
+ entry->d_type = d_type;
+#endif
+ entry->d_ino = d_ino;
+
+ return (PyObject *)entry;
+
+error:
+ Py_XDECREF(entry);
+ return NULL;
+}
+
+#endif
+
+
+typedef struct {
+ PyObject_HEAD
+ path_t path;
+#ifdef MS_WINDOWS
+ HANDLE handle;
+ WIN32_FIND_DATAW file_data;
+ int first_time;
+#else /* POSIX */
+ DIR *dirp;
+#endif
+} ScandirIterator;
+
+#ifdef MS_WINDOWS
+
+static void
+ScandirIterator_close(ScandirIterator *iterator)
+{
+ if (iterator->handle == INVALID_HANDLE_VALUE)
+ return;
+
+ Py_BEGIN_ALLOW_THREADS
+ FindClose(iterator->handle);
+ Py_END_ALLOW_THREADS
+ iterator->handle = INVALID_HANDLE_VALUE;
+}
+
+static PyObject *
+ScandirIterator_iternext(ScandirIterator *iterator)
+{
+ WIN32_FIND_DATAW *file_data = &iterator->file_data;
+ BOOL success;
+
+ /* Happens if the iterator is iterated twice */
+ if (iterator->handle == INVALID_HANDLE_VALUE) {
+ PyErr_SetNone(PyExc_StopIteration);
+ return NULL;
+ }
+
+ while (1) {
+ if (!iterator->first_time) {
+ Py_BEGIN_ALLOW_THREADS
+ success = FindNextFileW(iterator->handle, file_data);
+ Py_END_ALLOW_THREADS
+ if (!success) {
+ if (GetLastError() != ERROR_NO_MORE_FILES)
+ return path_error(&iterator->path);
+ /* No more files found in directory, stop iterating */
+ break;
+ }
+ }
+ iterator->first_time = 0;
+
+ /* Skip over . and .. */
+ if (wcscmp(file_data->cFileName, L".") != 0 &&
+ wcscmp(file_data->cFileName, L"..") != 0)
+ return DirEntry_from_find_data(&iterator->path, file_data);
+
+ /* Loop till we get a non-dot directory or finish iterating */
+ }
+
+ ScandirIterator_close(iterator);
+
+ PyErr_SetNone(PyExc_StopIteration);
+ return NULL;
+}
+
+#else /* POSIX */
+
+static void
+ScandirIterator_close(ScandirIterator *iterator)
+{
+ if (!iterator->dirp)
+ return;
+
+ Py_BEGIN_ALLOW_THREADS
+ closedir(iterator->dirp);
+ Py_END_ALLOW_THREADS
+ iterator->dirp = NULL;
+ return;
+}
+
+static PyObject *
+ScandirIterator_iternext(ScandirIterator *iterator)
+{
+ struct dirent *direntp;
+ Py_ssize_t name_len;
+ int is_dot;
+
+ /* Happens if the iterator is iterated twice */
+ if (!iterator->dirp) {
+ PyErr_SetNone(PyExc_StopIteration);
+ return NULL;
+ }
+
+ while (1) {
+ errno = 0;
+ Py_BEGIN_ALLOW_THREADS
+ direntp = readdir(iterator->dirp);
+ Py_END_ALLOW_THREADS
+
+ if (!direntp) {
+ if (errno != 0)
+ return path_error(&iterator->path);
+ /* No more files found in directory, stop iterating */
+ break;
+ }
+
+ /* Skip over . and .. */
+ name_len = NAMLEN(direntp);
+ is_dot = direntp->d_name[0] == '.' &&
+ (name_len == 1 || (direntp->d_name[1] == '.' && name_len == 2));
+ if (!is_dot) {
+ return DirEntry_from_posix_info(&iterator->path, direntp->d_name,
+ name_len, direntp->d_ino
+#ifdef HAVE_DIRENT_D_TYPE
+ , direntp->d_type
+#endif
+ );
+ }
+
+ /* Loop till we get a non-dot directory or finish iterating */
+ }
+
+ ScandirIterator_close(iterator);
+
+ PyErr_SetNone(PyExc_StopIteration);
+ return NULL;
+}
+
+#endif
+
+static void
+ScandirIterator_dealloc(ScandirIterator *iterator)
+{
+ ScandirIterator_close(iterator);
+ Py_XDECREF(iterator->path.object);
+ path_cleanup(&iterator->path);
+ Py_TYPE(iterator)->tp_free((PyObject *)iterator);
+}
+
+static PyTypeObject ScandirIteratorType = {
+ PyVarObject_HEAD_INIT(NULL, 0)
+ MODNAME ".ScandirIterator", /* tp_name */
+ sizeof(ScandirIterator), /* tp_basicsize */
+ 0, /* tp_itemsize */
+ /* methods */
+ (destructor)ScandirIterator_dealloc, /* tp_dealloc */
+ 0, /* tp_print */
+ 0, /* tp_getattr */
+ 0, /* tp_setattr */
+ 0, /* tp_compare */
+ 0, /* tp_repr */
+ 0, /* tp_as_number */
+ 0, /* tp_as_sequence */
+ 0, /* tp_as_mapping */
+ 0, /* tp_hash */
+ 0, /* tp_call */
+ 0, /* tp_str */
+ 0, /* tp_getattro */
+ 0, /* tp_setattro */
+ 0, /* tp_as_buffer */
+ Py_TPFLAGS_DEFAULT, /* tp_flags */
+ 0, /* tp_doc */
+ 0, /* tp_traverse */
+ 0, /* tp_clear */
+ 0, /* tp_richcompare */
+ 0, /* tp_weaklistoffset */
+ PyObject_SelfIter, /* tp_iter */
+ (iternextfunc)ScandirIterator_iternext, /* tp_iternext */
+};
+
+static PyObject *
+posix_scandir(PyObject *self, PyObject *args, PyObject *kwargs)
+{
+ ScandirIterator *iterator;
+ static char *keywords[] = {"path", NULL};
+#ifdef MS_WINDOWS
+ wchar_t *path_strW;
+#else
+ char *path;
+#endif
+
+ iterator = PyObject_New(ScandirIterator, &ScandirIteratorType);
+ if (!iterator)
+ return NULL;
+ memset(&iterator->path, 0, sizeof(path_t));
+ iterator->path.function_name = "scandir";
+ iterator->path.nullable = 1;
+
+#ifdef MS_WINDOWS
+ iterator->handle = INVALID_HANDLE_VALUE;
+#else
+ iterator->dirp = NULL;
+#endif
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|O&:scandir", keywords,
+ path_converter, &iterator->path))
+ goto error;
+
+ /* path_converter doesn't keep path.object around, so do it
+ manually for the lifetime of the iterator here (the refcount
+ is decremented in ScandirIterator_dealloc)
+ */
+ Py_XINCREF(iterator->path.object);
+
+#ifdef MS_WINDOWS
+ if (iterator->path.narrow) {
+ PyErr_SetString(PyExc_TypeError,
+ "os.scandir() doesn't support bytes path on Windows, use Unicode instead");
+ goto error;
+ }
+ iterator->first_time = 1;
+
+ path_strW = join_path_filenameW(iterator->path.wide, L"*.*");
+ if (!path_strW)
+ goto error;
+
+ Py_BEGIN_ALLOW_THREADS
+ iterator->handle = FindFirstFileW(path_strW, &iterator->file_data);
+ Py_END_ALLOW_THREADS
+
+ PyMem_Free(path_strW);
+
+ if (iterator->handle == INVALID_HANDLE_VALUE) {
+ path_error(&iterator->path);
+ goto error;
+ }
+#else /* POSIX */
+ if (iterator->path.narrow)
+ path = iterator->path.narrow;
+ else
+ path = ".";
+
+ errno = 0;
+ Py_BEGIN_ALLOW_THREADS
+ iterator->dirp = opendir(path);
+ Py_END_ALLOW_THREADS
+
+ if (!iterator->dirp) {
+ path_error(&iterator->path);
+ goto error;
+ }
+#endif
+
+ return (PyObject *)iterator;
+
+error:
+ Py_DECREF(iterator);
+ return NULL;
+}
+
+
+#include "clinic/posixmodule.c.h"
/*[clinic input]
dump buffer
[clinic start generated code]*/
-
-#ifndef OS_TTYNAME_METHODDEF
- #define OS_TTYNAME_METHODDEF
-#endif /* !defined(OS_TTYNAME_METHODDEF) */
-/*[clinic end generated code: output=5d071bbc8f49ea12 input=524ce2e021e4eba6]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=524ce2e021e4eba6]*/
static PyMethodDef posix_methods[] = {
@@ -11215,71 +12176,26 @@ static PyMethodDef posix_methods[] = {
OS_STAT_METHODDEF
OS_ACCESS_METHODDEF
OS_TTYNAME_METHODDEF
-
- {"chdir", (PyCFunction)posix_chdir,
- METH_VARARGS | METH_KEYWORDS,
- posix_chdir__doc__},
-#ifdef HAVE_CHFLAGS
- {"chflags", (PyCFunction)posix_chflags,
- METH_VARARGS | METH_KEYWORDS,
- posix_chflags__doc__},
-#endif /* HAVE_CHFLAGS */
- {"chmod", (PyCFunction)posix_chmod,
- METH_VARARGS | METH_KEYWORDS,
- posix_chmod__doc__},
-#ifdef HAVE_FCHMOD
- {"fchmod", posix_fchmod, METH_VARARGS, posix_fchmod__doc__},
-#endif /* HAVE_FCHMOD */
-#ifdef HAVE_CHOWN
- {"chown", (PyCFunction)posix_chown,
- METH_VARARGS | METH_KEYWORDS,
- posix_chown__doc__},
-#endif /* HAVE_CHOWN */
-#ifdef HAVE_LCHMOD
- {"lchmod", posix_lchmod, METH_VARARGS, posix_lchmod__doc__},
-#endif /* HAVE_LCHMOD */
-#ifdef HAVE_FCHOWN
- {"fchown", posix_fchown, METH_VARARGS, posix_fchown__doc__},
-#endif /* HAVE_FCHOWN */
-#ifdef HAVE_LCHFLAGS
- {"lchflags", posix_lchflags, METH_VARARGS, posix_lchflags__doc__},
-#endif /* HAVE_LCHFLAGS */
-#ifdef HAVE_LCHOWN
- {"lchown", posix_lchown, METH_VARARGS, posix_lchown__doc__},
-#endif /* HAVE_LCHOWN */
-#ifdef HAVE_CHROOT
- {"chroot", posix_chroot, METH_VARARGS, posix_chroot__doc__},
-#endif
-#ifdef HAVE_CTERMID
- {"ctermid", posix_ctermid, METH_NOARGS, posix_ctermid__doc__},
-#endif
- {"getcwd", (PyCFunction)posix_getcwd_unicode,
- METH_NOARGS, posix_getcwd__doc__},
- {"getcwdb", (PyCFunction)posix_getcwd_bytes,
- METH_NOARGS, posix_getcwdb__doc__},
-#if defined(HAVE_LINK) || defined(MS_WINDOWS)
- {"link", (PyCFunction)posix_link,
- METH_VARARGS | METH_KEYWORDS,
- posix_link__doc__},
-#endif /* HAVE_LINK */
- {"listdir", (PyCFunction)posix_listdir,
- METH_VARARGS | METH_KEYWORDS,
- posix_listdir__doc__},
- {"lstat", (PyCFunction)posix_lstat,
- METH_VARARGS | METH_KEYWORDS,
- posix_lstat__doc__},
- {"mkdir", (PyCFunction)posix_mkdir,
- METH_VARARGS | METH_KEYWORDS,
- posix_mkdir__doc__},
-#ifdef HAVE_NICE
- {"nice", posix_nice, METH_VARARGS, posix_nice__doc__},
-#endif /* HAVE_NICE */
-#ifdef HAVE_GETPRIORITY
- {"getpriority", posix_getpriority, METH_VARARGS, posix_getpriority__doc__},
-#endif /* HAVE_GETPRIORITY */
-#ifdef HAVE_SETPRIORITY
- {"setpriority", posix_setpriority, METH_VARARGS, posix_setpriority__doc__},
-#endif /* HAVE_SETPRIORITY */
+ OS_CHDIR_METHODDEF
+ OS_CHFLAGS_METHODDEF
+ OS_CHMOD_METHODDEF
+ OS_FCHMOD_METHODDEF
+ OS_LCHMOD_METHODDEF
+ OS_CHOWN_METHODDEF
+ OS_FCHOWN_METHODDEF
+ OS_LCHOWN_METHODDEF
+ OS_LCHFLAGS_METHODDEF
+ OS_CHROOT_METHODDEF
+ OS_CTERMID_METHODDEF
+ OS_GETCWD_METHODDEF
+ OS_GETCWDB_METHODDEF
+ OS_LINK_METHODDEF
+ OS_LISTDIR_METHODDEF
+ OS_LSTAT_METHODDEF
+ OS_MKDIR_METHODDEF
+ OS_NICE_METHODDEF
+ OS_GETPRIORITY_METHODDEF
+ OS_SETPRIORITY_METHODDEF
#ifdef HAVE_READLINK
{"readlink", (PyCFunction)posix_readlink,
METH_VARARGS | METH_KEYWORDS,
@@ -11290,376 +12206,162 @@ static PyMethodDef posix_methods[] = {
METH_VARARGS | METH_KEYWORDS,
readlink__doc__},
#endif /* !defined(HAVE_READLINK) && defined(MS_WINDOWS) */
- {"rename", (PyCFunction)posix_rename,
- METH_VARARGS | METH_KEYWORDS,
- posix_rename__doc__},
- {"replace", (PyCFunction)posix_replace,
- METH_VARARGS | METH_KEYWORDS,
- posix_replace__doc__},
- {"rmdir", (PyCFunction)posix_rmdir,
- METH_VARARGS | METH_KEYWORDS,
- posix_rmdir__doc__},
+ OS_RENAME_METHODDEF
+ OS_REPLACE_METHODDEF
+ OS_RMDIR_METHODDEF
{"stat_float_times", stat_float_times, METH_VARARGS, stat_float_times__doc__},
-#if defined(HAVE_SYMLINK)
- {"symlink", (PyCFunction)posix_symlink,
- METH_VARARGS | METH_KEYWORDS,
- posix_symlink__doc__},
-#endif /* HAVE_SYMLINK */
-#ifdef HAVE_SYSTEM
- {"system", posix_system, METH_VARARGS, posix_system__doc__},
-#endif
- {"umask", posix_umask, METH_VARARGS, posix_umask__doc__},
-#ifdef HAVE_UNAME
- {"uname", posix_uname, METH_NOARGS, posix_uname__doc__},
-#endif /* HAVE_UNAME */
- {"unlink", (PyCFunction)posix_unlink,
- METH_VARARGS | METH_KEYWORDS,
- posix_unlink__doc__},
- {"remove", (PyCFunction)posix_unlink,
- METH_VARARGS | METH_KEYWORDS,
- posix_remove__doc__},
- {"utime", (PyCFunction)posix_utime,
- METH_VARARGS | METH_KEYWORDS, posix_utime__doc__},
-#ifdef HAVE_TIMES
- {"times", posix_times, METH_NOARGS, posix_times__doc__},
-#endif /* HAVE_TIMES */
- {"_exit", posix__exit, METH_VARARGS, posix__exit__doc__},
-#ifdef HAVE_EXECV
- {"execv", posix_execv, METH_VARARGS, posix_execv__doc__},
- {"execve", (PyCFunction)posix_execve,
- METH_VARARGS | METH_KEYWORDS,
- posix_execve__doc__},
-#endif /* HAVE_EXECV */
-#ifdef HAVE_SPAWNV
- {"spawnv", posix_spawnv, METH_VARARGS, posix_spawnv__doc__},
- {"spawnve", posix_spawnve, METH_VARARGS, posix_spawnve__doc__},
-#endif /* HAVE_SPAWNV */
-#ifdef HAVE_FORK1
- {"fork1", posix_fork1, METH_NOARGS, posix_fork1__doc__},
-#endif /* HAVE_FORK1 */
-#ifdef HAVE_FORK
- {"fork", posix_fork, METH_NOARGS, posix_fork__doc__},
-#endif /* HAVE_FORK */
-#ifdef HAVE_SCHED_H
-#ifdef HAVE_SCHED_GET_PRIORITY_MAX
- {"sched_get_priority_max", posix_sched_get_priority_max, METH_VARARGS, posix_sched_get_priority_max__doc__},
- {"sched_get_priority_min", posix_sched_get_priority_min, METH_VARARGS, posix_sched_get_priority_min__doc__},
-#endif
-#ifdef HAVE_SCHED_SETPARAM
- {"sched_getparam", posix_sched_getparam, METH_VARARGS, posix_sched_getparam__doc__},
-#endif
-#ifdef HAVE_SCHED_SETSCHEDULER
- {"sched_getscheduler", posix_sched_getscheduler, METH_VARARGS, posix_sched_getscheduler__doc__},
-#endif
-#ifdef HAVE_SCHED_RR_GET_INTERVAL
- {"sched_rr_get_interval", posix_sched_rr_get_interval, METH_VARARGS, posix_sched_rr_get_interval__doc__},
-#endif
-#ifdef HAVE_SCHED_SETPARAM
- {"sched_setparam", posix_sched_setparam, METH_VARARGS, posix_sched_setparam__doc__},
-#endif
-#ifdef HAVE_SCHED_SETSCHEDULER
- {"sched_setscheduler", posix_sched_setscheduler, METH_VARARGS, posix_sched_setscheduler__doc__},
-#endif
- {"sched_yield", posix_sched_yield, METH_NOARGS, posix_sched_yield__doc__},
-#ifdef HAVE_SCHED_SETAFFINITY
- {"sched_setaffinity", posix_sched_setaffinity, METH_VARARGS, posix_sched_setaffinity__doc__},
- {"sched_getaffinity", posix_sched_getaffinity, METH_VARARGS, posix_sched_getaffinity__doc__},
-#endif
-#endif /* HAVE_SCHED_H */
-#if defined(HAVE_OPENPTY) || defined(HAVE__GETPTY) || defined(HAVE_DEV_PTMX)
- {"openpty", posix_openpty, METH_NOARGS, posix_openpty__doc__},
-#endif /* HAVE_OPENPTY || HAVE__GETPTY || HAVE_DEV_PTMX */
-#ifdef HAVE_FORKPTY
- {"forkpty", posix_forkpty, METH_NOARGS, posix_forkpty__doc__},
-#endif /* HAVE_FORKPTY */
-#ifdef HAVE_GETEGID
- {"getegid", posix_getegid, METH_NOARGS, posix_getegid__doc__},
-#endif /* HAVE_GETEGID */
-#ifdef HAVE_GETEUID
- {"geteuid", posix_geteuid, METH_NOARGS, posix_geteuid__doc__},
-#endif /* HAVE_GETEUID */
-#ifdef HAVE_GETGID
- {"getgid", posix_getgid, METH_NOARGS, posix_getgid__doc__},
-#endif /* HAVE_GETGID */
+ OS_SYMLINK_METHODDEF
+ OS_SYSTEM_METHODDEF
+ OS_UMASK_METHODDEF
+ OS_UNAME_METHODDEF
+ OS_UNLINK_METHODDEF
+ OS_REMOVE_METHODDEF
+ OS_UTIME_METHODDEF
+ OS_TIMES_METHODDEF
+ OS__EXIT_METHODDEF
+ OS_EXECV_METHODDEF
+ OS_EXECVE_METHODDEF
+ OS_SPAWNV_METHODDEF
+ OS_SPAWNVE_METHODDEF
+ OS_FORK1_METHODDEF
+ OS_FORK_METHODDEF
+ OS_SCHED_GET_PRIORITY_MAX_METHODDEF
+ OS_SCHED_GET_PRIORITY_MIN_METHODDEF
+ OS_SCHED_GETPARAM_METHODDEF
+ OS_SCHED_GETSCHEDULER_METHODDEF
+ OS_SCHED_RR_GET_INTERVAL_METHODDEF
+ OS_SCHED_SETPARAM_METHODDEF
+ OS_SCHED_SETSCHEDULER_METHODDEF
+ OS_SCHED_YIELD_METHODDEF
+ OS_SCHED_SETAFFINITY_METHODDEF
+ OS_SCHED_GETAFFINITY_METHODDEF
+ OS_OPENPTY_METHODDEF
+ OS_FORKPTY_METHODDEF
+ OS_GETEGID_METHODDEF
+ OS_GETEUID_METHODDEF
+ OS_GETGID_METHODDEF
#ifdef HAVE_GETGROUPLIST
{"getgrouplist", posix_getgrouplist, METH_VARARGS, posix_getgrouplist__doc__},
#endif
-#ifdef HAVE_GETGROUPS
- {"getgroups", posix_getgroups, METH_NOARGS, posix_getgroups__doc__},
-#endif
- {"getpid", posix_getpid, METH_NOARGS, posix_getpid__doc__},
-#ifdef HAVE_GETPGRP
- {"getpgrp", posix_getpgrp, METH_NOARGS, posix_getpgrp__doc__},
-#endif /* HAVE_GETPGRP */
-#ifdef HAVE_GETPPID
- {"getppid", posix_getppid, METH_NOARGS, posix_getppid__doc__},
-#endif /* HAVE_GETPPID */
-#ifdef HAVE_GETUID
- {"getuid", posix_getuid, METH_NOARGS, posix_getuid__doc__},
-#endif /* HAVE_GETUID */
-#ifdef HAVE_GETLOGIN
- {"getlogin", posix_getlogin, METH_NOARGS, posix_getlogin__doc__},
-#endif
-#ifdef HAVE_KILL
- {"kill", posix_kill, METH_VARARGS, posix_kill__doc__},
-#endif /* HAVE_KILL */
-#ifdef HAVE_KILLPG
- {"killpg", posix_killpg, METH_VARARGS, posix_killpg__doc__},
-#endif /* HAVE_KILLPG */
-#ifdef HAVE_PLOCK
- {"plock", posix_plock, METH_VARARGS, posix_plock__doc__},
-#endif /* HAVE_PLOCK */
+ OS_GETGROUPS_METHODDEF
+ OS_GETPID_METHODDEF
+ OS_GETPGRP_METHODDEF
+ OS_GETPPID_METHODDEF
+ OS_GETUID_METHODDEF
+ OS_GETLOGIN_METHODDEF
+ OS_KILL_METHODDEF
+ OS_KILLPG_METHODDEF
+ OS_PLOCK_METHODDEF
#ifdef MS_WINDOWS
{"startfile", win32_startfile, METH_VARARGS, win32_startfile__doc__},
- {"kill", win32_kill, METH_VARARGS, win32_kill__doc__},
#endif
-#ifdef HAVE_SETUID
- {"setuid", posix_setuid, METH_VARARGS, posix_setuid__doc__},
-#endif /* HAVE_SETUID */
-#ifdef HAVE_SETEUID
- {"seteuid", posix_seteuid, METH_VARARGS, posix_seteuid__doc__},
-#endif /* HAVE_SETEUID */
-#ifdef HAVE_SETEGID
- {"setegid", posix_setegid, METH_VARARGS, posix_setegid__doc__},
-#endif /* HAVE_SETEGID */
-#ifdef HAVE_SETREUID
- {"setreuid", posix_setreuid, METH_VARARGS, posix_setreuid__doc__},
-#endif /* HAVE_SETREUID */
-#ifdef HAVE_SETREGID
- {"setregid", posix_setregid, METH_VARARGS, posix_setregid__doc__},
-#endif /* HAVE_SETREGID */
-#ifdef HAVE_SETGID
- {"setgid", posix_setgid, METH_VARARGS, posix_setgid__doc__},
-#endif /* HAVE_SETGID */
-#ifdef HAVE_SETGROUPS
- {"setgroups", posix_setgroups, METH_O, posix_setgroups__doc__},
-#endif /* HAVE_SETGROUPS */
+ OS_SETUID_METHODDEF
+ OS_SETEUID_METHODDEF
+ OS_SETREUID_METHODDEF
+ OS_SETGID_METHODDEF
+ OS_SETEGID_METHODDEF
+ OS_SETREGID_METHODDEF
+ OS_SETGROUPS_METHODDEF
#ifdef HAVE_INITGROUPS
{"initgroups", posix_initgroups, METH_VARARGS, posix_initgroups__doc__},
#endif /* HAVE_INITGROUPS */
-#ifdef HAVE_GETPGID
- {"getpgid", posix_getpgid, METH_VARARGS, posix_getpgid__doc__},
-#endif /* HAVE_GETPGID */
-#ifdef HAVE_SETPGRP
- {"setpgrp", posix_setpgrp, METH_NOARGS, posix_setpgrp__doc__},
-#endif /* HAVE_SETPGRP */
-#ifdef HAVE_WAIT
- {"wait", posix_wait, METH_NOARGS, posix_wait__doc__},
-#endif /* HAVE_WAIT */
-#ifdef HAVE_WAIT3
- {"wait3", posix_wait3, METH_VARARGS, posix_wait3__doc__},
-#endif /* HAVE_WAIT3 */
-#ifdef HAVE_WAIT4
- {"wait4", posix_wait4, METH_VARARGS, posix_wait4__doc__},
-#endif /* HAVE_WAIT4 */
-#if defined(HAVE_WAITID) && !defined(__APPLE__)
- {"waitid", posix_waitid, METH_VARARGS, posix_waitid__doc__},
-#endif
-#if defined(HAVE_WAITPID) || defined(HAVE_CWAIT)
- {"waitpid", posix_waitpid, METH_VARARGS, posix_waitpid__doc__},
-#endif /* HAVE_WAITPID */
-#ifdef HAVE_GETSID
- {"getsid", posix_getsid, METH_VARARGS, posix_getsid__doc__},
-#endif /* HAVE_GETSID */
-#ifdef HAVE_SETSID
- {"setsid", posix_setsid, METH_NOARGS, posix_setsid__doc__},
-#endif /* HAVE_SETSID */
-#ifdef HAVE_SETPGID
- {"setpgid", posix_setpgid, METH_VARARGS, posix_setpgid__doc__},
-#endif /* HAVE_SETPGID */
-#ifdef HAVE_TCGETPGRP
- {"tcgetpgrp", posix_tcgetpgrp, METH_VARARGS, posix_tcgetpgrp__doc__},
-#endif /* HAVE_TCGETPGRP */
-#ifdef HAVE_TCSETPGRP
- {"tcsetpgrp", posix_tcsetpgrp, METH_VARARGS, posix_tcsetpgrp__doc__},
-#endif /* HAVE_TCSETPGRP */
- {"open", (PyCFunction)posix_open,\
- METH_VARARGS | METH_KEYWORDS,
- posix_open__doc__},
- {"close", posix_close_, METH_VARARGS, posix_close__doc__},
- {"closerange", posix_closerange, METH_VARARGS, posix_closerange__doc__},
- {"device_encoding", device_encoding, METH_VARARGS, device_encoding__doc__},
- {"dup", posix_dup, METH_VARARGS, posix_dup__doc__},
- {"dup2", (PyCFunction)posix_dup2,
- METH_VARARGS | METH_KEYWORDS, posix_dup2__doc__},
-#ifdef HAVE_LOCKF
- {"lockf", posix_lockf, METH_VARARGS, posix_lockf__doc__},
-#endif
- {"lseek", posix_lseek, METH_VARARGS, posix_lseek__doc__},
- {"read", posix_read, METH_VARARGS, posix_read__doc__},
-#ifdef HAVE_READV
- {"readv", posix_readv, METH_VARARGS, posix_readv__doc__},
-#endif
-#ifdef HAVE_PREAD
- {"pread", posix_pread, METH_VARARGS, posix_pread__doc__},
-#endif
- {"write", posix_write, METH_VARARGS, posix_write__doc__},
-#ifdef HAVE_WRITEV
- {"writev", posix_writev, METH_VARARGS, posix_writev__doc__},
-#endif
-#ifdef HAVE_PWRITE
- {"pwrite", posix_pwrite, METH_VARARGS, posix_pwrite__doc__},
-#endif
+ OS_GETPGID_METHODDEF
+ OS_SETPGRP_METHODDEF
+ OS_WAIT_METHODDEF
+ OS_WAIT3_METHODDEF
+ OS_WAIT4_METHODDEF
+ OS_WAITID_METHODDEF
+ OS_WAITPID_METHODDEF
+ OS_GETSID_METHODDEF
+ OS_SETSID_METHODDEF
+ OS_SETPGID_METHODDEF
+ OS_TCGETPGRP_METHODDEF
+ OS_TCSETPGRP_METHODDEF
+ OS_OPEN_METHODDEF
+ OS_CLOSE_METHODDEF
+ OS_CLOSERANGE_METHODDEF
+ OS_DEVICE_ENCODING_METHODDEF
+ OS_DUP_METHODDEF
+ OS_DUP2_METHODDEF
+ OS_LOCKF_METHODDEF
+ OS_LSEEK_METHODDEF
+ OS_READ_METHODDEF
+ OS_READV_METHODDEF
+ OS_PREAD_METHODDEF
+ OS_WRITE_METHODDEF
+ OS_WRITEV_METHODDEF
+ OS_PWRITE_METHODDEF
#ifdef HAVE_SENDFILE
{"sendfile", (PyCFunction)posix_sendfile, METH_VARARGS | METH_KEYWORDS,
posix_sendfile__doc__},
#endif
- {"fstat", posix_fstat, METH_VARARGS, posix_fstat__doc__},
- {"isatty", posix_isatty, METH_VARARGS, posix_isatty__doc__},
-#ifdef HAVE_PIPE
- {"pipe", posix_pipe, METH_NOARGS, posix_pipe__doc__},
-#endif
-#ifdef HAVE_PIPE2
- {"pipe2", posix_pipe2, METH_O, posix_pipe2__doc__},
-#endif
-#ifdef HAVE_MKFIFO
- {"mkfifo", (PyCFunction)posix_mkfifo,
- METH_VARARGS | METH_KEYWORDS,
- posix_mkfifo__doc__},
-#endif
-#if defined(HAVE_MKNOD) && defined(HAVE_MAKEDEV)
- {"mknod", (PyCFunction)posix_mknod,
- METH_VARARGS | METH_KEYWORDS,
- posix_mknod__doc__},
-#endif
-#ifdef HAVE_DEVICE_MACROS
- {"major", posix_major, METH_VARARGS, posix_major__doc__},
- {"minor", posix_minor, METH_VARARGS, posix_minor__doc__},
- {"makedev", posix_makedev, METH_VARARGS, posix_makedev__doc__},
-#endif
-#ifdef HAVE_FTRUNCATE
- {"ftruncate", posix_ftruncate, METH_VARARGS, posix_ftruncate__doc__},
-#endif
-#ifdef HAVE_TRUNCATE
- {"truncate", (PyCFunction)posix_truncate,
- METH_VARARGS | METH_KEYWORDS,
- posix_truncate__doc__},
-#endif
-#if defined(HAVE_POSIX_FALLOCATE) && !defined(POSIX_FADVISE_AIX_BUG)
- {"posix_fallocate", posix_posix_fallocate, METH_VARARGS, posix_posix_fallocate__doc__},
-#endif
-#if defined(HAVE_POSIX_FADVISE) && !defined(POSIX_FADVISE_AIX_BUG)
- {"posix_fadvise", posix_posix_fadvise, METH_VARARGS, posix_posix_fadvise__doc__},
-#endif
-#ifdef HAVE_PUTENV
- {"putenv", posix_putenv, METH_VARARGS, posix_putenv__doc__},
-#endif
-#ifdef HAVE_UNSETENV
- {"unsetenv", posix_unsetenv, METH_VARARGS, posix_unsetenv__doc__},
-#endif
- {"strerror", posix_strerror, METH_VARARGS, posix_strerror__doc__},
-#ifdef HAVE_FCHDIR
- {"fchdir", posix_fchdir, METH_O, posix_fchdir__doc__},
-#endif
-#ifdef HAVE_FSYNC
- {"fsync", posix_fsync, METH_O, posix_fsync__doc__},
-#endif
-#ifdef HAVE_SYNC
- {"sync", posix_sync, METH_NOARGS, posix_sync__doc__},
-#endif
-#ifdef HAVE_FDATASYNC
- {"fdatasync", posix_fdatasync, METH_O, posix_fdatasync__doc__},
-#endif
-#ifdef HAVE_SYS_WAIT_H
-#ifdef WCOREDUMP
- {"WCOREDUMP", posix_WCOREDUMP, METH_VARARGS, posix_WCOREDUMP__doc__},
-#endif /* WCOREDUMP */
-#ifdef WIFCONTINUED
- {"WIFCONTINUED",posix_WIFCONTINUED, METH_VARARGS, posix_WIFCONTINUED__doc__},
-#endif /* WIFCONTINUED */
-#ifdef WIFSTOPPED
- {"WIFSTOPPED", posix_WIFSTOPPED, METH_VARARGS, posix_WIFSTOPPED__doc__},
-#endif /* WIFSTOPPED */
-#ifdef WIFSIGNALED
- {"WIFSIGNALED", posix_WIFSIGNALED, METH_VARARGS, posix_WIFSIGNALED__doc__},
-#endif /* WIFSIGNALED */
-#ifdef WIFEXITED
- {"WIFEXITED", posix_WIFEXITED, METH_VARARGS, posix_WIFEXITED__doc__},
-#endif /* WIFEXITED */
-#ifdef WEXITSTATUS
- {"WEXITSTATUS", posix_WEXITSTATUS, METH_VARARGS, posix_WEXITSTATUS__doc__},
-#endif /* WEXITSTATUS */
-#ifdef WTERMSIG
- {"WTERMSIG", posix_WTERMSIG, METH_VARARGS, posix_WTERMSIG__doc__},
-#endif /* WTERMSIG */
-#ifdef WSTOPSIG
- {"WSTOPSIG", posix_WSTOPSIG, METH_VARARGS, posix_WSTOPSIG__doc__},
-#endif /* WSTOPSIG */
-#endif /* HAVE_SYS_WAIT_H */
-#if defined(HAVE_FSTATVFS) && defined(HAVE_SYS_STATVFS_H)
- {"fstatvfs", posix_fstatvfs, METH_VARARGS, posix_fstatvfs__doc__},
-#endif
-#if defined(HAVE_STATVFS) && defined(HAVE_SYS_STATVFS_H)
- {"statvfs", (PyCFunction)posix_statvfs,
- METH_VARARGS | METH_KEYWORDS,
- posix_statvfs__doc__},
-#endif
-#ifdef HAVE_CONFSTR
- {"confstr", posix_confstr, METH_VARARGS, posix_confstr__doc__},
-#endif
-#ifdef HAVE_SYSCONF
- {"sysconf", posix_sysconf, METH_VARARGS, posix_sysconf__doc__},
-#endif
-#ifdef HAVE_FPATHCONF
- {"fpathconf", posix_fpathconf, METH_VARARGS, posix_fpathconf__doc__},
-#endif
-#ifdef HAVE_PATHCONF
- {"pathconf", (PyCFunction)posix_pathconf,
- METH_VARARGS | METH_KEYWORDS,
- posix_pathconf__doc__},
-#endif
- {"abort", posix_abort, METH_NOARGS, posix_abort__doc__},
-#ifdef MS_WINDOWS
- {"_getfullpathname", posix__getfullpathname, METH_VARARGS, NULL},
- {"_getfinalpathname", posix__getfinalpathname, METH_VARARGS, NULL},
- {"_isdir", posix__isdir, METH_VARARGS, posix__isdir__doc__},
- {"_getdiskusage", win32__getdiskusage, METH_VARARGS, win32__getdiskusage__doc__},
- {"_getvolumepathname", posix__getvolumepathname, METH_VARARGS, posix__getvolumepathname__doc__},
-#endif
-#ifdef HAVE_GETLOADAVG
- {"getloadavg", posix_getloadavg, METH_NOARGS, posix_getloadavg__doc__},
-#endif
- {"urandom", posix_urandom, METH_VARARGS, posix_urandom__doc__},
-#ifdef HAVE_SETRESUID
- {"setresuid", posix_setresuid, METH_VARARGS, posix_setresuid__doc__},
-#endif
-#ifdef HAVE_SETRESGID
- {"setresgid", posix_setresgid, METH_VARARGS, posix_setresgid__doc__},
-#endif
-#ifdef HAVE_GETRESUID
- {"getresuid", posix_getresuid, METH_NOARGS, posix_getresuid__doc__},
-#endif
-#ifdef HAVE_GETRESGID
- {"getresgid", posix_getresgid, METH_NOARGS, posix_getresgid__doc__},
-#endif
+ OS_FSTAT_METHODDEF
+ OS_ISATTY_METHODDEF
+ OS_PIPE_METHODDEF
+ OS_PIPE2_METHODDEF
+ OS_MKFIFO_METHODDEF
+ OS_MKNOD_METHODDEF
+ OS_MAJOR_METHODDEF
+ OS_MINOR_METHODDEF
+ OS_MAKEDEV_METHODDEF
+ OS_FTRUNCATE_METHODDEF
+ OS_TRUNCATE_METHODDEF
+ OS_POSIX_FALLOCATE_METHODDEF
+ OS_POSIX_FADVISE_METHODDEF
+ OS_PUTENV_METHODDEF
+ OS_UNSETENV_METHODDEF
+ OS_STRERROR_METHODDEF
+ OS_FCHDIR_METHODDEF
+ OS_FSYNC_METHODDEF
+ OS_SYNC_METHODDEF
+ OS_FDATASYNC_METHODDEF
+ OS_WCOREDUMP_METHODDEF
+ OS_WIFCONTINUED_METHODDEF
+ OS_WIFSTOPPED_METHODDEF
+ OS_WIFSIGNALED_METHODDEF
+ OS_WIFEXITED_METHODDEF
+ OS_WEXITSTATUS_METHODDEF
+ OS_WTERMSIG_METHODDEF
+ OS_WSTOPSIG_METHODDEF
+ OS_FSTATVFS_METHODDEF
+ OS_STATVFS_METHODDEF
+ OS_CONFSTR_METHODDEF
+ OS_SYSCONF_METHODDEF
+ OS_FPATHCONF_METHODDEF
+ OS_PATHCONF_METHODDEF
+ OS_ABORT_METHODDEF
+ OS__GETFULLPATHNAME_METHODDEF
+ OS__ISDIR_METHODDEF
+ OS__GETDISKUSAGE_METHODDEF
+ OS__GETFINALPATHNAME_METHODDEF
+ OS__GETVOLUMEPATHNAME_METHODDEF
+ OS_GETLOADAVG_METHODDEF
+ OS_URANDOM_METHODDEF
+ OS_SETRESUID_METHODDEF
+ OS_SETRESGID_METHODDEF
+ OS_GETRESUID_METHODDEF
+ OS_GETRESGID_METHODDEF
+
+ OS_GETXATTR_METHODDEF
+ OS_SETXATTR_METHODDEF
+ OS_REMOVEXATTR_METHODDEF
+ OS_LISTXATTR_METHODDEF
-#ifdef USE_XATTRS
- {"setxattr", (PyCFunction)posix_setxattr,
- METH_VARARGS | METH_KEYWORDS,
- posix_setxattr__doc__},
- {"getxattr", (PyCFunction)posix_getxattr,
- METH_VARARGS | METH_KEYWORDS,
- posix_getxattr__doc__},
- {"removexattr", (PyCFunction)posix_removexattr,
- METH_VARARGS | METH_KEYWORDS,
- posix_removexattr__doc__},
- {"listxattr", (PyCFunction)posix_listxattr,
- METH_VARARGS | METH_KEYWORDS,
- posix_listxattr__doc__},
-#endif
#if defined(TERMSIZE_USE_CONIO) || defined(TERMSIZE_USE_IOCTL)
{"get_terminal_size", get_terminal_size, METH_VARARGS, termsize__doc__},
#endif
- {"cpu_count", (PyCFunction)posix_cpu_count,
- METH_NOARGS, posix_cpu_count__doc__},
- {"get_inheritable", posix_get_inheritable, METH_VARARGS, get_inheritable__doc__},
- {"set_inheritable", posix_set_inheritable, METH_VARARGS, set_inheritable__doc__},
-#ifdef MS_WINDOWS
- {"get_handle_inheritable", posix_get_handle_inheritable,
- METH_VARARGS, get_handle_inheritable__doc__},
- {"set_handle_inheritable", posix_set_handle_inheritable,
- METH_VARARGS, set_handle_inheritable__doc__},
+ OS_CPU_COUNT_METHODDEF
+ OS_GET_INHERITABLE_METHODDEF
+ OS_SET_INHERITABLE_METHODDEF
+ OS_GET_HANDLE_INHERITABLE_METHODDEF
+ OS_SET_HANDLE_INHERITABLE_METHODDEF
+#ifndef MS_WINDOWS
+ {"get_blocking", posix_get_blocking, METH_VARARGS, get_blocking__doc__},
+ {"set_blocking", posix_set_blocking, METH_VARARGS, set_blocking__doc__},
#endif
+ {"scandir", (PyCFunction)posix_scandir,
+ METH_VARARGS | METH_KEYWORDS,
+ posix_scandir__doc__},
{NULL, NULL} /* Sentinel */
};
@@ -12102,15 +12804,6 @@ all_ins(PyObject *m)
}
-#if (defined(_MSC_VER) || defined(__WATCOMC__) || defined(__BORLANDC__)) && !defined(__QNX__)
-#define INITFUNC PyInit_nt
-#define MODNAME "nt"
-
-#else
-#define INITFUNC PyInit_posix
-#define MODNAME "posix"
-#endif
-
static struct PyModuleDef posixmodule = {
PyModuleDef_HEAD_INIT,
MODNAME,
@@ -12170,7 +12863,7 @@ static char *have_functions[] = {
"HAVE_FSTATVFS",
#endif
-#ifdef HAVE_FTRUNCATE
+#if defined HAVE_FTRUNCATE || defined MS_WINDOWS
"HAVE_FTRUNCATE",
#endif
@@ -12324,13 +13017,19 @@ INITFUNC(void)
sched_param_desc.name = MODNAME ".sched_param";
if (PyStructSequence_InitType2(&SchedParamType, &sched_param_desc) < 0)
return NULL;
- SchedParamType.tp_new = sched_param_new;
+ SchedParamType.tp_new = os_sched_param;
#endif
/* initialize TerminalSize_info */
if (PyStructSequence_InitType2(&TerminalSizeType,
&TerminalSize_desc) < 0)
return NULL;
+
+ /* initialize scandir types */
+ if (PyType_Ready(&ScandirIteratorType) < 0)
+ return NULL;
+ if (PyType_Ready(&DirEntryType) < 0)
+ return NULL;
}
#if defined(HAVE_WAITID) && !defined(__APPLE__)
Py_INCREF((PyObject*) &WaitidResultType);
diff --git a/Modules/pwdmodule.c b/Modules/pwdmodule.c
index ebb8712018..281c30b26e 100644
--- a/Modules/pwdmodule.c
+++ b/Modules/pwdmodule.c
@@ -6,6 +6,12 @@
#include <pwd.h>
+#include "clinic/pwdmodule.c.h"
+/*[clinic input]
+module pwd
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=60f628ef356b97b6]*/
+
static PyStructSequence_Field struct_pwd_type_fields[] = {
{"pw_name", "user name"},
{"pw_passwd", "password"},
@@ -87,18 +93,25 @@ mkpwent(struct passwd *p)
return v;
}
-PyDoc_STRVAR(pwd_getpwuid__doc__,
-"getpwuid(uid) -> (pw_name,pw_passwd,pw_uid,\n\
- pw_gid,pw_gecos,pw_dir,pw_shell)\n\
-Return the password database entry for the given numeric user ID.\n\
-See help(pwd) for more on password database entries.");
+/*[clinic input]
+pwd.getpwuid
+
+ uidobj: object
+ /
+
+Return the password database entry for the given numeric user ID.
+
+See `help(pwd)` for more on password database entries.
+[clinic start generated code]*/
static PyObject *
-pwd_getpwuid(PyObject *self, PyObject *args)
+pwd_getpwuid(PyModuleDef *module, PyObject *uidobj)
+/*[clinic end generated code: output=cba29ae4c2bcb8e1 input=ae64d507a1c6d3e8]*/
{
uid_t uid;
struct passwd *p;
- if (!PyArg_ParseTuple(args, "O&:getpwuid", _Py_Uid_Converter, &uid)) {
+
+ if (!_Py_Uid_Converter(uidobj, &uid)) {
if (PyErr_ExceptionMatches(PyExc_OverflowError))
PyErr_Format(PyExc_KeyError,
"getpwuid(): uid not found");
@@ -116,21 +129,25 @@ pwd_getpwuid(PyObject *self, PyObject *args)
return mkpwent(p);
}
-PyDoc_STRVAR(pwd_getpwnam__doc__,
-"getpwnam(name) -> (pw_name,pw_passwd,pw_uid,\n\
- pw_gid,pw_gecos,pw_dir,pw_shell)\n\
-Return the password database entry for the given user name.\n\
-See help(pwd) for more on password database entries.");
+/*[clinic input]
+pwd.getpwnam
+
+ arg: unicode
+ /
+
+Return the password database entry for the given user name.
+
+See `help(pwd)` for more on password database entries.
+[clinic start generated code]*/
static PyObject *
-pwd_getpwnam(PyObject *self, PyObject *args)
+pwd_getpwnam_impl(PyModuleDef *module, PyObject *arg)
+/*[clinic end generated code: output=66848d42d386fca3 input=d5f7e700919b02d3]*/
{
char *name;
struct passwd *p;
- PyObject *arg, *bytes, *retval = NULL;
+ PyObject *bytes, *retval = NULL;
- if (!PyArg_ParseTuple(args, "U:getpwnam", &arg))
- return NULL;
if ((bytes = PyUnicode_EncodeFSDefault(arg)) == NULL)
return NULL;
if (PyBytes_AsStringAndSize(bytes, &name, NULL) == -1)
@@ -147,14 +164,17 @@ out:
}
#ifdef HAVE_GETPWENT
-PyDoc_STRVAR(pwd_getpwall__doc__,
-"getpwall() -> list_of_entries\n\
-Return a list of all available password database entries, \
-in arbitrary order.\n\
-See help(pwd) for more on password database entries.");
+/*[clinic input]
+pwd.getpwall
+
+Return a list of all available password database entries, in arbitrary order.
+
+See help(pwd) for more on password database entries.
+[clinic start generated code]*/
static PyObject *
-pwd_getpwall(PyObject *self)
+pwd_getpwall_impl(PyModuleDef *module)
+/*[clinic end generated code: output=ab30e37bf26d431d input=d7ecebfd90219b85]*/
{
PyObject *d;
struct passwd *p;
@@ -177,11 +197,10 @@ pwd_getpwall(PyObject *self)
#endif
static PyMethodDef pwd_methods[] = {
- {"getpwuid", pwd_getpwuid, METH_VARARGS, pwd_getpwuid__doc__},
- {"getpwnam", pwd_getpwnam, METH_VARARGS, pwd_getpwnam__doc__},
+ PWD_GETPWUID_METHODDEF
+ PWD_GETPWNAM_METHODDEF
#ifdef HAVE_GETPWENT
- {"getpwall", (PyCFunction)pwd_getpwall,
- METH_NOARGS, pwd_getpwall__doc__},
+ PWD_GETPWALL_METHODDEF
#endif
{NULL, NULL} /* sentinel */
};
diff --git a/Modules/pyexpat.c b/Modules/pyexpat.c
index 6a901f756c..9a6da737fb 100644
--- a/Modules/pyexpat.c
+++ b/Modules/pyexpat.c
@@ -6,6 +6,13 @@
#include "pyexpat.h"
+/* Do not emit Clinic output to a file as that wreaks havoc with conditionally
+ included methods. */
+/*[clinic input]
+module pyexpat
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=b168d503a4490c15]*/
+
#define XML_COMBINED_VERSION (10000*XML_MAJOR_VERSION+100*XML_MINOR_VERSION+XML_MICRO_VERSION)
static XML_Memory_Handling_Suite ExpatMemoryHandler = {
@@ -61,6 +68,8 @@ typedef struct {
PyObject **handlers;
} xmlparseobject;
+#include "clinic/pyexpat.c.h"
+
#define CHARACTER_DATA_BUFFER_SIZE 8192
static PyTypeObject Xmlparsetype;
@@ -671,6 +680,11 @@ VOID_HANDLER(StartDoctypeDecl,
VOID_HANDLER(EndDoctypeDecl, (void *userData), ("()"))
/* ---------------------------------------------------------------- */
+/*[clinic input]
+class pyexpat.xmlparser "xmlparseobject *" "&Xmlparsetype"
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=2393162385232e1c]*/
+
static PyObject *
get_parse_result(xmlparseobject *self, int rv)
@@ -687,25 +701,30 @@ get_parse_result(xmlparseobject *self, int rv)
return PyLong_FromLong(rv);
}
-PyDoc_STRVAR(xmlparse_Parse__doc__,
-"Parse(data[, isfinal])\n\
-Parse XML data. `isfinal' should be true at end of input.");
-
#define MAX_CHUNK_SIZE (1 << 20)
+/*[clinic input]
+pyexpat.xmlparser.Parse
+
+ data: object
+ isfinal: int(c_default="0") = False
+ /
+
+Parse XML data.
+
+`isfinal' should be true at end of input.
+[clinic start generated code]*/
+
static PyObject *
-xmlparse_Parse(xmlparseobject *self, PyObject *args)
+pyexpat_xmlparser_Parse_impl(xmlparseobject *self, PyObject *data,
+ int isfinal)
+/*[clinic end generated code: output=f4db843dd1f4ed4b input=199d9e8e92ebbb4b]*/
{
- PyObject *data;
- int isFinal = 0;
const char *s;
Py_ssize_t slen;
Py_buffer view;
int rc;
- if (!PyArg_ParseTuple(args, "O|i:Parse", &data, &isFinal))
- return NULL;
-
if (PyUnicode_Check(data)) {
view.buf = NULL;
s = PyUnicode_AsUTF8AndSize(data, &slen);
@@ -729,7 +748,7 @@ xmlparse_Parse(xmlparseobject *self, PyObject *args)
slen -= MAX_CHUNK_SIZE;
}
assert(MAX_CHUNK_SIZE < INT_MAX && slen < INT_MAX);
- rc = XML_Parse(self->itself, s, (int)slen, isFinal);
+ rc = XML_Parse(self->itself, s, (int)slen, isfinal);
done:
if (view.buf != NULL)
@@ -780,18 +799,24 @@ error:
return -1;
}
-PyDoc_STRVAR(xmlparse_ParseFile__doc__,
-"ParseFile(file)\n\
-Parse XML data from file-like object.");
+/*[clinic input]
+pyexpat.xmlparser.ParseFile
+
+ file: object
+ /
+
+Parse XML data from file-like object.
+[clinic start generated code]*/
static PyObject *
-xmlparse_ParseFile(xmlparseobject *self, PyObject *f)
+pyexpat_xmlparser_ParseFile(xmlparseobject *self, PyObject *file)
+/*[clinic end generated code: output=2adc6a13100cc42b input=fbb5a12b6038d735]*/
{
int rv = 1;
PyObject *readmethod = NULL;
_Py_IDENTIFIER(read);
- readmethod = _PyObject_GetAttrId(f, &PyId_read);
+ readmethod = _PyObject_GetAttrId(file, &PyId_read);
if (readmethod == NULL) {
PyErr_SetString(PyExc_TypeError,
"argument must have 'read' attribute");
@@ -823,42 +848,50 @@ xmlparse_ParseFile(xmlparseobject *self, PyObject *f)
return get_parse_result(self, rv);
}
-PyDoc_STRVAR(xmlparse_SetBase__doc__,
-"SetBase(base_url)\n\
-Set the base URL for the parser.");
+/*[clinic input]
+pyexpat.xmlparser.SetBase
+
+ base: str
+ /
+
+Set the base URL for the parser.
+[clinic start generated code]*/
static PyObject *
-xmlparse_SetBase(xmlparseobject *self, PyObject *args)
+pyexpat_xmlparser_SetBase_impl(xmlparseobject *self, const char *base)
+/*[clinic end generated code: output=c212ddceb607b539 input=c684e5de895ee1a8]*/
{
- char *base;
-
- if (!PyArg_ParseTuple(args, "s:SetBase", &base))
- return NULL;
if (!XML_SetBase(self->itself, base)) {
return PyErr_NoMemory();
}
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
-PyDoc_STRVAR(xmlparse_GetBase__doc__,
-"GetBase() -> url\n\
-Return base URL string for the parser.");
+/*[clinic input]
+pyexpat.xmlparser.GetBase
+
+Return base URL string for the parser.
+[clinic start generated code]*/
static PyObject *
-xmlparse_GetBase(xmlparseobject *self, PyObject *unused)
+pyexpat_xmlparser_GetBase_impl(xmlparseobject *self)
+/*[clinic end generated code: output=2886cb21f9a8739a input=918d71c38009620e]*/
{
return Py_BuildValue("z", XML_GetBase(self->itself));
}
-PyDoc_STRVAR(xmlparse_GetInputContext__doc__,
-"GetInputContext() -> string\n\
-Return the untranslated text of the input that caused the current event.\n\
-If the event was generated by a large amount of text (such as a start tag\n\
-for an element with many attributes), not all of the text may be available.");
+/*[clinic input]
+pyexpat.xmlparser.GetInputContext
+
+Return the untranslated text of the input that caused the current event.
+
+If the event was generated by a large amount of text (such as a start tag
+for an element with many attributes), not all of the text may be available.
+[clinic start generated code]*/
static PyObject *
-xmlparse_GetInputContext(xmlparseobject *self, PyObject *unused)
+pyexpat_xmlparser_GetInputContext_impl(xmlparseobject *self)
+/*[clinic end generated code: output=a88026d683fc22cc input=034df8712db68379]*/
{
if (self->in_callback) {
int offset, size;
@@ -875,24 +908,25 @@ xmlparse_GetInputContext(xmlparseobject *self, PyObject *unused)
Py_RETURN_NONE;
}
-PyDoc_STRVAR(xmlparse_ExternalEntityParserCreate__doc__,
-"ExternalEntityParserCreate(context[, encoding])\n\
-Create a parser for parsing an external entity based on the\n\
-information passed to the ExternalEntityRefHandler.");
+/*[clinic input]
+pyexpat.xmlparser.ExternalEntityParserCreate
+
+ context: str(accept={str, NoneType})
+ encoding: str = NULL
+ /
+
+Create a parser for parsing an external entity based on the information passed to the ExternalEntityRefHandler.
+[clinic start generated code]*/
static PyObject *
-xmlparse_ExternalEntityParserCreate(xmlparseobject *self, PyObject *args)
+pyexpat_xmlparser_ExternalEntityParserCreate_impl(xmlparseobject *self,
+ const char *context,
+ const char *encoding)
+/*[clinic end generated code: output=535cda9d7a0fbcd6 input=b906714cc122c322]*/
{
- char *context;
- char *encoding = NULL;
xmlparseobject *new_parser;
int i;
- if (!PyArg_ParseTuple(args, "z|s:ExternalEntityParserCreate",
- &context, &encoding)) {
- return NULL;
- }
-
new_parser = PyObject_GC_New(xmlparseobject, &Xmlparsetype);
if (new_parser == NULL)
return NULL;
@@ -948,41 +982,49 @@ xmlparse_ExternalEntityParserCreate(xmlparseobject *self, PyObject *args)
return (PyObject *)new_parser;
}
-PyDoc_STRVAR(xmlparse_SetParamEntityParsing__doc__,
-"SetParamEntityParsing(flag) -> success\n\
-Controls parsing of parameter entities (including the external DTD\n\
-subset). Possible flag values are XML_PARAM_ENTITY_PARSING_NEVER,\n\
-XML_PARAM_ENTITY_PARSING_UNLESS_STANDALONE and\n\
-XML_PARAM_ENTITY_PARSING_ALWAYS. Returns true if setting the flag\n\
-was successful.");
+/*[clinic input]
+pyexpat.xmlparser.SetParamEntityParsing
-static PyObject*
-xmlparse_SetParamEntityParsing(xmlparseobject *p, PyObject* args)
+ flag: int
+ /
+
+Controls parsing of parameter entities (including the external DTD subset).
+
+Possible flag values are XML_PARAM_ENTITY_PARSING_NEVER,
+XML_PARAM_ENTITY_PARSING_UNLESS_STANDALONE and
+XML_PARAM_ENTITY_PARSING_ALWAYS. Returns true if setting the flag
+was successful.
+[clinic start generated code]*/
+
+static PyObject *
+pyexpat_xmlparser_SetParamEntityParsing_impl(xmlparseobject *self, int flag)
+/*[clinic end generated code: output=18668ee8e760d64c input=8aea19b4b15e9af1]*/
{
- int flag;
- if (!PyArg_ParseTuple(args, "i", &flag))
- return NULL;
- flag = XML_SetParamEntityParsing(p->itself, flag);
+ flag = XML_SetParamEntityParsing(self->itself, flag);
return PyLong_FromLong(flag);
}
#if XML_COMBINED_VERSION >= 19505
-PyDoc_STRVAR(xmlparse_UseForeignDTD__doc__,
-"UseForeignDTD([flag])\n\
-Allows the application to provide an artificial external subset if one is\n\
-not specified as part of the document instance. This readily allows the\n\
-use of a 'default' document type controlled by the application, while still\n\
-getting the advantage of providing document type information to the parser.\n\
-'flag' defaults to True if not provided.");
+/*[clinic input]
+pyexpat.xmlparser.UseForeignDTD
+
+ flag: bool = True
+ /
+
+Allows the application to provide an artificial external subset if one is not specified as part of the document instance.
+
+This readily allows the use of a 'default' document type controlled by the
+application, while still getting the advantage of providing document type
+information to the parser. 'flag' defaults to True if not provided.
+[clinic start generated code]*/
static PyObject *
-xmlparse_UseForeignDTD(xmlparseobject *self, PyObject *args)
+pyexpat_xmlparser_UseForeignDTD_impl(xmlparseobject *self, int flag)
+/*[clinic end generated code: output=cfaa9aa50bb0f65c input=78144c519d116a6e]*/
{
- int flag = 1;
enum XML_Error rc;
- if (!PyArg_ParseTuple(args, "|p:UseForeignDTD", &flag))
- return NULL;
+
rc = XML_UseForeignDTD(self->itself, flag ? XML_TRUE : XML_FALSE);
if (rc != XML_ERROR_NONE) {
return set_error(self, rc);
@@ -992,29 +1034,70 @@ xmlparse_UseForeignDTD(xmlparseobject *self, PyObject *args)
}
#endif
-static PyObject *xmlparse_dir(PyObject *self, PyObject* noargs);
+/*[clinic input]
+pyexpat.xmlparser.__dir__
+[clinic start generated code]*/
+
+static PyObject *
+pyexpat_xmlparser___dir___impl(xmlparseobject *self)
+/*[clinic end generated code: output=bc22451efb9e4d17 input=76aa455f2a661384]*/
+{
+#define APPEND(list, str) \
+ do { \
+ PyObject *o = PyUnicode_FromString(str); \
+ if (o != NULL) \
+ PyList_Append(list, o); \
+ Py_XDECREF(o); \
+ } while (0)
+
+ int i;
+ PyObject *rc = PyList_New(0);
+ if (!rc)
+ return NULL;
+ for (i = 0; handler_info[i].name != NULL; i++) {
+ PyObject *o = get_handler_name(&handler_info[i]);
+ if (o != NULL)
+ PyList_Append(rc, o);
+ Py_XDECREF(o);
+ }
+ APPEND(rc, "ErrorCode");
+ APPEND(rc, "ErrorLineNumber");
+ APPEND(rc, "ErrorColumnNumber");
+ APPEND(rc, "ErrorByteIndex");
+ APPEND(rc, "CurrentLineNumber");
+ APPEND(rc, "CurrentColumnNumber");
+ APPEND(rc, "CurrentByteIndex");
+ APPEND(rc, "buffer_size");
+ APPEND(rc, "buffer_text");
+ APPEND(rc, "buffer_used");
+ APPEND(rc, "namespace_prefixes");
+ APPEND(rc, "ordered_attributes");
+ APPEND(rc, "specified_attributes");
+ APPEND(rc, "intern");
+
+#undef APPEND
+
+ if (PyErr_Occurred()) {
+ Py_DECREF(rc);
+ rc = NULL;
+ }
+
+ return rc;
+}
static struct PyMethodDef xmlparse_methods[] = {
- {"Parse", (PyCFunction)xmlparse_Parse,
- METH_VARARGS, xmlparse_Parse__doc__},
- {"ParseFile", (PyCFunction)xmlparse_ParseFile,
- METH_O, xmlparse_ParseFile__doc__},
- {"SetBase", (PyCFunction)xmlparse_SetBase,
- METH_VARARGS, xmlparse_SetBase__doc__},
- {"GetBase", (PyCFunction)xmlparse_GetBase,
- METH_NOARGS, xmlparse_GetBase__doc__},
- {"ExternalEntityParserCreate", (PyCFunction)xmlparse_ExternalEntityParserCreate,
- METH_VARARGS, xmlparse_ExternalEntityParserCreate__doc__},
- {"SetParamEntityParsing", (PyCFunction)xmlparse_SetParamEntityParsing,
- METH_VARARGS, xmlparse_SetParamEntityParsing__doc__},
- {"GetInputContext", (PyCFunction)xmlparse_GetInputContext,
- METH_NOARGS, xmlparse_GetInputContext__doc__},
+ PYEXPAT_XMLPARSER_PARSE_METHODDEF
+ PYEXPAT_XMLPARSER_PARSEFILE_METHODDEF
+ PYEXPAT_XMLPARSER_SETBASE_METHODDEF
+ PYEXPAT_XMLPARSER_GETBASE_METHODDEF
+ PYEXPAT_XMLPARSER_GETINPUTCONTEXT_METHODDEF
+ PYEXPAT_XMLPARSER_EXTERNALENTITYPARSERCREATE_METHODDEF
+ PYEXPAT_XMLPARSER_SETPARAMENTITYPARSING_METHODDEF
#if XML_COMBINED_VERSION >= 19505
- {"UseForeignDTD", (PyCFunction)xmlparse_UseForeignDTD,
- METH_VARARGS, xmlparse_UseForeignDTD__doc__},
+ PYEXPAT_XMLPARSER_USEFOREIGNDTD_METHODDEF
#endif
- {"__dir__", xmlparse_dir, METH_NOARGS},
- {NULL, NULL} /* sentinel */
+ PYEXPAT_XMLPARSER___DIR___METHODDEF
+ {NULL, NULL} /* sentinel */
};
/* ---------- */
@@ -1077,7 +1160,7 @@ PyUnknownEncodingHandler(void *encodingHandlerData,
static PyObject *
-newxmlparseobject(char *encoding, char *namespace_separator, PyObject *intern)
+newxmlparseobject(const char *encoding, const char *namespace_separator, PyObject *intern)
{
int i;
xmlparseobject *self;
@@ -1255,52 +1338,6 @@ xmlparse_getattro(xmlparseobject *self, PyObject *nameobj)
return PyObject_GenericGetAttr((PyObject*)self, nameobj);
}
-static PyObject *
-xmlparse_dir(PyObject *self, PyObject* noargs)
-{
-#define APPEND(list, str) \
- do { \
- PyObject *o = PyUnicode_FromString(str); \
- if (o != NULL) \
- PyList_Append(list, o); \
- Py_XDECREF(o); \
- } while (0)
-
- int i;
- PyObject *rc = PyList_New(0);
- if (!rc)
- return NULL;
- for (i = 0; handler_info[i].name != NULL; i++) {
- PyObject *o = get_handler_name(&handler_info[i]);
- if (o != NULL)
- PyList_Append(rc, o);
- Py_XDECREF(o);
- }
- APPEND(rc, "ErrorCode");
- APPEND(rc, "ErrorLineNumber");
- APPEND(rc, "ErrorColumnNumber");
- APPEND(rc, "ErrorByteIndex");
- APPEND(rc, "CurrentLineNumber");
- APPEND(rc, "CurrentColumnNumber");
- APPEND(rc, "CurrentByteIndex");
- APPEND(rc, "buffer_size");
- APPEND(rc, "buffer_text");
- APPEND(rc, "buffer_used");
- APPEND(rc, "namespace_prefixes");
- APPEND(rc, "ordered_attributes");
- APPEND(rc, "specified_attributes");
- APPEND(rc, "intern");
-
-#undef APPEND
-
- if (PyErr_Occurred()) {
- Py_DECREF(rc);
- rc = NULL;
- }
-
- return rc;
-}
-
static int
sethandler(xmlparseobject *self, PyObject *name, PyObject* v)
{
@@ -1512,24 +1549,24 @@ static PyTypeObject Xmlparsetype = {
/* End of code for xmlparser objects */
/* -------------------------------------------------------- */
-PyDoc_STRVAR(pyexpat_ParserCreate__doc__,
-"ParserCreate([encoding[, namespace_separator]]) -> parser\n\
-Return a new XML parser object.");
+/*[clinic input]
+pyexpat.ParserCreate
+
+ encoding: str(accept={str, NoneType}) = NULL
+ namespace_separator: str(accept={str, NoneType}) = NULL
+ intern: object = NULL
+
+Return a new XML parser object.
+[clinic start generated code]*/
static PyObject *
-pyexpat_ParserCreate(PyObject *notused, PyObject *args, PyObject *kw)
+pyexpat_ParserCreate_impl(PyModuleDef *module, const char *encoding,
+ const char *namespace_separator, PyObject *intern)
+/*[clinic end generated code: output=81fccd233e1743a8 input=23d29704acad385d]*/
{
- char *encoding = NULL;
- char *namespace_separator = NULL;
- PyObject *intern = NULL;
PyObject *result;
int intern_decref = 0;
- static char *kwlist[] = {"encoding", "namespace_separator",
- "intern", NULL};
- if (!PyArg_ParseTupleAndKeywords(args, kw, "|zzO:ParserCreate", kwlist,
- &encoding, &namespace_separator, &intern))
- return NULL;
if (namespace_separator != NULL
&& strlen(namespace_separator) > 1) {
PyErr_SetString(PyExc_ValueError,
@@ -1559,29 +1596,28 @@ pyexpat_ParserCreate(PyObject *notused, PyObject *args, PyObject *kw)
return result;
}
-PyDoc_STRVAR(pyexpat_ErrorString__doc__,
-"ErrorString(errno) -> string\n\
-Returns string error for given number.");
+/*[clinic input]
+pyexpat.ErrorString
+
+ code: long
+ /
+
+Returns string error for given number.
+[clinic start generated code]*/
static PyObject *
-pyexpat_ErrorString(PyObject *self, PyObject *args)
+pyexpat_ErrorString_impl(PyModuleDef *module, long code)
+/*[clinic end generated code: output=d87668108b6868e5 input=cc67de010d9e62b3]*/
{
- long code = 0;
-
- if (!PyArg_ParseTuple(args, "l:ErrorString", &code))
- return NULL;
return Py_BuildValue("z", XML_ErrorString((int)code));
}
/* List of methods defined in the module */
static struct PyMethodDef pyexpat_methods[] = {
- {"ParserCreate", (PyCFunction)pyexpat_ParserCreate,
- METH_VARARGS|METH_KEYWORDS, pyexpat_ParserCreate__doc__},
- {"ErrorString", (PyCFunction)pyexpat_ErrorString,
- METH_VARARGS, pyexpat_ErrorString__doc__},
-
- {NULL, (PyCFunction)NULL, 0, NULL} /* sentinel */
+ PYEXPAT_PARSERCREATE_METHODDEF
+ PYEXPAT_ERRORSTRING_METHODDEF
+ {NULL, NULL} /* sentinel */
};
/* Module docstring */
@@ -1599,16 +1635,6 @@ PyDoc_STRVAR(pyexpat_module_documentation,
#define MODULE_INITFUNC PyInit_pyexpat
#endif
-#ifndef PyMODINIT_FUNC
-# ifdef MS_WINDOWS
-# define PyMODINIT_FUNC __declspec(dllexport) void
-# else
-# define PyMODINIT_FUNC void
-# endif
-#endif
-
-PyMODINIT_FUNC MODULE_INITFUNC(void); /* avoid compiler warnings */
-
static struct PyModuleDef pyexpatmodule = {
PyModuleDef_HEAD_INIT,
MODULE_NAME,
@@ -1666,7 +1692,7 @@ MODULE_INITFUNC(void)
PyModule_AddObject(m, "XMLParserType", (PyObject *) &Xmlparsetype);
PyModule_AddStringConstant(m, "EXPAT_VERSION",
- (char *) XML_ExpatVersion());
+ XML_ExpatVersion());
{
XML_Expat_Version info = XML_ExpatVersionInfo();
PyModule_AddObject(m, "version_info",
@@ -1746,7 +1772,7 @@ MODULE_INITFUNC(void)
#define MYCONST(name) \
if (PyModule_AddStringConstant(errors_module, #name, \
- (char *)XML_ErrorString(name)) < 0) \
+ XML_ErrorString(name)) < 0) \
return NULL; \
tmpnum = PyLong_FromLong(name); \
if (tmpnum == NULL) return NULL; \
@@ -1957,3 +1983,8 @@ static struct HandlerInfo handler_info[] = {
{NULL, NULL, NULL} /* sentinel */
};
+
+/*[clinic input]
+dump buffer
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=524ce2e021e4eba6]*/
diff --git a/Modules/python.c b/Modules/python.c
deleted file mode 100644
index 9811c01d49..0000000000
--- a/Modules/python.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/* Minimal main program -- everything is loaded from the library */
-
-#include "Python.h"
-#include <locale.h>
-
-#ifdef __FreeBSD__
-#include <floatingpoint.h>
-#endif
-
-#ifdef MS_WINDOWS
-int
-wmain(int argc, wchar_t **argv)
-{
- return Py_Main(argc, argv);
-}
-#else
-
-int
-main(int argc, char **argv)
-{
- wchar_t **argv_copy;
- /* We need a second copy, as Python might modify the first one. */
- wchar_t **argv_copy2;
- int i, res;
- char *oldloc;
-#ifdef __FreeBSD__
- fp_except_t m;
-#endif
-
- argv_copy = (wchar_t **)PyMem_RawMalloc(sizeof(wchar_t*) * (argc+1));
- argv_copy2 = (wchar_t **)PyMem_RawMalloc(sizeof(wchar_t*) * (argc+1));
- if (!argv_copy || !argv_copy2) {
- fprintf(stderr, "out of memory\n");
- return 1;
- }
-
- /* 754 requires that FP exceptions run in "no stop" mode by default,
- * and until C vendors implement C99's ways to control FP exceptions,
- * Python requires non-stop mode. Alas, some platforms enable FP
- * exceptions by default. Here we disable them.
- */
-#ifdef __FreeBSD__
- m = fpgetmask();
- fpsetmask(m & ~FP_X_OFL);
-#endif
-
- oldloc = _PyMem_RawStrdup(setlocale(LC_ALL, NULL));
- if (!oldloc) {
- fprintf(stderr, "out of memory\n");
- return 1;
- }
-
- setlocale(LC_ALL, "");
- for (i = 0; i < argc; i++) {
- argv_copy[i] = _Py_char2wchar(argv[i], NULL);
- if (!argv_copy[i]) {
- PyMem_RawFree(oldloc);
- fprintf(stderr, "Fatal Python error: "
- "unable to decode the command line argument #%i\n",
- i + 1);
- return 1;
- }
- argv_copy2[i] = argv_copy[i];
- }
- argv_copy2[argc] = argv_copy[argc] = NULL;
-
- setlocale(LC_ALL, oldloc);
- PyMem_RawFree(oldloc);
- res = Py_Main(argc, argv_copy);
- for (i = 0; i < argc; i++) {
- PyMem_RawFree(argv_copy2[i]);
- }
- PyMem_RawFree(argv_copy);
- PyMem_RawFree(argv_copy2);
- return res;
-}
-#endif
diff --git a/Modules/readline.c b/Modules/readline.c
index ad51349bef..675b722804 100644
--- a/Modules/readline.c
+++ b/Modules/readline.c
@@ -237,6 +237,43 @@ Save a readline history file.\n\
The default filename is ~/.history.");
+#ifdef HAVE_RL_APPEND_HISTORY
+/* Exported function to save part of a readline history file */
+
+static PyObject *
+append_history_file(PyObject *self, PyObject *args)
+{
+ int nelements;
+ PyObject *filename_obj = Py_None, *filename_bytes;
+ char *filename;
+ int err;
+ if (!PyArg_ParseTuple(args, "i|O:append_history_file", &nelements, &filename_obj))
+ return NULL;
+ if (filename_obj != Py_None) {
+ if (!PyUnicode_FSConverter(filename_obj, &filename_bytes))
+ return NULL;
+ filename = PyBytes_AsString(filename_bytes);
+ } else {
+ filename_bytes = NULL;
+ filename = NULL;
+ }
+ errno = err = append_history(nelements, filename);
+ if (!err && _history_length >= 0)
+ history_truncate_file(filename, _history_length);
+ Py_XDECREF(filename_bytes);
+ errno = err;
+ if (errno)
+ return PyErr_SetFromErrno(PyExc_IOError);
+ Py_RETURN_NONE;
+}
+
+PyDoc_STRVAR(doc_append_history_file,
+"append_history_file(nelements[, filename]) -> None\n\
+Append the last nelements of the history list to file.\n\
+The default filename is ~/.history.");
+#endif
+
+
/* Set history length */
static PyObject*
@@ -748,6 +785,10 @@ static struct PyMethodDef readline_methods[] =
METH_VARARGS, doc_read_history_file},
{"write_history_file", write_history_file,
METH_VARARGS, doc_write_history_file},
+#ifdef HAVE_RL_APPEND_HISTORY
+ {"append_history_file", append_history_file,
+ METH_VARARGS, doc_append_history_file},
+#endif
{"get_history_item", get_history_item,
METH_VARARGS, doc_get_history_item},
{"get_current_history_length", (PyCFunction)get_current_history_length,
diff --git a/Modules/selectmodule.c b/Modules/selectmodule.c
index d436f52917..44ff3dd18b 100644
--- a/Modules/selectmodule.c
+++ b/Modules/selectmodule.c
@@ -193,51 +193,32 @@ select_select(PyObject *self, PyObject *args)
#endif /* SELECT_USES_HEAP */
PyObject *ifdlist, *ofdlist, *efdlist;
PyObject *ret = NULL;
- PyObject *tout = Py_None;
+ PyObject *timeout_obj = Py_None;
fd_set ifdset, ofdset, efdset;
struct timeval tv, *tvp;
int imax, omax, emax, max;
int n;
+ _PyTime_t timeout, deadline = 0;
/* convert arguments */
if (!PyArg_UnpackTuple(args, "select", 3, 4,
- &ifdlist, &ofdlist, &efdlist, &tout))
+ &ifdlist, &ofdlist, &efdlist, &timeout_obj))
return NULL;
- if (tout == Py_None)
- tvp = (struct timeval *)0;
- else if (!PyNumber_Check(tout)) {
- PyErr_SetString(PyExc_TypeError,
- "timeout must be a float or None");
- return NULL;
- }
+ if (timeout_obj == Py_None)
+ tvp = (struct timeval *)NULL;
else {
- /* On OpenBSD 5.4, timeval.tv_sec is a long.
- * Example: long is 64-bit, whereas time_t is 32-bit. */
- time_t sec;
- /* On OS X 64-bit, timeval.tv_usec is an int (and thus still 4
- bytes as required), but no longer defined by a long. */
- long usec;
- if (_PyTime_ObjectToTimeval(tout, &sec, &usec,
- _PyTime_ROUND_UP) == -1)
- return NULL;
-#ifdef MS_WINDOWS
- /* On Windows, timeval.tv_sec is a long (32 bit),
- * whereas time_t can be 64-bit. */
- assert(sizeof(tv.tv_sec) == sizeof(long));
-#if SIZEOF_TIME_T > SIZEOF_LONG
- if (sec > LONG_MAX) {
- PyErr_SetString(PyExc_OverflowError,
- "timeout is too large");
+ if (_PyTime_FromSecondsObject(&timeout, timeout_obj,
+ _PyTime_ROUND_CEILING) < 0) {
+ if (PyErr_ExceptionMatches(PyExc_TypeError)) {
+ PyErr_SetString(PyExc_TypeError,
+ "timeout must be a float or None");
+ }
return NULL;
}
-#endif
- tv.tv_sec = (long)sec;
-#else
- assert(sizeof(tv.tv_sec) >= sizeof(sec));
- tv.tv_sec = sec;
-#endif
- tv.tv_usec = usec;
+
+ if (_PyTime_AsTimeval(timeout, &tv, _PyTime_ROUND_CEILING) == -1)
+ return NULL;
if (tv.tv_sec < 0) {
PyErr_SetString(PyExc_ValueError, "timeout must be non-negative");
return NULL;
@@ -245,7 +226,6 @@ select_select(PyObject *self, PyObject *args)
tvp = &tv;
}
-
#ifdef SELECT_USES_HEAP
/* Allocate memory for the lists */
rfd2obj = PyMem_NEW(pylist, FD_SETSIZE + 1);
@@ -258,6 +238,7 @@ select_select(PyObject *self, PyObject *args)
return PyErr_NoMemory();
}
#endif /* SELECT_USES_HEAP */
+
/* Convert sequences to fd_sets, and get maximum fd number
* propagates the Python exception set in seq2set()
*/
@@ -270,13 +251,37 @@ select_select(PyObject *self, PyObject *args)
goto finally;
if ((emax=seq2set(efdlist, &efdset, efd2obj)) < 0)
goto finally;
+
max = imax;
if (omax > max) max = omax;
if (emax > max) max = emax;
- Py_BEGIN_ALLOW_THREADS
- n = select(max, &ifdset, &ofdset, &efdset, tvp);
- Py_END_ALLOW_THREADS
+ if (tvp)
+ deadline = _PyTime_GetMonotonicClock() + timeout;
+
+ do {
+ Py_BEGIN_ALLOW_THREADS
+ errno = 0;
+ n = select(max, &ifdset, &ofdset, &efdset, tvp);
+ Py_END_ALLOW_THREADS
+
+ if (errno != EINTR)
+ break;
+
+ /* select() was interrupted by a signal */
+ if (PyErr_CheckSignals())
+ goto finally;
+
+ if (tvp) {
+ timeout = deadline - _PyTime_GetMonotonicClock();
+ if (timeout < 0) {
+ n = 0;
+ break;
+ }
+ _PyTime_AsTimeval_noraise(timeout, &tv, _PyTime_ROUND_CEILING);
+ /* retry select() with the recomputed timeout */
+ }
+ } while (1);
#ifdef MS_WINDOWS
if (n == SOCKET_ERROR) {
@@ -516,30 +521,39 @@ any descriptors that have events or errors to report.");
static PyObject *
poll_poll(pollObject *self, PyObject *args)
{
- PyObject *result_list = NULL, *tout = NULL;
- int timeout = 0, poll_result, i, j;
+ PyObject *result_list = NULL, *timeout_obj = NULL;
+ int poll_result, i, j;
PyObject *value = NULL, *num = NULL;
+ _PyTime_t timeout, ms, deadline;
+ int async_err = 0;
- if (!PyArg_UnpackTuple(args, "poll", 0, 1, &tout)) {
+ if (!PyArg_ParseTuple(args, "|O:poll", &timeout_obj)) {
return NULL;
}
/* Check values for timeout */
- if (tout == NULL || tout == Py_None)
+ if (timeout_obj == NULL || timeout_obj == Py_None) {
timeout = -1;
- else if (!PyNumber_Check(tout)) {
- PyErr_SetString(PyExc_TypeError,
- "timeout must be an integer or None");
- return NULL;
+ ms = -1;
+ deadline = 0; /* initialize to prevent gcc warning */
}
else {
- tout = PyNumber_Long(tout);
- if (!tout)
+ if (_PyTime_FromMillisecondsObject(&timeout, timeout_obj,
+ _PyTime_ROUND_CEILING) < 0) {
+ if (PyErr_ExceptionMatches(PyExc_TypeError)) {
+ PyErr_SetString(PyExc_TypeError,
+ "timeout must be an integer or None");
+ }
return NULL;
- timeout = _PyLong_AsInt(tout);
- Py_DECREF(tout);
- if (timeout == -1 && PyErr_Occurred())
+ }
+
+ ms = _PyTime_AsMilliseconds(timeout, _PyTime_ROUND_CEILING);
+ if (ms < INT_MIN || ms > INT_MAX) {
+ PyErr_SetString(PyExc_OverflowError, "timeout is too large");
return NULL;
+ }
+
+ deadline = _PyTime_GetMonotonicClock() + timeout;
}
/* Avoid concurrent poll() invocation, issue 8865 */
@@ -557,14 +571,38 @@ poll_poll(pollObject *self, PyObject *args)
self->poll_running = 1;
/* call poll() */
- Py_BEGIN_ALLOW_THREADS
- poll_result = poll(self->ufds, self->ufd_len, timeout);
- Py_END_ALLOW_THREADS
+ async_err = 0;
+ do {
+ Py_BEGIN_ALLOW_THREADS
+ errno = 0;
+ poll_result = poll(self->ufds, self->ufd_len, (int)ms);
+ Py_END_ALLOW_THREADS
+
+ if (errno != EINTR)
+ break;
+
+ /* poll() was interrupted by a signal */
+ if (PyErr_CheckSignals()) {
+ async_err = 1;
+ break;
+ }
+
+ if (timeout >= 0) {
+ timeout = deadline - _PyTime_GetMonotonicClock();
+ if (timeout < 0) {
+ poll_result = 0;
+ break;
+ }
+ ms = _PyTime_AsMilliseconds(timeout, _PyTime_ROUND_CEILING);
+ /* retry poll() with the recomputed timeout */
+ }
+ } while (1);
self->poll_running = 0;
if (poll_result < 0) {
- PyErr_SetFromErrno(PyExc_OSError);
+ if (!async_err)
+ PyErr_SetFromErrno(PyExc_OSError);
return NULL;
}
@@ -573,41 +611,40 @@ poll_poll(pollObject *self, PyObject *args)
result_list = PyList_New(poll_result);
if (!result_list)
return NULL;
- else {
- for (i = 0, j = 0; j < poll_result; j++) {
- /* skip to the next fired descriptor */
- while (!self->ufds[i].revents) {
- i++;
- }
- /* if we hit a NULL return, set value to NULL
- and break out of loop; code at end will
- clean up result_list */
- value = PyTuple_New(2);
- if (value == NULL)
- goto error;
- num = PyLong_FromLong(self->ufds[i].fd);
- if (num == NULL) {
- Py_DECREF(value);
- goto error;
- }
- PyTuple_SET_ITEM(value, 0, num);
-
- /* The &0xffff is a workaround for AIX. 'revents'
- is a 16-bit short, and IBM assigned POLLNVAL
- to be 0x8000, so the conversion to int results
- in a negative number. See SF bug #923315. */
- num = PyLong_FromLong(self->ufds[i].revents & 0xffff);
- if (num == NULL) {
- Py_DECREF(value);
- goto error;
- }
- PyTuple_SET_ITEM(value, 1, num);
- if ((PyList_SetItem(result_list, j, value)) == -1) {
- Py_DECREF(value);
- goto error;
- }
+
+ for (i = 0, j = 0; j < poll_result; j++) {
+ /* skip to the next fired descriptor */
+ while (!self->ufds[i].revents) {
i++;
}
+ /* if we hit a NULL return, set value to NULL
+ and break out of loop; code at end will
+ clean up result_list */
+ value = PyTuple_New(2);
+ if (value == NULL)
+ goto error;
+ num = PyLong_FromLong(self->ufds[i].fd);
+ if (num == NULL) {
+ Py_DECREF(value);
+ goto error;
+ }
+ PyTuple_SET_ITEM(value, 0, num);
+
+ /* The &0xffff is a workaround for AIX. 'revents'
+ is a 16-bit short, and IBM assigned POLLNVAL
+ to be 0x8000, so the conversion to int results
+ in a negative number. See SF bug #923315. */
+ num = PyLong_FromLong(self->ufds[i].revents & 0xffff);
+ if (num == NULL) {
+ Py_DECREF(value);
+ goto error;
+ }
+ PyTuple_SET_ITEM(value, 1, num);
+ if ((PyList_SetItem(result_list, j, value)) == -1) {
+ Py_DECREF(value);
+ goto error;
+ }
+ i++;
}
return result_list;
@@ -718,14 +755,10 @@ static int devpoll_flush(devpollObject *self)
size = sizeof(struct pollfd)*self->n_fds;
self->n_fds = 0;
- Py_BEGIN_ALLOW_THREADS
- n = write(self->fd_devpoll, self->fds, size);
- Py_END_ALLOW_THREADS
-
- if (n == -1 ) {
- PyErr_SetFromErrno(PyExc_IOError);
+ n = _Py_write(self->fd_devpoll, self->fds, size);
+ if (n == -1)
return -1;
- }
+
if (n < size) {
/*
** Data writed to /dev/poll is a binary data structure. It is not
@@ -843,40 +876,38 @@ static PyObject *
devpoll_poll(devpollObject *self, PyObject *args)
{
struct dvpoll dvp;
- PyObject *result_list = NULL, *tout = NULL;
+ PyObject *result_list = NULL, *timeout_obj = NULL;
int poll_result, i;
- long timeout;
PyObject *value, *num1, *num2;
+ _PyTime_t timeout, ms, deadline = 0;
if (self->fd_devpoll < 0)
return devpoll_err_closed();
- if (!PyArg_UnpackTuple(args, "poll", 0, 1, &tout)) {
+ if (!PyArg_ParseTuple(args, "|O:poll", &timeout_obj)) {
return NULL;
}
/* Check values for timeout */
- if (tout == NULL || tout == Py_None)
+ if (timeout_obj == NULL || timeout_obj == Py_None) {
timeout = -1;
- else if (!PyNumber_Check(tout)) {
- PyErr_SetString(PyExc_TypeError,
- "timeout must be an integer or None");
- return NULL;
+ ms = -1;
}
else {
- tout = PyNumber_Long(tout);
- if (!tout)
- return NULL;
- timeout = PyLong_AsLong(tout);
- Py_DECREF(tout);
- if (timeout == -1 && PyErr_Occurred())
+ if (_PyTime_FromMillisecondsObject(&timeout, timeout_obj,
+ _PyTime_ROUND_CEILING) < 0) {
+ if (PyErr_ExceptionMatches(PyExc_TypeError)) {
+ PyErr_SetString(PyExc_TypeError,
+ "timeout must be an integer or None");
+ }
return NULL;
- }
+ }
- if ((timeout < -1) || (timeout > INT_MAX)) {
- PyErr_SetString(PyExc_OverflowError,
- "timeout is out of range");
- return NULL;
+ ms = _PyTime_AsMilliseconds(timeout, _PyTime_ROUND_CEILING);
+ if (ms < -1 || ms > INT_MAX) {
+ PyErr_SetString(PyExc_OverflowError, "timeout is too large");
+ return NULL;
+ }
}
if (devpoll_flush(self))
@@ -884,12 +915,36 @@ devpoll_poll(devpollObject *self, PyObject *args)
dvp.dp_fds = self->fds;
dvp.dp_nfds = self->max_n_fds;
- dvp.dp_timeout = timeout;
+ dvp.dp_timeout = (int)ms;
- /* call devpoll() */
- Py_BEGIN_ALLOW_THREADS
- poll_result = ioctl(self->fd_devpoll, DP_POLL, &dvp);
- Py_END_ALLOW_THREADS
+ if (timeout >= 0)
+ deadline = _PyTime_GetMonotonicClock() + timeout;
+
+ do {
+ /* call devpoll() */
+ Py_BEGIN_ALLOW_THREADS
+ errno = 0;
+ poll_result = ioctl(self->fd_devpoll, DP_POLL, &dvp);
+ Py_END_ALLOW_THREADS
+
+ if (errno != EINTR)
+ break;
+
+ /* devpoll() was interrupted by a signal */
+ if (PyErr_CheckSignals())
+ return NULL;
+
+ if (timeout >= 0) {
+ timeout = deadline - _PyTime_GetMonotonicClock();
+ if (timeout < 0) {
+ poll_result = 0;
+ break;
+ }
+ ms = _PyTime_AsMilliseconds(timeout, _PyTime_ROUND_CEILING);
+ dvp.dp_timeout = (int)ms;
+ /* retry devpoll() with the recomputed timeout */
+ }
+ } while (1);
if (poll_result < 0) {
PyErr_SetFromErrno(PyExc_IOError);
@@ -897,28 +952,26 @@ devpoll_poll(devpollObject *self, PyObject *args)
}
/* build the result list */
-
result_list = PyList_New(poll_result);
if (!result_list)
return NULL;
- else {
- for (i = 0; i < poll_result; i++) {
- num1 = PyLong_FromLong(self->fds[i].fd);
- num2 = PyLong_FromLong(self->fds[i].revents);
- if ((num1 == NULL) || (num2 == NULL)) {
- Py_XDECREF(num1);
- Py_XDECREF(num2);
- goto error;
- }
- value = PyTuple_Pack(2, num1, num2);
- Py_DECREF(num1);
- Py_DECREF(num2);
- if (value == NULL)
- goto error;
- if ((PyList_SetItem(result_list, i, value)) == -1) {
- Py_DECREF(value);
- goto error;
- }
+
+ for (i = 0; i < poll_result; i++) {
+ num1 = PyLong_FromLong(self->fds[i].fd);
+ num2 = PyLong_FromLong(self->fds[i].revents);
+ if ((num1 == NULL) || (num2 == NULL)) {
+ Py_XDECREF(num1);
+ Py_XDECREF(num2);
+ goto error;
+ }
+ value = PyTuple_Pack(2, num1, num2);
+ Py_DECREF(num1);
+ Py_DECREF(num2);
+ if (value == NULL)
+ goto error;
+ if ((PyList_SetItem(result_list, i, value)) == -1) {
+ Py_DECREF(value);
+ goto error;
}
}
@@ -1013,7 +1066,6 @@ newDevPollObject(void)
struct pollfd *fds;
struct rlimit limit;
- Py_BEGIN_ALLOW_THREADS
/*
** If we try to process more that getrlimit()
** fds, the kernel will give an error, so
@@ -1021,18 +1073,14 @@ newDevPollObject(void)
** value, because we can change rlimit() anytime.
*/
limit_result = getrlimit(RLIMIT_NOFILE, &limit);
- if (limit_result != -1)
- fd_devpoll = _Py_open("/dev/poll", O_RDWR);
- Py_END_ALLOW_THREADS
-
if (limit_result == -1) {
PyErr_SetFromErrno(PyExc_OSError);
return NULL;
}
- if (fd_devpoll == -1) {
- PyErr_SetFromErrnoWithFilename(PyExc_IOError, "/dev/poll");
+
+ fd_devpoll = _Py_open("/dev/poll", O_RDWR);
+ if (fd_devpoll == -1)
return NULL;
- }
fds = PyMem_NEW(struct pollfd, limit.rlim_cur);
if (fds == NULL) {
@@ -1437,34 +1485,46 @@ fd is the target file descriptor of the operation.");
static PyObject *
pyepoll_poll(pyEpoll_Object *self, PyObject *args, PyObject *kwds)
{
- double dtimeout = -1.;
- int timeout;
+ static char *kwlist[] = {"timeout", "maxevents", NULL};
+ PyObject *timeout_obj = NULL;
int maxevents = -1;
int nfds, i;
PyObject *elist = NULL, *etuple = NULL;
struct epoll_event *evs = NULL;
- static char *kwlist[] = {"timeout", "maxevents", NULL};
+ _PyTime_t timeout, ms, deadline;
if (self->epfd < 0)
return pyepoll_err_closed();
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "|di:poll", kwlist,
- &dtimeout, &maxevents)) {
+ if (!PyArg_ParseTupleAndKeywords(args, kwds, "|Oi:poll", kwlist,
+ &timeout_obj, &maxevents)) {
return NULL;
}
- if (dtimeout < 0) {
+ if (timeout_obj == NULL || timeout_obj == Py_None) {
timeout = -1;
- }
- else if (dtimeout * 1000.0 > INT_MAX) {
- PyErr_SetString(PyExc_OverflowError,
- "timeout is too large");
- return NULL;
+ ms = -1;
+ deadline = 0; /* initialize to prevent gcc warning */
}
else {
- /* epoll_wait() has a resolution of 1 millisecond, round away from zero
- to wait *at least* dtimeout seconds. */
- timeout = (int)ceil(dtimeout * 1000.0);
+ /* epoll_wait() has a resolution of 1 millisecond, round towards
+ infinity to wait at least timeout seconds. */
+ if (_PyTime_FromSecondsObject(&timeout, timeout_obj,
+ _PyTime_ROUND_CEILING) < 0) {
+ if (PyErr_ExceptionMatches(PyExc_TypeError)) {
+ PyErr_SetString(PyExc_TypeError,
+ "timeout must be an integer or None");
+ }
+ return NULL;
+ }
+
+ ms = _PyTime_AsMilliseconds(timeout, _PyTime_ROUND_CEILING);
+ if (ms < INT_MIN || ms > INT_MAX) {
+ PyErr_SetString(PyExc_OverflowError, "timeout is too large");
+ return NULL;
+ }
+
+ deadline = _PyTime_GetMonotonicClock() + timeout;
}
if (maxevents == -1) {
@@ -1483,9 +1543,30 @@ pyepoll_poll(pyEpoll_Object *self, PyObject *args, PyObject *kwds)
return NULL;
}
- Py_BEGIN_ALLOW_THREADS
- nfds = epoll_wait(self->epfd, evs, maxevents, timeout);
- Py_END_ALLOW_THREADS
+ do {
+ Py_BEGIN_ALLOW_THREADS
+ errno = 0;
+ nfds = epoll_wait(self->epfd, evs, maxevents, (int)ms);
+ Py_END_ALLOW_THREADS
+
+ if (errno != EINTR)
+ break;
+
+ /* poll() was interrupted by a signal */
+ if (PyErr_CheckSignals())
+ goto error;
+
+ if (timeout >= 0) {
+ timeout = deadline - _PyTime_GetMonotonicClock();
+ if (timeout < 0) {
+ nfds = 0;
+ break;
+ }
+ ms = _PyTime_AsMilliseconds(timeout, _PyTime_ROUND_CEILING);
+ /* retry epoll_wait() with the recomputed timeout */
+ }
+ } while(1);
+
if (nfds < 0) {
PyErr_SetFromErrno(PyExc_OSError);
goto error;
@@ -2022,8 +2103,9 @@ kqueue_queue_control(kqueue_queue_Object *self, PyObject *args)
PyObject *result = NULL;
struct kevent *evl = NULL;
struct kevent *chl = NULL;
- struct timespec timeout;
+ struct timespec timeoutspec;
struct timespec *ptimeoutspec;
+ _PyTime_t timeout, deadline = 0;
if (self->kqfd < 0)
return kqueue_queue_err_closed();
@@ -2041,24 +2123,25 @@ kqueue_queue_control(kqueue_queue_Object *self, PyObject *args)
if (otimeout == Py_None || otimeout == NULL) {
ptimeoutspec = NULL;
}
- else if (PyNumber_Check(otimeout)) {
- if (_PyTime_ObjectToTimespec(otimeout, &timeout.tv_sec,
- &timeout.tv_nsec, _PyTime_ROUND_UP) == -1)
+ else {
+ if (_PyTime_FromSecondsObject(&timeout,
+ otimeout, _PyTime_ROUND_CEILING) < 0) {
+ PyErr_Format(PyExc_TypeError,
+ "timeout argument must be an number "
+ "or None, got %.200s",
+ Py_TYPE(otimeout)->tp_name);
return NULL;
+ }
- if (timeout.tv_sec < 0) {
+ if (_PyTime_AsTimespec(timeout, &timeoutspec) == -1)
+ return NULL;
+
+ if (timeoutspec.tv_sec < 0) {
PyErr_SetString(PyExc_ValueError,
"timeout must be positive or None");
return NULL;
}
- ptimeoutspec = &timeout;
- }
- else {
- PyErr_Format(PyExc_TypeError,
- "timeout argument must be an number "
- "or None, got %.200s",
- Py_TYPE(otimeout)->tp_name);
- return NULL;
+ ptimeoutspec = &timeoutspec;
}
if (ch != NULL && ch != Py_None) {
@@ -2103,10 +2186,34 @@ kqueue_queue_control(kqueue_queue_Object *self, PyObject *args)
}
}
- Py_BEGIN_ALLOW_THREADS
- gotevents = kevent(self->kqfd, chl, nchanges,
- evl, nevents, ptimeoutspec);
- Py_END_ALLOW_THREADS
+ if (ptimeoutspec)
+ deadline = _PyTime_GetMonotonicClock() + timeout;
+
+ do {
+ Py_BEGIN_ALLOW_THREADS
+ errno = 0;
+ gotevents = kevent(self->kqfd, chl, nchanges,
+ evl, nevents, ptimeoutspec);
+ Py_END_ALLOW_THREADS
+
+ if (errno != EINTR)
+ break;
+
+ /* kevent() was interrupted by a signal */
+ if (PyErr_CheckSignals())
+ goto error;
+
+ if (ptimeoutspec) {
+ timeout = deadline - _PyTime_GetMonotonicClock();
+ if (timeout < 0) {
+ gotevents = 0;
+ break;
+ }
+ if (_PyTime_AsTimespec(timeout, &timeoutspec) == -1)
+ goto error;
+ /* retry kevent() with the recomputed timeout */
+ }
+ } while (1);
if (gotevents == -1) {
PyErr_SetFromErrno(PyExc_OSError);
diff --git a/Modules/sha1module.c b/Modules/sha1module.c
index b44fe189d2..74b94ba270 100644
--- a/Modules/sha1module.c
+++ b/Modules/sha1module.c
@@ -18,7 +18,13 @@
#include "Python.h"
#include "hashlib.h"
+#include "pystrhex.h"
+/*[clinic input]
+module _sha1
+class SHA1Type "SHA1object *" "&PyType_Type"
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=3dc9a20d1becb759]*/
/* Some useful types */
@@ -48,6 +54,7 @@ typedef struct {
struct sha1_state hash_state;
} SHA1object;
+#include "clinic/sha1module.c.h"
/* ------------------------------------------------------------------------
*
@@ -309,10 +316,15 @@ SHA1_dealloc(PyObject *ptr)
/* External methods for a hash object */
-PyDoc_STRVAR(SHA1_copy__doc__, "Return a copy of the hash object.");
+/*[clinic input]
+SHA1Type.copy
+
+Return a copy of the hash object.
+[clinic start generated code]*/
static PyObject *
-SHA1_copy(SHA1object *self, PyObject *unused)
+SHA1Type_copy_impl(SHA1object *self)
+/*[clinic end generated code: output=b4e001264620f02a input=b7eae10df6f89b36]*/
{
SHA1object *newobj;
@@ -323,11 +335,15 @@ SHA1_copy(SHA1object *self, PyObject *unused)
return (PyObject *)newobj;
}
-PyDoc_STRVAR(SHA1_digest__doc__,
-"Return the digest value as a string of binary data.");
+/*[clinic input]
+SHA1Type.digest
+
+Return the digest value as a string of binary data.
+[clinic start generated code]*/
static PyObject *
-SHA1_digest(SHA1object *self, PyObject *unused)
+SHA1Type_digest_impl(SHA1object *self)
+/*[clinic end generated code: output=2f05302a7aa2b5cb input=205d47e1927fd009]*/
{
unsigned char digest[SHA1_DIGESTSIZE];
struct sha1_state temp;
@@ -337,54 +353,41 @@ SHA1_digest(SHA1object *self, PyObject *unused)
return PyBytes_FromStringAndSize((const char *)digest, SHA1_DIGESTSIZE);
}
-PyDoc_STRVAR(SHA1_hexdigest__doc__,
-"Return the digest value as a string of hexadecimal digits.");
+/*[clinic input]
+SHA1Type.hexdigest
+
+Return the digest value as a string of hexadecimal digits.
+[clinic start generated code]*/
static PyObject *
-SHA1_hexdigest(SHA1object *self, PyObject *unused)
+SHA1Type_hexdigest_impl(SHA1object *self)
+/*[clinic end generated code: output=4161fd71e68c6659 input=97691055c0c74ab0]*/
{
unsigned char digest[SHA1_DIGESTSIZE];
struct sha1_state temp;
- PyObject *retval;
- Py_UCS1 *hex_digest;
- int i, j;
/* Get the raw (binary) digest value */
temp = self->hash_state;
sha1_done(&temp, digest);
- /* Create a new string */
- retval = PyUnicode_New(SHA1_DIGESTSIZE * 2, 127);
- if (!retval)
- return NULL;
- hex_digest = PyUnicode_1BYTE_DATA(retval);
-
- /* Make hex version of the digest */
- for(i=j=0; i<SHA1_DIGESTSIZE; i++) {
- unsigned char c;
- c = (digest[i] >> 4) & 0xf;
- hex_digest[j++] = Py_hexdigits[c];
- c = (digest[i] & 0xf);
- hex_digest[j++] = Py_hexdigits[c];
- }
-#ifdef Py_DEBUG
- assert(_PyUnicode_CheckConsistency(retval, 1));
-#endif
- return retval;
+ return _Py_strhex((const char *)digest, SHA1_DIGESTSIZE);
}
-PyDoc_STRVAR(SHA1_update__doc__,
-"Update this hash object's state with the provided string.");
+/*[clinic input]
+SHA1Type.update
+
+ obj: object
+ /
+
+Update this hash object's state with the provided string.
+[clinic start generated code]*/
static PyObject *
-SHA1_update(SHA1object *self, PyObject *args)
+SHA1Type_update(SHA1object *self, PyObject *obj)
+/*[clinic end generated code: output=d9902f0e5015e9ae input=aad8e07812edbba3]*/
{
- PyObject *obj;
Py_buffer buf;
- if (!PyArg_ParseTuple(args, "O:update", &obj))
- return NULL;
-
GET_BUFFER_VIEW_OR_ERROUT(obj, &buf);
sha1_process(&self->hash_state, buf.buf, buf.len);
@@ -395,10 +398,10 @@ SHA1_update(SHA1object *self, PyObject *args)
}
static PyMethodDef SHA1_methods[] = {
- {"copy", (PyCFunction)SHA1_copy, METH_NOARGS, SHA1_copy__doc__},
- {"digest", (PyCFunction)SHA1_digest, METH_NOARGS, SHA1_digest__doc__},
- {"hexdigest", (PyCFunction)SHA1_hexdigest, METH_NOARGS, SHA1_hexdigest__doc__},
- {"update", (PyCFunction)SHA1_update, METH_VARARGS, SHA1_update__doc__},
+ SHA1TYPE_COPY_METHODDEF
+ SHA1TYPE_DIGEST_METHODDEF
+ SHA1TYPE_HEXDIGEST_METHODDEF
+ SHA1TYPE_UPDATE_METHODDEF
{NULL, NULL} /* sentinel */
};
@@ -474,27 +477,26 @@ static PyTypeObject SHA1type = {
/* The single module-level function: new() */
-PyDoc_STRVAR(SHA1_new__doc__,
-"Return a new SHA1 hash object; optionally initialized with a string.");
+/*[clinic input]
+_sha1.sha1
+
+ string: object(c_default="NULL") = b''
+
+Return a new SHA1 hash object; optionally initialized with a string.
+[clinic start generated code]*/
static PyObject *
-SHA1_new(PyObject *self, PyObject *args, PyObject *kwdict)
+_sha1_sha1_impl(PyModuleDef *module, PyObject *string)
+/*[clinic end generated code: output=3e4e841386b9e8db input=27ea54281d995ec2]*/
{
- static char *kwlist[] = {"string", NULL};
SHA1object *new;
- PyObject *data_obj = NULL;
Py_buffer buf;
- if (!PyArg_ParseTupleAndKeywords(args, kwdict, "|O:new", kwlist,
- &data_obj)) {
- return NULL;
- }
-
- if (data_obj)
- GET_BUFFER_VIEW_OR_ERROUT(data_obj, &buf);
+ if (string)
+ GET_BUFFER_VIEW_OR_ERROUT(string, &buf);
if ((new = newSHA1object()) == NULL) {
- if (data_obj)
+ if (string)
PyBuffer_Release(&buf);
return NULL;
}
@@ -503,11 +505,11 @@ SHA1_new(PyObject *self, PyObject *args, PyObject *kwdict)
if (PyErr_Occurred()) {
Py_DECREF(new);
- if (data_obj)
+ if (string)
PyBuffer_Release(&buf);
return NULL;
}
- if (data_obj) {
+ if (string) {
sha1_process(&new->hash_state, buf.buf, buf.len);
PyBuffer_Release(&buf);
}
@@ -519,7 +521,7 @@ SHA1_new(PyObject *self, PyObject *args, PyObject *kwdict)
/* List of functions exported by this module */
static struct PyMethodDef SHA1_functions[] = {
- {"sha1",(PyCFunction)SHA1_new, METH_VARARGS|METH_KEYWORDS,SHA1_new__doc__},
+ _SHA1_SHA1_METHODDEF
{NULL, NULL} /* Sentinel */
};
diff --git a/Modules/sha256module.c b/Modules/sha256module.c
index b05bfc172f..8c4def0572 100644
--- a/Modules/sha256module.c
+++ b/Modules/sha256module.c
@@ -19,7 +19,13 @@
#include "Python.h"
#include "structmember.h"
#include "hashlib.h"
+#include "pystrhex.h"
+/*[clinic input]
+module _sha256
+class SHA256Type "SHAobject *" "&PyType_Type"
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=71a39174d4f0a744]*/
/* Some useful types */
@@ -47,6 +53,8 @@ typedef struct {
int digestsize;
} SHAobject;
+#include "clinic/sha256module.c.h"
+
/* When run on a little-endian CPU we need to perform byte reversal on an
array of longwords. */
@@ -393,10 +401,15 @@ SHA_dealloc(PyObject *ptr)
/* External methods for a hash object */
-PyDoc_STRVAR(SHA256_copy__doc__, "Return a copy of the hash object.");
+/*[clinic input]
+SHA256Type.copy
+
+Return a copy of the hash object.
+[clinic start generated code]*/
static PyObject *
-SHA256_copy(SHAobject *self, PyObject *unused)
+SHA256Type_copy_impl(SHAobject *self)
+/*[clinic end generated code: output=1a8bbd66a0c9c168 input=f58840a618d4f2a7]*/
{
SHAobject *newobj;
@@ -412,11 +425,15 @@ SHA256_copy(SHAobject *self, PyObject *unused)
return (PyObject *)newobj;
}
-PyDoc_STRVAR(SHA256_digest__doc__,
-"Return the digest value as a string of binary data.");
+/*[clinic input]
+SHA256Type.digest
+
+Return the digest value as a string of binary data.
+[clinic start generated code]*/
static PyObject *
-SHA256_digest(SHAobject *self, PyObject *unused)
+SHA256Type_digest_impl(SHAobject *self)
+/*[clinic end generated code: output=46616a5e909fbc3d input=1fb752e58954157d]*/
{
unsigned char digest[SHA_DIGESTSIZE];
SHAobject temp;
@@ -426,54 +443,41 @@ SHA256_digest(SHAobject *self, PyObject *unused)
return PyBytes_FromStringAndSize((const char *)digest, self->digestsize);
}
-PyDoc_STRVAR(SHA256_hexdigest__doc__,
-"Return the digest value as a string of hexadecimal digits.");
+/*[clinic input]
+SHA256Type.hexdigest
+
+Return the digest value as a string of hexadecimal digits.
+[clinic start generated code]*/
static PyObject *
-SHA256_hexdigest(SHAobject *self, PyObject *unused)
+SHA256Type_hexdigest_impl(SHAobject *self)
+/*[clinic end generated code: output=725f8a7041ae97f3 input=0cc4c714693010d1]*/
{
unsigned char digest[SHA_DIGESTSIZE];
SHAobject temp;
- PyObject *retval;
- Py_UCS1 *hex_digest;
- int i, j;
/* Get the raw (binary) digest value */
SHAcopy(self, &temp);
sha_final(digest, &temp);
- /* Create a new string */
- retval = PyUnicode_New(self->digestsize * 2, 127);
- if (!retval)
- return NULL;
- hex_digest = PyUnicode_1BYTE_DATA(retval);
-
- /* Make hex version of the digest */
- for(i=j=0; i<self->digestsize; i++) {
- unsigned char c;
- c = (digest[i] >> 4) & 0xf;
- hex_digest[j++] = Py_hexdigits[c];
- c = (digest[i] & 0xf);
- hex_digest[j++] = Py_hexdigits[c];
- }
-#ifdef Py_DEBUG
- assert(_PyUnicode_CheckConsistency(retval, 1));
-#endif
- return retval;
+ return _Py_strhex((const char *)digest, self->digestsize);
}
-PyDoc_STRVAR(SHA256_update__doc__,
-"Update this hash object's state with the provided string.");
+/*[clinic input]
+SHA256Type.update
+
+ obj: object
+ /
+
+Update this hash object's state with the provided string.
+[clinic start generated code]*/
static PyObject *
-SHA256_update(SHAobject *self, PyObject *args)
+SHA256Type_update(SHAobject *self, PyObject *obj)
+/*[clinic end generated code: output=0967fb2860c66af7 input=b2d449d5b30f0f5a]*/
{
- PyObject *obj;
Py_buffer buf;
- if (!PyArg_ParseTuple(args, "O:update", &obj))
- return NULL;
-
GET_BUFFER_VIEW_OR_ERROUT(obj, &buf);
sha_update(self, buf.buf, buf.len);
@@ -484,10 +488,10 @@ SHA256_update(SHAobject *self, PyObject *args)
}
static PyMethodDef SHA_methods[] = {
- {"copy", (PyCFunction)SHA256_copy, METH_NOARGS, SHA256_copy__doc__},
- {"digest", (PyCFunction)SHA256_digest, METH_NOARGS, SHA256_digest__doc__},
- {"hexdigest", (PyCFunction)SHA256_hexdigest, METH_NOARGS, SHA256_hexdigest__doc__},
- {"update", (PyCFunction)SHA256_update, METH_VARARGS, SHA256_update__doc__},
+ SHA256TYPE_COPY_METHODDEF
+ SHA256TYPE_DIGEST_METHODDEF
+ SHA256TYPE_HEXDIGEST_METHODDEF
+ SHA256TYPE_UPDATE_METHODDEF
{NULL, NULL} /* sentinel */
};
@@ -594,27 +598,26 @@ static PyTypeObject SHA256type = {
/* The single module-level function: new() */
-PyDoc_STRVAR(SHA256_new__doc__,
-"Return a new SHA-256 hash object; optionally initialized with a string.");
+/*[clinic input]
+_sha256.sha256
+
+ string: object(c_default="NULL") = b''
+
+Return a new SHA-256 hash object; optionally initialized with a string.
+[clinic start generated code]*/
static PyObject *
-SHA256_new(PyObject *self, PyObject *args, PyObject *kwdict)
+_sha256_sha256_impl(PyModuleDef *module, PyObject *string)
+/*[clinic end generated code: output=d70e6e2d97112844 input=09cce3fb855056b2]*/
{
- static char *kwlist[] = {"string", NULL};
SHAobject *new;
- PyObject *data_obj = NULL;
Py_buffer buf;
- if (!PyArg_ParseTupleAndKeywords(args, kwdict, "|O:new", kwlist,
- &data_obj)) {
- return NULL;
- }
-
- if (data_obj)
- GET_BUFFER_VIEW_OR_ERROUT(data_obj, &buf);
+ if (string)
+ GET_BUFFER_VIEW_OR_ERROUT(string, &buf);
if ((new = newSHA256object()) == NULL) {
- if (data_obj)
+ if (string)
PyBuffer_Release(&buf);
return NULL;
}
@@ -623,11 +626,11 @@ SHA256_new(PyObject *self, PyObject *args, PyObject *kwdict)
if (PyErr_Occurred()) {
Py_DECREF(new);
- if (data_obj)
+ if (string)
PyBuffer_Release(&buf);
return NULL;
}
- if (data_obj) {
+ if (string) {
sha_update(new, buf.buf, buf.len);
PyBuffer_Release(&buf);
}
@@ -635,27 +638,26 @@ SHA256_new(PyObject *self, PyObject *args, PyObject *kwdict)
return (PyObject *)new;
}
-PyDoc_STRVAR(SHA224_new__doc__,
-"Return a new SHA-224 hash object; optionally initialized with a string.");
+/*[clinic input]
+_sha256.sha224
+
+ string: object(c_default="NULL") = b''
+
+Return a new SHA-224 hash object; optionally initialized with a string.
+[clinic start generated code]*/
static PyObject *
-SHA224_new(PyObject *self, PyObject *args, PyObject *kwdict)
+_sha256_sha224_impl(PyModuleDef *module, PyObject *string)
+/*[clinic end generated code: output=f2822bf28416b42a input=27a04ba24c353a73]*/
{
- static char *kwlist[] = {"string", NULL};
SHAobject *new;
- PyObject *data_obj = NULL;
Py_buffer buf;
- if (!PyArg_ParseTupleAndKeywords(args, kwdict, "|O:new", kwlist,
- &data_obj)) {
- return NULL;
- }
-
- if (data_obj)
- GET_BUFFER_VIEW_OR_ERROUT(data_obj, &buf);
+ if (string)
+ GET_BUFFER_VIEW_OR_ERROUT(string, &buf);
if ((new = newSHA224object()) == NULL) {
- if (data_obj)
+ if (string)
PyBuffer_Release(&buf);
return NULL;
}
@@ -664,11 +666,11 @@ SHA224_new(PyObject *self, PyObject *args, PyObject *kwdict)
if (PyErr_Occurred()) {
Py_DECREF(new);
- if (data_obj)
+ if (string)
PyBuffer_Release(&buf);
return NULL;
}
- if (data_obj) {
+ if (string) {
sha_update(new, buf.buf, buf.len);
PyBuffer_Release(&buf);
}
@@ -680,8 +682,8 @@ SHA224_new(PyObject *self, PyObject *args, PyObject *kwdict)
/* List of functions exported by this module */
static struct PyMethodDef SHA_functions[] = {
- {"sha256", (PyCFunction)SHA256_new, METH_VARARGS|METH_KEYWORDS, SHA256_new__doc__},
- {"sha224", (PyCFunction)SHA224_new, METH_VARARGS|METH_KEYWORDS, SHA224_new__doc__},
+ _SHA256_SHA256_METHODDEF
+ _SHA256_SHA224_METHODDEF
{NULL, NULL} /* Sentinel */
};
diff --git a/Modules/sha512module.c b/Modules/sha512module.c
index 47c57e5c42..8237d867f4 100644
--- a/Modules/sha512module.c
+++ b/Modules/sha512module.c
@@ -19,6 +19,13 @@
#include "Python.h"
#include "structmember.h"
#include "hashlib.h"
+#include "pystrhex.h"
+
+/*[clinic input]
+module _sha512
+class SHA512Type "SHAobject *" "&PyType_Type"
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=81a3ccde92bcfe8d]*/
#ifdef PY_LONG_LONG /* If no PY_LONG_LONG, don't compile anything! */
@@ -49,6 +56,8 @@ typedef struct {
int digestsize;
} SHAobject;
+#include "clinic/sha512module.c.h"
+
/* When run on a little-endian CPU we need to perform byte reversal on an
array of longwords. */
@@ -459,10 +468,15 @@ SHA512_dealloc(PyObject *ptr)
/* External methods for a hash object */
-PyDoc_STRVAR(SHA512_copy__doc__, "Return a copy of the hash object.");
+/*[clinic input]
+SHA512Type.copy
+
+Return a copy of the hash object.
+[clinic start generated code]*/
static PyObject *
-SHA512_copy(SHAobject *self, PyObject *unused)
+SHA512Type_copy_impl(SHAobject *self)
+/*[clinic end generated code: output=adea896ed3164821 input=9f5f31e6c457776a]*/
{
SHAobject *newobj;
@@ -478,11 +492,15 @@ SHA512_copy(SHAobject *self, PyObject *unused)
return (PyObject *)newobj;
}
-PyDoc_STRVAR(SHA512_digest__doc__,
-"Return the digest value as a string of binary data.");
+/*[clinic input]
+SHA512Type.digest
+
+Return the digest value as a string of binary data.
+[clinic start generated code]*/
static PyObject *
-SHA512_digest(SHAobject *self, PyObject *unused)
+SHA512Type_digest_impl(SHAobject *self)
+/*[clinic end generated code: output=1080bbeeef7dde1b input=60c2cede9e023018]*/
{
unsigned char digest[SHA_DIGESTSIZE];
SHAobject temp;
@@ -492,54 +510,41 @@ SHA512_digest(SHAobject *self, PyObject *unused)
return PyBytes_FromStringAndSize((const char *)digest, self->digestsize);
}
-PyDoc_STRVAR(SHA512_hexdigest__doc__,
-"Return the digest value as a string of hexadecimal digits.");
+/*[clinic input]
+SHA512Type.hexdigest
+
+Return the digest value as a string of hexadecimal digits.
+[clinic start generated code]*/
static PyObject *
-SHA512_hexdigest(SHAobject *self, PyObject *unused)
+SHA512Type_hexdigest_impl(SHAobject *self)
+/*[clinic end generated code: output=7373305b8601e18b input=498b877b25cbe0a2]*/
{
unsigned char digest[SHA_DIGESTSIZE];
SHAobject temp;
- PyObject *retval;
- Py_UCS1 *hex_digest;
- int i, j;
/* Get the raw (binary) digest value */
SHAcopy(self, &temp);
sha512_final(digest, &temp);
- /* Create a new string */
- retval = PyUnicode_New(self->digestsize * 2, 127);
- if (!retval)
- return NULL;
- hex_digest = PyUnicode_1BYTE_DATA(retval);
-
- /* Make hex version of the digest */
- for (i=j=0; i<self->digestsize; i++) {
- unsigned char c;
- c = (digest[i] >> 4) & 0xf;
- hex_digest[j++] = Py_hexdigits[c];
- c = (digest[i] & 0xf);
- hex_digest[j++] = Py_hexdigits[c];
- }
-#ifdef Py_DEBUG
- assert(_PyUnicode_CheckConsistency(retval, 1));
-#endif
- return retval;
+ return _Py_strhex((const char *)digest, self->digestsize);
}
-PyDoc_STRVAR(SHA512_update__doc__,
-"Update this hash object's state with the provided string.");
+/*[clinic input]
+SHA512Type.update
+
+ obj: object
+ /
+
+Update this hash object's state with the provided string.
+[clinic start generated code]*/
static PyObject *
-SHA512_update(SHAobject *self, PyObject *args)
+SHA512Type_update(SHAobject *self, PyObject *obj)
+/*[clinic end generated code: output=1cf333e73995a79e input=ded2b46656566283]*/
{
- PyObject *obj;
Py_buffer buf;
- if (!PyArg_ParseTuple(args, "O:update", &obj))
- return NULL;
-
GET_BUFFER_VIEW_OR_ERROUT(obj, &buf);
sha512_update(self, buf.buf, buf.len);
@@ -548,12 +553,16 @@ SHA512_update(SHAobject *self, PyObject *args)
Py_INCREF(Py_None);
return Py_None;
}
+/*[clinic input]
+dump buffer
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=524ce2e021e4eba6]*/
static PyMethodDef SHA_methods[] = {
- {"copy", (PyCFunction)SHA512_copy, METH_NOARGS, SHA512_copy__doc__},
- {"digest", (PyCFunction)SHA512_digest, METH_NOARGS, SHA512_digest__doc__},
- {"hexdigest", (PyCFunction)SHA512_hexdigest, METH_NOARGS, SHA512_hexdigest__doc__},
- {"update", (PyCFunction)SHA512_update, METH_VARARGS, SHA512_update__doc__},
+ SHA512TYPE_COPY_METHODDEF
+ SHA512TYPE_DIGEST_METHODDEF
+ SHA512TYPE_HEXDIGEST_METHODDEF
+ SHA512TYPE_UPDATE_METHODDEF
{NULL, NULL} /* sentinel */
};
@@ -660,27 +669,26 @@ static PyTypeObject SHA512type = {
/* The single module-level function: new() */
-PyDoc_STRVAR(SHA512_new__doc__,
-"Return a new SHA-512 hash object; optionally initialized with a string.");
+/*[clinic input]
+_sha512.sha512
+
+ string: object(c_default="NULL") = b''
+
+Return a new SHA-512 hash object; optionally initialized with a string.
+[clinic start generated code]*/
static PyObject *
-SHA512_new(PyObject *self, PyObject *args, PyObject *kwdict)
+_sha512_sha512_impl(PyModuleDef *module, PyObject *string)
+/*[clinic end generated code: output=da13bc0a94da6de3 input=e69bad9ae9b6a308]*/
{
- static char *kwlist[] = {"string", NULL};
SHAobject *new;
- PyObject *data_obj = NULL;
Py_buffer buf;
- if (!PyArg_ParseTupleAndKeywords(args, kwdict, "|O:new", kwlist,
- &data_obj)) {
- return NULL;
- }
-
- if (data_obj)
- GET_BUFFER_VIEW_OR_ERROUT(data_obj, &buf);
+ if (string)
+ GET_BUFFER_VIEW_OR_ERROUT(string, &buf);
if ((new = newSHA512object()) == NULL) {
- if (data_obj)
+ if (string)
PyBuffer_Release(&buf);
return NULL;
}
@@ -689,11 +697,11 @@ SHA512_new(PyObject *self, PyObject *args, PyObject *kwdict)
if (PyErr_Occurred()) {
Py_DECREF(new);
- if (data_obj)
+ if (string)
PyBuffer_Release(&buf);
return NULL;
}
- if (data_obj) {
+ if (string) {
sha512_update(new, buf.buf, buf.len);
PyBuffer_Release(&buf);
}
@@ -701,27 +709,26 @@ SHA512_new(PyObject *self, PyObject *args, PyObject *kwdict)
return (PyObject *)new;
}
-PyDoc_STRVAR(SHA384_new__doc__,
-"Return a new SHA-384 hash object; optionally initialized with a string.");
+/*[clinic input]
+_sha512.sha384
+
+ string: object(c_default="NULL") = b''
+
+Return a new SHA-384 hash object; optionally initialized with a string.
+[clinic start generated code]*/
static PyObject *
-SHA384_new(PyObject *self, PyObject *args, PyObject *kwdict)
+_sha512_sha384_impl(PyModuleDef *module, PyObject *string)
+/*[clinic end generated code: output=ac731aea5509174d input=c9327788d4ea4545]*/
{
- static char *kwlist[] = {"string", NULL};
SHAobject *new;
- PyObject *data_obj = NULL;
Py_buffer buf;
- if (!PyArg_ParseTupleAndKeywords(args, kwdict, "|O:new", kwlist,
- &data_obj)) {
- return NULL;
- }
-
- if (data_obj)
- GET_BUFFER_VIEW_OR_ERROUT(data_obj, &buf);
+ if (string)
+ GET_BUFFER_VIEW_OR_ERROUT(string, &buf);
if ((new = newSHA384object()) == NULL) {
- if (data_obj)
+ if (string)
PyBuffer_Release(&buf);
return NULL;
}
@@ -730,11 +737,11 @@ SHA384_new(PyObject *self, PyObject *args, PyObject *kwdict)
if (PyErr_Occurred()) {
Py_DECREF(new);
- if (data_obj)
+ if (string)
PyBuffer_Release(&buf);
return NULL;
}
- if (data_obj) {
+ if (string) {
sha512_update(new, buf.buf, buf.len);
PyBuffer_Release(&buf);
}
@@ -743,11 +750,16 @@ SHA384_new(PyObject *self, PyObject *args, PyObject *kwdict)
}
+/*[clinic input]
+dump buffer
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=524ce2e021e4eba6]*/
+
/* List of functions exported by this module */
static struct PyMethodDef SHA_functions[] = {
- {"sha512", (PyCFunction)SHA512_new, METH_VARARGS|METH_KEYWORDS, SHA512_new__doc__},
- {"sha384", (PyCFunction)SHA384_new, METH_VARARGS|METH_KEYWORDS, SHA384_new__doc__},
+ _SHA512_SHA512_METHODDEF
+ _SHA512_SHA384_METHODDEF
{NULL, NULL} /* Sentinel */
};
diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c
index fedaddff35..70f3052149 100644
--- a/Modules/signalmodule.c
+++ b/Modules/signalmodule.c
@@ -7,6 +7,9 @@
#ifndef MS_WINDOWS
#include "posixmodule.h"
#endif
+#ifdef MS_WINDOWS
+#include "socketmodule.h" /* needed for SOCKET_T */
+#endif
#ifdef MS_WINDOWS
#include <windows.h>
@@ -49,6 +52,13 @@
# endif
#endif
+#include "clinic/signalmodule.c.h"
+
+/*[clinic input]
+module signal
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=b0301a3bde5fe9d3]*/
+
/*
NOTES ON THE INTERACTION BETWEEN SIGNALS AND THREADS
@@ -87,7 +97,20 @@ static volatile struct {
PyObject *func;
} Handlers[NSIG];
+#ifdef MS_WINDOWS
+#define INVALID_FD ((SOCKET_T)-1)
+
+static volatile struct {
+ SOCKET_T fd;
+ int use_send;
+ int send_err_set;
+ int send_errno;
+ int send_win_error;
+} wakeup = {INVALID_FD, 0, 0};
+#else
+#define INVALID_FD (-1)
static volatile sig_atomic_t wakeup_fd = -1;
+#endif
/* Speed up sigcheck() when none tripped */
static volatile sig_atomic_t is_tripped = 0;
@@ -172,7 +195,7 @@ checksignals_witharg(void * unused)
}
static int
-report_wakeup_error(void *data)
+report_wakeup_write_error(void *data)
{
int save_errno = errno;
errno = (int) (Py_intptr_t) data;
@@ -184,25 +207,87 @@ report_wakeup_error(void *data)
return 0;
}
+#ifdef MS_WINDOWS
+static int
+report_wakeup_send_error(void* Py_UNUSED(data))
+{
+ PyObject *res;
+
+ if (wakeup.send_win_error) {
+ /* PyErr_SetExcFromWindowsErr() invokes FormatMessage() which
+ recognizes the error codes used by both GetLastError() and
+ WSAGetLastError */
+ res = PyErr_SetExcFromWindowsErr(PyExc_OSError, wakeup.send_win_error);
+ }
+ else {
+ errno = wakeup.send_errno;
+ res = PyErr_SetFromErrno(PyExc_OSError);
+ }
+
+ assert(res == NULL);
+ wakeup.send_err_set = 0;
+
+ PySys_WriteStderr("Exception ignored when trying to send to the "
+ "signal wakeup fd:\n");
+ PyErr_WriteUnraisable(NULL);
+
+ return 0;
+}
+#endif /* MS_WINDOWS */
+
static void
trip_signal(int sig_num)
{
unsigned char byte;
- int rc = 0;
+ int fd;
+ Py_ssize_t rc;
Handlers[sig_num].tripped = 1;
- if (wakeup_fd != -1) {
+
+#ifdef MS_WINDOWS
+ fd = Py_SAFE_DOWNCAST(wakeup.fd, SOCKET_T, int);
+#else
+ fd = wakeup_fd;
+#endif
+
+ if (fd != INVALID_FD) {
byte = (unsigned char)sig_num;
- while ((rc = write(wakeup_fd, &byte, 1)) == -1 && errno == EINTR);
- if (rc == -1)
- Py_AddPendingCall(report_wakeup_error, (void *) (Py_intptr_t) errno);
+#ifdef MS_WINDOWS
+ if (wakeup.use_send) {
+ do {
+ rc = send(fd, &byte, 1, 0);
+ } while (rc < 0 && errno == EINTR);
+
+ /* we only have a storage for one error in the wakeup structure */
+ if (rc < 0 && !wakeup.send_err_set) {
+ wakeup.send_err_set = 1;
+ wakeup.send_errno = errno;
+ wakeup.send_win_error = GetLastError();
+ Py_AddPendingCall(report_wakeup_send_error, NULL);
+ }
+ }
+ else
+#endif
+ {
+ byte = (unsigned char)sig_num;
+
+ /* _Py_write_noraise() retries write() if write() is interrupted by
+ a signal (fails with EINTR). */
+ rc = _Py_write_noraise(fd, &byte, 1);
+
+ if (rc < 0) {
+ Py_AddPendingCall(report_wakeup_write_error,
+ (void *)(Py_intptr_t)errno);
+ }
+ }
+ }
+
+ if (!is_tripped) {
+ /* Set is_tripped after setting .tripped, as it gets
+ cleared in PyErr_CheckSignals() before .tripped. */
+ is_tripped = 1;
+ Py_AddPendingCall(checksignals_witharg, NULL);
}
- if (is_tripped)
- return;
- /* Set is_tripped after setting .tripped, as it gets
- cleared in PyErr_CheckSignals() before .tripped. */
- is_tripped = 1;
- Py_AddPendingCall(checksignals_witharg, NULL);
}
static void
@@ -227,7 +312,7 @@ signal_handler(int sig_num)
if (sig_num != SIGCHLD)
#endif
/* If the handler was not set up with sigaction, reinstall it. See
- * Python/pythonrun.c for the implementation of PyOS_setsig which
+ * Python/pylifecycle.c for the implementation of PyOS_setsig which
* makes this true. See also issue8354. */
PyOS_setsig(sig_num, signal_handler);
#endif
@@ -244,25 +329,37 @@ signal_handler(int sig_num)
#ifdef HAVE_ALARM
-static PyObject *
-signal_alarm(PyObject *self, PyObject *args)
+
+/*[clinic input]
+signal.alarm -> long
+
+ seconds: int
+ /
+
+Arrange for SIGALRM to arrive after the given number of seconds.
+[clinic start generated code]*/
+
+static long
+signal_alarm_impl(PyModuleDef *module, int seconds)
+/*[clinic end generated code: output=f5f9badaab25d3e7 input=0d5e97e0e6f39e86]*/
{
- int t;
- if (!PyArg_ParseTuple(args, "i:alarm", &t))
- return NULL;
/* alarm() returns the number of seconds remaining */
- return PyLong_FromLong((long)alarm(t));
+ return (long)alarm(seconds);
}
-PyDoc_STRVAR(alarm_doc,
-"alarm(seconds)\n\
-\n\
-Arrange for SIGALRM to arrive after the given number of seconds.");
#endif
#ifdef HAVE_PAUSE
+
+/*[clinic input]
+signal.pause
+
+Wait until a signal arrives.
+[clinic start generated code]*/
+
static PyObject *
-signal_pause(PyObject *self)
+signal_pause_impl(PyModuleDef *module)
+/*[clinic end generated code: output=9245704caa63bbe9 input=f03de0f875752062]*/
{
Py_BEGIN_ALLOW_THREADS
(void)pause();
@@ -273,29 +370,38 @@ signal_pause(PyObject *self)
if (PyErr_CheckSignals())
return NULL;
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
-PyDoc_STRVAR(pause_doc,
-"pause()\n\
-\n\
-Wait until a signal arrives.");
#endif
+/*[clinic input]
+signal.signal
+
+ signalnum: int
+ handler: object
+ /
+
+Set the action for the given signal.
+
+The action can be SIG_DFL, SIG_IGN, or a callable Python object.
+The previous action is returned. See getsignal() for possible return values.
+
+*** IMPORTANT NOTICE ***
+A signal handler function is called with two arguments:
+the first is the signal number, the second is the interrupted stack frame.
+[clinic start generated code]*/
+
static PyObject *
-signal_signal(PyObject *self, PyObject *args)
+signal_signal_impl(PyModuleDef *module, int signalnum, PyObject *handler)
+/*[clinic end generated code: output=622d7d0beebea546 input=deee84af5fa0432c]*/
{
- PyObject *obj;
- int sig_num;
PyObject *old_handler;
void (*func)(int);
- if (!PyArg_ParseTuple(args, "iO:signal", &sig_num, &obj))
- return NULL;
#ifdef MS_WINDOWS
- /* Validate that sig_num is one of the allowable signals */
- switch (sig_num) {
+ /* Validate that signalnum is one of the allowable signals */
+ switch (signalnum) {
case SIGABRT: break;
#ifdef SIGBREAK
/* Issue #10003: SIGBREAK is not documented as permitted, but works
@@ -319,61 +425,63 @@ signal_signal(PyObject *self, PyObject *args)
return NULL;
}
#endif
- if (sig_num < 1 || sig_num >= NSIG) {
+ if (signalnum < 1 || signalnum >= NSIG) {
PyErr_SetString(PyExc_ValueError,
"signal number out of range");
return NULL;
}
- if (obj == IgnoreHandler)
+ if (handler == IgnoreHandler)
func = SIG_IGN;
- else if (obj == DefaultHandler)
+ else if (handler == DefaultHandler)
func = SIG_DFL;
- else if (!PyCallable_Check(obj)) {
+ else if (!PyCallable_Check(handler)) {
PyErr_SetString(PyExc_TypeError,
"signal handler must be signal.SIG_IGN, signal.SIG_DFL, or a callable object");
return NULL;
}
else
func = signal_handler;
- if (PyOS_setsig(sig_num, func) == SIG_ERR) {
+ if (PyOS_setsig(signalnum, func) == SIG_ERR) {
PyErr_SetFromErrno(PyExc_OSError);
return NULL;
}
- old_handler = Handlers[sig_num].func;
- Handlers[sig_num].tripped = 0;
- Py_INCREF(obj);
- Handlers[sig_num].func = obj;
+ old_handler = Handlers[signalnum].func;
+ Handlers[signalnum].tripped = 0;
+ Py_INCREF(handler);
+ Handlers[signalnum].func = handler;
if (old_handler != NULL)
return old_handler;
else
Py_RETURN_NONE;
}
-PyDoc_STRVAR(signal_doc,
-"signal(sig, action) -> action\n\
-\n\
-Set the action for the given signal. The action can be SIG_DFL,\n\
-SIG_IGN, or a callable Python object. The previous action is\n\
-returned. See getsignal() for possible return values.\n\
-\n\
-*** IMPORTANT NOTICE ***\n\
-A signal handler function is called with two arguments:\n\
-the first is the signal number, the second is the interrupted stack frame.");
+/*[clinic input]
+signal.getsignal
+
+ signalnum: int
+ /
+
+Return the current action for the given signal.
+
+The return value can be:
+ SIG_IGN -- if the signal is being ignored
+ SIG_DFL -- if the default action for the signal is in effect
+ None -- if an unknown handler is in effect
+ anything else -- the callable Python object used as a handler
+[clinic start generated code]*/
static PyObject *
-signal_getsignal(PyObject *self, PyObject *args)
+signal_getsignal_impl(PyModuleDef *module, int signalnum)
+/*[clinic end generated code: output=d50ec355757e360c input=ac23a00f19dfa509]*/
{
- int sig_num;
PyObject *old_handler;
- if (!PyArg_ParseTuple(args, "i:getsignal", &sig_num))
- return NULL;
- if (sig_num < 1 || sig_num >= NSIG) {
+ if (signalnum < 1 || signalnum >= NSIG) {
PyErr_SetString(PyExc_ValueError,
"signal number out of range");
return NULL;
}
- old_handler = Handlers[sig_num].func;
+ old_handler = Handlers[signalnum].func;
if (old_handler != NULL) {
Py_INCREF(old_handler);
return old_handler;
@@ -383,53 +491,65 @@ signal_getsignal(PyObject *self, PyObject *args)
}
}
-PyDoc_STRVAR(getsignal_doc,
-"getsignal(sig) -> action\n\
-\n\
-Return the current action for the given signal. The return value can be:\n\
-SIG_IGN -- if the signal is being ignored\n\
-SIG_DFL -- if the default action for the signal is in effect\n\
-None -- if an unknown handler is in effect\n\
-anything else -- the callable Python object used as a handler");
-
#ifdef HAVE_SIGINTERRUPT
-PyDoc_STRVAR(siginterrupt_doc,
-"siginterrupt(sig, flag) -> None\n\
-change system call restart behaviour: if flag is False, system calls\n\
-will be restarted when interrupted by signal sig, else system calls\n\
-will be interrupted.");
+
+/*[clinic input]
+signal.siginterrupt
+
+ signalnum: int
+ flag: int
+ /
+
+Change system call restart behaviour.
+
+If flag is False, system calls will be restarted when interrupted by
+signal sig, else system calls will be interrupted.
+[clinic start generated code]*/
static PyObject *
-signal_siginterrupt(PyObject *self, PyObject *args)
+signal_siginterrupt_impl(PyModuleDef *module, int signalnum, int flag)
+/*[clinic end generated code: output=5dcf8b031b0e8044 input=4160acacca3e2099]*/
{
- int sig_num;
- int flag;
-
- if (!PyArg_ParseTuple(args, "ii:siginterrupt", &sig_num, &flag))
- return NULL;
- if (sig_num < 1 || sig_num >= NSIG) {
+ if (signalnum < 1 || signalnum >= NSIG) {
PyErr_SetString(PyExc_ValueError,
"signal number out of range");
return NULL;
}
- if (siginterrupt(sig_num, flag)<0) {
+ if (siginterrupt(signalnum, flag)<0) {
PyErr_SetFromErrno(PyExc_OSError);
return NULL;
}
-
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
#endif
-static PyObject *
+
+static PyObject*
signal_set_wakeup_fd(PyObject *self, PyObject *args)
{
- struct stat buf;
+ struct _Py_stat_struct status;
+#ifdef MS_WINDOWS
+ PyObject *fdobj;
+ SOCKET_T sockfd, old_sockfd;
+ int res;
+ int res_size = sizeof res;
+ PyObject *mod;
+ int is_socket;
+
+ if (!PyArg_ParseTuple(args, "O:set_wakeup_fd", &fdobj))
+ return NULL;
+
+ sockfd = PyLong_AsSocket_t(fdobj);
+ if (sockfd == (SOCKET_T)(-1) && PyErr_Occurred())
+ return NULL;
+#else
int fd, old_fd;
+
if (!PyArg_ParseTuple(args, "i:set_wakeup_fd", &fd))
return NULL;
+#endif
+
#ifdef WITH_THREAD
if (PyThread_get_thread_ident() != main_thread) {
PyErr_SetString(PyExc_ValueError,
@@ -437,21 +557,90 @@ signal_set_wakeup_fd(PyObject *self, PyObject *args)
return NULL;
}
#endif
- if (fd != -1 && (!_PyVerify_fd(fd) || fstat(fd, &buf) != 0)) {
- PyErr_SetString(PyExc_ValueError, "invalid fd");
- return NULL;
+
+#ifdef MS_WINDOWS
+ is_socket = 0;
+ if (sockfd != INVALID_FD) {
+ /* Import the _socket module to call WSAStartup() */
+ mod = PyImport_ImportModuleNoBlock("_socket");
+ if (mod == NULL)
+ return NULL;
+ Py_DECREF(mod);
+
+ /* test the socket */
+ if (getsockopt(sockfd, SOL_SOCKET, SO_ERROR,
+ (char *)&res, &res_size) != 0) {
+ int fd, err;
+
+ err = WSAGetLastError();
+ if (err != WSAENOTSOCK) {
+ PyErr_SetExcFromWindowsErr(PyExc_OSError, err);
+ return NULL;
+ }
+
+ fd = (int)sockfd;
+ if ((SOCKET_T)fd != sockfd || !_PyVerify_fd(fd)) {
+ PyErr_SetString(PyExc_ValueError, "invalid fd");
+ return NULL;
+ }
+
+ if (_Py_fstat(fd, &status) != 0)
+ return NULL;
+
+ /* on Windows, a file cannot be set to non-blocking mode */
+ }
+ else {
+ is_socket = 1;
+
+ /* Windows does not provide a function to test if a socket
+ is in non-blocking mode */
+ }
}
+
+ old_sockfd = wakeup.fd;
+ wakeup.fd = sockfd;
+ wakeup.use_send = is_socket;
+
+ if (old_sockfd != INVALID_FD)
+ return PyLong_FromSocket_t(old_sockfd);
+ else
+ return PyLong_FromLong(-1);
+#else
+ if (fd != -1) {
+ int blocking;
+
+ if (!_PyVerify_fd(fd)) {
+ PyErr_SetString(PyExc_ValueError, "invalid fd");
+ return NULL;
+ }
+
+ if (_Py_fstat(fd, &status) != 0)
+ return NULL;
+
+ blocking = _Py_get_blocking(fd);
+ if (blocking < 0)
+ return NULL;
+ if (blocking) {
+ PyErr_Format(PyExc_ValueError,
+ "the fd %i must be in non-blocking mode",
+ fd);
+ return NULL;
+ }
+ }
+
old_fd = wakeup_fd;
wakeup_fd = fd;
+
return PyLong_FromLong(old_fd);
+#endif
}
PyDoc_STRVAR(set_wakeup_fd_doc,
"set_wakeup_fd(fd) -> fd\n\
\n\
-Sets the fd to be written to (with '\\0') when a signal\n\
+Sets the fd to be written to (with the signal number) when a signal\n\
comes in. A library can use this to wakeup select or poll.\n\
-The previous fd is returned.\n\
+The previous fd or -1 is returned.\n\
\n\
The fd must be non-blocking.");
@@ -459,71 +648,85 @@ The fd must be non-blocking.");
int
PySignal_SetWakeupFd(int fd)
{
- int old_fd = wakeup_fd;
+ int old_fd;
if (fd < 0)
fd = -1;
+
+#ifdef MS_WINDOWS
+ old_fd = Py_SAFE_DOWNCAST(wakeup.fd, SOCKET_T, int);
+ wakeup.fd = fd;
+#else
+ old_fd = wakeup_fd;
wakeup_fd = fd;
+#endif
return old_fd;
}
#ifdef HAVE_SETITIMER
+
+/*[clinic input]
+signal.setitimer
+
+ which: int
+ seconds: double
+ interval: double = 0.0
+ /
+
+Sets given itimer (one of ITIMER_REAL, ITIMER_VIRTUAL or ITIMER_PROF).
+
+The timer will fire after value seconds and after that every interval seconds.
+The itimer can be cleared by setting seconds to zero.
+
+Returns old values as a tuple: (delay, interval).
+[clinic start generated code]*/
+
static PyObject *
-signal_setitimer(PyObject *self, PyObject *args)
+signal_setitimer_impl(PyModuleDef *module, int which, double seconds,
+ double interval)
+/*[clinic end generated code: output=9a9227a27bd05988 input=0d27d417cfcbd51a]*/
{
- double first;
- double interval = 0;
- int which;
struct itimerval new, old;
- if(!PyArg_ParseTuple(args, "id|d:setitimer", &which, &first, &interval))
- return NULL;
-
- timeval_from_double(first, &new.it_value);
+ timeval_from_double(seconds, &new.it_value);
timeval_from_double(interval, &new.it_interval);
/* Let OS check "which" value */
if (setitimer(which, &new, &old) != 0) {
- PyErr_SetFromErrno(ItimerError);
- return NULL;
+ PyErr_SetFromErrno(ItimerError);
+ return NULL;
}
return itimer_retval(&old);
}
-PyDoc_STRVAR(setitimer_doc,
-"setitimer(which, seconds[, interval])\n\
-\n\
-Sets given itimer (one of ITIMER_REAL, ITIMER_VIRTUAL\n\
-or ITIMER_PROF) to fire after value seconds and after\n\
-that every interval seconds.\n\
-The itimer can be cleared by setting seconds to zero.\n\
-\n\
-Returns old values as a tuple: (delay, interval).");
#endif
#ifdef HAVE_GETITIMER
+
+/*[clinic input]
+signal.getitimer
+
+ which: int
+ /
+
+Returns current value of given itimer.
+[clinic start generated code]*/
+
static PyObject *
-signal_getitimer(PyObject *self, PyObject *args)
+signal_getitimer_impl(PyModuleDef *module, int which)
+/*[clinic end generated code: output=d1349ab18aadc569 input=f7d21d38f3490627]*/
{
- int which;
struct itimerval old;
- if (!PyArg_ParseTuple(args, "i:getitimer", &which))
- return NULL;
-
if (getitimer(which, &old) != 0) {
- PyErr_SetFromErrno(ItimerError);
- return NULL;
+ PyErr_SetFromErrno(ItimerError);
+ return NULL;
}
return itimer_retval(&old);
}
-PyDoc_STRVAR(getitimer_doc,
-"getitimer(which)\n\
-\n\
-Returns current value of given itimer.");
#endif
#if defined(PYPTHREAD_SIGMASK) || defined(HAVE_SIGWAIT) || \
@@ -614,21 +817,28 @@ sigset_to_set(sigset_t mask)
#endif
#ifdef PYPTHREAD_SIGMASK
+
+/*[clinic input]
+signal.pthread_sigmask
+
+ how: int
+ mask: object
+ /
+
+Fetch and/or change the signal mask of the calling thread.
+[clinic start generated code]*/
+
static PyObject *
-signal_pthread_sigmask(PyObject *self, PyObject *args)
+signal_pthread_sigmask_impl(PyModuleDef *module, int how, PyObject *mask)
+/*[clinic end generated code: output=b043a9f0eeb1e075 input=f3b7d7a61b7b8283]*/
{
- int how;
- PyObject *signals;
- sigset_t mask, previous;
+ sigset_t newmask, previous;
int err;
- if (!PyArg_ParseTuple(args, "iO:pthread_sigmask", &how, &signals))
- return NULL;
-
- if (iterable_to_sigset(signals, &mask))
+ if (iterable_to_sigset(mask, &newmask))
return NULL;
- err = pthread_sigmask(how, &mask, &previous);
+ err = pthread_sigmask(how, &newmask, &previous);
if (err != 0) {
errno = err;
PyErr_SetFromErrno(PyExc_OSError);
@@ -642,16 +852,23 @@ signal_pthread_sigmask(PyObject *self, PyObject *args)
return sigset_to_set(previous);
}
-PyDoc_STRVAR(signal_pthread_sigmask_doc,
-"pthread_sigmask(how, mask) -> old mask\n\
-\n\
-Fetch and/or change the signal mask of the calling thread.");
#endif /* #ifdef PYPTHREAD_SIGMASK */
#ifdef HAVE_SIGPENDING
+
+/*[clinic input]
+signal.sigpending
+
+Examine pending signals.
+
+Returns a set of signal numbers that are pending for delivery to
+the calling thread.
+[clinic start generated code]*/
+
static PyObject *
-signal_sigpending(PyObject *self)
+signal_sigpending_impl(PyModuleDef *module)
+/*[clinic end generated code: output=bf4ced803e7e51dd input=e0036c016f874e29]*/
{
int err;
sigset_t mask;
@@ -661,25 +878,32 @@ signal_sigpending(PyObject *self)
return sigset_to_set(mask);
}
-PyDoc_STRVAR(signal_sigpending_doc,
-"sigpending() -> list\n\
-\n\
-Examine pending signals.");
#endif /* #ifdef HAVE_SIGPENDING */
#ifdef HAVE_SIGWAIT
+
+/*[clinic input]
+signal.sigwait
+
+ sigset: object
+ /
+
+Wait for a signal.
+
+Suspend execution of the calling thread until the delivery of one of the
+signals specified in the signal set sigset. The function accepts the signal
+and returns the signal number.
+[clinic start generated code]*/
+
static PyObject *
-signal_sigwait(PyObject *self, PyObject *args)
+signal_sigwait(PyModuleDef *module, PyObject *sigset)
+/*[clinic end generated code: output=dae53048b0336a5c input=11af2d82d83c2e94]*/
{
- PyObject *signals;
sigset_t set;
int err, signum;
- if (!PyArg_ParseTuple(args, "O:sigwait", &signals))
- return NULL;
-
- if (iterable_to_sigset(signals, &set))
+ if (iterable_to_sigset(sigset, &set))
return NULL;
Py_BEGIN_ALLOW_THREADS
@@ -693,11 +917,8 @@ signal_sigwait(PyObject *self, PyObject *args)
return PyLong_FromLong(signum);
}
-PyDoc_STRVAR(signal_sigwait_doc,
-"sigwait(sigset) -> signum\n\
-\n\
-Wait a signal.");
-#endif /* #ifdef HAVE_SIGPENDING */
+#endif /* #ifdef HAVE_SIGWAIT */
+
#if defined(HAVE_SIGWAITINFO) || defined(HAVE_SIGTIMEDWAIT)
static int initialized;
@@ -752,100 +973,136 @@ fill_siginfo(siginfo_t *si)
#endif
#ifdef HAVE_SIGWAITINFO
+
+/*[clinic input]
+signal.sigwaitinfo
+
+ sigset: object
+ /
+
+Wait synchronously until one of the signals in *sigset* is delivered.
+
+Returns a struct_siginfo containing information about the signal.
+[clinic start generated code]*/
+
static PyObject *
-signal_sigwaitinfo(PyObject *self, PyObject *args)
+signal_sigwaitinfo(PyModuleDef *module, PyObject *sigset)
+/*[clinic end generated code: output=0bb53b07e5e926b5 input=f3779a74a991e171]*/
{
- PyObject *signals;
sigset_t set;
siginfo_t si;
int err;
+ int async_err = 0;
- if (!PyArg_ParseTuple(args, "O:sigwaitinfo", &signals))
+ if (iterable_to_sigset(sigset, &set))
return NULL;
- if (iterable_to_sigset(signals, &set))
- return NULL;
-
- Py_BEGIN_ALLOW_THREADS
- err = sigwaitinfo(&set, &si);
- Py_END_ALLOW_THREADS
+ do {
+ Py_BEGIN_ALLOW_THREADS
+ err = sigwaitinfo(&set, &si);
+ Py_END_ALLOW_THREADS
+ } while (err == -1
+ && errno == EINTR && !(async_err = PyErr_CheckSignals()));
if (err == -1)
- return PyErr_SetFromErrno(PyExc_OSError);
+ return (!async_err) ? PyErr_SetFromErrno(PyExc_OSError) : NULL;
return fill_siginfo(&si);
}
-PyDoc_STRVAR(signal_sigwaitinfo_doc,
-"sigwaitinfo(sigset) -> struct_siginfo\n\
-\n\
-Wait synchronously for a signal until one of the signals in *sigset* is\n\
-delivered.\n\
-Returns a struct_siginfo containing information about the signal.");
#endif /* #ifdef HAVE_SIGWAITINFO */
#ifdef HAVE_SIGTIMEDWAIT
+
+/*[clinic input]
+signal.sigtimedwait
+
+ sigset: object
+ timeout as timeout_obj: object
+ /
+
+Like sigwaitinfo(), but with a timeout.
+
+The timeout is specified in seconds, with floating point numbers allowed.
+[clinic start generated code]*/
+
static PyObject *
-signal_sigtimedwait(PyObject *self, PyObject *args)
+signal_sigtimedwait_impl(PyModuleDef *module, PyObject *sigset,
+ PyObject *timeout_obj)
+/*[clinic end generated code: output=c1960b5cea139929 input=53fd4ea3e3724eb8]*/
{
- PyObject *signals, *timeout;
- struct timespec buf;
+ struct timespec ts;
sigset_t set;
siginfo_t si;
- time_t tv_sec;
- long tv_nsec;
- int err;
+ int res;
+ _PyTime_t timeout, deadline, monotonic;
- if (!PyArg_ParseTuple(args, "OO:sigtimedwait",
- &signals, &timeout))
+ if (_PyTime_FromSecondsObject(&timeout,
+ timeout_obj, _PyTime_ROUND_CEILING) < 0)
return NULL;
- if (_PyTime_ObjectToTimespec(timeout, &tv_sec, &tv_nsec,
- _PyTime_ROUND_DOWN) == -1)
- return NULL;
- buf.tv_sec = tv_sec;
- buf.tv_nsec = tv_nsec;
-
- if (buf.tv_sec < 0 || buf.tv_nsec < 0) {
+ if (timeout < 0) {
PyErr_SetString(PyExc_ValueError, "timeout must be non-negative");
return NULL;
}
- if (iterable_to_sigset(signals, &set))
+ if (iterable_to_sigset(sigset, &set))
return NULL;
- Py_BEGIN_ALLOW_THREADS
- err = sigtimedwait(&set, &si, &buf);
- Py_END_ALLOW_THREADS
- if (err == -1) {
- if (errno == EAGAIN)
- Py_RETURN_NONE;
- else
- return PyErr_SetFromErrno(PyExc_OSError);
- }
+ deadline = _PyTime_GetMonotonicClock() + timeout;
+
+ do {
+ if (_PyTime_AsTimespec(timeout, &ts) < 0)
+ return NULL;
+
+ Py_BEGIN_ALLOW_THREADS
+ res = sigtimedwait(&set, &si, &ts);
+ Py_END_ALLOW_THREADS
+
+ if (res != -1)
+ break;
+
+ if (errno != EINTR) {
+ if (errno == EAGAIN)
+ Py_RETURN_NONE;
+ else
+ return PyErr_SetFromErrno(PyExc_OSError);
+ }
+
+ /* sigtimedwait() was interrupted by a signal (EINTR) */
+ if (PyErr_CheckSignals())
+ return NULL;
+
+ monotonic = _PyTime_GetMonotonicClock();
+ timeout = deadline - monotonic;
+ if (timeout < 0)
+ break;
+ } while (1);
return fill_siginfo(&si);
}
-PyDoc_STRVAR(signal_sigtimedwait_doc,
-"sigtimedwait(sigset, (timeout_sec, timeout_nsec)) -> struct_siginfo\n\
-\n\
-Like sigwaitinfo(), but with a timeout specified as a tuple of (seconds,\n\
-nanoseconds).");
#endif /* #ifdef HAVE_SIGTIMEDWAIT */
#if defined(HAVE_PTHREAD_KILL) && defined(WITH_THREAD)
+
+/*[clinic input]
+signal.pthread_kill
+
+ thread_id: long
+ signalnum: int
+ /
+
+Send a signal to a thread.
+[clinic start generated code]*/
+
static PyObject *
-signal_pthread_kill(PyObject *self, PyObject *args)
+signal_pthread_kill_impl(PyModuleDef *module, long thread_id, int signalnum)
+/*[clinic end generated code: output=35aed2713c756d7a input=77ed6a3b6f2a8122]*/
{
- long tid;
- int signum;
int err;
- if (!PyArg_ParseTuple(args, "li:pthread_kill", &tid, &signum))
- return NULL;
-
- err = pthread_kill((pthread_t)tid, signum);
+ err = pthread_kill((pthread_t)thread_id, signalnum);
if (err != 0) {
errno = err;
PyErr_SetFromErrno(PyExc_OSError);
@@ -859,62 +1116,29 @@ signal_pthread_kill(PyObject *self, PyObject *args)
Py_RETURN_NONE;
}
-PyDoc_STRVAR(signal_pthread_kill_doc,
-"pthread_kill(thread_id, signum)\n\
-\n\
-Send a signal to a thread.");
#endif /* #if defined(HAVE_PTHREAD_KILL) && defined(WITH_THREAD) */
-/* List of functions defined in the module */
+/* List of functions defined in the module -- some of the methoddefs are
+ defined to nothing if the corresponding C function is not available. */
static PyMethodDef signal_methods[] = {
-#ifdef HAVE_ALARM
- {"alarm", signal_alarm, METH_VARARGS, alarm_doc},
-#endif
-#ifdef HAVE_SETITIMER
- {"setitimer", signal_setitimer, METH_VARARGS, setitimer_doc},
-#endif
-#ifdef HAVE_GETITIMER
- {"getitimer", signal_getitimer, METH_VARARGS, getitimer_doc},
-#endif
- {"signal", signal_signal, METH_VARARGS, signal_doc},
- {"getsignal", signal_getsignal, METH_VARARGS, getsignal_doc},
+ {"default_int_handler", signal_default_int_handler, METH_VARARGS, default_int_handler_doc},
+ SIGNAL_ALARM_METHODDEF
+ SIGNAL_SETITIMER_METHODDEF
+ SIGNAL_GETITIMER_METHODDEF
+ SIGNAL_SIGNAL_METHODDEF
+ SIGNAL_GETSIGNAL_METHODDEF
{"set_wakeup_fd", signal_set_wakeup_fd, METH_VARARGS, set_wakeup_fd_doc},
-#ifdef HAVE_SIGINTERRUPT
- {"siginterrupt", signal_siginterrupt, METH_VARARGS, siginterrupt_doc},
-#endif
-#ifdef HAVE_PAUSE
- {"pause", (PyCFunction)signal_pause,
- METH_NOARGS, pause_doc},
-#endif
- {"default_int_handler", signal_default_int_handler,
- METH_VARARGS, default_int_handler_doc},
-#if defined(HAVE_PTHREAD_KILL) && defined(WITH_THREAD)
- {"pthread_kill", (PyCFunction)signal_pthread_kill,
- METH_VARARGS, signal_pthread_kill_doc},
-#endif
-#ifdef PYPTHREAD_SIGMASK
- {"pthread_sigmask", (PyCFunction)signal_pthread_sigmask,
- METH_VARARGS, signal_pthread_sigmask_doc},
-#endif
-#ifdef HAVE_SIGPENDING
- {"sigpending", (PyCFunction)signal_sigpending,
- METH_NOARGS, signal_sigpending_doc},
-#endif
-#ifdef HAVE_SIGWAIT
- {"sigwait", (PyCFunction)signal_sigwait,
- METH_VARARGS, signal_sigwait_doc},
-#endif
-#ifdef HAVE_SIGWAITINFO
- {"sigwaitinfo", (PyCFunction)signal_sigwaitinfo,
- METH_VARARGS, signal_sigwaitinfo_doc},
-#endif
-#ifdef HAVE_SIGTIMEDWAIT
- {"sigtimedwait", (PyCFunction)signal_sigtimedwait,
- METH_VARARGS, signal_sigtimedwait_doc},
-#endif
- {NULL, NULL} /* sentinel */
+ SIGNAL_SIGINTERRUPT_METHODDEF
+ SIGNAL_PAUSE_METHODDEF
+ SIGNAL_PTHREAD_KILL_METHODDEF
+ SIGNAL_PTHREAD_SIGMASK_METHODDEF
+ SIGNAL_SIGPENDING_METHODDEF
+ SIGNAL_SIGWAIT_METHODDEF
+ SIGNAL_SIGWAITINFO_METHODDEF
+ SIGNAL_SIGTIMEDWAIT_METHODDEF
+ {NULL, NULL} /* sentinel */
};
@@ -956,7 +1180,7 @@ the first is the signal number, the second is the interrupted stack frame.");
static struct PyModuleDef signalmodule = {
PyModuleDef_HEAD_INIT,
- "signal",
+ "_signal",
module_doc,
-1,
signal_methods,
@@ -967,7 +1191,7 @@ static struct PyModuleDef signalmodule = {
};
PyMODINIT_FUNC
-PyInit_signal(void)
+PyInit__signal(void)
{
PyObject *m, *d, *x;
int i;
@@ -1380,7 +1604,7 @@ PyErr_SetInterrupt(void)
void
PyOS_InitInterrupts(void)
{
- PyObject *m = PyImport_ImportModule("signal");
+ PyObject *m = PyImport_ImportModule("_signal");
if (m) {
Py_DECREF(m);
}
diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
index 23019ee9a7..d9c70f8665 100644
--- a/Modules/socketmodule.c
+++ b/Modules/socketmodule.c
@@ -121,7 +121,7 @@ getpeername() -- return remote address [*]\n\
getsockname() -- return local address\n\
getsockopt(level, optname[, buflen]) -- get socket options\n\
gettimeout() -- return timeout or None\n\
-listen(n) -- start listening for incoming connections\n\
+listen([n]) -- start listening for incoming connections\n\
recv(buflen[, flags]) -- receive data\n\
recv_into(buffer[, nbytes[, flags]]) -- receive data (into a buffer)\n\
recvfrom(buflen[, flags]) -- receive data and sender\'s address\n\
@@ -284,14 +284,15 @@ if_indextoname(index) -- return the corresponding interface name\n\
# include <fcntl.h>
# endif
+#if defined(_MSC_VER) && _MSC_VER >= 1800
+/* Provides the IsWindows7SP1OrGreater() function */
+#include <VersionHelpers.h>
#endif
-#include <stddef.h>
-
-#ifndef offsetof
-# define offsetof(type, member) ((size_t)(&((type *)0)->member))
#endif
+#include <stddef.h>
+
#ifndef O_NONBLOCK
# define O_NONBLOCK O_NDELAY
#endif
@@ -459,7 +460,7 @@ static PyTypeObject sock_type;
#else
/* If there's no timeout left, we don't have to call select, so it's a safe,
* little white lie. */
-#define IS_SELECTABLE(s) (_PyIsSelectable_fd((s)->sock_fd) || (s)->sock_timeout <= 0.0)
+#define IS_SELECTABLE(s) (_PyIsSelectable_fd((s)->sock_fd) || (s)->sock_timeout <= 0)
#endif
static PyObject*
@@ -481,6 +482,19 @@ select_error(void)
#endif
#ifdef MS_WINDOWS
+# define GET_SOCK_ERROR WSAGetLastError()
+# define SET_SOCK_ERROR(err) WSASetLastError(err)
+# define SOCK_TIMEOUT_ERR WSAEWOULDBLOCK
+# define SOCK_INPROGRESS_ERR WSAEWOULDBLOCK
+#else
+# define GET_SOCK_ERROR errno
+# define SET_SOCK_ERROR(err) do { errno = err; } while (0)
+# define SOCK_TIMEOUT_ERR EWOULDBLOCK
+# define SOCK_INPROGRESS_ERR EINPROGRESS
+#endif
+
+
+#ifdef MS_WINDOWS
/* Does WSASocket() support the WSA_FLAG_NO_HANDLE_INHERIT flag? */
static int support_wsa_no_inherit = -1;
#endif
@@ -552,6 +566,9 @@ set_gaierror(int error)
static int
internal_setblocking(PySocketSockObject *s, int block)
{
+#ifdef MS_WINDOWS
+ u_long arg;
+#endif
#if !defined(MS_WINDOWS) \
&& !((defined(HAVE_SYS_IOCTL_H) && defined(FIONBIO)))
int delay_flag, new_delay_flag;
@@ -578,8 +595,8 @@ internal_setblocking(PySocketSockObject *s, int block)
fcntl(s->sock_fd, F_SETFL, new_delay_flag);
#endif
#else /* MS_WINDOWS */
- block = !block;
- ioctlsocket(s->sock_fd, FIONBIO, (u_long*)&block);
+ arg = !block;
+ ioctlsocket(s->sock_fd, FIONBIO, &arg);
#endif /* MS_WINDOWS */
Py_END_ALLOW_THREADS
@@ -587,60 +604,79 @@ internal_setblocking(PySocketSockObject *s, int block)
return 1;
}
-/* Do a select()/poll() on the socket, if necessary (sock_timeout > 0).
- The argument writing indicates the direction.
- This does not raise an exception; we'll let our caller do that
- after they've reacquired the interpreter lock.
- Returns 1 on timeout, -1 on error, 0 otherwise. */
static int
-internal_select_ex(PySocketSockObject *s, int writing, double interval)
+internal_select(PySocketSockObject *s, int writing, _PyTime_t interval,
+ int connect)
{
int n;
+#ifdef HAVE_POLL
+ struct pollfd pollfd;
+ _PyTime_t ms;
+#else
+ fd_set fds, efds;
+ struct timeval tv, *tvp;
+#endif
- /* Nothing to do unless we're in timeout mode (not non-blocking) */
- if (s->sock_timeout <= 0.0)
- return 0;
+#ifdef WITH_THREAD
+ /* must be called with the GIL held */
+ assert(PyGILState_Check());
+#endif
+
+ /* Error condition is for output only */
+ assert(!(connect && !writing));
/* Guard against closed socket */
if (s->sock_fd < 0)
return 0;
- /* Handling this condition here simplifies the select loops */
- if (interval < 0.0)
- return 1;
-
/* Prefer poll, if available, since you can poll() any fd
* which can't be done with select(). */
#ifdef HAVE_POLL
- {
- struct pollfd pollfd;
- int timeout;
+ pollfd.fd = s->sock_fd;
+ pollfd.events = writing ? POLLOUT : POLLIN;
+ if (connect) {
+ /* On Windows, the socket becomes writable on connection success,
+ but a connection failure is notified as an error. On POSIX, the
+ socket becomes writable on connection success or on connection
+ failure. */
+ pollfd.events |= POLLERR;
+ }
- pollfd.fd = s->sock_fd;
- pollfd.events = writing ? POLLOUT : POLLIN;
+ /* s->sock_timeout is in seconds, timeout in ms */
+ ms = _PyTime_AsMilliseconds(interval, _PyTime_ROUND_CEILING);
+ assert(ms <= INT_MAX);
- /* s->sock_timeout is in seconds, timeout in ms */
- timeout = (int)(interval * 1000 + 0.5);
- n = poll(&pollfd, 1, timeout);
- }
+ Py_BEGIN_ALLOW_THREADS;
+ n = poll(&pollfd, 1, (int)ms);
+ Py_END_ALLOW_THREADS;
#else
- {
- /* Construct the arguments to select */
- fd_set fds;
- struct timeval tv;
- tv.tv_sec = (int)interval;
- tv.tv_usec = (int)((interval - tv.tv_sec) * 1e6);
- FD_ZERO(&fds);
- FD_SET(s->sock_fd, &fds);
-
- /* See if the socket is ready */
- if (writing)
- n = select(Py_SAFE_DOWNCAST(s->sock_fd+1, SOCKET_T, int),
- NULL, &fds, NULL, &tv);
- else
- n = select(Py_SAFE_DOWNCAST(s->sock_fd+1, SOCKET_T, int),
- &fds, NULL, NULL, &tv);
+ if (interval >= 0) {
+ _PyTime_AsTimeval_noraise(interval, &tv, _PyTime_ROUND_CEILING);
+ tvp = &tv;
}
+ else
+ tvp = NULL;
+
+ FD_ZERO(&fds);
+ FD_SET(s->sock_fd, &fds);
+ FD_ZERO(&efds);
+ if (connect) {
+ /* On Windows, the socket becomes writable on connection success,
+ but a connection failure is notified as an error. On POSIX, the
+ socket becomes writable on connection success or on connection
+ failure. */
+ FD_SET(s->sock_fd, &efds);
+ }
+
+ /* See if the socket is ready */
+ Py_BEGIN_ALLOW_THREADS;
+ if (writing)
+ n = select(Py_SAFE_DOWNCAST(s->sock_fd+1, SOCKET_T, int),
+ NULL, &fds, &efds, tvp);
+ else
+ n = select(Py_SAFE_DOWNCAST(s->sock_fd+1, SOCKET_T, int),
+ &fds, NULL, &efds, tvp);
+ Py_END_ALLOW_THREADS;
#endif
if (n < 0)
@@ -650,56 +686,166 @@ internal_select_ex(PySocketSockObject *s, int writing, double interval)
return 0;
}
+/* Call a socket function.
+
+ On error, raise an exception and return -1 if err is set, or fill err and
+ return -1 otherwise. If a signal was received and the signal handler raised
+ an exception, return -1, and set err to -1 if err is set.
+
+ On success, return 0, and set err to 0 if err is set.
+
+ If the socket has a timeout, wait until the socket is ready before calling
+ the function: wait until the socket is writable if writing is nonzero, wait
+ until the socket received data otherwise.
+
+ If the socket function is interrupted by a signal (failed with EINTR): retry
+ the function, except if the signal handler raised an exception (PEP 475).
+
+ When the function is retried, recompute the timeout using a monotonic clock.
+
+ sock_call_ex() must be called with the GIL held. The socket function is
+ called with the GIL released. */
static int
-internal_select(PySocketSockObject *s, int writing)
+sock_call_ex(PySocketSockObject *s,
+ int writing,
+ int (*sock_func) (PySocketSockObject *s, void *data),
+ void *data,
+ int connect,
+ int *err,
+ _PyTime_t timeout)
{
- return internal_select_ex(s, writing, s->sock_timeout);
-}
+ int has_timeout = (timeout > 0);
+ _PyTime_t deadline = 0;
+ int deadline_initialized = 0;
+ int res;
-/*
- Two macros for automatic retry of select() in case of false positives
- (for example, select() could indicate a socket is ready for reading
- but the data then discarded by the OS because of a wrong checksum).
- Here is an example of use:
+ /* sock_call() must be called with the GIL held. */
+ assert(PyGILState_Check());
+
+ /* outer loop to retry select() when select() is interrupted by a signal
+ or to retry select()+sock_func() on false positive (see above) */
+ while (1) {
+ /* For connect(), poll even for blocking socket. The connection
+ runs asynchronously. */
+ if (has_timeout || connect) {
+ if (has_timeout) {
+ _PyTime_t interval;
+
+ if (deadline_initialized) {
+ /* recompute the timeout */
+ interval = deadline - _PyTime_GetMonotonicClock();
+ }
+ else {
+ deadline_initialized = 1;
+ deadline = _PyTime_GetMonotonicClock() + timeout;
+ interval = timeout;
+ }
- BEGIN_SELECT_LOOP(s)
- Py_BEGIN_ALLOW_THREADS
- timeout = internal_select_ex(s, 0, interval);
- if (!timeout)
- outlen = recv(s->sock_fd, cbuf, len, flags);
- Py_END_ALLOW_THREADS
- if (timeout == 1) {
- PyErr_SetString(socket_timeout, "timed out");
+ if (interval >= 0)
+ res = internal_select(s, writing, interval, connect);
+ else
+ res = 1;
+ }
+ else {
+ res = internal_select(s, writing, timeout, connect);
+ }
+
+ if (res == -1) {
+ if (err)
+ *err = GET_SOCK_ERROR;
+
+ if (CHECK_ERRNO(EINTR)) {
+ /* select() was interrupted by a signal */
+ if (PyErr_CheckSignals()) {
+ if (err)
+ *err = -1;
+ return -1;
+ }
+
+ /* retry select() */
+ continue;
+ }
+
+ /* select() failed */
+ s->errorhandler();
+ return -1;
+ }
+
+ if (res == 1) {
+ if (err)
+ *err = SOCK_TIMEOUT_ERR;
+ else
+ PyErr_SetString(socket_timeout, "timed out");
+ return -1;
+ }
+
+ /* the socket is ready */
+ }
+
+ /* inner loop to retry sock_func() when sock_func() is interrupted
+ by a signal */
+ while (1) {
+ Py_BEGIN_ALLOW_THREADS
+ res = sock_func(s, data);
+ Py_END_ALLOW_THREADS
+
+ if (res) {
+ /* sock_func() succeeded */
+ if (err)
+ *err = 0;
+ return 0;
+ }
+
+ if (err)
+ *err = GET_SOCK_ERROR;
+
+ if (!CHECK_ERRNO(EINTR))
+ break;
+
+ /* sock_func() was interrupted by a signal */
+ if (PyErr_CheckSignals()) {
+ if (err)
+ *err = -1;
+ return -1;
+ }
+
+ /* retry sock_func() */
+ }
+
+ if (s->sock_timeout > 0
+ && (CHECK_ERRNO(EWOULDBLOCK) || CHECK_ERRNO(EAGAIN))) {
+ /* False positive: sock_func() failed with EWOULDBLOCK or EAGAIN.
+
+ For example, select() could indicate a socket is ready for
+ reading, but the data then discarded by the OS because of a
+ wrong checksum.
+
+ Loop on select() to recheck for socket readyness. */
+ continue;
+ }
+
+ /* sock_func() failed */
+ if (!err)
+ s->errorhandler();
+ /* else: err was already set before */
return -1;
}
- END_SELECT_LOOP(s)
-*/
+}
+
+static int
+sock_call(PySocketSockObject *s,
+ int writing,
+ int (*func) (PySocketSockObject *s, void *data),
+ void *data)
+{
+ return sock_call_ex(s, writing, func, data, 0, NULL, s->sock_timeout);
+}
-#define BEGIN_SELECT_LOOP(s) \
- { \
- _PyTime_timeval now, deadline = {0, 0}; \
- double interval = s->sock_timeout; \
- int has_timeout = s->sock_timeout > 0.0; \
- if (has_timeout) { \
- _PyTime_gettimeofday(&now); \
- deadline = now; \
- _PyTime_ADD_SECONDS(deadline, s->sock_timeout); \
- } \
- while (1) { \
- errno = 0; \
-
-#define END_SELECT_LOOP(s) \
- if (!has_timeout || \
- (!CHECK_ERRNO(EWOULDBLOCK) && !CHECK_ERRNO(EAGAIN))) \
- break; \
- _PyTime_gettimeofday(&now); \
- interval = _PyTime_INTERVAL(now, deadline); \
- } \
- } \
/* Initialize a new socket object. */
-static double defaulttimeout = -1.0; /* Default timeout for new sockets */
+/* Default timeout for new sockets */
+static _PyTime_t defaulttimeout = _PYTIME_FROMSECONDS(-1);
static void
init_sockobject(PySocketSockObject *s,
@@ -713,12 +859,12 @@ init_sockobject(PySocketSockObject *s,
s->errorhandler = &set_error;
#ifdef SOCK_NONBLOCK
if (type & SOCK_NONBLOCK)
- s->sock_timeout = 0.0;
+ s->sock_timeout = 0;
else
#endif
{
s->sock_timeout = defaulttimeout;
- if (defaulttimeout >= 0.0)
+ if (defaulttimeout >= 0)
internal_setblocking(s, 0);
}
@@ -1214,6 +1360,71 @@ makesockaddr(SOCKET_T sockfd, struct sockaddr *addr, size_t addrlen, int proto)
}
}
+/* Helper for getsockaddrarg: bypass IDNA for ASCII-only host names
+ (in particular, numeric IP addresses). */
+struct maybe_idna {
+ PyObject *obj;
+ char *buf;
+};
+
+static void
+idna_cleanup(struct maybe_idna *data)
+{
+ Py_CLEAR(data->obj);
+}
+
+static int
+idna_converter(PyObject *obj, struct maybe_idna *data)
+{
+ size_t len;
+ PyObject *obj2, *obj3;
+ if (obj == NULL) {
+ idna_cleanup(data);
+ return 1;
+ }
+ data->obj = NULL;
+ len = -1;
+ if (PyBytes_Check(obj)) {
+ data->buf = PyBytes_AsString(obj);
+ len = PyBytes_Size(obj);
+ }
+ else if (PyByteArray_Check(obj)) {
+ data->buf = PyByteArray_AsString(obj);
+ len = PyByteArray_Size(obj);
+ }
+ else if (PyUnicode_Check(obj) && PyUnicode_READY(obj) == 0 && PyUnicode_IS_COMPACT_ASCII(obj)) {
+ data->buf = PyUnicode_DATA(obj);
+ len = PyUnicode_GET_LENGTH(obj);
+ }
+ else {
+ obj2 = PyUnicode_FromObject(obj);
+ if (!obj2) {
+ PyErr_Format(PyExc_TypeError, "string or unicode text buffer expected, not %s",
+ obj->ob_type->tp_name);
+ return 0;
+ }
+ obj3 = PyUnicode_AsEncodedString(obj2, "idna", NULL);
+ Py_DECREF(obj2);
+ if (!obj3) {
+ PyErr_SetString(PyExc_TypeError, "encoding of hostname failed");
+ return 0;
+ }
+ if (!PyBytes_Check(obj3)) {
+ Py_DECREF(obj3);
+ PyErr_SetString(PyExc_TypeError, "encoding of hostname failed to return bytes");
+ return 0;
+ }
+ data->obj = obj3;
+ data->buf = PyBytes_AS_STRING(obj3);
+ len = PyBytes_GET_SIZE(obj3);
+ }
+ if (strlen(data->buf) != len) {
+ Py_CLEAR(data->obj);
+ PyErr_SetString(PyExc_TypeError, "host name must not contain null character");
+ return 0;
+ }
+ return Py_CLEANUP_SUPPORTED;
+}
/* Parse a socket address argument according to the socket object's
address family. Return 1 if the address was in the proper format,
@@ -1230,8 +1441,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
case AF_UNIX:
{
struct sockaddr_un* addr;
- char *path;
- int len;
+ Py_buffer path;
int retval = 0;
/* PEP 383. Not using PyUnicode_FSConverter since we need to
@@ -1242,14 +1452,17 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
}
else
Py_INCREF(args);
- if (!PyArg_Parse(args, "y#", &path, &len))
- goto unix_out;
+ if (!PyArg_Parse(args, "y*", &path)) {
+ Py_DECREF(args);
+ return retval;
+ }
+ assert(path.len >= 0);
addr = (struct sockaddr_un*)addr_ret;
#ifdef linux
- if (len > 0 && path[0] == 0) {
+ if (path.len > 0 && *(const char *)path.buf == 0) {
/* Linux abstract namespace extension */
- if (len > sizeof addr->sun_path) {
+ if ((size_t)path.len > sizeof addr->sun_path) {
PyErr_SetString(PyExc_OSError,
"AF_UNIX path too long");
goto unix_out;
@@ -1259,18 +1472,19 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
#endif /* linux */
{
/* regular NULL-terminated string */
- if (len >= sizeof addr->sun_path) {
+ if ((size_t)path.len >= sizeof addr->sun_path) {
PyErr_SetString(PyExc_OSError,
"AF_UNIX path too long");
goto unix_out;
}
- addr->sun_path[len] = 0;
+ addr->sun_path[path.len] = 0;
}
addr->sun_family = s->sock_family;
- memcpy(addr->sun_path, path, len);
- *len_ret = len + offsetof(struct sockaddr_un, sun_path);
+ memcpy(addr->sun_path, path.buf, path.len);
+ *len_ret = path.len + offsetof(struct sockaddr_un, sun_path);
retval = 1;
unix_out:
+ PyBuffer_Release(&path);
Py_DECREF(args);
return retval;
}
@@ -1308,7 +1522,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
case AF_INET:
{
struct sockaddr_in* addr;
- char *host;
+ struct maybe_idna host = {NULL, NULL};
int port, result;
if (!PyTuple_Check(args)) {
PyErr_Format(
@@ -1318,13 +1532,13 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
Py_TYPE(args)->tp_name);
return 0;
}
- if (!PyArg_ParseTuple(args, "eti:getsockaddrarg",
- "idna", &host, &port))
+ if (!PyArg_ParseTuple(args, "O&i:getsockaddrarg",
+ idna_converter, &host, &port))
return 0;
addr=(struct sockaddr_in*)addr_ret;
- result = setipaddr(host, (struct sockaddr *)addr,
+ result = setipaddr(host.buf, (struct sockaddr *)addr,
sizeof(*addr), AF_INET);
- PyMem_Free(host);
+ idna_cleanup(&host);
if (result < 0)
return 0;
if (port < 0 || port > 0xffff) {
@@ -1343,7 +1557,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
case AF_INET6:
{
struct sockaddr_in6* addr;
- char *host;
+ struct maybe_idna host = {NULL, NULL};
int port, result;
unsigned int flowinfo, scope_id;
flowinfo = scope_id = 0;
@@ -1355,15 +1569,15 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
Py_TYPE(args)->tp_name);
return 0;
}
- if (!PyArg_ParseTuple(args, "eti|II",
- "idna", &host, &port, &flowinfo,
+ if (!PyArg_ParseTuple(args, "O&i|II",
+ idna_converter, &host, &port, &flowinfo,
&scope_id)) {
return 0;
}
addr = (struct sockaddr_in6*)addr_ret;
- result = setipaddr(host, (struct sockaddr *)addr,
+ result = setipaddr(host.buf, (struct sockaddr *)addr,
sizeof(*addr), AF_INET6);
- PyMem_Free(host);
+ idna_cleanup(&host);
if (result < 0)
return 0;
if (port < 0 || port > 0xffff) {
@@ -1492,8 +1706,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
int protoNumber;
int hatype = 0;
int pkttype = 0;
- char *haddr = NULL;
- unsigned int halen = 0;
+ Py_buffer haddr = {NULL, NULL};
if (!PyTuple_Check(args)) {
PyErr_Format(
@@ -1503,25 +1716,28 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
Py_TYPE(args)->tp_name);
return 0;
}
- if (!PyArg_ParseTuple(args, "si|iiy#", &interfaceName,
+ if (!PyArg_ParseTuple(args, "si|iiy*", &interfaceName,
&protoNumber, &pkttype, &hatype,
- &haddr, &halen))
+ &haddr))
return 0;
strncpy(ifr.ifr_name, interfaceName, sizeof(ifr.ifr_name));
ifr.ifr_name[(sizeof(ifr.ifr_name))-1] = '\0';
if (ioctl(s->sock_fd, SIOCGIFINDEX, &ifr) < 0) {
s->errorhandler();
+ PyBuffer_Release(&haddr);
return 0;
}
- if (halen > 8) {
- PyErr_SetString(PyExc_ValueError,
- "Hardware address must be 8 bytes or less");
- return 0;
+ if (haddr.buf && haddr.len > 8) {
+ PyErr_SetString(PyExc_ValueError,
+ "Hardware address must be 8 bytes or less");
+ PyBuffer_Release(&haddr);
+ return 0;
}
if (protoNumber < 0 || protoNumber > 0xffff) {
PyErr_SetString(
PyExc_OverflowError,
"getsockaddrarg: protoNumber must be 0-65535.");
+ PyBuffer_Release(&haddr);
return 0;
}
addr = (struct sockaddr_ll*)addr_ret;
@@ -1530,11 +1746,14 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
addr->sll_ifindex = ifr.ifr_ifindex;
addr->sll_pkttype = pkttype;
addr->sll_hatype = hatype;
- if (halen != 0) {
- memcpy(&addr->sll_addr, haddr, halen);
+ if (haddr.buf) {
+ memcpy(&addr->sll_addr, haddr.buf, haddr.len);
+ addr->sll_halen = haddr.len;
}
- addr->sll_halen = halen;
+ else
+ addr->sll_halen = 0;
*len_ret = sizeof *addr;
+ PyBuffer_Release(&haddr);
return 1;
}
#endif
@@ -1611,7 +1830,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
if (len == 0) {
ifr.ifr_ifindex = 0;
- } else if (len < sizeof(ifr.ifr_name)) {
+ } else if ((size_t)len < sizeof(ifr.ifr_name)) {
strncpy(ifr.ifr_name, PyBytes_AS_STRING(interfaceName), sizeof(ifr.ifr_name));
ifr.ifr_name[(sizeof(ifr.ifr_name))-1] = '\0';
if (ioctl(s->sock_fd, SIOCGIFINDEX, &ifr) < 0) {
@@ -1661,7 +1880,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
return 0;
}
- if (PyBytes_GET_SIZE(ctl_name) > sizeof(info.ctl_name)) {
+ if (PyBytes_GET_SIZE(ctl_name) > (Py_ssize_t)sizeof(info.ctl_name)) {
PyErr_SetString(PyExc_ValueError,
"provided string is too long");
Py_DECREF(ctl_name);
@@ -1896,8 +2115,15 @@ cmsg_min_space(struct msghdr *msg, struct cmsghdr *cmsgh, size_t space)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wtautological-compare"
#endif
+ #if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 5)))
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wtype-limits"
+ #endif
if (msg->msg_controllen < 0)
return 0;
+ #if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 5)))
+ #pragma GCC diagnostic pop
+ #endif
#ifdef __clang__
#pragma clang diagnostic pop
#endif
@@ -1955,22 +2181,56 @@ get_cmsg_data_len(struct msghdr *msg, struct cmsghdr *cmsgh, size_t *data_len)
#endif /* CMSG_LEN */
+struct sock_accept {
+ socklen_t *addrlen;
+ sock_addr_t *addrbuf;
+ SOCKET_T result;
+};
+
+#if defined(HAVE_ACCEPT4) && defined(SOCK_CLOEXEC)
+/* accept4() is available on Linux 2.6.28+ and glibc 2.10 */
+static int accept4_works = -1;
+#endif
+
+static int
+sock_accept_impl(PySocketSockObject *s, void *data)
+{
+ struct sock_accept *ctx = data;
+
+#if defined(HAVE_ACCEPT4) && defined(SOCK_CLOEXEC)
+ if (accept4_works != 0) {
+ ctx->result = accept4(s->sock_fd, SAS2SA(ctx->addrbuf), ctx->addrlen,
+ SOCK_CLOEXEC);
+ if (ctx->result == INVALID_SOCKET && accept4_works == -1) {
+ /* On Linux older than 2.6.28, accept4() fails with ENOSYS */
+ accept4_works = (errno != ENOSYS);
+ }
+ }
+ if (accept4_works == 0)
+ ctx->result = accept(s->sock_fd, SAS2SA(ctx->addrbuf), ctx->addrlen);
+#else
+ ctx->result = accept(s->sock_fd, SAS2SA(ctx->addrbuf), ctx->addrlen);
+#endif
+
+#ifdef MS_WINDOWS
+ return (ctx->result != INVALID_SOCKET);
+#else
+ return (ctx->result >= 0);
+#endif
+}
+
/* s._accept() -> (fd, address) */
static PyObject *
sock_accept(PySocketSockObject *s)
{
sock_addr_t addrbuf;
- SOCKET_T newfd = INVALID_SOCKET;
+ SOCKET_T newfd;
socklen_t addrlen;
PyObject *sock = NULL;
PyObject *addr = NULL;
PyObject *res = NULL;
- int timeout;
-#if defined(HAVE_ACCEPT4) && defined(SOCK_CLOEXEC)
- /* accept4() is available on Linux 2.6.28+ and glibc 2.10 */
- static int accept4_works = -1;
-#endif
+ struct sock_accept ctx;
if (!getsockaddrlen(s, &addrlen))
return NULL;
@@ -1979,36 +2239,11 @@ sock_accept(PySocketSockObject *s)
if (!IS_SELECTABLE(s))
return select_error();
- BEGIN_SELECT_LOOP(s)
-
- Py_BEGIN_ALLOW_THREADS
- timeout = internal_select_ex(s, 0, interval);
- if (!timeout) {
-#if defined(HAVE_ACCEPT4) && defined(SOCK_CLOEXEC)
- if (accept4_works != 0) {
- newfd = accept4(s->sock_fd, SAS2SA(&addrbuf), &addrlen,
- SOCK_CLOEXEC);
- if (newfd == INVALID_SOCKET && accept4_works == -1) {
- /* On Linux older than 2.6.28, accept4() fails with ENOSYS */
- accept4_works = (errno != ENOSYS);
- }
- }
- if (accept4_works == 0)
- newfd = accept(s->sock_fd, SAS2SA(&addrbuf), &addrlen);
-#else
- newfd = accept(s->sock_fd, SAS2SA(&addrbuf), &addrlen);
-#endif
- }
- Py_END_ALLOW_THREADS
-
- if (timeout == 1) {
- PyErr_SetString(socket_timeout, "timed out");
+ ctx.addrlen = &addrlen;
+ ctx.addrbuf = &addrbuf;
+ if (sock_call(s, 0, sock_accept_impl, &ctx) < 0)
return NULL;
- }
- END_SELECT_LOOP(s)
-
- if (newfd == INVALID_SOCKET)
- return s->errorhandler();
+ newfd = ctx.result;
#ifdef MS_WINDOWS
if (!SetHandleInformation((HANDLE)newfd, HANDLE_FLAG_INHERIT, 0)) {
@@ -2069,7 +2304,7 @@ sock_setblocking(PySocketSockObject *s, PyObject *arg)
if (block == -1 && PyErr_Occurred())
return NULL;
- s->sock_timeout = block ? -1.0 : 0.0;
+ s->sock_timeout = _PyTime_FromSeconds(block ? -1 : 0);
internal_setblocking(s, block);
Py_INCREF(Py_None);
@@ -2083,6 +2318,47 @@ Set the socket to blocking (flag is true) or non-blocking (false).\n\
setblocking(True) is equivalent to settimeout(None);\n\
setblocking(False) is equivalent to settimeout(0.0).");
+static int
+socket_parse_timeout(_PyTime_t *timeout, PyObject *timeout_obj)
+{
+#ifdef MS_WINDOWS
+ struct timeval tv;
+#endif
+#ifndef HAVE_POLL
+ _PyTime_t ms;
+#endif
+ int overflow = 0;
+
+ if (timeout_obj == Py_None) {
+ *timeout = _PyTime_FromSeconds(-1);
+ return 0;
+ }
+
+ if (_PyTime_FromSecondsObject(timeout,
+ timeout_obj, _PyTime_ROUND_CEILING) < 0)
+ return -1;
+
+ if (*timeout < 0) {
+ PyErr_SetString(PyExc_ValueError, "Timeout value out of range");
+ return -1;
+ }
+
+#ifdef MS_WINDOWS
+ overflow |= (_PyTime_AsTimeval(*timeout, &tv, _PyTime_ROUND_CEILING) < 0);
+#endif
+#ifndef HAVE_POLL
+ ms = _PyTime_AsMilliseconds(*timeout, _PyTime_ROUND_CEILING);
+ overflow |= (ms > INT_MAX);
+#endif
+ if (overflow) {
+ PyErr_SetString(PyExc_OverflowError,
+ "timeout doesn't fit into C timeval");
+ return -1;
+ }
+
+ return 0;
+}
+
/* s.settimeout(timeout) method. Argument:
None -- no timeout, blocking mode; same as setblocking(True)
0.0 -- non-blocking mode; same as setblocking(False)
@@ -2092,22 +2368,13 @@ setblocking(False) is equivalent to settimeout(0.0).");
static PyObject *
sock_settimeout(PySocketSockObject *s, PyObject *arg)
{
- double timeout;
+ _PyTime_t timeout;
- if (arg == Py_None)
- timeout = -1.0;
- else {
- timeout = PyFloat_AsDouble(arg);
- if (timeout < 0.0) {
- if (!PyErr_Occurred())
- PyErr_SetString(PyExc_ValueError,
- "Timeout value out of range");
- return NULL;
- }
- }
+ if (socket_parse_timeout(&timeout, arg) < 0)
+ return NULL;
s->sock_timeout = timeout;
- internal_setblocking(s, timeout < 0.0);
+ internal_setblocking(s, timeout < 0);
Py_INCREF(Py_None);
return Py_None;
@@ -2126,12 +2393,14 @@ Setting a timeout of zero is the same as setblocking(0).");
static PyObject *
sock_gettimeout(PySocketSockObject *s)
{
- if (s->sock_timeout < 0.0) {
+ if (s->sock_timeout < 0) {
Py_INCREF(Py_None);
return Py_None;
}
- else
- return PyFloat_FromDouble(s->sock_timeout);
+ else {
+ double seconds = _PyTime_AsSecondsDouble(s->sock_timeout);
+ return PyFloat_FromDouble(seconds);
+ }
}
PyDoc_STRVAR(gettimeout_doc,
@@ -2152,22 +2421,22 @@ sock_setsockopt(PySocketSockObject *s, PyObject *args)
int level;
int optname;
int res;
- char *buf;
- int buflen;
+ Py_buffer optval;
int flag;
if (PyArg_ParseTuple(args, "iii:setsockopt",
&level, &optname, &flag)) {
- buf = (char *) &flag;
- buflen = sizeof flag;
+ res = setsockopt(s->sock_fd, level, optname,
+ (char*)&flag, sizeof flag);
}
else {
PyErr_Clear();
- if (!PyArg_ParseTuple(args, "iiy#:setsockopt",
- &level, &optname, &buf, &buflen))
+ if (!PyArg_ParseTuple(args, "iiy*:setsockopt",
+ &level, &optname, &optval))
return NULL;
+ res = setsockopt(s->sock_fd, level, optname, optval.buf, optval.len);
+ PyBuffer_Release(&optval);
}
- res = setsockopt(s->sock_fd, level, optname, (void *)buf, buflen);
if (res < 0)
return s->errorhandler();
Py_INCREF(Py_None);
@@ -2271,6 +2540,10 @@ sock_close(PySocketSockObject *s)
{
SOCKET_T fd;
+ /* We do not want to retry upon EINTR: see http://lwn.net/Articles/576478/
+ * and http://linux.derkeiler.com/Mailing-Lists/Kernel/2005-09/3000.html
+ * for more details.
+ */
if ((fd = s->sock_fd) != -1) {
s->sock_fd = -1;
Py_BEGIN_ALLOW_THREADS
@@ -2302,92 +2575,90 @@ The object cannot be used after this call, but the file descriptor\n\
can be reused for other purposes. The file descriptor is returned.");
static int
+sock_connect_impl(PySocketSockObject *s, void* Py_UNUSED(data))
+{
+ int err;
+ socklen_t size = sizeof err;
+
+ if (getsockopt(s->sock_fd, SOL_SOCKET, SO_ERROR, (void *)&err, &size)) {
+ /* getsockopt() failed */
+ return 0;
+ }
+
+ if (err == EISCONN)
+ return 1;
+ if (err != 0) {
+ /* sock_call_ex() uses GET_SOCK_ERROR() to get the error code */
+ SET_SOCK_ERROR(err);
+ return 0;
+ }
+ return 1;
+}
+
+static int
internal_connect(PySocketSockObject *s, struct sockaddr *addr, int addrlen,
- int *timeoutp)
+ int raise)
{
- int res, timeout;
+ int res, err, wait_connect;
- timeout = 0;
+ Py_BEGIN_ALLOW_THREADS
res = connect(s->sock_fd, addr, addrlen);
+ Py_END_ALLOW_THREADS
-#ifdef MS_WINDOWS
-
- if (s->sock_timeout > 0.0) {
- if (res < 0 && WSAGetLastError() == WSAEWOULDBLOCK &&
- IS_SELECTABLE(s)) {
- /* This is a mess. Best solution: trust select */
- fd_set fds;
- fd_set fds_exc;
- struct timeval tv;
- tv.tv_sec = (int)s->sock_timeout;
- tv.tv_usec = (int)((s->sock_timeout - tv.tv_sec) * 1e6);
- FD_ZERO(&fds);
- FD_SET(s->sock_fd, &fds);
- FD_ZERO(&fds_exc);
- FD_SET(s->sock_fd, &fds_exc);
- res = select(Py_SAFE_DOWNCAST(s->sock_fd+1, SOCKET_T, int),
- NULL, &fds, &fds_exc, &tv);
- if (res == 0) {
- res = WSAEWOULDBLOCK;
- timeout = 1;
- } else if (res > 0) {
- if (FD_ISSET(s->sock_fd, &fds))
- /* The socket is in the writable set - this
- means connected */
- res = 0;
- else {
- /* As per MS docs, we need to call getsockopt()
- to get the underlying error */
- int res_size = sizeof res;
- /* It must be in the exception set */
- assert(FD_ISSET(s->sock_fd, &fds_exc));
- if (0 == getsockopt(s->sock_fd, SOL_SOCKET, SO_ERROR,
- (char *)&res, &res_size))
- /* getsockopt also clears WSAGetLastError,
- so reset it back. */
- WSASetLastError(res);
- else
- res = WSAGetLastError();
- }
- }
- /* else if (res < 0) an error occurred */
- }
+ if (!res) {
+ /* connect() succeeded, the socket is connected */
+ return 0;
}
- if (res < 0)
- res = WSAGetLastError();
+ /* connect() failed */
-#else
+ /* save error, PyErr_CheckSignals() can replace it */
+ err = GET_SOCK_ERROR;
+ if (CHECK_ERRNO(EINTR)) {
+ if (PyErr_CheckSignals())
+ return -1;
- if (s->sock_timeout > 0.0) {
- if (res < 0 && errno == EINPROGRESS && IS_SELECTABLE(s)) {
- timeout = internal_select(s, 1);
- if (timeout == 0) {
- /* Bug #1019808: in case of an EINPROGRESS,
- use getsockopt(SO_ERROR) to get the real
- error. */
- socklen_t res_size = sizeof res;
- (void)getsockopt(s->sock_fd, SOL_SOCKET,
- SO_ERROR, &res, &res_size);
- if (res == EISCONN)
- res = 0;
- errno = res;
- }
- else if (timeout == -1) {
- res = errno; /* had error */
- }
- else
- res = EWOULDBLOCK; /* timed out */
- }
- }
+ /* Issue #23618: when connect() fails with EINTR, the connection is
+ running asynchronously.
- if (res < 0)
- res = errno;
+ If the socket is blocking or has a timeout, wait until the
+ connection completes, fails or timed out using select(), and then
+ get the connection status using getsockopt(SO_ERROR).
-#endif
- *timeoutp = timeout;
+ If the socket is non-blocking, raise InterruptedError. The caller is
+ responsible to wait until the connection completes, fails or timed
+ out (it's the case in asyncio for example). */
+ wait_connect = (s->sock_timeout != 0 && IS_SELECTABLE(s));
+ }
+ else {
+ wait_connect = (s->sock_timeout > 0 && err == SOCK_INPROGRESS_ERR
+ && IS_SELECTABLE(s));
+ }
- return res;
+ if (!wait_connect) {
+ if (raise) {
+ /* restore error, maybe replaced by PyErr_CheckSignals() */
+ SET_SOCK_ERROR(err);
+ s->errorhandler();
+ return -1;
+ }
+ else
+ return err;
+ }
+
+ if (raise) {
+ /* socket.connect() raises an exception on error */
+ if (sock_call_ex(s, 1, sock_connect_impl, NULL,
+ 1, NULL, s->sock_timeout) < 0)
+ return -1;
+ }
+ else {
+ /* socket.connect_ex() returns the error code on error */
+ if (sock_call_ex(s, 1, sock_connect_impl, NULL,
+ 1, &err, s->sock_timeout) < 0)
+ return err;
+ }
+ return 0;
}
/* s.connect(sockaddr) method */
@@ -2398,23 +2669,15 @@ sock_connect(PySocketSockObject *s, PyObject *addro)
sock_addr_t addrbuf;
int addrlen;
int res;
- int timeout;
if (!getsockaddrarg(s, addro, SAS2SA(&addrbuf), &addrlen))
return NULL;
- Py_BEGIN_ALLOW_THREADS
- res = internal_connect(s, SAS2SA(&addrbuf), addrlen, &timeout);
- Py_END_ALLOW_THREADS
-
- if (timeout == 1) {
- PyErr_SetString(socket_timeout, "timed out");
+ res = internal_connect(s, SAS2SA(&addrbuf), addrlen, 1);
+ if (res < 0)
return NULL;
- }
- if (res != 0)
- return s->errorhandler();
- Py_INCREF(Py_None);
- return Py_None;
+
+ Py_RETURN_NONE;
}
PyDoc_STRVAR(connect_doc,
@@ -2432,21 +2695,13 @@ sock_connect_ex(PySocketSockObject *s, PyObject *addro)
sock_addr_t addrbuf;
int addrlen;
int res;
- int timeout;
if (!getsockaddrarg(s, addro, SAS2SA(&addrbuf), &addrlen))
return NULL;
- Py_BEGIN_ALLOW_THREADS
- res = internal_connect(s, SAS2SA(&addrbuf), addrlen, &timeout);
- Py_END_ALLOW_THREADS
-
- /* Signals are not errors (though they may raise exceptions). Adapted
- from PyErr_SetFromErrnoWithFilenameObject(). */
-#ifdef EINTR
- if (res == EINTR && PyErr_CheckSignals())
+ res = internal_connect(s, SAS2SA(&addrbuf), addrlen, 0);
+ if (res < 0)
return NULL;
-#endif
return PyLong_FromLong((long) res);
}
@@ -2534,14 +2789,16 @@ info is a pair (hostaddr, port).");
/* s.listen(n) method */
static PyObject *
-sock_listen(PySocketSockObject *s, PyObject *arg)
+sock_listen(PySocketSockObject *s, PyObject *args)
{
- int backlog;
+ /* We try to choose a default backlog high enough to avoid connection drops
+ * for common workloads, yet not too high to limit resource usage. */
+ int backlog = Py_MIN(SOMAXCONN, 128);
int res;
- backlog = _PyLong_AsInt(arg);
- if (backlog == -1 && PyErr_Occurred())
+ if (!PyArg_ParseTuple(args, "|i:listen", &backlog))
return NULL;
+
Py_BEGIN_ALLOW_THREADS
/* To avoid problems on systems that don't allow a negative backlog
* (which doesn't make sense anyway) we force a minimum value of 0. */
@@ -2556,12 +2813,34 @@ sock_listen(PySocketSockObject *s, PyObject *arg)
}
PyDoc_STRVAR(listen_doc,
-"listen(backlog)\n\
+"listen([backlog])\n\
\n\
-Enable a server to accept connections. The backlog argument must be at\n\
-least 0 (if it is lower, it is set to 0); it specifies the number of\n\
+Enable a server to accept connections. If backlog is specified, it must be\n\
+at least 0 (if it is lower, it is set to 0); it specifies the number of\n\
unaccepted connections that the system will allow before refusing new\n\
-connections.");
+connections. If not specified, a default reasonable value is chosen.");
+
+struct sock_recv {
+ char *cbuf;
+ Py_ssize_t len;
+ int flags;
+ Py_ssize_t result;
+};
+
+static int
+sock_recv_impl(PySocketSockObject *s, void *data)
+{
+ struct sock_recv *ctx = data;
+
+#ifdef MS_WINDOWS
+ if (ctx->len > INT_MAX)
+ ctx->len = INT_MAX;
+ ctx->result = recv(s->sock_fd, ctx->cbuf, (int)ctx->len, ctx->flags);
+#else
+ ctx->result = recv(s->sock_fd, ctx->cbuf, ctx->len, ctx->flags);
+#endif
+ return (ctx->result >= 0);
+}
/*
@@ -2576,8 +2855,7 @@ connections.");
static Py_ssize_t
sock_recv_guts(PySocketSockObject *s, char* cbuf, Py_ssize_t len, int flags)
{
- Py_ssize_t outlen = -1;
- int timeout;
+ struct sock_recv ctx;
if (!IS_SELECTABLE(s)) {
select_error();
@@ -2588,32 +2866,13 @@ sock_recv_guts(PySocketSockObject *s, char* cbuf, Py_ssize_t len, int flags)
return 0;
}
- BEGIN_SELECT_LOOP(s)
- Py_BEGIN_ALLOW_THREADS
- timeout = internal_select_ex(s, 0, interval);
- if (!timeout) {
-#ifdef MS_WINDOWS
- if (len > INT_MAX)
- len = INT_MAX;
- outlen = recv(s->sock_fd, cbuf, (int)len, flags);
-#else
- outlen = recv(s->sock_fd, cbuf, len, flags);
-#endif
- }
- Py_END_ALLOW_THREADS
-
- if (timeout == 1) {
- PyErr_SetString(socket_timeout, "timed out");
+ ctx.cbuf = cbuf;
+ ctx.len = len;
+ ctx.flags = flags;
+ if (sock_call(s, 0, sock_recv_impl, &ctx) < 0)
return -1;
- }
- END_SELECT_LOOP(s)
- if (outlen < 0) {
- /* Note: the call to errorhandler() ALWAYS indirectly returned
- NULL, so ignore its return value */
- s->errorhandler();
- return -1;
- }
- return outlen;
+
+ return ctx.result;
}
@@ -2727,6 +2986,34 @@ is not specified (or 0), receive up to the size available in the given buffer.\n
\n\
See recv() for documentation about the flags.");
+struct sock_recvfrom {
+ char* cbuf;
+ Py_ssize_t len;
+ int flags;
+ socklen_t *addrlen;
+ sock_addr_t *addrbuf;
+ Py_ssize_t result;
+};
+
+static int
+sock_recvfrom_impl(PySocketSockObject *s, void *data)
+{
+ struct sock_recvfrom *ctx = data;
+
+ memset(ctx->addrbuf, 0, *ctx->addrlen);
+
+#ifdef MS_WINDOWS
+ if (ctx->len > INT_MAX)
+ ctx->len = INT_MAX;
+ ctx->result = recvfrom(s->sock_fd, ctx->cbuf, (int)ctx->len, ctx->flags,
+ SAS2SA(ctx->addrbuf), ctx->addrlen);
+#else
+ ctx->result = recvfrom(s->sock_fd, ctx->cbuf, ctx->len, ctx->flags,
+ SAS2SA(ctx->addrbuf), ctx->addrlen);
+#endif
+ return (ctx->result >= 0);
+}
+
/*
* This is the guts of the recvfrom() and recvfrom_into() methods, which reads
@@ -2744,9 +3031,8 @@ sock_recvfrom_guts(PySocketSockObject *s, char* cbuf, Py_ssize_t len, int flags,
PyObject** addr)
{
sock_addr_t addrbuf;
- int timeout;
- Py_ssize_t n = -1;
socklen_t addrlen;
+ struct sock_recvfrom ctx;
*addr = NULL;
@@ -2758,38 +3044,20 @@ sock_recvfrom_guts(PySocketSockObject *s, char* cbuf, Py_ssize_t len, int flags,
return -1;
}
- BEGIN_SELECT_LOOP(s)
- Py_BEGIN_ALLOW_THREADS
- memset(&addrbuf, 0, addrlen);
- timeout = internal_select_ex(s, 0, interval);
- if (!timeout) {
-#ifdef MS_WINDOWS
- if (len > INT_MAX)
- len = INT_MAX;
- n = recvfrom(s->sock_fd, cbuf, (int)len, flags,
- (void *) &addrbuf, &addrlen);
-#else
- n = recvfrom(s->sock_fd, cbuf, len, flags,
- SAS2SA(&addrbuf), &addrlen);
-#endif
- }
- Py_END_ALLOW_THREADS
-
- if (timeout == 1) {
- PyErr_SetString(socket_timeout, "timed out");
- return -1;
- }
- END_SELECT_LOOP(s)
- if (n < 0) {
- s->errorhandler();
+ ctx.cbuf = cbuf;
+ ctx.len = len;
+ ctx.flags = flags;
+ ctx.addrbuf = &addrbuf;
+ ctx.addrlen = &addrlen;
+ if (sock_call(s, 0, sock_recvfrom_impl, &ctx) < 0)
return -1;
- }
- if (!(*addr = makesockaddr(s->sock_fd, SAS2SA(&addrbuf),
- addrlen, s->sock_proto)))
+ *addr = makesockaddr(s->sock_fd, SAS2SA(&addrbuf), addrlen,
+ s->sock_proto);
+ if (*addr == NULL)
return -1;
- return n;
+ return ctx.result;
}
/* s.recvfrom(nbytes [,flags]) method */
@@ -2900,10 +3168,24 @@ PyDoc_STRVAR(recvfrom_into_doc,
\n\
Like recv_into(buffer[, nbytes[, flags]]) but also return the sender's address info.");
-
/* The sendmsg() and recvmsg[_into]() methods require a working
CMSG_LEN(). See the comment near get_CMSG_LEN(). */
#ifdef CMSG_LEN
+struct sock_recvmsg {
+ struct msghdr *msg;
+ int flags;
+ ssize_t result;
+};
+
+static int
+sock_recvmsg_impl(PySocketSockObject *s, void *data)
+{
+ struct sock_recvmsg *ctx = data;
+
+ ctx->result = recvmsg(s->sock_fd, ctx->msg, ctx->flags);
+ return (ctx->result >= 0);
+}
+
/*
* Call recvmsg() with the supplied iovec structures, flags, and
* ancillary data buffer size (controllen). Returns the tuple return
@@ -2919,8 +3201,6 @@ sock_recvmsg_guts(PySocketSockObject *s, struct iovec *iov, int iovlen,
int flags, Py_ssize_t controllen,
PyObject *(*makeval)(ssize_t, void *), void *makeval_data)
{
- ssize_t bytes_received = -1;
- int timeout;
sock_addr_t addrbuf;
socklen_t addrbuflen;
struct msghdr msg = {0};
@@ -2929,6 +3209,7 @@ sock_recvmsg_guts(PySocketSockObject *s, struct iovec *iov, int iovlen,
struct cmsghdr *cmsgh;
size_t cmsgdatalen = 0;
int cmsg_status;
+ struct sock_recvmsg ctx;
/* XXX: POSIX says that msg_name and msg_namelen "shall be
ignored" when the socket is connected (Linux fills them in
@@ -2955,28 +3236,17 @@ sock_recvmsg_guts(PySocketSockObject *s, struct iovec *iov, int iovlen,
goto finally;
}
- BEGIN_SELECT_LOOP(s)
- Py_BEGIN_ALLOW_THREADS;
msg.msg_name = SAS2SA(&addrbuf);
msg.msg_namelen = addrbuflen;
msg.msg_iov = iov;
msg.msg_iovlen = iovlen;
msg.msg_control = controlbuf;
msg.msg_controllen = controllen;
- timeout = internal_select_ex(s, 0, interval);
- if (!timeout)
- bytes_received = recvmsg(s->sock_fd, &msg, flags);
- Py_END_ALLOW_THREADS;
- if (timeout == 1) {
- PyErr_SetString(socket_timeout, "timed out");
- goto finally;
- }
- END_SELECT_LOOP(s)
- if (bytes_received < 0) {
- s->errorhandler();
+ ctx.msg = &msg;
+ ctx.flags = flags;
+ if (sock_call(s, 0, sock_recvmsg_impl, &ctx) < 0)
goto finally;
- }
/* Make list of (level, type, data) tuples from control messages. */
if ((cmsg_list = PyList_New(0)) == NULL)
@@ -3018,7 +3288,7 @@ sock_recvmsg_guts(PySocketSockObject *s, struct iovec *iov, int iovlen,
}
retval = Py_BuildValue("NOiN",
- (*makeval)(bytes_received, makeval_data),
+ (*makeval)(ctx.result, makeval_data),
cmsg_list,
(int)msg.msg_flags,
makesockaddr(s->sock_fd, SAS2SA(&addrbuf),
@@ -3226,15 +3496,36 @@ SCM_RIGHTS mechanism.");
#endif /* CMSG_LEN */
+struct sock_send {
+ char *buf;
+ Py_ssize_t len;
+ int flags;
+ Py_ssize_t result;
+};
+
+static int
+sock_send_impl(PySocketSockObject *s, void *data)
+{
+ struct sock_send *ctx = data;
+
+#ifdef MS_WINDOWS
+ if (ctx->len > INT_MAX)
+ ctx->len = INT_MAX;
+ ctx->result = send(s->sock_fd, ctx->buf, (int)ctx->len, ctx->flags);
+#else
+ ctx->result = send(s->sock_fd, ctx->buf, ctx->len, ctx->flags);
+#endif
+ return (ctx->result >= 0);
+}
+
/* s.send(data [,flags]) method */
static PyObject *
sock_send(PySocketSockObject *s, PyObject *args)
{
- char *buf;
- Py_ssize_t len, n = -1;
- int flags = 0, timeout;
+ int flags = 0;
Py_buffer pbuf;
+ struct sock_send ctx;
if (!PyArg_ParseTuple(args, "y*|i:send", &pbuf, &flags))
return NULL;
@@ -3243,33 +3534,16 @@ sock_send(PySocketSockObject *s, PyObject *args)
PyBuffer_Release(&pbuf);
return select_error();
}
- buf = pbuf.buf;
- len = pbuf.len;
-
- BEGIN_SELECT_LOOP(s)
- Py_BEGIN_ALLOW_THREADS
- timeout = internal_select_ex(s, 1, interval);
- if (!timeout) {
-#ifdef MS_WINDOWS
- if (len > INT_MAX)
- len = INT_MAX;
- n = send(s->sock_fd, buf, (int)len, flags);
-#else
- n = send(s->sock_fd, buf, len, flags);
-#endif
- }
- Py_END_ALLOW_THREADS
- if (timeout == 1) {
+ ctx.buf = pbuf.buf;
+ ctx.len = pbuf.len;
+ ctx.flags = flags;
+ if (sock_call(s, 1, sock_send_impl, &ctx) < 0) {
PyBuffer_Release(&pbuf);
- PyErr_SetString(socket_timeout, "timed out");
return NULL;
}
- END_SELECT_LOOP(s)
-
PyBuffer_Release(&pbuf);
- if (n < 0)
- return s->errorhandler();
- return PyLong_FromSsize_t(n);
+
+ return PyLong_FromSsize_t(ctx.result);
}
PyDoc_STRVAR(send_doc,
@@ -3286,9 +3560,15 @@ static PyObject *
sock_sendall(PySocketSockObject *s, PyObject *args)
{
char *buf;
- Py_ssize_t len, n = -1;
- int flags = 0, timeout, saved_errno;
+ Py_ssize_t len, n;
+ int flags = 0;
Py_buffer pbuf;
+ struct sock_send ctx;
+ int has_timeout = (s->sock_timeout > 0);
+ _PyTime_t interval = s->sock_timeout;
+ _PyTime_t deadline = 0;
+ int deadline_initialized = 0;
+ PyObject *res = NULL;
if (!PyArg_ParseTuple(args, "y*|i:sendall", &pbuf, &flags))
return NULL;
@@ -3301,50 +3581,47 @@ sock_sendall(PySocketSockObject *s, PyObject *args)
}
do {
- Py_BEGIN_ALLOW_THREADS
- timeout = internal_select(s, 1);
- n = -1;
- if (!timeout) {
-#ifdef MS_WINDOWS
- if (len > INT_MAX)
- len = INT_MAX;
- n = send(s->sock_fd, buf, (int)len, flags);
-#else
- n = send(s->sock_fd, buf, len, flags);
-#endif
- }
- Py_END_ALLOW_THREADS
- if (timeout == 1) {
- PyBuffer_Release(&pbuf);
- PyErr_SetString(socket_timeout, "timed out");
- return NULL;
+ if (has_timeout) {
+ if (deadline_initialized) {
+ /* recompute the timeout */
+ interval = deadline - _PyTime_GetMonotonicClock();
+ }
+ else {
+ deadline_initialized = 1;
+ deadline = _PyTime_GetMonotonicClock() + s->sock_timeout;
+ }
+
+ if (interval <= 0) {
+ PyErr_SetString(socket_timeout, "timed out");
+ goto done;
+ }
}
- /* PyErr_CheckSignals() might change errno */
- saved_errno = errno;
+
+ ctx.buf = buf;
+ ctx.len = len;
+ ctx.flags = flags;
+ if (sock_call_ex(s, 1, sock_send_impl, &ctx, 0, NULL, interval) < 0)
+ goto done;
+ n = ctx.result;
+ assert(n >= 0);
+
+ buf += n;
+ len -= n;
+
/* We must run our signal handlers before looping again.
send() can return a successful partial write when it is
interrupted, so we can't restrict ourselves to EINTR. */
- if (PyErr_CheckSignals()) {
- PyBuffer_Release(&pbuf);
- return NULL;
- }
- if (n < 0) {
- /* If interrupted, try again */
- if (saved_errno == EINTR)
- continue;
- else
- break;
- }
- buf += n;
- len -= n;
+ if (PyErr_CheckSignals())
+ goto done;
} while (len > 0);
PyBuffer_Release(&pbuf);
- if (n < 0)
- return s->errorhandler();
-
Py_INCREF(Py_None);
- return Py_None;
+ res = Py_None;
+
+done:
+ PyBuffer_Release(&pbuf);
+ return res;
}
PyDoc_STRVAR(sendall_doc,
@@ -3356,6 +3633,32 @@ until all data is sent. If an error occurs, it's impossible\n\
to tell how much data has been sent.");
+struct sock_sendto {
+ char *buf;
+ Py_ssize_t len;
+ int flags;
+ int addrlen;
+ sock_addr_t *addrbuf;
+ Py_ssize_t result;
+};
+
+static int
+sock_sendto_impl(PySocketSockObject *s, void *data)
+{
+ struct sock_sendto *ctx = data;
+
+#ifdef MS_WINDOWS
+ if (ctx->len > INT_MAX)
+ ctx->len = INT_MAX;
+ ctx->result = sendto(s->sock_fd, ctx->buf, (int)ctx->len, ctx->flags,
+ SAS2SA(ctx->addrbuf), ctx->addrlen);
+#else
+ ctx->result = sendto(s->sock_fd, ctx->buf, ctx->len, ctx->flags,
+ SAS2SA(ctx->addrbuf), ctx->addrlen);
+#endif
+ return (ctx->result >= 0);
+}
+
/* s.sendto(data, [flags,] sockaddr) method */
static PyObject *
@@ -3363,11 +3666,10 @@ sock_sendto(PySocketSockObject *s, PyObject *args)
{
Py_buffer pbuf;
PyObject *addro;
- char *buf;
- Py_ssize_t len, arglen;
+ Py_ssize_t arglen;
sock_addr_t addrbuf;
- int addrlen, flags, timeout;
- Py_ssize_t n = -1;
+ int addrlen, flags;
+ struct sock_sendto ctx;
flags = 0;
arglen = PyTuple_Size(args);
@@ -3388,9 +3690,6 @@ sock_sendto(PySocketSockObject *s, PyObject *args)
if (PyErr_Occurred())
return NULL;
- buf = pbuf.buf;
- len = pbuf.len;
-
if (!IS_SELECTABLE(s)) {
PyBuffer_Release(&pbuf);
return select_error();
@@ -3401,32 +3700,18 @@ sock_sendto(PySocketSockObject *s, PyObject *args)
return NULL;
}
- BEGIN_SELECT_LOOP(s)
- Py_BEGIN_ALLOW_THREADS
- timeout = internal_select_ex(s, 1, interval);
- if (!timeout) {
-#ifdef MS_WINDOWS
- if (len > INT_MAX)
- len = INT_MAX;
- n = sendto(s->sock_fd, buf, (int)len, flags,
- SAS2SA(&addrbuf), addrlen);
-#else
- n = sendto(s->sock_fd, buf, len, flags,
- SAS2SA(&addrbuf), addrlen);
-#endif
- }
- Py_END_ALLOW_THREADS
-
- if (timeout == 1) {
+ ctx.buf = pbuf.buf;
+ ctx.len = pbuf.len;
+ ctx.flags = flags;
+ ctx.addrlen = addrlen;
+ ctx.addrbuf = &addrbuf;
+ if (sock_call(s, 1, sock_sendto_impl, &ctx) < 0) {
PyBuffer_Release(&pbuf);
- PyErr_SetString(socket_timeout, "timed out");
return NULL;
}
- END_SELECT_LOOP(s)
PyBuffer_Release(&pbuf);
- if (n < 0)
- return s->errorhandler();
- return PyLong_FromSsize_t(n);
+
+ return PyLong_FromSsize_t(ctx.result);
}
PyDoc_STRVAR(sendto_doc,
@@ -3439,6 +3724,21 @@ For IP sockets, the address is a pair (hostaddr, port).");
/* The sendmsg() and recvmsg[_into]() methods require a working
CMSG_LEN(). See the comment near get_CMSG_LEN(). */
#ifdef CMSG_LEN
+struct sock_sendmsg {
+ struct msghdr *msg;
+ int flags;
+ ssize_t result;
+};
+
+static int
+sock_sendmsg_impl(PySocketSockObject *s, void *data)
+{
+ struct sock_sendmsg *ctx = data;
+
+ ctx->result = sendmsg(s->sock_fd, ctx->msg, ctx->flags);
+ return (ctx->result >= 0);
+}
+
/* s.sendmsg(buffers[, ancdata[, flags[, address]]]) method */
static PyObject *
@@ -3456,10 +3756,10 @@ sock_sendmsg(PySocketSockObject *s, PyObject *args)
} *cmsgs = NULL;
void *controlbuf = NULL;
size_t controllen, controllen_last;
- ssize_t bytes_sent = -1;
- int addrlen, timeout, flags = 0;
+ int addrlen, flags = 0;
PyObject *data_arg, *cmsg_arg = NULL, *addr_arg = NULL, *data_fast = NULL,
*cmsg_fast = NULL, *retval = NULL;
+ struct sock_sendmsg ctx;
if (!PyArg_ParseTuple(args, "O|OiO:sendmsg",
&data_arg, &cmsg_arg, &flags, &addr_arg))
@@ -3613,23 +3913,12 @@ sock_sendmsg(PySocketSockObject *s, PyObject *args)
goto finally;
}
- BEGIN_SELECT_LOOP(s)
- Py_BEGIN_ALLOW_THREADS;
- timeout = internal_select_ex(s, 1, interval);
- if (!timeout)
- bytes_sent = sendmsg(s->sock_fd, &msg, flags);
- Py_END_ALLOW_THREADS;
- if (timeout == 1) {
- PyErr_SetString(socket_timeout, "timed out");
+ ctx.msg = &msg;
+ ctx.flags = flags;
+ if (sock_call(s, 1, sock_sendmsg_impl, &ctx) < 0)
goto finally;
- }
- END_SELECT_LOOP(s)
- if (bytes_sent < 0) {
- s->errorhandler();
- goto finally;
- }
- retval = PyLong_FromSsize_t(bytes_sent);
+ retval = PyLong_FromSsize_t(ctx.result);
finally:
PyMem_Free(controlbuf);
@@ -3796,7 +4085,7 @@ static PyMethodDef sock_methods[] = {
{"share", (PyCFunction)sock_share, METH_VARARGS,
sock_share_doc},
#endif
- {"listen", (PyCFunction)sock_listen, METH_O,
+ {"listen", (PyCFunction)sock_listen, METH_VARARGS,
listen_doc},
{"recv", (PyCFunction)sock_recv, METH_VARARGS,
recv_doc},
@@ -3838,10 +4127,14 @@ static PyMemberDef sock_memberlist[] = {
{"family", T_INT, offsetof(PySocketSockObject, sock_family), READONLY, "the socket family"},
{"type", T_INT, offsetof(PySocketSockObject, sock_type), READONLY, "the socket type"},
{"proto", T_INT, offsetof(PySocketSockObject, sock_proto), READONLY, "the socket protocol"},
- {"timeout", T_DOUBLE, offsetof(PySocketSockObject, sock_timeout), READONLY, "the socket timeout"},
{0},
};
+static PyGetSetDef sock_getsetlist[] = {
+ {"timeout", (getter)sock_gettimeout, NULL, PyDoc_STR("the socket timeout")},
+ {NULL} /* sentinel */
+};
+
/* Deallocate a socket object in response to the last Py_DECREF().
First close the file description. */
@@ -3905,7 +4198,7 @@ sock_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
new = type->tp_alloc(type, 0);
if (new != NULL) {
((PySocketSockObject *)new)->sock_fd = -1;
- ((PySocketSockObject *)new)->sock_timeout = -1.0;
+ ((PySocketSockObject *)new)->sock_timeout = _PyTime_FromSeconds(-1);
((PySocketSockObject *)new)->errorhandler = &set_error;
}
return new;
@@ -4088,7 +4381,7 @@ static PyTypeObject sock_type = {
0, /* tp_iternext */
sock_methods, /* tp_methods */
sock_memberlist, /* tp_members */
- 0, /* tp_getset */
+ sock_getsetlist, /* tp_getset */
0, /* tp_base */
0, /* tp_dict */
0, /* tp_descr_get */
@@ -4227,7 +4520,7 @@ Return the IP address (a string of the form '255.255.255.255') for a host.");
/* Convenience function common to gethostbyname_ex and gethostbyaddr */
static PyObject *
-gethost_common(struct hostent *h, struct sockaddr *addr, int alen, int af)
+gethost_common(struct hostent *h, struct sockaddr *addr, size_t alen, int af)
{
char **pch;
PyObject *rtn_tuple = (PyObject *)NULL;
@@ -4944,21 +5237,22 @@ Convert an IP address from 32-bit packed binary format to string format");
static PyObject*
socket_inet_ntoa(PyObject *self, PyObject *args)
{
- char *packed_str;
- int addr_len;
+ Py_buffer packed_ip;
struct in_addr packed_addr;
- if (!PyArg_ParseTuple(args, "y#:inet_ntoa", &packed_str, &addr_len)) {
+ if (!PyArg_ParseTuple(args, "y*:inet_ntoa", &packed_ip)) {
return NULL;
}
- if (addr_len != sizeof(packed_addr)) {
+ if (packed_ip.len != sizeof(packed_addr)) {
PyErr_SetString(PyExc_OSError,
"packed IP wrong length for inet_ntoa");
+ PyBuffer_Release(&packed_ip);
return NULL;
}
- memcpy(&packed_addr, packed_str, addr_len);
+ memcpy(&packed_addr, packed_ip.buf, packed_ip.len);
+ PyBuffer_Release(&packed_ip);
return PyUnicode_FromString(inet_ntoa(packed_addr));
}
@@ -5069,8 +5363,7 @@ static PyObject *
socket_inet_ntop(PyObject *self, PyObject *args)
{
int af;
- char* packed;
- int len;
+ Py_buffer packed_ip;
const char* retval;
#ifdef ENABLE_IPV6
char ip[Py_MAX(INET_ADDRSTRLEN, INET6_ADDRSTRLEN) + 1];
@@ -5081,31 +5374,35 @@ socket_inet_ntop(PyObject *self, PyObject *args)
/* Guarantee NUL-termination for PyUnicode_FromString() below */
memset((void *) &ip[0], '\0', sizeof(ip));
- if (!PyArg_ParseTuple(args, "iy#:inet_ntop", &af, &packed, &len)) {
+ if (!PyArg_ParseTuple(args, "iy*:inet_ntop", &af, &packed_ip)) {
return NULL;
}
if (af == AF_INET) {
- if (len != sizeof(struct in_addr)) {
+ if (packed_ip.len != sizeof(struct in_addr)) {
PyErr_SetString(PyExc_ValueError,
"invalid length of packed IP address string");
+ PyBuffer_Release(&packed_ip);
return NULL;
}
#ifdef ENABLE_IPV6
} else if (af == AF_INET6) {
- if (len != sizeof(struct in6_addr)) {
+ if (packed_ip.len != sizeof(struct in6_addr)) {
PyErr_SetString(PyExc_ValueError,
"invalid length of packed IP address string");
+ PyBuffer_Release(&packed_ip);
return NULL;
}
#endif
} else {
PyErr_Format(PyExc_ValueError,
"unknown address family %d", af);
+ PyBuffer_Release(&packed_ip);
return NULL;
}
- retval = inet_ntop(af, packed, ip, sizeof(ip));
+ retval = inet_ntop(af, packed_ip.buf, ip, sizeof(ip));
+ PyBuffer_Release(&packed_ip);
if (!retval) {
PyErr_SetFromErrno(PyExc_OSError);
return NULL;
@@ -5124,8 +5421,7 @@ static PyObject *
socket_inet_ntop(PyObject *self, PyObject *args)
{
int af;
- char* packed;
- int len;
+ Py_buffer packed_ip;
struct sockaddr_in6 addr;
DWORD addrlen, ret, retlen;
#ifdef ENABLE_IPV6
@@ -5137,38 +5433,42 @@ socket_inet_ntop(PyObject *self, PyObject *args)
/* Guarantee NUL-termination for PyUnicode_FromString() below */
memset((void *) &ip[0], '\0', sizeof(ip));
- if (!PyArg_ParseTuple(args, "iy#:inet_ntop", &af, &packed, &len)) {
+ if (!PyArg_ParseTuple(args, "iy*:inet_ntop", &af, &packed_ip)) {
return NULL;
}
if (af == AF_INET) {
struct sockaddr_in * addr4 = (struct sockaddr_in *)&addr;
- if (len != sizeof(struct in_addr)) {
+ if (packed_ip.len != sizeof(struct in_addr)) {
PyErr_SetString(PyExc_ValueError,
"invalid length of packed IP address string");
+ PyBuffer_Release(&packed_ip);
return NULL;
}
memset(addr4, 0, sizeof(struct sockaddr_in));
addr4->sin_family = AF_INET;
- memcpy(&(addr4->sin_addr), packed, sizeof(addr4->sin_addr));
+ memcpy(&(addr4->sin_addr), packed_ip.buf, sizeof(addr4->sin_addr));
addrlen = sizeof(struct sockaddr_in);
} else if (af == AF_INET6) {
- if (len != sizeof(struct in6_addr)) {
+ if (packed_ip.len != sizeof(struct in6_addr)) {
PyErr_SetString(PyExc_ValueError,
"invalid length of packed IP address string");
+ PyBuffer_Release(&packed_ip);
return NULL;
}
memset(&addr, 0, sizeof(addr));
addr.sin6_family = AF_INET6;
- memcpy(&(addr.sin6_addr), packed, sizeof(addr.sin6_addr));
+ memcpy(&(addr.sin6_addr), packed_ip.buf, sizeof(addr.sin6_addr));
addrlen = sizeof(addr);
} else {
PyErr_Format(PyExc_ValueError,
"unknown address family %d", af);
+ PyBuffer_Release(&packed_ip);
return NULL;
}
+ PyBuffer_Release(&packed_ip);
retlen = sizeof(ip);
ret = WSAAddressToStringA((struct sockaddr*)&addr, addrlen, NULL,
@@ -5403,12 +5703,14 @@ Get host and port for a sockaddr.");
static PyObject *
socket_getdefaulttimeout(PyObject *self)
{
- if (defaulttimeout < 0.0) {
+ if (defaulttimeout < 0) {
Py_INCREF(Py_None);
return Py_None;
}
- else
- return PyFloat_FromDouble(defaulttimeout);
+ else {
+ double seconds = _PyTime_AsSecondsDouble(defaulttimeout);
+ return PyFloat_FromDouble(seconds);
+ }
}
PyDoc_STRVAR(getdefaulttimeout_doc,
@@ -5421,19 +5723,10 @@ When the socket module is first imported, the default is None.");
static PyObject *
socket_setdefaulttimeout(PyObject *self, PyObject *arg)
{
- double timeout;
+ _PyTime_t timeout;
- if (arg == Py_None)
- timeout = -1.0;
- else {
- timeout = PyFloat_AsDouble(arg);
- if (timeout < 0.0) {
- if (!PyErr_Occurred())
- PyErr_SetString(PyExc_ValueError,
- "Timeout value out of range");
- return NULL;
- }
- }
+ if (socket_parse_timeout(&timeout, arg) < 0)
+ return NULL;
defaulttimeout = timeout;
@@ -5780,11 +6073,15 @@ PyInit__socket(void)
#ifdef MS_WINDOWS
if (support_wsa_no_inherit == -1) {
+#if defined(_MSC_VER) && _MSC_VER >= 1800
+ support_wsa_no_inherit = IsWindows7SP1OrGreater();
+#else
DWORD version = GetVersion();
DWORD major = (DWORD)LOBYTE(LOWORD(version));
DWORD minor = (DWORD)HIBYTE(LOWORD(version));
/* need Windows 7 SP1, 2008 R2 SP1 or later */
- support_wsa_no_inherit = (major >= 6 && minor >= 1);
+ support_wsa_no_inherit = major > 6 || (major == 6 && minor >= 1);
+#endif
}
#endif
@@ -6183,6 +6480,9 @@ PyInit__socket(void)
#ifdef SO_PRIORITY
PyModule_AddIntMacro(m, SO_PRIORITY);
#endif
+#ifdef SO_MARK
+ PyModule_AddIntMacro(m, SO_MARK);
+#endif
/* Maximum number of connections for "listen" */
#ifdef SOMAXCONN
@@ -6320,6 +6620,9 @@ PyInit__socket(void)
PyModule_AddIntMacro(m, CAN_RAW_LOOPBACK);
PyModule_AddIntMacro(m, CAN_RAW_RECV_OWN_MSGS);
#endif
+#ifdef HAVE_LINUX_CAN_RAW_FD_FRAMES
+ PyModule_AddIntMacro(m, CAN_RAW_FD_FRAMES);
+#endif
#ifdef HAVE_LINUX_CAN_BCM_H
PyModule_AddIntMacro(m, CAN_BCM);
PyModule_AddIntConstant(m, "CAN_BCM_TX_SETUP", TX_SETUP);
diff --git a/Modules/socketmodule.h b/Modules/socketmodule.h
index b83f9af3bd..3cce927e0b 100644
--- a/Modules/socketmodule.h
+++ b/Modules/socketmodule.h
@@ -14,6 +14,13 @@
#else /* MS_WINDOWS */
# include <winsock2.h>
+/* Windows 'supports' CMSG_LEN, but does not follow the POSIX standard
+ * interface at all, so there is no point including the code that
+ * attempts to use it.
+ */
+# ifdef PySocket_BUILDING_SOCKET
+# undef CMSG_LEN
+# endif
# include <ws2tcpip.h>
/* VC6 is shipped with old platform headers, and does not have MSTcpIP.h
* Separate SDKs have all the functions we want, but older ones don't have
@@ -167,7 +174,7 @@ typedef struct {
PyObject *(*errorhandler)(void); /* Error handler; checks
errno, returns NULL and
sets a Python exception */
- double sock_timeout; /* Operation timeout in seconds;
+ _PyTime_t sock_timeout; /* Operation timeout in seconds;
0.0 means non-blocking */
} PySocketSockObject;
diff --git a/Modules/spwdmodule.c b/Modules/spwdmodule.c
index 68ea1b5ea4..49324d50f8 100644
--- a/Modules/spwdmodule.c
+++ b/Modules/spwdmodule.c
@@ -10,6 +10,12 @@
#include <shadow.h>
#endif
+#include "clinic/spwdmodule.c.h"
+
+/*[clinic input]
+module spwd
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=c0b841b90a6a07ce]*/
PyDoc_STRVAR(spwd__doc__,
"This module provides access to the Unix shadow password database.\n\
@@ -107,20 +113,25 @@ static PyObject *mkspent(struct spwd *p)
#ifdef HAVE_GETSPNAM
-PyDoc_STRVAR(spwd_getspnam__doc__,
-"getspnam(name) -> (sp_namp, sp_pwdp, sp_lstchg, sp_min, sp_max,\n\
- sp_warn, sp_inact, sp_expire, sp_flag)\n\
-Return the shadow password database entry for the given user name.\n\
-See spwd.__doc__ for more on shadow password database entries.");
+/*[clinic input]
+spwd.getspnam
+
+ arg: unicode
+ /
+
+Return the shadow password database entry for the given user name.
+
+See `help(spwd)` for more on shadow password database entries.
+[clinic start generated code]*/
-static PyObject* spwd_getspnam(PyObject *self, PyObject *args)
+static PyObject *
+spwd_getspnam_impl(PyModuleDef *module, PyObject *arg)
+/*[clinic end generated code: output=9f6bbe51a4eb3b21 input=dd89429e6167a00f]*/
{
char *name;
struct spwd *p;
- PyObject *arg, *bytes, *retval = NULL;
+ PyObject *bytes, *retval = NULL;
- if (!PyArg_ParseTuple(args, "U:getspnam", &arg))
- return NULL;
if ((bytes = PyUnicode_EncodeFSDefault(arg)) == NULL)
return NULL;
if (PyBytes_AsStringAndSize(bytes, &name, NULL) == -1)
@@ -139,14 +150,17 @@ out:
#ifdef HAVE_GETSPENT
-PyDoc_STRVAR(spwd_getspall__doc__,
-"getspall() -> list_of_entries\n\
-Return a list of all available shadow password database entries, \
-in arbitrary order.\n\
-See spwd.__doc__ for more on shadow password database entries.");
+/*[clinic input]
+spwd.getspall
+
+Return a list of all available shadow password database entries, in arbitrary order.
+
+See `help(spwd)` for more on shadow password database entries.
+[clinic start generated code]*/
static PyObject *
-spwd_getspall(PyObject *self, PyObject *args)
+spwd_getspall_impl(PyModuleDef *module)
+/*[clinic end generated code: output=b12d8ec7bdb29612 input=b2c84b7857d622bd]*/
{
PyObject *d;
struct spwd *p;
@@ -171,10 +185,10 @@ spwd_getspall(PyObject *self, PyObject *args)
static PyMethodDef spwd_methods[] = {
#ifdef HAVE_GETSPNAM
- {"getspnam", spwd_getspnam, METH_VARARGS, spwd_getspnam__doc__},
+ SPWD_GETSPNAM_METHODDEF
#endif
#ifdef HAVE_GETSPENT
- {"getspall", spwd_getspall, METH_NOARGS, spwd_getspall__doc__},
+ SPWD_GETSPALL_METHODDEF
#endif
{NULL, NULL} /* sentinel */
};
diff --git a/Modules/sre.h b/Modules/sre.h
index 42fe28d554..b632165a1f 100644
--- a/Modules/sre.h
+++ b/Modules/sre.h
@@ -18,8 +18,10 @@
#define SRE_CODE Py_UCS4
#if SIZEOF_SIZE_T > 4
# define SRE_MAXREPEAT (~(SRE_CODE)0)
+# define SRE_MAXGROUPS ((~(SRE_CODE)0) / 2)
#else
# define SRE_MAXREPEAT ((SRE_CODE)PY_SSIZE_T_MAX)
+# define SRE_MAXGROUPS ((SRE_CODE)PY_SSIZE_T_MAX / SIZEOF_SIZE_T / 2)
#endif
typedef struct {
@@ -52,9 +54,6 @@ typedef struct {
typedef unsigned int (*SRE_TOLOWER_HOOK)(unsigned int ch);
-/* FIXME: <fl> shouldn't be a constant, really... */
-#define SRE_MARK_SIZE 200
-
typedef struct SRE_REPEAT_T {
Py_ssize_t count;
SRE_CODE* pattern; /* points to REPEAT operator arguments */
@@ -76,7 +75,7 @@ typedef struct {
/* registers */
Py_ssize_t lastindex;
Py_ssize_t lastmark;
- void* mark[SRE_MARK_SIZE];
+ void** mark;
/* dynamically allocated stuff */
char* data_stack;
size_t data_stack_size;
@@ -85,7 +84,7 @@ typedef struct {
/* current repeat context */
SRE_REPEAT *repeat;
/* hooks */
- SRE_TOLOWER_HOOK lower;
+ SRE_TOLOWER_HOOK lower, upper;
} SRE_STATE;
typedef struct {
diff --git a/Modules/sre_constants.h b/Modules/sre_constants.h
index 5940d5a50f..6632442efe 100644
--- a/Modules/sre_constants.h
+++ b/Modules/sre_constants.h
@@ -11,7 +11,7 @@
* See the _sre.c file for information on usage and redistribution.
*/
-#define SRE_MAGIC 20031017
+#define SRE_MAGIC 20140917
#define SRE_OP_FAILURE 0
#define SRE_OP_SUCCESS 1
#define SRE_OP_ANY 2
@@ -44,6 +44,7 @@
#define SRE_OP_REPEAT_ONE 29
#define SRE_OP_SUBPATTERN 30
#define SRE_OP_MIN_REPEAT_ONE 31
+#define SRE_OP_RANGE_IGNORE 32
#define SRE_AT_BEGINNING 0
#define SRE_AT_BEGINNING_LINE 1
#define SRE_AT_BEGINNING_STRING 2
diff --git a/Modules/sre_lib.h b/Modules/sre_lib.h
index 1049de4226..128c71e340 100644
--- a/Modules/sre_lib.h
+++ b/Modules/sre_lib.h
@@ -101,7 +101,7 @@ SRE(at)(SRE_STATE* state, SRE_CHAR* ptr, SRE_CODE at)
}
LOCAL(int)
-SRE(charset)(SRE_CODE* set, SRE_CODE ch)
+SRE(charset)(SRE_STATE* state, SRE_CODE* set, SRE_CODE ch)
{
/* check if character is a member of the given set */
@@ -142,6 +142,20 @@ SRE(charset)(SRE_CODE* set, SRE_CODE ch)
set += 2;
break;
+ case SRE_OP_RANGE_IGNORE:
+ /* <RANGE_IGNORE> <lower> <upper> */
+ {
+ SRE_CODE uch;
+ /* ch is already lower cased */
+ if (set[0] <= ch && ch <= set[1])
+ return ok;
+ uch = state->upper(ch);
+ if (set[0] <= uch && uch <= set[1])
+ return ok;
+ set += 2;
+ break;
+ }
+
case SRE_OP_NEGATE:
ok = !ok;
break;
@@ -193,7 +207,7 @@ SRE(count)(SRE_STATE* state, SRE_CODE* pattern, Py_ssize_t maxcount)
case SRE_OP_IN:
/* repeated set */
TRACE(("|%p|%p|COUNT IN\n", pattern, ptr));
- while (ptr < end && SRE(charset)(pattern + 2, *ptr))
+ while (ptr < end && SRE(charset)(state, pattern + 2, *ptr))
ptr++;
break;
@@ -628,7 +642,8 @@ entrance:
/* match set member (or non_member) */
/* <IN> <skip> <set> */
TRACE(("|%p|%p|IN\n", ctx->pattern, ctx->ptr));
- if (ctx->ptr >= end || !SRE(charset)(ctx->pattern + 1, *ctx->ptr))
+ if (ctx->ptr >= end ||
+ !SRE(charset)(state, ctx->pattern + 1, *ctx->ptr))
RETURN_FAILURE;
ctx->pattern += ctx->pattern[0];
ctx->ptr++;
@@ -657,7 +672,7 @@ entrance:
case SRE_OP_IN_IGNORE:
TRACE(("|%p|%p|IN_IGNORE\n", ctx->pattern, ctx->ptr));
if (ctx->ptr >= end
- || !SRE(charset)(ctx->pattern+1,
+ || !SRE(charset)(state, ctx->pattern+1,
(SRE_CODE)state->lower(*ctx->ptr)))
RETURN_FAILURE;
ctx->pattern += ctx->pattern[0];
@@ -688,7 +703,8 @@ entrance:
continue;
if (ctx->pattern[1] == SRE_OP_IN &&
(ctx->ptr >= end ||
- !SRE(charset)(ctx->pattern + 3, (SRE_CODE) *ctx->ptr)))
+ !SRE(charset)(state, ctx->pattern + 3,
+ (SRE_CODE) *ctx->ptr)))
continue;
state->ptr = ctx->ptr;
DO_JUMP(JUMP_BRANCH, jump_branch, ctx->pattern+1);
@@ -1318,7 +1334,7 @@ SRE(search)(SRE_STATE* state, SRE_CODE* pattern)
/* pattern starts with a character from a known set */
end = (SRE_CHAR *)state->end;
for (;;) {
- while (ptr < end && !SRE(charset)(charset, *ptr))
+ while (ptr < end && !SRE(charset)(state, charset, *ptr))
ptr++;
if (ptr >= end)
return 0;
diff --git a/Modules/symtablemodule.c b/Modules/symtablemodule.c
index cdb4ffcbd8..f84cc78b73 100644
--- a/Modules/symtablemodule.c
+++ b/Modules/symtablemodule.c
@@ -84,9 +84,6 @@ PyInit__symtable(void)
PyModule_AddIntConstant(m, "TYPE_CLASS", ClassBlock);
PyModule_AddIntConstant(m, "TYPE_MODULE", ModuleBlock);
- PyModule_AddIntMacro(m, OPT_IMPORT_STAR);
- PyModule_AddIntMacro(m, OPT_TOPLEVEL);
-
PyModule_AddIntMacro(m, LOCAL);
PyModule_AddIntMacro(m, GLOBAL_EXPLICIT);
PyModule_AddIntMacro(m, GLOBAL_IMPLICIT);
diff --git a/Modules/timemodule.c b/Modules/timemodule.c
index d71b3ac872..d2caacdc6d 100644
--- a/Modules/timemodule.c
+++ b/Modules/timemodule.c
@@ -27,28 +27,13 @@
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include "pythread.h"
-
-#if defined(__BORLANDC__)
-/* These overrides not needed for Win32 */
-#define timezone _timezone
-#define tzname _tzname
-#define daylight _daylight
-#endif /* __BORLANDC__ */
#endif /* MS_WINDOWS */
#endif /* !__WATCOMC__ || __QNX__ */
-#if defined(__APPLE__)
-#include <mach/mach_time.h>
-#endif
-
/* Forward declarations */
-static int floatsleep(double);
+static int pysleep(_PyTime_t);
static PyObject* floattime(_Py_clock_info_t *info);
-#ifdef MS_WINDOWS
-static OSVERSIONINFOEX winver;
-#endif
-
static PyObject *
time_time(PyObject *self, PyObject *unused)
{
@@ -92,12 +77,12 @@ floatclock(_Py_clock_info_t *info)
}
#endif /* HAVE_CLOCK */
-#if defined(MS_WINDOWS) && !defined(__BORLANDC__)
+#ifdef MS_WINDOWS
#define WIN32_PERF_COUNTER
/* Win32 has better clock replacement; we have our own version, due to Mark
Hammond and Tim Peters */
-static int
-win_perf_counter(_Py_clock_info_t *info, PyObject **result)
+static PyObject*
+win_perf_counter(_Py_clock_info_t *info)
{
static LONGLONG cpu_frequency = 0;
static LONGLONG ctrStart;
@@ -109,10 +94,8 @@ win_perf_counter(_Py_clock_info_t *info, PyObject **result)
QueryPerformanceCounter(&now);
ctrStart = now.QuadPart;
if (!QueryPerformanceFrequency(&freq) || freq.QuadPart == 0) {
- /* Unlikely to happen - this works on all intel
- machines at least! Revert to clock() */
- *result = NULL;
- return -1;
+ PyErr_SetFromWindowsErr(0);
+ return NULL;
}
cpu_frequency = freq.QuadPart;
}
@@ -124,10 +107,9 @@ win_perf_counter(_Py_clock_info_t *info, PyObject **result)
info->monotonic = 1;
info->adjustable = 0;
}
- *result = PyFloat_FromDouble(diff / (double)cpu_frequency);
- return 0;
+ return PyFloat_FromDouble(diff / (double)cpu_frequency);
}
-#endif
+#endif /* MS_WINDOWS */
#if defined(WIN32_PERF_COUNTER) || defined(HAVE_CLOCK)
#define PYCLOCK
@@ -135,11 +117,10 @@ static PyObject*
pyclock(_Py_clock_info_t *info)
{
#ifdef WIN32_PERF_COUNTER
- PyObject *res;
- if (win_perf_counter(info, &res) == 0)
- return res;
-#endif
+ return win_perf_counter(info);
+#else
return floatclock(info);
+#endif
}
static PyObject *
@@ -169,7 +150,7 @@ time_clock_gettime(PyObject *self, PyObject *args)
ret = clock_gettime((clockid_t)clk_id, &tp);
if (ret != 0) {
- PyErr_SetFromErrno(PyExc_IOError);
+ PyErr_SetFromErrno(PyExc_OSError);
return NULL;
}
return PyFloat_FromDouble(tp.tv_sec + tp.tv_nsec * 1e-9);
@@ -185,22 +166,22 @@ time_clock_settime(PyObject *self, PyObject *args)
{
int clk_id;
PyObject *obj;
- time_t tv_sec;
- long tv_nsec;
+ _PyTime_t t;
struct timespec tp;
int ret;
if (!PyArg_ParseTuple(args, "iO:clock_settime", &clk_id, &obj))
return NULL;
- if (_PyTime_ObjectToTimespec(obj, &tv_sec, &tv_nsec, _PyTime_ROUND_DOWN) == -1)
+ if (_PyTime_FromSecondsObject(&t, obj, _PyTime_ROUND_FLOOR) < 0)
+ return NULL;
+
+ if (_PyTime_AsTimespec(t, &tp) == -1)
return NULL;
- tp.tv_sec = tv_sec;
- tp.tv_nsec = tv_nsec;
ret = clock_settime((clockid_t)clk_id, &tp);
if (ret != 0) {
- PyErr_SetFromErrno(PyExc_IOError);
+ PyErr_SetFromErrno(PyExc_OSError);
return NULL;
}
Py_RETURN_NONE;
@@ -223,7 +204,7 @@ time_clock_getres(PyObject *self, PyObject *args)
ret = clock_getres((clockid_t)clk_id, &tp);
if (ret != 0) {
- PyErr_SetFromErrno(PyExc_IOError);
+ PyErr_SetFromErrno(PyExc_OSError);
return NULL;
}
@@ -237,17 +218,17 @@ Return the resolution (precision) of the specified clock clk_id.");
#endif /* HAVE_CLOCK_GETTIME */
static PyObject *
-time_sleep(PyObject *self, PyObject *args)
+time_sleep(PyObject *self, PyObject *obj)
{
- double secs;
- if (!PyArg_ParseTuple(args, "d:sleep", &secs))
+ _PyTime_t secs;
+ if (_PyTime_FromSecondsObject(&secs, obj, _PyTime_ROUND_CEILING))
return NULL;
if (secs < 0) {
PyErr_SetString(PyExc_ValueError,
"sleep length must be non-negative");
return NULL;
}
- if (floatsleep(secs) != 0)
+ if (pysleep(secs) != 0)
return NULL;
Py_INCREF(Py_None);
return Py_None;
@@ -341,7 +322,7 @@ parse_time_t_args(PyObject *args, char *format, time_t *pwhen)
whent = time(NULL);
}
else {
- if (_PyTime_ObjectToTime_t(ot, &whent, _PyTime_ROUND_DOWN) == -1)
+ if (_PyTime_ObjectToTime_t(ot, &whent, _PyTime_ROUND_FLOOR) == -1)
return 0;
}
*pwhen = whent;
@@ -629,21 +610,15 @@ time_strftime(PyObject *self, PyObject *args)
#if defined(MS_WINDOWS) && !defined(HAVE_WCSFTIME)
/* check that the format string contains only valid directives */
- for(outbuf = strchr(fmt, '%');
+ for (outbuf = strchr(fmt, '%');
outbuf != NULL;
outbuf = strchr(outbuf+2, '%'))
{
- if (outbuf[1]=='#')
+ if (outbuf[1] == '#')
++outbuf; /* not documented by python, */
- if (outbuf[1]=='\0' ||
- !strchr("aAbBcdHIjmMpSUwWxXyYzZ%", outbuf[1]))
- {
- PyErr_SetString(PyExc_ValueError, "Invalid format string");
- Py_DECREF(format);
- return NULL;
- }
- if ((outbuf[1] == 'y') && buf.tm_year < 0)
- {
+ if (outbuf[1] == '\0')
+ break;
+ if ((outbuf[1] == 'y') && buf.tm_year < 0) {
PyErr_SetString(PyExc_ValueError,
"format %y requires year >= 1900 on Windows");
Py_DECREF(format);
@@ -651,7 +626,7 @@ time_strftime(PyObject *self, PyObject *args)
}
}
#elif (defined(_AIX) || defined(sun)) && defined(HAVE_WCSFTIME)
- for(outbuf = wcschr(fmt, '%');
+ for (outbuf = wcschr(fmt, '%');
outbuf != NULL;
outbuf = wcschr(outbuf+2, '%'))
{
@@ -673,17 +648,24 @@ time_strftime(PyObject *self, PyObject *args)
* will be ahead of time...
*/
for (i = 1024; ; i += i) {
-#if defined _MSC_VER && _MSC_VER >= 1400 && defined(__STDC_SECURE_LIB__)
- int err;
-#endif
outbuf = (time_char *)PyMem_Malloc(i*sizeof(time_char));
if (outbuf == NULL) {
PyErr_NoMemory();
break;
}
+#if defined _MSC_VER && _MSC_VER >= 1400 && defined(__STDC_SECURE_LIB__)
+ errno = 0;
+#endif
+ _Py_BEGIN_SUPPRESS_IPH
buflen = format_time(outbuf, i, fmt, &buf);
+ _Py_END_SUPPRESS_IPH
#if defined _MSC_VER && _MSC_VER >= 1400 && defined(__STDC_SECURE_LIB__)
- err = errno;
+ /* VisualStudio .NET 2005 does this properly */
+ if (buflen == 0 && errno == EINVAL) {
+ PyErr_SetString(PyExc_ValueError, "Invalid format string");
+ PyMem_Free(outbuf);
+ break;
+ }
#endif
if (buflen > 0 || i >= 256 * fmtlen) {
/* If the buffer is 256 times as long as the format,
@@ -701,13 +683,6 @@ time_strftime(PyObject *self, PyObject *args)
break;
}
PyMem_Free(outbuf);
-#if defined _MSC_VER && _MSC_VER >= 1400 && defined(__STDC_SECURE_LIB__)
- /* VisualStudio .NET 2005 does this properly */
- if (buflen == 0 && err == EINVAL) {
- PyErr_SetString(PyExc_ValueError, "Invalid format string");
- break;
- }
-#endif
}
#ifdef HAVE_WCSFTIME
PyMem_Free(format);
@@ -905,122 +880,17 @@ the local timezone used by methods such as localtime, but this behaviour\n\
should not be relied on.");
#endif /* HAVE_WORKING_TZSET */
-#if defined(MS_WINDOWS) || defined(__APPLE__) \
- || (defined(HAVE_CLOCK_GETTIME) \
- && (defined(CLOCK_HIGHRES) || defined(CLOCK_MONOTONIC)))
-#define PYMONOTONIC
-#endif
-
-#ifdef PYMONOTONIC
-static PyObject*
+static PyObject *
pymonotonic(_Py_clock_info_t *info)
{
-#if defined(MS_WINDOWS)
- static ULONGLONG (*GetTickCount64) (void) = NULL;
- static ULONGLONG (CALLBACK *Py_GetTickCount64)(void);
- static int has_getickcount64 = -1;
- double result;
-
- if (has_getickcount64 == -1) {
- /* GetTickCount64() was added to Windows Vista */
- if (winver.dwMajorVersion >= 6) {
- HINSTANCE hKernel32;
- hKernel32 = GetModuleHandleW(L"KERNEL32");
- *(FARPROC*)&Py_GetTickCount64 = GetProcAddress(hKernel32,
- "GetTickCount64");
- has_getickcount64 = (Py_GetTickCount64 != NULL);
- }
- else
- has_getickcount64 = 0;
- }
-
- if (has_getickcount64) {
- ULONGLONG ticks;
- ticks = Py_GetTickCount64();
- result = (double)ticks * 1e-3;
- }
- else {
- static DWORD last_ticks = 0;
- static DWORD n_overflow = 0;
- DWORD ticks;
-
- ticks = GetTickCount();
- if (ticks < last_ticks)
- n_overflow++;
- last_ticks = ticks;
-
- result = ldexp(n_overflow, 32);
- result += ticks;
- result *= 1e-3;
- }
-
- if (info) {
- DWORD timeAdjustment, timeIncrement;
- BOOL isTimeAdjustmentDisabled, ok;
- if (has_getickcount64)
- info->implementation = "GetTickCount64()";
- else
- info->implementation = "GetTickCount()";
- info->monotonic = 1;
- ok = GetSystemTimeAdjustment(&timeAdjustment, &timeIncrement,
- &isTimeAdjustmentDisabled);
- if (!ok) {
- PyErr_SetFromWindowsErr(0);
- return NULL;
- }
- info->resolution = timeIncrement * 1e-7;
- info->adjustable = 0;
- }
- return PyFloat_FromDouble(result);
-
-#elif defined(__APPLE__)
- static mach_timebase_info_data_t timebase;
- uint64_t time;
- double secs;
-
- if (timebase.denom == 0) {
- /* According to the Technical Q&A QA1398, mach_timebase_info() cannot
- fail: https://developer.apple.com/library/mac/#qa/qa1398/ */
- (void)mach_timebase_info(&timebase);
- }
-
- time = mach_absolute_time();
- secs = (double)time * timebase.numer / timebase.denom * 1e-9;
- if (info) {
- info->implementation = "mach_absolute_time()";
- info->resolution = (double)timebase.numer / timebase.denom * 1e-9;
- info->monotonic = 1;
- info->adjustable = 0;
- }
- return PyFloat_FromDouble(secs);
-
-#elif defined(HAVE_CLOCK_GETTIME) && (defined(CLOCK_HIGHRES) || defined(CLOCK_MONOTONIC))
- struct timespec tp;
-#ifdef CLOCK_HIGHRES
- const clockid_t clk_id = CLOCK_HIGHRES;
- const char *function = "clock_gettime(CLOCK_HIGHRES)";
-#else
- const clockid_t clk_id = CLOCK_MONOTONIC;
- const char *function = "clock_gettime(CLOCK_MONOTONIC)";
-#endif
-
- if (clock_gettime(clk_id, &tp) != 0) {
- PyErr_SetFromErrno(PyExc_OSError);
+ _PyTime_t t;
+ double d;
+ if (_PyTime_GetMonotonicClockWithInfo(&t, info) < 0) {
+ assert(info != NULL);
return NULL;
}
-
- if (info) {
- struct timespec res;
- info->monotonic = 1;
- info->implementation = function;
- info->adjustable = 0;
- if (clock_getres(clk_id, &res) == 0)
- info->resolution = res.tv_sec + res.tv_nsec * 1e-9;
- else
- info->resolution = 1e-9;
- }
- return PyFloat_FromDouble(tp.tv_sec + tp.tv_nsec * 1e-9);
-#endif
+ d = _PyTime_AsSecondsDouble(t);
+ return PyFloat_FromDouble(d);
}
static PyObject *
@@ -1033,40 +903,15 @@ PyDoc_STRVAR(monotonic_doc,
"monotonic() -> float\n\
\n\
Monotonic clock, cannot go backward.");
-#endif /* PYMONOTONIC */
static PyObject*
perf_counter(_Py_clock_info_t *info)
{
-#if defined(WIN32_PERF_COUNTER) || defined(PYMONOTONIC)
- PyObject *res;
-#endif
-#if defined(WIN32_PERF_COUNTER)
- static int use_perf_counter = 1;
-#endif
-#ifdef PYMONOTONIC
- static int use_monotonic = 1;
-#endif
-
#ifdef WIN32_PERF_COUNTER
- if (use_perf_counter) {
- if (win_perf_counter(info, &res) == 0)
- return res;
- use_perf_counter = 0;
- }
-#endif
-
-#ifdef PYMONOTONIC
- if (use_monotonic) {
- res = pymonotonic(info);
- if (res != NULL)
- return res;
- use_monotonic = 0;
- PyErr_Clear();
- }
+ return win_perf_counter(info);
+#else
+ return pymonotonic(info);
#endif
-
- return floattime(info);
}
static PyObject *
@@ -1233,10 +1078,8 @@ time_get_clock_info(PyObject *self, PyObject *args)
else if (strcmp(name, "clock") == 0)
obj = pyclock(&info);
#endif
-#ifdef PYMONOTONIC
else if (strcmp(name, "monotonic") == 0)
obj = pymonotonic(&info);
-#endif
else if (strcmp(name, "perf_counter") == 0)
obj = perf_counter(&info);
else if (strcmp(name, "process_time") == 0)
@@ -1413,7 +1256,7 @@ static PyMethodDef time_methods[] = {
{"clock_settime", time_clock_settime, METH_VARARGS, clock_settime_doc},
{"clock_getres", time_clock_getres, METH_VARARGS, clock_getres_doc},
#endif
- {"sleep", time_sleep, METH_VARARGS, sleep_doc},
+ {"sleep", time_sleep, METH_O, sleep_doc},
{"gmtime", time_gmtime, METH_VARARGS, gmtime_doc},
{"localtime", time_localtime, METH_VARARGS, localtime_doc},
{"asctime", time_asctime, METH_VARARGS, asctime_doc},
@@ -1428,9 +1271,7 @@ static PyMethodDef time_methods[] = {
#ifdef HAVE_WORKING_TZSET
{"tzset", time_tzset, METH_NOARGS, tzset_doc},
#endif
-#ifdef PYMONOTONIC
{"monotonic", time_monotonic, METH_NOARGS, monotonic_doc},
-#endif
{"process_time", time_process_time, METH_NOARGS, process_time_doc},
{"perf_counter", time_perf_counter, METH_NOARGS, perf_counter_doc},
{"get_clock_info", time_get_clock_info, METH_VARARGS, get_clock_info_doc},
@@ -1512,15 +1353,6 @@ PyInit_time(void)
if (PyStructSequence_InitType2(&StructTimeType,
&struct_time_type_desc) < 0)
return NULL;
-
-#ifdef MS_WINDOWS
- winver.dwOSVersionInfoSize = sizeof(winver);
- if (!GetVersionEx((OSVERSIONINFO*)&winver)) {
- Py_DECREF(m);
- PyErr_SetFromWindowsErr(0);
- return NULL;
- }
-#endif
}
Py_INCREF(&StructTimeType);
#ifdef HAVE_STRUCT_TM_TM_ZONE
@@ -1536,109 +1368,93 @@ PyInit_time(void)
static PyObject*
floattime(_Py_clock_info_t *info)
{
- _PyTime_timeval t;
-#ifdef HAVE_CLOCK_GETTIME
- struct timespec tp;
- int ret;
-
- /* _PyTime_gettimeofday() does not use clock_gettime()
- because it would require to link Python to the rt (real-time)
- library, at least on Linux */
- ret = clock_gettime(CLOCK_REALTIME, &tp);
- if (ret == 0) {
- if (info) {
- struct timespec res;
- info->implementation = "clock_gettime(CLOCK_REALTIME)";
- info->monotonic = 0;
- info->adjustable = 1;
- if (clock_getres(CLOCK_REALTIME, &res) == 0)
- info->resolution = res.tv_sec + res.tv_nsec * 1e-9;
- else
- info->resolution = 1e-9;
- }
- return PyFloat_FromDouble(tp.tv_sec + tp.tv_nsec * 1e-9);
+ _PyTime_t t;
+ double d;
+ if (_PyTime_GetSystemClockWithInfo(&t, info) < 0) {
+ assert(info != NULL);
+ return NULL;
}
-#endif
- _PyTime_gettimeofday_info(&t, info);
- return PyFloat_FromDouble((double)t.tv_sec + t.tv_usec * 1e-6);
+ d = _PyTime_AsSecondsDouble(t);
+ return PyFloat_FromDouble(d);
}
-/* Implement floatsleep() for various platforms.
+/* Implement pysleep() for various platforms.
When interrupted (or when another error occurs), return -1 and
set an exception; else return 0. */
static int
-floatsleep(double secs)
+pysleep(_PyTime_t secs)
{
-/* XXX Should test for MS_WINDOWS first! */
-#if defined(HAVE_SELECT) && !defined(__EMX__)
- struct timeval t;
- double frac;
- int err;
-
- frac = fmod(secs, 1.0);
- secs = floor(secs);
- t.tv_sec = (long)secs;
- t.tv_usec = (long)(frac*1000000.0);
- Py_BEGIN_ALLOW_THREADS
- err = select(0, (fd_set *)0, (fd_set *)0, (fd_set *)0, &t);
- Py_END_ALLOW_THREADS
- if (err != 0) {
-#ifdef EINTR
- if (errno == EINTR) {
- if (PyErr_CheckSignals())
- return -1;
- }
- else
+ _PyTime_t deadline, monotonic;
+#ifndef MS_WINDOWS
+ struct timeval timeout;
+ int err = 0;
+#else
+ _PyTime_t millisecs;
+ unsigned long ul_millis;
+ DWORD rc;
+ HANDLE hInterruptEvent;
#endif
- {
- PyErr_SetFromErrno(PyExc_IOError);
+
+ deadline = _PyTime_GetMonotonicClock() + secs;
+
+ do {
+#ifndef MS_WINDOWS
+ if (_PyTime_AsTimeval(secs, &timeout, _PyTime_ROUND_CEILING) < 0)
return -1;
- }
- }
-#elif defined(__WATCOMC__) && !defined(__QNX__)
- /* XXX Can't interrupt this sleep */
- Py_BEGIN_ALLOW_THREADS
- delay((int)(secs * 1000 + 0.5)); /* delay() uses milliseconds */
- Py_END_ALLOW_THREADS
-#elif defined(MS_WINDOWS)
- {
- double millisecs = secs * 1000.0;
- unsigned long ul_millis;
+ Py_BEGIN_ALLOW_THREADS
+ err = select(0, (fd_set *)0, (fd_set *)0, (fd_set *)0, &timeout);
+ Py_END_ALLOW_THREADS
+
+ if (err == 0)
+ break;
+
+ if (errno != EINTR) {
+ PyErr_SetFromErrno(PyExc_OSError);
+ return -1;
+ }
+#else
+ millisecs = _PyTime_AsMilliseconds(secs, _PyTime_ROUND_CEILING);
if (millisecs > (double)ULONG_MAX) {
PyErr_SetString(PyExc_OverflowError,
"sleep length is too large");
return -1;
}
- Py_BEGIN_ALLOW_THREADS
+
/* Allow sleep(0) to maintain win32 semantics, and as decreed
* by Guido, only the main thread can be interrupted.
*/
ul_millis = (unsigned long)millisecs;
- if (ul_millis == 0 || !_PyOS_IsMainThread())
+ if (ul_millis == 0 || !_PyOS_IsMainThread()) {
+ Py_BEGIN_ALLOW_THREADS
Sleep(ul_millis);
- else {
- DWORD rc;
- HANDLE hInterruptEvent = _PyOS_SigintEvent();
- ResetEvent(hInterruptEvent);
- rc = WaitForSingleObjectEx(hInterruptEvent, ul_millis, FALSE);
- if (rc == WAIT_OBJECT_0) {
- Py_BLOCK_THREADS
- errno = EINTR;
- PyErr_SetFromErrno(PyExc_IOError);
- return -1;
- }
+ Py_END_ALLOW_THREADS
+ break;
}
+
+ hInterruptEvent = _PyOS_SigintEvent();
+ ResetEvent(hInterruptEvent);
+
+ Py_BEGIN_ALLOW_THREADS
+ rc = WaitForSingleObjectEx(hInterruptEvent, ul_millis, FALSE);
Py_END_ALLOW_THREADS
- }
-#else
- /* XXX Can't interrupt this sleep */
- Py_BEGIN_ALLOW_THREADS
- sleep((int)secs);
- Py_END_ALLOW_THREADS
+
+ if (rc != WAIT_OBJECT_0)
+ break;
#endif
+ /* sleep was interrupted by SIGINT */
+ if (PyErr_CheckSignals())
+ return -1;
+
+ monotonic = _PyTime_GetMonotonicClock();
+ secs = deadline - monotonic;
+ if (secs < 0)
+ break;
+ /* retry with the recomputed delay */
+ } while (1);
+
return 0;
}
diff --git a/Modules/tkappinit.c b/Modules/tkappinit.c
index 2ed85949cb..7616d9d319 100644
--- a/Modules/tkappinit.c
+++ b/Modules/tkappinit.c
@@ -26,9 +26,6 @@ static int tk_load_failed;
int
Tcl_AppInit(Tcl_Interp *interp)
{
-#ifdef WITH_MOREBUTTONS
- Tk_Window main_window;
-#endif
const char *_tkinter_skip_tk_init;
#ifdef TKINTER_PROTECT_LOADTK
const char *_tkinter_tk_failed;
@@ -113,29 +110,13 @@ Tcl_AppInit(Tcl_Interp *interp)
return TCL_ERROR;
}
-#ifdef WITH_MOREBUTTONS
- main_window = Tk_MainWindow(interp);
-#else
Tk_MainWindow(interp);
-#endif
#ifdef TK_AQUA
TkMacOSXInitAppleEvents(interp);
TkMacOSXInitMenus(interp);
#endif
-#ifdef WITH_MOREBUTTONS
- {
- extern Tcl_CmdProc studButtonCmd;
- extern Tcl_CmdProc triButtonCmd;
-
- Tcl_CreateCommand(interp, "studbutton", studButtonCmd,
- (ClientData) main_window, NULL);
- Tcl_CreateCommand(interp, "tributton", triButtonCmd,
- (ClientData) main_window, NULL);
- }
-#endif
-
#ifdef WITH_PIL /* 0.2b5 and later -- not yet released as of May 14 */
{
extern void TkImaging_Init(Tcl_Interp *);
diff --git a/Modules/tkinter.h b/Modules/tkinter.h
index 3c55676c0f..cb5a806b0c 100644
--- a/Modules/tkinter.h
+++ b/Modules/tkinter.h
@@ -16,14 +16,6 @@
(TK_RELEASE_LEVEL << 8) | \
(TK_RELEASE_SERIAL << 0))
-/* TK_VERSION_HEX packs fields in wrong order, not suitable for comparing of
- * non-final releases. Left for backward compatibility.
- */
-#define TK_VERSION_HEX ((TK_MAJOR_VERSION << 24) | \
- (TK_MINOR_VERSION << 16) | \
- (TK_RELEASE_SERIAL << 8) | \
- (TK_RELEASE_LEVEL << 0))
-
/* Protect Tk 8.4.13 and older from a deadlock that happens when trying
* to load tk after a failed attempt. */
#if TK_HEX_VERSION < 0x0804020e
diff --git a/Modules/unicodedata.c b/Modules/unicodedata.c
index 507cef3ba1..fe4e90822a 100644
--- a/Modules/unicodedata.c
+++ b/Modules/unicodedata.c
@@ -73,6 +73,8 @@ typedef struct previous_version {
Py_UCS4 (*normalization)(Py_UCS4);
} PreviousDBVersion;
+#include "clinic/unicodedata.c.h"
+
#define get_old_record(self, v) ((((PreviousDBVersion*)self)->getrecord)(v))
static PyMemberDef DB_members[] = {
@@ -99,81 +101,31 @@ new_previous_version(const char*name, const change_record* (*getrecord)(Py_UCS4)
}
-static Py_UCS4 getuchar(PyUnicodeObject *obj)
-{
- if (PyUnicode_READY(obj))
- return (Py_UCS4)-1;
- if (PyUnicode_GET_LENGTH(obj) == 1) {
- if (PyUnicode_READY(obj))
- return (Py_UCS4)-1;
- return PyUnicode_READ_CHAR(obj, 0);
- }
- PyErr_SetString(PyExc_TypeError,
- "need a single Unicode character as parameter");
- return (Py_UCS4)-1;
-}
-
/* --- Module API --------------------------------------------------------- */
/*[clinic input]
-
unicodedata.UCD.decimal
- unichr: object(type='PyUnicodeObject *', subclass_of='&PyUnicode_Type')
+ self: self
+ chr: int(accept={str})
default: object=NULL
/
Converts a Unicode character into its equivalent decimal value.
-Returns the decimal value assigned to the Unicode character unichr
-as integer. If no such value is defined, default is returned, or, if
-not given, ValueError is raised.
+Returns the decimal value assigned to the character chr as integer.
+If no such value is defined, default is returned, or, if not given,
+ValueError is raised.
[clinic start generated code]*/
-PyDoc_STRVAR(unicodedata_UCD_decimal__doc__,
-"decimal($self, unichr, default=None, /)\n"
-"--\n"
-"\n"
-"Converts a Unicode character into its equivalent decimal value.\n"
-"\n"
-"Returns the decimal value assigned to the Unicode character unichr\n"
-"as integer. If no such value is defined, default is returned, or, if\n"
-"not given, ValueError is raised.");
-
-#define UNICODEDATA_UCD_DECIMAL_METHODDEF \
- {"decimal", (PyCFunction)unicodedata_UCD_decimal, METH_VARARGS, unicodedata_UCD_decimal__doc__},
-
-static PyObject *
-unicodedata_UCD_decimal_impl(PreviousDBVersion *self, PyUnicodeObject *unichr, PyObject *default_value);
-
-static PyObject *
-unicodedata_UCD_decimal(PreviousDBVersion *self, PyObject *args)
-{
- PyObject *return_value = NULL;
- PyUnicodeObject *unichr;
- PyObject *default_value = NULL;
-
- if (!PyArg_ParseTuple(args,
- "O!|O:decimal",
- &PyUnicode_Type, &unichr, &default_value))
- goto exit;
- return_value = unicodedata_UCD_decimal_impl(self, unichr, default_value);
-
-exit:
- return return_value;
-}
-
static PyObject *
-unicodedata_UCD_decimal_impl(PreviousDBVersion *self, PyUnicodeObject *unichr, PyObject *default_value)
-/*[clinic end generated code: output=8689669896d293df input=c25c9d2b4de076b1]*/
+unicodedata_UCD_decimal_impl(PyObject *self, int chr,
+ PyObject *default_value)
+/*[clinic end generated code: output=be23376e1a185231 input=933f8107993f23d0]*/
{
int have_old = 0;
long rc;
- Py_UCS4 c;
-
- c = getuchar(unichr);
- if (c == (Py_UCS4)-1)
- return NULL;
+ Py_UCS4 c = (Py_UCS4)chr;
if (self && UCD_Check(self)) {
const change_record *old = get_old_record(self, c);
@@ -204,61 +156,64 @@ unicodedata_UCD_decimal_impl(PreviousDBVersion *self, PyUnicodeObject *unichr, P
return PyLong_FromLong(rc);
}
-PyDoc_STRVAR(unicodedata_digit__doc__,
-"digit(unichr[, default])\n\
-\n\
-Returns the digit value assigned to the Unicode character unichr as\n\
-integer. If no such value is defined, default is returned, or, if\n\
-not given, ValueError is raised.");
+/*[clinic input]
+unicodedata.UCD.digit
+
+ self: self
+ chr: int(accept={str})
+ default: object=NULL
+ /
+
+Converts a Unicode character into its equivalent digit value.
+
+Returns the digit value assigned to the character chr as integer.
+If no such value is defined, default is returned, or, if not given,
+ValueError is raised.
+[clinic start generated code]*/
static PyObject *
-unicodedata_digit(PyObject *self, PyObject *args)
+unicodedata_UCD_digit_impl(PyObject *self, int chr, PyObject *default_value)
+/*[clinic end generated code: output=96e18c950171fd2f input=e27d6e4565cd29f2]*/
{
- PyUnicodeObject *v;
- PyObject *defobj = NULL;
long rc;
- Py_UCS4 c;
-
- if (!PyArg_ParseTuple(args, "O!|O:digit", &PyUnicode_Type, &v, &defobj))
- return NULL;
- c = getuchar(v);
- if (c == (Py_UCS4)-1)
- return NULL;
+ Py_UCS4 c = (Py_UCS4)chr;
rc = Py_UNICODE_TODIGIT(c);
if (rc < 0) {
- if (defobj == NULL) {
+ if (default_value == NULL) {
PyErr_SetString(PyExc_ValueError, "not a digit");
return NULL;
}
else {
- Py_INCREF(defobj);
- return defobj;
+ Py_INCREF(default_value);
+ return default_value;
}
}
return PyLong_FromLong(rc);
}
-PyDoc_STRVAR(unicodedata_numeric__doc__,
-"numeric(unichr[, default])\n\
-\n\
-Returns the numeric value assigned to the Unicode character unichr\n\
-as float. If no such value is defined, default is returned, or, if\n\
-not given, ValueError is raised.");
+/*[clinic input]
+unicodedata.UCD.numeric
+
+ self: self
+ chr: int(accept={str})
+ default: object=NULL
+ /
+
+Converts a Unicode character into its equivalent numeric value.
+
+Returns the numeric value assigned to the character chr as float.
+If no such value is defined, default is returned, or, if not given,
+ValueError is raised.
+[clinic start generated code]*/
static PyObject *
-unicodedata_numeric(PyObject *self, PyObject *args)
+unicodedata_UCD_numeric_impl(PyObject *self, int chr,
+ PyObject *default_value)
+/*[clinic end generated code: output=53ce281fe85b10c4 input=fdf5871a5542893c]*/
{
- PyUnicodeObject *v;
- PyObject *defobj = NULL;
int have_old = 0;
double rc;
- Py_UCS4 c;
-
- if (!PyArg_ParseTuple(args, "O!|O:numeric", &PyUnicode_Type, &v, &defobj))
- return NULL;
- c = getuchar(v);
- if (c == (Py_UCS4)-1)
- return NULL;
+ Py_UCS4 c = (Py_UCS4)chr;
if (self && UCD_Check(self)) {
const change_record *old = get_old_record(self, c);
@@ -276,37 +231,34 @@ unicodedata_numeric(PyObject *self, PyObject *args)
if (!have_old)
rc = Py_UNICODE_TONUMERIC(c);
if (rc == -1.0) {
- if (defobj == NULL) {
+ if (default_value == NULL) {
PyErr_SetString(PyExc_ValueError, "not a numeric character");
return NULL;
}
else {
- Py_INCREF(defobj);
- return defobj;
+ Py_INCREF(default_value);
+ return default_value;
}
}
return PyFloat_FromDouble(rc);
}
-PyDoc_STRVAR(unicodedata_category__doc__,
-"category(unichr)\n\
-\n\
-Returns the general category assigned to the Unicode character\n\
-unichr as string.");
+/*[clinic input]
+unicodedata.UCD.category
+
+ self: self
+ chr: int(accept={str})
+ /
+
+Returns the general category assigned to the character chr as string.
+[clinic start generated code]*/
static PyObject *
-unicodedata_category(PyObject *self, PyObject *args)
+unicodedata_UCD_category_impl(PyObject *self, int chr)
+/*[clinic end generated code: output=8571539ee2e6783a input=27d6f3d85050bc06]*/
{
- PyUnicodeObject *v;
int index;
- Py_UCS4 c;
-
- if (!PyArg_ParseTuple(args, "O!:category",
- &PyUnicode_Type, &v))
- return NULL;
- c = getuchar(v);
- if (c == (Py_UCS4)-1)
- return NULL;
+ Py_UCS4 c = (Py_UCS4)chr;
index = (int) _getrecord_ex(c)->category;
if (self && UCD_Check(self)) {
const change_record *old = get_old_record(self, c);
@@ -316,26 +268,24 @@ unicodedata_category(PyObject *self, PyObject *args)
return PyUnicode_FromString(_PyUnicode_CategoryNames[index]);
}
-PyDoc_STRVAR(unicodedata_bidirectional__doc__,
-"bidirectional(unichr)\n\
-\n\
-Returns the bidirectional class assigned to the Unicode character\n\
-unichr as string. If no such value is defined, an empty string is\n\
-returned.");
+/*[clinic input]
+unicodedata.UCD.bidirectional
+
+ self: self
+ chr: int(accept={str})
+ /
+
+Returns the bidirectional class assigned to the character chr as string.
+
+If no such value is defined, an empty string is returned.
+[clinic start generated code]*/
static PyObject *
-unicodedata_bidirectional(PyObject *self, PyObject *args)
+unicodedata_UCD_bidirectional_impl(PyObject *self, int chr)
+/*[clinic end generated code: output=d36310ce2039bb92 input=b3d8f42cebfcf475]*/
{
- PyUnicodeObject *v;
int index;
- Py_UCS4 c;
-
- if (!PyArg_ParseTuple(args, "O!:bidirectional",
- &PyUnicode_Type, &v))
- return NULL;
- c = getuchar(v);
- if (c == (Py_UCS4)-1)
- return NULL;
+ Py_UCS4 c = (Py_UCS4)chr;
index = (int) _getrecord_ex(c)->bidirectional;
if (self && UCD_Check(self)) {
const change_record *old = get_old_record(self, c);
@@ -347,55 +297,52 @@ unicodedata_bidirectional(PyObject *self, PyObject *args)
return PyUnicode_FromString(_PyUnicode_BidirectionalNames[index]);
}
-PyDoc_STRVAR(unicodedata_combining__doc__,
-"combining(unichr)\n\
-\n\
-Returns the canonical combining class assigned to the Unicode\n\
-character unichr as integer. Returns 0 if no combining class is\n\
-defined.");
+/*[clinic input]
+unicodedata.UCD.combining -> int
-static PyObject *
-unicodedata_combining(PyObject *self, PyObject *args)
+ self: self
+ chr: int(accept={str})
+ /
+
+Returns the canonical combining class assigned to the character chr as integer.
+
+Returns 0 if no combining class is defined.
+[clinic start generated code]*/
+
+static int
+unicodedata_UCD_combining_impl(PyObject *self, int chr)
+/*[clinic end generated code: output=cad056d0cb6a5920 input=9f2d6b2a95d0a22a]*/
{
- PyUnicodeObject *v;
int index;
- Py_UCS4 c;
-
- if (!PyArg_ParseTuple(args, "O!:combining",
- &PyUnicode_Type, &v))
- return NULL;
- c = getuchar(v);
- if (c == (Py_UCS4)-1)
- return NULL;
+ Py_UCS4 c = (Py_UCS4)chr;
index = (int) _getrecord_ex(c)->combining;
if (self && UCD_Check(self)) {
const change_record *old = get_old_record(self, c);
if (old->category_changed == 0)
index = 0; /* unassigned */
}
- return PyLong_FromLong(index);
+ return index;
}
-PyDoc_STRVAR(unicodedata_mirrored__doc__,
-"mirrored(unichr)\n\
-\n\
-Returns the mirrored property assigned to the Unicode character\n\
-unichr as integer. Returns 1 if the character has been identified as\n\
-a \"mirrored\" character in bidirectional text, 0 otherwise.");
+/*[clinic input]
+unicodedata.UCD.mirrored -> int
-static PyObject *
-unicodedata_mirrored(PyObject *self, PyObject *args)
+ self: self
+ chr: int(accept={str})
+ /
+
+Returns the mirrored property assigned to the character chr as integer.
+
+Returns 1 if the character has been identified as a "mirrored"
+character in bidirectional text, 0 otherwise.
+[clinic start generated code]*/
+
+static int
+unicodedata_UCD_mirrored_impl(PyObject *self, int chr)
+/*[clinic end generated code: output=2532dbf8121b50e6 input=5dd400d351ae6f3b]*/
{
- PyUnicodeObject *v;
int index;
- Py_UCS4 c;
-
- if (!PyArg_ParseTuple(args, "O!:mirrored",
- &PyUnicode_Type, &v))
- return NULL;
- c = getuchar(v);
- if (c == (Py_UCS4)-1)
- return NULL;
+ Py_UCS4 c = (Py_UCS4)chr;
index = (int) _getrecord_ex(c)->mirrored;
if (self && UCD_Check(self)) {
const change_record *old = get_old_record(self, c);
@@ -404,28 +351,25 @@ unicodedata_mirrored(PyObject *self, PyObject *args)
else if (old->mirrored_changed != 0xFF)
index = old->mirrored_changed;
}
- return PyLong_FromLong(index);
+ return index;
}
-PyDoc_STRVAR(unicodedata_east_asian_width__doc__,
-"east_asian_width(unichr)\n\
-\n\
-Returns the east asian width assigned to the Unicode character\n\
-unichr as string.");
+/*[clinic input]
+unicodedata.UCD.east_asian_width
+
+ self: self
+ chr: int(accept={str})
+ /
+
+Returns the east asian width assigned to the character chr as string.
+[clinic start generated code]*/
static PyObject *
-unicodedata_east_asian_width(PyObject *self, PyObject *args)
+unicodedata_UCD_east_asian_width_impl(PyObject *self, int chr)
+/*[clinic end generated code: output=484e8537d9ee8197 input=c4854798aab026e0]*/
{
- PyUnicodeObject *v;
int index;
- Py_UCS4 c;
-
- if (!PyArg_ParseTuple(args, "O!:east_asian_width",
- &PyUnicode_Type, &v))
- return NULL;
- c = getuchar(v);
- if (c == (Py_UCS4)-1)
- return NULL;
+ Py_UCS4 c = (Py_UCS4)chr;
index = (int) _getrecord_ex(c)->east_asian_width;
if (self && UCD_Check(self)) {
const change_record *old = get_old_record(self, c);
@@ -435,29 +379,27 @@ unicodedata_east_asian_width(PyObject *self, PyObject *args)
return PyUnicode_FromString(_PyUnicode_EastAsianWidthNames[index]);
}
-PyDoc_STRVAR(unicodedata_decomposition__doc__,
-"decomposition(unichr)\n\
-\n\
-Returns the character decomposition mapping assigned to the Unicode\n\
-character unichr as string. An empty string is returned in case no\n\
-such mapping is defined.");
+/*[clinic input]
+unicodedata.UCD.decomposition
+
+ self: self
+ chr: int(accept={str})
+ /
+
+Returns the character decomposition mapping assigned to the character chr as string.
+
+An empty string is returned in case no such mapping is defined.
+[clinic start generated code]*/
static PyObject *
-unicodedata_decomposition(PyObject *self, PyObject *args)
+unicodedata_UCD_decomposition_impl(PyObject *self, int chr)
+/*[clinic end generated code: output=7d699f3ec7565d27 input=e4c12459ad68507b]*/
{
- PyUnicodeObject *v;
char decomp[256];
int code, index, count;
size_t i;
unsigned int prefix_index;
- Py_UCS4 c;
-
- if (!PyArg_ParseTuple(args, "O!:decomposition",
- &PyUnicode_Type, &v))
- return NULL;
- c = getuchar(v);
- if (c == (Py_UCS4)-1)
- return NULL;
+ Py_UCS4 c = (Py_UCS4)chr;
code = (int)c;
@@ -858,22 +800,24 @@ is_normalized(PyObject *self, PyObject *input, int nfc, int k)
return 1; /* certainly normalized */
}
-PyDoc_STRVAR(unicodedata_normalize__doc__,
-"normalize(form, unistr)\n\
-\n\
-Return the normal form 'form' for the Unicode string unistr. Valid\n\
-values for form are 'NFC', 'NFKC', 'NFD', and 'NFKD'.");
+/*[clinic input]
+unicodedata.UCD.normalize
-static PyObject*
-unicodedata_normalize(PyObject *self, PyObject *args)
-{
- char *form;
- PyObject *input;
+ self: self
+ form: str
+ unistr as input: object(subclass_of='&PyUnicode_Type')
+ /
- if(!PyArg_ParseTuple(args, "sO!:normalize",
- &form, &PyUnicode_Type, &input))
- return NULL;
+Return the normal form 'form' for the Unicode string unistr.
+
+Valid values for form are 'NFC', 'NFKC', 'NFD', and 'NFKD'.
+[clinic start generated code]*/
+static PyObject *
+unicodedata_UCD_normalize_impl(PyObject *self, const char *form,
+ PyObject *input)
+/*[clinic end generated code: output=62d1f8870027efdc input=cd092e631cf11883]*/
+{
if (PyUnicode_READY(input) == -1)
return NULL;
@@ -977,10 +921,11 @@ is_unified_ideograph(Py_UCS4 code)
{
return
(0x3400 <= code && code <= 0x4DB5) || /* CJK Ideograph Extension A */
- (0x4E00 <= code && code <= 0x9FCC) || /* CJK Ideograph */
+ (0x4E00 <= code && code <= 0x9FD5) || /* CJK Ideograph */
(0x20000 <= code && code <= 0x2A6D6) || /* CJK Ideograph Extension B */
(0x2A700 <= code && code <= 0x2B734) || /* CJK Ideograph Extension C */
- (0x2B740 <= code && code <= 0x2B81D); /* CJK Ideograph Extension D */
+ (0x2B740 <= code && code <= 0x2B81D) || /* CJK Ideograph Extension D */
+ (0x2B820 <= code && code <= 0x2CEA1); /* CJK Ideograph Extension E */
}
/* macros used to determine if the given code point is in the PUA range that
@@ -1232,64 +1177,67 @@ static const _PyUnicode_Name_CAPI hashAPI =
/* -------------------------------------------------------------------- */
/* Python bindings */
-PyDoc_STRVAR(unicodedata_name__doc__,
-"name(unichr[, default])\n\
-Returns the name assigned to the Unicode character unichr as a\n\
-string. If no name is defined, default is returned, or, if not\n\
-given, ValueError is raised.");
+/*[clinic input]
+unicodedata.UCD.name
+
+ self: self
+ chr: int(accept={str})
+ default: object=NULL
+ /
+
+Returns the name assigned to the character chr as a string.
+
+If no name is defined, default is returned, or, if not given,
+ValueError is raised.
+[clinic start generated code]*/
static PyObject *
-unicodedata_name(PyObject* self, PyObject* args)
+unicodedata_UCD_name_impl(PyObject *self, int chr, PyObject *default_value)
+/*[clinic end generated code: output=6bbb37a326407707 input=3e0367f534de56d9]*/
{
char name[NAME_MAXLEN];
- Py_UCS4 c;
-
- PyUnicodeObject* v;
- PyObject* defobj = NULL;
- if (!PyArg_ParseTuple(args, "O!|O:name", &PyUnicode_Type, &v, &defobj))
- return NULL;
-
- c = getuchar(v);
- if (c == (Py_UCS4)-1)
- return NULL;
+ Py_UCS4 c = (Py_UCS4)chr;
if (!_getucname(self, c, name, sizeof(name), 0)) {
- if (defobj == NULL) {
+ if (default_value == NULL) {
PyErr_SetString(PyExc_ValueError, "no such name");
return NULL;
}
else {
- Py_INCREF(defobj);
- return defobj;
+ Py_INCREF(default_value);
+ return default_value;
}
}
return PyUnicode_FromString(name);
}
-PyDoc_STRVAR(unicodedata_lookup__doc__,
-"lookup(name)\n\
-\n\
-Look up character by name. If a character with the\n\
-given name is found, return the corresponding Unicode\n\
-character. If not found, KeyError is raised.");
+/*[clinic input]
+unicodedata.UCD.lookup
+
+ self: self
+ name: str(accept={str, robuffer}, zeroes=True)
+ /
+
+Look up character by name.
+
+If a character with the given name is found, return the
+corresponding character. If not found, KeyError is raised.
+[clinic start generated code]*/
static PyObject *
-unicodedata_lookup(PyObject* self, PyObject* args)
+unicodedata_UCD_lookup_impl(PyObject *self, const char *name,
+ Py_ssize_clean_t name_length)
+/*[clinic end generated code: output=765cb8186788e6be input=a557be0f8607a0d6]*/
{
Py_UCS4 code;
-
- char* name;
- Py_ssize_t namelen;
unsigned int index;
- if (!PyArg_ParseTuple(args, "s#:lookup", &name, &namelen))
- return NULL;
- if (namelen > INT_MAX) {
+ if (name_length > INT_MAX) {
PyErr_SetString(PyExc_KeyError, "name too long");
return NULL;
}
- if (!_getcode(self, name, (int)namelen, &code, 1)) {
+ if (!_getcode(self, name, (int)name_length, &code, 1)) {
PyErr_Format(PyExc_KeyError, "undefined character name '%s'", name);
return NULL;
}
@@ -1308,24 +1256,17 @@ unicodedata_lookup(PyObject* self, PyObject* args)
static PyMethodDef unicodedata_functions[] = {
UNICODEDATA_UCD_DECIMAL_METHODDEF
- {"digit", unicodedata_digit, METH_VARARGS, unicodedata_digit__doc__},
- {"numeric", unicodedata_numeric, METH_VARARGS, unicodedata_numeric__doc__},
- {"category", unicodedata_category, METH_VARARGS,
- unicodedata_category__doc__},
- {"bidirectional", unicodedata_bidirectional, METH_VARARGS,
- unicodedata_bidirectional__doc__},
- {"combining", unicodedata_combining, METH_VARARGS,
- unicodedata_combining__doc__},
- {"mirrored", unicodedata_mirrored, METH_VARARGS,
- unicodedata_mirrored__doc__},
- {"east_asian_width", unicodedata_east_asian_width, METH_VARARGS,
- unicodedata_east_asian_width__doc__},
- {"decomposition", unicodedata_decomposition, METH_VARARGS,
- unicodedata_decomposition__doc__},
- {"name", unicodedata_name, METH_VARARGS, unicodedata_name__doc__},
- {"lookup", unicodedata_lookup, METH_VARARGS, unicodedata_lookup__doc__},
- {"normalize", unicodedata_normalize, METH_VARARGS,
- unicodedata_normalize__doc__},
+ UNICODEDATA_UCD_DIGIT_METHODDEF
+ UNICODEDATA_UCD_NUMERIC_METHODDEF
+ UNICODEDATA_UCD_CATEGORY_METHODDEF
+ UNICODEDATA_UCD_BIDIRECTIONAL_METHODDEF
+ UNICODEDATA_UCD_COMBINING_METHODDEF
+ UNICODEDATA_UCD_MIRRORED_METHODDEF
+ UNICODEDATA_UCD_EAST_ASIAN_WIDTH_METHODDEF
+ UNICODEDATA_UCD_DECOMPOSITION_METHODDEF
+ UNICODEDATA_UCD_NAME_METHODDEF
+ UNICODEDATA_UCD_LOOKUP_METHODDEF
+ UNICODEDATA_UCD_NORMALIZE_METHODDEF
{NULL, NULL} /* sentinel */
};
diff --git a/Modules/unicodedata_db.h b/Modules/unicodedata_db.h
index ec11fa1da4..89d8768dd9 100644
--- a/Modules/unicodedata_db.h
+++ b/Modules/unicodedata_db.h
@@ -1,6 +1,6 @@
/* this file was generated by Tools/unicode/makeunicodedata.py 3.2 */
-#define UNIDATA_VERSION "6.3.0"
+#define UNIDATA_VERSION "8.0.0"
/* a list of unique database records */
const _PyUnicode_DatabaseRecord _PyUnicode_Database_Records[] = {
{0, 0, 0, 0, 0, 0},
@@ -323,7 +323,11 @@ const _PyUnicode_DatabaseRecord _PyUnicode_Database_Records[] = {
{27, 0, 19, 0, 1, 136},
{14, 0, 19, 0, 5, 0},
{8, 0, 19, 0, 5, 0},
+ {9, 0, 9, 0, 5, 0},
{9, 0, 4, 0, 5, 0},
+ {30, 0, 4, 0, 5, 0},
+ {1, 0, 4, 0, 5, 0},
+ {2, 0, 4, 0, 5, 0},
{9, 0, 12, 0, 5, 0},
{30, 0, 1, 0, 5, 170},
{5, 216, 1, 0, 5, 0},
@@ -335,8 +339,8 @@ const _PyUnicode_DatabaseRecord _PyUnicode_Database_Records[] = {
};
/* Reindexing of NFC first characters. */
-#define TOTAL_FIRST 372
-#define TOTAL_LAST 56
+#define TOTAL_FIRST 376
+#define TOTAL_LAST 62
struct reindex{int start;short count,index;};
static struct reindex nfc_first[] = {
{ 60, 2, 0},
@@ -546,6 +550,9 @@ static struct reindex nfc_first[] = {
{ 69787, 0, 368},
{ 69797, 0, 369},
{ 69937, 1, 370},
+ { 70471, 0, 372},
+ { 70841, 0, 373},
+ { 71096, 1, 374},
{0,0,0}
};
@@ -583,6 +590,12 @@ static struct reindex nfc_last[] = {
{ 12441, 1, 52},
{ 69818, 0, 54},
{ 69927, 0, 55},
+ { 70462, 0, 56},
+ { 70487, 0, 57},
+ { 70832, 0, 58},
+ { 70842, 0, 59},
+ { 70845, 0, 60},
+ { 71087, 0, 61},
{0,0,0}
};
@@ -714,36 +727,43 @@ static unsigned char index1[] = {
121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 122, 122, 123, 124,
- 125, 126, 127, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 84,
- 138, 139, 140, 141, 142, 84, 84, 84, 84, 84, 84, 143, 84, 144, 145, 146,
- 84, 147, 84, 148, 84, 84, 84, 149, 84, 84, 84, 150, 151, 152, 153, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 154, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 41, 41, 41, 41, 41, 41, 155, 84, 156,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 41, 41, 41, 41, 41, 41, 41, 41, 157, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 41, 41, 41, 41, 158, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 159, 160, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 161, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 78, 162, 163, 164, 165, 84, 166, 84, 167, 168, 169, 170, 171, 172,
- 173, 174, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 175, 176, 84, 84, 177, 178, 179,
- 180, 181, 84, 182, 183, 184, 185, 186, 187, 188, 189, 190, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 101, 101, 101,
+ 125, 126, 127, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
+ 138, 139, 140, 141, 142, 143, 144, 138, 41, 41, 145, 138, 146, 147, 148,
+ 149, 150, 151, 152, 153, 154, 155, 138, 138, 156, 138, 138, 138, 157,
+ 158, 159, 160, 161, 162, 163, 138, 138, 164, 138, 165, 166, 167, 168,
+ 138, 138, 169, 138, 138, 138, 170, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 41, 41, 41, 41, 41, 41, 41, 171, 172, 41, 173, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 41, 41, 41, 41, 41, 41, 41, 41, 174, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 41, 41, 41, 41, 175, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 41, 41, 41, 41, 176, 177, 178, 179, 138, 138, 138, 138, 138,
+ 138, 180, 181, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 182, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 183, 184, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 78, 185,
+ 186, 187, 188, 138, 189, 138, 190, 191, 192, 193, 194, 195, 196, 197, 78,
+ 78, 78, 78, 198, 199, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 200, 201, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 202, 203, 138, 138, 204, 205, 206, 207, 208, 138, 209, 210, 209, 209,
+ 211, 212, 209, 213, 214, 215, 216, 217, 218, 219, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 101, 101, 101, 101, 101, 101,
101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
@@ -767,359 +787,458 @@ static unsigned char index1[] = {
101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
- 101, 101, 101, 101, 101, 101, 101, 101, 191, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 220, 101, 101, 101, 101, 101, 101, 101, 101,
101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
- 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 192,
- 101, 193, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 122, 122, 122, 122, 194, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 195, 84, 196, 197, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 121, 121, 121, 121, 121, 121, 121,
+ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 221, 101, 222, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 223, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 122, 122, 122, 122, 224, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 225, 138, 226, 227, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
@@ -1156,7 +1275,7 @@ static unsigned char index1[] = {
121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
- 198, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 228, 121, 121, 121, 121, 121, 121,
121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
@@ -1192,7 +1311,8 @@ static unsigned char index1[] = {
121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
- 121, 121, 121, 121, 121, 121, 121, 121, 198,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 228,
};
static unsigned short index2[] = {
@@ -1244,7 +1364,7 @@ static unsigned short index2[] = {
69, 59, 69, 69, 70, 60, 62, 62, 62, 60, 60, 60, 62, 62, 71, 60, 60, 60,
62, 62, 62, 62, 60, 61, 62, 62, 60, 72, 73, 73, 72, 73, 73, 72, 60, 60,
60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 44, 47, 44, 47, 74, 54, 44,
- 47, 0, 0, 51, 47, 47, 47, 75, 0, 0, 0, 0, 0, 58, 76, 38, 75, 38, 38, 38,
+ 47, 0, 0, 51, 47, 47, 47, 75, 44, 0, 0, 0, 0, 58, 76, 38, 75, 38, 38, 38,
0, 38, 0, 38, 38, 43, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 0, 39, 39, 39, 39, 39, 39, 39, 38, 38, 43, 43, 43, 43,
43, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
@@ -1267,97 +1387,98 @@ static unsigned short index2[] = {
38, 43, 38, 43, 38, 43, 44, 47, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
38, 43, 44, 47, 38, 43, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47,
44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47,
- 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
+ 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47,
+ 44, 47, 44, 47, 44, 47, 0, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 0, 0, 53, 83, 83, 83, 83, 83, 83, 0, 47, 47, 47,
+ 44, 44, 44, 44, 44, 44, 44, 44, 44, 0, 0, 53, 83, 83, 83, 83, 83, 83, 0,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 35,
- 0, 83, 84, 0, 0, 0, 0, 85, 0, 86, 81, 81, 81, 81, 86, 81, 81, 81, 87, 86,
- 81, 81, 81, 81, 81, 81, 86, 86, 86, 86, 86, 86, 81, 81, 86, 81, 81, 87,
- 88, 81, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 98, 99, 100, 101, 102,
- 103, 104, 105, 106, 104, 81, 86, 104, 97, 0, 0, 0, 0, 0, 0, 0, 0, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 0, 0, 0,
- 0, 107, 107, 107, 104, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 108,
- 108, 108, 108, 0, 78, 78, 109, 110, 110, 111, 112, 113, 26, 26, 81, 81,
- 81, 81, 81, 81, 81, 81, 114, 115, 116, 113, 117, 0, 113, 113, 118, 118,
- 119, 119, 119, 119, 119, 118, 118, 118, 118, 118, 118, 118, 118, 118,
- 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
- 118, 118, 120, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 121,
- 122, 123, 114, 115, 116, 124, 125, 126, 126, 127, 86, 81, 81, 81, 81, 81,
- 86, 81, 81, 86, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 110,
- 129, 129, 113, 118, 118, 130, 118, 118, 118, 118, 131, 131, 131, 131,
+ 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 35, 0, 83, 84, 0, 0, 26, 26, 85, 0, 86, 81, 81, 81, 81, 86, 81,
+ 81, 81, 87, 86, 81, 81, 81, 81, 81, 81, 86, 86, 86, 86, 86, 86, 81, 81,
+ 86, 81, 81, 87, 88, 81, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 98, 99,
+ 100, 101, 102, 103, 104, 105, 106, 104, 81, 86, 104, 97, 0, 0, 0, 0, 0,
+ 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0,
+ 0, 0, 0, 0, 107, 107, 107, 104, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 108, 108, 108, 108, 108, 108, 78, 78, 109, 110, 110, 111, 112, 113, 26,
+ 26, 81, 81, 81, 81, 81, 81, 81, 81, 114, 115, 116, 113, 117, 0, 113, 113,
+ 118, 118, 119, 119, 119, 119, 119, 118, 118, 118, 118, 118, 118, 118,
118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
+ 118, 118, 118, 118, 120, 118, 118, 118, 118, 118, 118, 118, 118, 118,
+ 118, 121, 122, 123, 114, 115, 116, 124, 125, 126, 126, 127, 86, 81, 81,
+ 81, 81, 81, 86, 81, 81, 86, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 110, 129, 129, 113, 118, 118, 130, 118, 118, 118, 118, 131, 131,
+ 131, 131, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
- 118, 119, 118, 119, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
- 118, 118, 118, 118, 118, 118, 119, 113, 118, 81, 81, 81, 81, 81, 81, 81,
- 108, 26, 81, 81, 81, 81, 86, 81, 120, 120, 81, 81, 26, 86, 81, 81, 86,
- 118, 118, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 118, 118,
- 118, 133, 133, 118, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
- 113, 113, 113, 113, 0, 117, 118, 134, 118, 118, 118, 118, 118, 118, 118,
+ 118, 118, 118, 119, 118, 119, 118, 118, 118, 118, 118, 118, 118, 118,
+ 118, 118, 118, 118, 118, 118, 118, 118, 119, 113, 118, 81, 81, 81, 81,
+ 81, 81, 81, 108, 26, 81, 81, 81, 81, 86, 81, 120, 120, 81, 81, 26, 86,
+ 81, 81, 86, 118, 118, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
+ 118, 118, 118, 133, 133, 118, 113, 113, 113, 113, 113, 113, 113, 113,
+ 113, 113, 113, 113, 113, 113, 0, 117, 118, 134, 118, 118, 118, 118, 118,
118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
- 118, 118, 118, 118, 118, 118, 118, 118, 118, 81, 86, 81, 81, 86, 81, 81,
- 86, 86, 86, 81, 86, 86, 81, 86, 81, 81, 81, 86, 81, 86, 81, 86, 81, 86,
- 81, 81, 0, 0, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
+ 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 81, 86, 81, 81,
+ 86, 81, 81, 86, 86, 86, 81, 86, 86, 81, 86, 81, 81, 81, 86, 81, 86, 81,
+ 86, 81, 86, 81, 81, 0, 0, 118, 118, 118, 118, 118, 118, 118, 118, 118,
118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
- 118, 118, 118, 118, 118, 118, 118, 135, 135, 135, 135, 135, 135, 135,
- 135, 135, 135, 135, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 136,
- 136, 136, 136, 136, 136, 136, 136, 136, 136, 107, 107, 107, 107, 107,
+ 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 81,
- 81, 81, 81, 81, 81, 81, 86, 81, 137, 137, 26, 138, 138, 138, 137, 0, 0,
- 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 81, 81, 81, 81, 137, 81, 81,
- 81, 81, 81, 81, 81, 81, 81, 137, 81, 81, 81, 137, 81, 81, 81, 81, 81, 0,
- 0, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
- 104, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 86, 86, 86,
- 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 0, 118,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 81, 81, 81, 81, 81, 81, 81, 86, 81, 137, 137, 26, 138, 138,
+ 138, 137, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 81, 81,
+ 81, 81, 137, 81, 81, 81, 81, 81, 81, 81, 81, 81, 137, 81, 81, 81, 137,
+ 81, 81, 81, 81, 81, 0, 0, 104, 104, 104, 104, 104, 104, 104, 104, 104,
+ 104, 104, 104, 104, 104, 104, 0, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 86, 86, 86, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,
- 81, 86, 81, 81, 86, 81, 81, 81, 86, 86, 86, 121, 122, 123, 81, 81, 81,
- 86, 81, 81, 86, 86, 81, 81, 81, 81, 0, 135, 135, 135, 139, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 140, 48,
- 48, 48, 48, 48, 48, 48, 140, 48, 48, 140, 48, 48, 48, 48, 48, 135, 139,
- 141, 48, 139, 139, 139, 135, 135, 135, 135, 135, 135, 135, 135, 139, 139,
- 139, 139, 142, 139, 139, 48, 81, 86, 81, 81, 135, 135, 135, 143, 143,
- 143, 143, 143, 143, 143, 143, 48, 48, 135, 135, 83, 83, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 144, 83, 53, 48, 48, 48, 48, 48, 48, 0, 48,
- 48, 48, 48, 48, 48, 48, 0, 135, 139, 139, 0, 48, 48, 48, 48, 48, 48, 48,
- 48, 0, 0, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 0,
- 48, 0, 0, 0, 48, 48, 48, 48, 0, 0, 145, 48, 146, 139, 139, 135, 135, 135,
- 135, 0, 0, 139, 139, 0, 0, 147, 147, 142, 48, 0, 0, 0, 0, 0, 0, 0, 0,
- 146, 0, 0, 0, 0, 143, 143, 0, 143, 48, 48, 135, 135, 0, 0, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 144, 48, 48, 85, 85, 148, 148, 148, 148,
- 148, 148, 80, 85, 0, 0, 0, 0, 0, 135, 135, 139, 0, 48, 48, 48, 48, 48,
- 48, 0, 0, 0, 0, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48,
- 48, 0, 48, 143, 0, 48, 143, 0, 48, 48, 0, 0, 145, 0, 139, 139, 139, 135,
- 135, 0, 0, 0, 0, 135, 135, 0, 0, 135, 135, 142, 0, 0, 0, 135, 0, 0, 0, 0,
- 0, 0, 0, 143, 143, 143, 48, 0, 143, 0, 0, 0, 0, 0, 0, 0, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 144, 135, 135, 48, 48, 48, 135, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 135, 135, 139, 0, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 0, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48,
- 48, 0, 48, 48, 48, 48, 48, 0, 0, 145, 48, 139, 139, 139, 135, 135, 135,
- 135, 135, 0, 135, 135, 139, 0, 139, 139, 142, 0, 0, 48, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 135, 135, 0, 0, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 83, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 135, 139, 139, 0, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 48, 48,
- 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 81, 81, 86, 81, 81, 86, 81,
+ 81, 81, 86, 86, 86, 121, 122, 123, 81, 81, 81, 86, 81, 81, 86, 86, 81,
+ 81, 81, 81, 81, 135, 135, 135, 139, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 140, 48, 48, 48, 48, 48, 48, 48,
+ 140, 48, 48, 140, 48, 48, 48, 48, 48, 135, 139, 141, 48, 139, 139, 139,
+ 135, 135, 135, 135, 135, 135, 135, 135, 139, 139, 139, 139, 142, 139,
+ 139, 48, 81, 86, 81, 81, 135, 135, 135, 143, 143, 143, 143, 143, 143,
+ 143, 143, 48, 48, 135, 135, 83, 83, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 144, 83, 53, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 135, 139, 139, 0, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 48,
+ 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 0, 0, 0,
+ 48, 48, 48, 48, 0, 0, 145, 48, 146, 139, 139, 135, 135, 135, 135, 0, 0,
+ 139, 139, 0, 0, 147, 147, 142, 48, 0, 0, 0, 0, 0, 0, 0, 0, 146, 0, 0, 0,
+ 0, 143, 143, 0, 143, 48, 48, 135, 135, 0, 0, 144, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 48, 48, 85, 85, 148, 148, 148, 148, 148, 148,
+ 80, 85, 0, 0, 0, 0, 0, 135, 135, 139, 0, 48, 48, 48, 48, 48, 48, 0, 0, 0,
+ 0, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48,
+ 143, 0, 48, 143, 0, 48, 48, 0, 0, 145, 0, 139, 139, 139, 135, 135, 0, 0,
+ 0, 0, 135, 135, 0, 0, 135, 135, 142, 0, 0, 0, 135, 0, 0, 0, 0, 0, 0, 0,
+ 143, 143, 143, 48, 0, 143, 0, 0, 0, 0, 0, 0, 0, 144, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 135, 135, 48, 48, 48, 135, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 135, 135, 139, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48,
+ 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 0,
+ 48, 48, 48, 48, 48, 0, 0, 145, 48, 139, 139, 139, 135, 135, 135, 135,
+ 135, 0, 135, 135, 139, 0, 139, 139, 142, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 135, 135, 0, 0, 144, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 83, 85, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0,
+ 0, 0, 135, 139, 139, 0, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 48, 48, 0,
+ 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 0, 48, 48,
48, 48, 48, 0, 0, 145, 48, 146, 135, 139, 135, 135, 135, 135, 0, 0, 139,
147, 0, 0, 147, 147, 142, 0, 0, 0, 0, 0, 0, 0, 0, 149, 146, 0, 0, 0, 0,
@@ -1369,123 +1490,124 @@ static unsigned short index2[] = {
48, 0, 0, 0, 0, 146, 139, 135, 139, 139, 0, 0, 0, 139, 139, 139, 0, 147,
147, 147, 142, 0, 0, 48, 0, 0, 0, 0, 0, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 148,
- 148, 148, 26, 26, 26, 26, 26, 26, 85, 26, 0, 0, 0, 0, 0, 0, 139, 139,
+ 148, 148, 26, 26, 26, 26, 26, 26, 85, 26, 0, 0, 0, 0, 0, 135, 139, 139,
139, 0, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 0, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 0,
+ 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0,
0, 0, 48, 135, 135, 135, 139, 139, 139, 139, 0, 135, 135, 150, 0, 135,
- 135, 135, 142, 0, 0, 0, 0, 0, 0, 0, 151, 152, 0, 48, 48, 0, 0, 0, 0, 0,
+ 135, 135, 142, 0, 0, 0, 0, 0, 0, 0, 151, 152, 0, 48, 48, 48, 0, 0, 0, 0,
0, 48, 48, 135, 135, 0, 0, 144, 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 0, 0, 0, 0, 0, 0, 0, 0, 153, 153, 153, 153, 153, 153, 153, 80, 0, 0,
+ 144, 0, 0, 0, 0, 0, 0, 0, 0, 153, 153, 153, 153, 153, 153, 153, 80, 0,
+ 135, 139, 139, 0, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 0, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48,
+ 48, 48, 0, 0, 145, 48, 139, 154, 147, 139, 146, 139, 139, 0, 154, 147,
+ 147, 0, 147, 147, 135, 142, 0, 0, 0, 0, 0, 0, 0, 146, 146, 0, 0, 0, 0, 0,
+ 0, 0, 48, 0, 48, 48, 135, 135, 0, 0, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 144, 0, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135,
139, 139, 0, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 0, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48,
- 48, 0, 0, 145, 48, 139, 154, 147, 139, 146, 139, 139, 0, 154, 147, 147,
- 0, 147, 147, 135, 142, 0, 0, 0, 0, 0, 0, 0, 146, 146, 0, 0, 0, 0, 0, 0,
- 0, 48, 0, 48, 48, 135, 135, 0, 0, 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 0, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139,
- 139, 0, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 0, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 0, 0, 48, 146, 139, 139, 135, 135, 135, 135, 0, 139, 139,
+ 139, 0, 147, 147, 147, 142, 48, 0, 0, 0, 0, 0, 0, 0, 0, 146, 0, 0, 0, 0,
+ 0, 0, 0, 48, 48, 48, 135, 135, 0, 0, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 144, 148, 148, 148, 148, 148, 148, 0, 0, 0, 80, 48, 48, 48, 48,
+ 48, 48, 0, 0, 139, 139, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 0, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 0,
+ 0, 0, 155, 0, 0, 0, 0, 146, 139, 139, 135, 135, 135, 0, 135, 0, 139, 139,
+ 147, 139, 147, 147, 147, 146, 0, 0, 0, 0, 0, 0, 144, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 0, 0, 139, 139, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 0, 0, 48, 146, 139, 139, 135, 135, 135, 135, 0, 139, 139, 139, 0,
- 147, 147, 147, 142, 48, 0, 0, 0, 0, 0, 0, 0, 0, 146, 0, 0, 0, 0, 0, 0, 0,
- 0, 48, 48, 135, 135, 0, 0, 144, 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 148, 148, 148, 148, 148, 148, 0, 0, 0, 80, 48, 48, 48, 48, 48, 48,
- 0, 0, 139, 139, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 0, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0,
- 155, 0, 0, 0, 0, 146, 139, 139, 135, 135, 135, 0, 135, 0, 139, 139, 147,
- 139, 147, 147, 147, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 139, 139, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 135, 48, 156, 135, 135, 135, 135, 157,
- 157, 142, 0, 0, 0, 0, 85, 48, 48, 48, 48, 48, 48, 53, 135, 158, 158, 158,
- 158, 135, 135, 135, 83, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
- 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 0, 48, 0, 0, 48, 48,
- 0, 48, 0, 0, 48, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48,
- 48, 48, 0, 48, 48, 48, 0, 48, 0, 48, 0, 0, 48, 48, 0, 48, 48, 48, 48,
- 135, 48, 156, 135, 135, 135, 135, 159, 159, 0, 135, 135, 48, 0, 0, 48,
- 48, 48, 48, 48, 0, 53, 0, 160, 160, 160, 160, 135, 135, 0, 0, 144, 144,
- 144, 144, 144, 144, 144, 144, 144, 144, 0, 0, 156, 156, 48, 48, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 48, 80, 80, 80, 83, 83, 83, 83, 83, 83, 83, 83, 161, 83,
- 83, 83, 83, 83, 83, 80, 83, 80, 80, 80, 86, 86, 80, 80, 80, 80, 80, 80,
- 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 80, 86, 80, 86, 80, 162, 163, 164, 163,
- 164, 139, 139, 48, 48, 48, 143, 48, 48, 48, 48, 0, 48, 48, 48, 48, 143,
- 48, 48, 48, 48, 143, 48, 48, 48, 48, 143, 48, 48, 48, 48, 143, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 143, 48, 48, 48, 0, 0, 0, 0, 165,
- 166, 167, 168, 167, 167, 169, 167, 169, 166, 166, 166, 166, 135, 139,
- 166, 167, 81, 81, 142, 83, 81, 81, 48, 48, 48, 48, 48, 135, 135, 135,
- 135, 135, 135, 167, 135, 135, 135, 135, 0, 135, 135, 135, 135, 167, 135,
- 135, 135, 135, 167, 135, 135, 135, 135, 167, 135, 135, 135, 135, 167,
- 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 167, 135,
- 135, 135, 0, 80, 80, 80, 80, 80, 80, 80, 80, 86, 80, 80, 80, 80, 80, 80,
- 0, 80, 80, 83, 83, 83, 83, 83, 80, 80, 80, 80, 83, 83, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135, 48, 156,
+ 135, 135, 135, 135, 157, 157, 142, 0, 0, 0, 0, 85, 48, 48, 48, 48, 48,
+ 48, 53, 135, 158, 158, 158, 158, 135, 135, 135, 83, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 144, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 48, 48, 0, 48, 0, 0, 48, 48, 0, 48, 0, 0, 48, 0, 0, 0, 0, 0, 0, 48,
+ 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 0, 48, 0, 48,
+ 0, 0, 48, 48, 0, 48, 48, 48, 48, 135, 48, 156, 135, 135, 135, 135, 159,
+ 159, 0, 135, 135, 48, 0, 0, 48, 48, 48, 48, 48, 0, 53, 0, 160, 160, 160,
+ 160, 135, 135, 0, 0, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 0,
+ 0, 156, 156, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 80, 80, 80, 83, 83, 83,
+ 83, 83, 83, 83, 83, 161, 83, 83, 83, 83, 83, 83, 80, 83, 80, 80, 80, 86,
+ 86, 80, 80, 80, 80, 80, 80, 144, 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 80, 86, 80, 86,
+ 80, 162, 163, 164, 163, 164, 139, 139, 48, 48, 48, 143, 48, 48, 48, 48,
+ 0, 48, 48, 48, 48, 143, 48, 48, 48, 48, 143, 48, 48, 48, 48, 143, 48, 48,
+ 48, 48, 143, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 143, 48, 48,
+ 48, 0, 0, 0, 0, 165, 166, 167, 168, 167, 167, 169, 167, 169, 166, 166,
+ 166, 166, 135, 139, 166, 167, 81, 81, 142, 83, 81, 81, 48, 48, 48, 48,
+ 48, 135, 135, 135, 135, 135, 135, 167, 135, 135, 135, 135, 0, 135, 135,
+ 135, 135, 167, 135, 135, 135, 135, 167, 135, 135, 135, 135, 167, 135,
+ 135, 135, 135, 167, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 167, 135, 135, 135, 0, 80, 80, 80, 80, 80, 80, 80, 80, 86, 80,
+ 80, 80, 80, 80, 80, 0, 80, 80, 83, 83, 83, 83, 83, 80, 80, 80, 80, 83,
+ 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 140, 48, 48, 48, 48, 139, 139, 135, 149, 135,
- 135, 139, 135, 135, 135, 135, 135, 145, 139, 142, 142, 139, 139, 135,
- 135, 48, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 83, 83, 83,
- 83, 83, 83, 48, 48, 48, 48, 48, 48, 139, 139, 135, 135, 48, 48, 48, 48,
- 135, 135, 135, 48, 139, 139, 139, 48, 48, 139, 139, 139, 139, 139, 139,
- 139, 48, 48, 48, 135, 135, 135, 135, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 135, 139, 139, 135, 135, 139, 139, 139, 139, 139, 139,
- 86, 48, 139, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 139, 139,
- 139, 135, 80, 80, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 140, 48, 48, 48, 48, 139,
+ 139, 135, 149, 135, 135, 139, 135, 135, 135, 135, 135, 145, 139, 142,
+ 142, 139, 139, 135, 135, 48, 144, 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 83, 83, 83, 83, 83, 83, 48, 48, 48, 48, 48, 48, 139, 139, 135, 135,
+ 48, 48, 48, 48, 135, 135, 135, 48, 139, 139, 139, 48, 48, 139, 139, 139,
+ 139, 139, 139, 139, 48, 48, 48, 135, 135, 135, 135, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 135, 139, 139, 135, 135, 139, 139, 139,
+ 139, 139, 139, 86, 48, 139, 144, 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 139, 139, 139, 135, 80, 80, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 0, 44, 0, 0, 0, 0, 0, 44, 0, 0, 48, 48, 48, 48,
+ 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 0, 44, 0, 0, 0, 0, 0, 44, 0, 0,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 83, 51, 48, 48, 48, 170, 170, 170, 170, 170, 170, 170, 170,
+ 48, 48, 48, 48, 48, 48, 48, 83, 51, 48, 48, 48, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
- 170, 170, 170, 170, 48, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
- 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 48, 48, 48, 48,
+ 170, 170, 170, 170, 170, 170, 170, 48, 171, 171, 171, 171, 171, 171, 171,
+ 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 171, 171, 171, 171, 171, 171,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
- 171, 171, 171, 171, 171, 171, 171, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 171, 171, 171, 171, 171, 171, 171, 171, 171, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0,
- 48, 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 0, 48, 48, 48,
- 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 0, 0, 48, 48, 48, 48, 48,
+ 48, 0, 48, 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 0, 48,
+ 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 0, 0, 48, 48,
- 48, 48, 48, 48, 48, 0, 48, 0, 48, 48, 48, 48, 0, 0, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 0, 0, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48,
- 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 81, 81,
- 81, 83, 83, 83, 83, 83, 83, 83, 83, 83, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 0,
- 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 0, 0,
+ 48, 48, 48, 48, 48, 48, 48, 0, 48, 0, 48, 48, 48, 48, 0, 0, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48,
+ 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0,
+ 81, 81, 81, 83, 83, 83, 83, 83, 83, 83, 83, 83, 148, 148, 148, 148, 148,
+ 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
+ 148, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 44, 44, 44,
+ 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
+ 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
+ 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
+ 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
+ 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 0, 0, 47, 47, 47, 47, 47, 47,
+ 0, 0, 84, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
@@ -1505,357 +1627,359 @@ static unsigned short index2[] = {
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 83, 83, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 172, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 163, 164,
+ 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 83, 83, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 172, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 163, 164, 0, 0, 0,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 83, 83, 83, 173, 173, 173, 48, 48, 48, 48, 48, 48,
+ 48, 48, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 0, 48, 48, 48, 48, 135, 135, 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 135, 135, 142, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135, 135, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 0, 48, 48, 48, 0, 135, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 83, 83, 83, 173, 173, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48,
- 48, 48, 48, 135, 135, 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135, 135,
- 142, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135, 135, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48,
- 48, 48, 0, 135, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48,
+ 139, 135, 135, 135, 135, 135, 135, 135, 139, 139, 139, 139, 139, 139,
+ 139, 139, 135, 139, 139, 135, 135, 135, 135, 135, 135, 135, 135, 135,
+ 142, 135, 83, 83, 83, 53, 83, 83, 83, 85, 48, 81, 0, 0, 144, 144, 144,
+ 144, 144, 144, 144, 144, 144, 144, 0, 0, 0, 0, 0, 0, 153, 153, 153, 153,
+ 153, 153, 153, 153, 153, 153, 0, 0, 0, 0, 0, 0, 138, 138, 138, 138, 138,
+ 138, 84, 138, 138, 138, 138, 135, 135, 135, 174, 0, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 144, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 53, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135, 135, 139, 135, 135,
- 135, 135, 135, 135, 135, 139, 139, 139, 139, 139, 139, 139, 139, 135,
- 139, 139, 135, 135, 135, 135, 135, 135, 135, 135, 135, 142, 135, 83, 83,
- 83, 53, 83, 83, 83, 85, 48, 81, 0, 0, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 144, 0, 0, 0, 0, 0, 0, 153, 153, 153, 153, 153, 153, 153, 153,
- 153, 153, 0, 0, 0, 0, 0, 0, 138, 138, 138, 138, 138, 138, 84, 138, 138,
- 138, 138, 135, 135, 135, 174, 0, 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 53, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 88, 48, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 88, 48,
- 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 135, 135, 135, 139, 139, 139, 139,
+ 135, 135, 139, 139, 139, 0, 0, 0, 0, 139, 139, 135, 139, 139, 139, 139,
+ 139, 139, 87, 81, 86, 0, 0, 0, 0, 26, 0, 0, 0, 138, 138, 144, 144, 144,
+ 144, 144, 144, 144, 144, 144, 144, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 0, 0, 0, 135, 135, 135, 139, 139, 139, 139, 135, 135, 139, 139,
- 139, 0, 0, 0, 0, 139, 139, 135, 139, 139, 139, 139, 139, 139, 87, 81, 86,
- 0, 0, 0, 0, 26, 0, 0, 0, 138, 138, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 144, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 48,
- 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 0, 0, 0, 0, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
- 139, 139, 139, 139, 139, 139, 139, 48, 48, 48, 48, 48, 48, 48, 139, 139,
- 0, 0, 0, 0, 0, 0, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 148,
- 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 0, 0, 0, 0, 0, 0, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
+ 148, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 81, 86, 139, 139, 135, 0, 0, 83, 83, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 81, 86, 139, 139, 135, 0, 0, 83, 83, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 139, 135, 139,
+ 135, 135, 135, 135, 135, 135, 135, 0, 142, 139, 135, 139, 139, 135, 135,
+ 135, 135, 135, 135, 135, 135, 139, 139, 139, 139, 139, 139, 135, 135, 81,
+ 81, 81, 81, 81, 81, 81, 81, 0, 0, 86, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 144, 0, 0, 0, 0, 0, 0, 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 0, 0, 0, 0, 0, 0, 83, 83, 83, 83, 83, 83, 83, 53, 83, 83, 83,
+ 83, 83, 83, 0, 0, 81, 81, 81, 81, 81, 86, 86, 86, 86, 86, 86, 81, 81, 86,
+ 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, 135, 135, 135,
+ 139, 48, 140, 48, 140, 48, 140, 48, 140, 48, 140, 48, 48, 48, 140, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 139, 135, 139, 135,
- 135, 135, 135, 135, 135, 135, 0, 142, 139, 135, 139, 139, 135, 135, 135,
- 135, 135, 135, 135, 135, 139, 139, 139, 139, 139, 139, 135, 135, 81, 81,
- 81, 81, 81, 81, 81, 81, 0, 0, 86, 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 0, 0, 0, 0, 0, 0, 144, 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 0, 0, 0, 0, 0, 0, 83, 83, 83, 83, 83, 83, 83, 53, 83, 83, 83, 83,
- 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, 135, 135, 135, 139, 48, 140, 48,
- 140, 48, 140, 48, 140, 48, 140, 48, 48, 48, 140, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 145, 146, 135,
+ 135, 135, 135, 135, 147, 135, 147, 139, 139, 147, 147, 135, 147, 175, 48,
+ 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 144, 83, 83, 83, 83, 83, 83, 83, 80, 80, 80, 80, 80, 80, 80,
+ 80, 80, 80, 81, 86, 81, 81, 81, 81, 81, 81, 81, 80, 80, 80, 80, 80, 80,
+ 80, 80, 80, 0, 0, 0, 135, 135, 139, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 145, 146, 135, 135, 135, 135, 135,
- 147, 135, 147, 139, 139, 147, 147, 135, 147, 175, 48, 48, 48, 48, 48, 48,
- 48, 0, 0, 0, 0, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 83, 83,
- 83, 83, 83, 83, 83, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 81, 86, 81,
- 81, 81, 81, 81, 81, 81, 80, 80, 80, 80, 80, 80, 80, 80, 80, 0, 0, 0, 135,
- 135, 139, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 139, 135, 135,
- 135, 135, 139, 139, 135, 135, 175, 142, 139, 139, 48, 48, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 144, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 139, 135, 135, 135, 135, 139, 139, 135, 135, 175, 142, 135,
+ 135, 48, 48, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 145,
- 139, 135, 135, 139, 139, 139, 135, 139, 135, 135, 135, 175, 175, 0, 0, 0,
- 0, 0, 0, 0, 0, 83, 83, 83, 83, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 139, 139, 139, 139, 139, 139, 139, 139,
- 135, 135, 135, 135, 135, 135, 135, 135, 139, 139, 135, 145, 0, 0, 0, 83,
- 83, 83, 83, 83, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 0, 0,
- 0, 48, 48, 48, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 48, 48,
+ 48, 48, 48, 48, 48, 48, 145, 139, 135, 135, 139, 139, 139, 135, 139, 135,
+ 135, 135, 175, 175, 0, 0, 0, 0, 0, 0, 0, 0, 83, 83, 83, 83, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 53, 53, 53, 53, 53, 53, 83, 83,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 139, 139,
+ 139, 139, 139, 139, 139, 139, 135, 135, 135, 135, 135, 135, 135, 135,
+ 139, 139, 135, 145, 0, 0, 0, 83, 83, 83, 83, 83, 144, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 0, 0, 0, 48, 48, 48, 144, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 53, 53, 53, 53, 53, 53, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 83, 83, 83, 83, 83,
- 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 81, 81, 81, 83, 176, 86, 86, 86, 86, 86,
- 81, 81, 86, 86, 86, 86, 81, 139, 176, 176, 176, 176, 176, 176, 176, 48,
- 48, 48, 48, 86, 48, 48, 48, 48, 139, 139, 81, 48, 48, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
+ 0, 0, 83, 83, 83, 83, 83, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 81, 81, 81,
+ 83, 176, 86, 86, 86, 86, 86, 81, 81, 86, 86, 86, 86, 81, 139, 176, 176,
+ 176, 176, 176, 176, 176, 48, 48, 48, 48, 86, 48, 48, 48, 48, 139, 139,
+ 81, 48, 48, 0, 81, 81, 0, 0, 0, 0, 0, 0, 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 51, 51, 51, 53, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 53, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 53, 51, 51, 51, 51, 51, 51, 51, 51, 51,
+ 51, 51, 51, 53, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 53, 51, 51,
+ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 53, 51,
51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 51, 47, 47, 47,
+ 51, 51, 51, 51, 51, 51, 51, 51, 51, 47, 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 51, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 51, 51, 51, 51, 51,
+ 47, 47, 47, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 81, 81, 86, 81,
- 81, 81, 81, 81, 81, 81, 86, 81, 81, 177, 178, 86, 179, 81, 81, 81, 81,
+ 51, 51, 51, 51, 81, 81, 86, 81, 81, 81, 81, 81, 81, 81, 86, 81, 81, 177,
+ 178, 86, 179, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 86,
- 81, 86, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
- 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
- 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
- 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
- 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
- 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
- 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
- 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
- 38, 43, 38, 43, 38, 43, 38, 43, 43, 43, 43, 43, 35, 181, 47, 47, 44, 47,
- 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
- 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
- 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
- 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
- 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
- 44, 47, 44, 47, 44, 47, 43, 43, 43, 43, 43, 43, 43, 43, 38, 38, 38, 38,
- 38, 38, 38, 38, 43, 43, 43, 43, 43, 43, 0, 0, 38, 38, 38, 38, 38, 38, 0,
- 0, 43, 43, 43, 43, 43, 43, 43, 43, 38, 38, 38, 38, 38, 38, 38, 38, 43,
+ 81, 81, 81, 81, 0, 0, 0, 0, 0, 0, 180, 86, 81, 86, 38, 43, 38, 43, 38,
+ 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38,
+ 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38,
+ 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38,
+ 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38,
+ 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38,
+ 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38,
+ 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38,
+ 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38,
+ 43, 43, 43, 43, 43, 35, 181, 47, 47, 44, 47, 38, 43, 38, 43, 38, 43, 38,
+ 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38,
+ 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38,
+ 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38,
+ 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38,
+ 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 44, 47, 44, 47, 44, 47, 43,
43, 43, 43, 43, 43, 43, 43, 38, 38, 38, 38, 38, 38, 38, 38, 43, 43, 43,
43, 43, 43, 0, 0, 38, 38, 38, 38, 38, 38, 0, 0, 43, 43, 43, 43, 43, 43,
- 43, 43, 0, 38, 0, 38, 0, 38, 0, 38, 43, 43, 43, 43, 43, 43, 43, 43, 38,
- 38, 38, 38, 38, 38, 38, 38, 43, 182, 43, 182, 43, 182, 43, 182, 43, 182,
- 43, 182, 43, 182, 0, 0, 43, 43, 43, 43, 43, 43, 43, 43, 183, 183, 183,
- 183, 183, 183, 183, 183, 43, 43, 43, 43, 43, 43, 43, 43, 183, 183, 183,
- 183, 183, 183, 183, 183, 43, 43, 43, 43, 43, 43, 43, 43, 183, 183, 183,
- 183, 183, 183, 183, 183, 43, 43, 43, 43, 43, 0, 43, 43, 38, 38, 38, 184,
- 183, 58, 182, 58, 58, 76, 43, 43, 43, 0, 43, 43, 38, 184, 38, 184, 183,
- 76, 76, 76, 43, 43, 43, 182, 0, 0, 43, 43, 38, 38, 38, 184, 0, 76, 76,
- 76, 43, 43, 43, 182, 43, 43, 43, 43, 38, 38, 38, 184, 38, 76, 185, 185,
- 0, 0, 43, 43, 43, 0, 43, 43, 38, 184, 38, 184, 183, 185, 58, 0, 186, 186,
- 187, 187, 187, 187, 187, 187, 187, 187, 187, 174, 174, 174, 188, 189,
- 190, 191, 84, 190, 190, 190, 22, 192, 193, 194, 195, 196, 193, 194, 195,
- 196, 22, 22, 22, 138, 197, 197, 197, 22, 198, 199, 200, 201, 202, 203,
- 204, 21, 205, 110, 205, 206, 207, 22, 192, 192, 138, 28, 36, 22, 192,
- 138, 197, 208, 208, 138, 138, 138, 209, 163, 164, 192, 192, 192, 138,
- 138, 138, 138, 138, 138, 138, 138, 78, 138, 208, 138, 138, 192, 138, 138,
- 138, 138, 138, 138, 138, 187, 174, 174, 174, 174, 174, 0, 210, 211, 212,
- 213, 174, 174, 174, 174, 174, 174, 214, 51, 0, 0, 34, 214, 214, 214, 214,
- 214, 215, 215, 216, 217, 218, 219, 214, 34, 34, 34, 34, 214, 214, 214,
- 214, 214, 215, 215, 216, 217, 218, 0, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 0, 0, 0, 85, 85, 85, 85, 85, 85, 85, 85, 220, 221, 85,
- 85, 23, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 81, 176, 176,
- 81, 81, 81, 81, 176, 176, 176, 81, 81, 82, 82, 82, 82, 81, 82, 82, 82,
- 176, 176, 81, 86, 81, 176, 176, 86, 86, 86, 86, 81, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 222, 222, 49, 223, 26, 223, 222, 49, 26, 223, 35,
- 49, 49, 49, 35, 35, 49, 49, 49, 46, 26, 49, 223, 26, 78, 49, 49, 49, 49,
- 49, 26, 26, 222, 223, 223, 26, 49, 26, 224, 26, 49, 26, 184, 224, 49, 49,
- 225, 35, 49, 49, 44, 49, 35, 156, 156, 156, 156, 35, 26, 222, 35, 35, 49,
- 49, 226, 78, 78, 78, 78, 49, 35, 35, 35, 35, 26, 78, 26, 26, 47, 80, 227,
- 227, 227, 37, 37, 227, 227, 227, 227, 227, 227, 37, 37, 37, 37, 227, 228,
- 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 229, 229, 229,
- 229, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 229, 229, 229,
- 229, 229, 229, 173, 173, 173, 44, 47, 173, 173, 173, 173, 37, 0, 0, 0, 0,
- 0, 0, 40, 40, 40, 40, 40, 30, 30, 30, 30, 30, 230, 230, 26, 26, 26, 26,
- 78, 26, 26, 78, 26, 26, 78, 26, 26, 26, 26, 26, 26, 26, 230, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 30, 30, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 231, 230, 230, 26, 26, 40, 26, 40,
+ 43, 43, 38, 38, 38, 38, 38, 38, 38, 38, 43, 43, 43, 43, 43, 43, 43, 43,
+ 38, 38, 38, 38, 38, 38, 38, 38, 43, 43, 43, 43, 43, 43, 0, 0, 38, 38, 38,
+ 38, 38, 38, 0, 0, 43, 43, 43, 43, 43, 43, 43, 43, 0, 38, 0, 38, 0, 38, 0,
+ 38, 43, 43, 43, 43, 43, 43, 43, 43, 38, 38, 38, 38, 38, 38, 38, 38, 43,
+ 182, 43, 182, 43, 182, 43, 182, 43, 182, 43, 182, 43, 182, 0, 0, 43, 43,
+ 43, 43, 43, 43, 43, 43, 183, 183, 183, 183, 183, 183, 183, 183, 43, 43,
+ 43, 43, 43, 43, 43, 43, 183, 183, 183, 183, 183, 183, 183, 183, 43, 43,
+ 43, 43, 43, 43, 43, 43, 183, 183, 183, 183, 183, 183, 183, 183, 43, 43,
+ 43, 43, 43, 0, 43, 43, 38, 38, 38, 184, 183, 58, 182, 58, 58, 76, 43, 43,
+ 43, 0, 43, 43, 38, 184, 38, 184, 183, 76, 76, 76, 43, 43, 43, 182, 0, 0,
+ 43, 43, 38, 38, 38, 184, 0, 76, 76, 76, 43, 43, 43, 182, 43, 43, 43, 43,
+ 38, 38, 38, 184, 38, 76, 185, 185, 0, 0, 43, 43, 43, 0, 43, 43, 38, 184,
+ 38, 184, 183, 185, 58, 0, 186, 186, 187, 187, 187, 187, 187, 187, 187,
+ 187, 187, 174, 174, 174, 188, 189, 190, 191, 84, 190, 190, 190, 22, 192,
+ 193, 194, 195, 196, 193, 194, 195, 196, 22, 22, 22, 138, 197, 197, 197,
+ 22, 198, 199, 200, 201, 202, 203, 204, 21, 205, 110, 205, 206, 207, 22,
+ 192, 192, 138, 28, 36, 22, 192, 138, 197, 208, 208, 138, 138, 138, 209,
+ 163, 164, 192, 192, 192, 138, 138, 138, 138, 138, 138, 138, 138, 78, 138,
+ 208, 138, 138, 192, 138, 138, 138, 138, 138, 138, 138, 187, 174, 174,
+ 174, 174, 174, 0, 210, 211, 212, 213, 174, 174, 174, 174, 174, 174, 214,
+ 51, 0, 0, 34, 214, 214, 214, 214, 214, 215, 215, 216, 217, 218, 219, 214,
+ 34, 34, 34, 34, 214, 214, 214, 214, 214, 215, 215, 216, 217, 218, 0, 51,
+ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 0, 0, 0, 85, 85, 85, 85,
+ 85, 85, 85, 85, 220, 221, 85, 85, 23, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 81, 81, 176, 176, 81, 81, 81, 81, 176, 176, 176, 81, 81,
+ 82, 82, 82, 82, 81, 82, 82, 82, 176, 176, 81, 86, 81, 176, 176, 86, 86,
+ 86, 86, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 222, 222, 49,
+ 223, 26, 223, 222, 49, 26, 223, 35, 49, 49, 49, 35, 35, 49, 49, 49, 46,
+ 26, 49, 223, 26, 78, 49, 49, 49, 49, 49, 26, 26, 222, 223, 223, 26, 49,
+ 26, 224, 26, 49, 26, 184, 224, 49, 49, 225, 35, 49, 49, 44, 49, 35, 156,
+ 156, 156, 156, 35, 26, 222, 35, 35, 49, 49, 226, 78, 78, 78, 78, 49, 35,
+ 35, 35, 35, 26, 78, 26, 26, 47, 80, 227, 227, 227, 37, 37, 227, 227, 227,
+ 227, 227, 227, 37, 37, 37, 37, 227, 228, 228, 228, 228, 228, 228, 228,
+ 228, 228, 228, 228, 228, 229, 229, 229, 229, 228, 228, 228, 228, 228,
+ 228, 228, 228, 228, 228, 229, 229, 229, 229, 229, 229, 173, 173, 173, 44,
+ 47, 173, 173, 173, 173, 37, 26, 26, 0, 0, 0, 0, 40, 40, 40, 40, 40, 30,
+ 30, 30, 30, 30, 230, 230, 26, 26, 26, 26, 78, 26, 26, 78, 26, 26, 78, 26,
+ 26, 26, 26, 26, 26, 26, 230, 26, 26, 26, 26, 26, 26, 26, 26, 26, 30, 30,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 30, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 78, 78, 78, 78, 78,
- 78, 78, 78, 78, 78, 78, 78, 40, 232, 233, 233, 234, 78, 78, 40, 233, 234,
- 232, 233, 234, 232, 78, 40, 78, 233, 235, 236, 78, 233, 232, 78, 78, 78,
- 233, 232, 232, 233, 40, 233, 233, 232, 232, 40, 234, 40, 234, 40, 40, 40,
- 40, 233, 237, 226, 233, 226, 226, 232, 232, 232, 40, 40, 40, 40, 78, 232,
- 78, 232, 233, 233, 232, 232, 232, 234, 232, 232, 234, 232, 232, 234, 233,
- 234, 232, 232, 233, 78, 78, 78, 78, 78, 233, 232, 232, 232, 78, 78, 78,
- 78, 78, 78, 78, 78, 78, 232, 238, 40, 234, 78, 233, 233, 233, 233, 232,
- 232, 233, 233, 78, 230, 238, 238, 234, 234, 232, 232, 234, 234, 232, 232,
- 234, 234, 232, 232, 232, 232, 232, 232, 234, 234, 233, 233, 234, 234,
- 233, 233, 234, 234, 232, 232, 232, 78, 78, 232, 232, 232, 232, 78, 78,
- 40, 78, 78, 232, 40, 78, 78, 78, 78, 78, 78, 78, 78, 232, 232, 78, 40,
- 232, 232, 232, 232, 232, 232, 234, 234, 234, 234, 232, 232, 232, 232,
- 232, 232, 232, 232, 232, 78, 78, 78, 78, 78, 232, 233, 78, 78, 78, 78,
- 78, 78, 78, 78, 78, 232, 232, 232, 232, 232, 78, 78, 232, 232, 78, 78,
- 78, 78, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 234, 234, 234,
- 234, 232, 232, 232, 232, 232, 232, 234, 234, 234, 234, 78, 78, 232, 232,
- 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 26,
- 26, 26, 26, 26, 26, 26, 26, 163, 164, 163, 164, 26, 26, 26, 26, 26, 26,
- 30, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 232, 232, 26, 26,
- 26, 26, 26, 26, 26, 239, 240, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 231, 230, 230, 26, 26, 40, 26, 40, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 30, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 40,
+ 232, 233, 233, 234, 78, 78, 40, 233, 234, 232, 233, 234, 232, 78, 40, 78,
+ 233, 235, 236, 78, 233, 232, 78, 78, 78, 233, 232, 232, 233, 40, 233,
+ 233, 232, 232, 40, 234, 40, 234, 40, 40, 40, 40, 233, 237, 226, 233, 226,
+ 226, 232, 232, 232, 40, 40, 40, 40, 78, 232, 78, 232, 233, 233, 232, 232,
+ 232, 234, 232, 232, 234, 232, 232, 234, 233, 234, 232, 232, 233, 78, 78,
+ 78, 78, 78, 233, 232, 232, 232, 78, 78, 78, 78, 78, 78, 78, 78, 78, 232,
+ 238, 40, 234, 78, 233, 233, 233, 233, 232, 232, 233, 233, 78, 230, 238,
+ 238, 234, 234, 232, 232, 234, 234, 232, 232, 234, 234, 232, 232, 232,
+ 232, 232, 232, 234, 234, 233, 233, 234, 234, 233, 233, 234, 234, 232,
+ 232, 232, 78, 78, 232, 232, 232, 232, 78, 78, 40, 78, 78, 232, 40, 78,
+ 78, 78, 78, 78, 78, 78, 78, 232, 232, 78, 40, 232, 232, 232, 232, 232,
+ 232, 234, 234, 234, 234, 232, 232, 232, 232, 232, 232, 232, 232, 232, 78,
+ 78, 78, 78, 78, 232, 233, 78, 78, 78, 78, 78, 78, 78, 78, 78, 232, 232,
+ 232, 232, 232, 78, 78, 232, 232, 78, 78, 78, 78, 232, 232, 232, 232, 232,
+ 232, 232, 232, 232, 232, 234, 234, 234, 234, 232, 232, 232, 232, 232,
+ 232, 234, 234, 234, 234, 78, 78, 232, 232, 232, 232, 232, 232, 232, 232,
+ 232, 232, 232, 232, 232, 232, 232, 232, 26, 26, 26, 26, 26, 26, 26, 26,
+ 163, 164, 163, 164, 26, 26, 26, 26, 26, 26, 30, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 232, 232, 26, 26, 26, 26, 26, 26, 26, 239,
+ 240, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 26, 78, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 80, 26, 26, 26, 26, 26, 78, 78, 78, 78, 78, 78, 78,
- 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
+ 80, 80, 80, 80, 80, 80, 80, 80, 80, 26, 78, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 80,
+ 26, 26, 26, 26, 26, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
+ 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 78, 78,
+ 78, 78, 78, 78, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 78, 78, 78, 78, 78, 78, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 37, 37, 37, 37,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 37, 37, 37, 37, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
+ 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 241, 241,
+ 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
- 241, 241, 241, 241, 241, 241, 241, 241, 227, 242, 242, 242, 242, 242,
- 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242,
- 242, 242, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ 241, 241, 241, 241, 241, 241, 227, 242, 242, 242, 242, 242, 242, 242,
+ 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 30,
30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 30, 30, 30, 26, 26, 26, 26, 30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 30, 30, 26, 26, 30, 30, 30, 30, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 30, 30, 26, 30, 30, 30, 30, 30, 30, 30, 26, 26, 26, 26, 26, 26, 26, 26,
- 30, 30, 26, 26, 30, 40, 26, 26, 26, 26, 30, 30, 26, 26, 30, 40, 26, 26,
- 26, 26, 30, 30, 30, 26, 26, 30, 26, 26, 30, 30, 30, 30, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 30, 30, 30, 30, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 30, 26, 26, 26, 26, 26, 26, 26, 26, 78, 78,
- 78, 78, 78, 78, 78, 78, 26, 26, 26, 26, 26, 30, 30, 26, 26, 30, 26, 26,
- 26, 26, 30, 30, 26, 26, 26, 26, 30, 30, 26, 26, 26, 26, 26, 26, 30, 26,
- 30, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 30, 26,
- 30, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 30, 30, 26, 30, 30, 30,
- 26, 30, 30, 30, 30, 26, 30, 30, 26, 40, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 30, 30, 30, 26, 26, 26, 26, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ 30, 30, 30, 30, 30, 30, 30, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 26,
+ 26, 30, 30, 30, 30, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 30, 30, 26,
+ 30, 30, 30, 30, 30, 30, 30, 26, 26, 26, 26, 26, 26, 26, 26, 30, 30, 26,
+ 26, 30, 40, 26, 26, 26, 26, 30, 30, 26, 26, 30, 40, 26, 26, 26, 26, 30,
+ 30, 30, 26, 26, 30, 26, 26, 30, 30, 30, 30, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 30, 30, 30, 30, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 30, 26, 26, 26, 26, 26, 26, 26, 26, 78, 78, 78, 78, 78,
+ 78, 78, 78, 26, 26, 26, 26, 26, 30, 30, 26, 26, 30, 26, 26, 26, 26, 30,
+ 30, 26, 26, 26, 26, 30, 30, 26, 26, 26, 26, 26, 26, 30, 26, 30, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 30, 30, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 80, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 30, 30,
- 26, 26, 26, 26, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 26, 30, 30, 30,
- 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 26, 30,
- 26, 26, 26, 26, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 0, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 30, 26, 30, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 30, 30, 26, 30, 30, 30, 26, 30, 30,
+ 30, 30, 26, 30, 30, 26, 40, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 30,
+ 30, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 80, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 30, 30, 26, 26, 26,
+ 26, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 26, 30, 30, 30, 30, 30, 30,
+ 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 26, 30, 26, 26, 26,
+ 26, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ 30, 30, 30, 30, 30, 30, 30, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 30, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 163, 164, 163, 164, 163, 164, 163, 164, 163, 164,
- 163, 164, 163, 164, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 30, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 30, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 163, 164, 163, 164, 163, 164, 163, 164, 163, 164, 163, 164,
+ 163, 164, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 153, 153,
153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153,
- 153, 153, 153, 153, 153, 153, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 153, 153, 153, 153, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 232, 78, 78,
- 232, 232, 163, 164, 78, 232, 232, 78, 232, 232, 232, 78, 78, 78, 78, 78,
- 232, 232, 232, 232, 78, 78, 78, 78, 78, 232, 232, 232, 78, 78, 78, 232,
- 232, 232, 232, 9, 10, 9, 10, 9, 10, 9, 10, 163, 164, 78, 78, 78, 78, 78,
- 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 80, 80, 80, 80, 80, 80, 80,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 232, 78, 78, 232,
+ 232, 163, 164, 78, 232, 232, 78, 232, 232, 232, 78, 78, 78, 78, 78, 232,
+ 232, 232, 232, 78, 78, 78, 78, 78, 232, 232, 232, 78, 78, 78, 232, 232,
+ 232, 232, 9, 10, 9, 10, 9, 10, 9, 10, 163, 164, 78, 78, 78, 78, 78, 78,
+ 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 78, 78, 78, 78, 78,
+ 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 78, 78, 78, 78, 78, 78,
78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
+ 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 163,
+ 164, 9, 10, 163, 164, 163, 164, 163, 164, 163, 164, 163, 164, 163, 164,
+ 163, 164, 163, 164, 163, 164, 78, 78, 232, 232, 232, 232, 232, 232, 232,
+ 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 78,
+ 78, 78, 78, 78, 78, 78, 78, 232, 78, 78, 78, 78, 78, 78, 78, 232, 232,
+ 232, 232, 232, 232, 78, 78, 78, 232, 78, 78, 78, 78, 232, 232, 232, 232,
+ 232, 78, 232, 232, 78, 78, 163, 164, 163, 164, 232, 78, 78, 78, 78, 232,
+ 78, 232, 232, 232, 78, 78, 232, 232, 78, 78, 78, 78, 78, 78, 78, 78, 78,
+ 78, 232, 232, 232, 232, 232, 232, 78, 78, 163, 164, 78, 78, 78, 78, 78,
+ 78, 78, 78, 78, 78, 78, 78, 232, 232, 226, 232, 232, 232, 232, 232, 232,
+ 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 78, 232, 232, 232, 232,
+ 78, 78, 232, 78, 232, 78, 78, 232, 78, 232, 232, 232, 232, 78, 78, 78,
+ 78, 78, 232, 232, 78, 78, 78, 78, 78, 78, 232, 232, 232, 78, 78, 78, 78,
78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
- 163, 164, 9, 10, 163, 164, 163, 164, 163, 164, 163, 164, 163, 164, 163,
- 164, 163, 164, 163, 164, 163, 164, 78, 78, 232, 232, 232, 232, 232, 232,
+ 78, 78, 232, 232, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 232, 232,
+ 78, 78, 78, 78, 232, 232, 232, 232, 78, 232, 232, 78, 78, 232, 226, 216,
+ 216, 78, 78, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
- 232, 78, 78, 78, 78, 78, 78, 78, 78, 232, 78, 78, 78, 78, 78, 78, 78,
- 232, 232, 232, 232, 232, 232, 78, 78, 78, 232, 78, 78, 78, 78, 232, 232,
- 232, 232, 232, 78, 232, 232, 78, 78, 163, 164, 163, 164, 232, 78, 78, 78,
- 78, 232, 78, 232, 232, 232, 78, 78, 232, 232, 78, 78, 78, 78, 78, 78, 78,
- 78, 78, 78, 232, 232, 232, 232, 232, 232, 78, 78, 163, 164, 78, 78, 78,
- 78, 78, 78, 78, 78, 78, 78, 78, 78, 232, 232, 226, 232, 232, 232, 232,
- 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 78, 232, 232,
- 232, 232, 78, 78, 232, 78, 232, 78, 78, 232, 78, 232, 232, 232, 232, 78,
- 78, 78, 78, 78, 232, 232, 78, 78, 78, 78, 78, 78, 232, 232, 232, 78, 78,
- 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
- 78, 78, 78, 78, 232, 232, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
- 232, 232, 78, 78, 78, 78, 232, 232, 232, 232, 78, 232, 232, 78, 78, 232,
- 226, 216, 216, 78, 78, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
+ 232, 232, 232, 78, 78, 232, 232, 232, 232, 232, 232, 232, 232, 78, 232,
232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
- 232, 232, 232, 232, 232, 78, 78, 232, 232, 232, 232, 232, 232, 232, 232,
- 78, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
- 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 78, 78, 78,
- 78, 78, 243, 78, 232, 78, 78, 78, 232, 232, 232, 232, 232, 78, 78, 78,
- 78, 78, 232, 232, 232, 78, 78, 78, 78, 232, 78, 78, 78, 232, 232, 232,
- 232, 232, 78, 232, 78, 78, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 78, 78, 78, 78,
+ 78, 243, 78, 232, 78, 78, 78, 232, 232, 232, 232, 232, 78, 78, 78, 78,
+ 78, 232, 232, 232, 78, 78, 78, 78, 232, 78, 78, 78, 232, 232, 232, 232,
+ 232, 78, 232, 78, 78, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 78,
+ 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
+ 78, 78, 26, 26, 78, 78, 78, 78, 78, 78, 26, 26, 26, 26, 26, 26, 26, 26,
+ 30, 30, 30, 30, 30, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
- 78, 78, 78, 78, 26, 26, 78, 78, 78, 78, 78, 78, 0, 0, 0, 26, 26, 26, 26,
- 26, 30, 30, 30, 30, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 0, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26,
+ 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 44, 44, 44, 44,
+ 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 0, 47, 47,
+ 44, 44, 44, 44, 44, 44, 0, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 47, 47, 47, 47, 47, 0, 44, 47, 44, 44, 44, 47, 47, 44,
- 47, 44, 47, 44, 47, 44, 44, 44, 44, 47, 44, 47, 47, 44, 47, 47, 47, 47,
- 47, 47, 51, 51, 44, 44, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47,
- 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47,
- 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47,
- 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47,
- 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47,
- 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 47, 26,
- 26, 26, 26, 26, 26, 44, 47, 44, 47, 81, 81, 81, 44, 47, 0, 0, 0, 0, 0,
- 138, 138, 138, 138, 153, 138, 138, 47, 47, 47, 47, 47, 47, 47, 47, 47,
+ 0, 44, 47, 44, 44, 44, 47, 47, 44, 47, 44, 47, 44, 47, 44, 44, 44, 44,
+ 47, 44, 47, 47, 44, 47, 47, 47, 47, 47, 47, 51, 51, 44, 44, 44, 47, 44,
+ 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44,
+ 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44,
+ 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44,
+ 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44,
+ 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44,
+ 47, 44, 47, 44, 47, 44, 47, 47, 26, 26, 26, 26, 26, 26, 44, 47, 44, 47,
+ 81, 81, 81, 44, 47, 0, 0, 0, 0, 0, 138, 138, 138, 138, 153, 138, 138, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 0, 47, 0, 0, 0, 0, 0, 47, 0,
- 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 0, 47, 0, 0, 0, 0, 0, 47, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 51, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 142, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48,
- 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48,
- 48, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48,
- 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48,
- 48, 48, 48, 0, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 51, 83,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 142, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48,
+ 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 0,
+ 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48,
+ 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 0, 81, 81, 81, 81, 81, 81,
81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
- 138, 138, 28, 36, 28, 36, 138, 138, 138, 28, 36, 138, 28, 36, 138, 138,
- 138, 138, 138, 138, 138, 138, 138, 84, 138, 138, 84, 138, 28, 36, 138,
- 138, 28, 36, 163, 164, 163, 164, 163, 164, 163, 164, 138, 138, 138, 138,
- 138, 52, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 84, 84, 0, 0,
+ 81, 81, 81, 81, 81, 81, 81, 81, 138, 138, 28, 36, 28, 36, 138, 138, 138,
+ 28, 36, 138, 28, 36, 138, 138, 138, 138, 138, 138, 138, 138, 138, 84,
+ 138, 138, 84, 138, 28, 36, 138, 138, 28, 36, 163, 164, 163, 164, 163,
+ 164, 163, 164, 138, 138, 138, 138, 138, 52, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 84, 84, 138, 138, 138, 138, 84, 138, 195, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, 244, 244, 244,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, 244, 244, 244, 244, 244, 244, 244, 244,
244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,
- 244, 244, 244, 244, 244, 244, 244, 244, 0, 244, 244, 244, 244, 245, 244,
+ 244, 244, 244, 0, 244, 244, 244, 244, 245, 244, 244, 244, 244, 244, 244,
244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,
244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,
244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,
244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,
244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,
- 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 245, 245, 245, 245, 245, 245, 245, 245,
+ 244, 244, 244, 244, 244, 244, 244, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
@@ -1870,81 +1994,81 @@ static unsigned short index2[] = {
245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
- 245, 245, 245, 245, 245, 245, 245, 245, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, 244, 244, 244,
- 244, 244, 244, 244, 244, 244, 244, 244, 0, 0, 0, 0, 246, 247, 247, 247,
- 244, 248, 170, 249, 250, 251, 250, 251, 250, 251, 250, 251, 250, 251,
- 244, 244, 250, 251, 250, 251, 250, 251, 250, 251, 252, 253, 254, 254,
- 244, 249, 249, 249, 249, 249, 249, 249, 249, 249, 255, 256, 257, 258,
- 259, 259, 252, 248, 248, 248, 248, 248, 245, 244, 260, 260, 260, 248,
- 170, 247, 244, 26, 0, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
+ 245, 245, 245, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,
+ 244, 244, 0, 0, 0, 0, 246, 247, 247, 247, 244, 248, 170, 249, 250, 251,
+ 250, 251, 250, 251, 250, 251, 250, 251, 244, 244, 250, 251, 250, 251,
+ 250, 251, 250, 251, 252, 253, 254, 254, 244, 249, 249, 249, 249, 249,
+ 249, 249, 249, 249, 255, 256, 257, 258, 259, 259, 252, 248, 248, 248,
+ 248, 248, 245, 244, 260, 260, 260, 248, 170, 247, 244, 26, 0, 170, 170,
+ 170, 170, 170, 170, 170, 170, 170, 170, 170, 261, 170, 261, 170, 261,
170, 261, 170, 261, 170, 261, 170, 261, 170, 261, 170, 261, 170, 261,
- 170, 261, 170, 261, 170, 261, 170, 261, 170, 261, 170, 170, 261, 170,
- 261, 170, 261, 170, 170, 170, 170, 170, 170, 261, 261, 170, 261, 261,
- 170, 261, 261, 170, 261, 261, 170, 261, 261, 170, 170, 170, 170, 170,
+ 170, 261, 170, 261, 170, 170, 261, 170, 261, 170, 261, 170, 170, 170,
+ 170, 170, 170, 261, 261, 170, 261, 261, 170, 261, 261, 170, 261, 261,
+ 170, 261, 261, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
+ 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 261, 170, 170, 0,
+ 0, 262, 262, 263, 263, 248, 264, 265, 252, 170, 170, 170, 170, 170, 170,
+ 170, 170, 170, 170, 170, 261, 170, 261, 170, 261, 170, 261, 170, 261,
+ 170, 261, 170, 261, 170, 261, 170, 261, 170, 261, 170, 261, 170, 261,
+ 170, 170, 261, 170, 261, 170, 261, 170, 170, 170, 170, 170, 170, 261,
+ 261, 170, 261, 261, 170, 261, 261, 170, 261, 261, 170, 261, 261, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
- 170, 170, 170, 261, 170, 170, 0, 0, 262, 262, 263, 263, 248, 264, 265,
- 252, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 261, 170,
- 261, 170, 261, 170, 261, 170, 261, 170, 261, 170, 261, 170, 261, 170,
- 261, 170, 261, 170, 261, 170, 261, 170, 170, 261, 170, 261, 170, 261,
- 170, 170, 170, 170, 170, 170, 261, 261, 170, 261, 261, 170, 261, 261,
- 170, 261, 261, 170, 261, 261, 170, 170, 170, 170, 170, 170, 170, 170,
+ 170, 170, 170, 170, 170, 170, 170, 261, 170, 170, 261, 261, 261, 261,
+ 247, 248, 248, 264, 265, 0, 0, 0, 0, 0, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
- 261, 170, 170, 261, 261, 261, 261, 247, 248, 248, 264, 265, 0, 0, 0, 0,
- 0, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
- 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 0, 0, 0,
+ 170, 170, 170, 170, 170, 170, 170, 0, 0, 0, 265, 265, 265, 265, 265, 265,
265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
- 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 0, 266, 266, 267, 267,
- 267, 267, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 170, 170,
+ 265, 265, 265, 265, 0, 266, 266, 267, 267, 267, 267, 268, 268, 268, 268,
+ 268, 268, 268, 268, 268, 268, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
- 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 0, 0, 0, 0, 0,
+ 170, 170, 170, 170, 170, 0, 0, 0, 0, 0, 244, 244, 244, 244, 244, 244,
244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,
244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,
- 244, 244, 244, 244, 244, 244, 244, 244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
- 170, 170, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
+ 244, 244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, 170, 170, 170, 170,
+ 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 268, 268, 268,
+ 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
+ 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 245, 245, 0,
+ 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 268, 268, 268, 268,
268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
- 268, 268, 268, 245, 245, 0, 267, 267, 267, 267, 267, 267, 267, 267, 267,
- 267, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
+ 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 269, 269,
+ 269, 269, 269, 269, 269, 269, 245, 270, 270, 270, 270, 270, 270, 270,
+ 270, 270, 270, 270, 270, 270, 270, 270, 268, 268, 268, 268, 268, 268,
268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
- 268, 268, 268, 269, 269, 269, 269, 269, 269, 269, 269, 245, 270, 270,
- 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 268,
+ 268, 268, 268, 268, 268, 268, 268, 268, 245, 245, 245, 266, 267, 267,
+ 267, 267, 267, 267, 267, 267, 267, 267, 268, 268, 268, 268, 268, 268,
268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
- 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 245,
- 245, 245, 266, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 268,
268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
+ 268, 268, 268, 268, 268, 270, 270, 270, 270, 270, 270, 270, 270, 270,
+ 270, 270, 270, 270, 270, 270, 268, 268, 268, 268, 268, 268, 268, 268,
+ 268, 268, 268, 268, 245, 245, 245, 245, 268, 268, 268, 268, 268, 268,
268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
- 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 270, 270, 270, 270,
- 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 268, 268, 268,
- 268, 268, 268, 268, 268, 268, 268, 268, 268, 245, 245, 245, 245, 268,
268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
+ 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 0, 268,
268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
- 268, 268, 268, 268, 0, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
+ 268, 268, 268, 268, 268, 268, 245, 245, 245, 245, 268, 268, 268, 268,
268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
- 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 245, 245, 245,
- 245, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
+ 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 245, 245, 268,
268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
- 268, 268, 245, 245, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
- 268, 268, 268, 268, 268, 268, 268, 245, 170, 170, 170, 170, 170, 170,
+ 268, 268, 245, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
@@ -1957,21 +2081,20 @@ static unsigned short index2[] = {
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
- 170, 170, 170, 170, 170, 170, 170, 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26,
+ 170, 170, 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 170, 170, 170, 170, 170, 170, 170,
+ 26, 26, 26, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
- 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
+ 170, 170, 170, 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
- 170, 170, 170, 170, 170, 170, 170, 170, 248, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
+ 170, 170, 170, 170, 170, 170, 170, 248, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
@@ -1979,14 +2102,15 @@ static unsigned short index2[] = {
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
- 170, 170, 0, 0, 0, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,
+ 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
+ 170, 0, 0, 0, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,
244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,
244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,
244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,
- 244, 244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 53, 53, 53, 53, 53,
- 53, 83, 83, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 53, 138, 138,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 53, 53, 53, 53, 53, 53,
+ 83, 83, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 53, 138, 138,
138, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 48, 48, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 47, 44, 47, 44, 47, 44, 47,
@@ -1994,77 +2118,80 @@ static unsigned short index2[] = {
44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47,
44, 47, 48, 81, 82, 82, 82, 138, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
138, 52, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47,
- 44, 47, 44, 47, 44, 47, 44, 47, 0, 0, 0, 0, 0, 0, 0, 81, 48, 48, 48, 48,
+ 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 51, 51, 81, 81, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 173, 173, 173, 173, 173,
- 173, 173, 173, 173, 173, 81, 81, 83, 83, 83, 83, 83, 83, 0, 0, 0, 0, 0,
- 0, 0, 0, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
- 54, 54, 54, 54, 54, 54, 54, 52, 52, 52, 52, 52, 52, 52, 52, 52, 54, 54,
- 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 47, 47, 44, 47,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 173, 173, 173,
+ 173, 173, 173, 173, 173, 173, 173, 81, 81, 83, 83, 83, 83, 83, 83, 0, 0,
+ 0, 0, 0, 0, 0, 0, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
+ 54, 54, 54, 54, 54, 54, 54, 54, 54, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 54, 54, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 47, 47,
44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47,
44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47,
44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47,
- 44, 47, 44, 47, 44, 47, 51, 47, 47, 47, 47, 47, 47, 47, 47, 44, 47, 44,
- 47, 44, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 52, 271, 271, 44, 47, 44,
- 47, 0, 44, 47, 44, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 47, 44,
- 47, 44, 47, 44, 47, 44, 47, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 44, 47, 44, 47, 44, 47, 44, 47, 51, 47, 47, 47, 47, 47, 47, 47, 47, 44,
+ 47, 44, 47, 44, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 52, 271, 271, 44,
+ 47, 44, 47, 48, 44, 47, 44, 47, 47, 47, 44, 47, 44, 47, 44, 47, 44, 47,
+ 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 44, 44, 44, 0, 0, 44,
+ 44, 44, 44, 44, 47, 44, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 51, 47, 48, 48, 48, 48,
- 48, 48, 48, 135, 48, 48, 48, 142, 48, 48, 48, 48, 135, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 139, 139, 135, 135, 139, 26, 26, 26, 26, 0, 0, 0, 0, 148, 148, 148,
- 148, 148, 148, 80, 80, 85, 225, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48,
+ 48, 51, 51, 47, 48, 48, 48, 48, 48, 48, 48, 135, 48, 48, 48, 142, 48, 48,
+ 48, 48, 135, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 139, 139, 135, 135, 139, 26, 26, 26, 26,
+ 0, 0, 0, 0, 148, 148, 148, 148, 148, 148, 80, 80, 85, 225, 0, 0, 0, 0, 0,
+ 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 138,
+ 138, 138, 138, 0, 0, 0, 0, 0, 0, 0, 0, 139, 139, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 138, 138, 138, 138, 0, 0, 0, 0,
- 0, 0, 0, 0, 139, 139, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 139, 139, 139, 139, 139, 139, 139, 139,
+ 139, 139, 139, 139, 139, 139, 139, 139, 142, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 83, 83, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 0, 0, 0, 0, 0,
+ 0, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
+ 81, 48, 48, 48, 48, 48, 48, 83, 83, 83, 48, 83, 48, 0, 0, 144, 144, 144,
+ 144, 144, 144, 144, 144, 144, 144, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
- 139, 139, 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 83, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 0, 0, 0, 0, 0, 0, 81, 81, 81, 81, 81, 81,
- 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 48, 48, 48, 48, 48, 48,
- 83, 83, 83, 48, 0, 0, 0, 0, 144, 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135, 135, 135, 135, 135, 86,
- 86, 86, 83, 83, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 135, 135, 135, 135, 135, 135, 135,
- 135, 135, 135, 135, 139, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 170,
+ 48, 135, 135, 135, 135, 135, 86, 86, 86, 83, 83, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 139, 175, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 83, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
- 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 0,
- 0, 0, 135, 135, 135, 139, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 170, 170, 170, 170, 170, 170, 0, 0, 0, 135, 135, 135, 139, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 145,
- 139, 139, 135, 135, 135, 135, 139, 139, 135, 139, 139, 139, 175, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 0, 53, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 0, 0, 0, 0, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 145, 139, 139, 135, 135, 135, 135, 139,
+ 139, 135, 139, 139, 139, 175, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
+ 83, 83, 0, 53, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 0, 0, 0,
+ 0, 83, 83, 48, 48, 48, 48, 48, 135, 53, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 48, 48, 48, 48, 48,
+ 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 135, 135, 135, 135, 135, 135, 139, 139, 135, 135,
+ 48, 48, 48, 48, 48, 48, 135, 135, 135, 135, 135, 135, 139, 139, 135, 135,
139, 139, 135, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 135, 48, 48,
48, 48, 48, 48, 48, 48, 135, 139, 0, 0, 144, 144, 144, 144, 144, 144,
144, 144, 144, 144, 0, 0, 83, 83, 83, 83, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 53, 48, 48, 48, 48, 48, 48, 80, 80, 80,
- 48, 139, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 139, 135, 139, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 81,
- 48, 81, 81, 86, 48, 48, 81, 81, 48, 48, 48, 48, 48, 81, 81, 48, 81, 48,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 48, 48, 53, 83, 83, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 139, 135,
- 135, 139, 139, 83, 83, 48, 53, 53, 139, 142, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 48, 48, 48, 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 0, 0, 48, 48,
- 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 0,
- 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 81, 48, 81, 81, 86, 48, 48, 81, 81, 48, 48, 48, 48, 48, 81, 81, 48,
+ 81, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 48, 48, 53, 83, 83, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 139, 135, 135, 139, 139, 83, 83, 48, 53, 53, 139, 142, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 0, 0,
+ 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48,
+ 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 0, 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 271,
+ 51, 51, 51, 51, 47, 47, 47, 47, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 139, 139, 135, 139, 139, 135, 139, 139, 83, 139,
142, 0, 0, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 0, 0, 0, 0,
@@ -2159,7 +2286,7 @@ static unsigned short index2[] = {
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
- 131, 131, 131, 131, 131, 131, 195, 279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 131, 131, 131, 131, 131, 131, 279, 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
@@ -2173,12 +2300,12 @@ static unsigned short index2[] = {
0, 0, 0, 0, 0, 0, 0, 0, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
131, 131, 280, 26, 0, 0, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
71, 71, 71, 71, 281, 281, 281, 281, 281, 281, 281, 282, 283, 281, 0, 0,
- 0, 0, 0, 0, 81, 81, 81, 81, 81, 81, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 281,
- 284, 284, 285, 285, 282, 283, 282, 283, 282, 283, 282, 283, 282, 283,
- 282, 283, 282, 283, 282, 283, 247, 247, 282, 283, 281, 281, 281, 281,
- 285, 285, 285, 286, 281, 286, 0, 281, 286, 281, 281, 284, 287, 288, 287,
- 288, 287, 288, 289, 281, 281, 290, 291, 292, 292, 293, 0, 281, 294, 289,
- 281, 0, 0, 0, 0, 131, 131, 131, 118, 131, 0, 131, 131, 131, 131, 131,
+ 0, 0, 0, 0, 81, 81, 81, 81, 81, 81, 81, 86, 86, 86, 86, 86, 86, 86, 81,
+ 81, 281, 284, 284, 285, 285, 282, 283, 282, 283, 282, 283, 282, 283, 282,
+ 283, 282, 283, 282, 283, 282, 283, 247, 247, 282, 283, 281, 281, 281,
+ 281, 285, 285, 285, 286, 281, 286, 0, 281, 286, 281, 281, 284, 287, 288,
+ 287, 288, 287, 288, 289, 281, 281, 290, 291, 292, 292, 293, 0, 281, 294,
+ 289, 281, 0, 0, 0, 0, 131, 131, 131, 118, 131, 0, 131, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
@@ -2188,72 +2315,79 @@ static unsigned short index2[] = {
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
- 131, 131, 131, 131, 0, 0, 174, 0, 295, 295, 296, 297, 296, 295, 295, 298,
- 299, 295, 300, 301, 302, 301, 301, 303, 303, 303, 303, 303, 303, 303,
- 303, 303, 303, 301, 295, 304, 305, 304, 295, 295, 306, 306, 306, 306,
+ 131, 131, 131, 131, 131, 0, 0, 174, 0, 295, 295, 296, 297, 296, 295, 295,
+ 298, 299, 295, 300, 301, 302, 301, 301, 303, 303, 303, 303, 303, 303,
+ 303, 303, 303, 303, 301, 295, 304, 305, 304, 295, 295, 306, 306, 306,
306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
- 306, 306, 306, 306, 306, 306, 306, 306, 298, 295, 299, 307, 308, 307,
- 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
- 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 298, 305,
- 299, 305, 298, 299, 310, 311, 312, 310, 310, 313, 313, 313, 313, 313,
- 313, 313, 313, 313, 313, 314, 313, 313, 313, 313, 313, 313, 313, 313,
+ 306, 306, 306, 306, 306, 306, 306, 306, 306, 298, 295, 299, 307, 308,
+ 307, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
+ 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 298,
+ 305, 299, 305, 298, 299, 310, 311, 312, 310, 310, 313, 313, 313, 313,
+ 313, 313, 313, 313, 313, 313, 314, 313, 313, 313, 313, 313, 313, 313,
313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
- 313, 313, 313, 313, 313, 313, 313, 313, 313, 314, 314, 313, 313, 313,
+ 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 314, 314, 313, 313,
313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
- 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 0,
- 0, 0, 313, 313, 313, 313, 313, 313, 0, 0, 313, 313, 313, 313, 313, 313,
- 0, 0, 313, 313, 313, 313, 313, 313, 0, 0, 313, 313, 313, 0, 0, 0, 297,
- 297, 305, 307, 315, 297, 297, 0, 316, 317, 317, 317, 317, 316, 316, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 318, 318, 318, 26, 30, 0, 0, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48,
+ 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
+ 313, 0, 0, 0, 313, 313, 313, 313, 313, 313, 0, 0, 313, 313, 313, 313,
+ 313, 313, 0, 0, 313, 313, 313, 313, 313, 313, 0, 0, 313, 313, 313, 0, 0,
+ 0, 297, 297, 305, 307, 315, 297, 297, 0, 316, 317, 317, 317, 317, 316,
+ 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 318, 318, 318, 26, 30, 0, 0, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 0, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0,
+ 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 0, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 0, 0, 0, 0, 0, 83, 138, 83, 0, 0, 0, 0, 148, 148, 148, 148, 148, 148,
+ 48, 48, 48, 48, 0, 0, 0, 0, 0, 83, 138, 83, 0, 0, 0, 0, 148, 148, 148,
148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 0, 0, 0, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 319, 319, 319, 319, 319, 319, 319, 319, 319,
+ 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 0,
+ 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 319, 319, 319, 319, 319, 319,
319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
- 319, 319, 153, 153, 153, 153, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 153, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 319, 319, 319, 319, 319, 153, 153, 153, 153, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 153, 153, 26, 0, 0, 0, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80,
+ 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 86, 0, 0,
+ 80, 80, 80, 80, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 320, 320, 320,
+ 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320,
+ 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 0, 0, 0, 0, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 148, 148, 148, 148, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 173, 48, 48, 48, 48, 48, 48, 48, 48, 173, 0, 0,
+ 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 0, 148, 148, 148, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 173, 48,
- 48, 48, 48, 48, 48, 48, 48, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 81, 81, 81, 81, 81, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 0, 83, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 0, 83, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48,
- 48, 83, 173, 173, 173, 173, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48,
+ 48, 48, 83, 173, 173, 173, 173, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
+ 0, 0, 0, 0, 0, 0, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
44, 44, 44, 44, 44, 44, 44, 44, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
@@ -2266,359 +2400,564 @@ static unsigned short index2[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 0, 0, 107, 0, 107,
+ 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 0, 0, 107, 0,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 0, 107, 107, 0, 0, 0, 107, 0, 0, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 0, 107, 107, 0, 0, 0, 107, 0, 0, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 0, 104, 320, 320, 320, 320, 320, 320, 320, 320, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 320, 320, 320, 320, 320,
- 320, 0, 0, 0, 138, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 0, 104, 321, 321, 321, 321, 321, 321, 321, 321, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 322, 322, 321, 321, 321, 321, 321,
+ 321, 321, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 0, 0, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 107, 107, 107, 107, 107, 0, 0, 0, 0, 0, 0, 0, 0, 321, 321, 321, 321, 321,
+ 321, 321, 321, 321, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 0, 107, 107, 0, 0, 0, 0, 0, 321,
+ 321, 321, 321, 321, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 321, 321,
+ 321, 321, 321, 321, 0, 0, 0, 138, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 0, 0, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0,
- 0, 0, 0, 0, 0, 107, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 107, 135, 135, 135, 0, 135, 135, 0, 0, 0, 0, 0, 135, 86, 135, 81, 107,
- 107, 107, 107, 0, 107, 107, 107, 0, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 0, 0, 0, 0, 321, 321, 107, 107, 321, 321, 321, 321, 321,
+ 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 0, 0, 321, 321,
+ 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 321,
+ 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 321,
+ 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 321,
+ 321, 321, 107, 135, 135, 135, 0, 135, 135, 0, 0, 0, 0, 0, 135, 86, 135,
+ 81, 107, 107, 107, 107, 0, 107, 107, 107, 0, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 0, 0, 0, 0, 81, 176, 86, 0, 0, 0, 0, 142,
- 320, 320, 320, 320, 320, 320, 320, 320, 0, 0, 0, 0, 0, 0, 0, 0, 104, 104,
- 104, 104, 104, 104, 104, 104, 104, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 0, 0, 0, 0, 81, 176, 86, 0, 0, 0,
+ 0, 142, 321, 321, 321, 321, 321, 321, 321, 321, 0, 0, 0, 0, 0, 0, 0, 0,
+ 104, 104, 104, 104, 104, 104, 104, 104, 104, 0, 0, 0, 0, 0, 0, 0, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 320, 320,
- 104, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 321, 321, 104, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 0, 0,
- 138, 138, 138, 138, 138, 138, 138, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 321, 321, 321, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107,
+ 107, 107, 107, 107, 107, 322, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 81, 86, 0, 0, 0, 0, 321, 321, 321, 321,
+ 321, 104, 104, 104, 104, 104, 104, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 0, 0, 320, 320, 320, 320, 320, 320, 320, 320, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 0, 0, 0, 0, 0, 320, 320, 320, 320, 320, 320, 320, 320, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 0, 0, 138, 138,
+ 138, 138, 138, 138, 138, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 0,
+ 321, 321, 321, 321, 321, 321, 321, 321, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 0, 0,
+ 0, 0, 321, 321, 321, 321, 321, 321, 321, 321, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 0, 0,
+ 0, 0, 0, 0, 104, 104, 104, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 321,
+ 321, 321, 321, 321, 321, 321, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
+ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
+ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
+ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
+ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
+ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
+ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 0, 0, 0,
+ 0, 0, 0, 0, 321, 321, 321, 321, 321, 321, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 321, 321, 321, 321, 321, 321, 321, 321, 321, 321,
- 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 321,
- 321, 321, 321, 321, 321, 321, 321, 0, 139, 135, 139, 48, 48, 48, 48, 48,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 325, 325, 325, 325, 325, 325,
+ 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325,
+ 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 0, 139, 135, 139,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135, 135, 135, 135, 135,
- 135, 135, 135, 135, 135, 135, 135, 135, 135, 142, 83, 83, 83, 83, 83, 83,
- 83, 0, 0, 0, 0, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153,
- 153, 153, 153, 153, 153, 153, 153, 153, 153, 144, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 135, 135, 139, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 140, 48, 140, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 140, 48, 48, 48, 48, 139, 139, 139, 135,
- 135, 135, 135, 139, 139, 142, 141, 83, 83, 188, 83, 83, 83, 83, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0,
- 0, 0, 0, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 0, 0, 0, 0, 0,
- 0, 81, 81, 81, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 142, 83,
+ 83, 83, 83, 83, 83, 83, 0, 0, 0, 0, 153, 153, 153, 153, 153, 153, 153,
+ 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 144,
+ 144, 144, 144, 144, 144, 144, 144, 144, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 142, 135, 135, 139, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 140, 48, 140, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 140, 48, 48, 48, 48,
+ 139, 139, 139, 135, 135, 135, 135, 139, 139, 142, 141, 83, 83, 188, 83,
+ 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 149, 135, 135, 135, 135, 139, 135, 150, 150, 135, 135,
- 135, 142, 142, 0, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 83,
- 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, 135, 139, 48, 48,
+ 48, 48, 0, 0, 0, 0, 0, 0, 0, 144, 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 0, 0, 0, 0, 0, 0, 81, 81, 81, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 149, 135, 135, 135, 135, 139, 135,
+ 150, 150, 135, 135, 135, 142, 142, 0, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 144, 83, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 145, 83,
+ 83, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, 135, 139, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 139, 139, 139, 135, 135, 135,
- 135, 135, 135, 135, 135, 135, 139, 175, 48, 48, 48, 48, 83, 83, 83, 83,
- 0, 0, 0, 0, 0, 0, 0, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 0,
+ 48, 48, 48, 48, 48, 48, 139, 139, 139, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 139, 175, 48, 48, 48, 48, 83, 83, 83, 83, 83, 145, 135, 135,
+ 83, 0, 0, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 48, 83, 48,
+ 83, 83, 83, 0, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
+ 148, 148, 148, 148, 148, 148, 148, 148, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 139, 139, 139, 135, 135, 135, 139,
+ 139, 135, 175, 145, 135, 83, 83, 83, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 0, 48,
+ 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 83, 0, 0, 0, 0, 0, 0, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135,
- 139, 135, 139, 139, 135, 135, 135, 135, 135, 135, 175, 145, 0, 0, 0, 0,
- 0, 0, 0, 0, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 0, 0, 0, 0,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135, 139, 139, 139, 135, 135,
+ 135, 135, 135, 135, 145, 142, 0, 0, 0, 0, 0, 144, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 0, 0, 0, 0, 0, 0, 135, 135, 139, 139, 0, 48, 48,
+ 48, 48, 48, 48, 48, 48, 0, 0, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48,
+ 48, 48, 48, 48, 48, 0, 48, 48, 0, 48, 48, 48, 48, 48, 0, 0, 145, 48, 146,
+ 139, 135, 139, 139, 139, 139, 0, 0, 139, 139, 0, 0, 147, 147, 175, 0, 0,
+ 48, 0, 0, 0, 0, 0, 0, 146, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 139, 139,
+ 0, 0, 81, 81, 81, 81, 81, 81, 81, 0, 0, 0, 81, 81, 81, 81, 81, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 146, 139, 139, 135, 135, 135, 135, 135, 135, 139, 149, 147, 147, 146,
+ 147, 135, 135, 139, 142, 145, 48, 48, 83, 48, 0, 0, 0, 0, 0, 0, 0, 0,
+ 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 146, 139,
+ 139, 135, 135, 135, 135, 0, 0, 139, 139, 147, 147, 135, 135, 139, 142,
+ 145, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
+ 83, 83, 83, 83, 83, 83, 48, 48, 48, 48, 135, 135, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 139, 139, 139, 135,
+ 135, 135, 135, 135, 135, 135, 135, 139, 139, 135, 139, 142, 135, 83, 83,
+ 83, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, 144, 144, 144, 144, 144,
+ 144, 144, 144, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 135, 139, 135, 139, 139, 135, 135, 135, 135, 135, 135,
+ 175, 145, 0, 0, 0, 0, 0, 0, 0, 0, 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 135,
+ 135, 135, 139, 139, 135, 135, 135, 135, 139, 135, 135, 135, 135, 142, 0,
+ 0, 0, 0, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 148, 148, 83,
+ 83, 83, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
+ 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 144, 148, 148, 148, 148, 148, 148, 148, 148,
+ 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173,
+ 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, 173, 173, 173, 173, 173, 173, 173,
+ 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
- 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 173, 173, 173, 173, 173, 0, 83, 83, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0,
+ 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 144,
+ 144, 144, 144, 144, 144, 144, 144, 144, 144, 0, 0, 0, 0, 83, 83, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 176, 176, 176, 176, 176,
+ 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 81, 81, 81, 81, 81, 81, 81, 83, 83, 83, 83, 83, 80, 80, 80, 80,
+ 53, 53, 53, 53, 83, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 144, 0, 148, 148, 148, 148, 148, 148, 148, 0,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 139, 139, 139, 139, 139,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 48, 139, 139, 139, 139, 139, 139, 139, 139, 139,
139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
- 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, 135, 135, 135, 53, 53, 53,
- 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 139, 139, 139, 139, 139, 139, 139, 139, 139, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 135, 135, 135, 135, 53, 53, 53, 53, 53, 53, 53, 53,
+ 53, 53, 53, 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, 170, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 170, 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0,
+ 0, 80, 135, 176, 83, 174, 174, 174, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
+ 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
+ 80, 80, 80, 80, 80, 80, 80, 80, 80, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 322, 322, 322, 322, 322, 322, 322, 323, 323, 176, 176, 176, 80, 80, 80,
- 324, 323, 323, 323, 323, 323, 174, 174, 174, 174, 174, 174, 174, 174, 86,
- 86, 86, 86, 86, 86, 86, 86, 80, 80, 81, 81, 81, 81, 81, 86, 86, 80, 80,
+ 80, 80, 80, 80, 80, 80, 80, 80, 80, 326, 326, 326, 326, 326, 326, 326,
+ 327, 327, 176, 176, 176, 80, 80, 80, 328, 327, 327, 327, 327, 327, 174,
+ 174, 174, 174, 174, 174, 174, 174, 86, 86, 86, 86, 86, 86, 86, 86, 80,
+ 80, 81, 81, 81, 81, 81, 86, 86, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 81, 81, 81, 81, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 322, 322, 322, 322, 322, 322, 80, 80,
+ 80, 80, 81, 81, 81, 81, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
+ 80, 326, 326, 326, 326, 326, 326, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26,
+ 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 81, 81, 81, 26, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 26, 26, 26, 26, 26, 81, 81, 81, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 35, 35, 35, 35, 35, 35, 35, 0,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- 49, 49, 49, 49, 49, 49, 49, 49, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 49, 0,
- 49, 49, 0, 0, 49, 0, 0, 49, 49, 0, 0, 49, 49, 49, 49, 0, 49, 49, 49, 49,
- 49, 49, 49, 49, 35, 35, 35, 35, 0, 35, 0, 35, 35, 35, 35, 35, 35, 35, 0,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49,
- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- 49, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 49, 49, 0, 49, 49, 49, 49, 0, 0, 49,
- 49, 49, 49, 49, 49, 49, 49, 0, 49, 49, 49, 49, 49, 49, 49, 0, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 49, 49, 0, 49, 49, 49, 49, 0, 49, 49, 49, 49, 49, 0,
- 49, 0, 0, 0, 49, 49, 49, 49, 49, 49, 49, 0, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- 49, 49, 49, 49, 49, 49, 49, 49, 49, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 49,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
+ 148, 148, 148, 148, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- 49, 49, 49, 49, 49, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
+ 49, 49, 49, 49, 49, 35, 35, 35, 35, 35, 35, 35, 0, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49,
- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- 49, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 49, 0, 49, 49, 0, 0, 49, 0,
+ 0, 49, 49, 0, 0, 49, 49, 49, 49, 0, 49, 49, 49, 49, 49, 49, 49, 49, 35,
+ 35, 35, 35, 0, 35, 0, 35, 35, 35, 35, 35, 35, 35, 0, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 0, 0, 49, 49, 49, 49, 49, 49, 49, 49,
- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 325,
+ 35, 35, 35, 35, 49, 49, 0, 49, 49, 49, 49, 0, 0, 49, 49, 49, 49, 49, 49,
+ 49, 49, 0, 49, 49, 49, 49, 49, 49, 49, 0, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 226, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49,
+ 49, 49, 0, 49, 49, 49, 49, 0, 49, 49, 49, 49, 49, 0, 49, 0, 0, 0, 49, 49,
+ 49, 49, 49, 49, 49, 0, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- 49, 49, 49, 325, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 226, 35, 35, 35, 35, 35, 35,
+ 49, 49, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- 49, 49, 49, 49, 49, 49, 49, 325, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 226, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 325, 35, 35, 35, 35, 35, 35,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 226, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 325, 35, 35,
+ 35, 35, 35, 35, 0, 0, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 329, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 226, 35, 35, 35, 35, 35, 35, 49, 35, 0, 0, 326, 326,
- 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
- 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
- 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
- 326, 326, 326, 326, 326, 326, 131, 131, 131, 131, 0, 131, 131, 131, 131,
- 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
- 131, 131, 131, 131, 131, 131, 131, 131, 131, 0, 131, 131, 0, 131, 0, 0,
- 131, 0, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 0, 131, 131,
- 131, 131, 0, 131, 0, 131, 0, 0, 0, 0, 0, 0, 131, 0, 0, 0, 0, 131, 0, 131,
- 0, 131, 0, 131, 131, 131, 0, 131, 131, 0, 131, 0, 0, 131, 0, 131, 0, 131,
- 0, 131, 0, 131, 0, 131, 131, 0, 131, 0, 0, 131, 131, 131, 131, 0, 131,
- 131, 131, 131, 131, 131, 131, 0, 131, 131, 131, 131, 0, 131, 131, 131,
- 131, 0, 131, 0, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 0, 131,
- 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
- 131, 131, 0, 0, 0, 0, 0, 131, 131, 131, 0, 131, 131, 131, 131, 131, 0,
- 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
- 131, 131, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 35, 35, 226, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 329, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 226, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 329, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 226, 35, 35, 35, 35, 35, 35, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 329, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 226, 35, 35, 35,
+ 35, 35, 35, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 329, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
+ 226, 35, 35, 35, 35, 35, 35, 49, 35, 0, 0, 330, 330, 330, 330, 330, 330,
+ 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330,
+ 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330,
+ 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330,
+ 330, 330, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 80, 80, 80, 80, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 80, 80, 80,
+ 80, 80, 80, 80, 80, 135, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
+ 80, 80, 135, 80, 80, 83, 83, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 135, 135, 135, 135, 135, 0, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0,
+ 0, 321, 321, 321, 321, 321, 321, 321, 321, 321, 86, 86, 86, 86, 86, 86,
+ 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, 131, 131, 131,
+ 0, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
+ 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 0, 131,
+ 131, 0, 131, 0, 0, 131, 0, 131, 131, 131, 131, 131, 131, 131, 131, 131,
+ 131, 0, 131, 131, 131, 131, 0, 131, 0, 131, 0, 0, 0, 0, 0, 0, 131, 0, 0,
+ 0, 0, 131, 0, 131, 0, 131, 0, 131, 131, 131, 0, 131, 131, 0, 131, 0, 0,
+ 131, 0, 131, 0, 131, 0, 131, 0, 131, 0, 131, 131, 0, 131, 0, 0, 131, 131,
+ 131, 131, 0, 131, 131, 131, 131, 131, 131, 131, 0, 131, 131, 131, 131, 0,
+ 131, 131, 131, 131, 0, 131, 0, 131, 131, 131, 131, 131, 131, 131, 131,
+ 131, 131, 0, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
+ 131, 131, 131, 131, 131, 0, 0, 0, 0, 0, 131, 131, 131, 0, 131, 131, 131,
+ 131, 131, 0, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
+ 131, 131, 131, 131, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 0, 0, 0, 0, 0, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
+ 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 153, 153, 0, 0, 0, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
- 241, 241, 241, 241, 241, 241, 327, 0, 241, 241, 241, 241, 241, 241, 241,
+ 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 331, 0,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
- 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 328, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 222, 222, 0, 0, 0, 0, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 241, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
+ 241, 241, 241, 241, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
+ 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
+ 332, 332, 222, 222, 0, 0, 0, 0, 332, 332, 332, 332, 332, 332, 332, 332,
+ 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
+ 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 241, 332, 332, 332,
+ 332, 332, 332, 332, 332, 332, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 268, 268, 268, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80,
+ 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
+ 268, 268, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 268, 268, 268,
268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
- 268, 268, 268, 268, 0, 0, 0, 0, 0, 268, 268, 268, 268, 268, 268, 268,
- 268, 268, 0, 0, 0, 0, 0, 0, 0, 268, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 0, 0, 0, 0, 0,
+ 268, 268, 268, 268, 268, 268, 268, 268, 268, 0, 0, 0, 0, 0, 0, 0, 268,
+ 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26,
- 26, 26, 26, 26, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0,
- 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 0, 26, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 54, 54,
+ 54, 54, 54, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 0, 26, 26, 26, 26, 0, 0, 0, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 0, 0, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 26, 26, 26, 26, 26, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 0, 0, 0, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
+ 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
- 170, 170, 170, 170, 170, 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
+ 170, 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
- 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
+ 170, 170, 170, 170, 170, 170, 170, 170, 170, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
- 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
+ 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
+ 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 0, 0, 170, 170,
+ 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
+ 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
+ 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
+ 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
+ 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
+ 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
+ 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
+ 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
+ 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
+ 170, 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -3146,359 +3485,355 @@ static unsigned int decomp_data[] = {
50, 49, 26085, 770, 50, 50, 26085, 770, 50, 51, 26085, 770, 50, 52,
26085, 770, 50, 53, 26085, 770, 50, 54, 26085, 770, 50, 55, 26085, 770,
50, 56, 26085, 770, 50, 57, 26085, 770, 51, 48, 26085, 770, 51, 49,
- 26085, 778, 103, 97, 108, 259, 42863, 259, 294, 259, 339, 256, 35912,
- 256, 26356, 256, 36554, 256, 36040, 256, 28369, 256, 20018, 256, 21477,
- 256, 40860, 256, 40860, 256, 22865, 256, 37329, 256, 21895, 256, 22856,
- 256, 25078, 256, 30313, 256, 32645, 256, 34367, 256, 34746, 256, 35064,
- 256, 37007, 256, 27138, 256, 27931, 256, 28889, 256, 29662, 256, 33853,
- 256, 37226, 256, 39409, 256, 20098, 256, 21365, 256, 27396, 256, 29211,
- 256, 34349, 256, 40478, 256, 23888, 256, 28651, 256, 34253, 256, 35172,
- 256, 25289, 256, 33240, 256, 34847, 256, 24266, 256, 26391, 256, 28010,
- 256, 29436, 256, 37070, 256, 20358, 256, 20919, 256, 21214, 256, 25796,
- 256, 27347, 256, 29200, 256, 30439, 256, 32769, 256, 34310, 256, 34396,
- 256, 36335, 256, 38706, 256, 39791, 256, 40442, 256, 30860, 256, 31103,
- 256, 32160, 256, 33737, 256, 37636, 256, 40575, 256, 35542, 256, 22751,
- 256, 24324, 256, 31840, 256, 32894, 256, 29282, 256, 30922, 256, 36034,
- 256, 38647, 256, 22744, 256, 23650, 256, 27155, 256, 28122, 256, 28431,
- 256, 32047, 256, 32311, 256, 38475, 256, 21202, 256, 32907, 256, 20956,
- 256, 20940, 256, 31260, 256, 32190, 256, 33777, 256, 38517, 256, 35712,
- 256, 25295, 256, 27138, 256, 35582, 256, 20025, 256, 23527, 256, 24594,
- 256, 29575, 256, 30064, 256, 21271, 256, 30971, 256, 20415, 256, 24489,
- 256, 19981, 256, 27852, 256, 25976, 256, 32034, 256, 21443, 256, 22622,
- 256, 30465, 256, 33865, 256, 35498, 256, 27578, 256, 36784, 256, 27784,
- 256, 25342, 256, 33509, 256, 25504, 256, 30053, 256, 20142, 256, 20841,
- 256, 20937, 256, 26753, 256, 31975, 256, 33391, 256, 35538, 256, 37327,
- 256, 21237, 256, 21570, 256, 22899, 256, 24300, 256, 26053, 256, 28670,
- 256, 31018, 256, 38317, 256, 39530, 256, 40599, 256, 40654, 256, 21147,
- 256, 26310, 256, 27511, 256, 36706, 256, 24180, 256, 24976, 256, 25088,
- 256, 25754, 256, 28451, 256, 29001, 256, 29833, 256, 31178, 256, 32244,
- 256, 32879, 256, 36646, 256, 34030, 256, 36899, 256, 37706, 256, 21015,
- 256, 21155, 256, 21693, 256, 28872, 256, 35010, 256, 35498, 256, 24265,
- 256, 24565, 256, 25467, 256, 27566, 256, 31806, 256, 29557, 256, 20196,
- 256, 22265, 256, 23527, 256, 23994, 256, 24604, 256, 29618, 256, 29801,
- 256, 32666, 256, 32838, 256, 37428, 256, 38646, 256, 38728, 256, 38936,
- 256, 20363, 256, 31150, 256, 37300, 256, 38584, 256, 24801, 256, 20102,
- 256, 20698, 256, 23534, 256, 23615, 256, 26009, 256, 27138, 256, 29134,
- 256, 30274, 256, 34044, 256, 36988, 256, 40845, 256, 26248, 256, 38446,
- 256, 21129, 256, 26491, 256, 26611, 256, 27969, 256, 28316, 256, 29705,
- 256, 30041, 256, 30827, 256, 32016, 256, 39006, 256, 20845, 256, 25134,
- 256, 38520, 256, 20523, 256, 23833, 256, 28138, 256, 36650, 256, 24459,
- 256, 24900, 256, 26647, 256, 29575, 256, 38534, 256, 21033, 256, 21519,
- 256, 23653, 256, 26131, 256, 26446, 256, 26792, 256, 27877, 256, 29702,
- 256, 30178, 256, 32633, 256, 35023, 256, 35041, 256, 37324, 256, 38626,
- 256, 21311, 256, 28346, 256, 21533, 256, 29136, 256, 29848, 256, 34298,
- 256, 38563, 256, 40023, 256, 40607, 256, 26519, 256, 28107, 256, 33256,
- 256, 31435, 256, 31520, 256, 31890, 256, 29376, 256, 28825, 256, 35672,
- 256, 20160, 256, 33590, 256, 21050, 256, 20999, 256, 24230, 256, 25299,
- 256, 31958, 256, 23429, 256, 27934, 256, 26292, 256, 36667, 256, 34892,
- 256, 38477, 256, 35211, 256, 24275, 256, 20800, 256, 21952, 256, 22618,
- 256, 26228, 256, 20958, 256, 29482, 256, 30410, 256, 31036, 256, 31070,
- 256, 31077, 256, 31119, 256, 38742, 256, 31934, 256, 32701, 256, 34322,
- 256, 35576, 256, 36920, 256, 37117, 256, 39151, 256, 39164, 256, 39208,
- 256, 40372, 256, 37086, 256, 38583, 256, 20398, 256, 20711, 256, 20813,
- 256, 21193, 256, 21220, 256, 21329, 256, 21917, 256, 22022, 256, 22120,
- 256, 22592, 256, 22696, 256, 23652, 256, 23662, 256, 24724, 256, 24936,
- 256, 24974, 256, 25074, 256, 25935, 256, 26082, 256, 26257, 256, 26757,
- 256, 28023, 256, 28186, 256, 28450, 256, 29038, 256, 29227, 256, 29730,
- 256, 30865, 256, 31038, 256, 31049, 256, 31048, 256, 31056, 256, 31062,
- 256, 31069, 256, 31117, 256, 31118, 256, 31296, 256, 31361, 256, 31680,
- 256, 32244, 256, 32265, 256, 32321, 256, 32626, 256, 32773, 256, 33261,
- 256, 33401, 256, 33401, 256, 33879, 256, 35088, 256, 35222, 256, 35585,
- 256, 35641, 256, 36051, 256, 36104, 256, 36790, 256, 36920, 256, 38627,
- 256, 38911, 256, 38971, 256, 24693, 256, 148206, 256, 33304, 256, 20006,
- 256, 20917, 256, 20840, 256, 20352, 256, 20805, 256, 20864, 256, 21191,
- 256, 21242, 256, 21917, 256, 21845, 256, 21913, 256, 21986, 256, 22618,
- 256, 22707, 256, 22852, 256, 22868, 256, 23138, 256, 23336, 256, 24274,
- 256, 24281, 256, 24425, 256, 24493, 256, 24792, 256, 24910, 256, 24840,
- 256, 24974, 256, 24928, 256, 25074, 256, 25140, 256, 25540, 256, 25628,
- 256, 25682, 256, 25942, 256, 26228, 256, 26391, 256, 26395, 256, 26454,
- 256, 27513, 256, 27578, 256, 27969, 256, 28379, 256, 28363, 256, 28450,
- 256, 28702, 256, 29038, 256, 30631, 256, 29237, 256, 29359, 256, 29482,
- 256, 29809, 256, 29958, 256, 30011, 256, 30237, 256, 30239, 256, 30410,
- 256, 30427, 256, 30452, 256, 30538, 256, 30528, 256, 30924, 256, 31409,
- 256, 31680, 256, 31867, 256, 32091, 256, 32244, 256, 32574, 256, 32773,
- 256, 33618, 256, 33775, 256, 34681, 256, 35137, 256, 35206, 256, 35222,
- 256, 35519, 256, 35576, 256, 35531, 256, 35585, 256, 35582, 256, 35565,
- 256, 35641, 256, 35722, 256, 36104, 256, 36664, 256, 36978, 256, 37273,
- 256, 37494, 256, 38524, 256, 38627, 256, 38742, 256, 38875, 256, 38911,
- 256, 38923, 256, 38971, 256, 39698, 256, 40860, 256, 141386, 256, 141380,
- 256, 144341, 256, 15261, 256, 16408, 256, 16441, 256, 152137, 256,
- 154832, 256, 163539, 256, 40771, 256, 40846, 514, 102, 102, 514, 102,
- 105, 514, 102, 108, 770, 102, 102, 105, 770, 102, 102, 108, 514, 383,
- 116, 514, 115, 116, 514, 1396, 1398, 514, 1396, 1381, 514, 1396, 1387,
- 514, 1406, 1398, 514, 1396, 1389, 512, 1497, 1460, 512, 1522, 1463, 262,
- 1506, 262, 1488, 262, 1491, 262, 1492, 262, 1499, 262, 1500, 262, 1501,
- 262, 1512, 262, 1514, 262, 43, 512, 1513, 1473, 512, 1513, 1474, 512,
- 64329, 1473, 512, 64329, 1474, 512, 1488, 1463, 512, 1488, 1464, 512,
- 1488, 1468, 512, 1489, 1468, 512, 1490, 1468, 512, 1491, 1468, 512, 1492,
- 1468, 512, 1493, 1468, 512, 1494, 1468, 512, 1496, 1468, 512, 1497, 1468,
- 512, 1498, 1468, 512, 1499, 1468, 512, 1500, 1468, 512, 1502, 1468, 512,
- 1504, 1468, 512, 1505, 1468, 512, 1507, 1468, 512, 1508, 1468, 512, 1510,
- 1468, 512, 1511, 1468, 512, 1512, 1468, 512, 1513, 1468, 512, 1514, 1468,
- 512, 1493, 1465, 512, 1489, 1471, 512, 1499, 1471, 512, 1508, 1471, 514,
- 1488, 1500, 267, 1649, 268, 1649, 267, 1659, 268, 1659, 269, 1659, 270,
- 1659, 267, 1662, 268, 1662, 269, 1662, 270, 1662, 267, 1664, 268, 1664,
- 269, 1664, 270, 1664, 267, 1658, 268, 1658, 269, 1658, 270, 1658, 267,
- 1663, 268, 1663, 269, 1663, 270, 1663, 267, 1657, 268, 1657, 269, 1657,
- 270, 1657, 267, 1700, 268, 1700, 269, 1700, 270, 1700, 267, 1702, 268,
- 1702, 269, 1702, 270, 1702, 267, 1668, 268, 1668, 269, 1668, 270, 1668,
- 267, 1667, 268, 1667, 269, 1667, 270, 1667, 267, 1670, 268, 1670, 269,
- 1670, 270, 1670, 267, 1671, 268, 1671, 269, 1671, 270, 1671, 267, 1677,
- 268, 1677, 267, 1676, 268, 1676, 267, 1678, 268, 1678, 267, 1672, 268,
- 1672, 267, 1688, 268, 1688, 267, 1681, 268, 1681, 267, 1705, 268, 1705,
- 269, 1705, 270, 1705, 267, 1711, 268, 1711, 269, 1711, 270, 1711, 267,
- 1715, 268, 1715, 269, 1715, 270, 1715, 267, 1713, 268, 1713, 269, 1713,
- 270, 1713, 267, 1722, 268, 1722, 267, 1723, 268, 1723, 269, 1723, 270,
- 1723, 267, 1728, 268, 1728, 267, 1729, 268, 1729, 269, 1729, 270, 1729,
- 267, 1726, 268, 1726, 269, 1726, 270, 1726, 267, 1746, 268, 1746, 267,
- 1747, 268, 1747, 267, 1709, 268, 1709, 269, 1709, 270, 1709, 267, 1735,
- 268, 1735, 267, 1734, 268, 1734, 267, 1736, 268, 1736, 267, 1655, 267,
- 1739, 268, 1739, 267, 1733, 268, 1733, 267, 1737, 268, 1737, 267, 1744,
- 268, 1744, 269, 1744, 270, 1744, 269, 1609, 270, 1609, 523, 1574, 1575,
- 524, 1574, 1575, 523, 1574, 1749, 524, 1574, 1749, 523, 1574, 1608, 524,
- 1574, 1608, 523, 1574, 1735, 524, 1574, 1735, 523, 1574, 1734, 524, 1574,
- 1734, 523, 1574, 1736, 524, 1574, 1736, 523, 1574, 1744, 524, 1574, 1744,
- 525, 1574, 1744, 523, 1574, 1609, 524, 1574, 1609, 525, 1574, 1609, 267,
- 1740, 268, 1740, 269, 1740, 270, 1740, 523, 1574, 1580, 523, 1574, 1581,
- 523, 1574, 1605, 523, 1574, 1609, 523, 1574, 1610, 523, 1576, 1580, 523,
- 1576, 1581, 523, 1576, 1582, 523, 1576, 1605, 523, 1576, 1609, 523, 1576,
- 1610, 523, 1578, 1580, 523, 1578, 1581, 523, 1578, 1582, 523, 1578, 1605,
- 523, 1578, 1609, 523, 1578, 1610, 523, 1579, 1580, 523, 1579, 1605, 523,
- 1579, 1609, 523, 1579, 1610, 523, 1580, 1581, 523, 1580, 1605, 523, 1581,
- 1580, 523, 1581, 1605, 523, 1582, 1580, 523, 1582, 1581, 523, 1582, 1605,
- 523, 1587, 1580, 523, 1587, 1581, 523, 1587, 1582, 523, 1587, 1605, 523,
- 1589, 1581, 523, 1589, 1605, 523, 1590, 1580, 523, 1590, 1581, 523, 1590,
- 1582, 523, 1590, 1605, 523, 1591, 1581, 523, 1591, 1605, 523, 1592, 1605,
- 523, 1593, 1580, 523, 1593, 1605, 523, 1594, 1580, 523, 1594, 1605, 523,
- 1601, 1580, 523, 1601, 1581, 523, 1601, 1582, 523, 1601, 1605, 523, 1601,
- 1609, 523, 1601, 1610, 523, 1602, 1581, 523, 1602, 1605, 523, 1602, 1609,
- 523, 1602, 1610, 523, 1603, 1575, 523, 1603, 1580, 523, 1603, 1581, 523,
- 1603, 1582, 523, 1603, 1604, 523, 1603, 1605, 523, 1603, 1609, 523, 1603,
- 1610, 523, 1604, 1580, 523, 1604, 1581, 523, 1604, 1582, 523, 1604, 1605,
- 523, 1604, 1609, 523, 1604, 1610, 523, 1605, 1580, 523, 1605, 1581, 523,
- 1605, 1582, 523, 1605, 1605, 523, 1605, 1609, 523, 1605, 1610, 523, 1606,
- 1580, 523, 1606, 1581, 523, 1606, 1582, 523, 1606, 1605, 523, 1606, 1609,
- 523, 1606, 1610, 523, 1607, 1580, 523, 1607, 1605, 523, 1607, 1609, 523,
- 1607, 1610, 523, 1610, 1580, 523, 1610, 1581, 523, 1610, 1582, 523, 1610,
- 1605, 523, 1610, 1609, 523, 1610, 1610, 523, 1584, 1648, 523, 1585, 1648,
- 523, 1609, 1648, 779, 32, 1612, 1617, 779, 32, 1613, 1617, 779, 32, 1614,
- 1617, 779, 32, 1615, 1617, 779, 32, 1616, 1617, 779, 32, 1617, 1648, 524,
- 1574, 1585, 524, 1574, 1586, 524, 1574, 1605, 524, 1574, 1606, 524, 1574,
- 1609, 524, 1574, 1610, 524, 1576, 1585, 524, 1576, 1586, 524, 1576, 1605,
- 524, 1576, 1606, 524, 1576, 1609, 524, 1576, 1610, 524, 1578, 1585, 524,
- 1578, 1586, 524, 1578, 1605, 524, 1578, 1606, 524, 1578, 1609, 524, 1578,
- 1610, 524, 1579, 1585, 524, 1579, 1586, 524, 1579, 1605, 524, 1579, 1606,
- 524, 1579, 1609, 524, 1579, 1610, 524, 1601, 1609, 524, 1601, 1610, 524,
- 1602, 1609, 524, 1602, 1610, 524, 1603, 1575, 524, 1603, 1604, 524, 1603,
- 1605, 524, 1603, 1609, 524, 1603, 1610, 524, 1604, 1605, 524, 1604, 1609,
- 524, 1604, 1610, 524, 1605, 1575, 524, 1605, 1605, 524, 1606, 1585, 524,
- 1606, 1586, 524, 1606, 1605, 524, 1606, 1606, 524, 1606, 1609, 524, 1606,
- 1610, 524, 1609, 1648, 524, 1610, 1585, 524, 1610, 1586, 524, 1610, 1605,
- 524, 1610, 1606, 524, 1610, 1609, 524, 1610, 1610, 525, 1574, 1580, 525,
- 1574, 1581, 525, 1574, 1582, 525, 1574, 1605, 525, 1574, 1607, 525, 1576,
- 1580, 525, 1576, 1581, 525, 1576, 1582, 525, 1576, 1605, 525, 1576, 1607,
- 525, 1578, 1580, 525, 1578, 1581, 525, 1578, 1582, 525, 1578, 1605, 525,
- 1578, 1607, 525, 1579, 1605, 525, 1580, 1581, 525, 1580, 1605, 525, 1581,
- 1580, 525, 1581, 1605, 525, 1582, 1580, 525, 1582, 1605, 525, 1587, 1580,
- 525, 1587, 1581, 525, 1587, 1582, 525, 1587, 1605, 525, 1589, 1581, 525,
- 1589, 1582, 525, 1589, 1605, 525, 1590, 1580, 525, 1590, 1581, 525, 1590,
- 1582, 525, 1590, 1605, 525, 1591, 1581, 525, 1592, 1605, 525, 1593, 1580,
- 525, 1593, 1605, 525, 1594, 1580, 525, 1594, 1605, 525, 1601, 1580, 525,
- 1601, 1581, 525, 1601, 1582, 525, 1601, 1605, 525, 1602, 1581, 525, 1602,
- 1605, 525, 1603, 1580, 525, 1603, 1581, 525, 1603, 1582, 525, 1603, 1604,
- 525, 1603, 1605, 525, 1604, 1580, 525, 1604, 1581, 525, 1604, 1582, 525,
- 1604, 1605, 525, 1604, 1607, 525, 1605, 1580, 525, 1605, 1581, 525, 1605,
- 1582, 525, 1605, 1605, 525, 1606, 1580, 525, 1606, 1581, 525, 1606, 1582,
- 525, 1606, 1605, 525, 1606, 1607, 525, 1607, 1580, 525, 1607, 1605, 525,
- 1607, 1648, 525, 1610, 1580, 525, 1610, 1581, 525, 1610, 1582, 525, 1610,
- 1605, 525, 1610, 1607, 526, 1574, 1605, 526, 1574, 1607, 526, 1576, 1605,
- 526, 1576, 1607, 526, 1578, 1605, 526, 1578, 1607, 526, 1579, 1605, 526,
- 1579, 1607, 526, 1587, 1605, 526, 1587, 1607, 526, 1588, 1605, 526, 1588,
- 1607, 526, 1603, 1604, 526, 1603, 1605, 526, 1604, 1605, 526, 1606, 1605,
- 526, 1606, 1607, 526, 1610, 1605, 526, 1610, 1607, 782, 1600, 1614, 1617,
- 782, 1600, 1615, 1617, 782, 1600, 1616, 1617, 523, 1591, 1609, 523, 1591,
- 1610, 523, 1593, 1609, 523, 1593, 1610, 523, 1594, 1609, 523, 1594, 1610,
- 523, 1587, 1609, 523, 1587, 1610, 523, 1588, 1609, 523, 1588, 1610, 523,
- 1581, 1609, 523, 1581, 1610, 523, 1580, 1609, 523, 1580, 1610, 523, 1582,
- 1609, 523, 1582, 1610, 523, 1589, 1609, 523, 1589, 1610, 523, 1590, 1609,
- 523, 1590, 1610, 523, 1588, 1580, 523, 1588, 1581, 523, 1588, 1582, 523,
- 1588, 1605, 523, 1588, 1585, 523, 1587, 1585, 523, 1589, 1585, 523, 1590,
- 1585, 524, 1591, 1609, 524, 1591, 1610, 524, 1593, 1609, 524, 1593, 1610,
- 524, 1594, 1609, 524, 1594, 1610, 524, 1587, 1609, 524, 1587, 1610, 524,
- 1588, 1609, 524, 1588, 1610, 524, 1581, 1609, 524, 1581, 1610, 524, 1580,
- 1609, 524, 1580, 1610, 524, 1582, 1609, 524, 1582, 1610, 524, 1589, 1609,
- 524, 1589, 1610, 524, 1590, 1609, 524, 1590, 1610, 524, 1588, 1580, 524,
- 1588, 1581, 524, 1588, 1582, 524, 1588, 1605, 524, 1588, 1585, 524, 1587,
- 1585, 524, 1589, 1585, 524, 1590, 1585, 525, 1588, 1580, 525, 1588, 1581,
- 525, 1588, 1582, 525, 1588, 1605, 525, 1587, 1607, 525, 1588, 1607, 525,
- 1591, 1605, 526, 1587, 1580, 526, 1587, 1581, 526, 1587, 1582, 526, 1588,
- 1580, 526, 1588, 1581, 526, 1588, 1582, 526, 1591, 1605, 526, 1592, 1605,
- 524, 1575, 1611, 523, 1575, 1611, 781, 1578, 1580, 1605, 780, 1578, 1581,
- 1580, 781, 1578, 1581, 1580, 781, 1578, 1581, 1605, 781, 1578, 1582,
- 1605, 781, 1578, 1605, 1580, 781, 1578, 1605, 1581, 781, 1578, 1605,
- 1582, 780, 1580, 1605, 1581, 781, 1580, 1605, 1581, 780, 1581, 1605,
- 1610, 780, 1581, 1605, 1609, 781, 1587, 1581, 1580, 781, 1587, 1580,
- 1581, 780, 1587, 1580, 1609, 780, 1587, 1605, 1581, 781, 1587, 1605,
- 1581, 781, 1587, 1605, 1580, 780, 1587, 1605, 1605, 781, 1587, 1605,
- 1605, 780, 1589, 1581, 1581, 781, 1589, 1581, 1581, 780, 1589, 1605,
- 1605, 780, 1588, 1581, 1605, 781, 1588, 1581, 1605, 780, 1588, 1580,
- 1610, 780, 1588, 1605, 1582, 781, 1588, 1605, 1582, 780, 1588, 1605,
- 1605, 781, 1588, 1605, 1605, 780, 1590, 1581, 1609, 780, 1590, 1582,
- 1605, 781, 1590, 1582, 1605, 780, 1591, 1605, 1581, 781, 1591, 1605,
- 1581, 781, 1591, 1605, 1605, 780, 1591, 1605, 1610, 780, 1593, 1580,
- 1605, 780, 1593, 1605, 1605, 781, 1593, 1605, 1605, 780, 1593, 1605,
- 1609, 780, 1594, 1605, 1605, 780, 1594, 1605, 1610, 780, 1594, 1605,
- 1609, 780, 1601, 1582, 1605, 781, 1601, 1582, 1605, 780, 1602, 1605,
- 1581, 780, 1602, 1605, 1605, 780, 1604, 1581, 1605, 780, 1604, 1581,
- 1610, 780, 1604, 1581, 1609, 781, 1604, 1580, 1580, 780, 1604, 1580,
- 1580, 780, 1604, 1582, 1605, 781, 1604, 1582, 1605, 780, 1604, 1605,
- 1581, 781, 1604, 1605, 1581, 781, 1605, 1581, 1580, 781, 1605, 1581,
- 1605, 780, 1605, 1581, 1610, 781, 1605, 1580, 1581, 781, 1605, 1580,
- 1605, 781, 1605, 1582, 1580, 781, 1605, 1582, 1605, 781, 1605, 1580,
- 1582, 781, 1607, 1605, 1580, 781, 1607, 1605, 1605, 781, 1606, 1581,
- 1605, 780, 1606, 1581, 1609, 780, 1606, 1580, 1605, 781, 1606, 1580,
- 1605, 780, 1606, 1580, 1609, 780, 1606, 1605, 1610, 780, 1606, 1605,
- 1609, 780, 1610, 1605, 1605, 781, 1610, 1605, 1605, 780, 1576, 1582,
- 1610, 780, 1578, 1580, 1610, 780, 1578, 1580, 1609, 780, 1578, 1582,
- 1610, 780, 1578, 1582, 1609, 780, 1578, 1605, 1610, 780, 1578, 1605,
- 1609, 780, 1580, 1605, 1610, 780, 1580, 1581, 1609, 780, 1580, 1605,
- 1609, 780, 1587, 1582, 1609, 780, 1589, 1581, 1610, 780, 1588, 1581,
- 1610, 780, 1590, 1581, 1610, 780, 1604, 1580, 1610, 780, 1604, 1605,
- 1610, 780, 1610, 1581, 1610, 780, 1610, 1580, 1610, 780, 1610, 1605,
- 1610, 780, 1605, 1605, 1610, 780, 1602, 1605, 1610, 780, 1606, 1581,
- 1610, 781, 1602, 1605, 1581, 781, 1604, 1581, 1605, 780, 1593, 1605,
- 1610, 780, 1603, 1605, 1610, 781, 1606, 1580, 1581, 780, 1605, 1582,
- 1610, 781, 1604, 1580, 1605, 780, 1603, 1605, 1605, 780, 1604, 1580,
- 1605, 780, 1606, 1580, 1581, 780, 1580, 1581, 1610, 780, 1581, 1580,
- 1610, 780, 1605, 1580, 1610, 780, 1601, 1605, 1610, 780, 1576, 1581,
- 1610, 781, 1603, 1605, 1605, 781, 1593, 1580, 1605, 781, 1589, 1605,
- 1605, 780, 1587, 1582, 1610, 780, 1606, 1580, 1610, 779, 1589, 1604,
- 1746, 779, 1602, 1604, 1746, 1035, 1575, 1604, 1604, 1607, 1035, 1575,
- 1603, 1576, 1585, 1035, 1605, 1581, 1605, 1583, 1035, 1589, 1604, 1593,
- 1605, 1035, 1585, 1587, 1608, 1604, 1035, 1593, 1604, 1610, 1607, 1035,
- 1608, 1587, 1604, 1605, 779, 1589, 1604, 1609, 4619, 1589, 1604, 1609,
- 32, 1575, 1604, 1604, 1607, 32, 1593, 1604, 1610, 1607, 32, 1608, 1587,
- 1604, 1605, 2059, 1580, 1604, 32, 1580, 1604, 1575, 1604, 1607, 1035,
- 1585, 1740, 1575, 1604, 265, 44, 265, 12289, 265, 12290, 265, 58, 265,
- 59, 265, 33, 265, 63, 265, 12310, 265, 12311, 265, 8230, 265, 8229, 265,
- 8212, 265, 8211, 265, 95, 265, 95, 265, 40, 265, 41, 265, 123, 265, 125,
- 265, 12308, 265, 12309, 265, 12304, 265, 12305, 265, 12298, 265, 12299,
- 265, 12296, 265, 12297, 265, 12300, 265, 12301, 265, 12302, 265, 12303,
- 265, 91, 265, 93, 258, 8254, 258, 8254, 258, 8254, 258, 8254, 258, 95,
- 258, 95, 258, 95, 271, 44, 271, 12289, 271, 46, 271, 59, 271, 58, 271,
- 63, 271, 33, 271, 8212, 271, 40, 271, 41, 271, 123, 271, 125, 271, 12308,
- 271, 12309, 271, 35, 271, 38, 271, 42, 271, 43, 271, 45, 271, 60, 271,
- 62, 271, 61, 271, 92, 271, 36, 271, 37, 271, 64, 523, 32, 1611, 526,
- 1600, 1611, 523, 32, 1612, 523, 32, 1613, 523, 32, 1614, 526, 1600, 1614,
- 523, 32, 1615, 526, 1600, 1615, 523, 32, 1616, 526, 1600, 1616, 523, 32,
- 1617, 526, 1600, 1617, 523, 32, 1618, 526, 1600, 1618, 267, 1569, 267,
- 1570, 268, 1570, 267, 1571, 268, 1571, 267, 1572, 268, 1572, 267, 1573,
- 268, 1573, 267, 1574, 268, 1574, 269, 1574, 270, 1574, 267, 1575, 268,
- 1575, 267, 1576, 268, 1576, 269, 1576, 270, 1576, 267, 1577, 268, 1577,
- 267, 1578, 268, 1578, 269, 1578, 270, 1578, 267, 1579, 268, 1579, 269,
- 1579, 270, 1579, 267, 1580, 268, 1580, 269, 1580, 270, 1580, 267, 1581,
- 268, 1581, 269, 1581, 270, 1581, 267, 1582, 268, 1582, 269, 1582, 270,
- 1582, 267, 1583, 268, 1583, 267, 1584, 268, 1584, 267, 1585, 268, 1585,
- 267, 1586, 268, 1586, 267, 1587, 268, 1587, 269, 1587, 270, 1587, 267,
- 1588, 268, 1588, 269, 1588, 270, 1588, 267, 1589, 268, 1589, 269, 1589,
- 270, 1589, 267, 1590, 268, 1590, 269, 1590, 270, 1590, 267, 1591, 268,
- 1591, 269, 1591, 270, 1591, 267, 1592, 268, 1592, 269, 1592, 270, 1592,
- 267, 1593, 268, 1593, 269, 1593, 270, 1593, 267, 1594, 268, 1594, 269,
- 1594, 270, 1594, 267, 1601, 268, 1601, 269, 1601, 270, 1601, 267, 1602,
- 268, 1602, 269, 1602, 270, 1602, 267, 1603, 268, 1603, 269, 1603, 270,
- 1603, 267, 1604, 268, 1604, 269, 1604, 270, 1604, 267, 1605, 268, 1605,
- 269, 1605, 270, 1605, 267, 1606, 268, 1606, 269, 1606, 270, 1606, 267,
- 1607, 268, 1607, 269, 1607, 270, 1607, 267, 1608, 268, 1608, 267, 1609,
- 268, 1609, 267, 1610, 268, 1610, 269, 1610, 270, 1610, 523, 1604, 1570,
- 524, 1604, 1570, 523, 1604, 1571, 524, 1604, 1571, 523, 1604, 1573, 524,
- 1604, 1573, 523, 1604, 1575, 524, 1604, 1575, 264, 33, 264, 34, 264, 35,
- 264, 36, 264, 37, 264, 38, 264, 39, 264, 40, 264, 41, 264, 42, 264, 43,
- 264, 44, 264, 45, 264, 46, 264, 47, 264, 48, 264, 49, 264, 50, 264, 51,
- 264, 52, 264, 53, 264, 54, 264, 55, 264, 56, 264, 57, 264, 58, 264, 59,
- 264, 60, 264, 61, 264, 62, 264, 63, 264, 64, 264, 65, 264, 66, 264, 67,
- 264, 68, 264, 69, 264, 70, 264, 71, 264, 72, 264, 73, 264, 74, 264, 75,
- 264, 76, 264, 77, 264, 78, 264, 79, 264, 80, 264, 81, 264, 82, 264, 83,
- 264, 84, 264, 85, 264, 86, 264, 87, 264, 88, 264, 89, 264, 90, 264, 91,
- 264, 92, 264, 93, 264, 94, 264, 95, 264, 96, 264, 97, 264, 98, 264, 99,
- 264, 100, 264, 101, 264, 102, 264, 103, 264, 104, 264, 105, 264, 106,
- 264, 107, 264, 108, 264, 109, 264, 110, 264, 111, 264, 112, 264, 113,
- 264, 114, 264, 115, 264, 116, 264, 117, 264, 118, 264, 119, 264, 120,
- 264, 121, 264, 122, 264, 123, 264, 124, 264, 125, 264, 126, 264, 10629,
- 264, 10630, 272, 12290, 272, 12300, 272, 12301, 272, 12289, 272, 12539,
- 272, 12530, 272, 12449, 272, 12451, 272, 12453, 272, 12455, 272, 12457,
- 272, 12515, 272, 12517, 272, 12519, 272, 12483, 272, 12540, 272, 12450,
- 272, 12452, 272, 12454, 272, 12456, 272, 12458, 272, 12459, 272, 12461,
- 272, 12463, 272, 12465, 272, 12467, 272, 12469, 272, 12471, 272, 12473,
- 272, 12475, 272, 12477, 272, 12479, 272, 12481, 272, 12484, 272, 12486,
- 272, 12488, 272, 12490, 272, 12491, 272, 12492, 272, 12493, 272, 12494,
- 272, 12495, 272, 12498, 272, 12501, 272, 12504, 272, 12507, 272, 12510,
- 272, 12511, 272, 12512, 272, 12513, 272, 12514, 272, 12516, 272, 12518,
- 272, 12520, 272, 12521, 272, 12522, 272, 12523, 272, 12524, 272, 12525,
- 272, 12527, 272, 12531, 272, 12441, 272, 12442, 272, 12644, 272, 12593,
- 272, 12594, 272, 12595, 272, 12596, 272, 12597, 272, 12598, 272, 12599,
- 272, 12600, 272, 12601, 272, 12602, 272, 12603, 272, 12604, 272, 12605,
- 272, 12606, 272, 12607, 272, 12608, 272, 12609, 272, 12610, 272, 12611,
- 272, 12612, 272, 12613, 272, 12614, 272, 12615, 272, 12616, 272, 12617,
- 272, 12618, 272, 12619, 272, 12620, 272, 12621, 272, 12622, 272, 12623,
- 272, 12624, 272, 12625, 272, 12626, 272, 12627, 272, 12628, 272, 12629,
- 272, 12630, 272, 12631, 272, 12632, 272, 12633, 272, 12634, 272, 12635,
- 272, 12636, 272, 12637, 272, 12638, 272, 12639, 272, 12640, 272, 12641,
- 272, 12642, 272, 12643, 264, 162, 264, 163, 264, 172, 264, 175, 264, 166,
- 264, 165, 264, 8361, 272, 9474, 272, 8592, 272, 8593, 272, 8594, 272,
- 8595, 272, 9632, 272, 9675, 512, 69785, 69818, 512, 69787, 69818, 512,
- 69797, 69818, 512, 69937, 69927, 512, 69938, 69927, 512, 119127, 119141,
- 512, 119128, 119141, 512, 119135, 119150, 512, 119135, 119151, 512,
- 119135, 119152, 512, 119135, 119153, 512, 119135, 119154, 512, 119225,
- 119141, 512, 119226, 119141, 512, 119227, 119150, 512, 119228, 119150,
- 512, 119227, 119151, 512, 119228, 119151, 262, 65, 262, 66, 262, 67, 262,
- 68, 262, 69, 262, 70, 262, 71, 262, 72, 262, 73, 262, 74, 262, 75, 262,
- 76, 262, 77, 262, 78, 262, 79, 262, 80, 262, 81, 262, 82, 262, 83, 262,
- 84, 262, 85, 262, 86, 262, 87, 262, 88, 262, 89, 262, 90, 262, 97, 262,
- 98, 262, 99, 262, 100, 262, 101, 262, 102, 262, 103, 262, 104, 262, 105,
- 262, 106, 262, 107, 262, 108, 262, 109, 262, 110, 262, 111, 262, 112,
- 262, 113, 262, 114, 262, 115, 262, 116, 262, 117, 262, 118, 262, 119,
- 262, 120, 262, 121, 262, 122, 262, 65, 262, 66, 262, 67, 262, 68, 262,
- 69, 262, 70, 262, 71, 262, 72, 262, 73, 262, 74, 262, 75, 262, 76, 262,
- 77, 262, 78, 262, 79, 262, 80, 262, 81, 262, 82, 262, 83, 262, 84, 262,
- 85, 262, 86, 262, 87, 262, 88, 262, 89, 262, 90, 262, 97, 262, 98, 262,
- 99, 262, 100, 262, 101, 262, 102, 262, 103, 262, 105, 262, 106, 262, 107,
- 262, 108, 262, 109, 262, 110, 262, 111, 262, 112, 262, 113, 262, 114,
- 262, 115, 262, 116, 262, 117, 262, 118, 262, 119, 262, 120, 262, 121,
- 262, 122, 262, 65, 262, 66, 262, 67, 262, 68, 262, 69, 262, 70, 262, 71,
- 262, 72, 262, 73, 262, 74, 262, 75, 262, 76, 262, 77, 262, 78, 262, 79,
- 262, 80, 262, 81, 262, 82, 262, 83, 262, 84, 262, 85, 262, 86, 262, 87,
- 262, 88, 262, 89, 262, 90, 262, 97, 262, 98, 262, 99, 262, 100, 262, 101,
- 262, 102, 262, 103, 262, 104, 262, 105, 262, 106, 262, 107, 262, 108,
+ 26085, 778, 103, 97, 108, 259, 1098, 259, 1100, 259, 42863, 259, 294,
+ 259, 339, 259, 42791, 259, 43831, 259, 619, 259, 43858, 256, 35912, 256,
+ 26356, 256, 36554, 256, 36040, 256, 28369, 256, 20018, 256, 21477, 256,
+ 40860, 256, 40860, 256, 22865, 256, 37329, 256, 21895, 256, 22856, 256,
+ 25078, 256, 30313, 256, 32645, 256, 34367, 256, 34746, 256, 35064, 256,
+ 37007, 256, 27138, 256, 27931, 256, 28889, 256, 29662, 256, 33853, 256,
+ 37226, 256, 39409, 256, 20098, 256, 21365, 256, 27396, 256, 29211, 256,
+ 34349, 256, 40478, 256, 23888, 256, 28651, 256, 34253, 256, 35172, 256,
+ 25289, 256, 33240, 256, 34847, 256, 24266, 256, 26391, 256, 28010, 256,
+ 29436, 256, 37070, 256, 20358, 256, 20919, 256, 21214, 256, 25796, 256,
+ 27347, 256, 29200, 256, 30439, 256, 32769, 256, 34310, 256, 34396, 256,
+ 36335, 256, 38706, 256, 39791, 256, 40442, 256, 30860, 256, 31103, 256,
+ 32160, 256, 33737, 256, 37636, 256, 40575, 256, 35542, 256, 22751, 256,
+ 24324, 256, 31840, 256, 32894, 256, 29282, 256, 30922, 256, 36034, 256,
+ 38647, 256, 22744, 256, 23650, 256, 27155, 256, 28122, 256, 28431, 256,
+ 32047, 256, 32311, 256, 38475, 256, 21202, 256, 32907, 256, 20956, 256,
+ 20940, 256, 31260, 256, 32190, 256, 33777, 256, 38517, 256, 35712, 256,
+ 25295, 256, 27138, 256, 35582, 256, 20025, 256, 23527, 256, 24594, 256,
+ 29575, 256, 30064, 256, 21271, 256, 30971, 256, 20415, 256, 24489, 256,
+ 19981, 256, 27852, 256, 25976, 256, 32034, 256, 21443, 256, 22622, 256,
+ 30465, 256, 33865, 256, 35498, 256, 27578, 256, 36784, 256, 27784, 256,
+ 25342, 256, 33509, 256, 25504, 256, 30053, 256, 20142, 256, 20841, 256,
+ 20937, 256, 26753, 256, 31975, 256, 33391, 256, 35538, 256, 37327, 256,
+ 21237, 256, 21570, 256, 22899, 256, 24300, 256, 26053, 256, 28670, 256,
+ 31018, 256, 38317, 256, 39530, 256, 40599, 256, 40654, 256, 21147, 256,
+ 26310, 256, 27511, 256, 36706, 256, 24180, 256, 24976, 256, 25088, 256,
+ 25754, 256, 28451, 256, 29001, 256, 29833, 256, 31178, 256, 32244, 256,
+ 32879, 256, 36646, 256, 34030, 256, 36899, 256, 37706, 256, 21015, 256,
+ 21155, 256, 21693, 256, 28872, 256, 35010, 256, 35498, 256, 24265, 256,
+ 24565, 256, 25467, 256, 27566, 256, 31806, 256, 29557, 256, 20196, 256,
+ 22265, 256, 23527, 256, 23994, 256, 24604, 256, 29618, 256, 29801, 256,
+ 32666, 256, 32838, 256, 37428, 256, 38646, 256, 38728, 256, 38936, 256,
+ 20363, 256, 31150, 256, 37300, 256, 38584, 256, 24801, 256, 20102, 256,
+ 20698, 256, 23534, 256, 23615, 256, 26009, 256, 27138, 256, 29134, 256,
+ 30274, 256, 34044, 256, 36988, 256, 40845, 256, 26248, 256, 38446, 256,
+ 21129, 256, 26491, 256, 26611, 256, 27969, 256, 28316, 256, 29705, 256,
+ 30041, 256, 30827, 256, 32016, 256, 39006, 256, 20845, 256, 25134, 256,
+ 38520, 256, 20523, 256, 23833, 256, 28138, 256, 36650, 256, 24459, 256,
+ 24900, 256, 26647, 256, 29575, 256, 38534, 256, 21033, 256, 21519, 256,
+ 23653, 256, 26131, 256, 26446, 256, 26792, 256, 27877, 256, 29702, 256,
+ 30178, 256, 32633, 256, 35023, 256, 35041, 256, 37324, 256, 38626, 256,
+ 21311, 256, 28346, 256, 21533, 256, 29136, 256, 29848, 256, 34298, 256,
+ 38563, 256, 40023, 256, 40607, 256, 26519, 256, 28107, 256, 33256, 256,
+ 31435, 256, 31520, 256, 31890, 256, 29376, 256, 28825, 256, 35672, 256,
+ 20160, 256, 33590, 256, 21050, 256, 20999, 256, 24230, 256, 25299, 256,
+ 31958, 256, 23429, 256, 27934, 256, 26292, 256, 36667, 256, 34892, 256,
+ 38477, 256, 35211, 256, 24275, 256, 20800, 256, 21952, 256, 22618, 256,
+ 26228, 256, 20958, 256, 29482, 256, 30410, 256, 31036, 256, 31070, 256,
+ 31077, 256, 31119, 256, 38742, 256, 31934, 256, 32701, 256, 34322, 256,
+ 35576, 256, 36920, 256, 37117, 256, 39151, 256, 39164, 256, 39208, 256,
+ 40372, 256, 37086, 256, 38583, 256, 20398, 256, 20711, 256, 20813, 256,
+ 21193, 256, 21220, 256, 21329, 256, 21917, 256, 22022, 256, 22120, 256,
+ 22592, 256, 22696, 256, 23652, 256, 23662, 256, 24724, 256, 24936, 256,
+ 24974, 256, 25074, 256, 25935, 256, 26082, 256, 26257, 256, 26757, 256,
+ 28023, 256, 28186, 256, 28450, 256, 29038, 256, 29227, 256, 29730, 256,
+ 30865, 256, 31038, 256, 31049, 256, 31048, 256, 31056, 256, 31062, 256,
+ 31069, 256, 31117, 256, 31118, 256, 31296, 256, 31361, 256, 31680, 256,
+ 32244, 256, 32265, 256, 32321, 256, 32626, 256, 32773, 256, 33261, 256,
+ 33401, 256, 33401, 256, 33879, 256, 35088, 256, 35222, 256, 35585, 256,
+ 35641, 256, 36051, 256, 36104, 256, 36790, 256, 36920, 256, 38627, 256,
+ 38911, 256, 38971, 256, 24693, 256, 148206, 256, 33304, 256, 20006, 256,
+ 20917, 256, 20840, 256, 20352, 256, 20805, 256, 20864, 256, 21191, 256,
+ 21242, 256, 21917, 256, 21845, 256, 21913, 256, 21986, 256, 22618, 256,
+ 22707, 256, 22852, 256, 22868, 256, 23138, 256, 23336, 256, 24274, 256,
+ 24281, 256, 24425, 256, 24493, 256, 24792, 256, 24910, 256, 24840, 256,
+ 24974, 256, 24928, 256, 25074, 256, 25140, 256, 25540, 256, 25628, 256,
+ 25682, 256, 25942, 256, 26228, 256, 26391, 256, 26395, 256, 26454, 256,
+ 27513, 256, 27578, 256, 27969, 256, 28379, 256, 28363, 256, 28450, 256,
+ 28702, 256, 29038, 256, 30631, 256, 29237, 256, 29359, 256, 29482, 256,
+ 29809, 256, 29958, 256, 30011, 256, 30237, 256, 30239, 256, 30410, 256,
+ 30427, 256, 30452, 256, 30538, 256, 30528, 256, 30924, 256, 31409, 256,
+ 31680, 256, 31867, 256, 32091, 256, 32244, 256, 32574, 256, 32773, 256,
+ 33618, 256, 33775, 256, 34681, 256, 35137, 256, 35206, 256, 35222, 256,
+ 35519, 256, 35576, 256, 35531, 256, 35585, 256, 35582, 256, 35565, 256,
+ 35641, 256, 35722, 256, 36104, 256, 36664, 256, 36978, 256, 37273, 256,
+ 37494, 256, 38524, 256, 38627, 256, 38742, 256, 38875, 256, 38911, 256,
+ 38923, 256, 38971, 256, 39698, 256, 40860, 256, 141386, 256, 141380, 256,
+ 144341, 256, 15261, 256, 16408, 256, 16441, 256, 152137, 256, 154832,
+ 256, 163539, 256, 40771, 256, 40846, 514, 102, 102, 514, 102, 105, 514,
+ 102, 108, 770, 102, 102, 105, 770, 102, 102, 108, 514, 383, 116, 514,
+ 115, 116, 514, 1396, 1398, 514, 1396, 1381, 514, 1396, 1387, 514, 1406,
+ 1398, 514, 1396, 1389, 512, 1497, 1460, 512, 1522, 1463, 262, 1506, 262,
+ 1488, 262, 1491, 262, 1492, 262, 1499, 262, 1500, 262, 1501, 262, 1512,
+ 262, 1514, 262, 43, 512, 1513, 1473, 512, 1513, 1474, 512, 64329, 1473,
+ 512, 64329, 1474, 512, 1488, 1463, 512, 1488, 1464, 512, 1488, 1468, 512,
+ 1489, 1468, 512, 1490, 1468, 512, 1491, 1468, 512, 1492, 1468, 512, 1493,
+ 1468, 512, 1494, 1468, 512, 1496, 1468, 512, 1497, 1468, 512, 1498, 1468,
+ 512, 1499, 1468, 512, 1500, 1468, 512, 1502, 1468, 512, 1504, 1468, 512,
+ 1505, 1468, 512, 1507, 1468, 512, 1508, 1468, 512, 1510, 1468, 512, 1511,
+ 1468, 512, 1512, 1468, 512, 1513, 1468, 512, 1514, 1468, 512, 1493, 1465,
+ 512, 1489, 1471, 512, 1499, 1471, 512, 1508, 1471, 514, 1488, 1500, 267,
+ 1649, 268, 1649, 267, 1659, 268, 1659, 269, 1659, 270, 1659, 267, 1662,
+ 268, 1662, 269, 1662, 270, 1662, 267, 1664, 268, 1664, 269, 1664, 270,
+ 1664, 267, 1658, 268, 1658, 269, 1658, 270, 1658, 267, 1663, 268, 1663,
+ 269, 1663, 270, 1663, 267, 1657, 268, 1657, 269, 1657, 270, 1657, 267,
+ 1700, 268, 1700, 269, 1700, 270, 1700, 267, 1702, 268, 1702, 269, 1702,
+ 270, 1702, 267, 1668, 268, 1668, 269, 1668, 270, 1668, 267, 1667, 268,
+ 1667, 269, 1667, 270, 1667, 267, 1670, 268, 1670, 269, 1670, 270, 1670,
+ 267, 1671, 268, 1671, 269, 1671, 270, 1671, 267, 1677, 268, 1677, 267,
+ 1676, 268, 1676, 267, 1678, 268, 1678, 267, 1672, 268, 1672, 267, 1688,
+ 268, 1688, 267, 1681, 268, 1681, 267, 1705, 268, 1705, 269, 1705, 270,
+ 1705, 267, 1711, 268, 1711, 269, 1711, 270, 1711, 267, 1715, 268, 1715,
+ 269, 1715, 270, 1715, 267, 1713, 268, 1713, 269, 1713, 270, 1713, 267,
+ 1722, 268, 1722, 267, 1723, 268, 1723, 269, 1723, 270, 1723, 267, 1728,
+ 268, 1728, 267, 1729, 268, 1729, 269, 1729, 270, 1729, 267, 1726, 268,
+ 1726, 269, 1726, 270, 1726, 267, 1746, 268, 1746, 267, 1747, 268, 1747,
+ 267, 1709, 268, 1709, 269, 1709, 270, 1709, 267, 1735, 268, 1735, 267,
+ 1734, 268, 1734, 267, 1736, 268, 1736, 267, 1655, 267, 1739, 268, 1739,
+ 267, 1733, 268, 1733, 267, 1737, 268, 1737, 267, 1744, 268, 1744, 269,
+ 1744, 270, 1744, 269, 1609, 270, 1609, 523, 1574, 1575, 524, 1574, 1575,
+ 523, 1574, 1749, 524, 1574, 1749, 523, 1574, 1608, 524, 1574, 1608, 523,
+ 1574, 1735, 524, 1574, 1735, 523, 1574, 1734, 524, 1574, 1734, 523, 1574,
+ 1736, 524, 1574, 1736, 523, 1574, 1744, 524, 1574, 1744, 525, 1574, 1744,
+ 523, 1574, 1609, 524, 1574, 1609, 525, 1574, 1609, 267, 1740, 268, 1740,
+ 269, 1740, 270, 1740, 523, 1574, 1580, 523, 1574, 1581, 523, 1574, 1605,
+ 523, 1574, 1609, 523, 1574, 1610, 523, 1576, 1580, 523, 1576, 1581, 523,
+ 1576, 1582, 523, 1576, 1605, 523, 1576, 1609, 523, 1576, 1610, 523, 1578,
+ 1580, 523, 1578, 1581, 523, 1578, 1582, 523, 1578, 1605, 523, 1578, 1609,
+ 523, 1578, 1610, 523, 1579, 1580, 523, 1579, 1605, 523, 1579, 1609, 523,
+ 1579, 1610, 523, 1580, 1581, 523, 1580, 1605, 523, 1581, 1580, 523, 1581,
+ 1605, 523, 1582, 1580, 523, 1582, 1581, 523, 1582, 1605, 523, 1587, 1580,
+ 523, 1587, 1581, 523, 1587, 1582, 523, 1587, 1605, 523, 1589, 1581, 523,
+ 1589, 1605, 523, 1590, 1580, 523, 1590, 1581, 523, 1590, 1582, 523, 1590,
+ 1605, 523, 1591, 1581, 523, 1591, 1605, 523, 1592, 1605, 523, 1593, 1580,
+ 523, 1593, 1605, 523, 1594, 1580, 523, 1594, 1605, 523, 1601, 1580, 523,
+ 1601, 1581, 523, 1601, 1582, 523, 1601, 1605, 523, 1601, 1609, 523, 1601,
+ 1610, 523, 1602, 1581, 523, 1602, 1605, 523, 1602, 1609, 523, 1602, 1610,
+ 523, 1603, 1575, 523, 1603, 1580, 523, 1603, 1581, 523, 1603, 1582, 523,
+ 1603, 1604, 523, 1603, 1605, 523, 1603, 1609, 523, 1603, 1610, 523, 1604,
+ 1580, 523, 1604, 1581, 523, 1604, 1582, 523, 1604, 1605, 523, 1604, 1609,
+ 523, 1604, 1610, 523, 1605, 1580, 523, 1605, 1581, 523, 1605, 1582, 523,
+ 1605, 1605, 523, 1605, 1609, 523, 1605, 1610, 523, 1606, 1580, 523, 1606,
+ 1581, 523, 1606, 1582, 523, 1606, 1605, 523, 1606, 1609, 523, 1606, 1610,
+ 523, 1607, 1580, 523, 1607, 1605, 523, 1607, 1609, 523, 1607, 1610, 523,
+ 1610, 1580, 523, 1610, 1581, 523, 1610, 1582, 523, 1610, 1605, 523, 1610,
+ 1609, 523, 1610, 1610, 523, 1584, 1648, 523, 1585, 1648, 523, 1609, 1648,
+ 779, 32, 1612, 1617, 779, 32, 1613, 1617, 779, 32, 1614, 1617, 779, 32,
+ 1615, 1617, 779, 32, 1616, 1617, 779, 32, 1617, 1648, 524, 1574, 1585,
+ 524, 1574, 1586, 524, 1574, 1605, 524, 1574, 1606, 524, 1574, 1609, 524,
+ 1574, 1610, 524, 1576, 1585, 524, 1576, 1586, 524, 1576, 1605, 524, 1576,
+ 1606, 524, 1576, 1609, 524, 1576, 1610, 524, 1578, 1585, 524, 1578, 1586,
+ 524, 1578, 1605, 524, 1578, 1606, 524, 1578, 1609, 524, 1578, 1610, 524,
+ 1579, 1585, 524, 1579, 1586, 524, 1579, 1605, 524, 1579, 1606, 524, 1579,
+ 1609, 524, 1579, 1610, 524, 1601, 1609, 524, 1601, 1610, 524, 1602, 1609,
+ 524, 1602, 1610, 524, 1603, 1575, 524, 1603, 1604, 524, 1603, 1605, 524,
+ 1603, 1609, 524, 1603, 1610, 524, 1604, 1605, 524, 1604, 1609, 524, 1604,
+ 1610, 524, 1605, 1575, 524, 1605, 1605, 524, 1606, 1585, 524, 1606, 1586,
+ 524, 1606, 1605, 524, 1606, 1606, 524, 1606, 1609, 524, 1606, 1610, 524,
+ 1609, 1648, 524, 1610, 1585, 524, 1610, 1586, 524, 1610, 1605, 524, 1610,
+ 1606, 524, 1610, 1609, 524, 1610, 1610, 525, 1574, 1580, 525, 1574, 1581,
+ 525, 1574, 1582, 525, 1574, 1605, 525, 1574, 1607, 525, 1576, 1580, 525,
+ 1576, 1581, 525, 1576, 1582, 525, 1576, 1605, 525, 1576, 1607, 525, 1578,
+ 1580, 525, 1578, 1581, 525, 1578, 1582, 525, 1578, 1605, 525, 1578, 1607,
+ 525, 1579, 1605, 525, 1580, 1581, 525, 1580, 1605, 525, 1581, 1580, 525,
+ 1581, 1605, 525, 1582, 1580, 525, 1582, 1605, 525, 1587, 1580, 525, 1587,
+ 1581, 525, 1587, 1582, 525, 1587, 1605, 525, 1589, 1581, 525, 1589, 1582,
+ 525, 1589, 1605, 525, 1590, 1580, 525, 1590, 1581, 525, 1590, 1582, 525,
+ 1590, 1605, 525, 1591, 1581, 525, 1592, 1605, 525, 1593, 1580, 525, 1593,
+ 1605, 525, 1594, 1580, 525, 1594, 1605, 525, 1601, 1580, 525, 1601, 1581,
+ 525, 1601, 1582, 525, 1601, 1605, 525, 1602, 1581, 525, 1602, 1605, 525,
+ 1603, 1580, 525, 1603, 1581, 525, 1603, 1582, 525, 1603, 1604, 525, 1603,
+ 1605, 525, 1604, 1580, 525, 1604, 1581, 525, 1604, 1582, 525, 1604, 1605,
+ 525, 1604, 1607, 525, 1605, 1580, 525, 1605, 1581, 525, 1605, 1582, 525,
+ 1605, 1605, 525, 1606, 1580, 525, 1606, 1581, 525, 1606, 1582, 525, 1606,
+ 1605, 525, 1606, 1607, 525, 1607, 1580, 525, 1607, 1605, 525, 1607, 1648,
+ 525, 1610, 1580, 525, 1610, 1581, 525, 1610, 1582, 525, 1610, 1605, 525,
+ 1610, 1607, 526, 1574, 1605, 526, 1574, 1607, 526, 1576, 1605, 526, 1576,
+ 1607, 526, 1578, 1605, 526, 1578, 1607, 526, 1579, 1605, 526, 1579, 1607,
+ 526, 1587, 1605, 526, 1587, 1607, 526, 1588, 1605, 526, 1588, 1607, 526,
+ 1603, 1604, 526, 1603, 1605, 526, 1604, 1605, 526, 1606, 1605, 526, 1606,
+ 1607, 526, 1610, 1605, 526, 1610, 1607, 782, 1600, 1614, 1617, 782, 1600,
+ 1615, 1617, 782, 1600, 1616, 1617, 523, 1591, 1609, 523, 1591, 1610, 523,
+ 1593, 1609, 523, 1593, 1610, 523, 1594, 1609, 523, 1594, 1610, 523, 1587,
+ 1609, 523, 1587, 1610, 523, 1588, 1609, 523, 1588, 1610, 523, 1581, 1609,
+ 523, 1581, 1610, 523, 1580, 1609, 523, 1580, 1610, 523, 1582, 1609, 523,
+ 1582, 1610, 523, 1589, 1609, 523, 1589, 1610, 523, 1590, 1609, 523, 1590,
+ 1610, 523, 1588, 1580, 523, 1588, 1581, 523, 1588, 1582, 523, 1588, 1605,
+ 523, 1588, 1585, 523, 1587, 1585, 523, 1589, 1585, 523, 1590, 1585, 524,
+ 1591, 1609, 524, 1591, 1610, 524, 1593, 1609, 524, 1593, 1610, 524, 1594,
+ 1609, 524, 1594, 1610, 524, 1587, 1609, 524, 1587, 1610, 524, 1588, 1609,
+ 524, 1588, 1610, 524, 1581, 1609, 524, 1581, 1610, 524, 1580, 1609, 524,
+ 1580, 1610, 524, 1582, 1609, 524, 1582, 1610, 524, 1589, 1609, 524, 1589,
+ 1610, 524, 1590, 1609, 524, 1590, 1610, 524, 1588, 1580, 524, 1588, 1581,
+ 524, 1588, 1582, 524, 1588, 1605, 524, 1588, 1585, 524, 1587, 1585, 524,
+ 1589, 1585, 524, 1590, 1585, 525, 1588, 1580, 525, 1588, 1581, 525, 1588,
+ 1582, 525, 1588, 1605, 525, 1587, 1607, 525, 1588, 1607, 525, 1591, 1605,
+ 526, 1587, 1580, 526, 1587, 1581, 526, 1587, 1582, 526, 1588, 1580, 526,
+ 1588, 1581, 526, 1588, 1582, 526, 1591, 1605, 526, 1592, 1605, 524, 1575,
+ 1611, 523, 1575, 1611, 781, 1578, 1580, 1605, 780, 1578, 1581, 1580, 781,
+ 1578, 1581, 1580, 781, 1578, 1581, 1605, 781, 1578, 1582, 1605, 781,
+ 1578, 1605, 1580, 781, 1578, 1605, 1581, 781, 1578, 1605, 1582, 780,
+ 1580, 1605, 1581, 781, 1580, 1605, 1581, 780, 1581, 1605, 1610, 780,
+ 1581, 1605, 1609, 781, 1587, 1581, 1580, 781, 1587, 1580, 1581, 780,
+ 1587, 1580, 1609, 780, 1587, 1605, 1581, 781, 1587, 1605, 1581, 781,
+ 1587, 1605, 1580, 780, 1587, 1605, 1605, 781, 1587, 1605, 1605, 780,
+ 1589, 1581, 1581, 781, 1589, 1581, 1581, 780, 1589, 1605, 1605, 780,
+ 1588, 1581, 1605, 781, 1588, 1581, 1605, 780, 1588, 1580, 1610, 780,
+ 1588, 1605, 1582, 781, 1588, 1605, 1582, 780, 1588, 1605, 1605, 781,
+ 1588, 1605, 1605, 780, 1590, 1581, 1609, 780, 1590, 1582, 1605, 781,
+ 1590, 1582, 1605, 780, 1591, 1605, 1581, 781, 1591, 1605, 1581, 781,
+ 1591, 1605, 1605, 780, 1591, 1605, 1610, 780, 1593, 1580, 1605, 780,
+ 1593, 1605, 1605, 781, 1593, 1605, 1605, 780, 1593, 1605, 1609, 780,
+ 1594, 1605, 1605, 780, 1594, 1605, 1610, 780, 1594, 1605, 1609, 780,
+ 1601, 1582, 1605, 781, 1601, 1582, 1605, 780, 1602, 1605, 1581, 780,
+ 1602, 1605, 1605, 780, 1604, 1581, 1605, 780, 1604, 1581, 1610, 780,
+ 1604, 1581, 1609, 781, 1604, 1580, 1580, 780, 1604, 1580, 1580, 780,
+ 1604, 1582, 1605, 781, 1604, 1582, 1605, 780, 1604, 1605, 1581, 781,
+ 1604, 1605, 1581, 781, 1605, 1581, 1580, 781, 1605, 1581, 1605, 780,
+ 1605, 1581, 1610, 781, 1605, 1580, 1581, 781, 1605, 1580, 1605, 781,
+ 1605, 1582, 1580, 781, 1605, 1582, 1605, 781, 1605, 1580, 1582, 781,
+ 1607, 1605, 1580, 781, 1607, 1605, 1605, 781, 1606, 1581, 1605, 780,
+ 1606, 1581, 1609, 780, 1606, 1580, 1605, 781, 1606, 1580, 1605, 780,
+ 1606, 1580, 1609, 780, 1606, 1605, 1610, 780, 1606, 1605, 1609, 780,
+ 1610, 1605, 1605, 781, 1610, 1605, 1605, 780, 1576, 1582, 1610, 780,
+ 1578, 1580, 1610, 780, 1578, 1580, 1609, 780, 1578, 1582, 1610, 780,
+ 1578, 1582, 1609, 780, 1578, 1605, 1610, 780, 1578, 1605, 1609, 780,
+ 1580, 1605, 1610, 780, 1580, 1581, 1609, 780, 1580, 1605, 1609, 780,
+ 1587, 1582, 1609, 780, 1589, 1581, 1610, 780, 1588, 1581, 1610, 780,
+ 1590, 1581, 1610, 780, 1604, 1580, 1610, 780, 1604, 1605, 1610, 780,
+ 1610, 1581, 1610, 780, 1610, 1580, 1610, 780, 1610, 1605, 1610, 780,
+ 1605, 1605, 1610, 780, 1602, 1605, 1610, 780, 1606, 1581, 1610, 781,
+ 1602, 1605, 1581, 781, 1604, 1581, 1605, 780, 1593, 1605, 1610, 780,
+ 1603, 1605, 1610, 781, 1606, 1580, 1581, 780, 1605, 1582, 1610, 781,
+ 1604, 1580, 1605, 780, 1603, 1605, 1605, 780, 1604, 1580, 1605, 780,
+ 1606, 1580, 1581, 780, 1580, 1581, 1610, 780, 1581, 1580, 1610, 780,
+ 1605, 1580, 1610, 780, 1601, 1605, 1610, 780, 1576, 1581, 1610, 781,
+ 1603, 1605, 1605, 781, 1593, 1580, 1605, 781, 1589, 1605, 1605, 780,
+ 1587, 1582, 1610, 780, 1606, 1580, 1610, 779, 1589, 1604, 1746, 779,
+ 1602, 1604, 1746, 1035, 1575, 1604, 1604, 1607, 1035, 1575, 1603, 1576,
+ 1585, 1035, 1605, 1581, 1605, 1583, 1035, 1589, 1604, 1593, 1605, 1035,
+ 1585, 1587, 1608, 1604, 1035, 1593, 1604, 1610, 1607, 1035, 1608, 1587,
+ 1604, 1605, 779, 1589, 1604, 1609, 4619, 1589, 1604, 1609, 32, 1575,
+ 1604, 1604, 1607, 32, 1593, 1604, 1610, 1607, 32, 1608, 1587, 1604, 1605,
+ 2059, 1580, 1604, 32, 1580, 1604, 1575, 1604, 1607, 1035, 1585, 1740,
+ 1575, 1604, 265, 44, 265, 12289, 265, 12290, 265, 58, 265, 59, 265, 33,
+ 265, 63, 265, 12310, 265, 12311, 265, 8230, 265, 8229, 265, 8212, 265,
+ 8211, 265, 95, 265, 95, 265, 40, 265, 41, 265, 123, 265, 125, 265, 12308,
+ 265, 12309, 265, 12304, 265, 12305, 265, 12298, 265, 12299, 265, 12296,
+ 265, 12297, 265, 12300, 265, 12301, 265, 12302, 265, 12303, 265, 91, 265,
+ 93, 258, 8254, 258, 8254, 258, 8254, 258, 8254, 258, 95, 258, 95, 258,
+ 95, 271, 44, 271, 12289, 271, 46, 271, 59, 271, 58, 271, 63, 271, 33,
+ 271, 8212, 271, 40, 271, 41, 271, 123, 271, 125, 271, 12308, 271, 12309,
+ 271, 35, 271, 38, 271, 42, 271, 43, 271, 45, 271, 60, 271, 62, 271, 61,
+ 271, 92, 271, 36, 271, 37, 271, 64, 523, 32, 1611, 526, 1600, 1611, 523,
+ 32, 1612, 523, 32, 1613, 523, 32, 1614, 526, 1600, 1614, 523, 32, 1615,
+ 526, 1600, 1615, 523, 32, 1616, 526, 1600, 1616, 523, 32, 1617, 526,
+ 1600, 1617, 523, 32, 1618, 526, 1600, 1618, 267, 1569, 267, 1570, 268,
+ 1570, 267, 1571, 268, 1571, 267, 1572, 268, 1572, 267, 1573, 268, 1573,
+ 267, 1574, 268, 1574, 269, 1574, 270, 1574, 267, 1575, 268, 1575, 267,
+ 1576, 268, 1576, 269, 1576, 270, 1576, 267, 1577, 268, 1577, 267, 1578,
+ 268, 1578, 269, 1578, 270, 1578, 267, 1579, 268, 1579, 269, 1579, 270,
+ 1579, 267, 1580, 268, 1580, 269, 1580, 270, 1580, 267, 1581, 268, 1581,
+ 269, 1581, 270, 1581, 267, 1582, 268, 1582, 269, 1582, 270, 1582, 267,
+ 1583, 268, 1583, 267, 1584, 268, 1584, 267, 1585, 268, 1585, 267, 1586,
+ 268, 1586, 267, 1587, 268, 1587, 269, 1587, 270, 1587, 267, 1588, 268,
+ 1588, 269, 1588, 270, 1588, 267, 1589, 268, 1589, 269, 1589, 270, 1589,
+ 267, 1590, 268, 1590, 269, 1590, 270, 1590, 267, 1591, 268, 1591, 269,
+ 1591, 270, 1591, 267, 1592, 268, 1592, 269, 1592, 270, 1592, 267, 1593,
+ 268, 1593, 269, 1593, 270, 1593, 267, 1594, 268, 1594, 269, 1594, 270,
+ 1594, 267, 1601, 268, 1601, 269, 1601, 270, 1601, 267, 1602, 268, 1602,
+ 269, 1602, 270, 1602, 267, 1603, 268, 1603, 269, 1603, 270, 1603, 267,
+ 1604, 268, 1604, 269, 1604, 270, 1604, 267, 1605, 268, 1605, 269, 1605,
+ 270, 1605, 267, 1606, 268, 1606, 269, 1606, 270, 1606, 267, 1607, 268,
+ 1607, 269, 1607, 270, 1607, 267, 1608, 268, 1608, 267, 1609, 268, 1609,
+ 267, 1610, 268, 1610, 269, 1610, 270, 1610, 523, 1604, 1570, 524, 1604,
+ 1570, 523, 1604, 1571, 524, 1604, 1571, 523, 1604, 1573, 524, 1604, 1573,
+ 523, 1604, 1575, 524, 1604, 1575, 264, 33, 264, 34, 264, 35, 264, 36,
+ 264, 37, 264, 38, 264, 39, 264, 40, 264, 41, 264, 42, 264, 43, 264, 44,
+ 264, 45, 264, 46, 264, 47, 264, 48, 264, 49, 264, 50, 264, 51, 264, 52,
+ 264, 53, 264, 54, 264, 55, 264, 56, 264, 57, 264, 58, 264, 59, 264, 60,
+ 264, 61, 264, 62, 264, 63, 264, 64, 264, 65, 264, 66, 264, 67, 264, 68,
+ 264, 69, 264, 70, 264, 71, 264, 72, 264, 73, 264, 74, 264, 75, 264, 76,
+ 264, 77, 264, 78, 264, 79, 264, 80, 264, 81, 264, 82, 264, 83, 264, 84,
+ 264, 85, 264, 86, 264, 87, 264, 88, 264, 89, 264, 90, 264, 91, 264, 92,
+ 264, 93, 264, 94, 264, 95, 264, 96, 264, 97, 264, 98, 264, 99, 264, 100,
+ 264, 101, 264, 102, 264, 103, 264, 104, 264, 105, 264, 106, 264, 107,
+ 264, 108, 264, 109, 264, 110, 264, 111, 264, 112, 264, 113, 264, 114,
+ 264, 115, 264, 116, 264, 117, 264, 118, 264, 119, 264, 120, 264, 121,
+ 264, 122, 264, 123, 264, 124, 264, 125, 264, 126, 264, 10629, 264, 10630,
+ 272, 12290, 272, 12300, 272, 12301, 272, 12289, 272, 12539, 272, 12530,
+ 272, 12449, 272, 12451, 272, 12453, 272, 12455, 272, 12457, 272, 12515,
+ 272, 12517, 272, 12519, 272, 12483, 272, 12540, 272, 12450, 272, 12452,
+ 272, 12454, 272, 12456, 272, 12458, 272, 12459, 272, 12461, 272, 12463,
+ 272, 12465, 272, 12467, 272, 12469, 272, 12471, 272, 12473, 272, 12475,
+ 272, 12477, 272, 12479, 272, 12481, 272, 12484, 272, 12486, 272, 12488,
+ 272, 12490, 272, 12491, 272, 12492, 272, 12493, 272, 12494, 272, 12495,
+ 272, 12498, 272, 12501, 272, 12504, 272, 12507, 272, 12510, 272, 12511,
+ 272, 12512, 272, 12513, 272, 12514, 272, 12516, 272, 12518, 272, 12520,
+ 272, 12521, 272, 12522, 272, 12523, 272, 12524, 272, 12525, 272, 12527,
+ 272, 12531, 272, 12441, 272, 12442, 272, 12644, 272, 12593, 272, 12594,
+ 272, 12595, 272, 12596, 272, 12597, 272, 12598, 272, 12599, 272, 12600,
+ 272, 12601, 272, 12602, 272, 12603, 272, 12604, 272, 12605, 272, 12606,
+ 272, 12607, 272, 12608, 272, 12609, 272, 12610, 272, 12611, 272, 12612,
+ 272, 12613, 272, 12614, 272, 12615, 272, 12616, 272, 12617, 272, 12618,
+ 272, 12619, 272, 12620, 272, 12621, 272, 12622, 272, 12623, 272, 12624,
+ 272, 12625, 272, 12626, 272, 12627, 272, 12628, 272, 12629, 272, 12630,
+ 272, 12631, 272, 12632, 272, 12633, 272, 12634, 272, 12635, 272, 12636,
+ 272, 12637, 272, 12638, 272, 12639, 272, 12640, 272, 12641, 272, 12642,
+ 272, 12643, 264, 162, 264, 163, 264, 172, 264, 175, 264, 166, 264, 165,
+ 264, 8361, 272, 9474, 272, 8592, 272, 8593, 272, 8594, 272, 8595, 272,
+ 9632, 272, 9675, 512, 69785, 69818, 512, 69787, 69818, 512, 69797, 69818,
+ 512, 69937, 69927, 512, 69938, 69927, 512, 70471, 70462, 512, 70471,
+ 70487, 512, 70841, 70842, 512, 70841, 70832, 512, 70841, 70845, 512,
+ 71096, 71087, 512, 71097, 71087, 512, 119127, 119141, 512, 119128,
+ 119141, 512, 119135, 119150, 512, 119135, 119151, 512, 119135, 119152,
+ 512, 119135, 119153, 512, 119135, 119154, 512, 119225, 119141, 512,
+ 119226, 119141, 512, 119227, 119150, 512, 119228, 119150, 512, 119227,
+ 119151, 512, 119228, 119151, 262, 65, 262, 66, 262, 67, 262, 68, 262, 69,
+ 262, 70, 262, 71, 262, 72, 262, 73, 262, 74, 262, 75, 262, 76, 262, 77,
+ 262, 78, 262, 79, 262, 80, 262, 81, 262, 82, 262, 83, 262, 84, 262, 85,
+ 262, 86, 262, 87, 262, 88, 262, 89, 262, 90, 262, 97, 262, 98, 262, 99,
+ 262, 100, 262, 101, 262, 102, 262, 103, 262, 104, 262, 105, 262, 106,
+ 262, 107, 262, 108, 262, 109, 262, 110, 262, 111, 262, 112, 262, 113,
+ 262, 114, 262, 115, 262, 116, 262, 117, 262, 118, 262, 119, 262, 120,
+ 262, 121, 262, 122, 262, 65, 262, 66, 262, 67, 262, 68, 262, 69, 262, 70,
+ 262, 71, 262, 72, 262, 73, 262, 74, 262, 75, 262, 76, 262, 77, 262, 78,
+ 262, 79, 262, 80, 262, 81, 262, 82, 262, 83, 262, 84, 262, 85, 262, 86,
+ 262, 87, 262, 88, 262, 89, 262, 90, 262, 97, 262, 98, 262, 99, 262, 100,
+ 262, 101, 262, 102, 262, 103, 262, 105, 262, 106, 262, 107, 262, 108,
262, 109, 262, 110, 262, 111, 262, 112, 262, 113, 262, 114, 262, 115,
262, 116, 262, 117, 262, 118, 262, 119, 262, 120, 262, 121, 262, 122,
- 262, 65, 262, 67, 262, 68, 262, 71, 262, 74, 262, 75, 262, 78, 262, 79,
- 262, 80, 262, 81, 262, 83, 262, 84, 262, 85, 262, 86, 262, 87, 262, 88,
- 262, 89, 262, 90, 262, 97, 262, 98, 262, 99, 262, 100, 262, 102, 262,
- 104, 262, 105, 262, 106, 262, 107, 262, 108, 262, 109, 262, 110, 262,
- 112, 262, 113, 262, 114, 262, 115, 262, 116, 262, 117, 262, 118, 262,
- 119, 262, 120, 262, 121, 262, 122, 262, 65, 262, 66, 262, 67, 262, 68,
- 262, 69, 262, 70, 262, 71, 262, 72, 262, 73, 262, 74, 262, 75, 262, 76,
- 262, 77, 262, 78, 262, 79, 262, 80, 262, 81, 262, 82, 262, 83, 262, 84,
- 262, 85, 262, 86, 262, 87, 262, 88, 262, 89, 262, 90, 262, 97, 262, 98,
- 262, 99, 262, 100, 262, 101, 262, 102, 262, 103, 262, 104, 262, 105, 262,
- 106, 262, 107, 262, 108, 262, 109, 262, 110, 262, 111, 262, 112, 262,
- 113, 262, 114, 262, 115, 262, 116, 262, 117, 262, 118, 262, 119, 262,
- 120, 262, 121, 262, 122, 262, 65, 262, 66, 262, 68, 262, 69, 262, 70,
- 262, 71, 262, 74, 262, 75, 262, 76, 262, 77, 262, 78, 262, 79, 262, 80,
+ 262, 65, 262, 66, 262, 67, 262, 68, 262, 69, 262, 70, 262, 71, 262, 72,
+ 262, 73, 262, 74, 262, 75, 262, 76, 262, 77, 262, 78, 262, 79, 262, 80,
+ 262, 81, 262, 82, 262, 83, 262, 84, 262, 85, 262, 86, 262, 87, 262, 88,
+ 262, 89, 262, 90, 262, 97, 262, 98, 262, 99, 262, 100, 262, 101, 262,
+ 102, 262, 103, 262, 104, 262, 105, 262, 106, 262, 107, 262, 108, 262,
+ 109, 262, 110, 262, 111, 262, 112, 262, 113, 262, 114, 262, 115, 262,
+ 116, 262, 117, 262, 118, 262, 119, 262, 120, 262, 121, 262, 122, 262, 65,
+ 262, 67, 262, 68, 262, 71, 262, 74, 262, 75, 262, 78, 262, 79, 262, 80,
262, 81, 262, 83, 262, 84, 262, 85, 262, 86, 262, 87, 262, 88, 262, 89,
- 262, 97, 262, 98, 262, 99, 262, 100, 262, 101, 262, 102, 262, 103, 262,
- 104, 262, 105, 262, 106, 262, 107, 262, 108, 262, 109, 262, 110, 262,
- 111, 262, 112, 262, 113, 262, 114, 262, 115, 262, 116, 262, 117, 262,
- 118, 262, 119, 262, 120, 262, 121, 262, 122, 262, 65, 262, 66, 262, 68,
- 262, 69, 262, 70, 262, 71, 262, 73, 262, 74, 262, 75, 262, 76, 262, 77,
- 262, 79, 262, 83, 262, 84, 262, 85, 262, 86, 262, 87, 262, 88, 262, 89,
- 262, 97, 262, 98, 262, 99, 262, 100, 262, 101, 262, 102, 262, 103, 262,
- 104, 262, 105, 262, 106, 262, 107, 262, 108, 262, 109, 262, 110, 262,
- 111, 262, 112, 262, 113, 262, 114, 262, 115, 262, 116, 262, 117, 262,
- 118, 262, 119, 262, 120, 262, 121, 262, 122, 262, 65, 262, 66, 262, 67,
- 262, 68, 262, 69, 262, 70, 262, 71, 262, 72, 262, 73, 262, 74, 262, 75,
- 262, 76, 262, 77, 262, 78, 262, 79, 262, 80, 262, 81, 262, 82, 262, 83,
- 262, 84, 262, 85, 262, 86, 262, 87, 262, 88, 262, 89, 262, 90, 262, 97,
+ 262, 90, 262, 97, 262, 98, 262, 99, 262, 100, 262, 102, 262, 104, 262,
+ 105, 262, 106, 262, 107, 262, 108, 262, 109, 262, 110, 262, 112, 262,
+ 113, 262, 114, 262, 115, 262, 116, 262, 117, 262, 118, 262, 119, 262,
+ 120, 262, 121, 262, 122, 262, 65, 262, 66, 262, 67, 262, 68, 262, 69,
+ 262, 70, 262, 71, 262, 72, 262, 73, 262, 74, 262, 75, 262, 76, 262, 77,
+ 262, 78, 262, 79, 262, 80, 262, 81, 262, 82, 262, 83, 262, 84, 262, 85,
+ 262, 86, 262, 87, 262, 88, 262, 89, 262, 90, 262, 97, 262, 98, 262, 99,
+ 262, 100, 262, 101, 262, 102, 262, 103, 262, 104, 262, 105, 262, 106,
+ 262, 107, 262, 108, 262, 109, 262, 110, 262, 111, 262, 112, 262, 113,
+ 262, 114, 262, 115, 262, 116, 262, 117, 262, 118, 262, 119, 262, 120,
+ 262, 121, 262, 122, 262, 65, 262, 66, 262, 68, 262, 69, 262, 70, 262, 71,
+ 262, 74, 262, 75, 262, 76, 262, 77, 262, 78, 262, 79, 262, 80, 262, 81,
+ 262, 83, 262, 84, 262, 85, 262, 86, 262, 87, 262, 88, 262, 89, 262, 97,
+ 262, 98, 262, 99, 262, 100, 262, 101, 262, 102, 262, 103, 262, 104, 262,
+ 105, 262, 106, 262, 107, 262, 108, 262, 109, 262, 110, 262, 111, 262,
+ 112, 262, 113, 262, 114, 262, 115, 262, 116, 262, 117, 262, 118, 262,
+ 119, 262, 120, 262, 121, 262, 122, 262, 65, 262, 66, 262, 68, 262, 69,
+ 262, 70, 262, 71, 262, 73, 262, 74, 262, 75, 262, 76, 262, 77, 262, 79,
+ 262, 83, 262, 84, 262, 85, 262, 86, 262, 87, 262, 88, 262, 89, 262, 97,
262, 98, 262, 99, 262, 100, 262, 101, 262, 102, 262, 103, 262, 104, 262,
105, 262, 106, 262, 107, 262, 108, 262, 109, 262, 110, 262, 111, 262,
112, 262, 113, 262, 114, 262, 115, 262, 116, 262, 117, 262, 118, 262,
@@ -3536,33 +3871,15 @@ static unsigned int decomp_data[] = {
262, 89, 262, 90, 262, 97, 262, 98, 262, 99, 262, 100, 262, 101, 262,
102, 262, 103, 262, 104, 262, 105, 262, 106, 262, 107, 262, 108, 262,
109, 262, 110, 262, 111, 262, 112, 262, 113, 262, 114, 262, 115, 262,
- 116, 262, 117, 262, 118, 262, 119, 262, 120, 262, 121, 262, 122, 262,
- 305, 262, 567, 262, 913, 262, 914, 262, 915, 262, 916, 262, 917, 262,
- 918, 262, 919, 262, 920, 262, 921, 262, 922, 262, 923, 262, 924, 262,
- 925, 262, 926, 262, 927, 262, 928, 262, 929, 262, 1012, 262, 931, 262,
- 932, 262, 933, 262, 934, 262, 935, 262, 936, 262, 937, 262, 8711, 262,
- 945, 262, 946, 262, 947, 262, 948, 262, 949, 262, 950, 262, 951, 262,
- 952, 262, 953, 262, 954, 262, 955, 262, 956, 262, 957, 262, 958, 262,
- 959, 262, 960, 262, 961, 262, 962, 262, 963, 262, 964, 262, 965, 262,
- 966, 262, 967, 262, 968, 262, 969, 262, 8706, 262, 1013, 262, 977, 262,
- 1008, 262, 981, 262, 1009, 262, 982, 262, 913, 262, 914, 262, 915, 262,
- 916, 262, 917, 262, 918, 262, 919, 262, 920, 262, 921, 262, 922, 262,
- 923, 262, 924, 262, 925, 262, 926, 262, 927, 262, 928, 262, 929, 262,
- 1012, 262, 931, 262, 932, 262, 933, 262, 934, 262, 935, 262, 936, 262,
- 937, 262, 8711, 262, 945, 262, 946, 262, 947, 262, 948, 262, 949, 262,
- 950, 262, 951, 262, 952, 262, 953, 262, 954, 262, 955, 262, 956, 262,
- 957, 262, 958, 262, 959, 262, 960, 262, 961, 262, 962, 262, 963, 262,
- 964, 262, 965, 262, 966, 262, 967, 262, 968, 262, 969, 262, 8706, 262,
- 1013, 262, 977, 262, 1008, 262, 981, 262, 1009, 262, 982, 262, 913, 262,
- 914, 262, 915, 262, 916, 262, 917, 262, 918, 262, 919, 262, 920, 262,
- 921, 262, 922, 262, 923, 262, 924, 262, 925, 262, 926, 262, 927, 262,
- 928, 262, 929, 262, 1012, 262, 931, 262, 932, 262, 933, 262, 934, 262,
- 935, 262, 936, 262, 937, 262, 8711, 262, 945, 262, 946, 262, 947, 262,
- 948, 262, 949, 262, 950, 262, 951, 262, 952, 262, 953, 262, 954, 262,
- 955, 262, 956, 262, 957, 262, 958, 262, 959, 262, 960, 262, 961, 262,
- 962, 262, 963, 262, 964, 262, 965, 262, 966, 262, 967, 262, 968, 262,
- 969, 262, 8706, 262, 1013, 262, 977, 262, 1008, 262, 981, 262, 1009, 262,
- 982, 262, 913, 262, 914, 262, 915, 262, 916, 262, 917, 262, 918, 262,
+ 116, 262, 117, 262, 118, 262, 119, 262, 120, 262, 121, 262, 122, 262, 65,
+ 262, 66, 262, 67, 262, 68, 262, 69, 262, 70, 262, 71, 262, 72, 262, 73,
+ 262, 74, 262, 75, 262, 76, 262, 77, 262, 78, 262, 79, 262, 80, 262, 81,
+ 262, 82, 262, 83, 262, 84, 262, 85, 262, 86, 262, 87, 262, 88, 262, 89,
+ 262, 90, 262, 97, 262, 98, 262, 99, 262, 100, 262, 101, 262, 102, 262,
+ 103, 262, 104, 262, 105, 262, 106, 262, 107, 262, 108, 262, 109, 262,
+ 110, 262, 111, 262, 112, 262, 113, 262, 114, 262, 115, 262, 116, 262,
+ 117, 262, 118, 262, 119, 262, 120, 262, 121, 262, 122, 262, 305, 262,
+ 567, 262, 913, 262, 914, 262, 915, 262, 916, 262, 917, 262, 918, 262,
919, 262, 920, 262, 921, 262, 922, 262, 923, 262, 924, 262, 925, 262,
926, 262, 927, 262, 928, 262, 929, 262, 1012, 262, 931, 262, 932, 262,
933, 262, 934, 262, 935, 262, 936, 262, 937, 262, 8711, 262, 945, 262,
@@ -3578,339 +3895,546 @@ static unsigned int decomp_data[] = {
951, 262, 952, 262, 953, 262, 954, 262, 955, 262, 956, 262, 957, 262,
958, 262, 959, 262, 960, 262, 961, 262, 962, 262, 963, 262, 964, 262,
965, 262, 966, 262, 967, 262, 968, 262, 969, 262, 8706, 262, 1013, 262,
- 977, 262, 1008, 262, 981, 262, 1009, 262, 982, 262, 988, 262, 989, 262,
- 48, 262, 49, 262, 50, 262, 51, 262, 52, 262, 53, 262, 54, 262, 55, 262,
- 56, 262, 57, 262, 48, 262, 49, 262, 50, 262, 51, 262, 52, 262, 53, 262,
- 54, 262, 55, 262, 56, 262, 57, 262, 48, 262, 49, 262, 50, 262, 51, 262,
- 52, 262, 53, 262, 54, 262, 55, 262, 56, 262, 57, 262, 48, 262, 49, 262,
- 50, 262, 51, 262, 52, 262, 53, 262, 54, 262, 55, 262, 56, 262, 57, 262,
- 48, 262, 49, 262, 50, 262, 51, 262, 52, 262, 53, 262, 54, 262, 55, 262,
- 56, 262, 57, 262, 1575, 262, 1576, 262, 1580, 262, 1583, 262, 1608, 262,
- 1586, 262, 1581, 262, 1591, 262, 1610, 262, 1603, 262, 1604, 262, 1605,
- 262, 1606, 262, 1587, 262, 1593, 262, 1601, 262, 1589, 262, 1602, 262,
- 1585, 262, 1588, 262, 1578, 262, 1579, 262, 1582, 262, 1584, 262, 1590,
- 262, 1592, 262, 1594, 262, 1646, 262, 1722, 262, 1697, 262, 1647, 262,
- 1576, 262, 1580, 262, 1607, 262, 1581, 262, 1610, 262, 1603, 262, 1604,
- 262, 1605, 262, 1606, 262, 1587, 262, 1593, 262, 1601, 262, 1589, 262,
- 1602, 262, 1588, 262, 1578, 262, 1579, 262, 1582, 262, 1590, 262, 1594,
- 262, 1580, 262, 1581, 262, 1610, 262, 1604, 262, 1606, 262, 1587, 262,
- 1593, 262, 1589, 262, 1602, 262, 1588, 262, 1582, 262, 1590, 262, 1594,
- 262, 1722, 262, 1647, 262, 1576, 262, 1580, 262, 1607, 262, 1581, 262,
- 1591, 262, 1610, 262, 1603, 262, 1605, 262, 1606, 262, 1587, 262, 1593,
- 262, 1601, 262, 1589, 262, 1602, 262, 1588, 262, 1578, 262, 1579, 262,
- 1582, 262, 1590, 262, 1592, 262, 1594, 262, 1646, 262, 1697, 262, 1575,
- 262, 1576, 262, 1580, 262, 1583, 262, 1607, 262, 1608, 262, 1586, 262,
- 1581, 262, 1591, 262, 1610, 262, 1604, 262, 1605, 262, 1606, 262, 1587,
- 262, 1593, 262, 1601, 262, 1589, 262, 1602, 262, 1585, 262, 1588, 262,
- 1578, 262, 1579, 262, 1582, 262, 1584, 262, 1590, 262, 1592, 262, 1594,
- 262, 1576, 262, 1580, 262, 1583, 262, 1608, 262, 1586, 262, 1581, 262,
- 1591, 262, 1610, 262, 1604, 262, 1605, 262, 1606, 262, 1587, 262, 1593,
- 262, 1601, 262, 1589, 262, 1602, 262, 1585, 262, 1588, 262, 1578, 262,
- 1579, 262, 1582, 262, 1584, 262, 1590, 262, 1592, 262, 1594, 514, 48, 46,
- 514, 48, 44, 514, 49, 44, 514, 50, 44, 514, 51, 44, 514, 52, 44, 514, 53,
- 44, 514, 54, 44, 514, 55, 44, 514, 56, 44, 514, 57, 44, 770, 40, 65, 41,
- 770, 40, 66, 41, 770, 40, 67, 41, 770, 40, 68, 41, 770, 40, 69, 41, 770,
- 40, 70, 41, 770, 40, 71, 41, 770, 40, 72, 41, 770, 40, 73, 41, 770, 40,
- 74, 41, 770, 40, 75, 41, 770, 40, 76, 41, 770, 40, 77, 41, 770, 40, 78,
- 41, 770, 40, 79, 41, 770, 40, 80, 41, 770, 40, 81, 41, 770, 40, 82, 41,
- 770, 40, 83, 41, 770, 40, 84, 41, 770, 40, 85, 41, 770, 40, 86, 41, 770,
- 40, 87, 41, 770, 40, 88, 41, 770, 40, 89, 41, 770, 40, 90, 41, 770,
- 12308, 83, 12309, 263, 67, 263, 82, 519, 67, 68, 519, 87, 90, 266, 65,
- 266, 66, 266, 67, 266, 68, 266, 69, 266, 70, 266, 71, 266, 72, 266, 73,
- 266, 74, 266, 75, 266, 76, 266, 77, 266, 78, 266, 79, 266, 80, 266, 81,
- 266, 82, 266, 83, 266, 84, 266, 85, 266, 86, 266, 87, 266, 88, 266, 89,
- 266, 90, 522, 72, 86, 522, 77, 86, 522, 83, 68, 522, 83, 83, 778, 80, 80,
- 86, 522, 87, 67, 515, 77, 67, 515, 77, 68, 522, 68, 74, 522, 12411,
- 12363, 522, 12467, 12467, 266, 12469, 266, 25163, 266, 23383, 266, 21452,
- 266, 12487, 266, 20108, 266, 22810, 266, 35299, 266, 22825, 266, 20132,
- 266, 26144, 266, 28961, 266, 26009, 266, 21069, 266, 24460, 266, 20877,
- 266, 26032, 266, 21021, 266, 32066, 266, 29983, 266, 36009, 266, 22768,
- 266, 21561, 266, 28436, 266, 25237, 266, 25429, 266, 19968, 266, 19977,
- 266, 36938, 266, 24038, 266, 20013, 266, 21491, 266, 25351, 266, 36208,
- 266, 25171, 266, 31105, 266, 31354, 266, 21512, 266, 28288, 266, 26377,
- 266, 26376, 266, 30003, 266, 21106, 266, 21942, 770, 12308, 26412, 12309,
- 770, 12308, 19977, 12309, 770, 12308, 20108, 12309, 770, 12308, 23433,
- 12309, 770, 12308, 28857, 12309, 770, 12308, 25171, 12309, 770, 12308,
- 30423, 12309, 770, 12308, 21213, 12309, 770, 12308, 25943, 12309, 263,
- 24471, 263, 21487, 256, 20029, 256, 20024, 256, 20033, 256, 131362, 256,
- 20320, 256, 20398, 256, 20411, 256, 20482, 256, 20602, 256, 20633, 256,
- 20711, 256, 20687, 256, 13470, 256, 132666, 256, 20813, 256, 20820, 256,
- 20836, 256, 20855, 256, 132380, 256, 13497, 256, 20839, 256, 20877, 256,
- 132427, 256, 20887, 256, 20900, 256, 20172, 256, 20908, 256, 20917, 256,
- 168415, 256, 20981, 256, 20995, 256, 13535, 256, 21051, 256, 21062, 256,
- 21106, 256, 21111, 256, 13589, 256, 21191, 256, 21193, 256, 21220, 256,
- 21242, 256, 21253, 256, 21254, 256, 21271, 256, 21321, 256, 21329, 256,
- 21338, 256, 21363, 256, 21373, 256, 21375, 256, 21375, 256, 21375, 256,
- 133676, 256, 28784, 256, 21450, 256, 21471, 256, 133987, 256, 21483, 256,
- 21489, 256, 21510, 256, 21662, 256, 21560, 256, 21576, 256, 21608, 256,
- 21666, 256, 21750, 256, 21776, 256, 21843, 256, 21859, 256, 21892, 256,
- 21892, 256, 21913, 256, 21931, 256, 21939, 256, 21954, 256, 22294, 256,
- 22022, 256, 22295, 256, 22097, 256, 22132, 256, 20999, 256, 22766, 256,
- 22478, 256, 22516, 256, 22541, 256, 22411, 256, 22578, 256, 22577, 256,
- 22700, 256, 136420, 256, 22770, 256, 22775, 256, 22790, 256, 22810, 256,
- 22818, 256, 22882, 256, 136872, 256, 136938, 256, 23020, 256, 23067, 256,
- 23079, 256, 23000, 256, 23142, 256, 14062, 256, 14076, 256, 23304, 256,
- 23358, 256, 23358, 256, 137672, 256, 23491, 256, 23512, 256, 23527, 256,
- 23539, 256, 138008, 256, 23551, 256, 23558, 256, 24403, 256, 23586, 256,
- 14209, 256, 23648, 256, 23662, 256, 23744, 256, 23693, 256, 138724, 256,
- 23875, 256, 138726, 256, 23918, 256, 23915, 256, 23932, 256, 24033, 256,
- 24034, 256, 14383, 256, 24061, 256, 24104, 256, 24125, 256, 24169, 256,
- 14434, 256, 139651, 256, 14460, 256, 24240, 256, 24243, 256, 24246, 256,
- 24266, 256, 172946, 256, 24318, 256, 140081, 256, 140081, 256, 33281,
- 256, 24354, 256, 24354, 256, 14535, 256, 144056, 256, 156122, 256, 24418,
- 256, 24427, 256, 14563, 256, 24474, 256, 24525, 256, 24535, 256, 24569,
- 256, 24705, 256, 14650, 256, 14620, 256, 24724, 256, 141012, 256, 24775,
- 256, 24904, 256, 24908, 256, 24910, 256, 24908, 256, 24954, 256, 24974,
- 256, 25010, 256, 24996, 256, 25007, 256, 25054, 256, 25074, 256, 25078,
- 256, 25104, 256, 25115, 256, 25181, 256, 25265, 256, 25300, 256, 25424,
- 256, 142092, 256, 25405, 256, 25340, 256, 25448, 256, 25475, 256, 25572,
- 256, 142321, 256, 25634, 256, 25541, 256, 25513, 256, 14894, 256, 25705,
- 256, 25726, 256, 25757, 256, 25719, 256, 14956, 256, 25935, 256, 25964,
- 256, 143370, 256, 26083, 256, 26360, 256, 26185, 256, 15129, 256, 26257,
- 256, 15112, 256, 15076, 256, 20882, 256, 20885, 256, 26368, 256, 26268,
- 256, 32941, 256, 17369, 256, 26391, 256, 26395, 256, 26401, 256, 26462,
- 256, 26451, 256, 144323, 256, 15177, 256, 26618, 256, 26501, 256, 26706,
- 256, 26757, 256, 144493, 256, 26766, 256, 26655, 256, 26900, 256, 15261,
- 256, 26946, 256, 27043, 256, 27114, 256, 27304, 256, 145059, 256, 27355,
- 256, 15384, 256, 27425, 256, 145575, 256, 27476, 256, 15438, 256, 27506,
- 256, 27551, 256, 27578, 256, 27579, 256, 146061, 256, 138507, 256,
- 146170, 256, 27726, 256, 146620, 256, 27839, 256, 27853, 256, 27751, 256,
- 27926, 256, 27966, 256, 28023, 256, 27969, 256, 28009, 256, 28024, 256,
- 28037, 256, 146718, 256, 27956, 256, 28207, 256, 28270, 256, 15667, 256,
- 28363, 256, 28359, 256, 147153, 256, 28153, 256, 28526, 256, 147294, 256,
- 147342, 256, 28614, 256, 28729, 256, 28702, 256, 28699, 256, 15766, 256,
- 28746, 256, 28797, 256, 28791, 256, 28845, 256, 132389, 256, 28997, 256,
- 148067, 256, 29084, 256, 148395, 256, 29224, 256, 29237, 256, 29264, 256,
- 149000, 256, 29312, 256, 29333, 256, 149301, 256, 149524, 256, 29562,
- 256, 29579, 256, 16044, 256, 29605, 256, 16056, 256, 16056, 256, 29767,
- 256, 29788, 256, 29809, 256, 29829, 256, 29898, 256, 16155, 256, 29988,
- 256, 150582, 256, 30014, 256, 150674, 256, 30064, 256, 139679, 256,
- 30224, 256, 151457, 256, 151480, 256, 151620, 256, 16380, 256, 16392,
- 256, 30452, 256, 151795, 256, 151794, 256, 151833, 256, 151859, 256,
- 30494, 256, 30495, 256, 30495, 256, 30538, 256, 16441, 256, 30603, 256,
- 16454, 256, 16534, 256, 152605, 256, 30798, 256, 30860, 256, 30924, 256,
- 16611, 256, 153126, 256, 31062, 256, 153242, 256, 153285, 256, 31119,
- 256, 31211, 256, 16687, 256, 31296, 256, 31306, 256, 31311, 256, 153980,
- 256, 154279, 256, 154279, 256, 31470, 256, 16898, 256, 154539, 256,
- 31686, 256, 31689, 256, 16935, 256, 154752, 256, 31954, 256, 17056, 256,
- 31976, 256, 31971, 256, 32000, 256, 155526, 256, 32099, 256, 17153, 256,
- 32199, 256, 32258, 256, 32325, 256, 17204, 256, 156200, 256, 156231, 256,
- 17241, 256, 156377, 256, 32634, 256, 156478, 256, 32661, 256, 32762, 256,
- 32773, 256, 156890, 256, 156963, 256, 32864, 256, 157096, 256, 32880,
- 256, 144223, 256, 17365, 256, 32946, 256, 33027, 256, 17419, 256, 33086,
- 256, 23221, 256, 157607, 256, 157621, 256, 144275, 256, 144284, 256,
- 33281, 256, 33284, 256, 36766, 256, 17515, 256, 33425, 256, 33419, 256,
- 33437, 256, 21171, 256, 33457, 256, 33459, 256, 33469, 256, 33510, 256,
- 158524, 256, 33509, 256, 33565, 256, 33635, 256, 33709, 256, 33571, 256,
- 33725, 256, 33767, 256, 33879, 256, 33619, 256, 33738, 256, 33740, 256,
- 33756, 256, 158774, 256, 159083, 256, 158933, 256, 17707, 256, 34033,
- 256, 34035, 256, 34070, 256, 160714, 256, 34148, 256, 159532, 256, 17757,
- 256, 17761, 256, 159665, 256, 159954, 256, 17771, 256, 34384, 256, 34396,
- 256, 34407, 256, 34409, 256, 34473, 256, 34440, 256, 34574, 256, 34530,
- 256, 34681, 256, 34600, 256, 34667, 256, 34694, 256, 17879, 256, 34785,
- 256, 34817, 256, 17913, 256, 34912, 256, 34915, 256, 161383, 256, 35031,
- 256, 35038, 256, 17973, 256, 35066, 256, 13499, 256, 161966, 256, 162150,
- 256, 18110, 256, 18119, 256, 35488, 256, 35565, 256, 35722, 256, 35925,
- 256, 162984, 256, 36011, 256, 36033, 256, 36123, 256, 36215, 256, 163631,
- 256, 133124, 256, 36299, 256, 36284, 256, 36336, 256, 133342, 256, 36564,
- 256, 36664, 256, 165330, 256, 165357, 256, 37012, 256, 37105, 256, 37137,
- 256, 165678, 256, 37147, 256, 37432, 256, 37591, 256, 37592, 256, 37500,
- 256, 37881, 256, 37909, 256, 166906, 256, 38283, 256, 18837, 256, 38327,
- 256, 167287, 256, 18918, 256, 38595, 256, 23986, 256, 38691, 256, 168261,
- 256, 168474, 256, 19054, 256, 19062, 256, 38880, 256, 168970, 256, 19122,
- 256, 169110, 256, 38923, 256, 38923, 256, 38953, 256, 169398, 256, 39138,
- 256, 19251, 256, 39209, 256, 39335, 256, 39362, 256, 39422, 256, 19406,
- 256, 170800, 256, 39698, 256, 40000, 256, 40189, 256, 19662, 256, 19693,
- 256, 40295, 256, 172238, 256, 19704, 256, 172293, 256, 172558, 256,
- 172689, 256, 40635, 256, 19798, 256, 40697, 256, 40702, 256, 40709, 256,
- 40719, 256, 40726, 256, 40763, 256, 173568,
+ 977, 262, 1008, 262, 981, 262, 1009, 262, 982, 262, 913, 262, 914, 262,
+ 915, 262, 916, 262, 917, 262, 918, 262, 919, 262, 920, 262, 921, 262,
+ 922, 262, 923, 262, 924, 262, 925, 262, 926, 262, 927, 262, 928, 262,
+ 929, 262, 1012, 262, 931, 262, 932, 262, 933, 262, 934, 262, 935, 262,
+ 936, 262, 937, 262, 8711, 262, 945, 262, 946, 262, 947, 262, 948, 262,
+ 949, 262, 950, 262, 951, 262, 952, 262, 953, 262, 954, 262, 955, 262,
+ 956, 262, 957, 262, 958, 262, 959, 262, 960, 262, 961, 262, 962, 262,
+ 963, 262, 964, 262, 965, 262, 966, 262, 967, 262, 968, 262, 969, 262,
+ 8706, 262, 1013, 262, 977, 262, 1008, 262, 981, 262, 1009, 262, 982, 262,
+ 913, 262, 914, 262, 915, 262, 916, 262, 917, 262, 918, 262, 919, 262,
+ 920, 262, 921, 262, 922, 262, 923, 262, 924, 262, 925, 262, 926, 262,
+ 927, 262, 928, 262, 929, 262, 1012, 262, 931, 262, 932, 262, 933, 262,
+ 934, 262, 935, 262, 936, 262, 937, 262, 8711, 262, 945, 262, 946, 262,
+ 947, 262, 948, 262, 949, 262, 950, 262, 951, 262, 952, 262, 953, 262,
+ 954, 262, 955, 262, 956, 262, 957, 262, 958, 262, 959, 262, 960, 262,
+ 961, 262, 962, 262, 963, 262, 964, 262, 965, 262, 966, 262, 967, 262,
+ 968, 262, 969, 262, 8706, 262, 1013, 262, 977, 262, 1008, 262, 981, 262,
+ 1009, 262, 982, 262, 913, 262, 914, 262, 915, 262, 916, 262, 917, 262,
+ 918, 262, 919, 262, 920, 262, 921, 262, 922, 262, 923, 262, 924, 262,
+ 925, 262, 926, 262, 927, 262, 928, 262, 929, 262, 1012, 262, 931, 262,
+ 932, 262, 933, 262, 934, 262, 935, 262, 936, 262, 937, 262, 8711, 262,
+ 945, 262, 946, 262, 947, 262, 948, 262, 949, 262, 950, 262, 951, 262,
+ 952, 262, 953, 262, 954, 262, 955, 262, 956, 262, 957, 262, 958, 262,
+ 959, 262, 960, 262, 961, 262, 962, 262, 963, 262, 964, 262, 965, 262,
+ 966, 262, 967, 262, 968, 262, 969, 262, 8706, 262, 1013, 262, 977, 262,
+ 1008, 262, 981, 262, 1009, 262, 982, 262, 988, 262, 989, 262, 48, 262,
+ 49, 262, 50, 262, 51, 262, 52, 262, 53, 262, 54, 262, 55, 262, 56, 262,
+ 57, 262, 48, 262, 49, 262, 50, 262, 51, 262, 52, 262, 53, 262, 54, 262,
+ 55, 262, 56, 262, 57, 262, 48, 262, 49, 262, 50, 262, 51, 262, 52, 262,
+ 53, 262, 54, 262, 55, 262, 56, 262, 57, 262, 48, 262, 49, 262, 50, 262,
+ 51, 262, 52, 262, 53, 262, 54, 262, 55, 262, 56, 262, 57, 262, 48, 262,
+ 49, 262, 50, 262, 51, 262, 52, 262, 53, 262, 54, 262, 55, 262, 56, 262,
+ 57, 262, 1575, 262, 1576, 262, 1580, 262, 1583, 262, 1608, 262, 1586,
+ 262, 1581, 262, 1591, 262, 1610, 262, 1603, 262, 1604, 262, 1605, 262,
+ 1606, 262, 1587, 262, 1593, 262, 1601, 262, 1589, 262, 1602, 262, 1585,
+ 262, 1588, 262, 1578, 262, 1579, 262, 1582, 262, 1584, 262, 1590, 262,
+ 1592, 262, 1594, 262, 1646, 262, 1722, 262, 1697, 262, 1647, 262, 1576,
+ 262, 1580, 262, 1607, 262, 1581, 262, 1610, 262, 1603, 262, 1604, 262,
+ 1605, 262, 1606, 262, 1587, 262, 1593, 262, 1601, 262, 1589, 262, 1602,
+ 262, 1588, 262, 1578, 262, 1579, 262, 1582, 262, 1590, 262, 1594, 262,
+ 1580, 262, 1581, 262, 1610, 262, 1604, 262, 1606, 262, 1587, 262, 1593,
+ 262, 1589, 262, 1602, 262, 1588, 262, 1582, 262, 1590, 262, 1594, 262,
+ 1722, 262, 1647, 262, 1576, 262, 1580, 262, 1607, 262, 1581, 262, 1591,
+ 262, 1610, 262, 1603, 262, 1605, 262, 1606, 262, 1587, 262, 1593, 262,
+ 1601, 262, 1589, 262, 1602, 262, 1588, 262, 1578, 262, 1579, 262, 1582,
+ 262, 1590, 262, 1592, 262, 1594, 262, 1646, 262, 1697, 262, 1575, 262,
+ 1576, 262, 1580, 262, 1583, 262, 1607, 262, 1608, 262, 1586, 262, 1581,
+ 262, 1591, 262, 1610, 262, 1604, 262, 1605, 262, 1606, 262, 1587, 262,
+ 1593, 262, 1601, 262, 1589, 262, 1602, 262, 1585, 262, 1588, 262, 1578,
+ 262, 1579, 262, 1582, 262, 1584, 262, 1590, 262, 1592, 262, 1594, 262,
+ 1576, 262, 1580, 262, 1583, 262, 1608, 262, 1586, 262, 1581, 262, 1591,
+ 262, 1610, 262, 1604, 262, 1605, 262, 1606, 262, 1587, 262, 1593, 262,
+ 1601, 262, 1589, 262, 1602, 262, 1585, 262, 1588, 262, 1578, 262, 1579,
+ 262, 1582, 262, 1584, 262, 1590, 262, 1592, 262, 1594, 514, 48, 46, 514,
+ 48, 44, 514, 49, 44, 514, 50, 44, 514, 51, 44, 514, 52, 44, 514, 53, 44,
+ 514, 54, 44, 514, 55, 44, 514, 56, 44, 514, 57, 44, 770, 40, 65, 41, 770,
+ 40, 66, 41, 770, 40, 67, 41, 770, 40, 68, 41, 770, 40, 69, 41, 770, 40,
+ 70, 41, 770, 40, 71, 41, 770, 40, 72, 41, 770, 40, 73, 41, 770, 40, 74,
+ 41, 770, 40, 75, 41, 770, 40, 76, 41, 770, 40, 77, 41, 770, 40, 78, 41,
+ 770, 40, 79, 41, 770, 40, 80, 41, 770, 40, 81, 41, 770, 40, 82, 41, 770,
+ 40, 83, 41, 770, 40, 84, 41, 770, 40, 85, 41, 770, 40, 86, 41, 770, 40,
+ 87, 41, 770, 40, 88, 41, 770, 40, 89, 41, 770, 40, 90, 41, 770, 12308,
+ 83, 12309, 263, 67, 263, 82, 519, 67, 68, 519, 87, 90, 266, 65, 266, 66,
+ 266, 67, 266, 68, 266, 69, 266, 70, 266, 71, 266, 72, 266, 73, 266, 74,
+ 266, 75, 266, 76, 266, 77, 266, 78, 266, 79, 266, 80, 266, 81, 266, 82,
+ 266, 83, 266, 84, 266, 85, 266, 86, 266, 87, 266, 88, 266, 89, 266, 90,
+ 522, 72, 86, 522, 77, 86, 522, 83, 68, 522, 83, 83, 778, 80, 80, 86, 522,
+ 87, 67, 515, 77, 67, 515, 77, 68, 522, 68, 74, 522, 12411, 12363, 522,
+ 12467, 12467, 266, 12469, 266, 25163, 266, 23383, 266, 21452, 266, 12487,
+ 266, 20108, 266, 22810, 266, 35299, 266, 22825, 266, 20132, 266, 26144,
+ 266, 28961, 266, 26009, 266, 21069, 266, 24460, 266, 20877, 266, 26032,
+ 266, 21021, 266, 32066, 266, 29983, 266, 36009, 266, 22768, 266, 21561,
+ 266, 28436, 266, 25237, 266, 25429, 266, 19968, 266, 19977, 266, 36938,
+ 266, 24038, 266, 20013, 266, 21491, 266, 25351, 266, 36208, 266, 25171,
+ 266, 31105, 266, 31354, 266, 21512, 266, 28288, 266, 26377, 266, 26376,
+ 266, 30003, 266, 21106, 266, 21942, 770, 12308, 26412, 12309, 770, 12308,
+ 19977, 12309, 770, 12308, 20108, 12309, 770, 12308, 23433, 12309, 770,
+ 12308, 28857, 12309, 770, 12308, 25171, 12309, 770, 12308, 30423, 12309,
+ 770, 12308, 21213, 12309, 770, 12308, 25943, 12309, 263, 24471, 263,
+ 21487, 256, 20029, 256, 20024, 256, 20033, 256, 131362, 256, 20320, 256,
+ 20398, 256, 20411, 256, 20482, 256, 20602, 256, 20633, 256, 20711, 256,
+ 20687, 256, 13470, 256, 132666, 256, 20813, 256, 20820, 256, 20836, 256,
+ 20855, 256, 132380, 256, 13497, 256, 20839, 256, 20877, 256, 132427, 256,
+ 20887, 256, 20900, 256, 20172, 256, 20908, 256, 20917, 256, 168415, 256,
+ 20981, 256, 20995, 256, 13535, 256, 21051, 256, 21062, 256, 21106, 256,
+ 21111, 256, 13589, 256, 21191, 256, 21193, 256, 21220, 256, 21242, 256,
+ 21253, 256, 21254, 256, 21271, 256, 21321, 256, 21329, 256, 21338, 256,
+ 21363, 256, 21373, 256, 21375, 256, 21375, 256, 21375, 256, 133676, 256,
+ 28784, 256, 21450, 256, 21471, 256, 133987, 256, 21483, 256, 21489, 256,
+ 21510, 256, 21662, 256, 21560, 256, 21576, 256, 21608, 256, 21666, 256,
+ 21750, 256, 21776, 256, 21843, 256, 21859, 256, 21892, 256, 21892, 256,
+ 21913, 256, 21931, 256, 21939, 256, 21954, 256, 22294, 256, 22022, 256,
+ 22295, 256, 22097, 256, 22132, 256, 20999, 256, 22766, 256, 22478, 256,
+ 22516, 256, 22541, 256, 22411, 256, 22578, 256, 22577, 256, 22700, 256,
+ 136420, 256, 22770, 256, 22775, 256, 22790, 256, 22810, 256, 22818, 256,
+ 22882, 256, 136872, 256, 136938, 256, 23020, 256, 23067, 256, 23079, 256,
+ 23000, 256, 23142, 256, 14062, 256, 14076, 256, 23304, 256, 23358, 256,
+ 23358, 256, 137672, 256, 23491, 256, 23512, 256, 23527, 256, 23539, 256,
+ 138008, 256, 23551, 256, 23558, 256, 24403, 256, 23586, 256, 14209, 256,
+ 23648, 256, 23662, 256, 23744, 256, 23693, 256, 138724, 256, 23875, 256,
+ 138726, 256, 23918, 256, 23915, 256, 23932, 256, 24033, 256, 24034, 256,
+ 14383, 256, 24061, 256, 24104, 256, 24125, 256, 24169, 256, 14434, 256,
+ 139651, 256, 14460, 256, 24240, 256, 24243, 256, 24246, 256, 24266, 256,
+ 172946, 256, 24318, 256, 140081, 256, 140081, 256, 33281, 256, 24354,
+ 256, 24354, 256, 14535, 256, 144056, 256, 156122, 256, 24418, 256, 24427,
+ 256, 14563, 256, 24474, 256, 24525, 256, 24535, 256, 24569, 256, 24705,
+ 256, 14650, 256, 14620, 256, 24724, 256, 141012, 256, 24775, 256, 24904,
+ 256, 24908, 256, 24910, 256, 24908, 256, 24954, 256, 24974, 256, 25010,
+ 256, 24996, 256, 25007, 256, 25054, 256, 25074, 256, 25078, 256, 25104,
+ 256, 25115, 256, 25181, 256, 25265, 256, 25300, 256, 25424, 256, 142092,
+ 256, 25405, 256, 25340, 256, 25448, 256, 25475, 256, 25572, 256, 142321,
+ 256, 25634, 256, 25541, 256, 25513, 256, 14894, 256, 25705, 256, 25726,
+ 256, 25757, 256, 25719, 256, 14956, 256, 25935, 256, 25964, 256, 143370,
+ 256, 26083, 256, 26360, 256, 26185, 256, 15129, 256, 26257, 256, 15112,
+ 256, 15076, 256, 20882, 256, 20885, 256, 26368, 256, 26268, 256, 32941,
+ 256, 17369, 256, 26391, 256, 26395, 256, 26401, 256, 26462, 256, 26451,
+ 256, 144323, 256, 15177, 256, 26618, 256, 26501, 256, 26706, 256, 26757,
+ 256, 144493, 256, 26766, 256, 26655, 256, 26900, 256, 15261, 256, 26946,
+ 256, 27043, 256, 27114, 256, 27304, 256, 145059, 256, 27355, 256, 15384,
+ 256, 27425, 256, 145575, 256, 27476, 256, 15438, 256, 27506, 256, 27551,
+ 256, 27578, 256, 27579, 256, 146061, 256, 138507, 256, 146170, 256,
+ 27726, 256, 146620, 256, 27839, 256, 27853, 256, 27751, 256, 27926, 256,
+ 27966, 256, 28023, 256, 27969, 256, 28009, 256, 28024, 256, 28037, 256,
+ 146718, 256, 27956, 256, 28207, 256, 28270, 256, 15667, 256, 28363, 256,
+ 28359, 256, 147153, 256, 28153, 256, 28526, 256, 147294, 256, 147342,
+ 256, 28614, 256, 28729, 256, 28702, 256, 28699, 256, 15766, 256, 28746,
+ 256, 28797, 256, 28791, 256, 28845, 256, 132389, 256, 28997, 256, 148067,
+ 256, 29084, 256, 148395, 256, 29224, 256, 29237, 256, 29264, 256, 149000,
+ 256, 29312, 256, 29333, 256, 149301, 256, 149524, 256, 29562, 256, 29579,
+ 256, 16044, 256, 29605, 256, 16056, 256, 16056, 256, 29767, 256, 29788,
+ 256, 29809, 256, 29829, 256, 29898, 256, 16155, 256, 29988, 256, 150582,
+ 256, 30014, 256, 150674, 256, 30064, 256, 139679, 256, 30224, 256,
+ 151457, 256, 151480, 256, 151620, 256, 16380, 256, 16392, 256, 30452,
+ 256, 151795, 256, 151794, 256, 151833, 256, 151859, 256, 30494, 256,
+ 30495, 256, 30495, 256, 30538, 256, 16441, 256, 30603, 256, 16454, 256,
+ 16534, 256, 152605, 256, 30798, 256, 30860, 256, 30924, 256, 16611, 256,
+ 153126, 256, 31062, 256, 153242, 256, 153285, 256, 31119, 256, 31211,
+ 256, 16687, 256, 31296, 256, 31306, 256, 31311, 256, 153980, 256, 154279,
+ 256, 154279, 256, 31470, 256, 16898, 256, 154539, 256, 31686, 256, 31689,
+ 256, 16935, 256, 154752, 256, 31954, 256, 17056, 256, 31976, 256, 31971,
+ 256, 32000, 256, 155526, 256, 32099, 256, 17153, 256, 32199, 256, 32258,
+ 256, 32325, 256, 17204, 256, 156200, 256, 156231, 256, 17241, 256,
+ 156377, 256, 32634, 256, 156478, 256, 32661, 256, 32762, 256, 32773, 256,
+ 156890, 256, 156963, 256, 32864, 256, 157096, 256, 32880, 256, 144223,
+ 256, 17365, 256, 32946, 256, 33027, 256, 17419, 256, 33086, 256, 23221,
+ 256, 157607, 256, 157621, 256, 144275, 256, 144284, 256, 33281, 256,
+ 33284, 256, 36766, 256, 17515, 256, 33425, 256, 33419, 256, 33437, 256,
+ 21171, 256, 33457, 256, 33459, 256, 33469, 256, 33510, 256, 158524, 256,
+ 33509, 256, 33565, 256, 33635, 256, 33709, 256, 33571, 256, 33725, 256,
+ 33767, 256, 33879, 256, 33619, 256, 33738, 256, 33740, 256, 33756, 256,
+ 158774, 256, 159083, 256, 158933, 256, 17707, 256, 34033, 256, 34035,
+ 256, 34070, 256, 160714, 256, 34148, 256, 159532, 256, 17757, 256, 17761,
+ 256, 159665, 256, 159954, 256, 17771, 256, 34384, 256, 34396, 256, 34407,
+ 256, 34409, 256, 34473, 256, 34440, 256, 34574, 256, 34530, 256, 34681,
+ 256, 34600, 256, 34667, 256, 34694, 256, 17879, 256, 34785, 256, 34817,
+ 256, 17913, 256, 34912, 256, 34915, 256, 161383, 256, 35031, 256, 35038,
+ 256, 17973, 256, 35066, 256, 13499, 256, 161966, 256, 162150, 256, 18110,
+ 256, 18119, 256, 35488, 256, 35565, 256, 35722, 256, 35925, 256, 162984,
+ 256, 36011, 256, 36033, 256, 36123, 256, 36215, 256, 163631, 256, 133124,
+ 256, 36299, 256, 36284, 256, 36336, 256, 133342, 256, 36564, 256, 36664,
+ 256, 165330, 256, 165357, 256, 37012, 256, 37105, 256, 37137, 256,
+ 165678, 256, 37147, 256, 37432, 256, 37591, 256, 37592, 256, 37500, 256,
+ 37881, 256, 37909, 256, 166906, 256, 38283, 256, 18837, 256, 38327, 256,
+ 167287, 256, 18918, 256, 38595, 256, 23986, 256, 38691, 256, 168261, 256,
+ 168474, 256, 19054, 256, 19062, 256, 38880, 256, 168970, 256, 19122, 256,
+ 169110, 256, 38923, 256, 38923, 256, 38953, 256, 169398, 256, 39138, 256,
+ 19251, 256, 39209, 256, 39335, 256, 39362, 256, 39422, 256, 19406, 256,
+ 170800, 256, 39698, 256, 40000, 256, 40189, 256, 19662, 256, 19693, 256,
+ 40295, 256, 172238, 256, 19704, 256, 172293, 256, 172558, 256, 172689,
+ 256, 40635, 256, 19798, 256, 40697, 256, 40702, 256, 40709, 256, 40719,
+ 256, 40726, 256, 40763, 256, 173568,
};
/* index tables for the decomposition data */
-#define DECOMP_SHIFT 8
+#define DECOMP_SHIFT 7
static unsigned char decomp_index1[] = {
- 0, 1, 2, 3, 4, 5, 6, 7, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 16, 7, 17, 18, 19, 20, 21, 22, 23, 24, 7, 7, 7, 7, 7, 25,
- 7, 26, 27, 28, 29, 30, 31, 32, 33, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 34, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 35, 36, 37, 38, 39, 40,
- 41, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 42, 43, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 44, 7, 7, 45,
- 46, 47, 48, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 49, 7, 7, 50, 51, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 52, 53, 54, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 10, 11, 12, 0, 0, 0, 0, 13, 14, 15, 0,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 29, 30, 31, 32, 33, 34,
+ 35, 36, 37, 38, 39, 40, 41, 0, 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44,
+ 45, 0, 0, 46, 0, 47, 0, 0, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 60, 61, 0, 0, 0, 0, 0, 0, 62, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 78, 0, 0, 0, 79, 0, 0, 80, 0,
+ 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 83, 0, 0, 0, 0, 84, 85,
+ 86, 87, 88, 89, 90, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 92, 93, 0, 0, 0, 0, 94, 95, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 98, 99, 100, 101, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
static unsigned short decomp_index2[] = {
@@ -3978,38 +4502,22 @@ static unsigned short decomp_index2[] = {
0, 0, 0, 0, 1066, 1069, 1072, 1075, 0, 0, 1078, 1081, 0, 0, 1084, 1087,
1090, 1093, 1096, 1099, 0, 0, 1102, 1105, 1108, 1111, 1114, 1117, 0, 0,
1120, 1123, 1126, 1129, 1132, 1135, 1138, 1141, 1144, 1147, 1150, 1153,
- 0, 0, 1156, 1159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1165, 1168, 1171, 1174,
- 1177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1180, 1183, 1186, 1189, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1192, 0, 1195, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1156, 1159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1162, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1165, 1168, 1171, 1174, 1177, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1180, 1183, 1186, 1189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1192, 0, 1195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1201, 0, 0, 0,
@@ -4031,191 +4539,175 @@ static unsigned short decomp_index2[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1267, 0, 0, 1270, 1273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1276, 1279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1285, 1288, 1291, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 1267, 0, 0, 1270, 1273, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1276, 1279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1282, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1285, 1288, 1291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1297, 0, 0, 0, 0, 0, 0, 1300, 1303, 0, 1306, 1309, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1297, 0, 0, 0, 0, 0, 0, 1300, 1303, 0,
- 1306, 1309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1312, 1315, 1318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1312, 1315, 1318, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1321, 0, 1324, 1327, 1330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1333, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1321, 0, 1324, 1327, 1330, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1333, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1339, 1342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1345, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1347, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1350, 0, 0, 0, 0, 1353, 0, 0, 0, 0, 1356, 0, 0, 0, 0, 1359, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1365, 0,
+ 1368, 1371, 1374, 1377, 1380, 0, 0, 0, 0, 0, 0, 0, 1383, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1386, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1389, 0, 0, 0, 0, 1392, 0, 0, 0, 0, 1395, 0, 0, 0, 0, 1398, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1401, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1336, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1339, 1342, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1345, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1404,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1347, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1350, 0, 0, 0, 0, 1353, 0, 0, 0, 0,
- 1356, 0, 0, 0, 0, 1359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1362, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1365, 0, 1368, 1371, 1374, 1377, 1380, 0, 0, 0, 0,
- 0, 0, 0, 1383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1386,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 1389, 0, 0, 0, 0, 1392, 0, 0, 0, 0, 1395, 0,
- 0, 0, 0, 1398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1401, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1409, 0, 1412, 0,
- 1415, 0, 1418, 0, 1421, 0, 0, 0, 1424, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1427, 0, 1430, 0, 0, 1433, 1436, 0, 1439, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1442, 1444, 1446, 0, 1448, 1450, 1452,
- 1454, 1456, 1458, 1460, 1462, 1464, 1466, 1468, 0, 1470, 1472, 1474,
- 1476, 1478, 1480, 1482, 1484, 1486, 1488, 1490, 1492, 1494, 1496, 1498,
- 1500, 1502, 1504, 0, 1506, 1508, 1510, 1512, 1514, 1516, 1518, 1520,
- 1522, 1524, 1526, 1528, 1530, 1532, 1534, 1536, 1538, 1540, 1542, 1544,
- 1546, 1548, 1550, 1552, 1554, 1556, 1558, 1560, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1564, 1566, 1568,
- 1570, 1572, 1574, 1576, 1578, 1580, 1582, 1584, 1586, 1588, 1590, 1592,
- 1594, 1596, 1598, 1600, 1602, 1604, 1606, 1608, 1610, 1612, 1614, 1616,
- 1618, 1620, 1622, 1624, 1626, 1628, 1630, 1632, 1634, 1636, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1638, 1641, 1644, 1647, 1650, 1653,
- 1656, 1659, 1662, 1665, 1668, 1671, 1674, 1677, 1680, 1683, 1686, 1689,
- 1692, 1695, 1698, 1701, 1704, 1707, 1710, 1713, 1716, 1719, 1722, 1725,
- 1728, 1731, 1734, 1737, 1740, 1743, 1746, 1749, 1752, 1755, 1758, 1761,
- 1764, 1767, 1770, 1773, 1776, 1779, 1782, 1785, 1788, 1791, 1794, 1797,
- 1800, 1803, 1806, 1809, 1812, 1815, 1818, 1821, 1824, 1827, 1830, 1833,
- 1836, 1839, 1842, 1845, 1848, 1851, 1854, 1857, 1860, 1863, 1866, 1869,
- 1872, 1875, 1878, 1881, 1884, 1887, 1890, 1893, 1896, 1899, 1902, 1905,
- 1908, 1911, 1914, 1917, 1920, 1923, 1926, 1929, 1932, 1935, 1938, 1941,
- 1944, 1947, 1950, 1953, 1956, 1959, 1962, 1965, 1968, 1971, 1974, 1977,
- 1980, 1983, 1986, 1989, 1992, 1995, 1998, 2001, 2004, 2007, 2010, 2013,
- 2016, 2019, 2022, 2025, 2028, 2031, 2034, 2037, 2040, 2043, 2046, 2049,
- 2052, 2055, 2058, 2061, 2064, 2067, 2070, 2073, 2076, 2079, 2082, 2085,
- 2088, 2091, 2094, 2097, 2100, 2103, 0, 0, 0, 0, 2106, 2109, 2112, 2115,
- 2118, 2121, 2124, 2127, 2130, 2133, 2136, 2139, 2142, 2145, 2148, 2151,
- 2154, 2157, 2160, 2163, 2166, 2169, 2172, 2175, 2178, 2181, 2184, 2187,
- 2190, 2193, 2196, 2199, 2202, 2205, 2208, 2211, 2214, 2217, 2220, 2223,
- 2226, 2229, 2232, 2235, 2238, 2241, 2244, 2247, 2250, 2253, 2256, 2259,
- 2262, 2265, 2268, 2271, 2274, 2277, 2280, 2283, 2286, 2289, 2292, 2295,
- 2298, 2301, 2304, 2307, 2310, 2313, 2316, 2319, 2322, 2325, 2328, 2331,
- 2334, 2337, 2340, 2343, 2346, 2349, 2352, 2355, 2358, 2361, 2364, 2367,
- 2370, 2373, 0, 0, 0, 0, 0, 0, 2376, 2379, 2382, 2385, 2388, 2391, 2394,
- 2397, 2400, 2403, 2406, 2409, 2412, 2415, 2418, 2421, 2424, 2427, 2430,
- 2433, 2436, 2439, 0, 0, 2442, 2445, 2448, 2451, 2454, 2457, 0, 0, 2460,
- 2463, 2466, 2469, 2472, 2475, 2478, 2481, 2484, 2487, 2490, 2493, 2496,
- 2499, 2502, 2505, 2508, 2511, 2514, 2517, 2520, 2523, 2526, 2529, 2532,
- 2535, 2538, 2541, 2544, 2547, 2550, 2553, 2556, 2559, 2562, 2565, 2568,
- 2571, 0, 0, 2574, 2577, 2580, 2583, 2586, 2589, 0, 0, 2592, 2595, 2598,
- 2601, 2604, 2607, 2610, 2613, 0, 2616, 0, 2619, 0, 2622, 0, 2625, 2628,
- 2631, 2634, 2637, 2640, 2643, 2646, 2649, 2652, 2655, 2658, 2661, 2664,
- 2667, 2670, 2673, 2676, 2679, 2681, 2684, 2686, 2689, 2691, 2694, 2696,
- 2699, 2701, 2704, 2706, 2709, 0, 0, 2711, 2714, 2717, 2720, 2723, 2726,
- 2729, 2732, 2735, 2738, 2741, 2744, 2747, 2750, 2753, 2756, 2759, 2762,
- 2765, 2768, 2771, 2774, 2777, 2780, 2783, 2786, 2789, 2792, 2795, 2798,
- 2801, 2804, 2807, 2810, 2813, 2816, 2819, 2822, 2825, 2828, 2831, 2834,
- 2837, 2840, 2843, 2846, 2849, 2852, 2855, 2858, 2861, 2864, 2867, 0,
- 2870, 2873, 2876, 2879, 2882, 2885, 2887, 2890, 2893, 2895, 2898, 2901,
- 2904, 2907, 2910, 0, 2913, 2916, 2919, 2922, 2924, 2927, 2929, 2932,
- 2935, 2938, 2941, 2944, 2947, 2950, 0, 0, 2952, 2955, 2958, 2961, 2964,
- 2967, 0, 2969, 2972, 2975, 2978, 2981, 2984, 2987, 2989, 2992, 2995,
- 2998, 3001, 3004, 3007, 3010, 3012, 3015, 3018, 3020, 0, 0, 3022, 3025,
- 3028, 0, 3031, 3034, 3037, 3040, 3042, 3045, 3047, 3050, 3052, 0, 3055,
- 3057, 3059, 3061, 3063, 3065, 3067, 3069, 3071, 3073, 3075, 0, 0, 0, 0,
- 0, 0, 3077, 0, 0, 0, 0, 0, 3079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 3082, 3084, 3087, 0, 0, 0, 0, 0, 0, 0, 0, 3091, 0, 0, 0, 3093, 3096, 0,
- 3100, 3103, 0, 0, 0, 0, 3107, 0, 3110, 0, 0, 0, 0, 0, 0, 0, 0, 3113,
- 3116, 3119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3122, 0, 0, 0, 0, 0,
- 0, 0, 3127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3129, 3131,
- 0, 0, 3133, 3135, 3137, 3139, 3141, 3143, 3145, 3147, 3149, 3151, 3153,
- 3155, 3157, 3159, 3161, 3163, 3165, 3167, 3169, 3171, 3173, 3175, 3177,
- 3179, 3181, 3183, 3185, 0, 3187, 3189, 3191, 3193, 3195, 3197, 3199,
- 3201, 3203, 3205, 3207, 3209, 3211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 3213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3216, 3220, 3224,
- 3226, 0, 3229, 3233, 3237, 0, 3239, 3242, 3244, 3246, 3248, 3250, 3252,
- 3254, 3256, 3258, 3260, 0, 3262, 3264, 0, 0, 3267, 3269, 3271, 3273,
- 3275, 0, 0, 3277, 3280, 3284, 0, 3287, 0, 3289, 0, 3291, 0, 3293, 3295,
- 3297, 3299, 0, 3301, 3303, 3305, 0, 3307, 3309, 3311, 3313, 3315, 3317,
- 3319, 0, 3321, 3325, 3327, 3329, 3331, 3333, 0, 0, 0, 0, 3335, 3337,
- 3339, 3341, 3343, 0, 0, 0, 0, 0, 0, 3345, 3349, 3353, 3358, 3362, 3366,
- 3370, 3374, 3378, 3382, 3386, 3390, 3394, 3398, 3402, 3406, 3409, 3411,
- 3414, 3418, 3421, 3423, 3426, 3430, 3435, 3438, 3440, 3443, 3447, 3449,
- 3451, 3453, 3455, 3457, 3460, 3464, 3467, 3469, 3472, 3476, 3481, 3484,
- 3486, 3489, 3493, 3495, 3497, 3499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3501, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3505, 3508, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3511, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3514,
- 3517, 3520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 3523, 0, 0, 0, 0, 3526, 0, 0, 3529, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3532, 0, 3535,
- 0, 0, 0, 0, 0, 3538, 3541, 0, 3545, 3548, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 3552, 0, 0, 3555, 0, 0, 3558, 0, 3561, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3564, 0, 3567, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 3570, 3573, 3576, 3579, 3582, 0, 0, 3585, 3588,
- 0, 0, 3591, 3594, 0, 0, 0, 0, 0, 0, 3597, 3600, 0, 0, 3603, 3606, 0, 0,
- 3609, 3612, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3615, 3618, 3621, 3624, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3627,
- 3630, 3633, 3636, 0, 0, 0, 0, 0, 0, 3639, 3642, 3645, 3648, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 3651, 3653, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1407, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1409, 0, 1412, 0, 1415, 0, 1418, 0, 1421, 0, 0,
+ 0, 1424, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1427, 0, 1430,
+ 0, 0, 1433, 1436, 0, 1439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1442, 1444, 1446, 0,
+ 1448, 1450, 1452, 1454, 1456, 1458, 1460, 1462, 1464, 1466, 1468, 0,
+ 1470, 1472, 1474, 1476, 1478, 1480, 1482, 1484, 1486, 1488, 1490, 1492,
+ 1494, 1496, 1498, 1500, 1502, 1504, 0, 1506, 1508, 1510, 1512, 1514,
+ 1516, 1518, 1520, 1522, 1524, 1526, 1528, 1530, 1532, 1534, 1536, 1538,
+ 1540, 1542, 1544, 1546, 1548, 1550, 1552, 1554, 1556, 1558, 1560, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1564, 1566, 1568, 1570, 1572, 1574, 1576, 1578, 1580, 1582, 1584, 1586,
+ 1588, 1590, 1592, 1594, 1596, 1598, 1600, 1602, 1604, 1606, 1608, 1610,
+ 1612, 1614, 1616, 1618, 1620, 1622, 1624, 1626, 1628, 1630, 1632, 1634,
+ 1636, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1638, 1641, 1644,
+ 1647, 1650, 1653, 1656, 1659, 1662, 1665, 1668, 1671, 1674, 1677, 1680,
+ 1683, 1686, 1689, 1692, 1695, 1698, 1701, 1704, 1707, 1710, 1713, 1716,
+ 1719, 1722, 1725, 1728, 1731, 1734, 1737, 1740, 1743, 1746, 1749, 1752,
+ 1755, 1758, 1761, 1764, 1767, 1770, 1773, 1776, 1779, 1782, 1785, 1788,
+ 1791, 1794, 1797, 1800, 1803, 1806, 1809, 1812, 1815, 1818, 1821, 1824,
+ 1827, 1830, 1833, 1836, 1839, 1842, 1845, 1848, 1851, 1854, 1857, 1860,
+ 1863, 1866, 1869, 1872, 1875, 1878, 1881, 1884, 1887, 1890, 1893, 1896,
+ 1899, 1902, 1905, 1908, 1911, 1914, 1917, 1920, 1923, 1926, 1929, 1932,
+ 1935, 1938, 1941, 1944, 1947, 1950, 1953, 1956, 1959, 1962, 1965, 1968,
+ 1971, 1974, 1977, 1980, 1983, 1986, 1989, 1992, 1995, 1998, 2001, 2004,
+ 2007, 2010, 2013, 2016, 2019, 2022, 2025, 2028, 2031, 2034, 2037, 2040,
+ 2043, 2046, 2049, 2052, 2055, 2058, 2061, 2064, 2067, 2070, 2073, 2076,
+ 2079, 2082, 2085, 2088, 2091, 2094, 2097, 2100, 2103, 0, 0, 0, 0, 2106,
+ 2109, 2112, 2115, 2118, 2121, 2124, 2127, 2130, 2133, 2136, 2139, 2142,
+ 2145, 2148, 2151, 2154, 2157, 2160, 2163, 2166, 2169, 2172, 2175, 2178,
+ 2181, 2184, 2187, 2190, 2193, 2196, 2199, 2202, 2205, 2208, 2211, 2214,
+ 2217, 2220, 2223, 2226, 2229, 2232, 2235, 2238, 2241, 2244, 2247, 2250,
+ 2253, 2256, 2259, 2262, 2265, 2268, 2271, 2274, 2277, 2280, 2283, 2286,
+ 2289, 2292, 2295, 2298, 2301, 2304, 2307, 2310, 2313, 2316, 2319, 2322,
+ 2325, 2328, 2331, 2334, 2337, 2340, 2343, 2346, 2349, 2352, 2355, 2358,
+ 2361, 2364, 2367, 2370, 2373, 0, 0, 0, 0, 0, 0, 2376, 2379, 2382, 2385,
+ 2388, 2391, 2394, 2397, 2400, 2403, 2406, 2409, 2412, 2415, 2418, 2421,
+ 2424, 2427, 2430, 2433, 2436, 2439, 0, 0, 2442, 2445, 2448, 2451, 2454,
+ 2457, 0, 0, 2460, 2463, 2466, 2469, 2472, 2475, 2478, 2481, 2484, 2487,
+ 2490, 2493, 2496, 2499, 2502, 2505, 2508, 2511, 2514, 2517, 2520, 2523,
+ 2526, 2529, 2532, 2535, 2538, 2541, 2544, 2547, 2550, 2553, 2556, 2559,
+ 2562, 2565, 2568, 2571, 0, 0, 2574, 2577, 2580, 2583, 2586, 2589, 0, 0,
+ 2592, 2595, 2598, 2601, 2604, 2607, 2610, 2613, 0, 2616, 0, 2619, 0,
+ 2622, 0, 2625, 2628, 2631, 2634, 2637, 2640, 2643, 2646, 2649, 2652,
+ 2655, 2658, 2661, 2664, 2667, 2670, 2673, 2676, 2679, 2681, 2684, 2686,
+ 2689, 2691, 2694, 2696, 2699, 2701, 2704, 2706, 2709, 0, 0, 2711, 2714,
+ 2717, 2720, 2723, 2726, 2729, 2732, 2735, 2738, 2741, 2744, 2747, 2750,
+ 2753, 2756, 2759, 2762, 2765, 2768, 2771, 2774, 2777, 2780, 2783, 2786,
+ 2789, 2792, 2795, 2798, 2801, 2804, 2807, 2810, 2813, 2816, 2819, 2822,
+ 2825, 2828, 2831, 2834, 2837, 2840, 2843, 2846, 2849, 2852, 2855, 2858,
+ 2861, 2864, 2867, 0, 2870, 2873, 2876, 2879, 2882, 2885, 2887, 2890,
+ 2893, 2895, 2898, 2901, 2904, 2907, 2910, 0, 2913, 2916, 2919, 2922,
+ 2924, 2927, 2929, 2932, 2935, 2938, 2941, 2944, 2947, 2950, 0, 0, 2952,
+ 2955, 2958, 2961, 2964, 2967, 0, 2969, 2972, 2975, 2978, 2981, 2984,
+ 2987, 2989, 2992, 2995, 2998, 3001, 3004, 3007, 3010, 3012, 3015, 3018,
+ 3020, 0, 0, 3022, 3025, 3028, 0, 3031, 3034, 3037, 3040, 3042, 3045,
+ 3047, 3050, 3052, 0, 3055, 3057, 3059, 3061, 3063, 3065, 3067, 3069,
+ 3071, 3073, 3075, 0, 0, 0, 0, 0, 0, 3077, 0, 0, 0, 0, 0, 3079, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 3082, 3084, 3087, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3091, 0, 0, 0, 3093, 3096, 0, 3100, 3103, 0, 0, 0, 0, 3107, 0, 3110, 0,
+ 0, 0, 0, 0, 0, 0, 0, 3113, 3116, 3119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 3122, 0, 0, 0, 0, 0, 0, 0, 3127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 3129, 3131, 0, 0, 3133, 3135, 3137, 3139, 3141, 3143,
+ 3145, 3147, 3149, 3151, 3153, 3155, 3157, 3159, 3161, 3163, 3165, 3167,
+ 3169, 3171, 3173, 3175, 3177, 3179, 3181, 3183, 3185, 0, 3187, 3189,
+ 3191, 3193, 3195, 3197, 3199, 3201, 3203, 3205, 3207, 3209, 3211, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 3213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 3216, 3220, 3224, 3226, 0, 3229, 3233, 3237, 0, 3239, 3242, 3244,
+ 3246, 3248, 3250, 3252, 3254, 3256, 3258, 3260, 0, 3262, 3264, 0, 0,
+ 3267, 3269, 3271, 3273, 3275, 0, 0, 3277, 3280, 3284, 0, 3287, 0, 3289,
+ 0, 3291, 0, 3293, 3295, 3297, 3299, 0, 3301, 3303, 3305, 0, 3307, 3309,
+ 3311, 3313, 3315, 3317, 3319, 0, 3321, 3325, 3327, 3329, 3331, 3333, 0,
+ 0, 0, 0, 3335, 3337, 3339, 3341, 3343, 0, 0, 0, 0, 0, 0, 3345, 3349,
+ 3353, 3358, 3362, 3366, 3370, 3374, 3378, 3382, 3386, 3390, 3394, 3398,
+ 3402, 3406, 3409, 3411, 3414, 3418, 3421, 3423, 3426, 3430, 3435, 3438,
+ 3440, 3443, 3447, 3449, 3451, 3453, 3455, 3457, 3460, 3464, 3467, 3469,
+ 3472, 3476, 3481, 3484, 3486, 3489, 3493, 3495, 3497, 3499, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 3501, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3505, 3508, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3511,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 3514, 3517, 3520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3523, 0, 0, 0, 0, 3526,
+ 0, 0, 3529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 3532, 0, 3535, 0, 0, 0, 0, 0, 3538, 3541, 0, 3545, 3548, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3552, 0, 0, 3555, 0, 0, 3558,
+ 0, 3561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 3564, 0, 3567, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3570, 3573, 3576, 3579,
+ 3582, 0, 0, 3585, 3588, 0, 0, 3591, 3594, 0, 0, 0, 0, 0, 0, 3597, 3600,
+ 0, 0, 3603, 3606, 0, 0, 3609, 3612, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3615,
+ 3618, 3621, 3624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 3627, 3630, 3633, 3636, 0, 0, 0, 0, 0, 0, 3639, 3642,
+ 3645, 3648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3651, 3653, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -4256,23 +4748,7 @@ static unsigned short decomp_index2[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 4101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4101, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4103, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -4370,785 +4846,822 @@ static unsigned short decomp_index2[] = {
6530, 6533, 6536, 6539, 6542, 6545, 6548, 6551, 6554, 6558, 6562, 6566,
6570, 6574, 6578, 6582, 6586, 6590, 6594, 6598, 6602, 6606, 6610, 6614,
6618, 6622, 6626, 6630, 6634, 6638, 6642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6646, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6648, 6650, 0, 0, 0, 0, 0, 0, 6652, 6654, 6656, 6658, 6660, 6662, 6664,
- 6666, 6668, 6670, 6672, 6674, 6676, 6678, 6680, 6682, 6684, 6686, 6688,
- 6690, 6692, 6694, 6696, 6698, 6700, 6702, 6704, 6706, 6708, 6710, 6712,
- 6714, 6716, 6718, 6720, 6722, 6724, 6726, 6728, 6730, 6732, 6734, 6736,
- 6738, 6740, 6742, 6744, 6746, 6748, 6750, 6752, 6754, 6756, 6758, 6760,
- 6762, 6764, 6766, 6768, 6770, 6772, 6774, 6776, 6778, 6780, 6782, 6784,
- 6786, 6788, 6790, 6792, 6794, 6796, 6798, 6800, 6802, 6804, 6806, 6808,
- 6810, 6812, 6814, 6816, 6818, 6820, 6822, 6824, 6826, 6828, 6830, 6832,
- 6834, 6836, 6838, 6840, 6842, 6844, 6846, 6848, 6850, 6852, 6854, 6856,
- 6858, 6860, 6862, 6864, 6866, 6868, 6870, 6872, 6874, 6876, 6878, 6880,
- 6882, 6884, 6886, 6888, 6890, 6892, 6894, 6896, 6898, 6900, 6902, 6904,
- 6906, 6908, 6910, 6912, 6914, 6916, 6918, 6920, 6922, 6924, 6926, 6928,
- 6930, 6932, 6934, 6936, 6938, 6940, 6942, 6944, 6946, 6948, 6950, 6952,
- 6954, 6956, 6958, 6960, 6962, 6964, 6966, 6968, 6970, 6972, 6974, 6976,
- 6978, 6980, 6982, 6984, 6986, 6988, 6990, 6992, 6994, 6996, 6998, 7000,
- 7002, 7004, 7006, 7008, 7010, 7012, 7014, 7016, 7018, 7020, 7022, 7024,
- 7026, 7028, 7030, 7032, 7034, 7036, 7038, 7040, 7042, 7044, 7046, 7048,
- 7050, 7052, 7054, 7056, 7058, 7060, 7062, 7064, 7066, 7068, 7070, 7072,
- 7074, 7076, 7078, 7080, 7082, 7084, 7086, 7088, 7090, 7092, 7094, 7096,
- 7098, 7100, 7102, 7104, 7106, 7108, 7110, 7112, 7114, 7116, 7118, 7120,
- 7122, 7124, 7126, 7128, 7130, 7132, 7134, 7136, 7138, 7140, 7142, 7144,
- 7146, 7148, 7150, 7152, 7154, 7156, 7158, 7160, 7162, 7164, 7166, 7168,
- 7170, 7172, 7174, 7176, 7178, 7180, 7182, 7184, 7186, 7188, 7190, 0, 0,
- 7192, 0, 7194, 0, 0, 7196, 7198, 7200, 7202, 7204, 7206, 7208, 7210,
- 7212, 7214, 0, 7216, 0, 7218, 0, 0, 7220, 7222, 0, 0, 0, 7224, 7226,
- 7228, 7230, 7232, 7234, 7236, 7238, 7240, 7242, 7244, 7246, 7248, 7250,
- 7252, 7254, 7256, 7258, 7260, 7262, 7264, 7266, 7268, 7270, 7272, 7274,
- 7276, 7278, 7280, 7282, 7284, 7286, 7288, 7290, 7292, 7294, 7296, 7298,
- 7300, 7302, 7304, 7306, 7308, 7310, 7312, 7314, 7316, 7318, 7320, 7322,
- 7324, 7326, 7328, 7330, 7332, 7334, 7336, 7338, 7340, 7342, 7344, 7346,
- 7348, 7350, 7352, 7354, 7356, 7358, 0, 0, 7360, 7362, 7364, 7366, 7368,
- 7370, 7372, 7374, 7376, 7378, 7380, 7382, 7384, 7386, 7388, 7390, 7392,
- 7394, 7396, 7398, 7400, 7402, 7404, 7406, 7408, 7410, 7412, 7414, 7416,
- 7418, 7420, 7422, 7424, 7426, 7428, 7430, 7432, 7434, 7436, 7438, 7440,
- 7442, 7444, 7446, 7448, 7450, 7452, 7454, 7456, 7458, 7460, 7462, 7464,
- 7466, 7468, 7470, 7472, 7474, 7476, 7478, 7480, 7482, 7484, 7486, 7488,
- 7490, 7492, 7494, 7496, 7498, 7500, 7502, 7504, 7506, 7508, 7510, 7512,
- 7514, 7516, 7518, 7520, 7522, 7524, 7526, 7528, 7530, 7532, 7534, 7536,
- 7538, 7540, 7542, 7544, 7546, 7548, 7550, 7552, 7554, 7556, 7558, 7560,
- 7562, 7564, 7566, 7568, 7570, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7572, 7575, 7578, 7581, 7585, 7589, 7592, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 7595, 7598, 7601, 7604, 7607, 0, 0, 0, 0, 0, 7610, 0, 7613, 7616,
- 7618, 7620, 7622, 7624, 7626, 7628, 7630, 7632, 7634, 7636, 7639, 7642,
- 7645, 7648, 7651, 7654, 7657, 7660, 7663, 7666, 7669, 7672, 0, 7675,
- 7678, 7681, 7684, 7687, 0, 7690, 0, 7693, 7696, 0, 7699, 7702, 0, 7705,
- 7708, 7711, 7714, 7717, 7720, 7723, 7726, 7729, 7732, 7735, 7737, 7739,
- 7741, 7743, 7745, 7747, 7749, 7751, 7753, 7755, 7757, 7759, 7761, 7763,
- 7765, 7767, 7769, 7771, 7773, 7775, 7777, 7779, 7781, 7783, 7785, 7787,
- 7789, 7791, 7793, 7795, 7797, 7799, 7801, 7803, 7805, 7807, 7809, 7811,
- 7813, 7815, 7817, 7819, 7821, 7823, 7825, 7827, 7829, 7831, 7833, 7835,
- 7837, 7839, 7841, 7843, 7845, 7847, 7849, 7851, 7853, 7855, 7857, 7859,
- 7861, 7863, 7865, 7867, 7869, 7871, 7873, 7875, 7877, 7879, 7881, 7883,
- 7885, 7887, 7889, 7891, 7893, 7895, 7897, 7899, 7901, 7903, 7905, 7907,
- 7909, 7911, 7913, 7915, 7917, 7919, 7921, 7923, 7925, 7927, 7929, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 7931, 7933, 7935, 7937, 7939, 7941, 7943, 7945,
- 7947, 7949, 7951, 7953, 7955, 7957, 7959, 7961, 7963, 7965, 7967, 7969,
- 7971, 7973, 7975, 7977, 7980, 7983, 7986, 7989, 7992, 7995, 7998, 8001,
- 8004, 8007, 8010, 8013, 8016, 8019, 8022, 8025, 8028, 8031, 8033, 8035,
- 8037, 8039, 8042, 8045, 8048, 8051, 8054, 8057, 8060, 8063, 8066, 8069,
- 8072, 8075, 8078, 8081, 8084, 8087, 8090, 8093, 8096, 8099, 8102, 8105,
- 8108, 8111, 8114, 8117, 8120, 8123, 8126, 8129, 8132, 8135, 8138, 8141,
- 8144, 8147, 8150, 8153, 8156, 8159, 8162, 8165, 8168, 8171, 8174, 8177,
- 8180, 8183, 8186, 8189, 8192, 8195, 8198, 8201, 8204, 8207, 8210, 8213,
- 8216, 8219, 8222, 8225, 8228, 8231, 8234, 8237, 8240, 8243, 8246, 8249,
- 8252, 8255, 8258, 8261, 8264, 8267, 8270, 8273, 8276, 8279, 8282, 8285,
- 8288, 8291, 8294, 8297, 8300, 8303, 8306, 8309, 8312, 8315, 8318, 8321,
- 8325, 8329, 8333, 8337, 8341, 8345, 8348, 8351, 8354, 8357, 8360, 8363,
- 8366, 8369, 8372, 8375, 8378, 8381, 8384, 8387, 8390, 8393, 8396, 8399,
- 8402, 8405, 8408, 8411, 8414, 8417, 8420, 8423, 8426, 8429, 8432, 8435,
- 8438, 8441, 8444, 8447, 8450, 8453, 8456, 8459, 8462, 8465, 8468, 8471,
- 8474, 8477, 8480, 8483, 8486, 8489, 8492, 8495, 8498, 8501, 8504, 8507,
- 8510, 8513, 8516, 8519, 8522, 8525, 8528, 8531, 8534, 8537, 8540, 8543,
- 8546, 8549, 8552, 8555, 8558, 8561, 8564, 8567, 8570, 8573, 8576, 8579,
- 8582, 8585, 8588, 8591, 8594, 8597, 8600, 8603, 8606, 8609, 8612, 8615,
- 8618, 8621, 8624, 8627, 8630, 8633, 8636, 8639, 8642, 8645, 8648, 8651,
- 8654, 8657, 8660, 8663, 8666, 8669, 8672, 8675, 8678, 8681, 8684, 8687,
- 8690, 8693, 8696, 8699, 8702, 8705, 8708, 8711, 8714, 8717, 8720, 8723,
- 8726, 8729, 8732, 8735, 8738, 8741, 8744, 8747, 8750, 8753, 8756, 8759,
- 8762, 8765, 8768, 8771, 8775, 8779, 8783, 8786, 8789, 8792, 8795, 8798,
- 8801, 8804, 8807, 8810, 8813, 8816, 8819, 8822, 8825, 8828, 8831, 8834,
- 8837, 8840, 8843, 8846, 8849, 8852, 8855, 8858, 8861, 8864, 8867, 8870,
- 8873, 8876, 8879, 8882, 8885, 8888, 8891, 8894, 8897, 8900, 8903, 8906,
- 8909, 8912, 8915, 8918, 8921, 8924, 8927, 8930, 8933, 8936, 8939, 8942,
- 8945, 8948, 8951, 8954, 8957, 8960, 8963, 8966, 8969, 8972, 8975, 8978,
- 8981, 8984, 8987, 8990, 8993, 8996, 8999, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 9002, 9006, 9010, 9014, 9018, 9022, 9026, 9030,
- 9034, 9038, 9042, 9046, 9050, 9054, 9058, 9062, 9066, 9070, 9074, 9078,
- 9082, 9086, 9090, 9094, 9098, 9102, 9106, 9110, 9114, 9118, 9122, 9126,
- 9130, 9134, 9138, 9142, 9146, 9150, 9154, 9158, 9162, 9166, 9170, 9174,
- 9178, 9182, 9186, 9190, 9194, 9198, 9202, 9206, 9210, 9214, 9218, 9222,
- 9226, 9230, 9234, 9238, 9242, 9246, 9250, 9254, 0, 0, 9258, 9262, 9266,
- 9270, 9274, 9278, 9282, 9286, 9290, 9294, 9298, 9302, 9306, 9310, 9314,
- 9318, 9322, 9326, 9330, 9334, 9338, 9342, 9346, 9350, 9354, 9358, 9362,
- 9366, 9370, 9374, 9378, 9382, 9386, 9390, 9394, 9398, 9402, 9406, 9410,
- 9414, 9418, 9422, 9426, 9430, 9434, 9438, 9442, 9446, 9450, 9454, 9458,
- 9462, 9466, 9470, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9474,
- 9478, 9482, 9487, 9492, 9497, 9502, 9507, 9512, 9517, 9521, 9540, 9549,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9554, 9556,
- 9558, 9560, 9562, 9564, 9566, 9568, 9570, 9572, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9574, 9576, 9578, 9580, 9582,
- 9584, 9586, 9588, 9590, 9592, 9594, 9596, 9598, 9600, 9602, 9604, 9606,
- 9608, 9610, 9612, 9614, 0, 0, 9616, 9618, 9620, 9622, 9624, 9626, 9628,
- 9630, 9632, 9634, 9636, 9638, 0, 9640, 9642, 9644, 9646, 9648, 9650,
- 9652, 9654, 9656, 9658, 9660, 9662, 9664, 9666, 9668, 9670, 9672, 9674,
- 9676, 0, 9678, 9680, 9682, 9684, 0, 0, 0, 0, 9686, 9689, 9692, 0, 9695,
- 0, 9698, 9701, 9704, 9707, 9710, 9713, 9716, 9719, 9722, 9725, 9728,
- 9730, 9732, 9734, 9736, 9738, 9740, 9742, 9744, 9746, 9748, 9750, 9752,
- 9754, 9756, 9758, 9760, 9762, 9764, 9766, 9768, 9770, 9772, 9774, 9776,
- 9778, 9780, 9782, 9784, 9786, 9788, 9790, 9792, 9794, 9796, 9798, 9800,
- 9802, 9804, 9806, 9808, 9810, 9812, 9814, 9816, 9818, 9820, 9822, 9824,
- 9826, 9828, 9830, 9832, 9834, 9836, 9838, 9840, 9842, 9844, 9846, 9848,
- 9850, 9852, 9854, 9856, 9858, 9860, 9862, 9864, 9866, 9868, 9870, 9872,
- 9874, 9876, 9878, 9880, 9882, 9884, 9886, 9888, 9890, 9892, 9894, 9896,
- 9898, 9900, 9902, 9904, 9906, 9908, 9910, 9912, 9914, 9916, 9918, 9920,
- 9922, 9924, 9926, 9928, 9930, 9932, 9934, 9936, 9938, 9940, 9942, 9944,
- 9946, 9948, 9950, 9952, 9954, 9956, 9958, 9960, 9962, 9965, 9968, 9971,
- 9974, 9977, 9980, 9983, 0, 0, 0, 0, 9986, 9988, 9990, 9992, 9994, 9996,
- 9998, 10000, 10002, 10004, 10006, 10008, 10010, 10012, 10014, 10016,
- 10018, 10020, 10022, 10024, 10026, 10028, 10030, 10032, 10034, 10036,
- 10038, 10040, 10042, 10044, 10046, 10048, 10050, 10052, 10054, 10056,
- 10058, 10060, 10062, 10064, 10066, 10068, 10070, 10072, 10074, 10076,
- 10078, 10080, 10082, 10084, 10086, 10088, 10090, 10092, 10094, 10096,
- 10098, 10100, 10102, 10104, 10106, 10108, 10110, 10112, 10114, 10116,
- 10118, 10120, 10122, 10124, 10126, 10128, 10130, 10132, 10134, 10136,
- 10138, 10140, 10142, 10144, 10146, 10148, 10150, 10152, 10154, 10156,
- 10158, 10160, 10162, 10164, 10166, 10168, 10170, 10172, 10174, 10176,
- 10178, 10180, 10182, 10184, 10186, 10188, 10190, 10192, 10194, 10196,
- 10198, 10200, 10202, 10204, 10206, 10208, 10210, 10212, 10214, 10216,
- 10218, 10220, 10222, 10224, 10226, 10228, 10230, 10232, 10234, 10236,
- 10238, 10240, 10242, 10244, 10246, 10248, 10250, 10252, 10254, 10256,
- 10258, 10260, 10262, 10264, 10266, 10268, 10270, 10272, 10274, 10276,
- 10278, 10280, 10282, 10284, 10286, 10288, 10290, 10292, 10294, 10296,
- 10298, 10300, 10302, 10304, 10306, 10308, 10310, 10312, 10314, 10316,
- 10318, 10320, 10322, 10324, 10326, 10328, 10330, 10332, 10334, 10336,
- 10338, 10340, 10342, 10344, 10346, 10348, 10350, 10352, 10354, 10356,
- 10358, 10360, 10362, 10364, 0, 0, 0, 10366, 10368, 10370, 10372, 10374,
- 10376, 0, 0, 10378, 10380, 10382, 10384, 10386, 10388, 0, 0, 10390,
- 10392, 10394, 10396, 10398, 10400, 0, 0, 10402, 10404, 10406, 0, 0, 0,
- 10408, 10410, 10412, 10414, 10416, 10418, 10420, 0, 10422, 10424, 10426,
- 10428, 10430, 10432, 10434, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10436, 0, 10439, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 10442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10445, 10448, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10451, 10454, 10457, 10460, 10463,
- 10466, 10469, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10472, 10475,
- 10478, 10481, 10484, 10487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 10490, 10492, 10494, 10496, 10498, 10500, 10502, 10504, 10506, 10508,
- 10510, 10512, 10514, 10516, 10518, 10520, 10522, 10524, 10526, 10528,
- 10530, 10532, 10534, 10536, 10538, 10540, 10542, 10544, 10546, 10548,
- 10550, 10552, 10554, 10556, 10558, 10560, 10562, 10564, 10566, 10568,
- 10570, 10572, 10574, 10576, 10578, 10580, 10582, 10584, 10586, 10588,
- 10590, 10592, 10594, 10596, 10598, 10600, 10602, 10604, 10606, 10608,
- 10610, 10612, 10614, 10616, 10618, 10620, 10622, 10624, 10626, 10628,
- 10630, 10632, 10634, 10636, 10638, 10640, 10642, 10644, 10646, 10648,
- 10650, 10652, 10654, 10656, 10658, 0, 10660, 10662, 10664, 10666, 10668,
- 10670, 10672, 10674, 10676, 10678, 10680, 10682, 10684, 10686, 10688,
- 10690, 10692, 10694, 10696, 10698, 10700, 10702, 10704, 10706, 10708,
- 10710, 10712, 10714, 10716, 10718, 10720, 10722, 10724, 10726, 10728,
- 10730, 10732, 10734, 10736, 10738, 10740, 10742, 10744, 10746, 10748,
- 10750, 10752, 10754, 10756, 10758, 10760, 10762, 10764, 10766, 10768,
- 10770, 10772, 10774, 10776, 10778, 10780, 10782, 10784, 10786, 10788,
- 10790, 10792, 10794, 10796, 10798, 10800, 0, 10802, 10804, 0, 0, 10806,
- 0, 0, 10808, 10810, 0, 0, 10812, 10814, 10816, 10818, 0, 10820, 10822,
- 10824, 10826, 10828, 10830, 10832, 10834, 10836, 10838, 10840, 10842, 0,
- 10844, 0, 10846, 10848, 10850, 10852, 10854, 10856, 10858, 0, 10860,
- 10862, 10864, 10866, 10868, 10870, 10872, 10874, 10876, 10878, 10880,
- 10882, 10884, 10886, 10888, 10890, 10892, 10894, 10896, 10898, 10900,
- 10902, 10904, 10906, 10908, 10910, 10912, 10914, 10916, 10918, 10920,
- 10922, 10924, 10926, 10928, 10930, 10932, 10934, 10936, 10938, 10940,
- 10942, 10944, 10946, 10948, 10950, 10952, 10954, 10956, 10958, 10960,
- 10962, 10964, 10966, 10968, 10970, 10972, 10974, 10976, 10978, 10980,
- 10982, 10984, 10986, 10988, 0, 10990, 10992, 10994, 10996, 0, 0, 10998,
- 11000, 11002, 11004, 11006, 11008, 11010, 11012, 0, 11014, 11016, 11018,
- 11020, 11022, 11024, 11026, 0, 11028, 11030, 11032, 11034, 11036, 11038,
- 11040, 11042, 11044, 11046, 11048, 11050, 11052, 11054, 11056, 11058,
- 11060, 11062, 11064, 11066, 11068, 11070, 11072, 11074, 11076, 11078,
- 11080, 11082, 0, 11084, 11086, 11088, 11090, 0, 11092, 11094, 11096,
- 11098, 11100, 0, 11102, 0, 0, 0, 11104, 11106, 11108, 11110, 11112,
- 11114, 11116, 0, 11118, 11120, 11122, 11124, 11126, 11128, 11130, 11132,
- 11134, 11136, 11138, 11140, 11142, 11144, 11146, 11148, 11150, 11152,
- 11154, 11156, 11158, 11160, 11162, 11164, 11166, 11168, 11170, 11172,
- 11174, 11176, 11178, 11180, 11182, 11184, 11186, 11188, 11190, 11192,
- 11194, 11196, 11198, 11200, 11202, 11204, 11206, 11208, 11210, 11212,
- 11214, 11216, 11218, 11220, 11222, 11224, 11226, 11228, 11230, 11232,
- 11234, 11236, 11238, 11240, 11242, 11244, 11246, 11248, 11250, 11252,
- 11254, 11256, 11258, 11260, 11262, 11264, 11266, 11268, 11270, 11272,
- 11274, 11276, 11278, 11280, 11282, 11284, 11286, 11288, 11290, 11292,
- 11294, 11296, 11298, 11300, 11302, 11304, 11306, 11308, 11310, 11312,
- 11314, 11316, 11318, 11320, 11322, 11324, 11326, 11328, 11330, 11332,
- 11334, 11336, 11338, 11340, 11342, 11344, 11346, 11348, 11350, 11352,
- 11354, 11356, 11358, 11360, 11362, 11364, 11366, 11368, 11370, 11372,
- 11374, 11376, 11378, 11380, 11382, 11384, 11386, 11388, 11390, 11392,
- 11394, 11396, 11398, 11400, 11402, 11404, 11406, 11408, 11410, 11412,
- 11414, 11416, 11418, 11420, 11422, 11424, 11426, 11428, 11430, 11432,
- 11434, 11436, 11438, 11440, 11442, 11444, 11446, 11448, 11450, 11452,
- 11454, 11456, 11458, 11460, 11462, 11464, 11466, 11468, 11470, 11472,
- 11474, 11476, 11478, 11480, 11482, 11484, 11486, 11488, 11490, 11492,
- 11494, 11496, 11498, 11500, 11502, 11504, 11506, 11508, 11510, 11512,
- 11514, 11516, 11518, 11520, 11522, 11524, 11526, 11528, 11530, 11532,
- 11534, 11536, 11538, 11540, 11542, 11544, 11546, 11548, 11550, 11552,
- 11554, 11556, 11558, 11560, 11562, 11564, 11566, 11568, 11570, 11572,
- 11574, 11576, 11578, 11580, 11582, 11584, 11586, 11588, 11590, 11592,
- 11594, 11596, 11598, 11600, 11602, 11604, 11606, 11608, 11610, 11612,
- 11614, 11616, 11618, 11620, 11622, 11624, 11626, 11628, 11630, 11632,
- 11634, 11636, 11638, 11640, 11642, 11644, 11646, 11648, 11650, 11652,
- 11654, 11656, 11658, 11660, 11662, 11664, 11666, 11668, 11670, 11672,
- 11674, 11676, 11678, 11680, 11682, 11684, 11686, 11688, 11690, 11692,
- 11694, 11696, 11698, 11700, 11702, 11704, 11706, 11708, 11710, 11712,
- 11714, 11716, 11718, 11720, 11722, 11724, 11726, 11728, 11730, 11732,
- 11734, 11736, 11738, 11740, 11742, 11744, 11746, 11748, 11750, 11752,
- 11754, 11756, 11758, 11760, 11762, 11764, 11766, 11768, 11770, 11772,
- 11774, 11776, 11778, 11780, 11782, 11784, 11786, 11788, 11790, 11792,
- 11794, 11796, 0, 0, 11798, 11800, 11802, 11804, 11806, 11808, 11810,
- 11812, 11814, 11816, 11818, 11820, 11822, 11824, 11826, 11828, 11830,
- 11832, 11834, 11836, 11838, 11840, 11842, 11844, 11846, 11848, 11850,
- 11852, 11854, 11856, 11858, 11860, 11862, 11864, 11866, 11868, 11870,
- 11872, 11874, 11876, 11878, 11880, 11882, 11884, 11886, 11888, 11890,
- 11892, 11894, 11896, 11898, 11900, 11902, 11904, 11906, 11908, 11910,
- 11912, 11914, 11916, 11918, 11920, 11922, 11924, 11926, 11928, 11930,
- 11932, 11934, 11936, 11938, 11940, 11942, 11944, 11946, 11948, 11950,
- 11952, 11954, 11956, 11958, 11960, 11962, 11964, 11966, 11968, 11970,
- 11972, 11974, 11976, 11978, 11980, 11982, 11984, 11986, 11988, 11990,
- 11992, 11994, 11996, 11998, 12000, 12002, 12004, 12006, 12008, 12010,
- 12012, 12014, 12016, 12018, 12020, 12022, 12024, 12026, 12028, 12030,
- 12032, 12034, 12036, 12038, 12040, 12042, 12044, 12046, 12048, 12050,
- 12052, 12054, 12056, 12058, 12060, 12062, 12064, 12066, 12068, 12070,
- 12072, 12074, 12076, 12078, 12080, 12082, 12084, 12086, 12088, 12090,
- 12092, 12094, 12096, 12098, 12100, 12102, 12104, 12106, 12108, 12110,
- 12112, 12114, 12116, 12118, 12120, 12122, 12124, 12126, 12128, 12130,
- 12132, 12134, 12136, 12138, 12140, 12142, 12144, 12146, 12148, 12150,
- 12152, 12154, 12156, 12158, 12160, 12162, 12164, 12166, 12168, 12170,
- 12172, 12174, 12176, 12178, 12180, 12182, 12184, 12186, 12188, 12190,
- 12192, 12194, 12196, 12198, 12200, 12202, 12204, 12206, 12208, 12210,
- 12212, 12214, 12216, 12218, 12220, 12222, 12224, 12226, 12228, 12230,
- 12232, 12234, 12236, 12238, 12240, 12242, 12244, 12246, 12248, 12250,
- 12252, 12254, 12256, 12258, 12260, 12262, 12264, 12266, 12268, 12270,
- 12272, 12274, 12276, 12278, 12280, 12282, 12284, 12286, 12288, 12290,
- 12292, 12294, 12296, 12298, 12300, 12302, 12304, 12306, 12308, 12310,
- 12312, 12314, 12316, 12318, 12320, 12322, 12324, 12326, 12328, 12330,
- 12332, 12334, 12336, 12338, 12340, 12342, 12344, 12346, 12348, 12350,
- 12352, 12354, 12356, 12358, 12360, 12362, 12364, 12366, 12368, 12370,
- 12372, 12374, 12376, 12378, 12380, 0, 0, 12382, 12384, 12386, 12388,
- 12390, 12392, 12394, 12396, 12398, 12400, 12402, 12404, 12406, 12408,
- 12410, 12412, 12414, 12416, 12418, 12420, 12422, 12424, 12426, 12428,
- 12430, 12432, 12434, 12436, 12438, 12440, 12442, 12444, 12446, 12448,
- 12450, 12452, 12454, 12456, 12458, 12460, 12462, 12464, 12466, 12468,
- 12470, 12472, 12474, 12476, 12478, 12480, 12482, 12484, 12486, 12488, 0,
- 12490, 12492, 12494, 12496, 12498, 12500, 12502, 12504, 12506, 12508,
- 12510, 12512, 12514, 12516, 12518, 12520, 12522, 12524, 12526, 12528,
- 12530, 12532, 12534, 12536, 12538, 12540, 12542, 0, 12544, 12546, 0,
- 12548, 0, 0, 12550, 0, 12552, 12554, 12556, 12558, 12560, 12562, 12564,
- 12566, 12568, 12570, 0, 12572, 12574, 12576, 12578, 0, 12580, 0, 12582,
- 0, 0, 0, 0, 0, 0, 12584, 0, 0, 0, 0, 12586, 0, 12588, 0, 12590, 0, 12592,
- 12594, 12596, 0, 12598, 12600, 0, 12602, 0, 0, 12604, 0, 12606, 0, 12608,
- 0, 12610, 0, 12612, 0, 12614, 12616, 0, 12618, 0, 0, 12620, 12622, 12624,
- 12626, 0, 12628, 12630, 12632, 12634, 12636, 12638, 12640, 0, 12642,
- 12644, 12646, 12648, 0, 12650, 12652, 12654, 12656, 0, 12658, 0, 12660,
- 12662, 12664, 12666, 12668, 12670, 12672, 12674, 12676, 12678, 0, 12680,
- 12682, 12684, 12686, 12688, 12690, 12692, 12694, 12696, 12698, 12700,
- 12702, 12704, 12706, 12708, 12710, 12712, 0, 0, 0, 0, 0, 12714, 12716,
- 12718, 0, 12720, 12722, 12724, 12726, 12728, 0, 12730, 12732, 12734,
- 12736, 12738, 12740, 12742, 12744, 12746, 12748, 12750, 12752, 12754,
- 12756, 12758, 12760, 12762, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 12764, 12767, 12770, 12773, 12776, 12779, 12782, 12785,
- 12788, 12791, 12794, 0, 0, 0, 0, 0, 12797, 12801, 12805, 12809, 12813,
- 12817, 12821, 12825, 12829, 12833, 12837, 12841, 12845, 12849, 12853,
- 12857, 12861, 12865, 12869, 12873, 12877, 12881, 12885, 12889, 12893,
- 12897, 12901, 12905, 12907, 12909, 12912, 0, 12915, 12917, 12919, 12921,
- 12923, 12925, 12927, 12929, 12931, 12933, 12935, 12937, 12939, 12941,
- 12943, 12945, 12947, 12949, 12951, 12953, 12955, 12957, 12959, 12961,
- 12963, 12965, 12967, 12970, 12973, 12976, 12979, 12983, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12986, 12989,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12992, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 12995, 12998, 13001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 13003, 13005, 13007, 13009, 13011, 13013, 13015, 13017, 13019, 13021,
- 13023, 13025, 13027, 13029, 13031, 13033, 13035, 13037, 13039, 13041,
- 13043, 13045, 13047, 13049, 13051, 13053, 13055, 13057, 13059, 13061,
- 13063, 13065, 13067, 13069, 13071, 13073, 13075, 13077, 13079, 13081,
- 13083, 13085, 13087, 0, 0, 0, 0, 0, 13089, 13093, 13097, 13101, 13105,
- 13109, 13113, 13117, 13121, 0, 0, 0, 0, 0, 0, 0, 13125, 13127, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 13129, 13131, 13133, 13135, 13137, 13139, 13141, 13143, 13145,
- 13147, 13149, 13151, 13153, 13155, 13157, 13159, 13161, 13163, 13165,
- 13167, 13169, 13171, 13173, 13175, 13177, 13179, 13181, 13183, 13185,
- 13187, 13189, 13191, 13193, 13195, 13197, 13199, 13201, 13203, 13205,
- 13207, 13209, 13211, 13213, 13215, 13217, 13219, 13221, 13223, 13225,
- 13227, 13229, 13231, 13233, 13235, 13237, 13239, 13241, 13243, 13245,
- 13247, 13249, 13251, 13253, 13255, 13257, 13259, 13261, 13263, 13265,
- 13267, 13269, 13271, 13273, 13275, 13277, 13279, 13281, 13283, 13285,
- 13287, 13289, 13291, 13293, 13295, 13297, 13299, 13301, 13303, 13305,
- 13307, 13309, 13311, 13313, 13315, 13317, 13319, 13321, 13323, 13325,
- 13327, 13329, 13331, 13333, 13335, 13337, 13339, 13341, 13343, 13345,
- 13347, 13349, 13351, 13353, 13355, 13357, 13359, 13361, 13363, 13365,
- 13367, 13369, 13371, 13373, 13375, 13377, 13379, 13381, 13383, 13385,
- 13387, 13389, 13391, 13393, 13395, 13397, 13399, 13401, 13403, 13405,
- 13407, 13409, 13411, 13413, 13415, 13417, 13419, 13421, 13423, 13425,
- 13427, 13429, 13431, 13433, 13435, 13437, 13439, 13441, 13443, 13445,
- 13447, 13449, 13451, 13453, 13455, 13457, 13459, 13461, 13463, 13465,
- 13467, 13469, 13471, 13473, 13475, 13477, 13479, 13481, 13483, 13485,
- 13487, 13489, 13491, 13493, 13495, 13497, 13499, 13501, 13503, 13505,
- 13507, 13509, 13511, 13513, 13515, 13517, 13519, 13521, 13523, 13525,
- 13527, 13529, 13531, 13533, 13535, 13537, 13539, 13541, 13543, 13545,
- 13547, 13549, 13551, 13553, 13555, 13557, 13559, 13561, 13563, 13565,
- 13567, 13569, 13571, 13573, 13575, 13577, 13579, 13581, 13583, 13585,
- 13587, 13589, 13591, 13593, 13595, 13597, 13599, 13601, 13603, 13605,
- 13607, 13609, 13611, 13613, 13615, 13617, 13619, 13621, 13623, 13625,
- 13627, 13629, 13631, 13633, 13635, 13637, 13639, 13641, 13643, 13645,
- 13647, 13649, 13651, 13653, 13655, 13657, 13659, 13661, 13663, 13665,
- 13667, 13669, 13671, 13673, 13675, 13677, 13679, 13681, 13683, 13685,
- 13687, 13689, 13691, 13693, 13695, 13697, 13699, 13701, 13703, 13705,
- 13707, 13709, 13711, 13713, 13715, 13717, 13719, 13721, 13723, 13725,
- 13727, 13729, 13731, 13733, 13735, 13737, 13739, 13741, 13743, 13745,
- 13747, 13749, 13751, 13753, 13755, 13757, 13759, 13761, 13763, 13765,
- 13767, 13769, 13771, 13773, 13775, 13777, 13779, 13781, 13783, 13785,
- 13787, 13789, 13791, 13793, 13795, 13797, 13799, 13801, 13803, 13805,
- 13807, 13809, 13811, 13813, 13815, 13817, 13819, 13821, 13823, 13825,
- 13827, 13829, 13831, 13833, 13835, 13837, 13839, 13841, 13843, 13845,
- 13847, 13849, 13851, 13853, 13855, 13857, 13859, 13861, 13863, 13865,
- 13867, 13869, 13871, 13873, 13875, 13877, 13879, 13881, 13883, 13885,
- 13887, 13889, 13891, 13893, 13895, 13897, 13899, 13901, 13903, 13905,
- 13907, 13909, 13911, 13913, 13915, 13917, 13919, 13921, 13923, 13925,
- 13927, 13929, 13931, 13933, 13935, 13937, 13939, 13941, 13943, 13945,
- 13947, 13949, 13951, 13953, 13955, 13957, 13959, 13961, 13963, 13965,
- 13967, 13969, 13971, 13973, 13975, 13977, 13979, 13981, 13983, 13985,
- 13987, 13989, 13991, 13993, 13995, 13997, 13999, 14001, 14003, 14005,
- 14007, 14009, 14011, 14013, 14015, 14017, 14019, 14021, 14023, 14025,
- 14027, 14029, 14031, 14033, 14035, 14037, 14039, 14041, 14043, 14045,
- 14047, 14049, 14051, 14053, 14055, 14057, 14059, 14061, 14063, 14065,
- 14067, 14069, 14071, 14073, 14075, 14077, 14079, 14081, 14083, 14085,
- 14087, 14089, 14091, 14093, 14095, 14097, 14099, 14101, 14103, 14105,
- 14107, 14109, 14111, 14113, 14115, 14117, 14119, 14121, 14123, 14125,
- 14127, 14129, 14131, 14133, 14135, 14137, 14139, 14141, 14143, 14145,
- 14147, 14149, 14151, 14153, 14155, 14157, 14159, 14161, 14163, 14165,
- 14167, 14169, 14171, 14173, 14175, 14177, 14179, 14181, 14183, 14185,
- 14187, 14189, 14191, 14193, 14195, 14197, 14199, 14201, 14203, 14205,
- 14207, 14209, 14211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6646, 6648, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6650, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 6652, 6654, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6656, 6658, 6660, 6662, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 6664, 6666, 6668, 6670, 6672, 6674, 6676, 6678,
+ 6680, 6682, 6684, 6686, 6688, 6690, 6692, 6694, 6696, 6698, 6700, 6702,
+ 6704, 6706, 6708, 6710, 6712, 6714, 6716, 6718, 6720, 6722, 6724, 6726,
+ 6728, 6730, 6732, 6734, 6736, 6738, 6740, 6742, 6744, 6746, 6748, 6750,
+ 6752, 6754, 6756, 6758, 6760, 6762, 6764, 6766, 6768, 6770, 6772, 6774,
+ 6776, 6778, 6780, 6782, 6784, 6786, 6788, 6790, 6792, 6794, 6796, 6798,
+ 6800, 6802, 6804, 6806, 6808, 6810, 6812, 6814, 6816, 6818, 6820, 6822,
+ 6824, 6826, 6828, 6830, 6832, 6834, 6836, 6838, 6840, 6842, 6844, 6846,
+ 6848, 6850, 6852, 6854, 6856, 6858, 6860, 6862, 6864, 6866, 6868, 6870,
+ 6872, 6874, 6876, 6878, 6880, 6882, 6884, 6886, 6888, 6890, 6892, 6894,
+ 6896, 6898, 6900, 6902, 6904, 6906, 6908, 6910, 6912, 6914, 6916, 6918,
+ 6920, 6922, 6924, 6926, 6928, 6930, 6932, 6934, 6936, 6938, 6940, 6942,
+ 6944, 6946, 6948, 6950, 6952, 6954, 6956, 6958, 6960, 6962, 6964, 6966,
+ 6968, 6970, 6972, 6974, 6976, 6978, 6980, 6982, 6984, 6986, 6988, 6990,
+ 6992, 6994, 6996, 6998, 7000, 7002, 7004, 7006, 7008, 7010, 7012, 7014,
+ 7016, 7018, 7020, 7022, 7024, 7026, 7028, 7030, 7032, 7034, 7036, 7038,
+ 7040, 7042, 7044, 7046, 7048, 7050, 7052, 7054, 7056, 7058, 7060, 7062,
+ 7064, 7066, 7068, 7070, 7072, 7074, 7076, 7078, 7080, 7082, 7084, 7086,
+ 7088, 7090, 7092, 7094, 7096, 7098, 7100, 7102, 7104, 7106, 7108, 7110,
+ 7112, 7114, 7116, 7118, 7120, 7122, 7124, 7126, 7128, 7130, 7132, 7134,
+ 7136, 7138, 7140, 7142, 7144, 7146, 7148, 7150, 7152, 7154, 7156, 7158,
+ 7160, 7162, 7164, 7166, 7168, 7170, 7172, 7174, 7176, 7178, 7180, 7182,
+ 7184, 7186, 7188, 7190, 7192, 7194, 7196, 7198, 7200, 7202, 0, 0, 7204,
+ 0, 7206, 0, 0, 7208, 7210, 7212, 7214, 7216, 7218, 7220, 7222, 7224,
+ 7226, 0, 7228, 0, 7230, 0, 0, 7232, 7234, 0, 0, 0, 7236, 7238, 7240,
+ 7242, 7244, 7246, 7248, 7250, 7252, 7254, 7256, 7258, 7260, 7262, 7264,
+ 7266, 7268, 7270, 7272, 7274, 7276, 7278, 7280, 7282, 7284, 7286, 7288,
+ 7290, 7292, 7294, 7296, 7298, 7300, 7302, 7304, 7306, 7308, 7310, 7312,
+ 7314, 7316, 7318, 7320, 7322, 7324, 7326, 7328, 7330, 7332, 7334, 7336,
+ 7338, 7340, 7342, 7344, 7346, 7348, 7350, 7352, 7354, 7356, 7358, 7360,
+ 7362, 7364, 7366, 7368, 7370, 0, 0, 7372, 7374, 7376, 7378, 7380, 7382,
+ 7384, 7386, 7388, 7390, 7392, 7394, 7396, 7398, 7400, 7402, 7404, 7406,
+ 7408, 7410, 7412, 7414, 7416, 7418, 7420, 7422, 7424, 7426, 7428, 7430,
+ 7432, 7434, 7436, 7438, 7440, 7442, 7444, 7446, 7448, 7450, 7452, 7454,
+ 7456, 7458, 7460, 7462, 7464, 7466, 7468, 7470, 7472, 7474, 7476, 7478,
+ 7480, 7482, 7484, 7486, 7488, 7490, 7492, 7494, 7496, 7498, 7500, 7502,
+ 7504, 7506, 7508, 7510, 7512, 7514, 7516, 7518, 7520, 7522, 7524, 7526,
+ 7528, 7530, 7532, 7534, 7536, 7538, 7540, 7542, 7544, 7546, 7548, 7550,
+ 7552, 7554, 7556, 7558, 7560, 7562, 7564, 7566, 7568, 7570, 7572, 7574,
+ 7576, 7578, 7580, 7582, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7584,
+ 7587, 7590, 7593, 7597, 7601, 7604, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 7607, 7610, 7613, 7616, 7619, 0, 0, 0, 0, 0, 7622, 0, 7625, 7628, 7630,
+ 7632, 7634, 7636, 7638, 7640, 7642, 7644, 7646, 7648, 7651, 7654, 7657,
+ 7660, 7663, 7666, 7669, 7672, 7675, 7678, 7681, 7684, 0, 7687, 7690,
+ 7693, 7696, 7699, 0, 7702, 0, 7705, 7708, 0, 7711, 7714, 0, 7717, 7720,
+ 7723, 7726, 7729, 7732, 7735, 7738, 7741, 7744, 7747, 7749, 7751, 7753,
+ 7755, 7757, 7759, 7761, 7763, 7765, 7767, 7769, 7771, 7773, 7775, 7777,
+ 7779, 7781, 7783, 7785, 7787, 7789, 7791, 7793, 7795, 7797, 7799, 7801,
+ 7803, 7805, 7807, 7809, 7811, 7813, 7815, 7817, 7819, 7821, 7823, 7825,
+ 7827, 7829, 7831, 7833, 7835, 7837, 7839, 7841, 7843, 7845, 7847, 7849,
+ 7851, 7853, 7855, 7857, 7859, 7861, 7863, 7865, 7867, 7869, 7871, 7873,
+ 7875, 7877, 7879, 7881, 7883, 7885, 7887, 7889, 7891, 7893, 7895, 7897,
+ 7899, 7901, 7903, 7905, 7907, 7909, 7911, 7913, 7915, 7917, 7919, 7921,
+ 7923, 7925, 7927, 7929, 7931, 7933, 7935, 7937, 7939, 7941, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 7943, 7945, 7947, 7949, 7951, 7953, 7955, 7957, 7959,
+ 7961, 7963, 7965, 7967, 7969, 7971, 7973, 7975, 7977, 7979, 7981, 7983,
+ 7985, 7987, 7989, 7992, 7995, 7998, 8001, 8004, 8007, 8010, 8013, 8016,
+ 8019, 8022, 8025, 8028, 8031, 8034, 8037, 8040, 8043, 8045, 8047, 8049,
+ 8051, 8054, 8057, 8060, 8063, 8066, 8069, 8072, 8075, 8078, 8081, 8084,
+ 8087, 8090, 8093, 8096, 8099, 8102, 8105, 8108, 8111, 8114, 8117, 8120,
+ 8123, 8126, 8129, 8132, 8135, 8138, 8141, 8144, 8147, 8150, 8153, 8156,
+ 8159, 8162, 8165, 8168, 8171, 8174, 8177, 8180, 8183, 8186, 8189, 8192,
+ 8195, 8198, 8201, 8204, 8207, 8210, 8213, 8216, 8219, 8222, 8225, 8228,
+ 8231, 8234, 8237, 8240, 8243, 8246, 8249, 8252, 8255, 8258, 8261, 8264,
+ 8267, 8270, 8273, 8276, 8279, 8282, 8285, 8288, 8291, 8294, 8297, 8300,
+ 8303, 8306, 8309, 8312, 8315, 8318, 8321, 8324, 8327, 8330, 8333, 8337,
+ 8341, 8345, 8349, 8353, 8357, 8360, 8363, 8366, 8369, 8372, 8375, 8378,
+ 8381, 8384, 8387, 8390, 8393, 8396, 8399, 8402, 8405, 8408, 8411, 8414,
+ 8417, 8420, 8423, 8426, 8429, 8432, 8435, 8438, 8441, 8444, 8447, 8450,
+ 8453, 8456, 8459, 8462, 8465, 8468, 8471, 8474, 8477, 8480, 8483, 8486,
+ 8489, 8492, 8495, 8498, 8501, 8504, 8507, 8510, 8513, 8516, 8519, 8522,
+ 8525, 8528, 8531, 8534, 8537, 8540, 8543, 8546, 8549, 8552, 8555, 8558,
+ 8561, 8564, 8567, 8570, 8573, 8576, 8579, 8582, 8585, 8588, 8591, 8594,
+ 8597, 8600, 8603, 8606, 8609, 8612, 8615, 8618, 8621, 8624, 8627, 8630,
+ 8633, 8636, 8639, 8642, 8645, 8648, 8651, 8654, 8657, 8660, 8663, 8666,
+ 8669, 8672, 8675, 8678, 8681, 8684, 8687, 8690, 8693, 8696, 8699, 8702,
+ 8705, 8708, 8711, 8714, 8717, 8720, 8723, 8726, 8729, 8732, 8735, 8738,
+ 8741, 8744, 8747, 8750, 8753, 8756, 8759, 8762, 8765, 8768, 8771, 8774,
+ 8777, 8780, 8783, 8787, 8791, 8795, 8798, 8801, 8804, 8807, 8810, 8813,
+ 8816, 8819, 8822, 8825, 8828, 8831, 8834, 8837, 8840, 8843, 8846, 8849,
+ 8852, 8855, 8858, 8861, 8864, 8867, 8870, 8873, 8876, 8879, 8882, 8885,
+ 8888, 8891, 8894, 8897, 8900, 8903, 8906, 8909, 8912, 8915, 8918, 8921,
+ 8924, 8927, 8930, 8933, 8936, 8939, 8942, 8945, 8948, 8951, 8954, 8957,
+ 8960, 8963, 8966, 8969, 8972, 8975, 8978, 8981, 8984, 8987, 8990, 8993,
+ 8996, 8999, 9002, 9005, 9008, 9011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 9014, 9018, 9022, 9026, 9030, 9034, 9038, 9042, 9046,
+ 9050, 9054, 9058, 9062, 9066, 9070, 9074, 9078, 9082, 9086, 9090, 9094,
+ 9098, 9102, 9106, 9110, 9114, 9118, 9122, 9126, 9130, 9134, 9138, 9142,
+ 9146, 9150, 9154, 9158, 9162, 9166, 9170, 9174, 9178, 9182, 9186, 9190,
+ 9194, 9198, 9202, 9206, 9210, 9214, 9218, 9222, 9226, 9230, 9234, 9238,
+ 9242, 9246, 9250, 9254, 9258, 9262, 9266, 0, 0, 9270, 9274, 9278, 9282,
+ 9286, 9290, 9294, 9298, 9302, 9306, 9310, 9314, 9318, 9322, 9326, 9330,
+ 9334, 9338, 9342, 9346, 9350, 9354, 9358, 9362, 9366, 9370, 9374, 9378,
+ 9382, 9386, 9390, 9394, 9398, 9402, 9406, 9410, 9414, 9418, 9422, 9426,
+ 9430, 9434, 9438, 9442, 9446, 9450, 9454, 9458, 9462, 9466, 9470, 9474,
+ 9478, 9482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9486, 9490,
+ 9494, 9499, 9504, 9509, 9514, 9519, 9524, 9529, 9533, 9552, 9561, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9566, 9568, 9570,
+ 9572, 9574, 9576, 9578, 9580, 9582, 9584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9586, 9588, 9590, 9592, 9594, 9596,
+ 9598, 9600, 9602, 9604, 9606, 9608, 9610, 9612, 9614, 9616, 9618, 9620,
+ 9622, 9624, 9626, 0, 0, 9628, 9630, 9632, 9634, 9636, 9638, 9640, 9642,
+ 9644, 9646, 9648, 9650, 0, 9652, 9654, 9656, 9658, 9660, 9662, 9664,
+ 9666, 9668, 9670, 9672, 9674, 9676, 9678, 9680, 9682, 9684, 9686, 9688,
+ 0, 9690, 9692, 9694, 9696, 0, 0, 0, 0, 9698, 9701, 9704, 0, 9707, 0,
+ 9710, 9713, 9716, 9719, 9722, 9725, 9728, 9731, 9734, 9737, 9740, 9742,
+ 9744, 9746, 9748, 9750, 9752, 9754, 9756, 9758, 9760, 9762, 9764, 9766,
+ 9768, 9770, 9772, 9774, 9776, 9778, 9780, 9782, 9784, 9786, 9788, 9790,
+ 9792, 9794, 9796, 9798, 9800, 9802, 9804, 9806, 9808, 9810, 9812, 9814,
+ 9816, 9818, 9820, 9822, 9824, 9826, 9828, 9830, 9832, 9834, 9836, 9838,
+ 9840, 9842, 9844, 9846, 9848, 9850, 9852, 9854, 9856, 9858, 9860, 9862,
+ 9864, 9866, 9868, 9870, 9872, 9874, 9876, 9878, 9880, 9882, 9884, 9886,
+ 9888, 9890, 9892, 9894, 9896, 9898, 9900, 9902, 9904, 9906, 9908, 9910,
+ 9912, 9914, 9916, 9918, 9920, 9922, 9924, 9926, 9928, 9930, 9932, 9934,
+ 9936, 9938, 9940, 9942, 9944, 9946, 9948, 9950, 9952, 9954, 9956, 9958,
+ 9960, 9962, 9964, 9966, 9968, 9970, 9972, 9974, 9977, 9980, 9983, 9986,
+ 9989, 9992, 9995, 0, 0, 0, 0, 9998, 10000, 10002, 10004, 10006, 10008,
+ 10010, 10012, 10014, 10016, 10018, 10020, 10022, 10024, 10026, 10028,
+ 10030, 10032, 10034, 10036, 10038, 10040, 10042, 10044, 10046, 10048,
+ 10050, 10052, 10054, 10056, 10058, 10060, 10062, 10064, 10066, 10068,
+ 10070, 10072, 10074, 10076, 10078, 10080, 10082, 10084, 10086, 10088,
+ 10090, 10092, 10094, 10096, 10098, 10100, 10102, 10104, 10106, 10108,
+ 10110, 10112, 10114, 10116, 10118, 10120, 10122, 10124, 10126, 10128,
+ 10130, 10132, 10134, 10136, 10138, 10140, 10142, 10144, 10146, 10148,
+ 10150, 10152, 10154, 10156, 10158, 10160, 10162, 10164, 10166, 10168,
+ 10170, 10172, 10174, 10176, 10178, 10180, 10182, 10184, 10186, 10188,
+ 10190, 10192, 10194, 10196, 10198, 10200, 10202, 10204, 10206, 10208,
+ 10210, 10212, 10214, 10216, 10218, 10220, 10222, 10224, 10226, 10228,
+ 10230, 10232, 10234, 10236, 10238, 10240, 10242, 10244, 10246, 10248,
+ 10250, 10252, 10254, 10256, 10258, 10260, 10262, 10264, 10266, 10268,
+ 10270, 10272, 10274, 10276, 10278, 10280, 10282, 10284, 10286, 10288,
+ 10290, 10292, 10294, 10296, 10298, 10300, 10302, 10304, 10306, 10308,
+ 10310, 10312, 10314, 10316, 10318, 10320, 10322, 10324, 10326, 10328,
+ 10330, 10332, 10334, 10336, 10338, 10340, 10342, 10344, 10346, 10348,
+ 10350, 10352, 10354, 10356, 10358, 10360, 10362, 10364, 10366, 10368,
+ 10370, 10372, 10374, 10376, 0, 0, 0, 10378, 10380, 10382, 10384, 10386,
+ 10388, 0, 0, 10390, 10392, 10394, 10396, 10398, 10400, 0, 0, 10402,
+ 10404, 10406, 10408, 10410, 10412, 0, 0, 10414, 10416, 10418, 0, 0, 0,
+ 10420, 10422, 10424, 10426, 10428, 10430, 10432, 0, 10434, 10436, 10438,
+ 10440, 10442, 10444, 10446, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 10448, 0, 10451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 10454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10457, 10460, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 10463, 10466, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10469,
+ 10472, 0, 10475, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 10478, 10481, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 10484, 10487, 10490, 10493, 10496, 10499, 10502, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10505, 10508, 10511, 10514, 10517,
+ 10520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10523, 10525, 10527,
+ 10529, 10531, 10533, 10535, 10537, 10539, 10541, 10543, 10545, 10547,
+ 10549, 10551, 10553, 10555, 10557, 10559, 10561, 10563, 10565, 10567,
+ 10569, 10571, 10573, 10575, 10577, 10579, 10581, 10583, 10585, 10587,
+ 10589, 10591, 10593, 10595, 10597, 10599, 10601, 10603, 10605, 10607,
+ 10609, 10611, 10613, 10615, 10617, 10619, 10621, 10623, 10625, 10627,
+ 10629, 10631, 10633, 10635, 10637, 10639, 10641, 10643, 10645, 10647,
+ 10649, 10651, 10653, 10655, 10657, 10659, 10661, 10663, 10665, 10667,
+ 10669, 10671, 10673, 10675, 10677, 10679, 10681, 10683, 10685, 10687,
+ 10689, 10691, 0, 10693, 10695, 10697, 10699, 10701, 10703, 10705, 10707,
+ 10709, 10711, 10713, 10715, 10717, 10719, 10721, 10723, 10725, 10727,
+ 10729, 10731, 10733, 10735, 10737, 10739, 10741, 10743, 10745, 10747,
+ 10749, 10751, 10753, 10755, 10757, 10759, 10761, 10763, 10765, 10767,
+ 10769, 10771, 10773, 10775, 10777, 10779, 10781, 10783, 10785, 10787,
+ 10789, 10791, 10793, 10795, 10797, 10799, 10801, 10803, 10805, 10807,
+ 10809, 10811, 10813, 10815, 10817, 10819, 10821, 10823, 10825, 10827,
+ 10829, 10831, 10833, 0, 10835, 10837, 0, 0, 10839, 0, 0, 10841, 10843, 0,
+ 0, 10845, 10847, 10849, 10851, 0, 10853, 10855, 10857, 10859, 10861,
+ 10863, 10865, 10867, 10869, 10871, 10873, 10875, 0, 10877, 0, 10879,
+ 10881, 10883, 10885, 10887, 10889, 10891, 0, 10893, 10895, 10897, 10899,
+ 10901, 10903, 10905, 10907, 10909, 10911, 10913, 10915, 10917, 10919,
+ 10921, 10923, 10925, 10927, 10929, 10931, 10933, 10935, 10937, 10939,
+ 10941, 10943, 10945, 10947, 10949, 10951, 10953, 10955, 10957, 10959,
+ 10961, 10963, 10965, 10967, 10969, 10971, 10973, 10975, 10977, 10979,
+ 10981, 10983, 10985, 10987, 10989, 10991, 10993, 10995, 10997, 10999,
+ 11001, 11003, 11005, 11007, 11009, 11011, 11013, 11015, 11017, 11019,
+ 11021, 0, 11023, 11025, 11027, 11029, 0, 0, 11031, 11033, 11035, 11037,
+ 11039, 11041, 11043, 11045, 0, 11047, 11049, 11051, 11053, 11055, 11057,
+ 11059, 0, 11061, 11063, 11065, 11067, 11069, 11071, 11073, 11075, 11077,
+ 11079, 11081, 11083, 11085, 11087, 11089, 11091, 11093, 11095, 11097,
+ 11099, 11101, 11103, 11105, 11107, 11109, 11111, 11113, 11115, 0, 11117,
+ 11119, 11121, 11123, 0, 11125, 11127, 11129, 11131, 11133, 0, 11135, 0,
+ 0, 0, 11137, 11139, 11141, 11143, 11145, 11147, 11149, 0, 11151, 11153,
+ 11155, 11157, 11159, 11161, 11163, 11165, 11167, 11169, 11171, 11173,
+ 11175, 11177, 11179, 11181, 11183, 11185, 11187, 11189, 11191, 11193,
+ 11195, 11197, 11199, 11201, 11203, 11205, 11207, 11209, 11211, 11213,
+ 11215, 11217, 11219, 11221, 11223, 11225, 11227, 11229, 11231, 11233,
+ 11235, 11237, 11239, 11241, 11243, 11245, 11247, 11249, 11251, 11253,
+ 11255, 11257, 11259, 11261, 11263, 11265, 11267, 11269, 11271, 11273,
+ 11275, 11277, 11279, 11281, 11283, 11285, 11287, 11289, 11291, 11293,
+ 11295, 11297, 11299, 11301, 11303, 11305, 11307, 11309, 11311, 11313,
+ 11315, 11317, 11319, 11321, 11323, 11325, 11327, 11329, 11331, 11333,
+ 11335, 11337, 11339, 11341, 11343, 11345, 11347, 11349, 11351, 11353,
+ 11355, 11357, 11359, 11361, 11363, 11365, 11367, 11369, 11371, 11373,
+ 11375, 11377, 11379, 11381, 11383, 11385, 11387, 11389, 11391, 11393,
+ 11395, 11397, 11399, 11401, 11403, 11405, 11407, 11409, 11411, 11413,
+ 11415, 11417, 11419, 11421, 11423, 11425, 11427, 11429, 11431, 11433,
+ 11435, 11437, 11439, 11441, 11443, 11445, 11447, 11449, 11451, 11453,
+ 11455, 11457, 11459, 11461, 11463, 11465, 11467, 11469, 11471, 11473,
+ 11475, 11477, 11479, 11481, 11483, 11485, 11487, 11489, 11491, 11493,
+ 11495, 11497, 11499, 11501, 11503, 11505, 11507, 11509, 11511, 11513,
+ 11515, 11517, 11519, 11521, 11523, 11525, 11527, 11529, 11531, 11533,
+ 11535, 11537, 11539, 11541, 11543, 11545, 11547, 11549, 11551, 11553,
+ 11555, 11557, 11559, 11561, 11563, 11565, 11567, 11569, 11571, 11573,
+ 11575, 11577, 11579, 11581, 11583, 11585, 11587, 11589, 11591, 11593,
+ 11595, 11597, 11599, 11601, 11603, 11605, 11607, 11609, 11611, 11613,
+ 11615, 11617, 11619, 11621, 11623, 11625, 11627, 11629, 11631, 11633,
+ 11635, 11637, 11639, 11641, 11643, 11645, 11647, 11649, 11651, 11653,
+ 11655, 11657, 11659, 11661, 11663, 11665, 11667, 11669, 11671, 11673,
+ 11675, 11677, 11679, 11681, 11683, 11685, 11687, 11689, 11691, 11693,
+ 11695, 11697, 11699, 11701, 11703, 11705, 11707, 11709, 11711, 11713,
+ 11715, 11717, 11719, 11721, 11723, 11725, 11727, 11729, 11731, 11733,
+ 11735, 11737, 11739, 11741, 11743, 11745, 11747, 11749, 11751, 11753,
+ 11755, 11757, 11759, 11761, 11763, 11765, 11767, 11769, 11771, 11773,
+ 11775, 11777, 11779, 11781, 11783, 11785, 11787, 11789, 11791, 11793,
+ 11795, 11797, 11799, 11801, 11803, 11805, 11807, 11809, 11811, 11813,
+ 11815, 11817, 11819, 11821, 11823, 11825, 11827, 11829, 0, 0, 11831,
+ 11833, 11835, 11837, 11839, 11841, 11843, 11845, 11847, 11849, 11851,
+ 11853, 11855, 11857, 11859, 11861, 11863, 11865, 11867, 11869, 11871,
+ 11873, 11875, 11877, 11879, 11881, 11883, 11885, 11887, 11889, 11891,
+ 11893, 11895, 11897, 11899, 11901, 11903, 11905, 11907, 11909, 11911,
+ 11913, 11915, 11917, 11919, 11921, 11923, 11925, 11927, 11929, 11931,
+ 11933, 11935, 11937, 11939, 11941, 11943, 11945, 11947, 11949, 11951,
+ 11953, 11955, 11957, 11959, 11961, 11963, 11965, 11967, 11969, 11971,
+ 11973, 11975, 11977, 11979, 11981, 11983, 11985, 11987, 11989, 11991,
+ 11993, 11995, 11997, 11999, 12001, 12003, 12005, 12007, 12009, 12011,
+ 12013, 12015, 12017, 12019, 12021, 12023, 12025, 12027, 12029, 12031,
+ 12033, 12035, 12037, 12039, 12041, 12043, 12045, 12047, 12049, 12051,
+ 12053, 12055, 12057, 12059, 12061, 12063, 12065, 12067, 12069, 12071,
+ 12073, 12075, 12077, 12079, 12081, 12083, 12085, 12087, 12089, 12091,
+ 12093, 12095, 12097, 12099, 12101, 12103, 12105, 12107, 12109, 12111,
+ 12113, 12115, 12117, 12119, 12121, 12123, 12125, 12127, 12129, 12131,
+ 12133, 12135, 12137, 12139, 12141, 12143, 12145, 12147, 12149, 12151,
+ 12153, 12155, 12157, 12159, 12161, 12163, 12165, 12167, 12169, 12171,
+ 12173, 12175, 12177, 12179, 12181, 12183, 12185, 12187, 12189, 12191,
+ 12193, 12195, 12197, 12199, 12201, 12203, 12205, 12207, 12209, 12211,
+ 12213, 12215, 12217, 12219, 12221, 12223, 12225, 12227, 12229, 12231,
+ 12233, 12235, 12237, 12239, 12241, 12243, 12245, 12247, 12249, 12251,
+ 12253, 12255, 12257, 12259, 12261, 12263, 12265, 12267, 12269, 12271,
+ 12273, 12275, 12277, 12279, 12281, 12283, 12285, 12287, 12289, 12291,
+ 12293, 12295, 12297, 12299, 12301, 12303, 12305, 12307, 12309, 12311,
+ 12313, 12315, 12317, 12319, 12321, 12323, 12325, 12327, 12329, 12331,
+ 12333, 12335, 12337, 12339, 12341, 12343, 12345, 12347, 12349, 12351,
+ 12353, 12355, 12357, 12359, 12361, 12363, 12365, 12367, 12369, 12371,
+ 12373, 12375, 12377, 12379, 12381, 12383, 12385, 12387, 12389, 12391,
+ 12393, 12395, 12397, 12399, 12401, 12403, 12405, 12407, 12409, 12411,
+ 12413, 0, 0, 12415, 12417, 12419, 12421, 12423, 12425, 12427, 12429,
+ 12431, 12433, 12435, 12437, 12439, 12441, 12443, 12445, 12447, 12449,
+ 12451, 12453, 12455, 12457, 12459, 12461, 12463, 12465, 12467, 12469,
+ 12471, 12473, 12475, 12477, 12479, 12481, 12483, 12485, 12487, 12489,
+ 12491, 12493, 12495, 12497, 12499, 12501, 12503, 12505, 12507, 12509,
+ 12511, 12513, 12515, 12517, 12519, 12521, 0, 12523, 12525, 12527, 12529,
+ 12531, 12533, 12535, 12537, 12539, 12541, 12543, 12545, 12547, 12549,
+ 12551, 12553, 12555, 12557, 12559, 12561, 12563, 12565, 12567, 12569,
+ 12571, 12573, 12575, 0, 12577, 12579, 0, 12581, 0, 0, 12583, 0, 12585,
+ 12587, 12589, 12591, 12593, 12595, 12597, 12599, 12601, 12603, 0, 12605,
+ 12607, 12609, 12611, 0, 12613, 0, 12615, 0, 0, 0, 0, 0, 0, 12617, 0, 0,
+ 0, 0, 12619, 0, 12621, 0, 12623, 0, 12625, 12627, 12629, 0, 12631, 12633,
+ 0, 12635, 0, 0, 12637, 0, 12639, 0, 12641, 0, 12643, 0, 12645, 0, 12647,
+ 12649, 0, 12651, 0, 0, 12653, 12655, 12657, 12659, 0, 12661, 12663,
+ 12665, 12667, 12669, 12671, 12673, 0, 12675, 12677, 12679, 12681, 0,
+ 12683, 12685, 12687, 12689, 0, 12691, 0, 12693, 12695, 12697, 12699,
+ 12701, 12703, 12705, 12707, 12709, 12711, 0, 12713, 12715, 12717, 12719,
+ 12721, 12723, 12725, 12727, 12729, 12731, 12733, 12735, 12737, 12739,
+ 12741, 12743, 12745, 0, 0, 0, 0, 0, 12747, 12749, 12751, 0, 12753, 12755,
+ 12757, 12759, 12761, 0, 12763, 12765, 12767, 12769, 12771, 12773, 12775,
+ 12777, 12779, 12781, 12783, 12785, 12787, 12789, 12791, 12793, 12795, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12797, 12800,
+ 12803, 12806, 12809, 12812, 12815, 12818, 12821, 12824, 12827, 0, 0, 0,
+ 0, 0, 12830, 12834, 12838, 12842, 12846, 12850, 12854, 12858, 12862,
+ 12866, 12870, 12874, 12878, 12882, 12886, 12890, 12894, 12898, 12902,
+ 12906, 12910, 12914, 12918, 12922, 12926, 12930, 12934, 12938, 12940,
+ 12942, 12945, 0, 12948, 12950, 12952, 12954, 12956, 12958, 12960, 12962,
+ 12964, 12966, 12968, 12970, 12972, 12974, 12976, 12978, 12980, 12982,
+ 12984, 12986, 12988, 12990, 12992, 12994, 12996, 12998, 13000, 13003,
+ 13006, 13009, 13012, 13016, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13019, 13022, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 13025, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13028, 13031,
+ 13034, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13036, 13038, 13040, 13042,
+ 13044, 13046, 13048, 13050, 13052, 13054, 13056, 13058, 13060, 13062,
+ 13064, 13066, 13068, 13070, 13072, 13074, 13076, 13078, 13080, 13082,
+ 13084, 13086, 13088, 13090, 13092, 13094, 13096, 13098, 13100, 13102,
+ 13104, 13106, 13108, 13110, 13112, 13114, 13116, 13118, 13120, 0, 0, 0,
+ 0, 0, 13122, 13126, 13130, 13134, 13138, 13142, 13146, 13150, 13154, 0,
+ 0, 0, 0, 0, 0, 0, 13158, 13160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 13162, 13164, 13166, 13168, 13170, 13172, 13174,
+ 13176, 13178, 13180, 13182, 13184, 13186, 13188, 13190, 13192, 13194,
+ 13196, 13198, 13200, 13202, 13204, 13206, 13208, 13210, 13212, 13214,
+ 13216, 13218, 13220, 13222, 13224, 13226, 13228, 13230, 13232, 13234,
+ 13236, 13238, 13240, 13242, 13244, 13246, 13248, 13250, 13252, 13254,
+ 13256, 13258, 13260, 13262, 13264, 13266, 13268, 13270, 13272, 13274,
+ 13276, 13278, 13280, 13282, 13284, 13286, 13288, 13290, 13292, 13294,
+ 13296, 13298, 13300, 13302, 13304, 13306, 13308, 13310, 13312, 13314,
+ 13316, 13318, 13320, 13322, 13324, 13326, 13328, 13330, 13332, 13334,
+ 13336, 13338, 13340, 13342, 13344, 13346, 13348, 13350, 13352, 13354,
+ 13356, 13358, 13360, 13362, 13364, 13366, 13368, 13370, 13372, 13374,
+ 13376, 13378, 13380, 13382, 13384, 13386, 13388, 13390, 13392, 13394,
+ 13396, 13398, 13400, 13402, 13404, 13406, 13408, 13410, 13412, 13414,
+ 13416, 13418, 13420, 13422, 13424, 13426, 13428, 13430, 13432, 13434,
+ 13436, 13438, 13440, 13442, 13444, 13446, 13448, 13450, 13452, 13454,
+ 13456, 13458, 13460, 13462, 13464, 13466, 13468, 13470, 13472, 13474,
+ 13476, 13478, 13480, 13482, 13484, 13486, 13488, 13490, 13492, 13494,
+ 13496, 13498, 13500, 13502, 13504, 13506, 13508, 13510, 13512, 13514,
+ 13516, 13518, 13520, 13522, 13524, 13526, 13528, 13530, 13532, 13534,
+ 13536, 13538, 13540, 13542, 13544, 13546, 13548, 13550, 13552, 13554,
+ 13556, 13558, 13560, 13562, 13564, 13566, 13568, 13570, 13572, 13574,
+ 13576, 13578, 13580, 13582, 13584, 13586, 13588, 13590, 13592, 13594,
+ 13596, 13598, 13600, 13602, 13604, 13606, 13608, 13610, 13612, 13614,
+ 13616, 13618, 13620, 13622, 13624, 13626, 13628, 13630, 13632, 13634,
+ 13636, 13638, 13640, 13642, 13644, 13646, 13648, 13650, 13652, 13654,
+ 13656, 13658, 13660, 13662, 13664, 13666, 13668, 13670, 13672, 13674,
+ 13676, 13678, 13680, 13682, 13684, 13686, 13688, 13690, 13692, 13694,
+ 13696, 13698, 13700, 13702, 13704, 13706, 13708, 13710, 13712, 13714,
+ 13716, 13718, 13720, 13722, 13724, 13726, 13728, 13730, 13732, 13734,
+ 13736, 13738, 13740, 13742, 13744, 13746, 13748, 13750, 13752, 13754,
+ 13756, 13758, 13760, 13762, 13764, 13766, 13768, 13770, 13772, 13774,
+ 13776, 13778, 13780, 13782, 13784, 13786, 13788, 13790, 13792, 13794,
+ 13796, 13798, 13800, 13802, 13804, 13806, 13808, 13810, 13812, 13814,
+ 13816, 13818, 13820, 13822, 13824, 13826, 13828, 13830, 13832, 13834,
+ 13836, 13838, 13840, 13842, 13844, 13846, 13848, 13850, 13852, 13854,
+ 13856, 13858, 13860, 13862, 13864, 13866, 13868, 13870, 13872, 13874,
+ 13876, 13878, 13880, 13882, 13884, 13886, 13888, 13890, 13892, 13894,
+ 13896, 13898, 13900, 13902, 13904, 13906, 13908, 13910, 13912, 13914,
+ 13916, 13918, 13920, 13922, 13924, 13926, 13928, 13930, 13932, 13934,
+ 13936, 13938, 13940, 13942, 13944, 13946, 13948, 13950, 13952, 13954,
+ 13956, 13958, 13960, 13962, 13964, 13966, 13968, 13970, 13972, 13974,
+ 13976, 13978, 13980, 13982, 13984, 13986, 13988, 13990, 13992, 13994,
+ 13996, 13998, 14000, 14002, 14004, 14006, 14008, 14010, 14012, 14014,
+ 14016, 14018, 14020, 14022, 14024, 14026, 14028, 14030, 14032, 14034,
+ 14036, 14038, 14040, 14042, 14044, 14046, 14048, 14050, 14052, 14054,
+ 14056, 14058, 14060, 14062, 14064, 14066, 14068, 14070, 14072, 14074,
+ 14076, 14078, 14080, 14082, 14084, 14086, 14088, 14090, 14092, 14094,
+ 14096, 14098, 14100, 14102, 14104, 14106, 14108, 14110, 14112, 14114,
+ 14116, 14118, 14120, 14122, 14124, 14126, 14128, 14130, 14132, 14134,
+ 14136, 14138, 14140, 14142, 14144, 14146, 14148, 14150, 14152, 14154,
+ 14156, 14158, 14160, 14162, 14164, 14166, 14168, 14170, 14172, 14174,
+ 14176, 14178, 14180, 14182, 14184, 14186, 14188, 14190, 14192, 14194,
+ 14196, 14198, 14200, 14202, 14204, 14206, 14208, 14210, 14212, 14214,
+ 14216, 14218, 14220, 14222, 14224, 14226, 14228, 14230, 14232, 14234,
+ 14236, 14238, 14240, 14242, 14244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
/* NFC pairs */
#define COMP_SHIFT 2
static unsigned short comp_index[] = {
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 11, 0, 12, 0, 0, 0, 0, 0, 0, 0, 13,
- 14, 15, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 18, 0, 19, 20, 21, 0, 0,
- 0, 0, 0, 0, 0, 22, 23, 24, 25, 26, 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 32, 0, 0, 33, 0, 0, 0, 0, 0, 0,
- 0, 0, 34, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, 43, 44,
- 45, 46, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 48, 0, 49, 0, 50, 51, 52, 0, 0, 0, 0, 0, 0, 0, 53, 0, 54, 0, 55, 56, 57,
- 0, 0, 0, 0, 0, 0, 0, 58, 59, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 62,
- 63, 0, 64, 65, 66, 0, 0, 0, 0, 0, 0, 0, 67, 68, 69, 70, 71, 72, 0, 0, 0,
- 0, 0, 0, 0, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77,
- 78, 79, 80, 81, 0, 0, 0, 0, 0, 0, 0, 82, 83, 84, 0, 85, 86, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 87, 88, 0, 89, 90, 91, 0, 0, 0, 0, 0, 0, 0, 92, 93, 94,
- 95, 96, 97, 98, 0, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 101, 102, 0, 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 106, 107, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 109, 110, 111, 0, 112, 0, 113, 0, 0, 0, 0, 0, 0, 0, 114, 115, 116,
- 117, 118, 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120, 0, 0, 121, 0, 122, 0, 0,
- 0, 0, 0, 0, 0, 123, 124, 125, 0, 0, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127,
- 128, 0, 129, 130, 131, 0, 0, 0, 0, 0, 0, 0, 132, 133, 134, 135, 136, 137,
- 138, 0, 0, 0, 0, 0, 0, 0, 0, 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 140, 141, 142, 0, 0, 143, 0, 0, 0, 0, 0, 0, 0, 0, 144, 145, 146, 0, 147,
- 148, 149, 0, 0, 0, 0, 0, 0, 0, 150, 151, 152, 153, 154, 155, 156, 0, 0,
- 0, 0, 0, 0, 0, 157, 0, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 159, 0, 160,
- 0, 161, 162, 163, 0, 0, 0, 0, 0, 0, 0, 164, 0, 165, 0, 166, 167, 168, 0,
- 0, 0, 0, 0, 0, 0, 169, 170, 0, 0, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172,
- 173, 174, 0, 175, 176, 177, 0, 0, 0, 0, 0, 0, 0, 178, 179, 180, 181, 182,
- 183, 0, 0, 0, 0, 0, 0, 0, 0, 184, 185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 186, 187, 188, 189, 190, 191, 192, 0, 0, 0, 0, 0, 0, 0, 193, 194, 195,
- 0, 196, 197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, 199, 0, 200, 201, 202, 0, 0,
- 0, 0, 0, 0, 0, 203, 204, 205, 206, 207, 208, 209, 0, 0, 0, 0, 0, 0, 0,
- 210, 0, 0, 0, 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 212, 213, 214, 0, 215, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 217,
- 218, 219, 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 221, 222, 223, 0, 224, 0,
- 225, 0, 0, 0, 0, 0, 0, 0, 226, 0, 0, 0, 0, 0, 0, 227, 0, 0, 0, 0, 0, 0,
- 228, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 232, 233,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 235, 0, 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 238, 0, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 240, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 242, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, 245,
- 246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, 248, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 251, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254, 0, 255, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 257, 0,
- 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, 260, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 264, 265, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 266, 0, 267, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 0, 269, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 270, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 271, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 275, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 276,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 277, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 279, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 281,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 283, 0, 284, 0, 285, 0, 0, 0, 0, 0, 0, 0, 0, 0, 286, 0, 287, 0,
- 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 289, 0, 290, 0, 291, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 292, 0, 293, 0, 294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 295, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 297, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 298, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 301, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 305, 306, 0, 307,
- 0, 0, 0, 308, 0, 0, 0, 0, 0, 0, 309, 0, 0, 310, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 311, 0, 0, 312, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, 314, 315, 0, 316,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 320, 321, 0, 322, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 323, 0, 0, 324, 0, 0, 0, 325, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 327, 0, 0,
- 0, 0, 0, 0, 328, 329, 0, 330, 0, 0, 0, 331, 0, 0, 0, 0, 0, 0, 332, 0, 0,
- 333, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 334, 0, 0, 335, 0, 0, 0, 336, 0, 0, 0,
- 0, 0, 0, 337, 338, 0, 339, 0, 0, 0, 340, 0, 0, 0, 0, 0, 0, 341, 0, 0,
- 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 343, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 344, 345, 0, 346, 0, 0, 0, 347, 0, 0, 0, 0, 0, 0, 348, 0, 0, 349,
- 0, 0, 0, 350, 0, 0, 0, 0, 0, 0, 351, 0, 0, 0, 0, 0, 0, 352, 0, 0, 0, 0,
- 0, 0, 353, 0, 0, 0, 0, 0, 0, 354, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 355, 0, 0, 0, 0, 0, 0, 356, 357, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 358, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 359, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 361, 362, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 364, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 365, 366, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 367, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 368, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 369, 370, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 372, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 373, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 374,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 375, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 376, 377, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 378, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 380,
- 381, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 382, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 384, 385, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 386, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 387, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 388, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 390,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 392, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 393, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 394, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 395, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 396, 397, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 399,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 401, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 402, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 403, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 405, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 406, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 407, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 408, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 409, 410, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 411, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 412, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 413,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 414, 415, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 417, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 418, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 419, 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 421, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 422, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 423, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 424, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 425, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 427, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 428, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 430, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 431, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 433, 0,
- 0, 434, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 435, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 436, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 437, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 438, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 440, 441, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 442, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 445, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 446, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 447, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 448, 0, 0, 0, 0, 0, 0, 449, 0, 0, 0, 0, 0, 0, 450,
- 0, 0, 0, 0, 0, 0, 451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 452, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 455, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 456, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 457, 0, 0,
- 0, 0, 0, 0, 458, 0, 0, 0, 0, 0, 0, 459, 0, 0, 0, 0, 0, 0, 460, 0, 0, 0,
- 0, 0, 0, 461, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 462, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 464,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 465, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 466, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 467, 0, 0, 0, 0, 0,
- 0, 468, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 469, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 470, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 471, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 472, 0, 0, 0, 0, 0, 0, 473, 0, 0, 0, 0,
- 0, 0, 474, 0, 0, 0, 0, 0, 0, 475, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 476, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 477, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 478, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 479, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 481, 0, 0, 0, 0, 0, 0, 482, 0, 0, 0, 0, 0, 0, 483, 0, 0, 0, 0, 0, 0, 484,
- 0, 0, 0, 0, 0, 0, 485, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 486, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 489, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 491, 0, 0,
- 0, 0, 0, 0, 492, 0, 0, 0, 0, 0, 0, 493, 0, 0, 0, 0, 0, 0, 494, 0, 0, 0,
- 0, 0, 0, 495, 0, 0, 0, 0, 0, 0, 496, 0, 0, 0, 0, 0, 0, 497, 0, 0, 0, 0,
- 0, 0, 498, 0, 0, 0, 0, 0, 0, 499, 0, 0, 0, 0, 0, 0, 500, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 501, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 502,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 503, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 504, 0, 0, 0, 0, 0, 0, 505, 0, 0, 0, 0, 0, 0, 506, 0, 0, 0, 0,
- 0, 0, 507, 0, 0, 0, 0, 0, 0, 508, 0, 0, 0, 0, 0, 0, 509, 0, 0, 0, 0, 0,
- 0, 510, 0, 0, 0, 0, 0, 0, 511, 0, 0, 0, 0, 0, 0, 512, 0, 0, 0, 0, 0, 0,
- 513, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 514, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 516, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 517, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 518, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 519, 0, 0, 0, 0, 0, 0, 520,
- 0, 0, 0, 0, 0, 0, 521, 0, 0, 0, 0, 0, 0, 522, 0, 0, 0, 0, 0, 0, 523, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 525, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 526, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 527, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 528, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 530, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 531, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 532, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 533, 0,
- 0, 0, 0, 0, 0, 534, 0, 0, 0, 0, 0, 0, 535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 537, 0, 0, 0, 0, 0,
- 0, 538, 0, 0, 0, 0, 0, 0, 539, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 541, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 542, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 543, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 544, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 545,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 548, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 549, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 550,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 551, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 552, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 553, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 555,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 556, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 558, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 559, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 560,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 563, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 564, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 565,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 566, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 567, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 568, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 570,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 572, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 573, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 575,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 578, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 579, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 580,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 581, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 582, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 584, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 586, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 588, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 589, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 590, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 591, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 592, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 593, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 594, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 595, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 596, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 597, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 599, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 601, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 602, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 603, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 604, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 605, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 606, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 607, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 608, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 609, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 610, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 611, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 612, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 613, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 614, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 615, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 616, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 617, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 618, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 619, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 620, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 621, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 623, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 629, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 630, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 631, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 632, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 633,
+ 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5,
+ 6, 7, 8, 9, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 12, 0, 13, 0, 0,
+ 0, 0, 0, 0, 0, 0, 14, 15, 16, 17, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 19, 20, 0, 21, 22, 23, 0, 0, 0, 0, 0, 0, 0, 0, 24, 25, 26, 27, 28, 29,
+ 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 32, 33, 34, 35, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 38, 39, 0,
+ 40, 41, 42, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 0, 48, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0,
+ 51, 52, 53, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 56, 0, 57, 58, 59, 0,
+ 0, 0, 0, 0, 0, 0, 0, 60, 0, 61, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 63, 64, 65, 0, 66, 67, 68, 0, 0, 0, 0, 0, 0, 0, 0, 69, 70, 71, 72, 73, 0,
+ 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 77, 0, 78, 79, 80, 81, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 83, 84, 85,
+ 0, 86, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 89, 90, 91, 92, 93, 0, 0,
+ 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 101, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 104, 0, 0, 105, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 107, 108, 109, 0, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 111, 112, 113,
+ 114, 115, 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 117, 118, 119, 120, 121,
+ 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, 0, 124, 0, 0, 125, 0, 0, 0, 0,
+ 0, 0, 0, 0, 126, 127, 128, 0, 0, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 130, 131, 132, 133, 134, 135, 0, 0, 0, 0, 0, 0, 0, 0, 136, 137, 138, 139,
+ 140, 141, 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 144, 145, 146, 0, 0, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 148, 149, 150, 151, 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, 0, 155, 156, 157,
+ 158, 159, 160, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 163, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 164, 0, 165, 0, 166, 167, 168, 0, 0, 0, 0, 0, 0,
+ 0, 0, 169, 0, 0, 170, 171, 172, 173, 174, 0, 0, 0, 0, 0, 0, 0, 0, 175,
+ 176, 0, 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 179, 180, 181, 182,
+ 183, 184, 185, 0, 0, 0, 0, 0, 0, 0, 0, 186, 187, 188, 189, 190, 191, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 192, 0, 193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 194, 195, 196, 197, 198, 199, 200, 0, 0, 0, 0, 0, 0, 0, 0, 201, 202,
+ 203, 204, 205, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 207, 208, 0, 209,
+ 210, 211, 0, 0, 0, 0, 0, 0, 0, 0, 212, 213, 214, 215, 216, 217, 218, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 219, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 221, 222, 223, 0, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 226, 227, 228, 0, 229, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 230, 231, 232, 0, 233, 0, 234, 0, 0, 0, 0, 0, 0, 0, 0, 235,
+ 0, 0, 0, 0, 0, 0, 236, 0, 0, 0, 0, 0, 0, 0, 0, 237, 0, 238, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 241, 242, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 249, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 251, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 255, 256, 0, 257, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 0,
+ 259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 260, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262,
+ 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 265, 266, 267, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 269, 270, 271, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 275, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 276, 277, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 279, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 281, 282,
+ 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 284, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 285, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 286,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 287, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 290, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 292,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 295, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 297, 298, 299, 0, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 301, 0, 302, 0, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 305, 306, 0, 307,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 308, 0, 309, 0, 310, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 311, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 315, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 318, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 321, 322, 0, 0,
+ 323, 0, 0, 324, 0, 0, 0, 0, 0, 0, 0, 0, 325, 0, 0, 326, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 327, 0, 0, 0, 328, 0, 0, 329, 0, 0, 0, 0, 0, 0, 0, 0, 330,
+ 331, 0, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 333, 0, 0, 0, 334, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 336, 337, 338, 0, 339, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 340, 0, 0, 341,
+ 0, 0, 0, 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 343, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 344, 0, 0, 0, 0, 0, 0, 0, 345, 346, 0,
+ 0, 347, 0, 0, 348, 0, 0, 0, 0, 0, 0, 0, 0, 349, 0, 0, 350, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 351, 0, 0, 0, 352, 0, 0, 353, 0, 0, 0, 0, 0, 0, 0, 0,
+ 354, 355, 0, 356, 0, 0, 0, 357, 0, 0, 0, 0, 0, 0, 0, 358, 0, 0, 0, 359,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 360, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 361, 362, 363, 0, 364, 0, 0, 365, 0, 0, 0, 0, 0, 0, 0, 0, 366, 0,
+ 0, 367, 0, 0, 0, 368, 0, 0, 0, 0, 0, 0, 0, 369, 0, 0, 0, 0, 0, 0, 370, 0,
+ 0, 0, 0, 0, 0, 0, 0, 371, 0, 0, 0, 0, 0, 0, 372, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 373, 0, 0, 0, 0, 0, 0, 0, 0, 374, 375, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 376, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 377, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 378, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 379, 380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 381, 382, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 383, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 384, 385, 386, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 387, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 388, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 389, 390, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 392, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 393, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 394, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 395, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 396, 397, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 398, 399, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 400, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 401, 402, 403, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 406, 407, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 408, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 409, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 410, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 411, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 412, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 414, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 416, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 418, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 419, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 420, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 421, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 422, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 424, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 425, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 427, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 428,
+ 429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 430, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 431, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 433, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 434, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 435, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 436, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 437, 438, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 440, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 441, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 445, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 446, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 447, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 449, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 450, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 452, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 453, 0, 0, 0, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 455, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 456, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 457, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 458, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 459, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 461, 462, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 463, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 464, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 465, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 466, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 467, 0, 0, 0, 0, 0, 0, 468, 0, 0, 0,
+ 0, 0, 0, 0, 0, 469, 0, 0, 0, 0, 0, 0, 470, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 471, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 472, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 473, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 475, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 476, 0, 0, 0, 0, 0, 0, 0, 477, 0, 0,
+ 0, 0, 0, 0, 478, 0, 0, 0, 0, 0, 0, 0, 0, 479, 0, 0, 0, 0, 0, 0, 480, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 481, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 483, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 484, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 485, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 486, 0, 0,
+ 0, 0, 0, 0, 0, 487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 488, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 491, 0, 0,
+ 0, 0, 0, 0, 492, 0, 0, 0, 0, 0, 0, 0, 0, 493, 0, 0, 0, 0, 0, 0, 494, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 495, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 497, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 500, 0, 0,
+ 0, 0, 0, 0, 0, 501, 0, 0, 0, 0, 0, 0, 502, 0, 0, 0, 0, 0, 0, 0, 0, 503,
+ 0, 0, 0, 0, 0, 0, 504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 505, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 506, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 507, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 508, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 509, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 510, 0, 0, 0, 0, 0, 0, 0, 511, 0, 0, 0, 0, 0, 0, 512, 0,
+ 0, 0, 0, 0, 0, 0, 0, 513, 0, 0, 0, 0, 0, 0, 514, 0, 0, 0, 0, 0, 0, 0,
+ 515, 0, 0, 0, 0, 0, 0, 516, 0, 0, 0, 0, 0, 0, 0, 0, 517, 0, 0, 0, 0, 0,
+ 0, 518, 0, 0, 0, 0, 0, 0, 0, 519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 521, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 522, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 523, 0, 0, 0, 0, 0, 0, 524, 0, 0, 0, 0, 0, 0, 0, 0, 525, 0, 0, 0, 0,
+ 0, 0, 526, 0, 0, 0, 0, 0, 0, 0, 527, 0, 0, 0, 0, 0, 0, 528, 0, 0, 0, 0,
+ 0, 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, 530, 0, 0, 0, 0, 0, 0, 0, 531, 0, 0,
+ 0, 0, 0, 0, 532, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 533, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 536, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 537, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 538, 0, 0, 0, 0, 0, 0, 0, 0, 539, 0, 0, 0, 0, 0, 0, 540, 0, 0,
+ 0, 0, 0, 0, 0, 541, 0, 0, 0, 0, 0, 0, 542, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 543, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 544, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 545, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 547, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 548, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 549, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 550, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 551, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 552, 0, 0, 0, 0, 0, 0, 0, 0, 553, 0, 0, 0, 0, 0, 0, 554, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 555, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 556, 0, 0, 0, 0, 0, 0, 0, 557, 0, 0, 0, 0, 0, 0, 558, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 559, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 561, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 563, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 564, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 565, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 566, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 567, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 568, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 570, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 572, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 573, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 575, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 576, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 579, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 580, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 582, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 585, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 588, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 589, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 590, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 591, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 592, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 593, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 594, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 595, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 596, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 597, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 600,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 601, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 602, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 603,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 604, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 605, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 606, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 607, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 608, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 609, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 610, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 611, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 612, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 613, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 614, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 615, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 616, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 617, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 618, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 619, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 620, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 621, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 626, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 629, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 630, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 632, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 633, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 634, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 635, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 636, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 637, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 638, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 639, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 640, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 641, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 642, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 643, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 644, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 645, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 646, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 648, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 649, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 650, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 651, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 652, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 653, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 654, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 656,
};
static unsigned int comp_data[] = {
- 0, 0, 0, 0, 0, 0, 0, 8814, 0, 0, 0, 8800, 0, 0, 0, 8815, 192, 193, 194,
- 195, 256, 258, 550, 196, 7842, 197, 0, 461, 512, 514, 0, 0, 0, 7840, 0,
- 7680, 0, 0, 260, 0, 0, 0, 7682, 0, 0, 7684, 0, 0, 0, 0, 7686, 0, 0, 262,
- 264, 0, 0, 0, 266, 0, 0, 0, 0, 268, 0, 199, 0, 0, 0, 0, 7690, 0, 0, 0, 0,
- 270, 0, 7692, 0, 0, 0, 7696, 0, 7698, 0, 0, 7694, 0, 200, 201, 202, 7868,
- 274, 276, 278, 203, 7866, 0, 0, 282, 516, 518, 0, 0, 0, 7864, 0, 0, 0,
- 552, 280, 7704, 0, 7706, 0, 0, 0, 0, 7710, 0, 0, 500, 284, 0, 7712, 286,
- 288, 0, 0, 0, 0, 486, 0, 290, 0, 0, 0, 0, 292, 0, 0, 0, 7714, 7718, 0, 0,
- 0, 542, 0, 7716, 0, 0, 0, 7720, 0, 0, 7722, 0, 0, 0, 204, 205, 206, 296,
- 298, 300, 304, 207, 7880, 0, 0, 463, 520, 522, 0, 0, 0, 7882, 0, 0, 0, 0,
- 302, 0, 0, 7724, 0, 0, 0, 0, 308, 0, 0, 7728, 0, 0, 0, 0, 0, 488, 0,
- 7730, 0, 0, 0, 310, 0, 0, 0, 0, 7732, 0, 0, 313, 0, 0, 0, 0, 0, 317, 0,
- 7734, 0, 0, 0, 315, 0, 7740, 0, 0, 7738, 0, 0, 7742, 0, 0, 0, 0, 7744, 0,
- 0, 7746, 0, 0, 504, 323, 0, 209, 0, 0, 7748, 0, 0, 0, 0, 327, 0, 7750, 0,
- 0, 0, 325, 0, 7754, 0, 0, 7752, 0, 210, 211, 212, 213, 332, 334, 558,
- 214, 7886, 0, 336, 465, 524, 526, 0, 0, 416, 7884, 0, 0, 0, 0, 490, 0, 0,
- 7764, 0, 0, 0, 0, 7766, 0, 0, 340, 0, 0, 0, 0, 7768, 0, 0, 0, 0, 344,
- 528, 530, 0, 0, 0, 7770, 0, 0, 0, 342, 0, 0, 0, 0, 7774, 0, 0, 346, 348,
- 0, 0, 0, 7776, 0, 0, 0, 0, 352, 0, 7778, 0, 0, 536, 350, 0, 0, 0, 0,
- 7786, 0, 0, 0, 0, 356, 0, 7788, 0, 0, 538, 354, 0, 7792, 0, 0, 7790, 0,
- 217, 218, 219, 360, 362, 364, 0, 220, 7910, 366, 368, 467, 532, 534, 0,
- 0, 431, 7908, 7794, 0, 0, 0, 370, 7798, 0, 7796, 0, 0, 0, 0, 0, 7804, 0,
- 7806, 0, 0, 7808, 7810, 372, 0, 0, 0, 7814, 7812, 0, 7816, 0, 0, 0, 0,
- 7818, 7820, 7922, 221, 374, 7928, 562, 0, 7822, 376, 7926, 0, 0, 0, 0,
- 7924, 0, 0, 0, 377, 7824, 0, 0, 0, 379, 0, 0, 0, 0, 381, 0, 7826, 0, 0,
- 0, 0, 7828, 0, 224, 225, 226, 227, 257, 259, 551, 228, 7843, 229, 0, 462,
- 513, 515, 0, 0, 0, 7841, 0, 7681, 0, 0, 261, 0, 0, 0, 7683, 0, 0, 7685,
- 0, 0, 0, 0, 7687, 0, 0, 263, 265, 0, 0, 0, 267, 0, 0, 0, 0, 269, 0, 231,
- 0, 0, 0, 0, 7691, 0, 0, 0, 0, 271, 0, 7693, 0, 0, 0, 7697, 0, 7699, 0, 0,
- 7695, 0, 232, 233, 234, 7869, 275, 277, 279, 235, 7867, 0, 0, 283, 517,
- 519, 0, 0, 0, 7865, 0, 0, 0, 553, 281, 7705, 0, 7707, 0, 0, 0, 0, 7711,
- 0, 0, 501, 285, 0, 7713, 287, 289, 0, 0, 0, 0, 487, 0, 291, 0, 0, 0, 0,
- 293, 0, 0, 0, 7715, 7719, 0, 0, 0, 543, 0, 7717, 0, 0, 0, 7721, 0, 0,
- 7723, 0, 7830, 0, 236, 237, 238, 297, 299, 301, 0, 239, 7881, 0, 0, 464,
- 521, 523, 0, 0, 0, 7883, 0, 0, 0, 0, 303, 0, 0, 7725, 0, 0, 0, 0, 309, 0,
- 0, 0, 0, 496, 0, 7729, 0, 0, 0, 0, 0, 489, 0, 7731, 0, 0, 0, 311, 0, 0,
- 0, 0, 7733, 0, 0, 314, 0, 0, 0, 0, 0, 318, 0, 7735, 0, 0, 0, 316, 0,
- 7741, 0, 0, 7739, 0, 0, 7743, 0, 0, 0, 0, 7745, 0, 0, 7747, 0, 0, 505,
- 324, 0, 241, 0, 0, 7749, 0, 0, 0, 0, 328, 0, 7751, 0, 0, 0, 326, 0, 7755,
- 0, 0, 7753, 0, 242, 243, 244, 245, 333, 335, 559, 246, 7887, 0, 337, 466,
- 525, 527, 0, 0, 417, 7885, 0, 0, 0, 0, 491, 0, 0, 7765, 0, 0, 0, 0, 7767,
- 0, 0, 341, 0, 0, 0, 0, 7769, 0, 0, 0, 0, 345, 529, 531, 0, 0, 0, 7771, 0,
- 0, 0, 343, 0, 0, 0, 0, 7775, 0, 0, 347, 349, 0, 0, 0, 7777, 0, 0, 0, 0,
- 353, 0, 7779, 0, 0, 537, 351, 0, 0, 0, 0, 7787, 7831, 0, 0, 0, 357, 0,
- 7789, 0, 0, 539, 355, 0, 7793, 0, 0, 7791, 0, 249, 250, 251, 361, 363,
- 365, 0, 252, 7911, 367, 369, 468, 533, 535, 0, 0, 432, 7909, 7795, 0, 0,
- 0, 371, 7799, 0, 7797, 0, 0, 0, 0, 0, 7805, 0, 7807, 0, 0, 7809, 7811,
- 373, 0, 0, 0, 7815, 7813, 0, 7832, 0, 0, 0, 7817, 0, 0, 0, 0, 7819, 7821,
- 7923, 253, 375, 7929, 563, 0, 7823, 255, 7927, 7833, 0, 0, 0, 7925, 0, 0,
- 0, 378, 7825, 0, 0, 0, 380, 0, 0, 0, 0, 382, 0, 7827, 0, 0, 0, 0, 7829,
- 0, 8173, 901, 0, 0, 8129, 0, 0, 0, 7846, 7844, 0, 7850, 7848, 0, 0, 0,
- 478, 0, 0, 0, 0, 506, 0, 0, 0, 508, 0, 0, 482, 0, 0, 0, 0, 7688, 0, 0,
- 7872, 7870, 0, 7876, 7874, 0, 0, 0, 0, 7726, 0, 0, 7890, 7888, 0, 7894,
- 7892, 0, 0, 0, 0, 7756, 0, 0, 556, 0, 0, 7758, 554, 0, 0, 0, 0, 510, 0,
- 0, 475, 471, 0, 0, 469, 0, 0, 0, 0, 0, 0, 473, 7847, 7845, 0, 7851, 7849,
- 0, 0, 0, 479, 0, 0, 0, 0, 507, 0, 0, 0, 509, 0, 0, 483, 0, 0, 0, 0, 7689,
- 0, 0, 7873, 7871, 0, 7877, 7875, 0, 0, 0, 0, 7727, 0, 0, 7891, 7889, 0,
- 7895, 7893, 0, 0, 0, 0, 7757, 0, 0, 557, 0, 0, 7759, 555, 0, 0, 0, 0,
- 511, 0, 0, 476, 472, 0, 0, 470, 0, 0, 0, 0, 0, 0, 474, 7856, 7854, 0,
- 7860, 7858, 0, 0, 0, 7857, 7855, 0, 7861, 7859, 0, 0, 0, 7700, 7702, 0,
- 0, 7701, 7703, 0, 0, 7760, 7762, 0, 0, 7761, 7763, 0, 0, 0, 0, 7780, 0,
- 0, 0, 7781, 0, 0, 0, 7782, 0, 0, 0, 7783, 0, 0, 7800, 0, 0, 0, 7801, 0,
- 0, 0, 0, 0, 7802, 0, 0, 0, 7803, 0, 0, 7835, 0, 7900, 7898, 0, 7904,
- 7902, 0, 0, 0, 0, 7906, 0, 0, 7901, 7899, 0, 7905, 7903, 0, 0, 0, 0,
- 7907, 0, 0, 7914, 7912, 0, 7918, 7916, 0, 0, 0, 0, 7920, 0, 0, 7915,
- 7913, 0, 7919, 7917, 0, 0, 0, 0, 7921, 0, 0, 0, 0, 0, 494, 492, 0, 0, 0,
- 493, 0, 0, 0, 480, 0, 0, 0, 481, 0, 0, 0, 0, 7708, 0, 0, 0, 7709, 0, 0,
- 560, 0, 0, 0, 561, 0, 0, 0, 0, 0, 0, 495, 8122, 902, 0, 0, 8121, 8120, 0,
- 0, 0, 0, 7944, 7945, 0, 8124, 0, 0, 8136, 904, 0, 0, 0, 0, 7960, 7961,
- 8138, 905, 0, 0, 0, 0, 7976, 7977, 0, 8140, 0, 0, 8154, 906, 0, 0, 8153,
- 8152, 0, 938, 0, 0, 7992, 7993, 8184, 908, 0, 0, 0, 0, 8008, 8009, 0, 0,
- 0, 8172, 8170, 910, 0, 0, 8169, 8168, 0, 939, 0, 0, 0, 8025, 8186, 911,
- 0, 0, 0, 0, 8040, 8041, 0, 8188, 0, 0, 0, 8116, 0, 0, 0, 8132, 0, 0,
- 8048, 940, 0, 0, 8113, 8112, 0, 0, 0, 0, 7936, 7937, 8118, 8115, 0, 0,
- 8050, 941, 0, 0, 0, 0, 7952, 7953, 8052, 942, 0, 0, 0, 0, 7968, 7969,
- 8134, 8131, 0, 0, 8054, 943, 0, 0, 8145, 8144, 0, 970, 0, 0, 7984, 7985,
- 8150, 0, 0, 0, 8056, 972, 0, 0, 0, 0, 8000, 8001, 0, 0, 8164, 8165, 8058,
- 973, 0, 0, 8161, 8160, 0, 971, 0, 0, 8016, 8017, 8166, 0, 0, 0, 8060,
- 974, 0, 0, 0, 0, 8032, 8033, 8182, 8179, 0, 0, 8146, 912, 0, 0, 8151, 0,
- 0, 0, 8162, 944, 0, 0, 8167, 0, 0, 0, 0, 8180, 0, 0, 0, 979, 0, 0, 0, 0,
- 0, 980, 0, 0, 0, 1031, 0, 1232, 0, 1234, 0, 1027, 0, 0, 1024, 0, 0, 0, 0,
- 1238, 0, 1025, 0, 1217, 0, 1244, 0, 0, 0, 1246, 1037, 0, 0, 0, 1250,
- 1049, 0, 1252, 0, 1036, 0, 0, 0, 0, 0, 1254, 1262, 1038, 0, 1264, 0, 0,
- 1266, 0, 0, 0, 0, 1268, 0, 0, 0, 1272, 0, 0, 0, 1260, 0, 1233, 0, 1235,
- 0, 1107, 0, 0, 1104, 0, 0, 0, 0, 1239, 0, 1105, 0, 1218, 0, 1245, 0, 0,
- 0, 1247, 1117, 0, 0, 0, 1251, 1081, 0, 1253, 0, 1116, 0, 0, 0, 0, 0,
- 1255, 1263, 1118, 0, 1265, 0, 0, 1267, 0, 0, 0, 0, 1269, 0, 0, 0, 1273,
- 0, 0, 0, 1261, 0, 0, 0, 1111, 1142, 0, 0, 0, 1143, 0, 0, 0, 0, 0, 0,
- 1242, 0, 0, 0, 1243, 0, 0, 0, 1258, 0, 0, 0, 1259, 0, 0, 1570, 1571,
- 1573, 0, 0, 0, 0, 0, 0, 1572, 0, 0, 0, 1574, 0, 0, 0, 1730, 0, 0, 0,
- 1747, 0, 0, 0, 1728, 0, 2345, 0, 0, 0, 2353, 0, 0, 0, 2356, 0, 0, 0, 0,
- 2507, 2508, 2891, 2888, 2892, 0, 2964, 0, 0, 0, 0, 0, 0, 3018, 3020, 0,
- 0, 0, 0, 0, 0, 3019, 0, 3144, 0, 0, 0, 0, 0, 3264, 0, 0, 3274, 3271,
- 3272, 0, 0, 0, 0, 0, 0, 3275, 0, 3402, 3404, 0, 0, 3403, 0, 0, 0, 0, 0,
- 3546, 3548, 3550, 0, 0, 0, 0, 0, 3549, 0, 0, 4134, 0, 0, 0, 0, 6918, 0,
- 0, 0, 6920, 0, 0, 0, 6922, 0, 0, 0, 6924, 0, 0, 0, 6926, 0, 0, 0, 6930,
- 0, 0, 0, 6971, 0, 0, 0, 6973, 0, 0, 0, 6976, 0, 0, 0, 6977, 0, 0, 0,
- 6979, 7736, 0, 0, 0, 7737, 0, 0, 0, 7772, 0, 0, 0, 7773, 0, 0, 0, 0, 0,
- 7784, 0, 0, 0, 7785, 0, 0, 0, 7852, 0, 0, 7862, 0, 0, 0, 0, 7853, 0, 0,
- 7863, 0, 0, 0, 0, 7878, 0, 0, 0, 7879, 0, 0, 0, 7896, 0, 0, 0, 7897, 0,
- 7938, 7940, 0, 0, 7942, 8064, 0, 0, 7939, 7941, 0, 0, 7943, 8065, 0, 0,
- 0, 8066, 0, 0, 0, 8067, 0, 0, 0, 8068, 0, 0, 0, 8069, 0, 0, 0, 8070, 0,
- 0, 0, 8071, 0, 0, 7946, 7948, 0, 0, 7950, 8072, 0, 0, 7947, 7949, 0, 0,
- 7951, 8073, 0, 0, 0, 8074, 0, 0, 0, 8075, 0, 0, 0, 8076, 0, 0, 0, 8077,
- 0, 0, 0, 8078, 0, 0, 0, 8079, 0, 0, 7954, 7956, 0, 0, 7955, 7957, 0, 0,
- 7962, 7964, 0, 0, 7963, 7965, 0, 0, 7970, 7972, 0, 0, 7974, 8080, 0, 0,
- 7971, 7973, 0, 0, 7975, 8081, 0, 0, 0, 8082, 0, 0, 0, 8083, 0, 0, 0,
- 8084, 0, 0, 0, 8085, 0, 0, 0, 8086, 0, 0, 0, 8087, 0, 0, 7978, 7980, 0,
- 0, 7982, 8088, 0, 0, 7979, 7981, 0, 0, 7983, 8089, 0, 0, 0, 8090, 0, 0,
- 0, 8091, 0, 0, 0, 8092, 0, 0, 0, 8093, 0, 0, 0, 8094, 0, 0, 0, 8095, 0,
- 0, 7986, 7988, 0, 0, 7990, 0, 0, 0, 7987, 7989, 0, 0, 7991, 0, 0, 0,
- 7994, 7996, 0, 0, 7998, 0, 0, 0, 7995, 7997, 0, 0, 7999, 0, 0, 0, 8002,
- 8004, 0, 0, 8003, 8005, 0, 0, 8010, 8012, 0, 0, 8011, 8013, 0, 0, 8018,
- 8020, 0, 0, 8022, 0, 0, 0, 8019, 8021, 0, 0, 8023, 0, 0, 0, 8027, 8029,
- 0, 0, 8031, 0, 0, 0, 8034, 8036, 0, 0, 8038, 8096, 0, 0, 8035, 8037, 0,
- 0, 8039, 8097, 0, 0, 0, 8098, 0, 0, 0, 8099, 0, 0, 0, 8100, 0, 0, 0,
- 8101, 0, 0, 0, 8102, 0, 0, 0, 8103, 0, 0, 8042, 8044, 0, 0, 8046, 8104,
- 0, 0, 8043, 8045, 0, 0, 8047, 8105, 0, 0, 0, 8106, 0, 0, 0, 8107, 0, 0,
- 0, 8108, 0, 0, 0, 8109, 0, 0, 0, 8110, 0, 0, 0, 8111, 0, 0, 0, 8114, 0,
- 0, 0, 8130, 0, 0, 0, 8178, 0, 0, 0, 8119, 0, 0, 8141, 8142, 0, 0, 8143,
- 0, 0, 0, 0, 8135, 0, 0, 0, 8183, 0, 0, 8157, 8158, 0, 0, 8159, 0, 0, 0,
- 0, 0, 0, 8602, 0, 0, 0, 8603, 0, 0, 0, 8622, 0, 0, 0, 8653, 0, 0, 0,
- 8655, 0, 0, 0, 8654, 0, 0, 0, 8708, 0, 0, 0, 8713, 0, 0, 0, 8716, 0, 0,
- 0, 8740, 0, 0, 0, 8742, 0, 0, 0, 8769, 0, 0, 0, 8772, 0, 0, 0, 8775, 0,
- 0, 0, 8777, 0, 0, 0, 8813, 0, 0, 0, 8802, 0, 0, 0, 8816, 0, 0, 0, 8817,
- 0, 0, 0, 8820, 0, 0, 0, 8821, 0, 0, 0, 8824, 0, 0, 0, 8825, 0, 0, 0,
- 8832, 0, 0, 0, 8833, 0, 0, 0, 8928, 0, 0, 0, 8929, 0, 0, 0, 8836, 0, 0,
- 0, 8837, 0, 0, 0, 8840, 0, 0, 0, 8841, 0, 0, 0, 8930, 0, 0, 0, 8931, 0,
- 0, 0, 8876, 0, 0, 0, 8877, 0, 0, 0, 8878, 0, 0, 0, 8879, 0, 0, 0, 8938,
- 0, 0, 0, 8939, 0, 0, 0, 8940, 0, 0, 0, 8941, 12436, 0, 0, 0, 12364, 0, 0,
- 0, 12366, 0, 0, 0, 12368, 0, 0, 0, 12370, 0, 0, 0, 12372, 0, 0, 0, 12374,
- 0, 0, 0, 12376, 0, 0, 0, 12378, 0, 0, 0, 12380, 0, 0, 0, 12382, 0, 0, 0,
- 12384, 0, 0, 0, 12386, 0, 0, 0, 12389, 0, 0, 0, 12391, 0, 0, 0, 12393, 0,
- 0, 0, 12400, 12401, 0, 0, 12403, 12404, 0, 0, 12406, 12407, 0, 0, 12409,
- 12410, 0, 0, 12412, 12413, 0, 0, 12446, 0, 0, 0, 12532, 0, 0, 0, 12460,
- 0, 0, 0, 12462, 0, 0, 0, 12464, 0, 0, 0, 12466, 0, 0, 0, 12468, 0, 0, 0,
- 12470, 0, 0, 0, 12472, 0, 0, 0, 12474, 0, 0, 0, 12476, 0, 0, 0, 12478, 0,
- 0, 0, 12480, 0, 0, 0, 12482, 0, 0, 0, 12485, 0, 0, 0, 12487, 0, 0, 0,
- 12489, 0, 0, 0, 12496, 12497, 0, 0, 12499, 12500, 0, 0, 12502, 12503, 0,
- 0, 12505, 12506, 0, 0, 12508, 12509, 0, 0, 12535, 0, 0, 0, 12536, 0, 0,
- 0, 12537, 0, 0, 0, 12538, 0, 0, 0, 12542, 0, 0, 0, 0, 0, 69786, 0, 0, 0,
- 69788, 0, 0, 0, 69803, 0, 0, 0, 0, 69934, 0, 0, 0, 69935,
+ 0, 0, 0, 0, 0, 0, 0, 8814, 0, 8800, 0, 0, 0, 0, 0, 8815, 0, 0, 192, 193,
+ 194, 195, 256, 258, 550, 196, 7842, 197, 0, 461, 512, 514, 0, 0, 0, 7840,
+ 0, 7680, 0, 0, 260, 0, 0, 0, 0, 0, 7682, 0, 0, 7684, 0, 0, 0, 0, 7686, 0,
+ 0, 0, 0, 262, 264, 0, 0, 0, 266, 0, 0, 0, 0, 268, 0, 0, 0, 0, 0, 199, 0,
+ 0, 7690, 0, 0, 0, 0, 270, 0, 7692, 0, 0, 0, 7696, 0, 7698, 0, 0, 7694, 0,
+ 0, 0, 200, 201, 202, 7868, 274, 276, 278, 203, 7866, 0, 0, 282, 516, 518,
+ 0, 0, 0, 7864, 0, 0, 0, 552, 280, 7704, 0, 7706, 0, 0, 7710, 0, 0, 0, 0,
+ 500, 284, 0, 7712, 286, 288, 0, 0, 0, 0, 486, 0, 0, 0, 0, 0, 290, 0, 0,
+ 292, 0, 0, 0, 7714, 7718, 0, 0, 0, 542, 0, 7716, 0, 0, 0, 7720, 0, 0,
+ 7722, 0, 0, 0, 0, 0, 204, 205, 206, 296, 298, 300, 304, 207, 7880, 0, 0,
+ 463, 520, 522, 0, 0, 0, 7882, 302, 0, 0, 7724, 0, 0, 308, 0, 0, 0, 0,
+ 7728, 0, 488, 0, 0, 0, 0, 0, 7730, 0, 0, 0, 310, 7732, 0, 0, 0, 0, 313,
+ 0, 0, 0, 0, 0, 317, 0, 7734, 0, 0, 0, 315, 0, 7740, 0, 0, 7738, 0, 0, 0,
+ 0, 7742, 7744, 0, 0, 0, 0, 0, 0, 7746, 504, 323, 0, 209, 0, 0, 7748, 0,
+ 0, 0, 0, 327, 0, 7750, 0, 0, 0, 325, 0, 7754, 0, 0, 7752, 0, 0, 0, 210,
+ 211, 212, 213, 332, 334, 558, 214, 7886, 0, 336, 465, 524, 526, 0, 0,
+ 416, 7884, 490, 0, 0, 0, 0, 7764, 0, 0, 0, 0, 7766, 0, 0, 0, 0, 340,
+ 7768, 0, 0, 0, 0, 344, 528, 530, 0, 0, 0, 7770, 0, 0, 0, 342, 7774, 0, 0,
+ 0, 0, 346, 348, 0, 0, 0, 7776, 0, 0, 0, 0, 352, 0, 7778, 0, 0, 536, 350,
+ 0, 0, 7786, 0, 0, 0, 0, 356, 0, 0, 0, 0, 0, 7788, 0, 0, 538, 354, 0,
+ 7792, 0, 0, 7790, 0, 0, 0, 217, 218, 219, 360, 362, 364, 0, 220, 7910,
+ 366, 368, 467, 532, 534, 0, 0, 431, 7908, 7794, 0, 0, 0, 370, 7798, 0,
+ 7796, 0, 0, 0, 7804, 0, 0, 0, 0, 0, 7806, 7808, 7810, 372, 0, 0, 0, 7814,
+ 7812, 0, 7816, 0, 0, 7818, 7820, 0, 0, 7922, 221, 374, 7928, 562, 0,
+ 7822, 376, 7926, 0, 0, 0, 0, 7924, 0, 0, 0, 0, 0, 377, 7824, 0, 0, 0,
+ 379, 0, 0, 0, 0, 381, 0, 0, 0, 0, 0, 7826, 7828, 0, 0, 0, 224, 225, 226,
+ 227, 257, 259, 551, 228, 7843, 229, 0, 462, 513, 515, 0, 0, 0, 7841, 0,
+ 7681, 0, 0, 261, 0, 7683, 0, 0, 0, 0, 0, 0, 7685, 7687, 0, 0, 0, 0, 263,
+ 265, 0, 0, 0, 267, 0, 0, 0, 0, 269, 0, 231, 0, 0, 7691, 0, 0, 0, 0, 271,
+ 0, 0, 0, 0, 0, 7693, 0, 0, 0, 7697, 0, 7699, 0, 0, 7695, 0, 0, 0, 232,
+ 233, 234, 7869, 275, 277, 279, 235, 7867, 0, 0, 283, 517, 519, 0, 0, 0,
+ 7865, 0, 0, 0, 553, 281, 7705, 0, 7707, 0, 0, 7711, 0, 0, 0, 0, 501, 285,
+ 0, 7713, 287, 289, 0, 0, 0, 0, 487, 0, 291, 0, 0, 293, 0, 0, 0, 7715,
+ 7719, 0, 0, 0, 543, 0, 0, 0, 0, 0, 7717, 0, 0, 0, 7721, 0, 0, 7723, 0,
+ 7830, 0, 0, 0, 236, 237, 238, 297, 299, 301, 0, 239, 7881, 0, 0, 464,
+ 521, 523, 0, 0, 0, 7883, 0, 0, 0, 0, 303, 0, 0, 7725, 0, 0, 309, 0, 0, 0,
+ 0, 496, 0, 0, 0, 7729, 0, 0, 0, 0, 0, 489, 0, 7731, 0, 0, 0, 311, 0, 0,
+ 0, 0, 7733, 0, 0, 0, 0, 314, 0, 318, 0, 0, 0, 0, 0, 7735, 0, 0, 0, 316,
+ 0, 7741, 0, 0, 7739, 0, 0, 0, 0, 7743, 0, 0, 0, 0, 7745, 0, 0, 7747, 0,
+ 0, 0, 0, 505, 324, 0, 241, 0, 0, 7749, 0, 0, 0, 0, 328, 0, 0, 0, 0, 0,
+ 7751, 0, 0, 0, 326, 0, 7755, 0, 0, 7753, 0, 0, 0, 242, 243, 244, 245,
+ 333, 335, 559, 246, 7887, 0, 337, 466, 525, 527, 0, 0, 417, 7885, 0, 0,
+ 0, 0, 491, 0, 0, 0, 0, 7765, 7767, 0, 0, 0, 0, 341, 0, 0, 0, 0, 7769, 0,
+ 0, 0, 0, 345, 529, 531, 0, 0, 0, 7771, 0, 0, 0, 343, 0, 0, 0, 0, 7775, 0,
+ 0, 0, 0, 347, 349, 0, 0, 0, 7777, 0, 0, 0, 0, 353, 0, 0, 0, 0, 0, 7779,
+ 0, 0, 537, 351, 0, 0, 7787, 7831, 0, 0, 0, 357, 0, 7789, 0, 0, 539, 355,
+ 0, 7793, 0, 0, 7791, 0, 0, 0, 249, 250, 251, 361, 363, 365, 0, 252, 7911,
+ 367, 369, 468, 533, 535, 0, 0, 432, 7909, 7795, 0, 0, 0, 371, 7799, 0,
+ 7797, 0, 0, 0, 7805, 0, 7807, 0, 0, 0, 0, 7809, 7811, 373, 0, 0, 0, 7815,
+ 7813, 0, 7832, 0, 0, 0, 7817, 0, 0, 7819, 7821, 0, 0, 7923, 253, 375,
+ 7929, 563, 0, 7823, 255, 7927, 7833, 0, 0, 0, 7925, 0, 378, 7825, 0, 0,
+ 0, 380, 0, 0, 0, 0, 382, 0, 7827, 0, 0, 0, 0, 7829, 0, 0, 0, 8173, 901,
+ 0, 0, 8129, 0, 7846, 7844, 0, 7850, 7848, 0, 0, 0, 0, 0, 478, 0, 0, 506,
+ 0, 0, 0, 0, 0, 508, 0, 0, 482, 0, 0, 7688, 0, 0, 0, 0, 7872, 7870, 0,
+ 7876, 0, 0, 0, 0, 7874, 0, 0, 7726, 0, 0, 0, 0, 7890, 7888, 0, 7894, 0,
+ 0, 0, 0, 7892, 0, 0, 7756, 0, 0, 556, 0, 0, 7758, 0, 0, 554, 0, 0, 510,
+ 0, 0, 0, 0, 475, 471, 0, 0, 469, 0, 0, 473, 0, 0, 7847, 7845, 0, 7851,
+ 7849, 0, 0, 0, 0, 0, 479, 0, 0, 507, 0, 0, 0, 0, 0, 509, 0, 0, 483, 0, 0,
+ 7689, 0, 0, 0, 0, 7873, 7871, 0, 7877, 0, 0, 0, 0, 7875, 0, 0, 7727, 0,
+ 0, 0, 0, 7891, 7889, 0, 7895, 0, 0, 0, 0, 7893, 0, 0, 7757, 0, 0, 557, 0,
+ 0, 7759, 0, 0, 555, 0, 0, 511, 0, 0, 0, 0, 476, 472, 0, 0, 470, 0, 0,
+ 474, 0, 0, 7856, 7854, 0, 7860, 7858, 0, 0, 0, 0, 0, 7857, 7855, 0, 7861,
+ 0, 0, 0, 0, 7859, 0, 7700, 7702, 0, 0, 0, 0, 7701, 7703, 7760, 7762, 0,
+ 0, 0, 0, 7761, 7763, 0, 0, 7780, 0, 7781, 0, 0, 0, 0, 0, 7782, 0, 7783,
+ 0, 0, 0, 0, 7800, 0, 0, 0, 0, 0, 7801, 0, 0, 0, 7802, 0, 7803, 0, 0, 0,
+ 0, 7835, 0, 0, 0, 7900, 7898, 0, 7904, 0, 0, 0, 0, 7902, 0, 0, 0, 0,
+ 7906, 7901, 7899, 0, 7905, 7903, 0, 0, 0, 0, 7907, 0, 0, 0, 0, 7914,
+ 7912, 0, 7918, 0, 0, 0, 0, 7916, 0, 0, 0, 0, 7920, 7915, 7913, 0, 7919,
+ 7917, 0, 0, 0, 0, 7921, 0, 0, 0, 494, 0, 0, 492, 0, 0, 0, 0, 0, 493, 0,
+ 480, 0, 0, 0, 0, 0, 481, 0, 0, 7708, 0, 0, 0, 0, 0, 7709, 560, 0, 0, 0,
+ 0, 0, 561, 0, 0, 0, 0, 495, 0, 0, 8122, 902, 0, 0, 8121, 8120, 7944,
+ 7945, 0, 0, 0, 0, 0, 8124, 8136, 904, 0, 0, 0, 0, 7960, 7961, 0, 0, 8138,
+ 905, 7976, 7977, 0, 0, 0, 0, 0, 8140, 8154, 906, 0, 0, 8153, 8152, 0,
+ 938, 0, 0, 7992, 7993, 0, 0, 8184, 908, 8008, 8009, 0, 0, 0, 0, 0, 8172,
+ 0, 0, 8170, 910, 0, 0, 8169, 8168, 0, 939, 0, 0, 0, 8025, 0, 0, 8186,
+ 911, 0, 0, 0, 0, 8040, 8041, 0, 8188, 0, 0, 0, 0, 0, 8116, 0, 8132, 0, 0,
+ 0, 0, 8048, 940, 0, 0, 8113, 8112, 7936, 7937, 0, 0, 0, 0, 8118, 8115,
+ 8050, 941, 0, 0, 0, 0, 7952, 7953, 0, 0, 8052, 942, 7968, 7969, 0, 0, 0,
+ 0, 8134, 8131, 8054, 943, 0, 0, 8145, 8144, 0, 970, 0, 0, 7984, 7985,
+ 8150, 0, 0, 0, 0, 0, 8056, 972, 8000, 8001, 0, 0, 0, 0, 8164, 8165, 0, 0,
+ 8058, 973, 0, 0, 8161, 8160, 0, 971, 0, 0, 8016, 8017, 0, 0, 0, 0, 8166,
+ 0, 8060, 974, 0, 0, 0, 0, 8032, 8033, 8182, 8179, 0, 0, 0, 0, 8146, 912,
+ 0, 0, 8151, 0, 8162, 944, 0, 0, 8167, 0, 0, 0, 0, 0, 0, 8180, 0, 979, 0,
+ 0, 0, 0, 0, 980, 0, 1031, 0, 0, 0, 1232, 0, 1234, 0, 0, 0, 1027, 1024, 0,
+ 0, 0, 0, 1238, 0, 1025, 0, 0, 0, 1217, 0, 1244, 0, 0, 0, 0, 0, 1246, 0,
+ 0, 1037, 0, 0, 0, 1250, 1049, 0, 1252, 0, 0, 0, 1036, 0, 0, 0, 1254, 0,
+ 0, 1262, 1038, 0, 1264, 0, 0, 1266, 0, 0, 1268, 0, 0, 0, 0, 0, 1272, 0,
+ 1260, 0, 0, 0, 1233, 0, 1235, 0, 0, 0, 1107, 1104, 0, 0, 0, 0, 1239, 0,
+ 1105, 0, 0, 0, 1218, 0, 1245, 0, 0, 0, 0, 0, 1247, 0, 0, 1117, 0, 0, 0,
+ 1251, 1081, 0, 1253, 0, 0, 0, 1116, 0, 0, 0, 1255, 0, 0, 1263, 1118, 0,
+ 1265, 0, 0, 1267, 0, 0, 1269, 0, 0, 0, 0, 0, 1273, 0, 1261, 0, 0, 0, 0,
+ 0, 1111, 0, 0, 1142, 0, 1143, 0, 0, 0, 0, 1242, 0, 0, 0, 0, 0, 1243, 0,
+ 1258, 0, 0, 0, 0, 0, 1259, 1570, 1571, 1573, 0, 0, 0, 0, 1572, 0, 1574,
+ 0, 0, 0, 0, 0, 1730, 0, 1747, 0, 0, 0, 0, 0, 1728, 0, 0, 0, 2345, 0,
+ 2353, 0, 0, 0, 0, 0, 2356, 0, 0, 2507, 2508, 0, 0, 2891, 2888, 2892, 0,
+ 0, 0, 2964, 0, 0, 0, 0, 3018, 3020, 0, 0, 0, 0, 3019, 0, 0, 0, 3144, 0,
+ 0, 0, 3264, 3274, 3271, 3272, 0, 0, 0, 0, 3275, 0, 0, 0, 3402, 3404, 0,
+ 0, 0, 0, 3403, 0, 0, 0, 3546, 3548, 3550, 0, 0, 0, 3549, 4134, 0, 0, 0,
+ 0, 0, 0, 6918, 0, 6920, 0, 0, 0, 0, 0, 6922, 0, 6924, 0, 0, 0, 0, 0,
+ 6926, 0, 6930, 0, 0, 0, 0, 0, 6971, 0, 6973, 0, 0, 0, 0, 0, 6976, 0,
+ 6977, 0, 0, 0, 0, 0, 6979, 0, 0, 7736, 0, 7737, 0, 0, 0, 0, 0, 7772, 0,
+ 7773, 0, 0, 0, 7784, 0, 0, 0, 0, 0, 7785, 0, 7852, 0, 0, 7862, 0, 0,
+ 7853, 0, 0, 7863, 0, 0, 7878, 0, 0, 0, 0, 0, 7879, 0, 7896, 0, 0, 0, 0,
+ 0, 7897, 0, 0, 0, 7938, 7940, 0, 0, 7942, 8064, 7939, 7941, 0, 0, 7943,
+ 8065, 0, 0, 0, 0, 0, 8066, 0, 8067, 0, 0, 0, 0, 0, 8068, 0, 8069, 0, 0,
+ 0, 0, 0, 8070, 0, 8071, 0, 0, 0, 0, 7946, 7948, 0, 0, 7950, 8072, 7947,
+ 7949, 0, 0, 7951, 8073, 0, 0, 0, 0, 0, 8074, 0, 8075, 0, 0, 0, 0, 0,
+ 8076, 0, 8077, 0, 0, 0, 0, 0, 8078, 0, 8079, 0, 0, 0, 0, 7954, 7956,
+ 7955, 7957, 0, 0, 0, 0, 7962, 7964, 7963, 7965, 0, 0, 0, 0, 7970, 7972,
+ 0, 0, 7974, 8080, 7971, 7973, 0, 0, 7975, 8081, 0, 0, 0, 0, 0, 8082, 0,
+ 8083, 0, 0, 0, 0, 0, 8084, 0, 8085, 0, 0, 0, 0, 0, 8086, 0, 8087, 0, 0,
+ 0, 0, 7978, 7980, 0, 0, 7982, 8088, 7979, 7981, 0, 0, 7983, 8089, 0, 0,
+ 0, 0, 0, 8090, 0, 8091, 0, 0, 0, 0, 0, 8092, 0, 8093, 0, 0, 0, 0, 0,
+ 8094, 0, 8095, 0, 0, 0, 0, 7986, 7988, 0, 0, 7990, 0, 7987, 7989, 0, 0,
+ 7991, 0, 0, 0, 0, 0, 7994, 7996, 0, 0, 7998, 0, 7995, 7997, 0, 0, 7999,
+ 0, 0, 0, 0, 0, 8002, 8004, 8003, 8005, 0, 0, 0, 0, 8010, 8012, 8011,
+ 8013, 0, 0, 0, 0, 8018, 8020, 0, 0, 8022, 0, 8019, 8021, 0, 0, 8023, 0,
+ 0, 0, 0, 0, 8027, 8029, 0, 0, 8031, 0, 8034, 8036, 0, 0, 8038, 8096, 0,
+ 0, 0, 0, 8035, 8037, 0, 0, 8039, 8097, 0, 8098, 0, 0, 0, 0, 0, 8099, 0,
+ 8100, 0, 0, 0, 0, 0, 8101, 0, 8102, 0, 0, 0, 0, 0, 8103, 8042, 8044, 0,
+ 0, 8046, 8104, 0, 0, 0, 0, 8043, 8045, 0, 0, 8047, 8105, 0, 8106, 0, 0,
+ 0, 0, 0, 8107, 0, 8108, 0, 0, 0, 0, 0, 8109, 0, 8110, 0, 0, 0, 0, 0,
+ 8111, 0, 8114, 0, 0, 0, 0, 0, 8130, 0, 8178, 0, 0, 0, 0, 0, 8119, 8141,
+ 8142, 0, 0, 8143, 0, 0, 0, 0, 0, 0, 8135, 0, 8183, 0, 0, 0, 0, 8157,
+ 8158, 0, 0, 8159, 0, 0, 0, 0, 8602, 0, 8603, 0, 0, 0, 0, 0, 8622, 0,
+ 8653, 0, 0, 0, 0, 0, 8655, 0, 8654, 0, 0, 0, 0, 0, 8708, 0, 8713, 0, 0,
+ 0, 0, 0, 8716, 0, 8740, 0, 0, 0, 0, 0, 8742, 0, 8769, 0, 0, 0, 0, 0,
+ 8772, 0, 8775, 0, 0, 0, 0, 0, 8777, 0, 8813, 0, 0, 0, 0, 0, 8802, 0,
+ 8816, 0, 0, 0, 0, 0, 8817, 0, 8820, 0, 0, 0, 0, 0, 8821, 0, 8824, 0, 0,
+ 0, 0, 0, 8825, 0, 8832, 0, 0, 0, 0, 0, 8833, 0, 8928, 0, 0, 0, 0, 0,
+ 8929, 0, 8836, 0, 0, 0, 0, 0, 8837, 0, 8840, 0, 0, 0, 0, 0, 8841, 0,
+ 8930, 0, 0, 0, 0, 0, 8931, 0, 8876, 0, 0, 0, 0, 0, 8877, 0, 8878, 0, 0,
+ 0, 0, 0, 8879, 0, 8938, 0, 0, 0, 0, 0, 8939, 0, 8940, 0, 0, 0, 0, 0,
+ 8941, 0, 0, 12436, 0, 12364, 0, 0, 0, 0, 0, 12366, 0, 12368, 0, 0, 0, 0,
+ 0, 12370, 0, 12372, 0, 0, 0, 0, 0, 12374, 0, 12376, 0, 0, 0, 0, 0, 12378,
+ 0, 12380, 0, 0, 0, 0, 0, 12382, 0, 12384, 0, 0, 0, 0, 0, 12386, 0, 12389,
+ 0, 0, 0, 0, 0, 12391, 0, 12393, 0, 0, 0, 0, 0, 12400, 12401, 12403,
+ 12404, 0, 0, 0, 0, 12406, 12407, 12409, 12410, 0, 0, 0, 0, 12412, 12413,
+ 12446, 0, 0, 0, 0, 0, 12532, 0, 12460, 0, 0, 0, 0, 0, 12462, 0, 12464, 0,
+ 0, 0, 0, 0, 12466, 0, 12468, 0, 0, 0, 0, 0, 12470, 0, 12472, 0, 0, 0, 0,
+ 0, 12474, 0, 12476, 0, 0, 0, 0, 0, 12478, 0, 12480, 0, 0, 0, 0, 0, 12482,
+ 0, 12485, 0, 0, 0, 0, 0, 12487, 0, 12489, 0, 0, 0, 0, 0, 12496, 12497,
+ 12499, 12500, 0, 0, 0, 0, 12502, 12503, 12505, 12506, 0, 0, 0, 0, 12508,
+ 12509, 12535, 0, 0, 0, 0, 0, 12536, 0, 12537, 0, 0, 0, 0, 0, 12538, 0,
+ 12542, 0, 0, 0, 69786, 0, 0, 0, 0, 0, 69788, 0, 69803, 0, 0, 0, 0, 0, 0,
+ 69934, 0, 69935, 0, 0, 70475, 70476, 0, 0, 70844, 70843, 70846, 0, 0,
+ 71098, 0, 0, 0, 0, 0, 71099,
};
static const change_record change_records_3_2_0[] = {
@@ -5183,6 +5696,7 @@ static const change_record change_records_3_2_0[] = {
{ 255, 7, 7, 255, 0 },
{ 255, 7, 8, 255, 0 },
{ 255, 7, 9, 255, 0 },
+ { 255, 19, 255, 255, 0 },
{ 1, 5, 255, 255, 0 },
{ 255, 10, 255, 255, 0 },
{ 18, 255, 255, 255, 0 },
@@ -5204,79 +5718,80 @@ static const change_record change_records_3_2_0[] = {
{ 255, 20, 255, 255, 0 },
{ 255, 255, 255, 255, 1e+16 },
{ 255, 255, 255, 255, 1e+20 },
- { 255, 19, 255, 255, 0 },
{ 255, 19, 255, 255, -1 },
{ 1, 255, 255, 0, 0 },
};
static unsigned char changes_3_2_0_index[] = {
0, 1, 2, 2, 3, 4, 5, 6, 2, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
- 19, 20, 21, 22, 23, 24, 2, 2, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
- 36, 2, 2, 2, 37, 38, 2, 39, 2, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 2, 51, 2, 2, 52, 53, 54, 55, 56, 2, 57, 58, 59, 60, 2, 2, 61, 62, 63,
- 64, 65, 65, 2, 2, 2, 2, 66, 2, 67, 68, 69, 70, 71, 2, 2, 2, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 2, 2, 2, 2, 2, 2, 82, 2, 2, 2, 2, 2, 83, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 84, 2, 85, 2, 2, 2, 2, 2, 2, 2, 2, 86,
- 87, 2, 2, 2, 2, 2, 2, 2, 88, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 89, 90,
+ 19, 20, 21, 22, 23, 24, 25, 2, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
+ 36, 37, 2, 2, 2, 38, 39, 2, 40, 2, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 51, 2, 52, 2, 2, 53, 54, 55, 56, 57, 2, 58, 59, 60, 61, 2, 2, 62, 63,
+ 64, 65, 66, 66, 2, 2, 2, 2, 67, 68, 69, 70, 71, 72, 73, 2, 2, 2, 74, 75,
+ 76, 77, 78, 79, 80, 81, 82, 83, 2, 2, 2, 2, 2, 2, 84, 2, 2, 2, 2, 2, 85,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 91, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 86, 2, 87, 2, 2, 2, 2, 2, 2, 2, 2,
+ 88, 89, 2, 2, 2, 2, 2, 2, 2, 90, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 91,
+ 92, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 93, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 92, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 93, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 94, 95, 2, 2, 2, 2, 2, 2, 2, 2, 96, 49, 49,
- 97, 98, 49, 99, 100, 101, 102, 103, 104, 105, 106, 107, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 94, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 95, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 96, 97, 2, 2, 2, 2, 2, 2, 2, 2, 98, 50, 50,
+ 99, 100, 50, 101, 102, 103, 104, 105, 106, 107, 108, 109, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 108, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 110, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 109, 110, 111, 112, 113, 114, 2, 2, 2, 115, 116, 2, 117, 118,
- 119, 120, 121, 122, 2, 123, 124, 125, 126, 127, 2, 2, 2, 2, 2, 2, 128, 2,
- 129, 130, 131, 2, 132, 2, 133, 2, 2, 2, 134, 2, 2, 2, 135, 136, 137, 138,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 139, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 49, 49, 49, 49, 49, 49, 140, 2, 141, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 49, 49, 49, 49, 49, 49, 49,
- 49, 142, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 111, 112, 113, 114, 115, 116, 2, 2, 117, 118, 119, 2, 120,
+ 121, 122, 123, 124, 125, 2, 126, 127, 128, 129, 130, 131, 2, 50, 50, 132,
+ 2, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 2, 2, 143, 2, 2, 2,
+ 144, 145, 146, 147, 148, 149, 150, 2, 2, 151, 2, 152, 153, 154, 155, 2,
+ 2, 156, 2, 2, 2, 157, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 50, 50, 50, 50, 50,
+ 50, 50, 158, 159, 50, 160, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 50, 50, 50, 50, 50, 50, 50, 50, 161, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 50, 50, 50, 50, 162, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 49, 49, 49, 49, 143, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 144, 145, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 50, 50, 50, 50, 163, 164, 165, 166, 2, 2, 2, 2, 2, 2, 167, 168,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 146, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 169, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 170, 171, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 147, 2, 148, 2, 149, 2, 2, 150, 2, 2, 2, 151, 152,
- 153, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 154, 155,
- 2, 2, 156, 157, 158, 159, 160, 2, 161, 162, 163, 164, 165, 166, 167, 148,
- 168, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 169, 170, 93, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 82, 171, 2, 172, 173, 2, 2, 2,
+ 2, 2, 2, 172, 173, 174, 2, 175, 2, 2, 176, 2, 2, 2, 177, 178, 179, 50,
+ 50, 50, 50, 50, 180, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 50, 181, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 182,
+ 183, 2, 2, 184, 185, 186, 187, 188, 2, 50, 50, 50, 50, 189, 190, 50, 191,
+ 192, 193, 194, 195, 196, 197, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 198,
+ 199, 95, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 84, 200, 2, 201,
+ 202, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 174, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 175, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 176, 2, 2, 2,
+ 2, 203, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 204, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 205, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 177, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 206, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 49, 49, 49,
- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 178, 49, 179, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 207, 50, 208,
+ 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 50, 209, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 203,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 174, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -5511,7 +6026,7 @@ static unsigned char changes_3_2_0_index[] = {
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 49, 180, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 50, 210, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -5575,7 +6090,7 @@ static unsigned char changes_3_2_0_index[] = {
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2,
};
static unsigned char changes_3_2_0_data[] = {
@@ -5611,7 +6126,7 @@ static unsigned char changes_3_2_0_data[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 10, 0, 9, 9, 0, 0, 0, 9, 9,
- 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5623,16 +6138,16 @@ static unsigned char changes_3_2_0_data[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0,
9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 0, 9, 0, 9, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5660,16 +6175,16 @@ static unsigned char changes_3_2_0_data[] = {
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0,
9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5685,7 +6200,7 @@ static unsigned char changes_3_2_0_data[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
@@ -5696,84 +6211,88 @@ static unsigned char changes_3_2_0_data[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
- 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0,
+ 0, 0, 0, 0, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 20, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 9, 0, 0, 0, 0, 0, 0,
9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9,
+ 0, 0, 0, 9, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9,
9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 21, 21, 21, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 21, 21, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
- 0, 0, 0, 0, 0, 9, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 0, 0, 0, 0, 9,
- 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0,
- 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
0, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
- 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 9, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 9, 9, 0, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 0, 0, 0,
- 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
+ 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 0, 0,
+ 0, 0, 0, 0, 0, 0, 22, 23, 24, 25, 26, 27, 28, 29, 30, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 9, 0, 0, 9, 9, 9, 9, 9, 9, 0, 0, 9, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5781,66 +6300,69 @@ static unsigned char changes_3_2_0_data[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 21, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0,
+ 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
+ 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 0, 0, 0, 9, 9, 9, 9, 9,
+ 9, 9, 0, 0, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
+ 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
+ 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
- 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0,
+ 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 0, 0,
+ 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
@@ -5850,125 +6372,129 @@ static unsigned char changes_3_2_0_data[] = {
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 0, 9, 9, 9,
- 9, 0, 0, 0, 0, 0, 0, 35, 4, 0, 0, 36, 37, 38, 39, 40, 41, 1, 1, 0, 0, 0,
- 4, 35, 8, 6, 7, 36, 37, 38, 39, 40, 41, 1, 1, 0, 0, 0, 0, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
+ 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0,
+ 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 0, 9, 9, 9, 9,
+ 9, 9, 9, 0, 0, 0, 0, 0, 9, 0, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 36, 4, 0, 0,
+ 37, 38, 39, 40, 41, 42, 1, 1, 0, 0, 0, 4, 36, 8, 6, 7, 37, 38, 39, 40,
+ 41, 42, 1, 1, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 0,
+ 0, 0, 0, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 9,
- 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 44, 44, 44,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 45, 46, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 47, 11, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 47, 47, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 9, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 0, 9, 0, 0, 0, 0, 9, 9, 9, 0, 9, 0, 0, 0, 0, 0, 0,
- 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 0, 0, 0, 0,
+ 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 9, 0, 0, 0,
+ 0, 9, 9, 9, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
- 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9,
+ 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 0, 0, 0, 0, 0, 9, 0, 0, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9,
- 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9,
- 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9,
- 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 0, 9, 0, 0, 0, 0, 0, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 0,
+ 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 0,
+ 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 49, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5976,83 +6502,83 @@ static unsigned char changes_3_2_0_data[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 9, 9, 9, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6061,35 +6587,36 @@ static unsigned char changes_3_2_0_data[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0,
+ 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6097,303 +6624,426 @@ static unsigned char changes_3_2_0_data[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
- 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9,
- 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9,
- 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 0,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 19,
- 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 19,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0,
+ 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 19, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 21, 21, 21, 21, 21, 21, 0, 0, 0, 1, 1, 21, 21, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 21, 21, 21, 21, 0, 0, 0, 1, 1, 21, 21,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 0, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 0, 0, 0, 0, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 0, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 0, 0, 0, 0, 0, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0,
+ 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9,
+ 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 53, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 0, 0, 9,
- 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9,
- 0, 0, 0, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 0, 0, 9, 0, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 0, 0, 0, 9,
+ 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 0, 0, 0, 0, 0, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9, 0,
+ 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 0, 9, 9, 0, 0,
- 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9,
- 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0,
+ 9, 9, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 0, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0,
+ 0, 0, 0, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0,
+ 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0,
+ 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9,
+ 9, 9, 0, 9, 0, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0,
+ 0, 0, 0, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 0, 0, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 9, 0, 9, 9, 0, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 9, 9, 0, 0, 9, 9, 9, 0, 0, 9, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
+ 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0,
+ 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0,
+ 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0,
+ 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9,
+ 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6401,127 +7051,148 @@ static unsigned char changes_3_2_0_data[] = {
0, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0,
- 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 0, 9, 0, 0, 9, 0,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 0, 9, 0, 9, 0, 0, 0, 0, 0,
- 0, 9, 0, 0, 0, 0, 9, 0, 9, 0, 9, 0, 9, 9, 9, 0, 9, 9, 0, 9, 0, 0, 9, 0,
- 9, 0, 9, 0, 9, 0, 9, 0, 9, 9, 0, 9, 0, 0, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9,
- 9, 9, 0, 9, 9, 9, 9, 0, 9, 9, 9, 9, 0, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0,
- 9, 9, 9, 0, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 9, 9, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 0,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 0, 9, 9, 0, 9, 0, 0, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9,
+ 9, 9, 9, 0, 9, 0, 9, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 9, 0, 9, 0, 9, 0,
+ 9, 9, 9, 0, 9, 9, 0, 9, 0, 0, 9, 0, 9, 0, 9, 0, 9, 0, 9, 0, 9, 9, 0, 9,
+ 0, 0, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 0, 9, 9, 9, 9,
+ 0, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 9, 9, 0, 9, 9, 9, 9, 9, 0, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0,
+ 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 0, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9,
- 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9,
- 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 0, 0, 0, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0,
+ 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6530,24 +7201,29 @@ static unsigned char changes_3_2_0_data[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
static const change_record* get_change_3_2_0(Py_UCS4 n)
diff --git a/Modules/unicodename_db.h b/Modules/unicodename_db.h
index 7ccb1261f5..d0f9cb4dbc 100644
--- a/Modules/unicodename_db.h
+++ b/Modules/unicodename_db.h
@@ -4,249 +4,265 @@
/* lexicon */
static unsigned char lexicon[] = {
- 76, 69, 84, 84, 69, 210, 87, 73, 84, 200, 83, 89, 76, 76, 65, 66, 76,
- 197, 83, 77, 65, 76, 204, 83, 73, 71, 206, 67, 65, 80, 73, 84, 65, 204,
- 76, 65, 84, 73, 206, 89, 201, 65, 82, 65, 66, 73, 195, 67, 74, 203, 77,
- 65, 84, 72, 69, 77, 65, 84, 73, 67, 65, 204, 69, 71, 89, 80, 84, 73, 65,
- 206, 72, 73, 69, 82, 79, 71, 76, 89, 80, 200, 67, 79, 77, 80, 65, 84, 73,
- 66, 73, 76, 73, 84, 217, 67, 85, 78, 69, 73, 70, 79, 82, 205, 83, 89, 77,
- 66, 79, 204, 70, 79, 82, 77, 128, 67, 65, 78, 65, 68, 73, 65, 206, 83,
- 89, 76, 76, 65, 66, 73, 67, 211, 66, 65, 77, 85, 205, 68, 73, 71, 73,
- 212, 65, 78, 196, 66, 79, 76, 196, 72, 65, 78, 71, 85, 204, 86, 79, 87,
- 69, 204, 71, 82, 69, 69, 203, 76, 73, 71, 65, 84, 85, 82, 197, 77, 85,
- 83, 73, 67, 65, 204, 69, 84, 72, 73, 79, 80, 73, 195, 84, 73, 77, 69,
- 211, 70, 79, 210, 73, 84, 65, 76, 73, 195, 67, 89, 82, 73, 76, 76, 73,
- 195, 82, 65, 68, 73, 67, 65, 204, 83, 65, 78, 83, 45, 83, 69, 82, 73,
- 198, 84, 65, 77, 73, 204, 67, 73, 82, 67, 76, 69, 196, 67, 79, 77, 66,
- 73, 78, 73, 78, 199, 84, 65, 201, 70, 73, 78, 65, 204, 86, 65, 201, 83,
- 81, 85, 65, 82, 197, 76, 69, 70, 212, 82, 73, 71, 72, 212, 86, 65, 82,
- 73, 65, 84, 73, 79, 206, 66, 82, 65, 73, 76, 76, 197, 80, 65, 84, 84, 69,
- 82, 206, 65, 66, 79, 86, 69, 128, 66, 89, 90, 65, 78, 84, 73, 78, 197,
- 83, 73, 71, 78, 128, 66, 69, 76, 79, 87, 128, 68, 79, 85, 66, 76, 197,
- 73, 83, 79, 76, 65, 84, 69, 196, 78, 85, 77, 66, 69, 210, 75, 65, 84, 65,
- 75, 65, 78, 193, 194, 77, 79, 68, 73, 70, 73, 69, 210, 68, 79, 212, 75,
- 65, 78, 71, 88, 201, 65, 128, 76, 73, 78, 69, 65, 210, 84, 73, 66, 69,
- 84, 65, 206, 79, 198, 73, 78, 73, 84, 73, 65, 204, 77, 69, 69, 205, 86,
- 69, 82, 84, 73, 67, 65, 204, 77, 89, 65, 78, 77, 65, 210, 85, 128, 75,
- 72, 77, 69, 210, 87, 72, 73, 84, 197, 65, 66, 79, 86, 197, 67, 65, 82,
- 82, 73, 69, 210, 73, 128, 65, 82, 82, 79, 87, 128, 89, 69, 200, 79, 128,
- 77, 65, 82, 75, 128, 65, 82, 82, 79, 215, 67, 79, 80, 84, 73, 195, 80,
- 72, 65, 83, 69, 45, 197, 77, 79, 78, 71, 79, 76, 73, 65, 206, 68, 69, 86,
- 65, 78, 65, 71, 65, 82, 201, 66, 76, 65, 67, 203, 84, 73, 76, 197, 83,
- 89, 77, 66, 79, 76, 128, 80, 65, 82, 69, 78, 84, 72, 69, 83, 73, 90, 69,
- 196, 84, 72, 65, 205, 74, 79, 78, 71, 83, 69, 79, 78, 199, 83, 84, 82,
- 79, 75, 69, 128, 83, 81, 85, 65, 82, 69, 196, 66, 79, 216, 72, 69, 66,
- 82, 69, 215, 77, 73, 65, 207, 80, 76, 85, 211, 82, 73, 71, 72, 84, 87,
- 65, 82, 68, 211, 71, 69, 79, 82, 71, 73, 65, 206, 68, 82, 65, 87, 73, 78,
- 71, 211, 67, 72, 79, 83, 69, 79, 78, 199, 72, 65, 76, 70, 87, 73, 68, 84,
- 200, 66, 65, 76, 73, 78, 69, 83, 197, 72, 79, 79, 75, 128, 213, 84, 87,
- 79, 128, 73, 68, 69, 79, 71, 82, 65, 205, 80, 72, 65, 83, 69, 45, 196,
- 65, 76, 67, 72, 69, 77, 73, 67, 65, 204, 65, 76, 69, 198, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 73, 195, 79, 78, 69, 128, 84, 79, 128, 84, 87, 207,
- 72, 69, 65, 86, 217, 79, 86, 69, 210, 67, 79, 78, 83, 79, 78, 65, 78,
- 212, 66, 82, 65, 72, 77, 201, 83, 67, 82, 73, 80, 212, 85, 208, 76, 79,
- 215, 72, 65, 200, 79, 78, 197, 68, 79, 87, 206, 72, 73, 71, 200, 70, 85,
- 76, 76, 87, 73, 68, 84, 200, 66, 82, 65, 67, 75, 69, 84, 128, 69, 81, 85,
- 65, 204, 84, 65, 199, 66, 65, 82, 128, 68, 79, 77, 73, 78, 207, 78, 85,
- 77, 69, 82, 73, 195, 70, 82, 65, 75, 84, 85, 210, 84, 72, 82, 69, 197,
- 67, 72, 65, 82, 65, 67, 84, 69, 210, 77, 65, 76, 65, 89, 65, 76, 65, 205,
- 80, 72, 65, 83, 69, 45, 195, 84, 79, 78, 197, 68, 79, 85, 66, 76, 69, 45,
- 83, 84, 82, 85, 67, 203, 76, 69, 70, 84, 87, 65, 82, 68, 211, 72, 73, 82,
- 65, 71, 65, 78, 193, 65, 67, 85, 84, 69, 128, 74, 85, 78, 71, 83, 69, 79,
- 78, 199, 71, 76, 65, 71, 79, 76, 73, 84, 73, 195, 66, 69, 78, 71, 65, 76,
- 201, 77, 69, 68, 73, 65, 204, 84, 69, 76, 85, 71, 213, 86, 79, 67, 65,
- 76, 73, 195, 65, 82, 77, 69, 78, 73, 65, 206, 74, 69, 69, 205, 78, 69,
- 71, 65, 84, 73, 86, 197, 73, 68, 69, 79, 71, 82, 65, 80, 200, 74, 65, 86,
- 65, 78, 69, 83, 197, 79, 82, 73, 89, 193, 84, 72, 82, 69, 69, 128, 87,
- 69, 83, 84, 45, 67, 82, 69, 197, 70, 79, 85, 82, 128, 72, 65, 128, 72,
- 65, 76, 198, 77, 65, 82, 203, 75, 65, 78, 78, 65, 68, 193, 78, 69, 215,
- 80, 72, 65, 83, 69, 45, 193, 84, 72, 65, 201, 67, 72, 69, 82, 79, 75, 69,
- 197, 68, 79, 84, 211, 71, 85, 74, 65, 82, 65, 84, 201, 67, 72, 65, 205,
- 76, 85, 197, 83, 72, 65, 82, 65, 68, 193, 83, 73, 78, 72, 65, 76, 193,
- 75, 65, 128, 82, 85, 78, 73, 195, 83, 65, 85, 82, 65, 83, 72, 84, 82,
- 193, 84, 69, 84, 82, 65, 71, 82, 65, 205, 68, 69, 83, 69, 82, 69, 212,
- 72, 65, 77, 90, 193, 83, 89, 82, 73, 65, 195, 84, 73, 76, 68, 69, 128,
- 71, 85, 82, 77, 85, 75, 72, 201, 77, 65, 128, 77, 65, 89, 69, 203, 77,
- 69, 69, 84, 69, 201, 78, 79, 84, 65, 84, 73, 79, 206, 70, 73, 86, 69,
- 128, 80, 65, 128, 89, 65, 128, 76, 73, 71, 72, 212, 83, 73, 88, 128, 69,
- 73, 71, 72, 84, 128, 76, 69, 80, 67, 72, 193, 78, 65, 128, 83, 69, 86,
- 69, 78, 128, 76, 79, 78, 199, 78, 73, 78, 69, 128, 84, 85, 82, 75, 73,
- 195, 72, 79, 82, 73, 90, 79, 78, 84, 65, 204, 79, 80, 69, 206, 82, 65,
- 128, 83, 65, 128, 83, 85, 78, 68, 65, 78, 69, 83, 197, 86, 73, 69, 212,
- 76, 65, 207, 90, 90, 89, 88, 128, 90, 90, 89, 84, 128, 90, 90, 89, 82,
- 88, 128, 90, 90, 89, 82, 128, 90, 90, 89, 80, 128, 90, 90, 89, 65, 128,
- 90, 90, 89, 128, 90, 90, 85, 88, 128, 90, 90, 85, 82, 88, 128, 90, 90,
- 85, 82, 128, 90, 90, 85, 80, 128, 90, 90, 85, 128, 90, 90, 83, 89, 65,
- 128, 90, 90, 83, 65, 128, 90, 90, 79, 88, 128, 90, 90, 79, 80, 128, 90,
- 90, 79, 128, 90, 90, 73, 88, 128, 90, 90, 73, 84, 128, 90, 90, 73, 80,
- 128, 90, 90, 73, 69, 88, 128, 90, 90, 73, 69, 84, 128, 90, 90, 73, 69,
- 80, 128, 90, 90, 73, 69, 128, 90, 90, 73, 128, 90, 90, 69, 88, 128, 90,
- 90, 69, 80, 128, 90, 90, 69, 69, 128, 90, 90, 69, 128, 90, 90, 65, 88,
- 128, 90, 90, 65, 84, 128, 90, 90, 65, 80, 128, 90, 90, 65, 65, 128, 90,
- 90, 65, 128, 90, 89, 71, 79, 83, 128, 90, 87, 83, 80, 128, 90, 87, 78,
- 74, 128, 90, 87, 78, 66, 83, 80, 128, 90, 87, 74, 128, 90, 87, 65, 82,
+ 76, 69, 84, 84, 69, 210, 83, 73, 71, 206, 87, 73, 84, 200, 83, 89, 76,
+ 76, 65, 66, 76, 197, 83, 77, 65, 76, 204, 67, 65, 80, 73, 84, 65, 204,
+ 72, 73, 69, 82, 79, 71, 76, 89, 80, 200, 76, 65, 84, 73, 206, 67, 85, 78,
+ 69, 73, 70, 79, 82, 205, 65, 82, 65, 66, 73, 195, 89, 201, 67, 74, 203,
+ 77, 65, 84, 72, 69, 77, 65, 84, 73, 67, 65, 204, 69, 71, 89, 80, 84, 73,
+ 65, 206, 67, 79, 77, 80, 65, 84, 73, 66, 73, 76, 73, 84, 217, 83, 89, 77,
+ 66, 79, 204, 68, 73, 71, 73, 212, 70, 79, 82, 77, 128, 67, 65, 78, 65,
+ 68, 73, 65, 206, 83, 89, 76, 76, 65, 66, 73, 67, 211, 83, 73, 71, 78, 87,
+ 82, 73, 84, 73, 78, 199, 86, 79, 87, 69, 204, 84, 73, 77, 69, 211, 66,
+ 65, 77, 85, 205, 65, 78, 196, 66, 79, 76, 196, 65, 78, 65, 84, 79, 76,
+ 73, 65, 206, 72, 65, 78, 71, 85, 204, 76, 73, 78, 69, 65, 210, 71, 82,
+ 69, 69, 203, 77, 85, 83, 73, 67, 65, 204, 76, 73, 71, 65, 84, 85, 82,
+ 197, 69, 84, 72, 73, 79, 80, 73, 195, 193, 70, 79, 210, 67, 89, 82, 73,
+ 76, 76, 73, 195, 73, 84, 65, 76, 73, 195, 67, 79, 77, 66, 73, 78, 73, 78,
+ 199, 82, 65, 68, 73, 67, 65, 204, 83, 65, 78, 83, 45, 83, 69, 82, 73,
+ 198, 78, 85, 77, 66, 69, 210, 67, 73, 82, 67, 76, 69, 196, 84, 65, 77,
+ 73, 204, 84, 65, 201, 70, 73, 78, 65, 204, 65, 82, 82, 79, 87, 128, 86,
+ 65, 201, 76, 69, 70, 212, 82, 73, 71, 72, 212, 83, 81, 85, 65, 82, 197,
+ 68, 79, 85, 66, 76, 197, 65, 82, 82, 79, 215, 83, 73, 71, 78, 128, 65,
+ 66, 79, 86, 69, 128, 66, 69, 76, 79, 87, 128, 86, 65, 82, 73, 65, 84, 73,
+ 79, 206, 66, 82, 65, 73, 76, 76, 197, 80, 65, 84, 84, 69, 82, 206, 66,
+ 89, 90, 65, 78, 84, 73, 78, 197, 87, 72, 73, 84, 197, 66, 76, 65, 67,
+ 203, 65, 128, 73, 83, 79, 76, 65, 84, 69, 196, 77, 79, 68, 73, 70, 73,
+ 69, 210, 194, 75, 65, 84, 65, 75, 65, 78, 193, 85, 128, 77, 89, 65, 78,
+ 77, 65, 210, 68, 79, 212, 75, 65, 78, 71, 88, 201, 75, 73, 75, 65, 75,
+ 85, 201, 77, 69, 78, 68, 197, 73, 128, 79, 198, 84, 73, 66, 69, 84, 65,
+ 206, 79, 128, 72, 69, 65, 86, 217, 86, 69, 82, 84, 73, 67, 65, 204, 73,
+ 78, 73, 84, 73, 65, 204, 77, 65, 82, 75, 128, 77, 69, 69, 205, 67, 79,
+ 80, 84, 73, 195, 75, 72, 77, 69, 210, 82, 73, 71, 72, 84, 87, 65, 82, 68,
+ 211, 65, 66, 79, 86, 197, 67, 65, 82, 82, 73, 69, 210, 89, 69, 200, 67,
+ 72, 69, 82, 79, 75, 69, 197, 80, 76, 85, 211, 68, 69, 86, 65, 78, 65, 71,
+ 65, 82, 201, 80, 72, 65, 83, 69, 45, 197, 77, 79, 78, 71, 79, 76, 73, 65,
+ 206, 83, 84, 82, 79, 75, 69, 128, 76, 69, 70, 84, 87, 65, 82, 68, 211,
+ 83, 89, 77, 66, 79, 76, 128, 66, 79, 216, 84, 73, 76, 197, 68, 85, 80,
+ 76, 79, 89, 65, 206, 77, 73, 68, 68, 76, 197, 80, 65, 82, 69, 78, 84, 72,
+ 69, 83, 73, 90, 69, 196, 83, 81, 85, 65, 82, 69, 196, 84, 72, 65, 205,
+ 79, 78, 69, 128, 213, 74, 79, 78, 71, 83, 69, 79, 78, 199, 84, 87, 79,
+ 128, 67, 79, 78, 83, 79, 78, 65, 78, 212, 72, 69, 66, 82, 69, 215, 77,
+ 73, 65, 207, 85, 208, 72, 79, 79, 75, 128, 71, 69, 79, 82, 71, 73, 65,
+ 206, 79, 86, 69, 210, 68, 82, 65, 87, 73, 78, 71, 211, 72, 77, 79, 78,
+ 199, 79, 78, 197, 80, 65, 72, 65, 87, 200, 84, 87, 207, 68, 79, 87, 206,
+ 73, 78, 68, 69, 216, 67, 72, 79, 83, 69, 79, 78, 199, 76, 79, 215, 86,
+ 79, 67, 65, 76, 73, 195, 84, 72, 82, 69, 197, 72, 65, 76, 70, 87, 73, 68,
+ 84, 200, 72, 65, 78, 68, 45, 70, 73, 83, 212, 77, 69, 82, 79, 73, 84, 73,
+ 195, 66, 65, 76, 73, 78, 69, 83, 197, 77, 65, 82, 203, 83, 67, 82, 73,
+ 80, 212, 73, 68, 69, 79, 71, 82, 65, 205, 80, 72, 65, 83, 69, 45, 196,
+ 84, 79, 128, 65, 76, 67, 72, 69, 77, 73, 67, 65, 204, 65, 76, 69, 198,
+ 72, 73, 71, 200, 73, 68, 69, 79, 71, 82, 65, 80, 72, 73, 195, 83, 73, 78,
+ 72, 65, 76, 193, 78, 85, 77, 69, 82, 73, 195, 66, 65, 82, 128, 84, 79,
+ 78, 197, 66, 82, 65, 72, 77, 201, 72, 85, 78, 71, 65, 82, 73, 65, 206,
+ 84, 72, 82, 69, 69, 128, 84, 72, 85, 77, 194, 70, 79, 85, 82, 128, 66,
+ 65, 82, 194, 72, 65, 200, 72, 65, 128, 78, 79, 82, 84, 200, 70, 85, 76,
+ 76, 87, 73, 68, 84, 200, 66, 82, 65, 67, 75, 69, 84, 128, 69, 81, 85, 65,
+ 204, 76, 73, 71, 72, 212, 84, 65, 199, 68, 79, 77, 73, 78, 207, 72, 65,
+ 76, 198, 76, 79, 78, 199, 77, 65, 76, 65, 89, 65, 76, 65, 205, 65, 67,
+ 85, 84, 69, 128, 70, 82, 65, 75, 84, 85, 210, 67, 72, 65, 82, 65, 67, 84,
+ 69, 210, 80, 72, 65, 83, 69, 45, 195, 68, 79, 85, 66, 76, 69, 45, 83, 84,
+ 82, 85, 67, 203, 70, 73, 86, 69, 128, 79, 80, 69, 206, 72, 73, 82, 65,
+ 71, 65, 78, 193, 75, 65, 128, 77, 69, 68, 73, 65, 204, 84, 69, 76, 85,
+ 71, 213, 74, 85, 78, 71, 83, 69, 79, 78, 199, 85, 80, 87, 65, 82, 68,
+ 211, 65, 82, 77, 69, 78, 73, 65, 206, 66, 69, 78, 71, 65, 76, 201, 71,
+ 76, 65, 71, 79, 76, 73, 84, 73, 195, 83, 72, 65, 82, 65, 68, 193, 78, 69,
+ 71, 65, 84, 73, 86, 197, 68, 79, 87, 78, 87, 65, 82, 68, 211, 74, 69, 69,
+ 205, 80, 65, 128, 83, 73, 68, 68, 72, 65, 205, 68, 79, 84, 211, 73, 68,
+ 69, 79, 71, 82, 65, 80, 200, 74, 65, 86, 65, 78, 69, 83, 197, 67, 85, 82,
+ 83, 73, 86, 197, 77, 65, 128, 79, 82, 73, 89, 193, 83, 128, 83, 73, 88,
+ 128, 87, 69, 83, 84, 45, 67, 82, 69, 197, 82, 85, 78, 73, 195, 89, 65,
+ 128, 69, 73, 71, 72, 84, 128, 75, 65, 78, 78, 65, 68, 193, 78, 65, 128,
+ 90, 90, 89, 88, 128, 90, 90, 89, 84, 128, 90, 90, 89, 82, 88, 128, 90,
+ 90, 89, 82, 128, 90, 90, 89, 80, 128, 90, 90, 89, 65, 128, 90, 90, 89,
+ 128, 90, 90, 85, 88, 128, 90, 90, 85, 82, 88, 128, 90, 90, 85, 82, 128,
+ 90, 90, 85, 80, 128, 90, 90, 85, 128, 90, 90, 83, 89, 65, 128, 90, 90,
+ 83, 65, 128, 90, 90, 79, 88, 128, 90, 90, 79, 80, 128, 90, 90, 79, 128,
+ 90, 90, 73, 88, 128, 90, 90, 73, 84, 128, 90, 90, 73, 80, 128, 90, 90,
+ 73, 69, 88, 128, 90, 90, 73, 69, 84, 128, 90, 90, 73, 69, 80, 128, 90,
+ 90, 73, 69, 128, 90, 90, 73, 128, 90, 90, 69, 88, 128, 90, 90, 69, 80,
+ 128, 90, 90, 69, 69, 128, 90, 90, 69, 128, 90, 90, 65, 88, 128, 90, 90,
+ 65, 84, 128, 90, 90, 65, 80, 128, 90, 90, 65, 65, 128, 90, 90, 65, 128,
+ 90, 89, 71, 79, 83, 128, 90, 87, 83, 80, 128, 90, 87, 78, 74, 128, 90,
+ 87, 78, 66, 83, 80, 128, 90, 87, 74, 128, 90, 87, 202, 90, 87, 65, 82,
65, 75, 65, 89, 128, 90, 87, 65, 128, 90, 85, 84, 128, 90, 85, 79, 88,
128, 90, 85, 79, 80, 128, 90, 85, 79, 128, 90, 85, 77, 128, 90, 85, 66,
- 85, 82, 128, 90, 85, 53, 128, 90, 85, 181, 90, 83, 72, 65, 128, 90, 82,
- 65, 128, 90, 81, 65, 80, 72, 193, 90, 79, 84, 128, 90, 79, 79, 128, 90,
- 79, 65, 128, 90, 76, 65, 77, 193, 90, 76, 65, 128, 90, 76, 193, 90, 74,
- 69, 128, 90, 73, 90, 50, 128, 90, 73, 81, 65, 65, 128, 90, 73, 78, 79,
- 82, 128, 90, 73, 76, 68, 69, 128, 90, 73, 71, 90, 65, 199, 90, 73, 71,
- 128, 90, 73, 68, 193, 90, 73, 66, 128, 90, 73, 194, 90, 73, 51, 128, 90,
- 201, 90, 72, 89, 88, 128, 90, 72, 89, 84, 128, 90, 72, 89, 82, 88, 128,
- 90, 72, 89, 82, 128, 90, 72, 89, 80, 128, 90, 72, 89, 128, 90, 72, 87,
- 69, 128, 90, 72, 87, 65, 128, 90, 72, 85, 88, 128, 90, 72, 85, 84, 128,
- 90, 72, 85, 82, 88, 128, 90, 72, 85, 82, 128, 90, 72, 85, 80, 128, 90,
- 72, 85, 79, 88, 128, 90, 72, 85, 79, 80, 128, 90, 72, 85, 79, 128, 90,
- 72, 85, 128, 90, 72, 79, 88, 128, 90, 72, 79, 84, 128, 90, 72, 79, 80,
- 128, 90, 72, 79, 79, 128, 90, 72, 79, 128, 90, 72, 73, 86, 69, 84, 69,
- 128, 90, 72, 73, 128, 90, 72, 69, 88, 128, 90, 72, 69, 84, 128, 90, 72,
- 69, 80, 128, 90, 72, 69, 69, 128, 90, 72, 69, 128, 90, 72, 197, 90, 72,
- 65, 88, 128, 90, 72, 65, 84, 128, 90, 72, 65, 82, 128, 90, 72, 65, 80,
- 128, 90, 72, 65, 73, 78, 128, 90, 72, 65, 65, 128, 90, 72, 65, 128, 90,
- 72, 128, 90, 69, 84, 65, 128, 90, 69, 82, 79, 128, 90, 69, 82, 207, 90,
- 69, 78, 128, 90, 69, 77, 76, 89, 65, 128, 90, 69, 77, 76, 74, 65, 128,
- 90, 69, 50, 128, 90, 197, 90, 65, 89, 78, 128, 90, 65, 89, 73, 78, 128,
- 90, 65, 89, 73, 206, 90, 65, 86, 73, 89, 65, 78, 73, 128, 90, 65, 84, 65,
- 128, 90, 65, 82, 81, 65, 128, 90, 65, 81, 69, 198, 90, 65, 77, 88, 128,
- 90, 65, 204, 90, 65, 73, 78, 128, 90, 65, 73, 206, 90, 65, 73, 128, 90,
- 65, 72, 128, 90, 65, 200, 90, 65, 71, 128, 90, 65, 69, 70, 128, 90, 48,
- 49, 54, 72, 128, 90, 48, 49, 54, 71, 128, 90, 48, 49, 54, 70, 128, 90,
- 48, 49, 54, 69, 128, 90, 48, 49, 54, 68, 128, 90, 48, 49, 54, 67, 128,
- 90, 48, 49, 54, 66, 128, 90, 48, 49, 54, 65, 128, 90, 48, 49, 54, 128,
- 90, 48, 49, 53, 73, 128, 90, 48, 49, 53, 72, 128, 90, 48, 49, 53, 71,
- 128, 90, 48, 49, 53, 70, 128, 90, 48, 49, 53, 69, 128, 90, 48, 49, 53,
- 68, 128, 90, 48, 49, 53, 67, 128, 90, 48, 49, 53, 66, 128, 90, 48, 49,
- 53, 65, 128, 90, 48, 49, 53, 128, 90, 48, 49, 52, 128, 90, 48, 49, 51,
- 128, 90, 48, 49, 50, 128, 90, 48, 49, 49, 128, 90, 48, 49, 48, 128, 90,
- 48, 48, 57, 128, 90, 48, 48, 56, 128, 90, 48, 48, 55, 128, 90, 48, 48,
- 54, 128, 90, 48, 48, 53, 65, 128, 90, 48, 48, 53, 128, 90, 48, 48, 52,
- 65, 128, 90, 48, 48, 52, 128, 90, 48, 48, 51, 66, 128, 90, 48, 48, 51,
- 65, 128, 90, 48, 48, 51, 128, 90, 48, 48, 50, 68, 128, 90, 48, 48, 50,
- 67, 128, 90, 48, 48, 50, 66, 128, 90, 48, 48, 50, 65, 128, 90, 48, 48,
- 50, 128, 90, 48, 48, 49, 128, 90, 128, 218, 89, 89, 88, 128, 89, 89, 84,
- 128, 89, 89, 82, 88, 128, 89, 89, 82, 128, 89, 89, 80, 128, 89, 89, 69,
- 128, 89, 89, 65, 65, 128, 89, 89, 65, 128, 89, 89, 128, 89, 87, 79, 79,
- 128, 89, 87, 79, 128, 89, 87, 73, 73, 128, 89, 87, 73, 128, 89, 87, 69,
- 128, 89, 87, 65, 65, 128, 89, 87, 65, 128, 89, 86, 128, 89, 85, 88, 128,
- 89, 85, 87, 79, 81, 128, 89, 85, 85, 75, 65, 76, 69, 65, 80, 73, 78, 84,
- 85, 128, 89, 85, 85, 128, 89, 85, 84, 128, 89, 85, 83, 128, 89, 85, 211,
- 89, 85, 82, 88, 128, 89, 85, 82, 128, 89, 85, 81, 128, 89, 85, 209, 89,
- 85, 80, 128, 89, 85, 79, 88, 128, 89, 85, 79, 84, 128, 89, 85, 79, 80,
- 128, 89, 85, 79, 77, 128, 89, 85, 79, 128, 89, 85, 78, 128, 89, 85, 77,
- 128, 89, 85, 69, 81, 128, 89, 85, 69, 128, 89, 85, 68, 72, 128, 89, 85,
- 68, 200, 89, 85, 65, 78, 128, 89, 85, 65, 69, 78, 128, 89, 85, 45, 89,
- 69, 79, 128, 89, 85, 45, 89, 69, 128, 89, 85, 45, 85, 128, 89, 85, 45,
- 79, 128, 89, 85, 45, 73, 128, 89, 85, 45, 69, 79, 128, 89, 85, 45, 69,
- 128, 89, 85, 45, 65, 69, 128, 89, 85, 45, 65, 128, 89, 85, 128, 89, 213,
- 89, 80, 83, 73, 76, 73, 128, 89, 80, 79, 82, 82, 79, 73, 128, 89, 80, 79,
- 75, 82, 73, 83, 73, 83, 128, 89, 80, 79, 75, 82, 73, 83, 73, 211, 89, 80,
- 79, 71, 69, 71, 82, 65, 77, 77, 69, 78, 73, 128, 89, 79, 89, 128, 89, 79,
- 88, 128, 89, 79, 85, 84, 72, 70, 85, 76, 78, 69, 83, 83, 128, 89, 79, 85,
- 84, 72, 70, 85, 204, 89, 79, 84, 128, 89, 79, 82, 73, 128, 89, 79, 81,
- 128, 89, 79, 209, 89, 79, 80, 128, 89, 79, 79, 128, 89, 79, 77, 79, 128,
- 89, 79, 71, 72, 128, 89, 79, 68, 72, 128, 89, 79, 68, 128, 89, 79, 196,
- 89, 79, 65, 128, 89, 79, 45, 89, 69, 79, 128, 89, 79, 45, 89, 65, 69,
- 128, 89, 79, 45, 89, 65, 128, 89, 79, 45, 79, 128, 89, 79, 45, 73, 128,
- 89, 79, 45, 69, 79, 128, 89, 79, 45, 65, 69, 128, 89, 79, 45, 65, 128,
- 89, 79, 128, 89, 207, 89, 73, 90, 69, 84, 128, 89, 73, 88, 128, 89, 73,
- 87, 78, 128, 89, 73, 84, 128, 89, 73, 80, 128, 89, 73, 78, 71, 128, 89,
- 73, 73, 128, 89, 73, 199, 89, 73, 69, 88, 128, 89, 73, 69, 84, 128, 89,
- 73, 69, 80, 128, 89, 73, 69, 69, 128, 89, 73, 69, 128, 89, 73, 68, 68,
- 73, 83, 200, 89, 73, 45, 85, 128, 89, 73, 128, 89, 70, 69, 83, 73, 83,
- 128, 89, 70, 69, 83, 73, 211, 89, 70, 69, 206, 89, 69, 89, 128, 89, 69,
- 87, 128, 89, 69, 85, 88, 128, 89, 69, 85, 82, 65, 69, 128, 89, 69, 85,
- 81, 128, 89, 69, 85, 77, 128, 89, 69, 85, 65, 69, 84, 128, 89, 69, 85,
- 65, 69, 128, 89, 69, 84, 73, 86, 128, 89, 69, 83, 84, 85, 128, 89, 69,
- 83, 73, 69, 85, 78, 71, 45, 83, 73, 79, 83, 128, 89, 69, 83, 73, 69, 85,
- 78, 71, 45, 80, 65, 78, 83, 73, 79, 83, 128, 89, 69, 83, 73, 69, 85, 78,
- 71, 45, 77, 73, 69, 85, 77, 128, 89, 69, 83, 73, 69, 85, 78, 71, 45, 72,
- 73, 69, 85, 72, 128, 89, 69, 83, 73, 69, 85, 78, 71, 128, 89, 69, 82, 85,
- 128, 89, 69, 82, 213, 89, 69, 82, 73, 128, 89, 69, 82, 65, 200, 89, 69,
- 82, 128, 89, 69, 79, 82, 73, 78, 72, 73, 69, 85, 72, 128, 89, 69, 79, 45,
- 89, 65, 128, 89, 69, 79, 45, 85, 128, 89, 69, 79, 45, 79, 128, 89, 69,
- 78, 73, 83, 69, 201, 89, 69, 78, 65, 80, 128, 89, 69, 78, 128, 89, 69,
- 206, 89, 69, 76, 76, 79, 87, 128, 89, 69, 76, 76, 79, 215, 89, 69, 72,
- 128, 89, 69, 69, 128, 89, 69, 65, 210, 89, 69, 65, 128, 89, 65, 90, 90,
- 128, 89, 65, 90, 72, 128, 89, 65, 90, 128, 89, 65, 89, 65, 78, 78, 65,
- 128, 89, 65, 89, 128, 89, 65, 87, 128, 89, 65, 86, 128, 89, 65, 85, 128,
- 89, 65, 84, 84, 128, 89, 65, 84, 73, 128, 89, 65, 84, 72, 128, 89, 65,
- 84, 128, 89, 65, 83, 83, 128, 89, 65, 83, 72, 128, 89, 65, 83, 128, 89,
- 65, 82, 82, 128, 89, 65, 82, 128, 89, 65, 210, 89, 65, 81, 128, 89, 65,
- 80, 128, 89, 65, 78, 83, 65, 89, 65, 128, 89, 65, 78, 71, 128, 89, 65,
- 78, 199, 89, 65, 78, 128, 89, 65, 77, 79, 75, 128, 89, 65, 77, 65, 75,
- 75, 65, 78, 128, 89, 65, 77, 128, 89, 65, 76, 128, 89, 65, 75, 72, 72,
- 128, 89, 65, 75, 72, 128, 89, 65, 75, 65, 83, 72, 128, 89, 65, 75, 128,
- 89, 65, 74, 85, 82, 86, 69, 68, 73, 195, 89, 65, 74, 128, 89, 65, 73,
- 128, 89, 65, 72, 72, 128, 89, 65, 72, 128, 89, 65, 71, 78, 128, 89, 65,
- 71, 72, 72, 128, 89, 65, 71, 72, 128, 89, 65, 71, 128, 89, 65, 70, 213,
- 89, 65, 70, 128, 89, 65, 69, 77, 77, 65, 69, 128, 89, 65, 68, 72, 128,
- 89, 65, 68, 68, 72, 128, 89, 65, 68, 68, 128, 89, 65, 68, 128, 89, 65,
- 67, 72, 128, 89, 65, 66, 72, 128, 89, 65, 66, 128, 89, 65, 65, 82, 85,
- 128, 89, 65, 65, 73, 128, 89, 65, 65, 68, 79, 128, 89, 65, 45, 89, 79,
- 128, 89, 65, 45, 85, 128, 89, 65, 45, 79, 128, 89, 48, 48, 56, 128, 89,
- 48, 48, 55, 128, 89, 48, 48, 54, 128, 89, 48, 48, 53, 128, 89, 48, 48,
- 52, 128, 89, 48, 48, 51, 128, 89, 48, 48, 50, 128, 89, 48, 48, 49, 65,
- 128, 89, 48, 48, 49, 128, 89, 45, 67, 82, 69, 197, 88, 89, 88, 128, 88,
- 89, 85, 128, 88, 89, 84, 128, 88, 89, 82, 88, 128, 88, 89, 82, 128, 88,
- 89, 80, 128, 88, 89, 79, 128, 88, 89, 73, 128, 88, 89, 69, 69, 128, 88,
- 89, 69, 128, 88, 89, 65, 65, 128, 88, 89, 65, 128, 88, 89, 128, 88, 87,
- 73, 128, 88, 87, 69, 69, 128, 88, 87, 69, 128, 88, 87, 65, 65, 128, 88,
- 87, 65, 128, 88, 86, 69, 128, 88, 86, 65, 128, 88, 85, 79, 88, 128, 88,
- 85, 79, 128, 88, 85, 128, 88, 83, 72, 65, 65, 89, 65, 84, 72, 73, 89, 65,
- 128, 88, 79, 88, 128, 88, 79, 84, 128, 88, 79, 82, 128, 88, 79, 80, 128,
- 88, 79, 65, 128, 88, 79, 128, 88, 73, 88, 128, 88, 73, 84, 128, 88, 73,
- 82, 79, 206, 88, 73, 80, 128, 88, 73, 69, 88, 128, 88, 73, 69, 84, 128,
- 88, 73, 69, 80, 128, 88, 73, 69, 128, 88, 73, 128, 88, 71, 128, 88, 69,
- 83, 84, 69, 211, 88, 69, 72, 128, 88, 69, 69, 128, 88, 69, 128, 88, 65,
- 78, 128, 88, 65, 65, 128, 88, 65, 128, 88, 48, 48, 56, 65, 128, 88, 48,
- 48, 56, 128, 88, 48, 48, 55, 128, 88, 48, 48, 54, 65, 128, 88, 48, 48,
- 54, 128, 88, 48, 48, 53, 128, 88, 48, 48, 52, 66, 128, 88, 48, 48, 52,
- 65, 128, 88, 48, 48, 52, 128, 88, 48, 48, 51, 128, 88, 48, 48, 50, 128,
- 88, 48, 48, 49, 128, 87, 90, 128, 87, 89, 78, 78, 128, 87, 89, 78, 206,
- 87, 86, 128, 87, 85, 80, 128, 87, 85, 79, 88, 128, 87, 85, 79, 80, 128,
- 87, 85, 79, 128, 87, 85, 78, 74, 207, 87, 85, 78, 128, 87, 85, 76, 85,
- 128, 87, 85, 76, 213, 87, 85, 69, 128, 87, 85, 65, 69, 84, 128, 87, 85,
- 65, 69, 78, 128, 87, 85, 128, 87, 82, 217, 87, 82, 79, 78, 71, 128, 87,
- 82, 73, 84, 73, 78, 199, 87, 82, 69, 78, 67, 72, 128, 87, 82, 69, 65, 84,
- 200, 87, 82, 65, 80, 80, 69, 196, 87, 82, 65, 80, 128, 87, 79, 88, 128,
- 87, 79, 82, 82, 73, 69, 196, 87, 79, 82, 75, 69, 82, 128, 87, 79, 82, 75,
- 128, 87, 79, 82, 203, 87, 79, 82, 68, 83, 80, 65, 67, 69, 128, 87, 79,
- 82, 196, 87, 79, 80, 128, 87, 79, 79, 78, 128, 87, 79, 79, 76, 128, 87,
- 79, 79, 68, 83, 45, 67, 82, 69, 197, 87, 79, 79, 68, 128, 87, 79, 78,
- 128, 87, 79, 206, 87, 79, 77, 69, 78, 211, 87, 79, 77, 69, 206, 87, 79,
- 77, 65, 78, 211, 87, 79, 77, 65, 78, 128, 87, 79, 77, 65, 206, 87, 79,
- 76, 79, 83, 79, 128, 87, 79, 76, 198, 87, 79, 69, 128, 87, 79, 65, 128,
- 87, 73, 84, 72, 79, 85, 212, 87, 73, 84, 72, 73, 78, 128, 87, 73, 78, 84,
- 69, 82, 128, 87, 73, 78, 75, 73, 78, 199, 87, 73, 78, 74, 65, 128, 87,
- 73, 78, 71, 83, 128, 87, 73, 78, 69, 128, 87, 73, 78, 197, 87, 73, 78,
- 68, 85, 128, 87, 73, 78, 68, 128, 87, 73, 78, 196, 87, 73, 78, 128, 87,
- 73, 71, 78, 89, 65, 78, 128, 87, 73, 71, 71, 76, 217, 87, 73, 68, 69, 45,
- 72, 69, 65, 68, 69, 196, 87, 73, 68, 197, 87, 73, 65, 78, 71, 87, 65, 65,
- 75, 128, 87, 73, 65, 78, 71, 128, 87, 72, 79, 76, 197, 87, 72, 73, 84,
- 69, 45, 70, 69, 65, 84, 72, 69, 82, 69, 196, 87, 72, 73, 84, 69, 128, 87,
- 72, 69, 69, 76, 69, 196, 87, 72, 69, 69, 76, 67, 72, 65, 73, 210, 87, 72,
- 69, 69, 76, 128, 87, 72, 69, 69, 204, 87, 72, 69, 65, 84, 128, 87, 72,
- 65, 76, 69, 128, 87, 71, 128, 87, 69, 88, 128, 87, 69, 85, 88, 128, 87,
- 69, 83, 84, 69, 82, 206, 87, 69, 83, 84, 128, 87, 69, 83, 212, 87, 69,
- 80, 128, 87, 69, 79, 128, 87, 69, 78, 128, 87, 69, 76, 76, 128, 87, 69,
- 73, 71, 72, 212, 87, 69, 73, 69, 82, 83, 84, 82, 65, 83, 211, 87, 69, 69,
- 78, 128, 87, 69, 68, 71, 69, 45, 84, 65, 73, 76, 69, 196, 87, 69, 68, 68,
- 73, 78, 71, 128, 87, 69, 65, 82, 217, 87, 69, 65, 80, 79, 78, 128, 87,
- 67, 128, 87, 66, 128, 87, 65, 89, 128, 87, 65, 217, 87, 65, 88, 73, 78,
- 199, 87, 65, 88, 128, 87, 65, 87, 45, 65, 89, 73, 78, 45, 82, 69, 83, 72,
- 128, 87, 65, 87, 128, 87, 65, 215, 87, 65, 86, 217, 87, 65, 86, 73, 78,
- 199, 87, 65, 86, 69, 83, 128, 87, 65, 86, 69, 128, 87, 65, 86, 197, 87,
- 65, 85, 128, 87, 65, 84, 84, 79, 128, 87, 65, 84, 69, 82, 77, 69, 76, 79,
- 78, 128, 87, 65, 84, 69, 82, 128, 87, 65, 84, 69, 210, 87, 65, 84, 67,
- 72, 128, 87, 65, 84, 128, 87, 65, 83, 84, 73, 78, 71, 128, 87, 65, 83,
- 83, 65, 76, 76, 65, 77, 128, 87, 65, 83, 76, 65, 128, 87, 65, 83, 76,
- 193, 87, 65, 83, 65, 76, 76, 65, 77, 128, 87, 65, 83, 65, 76, 76, 65,
- 205, 87, 65, 82, 78, 73, 78, 199, 87, 65, 80, 128, 87, 65, 78, 73, 78,
- 199, 87, 65, 78, 71, 75, 85, 79, 81, 128, 87, 65, 78, 68, 69, 82, 69, 82,
- 128, 87, 65, 78, 128, 87, 65, 76, 76, 128, 87, 65, 76, 75, 128, 87, 65,
- 76, 203, 87, 65, 73, 84, 73, 78, 71, 128, 87, 65, 73, 128, 87, 65, 69,
- 78, 128, 87, 65, 69, 128, 87, 65, 65, 86, 85, 128, 87, 48, 50, 53, 128,
+ 85, 82, 128, 90, 85, 53, 128, 90, 85, 181, 90, 213, 90, 83, 72, 65, 128,
+ 90, 82, 65, 128, 90, 81, 65, 80, 72, 193, 90, 79, 84, 128, 90, 79, 79,
+ 128, 90, 79, 65, 128, 90, 76, 65, 77, 193, 90, 76, 65, 128, 90, 76, 193,
+ 90, 74, 69, 128, 90, 73, 90, 50, 128, 90, 73, 81, 65, 65, 128, 90, 73,
+ 80, 80, 69, 82, 45, 77, 79, 85, 84, 200, 90, 73, 78, 79, 82, 128, 90, 73,
+ 76, 68, 69, 128, 90, 73, 71, 90, 65, 199, 90, 73, 71, 128, 90, 73, 68,
+ 193, 90, 73, 66, 128, 90, 73, 194, 90, 73, 51, 128, 90, 201, 90, 72, 89,
+ 88, 128, 90, 72, 89, 84, 128, 90, 72, 89, 82, 88, 128, 90, 72, 89, 82,
+ 128, 90, 72, 89, 80, 128, 90, 72, 89, 128, 90, 72, 87, 69, 128, 90, 72,
+ 87, 65, 128, 90, 72, 85, 88, 128, 90, 72, 85, 84, 128, 90, 72, 85, 82,
+ 88, 128, 90, 72, 85, 82, 128, 90, 72, 85, 80, 128, 90, 72, 85, 79, 88,
+ 128, 90, 72, 85, 79, 80, 128, 90, 72, 85, 79, 128, 90, 72, 85, 128, 90,
+ 72, 79, 88, 128, 90, 72, 79, 84, 128, 90, 72, 79, 80, 128, 90, 72, 79,
+ 79, 128, 90, 72, 79, 73, 128, 90, 72, 79, 128, 90, 72, 73, 86, 69, 84,
+ 69, 128, 90, 72, 73, 76, 128, 90, 72, 73, 128, 90, 72, 69, 88, 128, 90,
+ 72, 69, 84, 128, 90, 72, 69, 80, 128, 90, 72, 69, 69, 128, 90, 72, 69,
+ 128, 90, 72, 197, 90, 72, 65, 89, 73, 78, 128, 90, 72, 65, 88, 128, 90,
+ 72, 65, 84, 128, 90, 72, 65, 82, 128, 90, 72, 65, 80, 128, 90, 72, 65,
+ 73, 78, 128, 90, 72, 65, 65, 128, 90, 72, 65, 128, 90, 72, 128, 90, 69,
+ 84, 65, 128, 90, 69, 82, 79, 128, 90, 69, 82, 207, 90, 69, 78, 128, 90,
+ 69, 77, 76, 89, 65, 128, 90, 69, 77, 76, 74, 65, 128, 90, 69, 50, 128,
+ 90, 197, 90, 65, 89, 78, 128, 90, 65, 89, 73, 78, 128, 90, 65, 89, 73,
+ 206, 90, 65, 86, 73, 89, 65, 78, 73, 128, 90, 65, 84, 65, 128, 90, 65,
+ 82, 81, 65, 128, 90, 65, 82, 76, 128, 90, 65, 81, 69, 198, 90, 65, 77,
+ 88, 128, 90, 65, 204, 90, 65, 73, 78, 128, 90, 65, 73, 206, 90, 65, 73,
+ 128, 90, 65, 72, 128, 90, 65, 200, 90, 65, 71, 128, 90, 65, 69, 70, 128,
+ 90, 65, 55, 128, 90, 193, 90, 48, 49, 54, 72, 128, 90, 48, 49, 54, 71,
+ 128, 90, 48, 49, 54, 70, 128, 90, 48, 49, 54, 69, 128, 90, 48, 49, 54,
+ 68, 128, 90, 48, 49, 54, 67, 128, 90, 48, 49, 54, 66, 128, 90, 48, 49,
+ 54, 65, 128, 90, 48, 49, 54, 128, 90, 48, 49, 53, 73, 128, 90, 48, 49,
+ 53, 72, 128, 90, 48, 49, 53, 71, 128, 90, 48, 49, 53, 70, 128, 90, 48,
+ 49, 53, 69, 128, 90, 48, 49, 53, 68, 128, 90, 48, 49, 53, 67, 128, 90,
+ 48, 49, 53, 66, 128, 90, 48, 49, 53, 65, 128, 90, 48, 49, 53, 128, 90,
+ 48, 49, 52, 128, 90, 48, 49, 51, 128, 90, 48, 49, 50, 128, 90, 48, 49,
+ 49, 128, 90, 48, 49, 48, 128, 90, 48, 48, 57, 128, 90, 48, 48, 56, 128,
+ 90, 48, 48, 55, 128, 90, 48, 48, 54, 128, 90, 48, 48, 53, 65, 128, 90,
+ 48, 48, 53, 128, 90, 48, 48, 52, 65, 128, 90, 48, 48, 52, 128, 90, 48,
+ 48, 51, 66, 128, 90, 48, 48, 51, 65, 128, 90, 48, 48, 51, 128, 90, 48,
+ 48, 50, 68, 128, 90, 48, 48, 50, 67, 128, 90, 48, 48, 50, 66, 128, 90,
+ 48, 48, 50, 65, 128, 90, 48, 48, 50, 128, 90, 48, 48, 49, 128, 90, 128,
+ 218, 89, 89, 88, 128, 89, 89, 84, 128, 89, 89, 82, 88, 128, 89, 89, 82,
+ 128, 89, 89, 80, 128, 89, 89, 69, 128, 89, 89, 65, 65, 128, 89, 89, 65,
+ 128, 89, 89, 128, 89, 87, 79, 79, 128, 89, 87, 79, 128, 89, 87, 73, 73,
+ 128, 89, 87, 73, 128, 89, 87, 69, 128, 89, 87, 65, 65, 128, 89, 87, 65,
+ 128, 89, 86, 128, 89, 85, 88, 128, 89, 85, 87, 79, 81, 128, 89, 85, 85,
+ 75, 65, 76, 69, 65, 80, 73, 78, 84, 85, 128, 89, 85, 85, 128, 89, 85, 84,
+ 128, 89, 85, 83, 128, 89, 85, 211, 89, 85, 82, 88, 128, 89, 85, 82, 128,
+ 89, 85, 81, 128, 89, 85, 209, 89, 85, 80, 128, 89, 85, 79, 88, 128, 89,
+ 85, 79, 84, 128, 89, 85, 79, 80, 128, 89, 85, 79, 77, 128, 89, 85, 79,
+ 128, 89, 85, 78, 128, 89, 85, 77, 128, 89, 85, 74, 128, 89, 85, 69, 81,
+ 128, 89, 85, 69, 128, 89, 85, 68, 72, 128, 89, 85, 68, 200, 89, 85, 65,
+ 78, 128, 89, 85, 65, 69, 78, 128, 89, 85, 45, 89, 69, 79, 128, 89, 85,
+ 45, 89, 69, 128, 89, 85, 45, 85, 128, 89, 85, 45, 79, 128, 89, 85, 45,
+ 73, 128, 89, 85, 45, 69, 79, 128, 89, 85, 45, 69, 128, 89, 85, 45, 65,
+ 69, 128, 89, 85, 45, 65, 128, 89, 85, 128, 89, 213, 89, 82, 89, 128, 89,
+ 80, 83, 73, 76, 73, 128, 89, 80, 79, 82, 82, 79, 73, 128, 89, 80, 79, 75,
+ 82, 73, 83, 73, 83, 128, 89, 80, 79, 75, 82, 73, 83, 73, 211, 89, 80, 79,
+ 71, 69, 71, 82, 65, 77, 77, 69, 78, 73, 128, 89, 79, 89, 128, 89, 79, 88,
+ 128, 89, 79, 87, 68, 128, 89, 79, 85, 84, 72, 70, 85, 76, 78, 69, 83, 83,
+ 128, 89, 79, 85, 84, 72, 70, 85, 204, 89, 79, 84, 128, 89, 79, 82, 73,
+ 128, 89, 79, 81, 128, 89, 79, 209, 89, 79, 80, 128, 89, 79, 79, 128, 89,
+ 79, 77, 79, 128, 89, 79, 71, 72, 128, 89, 79, 68, 72, 128, 89, 79, 68,
+ 128, 89, 79, 196, 89, 79, 65, 128, 89, 79, 45, 89, 69, 79, 128, 89, 79,
+ 45, 89, 65, 69, 128, 89, 79, 45, 89, 65, 128, 89, 79, 45, 79, 128, 89,
+ 79, 45, 73, 128, 89, 79, 45, 69, 79, 128, 89, 79, 45, 65, 69, 128, 89,
+ 79, 45, 65, 128, 89, 79, 128, 89, 207, 89, 73, 90, 69, 84, 128, 89, 73,
+ 88, 128, 89, 73, 87, 78, 128, 89, 73, 84, 128, 89, 73, 80, 128, 89, 73,
+ 78, 71, 128, 89, 73, 73, 128, 89, 73, 199, 89, 73, 69, 88, 128, 89, 73,
+ 69, 84, 128, 89, 73, 69, 80, 128, 89, 73, 69, 69, 128, 89, 73, 69, 128,
+ 89, 73, 68, 68, 73, 83, 200, 89, 73, 45, 85, 128, 89, 73, 128, 89, 70,
+ 69, 83, 73, 83, 128, 89, 70, 69, 83, 73, 211, 89, 70, 69, 206, 89, 69,
+ 89, 128, 89, 69, 87, 128, 89, 69, 85, 88, 128, 89, 69, 85, 82, 65, 69,
+ 128, 89, 69, 85, 81, 128, 89, 69, 85, 77, 128, 89, 69, 85, 65, 69, 84,
+ 128, 89, 69, 85, 65, 69, 128, 89, 69, 84, 73, 86, 128, 89, 69, 83, 84,
+ 85, 128, 89, 69, 83, 73, 69, 85, 78, 71, 45, 83, 73, 79, 83, 128, 89, 69,
+ 83, 73, 69, 85, 78, 71, 45, 80, 65, 78, 83, 73, 79, 83, 128, 89, 69, 83,
+ 73, 69, 85, 78, 71, 45, 77, 73, 69, 85, 77, 128, 89, 69, 83, 73, 69, 85,
+ 78, 71, 45, 72, 73, 69, 85, 72, 128, 89, 69, 83, 73, 69, 85, 78, 71, 128,
+ 89, 69, 82, 85, 128, 89, 69, 82, 213, 89, 69, 82, 73, 128, 89, 69, 82,
+ 65, 200, 89, 69, 82, 128, 89, 69, 79, 82, 73, 78, 72, 73, 69, 85, 72,
+ 128, 89, 69, 79, 45, 89, 65, 128, 89, 69, 79, 45, 85, 128, 89, 69, 79,
+ 45, 79, 128, 89, 69, 78, 73, 83, 69, 201, 89, 69, 78, 65, 80, 128, 89,
+ 69, 78, 128, 89, 69, 206, 89, 69, 76, 76, 79, 87, 128, 89, 69, 76, 76,
+ 79, 215, 89, 69, 73, 78, 128, 89, 69, 72, 128, 89, 69, 69, 71, 128, 89,
+ 69, 69, 128, 89, 69, 65, 210, 89, 69, 65, 128, 89, 65, 90, 90, 128, 89,
+ 65, 90, 72, 128, 89, 65, 90, 128, 89, 65, 89, 68, 128, 89, 65, 89, 65,
+ 78, 78, 65, 128, 89, 65, 89, 128, 89, 65, 87, 78, 128, 89, 65, 87, 128,
+ 89, 65, 86, 128, 89, 65, 85, 128, 89, 65, 84, 84, 128, 89, 65, 84, 73,
+ 128, 89, 65, 84, 72, 128, 89, 65, 84, 128, 89, 65, 83, 83, 128, 89, 65,
+ 83, 72, 128, 89, 65, 83, 128, 89, 65, 82, 82, 128, 89, 65, 82, 128, 89,
+ 65, 210, 89, 65, 81, 128, 89, 65, 80, 128, 89, 65, 78, 83, 65, 89, 65,
+ 128, 89, 65, 78, 71, 128, 89, 65, 78, 199, 89, 65, 78, 128, 89, 65, 77,
+ 79, 75, 128, 89, 65, 77, 65, 75, 75, 65, 78, 128, 89, 65, 77, 128, 89,
+ 65, 76, 128, 89, 65, 75, 72, 72, 128, 89, 65, 75, 72, 128, 89, 65, 75,
+ 65, 83, 72, 128, 89, 65, 75, 128, 89, 65, 74, 85, 82, 86, 69, 68, 73,
+ 195, 89, 65, 74, 128, 89, 65, 73, 128, 89, 65, 72, 72, 128, 89, 65, 72,
+ 128, 89, 65, 71, 78, 128, 89, 65, 71, 72, 72, 128, 89, 65, 71, 72, 128,
+ 89, 65, 71, 128, 89, 65, 70, 213, 89, 65, 70, 128, 89, 65, 69, 77, 77,
+ 65, 69, 128, 89, 65, 68, 72, 128, 89, 65, 68, 68, 72, 128, 89, 65, 68,
+ 68, 128, 89, 65, 68, 128, 89, 65, 67, 72, 128, 89, 65, 66, 72, 128, 89,
+ 65, 66, 128, 89, 65, 65, 82, 85, 128, 89, 65, 65, 73, 128, 89, 65, 65,
+ 68, 79, 128, 89, 65, 45, 89, 79, 128, 89, 65, 45, 85, 128, 89, 65, 45,
+ 79, 128, 89, 48, 48, 56, 128, 89, 48, 48, 55, 128, 89, 48, 48, 54, 128,
+ 89, 48, 48, 53, 128, 89, 48, 48, 52, 128, 89, 48, 48, 51, 128, 89, 48,
+ 48, 50, 128, 89, 48, 48, 49, 65, 128, 89, 48, 48, 49, 128, 89, 45, 67,
+ 82, 69, 197, 88, 89, 88, 128, 88, 89, 85, 128, 88, 89, 84, 128, 88, 89,
+ 82, 88, 128, 88, 89, 82, 128, 88, 89, 80, 128, 88, 89, 79, 79, 74, 128,
+ 88, 89, 79, 79, 128, 88, 89, 79, 128, 88, 89, 73, 128, 88, 89, 69, 69,
+ 205, 88, 89, 69, 69, 128, 88, 89, 69, 128, 88, 89, 65, 65, 128, 88, 89,
+ 65, 128, 88, 89, 128, 88, 87, 73, 128, 88, 87, 69, 69, 128, 88, 87, 69,
+ 128, 88, 87, 65, 65, 128, 88, 87, 65, 128, 88, 87, 128, 88, 86, 69, 128,
+ 88, 86, 65, 128, 88, 85, 79, 88, 128, 88, 85, 79, 128, 88, 85, 128, 88,
+ 83, 72, 65, 65, 89, 65, 84, 72, 73, 89, 65, 128, 88, 79, 88, 128, 88, 79,
+ 84, 128, 88, 79, 82, 128, 88, 79, 80, 72, 128, 88, 79, 80, 128, 88, 79,
+ 65, 128, 88, 79, 128, 88, 73, 88, 128, 88, 73, 84, 128, 88, 73, 82, 79,
+ 206, 88, 73, 80, 128, 88, 73, 69, 88, 128, 88, 73, 69, 84, 128, 88, 73,
+ 69, 80, 128, 88, 73, 69, 128, 88, 73, 65, 66, 128, 88, 73, 128, 88, 71,
+ 128, 88, 69, 89, 78, 128, 88, 69, 83, 84, 69, 211, 88, 69, 72, 128, 88,
+ 69, 69, 128, 88, 69, 128, 88, 65, 85, 83, 128, 88, 65, 85, 128, 88, 65,
+ 80, 72, 128, 88, 65, 78, 128, 88, 65, 65, 128, 88, 65, 128, 88, 48, 48,
+ 56, 65, 128, 88, 48, 48, 56, 128, 88, 48, 48, 55, 128, 88, 48, 48, 54,
+ 65, 128, 88, 48, 48, 54, 128, 88, 48, 48, 53, 128, 88, 48, 48, 52, 66,
+ 128, 88, 48, 48, 52, 65, 128, 88, 48, 48, 52, 128, 88, 48, 48, 51, 128,
+ 88, 48, 48, 50, 128, 88, 48, 48, 49, 128, 88, 45, 216, 87, 90, 128, 87,
+ 89, 78, 78, 128, 87, 89, 78, 206, 87, 86, 73, 128, 87, 86, 69, 128, 87,
+ 86, 65, 128, 87, 86, 128, 87, 85, 80, 128, 87, 85, 79, 88, 128, 87, 85,
+ 79, 80, 128, 87, 85, 79, 128, 87, 85, 78, 74, 207, 87, 85, 78, 128, 87,
+ 85, 76, 85, 128, 87, 85, 76, 213, 87, 85, 73, 128, 87, 85, 69, 128, 87,
+ 85, 65, 69, 84, 128, 87, 85, 65, 69, 78, 128, 87, 85, 128, 87, 82, 217,
+ 87, 82, 79, 78, 71, 128, 87, 82, 73, 83, 212, 87, 82, 73, 78, 75, 76, 69,
+ 83, 128, 87, 82, 73, 78, 75, 76, 69, 211, 87, 82, 73, 78, 75, 76, 69, 68,
+ 128, 87, 82, 69, 78, 67, 72, 128, 87, 82, 69, 65, 84, 200, 87, 82, 65,
+ 80, 80, 69, 196, 87, 82, 65, 80, 128, 87, 79, 88, 128, 87, 79, 87, 128,
+ 87, 79, 82, 83, 72, 73, 80, 128, 87, 79, 82, 82, 73, 69, 196, 87, 79, 82,
+ 76, 196, 87, 79, 82, 75, 69, 82, 128, 87, 79, 82, 75, 128, 87, 79, 82,
+ 203, 87, 79, 82, 68, 83, 80, 65, 67, 69, 128, 87, 79, 82, 196, 87, 79,
+ 80, 128, 87, 79, 79, 78, 128, 87, 79, 79, 76, 128, 87, 79, 79, 68, 83,
+ 45, 67, 82, 69, 197, 87, 79, 79, 68, 128, 87, 79, 78, 128, 87, 79, 206,
+ 87, 79, 77, 69, 78, 211, 87, 79, 77, 69, 206, 87, 79, 77, 65, 78, 211,
+ 87, 79, 77, 65, 78, 128, 87, 79, 77, 65, 206, 87, 79, 76, 79, 83, 79,
+ 128, 87, 79, 76, 198, 87, 79, 69, 128, 87, 79, 65, 128, 87, 73, 84, 72,
+ 79, 85, 212, 87, 73, 84, 72, 73, 78, 128, 87, 73, 84, 72, 73, 206, 87,
+ 73, 82, 69, 196, 87, 73, 78, 84, 69, 82, 128, 87, 73, 78, 75, 73, 78,
+ 199, 87, 73, 78, 75, 128, 87, 73, 78, 74, 65, 128, 87, 73, 78, 71, 83,
+ 128, 87, 73, 78, 69, 128, 87, 73, 78, 197, 87, 73, 78, 68, 85, 128, 87,
+ 73, 78, 68, 79, 87, 128, 87, 73, 78, 68, 128, 87, 73, 78, 196, 87, 73,
+ 78, 128, 87, 73, 71, 78, 89, 65, 78, 128, 87, 73, 71, 71, 76, 217, 87,
+ 73, 71, 71, 76, 69, 83, 128, 87, 73, 68, 84, 72, 128, 87, 73, 68, 69, 78,
+ 73, 78, 199, 87, 73, 68, 69, 45, 72, 69, 65, 68, 69, 196, 87, 73, 68,
+ 197, 87, 73, 65, 78, 71, 87, 65, 65, 75, 128, 87, 73, 65, 78, 71, 128,
+ 87, 72, 79, 76, 197, 87, 72, 73, 84, 69, 45, 70, 69, 65, 84, 72, 69, 82,
+ 69, 196, 87, 72, 73, 84, 69, 128, 87, 72, 69, 69, 76, 69, 196, 87, 72,
+ 69, 69, 76, 67, 72, 65, 73, 210, 87, 72, 69, 69, 76, 128, 87, 72, 69, 69,
+ 204, 87, 72, 69, 65, 84, 128, 87, 72, 65, 76, 69, 128, 87, 72, 128, 87,
+ 71, 128, 87, 69, 88, 128, 87, 69, 85, 88, 128, 87, 69, 83, 84, 69, 82,
+ 206, 87, 69, 83, 84, 128, 87, 69, 83, 212, 87, 69, 80, 128, 87, 69, 79,
+ 128, 87, 69, 78, 128, 87, 69, 76, 76, 128, 87, 69, 73, 71, 72, 212, 87,
+ 69, 73, 69, 82, 83, 84, 82, 65, 83, 211, 87, 69, 73, 128, 87, 69, 69, 78,
+ 128, 87, 69, 68, 71, 69, 45, 84, 65, 73, 76, 69, 196, 87, 69, 68, 71, 69,
+ 128, 87, 69, 68, 68, 73, 78, 71, 128, 87, 69, 66, 128, 87, 69, 65, 82,
+ 217, 87, 69, 65, 80, 79, 78, 128, 87, 67, 128, 87, 66, 128, 87, 65, 89,
+ 128, 87, 65, 217, 87, 65, 88, 73, 78, 199, 87, 65, 88, 128, 87, 65, 87,
+ 45, 65, 89, 73, 78, 45, 82, 69, 83, 72, 128, 87, 65, 87, 128, 87, 65,
+ 215, 87, 65, 86, 217, 87, 65, 86, 73, 78, 199, 87, 65, 86, 69, 83, 128,
+ 87, 65, 86, 69, 128, 87, 65, 86, 197, 87, 65, 85, 128, 87, 65, 84, 84,
+ 79, 128, 87, 65, 84, 69, 82, 77, 69, 76, 79, 78, 128, 87, 65, 84, 69, 82,
+ 128, 87, 65, 84, 69, 210, 87, 65, 84, 67, 72, 128, 87, 65, 84, 128, 87,
+ 65, 83, 84, 73, 78, 71, 128, 87, 65, 83, 84, 69, 66, 65, 83, 75, 69, 84,
+ 128, 87, 65, 83, 83, 65, 76, 76, 65, 77, 128, 87, 65, 83, 76, 65, 128,
+ 87, 65, 83, 76, 193, 87, 65, 83, 65, 76, 76, 65, 77, 128, 87, 65, 83, 65,
+ 76, 76, 65, 205, 87, 65, 82, 78, 73, 78, 199, 87, 65, 82, 65, 78, 199,
+ 87, 65, 80, 128, 87, 65, 78, 73, 78, 199, 87, 65, 78, 71, 75, 85, 79, 81,
+ 128, 87, 65, 78, 68, 69, 82, 69, 82, 128, 87, 65, 78, 128, 87, 65, 76,
+ 76, 80, 76, 65, 78, 197, 87, 65, 76, 76, 128, 87, 65, 76, 204, 87, 65,
+ 76, 75, 128, 87, 65, 76, 203, 87, 65, 73, 84, 73, 78, 71, 128, 87, 65,
+ 73, 83, 84, 128, 87, 65, 73, 128, 87, 65, 69, 78, 128, 87, 65, 69, 128,
+ 87, 65, 68, 68, 65, 128, 87, 65, 65, 86, 85, 128, 87, 48, 50, 53, 128,
87, 48, 50, 52, 65, 128, 87, 48, 50, 52, 128, 87, 48, 50, 51, 128, 87,
48, 50, 50, 128, 87, 48, 50, 49, 128, 87, 48, 50, 48, 128, 87, 48, 49,
57, 128, 87, 48, 49, 56, 65, 128, 87, 48, 49, 56, 128, 87, 48, 49, 55,
@@ -258,100 +274,102 @@ static unsigned char lexicon[] = {
87, 48, 48, 52, 128, 87, 48, 48, 51, 65, 128, 87, 48, 48, 51, 128, 87,
48, 48, 50, 128, 87, 48, 48, 49, 128, 86, 90, 77, 69, 84, 128, 86, 89,
88, 128, 86, 89, 84, 128, 86, 89, 82, 88, 128, 86, 89, 82, 128, 86, 89,
- 80, 128, 86, 89, 128, 86, 87, 65, 128, 86, 85, 88, 128, 86, 85, 85, 128,
- 86, 85, 84, 128, 86, 85, 82, 88, 128, 86, 85, 82, 128, 86, 85, 80, 128,
- 86, 85, 76, 71, 65, 210, 86, 85, 69, 81, 128, 86, 84, 83, 128, 86, 84,
- 128, 86, 83, 57, 57, 128, 86, 83, 57, 56, 128, 86, 83, 57, 55, 128, 86,
- 83, 57, 54, 128, 86, 83, 57, 53, 128, 86, 83, 57, 52, 128, 86, 83, 57,
- 51, 128, 86, 83, 57, 50, 128, 86, 83, 57, 49, 128, 86, 83, 57, 48, 128,
- 86, 83, 57, 128, 86, 83, 56, 57, 128, 86, 83, 56, 56, 128, 86, 83, 56,
- 55, 128, 86, 83, 56, 54, 128, 86, 83, 56, 53, 128, 86, 83, 56, 52, 128,
- 86, 83, 56, 51, 128, 86, 83, 56, 50, 128, 86, 83, 56, 49, 128, 86, 83,
- 56, 48, 128, 86, 83, 56, 128, 86, 83, 55, 57, 128, 86, 83, 55, 56, 128,
- 86, 83, 55, 55, 128, 86, 83, 55, 54, 128, 86, 83, 55, 53, 128, 86, 83,
- 55, 52, 128, 86, 83, 55, 51, 128, 86, 83, 55, 50, 128, 86, 83, 55, 49,
- 128, 86, 83, 55, 48, 128, 86, 83, 55, 128, 86, 83, 54, 57, 128, 86, 83,
- 54, 56, 128, 86, 83, 54, 55, 128, 86, 83, 54, 54, 128, 86, 83, 54, 53,
- 128, 86, 83, 54, 52, 128, 86, 83, 54, 51, 128, 86, 83, 54, 50, 128, 86,
- 83, 54, 49, 128, 86, 83, 54, 48, 128, 86, 83, 54, 128, 86, 83, 53, 57,
- 128, 86, 83, 53, 56, 128, 86, 83, 53, 55, 128, 86, 83, 53, 54, 128, 86,
- 83, 53, 53, 128, 86, 83, 53, 52, 128, 86, 83, 53, 51, 128, 86, 83, 53,
- 50, 128, 86, 83, 53, 49, 128, 86, 83, 53, 48, 128, 86, 83, 53, 128, 86,
- 83, 52, 57, 128, 86, 83, 52, 56, 128, 86, 83, 52, 55, 128, 86, 83, 52,
- 54, 128, 86, 83, 52, 53, 128, 86, 83, 52, 52, 128, 86, 83, 52, 51, 128,
- 86, 83, 52, 50, 128, 86, 83, 52, 49, 128, 86, 83, 52, 48, 128, 86, 83,
- 52, 128, 86, 83, 51, 57, 128, 86, 83, 51, 56, 128, 86, 83, 51, 55, 128,
- 86, 83, 51, 54, 128, 86, 83, 51, 53, 128, 86, 83, 51, 52, 128, 86, 83,
- 51, 51, 128, 86, 83, 51, 50, 128, 86, 83, 51, 49, 128, 86, 83, 51, 48,
- 128, 86, 83, 51, 128, 86, 83, 50, 57, 128, 86, 83, 50, 56, 128, 86, 83,
- 50, 55, 128, 86, 83, 50, 54, 128, 86, 83, 50, 53, 54, 128, 86, 83, 50,
- 53, 53, 128, 86, 83, 50, 53, 52, 128, 86, 83, 50, 53, 51, 128, 86, 83,
- 50, 53, 50, 128, 86, 83, 50, 53, 49, 128, 86, 83, 50, 53, 48, 128, 86,
- 83, 50, 53, 128, 86, 83, 50, 52, 57, 128, 86, 83, 50, 52, 56, 128, 86,
- 83, 50, 52, 55, 128, 86, 83, 50, 52, 54, 128, 86, 83, 50, 52, 53, 128,
- 86, 83, 50, 52, 52, 128, 86, 83, 50, 52, 51, 128, 86, 83, 50, 52, 50,
- 128, 86, 83, 50, 52, 49, 128, 86, 83, 50, 52, 48, 128, 86, 83, 50, 52,
- 128, 86, 83, 50, 51, 57, 128, 86, 83, 50, 51, 56, 128, 86, 83, 50, 51,
- 55, 128, 86, 83, 50, 51, 54, 128, 86, 83, 50, 51, 53, 128, 86, 83, 50,
- 51, 52, 128, 86, 83, 50, 51, 51, 128, 86, 83, 50, 51, 50, 128, 86, 83,
- 50, 51, 49, 128, 86, 83, 50, 51, 48, 128, 86, 83, 50, 51, 128, 86, 83,
- 50, 50, 57, 128, 86, 83, 50, 50, 56, 128, 86, 83, 50, 50, 55, 128, 86,
- 83, 50, 50, 54, 128, 86, 83, 50, 50, 53, 128, 86, 83, 50, 50, 52, 128,
- 86, 83, 50, 50, 51, 128, 86, 83, 50, 50, 50, 128, 86, 83, 50, 50, 49,
- 128, 86, 83, 50, 50, 48, 128, 86, 83, 50, 50, 128, 86, 83, 50, 49, 57,
- 128, 86, 83, 50, 49, 56, 128, 86, 83, 50, 49, 55, 128, 86, 83, 50, 49,
- 54, 128, 86, 83, 50, 49, 53, 128, 86, 83, 50, 49, 52, 128, 86, 83, 50,
- 49, 51, 128, 86, 83, 50, 49, 50, 128, 86, 83, 50, 49, 49, 128, 86, 83,
- 50, 49, 48, 128, 86, 83, 50, 49, 128, 86, 83, 50, 48, 57, 128, 86, 83,
- 50, 48, 56, 128, 86, 83, 50, 48, 55, 128, 86, 83, 50, 48, 54, 128, 86,
- 83, 50, 48, 53, 128, 86, 83, 50, 48, 52, 128, 86, 83, 50, 48, 51, 128,
- 86, 83, 50, 48, 50, 128, 86, 83, 50, 48, 49, 128, 86, 83, 50, 48, 48,
- 128, 86, 83, 50, 48, 128, 86, 83, 50, 128, 86, 83, 49, 57, 57, 128, 86,
- 83, 49, 57, 56, 128, 86, 83, 49, 57, 55, 128, 86, 83, 49, 57, 54, 128,
- 86, 83, 49, 57, 53, 128, 86, 83, 49, 57, 52, 128, 86, 83, 49, 57, 51,
- 128, 86, 83, 49, 57, 50, 128, 86, 83, 49, 57, 49, 128, 86, 83, 49, 57,
- 48, 128, 86, 83, 49, 57, 128, 86, 83, 49, 56, 57, 128, 86, 83, 49, 56,
- 56, 128, 86, 83, 49, 56, 55, 128, 86, 83, 49, 56, 54, 128, 86, 83, 49,
- 56, 53, 128, 86, 83, 49, 56, 52, 128, 86, 83, 49, 56, 51, 128, 86, 83,
- 49, 56, 50, 128, 86, 83, 49, 56, 49, 128, 86, 83, 49, 56, 48, 128, 86,
- 83, 49, 56, 128, 86, 83, 49, 55, 57, 128, 86, 83, 49, 55, 56, 128, 86,
- 83, 49, 55, 55, 128, 86, 83, 49, 55, 54, 128, 86, 83, 49, 55, 53, 128,
- 86, 83, 49, 55, 52, 128, 86, 83, 49, 55, 51, 128, 86, 83, 49, 55, 50,
- 128, 86, 83, 49, 55, 49, 128, 86, 83, 49, 55, 48, 128, 86, 83, 49, 55,
- 128, 86, 83, 49, 54, 57, 128, 86, 83, 49, 54, 56, 128, 86, 83, 49, 54,
- 55, 128, 86, 83, 49, 54, 54, 128, 86, 83, 49, 54, 53, 128, 86, 83, 49,
- 54, 52, 128, 86, 83, 49, 54, 51, 128, 86, 83, 49, 54, 50, 128, 86, 83,
- 49, 54, 49, 128, 86, 83, 49, 54, 48, 128, 86, 83, 49, 54, 128, 86, 83,
- 49, 53, 57, 128, 86, 83, 49, 53, 56, 128, 86, 83, 49, 53, 55, 128, 86,
- 83, 49, 53, 54, 128, 86, 83, 49, 53, 53, 128, 86, 83, 49, 53, 52, 128,
- 86, 83, 49, 53, 51, 128, 86, 83, 49, 53, 50, 128, 86, 83, 49, 53, 49,
- 128, 86, 83, 49, 53, 48, 128, 86, 83, 49, 53, 128, 86, 83, 49, 52, 57,
- 128, 86, 83, 49, 52, 56, 128, 86, 83, 49, 52, 55, 128, 86, 83, 49, 52,
- 54, 128, 86, 83, 49, 52, 53, 128, 86, 83, 49, 52, 52, 128, 86, 83, 49,
- 52, 51, 128, 86, 83, 49, 52, 50, 128, 86, 83, 49, 52, 49, 128, 86, 83,
- 49, 52, 48, 128, 86, 83, 49, 52, 128, 86, 83, 49, 51, 57, 128, 86, 83,
- 49, 51, 56, 128, 86, 83, 49, 51, 55, 128, 86, 83, 49, 51, 54, 128, 86,
- 83, 49, 51, 53, 128, 86, 83, 49, 51, 52, 128, 86, 83, 49, 51, 51, 128,
- 86, 83, 49, 51, 50, 128, 86, 83, 49, 51, 49, 128, 86, 83, 49, 51, 48,
- 128, 86, 83, 49, 51, 128, 86, 83, 49, 50, 57, 128, 86, 83, 49, 50, 56,
- 128, 86, 83, 49, 50, 55, 128, 86, 83, 49, 50, 54, 128, 86, 83, 49, 50,
- 53, 128, 86, 83, 49, 50, 52, 128, 86, 83, 49, 50, 51, 128, 86, 83, 49,
- 50, 50, 128, 86, 83, 49, 50, 49, 128, 86, 83, 49, 50, 48, 128, 86, 83,
- 49, 50, 128, 86, 83, 49, 49, 57, 128, 86, 83, 49, 49, 56, 128, 86, 83,
- 49, 49, 55, 128, 86, 83, 49, 49, 54, 128, 86, 83, 49, 49, 53, 128, 86,
- 83, 49, 49, 52, 128, 86, 83, 49, 49, 51, 128, 86, 83, 49, 49, 50, 128,
- 86, 83, 49, 49, 49, 128, 86, 83, 49, 49, 48, 128, 86, 83, 49, 49, 128,
- 86, 83, 49, 48, 57, 128, 86, 83, 49, 48, 56, 128, 86, 83, 49, 48, 55,
- 128, 86, 83, 49, 48, 54, 128, 86, 83, 49, 48, 53, 128, 86, 83, 49, 48,
- 52, 128, 86, 83, 49, 48, 51, 128, 86, 83, 49, 48, 50, 128, 86, 83, 49,
- 48, 49, 128, 86, 83, 49, 48, 48, 128, 86, 83, 49, 48, 128, 86, 83, 49,
- 128, 86, 83, 128, 86, 82, 65, 67, 72, 89, 128, 86, 79, 88, 128, 86, 79,
- 87, 69, 76, 45, 67, 65, 82, 82, 73, 69, 210, 86, 79, 87, 128, 86, 79, 85,
- 128, 86, 79, 84, 128, 86, 79, 80, 128, 86, 79, 79, 128, 86, 79, 77, 128,
- 86, 79, 76, 85, 77, 197, 86, 79, 76, 84, 65, 71, 197, 86, 79, 76, 67, 65,
- 78, 79, 128, 86, 79, 73, 196, 86, 79, 73, 67, 73, 78, 71, 128, 86, 79,
- 73, 67, 69, 76, 69, 83, 211, 86, 79, 73, 67, 69, 196, 86, 79, 67, 65, 76,
- 73, 90, 65, 84, 73, 79, 206, 86, 79, 67, 65, 204, 86, 79, 128, 86, 73,
+ 80, 128, 86, 89, 128, 86, 87, 74, 128, 86, 87, 65, 128, 86, 85, 88, 128,
+ 86, 85, 85, 128, 86, 85, 84, 128, 86, 85, 82, 88, 128, 86, 85, 82, 128,
+ 86, 85, 80, 128, 86, 85, 76, 71, 65, 210, 86, 85, 69, 81, 128, 86, 84,
+ 83, 128, 86, 84, 128, 86, 83, 57, 57, 128, 86, 83, 57, 56, 128, 86, 83,
+ 57, 55, 128, 86, 83, 57, 54, 128, 86, 83, 57, 53, 128, 86, 83, 57, 52,
+ 128, 86, 83, 57, 51, 128, 86, 83, 57, 50, 128, 86, 83, 57, 49, 128, 86,
+ 83, 57, 48, 128, 86, 83, 57, 128, 86, 83, 56, 57, 128, 86, 83, 56, 56,
+ 128, 86, 83, 56, 55, 128, 86, 83, 56, 54, 128, 86, 83, 56, 53, 128, 86,
+ 83, 56, 52, 128, 86, 83, 56, 51, 128, 86, 83, 56, 50, 128, 86, 83, 56,
+ 49, 128, 86, 83, 56, 48, 128, 86, 83, 56, 128, 86, 83, 55, 57, 128, 86,
+ 83, 55, 56, 128, 86, 83, 55, 55, 128, 86, 83, 55, 54, 128, 86, 83, 55,
+ 53, 128, 86, 83, 55, 52, 128, 86, 83, 55, 51, 128, 86, 83, 55, 50, 128,
+ 86, 83, 55, 49, 128, 86, 83, 55, 48, 128, 86, 83, 55, 128, 86, 83, 54,
+ 57, 128, 86, 83, 54, 56, 128, 86, 83, 54, 55, 128, 86, 83, 54, 54, 128,
+ 86, 83, 54, 53, 128, 86, 83, 54, 52, 128, 86, 83, 54, 51, 128, 86, 83,
+ 54, 50, 128, 86, 83, 54, 49, 128, 86, 83, 54, 48, 128, 86, 83, 54, 128,
+ 86, 83, 53, 57, 128, 86, 83, 53, 56, 128, 86, 83, 53, 55, 128, 86, 83,
+ 53, 54, 128, 86, 83, 53, 53, 128, 86, 83, 53, 52, 128, 86, 83, 53, 51,
+ 128, 86, 83, 53, 50, 128, 86, 83, 53, 49, 128, 86, 83, 53, 48, 128, 86,
+ 83, 53, 128, 86, 83, 52, 57, 128, 86, 83, 52, 56, 128, 86, 83, 52, 55,
+ 128, 86, 83, 52, 54, 128, 86, 83, 52, 53, 128, 86, 83, 52, 52, 128, 86,
+ 83, 52, 51, 128, 86, 83, 52, 50, 128, 86, 83, 52, 49, 128, 86, 83, 52,
+ 48, 128, 86, 83, 52, 128, 86, 83, 51, 57, 128, 86, 83, 51, 56, 128, 86,
+ 83, 51, 55, 128, 86, 83, 51, 54, 128, 86, 83, 51, 53, 128, 86, 83, 51,
+ 52, 128, 86, 83, 51, 51, 128, 86, 83, 51, 50, 128, 86, 83, 51, 49, 128,
+ 86, 83, 51, 48, 128, 86, 83, 51, 128, 86, 83, 50, 57, 128, 86, 83, 50,
+ 56, 128, 86, 83, 50, 55, 128, 86, 83, 50, 54, 128, 86, 83, 50, 53, 54,
+ 128, 86, 83, 50, 53, 53, 128, 86, 83, 50, 53, 52, 128, 86, 83, 50, 53,
+ 51, 128, 86, 83, 50, 53, 50, 128, 86, 83, 50, 53, 49, 128, 86, 83, 50,
+ 53, 48, 128, 86, 83, 50, 53, 128, 86, 83, 50, 52, 57, 128, 86, 83, 50,
+ 52, 56, 128, 86, 83, 50, 52, 55, 128, 86, 83, 50, 52, 54, 128, 86, 83,
+ 50, 52, 53, 128, 86, 83, 50, 52, 52, 128, 86, 83, 50, 52, 51, 128, 86,
+ 83, 50, 52, 50, 128, 86, 83, 50, 52, 49, 128, 86, 83, 50, 52, 48, 128,
+ 86, 83, 50, 52, 128, 86, 83, 50, 51, 57, 128, 86, 83, 50, 51, 56, 128,
+ 86, 83, 50, 51, 55, 128, 86, 83, 50, 51, 54, 128, 86, 83, 50, 51, 53,
+ 128, 86, 83, 50, 51, 52, 128, 86, 83, 50, 51, 51, 128, 86, 83, 50, 51,
+ 50, 128, 86, 83, 50, 51, 49, 128, 86, 83, 50, 51, 48, 128, 86, 83, 50,
+ 51, 128, 86, 83, 50, 50, 57, 128, 86, 83, 50, 50, 56, 128, 86, 83, 50,
+ 50, 55, 128, 86, 83, 50, 50, 54, 128, 86, 83, 50, 50, 53, 128, 86, 83,
+ 50, 50, 52, 128, 86, 83, 50, 50, 51, 128, 86, 83, 50, 50, 50, 128, 86,
+ 83, 50, 50, 49, 128, 86, 83, 50, 50, 48, 128, 86, 83, 50, 50, 128, 86,
+ 83, 50, 49, 57, 128, 86, 83, 50, 49, 56, 128, 86, 83, 50, 49, 55, 128,
+ 86, 83, 50, 49, 54, 128, 86, 83, 50, 49, 53, 128, 86, 83, 50, 49, 52,
+ 128, 86, 83, 50, 49, 51, 128, 86, 83, 50, 49, 50, 128, 86, 83, 50, 49,
+ 49, 128, 86, 83, 50, 49, 48, 128, 86, 83, 50, 49, 128, 86, 83, 50, 48,
+ 57, 128, 86, 83, 50, 48, 56, 128, 86, 83, 50, 48, 55, 128, 86, 83, 50,
+ 48, 54, 128, 86, 83, 50, 48, 53, 128, 86, 83, 50, 48, 52, 128, 86, 83,
+ 50, 48, 51, 128, 86, 83, 50, 48, 50, 128, 86, 83, 50, 48, 49, 128, 86,
+ 83, 50, 48, 48, 128, 86, 83, 50, 48, 128, 86, 83, 50, 128, 86, 83, 49,
+ 57, 57, 128, 86, 83, 49, 57, 56, 128, 86, 83, 49, 57, 55, 128, 86, 83,
+ 49, 57, 54, 128, 86, 83, 49, 57, 53, 128, 86, 83, 49, 57, 52, 128, 86,
+ 83, 49, 57, 51, 128, 86, 83, 49, 57, 50, 128, 86, 83, 49, 57, 49, 128,
+ 86, 83, 49, 57, 48, 128, 86, 83, 49, 57, 128, 86, 83, 49, 56, 57, 128,
+ 86, 83, 49, 56, 56, 128, 86, 83, 49, 56, 55, 128, 86, 83, 49, 56, 54,
+ 128, 86, 83, 49, 56, 53, 128, 86, 83, 49, 56, 52, 128, 86, 83, 49, 56,
+ 51, 128, 86, 83, 49, 56, 50, 128, 86, 83, 49, 56, 49, 128, 86, 83, 49,
+ 56, 48, 128, 86, 83, 49, 56, 128, 86, 83, 49, 55, 57, 128, 86, 83, 49,
+ 55, 56, 128, 86, 83, 49, 55, 55, 128, 86, 83, 49, 55, 54, 128, 86, 83,
+ 49, 55, 53, 128, 86, 83, 49, 55, 52, 128, 86, 83, 49, 55, 51, 128, 86,
+ 83, 49, 55, 50, 128, 86, 83, 49, 55, 49, 128, 86, 83, 49, 55, 48, 128,
+ 86, 83, 49, 55, 128, 86, 83, 49, 54, 57, 128, 86, 83, 49, 54, 56, 128,
+ 86, 83, 49, 54, 55, 128, 86, 83, 49, 54, 54, 128, 86, 83, 49, 54, 53,
+ 128, 86, 83, 49, 54, 52, 128, 86, 83, 49, 54, 51, 128, 86, 83, 49, 54,
+ 50, 128, 86, 83, 49, 54, 49, 128, 86, 83, 49, 54, 48, 128, 86, 83, 49,
+ 54, 128, 86, 83, 49, 53, 57, 128, 86, 83, 49, 53, 56, 128, 86, 83, 49,
+ 53, 55, 128, 86, 83, 49, 53, 54, 128, 86, 83, 49, 53, 53, 128, 86, 83,
+ 49, 53, 52, 128, 86, 83, 49, 53, 51, 128, 86, 83, 49, 53, 50, 128, 86,
+ 83, 49, 53, 49, 128, 86, 83, 49, 53, 48, 128, 86, 83, 49, 53, 128, 86,
+ 83, 49, 52, 57, 128, 86, 83, 49, 52, 56, 128, 86, 83, 49, 52, 55, 128,
+ 86, 83, 49, 52, 54, 128, 86, 83, 49, 52, 53, 128, 86, 83, 49, 52, 52,
+ 128, 86, 83, 49, 52, 51, 128, 86, 83, 49, 52, 50, 128, 86, 83, 49, 52,
+ 49, 128, 86, 83, 49, 52, 48, 128, 86, 83, 49, 52, 128, 86, 83, 49, 51,
+ 57, 128, 86, 83, 49, 51, 56, 128, 86, 83, 49, 51, 55, 128, 86, 83, 49,
+ 51, 54, 128, 86, 83, 49, 51, 53, 128, 86, 83, 49, 51, 52, 128, 86, 83,
+ 49, 51, 51, 128, 86, 83, 49, 51, 50, 128, 86, 83, 49, 51, 49, 128, 86,
+ 83, 49, 51, 48, 128, 86, 83, 49, 51, 128, 86, 83, 49, 50, 57, 128, 86,
+ 83, 49, 50, 56, 128, 86, 83, 49, 50, 55, 128, 86, 83, 49, 50, 54, 128,
+ 86, 83, 49, 50, 53, 128, 86, 83, 49, 50, 52, 128, 86, 83, 49, 50, 51,
+ 128, 86, 83, 49, 50, 50, 128, 86, 83, 49, 50, 49, 128, 86, 83, 49, 50,
+ 48, 128, 86, 83, 49, 50, 128, 86, 83, 49, 49, 57, 128, 86, 83, 49, 49,
+ 56, 128, 86, 83, 49, 49, 55, 128, 86, 83, 49, 49, 54, 128, 86, 83, 49,
+ 49, 53, 128, 86, 83, 49, 49, 52, 128, 86, 83, 49, 49, 51, 128, 86, 83,
+ 49, 49, 50, 128, 86, 83, 49, 49, 49, 128, 86, 83, 49, 49, 48, 128, 86,
+ 83, 49, 49, 128, 86, 83, 49, 48, 57, 128, 86, 83, 49, 48, 56, 128, 86,
+ 83, 49, 48, 55, 128, 86, 83, 49, 48, 54, 128, 86, 83, 49, 48, 53, 128,
+ 86, 83, 49, 48, 52, 128, 86, 83, 49, 48, 51, 128, 86, 83, 49, 48, 50,
+ 128, 86, 83, 49, 48, 49, 128, 86, 83, 49, 48, 48, 128, 86, 83, 49, 48,
+ 128, 86, 83, 49, 128, 86, 83, 128, 86, 82, 65, 67, 72, 89, 128, 86, 79,
+ 88, 128, 86, 79, 87, 69, 76, 45, 67, 65, 82, 82, 73, 69, 210, 86, 79, 87,
+ 128, 86, 79, 85, 128, 86, 79, 84, 128, 86, 79, 211, 86, 79, 80, 128, 86,
+ 79, 79, 73, 128, 86, 79, 79, 128, 86, 79, 77, 128, 86, 79, 76, 85, 77,
+ 197, 86, 79, 76, 84, 65, 71, 197, 86, 79, 76, 76, 69, 89, 66, 65, 76, 76,
+ 128, 86, 79, 76, 67, 65, 78, 79, 128, 86, 79, 76, 65, 80, 85, 203, 86,
+ 79, 73, 196, 86, 79, 73, 67, 73, 78, 71, 128, 86, 79, 73, 67, 69, 76, 69,
+ 83, 211, 86, 79, 73, 67, 69, 196, 86, 79, 67, 65, 76, 73, 90, 65, 84, 73,
+ 79, 206, 86, 79, 67, 65, 204, 86, 79, 128, 86, 73, 89, 79, 128, 86, 73,
88, 128, 86, 73, 84, 82, 73, 79, 76, 45, 50, 128, 86, 73, 84, 82, 73, 79,
76, 128, 86, 73, 84, 65, 69, 45, 50, 128, 86, 73, 84, 65, 69, 128, 86,
73, 84, 128, 86, 73, 83, 73, 71, 79, 84, 72, 73, 195, 86, 73, 83, 65, 82,
@@ -360,123 +378,127 @@ static unsigned char lexicon[] = {
82, 71, 65, 128, 86, 73, 82, 65, 77, 65, 128, 86, 73, 80, 128, 86, 73,
79, 76, 73, 78, 128, 86, 73, 78, 69, 71, 65, 82, 45, 51, 128, 86, 73, 78,
69, 71, 65, 82, 45, 50, 128, 86, 73, 78, 69, 71, 65, 82, 128, 86, 73, 78,
- 69, 71, 65, 210, 86, 73, 78, 69, 128, 86, 73, 78, 128, 86, 73, 76, 76,
- 65, 71, 69, 128, 86, 73, 73, 128, 86, 73, 69, 88, 128, 86, 73, 69, 87,
- 73, 78, 199, 86, 73, 69, 87, 68, 65, 84, 193, 86, 73, 69, 84, 128, 86,
- 73, 69, 80, 128, 86, 73, 69, 128, 86, 73, 68, 74, 45, 50, 128, 86, 73,
- 68, 74, 128, 86, 73, 68, 69, 79, 67, 65, 83, 83, 69, 84, 84, 69, 128, 86,
- 73, 68, 69, 207, 86, 73, 68, 65, 128, 86, 73, 67, 84, 79, 82, 217, 86,
- 73, 66, 82, 65, 84, 73, 79, 206, 86, 73, 128, 86, 70, 65, 128, 86, 69,
- 88, 128, 86, 69, 87, 128, 86, 69, 215, 86, 69, 85, 88, 128, 86, 69, 85,
- 77, 128, 86, 69, 85, 65, 69, 80, 69, 78, 128, 86, 69, 85, 65, 69, 128,
- 86, 69, 83, 84, 65, 128, 86, 69, 83, 83, 69, 204, 86, 69, 82, 217, 86,
- 69, 82, 84, 73, 67, 65, 76, 76, 89, 128, 86, 69, 82, 84, 73, 67, 65, 76,
- 76, 217, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 54, 45, 48, 54, 128, 86,
- 69, 82, 84, 73, 67, 65, 76, 45, 48, 54, 45, 48, 53, 128, 86, 69, 82, 84,
- 73, 67, 65, 76, 45, 48, 54, 45, 48, 52, 128, 86, 69, 82, 84, 73, 67, 65,
- 76, 45, 48, 54, 45, 48, 51, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48,
- 54, 45, 48, 50, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 54, 45, 48,
- 49, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 54, 45, 48, 48, 128, 86,
- 69, 82, 84, 73, 67, 65, 76, 45, 48, 53, 45, 48, 54, 128, 86, 69, 82, 84,
- 73, 67, 65, 76, 45, 48, 53, 45, 48, 53, 128, 86, 69, 82, 84, 73, 67, 65,
- 76, 45, 48, 53, 45, 48, 52, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48,
- 53, 45, 48, 51, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 53, 45, 48,
- 50, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 53, 45, 48, 49, 128, 86,
- 69, 82, 84, 73, 67, 65, 76, 45, 48, 53, 45, 48, 48, 128, 86, 69, 82, 84,
- 73, 67, 65, 76, 45, 48, 52, 45, 48, 54, 128, 86, 69, 82, 84, 73, 67, 65,
- 76, 45, 48, 52, 45, 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48,
- 52, 45, 48, 52, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 52, 45, 48,
- 51, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 52, 45, 48, 50, 128, 86,
- 69, 82, 84, 73, 67, 65, 76, 45, 48, 52, 45, 48, 49, 128, 86, 69, 82, 84,
- 73, 67, 65, 76, 45, 48, 52, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67, 65,
- 76, 45, 48, 51, 45, 48, 54, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48,
- 51, 45, 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45, 48,
- 52, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45, 48, 51, 128, 86,
- 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45, 48, 50, 128, 86, 69, 82, 84,
- 73, 67, 65, 76, 45, 48, 51, 45, 48, 49, 128, 86, 69, 82, 84, 73, 67, 65,
- 76, 45, 48, 51, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48,
- 50, 45, 48, 54, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 50, 45, 48,
- 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, 52, 128, 86,
- 69, 82, 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, 51, 128, 86, 69, 82, 84,
- 73, 67, 65, 76, 45, 48, 50, 45, 48, 50, 128, 86, 69, 82, 84, 73, 67, 65,
- 76, 45, 48, 50, 45, 48, 49, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48,
- 50, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 49, 45, 48,
- 54, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 49, 45, 48, 53, 128, 86,
- 69, 82, 84, 73, 67, 65, 76, 45, 48, 49, 45, 48, 52, 128, 86, 69, 82, 84,
- 73, 67, 65, 76, 45, 48, 49, 45, 48, 51, 128, 86, 69, 82, 84, 73, 67, 65,
- 76, 45, 48, 49, 45, 48, 50, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48,
- 49, 45, 48, 49, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 49, 45, 48,
- 48, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 48, 45, 48, 54, 128, 86,
- 69, 82, 84, 73, 67, 65, 76, 45, 48, 48, 45, 48, 53, 128, 86, 69, 82, 84,
- 73, 67, 65, 76, 45, 48, 48, 45, 48, 52, 128, 86, 69, 82, 84, 73, 67, 65,
- 76, 45, 48, 48, 45, 48, 51, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48,
- 48, 45, 48, 50, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 48, 45, 48,
- 49, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 48, 45, 48, 48, 128, 86,
- 69, 82, 84, 73, 67, 65, 76, 128, 86, 69, 82, 83, 73, 67, 76, 69, 128, 86,
- 69, 82, 83, 197, 86, 69, 82, 71, 69, 128, 86, 69, 82, 68, 73, 71, 82, 73,
- 83, 128, 86, 69, 80, 128, 86, 69, 78, 68, 128, 86, 69, 73, 76, 128, 86,
- 69, 72, 73, 67, 76, 69, 128, 86, 69, 72, 128, 86, 69, 200, 86, 69, 69,
- 128, 86, 69, 197, 86, 69, 68, 69, 128, 86, 69, 67, 84, 79, 210, 86, 65,
- 89, 65, 78, 78, 65, 128, 86, 65, 88, 128, 86, 65, 86, 128, 86, 65, 214,
- 86, 65, 85, 128, 86, 65, 84, 72, 89, 128, 86, 65, 84, 128, 86, 65, 83,
- 84, 78, 69, 83, 211, 86, 65, 83, 73, 83, 128, 86, 65, 82, 89, 211, 86,
- 65, 82, 73, 75, 65, 128, 86, 65, 82, 73, 65, 78, 212, 86, 65, 82, 73, 65,
- 128, 86, 65, 82, 73, 193, 86, 65, 82, 69, 73, 65, 201, 86, 65, 82, 69,
- 73, 193, 86, 65, 80, 79, 85, 82, 83, 128, 86, 65, 80, 128, 86, 65, 78,
- 69, 128, 86, 65, 77, 65, 71, 79, 77, 85, 75, 72, 65, 128, 86, 65, 77, 65,
- 71, 79, 77, 85, 75, 72, 193, 86, 65, 76, 76, 69, 89, 128, 86, 65, 73,
- 128, 86, 65, 72, 128, 86, 65, 65, 86, 85, 128, 86, 65, 65, 128, 86, 48,
- 52, 48, 65, 128, 86, 48, 52, 48, 128, 86, 48, 51, 57, 128, 86, 48, 51,
- 56, 128, 86, 48, 51, 55, 65, 128, 86, 48, 51, 55, 128, 86, 48, 51, 54,
- 128, 86, 48, 51, 53, 128, 86, 48, 51, 52, 128, 86, 48, 51, 51, 65, 128,
- 86, 48, 51, 51, 128, 86, 48, 51, 50, 128, 86, 48, 51, 49, 65, 128, 86,
- 48, 51, 49, 128, 86, 48, 51, 48, 65, 128, 86, 48, 51, 48, 128, 86, 48,
- 50, 57, 65, 128, 86, 48, 50, 57, 128, 86, 48, 50, 56, 65, 128, 86, 48,
- 50, 56, 128, 86, 48, 50, 55, 128, 86, 48, 50, 54, 128, 86, 48, 50, 53,
- 128, 86, 48, 50, 52, 128, 86, 48, 50, 51, 65, 128, 86, 48, 50, 51, 128,
- 86, 48, 50, 50, 128, 86, 48, 50, 49, 128, 86, 48, 50, 48, 76, 128, 86,
- 48, 50, 48, 75, 128, 86, 48, 50, 48, 74, 128, 86, 48, 50, 48, 73, 128,
- 86, 48, 50, 48, 72, 128, 86, 48, 50, 48, 71, 128, 86, 48, 50, 48, 70,
- 128, 86, 48, 50, 48, 69, 128, 86, 48, 50, 48, 68, 128, 86, 48, 50, 48,
- 67, 128, 86, 48, 50, 48, 66, 128, 86, 48, 50, 48, 65, 128, 86, 48, 50,
- 48, 128, 86, 48, 49, 57, 128, 86, 48, 49, 56, 128, 86, 48, 49, 55, 128,
- 86, 48, 49, 54, 128, 86, 48, 49, 53, 128, 86, 48, 49, 52, 128, 86, 48,
- 49, 51, 128, 86, 48, 49, 50, 66, 128, 86, 48, 49, 50, 65, 128, 86, 48,
- 49, 50, 128, 86, 48, 49, 49, 67, 128, 86, 48, 49, 49, 66, 128, 86, 48,
- 49, 49, 65, 128, 86, 48, 49, 49, 128, 86, 48, 49, 48, 128, 86, 48, 48,
- 57, 128, 86, 48, 48, 56, 128, 86, 48, 48, 55, 66, 128, 86, 48, 48, 55,
- 65, 128, 86, 48, 48, 55, 128, 86, 48, 48, 54, 128, 86, 48, 48, 53, 128,
- 86, 48, 48, 52, 128, 86, 48, 48, 51, 128, 86, 48, 48, 50, 65, 128, 86,
- 48, 48, 50, 128, 86, 48, 48, 49, 73, 128, 86, 48, 48, 49, 72, 128, 86,
- 48, 48, 49, 71, 128, 86, 48, 48, 49, 70, 128, 86, 48, 48, 49, 69, 128,
- 86, 48, 48, 49, 68, 128, 86, 48, 48, 49, 67, 128, 86, 48, 48, 49, 66,
- 128, 86, 48, 48, 49, 65, 128, 86, 48, 48, 49, 128, 85, 90, 85, 128, 85,
- 90, 51, 128, 85, 90, 179, 85, 89, 65, 78, 78, 65, 128, 85, 89, 128, 85,
- 85, 89, 65, 78, 78, 65, 128, 85, 85, 85, 85, 128, 85, 85, 85, 51, 128,
- 85, 85, 85, 50, 128, 85, 85, 69, 128, 85, 84, 85, 75, 73, 128, 85, 83,
- 83, 85, 51, 128, 85, 83, 83, 85, 128, 85, 83, 72, 88, 128, 85, 83, 72,
- 85, 77, 88, 128, 85, 83, 72, 69, 78, 78, 65, 128, 85, 83, 72, 50, 128,
- 85, 83, 72, 128, 85, 83, 200, 85, 83, 69, 196, 85, 83, 69, 45, 50, 128,
- 85, 83, 69, 45, 49, 128, 85, 83, 69, 128, 85, 83, 197, 85, 82, 85, 218,
- 85, 82, 85, 83, 128, 85, 82, 85, 68, 65, 128, 85, 82, 85, 68, 193, 85,
- 82, 85, 128, 85, 82, 213, 85, 82, 78, 128, 85, 82, 73, 78, 69, 128, 85,
- 82, 73, 51, 128, 85, 82, 73, 128, 85, 82, 65, 78, 85, 83, 128, 85, 82,
- 65, 128, 85, 82, 52, 128, 85, 82, 50, 128, 85, 82, 178, 85, 80, 87, 65,
- 82, 68, 83, 128, 85, 80, 87, 65, 82, 68, 211, 85, 80, 87, 65, 82, 68,
- 128, 85, 80, 87, 65, 82, 196, 85, 80, 84, 85, 82, 78, 128, 85, 80, 83,
- 73, 76, 79, 78, 128, 85, 80, 83, 73, 76, 79, 206, 85, 80, 82, 73, 71, 72,
- 212, 85, 80, 80, 69, 210, 85, 80, 65, 68, 72, 77, 65, 78, 73, 89, 65,
- 128, 85, 80, 45, 80, 79, 73, 78, 84, 73, 78, 199, 85, 79, 78, 128, 85,
- 78, 78, 128, 85, 78, 77, 65, 82, 82, 73, 69, 196, 85, 78, 75, 78, 79, 87,
- 78, 128, 85, 78, 73, 86, 69, 82, 83, 65, 204, 85, 78, 73, 84, 89, 128,
- 85, 78, 73, 84, 128, 85, 78, 73, 212, 85, 78, 73, 79, 78, 128, 85, 78,
- 73, 79, 206, 85, 78, 73, 70, 73, 69, 196, 85, 78, 68, 207, 85, 78, 68,
- 69, 82, 84, 73, 69, 128, 85, 78, 68, 69, 82, 76, 73, 78, 197, 85, 78, 68,
- 69, 82, 68, 79, 84, 128, 85, 78, 68, 69, 82, 66, 65, 82, 128, 85, 78, 68,
- 69, 210, 85, 78, 67, 73, 193, 85, 78, 65, 83, 80, 73, 82, 65, 84, 69, 68,
- 128, 85, 78, 65, 80, 128, 85, 78, 65, 77, 85, 83, 69, 196, 85, 78, 65,
- 128, 85, 206, 85, 77, 85, 77, 128, 85, 77, 85, 205, 85, 77, 66, 82, 69,
- 76, 76, 65, 128, 85, 77, 66, 82, 69, 76, 76, 193, 85, 77, 66, 73, 78,
+ 69, 71, 65, 210, 86, 73, 78, 69, 128, 86, 73, 78, 197, 86, 73, 78, 128,
+ 86, 73, 76, 76, 65, 71, 69, 128, 86, 73, 73, 128, 86, 73, 69, 88, 128,
+ 86, 73, 69, 87, 73, 78, 199, 86, 73, 69, 87, 68, 65, 84, 193, 86, 73, 69,
+ 84, 128, 86, 73, 69, 212, 86, 73, 69, 80, 128, 86, 73, 69, 128, 86, 73,
+ 68, 74, 45, 50, 128, 86, 73, 68, 74, 128, 86, 73, 68, 69, 79, 67, 65, 83,
+ 83, 69, 84, 84, 69, 128, 86, 73, 68, 69, 207, 86, 73, 68, 65, 128, 86,
+ 73, 67, 84, 79, 82, 217, 86, 73, 66, 82, 65, 84, 73, 79, 206, 86, 70, 65,
+ 128, 86, 69, 89, 90, 128, 86, 69, 88, 128, 86, 69, 87, 128, 86, 69, 215,
+ 86, 69, 85, 88, 128, 86, 69, 85, 77, 128, 86, 69, 85, 65, 69, 80, 69, 78,
+ 128, 86, 69, 85, 65, 69, 128, 86, 69, 83, 84, 65, 128, 86, 69, 83, 83,
+ 69, 204, 86, 69, 82, 217, 86, 69, 82, 84, 73, 67, 65, 76, 76, 89, 128,
+ 86, 69, 82, 84, 73, 67, 65, 76, 76, 217, 86, 69, 82, 84, 73, 67, 65, 76,
+ 45, 48, 54, 45, 48, 54, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 54,
+ 45, 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 54, 45, 48, 52,
+ 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 54, 45, 48, 51, 128, 86, 69,
+ 82, 84, 73, 67, 65, 76, 45, 48, 54, 45, 48, 50, 128, 86, 69, 82, 84, 73,
+ 67, 65, 76, 45, 48, 54, 45, 48, 49, 128, 86, 69, 82, 84, 73, 67, 65, 76,
+ 45, 48, 54, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 53,
+ 45, 48, 54, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 53, 45, 48, 53,
+ 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 53, 45, 48, 52, 128, 86, 69,
+ 82, 84, 73, 67, 65, 76, 45, 48, 53, 45, 48, 51, 128, 86, 69, 82, 84, 73,
+ 67, 65, 76, 45, 48, 53, 45, 48, 50, 128, 86, 69, 82, 84, 73, 67, 65, 76,
+ 45, 48, 53, 45, 48, 49, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 53,
+ 45, 48, 48, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 52, 45, 48, 54,
+ 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 52, 45, 48, 53, 128, 86, 69,
+ 82, 84, 73, 67, 65, 76, 45, 48, 52, 45, 48, 52, 128, 86, 69, 82, 84, 73,
+ 67, 65, 76, 45, 48, 52, 45, 48, 51, 128, 86, 69, 82, 84, 73, 67, 65, 76,
+ 45, 48, 52, 45, 48, 50, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 52,
+ 45, 48, 49, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 52, 45, 48, 48,
+ 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45, 48, 54, 128, 86, 69,
+ 82, 84, 73, 67, 65, 76, 45, 48, 51, 45, 48, 53, 128, 86, 69, 82, 84, 73,
+ 67, 65, 76, 45, 48, 51, 45, 48, 52, 128, 86, 69, 82, 84, 73, 67, 65, 76,
+ 45, 48, 51, 45, 48, 51, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 51,
+ 45, 48, 50, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45, 48, 49,
+ 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45, 48, 48, 128, 86, 69,
+ 82, 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, 54, 128, 86, 69, 82, 84, 73,
+ 67, 65, 76, 45, 48, 50, 45, 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, 76,
+ 45, 48, 50, 45, 48, 52, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 50,
+ 45, 48, 51, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, 50,
+ 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, 49, 128, 86, 69,
+ 82, 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, 48, 128, 86, 69, 82, 84, 73,
+ 67, 65, 76, 45, 48, 49, 45, 48, 54, 128, 86, 69, 82, 84, 73, 67, 65, 76,
+ 45, 48, 49, 45, 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 49,
+ 45, 48, 52, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 49, 45, 48, 51,
+ 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 49, 45, 48, 50, 128, 86, 69,
+ 82, 84, 73, 67, 65, 76, 45, 48, 49, 45, 48, 49, 128, 86, 69, 82, 84, 73,
+ 67, 65, 76, 45, 48, 49, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67, 65, 76,
+ 45, 48, 48, 45, 48, 54, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 48,
+ 45, 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 48, 45, 48, 52,
+ 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 48, 45, 48, 51, 128, 86, 69,
+ 82, 84, 73, 67, 65, 76, 45, 48, 48, 45, 48, 50, 128, 86, 69, 82, 84, 73,
+ 67, 65, 76, 45, 48, 48, 45, 48, 49, 128, 86, 69, 82, 84, 73, 67, 65, 76,
+ 45, 48, 48, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67, 65, 76, 128, 86, 69,
+ 82, 83, 73, 67, 76, 69, 128, 86, 69, 82, 83, 197, 86, 69, 82, 71, 69,
+ 128, 86, 69, 82, 68, 73, 71, 82, 73, 83, 128, 86, 69, 82, 128, 86, 69,
+ 80, 128, 86, 69, 78, 68, 128, 86, 69, 73, 76, 128, 86, 69, 72, 73, 67,
+ 76, 69, 128, 86, 69, 72, 128, 86, 69, 200, 86, 69, 69, 128, 86, 69, 197,
+ 86, 69, 68, 69, 128, 86, 69, 67, 84, 79, 210, 86, 65, 89, 65, 78, 78, 65,
+ 128, 86, 65, 88, 128, 86, 65, 86, 128, 86, 65, 214, 86, 65, 85, 128, 86,
+ 65, 84, 72, 89, 128, 86, 65, 84, 128, 86, 65, 83, 84, 78, 69, 83, 211,
+ 86, 65, 83, 73, 83, 128, 86, 65, 82, 89, 211, 86, 65, 82, 73, 75, 65,
+ 128, 86, 65, 82, 73, 65, 78, 84, 128, 86, 65, 82, 73, 65, 78, 212, 86,
+ 65, 82, 73, 65, 128, 86, 65, 82, 73, 193, 86, 65, 82, 69, 73, 65, 201,
+ 86, 65, 82, 69, 73, 193, 86, 65, 80, 79, 85, 82, 83, 128, 86, 65, 80,
+ 128, 86, 65, 78, 69, 128, 86, 65, 77, 65, 71, 79, 77, 85, 75, 72, 65,
+ 128, 86, 65, 77, 65, 71, 79, 77, 85, 75, 72, 193, 86, 65, 76, 76, 69, 89,
+ 128, 86, 65, 74, 128, 86, 65, 73, 128, 86, 65, 72, 128, 86, 65, 200, 86,
+ 65, 65, 86, 85, 128, 86, 65, 65, 128, 86, 48, 52, 48, 65, 128, 86, 48,
+ 52, 48, 128, 86, 48, 51, 57, 128, 86, 48, 51, 56, 128, 86, 48, 51, 55,
+ 65, 128, 86, 48, 51, 55, 128, 86, 48, 51, 54, 128, 86, 48, 51, 53, 128,
+ 86, 48, 51, 52, 128, 86, 48, 51, 51, 65, 128, 86, 48, 51, 51, 128, 86,
+ 48, 51, 50, 128, 86, 48, 51, 49, 65, 128, 86, 48, 51, 49, 128, 86, 48,
+ 51, 48, 65, 128, 86, 48, 51, 48, 128, 86, 48, 50, 57, 65, 128, 86, 48,
+ 50, 57, 128, 86, 48, 50, 56, 65, 128, 86, 48, 50, 56, 128, 86, 48, 50,
+ 55, 128, 86, 48, 50, 54, 128, 86, 48, 50, 53, 128, 86, 48, 50, 52, 128,
+ 86, 48, 50, 51, 65, 128, 86, 48, 50, 51, 128, 86, 48, 50, 50, 128, 86,
+ 48, 50, 49, 128, 86, 48, 50, 48, 76, 128, 86, 48, 50, 48, 75, 128, 86,
+ 48, 50, 48, 74, 128, 86, 48, 50, 48, 73, 128, 86, 48, 50, 48, 72, 128,
+ 86, 48, 50, 48, 71, 128, 86, 48, 50, 48, 70, 128, 86, 48, 50, 48, 69,
+ 128, 86, 48, 50, 48, 68, 128, 86, 48, 50, 48, 67, 128, 86, 48, 50, 48,
+ 66, 128, 86, 48, 50, 48, 65, 128, 86, 48, 50, 48, 128, 86, 48, 49, 57,
+ 128, 86, 48, 49, 56, 128, 86, 48, 49, 55, 128, 86, 48, 49, 54, 128, 86,
+ 48, 49, 53, 128, 86, 48, 49, 52, 128, 86, 48, 49, 51, 128, 86, 48, 49,
+ 50, 66, 128, 86, 48, 49, 50, 65, 128, 86, 48, 49, 50, 128, 86, 48, 49,
+ 49, 67, 128, 86, 48, 49, 49, 66, 128, 86, 48, 49, 49, 65, 128, 86, 48,
+ 49, 49, 128, 86, 48, 49, 48, 128, 86, 48, 48, 57, 128, 86, 48, 48, 56,
+ 128, 86, 48, 48, 55, 66, 128, 86, 48, 48, 55, 65, 128, 86, 48, 48, 55,
+ 128, 86, 48, 48, 54, 128, 86, 48, 48, 53, 128, 86, 48, 48, 52, 128, 86,
+ 48, 48, 51, 128, 86, 48, 48, 50, 65, 128, 86, 48, 48, 50, 128, 86, 48,
+ 48, 49, 73, 128, 86, 48, 48, 49, 72, 128, 86, 48, 48, 49, 71, 128, 86,
+ 48, 48, 49, 70, 128, 86, 48, 48, 49, 69, 128, 86, 48, 48, 49, 68, 128,
+ 86, 48, 48, 49, 67, 128, 86, 48, 48, 49, 66, 128, 86, 48, 48, 49, 65,
+ 128, 86, 48, 48, 49, 128, 85, 90, 85, 128, 85, 90, 51, 128, 85, 90, 179,
+ 85, 89, 65, 78, 78, 65, 128, 85, 89, 128, 85, 87, 85, 128, 85, 85, 89,
+ 65, 78, 78, 65, 128, 85, 85, 85, 85, 128, 85, 85, 85, 51, 128, 85, 85,
+ 85, 50, 128, 85, 85, 69, 128, 85, 84, 85, 75, 73, 128, 85, 83, 83, 85,
+ 51, 128, 85, 83, 83, 85, 128, 85, 83, 72, 88, 128, 85, 83, 72, 85, 77,
+ 88, 128, 85, 83, 72, 69, 78, 78, 65, 128, 85, 83, 72, 50, 128, 85, 83,
+ 72, 128, 85, 83, 200, 85, 83, 69, 196, 85, 83, 69, 45, 50, 128, 85, 83,
+ 69, 45, 49, 128, 85, 83, 69, 128, 85, 83, 197, 85, 82, 85, 218, 85, 82,
+ 85, 83, 128, 85, 82, 85, 68, 65, 128, 85, 82, 85, 68, 193, 85, 82, 85,
+ 128, 85, 82, 213, 85, 82, 78, 128, 85, 82, 73, 78, 69, 128, 85, 82, 73,
+ 51, 128, 85, 82, 73, 128, 85, 82, 65, 78, 85, 83, 128, 85, 82, 65, 128,
+ 85, 82, 52, 128, 85, 82, 50, 128, 85, 82, 178, 85, 80, 87, 65, 82, 68,
+ 83, 128, 85, 80, 87, 65, 82, 68, 128, 85, 80, 87, 65, 82, 196, 85, 80,
+ 84, 85, 82, 78, 128, 85, 80, 83, 73, 76, 79, 78, 128, 85, 80, 83, 73, 76,
+ 79, 206, 85, 80, 83, 73, 68, 69, 45, 68, 79, 87, 206, 85, 80, 82, 73, 71,
+ 72, 212, 85, 80, 80, 69, 82, 128, 85, 80, 80, 69, 210, 85, 80, 65, 68,
+ 72, 77, 65, 78, 73, 89, 65, 128, 85, 80, 45, 80, 79, 73, 78, 84, 73, 78,
+ 199, 85, 79, 78, 128, 85, 78, 78, 128, 85, 78, 77, 65, 82, 82, 73, 69,
+ 196, 85, 78, 75, 78, 79, 87, 78, 128, 85, 78, 75, 128, 85, 78, 73, 86,
+ 69, 82, 83, 65, 204, 85, 78, 73, 84, 89, 128, 85, 78, 73, 84, 128, 85,
+ 78, 73, 212, 85, 78, 73, 79, 78, 128, 85, 78, 73, 79, 206, 85, 78, 73,
+ 70, 73, 69, 196, 85, 78, 73, 67, 79, 82, 206, 85, 78, 68, 207, 85, 78,
+ 68, 69, 82, 84, 73, 69, 128, 85, 78, 68, 69, 82, 76, 73, 78, 197, 85, 78,
+ 68, 69, 82, 68, 79, 84, 128, 85, 78, 68, 69, 82, 66, 65, 82, 128, 85, 78,
+ 68, 69, 82, 128, 85, 78, 68, 69, 210, 85, 78, 67, 73, 193, 85, 78, 67,
+ 69, 82, 84, 65, 73, 78, 84, 217, 85, 78, 65, 83, 80, 73, 82, 65, 84, 69,
+ 68, 128, 85, 78, 65, 80, 128, 85, 78, 65, 77, 85, 83, 69, 196, 85, 78,
+ 65, 128, 85, 206, 85, 77, 85, 77, 128, 85, 77, 85, 205, 85, 77, 66, 82,
+ 69, 76, 76, 65, 128, 85, 77, 66, 82, 69, 76, 76, 193, 85, 77, 66, 73, 78,
128, 85, 75, 85, 128, 85, 75, 82, 65, 73, 78, 73, 65, 206, 85, 75, 65,
82, 65, 128, 85, 75, 65, 82, 193, 85, 75, 128, 85, 73, 76, 76, 69, 65,
78, 78, 128, 85, 73, 71, 72, 85, 210, 85, 71, 65, 82, 73, 84, 73, 195,
@@ -499,505 +521,576 @@ static unsigned char lexicon[] = {
85, 48, 48, 57, 128, 85, 48, 48, 56, 128, 85, 48, 48, 55, 128, 85, 48,
48, 54, 66, 128, 85, 48, 48, 54, 65, 128, 85, 48, 48, 54, 128, 85, 48,
48, 53, 128, 85, 48, 48, 52, 128, 85, 48, 48, 51, 128, 85, 48, 48, 50,
- 128, 85, 48, 48, 49, 128, 85, 45, 73, 45, 73, 128, 85, 45, 69, 79, 45,
- 69, 85, 128, 85, 45, 66, 82, 74, 71, 85, 128, 84, 90, 85, 128, 84, 90,
- 79, 65, 128, 84, 90, 79, 128, 84, 90, 73, 210, 84, 90, 73, 128, 84, 90,
- 69, 69, 128, 84, 90, 69, 128, 84, 90, 65, 65, 128, 84, 90, 65, 128, 84,
- 90, 128, 84, 89, 210, 84, 89, 80, 69, 45, 183, 84, 89, 80, 69, 45, 182,
- 84, 89, 80, 69, 45, 181, 84, 89, 80, 69, 45, 180, 84, 89, 80, 69, 45,
- 179, 84, 89, 80, 69, 45, 178, 84, 89, 80, 69, 45, 177, 84, 89, 80, 197,
- 84, 89, 79, 128, 84, 89, 73, 128, 84, 89, 69, 128, 84, 89, 65, 128, 84,
- 87, 79, 79, 128, 84, 87, 79, 45, 87, 65, 217, 84, 87, 79, 45, 84, 72, 73,
- 82, 84, 89, 128, 84, 87, 79, 45, 76, 73, 78, 197, 84, 87, 79, 45, 72, 69,
- 65, 68, 69, 196, 84, 87, 79, 45, 69, 205, 84, 87, 73, 83, 84, 69, 196,
- 84, 87, 73, 73, 128, 84, 87, 73, 128, 84, 87, 69, 78, 84, 89, 45, 84, 87,
- 79, 128, 84, 87, 69, 78, 84, 89, 45, 84, 72, 82, 69, 69, 128, 84, 87, 69,
- 78, 84, 89, 45, 83, 73, 88, 128, 84, 87, 69, 78, 84, 89, 45, 83, 69, 86,
- 69, 78, 128, 84, 87, 69, 78, 84, 89, 45, 79, 78, 69, 128, 84, 87, 69, 78,
- 84, 89, 45, 78, 73, 78, 69, 128, 84, 87, 69, 78, 84, 89, 45, 70, 79, 85,
- 82, 128, 84, 87, 69, 78, 84, 89, 45, 70, 73, 86, 69, 128, 84, 87, 69, 78,
- 84, 89, 45, 69, 73, 71, 72, 84, 200, 84, 87, 69, 78, 84, 89, 45, 69, 73,
- 71, 72, 84, 128, 84, 87, 69, 78, 84, 89, 128, 84, 87, 69, 78, 84, 217,
- 84, 87, 69, 76, 86, 69, 45, 84, 72, 73, 82, 84, 89, 128, 84, 87, 69, 76,
- 86, 69, 128, 84, 87, 69, 76, 86, 197, 84, 87, 69, 128, 84, 87, 65, 65,
- 128, 84, 87, 65, 128, 84, 86, 82, 73, 68, 79, 128, 84, 86, 73, 77, 65,
- 68, 85, 210, 84, 85, 88, 128, 84, 85, 85, 77, 85, 128, 84, 85, 85, 128,
- 84, 85, 84, 84, 89, 128, 84, 85, 84, 69, 89, 65, 83, 65, 84, 128, 84, 85,
- 84, 128, 84, 85, 82, 88, 128, 84, 85, 82, 85, 128, 84, 85, 82, 84, 76,
- 69, 128, 84, 85, 82, 79, 50, 128, 84, 85, 82, 78, 83, 84, 73, 76, 69,
- 128, 84, 85, 82, 78, 69, 196, 84, 85, 82, 206, 84, 85, 82, 75, 73, 83,
- 200, 84, 85, 82, 66, 65, 78, 128, 84, 85, 82, 128, 84, 85, 80, 128, 84,
- 85, 79, 88, 128, 84, 85, 79, 84, 128, 84, 85, 79, 80, 128, 84, 85, 79,
- 128, 84, 85, 78, 78, 89, 128, 84, 85, 77, 69, 84, 69, 83, 128, 84, 85,
- 77, 65, 69, 128, 84, 85, 77, 128, 84, 85, 76, 73, 80, 128, 84, 85, 75,
- 87, 69, 78, 84, 73, 83, 128, 84, 85, 75, 128, 84, 85, 71, 82, 73, 203,
- 84, 85, 71, 50, 128, 84, 85, 71, 178, 84, 85, 65, 82, 69, 199, 84, 85,
- 65, 69, 80, 128, 84, 85, 65, 69, 128, 84, 213, 84, 84, 85, 85, 128, 84,
- 84, 85, 68, 68, 65, 71, 128, 84, 84, 85, 68, 68, 65, 65, 71, 128, 84, 84,
- 85, 128, 84, 84, 84, 72, 65, 128, 84, 84, 84, 65, 128, 84, 84, 83, 85,
- 128, 84, 84, 83, 79, 128, 84, 84, 83, 73, 128, 84, 84, 83, 69, 69, 128,
- 84, 84, 83, 69, 128, 84, 84, 83, 65, 128, 84, 84, 79, 79, 128, 84, 84,
- 73, 73, 128, 84, 84, 73, 128, 84, 84, 72, 87, 69, 128, 84, 84, 72, 85,
- 128, 84, 84, 72, 79, 79, 128, 84, 84, 72, 79, 128, 84, 84, 72, 73, 128,
- 84, 84, 72, 69, 69, 128, 84, 84, 72, 69, 128, 84, 84, 72, 65, 65, 128,
- 84, 84, 72, 128, 84, 84, 69, 72, 69, 72, 128, 84, 84, 69, 72, 69, 200,
- 84, 84, 69, 72, 128, 84, 84, 69, 200, 84, 84, 69, 69, 128, 84, 84, 65,
- 89, 65, 78, 78, 65, 128, 84, 84, 65, 85, 128, 84, 84, 65, 73, 128, 84,
- 84, 65, 65, 128, 84, 84, 50, 128, 84, 83, 87, 69, 128, 84, 83, 87, 65,
- 128, 84, 83, 86, 128, 84, 83, 83, 69, 128, 84, 83, 83, 65, 128, 84, 83,
- 72, 85, 71, 83, 128, 84, 83, 72, 79, 79, 75, 128, 84, 83, 72, 79, 79,
- 203, 84, 83, 72, 69, 83, 128, 84, 83, 72, 69, 71, 128, 84, 83, 72, 69,
- 199, 84, 83, 72, 69, 128, 84, 83, 72, 65, 128, 84, 83, 69, 82, 69, 128,
- 84, 83, 65, 68, 73, 128, 84, 83, 65, 68, 201, 84, 83, 65, 65, 68, 73, 89,
- 128, 84, 83, 65, 65, 128, 84, 83, 193, 84, 82, 89, 66, 76, 73, 79, 206,
- 84, 82, 85, 84, 72, 128, 84, 82, 85, 78, 75, 128, 84, 82, 85, 78, 67, 65,
- 84, 69, 196, 84, 82, 85, 77, 80, 69, 84, 128, 84, 82, 85, 69, 128, 84,
- 82, 85, 67, 75, 128, 84, 82, 79, 80, 73, 67, 65, 204, 84, 82, 79, 80, 72,
- 89, 128, 84, 82, 79, 77, 73, 75, 79, 83, 89, 78, 65, 71, 77, 65, 128, 84,
- 82, 79, 77, 73, 75, 79, 80, 83, 73, 70, 73, 83, 84, 79, 78, 128, 84, 82,
- 79, 77, 73, 75, 79, 80, 65, 82, 65, 75, 65, 76, 69, 83, 77, 65, 128, 84,
- 82, 79, 77, 73, 75, 79, 78, 128, 84, 82, 79, 77, 73, 75, 79, 206, 84, 82,
- 79, 77, 73, 75, 79, 76, 89, 71, 73, 83, 77, 65, 128, 84, 82, 79, 76, 76,
- 69, 89, 66, 85, 83, 128, 84, 82, 79, 75, 85, 84, 65, 83, 84, 201, 84, 82,
- 79, 69, 90, 69, 78, 73, 65, 206, 84, 82, 73, 85, 77, 80, 72, 128, 84, 82,
- 73, 84, 79, 211, 84, 82, 73, 84, 73, 77, 79, 82, 73, 79, 78, 128, 84, 82,
- 73, 83, 73, 77, 79, 85, 128, 84, 82, 73, 83, 69, 77, 69, 128, 84, 82, 73,
- 80, 79, 68, 128, 84, 82, 73, 80, 76, 73, 128, 84, 82, 73, 80, 76, 197,
- 84, 82, 73, 79, 206, 84, 82, 73, 73, 83, 65, 80, 128, 84, 82, 73, 71, 82,
- 65, 77, 77, 79, 211, 84, 82, 73, 71, 82, 65, 205, 84, 82, 73, 71, 79, 82,
- 71, 79, 78, 128, 84, 82, 73, 70, 79, 78, 73, 65, 83, 128, 84, 82, 73, 70,
- 79, 76, 73, 65, 84, 197, 84, 82, 73, 68, 69, 78, 84, 128, 84, 82, 73, 68,
- 69, 78, 212, 84, 82, 73, 67, 79, 76, 79, 78, 128, 84, 82, 73, 65, 78, 71,
- 85, 76, 65, 210, 84, 82, 73, 65, 78, 71, 76, 69, 45, 82, 79, 85, 78, 196,
- 84, 82, 73, 65, 78, 71, 76, 69, 45, 72, 69, 65, 68, 69, 196, 84, 82, 73,
- 65, 78, 71, 76, 69, 128, 84, 82, 73, 65, 78, 71, 76, 197, 84, 82, 73, 65,
- 128, 84, 82, 73, 128, 84, 82, 69, 83, 73, 76, 76, 79, 128, 84, 82, 69,
- 78, 68, 128, 84, 82, 69, 78, 196, 84, 82, 69, 77, 79, 76, 79, 45, 51,
- 128, 84, 82, 69, 77, 79, 76, 79, 45, 50, 128, 84, 82, 69, 77, 79, 76, 79,
- 45, 49, 128, 84, 82, 69, 69, 128, 84, 82, 69, 197, 84, 82, 69, 65, 68,
- 73, 78, 71, 128, 84, 82, 65, 89, 128, 84, 82, 65, 80, 69, 90, 73, 85, 77,
- 128, 84, 82, 65, 78, 83, 86, 69, 82, 83, 65, 204, 84, 82, 65, 78, 83, 80,
- 79, 83, 73, 84, 73, 79, 206, 84, 82, 65, 78, 83, 77, 73, 212, 84, 82, 65,
- 78, 83, 77, 73, 83, 83, 73, 79, 78, 128, 84, 82, 65, 78, 83, 77, 73, 83,
- 83, 73, 79, 206, 84, 82, 65, 77, 87, 65, 89, 128, 84, 82, 65, 77, 128,
- 84, 82, 65, 205, 84, 82, 65, 73, 78, 128, 84, 82, 65, 73, 206, 84, 82,
- 65, 73, 76, 73, 78, 199, 84, 82, 65, 70, 70, 73, 67, 128, 84, 82, 65, 70,
- 70, 73, 195, 84, 82, 65, 68, 197, 84, 82, 65, 67, 84, 79, 82, 128, 84,
- 82, 65, 67, 75, 128, 84, 82, 128, 84, 79, 88, 128, 84, 79, 87, 69, 82,
- 128, 84, 79, 85, 82, 78, 79, 73, 211, 84, 79, 84, 65, 204, 84, 79, 84,
- 128, 84, 79, 82, 84, 79, 73, 83, 197, 84, 79, 82, 67, 85, 76, 85, 83,
- 128, 84, 79, 82, 67, 85, 76, 85, 211, 84, 79, 82, 67, 72, 128, 84, 79,
- 81, 128, 84, 79, 80, 66, 65, 82, 128, 84, 79, 80, 45, 76, 73, 71, 72, 84,
- 69, 196, 84, 79, 80, 128, 84, 79, 208, 84, 79, 79, 84, 72, 128, 84, 79,
- 79, 78, 128, 84, 79, 78, 79, 83, 128, 84, 79, 78, 71, 85, 69, 128, 84,
- 79, 78, 71, 85, 197, 84, 79, 78, 71, 128, 84, 79, 78, 69, 45, 56, 128,
- 84, 79, 78, 69, 45, 55, 128, 84, 79, 78, 69, 45, 54, 128, 84, 79, 78, 69,
- 45, 53, 128, 84, 79, 78, 69, 45, 52, 128, 84, 79, 78, 69, 45, 51, 128,
- 84, 79, 78, 69, 45, 50, 128, 84, 79, 78, 69, 45, 49, 128, 84, 79, 78, 69,
- 128, 84, 79, 78, 65, 204, 84, 79, 77, 80, 73, 128, 84, 79, 77, 65, 84,
- 79, 128, 84, 79, 76, 79, 78, 71, 128, 84, 79, 75, 89, 207, 84, 79, 73,
- 76, 69, 84, 128, 84, 79, 71, 69, 84, 72, 69, 82, 128, 84, 79, 68, 207,
- 84, 79, 65, 78, 68, 65, 75, 72, 73, 65, 84, 128, 84, 79, 65, 128, 84, 78,
- 128, 84, 76, 86, 128, 84, 76, 85, 128, 84, 76, 79, 128, 84, 76, 73, 128,
- 84, 76, 72, 89, 65, 128, 84, 76, 72, 87, 69, 128, 84, 76, 72, 85, 128,
- 84, 76, 72, 79, 79, 128, 84, 76, 72, 79, 128, 84, 76, 72, 73, 128, 84,
- 76, 72, 69, 69, 128, 84, 76, 72, 69, 128, 84, 76, 72, 65, 128, 84, 76,
- 69, 69, 128, 84, 76, 65, 128, 84, 74, 69, 128, 84, 73, 88, 128, 84, 73,
- 87, 78, 128, 84, 73, 87, 65, 218, 84, 73, 84, 85, 65, 69, 80, 128, 84,
- 73, 84, 76, 79, 128, 84, 73, 84, 193, 84, 73, 84, 128, 84, 73, 82, 89,
- 65, 75, 128, 84, 73, 82, 84, 193, 84, 73, 82, 79, 78, 73, 65, 206, 84,
- 73, 82, 69, 196, 84, 73, 82, 128, 84, 73, 210, 84, 73, 80, 80, 73, 128,
- 84, 73, 80, 69, 72, 65, 128, 84, 73, 80, 128, 84, 73, 208, 84, 73, 78,
- 89, 128, 84, 73, 78, 217, 84, 73, 78, 78, 69, 128, 84, 73, 78, 67, 84,
- 85, 82, 69, 128, 84, 73, 78, 65, 71, 77, 65, 128, 84, 73, 77, 69, 83,
- 128, 84, 73, 77, 69, 210, 84, 73, 77, 69, 128, 84, 73, 76, 68, 197, 84,
- 73, 76, 128, 84, 73, 204, 84, 73, 75, 69, 85, 84, 45, 84, 72, 73, 69, 85,
- 84, 72, 128, 84, 73, 75, 69, 85, 84, 45, 83, 73, 79, 83, 45, 75, 73, 89,
- 69, 79, 75, 128, 84, 73, 75, 69, 85, 84, 45, 83, 73, 79, 83, 128, 84, 73,
- 75, 69, 85, 84, 45, 82, 73, 69, 85, 76, 128, 84, 73, 75, 69, 85, 84, 45,
- 80, 73, 69, 85, 80, 128, 84, 73, 75, 69, 85, 84, 45, 77, 73, 69, 85, 77,
- 128, 84, 73, 75, 69, 85, 84, 45, 75, 73, 89, 69, 79, 75, 128, 84, 73, 75,
- 69, 85, 84, 45, 67, 73, 69, 85, 67, 128, 84, 73, 75, 69, 85, 84, 45, 67,
- 72, 73, 69, 85, 67, 72, 128, 84, 73, 75, 69, 85, 84, 128, 84, 73, 75, 69,
- 85, 212, 84, 73, 71, 72, 84, 76, 89, 45, 67, 76, 79, 83, 69, 196, 84, 73,
- 71, 72, 212, 84, 73, 71, 69, 82, 128, 84, 73, 71, 69, 210, 84, 73, 70,
- 73, 78, 65, 71, 200, 84, 73, 69, 88, 128, 84, 73, 69, 80, 128, 84, 73,
- 197, 84, 73, 67, 75, 69, 84, 128, 84, 73, 67, 75, 128, 84, 73, 67, 203,
- 84, 73, 65, 82, 65, 128, 84, 72, 90, 128, 84, 72, 89, 79, 79, 205, 84,
- 72, 87, 79, 79, 128, 84, 72, 87, 79, 128, 84, 72, 87, 73, 73, 128, 84,
- 72, 87, 73, 128, 84, 72, 87, 69, 69, 128, 84, 72, 87, 65, 65, 128, 84,
- 72, 87, 65, 128, 84, 72, 85, 82, 211, 84, 72, 85, 82, 73, 83, 65, 218,
- 84, 72, 85, 78, 71, 128, 84, 72, 85, 78, 68, 69, 82, 83, 84, 79, 82, 77,
- 128, 84, 72, 85, 78, 68, 69, 82, 128, 84, 72, 85, 78, 68, 69, 210, 84,
- 72, 85, 77, 66, 211, 84, 72, 82, 79, 87, 73, 78, 199, 84, 72, 82, 79, 85,
- 71, 72, 128, 84, 72, 82, 79, 85, 71, 200, 84, 72, 82, 69, 69, 45, 84, 72,
- 73, 82, 84, 89, 128, 84, 72, 82, 69, 69, 45, 80, 69, 82, 45, 69, 205, 84,
- 72, 82, 69, 69, 45, 76, 73, 78, 197, 84, 72, 82, 69, 69, 45, 69, 205, 84,
- 72, 82, 69, 69, 45, 196, 84, 72, 82, 69, 65, 68, 128, 84, 72, 79, 85, 83,
- 65, 78, 68, 211, 84, 72, 79, 85, 83, 65, 78, 68, 128, 84, 72, 79, 85, 83,
- 65, 78, 196, 84, 72, 79, 85, 71, 72, 212, 84, 72, 79, 85, 128, 84, 72,
- 79, 82, 78, 128, 84, 72, 79, 82, 206, 84, 72, 79, 78, 71, 128, 84, 72,
- 79, 65, 128, 84, 72, 207, 84, 72, 73, 85, 84, 72, 128, 84, 72, 73, 84,
- 65, 128, 84, 72, 73, 82, 84, 89, 45, 83, 69, 67, 79, 78, 196, 84, 72, 73,
- 82, 84, 89, 45, 79, 78, 69, 128, 84, 72, 73, 82, 84, 217, 84, 72, 73, 82,
- 84, 69, 69, 78, 128, 84, 72, 73, 82, 84, 69, 69, 206, 84, 72, 73, 82, 68,
- 83, 128, 84, 72, 73, 82, 68, 211, 84, 72, 73, 82, 68, 128, 84, 72, 73,
- 82, 196, 84, 72, 73, 206, 84, 72, 73, 73, 128, 84, 72, 73, 71, 72, 128,
- 84, 72, 73, 69, 85, 84, 200, 84, 72, 69, 89, 128, 84, 72, 69, 84, 72, 69,
- 128, 84, 72, 69, 84, 72, 128, 84, 72, 69, 84, 65, 128, 84, 72, 69, 84,
- 193, 84, 72, 69, 83, 80, 73, 65, 206, 84, 72, 69, 83, 69, 79, 83, 128,
- 84, 72, 69, 83, 69, 79, 211, 84, 72, 69, 211, 84, 72, 69, 82, 77, 79, 68,
- 89, 78, 65, 77, 73, 67, 128, 84, 72, 69, 82, 69, 70, 79, 82, 69, 128, 84,
- 72, 69, 82, 197, 84, 72, 69, 206, 84, 72, 69, 77, 65, 84, 73, 83, 77, 79,
- 211, 84, 72, 69, 77, 65, 128, 84, 72, 69, 77, 193, 84, 72, 69, 72, 128,
- 84, 72, 69, 200, 84, 72, 197, 84, 72, 65, 87, 128, 84, 72, 65, 78, 84,
- 72, 65, 75, 72, 65, 84, 128, 84, 72, 65, 78, 78, 65, 128, 84, 72, 65, 78,
- 128, 84, 72, 65, 206, 84, 72, 65, 76, 128, 84, 72, 65, 204, 84, 72, 65,
- 72, 65, 78, 128, 84, 72, 65, 65, 78, 193, 84, 72, 65, 65, 76, 85, 128,
- 84, 72, 45, 67, 82, 69, 197, 84, 69, 88, 84, 128, 84, 69, 88, 128, 84,
- 69, 86, 73, 82, 128, 84, 69, 85, 84, 69, 85, 88, 128, 84, 69, 85, 84, 69,
- 85, 87, 69, 78, 128, 84, 69, 85, 84, 128, 84, 69, 85, 78, 128, 84, 69,
- 85, 65, 69, 81, 128, 84, 69, 85, 65, 69, 78, 128, 84, 69, 85, 128, 84,
- 69, 84, 82, 65, 83, 73, 77, 79, 85, 128, 84, 69, 84, 82, 65, 83, 69, 77,
- 69, 128, 84, 69, 84, 82, 65, 80, 76, 73, 128, 84, 69, 84, 82, 65, 70, 79,
- 78, 73, 65, 83, 128, 84, 69, 84, 72, 128, 84, 69, 84, 200, 84, 69, 84,
- 65, 82, 84, 79, 211, 84, 69, 84, 65, 82, 84, 73, 77, 79, 82, 73, 79, 78,
- 128, 84, 69, 84, 128, 84, 69, 212, 84, 69, 83, 83, 69, 82, 65, 128, 84,
- 69, 83, 83, 69, 82, 193, 84, 69, 83, 83, 65, 82, 79, 206, 84, 69, 83,
- 200, 84, 69, 82, 77, 73, 78, 65, 84, 79, 82, 128, 84, 69, 80, 128, 84,
- 69, 78, 85, 84, 79, 128, 84, 69, 78, 85, 128, 84, 69, 78, 213, 84, 69,
- 78, 84, 72, 128, 84, 69, 78, 84, 128, 84, 69, 78, 211, 84, 69, 78, 78,
- 73, 211, 84, 69, 78, 71, 197, 84, 69, 78, 45, 84, 72, 73, 82, 84, 89,
- 128, 84, 69, 78, 128, 84, 69, 206, 84, 69, 77, 80, 85, 211, 84, 69, 76,
- 85, 128, 84, 69, 76, 79, 85, 211, 84, 69, 76, 76, 69, 210, 84, 69, 76,
- 73, 83, 72, 193, 84, 69, 76, 69, 86, 73, 83, 73, 79, 78, 128, 84, 69, 76,
- 69, 83, 67, 79, 80, 69, 128, 84, 69, 76, 69, 80, 72, 79, 78, 69, 128, 84,
- 69, 76, 69, 80, 72, 79, 78, 197, 84, 69, 76, 69, 73, 65, 128, 84, 69, 76,
- 69, 71, 82, 65, 80, 200, 84, 69, 73, 87, 83, 128, 84, 69, 71, 69, 72,
- 128, 84, 69, 69, 69, 69, 128, 84, 69, 197, 84, 69, 68, 85, 78, 71, 128,
- 84, 69, 65, 82, 211, 84, 69, 65, 82, 68, 82, 79, 80, 45, 83, 80, 79, 75,
- 69, 196, 84, 69, 65, 82, 68, 82, 79, 80, 45, 83, 72, 65, 78, 75, 69, 196,
- 84, 69, 65, 82, 68, 82, 79, 80, 45, 66, 65, 82, 66, 69, 196, 84, 69, 65,
- 82, 45, 79, 70, 198, 84, 69, 65, 67, 85, 208, 84, 69, 45, 85, 128, 84,
- 69, 45, 50, 128, 84, 67, 72, 69, 72, 69, 72, 128, 84, 67, 72, 69, 72, 69,
- 200, 84, 67, 72, 69, 72, 128, 84, 67, 72, 69, 200, 84, 67, 72, 69, 128,
- 84, 195, 84, 65, 89, 128, 84, 65, 88, 73, 128, 84, 65, 88, 128, 84, 65,
- 87, 69, 76, 76, 69, 77, 69, 212, 84, 65, 87, 65, 128, 84, 65, 87, 128,
- 84, 65, 86, 73, 89, 65, 78, 73, 128, 84, 65, 86, 128, 84, 65, 214, 84,
- 65, 85, 82, 85, 83, 128, 84, 65, 213, 84, 65, 84, 87, 69, 69, 76, 128,
- 84, 65, 84, 87, 69, 69, 204, 84, 65, 84, 84, 79, 79, 69, 196, 84, 65, 84,
+ 128, 85, 48, 48, 49, 128, 85, 45, 83, 72, 65, 80, 69, 196, 85, 45, 73,
+ 45, 73, 128, 85, 45, 69, 79, 45, 69, 85, 128, 85, 45, 66, 82, 74, 71, 85,
+ 128, 84, 90, 85, 128, 84, 90, 79, 65, 128, 84, 90, 79, 128, 84, 90, 73,
+ 210, 84, 90, 73, 128, 84, 90, 69, 69, 128, 84, 90, 69, 128, 84, 90, 65,
+ 65, 128, 84, 90, 65, 128, 84, 90, 128, 84, 89, 210, 84, 89, 80, 69, 45,
+ 183, 84, 89, 80, 69, 45, 54, 128, 84, 89, 80, 69, 45, 182, 84, 89, 80,
+ 69, 45, 53, 128, 84, 89, 80, 69, 45, 181, 84, 89, 80, 69, 45, 52, 128,
+ 84, 89, 80, 69, 45, 180, 84, 89, 80, 69, 45, 51, 128, 84, 89, 80, 69, 45,
+ 179, 84, 89, 80, 69, 45, 178, 84, 89, 80, 69, 45, 49, 45, 50, 128, 84,
+ 89, 80, 69, 45, 177, 84, 89, 80, 197, 84, 89, 79, 128, 84, 89, 73, 128,
+ 84, 89, 69, 128, 84, 89, 65, 89, 128, 84, 89, 65, 128, 84, 88, 87, 86,
+ 128, 84, 88, 87, 214, 84, 88, 72, 69, 69, 202, 84, 87, 79, 79, 128, 84,
+ 87, 79, 45, 87, 65, 217, 84, 87, 79, 45, 84, 72, 73, 82, 84, 89, 128, 84,
+ 87, 79, 45, 76, 73, 78, 197, 84, 87, 79, 45, 72, 69, 65, 68, 69, 196, 84,
+ 87, 79, 45, 69, 205, 84, 87, 79, 45, 67, 73, 82, 67, 76, 197, 84, 87, 73,
+ 83, 84, 73, 78, 71, 128, 84, 87, 73, 83, 84, 69, 196, 84, 87, 73, 73,
+ 128, 84, 87, 73, 128, 84, 87, 69, 78, 84, 89, 45, 84, 87, 79, 128, 84,
+ 87, 69, 78, 84, 89, 45, 84, 72, 82, 69, 69, 128, 84, 87, 69, 78, 84, 89,
+ 45, 83, 73, 88, 128, 84, 87, 69, 78, 84, 89, 45, 83, 69, 86, 69, 78, 128,
+ 84, 87, 69, 78, 84, 89, 45, 79, 78, 69, 128, 84, 87, 69, 78, 84, 89, 45,
+ 78, 73, 78, 69, 128, 84, 87, 69, 78, 84, 89, 45, 70, 79, 85, 82, 128, 84,
+ 87, 69, 78, 84, 89, 45, 70, 73, 86, 69, 128, 84, 87, 69, 78, 84, 89, 45,
+ 69, 73, 71, 72, 84, 200, 84, 87, 69, 78, 84, 89, 45, 69, 73, 71, 72, 84,
+ 128, 84, 87, 69, 78, 84, 89, 128, 84, 87, 69, 78, 84, 217, 84, 87, 69,
+ 76, 86, 69, 45, 84, 72, 73, 82, 84, 89, 128, 84, 87, 69, 76, 86, 69, 128,
+ 84, 87, 69, 76, 86, 197, 84, 87, 69, 76, 70, 84, 72, 83, 128, 84, 87, 69,
+ 76, 70, 84, 72, 128, 84, 87, 69, 128, 84, 87, 65, 65, 128, 84, 87, 65,
+ 128, 84, 86, 82, 73, 68, 79, 128, 84, 86, 73, 77, 65, 68, 85, 210, 84,
+ 85, 88, 128, 84, 85, 85, 77, 85, 128, 84, 85, 85, 128, 84, 85, 84, 84,
+ 89, 128, 84, 85, 84, 69, 89, 65, 83, 65, 84, 128, 84, 85, 84, 128, 84,
+ 85, 82, 88, 128, 84, 85, 82, 85, 128, 84, 85, 82, 84, 76, 69, 128, 84,
+ 85, 82, 79, 50, 128, 84, 85, 82, 78, 83, 84, 73, 76, 69, 128, 84, 85, 82,
+ 78, 69, 196, 84, 85, 82, 206, 84, 85, 82, 75, 73, 83, 200, 84, 85, 82,
+ 75, 73, 195, 84, 85, 82, 75, 69, 89, 128, 84, 85, 82, 66, 65, 78, 128,
+ 84, 85, 82, 128, 84, 85, 80, 128, 84, 85, 79, 88, 128, 84, 85, 79, 84,
+ 128, 84, 85, 79, 80, 128, 84, 85, 79, 128, 84, 85, 78, 78, 89, 128, 84,
+ 85, 77, 69, 84, 69, 83, 128, 84, 85, 77, 65, 69, 128, 84, 85, 77, 128,
+ 84, 85, 205, 84, 85, 76, 73, 80, 128, 84, 85, 75, 87, 69, 78, 84, 73, 83,
+ 128, 84, 85, 75, 128, 84, 85, 71, 82, 73, 203, 84, 85, 71, 50, 128, 84,
+ 85, 71, 178, 84, 85, 66, 128, 84, 85, 65, 82, 69, 199, 84, 85, 65, 69,
+ 80, 128, 84, 85, 65, 69, 128, 84, 213, 84, 84, 85, 85, 128, 84, 84, 85,
+ 68, 68, 65, 71, 128, 84, 84, 85, 68, 68, 65, 65, 71, 128, 84, 84, 85,
+ 128, 84, 84, 84, 72, 65, 128, 84, 84, 84, 65, 128, 84, 84, 83, 85, 128,
+ 84, 84, 83, 79, 128, 84, 84, 83, 73, 128, 84, 84, 83, 69, 69, 128, 84,
+ 84, 83, 69, 128, 84, 84, 83, 65, 128, 84, 84, 79, 79, 128, 84, 84, 73,
+ 73, 128, 84, 84, 73, 128, 84, 84, 72, 87, 69, 128, 84, 84, 72, 85, 128,
+ 84, 84, 72, 79, 79, 128, 84, 84, 72, 79, 128, 84, 84, 72, 73, 128, 84,
+ 84, 72, 69, 69, 128, 84, 84, 72, 69, 128, 84, 84, 72, 65, 65, 128, 84,
+ 84, 72, 128, 84, 84, 69, 72, 69, 72, 128, 84, 84, 69, 72, 69, 200, 84,
+ 84, 69, 72, 128, 84, 84, 69, 200, 84, 84, 69, 69, 128, 84, 84, 65, 89,
+ 65, 78, 78, 65, 128, 84, 84, 65, 85, 128, 84, 84, 65, 73, 128, 84, 84,
+ 65, 65, 128, 84, 84, 50, 128, 84, 83, 87, 69, 128, 84, 83, 87, 66, 128,
+ 84, 83, 87, 65, 128, 84, 83, 86, 128, 84, 83, 83, 69, 128, 84, 83, 83,
+ 65, 128, 84, 83, 79, 214, 84, 83, 73, 85, 128, 84, 83, 72, 85, 71, 83,
+ 128, 84, 83, 72, 79, 79, 75, 128, 84, 83, 72, 79, 79, 203, 84, 83, 72,
+ 79, 79, 74, 128, 84, 83, 72, 69, 83, 128, 84, 83, 72, 69, 71, 128, 84,
+ 83, 72, 69, 199, 84, 83, 72, 69, 69, 74, 128, 84, 83, 72, 69, 128, 84,
+ 83, 72, 65, 194, 84, 83, 72, 65, 128, 84, 83, 69, 82, 69, 128, 84, 83,
+ 69, 69, 66, 128, 84, 83, 65, 68, 73, 128, 84, 83, 65, 68, 201, 84, 83,
+ 65, 66, 128, 84, 83, 65, 65, 68, 73, 89, 128, 84, 83, 65, 65, 128, 84,
+ 83, 193, 84, 82, 89, 66, 76, 73, 79, 206, 84, 82, 85, 84, 72, 128, 84,
+ 82, 85, 78, 75, 128, 84, 82, 85, 78, 67, 65, 84, 69, 196, 84, 82, 85, 77,
+ 80, 69, 84, 128, 84, 82, 85, 77, 80, 45, 57, 128, 84, 82, 85, 77, 80, 45,
+ 56, 128, 84, 82, 85, 77, 80, 45, 55, 128, 84, 82, 85, 77, 80, 45, 54,
+ 128, 84, 82, 85, 77, 80, 45, 53, 128, 84, 82, 85, 77, 80, 45, 52, 128,
+ 84, 82, 85, 77, 80, 45, 51, 128, 84, 82, 85, 77, 80, 45, 50, 49, 128, 84,
+ 82, 85, 77, 80, 45, 50, 48, 128, 84, 82, 85, 77, 80, 45, 50, 128, 84, 82,
+ 85, 77, 80, 45, 49, 57, 128, 84, 82, 85, 77, 80, 45, 49, 56, 128, 84, 82,
+ 85, 77, 80, 45, 49, 55, 128, 84, 82, 85, 77, 80, 45, 49, 54, 128, 84, 82,
+ 85, 77, 80, 45, 49, 53, 128, 84, 82, 85, 77, 80, 45, 49, 52, 128, 84, 82,
+ 85, 77, 80, 45, 49, 51, 128, 84, 82, 85, 77, 80, 45, 49, 50, 128, 84, 82,
+ 85, 77, 80, 45, 49, 49, 128, 84, 82, 85, 77, 80, 45, 49, 48, 128, 84, 82,
+ 85, 77, 80, 45, 49, 128, 84, 82, 85, 69, 128, 84, 82, 85, 67, 75, 128,
+ 84, 82, 79, 80, 73, 67, 65, 204, 84, 82, 79, 80, 72, 89, 128, 84, 82, 79,
+ 77, 73, 75, 79, 83, 89, 78, 65, 71, 77, 65, 128, 84, 82, 79, 77, 73, 75,
+ 79, 80, 83, 73, 70, 73, 83, 84, 79, 78, 128, 84, 82, 79, 77, 73, 75, 79,
+ 80, 65, 82, 65, 75, 65, 76, 69, 83, 77, 65, 128, 84, 82, 79, 77, 73, 75,
+ 79, 78, 128, 84, 82, 79, 77, 73, 75, 79, 206, 84, 82, 79, 77, 73, 75, 79,
+ 76, 89, 71, 73, 83, 77, 65, 128, 84, 82, 79, 76, 76, 69, 89, 66, 85, 83,
+ 128, 84, 82, 79, 75, 85, 84, 65, 83, 84, 201, 84, 82, 79, 69, 90, 69, 78,
+ 73, 65, 206, 84, 82, 73, 85, 77, 80, 72, 128, 84, 82, 73, 84, 79, 211,
+ 84, 82, 73, 84, 73, 77, 79, 82, 73, 79, 78, 128, 84, 82, 73, 83, 73, 77,
+ 79, 85, 128, 84, 82, 73, 83, 69, 77, 69, 128, 84, 82, 73, 80, 79, 68,
+ 128, 84, 82, 73, 80, 76, 73, 128, 84, 82, 73, 80, 76, 69, 128, 84, 82,
+ 73, 80, 76, 197, 84, 82, 73, 79, 206, 84, 82, 73, 76, 76, 73, 79, 78, 83,
+ 128, 84, 82, 73, 73, 83, 65, 80, 128, 84, 82, 73, 71, 82, 65, 77, 77, 79,
+ 211, 84, 82, 73, 71, 82, 65, 205, 84, 82, 73, 71, 79, 82, 71, 79, 78,
+ 128, 84, 82, 73, 70, 79, 78, 73, 65, 83, 128, 84, 82, 73, 70, 79, 76, 73,
+ 65, 84, 197, 84, 82, 73, 68, 69, 78, 84, 128, 84, 82, 73, 68, 69, 78,
+ 212, 84, 82, 73, 67, 79, 76, 79, 78, 128, 84, 82, 73, 65, 78, 71, 85, 76,
+ 65, 210, 84, 82, 73, 65, 78, 71, 76, 69, 45, 82, 79, 85, 78, 196, 84, 82,
+ 73, 65, 78, 71, 76, 69, 45, 72, 69, 65, 68, 69, 196, 84, 82, 73, 65, 78,
+ 71, 76, 69, 128, 84, 82, 73, 65, 78, 71, 76, 197, 84, 82, 73, 65, 128,
+ 84, 82, 73, 128, 84, 82, 69, 83, 73, 76, 76, 79, 128, 84, 82, 69, 78, 68,
+ 128, 84, 82, 69, 78, 196, 84, 82, 69, 77, 79, 76, 79, 45, 51, 128, 84,
+ 82, 69, 77, 79, 76, 79, 45, 50, 128, 84, 82, 69, 77, 79, 76, 79, 45, 49,
+ 128, 84, 82, 69, 69, 128, 84, 82, 69, 197, 84, 82, 69, 65, 68, 73, 78,
+ 71, 128, 84, 82, 65, 89, 128, 84, 82, 65, 86, 69, 76, 45, 87, 65, 76, 76,
+ 80, 76, 65, 78, 197, 84, 82, 65, 86, 69, 76, 45, 70, 76, 79, 79, 82, 80,
+ 76, 65, 78, 197, 84, 82, 65, 80, 69, 90, 73, 85, 77, 128, 84, 82, 65, 78,
+ 83, 86, 69, 82, 83, 65, 204, 84, 82, 65, 78, 83, 80, 79, 83, 73, 84, 73,
+ 79, 206, 84, 82, 65, 78, 83, 77, 73, 212, 84, 82, 65, 78, 83, 77, 73, 83,
+ 83, 73, 79, 78, 128, 84, 82, 65, 78, 83, 77, 73, 83, 83, 73, 79, 206, 84,
+ 82, 65, 77, 87, 65, 89, 128, 84, 82, 65, 77, 128, 84, 82, 65, 205, 84,
+ 82, 65, 73, 78, 128, 84, 82, 65, 73, 206, 84, 82, 65, 73, 76, 73, 78,
+ 199, 84, 82, 65, 70, 70, 73, 67, 128, 84, 82, 65, 70, 70, 73, 195, 84,
+ 82, 65, 68, 197, 84, 82, 65, 67, 84, 79, 82, 128, 84, 82, 65, 67, 75, 66,
+ 65, 76, 76, 128, 84, 82, 65, 67, 75, 128, 84, 82, 65, 128, 84, 82, 128,
+ 84, 79, 88, 128, 84, 79, 87, 69, 82, 128, 84, 79, 87, 65, 82, 68, 211,
+ 84, 79, 86, 128, 84, 79, 85, 82, 78, 79, 73, 211, 84, 79, 85, 67, 72, 84,
+ 79, 78, 197, 84, 79, 85, 67, 72, 73, 78, 199, 84, 79, 85, 67, 72, 69,
+ 211, 84, 79, 85, 67, 200, 84, 79, 84, 65, 204, 84, 79, 84, 128, 84, 79,
+ 83, 128, 84, 79, 82, 84, 79, 73, 83, 197, 84, 79, 82, 83, 79, 45, 87, 65,
+ 76, 76, 80, 76, 65, 78, 197, 84, 79, 82, 83, 79, 45, 70, 76, 79, 79, 82,
+ 80, 76, 65, 78, 197, 84, 79, 82, 83, 79, 128, 84, 79, 82, 78, 65, 68, 79,
+ 128, 84, 79, 82, 67, 85, 76, 85, 83, 128, 84, 79, 82, 67, 85, 76, 85,
+ 211, 84, 79, 82, 67, 72, 128, 84, 79, 81, 128, 84, 79, 80, 66, 65, 82,
+ 128, 84, 79, 80, 45, 76, 73, 71, 72, 84, 69, 196, 84, 79, 80, 128, 84,
+ 79, 208, 84, 79, 79, 84, 72, 128, 84, 79, 79, 78, 128, 84, 79, 78, 79,
+ 83, 128, 84, 79, 78, 71, 85, 69, 128, 84, 79, 78, 71, 85, 197, 84, 79,
+ 78, 71, 128, 84, 79, 78, 69, 45, 56, 128, 84, 79, 78, 69, 45, 55, 128,
+ 84, 79, 78, 69, 45, 54, 128, 84, 79, 78, 69, 45, 53, 128, 84, 79, 78, 69,
+ 45, 52, 128, 84, 79, 78, 69, 45, 51, 128, 84, 79, 78, 69, 45, 50, 128,
+ 84, 79, 78, 69, 45, 49, 128, 84, 79, 78, 69, 128, 84, 79, 78, 65, 204,
+ 84, 79, 77, 80, 73, 128, 84, 79, 77, 65, 84, 79, 128, 84, 79, 76, 79, 78,
+ 71, 128, 84, 79, 75, 89, 207, 84, 79, 73, 76, 69, 84, 128, 84, 79, 71,
+ 69, 84, 72, 69, 82, 128, 84, 79, 68, 207, 84, 79, 65, 78, 68, 65, 75, 72,
+ 73, 65, 84, 128, 84, 79, 65, 128, 84, 78, 128, 84, 76, 86, 128, 84, 76,
+ 85, 128, 84, 76, 79, 128, 84, 76, 73, 128, 84, 76, 72, 89, 65, 128, 84,
+ 76, 72, 87, 69, 128, 84, 76, 72, 85, 128, 84, 76, 72, 79, 79, 128, 84,
+ 76, 72, 79, 128, 84, 76, 72, 73, 128, 84, 76, 72, 69, 69, 128, 84, 76,
+ 72, 69, 128, 84, 76, 72, 65, 128, 84, 76, 69, 69, 128, 84, 76, 65, 128,
+ 84, 74, 69, 128, 84, 73, 88, 128, 84, 73, 87, 82, 128, 84, 73, 87, 78,
+ 128, 84, 73, 87, 65, 218, 84, 73, 84, 85, 65, 69, 80, 128, 84, 73, 84,
+ 76, 79, 128, 84, 73, 84, 76, 207, 84, 73, 84, 193, 84, 73, 84, 128, 84,
+ 73, 82, 89, 65, 75, 128, 84, 73, 82, 84, 193, 84, 73, 82, 79, 78, 73, 65,
+ 206, 84, 73, 82, 72, 85, 84, 193, 84, 73, 82, 69, 196, 84, 73, 82, 128,
+ 84, 73, 210, 84, 73, 80, 80, 73, 128, 84, 73, 80, 69, 72, 65, 128, 84,
+ 73, 80, 128, 84, 73, 208, 84, 73, 78, 89, 128, 84, 73, 78, 217, 84, 73,
+ 78, 78, 69, 128, 84, 73, 78, 67, 84, 85, 82, 69, 128, 84, 73, 78, 65, 71,
+ 77, 65, 128, 84, 73, 77, 69, 83, 128, 84, 73, 77, 69, 210, 84, 73, 77,
+ 69, 128, 84, 73, 76, 84, 73, 78, 71, 128, 84, 73, 76, 84, 73, 78, 199,
+ 84, 73, 76, 84, 128, 84, 73, 76, 69, 83, 128, 84, 73, 76, 68, 69, 128,
+ 84, 73, 76, 68, 197, 84, 73, 76, 128, 84, 73, 204, 84, 73, 75, 69, 85,
+ 84, 45, 84, 72, 73, 69, 85, 84, 72, 128, 84, 73, 75, 69, 85, 84, 45, 83,
+ 73, 79, 83, 45, 75, 73, 89, 69, 79, 75, 128, 84, 73, 75, 69, 85, 84, 45,
+ 83, 73, 79, 83, 128, 84, 73, 75, 69, 85, 84, 45, 82, 73, 69, 85, 76, 128,
+ 84, 73, 75, 69, 85, 84, 45, 80, 73, 69, 85, 80, 128, 84, 73, 75, 69, 85,
+ 84, 45, 77, 73, 69, 85, 77, 128, 84, 73, 75, 69, 85, 84, 45, 75, 73, 89,
+ 69, 79, 75, 128, 84, 73, 75, 69, 85, 84, 45, 67, 73, 69, 85, 67, 128, 84,
+ 73, 75, 69, 85, 84, 45, 67, 72, 73, 69, 85, 67, 72, 128, 84, 73, 75, 69,
+ 85, 84, 128, 84, 73, 75, 69, 85, 212, 84, 73, 71, 72, 84, 76, 89, 45, 67,
+ 76, 79, 83, 69, 196, 84, 73, 71, 72, 212, 84, 73, 71, 69, 82, 128, 84,
+ 73, 71, 69, 210, 84, 73, 70, 73, 78, 65, 71, 200, 84, 73, 69, 88, 128,
+ 84, 73, 69, 80, 128, 84, 73, 197, 84, 73, 67, 75, 69, 84, 83, 128, 84,
+ 73, 67, 75, 69, 84, 128, 84, 73, 67, 75, 128, 84, 73, 67, 203, 84, 73,
+ 65, 82, 65, 128, 84, 73, 50, 128, 84, 72, 90, 128, 84, 72, 89, 79, 79,
+ 205, 84, 72, 87, 79, 79, 128, 84, 72, 87, 79, 128, 84, 72, 87, 73, 73,
+ 128, 84, 72, 87, 73, 128, 84, 72, 87, 69, 69, 128, 84, 72, 87, 65, 65,
+ 128, 84, 72, 87, 65, 128, 84, 72, 85, 82, 211, 84, 72, 85, 82, 73, 83,
+ 65, 218, 84, 72, 85, 78, 71, 128, 84, 72, 85, 78, 68, 69, 82, 83, 84, 79,
+ 82, 77, 128, 84, 72, 85, 78, 68, 69, 82, 128, 84, 72, 85, 78, 68, 69,
+ 210, 84, 72, 85, 77, 66, 211, 84, 72, 85, 77, 66, 128, 84, 72, 82, 79,
+ 87, 73, 78, 199, 84, 72, 82, 79, 85, 71, 72, 128, 84, 72, 82, 79, 85, 71,
+ 200, 84, 72, 82, 69, 69, 45, 84, 72, 73, 82, 84, 89, 128, 84, 72, 82, 69,
+ 69, 45, 81, 85, 65, 82, 84, 69, 210, 84, 72, 82, 69, 69, 45, 80, 69, 82,
+ 45, 69, 205, 84, 72, 82, 69, 69, 45, 76, 73, 78, 197, 84, 72, 82, 69, 69,
+ 45, 69, 205, 84, 72, 82, 69, 69, 45, 196, 84, 72, 82, 69, 69, 45, 67, 73,
+ 82, 67, 76, 197, 84, 72, 82, 69, 65, 68, 128, 84, 72, 79, 85, 83, 65, 78,
+ 68, 83, 128, 84, 72, 79, 85, 83, 65, 78, 68, 211, 84, 72, 79, 85, 83, 65,
+ 78, 68, 128, 84, 72, 79, 85, 83, 65, 78, 196, 84, 72, 79, 85, 71, 72,
+ 212, 84, 72, 79, 85, 128, 84, 72, 79, 82, 78, 128, 84, 72, 79, 82, 206,
+ 84, 72, 79, 78, 71, 128, 84, 72, 79, 77, 128, 84, 72, 79, 74, 128, 84,
+ 72, 79, 65, 128, 84, 72, 207, 84, 72, 73, 85, 84, 72, 128, 84, 72, 73,
+ 84, 65, 128, 84, 72, 73, 82, 84, 89, 45, 83, 69, 67, 79, 78, 196, 84, 72,
+ 73, 82, 84, 89, 45, 79, 78, 69, 128, 84, 72, 73, 82, 84, 217, 84, 72, 73,
+ 82, 84, 69, 69, 78, 128, 84, 72, 73, 82, 84, 69, 69, 206, 84, 72, 73, 82,
+ 68, 83, 128, 84, 72, 73, 82, 68, 211, 84, 72, 73, 82, 68, 45, 83, 84, 65,
+ 71, 197, 84, 72, 73, 82, 68, 128, 84, 72, 73, 82, 196, 84, 72, 73, 78,
+ 75, 73, 78, 199, 84, 72, 73, 73, 128, 84, 72, 73, 71, 72, 128, 84, 72,
+ 73, 69, 85, 84, 200, 84, 72, 73, 67, 203, 84, 72, 73, 65, 66, 128, 84,
+ 72, 69, 89, 128, 84, 72, 69, 84, 72, 69, 128, 84, 72, 69, 84, 72, 128,
+ 84, 72, 69, 84, 65, 128, 84, 72, 69, 84, 193, 84, 72, 69, 83, 80, 73, 65,
+ 206, 84, 72, 69, 83, 69, 79, 83, 128, 84, 72, 69, 83, 69, 79, 211, 84,
+ 72, 69, 211, 84, 72, 69, 82, 77, 79, 77, 69, 84, 69, 82, 128, 84, 72, 69,
+ 82, 77, 79, 68, 89, 78, 65, 77, 73, 67, 128, 84, 72, 69, 82, 69, 70, 79,
+ 82, 69, 128, 84, 72, 69, 82, 197, 84, 72, 69, 206, 84, 72, 69, 77, 65,
+ 84, 73, 83, 77, 79, 211, 84, 72, 69, 77, 65, 128, 84, 72, 69, 77, 193,
+ 84, 72, 69, 72, 128, 84, 72, 69, 200, 84, 72, 69, 65, 128, 84, 72, 197,
+ 84, 72, 65, 87, 128, 84, 72, 65, 78, 84, 72, 65, 75, 72, 65, 84, 128, 84,
+ 72, 65, 78, 78, 65, 128, 84, 72, 65, 78, 128, 84, 72, 65, 206, 84, 72,
+ 65, 77, 69, 68, 72, 128, 84, 72, 65, 76, 128, 84, 72, 65, 204, 84, 72,
+ 65, 74, 128, 84, 72, 65, 201, 84, 72, 65, 72, 65, 78, 128, 84, 72, 65,
+ 65, 78, 193, 84, 72, 65, 65, 76, 85, 128, 84, 72, 45, 67, 82, 69, 197,
+ 84, 69, 88, 84, 128, 84, 69, 88, 212, 84, 69, 88, 128, 84, 69, 86, 73,
+ 82, 128, 84, 69, 85, 84, 69, 85, 88, 128, 84, 69, 85, 84, 69, 85, 87, 69,
+ 78, 128, 84, 69, 85, 84, 128, 84, 69, 85, 78, 128, 84, 69, 85, 65, 69,
+ 81, 128, 84, 69, 85, 65, 69, 78, 128, 84, 69, 85, 128, 84, 69, 84, 82,
+ 65, 83, 73, 77, 79, 85, 128, 84, 69, 84, 82, 65, 83, 69, 77, 69, 128, 84,
+ 69, 84, 82, 65, 80, 76, 73, 128, 84, 69, 84, 82, 65, 71, 82, 65, 205, 84,
+ 69, 84, 82, 65, 70, 79, 78, 73, 65, 83, 128, 84, 69, 84, 72, 128, 84, 69,
+ 84, 200, 84, 69, 84, 65, 82, 84, 79, 211, 84, 69, 84, 65, 82, 84, 73, 77,
+ 79, 82, 73, 79, 78, 128, 84, 69, 84, 128, 84, 69, 212, 84, 69, 83, 83,
+ 69, 82, 65, 128, 84, 69, 83, 83, 69, 82, 193, 84, 69, 83, 83, 65, 82, 79,
+ 206, 84, 69, 83, 200, 84, 69, 82, 77, 73, 78, 65, 84, 79, 82, 128, 84,
+ 69, 80, 128, 84, 69, 78, 85, 84, 79, 128, 84, 69, 78, 85, 128, 84, 69,
+ 78, 213, 84, 69, 78, 84, 72, 128, 84, 69, 78, 84, 128, 84, 69, 78, 83,
+ 69, 128, 84, 69, 78, 83, 197, 84, 69, 78, 83, 128, 84, 69, 78, 211, 84,
+ 69, 78, 78, 73, 211, 84, 69, 78, 71, 197, 84, 69, 78, 45, 84, 72, 73, 82,
+ 84, 89, 128, 84, 69, 78, 128, 84, 69, 206, 84, 69, 77, 80, 85, 211, 84,
+ 69, 76, 85, 128, 84, 69, 76, 79, 85, 211, 84, 69, 76, 76, 69, 210, 84,
+ 69, 76, 73, 83, 72, 193, 84, 69, 76, 69, 86, 73, 83, 73, 79, 78, 128, 84,
+ 69, 76, 69, 83, 67, 79, 80, 69, 128, 84, 69, 76, 69, 80, 72, 79, 78, 69,
+ 128, 84, 69, 76, 69, 80, 72, 79, 78, 197, 84, 69, 76, 69, 73, 65, 128,
+ 84, 69, 76, 69, 71, 82, 65, 80, 200, 84, 69, 75, 128, 84, 69, 73, 87, 83,
+ 128, 84, 69, 71, 69, 72, 128, 84, 69, 69, 84, 72, 128, 84, 69, 69, 84,
+ 200, 84, 69, 69, 78, 83, 128, 84, 69, 69, 69, 69, 128, 84, 69, 197, 84,
+ 69, 68, 85, 78, 71, 128, 84, 69, 65, 82, 211, 84, 69, 65, 82, 68, 82, 79,
+ 80, 45, 83, 80, 79, 75, 69, 196, 84, 69, 65, 82, 68, 82, 79, 80, 45, 83,
+ 72, 65, 78, 75, 69, 196, 84, 69, 65, 82, 68, 82, 79, 80, 45, 66, 65, 82,
+ 66, 69, 196, 84, 69, 65, 82, 45, 79, 70, 198, 84, 69, 65, 67, 85, 208,
+ 84, 69, 45, 85, 128, 84, 69, 45, 50, 128, 84, 67, 72, 69, 72, 69, 72,
+ 128, 84, 67, 72, 69, 72, 69, 200, 84, 67, 72, 69, 72, 128, 84, 67, 72,
+ 69, 200, 84, 67, 72, 69, 128, 84, 195, 84, 65, 89, 128, 84, 65, 88, 73,
+ 128, 84, 65, 88, 128, 84, 65, 87, 69, 76, 76, 69, 77, 69, 212, 84, 65,
+ 87, 65, 128, 84, 65, 87, 128, 84, 65, 86, 73, 89, 65, 78, 73, 128, 84,
+ 65, 86, 128, 84, 65, 214, 84, 65, 85, 82, 85, 83, 128, 84, 65, 85, 77,
+ 128, 84, 65, 213, 84, 65, 84, 87, 69, 69, 76, 128, 84, 65, 84, 87, 69,
+ 69, 204, 84, 65, 84, 84, 79, 79, 69, 196, 84, 65, 84, 128, 84, 65, 83,
128, 84, 65, 82, 85, 78, 71, 128, 84, 65, 82, 84, 65, 82, 45, 50, 128,
- 84, 65, 82, 84, 65, 82, 128, 84, 65, 81, 128, 84, 65, 80, 69, 82, 128,
- 84, 65, 80, 197, 84, 65, 80, 128, 84, 65, 79, 128, 84, 65, 78, 78, 69,
- 196, 84, 65, 78, 71, 69, 82, 73, 78, 69, 128, 84, 65, 78, 199, 84, 65,
- 78, 65, 66, 65, 84, 193, 84, 65, 78, 128, 84, 65, 77, 73, 78, 71, 128,
- 84, 65, 77, 128, 84, 65, 76, 76, 128, 84, 65, 76, 204, 84, 65, 76, 73,
- 78, 71, 128, 84, 65, 76, 73, 78, 199, 84, 65, 76, 69, 78, 84, 83, 128,
- 84, 65, 76, 69, 78, 212, 84, 65, 75, 82, 201, 84, 65, 75, 72, 65, 76, 76,
- 85, 83, 128, 84, 65, 75, 69, 128, 84, 65, 75, 52, 128, 84, 65, 75, 128,
- 84, 65, 73, 83, 89, 79, 85, 128, 84, 65, 73, 76, 76, 69, 83, 211, 84, 65,
- 73, 76, 128, 84, 65, 73, 204, 84, 65, 72, 128, 84, 65, 200, 84, 65, 71,
- 66, 65, 78, 87, 193, 84, 65, 71, 65, 76, 79, 199, 84, 65, 71, 128, 84,
- 65, 69, 206, 84, 65, 67, 75, 128, 84, 65, 67, 203, 84, 65, 66, 85, 76,
- 65, 84, 73, 79, 78, 128, 84, 65, 66, 85, 76, 65, 84, 73, 79, 206, 84, 65,
- 66, 83, 128, 84, 65, 66, 76, 69, 128, 84, 65, 66, 128, 84, 65, 194, 84,
- 65, 65, 83, 72, 65, 69, 128, 84, 65, 65, 81, 128, 84, 65, 65, 77, 128,
- 84, 65, 65, 76, 85, 74, 193, 84, 65, 65, 73, 128, 84, 65, 65, 70, 128,
- 84, 65, 50, 128, 84, 65, 45, 82, 79, 76, 128, 84, 65, 45, 50, 128, 84,
- 48, 51, 54, 128, 84, 48, 51, 53, 128, 84, 48, 51, 52, 128, 84, 48, 51,
- 51, 65, 128, 84, 48, 51, 51, 128, 84, 48, 51, 50, 65, 128, 84, 48, 51,
- 50, 128, 84, 48, 51, 49, 128, 84, 48, 51, 48, 128, 84, 48, 50, 57, 128,
- 84, 48, 50, 56, 128, 84, 48, 50, 55, 128, 84, 48, 50, 54, 128, 84, 48,
- 50, 53, 128, 84, 48, 50, 52, 128, 84, 48, 50, 51, 128, 84, 48, 50, 50,
- 128, 84, 48, 50, 49, 128, 84, 48, 50, 48, 128, 84, 48, 49, 57, 128, 84,
- 48, 49, 56, 128, 84, 48, 49, 55, 128, 84, 48, 49, 54, 65, 128, 84, 48,
- 49, 54, 128, 84, 48, 49, 53, 128, 84, 48, 49, 52, 128, 84, 48, 49, 51,
- 128, 84, 48, 49, 50, 128, 84, 48, 49, 49, 65, 128, 84, 48, 49, 49, 128,
- 84, 48, 49, 48, 128, 84, 48, 48, 57, 65, 128, 84, 48, 48, 57, 128, 84,
- 48, 48, 56, 65, 128, 84, 48, 48, 56, 128, 84, 48, 48, 55, 65, 128, 84,
- 48, 48, 55, 128, 84, 48, 48, 54, 128, 84, 48, 48, 53, 128, 84, 48, 48,
- 52, 128, 84, 48, 48, 51, 65, 128, 84, 48, 48, 51, 128, 84, 48, 48, 50,
- 128, 84, 48, 48, 49, 128, 84, 45, 83, 72, 73, 82, 84, 128, 83, 90, 90,
- 128, 83, 90, 87, 71, 128, 83, 90, 87, 65, 128, 83, 90, 85, 128, 83, 90,
- 79, 128, 83, 90, 73, 128, 83, 90, 69, 69, 128, 83, 90, 69, 128, 83, 90,
- 65, 65, 128, 83, 90, 65, 128, 83, 90, 128, 83, 89, 88, 128, 83, 89, 84,
- 128, 83, 89, 83, 84, 69, 205, 83, 89, 82, 88, 128, 83, 89, 82, 77, 65,
- 84, 73, 75, 73, 128, 83, 89, 82, 77, 65, 128, 83, 89, 82, 73, 78, 71, 69,
- 128, 83, 89, 82, 128, 83, 89, 80, 128, 83, 89, 79, 85, 87, 65, 128, 83,
- 89, 78, 69, 86, 77, 65, 128, 83, 89, 78, 68, 69, 83, 77, 79, 211, 83, 89,
- 78, 67, 72, 82, 79, 78, 79, 85, 211, 83, 89, 78, 65, 71, 77, 193, 83, 89,
- 78, 65, 70, 73, 128, 83, 89, 78, 128, 83, 89, 77, 77, 69, 84, 82, 89,
- 128, 83, 89, 77, 77, 69, 84, 82, 73, 195, 83, 89, 77, 66, 79, 76, 83,
- 128, 83, 89, 77, 66, 79, 76, 45, 57, 128, 83, 89, 77, 66, 79, 76, 45, 56,
- 128, 83, 89, 77, 66, 79, 76, 45, 55, 128, 83, 89, 77, 66, 79, 76, 45, 54,
- 128, 83, 89, 77, 66, 79, 76, 45, 53, 52, 128, 83, 89, 77, 66, 79, 76, 45,
- 53, 51, 128, 83, 89, 77, 66, 79, 76, 45, 53, 50, 128, 83, 89, 77, 66, 79,
- 76, 45, 53, 49, 128, 83, 89, 77, 66, 79, 76, 45, 53, 48, 128, 83, 89, 77,
- 66, 79, 76, 45, 53, 128, 83, 89, 77, 66, 79, 76, 45, 52, 57, 128, 83, 89,
- 77, 66, 79, 76, 45, 52, 56, 128, 83, 89, 77, 66, 79, 76, 45, 52, 55, 128,
- 83, 89, 77, 66, 79, 76, 45, 52, 53, 128, 83, 89, 77, 66, 79, 76, 45, 52,
- 51, 128, 83, 89, 77, 66, 79, 76, 45, 52, 50, 128, 83, 89, 77, 66, 79, 76,
- 45, 52, 48, 128, 83, 89, 77, 66, 79, 76, 45, 52, 128, 83, 89, 77, 66, 79,
- 76, 45, 51, 57, 128, 83, 89, 77, 66, 79, 76, 45, 51, 56, 128, 83, 89, 77,
- 66, 79, 76, 45, 51, 55, 128, 83, 89, 77, 66, 79, 76, 45, 51, 54, 128, 83,
- 89, 77, 66, 79, 76, 45, 51, 50, 128, 83, 89, 77, 66, 79, 76, 45, 51, 48,
- 128, 83, 89, 77, 66, 79, 76, 45, 51, 128, 83, 89, 77, 66, 79, 76, 45, 50,
- 57, 128, 83, 89, 77, 66, 79, 76, 45, 50, 55, 128, 83, 89, 77, 66, 79, 76,
- 45, 50, 54, 128, 83, 89, 77, 66, 79, 76, 45, 50, 53, 128, 83, 89, 77, 66,
- 79, 76, 45, 50, 52, 128, 83, 89, 77, 66, 79, 76, 45, 50, 51, 128, 83, 89,
- 77, 66, 79, 76, 45, 50, 50, 128, 83, 89, 77, 66, 79, 76, 45, 50, 49, 128,
- 83, 89, 77, 66, 79, 76, 45, 50, 48, 128, 83, 89, 77, 66, 79, 76, 45, 50,
- 128, 83, 89, 77, 66, 79, 76, 45, 49, 57, 128, 83, 89, 77, 66, 79, 76, 45,
- 49, 56, 128, 83, 89, 77, 66, 79, 76, 45, 49, 55, 128, 83, 89, 77, 66, 79,
- 76, 45, 49, 54, 128, 83, 89, 77, 66, 79, 76, 45, 49, 53, 128, 83, 89, 77,
- 66, 79, 76, 45, 49, 52, 128, 83, 89, 77, 66, 79, 76, 45, 49, 51, 128, 83,
- 89, 77, 66, 79, 76, 45, 49, 50, 128, 83, 89, 77, 66, 79, 76, 45, 49, 49,
- 128, 83, 89, 77, 66, 79, 76, 45, 49, 48, 128, 83, 89, 77, 66, 79, 76, 45,
- 49, 128, 83, 89, 76, 79, 84, 201, 83, 89, 128, 83, 87, 90, 128, 83, 87,
- 85, 78, 199, 83, 87, 79, 82, 68, 83, 128, 83, 87, 79, 82, 68, 128, 83,
- 87, 79, 79, 128, 83, 87, 79, 128, 83, 87, 73, 82, 204, 83, 87, 73, 77,
- 77, 73, 78, 71, 128, 83, 87, 73, 77, 77, 69, 82, 128, 83, 87, 73, 73,
- 128, 83, 87, 73, 128, 83, 87, 71, 128, 83, 87, 69, 69, 84, 128, 83, 87,
- 69, 69, 212, 83, 87, 69, 65, 84, 128, 83, 87, 69, 65, 212, 83, 87, 65,
- 83, 200, 83, 87, 65, 80, 80, 73, 78, 71, 128, 83, 87, 65, 65, 128, 83,
- 87, 128, 83, 86, 65, 83, 84, 201, 83, 86, 65, 82, 73, 84, 65, 128, 83,
- 86, 65, 82, 73, 84, 193, 83, 85, 88, 128, 83, 85, 85, 128, 83, 85, 84,
- 128, 83, 85, 83, 80, 69, 78, 83, 73, 79, 206, 83, 85, 83, 72, 73, 128,
- 83, 85, 82, 89, 65, 128, 83, 85, 82, 88, 128, 83, 85, 82, 82, 79, 85, 78,
- 68, 128, 83, 85, 82, 82, 79, 85, 78, 196, 83, 85, 82, 70, 69, 82, 128,
- 83, 85, 82, 70, 65, 67, 197, 83, 85, 82, 69, 128, 83, 85, 82, 65, 78, 71,
- 128, 83, 85, 82, 57, 128, 83, 85, 82, 128, 83, 85, 210, 83, 85, 80, 82,
- 65, 76, 73, 78, 69, 65, 210, 83, 85, 80, 69, 82, 86, 73, 83, 69, 128, 83,
- 85, 80, 69, 82, 83, 69, 84, 128, 83, 85, 80, 69, 82, 83, 69, 212, 83, 85,
- 80, 69, 82, 83, 67, 82, 73, 80, 212, 83, 85, 80, 69, 82, 73, 77, 80, 79,
- 83, 69, 196, 83, 85, 80, 69, 82, 70, 73, 88, 69, 196, 83, 85, 80, 69,
- 210, 83, 85, 80, 128, 83, 85, 79, 88, 128, 83, 85, 79, 80, 128, 83, 85,
- 79, 128, 83, 85, 78, 83, 69, 212, 83, 85, 78, 82, 73, 83, 69, 128, 83,
- 85, 78, 82, 73, 83, 197, 83, 85, 78, 71, 76, 65, 83, 83, 69, 83, 128, 83,
- 85, 78, 71, 128, 83, 85, 78, 70, 76, 79, 87, 69, 82, 128, 83, 85, 78,
- 128, 83, 85, 206, 83, 85, 77, 77, 69, 82, 128, 83, 85, 77, 77, 65, 84,
- 73, 79, 78, 128, 83, 85, 77, 77, 65, 84, 73, 79, 206, 83, 85, 77, 65, 83,
- 72, 128, 83, 85, 77, 128, 83, 85, 76, 70, 85, 82, 128, 83, 85, 75, 85,
- 78, 128, 83, 85, 75, 85, 206, 83, 85, 75, 85, 128, 83, 85, 75, 213, 83,
- 85, 73, 84, 65, 66, 76, 69, 128, 83, 85, 73, 84, 128, 83, 85, 72, 85, 82,
- 128, 83, 85, 69, 128, 83, 85, 68, 50, 128, 83, 85, 68, 128, 83, 85, 67,
- 67, 69, 69, 68, 83, 128, 83, 85, 67, 67, 69, 69, 68, 211, 83, 85, 67, 67,
- 69, 69, 68, 128, 83, 85, 67, 67, 69, 69, 196, 83, 85, 66, 85, 78, 73, 84,
- 128, 83, 85, 66, 83, 84, 73, 84, 85, 84, 73, 79, 206, 83, 85, 66, 83, 84,
- 73, 84, 85, 84, 69, 128, 83, 85, 66, 83, 84, 73, 84, 85, 84, 197, 83, 85,
- 66, 83, 69, 84, 128, 83, 85, 66, 83, 69, 212, 83, 85, 66, 83, 67, 82, 73,
- 80, 212, 83, 85, 66, 80, 85, 78, 67, 84, 73, 83, 128, 83, 85, 66, 76, 73,
- 78, 69, 65, 210, 83, 85, 66, 76, 73, 77, 65, 84, 73, 79, 78, 128, 83, 85,
- 66, 76, 73, 77, 65, 84, 69, 45, 51, 128, 83, 85, 66, 76, 73, 77, 65, 84,
- 69, 45, 50, 128, 83, 85, 66, 76, 73, 77, 65, 84, 69, 128, 83, 85, 66, 76,
- 73, 77, 65, 84, 197, 83, 85, 66, 74, 79, 73, 78, 69, 196, 83, 85, 66, 74,
- 69, 67, 84, 128, 83, 85, 66, 73, 84, 79, 128, 83, 85, 66, 71, 82, 79, 85,
- 80, 128, 83, 85, 66, 71, 82, 79, 85, 208, 83, 85, 66, 128, 83, 85, 65,
- 69, 84, 128, 83, 85, 65, 69, 78, 128, 83, 85, 65, 69, 128, 83, 85, 65,
- 128, 83, 213, 83, 84, 88, 128, 83, 84, 87, 65, 128, 83, 84, 85, 68, 89,
- 128, 83, 84, 85, 67, 75, 45, 79, 85, 212, 83, 84, 83, 128, 83, 84, 82,
- 79, 78, 199, 83, 84, 82, 79, 75, 69, 83, 128, 83, 84, 82, 79, 75, 69,
- 211, 83, 84, 82, 79, 75, 69, 45, 57, 128, 83, 84, 82, 79, 75, 69, 45, 56,
- 128, 83, 84, 82, 79, 75, 69, 45, 55, 128, 83, 84, 82, 79, 75, 69, 45, 54,
- 128, 83, 84, 82, 79, 75, 69, 45, 53, 128, 83, 84, 82, 79, 75, 69, 45, 52,
- 128, 83, 84, 82, 79, 75, 69, 45, 51, 128, 83, 84, 82, 79, 75, 69, 45, 50,
- 128, 83, 84, 82, 79, 75, 69, 45, 49, 49, 128, 83, 84, 82, 79, 75, 69, 45,
- 49, 48, 128, 83, 84, 82, 79, 75, 69, 45, 49, 128, 83, 84, 82, 79, 75,
- 197, 83, 84, 82, 73, 80, 69, 128, 83, 84, 82, 73, 78, 71, 128, 83, 84,
- 82, 73, 78, 199, 83, 84, 82, 73, 75, 69, 84, 72, 82, 79, 85, 71, 72, 128,
- 83, 84, 82, 73, 68, 69, 128, 83, 84, 82, 73, 67, 84, 76, 217, 83, 84, 82,
- 69, 84, 67, 72, 69, 196, 83, 84, 82, 69, 83, 211, 83, 84, 82, 69, 78, 71,
- 84, 72, 128, 83, 84, 82, 69, 65, 77, 69, 82, 128, 83, 84, 82, 65, 87, 66,
- 69, 82, 82, 89, 128, 83, 84, 82, 65, 84, 85, 77, 45, 50, 128, 83, 84, 82,
- 65, 84, 85, 77, 128, 83, 84, 82, 65, 84, 85, 205, 83, 84, 82, 65, 84, 73,
- 65, 206, 83, 84, 82, 65, 73, 78, 69, 82, 128, 83, 84, 82, 65, 73, 71, 72,
- 84, 78, 69, 83, 83, 128, 83, 84, 82, 65, 73, 71, 72, 212, 83, 84, 82, 65,
- 73, 70, 128, 83, 84, 82, 65, 71, 71, 73, 83, 77, 65, 84, 65, 128, 83, 84,
- 79, 86, 69, 128, 83, 84, 79, 82, 69, 128, 83, 84, 79, 80, 87, 65, 84, 67,
- 72, 128, 83, 84, 79, 80, 80, 73, 78, 71, 128, 83, 84, 79, 80, 80, 65, 71,
- 69, 128, 83, 84, 79, 80, 128, 83, 84, 79, 208, 83, 84, 79, 78, 69, 128,
- 83, 84, 79, 67, 75, 128, 83, 84, 73, 77, 77, 69, 128, 83, 84, 73, 76,
- 204, 83, 84, 73, 76, 197, 83, 84, 73, 71, 77, 65, 128, 83, 84, 69, 80,
- 128, 83, 84, 69, 77, 128, 83, 84, 69, 65, 77, 73, 78, 199, 83, 84, 69,
- 65, 77, 128, 83, 84, 69, 65, 205, 83, 84, 65, 86, 82, 79, 85, 128, 83,
- 84, 65, 86, 82, 79, 83, 128, 83, 84, 65, 86, 82, 79, 211, 83, 84, 65, 85,
- 82, 79, 83, 128, 83, 84, 65, 84, 85, 197, 83, 84, 65, 84, 73, 79, 78,
- 128, 83, 84, 65, 84, 69, 82, 83, 128, 83, 84, 65, 84, 69, 128, 83, 84,
- 65, 82, 212, 83, 84, 65, 82, 83, 128, 83, 84, 65, 82, 82, 69, 196, 83,
- 84, 65, 82, 75, 128, 83, 84, 65, 82, 128, 83, 84, 65, 210, 83, 84, 65,
- 78, 68, 83, 84, 73, 76, 76, 128, 83, 84, 65, 78, 68, 65, 82, 196, 83, 84,
- 65, 78, 68, 128, 83, 84, 65, 78, 128, 83, 84, 65, 76, 76, 73, 79, 78,
- 128, 83, 84, 65, 70, 70, 128, 83, 84, 65, 70, 198, 83, 84, 65, 67, 67,
- 65, 84, 79, 128, 83, 84, 65, 67, 67, 65, 84, 73, 83, 83, 73, 77, 79, 128,
- 83, 84, 50, 128, 83, 83, 89, 88, 128, 83, 83, 89, 84, 128, 83, 83, 89,
- 82, 88, 128, 83, 83, 89, 82, 128, 83, 83, 89, 80, 128, 83, 83, 89, 128,
- 83, 83, 85, 88, 128, 83, 83, 85, 85, 128, 83, 83, 85, 84, 128, 83, 83,
- 85, 80, 128, 83, 83, 79, 88, 128, 83, 83, 79, 84, 128, 83, 83, 79, 80,
- 128, 83, 83, 79, 79, 128, 83, 83, 79, 128, 83, 83, 73, 88, 128, 83, 83,
- 73, 84, 128, 83, 83, 73, 80, 128, 83, 83, 73, 73, 128, 83, 83, 73, 69,
- 88, 128, 83, 83, 73, 69, 80, 128, 83, 83, 73, 69, 128, 83, 83, 73, 128,
- 83, 83, 72, 69, 128, 83, 83, 69, 88, 128, 83, 83, 69, 80, 128, 83, 83,
- 69, 69, 128, 83, 83, 65, 88, 128, 83, 83, 65, 85, 128, 83, 83, 65, 84,
- 128, 83, 83, 65, 80, 128, 83, 83, 65, 78, 71, 89, 69, 79, 82, 73, 78, 72,
- 73, 69, 85, 72, 128, 83, 83, 65, 78, 71, 84, 73, 75, 69, 85, 84, 45, 80,
- 73, 69, 85, 80, 128, 83, 83, 65, 78, 71, 84, 73, 75, 69, 85, 84, 128, 83,
- 83, 65, 78, 71, 84, 72, 73, 69, 85, 84, 72, 128, 83, 83, 65, 78, 71, 83,
- 73, 79, 83, 45, 84, 73, 75, 69, 85, 84, 128, 83, 83, 65, 78, 71, 83, 73,
- 79, 83, 45, 80, 73, 69, 85, 80, 128, 83, 83, 65, 78, 71, 83, 73, 79, 83,
- 45, 75, 73, 89, 69, 79, 75, 128, 83, 83, 65, 78, 71, 83, 73, 79, 83, 128,
- 83, 83, 65, 78, 71, 82, 73, 69, 85, 76, 45, 75, 72, 73, 69, 85, 75, 72,
- 128, 83, 83, 65, 78, 71, 82, 73, 69, 85, 76, 128, 83, 83, 65, 78, 71, 80,
- 73, 69, 85, 80, 128, 83, 83, 65, 78, 71, 78, 73, 69, 85, 78, 128, 83, 83,
- 65, 78, 71, 77, 73, 69, 85, 77, 128, 83, 83, 65, 78, 71, 75, 73, 89, 69,
- 79, 75, 128, 83, 83, 65, 78, 71, 73, 69, 85, 78, 71, 128, 83, 83, 65, 78,
- 71, 72, 73, 69, 85, 72, 128, 83, 83, 65, 78, 71, 67, 73, 69, 85, 67, 45,
- 72, 73, 69, 85, 72, 128, 83, 83, 65, 78, 71, 67, 73, 69, 85, 67, 128, 83,
- 83, 65, 78, 71, 65, 82, 65, 69, 65, 128, 83, 83, 65, 73, 128, 83, 83, 65,
- 65, 128, 83, 83, 51, 128, 83, 83, 50, 128, 83, 82, 128, 83, 81, 85, 73,
- 83, 200, 83, 81, 85, 73, 82, 82, 69, 204, 83, 81, 85, 73, 71, 71, 76,
- 197, 83, 81, 85, 65, 212, 83, 81, 85, 65, 82, 69, 83, 128, 83, 81, 85,
- 65, 82, 69, 68, 128, 83, 81, 85, 65, 82, 69, 128, 83, 80, 87, 65, 128,
- 83, 80, 85, 78, 71, 211, 83, 80, 82, 79, 85, 84, 128, 83, 80, 82, 73, 78,
- 71, 83, 128, 83, 80, 82, 73, 78, 71, 128, 83, 80, 82, 69, 67, 72, 71, 69,
- 83, 65, 78, 199, 83, 80, 79, 85, 84, 73, 78, 199, 83, 80, 79, 84, 128,
- 83, 80, 79, 79, 78, 128, 83, 80, 76, 73, 84, 84, 73, 78, 199, 83, 80, 76,
- 65, 83, 72, 73, 78, 199, 83, 80, 73, 82, 73, 84, 85, 211, 83, 80, 73, 82,
- 73, 84, 128, 83, 80, 73, 82, 73, 212, 83, 80, 73, 82, 65, 78, 84, 128,
- 83, 80, 73, 82, 65, 76, 128, 83, 80, 73, 82, 65, 204, 83, 80, 73, 68, 69,
- 82, 217, 83, 80, 73, 67, 69, 128, 83, 80, 72, 69, 82, 73, 67, 65, 204,
+ 84, 65, 82, 84, 65, 82, 128, 84, 65, 82, 71, 69, 84, 128, 84, 65, 81,
+ 128, 84, 65, 80, 69, 82, 128, 84, 65, 80, 197, 84, 65, 80, 128, 84, 65,
+ 79, 128, 84, 65, 78, 78, 69, 196, 84, 65, 78, 71, 69, 82, 73, 78, 69,
+ 128, 84, 65, 78, 71, 69, 78, 84, 128, 84, 65, 78, 71, 69, 78, 212, 84,
+ 65, 78, 199, 84, 65, 78, 65, 66, 65, 84, 193, 84, 65, 78, 128, 84, 65,
+ 77, 73, 78, 71, 128, 84, 65, 77, 128, 84, 65, 76, 76, 128, 84, 65, 76,
+ 204, 84, 65, 76, 73, 78, 71, 128, 84, 65, 76, 73, 78, 199, 84, 65, 76,
+ 69, 78, 84, 83, 128, 84, 65, 76, 69, 78, 212, 84, 65, 75, 82, 201, 84,
+ 65, 75, 72, 65, 76, 76, 85, 83, 128, 84, 65, 75, 69, 128, 84, 65, 75, 52,
+ 128, 84, 65, 75, 180, 84, 65, 75, 128, 84, 65, 73, 83, 89, 79, 85, 128,
+ 84, 65, 73, 76, 76, 69, 83, 211, 84, 65, 73, 76, 128, 84, 65, 73, 204,
+ 84, 65, 72, 128, 84, 65, 200, 84, 65, 71, 66, 65, 78, 87, 193, 84, 65,
+ 71, 65, 76, 79, 199, 84, 65, 71, 128, 84, 65, 69, 206, 84, 65, 67, 79,
+ 128, 84, 65, 67, 75, 128, 84, 65, 67, 203, 84, 65, 66, 85, 76, 65, 84,
+ 73, 79, 78, 128, 84, 65, 66, 85, 76, 65, 84, 73, 79, 206, 84, 65, 66, 83,
+ 128, 84, 65, 66, 76, 69, 128, 84, 65, 66, 76, 197, 84, 65, 66, 128, 84,
+ 65, 194, 84, 65, 65, 83, 72, 65, 69, 128, 84, 65, 65, 81, 128, 84, 65,
+ 65, 77, 128, 84, 65, 65, 76, 85, 74, 193, 84, 65, 65, 73, 128, 84, 65,
+ 65, 70, 128, 84, 65, 50, 128, 84, 65, 45, 82, 79, 76, 128, 84, 65, 45,
+ 50, 128, 84, 48, 51, 54, 128, 84, 48, 51, 53, 128, 84, 48, 51, 52, 128,
+ 84, 48, 51, 51, 65, 128, 84, 48, 51, 51, 128, 84, 48, 51, 50, 65, 128,
+ 84, 48, 51, 50, 128, 84, 48, 51, 49, 128, 84, 48, 51, 48, 128, 84, 48,
+ 50, 57, 128, 84, 48, 50, 56, 128, 84, 48, 50, 55, 128, 84, 48, 50, 54,
+ 128, 84, 48, 50, 53, 128, 84, 48, 50, 52, 128, 84, 48, 50, 51, 128, 84,
+ 48, 50, 50, 128, 84, 48, 50, 49, 128, 84, 48, 50, 48, 128, 84, 48, 49,
+ 57, 128, 84, 48, 49, 56, 128, 84, 48, 49, 55, 128, 84, 48, 49, 54, 65,
+ 128, 84, 48, 49, 54, 128, 84, 48, 49, 53, 128, 84, 48, 49, 52, 128, 84,
+ 48, 49, 51, 128, 84, 48, 49, 50, 128, 84, 48, 49, 49, 65, 128, 84, 48,
+ 49, 49, 128, 84, 48, 49, 48, 128, 84, 48, 48, 57, 65, 128, 84, 48, 48,
+ 57, 128, 84, 48, 48, 56, 65, 128, 84, 48, 48, 56, 128, 84, 48, 48, 55,
+ 65, 128, 84, 48, 48, 55, 128, 84, 48, 48, 54, 128, 84, 48, 48, 53, 128,
+ 84, 48, 48, 52, 128, 84, 48, 48, 51, 65, 128, 84, 48, 48, 51, 128, 84,
+ 48, 48, 50, 128, 84, 48, 48, 49, 128, 84, 45, 83, 72, 73, 82, 84, 128,
+ 83, 90, 90, 128, 83, 90, 87, 71, 128, 83, 90, 87, 65, 128, 83, 90, 85,
+ 128, 83, 90, 79, 128, 83, 90, 73, 128, 83, 90, 69, 69, 128, 83, 90, 69,
+ 128, 83, 90, 65, 65, 128, 83, 90, 65, 128, 83, 90, 128, 83, 89, 88, 128,
+ 83, 89, 84, 128, 83, 89, 83, 84, 69, 205, 83, 89, 82, 88, 128, 83, 89,
+ 82, 77, 65, 84, 73, 75, 73, 128, 83, 89, 82, 77, 65, 128, 83, 89, 82, 73,
+ 78, 71, 69, 128, 83, 89, 82, 73, 65, 195, 83, 89, 82, 128, 83, 89, 80,
+ 128, 83, 89, 79, 85, 87, 65, 128, 83, 89, 78, 69, 86, 77, 65, 128, 83,
+ 89, 78, 68, 69, 83, 77, 79, 211, 83, 89, 78, 67, 72, 82, 79, 78, 79, 85,
+ 211, 83, 89, 78, 65, 71, 79, 71, 85, 69, 128, 83, 89, 78, 65, 71, 77,
+ 193, 83, 89, 78, 65, 70, 73, 128, 83, 89, 78, 128, 83, 89, 77, 77, 69,
+ 84, 82, 89, 128, 83, 89, 77, 77, 69, 84, 82, 73, 195, 83, 89, 77, 66, 79,
+ 76, 83, 128, 83, 89, 77, 66, 79, 76, 45, 57, 128, 83, 89, 77, 66, 79, 76,
+ 45, 56, 128, 83, 89, 77, 66, 79, 76, 45, 55, 128, 83, 89, 77, 66, 79, 76,
+ 45, 54, 128, 83, 89, 77, 66, 79, 76, 45, 53, 52, 128, 83, 89, 77, 66, 79,
+ 76, 45, 53, 51, 128, 83, 89, 77, 66, 79, 76, 45, 53, 50, 128, 83, 89, 77,
+ 66, 79, 76, 45, 53, 49, 128, 83, 89, 77, 66, 79, 76, 45, 53, 48, 128, 83,
+ 89, 77, 66, 79, 76, 45, 53, 128, 83, 89, 77, 66, 79, 76, 45, 52, 57, 128,
+ 83, 89, 77, 66, 79, 76, 45, 52, 56, 128, 83, 89, 77, 66, 79, 76, 45, 52,
+ 55, 128, 83, 89, 77, 66, 79, 76, 45, 52, 53, 128, 83, 89, 77, 66, 79, 76,
+ 45, 52, 51, 128, 83, 89, 77, 66, 79, 76, 45, 52, 50, 128, 83, 89, 77, 66,
+ 79, 76, 45, 52, 48, 128, 83, 89, 77, 66, 79, 76, 45, 52, 128, 83, 89, 77,
+ 66, 79, 76, 45, 51, 57, 128, 83, 89, 77, 66, 79, 76, 45, 51, 56, 128, 83,
+ 89, 77, 66, 79, 76, 45, 51, 55, 128, 83, 89, 77, 66, 79, 76, 45, 51, 54,
+ 128, 83, 89, 77, 66, 79, 76, 45, 51, 50, 128, 83, 89, 77, 66, 79, 76, 45,
+ 51, 48, 128, 83, 89, 77, 66, 79, 76, 45, 51, 128, 83, 89, 77, 66, 79, 76,
+ 45, 50, 57, 128, 83, 89, 77, 66, 79, 76, 45, 50, 55, 128, 83, 89, 77, 66,
+ 79, 76, 45, 50, 54, 128, 83, 89, 77, 66, 79, 76, 45, 50, 53, 128, 83, 89,
+ 77, 66, 79, 76, 45, 50, 52, 128, 83, 89, 77, 66, 79, 76, 45, 50, 51, 128,
+ 83, 89, 77, 66, 79, 76, 45, 50, 50, 128, 83, 89, 77, 66, 79, 76, 45, 50,
+ 49, 128, 83, 89, 77, 66, 79, 76, 45, 50, 48, 128, 83, 89, 77, 66, 79, 76,
+ 45, 50, 128, 83, 89, 77, 66, 79, 76, 45, 49, 57, 128, 83, 89, 77, 66, 79,
+ 76, 45, 49, 56, 128, 83, 89, 77, 66, 79, 76, 45, 49, 55, 128, 83, 89, 77,
+ 66, 79, 76, 45, 49, 54, 128, 83, 89, 77, 66, 79, 76, 45, 49, 53, 128, 83,
+ 89, 77, 66, 79, 76, 45, 49, 52, 128, 83, 89, 77, 66, 79, 76, 45, 49, 51,
+ 128, 83, 89, 77, 66, 79, 76, 45, 49, 50, 128, 83, 89, 77, 66, 79, 76, 45,
+ 49, 49, 128, 83, 89, 77, 66, 79, 76, 45, 49, 48, 128, 83, 89, 77, 66, 79,
+ 76, 45, 49, 128, 83, 89, 76, 79, 84, 201, 83, 89, 128, 83, 87, 90, 128,
+ 83, 87, 85, 78, 199, 83, 87, 79, 82, 68, 83, 128, 83, 87, 79, 82, 68,
+ 128, 83, 87, 79, 79, 128, 83, 87, 79, 128, 83, 87, 73, 82, 204, 83, 87,
+ 73, 77, 77, 73, 78, 71, 128, 83, 87, 73, 77, 77, 69, 82, 128, 83, 87, 73,
+ 73, 128, 83, 87, 73, 128, 83, 87, 71, 128, 83, 87, 69, 69, 84, 128, 83,
+ 87, 69, 69, 212, 83, 87, 69, 65, 84, 128, 83, 87, 69, 65, 212, 83, 87,
+ 65, 83, 200, 83, 87, 65, 80, 80, 73, 78, 71, 128, 83, 87, 65, 65, 128,
+ 83, 87, 128, 83, 86, 65, 83, 84, 201, 83, 86, 65, 82, 73, 84, 65, 128,
+ 83, 86, 65, 82, 73, 84, 193, 83, 85, 88, 128, 83, 85, 85, 128, 83, 85,
+ 84, 82, 193, 83, 85, 84, 128, 83, 85, 83, 80, 69, 78, 83, 73, 79, 206,
+ 83, 85, 83, 72, 73, 128, 83, 85, 82, 89, 65, 128, 83, 85, 82, 88, 128,
+ 83, 85, 82, 82, 79, 85, 78, 68, 128, 83, 85, 82, 82, 79, 85, 78, 196, 83,
+ 85, 82, 70, 69, 82, 128, 83, 85, 82, 70, 65, 67, 197, 83, 85, 82, 69,
+ 128, 83, 85, 82, 65, 78, 71, 128, 83, 85, 82, 57, 128, 83, 85, 82, 128,
+ 83, 85, 210, 83, 85, 80, 82, 65, 76, 73, 78, 69, 65, 210, 83, 85, 80, 69,
+ 82, 86, 73, 83, 69, 128, 83, 85, 80, 69, 82, 83, 69, 84, 128, 83, 85, 80,
+ 69, 82, 83, 69, 212, 83, 85, 80, 69, 82, 83, 67, 82, 73, 80, 212, 83, 85,
+ 80, 69, 82, 73, 77, 80, 79, 83, 69, 196, 83, 85, 80, 69, 82, 70, 73, 88,
+ 69, 196, 83, 85, 80, 69, 210, 83, 85, 80, 128, 83, 85, 79, 88, 128, 83,
+ 85, 79, 80, 128, 83, 85, 79, 128, 83, 85, 78, 83, 69, 212, 83, 85, 78,
+ 82, 73, 83, 69, 128, 83, 85, 78, 82, 73, 83, 197, 83, 85, 78, 71, 76, 65,
+ 83, 83, 69, 83, 128, 83, 85, 78, 71, 128, 83, 85, 78, 70, 76, 79, 87, 69,
+ 82, 128, 83, 85, 78, 68, 65, 78, 69, 83, 197, 83, 85, 78, 128, 83, 85,
+ 206, 83, 85, 77, 77, 69, 82, 128, 83, 85, 77, 77, 65, 84, 73, 79, 78,
+ 128, 83, 85, 77, 77, 65, 84, 73, 79, 206, 83, 85, 77, 65, 83, 72, 128,
+ 83, 85, 77, 128, 83, 85, 76, 70, 85, 82, 128, 83, 85, 75, 85, 78, 128,
+ 83, 85, 75, 85, 206, 83, 85, 75, 85, 128, 83, 85, 75, 213, 83, 85, 73,
+ 84, 65, 66, 76, 69, 128, 83, 85, 73, 84, 128, 83, 85, 73, 212, 83, 85,
+ 72, 85, 82, 128, 83, 85, 69, 128, 83, 85, 68, 50, 128, 83, 85, 68, 128,
+ 83, 85, 67, 75, 73, 78, 199, 83, 85, 67, 75, 69, 68, 128, 83, 85, 67,
+ 203, 83, 85, 67, 67, 69, 69, 68, 83, 128, 83, 85, 67, 67, 69, 69, 68,
+ 211, 83, 85, 67, 67, 69, 69, 68, 128, 83, 85, 67, 67, 69, 69, 196, 83,
+ 85, 66, 85, 78, 73, 84, 128, 83, 85, 66, 83, 84, 73, 84, 85, 84, 73, 79,
+ 206, 83, 85, 66, 83, 84, 73, 84, 85, 84, 69, 128, 83, 85, 66, 83, 84, 73,
+ 84, 85, 84, 197, 83, 85, 66, 83, 69, 84, 128, 83, 85, 66, 83, 69, 212,
+ 83, 85, 66, 83, 67, 82, 73, 80, 212, 83, 85, 66, 80, 85, 78, 67, 84, 73,
+ 83, 128, 83, 85, 66, 76, 73, 78, 69, 65, 210, 83, 85, 66, 76, 73, 77, 65,
+ 84, 73, 79, 78, 128, 83, 85, 66, 76, 73, 77, 65, 84, 69, 45, 51, 128, 83,
+ 85, 66, 76, 73, 77, 65, 84, 69, 45, 50, 128, 83, 85, 66, 76, 73, 77, 65,
+ 84, 69, 128, 83, 85, 66, 76, 73, 77, 65, 84, 197, 83, 85, 66, 74, 79, 73,
+ 78, 69, 196, 83, 85, 66, 74, 69, 67, 84, 128, 83, 85, 66, 73, 84, 79,
+ 128, 83, 85, 66, 71, 82, 79, 85, 80, 128, 83, 85, 66, 71, 82, 79, 85,
+ 208, 83, 85, 66, 128, 83, 85, 65, 77, 128, 83, 85, 65, 69, 84, 128, 83,
+ 85, 65, 69, 78, 128, 83, 85, 65, 69, 128, 83, 85, 65, 66, 128, 83, 85,
+ 65, 128, 83, 213, 83, 84, 88, 128, 83, 84, 87, 65, 128, 83, 84, 85, 68,
+ 89, 128, 83, 84, 85, 68, 73, 207, 83, 84, 85, 67, 75, 45, 79, 85, 212,
+ 83, 84, 83, 128, 83, 84, 82, 79, 78, 199, 83, 84, 82, 79, 75, 69, 83,
+ 128, 83, 84, 82, 79, 75, 69, 211, 83, 84, 82, 79, 75, 69, 45, 57, 128,
+ 83, 84, 82, 79, 75, 69, 45, 56, 128, 83, 84, 82, 79, 75, 69, 45, 55, 128,
+ 83, 84, 82, 79, 75, 69, 45, 54, 128, 83, 84, 82, 79, 75, 69, 45, 53, 128,
+ 83, 84, 82, 79, 75, 69, 45, 52, 128, 83, 84, 82, 79, 75, 69, 45, 51, 128,
+ 83, 84, 82, 79, 75, 69, 45, 50, 128, 83, 84, 82, 79, 75, 69, 45, 49, 49,
+ 128, 83, 84, 82, 79, 75, 69, 45, 49, 48, 128, 83, 84, 82, 79, 75, 69, 45,
+ 49, 128, 83, 84, 82, 79, 75, 197, 83, 84, 82, 73, 80, 69, 128, 83, 84,
+ 82, 73, 78, 71, 128, 83, 84, 82, 73, 78, 199, 83, 84, 82, 73, 75, 69, 84,
+ 72, 82, 79, 85, 71, 72, 128, 83, 84, 82, 73, 75, 197, 83, 84, 82, 73, 68,
+ 69, 128, 83, 84, 82, 73, 67, 84, 76, 217, 83, 84, 82, 69, 84, 67, 72, 69,
+ 196, 83, 84, 82, 69, 84, 67, 72, 128, 83, 84, 82, 69, 83, 211, 83, 84,
+ 82, 69, 78, 71, 84, 72, 128, 83, 84, 82, 69, 65, 77, 69, 82, 128, 83, 84,
+ 82, 65, 87, 66, 69, 82, 82, 89, 128, 83, 84, 82, 65, 84, 85, 77, 45, 50,
+ 128, 83, 84, 82, 65, 84, 85, 77, 128, 83, 84, 82, 65, 84, 85, 205, 83,
+ 84, 82, 65, 84, 73, 65, 206, 83, 84, 82, 65, 73, 78, 69, 82, 128, 83, 84,
+ 82, 65, 73, 71, 72, 84, 78, 69, 83, 83, 128, 83, 84, 82, 65, 73, 71, 72,
+ 84, 128, 83, 84, 82, 65, 73, 71, 72, 212, 83, 84, 82, 65, 73, 70, 128,
+ 83, 84, 82, 65, 71, 71, 73, 83, 77, 65, 84, 65, 128, 83, 84, 79, 86, 69,
+ 128, 83, 84, 79, 82, 69, 128, 83, 84, 79, 80, 87, 65, 84, 67, 72, 128,
+ 83, 84, 79, 80, 80, 73, 78, 71, 128, 83, 84, 79, 80, 80, 65, 71, 69, 128,
+ 83, 84, 79, 80, 128, 83, 84, 79, 208, 83, 84, 79, 78, 69, 128, 83, 84,
+ 79, 67, 75, 128, 83, 84, 79, 67, 203, 83, 84, 73, 82, 82, 85, 208, 83,
+ 84, 73, 77, 77, 69, 128, 83, 84, 73, 76, 204, 83, 84, 73, 76, 197, 83,
+ 84, 73, 71, 77, 65, 128, 83, 84, 73, 67, 75, 73, 78, 199, 83, 84, 73, 67,
+ 203, 83, 84, 69, 82, 69, 79, 128, 83, 84, 69, 80, 128, 83, 84, 69, 78,
+ 79, 71, 82, 65, 80, 72, 73, 195, 83, 84, 69, 77, 128, 83, 84, 69, 65, 77,
+ 73, 78, 199, 83, 84, 69, 65, 77, 128, 83, 84, 69, 65, 205, 83, 84, 65,
+ 86, 82, 79, 85, 128, 83, 84, 65, 86, 82, 79, 83, 128, 83, 84, 65, 86, 82,
+ 79, 211, 83, 84, 65, 85, 82, 79, 83, 128, 83, 84, 65, 84, 85, 197, 83,
+ 84, 65, 84, 73, 79, 78, 128, 83, 84, 65, 84, 69, 82, 83, 128, 83, 84, 65,
+ 84, 69, 128, 83, 84, 65, 82, 212, 83, 84, 65, 82, 83, 128, 83, 84, 65,
+ 82, 82, 69, 196, 83, 84, 65, 82, 75, 128, 83, 84, 65, 82, 128, 83, 84,
+ 65, 210, 83, 84, 65, 78, 68, 83, 84, 73, 76, 76, 128, 83, 84, 65, 78, 68,
+ 65, 82, 196, 83, 84, 65, 78, 68, 128, 83, 84, 65, 78, 128, 83, 84, 65,
+ 77, 80, 69, 196, 83, 84, 65, 76, 76, 73, 79, 78, 128, 83, 84, 65, 70, 70,
+ 128, 83, 84, 65, 70, 198, 83, 84, 65, 68, 73, 85, 77, 128, 83, 84, 65,
+ 67, 67, 65, 84, 79, 128, 83, 84, 65, 67, 67, 65, 84, 73, 83, 83, 73, 77,
+ 79, 128, 83, 84, 50, 128, 83, 83, 89, 88, 128, 83, 83, 89, 84, 128, 83,
+ 83, 89, 82, 88, 128, 83, 83, 89, 82, 128, 83, 83, 89, 80, 128, 83, 83,
+ 89, 128, 83, 83, 85, 88, 128, 83, 83, 85, 85, 128, 83, 83, 85, 84, 128,
+ 83, 83, 85, 80, 128, 83, 83, 79, 88, 128, 83, 83, 79, 84, 128, 83, 83,
+ 79, 80, 128, 83, 83, 79, 79, 128, 83, 83, 79, 128, 83, 83, 73, 88, 128,
+ 83, 83, 73, 84, 128, 83, 83, 73, 80, 128, 83, 83, 73, 73, 128, 83, 83,
+ 73, 69, 88, 128, 83, 83, 73, 69, 80, 128, 83, 83, 73, 69, 128, 83, 83,
+ 73, 128, 83, 83, 72, 73, 78, 128, 83, 83, 72, 69, 128, 83, 83, 69, 88,
+ 128, 83, 83, 69, 80, 128, 83, 83, 69, 69, 128, 83, 83, 65, 88, 128, 83,
+ 83, 65, 85, 128, 83, 83, 65, 84, 128, 83, 83, 65, 80, 128, 83, 83, 65,
+ 78, 71, 89, 69, 79, 82, 73, 78, 72, 73, 69, 85, 72, 128, 83, 83, 65, 78,
+ 71, 84, 73, 75, 69, 85, 84, 45, 80, 73, 69, 85, 80, 128, 83, 83, 65, 78,
+ 71, 84, 73, 75, 69, 85, 84, 128, 83, 83, 65, 78, 71, 84, 72, 73, 69, 85,
+ 84, 72, 128, 83, 83, 65, 78, 71, 83, 73, 79, 83, 45, 84, 73, 75, 69, 85,
+ 84, 128, 83, 83, 65, 78, 71, 83, 73, 79, 83, 45, 80, 73, 69, 85, 80, 128,
+ 83, 83, 65, 78, 71, 83, 73, 79, 83, 45, 75, 73, 89, 69, 79, 75, 128, 83,
+ 83, 65, 78, 71, 83, 73, 79, 83, 128, 83, 83, 65, 78, 71, 82, 73, 69, 85,
+ 76, 45, 75, 72, 73, 69, 85, 75, 72, 128, 83, 83, 65, 78, 71, 82, 73, 69,
+ 85, 76, 128, 83, 83, 65, 78, 71, 80, 73, 69, 85, 80, 128, 83, 83, 65, 78,
+ 71, 78, 73, 69, 85, 78, 128, 83, 83, 65, 78, 71, 77, 73, 69, 85, 77, 128,
+ 83, 83, 65, 78, 71, 75, 73, 89, 69, 79, 75, 128, 83, 83, 65, 78, 71, 73,
+ 69, 85, 78, 71, 128, 83, 83, 65, 78, 71, 72, 73, 69, 85, 72, 128, 83, 83,
+ 65, 78, 71, 67, 73, 69, 85, 67, 45, 72, 73, 69, 85, 72, 128, 83, 83, 65,
+ 78, 71, 67, 73, 69, 85, 67, 128, 83, 83, 65, 78, 71, 65, 82, 65, 69, 65,
+ 128, 83, 83, 65, 73, 128, 83, 83, 65, 65, 128, 83, 83, 51, 128, 83, 83,
+ 50, 128, 83, 82, 128, 83, 81, 85, 73, 83, 200, 83, 81, 85, 73, 82, 82,
+ 69, 204, 83, 81, 85, 73, 71, 71, 76, 197, 83, 81, 85, 69, 69, 90, 69, 68,
+ 128, 83, 81, 85, 69, 69, 90, 197, 83, 81, 85, 65, 212, 83, 81, 85, 65,
+ 82, 69, 83, 128, 83, 81, 85, 65, 82, 69, 68, 128, 83, 81, 85, 65, 82, 69,
+ 128, 83, 80, 89, 128, 83, 80, 87, 65, 128, 83, 80, 85, 78, 71, 211, 83,
+ 80, 82, 79, 85, 84, 128, 83, 80, 82, 73, 78, 71, 83, 128, 83, 80, 82, 73,
+ 78, 71, 128, 83, 80, 82, 69, 67, 72, 71, 69, 83, 65, 78, 199, 83, 80, 82,
+ 69, 65, 68, 128, 83, 80, 82, 69, 65, 196, 83, 80, 79, 85, 84, 73, 78,
+ 199, 83, 80, 79, 84, 128, 83, 80, 79, 82, 84, 211, 83, 80, 79, 79, 78,
+ 128, 83, 80, 76, 73, 84, 84, 73, 78, 199, 83, 80, 76, 73, 84, 128, 83,
+ 80, 76, 73, 212, 83, 80, 76, 65, 89, 69, 68, 128, 83, 80, 76, 65, 83, 72,
+ 73, 78, 199, 83, 80, 73, 82, 73, 84, 85, 211, 83, 80, 73, 82, 73, 84,
+ 128, 83, 80, 73, 82, 73, 212, 83, 80, 73, 82, 65, 78, 84, 128, 83, 80,
+ 73, 82, 65, 76, 128, 83, 80, 73, 82, 65, 204, 83, 80, 73, 78, 69, 128,
+ 83, 80, 73, 68, 69, 82, 217, 83, 80, 73, 68, 69, 82, 128, 83, 80, 73, 68,
+ 69, 210, 83, 80, 73, 67, 69, 128, 83, 80, 72, 69, 82, 73, 67, 65, 204,
83, 80, 69, 83, 77, 73, 76, 207, 83, 80, 69, 69, 68, 66, 79, 65, 84, 128,
83, 80, 69, 69, 67, 72, 128, 83, 80, 69, 69, 67, 200, 83, 80, 69, 67, 73,
- 65, 76, 128, 83, 80, 69, 65, 82, 128, 83, 80, 69, 65, 75, 69, 82, 128,
- 83, 80, 69, 65, 75, 69, 210, 83, 80, 69, 65, 75, 45, 78, 79, 45, 69, 86,
- 73, 204, 83, 80, 65, 84, 72, 73, 128, 83, 80, 65, 82, 75, 76, 73, 78,
- 199, 83, 80, 65, 82, 75, 76, 69, 83, 128, 83, 80, 65, 82, 75, 76, 69, 82,
- 128, 83, 80, 65, 82, 75, 76, 69, 128, 83, 80, 65, 71, 72, 69, 84, 84, 73,
- 128, 83, 80, 65, 68, 69, 83, 128, 83, 80, 65, 68, 197, 83, 80, 65, 67,
- 73, 78, 199, 83, 80, 65, 67, 197, 83, 80, 65, 128, 83, 79, 89, 128, 83,
- 79, 87, 73, 76, 207, 83, 79, 87, 128, 83, 79, 85, 84, 72, 69, 82, 206,
- 83, 79, 85, 84, 72, 45, 83, 76, 65, 86, 69, 217, 83, 79, 85, 84, 200, 83,
- 79, 85, 82, 67, 69, 128, 83, 79, 85, 78, 68, 128, 83, 79, 85, 78, 196,
- 83, 79, 85, 78, 65, 80, 128, 83, 79, 85, 128, 83, 79, 83, 128, 83, 79,
- 82, 193, 83, 79, 81, 128, 83, 79, 79, 206, 83, 79, 78, 74, 65, 77, 128,
- 83, 79, 78, 71, 128, 83, 79, 78, 128, 83, 79, 77, 80, 69, 78, 199, 83,
- 79, 77, 128, 83, 79, 76, 73, 68, 85, 83, 128, 83, 79, 76, 73, 68, 85,
- 211, 83, 79, 72, 128, 83, 79, 71, 68, 73, 65, 206, 83, 79, 70, 84, 87,
- 65, 82, 69, 45, 70, 85, 78, 67, 84, 73, 79, 206, 83, 79, 70, 84, 78, 69,
- 83, 83, 128, 83, 79, 70, 212, 83, 79, 198, 83, 79, 67, 73, 69, 84, 89,
- 128, 83, 79, 67, 67, 69, 210, 83, 79, 65, 80, 128, 83, 79, 65, 128, 83,
- 207, 83, 78, 79, 87, 77, 65, 78, 128, 83, 78, 79, 87, 77, 65, 206, 83,
- 78, 79, 87, 70, 76, 65, 75, 69, 128, 83, 78, 79, 87, 66, 79, 65, 82, 68,
- 69, 82, 128, 83, 78, 79, 87, 128, 83, 78, 79, 85, 84, 128, 83, 78, 79,
- 85, 212, 83, 78, 65, 208, 83, 78, 65, 75, 69, 128, 83, 78, 65, 75, 197,
- 83, 78, 65, 73, 76, 128, 83, 78, 193, 83, 77, 79, 75, 73, 78, 199, 83,
- 77, 73, 82, 75, 73, 78, 199, 83, 77, 73, 76, 73, 78, 199, 83, 77, 73, 76,
- 69, 128, 83, 77, 69, 65, 82, 128, 83, 77, 65, 83, 200, 83, 77, 65, 76,
- 76, 69, 210, 83, 77, 65, 76, 76, 128, 83, 76, 85, 82, 128, 83, 76, 79,
- 87, 76, 89, 128, 83, 76, 79, 215, 83, 76, 79, 86, 79, 128, 83, 76, 79,
- 212, 83, 76, 79, 80, 73, 78, 199, 83, 76, 79, 80, 69, 128, 83, 76, 73,
- 78, 71, 128, 83, 76, 73, 68, 73, 78, 71, 128, 83, 76, 73, 67, 69, 128,
- 83, 76, 73, 67, 197, 83, 76, 69, 69, 80, 217, 83, 76, 69, 69, 80, 73, 78,
+ 65, 76, 128, 83, 80, 69, 65, 82, 128, 83, 80, 69, 65, 75, 73, 78, 199,
+ 83, 80, 69, 65, 75, 69, 82, 128, 83, 80, 69, 65, 75, 69, 210, 83, 80, 69,
+ 65, 75, 45, 78, 79, 45, 69, 86, 73, 204, 83, 80, 65, 84, 72, 73, 128, 83,
+ 80, 65, 82, 75, 76, 73, 78, 199, 83, 80, 65, 82, 75, 76, 69, 83, 128, 83,
+ 80, 65, 82, 75, 76, 69, 82, 128, 83, 80, 65, 82, 75, 76, 69, 128, 83, 80,
+ 65, 71, 72, 69, 84, 84, 73, 128, 83, 80, 65, 68, 69, 83, 128, 83, 80, 65,
+ 68, 197, 83, 80, 65, 67, 73, 78, 199, 83, 80, 65, 67, 197, 83, 80, 65,
+ 128, 83, 79, 89, 128, 83, 79, 87, 73, 76, 207, 83, 79, 87, 128, 83, 79,
+ 85, 84, 72, 69, 82, 206, 83, 79, 85, 84, 72, 45, 83, 76, 65, 86, 69, 217,
+ 83, 79, 85, 84, 200, 83, 79, 85, 82, 67, 69, 128, 83, 79, 85, 78, 68,
+ 128, 83, 79, 85, 78, 196, 83, 79, 85, 78, 65, 80, 128, 83, 79, 85, 128,
+ 83, 79, 83, 128, 83, 79, 82, 193, 83, 79, 81, 128, 83, 79, 79, 206, 83,
+ 79, 78, 74, 65, 77, 128, 83, 79, 78, 71, 128, 83, 79, 78, 128, 83, 79,
+ 77, 80, 69, 78, 199, 83, 79, 77, 128, 83, 79, 76, 73, 68, 85, 83, 128,
+ 83, 79, 76, 73, 68, 85, 211, 83, 79, 76, 73, 196, 83, 79, 72, 128, 83,
+ 79, 71, 68, 73, 65, 206, 83, 79, 70, 84, 87, 65, 82, 69, 45, 70, 85, 78,
+ 67, 84, 73, 79, 206, 83, 79, 70, 84, 78, 69, 83, 83, 128, 83, 79, 70,
+ 212, 83, 79, 198, 83, 79, 67, 73, 69, 84, 89, 128, 83, 79, 67, 67, 69,
+ 210, 83, 79, 65, 80, 128, 83, 79, 65, 128, 83, 207, 83, 78, 79, 87, 77,
+ 65, 78, 128, 83, 78, 79, 87, 77, 65, 206, 83, 78, 79, 87, 70, 76, 65, 75,
+ 69, 128, 83, 78, 79, 87, 66, 79, 65, 82, 68, 69, 82, 128, 83, 78, 79, 87,
+ 128, 83, 78, 79, 215, 83, 78, 79, 85, 84, 128, 83, 78, 79, 85, 212, 83,
+ 78, 65, 208, 83, 78, 65, 75, 69, 128, 83, 78, 65, 75, 197, 83, 78, 65,
+ 73, 76, 128, 83, 78, 193, 83, 77, 79, 75, 73, 78, 199, 83, 77, 73, 82,
+ 75, 73, 78, 199, 83, 77, 73, 76, 73, 78, 199, 83, 77, 73, 76, 69, 128,
+ 83, 77, 73, 76, 197, 83, 77, 69, 65, 82, 128, 83, 77, 65, 83, 200, 83,
+ 77, 65, 76, 76, 69, 210, 83, 77, 65, 76, 76, 128, 83, 76, 85, 82, 128,
+ 83, 76, 79, 87, 76, 89, 128, 83, 76, 79, 87, 128, 83, 76, 79, 215, 83,
+ 76, 79, 86, 79, 128, 83, 76, 79, 212, 83, 76, 79, 80, 73, 78, 199, 83,
+ 76, 79, 80, 69, 128, 83, 76, 79, 65, 206, 83, 76, 73, 78, 71, 128, 83,
+ 76, 73, 71, 72, 84, 76, 217, 83, 76, 73, 68, 73, 78, 71, 128, 83, 76, 73,
+ 68, 69, 82, 128, 83, 76, 73, 67, 69, 128, 83, 76, 73, 67, 197, 83, 76,
+ 69, 85, 84, 200, 83, 76, 69, 69, 80, 217, 83, 76, 69, 69, 80, 73, 78,
199, 83, 76, 65, 86, 79, 78, 73, 195, 83, 76, 65, 86, 69, 128, 83, 76,
65, 83, 72, 128, 83, 76, 65, 83, 200, 83, 76, 65, 78, 84, 69, 196, 83,
75, 87, 65, 128, 83, 75, 87, 128, 83, 75, 85, 76, 76, 128, 83, 75, 85,
76, 204, 83, 75, 76, 73, 82, 79, 206, 83, 75, 73, 78, 128, 83, 75, 73,
69, 82, 128, 83, 75, 201, 83, 75, 69, 87, 69, 196, 83, 75, 65, 84, 69,
- 128, 83, 75, 128, 83, 74, 69, 128, 83, 73, 88, 84, 89, 45, 70, 79, 85,
- 82, 84, 200, 83, 73, 88, 84, 89, 128, 83, 73, 88, 84, 217, 83, 73, 88,
- 84, 72, 83, 128, 83, 73, 88, 84, 72, 211, 83, 73, 88, 84, 72, 128, 83,
- 73, 88, 84, 69, 69, 78, 84, 72, 83, 128, 83, 73, 88, 84, 69, 69, 78, 84,
- 72, 128, 83, 73, 88, 84, 69, 69, 78, 84, 200, 83, 73, 88, 84, 69, 69, 78,
- 128, 83, 73, 88, 84, 69, 69, 206, 83, 73, 88, 45, 84, 72, 73, 82, 84, 89,
- 128, 83, 73, 88, 45, 83, 84, 82, 73, 78, 199, 83, 73, 88, 45, 80, 69, 82,
- 45, 69, 205, 83, 73, 88, 45, 76, 73, 78, 197, 83, 73, 216, 83, 73, 84,
- 69, 128, 83, 73, 83, 65, 128, 83, 73, 82, 73, 78, 71, 85, 128, 83, 73,
- 79, 83, 45, 84, 72, 73, 69, 85, 84, 72, 128, 83, 73, 79, 83, 45, 83, 83,
- 65, 78, 71, 83, 73, 79, 83, 128, 83, 73, 79, 83, 45, 82, 73, 69, 85, 76,
- 128, 83, 73, 79, 83, 45, 80, 73, 69, 85, 80, 45, 75, 73, 89, 69, 79, 75,
- 128, 83, 73, 79, 83, 45, 80, 72, 73, 69, 85, 80, 72, 128, 83, 73, 79, 83,
- 45, 80, 65, 78, 83, 73, 79, 83, 128, 83, 73, 79, 83, 45, 78, 73, 69, 85,
- 78, 128, 83, 73, 79, 83, 45, 77, 73, 69, 85, 77, 128, 83, 73, 79, 83, 45,
- 75, 72, 73, 69, 85, 75, 72, 128, 83, 73, 79, 83, 45, 75, 65, 80, 89, 69,
- 79, 85, 78, 80, 73, 69, 85, 80, 128, 83, 73, 79, 83, 45, 73, 69, 85, 78,
- 71, 128, 83, 73, 79, 83, 45, 72, 73, 69, 85, 72, 128, 83, 73, 79, 83, 45,
- 67, 73, 69, 85, 67, 128, 83, 73, 79, 83, 45, 67, 72, 73, 69, 85, 67, 72,
- 128, 83, 73, 79, 211, 83, 73, 78, 75, 73, 78, 71, 128, 83, 73, 78, 71,
- 76, 69, 45, 83, 72, 73, 70, 84, 45, 51, 128, 83, 73, 78, 71, 76, 69, 45,
- 83, 72, 73, 70, 84, 45, 50, 128, 83, 73, 78, 71, 76, 69, 45, 76, 73, 78,
- 197, 83, 73, 78, 71, 76, 69, 128, 83, 73, 78, 71, 76, 197, 83, 73, 78,
- 71, 65, 65, 84, 128, 83, 73, 78, 197, 83, 73, 78, 68, 72, 201, 83, 73,
- 206, 83, 73, 77, 80, 76, 73, 70, 73, 69, 196, 83, 73, 77, 73, 76, 65, 82,
- 128, 83, 73, 77, 73, 76, 65, 210, 83, 73, 77, 65, 78, 83, 73, 211, 83,
- 73, 77, 65, 76, 85, 78, 71, 85, 206, 83, 73, 77, 65, 128, 83, 73, 76, 86,
- 69, 82, 128, 83, 73, 76, 75, 128, 83, 73, 76, 73, 81, 85, 193, 83, 73,
- 76, 72, 79, 85, 69, 84, 84, 69, 128, 83, 73, 76, 72, 79, 85, 69, 84, 84,
- 197, 83, 73, 76, 65, 51, 128, 83, 73, 75, 73, 128, 83, 73, 75, 50, 128,
- 83, 73, 75, 178, 83, 73, 71, 78, 83, 128, 83, 73, 71, 77, 65, 128, 83,
- 73, 71, 77, 193, 83, 73, 71, 69, 204, 83, 73, 71, 52, 128, 83, 73, 71,
- 180, 83, 73, 71, 128, 83, 73, 69, 69, 128, 83, 73, 68, 69, 87, 65, 89,
- 211, 83, 73, 67, 75, 78, 69, 83, 83, 128, 83, 73, 67, 75, 76, 69, 128,
- 83, 73, 66, 197, 83, 201, 83, 72, 89, 88, 128, 83, 72, 89, 84, 128, 83,
- 72, 89, 82, 88, 128, 83, 72, 89, 82, 128, 83, 72, 89, 80, 128, 83, 72,
- 89, 69, 128, 83, 72, 89, 65, 128, 83, 72, 89, 128, 83, 72, 87, 79, 89,
- 128, 83, 72, 87, 79, 79, 128, 83, 72, 87, 79, 128, 83, 72, 87, 73, 73,
- 128, 83, 72, 87, 73, 128, 83, 72, 87, 69, 128, 83, 72, 87, 65, 65, 128,
- 83, 72, 87, 65, 128, 83, 72, 85, 88, 128, 83, 72, 85, 85, 128, 83, 72,
- 85, 84, 128, 83, 72, 85, 82, 88, 128, 83, 72, 85, 82, 128, 83, 72, 85,
- 80, 128, 83, 72, 85, 79, 88, 128, 83, 72, 85, 79, 80, 128, 83, 72, 85,
- 79, 128, 83, 72, 85, 77, 128, 83, 72, 85, 70, 70, 76, 197, 83, 72, 85,
+ 128, 83, 75, 128, 83, 74, 69, 128, 83, 73, 90, 197, 83, 73, 88, 84, 89,
+ 45, 70, 79, 85, 82, 84, 200, 83, 73, 88, 84, 89, 128, 83, 73, 88, 84,
+ 217, 83, 73, 88, 84, 72, 83, 128, 83, 73, 88, 84, 72, 211, 83, 73, 88,
+ 84, 72, 128, 83, 73, 88, 84, 69, 69, 78, 84, 72, 83, 128, 83, 73, 88, 84,
+ 69, 69, 78, 84, 72, 128, 83, 73, 88, 84, 69, 69, 78, 84, 200, 83, 73, 88,
+ 84, 69, 69, 78, 128, 83, 73, 88, 84, 69, 69, 206, 83, 73, 88, 45, 84, 72,
+ 73, 82, 84, 89, 128, 83, 73, 88, 45, 83, 84, 82, 73, 78, 199, 83, 73, 88,
+ 45, 80, 69, 82, 45, 69, 205, 83, 73, 88, 45, 76, 73, 78, 197, 83, 73,
+ 216, 83, 73, 84, 69, 128, 83, 73, 83, 65, 128, 83, 73, 82, 73, 78, 71,
+ 85, 128, 83, 73, 79, 83, 45, 84, 72, 73, 69, 85, 84, 72, 128, 83, 73, 79,
+ 83, 45, 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 83, 73, 79, 83, 45, 82,
+ 73, 69, 85, 76, 128, 83, 73, 79, 83, 45, 80, 73, 69, 85, 80, 45, 75, 73,
+ 89, 69, 79, 75, 128, 83, 73, 79, 83, 45, 80, 72, 73, 69, 85, 80, 72, 128,
+ 83, 73, 79, 83, 45, 80, 65, 78, 83, 73, 79, 83, 128, 83, 73, 79, 83, 45,
+ 78, 73, 69, 85, 78, 128, 83, 73, 79, 83, 45, 77, 73, 69, 85, 77, 128, 83,
+ 73, 79, 83, 45, 75, 72, 73, 69, 85, 75, 72, 128, 83, 73, 79, 83, 45, 75,
+ 65, 80, 89, 69, 79, 85, 78, 80, 73, 69, 85, 80, 128, 83, 73, 79, 83, 45,
+ 73, 69, 85, 78, 71, 128, 83, 73, 79, 83, 45, 72, 73, 69, 85, 72, 128, 83,
+ 73, 79, 83, 45, 67, 73, 69, 85, 67, 128, 83, 73, 79, 83, 45, 67, 72, 73,
+ 69, 85, 67, 72, 128, 83, 73, 79, 211, 83, 73, 78, 85, 83, 79, 73, 196,
+ 83, 73, 78, 79, 76, 79, 71, 73, 67, 65, 204, 83, 73, 78, 75, 73, 78, 71,
+ 128, 83, 73, 78, 71, 76, 69, 45, 83, 72, 73, 70, 84, 45, 51, 128, 83, 73,
+ 78, 71, 76, 69, 45, 83, 72, 73, 70, 84, 45, 50, 128, 83, 73, 78, 71, 76,
+ 69, 45, 76, 73, 78, 197, 83, 73, 78, 71, 76, 69, 128, 83, 73, 78, 71, 76,
+ 197, 83, 73, 78, 71, 65, 65, 84, 128, 83, 73, 78, 197, 83, 73, 78, 68,
+ 72, 201, 83, 73, 206, 83, 73, 77, 85, 76, 84, 65, 78, 69, 79, 85, 83,
+ 128, 83, 73, 77, 85, 76, 84, 65, 78, 69, 79, 85, 211, 83, 73, 77, 80, 76,
+ 73, 70, 73, 69, 196, 83, 73, 77, 73, 76, 65, 82, 128, 83, 73, 77, 73, 76,
+ 65, 210, 83, 73, 77, 65, 78, 83, 73, 211, 83, 73, 77, 65, 76, 85, 78, 71,
+ 85, 206, 83, 73, 77, 65, 128, 83, 73, 76, 86, 69, 82, 128, 83, 73, 76,
+ 75, 128, 83, 73, 76, 73, 81, 85, 193, 83, 73, 76, 72, 79, 85, 69, 84, 84,
+ 69, 128, 83, 73, 76, 72, 79, 85, 69, 84, 84, 197, 83, 73, 76, 65, 51,
+ 128, 83, 73, 75, 73, 128, 83, 73, 75, 50, 128, 83, 73, 75, 178, 83, 73,
+ 71, 78, 83, 128, 83, 73, 71, 77, 65, 128, 83, 73, 71, 77, 193, 83, 73,
+ 71, 69, 204, 83, 73, 71, 52, 128, 83, 73, 71, 180, 83, 73, 71, 128, 83,
+ 73, 69, 69, 128, 83, 73, 68, 69, 87, 65, 89, 211, 83, 73, 68, 69, 128,
+ 83, 73, 68, 197, 83, 73, 68, 68, 72, 65, 77, 128, 83, 73, 67, 75, 78, 69,
+ 83, 83, 128, 83, 73, 67, 75, 76, 69, 128, 83, 73, 66, 197, 83, 73, 65,
+ 128, 83, 201, 83, 72, 89, 88, 128, 83, 72, 89, 84, 128, 83, 72, 89, 82,
+ 88, 128, 83, 72, 89, 82, 128, 83, 72, 89, 80, 128, 83, 72, 89, 69, 128,
+ 83, 72, 89, 65, 128, 83, 72, 89, 128, 83, 72, 87, 79, 89, 128, 83, 72,
+ 87, 79, 79, 128, 83, 72, 87, 79, 128, 83, 72, 87, 73, 73, 128, 83, 72,
+ 87, 73, 128, 83, 72, 87, 69, 128, 83, 72, 87, 197, 83, 72, 87, 65, 65,
+ 128, 83, 72, 87, 65, 128, 83, 72, 85, 88, 128, 83, 72, 85, 85, 128, 83,
+ 72, 85, 84, 84, 76, 69, 67, 79, 67, 75, 128, 83, 72, 85, 84, 128, 83, 72,
+ 85, 82, 88, 128, 83, 72, 85, 82, 128, 83, 72, 85, 80, 128, 83, 72, 85,
+ 79, 88, 128, 83, 72, 85, 79, 80, 128, 83, 72, 85, 79, 128, 83, 72, 85,
+ 77, 128, 83, 72, 85, 76, 128, 83, 72, 85, 70, 70, 76, 197, 83, 72, 85,
69, 81, 128, 83, 72, 85, 69, 78, 83, 72, 85, 69, 84, 128, 83, 72, 85, 66,
85, 82, 128, 83, 72, 85, 50, 128, 83, 72, 85, 178, 83, 72, 85, 128, 83,
72, 213, 83, 72, 84, 65, 80, 73, 67, 128, 83, 72, 84, 65, 128, 83, 72,
82, 73, 78, 69, 128, 83, 72, 82, 73, 77, 80, 128, 83, 72, 82, 73, 73,
- 128, 83, 72, 79, 89, 128, 83, 72, 79, 88, 128, 83, 72, 79, 87, 69, 82,
- 128, 83, 72, 79, 85, 76, 68, 69, 82, 69, 196, 83, 72, 79, 84, 128, 83,
- 72, 79, 82, 84, 83, 128, 83, 72, 79, 82, 84, 211, 83, 72, 79, 82, 84, 69,
- 78, 69, 82, 128, 83, 72, 79, 82, 84, 67, 65, 75, 69, 128, 83, 72, 79, 82,
- 84, 45, 84, 87, 73, 71, 45, 89, 82, 128, 83, 72, 79, 82, 84, 45, 84, 87,
- 73, 71, 45, 84, 89, 210, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45, 83,
- 79, 204, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45, 79, 83, 211, 83, 72,
- 79, 82, 84, 45, 84, 87, 73, 71, 45, 78, 65, 85, 196, 83, 72, 79, 82, 84,
- 45, 84, 87, 73, 71, 45, 77, 65, 68, 210, 83, 72, 79, 82, 84, 45, 84, 87,
- 73, 71, 45, 72, 65, 71, 65, 76, 204, 83, 72, 79, 82, 84, 45, 84, 87, 73,
- 71, 45, 66, 74, 65, 82, 75, 65, 206, 83, 72, 79, 82, 84, 45, 84, 87, 73,
- 71, 45, 65, 210, 83, 72, 79, 82, 84, 128, 83, 72, 79, 82, 212, 83, 72,
- 79, 81, 128, 83, 72, 79, 209, 83, 72, 79, 80, 128, 83, 72, 79, 79, 84,
- 73, 78, 199, 83, 72, 79, 79, 84, 128, 83, 72, 79, 79, 128, 83, 72, 79,
- 71, 201, 83, 72, 79, 199, 83, 72, 79, 69, 128, 83, 72, 79, 197, 83, 72,
- 79, 65, 128, 83, 72, 79, 128, 83, 72, 73, 89, 89, 65, 65, 76, 65, 65,
+ 128, 83, 72, 82, 73, 128, 83, 72, 79, 89, 128, 83, 72, 79, 88, 128, 83,
+ 72, 79, 87, 69, 82, 128, 83, 72, 79, 85, 76, 68, 69, 82, 69, 196, 83, 72,
+ 79, 85, 76, 68, 69, 210, 83, 72, 79, 84, 128, 83, 72, 79, 82, 84, 83,
+ 128, 83, 72, 79, 82, 84, 211, 83, 72, 79, 82, 84, 72, 65, 78, 196, 83,
+ 72, 79, 82, 84, 69, 78, 69, 82, 128, 83, 72, 79, 82, 84, 67, 65, 75, 69,
+ 128, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45, 89, 82, 128, 83, 72, 79,
+ 82, 84, 45, 84, 87, 73, 71, 45, 84, 89, 210, 83, 72, 79, 82, 84, 45, 84,
+ 87, 73, 71, 45, 83, 79, 204, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45,
+ 79, 83, 211, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45, 78, 65, 85, 196,
+ 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45, 77, 65, 68, 210, 83, 72, 79,
+ 82, 84, 45, 84, 87, 73, 71, 45, 72, 65, 71, 65, 76, 204, 83, 72, 79, 82,
+ 84, 45, 84, 87, 73, 71, 45, 66, 74, 65, 82, 75, 65, 206, 83, 72, 79, 82,
+ 84, 45, 84, 87, 73, 71, 45, 65, 210, 83, 72, 79, 82, 84, 128, 83, 72, 79,
+ 82, 212, 83, 72, 79, 81, 128, 83, 72, 79, 209, 83, 72, 79, 80, 80, 73,
+ 78, 199, 83, 72, 79, 80, 128, 83, 72, 79, 79, 84, 73, 78, 199, 83, 72,
+ 79, 79, 84, 128, 83, 72, 79, 79, 73, 128, 83, 72, 79, 79, 128, 83, 72,
+ 79, 71, 201, 83, 72, 79, 199, 83, 72, 79, 69, 128, 83, 72, 79, 197, 83,
+ 72, 79, 65, 128, 83, 72, 79, 128, 83, 72, 73, 89, 89, 65, 65, 76, 65, 65,
128, 83, 72, 73, 84, 65, 128, 83, 72, 73, 84, 193, 83, 72, 73, 82, 212,
83, 72, 73, 82, 65, 69, 128, 83, 72, 73, 82, 128, 83, 72, 73, 210, 83,
- 72, 73, 81, 128, 83, 72, 73, 80, 128, 83, 72, 73, 78, 84, 207, 83, 72,
- 73, 78, 73, 71, 128, 83, 72, 73, 78, 68, 193, 83, 72, 73, 78, 128, 83,
- 72, 73, 206, 83, 72, 73, 77, 65, 128, 83, 72, 73, 77, 193, 83, 72, 73,
- 77, 128, 83, 72, 73, 205, 83, 72, 73, 73, 78, 128, 83, 72, 73, 73, 128,
- 83, 72, 73, 70, 212, 83, 72, 73, 69, 76, 68, 128, 83, 72, 73, 68, 128,
- 83, 72, 73, 196, 83, 72, 72, 65, 128, 83, 72, 72, 193, 83, 72, 69, 88,
- 128, 83, 72, 69, 86, 65, 128, 83, 72, 69, 85, 88, 128, 83, 72, 69, 85,
- 79, 81, 128, 83, 72, 69, 85, 65, 69, 81, 84, 85, 128, 83, 72, 69, 85, 65,
- 69, 81, 128, 83, 72, 69, 85, 65, 69, 128, 83, 72, 69, 84, 128, 83, 72,
- 69, 212, 83, 72, 69, 83, 72, 76, 65, 77, 128, 83, 72, 69, 83, 72, 73, 71,
- 128, 83, 72, 69, 83, 72, 73, 199, 83, 72, 69, 83, 72, 50, 128, 83, 72,
- 69, 83, 72, 128, 83, 72, 69, 81, 69, 204, 83, 72, 69, 80, 128, 83, 72,
- 69, 78, 128, 83, 72, 69, 76, 76, 128, 83, 72, 69, 76, 204, 83, 72, 69,
- 76, 70, 128, 83, 72, 69, 73, 128, 83, 72, 69, 71, 57, 128, 83, 72, 69,
- 69, 80, 128, 83, 72, 69, 69, 78, 85, 128, 83, 72, 69, 69, 78, 128, 83,
- 72, 69, 69, 206, 83, 72, 69, 69, 128, 83, 72, 69, 45, 71, 79, 65, 84,
- 128, 83, 72, 197, 83, 72, 67, 72, 65, 128, 83, 72, 65, 89, 128, 83, 72,
- 65, 88, 128, 83, 72, 65, 86, 73, 89, 65, 78, 73, 128, 83, 72, 65, 86, 73,
- 65, 206, 83, 72, 65, 86, 69, 196, 83, 72, 65, 85, 128, 83, 72, 65, 84,
- 128, 83, 72, 65, 82, 85, 128, 83, 72, 65, 82, 213, 83, 72, 65, 82, 80,
- 128, 83, 72, 65, 82, 208, 83, 72, 65, 82, 65, 128, 83, 72, 65, 82, 50,
- 128, 83, 72, 65, 82, 178, 83, 72, 65, 80, 73, 78, 71, 128, 83, 72, 65,
- 80, 69, 83, 128, 83, 72, 65, 80, 197, 83, 72, 65, 80, 128, 83, 72, 65,
- 78, 71, 128, 83, 72, 65, 78, 128, 83, 72, 65, 206, 83, 72, 65, 77, 82,
- 79, 67, 75, 128, 83, 72, 65, 76, 83, 72, 69, 76, 69, 84, 128, 83, 72, 65,
- 75, 84, 73, 128, 83, 72, 65, 73, 128, 83, 72, 65, 68, 79, 87, 69, 196,
- 83, 72, 65, 68, 69, 128, 83, 72, 65, 68, 68, 65, 128, 83, 72, 65, 68, 68,
- 193, 83, 72, 65, 68, 128, 83, 72, 65, 196, 83, 72, 65, 66, 54, 128, 83,
- 72, 65, 65, 128, 83, 72, 65, 54, 128, 83, 72, 65, 51, 128, 83, 72, 65,
- 179, 83, 71, 82, 193, 83, 71, 79, 210, 83, 71, 67, 128, 83, 71, 65, 215,
- 83, 71, 65, 194, 83, 71, 128, 83, 69, 88, 84, 85, 76, 193, 83, 69, 88,
+ 72, 73, 81, 128, 83, 72, 73, 78, 84, 207, 83, 72, 73, 78, 73, 71, 128,
+ 83, 72, 73, 78, 68, 193, 83, 72, 73, 206, 83, 72, 73, 77, 65, 128, 83,
+ 72, 73, 77, 193, 83, 72, 73, 77, 128, 83, 72, 73, 205, 83, 72, 73, 73,
+ 78, 128, 83, 72, 73, 73, 128, 83, 72, 73, 70, 212, 83, 72, 73, 69, 76,
+ 68, 128, 83, 72, 73, 68, 128, 83, 72, 73, 196, 83, 72, 72, 65, 128, 83,
+ 72, 72, 193, 83, 72, 69, 88, 128, 83, 72, 69, 86, 65, 128, 83, 72, 69,
+ 85, 88, 128, 83, 72, 69, 85, 79, 81, 128, 83, 72, 69, 85, 65, 69, 81, 84,
+ 85, 128, 83, 72, 69, 85, 65, 69, 81, 128, 83, 72, 69, 85, 65, 69, 128,
+ 83, 72, 69, 84, 128, 83, 72, 69, 212, 83, 72, 69, 83, 72, 76, 65, 77,
+ 128, 83, 72, 69, 83, 72, 73, 71, 128, 83, 72, 69, 83, 72, 73, 199, 83,
+ 72, 69, 83, 72, 50, 128, 83, 72, 69, 83, 72, 128, 83, 72, 69, 83, 200,
+ 83, 72, 69, 81, 69, 204, 83, 72, 69, 80, 128, 83, 72, 69, 78, 128, 83,
+ 72, 69, 76, 76, 128, 83, 72, 69, 76, 204, 83, 72, 69, 76, 70, 128, 83,
+ 72, 69, 73, 128, 83, 72, 69, 71, 57, 128, 83, 72, 69, 69, 80, 128, 83,
+ 72, 69, 69, 78, 85, 128, 83, 72, 69, 69, 78, 128, 83, 72, 69, 69, 206,
+ 83, 72, 69, 69, 128, 83, 72, 69, 45, 71, 79, 65, 84, 128, 83, 72, 197,
+ 83, 72, 67, 72, 79, 79, 73, 128, 83, 72, 67, 72, 65, 128, 83, 72, 65, 89,
+ 128, 83, 72, 65, 88, 128, 83, 72, 65, 86, 73, 89, 65, 78, 73, 128, 83,
+ 72, 65, 86, 73, 65, 206, 83, 72, 65, 86, 69, 196, 83, 72, 65, 85, 128,
+ 83, 72, 65, 84, 128, 83, 72, 65, 82, 85, 128, 83, 72, 65, 82, 213, 83,
+ 72, 65, 82, 80, 128, 83, 72, 65, 82, 208, 83, 72, 65, 82, 65, 128, 83,
+ 72, 65, 82, 50, 128, 83, 72, 65, 82, 178, 83, 72, 65, 80, 73, 78, 71,
+ 128, 83, 72, 65, 80, 69, 83, 128, 83, 72, 65, 80, 197, 83, 72, 65, 80,
+ 128, 83, 72, 65, 78, 71, 128, 83, 72, 65, 78, 128, 83, 72, 65, 206, 83,
+ 72, 65, 77, 82, 79, 67, 75, 128, 83, 72, 65, 76, 83, 72, 69, 76, 69, 84,
+ 128, 83, 72, 65, 75, 84, 73, 128, 83, 72, 65, 75, 73, 78, 71, 128, 83,
+ 72, 65, 75, 73, 78, 199, 83, 72, 65, 75, 128, 83, 72, 65, 73, 128, 83,
+ 72, 65, 70, 84, 128, 83, 72, 65, 70, 212, 83, 72, 65, 68, 79, 87, 69,
+ 196, 83, 72, 65, 68, 69, 196, 83, 72, 65, 68, 69, 128, 83, 72, 65, 68,
+ 68, 65, 128, 83, 72, 65, 68, 68, 193, 83, 72, 65, 68, 128, 83, 72, 65,
+ 196, 83, 72, 65, 66, 54, 128, 83, 72, 65, 65, 128, 83, 72, 65, 54, 128,
+ 83, 72, 65, 182, 83, 72, 65, 51, 128, 83, 72, 65, 179, 83, 71, 82, 193,
+ 83, 71, 79, 210, 83, 71, 67, 128, 83, 71, 65, 215, 83, 71, 65, 194, 83,
+ 71, 128, 83, 69, 89, 75, 128, 83, 69, 88, 84, 85, 76, 193, 83, 69, 88,
84, 73, 76, 69, 128, 83, 69, 88, 84, 65, 78, 211, 83, 69, 86, 69, 82, 65,
78, 67, 69, 128, 83, 69, 86, 69, 78, 84, 89, 128, 83, 69, 86, 69, 78, 84,
217, 83, 69, 86, 69, 78, 84, 72, 128, 83, 69, 86, 69, 78, 84, 69, 69, 78,
@@ -1007,1199 +1100,1364 @@ static unsigned char lexicon[] = {
78, 128, 83, 69, 83, 84, 69, 82, 84, 73, 85, 211, 83, 69, 83, 81, 85, 73,
81, 85, 65, 68, 82, 65, 84, 69, 128, 83, 69, 83, 65, 77, 197, 83, 69, 82,
86, 73, 67, 197, 83, 69, 82, 73, 70, 83, 128, 83, 69, 82, 73, 70, 211,
- 83, 69, 81, 85, 69, 78, 67, 197, 83, 69, 80, 84, 69, 77, 66, 69, 82, 128,
- 83, 69, 80, 65, 82, 65, 84, 79, 82, 128, 83, 69, 80, 65, 82, 65, 84, 79,
- 210, 83, 69, 78, 84, 79, 128, 83, 69, 78, 84, 73, 128, 83, 69, 77, 85,
- 78, 67, 73, 193, 83, 69, 77, 75, 65, 84, 72, 128, 83, 69, 77, 75, 128,
- 83, 69, 77, 73, 86, 79, 87, 69, 204, 83, 69, 77, 73, 83, 79, 70, 212, 83,
- 69, 77, 73, 83, 69, 88, 84, 73, 76, 69, 128, 83, 69, 77, 73, 77, 73, 78,
- 73, 77, 193, 83, 69, 77, 73, 68, 73, 82, 69, 67, 212, 83, 69, 77, 73, 67,
- 79, 76, 79, 78, 128, 83, 69, 77, 73, 67, 79, 76, 79, 206, 83, 69, 77, 73,
- 67, 73, 82, 67, 85, 76, 65, 210, 83, 69, 77, 73, 67, 73, 82, 67, 76, 197,
- 83, 69, 77, 73, 66, 82, 69, 86, 73, 211, 83, 69, 77, 73, 45, 86, 79, 73,
- 67, 69, 196, 83, 69, 76, 70, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 57,
- 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 57, 56, 128, 83, 69, 76, 69,
- 67, 84, 79, 82, 45, 57, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 57,
- 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 57, 53, 128, 83, 69, 76, 69,
- 67, 84, 79, 82, 45, 57, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 57,
- 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 57, 50, 128, 83, 69, 76, 69,
- 67, 84, 79, 82, 45, 57, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 57,
- 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 57, 128, 83, 69, 76, 69, 67,
- 84, 79, 82, 45, 56, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 56, 56,
- 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 56, 55, 128, 83, 69, 76, 69, 67,
- 84, 79, 82, 45, 56, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 56, 53,
- 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 56, 52, 128, 83, 69, 76, 69, 67,
- 84, 79, 82, 45, 56, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 56, 50,
- 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 56, 49, 128, 83, 69, 76, 69, 67,
- 84, 79, 82, 45, 56, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 56, 128,
- 83, 69, 76, 69, 67, 84, 79, 82, 45, 55, 57, 128, 83, 69, 76, 69, 67, 84,
- 79, 82, 45, 55, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 55, 55, 128,
- 83, 69, 76, 69, 67, 84, 79, 82, 45, 55, 54, 128, 83, 69, 76, 69, 67, 84,
- 79, 82, 45, 55, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 55, 52, 128,
- 83, 69, 76, 69, 67, 84, 79, 82, 45, 55, 51, 128, 83, 69, 76, 69, 67, 84,
- 79, 82, 45, 55, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 55, 49, 128,
- 83, 69, 76, 69, 67, 84, 79, 82, 45, 55, 48, 128, 83, 69, 76, 69, 67, 84,
- 79, 82, 45, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 54, 57, 128, 83,
- 69, 76, 69, 67, 84, 79, 82, 45, 54, 56, 128, 83, 69, 76, 69, 67, 84, 79,
- 82, 45, 54, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 54, 54, 128, 83,
- 69, 76, 69, 67, 84, 79, 82, 45, 54, 53, 128, 83, 69, 76, 69, 67, 84, 79,
- 82, 45, 54, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 54, 51, 128, 83,
- 69, 76, 69, 67, 84, 79, 82, 45, 54, 50, 128, 83, 69, 76, 69, 67, 84, 79,
- 82, 45, 54, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 54, 48, 128, 83,
- 69, 76, 69, 67, 84, 79, 82, 45, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82,
- 45, 53, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 53, 56, 128, 83, 69,
- 76, 69, 67, 84, 79, 82, 45, 53, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82,
- 45, 53, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 53, 53, 128, 83, 69,
- 76, 69, 67, 84, 79, 82, 45, 53, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82,
- 45, 53, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 53, 50, 128, 83, 69,
- 76, 69, 67, 84, 79, 82, 45, 53, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82,
- 45, 53, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 53, 128, 83, 69, 76,
- 69, 67, 84, 79, 82, 45, 52, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
- 52, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 52, 55, 128, 83, 69, 76,
- 69, 67, 84, 79, 82, 45, 52, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
- 52, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 52, 52, 128, 83, 69, 76,
- 69, 67, 84, 79, 82, 45, 52, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
- 52, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 52, 49, 128, 83, 69, 76,
- 69, 67, 84, 79, 82, 45, 52, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
- 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 51, 57, 128, 83, 69, 76, 69,
- 67, 84, 79, 82, 45, 51, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 51,
- 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 51, 54, 128, 83, 69, 76, 69,
- 67, 84, 79, 82, 45, 51, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 51,
- 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 51, 51, 128, 83, 69, 76, 69,
- 67, 84, 79, 82, 45, 51, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 51,
- 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 51, 48, 128, 83, 69, 76, 69,
- 67, 84, 79, 82, 45, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 57,
- 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 56, 128, 83, 69, 76, 69, 67,
- 84, 79, 82, 45, 50, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 54,
- 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 53, 54, 128, 83, 69, 76, 69,
- 67, 84, 79, 82, 45, 50, 53, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
- 50, 53, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 53, 51, 128, 83,
- 69, 76, 69, 67, 84, 79, 82, 45, 50, 53, 50, 128, 83, 69, 76, 69, 67, 84,
- 79, 82, 45, 50, 53, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 53,
- 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 53, 128, 83, 69, 76, 69,
- 67, 84, 79, 82, 45, 50, 52, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
- 50, 52, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 55, 128, 83,
- 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 54, 128, 83, 69, 76, 69, 67, 84,
- 79, 82, 45, 50, 52, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 52,
- 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 51, 128, 83, 69, 76,
- 69, 67, 84, 79, 82, 45, 50, 52, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82,
- 45, 50, 52, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 48, 128,
- 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 128, 83, 69, 76, 69, 67, 84,
- 79, 82, 45, 50, 51, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51,
- 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 55, 128, 83, 69, 76,
- 69, 67, 84, 79, 82, 45, 50, 51, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82,
- 45, 50, 51, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 52, 128,
- 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 51, 128, 83, 69, 76, 69, 67,
- 84, 79, 82, 45, 50, 51, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50,
- 51, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 48, 128, 83, 69,
- 76, 69, 67, 84, 79, 82, 45, 50, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82,
- 45, 50, 50, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 56, 128,
- 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 55, 128, 83, 69, 76, 69, 67,
- 84, 79, 82, 45, 50, 50, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50,
- 50, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 52, 128, 83, 69,
- 76, 69, 67, 84, 79, 82, 45, 50, 50, 51, 128, 83, 69, 76, 69, 67, 84, 79,
- 82, 45, 50, 50, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 49,
- 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 48, 128, 83, 69, 76, 69,
- 67, 84, 79, 82, 45, 50, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50,
- 49, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 56, 128, 83, 69,
- 76, 69, 67, 84, 79, 82, 45, 50, 49, 55, 128, 83, 69, 76, 69, 67, 84, 79,
- 82, 45, 50, 49, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 53,
- 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 52, 128, 83, 69, 76, 69,
- 67, 84, 79, 82, 45, 50, 49, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
- 50, 49, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 49, 128, 83,
- 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 48, 128, 83, 69, 76, 69, 67, 84,
- 79, 82, 45, 50, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 57,
- 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 56, 128, 83, 69, 76, 69,
- 67, 84, 79, 82, 45, 50, 48, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
- 50, 48, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 53, 128, 83,
- 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 52, 128, 83, 69, 76, 69, 67, 84,
- 79, 82, 45, 50, 48, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48,
- 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 49, 128, 83, 69, 76,
- 69, 67, 84, 79, 82, 45, 50, 48, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82,
- 45, 50, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 128, 83, 69, 76,
- 69, 67, 84, 79, 82, 45, 49, 57, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82,
- 45, 49, 57, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, 55, 128,
- 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, 54, 128, 83, 69, 76, 69, 67,
- 84, 79, 82, 45, 49, 57, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49,
- 57, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, 51, 128, 83, 69,
- 76, 69, 67, 84, 79, 82, 45, 49, 57, 50, 128, 83, 69, 76, 69, 67, 84, 79,
- 82, 45, 49, 57, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, 48,
- 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, 128, 83, 69, 76, 69, 67,
- 84, 79, 82, 45, 49, 56, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49,
- 56, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 55, 128, 83, 69,
- 76, 69, 67, 84, 79, 82, 45, 49, 56, 54, 128, 83, 69, 76, 69, 67, 84, 79,
- 82, 45, 49, 56, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 52,
- 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 51, 128, 83, 69, 76, 69,
- 67, 84, 79, 82, 45, 49, 56, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
- 49, 56, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 48, 128, 83,
- 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 128, 83, 69, 76, 69, 67, 84, 79,
- 82, 45, 49, 55, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 56,
- 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 55, 128, 83, 69, 76, 69,
- 67, 84, 79, 82, 45, 49, 55, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
- 49, 55, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 52, 128, 83,
- 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 51, 128, 83, 69, 76, 69, 67, 84,
- 79, 82, 45, 49, 55, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55,
- 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 48, 128, 83, 69, 76,
- 69, 67, 84, 79, 82, 45, 49, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
- 49, 54, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54, 56, 128, 83,
- 69, 76, 69, 67, 84, 79, 82, 45, 49, 54, 55, 128, 83, 69, 76, 69, 67, 84,
- 79, 82, 45, 49, 54, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54,
- 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54, 52, 128, 83, 69, 76,
- 69, 67, 84, 79, 82, 45, 49, 54, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82,
- 45, 49, 54, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54, 49, 128,
- 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54, 48, 128, 83, 69, 76, 69, 67,
- 84, 79, 82, 45, 49, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 53,
- 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 56, 128, 83, 69, 76,
- 69, 67, 84, 79, 82, 45, 49, 53, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82,
- 45, 49, 53, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 53, 128,
- 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 52, 128, 83, 69, 76, 69, 67,
- 84, 79, 82, 45, 49, 53, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49,
- 53, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 49, 128, 83, 69,
- 76, 69, 67, 84, 79, 82, 45, 49, 53, 48, 128, 83, 69, 76, 69, 67, 84, 79,
- 82, 45, 49, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 57, 128,
- 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 56, 128, 83, 69, 76, 69, 67,
- 84, 79, 82, 45, 49, 52, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49,
- 52, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 53, 128, 83, 69,
- 76, 69, 67, 84, 79, 82, 45, 49, 52, 52, 128, 83, 69, 76, 69, 67, 84, 79,
- 82, 45, 49, 52, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 50,
- 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 49, 128, 83, 69, 76, 69,
- 67, 84, 79, 82, 45, 49, 52, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
- 49, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 57, 128, 83, 69,
- 76, 69, 67, 84, 79, 82, 45, 49, 51, 56, 128, 83, 69, 76, 69, 67, 84, 79,
- 82, 45, 49, 51, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 54,
- 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 53, 128, 83, 69, 76, 69,
- 67, 84, 79, 82, 45, 49, 51, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
- 49, 51, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 50, 128, 83,
- 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 49, 128, 83, 69, 76, 69, 67, 84,
- 79, 82, 45, 49, 51, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51,
- 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 57, 128, 83, 69, 76, 69,
- 67, 84, 79, 82, 45, 49, 50, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
- 49, 50, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 54, 128, 83,
- 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 53, 128, 83, 69, 76, 69, 67, 84,
- 79, 82, 45, 49, 50, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50,
- 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 50, 128, 83, 69, 76,
- 69, 67, 84, 79, 82, 45, 49, 50, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82,
- 45, 49, 50, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 128, 83,
- 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 57, 128, 83, 69, 76, 69, 67, 84,
- 79, 82, 45, 49, 49, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49,
- 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 54, 128, 83, 69, 76,
- 69, 67, 84, 79, 82, 45, 49, 49, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82,
- 45, 49, 49, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 51, 128,
- 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 50, 128, 83, 69, 76, 69, 67,
- 84, 79, 82, 45, 49, 49, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49,
- 49, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 128, 83, 69, 76,
- 69, 67, 84, 79, 82, 45, 49, 48, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82,
- 45, 49, 48, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, 55, 128,
- 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, 54, 128, 83, 69, 76, 69, 67,
- 84, 79, 82, 45, 49, 48, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49,
- 48, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, 51, 128, 83, 69,
- 76, 69, 67, 84, 79, 82, 45, 49, 48, 50, 128, 83, 69, 76, 69, 67, 84, 79,
- 82, 45, 49, 48, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, 48,
- 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, 128, 83, 69, 76, 69, 67,
- 84, 79, 82, 45, 49, 128, 83, 69, 76, 69, 67, 84, 79, 210, 83, 69, 76, 69,
- 67, 84, 69, 196, 83, 69, 73, 83, 77, 65, 128, 83, 69, 73, 83, 77, 193,
- 83, 69, 72, 128, 83, 69, 71, 79, 76, 128, 83, 69, 71, 78, 79, 128, 83,
- 69, 71, 77, 69, 78, 84, 128, 83, 69, 69, 78, 85, 128, 83, 69, 69, 78,
- 128, 83, 69, 69, 206, 83, 69, 69, 68, 76, 73, 78, 71, 128, 83, 69, 69,
- 45, 78, 79, 45, 69, 86, 73, 204, 83, 69, 67, 84, 79, 82, 128, 83, 69, 67,
- 84, 73, 79, 78, 128, 83, 69, 67, 84, 73, 79, 206, 83, 69, 67, 82, 69, 84,
- 128, 83, 69, 67, 79, 78, 68, 128, 83, 69, 66, 65, 84, 66, 69, 73, 212,
- 83, 69, 65, 84, 128, 83, 69, 65, 76, 128, 83, 69, 65, 71, 85, 76, 204,
- 83, 68, 79, 78, 199, 83, 68, 128, 83, 67, 87, 65, 128, 83, 67, 82, 85,
- 80, 76, 69, 128, 83, 67, 82, 79, 76, 76, 128, 83, 67, 82, 73, 80, 84,
- 128, 83, 67, 82, 69, 69, 78, 128, 83, 67, 82, 69, 69, 206, 83, 67, 82,
- 69, 65, 77, 73, 78, 199, 83, 67, 79, 82, 80, 73, 85, 83, 128, 83, 67, 79,
- 82, 69, 128, 83, 67, 73, 83, 83, 79, 82, 83, 128, 83, 67, 73, 128, 83,
- 67, 72, 87, 65, 128, 83, 67, 72, 87, 193, 83, 67, 72, 82, 79, 69, 68, 69,
- 82, 128, 83, 67, 72, 79, 79, 76, 128, 83, 67, 72, 79, 79, 204, 83, 67,
- 72, 79, 76, 65, 82, 128, 83, 67, 72, 69, 77, 193, 83, 67, 69, 80, 84, 69,
- 210, 83, 67, 65, 78, 68, 73, 67, 85, 83, 128, 83, 67, 65, 78, 68, 73, 67,
- 85, 211, 83, 67, 65, 206, 83, 67, 65, 76, 69, 83, 128, 83, 66, 85, 194,
- 83, 66, 82, 85, 204, 83, 65, 89, 73, 83, 201, 83, 65, 89, 65, 78, 78, 65,
- 128, 83, 65, 89, 128, 83, 65, 88, 79, 80, 72, 79, 78, 69, 128, 83, 65,
- 88, 73, 77, 65, 84, 65, 128, 83, 65, 87, 65, 78, 128, 83, 65, 87, 128,
- 83, 65, 86, 79, 85, 82, 73, 78, 199, 83, 65, 85, 73, 76, 128, 83, 65, 84,
- 85, 82, 78, 128, 83, 65, 84, 75, 65, 65, 78, 75, 85, 85, 128, 83, 65, 84,
- 75, 65, 65, 78, 128, 83, 65, 84, 69, 76, 76, 73, 84, 197, 83, 65, 84, 67,
- 72, 69, 76, 128, 83, 65, 84, 65, 78, 71, 65, 128, 83, 65, 83, 72, 128,
- 83, 65, 83, 65, 75, 128, 83, 65, 82, 73, 128, 83, 65, 82, 193, 83, 65,
- 82, 128, 83, 65, 81, 128, 83, 65, 80, 65, 128, 83, 65, 78, 89, 79, 79,
- 71, 193, 83, 65, 78, 89, 65, 75, 193, 83, 65, 78, 84, 73, 73, 77, 85,
- 128, 83, 65, 78, 78, 89, 65, 128, 83, 65, 78, 71, 65, 50, 128, 83, 65,
- 78, 68, 65, 76, 128, 83, 65, 78, 65, 72, 128, 83, 65, 78, 128, 83, 65,
- 77, 89, 79, 203, 83, 65, 77, 86, 65, 84, 128, 83, 65, 77, 80, 73, 128,
- 83, 65, 77, 80, 72, 65, 79, 128, 83, 65, 77, 75, 65, 128, 83, 65, 77, 69,
- 75, 72, 128, 83, 65, 77, 69, 75, 200, 83, 65, 77, 66, 65, 128, 83, 65,
- 77, 65, 82, 73, 84, 65, 206, 83, 65, 77, 128, 83, 65, 76, 84, 73, 82, 69,
- 128, 83, 65, 76, 84, 73, 76, 76, 79, 128, 83, 65, 76, 84, 45, 50, 128,
- 83, 65, 76, 84, 128, 83, 65, 76, 212, 83, 65, 76, 76, 65, 76, 76, 65, 72,
- 79, 213, 83, 65, 76, 76, 193, 83, 65, 76, 65, 205, 83, 65, 76, 65, 128,
- 83, 65, 76, 45, 65, 77, 77, 79, 78, 73, 65, 67, 128, 83, 65, 76, 128, 83,
- 65, 75, 79, 84, 128, 83, 65, 75, 69, 85, 65, 69, 128, 83, 65, 75, 197,
- 83, 65, 74, 68, 65, 72, 128, 83, 65, 73, 76, 66, 79, 65, 84, 128, 83, 65,
- 73, 76, 128, 83, 65, 73, 75, 85, 82, 85, 128, 83, 65, 72, 128, 83, 65,
- 71, 73, 84, 84, 65, 82, 73, 85, 83, 128, 83, 65, 71, 65, 128, 83, 65, 71,
- 128, 83, 65, 199, 83, 65, 70, 72, 65, 128, 83, 65, 68, 72, 69, 128, 83,
- 65, 68, 69, 128, 83, 65, 68, 128, 83, 65, 196, 83, 65, 67, 82, 73, 70,
- 73, 67, 73, 65, 204, 83, 65, 65, 73, 128, 83, 65, 65, 68, 72, 85, 128,
- 83, 65, 45, 73, 128, 83, 65, 45, 50, 128, 83, 48, 52, 54, 128, 83, 48,
- 52, 53, 128, 83, 48, 52, 52, 128, 83, 48, 52, 51, 128, 83, 48, 52, 50,
- 128, 83, 48, 52, 49, 128, 83, 48, 52, 48, 128, 83, 48, 51, 57, 128, 83,
- 48, 51, 56, 128, 83, 48, 51, 55, 128, 83, 48, 51, 54, 128, 83, 48, 51,
- 53, 65, 128, 83, 48, 51, 53, 128, 83, 48, 51, 52, 128, 83, 48, 51, 51,
- 128, 83, 48, 51, 50, 128, 83, 48, 51, 49, 128, 83, 48, 51, 48, 128, 83,
- 48, 50, 57, 128, 83, 48, 50, 56, 128, 83, 48, 50, 55, 128, 83, 48, 50,
- 54, 66, 128, 83, 48, 50, 54, 65, 128, 83, 48, 50, 54, 128, 83, 48, 50,
- 53, 128, 83, 48, 50, 52, 128, 83, 48, 50, 51, 128, 83, 48, 50, 50, 128,
- 83, 48, 50, 49, 128, 83, 48, 50, 48, 128, 83, 48, 49, 57, 128, 83, 48,
- 49, 56, 128, 83, 48, 49, 55, 65, 128, 83, 48, 49, 55, 128, 83, 48, 49,
- 54, 128, 83, 48, 49, 53, 128, 83, 48, 49, 52, 66, 128, 83, 48, 49, 52,
- 65, 128, 83, 48, 49, 52, 128, 83, 48, 49, 51, 128, 83, 48, 49, 50, 128,
- 83, 48, 49, 49, 128, 83, 48, 49, 48, 128, 83, 48, 48, 57, 128, 83, 48,
- 48, 56, 128, 83, 48, 48, 55, 128, 83, 48, 48, 54, 65, 128, 83, 48, 48,
- 54, 128, 83, 48, 48, 53, 128, 83, 48, 48, 52, 128, 83, 48, 48, 51, 128,
- 83, 48, 48, 50, 65, 128, 83, 48, 48, 50, 128, 83, 48, 48, 49, 128, 83,
- 45, 87, 128, 83, 45, 83, 72, 65, 80, 69, 196, 82, 89, 89, 128, 82, 89,
- 88, 128, 82, 89, 84, 128, 82, 89, 82, 88, 128, 82, 89, 82, 128, 82, 89,
- 80, 128, 82, 87, 79, 79, 128, 82, 87, 79, 128, 82, 87, 73, 73, 128, 82,
- 87, 73, 128, 82, 87, 69, 69, 128, 82, 87, 69, 128, 82, 87, 65, 72, 65,
- 128, 82, 87, 65, 65, 128, 82, 87, 65, 128, 82, 85, 88, 128, 82, 85, 85,
- 66, 85, 82, 85, 128, 82, 85, 85, 128, 82, 85, 84, 128, 82, 85, 83, 73,
- 128, 82, 85, 82, 88, 128, 82, 85, 82, 128, 82, 85, 80, 73, 73, 128, 82,
- 85, 80, 69, 197, 82, 85, 80, 128, 82, 85, 79, 88, 128, 82, 85, 79, 80,
- 128, 82, 85, 79, 128, 82, 85, 78, 79, 85, 84, 128, 82, 85, 78, 78, 73,
- 78, 199, 82, 85, 78, 78, 69, 82, 128, 82, 85, 78, 128, 82, 85, 77, 201,
- 82, 85, 77, 65, 201, 82, 85, 77, 128, 82, 85, 205, 82, 85, 76, 69, 82,
- 128, 82, 85, 76, 69, 45, 68, 69, 76, 65, 89, 69, 68, 128, 82, 85, 76, 69,
- 128, 82, 85, 75, 75, 65, 75, 72, 65, 128, 82, 85, 73, 83, 128, 82, 85,
- 71, 66, 217, 82, 85, 194, 82, 85, 65, 128, 82, 84, 72, 65, 78, 199, 82,
- 84, 65, 71, 83, 128, 82, 84, 65, 71, 211, 82, 82, 89, 88, 128, 82, 82,
- 89, 84, 128, 82, 82, 89, 82, 88, 128, 82, 82, 89, 82, 128, 82, 82, 89,
- 80, 128, 82, 82, 85, 88, 128, 82, 82, 85, 85, 128, 82, 82, 85, 84, 128,
- 82, 82, 85, 82, 88, 128, 82, 82, 85, 82, 128, 82, 82, 85, 80, 128, 82,
- 82, 85, 79, 88, 128, 82, 82, 85, 79, 128, 82, 82, 85, 128, 82, 82, 79,
- 88, 128, 82, 82, 79, 84, 128, 82, 82, 79, 80, 128, 82, 82, 79, 79, 128,
- 82, 82, 79, 128, 82, 82, 73, 73, 128, 82, 82, 73, 128, 82, 82, 69, 88,
- 128, 82, 82, 69, 84, 128, 82, 82, 69, 80, 128, 82, 82, 69, 72, 128, 82,
- 82, 69, 200, 82, 82, 69, 69, 128, 82, 82, 69, 128, 82, 82, 65, 88, 128,
- 82, 82, 65, 85, 128, 82, 82, 65, 73, 128, 82, 82, 65, 65, 128, 82, 82,
- 65, 128, 82, 79, 87, 66, 79, 65, 84, 128, 82, 79, 85, 78, 68, 69, 196,
- 82, 79, 85, 78, 68, 45, 84, 73, 80, 80, 69, 196, 82, 79, 84, 85, 78, 68,
- 65, 128, 82, 79, 84, 65, 84, 69, 196, 82, 79, 83, 72, 128, 82, 79, 83,
- 69, 84, 84, 69, 128, 82, 79, 83, 69, 128, 82, 79, 79, 84, 128, 82, 79,
- 79, 83, 84, 69, 82, 128, 82, 79, 79, 75, 128, 82, 79, 79, 70, 128, 82,
- 79, 77, 65, 206, 82, 79, 77, 128, 82, 79, 76, 76, 69, 210, 82, 79, 72,
- 73, 78, 71, 89, 193, 82, 79, 196, 82, 79, 67, 75, 69, 84, 128, 82, 79,
- 67, 203, 82, 79, 67, 128, 82, 79, 66, 65, 84, 128, 82, 79, 65, 83, 84,
- 69, 196, 82, 79, 65, 82, 128, 82, 79, 65, 128, 82, 78, 89, 73, 78, 199,
- 82, 78, 79, 79, 78, 128, 82, 78, 79, 79, 206, 82, 78, 65, 205, 82, 77,
- 84, 128, 82, 76, 79, 128, 82, 76, 77, 128, 82, 76, 73, 128, 82, 76, 69,
- 128, 82, 74, 69, 211, 82, 74, 69, 128, 82, 74, 197, 82, 73, 86, 69, 82,
- 128, 82, 73, 84, 85, 65, 76, 128, 82, 73, 84, 84, 79, 82, 85, 128, 82,
- 73, 84, 83, 73, 128, 82, 73, 83, 73, 78, 199, 82, 73, 83, 72, 128, 82,
- 73, 82, 65, 128, 82, 73, 80, 128, 82, 73, 78, 71, 211, 82, 73, 78, 70,
- 79, 82, 90, 65, 78, 68, 79, 128, 82, 73, 206, 82, 73, 77, 71, 66, 65,
- 128, 82, 73, 75, 82, 73, 75, 128, 82, 73, 71, 86, 69, 68, 73, 195, 82,
- 73, 71, 72, 84, 87, 65, 82, 68, 83, 128, 82, 73, 71, 72, 84, 72, 65, 78,
- 196, 82, 73, 71, 72, 84, 45, 84, 79, 45, 76, 69, 70, 212, 82, 73, 71, 72,
- 84, 45, 83, 73, 68, 197, 82, 73, 71, 72, 84, 45, 83, 72, 65, 68, 79, 87,
- 69, 196, 82, 73, 71, 72, 84, 45, 83, 72, 65, 68, 69, 196, 82, 73, 71, 72,
- 84, 45, 80, 79, 73, 78, 84, 73, 78, 199, 82, 73, 71, 72, 84, 45, 72, 65,
- 78, 68, 69, 196, 82, 73, 71, 72, 84, 45, 72, 65, 78, 196, 82, 73, 71, 72,
- 84, 45, 70, 65, 67, 73, 78, 199, 82, 73, 71, 72, 84, 128, 82, 73, 69, 85,
- 76, 45, 89, 69, 83, 73, 69, 85, 78, 71, 128, 82, 73, 69, 85, 76, 45, 89,
- 69, 79, 82, 73, 78, 72, 73, 69, 85, 72, 45, 72, 73, 69, 85, 72, 128, 82,
- 73, 69, 85, 76, 45, 89, 69, 79, 82, 73, 78, 72, 73, 69, 85, 72, 128, 82,
- 73, 69, 85, 76, 45, 84, 73, 75, 69, 85, 84, 45, 72, 73, 69, 85, 72, 128,
- 82, 73, 69, 85, 76, 45, 84, 73, 75, 69, 85, 84, 128, 82, 73, 69, 85, 76,
- 45, 84, 72, 73, 69, 85, 84, 72, 128, 82, 73, 69, 85, 76, 45, 83, 83, 65,
- 78, 71, 84, 73, 75, 69, 85, 84, 128, 82, 73, 69, 85, 76, 45, 83, 83, 65,
- 78, 71, 83, 73, 79, 83, 128, 82, 73, 69, 85, 76, 45, 83, 83, 65, 78, 71,
- 80, 73, 69, 85, 80, 128, 82, 73, 69, 85, 76, 45, 83, 83, 65, 78, 71, 75,
- 73, 89, 69, 79, 75, 128, 82, 73, 69, 85, 76, 45, 83, 73, 79, 83, 128, 82,
- 73, 69, 85, 76, 45, 80, 73, 69, 85, 80, 45, 84, 73, 75, 69, 85, 84, 128,
- 82, 73, 69, 85, 76, 45, 80, 73, 69, 85, 80, 45, 83, 73, 79, 83, 128, 82,
- 73, 69, 85, 76, 45, 80, 73, 69, 85, 80, 45, 80, 72, 73, 69, 85, 80, 72,
- 128, 82, 73, 69, 85, 76, 45, 80, 73, 69, 85, 80, 45, 72, 73, 69, 85, 72,
- 128, 82, 73, 69, 85, 76, 45, 80, 73, 69, 85, 80, 128, 82, 73, 69, 85, 76,
- 45, 80, 72, 73, 69, 85, 80, 72, 128, 82, 73, 69, 85, 76, 45, 80, 65, 78,
- 83, 73, 79, 83, 128, 82, 73, 69, 85, 76, 45, 78, 73, 69, 85, 78, 128, 82,
- 73, 69, 85, 76, 45, 77, 73, 69, 85, 77, 45, 83, 73, 79, 83, 128, 82, 73,
- 69, 85, 76, 45, 77, 73, 69, 85, 77, 45, 75, 73, 89, 69, 79, 75, 128, 82,
- 73, 69, 85, 76, 45, 77, 73, 69, 85, 77, 45, 72, 73, 69, 85, 72, 128, 82,
- 73, 69, 85, 76, 45, 77, 73, 69, 85, 77, 128, 82, 73, 69, 85, 76, 45, 75,
- 73, 89, 69, 79, 75, 45, 83, 73, 79, 83, 128, 82, 73, 69, 85, 76, 45, 75,
- 73, 89, 69, 79, 75, 45, 72, 73, 69, 85, 72, 128, 82, 73, 69, 85, 76, 45,
- 75, 73, 89, 69, 79, 75, 128, 82, 73, 69, 85, 76, 45, 75, 65, 80, 89, 69,
- 79, 85, 78, 80, 73, 69, 85, 80, 128, 82, 73, 69, 85, 76, 45, 72, 73, 69,
- 85, 72, 128, 82, 73, 69, 85, 76, 45, 67, 73, 69, 85, 67, 128, 82, 73, 69,
- 85, 204, 82, 73, 69, 76, 128, 82, 73, 69, 69, 128, 82, 73, 67, 69, 77,
- 128, 82, 73, 67, 69, 128, 82, 73, 67, 197, 82, 73, 66, 66, 79, 78, 128,
- 82, 73, 65, 204, 82, 72, 79, 84, 73, 195, 82, 72, 79, 128, 82, 72, 207,
- 82, 72, 65, 128, 82, 71, 89, 73, 78, 71, 83, 128, 82, 71, 89, 65, 78,
- 128, 82, 71, 89, 193, 82, 69, 86, 79, 76, 86, 73, 78, 199, 82, 69, 86,
- 79, 76, 85, 84, 73, 79, 78, 128, 82, 69, 86, 77, 65, 128, 82, 69, 86, 73,
- 65, 128, 82, 69, 86, 69, 82, 83, 69, 68, 128, 82, 69, 86, 69, 82, 83, 69,
- 196, 82, 69, 86, 69, 82, 83, 197, 82, 69, 85, 88, 128, 82, 69, 85, 128,
- 82, 69, 84, 85, 82, 78, 128, 82, 69, 84, 85, 82, 206, 82, 69, 84, 82, 79,
- 70, 76, 69, 216, 82, 69, 84, 82, 69, 65, 84, 128, 82, 69, 84, 79, 82, 84,
- 128, 82, 69, 83, 85, 80, 73, 78, 85, 83, 128, 82, 69, 83, 84, 82, 79, 79,
- 77, 128, 82, 69, 83, 84, 82, 73, 67, 84, 69, 196, 82, 69, 83, 84, 128,
- 82, 69, 83, 80, 79, 78, 83, 69, 128, 82, 69, 83, 79, 85, 82, 67, 69, 128,
- 82, 69, 83, 79, 76, 85, 84, 73, 79, 78, 128, 82, 69, 83, 73, 83, 84, 65,
- 78, 67, 69, 128, 82, 69, 83, 73, 68, 69, 78, 67, 69, 128, 82, 69, 83,
- 200, 82, 69, 82, 69, 78, 71, 71, 65, 78, 128, 82, 69, 82, 69, 75, 65, 78,
- 128, 82, 69, 80, 82, 69, 83, 69, 78, 84, 128, 82, 69, 80, 76, 65, 67, 69,
- 77, 69, 78, 212, 82, 69, 80, 72, 128, 82, 69, 80, 69, 84, 73, 84, 73, 79,
- 206, 82, 69, 80, 69, 65, 84, 69, 196, 82, 69, 80, 69, 65, 84, 128, 82,
- 69, 80, 69, 65, 212, 82, 69, 80, 65, 89, 65, 128, 82, 69, 80, 65, 128,
- 82, 69, 80, 193, 82, 69, 78, 84, 79, 71, 69, 78, 128, 82, 69, 78, 128,
- 82, 69, 206, 82, 69, 77, 85, 128, 82, 69, 77, 69, 68, 89, 128, 82, 69,
- 76, 73, 71, 73, 79, 78, 128, 82, 69, 76, 73, 69, 86, 69, 196, 82, 69, 76,
- 69, 65, 83, 69, 128, 82, 69, 76, 65, 84, 73, 79, 78, 65, 204, 82, 69, 76,
- 65, 84, 73, 79, 78, 128, 82, 69, 76, 65, 65, 128, 82, 69, 74, 65, 78,
- 199, 82, 69, 73, 196, 82, 69, 71, 85, 76, 85, 83, 45, 52, 128, 82, 69,
- 71, 85, 76, 85, 83, 45, 51, 128, 82, 69, 71, 85, 76, 85, 83, 45, 50, 128,
- 82, 69, 71, 85, 76, 85, 83, 128, 82, 69, 71, 85, 76, 85, 211, 82, 69, 71,
- 73, 83, 84, 69, 82, 69, 196, 82, 69, 71, 73, 79, 78, 65, 204, 82, 69, 71,
- 73, 65, 45, 50, 128, 82, 69, 71, 73, 65, 128, 82, 69, 70, 79, 82, 77, 69,
- 196, 82, 69, 70, 69, 82, 69, 78, 67, 197, 82, 69, 68, 85, 80, 76, 73, 67,
- 65, 84, 73, 79, 78, 128, 82, 69, 67, 89, 67, 76, 73, 78, 199, 82, 69, 67,
- 89, 67, 76, 69, 196, 82, 69, 67, 84, 73, 76, 73, 78, 69, 65, 210, 82, 69,
- 67, 84, 65, 78, 71, 85, 76, 65, 210, 82, 69, 67, 84, 65, 78, 71, 76, 69,
- 128, 82, 69, 67, 84, 65, 78, 71, 76, 197, 82, 69, 67, 82, 69, 65, 84, 73,
- 79, 78, 65, 204, 82, 69, 67, 79, 82, 68, 73, 78, 199, 82, 69, 67, 79, 82,
- 68, 69, 82, 128, 82, 69, 67, 79, 82, 196, 82, 69, 67, 69, 80, 84, 73, 86,
- 197, 82, 69, 67, 69, 73, 86, 69, 82, 128, 82, 69, 65, 76, 71, 65, 82, 45,
- 50, 128, 82, 69, 65, 76, 71, 65, 82, 128, 82, 69, 65, 72, 77, 85, 75,
- 128, 82, 69, 65, 67, 72, 128, 82, 68, 207, 82, 68, 69, 204, 82, 66, 65,
- 83, 193, 82, 65, 89, 83, 128, 82, 65, 89, 65, 78, 78, 65, 128, 82, 65,
- 84, 73, 79, 128, 82, 65, 84, 72, 65, 128, 82, 65, 84, 72, 193, 82, 65,
- 84, 65, 128, 82, 65, 84, 128, 82, 65, 83, 87, 65, 68, 73, 128, 82, 65,
- 83, 79, 85, 204, 82, 65, 83, 72, 65, 128, 82, 65, 81, 128, 82, 65, 80,
- 73, 83, 77, 65, 128, 82, 65, 78, 71, 197, 82, 65, 78, 65, 128, 82, 65,
- 78, 128, 82, 65, 77, 211, 82, 65, 77, 66, 65, 84, 128, 82, 65, 75, 72,
- 65, 78, 71, 128, 82, 65, 75, 65, 65, 82, 65, 65, 78, 83, 65, 89, 65, 128,
- 82, 65, 73, 83, 73, 78, 199, 82, 65, 73, 83, 69, 196, 82, 65, 73, 78, 66,
- 79, 87, 128, 82, 65, 73, 76, 87, 65, 89, 128, 82, 65, 73, 76, 87, 65,
- 217, 82, 65, 73, 76, 128, 82, 65, 73, 68, 207, 82, 65, 73, 68, 65, 128,
- 82, 65, 72, 77, 65, 84, 85, 76, 76, 65, 200, 82, 65, 72, 128, 82, 65, 70,
- 69, 128, 82, 65, 69, 77, 128, 82, 65, 68, 73, 79, 65, 67, 84, 73, 86,
- 197, 82, 65, 68, 73, 79, 128, 82, 65, 68, 73, 207, 82, 65, 68, 201, 82,
- 65, 68, 128, 82, 65, 196, 82, 65, 67, 81, 85, 69, 212, 82, 65, 67, 73,
- 78, 71, 128, 82, 65, 66, 66, 73, 84, 128, 82, 65, 66, 66, 73, 212, 82,
- 65, 66, 128, 82, 65, 65, 73, 128, 82, 65, 51, 128, 82, 65, 50, 128, 82,
- 65, 45, 50, 128, 82, 48, 50, 57, 128, 82, 48, 50, 56, 128, 82, 48, 50,
- 55, 128, 82, 48, 50, 54, 128, 82, 48, 50, 53, 128, 82, 48, 50, 52, 128,
- 82, 48, 50, 51, 128, 82, 48, 50, 50, 128, 82, 48, 50, 49, 128, 82, 48,
- 50, 48, 128, 82, 48, 49, 57, 128, 82, 48, 49, 56, 128, 82, 48, 49, 55,
- 128, 82, 48, 49, 54, 65, 128, 82, 48, 49, 54, 128, 82, 48, 49, 53, 128,
- 82, 48, 49, 52, 128, 82, 48, 49, 51, 128, 82, 48, 49, 50, 128, 82, 48,
- 49, 49, 128, 82, 48, 49, 48, 65, 128, 82, 48, 49, 48, 128, 82, 48, 48,
- 57, 128, 82, 48, 48, 56, 128, 82, 48, 48, 55, 128, 82, 48, 48, 54, 128,
- 82, 48, 48, 53, 128, 82, 48, 48, 52, 128, 82, 48, 48, 51, 66, 128, 82,
- 48, 48, 51, 65, 128, 82, 48, 48, 51, 128, 82, 48, 48, 50, 65, 128, 82,
- 48, 48, 50, 128, 82, 48, 48, 49, 128, 82, 45, 67, 82, 69, 197, 81, 89,
- 88, 128, 81, 89, 85, 128, 81, 89, 84, 128, 81, 89, 82, 88, 128, 81, 89,
- 82, 128, 81, 89, 80, 128, 81, 89, 79, 128, 81, 89, 73, 128, 81, 89, 69,
- 69, 128, 81, 89, 69, 128, 81, 89, 65, 65, 128, 81, 89, 65, 128, 81, 89,
- 128, 81, 87, 73, 128, 81, 87, 69, 69, 128, 81, 87, 69, 128, 81, 87, 65,
- 65, 128, 81, 87, 65, 128, 81, 85, 88, 128, 81, 85, 86, 128, 81, 85, 85,
- 86, 128, 81, 85, 85, 128, 81, 85, 84, 128, 81, 85, 83, 72, 83, 72, 65,
- 89, 65, 128, 81, 85, 82, 88, 128, 81, 85, 82, 128, 81, 85, 80, 128, 81,
- 85, 79, 88, 128, 81, 85, 79, 84, 197, 81, 85, 79, 84, 65, 84, 73, 79,
- 206, 81, 85, 79, 84, 128, 81, 85, 79, 80, 128, 81, 85, 79, 128, 81, 85,
- 75, 128, 81, 85, 73, 78, 84, 69, 83, 83, 69, 78, 67, 69, 128, 81, 85, 73,
- 78, 68, 73, 67, 69, 83, 73, 77, 193, 81, 85, 73, 78, 67, 85, 78, 88, 128,
- 81, 85, 73, 78, 65, 82, 73, 85, 211, 81, 85, 73, 76, 76, 128, 81, 85, 73,
- 67, 203, 81, 85, 73, 128, 81, 85, 70, 128, 81, 85, 69, 83, 84, 73, 79,
- 78, 69, 196, 81, 85, 69, 83, 84, 73, 79, 78, 128, 81, 85, 69, 83, 84, 73,
- 79, 206, 81, 85, 69, 69, 78, 128, 81, 85, 69, 69, 206, 81, 85, 69, 128,
- 81, 85, 66, 85, 84, 83, 128, 81, 85, 65, 84, 69, 82, 78, 73, 79, 206, 81,
- 85, 65, 82, 84, 69, 82, 83, 128, 81, 85, 65, 82, 84, 69, 82, 211, 81, 85,
- 65, 82, 84, 69, 82, 128, 81, 85, 65, 82, 84, 69, 210, 81, 85, 65, 78, 84,
- 73, 84, 217, 81, 85, 65, 68, 82, 85, 80, 76, 197, 81, 85, 65, 68, 82, 65,
- 78, 84, 128, 81, 85, 65, 68, 82, 65, 78, 212, 81, 85, 65, 68, 128, 81,
- 85, 65, 196, 81, 85, 65, 128, 81, 85, 128, 81, 208, 81, 79, 88, 128, 81,
- 79, 84, 128, 81, 79, 80, 72, 128, 81, 79, 80, 65, 128, 81, 79, 80, 128,
- 81, 79, 79, 128, 81, 79, 207, 81, 79, 70, 128, 81, 79, 198, 81, 79, 65,
- 128, 81, 79, 128, 81, 78, 128, 81, 73, 88, 128, 81, 73, 84, 83, 65, 128,
- 81, 73, 84, 128, 81, 73, 80, 128, 81, 73, 73, 128, 81, 73, 69, 88, 128,
- 81, 73, 69, 84, 128, 81, 73, 69, 80, 128, 81, 73, 69, 128, 81, 73, 128,
- 81, 72, 87, 73, 128, 81, 72, 87, 69, 69, 128, 81, 72, 87, 69, 128, 81,
- 72, 87, 65, 65, 128, 81, 72, 87, 65, 128, 81, 72, 85, 128, 81, 72, 79,
- 128, 81, 72, 73, 128, 81, 72, 69, 69, 128, 81, 72, 69, 128, 81, 72, 65,
- 65, 128, 81, 72, 65, 128, 81, 71, 65, 128, 81, 69, 84, 65, 78, 65, 128,
- 81, 69, 69, 128, 81, 69, 128, 81, 65, 85, 128, 81, 65, 84, 65, 78, 128,
- 81, 65, 82, 78, 69, 217, 81, 65, 82, 128, 81, 65, 81, 128, 81, 65, 80,
- 72, 128, 81, 65, 77, 65, 84, 83, 128, 81, 65, 77, 65, 84, 211, 81, 65,
- 76, 193, 81, 65, 73, 82, 84, 72, 82, 65, 128, 81, 65, 73, 128, 81, 65,
- 70, 128, 81, 65, 198, 81, 65, 68, 77, 65, 128, 81, 65, 65, 73, 128, 81,
- 65, 65, 70, 85, 128, 81, 65, 65, 70, 128, 81, 48, 48, 55, 128, 81, 48,
- 48, 54, 128, 81, 48, 48, 53, 128, 81, 48, 48, 52, 128, 81, 48, 48, 51,
- 128, 81, 48, 48, 50, 128, 81, 48, 48, 49, 128, 80, 90, 128, 80, 89, 88,
- 128, 80, 89, 84, 128, 80, 89, 82, 88, 128, 80, 89, 82, 128, 80, 89, 80,
- 128, 80, 89, 128, 80, 87, 79, 89, 128, 80, 87, 79, 79, 128, 80, 87, 79,
- 128, 80, 87, 207, 80, 87, 73, 73, 128, 80, 87, 73, 128, 80, 87, 69, 69,
- 128, 80, 87, 69, 128, 80, 87, 65, 65, 128, 80, 87, 128, 80, 86, 128, 80,
- 85, 88, 128, 80, 85, 85, 84, 128, 80, 85, 85, 128, 80, 85, 84, 82, 69,
- 70, 65, 67, 84, 73, 79, 78, 128, 80, 85, 84, 128, 80, 85, 212, 80, 85,
- 83, 72, 80, 73, 78, 128, 80, 85, 83, 72, 80, 73, 75, 65, 128, 80, 85, 83,
- 72, 73, 78, 199, 80, 85, 82, 88, 128, 80, 85, 82, 83, 69, 128, 80, 85,
- 82, 80, 76, 197, 80, 85, 82, 78, 65, 77, 65, 128, 80, 85, 82, 73, 84, 89,
- 128, 80, 85, 82, 73, 70, 89, 128, 80, 85, 82, 128, 80, 85, 81, 128, 80,
- 85, 80, 128, 80, 85, 79, 88, 128, 80, 85, 79, 80, 128, 80, 85, 79, 128,
- 80, 85, 78, 71, 65, 65, 77, 128, 80, 85, 78, 71, 128, 80, 85, 78, 67, 84,
- 85, 65, 84, 73, 79, 78, 128, 80, 85, 78, 67, 84, 85, 65, 84, 73, 79, 206,
- 80, 85, 77, 80, 128, 80, 85, 77, 128, 80, 85, 69, 128, 80, 85, 66, 76,
- 73, 195, 80, 85, 65, 81, 128, 80, 85, 65, 69, 128, 80, 85, 50, 128, 80,
- 85, 49, 128, 80, 85, 128, 80, 84, 72, 65, 72, 193, 80, 84, 69, 128, 80,
- 83, 73, 76, 201, 80, 83, 73, 70, 73, 83, 84, 79, 83, 89, 78, 65, 71, 77,
- 65, 128, 80, 83, 73, 70, 73, 83, 84, 79, 80, 65, 82, 65, 75, 65, 76, 69,
- 83, 77, 65, 128, 80, 83, 73, 70, 73, 83, 84, 79, 206, 80, 83, 73, 70, 73,
- 83, 84, 79, 76, 89, 71, 73, 83, 77, 65, 128, 80, 83, 73, 128, 80, 83,
+ 83, 69, 82, 73, 70, 128, 83, 69, 81, 85, 69, 78, 84, 73, 65, 76, 128, 83,
+ 69, 81, 85, 69, 78, 67, 197, 83, 69, 80, 84, 85, 80, 76, 197, 83, 69, 80,
+ 84, 69, 77, 66, 69, 82, 128, 83, 69, 80, 65, 82, 65, 84, 79, 82, 128, 83,
+ 69, 80, 65, 82, 65, 84, 79, 210, 83, 69, 78, 84, 79, 128, 83, 69, 78, 84,
+ 73, 128, 83, 69, 77, 85, 78, 67, 73, 193, 83, 69, 77, 75, 65, 84, 72,
+ 128, 83, 69, 77, 75, 128, 83, 69, 77, 73, 86, 79, 87, 69, 204, 83, 69,
+ 77, 73, 83, 79, 70, 212, 83, 69, 77, 73, 83, 69, 88, 84, 73, 76, 69, 128,
+ 83, 69, 77, 73, 77, 73, 78, 73, 77, 193, 83, 69, 77, 73, 68, 73, 82, 69,
+ 67, 212, 83, 69, 77, 73, 67, 79, 76, 79, 78, 128, 83, 69, 77, 73, 67, 79,
+ 76, 79, 206, 83, 69, 77, 73, 67, 73, 82, 67, 85, 76, 65, 210, 83, 69, 77,
+ 73, 67, 73, 82, 67, 76, 197, 83, 69, 77, 73, 66, 82, 69, 86, 73, 211, 83,
+ 69, 77, 73, 45, 86, 79, 73, 67, 69, 196, 83, 69, 76, 70, 128, 83, 69, 76,
+ 69, 67, 84, 79, 82, 45, 57, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
+ 57, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 57, 55, 128, 83, 69, 76,
+ 69, 67, 84, 79, 82, 45, 57, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
+ 57, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 57, 52, 128, 83, 69, 76,
+ 69, 67, 84, 79, 82, 45, 57, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
+ 57, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 57, 49, 128, 83, 69, 76,
+ 69, 67, 84, 79, 82, 45, 57, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
+ 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 56, 57, 128, 83, 69, 76, 69,
+ 67, 84, 79, 82, 45, 56, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 56,
+ 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 56, 54, 128, 83, 69, 76, 69,
+ 67, 84, 79, 82, 45, 56, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 56,
+ 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 56, 51, 128, 83, 69, 76, 69,
+ 67, 84, 79, 82, 45, 56, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 56,
+ 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 56, 48, 128, 83, 69, 76, 69,
+ 67, 84, 79, 82, 45, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 55, 57,
+ 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 55, 56, 128, 83, 69, 76, 69, 67,
+ 84, 79, 82, 45, 55, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 55, 54,
+ 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 55, 53, 128, 83, 69, 76, 69, 67,
+ 84, 79, 82, 45, 55, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 55, 51,
+ 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 55, 50, 128, 83, 69, 76, 69, 67,
+ 84, 79, 82, 45, 55, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 55, 48,
+ 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 55, 128, 83, 69, 76, 69, 67, 84,
+ 79, 82, 45, 54, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 54, 56, 128,
+ 83, 69, 76, 69, 67, 84, 79, 82, 45, 54, 55, 128, 83, 69, 76, 69, 67, 84,
+ 79, 82, 45, 54, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 54, 53, 128,
+ 83, 69, 76, 69, 67, 84, 79, 82, 45, 54, 52, 128, 83, 69, 76, 69, 67, 84,
+ 79, 82, 45, 54, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 54, 50, 128,
+ 83, 69, 76, 69, 67, 84, 79, 82, 45, 54, 49, 128, 83, 69, 76, 69, 67, 84,
+ 79, 82, 45, 54, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 54, 128, 83,
+ 69, 76, 69, 67, 84, 79, 82, 45, 53, 57, 128, 83, 69, 76, 69, 67, 84, 79,
+ 82, 45, 53, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 53, 55, 128, 83,
+ 69, 76, 69, 67, 84, 79, 82, 45, 53, 54, 128, 83, 69, 76, 69, 67, 84, 79,
+ 82, 45, 53, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 53, 52, 128, 83,
+ 69, 76, 69, 67, 84, 79, 82, 45, 53, 51, 128, 83, 69, 76, 69, 67, 84, 79,
+ 82, 45, 53, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 53, 49, 128, 83,
+ 69, 76, 69, 67, 84, 79, 82, 45, 53, 48, 128, 83, 69, 76, 69, 67, 84, 79,
+ 82, 45, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 52, 57, 128, 83, 69,
+ 76, 69, 67, 84, 79, 82, 45, 52, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82,
+ 45, 52, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 52, 54, 128, 83, 69,
+ 76, 69, 67, 84, 79, 82, 45, 52, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82,
+ 45, 52, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 52, 51, 128, 83, 69,
+ 76, 69, 67, 84, 79, 82, 45, 52, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82,
+ 45, 52, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 52, 48, 128, 83, 69,
+ 76, 69, 67, 84, 79, 82, 45, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
+ 51, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 51, 56, 128, 83, 69, 76,
+ 69, 67, 84, 79, 82, 45, 51, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
+ 51, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 51, 53, 128, 83, 69, 76,
+ 69, 67, 84, 79, 82, 45, 51, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
+ 51, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 51, 50, 128, 83, 69, 76,
+ 69, 67, 84, 79, 82, 45, 51, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
+ 51, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 51, 128, 83, 69, 76, 69,
+ 67, 84, 79, 82, 45, 50, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50,
+ 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 55, 128, 83, 69, 76, 69,
+ 67, 84, 79, 82, 45, 50, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50,
+ 53, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 53, 53, 128, 83, 69,
+ 76, 69, 67, 84, 79, 82, 45, 50, 53, 52, 128, 83, 69, 76, 69, 67, 84, 79,
+ 82, 45, 50, 53, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 53, 50,
+ 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 53, 49, 128, 83, 69, 76, 69,
+ 67, 84, 79, 82, 45, 50, 53, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
+ 50, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 57, 128, 83, 69,
+ 76, 69, 67, 84, 79, 82, 45, 50, 52, 56, 128, 83, 69, 76, 69, 67, 84, 79,
+ 82, 45, 50, 52, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 54,
+ 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 53, 128, 83, 69, 76, 69,
+ 67, 84, 79, 82, 45, 50, 52, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
+ 50, 52, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 50, 128, 83,
+ 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 49, 128, 83, 69, 76, 69, 67, 84,
+ 79, 82, 45, 50, 52, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 52,
+ 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 57, 128, 83, 69, 76, 69,
+ 67, 84, 79, 82, 45, 50, 51, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
+ 50, 51, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 54, 128, 83,
+ 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 53, 128, 83, 69, 76, 69, 67, 84,
+ 79, 82, 45, 50, 51, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51,
+ 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 50, 128, 83, 69, 76,
+ 69, 67, 84, 79, 82, 45, 50, 51, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82,
+ 45, 50, 51, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 128, 83,
+ 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 57, 128, 83, 69, 76, 69, 67, 84,
+ 79, 82, 45, 50, 50, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 50,
+ 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 54, 128, 83, 69, 76,
+ 69, 67, 84, 79, 82, 45, 50, 50, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82,
+ 45, 50, 50, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 51, 128,
+ 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 50, 128, 83, 69, 76, 69, 67,
+ 84, 79, 82, 45, 50, 50, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50,
+ 50, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 128, 83, 69, 76,
+ 69, 67, 84, 79, 82, 45, 50, 49, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82,
+ 45, 50, 49, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 55, 128,
+ 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 54, 128, 83, 69, 76, 69, 67,
+ 84, 79, 82, 45, 50, 49, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50,
+ 49, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 51, 128, 83, 69,
+ 76, 69, 67, 84, 79, 82, 45, 50, 49, 50, 128, 83, 69, 76, 69, 67, 84, 79,
+ 82, 45, 50, 49, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 48,
+ 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 128, 83, 69, 76, 69, 67,
+ 84, 79, 82, 45, 50, 48, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50,
+ 48, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 55, 128, 83, 69,
+ 76, 69, 67, 84, 79, 82, 45, 50, 48, 54, 128, 83, 69, 76, 69, 67, 84, 79,
+ 82, 45, 50, 48, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 52,
+ 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 51, 128, 83, 69, 76, 69,
+ 67, 84, 79, 82, 45, 50, 48, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
+ 50, 48, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 48, 128, 83,
+ 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 128, 83, 69, 76, 69, 67, 84, 79,
+ 82, 45, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, 57, 128, 83,
+ 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, 56, 128, 83, 69, 76, 69, 67, 84,
+ 79, 82, 45, 49, 57, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57,
+ 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, 53, 128, 83, 69, 76,
+ 69, 67, 84, 79, 82, 45, 49, 57, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82,
+ 45, 49, 57, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, 50, 128,
+ 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, 49, 128, 83, 69, 76, 69, 67,
+ 84, 79, 82, 45, 49, 57, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49,
+ 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 57, 128, 83, 69, 76,
+ 69, 67, 84, 79, 82, 45, 49, 56, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82,
+ 45, 49, 56, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 54, 128,
+ 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 53, 128, 83, 69, 76, 69, 67,
+ 84, 79, 82, 45, 49, 56, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49,
+ 56, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 50, 128, 83, 69,
+ 76, 69, 67, 84, 79, 82, 45, 49, 56, 49, 128, 83, 69, 76, 69, 67, 84, 79,
+ 82, 45, 49, 56, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 128,
+ 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 57, 128, 83, 69, 76, 69, 67,
+ 84, 79, 82, 45, 49, 55, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49,
+ 55, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 54, 128, 83, 69,
+ 76, 69, 67, 84, 79, 82, 45, 49, 55, 53, 128, 83, 69, 76, 69, 67, 84, 79,
+ 82, 45, 49, 55, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 51,
+ 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 50, 128, 83, 69, 76, 69,
+ 67, 84, 79, 82, 45, 49, 55, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
+ 49, 55, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 128, 83, 69,
+ 76, 69, 67, 84, 79, 82, 45, 49, 54, 57, 128, 83, 69, 76, 69, 67, 84, 79,
+ 82, 45, 49, 54, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54, 55,
+ 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54, 54, 128, 83, 69, 76, 69,
+ 67, 84, 79, 82, 45, 49, 54, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
+ 49, 54, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54, 51, 128, 83,
+ 69, 76, 69, 67, 84, 79, 82, 45, 49, 54, 50, 128, 83, 69, 76, 69, 67, 84,
+ 79, 82, 45, 49, 54, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54,
+ 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54, 128, 83, 69, 76, 69,
+ 67, 84, 79, 82, 45, 49, 53, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
+ 49, 53, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 55, 128, 83,
+ 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 54, 128, 83, 69, 76, 69, 67, 84,
+ 79, 82, 45, 49, 53, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 53,
+ 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 51, 128, 83, 69, 76,
+ 69, 67, 84, 79, 82, 45, 49, 53, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82,
+ 45, 49, 53, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 48, 128,
+ 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 128, 83, 69, 76, 69, 67, 84,
+ 79, 82, 45, 49, 52, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 52,
+ 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 55, 128, 83, 69, 76,
+ 69, 67, 84, 79, 82, 45, 49, 52, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82,
+ 45, 49, 52, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 52, 128,
+ 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 51, 128, 83, 69, 76, 69, 67,
+ 84, 79, 82, 45, 49, 52, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49,
+ 52, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 48, 128, 83, 69,
+ 76, 69, 67, 84, 79, 82, 45, 49, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82,
+ 45, 49, 51, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 56, 128,
+ 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 55, 128, 83, 69, 76, 69, 67,
+ 84, 79, 82, 45, 49, 51, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49,
+ 51, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 52, 128, 83, 69,
+ 76, 69, 67, 84, 79, 82, 45, 49, 51, 51, 128, 83, 69, 76, 69, 67, 84, 79,
+ 82, 45, 49, 51, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 49,
+ 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 48, 128, 83, 69, 76, 69,
+ 67, 84, 79, 82, 45, 49, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49,
+ 50, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 56, 128, 83, 69,
+ 76, 69, 67, 84, 79, 82, 45, 49, 50, 55, 128, 83, 69, 76, 69, 67, 84, 79,
+ 82, 45, 49, 50, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 53,
+ 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 52, 128, 83, 69, 76, 69,
+ 67, 84, 79, 82, 45, 49, 50, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
+ 49, 50, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 49, 128, 83,
+ 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 48, 128, 83, 69, 76, 69, 67, 84,
+ 79, 82, 45, 49, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 57,
+ 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 56, 128, 83, 69, 76, 69,
+ 67, 84, 79, 82, 45, 49, 49, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
+ 49, 49, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 53, 128, 83,
+ 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 52, 128, 83, 69, 76, 69, 67, 84,
+ 79, 82, 45, 49, 49, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49,
+ 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 49, 128, 83, 69, 76,
+ 69, 67, 84, 79, 82, 45, 49, 49, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82,
+ 45, 49, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, 57, 128, 83,
+ 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, 56, 128, 83, 69, 76, 69, 67, 84,
+ 79, 82, 45, 49, 48, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48,
+ 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, 53, 128, 83, 69, 76,
+ 69, 67, 84, 79, 82, 45, 49, 48, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82,
+ 45, 49, 48, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, 50, 128,
+ 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, 49, 128, 83, 69, 76, 69, 67,
+ 84, 79, 82, 45, 49, 48, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49,
+ 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 128, 83, 69, 76, 69, 67,
+ 84, 79, 82, 128, 83, 69, 76, 69, 67, 84, 79, 210, 83, 69, 76, 69, 67, 84,
+ 69, 196, 83, 69, 73, 83, 77, 65, 128, 83, 69, 73, 83, 77, 193, 83, 69,
+ 72, 128, 83, 69, 71, 79, 76, 128, 83, 69, 71, 78, 79, 128, 83, 69, 71,
+ 77, 69, 78, 84, 128, 83, 69, 69, 86, 128, 83, 69, 69, 78, 85, 128, 83,
+ 69, 69, 78, 128, 83, 69, 69, 206, 83, 69, 69, 68, 76, 73, 78, 71, 128,
+ 83, 69, 69, 45, 78, 79, 45, 69, 86, 73, 204, 83, 69, 67, 84, 79, 82, 128,
+ 83, 69, 67, 84, 73, 79, 78, 128, 83, 69, 67, 84, 73, 79, 206, 83, 69, 67,
+ 82, 69, 84, 128, 83, 69, 67, 79, 78, 68, 128, 83, 69, 67, 65, 78, 84,
+ 128, 83, 69, 66, 65, 84, 66, 69, 73, 212, 83, 69, 65, 84, 128, 83, 69,
+ 65, 76, 128, 83, 69, 65, 71, 85, 76, 204, 83, 68, 79, 78, 199, 83, 68,
+ 128, 83, 67, 87, 65, 128, 83, 67, 82, 85, 80, 76, 69, 128, 83, 67, 82,
+ 79, 76, 76, 128, 83, 67, 82, 73, 80, 84, 128, 83, 67, 82, 69, 69, 78,
+ 128, 83, 67, 82, 69, 69, 206, 83, 67, 82, 69, 65, 77, 73, 78, 199, 83,
+ 67, 79, 82, 80, 73, 85, 83, 128, 83, 67, 79, 82, 80, 73, 79, 78, 128, 83,
+ 67, 79, 82, 69, 128, 83, 67, 73, 83, 83, 79, 82, 83, 128, 83, 67, 73,
+ 128, 83, 67, 72, 87, 65, 128, 83, 67, 72, 87, 193, 83, 67, 72, 82, 79,
+ 69, 68, 69, 82, 128, 83, 67, 72, 79, 79, 76, 128, 83, 67, 72, 79, 79,
+ 204, 83, 67, 72, 79, 76, 65, 82, 128, 83, 67, 72, 69, 77, 193, 83, 67,
+ 69, 80, 84, 69, 210, 83, 67, 65, 78, 68, 73, 67, 85, 83, 128, 83, 67, 65,
+ 78, 68, 73, 67, 85, 211, 83, 67, 65, 206, 83, 67, 65, 76, 69, 83, 128,
+ 83, 66, 85, 194, 83, 66, 82, 85, 204, 83, 65, 89, 73, 83, 201, 83, 65,
+ 89, 65, 78, 78, 65, 128, 83, 65, 89, 128, 83, 65, 88, 79, 80, 72, 79, 78,
+ 69, 128, 83, 65, 88, 73, 77, 65, 84, 65, 128, 83, 65, 87, 65, 78, 128,
+ 83, 65, 87, 128, 83, 65, 86, 79, 85, 82, 73, 78, 199, 83, 65, 85, 82, 65,
+ 83, 72, 84, 82, 193, 83, 65, 85, 73, 76, 128, 83, 65, 84, 85, 82, 78,
+ 128, 83, 65, 84, 75, 65, 65, 78, 75, 85, 85, 128, 83, 65, 84, 75, 65, 65,
+ 78, 128, 83, 65, 84, 69, 76, 76, 73, 84, 69, 128, 83, 65, 84, 69, 76, 76,
+ 73, 84, 197, 83, 65, 84, 67, 72, 69, 76, 128, 83, 65, 84, 65, 78, 71, 65,
+ 128, 83, 65, 83, 72, 128, 83, 65, 83, 65, 75, 128, 83, 65, 82, 73, 128,
+ 83, 65, 82, 193, 83, 65, 82, 128, 83, 65, 81, 128, 83, 65, 80, 65, 128,
+ 83, 65, 78, 89, 79, 79, 71, 193, 83, 65, 78, 89, 65, 75, 193, 83, 65, 78,
+ 84, 73, 73, 77, 85, 128, 83, 65, 78, 78, 89, 65, 128, 83, 65, 78, 71, 65,
+ 50, 128, 83, 65, 78, 68, 72, 201, 83, 65, 78, 68, 65, 76, 128, 83, 65,
+ 78, 65, 72, 128, 83, 65, 78, 128, 83, 65, 77, 89, 79, 203, 83, 65, 77,
+ 86, 65, 84, 128, 83, 65, 77, 80, 73, 128, 83, 65, 77, 80, 72, 65, 79,
+ 128, 83, 65, 77, 75, 65, 128, 83, 65, 77, 69, 75, 72, 128, 83, 65, 77,
+ 69, 75, 200, 83, 65, 77, 66, 65, 128, 83, 65, 77, 65, 82, 73, 84, 65,
+ 206, 83, 65, 77, 128, 83, 65, 76, 84, 73, 82, 69, 128, 83, 65, 76, 84,
+ 73, 76, 76, 79, 128, 83, 65, 76, 84, 45, 50, 128, 83, 65, 76, 84, 128,
+ 83, 65, 76, 212, 83, 65, 76, 76, 65, 76, 76, 65, 72, 79, 213, 83, 65, 76,
+ 76, 193, 83, 65, 76, 65, 205, 83, 65, 76, 65, 128, 83, 65, 76, 45, 65,
+ 77, 77, 79, 78, 73, 65, 67, 128, 83, 65, 76, 128, 83, 65, 75, 79, 84,
+ 128, 83, 65, 75, 72, 193, 83, 65, 75, 69, 85, 65, 69, 128, 83, 65, 75,
+ 197, 83, 65, 74, 68, 65, 72, 128, 83, 65, 73, 76, 66, 79, 65, 84, 128,
+ 83, 65, 73, 76, 128, 83, 65, 73, 75, 85, 82, 85, 128, 83, 65, 72, 128,
+ 83, 65, 71, 73, 84, 84, 65, 82, 73, 85, 83, 128, 83, 65, 71, 65, 128, 83,
+ 65, 71, 128, 83, 65, 199, 83, 65, 70, 72, 65, 128, 83, 65, 70, 69, 84,
+ 217, 83, 65, 68, 72, 69, 128, 83, 65, 68, 69, 128, 83, 65, 68, 128, 83,
+ 65, 196, 83, 65, 67, 82, 73, 70, 73, 67, 73, 65, 204, 83, 65, 65, 73,
+ 128, 83, 65, 65, 68, 72, 85, 128, 83, 65, 45, 73, 128, 83, 65, 45, 50,
+ 128, 83, 48, 52, 54, 128, 83, 48, 52, 53, 128, 83, 48, 52, 52, 128, 83,
+ 48, 52, 51, 128, 83, 48, 52, 50, 128, 83, 48, 52, 49, 128, 83, 48, 52,
+ 48, 128, 83, 48, 51, 57, 128, 83, 48, 51, 56, 128, 83, 48, 51, 55, 128,
+ 83, 48, 51, 54, 128, 83, 48, 51, 53, 65, 128, 83, 48, 51, 53, 128, 83,
+ 48, 51, 52, 128, 83, 48, 51, 51, 128, 83, 48, 51, 50, 128, 83, 48, 51,
+ 49, 128, 83, 48, 51, 48, 128, 83, 48, 50, 57, 128, 83, 48, 50, 56, 128,
+ 83, 48, 50, 55, 128, 83, 48, 50, 54, 66, 128, 83, 48, 50, 54, 65, 128,
+ 83, 48, 50, 54, 128, 83, 48, 50, 53, 128, 83, 48, 50, 52, 128, 83, 48,
+ 50, 51, 128, 83, 48, 50, 50, 128, 83, 48, 50, 49, 128, 83, 48, 50, 48,
+ 128, 83, 48, 49, 57, 128, 83, 48, 49, 56, 128, 83, 48, 49, 55, 65, 128,
+ 83, 48, 49, 55, 128, 83, 48, 49, 54, 128, 83, 48, 49, 53, 128, 83, 48,
+ 49, 52, 66, 128, 83, 48, 49, 52, 65, 128, 83, 48, 49, 52, 128, 83, 48,
+ 49, 51, 128, 83, 48, 49, 50, 128, 83, 48, 49, 49, 128, 83, 48, 49, 48,
+ 128, 83, 48, 48, 57, 128, 83, 48, 48, 56, 128, 83, 48, 48, 55, 128, 83,
+ 48, 48, 54, 65, 128, 83, 48, 48, 54, 128, 83, 48, 48, 53, 128, 83, 48,
+ 48, 52, 128, 83, 48, 48, 51, 128, 83, 48, 48, 50, 65, 128, 83, 48, 48,
+ 50, 128, 83, 48, 48, 49, 128, 83, 45, 87, 128, 83, 45, 83, 72, 65, 80,
+ 69, 196, 82, 89, 89, 128, 82, 89, 88, 128, 82, 89, 84, 128, 82, 89, 82,
+ 88, 128, 82, 89, 82, 128, 82, 89, 80, 128, 82, 87, 79, 79, 128, 82, 87,
+ 79, 128, 82, 87, 73, 73, 128, 82, 87, 73, 128, 82, 87, 69, 69, 128, 82,
+ 87, 69, 128, 82, 87, 65, 72, 65, 128, 82, 87, 65, 65, 128, 82, 87, 65,
+ 128, 82, 85, 88, 128, 82, 85, 85, 66, 85, 82, 85, 128, 82, 85, 85, 128,
+ 82, 85, 84, 128, 82, 85, 83, 73, 128, 82, 85, 82, 88, 128, 82, 85, 82,
+ 128, 82, 85, 80, 73, 73, 128, 82, 85, 80, 69, 197, 82, 85, 80, 128, 82,
+ 85, 79, 88, 128, 82, 85, 79, 80, 128, 82, 85, 79, 128, 82, 85, 78, 79,
+ 85, 84, 128, 82, 85, 78, 78, 73, 78, 199, 82, 85, 78, 78, 69, 82, 128,
+ 82, 85, 78, 128, 82, 85, 77, 201, 82, 85, 77, 65, 201, 82, 85, 77, 128,
+ 82, 85, 205, 82, 85, 76, 69, 82, 128, 82, 85, 76, 69, 45, 68, 69, 76, 65,
+ 89, 69, 68, 128, 82, 85, 76, 69, 128, 82, 85, 76, 65, 73, 128, 82, 85,
+ 75, 75, 65, 75, 72, 65, 128, 82, 85, 73, 83, 128, 82, 85, 71, 66, 217,
+ 82, 85, 68, 73, 77, 69, 78, 84, 193, 82, 85, 66, 76, 197, 82, 85, 194,
+ 82, 85, 65, 128, 82, 84, 72, 65, 78, 199, 82, 84, 65, 71, 83, 128, 82,
+ 84, 65, 71, 211, 82, 82, 89, 88, 128, 82, 82, 89, 84, 128, 82, 82, 89,
+ 82, 88, 128, 82, 82, 89, 82, 128, 82, 82, 89, 80, 128, 82, 82, 85, 88,
+ 128, 82, 82, 85, 85, 128, 82, 82, 85, 84, 128, 82, 82, 85, 82, 88, 128,
+ 82, 82, 85, 82, 128, 82, 82, 85, 80, 128, 82, 82, 85, 79, 88, 128, 82,
+ 82, 85, 79, 128, 82, 82, 85, 128, 82, 82, 82, 65, 128, 82, 82, 79, 88,
+ 128, 82, 82, 79, 84, 128, 82, 82, 79, 80, 128, 82, 82, 79, 79, 128, 82,
+ 82, 79, 128, 82, 82, 73, 73, 128, 82, 82, 73, 128, 82, 82, 69, 88, 128,
+ 82, 82, 69, 84, 128, 82, 82, 69, 80, 128, 82, 82, 69, 72, 128, 82, 82,
+ 69, 200, 82, 82, 69, 69, 128, 82, 82, 69, 128, 82, 82, 65, 88, 128, 82,
+ 82, 65, 85, 128, 82, 82, 65, 73, 128, 82, 82, 65, 65, 128, 82, 79, 87,
+ 66, 79, 65, 84, 128, 82, 79, 85, 78, 68, 69, 196, 82, 79, 85, 78, 68, 45,
+ 84, 73, 80, 80, 69, 196, 82, 79, 84, 85, 78, 68, 65, 128, 82, 79, 84, 65,
+ 84, 73, 79, 78, 83, 128, 82, 79, 84, 65, 84, 73, 79, 78, 45, 87, 65, 76,
+ 76, 80, 76, 65, 78, 197, 82, 79, 84, 65, 84, 73, 79, 78, 45, 70, 76, 79,
+ 79, 82, 80, 76, 65, 78, 197, 82, 79, 84, 65, 84, 73, 79, 78, 128, 82, 79,
+ 84, 65, 84, 73, 79, 206, 82, 79, 84, 65, 84, 69, 196, 82, 79, 83, 72,
+ 128, 82, 79, 83, 69, 84, 84, 69, 128, 82, 79, 83, 69, 128, 82, 79, 79,
+ 84, 128, 82, 79, 79, 83, 84, 69, 82, 128, 82, 79, 79, 75, 128, 82, 79,
+ 79, 70, 128, 82, 79, 77, 65, 78, 73, 65, 206, 82, 79, 77, 65, 206, 82,
+ 79, 77, 128, 82, 79, 76, 76, 73, 78, 199, 82, 79, 76, 76, 69, 210, 82,
+ 79, 76, 76, 69, 68, 45, 85, 208, 82, 79, 72, 73, 78, 71, 89, 193, 82, 79,
+ 71, 128, 82, 79, 196, 82, 79, 67, 75, 69, 84, 128, 82, 79, 67, 203, 82,
+ 79, 67, 128, 82, 79, 66, 79, 212, 82, 79, 66, 65, 84, 128, 82, 79, 65,
+ 83, 84, 69, 196, 82, 79, 65, 82, 128, 82, 79, 65, 128, 82, 78, 89, 73,
+ 78, 199, 82, 78, 79, 79, 78, 128, 82, 78, 79, 79, 206, 82, 78, 65, 205,
+ 82, 77, 84, 128, 82, 76, 79, 128, 82, 76, 77, 128, 82, 76, 73, 128, 82,
+ 76, 69, 128, 82, 74, 69, 211, 82, 74, 69, 128, 82, 74, 197, 82, 73, 86,
+ 69, 82, 128, 82, 73, 84, 85, 65, 76, 128, 82, 73, 84, 84, 79, 82, 85,
+ 128, 82, 73, 84, 83, 73, 128, 82, 73, 83, 73, 78, 199, 82, 73, 83, 72,
+ 128, 82, 73, 82, 65, 128, 82, 73, 80, 80, 76, 197, 82, 73, 80, 128, 82,
+ 73, 78, 71, 211, 82, 73, 78, 71, 73, 78, 199, 82, 73, 78, 70, 79, 82, 90,
+ 65, 78, 68, 79, 128, 82, 73, 206, 82, 73, 77, 71, 66, 65, 128, 82, 73,
+ 77, 128, 82, 73, 75, 82, 73, 75, 128, 82, 73, 71, 86, 69, 68, 73, 195,
+ 82, 73, 71, 72, 84, 87, 65, 82, 68, 83, 128, 82, 73, 71, 72, 84, 72, 65,
+ 78, 196, 82, 73, 71, 72, 84, 45, 84, 79, 45, 76, 69, 70, 212, 82, 73, 71,
+ 72, 84, 45, 83, 73, 68, 197, 82, 73, 71, 72, 84, 45, 83, 72, 65, 68, 79,
+ 87, 69, 196, 82, 73, 71, 72, 84, 45, 83, 72, 65, 68, 69, 196, 82, 73, 71,
+ 72, 84, 45, 80, 79, 73, 78, 84, 73, 78, 199, 82, 73, 71, 72, 84, 45, 76,
+ 73, 71, 72, 84, 69, 196, 82, 73, 71, 72, 84, 45, 72, 65, 78, 68, 69, 196,
+ 82, 73, 71, 72, 84, 45, 72, 65, 78, 196, 82, 73, 71, 72, 84, 45, 70, 65,
+ 67, 73, 78, 199, 82, 73, 71, 72, 84, 128, 82, 73, 69, 85, 76, 45, 89, 69,
+ 83, 73, 69, 85, 78, 71, 128, 82, 73, 69, 85, 76, 45, 89, 69, 79, 82, 73,
+ 78, 72, 73, 69, 85, 72, 45, 72, 73, 69, 85, 72, 128, 82, 73, 69, 85, 76,
+ 45, 89, 69, 79, 82, 73, 78, 72, 73, 69, 85, 72, 128, 82, 73, 69, 85, 76,
+ 45, 84, 73, 75, 69, 85, 84, 45, 72, 73, 69, 85, 72, 128, 82, 73, 69, 85,
+ 76, 45, 84, 73, 75, 69, 85, 84, 128, 82, 73, 69, 85, 76, 45, 84, 72, 73,
+ 69, 85, 84, 72, 128, 82, 73, 69, 85, 76, 45, 83, 83, 65, 78, 71, 84, 73,
+ 75, 69, 85, 84, 128, 82, 73, 69, 85, 76, 45, 83, 83, 65, 78, 71, 83, 73,
+ 79, 83, 128, 82, 73, 69, 85, 76, 45, 83, 83, 65, 78, 71, 80, 73, 69, 85,
+ 80, 128, 82, 73, 69, 85, 76, 45, 83, 83, 65, 78, 71, 75, 73, 89, 69, 79,
+ 75, 128, 82, 73, 69, 85, 76, 45, 83, 73, 79, 83, 128, 82, 73, 69, 85, 76,
+ 45, 80, 73, 69, 85, 80, 45, 84, 73, 75, 69, 85, 84, 128, 82, 73, 69, 85,
+ 76, 45, 80, 73, 69, 85, 80, 45, 83, 73, 79, 83, 128, 82, 73, 69, 85, 76,
+ 45, 80, 73, 69, 85, 80, 45, 80, 72, 73, 69, 85, 80, 72, 128, 82, 73, 69,
+ 85, 76, 45, 80, 73, 69, 85, 80, 45, 72, 73, 69, 85, 72, 128, 82, 73, 69,
+ 85, 76, 45, 80, 73, 69, 85, 80, 128, 82, 73, 69, 85, 76, 45, 80, 72, 73,
+ 69, 85, 80, 72, 128, 82, 73, 69, 85, 76, 45, 80, 65, 78, 83, 73, 79, 83,
+ 128, 82, 73, 69, 85, 76, 45, 78, 73, 69, 85, 78, 128, 82, 73, 69, 85, 76,
+ 45, 77, 73, 69, 85, 77, 45, 83, 73, 79, 83, 128, 82, 73, 69, 85, 76, 45,
+ 77, 73, 69, 85, 77, 45, 75, 73, 89, 69, 79, 75, 128, 82, 73, 69, 85, 76,
+ 45, 77, 73, 69, 85, 77, 45, 72, 73, 69, 85, 72, 128, 82, 73, 69, 85, 76,
+ 45, 77, 73, 69, 85, 77, 128, 82, 73, 69, 85, 76, 45, 75, 73, 89, 69, 79,
+ 75, 45, 83, 73, 79, 83, 128, 82, 73, 69, 85, 76, 45, 75, 73, 89, 69, 79,
+ 75, 45, 72, 73, 69, 85, 72, 128, 82, 73, 69, 85, 76, 45, 75, 73, 89, 69,
+ 79, 75, 128, 82, 73, 69, 85, 76, 45, 75, 65, 80, 89, 69, 79, 85, 78, 80,
+ 73, 69, 85, 80, 128, 82, 73, 69, 85, 76, 45, 72, 73, 69, 85, 72, 128, 82,
+ 73, 69, 85, 76, 45, 67, 73, 69, 85, 67, 128, 82, 73, 69, 85, 204, 82, 73,
+ 69, 76, 128, 82, 73, 69, 69, 128, 82, 73, 67, 69, 77, 128, 82, 73, 67,
+ 69, 128, 82, 73, 67, 197, 82, 73, 66, 66, 79, 78, 128, 82, 73, 66, 66,
+ 79, 206, 82, 73, 65, 204, 82, 72, 79, 84, 73, 195, 82, 72, 79, 128, 82,
+ 72, 207, 82, 72, 65, 128, 82, 72, 128, 82, 71, 89, 73, 78, 71, 83, 128,
+ 82, 71, 89, 65, 78, 128, 82, 71, 89, 193, 82, 69, 86, 79, 76, 86, 73, 78,
+ 199, 82, 69, 86, 79, 76, 85, 84, 73, 79, 78, 128, 82, 69, 86, 77, 65,
+ 128, 82, 69, 86, 73, 65, 128, 82, 69, 86, 69, 82, 83, 69, 68, 45, 83, 67,
+ 72, 87, 65, 128, 82, 69, 86, 69, 82, 83, 69, 68, 128, 82, 69, 86, 69, 82,
+ 83, 69, 196, 82, 69, 86, 69, 82, 83, 197, 82, 69, 85, 88, 128, 82, 69,
+ 85, 128, 82, 69, 84, 85, 82, 78, 128, 82, 69, 84, 85, 82, 206, 82, 69,
+ 84, 82, 79, 70, 76, 69, 216, 82, 69, 84, 82, 69, 65, 84, 128, 82, 69, 84,
+ 79, 82, 84, 128, 82, 69, 83, 85, 80, 73, 78, 85, 83, 128, 82, 69, 83, 84,
+ 82, 79, 79, 77, 128, 82, 69, 83, 84, 82, 73, 67, 84, 69, 196, 82, 69, 83,
+ 84, 128, 82, 69, 83, 80, 79, 78, 83, 69, 128, 82, 69, 83, 79, 85, 82, 67,
+ 69, 128, 82, 69, 83, 79, 76, 85, 84, 73, 79, 78, 128, 82, 69, 83, 73, 83,
+ 84, 65, 78, 67, 69, 128, 82, 69, 83, 73, 68, 69, 78, 67, 69, 128, 82, 69,
+ 83, 200, 82, 69, 82, 69, 78, 71, 71, 65, 78, 128, 82, 69, 82, 69, 75, 65,
+ 78, 128, 82, 69, 80, 82, 69, 83, 69, 78, 84, 128, 82, 69, 80, 76, 65, 67,
+ 69, 77, 69, 78, 212, 82, 69, 80, 72, 128, 82, 69, 80, 69, 84, 73, 84, 73,
+ 79, 206, 82, 69, 80, 69, 65, 84, 69, 196, 82, 69, 80, 69, 65, 84, 128,
+ 82, 69, 80, 69, 65, 212, 82, 69, 80, 65, 89, 65, 128, 82, 69, 80, 65,
+ 128, 82, 69, 80, 193, 82, 69, 78, 84, 79, 71, 69, 78, 128, 82, 69, 78,
+ 128, 82, 69, 206, 82, 69, 77, 85, 128, 82, 69, 77, 73, 78, 68, 69, 210,
+ 82, 69, 77, 69, 68, 89, 128, 82, 69, 76, 73, 71, 73, 79, 78, 128, 82, 69,
+ 76, 73, 69, 86, 69, 196, 82, 69, 76, 69, 65, 83, 69, 128, 82, 69, 76, 65,
+ 88, 69, 68, 128, 82, 69, 76, 65, 84, 73, 79, 78, 65, 204, 82, 69, 76, 65,
+ 84, 73, 79, 78, 128, 82, 69, 76, 65, 65, 128, 82, 69, 74, 65, 78, 199,
+ 82, 69, 73, 196, 82, 69, 73, 128, 82, 69, 71, 85, 76, 85, 83, 45, 52,
+ 128, 82, 69, 71, 85, 76, 85, 83, 45, 51, 128, 82, 69, 71, 85, 76, 85, 83,
+ 45, 50, 128, 82, 69, 71, 85, 76, 85, 83, 128, 82, 69, 71, 85, 76, 85,
+ 211, 82, 69, 71, 73, 83, 84, 69, 82, 69, 196, 82, 69, 71, 73, 79, 78, 65,
+ 204, 82, 69, 71, 73, 65, 45, 50, 128, 82, 69, 71, 73, 65, 128, 82, 69,
+ 70, 79, 82, 77, 69, 196, 82, 69, 70, 69, 82, 69, 78, 67, 197, 82, 69, 68,
+ 85, 80, 76, 73, 67, 65, 84, 73, 79, 78, 128, 82, 69, 67, 89, 67, 76, 73,
+ 78, 199, 82, 69, 67, 89, 67, 76, 69, 196, 82, 69, 67, 84, 73, 76, 73, 78,
+ 69, 65, 210, 82, 69, 67, 84, 65, 78, 71, 85, 76, 65, 210, 82, 69, 67, 84,
+ 65, 78, 71, 76, 69, 128, 82, 69, 67, 84, 65, 78, 71, 76, 197, 82, 69, 67,
+ 82, 69, 65, 84, 73, 79, 78, 65, 204, 82, 69, 67, 79, 82, 68, 73, 78, 199,
+ 82, 69, 67, 79, 82, 68, 69, 82, 128, 82, 69, 67, 79, 82, 68, 128, 82, 69,
+ 67, 79, 82, 196, 82, 69, 67, 73, 84, 65, 84, 73, 86, 197, 82, 69, 67, 69,
+ 80, 84, 73, 86, 197, 82, 69, 67, 69, 73, 86, 69, 82, 128, 82, 69, 67, 69,
+ 73, 86, 69, 210, 82, 69, 65, 76, 71, 65, 82, 45, 50, 128, 82, 69, 65, 76,
+ 71, 65, 82, 128, 82, 69, 65, 72, 77, 85, 75, 128, 82, 69, 65, 67, 72,
+ 128, 82, 68, 207, 82, 68, 69, 204, 82, 66, 65, 83, 193, 82, 65, 89, 83,
+ 128, 82, 65, 89, 211, 82, 65, 89, 65, 78, 78, 65, 128, 82, 65, 84, 73,
+ 79, 128, 82, 65, 84, 72, 65, 128, 82, 65, 84, 72, 193, 82, 65, 84, 65,
+ 128, 82, 65, 84, 128, 82, 65, 83, 87, 65, 68, 73, 128, 82, 65, 83, 79,
+ 85, 204, 82, 65, 83, 72, 65, 128, 82, 65, 81, 128, 82, 65, 80, 73, 83,
+ 77, 65, 128, 82, 65, 78, 71, 197, 82, 65, 78, 65, 128, 82, 65, 78, 128,
+ 82, 65, 77, 211, 82, 65, 77, 66, 65, 84, 128, 82, 65, 75, 72, 65, 78, 71,
+ 128, 82, 65, 75, 65, 65, 82, 65, 65, 78, 83, 65, 89, 65, 128, 82, 65, 73,
+ 83, 73, 78, 199, 82, 65, 73, 83, 69, 196, 82, 65, 73, 78, 66, 79, 87,
+ 128, 82, 65, 73, 76, 87, 65, 89, 128, 82, 65, 73, 76, 87, 65, 217, 82,
+ 65, 73, 76, 128, 82, 65, 73, 68, 207, 82, 65, 73, 68, 65, 128, 82, 65,
+ 72, 77, 65, 84, 85, 76, 76, 65, 200, 82, 65, 72, 128, 82, 65, 70, 69,
+ 128, 82, 65, 69, 77, 128, 82, 65, 68, 73, 79, 65, 67, 84, 73, 86, 197,
+ 82, 65, 68, 73, 79, 128, 82, 65, 68, 73, 207, 82, 65, 68, 201, 82, 65,
+ 68, 128, 82, 65, 196, 82, 65, 67, 81, 85, 69, 212, 82, 65, 67, 73, 78,
+ 71, 128, 82, 65, 67, 73, 78, 199, 82, 65, 66, 66, 73, 84, 128, 82, 65,
+ 66, 66, 73, 212, 82, 65, 66, 128, 82, 65, 65, 73, 128, 82, 65, 51, 128,
+ 82, 65, 50, 128, 82, 65, 45, 50, 128, 82, 48, 50, 57, 128, 82, 48, 50,
+ 56, 128, 82, 48, 50, 55, 128, 82, 48, 50, 54, 128, 82, 48, 50, 53, 128,
+ 82, 48, 50, 52, 128, 82, 48, 50, 51, 128, 82, 48, 50, 50, 128, 82, 48,
+ 50, 49, 128, 82, 48, 50, 48, 128, 82, 48, 49, 57, 128, 82, 48, 49, 56,
+ 128, 82, 48, 49, 55, 128, 82, 48, 49, 54, 65, 128, 82, 48, 49, 54, 128,
+ 82, 48, 49, 53, 128, 82, 48, 49, 52, 128, 82, 48, 49, 51, 128, 82, 48,
+ 49, 50, 128, 82, 48, 49, 49, 128, 82, 48, 49, 48, 65, 128, 82, 48, 49,
+ 48, 128, 82, 48, 48, 57, 128, 82, 48, 48, 56, 128, 82, 48, 48, 55, 128,
+ 82, 48, 48, 54, 128, 82, 48, 48, 53, 128, 82, 48, 48, 52, 128, 82, 48,
+ 48, 51, 66, 128, 82, 48, 48, 51, 65, 128, 82, 48, 48, 51, 128, 82, 48,
+ 48, 50, 65, 128, 82, 48, 48, 50, 128, 82, 48, 48, 49, 128, 82, 45, 67,
+ 82, 69, 197, 81, 89, 88, 128, 81, 89, 85, 128, 81, 89, 84, 128, 81, 89,
+ 82, 88, 128, 81, 89, 82, 128, 81, 89, 80, 128, 81, 89, 79, 128, 81, 89,
+ 73, 128, 81, 89, 69, 69, 128, 81, 89, 69, 128, 81, 89, 65, 65, 128, 81,
+ 89, 65, 128, 81, 89, 128, 81, 87, 73, 128, 81, 87, 69, 69, 128, 81, 87,
+ 69, 128, 81, 87, 65, 65, 128, 81, 87, 65, 128, 81, 85, 88, 128, 81, 85,
+ 86, 128, 81, 85, 85, 86, 128, 81, 85, 85, 128, 81, 85, 84, 128, 81, 85,
+ 83, 72, 83, 72, 65, 89, 65, 128, 81, 85, 82, 88, 128, 81, 85, 82, 128,
+ 81, 85, 80, 128, 81, 85, 79, 88, 128, 81, 85, 79, 84, 197, 81, 85, 79,
+ 84, 65, 84, 73, 79, 206, 81, 85, 79, 84, 128, 81, 85, 79, 80, 128, 81,
+ 85, 79, 128, 81, 85, 75, 128, 81, 85, 73, 78, 84, 69, 83, 83, 69, 78, 67,
+ 69, 128, 81, 85, 73, 78, 68, 73, 67, 69, 83, 73, 77, 193, 81, 85, 73, 78,
+ 67, 85, 78, 88, 128, 81, 85, 73, 78, 65, 82, 73, 85, 211, 81, 85, 73, 76,
+ 212, 81, 85, 73, 76, 76, 128, 81, 85, 73, 67, 203, 81, 85, 73, 128, 81,
+ 85, 70, 128, 81, 85, 69, 83, 84, 73, 79, 78, 69, 196, 81, 85, 69, 83, 84,
+ 73, 79, 78, 128, 81, 85, 69, 83, 84, 73, 79, 206, 81, 85, 69, 69, 78,
+ 128, 81, 85, 69, 69, 206, 81, 85, 69, 128, 81, 85, 66, 85, 84, 83, 128,
+ 81, 85, 65, 84, 69, 82, 78, 73, 79, 206, 81, 85, 65, 82, 84, 69, 82, 83,
+ 128, 81, 85, 65, 82, 84, 69, 82, 211, 81, 85, 65, 82, 84, 69, 82, 128,
+ 81, 85, 65, 78, 84, 73, 84, 217, 81, 85, 65, 68, 82, 85, 80, 76, 197, 81,
+ 85, 65, 68, 82, 65, 78, 84, 128, 81, 85, 65, 68, 82, 65, 78, 212, 81, 85,
+ 65, 68, 67, 79, 76, 79, 78, 128, 81, 85, 65, 68, 128, 81, 85, 65, 196,
+ 81, 85, 65, 128, 81, 85, 128, 81, 208, 81, 79, 88, 128, 81, 79, 84, 128,
+ 81, 79, 80, 72, 128, 81, 79, 80, 65, 128, 81, 79, 80, 128, 81, 79, 79,
+ 128, 81, 79, 207, 81, 79, 70, 128, 81, 79, 198, 81, 79, 65, 128, 81, 79,
+ 128, 81, 78, 128, 81, 73, 88, 128, 81, 73, 84, 83, 65, 128, 81, 73, 84,
+ 128, 81, 73, 80, 128, 81, 73, 73, 128, 81, 73, 69, 88, 128, 81, 73, 69,
+ 84, 128, 81, 73, 69, 80, 128, 81, 73, 69, 128, 81, 73, 128, 81, 72, 87,
+ 73, 128, 81, 72, 87, 69, 69, 128, 81, 72, 87, 69, 128, 81, 72, 87, 65,
+ 65, 128, 81, 72, 87, 65, 128, 81, 72, 85, 128, 81, 72, 79, 80, 72, 128,
+ 81, 72, 79, 128, 81, 72, 73, 128, 81, 72, 69, 69, 128, 81, 72, 69, 128,
+ 81, 72, 65, 85, 128, 81, 72, 65, 65, 128, 81, 72, 65, 128, 81, 71, 65,
+ 128, 81, 69, 84, 65, 78, 65, 128, 81, 69, 69, 128, 81, 69, 128, 81, 65,
+ 89, 128, 81, 65, 85, 128, 81, 65, 84, 65, 78, 128, 81, 65, 82, 78, 69,
+ 217, 81, 65, 82, 128, 81, 65, 81, 128, 81, 65, 80, 72, 128, 81, 65, 77,
+ 65, 84, 83, 128, 81, 65, 77, 65, 84, 211, 81, 65, 76, 193, 81, 65, 73,
+ 82, 84, 72, 82, 65, 128, 81, 65, 73, 128, 81, 65, 70, 128, 81, 65, 198,
+ 81, 65, 68, 77, 65, 128, 81, 65, 65, 73, 128, 81, 65, 65, 70, 85, 128,
+ 81, 65, 65, 70, 128, 81, 48, 48, 55, 128, 81, 48, 48, 54, 128, 81, 48,
+ 48, 53, 128, 81, 48, 48, 52, 128, 81, 48, 48, 51, 128, 81, 48, 48, 50,
+ 128, 81, 48, 48, 49, 128, 80, 90, 128, 80, 89, 88, 128, 80, 89, 84, 128,
+ 80, 89, 82, 88, 128, 80, 89, 82, 128, 80, 89, 80, 128, 80, 87, 79, 89,
+ 128, 80, 87, 79, 79, 128, 80, 87, 79, 128, 80, 87, 207, 80, 87, 73, 73,
+ 128, 80, 87, 73, 128, 80, 87, 69, 69, 128, 80, 87, 69, 128, 80, 87, 65,
+ 65, 128, 80, 87, 128, 80, 86, 128, 80, 85, 88, 128, 80, 85, 85, 84, 128,
+ 80, 85, 85, 128, 80, 85, 84, 82, 69, 70, 65, 67, 84, 73, 79, 78, 128, 80,
+ 85, 84, 128, 80, 85, 212, 80, 85, 83, 72, 80, 73, 78, 128, 80, 85, 83,
+ 72, 80, 73, 75, 65, 128, 80, 85, 83, 72, 73, 78, 199, 80, 85, 82, 88,
+ 128, 80, 85, 82, 83, 69, 128, 80, 85, 82, 80, 76, 197, 80, 85, 82, 78,
+ 65, 77, 65, 128, 80, 85, 82, 73, 84, 89, 128, 80, 85, 82, 73, 70, 89,
+ 128, 80, 85, 82, 128, 80, 85, 81, 128, 80, 85, 80, 128, 80, 85, 79, 88,
+ 128, 80, 85, 79, 80, 128, 80, 85, 79, 128, 80, 85, 78, 71, 65, 65, 77,
+ 128, 80, 85, 78, 71, 128, 80, 85, 78, 67, 84, 85, 65, 84, 73, 79, 78,
+ 128, 80, 85, 78, 67, 84, 85, 65, 84, 73, 79, 206, 80, 85, 77, 80, 128,
+ 80, 85, 77, 128, 80, 85, 70, 70, 69, 68, 128, 80, 85, 69, 128, 80, 85,
+ 67, 75, 128, 80, 85, 66, 76, 73, 195, 80, 85, 194, 80, 85, 65, 81, 128,
+ 80, 85, 65, 69, 128, 80, 85, 50, 128, 80, 85, 49, 128, 80, 85, 128, 80,
+ 84, 72, 65, 72, 193, 80, 84, 69, 128, 80, 83, 73, 76, 201, 80, 83, 73,
+ 70, 73, 83, 84, 79, 83, 89, 78, 65, 71, 77, 65, 128, 80, 83, 73, 70, 73,
+ 83, 84, 79, 80, 65, 82, 65, 75, 65, 76, 69, 83, 77, 65, 128, 80, 83, 73,
+ 70, 73, 83, 84, 79, 206, 80, 83, 73, 70, 73, 83, 84, 79, 76, 89, 71, 73,
+ 83, 77, 65, 128, 80, 83, 73, 128, 80, 83, 65, 76, 84, 69, 210, 80, 83,
128, 80, 82, 79, 86, 69, 128, 80, 82, 79, 84, 79, 86, 65, 82, 89, 211,
80, 82, 79, 84, 79, 211, 80, 82, 79, 84, 69, 67, 84, 69, 196, 80, 82, 79,
83, 71, 69, 71, 82, 65, 77, 77, 69, 78, 73, 128, 80, 82, 79, 80, 79, 82,
84, 73, 79, 78, 65, 204, 80, 82, 79, 80, 79, 82, 84, 73, 79, 78, 128, 80,
82, 79, 80, 69, 82, 84, 217, 80, 82, 79, 80, 69, 76, 76, 69, 210, 80, 82,
79, 79, 70, 128, 80, 82, 79, 76, 79, 78, 71, 69, 196, 80, 82, 79, 76, 65,
- 84, 73, 79, 78, 197, 80, 82, 79, 74, 69, 67, 84, 73, 86, 69, 128, 80, 82,
- 79, 74, 69, 67, 84, 73, 79, 78, 128, 80, 82, 79, 71, 82, 69, 83, 83, 128,
- 80, 82, 79, 71, 82, 65, 205, 80, 82, 79, 70, 79, 85, 78, 68, 128, 80, 82,
- 79, 68, 85, 67, 84, 128, 80, 82, 79, 68, 85, 67, 212, 80, 82, 73, 86, 65,
- 84, 69, 128, 80, 82, 73, 86, 65, 84, 197, 80, 82, 73, 86, 65, 67, 217,
- 80, 82, 73, 83, 72, 84, 72, 65, 77, 65, 84, 82, 193, 80, 82, 73, 78, 84,
- 83, 128, 80, 82, 73, 78, 84, 128, 80, 82, 73, 78, 212, 80, 82, 73, 78,
+ 84, 73, 79, 78, 197, 80, 82, 79, 74, 69, 67, 84, 79, 82, 128, 80, 82, 79,
+ 74, 69, 67, 84, 73, 86, 69, 128, 80, 82, 79, 74, 69, 67, 84, 73, 79, 78,
+ 128, 80, 82, 79, 72, 73, 66, 73, 84, 69, 196, 80, 82, 79, 71, 82, 69, 83,
+ 83, 128, 80, 82, 79, 71, 82, 65, 205, 80, 82, 79, 70, 79, 85, 78, 68,
+ 128, 80, 82, 79, 68, 85, 67, 84, 128, 80, 82, 79, 68, 85, 67, 212, 80,
+ 82, 73, 86, 65, 84, 69, 128, 80, 82, 73, 86, 65, 84, 197, 80, 82, 73, 86,
+ 65, 67, 217, 80, 82, 73, 83, 72, 84, 72, 65, 77, 65, 84, 82, 193, 80, 82,
+ 73, 78, 84, 83, 128, 80, 82, 73, 78, 84, 69, 82, 128, 80, 82, 73, 78, 84,
+ 69, 210, 80, 82, 73, 78, 84, 128, 80, 82, 73, 78, 212, 80, 82, 73, 78,
67, 69, 83, 83, 128, 80, 82, 73, 77, 69, 128, 80, 82, 73, 77, 197, 80,
- 82, 69, 86, 73, 79, 85, 211, 80, 82, 69, 83, 69, 84, 128, 80, 82, 69, 83,
- 69, 78, 84, 65, 84, 73, 79, 206, 80, 82, 69, 83, 67, 82, 73, 80, 84, 73,
- 79, 206, 80, 82, 69, 80, 79, 78, 68, 69, 82, 65, 78, 67, 69, 128, 80, 82,
- 69, 78, 75, 72, 65, 128, 80, 82, 69, 70, 65, 67, 197, 80, 82, 69, 67, 73,
- 80, 73, 84, 65, 84, 69, 128, 80, 82, 69, 67, 69, 68, 73, 78, 199, 80, 82,
- 69, 67, 69, 68, 69, 83, 128, 80, 82, 69, 67, 69, 68, 69, 211, 80, 82, 69,
- 67, 69, 68, 69, 196, 80, 82, 69, 67, 69, 68, 69, 128, 80, 82, 69, 67, 69,
- 68, 197, 80, 82, 65, 77, 45, 80, 73, 73, 128, 80, 82, 65, 77, 45, 80, 73,
- 201, 80, 82, 65, 77, 45, 77, 85, 79, 89, 128, 80, 82, 65, 77, 45, 77, 85,
- 79, 217, 80, 82, 65, 77, 45, 66, 85, 79, 78, 128, 80, 82, 65, 77, 45, 66,
- 85, 79, 206, 80, 82, 65, 77, 45, 66, 69, 73, 128, 80, 82, 65, 77, 45, 66,
- 69, 201, 80, 82, 65, 77, 128, 80, 82, 65, 205, 80, 82, 128, 80, 80, 86,
- 128, 80, 80, 77, 128, 80, 80, 65, 128, 80, 79, 89, 128, 80, 79, 88, 128,
- 80, 79, 87, 69, 82, 211, 80, 79, 87, 69, 82, 128, 80, 79, 87, 68, 69, 82,
- 69, 196, 80, 79, 87, 68, 69, 82, 128, 80, 79, 85, 78, 196, 80, 79, 85,
- 76, 84, 82, 217, 80, 79, 85, 67, 72, 128, 80, 79, 84, 65, 84, 79, 128,
- 80, 79, 84, 65, 66, 76, 197, 80, 79, 212, 80, 79, 83, 84, 80, 79, 83, 73,
- 84, 73, 79, 206, 80, 79, 83, 84, 66, 79, 88, 128, 80, 79, 83, 84, 65,
- 204, 80, 79, 83, 84, 128, 80, 79, 83, 212, 80, 79, 83, 83, 69, 83, 83,
- 73, 79, 78, 128, 80, 79, 82, 82, 69, 67, 84, 85, 83, 128, 80, 79, 82, 82,
- 69, 67, 84, 85, 211, 80, 79, 80, 80, 69, 82, 128, 80, 79, 80, 128, 80,
- 79, 208, 80, 79, 79, 68, 76, 69, 128, 80, 79, 79, 128, 80, 79, 78, 68,
- 79, 128, 80, 79, 206, 80, 79, 77, 77, 69, 69, 128, 80, 79, 77, 77, 69,
- 197, 80, 79, 76, 73, 83, 72, 128, 80, 79, 76, 73, 67, 197, 80, 79, 76,
- 201, 80, 79, 76, 69, 128, 80, 79, 76, 197, 80, 79, 75, 82, 89, 84, 73,
- 69, 128, 80, 79, 75, 79, 74, 73, 128, 80, 79, 73, 78, 84, 211, 80, 79,
- 73, 78, 84, 79, 128, 80, 79, 73, 78, 84, 69, 82, 128, 80, 79, 73, 78, 84,
- 69, 196, 80, 79, 73, 78, 84, 128, 80, 79, 73, 78, 212, 80, 79, 69, 84,
- 82, 217, 80, 79, 69, 84, 73, 195, 80, 79, 68, 65, 84, 85, 83, 128, 80,
- 79, 65, 128, 80, 79, 128, 80, 207, 80, 78, 69, 85, 77, 65, 84, 65, 128,
- 80, 76, 85, 84, 79, 128, 80, 76, 85, 83, 45, 77, 73, 78, 85, 211, 80, 76,
- 85, 83, 128, 80, 76, 85, 82, 65, 76, 128, 80, 76, 85, 77, 69, 196, 80,
- 76, 85, 77, 128, 80, 76, 85, 75, 128, 80, 76, 85, 71, 128, 80, 76, 85,
- 128, 80, 76, 79, 87, 128, 80, 76, 79, 80, 72, 85, 128, 80, 76, 69, 84,
- 72, 82, 79, 78, 128, 80, 76, 68, 128, 80, 76, 65, 89, 73, 78, 199, 80,
+ 82, 69, 86, 73, 79, 85, 211, 80, 82, 69, 83, 83, 69, 196, 80, 82, 69, 83,
+ 69, 84, 128, 80, 82, 69, 83, 69, 78, 84, 65, 84, 73, 79, 206, 80, 82, 69,
+ 83, 67, 82, 73, 80, 84, 73, 79, 206, 80, 82, 69, 80, 79, 78, 68, 69, 82,
+ 65, 78, 67, 69, 128, 80, 82, 69, 78, 75, 72, 65, 128, 80, 82, 69, 70, 65,
+ 67, 197, 80, 82, 69, 67, 73, 80, 73, 84, 65, 84, 69, 128, 80, 82, 69, 67,
+ 69, 68, 73, 78, 199, 80, 82, 69, 67, 69, 68, 69, 83, 128, 80, 82, 69, 67,
+ 69, 68, 69, 211, 80, 82, 69, 67, 69, 68, 69, 196, 80, 82, 69, 67, 69, 68,
+ 69, 128, 80, 82, 69, 67, 69, 68, 197, 80, 82, 65, 89, 69, 210, 80, 82,
+ 65, 77, 45, 80, 73, 73, 128, 80, 82, 65, 77, 45, 80, 73, 201, 80, 82, 65,
+ 77, 45, 77, 85, 79, 89, 128, 80, 82, 65, 77, 45, 77, 85, 79, 217, 80, 82,
+ 65, 77, 45, 66, 85, 79, 78, 128, 80, 82, 65, 77, 45, 66, 85, 79, 206, 80,
+ 82, 65, 77, 45, 66, 69, 73, 128, 80, 82, 65, 77, 45, 66, 69, 201, 80, 82,
+ 65, 77, 128, 80, 82, 65, 205, 80, 82, 128, 80, 80, 86, 128, 80, 80, 77,
+ 128, 80, 80, 65, 128, 80, 79, 89, 128, 80, 79, 88, 128, 80, 79, 87, 69,
+ 82, 211, 80, 79, 87, 69, 82, 128, 80, 79, 87, 68, 69, 82, 69, 196, 80,
+ 79, 87, 68, 69, 82, 128, 80, 79, 85, 78, 196, 80, 79, 85, 76, 84, 82,
+ 217, 80, 79, 85, 67, 72, 128, 80, 79, 84, 65, 84, 79, 128, 80, 79, 84,
+ 65, 66, 76, 197, 80, 79, 212, 80, 79, 83, 84, 80, 79, 83, 73, 84, 73, 79,
+ 206, 80, 79, 83, 84, 66, 79, 88, 128, 80, 79, 83, 84, 65, 204, 80, 79,
+ 83, 84, 128, 80, 79, 83, 212, 80, 79, 83, 83, 69, 83, 83, 73, 79, 78,
+ 128, 80, 79, 83, 73, 84, 73, 79, 78, 83, 128, 80, 79, 82, 84, 65, 66, 76,
+ 197, 80, 79, 82, 82, 69, 67, 84, 85, 83, 128, 80, 79, 82, 82, 69, 67, 84,
+ 85, 211, 80, 79, 80, 80, 73, 78, 199, 80, 79, 80, 80, 69, 82, 128, 80,
+ 79, 80, 67, 79, 82, 78, 128, 80, 79, 80, 128, 80, 79, 208, 80, 79, 79,
+ 68, 76, 69, 128, 80, 79, 79, 128, 80, 79, 78, 68, 79, 128, 80, 79, 206,
+ 80, 79, 77, 77, 69, 69, 128, 80, 79, 77, 77, 69, 197, 80, 79, 76, 73, 83,
+ 72, 128, 80, 79, 76, 73, 67, 197, 80, 79, 76, 201, 80, 79, 76, 69, 128,
+ 80, 79, 76, 197, 80, 79, 75, 82, 89, 84, 73, 69, 128, 80, 79, 75, 79, 74,
+ 73, 128, 80, 79, 73, 78, 84, 211, 80, 79, 73, 78, 84, 79, 128, 80, 79,
+ 73, 78, 84, 69, 82, 128, 80, 79, 73, 78, 84, 69, 196, 80, 79, 73, 78, 84,
+ 128, 80, 79, 73, 78, 212, 80, 79, 69, 84, 82, 217, 80, 79, 69, 84, 73,
+ 195, 80, 79, 68, 65, 84, 85, 83, 128, 80, 79, 67, 75, 69, 212, 80, 79,
+ 65, 128, 80, 79, 128, 80, 207, 80, 78, 69, 85, 77, 65, 84, 65, 128, 80,
+ 76, 85, 84, 79, 128, 80, 76, 85, 84, 65, 128, 80, 76, 85, 83, 45, 77, 73,
+ 78, 85, 211, 80, 76, 85, 83, 128, 80, 76, 85, 82, 65, 76, 128, 80, 76,
+ 85, 77, 69, 196, 80, 76, 85, 77, 128, 80, 76, 85, 75, 128, 80, 76, 85,
+ 71, 128, 80, 76, 85, 128, 80, 76, 79, 87, 128, 80, 76, 79, 80, 72, 85,
+ 128, 80, 76, 72, 65, 85, 128, 80, 76, 69, 84, 72, 82, 79, 78, 128, 80,
+ 76, 68, 128, 80, 76, 65, 89, 73, 78, 199, 80, 76, 65, 84, 69, 128, 80,
76, 65, 83, 84, 73, 67, 83, 128, 80, 76, 65, 78, 69, 128, 80, 76, 65, 78,
- 197, 80, 76, 65, 78, 67, 203, 80, 76, 65, 75, 128, 80, 76, 65, 71, 73,
- 79, 211, 80, 76, 65, 67, 69, 72, 79, 76, 68, 69, 210, 80, 76, 65, 67,
- 197, 80, 76, 65, 128, 80, 73, 90, 90, 73, 67, 65, 84, 79, 128, 80, 73,
- 90, 90, 65, 128, 80, 73, 88, 128, 80, 73, 87, 82, 128, 80, 73, 84, 67,
- 72, 70, 79, 82, 75, 128, 80, 73, 84, 67, 72, 70, 79, 82, 203, 80, 73, 84,
- 128, 80, 73, 83, 84, 79, 76, 128, 80, 73, 83, 69, 76, 69, 72, 128, 80,
- 73, 83, 67, 69, 83, 128, 80, 73, 82, 73, 71, 128, 80, 73, 82, 73, 199,
- 80, 73, 82, 73, 69, 69, 78, 128, 80, 73, 80, 73, 78, 71, 128, 80, 73, 80,
- 65, 69, 77, 71, 66, 73, 69, 69, 128, 80, 73, 80, 65, 69, 77, 66, 65, 128,
- 80, 73, 80, 128, 80, 73, 78, 87, 72, 69, 69, 204, 80, 73, 78, 69, 65, 80,
- 80, 76, 69, 128, 80, 73, 78, 197, 80, 73, 78, 65, 82, 66, 79, 82, 65, 83,
- 128, 80, 73, 76, 76, 128, 80, 73, 76, 197, 80, 73, 76, 67, 82, 79, 215,
- 80, 73, 75, 85, 82, 85, 128, 80, 73, 75, 79, 128, 80, 73, 71, 128, 80,
- 73, 199, 80, 73, 69, 88, 128, 80, 73, 69, 85, 80, 45, 84, 72, 73, 69, 85,
- 84, 72, 128, 80, 73, 69, 85, 80, 45, 83, 83, 65, 78, 71, 83, 73, 79, 83,
- 128, 80, 73, 69, 85, 80, 45, 83, 73, 79, 83, 45, 84, 73, 75, 69, 85, 84,
- 128, 80, 73, 69, 85, 80, 45, 83, 73, 79, 83, 45, 84, 72, 73, 69, 85, 84,
- 72, 128, 80, 73, 69, 85, 80, 45, 83, 73, 79, 83, 45, 80, 73, 69, 85, 80,
- 128, 80, 73, 69, 85, 80, 45, 83, 73, 79, 83, 45, 75, 73, 89, 69, 79, 75,
- 128, 80, 73, 69, 85, 80, 45, 83, 73, 79, 83, 45, 67, 73, 69, 85, 67, 128,
- 80, 73, 69, 85, 80, 45, 82, 73, 69, 85, 76, 45, 80, 72, 73, 69, 85, 80,
- 72, 128, 80, 73, 69, 85, 80, 45, 82, 73, 69, 85, 76, 128, 80, 73, 69, 85,
- 80, 45, 78, 73, 69, 85, 78, 128, 80, 73, 69, 85, 80, 45, 77, 73, 69, 85,
- 77, 128, 80, 73, 69, 85, 80, 45, 75, 72, 73, 69, 85, 75, 72, 128, 80, 73,
- 69, 85, 80, 45, 67, 73, 69, 85, 67, 128, 80, 73, 69, 85, 80, 45, 67, 72,
- 73, 69, 85, 67, 72, 128, 80, 73, 69, 85, 208, 80, 73, 69, 84, 128, 80,
- 73, 69, 80, 128, 80, 73, 69, 69, 84, 128, 80, 73, 69, 69, 81, 128, 80,
- 73, 69, 67, 69, 128, 80, 73, 69, 128, 80, 73, 67, 75, 69, 84, 128, 80,
- 73, 67, 75, 128, 80, 73, 65, 83, 85, 84, 79, 82, 85, 128, 80, 73, 65, 83,
- 77, 193, 80, 73, 65, 78, 79, 128, 80, 201, 80, 72, 87, 65, 128, 80, 72,
- 85, 84, 72, 65, 79, 128, 80, 72, 85, 210, 80, 72, 85, 78, 71, 128, 80,
- 72, 82, 65, 83, 69, 128, 80, 72, 79, 78, 69, 83, 128, 80, 72, 79, 69, 78,
- 73, 67, 73, 65, 206, 80, 72, 79, 65, 128, 80, 72, 79, 128, 80, 72, 207,
- 80, 72, 78, 65, 69, 203, 80, 72, 73, 78, 84, 72, 85, 128, 80, 72, 73, 76,
- 79, 83, 79, 80, 72, 69, 82, 211, 80, 72, 73, 76, 73, 80, 80, 73, 78, 197,
- 80, 72, 73, 69, 85, 80, 72, 45, 84, 72, 73, 69, 85, 84, 72, 128, 80, 72,
- 73, 69, 85, 80, 72, 45, 83, 73, 79, 83, 128, 80, 72, 73, 69, 85, 80, 72,
- 45, 80, 73, 69, 85, 80, 128, 80, 72, 73, 69, 85, 80, 72, 45, 72, 73, 69,
- 85, 72, 128, 80, 72, 73, 69, 85, 80, 200, 80, 72, 73, 128, 80, 72, 201,
- 80, 72, 69, 69, 128, 80, 72, 69, 128, 80, 72, 65, 83, 69, 45, 198, 80,
- 72, 65, 83, 69, 45, 194, 80, 72, 65, 82, 89, 78, 71, 69, 65, 204, 80, 72,
- 65, 82, 128, 80, 72, 65, 78, 128, 80, 72, 65, 77, 128, 80, 72, 65, 73,
- 83, 84, 79, 211, 80, 72, 65, 71, 83, 45, 80, 193, 80, 72, 65, 65, 82, 75,
- 65, 65, 128, 80, 72, 65, 65, 128, 80, 72, 65, 128, 80, 71, 128, 80, 70,
- 128, 80, 69, 85, 88, 128, 80, 69, 85, 84, 65, 69, 128, 80, 69, 85, 84,
- 128, 80, 69, 84, 65, 83, 84, 79, 75, 79, 85, 70, 73, 83, 77, 65, 128, 80,
- 69, 84, 65, 83, 84, 73, 128, 80, 69, 84, 65, 83, 77, 65, 128, 80, 69, 84,
- 65, 76, 76, 69, 196, 80, 69, 83, 79, 128, 80, 69, 83, 207, 80, 69, 83,
- 72, 50, 128, 80, 69, 83, 69, 84, 193, 80, 69, 211, 80, 69, 82, 84, 72,
- 207, 80, 69, 82, 83, 80, 69, 67, 84, 73, 86, 69, 128, 80, 69, 82, 83, 79,
- 78, 65, 204, 80, 69, 82, 83, 79, 78, 128, 80, 69, 82, 83, 79, 206, 80,
- 69, 82, 83, 73, 65, 206, 80, 69, 82, 83, 69, 86, 69, 82, 73, 78, 199, 80,
- 69, 82, 80, 69, 78, 68, 73, 67, 85, 76, 65, 82, 128, 80, 69, 82, 80, 69,
- 78, 68, 73, 67, 85, 76, 65, 210, 80, 69, 82, 77, 73, 84, 84, 69, 196, 80,
- 69, 82, 77, 65, 78, 69, 78, 212, 80, 69, 82, 73, 83, 80, 79, 77, 69, 78,
- 73, 128, 80, 69, 82, 73, 83, 80, 79, 77, 69, 78, 201, 80, 69, 82, 70, 79,
- 82, 77, 73, 78, 199, 80, 69, 82, 70, 69, 67, 84, 85, 205, 80, 69, 82, 70,
- 69, 67, 84, 65, 128, 80, 69, 82, 70, 69, 67, 84, 193, 80, 69, 82, 67, 85,
- 83, 83, 73, 86, 69, 128, 80, 69, 82, 67, 69, 78, 212, 80, 69, 80, 69, 84,
- 128, 80, 69, 80, 69, 212, 80, 69, 79, 82, 84, 200, 80, 69, 79, 80, 76,
- 69, 128, 80, 69, 78, 84, 65, 83, 69, 77, 69, 128, 80, 69, 78, 84, 65, 71,
- 82, 65, 77, 128, 80, 69, 78, 84, 65, 71, 79, 78, 128, 80, 69, 78, 83, 85,
- 128, 80, 69, 78, 83, 73, 86, 197, 80, 69, 78, 78, 217, 80, 69, 78, 73,
- 72, 73, 128, 80, 69, 78, 71, 85, 73, 78, 128, 80, 69, 78, 71, 75, 65, 76,
- 128, 80, 69, 78, 69, 84, 82, 65, 84, 73, 79, 78, 128, 80, 69, 78, 67, 73,
- 76, 128, 80, 69, 76, 65, 83, 84, 79, 78, 128, 80, 69, 76, 65, 83, 84, 79,
- 206, 80, 69, 73, 84, 72, 128, 80, 69, 72, 69, 72, 128, 80, 69, 72, 69,
- 200, 80, 69, 72, 128, 80, 69, 200, 80, 69, 69, 90, 73, 128, 80, 69, 69,
- 83, 72, 73, 128, 80, 69, 69, 80, 128, 80, 69, 69, 77, 128, 80, 69, 69,
- 128, 80, 69, 68, 69, 83, 84, 82, 73, 65, 78, 83, 128, 80, 69, 68, 69, 83,
- 84, 82, 73, 65, 78, 128, 80, 69, 68, 69, 83, 84, 65, 76, 128, 80, 69, 68,
- 69, 83, 84, 65, 204, 80, 69, 68, 65, 204, 80, 69, 65, 67, 72, 128, 80,
- 69, 65, 67, 69, 128, 80, 69, 65, 67, 197, 80, 68, 73, 128, 80, 68, 70,
- 128, 80, 68, 128, 80, 67, 128, 80, 65, 90, 69, 82, 128, 80, 65, 89, 69,
- 82, 79, 75, 128, 80, 65, 89, 65, 78, 78, 65, 128, 80, 65, 89, 128, 80,
- 65, 88, 128, 80, 65, 87, 78, 128, 80, 65, 215, 80, 65, 86, 73, 89, 65,
- 78, 73, 128, 80, 65, 85, 128, 80, 65, 84, 84, 69, 82, 78, 128, 80, 65,
- 84, 72, 65, 77, 65, 83, 65, 84, 128, 80, 65, 84, 200, 80, 65, 84, 65, 75,
- 128, 80, 65, 84, 65, 72, 128, 80, 65, 84, 128, 80, 65, 83, 85, 81, 128,
- 80, 65, 83, 83, 80, 79, 82, 212, 80, 65, 83, 83, 73, 86, 69, 45, 80, 85,
- 76, 76, 45, 85, 80, 45, 79, 85, 84, 80, 85, 212, 80, 65, 83, 83, 73, 86,
- 69, 45, 80, 85, 76, 76, 45, 68, 79, 87, 78, 45, 79, 85, 84, 80, 85, 212,
- 80, 65, 83, 72, 84, 65, 128, 80, 65, 83, 72, 65, 69, 128, 80, 65, 83, 69,
- 81, 128, 80, 65, 83, 65, 78, 71, 65, 206, 80, 65, 82, 85, 77, 128, 80,
- 65, 82, 84, 217, 80, 65, 82, 84, 78, 69, 82, 83, 72, 73, 208, 80, 65, 82,
- 84, 73, 65, 76, 76, 89, 45, 82, 69, 67, 89, 67, 76, 69, 196, 80, 65, 82,
- 84, 73, 65, 204, 80, 65, 82, 84, 72, 73, 65, 206, 80, 65, 82, 212, 80,
- 65, 82, 73, 67, 72, 79, 78, 128, 80, 65, 82, 69, 83, 84, 73, 71, 77, 69,
- 78, 79, 206, 80, 65, 82, 69, 82, 69, 78, 128, 80, 65, 82, 69, 78, 84, 72,
- 69, 83, 73, 83, 128, 80, 65, 82, 69, 78, 84, 72, 69, 83, 73, 211, 80, 65,
- 82, 65, 80, 72, 82, 65, 83, 197, 80, 65, 82, 65, 76, 76, 69, 76, 79, 71,
- 82, 65, 77, 128, 80, 65, 82, 65, 76, 76, 69, 76, 128, 80, 65, 82, 65, 76,
- 76, 69, 204, 80, 65, 82, 65, 75, 76, 73, 84, 73, 75, 73, 128, 80, 65, 82,
- 65, 75, 76, 73, 84, 73, 75, 201, 80, 65, 82, 65, 75, 65, 76, 69, 83, 77,
- 193, 80, 65, 82, 65, 71, 82, 65, 80, 72, 79, 83, 128, 80, 65, 82, 65, 71,
- 82, 65, 80, 72, 128, 80, 65, 82, 65, 71, 82, 65, 80, 200, 80, 65, 82, 65,
- 128, 80, 65, 82, 128, 80, 65, 80, 89, 82, 85, 83, 128, 80, 65, 80, 69,
- 82, 67, 76, 73, 80, 128, 80, 65, 80, 69, 210, 80, 65, 80, 128, 80, 65,
- 208, 80, 65, 207, 80, 65, 78, 89, 85, 75, 85, 128, 80, 65, 78, 89, 73,
- 75, 85, 128, 80, 65, 78, 89, 69, 67, 69, 75, 128, 80, 65, 78, 89, 65, 78,
- 71, 71, 65, 128, 80, 65, 78, 89, 65, 75, 82, 65, 128, 80, 65, 78, 84, 73,
- 128, 80, 65, 78, 83, 73, 79, 83, 45, 80, 73, 69, 85, 80, 128, 80, 65, 78,
- 83, 73, 79, 83, 45, 75, 65, 80, 89, 69, 79, 85, 78, 80, 73, 69, 85, 80,
- 128, 80, 65, 78, 79, 78, 71, 79, 78, 65, 78, 128, 80, 65, 78, 79, 76, 79,
- 78, 71, 128, 80, 65, 78, 71, 87, 73, 83, 65, 68, 128, 80, 65, 78, 71, 82,
- 65, 78, 71, 75, 69, 80, 128, 80, 65, 78, 71, 79, 76, 65, 84, 128, 80, 65,
- 78, 71, 76, 79, 78, 71, 128, 80, 65, 78, 71, 76, 65, 89, 65, 82, 128, 80,
- 65, 78, 71, 75, 79, 78, 128, 80, 65, 78, 71, 75, 65, 84, 128, 80, 65, 78,
- 71, 72, 85, 76, 85, 128, 80, 65, 78, 71, 128, 80, 65, 78, 69, 85, 76, 69,
- 85, 78, 71, 128, 80, 65, 78, 68, 193, 80, 65, 78, 65, 69, 76, 65, 69, 78,
- 71, 128, 80, 65, 78, 128, 80, 65, 77, 85, 78, 71, 75, 65, 72, 128, 80,
- 65, 77, 85, 68, 80, 79, 68, 128, 80, 65, 77, 83, 72, 65, 69, 128, 80, 65,
- 77, 80, 72, 89, 76, 73, 65, 206, 80, 65, 77, 73, 78, 71, 75, 65, 76, 128,
- 80, 65, 77, 69, 80, 69, 84, 128, 80, 65, 77, 69, 78, 69, 78, 71, 128, 80,
- 65, 77, 65, 68, 65, 128, 80, 65, 77, 65, 65, 69, 72, 128, 80, 65, 76, 85,
- 84, 65, 128, 80, 65, 76, 79, 67, 72, 75, 65, 128, 80, 65, 76, 205, 80,
- 65, 76, 76, 65, 87, 65, 128, 80, 65, 76, 76, 65, 83, 128, 80, 65, 76, 69,
- 84, 84, 69, 128, 80, 65, 76, 65, 85, 78, 199, 80, 65, 76, 65, 84, 65, 76,
- 73, 90, 69, 196, 80, 65, 76, 65, 84, 65, 76, 73, 90, 65, 84, 73, 79, 78,
- 128, 80, 65, 76, 65, 84, 65, 204, 80, 65, 75, 80, 65, 203, 80, 65, 73,
- 89, 65, 78, 78, 79, 73, 128, 80, 65, 73, 82, 84, 72, 82, 65, 128, 80, 65,
- 73, 82, 69, 196, 80, 65, 73, 128, 80, 65, 72, 76, 65, 86, 201, 80, 65,
- 72, 128, 80, 65, 71, 69, 82, 128, 80, 65, 71, 197, 80, 65, 68, 77, 193,
- 80, 65, 68, 68, 73, 78, 199, 80, 65, 68, 193, 80, 65, 68, 128, 80, 65,
- 67, 75, 73, 78, 71, 128, 80, 65, 67, 75, 65, 71, 69, 128, 80, 65, 65, 84,
- 85, 128, 80, 65, 65, 83, 69, 78, 84, 79, 128, 80, 65, 65, 82, 65, 69,
- 128, 80, 65, 65, 77, 128, 80, 65, 65, 73, 128, 80, 65, 65, 45, 80, 73,
- 76, 76, 65, 128, 80, 65, 65, 128, 80, 50, 128, 80, 48, 49, 49, 128, 80,
- 48, 49, 48, 128, 80, 48, 48, 57, 128, 80, 48, 48, 56, 128, 80, 48, 48,
- 55, 128, 80, 48, 48, 54, 128, 80, 48, 48, 53, 128, 80, 48, 48, 52, 128,
- 80, 48, 48, 51, 65, 128, 80, 48, 48, 51, 128, 80, 48, 48, 50, 128, 80,
- 48, 48, 49, 65, 128, 80, 48, 48, 49, 128, 79, 89, 82, 65, 78, 73, 83, 77,
- 193, 79, 89, 65, 78, 78, 65, 128, 79, 88, 73, 65, 128, 79, 88, 73, 193,
- 79, 88, 69, 73, 65, 201, 79, 88, 69, 73, 193, 79, 86, 69, 82, 82, 73, 68,
- 69, 128, 79, 86, 69, 82, 76, 79, 78, 199, 79, 86, 69, 82, 76, 73, 78, 69,
- 128, 79, 86, 69, 82, 76, 65, 89, 128, 79, 86, 69, 82, 76, 65, 80, 80, 73,
- 78, 199, 79, 86, 69, 82, 76, 65, 73, 68, 128, 79, 86, 69, 82, 66, 65, 82,
- 128, 79, 86, 65, 204, 79, 86, 128, 79, 85, 84, 76, 73, 78, 69, 196, 79,
- 85, 84, 76, 73, 78, 69, 128, 79, 85, 84, 69, 210, 79, 85, 84, 66, 79,
- 216, 79, 85, 78, 75, 73, 193, 79, 85, 78, 67, 69, 128, 79, 85, 78, 67,
- 197, 79, 84, 85, 128, 79, 84, 84, 65, 86, 193, 79, 84, 84, 128, 79, 84,
- 72, 65, 76, 65, 206, 79, 84, 72, 65, 76, 128, 79, 83, 77, 65, 78, 89,
- 193, 79, 83, 67, 128, 79, 82, 84, 72, 79, 71, 79, 78, 65, 204, 79, 82,
- 84, 72, 79, 68, 79, 216, 79, 82, 78, 65, 84, 197, 79, 82, 78, 65, 77, 69,
- 78, 84, 128, 79, 82, 78, 65, 77, 69, 78, 212, 79, 82, 75, 72, 79, 206,
- 79, 82, 73, 71, 73, 78, 65, 204, 79, 82, 73, 71, 73, 78, 128, 79, 82, 69,
- 45, 50, 128, 79, 82, 68, 73, 78, 65, 204, 79, 82, 68, 69, 210, 79, 82,
- 67, 72, 73, 68, 128, 79, 82, 65, 78, 71, 197, 79, 80, 84, 73, 79, 206,
- 79, 80, 84, 73, 67, 65, 204, 79, 80, 80, 82, 69, 83, 83, 73, 79, 78, 128,
- 79, 80, 80, 79, 83, 73, 84, 73, 79, 78, 128, 79, 80, 80, 79, 83, 73, 78,
- 199, 79, 80, 80, 79, 83, 69, 128, 79, 80, 72, 73, 85, 67, 72, 85, 83,
+ 67, 203, 80, 76, 65, 75, 128, 80, 76, 65, 71, 73, 79, 211, 80, 76, 65,
+ 67, 69, 72, 79, 76, 68, 69, 210, 80, 76, 65, 67, 197, 80, 76, 65, 128,
+ 80, 73, 90, 90, 73, 67, 65, 84, 79, 128, 80, 73, 90, 90, 65, 128, 80, 73,
+ 88, 128, 80, 73, 87, 82, 128, 80, 73, 84, 67, 72, 70, 79, 82, 75, 128,
+ 80, 73, 84, 67, 72, 70, 79, 82, 203, 80, 73, 84, 128, 80, 73, 83, 84, 79,
+ 76, 128, 80, 73, 83, 69, 76, 69, 72, 128, 80, 73, 83, 67, 69, 83, 128,
+ 80, 73, 82, 73, 71, 128, 80, 73, 82, 73, 199, 80, 73, 82, 73, 69, 69, 78,
+ 128, 80, 73, 82, 65, 67, 89, 128, 80, 73, 82, 50, 128, 80, 73, 80, 73,
+ 78, 71, 128, 80, 73, 80, 65, 69, 77, 71, 66, 73, 69, 69, 128, 80, 73, 80,
+ 65, 69, 77, 66, 65, 128, 80, 73, 80, 128, 80, 73, 78, 87, 72, 69, 69,
+ 204, 80, 73, 78, 69, 65, 80, 80, 76, 69, 128, 80, 73, 78, 197, 80, 73,
+ 78, 65, 82, 66, 79, 82, 65, 83, 128, 80, 73, 76, 76, 128, 80, 73, 76,
+ 197, 80, 73, 76, 67, 82, 79, 215, 80, 73, 75, 85, 82, 85, 128, 80, 73,
+ 75, 79, 128, 80, 73, 71, 128, 80, 73, 199, 80, 73, 69, 88, 128, 80, 73,
+ 69, 85, 80, 45, 84, 72, 73, 69, 85, 84, 72, 128, 80, 73, 69, 85, 80, 45,
+ 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 80, 73, 69, 85, 80, 45, 83, 73,
+ 79, 83, 45, 84, 73, 75, 69, 85, 84, 128, 80, 73, 69, 85, 80, 45, 83, 73,
+ 79, 83, 45, 84, 72, 73, 69, 85, 84, 72, 128, 80, 73, 69, 85, 80, 45, 83,
+ 73, 79, 83, 45, 80, 73, 69, 85, 80, 128, 80, 73, 69, 85, 80, 45, 83, 73,
+ 79, 83, 45, 75, 73, 89, 69, 79, 75, 128, 80, 73, 69, 85, 80, 45, 83, 73,
+ 79, 83, 45, 67, 73, 69, 85, 67, 128, 80, 73, 69, 85, 80, 45, 82, 73, 69,
+ 85, 76, 45, 80, 72, 73, 69, 85, 80, 72, 128, 80, 73, 69, 85, 80, 45, 82,
+ 73, 69, 85, 76, 128, 80, 73, 69, 85, 80, 45, 78, 73, 69, 85, 78, 128, 80,
+ 73, 69, 85, 80, 45, 77, 73, 69, 85, 77, 128, 80, 73, 69, 85, 80, 45, 75,
+ 72, 73, 69, 85, 75, 72, 128, 80, 73, 69, 85, 80, 45, 67, 73, 69, 85, 67,
+ 128, 80, 73, 69, 85, 80, 45, 67, 72, 73, 69, 85, 67, 72, 128, 80, 73, 69,
+ 85, 208, 80, 73, 69, 84, 128, 80, 73, 69, 80, 128, 80, 73, 69, 69, 84,
+ 128, 80, 73, 69, 69, 81, 128, 80, 73, 69, 67, 69, 128, 80, 73, 69, 128,
+ 80, 73, 67, 84, 85, 82, 69, 128, 80, 73, 67, 75, 69, 84, 128, 80, 73, 67,
+ 75, 128, 80, 73, 65, 83, 85, 84, 79, 82, 85, 128, 80, 73, 65, 83, 77,
+ 193, 80, 73, 65, 78, 79, 128, 80, 201, 80, 72, 87, 65, 128, 80, 72, 85,
+ 84, 72, 65, 79, 128, 80, 72, 85, 210, 80, 72, 85, 78, 71, 128, 80, 72,
+ 82, 65, 83, 69, 128, 80, 72, 79, 78, 69, 83, 128, 80, 72, 79, 69, 78, 73,
+ 67, 73, 65, 206, 80, 72, 79, 65, 128, 80, 72, 79, 128, 80, 72, 207, 80,
+ 72, 78, 65, 69, 203, 80, 72, 73, 78, 84, 72, 85, 128, 80, 72, 73, 76, 79,
+ 83, 79, 80, 72, 69, 82, 211, 80, 72, 73, 76, 73, 80, 80, 73, 78, 197, 80,
+ 72, 73, 69, 85, 80, 72, 45, 84, 72, 73, 69, 85, 84, 72, 128, 80, 72, 73,
+ 69, 85, 80, 72, 45, 83, 73, 79, 83, 128, 80, 72, 73, 69, 85, 80, 72, 45,
+ 80, 73, 69, 85, 80, 128, 80, 72, 73, 69, 85, 80, 72, 45, 72, 73, 69, 85,
+ 72, 128, 80, 72, 73, 69, 85, 80, 200, 80, 72, 73, 128, 80, 72, 201, 80,
+ 72, 69, 69, 128, 80, 72, 69, 128, 80, 72, 65, 83, 69, 45, 198, 80, 72,
+ 65, 83, 69, 45, 194, 80, 72, 65, 83, 69, 45, 193, 80, 72, 65, 82, 89, 78,
+ 71, 69, 65, 204, 80, 72, 65, 82, 128, 80, 72, 65, 78, 128, 80, 72, 65,
+ 77, 128, 80, 72, 65, 73, 83, 84, 79, 211, 80, 72, 65, 71, 83, 45, 80,
+ 193, 80, 72, 65, 66, 128, 80, 72, 65, 65, 82, 75, 65, 65, 128, 80, 72,
+ 65, 65, 128, 80, 72, 65, 128, 80, 71, 128, 80, 70, 128, 80, 69, 85, 88,
+ 128, 80, 69, 85, 84, 65, 69, 128, 80, 69, 85, 84, 128, 80, 69, 84, 65,
+ 83, 84, 79, 75, 79, 85, 70, 73, 83, 77, 65, 128, 80, 69, 84, 65, 83, 84,
+ 73, 128, 80, 69, 84, 65, 83, 77, 65, 128, 80, 69, 84, 65, 76, 76, 69,
+ 196, 80, 69, 83, 79, 128, 80, 69, 83, 207, 80, 69, 83, 72, 50, 128, 80,
+ 69, 83, 72, 178, 80, 69, 83, 69, 84, 193, 80, 69, 211, 80, 69, 82, 84,
+ 72, 207, 80, 69, 82, 83, 80, 69, 67, 84, 73, 86, 69, 128, 80, 69, 82, 83,
+ 79, 78, 65, 204, 80, 69, 82, 83, 79, 78, 128, 80, 69, 82, 83, 79, 206,
+ 80, 69, 82, 83, 73, 65, 206, 80, 69, 82, 83, 69, 86, 69, 82, 73, 78, 199,
+ 80, 69, 82, 80, 69, 78, 68, 73, 67, 85, 76, 65, 82, 128, 80, 69, 82, 80,
+ 69, 78, 68, 73, 67, 85, 76, 65, 210, 80, 69, 82, 78, 73, 206, 80, 69, 82,
+ 77, 73, 84, 84, 69, 196, 80, 69, 82, 77, 73, 195, 80, 69, 82, 77, 65, 78,
+ 69, 78, 212, 80, 69, 82, 73, 83, 80, 79, 77, 69, 78, 73, 128, 80, 69, 82,
+ 73, 83, 80, 79, 77, 69, 78, 201, 80, 69, 82, 70, 79, 82, 77, 73, 78, 199,
+ 80, 69, 82, 70, 69, 67, 84, 85, 205, 80, 69, 82, 70, 69, 67, 84, 65, 128,
+ 80, 69, 82, 70, 69, 67, 84, 193, 80, 69, 82, 67, 85, 83, 83, 73, 86, 69,
+ 128, 80, 69, 82, 67, 69, 78, 212, 80, 69, 80, 80, 69, 82, 128, 80, 69,
+ 80, 69, 84, 128, 80, 69, 80, 69, 212, 80, 69, 79, 82, 84, 200, 80, 69,
+ 79, 80, 76, 69, 128, 80, 69, 78, 84, 65, 83, 69, 77, 69, 128, 80, 69, 78,
+ 84, 65, 71, 82, 65, 77, 128, 80, 69, 78, 84, 65, 71, 79, 78, 128, 80, 69,
+ 78, 83, 85, 128, 80, 69, 78, 83, 73, 86, 197, 80, 69, 78, 78, 217, 80,
+ 69, 78, 78, 65, 78, 84, 128, 80, 69, 78, 73, 72, 73, 128, 80, 69, 78, 71,
+ 85, 73, 78, 128, 80, 69, 78, 71, 75, 65, 76, 128, 80, 69, 78, 69, 84, 82,
+ 65, 84, 73, 79, 78, 128, 80, 69, 78, 67, 73, 76, 128, 80, 69, 76, 65, 83,
+ 84, 79, 78, 128, 80, 69, 76, 65, 83, 84, 79, 206, 80, 69, 73, 84, 72,
+ 128, 80, 69, 72, 69, 72, 128, 80, 69, 72, 69, 200, 80, 69, 72, 128, 80,
+ 69, 200, 80, 69, 69, 90, 73, 128, 80, 69, 69, 83, 72, 73, 128, 80, 69,
+ 69, 80, 128, 80, 69, 69, 77, 128, 80, 69, 69, 73, 128, 80, 69, 69, 128,
+ 80, 69, 68, 69, 83, 84, 82, 73, 65, 78, 83, 128, 80, 69, 68, 69, 83, 84,
+ 82, 73, 65, 78, 128, 80, 69, 68, 69, 83, 84, 65, 76, 128, 80, 69, 68, 69,
+ 83, 84, 65, 204, 80, 69, 68, 65, 204, 80, 69, 65, 75, 211, 80, 69, 65,
+ 67, 72, 128, 80, 69, 65, 67, 69, 128, 80, 69, 65, 67, 197, 80, 68, 73,
+ 128, 80, 68, 70, 128, 80, 68, 128, 80, 67, 128, 80, 65, 90, 69, 82, 128,
+ 80, 65, 89, 69, 82, 79, 75, 128, 80, 65, 89, 65, 78, 78, 65, 128, 80, 65,
+ 89, 128, 80, 65, 88, 128, 80, 65, 87, 78, 128, 80, 65, 215, 80, 65, 86,
+ 73, 89, 65, 78, 73, 128, 80, 65, 85, 128, 80, 65, 213, 80, 65, 84, 84,
+ 69, 82, 78, 128, 80, 65, 84, 72, 65, 77, 65, 83, 65, 84, 128, 80, 65, 84,
+ 200, 80, 65, 84, 65, 75, 128, 80, 65, 84, 65, 72, 128, 80, 65, 84, 128,
+ 80, 65, 83, 85, 81, 128, 80, 65, 83, 83, 80, 79, 82, 212, 80, 65, 83, 83,
+ 73, 86, 69, 45, 80, 85, 76, 76, 45, 85, 80, 45, 79, 85, 84, 80, 85, 212,
+ 80, 65, 83, 83, 73, 86, 69, 45, 80, 85, 76, 76, 45, 68, 79, 87, 78, 45,
+ 79, 85, 84, 80, 85, 212, 80, 65, 83, 83, 69, 78, 71, 69, 210, 80, 65, 83,
+ 72, 84, 65, 128, 80, 65, 83, 72, 65, 69, 128, 80, 65, 83, 69, 81, 128,
+ 80, 65, 83, 65, 78, 71, 65, 206, 80, 65, 82, 85, 77, 128, 80, 65, 82, 84,
+ 217, 80, 65, 82, 84, 78, 69, 82, 83, 72, 73, 208, 80, 65, 82, 84, 73, 65,
+ 76, 76, 89, 45, 82, 69, 67, 89, 67, 76, 69, 196, 80, 65, 82, 84, 73, 65,
+ 204, 80, 65, 82, 84, 72, 73, 65, 206, 80, 65, 82, 212, 80, 65, 82, 75,
+ 128, 80, 65, 82, 73, 67, 72, 79, 78, 128, 80, 65, 82, 69, 83, 84, 73, 71,
+ 77, 69, 78, 79, 206, 80, 65, 82, 69, 82, 69, 78, 128, 80, 65, 82, 69, 78,
+ 84, 72, 69, 83, 73, 83, 128, 80, 65, 82, 69, 78, 84, 72, 69, 83, 73, 211,
+ 80, 65, 82, 69, 78, 84, 72, 69, 83, 69, 211, 80, 65, 82, 65, 80, 72, 82,
+ 65, 83, 197, 80, 65, 82, 65, 76, 76, 69, 76, 79, 71, 82, 65, 77, 128, 80,
+ 65, 82, 65, 76, 76, 69, 76, 128, 80, 65, 82, 65, 76, 76, 69, 204, 80, 65,
+ 82, 65, 75, 76, 73, 84, 73, 75, 73, 128, 80, 65, 82, 65, 75, 76, 73, 84,
+ 73, 75, 201, 80, 65, 82, 65, 75, 65, 76, 69, 83, 77, 193, 80, 65, 82, 65,
+ 71, 82, 65, 80, 72, 79, 83, 128, 80, 65, 82, 65, 71, 82, 65, 80, 72, 128,
+ 80, 65, 82, 65, 71, 82, 65, 80, 200, 80, 65, 82, 65, 128, 80, 65, 82,
+ 128, 80, 65, 80, 89, 82, 85, 83, 128, 80, 65, 80, 69, 82, 67, 76, 73, 80,
+ 83, 128, 80, 65, 80, 69, 82, 67, 76, 73, 80, 128, 80, 65, 80, 69, 210,
+ 80, 65, 80, 128, 80, 65, 208, 80, 65, 207, 80, 65, 78, 89, 85, 75, 85,
+ 128, 80, 65, 78, 89, 73, 75, 85, 128, 80, 65, 78, 89, 69, 67, 69, 75,
+ 128, 80, 65, 78, 89, 65, 78, 71, 71, 65, 128, 80, 65, 78, 89, 65, 75, 82,
+ 65, 128, 80, 65, 78, 84, 73, 128, 80, 65, 78, 83, 73, 79, 83, 45, 80, 73,
+ 69, 85, 80, 128, 80, 65, 78, 83, 73, 79, 83, 45, 75, 65, 80, 89, 69, 79,
+ 85, 78, 80, 73, 69, 85, 80, 128, 80, 65, 78, 79, 78, 71, 79, 78, 65, 78,
+ 128, 80, 65, 78, 79, 76, 79, 78, 71, 128, 80, 65, 78, 71, 87, 73, 83, 65,
+ 68, 128, 80, 65, 78, 71, 82, 65, 78, 71, 75, 69, 80, 128, 80, 65, 78, 71,
+ 79, 76, 65, 84, 128, 80, 65, 78, 71, 76, 79, 78, 71, 128, 80, 65, 78, 71,
+ 76, 65, 89, 65, 82, 128, 80, 65, 78, 71, 75, 79, 78, 128, 80, 65, 78, 71,
+ 75, 65, 84, 128, 80, 65, 78, 71, 72, 85, 76, 85, 128, 80, 65, 78, 71,
+ 128, 80, 65, 78, 69, 85, 76, 69, 85, 78, 71, 128, 80, 65, 78, 68, 193,
+ 80, 65, 78, 65, 69, 76, 65, 69, 78, 71, 128, 80, 65, 78, 128, 80, 65, 77,
+ 85, 78, 71, 75, 65, 72, 128, 80, 65, 77, 85, 68, 80, 79, 68, 128, 80, 65,
+ 77, 83, 72, 65, 69, 128, 80, 65, 77, 80, 72, 89, 76, 73, 65, 206, 80, 65,
+ 77, 73, 78, 71, 75, 65, 76, 128, 80, 65, 77, 69, 80, 69, 84, 128, 80, 65,
+ 77, 69, 78, 69, 78, 71, 128, 80, 65, 77, 65, 68, 65, 128, 80, 65, 77, 65,
+ 65, 69, 72, 128, 80, 65, 76, 85, 84, 65, 128, 80, 65, 76, 79, 67, 72, 75,
+ 65, 128, 80, 65, 76, 77, 89, 82, 69, 78, 197, 80, 65, 76, 205, 80, 65,
+ 76, 76, 65, 87, 65, 128, 80, 65, 76, 76, 65, 83, 128, 80, 65, 76, 69, 84,
+ 84, 69, 128, 80, 65, 76, 65, 85, 78, 199, 80, 65, 76, 65, 84, 65, 76, 73,
+ 90, 69, 196, 80, 65, 76, 65, 84, 65, 76, 73, 90, 65, 84, 73, 79, 78, 128,
+ 80, 65, 76, 65, 84, 65, 204, 80, 65, 75, 80, 65, 203, 80, 65, 73, 89, 65,
+ 78, 78, 79, 73, 128, 80, 65, 73, 82, 84, 72, 82, 65, 128, 80, 65, 73, 82,
+ 69, 196, 80, 65, 73, 78, 84, 66, 82, 85, 83, 72, 128, 80, 65, 73, 128,
+ 80, 65, 72, 76, 65, 86, 201, 80, 65, 72, 128, 80, 65, 71, 69, 83, 128,
+ 80, 65, 71, 69, 82, 128, 80, 65, 71, 197, 80, 65, 68, 77, 193, 80, 65,
+ 68, 68, 76, 197, 80, 65, 68, 68, 73, 78, 199, 80, 65, 68, 193, 80, 65,
+ 68, 128, 80, 65, 67, 75, 73, 78, 71, 128, 80, 65, 67, 75, 65, 71, 69,
+ 128, 80, 65, 65, 84, 85, 128, 80, 65, 65, 83, 69, 78, 84, 79, 128, 80,
+ 65, 65, 82, 65, 69, 128, 80, 65, 65, 77, 128, 80, 65, 65, 73, 128, 80,
+ 65, 65, 45, 80, 73, 76, 76, 65, 128, 80, 65, 65, 128, 80, 50, 128, 80,
+ 48, 49, 49, 128, 80, 48, 49, 48, 128, 80, 48, 48, 57, 128, 80, 48, 48,
+ 56, 128, 80, 48, 48, 55, 128, 80, 48, 48, 54, 128, 80, 48, 48, 53, 128,
+ 80, 48, 48, 52, 128, 80, 48, 48, 51, 65, 128, 80, 48, 48, 51, 128, 80,
+ 48, 48, 50, 128, 80, 48, 48, 49, 65, 128, 80, 48, 48, 49, 128, 79, 89,
+ 82, 65, 78, 73, 83, 77, 193, 79, 89, 65, 78, 78, 65, 128, 79, 88, 73, 65,
+ 128, 79, 88, 73, 193, 79, 88, 69, 73, 65, 201, 79, 88, 69, 73, 193, 79,
+ 86, 69, 82, 82, 73, 68, 69, 128, 79, 86, 69, 82, 76, 79, 78, 199, 79, 86,
+ 69, 82, 76, 73, 78, 69, 128, 79, 86, 69, 82, 76, 65, 89, 128, 79, 86, 69,
+ 82, 76, 65, 80, 80, 73, 78, 199, 79, 86, 69, 82, 76, 65, 80, 128, 79, 86,
+ 69, 82, 76, 65, 73, 68, 128, 79, 86, 69, 82, 66, 65, 82, 128, 79, 86, 65,
+ 76, 128, 79, 86, 65, 204, 79, 85, 84, 76, 73, 78, 69, 196, 79, 85, 84,
+ 76, 73, 78, 69, 128, 79, 85, 84, 69, 210, 79, 85, 84, 66, 79, 216, 79,
+ 85, 78, 75, 73, 193, 79, 85, 78, 67, 69, 128, 79, 85, 78, 67, 197, 79,
+ 84, 85, 128, 79, 84, 84, 65, 86, 193, 79, 84, 84, 128, 79, 84, 72, 69,
+ 82, 211, 79, 84, 72, 69, 210, 79, 84, 72, 65, 76, 65, 206, 79, 84, 72,
+ 65, 76, 128, 79, 83, 77, 65, 78, 89, 193, 79, 83, 67, 128, 79, 82, 84,
+ 72, 79, 71, 79, 78, 65, 204, 79, 82, 84, 72, 79, 68, 79, 216, 79, 82, 78,
+ 65, 84, 197, 79, 82, 78, 65, 77, 69, 78, 84, 83, 128, 79, 82, 78, 65, 77,
+ 69, 78, 84, 128, 79, 82, 78, 65, 77, 69, 78, 212, 79, 82, 75, 72, 79,
+ 206, 79, 82, 73, 71, 73, 78, 65, 204, 79, 82, 73, 71, 73, 78, 128, 79,
+ 82, 69, 45, 50, 128, 79, 82, 68, 73, 78, 65, 204, 79, 82, 68, 69, 210,
+ 79, 82, 67, 72, 73, 68, 128, 79, 82, 65, 78, 71, 197, 79, 80, 84, 73, 79,
+ 206, 79, 80, 84, 73, 67, 65, 204, 79, 80, 80, 82, 69, 83, 83, 73, 79, 78,
+ 128, 79, 80, 80, 79, 83, 73, 84, 73, 79, 78, 128, 79, 80, 80, 79, 83, 73,
+ 78, 199, 79, 80, 80, 79, 83, 69, 128, 79, 80, 72, 73, 85, 67, 72, 85, 83,
128, 79, 80, 69, 82, 65, 84, 79, 82, 128, 79, 80, 69, 82, 65, 84, 79,
210, 79, 80, 69, 82, 65, 84, 73, 78, 199, 79, 80, 69, 78, 73, 78, 199,
79, 80, 69, 78, 45, 80, 128, 79, 80, 69, 78, 45, 79, 85, 84, 76, 73, 78,
- 69, 196, 79, 80, 69, 78, 45, 72, 69, 65, 68, 69, 196, 79, 80, 69, 78, 45,
- 67, 73, 82, 67, 85, 73, 84, 45, 79, 85, 84, 80, 85, 212, 79, 79, 90, 69,
- 128, 79, 79, 89, 65, 78, 78, 65, 128, 79, 79, 85, 128, 79, 79, 77, 85,
- 128, 79, 79, 69, 128, 79, 79, 66, 79, 79, 70, 73, 76, 73, 128, 79, 78,
- 85, 128, 79, 78, 83, 85, 128, 79, 78, 78, 128, 79, 78, 75, 65, 82, 128,
- 79, 78, 69, 83, 69, 76, 70, 128, 79, 78, 69, 45, 87, 65, 217, 79, 78, 69,
- 45, 84, 72, 73, 82, 84, 89, 128, 79, 78, 69, 45, 76, 73, 78, 197, 79, 78,
- 67, 79, 77, 73, 78, 199, 79, 78, 65, 80, 128, 79, 77, 73, 83, 83, 73, 79,
- 206, 79, 77, 73, 67, 82, 79, 78, 128, 79, 77, 73, 67, 82, 79, 206, 79,
- 77, 69, 71, 65, 128, 79, 77, 69, 71, 193, 79, 77, 65, 76, 79, 78, 128,
- 79, 76, 73, 86, 69, 128, 79, 76, 73, 71, 79, 206, 79, 76, 68, 128, 79,
- 75, 84, 207, 79, 75, 65, 82, 65, 128, 79, 75, 65, 82, 193, 79, 74, 73,
- 66, 87, 65, 217, 79, 74, 69, 79, 78, 128, 79, 73, 76, 128, 79, 72, 77,
- 128, 79, 72, 205, 79, 71, 82, 69, 128, 79, 71, 79, 78, 69, 75, 128, 79,
- 71, 79, 78, 69, 203, 79, 71, 72, 65, 205, 79, 70, 70, 73, 67, 69, 82,
- 128, 79, 70, 70, 73, 67, 69, 128, 79, 70, 70, 73, 67, 197, 79, 70, 70,
- 128, 79, 69, 89, 128, 79, 69, 75, 128, 79, 68, 69, 78, 128, 79, 68, 196,
- 79, 67, 84, 79, 80, 85, 83, 128, 79, 67, 84, 79, 66, 69, 82, 128, 79, 67,
- 84, 69, 212, 79, 67, 210, 79, 67, 76, 79, 67, 75, 128, 79, 67, 67, 76,
- 85, 83, 73, 79, 78, 128, 79, 66, 83, 84, 82, 85, 67, 84, 73, 79, 78, 128,
- 79, 66, 79, 76, 211, 79, 66, 79, 204, 79, 66, 79, 70, 73, 76, 73, 128,
- 79, 66, 76, 73, 81, 85, 197, 79, 66, 74, 69, 67, 212, 79, 66, 69, 76, 85,
- 83, 128, 79, 66, 69, 76, 79, 83, 128, 79, 66, 128, 79, 65, 89, 128, 79,
- 65, 75, 128, 79, 65, 66, 79, 65, 70, 73, 76, 73, 128, 79, 193, 79, 48,
- 53, 49, 128, 79, 48, 53, 48, 66, 128, 79, 48, 53, 48, 65, 128, 79, 48,
- 53, 48, 128, 79, 48, 52, 57, 128, 79, 48, 52, 56, 128, 79, 48, 52, 55,
- 128, 79, 48, 52, 54, 128, 79, 48, 52, 53, 128, 79, 48, 52, 52, 128, 79,
- 48, 52, 51, 128, 79, 48, 52, 50, 128, 79, 48, 52, 49, 128, 79, 48, 52,
- 48, 128, 79, 48, 51, 57, 128, 79, 48, 51, 56, 128, 79, 48, 51, 55, 128,
- 79, 48, 51, 54, 68, 128, 79, 48, 51, 54, 67, 128, 79, 48, 51, 54, 66,
- 128, 79, 48, 51, 54, 65, 128, 79, 48, 51, 54, 128, 79, 48, 51, 53, 128,
- 79, 48, 51, 52, 128, 79, 48, 51, 51, 65, 128, 79, 48, 51, 51, 128, 79,
- 48, 51, 50, 128, 79, 48, 51, 49, 128, 79, 48, 51, 48, 65, 128, 79, 48,
- 51, 48, 128, 79, 48, 50, 57, 65, 128, 79, 48, 50, 57, 128, 79, 48, 50,
- 56, 128, 79, 48, 50, 55, 128, 79, 48, 50, 54, 128, 79, 48, 50, 53, 65,
- 128, 79, 48, 50, 53, 128, 79, 48, 50, 52, 65, 128, 79, 48, 50, 52, 128,
- 79, 48, 50, 51, 128, 79, 48, 50, 50, 128, 79, 48, 50, 49, 128, 79, 48,
- 50, 48, 65, 128, 79, 48, 50, 48, 128, 79, 48, 49, 57, 65, 128, 79, 48,
- 49, 57, 128, 79, 48, 49, 56, 128, 79, 48, 49, 55, 128, 79, 48, 49, 54,
- 128, 79, 48, 49, 53, 128, 79, 48, 49, 52, 128, 79, 48, 49, 51, 128, 79,
- 48, 49, 50, 128, 79, 48, 49, 49, 128, 79, 48, 49, 48, 67, 128, 79, 48,
- 49, 48, 66, 128, 79, 48, 49, 48, 65, 128, 79, 48, 49, 48, 128, 79, 48,
- 48, 57, 128, 79, 48, 48, 56, 128, 79, 48, 48, 55, 128, 79, 48, 48, 54,
- 70, 128, 79, 48, 48, 54, 69, 128, 79, 48, 48, 54, 68, 128, 79, 48, 48,
- 54, 67, 128, 79, 48, 48, 54, 66, 128, 79, 48, 48, 54, 65, 128, 79, 48,
- 48, 54, 128, 79, 48, 48, 53, 65, 128, 79, 48, 48, 53, 128, 79, 48, 48,
- 52, 128, 79, 48, 48, 51, 128, 79, 48, 48, 50, 128, 79, 48, 48, 49, 65,
- 128, 79, 48, 48, 49, 128, 79, 45, 89, 69, 128, 79, 45, 79, 45, 73, 128,
- 79, 45, 69, 128, 78, 90, 89, 88, 128, 78, 90, 89, 84, 128, 78, 90, 89,
- 82, 88, 128, 78, 90, 89, 82, 128, 78, 90, 89, 80, 128, 78, 90, 89, 128,
- 78, 90, 85, 88, 128, 78, 90, 85, 82, 88, 128, 78, 90, 85, 82, 128, 78,
- 90, 85, 81, 128, 78, 90, 85, 80, 128, 78, 90, 85, 79, 88, 128, 78, 90,
- 85, 79, 128, 78, 90, 85, 206, 78, 90, 85, 128, 78, 90, 79, 88, 128, 78,
- 90, 79, 80, 128, 78, 90, 73, 88, 128, 78, 90, 73, 84, 128, 78, 90, 73,
- 80, 128, 78, 90, 73, 69, 88, 128, 78, 90, 73, 69, 80, 128, 78, 90, 73,
- 69, 128, 78, 90, 73, 128, 78, 90, 69, 88, 128, 78, 90, 69, 85, 77, 128,
- 78, 90, 69, 128, 78, 90, 65, 88, 128, 78, 90, 65, 84, 128, 78, 90, 65,
- 81, 128, 78, 90, 65, 80, 128, 78, 90, 65, 128, 78, 90, 193, 78, 89, 87,
- 65, 128, 78, 89, 85, 88, 128, 78, 89, 85, 85, 128, 78, 89, 85, 84, 128,
- 78, 89, 85, 80, 128, 78, 89, 85, 79, 88, 128, 78, 89, 85, 79, 80, 128,
- 78, 89, 85, 79, 128, 78, 89, 85, 69, 128, 78, 89, 85, 128, 78, 89, 79,
- 88, 128, 78, 89, 79, 84, 128, 78, 89, 79, 80, 128, 78, 89, 79, 79, 128,
+ 69, 196, 79, 80, 69, 78, 45, 79, 128, 79, 80, 69, 78, 45, 207, 79, 80,
+ 69, 78, 45, 72, 69, 65, 68, 69, 196, 79, 80, 69, 78, 45, 67, 73, 82, 67,
+ 85, 73, 84, 45, 79, 85, 84, 80, 85, 212, 79, 80, 69, 78, 128, 79, 79, 90,
+ 69, 128, 79, 79, 89, 65, 78, 78, 65, 128, 79, 79, 85, 128, 79, 79, 77,
+ 85, 128, 79, 79, 72, 128, 79, 79, 69, 128, 79, 79, 66, 79, 79, 70, 73,
+ 76, 73, 128, 79, 78, 85, 128, 79, 78, 83, 85, 128, 79, 78, 78, 128, 79,
+ 78, 75, 65, 82, 128, 79, 78, 69, 83, 69, 76, 70, 128, 79, 78, 69, 45, 87,
+ 65, 217, 79, 78, 69, 45, 84, 72, 73, 82, 84, 89, 128, 79, 78, 69, 45, 76,
+ 73, 78, 197, 79, 78, 67, 79, 77, 73, 78, 199, 79, 78, 65, 80, 128, 79,
+ 77, 73, 83, 83, 73, 79, 206, 79, 77, 73, 67, 82, 79, 78, 128, 79, 77, 73,
+ 67, 82, 79, 206, 79, 77, 69, 71, 65, 128, 79, 77, 69, 71, 193, 79, 77,
+ 65, 76, 79, 78, 128, 79, 76, 73, 86, 69, 128, 79, 76, 73, 71, 79, 206,
+ 79, 76, 68, 128, 79, 75, 84, 207, 79, 75, 65, 82, 65, 128, 79, 75, 65,
+ 82, 193, 79, 74, 73, 66, 87, 65, 217, 79, 74, 69, 79, 78, 128, 79, 73,
+ 76, 128, 79, 73, 204, 79, 72, 77, 128, 79, 72, 205, 79, 71, 82, 69, 128,
+ 79, 71, 79, 78, 69, 75, 128, 79, 71, 79, 78, 69, 203, 79, 71, 72, 65,
+ 205, 79, 70, 70, 73, 67, 69, 82, 128, 79, 70, 70, 73, 67, 69, 128, 79,
+ 70, 70, 73, 67, 197, 79, 70, 70, 128, 79, 69, 89, 128, 79, 69, 75, 128,
+ 79, 69, 69, 128, 79, 68, 69, 78, 128, 79, 68, 68, 128, 79, 68, 196, 79,
+ 67, 84, 79, 80, 85, 83, 128, 79, 67, 84, 79, 66, 69, 82, 128, 79, 67, 84,
+ 69, 212, 79, 67, 84, 65, 71, 79, 78, 128, 79, 67, 210, 79, 67, 76, 79,
+ 67, 75, 128, 79, 67, 67, 76, 85, 83, 73, 79, 78, 128, 79, 66, 83, 84, 82,
+ 85, 67, 84, 73, 79, 78, 128, 79, 66, 79, 76, 211, 79, 66, 79, 204, 79,
+ 66, 79, 70, 73, 76, 73, 128, 79, 66, 76, 73, 81, 85, 197, 79, 66, 74, 69,
+ 67, 212, 79, 66, 69, 76, 85, 83, 128, 79, 66, 69, 76, 79, 83, 128, 79,
+ 66, 128, 79, 65, 89, 128, 79, 65, 75, 128, 79, 65, 66, 79, 65, 70, 73,
+ 76, 73, 128, 79, 193, 79, 48, 53, 49, 128, 79, 48, 53, 48, 66, 128, 79,
+ 48, 53, 48, 65, 128, 79, 48, 53, 48, 128, 79, 48, 52, 57, 128, 79, 48,
+ 52, 56, 128, 79, 48, 52, 55, 128, 79, 48, 52, 54, 128, 79, 48, 52, 53,
+ 128, 79, 48, 52, 52, 128, 79, 48, 52, 51, 128, 79, 48, 52, 50, 128, 79,
+ 48, 52, 49, 128, 79, 48, 52, 48, 128, 79, 48, 51, 57, 128, 79, 48, 51,
+ 56, 128, 79, 48, 51, 55, 128, 79, 48, 51, 54, 68, 128, 79, 48, 51, 54,
+ 67, 128, 79, 48, 51, 54, 66, 128, 79, 48, 51, 54, 65, 128, 79, 48, 51,
+ 54, 128, 79, 48, 51, 53, 128, 79, 48, 51, 52, 128, 79, 48, 51, 51, 65,
+ 128, 79, 48, 51, 51, 128, 79, 48, 51, 50, 128, 79, 48, 51, 49, 128, 79,
+ 48, 51, 48, 65, 128, 79, 48, 51, 48, 128, 79, 48, 50, 57, 65, 128, 79,
+ 48, 50, 57, 128, 79, 48, 50, 56, 128, 79, 48, 50, 55, 128, 79, 48, 50,
+ 54, 128, 79, 48, 50, 53, 65, 128, 79, 48, 50, 53, 128, 79, 48, 50, 52,
+ 65, 128, 79, 48, 50, 52, 128, 79, 48, 50, 51, 128, 79, 48, 50, 50, 128,
+ 79, 48, 50, 49, 128, 79, 48, 50, 48, 65, 128, 79, 48, 50, 48, 128, 79,
+ 48, 49, 57, 65, 128, 79, 48, 49, 57, 128, 79, 48, 49, 56, 128, 79, 48,
+ 49, 55, 128, 79, 48, 49, 54, 128, 79, 48, 49, 53, 128, 79, 48, 49, 52,
+ 128, 79, 48, 49, 51, 128, 79, 48, 49, 50, 128, 79, 48, 49, 49, 128, 79,
+ 48, 49, 48, 67, 128, 79, 48, 49, 48, 66, 128, 79, 48, 49, 48, 65, 128,
+ 79, 48, 49, 48, 128, 79, 48, 48, 57, 128, 79, 48, 48, 56, 128, 79, 48,
+ 48, 55, 128, 79, 48, 48, 54, 70, 128, 79, 48, 48, 54, 69, 128, 79, 48,
+ 48, 54, 68, 128, 79, 48, 48, 54, 67, 128, 79, 48, 48, 54, 66, 128, 79,
+ 48, 48, 54, 65, 128, 79, 48, 48, 54, 128, 79, 48, 48, 53, 65, 128, 79,
+ 48, 48, 53, 128, 79, 48, 48, 52, 128, 79, 48, 48, 51, 128, 79, 48, 48,
+ 50, 128, 79, 48, 48, 49, 65, 128, 79, 48, 48, 49, 128, 79, 45, 89, 69,
+ 128, 79, 45, 79, 45, 73, 128, 79, 45, 69, 128, 78, 90, 89, 88, 128, 78,
+ 90, 89, 84, 128, 78, 90, 89, 82, 88, 128, 78, 90, 89, 82, 128, 78, 90,
+ 89, 80, 128, 78, 90, 89, 128, 78, 90, 85, 88, 128, 78, 90, 85, 82, 88,
+ 128, 78, 90, 85, 82, 128, 78, 90, 85, 81, 128, 78, 90, 85, 80, 128, 78,
+ 90, 85, 79, 88, 128, 78, 90, 85, 79, 128, 78, 90, 85, 206, 78, 90, 85,
+ 128, 78, 90, 79, 88, 128, 78, 90, 79, 80, 128, 78, 90, 73, 88, 128, 78,
+ 90, 73, 84, 128, 78, 90, 73, 80, 128, 78, 90, 73, 69, 88, 128, 78, 90,
+ 73, 69, 80, 128, 78, 90, 73, 69, 128, 78, 90, 73, 128, 78, 90, 69, 88,
+ 128, 78, 90, 69, 85, 77, 128, 78, 90, 69, 128, 78, 90, 65, 88, 128, 78,
+ 90, 65, 84, 128, 78, 90, 65, 81, 128, 78, 90, 65, 80, 128, 78, 90, 65,
+ 128, 78, 90, 193, 78, 89, 87, 65, 128, 78, 89, 85, 88, 128, 78, 89, 85,
+ 85, 128, 78, 89, 85, 84, 128, 78, 89, 85, 80, 128, 78, 89, 85, 79, 88,
+ 128, 78, 89, 85, 79, 80, 128, 78, 89, 85, 79, 128, 78, 89, 85, 78, 128,
+ 78, 89, 85, 69, 128, 78, 89, 85, 128, 78, 89, 79, 88, 128, 78, 89, 79,
+ 84, 128, 78, 89, 79, 80, 128, 78, 89, 79, 79, 128, 78, 89, 79, 78, 128,
78, 89, 79, 65, 128, 78, 89, 79, 128, 78, 89, 74, 65, 128, 78, 89, 73,
88, 128, 78, 89, 73, 84, 128, 78, 89, 73, 212, 78, 89, 73, 211, 78, 89,
73, 210, 78, 89, 73, 80, 128, 78, 89, 73, 78, 45, 68, 79, 128, 78, 89,
- 73, 73, 128, 78, 89, 73, 69, 88, 128, 78, 89, 73, 69, 84, 128, 78, 89,
- 73, 69, 80, 128, 78, 89, 73, 69, 128, 78, 89, 73, 128, 78, 89, 201, 78,
- 89, 72, 65, 128, 78, 89, 69, 84, 128, 78, 89, 69, 212, 78, 89, 69, 72,
- 128, 78, 89, 69, 200, 78, 89, 69, 69, 128, 78, 89, 69, 128, 78, 89, 196,
- 78, 89, 67, 65, 128, 78, 89, 65, 85, 128, 78, 89, 65, 73, 128, 78, 89,
- 65, 72, 128, 78, 89, 65, 69, 77, 65, 69, 128, 78, 89, 65, 65, 128, 78,
- 87, 79, 79, 128, 78, 87, 79, 128, 78, 87, 73, 73, 128, 78, 87, 73, 128,
- 78, 87, 69, 128, 78, 87, 65, 65, 128, 78, 87, 65, 128, 78, 87, 128, 78,
- 86, 128, 78, 85, 88, 128, 78, 85, 85, 78, 128, 78, 85, 85, 128, 78, 85,
- 84, 73, 76, 76, 85, 128, 78, 85, 84, 128, 78, 85, 212, 78, 85, 82, 88,
- 128, 78, 85, 82, 128, 78, 85, 80, 128, 78, 85, 79, 88, 128, 78, 85, 79,
- 80, 128, 78, 85, 79, 128, 78, 85, 78, 85, 90, 128, 78, 85, 78, 85, 218,
- 78, 85, 78, 71, 128, 78, 85, 78, 65, 86, 85, 212, 78, 85, 78, 65, 86, 73,
- 203, 78, 85, 78, 128, 78, 85, 206, 78, 85, 77, 69, 82, 207, 78, 85, 77,
- 69, 82, 65, 84, 79, 210, 78, 85, 77, 69, 82, 65, 204, 78, 85, 77, 66, 69,
- 82, 83, 128, 78, 85, 77, 66, 69, 82, 128, 78, 85, 77, 128, 78, 85, 76,
- 76, 128, 78, 85, 76, 204, 78, 85, 76, 128, 78, 85, 75, 84, 65, 128, 78,
- 85, 69, 78, 71, 128, 78, 85, 69, 128, 78, 85, 66, 73, 65, 206, 78, 85,
- 65, 69, 128, 78, 85, 49, 49, 128, 78, 85, 49, 177, 78, 85, 48, 50, 50,
- 65, 128, 78, 85, 48, 50, 50, 128, 78, 85, 48, 50, 49, 128, 78, 85, 48,
- 50, 48, 128, 78, 85, 48, 49, 57, 128, 78, 85, 48, 49, 56, 65, 128, 78,
- 85, 48, 49, 56, 128, 78, 85, 48, 49, 55, 128, 78, 85, 48, 49, 54, 128,
- 78, 85, 48, 49, 53, 128, 78, 85, 48, 49, 52, 128, 78, 85, 48, 49, 51,
- 128, 78, 85, 48, 49, 50, 128, 78, 85, 48, 49, 49, 65, 128, 78, 85, 48,
- 49, 49, 128, 78, 85, 48, 49, 48, 65, 128, 78, 85, 48, 49, 48, 128, 78,
- 85, 48, 48, 57, 128, 78, 85, 48, 48, 56, 128, 78, 85, 48, 48, 55, 128,
- 78, 85, 48, 48, 54, 128, 78, 85, 48, 48, 53, 128, 78, 85, 48, 48, 52,
- 128, 78, 85, 48, 48, 51, 128, 78, 85, 48, 48, 50, 128, 78, 85, 48, 48,
- 49, 128, 78, 84, 85, 85, 128, 78, 84, 85, 77, 128, 78, 84, 213, 78, 84,
- 79, 81, 80, 69, 78, 128, 78, 84, 73, 69, 197, 78, 84, 69, 85, 78, 71, 66,
- 65, 128, 78, 84, 69, 85, 77, 128, 78, 84, 69, 78, 128, 78, 84, 69, 69,
- 128, 78, 84, 65, 80, 128, 78, 84, 65, 208, 78, 84, 65, 65, 128, 78, 83,
- 85, 79, 212, 78, 83, 85, 78, 128, 78, 83, 85, 77, 128, 78, 83, 79, 77,
- 128, 78, 83, 73, 69, 69, 84, 128, 78, 83, 73, 69, 69, 80, 128, 78, 83,
- 73, 69, 69, 128, 78, 83, 72, 85, 84, 128, 78, 83, 72, 85, 212, 78, 83,
- 72, 85, 79, 80, 128, 78, 83, 72, 85, 69, 128, 78, 83, 72, 73, 69, 69,
- 128, 78, 83, 72, 69, 69, 128, 78, 83, 72, 65, 81, 128, 78, 83, 72, 65,
- 128, 78, 83, 69, 85, 65, 69, 78, 128, 78, 83, 69, 78, 128, 78, 83, 65,
- 128, 78, 82, 89, 88, 128, 78, 82, 89, 84, 128, 78, 82, 89, 82, 88, 128,
- 78, 82, 89, 82, 128, 78, 82, 89, 80, 128, 78, 82, 89, 128, 78, 82, 85,
- 88, 128, 78, 82, 85, 84, 128, 78, 82, 85, 82, 88, 128, 78, 82, 85, 82,
- 128, 78, 82, 85, 80, 128, 78, 82, 85, 128, 78, 82, 79, 88, 128, 78, 82,
- 79, 80, 128, 78, 82, 79, 128, 78, 82, 69, 88, 128, 78, 82, 69, 84, 128,
- 78, 82, 69, 80, 128, 78, 82, 69, 128, 78, 82, 65, 88, 128, 78, 82, 65,
- 84, 128, 78, 82, 65, 80, 128, 78, 82, 65, 128, 78, 79, 89, 128, 78, 79,
- 88, 128, 78, 79, 86, 69, 77, 66, 69, 82, 128, 78, 79, 84, 84, 79, 128,
- 78, 79, 84, 69, 83, 128, 78, 79, 84, 69, 72, 69, 65, 68, 128, 78, 79, 84,
- 69, 72, 69, 65, 196, 78, 79, 84, 69, 66, 79, 79, 75, 128, 78, 79, 84, 69,
- 66, 79, 79, 203, 78, 79, 84, 69, 128, 78, 79, 84, 197, 78, 79, 84, 67,
- 72, 69, 196, 78, 79, 84, 67, 72, 128, 78, 79, 84, 128, 78, 79, 212, 78,
- 79, 83, 69, 128, 78, 79, 82, 84, 72, 87, 69, 83, 212, 78, 79, 82, 84, 72,
- 69, 82, 206, 78, 79, 82, 84, 200, 78, 79, 82, 77, 65, 204, 78, 79, 210,
- 78, 79, 80, 128, 78, 79, 79, 78, 85, 128, 78, 79, 79, 128, 78, 79, 78,
- 70, 79, 82, 75, 73, 78, 71, 128, 78, 79, 78, 45, 80, 79, 84, 65, 66, 76,
- 197, 78, 79, 78, 45, 74, 79, 73, 78, 69, 82, 128, 78, 79, 78, 45, 66, 82,
- 69, 65, 75, 73, 78, 199, 78, 79, 77, 73, 78, 65, 204, 78, 79, 75, 72, 85,
- 75, 128, 78, 79, 68, 69, 128, 78, 79, 65, 128, 78, 79, 45, 66, 82, 69,
- 65, 203, 78, 78, 85, 85, 128, 78, 78, 85, 128, 78, 78, 79, 79, 128, 78,
- 78, 79, 128, 78, 78, 78, 85, 85, 128, 78, 78, 78, 85, 128, 78, 78, 78,
- 79, 79, 128, 78, 78, 78, 79, 128, 78, 78, 78, 73, 73, 128, 78, 78, 78,
- 73, 128, 78, 78, 78, 69, 69, 128, 78, 78, 78, 69, 128, 78, 78, 78, 65,
- 85, 128, 78, 78, 78, 65, 73, 128, 78, 78, 78, 65, 65, 128, 78, 78, 78,
- 65, 128, 78, 78, 78, 128, 78, 78, 72, 65, 128, 78, 78, 71, 79, 79, 128,
- 78, 78, 71, 79, 128, 78, 78, 71, 73, 73, 128, 78, 78, 71, 73, 128, 78,
- 78, 71, 65, 65, 128, 78, 78, 71, 65, 128, 78, 78, 71, 128, 78, 78, 66,
- 83, 80, 128, 78, 77, 128, 78, 76, 48, 50, 48, 128, 78, 76, 48, 49, 57,
- 128, 78, 76, 48, 49, 56, 128, 78, 76, 48, 49, 55, 65, 128, 78, 76, 48,
- 49, 55, 128, 78, 76, 48, 49, 54, 128, 78, 76, 48, 49, 53, 128, 78, 76,
- 48, 49, 52, 128, 78, 76, 48, 49, 51, 128, 78, 76, 48, 49, 50, 128, 78,
- 76, 48, 49, 49, 128, 78, 76, 48, 49, 48, 128, 78, 76, 48, 48, 57, 128,
- 78, 76, 48, 48, 56, 128, 78, 76, 48, 48, 55, 128, 78, 76, 48, 48, 54,
- 128, 78, 76, 48, 48, 53, 65, 128, 78, 76, 48, 48, 53, 128, 78, 76, 48,
- 48, 52, 128, 78, 76, 48, 48, 51, 128, 78, 76, 48, 48, 50, 128, 78, 76,
- 48, 48, 49, 128, 78, 76, 128, 78, 75, 79, 77, 128, 78, 75, 207, 78, 75,
- 73, 78, 68, 73, 128, 78, 75, 65, 65, 82, 65, 69, 128, 78, 74, 89, 88,
- 128, 78, 74, 89, 84, 128, 78, 74, 89, 82, 88, 128, 78, 74, 89, 82, 128,
- 78, 74, 89, 80, 128, 78, 74, 89, 128, 78, 74, 85, 88, 128, 78, 74, 85,
- 82, 88, 128, 78, 74, 85, 82, 128, 78, 74, 85, 81, 65, 128, 78, 74, 85,
- 80, 128, 78, 74, 85, 79, 88, 128, 78, 74, 85, 79, 128, 78, 74, 85, 69,
- 81, 128, 78, 74, 85, 65, 69, 128, 78, 74, 85, 128, 78, 74, 79, 88, 128,
- 78, 74, 79, 84, 128, 78, 74, 79, 80, 128, 78, 74, 79, 79, 128, 78, 74,
- 79, 128, 78, 74, 73, 88, 128, 78, 74, 73, 84, 128, 78, 74, 73, 80, 128,
- 78, 74, 73, 69, 88, 128, 78, 74, 73, 69, 84, 128, 78, 74, 73, 69, 80,
- 128, 78, 74, 73, 69, 69, 128, 78, 74, 73, 69, 128, 78, 74, 73, 128, 78,
- 74, 201, 78, 74, 69, 85, 88, 128, 78, 74, 69, 85, 84, 128, 78, 74, 69,
- 85, 65, 69, 78, 65, 128, 78, 74, 69, 85, 65, 69, 77, 128, 78, 74, 69, 69,
- 69, 69, 128, 78, 74, 69, 69, 128, 78, 74, 69, 197, 78, 74, 69, 128, 78,
- 74, 65, 81, 128, 78, 74, 65, 80, 128, 78, 74, 65, 69, 77, 76, 73, 128,
- 78, 74, 65, 69, 77, 128, 78, 74, 65, 65, 128, 78, 73, 88, 128, 78, 73,
- 84, 82, 69, 128, 78, 73, 83, 65, 71, 128, 78, 73, 82, 85, 71, 85, 128,
- 78, 73, 80, 128, 78, 73, 78, 84, 72, 128, 78, 73, 78, 69, 84, 89, 128,
- 78, 73, 78, 69, 84, 217, 78, 73, 78, 69, 84, 69, 69, 78, 128, 78, 73, 78,
- 69, 84, 69, 69, 206, 78, 73, 78, 69, 45, 84, 72, 73, 82, 84, 89, 128, 78,
- 73, 78, 197, 78, 73, 78, 68, 65, 50, 128, 78, 73, 78, 68, 65, 178, 78,
- 73, 77, 128, 78, 73, 205, 78, 73, 75, 72, 65, 72, 73, 84, 128, 78, 73,
- 75, 65, 72, 73, 84, 128, 78, 73, 75, 65, 128, 78, 73, 72, 83, 72, 86, 65,
- 83, 65, 128, 78, 73, 71, 73, 68, 65, 77, 73, 78, 128, 78, 73, 71, 73, 68,
- 65, 69, 83, 72, 128, 78, 73, 71, 72, 84, 128, 78, 73, 71, 72, 212, 78,
- 73, 71, 71, 65, 72, 73, 84, 65, 128, 78, 73, 69, 88, 128, 78, 73, 69, 85,
- 78, 45, 84, 73, 75, 69, 85, 84, 128, 78, 73, 69, 85, 78, 45, 84, 72, 73,
- 69, 85, 84, 72, 128, 78, 73, 69, 85, 78, 45, 83, 73, 79, 83, 128, 78, 73,
- 69, 85, 78, 45, 82, 73, 69, 85, 76, 128, 78, 73, 69, 85, 78, 45, 80, 73,
- 69, 85, 80, 128, 78, 73, 69, 85, 78, 45, 80, 65, 78, 83, 73, 79, 83, 128,
- 78, 73, 69, 85, 78, 45, 75, 73, 89, 69, 79, 75, 128, 78, 73, 69, 85, 78,
- 45, 72, 73, 69, 85, 72, 128, 78, 73, 69, 85, 78, 45, 67, 73, 69, 85, 67,
- 128, 78, 73, 69, 85, 78, 45, 67, 72, 73, 69, 85, 67, 72, 128, 78, 73, 69,
- 85, 206, 78, 73, 69, 80, 128, 78, 73, 69, 128, 78, 73, 66, 128, 78, 73,
- 65, 128, 78, 73, 50, 128, 78, 72, 85, 69, 128, 78, 72, 74, 65, 128, 78,
- 72, 128, 78, 71, 89, 69, 128, 78, 71, 86, 69, 128, 78, 71, 85, 85, 128,
- 78, 71, 85, 79, 88, 128, 78, 71, 85, 79, 84, 128, 78, 71, 85, 79, 128,
- 78, 71, 85, 65, 69, 84, 128, 78, 71, 85, 65, 69, 128, 78, 71, 79, 88,
- 128, 78, 71, 79, 85, 128, 78, 71, 79, 213, 78, 71, 79, 84, 128, 78, 71,
- 79, 81, 128, 78, 71, 79, 80, 128, 78, 71, 79, 78, 128, 78, 71, 79, 77,
- 128, 78, 71, 79, 69, 72, 128, 78, 71, 79, 69, 200, 78, 71, 207, 78, 71,
- 75, 89, 69, 69, 128, 78, 71, 75, 87, 65, 69, 78, 128, 78, 71, 75, 85, 80,
- 128, 78, 71, 75, 85, 78, 128, 78, 71, 75, 85, 77, 128, 78, 71, 75, 85,
- 69, 78, 90, 69, 85, 77, 128, 78, 71, 75, 85, 197, 78, 71, 75, 73, 78, 68,
- 201, 78, 71, 75, 73, 69, 69, 128, 78, 71, 75, 69, 85, 88, 128, 78, 71,
- 75, 69, 85, 82, 73, 128, 78, 71, 75, 69, 85, 65, 69, 81, 128, 78, 71, 75,
- 69, 85, 65, 69, 77, 128, 78, 71, 75, 65, 81, 128, 78, 71, 75, 65, 80,
- 128, 78, 71, 75, 65, 65, 77, 73, 128, 78, 71, 75, 65, 128, 78, 71, 73,
- 69, 88, 128, 78, 71, 73, 69, 80, 128, 78, 71, 73, 69, 128, 78, 71, 72,
- 65, 128, 78, 71, 71, 87, 65, 69, 78, 128, 78, 71, 71, 85, 82, 65, 69,
- 128, 78, 71, 71, 85, 80, 128, 78, 71, 71, 85, 79, 81, 128, 78, 71, 71,
- 85, 79, 209, 78, 71, 71, 85, 79, 78, 128, 78, 71, 71, 85, 79, 77, 128,
- 78, 71, 71, 85, 77, 128, 78, 71, 71, 85, 69, 69, 84, 128, 78, 71, 71, 85,
- 65, 69, 83, 72, 65, 197, 78, 71, 71, 85, 65, 69, 206, 78, 71, 71, 85,
+ 73, 78, 128, 78, 89, 73, 73, 128, 78, 89, 73, 69, 88, 128, 78, 89, 73,
+ 69, 84, 128, 78, 89, 73, 69, 80, 128, 78, 89, 73, 69, 128, 78, 89, 73,
+ 128, 78, 89, 201, 78, 89, 72, 65, 128, 78, 89, 69, 84, 128, 78, 89, 69,
+ 212, 78, 89, 69, 78, 128, 78, 89, 69, 72, 128, 78, 89, 69, 200, 78, 89,
+ 69, 69, 128, 78, 89, 69, 128, 78, 89, 196, 78, 89, 67, 65, 128, 78, 89,
+ 65, 85, 128, 78, 89, 65, 73, 128, 78, 89, 65, 72, 128, 78, 89, 65, 69,
+ 77, 65, 69, 128, 78, 89, 65, 65, 128, 78, 87, 79, 79, 128, 78, 87, 79,
+ 128, 78, 87, 73, 73, 128, 78, 87, 73, 128, 78, 87, 69, 128, 78, 87, 65,
+ 65, 128, 78, 87, 65, 128, 78, 87, 128, 78, 86, 128, 78, 85, 88, 128, 78,
+ 85, 85, 78, 128, 78, 85, 85, 128, 78, 85, 84, 73, 76, 76, 85, 128, 78,
+ 85, 84, 128, 78, 85, 212, 78, 85, 82, 88, 128, 78, 85, 82, 128, 78, 85,
+ 80, 128, 78, 85, 79, 88, 128, 78, 85, 79, 80, 128, 78, 85, 79, 128, 78,
+ 85, 78, 85, 90, 128, 78, 85, 78, 85, 218, 78, 85, 78, 71, 128, 78, 85,
+ 78, 65, 86, 85, 212, 78, 85, 78, 65, 86, 73, 203, 78, 85, 78, 128, 78,
+ 85, 206, 78, 85, 77, 69, 82, 207, 78, 85, 77, 69, 82, 65, 84, 79, 210,
+ 78, 85, 77, 69, 82, 65, 204, 78, 85, 77, 66, 69, 82, 83, 128, 78, 85, 77,
+ 66, 69, 82, 128, 78, 85, 77, 128, 78, 85, 76, 76, 128, 78, 85, 76, 204,
+ 78, 85, 76, 128, 78, 85, 75, 84, 65, 128, 78, 85, 69, 78, 71, 128, 78,
+ 85, 69, 128, 78, 85, 66, 73, 65, 206, 78, 85, 65, 69, 128, 78, 85, 49,
+ 49, 128, 78, 85, 49, 177, 78, 85, 48, 50, 50, 65, 128, 78, 85, 48, 50,
+ 50, 128, 78, 85, 48, 50, 49, 128, 78, 85, 48, 50, 48, 128, 78, 85, 48,
+ 49, 57, 128, 78, 85, 48, 49, 56, 65, 128, 78, 85, 48, 49, 56, 128, 78,
+ 85, 48, 49, 55, 128, 78, 85, 48, 49, 54, 128, 78, 85, 48, 49, 53, 128,
+ 78, 85, 48, 49, 52, 128, 78, 85, 48, 49, 51, 128, 78, 85, 48, 49, 50,
+ 128, 78, 85, 48, 49, 49, 65, 128, 78, 85, 48, 49, 49, 128, 78, 85, 48,
+ 49, 48, 65, 128, 78, 85, 48, 49, 48, 128, 78, 85, 48, 48, 57, 128, 78,
+ 85, 48, 48, 56, 128, 78, 85, 48, 48, 55, 128, 78, 85, 48, 48, 54, 128,
+ 78, 85, 48, 48, 53, 128, 78, 85, 48, 48, 52, 128, 78, 85, 48, 48, 51,
+ 128, 78, 85, 48, 48, 50, 128, 78, 85, 48, 48, 49, 128, 78, 84, 88, 73,
+ 86, 128, 78, 84, 85, 85, 128, 78, 84, 85, 77, 128, 78, 84, 85, 74, 128,
+ 78, 84, 213, 78, 84, 83, 65, 85, 128, 78, 84, 79, 81, 80, 69, 78, 128,
+ 78, 84, 79, 71, 128, 78, 84, 79, 199, 78, 84, 73, 69, 197, 78, 84, 72,
+ 65, 85, 128, 78, 84, 69, 85, 78, 71, 66, 65, 128, 78, 84, 69, 85, 77,
+ 128, 78, 84, 69, 78, 128, 78, 84, 69, 69, 128, 78, 84, 65, 80, 128, 78,
+ 84, 65, 208, 78, 84, 65, 65, 128, 78, 83, 85, 79, 212, 78, 83, 85, 78,
+ 128, 78, 83, 85, 77, 128, 78, 83, 79, 77, 128, 78, 83, 73, 69, 69, 84,
+ 128, 78, 83, 73, 69, 69, 80, 128, 78, 83, 73, 69, 69, 128, 78, 83, 72,
+ 85, 84, 128, 78, 83, 72, 85, 212, 78, 83, 72, 85, 79, 80, 128, 78, 83,
+ 72, 85, 69, 128, 78, 83, 72, 73, 69, 69, 128, 78, 83, 72, 69, 69, 128,
+ 78, 83, 72, 65, 81, 128, 78, 83, 72, 65, 128, 78, 83, 69, 85, 65, 69, 78,
+ 128, 78, 83, 69, 78, 128, 78, 83, 65, 128, 78, 82, 89, 88, 128, 78, 82,
+ 89, 84, 128, 78, 82, 89, 82, 88, 128, 78, 82, 89, 82, 128, 78, 82, 89,
+ 80, 128, 78, 82, 89, 128, 78, 82, 85, 88, 128, 78, 82, 85, 84, 128, 78,
+ 82, 85, 82, 88, 128, 78, 82, 85, 82, 128, 78, 82, 85, 80, 128, 78, 82,
+ 85, 65, 128, 78, 82, 85, 128, 78, 82, 79, 88, 128, 78, 82, 79, 80, 128,
+ 78, 82, 79, 128, 78, 82, 69, 88, 128, 78, 82, 69, 84, 128, 78, 82, 69,
+ 211, 78, 82, 69, 80, 128, 78, 82, 69, 128, 78, 82, 65, 88, 128, 78, 82,
+ 65, 84, 128, 78, 82, 65, 80, 128, 78, 82, 65, 128, 78, 81, 73, 71, 128,
+ 78, 79, 89, 128, 78, 79, 88, 128, 78, 79, 87, 67, 128, 78, 79, 86, 69,
+ 77, 66, 69, 82, 128, 78, 79, 84, 84, 79, 128, 78, 79, 84, 69, 83, 128,
+ 78, 79, 84, 69, 72, 69, 65, 68, 128, 78, 79, 84, 69, 72, 69, 65, 196, 78,
+ 79, 84, 69, 66, 79, 79, 75, 128, 78, 79, 84, 69, 66, 79, 79, 203, 78, 79,
+ 84, 69, 128, 78, 79, 84, 197, 78, 79, 84, 67, 72, 69, 196, 78, 79, 84,
+ 67, 72, 128, 78, 79, 84, 65, 84, 73, 79, 206, 78, 79, 84, 128, 78, 79,
+ 212, 78, 79, 83, 69, 128, 78, 79, 83, 197, 78, 79, 82, 84, 72, 87, 69,
+ 83, 212, 78, 79, 82, 84, 72, 69, 82, 206, 78, 79, 82, 84, 72, 69, 65, 83,
+ 84, 45, 80, 79, 73, 78, 84, 73, 78, 199, 78, 79, 82, 77, 65, 204, 78, 79,
+ 82, 68, 73, 195, 78, 79, 210, 78, 79, 80, 128, 78, 79, 79, 78, 85, 128,
+ 78, 79, 79, 128, 78, 79, 78, 70, 79, 82, 75, 73, 78, 71, 128, 78, 79, 78,
+ 45, 80, 79, 84, 65, 66, 76, 197, 78, 79, 78, 45, 74, 79, 73, 78, 69, 82,
+ 128, 78, 79, 78, 45, 66, 82, 69, 65, 75, 73, 78, 199, 78, 79, 78, 128,
+ 78, 79, 77, 73, 78, 65, 204, 78, 79, 75, 72, 85, 75, 128, 78, 79, 68, 69,
+ 128, 78, 79, 65, 128, 78, 79, 45, 66, 82, 69, 65, 203, 78, 78, 85, 85,
+ 128, 78, 78, 85, 128, 78, 78, 79, 79, 128, 78, 78, 79, 128, 78, 78, 78,
+ 85, 85, 128, 78, 78, 78, 85, 128, 78, 78, 78, 79, 79, 128, 78, 78, 78,
+ 79, 128, 78, 78, 78, 73, 73, 128, 78, 78, 78, 73, 128, 78, 78, 78, 69,
+ 69, 128, 78, 78, 78, 69, 128, 78, 78, 78, 65, 85, 128, 78, 78, 78, 65,
+ 73, 128, 78, 78, 78, 65, 65, 128, 78, 78, 78, 65, 128, 78, 78, 78, 128,
+ 78, 78, 72, 65, 128, 78, 78, 71, 79, 79, 128, 78, 78, 71, 79, 128, 78,
+ 78, 71, 73, 73, 128, 78, 78, 71, 73, 128, 78, 78, 71, 65, 65, 128, 78,
+ 78, 71, 65, 128, 78, 78, 71, 128, 78, 78, 66, 83, 80, 128, 78, 77, 128,
+ 78, 76, 65, 85, 128, 78, 76, 48, 50, 48, 128, 78, 76, 48, 49, 57, 128,
+ 78, 76, 48, 49, 56, 128, 78, 76, 48, 49, 55, 65, 128, 78, 76, 48, 49, 55,
+ 128, 78, 76, 48, 49, 54, 128, 78, 76, 48, 49, 53, 128, 78, 76, 48, 49,
+ 52, 128, 78, 76, 48, 49, 51, 128, 78, 76, 48, 49, 50, 128, 78, 76, 48,
+ 49, 49, 128, 78, 76, 48, 49, 48, 128, 78, 76, 48, 48, 57, 128, 78, 76,
+ 48, 48, 56, 128, 78, 76, 48, 48, 55, 128, 78, 76, 48, 48, 54, 128, 78,
+ 76, 48, 48, 53, 65, 128, 78, 76, 48, 48, 53, 128, 78, 76, 48, 48, 52,
+ 128, 78, 76, 48, 48, 51, 128, 78, 76, 48, 48, 50, 128, 78, 76, 48, 48,
+ 49, 128, 78, 76, 128, 78, 75, 79, 77, 128, 78, 75, 207, 78, 75, 73, 78,
+ 68, 73, 128, 78, 75, 65, 85, 128, 78, 75, 65, 65, 82, 65, 69, 128, 78,
+ 74, 89, 88, 128, 78, 74, 89, 84, 128, 78, 74, 89, 82, 88, 128, 78, 74,
+ 89, 82, 128, 78, 74, 89, 80, 128, 78, 74, 89, 128, 78, 74, 85, 88, 128,
+ 78, 74, 85, 82, 88, 128, 78, 74, 85, 82, 128, 78, 74, 85, 81, 65, 128,
+ 78, 74, 85, 80, 128, 78, 74, 85, 79, 88, 128, 78, 74, 85, 79, 128, 78,
+ 74, 85, 69, 81, 128, 78, 74, 85, 65, 69, 128, 78, 74, 85, 128, 78, 74,
+ 79, 88, 128, 78, 74, 79, 84, 128, 78, 74, 79, 80, 128, 78, 74, 79, 79,
+ 128, 78, 74, 79, 128, 78, 74, 73, 88, 128, 78, 74, 73, 84, 128, 78, 74,
+ 73, 80, 128, 78, 74, 73, 69, 88, 128, 78, 74, 73, 69, 84, 128, 78, 74,
+ 73, 69, 80, 128, 78, 74, 73, 69, 69, 128, 78, 74, 73, 69, 128, 78, 74,
+ 73, 128, 78, 74, 201, 78, 74, 69, 85, 88, 128, 78, 74, 69, 85, 84, 128,
+ 78, 74, 69, 85, 65, 69, 78, 65, 128, 78, 74, 69, 85, 65, 69, 77, 128, 78,
+ 74, 69, 69, 69, 69, 128, 78, 74, 69, 69, 128, 78, 74, 69, 197, 78, 74,
+ 69, 128, 78, 74, 65, 81, 128, 78, 74, 65, 80, 128, 78, 74, 65, 69, 77,
+ 76, 73, 128, 78, 74, 65, 69, 77, 128, 78, 74, 65, 65, 128, 78, 73, 88,
+ 128, 78, 73, 84, 82, 69, 128, 78, 73, 83, 65, 71, 128, 78, 73, 82, 85,
+ 71, 85, 128, 78, 73, 80, 128, 78, 73, 78, 84, 72, 128, 78, 73, 78, 69,
+ 84, 89, 128, 78, 73, 78, 69, 84, 217, 78, 73, 78, 69, 84, 69, 69, 78,
+ 128, 78, 73, 78, 69, 84, 69, 69, 206, 78, 73, 78, 69, 45, 84, 72, 73, 82,
+ 84, 89, 128, 78, 73, 78, 197, 78, 73, 78, 68, 65, 50, 128, 78, 73, 78,
+ 68, 65, 178, 78, 73, 78, 57, 128, 78, 73, 78, 128, 78, 73, 77, 128, 78,
+ 73, 205, 78, 73, 75, 79, 76, 83, 66, 85, 82, 199, 78, 73, 75, 72, 65, 72,
+ 73, 84, 128, 78, 73, 75, 65, 72, 73, 84, 128, 78, 73, 75, 65, 128, 78,
+ 73, 72, 83, 72, 86, 65, 83, 65, 128, 78, 73, 71, 73, 68, 65, 77, 73, 78,
+ 128, 78, 73, 71, 73, 68, 65, 69, 83, 72, 128, 78, 73, 71, 72, 84, 128,
+ 78, 73, 71, 72, 212, 78, 73, 71, 71, 65, 72, 73, 84, 65, 128, 78, 73, 69,
+ 88, 128, 78, 73, 69, 85, 78, 45, 84, 73, 75, 69, 85, 84, 128, 78, 73, 69,
+ 85, 78, 45, 84, 72, 73, 69, 85, 84, 72, 128, 78, 73, 69, 85, 78, 45, 83,
+ 73, 79, 83, 128, 78, 73, 69, 85, 78, 45, 82, 73, 69, 85, 76, 128, 78, 73,
+ 69, 85, 78, 45, 80, 73, 69, 85, 80, 128, 78, 73, 69, 85, 78, 45, 80, 65,
+ 78, 83, 73, 79, 83, 128, 78, 73, 69, 85, 78, 45, 75, 73, 89, 69, 79, 75,
+ 128, 78, 73, 69, 85, 78, 45, 72, 73, 69, 85, 72, 128, 78, 73, 69, 85, 78,
+ 45, 67, 73, 69, 85, 67, 128, 78, 73, 69, 85, 78, 45, 67, 72, 73, 69, 85,
+ 67, 72, 128, 78, 73, 69, 85, 206, 78, 73, 69, 80, 128, 78, 73, 69, 128,
+ 78, 73, 66, 128, 78, 73, 65, 128, 78, 73, 50, 128, 78, 72, 85, 69, 128,
+ 78, 72, 74, 65, 128, 78, 72, 128, 78, 71, 89, 69, 128, 78, 71, 86, 69,
+ 128, 78, 71, 85, 85, 128, 78, 71, 85, 79, 88, 128, 78, 71, 85, 79, 84,
+ 128, 78, 71, 85, 79, 128, 78, 71, 85, 65, 78, 128, 78, 71, 85, 65, 69,
+ 84, 128, 78, 71, 85, 65, 69, 128, 78, 71, 79, 88, 128, 78, 71, 79, 85,
+ 128, 78, 71, 79, 213, 78, 71, 79, 84, 128, 78, 71, 79, 81, 128, 78, 71,
+ 79, 80, 128, 78, 71, 79, 78, 128, 78, 71, 79, 77, 128, 78, 71, 79, 69,
+ 72, 128, 78, 71, 79, 69, 200, 78, 71, 207, 78, 71, 75, 89, 69, 69, 128,
+ 78, 71, 75, 87, 65, 69, 78, 128, 78, 71, 75, 85, 80, 128, 78, 71, 75, 85,
+ 78, 128, 78, 71, 75, 85, 77, 128, 78, 71, 75, 85, 69, 78, 90, 69, 85, 77,
+ 128, 78, 71, 75, 85, 197, 78, 71, 75, 73, 78, 68, 201, 78, 71, 75, 73,
+ 69, 69, 128, 78, 71, 75, 69, 85, 88, 128, 78, 71, 75, 69, 85, 82, 73,
+ 128, 78, 71, 75, 69, 85, 65, 69, 81, 128, 78, 71, 75, 69, 85, 65, 69, 77,
+ 128, 78, 71, 75, 65, 81, 128, 78, 71, 75, 65, 80, 128, 78, 71, 75, 65,
+ 65, 77, 73, 128, 78, 71, 75, 65, 128, 78, 71, 73, 69, 88, 128, 78, 71,
+ 73, 69, 80, 128, 78, 71, 73, 69, 128, 78, 71, 72, 65, 128, 78, 71, 71,
+ 87, 65, 69, 78, 128, 78, 71, 71, 85, 82, 65, 69, 128, 78, 71, 71, 85, 80,
+ 128, 78, 71, 71, 85, 79, 81, 128, 78, 71, 71, 85, 79, 209, 78, 71, 71,
+ 85, 79, 78, 128, 78, 71, 71, 85, 79, 77, 128, 78, 71, 71, 85, 77, 128,
+ 78, 71, 71, 85, 69, 69, 84, 128, 78, 71, 71, 85, 65, 69, 83, 72, 65, 197,
+ 78, 71, 71, 85, 65, 69, 206, 78, 71, 71, 85, 65, 128, 78, 71, 71, 85,
128, 78, 71, 71, 79, 79, 128, 78, 71, 71, 79, 128, 78, 71, 71, 73, 128,
78, 71, 71, 69, 85, 88, 128, 78, 71, 71, 69, 85, 65, 69, 84, 128, 78, 71,
71, 69, 85, 65, 69, 128, 78, 71, 71, 69, 213, 78, 71, 71, 69, 78, 128,
78, 71, 71, 69, 69, 84, 128, 78, 71, 71, 69, 69, 69, 69, 128, 78, 71, 71,
69, 69, 128, 78, 71, 71, 69, 128, 78, 71, 71, 65, 80, 128, 78, 71, 71,
- 65, 65, 77, 65, 69, 128, 78, 71, 71, 65, 65, 77, 128, 78, 71, 71, 128,
- 78, 71, 69, 88, 128, 78, 71, 69, 85, 82, 69, 85, 84, 128, 78, 71, 69, 80,
- 128, 78, 71, 69, 78, 128, 78, 71, 69, 69, 128, 78, 71, 69, 65, 68, 65,
- 76, 128, 78, 71, 65, 88, 128, 78, 71, 65, 85, 128, 78, 71, 65, 84, 128,
- 78, 71, 65, 211, 78, 71, 65, 81, 128, 78, 71, 65, 80, 128, 78, 71, 65,
- 78, 71, 85, 128, 78, 71, 65, 78, 128, 78, 71, 65, 73, 128, 78, 71, 65,
- 72, 128, 78, 71, 65, 65, 73, 128, 78, 71, 193, 78, 70, 128, 78, 69, 88,
- 212, 78, 69, 88, 128, 78, 69, 87, 83, 80, 65, 80, 69, 82, 128, 78, 69,
- 87, 76, 73, 78, 69, 128, 78, 69, 87, 128, 78, 69, 85, 84, 82, 65, 204,
- 78, 69, 85, 84, 69, 82, 128, 78, 69, 84, 128, 78, 69, 212, 78, 69, 83,
- 84, 69, 196, 78, 69, 81, 85, 68, 65, 65, 128, 78, 69, 80, 84, 85, 78, 69,
- 128, 78, 69, 80, 128, 78, 69, 79, 128, 78, 69, 207, 78, 69, 78, 65, 78,
- 79, 128, 78, 69, 78, 128, 78, 69, 76, 128, 78, 69, 73, 84, 72, 69, 210,
- 78, 69, 71, 65, 84, 73, 79, 206, 78, 69, 71, 65, 84, 69, 196, 78, 69, 67,
- 75, 84, 73, 69, 128, 78, 69, 66, 69, 78, 83, 84, 73, 77, 77, 69, 128, 78,
- 68, 85, 88, 128, 78, 68, 85, 84, 128, 78, 68, 85, 82, 88, 128, 78, 68,
- 85, 82, 128, 78, 68, 85, 80, 128, 78, 68, 85, 78, 128, 78, 68, 213, 78,
- 68, 79, 88, 128, 78, 68, 79, 84, 128, 78, 68, 79, 80, 128, 78, 68, 79,
- 79, 128, 78, 68, 79, 78, 128, 78, 68, 79, 77, 66, 85, 128, 78, 68, 79,
- 76, 197, 78, 68, 73, 88, 128, 78, 68, 73, 84, 128, 78, 68, 73, 81, 128,
- 78, 68, 73, 80, 128, 78, 68, 73, 69, 88, 128, 78, 68, 73, 69, 128, 78,
- 68, 73, 68, 65, 128, 78, 68, 73, 65, 81, 128, 78, 68, 69, 88, 128, 78,
- 68, 69, 85, 88, 128, 78, 68, 69, 85, 84, 128, 78, 68, 69, 85, 65, 69, 82,
- 69, 69, 128, 78, 68, 69, 80, 128, 78, 68, 69, 69, 128, 78, 68, 69, 128,
- 78, 68, 65, 88, 128, 78, 68, 65, 84, 128, 78, 68, 65, 80, 128, 78, 68,
- 65, 77, 128, 78, 68, 65, 65, 78, 71, 71, 69, 85, 65, 69, 84, 128, 78, 68,
- 65, 65, 128, 78, 68, 65, 193, 78, 66, 89, 88, 128, 78, 66, 89, 84, 128,
- 78, 66, 89, 82, 88, 128, 78, 66, 89, 82, 128, 78, 66, 89, 80, 128, 78,
- 66, 89, 128, 78, 66, 85, 88, 128, 78, 66, 85, 84, 128, 78, 66, 85, 82,
- 88, 128, 78, 66, 85, 82, 128, 78, 66, 85, 80, 128, 78, 66, 85, 128, 78,
- 66, 79, 88, 128, 78, 66, 79, 84, 128, 78, 66, 79, 80, 128, 78, 66, 79,
- 128, 78, 66, 73, 88, 128, 78, 66, 73, 84, 128, 78, 66, 73, 80, 128, 78,
- 66, 73, 69, 88, 128, 78, 66, 73, 69, 80, 128, 78, 66, 73, 69, 128, 78,
- 66, 73, 128, 78, 66, 72, 128, 78, 66, 65, 88, 128, 78, 66, 65, 84, 128,
- 78, 66, 65, 80, 128, 78, 66, 65, 128, 78, 65, 89, 65, 78, 78, 65, 128,
- 78, 65, 89, 128, 78, 65, 88, 73, 65, 206, 78, 65, 88, 128, 78, 65, 85,
- 84, 72, 83, 128, 78, 65, 85, 68, 73, 218, 78, 65, 84, 85, 82, 65, 204,
- 78, 65, 84, 73, 79, 78, 65, 204, 78, 65, 83, 75, 65, 80, 201, 78, 65, 83,
- 72, 73, 128, 78, 65, 83, 65, 76, 73, 90, 65, 84, 73, 79, 78, 128, 78, 65,
- 83, 65, 76, 73, 90, 65, 84, 73, 79, 206, 78, 65, 82, 82, 79, 215, 78, 65,
- 82, 128, 78, 65, 81, 128, 78, 65, 79, 211, 78, 65, 78, 83, 65, 78, 65,
- 81, 128, 78, 65, 78, 71, 77, 79, 78, 84, 72, 79, 128, 78, 65, 78, 68,
- 128, 78, 65, 78, 65, 128, 78, 65, 77, 69, 128, 78, 65, 77, 197, 78, 65,
- 77, 50, 128, 78, 65, 77, 128, 78, 65, 75, 128, 78, 65, 73, 82, 193, 78,
- 65, 73, 204, 78, 65, 71, 82, 201, 78, 65, 71, 65, 82, 128, 78, 65, 71,
- 65, 128, 78, 65, 71, 193, 78, 65, 71, 128, 78, 65, 199, 78, 65, 69, 128,
- 78, 65, 66, 76, 65, 128, 78, 65, 65, 83, 73, 75, 89, 65, 89, 65, 128, 78,
- 65, 65, 75, 83, 73, 75, 89, 65, 89, 65, 128, 78, 65, 65, 73, 128, 78, 65,
- 193, 78, 65, 50, 128, 78, 65, 45, 50, 128, 78, 48, 52, 50, 128, 78, 48,
- 52, 49, 128, 78, 48, 52, 48, 128, 78, 48, 51, 57, 128, 78, 48, 51, 56,
- 128, 78, 48, 51, 55, 65, 128, 78, 48, 51, 55, 128, 78, 48, 51, 54, 128,
- 78, 48, 51, 53, 65, 128, 78, 48, 51, 53, 128, 78, 48, 51, 52, 65, 128,
- 78, 48, 51, 52, 128, 78, 48, 51, 51, 65, 128, 78, 48, 51, 51, 128, 78,
- 48, 51, 50, 128, 78, 48, 51, 49, 128, 78, 48, 51, 48, 128, 78, 48, 50,
- 57, 128, 78, 48, 50, 56, 128, 78, 48, 50, 55, 128, 78, 48, 50, 54, 128,
- 78, 48, 50, 53, 65, 128, 78, 48, 50, 53, 128, 78, 48, 50, 52, 128, 78,
- 48, 50, 51, 128, 78, 48, 50, 50, 128, 78, 48, 50, 49, 128, 78, 48, 50,
- 48, 128, 78, 48, 49, 57, 128, 78, 48, 49, 56, 66, 128, 78, 48, 49, 56,
- 65, 128, 78, 48, 49, 56, 128, 78, 48, 49, 55, 128, 78, 48, 49, 54, 128,
- 78, 48, 49, 53, 128, 78, 48, 49, 52, 128, 78, 48, 49, 51, 128, 78, 48,
- 49, 50, 128, 78, 48, 49, 49, 128, 78, 48, 49, 48, 128, 78, 48, 48, 57,
- 128, 78, 48, 48, 56, 128, 78, 48, 48, 55, 128, 78, 48, 48, 54, 128, 78,
- 48, 48, 53, 128, 78, 48, 48, 52, 128, 78, 48, 48, 51, 128, 78, 48, 48,
- 50, 128, 78, 48, 48, 49, 128, 78, 45, 67, 82, 69, 197, 78, 45, 65, 82,
- 217, 77, 89, 88, 128, 77, 89, 84, 128, 77, 89, 83, 76, 73, 84, 69, 128,
- 77, 89, 80, 128, 77, 89, 65, 128, 77, 89, 193, 77, 89, 128, 77, 217, 77,
- 87, 79, 79, 128, 77, 87, 79, 128, 77, 87, 73, 73, 128, 77, 87, 73, 128,
- 77, 87, 69, 69, 128, 77, 87, 69, 128, 77, 87, 65, 65, 128, 77, 87, 65,
- 128, 77, 87, 128, 77, 215, 77, 86, 83, 128, 77, 86, 79, 80, 128, 77, 86,
- 73, 128, 77, 86, 69, 85, 65, 69, 78, 71, 65, 77, 128, 77, 86, 128, 77,
- 214, 77, 85, 88, 128, 77, 85, 85, 83, 73, 75, 65, 84, 79, 65, 78, 128,
- 77, 85, 85, 82, 68, 72, 65, 74, 193, 77, 85, 85, 128, 77, 85, 84, 128,
- 77, 85, 83, 73, 67, 128, 77, 85, 83, 73, 195, 77, 85, 83, 72, 82, 79, 79,
- 77, 128, 77, 85, 83, 72, 51, 128, 77, 85, 83, 72, 179, 77, 85, 83, 72,
- 128, 77, 85, 83, 200, 77, 85, 82, 88, 128, 77, 85, 82, 71, 85, 50, 128,
- 77, 85, 82, 69, 128, 77, 85, 82, 68, 65, 128, 77, 85, 82, 68, 193, 77,
- 85, 82, 128, 77, 85, 81, 68, 65, 77, 128, 77, 85, 80, 128, 77, 85, 79,
- 88, 128, 77, 85, 79, 84, 128, 77, 85, 79, 80, 128, 77, 85, 79, 77, 65,
- 69, 128, 77, 85, 79, 128, 77, 85, 78, 83, 85, 66, 128, 77, 85, 78, 65,
- 72, 128, 77, 85, 76, 84, 73, 83, 69, 84, 128, 77, 85, 76, 84, 73, 83, 69,
- 212, 77, 85, 76, 84, 73, 80, 76, 73, 67, 65, 84, 73, 79, 78, 128, 77, 85,
- 76, 84, 73, 80, 76, 73, 67, 65, 84, 73, 79, 206, 77, 85, 76, 84, 73, 80,
- 76, 197, 77, 85, 76, 84, 73, 79, 67, 85, 76, 65, 210, 77, 85, 76, 84, 73,
- 77, 65, 80, 128, 77, 85, 76, 84, 201, 77, 85, 75, 80, 72, 82, 69, 78, 71,
- 128, 77, 85, 73, 78, 128, 77, 85, 71, 83, 128, 77, 85, 71, 128, 77, 85,
- 199, 77, 85, 69, 128, 77, 85, 67, 72, 128, 77, 85, 67, 200, 77, 85, 67,
- 65, 65, 68, 128, 77, 85, 65, 78, 128, 77, 85, 65, 69, 128, 77, 85, 45,
- 71, 65, 65, 72, 76, 65, 193, 77, 213, 77, 83, 128, 77, 80, 65, 128, 77,
- 79, 89, 65, 73, 128, 77, 79, 88, 128, 77, 79, 86, 73, 197, 77, 79, 86,
- 69, 196, 77, 79, 85, 84, 72, 128, 77, 79, 85, 84, 200, 77, 79, 85, 83,
- 69, 128, 77, 79, 85, 83, 197, 77, 79, 85, 78, 84, 65, 73, 78, 83, 128,
- 77, 79, 85, 78, 84, 65, 73, 78, 128, 77, 79, 85, 78, 84, 65, 73, 206, 77,
- 79, 85, 78, 212, 77, 79, 85, 78, 68, 128, 77, 79, 85, 78, 196, 77, 79,
- 84, 72, 69, 82, 128, 77, 79, 84, 128, 77, 79, 82, 84, 85, 85, 77, 128,
- 77, 79, 82, 84, 65, 82, 128, 77, 79, 82, 80, 72, 79, 76, 79, 71, 73, 67,
- 65, 204, 77, 79, 82, 78, 73, 78, 71, 128, 77, 79, 80, 128, 77, 79, 79,
- 83, 69, 45, 67, 82, 69, 197, 77, 79, 79, 78, 128, 77, 79, 79, 206, 77,
- 79, 79, 77, 80, 85, 81, 128, 77, 79, 79, 77, 69, 85, 84, 128, 77, 79, 79,
- 128, 77, 79, 78, 84, 73, 69, 69, 78, 128, 77, 79, 78, 84, 72, 128, 77,
- 79, 78, 84, 200, 77, 79, 78, 83, 84, 69, 82, 128, 77, 79, 78, 79, 83, 84,
- 65, 66, 76, 197, 77, 79, 78, 79, 83, 80, 65, 67, 197, 77, 79, 78, 79, 82,
- 65, 73, 76, 128, 77, 79, 78, 79, 71, 82, 65, 80, 200, 77, 79, 78, 79, 71,
- 82, 65, 77, 77, 79, 211, 77, 79, 78, 79, 71, 82, 65, 205, 77, 79, 78, 79,
- 70, 79, 78, 73, 65, 83, 128, 77, 79, 78, 79, 67, 85, 76, 65, 210, 77, 79,
- 78, 75, 69, 89, 128, 77, 79, 78, 75, 69, 217, 77, 79, 78, 73, 128, 77,
- 79, 78, 71, 75, 69, 85, 65, 69, 81, 128, 77, 79, 78, 69, 217, 77, 79, 78,
- 128, 77, 79, 206, 77, 79, 76, 128, 77, 79, 72, 65, 77, 77, 65, 196, 77,
- 79, 68, 85, 76, 207, 77, 79, 68, 69, 83, 84, 89, 128, 77, 79, 68, 69, 76,
- 83, 128, 77, 79, 68, 69, 76, 128, 77, 79, 68, 69, 128, 77, 79, 66, 73,
- 76, 197, 77, 79, 65, 128, 77, 207, 77, 78, 89, 65, 205, 77, 78, 65, 83,
- 128, 77, 77, 83, 80, 128, 77, 77, 128, 77, 205, 77, 76, 65, 128, 77, 76,
- 128, 77, 75, 80, 65, 82, 65, 209, 77, 73, 88, 128, 77, 73, 84, 128, 77,
- 73, 83, 82, 65, 128, 77, 73, 82, 73, 66, 65, 65, 82, 85, 128, 77, 73, 82,
- 73, 128, 77, 73, 82, 69, 68, 128, 77, 73, 80, 128, 77, 73, 78, 89, 128,
- 77, 73, 78, 85, 83, 45, 79, 82, 45, 80, 76, 85, 211, 77, 73, 78, 85, 83,
- 128, 77, 73, 78, 73, 83, 84, 69, 82, 128, 77, 73, 78, 73, 77, 65, 128,
- 77, 73, 78, 73, 68, 73, 83, 67, 128, 77, 73, 78, 73, 66, 85, 83, 128, 77,
- 73, 77, 69, 128, 77, 73, 77, 128, 77, 73, 76, 76, 73, 79, 78, 211, 77,
- 73, 76, 76, 69, 84, 128, 77, 73, 76, 76, 197, 77, 73, 76, 204, 77, 73,
- 76, 75, 217, 77, 73, 76, 128, 77, 73, 75, 85, 82, 79, 78, 128, 77, 73,
- 75, 82, 79, 206, 77, 73, 75, 82, 73, 128, 77, 73, 73, 78, 128, 77, 73,
- 73, 128, 77, 73, 199, 77, 73, 69, 88, 128, 77, 73, 69, 85, 77, 45, 84,
- 73, 75, 69, 85, 84, 128, 77, 73, 69, 85, 77, 45, 83, 83, 65, 78, 71, 83,
- 73, 79, 83, 128, 77, 73, 69, 85, 77, 45, 83, 83, 65, 78, 71, 78, 73, 69,
- 85, 78, 128, 77, 73, 69, 85, 77, 45, 82, 73, 69, 85, 76, 128, 77, 73, 69,
- 85, 77, 45, 80, 73, 69, 85, 80, 45, 83, 73, 79, 83, 128, 77, 73, 69, 85,
- 77, 45, 80, 73, 69, 85, 80, 128, 77, 73, 69, 85, 77, 45, 80, 65, 78, 83,
- 73, 79, 83, 128, 77, 73, 69, 85, 77, 45, 78, 73, 69, 85, 78, 128, 77, 73,
- 69, 85, 77, 45, 67, 73, 69, 85, 67, 128, 77, 73, 69, 85, 77, 45, 67, 72,
- 73, 69, 85, 67, 72, 128, 77, 73, 69, 85, 205, 77, 73, 69, 80, 128, 77,
- 73, 69, 69, 128, 77, 73, 69, 128, 77, 73, 68, 76, 73, 78, 197, 77, 73,
- 68, 68, 76, 69, 45, 87, 69, 76, 83, 200, 77, 73, 68, 68, 76, 197, 77, 73,
- 196, 77, 73, 67, 82, 79, 83, 67, 79, 80, 69, 128, 77, 73, 67, 82, 79, 80,
- 72, 79, 78, 69, 128, 77, 73, 67, 82, 207, 77, 73, 67, 210, 77, 72, 90,
- 128, 77, 72, 65, 128, 77, 72, 128, 77, 71, 85, 88, 128, 77, 71, 85, 84,
- 128, 77, 71, 85, 82, 88, 128, 77, 71, 85, 82, 128, 77, 71, 85, 80, 128,
- 77, 71, 85, 79, 88, 128, 77, 71, 85, 79, 80, 128, 77, 71, 85, 79, 128,
- 77, 71, 85, 128, 77, 71, 79, 88, 128, 77, 71, 79, 84, 128, 77, 71, 79,
- 80, 128, 77, 71, 79, 128, 77, 71, 207, 77, 71, 73, 69, 88, 128, 77, 71,
- 73, 69, 128, 77, 71, 69, 88, 128, 77, 71, 69, 80, 128, 77, 71, 69, 128,
- 77, 71, 66, 85, 128, 77, 71, 66, 79, 79, 128, 77, 71, 66, 79, 70, 85, 77,
- 128, 77, 71, 66, 79, 128, 77, 71, 66, 73, 128, 77, 71, 66, 69, 85, 78,
- 128, 77, 71, 66, 69, 78, 128, 77, 71, 66, 69, 69, 128, 77, 71, 66, 69,
- 128, 77, 71, 66, 65, 83, 65, 81, 128, 77, 71, 66, 65, 83, 65, 128, 77,
- 71, 65, 88, 128, 77, 71, 65, 84, 128, 77, 71, 65, 80, 128, 77, 71, 65,
- 128, 77, 71, 128, 77, 70, 79, 78, 128, 77, 70, 79, 206, 77, 70, 79, 128,
- 77, 70, 73, 89, 65, 81, 128, 77, 70, 73, 69, 69, 128, 77, 70, 69, 85, 84,
- 128, 77, 70, 69, 85, 81, 128, 77, 70, 69, 85, 65, 69, 128, 77, 70, 65,
- 65, 128, 77, 69, 90, 90, 79, 128, 77, 69, 88, 128, 77, 69, 85, 212, 77,
- 69, 85, 81, 128, 77, 69, 85, 78, 74, 79, 77, 78, 68, 69, 85, 81, 128, 77,
- 69, 85, 78, 128, 77, 69, 84, 82, 79, 128, 77, 69, 84, 82, 73, 67, 65,
- 204, 77, 69, 84, 82, 73, 65, 128, 77, 69, 84, 82, 69, 84, 69, 211, 77,
- 69, 84, 79, 66, 69, 76, 85, 83, 128, 77, 69, 84, 69, 75, 128, 77, 69, 84,
- 69, 71, 128, 77, 69, 84, 65, 76, 128, 77, 69, 84, 193, 77, 69, 83, 83,
- 69, 78, 73, 65, 206, 77, 69, 83, 83, 65, 71, 69, 128, 77, 69, 83, 83, 65,
- 71, 197, 77, 69, 83, 79, 128, 77, 69, 83, 73, 128, 77, 69, 83, 72, 128,
- 77, 69, 82, 79, 73, 84, 73, 195, 77, 69, 82, 75, 72, 65, 128, 77, 69, 82,
- 75, 72, 193, 77, 69, 82, 73, 68, 73, 65, 78, 83, 128, 77, 69, 82, 73,
- 128, 77, 69, 82, 71, 69, 128, 77, 69, 82, 67, 85, 82, 89, 128, 77, 69,
- 82, 67, 85, 82, 217, 77, 69, 78, 68, 85, 84, 128, 77, 69, 78, 128, 77,
- 69, 77, 79, 128, 77, 69, 77, 66, 69, 82, 83, 72, 73, 80, 128, 77, 69, 77,
- 66, 69, 82, 128, 77, 69, 77, 66, 69, 210, 77, 69, 77, 45, 81, 79, 80, 72,
- 128, 77, 69, 77, 128, 77, 69, 205, 77, 69, 76, 79, 68, 73, 195, 77, 69,
- 76, 73, 75, 128, 77, 69, 73, 90, 73, 128, 77, 69, 71, 65, 84, 79, 78,
+ 65, 65, 77, 65, 69, 128, 78, 71, 71, 65, 65, 77, 128, 78, 71, 71, 65, 65,
+ 128, 78, 71, 71, 128, 78, 71, 69, 88, 128, 78, 71, 69, 85, 82, 69, 85,
+ 84, 128, 78, 71, 69, 80, 128, 78, 71, 69, 78, 128, 78, 71, 69, 69, 128,
+ 78, 71, 69, 65, 68, 65, 76, 128, 78, 71, 65, 88, 128, 78, 71, 65, 85,
+ 128, 78, 71, 65, 84, 128, 78, 71, 65, 211, 78, 71, 65, 81, 128, 78, 71,
+ 65, 80, 128, 78, 71, 65, 78, 71, 85, 128, 78, 71, 65, 78, 128, 78, 71,
+ 65, 73, 128, 78, 71, 65, 72, 128, 78, 71, 65, 65, 73, 128, 78, 71, 193,
+ 78, 70, 128, 78, 69, 88, 212, 78, 69, 88, 128, 78, 69, 87, 83, 80, 65,
+ 80, 69, 82, 128, 78, 69, 87, 76, 73, 78, 69, 128, 78, 69, 87, 76, 73, 78,
+ 197, 78, 69, 87, 128, 78, 69, 215, 78, 69, 85, 84, 82, 65, 76, 128, 78,
+ 69, 85, 84, 82, 65, 204, 78, 69, 85, 84, 69, 82, 128, 78, 69, 84, 87, 79,
+ 82, 75, 69, 196, 78, 69, 84, 128, 78, 69, 212, 78, 69, 83, 84, 69, 196,
+ 78, 69, 82, 196, 78, 69, 81, 85, 68, 65, 65, 128, 78, 69, 80, 84, 85, 78,
+ 69, 128, 78, 69, 80, 128, 78, 69, 79, 128, 78, 69, 207, 78, 69, 78, 79,
+ 69, 128, 78, 69, 78, 65, 78, 79, 128, 78, 69, 78, 128, 78, 69, 76, 128,
+ 78, 69, 73, 84, 72, 69, 210, 78, 69, 71, 65, 84, 73, 79, 206, 78, 69, 71,
+ 65, 84, 69, 196, 78, 69, 67, 75, 84, 73, 69, 128, 78, 69, 67, 75, 128,
+ 78, 69, 66, 69, 78, 83, 84, 73, 77, 77, 69, 128, 78, 68, 85, 88, 128, 78,
+ 68, 85, 84, 128, 78, 68, 85, 82, 88, 128, 78, 68, 85, 82, 128, 78, 68,
+ 85, 80, 128, 78, 68, 85, 78, 128, 78, 68, 213, 78, 68, 79, 88, 128, 78,
+ 68, 79, 84, 128, 78, 68, 79, 80, 128, 78, 68, 79, 79, 128, 78, 68, 79,
+ 78, 128, 78, 68, 79, 77, 66, 85, 128, 78, 68, 79, 76, 197, 78, 68, 73,
+ 88, 128, 78, 68, 73, 84, 128, 78, 68, 73, 81, 128, 78, 68, 73, 80, 128,
+ 78, 68, 73, 69, 88, 128, 78, 68, 73, 69, 128, 78, 68, 73, 68, 65, 128,
+ 78, 68, 73, 65, 81, 128, 78, 68, 69, 88, 128, 78, 68, 69, 85, 88, 128,
+ 78, 68, 69, 85, 84, 128, 78, 68, 69, 85, 65, 69, 82, 69, 69, 128, 78, 68,
+ 69, 80, 128, 78, 68, 69, 69, 128, 78, 68, 69, 128, 78, 68, 65, 88, 128,
+ 78, 68, 65, 84, 128, 78, 68, 65, 80, 128, 78, 68, 65, 77, 128, 78, 68,
+ 65, 65, 78, 71, 71, 69, 85, 65, 69, 84, 128, 78, 68, 65, 65, 128, 78, 68,
+ 65, 193, 78, 67, 72, 65, 85, 128, 78, 66, 89, 88, 128, 78, 66, 89, 84,
+ 128, 78, 66, 89, 82, 88, 128, 78, 66, 89, 82, 128, 78, 66, 89, 80, 128,
+ 78, 66, 89, 128, 78, 66, 85, 88, 128, 78, 66, 85, 84, 128, 78, 66, 85,
+ 82, 88, 128, 78, 66, 85, 82, 128, 78, 66, 85, 80, 128, 78, 66, 85, 128,
+ 78, 66, 79, 88, 128, 78, 66, 79, 84, 128, 78, 66, 79, 80, 128, 78, 66,
+ 79, 128, 78, 66, 73, 88, 128, 78, 66, 73, 84, 128, 78, 66, 73, 80, 128,
+ 78, 66, 73, 69, 88, 128, 78, 66, 73, 69, 80, 128, 78, 66, 73, 69, 128,
+ 78, 66, 73, 128, 78, 66, 72, 128, 78, 66, 65, 88, 128, 78, 66, 65, 84,
+ 128, 78, 66, 65, 80, 128, 78, 66, 65, 128, 78, 65, 89, 65, 78, 78, 65,
+ 128, 78, 65, 89, 128, 78, 65, 88, 73, 65, 206, 78, 65, 88, 128, 78, 65,
+ 85, 84, 72, 83, 128, 78, 65, 85, 68, 73, 218, 78, 65, 84, 85, 82, 65,
+ 204, 78, 65, 84, 73, 79, 78, 65, 204, 78, 65, 83, 75, 65, 80, 201, 78,
+ 65, 83, 72, 73, 128, 78, 65, 83, 65, 76, 73, 90, 65, 84, 73, 79, 78, 128,
+ 78, 65, 83, 65, 76, 73, 90, 65, 84, 73, 79, 206, 78, 65, 83, 65, 204, 78,
+ 65, 82, 82, 79, 215, 78, 65, 82, 128, 78, 65, 81, 128, 78, 65, 79, 211,
+ 78, 65, 78, 83, 65, 78, 65, 81, 128, 78, 65, 78, 71, 77, 79, 78, 84, 72,
+ 79, 128, 78, 65, 78, 68, 128, 78, 65, 78, 65, 128, 78, 65, 77, 69, 128,
+ 78, 65, 77, 197, 78, 65, 77, 50, 128, 78, 65, 77, 128, 78, 65, 75, 128,
+ 78, 65, 73, 82, 193, 78, 65, 73, 204, 78, 65, 71, 82, 201, 78, 65, 71,
+ 65, 82, 128, 78, 65, 71, 65, 128, 78, 65, 71, 193, 78, 65, 71, 128, 78,
+ 65, 199, 78, 65, 69, 128, 78, 65, 66, 76, 65, 128, 78, 65, 66, 65, 84,
+ 65, 69, 65, 206, 78, 65, 65, 83, 73, 75, 89, 65, 89, 65, 128, 78, 65, 65,
+ 75, 83, 73, 75, 89, 65, 89, 65, 128, 78, 65, 65, 73, 128, 78, 65, 193,
+ 78, 65, 52, 128, 78, 65, 50, 128, 78, 65, 45, 50, 128, 78, 48, 52, 50,
+ 128, 78, 48, 52, 49, 128, 78, 48, 52, 48, 128, 78, 48, 51, 57, 128, 78,
+ 48, 51, 56, 128, 78, 48, 51, 55, 65, 128, 78, 48, 51, 55, 128, 78, 48,
+ 51, 54, 128, 78, 48, 51, 53, 65, 128, 78, 48, 51, 53, 128, 78, 48, 51,
+ 52, 65, 128, 78, 48, 51, 52, 128, 78, 48, 51, 51, 65, 128, 78, 48, 51,
+ 51, 128, 78, 48, 51, 50, 128, 78, 48, 51, 49, 128, 78, 48, 51, 48, 128,
+ 78, 48, 50, 57, 128, 78, 48, 50, 56, 128, 78, 48, 50, 55, 128, 78, 48,
+ 50, 54, 128, 78, 48, 50, 53, 65, 128, 78, 48, 50, 53, 128, 78, 48, 50,
+ 52, 128, 78, 48, 50, 51, 128, 78, 48, 50, 50, 128, 78, 48, 50, 49, 128,
+ 78, 48, 50, 48, 128, 78, 48, 49, 57, 128, 78, 48, 49, 56, 66, 128, 78,
+ 48, 49, 56, 65, 128, 78, 48, 49, 56, 128, 78, 48, 49, 55, 128, 78, 48,
+ 49, 54, 128, 78, 48, 49, 53, 128, 78, 48, 49, 52, 128, 78, 48, 49, 51,
+ 128, 78, 48, 49, 50, 128, 78, 48, 49, 49, 128, 78, 48, 49, 48, 128, 78,
+ 48, 48, 57, 128, 78, 48, 48, 56, 128, 78, 48, 48, 55, 128, 78, 48, 48,
+ 54, 128, 78, 48, 48, 53, 128, 78, 48, 48, 52, 128, 78, 48, 48, 51, 128,
+ 78, 48, 48, 50, 128, 78, 48, 48, 49, 128, 78, 45, 67, 82, 69, 197, 78,
+ 45, 65, 82, 217, 77, 89, 88, 128, 77, 89, 84, 128, 77, 89, 83, 76, 73,
+ 84, 69, 128, 77, 89, 80, 128, 77, 89, 65, 128, 77, 89, 193, 77, 89, 128,
+ 77, 217, 77, 87, 79, 79, 128, 77, 87, 79, 128, 77, 87, 73, 73, 128, 77,
+ 87, 73, 128, 77, 87, 69, 69, 128, 77, 87, 69, 128, 77, 87, 65, 65, 128,
+ 77, 87, 65, 128, 77, 87, 128, 77, 215, 77, 86, 83, 128, 77, 86, 79, 80,
+ 128, 77, 86, 73, 128, 77, 86, 69, 85, 65, 69, 78, 71, 65, 77, 128, 77,
+ 86, 128, 77, 214, 77, 85, 88, 128, 77, 85, 85, 83, 73, 75, 65, 84, 79,
+ 65, 78, 128, 77, 85, 85, 82, 68, 72, 65, 74, 193, 77, 85, 85, 128, 77,
+ 85, 84, 128, 77, 85, 83, 73, 67, 128, 77, 85, 83, 73, 195, 77, 85, 83,
+ 72, 82, 79, 79, 77, 128, 77, 85, 83, 72, 51, 128, 77, 85, 83, 72, 179,
+ 77, 85, 83, 72, 128, 77, 85, 83, 200, 77, 85, 83, 128, 77, 85, 82, 88,
+ 128, 77, 85, 82, 71, 85, 50, 128, 77, 85, 82, 69, 128, 77, 85, 82, 68,
+ 65, 128, 77, 85, 82, 68, 193, 77, 85, 82, 128, 77, 85, 81, 68, 65, 77,
+ 128, 77, 85, 80, 128, 77, 85, 79, 88, 128, 77, 85, 79, 84, 128, 77, 85,
+ 79, 80, 128, 77, 85, 79, 77, 65, 69, 128, 77, 85, 79, 128, 77, 85, 78,
+ 83, 85, 66, 128, 77, 85, 78, 65, 72, 128, 77, 85, 78, 128, 77, 85, 76,
+ 84, 73, 83, 69, 84, 128, 77, 85, 76, 84, 73, 83, 69, 212, 77, 85, 76, 84,
+ 73, 80, 76, 73, 67, 65, 84, 73, 79, 78, 128, 77, 85, 76, 84, 73, 80, 76,
+ 73, 67, 65, 84, 73, 79, 206, 77, 85, 76, 84, 73, 80, 76, 69, 128, 77, 85,
+ 76, 84, 73, 80, 76, 197, 77, 85, 76, 84, 73, 79, 67, 85, 76, 65, 210, 77,
+ 85, 76, 84, 73, 77, 65, 80, 128, 77, 85, 76, 84, 201, 77, 85, 76, 84, 65,
+ 78, 201, 77, 85, 75, 80, 72, 82, 69, 78, 71, 128, 77, 85, 73, 78, 128,
+ 77, 85, 71, 83, 128, 77, 85, 71, 128, 77, 85, 199, 77, 85, 69, 78, 128,
+ 77, 85, 69, 128, 77, 85, 67, 72, 128, 77, 85, 67, 200, 77, 85, 67, 65,
+ 65, 68, 128, 77, 85, 65, 83, 128, 77, 85, 65, 78, 128, 77, 85, 65, 69,
+ 128, 77, 85, 45, 71, 65, 65, 72, 76, 65, 193, 77, 213, 77, 83, 128, 77,
+ 82, 207, 77, 80, 65, 128, 77, 79, 89, 65, 73, 128, 77, 79, 88, 128, 77,
+ 79, 86, 73, 197, 77, 79, 86, 69, 211, 77, 79, 86, 69, 77, 69, 78, 84, 45,
+ 87, 65, 76, 76, 80, 76, 65, 78, 197, 77, 79, 86, 69, 77, 69, 78, 84, 45,
+ 72, 73, 78, 71, 197, 77, 79, 86, 69, 77, 69, 78, 84, 45, 70, 76, 79, 79,
+ 82, 80, 76, 65, 78, 197, 77, 79, 86, 69, 77, 69, 78, 84, 45, 68, 73, 65,
+ 71, 79, 78, 65, 204, 77, 79, 86, 69, 77, 69, 78, 84, 128, 77, 79, 86, 69,
+ 77, 69, 78, 212, 77, 79, 86, 69, 196, 77, 79, 86, 69, 128, 77, 79, 85,
+ 84, 72, 128, 77, 79, 85, 83, 69, 128, 77, 79, 85, 83, 197, 77, 79, 85,
+ 78, 84, 65, 73, 78, 83, 128, 77, 79, 85, 78, 84, 65, 73, 78, 128, 77, 79,
+ 85, 78, 84, 65, 73, 206, 77, 79, 85, 78, 212, 77, 79, 85, 78, 68, 128,
+ 77, 79, 85, 78, 196, 77, 79, 84, 79, 82, 87, 65, 89, 128, 77, 79, 84, 79,
+ 82, 67, 89, 67, 76, 69, 128, 77, 79, 84, 79, 210, 77, 79, 84, 72, 69, 82,
+ 128, 77, 79, 84, 128, 77, 79, 83, 81, 85, 69, 128, 77, 79, 82, 84, 85,
+ 85, 77, 128, 77, 79, 82, 84, 65, 82, 128, 77, 79, 82, 80, 72, 79, 76, 79,
+ 71, 73, 67, 65, 204, 77, 79, 82, 78, 73, 78, 71, 128, 77, 79, 80, 128,
+ 77, 79, 79, 83, 69, 45, 67, 82, 69, 197, 77, 79, 79, 78, 128, 77, 79, 79,
+ 206, 77, 79, 79, 77, 80, 85, 81, 128, 77, 79, 79, 77, 69, 85, 84, 128,
+ 77, 79, 79, 68, 128, 77, 79, 79, 196, 77, 79, 79, 128, 77, 79, 78, 84,
+ 73, 69, 69, 78, 128, 77, 79, 78, 84, 72, 128, 77, 79, 78, 84, 200, 77,
+ 79, 78, 83, 84, 69, 82, 128, 77, 79, 78, 79, 83, 84, 65, 66, 76, 197, 77,
+ 79, 78, 79, 83, 80, 65, 67, 197, 77, 79, 78, 79, 82, 65, 73, 76, 128, 77,
+ 79, 78, 79, 71, 82, 65, 80, 200, 77, 79, 78, 79, 71, 82, 65, 77, 77, 79,
+ 211, 77, 79, 78, 79, 71, 82, 65, 205, 77, 79, 78, 79, 70, 79, 78, 73, 65,
+ 83, 128, 77, 79, 78, 79, 67, 85, 76, 65, 210, 77, 79, 78, 75, 69, 89,
+ 128, 77, 79, 78, 75, 69, 217, 77, 79, 78, 73, 128, 77, 79, 78, 71, 75,
+ 69, 85, 65, 69, 81, 128, 77, 79, 78, 69, 89, 45, 77, 79, 85, 84, 200, 77,
+ 79, 78, 69, 217, 77, 79, 78, 128, 77, 79, 206, 77, 79, 76, 128, 77, 79,
+ 72, 65, 77, 77, 65, 196, 77, 79, 68, 85, 76, 207, 77, 79, 68, 73, 70, 73,
+ 69, 82, 45, 57, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 56, 128, 77, 79,
+ 68, 73, 70, 73, 69, 82, 45, 55, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45,
+ 54, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 53, 128, 77, 79, 68, 73, 70,
+ 73, 69, 82, 45, 52, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 51, 128, 77,
+ 79, 68, 73, 70, 73, 69, 82, 45, 50, 128, 77, 79, 68, 73, 70, 73, 69, 82,
+ 45, 49, 54, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 49, 53, 128, 77, 79,
+ 68, 73, 70, 73, 69, 82, 45, 49, 52, 128, 77, 79, 68, 73, 70, 73, 69, 82,
+ 45, 49, 51, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 49, 50, 128, 77, 79,
+ 68, 73, 70, 73, 69, 82, 45, 49, 49, 128, 77, 79, 68, 73, 70, 73, 69, 82,
+ 45, 49, 48, 128, 77, 79, 68, 201, 77, 79, 68, 69, 83, 84, 89, 128, 77,
+ 79, 68, 69, 77, 128, 77, 79, 68, 69, 76, 83, 128, 77, 79, 68, 69, 76,
+ 128, 77, 79, 68, 69, 128, 77, 79, 66, 73, 76, 197, 77, 79, 65, 128, 77,
+ 207, 77, 78, 89, 65, 205, 77, 78, 65, 83, 128, 77, 77, 83, 80, 128, 77,
+ 77, 128, 77, 205, 77, 76, 65, 128, 77, 76, 128, 77, 75, 80, 65, 82, 65,
+ 209, 77, 73, 88, 128, 77, 73, 84, 128, 77, 73, 83, 82, 65, 128, 77, 73,
+ 82, 73, 66, 65, 65, 82, 85, 128, 77, 73, 82, 73, 128, 77, 73, 82, 69, 68,
+ 128, 77, 73, 80, 128, 77, 73, 78, 89, 128, 77, 73, 78, 85, 83, 45, 79,
+ 82, 45, 80, 76, 85, 211, 77, 73, 78, 85, 83, 128, 77, 73, 78, 73, 83, 84,
+ 69, 82, 128, 77, 73, 78, 73, 77, 73, 90, 69, 128, 77, 73, 78, 73, 77, 65,
+ 128, 77, 73, 78, 73, 68, 73, 83, 67, 128, 77, 73, 78, 73, 66, 85, 83,
+ 128, 77, 73, 77, 69, 128, 77, 73, 77, 128, 77, 73, 76, 76, 73, 79, 78,
+ 83, 128, 77, 73, 76, 76, 73, 79, 78, 211, 77, 73, 76, 76, 69, 84, 128,
+ 77, 73, 76, 76, 197, 77, 73, 76, 204, 77, 73, 76, 75, 217, 77, 73, 76,
+ 73, 84, 65, 82, 217, 77, 73, 76, 128, 77, 73, 75, 85, 82, 79, 78, 128,
+ 77, 73, 75, 82, 79, 206, 77, 73, 75, 82, 73, 128, 77, 73, 73, 78, 128,
+ 77, 73, 73, 128, 77, 73, 199, 77, 73, 69, 88, 128, 77, 73, 69, 85, 77,
+ 45, 84, 73, 75, 69, 85, 84, 128, 77, 73, 69, 85, 77, 45, 83, 83, 65, 78,
+ 71, 83, 73, 79, 83, 128, 77, 73, 69, 85, 77, 45, 83, 83, 65, 78, 71, 78,
+ 73, 69, 85, 78, 128, 77, 73, 69, 85, 77, 45, 82, 73, 69, 85, 76, 128, 77,
+ 73, 69, 85, 77, 45, 80, 73, 69, 85, 80, 45, 83, 73, 79, 83, 128, 77, 73,
+ 69, 85, 77, 45, 80, 73, 69, 85, 80, 128, 77, 73, 69, 85, 77, 45, 80, 65,
+ 78, 83, 73, 79, 83, 128, 77, 73, 69, 85, 77, 45, 78, 73, 69, 85, 78, 128,
+ 77, 73, 69, 85, 77, 45, 67, 73, 69, 85, 67, 128, 77, 73, 69, 85, 77, 45,
+ 67, 72, 73, 69, 85, 67, 72, 128, 77, 73, 69, 85, 205, 77, 73, 69, 80,
+ 128, 77, 73, 69, 69, 128, 77, 73, 69, 128, 77, 73, 68, 76, 73, 78, 197,
+ 77, 73, 68, 68, 76, 69, 45, 87, 69, 76, 83, 200, 77, 73, 68, 68, 76, 69,
+ 128, 77, 73, 68, 45, 76, 69, 86, 69, 204, 77, 73, 196, 77, 73, 67, 82,
+ 79, 83, 67, 79, 80, 69, 128, 77, 73, 67, 82, 79, 80, 72, 79, 78, 69, 128,
+ 77, 73, 67, 82, 207, 77, 73, 67, 210, 77, 72, 90, 128, 77, 72, 65, 128,
+ 77, 72, 128, 77, 71, 85, 88, 128, 77, 71, 85, 84, 128, 77, 71, 85, 82,
+ 88, 128, 77, 71, 85, 82, 128, 77, 71, 85, 80, 128, 77, 71, 85, 79, 88,
+ 128, 77, 71, 85, 79, 80, 128, 77, 71, 85, 79, 128, 77, 71, 85, 128, 77,
+ 71, 79, 88, 128, 77, 71, 79, 84, 128, 77, 71, 79, 80, 128, 77, 71, 79,
+ 128, 77, 71, 207, 77, 71, 73, 69, 88, 128, 77, 71, 73, 69, 128, 77, 71,
+ 69, 88, 128, 77, 71, 69, 80, 128, 77, 71, 69, 128, 77, 71, 66, 85, 128,
+ 77, 71, 66, 79, 79, 128, 77, 71, 66, 79, 70, 85, 77, 128, 77, 71, 66, 79,
+ 128, 77, 71, 66, 73, 128, 77, 71, 66, 69, 85, 78, 128, 77, 71, 66, 69,
+ 78, 128, 77, 71, 66, 69, 69, 128, 77, 71, 66, 69, 128, 77, 71, 66, 65,
+ 83, 65, 81, 128, 77, 71, 66, 65, 83, 65, 128, 77, 71, 65, 88, 128, 77,
+ 71, 65, 84, 128, 77, 71, 65, 80, 128, 77, 71, 65, 128, 77, 71, 128, 77,
+ 70, 79, 78, 128, 77, 70, 79, 206, 77, 70, 79, 128, 77, 70, 73, 89, 65,
+ 81, 128, 77, 70, 73, 69, 69, 128, 77, 70, 69, 85, 84, 128, 77, 70, 69,
+ 85, 81, 128, 77, 70, 69, 85, 65, 69, 128, 77, 70, 65, 65, 128, 77, 69,
+ 90, 90, 79, 128, 77, 69, 88, 128, 77, 69, 85, 212, 77, 69, 85, 81, 128,
+ 77, 69, 85, 78, 74, 79, 77, 78, 68, 69, 85, 81, 128, 77, 69, 85, 78, 128,
+ 77, 69, 84, 82, 79, 128, 77, 69, 84, 82, 73, 67, 65, 204, 77, 69, 84, 82,
+ 73, 65, 128, 77, 69, 84, 82, 69, 84, 69, 211, 77, 69, 84, 79, 66, 69, 76,
+ 85, 83, 128, 77, 69, 84, 69, 75, 128, 77, 69, 84, 69, 71, 128, 77, 69,
+ 84, 65, 76, 128, 77, 69, 84, 193, 77, 69, 83, 83, 69, 78, 73, 65, 206,
+ 77, 69, 83, 83, 65, 71, 69, 128, 77, 69, 83, 83, 65, 71, 197, 77, 69, 83,
+ 79, 128, 77, 69, 83, 73, 128, 77, 69, 83, 72, 128, 77, 69, 82, 75, 72,
+ 65, 128, 77, 69, 82, 75, 72, 193, 77, 69, 82, 73, 68, 73, 65, 78, 83,
+ 128, 77, 69, 82, 73, 128, 77, 69, 82, 71, 69, 128, 77, 69, 82, 67, 85,
+ 82, 89, 128, 77, 69, 82, 67, 85, 82, 217, 77, 69, 78, 79, 82, 65, 200,
+ 77, 69, 78, 79, 69, 128, 77, 69, 78, 68, 85, 84, 128, 77, 69, 78, 128,
+ 77, 69, 77, 79, 128, 77, 69, 77, 66, 69, 82, 83, 72, 73, 80, 128, 77, 69,
+ 77, 66, 69, 82, 128, 77, 69, 77, 66, 69, 210, 77, 69, 77, 45, 81, 79, 80,
+ 72, 128, 77, 69, 77, 128, 77, 69, 205, 77, 69, 76, 79, 68, 73, 195, 77,
+ 69, 76, 73, 75, 128, 77, 69, 73, 90, 73, 128, 77, 69, 71, 65, 84, 79, 78,
128, 77, 69, 71, 65, 80, 72, 79, 78, 69, 128, 77, 69, 71, 65, 76, 73,
- 128, 77, 69, 69, 84, 79, 82, 85, 128, 77, 69, 69, 84, 128, 77, 69, 69,
- 77, 85, 128, 77, 69, 69, 77, 128, 77, 69, 69, 69, 69, 128, 77, 69, 68,
- 73, 85, 77, 128, 77, 69, 68, 73, 85, 205, 77, 69, 68, 73, 67, 73, 78, 69,
- 128, 77, 69, 68, 73, 67, 65, 204, 77, 69, 65, 84, 128, 77, 69, 65, 212,
- 77, 69, 65, 83, 85, 82, 69, 196, 77, 69, 65, 83, 85, 82, 69, 128, 77, 69,
- 65, 83, 85, 82, 197, 77, 68, 85, 206, 77, 196, 77, 67, 72, 213, 77, 67,
- 72, 65, 206, 77, 195, 77, 66, 85, 79, 81, 128, 77, 66, 85, 79, 128, 77,
- 66, 85, 69, 128, 77, 66, 85, 65, 69, 77, 128, 77, 66, 85, 65, 69, 128,
- 77, 66, 79, 79, 128, 77, 66, 79, 128, 77, 66, 73, 84, 128, 77, 66, 73,
- 212, 77, 66, 73, 82, 73, 69, 69, 78, 128, 77, 66, 73, 128, 77, 66, 69,
- 85, 88, 128, 77, 66, 69, 85, 82, 73, 128, 77, 66, 69, 85, 77, 128, 77,
- 66, 69, 82, 65, 69, 128, 77, 66, 69, 78, 128, 77, 66, 69, 69, 75, 69, 69,
- 84, 128, 77, 66, 69, 69, 128, 77, 66, 69, 128, 77, 66, 65, 81, 128, 77,
- 66, 65, 78, 89, 73, 128, 77, 66, 65, 65, 82, 65, 69, 128, 77, 66, 65, 65,
- 75, 69, 84, 128, 77, 66, 65, 65, 128, 77, 66, 65, 193, 77, 66, 193, 77,
- 66, 52, 128, 77, 66, 51, 128, 77, 66, 50, 128, 77, 66, 128, 77, 194, 77,
- 65, 89, 65, 78, 78, 65, 128, 77, 65, 89, 128, 77, 65, 88, 73, 77, 65,
- 128, 77, 65, 88, 128, 77, 65, 85, 128, 77, 65, 84, 84, 79, 67, 75, 128,
- 77, 65, 84, 82, 73, 88, 128, 77, 65, 84, 69, 82, 73, 65, 76, 83, 128, 77,
- 65, 84, 128, 77, 65, 83, 213, 77, 65, 83, 83, 73, 78, 71, 128, 77, 65,
- 83, 83, 65, 71, 69, 128, 77, 65, 83, 79, 82, 193, 77, 65, 83, 75, 128,
- 77, 65, 83, 72, 70, 65, 65, 84, 128, 77, 65, 83, 72, 50, 128, 77, 65, 83,
- 67, 85, 76, 73, 78, 197, 77, 65, 82, 89, 128, 77, 65, 82, 85, 75, 85,
- 128, 77, 65, 82, 84, 89, 82, 73, 193, 77, 65, 82, 82, 89, 73, 78, 199,
- 77, 65, 82, 82, 73, 65, 71, 197, 77, 65, 82, 75, 69, 82, 128, 77, 65, 82,
- 75, 45, 52, 128, 77, 65, 82, 75, 45, 51, 128, 77, 65, 82, 75, 45, 50,
- 128, 77, 65, 82, 75, 45, 49, 128, 77, 65, 82, 69, 128, 77, 65, 82, 67,
- 72, 128, 77, 65, 82, 67, 65, 84, 79, 45, 83, 84, 65, 67, 67, 65, 84, 79,
- 128, 77, 65, 82, 67, 65, 84, 79, 128, 77, 65, 82, 67, 65, 83, 73, 84, 69,
- 128, 77, 65, 82, 66, 85, 84, 65, 128, 77, 65, 82, 66, 85, 84, 193, 77,
- 65, 82, 128, 77, 65, 81, 65, 70, 128, 77, 65, 81, 128, 77, 65, 80, 76,
- 197, 77, 65, 80, 73, 81, 128, 77, 65, 208, 77, 65, 79, 128, 77, 65, 78,
- 83, 89, 79, 78, 128, 77, 65, 78, 83, 85, 65, 69, 128, 77, 65, 78, 78, 65,
- 218, 77, 65, 78, 78, 65, 128, 77, 65, 78, 71, 65, 76, 65, 77, 128, 77,
- 65, 78, 68, 65, 73, 76, 73, 78, 199, 77, 65, 78, 68, 65, 73, 195, 77, 65,
- 78, 67, 72, 213, 77, 65, 78, 65, 67, 76, 69, 83, 128, 77, 65, 76, 84, 69,
- 83, 197, 77, 65, 76, 69, 69, 82, 73, 128, 77, 65, 76, 69, 128, 77, 65,
- 76, 197, 77, 65, 76, 65, 75, 79, 206, 77, 65, 75, 83, 85, 82, 65, 128,
- 77, 65, 75, 83, 85, 82, 193, 77, 65, 73, 90, 69, 128, 77, 65, 73, 89, 65,
- 77, 79, 75, 128, 77, 65, 73, 84, 65, 73, 75, 72, 85, 128, 77, 65, 73, 82,
- 85, 128, 77, 65, 73, 77, 85, 65, 78, 128, 77, 65, 73, 77, 65, 76, 65, 73,
+ 128, 77, 69, 69, 84, 79, 82, 85, 128, 77, 69, 69, 84, 69, 201, 77, 69,
+ 69, 84, 128, 77, 69, 69, 77, 85, 128, 77, 69, 69, 77, 128, 77, 69, 69,
+ 202, 77, 69, 69, 69, 69, 128, 77, 69, 68, 73, 85, 77, 128, 77, 69, 68,
+ 73, 85, 205, 77, 69, 68, 73, 67, 73, 78, 69, 128, 77, 69, 68, 73, 67, 65,
+ 204, 77, 69, 68, 65, 76, 128, 77, 69, 65, 84, 128, 77, 69, 65, 212, 77,
+ 69, 65, 83, 85, 82, 69, 196, 77, 69, 65, 83, 85, 82, 69, 128, 77, 69, 65,
+ 83, 85, 82, 197, 77, 68, 85, 206, 77, 196, 77, 67, 72, 213, 77, 67, 72,
+ 65, 206, 77, 195, 77, 66, 85, 85, 128, 77, 66, 85, 79, 81, 128, 77, 66,
+ 85, 79, 128, 77, 66, 85, 69, 128, 77, 66, 85, 65, 69, 77, 128, 77, 66,
+ 85, 65, 69, 128, 77, 66, 79, 79, 128, 77, 66, 79, 128, 77, 66, 73, 84,
+ 128, 77, 66, 73, 212, 77, 66, 73, 82, 73, 69, 69, 78, 128, 77, 66, 73,
+ 128, 77, 66, 69, 85, 88, 128, 77, 66, 69, 85, 82, 73, 128, 77, 66, 69,
+ 85, 77, 128, 77, 66, 69, 82, 65, 69, 128, 77, 66, 69, 78, 128, 77, 66,
+ 69, 69, 75, 69, 69, 84, 128, 77, 66, 69, 69, 128, 77, 66, 69, 128, 77,
+ 66, 65, 81, 128, 77, 66, 65, 78, 89, 73, 128, 77, 66, 65, 65, 82, 65, 69,
+ 128, 77, 66, 65, 65, 75, 69, 84, 128, 77, 66, 65, 65, 128, 77, 66, 65,
+ 193, 77, 66, 193, 77, 66, 52, 128, 77, 66, 51, 128, 77, 66, 50, 128, 77,
+ 65, 89, 69, 203, 77, 65, 89, 65, 78, 78, 65, 128, 77, 65, 89, 128, 77,
+ 65, 88, 73, 77, 73, 90, 69, 128, 77, 65, 88, 73, 77, 65, 128, 77, 65, 88,
+ 128, 77, 65, 85, 128, 77, 65, 84, 84, 79, 67, 75, 128, 77, 65, 84, 82,
+ 73, 88, 128, 77, 65, 84, 69, 82, 73, 65, 76, 83, 128, 77, 65, 84, 128,
+ 77, 65, 83, 213, 77, 65, 83, 83, 73, 78, 71, 128, 77, 65, 83, 83, 65, 71,
+ 69, 128, 77, 65, 83, 79, 82, 193, 77, 65, 83, 75, 128, 77, 65, 83, 72,
+ 70, 65, 65, 84, 128, 77, 65, 83, 72, 50, 128, 77, 65, 83, 67, 85, 76, 73,
+ 78, 197, 77, 65, 82, 89, 128, 77, 65, 82, 87, 65, 82, 201, 77, 65, 82,
+ 85, 75, 85, 128, 77, 65, 82, 84, 89, 82, 73, 193, 77, 65, 82, 82, 89, 73,
+ 78, 199, 77, 65, 82, 82, 73, 65, 71, 197, 77, 65, 82, 75, 211, 77, 65,
+ 82, 75, 69, 82, 128, 77, 65, 82, 75, 45, 52, 128, 77, 65, 82, 75, 45, 51,
+ 128, 77, 65, 82, 75, 45, 50, 128, 77, 65, 82, 75, 45, 49, 128, 77, 65,
+ 82, 69, 128, 77, 65, 82, 67, 72, 128, 77, 65, 82, 67, 65, 84, 79, 45, 83,
+ 84, 65, 67, 67, 65, 84, 79, 128, 77, 65, 82, 67, 65, 84, 79, 128, 77, 65,
+ 82, 67, 65, 83, 73, 84, 69, 128, 77, 65, 82, 66, 85, 84, 65, 128, 77, 65,
+ 82, 66, 85, 84, 193, 77, 65, 82, 128, 77, 65, 81, 65, 70, 128, 77, 65,
+ 81, 128, 77, 65, 80, 76, 197, 77, 65, 80, 73, 81, 128, 77, 65, 208, 77,
+ 65, 79, 128, 77, 65, 78, 84, 69, 76, 80, 73, 69, 67, 197, 77, 65, 78, 83,
+ 89, 79, 78, 128, 77, 65, 78, 83, 85, 65, 69, 128, 77, 65, 78, 78, 65,
+ 218, 77, 65, 78, 78, 65, 128, 77, 65, 78, 73, 67, 72, 65, 69, 65, 206,
+ 77, 65, 78, 71, 65, 76, 65, 77, 128, 77, 65, 78, 68, 65, 73, 76, 73, 78,
+ 199, 77, 65, 78, 68, 65, 73, 195, 77, 65, 78, 67, 72, 213, 77, 65, 78,
+ 65, 212, 77, 65, 78, 65, 67, 76, 69, 83, 128, 77, 65, 76, 84, 69, 83,
+ 197, 77, 65, 76, 69, 69, 82, 73, 128, 77, 65, 76, 69, 128, 77, 65, 76,
+ 197, 77, 65, 76, 65, 75, 79, 206, 77, 65, 75, 83, 85, 82, 65, 128, 77,
+ 65, 75, 83, 85, 82, 193, 77, 65, 73, 90, 69, 128, 77, 65, 73, 89, 65, 77,
+ 79, 75, 128, 77, 65, 73, 84, 65, 73, 75, 72, 85, 128, 77, 65, 73, 82, 85,
+ 128, 77, 65, 73, 77, 85, 65, 78, 128, 77, 65, 73, 77, 65, 76, 65, 73,
128, 77, 65, 73, 76, 66, 79, 216, 77, 65, 73, 75, 85, 82, 79, 128, 77,
65, 73, 68, 69, 78, 128, 77, 65, 73, 128, 77, 65, 72, 74, 79, 78, 199,
77, 65, 72, 72, 65, 128, 77, 65, 72, 65, 80, 82, 65, 78, 65, 128, 77, 65,
- 72, 65, 80, 65, 75, 72, 128, 77, 65, 72, 65, 65, 80, 82, 65, 65, 78, 193,
- 77, 65, 72, 128, 77, 65, 71, 78, 73, 70, 89, 73, 78, 199, 77, 65, 69, 83,
- 73, 128, 77, 65, 69, 78, 89, 73, 128, 77, 65, 69, 78, 74, 69, 84, 128,
- 77, 65, 69, 77, 86, 69, 85, 88, 128, 77, 65, 69, 77, 75, 80, 69, 78, 128,
- 77, 65, 69, 77, 71, 66, 73, 69, 69, 128, 77, 65, 69, 77, 66, 71, 66, 73,
- 69, 69, 128, 77, 65, 69, 77, 66, 65, 128, 77, 65, 69, 77, 128, 77, 65,
- 69, 76, 69, 69, 128, 77, 65, 69, 75, 69, 85, 80, 128, 77, 65, 68, 89, 65,
- 128, 77, 65, 68, 85, 128, 77, 65, 68, 68, 65, 200, 77, 65, 68, 68, 65,
- 128, 77, 65, 68, 68, 193, 77, 65, 67, 82, 79, 78, 45, 71, 82, 65, 86, 69,
- 128, 77, 65, 67, 82, 79, 78, 45, 66, 82, 69, 86, 69, 128, 77, 65, 67, 82,
- 79, 78, 45, 65, 67, 85, 84, 69, 128, 77, 65, 67, 82, 79, 78, 128, 77, 65,
- 67, 82, 79, 206, 77, 65, 67, 72, 73, 78, 69, 128, 77, 65, 65, 89, 89, 65,
- 65, 128, 77, 65, 65, 73, 128, 77, 65, 65, 128, 77, 65, 50, 128, 77, 48,
- 52, 52, 128, 77, 48, 52, 51, 128, 77, 48, 52, 50, 128, 77, 48, 52, 49,
- 128, 77, 48, 52, 48, 65, 128, 77, 48, 52, 48, 128, 77, 48, 51, 57, 128,
- 77, 48, 51, 56, 128, 77, 48, 51, 55, 128, 77, 48, 51, 54, 128, 77, 48,
- 51, 53, 128, 77, 48, 51, 52, 128, 77, 48, 51, 51, 66, 128, 77, 48, 51,
- 51, 65, 128, 77, 48, 51, 51, 128, 77, 48, 51, 50, 128, 77, 48, 51, 49,
- 65, 128, 77, 48, 51, 49, 128, 77, 48, 51, 48, 128, 77, 48, 50, 57, 128,
- 77, 48, 50, 56, 65, 128, 77, 48, 50, 56, 128, 77, 48, 50, 55, 128, 77,
- 48, 50, 54, 128, 77, 48, 50, 53, 128, 77, 48, 50, 52, 65, 128, 77, 48,
- 50, 52, 128, 77, 48, 50, 51, 128, 77, 48, 50, 50, 65, 128, 77, 48, 50,
- 50, 128, 77, 48, 50, 49, 128, 77, 48, 50, 48, 128, 77, 48, 49, 57, 128,
- 77, 48, 49, 56, 128, 77, 48, 49, 55, 65, 128, 77, 48, 49, 55, 128, 77,
- 48, 49, 54, 65, 128, 77, 48, 49, 54, 128, 77, 48, 49, 53, 65, 128, 77,
- 48, 49, 53, 128, 77, 48, 49, 52, 128, 77, 48, 49, 51, 128, 77, 48, 49,
+ 72, 65, 80, 65, 75, 72, 128, 77, 65, 72, 65, 74, 65, 78, 201, 77, 65, 72,
+ 65, 65, 80, 82, 65, 65, 78, 193, 77, 65, 72, 128, 77, 65, 71, 78, 73, 70,
+ 89, 73, 78, 199, 77, 65, 69, 83, 73, 128, 77, 65, 69, 78, 89, 73, 128,
+ 77, 65, 69, 78, 74, 69, 84, 128, 77, 65, 69, 77, 86, 69, 85, 88, 128, 77,
+ 65, 69, 77, 75, 80, 69, 78, 128, 77, 65, 69, 77, 71, 66, 73, 69, 69, 128,
+ 77, 65, 69, 77, 66, 71, 66, 73, 69, 69, 128, 77, 65, 69, 77, 66, 65, 128,
+ 77, 65, 69, 77, 128, 77, 65, 69, 76, 69, 69, 128, 77, 65, 69, 75, 69, 85,
+ 80, 128, 77, 65, 68, 89, 65, 128, 77, 65, 68, 85, 128, 77, 65, 68, 68,
+ 65, 200, 77, 65, 68, 68, 65, 128, 77, 65, 68, 68, 193, 77, 65, 67, 82,
+ 79, 78, 45, 71, 82, 65, 86, 69, 128, 77, 65, 67, 82, 79, 78, 45, 66, 82,
+ 69, 86, 69, 128, 77, 65, 67, 82, 79, 78, 45, 65, 67, 85, 84, 69, 128, 77,
+ 65, 67, 82, 79, 78, 128, 77, 65, 67, 82, 79, 206, 77, 65, 67, 72, 73, 78,
+ 69, 128, 77, 65, 65, 89, 89, 65, 65, 128, 77, 65, 65, 73, 128, 77, 65,
+ 65, 128, 77, 65, 50, 128, 77, 49, 57, 183, 77, 49, 57, 182, 77, 49, 57,
+ 181, 77, 49, 57, 180, 77, 49, 57, 179, 77, 49, 57, 178, 77, 49, 57, 177,
+ 77, 49, 57, 176, 77, 49, 56, 185, 77, 49, 56, 184, 77, 49, 56, 183, 77,
+ 49, 56, 182, 77, 49, 56, 181, 77, 49, 56, 180, 77, 49, 56, 179, 77, 49,
+ 56, 178, 77, 49, 56, 177, 77, 49, 56, 176, 77, 49, 55, 185, 77, 49, 55,
+ 184, 77, 49, 55, 183, 77, 49, 55, 182, 77, 49, 55, 181, 77, 49, 55, 180,
+ 77, 49, 55, 179, 77, 49, 55, 178, 77, 49, 55, 177, 77, 49, 55, 176, 77,
+ 49, 54, 185, 77, 49, 54, 184, 77, 49, 54, 183, 77, 49, 54, 182, 77, 49,
+ 54, 181, 77, 49, 54, 180, 77, 49, 54, 179, 77, 49, 54, 178, 77, 49, 54,
+ 177, 77, 49, 54, 176, 77, 49, 53, 185, 77, 49, 53, 184, 77, 49, 53, 183,
+ 77, 49, 53, 182, 77, 49, 53, 181, 77, 49, 53, 180, 77, 49, 53, 179, 77,
+ 49, 53, 178, 77, 49, 53, 177, 77, 49, 53, 176, 77, 49, 52, 185, 77, 49,
+ 52, 184, 77, 49, 52, 183, 77, 49, 52, 182, 77, 49, 52, 181, 77, 49, 52,
+ 180, 77, 49, 52, 179, 77, 49, 52, 178, 77, 49, 52, 177, 77, 49, 52, 176,
+ 77, 49, 51, 185, 77, 49, 51, 184, 77, 49, 51, 183, 77, 49, 51, 182, 77,
+ 49, 51, 181, 77, 49, 51, 180, 77, 49, 51, 179, 77, 49, 51, 178, 77, 49,
+ 51, 177, 77, 49, 51, 176, 77, 49, 50, 185, 77, 49, 50, 184, 77, 49, 50,
+ 183, 77, 49, 50, 182, 77, 49, 50, 181, 77, 49, 50, 180, 77, 49, 50, 179,
+ 77, 49, 50, 178, 77, 49, 50, 177, 77, 49, 50, 176, 77, 49, 49, 185, 77,
+ 49, 49, 184, 77, 49, 49, 183, 77, 49, 49, 182, 77, 49, 49, 181, 77, 49,
+ 49, 180, 77, 49, 49, 179, 77, 49, 49, 178, 77, 49, 49, 177, 77, 49, 49,
+ 176, 77, 49, 48, 185, 77, 49, 48, 184, 77, 49, 48, 183, 77, 49, 48, 182,
+ 77, 49, 48, 181, 77, 49, 48, 180, 77, 49, 48, 179, 77, 49, 48, 178, 77,
+ 49, 48, 177, 77, 49, 48, 176, 77, 48, 57, 185, 77, 48, 57, 184, 77, 48,
+ 57, 183, 77, 48, 57, 182, 77, 48, 57, 181, 77, 48, 57, 180, 77, 48, 57,
+ 179, 77, 48, 57, 178, 77, 48, 57, 177, 77, 48, 57, 176, 77, 48, 56, 185,
+ 77, 48, 56, 184, 77, 48, 56, 183, 77, 48, 56, 182, 77, 48, 56, 181, 77,
+ 48, 56, 180, 77, 48, 56, 179, 77, 48, 56, 178, 77, 48, 56, 177, 77, 48,
+ 56, 176, 77, 48, 55, 185, 77, 48, 55, 184, 77, 48, 55, 183, 77, 48, 55,
+ 182, 77, 48, 55, 181, 77, 48, 55, 180, 77, 48, 55, 179, 77, 48, 55, 178,
+ 77, 48, 55, 177, 77, 48, 55, 176, 77, 48, 54, 185, 77, 48, 54, 184, 77,
+ 48, 54, 183, 77, 48, 54, 182, 77, 48, 54, 181, 77, 48, 54, 180, 77, 48,
+ 54, 179, 77, 48, 54, 178, 77, 48, 54, 177, 77, 48, 54, 176, 77, 48, 53,
+ 185, 77, 48, 53, 184, 77, 48, 53, 183, 77, 48, 53, 182, 77, 48, 53, 181,
+ 77, 48, 53, 180, 77, 48, 53, 179, 77, 48, 53, 178, 77, 48, 53, 177, 77,
+ 48, 53, 176, 77, 48, 52, 185, 77, 48, 52, 184, 77, 48, 52, 183, 77, 48,
+ 52, 182, 77, 48, 52, 181, 77, 48, 52, 52, 128, 77, 48, 52, 180, 77, 48,
+ 52, 51, 128, 77, 48, 52, 179, 77, 48, 52, 50, 128, 77, 48, 52, 178, 77,
+ 48, 52, 49, 128, 77, 48, 52, 177, 77, 48, 52, 48, 65, 128, 77, 48, 52,
+ 48, 128, 77, 48, 52, 176, 77, 48, 51, 57, 128, 77, 48, 51, 185, 77, 48,
+ 51, 56, 128, 77, 48, 51, 184, 77, 48, 51, 55, 128, 77, 48, 51, 183, 77,
+ 48, 51, 54, 128, 77, 48, 51, 182, 77, 48, 51, 53, 128, 77, 48, 51, 181,
+ 77, 48, 51, 52, 128, 77, 48, 51, 180, 77, 48, 51, 51, 66, 128, 77, 48,
+ 51, 51, 65, 128, 77, 48, 51, 51, 128, 77, 48, 51, 179, 77, 48, 51, 50,
+ 128, 77, 48, 51, 178, 77, 48, 51, 49, 65, 128, 77, 48, 51, 49, 128, 77,
+ 48, 51, 177, 77, 48, 51, 48, 128, 77, 48, 51, 176, 77, 48, 50, 57, 128,
+ 77, 48, 50, 185, 77, 48, 50, 56, 65, 128, 77, 48, 50, 56, 128, 77, 48,
+ 50, 184, 77, 48, 50, 55, 128, 77, 48, 50, 183, 77, 48, 50, 54, 128, 77,
+ 48, 50, 182, 77, 48, 50, 53, 128, 77, 48, 50, 181, 77, 48, 50, 52, 65,
+ 128, 77, 48, 50, 52, 128, 77, 48, 50, 180, 77, 48, 50, 51, 128, 77, 48,
+ 50, 179, 77, 48, 50, 50, 65, 128, 77, 48, 50, 50, 128, 77, 48, 50, 178,
+ 77, 48, 50, 49, 128, 77, 48, 50, 177, 77, 48, 50, 48, 128, 77, 48, 50,
+ 176, 77, 48, 49, 57, 128, 77, 48, 49, 185, 77, 48, 49, 56, 128, 77, 48,
+ 49, 184, 77, 48, 49, 55, 65, 128, 77, 48, 49, 55, 128, 77, 48, 49, 183,
+ 77, 48, 49, 54, 65, 128, 77, 48, 49, 54, 128, 77, 48, 49, 182, 77, 48,
+ 49, 53, 65, 128, 77, 48, 49, 53, 128, 77, 48, 49, 181, 77, 48, 49, 52,
+ 128, 77, 48, 49, 180, 77, 48, 49, 51, 128, 77, 48, 49, 179, 77, 48, 49,
50, 72, 128, 77, 48, 49, 50, 71, 128, 77, 48, 49, 50, 70, 128, 77, 48,
49, 50, 69, 128, 77, 48, 49, 50, 68, 128, 77, 48, 49, 50, 67, 128, 77,
48, 49, 50, 66, 128, 77, 48, 49, 50, 65, 128, 77, 48, 49, 50, 128, 77,
- 48, 49, 49, 128, 77, 48, 49, 48, 65, 128, 77, 48, 49, 48, 128, 77, 48,
- 48, 57, 128, 77, 48, 48, 56, 128, 77, 48, 48, 55, 128, 77, 48, 48, 54,
- 128, 77, 48, 48, 53, 128, 77, 48, 48, 52, 128, 77, 48, 48, 51, 65, 128,
- 77, 48, 48, 51, 128, 77, 48, 48, 50, 128, 77, 48, 48, 49, 66, 128, 77,
- 48, 48, 49, 65, 128, 77, 48, 48, 49, 128, 76, 218, 76, 89, 89, 128, 76,
- 89, 88, 128, 76, 89, 84, 128, 76, 89, 82, 88, 128, 76, 89, 82, 128, 76,
- 89, 80, 128, 76, 89, 68, 73, 65, 206, 76, 89, 67, 73, 65, 206, 76, 88,
- 128, 76, 87, 79, 79, 128, 76, 87, 79, 128, 76, 87, 73, 73, 128, 76, 87,
- 73, 128, 76, 87, 69, 128, 76, 87, 65, 65, 128, 76, 87, 65, 128, 76, 85,
- 88, 128, 76, 85, 85, 128, 76, 85, 84, 128, 76, 85, 82, 88, 128, 76, 85,
- 80, 128, 76, 85, 79, 88, 128, 76, 85, 79, 84, 128, 76, 85, 79, 80, 128,
- 76, 85, 79, 128, 76, 85, 78, 71, 83, 73, 128, 76, 85, 78, 65, 84, 197,
- 76, 85, 205, 76, 85, 76, 128, 76, 85, 73, 83, 128, 76, 85, 72, 85, 82,
- 128, 76, 85, 72, 128, 76, 85, 71, 71, 65, 71, 69, 128, 76, 85, 71, 65,
- 76, 128, 76, 85, 71, 65, 204, 76, 85, 69, 128, 76, 85, 65, 69, 80, 128,
- 76, 85, 51, 128, 76, 85, 50, 128, 76, 85, 178, 76, 82, 79, 128, 76, 82,
- 77, 128, 76, 82, 73, 128, 76, 82, 69, 128, 76, 79, 90, 69, 78, 71, 69,
- 128, 76, 79, 90, 69, 78, 71, 197, 76, 79, 88, 128, 76, 79, 87, 69, 82,
- 69, 196, 76, 79, 87, 69, 210, 76, 79, 87, 45, 185, 76, 79, 86, 197, 76,
- 79, 85, 82, 69, 128, 76, 79, 85, 68, 83, 80, 69, 65, 75, 69, 82, 128, 76,
- 79, 85, 68, 76, 217, 76, 79, 84, 85, 83, 128, 76, 79, 84, 128, 76, 79,
- 82, 82, 89, 128, 76, 79, 82, 82, 65, 73, 78, 69, 128, 76, 79, 81, 128,
- 76, 79, 80, 128, 76, 79, 79, 84, 128, 76, 79, 79, 80, 69, 196, 76, 79,
- 79, 80, 128, 76, 79, 79, 208, 76, 79, 79, 78, 128, 76, 79, 79, 203, 76,
- 79, 79, 128, 76, 79, 78, 83, 85, 77, 128, 76, 79, 78, 71, 65, 128, 76,
- 79, 78, 71, 193, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 89, 82,
- 128, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 83, 79, 204, 76, 79,
- 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 79, 83, 211, 76, 79, 78, 71, 45,
- 66, 82, 65, 78, 67, 72, 45, 77, 65, 68, 210, 76, 79, 78, 71, 45, 66, 82,
- 65, 78, 67, 72, 45, 72, 65, 71, 65, 76, 204, 76, 79, 78, 71, 45, 66, 82,
- 65, 78, 67, 72, 45, 65, 210, 76, 79, 77, 77, 65, 69, 128, 76, 79, 77,
- 128, 76, 79, 205, 76, 79, 76, 76, 73, 80, 79, 80, 128, 76, 79, 76, 76,
- 128, 76, 79, 71, 210, 76, 79, 71, 79, 84, 89, 80, 197, 76, 79, 71, 79,
- 71, 82, 65, 205, 76, 79, 71, 128, 76, 79, 68, 69, 83, 84, 79, 78, 69,
- 128, 76, 79, 67, 79, 77, 79, 84, 73, 86, 69, 128, 76, 79, 67, 75, 73, 78,
- 71, 45, 83, 72, 73, 70, 212, 76, 79, 67, 203, 76, 79, 67, 65, 84, 73, 86,
- 69, 128, 76, 79, 67, 65, 84, 73, 79, 206, 76, 79, 65, 128, 76, 78, 128,
- 76, 76, 85, 85, 128, 76, 76, 79, 79, 128, 76, 76, 76, 85, 85, 128, 76,
- 76, 76, 85, 128, 76, 76, 76, 79, 79, 128, 76, 76, 76, 79, 128, 76, 76,
- 76, 73, 73, 128, 76, 76, 76, 73, 128, 76, 76, 76, 69, 69, 128, 76, 76,
- 76, 69, 128, 76, 76, 76, 65, 85, 128, 76, 76, 76, 65, 73, 128, 76, 76,
- 76, 65, 65, 128, 76, 76, 76, 65, 128, 76, 76, 76, 128, 76, 74, 85, 68,
- 73, 74, 69, 128, 76, 74, 69, 128, 76, 74, 128, 76, 73, 88, 128, 76, 73,
- 87, 78, 128, 76, 73, 86, 82, 197, 76, 73, 84, 84, 76, 197, 76, 73, 84,
- 84, 69, 210, 76, 73, 84, 82, 193, 76, 73, 84, 128, 76, 73, 83, 213, 76,
- 73, 82, 193, 76, 73, 81, 85, 73, 196, 76, 73, 81, 128, 76, 73, 80, 83,
- 84, 73, 67, 75, 128, 76, 73, 78, 75, 73, 78, 199, 76, 73, 78, 203, 76,
- 73, 78, 71, 83, 65, 128, 76, 73, 78, 69, 83, 128, 76, 73, 78, 69, 211,
- 76, 73, 78, 69, 45, 57, 128, 76, 73, 78, 69, 45, 55, 128, 76, 73, 78, 69,
- 45, 51, 128, 76, 73, 78, 69, 45, 49, 128, 76, 73, 77, 77, 85, 52, 128,
- 76, 73, 77, 77, 85, 50, 128, 76, 73, 77, 77, 85, 128, 76, 73, 77, 77,
- 213, 76, 73, 77, 73, 84, 69, 196, 76, 73, 77, 73, 84, 65, 84, 73, 79, 78,
- 128, 76, 73, 77, 73, 84, 128, 76, 73, 77, 69, 128, 76, 73, 77, 66, 213,
- 76, 73, 76, 89, 128, 76, 73, 76, 73, 84, 72, 128, 76, 73, 76, 128, 76,
- 73, 71, 72, 84, 78, 73, 78, 71, 128, 76, 73, 71, 72, 84, 72, 79, 85, 83,
- 69, 128, 76, 73, 71, 72, 84, 128, 76, 73, 70, 69, 128, 76, 73, 69, 88,
- 128, 76, 73, 69, 84, 128, 76, 73, 69, 80, 128, 76, 73, 69, 69, 128, 76,
- 73, 69, 128, 76, 73, 68, 128, 76, 73, 66, 82, 65, 128, 76, 73, 66, 69,
- 82, 84, 89, 128, 76, 73, 65, 66, 73, 76, 73, 84, 217, 76, 72, 73, 73,
- 128, 76, 72, 65, 86, 73, 89, 65, 78, 73, 128, 76, 72, 65, 199, 76, 72,
- 65, 65, 128, 76, 72, 128, 76, 69, 90, 72, 128, 76, 69, 88, 128, 76, 69,
- 86, 69, 204, 76, 69, 85, 77, 128, 76, 69, 85, 65, 69, 80, 128, 76, 69,
- 85, 65, 69, 77, 128, 76, 69, 85, 128, 76, 69, 213, 76, 69, 84, 84, 69,
- 82, 83, 128, 76, 69, 84, 84, 69, 82, 128, 76, 69, 212, 76, 69, 83, 83,
- 69, 210, 76, 69, 83, 83, 45, 84, 72, 65, 78, 128, 76, 69, 83, 83, 45, 84,
- 72, 65, 206, 76, 69, 80, 128, 76, 69, 79, 80, 65, 82, 68, 128, 76, 69,
- 79, 128, 76, 69, 78, 84, 73, 67, 85, 76, 65, 210, 76, 69, 78, 73, 83,
- 128, 76, 69, 78, 71, 84, 72, 69, 78, 69, 82, 128, 76, 69, 78, 71, 84,
- 200, 76, 69, 78, 71, 65, 128, 76, 69, 78, 71, 193, 76, 69, 77, 79, 78,
- 128, 76, 69, 77, 79, 73, 128, 76, 69, 76, 69, 84, 128, 76, 69, 76, 69,
- 212, 76, 69, 203, 76, 69, 73, 77, 77, 65, 128, 76, 69, 73, 77, 77, 193,
- 76, 69, 71, 83, 128, 76, 69, 71, 73, 79, 78, 128, 76, 69, 71, 69, 84, 79,
- 211, 76, 69, 71, 128, 76, 69, 70, 84, 87, 65, 82, 68, 83, 128, 76, 69,
- 70, 84, 45, 84, 79, 45, 82, 73, 71, 72, 212, 76, 69, 70, 84, 45, 83, 84,
- 69, 205, 76, 69, 70, 84, 45, 83, 73, 68, 197, 76, 69, 70, 84, 45, 83, 72,
- 65, 68, 69, 196, 76, 69, 70, 84, 45, 80, 79, 73, 78, 84, 73, 78, 199, 76,
- 69, 70, 84, 45, 72, 65, 78, 68, 69, 196, 76, 69, 70, 84, 45, 72, 65, 78,
- 196, 76, 69, 70, 84, 45, 70, 65, 67, 73, 78, 199, 76, 69, 70, 84, 128,
- 76, 69, 69, 82, 65, 69, 87, 65, 128, 76, 69, 69, 75, 128, 76, 69, 69, 69,
- 69, 128, 76, 69, 68, 71, 69, 82, 128, 76, 69, 65, 84, 72, 69, 82, 128,
- 76, 69, 65, 70, 128, 76, 69, 65, 198, 76, 69, 65, 68, 73, 78, 199, 76,
- 69, 65, 68, 69, 82, 128, 76, 69, 65, 196, 76, 68, 65, 78, 128, 76, 68,
- 50, 128, 76, 67, 201, 76, 67, 197, 76, 65, 90, 217, 76, 65, 89, 65, 78,
- 78, 65, 128, 76, 65, 88, 128, 76, 65, 87, 128, 76, 65, 215, 76, 65, 85,
- 76, 65, 128, 76, 65, 85, 75, 65, 218, 76, 65, 84, 73, 78, 65, 84, 197,
+ 48, 49, 178, 77, 48, 49, 49, 128, 77, 48, 49, 177, 77, 48, 49, 48, 65,
+ 128, 77, 48, 49, 48, 128, 77, 48, 49, 176, 77, 48, 48, 57, 128, 77, 48,
+ 48, 185, 77, 48, 48, 56, 128, 77, 48, 48, 184, 77, 48, 48, 55, 128, 77,
+ 48, 48, 183, 77, 48, 48, 54, 128, 77, 48, 48, 182, 77, 48, 48, 53, 128,
+ 77, 48, 48, 181, 77, 48, 48, 52, 128, 77, 48, 48, 180, 77, 48, 48, 51,
+ 65, 128, 77, 48, 48, 51, 128, 77, 48, 48, 179, 77, 48, 48, 50, 128, 77,
+ 48, 48, 178, 77, 48, 48, 49, 66, 128, 77, 48, 48, 49, 65, 128, 77, 48,
+ 48, 49, 128, 77, 48, 48, 177, 76, 218, 76, 89, 89, 128, 76, 89, 88, 128,
+ 76, 89, 84, 128, 76, 89, 82, 88, 128, 76, 89, 82, 128, 76, 89, 80, 128,
+ 76, 89, 73, 84, 128, 76, 89, 68, 73, 65, 206, 76, 89, 67, 73, 65, 206,
+ 76, 88, 128, 76, 87, 79, 79, 128, 76, 87, 79, 128, 76, 87, 73, 73, 128,
+ 76, 87, 73, 128, 76, 87, 69, 128, 76, 87, 65, 65, 128, 76, 87, 65, 128,
+ 76, 85, 88, 128, 76, 85, 85, 128, 76, 85, 84, 128, 76, 85, 82, 88, 128,
+ 76, 85, 80, 128, 76, 85, 79, 88, 128, 76, 85, 79, 84, 128, 76, 85, 79,
+ 80, 128, 76, 85, 79, 128, 76, 85, 78, 71, 83, 73, 128, 76, 85, 78, 65,
+ 84, 197, 76, 85, 205, 76, 85, 76, 128, 76, 85, 73, 83, 128, 76, 85, 72,
+ 85, 82, 128, 76, 85, 72, 128, 76, 85, 200, 76, 85, 71, 71, 65, 71, 69,
+ 128, 76, 85, 71, 65, 76, 128, 76, 85, 71, 65, 204, 76, 85, 69, 128, 76,
+ 85, 197, 76, 85, 66, 128, 76, 85, 65, 69, 80, 128, 76, 85, 51, 128, 76,
+ 85, 50, 128, 76, 85, 178, 76, 82, 79, 128, 76, 82, 77, 128, 76, 82, 73,
+ 128, 76, 82, 69, 128, 76, 79, 90, 69, 78, 71, 69, 128, 76, 79, 90, 69,
+ 78, 71, 197, 76, 79, 88, 128, 76, 79, 87, 69, 82, 69, 196, 76, 79, 87,
+ 69, 210, 76, 79, 87, 45, 82, 69, 86, 69, 82, 83, 69, 68, 45, 185, 76, 79,
+ 87, 45, 77, 73, 196, 76, 79, 87, 45, 70, 65, 76, 76, 73, 78, 199, 76, 79,
+ 87, 45, 185, 76, 79, 86, 197, 76, 79, 85, 82, 69, 128, 76, 79, 85, 68,
+ 83, 80, 69, 65, 75, 69, 82, 128, 76, 79, 85, 68, 76, 217, 76, 79, 84, 85,
+ 83, 128, 76, 79, 84, 128, 76, 79, 82, 82, 89, 128, 76, 79, 82, 82, 65,
+ 73, 78, 69, 128, 76, 79, 81, 128, 76, 79, 80, 128, 76, 79, 79, 84, 128,
+ 76, 79, 79, 80, 69, 196, 76, 79, 79, 80, 128, 76, 79, 79, 208, 76, 79,
+ 79, 78, 128, 76, 79, 79, 203, 76, 79, 79, 128, 76, 79, 78, 83, 85, 77,
+ 128, 76, 79, 78, 71, 65, 128, 76, 79, 78, 71, 193, 76, 79, 78, 71, 45,
+ 66, 82, 65, 78, 67, 72, 45, 89, 82, 128, 76, 79, 78, 71, 45, 66, 82, 65,
+ 78, 67, 72, 45, 83, 79, 204, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72,
+ 45, 79, 83, 211, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 77, 65,
+ 68, 210, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 72, 65, 71, 65,
+ 76, 204, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 65, 210, 76, 79,
+ 77, 77, 65, 69, 128, 76, 79, 77, 128, 76, 79, 205, 76, 79, 76, 76, 73,
+ 80, 79, 80, 128, 76, 79, 76, 76, 128, 76, 79, 71, 210, 76, 79, 71, 79,
+ 84, 89, 80, 197, 76, 79, 71, 79, 71, 82, 65, 205, 76, 79, 71, 128, 76,
+ 79, 68, 69, 83, 84, 79, 78, 69, 128, 76, 79, 67, 79, 77, 79, 84, 73, 86,
+ 69, 128, 76, 79, 67, 75, 73, 78, 71, 45, 83, 72, 73, 70, 212, 76, 79, 67,
+ 203, 76, 79, 67, 65, 84, 73, 86, 69, 128, 76, 79, 67, 65, 84, 73, 79, 78,
+ 45, 87, 65, 76, 76, 80, 76, 65, 78, 197, 76, 79, 67, 65, 84, 73, 79, 78,
+ 45, 70, 76, 79, 79, 82, 80, 76, 65, 78, 197, 76, 79, 67, 65, 84, 73, 79,
+ 206, 76, 79, 65, 128, 76, 78, 128, 76, 76, 85, 85, 128, 76, 76, 79, 79,
+ 128, 76, 76, 76, 85, 85, 128, 76, 76, 76, 85, 128, 76, 76, 76, 79, 79,
+ 128, 76, 76, 76, 79, 128, 76, 76, 76, 73, 73, 128, 76, 76, 76, 73, 128,
+ 76, 76, 76, 69, 69, 128, 76, 76, 76, 69, 128, 76, 76, 76, 65, 85, 128,
+ 76, 76, 76, 65, 73, 128, 76, 76, 76, 65, 65, 128, 76, 76, 76, 65, 128,
+ 76, 76, 76, 128, 76, 74, 85, 68, 73, 74, 69, 128, 76, 74, 69, 128, 76,
+ 74, 128, 76, 73, 88, 128, 76, 73, 87, 78, 128, 76, 73, 86, 82, 197, 76,
+ 73, 84, 84, 76, 69, 128, 76, 73, 84, 84, 76, 197, 76, 73, 84, 84, 69,
+ 210, 76, 73, 84, 82, 193, 76, 73, 84, 200, 76, 73, 83, 213, 76, 73, 83,
+ 128, 76, 73, 82, 193, 76, 73, 81, 85, 73, 196, 76, 73, 81, 128, 76, 73,
+ 80, 83, 84, 73, 67, 75, 128, 76, 73, 80, 211, 76, 73, 208, 76, 73, 78,
+ 75, 73, 78, 199, 76, 73, 78, 75, 69, 196, 76, 73, 78, 203, 76, 73, 78,
+ 71, 83, 65, 128, 76, 73, 78, 69, 83, 128, 76, 73, 78, 69, 211, 76, 73,
+ 78, 69, 45, 57, 128, 76, 73, 78, 69, 45, 55, 128, 76, 73, 78, 69, 45, 51,
+ 128, 76, 73, 78, 69, 45, 49, 128, 76, 73, 77, 77, 85, 52, 128, 76, 73,
+ 77, 77, 85, 50, 128, 76, 73, 77, 77, 85, 128, 76, 73, 77, 77, 213, 76,
+ 73, 77, 73, 84, 69, 196, 76, 73, 77, 73, 84, 65, 84, 73, 79, 78, 128, 76,
+ 73, 77, 73, 84, 128, 76, 73, 77, 69, 128, 76, 73, 77, 66, 213, 76, 73,
+ 77, 66, 211, 76, 73, 77, 194, 76, 73, 76, 89, 128, 76, 73, 76, 73, 84,
+ 72, 128, 76, 73, 76, 128, 76, 73, 71, 72, 84, 78, 73, 78, 71, 128, 76,
+ 73, 71, 72, 84, 78, 73, 78, 199, 76, 73, 71, 72, 84, 72, 79, 85, 83, 69,
+ 128, 76, 73, 71, 72, 84, 128, 76, 73, 71, 65, 84, 73, 78, 199, 76, 73,
+ 70, 84, 69, 82, 128, 76, 73, 70, 69, 128, 76, 73, 69, 88, 128, 76, 73,
+ 69, 84, 128, 76, 73, 69, 80, 128, 76, 73, 69, 69, 128, 76, 73, 69, 128,
+ 76, 73, 68, 128, 76, 73, 67, 75, 73, 78, 199, 76, 73, 66, 82, 65, 128,
+ 76, 73, 66, 69, 82, 84, 89, 128, 76, 73, 65, 66, 73, 76, 73, 84, 217, 76,
+ 72, 73, 73, 128, 76, 72, 65, 86, 73, 89, 65, 78, 73, 128, 76, 72, 65,
+ 199, 76, 72, 65, 65, 128, 76, 72, 128, 76, 69, 90, 72, 128, 76, 69, 88,
+ 128, 76, 69, 86, 73, 84, 65, 84, 73, 78, 71, 128, 76, 69, 85, 77, 128,
+ 76, 69, 85, 65, 69, 80, 128, 76, 69, 85, 65, 69, 77, 128, 76, 69, 85,
+ 128, 76, 69, 213, 76, 69, 84, 84, 69, 82, 83, 128, 76, 69, 84, 84, 69,
+ 82, 128, 76, 69, 212, 76, 69, 83, 83, 69, 210, 76, 69, 83, 83, 45, 84,
+ 72, 65, 78, 128, 76, 69, 83, 83, 45, 84, 72, 65, 206, 76, 69, 80, 67, 72,
+ 193, 76, 69, 80, 128, 76, 69, 79, 80, 65, 82, 68, 128, 76, 69, 79, 128,
+ 76, 69, 78, 84, 73, 67, 85, 76, 65, 210, 76, 69, 78, 73, 83, 128, 76, 69,
+ 78, 73, 211, 76, 69, 78, 71, 84, 72, 69, 78, 69, 82, 128, 76, 69, 78, 71,
+ 84, 72, 45, 55, 128, 76, 69, 78, 71, 84, 72, 45, 54, 128, 76, 69, 78, 71,
+ 84, 72, 45, 53, 128, 76, 69, 78, 71, 84, 72, 45, 52, 128, 76, 69, 78, 71,
+ 84, 72, 45, 51, 128, 76, 69, 78, 71, 84, 72, 45, 50, 128, 76, 69, 78, 71,
+ 84, 72, 45, 49, 128, 76, 69, 78, 71, 84, 200, 76, 69, 78, 71, 65, 128,
+ 76, 69, 78, 71, 193, 76, 69, 77, 79, 78, 128, 76, 69, 77, 79, 73, 128,
+ 76, 69, 76, 69, 84, 128, 76, 69, 76, 69, 212, 76, 69, 203, 76, 69, 73,
+ 77, 77, 65, 128, 76, 69, 73, 77, 77, 193, 76, 69, 73, 128, 76, 69, 71,
+ 83, 128, 76, 69, 71, 73, 79, 78, 128, 76, 69, 71, 69, 84, 79, 211, 76,
+ 69, 71, 128, 76, 69, 199, 76, 69, 70, 84, 87, 65, 82, 68, 83, 128, 76,
+ 69, 70, 84, 45, 84, 79, 45, 82, 73, 71, 72, 212, 76, 69, 70, 84, 45, 83,
+ 84, 69, 205, 76, 69, 70, 84, 45, 83, 73, 68, 197, 76, 69, 70, 84, 45, 83,
+ 72, 65, 68, 69, 196, 76, 69, 70, 84, 45, 80, 79, 73, 78, 84, 73, 78, 199,
+ 76, 69, 70, 84, 45, 76, 73, 71, 72, 84, 69, 196, 76, 69, 70, 84, 45, 72,
+ 65, 78, 68, 69, 196, 76, 69, 70, 84, 45, 72, 65, 78, 196, 76, 69, 70, 84,
+ 45, 70, 65, 67, 73, 78, 199, 76, 69, 70, 84, 128, 76, 69, 69, 82, 65, 69,
+ 87, 65, 128, 76, 69, 69, 75, 128, 76, 69, 69, 69, 69, 128, 76, 69, 68,
+ 71, 69, 82, 128, 76, 69, 65, 84, 72, 69, 82, 128, 76, 69, 65, 70, 128,
+ 76, 69, 65, 198, 76, 69, 65, 68, 73, 78, 199, 76, 69, 65, 68, 69, 82,
+ 128, 76, 69, 65, 196, 76, 68, 65, 78, 128, 76, 68, 50, 128, 76, 67, 201,
+ 76, 67, 197, 76, 65, 90, 217, 76, 65, 89, 65, 78, 78, 65, 128, 76, 65,
+ 88, 128, 76, 65, 87, 128, 76, 65, 215, 76, 65, 85, 76, 65, 128, 76, 65,
+ 85, 75, 65, 218, 76, 65, 85, 74, 128, 76, 65, 84, 73, 78, 65, 84, 197,
76, 65, 84, 73, 75, 128, 76, 65, 84, 69, 82, 65, 204, 76, 65, 84, 197,
- 76, 65, 83, 212, 76, 65, 82, 89, 78, 71, 69, 65, 204, 76, 65, 82, 71, 69,
- 210, 76, 65, 82, 71, 69, 128, 76, 65, 82, 71, 197, 76, 65, 81, 128, 76,
- 65, 80, 65, 81, 128, 76, 65, 80, 128, 76, 65, 78, 84, 69, 82, 78, 128,
- 76, 65, 78, 71, 85, 65, 71, 197, 76, 65, 78, 69, 83, 128, 76, 65, 77, 69,
- 68, 72, 128, 76, 65, 77, 69, 68, 128, 76, 65, 77, 69, 196, 76, 65, 77,
- 69, 128, 76, 65, 77, 197, 76, 65, 77, 68, 65, 128, 76, 65, 77, 68, 128,
- 76, 65, 77, 66, 68, 193, 76, 65, 77, 65, 68, 72, 128, 76, 65, 76, 128,
- 76, 65, 204, 76, 65, 75, 75, 72, 65, 78, 71, 89, 65, 79, 128, 76, 65, 74,
- 65, 78, 89, 65, 76, 65, 78, 128, 76, 65, 201, 76, 65, 72, 83, 72, 85,
- 128, 76, 65, 72, 128, 76, 65, 71, 85, 83, 128, 76, 65, 71, 213, 76, 65,
- 71, 65, 82, 128, 76, 65, 71, 65, 210, 76, 65, 71, 65, 66, 128, 76, 65,
- 71, 65, 194, 76, 65, 69, 86, 128, 76, 65, 69, 128, 76, 65, 68, 217, 76,
- 65, 67, 75, 128, 76, 65, 67, 65, 128, 76, 65, 66, 79, 85, 82, 73, 78, 71,
- 128, 76, 65, 66, 79, 82, 128, 76, 65, 66, 73, 65, 76, 73, 90, 65, 84, 73,
- 79, 206, 76, 65, 66, 73, 65, 204, 76, 65, 66, 65, 84, 128, 76, 65, 65,
- 78, 65, 69, 128, 76, 65, 65, 78, 128, 76, 65, 65, 77, 85, 128, 76, 65,
- 65, 77, 128, 76, 65, 65, 73, 128, 76, 48, 48, 54, 65, 128, 76, 48, 48,
+ 76, 65, 83, 212, 76, 65, 82, 89, 78, 71, 69, 65, 204, 76, 65, 82, 201,
+ 76, 65, 82, 71, 69, 83, 84, 128, 76, 65, 82, 71, 69, 210, 76, 65, 82, 71,
+ 69, 128, 76, 65, 82, 71, 197, 76, 65, 81, 128, 76, 65, 80, 65, 81, 128,
+ 76, 65, 207, 76, 65, 78, 84, 69, 82, 78, 128, 76, 65, 78, 71, 85, 65, 71,
+ 197, 76, 65, 78, 69, 83, 128, 76, 65, 78, 128, 76, 65, 77, 80, 128, 76,
+ 65, 77, 69, 68, 72, 128, 76, 65, 77, 69, 68, 128, 76, 65, 77, 69, 196,
+ 76, 65, 77, 69, 128, 76, 65, 77, 197, 76, 65, 77, 68, 65, 128, 76, 65,
+ 77, 68, 128, 76, 65, 77, 66, 68, 193, 76, 65, 77, 65, 68, 72, 128, 76,
+ 65, 76, 128, 76, 65, 204, 76, 65, 75, 75, 72, 65, 78, 71, 89, 65, 79,
+ 128, 76, 65, 75, 45, 55, 52, 57, 128, 76, 65, 75, 45, 55, 50, 52, 128,
+ 76, 65, 75, 45, 54, 54, 56, 128, 76, 65, 75, 45, 54, 52, 56, 128, 76, 65,
+ 75, 45, 54, 52, 184, 76, 65, 75, 45, 54, 51, 54, 128, 76, 65, 75, 45, 54,
+ 49, 55, 128, 76, 65, 75, 45, 54, 49, 183, 76, 65, 75, 45, 54, 48, 56,
+ 128, 76, 65, 75, 45, 53, 53, 48, 128, 76, 65, 75, 45, 52, 57, 53, 128,
+ 76, 65, 75, 45, 52, 57, 51, 128, 76, 65, 75, 45, 52, 57, 50, 128, 76, 65,
+ 75, 45, 52, 57, 48, 128, 76, 65, 75, 45, 52, 56, 51, 128, 76, 65, 75, 45,
+ 52, 55, 48, 128, 76, 65, 75, 45, 52, 53, 55, 128, 76, 65, 75, 45, 52, 53,
+ 48, 128, 76, 65, 75, 45, 52, 52, 57, 128, 76, 65, 75, 45, 52, 52, 185,
+ 76, 65, 75, 45, 52, 52, 49, 128, 76, 65, 75, 45, 51, 57, 48, 128, 76, 65,
+ 75, 45, 51, 56, 52, 128, 76, 65, 75, 45, 51, 56, 51, 128, 76, 65, 75, 45,
+ 51, 52, 56, 128, 76, 65, 75, 45, 51, 52, 55, 128, 76, 65, 75, 45, 51, 52,
+ 51, 128, 76, 65, 75, 45, 50, 54, 54, 128, 76, 65, 75, 45, 50, 54, 53,
+ 128, 76, 65, 75, 45, 50, 51, 56, 128, 76, 65, 75, 45, 50, 50, 56, 128,
+ 76, 65, 75, 45, 50, 50, 53, 128, 76, 65, 75, 45, 50, 50, 48, 128, 76, 65,
+ 75, 45, 50, 49, 57, 128, 76, 65, 75, 45, 50, 49, 48, 128, 76, 65, 75, 45,
+ 49, 52, 50, 128, 76, 65, 75, 45, 49, 51, 48, 128, 76, 65, 75, 45, 48, 57,
+ 50, 128, 76, 65, 75, 45, 48, 56, 49, 128, 76, 65, 75, 45, 48, 56, 177,
+ 76, 65, 75, 45, 48, 56, 48, 128, 76, 65, 75, 45, 48, 55, 185, 76, 65, 75,
+ 45, 48, 54, 50, 128, 76, 65, 75, 45, 48, 53, 49, 128, 76, 65, 75, 45, 48,
+ 53, 48, 128, 76, 65, 75, 45, 48, 51, 48, 128, 76, 65, 75, 45, 48, 50, 53,
+ 128, 76, 65, 75, 45, 48, 50, 49, 128, 76, 65, 75, 45, 48, 50, 48, 128,
+ 76, 65, 75, 45, 48, 48, 51, 128, 76, 65, 74, 65, 78, 89, 65, 76, 65, 78,
+ 128, 76, 65, 73, 78, 199, 76, 65, 201, 76, 65, 72, 83, 72, 85, 128, 76,
+ 65, 72, 128, 76, 65, 71, 85, 83, 128, 76, 65, 71, 213, 76, 65, 71, 65,
+ 82, 128, 76, 65, 71, 65, 210, 76, 65, 71, 65, 66, 128, 76, 65, 71, 65,
+ 194, 76, 65, 69, 86, 128, 76, 65, 69, 128, 76, 65, 68, 217, 76, 65, 67,
+ 75, 128, 76, 65, 67, 65, 128, 76, 65, 66, 79, 85, 82, 73, 78, 71, 128,
+ 76, 65, 66, 79, 82, 128, 76, 65, 66, 73, 65, 76, 73, 90, 65, 84, 73, 79,
+ 206, 76, 65, 66, 73, 65, 204, 76, 65, 66, 69, 76, 128, 76, 65, 66, 65,
+ 84, 128, 76, 65, 65, 78, 65, 69, 128, 76, 65, 65, 78, 128, 76, 65, 65,
+ 77, 85, 128, 76, 65, 65, 77, 128, 76, 65, 65, 73, 128, 76, 54, 128, 76,
+ 52, 128, 76, 51, 128, 76, 50, 128, 76, 48, 48, 54, 65, 128, 76, 48, 48,
50, 65, 128, 76, 45, 84, 89, 80, 197, 76, 45, 83, 72, 65, 80, 69, 196,
75, 89, 85, 82, 73, 73, 128, 75, 89, 85, 128, 75, 89, 79, 128, 75, 89,
76, 73, 83, 77, 65, 128, 75, 89, 73, 128, 75, 89, 69, 128, 75, 89, 65,
@@ -2207,72 +2465,82 @@ static unsigned char lexicon[] = {
128, 75, 88, 87, 69, 69, 128, 75, 88, 87, 69, 128, 75, 88, 87, 65, 65,
128, 75, 88, 87, 65, 128, 75, 88, 85, 128, 75, 88, 79, 128, 75, 88, 73,
128, 75, 88, 69, 69, 128, 75, 88, 69, 128, 75, 88, 65, 65, 128, 75, 88,
- 65, 128, 75, 87, 85, 51, 49, 56, 128, 75, 87, 79, 79, 128, 75, 87, 79,
- 128, 75, 87, 73, 73, 128, 75, 87, 73, 128, 75, 87, 69, 69, 128, 75, 87,
- 69, 128, 75, 87, 65, 89, 128, 75, 87, 65, 69, 84, 128, 75, 87, 65, 65,
- 128, 75, 86, 65, 128, 75, 86, 128, 75, 85, 88, 128, 75, 85, 85, 72, 128,
- 75, 85, 84, 128, 75, 85, 83, 77, 65, 128, 75, 85, 83, 72, 85, 50, 128,
- 75, 85, 82, 88, 128, 75, 85, 82, 85, 90, 69, 73, 82, 79, 128, 75, 85, 82,
- 84, 128, 75, 85, 82, 79, 79, 78, 69, 128, 75, 85, 82, 128, 75, 85, 210,
- 75, 85, 81, 128, 75, 85, 79, 88, 128, 75, 85, 79, 80, 128, 75, 85, 79,
- 208, 75, 85, 79, 77, 128, 75, 85, 79, 128, 75, 85, 78, 71, 128, 75, 85,
- 78, 68, 68, 65, 76, 73, 89, 65, 128, 75, 85, 76, 128, 75, 85, 204, 75,
- 85, 69, 84, 128, 75, 85, 55, 128, 75, 85, 52, 128, 75, 85, 180, 75, 85,
- 51, 128, 75, 85, 179, 75, 84, 128, 75, 83, 83, 85, 85, 128, 75, 83, 83,
- 85, 128, 75, 83, 83, 79, 79, 128, 75, 83, 83, 79, 128, 75, 83, 83, 73,
- 73, 128, 75, 83, 83, 73, 128, 75, 83, 83, 69, 69, 128, 75, 83, 83, 69,
- 128, 75, 83, 83, 65, 85, 128, 75, 83, 83, 65, 73, 128, 75, 83, 83, 65,
- 65, 128, 75, 83, 83, 65, 128, 75, 83, 83, 128, 75, 83, 73, 128, 75, 82,
- 69, 77, 65, 83, 84, 73, 128, 75, 82, 65, 84, 73, 77, 79, 89, 80, 79, 82,
- 82, 79, 79, 78, 128, 75, 82, 65, 84, 73, 77, 79, 75, 79, 85, 70, 73, 83,
- 77, 65, 128, 75, 82, 65, 84, 73, 77, 65, 84, 65, 128, 75, 82, 65, 84, 73,
- 77, 193, 75, 80, 85, 128, 75, 80, 79, 81, 128, 75, 80, 79, 79, 128, 75,
- 80, 79, 128, 75, 80, 73, 128, 75, 80, 69, 85, 88, 128, 75, 80, 69, 69,
- 128, 75, 80, 69, 128, 75, 80, 65, 82, 65, 81, 128, 75, 80, 65, 78, 128,
- 75, 80, 65, 128, 75, 79, 88, 128, 75, 79, 86, 85, 85, 128, 75, 79, 84,
- 79, 128, 75, 79, 82, 85, 78, 65, 128, 75, 79, 82, 79, 78, 73, 83, 128,
- 75, 79, 82, 69, 65, 206, 75, 79, 82, 65, 78, 73, 195, 75, 79, 81, 78, 68,
- 79, 78, 128, 75, 79, 80, 80, 65, 128, 75, 79, 80, 128, 75, 79, 79, 80,
- 79, 128, 75, 79, 79, 77, 85, 85, 84, 128, 75, 79, 79, 128, 75, 79, 78,
- 84, 69, 86, 77, 65, 128, 75, 79, 78, 84, 69, 86, 77, 193, 75, 79, 77,
- 201, 75, 79, 77, 66, 85, 86, 65, 128, 75, 79, 77, 66, 85, 86, 193, 75,
- 79, 77, 66, 213, 75, 79, 75, 79, 128, 75, 79, 75, 128, 75, 79, 203, 75,
- 79, 73, 128, 75, 79, 201, 75, 79, 72, 128, 75, 79, 71, 72, 79, 77, 128,
- 75, 79, 69, 84, 128, 75, 79, 65, 76, 65, 128, 75, 79, 65, 128, 75, 78,
- 73, 71, 72, 84, 128, 75, 78, 73, 71, 72, 212, 75, 78, 73, 70, 69, 128,
- 75, 78, 73, 70, 197, 75, 77, 128, 75, 205, 75, 76, 73, 84, 79, 78, 128,
- 75, 76, 65, 83, 77, 65, 128, 75, 76, 65, 83, 77, 193, 75, 76, 65, 128,
- 75, 76, 128, 75, 75, 85, 128, 75, 75, 79, 128, 75, 75, 73, 128, 75, 75,
- 69, 69, 128, 75, 75, 69, 128, 75, 75, 65, 128, 75, 75, 128, 75, 74, 69,
- 128, 75, 73, 89, 69, 79, 75, 45, 84, 73, 75, 69, 85, 84, 128, 75, 73, 89,
- 69, 79, 75, 45, 83, 73, 79, 83, 45, 75, 73, 89, 69, 79, 75, 128, 75, 73,
- 89, 69, 79, 75, 45, 82, 73, 69, 85, 76, 128, 75, 73, 89, 69, 79, 75, 45,
- 80, 73, 69, 85, 80, 128, 75, 73, 89, 69, 79, 75, 45, 78, 73, 69, 85, 78,
- 128, 75, 73, 89, 69, 79, 75, 45, 75, 72, 73, 69, 85, 75, 72, 128, 75, 73,
- 89, 69, 79, 75, 45, 67, 72, 73, 69, 85, 67, 72, 128, 75, 73, 89, 69, 79,
- 203, 75, 73, 88, 128, 75, 73, 84, 128, 75, 73, 83, 83, 73, 78, 199, 75,
- 73, 83, 83, 128, 75, 73, 83, 211, 75, 73, 83, 73, 77, 53, 128, 75, 73,
- 83, 73, 77, 181, 75, 73, 83, 72, 128, 75, 73, 83, 65, 76, 128, 75, 73,
- 82, 79, 87, 65, 84, 84, 79, 128, 75, 73, 82, 79, 77, 69, 69, 84, 79, 82,
- 85, 128, 75, 73, 82, 79, 71, 85, 82, 65, 77, 85, 128, 75, 73, 82, 79,
- 128, 75, 73, 82, 71, 72, 73, 218, 75, 73, 81, 128, 75, 73, 80, 128, 75,
- 73, 208, 75, 73, 78, 83, 72, 73, 80, 128, 75, 73, 78, 68, 69, 82, 71, 65,
- 82, 84, 69, 78, 128, 75, 73, 77, 79, 78, 79, 128, 75, 73, 73, 128, 75,
- 73, 72, 128, 75, 73, 69, 88, 128, 75, 73, 69, 80, 128, 75, 73, 69, 69,
- 77, 128, 75, 73, 69, 128, 75, 73, 68, 128, 75, 73, 196, 75, 73, 67, 75,
- 128, 75, 72, 90, 128, 75, 72, 87, 65, 73, 128, 75, 72, 85, 69, 78, 45,
- 76, 85, 197, 75, 72, 85, 69, 206, 75, 72, 85, 68, 65, 77, 128, 75, 72,
- 85, 65, 84, 128, 75, 72, 79, 85, 128, 75, 72, 79, 212, 75, 72, 79, 78,
- 128, 75, 72, 79, 77, 85, 84, 128, 75, 72, 79, 128, 75, 72, 207, 75, 72,
- 77, 213, 75, 72, 73, 84, 128, 75, 72, 73, 78, 89, 65, 128, 75, 72, 73,
- 69, 85, 75, 200, 75, 72, 73, 128, 75, 72, 72, 79, 128, 75, 72, 72, 65,
- 128, 75, 72, 69, 84, 72, 128, 75, 72, 69, 73, 128, 75, 72, 69, 69, 128,
- 75, 72, 69, 128, 75, 72, 65, 82, 79, 83, 72, 84, 72, 201, 75, 72, 65, 82,
+ 65, 128, 75, 87, 86, 128, 75, 87, 85, 51, 49, 56, 128, 75, 87, 79, 79,
+ 128, 75, 87, 79, 128, 75, 87, 77, 128, 75, 87, 73, 73, 128, 75, 87, 73,
+ 128, 75, 87, 69, 69, 128, 75, 87, 69, 128, 75, 87, 66, 128, 75, 87, 65,
+ 89, 128, 75, 87, 65, 69, 84, 128, 75, 87, 65, 65, 128, 75, 86, 65, 128,
+ 75, 86, 128, 75, 85, 88, 128, 75, 85, 86, 128, 75, 85, 85, 72, 128, 75,
+ 85, 84, 128, 75, 85, 83, 77, 65, 128, 75, 85, 83, 72, 85, 50, 128, 75,
+ 85, 83, 72, 85, 178, 75, 85, 82, 88, 128, 75, 85, 82, 85, 90, 69, 73, 82,
+ 79, 128, 75, 85, 82, 84, 128, 75, 85, 82, 79, 79, 78, 69, 128, 75, 85,
+ 82, 128, 75, 85, 210, 75, 85, 81, 128, 75, 85, 79, 88, 128, 75, 85, 79,
+ 80, 128, 75, 85, 79, 208, 75, 85, 79, 77, 128, 75, 85, 79, 128, 75, 85,
+ 78, 71, 128, 75, 85, 78, 68, 68, 65, 76, 73, 89, 65, 128, 75, 85, 76,
+ 128, 75, 85, 204, 75, 85, 71, 128, 75, 85, 69, 84, 128, 75, 85, 66, 128,
+ 75, 85, 65, 86, 128, 75, 85, 65, 66, 128, 75, 85, 65, 128, 75, 85, 55,
+ 128, 75, 85, 52, 128, 75, 85, 180, 75, 85, 51, 128, 75, 85, 179, 75, 84,
+ 128, 75, 83, 83, 85, 85, 128, 75, 83, 83, 85, 128, 75, 83, 83, 79, 79,
+ 128, 75, 83, 83, 79, 128, 75, 83, 83, 73, 73, 128, 75, 83, 83, 73, 128,
+ 75, 83, 83, 69, 69, 128, 75, 83, 83, 69, 128, 75, 83, 83, 65, 85, 128,
+ 75, 83, 83, 65, 73, 128, 75, 83, 83, 65, 65, 128, 75, 83, 83, 65, 128,
+ 75, 83, 83, 128, 75, 83, 73, 128, 75, 82, 69, 77, 65, 83, 84, 73, 128,
+ 75, 82, 65, 84, 73, 77, 79, 89, 80, 79, 82, 82, 79, 79, 78, 128, 75, 82,
+ 65, 84, 73, 77, 79, 75, 79, 85, 70, 73, 83, 77, 65, 128, 75, 82, 65, 84,
+ 73, 77, 65, 84, 65, 128, 75, 82, 65, 84, 73, 77, 193, 75, 80, 85, 128,
+ 75, 80, 79, 81, 128, 75, 80, 79, 79, 128, 75, 80, 79, 128, 75, 80, 73,
+ 128, 75, 80, 69, 85, 88, 128, 75, 80, 69, 69, 128, 75, 80, 69, 128, 75,
+ 80, 65, 82, 65, 81, 128, 75, 80, 65, 78, 128, 75, 80, 65, 72, 128, 75,
+ 80, 65, 128, 75, 79, 88, 128, 75, 79, 86, 85, 85, 128, 75, 79, 86, 128,
+ 75, 79, 84, 79, 128, 75, 79, 82, 85, 78, 65, 128, 75, 79, 82, 79, 78, 73,
+ 83, 128, 75, 79, 82, 69, 65, 206, 75, 79, 82, 65, 78, 73, 195, 75, 79,
+ 81, 78, 68, 79, 78, 128, 75, 79, 80, 80, 65, 128, 75, 79, 80, 128, 75,
+ 79, 79, 86, 128, 75, 79, 79, 80, 79, 128, 75, 79, 79, 77, 85, 85, 84,
+ 128, 75, 79, 79, 66, 128, 75, 79, 79, 128, 75, 79, 78, 84, 69, 86, 77,
+ 65, 128, 75, 79, 78, 84, 69, 86, 77, 193, 75, 79, 77, 201, 75, 79, 77,
+ 66, 85, 86, 65, 128, 75, 79, 77, 66, 85, 86, 193, 75, 79, 77, 66, 213,
+ 75, 79, 75, 79, 128, 75, 79, 75, 69, 128, 75, 79, 75, 128, 75, 79, 203,
+ 75, 79, 73, 128, 75, 79, 201, 75, 79, 72, 128, 75, 79, 71, 72, 79, 77,
+ 128, 75, 79, 69, 84, 128, 75, 79, 66, 128, 75, 79, 65, 76, 65, 128, 75,
+ 79, 65, 128, 75, 78, 85, 67, 75, 76, 69, 83, 128, 75, 78, 85, 67, 75, 76,
+ 69, 128, 75, 78, 79, 66, 83, 128, 75, 78, 73, 71, 72, 84, 128, 75, 78,
+ 73, 71, 72, 212, 75, 78, 73, 70, 69, 128, 75, 78, 73, 70, 197, 75, 77,
+ 128, 75, 205, 75, 76, 73, 84, 79, 78, 128, 75, 76, 65, 83, 77, 65, 128,
+ 75, 76, 65, 83, 77, 193, 75, 76, 65, 128, 75, 76, 128, 75, 75, 85, 128,
+ 75, 75, 79, 128, 75, 75, 73, 128, 75, 75, 69, 69, 128, 75, 75, 69, 128,
+ 75, 75, 65, 128, 75, 75, 128, 75, 74, 69, 128, 75, 73, 89, 69, 79, 75,
+ 45, 84, 73, 75, 69, 85, 84, 128, 75, 73, 89, 69, 79, 75, 45, 83, 73, 79,
+ 83, 45, 75, 73, 89, 69, 79, 75, 128, 75, 73, 89, 69, 79, 75, 45, 82, 73,
+ 69, 85, 76, 128, 75, 73, 89, 69, 79, 75, 45, 80, 73, 69, 85, 80, 128, 75,
+ 73, 89, 69, 79, 75, 45, 78, 73, 69, 85, 78, 128, 75, 73, 89, 69, 79, 75,
+ 45, 75, 72, 73, 69, 85, 75, 72, 128, 75, 73, 89, 69, 79, 75, 45, 67, 72,
+ 73, 69, 85, 67, 72, 128, 75, 73, 89, 69, 79, 203, 75, 73, 88, 128, 75,
+ 73, 87, 128, 75, 73, 86, 128, 75, 73, 84, 128, 75, 73, 83, 83, 73, 78,
+ 199, 75, 73, 83, 83, 128, 75, 73, 83, 211, 75, 73, 83, 73, 77, 53, 128,
+ 75, 73, 83, 73, 77, 181, 75, 73, 83, 72, 128, 75, 73, 83, 65, 76, 128,
+ 75, 73, 82, 79, 87, 65, 84, 84, 79, 128, 75, 73, 82, 79, 77, 69, 69, 84,
+ 79, 82, 85, 128, 75, 73, 82, 79, 71, 85, 82, 65, 77, 85, 128, 75, 73, 82,
+ 79, 128, 75, 73, 82, 71, 72, 73, 218, 75, 73, 81, 128, 75, 73, 80, 128,
+ 75, 73, 208, 75, 73, 78, 83, 72, 73, 80, 128, 75, 73, 78, 68, 69, 82, 71,
+ 65, 82, 84, 69, 78, 128, 75, 73, 77, 79, 78, 79, 128, 75, 73, 76, 76, 69,
+ 82, 128, 75, 73, 73, 128, 75, 73, 72, 128, 75, 73, 69, 88, 128, 75, 73,
+ 69, 86, 65, 206, 75, 73, 69, 80, 128, 75, 73, 69, 69, 77, 128, 75, 73,
+ 69, 128, 75, 73, 68, 128, 75, 73, 196, 75, 73, 67, 75, 128, 75, 73, 66,
+ 128, 75, 73, 65, 86, 128, 75, 73, 65, 66, 128, 75, 72, 90, 128, 75, 72,
+ 87, 65, 73, 128, 75, 72, 85, 69, 78, 45, 76, 85, 197, 75, 72, 85, 69,
+ 206, 75, 72, 85, 68, 65, 87, 65, 68, 201, 75, 72, 85, 68, 65, 77, 128,
+ 75, 72, 85, 65, 84, 128, 75, 72, 79, 85, 128, 75, 72, 79, 212, 75, 72,
+ 79, 78, 128, 75, 72, 79, 77, 85, 84, 128, 75, 72, 79, 74, 75, 201, 75,
+ 72, 79, 128, 75, 72, 207, 75, 72, 77, 213, 75, 72, 73, 84, 128, 75, 72,
+ 73, 78, 89, 65, 128, 75, 72, 73, 69, 85, 75, 200, 75, 72, 73, 128, 75,
+ 72, 201, 75, 72, 72, 79, 128, 75, 72, 72, 65, 128, 75, 72, 69, 84, 72,
+ 128, 75, 72, 69, 73, 128, 75, 72, 69, 69, 128, 75, 72, 69, 128, 75, 72,
+ 65, 86, 128, 75, 72, 65, 82, 79, 83, 72, 84, 72, 201, 75, 72, 65, 82,
128, 75, 72, 65, 80, 72, 128, 75, 72, 65, 78, 199, 75, 72, 65, 78, 68,
193, 75, 72, 65, 78, 128, 75, 72, 65, 77, 84, 201, 75, 72, 65, 75, 65,
83, 83, 73, 65, 206, 75, 72, 65, 73, 128, 75, 72, 65, 72, 128, 75, 72,
- 65, 200, 75, 72, 65, 65, 128, 75, 71, 128, 75, 69, 89, 67, 65, 80, 128,
- 75, 69, 89, 67, 65, 208, 75, 69, 89, 66, 79, 65, 82, 68, 128, 75, 69, 88,
+ 65, 200, 75, 72, 65, 66, 128, 75, 72, 65, 65, 128, 75, 71, 128, 75, 69,
+ 89, 67, 65, 80, 128, 75, 69, 89, 67, 65, 208, 75, 69, 89, 66, 79, 65, 82,
+ 68, 128, 75, 69, 89, 66, 79, 65, 82, 196, 75, 69, 88, 128, 75, 69, 86,
128, 75, 69, 85, 89, 69, 85, 88, 128, 75, 69, 85, 83, 72, 69, 85, 65, 69,
80, 128, 75, 69, 85, 83, 69, 85, 88, 128, 75, 69, 85, 80, 85, 81, 128,
75, 69, 85, 79, 212, 75, 69, 85, 77, 128, 75, 69, 85, 75, 69, 85, 84, 78,
@@ -2285,1560 +2553,1626 @@ static unsigned char lexicon[] = {
69, 77, 80, 76, 73, 128, 75, 69, 77, 80, 76, 201, 75, 69, 77, 80, 72, 82,
69, 78, 71, 128, 75, 69, 77, 66, 65, 78, 71, 128, 75, 69, 76, 86, 73,
206, 75, 69, 72, 69, 72, 128, 75, 69, 72, 69, 200, 75, 69, 72, 128, 75,
- 69, 70, 85, 76, 65, 128, 75, 69, 69, 83, 85, 128, 75, 69, 69, 80, 73, 78,
- 199, 75, 69, 69, 78, 71, 128, 75, 67, 65, 76, 128, 75, 66, 128, 75, 65,
- 90, 65, 75, 200, 75, 65, 89, 65, 78, 78, 65, 128, 75, 65, 89, 65, 200,
- 75, 65, 88, 128, 75, 65, 87, 73, 128, 75, 65, 86, 89, 75, 65, 128, 75,
- 65, 85, 78, 65, 128, 75, 65, 85, 206, 75, 65, 85, 128, 75, 65, 84, 79,
- 128, 75, 65, 84, 72, 73, 83, 84, 73, 128, 75, 65, 84, 72, 65, 75, 193,
- 75, 65, 84, 65, 86, 65, 83, 77, 65, 128, 75, 65, 84, 65, 86, 193, 75, 65,
- 84, 65, 75, 65, 78, 65, 45, 72, 73, 82, 65, 71, 65, 78, 193, 75, 65, 83,
- 82, 65, 84, 65, 78, 128, 75, 65, 83, 82, 65, 84, 65, 206, 75, 65, 83, 82,
- 65, 128, 75, 65, 83, 82, 193, 75, 65, 83, 75, 65, 76, 128, 75, 65, 83,
- 75, 65, 204, 75, 65, 83, 72, 77, 73, 82, 201, 75, 65, 82, 83, 72, 65, 78,
- 65, 128, 75, 65, 82, 79, 82, 73, 73, 128, 75, 65, 82, 207, 75, 65, 82,
- 69, 206, 75, 65, 82, 65, 84, 84, 79, 128, 75, 65, 82, 65, 78, 128, 75,
- 65, 80, 89, 69, 79, 85, 78, 83, 83, 65, 78, 71, 80, 73, 69, 85, 80, 128,
- 75, 65, 80, 89, 69, 79, 85, 78, 82, 73, 69, 85, 76, 128, 75, 65, 80, 89,
- 69, 79, 85, 78, 80, 72, 73, 69, 85, 80, 72, 128, 75, 65, 80, 89, 69, 79,
- 85, 78, 77, 73, 69, 85, 77, 128, 75, 65, 80, 80, 65, 128, 75, 65, 80, 80,
- 193, 75, 65, 80, 79, 128, 75, 65, 80, 72, 128, 75, 65, 80, 65, 76, 128,
- 75, 65, 80, 65, 128, 75, 65, 78, 84, 65, 74, 193, 75, 65, 78, 71, 128,
- 75, 65, 78, 199, 75, 65, 78, 65, 75, 79, 128, 75, 65, 77, 52, 128, 75,
- 65, 77, 50, 128, 75, 65, 77, 128, 75, 65, 75, 79, 128, 75, 65, 75, 65,
- 66, 65, 84, 128, 75, 65, 75, 128, 75, 65, 203, 75, 65, 73, 84, 72, 201,
- 75, 65, 73, 82, 73, 128, 75, 65, 73, 128, 75, 65, 201, 75, 65, 70, 65,
- 128, 75, 65, 70, 128, 75, 65, 198, 75, 65, 68, 53, 128, 75, 65, 68, 181,
- 75, 65, 68, 52, 128, 75, 65, 68, 51, 128, 75, 65, 68, 179, 75, 65, 68,
- 50, 128, 75, 65, 68, 128, 75, 65, 66, 193, 75, 65, 66, 128, 75, 65, 65,
- 73, 128, 75, 65, 65, 70, 85, 128, 75, 65, 65, 70, 128, 75, 65, 50, 128,
- 75, 65, 178, 75, 48, 48, 56, 128, 75, 48, 48, 55, 128, 75, 48, 48, 54,
- 128, 75, 48, 48, 53, 128, 75, 48, 48, 52, 128, 75, 48, 48, 51, 128, 75,
- 48, 48, 50, 128, 75, 48, 48, 49, 128, 74, 87, 65, 128, 74, 85, 85, 128,
- 74, 85, 84, 128, 74, 85, 83, 84, 73, 70, 73, 67, 65, 84, 73, 79, 78, 128,
- 74, 85, 80, 73, 84, 69, 82, 128, 74, 85, 79, 84, 128, 74, 85, 79, 80,
- 128, 74, 85, 78, 79, 128, 74, 85, 78, 69, 128, 74, 85, 76, 89, 128, 74,
- 85, 69, 85, 73, 128, 74, 85, 68, 85, 76, 128, 74, 85, 68, 71, 69, 128,
- 74, 85, 68, 69, 79, 45, 83, 80, 65, 78, 73, 83, 200, 74, 79, 89, 79, 85,
- 211, 74, 79, 89, 128, 74, 79, 86, 69, 128, 74, 79, 212, 74, 79, 78, 71,
- 128, 74, 79, 78, 193, 74, 79, 75, 69, 82, 128, 74, 79, 73, 78, 69, 68,
- 128, 74, 79, 73, 78, 128, 74, 79, 65, 128, 74, 74, 89, 88, 128, 74, 74,
- 89, 84, 128, 74, 74, 89, 80, 128, 74, 74, 89, 128, 74, 74, 85, 88, 128,
- 74, 74, 85, 84, 128, 74, 74, 85, 82, 88, 128, 74, 74, 85, 82, 128, 74,
- 74, 85, 80, 128, 74, 74, 85, 79, 88, 128, 74, 74, 85, 79, 80, 128, 74,
- 74, 85, 79, 128, 74, 74, 85, 128, 74, 74, 79, 88, 128, 74, 74, 79, 84,
- 128, 74, 74, 79, 80, 128, 74, 74, 79, 128, 74, 74, 73, 88, 128, 74, 74,
- 73, 84, 128, 74, 74, 73, 80, 128, 74, 74, 73, 69, 88, 128, 74, 74, 73,
- 69, 84, 128, 74, 74, 73, 69, 80, 128, 74, 74, 73, 69, 128, 74, 74, 73,
- 128, 74, 74, 69, 69, 128, 74, 74, 69, 128, 74, 74, 65, 128, 74, 73, 76,
- 128, 74, 73, 73, 128, 74, 73, 72, 86, 65, 77, 85, 76, 73, 89, 65, 128,
- 74, 73, 65, 128, 74, 72, 79, 128, 74, 72, 69, 72, 128, 74, 72, 65, 78,
- 128, 74, 72, 65, 77, 128, 74, 72, 65, 65, 128, 74, 72, 65, 128, 74, 69,
- 85, 128, 74, 69, 82, 85, 83, 65, 76, 69, 77, 128, 74, 69, 82, 65, 206,
- 74, 69, 82, 65, 128, 74, 69, 82, 128, 74, 69, 72, 128, 74, 69, 200, 74,
- 69, 71, 79, 71, 65, 78, 128, 74, 69, 69, 77, 128, 74, 69, 65, 78, 83,
- 128, 74, 65, 89, 65, 78, 78, 65, 128, 74, 65, 86, 73, 89, 65, 78, 73,
- 128, 74, 65, 85, 128, 74, 65, 82, 128, 74, 65, 80, 65, 78, 69, 83, 197,
- 74, 65, 80, 65, 78, 128, 74, 65, 78, 85, 65, 82, 89, 128, 74, 65, 76, 76,
- 65, 74, 65, 76, 65, 76, 79, 85, 72, 79, 85, 128, 74, 65, 73, 128, 74, 65,
- 72, 128, 74, 65, 68, 69, 128, 74, 65, 67, 75, 45, 79, 45, 76, 65, 78, 84,
- 69, 82, 78, 128, 74, 65, 67, 203, 74, 45, 83, 73, 77, 80, 76, 73, 70, 73,
- 69, 196, 202, 73, 90, 72, 73, 84, 83, 65, 128, 73, 90, 72, 73, 84, 83,
- 193, 73, 90, 72, 69, 128, 73, 90, 65, 75, 65, 89, 193, 73, 89, 69, 75,
- 128, 73, 89, 65, 78, 78, 65, 128, 73, 85, 74, 65, 128, 73, 85, 128, 73,
- 84, 211, 73, 84, 69, 82, 65, 84, 73, 79, 206, 73, 84, 69, 77, 128, 73,
- 83, 83, 72, 65, 82, 128, 73, 83, 79, 78, 128, 73, 83, 79, 206, 73, 83,
- 79, 76, 65, 84, 69, 128, 73, 83, 69, 78, 45, 73, 83, 69, 78, 128, 73, 83,
- 65, 75, 73, 193, 73, 83, 45, 80, 73, 76, 76, 65, 128, 73, 82, 85, 89, 65,
- 78, 78, 65, 128, 73, 82, 85, 85, 89, 65, 78, 78, 65, 128, 73, 82, 79, 78,
- 45, 67, 79, 80, 80, 69, 210, 73, 82, 79, 78, 128, 73, 79, 84, 73, 70, 73,
- 69, 196, 73, 79, 84, 65, 84, 69, 196, 73, 79, 84, 65, 128, 73, 79, 84,
- 193, 73, 79, 82, 128, 73, 79, 68, 72, 65, 68, 72, 128, 73, 78, 86, 73,
- 83, 73, 66, 76, 197, 73, 78, 86, 69, 82, 84, 69, 68, 128, 73, 78, 86, 69,
- 82, 84, 69, 196, 73, 78, 86, 69, 82, 83, 197, 73, 78, 84, 82, 79, 68, 85,
- 67, 69, 82, 128, 73, 78, 84, 73, 128, 73, 78, 84, 69, 82, 83, 89, 76, 76,
- 65, 66, 73, 195, 73, 78, 84, 69, 82, 83, 69, 67, 84, 73, 79, 78, 128, 73,
- 78, 84, 69, 82, 83, 69, 67, 84, 73, 79, 206, 73, 78, 84, 69, 82, 83, 69,
- 67, 84, 73, 78, 199, 73, 78, 84, 69, 82, 82, 79, 66, 65, 78, 71, 128, 73,
- 78, 84, 69, 82, 80, 79, 76, 65, 84, 73, 79, 206, 73, 78, 84, 69, 82, 76,
- 79, 67, 75, 69, 196, 73, 78, 84, 69, 82, 76, 73, 78, 69, 65, 210, 73, 78,
- 84, 69, 82, 76, 65, 67, 69, 196, 73, 78, 84, 69, 82, 73, 79, 210, 73, 78,
- 84, 69, 82, 69, 83, 212, 73, 78, 84, 69, 82, 67, 65, 76, 65, 84, 69, 128,
- 73, 78, 84, 69, 71, 82, 65, 84, 73, 79, 78, 128, 73, 78, 84, 69, 71, 82,
- 65, 84, 73, 79, 206, 73, 78, 84, 69, 71, 82, 65, 76, 128, 73, 78, 84, 69,
- 71, 82, 65, 204, 73, 78, 83, 85, 76, 65, 210, 73, 78, 83, 84, 82, 85, 77,
- 69, 78, 84, 65, 204, 73, 78, 83, 73, 68, 69, 128, 73, 78, 83, 69, 82, 84,
- 73, 79, 206, 73, 78, 83, 69, 67, 84, 128, 73, 78, 83, 67, 82, 73, 80, 84,
- 73, 79, 78, 65, 204, 73, 78, 80, 85, 212, 73, 78, 78, 79, 67, 69, 78, 67,
- 69, 128, 73, 78, 78, 78, 128, 73, 78, 78, 69, 82, 128, 73, 78, 78, 69,
- 210, 73, 78, 78, 128, 73, 78, 73, 78, 71, 85, 128, 73, 78, 73, 128, 73,
- 78, 72, 73, 66, 73, 212, 73, 78, 72, 69, 82, 69, 78, 212, 73, 78, 71, 87,
- 65, 90, 128, 73, 78, 70, 79, 82, 77, 65, 84, 73, 79, 206, 73, 78, 70, 76,
- 85, 69, 78, 67, 69, 128, 73, 78, 70, 73, 78, 73, 84, 89, 128, 73, 78, 70,
- 73, 78, 73, 84, 217, 73, 78, 68, 85, 83, 84, 82, 73, 65, 204, 73, 78, 68,
- 73, 82, 69, 67, 212, 73, 78, 68, 73, 67, 65, 84, 79, 82, 128, 73, 78, 68,
- 73, 67, 65, 84, 79, 210, 73, 78, 68, 73, 195, 73, 78, 68, 73, 65, 206,
- 73, 78, 68, 69, 88, 128, 73, 78, 68, 69, 80, 69, 78, 68, 69, 78, 212, 73,
- 78, 67, 82, 69, 77, 69, 78, 84, 128, 73, 78, 67, 82, 69, 65, 83, 69, 211,
- 73, 78, 67, 82, 69, 65, 83, 69, 128, 73, 78, 67, 79, 77, 80, 76, 69, 84,
- 197, 73, 78, 67, 79, 77, 73, 78, 199, 73, 78, 67, 76, 85, 68, 73, 78,
- 199, 73, 78, 67, 72, 128, 73, 78, 66, 79, 216, 73, 78, 65, 80, 128, 73,
- 78, 45, 65, 76, 65, 70, 128, 73, 77, 80, 69, 82, 73, 65, 204, 73, 77, 80,
- 69, 82, 70, 69, 67, 84, 85, 205, 73, 77, 80, 69, 82, 70, 69, 67, 84, 65,
- 128, 73, 77, 80, 69, 82, 70, 69, 67, 84, 193, 73, 77, 78, 128, 73, 77,
- 73, 83, 69, 79, 211, 73, 77, 73, 78, 51, 128, 73, 77, 73, 78, 128, 73,
- 77, 73, 206, 73, 77, 73, 70, 84, 72, 79, 82, 79, 78, 128, 73, 77, 73, 70,
- 84, 72, 79, 82, 65, 128, 73, 77, 73, 70, 79, 78, 79, 78, 128, 73, 77, 73,
- 68, 73, 65, 82, 71, 79, 78, 128, 73, 77, 65, 71, 197, 73, 76, 85, 89, 65,
- 78, 78, 65, 128, 73, 76, 85, 89, 128, 73, 76, 85, 85, 89, 65, 78, 78, 65,
- 128, 73, 76, 85, 84, 128, 73, 76, 73, 77, 77, 85, 52, 128, 73, 76, 73,
- 77, 77, 85, 51, 128, 73, 76, 73, 77, 77, 85, 128, 73, 76, 73, 77, 77,
- 213, 73, 76, 50, 128, 73, 75, 65, 82, 65, 128, 73, 75, 65, 82, 193, 73,
- 74, 128, 73, 73, 89, 65, 78, 78, 65, 128, 73, 71, 73, 128, 73, 71, 201,
- 73, 71, 71, 87, 83, 128, 73, 70, 73, 78, 128, 73, 69, 85, 78, 71, 45, 84,
- 73, 75, 69, 85, 84, 128, 73, 69, 85, 78, 71, 45, 84, 72, 73, 69, 85, 84,
- 72, 128, 73, 69, 85, 78, 71, 45, 83, 83, 65, 78, 71, 75, 73, 89, 69, 79,
- 75, 128, 73, 69, 85, 78, 71, 45, 82, 73, 69, 85, 76, 128, 73, 69, 85, 78,
- 71, 45, 80, 73, 69, 85, 80, 128, 73, 69, 85, 78, 71, 45, 80, 72, 73, 69,
- 85, 80, 72, 128, 73, 69, 85, 78, 71, 45, 75, 73, 89, 69, 79, 75, 128, 73,
- 69, 85, 78, 71, 45, 75, 72, 73, 69, 85, 75, 72, 128, 73, 69, 85, 78, 71,
- 45, 67, 73, 69, 85, 67, 128, 73, 69, 85, 78, 71, 45, 67, 72, 73, 69, 85,
- 67, 72, 128, 73, 69, 85, 78, 199, 73, 68, 76, 69, 128, 73, 68, 73, 77,
- 128, 73, 68, 73, 205, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68,
- 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 56, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 55, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 65, 68, 54, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 65, 68, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 65, 68, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68,
- 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 50, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 49, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 65, 68, 48, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 65, 67, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 65, 67, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67,
- 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 67, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 66, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 65, 67, 65, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 65, 67, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 65, 67, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67,
- 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 54, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 53, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 65, 67, 52, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 65, 67, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 65, 67, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67,
- 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 48, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 70, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 65, 66, 69, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 65, 66, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 65, 66, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66,
- 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 65, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 57, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 65, 66, 56, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 65, 66, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 65, 66, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66,
- 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 52, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 51, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 65, 66, 50, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 65, 66, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 65, 66, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65,
- 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 69, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 68, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 65, 65, 67, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 65, 65, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 65, 65, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65,
- 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 56, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 55, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 65, 65, 54, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 65, 65, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 65, 65, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65,
- 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 50, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 49, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 65, 65, 48, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 65, 57, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 65, 57, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57,
- 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 67, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 66, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 65, 57, 65, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 65, 57, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 65, 57, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57,
- 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 54, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 53, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 65, 57, 52, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 65, 57, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 65, 57, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57,
- 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 48, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 70, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 65, 56, 69, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 65, 56, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 65, 56, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56,
- 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 65, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 57, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 65, 56, 56, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 65, 56, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 65, 56, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56,
- 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 52, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 51, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 65, 56, 50, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 65, 56, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 65, 56, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55,
- 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 69, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 68, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 65, 55, 67, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 65, 55, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 65, 55, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55,
- 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 56, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 55, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 65, 55, 54, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 65, 55, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 65, 55, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55,
- 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 50, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 49, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 65, 55, 48, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 65, 54, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 65, 54, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54,
- 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 65, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 57, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 65, 54, 56, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 65, 54, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 65, 54, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54,
- 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 52, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 51, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 65, 54, 50, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 65, 54, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 65, 54, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53,
- 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 69, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 68, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 65, 53, 67, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 65, 53, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 65, 53, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53,
- 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 56, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 55, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 65, 53, 54, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 65, 53, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 65, 53, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53,
- 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 50, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 49, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 65, 53, 48, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 65, 52, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 65, 52, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52,
- 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 67, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 66, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 65, 52, 65, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 65, 52, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 65, 52, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52,
- 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 54, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 53, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 65, 52, 52, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 65, 52, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 65, 52, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52,
- 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 48, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 70, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 65, 51, 69, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 65, 51, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 65, 51, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51,
- 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 65, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 57, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 65, 51, 56, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 65, 51, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 65, 51, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51,
- 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 52, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 51, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 65, 51, 50, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 65, 51, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 65, 51, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50,
- 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 69, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 68, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 65, 50, 67, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 65, 50, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 65, 50, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50,
- 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 56, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 55, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 65, 50, 54, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 65, 50, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 65, 50, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50,
- 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 50, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 49, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 65, 50, 48, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 65, 49, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 65, 49, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49,
- 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 67, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 66, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 65, 49, 65, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 65, 49, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 65, 49, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49,
- 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 54, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 53, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 65, 49, 52, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 65, 49, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 65, 49, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49,
- 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 48, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 70, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 65, 48, 69, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 65, 48, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 65, 48, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48,
- 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 65, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 57, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 65, 48, 56, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 65, 48, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 65, 48, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48,
- 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 52, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 51, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 65, 48, 50, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 65, 48, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 65, 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70,
- 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 69, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 68, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 70, 67, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 70, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 70, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70,
- 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 56, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 55, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 70, 54, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 70, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 70, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70,
- 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 50, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 49, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 70, 48, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 69, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 69, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69,
- 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 67, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 66, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 69, 65, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 69, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 69, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69,
- 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 54, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 53, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 69, 52, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 69, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 69, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69,
- 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 48, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 70, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 68, 69, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 68, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 68, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68,
- 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 65, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 57, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 68, 56, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 68, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 68, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68,
- 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 52, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 51, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 68, 50, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 68, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 68, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67,
- 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 69, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 68, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 67, 67, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 67, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 67, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67,
- 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 56, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 55, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 67, 54, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 67, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 67, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67,
- 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 50, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 49, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 67, 48, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 66, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 66, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66,
- 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 67, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 66, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 66, 65, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 66, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 66, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66,
- 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 54, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 53, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 66, 52, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 66, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 66, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66,
- 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 48, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 70, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 65, 69, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 65, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 65, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65,
- 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 65, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 57, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 65, 56, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 65, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 65, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65,
- 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 52, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 51, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 65, 50, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 65, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 65, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57,
- 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 69, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 68, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 57, 67, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 57, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 57, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57,
- 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 56, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 55, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 57, 54, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 57, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 57, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57,
- 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 50, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 49, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 57, 48, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 56, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 56, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56,
- 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 67, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 66, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 56, 65, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 56, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 56, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56,
- 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 54, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 53, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 56, 52, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 56, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 56, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56,
- 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 48, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 70, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 55, 69, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 55, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 55, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55,
- 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 65, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 57, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 55, 56, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 55, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 55, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55,
- 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 52, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 51, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 55, 50, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 55, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 55, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54,
- 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 69, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 68, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 54, 67, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 54, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 54, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54,
- 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 56, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 55, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 54, 54, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 54, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 54, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54,
- 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 50, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 49, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 54, 48, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 53, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 53, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53,
- 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 67, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 66, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 53, 65, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 53, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 53, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53,
- 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 54, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 53, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 53, 52, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 53, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 53, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53,
- 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 48, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 70, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 52, 69, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 52, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 52, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52,
- 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 65, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 57, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 52, 56, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 52, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 52, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52,
- 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 52, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 51, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 52, 50, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 52, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 52, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51,
- 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 69, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 68, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 51, 67, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 51, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 51, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51,
- 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 56, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 55, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 51, 54, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 51, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 51, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51,
- 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 50, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 49, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 51, 48, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 50, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 50, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50,
- 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 67, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 66, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 50, 65, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 50, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 50, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50,
- 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 54, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 53, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 50, 52, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 50, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 50, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50,
- 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 48, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 70, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 49, 69, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 49, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 49, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49,
- 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 65, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 57, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 49, 56, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 49, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 49, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49,
- 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 52, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 51, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 49, 50, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 49, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 49, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48,
- 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 69, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 68, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 48, 67, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 48, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 48, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48,
- 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 56, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 55, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 48, 54, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 70, 57, 48, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 70, 57, 48, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48,
- 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 50, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 49, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 70, 57, 48, 48, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 57, 48, 52, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 56, 68, 55, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 56, 67, 65,
- 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 56, 57, 69, 51, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 55, 68, 52, 50, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 55, 65, 55, 65, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 55, 57, 56, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 55, 54, 68, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 55, 53, 51,
- 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 55, 53, 49, 70, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 55, 49, 50, 49, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 55, 48, 66, 57, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 54, 70, 49, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 54, 69, 56, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 55, 50,
- 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 55, 48, 57, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 55, 48, 56, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 54, 54, 50, 48, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 54, 53, 66, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 54, 53, 57, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 53, 53,
- 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 51, 53, 53, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 51, 48, 55, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 54, 50, 57, 53, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 54, 50, 53, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 54, 50, 52, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 70, 56,
- 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 68, 69, 54, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 66, 56, 57, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 53, 66, 53, 55, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 53, 57, 50, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 53, 57, 49, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 56, 70,
- 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 53, 66, 54, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 52, 51, 57, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 53, 52, 48, 56, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 53, 51, 70, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 53, 51, 67, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 50, 68,
- 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 50, 55, 50, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 50, 52, 68, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 53, 50, 49, 68, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 53, 49, 56, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
- 52, 69, 65, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 52, 69, 56,
- 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 52, 69, 50, 68, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 52, 69, 48, 57, 128, 73, 68, 69, 79,
- 71, 82, 65, 80, 72, 45, 52, 69, 48, 48, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 65, 49, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 65, 49, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 65, 49, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65,
- 49, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 57,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 56, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 55, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 54, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 65, 49, 53, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 65, 49, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 65, 49, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 65, 49, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65,
- 49, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 48,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 70, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 69, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 68, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 65, 48, 67, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 65, 48, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 65, 48, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 65, 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65,
- 48, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 55,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 54, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 53, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 52, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 65, 48, 51, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 65, 48, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 65, 48, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 65, 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 70, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 69,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 68, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 67, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 66, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 70, 65, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 70, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 70, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 70, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 70, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 53,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 52, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 51, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 50, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 70, 49, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 70, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 69, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 69, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 69, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 67,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 66, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 65, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 57, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 69, 56, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 69, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 69, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 69, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 69, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 51,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 50, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 49, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 48, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 68, 70, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 68, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 68, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 68, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 68, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 65,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 57, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 56, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 55, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 68, 54, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 68, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 68, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 68, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 68, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 49,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 48, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 70, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 69, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 67, 68, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 67, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 67, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 67, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 67, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 56,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 55, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 54, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 53, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 67, 52, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 67, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 67, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 67, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 67, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 70,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 69, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 68, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 67, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 66, 66, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 66, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 66, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 66, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 66, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 54,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 53, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 52, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 51, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 66, 50, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 66, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 66, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 65, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 65, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 68,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 67, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 66, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 65, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 65, 57, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 65, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 65, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 65, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 65, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 52,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 51, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 50, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 49, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 65, 48, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 57, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 57, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 57, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 57, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 66,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 65, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 57, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 56, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 57, 55, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 57, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 57, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 57, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 57, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 50,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 49, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 48, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 70, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 56, 69, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 56, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 56, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 56, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 56, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 57,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 56, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 55, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 54, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 56, 53, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 56, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 56, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 56, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 56, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 48,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 70, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 69, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 68, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 55, 67, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 55, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 55, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 55, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 55, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 55,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 54, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 53, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 52, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 55, 51, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 55, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 55, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 55, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 54, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 69,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 68, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 67, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 66, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 54, 65, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 54, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 54, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 54, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 54, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 53,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 52, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 51, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 50, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 54, 49, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 54, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 53, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 53, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 53, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 67,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 66, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 65, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 57, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 53, 56, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 53, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 53, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 53, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 53, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 51,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 50, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 49, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 48, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 52, 70, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 52, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 52, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 52, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 52, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 65,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 57, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 56, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 55, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 52, 54, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 52, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 52, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 52, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 52, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 49,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 48, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 70, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 69, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 51, 68, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 51, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 51, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 51, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 51, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 56,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 55, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 54, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 53, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 51, 52, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 51, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 51, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 51, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 51, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 70,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 69, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 68, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 67, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 50, 66, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 50, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 50, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 50, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 50, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 54,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 53, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 52, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 51, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 50, 50, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 50, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 50, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 49, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 49, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 68,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 67, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 66, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 65, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 49, 57, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 49, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 49, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 49, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 49, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 52,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 51, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 50, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 49, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 49, 48, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 48, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 48, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 48, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 48, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 66,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 65, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 57, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 56, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 48, 55, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 48, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 48, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 48, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 48, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 50,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 49, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 48, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 70, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 70, 69, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 70, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 70, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 70, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 70, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 57,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 56, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 55, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 54, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 70, 53, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 70, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 70, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 70, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 70, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 48,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 70, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 69, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 68, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 69, 67, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 69, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 69, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 69, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 69, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 55,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 54, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 53, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 52, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 69, 51, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 69, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 69, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 69, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 68, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 69,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 68, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 67, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 66, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 68, 65, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 68, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 68, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 68, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 68, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 53,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 52, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 51, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 50, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 68, 49, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 68, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 67, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 67, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 67, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 67,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 66, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 65, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 57, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 67, 56, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 67, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 67, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 67, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 67, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 51,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 50, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 49, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 48, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 66, 70, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 66, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 66, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 66, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 66, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 65,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 57, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 56, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 55, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 66, 54, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 66, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 66, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 66, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 66, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 49,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 48, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 70, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 69, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 65, 68, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 65, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 65, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 65, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 65, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 56,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 55, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 54, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 53, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 65, 52, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 65, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 65, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 65, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 65, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 70,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 69, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 68, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 67, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 57, 66, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 57, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 57, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 57, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 57, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 54,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 53, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 52, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 51, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 57, 50, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 57, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 57, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 56, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 56, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 68,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 67, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 66, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 65, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 56, 57, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 56, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 56, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 56, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 56, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 52,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 51, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 50, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 49, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 56, 48, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 55, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 55, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 55, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 55, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 66,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 65, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 57, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 56, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 55, 55, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 55, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 55, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 55, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 55, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 50,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 49, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 48, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 70, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 54, 69, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 54, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 54, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 54, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 54, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 57,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 56, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 55, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 54, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 54, 53, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 54, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 54, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 54, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 54, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 48,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 70, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 69, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 68, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 53, 67, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 53, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 53, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 53, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 53, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 55,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 54, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 53, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 52, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 53, 51, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 53, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 53, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 53, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 52, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 69,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 68, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 67, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 66, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 52, 65, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 52, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 52, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 52, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 52, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 53,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 52, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 51, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 50, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 52, 49, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 52, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 51, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 51, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 51, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 67,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 66, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 65, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 57, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 51, 56, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 51, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 51, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 51, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 51, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 51,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 50, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 49, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 48, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 50, 70, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 50, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 50, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 50, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 50, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 65,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 57, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 56, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 55, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 50, 54, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 50, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 50, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 50, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 50, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 49,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 48, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 70, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 69, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 49, 68, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 49, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 49, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 49, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 49, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 56,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 55, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 54, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 53, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 49, 52, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 49, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 49, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 49, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 49, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 70,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 69, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 68, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 67, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 48, 66, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 48, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 48, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 48, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 54,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 53, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 52, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 51, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 48, 50, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 48, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 48, 48, 128, 73, 68, 69, 78, 84, 73, 70, 73, 67, 65, 84,
- 73, 79, 78, 128, 73, 68, 69, 78, 84, 73, 67, 65, 204, 73, 67, 72, 79, 85,
- 128, 73, 67, 72, 79, 83, 128, 73, 67, 72, 73, 77, 65, 84, 79, 83, 128,
- 73, 67, 72, 65, 68, 73, 78, 128, 73, 67, 69, 76, 65, 78, 68, 73, 67, 45,
- 89, 82, 128, 73, 66, 73, 70, 73, 76, 73, 128, 73, 65, 85, 68, 65, 128,
- 73, 48, 49, 53, 128, 73, 48, 49, 52, 128, 73, 48, 49, 51, 128, 73, 48,
- 49, 50, 128, 73, 48, 49, 49, 65, 128, 73, 48, 49, 49, 128, 73, 48, 49,
- 48, 65, 128, 73, 48, 49, 48, 128, 73, 48, 48, 57, 65, 128, 73, 48, 48,
- 57, 128, 73, 48, 48, 56, 128, 73, 48, 48, 55, 128, 73, 48, 48, 54, 128,
- 73, 48, 48, 53, 65, 128, 73, 48, 48, 53, 128, 73, 48, 48, 52, 128, 73,
- 48, 48, 51, 128, 73, 48, 48, 50, 128, 73, 48, 48, 49, 128, 73, 45, 89,
- 85, 128, 73, 45, 89, 79, 128, 73, 45, 89, 69, 79, 128, 73, 45, 89, 69,
- 128, 73, 45, 89, 65, 69, 128, 73, 45, 89, 65, 45, 79, 128, 73, 45, 89,
- 65, 128, 73, 45, 79, 45, 73, 128, 73, 45, 79, 128, 73, 45, 69, 85, 128,
- 73, 45, 66, 69, 65, 77, 128, 73, 45, 65, 82, 65, 69, 65, 128, 73, 45, 65,
- 128, 72, 90, 90, 90, 71, 128, 72, 90, 90, 90, 128, 72, 90, 90, 80, 128,
- 72, 90, 90, 128, 72, 90, 87, 71, 128, 72, 90, 87, 128, 72, 90, 84, 128,
- 72, 90, 71, 128, 72, 89, 83, 84, 69, 82, 69, 83, 73, 211, 72, 89, 80, 79,
- 68, 73, 65, 83, 84, 79, 76, 69, 128, 72, 89, 80, 72, 69, 78, 65, 84, 73,
- 79, 206, 72, 89, 80, 72, 69, 78, 45, 77, 73, 78, 85, 83, 128, 72, 89, 80,
- 72, 69, 78, 128, 72, 89, 80, 72, 69, 206, 72, 88, 87, 71, 128, 72, 88,
- 85, 79, 88, 128, 72, 88, 85, 79, 84, 128, 72, 88, 85, 79, 80, 128, 72,
- 88, 85, 79, 128, 72, 88, 79, 88, 128, 72, 88, 79, 84, 128, 72, 88, 79,
- 80, 128, 72, 88, 79, 128, 72, 88, 73, 88, 128, 72, 88, 73, 84, 128, 72,
- 88, 73, 80, 128, 72, 88, 73, 69, 88, 128, 72, 88, 73, 69, 84, 128, 72,
- 88, 73, 69, 80, 128, 72, 88, 73, 69, 128, 72, 88, 73, 128, 72, 88, 69,
- 88, 128, 72, 88, 69, 80, 128, 72, 88, 69, 128, 72, 88, 65, 88, 128, 72,
- 88, 65, 84, 128, 72, 88, 65, 80, 128, 72, 88, 65, 128, 72, 87, 85, 128,
- 72, 87, 65, 73, 82, 128, 72, 86, 128, 72, 85, 83, 72, 69, 196, 72, 85,
- 82, 65, 78, 128, 72, 85, 79, 84, 128, 72, 85, 78, 68, 82, 69, 68, 128,
- 72, 85, 78, 68, 82, 69, 196, 72, 85, 78, 128, 72, 85, 77, 65, 78, 128,
- 72, 85, 77, 65, 206, 72, 85, 76, 50, 128, 72, 85, 73, 73, 84, 79, 128,
- 72, 85, 66, 50, 128, 72, 85, 66, 178, 72, 85, 66, 128, 72, 85, 65, 82,
- 65, 68, 68, 79, 128, 72, 84, 83, 128, 72, 84, 74, 128, 72, 82, 89, 86,
- 78, 73, 193, 72, 80, 87, 71, 128, 72, 80, 65, 128, 72, 80, 128, 72, 79,
- 85, 83, 197, 72, 79, 85, 82, 71, 76, 65, 83, 83, 128, 72, 79, 85, 82, 71,
- 76, 65, 83, 211, 72, 79, 85, 82, 128, 72, 79, 85, 210, 72, 79, 84, 69,
- 76, 128, 72, 79, 84, 65, 128, 72, 79, 83, 80, 73, 84, 65, 76, 128, 72,
- 79, 82, 83, 69, 128, 72, 79, 82, 83, 197, 72, 79, 82, 78, 83, 128, 72,
- 79, 82, 73, 90, 79, 78, 84, 65, 76, 76, 217, 72, 79, 82, 73, 90, 79, 78,
- 84, 65, 76, 45, 48, 54, 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, 78, 84,
- 65, 76, 45, 48, 54, 45, 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65,
- 76, 45, 48, 54, 45, 48, 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76,
- 45, 48, 54, 45, 48, 51, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45,
- 48, 54, 45, 48, 50, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48,
- 54, 45, 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 54,
- 45, 48, 48, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, 45,
- 48, 54, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, 48,
- 53, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, 48, 52,
- 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, 48, 51, 128,
- 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, 48, 50, 128, 72,
- 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, 48, 49, 128, 72, 79,
- 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, 48, 48, 128, 72, 79, 82,
- 73, 90, 79, 78, 84, 65, 76, 45, 48, 52, 45, 48, 54, 128, 72, 79, 82, 73,
- 90, 79, 78, 84, 65, 76, 45, 48, 52, 45, 48, 53, 128, 72, 79, 82, 73, 90,
- 79, 78, 84, 65, 76, 45, 48, 52, 45, 48, 52, 128, 72, 79, 82, 73, 90, 79,
- 78, 84, 65, 76, 45, 48, 52, 45, 48, 51, 128, 72, 79, 82, 73, 90, 79, 78,
- 84, 65, 76, 45, 48, 52, 45, 48, 50, 128, 72, 79, 82, 73, 90, 79, 78, 84,
- 65, 76, 45, 48, 52, 45, 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65,
- 76, 45, 48, 52, 45, 48, 48, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76,
- 45, 48, 51, 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45,
- 48, 51, 45, 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48,
- 51, 45, 48, 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51,
- 45, 48, 51, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45,
- 48, 50, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, 48,
- 49, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, 48, 48,
- 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 50, 45, 48, 54, 128,
- 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 50, 45, 48, 53, 128, 72,
- 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 50, 45, 48, 52, 128, 72, 79,
- 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 50, 45, 48, 51, 128, 72, 79, 82,
- 73, 90, 79, 78, 84, 65, 76, 45, 48, 50, 45, 48, 50, 128, 72, 79, 82, 73,
- 90, 79, 78, 84, 65, 76, 45, 48, 50, 45, 48, 49, 128, 72, 79, 82, 73, 90,
- 79, 78, 84, 65, 76, 45, 48, 50, 45, 48, 48, 128, 72, 79, 82, 73, 90, 79,
- 78, 84, 65, 76, 45, 48, 49, 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, 78,
- 84, 65, 76, 45, 48, 49, 45, 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, 84,
- 65, 76, 45, 48, 49, 45, 48, 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65,
- 76, 45, 48, 49, 45, 48, 51, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76,
- 45, 48, 49, 45, 48, 50, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45,
- 48, 49, 45, 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48,
- 49, 45, 48, 48, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48,
- 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, 45,
- 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, 48,
- 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, 48, 51,
- 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, 48, 50, 128,
- 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, 48, 49, 128, 72,
- 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, 48, 48, 128, 72, 79,
- 82, 73, 90, 79, 78, 84, 65, 76, 128, 72, 79, 82, 73, 128, 72, 79, 82,
- 193, 72, 79, 79, 82, 85, 128, 72, 79, 79, 80, 128, 72, 79, 79, 78, 128,
+ 69, 70, 85, 76, 65, 128, 75, 69, 69, 86, 128, 75, 69, 69, 83, 85, 128,
+ 75, 69, 69, 80, 73, 78, 199, 75, 69, 69, 78, 71, 128, 75, 69, 69, 66,
+ 128, 75, 69, 66, 128, 75, 69, 65, 65, 69, 128, 75, 67, 65, 76, 128, 75,
+ 66, 128, 75, 65, 90, 65, 75, 200, 75, 65, 89, 65, 78, 78, 65, 128, 75,
+ 65, 89, 65, 200, 75, 65, 88, 128, 75, 65, 87, 86, 128, 75, 65, 87, 73,
+ 128, 75, 65, 87, 66, 128, 75, 65, 86, 89, 75, 65, 128, 75, 65, 86, 128,
+ 75, 65, 85, 86, 128, 75, 65, 85, 78, 65, 128, 75, 65, 85, 206, 75, 65,
+ 85, 66, 128, 75, 65, 84, 79, 128, 75, 65, 84, 72, 73, 83, 84, 73, 128,
+ 75, 65, 84, 72, 65, 75, 193, 75, 65, 84, 65, 86, 65, 83, 77, 65, 128, 75,
+ 65, 84, 65, 86, 193, 75, 65, 84, 65, 75, 65, 78, 65, 45, 72, 73, 82, 65,
+ 71, 65, 78, 193, 75, 65, 83, 82, 65, 84, 65, 78, 128, 75, 65, 83, 82, 65,
+ 84, 65, 206, 75, 65, 83, 82, 65, 128, 75, 65, 83, 82, 193, 75, 65, 83,
+ 75, 65, 76, 128, 75, 65, 83, 75, 65, 204, 75, 65, 83, 72, 77, 73, 82,
+ 201, 75, 65, 82, 83, 72, 65, 78, 65, 128, 75, 65, 82, 79, 82, 73, 73,
+ 128, 75, 65, 82, 207, 75, 65, 82, 69, 206, 75, 65, 82, 65, 84, 84, 79,
+ 128, 75, 65, 82, 65, 78, 128, 75, 65, 80, 89, 69, 79, 85, 78, 83, 83, 65,
+ 78, 71, 80, 73, 69, 85, 80, 128, 75, 65, 80, 89, 69, 79, 85, 78, 82, 73,
+ 69, 85, 76, 128, 75, 65, 80, 89, 69, 79, 85, 78, 80, 72, 73, 69, 85, 80,
+ 72, 128, 75, 65, 80, 89, 69, 79, 85, 78, 77, 73, 69, 85, 77, 128, 75, 65,
+ 80, 80, 65, 128, 75, 65, 80, 80, 193, 75, 65, 80, 79, 128, 75, 65, 80,
+ 72, 128, 75, 65, 80, 65, 76, 128, 75, 65, 80, 65, 128, 75, 65, 208, 75,
+ 65, 78, 84, 65, 74, 193, 75, 65, 78, 71, 128, 75, 65, 78, 199, 75, 65,
+ 78, 65, 75, 79, 128, 75, 65, 77, 52, 128, 75, 65, 77, 50, 128, 75, 65,
+ 77, 128, 75, 65, 75, 79, 128, 75, 65, 75, 65, 66, 65, 84, 128, 75, 65,
+ 75, 128, 75, 65, 203, 75, 65, 73, 86, 128, 75, 65, 73, 84, 72, 201, 75,
+ 65, 73, 82, 73, 128, 75, 65, 73, 66, 128, 75, 65, 73, 128, 75, 65, 201,
+ 75, 65, 70, 65, 128, 75, 65, 70, 128, 75, 65, 198, 75, 65, 68, 53, 128,
+ 75, 65, 68, 181, 75, 65, 68, 52, 128, 75, 65, 68, 51, 128, 75, 65, 68,
+ 179, 75, 65, 68, 50, 128, 75, 65, 68, 128, 75, 65, 66, 193, 75, 65, 66,
+ 128, 75, 65, 65, 86, 128, 75, 65, 65, 73, 128, 75, 65, 65, 70, 85, 128,
+ 75, 65, 65, 70, 128, 75, 65, 65, 66, 65, 128, 75, 65, 65, 66, 128, 75,
+ 65, 50, 128, 75, 65, 178, 75, 48, 48, 56, 128, 75, 48, 48, 55, 128, 75,
+ 48, 48, 54, 128, 75, 48, 48, 53, 128, 75, 48, 48, 52, 128, 75, 48, 48,
+ 51, 128, 75, 48, 48, 50, 128, 75, 48, 48, 49, 128, 74, 87, 65, 128, 74,
+ 85, 85, 128, 74, 85, 84, 128, 74, 85, 83, 84, 73, 70, 73, 67, 65, 84, 73,
+ 79, 78, 128, 74, 85, 80, 73, 84, 69, 82, 128, 74, 85, 79, 84, 128, 74,
+ 85, 79, 80, 128, 74, 85, 78, 79, 128, 74, 85, 78, 69, 128, 74, 85, 76,
+ 89, 128, 74, 85, 69, 85, 73, 128, 74, 85, 68, 85, 76, 128, 74, 85, 68,
+ 71, 69, 128, 74, 85, 68, 69, 79, 45, 83, 80, 65, 78, 73, 83, 200, 74, 79,
+ 89, 83, 84, 73, 67, 75, 128, 74, 79, 89, 79, 85, 211, 74, 79, 89, 128,
+ 74, 79, 86, 69, 128, 74, 79, 212, 74, 79, 78, 71, 128, 74, 79, 78, 193,
+ 74, 79, 75, 69, 82, 128, 74, 79, 73, 78, 84, 83, 128, 74, 79, 73, 78, 69,
+ 68, 128, 74, 79, 73, 78, 128, 74, 79, 65, 128, 74, 74, 89, 88, 128, 74,
+ 74, 89, 84, 128, 74, 74, 89, 80, 128, 74, 74, 89, 128, 74, 74, 85, 88,
+ 128, 74, 74, 85, 84, 128, 74, 74, 85, 82, 88, 128, 74, 74, 85, 82, 128,
+ 74, 74, 85, 80, 128, 74, 74, 85, 79, 88, 128, 74, 74, 85, 79, 80, 128,
+ 74, 74, 85, 79, 128, 74, 74, 85, 128, 74, 74, 79, 88, 128, 74, 74, 79,
+ 84, 128, 74, 74, 79, 80, 128, 74, 74, 79, 128, 74, 74, 73, 88, 128, 74,
+ 74, 73, 84, 128, 74, 74, 73, 80, 128, 74, 74, 73, 69, 88, 128, 74, 74,
+ 73, 69, 84, 128, 74, 74, 73, 69, 80, 128, 74, 74, 73, 69, 128, 74, 74,
+ 73, 128, 74, 74, 69, 69, 128, 74, 74, 69, 128, 74, 74, 65, 128, 74, 73,
+ 76, 128, 74, 73, 73, 128, 74, 73, 72, 86, 65, 77, 85, 76, 73, 89, 65,
+ 128, 74, 73, 65, 128, 74, 72, 79, 88, 128, 74, 72, 79, 128, 74, 72, 69,
+ 72, 128, 74, 72, 65, 89, 73, 78, 128, 74, 72, 65, 78, 128, 74, 72, 65,
+ 77, 128, 74, 72, 65, 65, 128, 74, 72, 65, 128, 74, 69, 85, 128, 74, 69,
+ 82, 85, 83, 65, 76, 69, 77, 128, 74, 69, 82, 65, 206, 74, 69, 82, 65,
+ 128, 74, 69, 82, 128, 74, 69, 72, 128, 74, 69, 200, 74, 69, 71, 79, 71,
+ 65, 78, 128, 74, 69, 69, 77, 128, 74, 69, 65, 78, 83, 128, 74, 65, 89,
+ 78, 128, 74, 65, 89, 73, 78, 128, 74, 65, 89, 65, 78, 78, 65, 128, 74,
+ 65, 87, 128, 74, 65, 86, 73, 89, 65, 78, 73, 128, 74, 65, 85, 128, 74,
+ 65, 82, 128, 74, 65, 80, 65, 78, 69, 83, 197, 74, 65, 80, 65, 78, 128,
+ 74, 65, 78, 85, 65, 82, 89, 128, 74, 65, 76, 76, 65, 74, 65, 76, 65, 76,
+ 79, 85, 72, 79, 85, 128, 74, 65, 73, 206, 74, 65, 73, 128, 74, 65, 72,
+ 128, 74, 65, 68, 69, 128, 74, 65, 67, 75, 83, 128, 74, 65, 67, 75, 45,
+ 79, 45, 76, 65, 78, 84, 69, 82, 78, 128, 74, 65, 67, 203, 74, 45, 83, 73,
+ 77, 80, 76, 73, 70, 73, 69, 196, 73, 90, 72, 73, 84, 83, 65, 128, 73, 90,
+ 72, 73, 84, 83, 193, 73, 90, 72, 69, 128, 73, 90, 65, 75, 65, 89, 193,
+ 73, 89, 69, 75, 128, 73, 89, 65, 78, 78, 65, 128, 73, 85, 74, 65, 128,
+ 73, 84, 211, 73, 84, 69, 82, 65, 84, 73, 79, 206, 73, 84, 69, 77, 128,
+ 73, 83, 83, 72, 65, 82, 128, 73, 83, 79, 83, 67, 69, 76, 69, 211, 73, 83,
+ 79, 78, 128, 73, 83, 79, 206, 73, 83, 79, 76, 65, 84, 69, 128, 73, 83,
+ 76, 65, 78, 68, 128, 73, 83, 69, 78, 45, 73, 83, 69, 78, 128, 73, 83, 65,
+ 75, 73, 193, 73, 83, 45, 80, 73, 76, 76, 65, 128, 73, 82, 85, 89, 65, 78,
+ 78, 65, 128, 73, 82, 85, 85, 89, 65, 78, 78, 65, 128, 73, 82, 79, 78, 45,
+ 67, 79, 80, 80, 69, 210, 73, 82, 79, 78, 128, 73, 82, 66, 128, 73, 79,
+ 84, 73, 70, 73, 69, 196, 73, 79, 84, 65, 84, 69, 196, 73, 79, 84, 65,
+ 128, 73, 79, 84, 193, 73, 79, 82, 128, 73, 79, 68, 72, 65, 68, 72, 128,
+ 73, 78, 86, 73, 83, 73, 66, 76, 197, 73, 78, 86, 69, 82, 84, 69, 68, 128,
+ 73, 78, 86, 69, 82, 84, 69, 196, 73, 78, 86, 69, 82, 83, 197, 73, 78, 84,
+ 82, 79, 68, 85, 67, 69, 82, 128, 73, 78, 84, 73, 128, 73, 78, 84, 69, 82,
+ 83, 89, 76, 76, 65, 66, 73, 195, 73, 78, 84, 69, 82, 83, 69, 67, 84, 73,
+ 79, 78, 128, 73, 78, 84, 69, 82, 83, 69, 67, 84, 73, 79, 206, 73, 78, 84,
+ 69, 82, 83, 69, 67, 84, 73, 78, 199, 73, 78, 84, 69, 82, 82, 79, 66, 65,
+ 78, 71, 128, 73, 78, 84, 69, 82, 82, 79, 66, 65, 78, 199, 73, 78, 84, 69,
+ 82, 80, 79, 76, 65, 84, 73, 79, 206, 73, 78, 84, 69, 82, 76, 79, 67, 75,
+ 69, 196, 73, 78, 84, 69, 82, 76, 73, 78, 69, 65, 210, 73, 78, 84, 69, 82,
+ 76, 65, 67, 69, 196, 73, 78, 84, 69, 82, 73, 79, 210, 73, 78, 84, 69, 82,
+ 69, 83, 212, 73, 78, 84, 69, 82, 67, 65, 76, 65, 84, 69, 128, 73, 78, 84,
+ 69, 71, 82, 65, 84, 73, 79, 78, 128, 73, 78, 84, 69, 71, 82, 65, 84, 73,
+ 79, 206, 73, 78, 84, 69, 71, 82, 65, 76, 128, 73, 78, 84, 69, 71, 82, 65,
+ 204, 73, 78, 83, 85, 76, 65, 210, 73, 78, 83, 84, 82, 85, 77, 69, 78, 84,
+ 65, 204, 73, 78, 83, 73, 68, 69, 128, 73, 78, 83, 73, 68, 197, 73, 78,
+ 83, 69, 82, 84, 73, 79, 206, 73, 78, 83, 69, 67, 84, 128, 73, 78, 83, 67,
+ 82, 73, 80, 84, 73, 79, 78, 65, 204, 73, 78, 80, 85, 212, 73, 78, 78, 79,
+ 67, 69, 78, 67, 69, 128, 73, 78, 78, 78, 128, 73, 78, 78, 69, 82, 128,
+ 73, 78, 78, 69, 210, 73, 78, 78, 128, 73, 78, 73, 78, 71, 85, 128, 73,
+ 78, 73, 128, 73, 78, 72, 73, 66, 73, 212, 73, 78, 72, 69, 82, 69, 78,
+ 212, 73, 78, 72, 65, 76, 69, 128, 73, 78, 71, 87, 65, 90, 128, 73, 78,
+ 70, 79, 82, 77, 65, 84, 73, 79, 206, 73, 78, 70, 76, 85, 69, 78, 67, 69,
+ 128, 73, 78, 70, 73, 78, 73, 84, 89, 128, 73, 78, 70, 73, 78, 73, 84,
+ 217, 73, 78, 68, 85, 83, 84, 82, 73, 65, 204, 73, 78, 68, 73, 82, 69, 67,
+ 212, 73, 78, 68, 73, 67, 65, 84, 79, 82, 128, 73, 78, 68, 73, 67, 65, 84,
+ 79, 210, 73, 78, 68, 73, 195, 73, 78, 68, 73, 65, 206, 73, 78, 68, 69,
+ 88, 128, 73, 78, 68, 69, 80, 69, 78, 68, 69, 78, 212, 73, 78, 67, 82, 69,
+ 77, 69, 78, 84, 128, 73, 78, 67, 82, 69, 65, 83, 69, 211, 73, 78, 67, 82,
+ 69, 65, 83, 69, 128, 73, 78, 67, 82, 69, 65, 83, 197, 73, 78, 67, 79, 77,
+ 80, 76, 69, 84, 197, 73, 78, 67, 79, 77, 73, 78, 199, 73, 78, 67, 76, 85,
+ 68, 73, 78, 199, 73, 78, 67, 72, 128, 73, 78, 66, 79, 216, 73, 78, 65,
+ 80, 128, 73, 78, 45, 65, 76, 65, 70, 128, 73, 77, 80, 69, 82, 73, 65,
+ 204, 73, 77, 80, 69, 82, 70, 69, 67, 84, 85, 205, 73, 77, 80, 69, 82, 70,
+ 69, 67, 84, 65, 128, 73, 77, 80, 69, 82, 70, 69, 67, 84, 193, 73, 77, 78,
+ 128, 73, 77, 73, 83, 69, 79, 211, 73, 77, 73, 78, 51, 128, 73, 77, 73,
+ 78, 128, 73, 77, 73, 206, 73, 77, 73, 70, 84, 72, 79, 82, 79, 78, 128,
+ 73, 77, 73, 70, 84, 72, 79, 82, 65, 128, 73, 77, 73, 70, 79, 78, 79, 78,
+ 128, 73, 77, 73, 68, 73, 65, 82, 71, 79, 78, 128, 73, 77, 65, 71, 197,
+ 73, 76, 85, 89, 65, 78, 78, 65, 128, 73, 76, 85, 89, 128, 73, 76, 85, 85,
+ 89, 65, 78, 78, 65, 128, 73, 76, 85, 84, 128, 73, 76, 73, 77, 77, 85, 52,
+ 128, 73, 76, 73, 77, 77, 85, 51, 128, 73, 76, 73, 77, 77, 85, 128, 73,
+ 76, 73, 77, 77, 213, 73, 76, 50, 128, 73, 75, 65, 82, 65, 128, 73, 75,
+ 65, 82, 193, 73, 74, 128, 73, 73, 89, 65, 78, 78, 65, 128, 73, 71, 73,
+ 128, 73, 71, 201, 73, 71, 71, 87, 83, 128, 73, 70, 73, 78, 128, 73, 69,
+ 85, 78, 71, 45, 84, 73, 75, 69, 85, 84, 128, 73, 69, 85, 78, 71, 45, 84,
+ 72, 73, 69, 85, 84, 72, 128, 73, 69, 85, 78, 71, 45, 83, 83, 65, 78, 71,
+ 75, 73, 89, 69, 79, 75, 128, 73, 69, 85, 78, 71, 45, 82, 73, 69, 85, 76,
+ 128, 73, 69, 85, 78, 71, 45, 80, 73, 69, 85, 80, 128, 73, 69, 85, 78, 71,
+ 45, 80, 72, 73, 69, 85, 80, 72, 128, 73, 69, 85, 78, 71, 45, 75, 73, 89,
+ 69, 79, 75, 128, 73, 69, 85, 78, 71, 45, 75, 72, 73, 69, 85, 75, 72, 128,
+ 73, 69, 85, 78, 71, 45, 67, 73, 69, 85, 67, 128, 73, 69, 85, 78, 71, 45,
+ 67, 72, 73, 69, 85, 67, 72, 128, 73, 69, 85, 78, 199, 73, 68, 76, 69,
+ 128, 73, 68, 73, 77, 128, 73, 68, 73, 205, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 65, 68, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 65, 68, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68,
+ 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 54, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 53, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 65, 68, 52, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 65, 68, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 65, 68, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68,
+ 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 48, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 70, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 65, 67, 69, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 65, 67, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 65, 67, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67,
+ 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 65, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 57, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 65, 67, 56, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 65, 67, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 65, 67, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67,
+ 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 52, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 51, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 65, 67, 50, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 65, 67, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 65, 67, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66,
+ 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 69, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 68, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 65, 66, 67, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 65, 66, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 65, 66, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66,
+ 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 56, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 55, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 65, 66, 54, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 65, 66, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 65, 66, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66,
+ 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 50, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 49, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 65, 66, 48, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 65, 65, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 65, 65, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65,
+ 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 67, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 66, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 65, 65, 65, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 65, 65, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 65, 65, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65,
+ 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 54, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 53, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 65, 65, 52, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 65, 65, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 65, 65, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65,
+ 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 48, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 70, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 65, 57, 69, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 65, 57, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 65, 57, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57,
+ 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 65, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 57, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 65, 57, 56, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 65, 57, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 65, 57, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57,
+ 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 52, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 51, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 65, 57, 50, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 65, 57, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 65, 57, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56,
+ 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 69, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 68, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 65, 56, 67, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 65, 56, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 65, 56, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56,
+ 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 56, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 55, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 65, 56, 54, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 65, 56, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 65, 56, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56,
+ 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 50, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 49, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 65, 56, 48, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 65, 55, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 65, 55, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55,
+ 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 67, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 66, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 65, 55, 65, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 65, 55, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 65, 55, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55,
+ 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 54, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 53, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 65, 55, 52, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 65, 55, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 65, 55, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55,
+ 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 48, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 68, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 65, 54, 67, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 65, 54, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 65, 54, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54,
+ 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 56, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 55, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 65, 54, 54, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 65, 54, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 65, 54, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54,
+ 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 50, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 49, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 65, 54, 48, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 65, 53, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 65, 53, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53,
+ 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 67, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 66, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 65, 53, 65, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 65, 53, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 65, 53, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53,
+ 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 54, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 53, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 65, 53, 52, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 65, 53, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 65, 53, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53,
+ 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 48, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 70, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 65, 52, 69, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 65, 52, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 65, 52, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52,
+ 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 65, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 57, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 65, 52, 56, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 65, 52, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 65, 52, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52,
+ 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 52, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 51, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 65, 52, 50, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 65, 52, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 65, 52, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51,
+ 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 69, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 68, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 65, 51, 67, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 65, 51, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 65, 51, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51,
+ 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 56, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 55, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 65, 51, 54, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 65, 51, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 65, 51, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51,
+ 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 50, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 49, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 65, 51, 48, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 65, 50, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 65, 50, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50,
+ 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 67, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 66, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 65, 50, 65, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 65, 50, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 65, 50, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50,
+ 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 54, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 53, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 65, 50, 52, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 65, 50, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 65, 50, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50,
+ 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 48, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 70, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 65, 49, 69, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 65, 49, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 65, 49, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49,
+ 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 65, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 57, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 65, 49, 56, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 65, 49, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 65, 49, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49,
+ 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 52, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 51, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 65, 49, 50, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 65, 49, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 65, 49, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48,
+ 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 69, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 68, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 65, 48, 67, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 65, 48, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 65, 48, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48,
+ 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 56, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 55, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 65, 48, 54, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 65, 48, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 65, 48, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48,
+ 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 50, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 49, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 65, 48, 48, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 70, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 70, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70,
+ 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 67, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 66, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 70, 65, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 70, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 70, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70,
+ 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 54, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 53, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 70, 52, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 70, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 70, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70,
+ 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 48, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 70, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 69, 69, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 69, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 69, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69,
+ 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 65, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 57, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 69, 56, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 69, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 69, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69,
+ 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 52, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 51, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 69, 50, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 69, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 69, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68,
+ 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 69, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 68, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 68, 67, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 68, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 68, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68,
+ 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 56, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 55, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 68, 54, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 68, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 68, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68,
+ 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 50, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 49, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 68, 48, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 67, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 67, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67,
+ 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 67, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 66, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 67, 65, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 67, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 67, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67,
+ 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 54, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 53, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 67, 52, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 67, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 67, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67,
+ 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 48, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 70, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 66, 69, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 66, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 66, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66,
+ 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 65, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 57, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 66, 56, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 66, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 66, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66,
+ 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 52, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 51, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 66, 50, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 66, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 66, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65,
+ 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 69, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 68, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 65, 67, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 65, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 65, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65,
+ 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 56, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 55, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 65, 54, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 65, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 65, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65,
+ 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 50, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 49, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 65, 48, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 57, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 57, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57,
+ 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 67, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 66, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 57, 65, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 57, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 57, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57,
+ 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 54, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 53, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 57, 52, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 57, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 57, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57,
+ 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 48, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 70, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 56, 69, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 56, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 56, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56,
+ 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 65, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 57, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 56, 56, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 56, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 56, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56,
+ 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 52, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 51, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 56, 50, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 56, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 56, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55,
+ 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 69, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 68, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 55, 67, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 55, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 55, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55,
+ 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 56, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 55, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 55, 54, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 55, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 55, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55,
+ 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 50, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 49, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 55, 48, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 54, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 54, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54,
+ 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 67, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 66, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 54, 65, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 54, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 54, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54,
+ 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 54, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 53, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 54, 52, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 54, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 54, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54,
+ 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 48, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 70, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 53, 69, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 53, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 53, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53,
+ 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 65, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 57, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 53, 56, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 53, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 53, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53,
+ 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 52, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 51, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 53, 50, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 53, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 53, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52,
+ 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 69, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 68, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 52, 67, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 52, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 52, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52,
+ 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 56, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 55, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 52, 54, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 52, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 52, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52,
+ 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 50, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 49, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 52, 48, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 51, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 51, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51,
+ 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 67, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 66, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 51, 65, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 51, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 51, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51,
+ 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 54, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 53, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 51, 52, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 51, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 51, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51,
+ 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 48, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 70, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 50, 69, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 50, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 50, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50,
+ 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 65, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 57, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 50, 56, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 50, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 50, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50,
+ 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 52, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 51, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 50, 50, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 50, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 50, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49,
+ 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 69, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 68, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 49, 67, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 49, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 49, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49,
+ 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 56, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 55, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 49, 54, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 49, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 49, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49,
+ 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 50, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 49, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 49, 48, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 48, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 48, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48,
+ 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 67, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 66, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 48, 65, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 48, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48,
+ 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 54, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 53, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 70, 57, 48, 52, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 70, 57, 48, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 70, 57, 48, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48,
+ 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 48, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 57, 48, 52, 65, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 56, 68, 55, 48, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 56, 67, 65, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 56, 57, 69, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 55, 68, 52,
+ 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 55, 65, 55, 65, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 55, 57, 56, 49, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 55, 54, 68, 55, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 55, 53, 51, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 55, 53, 49, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 55, 49, 50,
+ 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 55, 48, 66, 57, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 70, 49, 52, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 54, 69, 56, 48, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 54, 55, 50, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 54, 55, 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 55, 48,
+ 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 54, 50, 48, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 53, 66, 48, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 54, 53, 57, 57, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 54, 53, 53, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 54, 51, 53, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 51, 48,
+ 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 50, 57, 53, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 50, 53, 51, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 54, 50, 52, 66, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 53, 70, 56, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 53, 68, 69, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 66, 56,
+ 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 66, 53, 55, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 57, 50, 57, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 53, 57, 49, 65, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 53, 56, 70, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 53, 53, 66, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 52, 51,
+ 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 52, 48, 56, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 51, 70, 51, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 53, 51, 67, 67, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 53, 50, 68, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 53, 50, 55, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 50, 52,
+ 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 50, 49, 68, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 49, 56, 68, 128, 73, 68, 69, 79,
+ 71, 82, 65, 80, 72, 45, 52, 69, 65, 52, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 52, 69, 56, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45,
+ 52, 69, 50, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 52, 69, 48,
+ 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 52, 69, 48, 48, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 68, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 67, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 65, 49, 66, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 65, 49, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 65, 49, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 65, 49, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65,
+ 49, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 54,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 53, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 52, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 51, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 65, 49, 50, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 65, 49, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 65, 49, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 65, 48, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65,
+ 48, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 68,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 67, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 66, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 65, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 65, 48, 57, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 65, 48, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 65, 48, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 65, 48, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65,
+ 48, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 52,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 51, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 50, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 49, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 65, 48, 48, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 70, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 70, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 70, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 70, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 66,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 65, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 57, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 56, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 70, 55, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 70, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 70, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 70, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 70, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 50,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 49, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 48, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 70, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 69, 69, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 69, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 69, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 69, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 69, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 57,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 56, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 55, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 54, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 69, 53, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 69, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 69, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 69, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 69, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 48,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 70, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 69, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 68, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 68, 67, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 68, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 68, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 68, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 68, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 55,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 54, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 53, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 52, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 68, 51, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 68, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 68, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 68, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 67, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 69,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 68, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 67, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 66, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 67, 65, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 67, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 67, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 67, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 67, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 53,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 52, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 51, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 50, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 67, 49, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 67, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 66, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 66, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 66, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 67,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 66, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 65, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 57, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 66, 56, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 66, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 66, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 66, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 66, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 51,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 50, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 49, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 48, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 65, 70, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 65, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 65, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 65, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 65, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 65,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 57, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 56, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 55, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 65, 54, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 65, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 65, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 65, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 65, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 49,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 48, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 70, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 69, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 57, 68, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 57, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 57, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 57, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 57, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 56,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 55, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 54, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 53, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 57, 52, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 57, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 57, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 57, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 57, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 70,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 69, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 68, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 67, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 56, 66, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 56, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 56, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 56, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 56, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 54,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 53, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 52, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 51, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 56, 50, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 56, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 56, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 55, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 55, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 68,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 67, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 66, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 65, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 55, 57, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 55, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 55, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 55, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 55, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 52,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 51, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 50, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 49, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 55, 48, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 54, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 54, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 54, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 54, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 66,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 65, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 57, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 56, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 54, 55, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 54, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 54, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 54, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 54, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 50,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 49, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 48, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 70, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 53, 69, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 53, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 53, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 53, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 53, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 57,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 56, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 55, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 54, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 53, 53, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 53, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 53, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 53, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 53, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 48,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 70, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 69, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 68, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 52, 67, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 52, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 52, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 52, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 52, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 55,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 54, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 53, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 52, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 52, 51, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 52, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 52, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 52, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 51, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 69,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 68, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 67, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 66, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 51, 65, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 51, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 51, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 51, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 51, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 53,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 52, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 51, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 50, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 51, 49, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 51, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 50, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 50, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 50, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 67,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 66, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 65, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 57, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 50, 56, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 50, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 50, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 50, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 50, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 51,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 50, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 49, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 48, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 49, 70, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 49, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 49, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 49, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 49, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 65,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 57, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 56, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 55, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 49, 54, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 49, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 49, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 49, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 49, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 49,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 48, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 70, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 69, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 48, 68, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 48, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 48, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 48, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 56,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 55, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 54, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 53, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 48, 52, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 48, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 48, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 48, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 70,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 69, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 68, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 67, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 70, 66, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 70, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 70, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 70, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 70, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 54,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 53, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 52, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 51, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 70, 50, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 70, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 70, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 69, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 69, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 68,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 67, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 66, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 65, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 69, 57, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 69, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 69, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 69, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 69, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 52,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 51, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 50, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 49, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 69, 48, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 68, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 68, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 68, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 68, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 66,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 65, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 57, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 56, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 68, 55, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 68, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 68, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 68, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 68, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 50,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 49, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 48, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 70, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 67, 69, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 67, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 67, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 67, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 67, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 57,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 56, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 55, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 54, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 67, 53, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 67, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 67, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 67, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 67, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 48,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 70, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 69, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 68, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 66, 67, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 66, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 66, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 66, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 66, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 55,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 54, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 53, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 52, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 66, 51, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 66, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 66, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 66, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 65, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 69,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 68, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 67, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 66, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 65, 65, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 65, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 65, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 65, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 65, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 53,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 52, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 51, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 50, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 65, 49, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 65, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 57, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 57, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 57, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 67,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 66, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 65, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 57, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 57, 56, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 57, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 57, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 57, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 57, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 51,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 50, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 49, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 48, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 56, 70, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 56, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 56, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 56, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 56, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 65,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 57, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 56, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 55, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 56, 54, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 56, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 56, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 56, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 56, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 49,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 48, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 70, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 69, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 55, 68, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 55, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 55, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 55, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 55, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 56,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 55, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 54, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 53, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 55, 52, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 55, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 55, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 55, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 55, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 70,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 69, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 68, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 67, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 54, 66, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 54, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 54, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 54, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 54, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 54,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 53, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 52, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 51, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 54, 50, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 54, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 54, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 53, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 53, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 68,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 67, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 66, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 65, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 53, 57, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 53, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 53, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 53, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 53, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 52,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 51, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 50, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 49, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 53, 48, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 52, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 52, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 52, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 52, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 66,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 65, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 57, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 56, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 52, 55, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 52, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 52, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 52, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 52, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 50,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 49, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 48, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 70, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 51, 69, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 51, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 51, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 51, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 51, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 57,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 56, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 55, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 54, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 51, 53, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 51, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 51, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 51, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 51, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 48,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 70, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 69, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 68, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 50, 67, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 50, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 50, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 50, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 50, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 55,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 54, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 53, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 52, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 50, 51, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 50, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 50, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 50, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 49, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 69,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 68, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 67, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 66, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 49, 65, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 49, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 49, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 49, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 49, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 53,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 52, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 51, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 50, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 49, 49, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 49, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 48, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 48, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 48, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 67,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 66, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 65, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 57, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 48, 56, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 48, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 48, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 48, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 48, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 51,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 50, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 49, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 48, 128, 73, 68, 69, 78, 84,
+ 73, 70, 73, 67, 65, 84, 73, 79, 78, 128, 73, 68, 69, 78, 84, 73, 67, 65,
+ 204, 73, 67, 79, 78, 128, 73, 67, 72, 79, 85, 128, 73, 67, 72, 79, 83,
+ 128, 73, 67, 72, 73, 77, 65, 84, 79, 83, 128, 73, 67, 72, 65, 68, 73, 78,
+ 128, 73, 67, 69, 76, 65, 78, 68, 73, 67, 45, 89, 82, 128, 73, 66, 73, 70,
+ 73, 76, 73, 128, 73, 65, 85, 68, 65, 128, 73, 48, 49, 53, 128, 73, 48,
+ 49, 52, 128, 73, 48, 49, 51, 128, 73, 48, 49, 50, 128, 73, 48, 49, 49,
+ 65, 128, 73, 48, 49, 49, 128, 73, 48, 49, 48, 65, 128, 73, 48, 49, 48,
+ 128, 73, 48, 48, 57, 65, 128, 73, 48, 48, 57, 128, 73, 48, 48, 56, 128,
+ 73, 48, 48, 55, 128, 73, 48, 48, 54, 128, 73, 48, 48, 53, 65, 128, 73,
+ 48, 48, 53, 128, 73, 48, 48, 52, 128, 73, 48, 48, 51, 128, 73, 48, 48,
+ 50, 128, 73, 48, 48, 49, 128, 73, 45, 89, 85, 128, 73, 45, 89, 79, 128,
+ 73, 45, 89, 69, 79, 128, 73, 45, 89, 69, 128, 73, 45, 89, 65, 69, 128,
+ 73, 45, 89, 65, 45, 79, 128, 73, 45, 89, 65, 128, 73, 45, 79, 45, 73,
+ 128, 73, 45, 79, 128, 73, 45, 69, 85, 128, 73, 45, 66, 69, 65, 77, 128,
+ 73, 45, 65, 82, 65, 69, 65, 128, 73, 45, 65, 128, 72, 90, 90, 90, 71,
+ 128, 72, 90, 90, 90, 128, 72, 90, 90, 80, 128, 72, 90, 90, 128, 72, 90,
+ 87, 71, 128, 72, 90, 87, 128, 72, 90, 84, 128, 72, 90, 71, 128, 72, 89,
+ 83, 84, 69, 82, 69, 83, 73, 211, 72, 89, 80, 79, 68, 73, 65, 83, 84, 79,
+ 76, 69, 128, 72, 89, 80, 72, 69, 78, 65, 84, 73, 79, 206, 72, 89, 80, 72,
+ 69, 78, 45, 77, 73, 78, 85, 83, 128, 72, 89, 80, 72, 69, 78, 128, 72, 89,
+ 80, 72, 69, 206, 72, 89, 71, 73, 69, 73, 65, 128, 72, 88, 87, 71, 128,
+ 72, 88, 85, 79, 88, 128, 72, 88, 85, 79, 84, 128, 72, 88, 85, 79, 80,
+ 128, 72, 88, 85, 79, 128, 72, 88, 79, 88, 128, 72, 88, 79, 84, 128, 72,
+ 88, 79, 80, 128, 72, 88, 79, 128, 72, 88, 73, 88, 128, 72, 88, 73, 84,
+ 128, 72, 88, 73, 80, 128, 72, 88, 73, 69, 88, 128, 72, 88, 73, 69, 84,
+ 128, 72, 88, 73, 69, 80, 128, 72, 88, 73, 69, 128, 72, 88, 73, 128, 72,
+ 88, 69, 88, 128, 72, 88, 69, 80, 128, 72, 88, 69, 128, 72, 88, 65, 88,
+ 128, 72, 88, 65, 84, 128, 72, 88, 65, 80, 128, 72, 88, 65, 128, 72, 87,
+ 85, 128, 72, 87, 65, 73, 82, 128, 72, 87, 65, 72, 128, 72, 86, 128, 72,
+ 85, 86, 65, 128, 72, 85, 83, 72, 69, 196, 72, 85, 83, 72, 128, 72, 85,
+ 82, 65, 78, 128, 72, 85, 79, 84, 128, 72, 85, 78, 68, 82, 69, 68, 83,
+ 128, 72, 85, 78, 68, 82, 69, 68, 128, 72, 85, 78, 68, 82, 69, 196, 72,
+ 85, 78, 128, 72, 85, 77, 208, 72, 85, 77, 65, 78, 128, 72, 85, 77, 65,
+ 206, 72, 85, 76, 50, 128, 72, 85, 73, 73, 84, 79, 128, 72, 85, 71, 71,
+ 73, 78, 199, 72, 85, 66, 50, 128, 72, 85, 66, 178, 72, 85, 66, 128, 72,
+ 85, 65, 82, 65, 68, 68, 79, 128, 72, 85, 65, 78, 128, 72, 84, 83, 128,
+ 72, 84, 74, 128, 72, 82, 89, 86, 78, 73, 193, 72, 80, 87, 71, 128, 72,
+ 80, 65, 128, 72, 80, 128, 72, 79, 85, 83, 197, 72, 79, 85, 82, 71, 76,
+ 65, 83, 83, 128, 72, 79, 85, 82, 71, 76, 65, 83, 211, 72, 79, 85, 82,
+ 128, 72, 79, 85, 210, 72, 79, 84, 69, 76, 128, 72, 79, 84, 65, 128, 72,
+ 79, 83, 80, 73, 84, 65, 76, 128, 72, 79, 82, 83, 69, 128, 72, 79, 82, 83,
+ 197, 72, 79, 82, 82, 128, 72, 79, 82, 78, 83, 128, 72, 79, 82, 73, 90,
+ 79, 78, 84, 65, 76, 76, 217, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45,
+ 48, 54, 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48,
+ 54, 45, 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 54,
+ 45, 48, 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 54, 45,
+ 48, 51, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 54, 45, 48,
+ 50, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 54, 45, 48, 49,
+ 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 54, 45, 48, 48, 128,
+ 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, 48, 54, 128, 72,
+ 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, 48, 53, 128, 72, 79,
+ 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, 48, 52, 128, 72, 79, 82,
+ 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, 48, 51, 128, 72, 79, 82, 73,
+ 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, 48, 50, 128, 72, 79, 82, 73, 90,
+ 79, 78, 84, 65, 76, 45, 48, 53, 45, 48, 49, 128, 72, 79, 82, 73, 90, 79,
+ 78, 84, 65, 76, 45, 48, 53, 45, 48, 48, 128, 72, 79, 82, 73, 90, 79, 78,
+ 84, 65, 76, 45, 48, 52, 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, 78, 84,
+ 65, 76, 45, 48, 52, 45, 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65,
+ 76, 45, 48, 52, 45, 48, 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76,
+ 45, 48, 52, 45, 48, 51, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45,
+ 48, 52, 45, 48, 50, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48,
+ 52, 45, 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 52,
+ 45, 48, 48, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45,
+ 48, 54, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, 48,
+ 53, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, 48, 52,
+ 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, 48, 51, 128,
+ 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, 48, 50, 128, 72,
+ 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, 48, 49, 128, 72, 79,
+ 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, 48, 48, 128, 72, 79, 82,
+ 73, 90, 79, 78, 84, 65, 76, 45, 48, 50, 45, 48, 54, 128, 72, 79, 82, 73,
+ 90, 79, 78, 84, 65, 76, 45, 48, 50, 45, 48, 53, 128, 72, 79, 82, 73, 90,
+ 79, 78, 84, 65, 76, 45, 48, 50, 45, 48, 52, 128, 72, 79, 82, 73, 90, 79,
+ 78, 84, 65, 76, 45, 48, 50, 45, 48, 51, 128, 72, 79, 82, 73, 90, 79, 78,
+ 84, 65, 76, 45, 48, 50, 45, 48, 50, 128, 72, 79, 82, 73, 90, 79, 78, 84,
+ 65, 76, 45, 48, 50, 45, 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65,
+ 76, 45, 48, 50, 45, 48, 48, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76,
+ 45, 48, 49, 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45,
+ 48, 49, 45, 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48,
+ 49, 45, 48, 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 49,
+ 45, 48, 51, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 49, 45,
+ 48, 50, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 49, 45, 48,
+ 49, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 49, 45, 48, 48,
+ 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, 48, 54, 128,
+ 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, 48, 53, 128, 72,
+ 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, 48, 52, 128, 72, 79,
+ 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, 48, 51, 128, 72, 79, 82,
+ 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, 48, 50, 128, 72, 79, 82, 73,
+ 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, 48, 49, 128, 72, 79, 82, 73, 90,
+ 79, 78, 84, 65, 76, 45, 48, 48, 45, 48, 48, 128, 72, 79, 82, 73, 90, 79,
+ 78, 84, 65, 76, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 204, 72, 79, 82,
+ 73, 128, 72, 79, 82, 193, 72, 79, 79, 85, 128, 72, 79, 79, 82, 85, 128,
+ 72, 79, 79, 80, 128, 72, 79, 79, 78, 128, 72, 79, 79, 75, 69, 68, 128,
72, 79, 79, 75, 69, 196, 72, 79, 78, 69, 89, 66, 69, 69, 128, 72, 79, 78,
69, 217, 72, 79, 77, 79, 84, 72, 69, 84, 73, 67, 128, 72, 79, 77, 79, 84,
- 72, 69, 84, 73, 195, 72, 79, 76, 69, 128, 72, 79, 76, 68, 73, 78, 199,
- 72, 79, 76, 65, 77, 128, 72, 79, 76, 65, 205, 72, 79, 75, 65, 128, 72,
- 79, 73, 128, 72, 79, 67, 72, 79, 128, 72, 78, 85, 84, 128, 72, 78, 85,
- 79, 88, 128, 72, 78, 85, 79, 128, 72, 78, 79, 88, 128, 72, 78, 79, 84,
- 128, 72, 78, 79, 80, 128, 72, 78, 73, 88, 128, 72, 78, 73, 84, 128, 72,
- 78, 73, 80, 128, 72, 78, 73, 69, 88, 128, 72, 78, 73, 69, 84, 128, 72,
- 78, 73, 69, 80, 128, 72, 78, 73, 69, 128, 72, 78, 73, 128, 72, 78, 69,
- 88, 128, 72, 78, 69, 80, 128, 72, 78, 69, 128, 72, 78, 65, 88, 128, 72,
- 78, 65, 84, 128, 72, 78, 65, 80, 128, 72, 78, 65, 128, 72, 77, 89, 88,
- 128, 72, 77, 89, 82, 88, 128, 72, 77, 89, 82, 128, 72, 77, 89, 80, 128,
- 72, 77, 89, 128, 72, 77, 85, 88, 128, 72, 77, 85, 84, 128, 72, 77, 85,
- 82, 88, 128, 72, 77, 85, 82, 128, 72, 77, 85, 80, 128, 72, 77, 85, 79,
- 88, 128, 72, 77, 85, 79, 80, 128, 72, 77, 85, 79, 128, 72, 77, 85, 128,
- 72, 77, 79, 88, 128, 72, 77, 79, 84, 128, 72, 77, 79, 80, 128, 72, 77,
- 79, 128, 72, 77, 73, 88, 128, 72, 77, 73, 84, 128, 72, 77, 73, 80, 128,
- 72, 77, 73, 69, 88, 128, 72, 77, 73, 69, 80, 128, 72, 77, 73, 69, 128,
- 72, 77, 73, 128, 72, 77, 69, 128, 72, 77, 65, 88, 128, 72, 77, 65, 84,
- 128, 72, 77, 65, 80, 128, 72, 77, 65, 128, 72, 76, 89, 88, 128, 72, 76,
- 89, 84, 128, 72, 76, 89, 82, 88, 128, 72, 76, 89, 82, 128, 72, 76, 89,
- 80, 128, 72, 76, 89, 128, 72, 76, 85, 88, 128, 72, 76, 85, 84, 128, 72,
- 76, 85, 82, 88, 128, 72, 76, 85, 82, 128, 72, 76, 85, 80, 128, 72, 76,
- 85, 79, 88, 128, 72, 76, 85, 79, 80, 128, 72, 76, 85, 79, 128, 72, 76,
- 85, 128, 72, 76, 79, 88, 128, 72, 76, 79, 80, 128, 72, 76, 79, 128, 72,
- 76, 73, 88, 128, 72, 76, 73, 84, 128, 72, 76, 73, 80, 128, 72, 76, 73,
- 69, 88, 128, 72, 76, 73, 69, 80, 128, 72, 76, 73, 69, 128, 72, 76, 73,
- 128, 72, 76, 69, 88, 128, 72, 76, 69, 80, 128, 72, 76, 69, 128, 72, 76,
- 65, 88, 128, 72, 76, 65, 84, 128, 72, 76, 65, 80, 128, 72, 76, 65, 128,
- 72, 75, 128, 72, 73, 90, 66, 128, 72, 73, 83, 84, 79, 82, 73, 195, 72,
- 73, 82, 73, 81, 128, 72, 73, 71, 72, 45, 83, 80, 69, 69, 196, 72, 73, 71,
- 72, 45, 82, 69, 86, 69, 82, 83, 69, 68, 45, 185, 72, 73, 71, 72, 45, 72,
- 69, 69, 76, 69, 196, 72, 73, 69, 88, 128, 72, 73, 69, 85, 72, 45, 83, 73,
- 79, 83, 128, 72, 73, 69, 85, 72, 45, 82, 73, 69, 85, 76, 128, 72, 73, 69,
- 85, 72, 45, 80, 73, 69, 85, 80, 128, 72, 73, 69, 85, 72, 45, 78, 73, 69,
- 85, 78, 128, 72, 73, 69, 85, 72, 45, 77, 73, 69, 85, 77, 128, 72, 73, 69,
- 85, 200, 72, 73, 69, 82, 79, 71, 76, 89, 80, 72, 73, 195, 72, 73, 69,
+ 72, 69, 84, 73, 195, 72, 79, 76, 79, 128, 72, 79, 76, 76, 79, 215, 72,
+ 79, 76, 69, 128, 72, 79, 76, 68, 73, 78, 199, 72, 79, 76, 65, 77, 128,
+ 72, 79, 76, 65, 205, 72, 79, 75, 65, 128, 72, 79, 67, 75, 69, 217, 72,
+ 79, 67, 72, 79, 128, 72, 78, 85, 84, 128, 72, 78, 85, 79, 88, 128, 72,
+ 78, 85, 79, 128, 72, 78, 85, 66, 128, 72, 78, 79, 88, 128, 72, 78, 79,
+ 84, 128, 72, 78, 79, 80, 128, 72, 78, 73, 88, 128, 72, 78, 73, 84, 128,
+ 72, 78, 73, 80, 128, 72, 78, 73, 69, 88, 128, 72, 78, 73, 69, 84, 128,
+ 72, 78, 73, 69, 80, 128, 72, 78, 73, 69, 128, 72, 78, 73, 128, 72, 78,
+ 69, 88, 128, 72, 78, 69, 80, 128, 72, 78, 69, 128, 72, 78, 65, 88, 128,
+ 72, 78, 65, 85, 128, 72, 78, 65, 84, 128, 72, 78, 65, 80, 128, 72, 78,
+ 65, 128, 72, 77, 89, 88, 128, 72, 77, 89, 82, 88, 128, 72, 77, 89, 82,
+ 128, 72, 77, 89, 80, 128, 72, 77, 89, 128, 72, 77, 85, 88, 128, 72, 77,
+ 85, 84, 128, 72, 77, 85, 82, 88, 128, 72, 77, 85, 82, 128, 72, 77, 85,
+ 80, 128, 72, 77, 85, 79, 88, 128, 72, 77, 85, 79, 80, 128, 72, 77, 85,
+ 79, 128, 72, 77, 85, 128, 72, 77, 79, 88, 128, 72, 77, 79, 84, 128, 72,
+ 77, 79, 80, 128, 72, 77, 79, 128, 72, 77, 73, 88, 128, 72, 77, 73, 84,
+ 128, 72, 77, 73, 80, 128, 72, 77, 73, 69, 88, 128, 72, 77, 73, 69, 80,
+ 128, 72, 77, 73, 69, 128, 72, 77, 73, 128, 72, 77, 69, 128, 72, 77, 65,
+ 88, 128, 72, 77, 65, 84, 128, 72, 77, 65, 80, 128, 72, 77, 65, 128, 72,
+ 76, 89, 88, 128, 72, 76, 89, 84, 128, 72, 76, 89, 82, 88, 128, 72, 76,
+ 89, 82, 128, 72, 76, 89, 80, 128, 72, 76, 89, 128, 72, 76, 85, 88, 128,
+ 72, 76, 85, 84, 128, 72, 76, 85, 82, 88, 128, 72, 76, 85, 82, 128, 72,
+ 76, 85, 80, 128, 72, 76, 85, 79, 88, 128, 72, 76, 85, 79, 80, 128, 72,
+ 76, 85, 79, 128, 72, 76, 85, 128, 72, 76, 79, 88, 128, 72, 76, 79, 80,
+ 128, 72, 76, 79, 128, 72, 76, 73, 88, 128, 72, 76, 73, 84, 128, 72, 76,
+ 73, 80, 128, 72, 76, 73, 69, 88, 128, 72, 76, 73, 69, 80, 128, 72, 76,
+ 73, 69, 128, 72, 76, 73, 128, 72, 76, 69, 88, 128, 72, 76, 69, 80, 128,
+ 72, 76, 69, 128, 72, 76, 65, 88, 128, 72, 76, 65, 85, 128, 72, 76, 65,
+ 84, 128, 72, 76, 65, 80, 128, 72, 76, 65, 128, 72, 76, 128, 72, 75, 128,
+ 72, 73, 90, 66, 128, 72, 73, 89, 79, 128, 72, 73, 84, 84, 73, 78, 199,
+ 72, 73, 83, 84, 79, 82, 73, 195, 72, 73, 82, 73, 81, 128, 72, 73, 78, 71,
+ 69, 68, 128, 72, 73, 78, 71, 69, 196, 72, 73, 78, 71, 69, 128, 72, 73,
+ 71, 72, 45, 83, 80, 69, 69, 196, 72, 73, 71, 72, 45, 82, 69, 86, 69, 82,
+ 83, 69, 68, 45, 185, 72, 73, 71, 72, 45, 76, 79, 215, 72, 73, 71, 72, 45,
+ 72, 69, 69, 76, 69, 196, 72, 73, 69, 88, 128, 72, 73, 69, 85, 72, 45, 83,
+ 73, 79, 83, 128, 72, 73, 69, 85, 72, 45, 82, 73, 69, 85, 76, 128, 72, 73,
+ 69, 85, 72, 45, 80, 73, 69, 85, 80, 128, 72, 73, 69, 85, 72, 45, 78, 73,
+ 69, 85, 78, 128, 72, 73, 69, 85, 72, 45, 77, 73, 69, 85, 77, 128, 72, 73,
+ 69, 85, 200, 72, 73, 69, 82, 79, 71, 76, 89, 80, 72, 73, 195, 72, 73, 69,
128, 72, 73, 68, 73, 78, 199, 72, 73, 68, 69, 84, 128, 72, 73, 68, 69,
128, 72, 73, 66, 73, 83, 67, 85, 83, 128, 72, 72, 87, 65, 128, 72, 72,
85, 128, 72, 72, 73, 128, 72, 72, 69, 69, 128, 72, 72, 69, 128, 72, 72,
- 65, 65, 128, 72, 71, 128, 72, 69, 88, 73, 70, 79, 82, 205, 72, 69, 88,
- 65, 71, 82, 65, 205, 72, 69, 88, 65, 71, 79, 78, 128, 72, 69, 82, 85, 84,
- 85, 128, 72, 69, 82, 85, 128, 72, 69, 82, 77, 73, 84, 73, 65, 206, 72,
- 69, 82, 77, 73, 79, 78, 73, 65, 206, 72, 69, 82, 77, 69, 83, 128, 72, 69,
- 82, 69, 128, 72, 69, 82, 66, 128, 72, 69, 82, 65, 69, 85, 205, 72, 69,
- 78, 71, 128, 72, 69, 78, 199, 72, 69, 77, 80, 128, 72, 69, 76, 77, 69,
- 84, 128, 72, 69, 76, 77, 69, 212, 72, 69, 76, 205, 72, 69, 76, 73, 67,
- 79, 80, 84, 69, 82, 128, 72, 69, 75, 85, 84, 65, 65, 82, 85, 128, 72, 69,
- 73, 83, 69, 73, 128, 72, 69, 65, 86, 89, 128, 72, 69, 65, 86, 69, 78, 76,
- 217, 72, 69, 65, 86, 69, 78, 128, 72, 69, 65, 86, 69, 206, 72, 69, 65,
- 82, 84, 83, 128, 72, 69, 65, 82, 84, 45, 83, 72, 65, 80, 69, 196, 72, 69,
- 65, 82, 84, 128, 72, 69, 65, 82, 212, 72, 69, 65, 82, 45, 78, 79, 45, 69,
- 86, 73, 204, 72, 69, 65, 68, 83, 84, 82, 79, 75, 69, 128, 72, 69, 65, 68,
- 83, 84, 79, 78, 197, 72, 69, 65, 68, 80, 72, 79, 78, 69, 128, 72, 69, 65,
- 68, 73, 78, 71, 128, 72, 66, 65, 83, 65, 45, 69, 83, 65, 83, 193, 72, 66,
- 65, 83, 193, 72, 65, 89, 65, 78, 78, 65, 128, 72, 65, 86, 69, 128, 72,
- 65, 85, 80, 84, 83, 84, 73, 77, 77, 69, 128, 72, 65, 84, 72, 73, 128, 72,
- 65, 84, 69, 128, 72, 65, 84, 67, 72, 73, 78, 199, 72, 65, 84, 65, 198,
- 72, 65, 83, 69, 210, 72, 65, 83, 65, 78, 84, 65, 128, 72, 65, 82, 80, 79,
- 79, 78, 128, 72, 65, 82, 80, 79, 79, 206, 72, 65, 82, 77, 79, 78, 73, 67,
- 128, 72, 65, 82, 75, 76, 69, 65, 206, 72, 65, 82, 68, 78, 69, 83, 83,
- 128, 72, 65, 82, 196, 72, 65, 80, 80, 217, 72, 65, 78, 85, 78, 79, 207,
- 72, 65, 78, 71, 90, 72, 79, 213, 72, 65, 78, 68, 83, 128, 72, 65, 78, 68,
- 211, 72, 65, 78, 68, 76, 69, 83, 128, 72, 65, 78, 68, 76, 69, 128, 72,
- 65, 78, 68, 66, 65, 71, 128, 72, 65, 78, 68, 128, 72, 65, 78, 45, 65, 75,
- 65, 84, 128, 72, 65, 77, 90, 65, 128, 72, 65, 77, 83, 84, 69, 210, 72,
- 65, 77, 77, 69, 82, 128, 72, 65, 77, 77, 69, 210, 72, 65, 77, 66, 85, 82,
- 71, 69, 82, 128, 72, 65, 76, 81, 65, 128, 72, 65, 76, 79, 128, 72, 65,
- 76, 70, 45, 67, 73, 82, 67, 76, 197, 72, 65, 76, 70, 128, 72, 65, 76, 66,
- 69, 82, 68, 128, 72, 65, 76, 65, 78, 84, 65, 128, 72, 65, 73, 84, 85,
- 128, 72, 65, 73, 82, 67, 85, 84, 128, 72, 65, 73, 82, 128, 72, 65, 71,
- 76, 65, 218, 72, 65, 71, 76, 128, 72, 65, 70, 85, 75, 72, 65, 128, 72,
- 65, 70, 85, 75, 72, 128, 72, 65, 69, 71, 204, 72, 65, 65, 82, 85, 128,
- 72, 65, 65, 77, 128, 72, 65, 193, 72, 65, 45, 72, 65, 128, 72, 48, 48,
- 56, 128, 72, 48, 48, 55, 128, 72, 48, 48, 54, 65, 128, 72, 48, 48, 54,
- 128, 72, 48, 48, 53, 128, 72, 48, 48, 52, 128, 72, 48, 48, 51, 128, 72,
- 48, 48, 50, 128, 72, 48, 48, 49, 128, 72, 45, 84, 89, 80, 197, 71, 89,
- 85, 128, 71, 89, 79, 78, 128, 71, 89, 79, 128, 71, 89, 73, 128, 71, 89,
- 70, 213, 71, 89, 69, 69, 128, 71, 89, 65, 83, 128, 71, 89, 65, 65, 128,
- 71, 89, 65, 128, 71, 89, 128, 71, 87, 85, 128, 71, 87, 73, 128, 71, 87,
- 69, 69, 128, 71, 87, 69, 128, 71, 87, 65, 65, 128, 71, 87, 65, 128, 71,
- 86, 128, 71, 85, 82, 85, 83, 72, 128, 71, 85, 82, 85, 78, 128, 71, 85,
- 82, 65, 77, 85, 84, 79, 78, 128, 71, 85, 82, 55, 128, 71, 85, 78, 85,
- 128, 71, 85, 78, 213, 71, 85, 205, 71, 85, 76, 128, 71, 85, 73, 84, 65,
- 82, 128, 71, 85, 199, 71, 85, 69, 72, 128, 71, 85, 69, 200, 71, 85, 68,
- 128, 71, 85, 196, 71, 85, 65, 82, 68, 83, 77, 65, 78, 128, 71, 85, 65,
- 82, 68, 69, 68, 78, 69, 83, 83, 128, 71, 85, 65, 82, 68, 69, 196, 71, 85,
- 65, 82, 68, 128, 71, 85, 65, 82, 65, 78, 201, 71, 85, 193, 71, 85, 178,
- 71, 84, 69, 210, 71, 83, 85, 77, 128, 71, 83, 85, 205, 71, 82, 213, 71,
- 82, 79, 87, 73, 78, 199, 71, 82, 79, 85, 78, 68, 128, 71, 82, 79, 78, 84,
- 72, 73, 83, 77, 65, 84, 65, 128, 71, 82, 73, 78, 78, 73, 78, 199, 71, 82,
- 73, 77, 65, 67, 73, 78, 199, 71, 82, 69, 71, 79, 82, 73, 65, 206, 71, 82,
- 69, 69, 206, 71, 82, 69, 65, 84, 78, 69, 83, 83, 128, 71, 82, 69, 65, 84,
- 69, 82, 45, 84, 72, 65, 78, 128, 71, 82, 69, 65, 84, 69, 82, 45, 84, 72,
- 65, 206, 71, 82, 69, 65, 84, 69, 210, 71, 82, 69, 65, 212, 71, 82, 65,
- 86, 69, 89, 65, 82, 196, 71, 82, 65, 86, 69, 45, 77, 65, 67, 82, 79, 78,
- 128, 71, 82, 65, 86, 69, 45, 65, 67, 85, 84, 69, 45, 71, 82, 65, 86, 69,
- 128, 71, 82, 65, 86, 197, 71, 82, 65, 84, 69, 82, 128, 71, 82, 65, 83,
- 83, 128, 71, 82, 65, 83, 211, 71, 82, 65, 80, 72, 69, 77, 197, 71, 82,
- 65, 80, 69, 83, 128, 71, 82, 65, 77, 77, 193, 71, 82, 65, 73, 78, 128,
- 71, 82, 65, 68, 85, 65, 84, 73, 79, 206, 71, 82, 65, 67, 69, 128, 71, 82,
- 65, 67, 197, 71, 80, 65, 128, 71, 79, 82, 84, 72, 77, 73, 75, 79, 206,
- 71, 79, 82, 84, 128, 71, 79, 82, 71, 79, 84, 69, 82, 73, 128, 71, 79, 82,
- 71, 79, 83, 89, 78, 84, 72, 69, 84, 79, 78, 128, 71, 79, 82, 71, 79, 206,
- 71, 79, 82, 71, 73, 128, 71, 79, 82, 65, 128, 71, 79, 79, 196, 71, 79,
- 78, 71, 128, 71, 79, 76, 68, 128, 71, 79, 75, 128, 71, 79, 73, 78, 199,
- 71, 79, 66, 76, 73, 78, 128, 71, 79, 65, 76, 128, 71, 79, 65, 204, 71,
- 79, 65, 128, 71, 78, 89, 73, 83, 128, 71, 78, 65, 86, 73, 89, 65, 78, 73,
- 128, 71, 76, 79, 87, 73, 78, 199, 71, 76, 79, 84, 84, 65, 204, 71, 76,
- 79, 66, 197, 71, 76, 73, 83, 83, 65, 78, 68, 207, 71, 76, 69, 73, 67,
- 200, 71, 76, 65, 71, 79, 76, 73, 128, 71, 76, 65, 128, 71, 74, 69, 128,
- 71, 73, 88, 128, 71, 73, 84, 128, 71, 73, 83, 72, 128, 71, 73, 83, 200,
- 71, 73, 83, 65, 76, 128, 71, 73, 82, 85, 68, 65, 65, 128, 71, 73, 82, 76,
- 128, 71, 73, 82, 51, 128, 71, 73, 82, 179, 71, 73, 82, 50, 128, 71, 73,
- 82, 178, 71, 73, 80, 128, 71, 73, 78, 73, 73, 128, 71, 73, 77, 69, 76,
- 128, 71, 73, 77, 69, 204, 71, 73, 77, 128, 71, 73, 71, 65, 128, 71, 73,
- 69, 84, 128, 71, 73, 68, 73, 77, 128, 71, 73, 66, 66, 79, 85, 211, 71,
- 73, 66, 65, 128, 71, 73, 52, 128, 71, 73, 180, 71, 72, 90, 128, 71, 72,
- 87, 65, 128, 71, 72, 85, 78, 78, 65, 128, 71, 72, 85, 78, 78, 193, 71,
- 72, 85, 128, 71, 72, 79, 85, 128, 71, 72, 79, 83, 84, 128, 71, 72, 79,
- 128, 71, 72, 73, 128, 71, 72, 72, 65, 128, 71, 72, 69, 85, 88, 128, 71,
- 72, 69, 85, 78, 128, 71, 72, 69, 85, 71, 72, 69, 85, 65, 69, 77, 128, 71,
- 72, 69, 85, 71, 72, 69, 78, 128, 71, 72, 69, 85, 65, 69, 82, 65, 69, 128,
- 71, 72, 69, 85, 65, 69, 71, 72, 69, 85, 65, 69, 128, 71, 72, 69, 84, 128,
- 71, 72, 69, 69, 128, 71, 72, 69, 128, 71, 72, 197, 71, 72, 65, 89, 78,
- 128, 71, 72, 65, 82, 65, 69, 128, 71, 72, 65, 80, 128, 71, 72, 65, 78,
- 128, 71, 72, 65, 77, 65, 76, 128, 71, 72, 65, 73, 78, 85, 128, 71, 72,
- 65, 73, 78, 128, 71, 72, 65, 73, 206, 71, 72, 65, 68, 128, 71, 72, 65,
- 65, 77, 65, 69, 128, 71, 72, 65, 65, 128, 71, 71, 87, 73, 128, 71, 71,
- 87, 69, 69, 128, 71, 71, 87, 69, 128, 71, 71, 87, 65, 65, 128, 71, 71,
- 87, 65, 128, 71, 71, 85, 88, 128, 71, 71, 85, 84, 128, 71, 71, 85, 82,
- 88, 128, 71, 71, 85, 82, 128, 71, 71, 85, 79, 88, 128, 71, 71, 85, 79,
- 84, 128, 71, 71, 85, 79, 80, 128, 71, 71, 85, 79, 128, 71, 71, 79, 88,
- 128, 71, 71, 79, 84, 128, 71, 71, 79, 80, 128, 71, 71, 73, 88, 128, 71,
- 71, 73, 84, 128, 71, 71, 73, 69, 88, 128, 71, 71, 73, 69, 80, 128, 71,
- 71, 73, 69, 128, 71, 71, 69, 88, 128, 71, 71, 69, 84, 128, 71, 71, 69,
- 80, 128, 71, 71, 65, 88, 128, 71, 71, 65, 84, 128, 71, 71, 65, 65, 128,
- 71, 69, 84, 193, 71, 69, 83, 84, 85, 82, 69, 128, 71, 69, 83, 72, 85,
- 128, 71, 69, 83, 72, 84, 73, 78, 128, 71, 69, 83, 72, 84, 73, 206, 71,
- 69, 83, 72, 50, 128, 71, 69, 82, 83, 72, 65, 89, 73, 77, 128, 71, 69, 82,
- 77, 65, 206, 71, 69, 82, 69, 83, 72, 128, 71, 69, 82, 69, 83, 200, 71,
- 69, 79, 77, 69, 84, 82, 73, 67, 65, 76, 76, 217, 71, 69, 79, 77, 69, 84,
- 82, 73, 195, 71, 69, 78, 84, 76, 197, 71, 69, 78, 73, 84, 73, 86, 69,
- 128, 71, 69, 78, 73, 75, 201, 71, 69, 78, 69, 82, 73, 195, 71, 69, 77,
- 73, 78, 73, 128, 71, 69, 77, 73, 78, 65, 84, 73, 79, 206, 71, 69, 205,
+ 65, 65, 128, 72, 71, 128, 72, 69, 89, 84, 128, 72, 69, 88, 73, 70, 79,
+ 82, 205, 72, 69, 88, 65, 71, 82, 65, 205, 72, 69, 88, 65, 71, 79, 78,
+ 128, 72, 69, 82, 85, 84, 85, 128, 72, 69, 82, 85, 128, 72, 69, 82, 77,
+ 73, 84, 73, 65, 206, 72, 69, 82, 77, 73, 79, 78, 73, 65, 206, 72, 69, 82,
+ 77, 69, 83, 128, 72, 69, 82, 69, 128, 72, 69, 82, 66, 128, 72, 69, 82,
+ 65, 69, 85, 205, 72, 69, 78, 71, 128, 72, 69, 78, 199, 72, 69, 77, 80,
+ 128, 72, 69, 76, 77, 69, 84, 128, 72, 69, 76, 77, 69, 212, 72, 69, 76,
+ 205, 72, 69, 76, 73, 67, 79, 80, 84, 69, 82, 128, 72, 69, 75, 85, 84, 65,
+ 65, 82, 85, 128, 72, 69, 73, 83, 69, 73, 128, 72, 69, 73, 71, 72, 84,
+ 128, 72, 69, 69, 73, 128, 72, 69, 65, 86, 89, 128, 72, 69, 65, 86, 69,
+ 78, 76, 217, 72, 69, 65, 86, 69, 78, 128, 72, 69, 65, 86, 69, 206, 72,
+ 69, 65, 82, 84, 83, 128, 72, 69, 65, 82, 84, 45, 83, 72, 65, 80, 69, 196,
+ 72, 69, 65, 82, 84, 128, 72, 69, 65, 82, 212, 72, 69, 65, 82, 45, 78, 79,
+ 45, 69, 86, 73, 204, 72, 69, 65, 68, 83, 84, 82, 79, 75, 69, 128, 72, 69,
+ 65, 68, 83, 84, 79, 78, 197, 72, 69, 65, 68, 80, 72, 79, 78, 69, 128, 72,
+ 69, 65, 68, 73, 78, 71, 128, 72, 69, 65, 68, 45, 66, 65, 78, 68, 65, 71,
+ 69, 128, 72, 66, 65, 83, 65, 45, 69, 83, 65, 83, 193, 72, 66, 65, 83,
+ 193, 72, 65, 89, 65, 78, 78, 65, 128, 72, 65, 87, 74, 128, 72, 65, 86,
+ 69, 128, 72, 65, 85, 80, 84, 83, 84, 73, 77, 77, 69, 128, 72, 65, 213,
+ 72, 65, 84, 82, 65, 206, 72, 65, 84, 72, 73, 128, 72, 65, 84, 69, 128,
+ 72, 65, 84, 67, 72, 73, 78, 199, 72, 65, 84, 65, 198, 72, 65, 83, 69,
+ 210, 72, 65, 83, 65, 78, 84, 65, 128, 72, 65, 82, 80, 79, 79, 78, 128,
+ 72, 65, 82, 80, 79, 79, 206, 72, 65, 82, 77, 79, 78, 73, 67, 128, 72, 65,
+ 82, 75, 76, 69, 65, 206, 72, 65, 82, 68, 78, 69, 83, 83, 128, 72, 65, 82,
+ 196, 72, 65, 80, 80, 217, 72, 65, 78, 85, 78, 79, 207, 72, 65, 78, 71,
+ 90, 72, 79, 213, 72, 65, 78, 68, 83, 128, 72, 65, 78, 68, 211, 72, 65,
+ 78, 68, 76, 69, 83, 128, 72, 65, 78, 68, 76, 69, 128, 72, 65, 78, 68, 66,
+ 65, 71, 128, 72, 65, 78, 68, 45, 79, 86, 65, 76, 128, 72, 65, 78, 68, 45,
+ 79, 86, 65, 204, 72, 65, 78, 68, 45, 72, 79, 79, 75, 128, 72, 65, 78, 68,
+ 45, 72, 79, 79, 203, 72, 65, 78, 68, 45, 72, 73, 78, 71, 69, 128, 72, 65,
+ 78, 68, 45, 72, 73, 78, 71, 197, 72, 65, 78, 68, 45, 70, 76, 65, 84, 128,
+ 72, 65, 78, 68, 45, 70, 76, 65, 212, 72, 65, 78, 68, 45, 70, 73, 83, 84,
+ 128, 72, 65, 78, 68, 45, 67, 85, 82, 76, 73, 67, 85, 69, 128, 72, 65, 78,
+ 68, 45, 67, 85, 82, 76, 73, 67, 85, 197, 72, 65, 78, 68, 45, 67, 85, 80,
+ 128, 72, 65, 78, 68, 45, 67, 85, 208, 72, 65, 78, 68, 45, 67, 76, 65, 87,
+ 128, 72, 65, 78, 68, 45, 67, 76, 65, 215, 72, 65, 78, 68, 45, 67, 73, 82,
+ 67, 76, 69, 128, 72, 65, 78, 68, 45, 67, 73, 82, 67, 76, 197, 72, 65, 78,
+ 68, 45, 65, 78, 71, 76, 69, 128, 72, 65, 78, 68, 45, 65, 78, 71, 76, 197,
+ 72, 65, 78, 68, 128, 72, 65, 78, 45, 65, 75, 65, 84, 128, 72, 65, 77, 90,
+ 65, 128, 72, 65, 77, 90, 193, 72, 65, 77, 83, 84, 69, 210, 72, 65, 77,
+ 77, 69, 82, 128, 72, 65, 77, 77, 69, 210, 72, 65, 77, 66, 85, 82, 71, 69,
+ 82, 128, 72, 65, 76, 81, 65, 128, 72, 65, 76, 79, 128, 72, 65, 76, 70,
+ 45, 67, 73, 82, 67, 76, 197, 72, 65, 76, 70, 128, 72, 65, 76, 66, 69, 82,
+ 68, 128, 72, 65, 76, 65, 78, 84, 65, 128, 72, 65, 73, 84, 85, 128, 72,
+ 65, 73, 211, 72, 65, 73, 82, 67, 85, 84, 128, 72, 65, 73, 82, 128, 72,
+ 65, 71, 76, 65, 218, 72, 65, 71, 76, 128, 72, 65, 70, 85, 75, 72, 65,
+ 128, 72, 65, 70, 85, 75, 72, 128, 72, 65, 69, 71, 204, 72, 65, 65, 82,
+ 85, 128, 72, 65, 65, 77, 128, 72, 65, 193, 72, 65, 45, 72, 65, 128, 72,
+ 48, 48, 56, 128, 72, 48, 48, 55, 128, 72, 48, 48, 54, 65, 128, 72, 48,
+ 48, 54, 128, 72, 48, 48, 53, 128, 72, 48, 48, 52, 128, 72, 48, 48, 51,
+ 128, 72, 48, 48, 50, 128, 72, 48, 48, 49, 128, 72, 45, 84, 89, 80, 197,
+ 71, 89, 85, 128, 71, 89, 79, 78, 128, 71, 89, 79, 128, 71, 89, 73, 128,
+ 71, 89, 70, 213, 71, 89, 69, 69, 128, 71, 89, 65, 83, 128, 71, 89, 65,
+ 65, 128, 71, 89, 65, 128, 71, 89, 128, 71, 87, 85, 128, 71, 87, 73, 128,
+ 71, 87, 69, 69, 128, 71, 87, 69, 128, 71, 87, 65, 65, 128, 71, 87, 65,
+ 128, 71, 86, 65, 78, 71, 128, 71, 86, 128, 71, 85, 82, 85, 83, 72, 128,
+ 71, 85, 82, 85, 78, 128, 71, 85, 82, 77, 85, 75, 72, 201, 71, 85, 82, 65,
+ 77, 85, 84, 79, 78, 128, 71, 85, 82, 55, 128, 71, 85, 78, 85, 128, 71,
+ 85, 78, 213, 71, 85, 205, 71, 85, 76, 128, 71, 85, 74, 65, 82, 65, 84,
+ 201, 71, 85, 73, 84, 65, 82, 128, 71, 85, 199, 71, 85, 69, 73, 128, 71,
+ 85, 69, 72, 128, 71, 85, 69, 200, 71, 85, 68, 128, 71, 85, 196, 71, 85,
+ 65, 82, 68, 83, 77, 65, 78, 128, 71, 85, 65, 82, 68, 69, 68, 78, 69, 83,
+ 83, 128, 71, 85, 65, 82, 68, 69, 196, 71, 85, 65, 82, 68, 128, 71, 85,
+ 65, 82, 65, 78, 201, 71, 85, 193, 71, 85, 178, 71, 84, 69, 210, 71, 83,
+ 85, 77, 128, 71, 83, 85, 205, 71, 82, 213, 71, 82, 79, 87, 73, 78, 199,
+ 71, 82, 79, 85, 78, 68, 128, 71, 82, 79, 78, 84, 72, 73, 83, 77, 65, 84,
+ 65, 128, 71, 82, 73, 78, 78, 73, 78, 199, 71, 82, 73, 77, 65, 67, 73, 78,
+ 199, 71, 82, 69, 71, 79, 82, 73, 65, 206, 71, 82, 69, 69, 206, 71, 82,
+ 69, 65, 84, 78, 69, 83, 83, 128, 71, 82, 69, 65, 84, 69, 82, 45, 84, 72,
+ 65, 78, 128, 71, 82, 69, 65, 84, 69, 82, 45, 84, 72, 65, 206, 71, 82, 69,
+ 65, 84, 69, 210, 71, 82, 69, 65, 212, 71, 82, 65, 86, 69, 89, 65, 82,
+ 196, 71, 82, 65, 86, 69, 45, 77, 65, 67, 82, 79, 78, 128, 71, 82, 65, 86,
+ 69, 45, 65, 67, 85, 84, 69, 45, 71, 82, 65, 86, 69, 128, 71, 82, 65, 86,
+ 197, 71, 82, 65, 84, 69, 82, 128, 71, 82, 65, 83, 83, 128, 71, 82, 65,
+ 83, 211, 71, 82, 65, 83, 208, 71, 82, 65, 80, 72, 69, 77, 197, 71, 82,
+ 65, 80, 69, 83, 128, 71, 82, 65, 78, 84, 72, 193, 71, 82, 65, 77, 77,
+ 193, 71, 82, 65, 73, 78, 128, 71, 82, 65, 68, 85, 65, 84, 73, 79, 206,
+ 71, 82, 65, 68, 85, 65, 76, 128, 71, 82, 65, 67, 69, 128, 71, 82, 65, 67,
+ 197, 71, 80, 65, 128, 71, 79, 82, 84, 72, 77, 73, 75, 79, 206, 71, 79,
+ 82, 84, 128, 71, 79, 82, 71, 79, 84, 69, 82, 73, 128, 71, 79, 82, 71, 79,
+ 83, 89, 78, 84, 72, 69, 84, 79, 78, 128, 71, 79, 82, 71, 79, 206, 71, 79,
+ 82, 71, 73, 128, 71, 79, 82, 65, 128, 71, 79, 79, 196, 71, 79, 78, 71,
+ 128, 71, 79, 76, 70, 69, 82, 128, 71, 79, 76, 68, 128, 71, 79, 75, 128,
+ 71, 79, 73, 78, 199, 71, 79, 66, 76, 73, 78, 128, 71, 79, 65, 76, 128,
+ 71, 79, 65, 204, 71, 79, 65, 128, 71, 78, 89, 73, 83, 128, 71, 78, 65,
+ 86, 73, 89, 65, 78, 73, 128, 71, 76, 79, 87, 73, 78, 199, 71, 76, 79, 84,
+ 84, 65, 204, 71, 76, 79, 66, 197, 71, 76, 73, 83, 83, 65, 78, 68, 207,
+ 71, 76, 69, 73, 67, 200, 71, 76, 65, 71, 79, 76, 73, 128, 71, 76, 65,
+ 128, 71, 74, 69, 128, 71, 73, 88, 128, 71, 73, 84, 128, 71, 73, 83, 72,
+ 128, 71, 73, 83, 200, 71, 73, 83, 65, 76, 128, 71, 73, 82, 85, 68, 65,
+ 65, 128, 71, 73, 82, 76, 211, 71, 73, 82, 76, 128, 71, 73, 82, 51, 128,
+ 71, 73, 82, 179, 71, 73, 82, 50, 128, 71, 73, 82, 178, 71, 73, 80, 128,
+ 71, 73, 78, 73, 73, 128, 71, 73, 77, 69, 76, 128, 71, 73, 77, 69, 204,
+ 71, 73, 77, 128, 71, 73, 71, 65, 128, 71, 73, 71, 128, 71, 73, 69, 84,
+ 128, 71, 73, 68, 73, 77, 128, 71, 73, 66, 66, 79, 85, 211, 71, 73, 66,
+ 65, 128, 71, 73, 52, 128, 71, 73, 180, 71, 72, 90, 128, 71, 72, 87, 65,
+ 128, 71, 72, 85, 78, 78, 65, 128, 71, 72, 85, 78, 78, 193, 71, 72, 85,
+ 128, 71, 72, 79, 85, 128, 71, 72, 79, 83, 84, 128, 71, 72, 79, 128, 71,
+ 72, 73, 77, 69, 76, 128, 71, 72, 73, 128, 71, 72, 72, 65, 128, 71, 72,
+ 69, 89, 83, 128, 71, 72, 69, 85, 88, 128, 71, 72, 69, 85, 78, 128, 71,
+ 72, 69, 85, 71, 72, 69, 85, 65, 69, 77, 128, 71, 72, 69, 85, 71, 72, 69,
+ 78, 128, 71, 72, 69, 85, 65, 69, 82, 65, 69, 128, 71, 72, 69, 85, 65, 69,
+ 71, 72, 69, 85, 65, 69, 128, 71, 72, 69, 84, 128, 71, 72, 69, 69, 128,
+ 71, 72, 69, 128, 71, 72, 197, 71, 72, 65, 89, 78, 128, 71, 72, 65, 82,
+ 65, 69, 128, 71, 72, 65, 80, 128, 71, 72, 65, 78, 128, 71, 72, 65, 77,
+ 77, 65, 128, 71, 72, 65, 77, 65, 76, 128, 71, 72, 65, 73, 78, 85, 128,
+ 71, 72, 65, 73, 78, 128, 71, 72, 65, 73, 206, 71, 72, 65, 68, 128, 71,
+ 72, 65, 65, 77, 65, 69, 128, 71, 72, 65, 65, 128, 71, 71, 87, 73, 128,
+ 71, 71, 87, 69, 69, 128, 71, 71, 87, 69, 128, 71, 71, 87, 65, 65, 128,
+ 71, 71, 87, 65, 128, 71, 71, 85, 88, 128, 71, 71, 85, 84, 128, 71, 71,
+ 85, 82, 88, 128, 71, 71, 85, 82, 128, 71, 71, 85, 79, 88, 128, 71, 71,
+ 85, 79, 84, 128, 71, 71, 85, 79, 80, 128, 71, 71, 85, 79, 128, 71, 71,
+ 79, 88, 128, 71, 71, 79, 84, 128, 71, 71, 79, 80, 128, 71, 71, 73, 88,
+ 128, 71, 71, 73, 84, 128, 71, 71, 73, 69, 88, 128, 71, 71, 73, 69, 80,
+ 128, 71, 71, 73, 69, 128, 71, 71, 69, 88, 128, 71, 71, 69, 84, 128, 71,
+ 71, 69, 80, 128, 71, 71, 65, 88, 128, 71, 71, 65, 84, 128, 71, 69, 84,
+ 193, 71, 69, 83, 84, 85, 82, 69, 128, 71, 69, 83, 72, 85, 128, 71, 69,
+ 83, 72, 84, 73, 78, 128, 71, 69, 83, 72, 84, 73, 206, 71, 69, 83, 72, 50,
+ 128, 71, 69, 82, 83, 72, 65, 89, 73, 77, 128, 71, 69, 82, 77, 65, 206,
+ 71, 69, 82, 69, 83, 72, 128, 71, 69, 82, 69, 83, 200, 71, 69, 79, 77, 69,
+ 84, 82, 73, 67, 65, 76, 76, 217, 71, 69, 79, 77, 69, 84, 82, 73, 195, 71,
+ 69, 78, 84, 76, 197, 71, 69, 78, 73, 84, 73, 86, 69, 128, 71, 69, 78, 73,
+ 75, 201, 71, 69, 78, 69, 82, 73, 195, 71, 69, 77, 73, 78, 73, 128, 71,
+ 69, 77, 73, 78, 65, 84, 73, 79, 206, 71, 69, 205, 71, 69, 69, 77, 128,
71, 69, 68, 79, 76, 65, 128, 71, 69, 68, 69, 128, 71, 69, 66, 207, 71,
- 69, 66, 193, 71, 69, 65, 82, 128, 71, 69, 65, 210, 71, 68, 65, 78, 128,
- 71, 67, 73, 71, 128, 71, 67, 65, 206, 71, 66, 79, 78, 128, 71, 66, 73,
- 69, 197, 71, 66, 69, 85, 88, 128, 71, 66, 69, 84, 128, 71, 66, 65, 89,
- 73, 128, 71, 66, 65, 75, 85, 82, 85, 78, 69, 78, 128, 71, 66, 128, 71,
- 65, 89, 65, 78, 85, 75, 73, 84, 84, 65, 128, 71, 65, 89, 65, 78, 78, 65,
- 128, 71, 65, 89, 128, 71, 65, 85, 78, 84, 76, 69, 84, 128, 71, 65, 84,
- 72, 69, 82, 73, 78, 71, 128, 71, 65, 84, 72, 69, 82, 73, 78, 199, 71, 65,
- 84, 69, 128, 71, 65, 83, 72, 65, 78, 128, 71, 65, 82, 83, 72, 85, 78, 73,
- 128, 71, 65, 82, 79, 78, 128, 71, 65, 82, 77, 69, 78, 84, 128, 71, 65,
- 82, 68, 69, 78, 128, 71, 65, 82, 51, 128, 71, 65, 80, 80, 69, 196, 71,
- 65, 208, 71, 65, 78, 77, 65, 128, 71, 65, 78, 71, 73, 65, 128, 71, 65,
- 78, 68, 193, 71, 65, 78, 50, 128, 71, 65, 78, 178, 71, 65, 77, 77, 65,
- 128, 71, 65, 77, 76, 65, 128, 71, 65, 77, 76, 128, 71, 65, 77, 69, 128,
- 71, 65, 77, 197, 71, 65, 77, 65, 78, 128, 71, 65, 77, 65, 76, 128, 71,
- 65, 77, 65, 204, 71, 65, 71, 128, 71, 65, 70, 128, 71, 65, 198, 71, 65,
- 69, 84, 84, 65, 45, 80, 73, 76, 76, 65, 128, 71, 65, 68, 79, 76, 128, 71,
- 65, 68, 128, 71, 65, 196, 71, 65, 66, 65, 128, 71, 65, 66, 193, 71, 65,
- 65, 70, 85, 128, 71, 65, 178, 71, 48, 53, 52, 128, 71, 48, 53, 51, 128,
- 71, 48, 53, 50, 128, 71, 48, 53, 49, 128, 71, 48, 53, 48, 128, 71, 48,
- 52, 57, 128, 71, 48, 52, 56, 128, 71, 48, 52, 55, 128, 71, 48, 52, 54,
- 128, 71, 48, 52, 53, 65, 128, 71, 48, 52, 53, 128, 71, 48, 52, 52, 128,
- 71, 48, 52, 51, 65, 128, 71, 48, 52, 51, 128, 71, 48, 52, 50, 128, 71,
- 48, 52, 49, 128, 71, 48, 52, 48, 128, 71, 48, 51, 57, 128, 71, 48, 51,
- 56, 128, 71, 48, 51, 55, 65, 128, 71, 48, 51, 55, 128, 71, 48, 51, 54,
- 65, 128, 71, 48, 51, 54, 128, 71, 48, 51, 53, 128, 71, 48, 51, 52, 128,
- 71, 48, 51, 51, 128, 71, 48, 51, 50, 128, 71, 48, 51, 49, 128, 71, 48,
- 51, 48, 128, 71, 48, 50, 57, 128, 71, 48, 50, 56, 128, 71, 48, 50, 55,
- 128, 71, 48, 50, 54, 65, 128, 71, 48, 50, 54, 128, 71, 48, 50, 53, 128,
- 71, 48, 50, 52, 128, 71, 48, 50, 51, 128, 71, 48, 50, 50, 128, 71, 48,
- 50, 49, 128, 71, 48, 50, 48, 65, 128, 71, 48, 50, 48, 128, 71, 48, 49,
- 57, 128, 71, 48, 49, 56, 128, 71, 48, 49, 55, 128, 71, 48, 49, 54, 128,
- 71, 48, 49, 53, 128, 71, 48, 49, 52, 128, 71, 48, 49, 51, 128, 71, 48,
- 49, 50, 128, 71, 48, 49, 49, 65, 128, 71, 48, 49, 49, 128, 71, 48, 49,
- 48, 128, 71, 48, 48, 57, 128, 71, 48, 48, 56, 128, 71, 48, 48, 55, 66,
- 128, 71, 48, 48, 55, 65, 128, 71, 48, 48, 55, 128, 71, 48, 48, 54, 65,
- 128, 71, 48, 48, 54, 128, 71, 48, 48, 53, 128, 71, 48, 48, 52, 128, 71,
- 48, 48, 51, 128, 71, 48, 48, 50, 128, 71, 48, 48, 49, 128, 70, 89, 88,
- 128, 70, 89, 84, 128, 70, 89, 80, 128, 70, 89, 65, 128, 70, 87, 73, 128,
- 70, 87, 69, 69, 128, 70, 87, 69, 128, 70, 87, 65, 65, 128, 70, 87, 65,
- 128, 70, 86, 83, 51, 128, 70, 86, 83, 50, 128, 70, 86, 83, 49, 128, 70,
- 85, 88, 128, 70, 85, 84, 128, 70, 85, 83, 69, 128, 70, 85, 83, 193, 70,
- 85, 82, 88, 128, 70, 85, 80, 128, 70, 85, 78, 69, 82, 65, 204, 70, 85,
- 78, 67, 84, 73, 79, 78, 65, 204, 70, 85, 78, 67, 84, 73, 79, 78, 128, 70,
- 85, 76, 76, 78, 69, 83, 83, 128, 70, 85, 76, 204, 70, 85, 74, 73, 128,
- 70, 85, 69, 84, 128, 70, 85, 69, 204, 70, 85, 69, 128, 70, 84, 72, 79,
- 82, 193, 70, 83, 73, 128, 70, 82, 79, 87, 78, 73, 78, 71, 128, 70, 82,
- 79, 87, 78, 73, 78, 199, 70, 82, 79, 87, 78, 128, 70, 82, 79, 78, 84, 45,
- 84, 73, 76, 84, 69, 196, 70, 82, 79, 78, 84, 45, 70, 65, 67, 73, 78, 199,
- 70, 82, 79, 205, 70, 82, 79, 71, 128, 70, 82, 79, 199, 70, 82, 73, 84,
- 85, 128, 70, 82, 73, 69, 83, 128, 70, 82, 73, 69, 196, 70, 82, 73, 67,
- 65, 84, 73, 86, 69, 128, 70, 82, 69, 84, 66, 79, 65, 82, 68, 128, 70, 82,
- 69, 78, 67, 200, 70, 82, 69, 69, 128, 70, 82, 69, 197, 70, 82, 65, 78,
- 195, 70, 82, 65, 77, 69, 128, 70, 82, 65, 71, 82, 65, 78, 84, 128, 70,
- 82, 65, 71, 77, 69, 78, 84, 128, 70, 82, 65, 67, 84, 73, 79, 206, 70, 79,
- 88, 128, 70, 79, 85, 82, 84, 69, 69, 78, 128, 70, 79, 85, 82, 84, 69, 69,
- 206, 70, 79, 85, 82, 45, 84, 72, 73, 82, 84, 89, 128, 70, 79, 85, 82, 45,
- 83, 84, 82, 73, 78, 199, 70, 79, 85, 82, 45, 80, 69, 82, 45, 69, 205, 70,
- 79, 85, 82, 45, 76, 73, 78, 197, 70, 79, 85, 210, 70, 79, 85, 78, 84, 65,
- 73, 78, 128, 70, 79, 83, 84, 69, 82, 73, 78, 71, 128, 70, 79, 82, 87, 65,
- 82, 68, 128, 70, 79, 82, 84, 89, 128, 70, 79, 82, 84, 217, 70, 79, 82,
- 84, 69, 128, 70, 79, 82, 77, 211, 70, 79, 82, 77, 65, 84, 84, 73, 78, 71,
- 128, 70, 79, 82, 75, 69, 196, 70, 79, 82, 67, 69, 83, 128, 70, 79, 82,
- 67, 69, 128, 70, 79, 80, 128, 70, 79, 79, 84, 83, 84, 79, 79, 76, 128,
- 70, 79, 79, 84, 80, 82, 73, 78, 84, 83, 128, 70, 79, 79, 84, 78, 79, 84,
- 197, 70, 79, 79, 84, 66, 65, 76, 76, 128, 70, 79, 79, 84, 128, 70, 79,
- 79, 68, 128, 70, 79, 79, 128, 70, 79, 78, 71, 77, 65, 78, 128, 70, 79,
- 77, 128, 70, 79, 76, 76, 89, 128, 70, 79, 76, 76, 79, 87, 73, 78, 71,
- 128, 70, 79, 76, 68, 69, 82, 128, 70, 79, 76, 68, 69, 196, 70, 79, 71,
- 71, 89, 128, 70, 207, 70, 77, 128, 70, 76, 89, 128, 70, 76, 85, 84, 84,
- 69, 82, 73, 78, 199, 70, 76, 85, 84, 69, 128, 70, 76, 85, 83, 72, 69,
- 196, 70, 76, 79, 87, 73, 78, 199, 70, 76, 79, 87, 69, 210, 70, 76, 79,
- 85, 82, 73, 83, 72, 128, 70, 76, 79, 82, 69, 84, 84, 69, 128, 70, 76, 79,
- 82, 65, 204, 70, 76, 79, 80, 80, 217, 70, 76, 79, 79, 82, 128, 70, 76,
- 73, 80, 128, 70, 76, 73, 71, 72, 84, 128, 70, 76, 69, 88, 85, 83, 128,
- 70, 76, 69, 88, 69, 196, 70, 76, 69, 85, 82, 45, 68, 69, 45, 76, 73, 83,
- 128, 70, 76, 65, 84, 84, 69, 78, 69, 196, 70, 76, 65, 84, 78, 69, 83, 83,
- 128, 70, 76, 65, 84, 128, 70, 76, 65, 212, 70, 76, 65, 71, 83, 128, 70,
- 76, 65, 71, 45, 53, 128, 70, 76, 65, 71, 45, 52, 128, 70, 76, 65, 71, 45,
- 51, 128, 70, 76, 65, 71, 45, 50, 128, 70, 76, 65, 71, 45, 49, 128, 70,
- 76, 65, 71, 128, 70, 76, 65, 199, 70, 76, 65, 128, 70, 76, 128, 70, 73,
- 88, 69, 68, 45, 70, 79, 82, 205, 70, 73, 88, 128, 70, 73, 86, 69, 45, 84,
- 72, 73, 82, 84, 89, 128, 70, 73, 86, 69, 45, 76, 73, 78, 197, 70, 73, 86,
- 197, 70, 73, 84, 65, 128, 70, 73, 84, 128, 70, 73, 83, 84, 69, 196, 70,
- 73, 83, 84, 128, 70, 73, 83, 72, 73, 78, 199, 70, 73, 83, 72, 72, 79, 79,
- 75, 128, 70, 73, 83, 72, 72, 79, 79, 203, 70, 73, 83, 72, 69, 89, 69,
- 128, 70, 73, 83, 72, 128, 70, 73, 83, 200, 70, 73, 82, 83, 212, 70, 73,
- 82, 73, 128, 70, 73, 82, 69, 87, 79, 82, 75, 83, 128, 70, 73, 82, 69, 87,
- 79, 82, 203, 70, 73, 82, 69, 128, 70, 73, 82, 197, 70, 73, 80, 128, 70,
- 73, 78, 73, 84, 197, 70, 73, 78, 71, 69, 82, 78, 65, 73, 76, 83, 128, 70,
- 73, 78, 71, 69, 82, 69, 196, 70, 73, 78, 65, 78, 67, 73, 65, 76, 128, 70,
- 73, 76, 76, 69, 82, 128, 70, 73, 76, 76, 69, 196, 70, 73, 76, 76, 128,
- 70, 73, 76, 204, 70, 73, 76, 197, 70, 73, 73, 128, 70, 73, 71, 85, 82,
- 69, 45, 51, 128, 70, 73, 71, 85, 82, 69, 45, 50, 128, 70, 73, 71, 85, 82,
- 69, 45, 49, 128, 70, 73, 71, 85, 82, 197, 70, 73, 71, 72, 84, 128, 70,
- 73, 70, 84, 89, 128, 70, 73, 70, 84, 217, 70, 73, 70, 84, 72, 83, 128,
- 70, 73, 70, 84, 72, 128, 70, 73, 70, 84, 69, 69, 78, 128, 70, 73, 70, 84,
- 69, 69, 206, 70, 73, 69, 76, 68, 128, 70, 72, 84, 79, 82, 193, 70, 70,
- 76, 128, 70, 70, 73, 128, 70, 69, 85, 88, 128, 70, 69, 85, 70, 69, 85,
- 65, 69, 84, 128, 70, 69, 83, 84, 73, 86, 65, 76, 128, 70, 69, 82, 82, 89,
- 128, 70, 69, 82, 82, 73, 211, 70, 69, 82, 77, 65, 84, 65, 128, 70, 69,
- 82, 77, 65, 84, 193, 70, 69, 79, 200, 70, 69, 78, 199, 70, 69, 78, 67,
- 69, 128, 70, 69, 77, 73, 78, 73, 78, 197, 70, 69, 77, 65, 76, 69, 128,
- 70, 69, 77, 65, 76, 197, 70, 69, 76, 76, 79, 87, 83, 72, 73, 80, 128, 70,
- 69, 73, 128, 70, 69, 72, 213, 70, 69, 72, 128, 70, 69, 200, 70, 69, 69,
- 78, 71, 128, 70, 69, 69, 68, 128, 70, 69, 69, 196, 70, 69, 69, 128, 70,
- 69, 66, 82, 85, 65, 82, 89, 128, 70, 69, 65, 84, 72, 69, 82, 128, 70, 69,
- 65, 84, 72, 69, 210, 70, 69, 65, 82, 78, 128, 70, 69, 65, 82, 70, 85,
- 204, 70, 69, 65, 82, 128, 70, 65, 89, 65, 78, 78, 65, 128, 70, 65, 89,
- 128, 70, 65, 88, 128, 70, 65, 216, 70, 65, 84, 73, 71, 85, 69, 128, 70,
- 65, 84, 72, 69, 82, 128, 70, 65, 84, 72, 69, 210, 70, 65, 84, 72, 65, 84,
- 65, 78, 128, 70, 65, 84, 72, 65, 84, 65, 206, 70, 65, 84, 72, 65, 128,
- 70, 65, 84, 72, 193, 70, 65, 84, 128, 70, 65, 82, 83, 201, 70, 65, 81,
- 128, 70, 65, 80, 128, 70, 65, 78, 71, 128, 70, 65, 78, 69, 82, 79, 83,
- 73, 211, 70, 65, 78, 128, 70, 65, 77, 73, 76, 89, 128, 70, 65, 76, 76,
- 73, 78, 199, 70, 65, 76, 76, 69, 206, 70, 65, 73, 76, 85, 82, 69, 128,
- 70, 65, 73, 72, 85, 128, 70, 65, 72, 82, 69, 78, 72, 69, 73, 84, 128, 70,
- 65, 67, 84, 79, 82, 89, 128, 70, 65, 67, 84, 79, 210, 70, 65, 67, 83, 73,
- 77, 73, 76, 197, 70, 65, 67, 69, 45, 54, 128, 70, 65, 67, 69, 45, 53,
- 128, 70, 65, 67, 69, 45, 52, 128, 70, 65, 67, 69, 45, 51, 128, 70, 65,
- 67, 69, 45, 50, 128, 70, 65, 67, 69, 45, 49, 128, 70, 65, 65, 77, 65, 69,
- 128, 70, 65, 65, 73, 128, 70, 65, 65, 70, 85, 128, 70, 48, 53, 51, 128,
- 70, 48, 53, 50, 128, 70, 48, 53, 49, 67, 128, 70, 48, 53, 49, 66, 128,
- 70, 48, 53, 49, 65, 128, 70, 48, 53, 49, 128, 70, 48, 53, 48, 128, 70,
- 48, 52, 57, 128, 70, 48, 52, 56, 128, 70, 48, 52, 55, 65, 128, 70, 48,
- 52, 55, 128, 70, 48, 52, 54, 65, 128, 70, 48, 52, 54, 128, 70, 48, 52,
- 53, 65, 128, 70, 48, 52, 53, 128, 70, 48, 52, 52, 128, 70, 48, 52, 51,
- 128, 70, 48, 52, 50, 128, 70, 48, 52, 49, 128, 70, 48, 52, 48, 128, 70,
- 48, 51, 57, 128, 70, 48, 51, 56, 65, 128, 70, 48, 51, 56, 128, 70, 48,
- 51, 55, 65, 128, 70, 48, 51, 55, 128, 70, 48, 51, 54, 128, 70, 48, 51,
- 53, 128, 70, 48, 51, 52, 128, 70, 48, 51, 51, 128, 70, 48, 51, 50, 128,
- 70, 48, 51, 49, 65, 128, 70, 48, 51, 49, 128, 70, 48, 51, 48, 128, 70,
- 48, 50, 57, 128, 70, 48, 50, 56, 128, 70, 48, 50, 55, 128, 70, 48, 50,
- 54, 128, 70, 48, 50, 53, 128, 70, 48, 50, 52, 128, 70, 48, 50, 51, 128,
- 70, 48, 50, 50, 128, 70, 48, 50, 49, 65, 128, 70, 48, 50, 49, 128, 70,
- 48, 50, 48, 128, 70, 48, 49, 57, 128, 70, 48, 49, 56, 128, 70, 48, 49,
- 55, 128, 70, 48, 49, 54, 128, 70, 48, 49, 53, 128, 70, 48, 49, 52, 128,
- 70, 48, 49, 51, 65, 128, 70, 48, 49, 51, 128, 70, 48, 49, 50, 128, 70,
- 48, 49, 49, 128, 70, 48, 49, 48, 128, 70, 48, 48, 57, 128, 70, 48, 48,
- 56, 128, 70, 48, 48, 55, 128, 70, 48, 48, 54, 128, 70, 48, 48, 53, 128,
- 70, 48, 48, 52, 128, 70, 48, 48, 51, 128, 70, 48, 48, 50, 128, 70, 48,
- 48, 49, 65, 128, 70, 48, 48, 49, 128, 69, 90, 200, 69, 90, 69, 78, 128,
- 69, 90, 69, 206, 69, 90, 128, 69, 89, 69, 83, 128, 69, 89, 69, 71, 76,
- 65, 83, 83, 69, 83, 128, 69, 89, 66, 69, 89, 70, 73, 76, 73, 128, 69, 89,
- 65, 78, 78, 65, 128, 69, 88, 84, 82, 65, 84, 69, 82, 82, 69, 83, 84, 82,
- 73, 65, 204, 69, 88, 84, 82, 65, 45, 76, 79, 215, 69, 88, 84, 82, 65, 45,
- 72, 73, 71, 200, 69, 88, 84, 69, 78, 83, 73, 79, 78, 128, 69, 88, 84, 69,
- 78, 68, 69, 196, 69, 88, 80, 82, 69, 83, 83, 73, 79, 78, 76, 69, 83, 211,
- 69, 88, 80, 79, 78, 69, 78, 212, 69, 88, 79, 128, 69, 88, 207, 69, 88,
- 73, 83, 84, 83, 128, 69, 88, 73, 83, 84, 128, 69, 88, 72, 65, 85, 83, 84,
- 73, 79, 78, 128, 69, 88, 67, 76, 65, 77, 65, 84, 73, 79, 78, 128, 69, 88,
- 67, 76, 65, 77, 65, 84, 73, 79, 206, 69, 88, 67, 72, 65, 78, 71, 69, 128,
- 69, 88, 67, 69, 83, 83, 128, 69, 88, 67, 69, 76, 76, 69, 78, 84, 128, 69,
- 87, 69, 128, 69, 86, 69, 82, 71, 82, 69, 69, 206, 69, 86, 69, 78, 73, 78,
- 71, 128, 69, 85, 82, 79, 80, 69, 65, 206, 69, 85, 82, 79, 80, 69, 45, 65,
- 70, 82, 73, 67, 65, 128, 69, 85, 82, 79, 45, 67, 85, 82, 82, 69, 78, 67,
- 217, 69, 85, 82, 207, 69, 85, 76, 69, 210, 69, 85, 45, 85, 128, 69, 85,
- 45, 79, 128, 69, 85, 45, 69, 85, 128, 69, 85, 45, 69, 79, 128, 69, 85,
- 45, 69, 128, 69, 85, 45, 65, 128, 69, 84, 88, 128, 69, 84, 78, 65, 72,
- 84, 65, 128, 69, 84, 72, 69, 204, 69, 84, 69, 82, 79, 206, 69, 84, 69,
- 82, 78, 73, 84, 89, 128, 69, 84, 66, 128, 69, 83, 85, 75, 85, 85, 68, 79,
- 128, 69, 83, 84, 73, 77, 65, 84, 69, 83, 128, 69, 83, 84, 73, 77, 65, 84,
- 69, 196, 69, 83, 72, 69, 51, 128, 69, 83, 72, 50, 49, 128, 69, 83, 72,
- 178, 69, 83, 72, 49, 54, 128, 69, 83, 67, 65, 80, 69, 128, 69, 83, 67,
- 128, 69, 83, 65, 128, 69, 83, 45, 84, 69, 128, 69, 82, 82, 79, 82, 45,
- 66, 65, 82, 82, 69, 196, 69, 82, 82, 128, 69, 82, 73, 78, 50, 128, 69,
- 82, 71, 128, 69, 82, 65, 83, 197, 69, 81, 85, 73, 86, 65, 76, 69, 78,
- 212, 69, 81, 85, 73, 68, 128, 69, 81, 85, 73, 65, 78, 71, 85, 76, 65,
+ 69, 66, 193, 71, 69, 65, 82, 128, 71, 69, 65, 210, 71, 69, 50, 50, 128,
+ 71, 68, 65, 78, 128, 71, 67, 73, 71, 128, 71, 67, 65, 206, 71, 66, 79,
+ 78, 128, 71, 66, 73, 69, 197, 71, 66, 69, 85, 88, 128, 71, 66, 69, 84,
+ 128, 71, 66, 65, 89, 73, 128, 71, 66, 65, 75, 85, 82, 85, 78, 69, 78,
+ 128, 71, 66, 128, 71, 65, 89, 65, 78, 85, 75, 73, 84, 84, 65, 128, 71,
+ 65, 89, 65, 78, 78, 65, 128, 71, 65, 89, 128, 71, 65, 85, 78, 84, 76, 69,
+ 84, 128, 71, 65, 84, 72, 69, 82, 73, 78, 71, 128, 71, 65, 84, 72, 69, 82,
+ 73, 78, 199, 71, 65, 84, 69, 128, 71, 65, 83, 72, 65, 78, 128, 71, 65,
+ 82, 83, 72, 85, 78, 73, 128, 71, 65, 82, 79, 78, 128, 71, 65, 82, 77, 69,
+ 78, 84, 128, 71, 65, 82, 68, 69, 78, 128, 71, 65, 82, 51, 128, 71, 65,
+ 80, 80, 69, 196, 71, 65, 208, 71, 65, 78, 77, 65, 128, 71, 65, 78, 71,
+ 73, 65, 128, 71, 65, 78, 68, 193, 71, 65, 78, 50, 128, 71, 65, 78, 178,
+ 71, 65, 77, 77, 65, 128, 71, 65, 77, 76, 65, 128, 71, 65, 77, 76, 128,
+ 71, 65, 77, 69, 128, 71, 65, 77, 197, 71, 65, 77, 65, 78, 128, 71, 65,
+ 77, 65, 76, 128, 71, 65, 77, 65, 204, 71, 65, 71, 128, 71, 65, 70, 128,
+ 71, 65, 198, 71, 65, 69, 84, 84, 65, 45, 80, 73, 76, 76, 65, 128, 71, 65,
+ 68, 79, 76, 128, 71, 65, 68, 128, 71, 65, 196, 71, 65, 66, 65, 128, 71,
+ 65, 66, 193, 71, 65, 65, 70, 85, 128, 71, 65, 178, 71, 48, 53, 52, 128,
+ 71, 48, 53, 51, 128, 71, 48, 53, 50, 128, 71, 48, 53, 49, 128, 71, 48,
+ 53, 48, 128, 71, 48, 52, 57, 128, 71, 48, 52, 56, 128, 71, 48, 52, 55,
+ 128, 71, 48, 52, 54, 128, 71, 48, 52, 53, 65, 128, 71, 48, 52, 53, 128,
+ 71, 48, 52, 52, 128, 71, 48, 52, 51, 65, 128, 71, 48, 52, 51, 128, 71,
+ 48, 52, 50, 128, 71, 48, 52, 49, 128, 71, 48, 52, 48, 128, 71, 48, 51,
+ 57, 128, 71, 48, 51, 56, 128, 71, 48, 51, 55, 65, 128, 71, 48, 51, 55,
+ 128, 71, 48, 51, 54, 65, 128, 71, 48, 51, 54, 128, 71, 48, 51, 53, 128,
+ 71, 48, 51, 52, 128, 71, 48, 51, 51, 128, 71, 48, 51, 50, 128, 71, 48,
+ 51, 49, 128, 71, 48, 51, 48, 128, 71, 48, 50, 57, 128, 71, 48, 50, 56,
+ 128, 71, 48, 50, 55, 128, 71, 48, 50, 54, 65, 128, 71, 48, 50, 54, 128,
+ 71, 48, 50, 53, 128, 71, 48, 50, 52, 128, 71, 48, 50, 51, 128, 71, 48,
+ 50, 50, 128, 71, 48, 50, 49, 128, 71, 48, 50, 48, 65, 128, 71, 48, 50,
+ 48, 128, 71, 48, 49, 57, 128, 71, 48, 49, 56, 128, 71, 48, 49, 55, 128,
+ 71, 48, 49, 54, 128, 71, 48, 49, 53, 128, 71, 48, 49, 52, 128, 71, 48,
+ 49, 51, 128, 71, 48, 49, 50, 128, 71, 48, 49, 49, 65, 128, 71, 48, 49,
+ 49, 128, 71, 48, 49, 48, 128, 71, 48, 48, 57, 128, 71, 48, 48, 56, 128,
+ 71, 48, 48, 55, 66, 128, 71, 48, 48, 55, 65, 128, 71, 48, 48, 55, 128,
+ 71, 48, 48, 54, 65, 128, 71, 48, 48, 54, 128, 71, 48, 48, 53, 128, 71,
+ 48, 48, 52, 128, 71, 48, 48, 51, 128, 71, 48, 48, 50, 128, 71, 48, 48,
+ 49, 128, 70, 89, 88, 128, 70, 89, 84, 128, 70, 89, 80, 128, 70, 89, 65,
+ 128, 70, 87, 73, 128, 70, 87, 69, 69, 128, 70, 87, 69, 128, 70, 87, 65,
+ 65, 128, 70, 87, 65, 128, 70, 86, 83, 51, 128, 70, 86, 83, 50, 128, 70,
+ 86, 83, 49, 128, 70, 85, 88, 128, 70, 85, 84, 128, 70, 85, 83, 69, 128,
+ 70, 85, 83, 193, 70, 85, 82, 88, 128, 70, 85, 80, 128, 70, 85, 78, 69,
+ 82, 65, 204, 70, 85, 78, 67, 84, 73, 79, 78, 65, 204, 70, 85, 78, 67, 84,
+ 73, 79, 78, 128, 70, 85, 76, 76, 78, 69, 83, 83, 128, 70, 85, 76, 204,
+ 70, 85, 74, 73, 128, 70, 85, 69, 84, 128, 70, 85, 69, 204, 70, 85, 69,
+ 128, 70, 85, 65, 128, 70, 84, 72, 79, 82, 193, 70, 83, 73, 128, 70, 82,
+ 79, 87, 78, 73, 78, 71, 128, 70, 82, 79, 87, 78, 73, 78, 199, 70, 82, 79,
+ 87, 78, 128, 70, 82, 79, 87, 206, 70, 82, 79, 78, 84, 45, 84, 73, 76, 84,
+ 69, 196, 70, 82, 79, 78, 84, 45, 70, 65, 67, 73, 78, 199, 70, 82, 79, 78,
+ 212, 70, 82, 79, 205, 70, 82, 79, 71, 128, 70, 82, 79, 199, 70, 82, 73,
+ 84, 85, 128, 70, 82, 73, 69, 83, 128, 70, 82, 73, 69, 196, 70, 82, 73,
+ 67, 65, 84, 73, 86, 69, 128, 70, 82, 69, 84, 66, 79, 65, 82, 68, 128, 70,
+ 82, 69, 78, 67, 200, 70, 82, 69, 69, 128, 70, 82, 69, 197, 70, 82, 65,
+ 78, 75, 211, 70, 82, 65, 78, 195, 70, 82, 65, 77, 69, 83, 128, 70, 82,
+ 65, 77, 69, 128, 70, 82, 65, 77, 197, 70, 82, 65, 71, 82, 65, 78, 84,
+ 128, 70, 82, 65, 71, 77, 69, 78, 84, 128, 70, 82, 65, 67, 84, 73, 79,
+ 206, 70, 79, 88, 128, 70, 79, 85, 82, 84, 69, 69, 78, 128, 70, 79, 85,
+ 82, 84, 69, 69, 206, 70, 79, 85, 82, 45, 84, 72, 73, 82, 84, 89, 128, 70,
+ 79, 85, 82, 45, 83, 84, 82, 73, 78, 199, 70, 79, 85, 82, 45, 80, 69, 82,
+ 45, 69, 205, 70, 79, 85, 82, 45, 76, 73, 78, 197, 70, 79, 85, 210, 70,
+ 79, 85, 78, 84, 65, 73, 78, 128, 70, 79, 85, 78, 84, 65, 73, 206, 70, 79,
+ 83, 84, 69, 82, 73, 78, 71, 128, 70, 79, 82, 87, 65, 82, 68, 128, 70, 79,
+ 82, 87, 65, 82, 196, 70, 79, 82, 84, 89, 128, 70, 79, 82, 84, 217, 70,
+ 79, 82, 84, 69, 128, 70, 79, 82, 77, 211, 70, 79, 82, 77, 65, 84, 84, 73,
+ 78, 71, 128, 70, 79, 82, 77, 65, 212, 70, 79, 82, 75, 69, 196, 70, 79,
+ 82, 69, 72, 69, 65, 196, 70, 79, 82, 67, 69, 83, 128, 70, 79, 82, 67, 69,
+ 128, 70, 79, 80, 128, 70, 79, 79, 84, 83, 84, 79, 79, 76, 128, 70, 79,
+ 79, 84, 80, 82, 73, 78, 84, 83, 128, 70, 79, 79, 84, 78, 79, 84, 197, 70,
+ 79, 79, 84, 66, 65, 76, 76, 128, 70, 79, 79, 84, 128, 70, 79, 79, 76,
+ 128, 70, 79, 79, 68, 128, 70, 79, 79, 128, 70, 79, 78, 212, 70, 79, 78,
+ 71, 77, 65, 78, 128, 70, 79, 77, 128, 70, 79, 76, 76, 89, 128, 70, 79,
+ 76, 76, 79, 87, 73, 78, 71, 128, 70, 79, 76, 68, 69, 82, 128, 70, 79, 76,
+ 68, 69, 196, 70, 79, 71, 71, 89, 128, 70, 79, 71, 128, 70, 207, 70, 77,
+ 128, 70, 76, 89, 73, 78, 199, 70, 76, 89, 128, 70, 76, 85, 84, 84, 69,
+ 82, 73, 78, 71, 128, 70, 76, 85, 84, 84, 69, 82, 73, 78, 199, 70, 76, 85,
+ 84, 69, 128, 70, 76, 85, 83, 72, 69, 196, 70, 76, 79, 87, 73, 78, 199,
+ 70, 76, 79, 87, 69, 82, 83, 128, 70, 76, 79, 87, 69, 210, 70, 76, 79, 85,
+ 82, 73, 83, 72, 128, 70, 76, 79, 82, 69, 84, 84, 69, 128, 70, 76, 79, 82,
+ 65, 204, 70, 76, 79, 80, 80, 217, 70, 76, 79, 79, 82, 128, 70, 76, 79,
+ 79, 210, 70, 76, 73, 80, 128, 70, 76, 73, 71, 72, 84, 128, 70, 76, 73,
+ 67, 203, 70, 76, 69, 88, 85, 83, 128, 70, 76, 69, 88, 69, 196, 70, 76,
+ 69, 88, 128, 70, 76, 69, 85, 82, 79, 78, 128, 70, 76, 69, 85, 82, 45, 68,
+ 69, 45, 76, 73, 83, 128, 70, 76, 65, 84, 84, 69, 78, 69, 196, 70, 76, 65,
+ 84, 78, 69, 83, 83, 128, 70, 76, 65, 83, 72, 128, 70, 76, 65, 71, 83,
+ 128, 70, 76, 65, 71, 45, 53, 128, 70, 76, 65, 71, 45, 52, 128, 70, 76,
+ 65, 71, 45, 51, 128, 70, 76, 65, 71, 45, 50, 128, 70, 76, 65, 71, 45, 49,
+ 128, 70, 76, 65, 71, 128, 70, 76, 65, 199, 70, 76, 65, 128, 70, 76, 128,
+ 70, 73, 88, 69, 68, 45, 70, 79, 82, 205, 70, 73, 88, 128, 70, 73, 86, 69,
+ 45, 84, 72, 73, 82, 84, 89, 128, 70, 73, 86, 69, 45, 76, 73, 78, 197, 70,
+ 73, 86, 197, 70, 73, 84, 90, 80, 65, 84, 82, 73, 67, 203, 70, 73, 84, 65,
+ 128, 70, 73, 84, 128, 70, 73, 83, 84, 69, 196, 70, 73, 83, 72, 73, 78,
+ 199, 70, 73, 83, 72, 72, 79, 79, 75, 128, 70, 73, 83, 72, 72, 79, 79,
+ 203, 70, 73, 83, 72, 69, 89, 69, 128, 70, 73, 83, 72, 128, 70, 73, 83,
+ 200, 70, 73, 82, 83, 212, 70, 73, 82, 73, 128, 70, 73, 82, 69, 87, 79,
+ 82, 75, 83, 128, 70, 73, 82, 69, 87, 79, 82, 203, 70, 73, 82, 69, 128,
+ 70, 73, 82, 197, 70, 73, 80, 128, 70, 73, 78, 73, 84, 197, 70, 73, 78,
+ 71, 69, 82, 83, 128, 70, 73, 78, 71, 69, 82, 211, 70, 73, 78, 71, 69, 82,
+ 78, 65, 73, 76, 83, 128, 70, 73, 78, 71, 69, 82, 69, 196, 70, 73, 78, 71,
+ 69, 82, 45, 80, 79, 83, 212, 70, 73, 78, 71, 69, 82, 128, 70, 73, 78, 71,
+ 69, 210, 70, 73, 78, 65, 78, 67, 73, 65, 76, 128, 70, 73, 78, 65, 76,
+ 128, 70, 73, 76, 205, 70, 73, 76, 76, 69, 82, 128, 70, 73, 76, 76, 69,
+ 196, 70, 73, 76, 76, 128, 70, 73, 76, 204, 70, 73, 76, 197, 70, 73, 73,
+ 128, 70, 73, 71, 85, 82, 69, 45, 51, 128, 70, 73, 71, 85, 82, 69, 45, 50,
+ 128, 70, 73, 71, 85, 82, 69, 45, 49, 128, 70, 73, 71, 85, 82, 197, 70,
+ 73, 71, 72, 84, 128, 70, 73, 70, 84, 89, 128, 70, 73, 70, 84, 217, 70,
+ 73, 70, 84, 72, 83, 128, 70, 73, 70, 84, 72, 128, 70, 73, 70, 84, 69, 69,
+ 78, 128, 70, 73, 70, 84, 69, 69, 206, 70, 73, 69, 76, 68, 128, 70, 73,
+ 69, 76, 196, 70, 72, 84, 79, 82, 193, 70, 70, 76, 128, 70, 70, 73, 128,
+ 70, 69, 85, 88, 128, 70, 69, 85, 70, 69, 85, 65, 69, 84, 128, 70, 69, 83,
+ 84, 73, 86, 65, 76, 128, 70, 69, 82, 82, 89, 128, 70, 69, 82, 82, 73,
+ 211, 70, 69, 82, 77, 65, 84, 65, 128, 70, 69, 82, 77, 65, 84, 193, 70,
+ 69, 79, 200, 70, 69, 78, 199, 70, 69, 78, 67, 69, 128, 70, 69, 77, 73,
+ 78, 73, 78, 197, 70, 69, 77, 65, 76, 69, 128, 70, 69, 77, 65, 76, 197,
+ 70, 69, 76, 76, 79, 87, 83, 72, 73, 80, 128, 70, 69, 73, 128, 70, 69, 72,
+ 213, 70, 69, 72, 128, 70, 69, 200, 70, 69, 69, 78, 71, 128, 70, 69, 69,
+ 77, 128, 70, 69, 69, 68, 128, 70, 69, 69, 196, 70, 69, 69, 128, 70, 69,
+ 66, 82, 85, 65, 82, 89, 128, 70, 69, 65, 84, 72, 69, 82, 128, 70, 69, 65,
+ 84, 72, 69, 210, 70, 69, 65, 82, 78, 128, 70, 69, 65, 82, 70, 85, 204,
+ 70, 69, 65, 82, 128, 70, 65, 89, 65, 78, 78, 65, 128, 70, 65, 89, 128,
+ 70, 65, 88, 128, 70, 65, 216, 70, 65, 84, 73, 71, 85, 69, 128, 70, 65,
+ 84, 72, 69, 82, 128, 70, 65, 84, 72, 69, 210, 70, 65, 84, 72, 65, 84, 65,
+ 78, 128, 70, 65, 84, 72, 65, 84, 65, 206, 70, 65, 84, 72, 65, 128, 70,
+ 65, 84, 72, 193, 70, 65, 84, 128, 70, 65, 83, 84, 128, 70, 65, 82, 83,
+ 201, 70, 65, 82, 128, 70, 65, 81, 128, 70, 65, 80, 128, 70, 65, 78, 71,
+ 128, 70, 65, 78, 69, 82, 79, 83, 73, 211, 70, 65, 78, 128, 70, 65, 77,
+ 73, 76, 89, 128, 70, 65, 77, 128, 70, 65, 76, 76, 69, 206, 70, 65, 74,
+ 128, 70, 65, 73, 76, 85, 82, 69, 128, 70, 65, 73, 72, 85, 128, 70, 65,
+ 73, 66, 128, 70, 65, 72, 82, 69, 78, 72, 69, 73, 84, 128, 70, 65, 67, 84,
+ 79, 82, 89, 128, 70, 65, 67, 84, 79, 210, 70, 65, 67, 83, 73, 77, 73, 76,
+ 197, 70, 65, 67, 73, 78, 71, 83, 128, 70, 65, 67, 69, 45, 54, 128, 70,
+ 65, 67, 69, 45, 53, 128, 70, 65, 67, 69, 45, 52, 128, 70, 65, 67, 69, 45,
+ 51, 128, 70, 65, 67, 69, 45, 50, 128, 70, 65, 67, 69, 45, 49, 128, 70,
+ 65, 65, 77, 65, 69, 128, 70, 65, 65, 73, 128, 70, 65, 65, 70, 85, 128,
+ 70, 48, 53, 51, 128, 70, 48, 53, 50, 128, 70, 48, 53, 49, 67, 128, 70,
+ 48, 53, 49, 66, 128, 70, 48, 53, 49, 65, 128, 70, 48, 53, 49, 128, 70,
+ 48, 53, 48, 128, 70, 48, 52, 57, 128, 70, 48, 52, 56, 128, 70, 48, 52,
+ 55, 65, 128, 70, 48, 52, 55, 128, 70, 48, 52, 54, 65, 128, 70, 48, 52,
+ 54, 128, 70, 48, 52, 53, 65, 128, 70, 48, 52, 53, 128, 70, 48, 52, 52,
+ 128, 70, 48, 52, 51, 128, 70, 48, 52, 50, 128, 70, 48, 52, 49, 128, 70,
+ 48, 52, 48, 128, 70, 48, 51, 57, 128, 70, 48, 51, 56, 65, 128, 70, 48,
+ 51, 56, 128, 70, 48, 51, 55, 65, 128, 70, 48, 51, 55, 128, 70, 48, 51,
+ 54, 128, 70, 48, 51, 53, 128, 70, 48, 51, 52, 128, 70, 48, 51, 51, 128,
+ 70, 48, 51, 50, 128, 70, 48, 51, 49, 65, 128, 70, 48, 51, 49, 128, 70,
+ 48, 51, 48, 128, 70, 48, 50, 57, 128, 70, 48, 50, 56, 128, 70, 48, 50,
+ 55, 128, 70, 48, 50, 54, 128, 70, 48, 50, 53, 128, 70, 48, 50, 52, 128,
+ 70, 48, 50, 51, 128, 70, 48, 50, 50, 128, 70, 48, 50, 49, 65, 128, 70,
+ 48, 50, 49, 128, 70, 48, 50, 48, 128, 70, 48, 49, 57, 128, 70, 48, 49,
+ 56, 128, 70, 48, 49, 55, 128, 70, 48, 49, 54, 128, 70, 48, 49, 53, 128,
+ 70, 48, 49, 52, 128, 70, 48, 49, 51, 65, 128, 70, 48, 49, 51, 128, 70,
+ 48, 49, 50, 128, 70, 48, 49, 49, 128, 70, 48, 49, 48, 128, 70, 48, 48,
+ 57, 128, 70, 48, 48, 56, 128, 70, 48, 48, 55, 128, 70, 48, 48, 54, 128,
+ 70, 48, 48, 53, 128, 70, 48, 48, 52, 128, 70, 48, 48, 51, 128, 70, 48,
+ 48, 50, 128, 70, 48, 48, 49, 65, 128, 70, 48, 48, 49, 128, 69, 90, 83,
+ 128, 69, 90, 200, 69, 90, 69, 78, 128, 69, 90, 69, 206, 69, 90, 128, 69,
+ 89, 89, 89, 128, 69, 89, 69, 83, 128, 69, 89, 69, 211, 69, 89, 69, 76,
+ 65, 83, 72, 69, 211, 69, 89, 69, 71, 76, 65, 83, 83, 69, 83, 128, 69, 89,
+ 69, 71, 65, 90, 69, 45, 87, 65, 76, 76, 80, 76, 65, 78, 197, 69, 89, 69,
+ 71, 65, 90, 69, 45, 70, 76, 79, 79, 82, 80, 76, 65, 78, 197, 69, 89, 69,
+ 66, 82, 79, 87, 211, 69, 89, 197, 69, 89, 66, 69, 89, 70, 73, 76, 73,
+ 128, 69, 89, 65, 78, 78, 65, 128, 69, 88, 84, 82, 69, 77, 69, 76, 217,
+ 69, 88, 84, 82, 65, 84, 69, 82, 82, 69, 83, 84, 82, 73, 65, 204, 69, 88,
+ 84, 82, 65, 45, 76, 79, 215, 69, 88, 84, 82, 65, 45, 72, 73, 71, 200, 69,
+ 88, 84, 82, 193, 69, 88, 84, 69, 78, 83, 73, 79, 78, 128, 69, 88, 84, 69,
+ 78, 68, 69, 68, 128, 69, 88, 84, 69, 78, 68, 69, 196, 69, 88, 80, 82, 69,
+ 83, 83, 73, 79, 78, 76, 69, 83, 211, 69, 88, 80, 79, 78, 69, 78, 212, 69,
+ 88, 79, 128, 69, 88, 207, 69, 88, 73, 83, 84, 83, 128, 69, 88, 73, 83,
+ 84, 128, 69, 88, 72, 65, 85, 83, 84, 73, 79, 78, 128, 69, 88, 72, 65, 76,
+ 69, 128, 69, 88, 67, 76, 65, 77, 65, 84, 73, 79, 78, 128, 69, 88, 67, 76,
+ 65, 77, 65, 84, 73, 79, 206, 69, 88, 67, 73, 84, 69, 77, 69, 78, 84, 128,
+ 69, 88, 67, 72, 65, 78, 71, 69, 128, 69, 88, 67, 69, 83, 83, 128, 69, 88,
+ 67, 69, 76, 76, 69, 78, 84, 128, 69, 87, 69, 128, 69, 86, 69, 82, 217,
+ 69, 86, 69, 82, 71, 82, 69, 69, 206, 69, 86, 69, 78, 73, 78, 71, 128, 69,
+ 85, 82, 79, 80, 69, 65, 206, 69, 85, 82, 79, 80, 69, 45, 65, 70, 82, 73,
+ 67, 65, 128, 69, 85, 82, 79, 45, 67, 85, 82, 82, 69, 78, 67, 217, 69, 85,
+ 82, 207, 69, 85, 76, 69, 210, 69, 85, 45, 85, 128, 69, 85, 45, 79, 128,
+ 69, 85, 45, 69, 85, 128, 69, 85, 45, 69, 79, 128, 69, 85, 45, 69, 128,
+ 69, 85, 45, 65, 128, 69, 84, 88, 128, 69, 84, 78, 65, 72, 84, 65, 128,
+ 69, 84, 72, 69, 204, 69, 84, 69, 82, 79, 206, 69, 84, 69, 82, 78, 73, 84,
+ 89, 128, 69, 84, 69, 82, 78, 73, 84, 217, 69, 84, 66, 128, 69, 83, 90,
+ 128, 69, 83, 85, 75, 85, 85, 68, 79, 128, 69, 83, 84, 73, 77, 65, 84, 69,
+ 83, 128, 69, 83, 84, 73, 77, 65, 84, 69, 196, 69, 83, 72, 69, 51, 128,
+ 69, 83, 72, 50, 49, 128, 69, 83, 72, 49, 54, 128, 69, 83, 67, 65, 80, 69,
+ 128, 69, 83, 67, 128, 69, 83, 65, 128, 69, 83, 45, 84, 69, 128, 69, 83,
+ 45, 51, 128, 69, 83, 45, 50, 128, 69, 83, 45, 49, 128, 69, 82, 82, 79,
+ 82, 45, 66, 65, 82, 82, 69, 196, 69, 82, 82, 128, 69, 82, 73, 78, 50,
+ 128, 69, 82, 73, 78, 178, 69, 82, 71, 128, 69, 82, 65, 83, 197, 69, 81,
+ 85, 73, 86, 65, 76, 69, 78, 212, 69, 81, 85, 73, 76, 65, 84, 69, 82, 65,
+ 204, 69, 81, 85, 73, 68, 128, 69, 81, 85, 73, 65, 78, 71, 85, 76, 65,
210, 69, 81, 85, 65, 76, 83, 128, 69, 81, 85, 65, 76, 211, 69, 81, 85,
65, 76, 128, 69, 80, 83, 73, 76, 79, 78, 128, 69, 80, 83, 73, 76, 79,
206, 69, 80, 79, 67, 72, 128, 69, 80, 73, 71, 82, 65, 80, 72, 73, 195,
69, 80, 73, 68, 65, 85, 82, 69, 65, 206, 69, 80, 69, 78, 84, 72, 69, 84,
- 73, 195, 69, 80, 69, 71, 69, 82, 77, 65, 128, 69, 79, 84, 128, 69, 79,
- 77, 128, 69, 79, 76, 72, 88, 128, 69, 79, 76, 128, 69, 79, 72, 128, 69,
- 78, 89, 128, 69, 78, 86, 69, 76, 79, 80, 69, 128, 69, 78, 86, 69, 76, 79,
- 80, 197, 69, 78, 85, 77, 69, 82, 65, 84, 73, 79, 206, 69, 78, 84, 82, 89,
- 45, 50, 128, 69, 78, 84, 82, 89, 45, 49, 128, 69, 78, 84, 82, 89, 128,
- 69, 78, 84, 82, 217, 69, 78, 84, 72, 85, 83, 73, 65, 83, 77, 128, 69, 78,
- 84, 69, 82, 80, 82, 73, 83, 69, 128, 69, 78, 84, 69, 82, 73, 78, 199, 69,
- 78, 84, 69, 82, 128, 69, 78, 84, 69, 210, 69, 78, 81, 85, 73, 82, 89,
- 128, 69, 78, 81, 128, 69, 78, 79, 211, 69, 78, 78, 128, 69, 78, 76, 65,
- 82, 71, 69, 77, 69, 78, 84, 128, 69, 78, 71, 73, 78, 69, 128, 69, 78, 68,
- 79, 70, 79, 78, 79, 78, 128, 69, 78, 68, 73, 78, 199, 69, 78, 68, 69, 80,
- 128, 69, 78, 68, 69, 65, 86, 79, 85, 82, 128, 69, 78, 67, 79, 85, 78, 84,
- 69, 82, 83, 128, 69, 78, 67, 76, 79, 83, 85, 82, 69, 128, 69, 78, 67, 76,
- 79, 83, 73, 78, 199, 69, 78, 67, 128, 69, 78, 65, 82, 88, 73, 211, 69,
- 78, 65, 82, 77, 79, 78, 73, 79, 211, 69, 77, 80, 84, 217, 69, 77, 80, 72,
- 65, 84, 73, 195, 69, 77, 80, 72, 65, 83, 73, 211, 69, 77, 66, 82, 79, 73,
- 68, 69, 82, 89, 128, 69, 77, 66, 76, 69, 77, 128, 69, 77, 66, 69, 76, 76,
- 73, 83, 72, 77, 69, 78, 84, 128, 69, 77, 66, 69, 68, 68, 73, 78, 71, 128,
- 69, 76, 84, 128, 69, 76, 76, 73, 80, 84, 73, 195, 69, 76, 76, 73, 80, 83,
- 73, 83, 128, 69, 76, 76, 73, 80, 83, 69, 128, 69, 76, 73, 70, 73, 128,
- 69, 76, 69, 86, 69, 78, 45, 84, 72, 73, 82, 84, 89, 128, 69, 76, 69, 86,
- 69, 78, 128, 69, 76, 69, 86, 69, 206, 69, 76, 69, 80, 72, 65, 78, 84,
- 128, 69, 76, 69, 77, 69, 78, 212, 69, 76, 69, 67, 84, 82, 73, 67, 65,
- 204, 69, 76, 69, 67, 84, 82, 73, 195, 69, 76, 65, 70, 82, 79, 78, 128,
- 69, 75, 83, 84, 82, 69, 80, 84, 79, 78, 128, 69, 75, 83, 128, 69, 75, 70,
- 79, 78, 73, 84, 73, 75, 79, 78, 128, 69, 75, 65, 82, 65, 128, 69, 74, 69,
- 67, 212, 69, 73, 83, 128, 69, 73, 71, 72, 84, 89, 128, 69, 73, 71, 72,
- 84, 217, 69, 73, 71, 72, 84, 72, 83, 128, 69, 73, 71, 72, 84, 72, 211,
- 69, 73, 71, 72, 84, 72, 128, 69, 73, 71, 72, 84, 69, 69, 78, 128, 69, 73,
- 71, 72, 84, 69, 69, 206, 69, 73, 71, 72, 84, 45, 84, 72, 73, 82, 84, 89,
- 128, 69, 73, 69, 128, 69, 72, 87, 65, 218, 69, 71, 89, 80, 84, 79, 76,
- 79, 71, 73, 67, 65, 204, 69, 71, 73, 82, 128, 69, 71, 71, 128, 69, 69,
+ 73, 195, 69, 80, 69, 71, 69, 82, 77, 65, 128, 69, 80, 65, 67, 212, 69,
+ 79, 84, 128, 69, 79, 77, 128, 69, 79, 76, 72, 88, 128, 69, 79, 76, 128,
+ 69, 79, 72, 128, 69, 78, 89, 128, 69, 78, 86, 69, 76, 79, 80, 69, 128,
+ 69, 78, 86, 69, 76, 79, 80, 197, 69, 78, 85, 77, 69, 82, 65, 84, 73, 79,
+ 206, 69, 78, 84, 82, 89, 45, 50, 128, 69, 78, 84, 82, 89, 45, 49, 128,
+ 69, 78, 84, 82, 89, 128, 69, 78, 84, 82, 217, 69, 78, 84, 72, 85, 83, 73,
+ 65, 83, 77, 128, 69, 78, 84, 69, 82, 80, 82, 73, 83, 69, 128, 69, 78, 84,
+ 69, 82, 73, 78, 199, 69, 78, 84, 69, 82, 128, 69, 78, 84, 69, 210, 69,
+ 78, 84, 45, 83, 72, 65, 80, 69, 196, 69, 78, 81, 85, 73, 82, 89, 128, 69,
+ 78, 81, 128, 69, 78, 79, 211, 69, 78, 78, 73, 128, 69, 78, 78, 128, 69,
+ 78, 76, 65, 82, 71, 69, 77, 69, 78, 84, 128, 69, 78, 71, 73, 78, 69, 128,
+ 69, 78, 68, 79, 70, 79, 78, 79, 78, 128, 69, 78, 68, 73, 78, 199, 69, 78,
+ 68, 69, 80, 128, 69, 78, 68, 69, 65, 86, 79, 85, 82, 128, 69, 78, 67, 79,
+ 85, 78, 84, 69, 82, 83, 128, 69, 78, 67, 76, 79, 83, 85, 82, 69, 83, 128,
+ 69, 78, 67, 76, 79, 83, 85, 82, 69, 128, 69, 78, 67, 76, 79, 83, 73, 78,
+ 199, 69, 78, 67, 128, 69, 78, 65, 82, 88, 73, 211, 69, 78, 65, 82, 77,
+ 79, 78, 73, 79, 211, 69, 77, 80, 84, 217, 69, 77, 80, 72, 65, 84, 73,
+ 195, 69, 77, 80, 72, 65, 83, 73, 211, 69, 77, 79, 74, 201, 69, 77, 66,
+ 82, 79, 73, 68, 69, 82, 89, 128, 69, 77, 66, 76, 69, 77, 128, 69, 77, 66,
+ 69, 76, 76, 73, 83, 72, 77, 69, 78, 84, 128, 69, 77, 66, 69, 68, 68, 73,
+ 78, 71, 128, 69, 76, 89, 128, 69, 76, 84, 128, 69, 76, 76, 73, 80, 84,
+ 73, 195, 69, 76, 76, 73, 80, 83, 73, 83, 128, 69, 76, 76, 73, 80, 83, 69,
+ 128, 69, 76, 73, 70, 73, 128, 69, 76, 69, 86, 69, 78, 45, 84, 72, 73, 82,
+ 84, 89, 128, 69, 76, 69, 86, 69, 78, 128, 69, 76, 69, 86, 69, 206, 69,
+ 76, 69, 80, 72, 65, 78, 84, 128, 69, 76, 69, 77, 69, 78, 212, 69, 76, 69,
+ 67, 84, 82, 73, 67, 65, 204, 69, 76, 69, 67, 84, 82, 73, 195, 69, 76, 66,
+ 65, 83, 65, 206, 69, 76, 65, 77, 73, 84, 69, 128, 69, 76, 65, 77, 73, 84,
+ 197, 69, 76, 65, 70, 82, 79, 78, 128, 69, 75, 83, 84, 82, 69, 80, 84, 79,
+ 78, 128, 69, 75, 83, 128, 69, 75, 70, 79, 78, 73, 84, 73, 75, 79, 78,
+ 128, 69, 75, 65, 82, 65, 128, 69, 75, 65, 77, 128, 69, 74, 69, 67, 212,
+ 69, 73, 83, 128, 69, 73, 71, 72, 84, 89, 128, 69, 73, 71, 72, 84, 217,
+ 69, 73, 71, 72, 84, 72, 83, 128, 69, 73, 71, 72, 84, 72, 211, 69, 73, 71,
+ 72, 84, 72, 128, 69, 73, 71, 72, 84, 69, 69, 78, 128, 69, 73, 71, 72, 84,
+ 69, 69, 206, 69, 73, 71, 72, 84, 45, 84, 72, 73, 82, 84, 89, 128, 69, 73,
+ 69, 128, 69, 72, 87, 65, 218, 69, 71, 89, 80, 84, 79, 76, 79, 71, 73, 67,
+ 65, 204, 69, 71, 89, 128, 69, 71, 73, 82, 128, 69, 71, 71, 128, 69, 69,
89, 65, 78, 78, 65, 128, 69, 69, 75, 65, 65, 128, 69, 69, 72, 128, 69,
69, 66, 69, 69, 70, 73, 76, 73, 128, 69, 68, 73, 84, 79, 82, 73, 65, 204,
- 69, 68, 73, 78, 128, 69, 68, 68, 128, 69, 66, 69, 70, 73, 76, 73, 128,
- 69, 65, 83, 84, 69, 82, 206, 69, 65, 83, 212, 69, 65, 82, 84, 72, 76,
- 217, 69, 65, 82, 84, 72, 128, 69, 65, 82, 84, 200, 69, 65, 82, 83, 128,
- 69, 65, 82, 76, 217, 69, 65, 77, 72, 65, 78, 67, 72, 79, 76, 76, 128, 69,
- 65, 71, 76, 69, 128, 69, 65, 68, 72, 65, 68, 72, 128, 69, 65, 66, 72, 65,
- 68, 72, 128, 69, 178, 69, 48, 51, 56, 128, 69, 48, 51, 55, 128, 69, 48,
- 51, 54, 128, 69, 48, 51, 52, 65, 128, 69, 48, 51, 52, 128, 69, 48, 51,
- 51, 128, 69, 48, 51, 50, 128, 69, 48, 51, 49, 128, 69, 48, 51, 48, 128,
- 69, 48, 50, 57, 128, 69, 48, 50, 56, 65, 128, 69, 48, 50, 56, 128, 69,
- 48, 50, 55, 128, 69, 48, 50, 54, 128, 69, 48, 50, 53, 128, 69, 48, 50,
- 52, 128, 69, 48, 50, 51, 128, 69, 48, 50, 50, 128, 69, 48, 50, 49, 128,
- 69, 48, 50, 48, 65, 128, 69, 48, 50, 48, 128, 69, 48, 49, 57, 128, 69,
- 48, 49, 56, 128, 69, 48, 49, 55, 65, 128, 69, 48, 49, 55, 128, 69, 48,
- 49, 54, 65, 128, 69, 48, 49, 54, 128, 69, 48, 49, 53, 128, 69, 48, 49,
- 52, 128, 69, 48, 49, 51, 128, 69, 48, 49, 50, 128, 69, 48, 49, 49, 128,
- 69, 48, 49, 48, 128, 69, 48, 48, 57, 65, 128, 69, 48, 48, 57, 128, 69,
- 48, 48, 56, 65, 128, 69, 48, 48, 56, 128, 69, 48, 48, 55, 128, 69, 48,
- 48, 54, 128, 69, 48, 48, 53, 128, 69, 48, 48, 52, 128, 69, 48, 48, 51,
- 128, 69, 48, 48, 50, 128, 69, 48, 48, 49, 128, 69, 45, 77, 65, 73, 204,
- 68, 90, 90, 69, 128, 68, 90, 90, 65, 128, 68, 90, 87, 69, 128, 68, 90,
- 85, 128, 68, 90, 79, 128, 68, 90, 74, 69, 128, 68, 90, 73, 128, 68, 90,
+ 69, 68, 73, 78, 128, 69, 68, 68, 128, 69, 67, 83, 128, 69, 66, 69, 70,
+ 73, 76, 73, 128, 69, 65, 83, 84, 69, 82, 206, 69, 65, 83, 84, 128, 69,
+ 65, 83, 212, 69, 65, 82, 84, 72, 76, 217, 69, 65, 82, 84, 72, 128, 69,
+ 65, 82, 84, 200, 69, 65, 82, 83, 128, 69, 65, 82, 76, 217, 69, 65, 77,
+ 72, 65, 78, 67, 72, 79, 76, 76, 128, 69, 65, 71, 76, 69, 128, 69, 65, 68,
+ 72, 65, 68, 72, 128, 69, 65, 66, 72, 65, 68, 72, 128, 69, 178, 69, 48,
+ 51, 56, 128, 69, 48, 51, 55, 128, 69, 48, 51, 54, 128, 69, 48, 51, 52,
+ 65, 128, 69, 48, 51, 52, 128, 69, 48, 51, 51, 128, 69, 48, 51, 50, 128,
+ 69, 48, 51, 49, 128, 69, 48, 51, 48, 128, 69, 48, 50, 57, 128, 69, 48,
+ 50, 56, 65, 128, 69, 48, 50, 56, 128, 69, 48, 50, 55, 128, 69, 48, 50,
+ 54, 128, 69, 48, 50, 53, 128, 69, 48, 50, 52, 128, 69, 48, 50, 51, 128,
+ 69, 48, 50, 50, 128, 69, 48, 50, 49, 128, 69, 48, 50, 48, 65, 128, 69,
+ 48, 50, 48, 128, 69, 48, 49, 57, 128, 69, 48, 49, 56, 128, 69, 48, 49,
+ 55, 65, 128, 69, 48, 49, 55, 128, 69, 48, 49, 54, 65, 128, 69, 48, 49,
+ 54, 128, 69, 48, 49, 53, 128, 69, 48, 49, 52, 128, 69, 48, 49, 51, 128,
+ 69, 48, 49, 50, 128, 69, 48, 49, 49, 128, 69, 48, 49, 48, 128, 69, 48,
+ 48, 57, 65, 128, 69, 48, 48, 57, 128, 69, 48, 48, 56, 65, 128, 69, 48,
+ 48, 56, 128, 69, 48, 48, 55, 128, 69, 48, 48, 54, 128, 69, 48, 48, 53,
+ 128, 69, 48, 48, 52, 128, 69, 48, 48, 51, 128, 69, 48, 48, 50, 128, 69,
+ 48, 48, 49, 128, 69, 45, 77, 65, 73, 204, 68, 90, 90, 72, 69, 128, 68,
+ 90, 90, 69, 128, 68, 90, 90, 65, 128, 68, 90, 89, 65, 89, 128, 68, 90,
+ 87, 69, 128, 68, 90, 85, 128, 68, 90, 79, 128, 68, 90, 74, 69, 128, 68,
+ 90, 73, 84, 65, 128, 68, 90, 73, 128, 68, 90, 72, 79, 73, 128, 68, 90,
72, 69, 128, 68, 90, 72, 65, 128, 68, 90, 69, 76, 79, 128, 68, 90, 69,
- 69, 128, 68, 90, 69, 128, 68, 90, 65, 65, 128, 68, 90, 65, 128, 68, 90,
- 128, 68, 218, 68, 89, 79, 128, 68, 89, 207, 68, 89, 69, 72, 128, 68, 89,
- 69, 200, 68, 87, 79, 128, 68, 87, 69, 128, 68, 87, 65, 128, 68, 86, 73,
+ 69, 128, 68, 90, 69, 128, 68, 90, 65, 89, 128, 68, 90, 65, 65, 128, 68,
+ 90, 65, 128, 68, 90, 128, 68, 218, 68, 89, 79, 128, 68, 89, 207, 68, 89,
+ 78, 65, 77, 73, 195, 68, 89, 69, 72, 128, 68, 89, 69, 200, 68, 89, 65,
+ 78, 128, 68, 87, 79, 128, 68, 87, 69, 128, 68, 87, 65, 128, 68, 86, 73,
83, 86, 65, 82, 65, 128, 68, 86, 68, 128, 68, 86, 128, 68, 85, 84, 73,
69, 83, 128, 68, 85, 83, 75, 128, 68, 85, 83, 72, 69, 78, 78, 65, 128,
68, 85, 82, 65, 84, 73, 79, 78, 128, 68, 85, 82, 50, 128, 68, 85, 80, 79,
78, 68, 73, 85, 211, 68, 85, 79, 88, 128, 68, 85, 79, 128, 68, 85, 78,
52, 128, 68, 85, 78, 51, 128, 68, 85, 78, 179, 68, 85, 77, 128, 68, 85,
- 204, 68, 85, 72, 128, 68, 85, 71, 85, 68, 128, 68, 85, 66, 50, 128, 68,
- 85, 66, 128, 68, 85, 194, 68, 82, 89, 128, 68, 82, 217, 68, 82, 85, 77,
- 128, 68, 82, 85, 205, 68, 82, 79, 80, 83, 128, 68, 82, 79, 80, 76, 69,
- 84, 128, 68, 82, 79, 80, 45, 83, 72, 65, 68, 79, 87, 69, 196, 68, 82, 79,
- 77, 69, 68, 65, 82, 217, 68, 82, 73, 86, 69, 128, 68, 82, 73, 86, 197,
- 68, 82, 73, 78, 75, 128, 68, 82, 73, 204, 68, 82, 69, 83, 83, 128, 68,
- 82, 65, 85, 71, 72, 84, 211, 68, 82, 65, 77, 128, 68, 82, 65, 205, 68,
- 82, 65, 71, 79, 78, 128, 68, 82, 65, 71, 79, 206, 68, 82, 65, 70, 84, 73,
- 78, 199, 68, 82, 65, 67, 72, 77, 65, 83, 128, 68, 82, 65, 67, 72, 77, 65,
- 128, 68, 82, 65, 67, 72, 77, 193, 68, 79, 87, 78, 87, 65, 82, 68, 83,
- 128, 68, 79, 87, 78, 87, 65, 82, 68, 211, 68, 79, 87, 78, 45, 80, 79, 73,
+ 204, 68, 85, 72, 128, 68, 85, 71, 85, 68, 128, 68, 85, 199, 68, 85, 66,
+ 50, 128, 68, 85, 66, 128, 68, 85, 194, 68, 82, 89, 128, 68, 82, 217, 68,
+ 82, 85, 77, 128, 68, 82, 85, 205, 68, 82, 79, 80, 83, 128, 68, 82, 79,
+ 80, 76, 69, 84, 128, 68, 82, 79, 80, 45, 83, 72, 65, 68, 79, 87, 69, 196,
+ 68, 82, 79, 77, 69, 68, 65, 82, 217, 68, 82, 73, 86, 69, 128, 68, 82, 73,
+ 86, 197, 68, 82, 73, 78, 75, 128, 68, 82, 73, 204, 68, 82, 69, 83, 83,
+ 128, 68, 82, 69, 65, 77, 217, 68, 82, 65, 85, 71, 72, 84, 211, 68, 82,
+ 65, 77, 128, 68, 82, 65, 205, 68, 82, 65, 71, 79, 78, 128, 68, 82, 65,
+ 71, 79, 206, 68, 82, 65, 70, 84, 73, 78, 199, 68, 82, 65, 67, 72, 77, 65,
+ 83, 128, 68, 82, 65, 67, 72, 77, 65, 128, 68, 82, 65, 67, 72, 77, 193,
+ 68, 79, 87, 78, 87, 65, 82, 68, 83, 128, 68, 79, 87, 78, 45, 80, 79, 73,
78, 84, 73, 78, 199, 68, 79, 87, 78, 128, 68, 79, 86, 69, 128, 68, 79,
- 85, 71, 72, 78, 85, 84, 128, 68, 79, 85, 66, 84, 128, 68, 79, 85, 66, 76,
- 69, 196, 68, 79, 85, 66, 76, 69, 45, 76, 73, 78, 197, 68, 79, 85, 66, 76,
- 69, 45, 69, 78, 68, 69, 196, 68, 79, 85, 66, 76, 69, 128, 68, 79, 84, 84,
- 69, 68, 45, 80, 128, 68, 79, 84, 84, 69, 68, 45, 78, 128, 68, 79, 84, 84,
- 69, 68, 45, 76, 128, 68, 79, 84, 84, 69, 68, 128, 68, 79, 84, 84, 69,
- 196, 68, 79, 84, 83, 45, 56, 128, 68, 79, 84, 83, 45, 55, 56, 128, 68,
- 79, 84, 83, 45, 55, 128, 68, 79, 84, 83, 45, 54, 56, 128, 68, 79, 84, 83,
- 45, 54, 55, 56, 128, 68, 79, 84, 83, 45, 54, 55, 128, 68, 79, 84, 83, 45,
- 54, 128, 68, 79, 84, 83, 45, 53, 56, 128, 68, 79, 84, 83, 45, 53, 55, 56,
- 128, 68, 79, 84, 83, 45, 53, 55, 128, 68, 79, 84, 83, 45, 53, 54, 56,
- 128, 68, 79, 84, 83, 45, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 53, 54,
- 55, 128, 68, 79, 84, 83, 45, 53, 54, 128, 68, 79, 84, 83, 45, 53, 128,
- 68, 79, 84, 83, 45, 52, 56, 128, 68, 79, 84, 83, 45, 52, 55, 56, 128, 68,
- 79, 84, 83, 45, 52, 55, 128, 68, 79, 84, 83, 45, 52, 54, 56, 128, 68, 79,
- 84, 83, 45, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, 52, 54, 55, 128, 68,
- 79, 84, 83, 45, 52, 54, 128, 68, 79, 84, 83, 45, 52, 53, 56, 128, 68, 79,
- 84, 83, 45, 52, 53, 55, 56, 128, 68, 79, 84, 83, 45, 52, 53, 55, 128, 68,
- 79, 84, 83, 45, 52, 53, 54, 56, 128, 68, 79, 84, 83, 45, 52, 53, 54, 55,
- 56, 128, 68, 79, 84, 83, 45, 52, 53, 54, 55, 128, 68, 79, 84, 83, 45, 52,
- 53, 54, 128, 68, 79, 84, 83, 45, 52, 53, 128, 68, 79, 84, 83, 45, 52,
- 128, 68, 79, 84, 83, 45, 51, 56, 128, 68, 79, 84, 83, 45, 51, 55, 56,
- 128, 68, 79, 84, 83, 45, 51, 55, 128, 68, 79, 84, 83, 45, 51, 54, 56,
- 128, 68, 79, 84, 83, 45, 51, 54, 55, 56, 128, 68, 79, 84, 83, 45, 51, 54,
- 55, 128, 68, 79, 84, 83, 45, 51, 54, 128, 68, 79, 84, 83, 45, 51, 53, 56,
- 128, 68, 79, 84, 83, 45, 51, 53, 55, 56, 128, 68, 79, 84, 83, 45, 51, 53,
- 55, 128, 68, 79, 84, 83, 45, 51, 53, 54, 56, 128, 68, 79, 84, 83, 45, 51,
- 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 51, 53, 54, 55, 128, 68, 79, 84,
- 83, 45, 51, 53, 54, 128, 68, 79, 84, 83, 45, 51, 53, 128, 68, 79, 84, 83,
- 45, 51, 52, 56, 128, 68, 79, 84, 83, 45, 51, 52, 55, 56, 128, 68, 79, 84,
- 83, 45, 51, 52, 55, 128, 68, 79, 84, 83, 45, 51, 52, 54, 56, 128, 68, 79,
- 84, 83, 45, 51, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, 51, 52, 54, 55,
- 128, 68, 79, 84, 83, 45, 51, 52, 54, 128, 68, 79, 84, 83, 45, 51, 52, 53,
- 56, 128, 68, 79, 84, 83, 45, 51, 52, 53, 55, 56, 128, 68, 79, 84, 83, 45,
- 51, 52, 53, 55, 128, 68, 79, 84, 83, 45, 51, 52, 53, 54, 56, 128, 68, 79,
- 84, 83, 45, 51, 52, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 51, 52, 53,
- 54, 55, 128, 68, 79, 84, 83, 45, 51, 52, 53, 54, 128, 68, 79, 84, 83, 45,
- 51, 52, 53, 128, 68, 79, 84, 83, 45, 51, 52, 128, 68, 79, 84, 83, 45, 51,
- 128, 68, 79, 84, 83, 45, 50, 56, 128, 68, 79, 84, 83, 45, 50, 55, 56,
- 128, 68, 79, 84, 83, 45, 50, 55, 128, 68, 79, 84, 83, 45, 50, 54, 56,
+ 86, 197, 68, 79, 85, 71, 72, 78, 85, 84, 128, 68, 79, 85, 66, 84, 128,
+ 68, 79, 85, 66, 76, 69, 196, 68, 79, 85, 66, 76, 69, 45, 76, 73, 78, 197,
+ 68, 79, 85, 66, 76, 69, 45, 69, 78, 68, 69, 196, 68, 79, 85, 66, 76, 69,
+ 128, 68, 79, 84, 84, 69, 68, 45, 80, 128, 68, 79, 84, 84, 69, 68, 45, 78,
+ 128, 68, 79, 84, 84, 69, 68, 45, 76, 128, 68, 79, 84, 84, 69, 68, 128,
+ 68, 79, 84, 84, 69, 196, 68, 79, 84, 83, 45, 56, 128, 68, 79, 84, 83, 45,
+ 55, 56, 128, 68, 79, 84, 83, 45, 55, 128, 68, 79, 84, 83, 45, 54, 56,
+ 128, 68, 79, 84, 83, 45, 54, 55, 56, 128, 68, 79, 84, 83, 45, 54, 55,
+ 128, 68, 79, 84, 83, 45, 54, 128, 68, 79, 84, 83, 45, 53, 56, 128, 68,
+ 79, 84, 83, 45, 53, 55, 56, 128, 68, 79, 84, 83, 45, 53, 55, 128, 68, 79,
+ 84, 83, 45, 53, 54, 56, 128, 68, 79, 84, 83, 45, 53, 54, 55, 56, 128, 68,
+ 79, 84, 83, 45, 53, 54, 55, 128, 68, 79, 84, 83, 45, 53, 54, 128, 68, 79,
+ 84, 83, 45, 53, 128, 68, 79, 84, 83, 45, 52, 56, 128, 68, 79, 84, 83, 45,
+ 52, 55, 56, 128, 68, 79, 84, 83, 45, 52, 55, 128, 68, 79, 84, 83, 45, 52,
+ 54, 56, 128, 68, 79, 84, 83, 45, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45,
+ 52, 54, 55, 128, 68, 79, 84, 83, 45, 52, 54, 128, 68, 79, 84, 83, 45, 52,
+ 53, 56, 128, 68, 79, 84, 83, 45, 52, 53, 55, 56, 128, 68, 79, 84, 83, 45,
+ 52, 53, 55, 128, 68, 79, 84, 83, 45, 52, 53, 54, 56, 128, 68, 79, 84, 83,
+ 45, 52, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 52, 53, 54, 55, 128, 68,
+ 79, 84, 83, 45, 52, 53, 54, 128, 68, 79, 84, 83, 45, 52, 53, 128, 68, 79,
+ 84, 83, 45, 52, 128, 68, 79, 84, 83, 45, 51, 56, 128, 68, 79, 84, 83, 45,
+ 51, 55, 56, 128, 68, 79, 84, 83, 45, 51, 55, 128, 68, 79, 84, 83, 45, 51,
+ 54, 56, 128, 68, 79, 84, 83, 45, 51, 54, 55, 56, 128, 68, 79, 84, 83, 45,
+ 51, 54, 55, 128, 68, 79, 84, 83, 45, 51, 54, 128, 68, 79, 84, 83, 45, 51,
+ 53, 56, 128, 68, 79, 84, 83, 45, 51, 53, 55, 56, 128, 68, 79, 84, 83, 45,
+ 51, 53, 55, 128, 68, 79, 84, 83, 45, 51, 53, 54, 56, 128, 68, 79, 84, 83,
+ 45, 51, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 51, 53, 54, 55, 128, 68,
+ 79, 84, 83, 45, 51, 53, 54, 128, 68, 79, 84, 83, 45, 51, 53, 128, 68, 79,
+ 84, 83, 45, 51, 52, 56, 128, 68, 79, 84, 83, 45, 51, 52, 55, 56, 128, 68,
+ 79, 84, 83, 45, 51, 52, 55, 128, 68, 79, 84, 83, 45, 51, 52, 54, 56, 128,
+ 68, 79, 84, 83, 45, 51, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, 51, 52,
+ 54, 55, 128, 68, 79, 84, 83, 45, 51, 52, 54, 128, 68, 79, 84, 83, 45, 51,
+ 52, 53, 56, 128, 68, 79, 84, 83, 45, 51, 52, 53, 55, 56, 128, 68, 79, 84,
+ 83, 45, 51, 52, 53, 55, 128, 68, 79, 84, 83, 45, 51, 52, 53, 54, 56, 128,
+ 68, 79, 84, 83, 45, 51, 52, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 51,
+ 52, 53, 54, 55, 128, 68, 79, 84, 83, 45, 51, 52, 53, 54, 128, 68, 79, 84,
+ 83, 45, 51, 52, 53, 128, 68, 79, 84, 83, 45, 51, 52, 128, 68, 79, 84, 83,
+ 45, 51, 128, 68, 79, 84, 83, 45, 50, 56, 128, 68, 79, 84, 83, 45, 50, 55,
+ 56, 128, 68, 79, 84, 83, 45, 50, 55, 128, 68, 79, 84, 83, 45, 50, 54, 56,
128, 68, 79, 84, 83, 45, 50, 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, 54,
55, 128, 68, 79, 84, 83, 45, 50, 54, 128, 68, 79, 84, 83, 45, 50, 53, 56,
128, 68, 79, 84, 83, 45, 50, 53, 55, 56, 128, 68, 79, 84, 83, 45, 50, 53,
@@ -3952,392 +4286,436 @@ static unsigned char lexicon[] = {
71, 128, 68, 79, 78, 71, 128, 68, 79, 77, 65, 73, 206, 68, 79, 76, 80,
72, 73, 78, 128, 68, 79, 76, 76, 83, 128, 68, 79, 76, 76, 65, 210, 68,
79, 76, 73, 85, 77, 128, 68, 79, 75, 77, 65, 73, 128, 68, 79, 73, 84,
- 128, 68, 79, 71, 128, 68, 79, 199, 68, 79, 69, 211, 68, 79, 68, 69, 75,
- 65, 84, 65, 128, 68, 79, 66, 82, 79, 128, 68, 79, 65, 67, 72, 65, 83, 72,
- 77, 69, 69, 128, 68, 79, 65, 67, 72, 65, 83, 72, 77, 69, 197, 68, 79, 65,
- 128, 68, 79, 45, 79, 128, 68, 77, 128, 68, 205, 68, 76, 85, 128, 68, 76,
- 79, 128, 68, 76, 73, 128, 68, 76, 72, 89, 65, 128, 68, 76, 72, 65, 128,
- 68, 76, 69, 69, 128, 68, 76, 65, 128, 68, 76, 128, 68, 75, 65, 82, 128,
- 68, 75, 65, 210, 68, 74, 69, 82, 86, 73, 128, 68, 74, 69, 82, 86, 128,
- 68, 74, 69, 128, 68, 74, 65, 128, 68, 73, 90, 90, 217, 68, 73, 86, 79,
- 82, 67, 197, 68, 73, 86, 73, 83, 73, 79, 78, 128, 68, 73, 86, 73, 83, 73,
- 79, 206, 68, 73, 86, 73, 78, 65, 84, 73, 79, 78, 128, 68, 73, 86, 73, 68,
- 69, 83, 128, 68, 73, 86, 73, 68, 69, 82, 128, 68, 73, 86, 73, 68, 69,
- 196, 68, 73, 86, 73, 68, 69, 128, 68, 73, 86, 73, 68, 197, 68, 73, 86,
- 69, 82, 71, 69, 78, 67, 69, 128, 68, 73, 84, 84, 207, 68, 73, 83, 84, 79,
- 82, 84, 73, 79, 78, 128, 68, 73, 83, 84, 73, 78, 71, 85, 73, 83, 72, 128,
- 68, 73, 83, 84, 73, 76, 76, 128, 68, 73, 83, 83, 79, 76, 86, 69, 45, 50,
- 128, 68, 73, 83, 83, 79, 76, 86, 69, 128, 68, 73, 83, 80, 69, 82, 83, 73,
- 79, 78, 128, 68, 73, 83, 75, 128, 68, 73, 83, 73, 77, 79, 85, 128, 68,
- 73, 83, 72, 128, 68, 73, 83, 67, 79, 78, 84, 73, 78, 85, 79, 85, 211, 68,
- 73, 83, 195, 68, 73, 83, 65, 80, 80, 79, 73, 78, 84, 69, 196, 68, 73, 83,
- 65, 66, 76, 69, 196, 68, 73, 82, 71, 193, 68, 73, 82, 69, 67, 84, 76,
- 217, 68, 73, 82, 69, 67, 84, 73, 79, 78, 65, 204, 68, 73, 80, 84, 69,
- 128, 68, 73, 80, 80, 69, 82, 128, 68, 73, 80, 76, 79, 85, 78, 128, 68,
- 73, 80, 76, 73, 128, 68, 73, 80, 76, 201, 68, 73, 78, 71, 66, 65, 212,
- 68, 73, 206, 68, 73, 77, 77, 73, 78, 71, 128, 68, 73, 77, 73, 78, 85, 84,
- 73, 79, 78, 45, 51, 128, 68, 73, 77, 73, 78, 85, 84, 73, 79, 78, 45, 50,
- 128, 68, 73, 77, 73, 78, 85, 84, 73, 79, 78, 45, 49, 128, 68, 73, 77, 73,
- 78, 73, 83, 72, 77, 69, 78, 84, 128, 68, 73, 77, 73, 68, 73, 193, 68, 73,
- 77, 69, 78, 83, 73, 79, 78, 65, 204, 68, 73, 77, 69, 78, 83, 73, 79, 206,
- 68, 73, 77, 50, 128, 68, 73, 76, 128, 68, 73, 71, 82, 65, 80, 72, 128,
- 68, 73, 71, 82, 65, 80, 200, 68, 73, 71, 82, 65, 77, 77, 79, 211, 68, 73,
- 71, 82, 65, 77, 77, 193, 68, 73, 71, 82, 65, 205, 68, 73, 71, 79, 82, 71,
- 79, 78, 128, 68, 73, 71, 79, 82, 71, 79, 206, 68, 73, 71, 65, 77, 77, 65,
- 128, 68, 73, 71, 193, 68, 73, 70, 84, 79, 71, 71, 79, 211, 68, 73, 70,
- 79, 78, 73, 65, 83, 128, 68, 73, 70, 70, 73, 67, 85, 76, 84, 217, 68, 73,
- 70, 70, 73, 67, 85, 76, 84, 73, 69, 83, 128, 68, 73, 70, 70, 69, 82, 69,
- 78, 84, 73, 65, 76, 128, 68, 73, 70, 70, 69, 82, 69, 78, 67, 197, 68, 73,
- 70, 65, 84, 128, 68, 73, 69, 83, 73, 83, 128, 68, 73, 69, 83, 73, 211,
- 68, 73, 69, 80, 128, 68, 73, 197, 68, 73, 66, 128, 68, 73, 65, 84, 79,
- 78, 79, 206, 68, 73, 65, 84, 79, 78, 73, 75, 201, 68, 73, 65, 83, 84, 79,
- 76, 201, 68, 73, 65, 77, 79, 78, 68, 83, 128, 68, 73, 65, 77, 79, 78, 68,
- 128, 68, 73, 65, 77, 79, 78, 196, 68, 73, 65, 77, 69, 84, 69, 210, 68,
- 73, 65, 76, 89, 84, 73, 75, 65, 128, 68, 73, 65, 76, 89, 84, 73, 75, 193,
- 68, 73, 65, 76, 69, 67, 84, 45, 208, 68, 73, 65, 71, 79, 78, 65, 76, 128,
- 68, 73, 65, 71, 79, 78, 65, 204, 68, 73, 65, 69, 82, 69, 83, 73, 90, 69,
- 196, 68, 73, 65, 69, 82, 69, 83, 73, 83, 128, 68, 73, 65, 69, 82, 69, 83,
- 73, 211, 68, 72, 79, 85, 128, 68, 72, 79, 79, 128, 68, 72, 79, 128, 68,
- 72, 73, 128, 68, 72, 72, 85, 128, 68, 72, 72, 79, 79, 128, 68, 72, 72,
- 79, 128, 68, 72, 72, 73, 128, 68, 72, 72, 69, 69, 128, 68, 72, 72, 69,
- 128, 68, 72, 72, 65, 128, 68, 72, 69, 69, 128, 68, 72, 65, 82, 77, 65,
- 128, 68, 72, 65, 76, 69, 84, 72, 128, 68, 72, 65, 76, 65, 84, 72, 128,
- 68, 72, 65, 76, 128, 68, 72, 65, 68, 72, 69, 128, 68, 72, 65, 65, 76, 85,
- 128, 68, 72, 65, 65, 128, 68, 72, 65, 128, 68, 69, 90, 200, 68, 69, 89,
- 84, 69, 82, 79, 213, 68, 69, 89, 84, 69, 82, 79, 211, 68, 69, 88, 73, 65,
- 128, 68, 69, 86, 73, 67, 197, 68, 69, 86, 69, 76, 79, 80, 77, 69, 78, 84,
- 128, 68, 69, 85, 78, 71, 128, 68, 69, 83, 203, 68, 69, 83, 73, 71, 78,
- 128, 68, 69, 83, 73, 128, 68, 69, 83, 67, 82, 73, 80, 84, 73, 79, 206,
- 68, 69, 83, 67, 69, 78, 68, 73, 78, 199, 68, 69, 83, 67, 69, 78, 68, 69,
- 82, 128, 68, 69, 82, 69, 84, 45, 72, 73, 68, 69, 84, 128, 68, 69, 82, 69,
- 84, 128, 68, 69, 80, 65, 82, 84, 85, 82, 69, 128, 68, 69, 80, 65, 82, 84,
- 77, 69, 78, 212, 68, 69, 80, 65, 82, 84, 73, 78, 199, 68, 69, 78, 84, 73,
- 83, 84, 82, 217, 68, 69, 78, 84, 65, 204, 68, 69, 78, 79, 77, 73, 78, 65,
- 84, 79, 82, 128, 68, 69, 78, 79, 77, 73, 78, 65, 84, 79, 210, 68, 69, 78,
- 78, 69, 78, 128, 68, 69, 78, 71, 128, 68, 69, 78, 197, 68, 69, 78, 65,
- 82, 73, 85, 211, 68, 69, 76, 84, 65, 128, 68, 69, 76, 84, 193, 68, 69,
- 76, 84, 128, 68, 69, 76, 80, 72, 73, 195, 68, 69, 76, 73, 86, 69, 82,
- 217, 68, 69, 76, 73, 86, 69, 82, 65, 78, 67, 69, 128, 68, 69, 76, 73, 77,
- 73, 84, 69, 82, 128, 68, 69, 76, 73, 77, 73, 84, 69, 210, 68, 69, 76, 73,
- 67, 73, 79, 85, 211, 68, 69, 76, 69, 84, 69, 128, 68, 69, 76, 69, 84,
- 197, 68, 69, 75, 65, 128, 68, 69, 75, 128, 68, 69, 73, 128, 68, 69, 72,
- 73, 128, 68, 69, 71, 82, 69, 197, 68, 69, 70, 73, 78, 73, 84, 73, 79, 78,
- 128, 68, 69, 70, 69, 67, 84, 73, 86, 69, 78, 69, 83, 211, 68, 69, 69, 82,
- 128, 68, 69, 69, 80, 76, 89, 128, 68, 69, 69, 76, 128, 68, 69, 67, 82,
- 69, 83, 67, 69, 78, 68, 79, 128, 68, 69, 67, 82, 69, 65, 83, 69, 128, 68,
- 69, 67, 79, 82, 65, 84, 73, 86, 197, 68, 69, 67, 79, 82, 65, 84, 73, 79,
- 78, 128, 68, 69, 67, 73, 83, 73, 86, 69, 78, 69, 83, 83, 128, 68, 69, 67,
- 73, 77, 65, 204, 68, 69, 67, 73, 68, 85, 79, 85, 211, 68, 69, 67, 69, 77,
- 66, 69, 82, 128, 68, 69, 67, 65, 89, 69, 68, 128, 68, 69, 66, 73, 212,
- 68, 69, 65, 84, 72, 128, 68, 69, 65, 68, 128, 68, 68, 87, 65, 128, 68,
- 68, 85, 88, 128, 68, 68, 85, 84, 128, 68, 68, 85, 82, 88, 128, 68, 68,
- 85, 82, 128, 68, 68, 85, 80, 128, 68, 68, 85, 79, 88, 128, 68, 68, 85,
- 79, 80, 128, 68, 68, 85, 79, 128, 68, 68, 85, 128, 68, 68, 79, 88, 128,
- 68, 68, 79, 84, 128, 68, 68, 79, 80, 128, 68, 68, 79, 65, 128, 68, 68,
- 73, 88, 128, 68, 68, 73, 84, 128, 68, 68, 73, 80, 128, 68, 68, 73, 69,
- 88, 128, 68, 68, 73, 69, 80, 128, 68, 68, 73, 69, 128, 68, 68, 73, 128,
- 68, 68, 72, 85, 128, 68, 68, 72, 79, 128, 68, 68, 72, 73, 128, 68, 68,
- 72, 69, 69, 128, 68, 68, 72, 69, 128, 68, 68, 72, 65, 65, 128, 68, 68,
- 72, 65, 128, 68, 68, 69, 88, 128, 68, 68, 69, 80, 128, 68, 68, 69, 69,
- 128, 68, 68, 69, 128, 68, 68, 68, 72, 65, 128, 68, 68, 68, 65, 128, 68,
- 68, 65, 89, 65, 78, 78, 65, 128, 68, 68, 65, 88, 128, 68, 68, 65, 84,
- 128, 68, 68, 65, 80, 128, 68, 68, 65, 76, 128, 68, 68, 65, 204, 68, 68,
- 65, 72, 65, 76, 128, 68, 68, 65, 72, 65, 204, 68, 68, 65, 65, 128, 68,
- 67, 83, 128, 68, 67, 52, 128, 68, 67, 51, 128, 68, 67, 50, 128, 68, 67,
- 49, 128, 68, 194, 68, 65, 89, 45, 78, 73, 71, 72, 84, 128, 68, 65, 217,
- 68, 65, 86, 73, 89, 65, 78, 73, 128, 68, 65, 86, 73, 68, 128, 68, 65, 84,
- 197, 68, 65, 83, 73, 65, 128, 68, 65, 83, 73, 193, 68, 65, 83, 72, 69,
- 196, 68, 65, 83, 72, 128, 68, 65, 83, 200, 68, 65, 83, 69, 73, 65, 128,
- 68, 65, 82, 84, 128, 68, 65, 82, 75, 69, 78, 73, 78, 71, 128, 68, 65, 82,
- 75, 69, 78, 73, 78, 199, 68, 65, 82, 203, 68, 65, 82, 71, 65, 128, 68,
- 65, 82, 65, 52, 128, 68, 65, 82, 65, 51, 128, 68, 65, 82, 128, 68, 65,
- 80, 45, 80, 82, 65, 205, 68, 65, 80, 45, 80, 73, 201, 68, 65, 80, 45, 77,
- 85, 79, 217, 68, 65, 80, 45, 66, 85, 79, 206, 68, 65, 80, 45, 66, 69,
- 201, 68, 65, 208, 68, 65, 78, 84, 65, 74, 193, 68, 65, 78, 71, 79, 128,
- 68, 65, 78, 71, 128, 68, 65, 78, 199, 68, 65, 78, 68, 65, 128, 68, 65,
- 78, 67, 69, 82, 128, 68, 65, 77, 80, 128, 68, 65, 77, 208, 68, 65, 77,
- 77, 65, 84, 65, 78, 128, 68, 65, 77, 77, 65, 84, 65, 206, 68, 65, 77, 77,
- 65, 128, 68, 65, 77, 77, 193, 68, 65, 77, 65, 82, 85, 128, 68, 65, 76,
- 69, 84, 72, 128, 68, 65, 76, 69, 84, 128, 68, 65, 76, 69, 212, 68, 65,
- 76, 68, 65, 128, 68, 65, 76, 65, 84, 72, 128, 68, 65, 76, 65, 84, 200,
- 68, 65, 76, 65, 84, 128, 68, 65, 73, 82, 128, 68, 65, 73, 78, 71, 128,
- 68, 65, 72, 89, 65, 65, 85, 83, 72, 45, 50, 128, 68, 65, 72, 89, 65, 65,
- 85, 83, 72, 128, 68, 65, 71, 83, 128, 68, 65, 71, 71, 69, 82, 128, 68,
- 65, 71, 71, 69, 210, 68, 65, 71, 69, 83, 72, 128, 68, 65, 71, 69, 83,
- 200, 68, 65, 71, 66, 65, 83, 73, 78, 78, 65, 128, 68, 65, 71, 65, 218,
- 68, 65, 71, 65, 76, 71, 65, 128, 68, 65, 199, 68, 65, 69, 78, 71, 128,
- 68, 65, 69, 199, 68, 65, 68, 128, 68, 65, 196, 68, 65, 65, 83, 85, 128,
- 68, 65, 65, 68, 72, 85, 128, 68, 48, 54, 55, 72, 128, 68, 48, 54, 55, 71,
- 128, 68, 48, 54, 55, 70, 128, 68, 48, 54, 55, 69, 128, 68, 48, 54, 55,
- 68, 128, 68, 48, 54, 55, 67, 128, 68, 48, 54, 55, 66, 128, 68, 48, 54,
- 55, 65, 128, 68, 48, 54, 55, 128, 68, 48, 54, 54, 128, 68, 48, 54, 53,
- 128, 68, 48, 54, 52, 128, 68, 48, 54, 51, 128, 68, 48, 54, 50, 128, 68,
- 48, 54, 49, 128, 68, 48, 54, 48, 128, 68, 48, 53, 57, 128, 68, 48, 53,
- 56, 128, 68, 48, 53, 55, 128, 68, 48, 53, 54, 128, 68, 48, 53, 53, 128,
- 68, 48, 53, 52, 65, 128, 68, 48, 53, 52, 128, 68, 48, 53, 51, 128, 68,
- 48, 53, 50, 65, 128, 68, 48, 53, 50, 128, 68, 48, 53, 49, 128, 68, 48,
- 53, 48, 73, 128, 68, 48, 53, 48, 72, 128, 68, 48, 53, 48, 71, 128, 68,
- 48, 53, 48, 70, 128, 68, 48, 53, 48, 69, 128, 68, 48, 53, 48, 68, 128,
- 68, 48, 53, 48, 67, 128, 68, 48, 53, 48, 66, 128, 68, 48, 53, 48, 65,
- 128, 68, 48, 53, 48, 128, 68, 48, 52, 57, 128, 68, 48, 52, 56, 65, 128,
- 68, 48, 52, 56, 128, 68, 48, 52, 55, 128, 68, 48, 52, 54, 65, 128, 68,
- 48, 52, 54, 128, 68, 48, 52, 53, 128, 68, 48, 52, 52, 128, 68, 48, 52,
- 51, 128, 68, 48, 52, 50, 128, 68, 48, 52, 49, 128, 68, 48, 52, 48, 128,
- 68, 48, 51, 57, 128, 68, 48, 51, 56, 128, 68, 48, 51, 55, 128, 68, 48,
- 51, 54, 128, 68, 48, 51, 53, 128, 68, 48, 51, 52, 65, 128, 68, 48, 51,
- 52, 128, 68, 48, 51, 51, 128, 68, 48, 51, 50, 128, 68, 48, 51, 49, 65,
- 128, 68, 48, 51, 49, 128, 68, 48, 51, 48, 128, 68, 48, 50, 57, 128, 68,
- 48, 50, 56, 128, 68, 48, 50, 55, 65, 128, 68, 48, 50, 55, 128, 68, 48,
- 50, 54, 128, 68, 48, 50, 53, 128, 68, 48, 50, 52, 128, 68, 48, 50, 51,
- 128, 68, 48, 50, 50, 128, 68, 48, 50, 49, 128, 68, 48, 50, 48, 128, 68,
- 48, 49, 57, 128, 68, 48, 49, 56, 128, 68, 48, 49, 55, 128, 68, 48, 49,
- 54, 128, 68, 48, 49, 53, 128, 68, 48, 49, 52, 128, 68, 48, 49, 51, 128,
- 68, 48, 49, 50, 128, 68, 48, 49, 49, 128, 68, 48, 49, 48, 128, 68, 48,
- 48, 57, 128, 68, 48, 48, 56, 65, 128, 68, 48, 48, 56, 128, 68, 48, 48,
- 55, 128, 68, 48, 48, 54, 128, 68, 48, 48, 53, 128, 68, 48, 48, 52, 128,
- 68, 48, 48, 51, 128, 68, 48, 48, 50, 128, 68, 48, 48, 49, 128, 67, 89,
- 88, 128, 67, 89, 84, 128, 67, 89, 82, 88, 128, 67, 89, 82, 69, 78, 65,
- 73, 195, 67, 89, 82, 128, 67, 89, 80, 82, 73, 79, 212, 67, 89, 80, 69,
- 82, 85, 83, 128, 67, 89, 80, 128, 67, 89, 76, 73, 78, 68, 82, 73, 67, 73,
- 84, 89, 128, 67, 89, 67, 76, 79, 78, 69, 128, 67, 89, 65, 128, 67, 89,
- 128, 67, 87, 79, 79, 128, 67, 87, 79, 128, 67, 87, 73, 73, 128, 67, 87,
- 73, 128, 67, 87, 69, 79, 82, 84, 72, 128, 67, 87, 69, 128, 67, 87, 65,
- 65, 128, 67, 85, 88, 128, 67, 85, 85, 128, 67, 85, 212, 67, 85, 83, 84,
- 79, 77, 83, 128, 67, 85, 83, 84, 79, 77, 69, 210, 67, 85, 83, 84, 65, 82,
- 68, 128, 67, 85, 82, 88, 128, 67, 85, 82, 86, 73, 78, 199, 67, 85, 82,
- 86, 69, 196, 67, 85, 82, 86, 69, 128, 67, 85, 82, 86, 197, 67, 85, 82,
- 83, 73, 86, 197, 67, 85, 82, 82, 217, 67, 85, 82, 82, 69, 78, 84, 128,
- 67, 85, 82, 82, 69, 78, 212, 67, 85, 82, 76, 217, 67, 85, 82, 76, 128,
- 67, 85, 82, 128, 67, 85, 80, 128, 67, 85, 79, 88, 128, 67, 85, 79, 80,
- 128, 67, 85, 79, 128, 67, 85, 205, 67, 85, 66, 69, 68, 128, 67, 85, 66,
- 197, 67, 85, 65, 84, 82, 73, 76, 76, 79, 128, 67, 85, 65, 84, 82, 73, 76,
- 76, 207, 67, 85, 128, 67, 83, 73, 128, 67, 82, 89, 83, 84, 65, 204, 67,
- 82, 89, 80, 84, 79, 71, 82, 65, 77, 77, 73, 195, 67, 82, 89, 73, 78, 199,
- 67, 82, 85, 90, 69, 73, 82, 207, 67, 82, 85, 67, 73, 66, 76, 69, 45, 53,
- 128, 67, 82, 85, 67, 73, 66, 76, 69, 45, 52, 128, 67, 82, 85, 67, 73, 66,
- 76, 69, 45, 51, 128, 67, 82, 85, 67, 73, 66, 76, 69, 45, 50, 128, 67, 82,
- 85, 67, 73, 66, 76, 69, 128, 67, 82, 79, 87, 78, 128, 67, 82, 79, 83, 83,
- 73, 78, 71, 128, 67, 82, 79, 83, 83, 73, 78, 199, 67, 82, 79, 83, 83, 72,
- 65, 84, 67, 200, 67, 82, 79, 83, 83, 69, 68, 45, 84, 65, 73, 76, 128, 67,
- 82, 79, 83, 83, 69, 196, 67, 82, 79, 83, 83, 66, 79, 78, 69, 83, 128, 67,
- 82, 79, 83, 83, 128, 67, 82, 79, 83, 211, 67, 82, 79, 80, 128, 67, 82,
- 79, 73, 88, 128, 67, 82, 79, 67, 85, 211, 67, 82, 79, 67, 79, 68, 73, 76,
- 69, 128, 67, 82, 69, 83, 67, 69, 78, 84, 128, 67, 82, 69, 83, 67, 69, 78,
- 212, 67, 82, 69, 68, 73, 212, 67, 82, 69, 65, 84, 73, 86, 197, 67, 82,
- 69, 65, 77, 128, 67, 82, 65, 67, 75, 69, 82, 128, 67, 82, 128, 67, 79,
- 88, 128, 67, 79, 87, 128, 67, 79, 215, 67, 79, 86, 69, 82, 128, 67, 79,
- 85, 80, 76, 197, 67, 79, 85, 78, 84, 73, 78, 199, 67, 79, 85, 78, 84, 69,
- 82, 83, 73, 78, 75, 128, 67, 79, 85, 78, 84, 69, 82, 66, 79, 82, 69, 128,
- 67, 79, 85, 78, 67, 73, 204, 67, 79, 84, 128, 67, 79, 82, 82, 69, 83, 80,
- 79, 78, 68, 211, 67, 79, 82, 82, 69, 67, 84, 128, 67, 79, 82, 80, 83, 69,
- 128, 67, 79, 82, 80, 79, 82, 65, 84, 73, 79, 78, 128, 67, 79, 82, 79, 78,
- 73, 83, 128, 67, 79, 82, 78, 69, 82, 83, 128, 67, 79, 82, 78, 69, 82,
- 128, 67, 79, 82, 78, 69, 210, 67, 79, 80, 89, 82, 73, 71, 72, 84, 128,
- 67, 79, 80, 89, 82, 73, 71, 72, 212, 67, 79, 80, 89, 128, 67, 79, 80, 82,
- 79, 68, 85, 67, 84, 128, 67, 79, 80, 80, 69, 82, 45, 50, 128, 67, 79, 80,
- 80, 69, 82, 128, 67, 79, 80, 128, 67, 79, 79, 76, 128, 67, 79, 79, 75,
- 73, 78, 71, 128, 67, 79, 79, 75, 73, 69, 128, 67, 79, 79, 75, 69, 196,
- 67, 79, 79, 128, 67, 79, 78, 86, 69, 82, 71, 73, 78, 199, 67, 79, 78, 86,
- 69, 78, 73, 69, 78, 67, 197, 67, 79, 78, 84, 82, 79, 76, 128, 67, 79, 78,
- 84, 82, 79, 204, 67, 79, 78, 84, 82, 65, 82, 73, 69, 84, 89, 128, 67, 79,
- 78, 84, 82, 65, 67, 84, 73, 79, 78, 128, 67, 79, 78, 84, 79, 85, 82, 69,
- 196, 67, 79, 78, 84, 79, 85, 210, 67, 79, 78, 84, 69, 78, 84, 73, 79, 78,
- 128, 67, 79, 78, 84, 69, 77, 80, 76, 65, 84, 73, 79, 78, 128, 67, 79, 78,
- 84, 65, 73, 78, 211, 67, 79, 78, 84, 65, 73, 78, 73, 78, 199, 67, 79, 78,
- 84, 65, 73, 206, 67, 79, 78, 84, 65, 67, 84, 128, 67, 79, 78, 83, 84, 82,
- 85, 67, 84, 73, 79, 206, 67, 79, 78, 83, 84, 65, 78, 84, 128, 67, 79, 78,
- 83, 84, 65, 78, 212, 67, 79, 78, 83, 84, 65, 78, 67, 89, 128, 67, 79, 78,
- 83, 69, 67, 85, 84, 73, 86, 197, 67, 79, 78, 74, 85, 78, 67, 84, 73, 79,
- 78, 128, 67, 79, 78, 74, 85, 71, 65, 84, 197, 67, 79, 78, 74, 79, 73, 78,
- 73, 78, 199, 67, 79, 78, 73, 67, 65, 204, 67, 79, 78, 71, 82, 85, 69, 78,
+ 128, 68, 79, 73, 128, 68, 79, 71, 128, 68, 79, 199, 68, 79, 69, 211, 68,
+ 79, 68, 69, 75, 65, 84, 65, 128, 68, 79, 67, 85, 77, 69, 78, 84, 128, 68,
+ 79, 67, 85, 77, 69, 78, 212, 68, 79, 66, 82, 79, 128, 68, 79, 65, 67, 72,
+ 65, 83, 72, 77, 69, 69, 128, 68, 79, 65, 67, 72, 65, 83, 72, 77, 69, 197,
+ 68, 79, 65, 128, 68, 79, 45, 79, 128, 68, 77, 128, 68, 205, 68, 76, 85,
+ 128, 68, 76, 79, 128, 68, 76, 73, 128, 68, 76, 72, 89, 65, 128, 68, 76,
+ 72, 65, 128, 68, 76, 69, 69, 128, 68, 76, 65, 128, 68, 76, 128, 68, 75,
+ 65, 82, 128, 68, 75, 65, 210, 68, 74, 69, 82, 86, 73, 128, 68, 74, 69,
+ 82, 86, 128, 68, 74, 69, 128, 68, 74, 65, 128, 68, 73, 90, 90, 217, 68,
+ 73, 86, 79, 82, 67, 197, 68, 73, 86, 73, 83, 73, 79, 78, 128, 68, 73, 86,
+ 73, 83, 73, 79, 206, 68, 73, 86, 73, 78, 65, 84, 73, 79, 78, 128, 68, 73,
+ 86, 73, 68, 69, 83, 128, 68, 73, 86, 73, 68, 69, 82, 83, 128, 68, 73, 86,
+ 73, 68, 69, 82, 128, 68, 73, 86, 73, 68, 69, 196, 68, 73, 86, 73, 68, 69,
+ 128, 68, 73, 86, 73, 68, 197, 68, 73, 86, 69, 82, 71, 69, 78, 67, 69,
+ 128, 68, 73, 84, 84, 207, 68, 73, 83, 84, 79, 82, 84, 73, 79, 78, 128,
+ 68, 73, 83, 84, 73, 78, 71, 85, 73, 83, 72, 128, 68, 73, 83, 84, 73, 76,
+ 76, 128, 68, 73, 83, 83, 79, 76, 86, 69, 45, 50, 128, 68, 73, 83, 83, 79,
+ 76, 86, 69, 128, 68, 73, 83, 80, 69, 82, 83, 73, 79, 78, 128, 68, 73, 83,
+ 75, 128, 68, 73, 83, 73, 77, 79, 85, 128, 68, 73, 83, 72, 128, 68, 73,
+ 83, 67, 79, 78, 84, 73, 78, 85, 79, 85, 211, 68, 73, 83, 195, 68, 73, 83,
+ 65, 80, 80, 79, 73, 78, 84, 69, 196, 68, 73, 83, 65, 66, 76, 69, 196, 68,
+ 73, 82, 71, 193, 68, 73, 82, 69, 67, 84, 76, 217, 68, 73, 82, 69, 67, 84,
+ 73, 79, 78, 65, 204, 68, 73, 82, 69, 67, 84, 73, 79, 206, 68, 73, 80, 84,
+ 69, 128, 68, 73, 80, 80, 69, 82, 128, 68, 73, 80, 76, 79, 85, 78, 128,
+ 68, 73, 80, 76, 73, 128, 68, 73, 80, 76, 201, 68, 73, 78, 71, 66, 65,
+ 212, 68, 73, 206, 68, 73, 77, 77, 73, 78, 71, 128, 68, 73, 77, 73, 78,
+ 85, 84, 73, 79, 78, 45, 51, 128, 68, 73, 77, 73, 78, 85, 84, 73, 79, 78,
+ 45, 50, 128, 68, 73, 77, 73, 78, 85, 84, 73, 79, 78, 45, 49, 128, 68, 73,
+ 77, 73, 78, 73, 83, 72, 77, 69, 78, 84, 128, 68, 73, 77, 73, 68, 73, 193,
+ 68, 73, 77, 69, 78, 83, 73, 79, 78, 65, 204, 68, 73, 77, 69, 78, 83, 73,
+ 79, 206, 68, 73, 77, 50, 128, 68, 73, 77, 178, 68, 73, 76, 128, 68, 73,
+ 71, 82, 65, 80, 72, 128, 68, 73, 71, 82, 65, 80, 200, 68, 73, 71, 82, 65,
+ 77, 77, 79, 211, 68, 73, 71, 82, 65, 77, 77, 193, 68, 73, 71, 82, 65,
+ 205, 68, 73, 71, 79, 82, 71, 79, 78, 128, 68, 73, 71, 79, 82, 71, 79,
+ 206, 68, 73, 71, 73, 84, 83, 128, 68, 73, 71, 65, 77, 77, 65, 128, 68,
+ 73, 71, 193, 68, 73, 70, 84, 79, 71, 71, 79, 211, 68, 73, 70, 79, 78, 73,
+ 65, 83, 128, 68, 73, 70, 70, 73, 67, 85, 76, 84, 217, 68, 73, 70, 70, 73,
+ 67, 85, 76, 84, 73, 69, 83, 128, 68, 73, 70, 70, 69, 82, 69, 78, 84, 73,
+ 65, 76, 128, 68, 73, 70, 70, 69, 82, 69, 78, 67, 197, 68, 73, 70, 65, 84,
+ 128, 68, 73, 69, 83, 73, 83, 128, 68, 73, 69, 83, 73, 211, 68, 73, 69,
+ 83, 69, 204, 68, 73, 69, 80, 128, 68, 73, 197, 68, 73, 66, 128, 68, 73,
+ 65, 84, 79, 78, 79, 206, 68, 73, 65, 84, 79, 78, 73, 75, 201, 68, 73, 65,
+ 83, 84, 79, 76, 201, 68, 73, 65, 77, 79, 78, 68, 83, 128, 68, 73, 65, 77,
+ 79, 78, 68, 128, 68, 73, 65, 77, 79, 78, 196, 68, 73, 65, 77, 69, 84, 69,
+ 210, 68, 73, 65, 76, 89, 84, 73, 75, 65, 128, 68, 73, 65, 76, 89, 84, 73,
+ 75, 193, 68, 73, 65, 76, 69, 67, 84, 45, 208, 68, 73, 65, 71, 79, 78, 65,
+ 76, 128, 68, 73, 65, 69, 82, 69, 83, 73, 90, 69, 196, 68, 73, 65, 69, 82,
+ 69, 83, 73, 83, 45, 82, 73, 78, 71, 128, 68, 73, 65, 69, 82, 69, 83, 73,
+ 83, 128, 68, 73, 65, 69, 82, 69, 83, 73, 211, 68, 72, 79, 85, 128, 68,
+ 72, 79, 79, 128, 68, 72, 79, 128, 68, 72, 73, 73, 128, 68, 72, 73, 128,
+ 68, 72, 72, 85, 128, 68, 72, 72, 79, 79, 128, 68, 72, 72, 79, 128, 68,
+ 72, 72, 73, 128, 68, 72, 72, 69, 69, 128, 68, 72, 72, 69, 128, 68, 72,
+ 72, 65, 128, 68, 72, 69, 69, 128, 68, 72, 65, 82, 77, 65, 128, 68, 72,
+ 65, 77, 69, 68, 72, 128, 68, 72, 65, 76, 69, 84, 72, 128, 68, 72, 65, 76,
+ 65, 84, 72, 128, 68, 72, 65, 76, 128, 68, 72, 65, 68, 72, 69, 128, 68,
+ 72, 65, 65, 76, 85, 128, 68, 72, 65, 65, 128, 68, 72, 65, 128, 68, 69,
+ 90, 200, 68, 69, 89, 84, 69, 82, 79, 213, 68, 69, 89, 84, 69, 82, 79,
+ 211, 68, 69, 88, 73, 65, 128, 68, 69, 86, 73, 67, 197, 68, 69, 86, 69,
+ 76, 79, 80, 77, 69, 78, 84, 128, 68, 69, 85, 78, 71, 128, 68, 69, 83, 75,
+ 84, 79, 208, 68, 69, 83, 203, 68, 69, 83, 73, 71, 78, 128, 68, 69, 83,
+ 73, 128, 68, 69, 83, 69, 82, 84, 128, 68, 69, 83, 69, 82, 212, 68, 69,
+ 83, 69, 82, 69, 212, 68, 69, 83, 67, 82, 73, 80, 84, 73, 79, 206, 68, 69,
+ 83, 67, 69, 78, 68, 73, 78, 199, 68, 69, 83, 67, 69, 78, 68, 69, 82, 128,
+ 68, 69, 82, 69, 84, 45, 72, 73, 68, 69, 84, 128, 68, 69, 82, 69, 84, 128,
+ 68, 69, 82, 69, 76, 73, 67, 212, 68, 69, 80, 84, 72, 128, 68, 69, 80, 65,
+ 82, 84, 85, 82, 69, 128, 68, 69, 80, 65, 82, 84, 77, 69, 78, 212, 68, 69,
+ 80, 65, 82, 84, 73, 78, 199, 68, 69, 78, 84, 73, 83, 84, 82, 217, 68, 69,
+ 78, 84, 65, 204, 68, 69, 78, 79, 77, 73, 78, 65, 84, 79, 82, 128, 68, 69,
+ 78, 79, 77, 73, 78, 65, 84, 79, 210, 68, 69, 78, 78, 69, 78, 128, 68, 69,
+ 78, 71, 128, 68, 69, 78, 197, 68, 69, 78, 65, 82, 73, 85, 211, 68, 69,
+ 76, 84, 65, 128, 68, 69, 76, 84, 193, 68, 69, 76, 84, 128, 68, 69, 76,
+ 80, 72, 73, 195, 68, 69, 76, 73, 86, 69, 82, 217, 68, 69, 76, 73, 86, 69,
+ 82, 65, 78, 67, 69, 128, 68, 69, 76, 73, 77, 73, 84, 69, 82, 128, 68, 69,
+ 76, 73, 77, 73, 84, 69, 210, 68, 69, 76, 73, 67, 73, 79, 85, 211, 68, 69,
+ 76, 69, 84, 69, 128, 68, 69, 76, 69, 84, 197, 68, 69, 75, 65, 128, 68,
+ 69, 75, 128, 68, 69, 73, 128, 68, 69, 72, 73, 128, 68, 69, 71, 82, 69,
+ 69, 83, 128, 68, 69, 71, 82, 69, 197, 68, 69, 70, 73, 78, 73, 84, 73, 79,
+ 78, 128, 68, 69, 70, 69, 67, 84, 73, 86, 69, 78, 69, 83, 211, 68, 69, 69,
+ 82, 128, 68, 69, 69, 80, 76, 89, 128, 68, 69, 69, 76, 128, 68, 69, 67,
+ 82, 69, 83, 67, 69, 78, 68, 79, 128, 68, 69, 67, 82, 69, 65, 83, 69, 128,
+ 68, 69, 67, 82, 69, 65, 83, 197, 68, 69, 67, 79, 82, 65, 84, 73, 86, 197,
+ 68, 69, 67, 79, 82, 65, 84, 73, 79, 78, 128, 68, 69, 67, 73, 83, 73, 86,
+ 69, 78, 69, 83, 83, 128, 68, 69, 67, 73, 77, 65, 204, 68, 69, 67, 73, 68,
+ 85, 79, 85, 211, 68, 69, 67, 69, 77, 66, 69, 82, 128, 68, 69, 67, 65, 89,
+ 69, 68, 128, 68, 69, 66, 73, 212, 68, 69, 65, 84, 72, 128, 68, 69, 65,
+ 68, 128, 68, 68, 87, 65, 128, 68, 68, 85, 88, 128, 68, 68, 85, 84, 128,
+ 68, 68, 85, 82, 88, 128, 68, 68, 85, 82, 128, 68, 68, 85, 80, 128, 68,
+ 68, 85, 79, 88, 128, 68, 68, 85, 79, 80, 128, 68, 68, 85, 79, 128, 68,
+ 68, 85, 128, 68, 68, 79, 88, 128, 68, 68, 79, 84, 128, 68, 68, 79, 80,
+ 128, 68, 68, 79, 65, 128, 68, 68, 73, 88, 128, 68, 68, 73, 84, 128, 68,
+ 68, 73, 80, 128, 68, 68, 73, 69, 88, 128, 68, 68, 73, 69, 80, 128, 68,
+ 68, 73, 69, 128, 68, 68, 73, 128, 68, 68, 72, 85, 128, 68, 68, 72, 79,
+ 128, 68, 68, 72, 73, 128, 68, 68, 72, 69, 69, 128, 68, 68, 72, 69, 128,
+ 68, 68, 72, 65, 65, 128, 68, 68, 72, 65, 128, 68, 68, 69, 88, 128, 68,
+ 68, 69, 80, 128, 68, 68, 69, 69, 128, 68, 68, 69, 128, 68, 68, 68, 72,
+ 65, 128, 68, 68, 68, 65, 128, 68, 68, 65, 89, 65, 78, 78, 65, 128, 68,
+ 68, 65, 88, 128, 68, 68, 65, 84, 128, 68, 68, 65, 80, 128, 68, 68, 65,
+ 76, 128, 68, 68, 65, 204, 68, 68, 65, 72, 65, 76, 128, 68, 68, 65, 72,
+ 65, 204, 68, 68, 65, 65, 128, 68, 67, 83, 128, 68, 67, 72, 69, 128, 68,
+ 67, 52, 128, 68, 67, 51, 128, 68, 67, 50, 128, 68, 67, 49, 128, 68, 194,
+ 68, 65, 89, 45, 78, 73, 71, 72, 84, 128, 68, 65, 217, 68, 65, 87, 66,
+ 128, 68, 65, 86, 73, 89, 65, 78, 73, 128, 68, 65, 86, 73, 68, 128, 68,
+ 65, 84, 197, 68, 65, 83, 73, 65, 128, 68, 65, 83, 73, 193, 68, 65, 83,
+ 72, 69, 196, 68, 65, 83, 72, 128, 68, 65, 83, 200, 68, 65, 83, 69, 73,
+ 65, 128, 68, 65, 82, 84, 128, 68, 65, 82, 75, 69, 78, 73, 78, 71, 128,
+ 68, 65, 82, 75, 69, 78, 73, 78, 199, 68, 65, 82, 203, 68, 65, 82, 71, 65,
+ 128, 68, 65, 82, 65, 52, 128, 68, 65, 82, 65, 51, 128, 68, 65, 82, 128,
+ 68, 65, 80, 45, 80, 82, 65, 205, 68, 65, 80, 45, 80, 73, 201, 68, 65, 80,
+ 45, 77, 85, 79, 217, 68, 65, 80, 45, 66, 85, 79, 206, 68, 65, 80, 45, 66,
+ 69, 201, 68, 65, 208, 68, 65, 78, 84, 65, 74, 193, 68, 65, 78, 71, 79,
+ 128, 68, 65, 78, 71, 128, 68, 65, 78, 199, 68, 65, 78, 68, 65, 128, 68,
+ 65, 78, 67, 69, 82, 128, 68, 65, 77, 80, 128, 68, 65, 77, 208, 68, 65,
+ 77, 77, 65, 84, 65, 78, 128, 68, 65, 77, 77, 65, 84, 65, 206, 68, 65, 77,
+ 77, 65, 128, 68, 65, 77, 77, 193, 68, 65, 77, 65, 82, 85, 128, 68, 65,
+ 76, 69, 84, 72, 45, 82, 69, 83, 72, 128, 68, 65, 76, 69, 84, 72, 128, 68,
+ 65, 76, 69, 84, 128, 68, 65, 76, 69, 212, 68, 65, 76, 68, 65, 128, 68,
+ 65, 76, 65, 84, 72, 128, 68, 65, 76, 65, 84, 200, 68, 65, 76, 65, 84,
+ 128, 68, 65, 73, 82, 128, 68, 65, 73, 78, 71, 128, 68, 65, 73, 128, 68,
+ 65, 72, 89, 65, 65, 85, 83, 72, 45, 50, 128, 68, 65, 72, 89, 65, 65, 85,
+ 83, 72, 128, 68, 65, 71, 83, 128, 68, 65, 71, 71, 69, 82, 128, 68, 65,
+ 71, 71, 69, 210, 68, 65, 71, 69, 83, 72, 128, 68, 65, 71, 69, 83, 200,
+ 68, 65, 71, 66, 65, 83, 73, 78, 78, 65, 128, 68, 65, 71, 65, 218, 68, 65,
+ 71, 65, 76, 71, 65, 128, 68, 65, 71, 51, 128, 68, 65, 199, 68, 65, 69,
+ 78, 71, 128, 68, 65, 69, 199, 68, 65, 68, 128, 68, 65, 196, 68, 65, 65,
+ 83, 85, 128, 68, 65, 65, 68, 72, 85, 128, 68, 48, 54, 55, 72, 128, 68,
+ 48, 54, 55, 71, 128, 68, 48, 54, 55, 70, 128, 68, 48, 54, 55, 69, 128,
+ 68, 48, 54, 55, 68, 128, 68, 48, 54, 55, 67, 128, 68, 48, 54, 55, 66,
+ 128, 68, 48, 54, 55, 65, 128, 68, 48, 54, 55, 128, 68, 48, 54, 54, 128,
+ 68, 48, 54, 53, 128, 68, 48, 54, 52, 128, 68, 48, 54, 51, 128, 68, 48,
+ 54, 50, 128, 68, 48, 54, 49, 128, 68, 48, 54, 48, 128, 68, 48, 53, 57,
+ 128, 68, 48, 53, 56, 128, 68, 48, 53, 55, 128, 68, 48, 53, 54, 128, 68,
+ 48, 53, 53, 128, 68, 48, 53, 52, 65, 128, 68, 48, 53, 52, 128, 68, 48,
+ 53, 51, 128, 68, 48, 53, 50, 65, 128, 68, 48, 53, 50, 128, 68, 48, 53,
+ 49, 128, 68, 48, 53, 48, 73, 128, 68, 48, 53, 48, 72, 128, 68, 48, 53,
+ 48, 71, 128, 68, 48, 53, 48, 70, 128, 68, 48, 53, 48, 69, 128, 68, 48,
+ 53, 48, 68, 128, 68, 48, 53, 48, 67, 128, 68, 48, 53, 48, 66, 128, 68,
+ 48, 53, 48, 65, 128, 68, 48, 53, 48, 128, 68, 48, 52, 57, 128, 68, 48,
+ 52, 56, 65, 128, 68, 48, 52, 56, 128, 68, 48, 52, 55, 128, 68, 48, 52,
+ 54, 65, 128, 68, 48, 52, 54, 128, 68, 48, 52, 53, 128, 68, 48, 52, 52,
+ 128, 68, 48, 52, 51, 128, 68, 48, 52, 50, 128, 68, 48, 52, 49, 128, 68,
+ 48, 52, 48, 128, 68, 48, 51, 57, 128, 68, 48, 51, 56, 128, 68, 48, 51,
+ 55, 128, 68, 48, 51, 54, 128, 68, 48, 51, 53, 128, 68, 48, 51, 52, 65,
+ 128, 68, 48, 51, 52, 128, 68, 48, 51, 51, 128, 68, 48, 51, 50, 128, 68,
+ 48, 51, 49, 65, 128, 68, 48, 51, 49, 128, 68, 48, 51, 48, 128, 68, 48,
+ 50, 57, 128, 68, 48, 50, 56, 128, 68, 48, 50, 55, 65, 128, 68, 48, 50,
+ 55, 128, 68, 48, 50, 54, 128, 68, 48, 50, 53, 128, 68, 48, 50, 52, 128,
+ 68, 48, 50, 51, 128, 68, 48, 50, 50, 128, 68, 48, 50, 49, 128, 68, 48,
+ 50, 48, 128, 68, 48, 49, 57, 128, 68, 48, 49, 56, 128, 68, 48, 49, 55,
+ 128, 68, 48, 49, 54, 128, 68, 48, 49, 53, 128, 68, 48, 49, 52, 128, 68,
+ 48, 49, 51, 128, 68, 48, 49, 50, 128, 68, 48, 49, 49, 128, 68, 48, 49,
+ 48, 128, 68, 48, 48, 57, 128, 68, 48, 48, 56, 65, 128, 68, 48, 48, 56,
+ 128, 68, 48, 48, 55, 128, 68, 48, 48, 54, 128, 68, 48, 48, 53, 128, 68,
+ 48, 48, 52, 128, 68, 48, 48, 51, 128, 68, 48, 48, 50, 128, 68, 48, 48,
+ 49, 128, 67, 89, 88, 128, 67, 89, 84, 128, 67, 89, 82, 88, 128, 67, 89,
+ 82, 69, 78, 65, 73, 195, 67, 89, 82, 128, 67, 89, 80, 82, 73, 79, 212,
+ 67, 89, 80, 69, 82, 85, 83, 128, 67, 89, 80, 128, 67, 89, 76, 73, 78, 68,
+ 82, 73, 67, 73, 84, 89, 128, 67, 89, 67, 76, 79, 78, 69, 128, 67, 89, 65,
+ 89, 128, 67, 89, 65, 87, 128, 67, 89, 65, 128, 67, 87, 79, 79, 128, 67,
+ 87, 79, 128, 67, 87, 73, 73, 128, 67, 87, 73, 128, 67, 87, 69, 79, 82,
+ 84, 72, 128, 67, 87, 69, 128, 67, 87, 65, 65, 128, 67, 85, 88, 128, 67,
+ 85, 85, 128, 67, 85, 212, 67, 85, 83, 84, 79, 77, 83, 128, 67, 85, 83,
+ 84, 79, 77, 69, 210, 67, 85, 83, 84, 65, 82, 68, 128, 67, 85, 83, 80,
+ 128, 67, 85, 82, 88, 128, 67, 85, 82, 86, 73, 78, 199, 67, 85, 82, 86,
+ 69, 68, 128, 67, 85, 82, 86, 69, 196, 67, 85, 82, 86, 69, 128, 67, 85,
+ 82, 86, 197, 67, 85, 82, 82, 217, 67, 85, 82, 82, 69, 78, 84, 128, 67,
+ 85, 82, 82, 69, 78, 212, 67, 85, 82, 76, 217, 67, 85, 82, 76, 128, 67,
+ 85, 82, 128, 67, 85, 80, 80, 69, 68, 128, 67, 85, 80, 80, 69, 196, 67,
+ 85, 79, 88, 128, 67, 85, 79, 80, 128, 67, 85, 79, 128, 67, 85, 205, 67,
+ 85, 66, 69, 68, 128, 67, 85, 66, 197, 67, 85, 65, 84, 82, 73, 76, 76, 79,
+ 128, 67, 85, 65, 84, 82, 73, 76, 76, 207, 67, 85, 65, 205, 67, 85, 128,
+ 67, 83, 73, 128, 67, 82, 89, 83, 84, 65, 204, 67, 82, 89, 80, 84, 79, 71,
+ 82, 65, 77, 77, 73, 195, 67, 82, 89, 73, 78, 199, 67, 82, 85, 90, 69, 73,
+ 82, 207, 67, 82, 85, 67, 73, 70, 79, 82, 205, 67, 82, 85, 67, 73, 66, 76,
+ 69, 45, 53, 128, 67, 82, 85, 67, 73, 66, 76, 69, 45, 52, 128, 67, 82, 85,
+ 67, 73, 66, 76, 69, 45, 51, 128, 67, 82, 85, 67, 73, 66, 76, 69, 45, 50,
+ 128, 67, 82, 85, 67, 73, 66, 76, 69, 128, 67, 82, 79, 87, 78, 128, 67,
+ 82, 79, 83, 83, 73, 78, 71, 128, 67, 82, 79, 83, 83, 73, 78, 199, 67, 82,
+ 79, 83, 83, 72, 65, 84, 67, 200, 67, 82, 79, 83, 83, 69, 68, 45, 84, 65,
+ 73, 76, 128, 67, 82, 79, 83, 83, 69, 68, 128, 67, 82, 79, 83, 83, 69,
+ 196, 67, 82, 79, 83, 83, 66, 79, 78, 69, 83, 128, 67, 82, 79, 83, 83,
+ 128, 67, 82, 79, 83, 211, 67, 82, 79, 80, 128, 67, 82, 79, 73, 88, 128,
+ 67, 82, 79, 67, 85, 211, 67, 82, 79, 67, 79, 68, 73, 76, 69, 128, 67, 82,
+ 73, 67, 75, 69, 212, 67, 82, 69, 83, 67, 69, 78, 84, 83, 128, 67, 82, 69,
+ 83, 67, 69, 78, 84, 128, 67, 82, 69, 83, 67, 69, 78, 212, 67, 82, 69, 68,
+ 73, 212, 67, 82, 69, 65, 84, 73, 86, 197, 67, 82, 69, 65, 77, 128, 67,
+ 82, 65, 89, 79, 78, 128, 67, 82, 65, 67, 75, 69, 82, 128, 67, 82, 65, 66,
+ 128, 67, 82, 128, 67, 79, 88, 128, 67, 79, 87, 128, 67, 79, 215, 67, 79,
+ 86, 69, 82, 128, 67, 79, 85, 80, 76, 197, 67, 79, 85, 78, 84, 73, 78,
+ 199, 67, 79, 85, 78, 84, 69, 82, 83, 73, 78, 75, 128, 67, 79, 85, 78, 84,
+ 69, 82, 66, 79, 82, 69, 128, 67, 79, 85, 78, 67, 73, 204, 67, 79, 85, 67,
+ 200, 67, 79, 84, 128, 67, 79, 82, 82, 69, 83, 80, 79, 78, 68, 211, 67,
+ 79, 82, 82, 69, 67, 84, 128, 67, 79, 82, 80, 83, 69, 128, 67, 79, 82, 80,
+ 79, 82, 65, 84, 73, 79, 78, 128, 67, 79, 82, 79, 78, 73, 83, 128, 67, 79,
+ 82, 78, 69, 82, 83, 128, 67, 79, 82, 78, 69, 82, 128, 67, 79, 82, 78, 69,
+ 210, 67, 79, 82, 75, 128, 67, 79, 80, 89, 82, 73, 71, 72, 84, 128, 67,
+ 79, 80, 89, 82, 73, 71, 72, 212, 67, 79, 80, 89, 128, 67, 79, 80, 82, 79,
+ 68, 85, 67, 84, 128, 67, 79, 80, 80, 69, 82, 45, 50, 128, 67, 79, 80, 80,
+ 69, 82, 128, 67, 79, 80, 128, 67, 79, 79, 76, 128, 67, 79, 79, 75, 73,
+ 78, 71, 128, 67, 79, 79, 75, 73, 69, 128, 67, 79, 79, 75, 69, 196, 67,
+ 79, 79, 128, 67, 79, 78, 86, 69, 82, 71, 73, 78, 199, 67, 79, 78, 86, 69,
+ 78, 73, 69, 78, 67, 197, 67, 79, 78, 84, 82, 79, 76, 128, 67, 79, 78, 84,
+ 82, 79, 204, 67, 79, 78, 84, 82, 65, 82, 73, 69, 84, 89, 128, 67, 79, 78,
+ 84, 82, 65, 67, 84, 73, 79, 78, 128, 67, 79, 78, 84, 79, 85, 82, 69, 196,
+ 67, 79, 78, 84, 79, 85, 210, 67, 79, 78, 84, 73, 78, 85, 73, 78, 199, 67,
+ 79, 78, 84, 73, 78, 85, 65, 84, 73, 79, 206, 67, 79, 78, 84, 69, 78, 84,
+ 73, 79, 78, 128, 67, 79, 78, 84, 69, 77, 80, 76, 65, 84, 73, 79, 78, 128,
+ 67, 79, 78, 84, 65, 73, 78, 211, 67, 79, 78, 84, 65, 73, 78, 73, 78, 199,
+ 67, 79, 78, 84, 65, 73, 206, 67, 79, 78, 84, 65, 67, 84, 128, 67, 79, 78,
+ 83, 84, 82, 85, 67, 84, 73, 79, 78, 128, 67, 79, 78, 83, 84, 82, 85, 67,
+ 84, 73, 79, 206, 67, 79, 78, 83, 84, 65, 78, 84, 128, 67, 79, 78, 83, 84,
+ 65, 78, 212, 67, 79, 78, 83, 84, 65, 78, 67, 89, 128, 67, 79, 78, 83, 69,
+ 67, 85, 84, 73, 86, 197, 67, 79, 78, 74, 85, 78, 67, 84, 73, 79, 78, 128,
+ 67, 79, 78, 74, 85, 71, 65, 84, 197, 67, 79, 78, 74, 79, 73, 78, 73, 78,
+ 199, 67, 79, 78, 74, 79, 73, 78, 69, 68, 128, 67, 79, 78, 74, 79, 73, 78,
+ 69, 196, 67, 79, 78, 73, 67, 65, 204, 67, 79, 78, 71, 82, 85, 69, 78,
212, 67, 79, 78, 71, 82, 65, 84, 85, 76, 65, 84, 73, 79, 78, 128, 67, 79,
78, 70, 85, 83, 69, 196, 67, 79, 78, 70, 79, 85, 78, 68, 69, 196, 67, 79,
78, 70, 76, 73, 67, 84, 128, 67, 79, 78, 70, 69, 84, 84, 201, 67, 79, 78,
67, 65, 86, 69, 45, 83, 73, 68, 69, 196, 67, 79, 78, 67, 65, 86, 69, 45,
- 80, 79, 73, 78, 84, 69, 196, 67, 79, 78, 128, 67, 79, 77, 80, 85, 84, 69,
- 82, 128, 67, 79, 77, 80, 79, 83, 73, 84, 73, 79, 78, 128, 67, 79, 77, 80,
- 79, 83, 73, 84, 73, 79, 206, 67, 79, 77, 80, 76, 73, 65, 78, 67, 69, 128,
- 67, 79, 77, 80, 76, 69, 84, 73, 79, 78, 128, 67, 79, 77, 80, 76, 69, 84,
- 69, 68, 128, 67, 79, 77, 80, 76, 69, 77, 69, 78, 84, 128, 67, 79, 77, 80,
- 65, 82, 69, 128, 67, 79, 77, 77, 79, 206, 67, 79, 77, 77, 69, 82, 67, 73,
- 65, 204, 67, 79, 77, 77, 65, 78, 68, 128, 67, 79, 77, 77, 65, 128, 67,
- 79, 77, 77, 193, 67, 79, 77, 69, 84, 128, 67, 79, 77, 66, 128, 67, 79,
- 76, 85, 77, 78, 128, 67, 79, 76, 79, 82, 128, 67, 79, 76, 76, 73, 83, 73,
- 79, 206, 67, 79, 76, 76, 128, 67, 79, 76, 196, 67, 79, 70, 70, 73, 78,
- 128, 67, 79, 69, 78, 71, 128, 67, 79, 69, 78, 199, 67, 79, 68, 65, 128,
- 67, 79, 67, 75, 84, 65, 73, 204, 67, 79, 65, 83, 84, 69, 82, 128, 67, 79,
- 65, 128, 67, 79, 128, 67, 77, 128, 67, 205, 67, 76, 85, 83, 84, 69, 210,
- 67, 76, 85, 66, 83, 128, 67, 76, 85, 66, 45, 83, 80, 79, 75, 69, 196, 67,
- 76, 85, 66, 128, 67, 76, 85, 194, 67, 76, 79, 86, 69, 82, 128, 67, 76,
- 79, 85, 68, 128, 67, 76, 79, 85, 196, 67, 76, 79, 84, 72, 69, 83, 128,
- 67, 76, 79, 84, 72, 128, 67, 76, 79, 83, 69, 84, 128, 67, 76, 79, 83, 69,
- 78, 69, 83, 83, 128, 67, 76, 79, 83, 69, 68, 128, 67, 76, 79, 83, 197,
- 67, 76, 79, 67, 75, 87, 73, 83, 197, 67, 76, 79, 67, 203, 67, 76, 73, 86,
- 73, 83, 128, 67, 76, 73, 80, 66, 79, 65, 82, 68, 128, 67, 76, 73, 78, 75,
- 73, 78, 199, 67, 76, 73, 78, 71, 73, 78, 199, 67, 76, 73, 77, 65, 67, 85,
- 83, 128, 67, 76, 73, 70, 70, 128, 67, 76, 73, 67, 75, 128, 67, 76, 69,
- 70, 45, 50, 128, 67, 76, 69, 70, 45, 49, 128, 67, 76, 69, 70, 128, 67,
- 76, 69, 198, 67, 76, 69, 65, 86, 69, 82, 128, 67, 76, 69, 65, 210, 67,
- 76, 65, 87, 128, 67, 76, 65, 80, 80, 73, 78, 199, 67, 76, 65, 80, 80, 69,
- 210, 67, 76, 65, 78, 128, 67, 76, 65, 73, 77, 128, 67, 76, 128, 67, 73,
- 88, 128, 67, 73, 86, 73, 76, 73, 65, 78, 128, 67, 73, 84, 89, 83, 67, 65,
- 80, 197, 67, 73, 84, 128, 67, 73, 82, 67, 85, 211, 67, 73, 82, 67, 85,
- 77, 70, 76, 69, 88, 128, 67, 73, 82, 67, 85, 77, 70, 76, 69, 216, 67, 73,
- 82, 67, 85, 76, 65, 84, 73, 79, 206, 67, 73, 82, 67, 76, 69, 83, 128, 67,
- 73, 82, 67, 76, 69, 128, 67, 73, 80, 128, 67, 73, 78, 78, 65, 66, 65, 82,
- 128, 67, 73, 78, 69, 77, 65, 128, 67, 73, 73, 128, 67, 73, 69, 88, 128,
- 67, 73, 69, 85, 67, 45, 83, 83, 65, 78, 71, 80, 73, 69, 85, 80, 128, 67,
- 73, 69, 85, 67, 45, 80, 73, 69, 85, 80, 128, 67, 73, 69, 85, 67, 45, 73,
- 69, 85, 78, 71, 128, 67, 73, 69, 85, 195, 67, 73, 69, 84, 128, 67, 73,
- 69, 80, 128, 67, 73, 69, 128, 67, 72, 89, 88, 128, 67, 72, 89, 84, 128,
- 67, 72, 89, 82, 88, 128, 67, 72, 89, 82, 128, 67, 72, 89, 80, 128, 67,
- 72, 85, 88, 128, 67, 72, 85, 82, 88, 128, 67, 72, 85, 82, 67, 72, 128,
- 67, 72, 85, 82, 128, 67, 72, 85, 80, 128, 67, 72, 85, 79, 88, 128, 67,
- 72, 85, 79, 84, 128, 67, 72, 85, 79, 80, 128, 67, 72, 85, 79, 128, 67,
- 72, 85, 76, 65, 128, 67, 72, 85, 128, 67, 72, 82, 89, 83, 65, 78, 84, 72,
- 69, 77, 85, 77, 128, 67, 72, 82, 79, 78, 79, 85, 128, 67, 72, 82, 79, 78,
- 79, 78, 128, 67, 72, 82, 79, 77, 193, 67, 72, 82, 79, 193, 67, 72, 82,
- 73, 86, 73, 128, 67, 72, 82, 73, 83, 84, 77, 65, 83, 128, 67, 72, 82, 73,
- 83, 84, 77, 65, 211, 67, 72, 79, 88, 128, 67, 72, 79, 84, 128, 67, 72,
- 79, 82, 69, 86, 77, 193, 67, 72, 79, 80, 128, 67, 72, 79, 75, 69, 128,
- 67, 72, 79, 69, 128, 67, 72, 79, 67, 79, 76, 65, 84, 197, 67, 72, 79, 65,
- 128, 67, 72, 207, 67, 72, 73, 84, 85, 69, 85, 77, 83, 83, 65, 78, 71, 83,
- 73, 79, 83, 128, 67, 72, 73, 84, 85, 69, 85, 77, 83, 83, 65, 78, 71, 67,
- 73, 69, 85, 67, 128, 67, 72, 73, 84, 85, 69, 85, 77, 83, 73, 79, 83, 128,
- 67, 72, 73, 84, 85, 69, 85, 77, 67, 73, 69, 85, 67, 128, 67, 72, 73, 84,
- 85, 69, 85, 77, 67, 72, 73, 69, 85, 67, 72, 128, 67, 72, 73, 82, 79, 78,
- 128, 67, 72, 73, 82, 69, 84, 128, 67, 72, 73, 78, 71, 128, 67, 72, 73,
- 78, 69, 83, 197, 67, 72, 73, 78, 128, 67, 72, 73, 77, 69, 128, 67, 72,
- 73, 76, 76, 213, 67, 72, 73, 76, 68, 82, 69, 206, 67, 72, 73, 76, 68,
- 128, 67, 72, 73, 76, 128, 67, 72, 73, 75, 201, 67, 72, 73, 69, 85, 67,
- 72, 45, 75, 72, 73, 69, 85, 75, 72, 128, 67, 72, 73, 69, 85, 67, 72, 45,
- 72, 73, 69, 85, 72, 128, 67, 72, 73, 69, 85, 67, 200, 67, 72, 73, 67, 75,
- 69, 78, 128, 67, 72, 73, 67, 75, 128, 67, 72, 73, 128, 67, 72, 201, 67,
- 72, 72, 65, 128, 67, 72, 69, 88, 128, 67, 72, 69, 86, 82, 79, 206, 67,
- 72, 69, 84, 128, 67, 72, 69, 83, 84, 78, 85, 84, 128, 67, 72, 69, 83,
- 211, 67, 72, 69, 82, 82, 217, 67, 72, 69, 82, 82, 73, 69, 83, 128, 67,
+ 80, 79, 73, 78, 84, 69, 196, 67, 79, 77, 80, 85, 84, 69, 82, 83, 128, 67,
+ 79, 77, 80, 85, 84, 69, 82, 128, 67, 79, 77, 80, 82, 69, 83, 83, 73, 79,
+ 78, 128, 67, 79, 77, 80, 82, 69, 83, 83, 69, 196, 67, 79, 77, 80, 79, 83,
+ 73, 84, 73, 79, 78, 128, 67, 79, 77, 80, 79, 83, 73, 84, 73, 79, 206, 67,
+ 79, 77, 80, 76, 73, 65, 78, 67, 69, 128, 67, 79, 77, 80, 76, 69, 84, 73,
+ 79, 78, 128, 67, 79, 77, 80, 76, 69, 84, 69, 68, 128, 67, 79, 77, 80, 76,
+ 69, 77, 69, 78, 84, 128, 67, 79, 77, 80, 65, 82, 69, 128, 67, 79, 77, 77,
+ 79, 206, 67, 79, 77, 77, 69, 82, 67, 73, 65, 204, 67, 79, 77, 77, 65, 78,
+ 68, 128, 67, 79, 77, 77, 65, 128, 67, 79, 77, 77, 193, 67, 79, 77, 69,
+ 84, 128, 67, 79, 77, 66, 73, 78, 69, 68, 128, 67, 79, 77, 66, 73, 78, 65,
+ 84, 73, 79, 78, 128, 67, 79, 77, 66, 128, 67, 79, 76, 85, 77, 78, 128,
+ 67, 79, 76, 79, 82, 128, 67, 79, 76, 76, 73, 83, 73, 79, 206, 67, 79, 76,
+ 76, 128, 67, 79, 76, 196, 67, 79, 70, 70, 73, 78, 128, 67, 79, 69, 78,
+ 71, 128, 67, 79, 69, 78, 199, 67, 79, 68, 65, 128, 67, 79, 67, 75, 84,
+ 65, 73, 204, 67, 79, 65, 83, 84, 69, 82, 128, 67, 79, 65, 128, 67, 77,
+ 128, 67, 205, 67, 76, 85, 83, 84, 69, 210, 67, 76, 85, 66, 83, 128, 67,
+ 76, 85, 66, 45, 83, 80, 79, 75, 69, 196, 67, 76, 85, 66, 128, 67, 76, 85,
+ 194, 67, 76, 79, 86, 69, 82, 128, 67, 76, 79, 85, 68, 128, 67, 76, 79,
+ 85, 196, 67, 76, 79, 84, 72, 69, 83, 128, 67, 76, 79, 84, 72, 128, 67,
+ 76, 79, 83, 69, 84, 128, 67, 76, 79, 83, 69, 78, 69, 83, 83, 128, 67, 76,
+ 79, 83, 69, 68, 128, 67, 76, 79, 83, 197, 67, 76, 79, 67, 75, 87, 73, 83,
+ 197, 67, 76, 79, 67, 203, 67, 76, 73, 86, 73, 83, 128, 67, 76, 73, 80,
+ 66, 79, 65, 82, 68, 128, 67, 76, 73, 78, 75, 73, 78, 199, 67, 76, 73, 78,
+ 71, 73, 78, 199, 67, 76, 73, 77, 65, 67, 85, 83, 128, 67, 76, 73, 70, 70,
+ 128, 67, 76, 73, 67, 75, 128, 67, 76, 69, 70, 45, 50, 128, 67, 76, 69,
+ 70, 45, 49, 128, 67, 76, 69, 70, 128, 67, 76, 69, 198, 67, 76, 69, 65,
+ 86, 69, 82, 128, 67, 76, 69, 65, 210, 67, 76, 65, 83, 83, 73, 67, 65,
+ 204, 67, 76, 65, 80, 80, 73, 78, 199, 67, 76, 65, 80, 80, 69, 210, 67,
+ 76, 65, 78, 128, 67, 76, 65, 206, 67, 76, 65, 77, 83, 72, 69, 76, 204,
+ 67, 76, 65, 73, 77, 128, 67, 76, 128, 67, 73, 88, 128, 67, 73, 86, 73,
+ 76, 73, 65, 78, 128, 67, 73, 84, 89, 83, 67, 65, 80, 69, 128, 67, 73, 84,
+ 89, 83, 67, 65, 80, 197, 67, 73, 84, 201, 67, 73, 84, 65, 84, 73, 79,
+ 206, 67, 73, 84, 128, 67, 73, 82, 67, 85, 211, 67, 73, 82, 67, 85, 77,
+ 70, 76, 69, 88, 128, 67, 73, 82, 67, 85, 77, 70, 76, 69, 216, 67, 73, 82,
+ 67, 85, 76, 65, 84, 73, 79, 206, 67, 73, 82, 67, 76, 73, 78, 71, 128, 67,
+ 73, 82, 67, 76, 73, 78, 199, 67, 73, 82, 67, 76, 69, 83, 128, 67, 73, 82,
+ 67, 76, 69, 211, 67, 73, 82, 67, 76, 69, 68, 128, 67, 73, 80, 128, 67,
+ 73, 78, 78, 65, 66, 65, 82, 128, 67, 73, 78, 69, 77, 65, 128, 67, 73,
+ 206, 67, 73, 205, 67, 73, 73, 128, 67, 73, 69, 88, 128, 67, 73, 69, 85,
+ 67, 45, 83, 83, 65, 78, 71, 80, 73, 69, 85, 80, 128, 67, 73, 69, 85, 67,
+ 45, 80, 73, 69, 85, 80, 128, 67, 73, 69, 85, 67, 45, 73, 69, 85, 78, 71,
+ 128, 67, 73, 69, 85, 195, 67, 73, 69, 84, 128, 67, 73, 69, 80, 128, 67,
+ 73, 69, 128, 67, 72, 89, 88, 128, 67, 72, 89, 84, 128, 67, 72, 89, 82,
+ 88, 128, 67, 72, 89, 82, 128, 67, 72, 89, 80, 128, 67, 72, 87, 86, 128,
+ 67, 72, 85, 88, 128, 67, 72, 85, 82, 88, 128, 67, 72, 85, 82, 67, 72,
+ 128, 67, 72, 85, 82, 128, 67, 72, 85, 80, 128, 67, 72, 85, 79, 88, 128,
+ 67, 72, 85, 79, 84, 128, 67, 72, 85, 79, 80, 128, 67, 72, 85, 79, 128,
+ 67, 72, 85, 76, 65, 128, 67, 72, 85, 128, 67, 72, 82, 89, 83, 65, 78, 84,
+ 72, 69, 77, 85, 77, 128, 67, 72, 82, 79, 78, 79, 85, 128, 67, 72, 82, 79,
+ 78, 79, 78, 128, 67, 72, 82, 79, 77, 193, 67, 72, 82, 79, 193, 67, 72,
+ 82, 73, 86, 73, 128, 67, 72, 82, 73, 83, 84, 77, 65, 83, 128, 67, 72, 82,
+ 73, 83, 84, 77, 65, 211, 67, 72, 79, 89, 128, 67, 72, 79, 88, 128, 67,
+ 72, 79, 84, 128, 67, 72, 79, 82, 69, 86, 77, 193, 67, 72, 79, 80, 128,
+ 67, 72, 79, 75, 69, 128, 67, 72, 79, 69, 128, 67, 72, 79, 67, 79, 76, 65,
+ 84, 197, 67, 72, 79, 65, 128, 67, 72, 207, 67, 72, 73, 84, 85, 69, 85,
+ 77, 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 67, 72, 73, 84, 85, 69, 85,
+ 77, 83, 83, 65, 78, 71, 67, 73, 69, 85, 67, 128, 67, 72, 73, 84, 85, 69,
+ 85, 77, 83, 73, 79, 83, 128, 67, 72, 73, 84, 85, 69, 85, 77, 67, 73, 69,
+ 85, 67, 128, 67, 72, 73, 84, 85, 69, 85, 77, 67, 72, 73, 69, 85, 67, 72,
+ 128, 67, 72, 73, 82, 79, 78, 128, 67, 72, 73, 82, 69, 84, 128, 67, 72,
+ 73, 80, 77, 85, 78, 75, 128, 67, 72, 73, 78, 79, 79, 203, 67, 72, 73, 78,
+ 71, 128, 67, 72, 73, 78, 69, 83, 197, 67, 72, 73, 78, 128, 67, 72, 73,
+ 77, 69, 128, 67, 72, 73, 76, 76, 213, 67, 72, 73, 76, 68, 82, 69, 206,
+ 67, 72, 73, 76, 68, 128, 67, 72, 73, 76, 128, 67, 72, 73, 75, 201, 67,
+ 72, 73, 69, 85, 67, 72, 45, 75, 72, 73, 69, 85, 75, 72, 128, 67, 72, 73,
+ 69, 85, 67, 72, 45, 72, 73, 69, 85, 72, 128, 67, 72, 73, 69, 85, 67, 200,
+ 67, 72, 73, 67, 75, 69, 78, 128, 67, 72, 73, 67, 75, 128, 67, 72, 73,
+ 128, 67, 72, 201, 67, 72, 72, 65, 128, 67, 72, 69, 88, 128, 67, 72, 69,
+ 86, 82, 79, 206, 67, 72, 69, 84, 128, 67, 72, 69, 83, 84, 78, 85, 84,
+ 128, 67, 72, 69, 83, 84, 128, 67, 72, 69, 83, 211, 67, 72, 69, 82, 89,
+ 128, 67, 72, 69, 82, 82, 217, 67, 72, 69, 82, 82, 73, 69, 83, 128, 67,
72, 69, 81, 85, 69, 82, 69, 196, 67, 72, 69, 80, 128, 67, 72, 69, 206,
67, 72, 69, 73, 78, 65, 80, 128, 67, 72, 69, 73, 75, 72, 69, 73, 128, 67,
- 72, 69, 73, 75, 72, 65, 78, 128, 67, 72, 69, 69, 82, 73, 78, 199, 67, 72,
- 69, 69, 128, 67, 72, 69, 67, 75, 128, 67, 72, 69, 67, 203, 67, 72, 197,
- 67, 72, 65, 88, 128, 67, 72, 65, 86, 73, 89, 65, 78, 73, 128, 67, 72, 65,
- 84, 84, 65, 87, 65, 128, 67, 72, 65, 84, 128, 67, 72, 65, 82, 84, 128,
- 67, 72, 65, 82, 212, 67, 72, 65, 82, 73, 79, 84, 128, 67, 72, 65, 82, 73,
- 79, 212, 67, 72, 65, 82, 65, 67, 84, 69, 82, 83, 128, 67, 72, 65, 82, 65,
- 67, 84, 69, 82, 128, 67, 72, 65, 82, 128, 67, 72, 65, 80, 128, 67, 72,
- 65, 78, 71, 128, 67, 72, 65, 78, 128, 67, 72, 65, 77, 75, 79, 128, 67,
- 72, 65, 77, 73, 76, 79, 78, 128, 67, 72, 65, 77, 73, 76, 73, 128, 67, 72,
- 65, 75, 77, 193, 67, 72, 65, 73, 82, 128, 67, 72, 65, 73, 78, 83, 128,
- 67, 72, 65, 68, 65, 128, 67, 72, 65, 196, 67, 72, 65, 65, 128, 67, 71,
- 74, 128, 67, 69, 88, 128, 67, 69, 82, 69, 83, 128, 67, 69, 82, 69, 77,
- 79, 78, 89, 128, 67, 69, 82, 69, 75, 128, 67, 69, 82, 45, 87, 65, 128,
- 67, 69, 80, 128, 67, 69, 79, 78, 71, 67, 72, 73, 69, 85, 77, 83, 83, 65,
- 78, 71, 83, 73, 79, 83, 128, 67, 69, 79, 78, 71, 67, 72, 73, 69, 85, 77,
- 83, 83, 65, 78, 71, 67, 73, 69, 85, 67, 128, 67, 69, 79, 78, 71, 67, 72,
- 73, 69, 85, 77, 83, 73, 79, 83, 128, 67, 69, 79, 78, 71, 67, 72, 73, 69,
- 85, 77, 67, 73, 69, 85, 67, 128, 67, 69, 79, 78, 71, 67, 72, 73, 69, 85,
- 77, 67, 72, 73, 69, 85, 67, 72, 128, 67, 69, 78, 84, 85, 82, 73, 65, 204,
- 67, 69, 78, 84, 82, 69, 76, 73, 78, 197, 67, 69, 78, 84, 82, 69, 196, 67,
- 69, 78, 84, 82, 69, 128, 67, 69, 78, 84, 82, 197, 67, 69, 78, 128, 67,
- 69, 76, 83, 73, 85, 83, 128, 67, 69, 76, 69, 66, 82, 65, 84, 73, 79, 78,
- 128, 67, 69, 73, 82, 84, 128, 67, 69, 73, 76, 73, 78, 71, 128, 67, 69,
- 69, 128, 67, 69, 68, 73, 76, 76, 65, 128, 67, 69, 68, 73, 76, 76, 193,
- 67, 69, 68, 201, 67, 69, 67, 69, 75, 128, 67, 69, 67, 65, 75, 128, 67,
- 69, 67, 65, 203, 67, 69, 65, 76, 67, 128, 67, 67, 85, 128, 67, 67, 79,
- 128, 67, 67, 73, 128, 67, 67, 72, 85, 128, 67, 67, 72, 79, 128, 67, 67,
- 72, 73, 128, 67, 67, 72, 72, 85, 128, 67, 67, 72, 72, 79, 128, 67, 67,
- 72, 72, 73, 128, 67, 67, 72, 72, 69, 69, 128, 67, 67, 72, 72, 69, 128,
- 67, 67, 72, 72, 65, 65, 128, 67, 67, 72, 72, 65, 128, 67, 67, 72, 69, 69,
- 128, 67, 67, 72, 69, 128, 67, 67, 72, 65, 65, 128, 67, 67, 72, 65, 128,
- 67, 67, 72, 128, 67, 67, 69, 69, 128, 67, 67, 69, 128, 67, 67, 65, 65,
- 128, 67, 67, 65, 128, 67, 65, 89, 78, 128, 67, 65, 89, 65, 78, 78, 65,
- 128, 67, 65, 88, 128, 67, 65, 86, 69, 128, 67, 65, 85, 84, 73, 79, 206,
- 67, 65, 85, 76, 68, 82, 79, 78, 128, 67, 65, 85, 68, 65, 128, 67, 65, 85,
- 128, 67, 65, 84, 65, 87, 65, 128, 67, 65, 84, 128, 67, 65, 212, 67, 65,
- 83, 84, 76, 69, 128, 67, 65, 82, 89, 83, 84, 73, 65, 206, 67, 65, 82, 84,
- 128, 67, 65, 82, 211, 67, 65, 82, 82, 73, 65, 71, 197, 67, 65, 82, 80,
- 69, 78, 84, 82, 217, 67, 65, 82, 208, 67, 65, 82, 79, 85, 83, 69, 204,
- 67, 65, 82, 79, 78, 128, 67, 65, 82, 79, 206, 67, 65, 82, 73, 203, 67,
- 65, 82, 73, 65, 206, 67, 65, 82, 69, 84, 128, 67, 65, 82, 69, 212, 67,
- 65, 82, 197, 67, 65, 82, 68, 83, 128, 67, 65, 82, 68, 128, 67, 65, 82,
- 196, 67, 65, 82, 128, 67, 65, 210, 67, 65, 80, 85, 212, 67, 65, 80, 84,
- 73, 86, 69, 128, 67, 65, 80, 82, 73, 67, 79, 82, 78, 128, 67, 65, 80, 79,
- 128, 67, 65, 80, 73, 84, 65, 76, 128, 67, 65, 78, 84, 73, 76, 76, 65, 84,
- 73, 79, 206, 67, 65, 78, 199, 67, 65, 78, 68, 89, 128, 67, 65, 78, 68,
- 82, 65, 66, 73, 78, 68, 85, 128, 67, 65, 78, 68, 82, 65, 66, 73, 78, 68,
- 213, 67, 65, 78, 68, 82, 65, 128, 67, 65, 78, 68, 82, 193, 67, 65, 78,
- 67, 69, 82, 128, 67, 65, 78, 67, 69, 76, 76, 65, 84, 73, 79, 206, 67, 65,
- 78, 67, 69, 76, 128, 67, 65, 78, 67, 69, 204, 67, 65, 78, 128, 67, 65,
- 77, 78, 85, 195, 67, 65, 77, 69, 82, 65, 128, 67, 65, 77, 69, 76, 128,
- 67, 65, 76, 89, 65, 128, 67, 65, 76, 89, 193, 67, 65, 76, 88, 128, 67,
- 65, 76, 76, 128, 67, 65, 76, 69, 78, 68, 65, 82, 128, 67, 65, 76, 67,
- 128, 67, 65, 75, 82, 65, 128, 67, 65, 75, 197, 67, 65, 73, 128, 67, 65,
- 72, 128, 67, 65, 69, 83, 85, 82, 65, 128, 67, 65, 68, 85, 67, 69, 85, 83,
- 128, 67, 65, 68, 193, 67, 65, 67, 84, 85, 83, 128, 67, 65, 66, 76, 69,
- 87, 65, 89, 128, 67, 65, 66, 66, 65, 71, 69, 45, 84, 82, 69, 69, 128, 67,
- 65, 65, 78, 71, 128, 67, 65, 65, 73, 128, 67, 193, 67, 48, 50, 52, 128,
- 67, 48, 50, 51, 128, 67, 48, 50, 50, 128, 67, 48, 50, 49, 128, 67, 48,
- 50, 48, 128, 67, 48, 49, 57, 128, 67, 48, 49, 56, 128, 67, 48, 49, 55,
- 128, 67, 48, 49, 54, 128, 67, 48, 49, 53, 128, 67, 48, 49, 52, 128, 67,
- 48, 49, 51, 128, 67, 48, 49, 50, 128, 67, 48, 49, 49, 128, 67, 48, 49,
- 48, 65, 128, 67, 48, 49, 48, 128, 67, 48, 48, 57, 128, 67, 48, 48, 56,
- 128, 67, 48, 48, 55, 128, 67, 48, 48, 54, 128, 67, 48, 48, 53, 128, 67,
- 48, 48, 52, 128, 67, 48, 48, 51, 128, 67, 48, 48, 50, 67, 128, 67, 48,
- 48, 50, 66, 128, 67, 48, 48, 50, 65, 128, 67, 48, 48, 50, 128, 67, 48,
- 48, 49, 128, 67, 45, 83, 73, 77, 80, 76, 73, 70, 73, 69, 196, 67, 45, 51,
- 57, 128, 67, 45, 49, 56, 128, 66, 90, 85, 78, 199, 66, 90, 72, 201, 66,
- 89, 84, 197, 66, 89, 69, 76, 79, 82, 85, 83, 83, 73, 65, 78, 45, 85, 75,
- 82, 65, 73, 78, 73, 65, 206, 66, 88, 71, 128, 66, 87, 73, 128, 66, 87,
- 69, 69, 128, 66, 87, 69, 128, 66, 87, 65, 128, 66, 85, 85, 77, 73, 83,
- 72, 128, 66, 85, 84, 84, 79, 78, 128, 66, 85, 212, 66, 85, 83, 84, 211,
- 66, 85, 83, 212, 66, 85, 83, 83, 89, 69, 82, 85, 128, 66, 85, 211, 66,
- 85, 82, 213, 66, 85, 82, 50, 128, 66, 85, 210, 66, 85, 79, 88, 128, 66,
- 85, 79, 80, 128, 66, 85, 78, 78, 217, 66, 85, 78, 71, 128, 66, 85, 77,
- 80, 217, 66, 85, 76, 85, 71, 128, 66, 85, 76, 85, 199, 66, 85, 76, 76,
- 83, 69, 89, 69, 128, 66, 85, 76, 76, 211, 66, 85, 76, 76, 69, 84, 128,
- 66, 85, 76, 76, 69, 212, 66, 85, 76, 76, 128, 66, 85, 76, 66, 128, 66,
- 85, 75, 89, 128, 66, 85, 73, 76, 68, 73, 78, 71, 83, 128, 66, 85, 73, 76,
- 68, 73, 78, 71, 128, 66, 85, 72, 73, 196, 66, 85, 71, 73, 78, 69, 83,
- 197, 66, 85, 71, 128, 66, 85, 70, 70, 65, 76, 79, 128, 66, 85, 67, 75,
- 76, 69, 128, 66, 83, 84, 65, 82, 128, 66, 83, 75, 85, 210, 66, 83, 75,
- 65, 173, 66, 83, 68, 85, 211, 66, 82, 85, 83, 72, 128, 66, 82, 85, 83,
- 200, 66, 82, 79, 78, 90, 69, 128, 66, 82, 79, 75, 69, 206, 66, 82, 79,
- 65, 196, 66, 82, 73, 83, 84, 76, 69, 128, 66, 82, 73, 71, 72, 84, 78, 69,
- 83, 211, 66, 82, 73, 69, 70, 67, 65, 83, 69, 128, 66, 82, 73, 68, 71,
- 197, 66, 82, 73, 68, 197, 66, 82, 73, 67, 75, 128, 66, 82, 69, 86, 73,
- 83, 128, 66, 82, 69, 86, 69, 45, 77, 65, 67, 82, 79, 78, 128, 66, 82, 69,
- 86, 197, 66, 82, 69, 65, 84, 200, 66, 82, 69, 65, 75, 84, 72, 82, 79, 85,
- 71, 72, 128, 66, 82, 69, 65, 68, 128, 66, 82, 68, 193, 66, 82, 65, 78,
- 67, 72, 73, 78, 199, 66, 82, 65, 78, 67, 72, 128, 66, 82, 65, 78, 67,
- 200, 66, 82, 65, 75, 67, 69, 84, 128, 66, 82, 65, 67, 75, 69, 84, 69,
- 196, 66, 82, 65, 67, 75, 69, 212, 66, 82, 65, 67, 69, 128, 66, 81, 128,
- 66, 80, 72, 128, 66, 79, 89, 128, 66, 79, 87, 84, 73, 69, 128, 66, 79,
- 87, 84, 73, 197, 66, 79, 87, 76, 73, 78, 71, 128, 66, 79, 87, 76, 128,
- 66, 79, 87, 73, 78, 199, 66, 79, 215, 66, 79, 85, 81, 85, 69, 84, 128,
- 66, 79, 85, 78, 68, 65, 82, 217, 66, 79, 84, 84, 79, 77, 45, 76, 73, 71,
- 72, 84, 69, 196, 66, 79, 84, 84, 79, 77, 128, 66, 79, 84, 84, 79, 205,
- 66, 79, 84, 84, 76, 69, 128, 66, 79, 84, 84, 76, 197, 66, 79, 84, 200,
- 66, 79, 82, 85, 84, 79, 128, 66, 79, 82, 65, 88, 45, 51, 128, 66, 79, 82,
- 65, 88, 45, 50, 128, 66, 79, 82, 65, 88, 128, 66, 79, 80, 79, 77, 79, 70,
- 207, 66, 79, 79, 84, 83, 128, 66, 79, 79, 84, 128, 66, 79, 79, 77, 69,
- 82, 65, 78, 71, 128, 66, 79, 79, 75, 83, 128, 66, 79, 79, 75, 77, 65, 82,
- 75, 128, 66, 79, 79, 75, 77, 65, 82, 203, 66, 79, 78, 69, 128, 66, 79,
- 77, 66, 128, 66, 79, 77, 128, 66, 79, 76, 84, 128, 66, 79, 76, 212, 66,
- 79, 72, 65, 73, 82, 73, 195, 66, 79, 68, 89, 128, 66, 79, 65, 82, 128,
- 66, 79, 65, 128, 66, 76, 85, 69, 128, 66, 76, 85, 197, 66, 76, 79, 87,
- 70, 73, 83, 72, 128, 66, 76, 79, 83, 83, 79, 77, 128, 66, 76, 79, 79, 68,
- 128, 66, 76, 79, 78, 196, 66, 76, 79, 67, 75, 128, 66, 76, 69, 78, 68,
- 69, 196, 66, 76, 65, 78, 75, 128, 66, 76, 65, 78, 203, 66, 76, 65, 68,
- 197, 66, 76, 65, 67, 75, 70, 79, 79, 212, 66, 76, 65, 67, 75, 45, 76, 69,
- 84, 84, 69, 210, 66, 76, 65, 67, 75, 45, 70, 69, 65, 84, 72, 69, 82, 69,
- 196, 66, 76, 65, 67, 75, 128, 66, 75, 65, 173, 66, 73, 84, 84, 69, 82,
- 128, 66, 73, 84, 73, 78, 199, 66, 73, 83, 77, 85, 84, 200, 66, 73, 83,
- 77, 73, 76, 76, 65, 200, 66, 73, 83, 72, 79, 80, 128, 66, 73, 83, 69, 67,
- 84, 73, 78, 199, 66, 73, 83, 65, 72, 128, 66, 73, 82, 85, 128, 66, 73,
- 82, 84, 72, 68, 65, 217, 66, 73, 82, 71, 65, 128, 66, 73, 82, 68, 128,
- 66, 73, 79, 72, 65, 90, 65, 82, 196, 66, 73, 78, 79, 67, 85, 76, 65, 210,
- 66, 73, 78, 68, 73, 78, 199, 66, 73, 78, 68, 73, 128, 66, 73, 78, 65, 82,
- 217, 66, 73, 76, 76, 73, 65, 82, 68, 83, 128, 66, 73, 76, 65, 66, 73, 65,
+ 72, 69, 73, 75, 72, 65, 78, 128, 67, 72, 69, 69, 83, 197, 67, 72, 69, 69,
+ 82, 73, 78, 199, 67, 72, 69, 69, 77, 128, 67, 72, 69, 69, 75, 211, 67,
+ 72, 69, 69, 75, 128, 67, 72, 69, 69, 128, 67, 72, 69, 67, 75, 69, 210,
+ 67, 72, 69, 67, 75, 128, 67, 72, 69, 67, 203, 67, 72, 197, 67, 72, 65,
+ 88, 128, 67, 72, 65, 86, 73, 89, 65, 78, 73, 128, 67, 72, 65, 84, 84, 65,
+ 87, 65, 128, 67, 72, 65, 84, 128, 67, 72, 65, 82, 84, 128, 67, 72, 65,
+ 82, 212, 67, 72, 65, 82, 73, 79, 84, 128, 67, 72, 65, 82, 73, 79, 212,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 83, 128, 67, 72, 65, 82, 65, 67, 84,
+ 69, 82, 128, 67, 72, 65, 82, 128, 67, 72, 65, 80, 84, 69, 82, 128, 67,
+ 72, 65, 80, 128, 67, 72, 65, 78, 71, 128, 67, 72, 65, 78, 128, 67, 72,
+ 65, 77, 75, 79, 128, 67, 72, 65, 77, 73, 76, 79, 78, 128, 67, 72, 65, 77,
+ 73, 76, 73, 128, 67, 72, 65, 205, 67, 72, 65, 75, 77, 193, 67, 72, 65,
+ 73, 82, 128, 67, 72, 65, 73, 78, 83, 128, 67, 72, 65, 68, 65, 128, 67,
+ 72, 65, 196, 67, 72, 65, 65, 128, 67, 71, 74, 128, 67, 69, 88, 128, 67,
+ 69, 82, 69, 83, 128, 67, 69, 82, 69, 77, 79, 78, 89, 128, 67, 69, 82, 69,
+ 75, 128, 67, 69, 82, 45, 87, 65, 128, 67, 69, 80, 128, 67, 69, 79, 78,
+ 71, 67, 72, 73, 69, 85, 77, 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 67,
+ 69, 79, 78, 71, 67, 72, 73, 69, 85, 77, 83, 83, 65, 78, 71, 67, 73, 69,
+ 85, 67, 128, 67, 69, 79, 78, 71, 67, 72, 73, 69, 85, 77, 83, 73, 79, 83,
+ 128, 67, 69, 79, 78, 71, 67, 72, 73, 69, 85, 77, 67, 73, 69, 85, 67, 128,
+ 67, 69, 79, 78, 71, 67, 72, 73, 69, 85, 77, 67, 72, 73, 69, 85, 67, 72,
+ 128, 67, 69, 78, 84, 85, 82, 73, 65, 204, 67, 69, 78, 84, 82, 69, 76, 73,
+ 78, 197, 67, 69, 78, 84, 82, 69, 68, 128, 67, 69, 78, 84, 82, 69, 196,
+ 67, 69, 78, 84, 82, 69, 128, 67, 69, 78, 84, 82, 197, 67, 69, 78, 84, 82,
+ 65, 76, 73, 90, 65, 84, 73, 79, 206, 67, 69, 78, 128, 67, 69, 76, 84, 73,
+ 195, 67, 69, 76, 83, 73, 85, 83, 128, 67, 69, 76, 69, 66, 82, 65, 84, 73,
+ 79, 78, 128, 67, 69, 73, 82, 84, 128, 67, 69, 73, 76, 73, 78, 71, 128,
+ 67, 69, 73, 76, 73, 78, 199, 67, 69, 69, 86, 128, 67, 69, 69, 66, 128,
+ 67, 69, 69, 128, 67, 69, 68, 73, 76, 76, 65, 128, 67, 69, 68, 73, 76, 76,
+ 193, 67, 69, 68, 201, 67, 69, 67, 69, 75, 128, 67, 69, 67, 65, 75, 128,
+ 67, 69, 67, 65, 203, 67, 69, 65, 76, 67, 128, 67, 67, 85, 128, 67, 67,
+ 79, 128, 67, 67, 73, 128, 67, 67, 72, 85, 128, 67, 67, 72, 79, 128, 67,
+ 67, 72, 73, 128, 67, 67, 72, 72, 85, 128, 67, 67, 72, 72, 79, 128, 67,
+ 67, 72, 72, 73, 128, 67, 67, 72, 72, 69, 69, 128, 67, 67, 72, 72, 69,
+ 128, 67, 67, 72, 72, 65, 65, 128, 67, 67, 72, 72, 65, 128, 67, 67, 72,
+ 69, 69, 128, 67, 67, 72, 69, 128, 67, 67, 72, 65, 65, 128, 67, 67, 72,
+ 65, 128, 67, 67, 72, 128, 67, 67, 69, 69, 128, 67, 67, 69, 128, 67, 67,
+ 65, 65, 128, 67, 67, 65, 128, 67, 65, 89, 78, 128, 67, 65, 89, 65, 78,
+ 78, 65, 128, 67, 65, 88, 128, 67, 65, 86, 69, 128, 67, 65, 85, 84, 73,
+ 79, 206, 67, 65, 85, 76, 68, 82, 79, 78, 128, 67, 65, 85, 68, 65, 128,
+ 67, 65, 85, 67, 65, 83, 73, 65, 206, 67, 65, 85, 128, 67, 65, 84, 65, 87,
+ 65, 128, 67, 65, 84, 128, 67, 65, 212, 67, 65, 83, 84, 76, 69, 128, 67,
+ 65, 83, 75, 69, 212, 67, 65, 82, 89, 83, 84, 73, 65, 206, 67, 65, 82, 84,
+ 82, 73, 68, 71, 69, 128, 67, 65, 82, 84, 128, 67, 65, 82, 211, 67, 65,
+ 82, 82, 73, 65, 71, 197, 67, 65, 82, 80, 69, 78, 84, 82, 217, 67, 65, 82,
+ 208, 67, 65, 82, 79, 85, 83, 69, 204, 67, 65, 82, 79, 78, 128, 67, 65,
+ 82, 79, 206, 67, 65, 82, 73, 203, 67, 65, 82, 73, 65, 206, 67, 65, 82,
+ 69, 84, 128, 67, 65, 82, 69, 212, 67, 65, 82, 197, 67, 65, 82, 68, 83,
+ 128, 67, 65, 82, 68, 128, 67, 65, 82, 196, 67, 65, 82, 128, 67, 65, 210,
+ 67, 65, 80, 85, 212, 67, 65, 80, 84, 73, 86, 69, 128, 67, 65, 80, 82, 73,
+ 67, 79, 82, 78, 128, 67, 65, 80, 80, 69, 196, 67, 65, 80, 79, 128, 67,
+ 65, 80, 73, 84, 85, 76, 85, 77, 128, 67, 65, 80, 73, 84, 65, 76, 128, 67,
+ 65, 78, 84, 73, 76, 76, 65, 84, 73, 79, 206, 67, 65, 78, 199, 67, 65, 78,
+ 68, 89, 128, 67, 65, 78, 68, 82, 65, 66, 73, 78, 68, 85, 128, 67, 65, 78,
+ 68, 82, 65, 66, 73, 78, 68, 213, 67, 65, 78, 68, 82, 65, 128, 67, 65, 78,
+ 68, 82, 193, 67, 65, 78, 68, 76, 69, 128, 67, 65, 78, 67, 69, 82, 128,
+ 67, 65, 78, 67, 69, 76, 76, 65, 84, 73, 79, 206, 67, 65, 78, 67, 69, 76,
+ 128, 67, 65, 78, 67, 69, 204, 67, 65, 78, 128, 67, 65, 77, 80, 73, 78,
+ 71, 128, 67, 65, 77, 78, 85, 195, 67, 65, 77, 69, 82, 65, 128, 67, 65,
+ 77, 69, 82, 193, 67, 65, 77, 69, 76, 128, 67, 65, 76, 89, 65, 128, 67,
+ 65, 76, 89, 193, 67, 65, 76, 88, 128, 67, 65, 76, 76, 128, 67, 65, 76,
+ 69, 78, 68, 65, 82, 128, 67, 65, 76, 69, 78, 68, 65, 210, 67, 65, 76, 67,
+ 85, 76, 65, 84, 79, 82, 128, 67, 65, 76, 67, 128, 67, 65, 75, 82, 65,
+ 128, 67, 65, 75, 197, 67, 65, 73, 128, 67, 65, 72, 128, 67, 65, 69, 83,
+ 85, 82, 65, 128, 67, 65, 68, 85, 67, 69, 85, 83, 128, 67, 65, 68, 193,
+ 67, 65, 67, 84, 85, 83, 128, 67, 65, 66, 76, 69, 87, 65, 89, 128, 67, 65,
+ 66, 73, 78, 69, 84, 128, 67, 65, 66, 66, 65, 71, 69, 45, 84, 82, 69, 69,
+ 128, 67, 65, 65, 78, 71, 128, 67, 65, 65, 73, 128, 67, 193, 67, 48, 50,
+ 52, 128, 67, 48, 50, 51, 128, 67, 48, 50, 50, 128, 67, 48, 50, 49, 128,
+ 67, 48, 50, 48, 128, 67, 48, 49, 57, 128, 67, 48, 49, 56, 128, 67, 48,
+ 49, 55, 128, 67, 48, 49, 54, 128, 67, 48, 49, 53, 128, 67, 48, 49, 52,
+ 128, 67, 48, 49, 51, 128, 67, 48, 49, 50, 128, 67, 48, 49, 49, 128, 67,
+ 48, 49, 48, 65, 128, 67, 48, 49, 48, 128, 67, 48, 48, 57, 128, 67, 48,
+ 48, 56, 128, 67, 48, 48, 55, 128, 67, 48, 48, 54, 128, 67, 48, 48, 53,
+ 128, 67, 48, 48, 52, 128, 67, 48, 48, 51, 128, 67, 48, 48, 50, 67, 128,
+ 67, 48, 48, 50, 66, 128, 67, 48, 48, 50, 65, 128, 67, 48, 48, 50, 128,
+ 67, 48, 48, 49, 128, 67, 45, 83, 73, 77, 80, 76, 73, 70, 73, 69, 196, 67,
+ 45, 51, 57, 128, 67, 45, 49, 56, 128, 66, 90, 85, 78, 199, 66, 90, 72,
+ 201, 66, 89, 84, 197, 66, 89, 69, 76, 79, 82, 85, 83, 83, 73, 65, 78, 45,
+ 85, 75, 82, 65, 73, 78, 73, 65, 206, 66, 88, 71, 128, 66, 87, 73, 128,
+ 66, 87, 69, 69, 128, 66, 87, 69, 128, 66, 87, 65, 128, 66, 85, 85, 77,
+ 73, 83, 72, 128, 66, 85, 84, 84, 79, 78, 128, 66, 85, 84, 84, 79, 206,
+ 66, 85, 212, 66, 85, 83, 84, 211, 66, 85, 83, 212, 66, 85, 83, 83, 89,
+ 69, 82, 85, 128, 66, 85, 83, 73, 78, 69, 83, 211, 66, 85, 211, 66, 85,
+ 82, 213, 66, 85, 82, 82, 73, 84, 79, 128, 66, 85, 82, 50, 128, 66, 85,
+ 210, 66, 85, 79, 88, 128, 66, 85, 79, 80, 128, 66, 85, 78, 78, 217, 66,
+ 85, 78, 71, 128, 66, 85, 77, 80, 217, 66, 85, 76, 85, 71, 128, 66, 85,
+ 76, 85, 199, 66, 85, 76, 76, 83, 69, 89, 69, 128, 66, 85, 76, 76, 211,
+ 66, 85, 76, 76, 72, 79, 82, 78, 128, 66, 85, 76, 76, 72, 79, 82, 206, 66,
+ 85, 76, 76, 69, 84, 128, 66, 85, 76, 76, 69, 212, 66, 85, 76, 76, 128,
+ 66, 85, 76, 66, 128, 66, 85, 75, 89, 128, 66, 85, 73, 76, 68, 73, 78, 71,
+ 83, 128, 66, 85, 73, 76, 68, 73, 78, 71, 128, 66, 85, 73, 76, 68, 73, 78,
+ 199, 66, 85, 72, 73, 196, 66, 85, 71, 73, 78, 69, 83, 197, 66, 85, 71,
+ 128, 66, 85, 70, 70, 65, 76, 79, 128, 66, 85, 68, 128, 66, 85, 67, 75,
+ 76, 69, 128, 66, 85, 66, 66, 76, 69, 83, 128, 66, 85, 66, 66, 76, 69,
+ 128, 66, 83, 84, 65, 82, 128, 66, 83, 75, 85, 210, 66, 83, 75, 65, 173,
+ 66, 83, 68, 85, 211, 66, 82, 85, 83, 200, 66, 82, 79, 78, 90, 69, 128,
+ 66, 82, 79, 75, 69, 206, 66, 82, 79, 65, 196, 66, 82, 73, 83, 84, 76, 69,
+ 128, 66, 82, 73, 71, 72, 84, 78, 69, 83, 211, 66, 82, 73, 69, 70, 67, 65,
+ 83, 69, 128, 66, 82, 73, 68, 71, 197, 66, 82, 73, 68, 197, 66, 82, 73,
+ 67, 75, 128, 66, 82, 69, 86, 73, 83, 128, 66, 82, 69, 86, 69, 45, 77, 65,
+ 67, 82, 79, 78, 128, 66, 82, 69, 86, 197, 66, 82, 69, 65, 84, 200, 66,
+ 82, 69, 65, 75, 84, 72, 82, 79, 85, 71, 72, 128, 66, 82, 69, 65, 68, 128,
+ 66, 82, 68, 193, 66, 82, 65, 78, 67, 72, 73, 78, 199, 66, 82, 65, 78, 67,
+ 72, 69, 83, 128, 66, 82, 65, 78, 67, 72, 128, 66, 82, 65, 78, 67, 200,
+ 66, 82, 65, 75, 67, 69, 84, 128, 66, 82, 65, 67, 75, 69, 84, 69, 196, 66,
+ 82, 65, 67, 75, 69, 212, 66, 82, 65, 67, 69, 128, 66, 81, 128, 66, 80,
+ 72, 128, 66, 79, 89, 211, 66, 79, 89, 128, 66, 79, 87, 84, 73, 69, 128,
+ 66, 79, 87, 84, 73, 197, 66, 79, 87, 76, 73, 78, 71, 128, 66, 79, 87, 76,
+ 128, 66, 79, 87, 204, 66, 79, 87, 73, 78, 199, 66, 79, 215, 66, 79, 85,
+ 81, 85, 69, 84, 128, 66, 79, 85, 81, 85, 69, 212, 66, 79, 85, 78, 68, 65,
+ 82, 217, 66, 79, 84, 84, 79, 77, 45, 83, 72, 65, 68, 69, 196, 66, 79, 84,
+ 84, 79, 77, 45, 76, 73, 71, 72, 84, 69, 196, 66, 79, 84, 84, 79, 77, 128,
+ 66, 79, 84, 84, 79, 205, 66, 79, 84, 84, 76, 69, 128, 66, 79, 84, 84, 76,
+ 197, 66, 79, 84, 200, 66, 79, 82, 85, 84, 79, 128, 66, 79, 82, 65, 88,
+ 45, 51, 128, 66, 79, 82, 65, 88, 45, 50, 128, 66, 79, 82, 65, 88, 128,
+ 66, 79, 80, 79, 77, 79, 70, 207, 66, 79, 79, 84, 83, 128, 66, 79, 79, 84,
+ 128, 66, 79, 79, 77, 69, 82, 65, 78, 71, 128, 66, 79, 79, 75, 83, 128,
+ 66, 79, 79, 75, 77, 65, 82, 75, 128, 66, 79, 79, 75, 77, 65, 82, 203, 66,
+ 79, 78, 69, 128, 66, 79, 77, 66, 128, 66, 79, 77, 128, 66, 79, 76, 84,
+ 128, 66, 79, 76, 212, 66, 79, 72, 65, 73, 82, 73, 195, 66, 79, 68, 89,
+ 128, 66, 79, 68, 217, 66, 79, 65, 82, 128, 66, 79, 65, 128, 66, 76, 85,
+ 69, 128, 66, 76, 85, 197, 66, 76, 79, 87, 73, 78, 199, 66, 76, 79, 87,
+ 70, 73, 83, 72, 128, 66, 76, 79, 215, 66, 76, 79, 83, 83, 79, 77, 128,
+ 66, 76, 79, 79, 68, 128, 66, 76, 79, 78, 196, 66, 76, 79, 67, 75, 128,
+ 66, 76, 73, 78, 203, 66, 76, 69, 78, 68, 69, 196, 66, 76, 65, 78, 75,
+ 128, 66, 76, 65, 78, 203, 66, 76, 65, 68, 197, 66, 76, 65, 67, 75, 76,
+ 69, 84, 84, 69, 210, 66, 76, 65, 67, 75, 70, 79, 79, 212, 66, 76, 65, 67,
+ 75, 45, 76, 69, 84, 84, 69, 210, 66, 76, 65, 67, 75, 45, 70, 69, 65, 84,
+ 72, 69, 82, 69, 196, 66, 76, 65, 67, 75, 128, 66, 75, 65, 173, 66, 73,
+ 84, 84, 69, 82, 128, 66, 73, 84, 73, 78, 199, 66, 73, 84, 197, 66, 73,
+ 83, 77, 85, 84, 200, 66, 73, 83, 77, 73, 76, 76, 65, 200, 66, 73, 83, 72,
+ 79, 80, 128, 66, 73, 83, 69, 67, 84, 73, 78, 199, 66, 73, 83, 65, 72,
+ 128, 66, 73, 82, 85, 128, 66, 73, 82, 84, 72, 68, 65, 217, 66, 73, 82,
+ 71, 65, 128, 66, 73, 82, 68, 128, 66, 73, 79, 72, 65, 90, 65, 82, 196,
+ 66, 73, 78, 79, 67, 85, 76, 65, 210, 66, 73, 78, 68, 73, 78, 199, 66, 73,
+ 78, 68, 73, 128, 66, 73, 78, 65, 82, 217, 66, 73, 76, 76, 73, 79, 78, 83,
+ 128, 66, 73, 76, 76, 73, 65, 82, 68, 83, 128, 66, 73, 76, 65, 66, 73, 65,
204, 66, 73, 75, 73, 78, 73, 128, 66, 73, 71, 128, 66, 73, 199, 66, 73,
69, 84, 128, 66, 73, 68, 69, 78, 84, 65, 204, 66, 73, 68, 65, 75, 85, 79,
206, 66, 73, 67, 89, 67, 76, 73, 83, 84, 128, 66, 73, 67, 89, 67, 76, 69,
@@ -4351,178 +4729,186 @@ static unsigned char lexicon[] = {
84, 87, 69, 69, 206, 66, 69, 84, 72, 128, 66, 69, 84, 65, 128, 66, 69,
84, 193, 66, 69, 212, 66, 69, 83, 73, 68, 197, 66, 69, 82, 75, 65, 78,
65, 206, 66, 69, 82, 66, 69, 210, 66, 69, 80, 128, 66, 69, 79, 82, 195,
- 66, 69, 78, 90, 69, 78, 197, 66, 69, 78, 84, 207, 66, 69, 78, 68, 69,
- 128, 66, 69, 78, 68, 128, 66, 69, 206, 66, 69, 76, 84, 128, 66, 69, 76,
- 212, 66, 69, 76, 79, 215, 66, 69, 76, 76, 128, 66, 69, 76, 204, 66, 69,
- 76, 71, 84, 72, 79, 210, 66, 69, 76, 128, 66, 69, 73, 84, 72, 128, 66,
- 69, 72, 73, 78, 196, 66, 69, 72, 69, 72, 128, 66, 69, 72, 69, 200, 66,
- 69, 72, 128, 66, 69, 200, 66, 69, 71, 73, 78, 78, 73, 78, 71, 128, 66,
- 69, 71, 73, 78, 78, 69, 82, 128, 66, 69, 71, 73, 206, 66, 69, 70, 79, 82,
+ 66, 69, 78, 90, 69, 78, 197, 66, 69, 78, 84, 207, 66, 69, 78, 84, 128,
+ 66, 69, 78, 212, 66, 69, 78, 68, 69, 128, 66, 69, 78, 68, 128, 66, 69,
+ 78, 196, 66, 69, 206, 66, 69, 76, 84, 128, 66, 69, 76, 212, 66, 69, 76,
+ 79, 215, 66, 69, 76, 76, 72, 79, 208, 66, 69, 76, 76, 128, 66, 69, 76,
+ 204, 66, 69, 76, 71, 84, 72, 79, 210, 66, 69, 73, 84, 72, 128, 66, 69,
+ 72, 73, 78, 196, 66, 69, 72, 69, 72, 128, 66, 69, 72, 69, 200, 66, 69,
+ 72, 128, 66, 69, 200, 66, 69, 71, 73, 78, 78, 73, 78, 71, 128, 66, 69,
+ 71, 73, 78, 78, 69, 82, 128, 66, 69, 71, 73, 206, 66, 69, 70, 79, 82,
197, 66, 69, 69, 84, 76, 69, 128, 66, 69, 69, 84, 65, 128, 66, 69, 69,
210, 66, 69, 69, 72, 73, 86, 69, 128, 66, 69, 69, 72, 128, 66, 69, 69,
200, 66, 69, 67, 65, 85, 83, 69, 128, 66, 69, 65, 86, 69, 210, 66, 69,
65, 84, 73, 78, 199, 66, 69, 65, 84, 128, 66, 69, 65, 210, 66, 69, 65,
- 78, 128, 66, 69, 65, 77, 69, 196, 66, 67, 65, 68, 128, 66, 67, 65, 196,
- 66, 66, 89, 88, 128, 66, 66, 89, 84, 128, 66, 66, 89, 80, 128, 66, 66,
- 89, 128, 66, 66, 85, 88, 128, 66, 66, 85, 84, 128, 66, 66, 85, 82, 88,
- 128, 66, 66, 85, 82, 128, 66, 66, 85, 80, 128, 66, 66, 85, 79, 88, 128,
- 66, 66, 85, 79, 80, 128, 66, 66, 85, 79, 128, 66, 66, 85, 128, 66, 66,
- 79, 88, 128, 66, 66, 79, 84, 128, 66, 66, 79, 80, 128, 66, 66, 79, 128,
- 66, 66, 73, 88, 128, 66, 66, 73, 80, 128, 66, 66, 73, 69, 88, 128, 66,
- 66, 73, 69, 84, 128, 66, 66, 73, 69, 80, 128, 66, 66, 73, 69, 128, 66,
- 66, 73, 128, 66, 66, 69, 88, 128, 66, 66, 69, 80, 128, 66, 66, 69, 69,
- 128, 66, 66, 69, 128, 66, 66, 65, 88, 128, 66, 66, 65, 84, 128, 66, 66,
- 65, 80, 128, 66, 66, 65, 65, 128, 66, 66, 65, 128, 66, 65, 89, 65, 78,
- 78, 65, 128, 66, 65, 85, 128, 66, 65, 84, 84, 69, 82, 89, 128, 66, 65,
- 84, 72, 84, 85, 66, 128, 66, 65, 84, 72, 65, 77, 65, 83, 65, 84, 128, 66,
- 65, 84, 72, 128, 66, 65, 84, 200, 66, 65, 84, 65, 203, 66, 65, 83, 83,
- 65, 128, 66, 65, 83, 75, 69, 84, 66, 65, 76, 204, 66, 65, 83, 72, 75, 73,
- 210, 66, 65, 83, 72, 128, 66, 65, 83, 69, 66, 65, 76, 76, 128, 66, 65,
- 83, 69, 128, 66, 65, 83, 197, 66, 65, 82, 83, 128, 66, 65, 82, 82, 73,
- 69, 82, 128, 66, 65, 82, 82, 69, 75, 72, 128, 66, 65, 82, 82, 69, 69,
- 128, 66, 65, 82, 82, 69, 197, 66, 65, 82, 76, 73, 78, 69, 128, 66, 65,
- 82, 76, 69, 89, 128, 66, 65, 82, 73, 89, 79, 79, 83, 65, 78, 128, 66, 65,
- 82, 66, 69, 210, 66, 65, 82, 194, 66, 65, 82, 65, 50, 128, 66, 65, 210,
- 66, 65, 78, 84, 79, 67, 128, 66, 65, 78, 75, 78, 79, 84, 197, 66, 65, 78,
- 75, 128, 66, 65, 78, 203, 66, 65, 78, 68, 128, 66, 65, 78, 65, 78, 65,
- 128, 66, 65, 78, 50, 128, 66, 65, 78, 178, 66, 65, 77, 66, 79, 79, 83,
- 128, 66, 65, 77, 66, 79, 79, 128, 66, 65, 76, 85, 68, 65, 128, 66, 65,
- 76, 76, 79, 212, 66, 65, 76, 76, 79, 79, 78, 45, 83, 80, 79, 75, 69, 196,
- 66, 65, 76, 76, 79, 79, 78, 128, 66, 65, 76, 65, 71, 128, 66, 65, 76,
- 128, 66, 65, 204, 66, 65, 73, 82, 75, 65, 78, 128, 66, 65, 73, 77, 65,
- 73, 128, 66, 65, 72, 84, 128, 66, 65, 72, 73, 82, 71, 79, 77, 85, 75, 72,
- 65, 128, 66, 65, 72, 65, 82, 50, 128, 66, 65, 72, 128, 66, 65, 71, 71,
- 65, 71, 197, 66, 65, 71, 65, 128, 66, 65, 71, 51, 128, 66, 65, 199, 66,
- 65, 68, 71, 69, 82, 128, 66, 65, 68, 71, 69, 128, 66, 65, 68, 128, 66,
- 65, 67, 84, 82, 73, 65, 206, 66, 65, 67, 75, 87, 65, 82, 68, 128, 66, 65,
- 67, 75, 83, 80, 65, 67, 69, 128, 66, 65, 67, 75, 83, 76, 65, 83, 72, 128,
- 66, 65, 67, 75, 83, 76, 65, 83, 200, 66, 65, 67, 75, 72, 65, 78, 196, 66,
- 65, 67, 75, 45, 84, 73, 76, 84, 69, 196, 66, 65, 67, 75, 128, 66, 65, 67,
- 203, 66, 65, 66, 89, 128, 66, 65, 66, 217, 66, 65, 65, 82, 69, 82, 85,
- 128, 66, 65, 45, 50, 128, 66, 51, 48, 53, 128, 66, 50, 53, 57, 128, 66,
- 50, 53, 56, 128, 66, 50, 53, 55, 128, 66, 50, 53, 54, 128, 66, 50, 53,
- 53, 128, 66, 50, 53, 180, 66, 50, 53, 51, 128, 66, 50, 53, 50, 128, 66,
- 50, 53, 49, 128, 66, 50, 53, 48, 128, 66, 50, 52, 57, 128, 66, 50, 52,
- 56, 128, 66, 50, 52, 183, 66, 50, 52, 54, 128, 66, 50, 52, 53, 128, 66,
- 50, 52, 179, 66, 50, 52, 178, 66, 50, 52, 177, 66, 50, 52, 176, 66, 50,
- 51, 54, 128, 66, 50, 51, 52, 128, 66, 50, 51, 179, 66, 50, 51, 50, 128,
- 66, 50, 51, 177, 66, 50, 51, 176, 66, 50, 50, 57, 128, 66, 50, 50, 56,
- 128, 66, 50, 50, 55, 128, 66, 50, 50, 54, 128, 66, 50, 50, 181, 66, 50,
- 50, 50, 128, 66, 50, 50, 49, 128, 66, 50, 50, 176, 66, 50, 49, 57, 128,
- 66, 50, 49, 56, 128, 66, 50, 49, 55, 128, 66, 50, 49, 54, 128, 66, 50,
- 49, 53, 128, 66, 50, 49, 52, 128, 66, 50, 49, 51, 128, 66, 50, 49, 50,
- 128, 66, 50, 49, 49, 128, 66, 50, 49, 48, 128, 66, 50, 48, 57, 128, 66,
- 50, 48, 56, 128, 66, 50, 48, 55, 128, 66, 50, 48, 54, 128, 66, 50, 48,
- 53, 128, 66, 50, 48, 52, 128, 66, 50, 48, 51, 128, 66, 50, 48, 50, 128,
- 66, 50, 48, 49, 128, 66, 50, 48, 48, 128, 66, 49, 57, 177, 66, 49, 57,
- 48, 128, 66, 49, 56, 57, 128, 66, 49, 56, 53, 128, 66, 49, 56, 52, 128,
- 66, 49, 56, 51, 128, 66, 49, 56, 50, 128, 66, 49, 56, 49, 128, 66, 49,
- 56, 48, 128, 66, 49, 55, 57, 128, 66, 49, 55, 56, 128, 66, 49, 55, 55,
- 128, 66, 49, 55, 182, 66, 49, 55, 52, 128, 66, 49, 55, 179, 66, 49, 55,
- 50, 128, 66, 49, 55, 49, 128, 66, 49, 55, 48, 128, 66, 49, 54, 57, 128,
- 66, 49, 54, 56, 128, 66, 49, 54, 55, 128, 66, 49, 54, 54, 128, 66, 49,
- 54, 53, 128, 66, 49, 54, 52, 128, 66, 49, 54, 179, 66, 49, 54, 178, 66,
- 49, 54, 49, 128, 66, 49, 54, 48, 128, 66, 49, 53, 185, 66, 49, 53, 56,
- 128, 66, 49, 53, 55, 128, 66, 49, 53, 182, 66, 49, 53, 53, 128, 66, 49,
- 53, 52, 128, 66, 49, 53, 51, 128, 66, 49, 53, 50, 128, 66, 49, 53, 177,
- 66, 49, 53, 48, 128, 66, 49, 52, 54, 128, 66, 49, 52, 181, 66, 49, 52,
- 50, 128, 66, 49, 52, 177, 66, 49, 52, 176, 66, 49, 51, 181, 66, 49, 51,
- 179, 66, 49, 51, 50, 128, 66, 49, 51, 177, 66, 49, 51, 176, 66, 49, 50,
- 184, 66, 49, 50, 183, 66, 49, 50, 181, 66, 49, 50, 179, 66, 49, 50, 178,
- 66, 49, 50, 177, 66, 49, 50, 176, 66, 49, 48, 57, 205, 66, 49, 48, 57,
- 198, 66, 49, 48, 56, 205, 66, 49, 48, 56, 198, 66, 49, 48, 55, 205, 66,
- 49, 48, 55, 198, 66, 49, 48, 54, 205, 66, 49, 48, 54, 198, 66, 49, 48,
- 53, 205, 66, 49, 48, 53, 198, 66, 49, 48, 181, 66, 49, 48, 180, 66, 49,
- 48, 178, 66, 49, 48, 176, 66, 48, 57, 177, 66, 48, 57, 176, 66, 48, 56,
- 57, 128, 66, 48, 56, 183, 66, 48, 56, 54, 128, 66, 48, 56, 181, 66, 48,
- 56, 51, 128, 66, 48, 56, 50, 128, 66, 48, 56, 177, 66, 48, 56, 176, 66,
- 48, 55, 57, 128, 66, 48, 55, 184, 66, 48, 55, 183, 66, 48, 55, 182, 66,
- 48, 55, 181, 66, 48, 55, 180, 66, 48, 55, 179, 66, 48, 55, 178, 66, 48,
- 55, 177, 66, 48, 55, 176, 66, 48, 54, 185, 66, 48, 54, 184, 66, 48, 54,
- 183, 66, 48, 54, 182, 66, 48, 54, 181, 66, 48, 54, 52, 128, 66, 48, 54,
- 51, 128, 66, 48, 54, 178, 66, 48, 54, 177, 66, 48, 54, 176, 66, 48, 53,
- 185, 66, 48, 53, 184, 66, 48, 53, 183, 66, 48, 53, 54, 128, 66, 48, 53,
- 181, 66, 48, 53, 180, 66, 48, 53, 179, 66, 48, 53, 178, 66, 48, 53, 177,
- 66, 48, 53, 176, 66, 48, 52, 57, 128, 66, 48, 52, 184, 66, 48, 52, 55,
- 128, 66, 48, 52, 182, 66, 48, 52, 181, 66, 48, 52, 180, 66, 48, 52, 179,
- 66, 48, 52, 178, 66, 48, 52, 177, 66, 48, 52, 176, 66, 48, 51, 185, 66,
- 48, 51, 184, 66, 48, 51, 183, 66, 48, 51, 182, 66, 48, 51, 52, 128, 66,
- 48, 51, 179, 66, 48, 51, 178, 66, 48, 51, 177, 66, 48, 51, 176, 66, 48,
- 50, 185, 66, 48, 50, 184, 66, 48, 50, 183, 66, 48, 50, 182, 66, 48, 50,
- 181, 66, 48, 50, 180, 66, 48, 50, 179, 66, 48, 50, 50, 128, 66, 48, 50,
- 177, 66, 48, 50, 176, 66, 48, 49, 57, 128, 66, 48, 49, 56, 128, 66, 48,
- 49, 183, 66, 48, 49, 182, 66, 48, 49, 181, 66, 48, 49, 180, 66, 48, 49,
- 179, 66, 48, 49, 178, 66, 48, 49, 177, 66, 48, 49, 176, 66, 48, 48, 57,
- 128, 66, 48, 48, 185, 66, 48, 48, 56, 128, 66, 48, 48, 184, 66, 48, 48,
- 55, 128, 66, 48, 48, 183, 66, 48, 48, 54, 128, 66, 48, 48, 182, 66, 48,
- 48, 53, 65, 128, 66, 48, 48, 53, 128, 66, 48, 48, 181, 66, 48, 48, 52,
- 128, 66, 48, 48, 180, 66, 48, 48, 51, 128, 66, 48, 48, 179, 66, 48, 48,
- 50, 128, 66, 48, 48, 178, 66, 48, 48, 49, 128, 66, 48, 48, 177, 65, 90,
- 85, 128, 65, 89, 69, 210, 65, 89, 66, 128, 65, 89, 65, 72, 128, 65, 88,
- 69, 128, 65, 87, 69, 128, 65, 86, 69, 83, 84, 65, 206, 65, 86, 69, 82,
- 65, 71, 197, 65, 86, 65, 75, 82, 65, 72, 65, 83, 65, 78, 89, 65, 128, 65,
- 86, 65, 71, 82, 65, 72, 65, 128, 65, 85, 89, 65, 78, 78, 65, 128, 65, 85,
- 84, 85, 77, 78, 128, 65, 85, 84, 79, 77, 79, 66, 73, 76, 69, 128, 65, 85,
- 84, 79, 77, 65, 84, 69, 196, 65, 85, 83, 84, 82, 65, 204, 65, 85, 82, 73,
- 80, 73, 71, 77, 69, 78, 84, 128, 65, 85, 82, 65, 77, 65, 90, 68, 65, 65,
- 72, 65, 128, 65, 85, 82, 65, 77, 65, 90, 68, 65, 65, 45, 50, 128, 65, 85,
- 82, 65, 77, 65, 90, 68, 65, 65, 128, 65, 85, 78, 78, 128, 65, 85, 71, 85,
- 83, 84, 128, 65, 85, 71, 77, 69, 78, 84, 65, 84, 73, 79, 206, 65, 85, 69,
- 128, 65, 85, 66, 69, 82, 71, 73, 78, 69, 128, 65, 84, 84, 73, 195, 65,
- 84, 84, 72, 65, 67, 65, 78, 128, 65, 84, 84, 69, 78, 84, 73, 79, 78, 128,
- 65, 84, 84, 65, 203, 65, 84, 79, 205, 65, 84, 78, 65, 200, 65, 84, 77,
- 65, 65, 85, 128, 65, 84, 73, 89, 65, 128, 65, 84, 72, 76, 69, 84, 73,
- 195, 65, 84, 72, 65, 82, 86, 65, 86, 69, 68, 73, 195, 65, 84, 72, 65, 80,
- 65, 83, 67, 65, 206, 65, 83, 90, 128, 65, 83, 89, 85, 82, 193, 65, 83,
- 89, 77, 80, 84, 79, 84, 73, 67, 65, 76, 76, 217, 65, 83, 84, 82, 79, 78,
- 79, 77, 73, 67, 65, 204, 65, 83, 84, 82, 79, 76, 79, 71, 73, 67, 65, 204,
- 65, 83, 84, 79, 78, 73, 83, 72, 69, 196, 65, 83, 84, 69, 82, 73, 83, 77,
- 128, 65, 83, 84, 69, 82, 73, 83, 75, 211, 65, 83, 84, 69, 82, 73, 83, 75,
- 128, 65, 83, 84, 69, 82, 73, 83, 203, 65, 83, 84, 69, 82, 73, 83, 67, 85,
- 83, 128, 65, 83, 83, 89, 82, 73, 65, 206, 65, 83, 83, 69, 82, 84, 73, 79,
- 78, 128, 65, 83, 80, 73, 82, 65, 84, 73, 79, 78, 128, 65, 83, 80, 73, 82,
- 65, 84, 69, 196, 65, 83, 80, 69, 82, 128, 65, 83, 73, 65, 45, 65, 85, 83,
- 84, 82, 65, 76, 73, 65, 128, 65, 83, 72, 71, 65, 66, 128, 65, 83, 72, 69,
- 83, 128, 65, 83, 72, 57, 128, 65, 83, 72, 178, 65, 83, 67, 69, 78, 84,
+ 78, 128, 66, 69, 65, 77, 69, 196, 66, 69, 65, 68, 83, 128, 66, 69, 65,
+ 67, 200, 66, 67, 65, 68, 128, 66, 67, 65, 196, 66, 66, 89, 88, 128, 66,
+ 66, 89, 84, 128, 66, 66, 89, 80, 128, 66, 66, 89, 128, 66, 66, 85, 88,
+ 128, 66, 66, 85, 84, 128, 66, 66, 85, 82, 88, 128, 66, 66, 85, 82, 128,
+ 66, 66, 85, 80, 128, 66, 66, 85, 79, 88, 128, 66, 66, 85, 79, 80, 128,
+ 66, 66, 85, 79, 128, 66, 66, 85, 128, 66, 66, 79, 88, 128, 66, 66, 79,
+ 84, 128, 66, 66, 79, 80, 128, 66, 66, 79, 128, 66, 66, 73, 88, 128, 66,
+ 66, 73, 80, 128, 66, 66, 73, 69, 88, 128, 66, 66, 73, 69, 84, 128, 66,
+ 66, 73, 69, 80, 128, 66, 66, 73, 69, 128, 66, 66, 73, 128, 66, 66, 69,
+ 88, 128, 66, 66, 69, 80, 128, 66, 66, 69, 69, 128, 66, 66, 69, 128, 66,
+ 66, 65, 88, 128, 66, 66, 65, 84, 128, 66, 66, 65, 80, 128, 66, 66, 65,
+ 65, 128, 66, 66, 65, 128, 66, 65, 89, 65, 78, 78, 65, 128, 66, 65, 85,
+ 128, 66, 65, 84, 84, 69, 82, 89, 128, 66, 65, 84, 72, 84, 85, 66, 128,
+ 66, 65, 84, 72, 65, 77, 65, 83, 65, 84, 128, 66, 65, 84, 72, 128, 66, 65,
+ 84, 200, 66, 65, 84, 65, 203, 66, 65, 83, 83, 65, 128, 66, 65, 83, 83,
+ 193, 66, 65, 83, 75, 69, 84, 66, 65, 76, 204, 66, 65, 83, 72, 75, 73,
+ 210, 66, 65, 83, 72, 128, 66, 65, 83, 69, 76, 73, 78, 197, 66, 65, 83,
+ 69, 66, 65, 76, 76, 128, 66, 65, 83, 69, 128, 66, 65, 83, 197, 66, 65,
+ 82, 83, 128, 66, 65, 82, 82, 73, 69, 82, 128, 66, 65, 82, 82, 69, 75, 72,
+ 128, 66, 65, 82, 82, 69, 69, 128, 66, 65, 82, 82, 69, 197, 66, 65, 82,
+ 76, 73, 78, 69, 128, 66, 65, 82, 76, 69, 89, 128, 66, 65, 82, 73, 89, 79,
+ 79, 83, 65, 78, 128, 66, 65, 82, 66, 69, 210, 66, 65, 82, 65, 50, 128,
+ 66, 65, 210, 66, 65, 78, 84, 79, 67, 128, 66, 65, 78, 75, 78, 79, 84,
+ 197, 66, 65, 78, 75, 128, 66, 65, 78, 203, 66, 65, 78, 68, 128, 66, 65,
+ 78, 65, 78, 65, 128, 66, 65, 78, 50, 128, 66, 65, 78, 178, 66, 65, 77,
+ 66, 79, 79, 83, 128, 66, 65, 77, 66, 79, 79, 128, 66, 65, 76, 85, 68, 65,
+ 128, 66, 65, 76, 76, 80, 79, 73, 78, 212, 66, 65, 76, 76, 79, 84, 128,
+ 66, 65, 76, 76, 79, 212, 66, 65, 76, 76, 79, 79, 78, 45, 83, 80, 79, 75,
+ 69, 196, 66, 65, 76, 76, 79, 79, 78, 128, 66, 65, 76, 65, 71, 128, 66,
+ 65, 76, 128, 66, 65, 204, 66, 65, 73, 82, 75, 65, 78, 128, 66, 65, 73,
+ 77, 65, 73, 128, 66, 65, 72, 84, 128, 66, 65, 72, 73, 82, 71, 79, 77, 85,
+ 75, 72, 65, 128, 66, 65, 72, 65, 82, 50, 128, 66, 65, 72, 65, 82, 178,
+ 66, 65, 72, 128, 66, 65, 71, 83, 128, 66, 65, 71, 71, 65, 71, 197, 66,
+ 65, 71, 65, 128, 66, 65, 71, 51, 128, 66, 65, 199, 66, 65, 68, 77, 73,
+ 78, 84, 79, 206, 66, 65, 68, 71, 69, 82, 128, 66, 65, 68, 71, 69, 128,
+ 66, 65, 68, 128, 66, 65, 196, 66, 65, 67, 84, 82, 73, 65, 206, 66, 65,
+ 67, 75, 87, 65, 82, 68, 128, 66, 65, 67, 75, 83, 80, 65, 67, 69, 128, 66,
+ 65, 67, 75, 83, 76, 65, 83, 72, 128, 66, 65, 67, 75, 83, 76, 65, 83, 200,
+ 66, 65, 67, 75, 83, 76, 65, 78, 84, 69, 196, 66, 65, 67, 75, 72, 65, 78,
+ 196, 66, 65, 67, 75, 45, 84, 73, 76, 84, 69, 196, 66, 65, 67, 75, 128,
+ 66, 65, 67, 203, 66, 65, 66, 89, 128, 66, 65, 66, 217, 66, 65, 65, 82,
+ 69, 82, 85, 128, 66, 65, 45, 50, 128, 66, 51, 48, 53, 128, 66, 50, 53,
+ 57, 128, 66, 50, 53, 56, 128, 66, 50, 53, 55, 128, 66, 50, 53, 54, 128,
+ 66, 50, 53, 53, 128, 66, 50, 53, 180, 66, 50, 53, 51, 128, 66, 50, 53,
+ 50, 128, 66, 50, 53, 49, 128, 66, 50, 53, 48, 128, 66, 50, 52, 57, 128,
+ 66, 50, 52, 56, 128, 66, 50, 52, 183, 66, 50, 52, 54, 128, 66, 50, 52,
+ 53, 128, 66, 50, 52, 179, 66, 50, 52, 178, 66, 50, 52, 177, 66, 50, 52,
+ 176, 66, 50, 51, 54, 128, 66, 50, 51, 52, 128, 66, 50, 51, 179, 66, 50,
+ 51, 50, 128, 66, 50, 51, 177, 66, 50, 51, 176, 66, 50, 50, 57, 128, 66,
+ 50, 50, 56, 128, 66, 50, 50, 55, 128, 66, 50, 50, 54, 128, 66, 50, 50,
+ 181, 66, 50, 50, 50, 128, 66, 50, 50, 49, 128, 66, 50, 50, 176, 66, 50,
+ 49, 57, 128, 66, 50, 49, 56, 128, 66, 50, 49, 55, 128, 66, 50, 49, 54,
+ 128, 66, 50, 49, 53, 128, 66, 50, 49, 52, 128, 66, 50, 49, 51, 128, 66,
+ 50, 49, 50, 128, 66, 50, 49, 49, 128, 66, 50, 49, 48, 128, 66, 50, 48,
+ 57, 128, 66, 50, 48, 56, 128, 66, 50, 48, 55, 128, 66, 50, 48, 54, 128,
+ 66, 50, 48, 53, 128, 66, 50, 48, 52, 128, 66, 50, 48, 51, 128, 66, 50,
+ 48, 50, 128, 66, 50, 48, 49, 128, 66, 50, 48, 48, 128, 66, 49, 57, 177,
+ 66, 49, 57, 48, 128, 66, 49, 56, 57, 128, 66, 49, 56, 53, 128, 66, 49,
+ 56, 52, 128, 66, 49, 56, 51, 128, 66, 49, 56, 50, 128, 66, 49, 56, 49,
+ 128, 66, 49, 56, 48, 128, 66, 49, 55, 57, 128, 66, 49, 55, 56, 128, 66,
+ 49, 55, 55, 128, 66, 49, 55, 182, 66, 49, 55, 52, 128, 66, 49, 55, 179,
+ 66, 49, 55, 50, 128, 66, 49, 55, 49, 128, 66, 49, 55, 48, 128, 66, 49,
+ 54, 57, 128, 66, 49, 54, 56, 128, 66, 49, 54, 55, 128, 66, 49, 54, 54,
+ 128, 66, 49, 54, 53, 128, 66, 49, 54, 52, 128, 66, 49, 54, 179, 66, 49,
+ 54, 178, 66, 49, 54, 49, 128, 66, 49, 54, 48, 128, 66, 49, 53, 185, 66,
+ 49, 53, 56, 128, 66, 49, 53, 55, 128, 66, 49, 53, 182, 66, 49, 53, 53,
+ 128, 66, 49, 53, 52, 128, 66, 49, 53, 51, 128, 66, 49, 53, 50, 128, 66,
+ 49, 53, 177, 66, 49, 53, 48, 128, 66, 49, 52, 54, 128, 66, 49, 52, 181,
+ 66, 49, 52, 50, 128, 66, 49, 52, 177, 66, 49, 52, 176, 66, 49, 51, 181,
+ 66, 49, 51, 179, 66, 49, 51, 50, 128, 66, 49, 51, 177, 66, 49, 51, 176,
+ 66, 49, 50, 184, 66, 49, 50, 183, 66, 49, 50, 181, 66, 49, 50, 179, 66,
+ 49, 50, 178, 66, 49, 50, 177, 66, 49, 50, 176, 66, 49, 48, 57, 205, 66,
+ 49, 48, 57, 198, 66, 49, 48, 56, 205, 66, 49, 48, 56, 198, 66, 49, 48,
+ 55, 205, 66, 49, 48, 55, 198, 66, 49, 48, 54, 205, 66, 49, 48, 54, 198,
+ 66, 49, 48, 53, 205, 66, 49, 48, 53, 198, 66, 49, 48, 181, 66, 49, 48,
+ 180, 66, 49, 48, 178, 66, 49, 48, 176, 66, 48, 57, 177, 66, 48, 57, 176,
+ 66, 48, 56, 57, 128, 66, 48, 56, 183, 66, 48, 56, 54, 128, 66, 48, 56,
+ 181, 66, 48, 56, 51, 128, 66, 48, 56, 50, 128, 66, 48, 56, 177, 66, 48,
+ 56, 176, 66, 48, 55, 57, 128, 66, 48, 55, 184, 66, 48, 55, 183, 66, 48,
+ 55, 182, 66, 48, 55, 181, 66, 48, 55, 180, 66, 48, 55, 179, 66, 48, 55,
+ 178, 66, 48, 55, 177, 66, 48, 55, 176, 66, 48, 54, 185, 66, 48, 54, 184,
+ 66, 48, 54, 183, 66, 48, 54, 182, 66, 48, 54, 181, 66, 48, 54, 52, 128,
+ 66, 48, 54, 51, 128, 66, 48, 54, 178, 66, 48, 54, 177, 66, 48, 54, 176,
+ 66, 48, 53, 185, 66, 48, 53, 184, 66, 48, 53, 183, 66, 48, 53, 54, 128,
+ 66, 48, 53, 181, 66, 48, 53, 180, 66, 48, 53, 179, 66, 48, 53, 178, 66,
+ 48, 53, 177, 66, 48, 53, 176, 66, 48, 52, 57, 128, 66, 48, 52, 184, 66,
+ 48, 52, 55, 128, 66, 48, 52, 182, 66, 48, 52, 181, 66, 48, 52, 180, 66,
+ 48, 52, 179, 66, 48, 52, 178, 66, 48, 52, 177, 66, 48, 52, 176, 66, 48,
+ 51, 185, 66, 48, 51, 184, 66, 48, 51, 183, 66, 48, 51, 182, 66, 48, 51,
+ 52, 128, 66, 48, 51, 179, 66, 48, 51, 178, 66, 48, 51, 177, 66, 48, 51,
+ 176, 66, 48, 50, 185, 66, 48, 50, 184, 66, 48, 50, 183, 66, 48, 50, 182,
+ 66, 48, 50, 181, 66, 48, 50, 180, 66, 48, 50, 179, 66, 48, 50, 50, 128,
+ 66, 48, 50, 177, 66, 48, 50, 176, 66, 48, 49, 57, 128, 66, 48, 49, 56,
+ 128, 66, 48, 49, 183, 66, 48, 49, 182, 66, 48, 49, 181, 66, 48, 49, 180,
+ 66, 48, 49, 179, 66, 48, 49, 178, 66, 48, 49, 177, 66, 48, 49, 176, 66,
+ 48, 48, 57, 128, 66, 48, 48, 185, 66, 48, 48, 56, 128, 66, 48, 48, 184,
+ 66, 48, 48, 55, 128, 66, 48, 48, 183, 66, 48, 48, 54, 128, 66, 48, 48,
+ 182, 66, 48, 48, 53, 65, 128, 66, 48, 48, 53, 128, 66, 48, 48, 181, 66,
+ 48, 48, 52, 128, 66, 48, 48, 180, 66, 48, 48, 51, 128, 66, 48, 48, 179,
+ 66, 48, 48, 50, 128, 66, 48, 48, 178, 66, 48, 48, 49, 128, 66, 48, 48,
+ 177, 65, 90, 85, 128, 65, 89, 66, 128, 65, 89, 65, 72, 128, 65, 88, 69,
+ 128, 65, 87, 69, 128, 65, 87, 65, 217, 65, 86, 69, 83, 84, 65, 206, 65,
+ 86, 69, 82, 65, 71, 197, 65, 86, 65, 75, 82, 65, 72, 65, 83, 65, 78, 89,
+ 65, 128, 65, 86, 65, 71, 82, 65, 72, 65, 128, 65, 85, 89, 65, 78, 78, 65,
+ 128, 65, 85, 84, 85, 77, 78, 128, 65, 85, 84, 79, 77, 79, 66, 73, 76, 69,
+ 128, 65, 85, 84, 79, 77, 65, 84, 69, 196, 65, 85, 83, 84, 82, 65, 204,
+ 65, 85, 82, 73, 80, 73, 71, 77, 69, 78, 84, 128, 65, 85, 82, 65, 77, 65,
+ 90, 68, 65, 65, 72, 65, 128, 65, 85, 82, 65, 77, 65, 90, 68, 65, 65, 45,
+ 50, 128, 65, 85, 82, 65, 77, 65, 90, 68, 65, 65, 128, 65, 85, 78, 78,
+ 128, 65, 85, 71, 85, 83, 84, 128, 65, 85, 71, 77, 69, 78, 84, 65, 84, 73,
+ 79, 206, 65, 85, 69, 128, 65, 85, 66, 69, 82, 71, 73, 78, 69, 128, 65,
+ 84, 84, 73, 195, 65, 84, 84, 72, 65, 67, 65, 78, 128, 65, 84, 84, 69, 78,
+ 84, 73, 79, 78, 128, 65, 84, 84, 65, 203, 65, 84, 84, 65, 67, 72, 69,
+ 196, 65, 84, 79, 205, 65, 84, 78, 65, 200, 65, 84, 77, 65, 65, 85, 128,
+ 65, 84, 73, 89, 65, 128, 65, 84, 72, 76, 69, 84, 73, 195, 65, 84, 72, 65,
+ 82, 86, 65, 86, 69, 68, 73, 195, 65, 84, 72, 65, 80, 65, 83, 67, 65, 206,
+ 65, 83, 90, 128, 65, 83, 89, 85, 82, 193, 65, 83, 89, 77, 80, 84, 79, 84,
+ 73, 67, 65, 76, 76, 217, 65, 83, 84, 82, 79, 78, 79, 77, 73, 67, 65, 204,
+ 65, 83, 84, 82, 79, 76, 79, 71, 73, 67, 65, 204, 65, 83, 84, 79, 78, 73,
+ 83, 72, 69, 196, 65, 83, 84, 69, 82, 73, 83, 77, 128, 65, 83, 84, 69, 82,
+ 73, 83, 75, 211, 65, 83, 84, 69, 82, 73, 83, 75, 128, 65, 83, 84, 69, 82,
+ 73, 83, 203, 65, 83, 84, 69, 82, 73, 83, 67, 85, 83, 128, 65, 83, 83, 89,
+ 82, 73, 65, 206, 65, 83, 83, 69, 82, 84, 73, 79, 78, 128, 65, 83, 80, 73,
+ 82, 65, 84, 73, 79, 78, 128, 65, 83, 80, 73, 82, 65, 84, 69, 196, 65, 83,
+ 80, 69, 82, 128, 65, 83, 73, 65, 45, 65, 85, 83, 84, 82, 65, 76, 73, 65,
+ 128, 65, 83, 72, 71, 65, 66, 128, 65, 83, 72, 69, 83, 128, 65, 83, 72,
+ 57, 128, 65, 83, 72, 51, 128, 65, 83, 72, 178, 65, 83, 67, 69, 78, 84,
128, 65, 83, 67, 69, 78, 68, 73, 78, 199, 65, 83, 65, 76, 50, 128, 65,
82, 85, 72, 85, 65, 128, 65, 82, 84, 73, 83, 212, 65, 82, 84, 73, 67, 85,
76, 65, 84, 69, 196, 65, 82, 84, 65, 66, 197, 65, 82, 83, 69, 79, 83,
128, 65, 82, 83, 69, 79, 211, 65, 82, 83, 69, 78, 73, 67, 128, 65, 82,
82, 79, 87, 83, 128, 65, 82, 82, 79, 87, 211, 65, 82, 82, 79, 87, 72, 69,
- 65, 68, 128, 65, 82, 82, 79, 87, 72, 69, 65, 196, 65, 82, 82, 79, 87, 45,
- 84, 65, 73, 76, 128, 65, 82, 82, 73, 86, 69, 128, 65, 82, 82, 65, 89,
- 128, 65, 82, 80, 69, 71, 71, 73, 65, 84, 207, 65, 82, 79, 85, 83, 73, 78,
- 199, 65, 82, 79, 85, 82, 193, 65, 82, 79, 85, 78, 68, 45, 80, 82, 79, 70,
- 73, 76, 69, 128, 65, 82, 79, 85, 78, 196, 65, 82, 77, 89, 128, 65, 82,
- 77, 79, 85, 82, 128, 65, 82, 205, 65, 82, 76, 65, 85, 199, 65, 82, 75,
- 84, 73, 75, 207, 65, 82, 75, 65, 66, 128, 65, 82, 75, 65, 65, 78, 85,
+ 65, 68, 83, 128, 65, 82, 82, 79, 87, 72, 69, 65, 68, 128, 65, 82, 82, 79,
+ 87, 72, 69, 65, 196, 65, 82, 82, 79, 87, 45, 84, 65, 73, 76, 128, 65, 82,
+ 82, 73, 86, 73, 78, 71, 128, 65, 82, 82, 73, 86, 69, 128, 65, 82, 82, 65,
+ 89, 128, 65, 82, 80, 69, 71, 71, 73, 65, 84, 207, 65, 82, 79, 85, 83, 73,
+ 78, 199, 65, 82, 79, 85, 82, 193, 65, 82, 79, 85, 78, 68, 45, 80, 82, 79,
+ 70, 73, 76, 69, 128, 65, 82, 79, 85, 78, 196, 65, 82, 77, 89, 128, 65,
+ 82, 77, 79, 85, 82, 128, 65, 82, 205, 65, 82, 76, 65, 85, 199, 65, 82,
+ 75, 84, 73, 75, 207, 65, 82, 75, 65, 66, 128, 65, 82, 75, 65, 65, 78, 85,
128, 65, 82, 73, 83, 84, 69, 82, 65, 128, 65, 82, 73, 83, 84, 69, 82,
193, 65, 82, 73, 69, 83, 128, 65, 82, 71, 79, 84, 69, 82, 73, 128, 65,
82, 71, 79, 83, 89, 78, 84, 72, 69, 84, 79, 78, 128, 65, 82, 71, 73, 128,
65, 82, 69, 80, 65, 128, 65, 82, 69, 65, 128, 65, 82, 68, 72, 65, 86, 73,
- 83, 65, 82, 71, 65, 128, 65, 82, 67, 72, 65, 73, 79, 78, 128, 65, 82, 67,
- 72, 65, 73, 79, 206, 65, 82, 67, 72, 65, 73, 195, 65, 82, 67, 200, 65,
- 82, 67, 128, 65, 82, 195, 65, 82, 65, 77, 65, 73, 195, 65, 82, 65, 69,
- 65, 69, 128, 65, 82, 65, 69, 65, 45, 85, 128, 65, 82, 65, 69, 65, 45, 73,
- 128, 65, 82, 65, 69, 65, 45, 69, 79, 128, 65, 82, 65, 69, 65, 45, 69,
- 128, 65, 82, 65, 69, 65, 45, 65, 128, 65, 82, 65, 68, 128, 65, 82, 65,
- 196, 65, 82, 65, 66, 73, 67, 45, 73, 78, 68, 73, 195, 65, 82, 65, 66, 73,
- 65, 206, 65, 82, 45, 82, 65, 72, 77, 65, 206, 65, 82, 45, 82, 65, 72, 69,
- 69, 77, 128, 65, 81, 85, 65, 82, 73, 85, 83, 128, 65, 81, 85, 65, 70, 79,
- 82, 84, 73, 83, 128, 65, 81, 85, 193, 65, 80, 85, 206, 65, 80, 82, 73,
- 76, 128, 65, 80, 80, 82, 79, 88, 73, 77, 65, 84, 69, 76, 217, 65, 80, 80,
- 82, 79, 88, 73, 77, 65, 84, 69, 128, 65, 80, 80, 82, 79, 65, 67, 72, 69,
- 211, 65, 80, 80, 82, 79, 65, 67, 72, 128, 65, 80, 80, 76, 73, 67, 65, 84,
- 73, 79, 78, 128, 65, 80, 80, 76, 73, 67, 65, 84, 73, 79, 206, 65, 80, 79,
- 84, 72, 69, 83, 128, 65, 80, 79, 84, 72, 69, 77, 65, 128, 65, 80, 79, 83,
- 84, 82, 79, 80, 72, 69, 128, 65, 80, 79, 83, 84, 82, 79, 70, 79, 83, 128,
- 65, 80, 79, 83, 84, 82, 79, 70, 79, 211, 65, 80, 79, 83, 84, 82, 79, 70,
- 79, 201, 65, 80, 79, 68, 69, 88, 73, 65, 128, 65, 80, 79, 68, 69, 82, 77,
- 193, 65, 80, 76, 79, 85, 78, 128, 65, 80, 76, 201, 65, 80, 204, 65, 80,
- 73, 78, 128, 65, 80, 69, 83, 207, 65, 80, 67, 128, 65, 80, 65, 82, 84,
- 128, 65, 80, 65, 65, 84, 79, 128, 65, 78, 85, 83, 86, 65, 82, 65, 89, 65,
- 128, 65, 78, 85, 83, 86, 65, 82, 65, 128, 65, 78, 85, 83, 86, 65, 82,
- 193, 65, 78, 85, 68, 65, 84, 84, 65, 128, 65, 78, 85, 68, 65, 84, 84,
+ 83, 65, 82, 71, 65, 128, 65, 82, 68, 72, 65, 67, 65, 78, 68, 82, 65, 128,
+ 65, 82, 67, 72, 65, 73, 79, 78, 128, 65, 82, 67, 72, 65, 73, 79, 206, 65,
+ 82, 67, 72, 65, 73, 195, 65, 82, 67, 200, 65, 82, 67, 128, 65, 82, 195,
+ 65, 82, 65, 77, 65, 73, 195, 65, 82, 65, 69, 65, 69, 128, 65, 82, 65, 69,
+ 65, 45, 85, 128, 65, 82, 65, 69, 65, 45, 73, 128, 65, 82, 65, 69, 65, 45,
+ 69, 79, 128, 65, 82, 65, 69, 65, 45, 69, 128, 65, 82, 65, 69, 65, 45, 65,
+ 128, 65, 82, 65, 68, 128, 65, 82, 65, 196, 65, 82, 65, 66, 73, 67, 45,
+ 73, 78, 68, 73, 195, 65, 82, 65, 66, 73, 65, 206, 65, 82, 45, 82, 65, 72,
+ 77, 65, 206, 65, 82, 45, 82, 65, 72, 69, 69, 77, 128, 65, 81, 85, 65, 82,
+ 73, 85, 83, 128, 65, 81, 85, 65, 70, 79, 82, 84, 73, 83, 128, 65, 81, 85,
+ 193, 65, 80, 85, 206, 65, 80, 82, 73, 76, 128, 65, 80, 80, 82, 79, 88,
+ 73, 77, 65, 84, 69, 76, 217, 65, 80, 80, 82, 79, 88, 73, 77, 65, 84, 69,
+ 128, 65, 80, 80, 82, 79, 65, 67, 72, 69, 211, 65, 80, 80, 82, 79, 65, 67,
+ 72, 128, 65, 80, 80, 76, 73, 67, 65, 84, 73, 79, 78, 128, 65, 80, 80, 76,
+ 73, 67, 65, 84, 73, 79, 206, 65, 80, 79, 84, 72, 69, 83, 128, 65, 80, 79,
+ 84, 72, 69, 77, 65, 128, 65, 80, 79, 83, 84, 82, 79, 80, 72, 69, 128, 65,
+ 80, 79, 83, 84, 82, 79, 70, 79, 83, 128, 65, 80, 79, 83, 84, 82, 79, 70,
+ 79, 211, 65, 80, 79, 83, 84, 82, 79, 70, 79, 201, 65, 80, 79, 68, 69, 88,
+ 73, 65, 128, 65, 80, 79, 68, 69, 82, 77, 193, 65, 80, 76, 79, 85, 78,
+ 128, 65, 80, 76, 201, 65, 80, 204, 65, 80, 73, 78, 128, 65, 80, 69, 83,
+ 207, 65, 80, 67, 128, 65, 80, 65, 82, 84, 128, 65, 80, 65, 65, 84, 79,
+ 128, 65, 79, 85, 128, 65, 79, 82, 128, 65, 78, 85, 83, 86, 65, 82, 65,
+ 89, 65, 128, 65, 78, 85, 83, 86, 65, 82, 65, 128, 65, 78, 85, 83, 86, 65,
+ 82, 193, 65, 78, 85, 68, 65, 84, 84, 65, 128, 65, 78, 85, 68, 65, 84, 84,
193, 65, 78, 84, 73, 82, 69, 83, 84, 82, 73, 67, 84, 73, 79, 78, 128, 65,
78, 84, 73, 77, 79, 78, 89, 45, 50, 128, 65, 78, 84, 73, 77, 79, 78, 89,
128, 65, 78, 84, 73, 77, 79, 78, 217, 65, 78, 84, 73, 77, 79, 78, 73, 65,
@@ -4530,15308 +4916,18348 @@ static unsigned char lexicon[] = {
75, 69, 78, 79, 75, 89, 76, 73, 83, 77, 65, 128, 65, 78, 84, 73, 70, 79,
78, 73, 65, 128, 65, 78, 84, 73, 67, 76, 79, 67, 75, 87, 73, 83, 69, 45,
82, 79, 84, 65, 84, 69, 196, 65, 78, 84, 73, 67, 76, 79, 67, 75, 87, 73,
- 83, 197, 65, 78, 84, 69, 78, 78, 65, 128, 65, 78, 84, 69, 78, 78, 193,
- 65, 78, 84, 65, 82, 71, 79, 77, 85, 75, 72, 65, 128, 65, 78, 83, 85, 218,
- 65, 78, 83, 72, 69, 128, 65, 78, 80, 69, 65, 128, 65, 78, 207, 65, 78,
- 78, 85, 73, 84, 217, 65, 78, 78, 79, 84, 65, 84, 73, 79, 206, 65, 78, 78,
- 65, 65, 85, 128, 65, 78, 75, 72, 128, 65, 78, 74, 73, 128, 65, 78, 72,
- 85, 128, 65, 78, 71, 85, 76, 65, 82, 128, 65, 78, 71, 85, 73, 83, 72, 69,
- 196, 65, 78, 71, 83, 84, 82, 79, 205, 65, 78, 71, 82, 217, 65, 78, 71,
- 75, 72, 65, 78, 75, 72, 85, 128, 65, 78, 71, 69, 210, 65, 78, 71, 69, 76,
- 128, 65, 78, 71, 69, 68, 128, 65, 78, 68, 65, 80, 128, 65, 78, 67, 79,
- 82, 65, 128, 65, 78, 67, 72, 79, 82, 128, 65, 78, 65, 84, 82, 73, 67, 72,
- 73, 83, 77, 65, 128, 65, 78, 65, 80, 128, 65, 77, 80, 83, 128, 65, 77,
- 80, 69, 82, 83, 65, 78, 68, 128, 65, 77, 79, 85, 78, 212, 65, 77, 69, 82,
- 73, 67, 65, 83, 128, 65, 77, 69, 82, 73, 67, 65, 206, 65, 77, 66, 85, 76,
- 65, 78, 67, 69, 128, 65, 77, 66, 193, 65, 77, 65, 82, 128, 65, 77, 65,
- 210, 65, 77, 65, 76, 71, 65, 77, 65, 84, 73, 79, 206, 65, 77, 65, 76, 71,
- 65, 77, 128, 65, 76, 86, 69, 79, 76, 65, 210, 65, 76, 85, 77, 128, 65,
- 76, 84, 69, 82, 78, 65, 84, 73, 86, 197, 65, 76, 84, 69, 82, 78, 65, 84,
- 73, 79, 206, 65, 76, 84, 69, 82, 78, 65, 84, 197, 65, 76, 84, 65, 128,
- 65, 76, 80, 72, 65, 128, 65, 76, 80, 72, 193, 65, 76, 80, 65, 80, 82, 65,
- 78, 65, 128, 65, 76, 80, 65, 80, 82, 65, 65, 78, 193, 65, 76, 80, 65,
- 128, 65, 76, 77, 79, 83, 212, 65, 76, 77, 128, 65, 76, 76, 79, 128, 65,
- 76, 76, 73, 65, 78, 67, 69, 128, 65, 76, 76, 201, 65, 76, 76, 65, 200,
- 65, 76, 75, 65, 76, 73, 45, 50, 128, 65, 76, 75, 65, 76, 73, 128, 65, 76,
- 73, 71, 78, 69, 196, 65, 76, 73, 70, 85, 128, 65, 76, 73, 69, 78, 128,
- 65, 76, 73, 69, 206, 65, 76, 71, 73, 218, 65, 76, 70, 65, 128, 65, 76,
- 69, 85, 212, 65, 76, 69, 82, 84, 128, 65, 76, 69, 80, 72, 128, 65, 76,
- 69, 77, 66, 73, 67, 128, 65, 76, 69, 70, 128, 65, 76, 65, 89, 72, 69,
- 128, 65, 76, 65, 89, 72, 197, 65, 76, 65, 82, 205, 65, 76, 65, 80, 72,
- 128, 65, 76, 45, 76, 65, 75, 85, 78, 65, 128, 65, 75, 84, 73, 69, 83, 69,
- 76, 83, 75, 65, 66, 128, 65, 75, 83, 65, 128, 65, 75, 72, 77, 73, 77, 73,
- 195, 65, 75, 66, 65, 210, 65, 75, 65, 82, 65, 128, 65, 75, 65, 82, 193,
- 65, 73, 89, 65, 78, 78, 65, 128, 65, 73, 86, 73, 76, 73, 203, 65, 73, 84,
- 79, 206, 65, 73, 82, 80, 76, 65, 78, 69, 128, 65, 73, 78, 213, 65, 73,
- 78, 78, 128, 65, 73, 76, 77, 128, 65, 73, 75, 65, 82, 65, 128, 65, 73,
- 72, 86, 85, 83, 128, 65, 72, 83, 68, 65, 128, 65, 72, 83, 65, 128, 65,
- 72, 65, 78, 199, 65, 72, 65, 71, 71, 65, 210, 65, 72, 65, 68, 128, 65,
- 71, 85, 78, 71, 128, 65, 71, 79, 71, 201, 65, 71, 71, 82, 65, 86, 65, 84,
- 73, 79, 78, 128, 65, 71, 71, 82, 65, 86, 65, 84, 69, 196, 65, 71, 65, 73,
- 78, 128, 65, 70, 84, 69, 210, 65, 70, 83, 65, 65, 81, 128, 65, 70, 82,
- 73, 67, 65, 206, 65, 70, 79, 82, 69, 77, 69, 78, 84, 73, 79, 78, 69, 68,
- 128, 65, 70, 71, 72, 65, 78, 201, 65, 70, 70, 82, 73, 67, 65, 84, 73, 79,
- 206, 65, 69, 89, 65, 78, 78, 65, 128, 65, 69, 89, 128, 65, 69, 83, 67,
- 85, 76, 65, 80, 73, 85, 83, 128, 65, 69, 83, 67, 128, 65, 69, 83, 128,
- 65, 69, 82, 73, 65, 204, 65, 69, 82, 128, 65, 69, 76, 65, 45, 80, 73, 76,
- 76, 65, 128, 65, 69, 76, 128, 65, 69, 75, 128, 65, 69, 71, 69, 65, 206,
- 65, 69, 71, 128, 65, 69, 69, 89, 65, 78, 78, 65, 128, 65, 69, 69, 128,
- 65, 69, 68, 65, 45, 80, 73, 76, 76, 65, 128, 65, 69, 68, 128, 65, 69, 66,
- 128, 65, 68, 86, 65, 78, 84, 65, 71, 69, 128, 65, 68, 86, 65, 78, 67, 69,
- 128, 65, 68, 69, 71, 128, 65, 68, 69, 199, 65, 68, 68, 82, 69, 83, 83,
- 69, 196, 65, 68, 68, 82, 69, 83, 211, 65, 68, 68, 65, 75, 128, 65, 68,
- 65, 203, 65, 67, 85, 84, 69, 45, 77, 65, 67, 82, 79, 78, 128, 65, 67, 85,
- 84, 69, 45, 71, 82, 65, 86, 69, 45, 65, 67, 85, 84, 69, 128, 65, 67, 85,
- 84, 197, 65, 67, 84, 85, 65, 76, 76, 217, 65, 67, 84, 73, 86, 65, 84,
- 197, 65, 67, 82, 79, 80, 72, 79, 78, 73, 195, 65, 67, 75, 78, 79, 87, 76,
- 69, 68, 71, 69, 128, 65, 67, 67, 85, 77, 85, 76, 65, 84, 73, 79, 78, 128,
- 65, 67, 67, 79, 85, 78, 212, 65, 67, 67, 69, 80, 84, 128, 65, 67, 67, 69,
- 78, 84, 45, 83, 84, 65, 67, 67, 65, 84, 79, 128, 65, 67, 67, 69, 78, 84,
- 128, 65, 67, 67, 69, 78, 212, 65, 67, 65, 68, 69, 77, 217, 65, 66, 89,
- 83, 77, 65, 204, 65, 66, 85, 78, 68, 65, 78, 67, 69, 128, 65, 66, 75, 72,
- 65, 83, 73, 65, 206, 65, 66, 66, 82, 69, 86, 73, 65, 84, 73, 79, 206, 65,
- 66, 65, 70, 73, 76, 73, 128, 65, 66, 178, 65, 65, 89, 65, 78, 78, 65,
- 128, 65, 65, 89, 128, 65, 65, 87, 128, 65, 65, 79, 128, 65, 65, 74, 128,
- 65, 65, 66, 65, 65, 70, 73, 76, 73, 128, 65, 65, 48, 51, 50, 128, 65, 65,
- 48, 51, 49, 128, 65, 65, 48, 51, 48, 128, 65, 65, 48, 50, 57, 128, 65,
- 65, 48, 50, 56, 128, 65, 65, 48, 50, 55, 128, 65, 65, 48, 50, 54, 128,
- 65, 65, 48, 50, 53, 128, 65, 65, 48, 50, 52, 128, 65, 65, 48, 50, 51,
- 128, 65, 65, 48, 50, 50, 128, 65, 65, 48, 50, 49, 128, 65, 65, 48, 50,
- 48, 128, 65, 65, 48, 49, 57, 128, 65, 65, 48, 49, 56, 128, 65, 65, 48,
- 49, 55, 128, 65, 65, 48, 49, 54, 128, 65, 65, 48, 49, 53, 128, 65, 65,
- 48, 49, 52, 128, 65, 65, 48, 49, 51, 128, 65, 65, 48, 49, 50, 128, 65,
- 65, 48, 49, 49, 128, 65, 65, 48, 49, 48, 128, 65, 65, 48, 48, 57, 128,
- 65, 65, 48, 48, 56, 128, 65, 65, 48, 48, 55, 66, 128, 65, 65, 48, 48, 55,
- 65, 128, 65, 65, 48, 48, 55, 128, 65, 65, 48, 48, 54, 128, 65, 65, 48,
- 48, 53, 128, 65, 65, 48, 48, 52, 128, 65, 65, 48, 48, 51, 128, 65, 65,
- 48, 48, 50, 128, 65, 65, 48, 48, 49, 128, 65, 48, 55, 48, 128, 65, 48,
- 54, 57, 128, 65, 48, 54, 56, 128, 65, 48, 54, 55, 128, 65, 48, 54, 54,
- 128, 65, 48, 54, 53, 128, 65, 48, 54, 52, 128, 65, 48, 54, 51, 128, 65,
- 48, 54, 50, 128, 65, 48, 54, 49, 128, 65, 48, 54, 48, 128, 65, 48, 53,
- 57, 128, 65, 48, 53, 56, 128, 65, 48, 53, 55, 128, 65, 48, 53, 54, 128,
- 65, 48, 53, 53, 128, 65, 48, 53, 52, 128, 65, 48, 53, 51, 128, 65, 48,
- 53, 50, 128, 65, 48, 53, 49, 128, 65, 48, 53, 48, 128, 65, 48, 52, 57,
- 128, 65, 48, 52, 56, 128, 65, 48, 52, 55, 128, 65, 48, 52, 54, 128, 65,
- 48, 52, 53, 65, 128, 65, 48, 52, 53, 128, 65, 48, 52, 52, 128, 65, 48,
- 52, 51, 65, 128, 65, 48, 52, 51, 128, 65, 48, 52, 50, 65, 128, 65, 48,
- 52, 50, 128, 65, 48, 52, 49, 128, 65, 48, 52, 48, 65, 128, 65, 48, 52,
- 48, 128, 65, 48, 51, 57, 128, 65, 48, 51, 56, 128, 65, 48, 51, 55, 128,
- 65, 48, 51, 54, 128, 65, 48, 51, 53, 128, 65, 48, 51, 52, 128, 65, 48,
- 51, 51, 128, 65, 48, 51, 50, 65, 128, 65, 48, 49, 55, 65, 128, 65, 48,
- 49, 52, 65, 128, 65, 48, 48, 54, 66, 128, 65, 48, 48, 54, 65, 128, 65,
- 48, 48, 53, 65, 128, 65, 45, 69, 85, 128, 45, 85, 205, 45, 80, 72, 82,
- 85, 128, 45, 75, 72, 89, 85, 196, 45, 75, 72, 89, 73, 76, 128, 45, 68,
- 90, 85, 196, 45, 67, 72, 65, 210, 45, 67, 72, 65, 76, 128,
+ 83, 69, 128, 65, 78, 84, 73, 67, 76, 79, 67, 75, 87, 73, 83, 197, 65, 78,
+ 84, 69, 78, 78, 65, 128, 65, 78, 84, 69, 78, 78, 193, 65, 78, 84, 65, 82,
+ 71, 79, 77, 85, 75, 72, 65, 128, 65, 78, 83, 85, 218, 65, 78, 83, 72, 69,
+ 128, 65, 78, 80, 69, 65, 128, 65, 78, 207, 65, 78, 78, 85, 73, 84, 217,
+ 65, 78, 78, 79, 84, 65, 84, 73, 79, 206, 65, 78, 78, 65, 65, 85, 128, 65,
+ 78, 75, 72, 128, 65, 78, 74, 73, 128, 65, 78, 72, 85, 128, 65, 78, 71,
+ 85, 76, 65, 82, 128, 65, 78, 71, 85, 73, 83, 72, 69, 196, 65, 78, 71, 83,
+ 84, 82, 79, 205, 65, 78, 71, 82, 217, 65, 78, 71, 76, 69, 68, 128, 65,
+ 78, 71, 76, 69, 196, 65, 78, 71, 75, 72, 65, 78, 75, 72, 85, 128, 65, 78,
+ 71, 69, 210, 65, 78, 71, 69, 76, 128, 65, 78, 71, 69, 68, 128, 65, 78,
+ 68, 65, 80, 128, 65, 78, 67, 79, 82, 65, 128, 65, 78, 67, 72, 79, 82,
+ 128, 65, 78, 65, 84, 82, 73, 67, 72, 73, 83, 77, 65, 128, 65, 78, 65, 80,
+ 128, 65, 77, 80, 83, 128, 65, 77, 80, 72, 79, 82, 65, 128, 65, 77, 80,
+ 69, 82, 83, 65, 78, 68, 128, 65, 77, 80, 69, 82, 83, 65, 78, 196, 65, 77,
+ 79, 85, 78, 212, 65, 77, 69, 82, 73, 67, 65, 83, 128, 65, 77, 69, 82, 73,
+ 67, 65, 206, 65, 77, 66, 85, 76, 65, 78, 67, 69, 128, 65, 77, 66, 193,
+ 65, 77, 66, 128, 65, 77, 65, 82, 128, 65, 77, 65, 210, 65, 77, 65, 76,
+ 71, 65, 77, 65, 84, 73, 79, 206, 65, 77, 65, 76, 71, 65, 77, 128, 65, 76,
+ 86, 69, 79, 76, 65, 210, 65, 76, 85, 77, 128, 65, 76, 84, 69, 82, 78, 65,
+ 84, 73, 86, 197, 65, 76, 84, 69, 82, 78, 65, 84, 73, 79, 206, 65, 76, 84,
+ 69, 82, 78, 65, 84, 73, 78, 71, 128, 65, 76, 84, 69, 82, 78, 65, 84, 73,
+ 78, 199, 65, 76, 84, 69, 82, 78, 65, 84, 69, 128, 65, 76, 84, 69, 82, 78,
+ 65, 84, 197, 65, 76, 84, 65, 128, 65, 76, 80, 72, 65, 128, 65, 76, 80,
+ 72, 193, 65, 76, 80, 65, 80, 82, 65, 78, 65, 128, 65, 76, 80, 65, 80, 82,
+ 65, 65, 78, 193, 65, 76, 80, 65, 128, 65, 76, 77, 79, 83, 212, 65, 76,
+ 77, 128, 65, 76, 76, 79, 128, 65, 76, 76, 73, 65, 78, 67, 69, 128, 65,
+ 76, 76, 201, 65, 76, 76, 65, 200, 65, 76, 75, 65, 76, 73, 45, 50, 128,
+ 65, 76, 75, 65, 76, 73, 128, 65, 76, 73, 71, 78, 69, 196, 65, 76, 73, 70,
+ 85, 128, 65, 76, 73, 69, 78, 128, 65, 76, 73, 69, 206, 65, 76, 71, 73,
+ 218, 65, 76, 70, 65, 128, 65, 76, 69, 85, 212, 65, 76, 69, 82, 84, 128,
+ 65, 76, 69, 80, 72, 128, 65, 76, 69, 77, 66, 73, 67, 128, 65, 76, 69, 70,
+ 128, 65, 76, 66, 65, 78, 73, 65, 206, 65, 76, 65, 89, 72, 69, 128, 65,
+ 76, 65, 89, 72, 197, 65, 76, 65, 82, 205, 65, 76, 65, 80, 72, 128, 65,
+ 76, 45, 76, 65, 75, 85, 78, 65, 128, 65, 75, 84, 73, 69, 83, 69, 76, 83,
+ 75, 65, 66, 128, 65, 75, 83, 65, 128, 65, 75, 72, 77, 73, 77, 73, 195,
+ 65, 75, 66, 65, 210, 65, 75, 65, 82, 65, 128, 65, 75, 65, 82, 193, 65,
+ 73, 89, 65, 78, 78, 65, 128, 65, 73, 86, 73, 76, 73, 203, 65, 73, 84, 79,
+ 206, 65, 73, 82, 80, 76, 65, 78, 69, 128, 65, 73, 82, 80, 76, 65, 78,
+ 197, 65, 73, 78, 213, 65, 73, 78, 78, 128, 65, 73, 76, 77, 128, 65, 73,
+ 75, 65, 82, 65, 128, 65, 73, 72, 86, 85, 83, 128, 65, 72, 83, 68, 65,
+ 128, 65, 72, 83, 65, 128, 65, 72, 79, 205, 65, 72, 65, 78, 199, 65, 72,
+ 65, 71, 71, 65, 210, 65, 72, 65, 68, 128, 65, 71, 85, 78, 71, 128, 65,
+ 71, 79, 71, 201, 65, 71, 71, 82, 65, 86, 65, 84, 73, 79, 78, 128, 65, 71,
+ 71, 82, 65, 86, 65, 84, 69, 196, 65, 71, 65, 73, 78, 83, 212, 65, 71, 65,
+ 73, 78, 128, 65, 70, 84, 69, 210, 65, 70, 83, 65, 65, 81, 128, 65, 70,
+ 82, 73, 67, 65, 206, 65, 70, 79, 82, 69, 77, 69, 78, 84, 73, 79, 78, 69,
+ 68, 128, 65, 70, 71, 72, 65, 78, 201, 65, 70, 70, 82, 73, 67, 65, 84, 73,
+ 79, 206, 65, 70, 70, 73, 216, 65, 69, 89, 65, 78, 78, 65, 128, 65, 69,
+ 89, 128, 65, 69, 83, 67, 85, 76, 65, 80, 73, 85, 83, 128, 65, 69, 83, 67,
+ 128, 65, 69, 83, 128, 65, 69, 82, 73, 65, 204, 65, 69, 82, 128, 65, 69,
+ 76, 65, 45, 80, 73, 76, 76, 65, 128, 65, 69, 76, 128, 65, 69, 75, 128,
+ 65, 69, 71, 69, 65, 206, 65, 69, 71, 128, 65, 69, 69, 89, 65, 78, 78, 65,
+ 128, 65, 69, 69, 128, 65, 69, 68, 65, 45, 80, 73, 76, 76, 65, 128, 65,
+ 69, 68, 128, 65, 69, 66, 128, 65, 68, 86, 65, 78, 84, 65, 71, 69, 128,
+ 65, 68, 86, 65, 78, 67, 69, 128, 65, 68, 77, 73, 83, 83, 73, 79, 206, 65,
+ 68, 69, 71, 128, 65, 68, 69, 199, 65, 68, 68, 82, 69, 83, 83, 69, 196,
+ 65, 68, 68, 82, 69, 83, 211, 65, 68, 68, 65, 75, 128, 65, 68, 65, 203,
+ 65, 67, 85, 84, 69, 45, 77, 65, 67, 82, 79, 78, 128, 65, 67, 85, 84, 69,
+ 45, 71, 82, 65, 86, 69, 45, 65, 67, 85, 84, 69, 128, 65, 67, 85, 84, 197,
+ 65, 67, 84, 85, 65, 76, 76, 217, 65, 67, 84, 73, 86, 65, 84, 197, 65, 67,
+ 82, 79, 80, 72, 79, 78, 73, 195, 65, 67, 75, 78, 79, 87, 76, 69, 68, 71,
+ 69, 128, 65, 67, 67, 85, 77, 85, 76, 65, 84, 73, 79, 78, 128, 65, 67, 67,
+ 79, 85, 78, 212, 65, 67, 67, 79, 77, 77, 79, 68, 65, 84, 73, 79, 78, 128,
+ 65, 67, 67, 69, 80, 84, 128, 65, 67, 67, 69, 78, 84, 45, 83, 84, 65, 67,
+ 67, 65, 84, 79, 128, 65, 67, 67, 69, 78, 84, 128, 65, 67, 67, 69, 78,
+ 212, 65, 67, 65, 68, 69, 77, 217, 65, 66, 89, 83, 77, 65, 204, 65, 66,
+ 85, 78, 68, 65, 78, 67, 69, 128, 65, 66, 75, 72, 65, 83, 73, 65, 206, 65,
+ 66, 66, 82, 69, 86, 73, 65, 84, 73, 79, 206, 65, 66, 65, 70, 73, 76, 73,
+ 128, 65, 66, 178, 65, 66, 49, 57, 49, 128, 65, 66, 49, 56, 56, 128, 65,
+ 66, 49, 56, 48, 128, 65, 66, 49, 55, 49, 128, 65, 66, 49, 54, 52, 128,
+ 65, 66, 49, 51, 49, 66, 128, 65, 66, 49, 51, 49, 65, 128, 65, 66, 49, 50,
+ 51, 128, 65, 66, 49, 50, 50, 128, 65, 66, 49, 50, 48, 128, 65, 66, 49,
+ 49, 56, 128, 65, 66, 48, 56, 55, 128, 65, 66, 48, 56, 54, 128, 65, 66,
+ 48, 56, 53, 128, 65, 66, 48, 56, 50, 128, 65, 66, 48, 56, 49, 128, 65,
+ 66, 48, 56, 48, 128, 65, 66, 48, 55, 57, 128, 65, 66, 48, 55, 56, 128,
+ 65, 66, 48, 55, 55, 128, 65, 66, 48, 55, 54, 128, 65, 66, 48, 55, 52,
+ 128, 65, 66, 48, 55, 51, 128, 65, 66, 48, 55, 48, 128, 65, 66, 48, 54,
+ 57, 128, 65, 66, 48, 54, 55, 128, 65, 66, 48, 54, 54, 128, 65, 66, 48,
+ 54, 53, 128, 65, 66, 48, 54, 49, 128, 65, 66, 48, 54, 48, 128, 65, 66,
+ 48, 53, 57, 128, 65, 66, 48, 53, 56, 128, 65, 66, 48, 53, 55, 128, 65,
+ 66, 48, 53, 54, 128, 65, 66, 48, 53, 53, 128, 65, 66, 48, 53, 52, 128,
+ 65, 66, 48, 53, 51, 128, 65, 66, 48, 53, 49, 128, 65, 66, 48, 53, 48,
+ 128, 65, 66, 48, 52, 57, 128, 65, 66, 48, 52, 56, 128, 65, 66, 48, 52,
+ 55, 128, 65, 66, 48, 52, 54, 128, 65, 66, 48, 52, 53, 128, 65, 66, 48,
+ 52, 52, 128, 65, 66, 48, 52, 49, 128, 65, 66, 48, 52, 48, 128, 65, 66,
+ 48, 51, 57, 128, 65, 66, 48, 51, 56, 128, 65, 66, 48, 51, 55, 128, 65,
+ 66, 48, 51, 52, 128, 65, 66, 48, 51, 49, 128, 65, 66, 48, 51, 48, 128,
+ 65, 66, 48, 50, 57, 128, 65, 66, 48, 50, 56, 128, 65, 66, 48, 50, 55,
+ 128, 65, 66, 48, 50, 54, 128, 65, 66, 48, 50, 52, 128, 65, 66, 48, 50,
+ 51, 77, 128, 65, 66, 48, 50, 51, 128, 65, 66, 48, 50, 50, 77, 128, 65,
+ 66, 48, 50, 50, 70, 128, 65, 66, 48, 50, 50, 128, 65, 66, 48, 50, 49, 77,
+ 128, 65, 66, 48, 50, 49, 70, 128, 65, 66, 48, 50, 49, 128, 65, 66, 48,
+ 50, 48, 128, 65, 66, 48, 49, 55, 128, 65, 66, 48, 49, 54, 128, 65, 66,
+ 48, 49, 51, 128, 65, 66, 48, 49, 49, 128, 65, 66, 48, 49, 48, 128, 65,
+ 66, 48, 48, 57, 128, 65, 66, 48, 48, 56, 128, 65, 66, 48, 48, 55, 128,
+ 65, 66, 48, 48, 54, 128, 65, 66, 48, 48, 53, 128, 65, 66, 48, 48, 52,
+ 128, 65, 66, 48, 48, 51, 128, 65, 66, 48, 48, 50, 128, 65, 66, 48, 48,
+ 49, 128, 65, 65, 89, 73, 78, 128, 65, 65, 89, 65, 78, 78, 65, 128, 65,
+ 65, 89, 128, 65, 65, 87, 128, 65, 65, 79, 128, 65, 65, 74, 128, 65, 65,
+ 66, 65, 65, 70, 73, 76, 73, 128, 65, 65, 48, 51, 50, 128, 65, 65, 48, 51,
+ 49, 128, 65, 65, 48, 51, 48, 128, 65, 65, 48, 50, 57, 128, 65, 65, 48,
+ 50, 56, 128, 65, 65, 48, 50, 55, 128, 65, 65, 48, 50, 54, 128, 65, 65,
+ 48, 50, 53, 128, 65, 65, 48, 50, 52, 128, 65, 65, 48, 50, 51, 128, 65,
+ 65, 48, 50, 50, 128, 65, 65, 48, 50, 49, 128, 65, 65, 48, 50, 48, 128,
+ 65, 65, 48, 49, 57, 128, 65, 65, 48, 49, 56, 128, 65, 65, 48, 49, 55,
+ 128, 65, 65, 48, 49, 54, 128, 65, 65, 48, 49, 53, 128, 65, 65, 48, 49,
+ 52, 128, 65, 65, 48, 49, 51, 128, 65, 65, 48, 49, 50, 128, 65, 65, 48,
+ 49, 49, 128, 65, 65, 48, 49, 48, 128, 65, 65, 48, 48, 57, 128, 65, 65,
+ 48, 48, 56, 128, 65, 65, 48, 48, 55, 66, 128, 65, 65, 48, 48, 55, 65,
+ 128, 65, 65, 48, 48, 55, 128, 65, 65, 48, 48, 54, 128, 65, 65, 48, 48,
+ 53, 128, 65, 65, 48, 48, 52, 128, 65, 65, 48, 48, 51, 128, 65, 65, 48,
+ 48, 50, 128, 65, 65, 48, 48, 49, 128, 65, 56, 48, 55, 128, 65, 56, 48,
+ 54, 128, 65, 56, 48, 53, 128, 65, 56, 48, 52, 128, 65, 56, 48, 51, 128,
+ 65, 56, 48, 50, 128, 65, 56, 48, 49, 128, 65, 56, 48, 48, 128, 65, 55,
+ 51, 178, 65, 55, 50, 182, 65, 55, 49, 183, 65, 55, 49, 181, 65, 55, 49,
+ 180, 65, 55, 49, 179, 65, 55, 49, 178, 65, 55, 49, 177, 65, 55, 49, 176,
+ 65, 55, 48, 57, 45, 182, 65, 55, 48, 57, 45, 180, 65, 55, 48, 57, 45,
+ 179, 65, 55, 48, 57, 45, 178, 65, 55, 48, 185, 65, 55, 48, 184, 65, 55,
+ 48, 183, 65, 55, 48, 182, 65, 55, 48, 181, 65, 55, 48, 180, 65, 55, 48,
+ 179, 65, 55, 48, 178, 65, 55, 48, 177, 65, 54, 54, 52, 128, 65, 54, 54,
+ 51, 128, 65, 54, 54, 50, 128, 65, 54, 54, 49, 128, 65, 54, 54, 48, 128,
+ 65, 54, 53, 57, 128, 65, 54, 53, 56, 128, 65, 54, 53, 55, 128, 65, 54,
+ 53, 54, 128, 65, 54, 53, 53, 128, 65, 54, 53, 52, 128, 65, 54, 53, 51,
+ 128, 65, 54, 53, 50, 128, 65, 54, 53, 49, 128, 65, 54, 52, 57, 128, 65,
+ 54, 52, 56, 128, 65, 54, 52, 54, 128, 65, 54, 52, 53, 128, 65, 54, 52,
+ 52, 128, 65, 54, 52, 51, 128, 65, 54, 52, 50, 128, 65, 54, 52, 48, 128,
+ 65, 54, 51, 56, 128, 65, 54, 51, 55, 128, 65, 54, 51, 52, 128, 65, 54,
+ 50, 57, 128, 65, 54, 50, 56, 128, 65, 54, 50, 55, 128, 65, 54, 50, 54,
+ 128, 65, 54, 50, 52, 128, 65, 54, 50, 51, 128, 65, 54, 50, 50, 128, 65,
+ 54, 50, 49, 128, 65, 54, 50, 48, 128, 65, 54, 49, 57, 128, 65, 54, 49,
+ 56, 128, 65, 54, 49, 55, 128, 65, 54, 49, 54, 128, 65, 54, 49, 53, 128,
+ 65, 54, 49, 52, 128, 65, 54, 49, 51, 128, 65, 54, 49, 50, 128, 65, 54,
+ 49, 49, 128, 65, 54, 49, 48, 128, 65, 54, 48, 57, 128, 65, 54, 48, 56,
+ 128, 65, 54, 48, 54, 128, 65, 54, 48, 52, 128, 65, 54, 48, 51, 128, 65,
+ 54, 48, 50, 128, 65, 54, 48, 49, 128, 65, 54, 48, 48, 128, 65, 53, 57,
+ 56, 128, 65, 53, 57, 54, 128, 65, 53, 57, 53, 128, 65, 53, 57, 52, 128,
+ 65, 53, 57, 50, 128, 65, 53, 57, 49, 128, 65, 53, 56, 57, 128, 65, 53,
+ 56, 56, 128, 65, 53, 56, 55, 128, 65, 53, 56, 54, 128, 65, 53, 56, 53,
+ 128, 65, 53, 56, 52, 128, 65, 53, 56, 51, 128, 65, 53, 56, 50, 128, 65,
+ 53, 56, 49, 128, 65, 53, 56, 48, 128, 65, 53, 55, 57, 128, 65, 53, 55,
+ 56, 128, 65, 53, 55, 55, 128, 65, 53, 55, 54, 128, 65, 53, 55, 53, 128,
+ 65, 53, 55, 52, 128, 65, 53, 55, 51, 128, 65, 53, 55, 50, 128, 65, 53,
+ 55, 49, 128, 65, 53, 55, 48, 128, 65, 53, 54, 57, 128, 65, 53, 54, 56,
+ 128, 65, 53, 54, 54, 128, 65, 53, 54, 53, 128, 65, 53, 54, 52, 128, 65,
+ 53, 54, 51, 128, 65, 53, 53, 57, 128, 65, 53, 53, 55, 128, 65, 53, 53,
+ 54, 128, 65, 53, 53, 53, 128, 65, 53, 53, 52, 128, 65, 53, 53, 51, 128,
+ 65, 53, 53, 50, 128, 65, 53, 53, 49, 128, 65, 53, 53, 48, 128, 65, 53,
+ 52, 57, 128, 65, 53, 52, 56, 128, 65, 53, 52, 55, 128, 65, 53, 52, 53,
+ 128, 65, 53, 52, 50, 128, 65, 53, 52, 49, 128, 65, 53, 52, 48, 128, 65,
+ 53, 51, 57, 128, 65, 53, 51, 56, 128, 65, 53, 51, 55, 128, 65, 53, 51,
+ 54, 128, 65, 53, 51, 53, 128, 65, 53, 51, 52, 128, 65, 53, 51, 50, 128,
+ 65, 53, 51, 49, 128, 65, 53, 51, 48, 128, 65, 53, 50, 57, 128, 65, 53,
+ 50, 56, 128, 65, 53, 50, 55, 128, 65, 53, 50, 54, 128, 65, 53, 50, 53,
+ 128, 65, 53, 50, 52, 128, 65, 53, 50, 51, 128, 65, 53, 50, 50, 128, 65,
+ 53, 50, 49, 128, 65, 53, 50, 48, 128, 65, 53, 49, 57, 128, 65, 53, 49,
+ 56, 128, 65, 53, 49, 55, 128, 65, 53, 49, 54, 128, 65, 53, 49, 53, 128,
+ 65, 53, 49, 52, 128, 65, 53, 49, 51, 128, 65, 53, 49, 50, 128, 65, 53,
+ 49, 49, 128, 65, 53, 49, 48, 128, 65, 53, 48, 57, 128, 65, 53, 48, 56,
+ 128, 65, 53, 48, 55, 128, 65, 53, 48, 54, 128, 65, 53, 48, 53, 128, 65,
+ 53, 48, 52, 128, 65, 53, 48, 51, 128, 65, 53, 48, 50, 128, 65, 53, 48,
+ 49, 128, 65, 52, 57, 55, 128, 65, 52, 57, 54, 128, 65, 52, 57, 53, 128,
+ 65, 52, 57, 52, 128, 65, 52, 57, 51, 128, 65, 52, 57, 50, 128, 65, 52,
+ 57, 49, 128, 65, 52, 57, 48, 128, 65, 52, 56, 57, 128, 65, 52, 56, 56,
+ 128, 65, 52, 56, 55, 128, 65, 52, 56, 54, 128, 65, 52, 56, 53, 128, 65,
+ 52, 56, 52, 128, 65, 52, 56, 51, 128, 65, 52, 56, 50, 128, 65, 52, 56,
+ 49, 128, 65, 52, 56, 48, 128, 65, 52, 55, 57, 128, 65, 52, 55, 56, 128,
+ 65, 52, 55, 55, 128, 65, 52, 55, 54, 128, 65, 52, 55, 53, 128, 65, 52,
+ 55, 52, 128, 65, 52, 55, 51, 128, 65, 52, 55, 50, 128, 65, 52, 55, 49,
+ 128, 65, 52, 55, 48, 128, 65, 52, 54, 57, 128, 65, 52, 54, 56, 128, 65,
+ 52, 54, 55, 128, 65, 52, 54, 54, 128, 65, 52, 54, 53, 128, 65, 52, 54,
+ 52, 128, 65, 52, 54, 51, 128, 65, 52, 54, 50, 128, 65, 52, 54, 49, 128,
+ 65, 52, 54, 48, 128, 65, 52, 53, 57, 128, 65, 52, 53, 56, 128, 65, 52,
+ 53, 55, 65, 128, 65, 52, 53, 55, 128, 65, 52, 53, 54, 128, 65, 52, 53,
+ 53, 128, 65, 52, 53, 52, 128, 65, 52, 53, 51, 128, 65, 52, 53, 50, 128,
+ 65, 52, 53, 49, 128, 65, 52, 53, 48, 65, 128, 65, 52, 53, 48, 128, 65,
+ 52, 52, 57, 128, 65, 52, 52, 56, 128, 65, 52, 52, 55, 128, 65, 52, 52,
+ 54, 128, 65, 52, 52, 53, 128, 65, 52, 52, 52, 128, 65, 52, 52, 51, 128,
+ 65, 52, 52, 50, 128, 65, 52, 52, 49, 128, 65, 52, 52, 48, 128, 65, 52,
+ 51, 57, 128, 65, 52, 51, 56, 128, 65, 52, 51, 55, 128, 65, 52, 51, 54,
+ 128, 65, 52, 51, 53, 128, 65, 52, 51, 52, 128, 65, 52, 51, 51, 128, 65,
+ 52, 51, 50, 128, 65, 52, 51, 49, 128, 65, 52, 51, 48, 128, 65, 52, 50,
+ 57, 128, 65, 52, 50, 56, 128, 65, 52, 50, 55, 128, 65, 52, 50, 54, 128,
+ 65, 52, 50, 53, 128, 65, 52, 50, 52, 128, 65, 52, 50, 51, 128, 65, 52,
+ 50, 50, 128, 65, 52, 50, 49, 128, 65, 52, 50, 48, 128, 65, 52, 49, 57,
+ 128, 65, 52, 49, 56, 45, 86, 65, 83, 128, 65, 52, 49, 56, 128, 65, 52,
+ 49, 55, 45, 86, 65, 83, 128, 65, 52, 49, 55, 128, 65, 52, 49, 54, 45, 86,
+ 65, 83, 128, 65, 52, 49, 54, 128, 65, 52, 49, 53, 45, 86, 65, 83, 128,
+ 65, 52, 49, 53, 128, 65, 52, 49, 52, 45, 86, 65, 83, 128, 65, 52, 49, 52,
+ 128, 65, 52, 49, 51, 45, 86, 65, 83, 128, 65, 52, 49, 51, 128, 65, 52,
+ 49, 50, 45, 86, 65, 83, 128, 65, 52, 49, 50, 128, 65, 52, 49, 49, 45, 86,
+ 65, 83, 128, 65, 52, 49, 49, 128, 65, 52, 49, 48, 193, 65, 52, 49, 48,
+ 45, 86, 65, 83, 128, 65, 52, 49, 176, 65, 52, 48, 57, 45, 86, 65, 83,
+ 128, 65, 52, 48, 57, 128, 65, 52, 48, 56, 45, 86, 65, 83, 128, 65, 52,
+ 48, 56, 128, 65, 52, 48, 55, 45, 86, 65, 83, 128, 65, 52, 48, 55, 128,
+ 65, 52, 48, 54, 45, 86, 65, 83, 128, 65, 52, 48, 54, 128, 65, 52, 48, 53,
+ 45, 86, 65, 83, 128, 65, 52, 48, 53, 128, 65, 52, 48, 52, 45, 86, 65, 83,
+ 128, 65, 52, 48, 52, 128, 65, 52, 48, 51, 45, 86, 65, 83, 128, 65, 52,
+ 48, 51, 128, 65, 52, 48, 50, 45, 86, 65, 83, 128, 65, 52, 48, 50, 128,
+ 65, 52, 48, 49, 45, 86, 65, 83, 128, 65, 52, 48, 49, 128, 65, 52, 48, 48,
+ 45, 86, 65, 83, 128, 65, 52, 48, 48, 128, 65, 51, 57, 57, 128, 65, 51,
+ 57, 56, 128, 65, 51, 57, 55, 128, 65, 51, 57, 54, 128, 65, 51, 57, 53,
+ 128, 65, 51, 57, 52, 128, 65, 51, 57, 179, 65, 51, 57, 50, 128, 65, 51,
+ 57, 49, 128, 65, 51, 57, 48, 128, 65, 51, 56, 57, 128, 65, 51, 56, 56,
+ 128, 65, 51, 56, 55, 128, 65, 51, 56, 54, 65, 128, 65, 51, 56, 54, 128,
+ 65, 51, 56, 53, 128, 65, 51, 56, 52, 128, 65, 51, 56, 51, 65, 128, 65,
+ 51, 56, 179, 65, 51, 56, 50, 128, 65, 51, 56, 49, 65, 128, 65, 51, 56,
+ 49, 128, 65, 51, 56, 48, 128, 65, 51, 55, 57, 128, 65, 51, 55, 56, 128,
+ 65, 51, 55, 55, 128, 65, 51, 55, 54, 128, 65, 51, 55, 53, 128, 65, 51,
+ 55, 52, 128, 65, 51, 55, 51, 128, 65, 51, 55, 50, 128, 65, 51, 55, 49,
+ 65, 128, 65, 51, 55, 49, 128, 65, 51, 55, 48, 128, 65, 51, 54, 57, 128,
+ 65, 51, 54, 56, 65, 128, 65, 51, 54, 56, 128, 65, 51, 54, 55, 128, 65,
+ 51, 54, 54, 128, 65, 51, 54, 53, 128, 65, 51, 54, 52, 65, 128, 65, 51,
+ 54, 52, 128, 65, 51, 54, 51, 128, 65, 51, 54, 50, 128, 65, 51, 54, 49,
+ 128, 65, 51, 54, 48, 128, 65, 51, 53, 57, 65, 128, 65, 51, 53, 57, 128,
+ 65, 51, 53, 56, 128, 65, 51, 53, 55, 128, 65, 51, 53, 54, 128, 65, 51,
+ 53, 53, 128, 65, 51, 53, 52, 128, 65, 51, 53, 51, 128, 65, 51, 53, 50,
+ 128, 65, 51, 53, 49, 128, 65, 51, 53, 48, 128, 65, 51, 52, 57, 128, 65,
+ 51, 52, 56, 128, 65, 51, 52, 55, 128, 65, 51, 52, 54, 128, 65, 51, 52,
+ 53, 128, 65, 51, 52, 52, 128, 65, 51, 52, 51, 128, 65, 51, 52, 50, 128,
+ 65, 51, 52, 49, 128, 65, 51, 52, 48, 128, 65, 51, 51, 57, 128, 65, 51,
+ 51, 56, 128, 65, 51, 51, 55, 128, 65, 51, 51, 54, 67, 128, 65, 51, 51,
+ 54, 66, 128, 65, 51, 51, 54, 65, 128, 65, 51, 51, 54, 128, 65, 51, 51,
+ 53, 128, 65, 51, 51, 52, 128, 65, 51, 51, 51, 128, 65, 51, 51, 50, 67,
+ 128, 65, 51, 51, 50, 66, 128, 65, 51, 51, 50, 65, 128, 65, 51, 51, 50,
+ 128, 65, 51, 51, 49, 128, 65, 51, 51, 48, 128, 65, 51, 50, 57, 65, 128,
+ 65, 51, 50, 57, 128, 65, 51, 50, 56, 128, 65, 51, 50, 55, 128, 65, 51,
+ 50, 54, 128, 65, 51, 50, 53, 128, 65, 51, 50, 52, 128, 65, 51, 50, 51,
+ 128, 65, 51, 50, 50, 128, 65, 51, 50, 49, 128, 65, 51, 50, 48, 128, 65,
+ 51, 49, 57, 128, 65, 51, 49, 56, 128, 65, 51, 49, 55, 128, 65, 51, 49,
+ 54, 128, 65, 51, 49, 53, 128, 65, 51, 49, 52, 128, 65, 51, 49, 51, 67,
+ 128, 65, 51, 49, 51, 66, 128, 65, 51, 49, 51, 65, 128, 65, 51, 49, 51,
+ 128, 65, 51, 49, 50, 128, 65, 51, 49, 49, 128, 65, 51, 49, 48, 128, 65,
+ 51, 48, 57, 67, 128, 65, 51, 48, 57, 66, 128, 65, 51, 48, 57, 65, 128,
+ 65, 51, 48, 57, 128, 65, 51, 48, 56, 128, 65, 51, 48, 55, 128, 65, 51,
+ 48, 54, 128, 65, 51, 48, 53, 128, 65, 51, 48, 52, 128, 65, 51, 48, 51,
+ 128, 65, 51, 48, 50, 128, 65, 51, 48, 49, 128, 65, 51, 48, 48, 128, 65,
+ 50, 57, 57, 65, 128, 65, 50, 57, 57, 128, 65, 50, 57, 56, 128, 65, 50,
+ 57, 55, 128, 65, 50, 57, 54, 128, 65, 50, 57, 53, 128, 65, 50, 57, 52,
+ 65, 128, 65, 50, 57, 52, 128, 65, 50, 57, 51, 128, 65, 50, 57, 50, 128,
+ 65, 50, 57, 49, 128, 65, 50, 57, 48, 128, 65, 50, 56, 57, 65, 128, 65,
+ 50, 56, 57, 128, 65, 50, 56, 56, 128, 65, 50, 56, 55, 128, 65, 50, 56,
+ 54, 128, 65, 50, 56, 53, 128, 65, 50, 56, 52, 128, 65, 50, 56, 51, 128,
+ 65, 50, 56, 50, 128, 65, 50, 56, 49, 128, 65, 50, 56, 48, 128, 65, 50,
+ 55, 57, 128, 65, 50, 55, 56, 128, 65, 50, 55, 55, 128, 65, 50, 55, 54,
+ 128, 65, 50, 55, 53, 128, 65, 50, 55, 52, 128, 65, 50, 55, 51, 128, 65,
+ 50, 55, 50, 128, 65, 50, 55, 49, 128, 65, 50, 55, 48, 128, 65, 50, 54,
+ 57, 128, 65, 50, 54, 56, 128, 65, 50, 54, 55, 65, 128, 65, 50, 54, 55,
+ 128, 65, 50, 54, 54, 128, 65, 50, 54, 53, 128, 65, 50, 54, 52, 128, 65,
+ 50, 54, 51, 128, 65, 50, 54, 50, 128, 65, 50, 54, 49, 128, 65, 50, 54,
+ 48, 128, 65, 50, 53, 57, 128, 65, 50, 53, 56, 128, 65, 50, 53, 55, 128,
+ 65, 50, 53, 54, 128, 65, 50, 53, 53, 128, 65, 50, 53, 52, 128, 65, 50,
+ 53, 51, 128, 65, 50, 53, 50, 128, 65, 50, 53, 49, 128, 65, 50, 53, 48,
+ 128, 65, 50, 52, 57, 128, 65, 50, 52, 56, 128, 65, 50, 52, 55, 128, 65,
+ 50, 52, 54, 128, 65, 50, 52, 53, 128, 65, 50, 52, 52, 128, 65, 50, 52,
+ 51, 128, 65, 50, 52, 50, 128, 65, 50, 52, 49, 128, 65, 50, 52, 48, 128,
+ 65, 50, 51, 57, 128, 65, 50, 51, 56, 128, 65, 50, 51, 55, 128, 65, 50,
+ 51, 54, 128, 65, 50, 51, 53, 128, 65, 50, 51, 52, 128, 65, 50, 51, 51,
+ 128, 65, 50, 51, 50, 128, 65, 50, 51, 49, 128, 65, 50, 51, 48, 128, 65,
+ 50, 50, 57, 128, 65, 50, 50, 56, 128, 65, 50, 50, 55, 65, 128, 65, 50,
+ 50, 55, 128, 65, 50, 50, 54, 128, 65, 50, 50, 53, 128, 65, 50, 50, 52,
+ 128, 65, 50, 50, 51, 128, 65, 50, 50, 50, 128, 65, 50, 50, 49, 128, 65,
+ 50, 50, 48, 128, 65, 50, 49, 57, 128, 65, 50, 49, 56, 128, 65, 50, 49,
+ 55, 128, 65, 50, 49, 54, 65, 128, 65, 50, 49, 54, 128, 65, 50, 49, 53,
+ 65, 128, 65, 50, 49, 53, 128, 65, 50, 49, 52, 128, 65, 50, 49, 51, 128,
+ 65, 50, 49, 50, 128, 65, 50, 49, 49, 128, 65, 50, 49, 48, 128, 65, 50,
+ 48, 57, 65, 128, 65, 50, 48, 57, 128, 65, 50, 48, 56, 128, 65, 50, 48,
+ 55, 65, 128, 65, 50, 48, 55, 128, 65, 50, 48, 54, 128, 65, 50, 48, 53,
+ 128, 65, 50, 48, 52, 128, 65, 50, 48, 51, 128, 65, 50, 48, 50, 66, 128,
+ 65, 50, 48, 50, 65, 128, 65, 50, 48, 50, 128, 65, 50, 48, 49, 128, 65,
+ 50, 48, 48, 128, 65, 49, 57, 57, 128, 65, 49, 57, 56, 128, 65, 49, 57,
+ 55, 128, 65, 49, 57, 54, 128, 65, 49, 57, 53, 128, 65, 49, 57, 52, 128,
+ 65, 49, 57, 51, 128, 65, 49, 57, 50, 128, 65, 49, 57, 49, 128, 65, 49,
+ 57, 48, 128, 65, 49, 56, 57, 128, 65, 49, 56, 56, 128, 65, 49, 56, 55,
+ 128, 65, 49, 56, 54, 128, 65, 49, 56, 53, 128, 65, 49, 56, 52, 128, 65,
+ 49, 56, 51, 128, 65, 49, 56, 50, 128, 65, 49, 56, 49, 128, 65, 49, 56,
+ 48, 128, 65, 49, 55, 57, 128, 65, 49, 55, 56, 128, 65, 49, 55, 55, 128,
+ 65, 49, 55, 54, 128, 65, 49, 55, 53, 128, 65, 49, 55, 52, 128, 65, 49,
+ 55, 51, 128, 65, 49, 55, 50, 128, 65, 49, 55, 49, 128, 65, 49, 55, 48,
+ 128, 65, 49, 54, 57, 128, 65, 49, 54, 56, 128, 65, 49, 54, 55, 128, 65,
+ 49, 54, 54, 128, 65, 49, 54, 53, 128, 65, 49, 54, 52, 128, 65, 49, 54,
+ 51, 128, 65, 49, 54, 50, 128, 65, 49, 54, 49, 128, 65, 49, 54, 48, 128,
+ 65, 49, 53, 57, 128, 65, 49, 53, 56, 128, 65, 49, 53, 55, 128, 65, 49,
+ 53, 54, 128, 65, 49, 53, 53, 128, 65, 49, 53, 52, 128, 65, 49, 53, 51,
+ 128, 65, 49, 53, 50, 128, 65, 49, 53, 49, 128, 65, 49, 53, 48, 128, 65,
+ 49, 52, 57, 128, 65, 49, 52, 56, 128, 65, 49, 52, 55, 128, 65, 49, 52,
+ 54, 128, 65, 49, 52, 53, 128, 65, 49, 52, 52, 128, 65, 49, 52, 51, 128,
+ 65, 49, 52, 50, 128, 65, 49, 52, 49, 128, 65, 49, 52, 48, 128, 65, 49,
+ 51, 57, 128, 65, 49, 51, 56, 128, 65, 49, 51, 55, 128, 65, 49, 51, 54,
+ 128, 65, 49, 51, 53, 65, 128, 65, 49, 51, 53, 128, 65, 49, 51, 52, 128,
+ 65, 49, 51, 51, 128, 65, 49, 51, 50, 128, 65, 49, 51, 49, 67, 128, 65,
+ 49, 51, 49, 128, 65, 49, 51, 48, 128, 65, 49, 50, 57, 128, 65, 49, 50,
+ 56, 128, 65, 49, 50, 55, 128, 65, 49, 50, 54, 128, 65, 49, 50, 53, 65,
+ 128, 65, 49, 50, 53, 128, 65, 49, 50, 52, 128, 65, 49, 50, 51, 128, 65,
+ 49, 50, 50, 128, 65, 49, 50, 49, 128, 65, 49, 50, 48, 66, 128, 65, 49,
+ 50, 48, 128, 65, 49, 49, 57, 128, 65, 49, 49, 56, 128, 65, 49, 49, 55,
+ 128, 65, 49, 49, 54, 128, 65, 49, 49, 53, 65, 128, 65, 49, 49, 53, 128,
+ 65, 49, 49, 52, 128, 65, 49, 49, 51, 128, 65, 49, 49, 50, 128, 65, 49,
+ 49, 49, 128, 65, 49, 49, 48, 66, 128, 65, 49, 49, 48, 65, 128, 65, 49,
+ 49, 48, 128, 65, 49, 48, 57, 128, 65, 49, 48, 56, 128, 65, 49, 48, 55,
+ 67, 128, 65, 49, 48, 55, 66, 128, 65, 49, 48, 55, 65, 128, 65, 49, 48,
+ 55, 128, 65, 49, 48, 54, 128, 65, 49, 48, 53, 66, 128, 65, 49, 48, 53,
+ 65, 128, 65, 49, 48, 53, 128, 65, 49, 48, 52, 67, 128, 65, 49, 48, 52,
+ 66, 128, 65, 49, 48, 52, 65, 128, 65, 49, 48, 52, 128, 65, 49, 48, 51,
+ 128, 65, 49, 48, 50, 65, 128, 65, 49, 48, 50, 128, 65, 49, 48, 49, 65,
+ 128, 65, 49, 48, 49, 128, 65, 49, 48, 48, 65, 128, 65, 49, 48, 48, 45,
+ 49, 48, 50, 128, 65, 49, 48, 48, 128, 65, 48, 57, 57, 128, 65, 48, 57,
+ 56, 65, 128, 65, 48, 57, 56, 128, 65, 48, 57, 55, 65, 128, 65, 48, 57,
+ 55, 128, 65, 48, 57, 54, 128, 65, 48, 57, 53, 128, 65, 48, 57, 52, 128,
+ 65, 48, 57, 51, 128, 65, 48, 57, 50, 128, 65, 48, 57, 49, 128, 65, 48,
+ 57, 48, 128, 65, 48, 56, 57, 128, 65, 48, 56, 56, 128, 65, 48, 56, 55,
+ 128, 65, 48, 56, 54, 128, 65, 48, 56, 53, 128, 65, 48, 56, 52, 128, 65,
+ 48, 56, 51, 128, 65, 48, 56, 50, 128, 65, 48, 56, 49, 128, 65, 48, 56,
+ 48, 128, 65, 48, 55, 57, 128, 65, 48, 55, 56, 128, 65, 48, 55, 55, 128,
+ 65, 48, 55, 54, 128, 65, 48, 55, 53, 128, 65, 48, 55, 52, 128, 65, 48,
+ 55, 51, 128, 65, 48, 55, 50, 128, 65, 48, 55, 49, 128, 65, 48, 55, 48,
+ 128, 65, 48, 54, 57, 128, 65, 48, 54, 56, 128, 65, 48, 54, 55, 128, 65,
+ 48, 54, 54, 67, 128, 65, 48, 54, 54, 66, 128, 65, 48, 54, 54, 65, 128,
+ 65, 48, 54, 54, 128, 65, 48, 54, 53, 128, 65, 48, 54, 52, 128, 65, 48,
+ 54, 51, 128, 65, 48, 54, 50, 128, 65, 48, 54, 49, 128, 65, 48, 54, 48,
+ 128, 65, 48, 53, 57, 128, 65, 48, 53, 56, 128, 65, 48, 53, 55, 128, 65,
+ 48, 53, 54, 128, 65, 48, 53, 53, 128, 65, 48, 53, 52, 128, 65, 48, 53,
+ 51, 128, 65, 48, 53, 50, 128, 65, 48, 53, 49, 128, 65, 48, 53, 48, 128,
+ 65, 48, 52, 57, 128, 65, 48, 52, 56, 128, 65, 48, 52, 55, 128, 65, 48,
+ 52, 54, 66, 128, 65, 48, 52, 54, 65, 128, 65, 48, 52, 54, 128, 65, 48,
+ 52, 53, 65, 128, 65, 48, 52, 53, 128, 65, 48, 52, 52, 128, 65, 48, 52,
+ 51, 65, 128, 65, 48, 52, 51, 128, 65, 48, 52, 50, 65, 128, 65, 48, 52,
+ 50, 128, 65, 48, 52, 49, 65, 128, 65, 48, 52, 49, 128, 65, 48, 52, 48,
+ 65, 128, 65, 48, 52, 48, 128, 65, 48, 51, 57, 65, 128, 65, 48, 51, 57,
+ 128, 65, 48, 51, 56, 128, 65, 48, 51, 55, 128, 65, 48, 51, 54, 128, 65,
+ 48, 51, 53, 128, 65, 48, 51, 52, 128, 65, 48, 51, 51, 128, 65, 48, 51,
+ 50, 65, 128, 65, 48, 50, 56, 66, 128, 65, 48, 50, 54, 65, 128, 65, 48,
+ 49, 55, 65, 128, 65, 48, 49, 52, 65, 128, 65, 48, 49, 48, 65, 128, 65,
+ 48, 48, 54, 66, 128, 65, 48, 48, 54, 65, 128, 65, 48, 48, 53, 65, 128,
+ 65, 45, 69, 85, 128, 45, 85, 205, 45, 80, 72, 82, 85, 128, 45, 75, 72,
+ 89, 85, 196, 45, 75, 72, 89, 73, 76, 128, 45, 68, 90, 85, 196, 45, 67,
+ 72, 65, 210, 45, 67, 72, 65, 76, 128,
};
static unsigned int lexicon_offset[] = {
- 0, 0, 6, 10, 18, 23, 27, 34, 39, 41, 47, 50, 62, 70, 80, 93, 102, 108,
- 113, 121, 130, 135, 140, 143, 147, 153, 158, 163, 171, 178, 186, 191,
- 194, 200, 208, 215, 225, 230, 237, 246, 249, 254, 257, 263, 267, 272,
- 281, 288, 295, 301, 310, 315, 321, 327, 335, 144, 341, 349, 350, 358,
- 361, 367, 369, 375, 382, 384, 391, 395, 403, 410, 412, 417, 422, 427,
- 434, 436, 299, 442, 445, 447, 452, 457, 463, 470, 479, 489, 494, 498,
- 505, 518, 522, 531, 538, 545, 548, 554, 558, 562, 572, 580, 588, 596,
- 605, 613, 618, 619, 623, 631, 638, 648, 652, 663, 667, 670, 673, 678,
- 348, 682, 691, 697, 703, 705, 708, 711, 714, 718, 722, 731, 739, 744,
- 747, 751, 757, 764, 771, 776, 785, 794, 801, 805, 818, 827, 835, 841,
- 557, 850, 860, 867, 873, 879, 886, 894, 898, 749, 906, 915, 503, 923,
- 928, 934, 17, 943, 948, 951, 955, 959, 966, 969, 976, 980, 988, 992,
- 1000, 1004, 1007, 1014, 1021, 192, 1024, 1029, 1039, 1048, 1055, 1060,
- 1066, 1072, 1080, 1083, 1088, 1094, 1102, 1107, 1110, 1113, 111, 1118,
- 1122, 1128, 1134, 1137, 1143, 1147, 1152, 1158, 1168, 1172, 1175, 1178,
- 1187, 1191, 1194, 1199, 1204, 1210, 1215, 1220, 1225, 1229, 1234, 1240,
- 1245, 1250, 1254, 1260, 1265, 1270, 1275, 1279, 1284, 1289, 1294, 1300,
- 1306, 1312, 1317, 1321, 1326, 1331, 1336, 1340, 1345, 1350, 1355, 1360,
- 1195, 1200, 1205, 1211, 1216, 1364, 1226, 1370, 1375, 1380, 1387, 1391,
- 1400, 1230, 1404, 1235, 1241, 1246, 1408, 1413, 1418, 1422, 1426, 1432,
- 1436, 1251, 1439, 1261, 1444, 1448, 1266, 1454, 1271, 1458, 1462, 1276,
- 1466, 1471, 1475, 1478, 1482, 1280, 1285, 1487, 1290, 1493, 1499, 1505,
- 1511, 1295, 1307, 1313, 1515, 1519, 1523, 1526, 1318, 1530, 1532, 1537,
- 1542, 1548, 1553, 1558, 1562, 1567, 1572, 1577, 1582, 1588, 1593, 1598,
- 1604, 1610, 1615, 1619, 1624, 1629, 1634, 1639, 1643, 1651, 1655, 1660,
- 1665, 1670, 1675, 1679, 1682, 1687, 1692, 1697, 1702, 1708, 1713, 1717,
- 1322, 1720, 1725, 1730, 1327, 1734, 1738, 1745, 1332, 1752, 1337, 1756,
- 1758, 1763, 1769, 1341, 1774, 1783, 1346, 1788, 1794, 1351, 1799, 1804,
- 1807, 1812, 1816, 1820, 1824, 1827, 1831, 1356, 1361, 1058, 1836, 1842,
- 1848, 1854, 1860, 1866, 1872, 1878, 1884, 1889, 1895, 1901, 1907, 1913,
- 1919, 1925, 1931, 1937, 1943, 1948, 1953, 1958, 1963, 1968, 1973, 1978,
- 1983, 1988, 1993, 1999, 2004, 2010, 2015, 2021, 2027, 2032, 2038, 2044,
- 2050, 2056, 2061, 2066, 2068, 2069, 2073, 2077, 2082, 2086, 2090, 2094,
- 2099, 2103, 2106, 2111, 2115, 2120, 2124, 2128, 2133, 2137, 2140, 2144,
- 2150, 2164, 2168, 2172, 2176, 2179, 2184, 2188, 2192, 2195, 2199, 2204,
- 2209, 2214, 2219, 2223, 2227, 2231, 2236, 2240, 2245, 2249, 2254, 2260,
- 2267, 2273, 2278, 2283, 2288, 2294, 2299, 2305, 2310, 2313, 1212, 2315,
- 2322, 2330, 2340, 2349, 2363, 2367, 2371, 2384, 2392, 2396, 2401, 2405,
- 2408, 2412, 2416, 2421, 2426, 2431, 2435, 2438, 2442, 2449, 2456, 2462,
- 2467, 2472, 2478, 2484, 2489, 2492, 1760, 2494, 2500, 2504, 2509, 2513,
- 2517, 1765, 1771, 2522, 2526, 2529, 2534, 2539, 2544, 2549, 2553, 2560,
- 2565, 2568, 2575, 2581, 2585, 2589, 2593, 2598, 2605, 2610, 2615, 2622,
- 2628, 2634, 2640, 2654, 2671, 2686, 2701, 2710, 2715, 2719, 2724, 2729,
- 2733, 2745, 2752, 2758, 2263, 2764, 2771, 2777, 2781, 2784, 2791, 2797,
- 2801, 2805, 2809, 2091, 2813, 2818, 2823, 2827, 2835, 2839, 2843, 2847,
- 2851, 2856, 2861, 2866, 2870, 2875, 2880, 2884, 2889, 2893, 2896, 2900,
- 2904, 2912, 2917, 2921, 2925, 2931, 2940, 2944, 2948, 2954, 2959, 2966,
- 2970, 2980, 2984, 2988, 2993, 2997, 3002, 3008, 3013, 3017, 3021, 3025,
- 2452, 3033, 3038, 3044, 3049, 3053, 3058, 3063, 3067, 3073, 3078, 2095,
- 3084, 3090, 3095, 3100, 3105, 3110, 3115, 3120, 3125, 3130, 3135, 3141,
- 3146, 1227, 92, 3152, 3156, 3160, 3164, 3169, 3173, 3177, 3181, 3185,
- 3190, 3194, 3199, 3203, 3206, 3210, 3215, 3219, 3224, 3228, 3232, 3236,
- 3241, 3245, 3248, 3261, 3265, 3269, 3273, 3277, 3281, 3284, 3288, 3292,
- 3297, 3301, 3306, 3311, 3316, 3320, 3323, 3326, 3332, 3336, 3340, 3343,
- 3347, 3351, 3354, 3360, 3365, 3370, 3376, 3381, 3386, 3392, 3398, 3403,
- 3408, 3413, 1120, 547, 3418, 3421, 3426, 3430, 3433, 3437, 3442, 3447,
- 3451, 3456, 3460, 3465, 3469, 3473, 3479, 3485, 3488, 3491, 3497, 3504,
- 3511, 3517, 3524, 3529, 3533, 3540, 3547, 3552, 3556, 3566, 3570, 3574,
- 3579, 3584, 3594, 2107, 3599, 3603, 3606, 3612, 3617, 3623, 3629, 3634,
- 3641, 3645, 3649, 620, 671, 1388, 3653, 3660, 3667, 3674, 3681, 3687,
- 3693, 3698, 3702, 3708, 3713, 3717, 2116, 3721, 3729, 600, 3735, 3746,
- 3750, 3760, 2121, 3766, 3771, 3786, 3792, 3799, 3809, 3815, 3820, 3826,
- 3832, 3835, 3839, 3844, 3851, 3856, 3860, 3864, 3868, 3872, 3877, 3883,
- 3894, 3211, 3899, 3911, 3919, 3924, 1564, 3931, 3934, 3937, 3941, 3944,
- 3950, 3954, 3968, 3972, 3975, 3979, 3985, 3991, 3996, 4000, 4004, 4010,
- 4021, 4027, 4032, 4038, 4042, 4050, 4060, 4066, 4071, 4080, 4088, 4095,
- 4099, 4105, 4114, 4123, 4127, 4132, 4137, 4141, 4149, 4153, 4158, 4162,
- 2129, 1401, 4168, 4173, 4179, 4184, 4189, 4194, 4199, 4204, 4209, 4215,
- 4220, 4226, 4231, 4236, 4241, 4247, 4252, 4257, 4262, 4267, 4273, 4278,
- 4284, 4289, 4294, 4299, 4304, 4309, 4314, 4320, 4325, 4330, 319, 456,
- 4335, 4341, 4345, 4349, 4354, 4358, 4362, 4365, 4369, 4373, 4377, 4381,
- 4386, 4390, 4394, 4400, 4165, 4405, 4409, 4412, 4417, 4422, 4427, 4432,
- 4437, 4442, 4447, 4452, 4457, 4462, 4466, 4471, 4476, 4481, 4486, 4491,
- 4496, 4501, 4506, 4511, 4516, 4520, 4525, 4530, 4535, 4540, 4545, 4550,
- 4555, 4560, 4565, 4570, 4574, 4579, 4584, 4589, 4594, 4599, 4604, 4609,
- 4614, 4619, 4624, 4628, 4633, 4638, 4643, 4648, 4653, 4658, 4663, 4668,
- 4673, 4678, 4682, 4687, 4692, 4697, 4702, 4707, 4712, 4717, 4722, 4727,
- 4732, 4736, 4741, 4746, 4751, 4756, 4761, 4766, 4771, 4776, 4781, 4786,
- 4790, 4795, 4800, 4805, 4810, 4816, 4822, 4828, 4834, 4840, 4846, 4852,
- 4857, 4863, 4869, 4875, 4881, 4887, 4893, 4899, 4905, 4911, 4917, 4922,
- 4928, 4934, 4940, 4946, 4952, 4958, 4964, 4970, 4976, 4982, 4987, 4993,
- 4999, 5005, 5011, 5017, 5023, 5029, 5035, 5041, 5047, 5052, 5058, 5064,
- 5070, 5076, 5082, 5088, 5094, 5100, 5106, 5112, 5117, 5123, 5129, 5135,
- 5141, 5147, 5153, 5159, 5165, 5171, 5177, 5182, 5186, 5192, 5198, 5204,
- 5210, 5216, 5222, 5228, 5234, 5240, 5246, 5251, 5257, 5263, 5269, 5275,
- 5281, 5287, 5293, 5299, 5305, 5311, 5316, 5322, 5328, 5334, 5340, 5346,
- 5352, 5358, 5364, 5370, 5376, 5381, 5387, 5393, 5399, 5405, 5411, 5417,
- 5423, 5429, 5435, 5441, 5446, 5452, 5458, 5464, 5470, 5476, 5482, 5488,
- 5494, 5500, 5506, 5511, 5517, 5523, 5529, 5535, 5541, 5547, 5553, 5559,
- 5565, 5571, 5576, 5582, 5588, 5594, 5600, 5606, 5612, 5618, 5624, 5630,
- 5636, 5641, 5647, 5653, 5659, 5665, 5671, 5677, 5683, 5689, 5695, 5701,
- 5706, 5712, 5718, 5724, 5730, 5736, 5742, 5748, 5754, 5760, 5766, 5771,
- 5777, 5783, 5789, 5795, 5801, 5807, 5813, 5819, 5825, 5831, 5836, 5840,
- 5843, 5850, 5854, 5867, 5871, 5875, 5879, 5883, 5887, 5891, 5897, 5904,
- 5912, 5916, 5924, 5933, 5939, 5951, 5956, 5959, 5963, 5973, 5981, 5989,
- 5995, 5999, 6009, 6019, 6027, 6034, 6041, 6047, 6053, 6060, 6064, 6071,
- 6081, 6091, 6099, 6106, 6111, 6115, 6123, 6127, 6132, 6139, 6147, 6152,
- 6157, 6161, 6168, 6173, 6187, 6192, 6197, 6204, 6213, 6216, 6220, 6224,
- 6228, 6231, 6236, 6241, 6250, 6256, 6262, 6268, 6272, 6283, 6293, 6308,
- 6323, 6338, 6353, 6368, 6383, 6398, 6413, 6428, 6443, 6458, 6473, 6488,
- 6503, 6518, 6533, 6548, 6563, 6578, 6593, 6608, 6623, 6638, 6653, 6668,
- 6683, 6698, 6713, 6728, 6743, 6758, 6773, 6788, 6803, 6818, 6833, 6848,
- 6863, 6878, 6893, 6908, 6923, 6938, 6953, 6968, 6983, 6998, 7013, 7028,
- 7037, 7046, 7051, 7057, 7067, 7071, 7076, 7081, 7089, 7093, 7096, 7100,
- 2975, 7103, 7108, 298, 425, 7114, 7122, 7126, 7130, 7133, 7137, 7143,
- 7147, 7155, 7161, 7166, 7173, 7180, 7186, 7191, 7198, 7204, 7212, 7216,
- 7221, 7233, 7244, 7251, 7255, 7259, 7265, 3233, 7269, 7275, 7280, 7285,
- 7290, 7296, 7301, 7306, 7311, 7316, 7322, 7327, 7332, 7338, 7343, 7349,
- 7354, 7360, 7365, 7371, 7376, 7381, 7386, 7391, 7396, 7402, 7407, 7412,
- 7417, 7423, 7429, 7435, 7441, 7447, 7453, 7459, 7465, 7471, 7477, 7483,
- 7489, 7494, 7499, 7504, 7509, 7514, 7519, 7524, 7529, 7535, 7541, 7546,
- 7552, 7558, 7564, 7569, 7574, 7579, 7584, 7590, 7596, 7601, 7606, 7611,
- 7616, 7621, 7627, 7632, 7638, 7644, 7650, 7656, 7662, 7668, 7674, 7680,
- 7686, 2138, 7132, 7691, 7695, 7699, 7702, 7709, 7712, 7720, 7725, 7730,
- 7721, 7735, 2165, 7739, 7745, 7751, 7756, 7761, 7768, 7776, 7781, 7785,
- 7788, 7792, 7798, 7804, 7808, 2173, 560, 7811, 7815, 7820, 7826, 7831,
- 7835, 7838, 7842, 7848, 7853, 7857, 7864, 7868, 7872, 7876, 945, 769,
- 7879, 7887, 7894, 7901, 7907, 7914, 7922, 7929, 7936, 7941, 7953, 1247,
- 1409, 1414, 7964, 1419, 7968, 7972, 7981, 7989, 7998, 8004, 8009, 8013,
- 8019, 8024, 2706, 8031, 8035, 8044, 8053, 8062, 8071, 8076, 8081, 8093,
- 8098, 8106, 2224, 8110, 8112, 8117, 8121, 8130, 8138, 1423, 133, 3461,
- 3466, 8144, 8148, 8157, 8163, 8168, 8171, 8180, 2698, 8186, 8194, 8198,
- 8202, 8206, 2237, 8210, 8215, 8222, 8228, 8234, 8237, 8239, 8242, 8250,
- 8258, 8266, 8269, 8274, 2250, 8279, 7732, 8282, 8284, 8289, 8294, 8299,
- 8304, 8309, 8314, 8319, 8324, 8329, 8334, 8340, 8345, 8350, 8355, 8361,
- 8366, 8371, 8376, 8381, 8386, 8391, 8397, 8402, 8407, 8412, 8417, 8422,
- 8427, 8432, 8437, 8442, 8447, 8452, 8457, 8462, 8467, 8472, 8477, 8482,
- 8488, 8494, 8499, 8504, 8509, 8514, 8519, 2261, 2268, 2274, 8524, 8530,
- 8538, 2300, 2306, 8546, 8550, 8555, 8559, 8563, 8567, 8572, 8576, 8581,
- 8585, 8588, 8591, 8597, 8603, 8609, 8615, 8621, 8627, 8633, 8637, 8641,
- 8645, 8649, 8653, 8658, 8665, 8676, 8684, 8694, 8700, 8707, 8712, 8716,
- 8727, 8740, 8751, 8764, 8775, 8787, 8799, 8811, 8824, 8837, 8844, 8850,
- 8864, 8871, 8877, 8881, 8886, 8890, 8897, 8905, 8909, 8915, 8919, 8925,
- 8935, 8939, 8944, 8949, 8956, 8962, 8972, 7909, 8978, 8982, 8989, 8996,
- 768, 9000, 9004, 9009, 9014, 9019, 9023, 9029, 9037, 9043, 9047, 9053,
- 9063, 9067, 9073, 9078, 9082, 9088, 9094, 2161, 9099, 9101, 9106, 9114,
- 9123, 9127, 9133, 9138, 9143, 9148, 9153, 9159, 9164, 9169, 4006, 9174,
- 9179, 9183, 9189, 9194, 9200, 9205, 9210, 9216, 9221, 9128, 9227, 9231,
- 9238, 9244, 9249, 9253, 6183, 9258, 9267, 9272, 9277, 8218, 8225, 9282,
- 2853, 9286, 9291, 9296, 9139, 9300, 9305, 9144, 9149, 9310, 9317, 9324,
- 9330, 9336, 9342, 9347, 9352, 9357, 9154, 9160, 9363, 9369, 9374, 9382,
- 9165, 9387, 990, 9390, 9398, 9404, 9410, 9419, 9427, 9432, 9438, 9446,
- 9453, 9468, 9485, 9504, 9513, 9521, 9536, 9547, 9557, 9567, 9575, 9581,
- 9593, 9602, 9610, 9617, 9624, 9630, 9635, 9643, 9653, 9660, 9670, 9680,
- 9690, 9698, 9705, 9714, 9724, 9738, 9753, 9762, 9770, 9775, 9779, 9788,
- 9794, 9799, 9809, 9819, 9829, 9834, 9838, 9847, 9852, 9862, 9873, 9886,
- 9894, 9907, 9919, 9927, 9932, 9936, 9942, 9947, 9955, 9963, 9970, 9975,
- 9983, 9989, 9992, 9996, 10002, 10010, 10015, 10019, 10027, 10036, 10044,
- 10050, 10054, 10061, 10072, 10076, 10079, 10085, 9170, 10090, 10096,
- 10103, 10109, 10114, 10121, 10128, 10135, 10142, 10149, 10156, 10163,
- 10170, 10175, 9481, 10180, 10186, 10193, 10200, 10205, 10212, 10221,
- 10225, 10237, 8256, 10241, 10244, 10248, 10252, 10256, 10260, 10266,
- 10272, 10277, 10283, 10288, 10293, 10299, 10304, 10309, 8952, 10314,
- 10318, 10322, 10326, 10331, 10336, 10344, 10350, 10354, 10358, 10365,
- 10370, 10378, 10383, 10387, 10390, 10396, 10403, 10407, 10410, 10415,
- 10419, 4045, 10425, 10434, 36, 10442, 10448, 10453, 8967, 10458, 10463,
- 10467, 10470, 10485, 10504, 10516, 10529, 10542, 10555, 10569, 10582,
- 10597, 10604, 9175, 10610, 10624, 10629, 10635, 10640, 10648, 10653,
- 8040, 10658, 10661, 10668, 10673, 10677, 2858, 998, 10683, 10687, 10693,
- 10699, 10704, 10710, 10715, 9184, 10721, 10727, 10732, 10737, 10745,
- 10751, 10764, 10772, 10779, 9190, 10785, 10793, 10801, 10808, 10821,
- 10833, 10843, 10851, 10858, 10865, 10874, 10883, 10891, 10898, 10903,
- 10909, 9195, 10914, 10920, 9201, 10925, 10928, 10935, 10941, 10954, 8669,
- 10965, 10971, 10980, 10988, 10995, 11001, 11007, 11012, 11016, 11021,
- 10477, 11027, 9206, 11034, 11039, 11046, 11052, 11058, 11063, 11071,
- 11079, 11086, 11090, 11104, 11114, 11119, 11123, 11134, 11140, 11145,
- 11150, 9211, 9217, 11154, 11157, 11162, 11174, 11181, 11186, 11190,
- 11195, 11199, 11206, 11212, 9222, 9129, 11219, 2863, 8, 11226, 11231,
- 11235, 11241, 11249, 11259, 11264, 11269, 11276, 11283, 11287, 11298,
- 11308, 11317, 11329, 11334, 11338, 11346, 11360, 11364, 11367, 11375,
- 11382, 11390, 11394, 11405, 11409, 11416, 11421, 11425, 11431, 11436,
- 11440, 11446, 11451, 11462, 11466, 11469, 11475, 11480, 11486, 11492,
- 11499, 11510, 11520, 11530, 11539, 11546, 11555, 9232, 9239, 9245, 9250,
- 11561, 11567, 9254, 11573, 11576, 11583, 11588, 11603, 11619, 11634,
- 11642, 11648, 11653, 838, 420, 11658, 11666, 11673, 11679, 11684, 11689,
- 9259, 11691, 11695, 11700, 11704, 11714, 11719, 11723, 11732, 11736,
- 11739, 9268, 11746, 11749, 11757, 11764, 11772, 11776, 11783, 11792,
- 11795, 11799, 11803, 11809, 11813, 11817, 11821, 11827, 11837, 11841,
- 11849, 11853, 11860, 11864, 11869, 11873, 11880, 11886, 11894, 11900,
- 11905, 11915, 11920, 11925, 11929, 11937, 3905, 11945, 11950, 9273,
- 11954, 11958, 11961, 11969, 11976, 11980, 5991, 11984, 11989, 11993,
- 12004, 12014, 12019, 12025, 12029, 12032, 12040, 12045, 12050, 12057,
- 12062, 9278, 12067, 12071, 12078, 1722, 6145, 12083, 12088, 12093, 12098,
- 12104, 12109, 12115, 12120, 12125, 12130, 12135, 12140, 12145, 12150,
- 12155, 12160, 12165, 12170, 12175, 12180, 12185, 12190, 12195, 12201,
- 12206, 12211, 12216, 12221, 12226, 12232, 12237, 12242, 12248, 12253,
- 12259, 12264, 12270, 12275, 12280, 12285, 12290, 12296, 12301, 12306,
- 12311, 737, 139, 12319, 12323, 12328, 12333, 12337, 12341, 12345, 12350,
- 12354, 12359, 12363, 12366, 12370, 12374, 12380, 12385, 12395, 12401,
- 12409, 12413, 12417, 12424, 12432, 12441, 12452, 12459, 12466, 12470,
- 12479, 12488, 12496, 12505, 12514, 12523, 12532, 12542, 12552, 12562,
- 12572, 12582, 12591, 12601, 12611, 12621, 12631, 12641, 12651, 12661,
- 12670, 12680, 12690, 12700, 12710, 12720, 12730, 12739, 12749, 12759,
- 12769, 12779, 12789, 12799, 12809, 12819, 12829, 12838, 12848, 12858,
- 12868, 12878, 12888, 12898, 12908, 12918, 12928, 12938, 12947, 1256,
- 12953, 12956, 12960, 12965, 12972, 12978, 12983, 12987, 12992, 13001,
- 13009, 13014, 13018, 13022, 13028, 13033, 13039, 9287, 13044, 13049,
- 13058, 9292, 13063, 13066, 13072, 13080, 9297, 13087, 13091, 13095,
- 13099, 13109, 13115, 13121, 13126, 13135, 13143, 13150, 13157, 13162,
- 13169, 13174, 13178, 13181, 13192, 13202, 13211, 13219, 13230, 13242,
- 13252, 13257, 13261, 13266, 13271, 13275, 13281, 13289, 13296, 13307,
- 13312, 13322, 13326, 13329, 13336, 13346, 13355, 13362, 13366, 13373,
- 13379, 13384, 13389, 13393, 13402, 13407, 13413, 13417, 13422, 13426,
- 13435, 13443, 13451, 13458, 13466, 13478, 13489, 13499, 13506, 13512,
- 13521, 13532, 13541, 13553, 13565, 13577, 13587, 13596, 13605, 13613,
- 13620, 13629, 13637, 13641, 13647, 13653, 13658, 7753, 13662, 13664,
- 13668, 13673, 13679, 13688, 13692, 13698, 13706, 13713, 13722, 13731,
- 13740, 13749, 13758, 13767, 13776, 13785, 13795, 13805, 13814, 13820,
- 13827, 13834, 13840, 13854, 13861, 13869, 13878, 13884, 13893, 13902,
- 13913, 13923, 13931, 13938, 13946, 13955, 13968, 13976, 13983, 13996,
- 14002, 14008, 14018, 14027, 14036, 14041, 14045, 14051, 14057, 14064,
- 8966, 14069, 14074, 14081, 14086, 12376, 14091, 14099, 14105, 14110,
- 14118, 14126, 14133, 14141, 14147, 14155, 14163, 14169, 14174, 14180,
- 14187, 14193, 14198, 14202, 14213, 14221, 14227, 14232, 14241, 14247,
- 14252, 14261, 14275, 3853, 14279, 14284, 14289, 14295, 14300, 14305,
- 14309, 14314, 14319, 14324, 7752, 14329, 14334, 14339, 14344, 14349,
- 14353, 14358, 14363, 14368, 14373, 14379, 14385, 14390, 14394, 14399,
- 14404, 14409, 9301, 14414, 14419, 14424, 14429, 14434, 14451, 14469,
- 14481, 14494, 14511, 14527, 14544, 14554, 14573, 14584, 14595, 14606,
- 14617, 14629, 14640, 14651, 14668, 14679, 14690, 14695, 9306, 14700,
- 14704, 2381, 14708, 14711, 14717, 14725, 14733, 14738, 14746, 14754,
- 14761, 14766, 14772, 14779, 14787, 14794, 14806, 14814, 14819, 11597,
- 14825, 14834, 14843, 14851, 14858, 14864, 14872, 14879, 14885, 14892,
- 14898, 14907, 14915, 14925, 14932, 14938, 14946, 14952, 14960, 14967,
- 14980, 14987, 14996, 15005, 15014, 15022, 15032, 15039, 15044, 3560,
- 15051, 15056, 1372, 15060, 14330, 15064, 15070, 15074, 15082, 15094,
- 15099, 15106, 15112, 15117, 15124, 14335, 15128, 15132, 15136, 14340,
- 15140, 14345, 15144, 15151, 15156, 15160, 15167, 15171, 15179, 15186,
- 15190, 15197, 15214, 15223, 15227, 15230, 15238, 15244, 15249, 3638,
- 15253, 15255, 15263, 15270, 15280, 15292, 15297, 15303, 15308, 15312,
- 15318, 15323, 15329, 15332, 15339, 15347, 15354, 15360, 15366, 15371,
- 15378, 15384, 15389, 15396, 15400, 15406, 15410, 15417, 15423, 15429,
- 15437, 15443, 15448, 15454, 15462, 15470, 15476, 15482, 15487, 15494,
- 15499, 15503, 15509, 15514, 15521, 15526, 15532, 15535, 15541, 15547,
- 15550, 15554, 15566, 15572, 15577, 15584, 15590, 15596, 15607, 15617,
- 15626, 15634, 15641, 15652, 15662, 15672, 15680, 15683, 14359, 15688,
- 15693, 14364, 14499, 15701, 15714, 15729, 15740, 14516, 15758, 15771,
- 15784, 15795, 10492, 15806, 15819, 15838, 15849, 15860, 15871, 2649,
- 15884, 15888, 15896, 15911, 15926, 15937, 15944, 15950, 15958, 15962,
- 15968, 15971, 15981, 15989, 15996, 16004, 16014, 16019, 16026, 16031,
- 16038, 16049, 16059, 16065, 16070, 16075, 14369, 16079, 16085, 16091,
- 16096, 16101, 16106, 16110, 14374, 14380, 16114, 14386, 16119, 16127,
- 16136, 16143, 9150, 16147, 16149, 16154, 16159, 16165, 16170, 16175,
- 16180, 16185, 16189, 16195, 16201, 16206, 16212, 16217, 16222, 16228,
- 16233, 16238, 16243, 16248, 16254, 16259, 16264, 16270, 16276, 16281,
- 16286, 16293, 16299, 16310, 16317, 16322, 16326, 16330, 16333, 16341,
- 16346, 16353, 16360, 16366, 16371, 16376, 16383, 16393, 16398, 16405,
- 16411, 16421, 16431, 16445, 16459, 16473, 16487, 16502, 16517, 16534,
- 16552, 16565, 16571, 16576, 16581, 16585, 16590, 16598, 16604, 16609,
- 16614, 16618, 16623, 16627, 16632, 16636, 16647, 16653, 16658, 16663,
- 16670, 16675, 16679, 16684, 16689, 16695, 16702, 16708, 16713, 16717,
- 16723, 16728, 16733, 16737, 16743, 16748, 16753, 16760, 16765, 13111,
- 16769, 16774, 16778, 16783, 16789, 16795, 16802, 16812, 16820, 16827,
- 16832, 16836, 16845, 16853, 16860, 16867, 16873, 16879, 16884, 16889,
- 16895, 16900, 16906, 16911, 16917, 16923, 16930, 16936, 16941, 16946,
- 9348, 16955, 16958, 16964, 16969, 16974, 16984, 16991, 16997, 17002,
- 17007, 17013, 17018, 17024, 17029, 17035, 17041, 17046, 17054, 17061,
- 17066, 17071, 17077, 17082, 17086, 17095, 17106, 17113, 17118, 17126,
- 17132, 17139, 17145, 17150, 17154, 17160, 17165, 17170, 17175, 1440,
- 7777, 2877, 17179, 17183, 17187, 17191, 17195, 17199, 17202, 17209,
- 17217, 14400, 17224, 17234, 17242, 17249, 17257, 17267, 17276, 17289,
- 17294, 17299, 17307, 17314, 13207, 13216, 17321, 17331, 17346, 17352,
- 17359, 17366, 17372, 17380, 17390, 17400, 14405, 17409, 17415, 17421,
- 17429, 17437, 17442, 17451, 17459, 17471, 17481, 17491, 17501, 17510,
- 17522, 17532, 17542, 17553, 17558, 17570, 17582, 17594, 17606, 17618,
- 17630, 17642, 17654, 17666, 17678, 17689, 17701, 17713, 17725, 17737,
- 17749, 17761, 17773, 17785, 17797, 17809, 17820, 17832, 17844, 17856,
- 17868, 17880, 17892, 17904, 17916, 17928, 17940, 17951, 17963, 17975,
- 17987, 17999, 18011, 18023, 18035, 18047, 18059, 18071, 18082, 18094,
- 18106, 18118, 18130, 18142, 18154, 18166, 18178, 18190, 18202, 18213,
- 18225, 18237, 18249, 18261, 18273, 18285, 18297, 18309, 18321, 18333,
- 18344, 18356, 18368, 18380, 18392, 18404, 18416, 18428, 18440, 18452,
- 18464, 18475, 18487, 18499, 18511, 18523, 18536, 18549, 18562, 18575,
- 18588, 18601, 18614, 18626, 18639, 18652, 18665, 18678, 18691, 18704,
- 18717, 18730, 18743, 18756, 18768, 18781, 18794, 18807, 18820, 18833,
- 18846, 18859, 18872, 18885, 18898, 18910, 18923, 18936, 18949, 18962,
- 18975, 18988, 19001, 19014, 19027, 19040, 19052, 19065, 19078, 19091,
- 19104, 19117, 19130, 19143, 19156, 19169, 19182, 19194, 19207, 19220,
- 19233, 19246, 19259, 19272, 19285, 19298, 19311, 19324, 19336, 19347,
- 19360, 19373, 19386, 19399, 19412, 19425, 19438, 19451, 19464, 19477,
- 19489, 19502, 19515, 19528, 19541, 19554, 19567, 19580, 19593, 19606,
- 19619, 19631, 19644, 19657, 19670, 19683, 19696, 19709, 19722, 19735,
- 19748, 19761, 19773, 19786, 19799, 19812, 19825, 19838, 19851, 19864,
- 19877, 19890, 19903, 19915, 19928, 19941, 19954, 19967, 19980, 19993,
- 20006, 20019, 20032, 20045, 20057, 20070, 20083, 20096, 20109, 20122,
- 20135, 20148, 20161, 20174, 20187, 20199, 20212, 20225, 20238, 20251,
- 20264, 20277, 20290, 20303, 20316, 20329, 20341, 20354, 20367, 20380,
- 20393, 20406, 20419, 20432, 20445, 20458, 20471, 20483, 20496, 20509,
- 20522, 20535, 20548, 20561, 20574, 20587, 20600, 20613, 20625, 20638,
- 20651, 20664, 20677, 20690, 20703, 20716, 20729, 20742, 20755, 20767,
- 20778, 20786, 20794, 20801, 20807, 20811, 20817, 20823, 20831, 20837,
- 20842, 20846, 20855, 9155, 20866, 20873, 20881, 20888, 20895, 10948,
- 20902, 20911, 20916, 20921, 7805, 20928, 20933, 20936, 20941, 20949,
- 20956, 20963, 20970, 20976, 20985, 20994, 21000, 21009, 21013, 21019,
- 21024, 21034, 21041, 21047, 21055, 21061, 21068, 21078, 21087, 21091,
- 21098, 21102, 21107, 21113, 21121, 21125, 21135, 14415, 21144, 21150,
- 21154, 21163, 14420, 21169, 21176, 21187, 21195, 21204, 21212, 8931,
- 21220, 21225, 21231, 21236, 21240, 21244, 21248, 9639, 21253, 21261,
- 21268, 21277, 21284, 21291, 10878, 21298, 21304, 21308, 21314, 21321,
- 21327, 21335, 21341, 21348, 21354, 21360, 21369, 21373, 21381, 21390,
- 21397, 21402, 21406, 21417, 21422, 21427, 21432, 21445, 7995, 21449,
- 21455, 21463, 21467, 21474, 21483, 21488, 14691, 21496, 21500, 21512,
- 21517, 21521, 21524, 21530, 21536, 21541, 21545, 21548, 21559, 21564,
- 9383, 21571, 21576, 9388, 21581, 21586, 21591, 21596, 21601, 21606,
- 21611, 21616, 21621, 21626, 21631, 21636, 21642, 21647, 21652, 21657,
- 21662, 21667, 21672, 21677, 21682, 21687, 21693, 21699, 21704, 21709,
- 21714, 21719, 21724, 21729, 21734, 21739, 21744, 21750, 21755, 21760,
- 21765, 21771, 21777, 21782, 21787, 21792, 21797, 21802, 21807, 21812,
- 21817, 21823, 21828, 21833, 21838, 21843, 21849, 21854, 21859, 21863,
- 1368, 129, 21871, 21875, 21879, 21883, 21888, 21892, 13117, 12476, 21896,
- 21901, 21905, 21910, 21914, 21919, 21923, 21929, 21934, 21938, 21942,
- 21950, 21954, 21958, 21963, 21968, 21972, 21978, 21983, 21987, 21992,
- 21997, 22001, 22008, 22015, 22022, 22026, 22030, 22035, 22039, 22042,
- 22048, 22061, 22066, 22075, 22080, 9428, 22085, 22088, 2712, 2717, 22092,
- 22098, 22104, 7209, 22109, 22114, 22119, 22125, 22130, 13909, 22135,
- 22140, 22145, 22150, 22156, 22161, 22166, 22172, 22177, 22181, 22186,
- 22191, 22196, 22201, 22205, 22210, 22214, 22219, 22224, 22229, 22234,
- 22238, 22243, 22247, 22252, 22257, 22262, 22267, 2886, 22182, 22271,
- 22279, 22286, 9733, 22298, 22306, 22187, 22313, 22318, 22326, 22192,
- 22331, 22336, 22344, 22349, 22197, 22354, 22359, 22363, 22369, 22377,
- 22380, 22387, 22391, 22395, 22401, 22408, 22413, 8958, 1727, 1732, 22417,
- 22423, 22429, 22434, 22438, 22442, 22446, 22450, 22454, 22458, 22462,
- 22466, 22469, 22475, 22482, 22490, 22496, 22502, 22507, 22512, 22516,
- 13829, 13836, 22521, 22533, 22536, 22543, 16362, 22550, 22558, 22569,
- 22578, 22591, 22601, 22615, 22627, 22641, 22653, 22663, 22675, 22681,
- 22696, 22720, 22738, 22757, 22770, 22784, 22802, 22818, 22835, 22853,
- 22864, 22883, 22900, 22920, 22938, 22950, 22964, 22978, 22990, 23007,
- 23026, 23044, 23056, 23074, 23093, 14559, 23106, 23126, 23138, 10523,
- 23150, 23155, 23160, 23165, 23171, 23176, 23180, 23187, 2398, 23191,
- 23197, 23201, 23204, 23208, 23216, 23222, 22215, 23226, 23235, 23246,
- 23252, 23258, 23267, 23275, 23282, 23287, 23291, 23298, 23304, 23313,
- 23321, 23328, 23338, 23347, 23357, 23362, 23371, 23380, 23391, 23402,
- 3963, 23412, 23416, 23426, 23434, 23444, 23455, 23460, 23470, 23478,
- 23485, 23491, 23498, 23503, 22225, 23507, 23516, 23520, 23523, 23528,
- 23535, 23544, 23552, 23560, 23570, 23579, 23585, 23591, 22230, 22235,
- 23595, 23605, 23615, 23625, 23633, 23640, 23650, 23658, 23666, 23672,
- 23680, 930, 23689, 14750, 542, 23703, 23712, 23720, 23731, 23742, 23752,
- 23761, 23773, 23782, 23791, 23797, 23806, 23815, 23825, 23833, 23841,
- 9360, 23847, 23850, 23854, 23859, 23864, 9848, 22248, 22253, 23872,
- 23878, 23884, 23889, 23894, 23898, 23906, 23912, 23918, 23922, 3525,
- 23930, 23935, 23940, 23944, 23948, 9928, 23955, 23963, 23977, 23984,
- 23990, 9937, 9943, 23998, 24006, 24013, 24018, 24023, 22258, 24029,
- 24040, 24044, 24049, 2601, 24054, 24065, 24071, 24076, 24080, 24084,
- 24087, 24094, 24101, 24108, 24114, 24118, 22263, 24123, 24127, 24131,
- 1037, 24136, 24141, 24146, 24151, 24156, 24161, 24166, 24171, 24176,
- 24181, 24186, 24191, 24196, 24201, 24207, 24212, 24217, 24222, 24227,
- 24232, 24237, 24243, 24248, 24253, 24258, 24263, 24268, 24273, 24278,
- 24284, 24290, 24295, 24301, 24306, 24311, 5, 24317, 24321, 24325, 24329,
- 24334, 24338, 24342, 24346, 24350, 24355, 24359, 24364, 24368, 24371,
- 24375, 24380, 24384, 24389, 24393, 24397, 24401, 24406, 24410, 24414,
- 24424, 24429, 24433, 24437, 24442, 24447, 24456, 24461, 24466, 24470,
- 24474, 24487, 24499, 24508, 24517, 24523, 24528, 24532, 24536, 24546,
- 24555, 24563, 24569, 24574, 24578, 24585, 24595, 24604, 24612, 24620,
- 24627, 24635, 24644, 24653, 24661, 24666, 24670, 24674, 24677, 24679,
- 24683, 24687, 24692, 24697, 24701, 24705, 24708, 24712, 24715, 24719,
- 24722, 24725, 24729, 24735, 24739, 24743, 24747, 24752, 24757, 24762,
- 24766, 24769, 24774, 24780, 24785, 24791, 24796, 24800, 24804, 24808,
- 24813, 24817, 24822, 24826, 24830, 24837, 24841, 24844, 24848, 24854,
- 24860, 24864, 24868, 24873, 24880, 24886, 24890, 24899, 24903, 24907,
- 24910, 24916, 24921, 24927, 1489, 1791, 24932, 24937, 24942, 24947,
- 24952, 24957, 24962, 2148, 2194, 24967, 24970, 24974, 24978, 24983,
- 24987, 24991, 24994, 24999, 25004, 25008, 25011, 25016, 25020, 25025,
- 25029, 14762, 25034, 25037, 25040, 25044, 25049, 25053, 25066, 25070,
- 25073, 25081, 25090, 25097, 25102, 25108, 25114, 25122, 25129, 25136,
- 25140, 25144, 25148, 25153, 25158, 25162, 25170, 25175, 25187, 25198,
- 25203, 25207, 25211, 25217, 25222, 25227, 25231, 25235, 25238, 25244,
- 7915, 2316, 25248, 25253, 25269, 9475, 25289, 25298, 25314, 25318, 25321,
- 25327, 25337, 25343, 25352, 25367, 25379, 25390, 25398, 25407, 25413,
- 25422, 25432, 25443, 25454, 25463, 25470, 25479, 25487, 25494, 25502,
- 25509, 25516, 25529, 25536, 25542, 25547, 25556, 25562, 25567, 25575,
- 25582, 23436, 25594, 25606, 25620, 25628, 25635, 25647, 25656, 25665,
- 25673, 25681, 25689, 25696, 25705, 25713, 25723, 25732, 25742, 25751,
- 25760, 25768, 25773, 25777, 25780, 25784, 25788, 25792, 25796, 25800,
- 25806, 25812, 25820, 14807, 25827, 25832, 25839, 25845, 25852, 14815,
- 25859, 25862, 25874, 25882, 25888, 25893, 25897, 9878, 25908, 25918,
- 25927, 25934, 25938, 14820, 25941, 25948, 25952, 25958, 25961, 25968,
- 25974, 25981, 25987, 25991, 25996, 26000, 26009, 26016, 26022, 7956,
- 26029, 26037, 26044, 26050, 26055, 26061, 26067, 26075, 26079, 26082,
- 26084, 25785, 26093, 26099, 26109, 26114, 26121, 26127, 26132, 26137,
- 26142, 26146, 26151, 26158, 26167, 26171, 26178, 26187, 26193, 26198,
- 26204, 26209, 26216, 26227, 26232, 26236, 26246, 26252, 26256, 26261,
- 26271, 26280, 26284, 26291, 26299, 26306, 26312, 26317, 26325, 26332,
- 26344, 26353, 26357, 13053, 26365, 26375, 26379, 25077, 26390, 26395,
- 26399, 26406, 26413, 21974, 25710, 26418, 26422, 26425, 22870, 26430,
- 26444, 26460, 26478, 26497, 26514, 26532, 22889, 26549, 26569, 22906,
- 26581, 26593, 15745, 26605, 22926, 26619, 26631, 10536, 26645, 26650,
- 26655, 26660, 26666, 26672, 26678, 26682, 26689, 26694, 26704, 26710,
- 10183, 26716, 26718, 26723, 26731, 26735, 26154, 26741, 26748, 11524,
- 11534, 26755, 26765, 26770, 26774, 26777, 26783, 26791, 26803, 26813,
- 26829, 26842, 26856, 15763, 26870, 26877, 26881, 26884, 26889, 26893,
- 26900, 26907, 26917, 26922, 26927, 26932, 26940, 26948, 26957, 26962,
- 9572, 26966, 26969, 26972, 26977, 26984, 26989, 27005, 27013, 27021,
- 9423, 27029, 27034, 27038, 27044, 27050, 27053, 27059, 27071, 27079,
- 27086, 27092, 27099, 27110, 27124, 27137, 27146, 27155, 27167, 27178,
- 27188, 27197, 27206, 27214, 27225, 7938, 27232, 27238, 27243, 27249,
- 27256, 27266, 27276, 27285, 27291, 27298, 27303, 27310, 27318, 27326,
- 27338, 6246, 27345, 27354, 27362, 27368, 27374, 27379, 27383, 27386,
- 27392, 27399, 27404, 27409, 27413, 27425, 27436, 27445, 27453, 14947,
- 27458, 27464, 27470, 11517, 8635, 27475, 27479, 27483, 27486, 27489,
- 27495, 27503, 27511, 27515, 27519, 27524, 27527, 27536, 27540, 27548,
- 27559, 27563, 27569, 27575, 27579, 27585, 27593, 27615, 27639, 27646,
- 27653, 27659, 27667, 27673, 27678, 27689, 27707, 27714, 27722, 27726,
- 27735, 27748, 27756, 27768, 27779, 27789, 27803, 27812, 27820, 27832,
- 9492, 27843, 27854, 27866, 27876, 27885, 27890, 27894, 27902, 27912,
- 27917, 27921, 27924, 27927, 27935, 27943, 27952, 27962, 27971, 27977,
- 27991, 2663, 28013, 28024, 28033, 28043, 28055, 28064, 28073, 28083,
- 28091, 28099, 28108, 28113, 28124, 28129, 28140, 28144, 28154, 28163,
- 28171, 28181, 28191, 28199, 28208, 28215, 28223, 28230, 28239, 28243,
- 28251, 28258, 28266, 28273, 28284, 28299, 28306, 28312, 28322, 28331,
- 28337, 28341, 28348, 28352, 14031, 28358, 28362, 28367, 28374, 28378,
- 28382, 28390, 28398, 28404, 28413, 28420, 28425, 28430, 28440, 23505,
- 28444, 28447, 28452, 28457, 28462, 28467, 28472, 28477, 28482, 28487,
- 28493, 28498, 28503, 28509, 1218, 704, 28514, 28523, 2364, 28530, 28535,
- 28539, 28545, 1267, 546, 318, 28550, 28559, 28567, 28576, 28584, 28595,
- 28604, 28612, 28616, 28619, 28627, 28635, 28640, 14775, 28646, 28652,
- 28658, 5872, 28663, 28667, 28673, 28677, 28684, 1455, 28690, 28697, 9579,
- 28701, 28711, 28719, 28725, 28734, 28742, 28748, 28756, 28763, 11110,
- 28769, 28776, 28781, 28788, 1496, 2147, 28794, 28800, 28807, 28818,
- 28829, 28837, 28844, 28854, 28863, 28871, 28880, 28887, 28894, 28907,
- 28918, 1272, 28937, 28942, 28950, 3575, 28954, 28959, 28963, 1459, 24706,
- 28973, 28977, 28982, 28986, 3493, 28992, 29000, 29007, 29018, 29026,
- 29034, 3576, 279, 29039, 29047, 29055, 29062, 29068, 29073, 2216, 29080,
- 29086, 25992, 26222, 29092, 106, 29096, 29100, 29106, 615, 9328, 29111,
- 29118, 29124, 2327, 29128, 29132, 15187, 29135, 29140, 29147, 29153,
- 29158, 29166, 29173, 29179, 22351, 29183, 29187, 3646, 16625, 29191,
- 29196, 29199, 29207, 29215, 29220, 29223, 29230, 29240, 29252, 29257,
- 29261, 29269, 29276, 29282, 29289, 29296, 29299, 29303, 29307, 1463,
- 29317, 29319, 29324, 29330, 29336, 29341, 29346, 29351, 29356, 29361,
- 29366, 29371, 29376, 29381, 29386, 29391, 29396, 29401, 29406, 29412,
- 29418, 29424, 29430, 29435, 29440, 29445, 29451, 29456, 29461, 29466,
- 29472, 29477, 29483, 29488, 29493, 29498, 29503, 29509, 29514, 29520,
- 29525, 29530, 29535, 29540, 29546, 29551, 29557, 29562, 29567, 29572,
- 29577, 29582, 29587, 29592, 29597, 29602, 29608, 29614, 29620, 29625,
- 29630, 29635, 29640, 29646, 29652, 29658, 29664, 29670, 29676, 29681,
- 29687, 29692, 29697, 29702, 29707, 29713, 2443, 29718, 2450, 2457, 2754,
- 29723, 2463, 2473, 29729, 29733, 29738, 29743, 29749, 29754, 29759,
- 29763, 29768, 29774, 29779, 29784, 29789, 29795, 29800, 29804, 29808,
- 29813, 29818, 29823, 29828, 29833, 29839, 29845, 29850, 29854, 29859,
- 29865, 29869, 29874, 29879, 29884, 29889, 29893, 29896, 29901, 29906,
- 29911, 29916, 29921, 29927, 29933, 29938, 29943, 29947, 29952, 29957,
- 29962, 29967, 29972, 29976, 29981, 29986, 29991, 29995, 29999, 30003,
- 30008, 30016, 30021, 30027, 30033, 30039, 30044, 30048, 30051, 30056,
- 30061, 30065, 30070, 30074, 30079, 30083, 30086, 30091, 17302, 30096,
- 30101, 30106, 30114, 21280, 28694, 9026, 30119, 30124, 30128, 30133,
- 30137, 30141, 30146, 30150, 30153, 30156, 30160, 30165, 30169, 30177,
- 30181, 30184, 30189, 30193, 30197, 30202, 30207, 30211, 30217, 30222,
- 30227, 30234, 30241, 30245, 30248, 30254, 30263, 30270, 30278, 30285,
- 30289, 30294, 30298, 30302, 30308, 30314, 30318, 30324, 30329, 30334,
- 30338, 30345, 30351, 30357, 30363, 30369, 30376, 30382, 30388, 30394,
- 30400, 30406, 30412, 30418, 30425, 30431, 30438, 30444, 30450, 30456,
- 30462, 30468, 30474, 30480, 30486, 30492, 11418, 30498, 30503, 30508,
- 30511, 30519, 30524, 30533, 30539, 30544, 30549, 30554, 30558, 30563,
- 30568, 30573, 30578, 30583, 30590, 30597, 30603, 30609, 30614, 16303,
- 30621, 30627, 30634, 30640, 30646, 30651, 30659, 30664, 16082, 30668,
- 30673, 30678, 30684, 30689, 30694, 30698, 30703, 30708, 30714, 30719,
- 30724, 30728, 30733, 30738, 30742, 30747, 30752, 30757, 30761, 30766,
- 30771, 30776, 30780, 30784, 15293, 30788, 30797, 30803, 30809, 30818,
- 30826, 30835, 30843, 30848, 30852, 30859, 30865, 30869, 30872, 30877,
- 30886, 30894, 30899, 1495, 30905, 30908, 30912, 22424, 22430, 30918,
- 30922, 30933, 30944, 30955, 30967, 30974, 30981, 30986, 30990, 5909, 755,
- 21279, 30998, 31003, 31007, 31012, 31016, 31022, 31027, 31033, 31038,
- 31044, 31049, 31055, 31060, 31066, 31072, 31078, 31083, 31039, 31045,
- 31087, 31092, 31098, 31103, 31109, 31114, 31120, 31125, 31050, 10421,
- 31129, 31061, 31067, 31073, 2831, 3423, 31135, 31138, 31144, 31150,
- 31156, 31163, 31169, 31175, 31181, 31187, 31193, 31199, 31205, 31211,
- 31217, 31223, 31229, 31235, 31242, 31248, 31254, 31260, 31266, 31272,
- 31275, 31280, 31283, 31290, 31298, 31303, 31308, 31314, 31319, 31324,
- 31328, 31333, 31339, 31344, 31350, 31355, 31361, 31366, 31372, 31378,
- 31382, 31387, 31392, 31397, 31402, 31406, 31411, 31416, 31421, 31427,
- 31433, 31439, 31445, 31450, 31454, 31457, 31463, 31469, 31478, 31486,
- 31493, 31498, 31502, 31506, 31511, 15146, 31516, 31524, 31530, 3683,
- 1377, 31535, 31539, 8005, 31545, 31551, 31558, 8014, 31562, 31568, 31575,
- 31581, 31590, 31598, 31610, 31614, 31621, 31627, 31631, 31634, 31643,
- 31651, 31040, 31656, 31666, 31676, 31686, 31692, 31697, 31707, 31712,
- 31725, 31739, 31750, 31762, 31774, 31788, 31801, 31813, 31825, 14600,
- 31839, 31844, 31849, 31853, 31857, 31861, 1780, 27176, 31865, 31870,
- 31088, 31875, 31878, 31883, 31888, 31893, 31899, 31905, 10098, 31910,
- 31917, 15697, 31923, 31928, 31933, 31937, 31942, 31947, 31093, 31952,
- 31957, 31962, 31968, 31099, 31973, 31976, 31983, 31991, 31997, 32003,
- 32009, 32020, 32025, 32032, 32039, 32046, 32054, 32063, 32072, 32078,
- 32084, 32092, 31104, 32097, 32103, 32109, 31110, 32114, 32119, 32127,
- 32135, 32141, 32148, 32154, 32161, 32168, 32174, 32182, 32192, 32199,
- 32204, 32210, 32215, 32220, 32227, 32236, 32244, 32249, 32255, 32262,
- 32270, 32276, 32281, 32287, 32296, 27957, 32303, 32307, 32312, 32321,
- 32326, 32331, 32336, 12405, 32344, 32349, 32354, 32359, 32363, 32368,
- 32373, 32380, 32385, 32390, 32395, 31115, 21216, 32401, 2519, 244, 32404,
- 32407, 32411, 32415, 32425, 32433, 32437, 32444, 32451, 32455, 32458,
- 32464, 32472, 32480, 32484, 32488, 32491, 32498, 32502, 32506, 32513,
- 32521, 31051, 32528, 32536, 10158, 664, 308, 32548, 32553, 32558, 32564,
- 32569, 32574, 3704, 32579, 32582, 32587, 32592, 32597, 32602, 32607,
- 32614, 22529, 32619, 32624, 32629, 32634, 32639, 32645, 32650, 32656,
- 31286, 32662, 32667, 32673, 32679, 32689, 32694, 32699, 32703, 32708,
- 32713, 32718, 32723, 32736, 32741, 22302, 16705, 3710, 32745, 32750,
- 32755, 32761, 32766, 32771, 32775, 32780, 32785, 32791, 32796, 32801,
- 1382, 32805, 32810, 32815, 32820, 32824, 32829, 32834, 32839, 32845,
- 32851, 32856, 32860, 32864, 32869, 32874, 32879, 32883, 32891, 32895,
- 32901, 32905, 32912, 16498, 31062, 32918, 32925, 32933, 32940, 32946,
- 32959, 32971, 32977, 32981, 2773, 32985, 32989, 32493, 32998, 33009,
- 33014, 33019, 33024, 33028, 33033, 22435, 33037, 33041, 33046, 31068,
- 21300, 33050, 33055, 33061, 33066, 33070, 33074, 33077, 33081, 33087,
- 33098, 33110, 31074, 33115, 33118, 33122, 347, 33127, 33132, 33137,
- 33142, 33147, 33152, 33158, 33163, 33168, 33174, 33179, 33185, 33190,
- 33196, 33201, 33206, 33211, 33216, 33221, 33226, 33231, 33236, 33242,
- 33247, 33252, 33257, 33262, 33267, 33272, 33277, 33283, 33289, 33294,
- 33299, 33304, 33309, 33314, 33319, 33324, 33329, 33334, 33339, 33344,
- 33349, 33354, 33359, 33364, 33369, 33374, 33379, 33385, 313, 26, 33390,
- 33394, 33398, 33406, 33410, 33414, 33417, 33420, 33422, 33427, 33431,
- 33436, 33440, 33445, 33449, 33454, 33458, 33461, 33463, 33467, 33472,
- 33476, 33487, 33490, 33492, 33496, 33508, 33517, 33521, 33525, 33531,
- 33536, 33545, 33551, 33556, 33561, 33565, 33570, 33577, 33582, 33588,
- 33593, 33597, 33604, 25718, 25728, 33608, 33613, 33618, 33623, 33630,
- 33634, 33641, 8113, 33647, 33656, 33664, 33679, 33693, 33701, 33712,
- 33721, 33726, 7227, 33736, 33741, 33746, 33750, 33753, 33757, 33762,
- 33766, 33773, 33778, 33783, 8912, 33793, 33795, 33798, 33802, 33808,
- 33812, 33817, 33822, 33828, 33833, 33839, 33844, 33854, 33863, 33871,
- 33876, 33882, 33887, 33894, 33898, 33906, 33913, 33926, 33934, 33938,
- 33948, 33953, 33957, 33965, 33973, 33977, 33986, 33992, 33997, 34005,
- 34015, 34024, 34033, 34042, 34053, 34061, 34072, 34081, 34088, 34094,
- 34099, 34110, 34115, 34119, 34122, 34126, 34134, 34140, 34148, 34155,
- 34161, 34166, 34172, 2418, 34176, 34178, 34183, 34188, 34193, 34196,
- 34198, 34202, 34205, 34212, 34216, 9891, 34220, 34226, 34236, 34241,
- 34247, 34251, 34256, 34269, 26104, 34275, 34284, 17475, 34291, 34300,
- 31672, 34308, 34313, 34317, 34325, 34332, 34337, 34341, 34346, 34350,
- 34358, 34364, 34370, 34375, 34379, 34382, 34387, 34400, 34416, 22996,
- 34433, 34445, 34462, 34474, 34488, 23013, 23032, 34500, 34512, 2680,
- 34526, 34531, 34536, 34541, 34545, 34552, 34564, 34570, 34573, 34584,
- 34595, 34600, 32089, 695, 34604, 34608, 34612, 34615, 34620, 34625,
- 34631, 34636, 34641, 34647, 34653, 34658, 34662, 34667, 34672, 34677,
- 34681, 34684, 34690, 34695, 34700, 34705, 34709, 34714, 34720, 34728,
- 26337, 34733, 34738, 34745, 34751, 34757, 34762, 34770, 22538, 34777,
- 34782, 34787, 34792, 34796, 34799, 34804, 34808, 34812, 34819, 34825,
- 34831, 34837, 34844, 34849, 34855, 33968, 34859, 34863, 34868, 34881,
- 34886, 34892, 34900, 34907, 34915, 34925, 34931, 34937, 34943, 34947,
- 34956, 34964, 34971, 34976, 34981, 10444, 34986, 34994, 35001, 35007,
- 35017, 35022, 35028, 35036, 3608, 35043, 35050, 3614, 35054, 35059,
- 35070, 35077, 35083, 35092, 35096, 4015, 35099, 35106, 35112, 35118,
- 35126, 35136, 29063, 35143, 35151, 35156, 35162, 35167, 25964, 35173,
- 35180, 35186, 35195, 23677, 35202, 35207, 35211, 35219, 35227, 9607,
- 5895, 35234, 35238, 35240, 35244, 35249, 35251, 35257, 35262, 35267,
- 35274, 32610, 35280, 35285, 35289, 35294, 35298, 35307, 35311, 35317,
- 35324, 35330, 35337, 35342, 35351, 35356, 35360, 35365, 35372, 35380,
- 35388, 35393, 21356, 35397, 35400, 35404, 35408, 35412, 35415, 35417,
- 35425, 35429, 35436, 35440, 35444, 35452, 35459, 35469, 35473, 35477,
- 35485, 35493, 35499, 35504, 35513, 13357, 35519, 35528, 35533, 35540,
- 35548, 35556, 35564, 35571, 35578, 35585, 35592, 35599, 35604, 35610,
- 35627, 35635, 35645, 35653, 35660, 407, 35664, 35670, 35674, 35679,
- 33717, 35685, 35688, 35692, 35700, 3619, 35708, 35714, 35720, 35729,
- 35739, 35746, 35752, 3625, 3631, 35761, 35768, 35776, 35781, 35785,
- 35792, 35800, 35807, 35813, 35822, 35832, 35838, 35846, 35855, 35862,
- 35870, 35877, 22032, 35881, 35888, 35894, 35904, 35913, 35924, 35928,
- 35938, 35944, 35951, 35959, 35968, 35977, 35987, 35998, 36005, 36010,
- 36017, 3029, 36025, 36031, 36036, 36042, 36048, 36053, 36066, 36079,
- 36092, 36099, 36105, 36113, 36121, 36126, 36130, 1469, 36134, 36139,
- 36144, 36149, 36154, 36160, 36165, 36170, 36175, 36180, 36185, 36190,
- 36195, 36201, 36207, 36212, 36217, 36223, 36228, 36233, 36238, 36244,
- 36249, 36254, 36259, 36264, 36270, 36275, 36280, 36286, 36291, 36296,
- 36301, 36306, 36311, 36317, 36322, 36328, 36333, 36339, 36344, 36349,
- 36354, 36360, 36366, 36372, 36378, 36384, 36390, 36396, 36402, 36407,
- 36412, 36418, 36423, 36428, 36433, 36438, 36443, 36448, 36453, 36459,
- 36464, 36469, 36475, 36481, 101, 36486, 36488, 36492, 36496, 36500,
- 36505, 36509, 9528, 36513, 36519, 1741, 6280, 36525, 36528, 36533, 36537,
- 36542, 36546, 36550, 36555, 10245, 36559, 36563, 36567, 36571, 15385,
- 36576, 36580, 36585, 36590, 36595, 36599, 36606, 26128, 36612, 36615,
- 36619, 36624, 36630, 36634, 36642, 36648, 36653, 36657, 36663, 36667,
- 36671, 3462, 3467, 29255, 36674, 36678, 36682, 36686, 36690, 36698,
- 36705, 36709, 36716, 36721, 317, 36726, 36730, 36736, 36748, 36754,
- 36760, 36764, 36770, 36779, 36783, 36787, 36792, 36798, 36803, 36807,
- 36812, 36816, 36820, 36827, 36833, 36838, 36853, 36868, 36883, 36899,
- 36917, 10195, 36931, 36938, 36942, 36945, 36954, 36959, 36963, 36971,
- 33919, 36979, 36983, 36993, 37004, 29225, 37017, 37021, 37030, 37038,
- 9785, 14913, 37042, 22447, 37045, 30173, 37050, 9784, 37055, 37061,
- 37066, 37072, 37077, 37083, 37088, 37094, 37099, 37105, 37111, 37117,
- 37122, 37078, 37084, 37089, 37095, 37100, 37106, 37112, 8126, 3874,
- 37126, 37134, 37138, 37141, 37145, 37150, 37155, 37161, 37167, 37172,
- 37176, 25976, 37180, 37184, 37190, 37194, 9049, 37203, 37210, 37214,
- 11875, 37221, 37227, 37232, 37239, 37246, 37253, 28571, 8049, 37260,
- 37267, 37274, 37280, 37285, 37292, 37303, 37309, 37314, 37319, 37324,
- 37331, 37079, 37335, 37345, 37356, 37362, 37367, 37372, 37377, 37382,
- 37387, 37391, 37395, 37401, 37409, 2319, 865, 10261, 10273, 10278, 10284,
- 37418, 10289, 10294, 10300, 37423, 37433, 37437, 10305, 37442, 16903,
- 37445, 37450, 37454, 37459, 37464, 37471, 37478, 37482, 37485, 37493,
- 10208, 37500, 37503, 37509, 37519, 5929, 37528, 37532, 37540, 37544,
- 37554, 37560, 37571, 37577, 37583, 37588, 37594, 37600, 37606, 37611,
- 37614, 37621, 37627, 37632, 37639, 37646, 37650, 37660, 37673, 37682,
- 37691, 37702, 37715, 37726, 37735, 37746, 37751, 37760, 37765, 10310,
- 37771, 37778, 37786, 37791, 37795, 37802, 37809, 3829, 16, 37813, 37818,
- 16757, 37822, 37825, 37828, 28077, 37832, 28580, 37840, 37844, 37848,
- 37851, 37857, 37101, 37863, 37871, 37877, 37884, 28060, 37888, 28254,
- 37892, 37901, 37907, 37913, 37918, 37922, 37928, 37932, 37940, 37948,
- 26194, 37954, 37961, 37967, 37972, 37977, 37981, 37987, 37992, 37998,
- 4056, 791, 38005, 38009, 38012, 15275, 38024, 35851, 38035, 38038, 38045,
- 38049, 38055, 38059, 38065, 38070, 38076, 38081, 38086, 38090, 38094,
- 38099, 38104, 38114, 38120, 38133, 38139, 38145, 38152, 38157, 38163,
- 38168, 16643, 1472, 1019, 31218, 31224, 38173, 31230, 31243, 31249,
- 31255, 38179, 31261, 31267, 38185, 38191, 22, 38199, 38206, 38210, 38214,
- 38222, 31978, 38226, 38230, 38237, 38242, 38246, 38251, 38257, 38262,
- 38268, 38273, 38277, 38281, 38285, 38290, 38294, 38299, 38303, 38310,
- 38315, 38319, 38324, 38328, 38333, 38337, 38342, 38348, 15495, 15500,
- 38353, 38357, 38360, 38364, 21183, 38369, 38373, 38379, 38386, 38391,
- 38401, 38406, 38414, 38418, 38421, 31993, 38425, 4109, 38430, 38435,
- 38439, 38444, 38448, 38453, 13375, 38464, 38468, 38471, 38476, 38480,
- 38484, 38487, 38491, 8145, 13391, 38494, 38497, 38503, 38508, 38514,
- 38519, 38525, 38530, 38536, 38541, 38547, 38553, 38559, 38564, 38568,
- 38572, 38581, 38597, 38613, 38623, 27967, 38630, 38634, 38639, 38644,
- 38648, 38652, 35972, 38658, 38663, 38667, 38674, 38679, 38683, 38687,
- 26996, 38693, 21451, 38698, 38705, 38713, 38719, 38726, 38734, 38740,
- 38744, 38750, 38758, 38762, 38771, 9509, 38779, 38783, 38791, 38798,
- 38803, 38808, 38812, 38815, 38819, 38822, 38826, 38833, 38838, 38844,
- 26415, 31281, 38848, 38855, 38861, 38867, 38872, 38875, 38877, 38884,
- 38891, 38897, 38901, 38904, 38908, 38912, 38916, 38921, 38925, 38929,
- 38932, 38936, 38950, 23062, 38969, 38982, 38995, 39008, 23080, 39023,
- 10497, 39038, 39044, 39048, 39052, 39059, 39064, 39068, 39075, 39081,
- 39086, 39092, 39102, 39114, 39125, 39130, 39137, 39141, 39145, 39148,
- 15891, 3677, 39156, 15522, 39169, 39176, 39180, 39184, 39189, 39194,
- 39200, 39204, 39208, 39211, 7742, 15533, 39216, 39220, 39226, 39235,
- 39240, 39247, 35828, 39253, 39258, 39262, 39267, 39274, 39278, 39281,
- 39285, 39290, 14565, 39297, 39304, 1077, 39308, 39313, 39318, 39324,
- 39329, 39334, 39338, 39348, 39353, 39359, 39364, 39370, 39375, 39381,
- 39391, 39396, 39401, 39405, 7229, 7241, 39410, 39413, 39420, 39426,
- 34084, 34091, 39435, 39439, 32041, 39447, 39458, 39466, 36020, 39473,
- 39478, 39483, 39494, 39501, 39512, 32065, 21457, 39520, 735, 39525,
- 39531, 28051, 39537, 39542, 39552, 39561, 39568, 39574, 39578, 39581,
- 39588, 39594, 39601, 39607, 39617, 39625, 39631, 39637, 39642, 39646,
- 39653, 39659, 39666, 38917, 535, 13818, 39672, 39677, 39680, 39686,
- 39694, 1396, 39699, 39703, 39708, 39715, 39721, 39725, 39729, 39734,
- 39743, 39750, 39760, 39766, 28095, 39783, 39792, 39800, 39806, 39811,
- 39818, 39824, 39832, 39841, 39849, 39853, 39858, 39866, 32074, 39872,
- 39891, 15824, 39905, 39921, 39935, 39941, 39946, 39951, 39956, 39962,
- 32080, 39967, 39974, 39979, 39983, 345, 2936, 39990, 39995, 40000, 27322,
- 39821, 40004, 40009, 40017, 40021, 40024, 40030, 40036, 40040, 28150,
- 40043, 40048, 40052, 40055, 40060, 40064, 40069, 40074, 40078, 40083,
- 40087, 40091, 21179, 21190, 40095, 40100, 40106, 26953, 40111, 40115,
- 21266, 16072, 40118, 40123, 40128, 40133, 40138, 40143, 40148, 40153,
- 450, 49, 31299, 31304, 31309, 31315, 31320, 31325, 40158, 31329, 40162,
- 40166, 40170, 31334, 31340, 40184, 31351, 31356, 40192, 40197, 31362,
- 40202, 40207, 40212, 40217, 40223, 40229, 40235, 31379, 40248, 40254,
- 31383, 40258, 31388, 40263, 31393, 31398, 40266, 40271, 40275, 30948,
- 40281, 13599, 40288, 40293, 31403, 40297, 40302, 40307, 40312, 40316,
- 40321, 40326, 40332, 40337, 40342, 40348, 40354, 40359, 40363, 40368,
- 40373, 40378, 40382, 40387, 40392, 40397, 40403, 40409, 40415, 40420,
- 40424, 40429, 40433, 31407, 31412, 31417, 40437, 40441, 40445, 31422,
- 31428, 31434, 31446, 40457, 26013, 40461, 40465, 40470, 40475, 40480,
- 40485, 40489, 40493, 40503, 40508, 40513, 40517, 40521, 40524, 40532,
- 31494, 40537, 1479, 40543, 40551, 40560, 40564, 40568, 40576, 40582,
- 40590, 40606, 40610, 40614, 40619, 40634, 31531, 1749, 12055, 40638,
- 1378, 40650, 40651, 40659, 40666, 40671, 40678, 40683, 9379, 1119, 10332,
- 40690, 40695, 40698, 40701, 40710, 1286, 40715, 39065, 40722, 40727,
- 40731, 22503, 2557, 40739, 10741, 40749, 40755, 2337, 2347, 40764, 40773,
- 40783, 40794, 3293, 34237, 10384, 3807, 16681, 1291, 40799, 40807, 40814,
- 40819, 40823, 40827, 23875, 10411, 40835, 40844, 40853, 40861, 40868,
- 40879, 40884, 40897, 40910, 40922, 40934, 40946, 40959, 40970, 40981,
- 40991, 40999, 41007, 41019, 41031, 41042, 41051, 41059, 41066, 41078,
- 41085, 41094, 41101, 41114, 41119, 41129, 41134, 41140, 41145, 37211,
- 41149, 41156, 41160, 41167, 41175, 2518, 41182, 41193, 41203, 41212,
- 41220, 41230, 41238, 41248, 41257, 41262, 41268, 41274, 3709, 41285,
- 41295, 41304, 41313, 41323, 41331, 41340, 41345, 41350, 41355, 1705, 37,
- 41363, 41371, 41382, 41393, 16356, 41403, 41407, 41414, 41420, 41425,
- 41429, 41440, 41450, 41459, 41470, 16730, 16735, 41475, 41484, 41489,
- 41499, 41504, 41512, 41520, 41527, 41533, 7078, 228, 41537, 41543, 41548,
- 41551, 2117, 39181, 41559, 41563, 41566, 1512, 41572, 13980, 1296, 41577,
- 41590, 41604, 2643, 41622, 41634, 41646, 2657, 2674, 41660, 41673, 2689,
- 41687, 41699, 2704, 41713, 1302, 1308, 1314, 10659, 41718, 41723, 41728,
- 41732, 41747, 41762, 41777, 41792, 41807, 41822, 41837, 41852, 41867,
- 41882, 41897, 41912, 41927, 41942, 41957, 41972, 41987, 42002, 42017,
- 42032, 42047, 42062, 42077, 42092, 42107, 42122, 42137, 42152, 42167,
- 42182, 42197, 42212, 42227, 42242, 42257, 42272, 42287, 42302, 42317,
- 42332, 42347, 42362, 42377, 42392, 42407, 42422, 42437, 42452, 42467,
- 42482, 42497, 42512, 42527, 42542, 42557, 42572, 42587, 42602, 42617,
- 42632, 42647, 42662, 42677, 42692, 42707, 42722, 42737, 42752, 42767,
- 42782, 42797, 42812, 42827, 42842, 42857, 42872, 42887, 42902, 42917,
- 42932, 42947, 42962, 42977, 42992, 43007, 43022, 43037, 43052, 43067,
- 43082, 43097, 43112, 43127, 43142, 43157, 43172, 43187, 43202, 43217,
- 43232, 43247, 43262, 43277, 43292, 43307, 43322, 43337, 43352, 43367,
- 43382, 43397, 43412, 43427, 43442, 43457, 43472, 43487, 43502, 43517,
- 43532, 43547, 43562, 43577, 43592, 43607, 43622, 43637, 43652, 43667,
- 43682, 43697, 43712, 43727, 43742, 43757, 43772, 43787, 43802, 43817,
- 43832, 43847, 43862, 43877, 43892, 43907, 43922, 43937, 43952, 43967,
- 43982, 43997, 44012, 44027, 44042, 44057, 44072, 44087, 44102, 44117,
- 44132, 44147, 44162, 44177, 44192, 44207, 44222, 44237, 44252, 44267,
- 44282, 44297, 44312, 44327, 44342, 44357, 44372, 44387, 44402, 44417,
- 44432, 44447, 44462, 44477, 44492, 44507, 44522, 44537, 44552, 44567,
- 44582, 44597, 44612, 44627, 44642, 44657, 44672, 44687, 44702, 44717,
- 44732, 44747, 44762, 44777, 44792, 44807, 44822, 44837, 44852, 44867,
- 44882, 44897, 44912, 44927, 44942, 44957, 44972, 44987, 45002, 45017,
- 45032, 45047, 45062, 45077, 45092, 45107, 45122, 45137, 45152, 45167,
- 45182, 45197, 45212, 45227, 45242, 45257, 45272, 45287, 45302, 45317,
- 45332, 45347, 45362, 45377, 45392, 45407, 45422, 45437, 45452, 45467,
- 45482, 45497, 45512, 45527, 45542, 45557, 45572, 45587, 45602, 45617,
- 45632, 45647, 45662, 45677, 45692, 45707, 45722, 45737, 45752, 45767,
- 45782, 45797, 45812, 45827, 45842, 45857, 45872, 45887, 45902, 45917,
- 45932, 45947, 45962, 45977, 45992, 46007, 46022, 46037, 46052, 46067,
- 46082, 46097, 46112, 46127, 46142, 46157, 46172, 46187, 46202, 46217,
- 46232, 46247, 46262, 46277, 46292, 46307, 46322, 46337, 46352, 46367,
- 46382, 46397, 46412, 46427, 46442, 46457, 46472, 46487, 46502, 46517,
- 46532, 46547, 46562, 46577, 46592, 46607, 46622, 46637, 46652, 46667,
- 46682, 46697, 46712, 46727, 46742, 46757, 46772, 46787, 46802, 46817,
- 46832, 46847, 46862, 46877, 46892, 46907, 46922, 46937, 46952, 46967,
- 46982, 46997, 47012, 47027, 47042, 47057, 47072, 47087, 47102, 47117,
- 47132, 47147, 47162, 47177, 47192, 47207, 47222, 47237, 47252, 47267,
- 47282, 47297, 47312, 47327, 47342, 47357, 47372, 47387, 47402, 47417,
- 47432, 47447, 47462, 47477, 47492, 47507, 47522, 47537, 47552, 47567,
- 47582, 47597, 47612, 47627, 47642, 47657, 47672, 47687, 47702, 47717,
- 47732, 47747, 47762, 47777, 47792, 47807, 47822, 47837, 47852, 47867,
- 47882, 47897, 47912, 47927, 47942, 47957, 47972, 47987, 48002, 48017,
- 48032, 48047, 48062, 48077, 48092, 48107, 48122, 48137, 48152, 48167,
- 48182, 48197, 48212, 48227, 48242, 48257, 48272, 48287, 48302, 48317,
- 48332, 48347, 48362, 48377, 48392, 48407, 48422, 48437, 48452, 48467,
- 48482, 48497, 48512, 48527, 48542, 48557, 48572, 48587, 48602, 48617,
- 48632, 48647, 48662, 48677, 48692, 48707, 48722, 48737, 48752, 48767,
- 48782, 48797, 48812, 48827, 48842, 48857, 48872, 48887, 48902, 48917,
- 48932, 48947, 48962, 48977, 48992, 49007, 49022, 49037, 49052, 49067,
- 49082, 49097, 49112, 49127, 49142, 49157, 49172, 49187, 49202, 49217,
- 49232, 49247, 49262, 49277, 49292, 49307, 49322, 49337, 49352, 49367,
- 49382, 49397, 49412, 49427, 49442, 49457, 49472, 49487, 49502, 49517,
- 49532, 49548, 49564, 49580, 49596, 49612, 49628, 49644, 49660, 49676,
- 49692, 49708, 49724, 49740, 49756, 49772, 49788, 49804, 49820, 49836,
- 49852, 49868, 49884, 49900, 49916, 49932, 49948, 49964, 49980, 49996,
- 50012, 50028, 50044, 50060, 50076, 50092, 50108, 50124, 50140, 50156,
- 50172, 50188, 50204, 50220, 50236, 50252, 50268, 50284, 50300, 50316,
- 50332, 50348, 50364, 50380, 50396, 50412, 50428, 50444, 50460, 50476,
- 50492, 50508, 50524, 50540, 50556, 50572, 50588, 50604, 50620, 50636,
- 50652, 50668, 50684, 50700, 50716, 50732, 50748, 50764, 50780, 50796,
- 50812, 50828, 50844, 50860, 50876, 50892, 50908, 50924, 50940, 50956,
- 50972, 50988, 51004, 51020, 51036, 51052, 51068, 51084, 51100, 51116,
- 51132, 51148, 51164, 51180, 51196, 51212, 51228, 51244, 51260, 51276,
- 51292, 51308, 51324, 51340, 51356, 51372, 51388, 51404, 51420, 51436,
- 51452, 51468, 51484, 51500, 51516, 51532, 51548, 51564, 51580, 51596,
- 51612, 51628, 51644, 51660, 51676, 51692, 51708, 51724, 51740, 51756,
- 51772, 51788, 51804, 51820, 51836, 51852, 51868, 51884, 51900, 51916,
- 51932, 51948, 51964, 51980, 51996, 52012, 52028, 52044, 52060, 52076,
- 52092, 52108, 52124, 52140, 52156, 52172, 52188, 52204, 52220, 52236,
- 52252, 52268, 52284, 52300, 52316, 52332, 52348, 52364, 52380, 52396,
- 52412, 52428, 52444, 52460, 52476, 52492, 52508, 52524, 52540, 52556,
- 52572, 52588, 52604, 52620, 52636, 52652, 52668, 52684, 52700, 52716,
- 52732, 52748, 52764, 52780, 52796, 52812, 52828, 52844, 52860, 52876,
- 52892, 52908, 52924, 52940, 52956, 52972, 52988, 53004, 53020, 53036,
- 53052, 53068, 53084, 53100, 53116, 53132, 53148, 53164, 53180, 53196,
- 53212, 53228, 53244, 53260, 53276, 53292, 53308, 53324, 53340, 53356,
- 53372, 53388, 53404, 53420, 53436, 53452, 53468, 53484, 53500, 53516,
- 53532, 53548, 53564, 53580, 53596, 53612, 53628, 53644, 53660, 53676,
- 53692, 53708, 53724, 53740, 53756, 53772, 53788, 53804, 53820, 53836,
- 53852, 53868, 53884, 53900, 53916, 53932, 53948, 53964, 53980, 53996,
- 54012, 54028, 54044, 54060, 54076, 54092, 54108, 54124, 54140, 54156,
- 54172, 54188, 54204, 54220, 54236, 54252, 54268, 54284, 54300, 54316,
- 54332, 54348, 54364, 54380, 54396, 54412, 54428, 54444, 54460, 54476,
- 54492, 54508, 54524, 54540, 54556, 54572, 54588, 54604, 54620, 54636,
- 54652, 54668, 54684, 54700, 54716, 54732, 54748, 54764, 54780, 54796,
- 54812, 54828, 54844, 54860, 54876, 54892, 54908, 54924, 54940, 54956,
- 54972, 54988, 55004, 55020, 55036, 55052, 55068, 55084, 55100, 55116,
- 55132, 55148, 55164, 55180, 55196, 55212, 55228, 55244, 55260, 55276,
- 55292, 55308, 55324, 55340, 55356, 55372, 55388, 55404, 55420, 55436,
- 55452, 55468, 55484, 55500, 55516, 55532, 55548, 55564, 55580, 55596,
- 55612, 55628, 55644, 55660, 55676, 55692, 55708, 55724, 55740, 55756,
- 55772, 55788, 55804, 55820, 55836, 55852, 55868, 55884, 55900, 55916,
- 55932, 55948, 55964, 55980, 55996, 56012, 56028, 56044, 56060, 56076,
- 56092, 56108, 56124, 56140, 56156, 56172, 56188, 56204, 56220, 56236,
- 56252, 56268, 56284, 56300, 56316, 56332, 56348, 56364, 56380, 56396,
- 56412, 56428, 56444, 56460, 56476, 56492, 56508, 56524, 56540, 56556,
- 56572, 56588, 56604, 56620, 56636, 56652, 56668, 56684, 56700, 56716,
- 56732, 56748, 56764, 56780, 56796, 56812, 56828, 56844, 56860, 56876,
- 56892, 56908, 56924, 56940, 56956, 56972, 56988, 57004, 57020, 57036,
- 57052, 57068, 57084, 57100, 57116, 57132, 57148, 57164, 57180, 57196,
- 57212, 57228, 57244, 57260, 57276, 57292, 57308, 57324, 57340, 57356,
- 57372, 57388, 57404, 57420, 57436, 57452, 57468, 57484, 57500, 57516,
- 57532, 57548, 57564, 57580, 57596, 57612, 57628, 57644, 57660, 57676,
- 57692, 57708, 57724, 57740, 57756, 57772, 57788, 57804, 57820, 57836,
- 57852, 57868, 57884, 57900, 57916, 57932, 57948, 57964, 57980, 57996,
- 58012, 58028, 58044, 58060, 58076, 58092, 58108, 58124, 58140, 58156,
- 58172, 58188, 58204, 58219, 16762, 58228, 58234, 58240, 58250, 58258,
- 14894, 15445, 9960, 58271, 1520, 58279, 3761, 27432, 7183, 58285, 58290,
- 58295, 58300, 58305, 58311, 58316, 58322, 58327, 58333, 58338, 58343,
- 58348, 58353, 58359, 58364, 58369, 58374, 58379, 58384, 58389, 58394,
- 58400, 58405, 58411, 58418, 2561, 58423, 58429, 8526, 58433, 58438,
- 58445, 58453, 40, 58457, 58463, 58468, 58473, 58477, 58482, 58486, 58490,
- 10684, 58494, 58504, 58517, 58528, 58541, 58548, 58554, 58559, 58565,
- 58571, 58577, 58582, 58587, 58592, 58597, 58601, 58606, 58611, 58616,
- 58622, 58628, 58634, 58639, 58643, 58648, 58653, 58657, 58662, 58667,
- 58672, 58676, 10700, 10711, 10716, 1563, 58680, 1568, 58686, 16239,
- 58689, 58695, 1599, 58701, 1605, 1611, 10746, 58706, 58714, 58721, 58725,
- 58731, 58736, 30977, 58741, 58748, 58753, 58757, 58761, 1616, 16331,
- 58770, 58774, 16342, 1125, 58778, 58785, 58790, 58794, 16367, 1620,
- 37350, 58797, 58802, 58812, 58821, 58826, 58830, 58836, 1625, 39259,
- 58841, 58850, 58856, 58861, 10904, 10910, 58867, 58879, 58896, 58913,
- 58930, 58947, 58964, 58981, 58998, 59015, 59032, 59049, 59066, 59083,
- 59100, 59117, 59134, 59151, 59168, 59185, 59202, 59219, 59236, 59253,
- 59270, 59287, 59304, 59321, 59338, 59355, 59372, 59389, 59406, 59423,
- 59440, 59457, 59474, 59491, 59508, 59525, 59542, 59559, 59576, 59593,
- 59610, 59627, 59644, 59661, 59678, 59695, 59712, 59723, 59728, 1630,
- 59732, 59738, 59743, 59748, 9326, 1635, 59754, 59763, 27731, 59768,
- 59779, 59789, 59794, 59801, 59807, 59812, 59817, 16619, 59821, 10921,
- 1640, 10926, 59827, 59832, 59838, 59843, 59848, 59853, 59858, 59863,
- 59868, 59873, 59879, 59885, 59891, 59896, 59900, 59905, 59910, 59914,
- 59919, 59924, 59929, 59933, 59938, 59944, 59949, 59954, 59958, 59963,
- 59968, 59974, 59979, 59984, 59990, 59996, 60001, 60005, 60010, 60015,
- 60020, 60024, 60029, 60034, 60039, 60045, 60051, 60056, 60060, 60064,
- 60069, 60074, 60079, 29129, 60083, 60088, 60093, 60099, 60104, 60109,
- 60113, 60118, 60123, 60129, 60134, 60139, 60145, 60151, 60156, 60160,
- 60165, 60170, 60174, 60179, 60184, 60189, 60195, 60201, 60206, 60210,
- 60215, 60220, 60224, 60229, 60234, 60239, 60243, 60246, 31639, 60251,
- 60259, 16685, 3663, 11017, 60265, 60275, 60290, 11022, 60301, 60306,
- 60317, 60329, 60341, 60353, 2695, 60365, 60370, 60382, 60386, 60392,
- 60398, 60403, 1652, 1078, 60412, 60417, 39309, 60421, 60425, 60430,
- 60434, 16770, 60439, 60442, 60450, 60458, 1656, 11047, 11053, 1661,
- 60466, 60473, 60478, 60487, 60497, 60504, 60509, 60514, 1666, 60521,
- 60526, 16885, 60530, 60535, 60542, 60548, 60552, 60563, 60573, 16907,
- 9234, 9241, 1671, 60580, 60586, 60594, 60601, 60607, 60614, 60626, 60632,
- 60637, 60649, 60660, 60669, 60679, 3740, 30813, 30822, 16947, 1676, 1680,
- 60687, 60698, 60703, 1683, 60711, 60716, 16998, 60728, 60734, 60739,
- 60747, 1688, 60752, 60757, 60765, 60773, 60780, 60789, 60797, 60806,
- 1693, 60810, 1698, 60815, 60822, 17072, 60830, 60836, 60841, 60849,
- 60856, 60864, 22574, 60869, 11182, 60878, 60884, 60891, 60898, 60904,
- 60914, 60920, 60925, 60936, 60941, 60949, 11191, 11196, 60957, 60963,
- 60971, 3805, 17114, 39397, 60976, 60982, 60987, 60995, 61002, 12036,
- 61007, 61013, 1709, 61018, 61021, 1132, 61027, 61032, 61037, 61043,
- 61048, 61053, 61058, 61063, 61068, 61073, 1718, 9, 61079, 61083, 61088,
- 61092, 61096, 61100, 31879, 61105, 61110, 61115, 61119, 61122, 61126,
- 61130, 61135, 61139, 61144, 61148, 34616, 34621, 34626, 61151, 61158,
- 61164, 39118, 61174, 34632, 32137, 31894, 31900, 34648, 31906, 61179,
- 61184, 32170, 61188, 61191, 61195, 61202, 61205, 61210, 61214, 61218,
- 61221, 61231, 61243, 61250, 61256, 61263, 33573, 61266, 8543, 877, 61269,
- 61273, 61278, 3690, 61282, 61285, 13632, 61292, 61299, 61312, 61320,
- 61329, 61338, 61343, 61353, 61366, 61378, 61385, 61390, 61399, 61412,
- 36060, 61430, 61435, 61442, 61448, 656, 61453, 61461, 61468, 27271, 627,
- 61474, 61480, 61490, 61496, 61501, 31924, 6003, 31938, 61505, 61515,
- 61520, 61530, 61545, 61551, 61557, 31948, 61562, 31094, 61566, 61571,
- 61576, 61580, 61585, 16950, 61592, 61597, 61601, 6044, 31974, 61605,
- 61611, 312, 61621, 61628, 61635, 61640, 61649, 58806, 61655, 61663,
- 61667, 61671, 61675, 61679, 61684, 61688, 61694, 61702, 61707, 61712,
- 61716, 61721, 61725, 61729, 61735, 61741, 61746, 61750, 32098, 61755,
- 32104, 32110, 61760, 61766, 61773, 61778, 61782, 31111, 16612, 61785,
- 61789, 61794, 61801, 61807, 61811, 61816, 38828, 61822, 61826, 61830,
- 61835, 61841, 61847, 61859, 61868, 61878, 61884, 61891, 61896, 61901,
- 61905, 61908, 61914, 61921, 61926, 61931, 61938, 61945, 61951, 61956,
- 61961, 61969, 32115, 2423, 61974, 61979, 61985, 61990, 61996, 62001,
- 62006, 62011, 62017, 32136, 62022, 62028, 62034, 62040, 32200, 62045,
- 62050, 62055, 32211, 62060, 62065, 62070, 62076, 62082, 32216, 62087,
- 62092, 62097, 32271, 32277, 62102, 62107, 32282, 62112, 27958, 32304,
- 32308, 62117, 62093, 62121, 62129, 62135, 62143, 62150, 62156, 62166,
- 62172, 62179, 10631, 32322, 62185, 62198, 62207, 62213, 62222, 62228,
- 23512, 62235, 62242, 62252, 32272, 62255, 62262, 62267, 62271, 62275,
- 62280, 6120, 62284, 62289, 62294, 34710, 34715, 62298, 34729, 62303,
- 34734, 62308, 62314, 34746, 34752, 34758, 62319, 62325, 22539, 62336,
- 62339, 62351, 62359, 32345, 62363, 62372, 62382, 62391, 32355, 62396,
- 62403, 62412, 62418, 62426, 62433, 6095, 4397, 62438, 32283, 62444,
- 62447, 62453, 62460, 62465, 62470, 23422, 62474, 62480, 62486, 62491,
- 62496, 62500, 62506, 62512, 33483, 863, 35723, 36644, 36650, 32391,
- 62517, 62521, 62525, 62528, 62541, 62547, 62551, 62554, 62559, 33786,
- 62563, 31116, 21287, 62569, 6024, 6032, 9075, 62572, 62577, 62582, 62587,
- 62592, 62597, 62602, 62607, 62612, 62617, 62623, 62628, 62633, 62639,
- 62644, 62649, 62654, 62659, 62664, 62669, 62675, 62680, 62686, 62691,
- 62696, 62701, 62706, 62711, 62716, 62721, 62726, 62731, 62736, 62742,
- 62747, 62752, 62757, 62762, 62767, 62772, 62778, 62783, 62788, 62793,
- 62798, 62803, 62808, 62813, 62818, 62823, 62829, 62834, 62839, 62844,
- 62849, 62855, 62861, 62866, 62872, 62877, 62882, 62887, 62892, 62897,
- 1513, 245, 62902, 62906, 62910, 62914, 25133, 62918, 62922, 62927, 62931,
- 62936, 62940, 62945, 62950, 62955, 62959, 62963, 62968, 62972, 13369,
- 62977, 62981, 62988, 62998, 15206, 63007, 63016, 63020, 63025, 63030,
- 63034, 24924, 3019, 63038, 63044, 17363, 63048, 63057, 63065, 63071,
- 63083, 63095, 63099, 63104, 63108, 63114, 63120, 63125, 63135, 63145,
- 63151, 63156, 63160, 63165, 63171, 63180, 63189, 63197, 15560, 63201,
- 63210, 63218, 63230, 63241, 63252, 63261, 63265, 63274, 63284, 63292,
- 63298, 63303, 63309, 63314, 98, 30925, 63325, 26266, 26276, 63331, 63338,
- 63344, 63348, 63358, 63369, 63377, 63386, 63391, 63396, 63400, 17317,
- 63408, 63412, 63418, 63428, 63435, 63441, 34809, 63447, 63449, 63452,
- 63456, 63466, 63472, 63479, 13315, 63486, 63492, 63501, 63510, 63516,
- 63522, 63528, 63533, 63540, 63547, 63553, 63566, 63575, 63584, 63589,
- 63593, 63599, 63606, 63613, 63620, 63627, 63634, 63639, 63643, 63647,
- 63650, 63660, 63664, 63676, 63685, 63689, 63694, 63698, 63704, 63709,
- 63716, 63725, 63733, 63741, 63746, 63750, 63755, 63760, 63770, 63778,
- 63783, 63787, 63791, 63797, 63809, 63817, 63827, 63834, 63840, 63845,
- 63849, 63853, 63857, 63866, 63875, 63884, 63890, 63896, 63902, 63907,
- 63914, 63920, 63928, 63935, 12463, 63941, 63947, 63951, 14244, 63955,
- 63960, 63970, 63979, 63985, 63991, 63999, 64006, 64010, 64014, 64020,
- 64028, 64035, 64041, 64052, 64056, 64060, 64064, 64067, 64073, 64078,
- 64082, 64086, 64095, 64103, 64110, 64116, 64123, 24046, 38870, 64128,
- 64136, 64140, 64144, 64147, 64155, 64162, 64168, 64177, 64185, 64191,
- 64196, 64200, 64205, 64209, 64213, 64218, 64227, 64231, 64238, 64245,
- 64251, 64259, 64265, 64276, 64284, 64290, 22669, 64299, 64306, 64313,
- 64320, 64327, 64334, 41907, 13153, 64341, 64348, 64353, 34845, 6217,
- 64359, 64364, 64369, 64375, 64381, 64387, 64392, 64397, 64402, 64407,
- 64413, 64418, 64424, 64429, 64435, 64440, 64445, 64450, 64455, 64460,
- 64465, 64470, 64476, 64481, 64487, 64492, 64497, 64502, 64507, 64512,
- 64517, 64523, 64528, 64533, 64538, 64543, 64548, 64553, 64558, 64563,
- 64568, 64573, 64579, 64584, 64589, 64594, 64599, 64604, 64609, 64614,
- 64619, 64625, 64630, 64635, 64640, 64645, 64650, 64655, 64660, 64665,
- 64670, 64675, 64680, 64685, 64691, 1834, 224, 37446, 64696, 64699, 64704,
- 64708, 64711, 64716, 63737, 64727, 64737, 64744, 64760, 64769, 64779,
- 64789, 64797, 64811, 64819, 64823, 64826, 64833, 64839, 64850, 64862,
- 64873, 64882, 64889, 1297, 23311, 64899, 2590, 64903, 64912, 1138, 17290,
- 38083, 64920, 64928, 64942, 64955, 64959, 64964, 64969, 64974, 64980,
- 64986, 64991, 8535, 64996, 65000, 65008, 11048, 65013, 65019, 65028,
- 1721, 11060, 736, 65032, 65041, 65051, 27030, 65060, 65066, 16862, 65072,
- 65076, 3964, 11391, 65082, 65089, 60693, 65093, 65097, 3988, 189, 14159,
- 65103, 65115, 65119, 65125, 27751, 65129, 11379, 2730, 4, 65134, 65144,
- 65150, 65161, 65168, 65174, 65180, 65188, 65195, 65201, 65211, 65221,
- 65231, 23499, 1309, 65240, 65244, 65248, 65254, 65258, 2753, 2759, 8532,
- 2264, 65262, 65266, 65275, 65283, 65294, 65302, 65310, 65316, 65321,
- 65332, 65343, 65351, 65357, 9694, 65362, 65370, 65374, 65378, 65382,
- 65394, 28136, 65401, 65411, 65417, 65423, 9796, 65433, 65444, 65454,
- 65463, 65467, 65474, 1140, 1170, 65484, 65489, 65497, 65505, 65516,
- 65523, 65537, 14088, 393, 65547, 65551, 65559, 65568, 65576, 65582,
- 65596, 65603, 65609, 65618, 65625, 65635, 65643, 3812, 156, 65651, 65662,
- 65666, 65678, 27949, 161, 65684, 65689, 65693, 65700, 65706, 65714,
- 65721, 8818, 65728, 65737, 65745, 3878, 65758, 8199, 65762, 2798, 443,
- 65767, 65780, 65785, 1833, 650, 65789, 3895, 65797, 65803, 65807, 931,
- 65817, 65826, 65831, 14928, 14935, 45269, 65835, 3822, 13041, 65843,
- 65850, 23555, 65854, 65861, 65867, 65872, 65877, 14948, 372, 65882,
- 65894, 65900, 65908, 2810, 1753, 65916, 65918, 65923, 65928, 65933,
- 65939, 65944, 65949, 65954, 65959, 65964, 65969, 65975, 65980, 65985,
- 65990, 65995, 66000, 66005, 66010, 66015, 66021, 66026, 66031, 66036,
- 66042, 66047, 66053, 66058, 66063, 66068, 66073, 66078, 66083, 66088,
- 66094, 66099, 66105, 66110, 66115, 66120, 66125, 66130, 66135, 66140,
- 66145, 66151, 66156, 66161, 66166, 66170, 66174, 66179, 66183, 66188,
- 66193, 66199, 66204, 66208, 66213, 66217, 66220, 66222, 66226, 66229,
- 66234, 66238, 66242, 66246, 66250, 66259, 66263, 32549, 66266, 32554,
- 66273, 66278, 32559, 66287, 66296, 32565, 66301, 32570, 66310, 66315,
- 11578, 66319, 66324, 66329, 32575, 66333, 40225, 66337, 66340, 66344,
- 8211, 66350, 66355, 66359, 3705, 32580, 66362, 66366, 66369, 66374,
- 66378, 66384, 66392, 66405, 66414, 66420, 66425, 66431, 66435, 66441,
- 66449, 66454, 66458, 66465, 66471, 66479, 66488, 66496, 32583, 66503,
- 66513, 66522, 66535, 66540, 66545, 66554, 66560, 66567, 66578, 66590,
- 66597, 66606, 66615, 66624, 66631, 66637, 66644, 66652, 66659, 66667,
- 66676, 66684, 66691, 66699, 66708, 66716, 66725, 66735, 66744, 66752,
- 66759, 66767, 66776, 66784, 66793, 66803, 66812, 66820, 66829, 66839,
- 66848, 66858, 66869, 66879, 66888, 66896, 66903, 66911, 66920, 66928,
- 66937, 66947, 66956, 66964, 66973, 66983, 66992, 67002, 67013, 67023,
- 67032, 67040, 67049, 67059, 67068, 67078, 67089, 67099, 67108, 67118,
- 67129, 67139, 67150, 67162, 67173, 67183, 67192, 67200, 67207, 67215,
- 67224, 67232, 67241, 67251, 67260, 67268, 67277, 67287, 67296, 67306,
- 67317, 67327, 67336, 67344, 67353, 67363, 67372, 67382, 67393, 67403,
- 67412, 67422, 67433, 67443, 67454, 67466, 67477, 67487, 67496, 67504,
- 67513, 67523, 67532, 67542, 67553, 67563, 67572, 67582, 67593, 67603,
- 67614, 67626, 67637, 67647, 67656, 67666, 67677, 67687, 67698, 67710,
- 67721, 67731, 67742, 67754, 67765, 67777, 67790, 67802, 67813, 67823,
- 67832, 67840, 67847, 67855, 67864, 67872, 67881, 67891, 67900, 67908,
- 67917, 67927, 67936, 67946, 67957, 67967, 67976, 67984, 67993, 68003,
- 68012, 68022, 68033, 68043, 68052, 68062, 68073, 68083, 68094, 68106,
- 68117, 68127, 68136, 68144, 68153, 68163, 68172, 68182, 68193, 68203,
- 68212, 68222, 68233, 68243, 68254, 68266, 68277, 68287, 68296, 68306,
- 68317, 68327, 68338, 68350, 68361, 68371, 68382, 68394, 68405, 68417,
- 68430, 68442, 68453, 68463, 68472, 68480, 68489, 68499, 68508, 68518,
- 68529, 68539, 68548, 68558, 68569, 68579, 68590, 68602, 68613, 68623,
- 68632, 68642, 68653, 68663, 68674, 68686, 68697, 68707, 68718, 68730,
- 68741, 68753, 68766, 68778, 68789, 68799, 68808, 68818, 68829, 68839,
- 68850, 68862, 68873, 68883, 68894, 68906, 68917, 68929, 68942, 68954,
- 68965, 68975, 68986, 68998, 69009, 69021, 69034, 69046, 69057, 69069,
- 69082, 69094, 69107, 69121, 69134, 69146, 69157, 69167, 69176, 69184,
- 69191, 69196, 8058, 69203, 32593, 69208, 69213, 32598, 69219, 20929,
- 32603, 69224, 69230, 69238, 69244, 69250, 69257, 69264, 69269, 69273,
- 69276, 69280, 69289, 69295, 69307, 69318, 69322, 3081, 8033, 69327,
- 69330, 69332, 69336, 69340, 69344, 69350, 69355, 25944, 69360, 69364,
- 69367, 69372, 69376, 69383, 69389, 69393, 6170, 69397, 32620, 69402,
- 69409, 69418, 69426, 69437, 69445, 69453, 69460, 69467, 69473, 69484,
- 32625, 69489, 69500, 69512, 69520, 69531, 69540, 69551, 69556, 69564,
- 2556, 69569, 34295, 69582, 69586, 69598, 69606, 69611, 69619, 17485,
- 69630, 69636, 69643, 69651, 69657, 32635, 69662, 3914, 58254, 69669,
- 69672, 69680, 69693, 69706, 69719, 69732, 69739, 69750, 69759, 41724,
- 41729, 69764, 69768, 69776, 69783, 69792, 69800, 69806, 69815, 69823,
- 69831, 69835, 69844, 69853, 69863, 69876, 69889, 69899, 32640, 69905,
- 69912, 69918, 32646, 69923, 69926, 69930, 69938, 69947, 41462, 69955,
- 69964, 69972, 69979, 69987, 69997, 70006, 70015, 70024, 70032, 70043,
- 70053, 9366, 21567, 70062, 70067, 70072, 70076, 70080, 70085, 70091,
- 70096, 70101, 70107, 70112, 70117, 21532, 70122, 70129, 70137, 70145,
- 70150, 70157, 70164, 70169, 70173, 70177, 70185, 70193, 32663, 70199,
- 70205, 70217, 70223, 70227, 70234, 70239, 70250, 70260, 70270, 70282,
- 70288, 70298, 70308, 32690, 70317, 70326, 70332, 70344, 70355, 70362,
- 70367, 70371, 70379, 70385, 70390, 70395, 70402, 70410, 70422, 70432,
- 70441, 70450, 70457, 34157, 23851, 70463, 70468, 70472, 70476, 70481,
- 70487, 70498, 70511, 70516, 70523, 32695, 70528, 70540, 70549, 70559,
- 70570, 70583, 70590, 70599, 70608, 70616, 70621, 70627, 1069, 70632,
- 70637, 70642, 70647, 70653, 70658, 70663, 70669, 70675, 70680, 70684,
- 70689, 70694, 70699, 58766, 70704, 70709, 70714, 70719, 70725, 70731,
- 70736, 70740, 70745, 70750, 70755, 70761, 70766, 70772, 70777, 70782,
- 70787, 70792, 70796, 70802, 70807, 70816, 70821, 70826, 70831, 70836,
- 70840, 70847, 70853, 17135, 17142, 70858, 70862, 70866, 70870, 70874,
- 45524, 70878, 70808, 70880, 70890, 32704, 70893, 70902, 70908, 6143,
- 32709, 70912, 70918, 70923, 70929, 70934, 70938, 70945, 70950, 70960,
- 70969, 70973, 70979, 70985, 70991, 70995, 71003, 71010, 71018, 71026,
- 32714, 71033, 71036, 71043, 71049, 71054, 71058, 71064, 71071, 71076,
- 71080, 71089, 71097, 71103, 71108, 32719, 71115, 71122, 71128, 71133,
- 71139, 71146, 71152, 21294, 27455, 71158, 71163, 71169, 71181, 70841,
- 70848, 21470, 71191, 71196, 71203, 71209, 71216, 71222, 71233, 71238,
- 9110, 71246, 71249, 71255, 71259, 71263, 71266, 71272, 32468, 6194, 964,
- 13419, 71279, 71285, 71291, 71297, 71303, 71309, 71315, 71321, 71327,
- 71332, 71337, 71342, 71347, 71352, 71357, 71362, 71367, 71372, 71377,
- 71382, 71387, 71392, 71398, 71403, 71408, 71414, 71419, 71424, 71430,
- 71436, 71442, 71448, 71454, 71460, 71466, 71472, 71478, 71483, 71488,
- 71494, 71499, 71504, 71510, 71515, 71520, 71525, 71530, 71535, 71540,
- 71545, 71550, 71555, 71560, 71565, 71570, 71576, 71581, 71586, 71591,
- 71597, 71602, 71607, 71612, 71617, 71623, 71628, 71633, 71638, 71643,
- 71648, 71653, 71658, 71663, 71668, 71673, 71678, 71683, 71688, 71693,
- 71698, 71703, 71708, 71713, 71718, 71724, 71729, 71734, 71739, 71744,
- 71749, 71754, 71759, 1864, 142, 71764, 71768, 71772, 71777, 71785, 71789,
- 71796, 71804, 71808, 71821, 71829, 71833, 71836, 71841, 71845, 71850,
- 71854, 71862, 71866, 20937, 71871, 71875, 60967, 71879, 71882, 71890,
- 71898, 71906, 71911, 71918, 71924, 71930, 71935, 71942, 71947, 71955,
- 64947, 71962, 71967, 71972, 71976, 11645, 71980, 71985, 71990, 71994,
- 71997, 72003, 72007, 72017, 72026, 72029, 72033, 72040, 72053, 72059,
- 72067, 72078, 72089, 72100, 72111, 72120, 72126, 72135, 72143, 72153,
- 72166, 72173, 72184, 72190, 72195, 72200, 72206, 72212, 72222, 72231,
- 70530, 72239, 72245, 72253, 72259, 72267, 72270, 72274, 72278, 72281,
- 72287, 72293, 72301, 72313, 72325, 72332, 72336, 72347, 72355, 72362,
- 72374, 72382, 72390, 72397, 72403, 72413, 72422, 72427, 72437, 72446,
- 40788, 72453, 72457, 72462, 72470, 72477, 72483, 72487, 72497, 72508,
- 72516, 72523, 72535, 72547, 72556, 69572, 72563, 72574, 72588, 72596,
- 72606, 72613, 72621, 72633, 72642, 72650, 72660, 72671, 72683, 72692,
- 72702, 72709, 72718, 72733, 72741, 72751, 72760, 72768, 72781, 72796,
- 72800, 72809, 72821, 72832, 72843, 72854, 72864, 72875, 72883, 72889,
- 72899, 72907, 72913, 29028, 72918, 72924, 72929, 72936, 9708, 17505,
- 72942, 72951, 72956, 72960, 72967, 72973, 72978, 72983, 72991, 72999,
- 73003, 73006, 73009, 73011, 73018, 73024, 73035, 73040, 73044, 73051,
- 73057, 73062, 73070, 65446, 65456, 73076, 73083, 73093, 10618, 73100,
- 73105, 29224, 73114, 73119, 73126, 73136, 73144, 73152, 73161, 73167,
- 73173, 73180, 73187, 73192, 73196, 73204, 73209, 73214, 73222, 73229,
- 73234, 73240, 73243, 73247, 73256, 71816, 73265, 73269, 73275, 73286,
- 73296, 17514, 73307, 73315, 17526, 73322, 73326, 73335, 27341, 73342,
- 73346, 73351, 73368, 73380, 10576, 73392, 73397, 73402, 73407, 21010,
- 73411, 73416, 73421, 73427, 73432, 5846, 21014, 73437, 73442, 73448,
- 73455, 73460, 73465, 73471, 73477, 73483, 73488, 73494, 73498, 73512,
- 73520, 73528, 73534, 73539, 73546, 73556, 73565, 73570, 73575, 73583,
- 73588, 73594, 73599, 73608, 59823, 73613, 73616, 73634, 73653, 73666,
- 73680, 73696, 73703, 73710, 73716, 73723, 73728, 73734, 73740, 73748,
- 73754, 73759, 73764, 73780, 10589, 73794, 73801, 73809, 73815, 73819,
- 73822, 73827, 73832, 73839, 73844, 73853, 73858, 73864, 73873, 73882,
- 73887, 73891, 73899, 73908, 11674, 73917, 73925, 73930, 73936, 11685,
- 73941, 73944, 73949, 73959, 73968, 73973, 73979, 73984, 73992, 73999,
- 74010, 74020, 74025, 64875, 74030, 74036, 74041, 74048, 74057, 74065,
- 74071, 74077, 74084, 74090, 74094, 16960, 3055, 74099, 74103, 74107,
- 74113, 74122, 74128, 74135, 74139, 74160, 74182, 74198, 74215, 74234,
- 74243, 74253, 74260, 74267, 27228, 74273, 74277, 74285, 74297, 74303,
- 74311, 74315, 74323, 74330, 74334, 74340, 74346, 74351, 3563, 41924,
- 74357, 74361, 74365, 74369, 74374, 74379, 74384, 74390, 74396, 74402,
- 74409, 74415, 74422, 74428, 74434, 74439, 74445, 74450, 74454, 74459,
- 74463, 74468, 41939, 74472, 74477, 74485, 74489, 74494, 74501, 74510,
- 74516, 74520, 74527, 74531, 74534, 74541, 74550, 74555, 74559, 74567,
- 74576, 74580, 74588, 74594, 74599, 74604, 74610, 74616, 74621, 74625,
- 74631, 74636, 74640, 74644, 74647, 74652, 74660, 74670, 74675, 39416,
- 74683, 74695, 74699, 74705, 74717, 74728, 74735, 74741, 74748, 74760,
- 74767, 74773, 21088, 74777, 74783, 74790, 74796, 74802, 74807, 74812,
- 74817, 74826, 7033, 74831, 16426, 74837, 74841, 74845, 74849, 74857,
- 74866, 74870, 74877, 74886, 74899, 74905, 74464, 30088, 74910, 74912,
- 74917, 74922, 74927, 74932, 74937, 74942, 74947, 74952, 74957, 74962,
- 74967, 74972, 74977, 74982, 74988, 74993, 74998, 75003, 75008, 75013,
- 75018, 75023, 75028, 75034, 75040, 75046, 75051, 75056, 75068, 75073,
- 1870, 46, 75078, 75083, 32746, 75087, 32751, 32756, 32762, 32767, 75091,
- 32772, 22083, 75113, 75117, 75121, 75126, 75130, 32776, 75134, 75142,
- 32781, 75149, 75152, 75157, 75161, 9543, 75170, 32786, 21945, 75173,
- 75177, 1428, 75182, 32797, 75185, 75190, 25737, 25747, 35258, 75195,
- 75200, 75205, 75210, 75216, 75221, 75230, 75235, 75242, 75248, 75253,
- 75258, 75263, 75273, 75282, 75287, 75295, 75299, 75307, 32611, 37317,
- 75314, 75320, 75325, 75330, 12016, 75335, 75341, 75346, 75353, 75359,
- 75364, 75372, 75382, 75392, 75398, 75403, 75409, 17536, 75416, 36073,
- 75429, 75434, 75440, 30993, 75453, 75459, 75463, 75472, 75479, 75485,
- 75493, 75502, 75509, 75515, 75518, 75522, 25878, 75526, 75533, 75539,
- 75547, 75552, 23994, 75558, 75561, 75569, 75577, 75591, 75598, 75604,
- 75611, 75617, 32811, 75621, 75628, 75636, 75644, 75650, 32816, 75658,
- 75664, 75669, 75679, 75685, 75694, 30830, 34716, 75702, 75707, 75712,
- 75716, 75721, 75725, 75733, 14920, 39429, 75738, 75743, 32821, 62269,
- 75747, 75752, 75756, 75765, 75773, 75779, 75784, 75790, 75797, 75803,
- 75808, 75813, 75822, 75834, 75849, 33083, 75855, 16545, 32825, 75859,
- 75866, 24104, 75872, 75879, 75888, 75895, 75904, 75910, 75915, 75923,
- 75929, 32835, 75934, 75943, 74723, 75952, 75959, 75965, 75971, 75981,
- 75989, 75996, 76000, 32840, 76003, 32846, 32852, 76008, 76016, 76024,
- 76034, 76043, 76051, 76058, 76068, 32857, 76072, 76074, 76078, 76083,
- 76087, 76091, 76097, 76102, 76106, 76117, 76122, 76127, 3060, 76131,
- 76138, 76142, 76151, 76159, 76166, 76171, 76176, 62315, 76180, 76183,
- 76189, 76197, 76203, 76207, 76212, 76219, 76224, 76230, 34747, 76235,
- 76238, 76243, 76247, 76252, 76257, 76261, 76269, 76273, 25756, 25765,
- 76279, 76285, 76291, 76296, 76300, 76303, 76313, 76322, 76327, 76333,
- 76340, 76346, 76350, 76358, 76363, 34753, 76367, 76375, 76381, 76388,
- 76393, 76397, 76402, 58440, 34759, 76408, 76413, 76417, 76422, 76427,
- 76432, 76436, 76441, 76446, 76452, 76457, 76462, 76468, 76474, 76479,
- 76483, 76488, 76493, 76498, 76502, 24103, 76507, 76512, 76518, 76524,
- 76530, 76535, 76539, 76544, 76549, 76554, 76558, 76563, 76568, 76573,
- 76578, 76582, 32865, 76590, 76594, 76602, 76610, 76621, 76626, 76630,
- 22397, 76635, 76641, 76651, 76658, 76663, 76672, 76677, 76681, 76686,
- 76694, 76702, 76709, 65109, 76715, 76723, 76730, 76741, 76747, 76751,
- 76757, 32875, 76760, 76767, 76775, 76780, 39620, 76784, 76789, 76796,
- 76801, 8992, 76805, 76813, 76820, 76827, 76833, 76847, 63381, 76855,
- 76861, 76865, 76868, 76876, 76883, 76888, 76901, 76908, 76912, 76919,
- 76924, 60860, 76929, 76932, 76939, 76945, 76949, 76957, 76966, 76976,
- 76986, 76995, 77003, 77014, 77019, 77023, 77028, 77032, 35389, 77040,
- 21357, 35398, 77045, 77050, 77055, 77060, 77065, 77070, 77075, 77079,
- 77084, 77089, 77094, 77099, 77104, 77109, 77113, 77118, 77123, 77127,
- 77131, 77135, 77139, 77144, 77149, 77153, 77158, 77162, 77166, 77171,
- 77176, 77181, 77186, 77190, 77195, 77200, 77204, 77209, 77214, 77219,
- 77224, 77229, 77234, 77239, 77244, 77249, 77254, 77259, 77264, 77269,
- 77274, 77279, 77284, 77289, 77294, 77299, 77304, 77308, 77313, 77318,
- 77323, 77328, 77333, 77338, 77343, 77348, 77353, 77358, 77363, 77367,
- 77372, 77376, 77381, 77386, 77391, 77396, 77401, 77406, 77411, 77416,
- 77421, 77425, 77429, 77434, 77439, 77443, 77448, 77453, 77457, 77462,
- 77467, 77472, 77477, 77481, 77486, 77491, 77495, 77500, 77504, 77508,
- 77512, 77516, 77521, 77525, 77529, 77533, 77537, 77541, 77545, 77549,
- 77553, 77557, 77562, 77567, 77572, 77577, 77582, 77587, 77592, 77597,
- 77602, 77607, 77611, 77615, 77619, 77623, 77627, 77631, 77636, 77640,
- 77645, 77649, 77654, 77659, 77663, 77667, 77672, 77676, 77680, 77684,
- 77688, 77692, 77696, 77700, 77704, 77708, 77712, 77716, 77720, 77724,
- 77728, 77733, 77738, 77742, 77746, 77750, 77754, 77758, 77762, 77767,
- 77771, 77775, 77779, 77783, 77787, 77791, 77796, 77800, 77805, 77809,
- 77813, 77817, 77821, 77825, 77829, 77833, 77837, 77841, 77845, 77849,
- 77854, 77858, 77862, 77866, 77870, 77874, 77878, 77882, 77886, 77890,
- 77894, 77898, 77903, 77907, 77911, 77916, 77921, 77925, 77929, 77933,
- 77937, 77941, 77945, 77949, 77953, 77958, 77962, 77967, 77971, 77976,
- 77980, 77985, 77989, 77995, 78000, 78004, 78009, 78013, 78018, 78022,
- 78027, 78031, 78036, 1521, 78040, 2824, 1759, 1764, 78044, 78048, 2828,
- 78052, 1397, 78057, 1342, 78061, 2840, 78065, 78072, 78079, 78093, 2844,
- 7131, 78102, 78110, 78117, 78128, 78137, 78144, 78156, 78169, 78182,
- 78193, 78198, 78205, 78217, 78221, 2848, 11747, 78231, 78236, 78245,
- 78255, 2852, 78260, 78264, 78269, 78276, 78282, 78290, 78302, 1347,
- 13042, 78312, 78316, 78322, 78336, 78348, 78360, 78370, 78379, 78388,
- 78397, 78405, 78416, 78424, 4051, 78434, 78445, 78454, 78460, 78475,
- 78482, 78488, 35514, 78493, 2876, 13046, 78497, 78504, 8930, 78513, 2881,
- 32361, 78519, 60609, 78526, 78532, 78543, 78549, 78556, 78562, 78570,
- 78577, 78583, 78593, 78602, 78613, 78620, 78626, 78636, 78644, 78650,
- 78665, 78671, 78676, 78683, 78686, 78692, 78699, 78705, 78713, 78722,
- 78730, 78736, 78745, 41464, 78759, 78764, 78770, 14757, 78775, 78788,
- 78797, 78805, 78812, 78816, 78820, 78823, 78830, 78837, 78845, 78853,
- 78862, 78870, 14684, 78878, 78883, 78887, 78899, 78906, 78915, 748,
- 78925, 78934, 78945, 2897, 78949, 78953, 78959, 78972, 78984, 78994,
- 79003, 79015, 26369, 79026, 79034, 79043, 79054, 79065, 79075, 79085,
- 79094, 79102, 11312, 79109, 79113, 79116, 79121, 79126, 79130, 79136,
- 1352, 11818, 79143, 79154, 79163, 79171, 79180, 79188, 79204, 79215,
- 79224, 79232, 79244, 79255, 79271, 79281, 79302, 79315, 79323, 79330,
- 14868, 79343, 79348, 79354, 5908, 79360, 79363, 79370, 79380, 8176,
- 79387, 79392, 79397, 79402, 79410, 79419, 79427, 9756, 9765, 79432,
- 79443, 79448, 79454, 2913, 2918, 79460, 10879, 79466, 79473, 79480,
- 79493, 2251, 68, 79498, 79503, 79513, 79519, 79528, 79536, 79546, 79550,
- 79555, 79559, 79571, 2941, 79579, 79587, 79592, 79603, 79614, 79623,
- 79628, 79634, 79639, 79649, 79659, 79664, 79670, 79674, 79679, 79688,
- 21410, 79692, 4128, 20, 79697, 79706, 79713, 79720, 79726, 79732, 864,
- 79737, 79742, 60937, 79747, 79752, 79758, 79764, 79772, 79777, 79784,
- 79790, 79795, 38030, 41358, 79801, 2945, 32, 79811, 79824, 79829, 79837,
- 79842, 79848, 2967, 28310, 79853, 79861, 79868, 79873, 58682, 61940,
- 79882, 79886, 1704, 1813, 79891, 79896, 79903, 1817, 247, 79910, 79916,
- 2989, 79921, 79926, 79933, 1821, 79938, 79944, 79949, 79961, 6119, 79971,
- 1828, 79977, 79982, 79989, 79996, 80011, 80018, 80029, 80037, 2618,
- 80041, 80053, 80058, 80062, 80068, 28135, 2256, 80072, 80083, 80087,
- 80091, 80097, 80101, 80110, 80114, 80125, 80129, 2302, 32190, 80133,
- 80143, 3080, 9371, 80151, 80156, 80160, 80169, 80176, 80182, 3050, 17152,
- 80186, 80199, 80217, 80222, 80230, 80238, 80248, 9985, 13154, 80260,
- 80273, 80280, 80287, 80303, 80310, 80316, 1064, 80323, 80330, 80340,
- 80349, 80361, 42328, 80369, 3064, 12030, 80372, 80380, 80384, 78272,
- 3068, 80388, 21191, 12046, 3756, 80392, 3074, 80396, 80406, 80412, 80418,
- 80424, 80430, 80436, 80442, 80448, 80454, 80460, 80466, 80472, 80478,
- 80484, 80490, 80496, 80502, 80508, 80514, 80520, 80526, 80532, 80538,
- 80544, 80550, 80556, 80563, 80570, 80576, 80582, 80588, 80594, 80600,
- 80606, 1357, 16062, 12068, 80612, 80617, 80622, 80627, 80632, 80637,
- 80642, 80647, 80652, 80657, 80662, 80667, 80672, 80677, 80682, 80687,
- 80692, 80697, 80702, 80707, 80712, 80717, 80722, 80727, 80732, 80737,
- 80743, 80748, 80753, 80759, 80764, 80770, 80775, 80780, 80786, 80791,
- 80796, 80801, 80806, 80811, 80816, 80821, 80826, 80407, 80413, 80419,
- 80425, 80431, 80437, 80443, 80449, 80455, 80461, 80467, 80473, 80479,
- 80485, 80491, 80832, 80497, 80503, 80509, 80838, 80515, 80521, 80527,
- 80533, 80539, 80545, 80551, 80571, 80844, 80850, 80577, 80856, 80583,
- 80589, 80595, 80601, 80607, 3091, 3096, 80862, 80867, 80870, 80876,
- 80882, 80889, 80894, 80899, 2307,
+ 0, 0, 6, 10, 14, 22, 27, 34, 44, 49, 58, 64, 66, 69, 81, 89, 102, 108,
+ 113, 118, 126, 135, 146, 151, 156, 161, 164, 168, 177, 183, 189, 194,
+ 201, 209, 217, 218, 221, 229, 165, 235, 244, 251, 261, 267, 274, 279,
+ 282, 287, 293, 296, 300, 305, 311, 317, 322, 327, 333, 339, 348, 355,
+ 362, 371, 376, 381, 383, 391, 399, 400, 408, 410, 417, 420, 426, 433,
+ 331, 438, 440, 442, 449, 451, 456, 464, 471, 476, 480, 486, 491, 501,
+ 506, 513, 516, 524, 528, 538, 545, 554, 561, 570, 577, 580, 584, 592,
+ 598, 611, 618, 622, 626, 627, 636, 640, 649, 655, 659, 661, 666, 674,
+ 678, 686, 691, 694, 700, 703, 707, 712, 720, 723, 730, 735, 744, 753,
+ 761, 769, 773, 779, 787, 794, 797, 807, 811, 815, 826, 833, 840, 844,
+ 848, 854, 842, 863, 869, 874, 879, 883, 886, 889, 894, 903, 911, 916,
+ 658, 575, 921, 924, 930, 934, 938, 947, 953, 960, 969, 976, 989, 994,
+ 998, 1006, 1009, 1015, 1021, 1030, 1037, 1045, 1052, 1062, 1069, 1077,
+ 1086, 1090, 1093, 1100, 21, 1104, 1113, 1121, 1128, 1131, 1136, 1138,
+ 1142, 1151, 1156, 1159, 1165, 1172, 1175, 1180, 1185, 1191, 1196, 1201,
+ 1206, 1210, 1215, 1221, 1226, 1231, 1235, 1241, 1246, 1251, 1256, 1260,
+ 1265, 1270, 1275, 1281, 1287, 1293, 1298, 1302, 1307, 1312, 1317, 1321,
+ 1326, 1331, 1336, 1341, 1176, 1181, 1186, 1192, 1197, 1345, 1207, 1351,
+ 1356, 1361, 1368, 1372, 1375, 1384, 1211, 1388, 1216, 1222, 1227, 1392,
+ 1397, 1402, 1406, 1410, 1416, 1420, 1232, 1423, 1425, 1242, 1430, 1434,
+ 1247, 1440, 1252, 1444, 1448, 1257, 1452, 1457, 1461, 1464, 1468, 1261,
+ 1266, 1473, 1479, 1271, 1491, 1497, 1503, 1509, 1276, 1288, 1294, 1513,
+ 1517, 1521, 1524, 1299, 1528, 1530, 1535, 1540, 1546, 1551, 1556, 1560,
+ 1565, 1570, 1575, 1580, 1586, 1591, 1596, 1602, 1608, 1613, 1617, 1622,
+ 1627, 1632, 1637, 1642, 1646, 1654, 1659, 1663, 1668, 1673, 1678, 1683,
+ 1687, 1690, 1697, 1702, 1707, 1712, 1717, 1723, 1728, 1732, 1303, 1735,
+ 1740, 1745, 1308, 1749, 1753, 1760, 1313, 1767, 1318, 1771, 1773, 1778,
+ 1784, 1322, 1789, 1798, 1327, 1803, 1809, 1814, 1332, 1819, 1824, 1827,
+ 1832, 1836, 1840, 1844, 1847, 1851, 1337, 1856, 1342, 1860, 1862, 1868,
+ 1874, 1880, 1886, 1892, 1898, 1904, 1910, 1915, 1921, 1927, 1933, 1939,
+ 1945, 1951, 1957, 1963, 1969, 1974, 1979, 1984, 1989, 1994, 1999, 2004,
+ 2009, 2014, 2019, 2025, 2030, 2036, 2041, 2047, 2053, 2058, 2064, 2070,
+ 2076, 2082, 2087, 2092, 2094, 2095, 2099, 2103, 2108, 2112, 2116, 2120,
+ 2125, 2129, 2132, 2137, 2141, 2146, 2150, 2154, 2159, 2163, 2166, 2170,
+ 2176, 2190, 2194, 2198, 2202, 2205, 2210, 2214, 2218, 2221, 2225, 2230,
+ 2235, 2240, 2245, 2249, 2253, 2257, 2261, 2266, 2270, 2275, 2279, 2284,
+ 2290, 2297, 2303, 2308, 2313, 2318, 2324, 2329, 2335, 2340, 2343, 2345,
+ 1193, 2349, 2356, 2364, 2374, 2383, 2397, 2401, 2405, 2410, 2423, 2431,
+ 2435, 2440, 2444, 2447, 2451, 2455, 2460, 2465, 2470, 2474, 2477, 2481,
+ 2488, 2495, 2501, 2506, 2511, 2517, 2523, 2528, 2531, 1775, 2533, 2539,
+ 2543, 2548, 2552, 2556, 1693, 1786, 2561, 2565, 2568, 2573, 2578, 2583,
+ 2588, 2592, 2599, 2604, 2607, 2614, 2620, 2624, 2628, 2632, 2637, 2644,
+ 2649, 2654, 2661, 2667, 2673, 2679, 2693, 2710, 2725, 2740, 2749, 2754,
+ 2758, 2763, 2768, 2772, 2784, 2791, 2797, 2293, 2803, 2810, 2816, 2820,
+ 2823, 2830, 2836, 2841, 2845, 2850, 2854, 2858, 2117, 2862, 2867, 2872,
+ 2876, 2881, 2889, 2893, 2898, 2902, 2906, 2910, 2915, 2920, 2925, 2929,
+ 2934, 2939, 2943, 2948, 2952, 2955, 2959, 2963, 2971, 2976, 2980, 2984,
+ 2990, 2999, 3003, 3007, 3013, 3018, 3025, 3029, 3039, 3043, 3047, 3052,
+ 3056, 3061, 3067, 3072, 3076, 3080, 3084, 2491, 3092, 3097, 3103, 3108,
+ 3112, 3117, 3122, 3126, 3132, 3137, 2121, 3143, 3149, 3154, 3159, 3164,
+ 3169, 3174, 3179, 3184, 3189, 3194, 3200, 3205, 1208, 101, 3211, 3215,
+ 3219, 3223, 3228, 3232, 3236, 3242, 3247, 3251, 3255, 3260, 3265, 3269,
+ 3274, 3278, 3281, 3285, 3290, 3294, 3299, 3303, 3306, 3310, 3314, 3319,
+ 3323, 3326, 3339, 3343, 3347, 3351, 3356, 3360, 3364, 3367, 3371, 3375,
+ 3380, 3384, 3389, 3394, 3399, 3403, 3408, 3411, 3414, 3419, 3425, 3429,
+ 3433, 3436, 3441, 3445, 3450, 3454, 3458, 3461, 3467, 3472, 3477, 3483,
+ 3488, 3493, 3499, 3505, 3510, 3515, 3520, 3525, 1140, 579, 3528, 3531,
+ 3536, 3540, 3544, 3548, 3552, 3555, 3559, 3564, 3569, 3573, 3578, 3582,
+ 3587, 3591, 3595, 3599, 3605, 3611, 3614, 3617, 139, 3623, 3628, 3637,
+ 3645, 3654, 3661, 3667, 3674, 3679, 3683, 3687, 3695, 3702, 3707, 3714,
+ 3719, 3723, 3733, 3737, 3741, 3746, 3751, 3761, 2133, 3766, 3770, 3773,
+ 3779, 3784, 3790, 3796, 3801, 3808, 3812, 3816, 637, 701, 1369, 3820,
+ 3827, 3834, 3840, 3845, 3852, 3859, 3864, 3870, 3876, 3881, 3885, 3891,
+ 3898, 3903, 3907, 2142, 3911, 3919, 3925, 3933, 739, 3939, 3947, 3958,
+ 3962, 3972, 2147, 3978, 3983, 3998, 4004, 4011, 4021, 4027, 4032, 4038,
+ 4044, 4047, 4050, 4054, 4059, 4066, 4071, 4075, 4079, 4083, 4087, 4092,
+ 4098, 4109, 4113, 3286, 4118, 4130, 4136, 4144, 4148, 4153, 1562, 4160,
+ 4163, 4166, 4170, 4173, 4179, 4183, 4197, 4201, 4204, 4208, 4214, 4220,
+ 4225, 4229, 4233, 4239, 4250, 4256, 4261, 4267, 4271, 4279, 4291, 4301,
+ 4307, 4312, 4321, 4329, 4336, 4342, 4346, 4352, 4361, 4370, 4374, 4383,
+ 4388, 4392, 4397, 4401, 4409, 4415, 4419, 4424, 4428, 4434, 2155, 1385,
+ 4440, 4445, 4451, 4456, 4461, 4466, 4471, 4476, 4481, 4487, 4492, 4498,
+ 4503, 4508, 4513, 4519, 4524, 4529, 4534, 4539, 4545, 4550, 4556, 4561,
+ 4566, 4571, 4576, 4581, 4586, 4592, 4597, 4602, 291, 321, 4607, 4613,
+ 4617, 4621, 4626, 4630, 4634, 4637, 4641, 4645, 4649, 4653, 4657, 4662,
+ 4666, 4670, 4676, 4437, 4681, 4685, 4688, 4693, 4698, 4703, 4708, 4713,
+ 4718, 4723, 4728, 4733, 4738, 4742, 4747, 4752, 4757, 4762, 4767, 4772,
+ 4777, 4782, 4787, 4792, 4796, 4801, 4806, 4811, 4816, 4821, 4826, 4831,
+ 4836, 4841, 4846, 4850, 4855, 4860, 4865, 4870, 4875, 4880, 4885, 4890,
+ 4895, 4900, 4904, 4909, 4914, 4919, 4924, 4929, 4934, 4939, 4944, 4949,
+ 4954, 4958, 4963, 4968, 4973, 4978, 4983, 4988, 4993, 4998, 5003, 5008,
+ 5012, 5017, 5022, 5027, 5032, 5037, 5042, 5047, 5052, 5057, 5062, 5066,
+ 5071, 5076, 5081, 5086, 5092, 5098, 5104, 5110, 5116, 5122, 5128, 5133,
+ 5139, 5145, 5151, 5157, 5163, 5169, 5175, 5181, 5187, 5193, 5198, 5204,
+ 5210, 5216, 5222, 5228, 5234, 5240, 5246, 5252, 5258, 5263, 5269, 5275,
+ 5281, 5287, 5293, 5299, 5305, 5311, 5317, 5323, 5328, 5334, 5340, 5346,
+ 5352, 5358, 5364, 5370, 5376, 5382, 5388, 5393, 5399, 5405, 5411, 5417,
+ 5423, 5429, 5435, 5441, 5447, 5453, 5458, 5462, 5468, 5474, 5480, 5486,
+ 5492, 5498, 5504, 5510, 5516, 5522, 5527, 5533, 5539, 5545, 5551, 5557,
+ 5563, 5569, 5575, 5581, 5587, 5592, 5598, 5604, 5610, 5616, 5622, 5628,
+ 5634, 5640, 5646, 5652, 5657, 5663, 5669, 5675, 5681, 5687, 5693, 5699,
+ 5705, 5711, 5717, 5722, 5728, 5734, 5740, 5746, 5752, 5758, 5764, 5770,
+ 5776, 5782, 5787, 5793, 5799, 5805, 5811, 5817, 5823, 5829, 5835, 5841,
+ 5847, 5852, 5858, 5864, 5870, 5876, 5882, 5888, 5894, 5900, 5906, 5912,
+ 5917, 5923, 5929, 5935, 5941, 5947, 5953, 5959, 5965, 5971, 5977, 5982,
+ 5988, 5994, 6000, 6006, 6012, 6018, 6024, 6030, 6036, 6042, 6047, 6053,
+ 6059, 6065, 6071, 6077, 6083, 6089, 6095, 6101, 6107, 6112, 6116, 6119,
+ 6126, 6130, 6143, 6147, 6151, 6155, 6158, 6162, 6167, 6171, 6175, 6181,
+ 6188, 6199, 6207, 6214, 6218, 6226, 6235, 6241, 6253, 6258, 6261, 6266,
+ 6270, 6280, 6288, 6296, 6302, 6306, 6316, 6326, 6334, 6341, 6348, 6354,
+ 6360, 6367, 6371, 6378, 6388, 6398, 6406, 6413, 6418, 6422, 6426, 6434,
+ 6438, 6443, 6450, 6458, 6463, 6467, 6472, 6476, 6483, 6488, 6502, 6507,
+ 6512, 6519, 3541, 6528, 6532, 6537, 6541, 6545, 6548, 6553, 6558, 6567,
+ 6573, 6579, 6585, 6589, 6600, 6610, 6625, 6640, 6655, 6670, 6685, 6700,
+ 6715, 6730, 6745, 6760, 6775, 6790, 6805, 6820, 6835, 6850, 6865, 6880,
+ 6895, 6910, 6925, 6940, 6955, 6970, 6985, 7000, 7015, 7030, 7045, 7060,
+ 7075, 7090, 7105, 7120, 7135, 7150, 7165, 7180, 7195, 7210, 7225, 7240,
+ 7255, 7270, 7285, 7300, 7315, 7330, 7345, 7354, 7363, 7368, 7374, 7384,
+ 7388, 7392, 7397, 7402, 7410, 7414, 7417, 7421, 3034, 7424, 7429, 330,
+ 504, 7435, 7443, 7447, 7451, 7454, 7458, 7464, 7468, 7476, 7482, 7487,
+ 7494, 7502, 7509, 7515, 7520, 7527, 7533, 7541, 7545, 7550, 7562, 7573,
+ 7580, 7584, 7588, 7592, 7595, 7601, 3311, 7605, 7611, 7616, 7621, 7626,
+ 7632, 7637, 7642, 7647, 7652, 7658, 7663, 7668, 7674, 7679, 7685, 7690,
+ 7696, 7701, 7707, 7712, 7717, 7722, 7727, 7732, 7738, 7743, 7748, 7753,
+ 7759, 7765, 7771, 7777, 7783, 7789, 7795, 7801, 7807, 7813, 7819, 7825,
+ 7830, 7835, 7840, 7845, 7850, 7855, 7860, 7865, 7871, 7877, 7882, 7888,
+ 7894, 7900, 7905, 7910, 7915, 7920, 7926, 7932, 7937, 7942, 7947, 7952,
+ 7957, 7963, 7968, 7974, 7980, 7986, 7992, 7998, 8004, 8010, 8016, 8022,
+ 2164, 7453, 8027, 8031, 8035, 8038, 8045, 8048, 8052, 8060, 8065, 8070,
+ 8061, 8075, 2191, 8079, 8085, 8091, 8096, 8101, 8108, 8116, 8121, 8125,
+ 8128, 8132, 8138, 8144, 8148, 2199, 526, 8151, 8155, 8160, 8166, 8171,
+ 8175, 8178, 8182, 8188, 8193, 8197, 8204, 8208, 8212, 8216, 876, 958,
+ 8219, 8227, 8234, 8240, 8247, 8255, 8262, 8273, 8280, 8286, 8291, 8303,
+ 1228, 1393, 1398, 8314, 1403, 8318, 8322, 8331, 8339, 8343, 8352, 8358,
+ 8363, 8367, 8373, 8378, 8385, 2745, 8392, 8396, 8405, 8414, 8423, 8432,
+ 8438, 8443, 8448, 8459, 8471, 8476, 8484, 2250, 8488, 8490, 8495, 8499,
+ 8508, 8516, 1407, 159, 3583, 3588, 8522, 8526, 8535, 8541, 8546, 8549,
+ 8558, 3592, 2737, 8564, 8572, 8576, 8580, 8584, 2267, 8588, 8593, 8600,
+ 8606, 8612, 8615, 8617, 8620, 8628, 8636, 8644, 8647, 8652, 2280, 8657,
+ 8072, 8660, 8662, 8667, 8672, 8677, 8682, 8687, 8692, 8697, 8702, 8707,
+ 8712, 8718, 8723, 8728, 8733, 8739, 8744, 8749, 8754, 8759, 8764, 8769,
+ 8775, 8780, 8785, 8790, 8795, 8800, 8805, 8810, 8815, 8820, 8825, 8830,
+ 8835, 8840, 8845, 8850, 8855, 8860, 8866, 8872, 8877, 8882, 8887, 8892,
+ 8897, 2291, 2298, 2304, 8902, 8910, 8916, 8924, 2330, 2336, 8932, 8936,
+ 8941, 8945, 8949, 8953, 8958, 8962, 8967, 8971, 8974, 8977, 8983, 8990,
+ 8996, 9003, 9009, 9016, 9022, 9029, 9035, 9041, 9050, 9056, 9060, 9064,
+ 9068, 9072, 9077, 9081, 9086, 9090, 9096, 9101, 9108, 9119, 9127, 9137,
+ 9143, 9153, 9162, 9169, 9174, 9178, 9189, 9202, 9213, 9226, 9237, 9249,
+ 9261, 9273, 9286, 9299, 9306, 9312, 9326, 9333, 9339, 9348, 9356, 9360,
+ 9365, 9369, 9376, 9384, 9388, 9394, 9398, 9404, 9414, 9418, 9423, 9428,
+ 9435, 9441, 9451, 8242, 9457, 9461, 9468, 9474, 9481, 9488, 957, 9492,
+ 9496, 9501, 9506, 9511, 9515, 9521, 9529, 9535, 9539, 9542, 9548, 9558,
+ 9562, 9568, 9573, 9577, 9581, 9587, 9593, 2187, 9598, 9600, 9605, 9613,
+ 9622, 9626, 9632, 9637, 9642, 9647, 9652, 9658, 9663, 9668, 4235, 9673,
+ 9678, 9682, 9688, 9693, 9699, 9704, 9709, 9715, 9720, 9627, 9726, 9730,
+ 9737, 9743, 9748, 9752, 6498, 9757, 9766, 9771, 9776, 8596, 8603, 9781,
+ 2912, 9785, 9790, 9795, 9800, 9638, 9804, 9809, 9814, 9643, 9818, 9648,
+ 9823, 9830, 9837, 9843, 9850, 9856, 9862, 9867, 9874, 9879, 9884, 9889,
+ 9895, 9653, 9659, 9901, 9907, 9912, 9917, 9925, 9664, 9930, 1102, 9933,
+ 9941, 9947, 9953, 9962, 9970, 9978, 9986, 9994, 10002, 10010, 10018,
+ 10026, 10035, 10044, 10052, 10061, 10070, 10079, 10088, 10097, 10106,
+ 10115, 10124, 10133, 10142, 10150, 10155, 10161, 10169, 10176, 10191,
+ 10208, 10227, 10236, 10244, 10259, 10270, 10280, 10290, 10298, 10304,
+ 10316, 10325, 10333, 10340, 10347, 10354, 10360, 10365, 10375, 10383,
+ 10393, 10400, 10410, 10420, 10430, 10438, 10445, 10454, 10464, 10478,
+ 10493, 10502, 10510, 10515, 10519, 10528, 10534, 10539, 10549, 10559,
+ 10569, 10574, 10578, 10587, 10592, 10608, 10625, 10635, 10646, 10659,
+ 10667, 10680, 10692, 10700, 10705, 10709, 10715, 10720, 10728, 10736,
+ 10743, 10748, 10756, 10766, 10772, 10776, 10779, 10783, 10789, 10796,
+ 10800, 10808, 10817, 10825, 10832, 10837, 10842, 10846, 10850, 10858,
+ 10873, 10889, 10895, 10903, 10912, 10920, 10926, 10930, 10937, 10948,
+ 10952, 10955, 10961, 9669, 10966, 10972, 10979, 10985, 10990, 10997,
+ 11004, 11011, 11018, 11025, 11032, 11039, 11046, 11051, 10204, 11056,
+ 11062, 11069, 11076, 11081, 11088, 11097, 11101, 11113, 8634, 11117,
+ 11120, 11124, 11128, 11132, 11136, 11142, 11148, 11153, 11159, 11164,
+ 11169, 11175, 11180, 11185, 9431, 11190, 11194, 11198, 11202, 11207,
+ 11212, 11217, 11225, 11231, 11236, 11240, 11244, 11251, 11256, 11264,
+ 11271, 11276, 11280, 11283, 11289, 11296, 11300, 11303, 11308, 11312,
+ 4274, 11318, 11327, 46, 11335, 11341, 11346, 11351, 11359, 11366, 11371,
+ 9446, 11377, 11383, 11388, 11392, 11395, 11410, 11429, 11441, 11454,
+ 11467, 11480, 11494, 11507, 11522, 11529, 9674, 11535, 11549, 11554,
+ 11560, 11565, 11573, 11578, 8401, 11583, 11586, 11594, 11601, 11606,
+ 11610, 11616, 2917, 10278, 11620, 11624, 11630, 11636, 11641, 11647,
+ 11652, 9683, 11658, 11664, 11669, 11674, 11682, 11688, 11701, 11709,
+ 11716, 11722, 9689, 11728, 11736, 11744, 11751, 11764, 11777, 11789,
+ 11799, 11807, 11814, 11826, 11833, 11843, 11852, 11861, 11869, 11876,
+ 11881, 11887, 9694, 11892, 11898, 11903, 11908, 9700, 11913, 11916,
+ 11923, 11929, 11942, 9112, 11953, 11959, 11968, 11976, 11983, 11989,
+ 12000, 12006, 12011, 3836, 12019, 12024, 11402, 12030, 12037, 12042,
+ 9705, 12048, 12053, 12060, 12066, 12072, 12077, 12085, 12093, 12100,
+ 12104, 12116, 12130, 12140, 12145, 12149, 12160, 12166, 12171, 12176,
+ 9710, 12180, 9716, 12185, 12188, 12193, 12205, 12212, 12217, 12221,
+ 12229, 12234, 12238, 12243, 12247, 12254, 12260, 9721, 9628, 12267, 2922,
+ 12, 12274, 12279, 12283, 12287, 12293, 12301, 12311, 12316, 12321, 12328,
+ 12335, 12339, 12350, 12360, 12369, 12378, 12390, 12395, 12399, 12407,
+ 12421, 12425, 12428, 12436, 12443, 12451, 12455, 12466, 12470, 12477,
+ 12482, 12486, 12492, 12497, 12503, 12508, 12513, 12517, 12523, 12528,
+ 12539, 12543, 12546, 12552, 12557, 12563, 12569, 12576, 12587, 12597,
+ 12607, 12616, 12623, 12632, 12636, 9731, 9738, 9744, 9749, 12642, 12648,
+ 12654, 12659, 12665, 9753, 12671, 12674, 12681, 12686, 12701, 12717,
+ 12732, 12740, 12746, 12751, 950, 374, 12756, 12764, 12771, 12777, 12782,
+ 12787, 9758, 12789, 12793, 12798, 12802, 12812, 12817, 12821, 12830,
+ 12834, 12837, 12844, 9767, 12849, 12852, 12860, 12867, 12875, 12879,
+ 12883, 12890, 12899, 12906, 12902, 12913, 12917, 12923, 12927, 12931,
+ 12935, 12941, 12951, 12959, 12966, 12970, 12978, 12982, 12989, 12993,
+ 12998, 13002, 13009, 13015, 13023, 13029, 13034, 13044, 13049, 13054,
+ 13058, 13062, 13070, 4124, 13078, 13083, 9772, 13087, 13091, 13094,
+ 13102, 13109, 13113, 6298, 13117, 13122, 13127, 13131, 13142, 13152,
+ 13157, 13163, 13168, 13172, 13175, 13183, 13188, 13193, 13200, 13205,
+ 9777, 13210, 13214, 13221, 1737, 6456, 13226, 13231, 13236, 13241, 13247,
+ 13252, 13258, 13263, 13268, 13273, 13278, 13283, 13288, 13293, 13298,
+ 13303, 13308, 13313, 13318, 13323, 13328, 13333, 13338, 13344, 13349,
+ 13354, 13359, 13364, 13369, 13375, 13380, 13385, 13391, 13396, 13402,
+ 13407, 13413, 13418, 13423, 13428, 13433, 13439, 13444, 13449, 13454,
+ 909, 112, 13462, 13466, 13471, 13476, 13480, 13484, 13488, 13493, 13497,
+ 13502, 13506, 13509, 13513, 13517, 13523, 13528, 13538, 13544, 13552,
+ 13558, 13562, 13566, 13573, 13581, 13590, 13601, 13611, 13618, 13625,
+ 13629, 13638, 13647, 13655, 13664, 13673, 13682, 13691, 13701, 13711,
+ 13721, 13731, 13741, 13750, 13760, 13770, 13780, 13790, 13800, 13810,
+ 13820, 13829, 13839, 13849, 13859, 13869, 13879, 13889, 13898, 13908,
+ 13918, 13928, 13938, 13948, 13958, 13968, 13978, 13988, 13997, 14007,
+ 14017, 14027, 14037, 14047, 14057, 14067, 14077, 14087, 14097, 14106,
+ 1237, 14112, 14115, 14119, 14124, 14131, 14137, 14142, 14146, 14151,
+ 14160, 14168, 14173, 14177, 14181, 14187, 14192, 14198, 9786, 14203,
+ 14208, 14217, 9796, 14222, 14225, 14231, 14239, 9801, 14246, 14250,
+ 14254, 14259, 14263, 14273, 14279, 14285, 14290, 14299, 14307, 14314,
+ 14321, 14326, 14333, 14338, 14342, 14345, 14356, 14366, 14375, 14383,
+ 14394, 14406, 14416, 14421, 14425, 14430, 14435, 14439, 14445, 14453,
+ 14460, 14471, 14476, 14486, 14495, 14499, 14502, 14509, 14519, 14528,
+ 14535, 14539, 14546, 14552, 14557, 14562, 14566, 14575, 14580, 14584,
+ 14590, 14594, 14599, 14603, 14610, 14617, 14621, 14630, 14638, 14646,
+ 14653, 14661, 14673, 14684, 14694, 14701, 14707, 14716, 14727, 14736,
+ 14748, 14760, 14772, 14782, 14791, 14800, 14808, 14815, 14824, 14832,
+ 14836, 14841, 14847, 14853, 14858, 14863, 8093, 14867, 14869, 14873,
+ 14878, 14884, 14890, 14899, 14903, 14909, 14917, 14924, 14933, 14942,
+ 14951, 14960, 14969, 14978, 14987, 14996, 15006, 15016, 15025, 15031,
+ 15038, 15045, 15051, 15065, 15071, 15078, 15086, 15095, 15103, 15109,
+ 15118, 15127, 15138, 15148, 15156, 15163, 15171, 15180, 15193, 15202,
+ 15210, 15217, 15230, 15236, 15242, 15252, 15261, 15270, 15275, 15279,
+ 15285, 15291, 15296, 15303, 15310, 9445, 15315, 15320, 15327, 15335,
+ 15340, 15347, 15352, 15364, 13519, 15369, 15377, 15383, 15388, 15396,
+ 15404, 15411, 15419, 15425, 15433, 15441, 15447, 15452, 15458, 15465,
+ 15471, 15476, 15480, 15491, 15499, 15505, 15510, 15517, 15526, 15532,
+ 15537, 15545, 15554, 15568, 4068, 15572, 15577, 15582, 15588, 15593,
+ 15598, 15602, 15607, 15612, 15617, 8092, 15622, 15627, 15632, 15637,
+ 15642, 15646, 15651, 15656, 15661, 15666, 15672, 15678, 15683, 15687,
+ 15693, 15698, 15703, 15708, 9805, 15713, 15718, 15723, 15728, 15733,
+ 15750, 15768, 15780, 15793, 15810, 15826, 15843, 15853, 15872, 15883,
+ 15894, 15905, 15916, 15928, 15939, 15950, 15967, 15978, 15989, 15994,
+ 9810, 15999, 16003, 2420, 16007, 16010, 16016, 16024, 16032, 16041,
+ 16048, 16053, 16061, 16069, 16076, 16080, 16085, 16091, 16098, 16106,
+ 16113, 16125, 16132, 16138, 16146, 16151, 16157, 12695, 16163, 16172,
+ 16178, 16183, 16191, 16200, 16208, 16215, 16221, 16229, 16236, 16242,
+ 16248, 16255, 16262, 16268, 16274, 16283, 16291, 16301, 16308, 16314,
+ 16322, 16328, 16336, 16344, 16351, 16364, 16371, 16380, 16389, 16398,
+ 16406, 16416, 16423, 16428, 3727, 16435, 16440, 1353, 16444, 15623,
+ 16448, 16454, 16458, 16466, 16478, 16483, 16490, 16496, 16501, 16508,
+ 15628, 16512, 16516, 16520, 15633, 16524, 15638, 16528, 16535, 16540,
+ 16544, 16551, 16555, 16563, 16570, 16575, 16579, 16586, 16603, 16612,
+ 16616, 16619, 16627, 16633, 16638, 3805, 16642, 16644, 16652, 16659,
+ 16669, 16681, 16686, 16690, 16696, 16701, 16705, 16711, 16716, 16722,
+ 16725, 16732, 16740, 16747, 16753, 16758, 16764, 16769, 16776, 16782,
+ 16787, 16794, 16799, 16803, 16809, 16813, 16820, 16826, 16831, 16837,
+ 16845, 16853, 16860, 16866, 16871, 16877, 16883, 16891, 16899, 16905,
+ 16911, 16916, 16923, 16928, 16932, 16938, 16943, 16950, 16955, 16961,
+ 16964, 16970, 16976, 16979, 16983, 16987, 16999, 17005, 17010, 17017,
+ 17023, 17029, 17040, 17050, 17059, 17067, 17074, 17085, 17095, 17105,
+ 17113, 17116, 15652, 17121, 17126, 15657, 15798, 17134, 17147, 17162,
+ 17173, 15815, 17191, 17204, 17217, 17228, 11417, 17239, 17252, 17271,
+ 17282, 17293, 17304, 2688, 17317, 17321, 17329, 17340, 17348, 17363,
+ 17378, 17389, 17396, 17402, 17410, 17414, 17420, 17423, 17436, 17448,
+ 17458, 17466, 17473, 17481, 17491, 17496, 17503, 17508, 17515, 17526,
+ 17536, 17542, 17547, 17552, 15662, 17556, 17562, 17568, 17573, 17578,
+ 17583, 17587, 15667, 15673, 17591, 15679, 17596, 17604, 17609, 17613,
+ 17621, 17630, 17637, 17641, 9649, 17645, 17647, 17652, 17657, 17663,
+ 17668, 17673, 17678, 17683, 17687, 17693, 17699, 17704, 17710, 17715,
+ 17720, 17724, 17730, 17735, 17740, 17745, 17757, 17762, 17768, 17773,
+ 17778, 17784, 17790, 17795, 17800, 17805, 17812, 17818, 17829, 17836,
+ 17841, 17845, 17849, 17852, 17860, 17865, 17872, 17879, 17885, 17890,
+ 17895, 17900, 17907, 17917, 17925, 17930, 17937, 17943, 17952, 17962,
+ 17972, 17986, 18000, 18014, 18028, 18043, 18058, 18075, 18093, 18106,
+ 18112, 18117, 18122, 18126, 18134, 18139, 18147, 18153, 18159, 18164,
+ 18169, 18173, 18178, 18182, 18187, 18191, 18202, 18208, 18213, 18218,
+ 18225, 18230, 18234, 3690, 18239, 18245, 18252, 15688, 18258, 18262,
+ 18268, 18273, 18278, 18282, 18288, 18293, 18298, 18305, 18310, 14275,
+ 18314, 18319, 18323, 18328, 18334, 18340, 18347, 18357, 18365, 18372,
+ 18377, 18381, 18390, 18398, 18405, 18412, 18418, 18423, 18429, 18434,
+ 18439, 18445, 18450, 18456, 18461, 18467, 18473, 18480, 18486, 18491,
+ 18496, 9875, 18505, 18508, 18516, 18522, 18527, 18532, 18542, 18549,
+ 18555, 18560, 18565, 18571, 18576, 18582, 18587, 18593, 18599, 18604,
+ 18612, 18619, 18624, 18629, 18635, 18640, 18644, 18653, 18664, 18671,
+ 18679, 18686, 18691, 18696, 18702, 18707, 18715, 18721, 18727, 18734,
+ 18740, 18745, 18749, 18755, 18760, 18765, 18769, 18774, 1426, 8117, 2936,
+ 18778, 18782, 18786, 18790, 18794, 18798, 18801, 18806, 18813, 18821,
+ 15699, 18828, 18838, 18846, 18853, 18861, 18871, 18880, 9220, 18893,
+ 18898, 18903, 18911, 18918, 14371, 14380, 18925, 18935, 18950, 18956,
+ 18963, 18970, 18976, 18982, 18993, 19001, 19009, 19019, 19029, 15704,
+ 19038, 19044, 19050, 19058, 19066, 19071, 19080, 19088, 19100, 19110,
+ 19120, 19130, 19139, 19151, 19161, 19171, 19182, 19187, 19199, 19211,
+ 19223, 19235, 19247, 19259, 19271, 19283, 19295, 19307, 19318, 19330,
+ 19342, 19354, 19366, 19378, 19390, 19402, 19414, 19426, 19438, 19449,
+ 19461, 19473, 19485, 19497, 19509, 19521, 19533, 19545, 19557, 19569,
+ 19580, 19592, 19604, 19616, 19628, 19640, 19652, 19664, 19676, 19688,
+ 19700, 19711, 19723, 19735, 19747, 19759, 19771, 19783, 19795, 19807,
+ 19819, 19831, 19842, 19854, 19866, 19878, 19890, 19902, 19914, 19926,
+ 19938, 19950, 19962, 19973, 19985, 19997, 20009, 20021, 20033, 20045,
+ 20057, 20069, 20081, 20093, 20104, 20116, 20128, 20140, 20152, 20165,
+ 20178, 20191, 20204, 20217, 20230, 20243, 20255, 20268, 20281, 20294,
+ 20307, 20320, 20333, 20346, 20359, 20372, 20385, 20397, 20410, 20423,
+ 20436, 20449, 20462, 20475, 20488, 20501, 20514, 20527, 20539, 20552,
+ 20565, 20578, 20591, 20604, 20617, 20630, 20643, 20656, 20669, 20681,
+ 20694, 20707, 20720, 20733, 20746, 20759, 20772, 20785, 20798, 20811,
+ 20823, 20836, 20849, 20862, 20875, 20888, 20901, 20914, 20927, 20940,
+ 20953, 20965, 20976, 20989, 21002, 21015, 21028, 21041, 21054, 21067,
+ 21080, 21093, 21106, 21118, 21131, 21144, 21157, 21170, 21183, 21196,
+ 21209, 21222, 21235, 21248, 21260, 21273, 21286, 21299, 21312, 21325,
+ 21338, 21351, 21364, 21377, 21390, 21402, 21415, 21428, 21441, 21454,
+ 21467, 21480, 21493, 21506, 21519, 21532, 21544, 21557, 21570, 21583,
+ 21596, 21609, 21622, 21635, 21648, 21661, 21674, 21686, 21699, 21712,
+ 21725, 21738, 21751, 21764, 21777, 21790, 21803, 21816, 21828, 21841,
+ 21854, 21867, 21880, 21893, 21906, 21919, 21932, 21945, 21958, 21970,
+ 21983, 21996, 22009, 22022, 22035, 22048, 22061, 22074, 22087, 22100,
+ 22112, 22125, 22138, 22151, 22164, 22177, 22190, 22203, 22216, 22229,
+ 22242, 22254, 22267, 22280, 22293, 22306, 22319, 22332, 22345, 22358,
+ 22371, 22384, 22396, 22407, 22416, 22424, 22432, 22439, 22445, 22449,
+ 22455, 22461, 22469, 22474, 22480, 22485, 22489, 22498, 9654, 22509,
+ 22516, 22524, 22531, 22538, 11936, 22545, 22552, 22561, 22566, 22571,
+ 8145, 22578, 22583, 22586, 22591, 22599, 22606, 22613, 22620, 22626,
+ 22635, 22644, 22653, 22659, 22668, 22672, 22678, 22683, 22693, 22700,
+ 22706, 22714, 22720, 22727, 22737, 22746, 22750, 22757, 22761, 22766,
+ 22772, 22780, 22784, 22794, 15714, 22803, 22809, 22813, 22822, 22832,
+ 15719, 22838, 22845, 22856, 22864, 22874, 22883, 22891, 9410, 22899,
+ 22904, 22910, 22915, 22919, 22923, 22927, 10379, 22932, 22940, 22947,
+ 22956, 22963, 22970, 22976, 11856, 22983, 22989, 22993, 22999, 23006,
+ 23012, 23020, 23026, 23033, 23039, 23045, 23054, 23058, 23066, 23075,
+ 23082, 23087, 23091, 23102, 23107, 23112, 23117, 23130, 8349, 23134,
+ 23140, 23145, 23153, 23157, 23164, 23173, 23178, 15990, 23186, 23190,
+ 23202, 23207, 23211, 23214, 23220, 23226, 23232, 23237, 23241, 23244,
+ 23255, 23260, 9926, 23267, 23272, 1243, 9931, 23277, 23282, 23287, 23292,
+ 23297, 23302, 23307, 23312, 23317, 23322, 23327, 23332, 23338, 23343,
+ 23348, 23353, 23358, 23363, 23368, 23373, 23378, 23383, 23389, 23395,
+ 23400, 23405, 23410, 23415, 23420, 23425, 23430, 23435, 23440, 23446,
+ 23451, 23456, 23461, 23467, 23473, 23478, 23483, 23488, 23493, 23498,
+ 23503, 23508, 23513, 23519, 23524, 23529, 23534, 23539, 23545, 23550,
+ 23555, 23559, 134, 23567, 23571, 23575, 23579, 23584, 23588, 14281, 2346,
+ 23592, 23597, 23601, 23606, 23610, 23615, 23619, 23625, 23630, 23634,
+ 23638, 23646, 23650, 23654, 23659, 23664, 23668, 23674, 23679, 23683,
+ 23688, 23693, 23697, 23704, 23711, 23718, 23722, 23726, 23731, 23735,
+ 23738, 23744, 23757, 23762, 23768, 23777, 23782, 10151, 23787, 23796,
+ 23801, 23804, 2751, 2756, 23808, 23814, 23820, 7538, 23825, 23830, 23835,
+ 23841, 23846, 15134, 23851, 23856, 23861, 23866, 23872, 23877, 23882,
+ 23888, 23893, 23897, 23902, 23907, 23912, 23917, 23922, 23926, 23931,
+ 23935, 23940, 23945, 23950, 23955, 23959, 23964, 23968, 23973, 23978,
+ 23983, 23898, 2945, 23903, 23988, 23996, 24003, 10473, 24015, 24023,
+ 24033, 24051, 24070, 24079, 24087, 23908, 24094, 24099, 24107, 23913,
+ 24112, 24117, 24125, 24130, 23918, 24135, 24143, 24148, 24152, 24159,
+ 24165, 24174, 24182, 24186, 24189, 24196, 24200, 24204, 24209, 24215,
+ 24222, 24227, 9437, 1742, 1747, 24231, 24237, 24243, 24248, 24252, 24256,
+ 24260, 24264, 24268, 24272, 24276, 24280, 24283, 24289, 24296, 24304,
+ 24310, 24316, 24321, 24326, 24332, 24336, 24341, 15040, 15047, 24348,
+ 24360, 24363, 24370, 24374, 17881, 24381, 24389, 24400, 24409, 24422,
+ 24432, 24446, 24458, 24472, 24485, 24497, 24507, 24519, 24525, 24540,
+ 24564, 24582, 24601, 24614, 24628, 24646, 24662, 24679, 24697, 24708,
+ 24727, 24744, 24764, 24782, 24794, 24808, 24822, 24834, 24851, 24870,
+ 24888, 24900, 24918, 24937, 15858, 24950, 24970, 24982, 11448, 24994,
+ 24999, 25004, 25009, 25015, 25020, 25024, 25031, 25037, 2437, 25041,
+ 25047, 25051, 25054, 25058, 25061, 25069, 25075, 23936, 25079, 25088,
+ 25099, 25105, 25111, 25126, 25135, 25143, 25150, 25155, 25159, 25166,
+ 25172, 25181, 25189, 25196, 25206, 25215, 25225, 25230, 25239, 25248,
+ 25259, 25270, 4192, 25280, 25284, 25294, 25302, 25312, 25323, 25328,
+ 25338, 25346, 25353, 25359, 25366, 25371, 23946, 25375, 25384, 25388,
+ 25391, 25396, 25404, 25411, 25420, 25428, 25436, 25444, 25454, 25463,
+ 25469, 25475, 25479, 23951, 23956, 25483, 25493, 25503, 25513, 25521,
+ 25528, 25538, 25546, 25554, 25560, 25568, 865, 25577, 16065, 615, 25591,
+ 25600, 25608, 25619, 25630, 25640, 25649, 25661, 25670, 25679, 25686,
+ 25692, 25702, 25711, 25720, 25728, 25738, 25746, 25754, 9892, 25760,
+ 25763, 25767, 25772, 25777, 25781, 10588, 23969, 23974, 25789, 25795,
+ 25801, 25806, 25811, 25815, 25823, 25829, 25835, 25839, 3675, 25847,
+ 25852, 25857, 25861, 25865, 10701, 25872, 25880, 25894, 25901, 25907,
+ 10710, 10716, 25915, 25923, 25930, 25935, 25940, 23979, 25946, 25957,
+ 25961, 25966, 2640, 25971, 25982, 25988, 25993, 25997, 26001, 26004,
+ 26011, 26018, 26024, 26031, 26037, 26041, 23984, 26046, 26050, 26054,
+ 1431, 8544, 26059, 26064, 26069, 26074, 26079, 26084, 26089, 26094,
+ 26099, 26104, 26109, 26114, 26119, 26124, 26130, 26135, 26140, 26145,
+ 26150, 26155, 26160, 26166, 26171, 26176, 26181, 26186, 26191, 26196,
+ 26201, 26207, 26213, 26218, 26224, 26229, 26234, 5, 26240, 26244, 26248,
+ 26252, 26257, 26261, 26265, 26269, 26273, 26278, 26282, 26287, 26291,
+ 26294, 26298, 26303, 26307, 26312, 26316, 26320, 26324, 26329, 26333,
+ 26337, 26347, 26352, 26356, 26360, 26365, 26370, 26379, 26384, 26389,
+ 26393, 26397, 26410, 26422, 26431, 26440, 26445, 26451, 26456, 26460,
+ 26464, 26474, 26483, 26491, 26497, 26502, 26506, 26513, 26523, 26532,
+ 26540, 11770, 26548, 26556, 26565, 26574, 26582, 26592, 26597, 26601,
+ 26605, 26608, 26610, 26614, 26618, 26623, 26628, 26632, 26636, 26639,
+ 26643, 26646, 26650, 26653, 26656, 26660, 26666, 26670, 26674, 26678,
+ 26683, 26688, 26693, 26697, 26700, 26705, 26711, 26716, 26722, 26727,
+ 26731, 26737, 26741, 26745, 26750, 26754, 26759, 26764, 26768, 26772,
+ 26779, 26783, 26786, 26790, 26794, 26800, 26806, 26810, 26814, 26819,
+ 26826, 26832, 26836, 26845, 26849, 26853, 26856, 26862, 26867, 26873,
+ 1475, 1806, 26878, 26883, 26888, 26893, 26898, 26903, 26908, 2174, 2220,
+ 26913, 26916, 26920, 26924, 26929, 26933, 16077, 26937, 26942, 26947,
+ 26951, 26954, 26959, 26963, 26968, 26972, 16081, 26977, 26980, 26983,
+ 26987, 26992, 26996, 27009, 27013, 27016, 27024, 27033, 27040, 27045,
+ 27051, 27057, 27065, 27072, 27079, 27083, 27087, 27091, 27096, 27101,
+ 27105, 27113, 27118, 27130, 27141, 27146, 27150, 27157, 27161, 27166,
+ 27172, 27175, 27180, 27185, 27189, 27193, 27196, 27202, 8248, 2350,
+ 27206, 27211, 27227, 10198, 27247, 27256, 27272, 27276, 27283, 27286,
+ 27292, 27302, 27308, 27317, 27332, 27344, 27355, 27363, 27372, 27378,
+ 27387, 27397, 27407, 27418, 27429, 27439, 27448, 27455, 27464, 27472,
+ 27479, 27487, 27494, 27501, 27514, 27521, 27529, 27536, 27542, 27547,
+ 27556, 27562, 27567, 27575, 27582, 27589, 25304, 27601, 27613, 27627,
+ 27635, 27642, 27654, 27663, 27672, 27680, 27688, 27696, 27703, 27709,
+ 27718, 27726, 27736, 27745, 27755, 27764, 27773, 27781, 27786, 27790,
+ 27793, 27797, 27801, 27805, 27809, 27813, 27819, 27825, 27833, 16139,
+ 27840, 27845, 27852, 27858, 27865, 16147, 27872, 27875, 27887, 27895,
+ 27901, 27906, 27910, 27921, 10651, 27931, 27939, 27949, 27958, 27965,
+ 27972, 27980, 27984, 16158, 27987, 27994, 27998, 28004, 28007, 28014,
+ 28020, 28027, 28033, 28037, 28042, 28046, 28055, 28062, 28068, 8306,
+ 28075, 28083, 28090, 28096, 28101, 28107, 28113, 28121, 28127, 28131,
+ 28134, 28136, 27798, 28145, 28151, 28157, 28167, 28172, 28179, 28185,
+ 28190, 28195, 28200, 28204, 28209, 28216, 28222, 28231, 28235, 28242,
+ 28248, 28257, 4378, 28263, 28269, 28274, 28281, 28292, 28297, 28301,
+ 28311, 28317, 28321, 28326, 28336, 28345, 28349, 28356, 28364, 28371,
+ 28377, 28382, 28390, 28397, 28402, 28409, 28421, 28430, 28434, 14212,
+ 28442, 28452, 28456, 27020, 28467, 28472, 28476, 28483, 28490, 23670,
+ 27723, 28495, 28499, 28502, 24714, 28507, 28521, 28537, 28555, 28574,
+ 28591, 28609, 24733, 28626, 28646, 24750, 28658, 28670, 17178, 28682,
+ 24770, 28696, 28708, 11461, 28722, 28727, 28732, 28737, 28743, 28749,
+ 28755, 28759, 28767, 28774, 28779, 28789, 28795, 11059, 28801, 28803,
+ 28808, 28816, 28820, 28212, 28826, 28833, 12601, 12611, 28840, 28850,
+ 28855, 28859, 28862, 28868, 28876, 28888, 28898, 28914, 28927, 28941,
+ 17196, 28955, 28962, 28966, 28969, 28974, 28978, 28985, 28992, 28999,
+ 29009, 29014, 29019, 29024, 29032, 29040, 29045, 29054, 29059, 3353,
+ 29063, 29066, 29069, 29074, 29081, 29086, 29102, 29110, 29118, 9966,
+ 29126, 29131, 29135, 29141, 29146, 29152, 29155, 29161, 29173, 29181,
+ 29188, 29194, 29201, 29212, 29226, 29239, 29245, 29254, 29260, 29269,
+ 29281, 29292, 29302, 29311, 29320, 29328, 29339, 8288, 29346, 29353,
+ 29359, 29364, 29370, 29377, 29387, 29397, 29406, 29412, 29419, 29424,
+ 29432, 29439, 29447, 29455, 29467, 6563, 995, 29474, 29483, 29491, 29497,
+ 29503, 29508, 29512, 29515, 29521, 29528, 29533, 29538, 29543, 29547,
+ 29559, 29570, 29579, 29587, 16323, 29592, 29597, 29603, 29609, 12594,
+ 9058, 29614, 29618, 29622, 29625, 29628, 29634, 29642, 29650, 29654,
+ 29658, 29663, 29666, 29675, 29679, 29682, 29690, 29701, 29705, 29711,
+ 29717, 29721, 29727, 29735, 29757, 29781, 29790, 29797, 29804, 29810,
+ 29818, 29824, 29829, 29840, 29858, 29865, 29873, 29877, 29882, 29891,
+ 29904, 29912, 29924, 29935, 29946, 29956, 29970, 29979, 29987, 29999,
+ 10215, 30010, 30021, 30033, 30043, 30052, 30057, 30061, 30069, 30080,
+ 30090, 30095, 30099, 30102, 30105, 30113, 30121, 30130, 30140, 30149,
+ 30155, 30169, 2702, 30191, 30202, 30211, 30221, 30233, 30242, 30251,
+ 30261, 30269, 30277, 30286, 30291, 30302, 30307, 30318, 30322, 30332,
+ 30341, 30349, 30359, 30369, 30377, 30386, 30393, 30401, 30408, 30417,
+ 30426, 30430, 30438, 30445, 30453, 30460, 30471, 30486, 30493, 30499,
+ 30509, 30518, 30524, 30535, 30539, 30546, 30550, 30556, 15265, 30562,
+ 30566, 30571, 30577, 30584, 30588, 30592, 30600, 30608, 30614, 30623,
+ 30630, 30635, 30640, 30650, 25373, 30654, 30657, 30662, 30667, 30672,
+ 30677, 30682, 30687, 30692, 30697, 30703, 30708, 30713, 30719, 1199, 660,
+ 30724, 30733, 2398, 30740, 30745, 30749, 30755, 1248, 578, 290, 30760,
+ 30769, 30777, 30786, 30794, 30805, 30813, 30822, 30830, 30835, 10797,
+ 30839, 30847, 30855, 30860, 16094, 3824, 30866, 30872, 30878, 6148,
+ 30883, 30887, 30893, 30897, 30903, 30908, 30915, 1441, 30921, 30928,
+ 1348, 6156, 30932, 30942, 30950, 30956, 30966, 30975, 30983, 30989,
+ 30997, 31004, 12136, 31010, 31017, 31022, 31029, 1494, 219, 2173, 31035,
+ 31041, 31048, 31059, 31070, 31078, 31085, 31095, 31104, 31112, 31121,
+ 31128, 31135, 31148, 31155, 31161, 31172, 31191, 1253, 31196, 31201,
+ 31209, 3742, 31213, 31218, 31222, 31226, 1445, 26637, 31236, 31240,
+ 31245, 31249, 3619, 31255, 31263, 31270, 31281, 31289, 31297, 3743, 346,
+ 31302, 31310, 31318, 31325, 31331, 31336, 2242, 11628, 31343, 31349,
+ 28038, 28287, 31355, 574, 106, 31359, 31363, 31369, 663, 9841, 31374,
+ 31381, 31387, 31391, 1639, 31394, 31398, 16576, 31401, 31406, 31413,
+ 31419, 31424, 31432, 31439, 31445, 24132, 31449, 31453, 31457, 3813,
+ 18180, 31461, 31466, 31470, 31473, 31481, 31489, 31494, 31502, 31505,
+ 31512, 31522, 31534, 31539, 31543, 31551, 31558, 31564, 31571, 31578,
+ 31581, 31585, 31589, 1449, 31599, 31601, 31606, 31612, 31618, 31623,
+ 31628, 31633, 31638, 31643, 31648, 31653, 31658, 31663, 31668, 31673,
+ 31678, 31683, 31688, 31694, 31700, 31706, 31712, 31717, 31722, 31727,
+ 31733, 31738, 31743, 31748, 31754, 31759, 31765, 31770, 31775, 31780,
+ 31785, 31791, 31796, 31802, 31807, 31812, 31817, 31822, 31828, 31833,
+ 31839, 31844, 31849, 31854, 31859, 31864, 31869, 31874, 31879, 31884,
+ 31890, 31896, 31902, 31907, 31912, 31917, 31922, 31928, 31934, 31940,
+ 31946, 31952, 31958, 31963, 31969, 31974, 31979, 31984, 31989, 31995,
+ 2482, 32000, 2489, 2496, 2793, 32005, 2502, 2512, 32011, 32015, 32020,
+ 32025, 32031, 32036, 32041, 32045, 32050, 32056, 32061, 32066, 32071,
+ 32077, 32082, 32086, 32090, 32095, 32100, 32105, 32110, 32115, 32121,
+ 32127, 32132, 32136, 32141, 32147, 32151, 32156, 32161, 32166, 32171,
+ 32175, 32178, 32183, 32188, 32193, 32198, 32203, 32209, 32215, 32220,
+ 32225, 32230, 32234, 32239, 32244, 32249, 32254, 32259, 32264, 32268,
+ 32273, 32278, 32283, 32287, 32291, 32295, 32300, 32308, 32313, 32318,
+ 32324, 32330, 32336, 32341, 32345, 32348, 32353, 32358, 32362, 32367,
+ 32372, 32376, 32381, 32385, 32388, 32393, 3914, 18906, 32398, 32403,
+ 32408, 32416, 22959, 30925, 9518, 32421, 32426, 32430, 32435, 32439,
+ 32443, 32448, 32452, 32455, 32458, 32462, 32467, 32471, 32479, 32483,
+ 32486, 32491, 32495, 32499, 32504, 32509, 32513, 32519, 32524, 32529,
+ 32536, 32543, 32547, 32550, 32556, 32565, 32572, 32580, 32587, 32591,
+ 32596, 32600, 32604, 32610, 32616, 32620, 32626, 32631, 32636, 32640,
+ 32647, 32653, 32659, 32665, 32671, 32678, 32684, 32690, 32696, 32702,
+ 32708, 32714, 32720, 32727, 32733, 32740, 32746, 32752, 32758, 32764,
+ 32770, 32776, 32782, 32788, 32794, 12479, 32800, 32806, 32811, 32816,
+ 32821, 32824, 32830, 32838, 32843, 32847, 32852, 32858, 32867, 32873,
+ 32878, 32883, 32888, 32892, 32897, 32902, 32907, 32912, 32917, 32924,
+ 32931, 32937, 32943, 32948, 17822, 32955, 32961, 32968, 32974, 32980,
+ 32985, 32993, 32998, 10372, 33002, 33007, 33012, 33018, 33023, 33028,
+ 33032, 33037, 33042, 33048, 33053, 33058, 33063, 33067, 33072, 33077,
+ 33081, 33086, 33091, 33095, 33100, 33104, 33109, 33114, 33119, 33123,
+ 33128, 33132, 33136, 16682, 33141, 33150, 33156, 33162, 33171, 33179,
+ 33188, 33196, 33201, 33205, 33212, 33218, 33226, 33230, 33233, 33238,
+ 33242, 33251, 33259, 33277, 33283, 1493, 33289, 33292, 33296, 24238,
+ 24244, 33302, 33306, 33317, 33328, 33339, 33351, 33355, 33362, 33369,
+ 33374, 33378, 6204, 928, 22958, 33386, 33391, 33395, 33400, 33404, 33410,
+ 33415, 33421, 33426, 33432, 33437, 33443, 33448, 33454, 33460, 33466,
+ 33471, 33427, 33433, 33475, 33480, 33486, 33491, 33497, 33502, 33508,
+ 33513, 33438, 11314, 33517, 33449, 33455, 33461, 2885, 3533, 33523,
+ 33526, 33531, 33537, 33543, 33549, 33556, 33562, 33568, 33574, 33580,
+ 33586, 33592, 33598, 33604, 33610, 33616, 33622, 33628, 33635, 33641,
+ 33647, 33653, 33659, 33665, 33668, 33673, 33676, 33683, 33688, 33696,
+ 33701, 33706, 33712, 33717, 33722, 33726, 33731, 33737, 33742, 33748,
+ 33753, 33759, 33764, 33770, 33776, 33780, 33785, 33790, 33795, 33800,
+ 33804, 33809, 33814, 33819, 33825, 33831, 33837, 33843, 33848, 33852,
+ 33855, 33861, 33867, 33876, 33884, 33891, 33896, 33900, 33904, 33909,
+ 16530, 33914, 33922, 33928, 3866, 1358, 33933, 33937, 8359, 33943, 33949,
+ 33956, 8368, 33960, 33966, 33973, 33979, 33988, 33996, 9244, 34008,
+ 34012, 34019, 34025, 34030, 34034, 34038, 34041, 34051, 34060, 34068,
+ 33428, 34073, 34083, 34093, 34103, 34109, 34114, 34124, 34129, 34142,
+ 34156, 34167, 34179, 34191, 34205, 34218, 34230, 34242, 15899, 34256,
+ 34261, 34266, 34270, 34274, 34278, 1795, 29290, 34282, 34287, 33476,
+ 34292, 34295, 34300, 34305, 34310, 34316, 34322, 10974, 34327, 34333,
+ 34340, 17130, 34346, 34351, 34356, 34360, 34365, 34370, 33481, 34375,
+ 34380, 34385, 34391, 33487, 34396, 34399, 34406, 34414, 34420, 34426,
+ 34432, 34443, 34448, 34455, 34462, 34469, 34477, 34486, 34495, 34501,
+ 34507, 34515, 33492, 34520, 34526, 34532, 33498, 34537, 34542, 34550,
+ 34558, 34564, 34571, 34577, 34584, 34591, 34597, 34605, 34615, 34622,
+ 34628, 34633, 34639, 34644, 34649, 34656, 34665, 34673, 34678, 34684,
+ 34691, 34699, 34705, 34710, 34716, 34725, 34732, 30135, 34738, 34742,
+ 34747, 34756, 34761, 34766, 34771, 13548, 34779, 34784, 34789, 34794,
+ 34798, 34803, 34808, 34815, 34820, 34825, 34830, 33503, 22895, 34836,
+ 2558, 144, 34839, 34842, 34846, 34850, 34860, 34868, 34875, 34879, 34882,
+ 34890, 34897, 34904, 34913, 34917, 34920, 34926, 34930, 34938, 34946,
+ 34950, 34954, 34957, 34963, 34970, 34974, 34978, 34985, 34993, 33439,
+ 35000, 35008, 35013, 11034, 623, 369, 35025, 35030, 35035, 35041, 35046,
+ 35051, 3887, 35056, 35059, 35064, 35069, 35074, 35079, 35084, 35091,
+ 24356, 35096, 35101, 35106, 35111, 35116, 35122, 35127, 35133, 33679,
+ 35139, 35144, 35150, 35156, 35166, 35171, 35176, 35180, 35185, 35190,
+ 35195, 35200, 35213, 35218, 24019, 18255, 3900, 35222, 35228, 35233,
+ 35238, 35244, 35249, 35254, 35258, 35263, 35268, 35274, 35279, 35284,
+ 1363, 35288, 35293, 35298, 35303, 35307, 35312, 35317, 35322, 35328,
+ 35334, 35339, 35343, 35347, 35352, 35357, 35362, 35366, 35374, 35378,
+ 35384, 35388, 35395, 18039, 33450, 35401, 35408, 35416, 35423, 35429,
+ 35442, 35454, 35459, 35465, 35469, 2812, 35473, 35477, 34965, 35486,
+ 35497, 35502, 30198, 35507, 35512, 35516, 35521, 24249, 35525, 35529,
+ 35534, 33456, 22985, 35538, 35543, 35549, 35554, 35558, 35562, 35565,
+ 35569, 35575, 35584, 35595, 35607, 33462, 35612, 35615, 35619, 35623,
+ 406, 35628, 35633, 35638, 35643, 35648, 35653, 35659, 35664, 35669,
+ 35675, 35680, 35686, 35691, 35697, 35702, 35707, 35712, 35717, 35722,
+ 35727, 35732, 35737, 35743, 35748, 35753, 35758, 35763, 35768, 35773,
+ 35778, 35784, 35790, 35795, 35800, 35805, 35810, 35815, 35820, 35825,
+ 35830, 35835, 35840, 35845, 35850, 35855, 35860, 35865, 35870, 35875,
+ 35880, 35886, 325, 9, 35891, 35895, 35899, 35907, 35911, 35915, 35918,
+ 35921, 35923, 35928, 35932, 35937, 35941, 35946, 35950, 35955, 35959,
+ 35962, 35964, 35968, 35973, 35977, 35988, 35991, 35993, 35997, 36009,
+ 36018, 36022, 36026, 36032, 36037, 36046, 36052, 36057, 36062, 36066,
+ 36070, 36075, 36082, 36087, 36093, 36098, 36102, 36109, 27731, 27741,
+ 36113, 36118, 36123, 36128, 36135, 36139, 36146, 36152, 8491, 36156,
+ 36165, 36173, 36188, 36202, 36211, 36219, 36230, 36239, 36244, 36251,
+ 7556, 36261, 36266, 36271, 36275, 36278, 36283, 36287, 36292, 36296,
+ 36303, 36308, 36313, 36318, 9391, 36328, 36330, 36333, 36336, 36340,
+ 36346, 36350, 36355, 36360, 36378, 36392, 36411, 36428, 36437, 36445,
+ 36450, 36455, 1486, 36461, 36467, 36472, 36482, 36491, 36499, 36504,
+ 36510, 36515, 36524, 36535, 36540, 36547, 36551, 36558, 36566, 36573,
+ 36586, 36594, 36598, 36608, 36613, 36617, 36625, 36633, 36638, 36642,
+ 36646, 36655, 36661, 36666, 36674, 36684, 36693, 36702, 36711, 36722,
+ 36730, 36741, 36750, 36757, 36763, 36768, 36779, 36790, 36795, 36799,
+ 36802, 36806, 36814, 36820, 36831, 36842, 36853, 36864, 36875, 36886,
+ 36897, 36908, 36920, 36932, 36944, 36956, 36968, 36980, 36992, 36996,
+ 37004, 37010, 37017, 37023, 37028, 37034, 2457, 37038, 37040, 37045,
+ 37050, 37055, 37058, 37060, 37064, 37067, 37074, 37078, 10664, 37082,
+ 37088, 37098, 37103, 37109, 37113, 37118, 37131, 28162, 37137, 37146,
+ 37155, 19104, 37162, 37171, 34089, 37179, 37184, 37188, 37197, 37205,
+ 37212, 37217, 37221, 37226, 37234, 37238, 37246, 37252, 37258, 37263,
+ 37267, 37270, 37275, 37288, 37304, 24840, 37321, 37333, 37350, 37362,
+ 37376, 24857, 24876, 37388, 37400, 2719, 37414, 37419, 37424, 37429,
+ 37433, 37440, 37452, 37459, 37468, 37471, 37482, 37493, 37498, 34512,
+ 852, 37502, 37506, 37510, 37513, 37518, 37523, 37529, 37534, 37539,
+ 37545, 37551, 37556, 37560, 37565, 37570, 37575, 37579, 37582, 37588,
+ 37593, 37598, 37603, 37607, 37612, 37618, 37626, 28414, 37631, 37636,
+ 37643, 37649, 37655, 37660, 37668, 24365, 37675, 37680, 37685, 37690,
+ 37694, 37697, 37702, 37706, 37710, 37717, 37723, 37729, 37735, 37742,
+ 37747, 37753, 36628, 37757, 37761, 37766, 37779, 37784, 37790, 37798,
+ 37805, 37813, 37823, 37829, 37835, 37841, 37845, 37854, 37862, 37869,
+ 37874, 37879, 11337, 37884, 37891, 37897, 37907, 37912, 37918, 37926,
+ 3775, 37933, 37940, 37946, 37953, 3781, 37957, 37962, 37973, 37980,
+ 37986, 37995, 37999, 4244, 38002, 38009, 38015, 38021, 38029, 38039,
+ 31326, 38046, 38054, 38060, 38065, 38071, 38076, 38080, 28010, 38086,
+ 38093, 38099, 38108, 38115, 25565, 38121, 38126, 38130, 38138, 38146,
+ 10330, 6179, 38153, 38157, 38159, 38163, 38168, 38170, 38175, 38181,
+ 38186, 38191, 38198, 35087, 38204, 38209, 38213, 38218, 38222, 38231,
+ 38235, 38241, 38248, 38254, 38261, 38266, 38275, 38280, 38284, 38289,
+ 38296, 38304, 38312, 38317, 23041, 38321, 38324, 38328, 38332, 11725,
+ 872, 38336, 38341, 38349, 38353, 38362, 38369, 38373, 38377, 38385,
+ 38392, 38402, 38406, 38410, 38418, 38426, 38432, 38437, 38446, 14530,
+ 38452, 38461, 38466, 38473, 38480, 38488, 38496, 38504, 38509, 38516,
+ 38523, 38530, 38537, 38544, 38549, 38555, 38572, 38580, 38590, 38598,
+ 38605, 414, 38609, 38615, 38619, 38624, 36235, 38630, 38633, 38637,
+ 38648, 38656, 3786, 38664, 38670, 38676, 38686, 38695, 38705, 38712,
+ 38718, 38723, 3792, 3798, 38732, 38739, 38747, 38752, 38756, 38763,
+ 38771, 38778, 38784, 38793, 38803, 38809, 38817, 38826, 38833, 38841,
+ 38848, 23728, 38852, 38859, 38865, 38875, 38884, 38892, 38903, 38907,
+ 38917, 38923, 38930, 38938, 38947, 38956, 38966, 38977, 38984, 38989,
+ 38996, 3088, 39004, 39010, 39015, 39021, 39027, 39032, 39045, 39058,
+ 39071, 39078, 39084, 39092, 39100, 39105, 39109, 1455, 39113, 39117,
+ 39121, 39125, 39129, 39133, 39137, 39141, 39145, 39149, 39153, 39157,
+ 39161, 39165, 39169, 39173, 39177, 39181, 39185, 39189, 39193, 39197,
+ 39201, 39205, 39209, 39213, 39217, 39221, 39225, 39229, 39233, 39237,
+ 39241, 39245, 39249, 39253, 39257, 39261, 39265, 39269, 39273, 39277,
+ 39281, 39285, 39289, 39293, 39297, 39301, 39305, 39309, 39313, 39317,
+ 39321, 39325, 39329, 39333, 39337, 39341, 39345, 39349, 39353, 39357,
+ 39361, 39365, 39369, 39373, 39377, 39381, 39385, 39389, 39393, 39397,
+ 39401, 39405, 39409, 39413, 39417, 39421, 39425, 39429, 39433, 39437,
+ 39441, 39445, 39449, 39453, 39457, 39461, 39465, 39469, 39473, 39477,
+ 39481, 39485, 39489, 39493, 39497, 39501, 39505, 39509, 39513, 39517,
+ 39521, 39525, 39529, 39533, 39537, 39541, 39545, 39549, 39553, 39557,
+ 39561, 39565, 39569, 39573, 39577, 39581, 39585, 39589, 39593, 39597,
+ 39601, 39605, 39609, 39613, 39617, 39621, 39625, 39629, 39633, 39637,
+ 39641, 39645, 39649, 39653, 39657, 39661, 39665, 39669, 39673, 39677,
+ 39681, 39685, 39689, 39693, 39697, 39701, 39705, 39709, 39713, 39717,
+ 39721, 39725, 39730, 39734, 39739, 39743, 39748, 39752, 39757, 39761,
+ 39767, 39772, 39776, 39781, 39785, 39790, 39794, 39799, 39803, 39808,
+ 39812, 39817, 39821, 39826, 39830, 39836, 39842, 39847, 39851, 39856,
+ 39860, 39866, 39871, 39875, 39880, 39884, 39889, 39893, 39899, 39904,
+ 39908, 39913, 39917, 39922, 39926, 39931, 39935, 39941, 39946, 39950,
+ 39955, 39959, 39965, 39970, 39974, 39979, 39983, 39988, 39992, 39997,
+ 40001, 40006, 40010, 40016, 40021, 40025, 40031, 40036, 40040, 40046,
+ 40051, 40055, 40060, 40064, 40069, 40073, 40079, 40085, 40091, 40097,
+ 40103, 40109, 40115, 40121, 40126, 40130, 40135, 40139, 40145, 40150,
+ 40154, 40159, 40163, 40168, 40172, 40177, 40181, 40186, 40190, 40195,
+ 40199, 40204, 40208, 40214, 40219, 40223, 40228, 40232, 40238, 40244,
+ 40249, 116, 57, 40253, 40255, 40259, 40263, 40267, 40272, 40276, 40280,
+ 10251, 40285, 40291, 1756, 6597, 40297, 40300, 40305, 40309, 40314,
+ 40318, 40322, 40327, 11121, 40331, 40335, 40339, 525, 40343, 16783,
+ 40348, 40352, 40357, 40362, 40367, 40371, 40378, 28186, 40384, 40387,
+ 40391, 40396, 40402, 40406, 40409, 40417, 40423, 40428, 40432, 40435,
+ 40439, 40445, 40449, 40453, 3584, 3589, 31537, 40456, 40460, 40464,
+ 40468, 40472, 40480, 40487, 40491, 14480, 40498, 40503, 40517, 40524,
+ 40535, 335, 40540, 40544, 40550, 40562, 40568, 40574, 31574, 40578,
+ 40584, 40593, 40597, 40601, 40606, 40612, 40617, 40621, 40626, 40630,
+ 40634, 40641, 40647, 40652, 40667, 40682, 40697, 40713, 40731, 11071,
+ 40745, 40752, 40756, 40759, 40768, 40773, 40777, 40785, 17333, 40793,
+ 40797, 40807, 40818, 31507, 40831, 40835, 40844, 40862, 40881, 40889,
+ 10525, 11234, 40893, 24261, 40896, 32475, 40901, 10524, 40906, 40912,
+ 40917, 40923, 40928, 40934, 40939, 40945, 40950, 40956, 40962, 40968,
+ 40973, 40929, 40935, 40940, 40946, 40951, 40957, 40963, 8504, 4089,
+ 40977, 40985, 40989, 40992, 40996, 41001, 41006, 41013, 41019, 41025,
+ 41030, 16174, 41034, 28022, 41038, 41042, 41046, 41052, 41056, 30075,
+ 41065, 9544, 41069, 9937, 41072, 41079, 41085, 41089, 13004, 41096,
+ 41102, 41107, 41114, 41121, 41128, 30781, 8410, 41135, 41142, 41149,
+ 41155, 41160, 41167, 41178, 41184, 41189, 41194, 41199, 41203, 41208,
+ 41215, 40930, 41219, 41229, 41238, 41249, 41255, 41263, 41270, 41275,
+ 41280, 41285, 41290, 41295, 41299, 41303, 41310, 41316, 41324, 2353,
+ 1050, 11137, 11149, 11154, 11160, 41333, 11165, 11170, 11176, 41338,
+ 41348, 41352, 11181, 41357, 18453, 41360, 41365, 41369, 37463, 41380,
+ 41385, 41392, 41399, 41403, 41406, 41414, 11084, 41421, 41424, 41430,
+ 41440, 6231, 41449, 41455, 41459, 41467, 41471, 41481, 41487, 41492,
+ 41503, 41512, 41521, 41530, 41539, 41548, 41557, 41566, 41572, 41578,
+ 41583, 41589, 41595, 41601, 41606, 41609, 41616, 41622, 41626, 41631,
+ 41638, 41645, 41649, 41652, 41662, 41675, 41684, 41693, 41704, 41717,
+ 41729, 41740, 41749, 41760, 41765, 41774, 41779, 11186, 41785, 41792,
+ 41800, 41805, 41809, 41816, 41823, 4041, 20, 41827, 41832, 18302, 41836,
+ 41839, 41842, 30255, 41846, 30790, 41854, 41858, 41862, 41865, 41871,
+ 41877, 33527, 41882, 41890, 41896, 41903, 30238, 41907, 30441, 41911,
+ 41920, 41924, 41932, 41938, 41944, 41949, 41953, 30809, 41959, 41962,
+ 41970, 41978, 4379, 41984, 41988, 41993, 42000, 42006, 42011, 42016,
+ 42020, 42026, 42031, 42037, 4297, 944, 42044, 42048, 42051, 16664, 42063,
+ 42071, 42079, 42087, 42095, 42102, 42110, 42118, 42125, 42133, 42141,
+ 42149, 42157, 42165, 42173, 42181, 42189, 42197, 42205, 42213, 42220,
+ 42228, 42236, 42244, 42252, 42260, 42268, 42276, 42284, 42292, 42300,
+ 42308, 42316, 42324, 42332, 42340, 42348, 42356, 42364, 42372, 42379,
+ 42387, 42394, 42402, 42410, 42418, 42426, 42434, 42442, 42450, 42458,
+ 42469, 23764, 42474, 42477, 42484, 42488, 42494, 42498, 42504, 42509,
+ 42515, 42520, 42525, 42529, 42533, 42538, 42543, 42553, 42559, 42572,
+ 42578, 42584, 42590, 42597, 42602, 42608, 42613, 18198, 1458, 831, 42618,
+ 42621, 42624, 42627, 33611, 33617, 42630, 33623, 33636, 33642, 33648,
+ 42636, 33654, 33660, 42642, 42648, 26, 42656, 42663, 42667, 42671, 42679,
+ 34401, 42683, 42687, 42694, 42699, 42703, 42708, 42714, 42719, 42725,
+ 42730, 42734, 42738, 42742, 42747, 42751, 42756, 42760, 42764, 42771,
+ 42776, 42780, 42784, 42789, 42793, 42798, 42802, 42806, 42811, 42817,
+ 16924, 16929, 42822, 42826, 42829, 42833, 42837, 22852, 42842, 42846,
+ 42852, 42859, 42865, 42870, 42880, 42885, 42893, 42897, 42900, 34416,
+ 42904, 4356, 42909, 42914, 42918, 42923, 42927, 42932, 14548, 42943,
+ 42947, 42950, 42954, 42959, 42963, 42968, 42973, 42977, 42981, 42985,
+ 42988, 42992, 8523, 14564, 42995, 42998, 43004, 43009, 43015, 43020,
+ 43026, 43031, 43037, 43042, 43048, 43054, 43060, 43065, 43069, 43073,
+ 43082, 43098, 43114, 43124, 30145, 43131, 43135, 43140, 43145, 43149,
+ 43153, 38951, 43159, 43164, 43168, 43175, 43180, 43185, 43189, 43193,
+ 43199, 29093, 43203, 23136, 43208, 43215, 43223, 43229, 43236, 43244,
+ 43250, 43254, 43259, 43265, 43273, 43278, 43282, 43291, 10232, 43299,
+ 43303, 43311, 43318, 43323, 43328, 43333, 43337, 43340, 43344, 43347,
+ 43351, 43358, 43363, 43367, 43373, 28492, 33674, 43377, 43386, 43394,
+ 43400, 43407, 43413, 43419, 43424, 43427, 43429, 43436, 43443, 43449,
+ 43453, 43456, 43460, 43464, 43468, 43473, 43477, 43481, 43484, 43488,
+ 43502, 24906, 43521, 43534, 43547, 43560, 24924, 43575, 11422, 43590,
+ 43596, 43600, 43604, 43608, 43612, 43619, 43624, 43628, 43635, 43641,
+ 43646, 43652, 43662, 43674, 43685, 43690, 43697, 43701, 43705, 43708,
+ 17343, 3855, 43716, 16951, 43729, 43736, 43743, 43747, 43751, 43756,
+ 43762, 43767, 43773, 43777, 43781, 43784, 43789, 43793, 43798, 8082,
+ 16962, 43803, 43807, 43813, 43822, 43827, 43836, 43843, 38799, 43849,
+ 43854, 43858, 43863, 43870, 43876, 43880, 43883, 43887, 43892, 15864,
+ 43899, 43906, 43910, 43913, 43918, 43923, 43929, 43934, 43939, 43943,
+ 43948, 43958, 43963, 43969, 43974, 43980, 43985, 43991, 44001, 44006,
+ 44011, 44015, 44020, 7558, 7570, 44025, 44028, 44035, 44041, 44050, 9477,
+ 36760, 44058, 44062, 44066, 34464, 44074, 44085, 44093, 38999, 44100,
+ 44105, 44110, 44121, 44128, 44139, 34488, 23147, 44147, 907, 44152,
+ 14913, 44158, 30229, 44164, 44169, 44179, 44188, 44195, 44201, 44205,
+ 44208, 44215, 44221, 44228, 44234, 44244, 44252, 44258, 44264, 44269,
+ 44273, 44280, 44285, 44291, 44298, 44304, 43469, 44309, 44313, 558,
+ 15029, 44319, 44324, 44327, 44333, 44341, 1380, 44346, 44350, 44355,
+ 44360, 44365, 44372, 44376, 44381, 44387, 44391, 33684, 44396, 44401,
+ 44410, 44417, 44427, 44433, 30273, 44450, 44459, 44467, 44473, 44478,
+ 44485, 44491, 44499, 44508, 44516, 44520, 44525, 44533, 31251, 34497,
+ 44539, 44558, 17257, 44572, 44588, 44602, 44608, 44613, 44618, 44623,
+ 44629, 34503, 44634, 44637, 44644, 44649, 44653, 404, 2995, 44660, 44665,
+ 44670, 29451, 44488, 44674, 44679, 44687, 44691, 44694, 44699, 44705,
+ 44711, 44716, 44720, 30328, 44723, 44728, 44732, 44735, 44740, 44744,
+ 44749, 44754, 44758, 44763, 44767, 44771, 44775, 22848, 22859, 44780,
+ 44785, 44791, 44796, 44802, 29050, 44807, 44811, 22945, 17549, 44814,
+ 44819, 44824, 44829, 44834, 44839, 44844, 44849, 474, 68, 33697, 33702,
+ 33707, 33713, 33718, 33723, 44854, 33727, 44858, 44862, 44866, 33732,
+ 33738, 44880, 33749, 33754, 44888, 44893, 33760, 44898, 44903, 44908,
+ 44913, 44919, 44925, 44931, 33777, 44944, 44953, 44959, 33781, 44963,
+ 33786, 44968, 33791, 33796, 44971, 44976, 44980, 44986, 33332, 44993,
+ 14794, 45000, 45005, 33801, 45009, 45014, 45019, 45024, 45028, 45033,
+ 45038, 45044, 45049, 45054, 45060, 45066, 45071, 45075, 45080, 45085,
+ 45090, 45094, 45099, 45104, 45109, 45115, 45121, 45127, 45132, 45136,
+ 45141, 45145, 33805, 33810, 33815, 45149, 45153, 45157, 33820, 33826,
+ 33832, 33844, 45169, 28059, 45173, 45178, 45182, 45187, 45194, 45199,
+ 45204, 45209, 45213, 45217, 45227, 45232, 45237, 45241, 45245, 45248,
+ 45256, 33892, 45261, 1465, 45267, 45272, 45278, 45286, 45290, 45299,
+ 45303, 45307, 45315, 45321, 45329, 45345, 45349, 45353, 45357, 45362,
+ 45368, 45383, 33929, 1764, 13198, 45387, 1359, 1374, 45399, 45407, 45414,
+ 45419, 45426, 45431, 9922, 1139, 2544, 11213, 45438, 9820, 45443, 45446,
+ 45455, 1267, 45460, 43625, 45467, 45476, 45481, 45485, 45493, 24317,
+ 2596, 45500, 11678, 45510, 45516, 2371, 2381, 45525, 45534, 45544, 45555,
+ 3376, 37099, 45560, 11277, 4019, 18236, 1272, 45564, 45572, 45579, 45584,
+ 45588, 45592, 25792, 43894, 11304, 45600, 45609, 45618, 45626, 45633,
+ 45644, 45649, 45662, 45675, 45687, 45699, 45711, 45722, 45735, 45746,
+ 45757, 45767, 45775, 45783, 45795, 45807, 45818, 45827, 45835, 45842,
+ 45854, 45861, 45867, 45876, 45883, 45896, 45901, 45911, 45916, 45922,
+ 45927, 41086, 45931, 45938, 45942, 45949, 45957, 45964, 2557, 45971,
+ 45982, 45992, 46001, 46009, 46019, 46027, 46037, 46046, 46051, 46057,
+ 46063, 3899, 46074, 46084, 46093, 46102, 46110, 46120, 46128, 46137,
+ 46142, 46147, 46152, 1694, 47, 46160, 46168, 46179, 46190, 17875, 46200,
+ 46204, 46211, 46217, 46222, 46226, 46237, 46247, 46256, 46267, 18275,
+ 18280, 46272, 46281, 46286, 46296, 46301, 46309, 46317, 46324, 46330,
+ 1656, 277, 46334, 46340, 46345, 46348, 2143, 43748, 46356, 46360, 46363,
+ 1510, 46369, 15214, 1277, 46374, 46387, 46401, 2682, 46419, 46431, 46443,
+ 2696, 2713, 46457, 46470, 2728, 46484, 46496, 2743, 46510, 1283, 1289,
+ 1295, 11584, 46515, 46520, 46525, 46529, 46544, 46559, 46574, 46589,
+ 46604, 46619, 46634, 46649, 46664, 46679, 46694, 46709, 46724, 46739,
+ 46754, 46769, 46784, 46799, 46814, 46829, 46844, 46859, 46874, 46889,
+ 46904, 46919, 46934, 46949, 46964, 46979, 46994, 47009, 47024, 47039,
+ 47054, 47069, 47084, 47099, 47114, 47129, 47144, 47159, 47174, 47189,
+ 47204, 47219, 47234, 47249, 47264, 47279, 47294, 47309, 47324, 47339,
+ 47354, 47369, 47384, 47399, 47414, 47429, 47444, 47459, 47474, 47489,
+ 47504, 47519, 47534, 47549, 47564, 47579, 47594, 47609, 47624, 47639,
+ 47654, 47669, 47684, 47699, 47714, 47729, 47744, 47759, 47774, 47789,
+ 47804, 47819, 47834, 47849, 47864, 47879, 47894, 47909, 47924, 47939,
+ 47954, 47969, 47984, 47999, 48014, 48029, 48044, 48059, 48074, 48089,
+ 48104, 48119, 48134, 48149, 48164, 48179, 48194, 48209, 48224, 48239,
+ 48254, 48269, 48284, 48299, 48314, 48329, 48344, 48359, 48374, 48389,
+ 48404, 48419, 48434, 48449, 48464, 48479, 48494, 48509, 48524, 48539,
+ 48554, 48569, 48584, 48599, 48614, 48629, 48644, 48659, 48674, 48689,
+ 48704, 48719, 48734, 48749, 48764, 48779, 48794, 48809, 48824, 48839,
+ 48854, 48869, 48884, 48899, 48914, 48929, 48944, 48959, 48974, 48989,
+ 49004, 49019, 49034, 49049, 49064, 49079, 49094, 49109, 49124, 49139,
+ 49154, 49169, 49184, 49199, 49214, 49229, 49244, 49259, 49274, 49289,
+ 49304, 49319, 49334, 49349, 49364, 49379, 49394, 49409, 49424, 49439,
+ 49454, 49469, 49484, 49499, 49514, 49529, 49544, 49559, 49574, 49589,
+ 49604, 49619, 49634, 49649, 49664, 49679, 49694, 49709, 49724, 49739,
+ 49754, 49769, 49784, 49799, 49814, 49829, 49844, 49859, 49874, 49889,
+ 49904, 49919, 49934, 49949, 49964, 49979, 49994, 50009, 50024, 50039,
+ 50054, 50069, 50084, 50099, 50114, 50129, 50144, 50159, 50174, 50189,
+ 50204, 50219, 50234, 50249, 50264, 50279, 50294, 50309, 50324, 50339,
+ 50354, 50369, 50384, 50399, 50414, 50429, 50444, 50459, 50474, 50489,
+ 50504, 50519, 50534, 50549, 50564, 50579, 50594, 50609, 50624, 50639,
+ 50654, 50669, 50684, 50699, 50714, 50729, 50744, 50759, 50774, 50789,
+ 50804, 50819, 50834, 50849, 50864, 50879, 50894, 50909, 50924, 50939,
+ 50954, 50969, 50984, 50999, 51014, 51029, 51044, 51059, 51074, 51089,
+ 51104, 51119, 51134, 51149, 51164, 51179, 51194, 51209, 51224, 51239,
+ 51254, 51269, 51284, 51299, 51314, 51329, 51344, 51359, 51374, 51389,
+ 51404, 51419, 51434, 51449, 51464, 51479, 51494, 51509, 51524, 51539,
+ 51554, 51569, 51584, 51599, 51614, 51629, 51644, 51659, 51674, 51689,
+ 51704, 51719, 51734, 51749, 51764, 51779, 51794, 51809, 51824, 51839,
+ 51854, 51869, 51884, 51899, 51914, 51929, 51944, 51959, 51974, 51989,
+ 52004, 52019, 52034, 52049, 52064, 52079, 52094, 52109, 52124, 52139,
+ 52154, 52169, 52184, 52199, 52214, 52229, 52244, 52259, 52274, 52289,
+ 52304, 52319, 52334, 52349, 52364, 52379, 52394, 52409, 52424, 52439,
+ 52454, 52469, 52484, 52499, 52514, 52529, 52544, 52559, 52574, 52589,
+ 52604, 52619, 52634, 52649, 52664, 52679, 52694, 52709, 52724, 52739,
+ 52754, 52769, 52784, 52799, 52814, 52829, 52844, 52859, 52874, 52889,
+ 52904, 52919, 52934, 52949, 52964, 52979, 52994, 53009, 53024, 53039,
+ 53054, 53069, 53084, 53099, 53114, 53129, 53144, 53159, 53174, 53189,
+ 53204, 53219, 53234, 53249, 53264, 53279, 53294, 53309, 53324, 53339,
+ 53354, 53369, 53384, 53399, 53414, 53429, 53444, 53459, 53474, 53489,
+ 53504, 53519, 53534, 53549, 53564, 53579, 53594, 53609, 53624, 53639,
+ 53654, 53669, 53684, 53699, 53714, 53729, 53744, 53759, 53774, 53789,
+ 53804, 53819, 53834, 53849, 53864, 53879, 53894, 53909, 53924, 53939,
+ 53954, 53969, 53984, 53999, 54014, 54029, 54044, 54059, 54074, 54089,
+ 54104, 54119, 54134, 54149, 54164, 54179, 54194, 54209, 54224, 54239,
+ 54254, 54269, 54284, 54299, 54314, 54329, 54345, 54361, 54377, 54393,
+ 54409, 54425, 54441, 54457, 54473, 54489, 54505, 54521, 54537, 54553,
+ 54569, 54585, 54601, 54617, 54633, 54649, 54665, 54681, 54697, 54713,
+ 54729, 54745, 54761, 54777, 54793, 54809, 54825, 54841, 54857, 54873,
+ 54889, 54905, 54921, 54937, 54953, 54969, 54985, 55001, 55017, 55033,
+ 55049, 55065, 55081, 55097, 55113, 55129, 55145, 55161, 55177, 55193,
+ 55209, 55225, 55241, 55257, 55273, 55289, 55305, 55321, 55337, 55353,
+ 55369, 55385, 55401, 55417, 55433, 55449, 55465, 55481, 55497, 55513,
+ 55529, 55545, 55561, 55577, 55593, 55609, 55625, 55641, 55657, 55673,
+ 55689, 55705, 55721, 55737, 55753, 55769, 55785, 55801, 55817, 55833,
+ 55849, 55865, 55881, 55897, 55913, 55929, 55945, 55961, 55977, 55993,
+ 56009, 56025, 56041, 56057, 56073, 56089, 56105, 56121, 56137, 56153,
+ 56169, 56185, 56201, 56217, 56233, 56249, 56265, 56281, 56297, 56313,
+ 56329, 56345, 56361, 56377, 56393, 56409, 56425, 56441, 56457, 56473,
+ 56489, 56505, 56521, 56537, 56553, 56569, 56585, 56601, 56617, 56633,
+ 56649, 56665, 56681, 56697, 56713, 56729, 56745, 56761, 56777, 56793,
+ 56809, 56825, 56841, 56857, 56873, 56889, 56905, 56921, 56937, 56953,
+ 56969, 56985, 57001, 57017, 57033, 57049, 57065, 57081, 57097, 57113,
+ 57129, 57145, 57161, 57177, 57193, 57209, 57225, 57241, 57257, 57273,
+ 57289, 57305, 57321, 57337, 57353, 57369, 57385, 57401, 57417, 57433,
+ 57449, 57465, 57481, 57497, 57513, 57529, 57545, 57561, 57577, 57593,
+ 57609, 57625, 57641, 57657, 57673, 57689, 57705, 57721, 57737, 57753,
+ 57769, 57785, 57801, 57817, 57833, 57849, 57865, 57881, 57897, 57913,
+ 57929, 57945, 57961, 57977, 57993, 58009, 58025, 58041, 58057, 58073,
+ 58089, 58105, 58121, 58137, 58153, 58169, 58185, 58201, 58217, 58233,
+ 58249, 58265, 58281, 58297, 58313, 58329, 58345, 58361, 58377, 58393,
+ 58409, 58425, 58441, 58457, 58473, 58489, 58505, 58521, 58537, 58553,
+ 58569, 58585, 58601, 58617, 58633, 58649, 58665, 58681, 58697, 58713,
+ 58729, 58745, 58761, 58777, 58793, 58809, 58825, 58841, 58857, 58873,
+ 58889, 58905, 58921, 58937, 58953, 58969, 58985, 59001, 59017, 59033,
+ 59049, 59065, 59081, 59097, 59113, 59129, 59145, 59161, 59177, 59193,
+ 59209, 59225, 59241, 59257, 59273, 59289, 59305, 59321, 59337, 59353,
+ 59369, 59385, 59401, 59417, 59433, 59449, 59465, 59481, 59497, 59513,
+ 59529, 59545, 59561, 59577, 59593, 59609, 59625, 59641, 59657, 59673,
+ 59689, 59705, 59721, 59737, 59753, 59769, 59785, 59801, 59817, 59833,
+ 59849, 59865, 59881, 59897, 59913, 59929, 59945, 59961, 59977, 59993,
+ 60009, 60025, 60041, 60057, 60073, 60089, 60105, 60121, 60137, 60153,
+ 60169, 60185, 60201, 60217, 60233, 60249, 60265, 60281, 60297, 60313,
+ 60329, 60345, 60361, 60377, 60393, 60409, 60425, 60441, 60457, 60473,
+ 60489, 60505, 60521, 60537, 60553, 60569, 60585, 60601, 60617, 60633,
+ 60649, 60665, 60681, 60697, 60713, 60729, 60745, 60761, 60777, 60793,
+ 60809, 60825, 60841, 60857, 60873, 60889, 60905, 60921, 60937, 60953,
+ 60969, 60985, 61001, 61017, 61033, 61049, 61065, 61081, 61097, 61113,
+ 61129, 61145, 61161, 61177, 61193, 61209, 61225, 61241, 61257, 61273,
+ 61289, 61305, 61321, 61337, 61353, 61369, 61385, 61401, 61417, 61433,
+ 61449, 61465, 61481, 61497, 61513, 61529, 61545, 61561, 61577, 61593,
+ 61609, 61625, 61641, 61657, 61673, 61689, 61705, 61721, 61737, 61753,
+ 61769, 61785, 61801, 61817, 61833, 61849, 61865, 61881, 61897, 61913,
+ 61929, 61945, 61961, 61977, 61993, 62009, 62025, 62041, 62057, 62073,
+ 62089, 62105, 62121, 62137, 62153, 62169, 62185, 62201, 62217, 62233,
+ 62249, 62265, 62281, 62297, 62313, 62329, 62345, 62361, 62377, 62393,
+ 62409, 62425, 62441, 62457, 62473, 62489, 62505, 62521, 62537, 62553,
+ 62569, 62585, 62601, 62617, 62633, 62649, 62665, 62681, 62697, 62713,
+ 62729, 62745, 62761, 62777, 62793, 62809, 62825, 62841, 62857, 62873,
+ 62889, 62905, 62921, 62937, 62953, 62969, 62985, 63001, 63016, 18307,
+ 63025, 63030, 63036, 63042, 63052, 63060, 16270, 16868, 10733, 63073,
+ 1518, 1522, 63081, 3973, 29566, 7512, 63087, 63092, 63097, 63102, 63107,
+ 63113, 63118, 63124, 63129, 63135, 63140, 63145, 63150, 63155, 63161,
+ 63166, 63171, 63176, 63181, 63186, 63191, 63196, 63202, 63207, 63213,
+ 63220, 2600, 63225, 63231, 8912, 63235, 63240, 63247, 63255, 65, 63259,
+ 63265, 63270, 63275, 63279, 63284, 63288, 63292, 11621, 63296, 63306,
+ 63319, 63330, 63343, 63350, 63356, 63364, 63369, 63375, 63381, 63387,
+ 63392, 63397, 63402, 63407, 63411, 63416, 63421, 63426, 63432, 63438,
+ 63444, 63449, 63453, 63458, 63463, 63467, 63472, 63477, 63482, 63486,
+ 11637, 11648, 11653, 1561, 63490, 63496, 1566, 63501, 63504, 17741,
+ 63509, 63515, 63520, 1597, 63526, 1603, 1609, 11683, 63531, 63540, 63548,
+ 63555, 63559, 63563, 63569, 63574, 33365, 63579, 63586, 63593, 63598,
+ 63602, 63606, 63615, 1614, 17850, 63620, 63624, 17861, 1162, 63628,
+ 63635, 63640, 63644, 17891, 1618, 41243, 63647, 63652, 63662, 63671,
+ 63676, 63680, 63686, 1623, 43855, 63691, 63700, 63706, 63711, 63716,
+ 11882, 11888, 63722, 63734, 63751, 63768, 63785, 63802, 63819, 63836,
+ 63853, 63870, 63887, 63904, 63921, 63938, 63955, 63972, 63989, 64006,
+ 64023, 64040, 64057, 64074, 64091, 64108, 64125, 64142, 64159, 64176,
+ 64193, 64210, 64227, 64244, 64261, 64278, 64295, 64312, 64329, 64346,
+ 64363, 64380, 64397, 64414, 64431, 64448, 64465, 64482, 64499, 64516,
+ 64533, 64550, 64567, 64578, 64588, 64593, 1628, 64597, 64602, 64608,
+ 64613, 64618, 64625, 9839, 1633, 64631, 64640, 29887, 64645, 64656,
+ 11899, 64666, 64671, 64677, 64682, 64689, 64695, 64700, 1638, 18174,
+ 64705, 64711, 11909, 1643, 11914, 64717, 64722, 64728, 64733, 64738,
+ 64743, 64748, 64753, 64758, 64763, 64768, 64774, 64780, 64786, 64791,
+ 64795, 64800, 64805, 64809, 64814, 64819, 64824, 64829, 64833, 64838,
+ 64844, 64849, 64854, 64858, 64863, 64868, 64874, 64879, 64884, 64890,
+ 64896, 64901, 64905, 64910, 64915, 64920, 64924, 64929, 64934, 64939,
+ 64945, 64951, 64956, 64960, 64964, 64969, 64974, 64979, 31395, 64983,
+ 64988, 64993, 64999, 65004, 65009, 65013, 65018, 65023, 65029, 65034,
+ 65039, 65045, 65051, 65056, 65060, 65065, 65070, 65074, 65079, 65084,
+ 65089, 65095, 65101, 65106, 65110, 65115, 65120, 65124, 65129, 65134,
+ 65139, 65144, 65148, 65151, 65154, 65159, 65164, 34056, 65171, 65179,
+ 3691, 29837, 65185, 65192, 65198, 3830, 12020, 65204, 65214, 65229,
+ 65237, 12025, 65248, 65253, 65264, 65276, 65288, 65300, 2734, 65312,
+ 65317, 65329, 65333, 65339, 65345, 65350, 1660, 17418, 65359, 65364,
+ 43914, 65368, 65372, 65377, 65381, 18315, 65386, 65389, 65394, 65402,
+ 65410, 1664, 12061, 12067, 1669, 65418, 65425, 65430, 65439, 65449,
+ 65456, 65461, 65466, 1674, 65473, 65478, 18435, 65482, 65487, 65494,
+ 65500, 65504, 65515, 65525, 65532, 18457, 9733, 9740, 4022, 4028, 65539,
+ 1679, 65544, 65550, 65558, 65565, 65571, 65578, 65590, 65596, 65601,
+ 65613, 65624, 65633, 65643, 3952, 65651, 33166, 33175, 18497, 1684, 1688,
+ 65664, 65675, 65680, 1698, 65688, 65693, 65698, 18556, 65710, 65713,
+ 65719, 65725, 65730, 65738, 1703, 65743, 65748, 65756, 65764, 65771,
+ 65780, 65788, 65797, 1708, 65801, 1713, 23016, 65806, 65813, 18630,
+ 65821, 65827, 65832, 65840, 65847, 65855, 65865, 65874, 65884, 65893,
+ 65904, 65914, 65924, 65933, 65943, 65957, 65970, 65979, 65987, 65997,
+ 66006, 66018, 66029, 66040, 66050, 17948, 66055, 12213, 66064, 66070,
+ 66075, 66082, 66089, 66095, 17617, 66105, 66111, 66116, 66127, 66132,
+ 66140, 12230, 12235, 66148, 66154, 66158, 66166, 4017, 18692, 44007,
+ 66171, 66177, 66182, 66190, 66197, 13179, 66202, 66208, 1724, 66213,
+ 66216, 1438, 66222, 66227, 66232, 66238, 66243, 66248, 66253, 66258,
+ 66263, 66268, 1733, 13, 66274, 66278, 66283, 66287, 66291, 66295, 34296,
+ 66300, 25070, 66305, 66310, 66314, 66317, 66321, 66325, 66330, 66334,
+ 66339, 66343, 66349, 37514, 37519, 37524, 66352, 66359, 66365, 66373,
+ 43678, 66383, 37530, 34560, 34311, 34317, 37546, 34323, 66388, 66393,
+ 34593, 66397, 66400, 66404, 66412, 66419, 66422, 66427, 66432, 66436,
+ 66440, 66443, 66453, 66465, 66472, 66478, 34328, 66485, 36078, 66488,
+ 8929, 1019, 66491, 66495, 66500, 3873, 66504, 66507, 14827, 66514, 66521,
+ 66534, 66542, 66551, 66560, 66565, 66575, 66588, 66600, 66607, 66612,
+ 66621, 66634, 39039, 66652, 66657, 66664, 66670, 66675, 819, 66680,
+ 66688, 66695, 66702, 29392, 783, 66708, 66714, 66724, 66732, 66738,
+ 66743, 34347, 6310, 34361, 66747, 66757, 66762, 66772, 66787, 66793,
+ 66799, 34371, 66804, 33482, 66808, 66813, 66820, 66825, 66829, 66834,
+ 18500, 66841, 66846, 66850, 6351, 34397, 66854, 66860, 324, 66870, 66877,
+ 66884, 66889, 66898, 63656, 66904, 66912, 66916, 66920, 66924, 66928,
+ 66933, 66937, 66943, 66951, 66956, 66961, 66966, 66970, 66975, 66979,
+ 66983, 66989, 66995, 67000, 67004, 67009, 34521, 67013, 34527, 34533,
+ 67018, 67024, 67031, 67036, 67040, 33499, 18167, 67043, 67047, 67052,
+ 67059, 67065, 67069, 67074, 43353, 67080, 67084, 67091, 67095, 67100,
+ 67106, 67112, 67118, 67130, 67139, 67149, 67155, 67162, 67167, 67172,
+ 67176, 67179, 67185, 67192, 67197, 67202, 67209, 67216, 67223, 67229,
+ 67234, 67239, 67247, 34538, 2462, 67252, 67257, 67263, 67268, 67274,
+ 67279, 67284, 67289, 67295, 34559, 67300, 67306, 67312, 67318, 34629,
+ 67323, 67328, 67333, 34640, 67338, 67343, 67348, 67354, 67360, 34645,
+ 67365, 67370, 67375, 34700, 34706, 67380, 67385, 34711, 34733, 30136,
+ 34739, 34743, 67390, 12909, 67394, 67402, 67408, 67416, 67423, 67429,
+ 67439, 67445, 67452, 11556, 34757, 67458, 67471, 67480, 67486, 67495,
+ 67501, 25380, 67508, 67515, 67525, 67528, 34701, 67533, 67540, 67545,
+ 67549, 67553, 67558, 67562, 4133, 67567, 67572, 67577, 37608, 37613,
+ 67581, 37627, 67586, 37632, 67591, 67597, 37644, 37650, 37656, 67602,
+ 67608, 24366, 67619, 67622, 67634, 67642, 34780, 67646, 67655, 67665,
+ 67674, 34790, 67679, 67686, 67695, 67701, 67709, 67716, 6402, 4673,
+ 67721, 34712, 67727, 67730, 67736, 67743, 67748, 67753, 25290, 67757,
+ 67763, 67769, 67774, 67779, 67783, 67789, 67795, 35984, 1048, 38689,
+ 40419, 40425, 34821, 34826, 67800, 67804, 67808, 67811, 67824, 67830,
+ 67834, 67837, 67842, 36321, 67846, 33504, 22966, 67852, 6331, 6339, 9570,
+ 67855, 67860, 67865, 67870, 67875, 67880, 67885, 67890, 67895, 67900,
+ 67906, 67911, 67916, 67922, 67927, 67932, 67937, 67942, 67947, 67952,
+ 67958, 67963, 67969, 67974, 67979, 67984, 67989, 67994, 67999, 68004,
+ 68009, 68014, 68019, 68025, 68030, 68035, 68040, 68045, 68050, 68055,
+ 68061, 68066, 68071, 68076, 68081, 68086, 68091, 68096, 68101, 68106,
+ 68112, 68117, 68122, 68127, 68132, 68138, 68144, 68149, 68155, 68160,
+ 68165, 68170, 68175, 68180, 1511, 145, 68185, 68189, 68193, 68197, 27076,
+ 68201, 68205, 68210, 68214, 68219, 68223, 68228, 68233, 68238, 68242,
+ 68246, 68251, 68255, 14542, 68260, 68264, 68271, 68281, 16595, 68290,
+ 68299, 68303, 68308, 68313, 68317, 68321, 26870, 3078, 68325, 68331,
+ 18967, 68335, 68344, 68352, 68358, 68363, 68375, 68387, 68392, 68396,
+ 68401, 68405, 68411, 68417, 68422, 68432, 68442, 68448, 68453, 68457,
+ 68463, 68468, 68475, 68481, 68486, 68495, 68504, 68512, 16993, 68516,
+ 68525, 68533, 68545, 68556, 68567, 68576, 68580, 68589, 68597, 68607,
+ 68615, 68622, 68628, 68633, 68639, 68644, 68655, 54, 33309, 68661, 28331,
+ 28341, 68667, 68675, 68682, 68688, 68692, 68702, 68713, 68721, 68730,
+ 68735, 68740, 68745, 68749, 68753, 18921, 68761, 68765, 68771, 68781,
+ 68788, 68794, 68800, 37707, 68804, 68806, 68809, 68815, 68819, 68830,
+ 68840, 68846, 68853, 68860, 14479, 68868, 68874, 68883, 68892, 68898,
+ 10615, 68904, 68910, 68915, 68920, 68927, 68932, 68939, 68945, 68950,
+ 68958, 68971, 68980, 65919, 65929, 68989, 68995, 69001, 69008, 69015,
+ 69022, 69029, 69036, 69041, 69045, 69049, 69052, 69062, 69066, 69078,
+ 69087, 69091, 69102, 69107, 69111, 65938, 69117, 69124, 69133, 69141,
+ 69149, 69154, 69158, 69163, 69168, 69178, 69186, 69191, 69195, 69199,
+ 69205, 69213, 69220, 69232, 69240, 69251, 69258, 69264, 69274, 69280,
+ 69284, 69291, 69297, 69302, 69306, 69310, 69314, 69323, 69332, 69341,
+ 69347, 69353, 69359, 69364, 69371, 69377, 69385, 69392, 69398, 13622,
+ 69403, 69409, 69413, 15529, 69417, 69422, 69432, 69441, 69447, 69453,
+ 69461, 69468, 69472, 69476, 69482, 69490, 69497, 69503, 69514, 69518,
+ 69522, 69526, 69529, 69535, 69540, 69545, 69549, 69553, 69562, 69570,
+ 69577, 69583, 69590, 25963, 43422, 69595, 69603, 69607, 69611, 69614,
+ 69622, 69629, 69635, 69644, 69652, 69658, 69663, 69667, 69672, 69677,
+ 69681, 69685, 69689, 69694, 69703, 69707, 69714, 40528, 69718, 69724,
+ 69728, 69736, 69742, 69747, 69758, 69766, 69772, 69781, 24513, 69789,
+ 69796, 69803, 69810, 69817, 69824, 46704, 14317, 69831, 69838, 69843,
+ 37743, 6529, 69849, 69854, 69859, 69865, 69871, 69877, 69882, 69887,
+ 69892, 69897, 69903, 69908, 69914, 69919, 69925, 69930, 69935, 69940,
+ 69945, 69950, 69955, 69960, 69966, 69971, 69977, 69982, 69987, 69992,
+ 69997, 70002, 70007, 70013, 70018, 70023, 70028, 70033, 70038, 70043,
+ 70048, 70053, 70058, 70063, 70069, 70074, 70079, 70084, 70089, 70094,
+ 70099, 70104, 70109, 70115, 70120, 70125, 70130, 70135, 70140, 70145,
+ 70150, 70155, 70160, 70165, 70170, 70175, 70181, 1854, 260, 70186, 41361,
+ 70190, 70193, 70198, 70202, 70205, 3415, 70210, 70215, 70219, 70228,
+ 70239, 70256, 70274, 69145, 70282, 70285, 70295, 70302, 70311, 70327,
+ 70336, 70346, 70351, 70361, 70370, 70378, 70392, 70400, 70404, 70407,
+ 70414, 70420, 70431, 70438, 70450, 70461, 70472, 70481, 70488, 1278, 710,
+ 70498, 2629, 70502, 70507, 70516, 9221, 18894, 22471, 70524, 70532,
+ 70546, 70559, 70563, 70568, 70573, 70578, 70584, 70590, 70595, 8921,
+ 16623, 70600, 70604, 70612, 12062, 70617, 70623, 70632, 70640, 1736,
+ 12074, 908, 6465, 70644, 70648, 70657, 70667, 2419, 29127, 70676, 70682,
+ 18407, 29142, 70688, 4193, 12452, 70694, 70701, 65670, 70705, 70709,
+ 70715, 70720, 70725, 3634, 154, 15437, 70730, 70742, 70746, 70752, 70757,
+ 29907, 70761, 12440, 2769, 4, 70766, 70776, 70787, 70793, 70804, 70811,
+ 70817, 70823, 70831, 70838, 70844, 70854, 70864, 70874, 70883, 25367,
+ 1290, 70888, 70892, 70896, 70902, 70906, 2792, 2798, 8918, 2294, 70910,
+ 70914, 70923, 70931, 70942, 70950, 70958, 70964, 70969, 70980, 70991,
+ 70999, 71005, 71010, 10434, 71020, 71028, 71032, 71036, 71041, 71045,
+ 71057, 30314, 16548, 71064, 71074, 71080, 71086, 10536, 71096, 71107,
+ 71118, 71128, 71137, 71141, 71148, 1750, 996, 71158, 71163, 71171, 65483,
+ 71179, 71184, 71195, 71202, 71216, 15366, 478, 71226, 71230, 71234,
+ 71242, 71251, 71259, 71265, 71279, 71286, 71292, 71301, 71308, 71318,
+ 71326, 71333, 71341, 71348, 4024, 149, 71356, 71367, 71371, 71383, 71389,
+ 12633, 192, 71394, 9871, 71399, 71403, 71410, 71416, 71424, 71431, 9280,
+ 71438, 71447, 71455, 4093, 71468, 4110, 71472, 2842, 514, 71477, 71490,
+ 71494, 71499, 2847, 1853, 809, 71503, 4114, 71511, 71517, 71521, 866,
+ 71531, 71540, 71545, 3651, 71549, 16304, 16311, 50066, 71553, 4145, 4034,
+ 14200, 71561, 71568, 71573, 25431, 71577, 71584, 71590, 71595, 71600,
+ 16324, 186, 71605, 71617, 71623, 71631, 2859, 1768, 71639, 71641, 71646,
+ 71651, 71656, 71662, 71667, 71672, 71677, 71682, 71687, 71692, 71698,
+ 71703, 71708, 71713, 71718, 71723, 71728, 71733, 71738, 71744, 71749,
+ 71754, 71759, 71765, 71770, 71776, 71781, 71786, 71791, 71796, 71801,
+ 71806, 71811, 71817, 71822, 71828, 71833, 71838, 71843, 71848, 71853,
+ 71858, 71863, 71868, 71874, 71880, 71885, 71890, 71896, 71901, 71905,
+ 71909, 71914, 71920, 71924, 71930, 71935, 71940, 71946, 71951, 71955,
+ 71960, 71965, 71969, 71972, 71974, 71978, 71981, 71988, 71993, 71997,
+ 72002, 72006, 72010, 72014, 72023, 72027, 35026, 72030, 35031, 72037,
+ 72042, 35036, 72051, 72060, 35042, 72065, 35047, 72074, 72079, 12676,
+ 72083, 72088, 72093, 35052, 72097, 44921, 72101, 72104, 72108, 8589,
+ 72114, 72117, 72122, 72126, 3888, 35057, 72129, 72133, 72136, 72141,
+ 72145, 72151, 72159, 72172, 72181, 72187, 72192, 72198, 72202, 72208,
+ 72214, 72222, 72227, 72231, 72238, 72244, 72252, 72261, 72269, 35060,
+ 72276, 72286, 72299, 72304, 72309, 72313, 72322, 72328, 72335, 72346,
+ 72358, 72365, 72374, 72383, 72392, 72399, 72405, 72412, 72420, 72427,
+ 72435, 72444, 72452, 72459, 72467, 72476, 72484, 72493, 72503, 72512,
+ 72520, 72527, 72535, 72544, 72552, 72561, 72571, 72580, 72588, 72597,
+ 72607, 72616, 72626, 72637, 72647, 72656, 72664, 72671, 72679, 72688,
+ 72696, 72705, 72715, 72724, 72732, 72741, 72751, 72760, 72770, 72781,
+ 72791, 72800, 72808, 72817, 72827, 72836, 72846, 72857, 72867, 72876,
+ 72886, 72897, 72907, 72918, 72930, 72941, 72951, 72960, 72968, 72975,
+ 72983, 72992, 73000, 73009, 73019, 73028, 73036, 73045, 73055, 73064,
+ 73074, 73085, 73095, 73104, 73112, 73121, 73131, 73140, 73150, 73161,
+ 73171, 73180, 73190, 73201, 73211, 73222, 73234, 73245, 73255, 73264,
+ 73272, 73281, 73291, 73300, 73310, 73321, 73331, 73340, 73350, 73361,
+ 73371, 73382, 73394, 73405, 73415, 73424, 73434, 73445, 73455, 73466,
+ 73478, 73489, 73499, 73510, 73522, 73533, 73545, 73558, 73570, 73581,
+ 73591, 73600, 73608, 73615, 73623, 73632, 73640, 73649, 73659, 73668,
+ 73676, 73685, 73695, 73704, 73714, 73725, 73735, 73744, 73752, 73761,
+ 73771, 73780, 73790, 73801, 73811, 73820, 73830, 73841, 73851, 73862,
+ 73874, 73885, 73895, 73904, 73912, 73921, 73931, 73940, 73950, 73961,
+ 73971, 73980, 73990, 74001, 74011, 74022, 74034, 74045, 74055, 74064,
+ 74074, 74085, 74095, 74106, 74118, 74129, 74139, 74150, 74162, 74173,
+ 74185, 74198, 74210, 74221, 74231, 74240, 74248, 74257, 74267, 74276,
+ 74286, 74297, 74307, 74316, 74326, 74337, 74347, 74358, 74370, 74381,
+ 74391, 74400, 74410, 74421, 74431, 74442, 74454, 74465, 74475, 74486,
+ 74498, 74509, 74521, 74534, 74546, 74557, 74567, 74576, 74586, 74597,
+ 74607, 74618, 74630, 74641, 74651, 74662, 74674, 74685, 74697, 74710,
+ 74722, 74733, 74743, 74754, 74766, 74777, 74789, 74802, 74814, 74825,
+ 74837, 74850, 74862, 74875, 74889, 74902, 74914, 74925, 74935, 74944,
+ 74952, 74959, 74964, 8419, 74971, 35070, 74976, 74981, 35075, 74987,
+ 22579, 35080, 74992, 74998, 75006, 75012, 75018, 75025, 75032, 75037,
+ 75041, 75045, 75048, 75052, 75061, 75070, 75078, 75084, 75096, 75107,
+ 75111, 3140, 8394, 75116, 75119, 75121, 75125, 75129, 75133, 75139,
+ 75144, 27990, 75149, 75153, 75156, 75161, 75165, 75172, 75178, 75182,
+ 6485, 75186, 35097, 75191, 75198, 75207, 75215, 75226, 75234, 75243,
+ 75251, 75258, 75265, 75271, 75282, 35102, 75287, 75298, 75310, 75318,
+ 75329, 75338, 75349, 75354, 75362, 2595, 75367, 37166, 75380, 75384,
+ 75396, 75404, 75409, 75417, 75428, 19114, 75437, 75443, 75450, 75458,
+ 75464, 35112, 75469, 4139, 63056, 75476, 75479, 75487, 75500, 75513,
+ 75526, 75539, 75546, 75557, 75566, 75571, 46521, 46526, 75575, 75579,
+ 75587, 75594, 75603, 75611, 75617, 75626, 75634, 75641, 75649, 75653,
+ 75662, 75671, 75681, 75694, 75707, 75717, 35117, 75723, 75730, 75736,
+ 75742, 35123, 75747, 75750, 75754, 75762, 75771, 46259, 75779, 75788,
+ 75796, 75803, 75811, 75821, 75830, 75839, 36420, 75848, 75859, 75874,
+ 75884, 9904, 23263, 75893, 75898, 75903, 75907, 75912, 75916, 75921,
+ 75927, 75932, 75937, 75943, 75948, 75953, 23228, 75958, 75965, 75973,
+ 75981, 75989, 75994, 76001, 76008, 76013, 2272, 76017, 76021, 76029,
+ 76037, 35140, 76043, 76049, 76061, 76067, 76074, 76078, 76085, 76090,
+ 76097, 76103, 76110, 76121, 76131, 76141, 76153, 76159, 76167, 76173,
+ 76183, 76193, 35167, 76202, 76211, 76217, 76229, 76240, 76247, 76252,
+ 76256, 76264, 76270, 76275, 76280, 76287, 76295, 76307, 76317, 76326,
+ 76335, 76342, 37019, 25764, 76348, 76353, 76357, 76361, 76366, 76374,
+ 76380, 76391, 76404, 76409, 76416, 35172, 76421, 76433, 76442, 76450,
+ 76460, 76471, 76484, 76491, 76500, 76509, 76517, 76522, 76528, 1500,
+ 76533, 76538, 76543, 76548, 76554, 76559, 76564, 76570, 76576, 76581,
+ 76585, 76590, 76595, 76600, 63611, 76605, 76610, 76615, 76620, 76626,
+ 76632, 76637, 76641, 76646, 76651, 76656, 76662, 76667, 76673, 76678,
+ 76683, 76688, 76693, 76697, 76703, 76708, 76717, 76722, 76727, 76732,
+ 76737, 76741, 76748, 76754, 4430, 18737, 3105, 76759, 76763, 76768,
+ 76772, 76776, 76780, 50321, 76784, 76709, 76786, 76796, 35181, 76799,
+ 76804, 76813, 76819, 6454, 35186, 76823, 76829, 76834, 76840, 76845,
+ 76849, 76856, 76861, 76871, 76880, 76884, 76890, 76896, 76902, 76906,
+ 76914, 76921, 76929, 76937, 35191, 76944, 76947, 76954, 76960, 76965,
+ 76969, 76975, 76982, 76987, 76991, 77000, 77008, 77014, 77019, 35196,
+ 77026, 77038, 77045, 77051, 77056, 77062, 77069, 77075, 22979, 29589,
+ 77081, 77086, 77092, 77096, 77108, 76742, 76749, 23160, 77118, 77123,
+ 77130, 77136, 77143, 77149, 77160, 77165, 77173, 9609, 77178, 77181,
+ 77187, 77191, 77195, 77198, 77204, 34934, 4431, 1067, 14596, 77211,
+ 77217, 77223, 77229, 77235, 77241, 77247, 77253, 77259, 77264, 77269,
+ 77274, 77279, 77284, 77289, 77294, 77299, 77304, 77309, 77314, 77319,
+ 77324, 77330, 77335, 77340, 77346, 77351, 77356, 77362, 77368, 77374,
+ 77380, 77386, 77392, 77398, 77404, 77410, 77415, 77420, 77426, 77431,
+ 77436, 77442, 77447, 77452, 77457, 77462, 77467, 77472, 77477, 77482,
+ 77487, 77492, 77497, 77502, 77508, 77513, 77518, 77523, 77529, 77534,
+ 77539, 77544, 77549, 77555, 77560, 77565, 77570, 77575, 77580, 77585,
+ 77590, 77595, 77600, 77605, 77610, 77615, 77620, 77625, 77630, 77635,
+ 77640, 77645, 77650, 77656, 77661, 77666, 77671, 77676, 77681, 77686,
+ 77691, 1890, 163, 77696, 77700, 77704, 77709, 77717, 77721, 77728, 77736,
+ 77740, 77753, 77761, 77766, 77771, 28394, 77775, 77780, 77784, 77789,
+ 77793, 77801, 77805, 22587, 77810, 77814, 66162, 77818, 77821, 77829,
+ 77837, 77845, 77850, 77855, 77862, 77869, 77875, 77881, 77886, 77891,
+ 77899, 70551, 77906, 65948, 77911, 77916, 77920, 77927, 65975, 12743,
+ 77933, 77938, 77943, 77947, 77950, 77956, 77960, 77970, 77979, 77983,
+ 77986, 77990, 77997, 78010, 78016, 78024, 78033, 78044, 78055, 78066,
+ 78077, 78086, 78092, 78101, 78109, 78119, 78132, 78140, 78147, 78158,
+ 78164, 78169, 78174, 78180, 78186, 78196, 78203, 78213, 78222, 76423,
+ 78230, 78236, 78244, 78250, 78257, 78265, 78270, 78273, 78277, 78281,
+ 78284, 78290, 78296, 78304, 78316, 78328, 78335, 78340, 78344, 78355,
+ 78363, 78370, 78382, 78390, 78398, 78405, 78411, 78416, 78426, 78435,
+ 78440, 78450, 78459, 45549, 78466, 78470, 78475, 78483, 78490, 78496,
+ 78500, 78510, 78521, 78529, 78536, 78548, 78560, 78569, 75370, 78576,
+ 78586, 78598, 78609, 78623, 78631, 78641, 78648, 78656, 78669, 78681,
+ 78690, 78698, 78708, 78719, 78731, 78740, 78750, 78760, 78769, 78776,
+ 78785, 78800, 78808, 78818, 78827, 78835, 78848, 63026, 78863, 78873,
+ 78882, 78894, 78904, 78916, 78927, 78938, 78949, 78959, 78970, 78978,
+ 78984, 78994, 79002, 79008, 31291, 79013, 79019, 79028, 79040, 79045,
+ 79052, 10448, 19134, 79058, 79067, 79072, 79076, 79083, 79089, 79094,
+ 79099, 79107, 79115, 13119, 79119, 79122, 79124, 79131, 79137, 79148,
+ 79153, 79157, 79164, 79170, 79175, 79183, 71120, 71130, 79189, 79196,
+ 79206, 11543, 79213, 79218, 31506, 79227, 79232, 79239, 79249, 79257,
+ 79265, 79274, 79280, 79286, 79293, 79300, 79305, 79309, 79317, 65992,
+ 79322, 79331, 79339, 79346, 79351, 79355, 79364, 79370, 79373, 79377,
+ 79386, 79396, 77748, 79405, 79409, 79417, 79421, 79427, 79438, 79448,
+ 19143, 79459, 79468, 79476, 79484, 79491, 66011, 9147, 79499, 79503,
+ 79512, 79519, 79522, 29470, 79525, 79529, 79534, 79551, 79563, 11501,
+ 79575, 79580, 79585, 79590, 22669, 79594, 79599, 79604, 79610, 79615,
+ 6122, 79620, 22673, 79625, 79630, 79636, 79643, 79648, 79653, 79659,
+ 79665, 79671, 79676, 79682, 79686, 79700, 79708, 79716, 79722, 79727,
+ 79734, 79744, 79753, 79758, 79763, 79768, 79776, 79781, 79787, 79792,
+ 79801, 64713, 79806, 79809, 79827, 79846, 79859, 79873, 79889, 79896,
+ 79903, 79912, 79919, 79925, 79932, 79937, 79943, 79949, 79957, 79963,
+ 79968, 79973, 79989, 11514, 80003, 80010, 80018, 80024, 80028, 80031,
+ 80036, 80041, 80048, 80053, 80062, 80068, 80073, 80079, 80085, 80094,
+ 80103, 80108, 80112, 80120, 80129, 12772, 80138, 80144, 80152, 80158,
+ 80164, 80170, 80175, 80182, 80188, 12783, 80193, 80196, 80201, 35223,
+ 80211, 80220, 80225, 80231, 80236, 80244, 80251, 80262, 80272, 80277,
+ 80285, 70474, 80290, 80296, 80301, 80308, 80317, 80325, 80329, 80335,
+ 80341, 80348, 80354, 80358, 18518, 3114, 80363, 80367, 80371, 80377,
+ 80386, 80392, 80399, 80403, 80424, 80446, 80462, 80479, 80498, 80507,
+ 80517, 80525, 80532, 80539, 80545, 29342, 80559, 80563, 80569, 80577,
+ 80589, 80595, 80603, 80610, 80615, 80620, 80624, 80632, 80639, 80643,
+ 80649, 80655, 80660, 3730, 46721, 80666, 80670, 80674, 80678, 80683,
+ 80688, 80693, 80699, 80705, 80711, 80718, 80724, 80731, 80737, 80743,
+ 80748, 80754, 80759, 80763, 80768, 80772, 80777, 46736, 80781, 80786,
+ 80794, 80798, 80803, 80810, 80819, 80825, 80834, 80838, 80845, 80849,
+ 80852, 80859, 80865, 80874, 80884, 80889, 80893, 80901, 80910, 80914,
+ 80922, 80928, 80933, 80938, 80944, 80950, 80955, 80959, 80965, 80970,
+ 80974, 80978, 80981, 80986, 80994, 81004, 81010, 81015, 81025, 44031,
+ 81033, 81045, 81049, 81055, 81067, 81078, 81085, 81091, 81098, 81105,
+ 81117, 81124, 81130, 22747, 81134, 81142, 81148, 81155, 81161, 81167,
+ 81173, 81178, 81183, 81188, 81197, 81205, 81216, 7350, 81221, 17967,
+ 81227, 81231, 81235, 81239, 81247, 81256, 81260, 81267, 81276, 81284,
+ 81297, 81303, 80773, 32390, 81308, 81310, 81315, 81320, 81325, 81330,
+ 81335, 81340, 81345, 81350, 81355, 81360, 81365, 81370, 81375, 81380,
+ 81386, 81391, 81396, 81401, 81406, 81411, 81416, 81421, 81426, 81432,
+ 81438, 81444, 81449, 81454, 81466, 81471, 1896, 63, 81476, 81481, 35229,
+ 81485, 35234, 35239, 35245, 35250, 81489, 35255, 23785, 81511, 81515,
+ 81519, 81524, 81528, 35259, 81532, 81540, 81547, 35264, 81553, 81556,
+ 81561, 81565, 81574, 10266, 81582, 35269, 23641, 81585, 81589, 81597,
+ 1412, 81602, 35280, 81605, 81610, 27750, 27760, 38182, 81615, 81620,
+ 81625, 81630, 81636, 81641, 81650, 81655, 81664, 81672, 81679, 81685,
+ 81690, 81695, 81700, 81710, 81719, 81727, 81732, 81740, 81744, 81752,
+ 81756, 81763, 81771, 35088, 41192, 81778, 81784, 81789, 81794, 13154,
+ 30529, 81799, 81804, 81811, 81817, 81822, 81830, 81840, 81850, 81856,
+ 81861, 81867, 19165, 81874, 39052, 81887, 81892, 81898, 33381, 81911,
+ 81917, 81921, 81930, 81939, 81946, 81952, 81960, 81969, 81976, 81982,
+ 81985, 81989, 81993, 27891, 81997, 82004, 82010, 82018, 82023, 82027,
+ 25911, 82033, 82036, 82044, 82051, 82059, 82072, 82086, 82093, 82099,
+ 82106, 82112, 35294, 82116, 82123, 82131, 82139, 82145, 35299, 82153,
+ 82159, 82164, 82174, 82180, 82189, 33183, 37614, 82197, 82202, 82207,
+ 82211, 82216, 82220, 82228, 82233, 16296, 44044, 82237, 82242, 35304,
+ 67547, 82246, 82251, 82255, 82262, 82271, 82275, 82283, 82289, 82294,
+ 82300, 82305, 82312, 82318, 82323, 82328, 82339, 82348, 82360, 82375,
+ 35571, 82381, 18086, 35308, 82385, 82392, 82398, 26027, 82402, 82409,
+ 82418, 82425, 82434, 82440, 82445, 82453, 82459, 35318, 82464, 82473,
+ 81073, 82482, 82489, 82495, 82501, 82510, 82520, 82528, 82535, 82539,
+ 35323, 82542, 35329, 35335, 82547, 82555, 82563, 82573, 82582, 82590,
+ 82597, 82607, 35340, 82611, 82613, 82617, 82622, 82626, 82630, 82636,
+ 82641, 82645, 82656, 82661, 82666, 3119, 82670, 82677, 82681, 82690,
+ 82698, 82705, 82710, 82715, 67598, 82719, 82722, 82728, 82736, 82742,
+ 82746, 82751, 82758, 82763, 82768, 82772, 82778, 82783, 37645, 82787,
+ 82790, 82795, 82799, 82804, 82811, 82816, 82820, 42580, 82828, 27769,
+ 27778, 82834, 82840, 82846, 82851, 82855, 82858, 82868, 82877, 82882,
+ 82888, 82895, 82901, 82905, 82913, 82918, 37651, 77952, 82922, 82930,
+ 82936, 82943, 82948, 82952, 82957, 63242, 82963, 82969, 37657, 82974,
+ 82979, 82983, 82988, 82993, 82998, 83002, 83007, 83012, 83018, 83023,
+ 83028, 83034, 83040, 83045, 83049, 83054, 83059, 83064, 83068, 26026,
+ 83073, 83078, 83084, 83090, 83096, 83101, 83105, 83110, 83115, 83120,
+ 83124, 83129, 83134, 83139, 83144, 46991, 83148, 35348, 83156, 83160,
+ 83168, 83176, 83187, 83192, 83196, 24211, 75473, 83201, 83207, 83212,
+ 83222, 83229, 83234, 83242, 83251, 83256, 83260, 83265, 83273, 83281,
+ 83288, 70736, 83294, 83302, 83309, 83320, 83326, 83332, 35358, 83335,
+ 83342, 83350, 83355, 44247, 83359, 83364, 83371, 83376, 9484, 83380,
+ 83388, 83395, 83402, 83411, 83418, 83424, 83438, 6194, 83446, 83452,
+ 83456, 83459, 83467, 83474, 83479, 83492, 83499, 83505, 83509, 83514,
+ 83521, 83526, 65851, 83531, 83534, 83543, 83550, 83556, 83560, 83563,
+ 83571, 83580, 83590, 83600, 83609, 83620, 83628, 83639, 83644, 83648,
+ 83653, 83657, 38313, 83665, 23042, 38322, 83670, 83675, 83680, 83685,
+ 83690, 83695, 83700, 83704, 83709, 83714, 83719, 83724, 83729, 83734,
+ 83738, 83743, 83748, 83752, 83756, 83760, 83764, 83769, 83774, 83778,
+ 83783, 83787, 83791, 83796, 83801, 83806, 83811, 83815, 83820, 83825,
+ 83829, 83834, 83839, 83844, 83849, 83854, 83859, 83864, 83869, 83874,
+ 83879, 83884, 83889, 83894, 83899, 83904, 83909, 83914, 83919, 83924,
+ 83929, 83933, 83938, 83943, 83948, 83953, 83958, 83963, 83968, 83973,
+ 83978, 83983, 83988, 83992, 83997, 84001, 84006, 84011, 84016, 84021,
+ 84026, 84031, 84036, 84041, 84046, 84050, 84054, 84059, 84064, 84068,
+ 84073, 84078, 84082, 84087, 84092, 84097, 84102, 84106, 84111, 84116,
+ 84120, 84125, 84129, 84133, 84137, 84141, 84146, 84150, 84154, 84158,
+ 84162, 84166, 84170, 84174, 84178, 84182, 84187, 84192, 84197, 84202,
+ 84207, 84212, 84217, 84222, 84227, 84232, 84236, 84240, 84244, 84248,
+ 84252, 84256, 84261, 84265, 84270, 84274, 84279, 84284, 84288, 84292,
+ 84297, 84301, 84305, 84309, 84313, 84317, 84321, 84325, 84329, 84333,
+ 84337, 84341, 84345, 84349, 84353, 84358, 84363, 84367, 84371, 84375,
+ 84379, 84383, 84387, 84392, 84396, 84400, 84404, 84408, 84412, 84416,
+ 84421, 84425, 84430, 84434, 84438, 84442, 84446, 84450, 84454, 84458,
+ 84462, 84466, 84470, 84474, 84479, 84483, 84487, 84491, 84495, 84499,
+ 84503, 84507, 84511, 84515, 84519, 84523, 84528, 84532, 84536, 84541,
+ 84546, 84550, 84554, 84558, 84562, 84566, 84570, 84574, 84578, 84583,
+ 84587, 84592, 84596, 84601, 84605, 84610, 84614, 84620, 84625, 84629,
+ 84634, 84638, 84643, 84647, 84652, 84656, 84661, 1519, 84665, 2873, 1774,
+ 1692, 27705, 84669, 2882, 84673, 1381, 84678, 1323, 84682, 84686, 2899,
+ 84690, 84697, 84704, 84718, 2903, 7452, 84727, 84735, 84742, 84753,
+ 84762, 84769, 84781, 84794, 84807, 84818, 84823, 84830, 84842, 84846,
+ 2907, 12850, 84856, 84861, 84870, 84880, 84885, 2911, 84893, 84897,
+ 84902, 84909, 84915, 84923, 84935, 1328, 14201, 84945, 84949, 84955,
+ 84969, 84981, 84993, 85003, 85012, 85021, 85030, 85038, 85049, 85057,
+ 4292, 85067, 85078, 85087, 85093, 85108, 85115, 85121, 85126, 38447,
+ 85131, 2935, 14205, 85135, 85142, 9409, 85151, 2940, 34796, 85157, 65573,
+ 85164, 85170, 85181, 85187, 85194, 85200, 85208, 85215, 85221, 85232,
+ 85242, 85251, 85262, 85271, 85278, 85284, 85294, 85302, 85308, 85323,
+ 85329, 85334, 85341, 85344, 85350, 85357, 85363, 85371, 85380, 85388,
+ 85394, 85403, 46261, 85417, 85422, 85428, 16072, 85433, 85446, 85458,
+ 85467, 85475, 85482, 85486, 85490, 85493, 85500, 85507, 85515, 85523,
+ 85532, 85540, 15983, 85548, 85553, 85557, 85569, 85576, 85585, 841,
+ 85595, 85604, 85615, 2956, 85619, 85623, 85629, 85642, 85654, 85664,
+ 85673, 85685, 28446, 85696, 85704, 85713, 85724, 85735, 85745, 85755,
+ 85764, 85772, 12364, 85779, 85783, 85786, 85791, 85796, 85800, 85806,
+ 1333, 85813, 85817, 12932, 85821, 85832, 85841, 85849, 85858, 85866,
+ 85882, 85893, 85902, 85910, 85922, 85933, 85949, 85959, 85980, 85994,
+ 86007, 86015, 86022, 7498, 86035, 86040, 86046, 6203, 86052, 86055,
+ 86062, 86072, 8554, 86079, 86084, 86089, 86094, 86102, 86111, 86119,
+ 86124, 86131, 10496, 10505, 86137, 86148, 86153, 86159, 2972, 2977,
+ 86165, 11857, 86171, 86178, 86185, 86198, 2281, 87, 86203, 86208, 86216,
+ 86226, 86235, 86241, 86250, 86258, 86268, 86272, 86276, 86281, 86285,
+ 86297, 3000, 86305, 86313, 86318, 86329, 86340, 86352, 86363, 86373,
+ 86382, 23083, 86387, 86393, 86398, 86408, 86418, 86423, 86429, 86433,
+ 86438, 86447, 23095, 86451, 4384, 24, 86456, 86465, 86472, 86479, 86485,
+ 86491, 1049, 86496, 86501, 66128, 86506, 86511, 86517, 86523, 86531,
+ 86536, 86544, 86551, 86557, 86562, 42464, 46155, 86568, 3004, 32, 86578,
+ 86591, 86596, 86604, 86609, 86615, 3026, 30497, 86620, 86628, 86635,
+ 86640, 86649, 63492, 4018, 67218, 86657, 86661, 1719, 1833, 86666, 86671,
+ 86678, 1837, 280, 86685, 86691, 86696, 3048, 86700, 86705, 86712, 1841,
+ 86717, 86723, 86728, 86740, 6430, 86750, 86757, 1848, 86763, 86768,
+ 86775, 86782, 86797, 86804, 86815, 86820, 86828, 2657, 86832, 86844,
+ 86849, 86853, 86859, 30313, 2286, 86863, 86874, 86878, 86882, 86888,
+ 86892, 86901, 86905, 86916, 86920, 2332, 34613, 86924, 86934, 3139,
+ 86942, 9909, 86951, 86956, 86960, 86969, 86976, 86982, 3109, 16136,
+ 86986, 86999, 87017, 87022, 87030, 87038, 87048, 10768, 14318, 87060,
+ 87073, 87080, 87094, 87101, 87117, 87124, 87130, 23127, 13556, 87137,
+ 87144, 87154, 87163, 46990, 87175, 47125, 87183, 87186, 87192, 87198,
+ 87204, 87210, 87216, 87223, 87230, 87236, 87242, 87248, 87254, 87260,
+ 87266, 87272, 87278, 87284, 87290, 87296, 87302, 87308, 87314, 87320,
+ 87326, 87332, 87338, 87344, 87350, 87356, 87362, 87368, 87374, 87380,
+ 87386, 87392, 87398, 87404, 87410, 87416, 87422, 87428, 87434, 87440,
+ 87446, 87452, 87458, 87464, 87470, 87476, 87482, 87488, 87494, 87500,
+ 87506, 87512, 87518, 87524, 87530, 87536, 87543, 87549, 87556, 87563,
+ 87569, 87576, 87583, 87589, 87595, 87601, 87607, 87613, 87619, 87625,
+ 87631, 87637, 87643, 87649, 87655, 87661, 87667, 87673, 3123, 9882,
+ 87679, 87685, 87693, 87697, 84905, 3127, 87701, 22860, 13189, 3968,
+ 87705, 3133, 87709, 87719, 87725, 87731, 87737, 87743, 87749, 87755,
+ 87761, 87767, 87773, 87779, 87785, 87791, 87797, 87803, 87809, 87815,
+ 87821, 87827, 87833, 87839, 87845, 87851, 87857, 87863, 87869, 87876,
+ 87883, 87889, 87895, 87901, 87907, 87913, 87919, 1338, 87925, 87930,
+ 87935, 87940, 87945, 87950, 87955, 87960, 87965, 87969, 87973, 87977,
+ 87981, 87985, 87989, 87993, 87997, 88001, 88007, 88013, 88019, 88025,
+ 88029, 88033, 88037, 88041, 88045, 88049, 88053, 88057, 88061, 88066,
+ 88071, 88076, 88081, 88086, 88091, 88096, 88101, 88106, 88111, 88116,
+ 88121, 88126, 88131, 88136, 88141, 88146, 88151, 88156, 88161, 88166,
+ 88171, 88176, 88181, 88186, 88191, 88196, 88201, 88206, 88211, 88216,
+ 88221, 88226, 88231, 88236, 88241, 88246, 88251, 88256, 88261, 88266,
+ 88271, 88276, 88281, 88286, 88291, 88296, 88301, 88306, 88311, 88316,
+ 88321, 88326, 88331, 88336, 88341, 88346, 88351, 88356, 88361, 88366,
+ 88371, 88376, 88381, 88386, 88391, 88396, 88401, 88406, 88411, 88416,
+ 88421, 88426, 88431, 88436, 88441, 88446, 88451, 88456, 88461, 88466,
+ 88471, 88476, 88481, 88486, 88491, 88496, 88501, 88506, 88511, 88516,
+ 88521, 88526, 88531, 88536, 88541, 88546, 88551, 88556, 88561, 88566,
+ 88571, 88576, 88581, 88586, 88591, 88596, 88601, 88606, 88611, 88616,
+ 88621, 88626, 88631, 88636, 88641, 88646, 88651, 88656, 88661, 88666,
+ 88671, 88676, 88681, 88686, 88691, 88696, 88701, 88706, 88711, 88716,
+ 88721, 88726, 88731, 88736, 88741, 88746, 88751, 88756, 88761, 88766,
+ 88771, 88776, 88781, 88786, 88791, 88796, 88801, 88806, 88811, 88816,
+ 88821, 88826, 88831, 88836, 88841, 88846, 88851, 88856, 88861, 88866,
+ 88871, 88876, 88881, 88886, 88891, 88896, 88901, 88906, 88911, 88916,
+ 88921, 88926, 88931, 88936, 88941, 88946, 88951, 88957, 88962, 88967,
+ 88972, 88977, 88982, 88987, 88992, 88998, 89003, 89008, 89013, 89018,
+ 89023, 89028, 89033, 89038, 89043, 89048, 89053, 89058, 89063, 89068,
+ 89073, 89078, 89083, 89088, 89093, 89098, 89103, 89108, 89113, 89118,
+ 89123, 89128, 89133, 89138, 89143, 89148, 89153, 89158, 89167, 89172,
+ 89181, 89186, 89195, 89200, 89209, 89214, 89223, 89228, 89237, 89242,
+ 89251, 89256, 89265, 89270, 89275, 89284, 89288, 89297, 89302, 89311,
+ 89316, 89325, 89330, 89339, 89344, 89353, 89358, 89367, 89372, 89381,
+ 89386, 89395, 89400, 89409, 89414, 89423, 89428, 89433, 89438, 89443,
+ 89448, 89453, 89458, 89462, 89467, 89472, 89477, 89482, 89487, 89492,
+ 89498, 89503, 89508, 89513, 89519, 89523, 89528, 89534, 89539, 89544,
+ 89549, 89554, 89559, 89564, 89569, 89574, 89579, 89584, 89590, 89595,
+ 89600, 89605, 89611, 89616, 89621, 89626, 89631, 89637, 89642, 89647,
+ 89652, 89657, 89662, 89668, 89673, 89678, 89683, 89688, 89693, 89698,
+ 89703, 89708, 89713, 89718, 89723, 89728, 89733, 89738, 89743, 89748,
+ 89753, 89758, 89763, 89768, 89773, 89778, 89783, 89789, 89795, 89801,
+ 89806, 89811, 89816, 89821, 89827, 89833, 89839, 89844, 89849, 89854,
+ 89860, 89865, 89870, 89875, 89880, 89885, 89890, 89895, 89900, 89905,
+ 89910, 89915, 89920, 89925, 89930, 89935, 89940, 89946, 89952, 89958,
+ 89963, 89968, 89973, 89978, 89984, 89990, 89996, 90001, 90006, 90011,
+ 90016, 90021, 90026, 90031, 90036, 90041, 17539, 90046, 90052, 90057,
+ 90062, 90067, 90072, 90077, 90083, 90088, 90093, 90098, 90103, 90108,
+ 90114, 90119, 90124, 90129, 90134, 90139, 90144, 90149, 90154, 90159,
+ 90164, 90169, 90174, 90179, 90184, 90189, 90194, 90199, 90204, 90209,
+ 90214, 90219, 90224, 90230, 90235, 90240, 90245, 90250, 90255, 90260,
+ 90265, 90270, 90275, 90280, 90285, 90290, 90295, 90300, 90305, 90310,
+ 90315, 90320, 90325, 90330, 90335, 90340, 90345, 90350, 90355, 90360,
+ 90365, 90370, 90375, 90380, 90385, 90390, 90395, 90400, 90405, 90410,
+ 90415, 90420, 90425, 90430, 90436, 90441, 90446, 90451, 90456, 90461,
+ 90466, 90471, 90476, 90481, 90486, 90491, 90497, 90502, 90508, 90513,
+ 90518, 90523, 90528, 90533, 90538, 90544, 90549, 90554, 90560, 90565,
+ 90570, 90575, 90580, 90585, 90591, 90597, 90602, 90607, 13211, 90612,
+ 90617, 90622, 90627, 90632, 90637, 90642, 90647, 90652, 90657, 90662,
+ 90667, 90672, 90677, 90682, 90687, 90692, 90697, 90702, 90707, 90712,
+ 90717, 90722, 90727, 90732, 90737, 90742, 90747, 90752, 90757, 90762,
+ 90767, 90772, 90777, 90782, 90787, 90792, 90797, 90802, 90807, 90812,
+ 90817, 90822, 90827, 90832, 90837, 90842, 90847, 90852, 90857, 90862,
+ 90867, 90872, 90877, 90882, 90887, 90892, 90897, 90902, 90907, 90912,
+ 90917, 90922, 90927, 90932, 90938, 90943, 90948, 90953, 90958, 90964,
+ 90969, 90974, 90979, 90984, 90989, 90994, 91000, 91005, 91010, 91015,
+ 91020, 91025, 91031, 91036, 91041, 91046, 91051, 91056, 91062, 91067,
+ 91072, 91077, 91082, 91087, 91093, 91099, 91104, 91109, 91114, 91120,
+ 91126, 91132, 91137, 91142, 91148, 91154, 91159, 91165, 91171, 91177,
+ 91182, 91187, 91193, 91198, 91204, 91209, 91215, 91224, 91229, 91234,
+ 91240, 91245, 91251, 91256, 91261, 91266, 91271, 91276, 91281, 91286,
+ 91291, 91296, 91301, 91306, 91311, 91316, 91321, 91326, 91331, 91336,
+ 91341, 91346, 91351, 91356, 91361, 91366, 91371, 91376, 91381, 91386,
+ 91391, 91396, 91401, 91406, 91412, 91418, 91424, 91429, 91434, 91439,
+ 91444, 91449, 91454, 91459, 91464, 91469, 91474, 91479, 91484, 91489,
+ 91494, 91499, 91504, 91509, 91514, 91519, 91524, 91530, 91536, 91541,
+ 91547, 91552, 91557, 91563, 91568, 91574, 91579, 91585, 91590, 91596,
+ 91601, 91607, 91612, 91617, 91622, 91627, 91632, 91637, 91642, 87720,
+ 87726, 87732, 87738, 91648, 87744, 87750, 91654, 87756, 87762, 87768,
+ 87774, 87780, 87786, 87792, 87798, 87804, 91660, 87810, 87816, 87822,
+ 91666, 87828, 87834, 87840, 87846, 91672, 87852, 87858, 87864, 87884,
+ 91678, 91684, 87890, 91690, 87896, 87902, 87908, 87914, 87920, 3150,
+ 3155, 91696, 91701, 91704, 91710, 91716, 91723, 91728, 91733, 2337,
};
/* code->name phrasebook */
-#define phrasebook_shift 7
-#define phrasebook_short 209
+#define phrasebook_shift 8
+#define phrasebook_short 201
static unsigned char phrasebook[] = {
- 0, 219, 20, 245, 39, 79, 224, 1, 79, 54, 50, 247, 140, 50, 225, 185, 50,
- 254, 134, 254, 65, 43, 226, 7, 44, 226, 7, 253, 224, 96, 50, 249, 227,
- 240, 174, 243, 236, 218, 131, 219, 48, 21, 210, 86, 21, 111, 21, 105, 21,
- 158, 21, 161, 21, 190, 21, 195, 21, 199, 21, 196, 21, 201, 249, 234, 220,
- 152, 233, 21, 50, 245, 106, 50, 242, 137, 50, 224, 16, 79, 249, 225, 253,
- 214, 7, 6, 1, 61, 7, 6, 1, 253, 166, 7, 6, 1, 251, 74, 7, 6, 1, 249, 68,
- 7, 6, 1, 76, 7, 6, 1, 245, 14, 7, 6, 1, 243, 209, 7, 6, 1, 242, 67, 7, 6,
- 1, 74, 7, 6, 1, 235, 150, 7, 6, 1, 235, 29, 7, 6, 1, 156, 7, 6, 1, 194,
- 7, 6, 1, 230, 30, 7, 6, 1, 78, 7, 6, 1, 226, 109, 7, 6, 1, 224, 99, 7, 6,
- 1, 153, 7, 6, 1, 222, 93, 7, 6, 1, 217, 153, 7, 6, 1, 69, 7, 6, 1, 214,
- 105, 7, 6, 1, 212, 98, 7, 6, 1, 211, 178, 7, 6, 1, 211, 117, 7, 6, 1,
- 210, 159, 43, 42, 127, 223, 53, 219, 48, 44, 42, 127, 250, 39, 255, 23,
- 121, 232, 219, 242, 144, 255, 23, 7, 4, 1, 61, 7, 4, 1, 253, 166, 7, 4,
- 1, 251, 74, 7, 4, 1, 249, 68, 7, 4, 1, 76, 7, 4, 1, 245, 14, 7, 4, 1,
- 243, 209, 7, 4, 1, 242, 67, 7, 4, 1, 74, 7, 4, 1, 235, 150, 7, 4, 1, 235,
- 29, 7, 4, 1, 156, 7, 4, 1, 194, 7, 4, 1, 230, 30, 7, 4, 1, 78, 7, 4, 1,
- 226, 109, 7, 4, 1, 224, 99, 7, 4, 1, 153, 7, 4, 1, 222, 93, 7, 4, 1, 217,
- 153, 7, 4, 1, 69, 7, 4, 1, 214, 105, 7, 4, 1, 212, 98, 7, 4, 1, 211, 178,
- 7, 4, 1, 211, 117, 7, 4, 1, 210, 159, 43, 249, 107, 127, 67, 232, 219,
- 44, 249, 107, 127, 184, 228, 78, 219, 20, 235, 200, 245, 39, 79, 250,
- 184, 50, 224, 231, 50, 249, 106, 50, 211, 40, 50, 251, 143, 130, 221,
- 175, 50, 248, 9, 249, 171, 50, 244, 144, 226, 158, 235, 245, 233, 48, 52,
- 254, 118, 224, 1, 79, 228, 57, 50, 219, 54, 240, 175, 223, 105, 50, 231,
- 237, 248, 79, 50, 225, 24, 50, 218, 24, 105, 218, 24, 158, 255, 12, 255,
- 23, 230, 233, 50, 225, 71, 50, 230, 229, 247, 128, 250, 191, 218, 24,
- 111, 231, 153, 226, 158, 235, 245, 222, 250, 52, 254, 118, 224, 1, 79,
- 212, 114, 244, 10, 123, 224, 24, 212, 114, 244, 10, 123, 242, 34, 212,
- 114, 244, 10, 134, 224, 22, 235, 200, 224, 16, 79, 7, 6, 1, 116, 2, 242,
- 143, 7, 6, 1, 116, 2, 142, 7, 6, 1, 116, 2, 250, 38, 7, 6, 1, 116, 2,
- 184, 7, 6, 1, 116, 2, 248, 9, 7, 6, 1, 116, 2, 222, 237, 48, 7, 6, 1,
- 254, 252, 7, 6, 1, 251, 75, 2, 250, 191, 7, 6, 1, 160, 2, 242, 143, 7, 6,
- 1, 160, 2, 142, 7, 6, 1, 160, 2, 250, 38, 7, 6, 1, 160, 2, 248, 9, 7, 6,
- 1, 240, 161, 2, 242, 143, 7, 6, 1, 240, 161, 2, 142, 7, 6, 1, 240, 161,
- 2, 250, 38, 7, 6, 1, 240, 161, 2, 248, 9, 7, 6, 1, 245, 67, 7, 6, 1, 230,
- 31, 2, 184, 7, 6, 1, 144, 2, 242, 143, 7, 6, 1, 144, 2, 142, 7, 6, 1,
- 144, 2, 250, 38, 7, 6, 1, 144, 2, 184, 7, 6, 1, 144, 2, 248, 9, 230, 89,
- 50, 7, 6, 1, 144, 2, 91, 7, 6, 1, 104, 2, 242, 143, 7, 6, 1, 104, 2, 142,
- 7, 6, 1, 104, 2, 250, 38, 7, 6, 1, 104, 2, 248, 9, 7, 6, 1, 211, 118, 2,
- 142, 7, 6, 1, 216, 152, 7, 4, 1, 220, 78, 222, 93, 7, 4, 1, 116, 2, 242,
- 143, 7, 4, 1, 116, 2, 142, 7, 4, 1, 116, 2, 250, 38, 7, 4, 1, 116, 2,
- 184, 7, 4, 1, 116, 2, 248, 9, 7, 4, 1, 116, 2, 222, 237, 48, 7, 4, 1,
- 254, 252, 7, 4, 1, 251, 75, 2, 250, 191, 7, 4, 1, 160, 2, 242, 143, 7, 4,
- 1, 160, 2, 142, 7, 4, 1, 160, 2, 250, 38, 7, 4, 1, 160, 2, 248, 9, 7, 4,
- 1, 240, 161, 2, 242, 143, 7, 4, 1, 240, 161, 2, 142, 7, 4, 1, 240, 161,
- 2, 250, 38, 7, 4, 1, 240, 161, 2, 248, 9, 7, 4, 1, 245, 67, 7, 4, 1, 230,
- 31, 2, 184, 7, 4, 1, 144, 2, 242, 143, 7, 4, 1, 144, 2, 142, 7, 4, 1,
- 144, 2, 250, 38, 7, 4, 1, 144, 2, 184, 7, 4, 1, 144, 2, 248, 9, 247, 177,
- 50, 7, 4, 1, 144, 2, 91, 7, 4, 1, 104, 2, 242, 143, 7, 4, 1, 104, 2, 142,
- 7, 4, 1, 104, 2, 250, 38, 7, 4, 1, 104, 2, 248, 9, 7, 4, 1, 211, 118, 2,
- 142, 7, 4, 1, 216, 152, 7, 4, 1, 211, 118, 2, 248, 9, 7, 6, 1, 116, 2,
- 231, 237, 7, 4, 1, 116, 2, 231, 237, 7, 6, 1, 116, 2, 251, 154, 7, 4, 1,
- 116, 2, 251, 154, 7, 6, 1, 116, 2, 226, 228, 7, 4, 1, 116, 2, 226, 228,
- 7, 6, 1, 251, 75, 2, 142, 7, 4, 1, 251, 75, 2, 142, 7, 6, 1, 251, 75, 2,
- 250, 38, 7, 4, 1, 251, 75, 2, 250, 38, 7, 6, 1, 251, 75, 2, 59, 48, 7, 4,
- 1, 251, 75, 2, 59, 48, 7, 6, 1, 251, 75, 2, 250, 242, 7, 4, 1, 251, 75,
- 2, 250, 242, 7, 6, 1, 249, 69, 2, 250, 242, 7, 4, 1, 249, 69, 2, 250,
- 242, 7, 6, 1, 249, 69, 2, 91, 7, 4, 1, 249, 69, 2, 91, 7, 6, 1, 160, 2,
- 231, 237, 7, 4, 1, 160, 2, 231, 237, 7, 6, 1, 160, 2, 251, 154, 7, 4, 1,
- 160, 2, 251, 154, 7, 6, 1, 160, 2, 59, 48, 7, 4, 1, 160, 2, 59, 48, 7, 6,
- 1, 160, 2, 226, 228, 7, 4, 1, 160, 2, 226, 228, 7, 6, 1, 160, 2, 250,
- 242, 7, 4, 1, 160, 2, 250, 242, 7, 6, 1, 243, 210, 2, 250, 38, 7, 4, 1,
- 243, 210, 2, 250, 38, 7, 6, 1, 243, 210, 2, 251, 154, 7, 4, 1, 243, 210,
- 2, 251, 154, 7, 6, 1, 243, 210, 2, 59, 48, 7, 4, 1, 243, 210, 2, 59, 48,
- 7, 6, 1, 243, 210, 2, 250, 191, 7, 4, 1, 243, 210, 2, 250, 191, 7, 6, 1,
- 242, 68, 2, 250, 38, 7, 4, 1, 242, 68, 2, 250, 38, 7, 6, 1, 242, 68, 2,
- 91, 7, 4, 1, 242, 68, 2, 91, 7, 6, 1, 240, 161, 2, 184, 7, 4, 1, 240,
- 161, 2, 184, 7, 6, 1, 240, 161, 2, 231, 237, 7, 4, 1, 240, 161, 2, 231,
- 237, 7, 6, 1, 240, 161, 2, 251, 154, 7, 4, 1, 240, 161, 2, 251, 154, 7,
- 6, 1, 240, 161, 2, 226, 228, 7, 4, 1, 240, 161, 2, 226, 228, 7, 6, 1,
- 240, 161, 2, 59, 48, 7, 4, 1, 247, 127, 74, 7, 6, 27, 236, 38, 7, 4, 27,
- 236, 38, 7, 6, 1, 235, 151, 2, 250, 38, 7, 4, 1, 235, 151, 2, 250, 38, 7,
- 6, 1, 235, 30, 2, 250, 191, 7, 4, 1, 235, 30, 2, 250, 191, 7, 4, 1, 233,
- 245, 7, 6, 1, 233, 155, 2, 142, 7, 4, 1, 233, 155, 2, 142, 7, 6, 1, 233,
- 155, 2, 250, 191, 7, 4, 1, 233, 155, 2, 250, 191, 7, 6, 1, 233, 155, 2,
- 250, 242, 7, 4, 1, 233, 155, 2, 250, 242, 7, 6, 1, 233, 155, 2, 230, 229,
- 247, 128, 7, 4, 1, 233, 155, 2, 230, 229, 247, 128, 7, 6, 1, 233, 155, 2,
- 91, 7, 4, 1, 233, 155, 2, 91, 7, 6, 1, 230, 31, 2, 142, 7, 4, 1, 230, 31,
- 2, 142, 7, 6, 1, 230, 31, 2, 250, 191, 7, 4, 1, 230, 31, 2, 250, 191, 7,
- 6, 1, 230, 31, 2, 250, 242, 7, 4, 1, 230, 31, 2, 250, 242, 7, 4, 1, 230,
- 31, 224, 207, 251, 86, 254, 65, 7, 6, 1, 245, 146, 7, 4, 1, 245, 146, 7,
- 6, 1, 144, 2, 231, 237, 7, 4, 1, 144, 2, 231, 237, 7, 6, 1, 144, 2, 251,
- 154, 7, 4, 1, 144, 2, 251, 154, 7, 6, 1, 144, 2, 52, 142, 7, 4, 1, 144,
- 2, 52, 142, 7, 6, 27, 226, 238, 7, 4, 27, 226, 238, 7, 6, 1, 223, 227, 2,
- 142, 7, 4, 1, 223, 227, 2, 142, 7, 6, 1, 223, 227, 2, 250, 191, 7, 4, 1,
- 223, 227, 2, 250, 191, 7, 6, 1, 223, 227, 2, 250, 242, 7, 4, 1, 223, 227,
- 2, 250, 242, 7, 6, 1, 222, 94, 2, 142, 7, 4, 1, 222, 94, 2, 142, 7, 6, 1,
- 222, 94, 2, 250, 38, 7, 4, 1, 222, 94, 2, 250, 38, 7, 6, 1, 222, 94, 2,
- 250, 191, 7, 4, 1, 222, 94, 2, 250, 191, 7, 6, 1, 222, 94, 2, 250, 242,
- 7, 4, 1, 222, 94, 2, 250, 242, 7, 6, 1, 217, 154, 2, 250, 191, 7, 4, 1,
- 217, 154, 2, 250, 191, 7, 6, 1, 217, 154, 2, 250, 242, 7, 4, 1, 217, 154,
- 2, 250, 242, 7, 6, 1, 217, 154, 2, 91, 7, 4, 1, 217, 154, 2, 91, 7, 6, 1,
- 104, 2, 184, 7, 4, 1, 104, 2, 184, 7, 6, 1, 104, 2, 231, 237, 7, 4, 1,
- 104, 2, 231, 237, 7, 6, 1, 104, 2, 251, 154, 7, 4, 1, 104, 2, 251, 154,
- 7, 6, 1, 104, 2, 222, 237, 48, 7, 4, 1, 104, 2, 222, 237, 48, 7, 6, 1,
- 104, 2, 52, 142, 7, 4, 1, 104, 2, 52, 142, 7, 6, 1, 104, 2, 226, 228, 7,
- 4, 1, 104, 2, 226, 228, 7, 6, 1, 212, 99, 2, 250, 38, 7, 4, 1, 212, 99,
- 2, 250, 38, 7, 6, 1, 211, 118, 2, 250, 38, 7, 4, 1, 211, 118, 2, 250, 38,
- 7, 6, 1, 211, 118, 2, 248, 9, 7, 6, 1, 210, 160, 2, 142, 7, 4, 1, 210,
- 160, 2, 142, 7, 6, 1, 210, 160, 2, 59, 48, 7, 4, 1, 210, 160, 2, 59, 48,
- 7, 6, 1, 210, 160, 2, 250, 242, 7, 4, 1, 210, 160, 2, 250, 242, 7, 4, 1,
- 200, 222, 93, 7, 4, 1, 57, 2, 91, 7, 6, 1, 57, 2, 103, 7, 6, 1, 57, 2,
- 216, 12, 7, 4, 1, 57, 2, 216, 12, 7, 6, 1, 138, 195, 7, 4, 1, 138, 195,
- 7, 6, 1, 204, 78, 7, 6, 1, 251, 75, 2, 103, 7, 4, 1, 251, 75, 2, 103, 7,
- 6, 1, 254, 228, 249, 68, 7, 6, 1, 249, 69, 2, 103, 7, 6, 1, 249, 69, 2,
- 216, 12, 7, 4, 1, 249, 69, 2, 216, 12, 7, 4, 1, 215, 94, 248, 62, 7, 6,
- 1, 223, 52, 76, 7, 6, 1, 221, 197, 7, 6, 1, 204, 76, 7, 6, 1, 245, 15, 2,
- 103, 7, 4, 1, 245, 15, 2, 103, 7, 6, 1, 243, 210, 2, 103, 7, 6, 1, 243,
- 114, 7, 4, 1, 240, 208, 7, 6, 1, 235, 192, 7, 6, 1, 240, 161, 2, 91, 7,
- 6, 1, 235, 30, 2, 103, 7, 4, 1, 235, 30, 2, 103, 7, 4, 1, 233, 155, 2,
- 130, 7, 4, 1, 233, 106, 2, 91, 7, 6, 1, 215, 94, 194, 7, 6, 1, 230, 31,
- 2, 43, 103, 7, 4, 1, 230, 31, 2, 200, 44, 233, 42, 7, 6, 1, 144, 2, 230,
- 229, 184, 7, 6, 1, 144, 2, 240, 255, 7, 4, 1, 144, 2, 240, 255, 7, 6, 1,
- 226, 223, 7, 4, 1, 226, 223, 7, 6, 1, 226, 110, 2, 103, 7, 4, 1, 226,
- 110, 2, 103, 7, 1, 210, 214, 7, 6, 1, 138, 105, 7, 4, 1, 138, 105, 7, 6,
- 1, 245, 83, 7, 1, 223, 52, 245, 84, 232, 129, 7, 4, 1, 217, 154, 2, 226,
- 70, 103, 7, 6, 1, 217, 154, 2, 103, 7, 4, 1, 217, 154, 2, 103, 7, 6, 1,
- 217, 154, 2, 223, 58, 103, 7, 6, 1, 104, 2, 240, 255, 7, 4, 1, 104, 2,
- 240, 255, 7, 6, 1, 214, 157, 7, 6, 1, 214, 106, 2, 103, 7, 6, 1, 211,
- 118, 2, 103, 7, 4, 1, 211, 118, 2, 103, 7, 6, 1, 210, 160, 2, 91, 7, 4,
- 1, 210, 160, 2, 91, 7, 6, 1, 245, 16, 7, 6, 1, 245, 17, 223, 51, 7, 4, 1,
- 245, 17, 223, 51, 7, 4, 1, 245, 17, 2, 217, 78, 7, 1, 113, 2, 91, 7, 6,
- 1, 138, 190, 7, 4, 1, 138, 190, 7, 1, 235, 200, 242, 187, 218, 132, 2,
- 91, 7, 1, 211, 181, 7, 1, 248, 55, 250, 19, 7, 1, 233, 83, 250, 19, 7, 1,
- 254, 145, 250, 19, 7, 1, 223, 58, 250, 19, 7, 6, 1, 246, 48, 2, 250, 242,
- 7, 6, 1, 249, 69, 2, 4, 1, 210, 160, 2, 250, 242, 7, 4, 1, 246, 48, 2,
- 250, 242, 7, 6, 1, 232, 194, 7, 6, 1, 233, 155, 2, 4, 1, 235, 150, 7, 4,
- 1, 232, 194, 7, 6, 1, 228, 191, 7, 6, 1, 230, 31, 2, 4, 1, 235, 150, 7,
- 4, 1, 228, 191, 7, 6, 1, 116, 2, 250, 242, 7, 4, 1, 116, 2, 250, 242, 7,
- 6, 1, 240, 161, 2, 250, 242, 7, 4, 1, 240, 161, 2, 250, 242, 7, 6, 1,
- 144, 2, 250, 242, 7, 4, 1, 144, 2, 250, 242, 7, 6, 1, 104, 2, 250, 242,
- 7, 4, 1, 104, 2, 250, 242, 7, 6, 1, 104, 2, 248, 10, 22, 231, 237, 7, 4,
- 1, 104, 2, 248, 10, 22, 231, 237, 7, 6, 1, 104, 2, 248, 10, 22, 142, 7,
- 4, 1, 104, 2, 248, 10, 22, 142, 7, 6, 1, 104, 2, 248, 10, 22, 250, 242,
- 7, 4, 1, 104, 2, 248, 10, 22, 250, 242, 7, 6, 1, 104, 2, 248, 10, 22,
- 242, 143, 7, 4, 1, 104, 2, 248, 10, 22, 242, 143, 7, 4, 1, 215, 94, 76,
- 7, 6, 1, 116, 2, 248, 10, 22, 231, 237, 7, 4, 1, 116, 2, 248, 10, 22,
- 231, 237, 7, 6, 1, 116, 2, 59, 72, 22, 231, 237, 7, 4, 1, 116, 2, 59, 72,
- 22, 231, 237, 7, 6, 1, 254, 253, 2, 231, 237, 7, 4, 1, 254, 253, 2, 231,
- 237, 7, 6, 1, 243, 210, 2, 91, 7, 4, 1, 243, 210, 2, 91, 7, 6, 1, 243,
- 210, 2, 250, 242, 7, 4, 1, 243, 210, 2, 250, 242, 7, 6, 1, 235, 30, 2,
- 250, 242, 7, 4, 1, 235, 30, 2, 250, 242, 7, 6, 1, 144, 2, 226, 228, 7, 4,
- 1, 144, 2, 226, 228, 7, 6, 1, 144, 2, 226, 229, 22, 231, 237, 7, 4, 1,
- 144, 2, 226, 229, 22, 231, 237, 7, 6, 1, 245, 17, 2, 250, 242, 7, 4, 1,
- 245, 17, 2, 250, 242, 7, 4, 1, 235, 151, 2, 250, 242, 7, 6, 1, 246, 47,
- 7, 6, 1, 249, 69, 2, 4, 1, 210, 159, 7, 4, 1, 246, 47, 7, 6, 1, 243, 210,
- 2, 142, 7, 4, 1, 243, 210, 2, 142, 7, 6, 1, 240, 206, 7, 6, 1, 211, 181,
- 7, 6, 1, 230, 31, 2, 242, 143, 7, 4, 1, 230, 31, 2, 242, 143, 7, 6, 1,
- 116, 2, 222, 237, 72, 22, 142, 7, 4, 1, 116, 2, 222, 237, 72, 22, 142, 7,
- 6, 1, 254, 253, 2, 142, 7, 4, 1, 254, 253, 2, 142, 7, 6, 1, 144, 2, 218,
- 105, 22, 142, 7, 4, 1, 144, 2, 218, 105, 22, 142, 7, 6, 1, 116, 2, 52,
- 242, 143, 7, 4, 1, 116, 2, 52, 242, 143, 7, 6, 1, 116, 2, 235, 200, 251,
- 154, 7, 4, 1, 116, 2, 235, 200, 251, 154, 7, 6, 1, 160, 2, 52, 242, 143,
- 7, 4, 1, 160, 2, 52, 242, 143, 7, 6, 1, 160, 2, 235, 200, 251, 154, 7, 4,
- 1, 160, 2, 235, 200, 251, 154, 7, 6, 1, 240, 161, 2, 52, 242, 143, 7, 4,
- 1, 240, 161, 2, 52, 242, 143, 7, 6, 1, 240, 161, 2, 235, 200, 251, 154,
- 7, 4, 1, 240, 161, 2, 235, 200, 251, 154, 7, 6, 1, 144, 2, 52, 242, 143,
- 7, 4, 1, 144, 2, 52, 242, 143, 7, 6, 1, 144, 2, 235, 200, 251, 154, 7, 4,
- 1, 144, 2, 235, 200, 251, 154, 7, 6, 1, 223, 227, 2, 52, 242, 143, 7, 4,
- 1, 223, 227, 2, 52, 242, 143, 7, 6, 1, 223, 227, 2, 235, 200, 251, 154,
- 7, 4, 1, 223, 227, 2, 235, 200, 251, 154, 7, 6, 1, 104, 2, 52, 242, 143,
- 7, 4, 1, 104, 2, 52, 242, 143, 7, 6, 1, 104, 2, 235, 200, 251, 154, 7, 4,
- 1, 104, 2, 235, 200, 251, 154, 7, 6, 1, 222, 94, 2, 249, 228, 51, 7, 4,
- 1, 222, 94, 2, 249, 228, 51, 7, 6, 1, 217, 154, 2, 249, 228, 51, 7, 4, 1,
- 217, 154, 2, 249, 228, 51, 7, 6, 1, 210, 231, 7, 4, 1, 210, 231, 7, 6, 1,
- 242, 68, 2, 250, 242, 7, 4, 1, 242, 68, 2, 250, 242, 7, 6, 1, 230, 31, 2,
- 200, 44, 233, 42, 7, 4, 1, 249, 69, 2, 249, 108, 7, 6, 1, 226, 138, 7, 4,
- 1, 226, 138, 7, 6, 1, 210, 160, 2, 103, 7, 4, 1, 210, 160, 2, 103, 7, 6,
- 1, 116, 2, 59, 48, 7, 4, 1, 116, 2, 59, 48, 7, 6, 1, 160, 2, 250, 191, 7,
- 4, 1, 160, 2, 250, 191, 7, 6, 1, 144, 2, 248, 10, 22, 231, 237, 7, 4, 1,
- 144, 2, 248, 10, 22, 231, 237, 7, 6, 1, 144, 2, 216, 90, 22, 231, 237, 7,
- 4, 1, 144, 2, 216, 90, 22, 231, 237, 7, 6, 1, 144, 2, 59, 48, 7, 4, 1,
- 144, 2, 59, 48, 7, 6, 1, 144, 2, 59, 72, 22, 231, 237, 7, 4, 1, 144, 2,
- 59, 72, 22, 231, 237, 7, 6, 1, 211, 118, 2, 231, 237, 7, 4, 1, 211, 118,
- 2, 231, 237, 7, 4, 1, 233, 155, 2, 249, 108, 7, 4, 1, 230, 31, 2, 249,
- 108, 7, 4, 1, 217, 154, 2, 249, 108, 7, 4, 1, 247, 127, 235, 150, 7, 4,
- 1, 248, 151, 247, 228, 7, 4, 1, 224, 34, 247, 228, 7, 6, 1, 116, 2, 91,
- 7, 6, 1, 251, 75, 2, 91, 7, 4, 1, 251, 75, 2, 91, 7, 6, 1, 233, 155, 2,
- 130, 7, 6, 1, 217, 154, 2, 248, 7, 91, 7, 4, 1, 222, 94, 2, 217, 251,
- 217, 78, 7, 4, 1, 210, 160, 2, 217, 251, 217, 78, 7, 6, 1, 242, 187, 218,
- 131, 7, 4, 1, 242, 187, 218, 131, 7, 6, 1, 57, 2, 91, 7, 6, 1, 104, 130,
- 7, 6, 1, 215, 94, 214, 105, 7, 6, 1, 160, 2, 91, 7, 4, 1, 160, 2, 91, 7,
- 6, 1, 235, 151, 2, 91, 7, 4, 1, 235, 151, 2, 91, 7, 6, 1, 4, 224, 100, 2,
- 241, 59, 217, 78, 7, 4, 1, 224, 100, 2, 241, 59, 217, 78, 7, 6, 1, 223,
- 227, 2, 91, 7, 4, 1, 223, 227, 2, 91, 7, 6, 1, 211, 118, 2, 91, 7, 4, 1,
- 211, 118, 2, 91, 7, 4, 1, 215, 94, 61, 7, 4, 1, 254, 151, 7, 4, 1, 215,
- 94, 254, 151, 7, 4, 1, 57, 2, 103, 7, 4, 1, 204, 78, 7, 4, 1, 251, 75, 2,
- 249, 108, 7, 4, 1, 249, 69, 2, 217, 78, 7, 4, 1, 249, 69, 2, 103, 7, 4,
- 1, 223, 52, 76, 7, 4, 1, 221, 197, 7, 4, 1, 221, 198, 2, 103, 7, 4, 1,
- 204, 76, 7, 4, 1, 223, 52, 204, 76, 7, 4, 1, 223, 52, 204, 160, 2, 103,
- 7, 4, 1, 250, 8, 223, 52, 204, 76, 7, 4, 1, 247, 127, 235, 151, 2, 91, 7,
- 4, 1, 243, 210, 2, 103, 7, 4, 1, 119, 243, 209, 7, 1, 4, 6, 243, 209, 7,
- 4, 1, 243, 114, 7, 4, 1, 223, 154, 240, 255, 7, 4, 1, 215, 94, 242, 67,
- 7, 4, 1, 242, 68, 2, 103, 7, 4, 1, 241, 215, 2, 103, 7, 4, 1, 240, 161,
- 2, 91, 7, 4, 1, 235, 192, 7, 1, 4, 6, 74, 7, 4, 1, 233, 155, 2, 230, 229,
- 184, 7, 4, 1, 233, 155, 2, 252, 49, 7, 4, 1, 233, 155, 2, 223, 58, 103,
- 7, 4, 1, 233, 7, 7, 4, 1, 215, 94, 194, 7, 4, 1, 215, 94, 232, 55, 2,
- 200, 233, 42, 7, 4, 1, 232, 55, 2, 103, 7, 4, 1, 230, 31, 2, 43, 103, 7,
- 4, 1, 230, 31, 2, 223, 58, 103, 7, 1, 4, 6, 230, 30, 7, 4, 1, 252, 142,
- 78, 7, 1, 4, 6, 226, 238, 7, 4, 1, 250, 8, 226, 205, 7, 4, 1, 225, 136,
- 7, 4, 1, 215, 94, 153, 7, 4, 1, 215, 94, 223, 227, 2, 200, 233, 42, 7, 4,
- 1, 215, 94, 223, 227, 2, 103, 7, 4, 1, 223, 227, 2, 200, 233, 42, 7, 4,
- 1, 223, 227, 2, 217, 78, 7, 4, 1, 223, 227, 2, 244, 95, 7, 4, 1, 223, 52,
- 223, 227, 2, 244, 95, 7, 1, 4, 6, 153, 7, 1, 4, 6, 235, 200, 153, 7, 4,
- 1, 222, 94, 2, 103, 7, 4, 1, 245, 83, 7, 4, 1, 247, 127, 235, 151, 2,
- 218, 105, 22, 103, 7, 4, 1, 218, 233, 223, 52, 245, 83, 7, 4, 1, 245, 84,
- 2, 249, 108, 7, 4, 1, 215, 94, 217, 153, 7, 4, 1, 217, 154, 2, 223, 58,
- 103, 7, 4, 1, 104, 130, 7, 4, 1, 214, 157, 7, 4, 1, 214, 106, 2, 103, 7,
- 4, 1, 215, 94, 214, 105, 7, 4, 1, 215, 94, 212, 98, 7, 4, 1, 215, 94,
- 211, 117, 7, 1, 4, 6, 211, 117, 7, 4, 1, 210, 160, 2, 223, 58, 103, 7, 4,
- 1, 210, 160, 2, 249, 108, 7, 4, 1, 245, 16, 7, 4, 1, 245, 17, 2, 249,
- 108, 7, 1, 242, 187, 218, 131, 7, 1, 225, 142, 213, 135, 244, 1, 7, 1,
- 235, 200, 242, 187, 218, 131, 7, 1, 218, 112, 251, 74, 7, 1, 251, 254,
- 250, 19, 7, 1, 4, 6, 253, 166, 7, 4, 1, 250, 8, 204, 76, 7, 1, 4, 6, 243,
- 210, 2, 103, 7, 1, 4, 6, 242, 67, 7, 4, 1, 235, 151, 2, 249, 135, 7, 4,
- 1, 215, 94, 235, 29, 7, 1, 4, 6, 156, 7, 4, 1, 224, 100, 2, 103, 7, 1,
- 242, 187, 218, 132, 2, 91, 7, 1, 223, 52, 242, 187, 218, 132, 2, 91, 7,
- 4, 1, 246, 48, 247, 228, 7, 4, 1, 248, 34, 247, 228, 7, 4, 1, 246, 48,
- 247, 229, 2, 249, 108, 7, 4, 1, 215, 186, 247, 228, 7, 4, 1, 216, 236,
- 247, 228, 7, 4, 1, 217, 30, 247, 229, 2, 249, 108, 7, 4, 1, 244, 142,
- 247, 228, 7, 4, 1, 232, 105, 247, 228, 7, 4, 1, 232, 56, 247, 228, 7, 1,
- 251, 254, 225, 184, 7, 1, 252, 6, 225, 184, 7, 4, 1, 215, 94, 242, 68, 2,
- 244, 95, 7, 4, 1, 215, 94, 242, 68, 2, 244, 96, 22, 217, 78, 58, 1, 4,
- 242, 67, 58, 1, 4, 242, 68, 2, 103, 58, 1, 4, 235, 150, 58, 1, 4, 153,
- 58, 1, 4, 215, 94, 153, 58, 1, 4, 215, 94, 223, 227, 2, 103, 58, 1, 4, 6,
- 235, 200, 153, 58, 1, 4, 212, 98, 58, 1, 4, 211, 117, 58, 1, 224, 193,
- 58, 1, 52, 224, 193, 58, 1, 215, 94, 249, 227, 58, 1, 254, 65, 58, 1,
- 223, 52, 249, 227, 58, 1, 44, 163, 222, 236, 58, 1, 43, 163, 222, 236,
- 58, 1, 242, 187, 218, 131, 58, 1, 223, 52, 242, 187, 218, 131, 58, 1, 43,
- 254, 1, 58, 1, 44, 254, 1, 58, 1, 120, 254, 1, 58, 1, 124, 254, 1, 58, 1,
- 250, 39, 255, 23, 250, 242, 58, 1, 67, 232, 219, 58, 1, 231, 237, 58, 1,
- 255, 12, 255, 23, 58, 1, 242, 144, 255, 23, 58, 1, 121, 67, 232, 219, 58,
- 1, 121, 231, 237, 58, 1, 121, 242, 144, 255, 23, 58, 1, 121, 255, 12,
- 255, 23, 58, 1, 215, 223, 249, 234, 58, 1, 163, 215, 223, 249, 234, 58,
- 1, 250, 181, 44, 163, 222, 236, 58, 1, 250, 181, 43, 163, 222, 236, 58,
- 1, 120, 217, 88, 58, 1, 124, 217, 88, 58, 1, 96, 50, 58, 1, 230, 187, 50,
- 251, 154, 59, 48, 222, 237, 48, 226, 228, 4, 184, 52, 255, 12, 255, 23,
- 58, 1, 223, 39, 103, 58, 1, 249, 139, 255, 23, 58, 1, 4, 243, 114, 58, 1,
- 4, 156, 58, 1, 4, 222, 93, 58, 1, 4, 211, 178, 58, 1, 4, 223, 52, 242,
- 187, 218, 131, 58, 1, 245, 28, 138, 130, 58, 1, 125, 138, 130, 58, 1,
- 230, 230, 138, 130, 58, 1, 121, 138, 130, 58, 1, 245, 27, 138, 130, 58,
- 1, 210, 254, 248, 52, 138, 79, 58, 1, 211, 70, 248, 52, 138, 79, 58, 1,
- 213, 133, 58, 1, 214, 186, 58, 1, 52, 254, 65, 58, 1, 121, 124, 254, 1,
- 58, 1, 121, 120, 254, 1, 58, 1, 121, 43, 254, 1, 58, 1, 121, 44, 254, 1,
- 58, 1, 121, 222, 236, 58, 1, 230, 229, 242, 144, 255, 23, 58, 1, 230,
- 229, 52, 242, 144, 255, 23, 58, 1, 230, 229, 52, 255, 12, 255, 23, 58, 1,
- 121, 184, 58, 1, 223, 160, 249, 234, 58, 1, 252, 66, 125, 216, 31, 58, 1,
- 245, 151, 125, 216, 31, 58, 1, 252, 66, 121, 216, 31, 58, 1, 245, 151,
- 121, 216, 31, 58, 1, 220, 56, 58, 1, 204, 220, 56, 58, 1, 121, 43, 75,
- 38, 242, 144, 255, 23, 38, 255, 12, 255, 23, 38, 250, 39, 255, 23, 38,
- 184, 38, 231, 237, 38, 226, 123, 38, 251, 154, 38, 59, 48, 38, 248, 9,
- 38, 241, 59, 48, 38, 222, 237, 48, 38, 52, 255, 12, 255, 23, 38, 250,
- 242, 38, 67, 232, 220, 48, 38, 52, 67, 232, 220, 48, 38, 52, 242, 144,
- 255, 23, 38, 251, 7, 38, 235, 200, 251, 154, 38, 215, 94, 249, 228, 48,
- 38, 249, 228, 48, 38, 223, 52, 249, 228, 48, 38, 249, 228, 72, 222, 254,
- 38, 242, 144, 255, 24, 51, 38, 255, 12, 255, 24, 51, 38, 43, 217, 89, 51,
- 38, 44, 217, 89, 51, 38, 43, 254, 118, 48, 38, 240, 255, 38, 43, 163,
- 222, 237, 51, 38, 120, 217, 89, 51, 38, 124, 217, 89, 51, 38, 96, 5, 51,
- 38, 230, 187, 5, 51, 38, 226, 68, 241, 59, 51, 38, 223, 58, 241, 59, 51,
- 38, 59, 51, 38, 248, 10, 51, 38, 222, 237, 51, 38, 249, 228, 51, 38, 250,
- 191, 38, 226, 228, 38, 67, 232, 220, 51, 38, 251, 148, 51, 38, 235, 200,
- 52, 254, 32, 51, 38, 250, 243, 51, 38, 250, 39, 255, 24, 51, 38, 251,
- 155, 51, 38, 235, 200, 251, 155, 51, 38, 216, 90, 51, 38, 231, 238, 51,
- 38, 121, 232, 219, 38, 52, 121, 232, 219, 38, 216, 90, 226, 124, 38, 219,
- 253, 218, 105, 226, 124, 38, 200, 218, 105, 226, 124, 38, 219, 253, 219,
- 49, 226, 124, 38, 200, 219, 49, 226, 124, 38, 44, 163, 222, 237, 51, 38,
- 235, 200, 251, 148, 51, 38, 42, 51, 38, 221, 182, 51, 38, 211, 179, 48,
- 38, 67, 184, 38, 52, 226, 123, 38, 242, 144, 138, 79, 38, 255, 12, 138,
- 79, 38, 26, 225, 178, 38, 26, 234, 8, 38, 26, 248, 4, 216, 19, 38, 26,
- 210, 219, 38, 251, 148, 48, 38, 245, 106, 5, 51, 38, 52, 67, 232, 220,
- 51, 38, 43, 254, 118, 51, 38, 228, 57, 216, 90, 48, 38, 241, 65, 48, 38,
- 254, 156, 128, 216, 43, 48, 38, 43, 44, 80, 51, 38, 214, 153, 80, 51, 38,
- 242, 149, 235, 69, 38, 44, 254, 2, 48, 38, 43, 163, 222, 237, 48, 38,
- 244, 139, 38, 211, 179, 51, 38, 43, 254, 2, 51, 38, 44, 254, 2, 51, 38,
- 44, 254, 2, 22, 120, 254, 2, 51, 38, 44, 163, 222, 237, 48, 38, 59, 72,
- 222, 254, 38, 253, 225, 51, 38, 52, 222, 237, 51, 38, 210, 35, 48, 38,
- 52, 251, 155, 51, 38, 52, 251, 154, 38, 52, 231, 237, 38, 52, 231, 238,
- 51, 38, 52, 184, 38, 52, 235, 200, 251, 154, 38, 52, 97, 80, 51, 38, 7,
- 4, 1, 61, 38, 7, 4, 1, 76, 38, 7, 4, 1, 74, 38, 7, 4, 1, 78, 38, 7, 4, 1,
- 69, 38, 7, 4, 1, 251, 74, 38, 7, 4, 1, 249, 68, 38, 7, 4, 1, 242, 67, 38,
- 7, 4, 1, 194, 38, 7, 4, 1, 153, 38, 7, 4, 1, 217, 153, 38, 7, 4, 1, 214,
- 105, 38, 7, 4, 1, 211, 178, 26, 6, 1, 241, 203, 26, 4, 1, 241, 203, 26,
- 6, 1, 254, 31, 221, 248, 26, 4, 1, 254, 31, 221, 248, 26, 227, 202, 50,
- 26, 232, 114, 227, 202, 50, 26, 6, 1, 226, 55, 247, 235, 26, 4, 1, 226,
- 55, 247, 235, 26, 210, 219, 26, 4, 223, 52, 232, 88, 219, 180, 87, 26, 4,
- 246, 126, 232, 88, 219, 180, 87, 26, 4, 223, 52, 246, 126, 232, 88, 219,
- 180, 87, 26, 224, 16, 79, 26, 216, 19, 26, 248, 4, 216, 19, 26, 6, 1,
- 254, 152, 2, 216, 19, 26, 254, 105, 217, 3, 26, 6, 1, 245, 109, 2, 216,
- 19, 26, 6, 1, 245, 72, 2, 216, 19, 26, 6, 1, 235, 193, 2, 216, 19, 26, 6,
- 1, 226, 204, 2, 216, 19, 26, 6, 1, 214, 158, 2, 216, 19, 26, 6, 1, 226,
- 206, 2, 216, 19, 26, 4, 1, 235, 193, 2, 248, 4, 22, 216, 19, 26, 6, 1,
- 254, 151, 26, 6, 1, 252, 34, 26, 6, 1, 243, 114, 26, 6, 1, 248, 62, 26,
- 6, 1, 245, 108, 26, 6, 1, 210, 85, 26, 6, 1, 245, 71, 26, 6, 1, 216, 180,
- 26, 6, 1, 235, 192, 26, 6, 1, 234, 228, 26, 6, 1, 233, 104, 26, 6, 1,
- 230, 107, 26, 6, 1, 227, 242, 26, 6, 1, 211, 157, 26, 6, 1, 226, 203, 26,
- 6, 1, 225, 111, 26, 6, 1, 223, 40, 26, 6, 1, 219, 179, 26, 6, 1, 217, 42,
- 26, 6, 1, 214, 157, 26, 6, 1, 225, 136, 26, 6, 1, 250, 118, 26, 6, 1,
- 224, 164, 26, 6, 1, 226, 205, 26, 6, 1, 235, 193, 2, 248, 3, 26, 6, 1,
- 214, 158, 2, 248, 3, 26, 4, 1, 254, 152, 2, 216, 19, 26, 4, 1, 245, 109,
- 2, 216, 19, 26, 4, 1, 245, 72, 2, 216, 19, 26, 4, 1, 235, 193, 2, 216,
- 19, 26, 4, 1, 214, 158, 2, 248, 4, 22, 216, 19, 26, 4, 1, 254, 151, 26,
- 4, 1, 252, 34, 26, 4, 1, 243, 114, 26, 4, 1, 248, 62, 26, 4, 1, 245, 108,
- 26, 4, 1, 210, 85, 26, 4, 1, 245, 71, 26, 4, 1, 216, 180, 26, 4, 1, 235,
- 192, 26, 4, 1, 234, 228, 26, 4, 1, 233, 104, 26, 4, 1, 230, 107, 26, 4,
- 1, 227, 242, 26, 4, 1, 211, 157, 26, 4, 1, 226, 203, 26, 4, 1, 225, 111,
- 26, 4, 1, 223, 40, 26, 4, 1, 40, 219, 179, 26, 4, 1, 219, 179, 26, 4, 1,
- 217, 42, 26, 4, 1, 214, 157, 26, 4, 1, 225, 136, 26, 4, 1, 250, 118, 26,
- 4, 1, 224, 164, 26, 4, 1, 226, 205, 26, 4, 1, 235, 193, 2, 248, 3, 26, 4,
- 1, 214, 158, 2, 248, 3, 26, 4, 1, 226, 204, 2, 216, 19, 26, 4, 1, 214,
- 158, 2, 216, 19, 26, 4, 1, 226, 206, 2, 216, 19, 26, 6, 234, 253, 87, 26,
- 252, 35, 87, 26, 216, 181, 87, 26, 214, 158, 2, 241, 59, 87, 26, 214,
- 158, 2, 255, 12, 22, 241, 59, 87, 26, 214, 158, 2, 248, 10, 22, 241, 59,
- 87, 26, 225, 137, 87, 26, 225, 112, 87, 26, 234, 253, 87, 26, 1, 254, 31,
- 234, 12, 26, 4, 1, 254, 31, 234, 12, 26, 1, 218, 139, 26, 4, 1, 218, 139,
- 26, 1, 247, 235, 26, 4, 1, 247, 235, 26, 1, 234, 12, 26, 4, 1, 234, 12,
- 26, 1, 221, 248, 26, 4, 1, 221, 248, 81, 6, 1, 220, 57, 81, 4, 1, 220,
- 57, 81, 6, 1, 244, 148, 81, 4, 1, 244, 148, 81, 6, 1, 234, 123, 81, 4, 1,
- 234, 123, 81, 6, 1, 241, 52, 81, 4, 1, 241, 52, 81, 6, 1, 243, 109, 81,
- 4, 1, 243, 109, 81, 6, 1, 220, 24, 81, 4, 1, 220, 24, 81, 6, 1, 248, 77,
- 81, 4, 1, 248, 77, 26, 234, 229, 87, 26, 223, 41, 87, 26, 232, 88, 219,
- 180, 87, 26, 1, 210, 224, 26, 6, 216, 181, 87, 26, 232, 88, 245, 109, 87,
- 26, 223, 52, 232, 88, 245, 109, 87, 26, 6, 1, 220, 9, 26, 4, 1, 220, 9,
- 26, 6, 232, 88, 219, 180, 87, 26, 6, 1, 221, 245, 26, 4, 1, 221, 245, 26,
- 223, 41, 2, 218, 105, 87, 26, 6, 223, 52, 232, 88, 219, 180, 87, 26, 6,
- 246, 126, 232, 88, 219, 180, 87, 26, 6, 223, 52, 246, 126, 232, 88, 219,
- 180, 87, 33, 6, 1, 236, 68, 2, 242, 143, 33, 6, 1, 235, 196, 33, 6, 1,
- 247, 170, 33, 6, 1, 242, 194, 33, 6, 1, 214, 202, 236, 67, 33, 6, 1, 246,
- 44, 33, 6, 1, 251, 84, 74, 33, 6, 1, 211, 8, 33, 6, 1, 235, 132, 33, 6,
- 1, 232, 193, 33, 6, 1, 228, 183, 33, 6, 1, 215, 175, 33, 6, 1, 234, 54,
- 33, 6, 1, 240, 161, 2, 242, 143, 33, 6, 1, 219, 253, 69, 33, 6, 1, 246,
- 40, 33, 6, 1, 61, 33, 6, 1, 252, 83, 33, 6, 1, 213, 255, 33, 6, 1, 242,
- 243, 33, 6, 1, 248, 98, 33, 6, 1, 236, 67, 33, 6, 1, 210, 74, 33, 6, 1,
- 210, 94, 33, 6, 1, 74, 33, 6, 1, 219, 253, 74, 33, 6, 1, 176, 33, 6, 1,
- 245, 182, 33, 6, 1, 245, 167, 33, 6, 1, 245, 158, 33, 6, 1, 78, 33, 6, 1,
- 225, 224, 33, 6, 1, 245, 100, 33, 6, 1, 245, 90, 33, 6, 1, 217, 23, 33,
- 6, 1, 69, 33, 6, 1, 245, 210, 33, 6, 1, 162, 33, 6, 1, 215, 179, 33, 6,
- 1, 250, 139, 33, 6, 1, 220, 104, 33, 6, 1, 220, 67, 33, 6, 1, 242, 10,
- 50, 33, 6, 1, 211, 27, 33, 6, 1, 219, 54, 50, 33, 6, 1, 76, 33, 6, 1,
- 210, 212, 33, 6, 1, 192, 33, 4, 1, 61, 33, 4, 1, 252, 83, 33, 4, 1, 213,
- 255, 33, 4, 1, 242, 243, 33, 4, 1, 248, 98, 33, 4, 1, 236, 67, 33, 4, 1,
- 210, 74, 33, 4, 1, 210, 94, 33, 4, 1, 74, 33, 4, 1, 219, 253, 74, 33, 4,
- 1, 176, 33, 4, 1, 245, 182, 33, 4, 1, 245, 167, 33, 4, 1, 245, 158, 33,
- 4, 1, 78, 33, 4, 1, 225, 224, 33, 4, 1, 245, 100, 33, 4, 1, 245, 90, 33,
- 4, 1, 217, 23, 33, 4, 1, 69, 33, 4, 1, 245, 210, 33, 4, 1, 162, 33, 4, 1,
- 215, 179, 33, 4, 1, 250, 139, 33, 4, 1, 220, 104, 33, 4, 1, 220, 67, 33,
- 4, 1, 242, 10, 50, 33, 4, 1, 211, 27, 33, 4, 1, 219, 54, 50, 33, 4, 1,
- 76, 33, 4, 1, 210, 212, 33, 4, 1, 192, 33, 4, 1, 236, 68, 2, 242, 143,
- 33, 4, 1, 235, 196, 33, 4, 1, 247, 170, 33, 4, 1, 242, 194, 33, 4, 1,
- 214, 202, 236, 67, 33, 4, 1, 246, 44, 33, 4, 1, 251, 84, 74, 33, 4, 1,
- 211, 8, 33, 4, 1, 235, 132, 33, 4, 1, 232, 193, 33, 4, 1, 228, 183, 33,
- 4, 1, 215, 175, 33, 4, 1, 234, 54, 33, 4, 1, 240, 161, 2, 242, 143, 33,
- 4, 1, 219, 253, 69, 33, 4, 1, 246, 40, 33, 6, 1, 226, 205, 33, 4, 1, 226,
- 205, 33, 6, 1, 211, 59, 33, 4, 1, 211, 59, 33, 6, 1, 235, 190, 76, 33, 4,
- 1, 235, 190, 76, 33, 6, 1, 232, 198, 210, 183, 33, 4, 1, 232, 198, 210,
- 183, 33, 6, 1, 235, 190, 232, 198, 210, 183, 33, 4, 1, 235, 190, 232,
- 198, 210, 183, 33, 6, 1, 252, 1, 210, 183, 33, 4, 1, 252, 1, 210, 183,
- 33, 6, 1, 235, 190, 252, 1, 210, 183, 33, 4, 1, 235, 190, 252, 1, 210,
- 183, 33, 6, 1, 233, 239, 33, 4, 1, 233, 239, 33, 6, 1, 224, 164, 33, 4,
- 1, 224, 164, 33, 6, 1, 244, 90, 33, 4, 1, 244, 90, 33, 6, 1, 235, 152,
- 33, 4, 1, 235, 152, 33, 6, 1, 235, 153, 2, 52, 242, 144, 255, 23, 33, 4,
- 1, 235, 153, 2, 52, 242, 144, 255, 23, 33, 6, 1, 214, 205, 33, 4, 1, 214,
- 205, 33, 6, 1, 222, 187, 226, 205, 33, 4, 1, 222, 187, 226, 205, 33, 6,
- 1, 226, 206, 2, 216, 66, 33, 4, 1, 226, 206, 2, 216, 66, 33, 6, 1, 226,
- 144, 33, 4, 1, 226, 144, 33, 6, 1, 234, 12, 33, 4, 1, 234, 12, 33, 216,
- 147, 50, 38, 33, 216, 66, 38, 33, 226, 69, 38, 33, 248, 162, 225, 21, 38,
- 33, 224, 158, 225, 21, 38, 33, 225, 6, 38, 33, 240, 218, 216, 147, 50,
- 38, 33, 230, 196, 50, 33, 6, 1, 219, 253, 240, 161, 2, 217, 78, 33, 4, 1,
- 219, 253, 240, 161, 2, 217, 78, 33, 6, 1, 220, 148, 50, 33, 4, 1, 220,
- 148, 50, 33, 6, 1, 245, 101, 2, 216, 115, 33, 4, 1, 245, 101, 2, 216,
- 115, 33, 6, 1, 242, 244, 2, 214, 156, 33, 4, 1, 242, 244, 2, 214, 156,
- 33, 6, 1, 242, 244, 2, 91, 33, 4, 1, 242, 244, 2, 91, 33, 6, 1, 242, 244,
- 2, 230, 229, 103, 33, 4, 1, 242, 244, 2, 230, 229, 103, 33, 6, 1, 210,
- 75, 2, 248, 47, 33, 4, 1, 210, 75, 2, 248, 47, 33, 6, 1, 210, 95, 2, 248,
- 47, 33, 4, 1, 210, 95, 2, 248, 47, 33, 6, 1, 235, 19, 2, 248, 47, 33, 4,
- 1, 235, 19, 2, 248, 47, 33, 6, 1, 235, 19, 2, 67, 91, 33, 4, 1, 235, 19,
- 2, 67, 91, 33, 6, 1, 235, 19, 2, 91, 33, 4, 1, 235, 19, 2, 91, 33, 6, 1,
- 252, 132, 176, 33, 4, 1, 252, 132, 176, 33, 6, 1, 245, 159, 2, 248, 47,
- 33, 4, 1, 245, 159, 2, 248, 47, 33, 6, 27, 245, 159, 242, 243, 33, 4, 27,
- 245, 159, 242, 243, 33, 6, 1, 225, 225, 2, 230, 229, 103, 33, 4, 1, 225,
- 225, 2, 230, 229, 103, 33, 6, 1, 255, 29, 162, 33, 4, 1, 255, 29, 162,
- 33, 6, 1, 245, 91, 2, 248, 47, 33, 4, 1, 245, 91, 2, 248, 47, 33, 6, 1,
- 217, 24, 2, 248, 47, 33, 4, 1, 217, 24, 2, 248, 47, 33, 6, 1, 218, 123,
- 69, 33, 4, 1, 218, 123, 69, 33, 6, 1, 218, 123, 104, 2, 91, 33, 4, 1,
- 218, 123, 104, 2, 91, 33, 6, 1, 242, 56, 2, 248, 47, 33, 4, 1, 242, 56,
- 2, 248, 47, 33, 6, 27, 217, 24, 215, 179, 33, 4, 27, 217, 24, 215, 179,
- 33, 6, 1, 250, 140, 2, 248, 47, 33, 4, 1, 250, 140, 2, 248, 47, 33, 6, 1,
- 250, 140, 2, 67, 91, 33, 4, 1, 250, 140, 2, 67, 91, 33, 6, 1, 220, 35,
- 33, 4, 1, 220, 35, 33, 6, 1, 255, 29, 250, 139, 33, 4, 1, 255, 29, 250,
- 139, 33, 6, 1, 255, 29, 250, 140, 2, 248, 47, 33, 4, 1, 255, 29, 250,
- 140, 2, 248, 47, 33, 1, 226, 62, 33, 6, 1, 210, 75, 2, 251, 154, 33, 4,
- 1, 210, 75, 2, 251, 154, 33, 6, 1, 235, 19, 2, 103, 33, 4, 1, 235, 19, 2,
- 103, 33, 6, 1, 245, 183, 2, 217, 78, 33, 4, 1, 245, 183, 2, 217, 78, 33,
- 6, 1, 245, 159, 2, 103, 33, 4, 1, 245, 159, 2, 103, 33, 6, 1, 245, 159,
- 2, 217, 78, 33, 4, 1, 245, 159, 2, 217, 78, 33, 6, 1, 234, 133, 250, 139,
- 33, 4, 1, 234, 133, 250, 139, 33, 6, 1, 245, 168, 2, 217, 78, 33, 4, 1,
- 245, 168, 2, 217, 78, 33, 4, 1, 226, 62, 33, 6, 1, 116, 2, 251, 154, 33,
- 4, 1, 116, 2, 251, 154, 33, 6, 1, 116, 2, 248, 9, 33, 4, 1, 116, 2, 248,
- 9, 33, 6, 27, 116, 236, 67, 33, 4, 27, 116, 236, 67, 33, 6, 1, 236, 68,
- 2, 251, 154, 33, 4, 1, 236, 68, 2, 251, 154, 33, 6, 1, 221, 197, 33, 4,
- 1, 221, 197, 33, 6, 1, 221, 198, 2, 248, 9, 33, 4, 1, 221, 198, 2, 248,
- 9, 33, 6, 1, 210, 75, 2, 248, 9, 33, 4, 1, 210, 75, 2, 248, 9, 33, 6, 1,
- 210, 95, 2, 248, 9, 33, 4, 1, 210, 95, 2, 248, 9, 33, 6, 1, 255, 29, 246,
- 44, 33, 4, 1, 255, 29, 246, 44, 33, 6, 1, 240, 161, 2, 231, 237, 33, 4,
- 1, 240, 161, 2, 231, 237, 33, 6, 1, 240, 161, 2, 248, 9, 33, 4, 1, 240,
- 161, 2, 248, 9, 33, 6, 1, 144, 2, 248, 9, 33, 4, 1, 144, 2, 248, 9, 33,
- 6, 1, 252, 142, 78, 33, 4, 1, 252, 142, 78, 33, 6, 1, 252, 142, 144, 2,
- 248, 9, 33, 4, 1, 252, 142, 144, 2, 248, 9, 33, 6, 1, 160, 2, 248, 9, 33,
- 4, 1, 160, 2, 248, 9, 33, 6, 1, 104, 2, 231, 237, 33, 4, 1, 104, 2, 231,
- 237, 33, 6, 1, 104, 2, 248, 9, 33, 4, 1, 104, 2, 248, 9, 33, 6, 1, 104,
- 2, 52, 142, 33, 4, 1, 104, 2, 52, 142, 33, 6, 1, 250, 140, 2, 248, 9, 33,
- 4, 1, 250, 140, 2, 248, 9, 33, 6, 1, 242, 244, 2, 248, 47, 33, 4, 1, 242,
- 244, 2, 248, 47, 33, 6, 1, 211, 28, 2, 248, 9, 33, 4, 1, 211, 28, 2, 248,
- 9, 33, 6, 1, 242, 244, 2, 218, 105, 22, 103, 33, 4, 1, 242, 244, 2, 218,
- 105, 22, 103, 33, 6, 1, 242, 56, 2, 103, 33, 4, 1, 242, 56, 2, 103, 33,
- 6, 1, 242, 56, 2, 91, 33, 4, 1, 242, 56, 2, 91, 33, 6, 1, 234, 20, 248,
- 98, 33, 4, 1, 234, 20, 248, 98, 33, 6, 1, 234, 20, 247, 170, 33, 4, 1,
- 234, 20, 247, 170, 33, 6, 1, 234, 20, 210, 27, 33, 4, 1, 234, 20, 210,
- 27, 33, 6, 1, 234, 20, 246, 38, 33, 4, 1, 234, 20, 246, 38, 33, 6, 1,
- 234, 20, 232, 193, 33, 4, 1, 234, 20, 232, 193, 33, 6, 1, 234, 20, 228,
- 183, 33, 4, 1, 234, 20, 228, 183, 33, 6, 1, 234, 20, 219, 111, 33, 4, 1,
- 234, 20, 219, 111, 33, 6, 1, 234, 20, 216, 61, 33, 4, 1, 234, 20, 216,
- 61, 33, 6, 1, 223, 52, 210, 94, 33, 4, 1, 223, 52, 210, 94, 33, 6, 1,
- 245, 183, 2, 103, 33, 4, 1, 245, 183, 2, 103, 33, 6, 1, 233, 4, 33, 4, 1,
- 233, 4, 33, 6, 1, 223, 42, 33, 4, 1, 223, 42, 33, 6, 1, 211, 92, 33, 4,
- 1, 211, 92, 33, 6, 1, 224, 91, 33, 4, 1, 224, 91, 33, 6, 1, 212, 22, 33,
- 4, 1, 212, 22, 33, 6, 1, 254, 175, 176, 33, 4, 1, 254, 175, 176, 33, 6,
- 1, 245, 183, 2, 230, 229, 103, 33, 4, 1, 245, 183, 2, 230, 229, 103, 33,
- 6, 1, 245, 159, 2, 230, 229, 103, 33, 4, 1, 245, 159, 2, 230, 229, 103,
- 33, 6, 1, 225, 225, 2, 248, 47, 33, 4, 1, 225, 225, 2, 248, 47, 33, 6, 1,
- 220, 36, 2, 248, 47, 33, 4, 1, 220, 36, 2, 248, 47, 150, 6, 1, 253, 172,
- 150, 6, 1, 252, 47, 150, 6, 1, 242, 210, 150, 6, 1, 248, 229, 150, 6, 1,
- 245, 221, 150, 6, 1, 210, 116, 150, 6, 1, 245, 205, 150, 6, 1, 245, 73,
- 150, 6, 1, 112, 150, 6, 1, 210, 74, 150, 6, 1, 235, 234, 150, 6, 1, 232,
- 196, 150, 6, 1, 211, 160, 150, 6, 1, 251, 41, 150, 6, 1, 234, 171, 150,
- 6, 1, 241, 75, 150, 6, 1, 235, 147, 150, 6, 1, 242, 253, 150, 6, 1, 250,
- 134, 150, 6, 1, 231, 63, 150, 6, 1, 211, 8, 150, 6, 1, 228, 44, 150, 6,
- 1, 220, 104, 150, 6, 1, 213, 138, 150, 6, 1, 250, 165, 150, 6, 1, 225,
- 208, 150, 6, 1, 235, 116, 150, 6, 1, 205, 150, 6, 1, 221, 163, 150, 6, 1,
- 213, 179, 150, 6, 1, 216, 63, 150, 6, 1, 223, 98, 150, 6, 1, 249, 246,
- 150, 6, 1, 210, 249, 150, 6, 1, 225, 49, 150, 6, 1, 234, 182, 150, 6, 1,
- 226, 226, 150, 6, 1, 244, 150, 150, 58, 1, 43, 163, 222, 236, 150, 254,
- 65, 150, 245, 162, 79, 150, 245, 39, 79, 150, 249, 227, 150, 224, 16, 79,
- 150, 255, 30, 79, 150, 4, 1, 253, 172, 150, 4, 1, 252, 47, 150, 4, 1,
- 242, 210, 150, 4, 1, 248, 229, 150, 4, 1, 245, 221, 150, 4, 1, 210, 116,
- 150, 4, 1, 245, 205, 150, 4, 1, 245, 73, 150, 4, 1, 112, 150, 4, 1, 210,
- 74, 150, 4, 1, 235, 234, 150, 4, 1, 232, 196, 150, 4, 1, 211, 160, 150,
- 4, 1, 251, 41, 150, 4, 1, 234, 171, 150, 4, 1, 241, 75, 150, 4, 1, 235,
- 147, 150, 4, 1, 242, 253, 150, 4, 1, 250, 134, 150, 4, 1, 231, 63, 150,
- 4, 1, 211, 8, 150, 4, 1, 228, 44, 150, 4, 1, 220, 104, 150, 4, 1, 213,
- 138, 150, 4, 1, 250, 165, 150, 4, 1, 225, 208, 150, 4, 1, 235, 116, 150,
- 4, 1, 205, 150, 4, 1, 221, 163, 150, 4, 1, 213, 179, 150, 4, 1, 216, 63,
- 150, 4, 1, 223, 98, 150, 4, 1, 249, 246, 150, 4, 1, 210, 249, 150, 4, 1,
- 225, 49, 150, 4, 1, 234, 182, 150, 4, 1, 226, 226, 150, 4, 1, 244, 150,
- 150, 4, 27, 245, 222, 210, 249, 150, 243, 236, 218, 131, 150, 240, 175,
- 150, 246, 103, 50, 94, 255, 24, 245, 65, 94, 255, 24, 221, 164, 94, 255,
- 24, 220, 90, 94, 255, 24, 210, 104, 224, 74, 94, 255, 24, 210, 104, 243,
- 132, 94, 255, 24, 216, 76, 94, 255, 24, 223, 50, 94, 255, 24, 210, 103,
- 94, 255, 24, 225, 249, 94, 255, 24, 211, 20, 94, 255, 24, 216, 215, 94,
- 255, 24, 243, 48, 94, 255, 24, 243, 49, 230, 74, 94, 255, 24, 243, 46,
- 94, 255, 24, 224, 75, 226, 20, 94, 255, 24, 216, 254, 243, 63, 94, 255,
- 24, 225, 230, 94, 255, 24, 253, 208, 242, 48, 94, 255, 24, 230, 84, 94,
- 255, 24, 231, 213, 94, 255, 24, 231, 54, 94, 255, 24, 231, 55, 234, 183,
- 94, 255, 24, 248, 171, 94, 255, 24, 224, 86, 94, 255, 24, 216, 254, 224,
- 70, 94, 255, 24, 211, 30, 252, 48, 210, 230, 94, 255, 24, 226, 211, 94,
- 255, 24, 236, 26, 94, 255, 24, 248, 78, 94, 255, 24, 210, 33, 94, 164,
- 231, 148, 250, 43, 94, 225, 14, 220, 38, 94, 225, 14, 242, 1, 221, 164,
- 94, 225, 14, 242, 1, 225, 243, 94, 225, 14, 242, 1, 224, 79, 94, 225, 14,
- 241, 165, 94, 225, 14, 215, 177, 94, 225, 14, 221, 164, 94, 225, 14, 225,
- 243, 94, 225, 14, 224, 79, 94, 225, 14, 241, 68, 94, 225, 14, 241, 69,
- 242, 3, 31, 214, 3, 94, 225, 14, 224, 20, 94, 225, 14, 248, 216, 177,
- 231, 176, 94, 225, 14, 231, 43, 94, 224, 144, 231, 173, 94, 225, 14, 223,
- 172, 94, 224, 144, 225, 251, 94, 225, 14, 220, 23, 247, 128, 94, 225, 14,
- 219, 161, 247, 128, 94, 224, 144, 219, 55, 225, 245, 94, 164, 214, 160,
- 247, 128, 94, 164, 232, 114, 247, 128, 94, 224, 144, 227, 199, 242, 47,
- 94, 225, 14, 224, 80, 224, 74, 94, 1, 254, 179, 94, 1, 252, 36, 94, 1,
- 242, 208, 94, 1, 248, 197, 94, 1, 241, 245, 94, 1, 214, 3, 94, 1, 210,
- 97, 94, 1, 241, 204, 94, 1, 216, 231, 94, 1, 210, 233, 94, 1, 40, 235, 0,
- 94, 1, 235, 0, 94, 1, 233, 100, 94, 1, 40, 231, 70, 94, 1, 231, 70, 94,
- 1, 40, 227, 198, 94, 1, 227, 198, 94, 1, 221, 251, 94, 1, 253, 170, 94,
- 1, 40, 225, 224, 94, 1, 225, 224, 94, 1, 40, 215, 180, 94, 1, 215, 180,
- 94, 1, 224, 42, 94, 1, 223, 70, 94, 1, 220, 22, 94, 1, 217, 39, 94, 27,
- 211, 6, 52, 214, 3, 94, 27, 211, 6, 214, 4, 210, 233, 94, 27, 211, 6, 52,
- 210, 233, 94, 224, 144, 243, 48, 94, 224, 144, 243, 46, 9, 54, 50, 9, 5,
- 221, 244, 9, 244, 38, 231, 159, 9, 5, 222, 25, 9, 5, 221, 247, 254, 45,
- 249, 117, 222, 195, 254, 45, 244, 12, 222, 195, 9, 223, 137, 254, 45,
- 225, 186, 230, 198, 50, 254, 45, 225, 186, 216, 249, 216, 149, 50, 254,
- 230, 50, 9, 249, 227, 9, 248, 158, 220, 139, 9, 225, 16, 213, 241, 50, 9,
- 5, 230, 179, 9, 5, 222, 5, 254, 181, 212, 45, 9, 5, 254, 181, 253, 229,
- 9, 5, 223, 170, 254, 180, 9, 5, 223, 178, 254, 161, 254, 112, 9, 5, 217,
- 71, 9, 4, 125, 217, 81, 9, 4, 125, 27, 109, 2, 233, 109, 2, 211, 43, 9,
- 4, 125, 210, 108, 9, 4, 244, 173, 9, 4, 248, 192, 9, 4, 234, 211, 9, 220,
- 152, 9, 1, 79, 9, 215, 212, 59, 224, 144, 79, 9, 224, 16, 79, 9, 1, 234,
- 215, 211, 43, 9, 1, 242, 26, 9, 1, 109, 2, 231, 233, 48, 9, 1, 109, 2,
- 182, 48, 9, 1, 212, 31, 2, 182, 48, 9, 1, 109, 2, 182, 51, 9, 1, 77, 2,
- 182, 48, 9, 1, 254, 179, 9, 1, 252, 62, 9, 1, 217, 9, 231, 169, 9, 1,
- 217, 8, 9, 1, 216, 193, 9, 1, 235, 129, 9, 1, 242, 44, 9, 1, 234, 135, 9,
- 1, 248, 203, 9, 1, 216, 203, 9, 1, 223, 98, 9, 1, 210, 108, 9, 1, 221,
- 168, 9, 1, 220, 61, 9, 1, 222, 28, 9, 1, 248, 224, 9, 1, 217, 81, 9, 1,
- 210, 111, 9, 1, 254, 205, 9, 1, 242, 251, 9, 1, 234, 181, 2, 113, 170,
- 48, 9, 1, 234, 181, 2, 134, 170, 51, 9, 1, 244, 176, 77, 2, 235, 200,
- 214, 105, 9, 1, 244, 176, 77, 2, 113, 170, 48, 9, 1, 244, 176, 77, 2,
- 134, 170, 48, 9, 217, 44, 9, 1, 244, 150, 9, 1, 224, 84, 9, 1, 235, 0, 9,
- 1, 233, 108, 9, 1, 231, 83, 9, 1, 228, 67, 9, 1, 241, 225, 9, 1, 212, 30,
- 9, 1, 109, 231, 197, 9, 1, 211, 43, 9, 244, 171, 9, 248, 190, 9, 234,
- 209, 9, 244, 173, 9, 248, 192, 9, 234, 211, 9, 220, 95, 9, 218, 46, 9,
- 231, 231, 48, 9, 182, 48, 9, 182, 51, 9, 218, 66, 254, 179, 9, 235, 200,
- 248, 192, 9, 164, 228, 68, 242, 225, 9, 209, 255, 9, 25, 5, 4, 214, 106,
- 48, 9, 25, 5, 235, 200, 4, 214, 106, 48, 9, 25, 5, 59, 51, 9, 223, 52,
- 248, 192, 9, 244, 174, 2, 113, 247, 126, 9, 212, 32, 182, 51, 254, 45,
- 21, 210, 86, 254, 45, 21, 111, 254, 45, 21, 105, 254, 45, 21, 158, 254,
- 45, 21, 161, 254, 45, 21, 190, 254, 45, 21, 195, 254, 45, 21, 199, 254,
- 45, 21, 196, 254, 45, 21, 201, 9, 225, 185, 50, 9, 248, 91, 220, 139, 9,
- 216, 147, 220, 139, 9, 244, 89, 225, 12, 218, 158, 9, 1, 247, 127, 252,
- 62, 9, 1, 247, 127, 224, 84, 9, 1, 218, 24, 254, 179, 9, 1, 109, 212, 46,
- 9, 1, 109, 2, 212, 32, 182, 48, 9, 1, 109, 2, 212, 32, 182, 51, 9, 1,
- 125, 242, 26, 9, 1, 125, 182, 254, 179, 9, 1, 125, 182, 212, 30, 9, 1,
- 104, 2, 182, 48, 9, 1, 125, 182, 211, 43, 9, 1, 215, 149, 9, 1, 215, 147,
- 9, 1, 252, 72, 9, 1, 217, 9, 2, 222, 236, 9, 1, 217, 9, 2, 134, 170, 72,
- 246, 111, 9, 1, 225, 208, 9, 1, 217, 6, 9, 1, 252, 60, 9, 1, 122, 2, 182,
- 48, 9, 1, 122, 2, 113, 170, 67, 48, 9, 1, 227, 157, 9, 1, 246, 51, 9, 1,
- 122, 2, 134, 170, 48, 9, 1, 217, 27, 9, 1, 217, 25, 9, 1, 248, 138, 9, 1,
- 248, 204, 2, 222, 236, 9, 1, 248, 204, 2, 59, 51, 9, 1, 248, 204, 2, 59,
- 252, 51, 22, 4, 217, 81, 9, 1, 248, 209, 9, 1, 248, 140, 9, 1, 246, 78,
- 9, 1, 248, 204, 2, 134, 170, 72, 246, 111, 9, 1, 248, 204, 2, 244, 19,
- 170, 48, 9, 1, 222, 173, 9, 1, 223, 99, 2, 4, 214, 105, 9, 1, 223, 99, 2,
- 222, 236, 9, 1, 223, 99, 2, 59, 51, 9, 1, 223, 99, 2, 4, 214, 106, 51, 9,
- 1, 223, 99, 2, 59, 252, 51, 22, 59, 48, 9, 1, 223, 99, 2, 113, 170, 48,
- 9, 1, 235, 126, 9, 1, 223, 99, 2, 244, 19, 170, 48, 9, 1, 221, 169, 2,
- 59, 252, 51, 22, 59, 48, 9, 1, 221, 169, 2, 134, 170, 51, 9, 1, 221, 169,
- 2, 134, 170, 252, 51, 22, 134, 170, 48, 9, 1, 222, 29, 2, 113, 170, 51,
- 9, 1, 222, 29, 2, 134, 170, 48, 9, 1, 217, 82, 2, 134, 170, 48, 9, 1,
- 254, 206, 2, 134, 170, 48, 9, 1, 247, 127, 244, 150, 9, 1, 244, 151, 2,
- 59, 230, 114, 51, 9, 1, 244, 151, 2, 59, 51, 9, 1, 213, 248, 9, 1, 244,
- 151, 2, 134, 170, 51, 9, 1, 225, 206, 9, 1, 224, 85, 2, 59, 48, 9, 1,
- 224, 85, 2, 134, 170, 48, 9, 1, 234, 180, 9, 1, 217, 251, 235, 0, 9, 1,
- 235, 1, 2, 222, 236, 9, 1, 235, 1, 2, 59, 48, 9, 1, 229, 84, 9, 1, 235,
- 1, 2, 134, 170, 51, 9, 1, 243, 129, 9, 1, 243, 130, 2, 222, 236, 9, 1,
- 229, 7, 9, 1, 243, 130, 2, 113, 170, 51, 9, 1, 242, 108, 9, 1, 243, 130,
- 2, 134, 170, 48, 9, 1, 233, 109, 2, 4, 214, 105, 9, 1, 233, 109, 2, 59,
- 48, 9, 1, 233, 109, 2, 134, 170, 48, 9, 1, 233, 109, 2, 134, 170, 51, 9,
- 1, 228, 68, 2, 59, 51, 9, 1, 228, 68, 242, 225, 9, 1, 222, 216, 9, 1,
- 228, 68, 2, 222, 236, 9, 1, 228, 68, 2, 134, 170, 48, 9, 1, 241, 226,
- 247, 149, 9, 1, 217, 28, 2, 59, 48, 9, 1, 241, 226, 2, 77, 48, 9, 1, 241,
- 226, 242, 178, 9, 1, 241, 226, 242, 179, 2, 182, 48, 9, 1, 217, 9, 231,
- 170, 242, 178, 9, 1, 212, 31, 2, 222, 236, 9, 1, 234, 79, 226, 238, 9, 1,
- 226, 238, 9, 1, 69, 9, 1, 210, 212, 9, 1, 234, 79, 210, 212, 9, 1, 212,
- 31, 2, 113, 170, 48, 9, 1, 213, 255, 9, 1, 244, 176, 211, 43, 9, 1, 77,
- 2, 217, 78, 9, 1, 77, 2, 4, 214, 105, 9, 1, 212, 31, 2, 59, 48, 9, 1, 76,
- 9, 1, 77, 2, 134, 170, 51, 9, 1, 77, 252, 140, 9, 1, 77, 252, 141, 2,
- 182, 48, 9, 243, 236, 218, 131, 9, 1, 254, 252, 9, 4, 125, 27, 222, 29,
- 2, 233, 109, 2, 109, 231, 197, 9, 4, 125, 27, 224, 85, 2, 233, 109, 2,
- 109, 231, 197, 9, 4, 125, 66, 65, 17, 9, 4, 125, 233, 109, 254, 179, 9,
- 4, 125, 235, 129, 9, 4, 125, 134, 247, 126, 9, 4, 125, 221, 168, 9, 245,
- 151, 64, 253, 174, 9, 218, 154, 64, 222, 140, 245, 183, 241, 162, 9, 4,
- 125, 222, 185, 210, 86, 9, 4, 125, 214, 159, 223, 118, 210, 86, 9, 4,
- 125, 247, 127, 241, 243, 64, 234, 135, 9, 4, 125, 66, 53, 17, 9, 4, 121,
- 221, 168, 9, 4, 125, 231, 232, 9, 4, 212, 30, 9, 4, 211, 43, 9, 4, 125,
- 211, 43, 9, 4, 125, 228, 67, 9, 225, 44, 64, 222, 15, 9, 245, 160, 250,
- 183, 121, 218, 131, 9, 245, 160, 250, 183, 125, 218, 131, 9, 222, 185,
- 125, 218, 132, 2, 244, 112, 250, 182, 9, 4, 121, 231, 83, 9, 1, 248, 204,
- 2, 235, 200, 214, 105, 9, 1, 223, 99, 2, 235, 200, 214, 105, 245, 30,
- 254, 45, 21, 210, 86, 245, 30, 254, 45, 21, 111, 245, 30, 254, 45, 21,
- 105, 245, 30, 254, 45, 21, 158, 245, 30, 254, 45, 21, 161, 245, 30, 254,
- 45, 21, 190, 245, 30, 254, 45, 21, 195, 245, 30, 254, 45, 21, 199, 245,
- 30, 254, 45, 21, 196, 245, 30, 254, 45, 21, 201, 9, 1, 220, 62, 2, 59,
- 51, 9, 1, 248, 225, 2, 59, 51, 9, 1, 242, 252, 2, 59, 51, 9, 5, 219, 160,
- 254, 134, 9, 5, 219, 160, 224, 238, 231, 63, 9, 1, 241, 226, 2, 235, 200,
- 214, 105, 183, 245, 151, 64, 226, 18, 183, 218, 20, 243, 236, 218, 131,
- 183, 218, 68, 243, 236, 218, 131, 183, 218, 20, 249, 234, 183, 218, 68,
- 249, 234, 183, 203, 249, 234, 183, 249, 235, 219, 108, 233, 52, 183, 249,
- 235, 219, 108, 222, 254, 183, 218, 20, 249, 235, 219, 108, 233, 52, 183,
- 218, 68, 249, 235, 219, 108, 222, 254, 183, 249, 188, 183, 242, 8, 226,
- 254, 183, 242, 8, 231, 41, 183, 242, 8, 253, 226, 183, 255, 30, 79, 183,
- 1, 254, 183, 183, 1, 218, 24, 254, 183, 183, 1, 252, 33, 183, 1, 243,
- 120, 183, 1, 243, 121, 243, 98, 183, 1, 248, 200, 183, 1, 247, 127, 248,
- 201, 222, 232, 183, 1, 241, 245, 183, 1, 212, 30, 183, 1, 210, 108, 183,
- 1, 241, 202, 183, 1, 216, 227, 183, 1, 216, 228, 243, 98, 183, 1, 210,
- 199, 183, 1, 210, 200, 241, 245, 183, 1, 234, 231, 183, 1, 233, 107, 183,
- 1, 230, 195, 183, 1, 227, 198, 183, 1, 220, 145, 183, 1, 40, 220, 145,
- 183, 1, 76, 183, 1, 225, 224, 183, 1, 223, 52, 225, 224, 183, 1, 222, 26,
- 183, 1, 224, 78, 183, 1, 222, 232, 183, 1, 220, 22, 183, 1, 217, 37, 183,
- 1, 225, 172, 252, 20, 183, 1, 225, 172, 242, 249, 183, 1, 225, 172, 248,
- 28, 183, 224, 154, 48, 183, 224, 154, 51, 183, 224, 154, 246, 125, 183,
- 210, 17, 48, 183, 210, 17, 51, 183, 210, 17, 246, 125, 183, 223, 134, 48,
- 183, 223, 134, 51, 183, 246, 126, 210, 24, 241, 51, 183, 246, 126, 210,
- 24, 254, 113, 183, 241, 248, 48, 183, 241, 248, 51, 183, 241, 247, 246,
- 125, 183, 245, 87, 48, 183, 245, 87, 51, 183, 222, 109, 183, 244, 144,
- 247, 128, 183, 223, 251, 183, 222, 136, 183, 113, 67, 170, 48, 183, 113,
- 67, 170, 51, 183, 134, 170, 48, 183, 134, 170, 51, 183, 226, 252, 232,
- 220, 48, 183, 226, 252, 232, 220, 51, 183, 230, 61, 183, 252, 139, 183,
- 1, 219, 51, 210, 80, 183, 1, 219, 51, 234, 128, 183, 1, 219, 51, 244,
- 162, 9, 1, 252, 63, 2, 134, 170, 241, 1, 51, 9, 1, 252, 63, 2, 59, 252,
- 51, 22, 134, 170, 48, 9, 1, 252, 63, 2, 134, 170, 225, 10, 214, 153, 51,
- 9, 1, 252, 63, 2, 134, 170, 225, 10, 214, 153, 252, 51, 22, 113, 170, 48,
- 9, 1, 252, 63, 2, 113, 170, 252, 51, 22, 59, 48, 9, 1, 252, 63, 2, 235,
- 200, 4, 214, 106, 51, 9, 1, 252, 63, 2, 4, 214, 105, 9, 1, 122, 2, 113,
- 170, 48, 9, 1, 122, 2, 134, 170, 225, 10, 214, 153, 51, 9, 1, 248, 204,
- 2, 113, 170, 213, 189, 252, 51, 22, 4, 217, 81, 9, 1, 248, 204, 2, 235,
- 200, 4, 214, 106, 51, 9, 1, 223, 99, 2, 91, 9, 1, 221, 169, 2, 244, 19,
- 170, 48, 9, 1, 254, 206, 2, 113, 170, 48, 9, 1, 254, 206, 2, 134, 170,
- 225, 10, 246, 112, 48, 9, 1, 254, 206, 2, 113, 170, 213, 189, 48, 9, 1,
- 244, 151, 2, 113, 170, 51, 9, 1, 244, 151, 2, 134, 170, 225, 10, 214,
- 153, 51, 9, 1, 234, 181, 2, 59, 48, 9, 1, 234, 181, 2, 134, 170, 48, 9,
- 1, 234, 181, 2, 134, 170, 225, 10, 214, 153, 51, 9, 1, 66, 2, 59, 48, 9,
- 1, 66, 2, 59, 51, 9, 1, 228, 68, 2, 113, 170, 51, 9, 1, 228, 68, 2, 4,
- 217, 81, 9, 1, 228, 68, 2, 4, 214, 105, 9, 1, 233, 109, 2, 130, 9, 1,
- 223, 99, 2, 113, 170, 213, 189, 48, 9, 1, 223, 99, 2, 182, 48, 9, 1, 221,
- 169, 2, 113, 170, 213, 189, 48, 9, 1, 122, 2, 4, 9, 1, 217, 82, 51, 9, 1,
- 122, 2, 4, 9, 1, 217, 82, 22, 113, 247, 126, 9, 1, 221, 169, 2, 4, 9, 1,
- 217, 82, 22, 113, 247, 126, 9, 1, 223, 99, 2, 4, 9, 1, 217, 82, 22, 113,
- 247, 126, 9, 1, 122, 2, 4, 9, 1, 217, 82, 48, 9, 1, 109, 2, 245, 30, 254,
- 45, 21, 113, 48, 9, 1, 109, 2, 245, 30, 254, 45, 21, 134, 48, 9, 1, 244,
- 176, 77, 2, 245, 30, 254, 45, 21, 113, 48, 9, 1, 244, 176, 77, 2, 245,
- 30, 254, 45, 21, 134, 48, 9, 1, 244, 176, 77, 2, 245, 30, 254, 45, 21,
- 244, 19, 51, 9, 1, 212, 31, 2, 245, 30, 254, 45, 21, 113, 48, 9, 1, 212,
- 31, 2, 245, 30, 254, 45, 21, 134, 48, 9, 1, 77, 252, 141, 2, 245, 30,
- 254, 45, 21, 113, 48, 9, 1, 77, 252, 141, 2, 245, 30, 254, 45, 21, 134,
- 48, 9, 1, 122, 2, 245, 30, 254, 45, 21, 244, 19, 51, 9, 1, 221, 169, 2,
- 245, 30, 254, 45, 21, 244, 19, 48, 9, 1, 221, 169, 2, 235, 200, 214, 105,
- 9, 1, 235, 1, 2, 113, 170, 48, 216, 206, 1, 242, 53, 216, 206, 1, 220,
- 70, 216, 206, 1, 228, 66, 216, 206, 1, 223, 187, 216, 206, 1, 252, 197,
- 216, 206, 1, 233, 1, 216, 206, 1, 235, 14, 216, 206, 1, 254, 168, 216,
- 206, 1, 214, 25, 216, 206, 1, 231, 82, 216, 206, 1, 244, 202, 216, 206,
- 1, 248, 31, 216, 206, 1, 216, 208, 216, 206, 1, 233, 137, 216, 206, 1,
- 243, 138, 216, 206, 1, 242, 184, 216, 206, 1, 221, 167, 216, 206, 1, 248,
- 156, 216, 206, 1, 210, 100, 216, 206, 1, 217, 38, 216, 206, 1, 211, 103,
- 216, 206, 1, 225, 237, 216, 206, 1, 235, 134, 216, 206, 1, 250, 142, 216,
- 206, 1, 215, 156, 216, 206, 1, 241, 195, 216, 206, 1, 234, 137, 216, 206,
- 1, 216, 207, 216, 206, 1, 210, 115, 216, 206, 1, 220, 60, 216, 206, 1,
- 222, 32, 216, 206, 1, 248, 227, 216, 206, 1, 112, 216, 206, 1, 210, 23,
- 216, 206, 1, 254, 202, 216, 206, 1, 242, 250, 216, 206, 1, 224, 88, 216,
- 206, 1, 212, 63, 216, 206, 255, 31, 216, 206, 255, 47, 216, 206, 240,
- 121, 216, 206, 245, 216, 216, 206, 214, 222, 216, 206, 226, 186, 216,
- 206, 245, 224, 216, 206, 245, 24, 216, 206, 226, 251, 216, 206, 227, 3,
- 216, 206, 218, 46, 216, 206, 1, 229, 230, 228, 142, 21, 210, 86, 228,
- 142, 21, 111, 228, 142, 21, 105, 228, 142, 21, 158, 228, 142, 21, 161,
- 228, 142, 21, 190, 228, 142, 21, 195, 228, 142, 21, 199, 228, 142, 21,
- 196, 228, 142, 21, 201, 228, 142, 1, 61, 228, 142, 1, 245, 217, 228, 142,
- 1, 74, 228, 142, 1, 76, 228, 142, 1, 69, 228, 142, 1, 226, 187, 228, 142,
- 1, 78, 228, 142, 1, 248, 217, 228, 142, 1, 230, 30, 228, 142, 1, 252,
- 199, 228, 142, 1, 191, 228, 142, 1, 217, 106, 228, 142, 1, 235, 147, 228,
- 142, 1, 250, 165, 228, 142, 1, 248, 229, 228, 142, 1, 205, 228, 142, 1,
- 222, 181, 228, 142, 1, 206, 228, 142, 1, 243, 86, 228, 142, 1, 244, 204,
- 228, 142, 1, 176, 228, 142, 1, 233, 141, 228, 142, 1, 229, 234, 211, 223,
- 228, 142, 1, 186, 228, 142, 1, 227, 169, 228, 142, 1, 198, 228, 142, 1,
- 162, 228, 142, 1, 212, 65, 228, 142, 1, 192, 228, 142, 1, 227, 170, 211,
- 223, 228, 142, 1, 235, 67, 235, 147, 228, 142, 1, 235, 67, 250, 165, 228,
- 142, 1, 235, 67, 205, 228, 142, 38, 219, 253, 125, 216, 31, 228, 142, 38,
- 219, 253, 121, 216, 31, 228, 142, 38, 219, 253, 222, 231, 216, 31, 228,
- 142, 38, 200, 248, 46, 216, 31, 228, 142, 38, 200, 125, 216, 31, 228,
- 142, 38, 200, 121, 216, 31, 228, 142, 38, 200, 222, 231, 216, 31, 228,
- 142, 38, 229, 198, 79, 228, 142, 38, 52, 59, 48, 228, 142, 125, 138, 254,
- 65, 228, 142, 121, 138, 254, 65, 228, 142, 16, 226, 188, 248, 58, 228,
- 142, 16, 243, 85, 228, 142, 249, 227, 228, 142, 245, 39, 79, 228, 142,
- 233, 114, 221, 254, 1, 254, 185, 221, 254, 1, 251, 236, 221, 254, 1, 243,
- 119, 221, 254, 1, 248, 202, 221, 254, 1, 235, 158, 221, 254, 1, 252, 197,
- 221, 254, 1, 210, 89, 221, 254, 1, 235, 166, 221, 254, 1, 216, 68, 221,
- 254, 1, 210, 182, 221, 254, 1, 235, 15, 221, 254, 1, 233, 134, 221, 254,
- 1, 230, 195, 221, 254, 1, 227, 198, 221, 254, 1, 219, 158, 221, 254, 1,
- 236, 6, 221, 254, 1, 244, 129, 221, 254, 1, 215, 182, 221, 254, 1, 224,
- 13, 221, 254, 1, 222, 232, 221, 254, 1, 220, 87, 221, 254, 1, 217, 101,
- 221, 254, 164, 236, 6, 221, 254, 164, 236, 5, 221, 254, 164, 226, 247,
- 221, 254, 164, 248, 215, 221, 254, 58, 1, 245, 113, 210, 182, 221, 254,
- 164, 245, 113, 210, 182, 221, 254, 25, 5, 200, 76, 221, 254, 25, 5, 76,
- 221, 254, 25, 5, 226, 122, 255, 82, 221, 254, 25, 5, 200, 255, 82, 221,
- 254, 25, 5, 255, 82, 221, 254, 25, 5, 226, 122, 61, 221, 254, 25, 5, 200,
- 61, 221, 254, 25, 5, 61, 221, 254, 58, 1, 219, 253, 61, 221, 254, 25, 5,
- 219, 253, 61, 221, 254, 25, 5, 200, 69, 221, 254, 25, 5, 69, 221, 254,
- 58, 1, 74, 221, 254, 25, 5, 200, 74, 221, 254, 25, 5, 74, 221, 254, 25,
- 5, 78, 221, 254, 25, 5, 218, 46, 221, 254, 164, 229, 97, 221, 254, 224,
- 144, 229, 97, 221, 254, 224, 144, 254, 227, 221, 254, 224, 144, 254, 122,
- 221, 254, 224, 144, 252, 122, 221, 254, 224, 144, 253, 209, 221, 254,
- 224, 144, 220, 10, 221, 254, 255, 30, 79, 221, 254, 224, 144, 231, 73,
- 224, 48, 221, 254, 224, 144, 210, 31, 221, 254, 224, 144, 224, 48, 221,
- 254, 224, 144, 210, 114, 221, 254, 224, 144, 215, 90, 221, 254, 224, 144,
- 254, 17, 221, 254, 224, 144, 219, 55, 231, 150, 221, 254, 224, 144, 254,
- 108, 231, 187, 1, 242, 31, 231, 187, 1, 255, 34, 231, 187, 1, 254, 225,
- 231, 187, 1, 255, 8, 231, 187, 1, 254, 218, 231, 187, 1, 214, 124, 231,
- 187, 1, 253, 168, 231, 187, 1, 235, 166, 231, 187, 1, 253, 206, 231, 187,
- 1, 254, 190, 231, 187, 1, 254, 195, 231, 187, 1, 254, 187, 231, 187, 1,
- 254, 144, 231, 187, 1, 254, 131, 231, 187, 1, 253, 245, 231, 187, 1, 236,
- 6, 231, 187, 1, 254, 80, 231, 187, 1, 253, 216, 231, 187, 1, 254, 53,
- 231, 187, 1, 254, 49, 231, 187, 1, 253, 239, 231, 187, 1, 253, 214, 231,
- 187, 1, 246, 63, 231, 187, 1, 235, 8, 231, 187, 1, 254, 205, 231, 187,
- 254, 231, 79, 231, 187, 213, 136, 79, 231, 187, 243, 60, 79, 231, 187,
- 224, 143, 9, 1, 252, 63, 2, 4, 214, 106, 51, 9, 1, 151, 2, 113, 170, 48,
- 9, 1, 217, 82, 2, 113, 170, 48, 9, 1, 244, 151, 2, 59, 252, 51, 22, 134,
- 170, 48, 9, 1, 224, 85, 2, 59, 51, 9, 1, 233, 109, 2, 52, 130, 9, 1, 66,
- 2, 134, 170, 48, 9, 1, 77, 2, 113, 170, 252, 51, 22, 182, 48, 9, 1, 77,
- 2, 113, 170, 252, 51, 22, 59, 48, 9, 1, 223, 99, 2, 232, 129, 9, 1, 212,
- 31, 2, 59, 211, 231, 9, 1, 222, 203, 211, 43, 9, 249, 107, 244, 173, 9,
- 249, 107, 248, 192, 9, 249, 107, 234, 211, 9, 249, 107, 244, 171, 9, 249,
- 107, 248, 190, 9, 249, 107, 234, 209, 9, 138, 123, 59, 48, 9, 138, 113,
- 170, 48, 9, 138, 232, 130, 48, 9, 138, 123, 59, 51, 9, 138, 113, 170, 51,
- 9, 138, 232, 130, 51, 9, 204, 244, 171, 9, 204, 248, 190, 9, 204, 234,
- 209, 9, 4, 125, 212, 30, 9, 244, 174, 2, 222, 236, 9, 244, 174, 2, 59,
- 48, 9, 234, 212, 2, 59, 51, 9, 43, 254, 2, 48, 9, 44, 254, 2, 48, 9, 43,
- 254, 2, 51, 9, 44, 254, 2, 51, 9, 52, 44, 254, 2, 48, 9, 52, 44, 254, 2,
- 72, 2, 247, 128, 9, 44, 254, 2, 72, 2, 247, 128, 9, 248, 193, 2, 247,
- 128, 84, 5, 235, 200, 251, 7, 84, 5, 251, 7, 84, 5, 254, 83, 84, 5, 213,
- 147, 84, 1, 219, 253, 61, 84, 1, 61, 84, 1, 255, 82, 84, 1, 74, 84, 1,
- 236, 40, 84, 1, 69, 84, 1, 214, 118, 84, 1, 149, 153, 84, 1, 149, 156,
- 84, 1, 251, 10, 76, 84, 1, 219, 253, 76, 84, 1, 76, 84, 1, 254, 210, 84,
- 1, 251, 10, 78, 84, 1, 219, 253, 78, 84, 1, 78, 84, 1, 253, 200, 84, 1,
- 176, 84, 1, 234, 138, 84, 1, 243, 142, 84, 1, 243, 0, 84, 1, 229, 82, 84,
- 1, 251, 41, 84, 1, 250, 165, 84, 1, 235, 147, 84, 1, 235, 120, 84, 1,
- 227, 169, 84, 1, 215, 157, 84, 1, 215, 145, 84, 1, 248, 143, 84, 1, 248,
- 127, 84, 1, 228, 115, 84, 1, 217, 106, 84, 1, 216, 209, 84, 1, 248, 229,
- 84, 1, 248, 33, 84, 1, 198, 84, 1, 228, 97, 84, 1, 191, 84, 1, 225, 150,
- 84, 1, 252, 199, 84, 1, 252, 26, 84, 1, 186, 84, 1, 192, 84, 1, 205, 84,
- 1, 222, 181, 84, 1, 233, 141, 84, 1, 232, 190, 84, 1, 232, 181, 84, 1,
- 214, 27, 84, 1, 220, 104, 84, 1, 218, 225, 84, 1, 206, 84, 1, 162, 84,
- 25, 5, 226, 238, 84, 25, 5, 226, 185, 84, 5, 227, 209, 84, 5, 253, 183,
- 84, 25, 5, 255, 82, 84, 25, 5, 74, 84, 25, 5, 236, 40, 84, 25, 5, 69, 84,
- 25, 5, 214, 118, 84, 25, 5, 149, 153, 84, 25, 5, 149, 222, 182, 84, 25,
- 5, 251, 10, 76, 84, 25, 5, 219, 253, 76, 84, 25, 5, 76, 84, 25, 5, 254,
- 210, 84, 25, 5, 251, 10, 78, 84, 25, 5, 219, 253, 78, 84, 25, 5, 78, 84,
- 25, 5, 253, 200, 84, 5, 213, 152, 84, 25, 5, 224, 188, 76, 84, 25, 5,
- 253, 179, 84, 226, 208, 84, 218, 113, 5, 214, 216, 84, 218, 113, 5, 254,
- 85, 84, 242, 144, 255, 23, 84, 255, 12, 255, 23, 84, 25, 5, 251, 10, 200,
- 76, 84, 25, 5, 214, 214, 84, 25, 5, 214, 117, 84, 1, 224, 91, 84, 1, 234,
- 121, 84, 1, 242, 233, 84, 1, 210, 116, 84, 1, 248, 132, 84, 1, 223, 42,
- 84, 1, 244, 204, 84, 1, 210, 168, 84, 1, 149, 222, 182, 84, 1, 149, 232,
- 191, 84, 25, 5, 149, 156, 84, 25, 5, 149, 232, 191, 84, 248, 186, 84, 52,
- 248, 186, 84, 21, 210, 86, 84, 21, 111, 84, 21, 105, 84, 21, 158, 84, 21,
- 161, 84, 21, 190, 84, 21, 195, 84, 21, 199, 84, 21, 196, 84, 21, 201, 84,
- 255, 30, 50, 84, 5, 125, 219, 19, 247, 128, 84, 1, 251, 10, 61, 84, 1,
- 226, 238, 84, 1, 226, 185, 84, 1, 253, 179, 84, 1, 214, 214, 84, 1, 214,
- 117, 84, 1, 210, 82, 84, 1, 114, 192, 84, 1, 243, 36, 84, 1, 235, 102,
- 84, 1, 242, 187, 218, 131, 84, 1, 248, 133, 84, 1, 252, 119, 146, 5, 251,
- 7, 146, 5, 254, 83, 146, 5, 213, 147, 146, 1, 61, 146, 1, 255, 82, 146,
- 1, 74, 146, 1, 236, 40, 146, 1, 69, 146, 1, 214, 118, 146, 1, 149, 153,
- 146, 1, 149, 156, 146, 1, 76, 146, 1, 254, 210, 146, 1, 78, 146, 1, 253,
- 200, 146, 1, 176, 146, 1, 234, 138, 146, 1, 243, 142, 146, 1, 243, 0,
- 146, 1, 229, 82, 146, 1, 251, 41, 146, 1, 250, 165, 146, 1, 235, 147,
- 146, 1, 235, 120, 146, 1, 227, 169, 146, 1, 215, 157, 146, 1, 215, 145,
- 146, 1, 248, 143, 146, 1, 248, 127, 146, 1, 228, 115, 146, 1, 217, 106,
- 146, 1, 216, 209, 146, 1, 248, 229, 146, 1, 248, 33, 146, 1, 198, 146, 1,
- 191, 146, 1, 225, 150, 146, 1, 252, 199, 146, 1, 252, 26, 146, 1, 186,
- 146, 1, 192, 146, 1, 205, 146, 1, 233, 141, 146, 1, 220, 104, 146, 1,
- 218, 225, 146, 1, 206, 146, 1, 162, 146, 5, 227, 209, 146, 5, 253, 183,
- 146, 25, 5, 255, 82, 146, 25, 5, 74, 146, 25, 5, 236, 40, 146, 25, 5, 69,
- 146, 25, 5, 214, 118, 146, 25, 5, 149, 153, 146, 25, 5, 149, 222, 182,
- 146, 25, 5, 76, 146, 25, 5, 254, 210, 146, 25, 5, 78, 146, 25, 5, 253,
- 200, 146, 5, 213, 152, 146, 1, 234, 130, 217, 106, 146, 253, 201, 233,
- 29, 79, 146, 1, 222, 181, 146, 1, 223, 42, 146, 1, 210, 168, 146, 1, 149,
- 222, 182, 146, 1, 149, 232, 191, 146, 25, 5, 149, 156, 146, 25, 5, 149,
- 232, 191, 146, 21, 210, 86, 146, 21, 111, 146, 21, 105, 146, 21, 158,
- 146, 21, 161, 146, 21, 190, 146, 21, 195, 146, 21, 199, 146, 21, 196,
- 146, 21, 201, 146, 1, 223, 191, 2, 230, 229, 248, 6, 146, 1, 223, 191, 2,
- 232, 114, 248, 6, 146, 222, 120, 79, 146, 222, 120, 50, 146, 249, 106,
- 227, 201, 111, 146, 249, 106, 227, 201, 105, 146, 249, 106, 227, 201,
- 158, 146, 249, 106, 227, 201, 161, 146, 249, 106, 227, 201, 123, 233, 22,
- 216, 202, 216, 197, 248, 56, 146, 249, 106, 248, 57, 219, 121, 146, 235,
- 167, 146, 243, 110, 79, 185, 5, 255, 7, 251, 251, 185, 5, 251, 251, 185,
- 5, 213, 147, 185, 1, 61, 185, 1, 255, 82, 185, 1, 74, 185, 1, 236, 40,
- 185, 1, 69, 185, 1, 214, 118, 185, 1, 245, 217, 185, 1, 254, 210, 185, 1,
- 226, 187, 185, 1, 253, 200, 185, 1, 176, 185, 1, 234, 138, 185, 1, 243,
- 142, 185, 1, 243, 0, 185, 1, 229, 82, 185, 1, 251, 41, 185, 1, 250, 165,
- 185, 1, 235, 147, 185, 1, 235, 120, 185, 1, 227, 169, 185, 1, 215, 157,
- 185, 1, 215, 145, 185, 1, 248, 143, 185, 1, 248, 127, 185, 1, 228, 115,
- 185, 1, 217, 106, 185, 1, 216, 209, 185, 1, 248, 229, 185, 1, 248, 33,
- 185, 1, 198, 185, 1, 191, 185, 1, 225, 150, 185, 1, 252, 199, 185, 1,
- 252, 26, 185, 1, 186, 185, 1, 192, 185, 1, 205, 185, 1, 233, 141, 185, 1,
- 232, 190, 185, 1, 214, 27, 185, 1, 220, 104, 185, 1, 206, 185, 1, 162,
- 185, 5, 227, 209, 185, 25, 5, 255, 82, 185, 25, 5, 74, 185, 25, 5, 236,
- 40, 185, 25, 5, 69, 185, 25, 5, 214, 118, 185, 25, 5, 245, 217, 185, 25,
- 5, 254, 210, 185, 25, 5, 226, 187, 185, 25, 5, 253, 200, 185, 5, 213,
- 152, 185, 5, 214, 218, 185, 1, 234, 121, 185, 1, 242, 233, 185, 1, 210,
- 116, 185, 1, 222, 181, 185, 1, 244, 204, 185, 21, 210, 86, 185, 21, 111,
- 185, 21, 105, 185, 21, 158, 185, 21, 161, 185, 21, 190, 185, 21, 195,
- 185, 21, 199, 185, 21, 196, 185, 21, 201, 185, 216, 75, 185, 255, 6, 185,
- 235, 185, 185, 214, 146, 185, 245, 189, 226, 192, 185, 5, 211, 78, 171,
- 5, 251, 7, 171, 5, 254, 83, 171, 5, 213, 147, 171, 1, 61, 171, 1, 255,
- 82, 171, 1, 74, 171, 1, 236, 40, 171, 1, 69, 171, 1, 214, 118, 171, 1,
- 149, 153, 171, 1, 149, 156, 171, 25, 251, 10, 76, 171, 1, 76, 171, 1,
- 254, 210, 171, 25, 251, 10, 78, 171, 1, 78, 171, 1, 253, 200, 171, 1,
- 176, 171, 1, 234, 138, 171, 1, 243, 142, 171, 1, 243, 0, 171, 1, 229, 82,
- 171, 1, 251, 41, 171, 1, 250, 165, 171, 1, 235, 147, 171, 1, 235, 120,
- 171, 1, 227, 169, 171, 1, 215, 157, 171, 1, 215, 145, 171, 1, 248, 143,
- 171, 1, 248, 127, 171, 1, 228, 115, 171, 1, 217, 106, 171, 1, 216, 209,
- 171, 1, 248, 229, 171, 1, 248, 33, 171, 1, 198, 171, 1, 191, 171, 1, 225,
- 150, 171, 1, 252, 199, 171, 1, 252, 26, 171, 1, 186, 171, 1, 192, 171, 1,
- 205, 171, 1, 233, 141, 171, 1, 232, 190, 171, 1, 214, 27, 171, 1, 220,
- 104, 171, 1, 218, 225, 171, 1, 206, 171, 1, 162, 171, 5, 227, 209, 171,
- 5, 253, 183, 171, 25, 5, 255, 82, 171, 25, 5, 74, 171, 25, 5, 236, 40,
- 171, 25, 5, 69, 171, 25, 5, 214, 118, 171, 25, 5, 149, 153, 171, 25, 5,
- 149, 222, 182, 171, 25, 5, 251, 10, 76, 171, 25, 5, 76, 171, 25, 5, 254,
- 210, 171, 25, 5, 251, 10, 78, 171, 25, 5, 78, 171, 25, 5, 253, 200, 171,
- 5, 213, 152, 171, 226, 208, 171, 1, 149, 222, 182, 171, 1, 149, 232, 191,
- 171, 25, 5, 149, 156, 171, 25, 5, 149, 232, 191, 171, 21, 210, 86, 171,
- 21, 111, 171, 21, 105, 171, 21, 158, 171, 21, 161, 171, 21, 190, 171, 21,
- 195, 171, 21, 199, 171, 21, 196, 171, 21, 201, 171, 255, 30, 50, 171,
- 222, 120, 50, 157, 5, 251, 7, 157, 5, 254, 83, 157, 5, 213, 147, 157, 1,
- 61, 157, 1, 255, 82, 157, 1, 74, 157, 1, 236, 40, 157, 1, 69, 157, 1,
- 214, 118, 157, 1, 149, 153, 157, 1, 149, 156, 157, 1, 76, 157, 1, 254,
- 210, 157, 1, 78, 157, 1, 253, 200, 157, 1, 176, 157, 1, 234, 138, 157, 1,
- 243, 142, 157, 1, 243, 0, 157, 1, 229, 82, 157, 1, 251, 41, 157, 1, 250,
- 165, 157, 1, 235, 147, 157, 1, 235, 120, 157, 1, 227, 169, 157, 1, 215,
- 157, 157, 1, 215, 145, 157, 1, 248, 143, 157, 1, 248, 127, 157, 1, 228,
- 115, 157, 1, 217, 106, 157, 1, 216, 209, 157, 1, 248, 229, 157, 1, 248,
- 33, 157, 1, 198, 157, 1, 191, 157, 1, 225, 150, 157, 1, 252, 199, 157, 1,
- 252, 26, 157, 1, 186, 157, 1, 192, 157, 1, 205, 157, 1, 233, 141, 157, 1,
- 232, 190, 157, 1, 214, 27, 157, 1, 220, 104, 157, 1, 218, 225, 157, 1,
- 206, 157, 1, 162, 157, 5, 227, 209, 157, 5, 253, 183, 157, 25, 5, 255,
- 82, 157, 25, 5, 74, 157, 25, 5, 236, 40, 157, 25, 5, 69, 157, 25, 5, 214,
- 118, 157, 25, 5, 149, 153, 157, 25, 5, 149, 222, 182, 157, 25, 5, 76,
- 157, 25, 5, 254, 210, 157, 25, 5, 78, 157, 25, 5, 253, 200, 157, 5, 213,
- 152, 157, 254, 211, 233, 29, 79, 157, 253, 201, 233, 29, 79, 157, 1, 222,
- 181, 157, 1, 223, 42, 157, 1, 210, 168, 157, 1, 149, 222, 182, 157, 1,
- 149, 232, 191, 157, 25, 5, 149, 156, 157, 25, 5, 149, 232, 191, 157, 21,
- 210, 86, 157, 21, 111, 157, 21, 105, 157, 21, 158, 157, 21, 161, 157, 21,
- 190, 157, 21, 195, 157, 21, 199, 157, 21, 196, 157, 21, 201, 157, 235,
- 167, 157, 1, 212, 65, 157, 244, 10, 123, 224, 24, 157, 244, 10, 123, 242,
- 34, 157, 244, 10, 134, 224, 22, 157, 244, 10, 123, 219, 119, 157, 244,
- 10, 123, 245, 196, 157, 244, 10, 134, 219, 118, 36, 5, 254, 83, 36, 5,
- 213, 147, 36, 1, 61, 36, 1, 255, 82, 36, 1, 74, 36, 1, 236, 40, 36, 1,
- 69, 36, 1, 214, 118, 36, 1, 76, 36, 1, 245, 217, 36, 1, 254, 210, 36, 1,
- 78, 36, 1, 226, 187, 36, 1, 253, 200, 36, 1, 176, 36, 1, 229, 82, 36, 1,
- 251, 41, 36, 1, 235, 147, 36, 1, 227, 169, 36, 1, 215, 157, 36, 1, 228,
- 115, 36, 1, 217, 106, 36, 1, 198, 36, 1, 228, 97, 36, 1, 191, 36, 1, 186,
- 36, 1, 192, 36, 1, 205, 36, 1, 222, 181, 36, 1, 233, 141, 36, 1, 232,
- 190, 36, 1, 232, 181, 36, 1, 214, 27, 36, 1, 220, 104, 36, 1, 218, 225,
- 36, 1, 206, 36, 1, 162, 36, 25, 5, 255, 82, 36, 25, 5, 74, 36, 25, 5,
- 236, 40, 36, 25, 5, 69, 36, 25, 5, 214, 118, 36, 25, 5, 76, 36, 25, 5,
- 245, 217, 36, 25, 5, 254, 210, 36, 25, 5, 78, 36, 25, 5, 226, 187, 36,
- 25, 5, 253, 200, 36, 5, 213, 152, 36, 226, 208, 36, 253, 201, 233, 29,
- 79, 36, 21, 210, 86, 36, 21, 111, 36, 21, 105, 36, 21, 158, 36, 21, 161,
- 36, 21, 190, 36, 21, 195, 36, 21, 199, 36, 21, 196, 36, 21, 201, 36, 54,
- 216, 248, 36, 54, 123, 240, 217, 36, 54, 123, 216, 148, 36, 248, 154, 50,
- 36, 230, 140, 50, 36, 211, 45, 50, 36, 248, 95, 50, 36, 249, 147, 50, 36,
- 253, 246, 72, 50, 36, 222, 120, 50, 36, 54, 50, 148, 5, 251, 7, 148, 5,
- 254, 83, 148, 5, 213, 147, 148, 1, 61, 148, 1, 255, 82, 148, 1, 74, 148,
- 1, 236, 40, 148, 1, 69, 148, 1, 214, 118, 148, 1, 149, 153, 148, 1, 149,
- 156, 148, 1, 76, 148, 1, 245, 217, 148, 1, 254, 210, 148, 1, 78, 148, 1,
- 226, 187, 148, 1, 253, 200, 148, 1, 176, 148, 1, 234, 138, 148, 1, 243,
- 142, 148, 1, 243, 0, 148, 1, 229, 82, 148, 1, 251, 41, 148, 1, 250, 165,
- 148, 1, 235, 147, 148, 1, 235, 120, 148, 1, 227, 169, 148, 1, 215, 157,
- 148, 1, 215, 145, 148, 1, 248, 143, 148, 1, 248, 127, 148, 1, 228, 115,
- 148, 1, 217, 106, 148, 1, 216, 209, 148, 1, 248, 229, 148, 1, 248, 33,
- 148, 1, 198, 148, 1, 191, 148, 1, 225, 150, 148, 1, 252, 199, 148, 1,
- 252, 26, 148, 1, 186, 148, 1, 192, 148, 1, 205, 148, 1, 222, 181, 148, 1,
- 233, 141, 148, 1, 232, 190, 148, 1, 214, 27, 148, 1, 220, 104, 148, 1,
- 218, 225, 148, 1, 206, 148, 1, 162, 148, 5, 253, 183, 148, 25, 5, 255,
- 82, 148, 25, 5, 74, 148, 25, 5, 236, 40, 148, 25, 5, 69, 148, 25, 5, 214,
- 118, 148, 25, 5, 149, 153, 148, 25, 5, 149, 222, 182, 148, 25, 5, 76,
- 148, 25, 5, 245, 217, 148, 25, 5, 254, 210, 148, 25, 5, 78, 148, 25, 5,
- 226, 187, 148, 25, 5, 253, 200, 148, 5, 213, 152, 148, 233, 29, 79, 148,
- 254, 211, 233, 29, 79, 148, 1, 215, 184, 148, 1, 246, 46, 148, 1, 149,
- 222, 182, 148, 1, 149, 232, 191, 148, 25, 5, 149, 156, 148, 25, 5, 149,
- 232, 191, 148, 21, 210, 86, 148, 21, 111, 148, 21, 105, 148, 21, 158,
- 148, 21, 161, 148, 21, 190, 148, 21, 195, 148, 21, 199, 148, 21, 196,
- 148, 21, 201, 148, 244, 10, 21, 210, 87, 31, 226, 241, 224, 226, 64, 161,
- 148, 244, 10, 21, 123, 31, 226, 241, 224, 226, 64, 161, 148, 244, 10, 21,
- 113, 31, 226, 241, 224, 226, 64, 161, 148, 244, 10, 21, 134, 31, 226,
- 241, 224, 226, 64, 161, 148, 244, 10, 21, 123, 31, 245, 50, 224, 226, 64,
- 161, 148, 244, 10, 21, 113, 31, 245, 50, 224, 226, 64, 161, 148, 244, 10,
- 21, 134, 31, 245, 50, 224, 226, 64, 161, 148, 5, 215, 84, 165, 5, 254,
- 83, 165, 5, 213, 147, 165, 1, 61, 165, 1, 255, 82, 165, 1, 74, 165, 1,
- 236, 40, 165, 1, 69, 165, 1, 214, 118, 165, 1, 149, 153, 165, 1, 149,
- 156, 165, 1, 76, 165, 1, 245, 217, 165, 1, 254, 210, 165, 1, 78, 165, 1,
- 226, 187, 165, 1, 253, 200, 165, 1, 176, 165, 1, 234, 138, 165, 1, 243,
- 142, 165, 1, 243, 0, 165, 1, 229, 82, 165, 1, 251, 41, 165, 1, 250, 165,
- 165, 1, 235, 147, 165, 1, 235, 120, 165, 1, 227, 169, 165, 1, 215, 157,
- 165, 1, 215, 145, 165, 1, 248, 143, 165, 1, 248, 127, 165, 1, 228, 115,
- 165, 1, 217, 106, 165, 1, 216, 209, 165, 1, 248, 229, 165, 1, 248, 33,
- 165, 1, 198, 165, 1, 191, 165, 1, 225, 150, 165, 1, 252, 199, 165, 1,
- 252, 26, 165, 1, 186, 165, 1, 192, 165, 1, 205, 165, 1, 222, 181, 165, 1,
- 233, 141, 165, 1, 232, 190, 165, 1, 214, 27, 165, 1, 220, 104, 165, 1,
- 218, 225, 165, 1, 206, 165, 1, 162, 165, 5, 227, 209, 165, 5, 253, 183,
- 165, 25, 5, 255, 82, 165, 25, 5, 74, 165, 25, 5, 236, 40, 165, 25, 5, 69,
- 165, 25, 5, 214, 118, 165, 25, 5, 149, 153, 165, 25, 5, 149, 222, 182,
- 165, 25, 5, 76, 165, 25, 5, 245, 217, 165, 25, 5, 254, 210, 165, 25, 5,
- 78, 165, 25, 5, 226, 187, 165, 25, 5, 253, 200, 165, 5, 213, 152, 165,
- 233, 29, 79, 165, 254, 211, 233, 29, 79, 165, 1, 244, 204, 165, 1, 149,
- 222, 182, 165, 1, 149, 232, 191, 165, 25, 5, 149, 156, 165, 25, 5, 149,
- 232, 191, 165, 21, 210, 86, 165, 21, 111, 165, 21, 105, 165, 21, 158,
- 165, 21, 161, 165, 21, 190, 165, 21, 195, 165, 21, 199, 165, 21, 196,
- 165, 21, 201, 165, 5, 235, 108, 165, 5, 214, 161, 136, 5, 254, 83, 136,
- 5, 213, 147, 136, 1, 61, 136, 1, 255, 82, 136, 1, 74, 136, 1, 236, 40,
- 136, 1, 69, 136, 1, 214, 118, 136, 1, 149, 153, 136, 1, 149, 156, 136, 1,
- 76, 136, 1, 245, 217, 136, 1, 254, 210, 136, 1, 78, 136, 1, 226, 187,
- 136, 1, 253, 200, 136, 1, 176, 136, 1, 234, 138, 136, 1, 243, 142, 136,
- 1, 243, 0, 136, 1, 229, 82, 136, 1, 251, 41, 136, 1, 250, 165, 136, 1,
- 235, 147, 136, 1, 235, 120, 136, 1, 227, 169, 136, 1, 215, 157, 136, 1,
- 215, 145, 136, 1, 248, 143, 136, 1, 248, 127, 136, 1, 228, 115, 136, 1,
- 217, 106, 136, 1, 216, 209, 136, 1, 248, 229, 136, 1, 248, 33, 136, 1,
- 198, 136, 1, 228, 97, 136, 1, 191, 136, 1, 225, 150, 136, 1, 252, 199,
- 136, 1, 252, 26, 136, 1, 186, 136, 1, 192, 136, 1, 205, 136, 1, 222, 181,
- 136, 1, 233, 141, 136, 1, 232, 190, 136, 1, 232, 181, 136, 1, 214, 27,
- 136, 1, 220, 104, 136, 1, 218, 225, 136, 1, 206, 136, 1, 162, 136, 1,
- 215, 126, 136, 5, 253, 183, 136, 25, 5, 255, 82, 136, 25, 5, 74, 136, 25,
- 5, 236, 40, 136, 25, 5, 69, 136, 25, 5, 214, 118, 136, 25, 5, 149, 153,
- 136, 25, 5, 149, 222, 182, 136, 25, 5, 76, 136, 25, 5, 245, 217, 136, 25,
- 5, 254, 210, 136, 25, 5, 78, 136, 25, 5, 226, 187, 136, 25, 5, 253, 200,
- 136, 5, 213, 152, 136, 1, 59, 223, 76, 136, 253, 201, 233, 29, 79, 136,
- 1, 149, 222, 182, 136, 1, 149, 232, 191, 136, 25, 5, 149, 156, 136, 25,
- 5, 149, 232, 191, 136, 21, 210, 86, 136, 21, 111, 136, 21, 105, 136, 21,
- 158, 136, 21, 161, 136, 21, 190, 136, 21, 195, 136, 21, 199, 136, 21,
- 196, 136, 21, 201, 136, 54, 216, 248, 136, 54, 123, 240, 217, 136, 54,
- 123, 216, 148, 136, 244, 10, 123, 224, 24, 136, 244, 10, 123, 242, 34,
- 136, 244, 10, 134, 224, 22, 136, 248, 158, 79, 136, 1, 250, 107, 228,
- 116, 136, 1, 250, 107, 230, 30, 136, 1, 250, 107, 222, 182, 136, 1, 250,
- 107, 156, 136, 1, 250, 107, 232, 191, 136, 1, 250, 107, 235, 29, 175, 5,
- 254, 82, 175, 5, 213, 146, 175, 1, 253, 173, 175, 1, 255, 36, 175, 1,
- 254, 232, 175, 1, 254, 247, 175, 1, 235, 157, 175, 1, 236, 39, 175, 1,
- 214, 110, 175, 1, 214, 112, 175, 1, 235, 180, 175, 1, 235, 181, 175, 1,
- 236, 25, 175, 1, 236, 27, 175, 1, 245, 25, 175, 1, 245, 212, 175, 1, 254,
- 197, 175, 1, 226, 112, 175, 1, 226, 181, 175, 1, 253, 186, 175, 1, 254,
- 154, 234, 193, 175, 1, 231, 214, 234, 193, 175, 1, 254, 154, 243, 89,
- 175, 1, 231, 214, 243, 89, 175, 1, 234, 235, 229, 227, 175, 1, 221, 238,
- 243, 89, 175, 1, 254, 154, 250, 224, 175, 1, 231, 214, 250, 224, 175, 1,
- 254, 154, 235, 133, 175, 1, 231, 214, 235, 133, 175, 1, 217, 99, 229,
- 227, 175, 1, 217, 99, 221, 237, 229, 228, 175, 1, 221, 238, 235, 133,
- 175, 1, 254, 154, 215, 153, 175, 1, 231, 214, 215, 153, 175, 1, 254, 154,
- 248, 134, 175, 1, 231, 214, 248, 134, 175, 1, 230, 58, 229, 185, 175, 1,
- 221, 238, 248, 134, 175, 1, 254, 154, 217, 31, 175, 1, 231, 214, 217, 31,
- 175, 1, 254, 154, 248, 152, 175, 1, 231, 214, 248, 152, 175, 1, 248, 182,
- 229, 185, 175, 1, 221, 238, 248, 152, 175, 1, 254, 154, 225, 232, 175, 1,
- 231, 214, 225, 232, 175, 1, 254, 154, 252, 120, 175, 1, 231, 214, 252,
- 120, 175, 1, 231, 136, 175, 1, 254, 139, 252, 120, 175, 1, 211, 51, 175,
- 1, 223, 136, 175, 1, 248, 182, 233, 73, 175, 1, 214, 1, 175, 1, 217, 99,
- 221, 212, 175, 1, 230, 58, 221, 212, 175, 1, 248, 182, 221, 212, 175, 1,
- 241, 249, 175, 1, 230, 58, 233, 73, 175, 1, 244, 164, 175, 5, 254, 186,
- 175, 25, 5, 254, 242, 175, 25, 5, 234, 161, 254, 249, 175, 25, 5, 247,
- 236, 254, 249, 175, 25, 5, 234, 161, 235, 177, 175, 25, 5, 247, 236, 235,
- 177, 175, 25, 5, 234, 161, 226, 92, 175, 25, 5, 247, 236, 226, 92, 175,
- 25, 5, 243, 131, 175, 25, 5, 234, 21, 175, 25, 5, 247, 236, 234, 21, 175,
- 25, 5, 234, 23, 248, 75, 175, 25, 5, 234, 22, 242, 54, 254, 242, 175, 25,
- 5, 234, 22, 242, 54, 247, 236, 254, 242, 175, 25, 5, 234, 22, 242, 54,
- 243, 88, 175, 25, 5, 243, 88, 175, 25, 5, 247, 236, 243, 131, 175, 25, 5,
- 247, 236, 243, 88, 175, 224, 144, 233, 213, 168, 135, 234, 35, 234, 252,
- 168, 135, 234, 112, 234, 134, 168, 135, 234, 112, 234, 105, 168, 135,
- 234, 112, 234, 101, 168, 135, 234, 112, 234, 109, 168, 135, 234, 112,
- 223, 157, 168, 135, 229, 10, 228, 253, 168, 135, 250, 95, 250, 155, 168,
- 135, 250, 95, 250, 103, 168, 135, 250, 95, 250, 154, 168, 135, 219, 61,
- 219, 60, 168, 135, 250, 95, 250, 91, 168, 135, 210, 245, 210, 252, 168,
- 135, 247, 154, 250, 162, 168, 135, 216, 43, 225, 242, 168, 135, 216, 158,
- 216, 201, 168, 135, 216, 158, 229, 206, 168, 135, 216, 158, 225, 114,
- 168, 135, 228, 80, 229, 103, 168, 135, 247, 154, 248, 76, 168, 135, 216,
- 43, 217, 56, 168, 135, 216, 158, 216, 132, 168, 135, 216, 158, 216, 205,
- 168, 135, 216, 158, 216, 155, 168, 135, 228, 80, 227, 242, 168, 135, 251,
- 214, 252, 172, 168, 135, 225, 20, 225, 45, 168, 135, 225, 125, 225, 116,
- 168, 135, 244, 52, 244, 204, 168, 135, 225, 125, 225, 144, 168, 135, 244,
- 52, 244, 181, 168, 135, 225, 125, 221, 249, 168, 135, 230, 167, 186, 168,
- 135, 210, 245, 211, 79, 168, 135, 222, 214, 222, 141, 168, 135, 222, 142,
- 168, 135, 232, 163, 232, 212, 168, 135, 232, 103, 168, 135, 211, 228,
- 212, 61, 168, 135, 219, 61, 222, 8, 168, 135, 219, 61, 222, 116, 168,
- 135, 219, 61, 218, 83, 168, 135, 241, 76, 241, 166, 168, 135, 232, 163,
- 250, 76, 168, 135, 144, 254, 123, 168, 135, 241, 76, 228, 75, 168, 135,
- 226, 72, 168, 135, 221, 232, 61, 168, 135, 231, 209, 242, 24, 168, 135,
- 221, 232, 255, 82, 168, 135, 221, 232, 254, 144, 168, 135, 221, 232, 74,
- 168, 135, 221, 232, 236, 40, 168, 135, 221, 232, 214, 214, 168, 135, 221,
- 232, 214, 212, 168, 135, 221, 232, 69, 168, 135, 221, 232, 214, 118, 168,
- 135, 225, 127, 168, 249, 106, 16, 252, 173, 168, 135, 221, 232, 76, 168,
- 135, 221, 232, 254, 252, 168, 135, 221, 232, 78, 168, 135, 221, 232, 254,
- 211, 231, 203, 168, 135, 221, 232, 254, 211, 231, 204, 168, 135, 233,
- 112, 168, 135, 231, 200, 168, 135, 231, 201, 168, 135, 231, 209, 245,
- 188, 168, 135, 231, 209, 216, 157, 168, 135, 231, 209, 215, 229, 168,
- 135, 231, 209, 250, 143, 168, 135, 216, 199, 168, 135, 228, 210, 168,
- 135, 211, 73, 168, 135, 244, 43, 168, 21, 210, 86, 168, 21, 111, 168, 21,
- 105, 168, 21, 158, 168, 21, 161, 168, 21, 190, 168, 21, 195, 168, 21,
- 199, 168, 21, 196, 168, 21, 201, 168, 135, 254, 119, 168, 135, 234, 110,
- 209, 209, 1, 234, 34, 209, 209, 1, 234, 112, 218, 36, 209, 209, 1, 234,
- 112, 217, 63, 209, 209, 1, 229, 9, 209, 209, 1, 249, 246, 209, 209, 1,
- 219, 61, 217, 63, 209, 209, 1, 227, 138, 209, 209, 1, 247, 153, 209, 209,
- 1, 112, 209, 209, 1, 216, 158, 218, 36, 209, 209, 1, 216, 158, 217, 63,
- 209, 209, 1, 228, 79, 209, 209, 1, 251, 213, 209, 209, 1, 225, 19, 209,
- 209, 1, 225, 125, 218, 36, 209, 209, 1, 244, 52, 217, 63, 209, 209, 1,
- 225, 125, 217, 63, 209, 209, 1, 244, 52, 218, 36, 209, 209, 1, 230, 166,
- 209, 209, 1, 210, 244, 209, 209, 1, 232, 163, 232, 212, 209, 209, 1, 232,
- 163, 232, 127, 209, 209, 1, 211, 227, 209, 209, 1, 219, 61, 218, 36, 209,
- 209, 1, 241, 76, 218, 36, 209, 209, 1, 78, 209, 209, 1, 241, 76, 217, 63,
- 209, 209, 245, 171, 209, 209, 25, 5, 61, 209, 209, 25, 5, 231, 209, 234,
- 240, 209, 209, 25, 5, 255, 82, 209, 209, 25, 5, 254, 144, 209, 209, 25,
- 5, 74, 209, 209, 25, 5, 236, 40, 209, 209, 25, 5, 211, 117, 209, 209, 25,
- 5, 210, 169, 209, 209, 25, 5, 69, 209, 209, 25, 5, 214, 118, 209, 209,
- 25, 5, 231, 209, 234, 19, 209, 209, 220, 147, 5, 232, 162, 209, 209, 220,
- 147, 5, 227, 138, 209, 209, 25, 5, 76, 209, 209, 25, 5, 245, 203, 209,
- 209, 25, 5, 78, 209, 209, 25, 5, 253, 175, 209, 209, 25, 5, 254, 210,
- 209, 209, 234, 35, 233, 141, 209, 209, 138, 231, 209, 245, 188, 209, 209,
- 138, 231, 209, 216, 157, 209, 209, 138, 231, 209, 216, 118, 209, 209,
- 138, 231, 209, 250, 231, 209, 209, 251, 12, 79, 209, 209, 228, 219, 209,
- 209, 21, 210, 86, 209, 209, 21, 111, 209, 209, 21, 105, 209, 209, 21,
- 158, 209, 209, 21, 161, 209, 209, 21, 190, 209, 209, 21, 195, 209, 209,
- 21, 199, 209, 209, 21, 196, 209, 209, 21, 201, 209, 209, 241, 76, 228,
- 79, 209, 209, 241, 76, 230, 166, 209, 209, 1, 234, 113, 242, 181, 209,
- 209, 1, 234, 113, 227, 138, 63, 3, 226, 208, 63, 164, 242, 122, 211, 0,
- 230, 253, 215, 190, 61, 63, 164, 242, 122, 211, 0, 230, 253, 255, 168,
- 222, 218, 252, 85, 186, 63, 164, 242, 122, 211, 0, 230, 253, 255, 168,
- 242, 122, 215, 174, 186, 63, 164, 65, 211, 0, 230, 253, 231, 98, 186, 63,
- 164, 250, 4, 211, 0, 230, 253, 220, 111, 186, 63, 164, 250, 247, 211, 0,
- 230, 253, 225, 115, 220, 98, 186, 63, 164, 211, 0, 230, 253, 215, 174,
- 220, 98, 186, 63, 164, 221, 210, 220, 97, 63, 164, 251, 136, 211, 0, 230,
- 252, 63, 164, 251, 231, 220, 5, 211, 0, 230, 252, 63, 164, 235, 204, 215,
- 173, 63, 164, 248, 69, 215, 174, 251, 135, 63, 164, 220, 97, 63, 164,
- 227, 143, 220, 97, 63, 164, 215, 174, 220, 97, 63, 164, 227, 143, 215,
- 174, 220, 97, 63, 164, 222, 239, 250, 130, 218, 238, 220, 97, 63, 164,
- 223, 45, 242, 153, 220, 97, 63, 164, 250, 247, 255, 172, 222, 146, 231,
- 97, 200, 251, 15, 63, 164, 242, 122, 215, 173, 63, 232, 150, 5, 250, 163,
- 222, 145, 63, 232, 150, 5, 233, 2, 222, 145, 63, 253, 220, 5, 220, 107,
- 243, 72, 255, 173, 222, 145, 63, 253, 220, 5, 255, 170, 191, 63, 253,
- 220, 5, 221, 184, 215, 169, 63, 5, 223, 133, 247, 167, 243, 71, 63, 5,
- 223, 133, 247, 167, 242, 183, 63, 5, 223, 133, 247, 167, 242, 123, 63, 5,
- 223, 133, 229, 224, 243, 71, 63, 5, 223, 133, 229, 224, 242, 183, 63, 5,
- 223, 133, 247, 167, 223, 133, 229, 223, 63, 21, 210, 86, 63, 21, 111, 63,
- 21, 105, 63, 21, 158, 63, 21, 161, 63, 21, 190, 63, 21, 195, 63, 21, 199,
- 63, 21, 196, 63, 21, 201, 63, 21, 163, 111, 63, 21, 163, 105, 63, 21,
- 163, 158, 63, 21, 163, 161, 63, 21, 163, 190, 63, 21, 163, 195, 63, 21,
- 163, 199, 63, 21, 163, 196, 63, 21, 163, 201, 63, 21, 163, 210, 86, 63,
- 164, 251, 138, 222, 145, 63, 164, 229, 73, 251, 76, 227, 153, 210, 25,
- 63, 164, 250, 247, 255, 172, 222, 146, 251, 77, 230, 207, 251, 15, 63,
- 164, 229, 73, 251, 76, 220, 108, 222, 145, 63, 164, 250, 140, 230, 252,
- 63, 164, 215, 185, 255, 169, 63, 164, 242, 107, 222, 146, 242, 70, 63,
- 164, 242, 107, 222, 146, 242, 76, 63, 164, 254, 124, 234, 129, 242, 70,
- 63, 164, 254, 124, 234, 129, 242, 76, 63, 5, 211, 65, 215, 172, 63, 5,
- 231, 172, 215, 172, 63, 1, 176, 63, 1, 234, 138, 63, 1, 243, 142, 63, 1,
- 243, 0, 63, 1, 229, 82, 63, 1, 251, 41, 63, 1, 250, 165, 63, 1, 235, 147,
- 63, 1, 227, 169, 63, 1, 215, 157, 63, 1, 215, 145, 63, 1, 248, 143, 63,
- 1, 248, 127, 63, 1, 228, 115, 63, 1, 217, 106, 63, 1, 216, 209, 63, 1,
- 248, 229, 63, 1, 248, 33, 63, 1, 198, 63, 1, 191, 63, 1, 225, 150, 63, 1,
- 252, 199, 63, 1, 252, 26, 63, 1, 186, 63, 1, 215, 184, 63, 1, 215, 176,
- 63, 1, 246, 46, 63, 1, 246, 41, 63, 1, 212, 65, 63, 1, 210, 82, 63, 1,
- 210, 116, 63, 1, 255, 175, 63, 1, 192, 63, 1, 205, 63, 1, 233, 141, 63,
- 1, 220, 104, 63, 1, 218, 225, 63, 1, 206, 63, 1, 162, 63, 1, 61, 63, 1,
- 233, 237, 63, 1, 244, 85, 205, 63, 1, 234, 52, 63, 1, 222, 181, 63, 25,
- 5, 255, 82, 63, 25, 5, 74, 63, 25, 5, 236, 40, 63, 25, 5, 69, 63, 25, 5,
- 214, 118, 63, 25, 5, 149, 153, 63, 25, 5, 149, 222, 182, 63, 25, 5, 149,
- 156, 63, 25, 5, 149, 232, 191, 63, 25, 5, 76, 63, 25, 5, 245, 217, 63,
- 25, 5, 78, 63, 25, 5, 226, 187, 63, 5, 222, 224, 218, 85, 229, 83, 222,
- 213, 63, 5, 222, 218, 252, 84, 63, 25, 5, 223, 52, 74, 63, 25, 5, 223,
- 52, 236, 40, 63, 5, 227, 153, 210, 26, 229, 231, 248, 229, 63, 5, 219,
- 73, 233, 66, 63, 164, 242, 36, 63, 164, 226, 61, 63, 5, 233, 69, 222,
- 145, 63, 5, 211, 70, 222, 145, 63, 5, 233, 70, 215, 185, 251, 15, 63, 5,
- 231, 100, 251, 15, 63, 5, 242, 126, 251, 16, 223, 43, 63, 5, 242, 126,
- 231, 90, 223, 43, 63, 5, 235, 200, 231, 100, 251, 15, 63, 218, 74, 5,
- 233, 70, 215, 185, 251, 15, 63, 218, 74, 5, 231, 100, 251, 15, 63, 218,
- 74, 5, 235, 200, 231, 100, 251, 15, 63, 218, 74, 1, 176, 63, 218, 74, 1,
- 234, 138, 63, 218, 74, 1, 243, 142, 63, 218, 74, 1, 243, 0, 63, 218, 74,
- 1, 229, 82, 63, 218, 74, 1, 251, 41, 63, 218, 74, 1, 250, 165, 63, 218,
- 74, 1, 235, 147, 63, 218, 74, 1, 227, 169, 63, 218, 74, 1, 215, 157, 63,
- 218, 74, 1, 215, 145, 63, 218, 74, 1, 248, 143, 63, 218, 74, 1, 248, 127,
- 63, 218, 74, 1, 228, 115, 63, 218, 74, 1, 217, 106, 63, 218, 74, 1, 216,
- 209, 63, 218, 74, 1, 248, 229, 63, 218, 74, 1, 248, 33, 63, 218, 74, 1,
- 198, 63, 218, 74, 1, 191, 63, 218, 74, 1, 225, 150, 63, 218, 74, 1, 252,
- 199, 63, 218, 74, 1, 252, 26, 63, 218, 74, 1, 186, 63, 218, 74, 1, 215,
- 184, 63, 218, 74, 1, 215, 176, 63, 218, 74, 1, 246, 46, 63, 218, 74, 1,
- 246, 41, 63, 218, 74, 1, 212, 65, 63, 218, 74, 1, 210, 82, 63, 218, 74,
- 1, 210, 116, 63, 218, 74, 1, 255, 175, 63, 218, 74, 1, 192, 63, 218, 74,
- 1, 205, 63, 218, 74, 1, 233, 141, 63, 218, 74, 1, 220, 104, 63, 218, 74,
- 1, 218, 225, 63, 218, 74, 1, 206, 63, 218, 74, 1, 162, 63, 218, 74, 1,
- 61, 63, 218, 74, 1, 233, 237, 63, 218, 74, 1, 244, 85, 212, 65, 63, 218,
- 74, 1, 244, 85, 192, 63, 218, 74, 1, 244, 85, 205, 63, 233, 224, 222,
- 143, 234, 138, 63, 233, 224, 222, 143, 234, 139, 251, 77, 230, 207, 251,
- 15, 63, 251, 4, 5, 114, 252, 78, 63, 251, 4, 5, 193, 252, 78, 63, 251, 4,
- 5, 251, 5, 217, 21, 63, 251, 4, 5, 221, 209, 255, 174, 63, 16, 246, 99,
- 251, 133, 63, 16, 223, 132, 222, 225, 63, 16, 226, 81, 243, 70, 63, 16,
- 223, 132, 222, 226, 223, 45, 242, 152, 63, 16, 225, 115, 191, 63, 16,
- 228, 64, 251, 133, 63, 16, 228, 64, 251, 134, 227, 143, 255, 171, 63, 16,
- 228, 64, 251, 134, 242, 124, 255, 171, 63, 16, 228, 64, 251, 134, 251,
- 77, 255, 171, 63, 5, 223, 133, 229, 224, 223, 133, 247, 166, 63, 5, 223,
- 133, 229, 224, 242, 123, 63, 164, 251, 137, 220, 5, 242, 222, 230, 253,
- 223, 44, 63, 164, 230, 168, 211, 0, 242, 222, 230, 253, 223, 44, 63, 164,
- 227, 143, 215, 173, 63, 164, 65, 251, 160, 222, 215, 211, 0, 230, 253,
- 231, 98, 186, 63, 164, 250, 4, 251, 160, 222, 215, 211, 0, 230, 253, 220,
- 111, 186, 222, 253, 218, 0, 50, 233, 51, 218, 0, 50, 222, 253, 218, 0, 5,
- 2, 247, 126, 233, 51, 218, 0, 5, 2, 247, 126, 63, 164, 233, 61, 231, 101,
- 222, 145, 63, 164, 215, 251, 231, 101, 222, 145, 68, 1, 176, 68, 1, 234,
- 138, 68, 1, 243, 142, 68, 1, 243, 0, 68, 1, 229, 82, 68, 1, 251, 41, 68,
- 1, 250, 165, 68, 1, 235, 147, 68, 1, 235, 120, 68, 1, 227, 169, 68, 1,
- 228, 81, 68, 1, 215, 157, 68, 1, 215, 145, 68, 1, 248, 143, 68, 1, 248,
- 127, 68, 1, 228, 115, 68, 1, 217, 106, 68, 1, 216, 209, 68, 1, 248, 229,
- 68, 1, 248, 33, 68, 1, 198, 68, 1, 191, 68, 1, 225, 150, 68, 1, 252, 199,
- 68, 1, 252, 26, 68, 1, 186, 68, 1, 192, 68, 1, 205, 68, 1, 233, 141, 68,
- 1, 212, 65, 68, 1, 206, 68, 1, 162, 68, 1, 232, 190, 68, 1, 61, 68, 1,
- 220, 88, 61, 68, 1, 74, 68, 1, 236, 40, 68, 1, 69, 68, 1, 214, 118, 68,
- 1, 76, 68, 1, 230, 156, 76, 68, 1, 78, 68, 1, 253, 200, 68, 25, 5, 217,
- 65, 255, 82, 68, 25, 5, 255, 82, 68, 25, 5, 74, 68, 25, 5, 236, 40, 68,
- 25, 5, 69, 68, 25, 5, 214, 118, 68, 25, 5, 76, 68, 25, 5, 254, 210, 68,
- 25, 5, 230, 156, 236, 40, 68, 25, 5, 230, 156, 78, 68, 25, 5, 160, 48,
- 68, 5, 254, 83, 68, 5, 59, 51, 68, 5, 213, 147, 68, 5, 213, 152, 68, 5,
- 253, 243, 68, 117, 5, 147, 192, 68, 117, 5, 147, 205, 68, 117, 5, 147,
- 212, 65, 68, 117, 5, 147, 162, 68, 1, 242, 139, 206, 68, 21, 210, 86, 68,
- 21, 111, 68, 21, 105, 68, 21, 158, 68, 21, 161, 68, 21, 190, 68, 21, 195,
- 68, 21, 199, 68, 21, 196, 68, 21, 201, 68, 5, 232, 198, 221, 174, 68, 5,
- 221, 174, 68, 16, 232, 159, 68, 16, 249, 221, 68, 16, 254, 229, 68, 16,
- 243, 55, 68, 1, 220, 104, 68, 1, 218, 225, 68, 1, 149, 153, 68, 1, 149,
- 222, 182, 68, 1, 149, 156, 68, 1, 149, 232, 191, 68, 25, 5, 149, 153, 68,
- 25, 5, 149, 222, 182, 68, 25, 5, 149, 156, 68, 25, 5, 149, 232, 191, 68,
- 1, 230, 156, 229, 82, 68, 1, 230, 156, 235, 120, 68, 1, 230, 156, 252,
- 119, 68, 1, 230, 156, 252, 114, 68, 117, 5, 230, 156, 147, 198, 68, 117,
- 5, 230, 156, 147, 186, 68, 117, 5, 230, 156, 147, 233, 141, 68, 1, 220,
- 110, 234, 219, 220, 104, 68, 25, 5, 220, 110, 234, 219, 245, 63, 68, 138,
- 164, 220, 110, 234, 219, 241, 254, 68, 138, 164, 220, 110, 234, 219, 234,
- 189, 225, 124, 68, 1, 212, 7, 224, 111, 234, 219, 216, 209, 68, 1, 212,
- 7, 224, 111, 234, 219, 224, 117, 68, 25, 5, 212, 7, 224, 111, 234, 219,
- 245, 63, 68, 25, 5, 212, 7, 224, 111, 234, 219, 214, 214, 68, 5, 212, 7,
- 224, 111, 234, 219, 216, 30, 68, 5, 212, 7, 224, 111, 234, 219, 216, 29,
- 68, 5, 212, 7, 224, 111, 234, 219, 216, 28, 68, 5, 212, 7, 224, 111, 234,
- 219, 216, 27, 68, 5, 212, 7, 224, 111, 234, 219, 216, 26, 68, 1, 245,
- 227, 224, 111, 234, 219, 228, 115, 68, 1, 245, 227, 224, 111, 234, 219,
- 210, 176, 68, 1, 245, 227, 224, 111, 234, 219, 242, 224, 68, 25, 5, 243,
- 66, 234, 219, 74, 68, 25, 5, 234, 194, 226, 238, 68, 25, 5, 234, 194, 69,
- 68, 25, 5, 234, 194, 245, 217, 68, 1, 220, 88, 176, 68, 1, 220, 88, 234,
- 138, 68, 1, 220, 88, 243, 142, 68, 1, 220, 88, 251, 41, 68, 1, 220, 88,
- 210, 116, 68, 1, 220, 88, 227, 169, 68, 1, 220, 88, 248, 229, 68, 1, 220,
- 88, 198, 68, 1, 220, 88, 225, 150, 68, 1, 220, 88, 244, 204, 68, 1, 220,
- 88, 252, 199, 68, 1, 220, 88, 216, 209, 68, 1, 220, 88, 162, 68, 117, 5,
- 220, 88, 147, 212, 65, 68, 25, 5, 220, 88, 255, 82, 68, 25, 5, 220, 88,
- 76, 68, 25, 5, 220, 88, 160, 48, 68, 25, 5, 220, 88, 40, 211, 117, 68, 5,
- 220, 88, 216, 29, 68, 5, 220, 88, 216, 28, 68, 5, 220, 88, 216, 26, 68,
- 5, 220, 88, 216, 25, 68, 5, 220, 88, 249, 160, 216, 29, 68, 5, 220, 88,
- 249, 160, 216, 28, 68, 5, 220, 88, 249, 160, 245, 161, 216, 31, 68, 1,
- 222, 130, 226, 67, 244, 204, 68, 5, 222, 130, 226, 67, 216, 26, 68, 220,
- 88, 21, 210, 86, 68, 220, 88, 21, 111, 68, 220, 88, 21, 105, 68, 220, 88,
- 21, 158, 68, 220, 88, 21, 161, 68, 220, 88, 21, 190, 68, 220, 88, 21,
- 195, 68, 220, 88, 21, 199, 68, 220, 88, 21, 196, 68, 220, 88, 21, 201,
- 68, 5, 234, 132, 216, 30, 68, 5, 234, 132, 216, 28, 68, 25, 5, 254, 199,
- 61, 68, 25, 5, 254, 199, 254, 210, 68, 16, 220, 88, 111, 68, 16, 220, 88,
- 245, 38, 98, 6, 1, 254, 131, 98, 6, 1, 252, 160, 98, 6, 1, 243, 113, 98,
- 6, 1, 247, 136, 98, 6, 1, 245, 158, 98, 6, 1, 213, 160, 98, 6, 1, 210,
- 89, 98, 6, 1, 217, 61, 98, 6, 1, 236, 6, 98, 6, 1, 234, 240, 98, 6, 1,
- 233, 87, 98, 6, 1, 231, 190, 98, 6, 1, 229, 200, 98, 6, 1, 226, 200, 98,
- 6, 1, 226, 21, 98, 6, 1, 210, 78, 98, 6, 1, 223, 174, 98, 6, 1, 221, 245,
- 98, 6, 1, 217, 51, 98, 6, 1, 214, 190, 98, 6, 1, 225, 143, 98, 6, 1, 234,
- 127, 98, 6, 1, 242, 248, 98, 6, 1, 224, 76, 98, 6, 1, 220, 22, 98, 6, 1,
- 250, 105, 98, 6, 1, 251, 15, 98, 6, 1, 235, 106, 98, 6, 1, 250, 48, 98,
- 6, 1, 250, 151, 98, 6, 1, 211, 163, 98, 6, 1, 235, 117, 98, 6, 1, 242,
- 50, 98, 6, 1, 241, 245, 98, 6, 1, 241, 182, 98, 6, 1, 212, 22, 98, 6, 1,
- 242, 11, 98, 6, 1, 241, 72, 98, 6, 1, 210, 246, 98, 6, 1, 254, 241, 98,
- 1, 254, 131, 98, 1, 252, 160, 98, 1, 243, 113, 98, 1, 247, 136, 98, 1,
- 245, 158, 98, 1, 213, 160, 98, 1, 210, 89, 98, 1, 217, 61, 98, 1, 236, 6,
- 98, 1, 234, 240, 98, 1, 233, 87, 98, 1, 231, 190, 98, 1, 229, 200, 98, 1,
- 226, 200, 98, 1, 226, 21, 98, 1, 210, 78, 98, 1, 223, 174, 98, 1, 221,
- 245, 98, 1, 217, 51, 98, 1, 214, 190, 98, 1, 225, 143, 98, 1, 234, 127,
- 98, 1, 242, 248, 98, 1, 224, 76, 98, 1, 220, 22, 98, 1, 250, 105, 98, 1,
- 251, 15, 98, 1, 235, 106, 98, 1, 250, 48, 98, 1, 250, 151, 98, 1, 211,
- 163, 98, 1, 235, 117, 98, 1, 242, 50, 98, 1, 241, 245, 98, 1, 241, 182,
- 98, 1, 212, 22, 98, 1, 242, 11, 98, 1, 241, 72, 98, 1, 244, 129, 98, 1,
- 210, 246, 98, 1, 245, 173, 98, 1, 215, 94, 243, 113, 98, 1, 254, 205, 98,
- 226, 19, 220, 139, 58, 1, 98, 229, 200, 98, 1, 254, 241, 98, 1, 242, 10,
- 50, 98, 1, 233, 133, 50, 24, 100, 234, 64, 24, 100, 218, 217, 24, 100,
- 228, 231, 24, 100, 216, 102, 24, 100, 218, 206, 24, 100, 223, 29, 24,
- 100, 230, 222, 24, 100, 225, 98, 24, 100, 218, 214, 24, 100, 219, 150,
- 24, 100, 218, 211, 24, 100, 236, 63, 24, 100, 250, 54, 24, 100, 218, 221,
- 24, 100, 250, 114, 24, 100, 234, 116, 24, 100, 216, 174, 24, 100, 225,
- 134, 24, 100, 241, 179, 24, 100, 228, 227, 24, 100, 218, 215, 24, 100,
- 228, 221, 24, 100, 228, 225, 24, 100, 216, 99, 24, 100, 223, 17, 24, 100,
- 218, 213, 24, 100, 223, 27, 24, 100, 234, 224, 24, 100, 230, 215, 24,
- 100, 234, 227, 24, 100, 225, 93, 24, 100, 225, 91, 24, 100, 225, 79, 24,
- 100, 225, 87, 24, 100, 225, 85, 24, 100, 225, 82, 24, 100, 225, 84, 24,
- 100, 225, 81, 24, 100, 225, 86, 24, 100, 225, 96, 24, 100, 225, 97, 24,
- 100, 225, 80, 24, 100, 225, 90, 24, 100, 234, 225, 24, 100, 234, 223, 24,
- 100, 219, 143, 24, 100, 219, 141, 24, 100, 219, 133, 24, 100, 219, 136,
- 24, 100, 219, 142, 24, 100, 219, 138, 24, 100, 219, 137, 24, 100, 219,
- 135, 24, 100, 219, 146, 24, 100, 219, 148, 24, 100, 219, 149, 24, 100,
- 219, 144, 24, 100, 219, 134, 24, 100, 219, 139, 24, 100, 219, 147, 24,
- 100, 250, 98, 24, 100, 250, 96, 24, 100, 250, 176, 24, 100, 250, 174, 24,
- 100, 226, 36, 24, 100, 236, 58, 24, 100, 236, 49, 24, 100, 236, 57, 24,
- 100, 236, 54, 24, 100, 236, 52, 24, 100, 236, 56, 24, 100, 218, 218, 24,
- 100, 236, 61, 24, 100, 236, 62, 24, 100, 236, 50, 24, 100, 236, 55, 24,
- 100, 211, 26, 24, 100, 250, 53, 24, 100, 250, 99, 24, 100, 250, 97, 24,
- 100, 250, 177, 24, 100, 250, 175, 24, 100, 250, 112, 24, 100, 250, 113,
- 24, 100, 250, 100, 24, 100, 250, 178, 24, 100, 225, 132, 24, 100, 234,
- 226, 24, 100, 218, 219, 24, 100, 211, 32, 24, 100, 234, 55, 24, 100, 228,
- 223, 24, 100, 228, 229, 24, 100, 228, 228, 24, 100, 216, 96, 24, 100,
- 244, 111, 24, 143, 244, 111, 24, 143, 61, 24, 143, 254, 252, 24, 143,
- 192, 24, 143, 211, 92, 24, 143, 245, 125, 24, 143, 76, 24, 143, 211, 36,
- 24, 143, 211, 47, 24, 143, 78, 24, 143, 212, 65, 24, 143, 212, 62, 24,
- 143, 226, 238, 24, 143, 210, 244, 24, 143, 69, 24, 143, 212, 11, 24, 143,
- 212, 22, 24, 143, 211, 250, 24, 143, 210, 212, 24, 143, 245, 63, 24, 143,
- 211, 8, 24, 143, 74, 24, 143, 255, 166, 24, 143, 255, 165, 24, 143, 211,
- 106, 24, 143, 211, 104, 24, 143, 245, 123, 24, 143, 245, 122, 24, 143,
- 245, 124, 24, 143, 211, 35, 24, 143, 211, 34, 24, 143, 227, 88, 24, 143,
- 227, 89, 24, 143, 227, 82, 24, 143, 227, 87, 24, 143, 227, 85, 24, 143,
- 210, 238, 24, 143, 210, 237, 24, 143, 210, 236, 24, 143, 210, 239, 24,
- 143, 210, 240, 24, 143, 215, 30, 24, 143, 215, 29, 24, 143, 215, 27, 24,
- 143, 215, 24, 24, 143, 215, 25, 24, 143, 210, 211, 24, 143, 210, 208, 24,
- 143, 210, 209, 24, 143, 210, 203, 24, 143, 210, 204, 24, 143, 210, 205,
- 24, 143, 210, 207, 24, 143, 245, 57, 24, 143, 245, 59, 24, 143, 211, 7,
- 24, 143, 240, 160, 24, 143, 240, 152, 24, 143, 240, 155, 24, 143, 240,
- 153, 24, 143, 240, 157, 24, 143, 240, 159, 24, 143, 254, 42, 24, 143,
- 254, 39, 24, 143, 254, 37, 24, 143, 254, 38, 24, 143, 218, 222, 24, 143,
- 255, 167, 24, 143, 211, 105, 24, 143, 211, 33, 24, 143, 227, 84, 24, 143,
- 227, 83, 24, 90, 234, 64, 24, 90, 218, 217, 24, 90, 234, 57, 24, 90, 228,
- 231, 24, 90, 228, 229, 24, 90, 228, 228, 24, 90, 216, 102, 24, 90, 223,
- 29, 24, 90, 223, 24, 24, 90, 223, 21, 24, 90, 223, 14, 24, 90, 223, 9,
- 24, 90, 223, 4, 24, 90, 223, 15, 24, 90, 223, 27, 24, 90, 230, 222, 24,
- 90, 225, 98, 24, 90, 225, 87, 24, 90, 219, 150, 24, 90, 218, 211, 24, 90,
- 236, 63, 24, 90, 250, 54, 24, 90, 250, 114, 24, 90, 234, 116, 24, 90,
- 216, 174, 24, 90, 225, 134, 24, 90, 241, 179, 24, 90, 234, 58, 24, 90,
- 234, 56, 24, 90, 228, 227, 24, 90, 228, 221, 24, 90, 228, 223, 24, 90,
- 228, 226, 24, 90, 228, 222, 24, 90, 216, 99, 24, 90, 216, 96, 24, 90,
- 223, 22, 24, 90, 223, 17, 24, 90, 223, 3, 24, 90, 223, 2, 24, 90, 218,
- 213, 24, 90, 223, 19, 24, 90, 223, 18, 24, 90, 223, 11, 24, 90, 223, 13,
- 24, 90, 223, 26, 24, 90, 223, 6, 24, 90, 223, 16, 24, 90, 223, 25, 24,
- 90, 223, 1, 24, 90, 230, 218, 24, 90, 230, 213, 24, 90, 230, 215, 24, 90,
- 230, 212, 24, 90, 230, 210, 24, 90, 230, 216, 24, 90, 230, 221, 24, 90,
- 230, 219, 24, 90, 234, 227, 24, 90, 225, 89, 24, 90, 225, 90, 24, 90,
- 225, 95, 24, 90, 234, 225, 24, 90, 219, 143, 24, 90, 219, 133, 24, 90,
- 219, 136, 24, 90, 219, 138, 24, 90, 226, 36, 24, 90, 236, 58, 24, 90,
- 236, 51, 24, 90, 218, 218, 24, 90, 236, 59, 24, 90, 211, 26, 24, 90, 211,
- 22, 24, 90, 211, 23, 24, 90, 225, 132, 24, 90, 234, 226, 24, 90, 241,
- 177, 24, 90, 241, 175, 24, 90, 241, 178, 24, 90, 241, 176, 24, 90, 211,
- 32, 24, 90, 234, 60, 24, 90, 234, 59, 24, 90, 234, 63, 24, 90, 234, 61,
- 24, 90, 234, 62, 24, 90, 218, 215, 29, 3, 162, 29, 3, 240, 229, 29, 3,
- 241, 187, 29, 3, 242, 53, 29, 3, 241, 227, 29, 3, 241, 245, 29, 3, 241,
- 75, 29, 3, 241, 74, 29, 3, 233, 141, 29, 3, 232, 103, 29, 3, 232, 247,
- 29, 3, 233, 140, 29, 3, 233, 56, 29, 3, 233, 64, 29, 3, 232, 162, 29, 3,
- 232, 75, 29, 3, 241, 196, 29, 3, 241, 190, 29, 3, 241, 192, 29, 3, 241,
- 195, 29, 3, 241, 193, 29, 3, 241, 194, 29, 3, 241, 191, 29, 3, 241, 189,
- 29, 3, 186, 29, 3, 230, 107, 29, 3, 230, 235, 29, 3, 231, 242, 29, 3,
- 231, 85, 29, 3, 231, 96, 29, 3, 230, 166, 29, 3, 230, 47, 29, 3, 217,
- 164, 29, 3, 217, 158, 29, 3, 217, 160, 29, 3, 217, 163, 29, 3, 217, 161,
- 29, 3, 217, 162, 29, 3, 217, 159, 29, 3, 217, 157, 29, 3, 205, 29, 3,
- 222, 142, 29, 3, 223, 38, 29, 3, 223, 187, 29, 3, 223, 111, 29, 3, 223,
- 131, 29, 3, 222, 213, 29, 3, 222, 111, 29, 3, 206, 29, 3, 218, 84, 29, 3,
- 219, 193, 29, 3, 222, 33, 29, 3, 221, 172, 29, 3, 221, 183, 29, 3, 219,
- 60, 29, 3, 217, 254, 29, 3, 220, 104, 29, 3, 219, 227, 29, 3, 220, 34,
- 29, 3, 220, 100, 29, 3, 220, 63, 29, 3, 220, 65, 29, 3, 220, 9, 29, 3,
- 219, 210, 29, 3, 224, 91, 29, 3, 224, 33, 29, 3, 224, 56, 29, 3, 224, 90,
- 29, 3, 224, 71, 29, 3, 224, 72, 29, 3, 224, 45, 29, 3, 224, 44, 29, 3,
- 223, 245, 29, 3, 223, 241, 29, 3, 223, 244, 29, 3, 223, 242, 29, 3, 223,
- 243, 29, 3, 224, 68, 29, 3, 224, 62, 29, 3, 224, 64, 29, 3, 224, 67, 29,
- 3, 224, 65, 29, 3, 224, 66, 29, 3, 224, 63, 29, 3, 224, 61, 29, 3, 224,
- 57, 29, 3, 224, 60, 29, 3, 224, 58, 29, 3, 224, 59, 29, 3, 252, 199, 29,
- 3, 251, 133, 29, 3, 252, 14, 29, 3, 252, 197, 29, 3, 252, 74, 29, 3, 252,
- 83, 29, 3, 251, 213, 29, 3, 251, 91, 29, 3, 214, 27, 29, 3, 212, 116, 29,
- 3, 213, 176, 29, 3, 214, 26, 29, 3, 213, 250, 29, 3, 213, 255, 29, 3,
- 213, 138, 29, 3, 212, 107, 29, 3, 217, 106, 29, 3, 215, 119, 29, 3, 216,
- 118, 29, 3, 217, 102, 29, 3, 217, 12, 29, 3, 217, 23, 29, 3, 112, 29, 3,
- 215, 80, 29, 3, 251, 41, 29, 3, 249, 120, 29, 3, 250, 59, 29, 3, 251, 40,
- 29, 3, 250, 190, 29, 3, 250, 198, 29, 3, 249, 246, 29, 3, 249, 89, 29, 3,
- 211, 165, 29, 3, 211, 141, 29, 3, 211, 157, 29, 3, 211, 164, 29, 3, 211,
- 161, 29, 3, 211, 162, 29, 3, 211, 148, 29, 3, 211, 147, 29, 3, 211, 136,
- 29, 3, 211, 132, 29, 3, 211, 135, 29, 3, 211, 133, 29, 3, 211, 134, 29,
- 3, 198, 29, 3, 227, 242, 29, 3, 228, 238, 29, 3, 229, 230, 29, 3, 229,
- 108, 29, 3, 229, 112, 29, 3, 228, 79, 29, 3, 227, 178, 29, 3, 227, 169,
- 29, 3, 227, 132, 29, 3, 227, 152, 29, 3, 227, 168, 29, 3, 227, 159, 29,
- 3, 227, 160, 29, 3, 227, 138, 29, 3, 227, 123, 29, 3, 242, 187, 61, 29,
- 3, 242, 187, 69, 29, 3, 242, 187, 74, 29, 3, 242, 187, 255, 82, 29, 3,
- 242, 187, 245, 217, 29, 3, 242, 187, 76, 29, 3, 242, 187, 78, 29, 3, 242,
- 187, 212, 65, 29, 3, 176, 29, 3, 233, 223, 29, 3, 234, 98, 29, 3, 235,
- 16, 29, 3, 234, 187, 29, 3, 234, 188, 29, 3, 234, 34, 29, 3, 234, 33, 29,
- 3, 233, 188, 29, 3, 233, 182, 29, 3, 233, 187, 29, 3, 233, 183, 29, 3,
- 233, 184, 29, 3, 233, 177, 29, 3, 233, 171, 29, 3, 233, 173, 29, 3, 233,
- 176, 29, 3, 233, 174, 29, 3, 233, 175, 29, 3, 233, 172, 29, 3, 233, 170,
- 29, 3, 233, 166, 29, 3, 233, 169, 29, 3, 233, 167, 29, 3, 233, 168, 29,
- 3, 212, 65, 29, 3, 211, 195, 29, 3, 211, 250, 29, 3, 212, 64, 29, 3, 212,
- 17, 29, 3, 212, 22, 29, 3, 211, 227, 29, 3, 211, 226, 29, 3, 225, 142,
- 61, 29, 3, 225, 142, 69, 29, 3, 225, 142, 74, 29, 3, 225, 142, 255, 82,
- 29, 3, 225, 142, 245, 217, 29, 3, 225, 142, 76, 29, 3, 225, 142, 78, 29,
- 3, 210, 116, 29, 3, 210, 13, 29, 3, 210, 44, 29, 3, 210, 115, 29, 3, 210,
- 92, 29, 3, 210, 94, 29, 3, 210, 23, 29, 3, 210, 0, 29, 3, 210, 82, 29, 3,
- 210, 62, 29, 3, 210, 69, 29, 3, 210, 81, 29, 3, 210, 73, 29, 3, 210, 74,
- 29, 3, 210, 67, 29, 3, 210, 53, 29, 3, 192, 29, 3, 210, 212, 29, 3, 211,
- 8, 29, 3, 211, 103, 29, 3, 211, 44, 29, 3, 211, 47, 29, 3, 210, 244, 29,
- 3, 210, 235, 29, 3, 248, 229, 29, 3, 246, 86, 29, 3, 248, 11, 29, 3, 248,
- 228, 29, 3, 248, 85, 29, 3, 248, 98, 29, 3, 247, 153, 29, 3, 246, 55, 29,
- 3, 248, 143, 29, 3, 248, 108, 29, 3, 248, 120, 29, 3, 248, 142, 29, 3,
- 248, 130, 29, 3, 248, 131, 29, 3, 248, 113, 29, 3, 248, 99, 29, 3, 235,
- 147, 29, 3, 235, 57, 29, 3, 235, 114, 29, 3, 235, 146, 29, 3, 235, 130,
- 29, 3, 235, 132, 29, 3, 235, 74, 29, 3, 235, 37, 29, 3, 243, 142, 29, 3,
- 242, 120, 29, 3, 242, 221, 29, 3, 243, 139, 29, 3, 243, 62, 29, 3, 243,
- 69, 29, 3, 242, 181, 29, 3, 242, 180, 29, 3, 242, 85, 29, 3, 242, 81, 29,
- 3, 242, 84, 29, 3, 242, 82, 29, 3, 242, 83, 29, 3, 243, 36, 29, 3, 243,
- 16, 29, 3, 243, 26, 29, 3, 243, 35, 29, 3, 243, 30, 29, 3, 243, 31, 29,
- 3, 243, 20, 29, 3, 243, 5, 29, 3, 216, 209, 29, 3, 216, 137, 29, 3, 216,
- 176, 29, 3, 216, 208, 29, 3, 216, 195, 29, 3, 216, 196, 29, 3, 216, 157,
- 29, 3, 216, 129, 29, 3, 250, 165, 29, 3, 250, 77, 29, 3, 250, 118, 29, 3,
- 250, 164, 29, 3, 250, 136, 29, 3, 250, 139, 29, 3, 250, 94, 29, 3, 250,
- 66, 29, 3, 225, 150, 29, 3, 225, 117, 29, 3, 225, 136, 29, 3, 225, 149,
- 29, 3, 225, 138, 29, 3, 225, 139, 29, 3, 225, 124, 29, 3, 225, 113, 29,
- 3, 215, 184, 29, 3, 215, 164, 29, 3, 215, 168, 29, 3, 215, 183, 29, 3,
- 215, 178, 29, 3, 215, 179, 29, 3, 215, 167, 29, 3, 215, 162, 29, 3, 215,
- 39, 29, 3, 215, 31, 29, 3, 215, 35, 29, 3, 215, 38, 29, 3, 215, 36, 29,
- 3, 215, 37, 29, 3, 215, 33, 29, 3, 215, 32, 29, 3, 244, 204, 29, 3, 243,
- 241, 29, 3, 244, 129, 29, 3, 244, 203, 29, 3, 244, 155, 29, 3, 244, 162,
- 29, 3, 244, 51, 29, 3, 243, 220, 29, 3, 191, 29, 3, 224, 153, 29, 3, 225,
- 111, 29, 3, 226, 93, 29, 3, 225, 214, 29, 3, 225, 224, 29, 3, 225, 19,
- 29, 3, 224, 117, 29, 3, 222, 101, 29, 3, 230, 36, 29, 3, 243, 214, 29,
- 38, 243, 60, 22, 25, 233, 29, 79, 29, 38, 25, 233, 29, 79, 29, 38, 243,
- 60, 79, 29, 221, 175, 79, 29, 211, 208, 29, 243, 236, 218, 131, 29, 249,
- 227, 29, 220, 152, 29, 249, 234, 29, 224, 202, 249, 234, 29, 224, 16, 79,
- 29, 226, 19, 220, 139, 29, 21, 111, 29, 21, 105, 29, 21, 158, 29, 21,
- 161, 29, 21, 190, 29, 21, 195, 29, 21, 199, 29, 21, 196, 29, 21, 201, 29,
- 54, 216, 248, 29, 54, 215, 73, 29, 54, 216, 163, 29, 54, 244, 23, 29, 54,
- 244, 122, 29, 54, 219, 113, 29, 54, 220, 118, 29, 54, 245, 192, 29, 54,
- 228, 200, 29, 54, 240, 217, 29, 54, 216, 249, 216, 148, 29, 3, 221, 179,
- 230, 47, 29, 3, 230, 43, 29, 3, 230, 44, 29, 3, 230, 45, 29, 3, 221, 179,
- 251, 91, 29, 3, 251, 88, 29, 3, 251, 89, 29, 3, 251, 90, 29, 3, 221, 179,
- 243, 220, 29, 3, 243, 216, 29, 3, 243, 217, 29, 3, 243, 218, 29, 3, 221,
- 179, 224, 117, 29, 3, 224, 113, 29, 3, 224, 114, 29, 3, 224, 115, 29,
- 216, 32, 164, 210, 247, 29, 216, 32, 164, 248, 49, 29, 216, 32, 164, 222,
- 241, 29, 216, 32, 164, 219, 253, 222, 241, 29, 216, 32, 164, 247, 243,
- 29, 216, 32, 164, 234, 170, 29, 216, 32, 164, 250, 102, 29, 216, 32, 164,
- 241, 184, 29, 216, 32, 164, 248, 48, 29, 216, 32, 164, 233, 200, 169, 1,
- 61, 169, 1, 76, 169, 1, 74, 169, 1, 78, 169, 1, 69, 169, 1, 214, 105,
- 169, 1, 243, 142, 169, 1, 176, 169, 1, 243, 69, 169, 1, 242, 221, 169, 1,
- 242, 181, 169, 1, 242, 120, 169, 1, 242, 86, 169, 1, 162, 169, 1, 241,
- 245, 169, 1, 241, 187, 169, 1, 241, 75, 169, 1, 240, 229, 169, 1, 240,
- 208, 169, 1, 233, 141, 169, 1, 233, 64, 169, 1, 232, 247, 169, 1, 232,
- 162, 169, 1, 232, 103, 169, 1, 232, 76, 169, 1, 186, 169, 1, 231, 96,
- 169, 1, 230, 235, 169, 1, 230, 166, 169, 1, 230, 107, 169, 1, 198, 169,
- 1, 241, 97, 169, 1, 229, 218, 169, 1, 229, 112, 169, 1, 228, 238, 169, 1,
- 228, 79, 169, 1, 227, 242, 169, 1, 227, 180, 169, 1, 224, 32, 169, 1,
- 224, 19, 169, 1, 224, 12, 169, 1, 224, 4, 169, 1, 223, 249, 169, 1, 223,
- 247, 169, 1, 206, 169, 1, 222, 93, 169, 1, 221, 183, 169, 1, 219, 193,
- 169, 1, 219, 60, 169, 1, 218, 84, 169, 1, 218, 3, 169, 1, 248, 229, 169,
- 1, 217, 106, 169, 1, 248, 98, 169, 1, 217, 23, 169, 1, 248, 11, 169, 1,
- 216, 118, 169, 1, 247, 153, 169, 1, 246, 86, 169, 1, 246, 58, 169, 1,
- 247, 164, 169, 1, 216, 60, 169, 1, 216, 59, 169, 1, 216, 48, 169, 1, 216,
- 47, 169, 1, 216, 46, 169, 1, 216, 45, 169, 1, 215, 184, 169, 1, 215, 179,
- 169, 1, 215, 168, 169, 1, 215, 167, 169, 1, 215, 164, 169, 1, 215, 163,
- 169, 1, 212, 65, 169, 1, 212, 22, 169, 1, 211, 250, 169, 1, 211, 227,
- 169, 1, 211, 195, 169, 1, 211, 183, 169, 1, 192, 169, 1, 211, 47, 169, 1,
- 211, 8, 169, 1, 210, 244, 169, 1, 210, 212, 169, 1, 210, 177, 18, 19,
- 240, 175, 18, 19, 76, 18, 19, 255, 46, 18, 19, 74, 18, 19, 236, 40, 18,
- 19, 78, 18, 19, 226, 187, 18, 19, 211, 116, 226, 187, 18, 19, 73, 245,
- 217, 18, 19, 73, 74, 18, 19, 61, 18, 19, 255, 82, 18, 19, 212, 22, 18,
- 19, 159, 212, 22, 18, 19, 211, 250, 18, 19, 159, 211, 250, 18, 19, 211,
- 242, 18, 19, 159, 211, 242, 18, 19, 211, 227, 18, 19, 159, 211, 227, 18,
- 19, 211, 215, 18, 19, 159, 211, 215, 18, 19, 229, 195, 211, 215, 18, 19,
- 212, 65, 18, 19, 159, 212, 65, 18, 19, 212, 64, 18, 19, 159, 212, 64, 18,
- 19, 229, 195, 212, 64, 18, 19, 254, 210, 18, 19, 211, 116, 212, 98, 18,
- 19, 242, 187, 218, 131, 18, 19, 40, 142, 18, 19, 40, 242, 143, 18, 19,
- 40, 251, 183, 163, 222, 236, 18, 19, 40, 216, 15, 163, 222, 236, 18, 19,
- 40, 44, 163, 222, 236, 18, 19, 40, 222, 236, 18, 19, 40, 52, 142, 18, 19,
- 40, 52, 219, 253, 67, 218, 92, 18, 19, 40, 230, 229, 247, 128, 18, 19,
- 40, 219, 253, 203, 91, 18, 19, 40, 225, 25, 18, 19, 40, 124, 217, 88, 18,
- 19, 245, 158, 18, 19, 236, 6, 18, 19, 226, 200, 18, 19, 254, 131, 18, 19,
- 225, 224, 18, 19, 226, 91, 18, 19, 225, 111, 18, 19, 225, 74, 18, 19,
- 225, 19, 18, 19, 224, 252, 18, 19, 211, 116, 224, 252, 18, 19, 73, 241,
- 227, 18, 19, 73, 241, 187, 18, 19, 191, 18, 19, 226, 93, 18, 19, 224,
- 115, 18, 19, 159, 224, 115, 18, 19, 224, 113, 18, 19, 159, 224, 113, 18,
- 19, 224, 112, 18, 19, 159, 224, 112, 18, 19, 224, 110, 18, 19, 159, 224,
- 110, 18, 19, 224, 109, 18, 19, 159, 224, 109, 18, 19, 224, 117, 18, 19,
- 159, 224, 117, 18, 19, 224, 116, 18, 19, 159, 224, 116, 18, 19, 211, 116,
- 224, 116, 18, 19, 226, 109, 18, 19, 159, 226, 109, 18, 19, 73, 242, 67,
- 18, 19, 217, 23, 18, 19, 217, 100, 18, 19, 216, 118, 18, 19, 216, 104,
- 18, 19, 112, 18, 19, 216, 18, 18, 19, 211, 116, 216, 18, 18, 19, 73, 248,
- 85, 18, 19, 73, 248, 11, 18, 19, 217, 106, 18, 19, 217, 102, 18, 19, 215,
- 78, 18, 19, 159, 215, 78, 18, 19, 215, 62, 18, 19, 159, 215, 62, 18, 19,
- 215, 61, 18, 19, 159, 215, 61, 18, 19, 105, 18, 19, 159, 105, 18, 19,
- 215, 54, 18, 19, 159, 215, 54, 18, 19, 215, 80, 18, 19, 159, 215, 80, 18,
- 19, 215, 79, 18, 19, 159, 215, 79, 18, 19, 229, 195, 215, 79, 18, 19,
- 217, 153, 18, 19, 215, 152, 18, 19, 215, 136, 18, 19, 215, 134, 18, 19,
- 215, 157, 18, 19, 234, 188, 18, 19, 235, 13, 18, 19, 234, 98, 18, 19,
- 234, 89, 18, 19, 234, 34, 18, 19, 234, 16, 18, 19, 211, 116, 234, 16, 18,
- 19, 176, 18, 19, 235, 16, 18, 19, 233, 184, 18, 19, 159, 233, 184, 18,
- 19, 233, 182, 18, 19, 159, 233, 182, 18, 19, 233, 181, 18, 19, 159, 233,
- 181, 18, 19, 233, 180, 18, 19, 159, 233, 180, 18, 19, 233, 179, 18, 19,
- 159, 233, 179, 18, 19, 233, 188, 18, 19, 159, 233, 188, 18, 19, 233, 187,
- 18, 19, 159, 233, 187, 18, 19, 229, 195, 233, 187, 18, 19, 235, 29, 18,
- 19, 233, 189, 18, 19, 219, 29, 234, 182, 18, 19, 219, 29, 234, 90, 18,
- 19, 219, 29, 234, 29, 18, 19, 219, 29, 234, 254, 18, 19, 250, 198, 18,
- 19, 251, 39, 18, 19, 250, 59, 18, 19, 250, 49, 18, 19, 249, 246, 18, 19,
- 249, 182, 18, 19, 211, 116, 249, 182, 18, 19, 251, 41, 18, 19, 251, 40,
- 18, 19, 249, 87, 18, 19, 159, 249, 87, 18, 19, 249, 85, 18, 19, 159, 249,
- 85, 18, 19, 249, 84, 18, 19, 159, 249, 84, 18, 19, 249, 83, 18, 19, 159,
- 249, 83, 18, 19, 249, 82, 18, 19, 159, 249, 82, 18, 19, 249, 89, 18, 19,
- 159, 249, 89, 18, 19, 249, 88, 18, 19, 159, 249, 88, 18, 19, 229, 195,
- 249, 88, 18, 19, 251, 74, 18, 19, 221, 211, 216, 211, 18, 19, 231, 96,
- 18, 19, 231, 241, 18, 19, 230, 235, 18, 19, 230, 206, 18, 19, 230, 166,
- 18, 19, 230, 137, 18, 19, 211, 116, 230, 137, 18, 19, 186, 18, 19, 231,
- 242, 18, 19, 230, 45, 18, 19, 159, 230, 45, 18, 19, 230, 43, 18, 19, 159,
- 230, 43, 18, 19, 230, 42, 18, 19, 159, 230, 42, 18, 19, 230, 41, 18, 19,
- 159, 230, 41, 18, 19, 230, 40, 18, 19, 159, 230, 40, 18, 19, 230, 47, 18,
- 19, 159, 230, 47, 18, 19, 230, 46, 18, 19, 159, 230, 46, 18, 19, 229,
- 195, 230, 46, 18, 19, 194, 18, 19, 159, 194, 18, 19, 230, 239, 18, 19,
- 253, 213, 194, 18, 19, 221, 211, 194, 18, 19, 229, 112, 18, 19, 229, 229,
- 18, 19, 228, 238, 18, 19, 228, 213, 18, 19, 228, 79, 18, 19, 228, 69, 18,
- 19, 211, 116, 228, 69, 18, 19, 198, 18, 19, 229, 230, 18, 19, 227, 176,
- 18, 19, 159, 227, 176, 18, 19, 227, 178, 18, 19, 159, 227, 178, 18, 19,
- 227, 177, 18, 19, 159, 227, 177, 18, 19, 229, 195, 227, 177, 18, 19, 230,
- 30, 18, 19, 73, 229, 84, 18, 19, 228, 243, 18, 19, 233, 64, 18, 19, 233,
- 139, 18, 19, 232, 247, 18, 19, 232, 233, 18, 19, 232, 162, 18, 19, 232,
- 133, 18, 19, 211, 116, 232, 133, 18, 19, 233, 141, 18, 19, 233, 140, 18,
- 19, 232, 73, 18, 19, 159, 232, 73, 18, 19, 232, 72, 18, 19, 159, 232, 72,
- 18, 19, 232, 71, 18, 19, 159, 232, 71, 18, 19, 232, 70, 18, 19, 159, 232,
- 70, 18, 19, 232, 69, 18, 19, 159, 232, 69, 18, 19, 232, 75, 18, 19, 159,
- 232, 75, 18, 19, 232, 74, 18, 19, 159, 232, 74, 18, 19, 156, 18, 19, 159,
- 156, 18, 19, 147, 156, 18, 19, 221, 183, 18, 19, 222, 31, 18, 19, 219,
- 193, 18, 19, 219, 177, 18, 19, 219, 60, 18, 19, 219, 42, 18, 19, 211,
- 116, 219, 42, 18, 19, 206, 18, 19, 222, 33, 18, 19, 217, 250, 18, 19,
- 159, 217, 250, 18, 19, 217, 244, 18, 19, 159, 217, 244, 18, 19, 217, 243,
- 18, 19, 159, 217, 243, 18, 19, 217, 239, 18, 19, 159, 217, 239, 18, 19,
- 217, 238, 18, 19, 159, 217, 238, 18, 19, 217, 254, 18, 19, 159, 217, 254,
- 18, 19, 217, 253, 18, 19, 159, 217, 253, 18, 19, 229, 195, 217, 253, 18,
- 19, 222, 93, 18, 19, 253, 213, 222, 93, 18, 19, 217, 255, 18, 19, 251,
- 226, 222, 93, 18, 19, 230, 132, 219, 110, 18, 19, 229, 195, 219, 101, 18,
- 19, 229, 195, 222, 91, 18, 19, 229, 195, 218, 237, 18, 19, 229, 195, 218,
- 87, 18, 19, 229, 195, 219, 100, 18, 19, 229, 195, 221, 186, 18, 19, 220,
- 65, 18, 19, 220, 34, 18, 19, 220, 29, 18, 19, 220, 9, 18, 19, 220, 3, 18,
- 19, 220, 104, 18, 19, 220, 100, 18, 19, 219, 208, 18, 19, 159, 219, 208,
- 18, 19, 219, 207, 18, 19, 159, 219, 207, 18, 19, 219, 206, 18, 19, 159,
- 219, 206, 18, 19, 219, 205, 18, 19, 159, 219, 205, 18, 19, 219, 204, 18,
- 19, 159, 219, 204, 18, 19, 219, 210, 18, 19, 159, 219, 210, 18, 19, 219,
- 209, 18, 19, 159, 219, 209, 18, 19, 220, 106, 18, 19, 211, 47, 18, 19,
- 211, 101, 18, 19, 211, 8, 18, 19, 210, 255, 18, 19, 210, 244, 18, 19,
- 210, 229, 18, 19, 211, 116, 210, 229, 18, 19, 192, 18, 19, 211, 103, 18,
- 19, 210, 174, 18, 19, 159, 210, 174, 18, 19, 210, 173, 18, 19, 159, 210,
- 173, 18, 19, 210, 172, 18, 19, 159, 210, 172, 18, 19, 210, 171, 18, 19,
- 159, 210, 171, 18, 19, 210, 170, 18, 19, 159, 210, 170, 18, 19, 210, 176,
- 18, 19, 159, 210, 176, 18, 19, 210, 175, 18, 19, 159, 210, 175, 18, 19,
- 229, 195, 210, 175, 18, 19, 211, 117, 18, 19, 252, 12, 211, 117, 18, 19,
- 159, 211, 117, 18, 19, 221, 211, 211, 8, 18, 19, 223, 131, 18, 19, 223,
- 226, 223, 131, 18, 19, 159, 233, 64, 18, 19, 223, 186, 18, 19, 223, 38,
- 18, 19, 222, 242, 18, 19, 222, 213, 18, 19, 222, 199, 18, 19, 159, 232,
- 162, 18, 19, 205, 18, 19, 223, 187, 18, 19, 159, 233, 141, 18, 19, 222,
- 110, 18, 19, 159, 222, 110, 18, 19, 153, 18, 19, 159, 153, 18, 19, 147,
- 153, 18, 19, 244, 162, 18, 19, 244, 201, 18, 19, 244, 129, 18, 19, 244,
- 116, 18, 19, 244, 51, 18, 19, 244, 42, 18, 19, 244, 204, 18, 19, 244,
- 203, 18, 19, 243, 219, 18, 19, 159, 243, 219, 18, 19, 245, 14, 18, 19,
- 216, 196, 18, 19, 230, 28, 216, 196, 18, 19, 216, 176, 18, 19, 230, 28,
- 216, 176, 18, 19, 216, 172, 18, 19, 230, 28, 216, 172, 18, 19, 216, 157,
- 18, 19, 216, 154, 18, 19, 216, 209, 18, 19, 216, 208, 18, 19, 216, 128,
- 18, 19, 159, 216, 128, 18, 19, 216, 211, 18, 19, 215, 143, 18, 19, 215,
- 141, 18, 19, 215, 140, 18, 19, 215, 145, 18, 19, 215, 146, 18, 19, 215,
- 52, 18, 19, 215, 51, 18, 19, 215, 50, 18, 19, 215, 53, 18, 19, 227, 197,
- 241, 245, 18, 19, 227, 197, 241, 187, 18, 19, 227, 197, 241, 168, 18, 19,
- 227, 197, 241, 75, 18, 19, 227, 197, 241, 60, 18, 19, 227, 197, 162, 18,
- 19, 227, 197, 242, 53, 18, 19, 227, 197, 242, 67, 18, 19, 227, 196, 242,
- 67, 18, 19, 241, 161, 18, 19, 224, 87, 18, 19, 224, 56, 18, 19, 224, 51,
- 18, 19, 224, 45, 18, 19, 224, 40, 18, 19, 224, 91, 18, 19, 224, 90, 18,
- 19, 224, 99, 18, 19, 216, 56, 18, 19, 216, 54, 18, 19, 216, 53, 18, 19,
- 216, 57, 18, 19, 159, 223, 131, 18, 19, 159, 223, 38, 18, 19, 159, 222,
- 213, 18, 19, 159, 205, 18, 19, 229, 80, 18, 19, 229, 32, 18, 19, 229, 28,
- 18, 19, 229, 9, 18, 19, 229, 4, 18, 19, 229, 82, 18, 19, 229, 81, 18, 19,
- 229, 84, 18, 19, 228, 108, 18, 19, 221, 211, 220, 65, 18, 19, 221, 211,
- 220, 34, 18, 19, 221, 211, 220, 9, 18, 19, 221, 211, 220, 104, 18, 19,
- 211, 213, 216, 196, 18, 19, 211, 213, 216, 176, 18, 19, 211, 213, 216,
- 157, 18, 19, 211, 213, 216, 209, 18, 19, 211, 213, 216, 211, 18, 19, 232,
- 254, 18, 19, 232, 253, 18, 19, 232, 252, 18, 19, 232, 251, 18, 19, 233,
- 4, 18, 19, 233, 3, 18, 19, 233, 5, 18, 19, 216, 210, 216, 196, 18, 19,
- 216, 210, 216, 176, 18, 19, 216, 210, 216, 172, 18, 19, 216, 210, 216,
- 157, 18, 19, 216, 210, 216, 154, 18, 19, 216, 210, 216, 209, 18, 19, 216,
- 210, 216, 208, 18, 19, 216, 210, 216, 211, 18, 19, 254, 198, 253, 166,
- 18, 19, 251, 226, 76, 18, 19, 251, 226, 74, 18, 19, 251, 226, 78, 18, 19,
- 251, 226, 61, 18, 19, 251, 226, 212, 22, 18, 19, 251, 226, 211, 250, 18,
- 19, 251, 226, 211, 227, 18, 19, 251, 226, 212, 65, 18, 19, 251, 226, 229,
- 112, 18, 19, 251, 226, 228, 238, 18, 19, 251, 226, 228, 79, 18, 19, 251,
- 226, 198, 18, 19, 251, 226, 234, 188, 18, 19, 251, 226, 234, 98, 18, 19,
- 251, 226, 234, 34, 18, 19, 251, 226, 176, 18, 19, 221, 211, 241, 245, 18,
- 19, 221, 211, 241, 187, 18, 19, 221, 211, 241, 75, 18, 19, 221, 211, 162,
- 18, 19, 73, 242, 227, 18, 19, 73, 242, 231, 18, 19, 73, 242, 243, 18, 19,
- 73, 242, 242, 18, 19, 73, 242, 232, 18, 19, 73, 243, 0, 18, 19, 73, 222,
- 142, 18, 19, 73, 222, 213, 18, 19, 73, 223, 131, 18, 19, 73, 223, 111,
- 18, 19, 73, 223, 38, 18, 19, 73, 205, 18, 19, 73, 211, 195, 18, 19, 73,
- 211, 227, 18, 19, 73, 212, 22, 18, 19, 73, 212, 17, 18, 19, 73, 211, 250,
- 18, 19, 73, 212, 65, 18, 19, 73, 240, 201, 18, 19, 73, 240, 202, 18, 19,
- 73, 240, 205, 18, 19, 73, 240, 204, 18, 19, 73, 240, 203, 18, 19, 73,
- 240, 207, 18, 19, 73, 216, 137, 18, 19, 73, 216, 157, 18, 19, 73, 216,
- 196, 18, 19, 73, 216, 195, 18, 19, 73, 216, 176, 18, 19, 73, 216, 209,
- 18, 19, 73, 215, 124, 18, 19, 73, 215, 134, 18, 19, 73, 215, 152, 18, 19,
- 73, 215, 151, 18, 19, 73, 215, 136, 18, 19, 73, 215, 157, 18, 19, 73,
- 224, 153, 18, 19, 73, 225, 19, 18, 19, 73, 225, 224, 18, 19, 73, 225,
- 214, 18, 19, 73, 225, 111, 18, 19, 73, 191, 18, 19, 73, 226, 109, 18, 19,
- 73, 242, 120, 18, 19, 73, 242, 181, 18, 19, 73, 243, 69, 18, 19, 73, 243,
- 62, 18, 19, 73, 242, 221, 18, 19, 73, 243, 142, 18, 19, 73, 234, 106, 18,
- 19, 73, 234, 111, 18, 19, 73, 234, 125, 18, 19, 73, 234, 124, 18, 19, 73,
- 234, 118, 18, 19, 73, 234, 138, 18, 19, 73, 234, 47, 18, 19, 73, 234, 48,
- 18, 19, 73, 234, 51, 18, 19, 73, 234, 50, 18, 19, 73, 234, 49, 18, 19,
- 73, 234, 52, 18, 19, 73, 234, 53, 18, 19, 73, 227, 242, 18, 19, 73, 228,
- 79, 18, 19, 73, 229, 112, 18, 19, 73, 229, 108, 18, 19, 73, 228, 238, 18,
- 19, 73, 198, 18, 19, 73, 230, 107, 18, 19, 73, 230, 166, 18, 19, 73, 231,
- 96, 18, 19, 73, 231, 85, 18, 19, 73, 230, 235, 18, 19, 73, 186, 18, 19,
- 73, 210, 212, 18, 19, 73, 210, 244, 18, 19, 73, 211, 47, 18, 19, 73, 211,
- 44, 18, 19, 73, 211, 8, 18, 19, 73, 192, 18, 19, 73, 235, 57, 18, 19,
- 221, 211, 235, 57, 18, 19, 73, 235, 74, 18, 19, 73, 235, 132, 18, 19, 73,
- 235, 130, 18, 19, 73, 235, 114, 18, 19, 221, 211, 235, 114, 18, 19, 73,
- 235, 147, 18, 19, 73, 235, 87, 18, 19, 73, 235, 91, 18, 19, 73, 235, 101,
- 18, 19, 73, 235, 100, 18, 19, 73, 235, 99, 18, 19, 73, 235, 102, 18, 19,
- 73, 232, 103, 18, 19, 73, 232, 162, 18, 19, 73, 233, 64, 18, 19, 73, 233,
- 56, 18, 19, 73, 232, 247, 18, 19, 73, 233, 141, 18, 19, 73, 247, 157, 18,
- 19, 73, 247, 158, 18, 19, 73, 247, 163, 18, 19, 73, 247, 162, 18, 19, 73,
- 247, 159, 18, 19, 73, 247, 164, 18, 19, 73, 232, 250, 18, 19, 73, 232,
- 252, 18, 19, 73, 233, 0, 18, 19, 73, 232, 255, 18, 19, 73, 232, 254, 18,
- 19, 73, 233, 4, 18, 19, 73, 216, 51, 18, 19, 73, 216, 53, 18, 19, 73,
- 216, 56, 18, 19, 73, 216, 55, 18, 19, 73, 216, 54, 18, 19, 73, 216, 57,
- 18, 19, 73, 216, 46, 18, 19, 73, 216, 47, 18, 19, 73, 216, 59, 18, 19,
- 73, 216, 58, 18, 19, 73, 216, 48, 18, 19, 73, 216, 60, 18, 19, 73, 210,
- 13, 18, 19, 73, 210, 23, 18, 19, 73, 210, 94, 18, 19, 73, 210, 92, 18,
- 19, 73, 210, 44, 18, 19, 73, 210, 116, 18, 19, 73, 210, 159, 18, 19, 73,
- 65, 210, 159, 18, 19, 73, 246, 36, 18, 19, 73, 246, 37, 18, 19, 73, 246,
- 44, 18, 19, 73, 246, 43, 18, 19, 73, 246, 39, 18, 19, 73, 246, 46, 18,
- 19, 73, 218, 84, 18, 19, 73, 219, 60, 18, 19, 73, 221, 183, 18, 19, 73,
- 221, 172, 18, 19, 73, 219, 193, 18, 19, 73, 206, 18, 19, 73, 219, 227,
- 18, 19, 73, 220, 9, 18, 19, 73, 220, 65, 18, 19, 73, 220, 63, 18, 19, 73,
- 220, 34, 18, 19, 73, 220, 104, 18, 19, 73, 220, 106, 18, 19, 73, 215,
- 164, 18, 19, 73, 215, 167, 18, 19, 73, 215, 179, 18, 19, 73, 215, 178,
- 18, 19, 73, 215, 168, 18, 19, 73, 215, 184, 18, 19, 73, 250, 77, 18, 19,
- 73, 250, 94, 18, 19, 73, 250, 139, 18, 19, 73, 250, 136, 18, 19, 73, 250,
- 118, 18, 19, 73, 250, 165, 18, 19, 73, 215, 127, 18, 19, 73, 215, 128,
- 18, 19, 73, 215, 131, 18, 19, 73, 215, 130, 18, 19, 73, 215, 129, 18, 19,
- 73, 215, 132, 18, 19, 250, 119, 50, 18, 19, 243, 236, 218, 131, 18, 19,
- 224, 83, 18, 19, 229, 78, 18, 19, 228, 105, 18, 19, 228, 104, 18, 19,
- 228, 103, 18, 19, 228, 102, 18, 19, 228, 107, 18, 19, 228, 106, 18, 19,
- 211, 213, 216, 126, 18, 19, 211, 213, 216, 125, 18, 19, 211, 213, 216,
- 124, 18, 19, 211, 213, 216, 123, 18, 19, 211, 213, 216, 122, 18, 19, 211,
- 213, 216, 129, 18, 19, 211, 213, 216, 128, 18, 19, 211, 213, 40, 216,
- 211, 18, 19, 251, 226, 212, 98, 226, 230, 219, 21, 79, 226, 230, 1, 252,
- 56, 226, 230, 1, 232, 92, 226, 230, 1, 244, 159, 226, 230, 1, 222, 17,
- 226, 230, 1, 228, 198, 226, 230, 1, 214, 226, 226, 230, 1, 248, 205, 226,
- 230, 1, 216, 81, 226, 230, 1, 249, 237, 226, 230, 1, 250, 188, 226, 230,
- 1, 230, 96, 226, 230, 1, 242, 163, 226, 230, 1, 229, 68, 226, 230, 1,
- 218, 124, 226, 230, 1, 222, 137, 226, 230, 1, 254, 207, 226, 230, 1, 226,
- 191, 226, 230, 1, 214, 150, 226, 230, 1, 245, 239, 226, 230, 1, 235, 195,
- 226, 230, 1, 245, 240, 226, 230, 1, 226, 162, 226, 230, 1, 214, 206, 226,
- 230, 1, 236, 46, 226, 230, 1, 245, 237, 226, 230, 1, 225, 205, 226, 230,
- 244, 158, 79, 226, 230, 223, 52, 244, 158, 79, 178, 1, 244, 149, 244,
- 141, 244, 163, 245, 14, 178, 1, 214, 105, 178, 1, 214, 135, 214, 151, 69,
- 178, 1, 210, 214, 178, 1, 211, 117, 178, 1, 212, 98, 178, 1, 216, 131,
- 216, 130, 216, 152, 178, 1, 245, 67, 178, 1, 254, 101, 61, 178, 1, 226,
- 147, 78, 178, 1, 255, 26, 61, 178, 1, 254, 236, 178, 1, 232, 139, 78,
- 178, 1, 219, 246, 78, 178, 1, 78, 178, 1, 226, 238, 178, 1, 226, 200,
- 178, 1, 223, 167, 223, 180, 223, 97, 153, 178, 1, 234, 199, 178, 1, 250,
- 185, 178, 1, 234, 200, 235, 29, 178, 1, 243, 209, 178, 1, 245, 146, 178,
- 1, 243, 65, 242, 73, 243, 209, 178, 1, 243, 103, 178, 1, 211, 188, 211,
- 182, 212, 98, 178, 1, 242, 45, 242, 67, 178, 1, 242, 49, 242, 67, 178, 1,
- 232, 141, 242, 67, 178, 1, 219, 249, 242, 67, 178, 1, 229, 190, 227, 161,
- 229, 191, 230, 30, 178, 1, 219, 247, 230, 30, 178, 1, 246, 123, 178, 1,
- 235, 175, 235, 179, 235, 168, 74, 178, 1, 76, 178, 1, 235, 123, 235, 150,
- 178, 1, 243, 50, 178, 1, 232, 142, 254, 252, 178, 1, 219, 251, 61, 178,
- 1, 235, 160, 245, 121, 178, 1, 225, 167, 225, 189, 226, 109, 178, 1, 254,
- 172, 245, 119, 178, 1, 219, 26, 222, 93, 178, 1, 219, 181, 232, 138, 222,
- 93, 178, 1, 219, 245, 222, 93, 178, 1, 251, 74, 178, 1, 210, 159, 178, 1,
- 216, 64, 216, 74, 215, 41, 217, 153, 178, 1, 219, 244, 217, 153, 178, 1,
- 249, 68, 178, 1, 252, 39, 252, 42, 251, 232, 253, 166, 178, 1, 219, 250,
- 253, 166, 178, 1, 246, 122, 178, 1, 226, 175, 178, 1, 245, 204, 245, 206,
- 76, 178, 1, 231, 183, 231, 191, 194, 178, 1, 232, 140, 194, 178, 1, 219,
- 248, 194, 178, 1, 233, 79, 233, 120, 232, 149, 156, 178, 1, 246, 124,
- 178, 1, 235, 237, 178, 1, 235, 238, 178, 1, 248, 218, 248, 223, 249, 68,
- 178, 1, 226, 142, 245, 66, 78, 178, 1, 245, 235, 178, 1, 235, 194, 178,
- 1, 249, 86, 178, 1, 251, 25, 178, 1, 250, 197, 178, 1, 218, 163, 178, 1,
- 232, 137, 178, 1, 219, 243, 178, 1, 240, 117, 178, 1, 224, 99, 178, 1,
- 211, 178, 178, 219, 157, 224, 143, 178, 230, 90, 224, 143, 178, 249, 139,
- 224, 143, 178, 254, 14, 87, 178, 215, 82, 87, 178, 252, 54, 87, 217, 84,
- 1, 61, 217, 84, 1, 74, 217, 84, 1, 69, 217, 84, 1, 176, 217, 84, 1, 243,
- 142, 217, 84, 1, 229, 82, 217, 84, 1, 217, 106, 217, 84, 1, 248, 229,
- 217, 84, 1, 198, 217, 84, 1, 191, 217, 84, 1, 252, 199, 217, 84, 1, 186,
- 217, 84, 1, 192, 217, 84, 1, 233, 141, 217, 84, 1, 212, 65, 217, 84, 1,
- 206, 217, 84, 1, 162, 217, 84, 25, 5, 74, 217, 84, 25, 5, 69, 217, 84, 5,
- 213, 152, 242, 14, 1, 61, 242, 14, 1, 74, 242, 14, 1, 69, 242, 14, 1,
- 176, 242, 14, 1, 243, 142, 242, 14, 1, 229, 82, 242, 14, 1, 217, 106,
- 242, 14, 1, 248, 229, 242, 14, 1, 198, 242, 14, 1, 191, 242, 14, 1, 252,
- 199, 242, 14, 1, 186, 242, 14, 1, 192, 242, 14, 1, 205, 242, 14, 1, 233,
- 141, 242, 14, 1, 212, 65, 242, 14, 1, 206, 242, 14, 1, 162, 242, 14, 25,
- 5, 74, 242, 14, 25, 5, 69, 242, 14, 5, 226, 53, 225, 129, 219, 157, 224,
- 143, 225, 129, 52, 224, 143, 251, 128, 1, 61, 251, 128, 1, 74, 251, 128,
- 1, 69, 251, 128, 1, 176, 251, 128, 1, 243, 142, 251, 128, 1, 229, 82,
- 251, 128, 1, 217, 106, 251, 128, 1, 248, 229, 251, 128, 1, 198, 251, 128,
- 1, 191, 251, 128, 1, 252, 199, 251, 128, 1, 186, 251, 128, 1, 192, 251,
- 128, 1, 205, 251, 128, 1, 233, 141, 251, 128, 1, 212, 65, 251, 128, 1,
- 206, 251, 128, 1, 162, 251, 128, 25, 5, 74, 251, 128, 25, 5, 69, 217, 83,
- 1, 61, 217, 83, 1, 74, 217, 83, 1, 69, 217, 83, 1, 176, 217, 83, 1, 243,
- 142, 217, 83, 1, 229, 82, 217, 83, 1, 217, 106, 217, 83, 1, 248, 229,
- 217, 83, 1, 198, 217, 83, 1, 191, 217, 83, 1, 252, 199, 217, 83, 1, 186,
- 217, 83, 1, 192, 217, 83, 1, 233, 141, 217, 83, 1, 212, 65, 217, 83, 1,
- 206, 217, 83, 25, 5, 74, 217, 83, 25, 5, 69, 70, 1, 176, 70, 1, 234, 138,
- 70, 1, 234, 34, 70, 1, 234, 111, 70, 1, 229, 9, 70, 1, 251, 41, 70, 1,
- 250, 165, 70, 1, 249, 246, 70, 1, 250, 94, 70, 1, 227, 138, 70, 1, 248,
- 229, 70, 1, 215, 145, 70, 1, 247, 153, 70, 1, 215, 140, 70, 1, 228, 85,
- 70, 1, 217, 106, 70, 1, 216, 209, 70, 1, 112, 70, 1, 216, 157, 70, 1,
- 228, 79, 70, 1, 252, 199, 70, 1, 225, 150, 70, 1, 225, 19, 70, 1, 225,
- 124, 70, 1, 230, 166, 70, 1, 210, 244, 70, 1, 222, 213, 70, 1, 232, 162,
- 70, 1, 213, 138, 70, 1, 220, 104, 70, 1, 218, 186, 70, 1, 206, 70, 1,
- 162, 70, 1, 233, 141, 70, 1, 224, 91, 70, 235, 250, 25, 224, 77, 70, 235,
- 250, 25, 224, 90, 70, 235, 250, 25, 224, 56, 70, 235, 250, 25, 224, 51,
- 70, 235, 250, 25, 224, 33, 70, 235, 250, 25, 224, 5, 70, 235, 250, 25,
- 223, 249, 70, 235, 250, 25, 223, 248, 70, 235, 250, 25, 222, 102, 70,
- 235, 250, 25, 222, 95, 70, 235, 250, 25, 232, 67, 70, 235, 250, 25, 232,
- 57, 70, 235, 250, 25, 224, 72, 70, 235, 250, 25, 224, 83, 70, 235, 250,
- 25, 224, 41, 215, 49, 111, 70, 235, 250, 25, 224, 41, 215, 49, 105, 70,
- 235, 250, 25, 224, 73, 70, 25, 235, 236, 254, 53, 70, 25, 235, 236, 255,
- 82, 70, 25, 5, 255, 82, 70, 25, 5, 74, 70, 25, 5, 236, 40, 70, 25, 5,
- 211, 117, 70, 25, 5, 210, 169, 70, 25, 5, 69, 70, 25, 5, 214, 118, 70,
- 25, 5, 214, 229, 70, 25, 5, 226, 238, 70, 25, 5, 192, 70, 25, 5, 236, 67,
- 70, 25, 5, 76, 70, 25, 5, 254, 252, 70, 25, 5, 254, 210, 70, 25, 5, 226,
- 187, 70, 25, 5, 253, 200, 70, 5, 228, 211, 70, 5, 223, 129, 70, 5, 210,
- 180, 70, 5, 230, 57, 70, 5, 215, 214, 70, 5, 252, 151, 70, 5, 222, 208,
- 70, 5, 216, 41, 70, 5, 234, 247, 70, 5, 254, 212, 70, 5, 221, 246, 221,
- 240, 70, 5, 213, 149, 70, 5, 249, 240, 70, 5, 252, 125, 70, 5, 234, 131,
- 70, 5, 252, 145, 70, 5, 251, 17, 225, 75, 233, 193, 70, 5, 233, 36, 216,
- 18, 70, 5, 252, 28, 70, 5, 225, 126, 230, 104, 70, 5, 234, 15, 70, 249,
- 106, 16, 223, 31, 70, 5, 253, 182, 70, 5, 253, 203, 70, 21, 210, 86, 70,
- 21, 111, 70, 21, 105, 70, 21, 158, 70, 21, 161, 70, 21, 190, 70, 21, 195,
- 70, 21, 199, 70, 21, 196, 70, 21, 201, 70, 16, 233, 36, 253, 205, 219,
- 45, 70, 16, 233, 36, 253, 205, 230, 76, 70, 16, 233, 36, 253, 205, 225,
- 74, 70, 16, 233, 36, 253, 205, 252, 57, 70, 16, 233, 36, 253, 205, 251,
- 111, 70, 16, 233, 36, 253, 205, 224, 218, 70, 16, 233, 36, 253, 205, 224,
- 212, 70, 16, 233, 36, 253, 205, 224, 210, 70, 16, 233, 36, 253, 205, 224,
- 216, 70, 16, 233, 36, 253, 205, 224, 214, 83, 251, 244, 83, 245, 171, 83,
- 249, 227, 83, 243, 236, 218, 131, 83, 249, 234, 83, 244, 19, 247, 126,
- 83, 216, 40, 219, 54, 240, 175, 83, 219, 192, 3, 251, 180, 231, 159, 83,
- 231, 188, 249, 227, 83, 231, 188, 243, 236, 218, 131, 83, 228, 196, 83,
- 244, 5, 45, 221, 159, 111, 83, 244, 5, 45, 221, 159, 105, 83, 244, 5, 45,
- 221, 159, 158, 83, 25, 220, 139, 83, 21, 210, 86, 83, 21, 111, 83, 21,
- 105, 83, 21, 158, 83, 21, 161, 83, 21, 190, 83, 21, 195, 83, 21, 199, 83,
- 21, 196, 83, 21, 201, 83, 1, 61, 83, 1, 76, 83, 1, 74, 83, 1, 78, 83, 1,
- 69, 83, 1, 226, 238, 83, 1, 214, 214, 83, 1, 245, 217, 83, 1, 198, 83, 1,
- 254, 123, 83, 1, 252, 199, 83, 1, 191, 83, 1, 224, 91, 83, 1, 243, 142,
- 83, 1, 186, 83, 1, 233, 141, 83, 1, 206, 83, 1, 220, 104, 83, 1, 217,
- 106, 83, 1, 248, 229, 83, 1, 250, 165, 83, 1, 235, 147, 83, 1, 192, 83,
- 1, 205, 83, 1, 212, 65, 83, 1, 244, 204, 83, 1, 176, 83, 1, 234, 138, 83,
- 1, 215, 184, 83, 1, 210, 116, 83, 1, 242, 53, 83, 1, 210, 16, 83, 1, 233,
- 4, 83, 1, 210, 69, 83, 1, 250, 118, 83, 1, 216, 40, 200, 25, 50, 83, 1,
- 216, 40, 76, 83, 1, 216, 40, 74, 83, 1, 216, 40, 78, 83, 1, 216, 40, 69,
- 83, 1, 216, 40, 226, 238, 83, 1, 216, 40, 214, 214, 83, 1, 216, 40, 254,
- 123, 83, 1, 216, 40, 252, 199, 83, 1, 216, 40, 191, 83, 1, 216, 40, 224,
- 91, 83, 1, 216, 40, 243, 142, 83, 1, 216, 40, 186, 83, 1, 216, 40, 217,
- 106, 83, 1, 216, 40, 248, 229, 83, 1, 216, 40, 250, 165, 83, 1, 216, 40,
- 235, 147, 83, 1, 216, 40, 215, 184, 83, 1, 216, 40, 192, 83, 1, 216, 40,
- 212, 65, 83, 1, 216, 40, 176, 83, 1, 216, 40, 243, 139, 83, 1, 216, 40,
- 242, 53, 83, 1, 216, 40, 235, 113, 83, 1, 216, 40, 228, 236, 83, 1, 216,
- 40, 246, 46, 83, 1, 219, 192, 76, 83, 1, 219, 192, 74, 83, 1, 219, 192,
- 235, 158, 83, 1, 219, 192, 214, 214, 83, 1, 219, 192, 69, 83, 1, 219,
- 192, 254, 123, 83, 1, 219, 192, 176, 83, 1, 219, 192, 243, 142, 83, 1,
- 219, 192, 162, 83, 1, 219, 192, 191, 83, 1, 219, 192, 220, 104, 83, 1,
- 219, 192, 217, 106, 83, 1, 219, 192, 248, 229, 83, 1, 219, 192, 235, 147,
- 83, 1, 219, 192, 244, 204, 83, 1, 219, 192, 243, 139, 83, 1, 219, 192,
- 242, 53, 83, 1, 219, 192, 215, 184, 83, 1, 219, 192, 210, 116, 83, 1,
- 219, 192, 223, 187, 83, 1, 219, 192, 250, 165, 83, 1, 219, 192, 210, 82,
- 83, 1, 231, 188, 74, 83, 1, 231, 188, 176, 83, 1, 231, 188, 205, 83, 1,
- 231, 188, 244, 204, 83, 1, 231, 188, 210, 82, 83, 1, 254, 171, 243, 123,
- 254, 84, 111, 83, 1, 254, 171, 243, 123, 213, 148, 111, 83, 1, 254, 171,
- 243, 123, 248, 194, 83, 1, 254, 171, 243, 123, 214, 224, 83, 1, 254, 171,
- 243, 123, 235, 200, 214, 224, 83, 1, 254, 171, 243, 123, 252, 163, 83, 1,
- 254, 171, 243, 123, 134, 252, 163, 83, 1, 254, 171, 243, 123, 61, 83, 1,
- 254, 171, 243, 123, 74, 83, 1, 254, 171, 243, 123, 176, 83, 1, 254, 171,
- 243, 123, 229, 82, 83, 1, 254, 171, 243, 123, 251, 41, 83, 1, 254, 171,
- 243, 123, 215, 157, 83, 1, 254, 171, 243, 123, 215, 145, 83, 1, 254, 171,
- 243, 123, 248, 143, 83, 1, 254, 171, 243, 123, 228, 115, 83, 1, 254, 171,
- 243, 123, 217, 106, 83, 1, 254, 171, 243, 123, 248, 229, 83, 1, 254, 171,
- 243, 123, 191, 83, 1, 254, 171, 243, 123, 225, 150, 83, 1, 254, 171, 243,
- 123, 218, 225, 83, 1, 254, 171, 243, 123, 210, 82, 83, 1, 254, 171, 243,
- 123, 210, 116, 83, 1, 254, 171, 243, 123, 254, 218, 83, 1, 216, 40, 254,
- 171, 243, 123, 217, 106, 83, 1, 216, 40, 254, 171, 243, 123, 210, 82, 83,
- 1, 231, 188, 254, 171, 243, 123, 243, 0, 83, 1, 231, 188, 254, 171, 243,
- 123, 229, 82, 83, 1, 231, 188, 254, 171, 243, 123, 251, 41, 83, 1, 231,
- 188, 254, 171, 243, 123, 235, 120, 83, 1, 231, 188, 254, 171, 243, 123,
- 215, 157, 83, 1, 231, 188, 254, 171, 243, 123, 248, 127, 83, 1, 231, 188,
- 254, 171, 243, 123, 217, 106, 83, 1, 231, 188, 254, 171, 243, 123, 248,
- 33, 83, 1, 231, 188, 254, 171, 243, 123, 218, 225, 83, 1, 231, 188, 254,
- 171, 243, 123, 249, 80, 83, 1, 231, 188, 254, 171, 243, 123, 210, 82, 83,
- 1, 231, 188, 254, 171, 243, 123, 210, 116, 83, 1, 254, 171, 243, 123,
- 163, 69, 83, 1, 254, 171, 243, 123, 163, 192, 83, 1, 231, 188, 254, 171,
- 243, 123, 252, 26, 83, 1, 254, 171, 243, 123, 248, 219, 83, 1, 231, 188,
- 254, 171, 243, 123, 233, 4, 18, 19, 226, 113, 18, 19, 253, 175, 18, 19,
- 255, 37, 18, 19, 212, 25, 18, 19, 224, 224, 18, 19, 225, 233, 18, 19,
- 224, 108, 18, 19, 217, 32, 18, 19, 234, 195, 18, 19, 233, 185, 18, 19,
- 231, 137, 18, 19, 228, 42, 18, 19, 229, 186, 18, 19, 233, 74, 18, 19,
- 219, 24, 18, 19, 221, 213, 18, 19, 219, 234, 18, 19, 220, 68, 18, 19,
- 219, 203, 18, 19, 210, 220, 18, 19, 211, 52, 18, 19, 223, 137, 18, 19,
- 227, 175, 18, 19, 226, 220, 227, 175, 18, 19, 227, 174, 18, 19, 226, 220,
- 227, 174, 18, 19, 227, 173, 18, 19, 226, 220, 227, 173, 18, 19, 227, 172,
- 18, 19, 226, 220, 227, 172, 18, 19, 222, 107, 18, 19, 222, 106, 18, 19,
- 222, 105, 18, 19, 222, 104, 18, 19, 222, 103, 18, 19, 222, 111, 18, 19,
- 226, 220, 226, 109, 18, 19, 226, 220, 217, 153, 18, 19, 226, 220, 235,
- 29, 18, 19, 226, 220, 251, 74, 18, 19, 226, 220, 194, 18, 19, 226, 220,
- 230, 30, 18, 19, 226, 220, 222, 93, 18, 19, 226, 220, 220, 106, 18, 19,
- 245, 227, 212, 98, 18, 19, 212, 7, 212, 98, 18, 19, 40, 4, 222, 236, 18,
- 19, 40, 223, 160, 247, 128, 18, 19, 223, 226, 222, 108, 18, 19, 159, 232,
- 133, 18, 19, 159, 233, 140, 18, 19, 216, 127, 18, 19, 216, 129, 18, 19,
- 215, 137, 18, 19, 215, 139, 18, 19, 215, 144, 18, 19, 216, 50, 18, 19,
- 216, 52, 18, 19, 221, 211, 219, 208, 18, 19, 221, 211, 220, 3, 18, 19,
- 221, 211, 241, 60, 18, 19, 73, 242, 80, 18, 19, 73, 248, 60, 243, 62, 18,
- 19, 73, 243, 139, 18, 19, 73, 242, 85, 18, 19, 221, 211, 235, 39, 18, 19,
- 73, 235, 37, 18, 19, 252, 76, 248, 60, 156, 18, 19, 252, 76, 248, 60,
- 153, 18, 19, 73, 248, 55, 222, 93, 232, 229, 213, 122, 233, 16, 232, 229,
- 1, 176, 232, 229, 1, 234, 138, 232, 229, 1, 243, 142, 232, 229, 1, 243,
- 0, 232, 229, 1, 229, 82, 232, 229, 1, 251, 41, 232, 229, 1, 250, 165,
- 232, 229, 1, 235, 147, 232, 229, 1, 235, 120, 232, 229, 1, 211, 71, 232,
- 229, 1, 217, 106, 232, 229, 1, 216, 209, 232, 229, 1, 248, 229, 232, 229,
- 1, 248, 33, 232, 229, 1, 198, 232, 229, 1, 191, 232, 229, 1, 225, 150,
- 232, 229, 1, 252, 199, 232, 229, 1, 252, 26, 232, 229, 1, 186, 232, 229,
- 1, 192, 232, 229, 1, 205, 232, 229, 1, 233, 141, 232, 229, 1, 212, 65,
- 232, 229, 1, 220, 104, 232, 229, 1, 218, 225, 232, 229, 1, 206, 232, 229,
- 1, 162, 232, 229, 25, 5, 61, 232, 229, 25, 5, 74, 232, 229, 25, 5, 69,
- 232, 229, 25, 5, 245, 217, 232, 229, 25, 5, 254, 210, 232, 229, 25, 5,
- 226, 187, 232, 229, 25, 5, 253, 200, 232, 229, 25, 5, 76, 232, 229, 25,
- 5, 78, 232, 229, 218, 74, 1, 192, 232, 229, 218, 74, 1, 205, 232, 229,
- 218, 74, 1, 212, 65, 232, 229, 4, 1, 176, 232, 229, 4, 1, 229, 82, 232,
- 229, 4, 1, 254, 83, 232, 229, 4, 1, 217, 106, 232, 229, 4, 1, 198, 232,
- 229, 4, 1, 191, 232, 229, 4, 1, 186, 232, 229, 4, 1, 205, 232, 229, 4, 1,
- 233, 141, 232, 229, 5, 230, 94, 232, 229, 5, 234, 177, 232, 229, 5, 222,
- 34, 232, 229, 5, 232, 133, 232, 229, 245, 39, 79, 232, 229, 224, 16, 79,
- 232, 229, 21, 210, 86, 232, 229, 21, 111, 232, 229, 21, 105, 232, 229,
- 21, 158, 232, 229, 21, 161, 232, 229, 21, 190, 232, 229, 21, 195, 232,
- 229, 21, 199, 232, 229, 21, 196, 232, 229, 21, 201, 39, 233, 65, 1, 176,
- 39, 233, 65, 1, 211, 165, 39, 233, 65, 1, 229, 82, 39, 233, 65, 1, 215,
- 184, 39, 233, 65, 1, 206, 39, 233, 65, 1, 192, 39, 233, 65, 1, 217, 106,
- 39, 233, 65, 1, 216, 209, 39, 233, 65, 1, 233, 141, 39, 233, 65, 1, 191,
- 39, 233, 65, 1, 225, 150, 39, 233, 65, 1, 186, 39, 233, 65, 1, 244, 204,
- 39, 233, 65, 1, 214, 27, 39, 233, 65, 1, 162, 39, 233, 65, 1, 224, 91,
- 39, 233, 65, 1, 234, 138, 39, 233, 65, 1, 215, 176, 39, 233, 65, 1, 198,
- 39, 233, 65, 1, 61, 39, 233, 65, 1, 74, 39, 233, 65, 1, 245, 217, 39,
- 233, 65, 1, 245, 205, 39, 233, 65, 1, 69, 39, 233, 65, 1, 226, 187, 39,
- 233, 65, 1, 78, 39, 233, 65, 1, 214, 214, 39, 233, 65, 1, 76, 39, 233,
- 65, 1, 253, 198, 39, 233, 65, 1, 254, 210, 39, 233, 65, 1, 216, 29, 39,
- 233, 65, 1, 216, 28, 39, 233, 65, 1, 216, 27, 39, 233, 65, 1, 216, 26,
- 39, 233, 65, 1, 216, 25, 166, 39, 173, 1, 125, 224, 91, 166, 39, 173, 1,
- 121, 224, 91, 166, 39, 173, 1, 125, 176, 166, 39, 173, 1, 125, 211, 165,
- 166, 39, 173, 1, 125, 229, 82, 166, 39, 173, 1, 121, 176, 166, 39, 173,
- 1, 121, 211, 165, 166, 39, 173, 1, 121, 229, 82, 166, 39, 173, 1, 125,
- 215, 184, 166, 39, 173, 1, 125, 206, 166, 39, 173, 1, 125, 192, 166, 39,
- 173, 1, 121, 215, 184, 166, 39, 173, 1, 121, 206, 166, 39, 173, 1, 121,
- 192, 166, 39, 173, 1, 125, 217, 106, 166, 39, 173, 1, 125, 216, 209, 166,
- 39, 173, 1, 125, 198, 166, 39, 173, 1, 121, 217, 106, 166, 39, 173, 1,
- 121, 216, 209, 166, 39, 173, 1, 121, 198, 166, 39, 173, 1, 125, 191, 166,
- 39, 173, 1, 125, 225, 150, 166, 39, 173, 1, 125, 186, 166, 39, 173, 1,
- 121, 191, 166, 39, 173, 1, 121, 225, 150, 166, 39, 173, 1, 121, 186, 166,
- 39, 173, 1, 125, 244, 204, 166, 39, 173, 1, 125, 214, 27, 166, 39, 173,
- 1, 125, 233, 141, 166, 39, 173, 1, 121, 244, 204, 166, 39, 173, 1, 121,
- 214, 27, 166, 39, 173, 1, 121, 233, 141, 166, 39, 173, 1, 125, 162, 166,
- 39, 173, 1, 125, 248, 229, 166, 39, 173, 1, 125, 252, 199, 166, 39, 173,
- 1, 121, 162, 166, 39, 173, 1, 121, 248, 229, 166, 39, 173, 1, 121, 252,
- 199, 166, 39, 173, 1, 125, 233, 190, 166, 39, 173, 1, 125, 211, 138, 166,
- 39, 173, 1, 121, 233, 190, 166, 39, 173, 1, 121, 211, 138, 166, 39, 173,
- 1, 125, 218, 83, 166, 39, 173, 1, 121, 218, 83, 166, 39, 173, 25, 5, 25,
- 219, 241, 166, 39, 173, 25, 5, 255, 82, 166, 39, 173, 25, 5, 236, 40,
- 166, 39, 173, 25, 5, 69, 166, 39, 173, 25, 5, 214, 118, 166, 39, 173, 25,
- 5, 76, 166, 39, 173, 25, 5, 254, 252, 166, 39, 173, 25, 5, 78, 166, 39,
- 173, 25, 5, 227, 4, 166, 39, 173, 25, 5, 214, 214, 166, 39, 173, 25, 5,
- 253, 175, 166, 39, 173, 25, 5, 255, 37, 166, 39, 173, 25, 5, 214, 111,
- 166, 39, 173, 25, 5, 226, 113, 166, 39, 173, 25, 5, 227, 1, 166, 39, 173,
- 25, 5, 214, 210, 166, 39, 173, 25, 5, 235, 158, 166, 39, 173, 1, 40, 214,
- 105, 166, 39, 173, 1, 40, 229, 84, 166, 39, 173, 1, 40, 230, 30, 166, 39,
- 173, 1, 40, 194, 166, 39, 173, 1, 40, 235, 29, 166, 39, 173, 1, 40, 249,
- 68, 166, 39, 173, 1, 40, 253, 166, 166, 39, 173, 138, 231, 163, 166, 39,
- 173, 138, 231, 162, 166, 39, 173, 21, 210, 86, 166, 39, 173, 21, 111,
- 166, 39, 173, 21, 105, 166, 39, 173, 21, 158, 166, 39, 173, 21, 161, 166,
- 39, 173, 21, 190, 166, 39, 173, 21, 195, 166, 39, 173, 21, 199, 166, 39,
- 173, 21, 196, 166, 39, 173, 21, 201, 166, 39, 173, 89, 21, 111, 166, 39,
- 173, 5, 233, 126, 166, 39, 173, 5, 233, 125, 70, 16, 225, 240, 70, 16,
- 230, 77, 234, 31, 70, 16, 225, 75, 234, 31, 70, 16, 252, 58, 234, 31, 70,
- 16, 251, 112, 234, 31, 70, 16, 224, 219, 234, 31, 70, 16, 224, 213, 234,
- 31, 70, 16, 224, 211, 234, 31, 70, 16, 224, 217, 234, 31, 70, 16, 224,
- 215, 234, 31, 70, 16, 248, 181, 234, 31, 70, 16, 248, 177, 234, 31, 70,
- 16, 248, 176, 234, 31, 70, 16, 248, 179, 234, 31, 70, 16, 248, 178, 234,
- 31, 70, 16, 248, 175, 234, 31, 70, 16, 215, 87, 70, 16, 230, 77, 222,
- 207, 70, 16, 225, 75, 222, 207, 70, 16, 252, 58, 222, 207, 70, 16, 251,
- 112, 222, 207, 70, 16, 224, 219, 222, 207, 70, 16, 224, 213, 222, 207,
- 70, 16, 224, 211, 222, 207, 70, 16, 224, 217, 222, 207, 70, 16, 224, 215,
- 222, 207, 70, 16, 248, 181, 222, 207, 70, 16, 248, 177, 222, 207, 70, 16,
- 248, 176, 222, 207, 70, 16, 248, 179, 222, 207, 70, 16, 248, 178, 222,
- 207, 70, 16, 248, 175, 222, 207, 251, 129, 1, 176, 251, 129, 1, 243, 142,
- 251, 129, 1, 229, 82, 251, 129, 1, 229, 27, 251, 129, 1, 191, 251, 129,
- 1, 252, 199, 251, 129, 1, 186, 251, 129, 1, 230, 110, 251, 129, 1, 217,
- 106, 251, 129, 1, 248, 229, 251, 129, 1, 198, 251, 129, 1, 228, 41, 251,
- 129, 1, 251, 41, 251, 129, 1, 235, 147, 251, 129, 1, 227, 169, 251, 129,
- 1, 227, 162, 251, 129, 1, 192, 251, 129, 1, 205, 251, 129, 1, 233, 141,
- 251, 129, 1, 214, 27, 251, 129, 1, 206, 251, 129, 1, 61, 251, 129, 1,
- 162, 251, 129, 25, 5, 74, 251, 129, 25, 5, 69, 251, 129, 25, 5, 76, 251,
- 129, 25, 5, 78, 251, 129, 25, 5, 254, 252, 251, 129, 226, 64, 251, 129,
- 245, 151, 64, 221, 174, 39, 89, 1, 125, 176, 39, 89, 1, 125, 234, 138,
- 39, 89, 1, 125, 233, 177, 39, 89, 1, 121, 176, 39, 89, 1, 121, 233, 177,
- 39, 89, 1, 121, 234, 138, 39, 89, 1, 229, 82, 39, 89, 1, 125, 251, 41,
- 39, 89, 1, 125, 250, 165, 39, 89, 1, 121, 251, 41, 39, 89, 1, 121, 206,
- 39, 89, 1, 121, 250, 165, 39, 89, 1, 227, 169, 39, 89, 1, 223, 143, 39,
- 89, 1, 125, 223, 141, 39, 89, 1, 248, 229, 39, 89, 1, 121, 223, 141, 39,
- 89, 1, 223, 152, 39, 89, 1, 125, 217, 106, 39, 89, 1, 125, 216, 209, 39,
- 89, 1, 121, 217, 106, 39, 89, 1, 121, 216, 209, 39, 89, 1, 198, 39, 89,
- 1, 252, 199, 39, 89, 1, 125, 191, 39, 89, 1, 125, 225, 150, 39, 89, 1,
- 125, 244, 204, 39, 89, 1, 121, 191, 39, 89, 1, 121, 244, 204, 39, 89, 1,
- 121, 225, 150, 39, 89, 1, 186, 39, 89, 1, 121, 192, 39, 89, 1, 125, 192,
- 39, 89, 1, 205, 39, 89, 1, 222, 139, 39, 89, 1, 233, 141, 39, 89, 1, 232,
- 98, 39, 89, 1, 212, 65, 39, 89, 1, 125, 220, 104, 39, 89, 1, 125, 218,
- 225, 39, 89, 1, 125, 206, 39, 89, 1, 125, 162, 39, 89, 1, 232, 190, 39,
- 89, 1, 61, 39, 89, 1, 121, 162, 39, 89, 1, 74, 39, 89, 1, 236, 40, 39,
- 89, 1, 69, 39, 89, 1, 214, 118, 39, 89, 1, 245, 217, 39, 89, 1, 226, 187,
- 39, 89, 1, 233, 126, 39, 89, 1, 242, 139, 206, 39, 89, 117, 5, 147, 205,
- 39, 89, 117, 5, 147, 233, 141, 39, 89, 117, 5, 233, 142, 217, 59, 233,
- 115, 39, 89, 5, 231, 209, 234, 237, 233, 115, 39, 89, 117, 5, 40, 229,
- 82, 39, 89, 117, 5, 121, 191, 39, 89, 117, 5, 125, 223, 142, 177, 121,
- 191, 39, 89, 117, 5, 186, 39, 89, 117, 5, 252, 199, 39, 89, 117, 5, 206,
- 39, 89, 5, 222, 12, 39, 89, 25, 5, 61, 39, 89, 25, 5, 231, 209, 221, 228,
- 39, 89, 25, 5, 255, 82, 39, 89, 25, 5, 217, 65, 255, 82, 39, 89, 25, 5,
- 74, 39, 89, 25, 5, 236, 40, 39, 89, 25, 5, 214, 214, 39, 89, 25, 5, 214,
- 117, 39, 89, 25, 5, 69, 39, 89, 25, 5, 214, 118, 39, 89, 25, 5, 78, 39,
- 89, 25, 5, 227, 5, 51, 39, 89, 25, 5, 226, 113, 39, 89, 25, 5, 76, 39,
- 89, 25, 5, 254, 252, 39, 89, 25, 5, 226, 187, 39, 89, 25, 5, 254, 210,
- 39, 89, 25, 5, 89, 254, 210, 39, 89, 25, 5, 227, 5, 48, 39, 89, 5, 231,
- 209, 234, 236, 39, 89, 5, 216, 30, 39, 89, 5, 216, 29, 39, 89, 5, 234,
- 103, 216, 28, 39, 89, 5, 234, 103, 216, 27, 39, 89, 5, 234, 103, 216, 26,
- 39, 89, 5, 223, 191, 242, 52, 39, 89, 5, 231, 209, 221, 255, 39, 89, 5,
- 234, 102, 234, 221, 39, 89, 38, 249, 123, 247, 128, 39, 89, 241, 53, 21,
- 210, 86, 39, 89, 241, 53, 21, 111, 39, 89, 241, 53, 21, 105, 39, 89, 241,
- 53, 21, 158, 39, 89, 241, 53, 21, 161, 39, 89, 241, 53, 21, 190, 39, 89,
- 241, 53, 21, 195, 39, 89, 241, 53, 21, 199, 39, 89, 241, 53, 21, 196, 39,
- 89, 241, 53, 21, 201, 39, 89, 89, 21, 210, 86, 39, 89, 89, 21, 111, 39,
- 89, 89, 21, 105, 39, 89, 89, 21, 158, 39, 89, 89, 21, 161, 39, 89, 89,
- 21, 190, 39, 89, 89, 21, 195, 39, 89, 89, 21, 199, 39, 89, 89, 21, 196,
- 39, 89, 89, 21, 201, 39, 89, 5, 211, 249, 39, 89, 5, 211, 248, 39, 89, 5,
- 221, 217, 39, 89, 5, 234, 166, 39, 89, 5, 240, 239, 39, 89, 5, 247, 142,
- 39, 89, 5, 223, 52, 222, 189, 223, 152, 39, 89, 5, 231, 209, 211, 72, 39,
- 89, 5, 235, 12, 39, 89, 5, 235, 11, 39, 89, 5, 221, 224, 39, 89, 5, 221,
- 223, 39, 89, 5, 242, 16, 39, 89, 5, 251, 38, 102, 5, 214, 200, 223, 33,
- 102, 5, 214, 200, 251, 9, 102, 5, 250, 194, 102, 5, 218, 16, 102, 5, 251,
- 241, 102, 1, 254, 193, 102, 1, 254, 194, 217, 14, 102, 1, 236, 36, 102,
- 1, 236, 37, 217, 14, 102, 1, 214, 203, 102, 1, 214, 204, 217, 14, 102, 1,
- 223, 191, 223, 82, 102, 1, 223, 191, 223, 83, 217, 14, 102, 1, 233, 142,
- 233, 30, 102, 1, 233, 142, 233, 31, 217, 14, 102, 1, 245, 187, 102, 1,
- 254, 208, 102, 1, 226, 216, 102, 1, 226, 217, 217, 14, 102, 1, 176, 102,
- 1, 235, 19, 231, 212, 102, 1, 243, 142, 102, 1, 243, 143, 242, 168, 102,
- 1, 229, 82, 102, 1, 251, 41, 102, 1, 251, 42, 233, 129, 102, 1, 235, 147,
- 102, 1, 235, 148, 235, 124, 102, 1, 227, 169, 102, 1, 217, 107, 233, 82,
- 102, 1, 217, 107, 230, 72, 231, 212, 102, 1, 248, 230, 230, 72, 254, 153,
- 102, 1, 248, 230, 230, 72, 231, 212, 102, 1, 229, 234, 223, 155, 102, 1,
- 217, 106, 102, 1, 217, 107, 217, 36, 102, 1, 248, 229, 102, 1, 248, 230,
- 231, 230, 102, 1, 198, 102, 1, 191, 102, 1, 226, 94, 234, 232, 102, 1,
- 252, 199, 102, 1, 252, 200, 234, 178, 102, 1, 186, 102, 1, 192, 102, 1,
- 205, 102, 1, 233, 141, 102, 1, 212, 65, 102, 1, 222, 36, 222, 22, 102, 1,
- 222, 36, 221, 235, 102, 1, 206, 102, 1, 162, 102, 5, 223, 73, 102, 25, 5,
- 217, 14, 102, 25, 5, 214, 199, 102, 25, 5, 214, 200, 221, 231, 102, 25,
- 5, 218, 48, 102, 25, 5, 218, 49, 236, 28, 102, 25, 5, 223, 191, 223, 82,
- 102, 25, 5, 223, 191, 223, 83, 217, 14, 102, 25, 5, 233, 142, 233, 30,
- 102, 25, 5, 233, 142, 233, 31, 217, 14, 102, 25, 5, 217, 66, 102, 25, 5,
- 217, 67, 223, 82, 102, 25, 5, 217, 67, 217, 14, 102, 25, 5, 217, 67, 223,
- 83, 217, 14, 102, 25, 5, 225, 187, 102, 25, 5, 225, 188, 217, 14, 102,
- 255, 3, 255, 2, 102, 1, 235, 1, 221, 230, 102, 1, 234, 108, 221, 230,
- 102, 1, 215, 34, 221, 230, 102, 1, 245, 211, 221, 230, 102, 1, 214, 0,
- 221, 230, 102, 1, 210, 107, 221, 230, 102, 1, 253, 217, 221, 230, 102,
- 21, 210, 86, 102, 21, 111, 102, 21, 105, 102, 21, 158, 102, 21, 161, 102,
- 21, 190, 102, 21, 195, 102, 21, 199, 102, 21, 196, 102, 21, 201, 102,
- 226, 33, 102, 226, 59, 102, 211, 238, 102, 250, 244, 226, 52, 102, 250,
- 244, 219, 174, 102, 250, 244, 226, 6, 102, 226, 58, 102, 28, 16, 247,
- 134, 102, 28, 16, 248, 59, 102, 28, 16, 246, 72, 102, 28, 16, 248, 184,
- 102, 28, 16, 248, 185, 218, 16, 102, 28, 16, 247, 213, 102, 28, 16, 248,
- 222, 102, 28, 16, 248, 41, 102, 28, 16, 248, 206, 102, 28, 16, 248, 185,
- 243, 64, 102, 28, 16, 38, 217, 10, 102, 28, 16, 38, 245, 149, 102, 28,
- 16, 38, 234, 173, 102, 28, 16, 38, 234, 175, 102, 28, 16, 38, 235, 128,
- 102, 28, 16, 38, 234, 174, 2, 235, 128, 102, 28, 16, 38, 234, 176, 2,
- 235, 128, 102, 28, 16, 38, 252, 45, 102, 28, 16, 38, 242, 172, 102, 28,
- 16, 222, 252, 204, 246, 82, 102, 28, 16, 222, 252, 204, 248, 220, 102,
- 28, 16, 222, 252, 250, 8, 215, 112, 102, 28, 16, 222, 252, 250, 8, 217,
- 74, 102, 28, 16, 233, 50, 204, 226, 47, 102, 28, 16, 233, 50, 204, 224,
- 142, 102, 28, 16, 233, 50, 250, 8, 225, 41, 102, 28, 16, 233, 50, 250, 8,
- 225, 29, 102, 28, 16, 233, 50, 204, 225, 64, 207, 5, 226, 30, 207, 5,
- 226, 43, 207, 5, 226, 39, 207, 1, 61, 207, 1, 74, 207, 1, 69, 207, 1,
- 254, 252, 207, 1, 78, 207, 1, 76, 207, 1, 245, 63, 207, 1, 176, 207, 1,
- 224, 91, 207, 1, 243, 142, 207, 1, 229, 82, 207, 1, 251, 41, 207, 1, 235,
- 147, 207, 1, 210, 116, 207, 1, 227, 169, 207, 1, 217, 106, 207, 1, 248,
- 229, 207, 1, 198, 207, 1, 191, 207, 1, 244, 204, 207, 1, 214, 27, 207, 1,
- 252, 199, 207, 1, 186, 207, 1, 192, 207, 1, 205, 207, 1, 233, 141, 207,
- 1, 212, 65, 207, 1, 206, 207, 1, 211, 165, 207, 1, 162, 207, 117, 5, 226,
- 56, 207, 117, 5, 226, 32, 207, 117, 5, 226, 29, 207, 25, 5, 226, 46, 207,
- 25, 5, 226, 28, 207, 25, 5, 226, 50, 207, 25, 5, 226, 38, 207, 25, 5,
- 226, 57, 207, 25, 5, 226, 48, 207, 5, 226, 60, 207, 5, 213, 152, 207,
- 117, 5, 225, 252, 186, 207, 117, 5, 225, 252, 212, 65, 207, 1, 234, 138,
- 207, 1, 217, 232, 207, 21, 210, 86, 207, 21, 111, 207, 21, 105, 207, 21,
- 158, 207, 21, 161, 207, 21, 190, 207, 21, 195, 207, 21, 199, 207, 21,
- 196, 207, 21, 201, 207, 253, 183, 207, 1, 223, 55, 207, 1, 233, 13, 207,
- 1, 252, 26, 207, 1, 40, 235, 29, 207, 1, 40, 194, 252, 128, 1, 61, 252,
- 128, 1, 219, 166, 61, 252, 128, 1, 162, 252, 128, 1, 219, 166, 162, 252,
- 128, 1, 231, 186, 162, 252, 128, 1, 252, 199, 252, 128, 1, 234, 218, 252,
- 199, 252, 128, 1, 191, 252, 128, 1, 219, 166, 191, 252, 128, 1, 198, 252,
- 128, 1, 231, 186, 198, 252, 128, 1, 212, 65, 252, 128, 1, 219, 166, 212,
- 65, 252, 128, 1, 226, 71, 212, 65, 252, 128, 1, 243, 142, 252, 128, 1,
- 219, 166, 243, 142, 252, 128, 1, 235, 147, 252, 128, 1, 248, 229, 252,
- 128, 1, 205, 252, 128, 1, 219, 166, 205, 252, 128, 1, 186, 252, 128, 1,
- 219, 166, 186, 252, 128, 1, 219, 28, 217, 106, 252, 128, 1, 228, 60, 217,
- 106, 252, 128, 1, 206, 252, 128, 1, 219, 166, 206, 252, 128, 1, 231, 186,
- 206, 252, 128, 1, 192, 252, 128, 1, 219, 166, 192, 252, 128, 1, 229, 82,
- 252, 128, 1, 233, 141, 252, 128, 1, 219, 166, 233, 141, 252, 128, 1, 227,
- 169, 252, 128, 1, 251, 41, 252, 128, 1, 229, 153, 252, 128, 1, 231, 129,
- 252, 128, 1, 74, 252, 128, 1, 69, 252, 128, 5, 216, 34, 252, 128, 25, 5,
- 76, 252, 128, 25, 5, 226, 71, 76, 252, 128, 25, 5, 245, 217, 252, 128,
- 25, 5, 74, 252, 128, 25, 5, 234, 218, 74, 252, 128, 25, 5, 78, 252, 128,
- 25, 5, 234, 218, 78, 252, 128, 25, 5, 69, 252, 128, 25, 5, 104, 31, 219,
- 166, 206, 252, 128, 117, 5, 229, 84, 252, 128, 117, 5, 242, 67, 252, 128,
- 226, 41, 252, 128, 226, 37, 252, 128, 16, 251, 249, 229, 234, 231, 42,
- 252, 128, 16, 251, 249, 225, 67, 252, 128, 16, 251, 249, 235, 54, 252,
- 128, 16, 251, 249, 226, 41, 197, 1, 176, 197, 1, 234, 45, 197, 1, 234,
- 138, 197, 1, 243, 142, 197, 1, 242, 193, 197, 1, 229, 82, 197, 1, 251,
- 41, 197, 1, 250, 165, 197, 1, 235, 147, 197, 1, 227, 169, 197, 1, 217,
- 106, 197, 1, 216, 209, 197, 1, 248, 229, 197, 1, 198, 197, 1, 191, 197,
- 1, 225, 45, 197, 1, 225, 150, 197, 1, 244, 204, 197, 1, 244, 83, 197, 1,
- 252, 199, 197, 1, 251, 230, 197, 1, 186, 197, 1, 230, 173, 197, 1, 215,
- 184, 197, 1, 215, 176, 197, 1, 246, 46, 197, 1, 192, 197, 1, 205, 197, 1,
- 233, 141, 197, 1, 162, 197, 1, 241, 160, 197, 1, 214, 27, 197, 1, 206,
- 197, 1, 220, 104, 197, 1, 212, 65, 197, 1, 61, 197, 218, 74, 1, 192, 197,
- 218, 74, 1, 205, 197, 25, 5, 255, 82, 197, 25, 5, 74, 197, 25, 5, 78,
- 197, 25, 5, 226, 187, 197, 25, 5, 69, 197, 25, 5, 214, 118, 197, 25, 5,
- 76, 197, 117, 5, 235, 29, 197, 117, 5, 194, 197, 117, 5, 156, 197, 117,
- 5, 230, 30, 197, 117, 5, 226, 109, 197, 117, 5, 153, 197, 117, 5, 217,
- 153, 197, 117, 5, 227, 146, 197, 117, 5, 234, 236, 197, 5, 223, 153, 197,
- 5, 227, 209, 197, 224, 144, 217, 104, 197, 224, 144, 227, 156, 216, 121,
- 217, 104, 197, 224, 144, 250, 172, 197, 224, 144, 215, 171, 250, 172,
- 197, 224, 144, 215, 170, 197, 21, 210, 86, 197, 21, 111, 197, 21, 105,
- 197, 21, 158, 197, 21, 161, 197, 21, 190, 197, 21, 195, 197, 21, 199,
- 197, 21, 196, 197, 21, 201, 197, 1, 215, 157, 197, 1, 215, 145, 197, 1,
- 248, 143, 226, 214, 250, 111, 21, 210, 86, 226, 214, 250, 111, 21, 111,
- 226, 214, 250, 111, 21, 105, 226, 214, 250, 111, 21, 158, 226, 214, 250,
- 111, 21, 161, 226, 214, 250, 111, 21, 190, 226, 214, 250, 111, 21, 195,
- 226, 214, 250, 111, 21, 199, 226, 214, 250, 111, 21, 196, 226, 214, 250,
- 111, 21, 201, 226, 214, 250, 111, 1, 233, 141, 226, 214, 250, 111, 1,
- 253, 214, 226, 214, 250, 111, 1, 254, 225, 226, 214, 250, 111, 1, 254,
- 123, 226, 214, 250, 111, 1, 254, 187, 226, 214, 250, 111, 1, 233, 140,
- 226, 214, 250, 111, 1, 255, 44, 226, 214, 250, 111, 1, 255, 45, 226, 214,
- 250, 111, 1, 255, 43, 226, 214, 250, 111, 1, 255, 38, 226, 214, 250, 111,
- 1, 232, 247, 226, 214, 250, 111, 1, 235, 178, 226, 214, 250, 111, 1, 236,
- 41, 226, 214, 250, 111, 1, 235, 197, 226, 214, 250, 111, 1, 235, 186,
- 226, 214, 250, 111, 1, 232, 103, 226, 214, 250, 111, 1, 214, 221, 226,
- 214, 250, 111, 1, 214, 219, 226, 214, 250, 111, 1, 214, 168, 226, 214,
- 250, 111, 1, 214, 111, 226, 214, 250, 111, 1, 233, 64, 226, 214, 250,
- 111, 1, 245, 116, 226, 214, 250, 111, 1, 245, 220, 226, 214, 250, 111, 1,
- 245, 158, 226, 214, 250, 111, 1, 245, 94, 226, 214, 250, 111, 1, 232,
- 162, 226, 214, 250, 111, 1, 226, 141, 226, 214, 250, 111, 1, 227, 0, 226,
- 214, 250, 111, 1, 226, 129, 226, 214, 250, 111, 1, 226, 226, 226, 214,
- 250, 111, 230, 108, 215, 122, 226, 214, 250, 111, 243, 137, 215, 123,
- 226, 214, 250, 111, 230, 106, 215, 123, 226, 214, 250, 111, 223, 95, 226,
- 214, 250, 111, 225, 148, 226, 214, 250, 111, 254, 217, 226, 214, 250,
- 111, 224, 144, 230, 103, 226, 214, 250, 111, 224, 144, 52, 230, 103, 207,
- 224, 144, 251, 249, 218, 9, 207, 224, 144, 251, 249, 226, 42, 207, 224,
- 144, 251, 249, 224, 132, 207, 224, 144, 251, 249, 251, 27, 207, 224, 144,
- 251, 249, 233, 14, 221, 227, 207, 224, 144, 251, 249, 235, 19, 221, 227,
- 207, 224, 144, 251, 249, 248, 230, 221, 227, 207, 224, 144, 251, 249,
- 252, 200, 221, 227, 213, 252, 138, 234, 216, 213, 252, 138, 220, 79, 213,
- 252, 138, 224, 201, 213, 252, 5, 228, 214, 213, 252, 5, 211, 80, 230,
- 227, 218, 1, 213, 252, 138, 211, 80, 254, 222, 235, 250, 218, 1, 213,
- 252, 138, 211, 80, 235, 250, 218, 1, 213, 252, 138, 211, 80, 234, 204,
- 235, 250, 218, 1, 213, 252, 138, 251, 10, 51, 213, 252, 138, 211, 80,
- 234, 204, 235, 250, 218, 2, 221, 199, 213, 252, 138, 52, 218, 1, 213,
- 252, 138, 215, 212, 218, 1, 213, 252, 138, 234, 204, 254, 85, 213, 252,
- 138, 59, 51, 213, 252, 138, 113, 170, 51, 213, 252, 138, 134, 170, 51,
- 213, 252, 138, 222, 243, 234, 215, 235, 250, 218, 1, 213, 252, 138, 253,
- 212, 235, 250, 218, 1, 213, 252, 5, 213, 148, 218, 1, 213, 252, 5, 213,
- 148, 214, 216, 213, 252, 5, 223, 52, 213, 148, 214, 216, 213, 252, 5,
- 213, 148, 254, 85, 213, 252, 5, 223, 52, 213, 148, 254, 85, 213, 252, 5,
- 213, 148, 214, 217, 2, 217, 78, 213, 252, 5, 213, 148, 254, 86, 2, 217,
- 78, 213, 252, 5, 254, 84, 254, 99, 213, 252, 5, 254, 84, 252, 174, 213,
- 252, 5, 254, 84, 214, 20, 213, 252, 5, 254, 84, 214, 21, 2, 217, 78, 213,
- 252, 5, 216, 69, 213, 252, 5, 241, 198, 200, 254, 83, 213, 252, 5, 200,
- 254, 83, 213, 252, 5, 222, 144, 200, 254, 83, 213, 252, 5, 254, 84, 214,
- 223, 230, 95, 213, 252, 5, 254, 28, 213, 252, 5, 222, 189, 254, 28, 213,
- 252, 138, 251, 10, 48, 213, 252, 5, 235, 108, 213, 252, 5, 214, 161, 7,
- 1, 4, 6, 61, 7, 1, 4, 6, 254, 252, 7, 4, 1, 215, 94, 254, 252, 7, 1, 4,
- 6, 252, 142, 253, 166, 7, 1, 4, 6, 251, 74, 7, 1, 4, 6, 249, 68, 7, 1, 4,
- 6, 245, 67, 7, 1, 4, 6, 76, 7, 4, 1, 215, 94, 204, 76, 7, 4, 1, 215, 94,
- 74, 7, 1, 4, 6, 235, 150, 7, 1, 4, 6, 235, 29, 7, 1, 4, 6, 233, 155, 2,
- 91, 7, 1, 4, 6, 194, 7, 1, 4, 6, 223, 52, 230, 30, 7, 1, 4, 6, 78, 7, 1,
- 4, 6, 204, 78, 7, 4, 1, 219, 189, 78, 7, 4, 1, 219, 189, 204, 78, 7, 4,
- 1, 219, 189, 144, 2, 91, 7, 4, 1, 215, 94, 226, 238, 7, 1, 4, 6, 226,
- 138, 7, 4, 1, 216, 15, 163, 78, 7, 4, 1, 251, 183, 163, 78, 7, 1, 4, 6,
- 226, 109, 7, 1, 4, 6, 223, 52, 153, 7, 1, 4, 6, 215, 94, 153, 7, 1, 4, 6,
- 217, 153, 7, 1, 4, 6, 69, 7, 4, 1, 219, 189, 69, 7, 4, 1, 219, 189, 248,
- 8, 69, 7, 4, 1, 219, 189, 215, 94, 194, 7, 1, 4, 6, 214, 105, 7, 1, 4, 6,
- 212, 98, 7, 1, 4, 6, 210, 159, 7, 1, 4, 6, 245, 16, 7, 1, 213, 135, 233,
- 88, 218, 252, 7, 1, 254, 205, 26, 1, 4, 6, 243, 114, 26, 1, 4, 6, 233,
- 104, 26, 1, 4, 6, 225, 111, 26, 1, 4, 6, 223, 40, 26, 1, 4, 6, 224, 164,
- 33, 1, 4, 6, 245, 182, 58, 1, 6, 61, 58, 1, 6, 254, 252, 58, 1, 6, 253,
- 166, 58, 1, 6, 252, 142, 253, 166, 58, 1, 6, 249, 68, 58, 1, 6, 76, 58,
- 1, 6, 223, 52, 76, 58, 1, 6, 243, 209, 58, 1, 6, 242, 67, 58, 1, 6, 74,
- 58, 1, 6, 235, 150, 58, 1, 6, 235, 29, 58, 1, 6, 156, 58, 1, 6, 194, 58,
- 1, 6, 230, 30, 58, 1, 6, 223, 52, 230, 30, 58, 1, 6, 78, 58, 1, 6, 226,
- 138, 58, 1, 6, 226, 109, 58, 1, 6, 153, 58, 1, 6, 217, 153, 58, 1, 6, 69,
- 58, 1, 6, 212, 98, 58, 1, 4, 61, 58, 1, 4, 215, 94, 61, 58, 1, 4, 254,
- 151, 58, 1, 4, 215, 94, 254, 252, 58, 1, 4, 253, 166, 58, 1, 4, 249, 68,
- 58, 1, 4, 76, 58, 1, 4, 221, 197, 58, 1, 4, 204, 76, 58, 1, 4, 215, 94,
- 204, 76, 58, 1, 4, 243, 209, 58, 1, 4, 215, 94, 74, 58, 1, 4, 235, 29,
- 58, 1, 4, 194, 58, 1, 4, 245, 146, 58, 1, 4, 78, 58, 1, 4, 204, 78, 58,
- 1, 4, 216, 15, 163, 78, 58, 1, 4, 251, 183, 163, 78, 58, 1, 4, 226, 109,
- 58, 1, 4, 217, 153, 58, 1, 4, 69, 58, 1, 4, 219, 189, 69, 58, 1, 4, 215,
- 94, 194, 58, 1, 4, 214, 105, 58, 1, 4, 254, 205, 58, 1, 4, 252, 34, 58,
- 1, 4, 26, 243, 114, 58, 1, 4, 248, 62, 58, 1, 4, 26, 225, 136, 58, 1, 4,
- 250, 118, 7, 218, 66, 4, 1, 74, 7, 218, 66, 4, 1, 153, 7, 218, 66, 4, 1,
- 69, 7, 218, 66, 4, 1, 214, 105, 26, 218, 66, 4, 1, 252, 34, 26, 218, 66,
- 4, 1, 243, 114, 26, 218, 66, 4, 1, 223, 40, 26, 218, 66, 4, 1, 225, 136,
- 26, 218, 66, 4, 1, 250, 118, 7, 4, 1, 214, 214, 7, 4, 1, 57, 2, 230, 229,
- 184, 7, 4, 1, 249, 69, 2, 230, 229, 184, 7, 4, 1, 245, 15, 2, 230, 229,
- 184, 7, 4, 1, 232, 55, 2, 230, 229, 184, 7, 4, 1, 230, 31, 2, 230, 229,
- 184, 7, 4, 1, 226, 110, 2, 230, 229, 184, 7, 4, 1, 223, 227, 2, 230, 229,
- 184, 7, 4, 1, 223, 227, 2, 244, 96, 22, 230, 229, 184, 7, 4, 1, 222, 94,
- 2, 230, 229, 184, 7, 4, 1, 217, 154, 2, 230, 229, 184, 7, 4, 1, 210, 160,
- 2, 230, 229, 184, 7, 4, 1, 215, 94, 243, 209, 58, 1, 33, 245, 158, 7, 4,
- 1, 235, 220, 243, 209, 7, 4, 1, 216, 212, 2, 218, 109, 7, 4, 6, 1, 240,
- 161, 2, 91, 7, 4, 1, 235, 193, 2, 91, 7, 4, 1, 226, 110, 2, 91, 7, 4, 6,
- 1, 104, 2, 91, 7, 4, 1, 214, 158, 2, 91, 7, 4, 1, 57, 2, 226, 70, 103, 7,
- 4, 1, 249, 69, 2, 226, 70, 103, 7, 4, 1, 245, 15, 2, 226, 70, 103, 7, 4,
- 1, 243, 210, 2, 226, 70, 103, 7, 4, 1, 235, 30, 2, 226, 70, 103, 7, 4, 1,
- 233, 155, 2, 226, 70, 103, 7, 4, 1, 232, 55, 2, 226, 70, 103, 7, 4, 1,
- 230, 31, 2, 226, 70, 103, 7, 4, 1, 226, 110, 2, 226, 70, 103, 7, 4, 1,
- 223, 227, 2, 226, 70, 103, 7, 4, 1, 222, 94, 2, 226, 70, 103, 7, 4, 1,
- 245, 84, 2, 226, 70, 103, 7, 4, 1, 214, 106, 2, 226, 70, 103, 7, 4, 1,
- 211, 179, 2, 226, 70, 103, 7, 4, 1, 210, 160, 2, 226, 70, 103, 7, 4, 1,
- 116, 2, 223, 58, 103, 7, 4, 1, 254, 152, 2, 223, 58, 103, 7, 4, 1, 249,
- 69, 2, 241, 59, 22, 217, 78, 7, 4, 1, 160, 2, 223, 58, 103, 7, 4, 1, 204,
- 160, 2, 223, 58, 103, 7, 4, 1, 223, 52, 204, 160, 2, 223, 58, 103, 7, 4,
- 1, 221, 198, 2, 223, 58, 103, 7, 4, 1, 240, 161, 2, 223, 58, 103, 7, 4,
- 1, 204, 144, 2, 223, 58, 103, 7, 4, 1, 245, 84, 2, 223, 58, 103, 7, 4, 1,
- 104, 2, 223, 58, 103, 7, 4, 1, 245, 17, 2, 223, 58, 103, 58, 1, 4, 215,
- 94, 254, 151, 58, 1, 4, 251, 74, 58, 1, 4, 251, 75, 2, 249, 108, 58, 1,
- 4, 245, 67, 58, 1, 4, 223, 52, 204, 76, 58, 1, 4, 245, 14, 58, 1, 4, 247,
- 127, 235, 151, 2, 91, 58, 1, 4, 119, 243, 209, 58, 1, 4, 215, 94, 242,
- 67, 58, 1, 4, 240, 161, 2, 91, 58, 1, 4, 235, 192, 58, 1, 4, 6, 74, 58,
- 1, 4, 6, 240, 161, 2, 91, 58, 1, 4, 235, 151, 2, 249, 135, 58, 1, 4, 233,
- 155, 2, 223, 58, 103, 58, 1, 4, 233, 155, 2, 226, 70, 103, 58, 1, 4, 6,
- 156, 58, 1, 4, 232, 55, 2, 103, 58, 1, 4, 215, 94, 232, 55, 2, 200, 233,
- 42, 58, 1, 4, 230, 31, 2, 43, 103, 58, 1, 4, 230, 31, 2, 223, 58, 103,
- 58, 1, 4, 6, 230, 30, 58, 1, 4, 252, 142, 78, 58, 1, 4, 225, 136, 58, 1,
- 4, 222, 94, 2, 103, 58, 1, 4, 245, 83, 58, 1, 4, 217, 154, 2, 226, 70,
- 103, 58, 1, 4, 104, 130, 58, 1, 4, 214, 157, 58, 1, 4, 6, 69, 58, 1, 4,
- 214, 106, 2, 103, 58, 1, 4, 215, 94, 214, 105, 58, 1, 4, 210, 159, 58, 1,
- 4, 210, 160, 2, 223, 58, 103, 58, 1, 4, 210, 160, 2, 249, 108, 58, 1, 4,
- 245, 16, 58, 1, 4, 216, 180, 38, 246, 126, 242, 144, 255, 23, 38, 246,
- 126, 255, 12, 255, 23, 38, 219, 71, 51, 38, 218, 7, 79, 38, 231, 236, 38,
- 242, 141, 38, 231, 234, 38, 255, 10, 38, 242, 142, 38, 255, 11, 38, 7, 4,
- 1, 223, 227, 51, 38, 251, 153, 38, 231, 235, 38, 52, 250, 39, 48, 38,
- 226, 229, 48, 38, 210, 35, 51, 38, 235, 179, 51, 38, 214, 151, 48, 38,
- 214, 134, 48, 38, 7, 4, 1, 244, 71, 204, 116, 48, 38, 7, 4, 1, 254, 252,
- 38, 7, 4, 1, 254, 81, 38, 7, 4, 1, 253, 184, 38, 7, 4, 1, 251, 75, 250,
- 191, 38, 7, 4, 1, 235, 220, 249, 68, 38, 7, 4, 1, 245, 67, 38, 7, 4, 1,
- 243, 209, 38, 7, 1, 4, 6, 243, 209, 38, 7, 4, 1, 235, 29, 38, 7, 4, 1,
- 156, 38, 7, 1, 4, 6, 156, 38, 7, 1, 4, 6, 194, 38, 7, 4, 1, 230, 30, 38,
- 7, 1, 4, 6, 230, 30, 38, 7, 1, 4, 6, 153, 38, 7, 4, 1, 223, 227, 222,
- 188, 38, 7, 4, 1, 222, 93, 38, 7, 4, 1, 200, 222, 93, 38, 7, 4, 1, 210,
- 159, 38, 52, 235, 200, 251, 155, 51, 38, 254, 156, 128, 216, 43, 51, 38,
- 43, 254, 2, 48, 38, 44, 254, 2, 22, 124, 254, 2, 51, 7, 6, 1, 116, 2,
- 222, 237, 51, 7, 4, 1, 116, 2, 222, 237, 51, 7, 6, 1, 57, 2, 59, 48, 7,
- 4, 1, 57, 2, 59, 48, 7, 6, 1, 57, 2, 59, 51, 7, 4, 1, 57, 2, 59, 51, 7,
- 6, 1, 57, 2, 232, 220, 51, 7, 4, 1, 57, 2, 232, 220, 51, 7, 6, 1, 251,
- 75, 2, 250, 192, 22, 142, 7, 4, 1, 251, 75, 2, 250, 192, 22, 142, 7, 6,
- 1, 249, 69, 2, 59, 48, 7, 4, 1, 249, 69, 2, 59, 48, 7, 6, 1, 249, 69, 2,
- 59, 51, 7, 4, 1, 249, 69, 2, 59, 51, 7, 6, 1, 249, 69, 2, 232, 220, 51,
- 7, 4, 1, 249, 69, 2, 232, 220, 51, 7, 6, 1, 249, 69, 2, 250, 191, 7, 4,
- 1, 249, 69, 2, 250, 191, 7, 6, 1, 249, 69, 2, 250, 39, 51, 7, 4, 1, 249,
- 69, 2, 250, 39, 51, 7, 6, 1, 160, 2, 231, 238, 22, 242, 143, 7, 4, 1,
- 160, 2, 231, 238, 22, 242, 143, 7, 6, 1, 160, 2, 231, 238, 22, 142, 7, 4,
- 1, 160, 2, 231, 238, 22, 142, 7, 6, 1, 160, 2, 250, 39, 51, 7, 4, 1, 160,
- 2, 250, 39, 51, 7, 6, 1, 160, 2, 216, 90, 51, 7, 4, 1, 160, 2, 216, 90,
- 51, 7, 6, 1, 160, 2, 250, 192, 22, 251, 154, 7, 4, 1, 160, 2, 250, 192,
- 22, 251, 154, 7, 6, 1, 245, 15, 2, 59, 48, 7, 4, 1, 245, 15, 2, 59, 48,
- 7, 6, 1, 243, 210, 2, 231, 237, 7, 4, 1, 243, 210, 2, 231, 237, 7, 6, 1,
- 242, 68, 2, 59, 48, 7, 4, 1, 242, 68, 2, 59, 48, 7, 6, 1, 242, 68, 2, 59,
- 51, 7, 4, 1, 242, 68, 2, 59, 51, 7, 6, 1, 242, 68, 2, 248, 9, 7, 4, 1,
- 242, 68, 2, 248, 9, 7, 6, 1, 242, 68, 2, 250, 191, 7, 4, 1, 242, 68, 2,
- 250, 191, 7, 6, 1, 242, 68, 2, 251, 155, 51, 7, 4, 1, 242, 68, 2, 251,
- 155, 51, 7, 6, 1, 240, 161, 2, 216, 90, 51, 7, 4, 1, 240, 161, 2, 216,
- 90, 51, 7, 6, 1, 240, 161, 2, 248, 10, 22, 142, 7, 4, 1, 240, 161, 2,
- 248, 10, 22, 142, 7, 6, 1, 235, 30, 2, 142, 7, 4, 1, 235, 30, 2, 142, 7,
- 6, 1, 235, 30, 2, 59, 51, 7, 4, 1, 235, 30, 2, 59, 51, 7, 6, 1, 235, 30,
- 2, 232, 220, 51, 7, 4, 1, 235, 30, 2, 232, 220, 51, 7, 6, 1, 233, 155, 2,
- 59, 51, 7, 4, 1, 233, 155, 2, 59, 51, 7, 6, 1, 233, 155, 2, 59, 252, 51,
- 22, 231, 237, 7, 4, 1, 233, 155, 2, 59, 252, 51, 22, 231, 237, 7, 6, 1,
- 233, 155, 2, 232, 220, 51, 7, 4, 1, 233, 155, 2, 232, 220, 51, 7, 6, 1,
- 233, 155, 2, 250, 39, 51, 7, 4, 1, 233, 155, 2, 250, 39, 51, 7, 6, 1,
- 232, 55, 2, 142, 7, 4, 1, 232, 55, 2, 142, 7, 6, 1, 232, 55, 2, 59, 48,
- 7, 4, 1, 232, 55, 2, 59, 48, 7, 6, 1, 232, 55, 2, 59, 51, 7, 4, 1, 232,
- 55, 2, 59, 51, 7, 6, 1, 230, 31, 2, 59, 48, 7, 4, 1, 230, 31, 2, 59, 48,
- 7, 6, 1, 230, 31, 2, 59, 51, 7, 4, 1, 230, 31, 2, 59, 51, 7, 6, 1, 230,
- 31, 2, 232, 220, 51, 7, 4, 1, 230, 31, 2, 232, 220, 51, 7, 6, 1, 230, 31,
- 2, 250, 39, 51, 7, 4, 1, 230, 31, 2, 250, 39, 51, 7, 6, 1, 144, 2, 216,
- 90, 22, 142, 7, 4, 1, 144, 2, 216, 90, 22, 142, 7, 6, 1, 144, 2, 216, 90,
- 22, 248, 9, 7, 4, 1, 144, 2, 216, 90, 22, 248, 9, 7, 6, 1, 144, 2, 231,
- 238, 22, 242, 143, 7, 4, 1, 144, 2, 231, 238, 22, 242, 143, 7, 6, 1, 144,
- 2, 231, 238, 22, 142, 7, 4, 1, 144, 2, 231, 238, 22, 142, 7, 6, 1, 226,
- 110, 2, 142, 7, 4, 1, 226, 110, 2, 142, 7, 6, 1, 226, 110, 2, 59, 48, 7,
- 4, 1, 226, 110, 2, 59, 48, 7, 6, 1, 223, 227, 2, 59, 48, 7, 4, 1, 223,
- 227, 2, 59, 48, 7, 6, 1, 223, 227, 2, 59, 51, 7, 4, 1, 223, 227, 2, 59,
- 51, 7, 6, 1, 223, 227, 2, 59, 252, 51, 22, 231, 237, 7, 4, 1, 223, 227,
- 2, 59, 252, 51, 22, 231, 237, 7, 6, 1, 223, 227, 2, 232, 220, 51, 7, 4,
- 1, 223, 227, 2, 232, 220, 51, 7, 6, 1, 222, 94, 2, 59, 48, 7, 4, 1, 222,
- 94, 2, 59, 48, 7, 6, 1, 222, 94, 2, 59, 51, 7, 4, 1, 222, 94, 2, 59, 51,
- 7, 6, 1, 222, 94, 2, 255, 12, 22, 59, 48, 7, 4, 1, 222, 94, 2, 255, 12,
- 22, 59, 48, 7, 6, 1, 222, 94, 2, 250, 243, 22, 59, 48, 7, 4, 1, 222, 94,
- 2, 250, 243, 22, 59, 48, 7, 6, 1, 222, 94, 2, 59, 252, 51, 22, 59, 48, 7,
- 4, 1, 222, 94, 2, 59, 252, 51, 22, 59, 48, 7, 6, 1, 217, 154, 2, 59, 48,
- 7, 4, 1, 217, 154, 2, 59, 48, 7, 6, 1, 217, 154, 2, 59, 51, 7, 4, 1, 217,
- 154, 2, 59, 51, 7, 6, 1, 217, 154, 2, 232, 220, 51, 7, 4, 1, 217, 154, 2,
- 232, 220, 51, 7, 6, 1, 217, 154, 2, 250, 39, 51, 7, 4, 1, 217, 154, 2,
- 250, 39, 51, 7, 6, 1, 104, 2, 248, 10, 51, 7, 4, 1, 104, 2, 248, 10, 51,
- 7, 6, 1, 104, 2, 216, 90, 51, 7, 4, 1, 104, 2, 216, 90, 51, 7, 6, 1, 104,
- 2, 250, 39, 51, 7, 4, 1, 104, 2, 250, 39, 51, 7, 6, 1, 104, 2, 216, 90,
- 22, 142, 7, 4, 1, 104, 2, 216, 90, 22, 142, 7, 6, 1, 104, 2, 231, 238,
- 22, 248, 9, 7, 4, 1, 104, 2, 231, 238, 22, 248, 9, 7, 6, 1, 214, 106, 2,
- 184, 7, 4, 1, 214, 106, 2, 184, 7, 6, 1, 214, 106, 2, 59, 51, 7, 4, 1,
- 214, 106, 2, 59, 51, 7, 6, 1, 212, 99, 2, 242, 143, 7, 4, 1, 212, 99, 2,
- 242, 143, 7, 6, 1, 212, 99, 2, 142, 7, 4, 1, 212, 99, 2, 142, 7, 6, 1,
- 212, 99, 2, 248, 9, 7, 4, 1, 212, 99, 2, 248, 9, 7, 6, 1, 212, 99, 2, 59,
- 48, 7, 4, 1, 212, 99, 2, 59, 48, 7, 6, 1, 212, 99, 2, 59, 51, 7, 4, 1,
- 212, 99, 2, 59, 51, 7, 6, 1, 211, 179, 2, 59, 48, 7, 4, 1, 211, 179, 2,
- 59, 48, 7, 6, 1, 211, 179, 2, 248, 9, 7, 4, 1, 211, 179, 2, 248, 9, 7, 6,
- 1, 211, 118, 2, 59, 48, 7, 4, 1, 211, 118, 2, 59, 48, 7, 6, 1, 210, 160,
- 2, 250, 38, 7, 4, 1, 210, 160, 2, 250, 38, 7, 6, 1, 210, 160, 2, 59, 51,
- 7, 4, 1, 210, 160, 2, 59, 51, 7, 6, 1, 210, 160, 2, 232, 220, 51, 7, 4,
- 1, 210, 160, 2, 232, 220, 51, 7, 4, 1, 242, 68, 2, 232, 220, 51, 7, 4, 1,
- 217, 154, 2, 248, 9, 7, 4, 1, 212, 99, 2, 222, 237, 48, 7, 4, 1, 211,
- 118, 2, 222, 237, 48, 7, 4, 1, 116, 2, 44, 163, 222, 236, 7, 4, 1, 200,
- 222, 94, 2, 59, 48, 7, 4, 1, 200, 222, 94, 2, 248, 7, 91, 7, 4, 1, 200,
- 222, 94, 2, 125, 91, 7, 6, 1, 220, 78, 222, 93, 7, 4, 1, 248, 62, 7, 6,
- 1, 116, 2, 59, 51, 7, 4, 1, 116, 2, 59, 51, 7, 6, 1, 116, 2, 241, 59, 48,
- 7, 4, 1, 116, 2, 241, 59, 48, 7, 6, 1, 116, 2, 250, 39, 22, 142, 7, 4, 1,
- 116, 2, 250, 39, 22, 142, 7, 6, 1, 116, 2, 250, 39, 22, 242, 143, 7, 4,
- 1, 116, 2, 250, 39, 22, 242, 143, 7, 6, 1, 116, 2, 250, 39, 22, 241, 59,
- 48, 7, 4, 1, 116, 2, 250, 39, 22, 241, 59, 48, 7, 6, 1, 116, 2, 250, 39,
- 22, 184, 7, 4, 1, 116, 2, 250, 39, 22, 184, 7, 6, 1, 116, 2, 250, 39, 22,
- 59, 51, 7, 4, 1, 116, 2, 250, 39, 22, 59, 51, 7, 6, 1, 116, 2, 251, 155,
- 22, 142, 7, 4, 1, 116, 2, 251, 155, 22, 142, 7, 6, 1, 116, 2, 251, 155,
- 22, 242, 143, 7, 4, 1, 116, 2, 251, 155, 22, 242, 143, 7, 6, 1, 116, 2,
- 251, 155, 22, 241, 59, 48, 7, 4, 1, 116, 2, 251, 155, 22, 241, 59, 48, 7,
- 6, 1, 116, 2, 251, 155, 22, 184, 7, 4, 1, 116, 2, 251, 155, 22, 184, 7,
- 6, 1, 116, 2, 251, 155, 22, 59, 51, 7, 4, 1, 116, 2, 251, 155, 22, 59,
- 51, 7, 6, 1, 160, 2, 59, 51, 7, 4, 1, 160, 2, 59, 51, 7, 6, 1, 160, 2,
- 241, 59, 48, 7, 4, 1, 160, 2, 241, 59, 48, 7, 6, 1, 160, 2, 184, 7, 4, 1,
- 160, 2, 184, 7, 6, 1, 160, 2, 250, 39, 22, 142, 7, 4, 1, 160, 2, 250, 39,
- 22, 142, 7, 6, 1, 160, 2, 250, 39, 22, 242, 143, 7, 4, 1, 160, 2, 250,
- 39, 22, 242, 143, 7, 6, 1, 160, 2, 250, 39, 22, 241, 59, 48, 7, 4, 1,
- 160, 2, 250, 39, 22, 241, 59, 48, 7, 6, 1, 160, 2, 250, 39, 22, 184, 7,
- 4, 1, 160, 2, 250, 39, 22, 184, 7, 6, 1, 160, 2, 250, 39, 22, 59, 51, 7,
- 4, 1, 160, 2, 250, 39, 22, 59, 51, 7, 6, 1, 240, 161, 2, 241, 59, 48, 7,
- 4, 1, 240, 161, 2, 241, 59, 48, 7, 6, 1, 240, 161, 2, 59, 51, 7, 4, 1,
- 240, 161, 2, 59, 51, 7, 6, 1, 144, 2, 59, 51, 7, 4, 1, 144, 2, 59, 51, 7,
- 6, 1, 144, 2, 241, 59, 48, 7, 4, 1, 144, 2, 241, 59, 48, 7, 6, 1, 144, 2,
- 250, 39, 22, 142, 7, 4, 1, 144, 2, 250, 39, 22, 142, 7, 6, 1, 144, 2,
- 250, 39, 22, 242, 143, 7, 4, 1, 144, 2, 250, 39, 22, 242, 143, 7, 6, 1,
- 144, 2, 250, 39, 22, 241, 59, 48, 7, 4, 1, 144, 2, 250, 39, 22, 241, 59,
- 48, 7, 6, 1, 144, 2, 250, 39, 22, 184, 7, 4, 1, 144, 2, 250, 39, 22, 184,
- 7, 6, 1, 144, 2, 250, 39, 22, 59, 51, 7, 4, 1, 144, 2, 250, 39, 22, 59,
- 51, 7, 6, 1, 144, 2, 241, 0, 22, 142, 7, 4, 1, 144, 2, 241, 0, 22, 142,
- 7, 6, 1, 144, 2, 241, 0, 22, 242, 143, 7, 4, 1, 144, 2, 241, 0, 22, 242,
- 143, 7, 6, 1, 144, 2, 241, 0, 22, 241, 59, 48, 7, 4, 1, 144, 2, 241, 0,
- 22, 241, 59, 48, 7, 6, 1, 144, 2, 241, 0, 22, 184, 7, 4, 1, 144, 2, 241,
- 0, 22, 184, 7, 6, 1, 144, 2, 241, 0, 22, 59, 51, 7, 4, 1, 144, 2, 241, 0,
- 22, 59, 51, 7, 6, 1, 104, 2, 59, 51, 7, 4, 1, 104, 2, 59, 51, 7, 6, 1,
- 104, 2, 241, 59, 48, 7, 4, 1, 104, 2, 241, 59, 48, 7, 6, 1, 104, 2, 241,
- 0, 22, 142, 7, 4, 1, 104, 2, 241, 0, 22, 142, 7, 6, 1, 104, 2, 241, 0,
- 22, 242, 143, 7, 4, 1, 104, 2, 241, 0, 22, 242, 143, 7, 6, 1, 104, 2,
- 241, 0, 22, 241, 59, 48, 7, 4, 1, 104, 2, 241, 0, 22, 241, 59, 48, 7, 6,
- 1, 104, 2, 241, 0, 22, 184, 7, 4, 1, 104, 2, 241, 0, 22, 184, 7, 6, 1,
- 104, 2, 241, 0, 22, 59, 51, 7, 4, 1, 104, 2, 241, 0, 22, 59, 51, 7, 6, 1,
- 211, 118, 2, 242, 143, 7, 4, 1, 211, 118, 2, 242, 143, 7, 6, 1, 211, 118,
- 2, 59, 51, 7, 4, 1, 211, 118, 2, 59, 51, 7, 6, 1, 211, 118, 2, 241, 59,
- 48, 7, 4, 1, 211, 118, 2, 241, 59, 48, 7, 6, 1, 211, 118, 2, 184, 7, 4,
- 1, 211, 118, 2, 184, 7, 6, 1, 230, 228, 232, 191, 7, 4, 1, 230, 228, 232,
- 191, 7, 6, 1, 230, 228, 214, 105, 7, 4, 1, 230, 228, 214, 105, 7, 6, 1,
- 211, 118, 2, 232, 129, 7, 4, 1, 211, 118, 2, 232, 129, 26, 4, 1, 254,
- 152, 2, 224, 157, 26, 4, 1, 254, 152, 2, 248, 161, 26, 4, 1, 254, 152, 2,
- 224, 158, 22, 214, 13, 26, 4, 1, 254, 152, 2, 248, 162, 22, 214, 13, 26,
- 4, 1, 254, 152, 2, 224, 158, 22, 226, 114, 26, 4, 1, 254, 152, 2, 248,
- 162, 22, 226, 114, 26, 4, 1, 254, 152, 2, 224, 158, 22, 225, 178, 26, 4,
- 1, 254, 152, 2, 248, 162, 22, 225, 178, 26, 6, 1, 254, 152, 2, 224, 157,
- 26, 6, 1, 254, 152, 2, 248, 161, 26, 6, 1, 254, 152, 2, 224, 158, 22,
- 214, 13, 26, 6, 1, 254, 152, 2, 248, 162, 22, 214, 13, 26, 6, 1, 254,
- 152, 2, 224, 158, 22, 226, 114, 26, 6, 1, 254, 152, 2, 248, 162, 22, 226,
- 114, 26, 6, 1, 254, 152, 2, 224, 158, 22, 225, 178, 26, 6, 1, 254, 152,
- 2, 248, 162, 22, 225, 178, 26, 4, 1, 245, 109, 2, 224, 157, 26, 4, 1,
- 245, 109, 2, 248, 161, 26, 4, 1, 245, 109, 2, 224, 158, 22, 214, 13, 26,
- 4, 1, 245, 109, 2, 248, 162, 22, 214, 13, 26, 4, 1, 245, 109, 2, 224,
- 158, 22, 226, 114, 26, 4, 1, 245, 109, 2, 248, 162, 22, 226, 114, 26, 6,
- 1, 245, 109, 2, 224, 157, 26, 6, 1, 245, 109, 2, 248, 161, 26, 6, 1, 245,
- 109, 2, 224, 158, 22, 214, 13, 26, 6, 1, 245, 109, 2, 248, 162, 22, 214,
- 13, 26, 6, 1, 245, 109, 2, 224, 158, 22, 226, 114, 26, 6, 1, 245, 109, 2,
- 248, 162, 22, 226, 114, 26, 4, 1, 245, 72, 2, 224, 157, 26, 4, 1, 245,
- 72, 2, 248, 161, 26, 4, 1, 245, 72, 2, 224, 158, 22, 214, 13, 26, 4, 1,
- 245, 72, 2, 248, 162, 22, 214, 13, 26, 4, 1, 245, 72, 2, 224, 158, 22,
- 226, 114, 26, 4, 1, 245, 72, 2, 248, 162, 22, 226, 114, 26, 4, 1, 245,
- 72, 2, 224, 158, 22, 225, 178, 26, 4, 1, 245, 72, 2, 248, 162, 22, 225,
- 178, 26, 6, 1, 245, 72, 2, 224, 157, 26, 6, 1, 245, 72, 2, 248, 161, 26,
- 6, 1, 245, 72, 2, 224, 158, 22, 214, 13, 26, 6, 1, 245, 72, 2, 248, 162,
- 22, 214, 13, 26, 6, 1, 245, 72, 2, 224, 158, 22, 226, 114, 26, 6, 1, 245,
- 72, 2, 248, 162, 22, 226, 114, 26, 6, 1, 245, 72, 2, 224, 158, 22, 225,
- 178, 26, 6, 1, 245, 72, 2, 248, 162, 22, 225, 178, 26, 4, 1, 235, 193, 2,
- 224, 157, 26, 4, 1, 235, 193, 2, 248, 161, 26, 4, 1, 235, 193, 2, 224,
- 158, 22, 214, 13, 26, 4, 1, 235, 193, 2, 248, 162, 22, 214, 13, 26, 4, 1,
- 235, 193, 2, 224, 158, 22, 226, 114, 26, 4, 1, 235, 193, 2, 248, 162, 22,
- 226, 114, 26, 4, 1, 235, 193, 2, 224, 158, 22, 225, 178, 26, 4, 1, 235,
- 193, 2, 248, 162, 22, 225, 178, 26, 6, 1, 235, 193, 2, 224, 157, 26, 6,
- 1, 235, 193, 2, 248, 161, 26, 6, 1, 235, 193, 2, 224, 158, 22, 214, 13,
- 26, 6, 1, 235, 193, 2, 248, 162, 22, 214, 13, 26, 6, 1, 235, 193, 2, 224,
- 158, 22, 226, 114, 26, 6, 1, 235, 193, 2, 248, 162, 22, 226, 114, 26, 6,
- 1, 235, 193, 2, 224, 158, 22, 225, 178, 26, 6, 1, 235, 193, 2, 248, 162,
- 22, 225, 178, 26, 4, 1, 226, 204, 2, 224, 157, 26, 4, 1, 226, 204, 2,
- 248, 161, 26, 4, 1, 226, 204, 2, 224, 158, 22, 214, 13, 26, 4, 1, 226,
- 204, 2, 248, 162, 22, 214, 13, 26, 4, 1, 226, 204, 2, 224, 158, 22, 226,
- 114, 26, 4, 1, 226, 204, 2, 248, 162, 22, 226, 114, 26, 6, 1, 226, 204,
- 2, 224, 157, 26, 6, 1, 226, 204, 2, 248, 161, 26, 6, 1, 226, 204, 2, 224,
- 158, 22, 214, 13, 26, 6, 1, 226, 204, 2, 248, 162, 22, 214, 13, 26, 6, 1,
- 226, 204, 2, 224, 158, 22, 226, 114, 26, 6, 1, 226, 204, 2, 248, 162, 22,
- 226, 114, 26, 4, 1, 214, 158, 2, 224, 157, 26, 4, 1, 214, 158, 2, 248,
- 161, 26, 4, 1, 214, 158, 2, 224, 158, 22, 214, 13, 26, 4, 1, 214, 158, 2,
- 248, 162, 22, 214, 13, 26, 4, 1, 214, 158, 2, 224, 158, 22, 226, 114, 26,
- 4, 1, 214, 158, 2, 248, 162, 22, 226, 114, 26, 4, 1, 214, 158, 2, 224,
- 158, 22, 225, 178, 26, 4, 1, 214, 158, 2, 248, 162, 22, 225, 178, 26, 6,
- 1, 214, 158, 2, 248, 161, 26, 6, 1, 214, 158, 2, 248, 162, 22, 214, 13,
- 26, 6, 1, 214, 158, 2, 248, 162, 22, 226, 114, 26, 6, 1, 214, 158, 2,
- 248, 162, 22, 225, 178, 26, 4, 1, 226, 206, 2, 224, 157, 26, 4, 1, 226,
- 206, 2, 248, 161, 26, 4, 1, 226, 206, 2, 224, 158, 22, 214, 13, 26, 4, 1,
- 226, 206, 2, 248, 162, 22, 214, 13, 26, 4, 1, 226, 206, 2, 224, 158, 22,
- 226, 114, 26, 4, 1, 226, 206, 2, 248, 162, 22, 226, 114, 26, 4, 1, 226,
- 206, 2, 224, 158, 22, 225, 178, 26, 4, 1, 226, 206, 2, 248, 162, 22, 225,
- 178, 26, 6, 1, 226, 206, 2, 224, 157, 26, 6, 1, 226, 206, 2, 248, 161,
- 26, 6, 1, 226, 206, 2, 224, 158, 22, 214, 13, 26, 6, 1, 226, 206, 2, 248,
- 162, 22, 214, 13, 26, 6, 1, 226, 206, 2, 224, 158, 22, 226, 114, 26, 6,
- 1, 226, 206, 2, 248, 162, 22, 226, 114, 26, 6, 1, 226, 206, 2, 224, 158,
- 22, 225, 178, 26, 6, 1, 226, 206, 2, 248, 162, 22, 225, 178, 26, 4, 1,
- 254, 152, 2, 214, 13, 26, 4, 1, 254, 152, 2, 226, 114, 26, 4, 1, 245,
- 109, 2, 214, 13, 26, 4, 1, 245, 109, 2, 226, 114, 26, 4, 1, 245, 72, 2,
- 214, 13, 26, 4, 1, 245, 72, 2, 226, 114, 26, 4, 1, 235, 193, 2, 214, 13,
- 26, 4, 1, 235, 193, 2, 226, 114, 26, 4, 1, 226, 204, 2, 214, 13, 26, 4,
- 1, 226, 204, 2, 226, 114, 26, 4, 1, 214, 158, 2, 214, 13, 26, 4, 1, 214,
- 158, 2, 226, 114, 26, 4, 1, 226, 206, 2, 214, 13, 26, 4, 1, 226, 206, 2,
- 226, 114, 26, 4, 1, 254, 152, 2, 224, 158, 22, 210, 219, 26, 4, 1, 254,
- 152, 2, 248, 162, 22, 210, 219, 26, 4, 1, 254, 152, 2, 224, 158, 22, 214,
- 14, 22, 210, 219, 26, 4, 1, 254, 152, 2, 248, 162, 22, 214, 14, 22, 210,
- 219, 26, 4, 1, 254, 152, 2, 224, 158, 22, 226, 115, 22, 210, 219, 26, 4,
- 1, 254, 152, 2, 248, 162, 22, 226, 115, 22, 210, 219, 26, 4, 1, 254, 152,
- 2, 224, 158, 22, 225, 179, 22, 210, 219, 26, 4, 1, 254, 152, 2, 248, 162,
- 22, 225, 179, 22, 210, 219, 26, 6, 1, 254, 152, 2, 224, 158, 22, 224,
- 170, 26, 6, 1, 254, 152, 2, 248, 162, 22, 224, 170, 26, 6, 1, 254, 152,
- 2, 224, 158, 22, 214, 14, 22, 224, 170, 26, 6, 1, 254, 152, 2, 248, 162,
- 22, 214, 14, 22, 224, 170, 26, 6, 1, 254, 152, 2, 224, 158, 22, 226, 115,
- 22, 224, 170, 26, 6, 1, 254, 152, 2, 248, 162, 22, 226, 115, 22, 224,
- 170, 26, 6, 1, 254, 152, 2, 224, 158, 22, 225, 179, 22, 224, 170, 26, 6,
- 1, 254, 152, 2, 248, 162, 22, 225, 179, 22, 224, 170, 26, 4, 1, 245, 72,
- 2, 224, 158, 22, 210, 219, 26, 4, 1, 245, 72, 2, 248, 162, 22, 210, 219,
- 26, 4, 1, 245, 72, 2, 224, 158, 22, 214, 14, 22, 210, 219, 26, 4, 1, 245,
- 72, 2, 248, 162, 22, 214, 14, 22, 210, 219, 26, 4, 1, 245, 72, 2, 224,
- 158, 22, 226, 115, 22, 210, 219, 26, 4, 1, 245, 72, 2, 248, 162, 22, 226,
- 115, 22, 210, 219, 26, 4, 1, 245, 72, 2, 224, 158, 22, 225, 179, 22, 210,
- 219, 26, 4, 1, 245, 72, 2, 248, 162, 22, 225, 179, 22, 210, 219, 26, 6,
- 1, 245, 72, 2, 224, 158, 22, 224, 170, 26, 6, 1, 245, 72, 2, 248, 162,
- 22, 224, 170, 26, 6, 1, 245, 72, 2, 224, 158, 22, 214, 14, 22, 224, 170,
- 26, 6, 1, 245, 72, 2, 248, 162, 22, 214, 14, 22, 224, 170, 26, 6, 1, 245,
- 72, 2, 224, 158, 22, 226, 115, 22, 224, 170, 26, 6, 1, 245, 72, 2, 248,
- 162, 22, 226, 115, 22, 224, 170, 26, 6, 1, 245, 72, 2, 224, 158, 22, 225,
- 179, 22, 224, 170, 26, 6, 1, 245, 72, 2, 248, 162, 22, 225, 179, 22, 224,
- 170, 26, 4, 1, 226, 206, 2, 224, 158, 22, 210, 219, 26, 4, 1, 226, 206,
- 2, 248, 162, 22, 210, 219, 26, 4, 1, 226, 206, 2, 224, 158, 22, 214, 14,
- 22, 210, 219, 26, 4, 1, 226, 206, 2, 248, 162, 22, 214, 14, 22, 210, 219,
- 26, 4, 1, 226, 206, 2, 224, 158, 22, 226, 115, 22, 210, 219, 26, 4, 1,
- 226, 206, 2, 248, 162, 22, 226, 115, 22, 210, 219, 26, 4, 1, 226, 206, 2,
- 224, 158, 22, 225, 179, 22, 210, 219, 26, 4, 1, 226, 206, 2, 248, 162,
- 22, 225, 179, 22, 210, 219, 26, 6, 1, 226, 206, 2, 224, 158, 22, 224,
- 170, 26, 6, 1, 226, 206, 2, 248, 162, 22, 224, 170, 26, 6, 1, 226, 206,
- 2, 224, 158, 22, 214, 14, 22, 224, 170, 26, 6, 1, 226, 206, 2, 248, 162,
- 22, 214, 14, 22, 224, 170, 26, 6, 1, 226, 206, 2, 224, 158, 22, 226, 115,
- 22, 224, 170, 26, 6, 1, 226, 206, 2, 248, 162, 22, 226, 115, 22, 224,
- 170, 26, 6, 1, 226, 206, 2, 224, 158, 22, 225, 179, 22, 224, 170, 26, 6,
- 1, 226, 206, 2, 248, 162, 22, 225, 179, 22, 224, 170, 26, 4, 1, 254, 152,
- 2, 213, 120, 26, 4, 1, 254, 152, 2, 231, 237, 26, 4, 1, 254, 152, 2, 214,
- 14, 22, 210, 219, 26, 4, 1, 254, 152, 2, 210, 219, 26, 4, 1, 254, 152, 2,
- 226, 115, 22, 210, 219, 26, 4, 1, 254, 152, 2, 225, 178, 26, 4, 1, 254,
- 152, 2, 225, 179, 22, 210, 219, 26, 6, 1, 254, 152, 2, 213, 120, 26, 6,
- 1, 254, 152, 2, 231, 237, 26, 6, 1, 254, 152, 2, 214, 13, 26, 6, 1, 254,
- 152, 2, 226, 114, 26, 6, 1, 254, 152, 2, 224, 170, 26, 234, 8, 26, 224,
- 170, 26, 224, 157, 26, 225, 178, 26, 248, 4, 22, 225, 178, 26, 4, 1, 245,
- 72, 2, 214, 14, 22, 210, 219, 26, 4, 1, 245, 72, 2, 210, 219, 26, 4, 1,
- 245, 72, 2, 226, 115, 22, 210, 219, 26, 4, 1, 245, 72, 2, 225, 178, 26,
- 4, 1, 245, 72, 2, 225, 179, 22, 210, 219, 26, 6, 1, 245, 109, 2, 214, 13,
- 26, 6, 1, 245, 109, 2, 226, 114, 26, 6, 1, 245, 72, 2, 214, 13, 26, 6, 1,
- 245, 72, 2, 226, 114, 26, 6, 1, 245, 72, 2, 224, 170, 26, 224, 158, 22,
- 214, 13, 26, 224, 158, 22, 226, 114, 26, 224, 158, 22, 225, 178, 26, 4,
- 1, 235, 193, 2, 213, 120, 26, 4, 1, 235, 193, 2, 231, 237, 26, 4, 1, 235,
- 193, 2, 248, 4, 22, 214, 13, 26, 4, 1, 235, 193, 2, 248, 4, 22, 226, 114,
- 26, 4, 1, 235, 193, 2, 225, 178, 26, 4, 1, 235, 193, 2, 248, 4, 22, 225,
- 178, 26, 6, 1, 235, 193, 2, 213, 120, 26, 6, 1, 235, 193, 2, 231, 237,
- 26, 6, 1, 235, 193, 2, 214, 13, 26, 6, 1, 235, 193, 2, 226, 114, 26, 248,
- 162, 22, 214, 13, 26, 248, 162, 22, 226, 114, 26, 248, 162, 22, 225, 178,
- 26, 4, 1, 214, 158, 2, 213, 120, 26, 4, 1, 214, 158, 2, 231, 237, 26, 4,
- 1, 214, 158, 2, 248, 4, 22, 214, 13, 26, 4, 1, 214, 158, 2, 248, 4, 22,
- 226, 114, 26, 4, 1, 223, 41, 2, 224, 157, 26, 4, 1, 223, 41, 2, 248, 161,
- 26, 4, 1, 214, 158, 2, 225, 178, 26, 4, 1, 214, 158, 2, 248, 4, 22, 225,
- 178, 26, 6, 1, 214, 158, 2, 213, 120, 26, 6, 1, 214, 158, 2, 231, 237,
- 26, 6, 1, 214, 158, 2, 214, 13, 26, 6, 1, 214, 158, 2, 226, 114, 26, 6,
- 1, 223, 41, 2, 248, 161, 26, 248, 4, 22, 214, 13, 26, 248, 4, 22, 226,
- 114, 26, 214, 13, 26, 4, 1, 226, 206, 2, 214, 14, 22, 210, 219, 26, 4, 1,
- 226, 206, 2, 210, 219, 26, 4, 1, 226, 206, 2, 226, 115, 22, 210, 219, 26,
- 4, 1, 226, 206, 2, 225, 178, 26, 4, 1, 226, 206, 2, 225, 179, 22, 210,
- 219, 26, 6, 1, 226, 204, 2, 214, 13, 26, 6, 1, 226, 204, 2, 226, 114, 26,
- 6, 1, 226, 206, 2, 214, 13, 26, 6, 1, 226, 206, 2, 226, 114, 26, 6, 1,
- 226, 206, 2, 224, 170, 26, 226, 114, 26, 248, 161, 245, 159, 224, 30,
- 245, 168, 224, 30, 245, 159, 219, 20, 245, 168, 219, 20, 216, 142, 219,
- 20, 244, 17, 219, 20, 219, 125, 219, 20, 244, 120, 219, 20, 224, 144,
- 219, 20, 216, 171, 219, 20, 242, 42, 219, 20, 210, 87, 211, 245, 219, 20,
- 210, 87, 211, 245, 228, 72, 210, 87, 211, 245, 235, 69, 233, 44, 79, 222,
- 246, 79, 240, 175, 228, 73, 240, 175, 244, 120, 248, 164, 245, 159, 248,
- 164, 245, 168, 248, 164, 203, 130, 52, 67, 232, 219, 52, 121, 232, 219,
- 43, 219, 157, 224, 1, 79, 44, 219, 157, 224, 1, 79, 219, 157, 232, 115,
- 224, 1, 79, 219, 157, 241, 170, 224, 1, 79, 43, 52, 224, 1, 79, 44, 52,
- 224, 1, 79, 52, 232, 115, 224, 1, 79, 52, 241, 170, 224, 1, 79, 248, 213,
- 52, 248, 213, 251, 121, 215, 223, 251, 121, 123, 59, 233, 62, 113, 59,
- 233, 62, 203, 245, 171, 240, 173, 225, 13, 232, 220, 220, 139, 226, 19,
- 220, 139, 233, 44, 245, 166, 222, 246, 245, 166, 224, 249, 247, 204, 244,
- 27, 233, 44, 226, 121, 222, 246, 226, 121, 229, 199, 228, 78, 219, 20,
- 225, 186, 230, 198, 50, 225, 186, 216, 249, 216, 149, 50, 224, 193, 52,
- 224, 193, 215, 212, 224, 193, 223, 52, 224, 193, 223, 52, 52, 224, 193,
- 223, 52, 215, 212, 224, 193, 250, 246, 219, 157, 233, 48, 254, 118, 224,
- 1, 79, 219, 157, 222, 250, 254, 118, 224, 1, 79, 223, 110, 79, 52, 245,
- 39, 79, 235, 208, 226, 123, 214, 180, 135, 216, 112, 250, 247, 235, 223,
- 225, 13, 253, 222, 240, 176, 251, 121, 244, 10, 219, 97, 43, 42, 251,
- 166, 2, 224, 10, 44, 42, 251, 166, 2, 224, 10, 52, 224, 16, 79, 224, 16,
- 245, 39, 79, 245, 39, 224, 16, 79, 216, 71, 5, 245, 73, 223, 52, 225, 71,
- 50, 85, 140, 251, 121, 85, 97, 251, 121, 121, 253, 224, 223, 52, 220,
- 152, 250, 9, 214, 163, 113, 253, 223, 254, 167, 213, 188, 249, 225, 230,
- 187, 50, 217, 235, 248, 164, 235, 200, 214, 180, 244, 60, 224, 144, 79,
- 134, 59, 224, 143, 224, 27, 224, 193, 244, 19, 59, 224, 143, 244, 89, 59,
- 224, 143, 113, 59, 224, 143, 244, 19, 59, 79, 246, 126, 249, 138, 215,
- 222, 67, 244, 19, 247, 126, 231, 87, 11, 219, 20, 211, 209, 235, 69, 243,
- 234, 254, 60, 235, 198, 216, 86, 235, 198, 220, 139, 235, 198, 225, 25,
- 233, 44, 235, 171, 222, 246, 235, 171, 244, 100, 218, 91, 235, 171, 224,
- 249, 247, 204, 235, 171, 235, 235, 217, 183, 217, 252, 255, 14, 217, 183,
- 217, 252, 235, 235, 9, 244, 28, 220, 82, 255, 14, 9, 244, 28, 220, 82,
- 229, 194, 21, 220, 83, 228, 74, 21, 220, 83, 218, 24, 210, 86, 218, 24,
- 7, 4, 1, 74, 218, 24, 161, 218, 24, 190, 218, 24, 195, 218, 24, 199, 218,
- 24, 196, 218, 24, 201, 218, 24, 96, 50, 218, 24, 230, 186, 218, 24, 245,
- 106, 50, 218, 24, 43, 226, 7, 218, 24, 44, 226, 7, 218, 24, 7, 4, 1, 230,
- 30, 218, 66, 210, 86, 218, 66, 111, 218, 66, 105, 218, 66, 158, 218, 66,
- 161, 218, 66, 190, 218, 66, 195, 218, 66, 199, 218, 66, 196, 218, 66,
- 201, 218, 66, 96, 50, 218, 66, 230, 186, 218, 66, 245, 106, 50, 218, 66,
- 43, 226, 7, 218, 66, 44, 226, 7, 7, 218, 66, 4, 1, 61, 7, 218, 66, 4, 1,
- 76, 7, 218, 66, 4, 1, 78, 7, 218, 66, 4, 1, 211, 178, 7, 218, 66, 4, 1,
- 221, 197, 7, 218, 66, 4, 1, 242, 67, 7, 218, 66, 4, 1, 235, 29, 7, 218,
- 66, 4, 1, 156, 7, 218, 66, 4, 1, 194, 7, 218, 66, 4, 1, 230, 30, 7, 218,
- 66, 4, 1, 226, 109, 7, 218, 66, 4, 1, 222, 93, 7, 218, 66, 4, 1, 217,
- 153, 245, 54, 50, 249, 235, 50, 249, 125, 50, 244, 3, 244, 6, 50, 232,
- 204, 50, 230, 199, 50, 229, 215, 50, 225, 165, 50, 222, 120, 50, 211,
- 217, 50, 166, 220, 51, 50, 247, 135, 50, 245, 55, 50, 234, 82, 50, 215,
- 113, 50, 246, 109, 50, 243, 47, 225, 196, 50, 225, 163, 50, 242, 116, 50,
- 253, 190, 50, 240, 235, 50, 250, 193, 50, 232, 197, 216, 4, 50, 219, 2,
- 50, 216, 246, 50, 235, 248, 222, 120, 50, 215, 97, 232, 204, 50, 38, 43,
- 242, 6, 48, 38, 44, 242, 6, 48, 38, 200, 67, 232, 220, 226, 124, 38, 219,
- 253, 67, 232, 220, 226, 124, 38, 254, 96, 80, 48, 38, 250, 10, 80, 48,
- 38, 43, 80, 48, 38, 44, 80, 48, 38, 222, 237, 226, 124, 38, 250, 10, 222,
- 237, 226, 124, 38, 254, 96, 222, 237, 226, 124, 38, 134, 170, 48, 38,
- 244, 19, 170, 48, 38, 245, 154, 250, 43, 38, 245, 154, 218, 236, 38, 245,
- 154, 248, 0, 38, 245, 154, 250, 44, 252, 188, 38, 43, 44, 80, 48, 38,
- 245, 154, 221, 190, 38, 245, 154, 234, 141, 38, 245, 154, 214, 155, 225,
- 10, 215, 226, 38, 223, 53, 219, 49, 226, 124, 38, 52, 67, 218, 105, 226,
- 124, 38, 254, 106, 87, 38, 215, 212, 214, 182, 38, 211, 247, 251, 148,
- 48, 38, 140, 80, 226, 124, 38, 200, 52, 219, 49, 226, 124, 38, 97, 242,
- 6, 2, 252, 147, 246, 111, 38, 140, 242, 6, 2, 252, 147, 246, 111, 38, 43,
- 80, 51, 38, 44, 80, 51, 38, 253, 225, 48, 255, 20, 226, 235, 255, 4, 216,
- 43, 216, 197, 218, 75, 139, 6, 251, 74, 248, 79, 250, 186, 250, 183, 232,
- 220, 87, 250, 248, 226, 235, 251, 34, 214, 189, 245, 56, 249, 199, 221,
- 187, 248, 79, 244, 187, 119, 4, 243, 209, 119, 6, 242, 67, 251, 227, 6,
- 242, 67, 139, 6, 242, 67, 225, 40, 249, 199, 225, 40, 249, 200, 115, 113,
- 225, 111, 119, 6, 74, 251, 227, 6, 74, 119, 6, 156, 119, 4, 156, 233,
- 155, 57, 252, 149, 87, 139, 6, 230, 30, 227, 200, 50, 219, 33, 223, 122,
- 249, 170, 119, 6, 226, 109, 139, 6, 226, 109, 139, 6, 224, 99, 119, 6,
- 153, 251, 227, 6, 153, 139, 6, 153, 224, 199, 217, 72, 223, 65, 220, 134,
- 79, 217, 2, 50, 215, 254, 164, 50, 213, 240, 139, 6, 210, 159, 226, 137,
- 50, 226, 225, 50, 235, 200, 226, 225, 50, 251, 227, 6, 210, 159, 215, 94,
- 26, 4, 1, 235, 192, 234, 179, 50, 254, 115, 50, 119, 6, 253, 166, 251,
- 227, 6, 251, 74, 245, 76, 87, 119, 4, 76, 119, 6, 76, 119, 6, 245, 14,
- 215, 94, 6, 245, 14, 119, 6, 194, 119, 4, 78, 109, 87, 252, 37, 87, 242,
- 209, 87, 248, 198, 87, 235, 239, 219, 31, 222, 189, 6, 224, 99, 244, 190,
- 50, 139, 4, 225, 111, 139, 4, 243, 114, 139, 6, 243, 114, 139, 6, 225,
- 111, 139, 230, 29, 218, 41, 215, 94, 35, 6, 243, 209, 215, 94, 35, 6,
- 156, 223, 52, 35, 6, 156, 215, 94, 35, 6, 211, 117, 139, 32, 6, 249, 68,
- 139, 32, 4, 249, 68, 139, 32, 4, 76, 139, 32, 4, 74, 139, 32, 4, 235,
- 150, 224, 173, 232, 219, 215, 94, 254, 134, 225, 186, 50, 254, 189, 215,
- 94, 4, 245, 14, 16, 31, 221, 254, 219, 31, 212, 114, 244, 10, 123, 220,
- 120, 212, 114, 244, 10, 123, 228, 199, 212, 114, 244, 10, 123, 216, 242,
- 212, 114, 244, 10, 123, 216, 169, 212, 114, 244, 10, 113, 216, 167, 212,
- 114, 244, 10, 123, 244, 125, 212, 114, 244, 10, 113, 244, 124, 212, 114,
- 244, 10, 134, 244, 124, 212, 114, 244, 10, 244, 19, 244, 124, 212, 114,
- 244, 10, 123, 219, 117, 212, 114, 244, 10, 244, 89, 219, 115, 212, 114,
- 244, 10, 123, 245, 196, 212, 114, 244, 10, 134, 245, 194, 212, 114, 244,
- 10, 244, 89, 245, 194, 212, 114, 244, 10, 220, 124, 245, 194, 244, 10,
- 227, 201, 111, 222, 200, 227, 202, 111, 222, 200, 227, 202, 105, 222,
- 200, 227, 202, 158, 222, 200, 227, 202, 161, 222, 200, 227, 202, 190,
- 222, 200, 227, 202, 195, 222, 200, 227, 202, 199, 222, 200, 227, 202,
- 196, 222, 200, 227, 202, 201, 222, 200, 227, 202, 216, 248, 222, 200,
- 227, 202, 245, 175, 222, 200, 227, 202, 215, 76, 222, 200, 227, 202, 244,
- 122, 222, 200, 227, 202, 123, 240, 217, 222, 200, 227, 202, 244, 89, 240,
- 217, 222, 200, 227, 202, 123, 216, 148, 4, 222, 200, 227, 202, 111, 4,
- 222, 200, 227, 202, 105, 4, 222, 200, 227, 202, 158, 4, 222, 200, 227,
- 202, 161, 4, 222, 200, 227, 202, 190, 4, 222, 200, 227, 202, 195, 4, 222,
- 200, 227, 202, 199, 4, 222, 200, 227, 202, 196, 4, 222, 200, 227, 202,
- 201, 4, 222, 200, 227, 202, 216, 248, 4, 222, 200, 227, 202, 245, 175, 4,
- 222, 200, 227, 202, 215, 76, 4, 222, 200, 227, 202, 244, 122, 4, 222,
- 200, 227, 202, 123, 240, 217, 4, 222, 200, 227, 202, 244, 89, 240, 217,
- 4, 222, 200, 227, 202, 123, 216, 148, 222, 200, 227, 202, 123, 216, 149,
- 251, 75, 249, 68, 222, 200, 227, 202, 244, 89, 216, 148, 222, 200, 227,
- 202, 216, 249, 216, 148, 222, 200, 227, 202, 223, 52, 123, 240, 217, 7,
- 4, 1, 223, 52, 251, 74, 222, 200, 227, 202, 219, 127, 233, 84, 17, 222,
- 200, 227, 202, 244, 123, 245, 234, 17, 222, 200, 227, 202, 244, 123, 216,
- 148, 222, 200, 227, 202, 123, 240, 218, 216, 148, 212, 114, 244, 10, 210,
- 87, 216, 167, 140, 75, 214, 153, 75, 97, 75, 246, 112, 75, 43, 44, 75,
- 120, 124, 75, 228, 61, 212, 9, 75, 228, 61, 245, 228, 75, 219, 30, 245,
- 228, 75, 219, 30, 212, 9, 75, 140, 80, 2, 91, 97, 80, 2, 91, 140, 212,
- 36, 75, 97, 212, 36, 75, 140, 113, 241, 241, 75, 214, 153, 113, 241, 241,
- 75, 97, 113, 241, 241, 75, 246, 112, 113, 241, 241, 75, 140, 80, 2, 217,
- 78, 97, 80, 2, 217, 78, 140, 80, 243, 251, 130, 214, 153, 80, 243, 251,
- 130, 97, 80, 243, 251, 130, 246, 112, 80, 243, 251, 130, 120, 124, 80, 2,
- 252, 135, 140, 80, 2, 103, 97, 80, 2, 103, 140, 80, 2, 232, 129, 97, 80,
- 2, 232, 129, 43, 44, 212, 36, 75, 43, 44, 80, 2, 91, 246, 112, 210, 35,
- 75, 214, 153, 80, 2, 216, 78, 233, 43, 214, 153, 80, 2, 216, 78, 222,
- 244, 246, 112, 80, 2, 216, 78, 233, 43, 246, 112, 80, 2, 216, 78, 222,
- 244, 97, 80, 2, 249, 169, 246, 111, 246, 112, 80, 2, 249, 169, 233, 43,
- 254, 96, 216, 15, 220, 155, 75, 250, 10, 216, 15, 220, 155, 75, 228, 61,
- 212, 9, 80, 216, 43, 200, 130, 140, 80, 216, 43, 252, 149, 115, 97, 80,
- 216, 43, 130, 254, 96, 204, 250, 44, 75, 250, 10, 204, 250, 44, 75, 140,
- 242, 6, 2, 252, 147, 214, 152, 140, 242, 6, 2, 252, 147, 246, 111, 214,
- 153, 242, 6, 2, 252, 147, 222, 244, 214, 153, 242, 6, 2, 252, 147, 233,
- 43, 97, 242, 6, 2, 252, 147, 214, 152, 97, 242, 6, 2, 252, 147, 246, 111,
- 246, 112, 242, 6, 2, 252, 147, 222, 244, 246, 112, 242, 6, 2, 252, 147,
- 233, 43, 97, 80, 115, 140, 75, 214, 153, 80, 140, 64, 246, 112, 75, 140,
- 80, 115, 97, 75, 140, 226, 74, 253, 255, 214, 153, 226, 74, 253, 255, 97,
- 226, 74, 253, 255, 246, 112, 226, 74, 253, 255, 140, 242, 6, 115, 97,
- 242, 5, 97, 242, 6, 115, 140, 242, 5, 140, 52, 80, 2, 91, 43, 44, 52, 80,
- 2, 91, 97, 52, 80, 2, 91, 140, 52, 75, 214, 153, 52, 75, 97, 52, 75, 246,
- 112, 52, 75, 43, 44, 52, 75, 120, 124, 52, 75, 228, 61, 212, 9, 52, 75,
- 228, 61, 245, 228, 52, 75, 219, 30, 245, 228, 52, 75, 219, 30, 212, 9,
- 52, 75, 140, 215, 212, 75, 97, 215, 212, 75, 140, 218, 232, 75, 97, 218,
- 232, 75, 214, 153, 80, 2, 52, 91, 246, 112, 80, 2, 52, 91, 140, 248, 163,
- 75, 214, 153, 248, 163, 75, 97, 248, 163, 75, 246, 112, 248, 163, 75,
- 140, 80, 216, 43, 130, 97, 80, 216, 43, 130, 140, 71, 75, 214, 153, 71,
- 75, 97, 71, 75, 246, 112, 71, 75, 214, 153, 71, 80, 243, 251, 130, 214,
- 153, 71, 80, 226, 201, 225, 217, 214, 153, 71, 80, 226, 201, 225, 218, 2,
- 203, 130, 214, 153, 71, 80, 226, 201, 225, 218, 2, 67, 130, 214, 153, 71,
- 52, 75, 214, 153, 71, 52, 80, 226, 201, 225, 217, 97, 71, 80, 243, 251,
- 212, 56, 228, 61, 212, 9, 80, 216, 43, 249, 168, 219, 30, 245, 228, 80,
- 216, 43, 249, 168, 120, 124, 71, 75, 44, 80, 2, 4, 250, 43, 246, 112, 80,
- 140, 64, 214, 153, 75, 134, 97, 253, 255, 140, 80, 2, 67, 91, 97, 80, 2,
- 67, 91, 43, 44, 80, 2, 67, 91, 140, 80, 2, 52, 67, 91, 97, 80, 2, 52, 67,
- 91, 43, 44, 80, 2, 52, 67, 91, 140, 226, 177, 75, 97, 226, 177, 75, 43,
- 44, 226, 177, 75, 31, 254, 163, 249, 222, 226, 1, 247, 241, 216, 188,
- 245, 35, 216, 188, 247, 146, 228, 57, 245, 36, 245, 160, 220, 129, 235,
- 252, 229, 226, 245, 178, 226, 235, 228, 57, 254, 132, 245, 178, 226, 235,
- 4, 245, 178, 226, 235, 249, 194, 253, 246, 231, 67, 247, 146, 228, 57,
- 249, 196, 253, 246, 231, 67, 4, 249, 194, 253, 246, 231, 67, 245, 151,
- 64, 224, 175, 230, 29, 224, 183, 230, 29, 249, 173, 230, 29, 218, 41,
- 230, 187, 50, 230, 185, 50, 59, 225, 25, 247, 177, 219, 97, 220, 130,
- 230, 186, 253, 225, 226, 171, 222, 237, 226, 171, 251, 122, 226, 171, 42,
- 222, 195, 249, 117, 222, 195, 244, 12, 222, 195, 224, 171, 112, 235, 241,
- 44, 254, 117, 254, 117, 231, 93, 254, 117, 219, 1, 254, 117, 247, 179,
- 247, 146, 228, 57, 247, 182, 226, 12, 112, 228, 57, 226, 12, 112, 232,
- 152, 254, 126, 232, 152, 226, 162, 235, 205, 214, 175, 235, 218, 52, 235,
- 218, 215, 212, 235, 218, 249, 190, 235, 218, 218, 14, 235, 218, 213, 129,
- 235, 218, 250, 10, 235, 218, 250, 10, 249, 190, 235, 218, 254, 96, 249,
- 190, 235, 218, 216, 187, 252, 75, 223, 140, 224, 172, 59, 230, 186, 245,
- 41, 243, 53, 224, 172, 241, 64, 216, 90, 226, 171, 223, 52, 184, 235,
- 200, 233, 71, 222, 93, 219, 159, 212, 35, 211, 200, 224, 183, 228, 57,
- 184, 230, 187, 184, 253, 218, 128, 112, 228, 57, 253, 218, 128, 112, 254,
- 56, 128, 112, 254, 56, 251, 96, 228, 57, 255, 13, 128, 112, 229, 105,
- 254, 56, 228, 64, 255, 13, 128, 112, 254, 156, 128, 112, 228, 57, 254,
- 156, 128, 112, 254, 156, 128, 177, 128, 112, 215, 212, 184, 254, 164,
- 128, 112, 245, 102, 112, 243, 52, 245, 102, 112, 247, 242, 252, 31, 254,
- 58, 216, 197, 232, 227, 243, 52, 128, 112, 254, 56, 128, 216, 43, 177,
- 216, 197, 236, 22, 226, 235, 236, 22, 64, 177, 254, 56, 128, 112, 249,
- 235, 245, 105, 245, 106, 249, 234, 222, 237, 236, 7, 128, 112, 222, 237,
- 128, 112, 249, 162, 112, 245, 75, 245, 104, 112, 218, 159, 245, 105, 248,
- 63, 128, 112, 128, 216, 43, 251, 86, 248, 80, 231, 93, 251, 85, 224, 14,
- 128, 112, 228, 57, 128, 112, 240, 111, 112, 228, 57, 240, 111, 112, 218,
- 111, 245, 102, 112, 233, 21, 177, 128, 112, 242, 137, 177, 128, 112, 233,
- 21, 115, 128, 112, 242, 137, 115, 128, 112, 233, 21, 251, 96, 228, 57,
- 128, 112, 242, 137, 251, 96, 228, 57, 128, 112, 230, 102, 233, 20, 230,
- 102, 242, 136, 252, 31, 228, 57, 245, 102, 112, 228, 57, 233, 20, 228,
- 57, 242, 136, 229, 105, 233, 21, 228, 64, 128, 112, 229, 105, 242, 137,
- 228, 64, 128, 112, 233, 21, 177, 245, 102, 112, 242, 137, 177, 245, 102,
- 112, 229, 105, 233, 21, 228, 64, 245, 102, 112, 229, 105, 242, 137, 228,
- 64, 245, 102, 112, 233, 21, 177, 242, 136, 242, 137, 177, 233, 20, 229,
- 105, 233, 21, 228, 64, 242, 136, 229, 105, 242, 137, 228, 64, 233, 20,
- 224, 205, 218, 56, 224, 206, 177, 128, 112, 218, 57, 177, 128, 112, 224,
- 206, 177, 245, 102, 112, 218, 57, 177, 245, 102, 112, 247, 146, 228, 57,
- 224, 208, 247, 146, 228, 57, 218, 58, 218, 65, 226, 235, 218, 23, 226,
- 235, 228, 57, 116, 218, 65, 226, 235, 228, 57, 116, 218, 23, 226, 235,
- 218, 65, 64, 177, 128, 112, 218, 23, 64, 177, 128, 112, 229, 105, 116,
- 218, 65, 64, 228, 64, 128, 112, 229, 105, 116, 218, 23, 64, 228, 64, 128,
- 112, 218, 65, 64, 2, 228, 57, 128, 112, 218, 23, 64, 2, 228, 57, 128,
- 112, 230, 86, 230, 87, 230, 88, 230, 87, 214, 175, 42, 236, 22, 226, 235,
- 42, 226, 154, 226, 235, 42, 236, 22, 64, 177, 128, 112, 42, 226, 154, 64,
- 177, 128, 112, 42, 251, 3, 42, 249, 110, 37, 225, 25, 37, 230, 186, 37,
- 216, 86, 37, 247, 177, 219, 97, 37, 59, 226, 171, 37, 222, 237, 226, 171,
- 37, 253, 225, 226, 171, 37, 245, 105, 37, 248, 164, 92, 225, 25, 92, 230,
- 186, 92, 216, 86, 92, 59, 226, 171, 44, 217, 88, 43, 217, 88, 124, 217,
- 88, 120, 217, 88, 253, 228, 230, 161, 215, 192, 244, 33, 215, 212, 67,
- 252, 149, 44, 215, 93, 52, 67, 252, 149, 52, 44, 215, 93, 247, 146, 228,
- 57, 224, 166, 228, 57, 215, 192, 247, 146, 228, 57, 244, 34, 229, 107,
- 52, 67, 252, 149, 52, 44, 215, 93, 224, 206, 214, 184, 223, 94, 218, 57,
- 214, 184, 223, 94, 228, 62, 218, 78, 226, 235, 249, 194, 253, 246, 228,
- 62, 218, 77, 228, 62, 218, 78, 64, 177, 128, 112, 249, 194, 253, 246,
- 228, 62, 218, 78, 177, 128, 112, 226, 154, 226, 235, 236, 22, 226, 235,
- 230, 92, 241, 207, 249, 204, 231, 142, 235, 215, 211, 145, 229, 207, 228,
- 63, 44, 254, 118, 2, 254, 33, 44, 215, 226, 230, 29, 232, 152, 254, 126,
- 230, 29, 232, 152, 226, 162, 230, 29, 235, 205, 230, 29, 214, 175, 248,
- 1, 226, 171, 59, 226, 171, 218, 159, 226, 171, 247, 177, 216, 86, 251,
- 172, 43, 228, 62, 244, 189, 220, 151, 224, 183, 44, 228, 62, 244, 189,
- 220, 151, 224, 183, 43, 220, 151, 224, 183, 44, 220, 151, 224, 183, 223,
- 52, 216, 90, 245, 105, 249, 107, 232, 152, 226, 162, 249, 107, 232, 152,
- 254, 126, 52, 218, 64, 52, 218, 22, 52, 235, 205, 52, 214, 175, 225, 50,
- 128, 22, 226, 12, 112, 233, 21, 2, 247, 128, 242, 137, 2, 247, 128, 213,
- 187, 230, 102, 233, 20, 213, 187, 230, 102, 242, 136, 233, 21, 128, 216,
- 43, 177, 242, 136, 242, 137, 128, 216, 43, 177, 233, 20, 128, 216, 43,
- 177, 233, 20, 128, 216, 43, 177, 242, 136, 128, 216, 43, 177, 224, 205,
- 128, 216, 43, 177, 218, 56, 247, 146, 228, 57, 224, 209, 177, 245, 107,
- 247, 146, 228, 57, 218, 59, 177, 245, 107, 228, 57, 42, 236, 22, 64, 177,
- 128, 112, 228, 57, 42, 226, 154, 64, 177, 128, 112, 42, 236, 22, 64, 177,
- 228, 57, 128, 112, 42, 226, 154, 64, 177, 228, 57, 128, 112, 233, 21,
- 251, 96, 228, 57, 245, 102, 112, 242, 137, 251, 96, 228, 57, 245, 102,
- 112, 224, 206, 251, 96, 228, 57, 245, 102, 112, 218, 57, 251, 96, 228,
- 57, 245, 102, 112, 228, 57, 228, 62, 218, 78, 226, 235, 247, 146, 228,
- 57, 249, 196, 253, 246, 228, 62, 218, 77, 228, 57, 228, 62, 218, 78, 64,
- 177, 128, 112, 247, 146, 228, 57, 249, 196, 253, 246, 228, 62, 218, 78,
- 177, 245, 107, 67, 245, 171, 230, 227, 203, 245, 171, 120, 44, 248, 7,
- 245, 171, 124, 44, 248, 7, 245, 171, 245, 178, 64, 2, 200, 203, 91, 245,
- 178, 64, 2, 67, 252, 149, 253, 215, 245, 151, 64, 203, 91, 4, 245, 178,
- 64, 2, 67, 252, 149, 253, 215, 245, 151, 64, 203, 91, 245, 178, 64, 2,
- 59, 48, 245, 178, 64, 2, 226, 127, 4, 245, 178, 64, 2, 226, 127, 245,
- 178, 64, 2, 214, 183, 245, 178, 64, 2, 113, 203, 218, 92, 249, 194, 2,
- 200, 203, 91, 249, 194, 2, 67, 252, 149, 253, 215, 245, 151, 64, 203, 91,
- 4, 249, 194, 2, 67, 252, 149, 253, 215, 245, 151, 64, 203, 91, 249, 194,
- 2, 226, 127, 4, 249, 194, 2, 226, 127, 210, 160, 189, 252, 181, 231, 66,
- 248, 2, 50, 245, 180, 75, 240, 241, 120, 254, 1, 124, 254, 1, 224, 178,
- 225, 168, 212, 32, 232, 219, 43, 250, 189, 44, 250, 189, 43, 244, 65, 44,
- 244, 65, 251, 183, 44, 249, 140, 251, 183, 43, 249, 140, 216, 15, 44,
- 249, 140, 216, 15, 43, 249, 140, 223, 52, 228, 57, 50, 42, 232, 110, 254,
- 33, 221, 166, 221, 173, 217, 2, 223, 123, 224, 244, 235, 245, 213, 165,
- 218, 236, 225, 44, 64, 235, 214, 50, 215, 94, 228, 57, 50, 212, 42, 240,
- 243, 216, 15, 43, 249, 168, 216, 15, 44, 249, 168, 251, 183, 43, 249,
- 168, 251, 183, 44, 249, 168, 216, 15, 163, 235, 218, 251, 183, 163, 235,
- 218, 243, 248, 219, 77, 120, 254, 2, 252, 32, 113, 203, 252, 137, 226,
- 164, 234, 144, 245, 98, 216, 43, 216, 197, 222, 254, 211, 179, 236, 7,
- 116, 223, 120, 251, 171, 234, 143, 233, 48, 254, 118, 127, 222, 250, 254,
- 118, 127, 245, 98, 216, 43, 216, 197, 233, 52, 252, 43, 222, 236, 249,
- 78, 254, 164, 254, 9, 217, 182, 216, 5, 222, 125, 247, 223, 226, 155,
- 249, 206, 217, 53, 219, 88, 249, 159, 249, 158, 254, 74, 243, 232, 16,
- 240, 158, 254, 74, 243, 232, 16, 218, 230, 224, 30, 254, 74, 243, 232,
- 16, 224, 31, 245, 107, 254, 74, 243, 232, 16, 224, 31, 247, 182, 254, 74,
- 243, 232, 16, 224, 31, 248, 0, 254, 74, 243, 232, 16, 224, 31, 235, 62,
- 254, 74, 243, 232, 16, 224, 31, 250, 43, 254, 74, 243, 232, 16, 250, 44,
- 218, 137, 254, 74, 243, 232, 16, 250, 44, 235, 62, 254, 74, 243, 232, 16,
- 219, 98, 130, 254, 74, 243, 232, 16, 252, 189, 130, 254, 74, 243, 232,
- 16, 224, 31, 219, 97, 254, 74, 243, 232, 16, 224, 31, 252, 188, 254, 74,
- 243, 232, 16, 224, 31, 233, 20, 254, 74, 243, 232, 16, 224, 31, 242, 136,
- 254, 74, 243, 232, 16, 140, 214, 19, 254, 74, 243, 232, 16, 97, 214, 19,
- 254, 74, 243, 232, 16, 224, 31, 140, 75, 254, 74, 243, 232, 16, 224, 31,
- 97, 75, 254, 74, 243, 232, 16, 250, 44, 252, 188, 254, 74, 243, 232, 16,
- 124, 217, 89, 214, 183, 254, 74, 243, 232, 16, 248, 63, 218, 137, 254,
- 74, 243, 232, 16, 224, 31, 124, 250, 246, 254, 74, 243, 232, 16, 224, 31,
- 248, 62, 254, 74, 243, 232, 16, 124, 217, 89, 235, 62, 254, 74, 243, 232,
- 16, 214, 153, 214, 19, 254, 74, 243, 232, 16, 224, 31, 214, 153, 75, 254,
- 74, 243, 232, 16, 120, 217, 89, 226, 127, 254, 74, 243, 232, 16, 248, 74,
- 218, 137, 254, 74, 243, 232, 16, 224, 31, 120, 250, 246, 254, 74, 243,
- 232, 16, 224, 31, 248, 73, 254, 74, 243, 232, 16, 120, 217, 89, 235, 62,
- 254, 74, 243, 232, 16, 246, 112, 214, 19, 254, 74, 243, 232, 16, 224, 31,
- 246, 112, 75, 254, 74, 243, 232, 16, 224, 0, 214, 183, 254, 74, 243, 232,
- 16, 248, 63, 214, 183, 254, 74, 243, 232, 16, 248, 1, 214, 183, 254, 74,
- 243, 232, 16, 235, 63, 214, 183, 254, 74, 243, 232, 16, 250, 44, 214,
- 183, 254, 74, 243, 232, 16, 120, 220, 7, 235, 62, 254, 74, 243, 232, 16,
- 224, 0, 224, 30, 254, 74, 243, 232, 16, 250, 44, 218, 158, 254, 74, 243,
- 232, 16, 224, 31, 249, 234, 254, 74, 243, 232, 16, 120, 217, 89, 248, 9,
- 254, 74, 243, 232, 16, 248, 74, 248, 9, 254, 74, 243, 232, 16, 218, 159,
- 248, 9, 254, 74, 243, 232, 16, 235, 63, 248, 9, 254, 74, 243, 232, 16,
- 250, 44, 248, 9, 254, 74, 243, 232, 16, 124, 220, 7, 218, 137, 254, 74,
- 243, 232, 16, 43, 220, 7, 218, 137, 254, 74, 243, 232, 16, 216, 90, 248,
- 9, 254, 74, 243, 232, 16, 242, 137, 248, 9, 254, 74, 243, 232, 16, 249,
- 228, 130, 254, 74, 243, 232, 16, 248, 74, 184, 254, 74, 243, 232, 16,
- 210, 34, 254, 74, 243, 232, 16, 218, 138, 184, 254, 74, 243, 232, 16,
- 220, 153, 214, 183, 254, 74, 243, 232, 16, 224, 31, 228, 57, 245, 107,
- 254, 74, 243, 232, 16, 224, 31, 224, 15, 254, 74, 243, 232, 16, 124, 250,
- 247, 184, 254, 74, 243, 232, 16, 120, 250, 247, 184, 254, 74, 243, 232,
- 16, 235, 192, 254, 74, 243, 232, 16, 223, 40, 254, 74, 243, 232, 16, 226,
- 205, 254, 74, 243, 232, 16, 254, 152, 214, 183, 254, 74, 243, 232, 16,
- 245, 109, 214, 183, 254, 74, 243, 232, 16, 235, 193, 214, 183, 254, 74,
- 243, 232, 16, 226, 206, 214, 183, 254, 74, 243, 232, 16, 254, 151, 228,
- 57, 250, 138, 79, 44, 254, 118, 2, 246, 112, 210, 35, 75, 219, 237, 204,
- 251, 171, 252, 53, 87, 67, 232, 220, 2, 230, 229, 247, 128, 235, 223, 87,
- 249, 191, 214, 181, 87, 247, 197, 214, 181, 87, 245, 162, 87, 249, 218,
- 87, 71, 42, 2, 250, 183, 67, 232, 219, 245, 138, 87, 254, 147, 234, 145,
- 87, 241, 220, 87, 37, 203, 252, 149, 2, 228, 55, 37, 215, 227, 246, 114,
- 251, 143, 250, 44, 2, 228, 59, 75, 214, 179, 87, 230, 142, 87, 240, 171,
- 87, 226, 178, 242, 66, 87, 226, 178, 233, 153, 87, 225, 248, 87, 225,
- 247, 87, 247, 205, 249, 105, 16, 244, 28, 105, 219, 52, 87, 254, 74, 243,
- 232, 16, 224, 30, 248, 91, 220, 140, 234, 145, 87, 224, 195, 226, 79,
- 229, 87, 226, 79, 224, 191, 221, 191, 87, 250, 25, 221, 191, 87, 43, 226,
- 8, 214, 160, 103, 43, 226, 8, 245, 29, 43, 226, 8, 232, 114, 103, 44,
- 226, 8, 214, 160, 103, 44, 226, 8, 245, 29, 44, 226, 8, 232, 114, 103,
- 43, 42, 251, 166, 214, 160, 249, 168, 43, 42, 251, 166, 245, 29, 43, 42,
- 251, 166, 232, 114, 249, 168, 44, 42, 251, 166, 214, 160, 249, 168, 44,
- 42, 251, 166, 245, 29, 44, 42, 251, 166, 232, 114, 249, 168, 43, 249,
- 107, 251, 166, 214, 160, 103, 43, 249, 107, 251, 166, 230, 229, 225, 104,
- 43, 249, 107, 251, 166, 232, 114, 103, 249, 107, 251, 166, 245, 29, 44,
- 249, 107, 251, 166, 214, 160, 103, 44, 249, 107, 251, 166, 230, 229, 225,
- 104, 44, 249, 107, 251, 166, 232, 114, 103, 235, 219, 245, 29, 203, 232,
- 220, 245, 29, 214, 160, 43, 177, 232, 114, 44, 249, 107, 251, 166, 221,
- 174, 214, 160, 44, 177, 232, 114, 43, 249, 107, 251, 166, 221, 174, 218,
- 42, 216, 14, 218, 42, 251, 182, 216, 15, 42, 127, 251, 183, 42, 127, 251,
- 183, 42, 251, 166, 115, 216, 15, 42, 127, 34, 16, 251, 182, 43, 67, 93,
- 232, 219, 44, 67, 93, 232, 219, 203, 221, 207, 232, 218, 203, 221, 207,
- 232, 217, 203, 221, 207, 232, 216, 203, 221, 207, 232, 215, 248, 54, 16,
- 193, 67, 22, 216, 15, 222, 254, 248, 54, 16, 193, 67, 22, 251, 183, 222,
- 254, 248, 54, 16, 193, 67, 2, 250, 43, 248, 54, 16, 193, 124, 22, 203, 2,
- 250, 43, 248, 54, 16, 193, 120, 22, 203, 2, 250, 43, 248, 54, 16, 193,
- 67, 2, 215, 226, 248, 54, 16, 193, 124, 22, 203, 2, 215, 226, 248, 54,
- 16, 193, 120, 22, 203, 2, 215, 226, 248, 54, 16, 193, 67, 22, 212, 35,
- 248, 54, 16, 193, 124, 22, 203, 2, 212, 35, 248, 54, 16, 193, 120, 22,
- 203, 2, 212, 35, 248, 54, 16, 193, 124, 22, 241, 51, 248, 54, 16, 193,
- 120, 22, 241, 51, 248, 54, 16, 193, 67, 22, 216, 15, 233, 52, 248, 54,
- 16, 193, 67, 22, 251, 183, 233, 52, 42, 244, 40, 223, 57, 87, 245, 190,
- 87, 67, 232, 220, 245, 29, 231, 38, 251, 154, 231, 38, 200, 115, 219,
- 252, 231, 38, 219, 253, 115, 232, 143, 231, 38, 200, 115, 113, 219, 239,
- 231, 38, 113, 219, 240, 115, 232, 143, 231, 38, 113, 219, 240, 235, 70,
- 231, 38, 215, 209, 231, 38, 216, 224, 231, 38, 225, 191, 245, 232, 242,
- 129, 243, 226, 216, 15, 226, 7, 251, 183, 226, 7, 216, 15, 249, 107, 127,
- 251, 183, 249, 107, 127, 216, 15, 216, 7, 220, 55, 127, 251, 183, 216, 7,
- 220, 55, 127, 71, 215, 240, 252, 43, 222, 237, 2, 250, 43, 218, 122, 244,
- 72, 255, 26, 249, 104, 245, 179, 235, 205, 248, 91, 245, 32, 87, 85, 222,
- 250, 52, 215, 226, 85, 233, 48, 52, 215, 226, 85, 214, 162, 52, 215, 226,
- 85, 246, 113, 52, 215, 226, 85, 222, 250, 52, 215, 227, 2, 67, 130, 85,
- 233, 48, 52, 215, 227, 2, 67, 130, 85, 222, 250, 215, 227, 2, 52, 67,
- 130, 254, 182, 250, 11, 218, 128, 216, 87, 250, 11, 240, 244, 2, 244, 58,
- 221, 243, 16, 31, 227, 206, 16, 31, 218, 154, 64, 241, 240, 16, 31, 218,
- 154, 64, 216, 213, 16, 31, 245, 151, 64, 216, 213, 16, 31, 245, 151, 64,
- 215, 244, 16, 31, 245, 140, 16, 31, 255, 16, 16, 31, 252, 52, 16, 31,
- 252, 187, 16, 31, 203, 217, 90, 16, 31, 232, 220, 244, 153, 16, 31, 67,
- 217, 90, 16, 31, 244, 28, 244, 153, 16, 31, 250, 238, 223, 56, 16, 31,
- 220, 30, 226, 134, 16, 31, 220, 30, 236, 6, 16, 31, 248, 159, 232, 210,
- 245, 85, 16, 31, 248, 39, 249, 186, 111, 16, 31, 248, 39, 249, 186, 105,
- 16, 31, 248, 39, 249, 186, 158, 16, 31, 248, 39, 249, 186, 161, 16, 31,
- 152, 255, 16, 16, 31, 217, 178, 236, 69, 16, 31, 245, 151, 64, 215, 245,
- 251, 221, 16, 31, 251, 13, 16, 31, 245, 151, 64, 231, 86, 16, 31, 218,
- 62, 16, 31, 245, 85, 16, 31, 244, 115, 220, 139, 16, 31, 242, 128, 220,
- 139, 16, 31, 223, 124, 220, 139, 16, 31, 214, 174, 220, 139, 16, 31, 219,
- 20, 16, 31, 248, 71, 251, 224, 87, 204, 251, 171, 16, 31, 229, 90, 16,
- 31, 248, 72, 244, 28, 105, 16, 31, 218, 63, 244, 28, 105, 226, 245, 103,
- 226, 245, 250, 160, 226, 245, 244, 31, 226, 245, 235, 200, 244, 31, 226,
- 245, 252, 50, 251, 132, 226, 245, 251, 178, 216, 112, 226, 245, 251, 163,
- 252, 154, 240, 110, 226, 245, 254, 135, 64, 250, 137, 226, 245, 248, 164,
- 226, 245, 249, 95, 255, 20, 227, 204, 226, 245, 52, 252, 188, 37, 21,
- 111, 37, 21, 105, 37, 21, 158, 37, 21, 161, 37, 21, 190, 37, 21, 195, 37,
- 21, 199, 37, 21, 196, 37, 21, 201, 37, 54, 216, 248, 37, 54, 245, 175,
- 37, 54, 215, 76, 37, 54, 216, 165, 37, 54, 244, 13, 37, 54, 244, 126, 37,
- 54, 219, 121, 37, 54, 220, 121, 37, 54, 245, 198, 37, 54, 228, 202, 37,
- 54, 215, 73, 88, 21, 111, 88, 21, 105, 88, 21, 158, 88, 21, 161, 88, 21,
- 190, 88, 21, 195, 88, 21, 199, 88, 21, 196, 88, 21, 201, 88, 54, 216,
- 248, 88, 54, 245, 175, 88, 54, 215, 76, 88, 54, 216, 165, 88, 54, 244,
- 13, 88, 54, 244, 126, 88, 54, 219, 121, 88, 54, 220, 121, 88, 54, 245,
- 198, 88, 54, 228, 202, 88, 54, 215, 73, 21, 123, 243, 236, 218, 131, 21,
- 113, 243, 236, 218, 131, 21, 134, 243, 236, 218, 131, 21, 244, 19, 243,
- 236, 218, 131, 21, 244, 89, 243, 236, 218, 131, 21, 219, 127, 243, 236,
- 218, 131, 21, 220, 124, 243, 236, 218, 131, 21, 245, 201, 243, 236, 218,
- 131, 21, 228, 205, 243, 236, 218, 131, 54, 216, 249, 243, 236, 218, 131,
- 54, 245, 176, 243, 236, 218, 131, 54, 215, 77, 243, 236, 218, 131, 54,
- 216, 166, 243, 236, 218, 131, 54, 244, 14, 243, 236, 218, 131, 54, 244,
- 127, 243, 236, 218, 131, 54, 219, 122, 243, 236, 218, 131, 54, 220, 122,
- 243, 236, 218, 131, 54, 245, 199, 243, 236, 218, 131, 54, 228, 203, 243,
- 236, 218, 131, 54, 215, 74, 243, 236, 218, 131, 88, 7, 4, 1, 61, 88, 7,
- 4, 1, 253, 166, 88, 7, 4, 1, 251, 74, 88, 7, 4, 1, 249, 68, 88, 7, 4, 1,
- 76, 88, 7, 4, 1, 245, 14, 88, 7, 4, 1, 243, 209, 88, 7, 4, 1, 242, 67,
- 88, 7, 4, 1, 74, 88, 7, 4, 1, 235, 150, 88, 7, 4, 1, 235, 29, 88, 7, 4,
- 1, 156, 88, 7, 4, 1, 194, 88, 7, 4, 1, 230, 30, 88, 7, 4, 1, 78, 88, 7,
- 4, 1, 226, 109, 88, 7, 4, 1, 224, 99, 88, 7, 4, 1, 153, 88, 7, 4, 1, 222,
- 93, 88, 7, 4, 1, 217, 153, 88, 7, 4, 1, 69, 88, 7, 4, 1, 214, 105, 88, 7,
- 4, 1, 212, 98, 88, 7, 4, 1, 211, 178, 88, 7, 4, 1, 211, 117, 88, 7, 4, 1,
- 210, 159, 37, 7, 6, 1, 61, 37, 7, 6, 1, 253, 166, 37, 7, 6, 1, 251, 74,
- 37, 7, 6, 1, 249, 68, 37, 7, 6, 1, 76, 37, 7, 6, 1, 245, 14, 37, 7, 6, 1,
- 243, 209, 37, 7, 6, 1, 242, 67, 37, 7, 6, 1, 74, 37, 7, 6, 1, 235, 150,
- 37, 7, 6, 1, 235, 29, 37, 7, 6, 1, 156, 37, 7, 6, 1, 194, 37, 7, 6, 1,
- 230, 30, 37, 7, 6, 1, 78, 37, 7, 6, 1, 226, 109, 37, 7, 6, 1, 224, 99,
- 37, 7, 6, 1, 153, 37, 7, 6, 1, 222, 93, 37, 7, 6, 1, 217, 153, 37, 7, 6,
- 1, 69, 37, 7, 6, 1, 214, 105, 37, 7, 6, 1, 212, 98, 37, 7, 6, 1, 211,
- 178, 37, 7, 6, 1, 211, 117, 37, 7, 6, 1, 210, 159, 37, 7, 4, 1, 61, 37,
- 7, 4, 1, 253, 166, 37, 7, 4, 1, 251, 74, 37, 7, 4, 1, 249, 68, 37, 7, 4,
- 1, 76, 37, 7, 4, 1, 245, 14, 37, 7, 4, 1, 243, 209, 37, 7, 4, 1, 242, 67,
- 37, 7, 4, 1, 74, 37, 7, 4, 1, 235, 150, 37, 7, 4, 1, 235, 29, 37, 7, 4,
- 1, 156, 37, 7, 4, 1, 194, 37, 7, 4, 1, 230, 30, 37, 7, 4, 1, 78, 37, 7,
- 4, 1, 226, 109, 37, 7, 4, 1, 224, 99, 37, 7, 4, 1, 153, 37, 7, 4, 1, 222,
- 93, 37, 7, 4, 1, 217, 153, 37, 7, 4, 1, 69, 37, 7, 4, 1, 214, 105, 37, 7,
- 4, 1, 212, 98, 37, 7, 4, 1, 211, 178, 37, 7, 4, 1, 211, 117, 37, 7, 4, 1,
- 210, 159, 37, 21, 210, 86, 152, 37, 54, 245, 175, 152, 37, 54, 215, 76,
- 152, 37, 54, 216, 165, 152, 37, 54, 244, 13, 152, 37, 54, 244, 126, 152,
- 37, 54, 219, 121, 152, 37, 54, 220, 121, 152, 37, 54, 245, 198, 152, 37,
- 54, 228, 202, 152, 37, 54, 215, 73, 52, 37, 21, 111, 52, 37, 21, 105, 52,
- 37, 21, 158, 52, 37, 21, 161, 52, 37, 21, 190, 52, 37, 21, 195, 52, 37,
- 21, 199, 52, 37, 21, 196, 52, 37, 21, 201, 52, 37, 54, 216, 248, 152, 37,
- 21, 210, 86, 93, 99, 193, 241, 51, 93, 99, 114, 241, 51, 93, 99, 193,
- 213, 239, 93, 99, 114, 213, 239, 93, 99, 193, 215, 212, 248, 165, 241,
- 51, 93, 99, 114, 215, 212, 248, 165, 241, 51, 93, 99, 193, 215, 212, 248,
- 165, 213, 239, 93, 99, 114, 215, 212, 248, 165, 213, 239, 93, 99, 193,
- 224, 27, 248, 165, 241, 51, 93, 99, 114, 224, 27, 248, 165, 241, 51, 93,
- 99, 193, 224, 27, 248, 165, 213, 239, 93, 99, 114, 224, 27, 248, 165,
- 213, 239, 93, 99, 193, 124, 22, 222, 254, 93, 99, 124, 193, 22, 44, 241,
- 228, 93, 99, 124, 114, 22, 44, 232, 236, 93, 99, 114, 124, 22, 222, 254,
- 93, 99, 193, 124, 22, 233, 52, 93, 99, 124, 193, 22, 43, 241, 228, 93,
- 99, 124, 114, 22, 43, 232, 236, 93, 99, 114, 124, 22, 233, 52, 93, 99,
- 193, 120, 22, 222, 254, 93, 99, 120, 193, 22, 44, 241, 228, 93, 99, 120,
- 114, 22, 44, 232, 236, 93, 99, 114, 120, 22, 222, 254, 93, 99, 193, 120,
- 22, 233, 52, 93, 99, 120, 193, 22, 43, 241, 228, 93, 99, 120, 114, 22,
- 43, 232, 236, 93, 99, 114, 120, 22, 233, 52, 93, 99, 193, 67, 22, 222,
- 254, 93, 99, 67, 193, 22, 44, 241, 228, 93, 99, 120, 114, 22, 44, 124,
- 232, 236, 93, 99, 124, 114, 22, 44, 120, 232, 236, 93, 99, 67, 114, 22,
- 44, 232, 236, 93, 99, 124, 193, 22, 44, 120, 241, 228, 93, 99, 120, 193,
- 22, 44, 124, 241, 228, 93, 99, 114, 67, 22, 222, 254, 93, 99, 193, 67,
- 22, 233, 52, 93, 99, 67, 193, 22, 43, 241, 228, 93, 99, 120, 114, 22, 43,
- 124, 232, 236, 93, 99, 124, 114, 22, 43, 120, 232, 236, 93, 99, 67, 114,
- 22, 43, 232, 236, 93, 99, 124, 193, 22, 43, 120, 241, 228, 93, 99, 120,
- 193, 22, 43, 124, 241, 228, 93, 99, 114, 67, 22, 233, 52, 93, 99, 193,
- 124, 22, 241, 51, 93, 99, 43, 114, 22, 44, 124, 232, 236, 93, 99, 44,
- 114, 22, 43, 124, 232, 236, 93, 99, 124, 193, 22, 203, 241, 228, 93, 99,
- 124, 114, 22, 203, 232, 236, 93, 99, 44, 193, 22, 43, 124, 241, 228, 93,
- 99, 43, 193, 22, 44, 124, 241, 228, 93, 99, 114, 124, 22, 241, 51, 93,
- 99, 193, 120, 22, 241, 51, 93, 99, 43, 114, 22, 44, 120, 232, 236, 93,
- 99, 44, 114, 22, 43, 120, 232, 236, 93, 99, 120, 193, 22, 203, 241, 228,
- 93, 99, 120, 114, 22, 203, 232, 236, 93, 99, 44, 193, 22, 43, 120, 241,
- 228, 93, 99, 43, 193, 22, 44, 120, 241, 228, 93, 99, 114, 120, 22, 241,
- 51, 93, 99, 193, 67, 22, 241, 51, 93, 99, 43, 114, 22, 44, 67, 232, 236,
- 93, 99, 44, 114, 22, 43, 67, 232, 236, 93, 99, 67, 193, 22, 203, 241,
- 228, 93, 99, 120, 114, 22, 124, 203, 232, 236, 93, 99, 124, 114, 22, 120,
- 203, 232, 236, 93, 99, 67, 114, 22, 203, 232, 236, 93, 99, 43, 120, 114,
- 22, 44, 124, 232, 236, 93, 99, 44, 120, 114, 22, 43, 124, 232, 236, 93,
- 99, 43, 124, 114, 22, 44, 120, 232, 236, 93, 99, 44, 124, 114, 22, 43,
- 120, 232, 236, 93, 99, 124, 193, 22, 120, 203, 241, 228, 93, 99, 120,
- 193, 22, 124, 203, 241, 228, 93, 99, 44, 193, 22, 43, 67, 241, 228, 93,
- 99, 43, 193, 22, 44, 67, 241, 228, 93, 99, 114, 67, 22, 241, 51, 93, 99,
- 193, 52, 248, 165, 241, 51, 93, 99, 114, 52, 248, 165, 241, 51, 93, 99,
- 193, 52, 248, 165, 213, 239, 93, 99, 114, 52, 248, 165, 213, 239, 93, 99,
- 52, 241, 51, 93, 99, 52, 213, 239, 93, 99, 124, 219, 157, 22, 44, 246,
- 121, 93, 99, 124, 52, 22, 44, 219, 156, 93, 99, 52, 124, 22, 222, 254,
- 93, 99, 124, 219, 157, 22, 43, 246, 121, 93, 99, 124, 52, 22, 43, 219,
- 156, 93, 99, 52, 124, 22, 233, 52, 93, 99, 120, 219, 157, 22, 44, 246,
- 121, 93, 99, 120, 52, 22, 44, 219, 156, 93, 99, 52, 120, 22, 222, 254,
- 93, 99, 120, 219, 157, 22, 43, 246, 121, 93, 99, 120, 52, 22, 43, 219,
- 156, 93, 99, 52, 120, 22, 233, 52, 93, 99, 67, 219, 157, 22, 44, 246,
- 121, 93, 99, 67, 52, 22, 44, 219, 156, 93, 99, 52, 67, 22, 222, 254, 93,
- 99, 67, 219, 157, 22, 43, 246, 121, 93, 99, 67, 52, 22, 43, 219, 156, 93,
- 99, 52, 67, 22, 233, 52, 93, 99, 124, 219, 157, 22, 203, 246, 121, 93,
- 99, 124, 52, 22, 203, 219, 156, 93, 99, 52, 124, 22, 241, 51, 93, 99,
- 120, 219, 157, 22, 203, 246, 121, 93, 99, 120, 52, 22, 203, 219, 156, 93,
- 99, 52, 120, 22, 241, 51, 93, 99, 67, 219, 157, 22, 203, 246, 121, 93,
- 99, 67, 52, 22, 203, 219, 156, 93, 99, 52, 67, 22, 241, 51, 93, 99, 193,
- 254, 34, 124, 22, 222, 254, 93, 99, 193, 254, 34, 124, 22, 233, 52, 93,
- 99, 193, 254, 34, 120, 22, 233, 52, 93, 99, 193, 254, 34, 120, 22, 222,
- 254, 93, 99, 193, 248, 7, 214, 160, 44, 216, 43, 232, 114, 233, 52, 93,
- 99, 193, 248, 7, 214, 160, 43, 216, 43, 232, 114, 222, 254, 93, 99, 193,
- 248, 7, 249, 138, 93, 99, 193, 233, 52, 93, 99, 193, 214, 163, 93, 99,
- 193, 222, 254, 93, 99, 193, 246, 114, 93, 99, 114, 233, 52, 93, 99, 114,
- 214, 163, 93, 99, 114, 222, 254, 93, 99, 114, 246, 114, 93, 99, 193, 43,
- 22, 114, 222, 254, 93, 99, 193, 120, 22, 114, 246, 114, 93, 99, 114, 43,
- 22, 193, 222, 254, 93, 99, 114, 120, 22, 193, 246, 114, 214, 160, 163,
- 251, 221, 232, 114, 123, 245, 197, 251, 221, 232, 114, 123, 224, 25, 251,
- 221, 232, 114, 134, 245, 195, 251, 221, 232, 114, 163, 251, 221, 232,
- 114, 244, 89, 245, 195, 251, 221, 232, 114, 134, 224, 23, 251, 221, 232,
- 114, 220, 124, 245, 195, 251, 221, 243, 236, 251, 221, 43, 220, 124, 245,
- 195, 251, 221, 43, 134, 224, 23, 251, 221, 43, 244, 89, 245, 195, 251,
- 221, 43, 163, 251, 221, 43, 134, 245, 195, 251, 221, 43, 123, 224, 25,
- 251, 221, 43, 123, 245, 197, 251, 221, 44, 163, 251, 221, 193, 220, 94,
- 231, 87, 220, 94, 248, 170, 220, 94, 214, 160, 123, 245, 197, 251, 221,
- 44, 123, 245, 197, 251, 221, 224, 29, 232, 114, 233, 52, 224, 29, 232,
- 114, 222, 254, 224, 29, 214, 160, 233, 52, 224, 29, 214, 160, 43, 22,
- 232, 114, 43, 22, 232, 114, 222, 254, 224, 29, 214, 160, 43, 22, 232,
- 114, 222, 254, 224, 29, 214, 160, 43, 22, 214, 160, 44, 22, 232, 114,
- 233, 52, 224, 29, 214, 160, 43, 22, 214, 160, 44, 22, 232, 114, 222, 254,
- 224, 29, 214, 160, 222, 254, 224, 29, 214, 160, 44, 22, 232, 114, 233,
- 52, 224, 29, 214, 160, 44, 22, 232, 114, 43, 22, 232, 114, 222, 254, 85,
- 218, 236, 71, 218, 236, 71, 42, 2, 222, 185, 249, 167, 71, 42, 249, 195,
- 85, 4, 218, 236, 42, 2, 203, 244, 113, 42, 2, 67, 244, 113, 42, 2, 226,
- 148, 249, 134, 244, 113, 42, 2, 214, 160, 43, 216, 43, 232, 114, 44, 244,
- 113, 42, 2, 214, 160, 44, 216, 43, 232, 114, 43, 244, 113, 42, 2, 248, 7,
- 249, 134, 244, 113, 85, 4, 218, 236, 71, 4, 218, 236, 85, 223, 119, 71,
- 223, 119, 85, 67, 223, 119, 71, 67, 223, 119, 85, 226, 10, 71, 226, 10,
- 85, 214, 162, 215, 226, 71, 214, 162, 215, 226, 85, 214, 162, 4, 215,
- 226, 71, 214, 162, 4, 215, 226, 85, 222, 250, 215, 226, 71, 222, 250,
- 215, 226, 85, 222, 250, 4, 215, 226, 71, 222, 250, 4, 215, 226, 85, 222,
- 250, 225, 11, 71, 222, 250, 225, 11, 85, 246, 113, 215, 226, 71, 246,
- 113, 215, 226, 85, 246, 113, 4, 215, 226, 71, 246, 113, 4, 215, 226, 85,
- 233, 48, 215, 226, 71, 233, 48, 215, 226, 85, 233, 48, 4, 215, 226, 71,
- 233, 48, 4, 215, 226, 85, 233, 48, 225, 11, 71, 233, 48, 225, 11, 85,
- 248, 0, 71, 248, 0, 71, 248, 1, 249, 195, 85, 4, 248, 0, 244, 97, 232,
- 110, 71, 250, 43, 246, 126, 250, 43, 250, 44, 2, 67, 244, 113, 251, 119,
- 85, 250, 43, 250, 44, 2, 43, 163, 251, 229, 250, 44, 2, 44, 163, 251,
- 229, 250, 44, 2, 232, 114, 163, 251, 229, 250, 44, 2, 214, 160, 163, 251,
- 229, 250, 44, 2, 214, 160, 44, 224, 29, 251, 229, 250, 44, 2, 254, 164,
- 251, 96, 214, 160, 43, 224, 29, 251, 229, 43, 163, 85, 250, 43, 44, 163,
- 85, 250, 43, 235, 201, 251, 121, 235, 201, 71, 250, 43, 214, 160, 163,
- 235, 201, 71, 250, 43, 232, 114, 163, 235, 201, 71, 250, 43, 214, 160,
- 43, 224, 29, 250, 41, 254, 33, 214, 160, 44, 224, 29, 250, 41, 254, 33,
- 232, 114, 44, 224, 29, 250, 41, 254, 33, 232, 114, 43, 224, 29, 250, 41,
- 254, 33, 214, 160, 163, 250, 43, 232, 114, 163, 250, 43, 85, 232, 114,
- 44, 215, 226, 85, 232, 114, 43, 215, 226, 85, 214, 160, 43, 215, 226, 85,
- 214, 160, 44, 215, 226, 71, 251, 121, 42, 2, 43, 163, 251, 229, 42, 2,
- 44, 163, 251, 229, 42, 2, 214, 160, 43, 248, 7, 163, 251, 229, 42, 2,
- 232, 114, 44, 248, 7, 163, 251, 229, 71, 42, 2, 67, 251, 240, 232, 219,
- 71, 214, 162, 215, 227, 2, 247, 128, 214, 162, 215, 227, 2, 43, 163, 251,
- 229, 214, 162, 215, 227, 2, 44, 163, 251, 229, 233, 91, 250, 43, 71, 42,
- 2, 214, 160, 43, 224, 28, 71, 42, 2, 232, 114, 43, 224, 28, 71, 42, 2,
- 232, 114, 44, 224, 28, 71, 42, 2, 214, 160, 44, 224, 28, 71, 250, 44, 2,
- 214, 160, 43, 224, 28, 71, 250, 44, 2, 232, 114, 43, 224, 28, 71, 250,
- 44, 2, 232, 114, 44, 224, 28, 71, 250, 44, 2, 214, 160, 44, 224, 28, 214,
- 160, 43, 215, 226, 214, 160, 44, 215, 226, 232, 114, 43, 215, 226, 71,
- 231, 87, 218, 236, 85, 231, 87, 218, 236, 71, 231, 87, 4, 218, 236, 85,
- 231, 87, 4, 218, 236, 232, 114, 44, 215, 226, 85, 218, 39, 2, 223, 135,
- 249, 255, 214, 194, 219, 62, 249, 230, 85, 218, 158, 71, 218, 158, 232,
- 234, 216, 133, 218, 38, 253, 242, 228, 76, 248, 46, 228, 76, 249, 203,
- 226, 167, 85, 217, 1, 71, 217, 1, 252, 164, 251, 171, 252, 164, 93, 2,
- 250, 137, 252, 164, 93, 2, 211, 178, 222, 0, 214, 195, 2, 223, 163, 246,
- 92, 240, 250, 252, 30, 71, 220, 4, 225, 104, 85, 220, 4, 225, 104, 220,
- 89, 223, 52, 222, 189, 244, 63, 241, 235, 251, 121, 85, 43, 225, 10, 235,
- 249, 85, 44, 225, 10, 235, 249, 71, 43, 225, 10, 235, 249, 71, 120, 225,
- 10, 235, 249, 71, 44, 225, 10, 235, 249, 71, 124, 225, 10, 235, 249, 219,
- 103, 22, 249, 137, 250, 227, 50, 223, 175, 50, 251, 247, 50, 251, 33,
- 254, 110, 226, 149, 249, 138, 250, 119, 223, 40, 249, 139, 64, 232, 124,
- 249, 139, 64, 235, 122, 218, 159, 22, 249, 144, 244, 176, 87, 255, 1,
- 220, 91, 242, 29, 22, 219, 191, 225, 223, 87, 210, 254, 211, 69, 215,
- 216, 31, 241, 230, 215, 216, 31, 233, 113, 215, 216, 31, 244, 104, 215,
- 216, 31, 216, 134, 215, 216, 31, 211, 239, 215, 216, 31, 212, 40, 215,
- 216, 31, 230, 120, 215, 216, 31, 245, 231, 212, 1, 64, 248, 26, 71, 243,
- 247, 244, 198, 71, 219, 76, 244, 198, 85, 219, 76, 244, 198, 71, 218, 39,
- 2, 223, 135, 244, 100, 224, 25, 230, 133, 233, 86, 224, 25, 230, 133,
- 231, 59, 244, 146, 50, 245, 231, 231, 195, 50, 235, 44, 221, 222, 214,
- 145, 229, 98, 225, 23, 254, 20, 217, 41, 243, 59, 251, 11, 233, 25, 213,
- 150, 232, 244, 221, 193, 222, 21, 251, 0, 254, 50, 225, 55, 71, 250, 125,
- 234, 84, 71, 250, 125, 224, 17, 71, 250, 125, 222, 197, 71, 250, 125,
- 251, 239, 71, 250, 125, 234, 36, 71, 250, 125, 225, 235, 85, 250, 125,
- 234, 84, 85, 250, 125, 224, 17, 85, 250, 125, 222, 197, 85, 250, 125,
- 251, 239, 85, 250, 125, 234, 36, 85, 250, 125, 225, 235, 85, 219, 18,
- 218, 51, 71, 241, 235, 218, 51, 71, 248, 1, 218, 51, 85, 249, 253, 218,
- 51, 71, 219, 18, 218, 51, 85, 241, 235, 218, 51, 85, 248, 1, 218, 51, 71,
- 249, 253, 218, 51, 240, 250, 218, 240, 224, 25, 228, 52, 245, 197, 228,
- 52, 252, 81, 245, 197, 228, 47, 252, 81, 219, 120, 228, 47, 230, 62, 244,
- 74, 50, 230, 62, 229, 193, 50, 230, 62, 220, 78, 50, 212, 9, 183, 249,
- 138, 245, 228, 183, 249, 138, 214, 171, 223, 115, 87, 223, 115, 16, 31,
- 215, 48, 225, 37, 223, 115, 16, 31, 215, 47, 225, 37, 223, 115, 16, 31,
- 215, 46, 225, 37, 223, 115, 16, 31, 215, 45, 225, 37, 223, 115, 16, 31,
- 215, 44, 225, 37, 223, 115, 16, 31, 215, 43, 225, 37, 223, 115, 16, 31,
- 215, 42, 225, 37, 223, 115, 16, 31, 243, 57, 231, 143, 85, 214, 171, 223,
- 115, 87, 223, 116, 226, 24, 87, 226, 0, 226, 24, 87, 225, 177, 226, 24,
- 50, 211, 255, 87, 247, 249, 244, 197, 247, 249, 244, 196, 247, 249, 244,
- 195, 247, 249, 244, 194, 247, 249, 244, 193, 247, 249, 244, 192, 71, 250,
- 44, 2, 59, 222, 254, 71, 250, 44, 2, 113, 247, 126, 85, 250, 44, 2, 71,
- 59, 222, 254, 85, 250, 44, 2, 113, 71, 247, 126, 230, 147, 31, 211, 69,
- 230, 147, 31, 210, 253, 247, 232, 31, 242, 138, 211, 69, 247, 232, 31,
- 233, 19, 210, 253, 247, 232, 31, 233, 19, 211, 69, 247, 232, 31, 242,
- 138, 210, 253, 71, 244, 81, 85, 244, 81, 242, 29, 22, 225, 107, 254, 128,
- 249, 136, 217, 236, 218, 166, 64, 254, 235, 221, 208, 254, 178, 244, 59,
- 243, 67, 218, 166, 64, 241, 209, 253, 207, 87, 244, 70, 226, 130, 71,
- 218, 158, 134, 232, 214, 249, 183, 222, 254, 134, 232, 214, 249, 183,
- 233, 52, 212, 50, 50, 125, 213, 130, 50, 246, 118, 244, 146, 50, 246,
- 118, 231, 195, 50, 235, 210, 244, 146, 22, 231, 195, 50, 231, 195, 22,
- 244, 146, 50, 231, 195, 2, 218, 105, 50, 231, 195, 2, 218, 105, 22, 231,
- 195, 22, 244, 146, 50, 67, 231, 195, 2, 218, 105, 50, 203, 231, 195, 2,
- 218, 105, 50, 231, 87, 71, 250, 43, 231, 87, 85, 250, 43, 231, 87, 4, 71,
- 250, 43, 231, 158, 87, 247, 175, 87, 214, 169, 225, 255, 87, 249, 239,
- 243, 231, 214, 141, 229, 93, 250, 169, 226, 65, 235, 50, 213, 185, 250,
- 101, 85, 230, 134, 232, 231, 220, 114, 220, 149, 224, 8, 220, 132, 219,
- 57, 252, 167, 252, 134, 92, 234, 144, 71, 246, 101, 231, 190, 71, 246,
- 101, 234, 84, 85, 246, 101, 231, 190, 85, 246, 101, 234, 84, 219, 63,
- 211, 230, 219, 66, 218, 39, 252, 59, 249, 255, 223, 162, 85, 219, 62,
- 216, 135, 250, 0, 22, 223, 162, 215, 94, 71, 220, 4, 225, 104, 215, 94,
- 85, 220, 4, 225, 104, 71, 248, 1, 236, 7, 218, 236, 249, 133, 233, 97,
- 247, 201, 250, 252, 226, 170, 225, 107, 250, 253, 219, 90, 241, 219, 2,
- 71, 249, 138, 37, 249, 133, 233, 97, 250, 161, 228, 80, 245, 132, 254,
- 149, 226, 195, 43, 212, 26, 215, 252, 85, 215, 55, 43, 212, 26, 215, 252,
- 71, 215, 55, 43, 212, 26, 215, 252, 85, 43, 233, 98, 231, 58, 71, 43,
- 233, 98, 231, 58, 246, 97, 219, 84, 50, 114, 71, 246, 113, 215, 226, 43,
- 250, 8, 245, 132, 92, 222, 0, 244, 183, 248, 7, 236, 7, 71, 250, 44, 236,
- 7, 85, 218, 236, 85, 215, 193, 223, 63, 43, 245, 131, 223, 63, 43, 245,
- 130, 253, 219, 16, 31, 214, 145, 114, 250, 44, 2, 218, 105, 22, 113, 170,
- 48, 225, 192, 222, 251, 235, 212, 225, 192, 233, 49, 235, 212, 225, 192,
- 235, 200, 225, 192, 85, 249, 139, 226, 201, 220, 31, 220, 19, 219, 231,
- 250, 69, 250, 234, 241, 164, 219, 128, 243, 68, 211, 230, 240, 227, 243,
- 68, 2, 242, 19, 231, 178, 16, 31, 232, 235, 230, 120, 214, 195, 226, 201,
- 242, 129, 244, 20, 244, 82, 236, 7, 241, 66, 244, 137, 222, 16, 42, 244,
- 19, 249, 167, 219, 106, 240, 119, 219, 109, 225, 171, 2, 252, 167, 216,
- 243, 235, 137, 252, 154, 87, 241, 238, 242, 140, 87, 243, 239, 224, 145,
- 249, 111, 226, 201, 85, 218, 236, 71, 244, 82, 2, 203, 230, 229, 85, 218,
- 106, 214, 160, 251, 225, 221, 195, 85, 221, 195, 232, 114, 251, 225, 221,
- 195, 71, 221, 195, 71, 114, 250, 138, 79, 217, 2, 232, 160, 50, 217, 54,
- 246, 96, 254, 200, 245, 127, 223, 160, 244, 93, 223, 160, 242, 22, 213,
- 174, 242, 22, 211, 198, 242, 22, 232, 114, 44, 225, 201, 225, 201, 214,
- 160, 44, 225, 201, 71, 228, 235, 85, 228, 235, 250, 138, 79, 114, 250,
- 138, 79, 230, 89, 211, 178, 114, 230, 89, 211, 178, 252, 164, 211, 178,
- 114, 252, 164, 211, 178, 226, 130, 26, 249, 138, 114, 26, 249, 138, 204,
- 250, 183, 249, 138, 114, 204, 250, 183, 249, 138, 7, 249, 138, 220, 93,
- 71, 7, 249, 138, 226, 130, 7, 249, 138, 231, 192, 249, 138, 218, 159, 64,
- 248, 157, 244, 19, 217, 16, 253, 224, 244, 19, 252, 165, 253, 224, 114,
- 244, 19, 252, 165, 253, 224, 244, 19, 249, 251, 253, 224, 85, 244, 19,
- 225, 12, 218, 158, 71, 244, 19, 225, 12, 218, 158, 219, 13, 218, 113,
- 226, 130, 71, 218, 158, 37, 71, 218, 158, 204, 250, 183, 85, 218, 158,
- 85, 250, 183, 71, 218, 158, 226, 130, 85, 218, 158, 114, 226, 130, 85,
- 218, 158, 225, 63, 218, 158, 220, 93, 71, 218, 158, 114, 253, 224, 204,
- 250, 183, 253, 224, 245, 201, 218, 246, 253, 224, 245, 201, 225, 12, 85,
- 218, 158, 245, 201, 225, 12, 225, 63, 218, 158, 219, 127, 225, 12, 85,
- 218, 158, 245, 201, 225, 12, 223, 117, 85, 218, 158, 114, 245, 201, 225,
- 12, 223, 117, 85, 218, 158, 215, 77, 225, 12, 85, 218, 158, 219, 122,
- 225, 12, 253, 224, 217, 16, 253, 224, 204, 250, 183, 217, 16, 253, 224,
- 114, 217, 16, 253, 224, 219, 127, 225, 160, 85, 22, 71, 244, 62, 85, 244,
- 62, 71, 244, 62, 245, 201, 225, 160, 226, 130, 85, 244, 62, 37, 204, 250,
- 183, 245, 201, 225, 12, 218, 158, 114, 217, 16, 225, 63, 253, 224, 219,
- 64, 216, 106, 215, 219, 219, 64, 114, 250, 122, 219, 64, 219, 15, 114,
- 219, 15, 252, 165, 253, 224, 245, 201, 217, 16, 224, 174, 253, 224, 114,
- 245, 201, 217, 16, 224, 174, 253, 224, 249, 139, 79, 220, 93, 71, 250,
- 43, 152, 92, 249, 139, 79, 232, 114, 44, 246, 94, 71, 218, 236, 214, 160,
- 44, 246, 94, 71, 218, 236, 232, 114, 44, 220, 93, 71, 218, 236, 214, 160,
- 44, 220, 93, 71, 218, 236, 85, 224, 16, 164, 226, 151, 71, 224, 16, 164,
- 226, 151, 71, 245, 39, 164, 226, 151, 85, 248, 1, 230, 187, 71, 211, 178,
- 114, 245, 39, 164, 87, 193, 67, 130, 231, 87, 67, 130, 114, 67, 130, 114,
- 219, 157, 215, 94, 249, 228, 224, 1, 164, 226, 151, 114, 219, 157, 249,
- 228, 224, 1, 164, 226, 151, 114, 52, 215, 94, 249, 228, 224, 1, 164, 226,
- 151, 114, 52, 249, 228, 224, 1, 164, 226, 151, 114, 121, 219, 157, 249,
- 228, 224, 1, 164, 226, 151, 114, 121, 52, 249, 228, 224, 1, 164, 226,
- 151, 249, 99, 218, 142, 226, 19, 5, 226, 151, 114, 245, 39, 164, 226,
- 151, 114, 241, 235, 245, 39, 164, 226, 151, 114, 85, 241, 234, 222, 189,
- 114, 85, 241, 235, 251, 121, 244, 63, 241, 234, 222, 189, 244, 63, 241,
- 235, 251, 121, 231, 87, 43, 226, 8, 226, 151, 231, 87, 44, 226, 8, 226,
- 151, 231, 87, 244, 71, 43, 226, 8, 226, 151, 231, 87, 244, 71, 44, 226,
- 8, 226, 151, 231, 87, 233, 48, 254, 118, 251, 166, 226, 151, 231, 87,
- 222, 250, 254, 118, 251, 166, 226, 151, 114, 233, 48, 254, 118, 224, 1,
- 164, 226, 151, 114, 222, 250, 254, 118, 224, 1, 164, 226, 151, 114, 233,
- 48, 254, 118, 251, 166, 226, 151, 114, 222, 250, 254, 118, 251, 166, 226,
- 151, 193, 43, 216, 7, 220, 55, 251, 166, 226, 151, 193, 44, 216, 7, 220,
- 55, 251, 166, 226, 151, 231, 87, 43, 249, 107, 251, 166, 226, 151, 231,
- 87, 44, 249, 107, 251, 166, 226, 151, 247, 212, 152, 37, 21, 111, 247,
- 212, 152, 37, 21, 105, 247, 212, 152, 37, 21, 158, 247, 212, 152, 37, 21,
- 161, 247, 212, 152, 37, 21, 190, 247, 212, 152, 37, 21, 195, 247, 212,
- 152, 37, 21, 199, 247, 212, 152, 37, 21, 196, 247, 212, 152, 37, 21, 201,
- 247, 212, 152, 37, 54, 216, 248, 247, 212, 37, 35, 21, 111, 247, 212, 37,
- 35, 21, 105, 247, 212, 37, 35, 21, 158, 247, 212, 37, 35, 21, 161, 247,
- 212, 37, 35, 21, 190, 247, 212, 37, 35, 21, 195, 247, 212, 37, 35, 21,
- 199, 247, 212, 37, 35, 21, 196, 247, 212, 37, 35, 21, 201, 247, 212, 37,
- 35, 54, 216, 248, 247, 212, 152, 37, 35, 21, 111, 247, 212, 152, 37, 35,
- 21, 105, 247, 212, 152, 37, 35, 21, 158, 247, 212, 152, 37, 35, 21, 161,
- 247, 212, 152, 37, 35, 21, 190, 247, 212, 152, 37, 35, 21, 195, 247, 212,
- 152, 37, 35, 21, 199, 247, 212, 152, 37, 35, 21, 196, 247, 212, 152, 37,
- 35, 21, 201, 247, 212, 152, 37, 35, 54, 216, 248, 114, 211, 246, 97, 75,
- 114, 96, 50, 114, 230, 187, 50, 114, 247, 177, 50, 114, 219, 30, 245,
- 228, 75, 114, 97, 75, 114, 228, 61, 245, 228, 75, 246, 106, 225, 14, 97,
- 75, 114, 222, 186, 97, 75, 215, 225, 97, 75, 114, 215, 225, 97, 75, 248,
- 163, 215, 225, 97, 75, 114, 248, 163, 215, 225, 97, 75, 85, 97, 75, 216,
- 145, 216, 13, 97, 254, 1, 216, 145, 251, 181, 97, 254, 1, 85, 97, 254, 1,
- 114, 85, 249, 99, 246, 112, 22, 97, 75, 114, 85, 249, 99, 214, 153, 22,
- 97, 75, 218, 233, 85, 97, 75, 114, 249, 214, 85, 97, 75, 222, 249, 71,
- 97, 75, 233, 47, 71, 97, 75, 252, 191, 220, 93, 71, 97, 75, 243, 249,
- 220, 93, 71, 97, 75, 114, 232, 114, 222, 248, 71, 97, 75, 114, 214, 160,
- 222, 248, 71, 97, 75, 228, 54, 232, 114, 222, 248, 71, 97, 75, 249, 107,
- 232, 129, 228, 54, 214, 160, 222, 248, 71, 97, 75, 37, 114, 71, 97, 75,
- 211, 252, 97, 75, 251, 228, 219, 30, 245, 228, 75, 251, 228, 97, 75, 251,
- 228, 228, 61, 245, 228, 75, 114, 251, 228, 219, 30, 245, 228, 75, 114,
- 251, 228, 97, 75, 114, 251, 228, 228, 61, 245, 228, 75, 217, 18, 97, 75,
- 114, 217, 17, 97, 75, 212, 18, 97, 75, 114, 212, 18, 97, 75, 226, 176,
- 97, 75, 52, 249, 107, 232, 129, 134, 247, 222, 254, 117, 71, 215, 227,
- 249, 195, 4, 71, 215, 226, 225, 174, 204, 218, 64, 204, 218, 22, 43, 222,
- 92, 252, 181, 248, 68, 44, 222, 92, 252, 181, 248, 68, 177, 2, 59, 235,
- 222, 223, 53, 219, 49, 224, 204, 218, 64, 218, 23, 224, 204, 219, 48, 67,
- 252, 149, 2, 203, 91, 11, 222, 231, 248, 6, 200, 247, 176, 11, 244, 183,
- 248, 6, 92, 232, 152, 254, 126, 92, 232, 152, 226, 162, 71, 248, 1, 2,
- 250, 181, 247, 128, 22, 2, 247, 128, 245, 178, 64, 226, 174, 214, 152,
- 232, 114, 44, 249, 169, 2, 247, 128, 214, 160, 43, 249, 169, 2, 247, 128,
- 43, 226, 132, 235, 72, 44, 226, 132, 235, 72, 243, 236, 226, 132, 235,
- 72, 233, 91, 120, 217, 88, 233, 91, 124, 217, 88, 43, 22, 44, 52, 215,
- 93, 43, 22, 44, 217, 88, 43, 230, 92, 200, 44, 217, 88, 200, 43, 217, 88,
- 120, 217, 89, 2, 250, 44, 48, 232, 111, 247, 181, 251, 86, 203, 222, 135,
- 71, 249, 213, 248, 0, 71, 249, 213, 248, 1, 2, 140, 216, 115, 71, 249,
- 213, 248, 1, 2, 97, 216, 115, 71, 42, 2, 140, 216, 115, 71, 42, 2, 97,
- 216, 115, 11, 43, 71, 42, 127, 11, 44, 71, 42, 127, 11, 43, 254, 118,
- 127, 11, 44, 254, 118, 127, 11, 43, 52, 254, 118, 127, 11, 44, 52, 254,
- 118, 127, 11, 43, 71, 216, 7, 220, 55, 127, 11, 44, 71, 216, 7, 220, 55,
- 127, 11, 43, 244, 71, 226, 7, 11, 44, 244, 71, 226, 7, 214, 153, 224, 27,
- 75, 246, 112, 224, 27, 75, 254, 96, 243, 105, 250, 44, 75, 250, 10, 243,
- 105, 250, 44, 75, 44, 80, 2, 37, 225, 25, 200, 140, 75, 200, 97, 75, 200,
- 43, 44, 75, 200, 140, 52, 75, 200, 97, 52, 75, 200, 43, 44, 52, 75, 200,
- 140, 80, 243, 251, 130, 200, 97, 80, 243, 251, 130, 200, 140, 52, 80,
- 243, 251, 130, 200, 97, 52, 80, 243, 251, 130, 200, 97, 218, 232, 75, 46,
- 47, 251, 223, 46, 47, 247, 125, 46, 47, 246, 253, 46, 47, 247, 124, 46,
- 47, 246, 189, 46, 47, 247, 60, 46, 47, 246, 252, 46, 47, 247, 123, 46,
- 47, 246, 157, 46, 47, 247, 28, 46, 47, 246, 220, 46, 47, 247, 91, 46, 47,
- 246, 188, 46, 47, 247, 59, 46, 47, 246, 251, 46, 47, 247, 122, 46, 47,
- 246, 141, 46, 47, 247, 12, 46, 47, 246, 204, 46, 47, 247, 75, 46, 47,
- 246, 172, 46, 47, 247, 43, 46, 47, 246, 235, 46, 47, 247, 106, 46, 47,
- 246, 156, 46, 47, 247, 27, 46, 47, 246, 219, 46, 47, 247, 90, 46, 47,
- 246, 187, 46, 47, 247, 58, 46, 47, 246, 250, 46, 47, 247, 121, 46, 47,
- 246, 133, 46, 47, 247, 4, 46, 47, 246, 196, 46, 47, 247, 67, 46, 47, 246,
- 164, 46, 47, 247, 35, 46, 47, 246, 227, 46, 47, 247, 98, 46, 47, 246,
- 148, 46, 47, 247, 19, 46, 47, 246, 211, 46, 47, 247, 82, 46, 47, 246,
- 179, 46, 47, 247, 50, 46, 47, 246, 242, 46, 47, 247, 113, 46, 47, 246,
- 140, 46, 47, 247, 11, 46, 47, 246, 203, 46, 47, 247, 74, 46, 47, 246,
- 171, 46, 47, 247, 42, 46, 47, 246, 234, 46, 47, 247, 105, 46, 47, 246,
- 155, 46, 47, 247, 26, 46, 47, 246, 218, 46, 47, 247, 89, 46, 47, 246,
- 186, 46, 47, 247, 57, 46, 47, 246, 249, 46, 47, 247, 120, 46, 47, 246,
- 129, 46, 47, 247, 0, 46, 47, 246, 192, 46, 47, 247, 63, 46, 47, 246, 160,
- 46, 47, 247, 31, 46, 47, 246, 223, 46, 47, 247, 94, 46, 47, 246, 144, 46,
- 47, 247, 15, 46, 47, 246, 207, 46, 47, 247, 78, 46, 47, 246, 175, 46, 47,
- 247, 46, 46, 47, 246, 238, 46, 47, 247, 109, 46, 47, 246, 136, 46, 47,
- 247, 7, 46, 47, 246, 199, 46, 47, 247, 70, 46, 47, 246, 167, 46, 47, 247,
- 38, 46, 47, 246, 230, 46, 47, 247, 101, 46, 47, 246, 151, 46, 47, 247,
- 22, 46, 47, 246, 214, 46, 47, 247, 85, 46, 47, 246, 182, 46, 47, 247, 53,
- 46, 47, 246, 245, 46, 47, 247, 116, 46, 47, 246, 132, 46, 47, 247, 3, 46,
- 47, 246, 195, 46, 47, 247, 66, 46, 47, 246, 163, 46, 47, 247, 34, 46, 47,
- 246, 226, 46, 47, 247, 97, 46, 47, 246, 147, 46, 47, 247, 18, 46, 47,
- 246, 210, 46, 47, 247, 81, 46, 47, 246, 178, 46, 47, 247, 49, 46, 47,
- 246, 241, 46, 47, 247, 112, 46, 47, 246, 139, 46, 47, 247, 10, 46, 47,
- 246, 202, 46, 47, 247, 73, 46, 47, 246, 170, 46, 47, 247, 41, 46, 47,
- 246, 233, 46, 47, 247, 104, 46, 47, 246, 154, 46, 47, 247, 25, 46, 47,
- 246, 217, 46, 47, 247, 88, 46, 47, 246, 185, 46, 47, 247, 56, 46, 47,
- 246, 248, 46, 47, 247, 119, 46, 47, 246, 127, 46, 47, 246, 254, 46, 47,
- 246, 190, 46, 47, 247, 61, 46, 47, 246, 158, 46, 47, 247, 29, 46, 47,
- 246, 221, 46, 47, 247, 92, 46, 47, 246, 142, 46, 47, 247, 13, 46, 47,
- 246, 205, 46, 47, 247, 76, 46, 47, 246, 173, 46, 47, 247, 44, 46, 47,
- 246, 236, 46, 47, 247, 107, 46, 47, 246, 134, 46, 47, 247, 5, 46, 47,
- 246, 197, 46, 47, 247, 68, 46, 47, 246, 165, 46, 47, 247, 36, 46, 47,
- 246, 228, 46, 47, 247, 99, 46, 47, 246, 149, 46, 47, 247, 20, 46, 47,
- 246, 212, 46, 47, 247, 83, 46, 47, 246, 180, 46, 47, 247, 51, 46, 47,
- 246, 243, 46, 47, 247, 114, 46, 47, 246, 130, 46, 47, 247, 1, 46, 47,
- 246, 193, 46, 47, 247, 64, 46, 47, 246, 161, 46, 47, 247, 32, 46, 47,
- 246, 224, 46, 47, 247, 95, 46, 47, 246, 145, 46, 47, 247, 16, 46, 47,
- 246, 208, 46, 47, 247, 79, 46, 47, 246, 176, 46, 47, 247, 47, 46, 47,
- 246, 239, 46, 47, 247, 110, 46, 47, 246, 137, 46, 47, 247, 8, 46, 47,
- 246, 200, 46, 47, 247, 71, 46, 47, 246, 168, 46, 47, 247, 39, 46, 47,
- 246, 231, 46, 47, 247, 102, 46, 47, 246, 152, 46, 47, 247, 23, 46, 47,
- 246, 215, 46, 47, 247, 86, 46, 47, 246, 183, 46, 47, 247, 54, 46, 47,
- 246, 246, 46, 47, 247, 117, 46, 47, 246, 128, 46, 47, 246, 255, 46, 47,
- 246, 191, 46, 47, 247, 62, 46, 47, 246, 159, 46, 47, 247, 30, 46, 47,
- 246, 222, 46, 47, 247, 93, 46, 47, 246, 143, 46, 47, 247, 14, 46, 47,
- 246, 206, 46, 47, 247, 77, 46, 47, 246, 174, 46, 47, 247, 45, 46, 47,
- 246, 237, 46, 47, 247, 108, 46, 47, 246, 135, 46, 47, 247, 6, 46, 47,
- 246, 198, 46, 47, 247, 69, 46, 47, 246, 166, 46, 47, 247, 37, 46, 47,
- 246, 229, 46, 47, 247, 100, 46, 47, 246, 150, 46, 47, 247, 21, 46, 47,
- 246, 213, 46, 47, 247, 84, 46, 47, 246, 181, 46, 47, 247, 52, 46, 47,
- 246, 244, 46, 47, 247, 115, 46, 47, 246, 131, 46, 47, 247, 2, 46, 47,
- 246, 194, 46, 47, 247, 65, 46, 47, 246, 162, 46, 47, 247, 33, 46, 47,
- 246, 225, 46, 47, 247, 96, 46, 47, 246, 146, 46, 47, 247, 17, 46, 47,
- 246, 209, 46, 47, 247, 80, 46, 47, 246, 177, 46, 47, 247, 48, 46, 47,
- 246, 240, 46, 47, 247, 111, 46, 47, 246, 138, 46, 47, 247, 9, 46, 47,
- 246, 201, 46, 47, 247, 72, 46, 47, 246, 169, 46, 47, 247, 40, 46, 47,
- 246, 232, 46, 47, 247, 103, 46, 47, 246, 153, 46, 47, 247, 24, 46, 47,
- 246, 216, 46, 47, 247, 87, 46, 47, 246, 184, 46, 47, 247, 55, 46, 47,
- 246, 247, 46, 47, 247, 118, 97, 215, 58, 80, 2, 67, 91, 97, 215, 58, 80,
- 2, 52, 67, 91, 140, 52, 80, 2, 67, 91, 97, 52, 80, 2, 67, 91, 43, 44, 52,
- 80, 2, 67, 91, 97, 215, 58, 80, 243, 251, 130, 140, 52, 80, 243, 251,
- 130, 97, 52, 80, 243, 251, 130, 246, 112, 80, 2, 203, 91, 214, 153, 80,
- 2, 203, 91, 214, 153, 215, 212, 75, 246, 112, 215, 212, 75, 140, 52, 248,
- 165, 75, 97, 52, 248, 165, 75, 140, 215, 212, 248, 165, 75, 97, 215, 212,
- 248, 165, 75, 97, 215, 58, 215, 212, 248, 165, 75, 97, 80, 2, 246, 126,
- 218, 141, 214, 153, 80, 216, 43, 130, 246, 112, 80, 216, 43, 130, 97, 80,
- 2, 217, 79, 2, 67, 91, 97, 80, 2, 217, 79, 2, 52, 67, 91, 97, 215, 58,
- 80, 2, 217, 78, 97, 215, 58, 80, 2, 217, 79, 2, 67, 91, 97, 215, 58, 80,
- 2, 217, 79, 2, 52, 67, 91, 140, 254, 3, 97, 254, 3, 140, 52, 254, 3, 97,
- 52, 254, 3, 140, 80, 216, 43, 85, 248, 0, 97, 80, 216, 43, 85, 248, 0,
- 140, 80, 243, 251, 252, 149, 216, 43, 85, 248, 0, 97, 80, 243, 251, 252,
- 149, 216, 43, 85, 248, 0, 228, 61, 212, 9, 22, 219, 30, 245, 228, 75,
- 228, 61, 245, 228, 22, 219, 30, 212, 9, 75, 228, 61, 212, 9, 80, 2, 103,
- 228, 61, 245, 228, 80, 2, 103, 219, 30, 245, 228, 80, 2, 103, 219, 30,
- 212, 9, 80, 2, 103, 228, 61, 212, 9, 80, 22, 228, 61, 245, 228, 75, 228,
- 61, 245, 228, 80, 22, 219, 30, 245, 228, 75, 219, 30, 245, 228, 80, 22,
- 219, 30, 212, 9, 75, 219, 30, 212, 9, 80, 22, 228, 61, 212, 9, 75, 222,
- 231, 248, 7, 249, 133, 244, 183, 248, 6, 244, 183, 248, 7, 249, 133, 222,
- 231, 248, 6, 219, 30, 245, 228, 80, 249, 133, 228, 61, 245, 228, 75, 228,
- 61, 245, 228, 80, 249, 133, 219, 30, 245, 228, 75, 244, 183, 248, 7, 249,
- 133, 228, 61, 245, 228, 75, 222, 231, 248, 7, 249, 133, 219, 30, 245,
- 228, 75, 228, 61, 245, 228, 80, 249, 133, 228, 61, 212, 9, 75, 228, 61,
- 212, 9, 80, 249, 133, 228, 61, 245, 228, 75, 212, 36, 80, 225, 10, 247,
- 203, 222, 254, 80, 225, 10, 97, 216, 189, 249, 98, 214, 152, 80, 225, 10,
- 97, 216, 189, 249, 98, 246, 111, 80, 225, 10, 246, 112, 216, 189, 249,
- 98, 233, 43, 80, 225, 10, 246, 112, 216, 189, 249, 98, 222, 244, 222,
- 247, 254, 34, 250, 10, 75, 233, 46, 254, 34, 254, 96, 75, 216, 15, 254,
- 34, 254, 96, 75, 251, 183, 254, 34, 254, 96, 75, 216, 15, 254, 34, 250,
- 10, 80, 2, 230, 186, 216, 15, 254, 34, 254, 96, 80, 2, 225, 25, 232, 114,
- 44, 220, 154, 250, 10, 75, 232, 114, 43, 220, 154, 254, 96, 75, 254, 96,
- 250, 8, 250, 44, 75, 250, 10, 250, 8, 250, 44, 75, 97, 80, 72, 219, 253,
- 140, 75, 140, 80, 72, 219, 253, 97, 75, 219, 253, 97, 80, 72, 140, 75,
- 97, 80, 2, 96, 51, 140, 80, 2, 96, 51, 97, 80, 216, 140, 211, 178, 43,
- 44, 80, 216, 140, 4, 250, 43, 214, 153, 215, 58, 80, 243, 251, 4, 250,
- 43, 43, 252, 147, 120, 44, 252, 147, 124, 242, 5, 43, 252, 147, 124, 44,
- 252, 147, 120, 242, 5, 120, 252, 147, 44, 124, 252, 147, 43, 242, 5, 120,
- 252, 147, 43, 124, 252, 147, 44, 242, 5, 43, 252, 147, 120, 44, 252, 147,
- 120, 242, 5, 120, 252, 147, 44, 124, 252, 147, 44, 242, 5, 43, 252, 147,
- 124, 44, 252, 147, 124, 242, 5, 120, 252, 147, 43, 124, 252, 147, 43,
- 242, 5, 140, 242, 6, 2, 252, 147, 120, 216, 43, 130, 97, 242, 6, 2, 252,
- 147, 120, 216, 43, 130, 214, 153, 242, 6, 2, 252, 147, 44, 216, 43, 130,
- 246, 112, 242, 6, 2, 252, 147, 44, 216, 43, 130, 140, 242, 6, 2, 252,
- 147, 124, 216, 43, 130, 97, 242, 6, 2, 252, 147, 124, 216, 43, 130, 214,
- 153, 242, 6, 2, 252, 147, 43, 216, 43, 130, 246, 112, 242, 6, 2, 252,
- 147, 43, 216, 43, 130, 140, 242, 6, 2, 252, 147, 120, 243, 251, 130, 97,
- 242, 6, 2, 252, 147, 120, 243, 251, 130, 214, 153, 242, 6, 2, 252, 147,
- 44, 243, 251, 130, 246, 112, 242, 6, 2, 252, 147, 44, 243, 251, 130, 140,
- 242, 6, 2, 252, 147, 124, 243, 251, 130, 97, 242, 6, 2, 252, 147, 124,
- 243, 251, 130, 214, 153, 242, 6, 2, 252, 147, 43, 243, 251, 130, 246,
- 112, 242, 6, 2, 252, 147, 43, 243, 251, 130, 140, 242, 6, 2, 252, 147,
- 120, 72, 140, 242, 6, 2, 252, 147, 246, 114, 214, 153, 242, 6, 2, 252,
- 147, 43, 252, 38, 214, 153, 242, 6, 2, 252, 147, 222, 254, 97, 242, 6, 2,
- 252, 147, 120, 72, 97, 242, 6, 2, 252, 147, 246, 114, 246, 112, 242, 6,
- 2, 252, 147, 43, 252, 38, 246, 112, 242, 6, 2, 252, 147, 222, 254, 140,
- 242, 6, 2, 252, 147, 120, 72, 97, 242, 6, 2, 252, 147, 214, 163, 140,
- 242, 6, 2, 252, 147, 124, 72, 97, 242, 6, 2, 252, 147, 246, 114, 97, 242,
- 6, 2, 252, 147, 120, 72, 140, 242, 6, 2, 252, 147, 214, 163, 97, 242, 6,
- 2, 252, 147, 124, 72, 140, 242, 6, 2, 252, 147, 246, 114, 140, 242, 6, 2,
- 252, 147, 120, 72, 200, 248, 164, 140, 242, 6, 2, 252, 147, 124, 252, 51,
- 200, 248, 164, 97, 242, 6, 2, 252, 147, 120, 72, 200, 248, 164, 97, 242,
- 6, 2, 252, 147, 124, 252, 51, 200, 248, 164, 214, 153, 242, 6, 2, 252,
- 147, 43, 252, 38, 246, 112, 242, 6, 2, 252, 147, 222, 254, 246, 112, 242,
- 6, 2, 252, 147, 43, 252, 38, 214, 153, 242, 6, 2, 252, 147, 222, 254, 44,
- 52, 80, 2, 222, 185, 241, 242, 245, 106, 5, 72, 97, 75, 216, 90, 226,
- 172, 72, 97, 75, 140, 80, 72, 216, 90, 226, 171, 97, 80, 72, 216, 90,
- 226, 171, 97, 80, 72, 254, 156, 128, 112, 233, 21, 72, 140, 75, 140, 80,
- 216, 140, 233, 20, 242, 137, 72, 97, 75, 218, 65, 72, 97, 75, 140, 80,
- 216, 140, 218, 64, 218, 23, 72, 140, 75, 43, 244, 99, 217, 78, 44, 244,
- 99, 217, 78, 120, 244, 99, 217, 78, 124, 244, 99, 217, 78, 215, 212, 67,
- 252, 149, 248, 68, 210, 160, 189, 218, 244, 210, 160, 189, 215, 49, 249,
- 234, 43, 71, 249, 107, 127, 44, 71, 249, 107, 127, 43, 71, 226, 7, 44,
- 71, 226, 7, 210, 160, 189, 43, 236, 22, 127, 210, 160, 189, 44, 236, 22,
- 127, 210, 160, 189, 43, 251, 250, 127, 210, 160, 189, 44, 251, 250, 127,
- 43, 42, 251, 166, 2, 214, 183, 44, 42, 251, 166, 2, 214, 183, 43, 42,
- 251, 166, 2, 216, 116, 236, 7, 216, 15, 249, 168, 44, 42, 251, 166, 2,
- 216, 116, 236, 7, 251, 183, 249, 168, 43, 42, 251, 166, 2, 216, 116, 236,
- 7, 251, 183, 249, 168, 44, 42, 251, 166, 2, 216, 116, 236, 7, 216, 15,
- 249, 168, 43, 254, 118, 251, 166, 2, 247, 128, 44, 254, 118, 251, 166, 2,
- 247, 128, 43, 254, 34, 233, 21, 127, 44, 254, 34, 242, 137, 127, 52, 43,
- 254, 34, 242, 137, 127, 52, 44, 254, 34, 233, 21, 127, 43, 85, 216, 7,
- 220, 55, 127, 44, 85, 216, 7, 220, 55, 127, 246, 126, 244, 143, 67, 210,
- 35, 232, 219, 231, 93, 254, 118, 226, 174, 233, 52, 44, 254, 118, 214,
- 12, 2, 218, 236, 231, 93, 44, 254, 118, 2, 247, 128, 254, 118, 2, 222,
- 94, 235, 222, 255, 12, 254, 117, 219, 1, 254, 118, 226, 174, 233, 52,
- 219, 1, 254, 118, 226, 174, 214, 163, 215, 94, 254, 117, 223, 52, 254,
- 117, 254, 118, 2, 214, 183, 223, 52, 254, 118, 2, 214, 183, 226, 252,
- 254, 118, 226, 174, 214, 163, 226, 252, 254, 118, 226, 174, 246, 114,
- 231, 93, 254, 118, 2, 204, 254, 13, 245, 148, 236, 7, 80, 225, 10, 120,
- 22, 222, 254, 231, 93, 254, 118, 2, 204, 254, 13, 245, 148, 236, 7, 80,
- 225, 10, 120, 22, 233, 52, 231, 93, 254, 118, 2, 204, 254, 13, 245, 148,
- 236, 7, 80, 225, 10, 124, 22, 222, 254, 231, 93, 254, 118, 2, 204, 254,
- 13, 245, 148, 236, 7, 80, 225, 10, 124, 22, 233, 52, 231, 93, 254, 118,
- 2, 204, 254, 13, 245, 148, 236, 7, 80, 225, 10, 44, 22, 214, 163, 231,
- 93, 254, 118, 2, 204, 254, 13, 245, 148, 236, 7, 80, 225, 10, 43, 22,
- 214, 163, 231, 93, 254, 118, 2, 204, 254, 13, 245, 148, 236, 7, 80, 225,
- 10, 44, 22, 246, 114, 231, 93, 254, 118, 2, 204, 254, 13, 245, 148, 236,
- 7, 80, 225, 10, 43, 22, 246, 114, 223, 52, 245, 160, 220, 129, 245, 160,
- 220, 130, 2, 226, 127, 245, 160, 220, 130, 2, 4, 250, 44, 48, 245, 160,
- 220, 130, 2, 44, 80, 48, 245, 160, 220, 130, 2, 43, 80, 48, 250, 44, 2,
- 203, 130, 37, 67, 130, 37, 226, 11, 37, 223, 53, 219, 48, 37, 225, 174,
- 250, 44, 247, 181, 251, 86, 203, 252, 149, 22, 216, 15, 163, 247, 181,
- 251, 86, 67, 130, 250, 44, 2, 218, 25, 211, 178, 37, 254, 95, 247, 177,
- 50, 120, 80, 216, 140, 250, 43, 37, 71, 251, 121, 37, 251, 121, 37, 233,
- 20, 37, 242, 136, 250, 44, 2, 4, 250, 44, 216, 43, 216, 197, 222, 254,
- 250, 44, 2, 113, 203, 218, 93, 216, 43, 216, 197, 222, 254, 92, 222, 231,
- 248, 7, 219, 97, 92, 244, 183, 248, 7, 219, 97, 92, 253, 224, 92, 4, 250,
- 43, 92, 218, 236, 113, 235, 71, 218, 234, 215, 227, 2, 59, 48, 215, 227,
- 2, 214, 183, 222, 94, 236, 7, 215, 226, 215, 227, 2, 220, 136, 253, 215,
- 251, 182, 44, 215, 227, 72, 43, 215, 226, 43, 215, 227, 252, 38, 67, 130,
- 67, 252, 149, 252, 38, 44, 215, 226, 251, 173, 2, 43, 163, 251, 229, 251,
- 173, 2, 44, 163, 251, 229, 85, 251, 172, 30, 2, 43, 163, 251, 229, 30, 2,
- 44, 163, 251, 229, 71, 240, 243, 85, 240, 243, 43, 211, 244, 244, 143,
- 44, 211, 244, 244, 143, 43, 52, 211, 244, 244, 143, 44, 52, 211, 244,
- 244, 143, 235, 255, 235, 241, 216, 113, 115, 235, 241, 235, 242, 229,
- 107, 2, 67, 130, 246, 120, 230, 92, 42, 2, 249, 189, 226, 131, 235, 253,
- 253, 245, 219, 221, 224, 183, 245, 106, 5, 22, 219, 99, 226, 11, 245,
- 106, 5, 22, 219, 99, 226, 12, 2, 216, 90, 48, 240, 111, 216, 43, 22, 219,
- 99, 226, 11, 242, 190, 218, 157, 216, 186, 246, 113, 215, 227, 2, 43,
- 163, 251, 229, 246, 113, 215, 227, 2, 44, 163, 251, 229, 85, 248, 1, 2,
- 124, 75, 85, 232, 110, 71, 250, 44, 2, 124, 75, 85, 250, 44, 2, 124, 75,
- 245, 93, 71, 218, 236, 245, 93, 85, 218, 236, 245, 93, 71, 248, 0, 245,
- 93, 85, 248, 0, 245, 93, 71, 250, 43, 245, 93, 85, 250, 43, 222, 134,
- 223, 53, 219, 49, 226, 171, 219, 49, 2, 226, 127, 223, 53, 219, 49, 2,
- 203, 91, 252, 1, 219, 48, 252, 1, 223, 53, 219, 48, 52, 225, 25, 215,
- 212, 225, 25, 233, 48, 249, 99, 254, 118, 127, 222, 250, 249, 99, 254,
- 118, 127, 216, 79, 230, 184, 230, 29, 37, 59, 226, 171, 230, 29, 37, 96,
- 226, 171, 230, 29, 37, 30, 226, 171, 230, 29, 214, 176, 226, 172, 2, 247,
- 128, 230, 29, 214, 176, 226, 172, 2, 225, 25, 230, 29, 42, 235, 206, 226,
- 171, 230, 29, 42, 214, 176, 226, 171, 113, 232, 152, 22, 226, 171, 113,
- 232, 152, 177, 226, 171, 230, 29, 30, 226, 171, 230, 159, 113, 218, 44,
- 218, 42, 2, 235, 218, 224, 27, 235, 219, 226, 171, 244, 107, 226, 3, 235,
- 218, 235, 219, 2, 52, 91, 235, 219, 253, 181, 2, 219, 97, 250, 40, 243,
- 233, 254, 96, 235, 216, 232, 220, 235, 217, 2, 223, 118, 225, 241, 254,
- 10, 225, 4, 232, 220, 235, 217, 2, 220, 154, 225, 241, 254, 10, 225, 4,
- 232, 220, 235, 217, 228, 57, 236, 1, 216, 197, 225, 4, 235, 219, 254, 10,
- 116, 225, 14, 226, 171, 224, 21, 235, 219, 226, 171, 235, 219, 2, 140,
- 80, 2, 103, 235, 219, 2, 30, 50, 235, 219, 2, 235, 205, 235, 219, 2, 214,
- 175, 235, 219, 2, 226, 127, 235, 219, 2, 214, 183, 235, 72, 233, 91, 43,
- 215, 227, 226, 171, 210, 160, 189, 221, 203, 249, 217, 210, 160, 189,
- 221, 203, 225, 59, 210, 160, 189, 221, 203, 224, 179, 96, 5, 2, 4, 250,
- 44, 48, 96, 5, 2, 250, 39, 255, 24, 48, 96, 5, 2, 216, 90, 48, 96, 5, 2,
- 59, 51, 96, 5, 2, 216, 90, 51, 96, 5, 2, 218, 66, 105, 96, 5, 2, 85, 215,
- 226, 230, 187, 5, 2, 249, 228, 48, 230, 187, 5, 2, 59, 51, 230, 187, 5,
- 2, 244, 183, 247, 126, 230, 187, 5, 2, 222, 231, 247, 126, 96, 5, 236, 7,
- 43, 163, 250, 43, 96, 5, 236, 7, 44, 163, 250, 43, 213, 254, 177, 249,
- 139, 224, 183, 230, 89, 5, 2, 59, 48, 230, 89, 5, 2, 214, 183, 220, 151,
- 224, 184, 2, 251, 183, 250, 7, 219, 79, 224, 183, 230, 89, 5, 236, 7, 43,
- 163, 250, 43, 230, 89, 5, 236, 7, 44, 163, 250, 43, 37, 230, 89, 5, 2,
- 250, 39, 255, 23, 230, 89, 5, 236, 7, 52, 250, 43, 37, 247, 177, 50, 96,
- 5, 236, 7, 215, 226, 230, 187, 5, 236, 7, 215, 226, 230, 89, 5, 236, 7,
- 215, 226, 235, 213, 224, 183, 222, 245, 235, 213, 224, 183, 210, 160,
- 189, 223, 93, 249, 217, 254, 142, 177, 249, 173, 235, 206, 2, 247, 128,
- 214, 176, 2, 230, 187, 50, 214, 176, 2, 226, 127, 235, 206, 2, 226, 127,
- 235, 206, 2, 232, 152, 254, 126, 214, 176, 2, 232, 152, 226, 162, 214,
- 176, 72, 235, 205, 235, 206, 72, 214, 175, 214, 176, 72, 252, 149, 72,
- 235, 205, 235, 206, 72, 252, 149, 72, 214, 175, 214, 176, 252, 38, 22,
- 235, 71, 2, 214, 175, 235, 206, 252, 38, 22, 235, 71, 2, 235, 205, 250,
- 8, 214, 176, 2, 220, 135, 250, 8, 235, 206, 2, 220, 135, 52, 42, 235,
- 205, 52, 42, 214, 175, 250, 8, 214, 176, 2, 220, 136, 22, 219, 79, 224,
- 183, 232, 152, 22, 2, 59, 48, 232, 152, 177, 2, 59, 48, 52, 232, 152,
- 254, 126, 52, 232, 152, 226, 162, 113, 235, 207, 232, 152, 254, 126, 113,
- 235, 207, 232, 152, 226, 162, 219, 87, 233, 91, 226, 162, 219, 87, 233,
- 91, 254, 126, 232, 152, 177, 226, 125, 232, 152, 254, 126, 232, 152, 22,
- 2, 230, 229, 218, 141, 232, 152, 177, 2, 230, 229, 218, 141, 232, 152,
- 22, 2, 203, 248, 164, 232, 152, 177, 2, 203, 248, 164, 232, 152, 22, 2,
- 52, 226, 127, 232, 152, 22, 2, 214, 183, 232, 152, 22, 2, 52, 214, 183,
- 4, 213, 251, 2, 214, 183, 232, 152, 177, 2, 52, 226, 127, 232, 152, 177,
- 2, 52, 214, 183, 210, 160, 189, 247, 137, 254, 87, 210, 160, 189, 223,
- 151, 254, 87, 245, 106, 5, 2, 59, 51, 240, 111, 2, 59, 48, 215, 212, 203,
- 252, 149, 2, 52, 67, 91, 215, 212, 203, 252, 149, 2, 215, 212, 67, 91,
- 216, 90, 226, 172, 2, 59, 48, 216, 90, 226, 172, 2, 222, 231, 247, 126,
- 219, 164, 230, 187, 219, 163, 249, 207, 2, 59, 48, 245, 106, 2, 253, 224,
- 254, 156, 128, 216, 43, 2, 250, 39, 255, 23, 254, 56, 128, 177, 128, 112,
- 245, 106, 5, 72, 96, 50, 96, 5, 72, 245, 106, 50, 245, 106, 5, 72, 216,
- 90, 226, 171, 52, 249, 235, 245, 107, 113, 249, 202, 245, 106, 219, 178,
- 134, 249, 202, 245, 106, 219, 178, 245, 106, 5, 2, 113, 170, 72, 22, 113,
- 170, 51, 245, 102, 2, 244, 19, 170, 48, 233, 21, 2, 250, 44, 235, 222,
- 242, 137, 2, 250, 44, 235, 222, 233, 21, 2, 224, 16, 164, 48, 242, 137,
- 2, 224, 16, 164, 48, 233, 21, 177, 219, 99, 128, 112, 242, 137, 177, 219,
- 99, 128, 112, 233, 21, 177, 219, 99, 128, 216, 43, 2, 59, 235, 222, 242,
- 137, 177, 219, 99, 128, 216, 43, 2, 59, 235, 222, 233, 21, 177, 219, 99,
- 128, 216, 43, 2, 59, 48, 242, 137, 177, 219, 99, 128, 216, 43, 2, 59, 48,
- 233, 21, 177, 219, 99, 128, 216, 43, 2, 59, 72, 222, 254, 242, 137, 177,
- 219, 99, 128, 216, 43, 2, 59, 72, 233, 52, 233, 21, 177, 254, 57, 242,
- 137, 177, 254, 57, 233, 21, 22, 219, 155, 228, 57, 128, 112, 242, 137,
- 22, 219, 155, 228, 57, 128, 112, 233, 21, 22, 228, 57, 254, 57, 242, 137,
- 22, 228, 57, 254, 57, 233, 21, 72, 246, 119, 128, 72, 242, 136, 242, 137,
- 72, 246, 119, 128, 72, 233, 20, 233, 21, 72, 219, 164, 177, 245, 107,
- 242, 137, 72, 219, 164, 177, 245, 107, 233, 21, 72, 219, 164, 72, 242,
- 136, 242, 137, 72, 219, 164, 72, 233, 20, 233, 21, 72, 242, 137, 72, 246,
- 119, 245, 107, 242, 137, 72, 233, 21, 72, 246, 119, 245, 107, 233, 21,
- 72, 219, 99, 128, 72, 242, 137, 72, 219, 99, 245, 107, 242, 137, 72, 219,
- 99, 128, 72, 233, 21, 72, 219, 99, 245, 107, 219, 99, 128, 216, 43, 177,
- 233, 20, 219, 99, 128, 216, 43, 177, 242, 136, 219, 99, 128, 216, 43,
- 177, 233, 21, 2, 59, 235, 222, 219, 99, 128, 216, 43, 177, 242, 137, 2,
- 59, 235, 222, 246, 119, 128, 216, 43, 177, 233, 20, 246, 119, 128, 216,
- 43, 177, 242, 136, 246, 119, 219, 99, 128, 216, 43, 177, 233, 20, 246,
- 119, 219, 99, 128, 216, 43, 177, 242, 136, 219, 164, 177, 233, 20, 219,
- 164, 177, 242, 136, 219, 164, 72, 233, 21, 72, 245, 106, 50, 219, 164,
- 72, 242, 137, 72, 245, 106, 50, 52, 229, 96, 233, 20, 52, 229, 96, 242,
- 136, 52, 229, 96, 233, 21, 2, 214, 183, 242, 137, 226, 125, 233, 20, 242,
- 137, 252, 38, 233, 20, 233, 21, 250, 8, 251, 86, 249, 100, 242, 137, 250,
- 8, 251, 86, 249, 100, 233, 21, 250, 8, 251, 86, 249, 101, 72, 219, 99,
- 245, 107, 242, 137, 250, 8, 251, 86, 249, 101, 72, 219, 99, 245, 107,
- 219, 80, 216, 201, 233, 89, 216, 201, 219, 80, 216, 202, 177, 128, 112,
- 233, 89, 216, 202, 177, 128, 112, 245, 106, 5, 2, 251, 116, 48, 224, 206,
- 72, 219, 155, 245, 106, 50, 218, 57, 72, 219, 155, 245, 106, 50, 224,
- 206, 72, 219, 155, 228, 57, 128, 112, 218, 57, 72, 219, 155, 228, 57,
- 128, 112, 224, 206, 72, 245, 106, 50, 218, 57, 72, 245, 106, 50, 224,
- 206, 72, 228, 57, 128, 112, 218, 57, 72, 228, 57, 128, 112, 224, 206, 72,
- 254, 156, 128, 112, 218, 57, 72, 254, 156, 128, 112, 224, 206, 72, 228,
- 57, 254, 156, 128, 112, 218, 57, 72, 228, 57, 254, 156, 128, 112, 52,
- 224, 205, 52, 218, 56, 218, 65, 2, 247, 128, 218, 23, 2, 247, 128, 218,
- 65, 2, 96, 5, 51, 218, 23, 2, 96, 5, 51, 218, 65, 2, 230, 89, 5, 51, 218,
- 23, 2, 230, 89, 5, 51, 218, 65, 64, 177, 128, 216, 43, 2, 59, 48, 218,
- 23, 64, 177, 128, 216, 43, 2, 59, 48, 218, 65, 64, 72, 245, 106, 50, 218,
- 23, 64, 72, 245, 106, 50, 218, 65, 64, 72, 216, 90, 226, 171, 218, 23,
- 64, 72, 216, 90, 226, 171, 218, 65, 64, 72, 254, 156, 128, 112, 218, 23,
- 64, 72, 254, 156, 128, 112, 218, 65, 64, 72, 228, 57, 128, 112, 218, 23,
- 64, 72, 228, 57, 128, 112, 42, 43, 204, 93, 226, 171, 42, 44, 204, 93,
- 226, 171, 250, 8, 218, 64, 250, 8, 218, 22, 250, 8, 218, 65, 177, 128,
- 112, 250, 8, 218, 23, 177, 128, 112, 218, 65, 72, 218, 22, 218, 23, 72,
- 218, 64, 218, 65, 72, 218, 64, 218, 23, 72, 218, 22, 218, 23, 252, 38,
- 218, 64, 218, 23, 252, 38, 22, 235, 71, 251, 86, 248, 165, 2, 218, 64,
- 245, 178, 64, 226, 174, 246, 111, 225, 51, 2, 217, 13, 216, 14, 215, 241,
- 235, 205, 244, 29, 228, 70, 219, 253, 43, 217, 88, 219, 253, 124, 217,
- 88, 219, 253, 120, 217, 88, 225, 175, 2, 222, 93, 67, 252, 149, 215, 212,
- 44, 215, 93, 52, 67, 252, 149, 43, 215, 93, 67, 252, 149, 52, 43, 215,
- 93, 52, 67, 252, 149, 52, 43, 215, 93, 200, 248, 165, 243, 251, 43, 231,
- 68, 64, 52, 213, 239, 219, 253, 124, 217, 89, 2, 226, 127, 219, 253, 120,
- 217, 89, 2, 214, 183, 219, 253, 120, 217, 89, 72, 219, 253, 124, 217, 88,
- 52, 124, 217, 88, 52, 120, 217, 88, 52, 218, 105, 228, 57, 50, 223, 52,
- 52, 218, 105, 228, 57, 50, 247, 146, 228, 57, 247, 183, 2, 223, 52, 229,
- 106, 219, 97, 67, 232, 220, 2, 250, 44, 48, 67, 232, 220, 2, 250, 44, 51,
- 124, 217, 89, 2, 250, 44, 51, 226, 12, 2, 203, 91, 226, 12, 2, 216, 90,
- 226, 171, 215, 212, 67, 252, 149, 251, 252, 223, 94, 215, 212, 67, 252,
- 149, 2, 203, 91, 215, 212, 249, 235, 226, 171, 215, 212, 229, 96, 233,
- 20, 215, 212, 229, 96, 242, 136, 246, 119, 219, 99, 233, 21, 177, 128,
- 112, 246, 119, 219, 99, 242, 137, 177, 128, 112, 215, 212, 219, 49, 251,
- 252, 223, 94, 233, 91, 215, 212, 67, 252, 149, 226, 171, 52, 219, 49,
- 226, 171, 71, 67, 130, 230, 29, 71, 67, 130, 228, 61, 245, 228, 71, 75,
- 228, 61, 212, 9, 71, 75, 219, 30, 245, 228, 71, 75, 219, 30, 212, 9, 71,
- 75, 43, 44, 71, 75, 140, 85, 75, 214, 153, 85, 75, 246, 112, 85, 75, 228,
- 61, 245, 228, 85, 75, 228, 61, 212, 9, 85, 75, 219, 30, 245, 228, 85, 75,
- 219, 30, 212, 9, 85, 75, 43, 44, 85, 75, 120, 124, 85, 75, 97, 80, 2,
- 216, 78, 246, 111, 97, 80, 2, 216, 78, 214, 152, 140, 80, 2, 216, 78,
- 246, 111, 140, 80, 2, 216, 78, 214, 152, 42, 2, 216, 15, 163, 251, 229,
- 42, 2, 251, 183, 163, 251, 229, 42, 2, 214, 160, 44, 248, 7, 163, 251,
- 229, 42, 2, 232, 114, 43, 248, 7, 163, 251, 229, 248, 1, 2, 43, 163, 251,
- 229, 248, 1, 2, 44, 163, 251, 229, 248, 1, 2, 216, 15, 163, 251, 229,
- 248, 1, 2, 251, 183, 163, 251, 229, 246, 126, 218, 236, 85, 233, 91, 218,
- 236, 71, 233, 91, 218, 236, 85, 213, 187, 4, 218, 236, 71, 213, 187, 4,
- 218, 236, 85, 225, 193, 71, 225, 193, 71, 241, 200, 85, 241, 200, 203,
- 85, 241, 200, 85, 233, 91, 250, 43, 85, 231, 87, 248, 0, 71, 231, 87,
- 248, 0, 85, 231, 87, 232, 110, 71, 231, 87, 232, 110, 85, 4, 248, 0, 85,
- 4, 232, 110, 71, 4, 232, 110, 85, 203, 245, 172, 71, 203, 245, 172, 85,
- 67, 245, 172, 71, 67, 245, 172, 43, 80, 2, 4, 250, 43, 134, 140, 253,
- 255, 43, 80, 2, 37, 225, 25, 200, 140, 218, 232, 75, 140, 215, 58, 80, 2,
- 67, 91, 140, 215, 58, 80, 2, 52, 67, 91, 140, 215, 58, 80, 243, 251, 130,
- 140, 215, 58, 215, 212, 248, 165, 75, 140, 80, 2, 246, 126, 218, 141,
- 140, 80, 2, 217, 79, 2, 67, 91, 140, 80, 2, 217, 79, 2, 52, 67, 91, 140,
- 215, 58, 80, 2, 217, 78, 140, 215, 58, 80, 2, 217, 79, 2, 67, 91, 140,
- 215, 58, 80, 2, 217, 79, 2, 52, 67, 91, 140, 80, 216, 140, 211, 178, 212,
- 36, 80, 225, 10, 247, 203, 233, 52, 245, 106, 5, 72, 140, 75, 223, 53,
- 216, 90, 226, 172, 72, 140, 75, 140, 80, 72, 223, 53, 254, 156, 128, 112,
- 97, 80, 216, 140, 242, 136, 97, 80, 216, 140, 218, 22, 140, 224, 27, 75,
- 97, 224, 27, 75, 223, 53, 216, 90, 226, 172, 72, 97, 75, 97, 80, 72, 223,
- 53, 254, 156, 128, 112, 216, 90, 226, 172, 72, 140, 75, 140, 80, 72, 254,
- 156, 128, 112, 140, 80, 72, 223, 53, 216, 90, 226, 171, 97, 80, 72, 223,
- 53, 216, 90, 226, 171, 71, 231, 87, 218, 158, 85, 4, 218, 158, 71, 4,
- 218, 158, 85, 222, 250, 225, 193, 71, 222, 250, 225, 193, 114, 233, 91,
- 250, 43, 114, 226, 128, 2, 226, 128, 235, 222, 114, 250, 44, 2, 250, 44,
- 235, 222, 114, 250, 43, 114, 37, 222, 0, 145, 6, 1, 253, 167, 145, 6, 1,
- 251, 125, 145, 6, 1, 213, 253, 145, 6, 1, 242, 192, 145, 6, 1, 247, 148,
- 145, 6, 1, 211, 21, 145, 6, 1, 210, 68, 145, 6, 1, 246, 42, 145, 6, 1,
- 210, 91, 145, 6, 1, 235, 154, 145, 6, 1, 65, 235, 154, 145, 6, 1, 74,
- 145, 6, 1, 247, 168, 145, 6, 1, 234, 246, 145, 6, 1, 232, 192, 145, 6, 1,
- 230, 34, 145, 6, 1, 229, 196, 145, 6, 1, 226, 189, 145, 6, 1, 225, 7,
- 145, 6, 1, 222, 230, 145, 6, 1, 219, 85, 145, 6, 1, 215, 81, 145, 6, 1,
- 214, 201, 145, 6, 1, 243, 254, 145, 6, 1, 241, 206, 145, 6, 1, 226, 139,
- 145, 6, 1, 225, 224, 145, 6, 1, 219, 230, 145, 6, 1, 215, 168, 145, 6, 1,
- 250, 83, 145, 6, 1, 220, 104, 145, 6, 1, 211, 27, 145, 6, 1, 211, 29,
- 145, 6, 1, 211, 57, 145, 6, 1, 218, 255, 162, 145, 6, 1, 210, 212, 145,
- 6, 1, 4, 210, 183, 145, 6, 1, 4, 210, 184, 2, 217, 78, 145, 6, 1, 210,
- 244, 145, 6, 1, 235, 191, 4, 210, 183, 145, 6, 1, 252, 1, 210, 183, 145,
- 6, 1, 235, 191, 252, 1, 210, 183, 145, 6, 1, 244, 90, 145, 6, 1, 235,
- 152, 145, 6, 1, 219, 229, 145, 6, 1, 215, 203, 61, 145, 6, 1, 233, 81,
- 230, 34, 145, 4, 1, 253, 167, 145, 4, 1, 251, 125, 145, 4, 1, 213, 253,
- 145, 4, 1, 242, 192, 145, 4, 1, 247, 148, 145, 4, 1, 211, 21, 145, 4, 1,
- 210, 68, 145, 4, 1, 246, 42, 145, 4, 1, 210, 91, 145, 4, 1, 235, 154,
- 145, 4, 1, 65, 235, 154, 145, 4, 1, 74, 145, 4, 1, 247, 168, 145, 4, 1,
- 234, 246, 145, 4, 1, 232, 192, 145, 4, 1, 230, 34, 145, 4, 1, 229, 196,
- 145, 4, 1, 226, 189, 145, 4, 1, 225, 7, 145, 4, 1, 222, 230, 145, 4, 1,
- 219, 85, 145, 4, 1, 215, 81, 145, 4, 1, 214, 201, 145, 4, 1, 243, 254,
- 145, 4, 1, 241, 206, 145, 4, 1, 226, 139, 145, 4, 1, 225, 224, 145, 4, 1,
- 219, 230, 145, 4, 1, 215, 168, 145, 4, 1, 250, 83, 145, 4, 1, 220, 104,
- 145, 4, 1, 211, 27, 145, 4, 1, 211, 29, 145, 4, 1, 211, 57, 145, 4, 1,
- 218, 255, 162, 145, 4, 1, 210, 212, 145, 4, 1, 4, 210, 183, 145, 4, 1, 4,
- 210, 184, 2, 217, 78, 145, 4, 1, 210, 244, 145, 4, 1, 235, 191, 4, 210,
- 183, 145, 4, 1, 252, 1, 210, 183, 145, 4, 1, 235, 191, 252, 1, 210, 183,
- 145, 4, 1, 244, 90, 145, 4, 1, 235, 152, 145, 4, 1, 219, 229, 145, 4, 1,
- 215, 203, 61, 145, 4, 1, 233, 81, 230, 34, 7, 6, 1, 233, 155, 2, 52, 130,
- 7, 4, 1, 233, 155, 2, 52, 130, 7, 6, 1, 233, 155, 2, 230, 229, 184, 7, 6,
- 1, 226, 110, 2, 91, 7, 6, 1, 223, 227, 2, 217, 78, 7, 4, 1, 116, 2, 91,
- 7, 4, 1, 217, 154, 2, 248, 7, 91, 7, 6, 1, 242, 68, 2, 248, 47, 7, 4, 1,
- 242, 68, 2, 248, 47, 7, 6, 1, 235, 30, 2, 248, 47, 7, 4, 1, 235, 30, 2,
- 248, 47, 7, 6, 1, 210, 160, 2, 248, 47, 7, 4, 1, 210, 160, 2, 248, 47, 7,
- 6, 1, 254, 151, 7, 6, 1, 232, 55, 2, 103, 7, 6, 1, 215, 94, 61, 7, 6, 1,
- 215, 94, 254, 151, 7, 4, 1, 214, 106, 2, 44, 103, 7, 6, 1, 212, 99, 2,
- 103, 7, 4, 1, 212, 99, 2, 103, 7, 4, 1, 214, 106, 2, 249, 108, 7, 6, 1,
- 163, 242, 67, 7, 4, 1, 163, 242, 67, 7, 4, 1, 217, 76, 225, 136, 7, 4, 1,
- 160, 2, 228, 55, 7, 4, 1, 215, 94, 223, 227, 2, 217, 78, 7, 4, 1, 144, 2,
- 121, 222, 237, 235, 222, 7, 1, 4, 6, 215, 94, 76, 7, 218, 66, 4, 1, 235,
- 150, 58, 1, 6, 214, 105, 7, 6, 1, 222, 94, 2, 217, 251, 217, 78, 7, 6, 1,
- 210, 160, 2, 217, 251, 217, 78, 81, 6, 1, 254, 173, 81, 4, 1, 254, 173,
- 81, 6, 1, 213, 173, 81, 4, 1, 213, 173, 81, 6, 1, 243, 114, 81, 4, 1,
- 243, 114, 81, 6, 1, 248, 199, 81, 4, 1, 248, 199, 81, 6, 1, 245, 202, 81,
- 4, 1, 245, 202, 81, 6, 1, 219, 35, 81, 4, 1, 219, 35, 81, 6, 1, 210, 101,
- 81, 4, 1, 210, 101, 81, 6, 1, 241, 255, 81, 4, 1, 241, 255, 81, 6, 1,
- 216, 178, 81, 4, 1, 216, 178, 81, 6, 1, 240, 123, 81, 4, 1, 240, 123, 81,
- 6, 1, 234, 233, 81, 4, 1, 234, 233, 81, 6, 1, 233, 78, 81, 4, 1, 233, 78,
- 81, 6, 1, 230, 235, 81, 4, 1, 230, 235, 81, 6, 1, 228, 238, 81, 4, 1,
- 228, 238, 81, 6, 1, 233, 239, 81, 4, 1, 233, 239, 81, 6, 1, 78, 81, 4, 1,
- 78, 81, 6, 1, 225, 111, 81, 4, 1, 225, 111, 81, 6, 1, 222, 213, 81, 4, 1,
- 222, 213, 81, 6, 1, 219, 167, 81, 4, 1, 219, 167, 81, 6, 1, 217, 42, 81,
- 4, 1, 217, 42, 81, 6, 1, 214, 229, 81, 4, 1, 214, 229, 81, 6, 1, 244,
- 129, 81, 4, 1, 244, 129, 81, 6, 1, 234, 118, 81, 4, 1, 234, 118, 81, 6,
- 1, 224, 164, 81, 4, 1, 224, 164, 81, 6, 1, 226, 182, 81, 4, 1, 226, 182,
- 81, 6, 1, 248, 5, 254, 179, 81, 4, 1, 248, 5, 254, 179, 81, 6, 1, 55, 81,
- 254, 205, 81, 4, 1, 55, 81, 254, 205, 81, 6, 1, 249, 123, 245, 202, 81,
- 4, 1, 249, 123, 245, 202, 81, 6, 1, 248, 5, 234, 233, 81, 4, 1, 248, 5,
- 234, 233, 81, 6, 1, 248, 5, 228, 238, 81, 4, 1, 248, 5, 228, 238, 81, 6,
- 1, 249, 123, 228, 238, 81, 4, 1, 249, 123, 228, 238, 81, 6, 1, 55, 81,
- 226, 182, 81, 4, 1, 55, 81, 226, 182, 81, 6, 1, 221, 248, 81, 4, 1, 221,
- 248, 81, 6, 1, 249, 136, 220, 57, 81, 4, 1, 249, 136, 220, 57, 81, 6, 1,
- 55, 81, 220, 57, 81, 4, 1, 55, 81, 220, 57, 81, 6, 1, 55, 81, 245, 83,
- 81, 4, 1, 55, 81, 245, 83, 81, 6, 1, 254, 191, 234, 123, 81, 4, 1, 254,
- 191, 234, 123, 81, 6, 1, 248, 5, 241, 52, 81, 4, 1, 248, 5, 241, 52, 81,
- 6, 1, 55, 81, 241, 52, 81, 4, 1, 55, 81, 241, 52, 81, 6, 1, 55, 81, 162,
- 81, 4, 1, 55, 81, 162, 81, 6, 1, 233, 154, 162, 81, 4, 1, 233, 154, 162,
- 81, 6, 1, 55, 81, 241, 224, 81, 4, 1, 55, 81, 241, 224, 81, 6, 1, 55, 81,
- 242, 2, 81, 4, 1, 55, 81, 242, 2, 81, 6, 1, 55, 81, 243, 109, 81, 4, 1,
- 55, 81, 243, 109, 81, 6, 1, 55, 81, 247, 171, 81, 4, 1, 55, 81, 247, 171,
- 81, 6, 1, 55, 81, 220, 24, 81, 4, 1, 55, 81, 220, 24, 81, 6, 1, 55, 227,
- 212, 220, 24, 81, 4, 1, 55, 227, 212, 220, 24, 81, 6, 1, 55, 227, 212,
- 229, 32, 81, 4, 1, 55, 227, 212, 229, 32, 81, 6, 1, 55, 227, 212, 227,
- 152, 81, 4, 1, 55, 227, 212, 227, 152, 81, 6, 1, 55, 227, 212, 212, 37,
- 81, 4, 1, 55, 227, 212, 212, 37, 81, 16, 234, 252, 81, 16, 230, 236, 222,
- 213, 81, 16, 225, 112, 222, 213, 81, 16, 218, 149, 81, 16, 217, 43, 222,
- 213, 81, 16, 234, 119, 222, 213, 81, 16, 220, 25, 219, 167, 81, 6, 1,
- 249, 123, 220, 57, 81, 4, 1, 249, 123, 220, 57, 81, 6, 1, 249, 123, 243,
- 109, 81, 4, 1, 249, 123, 243, 109, 81, 38, 228, 239, 48, 81, 38, 218,
- 249, 253, 232, 81, 38, 218, 249, 233, 27, 81, 6, 1, 251, 207, 234, 123,
- 81, 4, 1, 251, 207, 234, 123, 81, 55, 227, 212, 243, 236, 218, 131, 81,
- 55, 227, 212, 247, 205, 224, 16, 79, 81, 55, 227, 212, 235, 244, 224, 16,
- 79, 81, 55, 227, 212, 213, 241, 247, 180, 81, 244, 10, 123, 242, 34, 81,
- 243, 236, 218, 131, 81, 230, 129, 247, 180, 98, 4, 1, 254, 131, 98, 4, 1,
- 252, 160, 98, 4, 1, 243, 113, 98, 4, 1, 247, 136, 98, 4, 1, 245, 158, 98,
- 4, 1, 213, 160, 98, 4, 1, 210, 89, 98, 4, 1, 217, 61, 98, 4, 1, 236, 6,
- 98, 4, 1, 234, 240, 98, 4, 1, 233, 87, 98, 4, 1, 231, 190, 98, 4, 1, 229,
- 200, 98, 4, 1, 226, 200, 98, 4, 1, 226, 21, 98, 4, 1, 210, 78, 98, 4, 1,
- 223, 174, 98, 4, 1, 221, 245, 98, 4, 1, 217, 51, 98, 4, 1, 214, 190, 98,
- 4, 1, 225, 143, 98, 4, 1, 234, 127, 98, 4, 1, 242, 248, 98, 4, 1, 224,
- 76, 98, 4, 1, 220, 22, 98, 4, 1, 250, 105, 98, 4, 1, 251, 15, 98, 4, 1,
- 235, 106, 98, 4, 1, 250, 48, 98, 4, 1, 250, 151, 98, 4, 1, 211, 163, 98,
- 4, 1, 235, 117, 98, 4, 1, 242, 50, 98, 4, 1, 241, 245, 98, 4, 1, 241,
- 182, 98, 4, 1, 212, 22, 98, 4, 1, 242, 11, 98, 4, 1, 241, 72, 98, 4, 1,
- 210, 246, 98, 4, 1, 254, 241, 216, 109, 1, 192, 216, 109, 1, 211, 99,
- 216, 109, 1, 211, 98, 216, 109, 1, 211, 88, 216, 109, 1, 211, 86, 216,
- 109, 1, 252, 40, 255, 25, 211, 81, 216, 109, 1, 211, 81, 216, 109, 1,
- 211, 96, 216, 109, 1, 211, 93, 216, 109, 1, 211, 95, 216, 109, 1, 211,
- 94, 216, 109, 1, 211, 12, 216, 109, 1, 211, 90, 216, 109, 1, 211, 79,
- 216, 109, 1, 215, 116, 211, 79, 216, 109, 1, 211, 76, 216, 109, 1, 211,
- 84, 216, 109, 1, 252, 40, 255, 25, 211, 84, 216, 109, 1, 215, 116, 211,
- 84, 216, 109, 1, 211, 83, 216, 109, 1, 211, 103, 216, 109, 1, 211, 77,
- 216, 109, 1, 215, 116, 211, 77, 216, 109, 1, 211, 66, 216, 109, 1, 215,
- 116, 211, 66, 216, 109, 1, 211, 8, 216, 109, 1, 211, 49, 216, 109, 1,
- 254, 216, 211, 49, 216, 109, 1, 215, 116, 211, 49, 216, 109, 1, 211, 75,
- 216, 109, 1, 211, 74, 216, 109, 1, 211, 71, 216, 109, 1, 215, 116, 211,
- 85, 216, 109, 1, 215, 116, 211, 69, 216, 109, 1, 211, 67, 216, 109, 1,
- 210, 212, 216, 109, 1, 211, 64, 216, 109, 1, 211, 63, 216, 109, 1, 211,
- 87, 216, 109, 1, 215, 116, 211, 87, 216, 109, 1, 253, 171, 211, 87, 216,
- 109, 1, 211, 62, 216, 109, 1, 211, 60, 216, 109, 1, 211, 61, 216, 109, 1,
- 211, 59, 216, 109, 1, 211, 58, 216, 109, 1, 211, 97, 216, 109, 1, 211,
- 56, 216, 109, 1, 211, 54, 216, 109, 1, 211, 53, 216, 109, 1, 211, 52,
- 216, 109, 1, 211, 50, 216, 109, 1, 217, 35, 211, 50, 216, 109, 1, 211,
- 48, 216, 109, 1, 211, 47, 216, 109, 1, 210, 244, 216, 109, 58, 1, 233,
- 132, 79, 216, 109, 220, 140, 79, 216, 109, 117, 235, 69, 29, 3, 232, 161,
- 29, 3, 230, 165, 29, 3, 222, 211, 29, 3, 219, 59, 29, 3, 220, 8, 29, 3,
- 251, 212, 29, 3, 216, 42, 29, 3, 249, 245, 29, 3, 228, 77, 29, 3, 227,
- 137, 29, 3, 242, 187, 227, 4, 29, 3, 210, 22, 29, 3, 247, 151, 29, 3,
- 248, 112, 29, 3, 235, 73, 29, 3, 216, 156, 29, 3, 250, 93, 29, 3, 225,
- 123, 29, 3, 225, 18, 29, 3, 243, 6, 29, 3, 243, 2, 29, 3, 243, 3, 29, 3,
- 243, 4, 29, 3, 218, 225, 29, 3, 218, 181, 29, 3, 218, 194, 29, 3, 218,
- 224, 29, 3, 218, 198, 29, 3, 218, 199, 29, 3, 218, 186, 29, 3, 250, 221,
- 29, 3, 250, 200, 29, 3, 250, 202, 29, 3, 250, 220, 29, 3, 250, 218, 29,
- 3, 250, 219, 29, 3, 250, 201, 29, 3, 209, 243, 29, 3, 209, 221, 29, 3,
- 209, 234, 29, 3, 209, 242, 29, 3, 209, 237, 29, 3, 209, 238, 29, 3, 209,
- 226, 29, 3, 250, 216, 29, 3, 250, 203, 29, 3, 250, 205, 29, 3, 250, 215,
- 29, 3, 250, 213, 29, 3, 250, 214, 29, 3, 250, 204, 29, 3, 223, 239, 29,
- 3, 223, 229, 29, 3, 223, 235, 29, 3, 223, 238, 29, 3, 223, 236, 29, 3,
- 223, 237, 29, 3, 223, 234, 29, 3, 233, 165, 29, 3, 233, 157, 29, 3, 233,
- 160, 29, 3, 233, 164, 29, 3, 233, 161, 29, 3, 233, 162, 29, 3, 233, 158,
- 29, 3, 211, 130, 29, 3, 211, 120, 29, 3, 211, 126, 29, 3, 211, 129, 29,
- 3, 211, 127, 29, 3, 211, 128, 29, 3, 211, 125, 29, 3, 242, 78, 29, 3,
- 242, 69, 29, 3, 242, 72, 29, 3, 242, 77, 29, 3, 242, 74, 29, 3, 242, 75,
- 29, 3, 242, 71, 38, 33, 1, 252, 83, 38, 33, 1, 213, 255, 38, 33, 1, 242,
- 243, 38, 33, 1, 248, 98, 38, 33, 1, 210, 74, 38, 33, 1, 210, 94, 38, 33,
- 1, 176, 38, 33, 1, 245, 182, 38, 33, 1, 245, 167, 38, 33, 1, 245, 158,
- 38, 33, 1, 78, 38, 33, 1, 225, 224, 38, 33, 1, 245, 100, 38, 33, 1, 245,
- 90, 38, 33, 1, 217, 23, 38, 33, 1, 162, 38, 33, 1, 215, 179, 38, 33, 1,
- 250, 139, 38, 33, 1, 220, 104, 38, 33, 1, 220, 67, 38, 33, 1, 244, 90,
- 38, 33, 1, 245, 89, 38, 33, 1, 61, 38, 33, 1, 236, 67, 38, 33, 1, 247,
- 169, 38, 33, 1, 230, 145, 214, 205, 38, 33, 1, 211, 59, 38, 33, 1, 210,
- 212, 38, 33, 1, 235, 190, 61, 38, 33, 1, 232, 198, 210, 183, 38, 33, 1,
- 252, 1, 210, 183, 38, 33, 1, 235, 190, 252, 1, 210, 183, 44, 254, 118,
- 218, 61, 231, 159, 44, 254, 118, 246, 126, 218, 61, 231, 159, 43, 218,
- 61, 127, 44, 218, 61, 127, 43, 246, 126, 218, 61, 127, 44, 246, 126, 218,
- 61, 127, 223, 160, 235, 209, 231, 159, 223, 160, 246, 126, 235, 209, 231,
- 159, 246, 126, 215, 242, 231, 159, 43, 215, 242, 127, 44, 215, 242, 127,
- 223, 160, 218, 236, 43, 223, 160, 226, 202, 127, 44, 223, 160, 226, 202,
- 127, 245, 218, 249, 166, 226, 17, 244, 30, 226, 17, 223, 52, 244, 30,
- 226, 17, 240, 172, 246, 126, 226, 255, 246, 112, 254, 127, 214, 153, 254,
- 127, 246, 126, 222, 250, 254, 117, 52, 226, 252, 240, 175, 235, 200, 235,
- 208, 226, 63, 251, 162, 240, 176, 2, 248, 9, 216, 90, 2, 222, 237, 48,
- 43, 121, 226, 9, 127, 44, 121, 226, 9, 127, 216, 90, 2, 59, 48, 216, 90,
- 2, 59, 51, 43, 67, 252, 149, 2, 224, 10, 44, 67, 252, 149, 2, 224, 10,
- 216, 15, 43, 163, 127, 216, 15, 44, 163, 127, 251, 183, 43, 163, 127,
- 251, 183, 44, 163, 127, 43, 219, 189, 104, 127, 44, 219, 189, 104, 127,
- 43, 52, 226, 7, 44, 52, 226, 7, 113, 170, 115, 123, 59, 224, 143, 123,
- 59, 115, 113, 170, 224, 143, 92, 244, 19, 59, 224, 143, 244, 89, 59, 79,
- 223, 52, 224, 16, 79, 67, 184, 222, 237, 225, 13, 211, 209, 220, 140,
- 230, 229, 247, 128, 215, 94, 249, 227, 223, 160, 247, 128, 223, 160, 249,
- 227, 215, 94, 220, 152, 248, 214, 2, 43, 242, 115, 248, 214, 2, 44, 242,
- 115, 215, 94, 248, 213, 216, 15, 163, 221, 175, 50, 215, 59, 248, 164,
- 216, 144, 248, 164, 10, 34, 223, 79, 10, 34, 250, 18, 10, 34, 221, 178,
- 111, 10, 34, 221, 178, 105, 10, 34, 221, 178, 158, 10, 34, 225, 170, 10,
- 34, 251, 171, 10, 34, 217, 93, 10, 34, 234, 39, 111, 10, 34, 234, 39,
- 105, 10, 34, 247, 178, 10, 34, 221, 181, 10, 34, 4, 111, 10, 34, 4, 105,
- 10, 34, 233, 103, 111, 10, 34, 233, 103, 105, 10, 34, 233, 103, 158, 10,
- 34, 233, 103, 161, 10, 34, 219, 70, 10, 34, 216, 146, 10, 34, 219, 68,
- 111, 10, 34, 219, 68, 105, 10, 34, 241, 235, 111, 10, 34, 241, 235, 105,
- 10, 34, 242, 22, 10, 34, 223, 150, 10, 34, 250, 90, 10, 34, 218, 38, 10,
- 34, 230, 133, 10, 34, 248, 96, 10, 34, 230, 125, 10, 34, 250, 33, 10, 34,
- 212, 41, 111, 10, 34, 212, 41, 105, 10, 34, 244, 104, 10, 34, 225, 236,
- 111, 10, 34, 225, 236, 105, 10, 34, 219, 162, 163, 215, 237, 215, 189,
- 10, 34, 249, 153, 10, 34, 247, 144, 10, 34, 235, 143, 10, 34, 251, 206,
- 64, 250, 2, 10, 34, 245, 23, 10, 34, 218, 251, 111, 10, 34, 218, 251,
- 105, 10, 34, 252, 162, 10, 34, 219, 169, 10, 34, 251, 71, 219, 169, 10,
- 34, 229, 95, 111, 10, 34, 229, 95, 105, 10, 34, 229, 95, 158, 10, 34,
- 229, 95, 161, 10, 34, 231, 51, 10, 34, 220, 59, 10, 34, 223, 156, 10, 34,
- 245, 45, 10, 34, 226, 213, 10, 34, 251, 141, 111, 10, 34, 251, 141, 105,
- 10, 34, 231, 91, 10, 34, 230, 128, 10, 34, 242, 147, 111, 10, 34, 242,
- 147, 105, 10, 34, 242, 147, 158, 10, 34, 216, 107, 10, 34, 250, 1, 10,
- 34, 212, 9, 111, 10, 34, 212, 9, 105, 10, 34, 251, 71, 221, 172, 10, 34,
- 219, 162, 240, 255, 10, 34, 240, 255, 10, 34, 251, 71, 219, 4, 10, 34,
- 251, 71, 220, 54, 10, 34, 244, 40, 10, 34, 251, 71, 250, 236, 10, 34,
- 219, 162, 212, 57, 10, 34, 212, 58, 111, 10, 34, 212, 58, 105, 10, 34,
- 250, 35, 10, 34, 251, 71, 242, 173, 10, 34, 200, 111, 10, 34, 200, 105,
- 10, 34, 251, 71, 232, 143, 10, 34, 251, 71, 243, 95, 10, 34, 230, 124,
- 111, 10, 34, 230, 124, 105, 10, 34, 223, 162, 10, 34, 251, 215, 10, 34,
- 251, 71, 217, 57, 233, 58, 10, 34, 251, 71, 233, 59, 10, 34, 251, 71,
- 211, 239, 10, 34, 251, 71, 244, 54, 10, 34, 245, 226, 111, 10, 34, 245,
- 226, 105, 10, 34, 245, 226, 158, 10, 34, 251, 71, 245, 225, 10, 34, 241,
- 242, 10, 34, 251, 71, 240, 252, 10, 34, 251, 202, 10, 34, 242, 229, 10,
- 34, 251, 71, 244, 98, 10, 34, 251, 71, 251, 245, 10, 34, 251, 71, 222, 3,
- 10, 34, 219, 162, 212, 2, 10, 34, 219, 162, 211, 41, 10, 34, 251, 71,
- 243, 252, 10, 34, 235, 149, 245, 49, 10, 34, 251, 71, 245, 49, 10, 34,
- 235, 149, 216, 16, 10, 34, 251, 71, 216, 16, 10, 34, 235, 149, 246, 104,
- 10, 34, 251, 71, 246, 104, 10, 34, 215, 91, 10, 34, 235, 149, 215, 91,
- 10, 34, 251, 71, 215, 91, 60, 34, 111, 60, 34, 232, 219, 60, 34, 247,
- 128, 60, 34, 219, 97, 60, 34, 221, 177, 60, 34, 103, 60, 34, 105, 60, 34,
- 232, 243, 60, 34, 231, 190, 60, 34, 233, 39, 60, 34, 245, 137, 60, 34,
- 196, 60, 34, 124, 251, 171, 60, 34, 249, 155, 60, 34, 240, 118, 60, 34,
- 217, 93, 60, 34, 204, 251, 171, 60, 34, 234, 38, 60, 34, 224, 227, 60,
- 34, 211, 202, 60, 34, 218, 245, 60, 34, 44, 204, 251, 171, 60, 34, 241,
- 183, 245, 153, 60, 34, 216, 248, 60, 34, 247, 178, 60, 34, 221, 181, 60,
- 34, 250, 18, 60, 34, 224, 185, 60, 34, 254, 224, 60, 34, 230, 115, 60,
- 34, 245, 153, 60, 34, 245, 231, 60, 34, 221, 202, 60, 34, 242, 181, 60,
- 34, 242, 182, 219, 83, 60, 34, 245, 48, 60, 34, 252, 0, 60, 34, 211, 221,
- 60, 34, 250, 109, 60, 34, 222, 198, 60, 34, 236, 2, 60, 34, 219, 81, 60,
- 34, 233, 102, 60, 34, 249, 164, 60, 34, 218, 239, 60, 34, 230, 120, 60,
- 34, 222, 227, 60, 34, 211, 206, 60, 34, 226, 194, 60, 34, 215, 98, 60,
- 34, 246, 88, 60, 34, 219, 253, 216, 146, 60, 34, 246, 126, 250, 18, 60,
- 34, 200, 218, 110, 60, 34, 113, 242, 17, 60, 34, 220, 2, 60, 34, 251,
- 177, 60, 34, 219, 67, 60, 34, 251, 145, 60, 34, 218, 140, 60, 34, 241,
- 234, 60, 34, 242, 35, 60, 34, 247, 131, 60, 34, 242, 22, 60, 34, 251,
- 162, 60, 34, 223, 150, 60, 34, 221, 189, 60, 34, 247, 207, 60, 34, 253,
- 176, 60, 34, 218, 236, 60, 34, 228, 56, 60, 34, 218, 38, 60, 34, 221,
- 213, 60, 34, 230, 133, 60, 34, 215, 236, 60, 34, 233, 128, 60, 34, 218,
- 131, 60, 34, 248, 96, 60, 34, 212, 21, 60, 34, 247, 154, 228, 56, 60, 34,
- 249, 223, 60, 34, 243, 229, 60, 34, 250, 29, 60, 34, 218, 144, 60, 34,
- 212, 40, 60, 34, 244, 104, 60, 34, 250, 26, 60, 34, 244, 169, 60, 34, 52,
- 211, 178, 60, 34, 163, 215, 237, 215, 189, 60, 34, 219, 91, 60, 34, 244,
- 179, 60, 34, 249, 153, 60, 34, 247, 144, 60, 34, 224, 182, 60, 34, 235,
- 143, 60, 34, 231, 72, 60, 34, 216, 89, 60, 34, 217, 246, 60, 34, 232,
- 237, 60, 34, 214, 131, 60, 34, 244, 128, 60, 34, 251, 206, 64, 250, 2,
- 60, 34, 219, 190, 60, 34, 246, 126, 216, 243, 60, 34, 211, 253, 60, 34,
- 219, 105, 60, 34, 247, 195, 60, 34, 245, 23, 60, 34, 219, 7, 60, 34, 75,
- 60, 34, 218, 133, 60, 34, 218, 250, 60, 34, 216, 0, 60, 34, 242, 154, 60,
- 34, 250, 226, 60, 34, 218, 162, 60, 34, 252, 162, 60, 34, 223, 34, 60,
- 34, 219, 169, 60, 34, 235, 136, 60, 34, 229, 94, 60, 34, 220, 59, 60, 34,
- 244, 157, 60, 34, 226, 213, 60, 34, 254, 126, 60, 34, 225, 32, 60, 34,
- 245, 235, 60, 34, 251, 140, 60, 34, 231, 91, 60, 34, 230, 188, 60, 34,
- 220, 158, 60, 34, 254, 4, 60, 34, 230, 128, 60, 34, 216, 20, 60, 34, 226,
- 169, 60, 34, 251, 209, 60, 34, 218, 129, 60, 34, 249, 233, 60, 34, 242,
- 146, 60, 34, 216, 107, 60, 34, 235, 224, 60, 34, 251, 219, 60, 34, 212,
- 58, 245, 153, 60, 34, 250, 1, 60, 34, 212, 8, 60, 34, 221, 172, 60, 34,
- 240, 255, 60, 34, 219, 4, 60, 34, 214, 22, 60, 34, 252, 80, 60, 34, 225,
- 76, 60, 34, 252, 182, 60, 34, 220, 54, 60, 34, 223, 113, 60, 34, 222,
- 128, 60, 34, 244, 40, 60, 34, 251, 208, 60, 34, 250, 236, 60, 34, 251,
- 234, 60, 34, 230, 130, 60, 34, 212, 57, 60, 34, 250, 35, 60, 34, 211,
- 236, 60, 34, 247, 188, 60, 34, 213, 161, 60, 34, 242, 173, 60, 34, 232,
- 143, 60, 34, 243, 95, 60, 34, 230, 123, 60, 34, 219, 96, 60, 34, 219,
- 253, 217, 77, 251, 245, 60, 34, 223, 162, 60, 34, 251, 215, 60, 34, 211,
- 197, 60, 34, 244, 198, 60, 34, 233, 58, 60, 34, 217, 57, 233, 58, 60, 34,
- 233, 54, 60, 34, 219, 32, 60, 34, 233, 59, 60, 34, 211, 239, 60, 34, 244,
- 54, 60, 34, 245, 225, 60, 34, 241, 242, 60, 34, 244, 8, 60, 34, 240, 252,
- 60, 34, 251, 202, 60, 34, 217, 64, 60, 34, 242, 41, 60, 34, 244, 121, 60,
- 34, 222, 30, 211, 236, 60, 34, 250, 228, 60, 34, 242, 229, 60, 34, 244,
- 98, 60, 34, 251, 245, 60, 34, 222, 3, 60, 34, 248, 82, 60, 34, 212, 2,
- 60, 34, 241, 217, 60, 34, 211, 41, 60, 34, 230, 197, 60, 34, 251, 229,
- 60, 34, 245, 163, 60, 34, 243, 252, 60, 34, 215, 210, 60, 34, 246, 90,
- 60, 34, 223, 144, 60, 34, 228, 58, 60, 34, 245, 49, 60, 34, 216, 16, 60,
- 34, 246, 104, 60, 34, 215, 91, 60, 34, 244, 56, 110, 248, 45, 135, 43,
- 216, 43, 222, 254, 110, 248, 45, 135, 72, 216, 43, 51, 110, 248, 45, 135,
- 43, 216, 43, 230, 229, 22, 222, 254, 110, 248, 45, 135, 72, 216, 43, 230,
- 229, 22, 51, 110, 248, 45, 135, 243, 236, 218, 11, 110, 248, 45, 135,
- 218, 12, 243, 251, 48, 110, 248, 45, 135, 218, 12, 243, 251, 51, 110,
- 248, 45, 135, 218, 12, 243, 251, 233, 52, 110, 248, 45, 135, 218, 12,
- 243, 251, 214, 160, 233, 52, 110, 248, 45, 135, 218, 12, 243, 251, 214,
- 160, 222, 254, 110, 248, 45, 135, 218, 12, 243, 251, 232, 114, 233, 52,
- 110, 248, 45, 135, 226, 126, 110, 219, 20, 110, 249, 227, 110, 243, 236,
- 218, 131, 247, 185, 79, 235, 137, 235, 243, 218, 161, 87, 110, 235, 164,
- 79, 110, 250, 4, 79, 110, 54, 210, 86, 43, 254, 118, 127, 44, 254, 118,
- 127, 43, 52, 254, 118, 127, 44, 52, 254, 118, 127, 43, 249, 169, 127, 44,
- 249, 169, 127, 43, 71, 249, 169, 127, 44, 71, 249, 169, 127, 43, 85, 233,
- 26, 127, 44, 85, 233, 26, 127, 224, 240, 79, 243, 39, 79, 43, 216, 7,
- 220, 55, 127, 44, 216, 7, 220, 55, 127, 43, 71, 233, 26, 127, 44, 71,
- 233, 26, 127, 43, 71, 216, 7, 220, 55, 127, 44, 71, 216, 7, 220, 55, 127,
- 43, 71, 42, 127, 44, 71, 42, 127, 212, 36, 248, 164, 223, 52, 52, 224,
- 194, 224, 1, 79, 52, 224, 194, 224, 1, 79, 121, 52, 224, 194, 224, 1, 79,
- 224, 240, 164, 244, 198, 242, 15, 227, 202, 111, 242, 15, 227, 202, 105,
- 242, 15, 227, 202, 158, 242, 15, 227, 202, 161, 242, 15, 227, 202, 190,
- 242, 15, 227, 202, 195, 242, 15, 227, 202, 199, 242, 15, 227, 202, 196,
- 242, 15, 227, 202, 201, 110, 233, 9, 138, 79, 110, 222, 231, 138, 79,
- 110, 248, 52, 138, 79, 110, 245, 136, 138, 79, 24, 219, 157, 59, 138, 79,
- 24, 52, 59, 138, 79, 212, 32, 248, 164, 67, 234, 239, 223, 80, 79, 67,
- 234, 239, 223, 80, 2, 213, 135, 219, 33, 79, 67, 234, 239, 223, 80, 164,
- 214, 160, 242, 34, 67, 234, 239, 223, 80, 2, 213, 135, 219, 33, 164, 214,
- 160, 242, 34, 67, 234, 239, 223, 80, 164, 232, 114, 242, 34, 37, 224,
- 240, 79, 110, 217, 4, 232, 220, 244, 154, 220, 140, 87, 242, 15, 227,
- 202, 216, 248, 242, 15, 227, 202, 215, 73, 242, 15, 227, 202, 216, 163,
- 67, 110, 235, 164, 79, 231, 145, 79, 226, 3, 254, 148, 79, 110, 45, 235,
- 245, 110, 163, 244, 114, 219, 20, 141, 1, 4, 61, 141, 1, 61, 141, 1, 4,
- 74, 141, 1, 74, 141, 1, 4, 69, 141, 1, 69, 141, 1, 4, 76, 141, 1, 76,
- 141, 1, 4, 78, 141, 1, 78, 141, 1, 176, 141, 1, 243, 142, 141, 1, 234,
- 98, 141, 1, 242, 221, 141, 1, 233, 223, 141, 1, 242, 120, 141, 1, 234,
- 188, 141, 1, 243, 69, 141, 1, 234, 34, 141, 1, 242, 181, 141, 1, 206,
- 141, 1, 210, 116, 141, 1, 219, 193, 141, 1, 210, 44, 141, 1, 218, 84,
- 141, 1, 210, 13, 141, 1, 221, 183, 141, 1, 210, 94, 141, 1, 219, 60, 141,
- 1, 210, 23, 141, 1, 217, 106, 141, 1, 248, 229, 141, 1, 216, 118, 141, 1,
- 248, 11, 141, 1, 4, 215, 119, 141, 1, 215, 119, 141, 1, 246, 86, 141, 1,
- 217, 23, 141, 1, 248, 98, 141, 1, 112, 141, 1, 247, 153, 141, 1, 198,
- 141, 1, 228, 238, 141, 1, 227, 242, 141, 1, 229, 112, 141, 1, 228, 79,
- 141, 1, 162, 141, 1, 252, 199, 141, 1, 191, 141, 1, 241, 187, 141, 1,
- 252, 14, 141, 1, 225, 111, 141, 1, 240, 229, 141, 1, 251, 133, 141, 1,
- 224, 153, 141, 1, 241, 245, 141, 1, 252, 83, 141, 1, 225, 224, 141, 1,
- 241, 75, 141, 1, 251, 213, 141, 1, 225, 19, 141, 1, 186, 141, 1, 230,
- 235, 141, 1, 230, 107, 141, 1, 231, 96, 141, 1, 230, 166, 141, 1, 4, 192,
- 141, 1, 192, 141, 1, 4, 210, 212, 141, 1, 210, 212, 141, 1, 4, 210, 244,
- 141, 1, 210, 244, 141, 1, 205, 141, 1, 223, 38, 141, 1, 222, 142, 141, 1,
- 223, 131, 141, 1, 222, 213, 141, 1, 4, 212, 65, 141, 1, 212, 65, 141, 1,
- 211, 250, 141, 1, 212, 22, 141, 1, 211, 227, 141, 1, 230, 30, 141, 1,
- 212, 116, 141, 1, 4, 176, 141, 1, 4, 234, 188, 38, 234, 207, 213, 135,
- 219, 33, 79, 38, 234, 207, 220, 157, 219, 33, 79, 234, 207, 213, 135,
- 219, 33, 79, 234, 207, 220, 157, 219, 33, 79, 141, 235, 164, 79, 141,
- 213, 135, 235, 164, 79, 141, 247, 229, 210, 225, 234, 207, 52, 240, 175,
- 56, 1, 4, 61, 56, 1, 61, 56, 1, 4, 74, 56, 1, 74, 56, 1, 4, 69, 56, 1,
- 69, 56, 1, 4, 76, 56, 1, 76, 56, 1, 4, 78, 56, 1, 78, 56, 1, 176, 56, 1,
- 243, 142, 56, 1, 234, 98, 56, 1, 242, 221, 56, 1, 233, 223, 56, 1, 242,
- 120, 56, 1, 234, 188, 56, 1, 243, 69, 56, 1, 234, 34, 56, 1, 242, 181,
- 56, 1, 206, 56, 1, 210, 116, 56, 1, 219, 193, 56, 1, 210, 44, 56, 1, 218,
- 84, 56, 1, 210, 13, 56, 1, 221, 183, 56, 1, 210, 94, 56, 1, 219, 60, 56,
- 1, 210, 23, 56, 1, 217, 106, 56, 1, 248, 229, 56, 1, 216, 118, 56, 1,
- 248, 11, 56, 1, 4, 215, 119, 56, 1, 215, 119, 56, 1, 246, 86, 56, 1, 217,
- 23, 56, 1, 248, 98, 56, 1, 112, 56, 1, 247, 153, 56, 1, 198, 56, 1, 228,
- 238, 56, 1, 227, 242, 56, 1, 229, 112, 56, 1, 228, 79, 56, 1, 162, 56, 1,
- 252, 199, 56, 1, 191, 56, 1, 241, 187, 56, 1, 252, 14, 56, 1, 225, 111,
- 56, 1, 240, 229, 56, 1, 251, 133, 56, 1, 224, 153, 56, 1, 241, 245, 56,
- 1, 252, 83, 56, 1, 225, 224, 56, 1, 241, 75, 56, 1, 251, 213, 56, 1, 225,
- 19, 56, 1, 186, 56, 1, 230, 235, 56, 1, 230, 107, 56, 1, 231, 96, 56, 1,
- 230, 166, 56, 1, 4, 192, 56, 1, 192, 56, 1, 4, 210, 212, 56, 1, 210, 212,
- 56, 1, 4, 210, 244, 56, 1, 210, 244, 56, 1, 205, 56, 1, 223, 38, 56, 1,
- 222, 142, 56, 1, 223, 131, 56, 1, 222, 213, 56, 1, 4, 212, 65, 56, 1,
- 212, 65, 56, 1, 211, 250, 56, 1, 212, 22, 56, 1, 211, 227, 56, 1, 230,
- 30, 56, 1, 212, 116, 56, 1, 4, 176, 56, 1, 4, 234, 188, 56, 1, 214, 27,
- 56, 1, 213, 176, 56, 1, 213, 255, 56, 1, 213, 138, 56, 230, 229, 247,
- 128, 234, 207, 224, 176, 219, 33, 79, 56, 235, 164, 79, 56, 213, 135,
- 235, 164, 79, 56, 247, 229, 234, 5, 251, 192, 1, 253, 166, 251, 192, 1,
- 226, 109, 251, 192, 1, 194, 251, 192, 1, 245, 14, 251, 192, 1, 249, 68,
- 251, 192, 1, 217, 153, 251, 192, 1, 230, 30, 251, 192, 1, 156, 251, 192,
- 1, 243, 209, 251, 192, 1, 235, 29, 251, 192, 1, 242, 67, 251, 192, 1,
- 235, 150, 251, 192, 1, 224, 99, 251, 192, 1, 211, 178, 251, 192, 1, 210,
- 83, 251, 192, 1, 250, 166, 251, 192, 1, 220, 106, 251, 192, 1, 153, 251,
- 192, 1, 210, 159, 251, 192, 1, 251, 74, 251, 192, 1, 222, 93, 251, 192,
- 1, 61, 251, 192, 1, 78, 251, 192, 1, 76, 251, 192, 1, 245, 205, 251, 192,
- 1, 254, 210, 251, 192, 1, 245, 203, 251, 192, 1, 253, 200, 251, 192, 1,
- 226, 138, 251, 192, 1, 254, 131, 251, 192, 1, 245, 158, 251, 192, 1, 254,
- 123, 251, 192, 1, 245, 146, 251, 192, 1, 245, 100, 251, 192, 1, 74, 251,
- 192, 1, 69, 251, 192, 1, 235, 162, 251, 192, 1, 214, 105, 251, 192, 1,
- 229, 84, 251, 192, 1, 242, 185, 251, 192, 1, 236, 41, 24, 1, 234, 64, 24,
- 1, 218, 217, 24, 1, 234, 57, 24, 1, 228, 231, 24, 1, 228, 229, 24, 1,
- 228, 228, 24, 1, 216, 102, 24, 1, 218, 206, 24, 1, 223, 29, 24, 1, 223,
- 24, 24, 1, 223, 21, 24, 1, 223, 14, 24, 1, 223, 9, 24, 1, 223, 4, 24, 1,
- 223, 15, 24, 1, 223, 27, 24, 1, 230, 222, 24, 1, 225, 98, 24, 1, 218,
- 214, 24, 1, 225, 87, 24, 1, 219, 150, 24, 1, 218, 211, 24, 1, 236, 63,
- 24, 1, 250, 54, 24, 1, 218, 221, 24, 1, 250, 114, 24, 1, 234, 116, 24, 1,
- 216, 174, 24, 1, 225, 134, 24, 1, 241, 179, 24, 1, 61, 24, 1, 254, 252,
- 24, 1, 192, 24, 1, 211, 92, 24, 1, 245, 125, 24, 1, 76, 24, 1, 211, 36,
- 24, 1, 211, 47, 24, 1, 78, 24, 1, 212, 65, 24, 1, 212, 62, 24, 1, 226,
- 238, 24, 1, 210, 244, 24, 1, 69, 24, 1, 212, 11, 24, 1, 212, 22, 24, 1,
- 211, 250, 24, 1, 210, 212, 24, 1, 245, 63, 24, 1, 211, 8, 24, 1, 74, 24,
- 244, 111, 24, 1, 218, 215, 24, 1, 228, 221, 24, 1, 228, 223, 24, 1, 228,
- 226, 24, 1, 223, 22, 24, 1, 223, 3, 24, 1, 223, 11, 24, 1, 223, 16, 24,
- 1, 223, 1, 24, 1, 230, 215, 24, 1, 230, 212, 24, 1, 230, 216, 24, 1, 234,
- 227, 24, 1, 225, 93, 24, 1, 225, 79, 24, 1, 225, 85, 24, 1, 225, 82, 24,
- 1, 225, 96, 24, 1, 225, 80, 24, 1, 234, 225, 24, 1, 234, 223, 24, 1, 219,
- 143, 24, 1, 219, 141, 24, 1, 219, 133, 24, 1, 219, 138, 24, 1, 219, 148,
- 24, 1, 226, 36, 24, 1, 218, 218, 24, 1, 211, 26, 24, 1, 211, 22, 24, 1,
- 211, 23, 24, 1, 234, 226, 24, 1, 218, 219, 24, 1, 211, 32, 24, 1, 210,
- 238, 24, 1, 210, 237, 24, 1, 210, 240, 24, 1, 210, 203, 24, 1, 210, 204,
- 24, 1, 210, 207, 24, 1, 254, 42, 24, 1, 254, 36, 110, 254, 107, 232, 209,
- 79, 110, 254, 107, 223, 53, 79, 110, 254, 107, 123, 79, 110, 254, 107,
- 113, 79, 110, 254, 107, 134, 79, 110, 254, 107, 244, 19, 79, 110, 254,
- 107, 216, 15, 79, 110, 254, 107, 230, 229, 79, 110, 254, 107, 251, 183,
- 79, 110, 254, 107, 244, 100, 79, 110, 254, 107, 221, 178, 79, 110, 254,
- 107, 216, 170, 79, 110, 254, 107, 244, 12, 79, 110, 254, 107, 241, 231,
- 79, 110, 254, 107, 245, 232, 79, 110, 254, 107, 231, 191, 79, 251, 192,
- 1, 251, 133, 251, 192, 1, 210, 44, 251, 192, 1, 235, 114, 251, 192, 1,
- 242, 120, 251, 192, 1, 245, 217, 251, 192, 1, 245, 143, 251, 192, 1, 226,
- 187, 251, 192, 1, 226, 191, 251, 192, 1, 235, 186, 251, 192, 1, 254, 109,
- 251, 192, 1, 235, 231, 251, 192, 1, 214, 168, 251, 192, 1, 236, 23, 251,
- 192, 1, 229, 62, 251, 192, 1, 254, 204, 251, 192, 1, 253, 195, 251, 192,
- 1, 254, 144, 251, 192, 1, 226, 208, 251, 192, 1, 226, 193, 251, 192, 1,
- 235, 228, 251, 192, 40, 1, 226, 109, 251, 192, 40, 1, 217, 153, 251, 192,
- 40, 1, 235, 29, 251, 192, 40, 1, 242, 67, 251, 192, 1, 243, 1, 251, 192,
- 1, 233, 5, 251, 192, 1, 209, 250, 10, 218, 105, 217, 153, 10, 218, 105,
- 212, 4, 10, 218, 105, 211, 158, 10, 218, 105, 251, 87, 10, 218, 105, 217,
- 255, 10, 218, 105, 240, 165, 10, 218, 105, 240, 169, 10, 218, 105, 240,
- 238, 10, 218, 105, 240, 166, 10, 218, 105, 217, 156, 10, 218, 105, 240,
- 168, 10, 218, 105, 240, 164, 10, 218, 105, 240, 236, 10, 218, 105, 240,
- 167, 10, 218, 105, 240, 163, 10, 218, 105, 230, 30, 10, 218, 105, 242,
- 67, 10, 218, 105, 222, 93, 10, 218, 105, 226, 109, 10, 218, 105, 219, 23,
- 10, 218, 105, 249, 68, 10, 218, 105, 240, 170, 10, 218, 105, 241, 197,
- 10, 218, 105, 217, 165, 10, 218, 105, 217, 234, 10, 218, 105, 218, 170,
- 10, 218, 105, 220, 112, 10, 218, 105, 225, 228, 10, 218, 105, 224, 101,
- 10, 218, 105, 216, 44, 10, 218, 105, 217, 155, 10, 218, 105, 217, 245,
- 10, 218, 105, 240, 177, 10, 218, 105, 240, 162, 10, 218, 105, 225, 152,
- 10, 218, 105, 224, 99, 56, 1, 4, 233, 223, 56, 1, 4, 219, 193, 56, 1, 4,
- 218, 84, 56, 1, 4, 112, 56, 1, 4, 227, 242, 56, 1, 4, 162, 56, 1, 4, 241,
- 187, 56, 1, 4, 240, 229, 56, 1, 4, 241, 245, 56, 1, 4, 241, 75, 56, 1, 4,
- 230, 107, 56, 1, 4, 205, 56, 1, 4, 223, 38, 56, 1, 4, 222, 142, 56, 1, 4,
- 223, 131, 56, 1, 4, 222, 213, 88, 24, 234, 64, 88, 24, 228, 231, 88, 24,
- 216, 102, 88, 24, 223, 29, 88, 24, 230, 222, 88, 24, 225, 98, 88, 24,
- 219, 150, 88, 24, 236, 63, 88, 24, 250, 54, 88, 24, 250, 114, 88, 24,
- 234, 116, 88, 24, 216, 174, 88, 24, 225, 134, 88, 24, 241, 179, 88, 24,
- 234, 65, 61, 88, 24, 228, 232, 61, 88, 24, 216, 103, 61, 88, 24, 223, 30,
- 61, 88, 24, 230, 223, 61, 88, 24, 225, 99, 61, 88, 24, 219, 151, 61, 88,
- 24, 236, 64, 61, 88, 24, 250, 55, 61, 88, 24, 250, 115, 61, 88, 24, 234,
- 117, 61, 88, 24, 216, 175, 61, 88, 24, 225, 135, 61, 88, 24, 241, 180,
- 61, 88, 24, 250, 55, 69, 88, 234, 9, 135, 226, 221, 88, 234, 9, 135, 144,
- 240, 229, 88, 154, 111, 88, 154, 105, 88, 154, 158, 88, 154, 161, 88,
- 154, 190, 88, 154, 195, 88, 154, 199, 88, 154, 196, 88, 154, 201, 88,
- 154, 216, 248, 88, 154, 230, 133, 88, 154, 244, 104, 88, 154, 212, 40,
- 88, 154, 211, 214, 88, 154, 231, 44, 88, 154, 245, 231, 88, 154, 218, 38,
- 88, 154, 218, 134, 88, 154, 241, 251, 88, 154, 219, 56, 88, 154, 229,
- 209, 88, 154, 219, 6, 88, 154, 244, 110, 88, 154, 249, 208, 88, 154, 233,
- 131, 88, 154, 223, 74, 88, 154, 251, 23, 88, 154, 218, 88, 88, 154, 218,
- 21, 88, 154, 245, 135, 88, 154, 223, 66, 88, 154, 254, 159, 88, 154, 244,
- 136, 88, 154, 223, 64, 88, 154, 220, 158, 88, 154, 223, 130, 37, 154,
- 224, 15, 37, 154, 234, 86, 37, 154, 221, 200, 37, 154, 234, 5, 37, 54,
- 216, 249, 226, 201, 85, 218, 236, 37, 54, 215, 74, 226, 201, 85, 218,
- 236, 37, 54, 216, 164, 226, 201, 85, 218, 236, 37, 54, 244, 24, 226, 201,
- 85, 218, 236, 37, 54, 244, 123, 226, 201, 85, 218, 236, 37, 54, 219, 114,
- 226, 201, 85, 218, 236, 37, 54, 220, 119, 226, 201, 85, 218, 236, 37, 54,
- 245, 193, 226, 201, 85, 218, 236, 225, 255, 50, 37, 54, 215, 74, 111, 37,
- 54, 215, 74, 105, 37, 54, 215, 74, 158, 37, 54, 215, 74, 161, 37, 54,
- 215, 74, 190, 37, 54, 215, 74, 195, 37, 54, 215, 74, 199, 37, 54, 215,
- 74, 196, 37, 54, 215, 74, 201, 37, 54, 216, 163, 37, 54, 216, 164, 111,
- 37, 54, 216, 164, 105, 37, 54, 216, 164, 158, 37, 54, 216, 164, 161, 37,
- 54, 216, 164, 190, 37, 24, 234, 64, 37, 24, 228, 231, 37, 24, 216, 102,
- 37, 24, 223, 29, 37, 24, 230, 222, 37, 24, 225, 98, 37, 24, 219, 150, 37,
- 24, 236, 63, 37, 24, 250, 54, 37, 24, 250, 114, 37, 24, 234, 116, 37, 24,
- 216, 174, 37, 24, 225, 134, 37, 24, 241, 179, 37, 24, 234, 65, 61, 37,
- 24, 228, 232, 61, 37, 24, 216, 103, 61, 37, 24, 223, 30, 61, 37, 24, 230,
- 223, 61, 37, 24, 225, 99, 61, 37, 24, 219, 151, 61, 37, 24, 236, 64, 61,
- 37, 24, 250, 55, 61, 37, 24, 250, 115, 61, 37, 24, 234, 117, 61, 37, 24,
- 216, 175, 61, 37, 24, 225, 135, 61, 37, 24, 241, 180, 61, 37, 234, 9,
- 135, 250, 156, 37, 234, 9, 135, 235, 53, 37, 24, 236, 64, 69, 234, 9,
- 218, 161, 87, 37, 154, 111, 37, 154, 105, 37, 154, 158, 37, 154, 161, 37,
- 154, 190, 37, 154, 195, 37, 154, 199, 37, 154, 196, 37, 154, 201, 37,
- 154, 216, 248, 37, 154, 230, 133, 37, 154, 244, 104, 37, 154, 212, 40,
- 37, 154, 211, 214, 37, 154, 231, 44, 37, 154, 245, 231, 37, 154, 218, 38,
- 37, 154, 218, 134, 37, 154, 241, 251, 37, 154, 219, 56, 37, 154, 229,
- 209, 37, 154, 219, 6, 37, 154, 244, 110, 37, 154, 249, 208, 37, 154, 233,
- 131, 37, 154, 221, 176, 37, 154, 231, 194, 37, 154, 244, 145, 37, 154,
- 218, 50, 37, 154, 245, 42, 37, 154, 224, 190, 37, 154, 253, 204, 37, 154,
- 235, 165, 37, 154, 223, 64, 37, 154, 249, 172, 37, 154, 249, 163, 37,
- 154, 241, 172, 37, 154, 250, 182, 37, 154, 232, 116, 37, 154, 233, 52,
- 37, 154, 222, 254, 37, 154, 231, 88, 37, 154, 223, 90, 37, 154, 218, 88,
- 37, 154, 218, 21, 37, 154, 245, 135, 37, 154, 223, 66, 37, 154, 254, 159,
- 37, 154, 228, 217, 37, 54, 216, 164, 195, 37, 54, 216, 164, 199, 37, 54,
- 216, 164, 196, 37, 54, 216, 164, 201, 37, 54, 244, 23, 37, 54, 244, 24,
- 111, 37, 54, 244, 24, 105, 37, 54, 244, 24, 158, 37, 54, 244, 24, 161,
- 37, 54, 244, 24, 190, 37, 54, 244, 24, 195, 37, 54, 244, 24, 199, 37, 54,
- 244, 24, 196, 37, 54, 244, 24, 201, 37, 54, 244, 122, 110, 217, 4, 16,
- 31, 235, 139, 110, 217, 4, 16, 31, 244, 156, 110, 217, 4, 16, 31, 231,
- 165, 110, 217, 4, 16, 31, 254, 55, 110, 217, 4, 16, 31, 231, 137, 110,
- 217, 4, 16, 31, 235, 51, 110, 217, 4, 16, 31, 235, 52, 110, 217, 4, 16,
- 31, 253, 196, 110, 217, 4, 16, 31, 220, 138, 110, 217, 4, 16, 31, 226,
- 243, 110, 217, 4, 16, 31, 228, 45, 110, 217, 4, 16, 31, 248, 93, 42, 241,
- 197, 42, 245, 96, 42, 245, 51, 232, 225, 232, 246, 50, 37, 56, 61, 37,
- 56, 74, 37, 56, 69, 37, 56, 76, 37, 56, 78, 37, 56, 176, 37, 56, 234, 98,
- 37, 56, 233, 223, 37, 56, 234, 188, 37, 56, 234, 34, 37, 56, 206, 37, 56,
- 219, 193, 37, 56, 218, 84, 37, 56, 221, 183, 37, 56, 219, 60, 37, 56,
- 217, 106, 37, 56, 216, 118, 37, 56, 215, 119, 37, 56, 217, 23, 37, 56,
- 112, 37, 56, 198, 37, 56, 228, 238, 37, 56, 227, 242, 37, 56, 229, 112,
- 37, 56, 228, 79, 37, 56, 162, 37, 56, 241, 187, 37, 56, 240, 229, 37, 56,
- 241, 245, 37, 56, 241, 75, 37, 56, 186, 37, 56, 230, 235, 37, 56, 230,
- 107, 37, 56, 231, 96, 37, 56, 230, 166, 37, 56, 192, 37, 56, 210, 212,
- 37, 56, 210, 244, 37, 56, 205, 37, 56, 223, 38, 37, 56, 222, 142, 37, 56,
- 223, 131, 37, 56, 222, 213, 37, 56, 212, 65, 37, 56, 211, 250, 37, 56,
- 212, 22, 37, 56, 211, 227, 42, 254, 79, 42, 253, 247, 42, 254, 103, 42,
- 255, 40, 42, 235, 233, 42, 235, 203, 42, 214, 166, 42, 245, 74, 42, 245,
- 214, 42, 226, 190, 42, 226, 184, 42, 234, 251, 42, 234, 220, 42, 234,
- 217, 42, 243, 99, 42, 243, 108, 42, 242, 211, 42, 242, 207, 42, 233, 156,
- 42, 242, 200, 42, 234, 78, 42, 234, 77, 42, 234, 76, 42, 234, 75, 42,
- 242, 93, 42, 242, 92, 42, 233, 199, 42, 233, 201, 42, 234, 184, 42, 234,
- 7, 42, 234, 14, 42, 222, 18, 42, 221, 239, 42, 219, 131, 42, 220, 143,
- 42, 220, 142, 42, 248, 226, 42, 248, 44, 42, 247, 129, 42, 216, 33, 42,
- 229, 205, 42, 228, 46, 42, 242, 39, 42, 226, 88, 42, 226, 87, 42, 252,
- 196, 42, 225, 108, 42, 225, 72, 42, 225, 73, 42, 251, 242, 42, 240, 228,
- 42, 240, 224, 42, 251, 99, 42, 240, 211, 42, 241, 222, 42, 225, 162, 42,
- 225, 197, 42, 241, 205, 42, 225, 194, 42, 225, 210, 42, 252, 69, 42, 225,
- 9, 42, 251, 188, 42, 241, 63, 42, 224, 253, 42, 241, 55, 42, 241, 57, 42,
- 231, 206, 42, 231, 202, 42, 231, 211, 42, 231, 155, 42, 231, 180, 42,
- 230, 202, 42, 230, 181, 42, 230, 180, 42, 231, 79, 42, 231, 76, 42, 231,
- 80, 42, 211, 102, 42, 211, 100, 42, 210, 201, 42, 222, 229, 42, 222, 233,
- 42, 222, 119, 42, 222, 113, 42, 223, 88, 42, 223, 85, 42, 212, 38, 110,
- 217, 4, 16, 31, 240, 246, 210, 86, 110, 217, 4, 16, 31, 240, 246, 111,
- 110, 217, 4, 16, 31, 240, 246, 105, 110, 217, 4, 16, 31, 240, 246, 158,
- 110, 217, 4, 16, 31, 240, 246, 161, 110, 217, 4, 16, 31, 240, 246, 190,
- 110, 217, 4, 16, 31, 240, 246, 195, 110, 217, 4, 16, 31, 240, 246, 199,
- 110, 217, 4, 16, 31, 240, 246, 196, 110, 217, 4, 16, 31, 240, 246, 201,
- 110, 217, 4, 16, 31, 240, 246, 216, 248, 110, 217, 4, 16, 31, 240, 246,
- 245, 175, 110, 217, 4, 16, 31, 240, 246, 215, 76, 110, 217, 4, 16, 31,
- 240, 246, 216, 165, 110, 217, 4, 16, 31, 240, 246, 244, 13, 110, 217, 4,
- 16, 31, 240, 246, 244, 126, 110, 217, 4, 16, 31, 240, 246, 219, 121, 110,
- 217, 4, 16, 31, 240, 246, 220, 121, 110, 217, 4, 16, 31, 240, 246, 245,
- 198, 110, 217, 4, 16, 31, 240, 246, 228, 202, 110, 217, 4, 16, 31, 240,
- 246, 215, 73, 110, 217, 4, 16, 31, 240, 246, 215, 67, 110, 217, 4, 16,
- 31, 240, 246, 215, 63, 110, 217, 4, 16, 31, 240, 246, 215, 64, 110, 217,
- 4, 16, 31, 240, 246, 215, 69, 42, 240, 237, 42, 248, 229, 42, 253, 200,
- 42, 130, 42, 226, 129, 42, 225, 229, 42, 247, 155, 42, 247, 156, 218,
- 235, 42, 247, 156, 249, 116, 42, 235, 162, 42, 245, 99, 229, 210, 241,
- 223, 42, 245, 99, 229, 210, 217, 175, 42, 245, 99, 229, 210, 217, 75, 42,
- 245, 99, 229, 210, 231, 75, 42, 249, 165, 42, 226, 94, 254, 133, 42, 198,
- 42, 230, 108, 61, 42, 186, 42, 176, 42, 234, 191, 42, 231, 134, 42, 243,
- 87, 42, 251, 26, 42, 234, 190, 42, 225, 153, 42, 229, 86, 42, 230, 108,
- 245, 14, 42, 230, 108, 243, 209, 42, 231, 20, 42, 234, 140, 42, 240, 170,
- 42, 234, 100, 42, 230, 237, 42, 242, 223, 42, 216, 120, 42, 230, 108,
- 156, 42, 230, 174, 42, 247, 165, 42, 234, 46, 42, 244, 53, 42, 228, 117,
- 42, 230, 108, 194, 42, 230, 171, 42, 249, 247, 42, 234, 40, 42, 230, 172,
- 218, 235, 42, 249, 248, 218, 235, 42, 232, 55, 218, 235, 42, 234, 41,
- 218, 235, 42, 230, 172, 249, 116, 42, 249, 248, 249, 116, 42, 232, 55,
- 249, 116, 42, 234, 41, 249, 116, 42, 232, 55, 115, 222, 93, 42, 232, 55,
- 115, 222, 94, 218, 235, 42, 191, 42, 234, 1, 42, 230, 110, 42, 242, 158,
- 42, 223, 179, 42, 223, 180, 115, 222, 93, 42, 223, 180, 115, 222, 94,
- 218, 235, 42, 224, 165, 42, 228, 18, 42, 230, 108, 222, 93, 42, 230, 109,
- 42, 224, 119, 42, 227, 180, 42, 230, 108, 214, 105, 42, 230, 54, 42, 233,
- 191, 42, 230, 55, 231, 79, 42, 224, 118, 42, 227, 179, 42, 230, 108, 212,
- 98, 42, 230, 48, 42, 233, 189, 42, 230, 49, 231, 79, 42, 235, 30, 226,
- 224, 42, 232, 55, 226, 224, 42, 254, 144, 42, 251, 168, 42, 250, 222, 42,
- 250, 199, 42, 251, 75, 115, 234, 140, 42, 249, 246, 42, 248, 150, 42,
- 242, 79, 42, 162, 42, 240, 238, 42, 236, 6, 42, 234, 53, 42, 234, 41,
- 251, 2, 42, 233, 225, 42, 232, 165, 42, 232, 164, 42, 232, 153, 42, 232,
- 68, 42, 231, 135, 219, 81, 42, 230, 201, 42, 230, 157, 42, 225, 151, 42,
- 225, 22, 42, 224, 222, 42, 224, 220, 42, 218, 229, 42, 218, 3, 42, 212,
- 24, 42, 214, 106, 115, 194, 42, 116, 115, 194, 110, 217, 4, 16, 31, 248,
- 154, 111, 110, 217, 4, 16, 31, 248, 154, 105, 110, 217, 4, 16, 31, 248,
- 154, 158, 110, 217, 4, 16, 31, 248, 154, 161, 110, 217, 4, 16, 31, 248,
- 154, 190, 110, 217, 4, 16, 31, 248, 154, 195, 110, 217, 4, 16, 31, 248,
- 154, 199, 110, 217, 4, 16, 31, 248, 154, 196, 110, 217, 4, 16, 31, 248,
- 154, 201, 110, 217, 4, 16, 31, 248, 154, 216, 248, 110, 217, 4, 16, 31,
- 248, 154, 245, 175, 110, 217, 4, 16, 31, 248, 154, 215, 76, 110, 217, 4,
- 16, 31, 248, 154, 216, 165, 110, 217, 4, 16, 31, 248, 154, 244, 13, 110,
- 217, 4, 16, 31, 248, 154, 244, 126, 110, 217, 4, 16, 31, 248, 154, 219,
- 121, 110, 217, 4, 16, 31, 248, 154, 220, 121, 110, 217, 4, 16, 31, 248,
- 154, 245, 198, 110, 217, 4, 16, 31, 248, 154, 228, 202, 110, 217, 4, 16,
- 31, 248, 154, 215, 73, 110, 217, 4, 16, 31, 248, 154, 215, 67, 110, 217,
- 4, 16, 31, 248, 154, 215, 63, 110, 217, 4, 16, 31, 248, 154, 215, 64,
- 110, 217, 4, 16, 31, 248, 154, 215, 69, 110, 217, 4, 16, 31, 248, 154,
- 215, 70, 110, 217, 4, 16, 31, 248, 154, 215, 65, 110, 217, 4, 16, 31,
- 248, 154, 215, 66, 110, 217, 4, 16, 31, 248, 154, 215, 72, 110, 217, 4,
- 16, 31, 248, 154, 215, 68, 110, 217, 4, 16, 31, 248, 154, 216, 163, 110,
- 217, 4, 16, 31, 248, 154, 216, 162, 42, 243, 125, 241, 199, 31, 216, 197,
- 249, 148, 241, 230, 241, 199, 31, 216, 197, 223, 125, 245, 231, 241, 199,
- 31, 247, 239, 253, 215, 216, 197, 252, 64, 241, 199, 31, 210, 223, 244,
- 46, 241, 199, 31, 212, 59, 241, 199, 31, 249, 211, 241, 199, 31, 216,
- 197, 254, 11, 241, 199, 31, 241, 67, 216, 39, 241, 199, 31, 4, 217, 62,
- 241, 199, 31, 215, 238, 241, 199, 31, 225, 222, 241, 199, 31, 218, 160,
- 241, 199, 31, 244, 147, 241, 199, 31, 242, 139, 224, 243, 241, 199, 31,
- 230, 160, 241, 199, 31, 245, 134, 241, 199, 31, 244, 47, 241, 199, 31,
- 211, 207, 226, 201, 216, 197, 248, 94, 241, 199, 31, 254, 59, 241, 199,
- 31, 249, 193, 241, 199, 31, 251, 235, 216, 139, 241, 199, 31, 242, 156,
- 241, 199, 31, 218, 247, 254, 78, 241, 199, 31, 223, 56, 241, 199, 31,
- 235, 227, 241, 199, 31, 242, 139, 217, 62, 241, 199, 31, 230, 116, 249,
- 167, 241, 199, 31, 242, 139, 224, 200, 241, 199, 31, 216, 197, 255, 27,
- 212, 40, 241, 199, 31, 216, 197, 250, 16, 244, 104, 241, 199, 31, 235,
- 240, 241, 199, 31, 246, 65, 241, 199, 31, 223, 59, 241, 199, 31, 242,
- 139, 224, 227, 241, 199, 31, 224, 180, 241, 199, 31, 248, 169, 64, 216,
- 197, 232, 236, 241, 199, 31, 216, 197, 244, 182, 241, 199, 31, 226, 167,
- 241, 199, 31, 226, 248, 241, 199, 31, 248, 67, 241, 199, 31, 248, 87,
- 241, 199, 31, 235, 254, 241, 199, 31, 251, 157, 241, 199, 31, 249, 229,
- 216, 43, 231, 81, 241, 199, 31, 243, 94, 216, 39, 241, 199, 31, 224, 128,
- 214, 154, 241, 199, 31, 226, 166, 241, 199, 31, 216, 197, 212, 13, 241,
- 199, 31, 223, 48, 241, 199, 31, 216, 197, 250, 228, 241, 199, 31, 216,
- 197, 254, 7, 216, 134, 241, 199, 31, 216, 197, 234, 185, 218, 136, 230,
- 120, 241, 199, 31, 248, 40, 241, 199, 31, 216, 197, 231, 157, 231, 207,
- 241, 199, 31, 255, 28, 241, 199, 31, 216, 197, 212, 54, 241, 199, 31,
- 216, 197, 243, 54, 211, 239, 241, 199, 31, 216, 197, 235, 58, 233, 113,
- 241, 199, 31, 247, 192, 241, 199, 31, 232, 226, 241, 199, 31, 235, 230,
- 215, 188, 241, 199, 31, 4, 224, 200, 241, 199, 31, 254, 226, 249, 220,
- 241, 199, 31, 252, 67, 249, 220, 8, 3, 235, 166, 8, 3, 235, 159, 8, 3,
- 74, 8, 3, 235, 189, 8, 3, 236, 65, 8, 3, 236, 48, 8, 3, 236, 67, 8, 3,
- 236, 66, 8, 3, 253, 214, 8, 3, 253, 177, 8, 3, 61, 8, 3, 254, 80, 8, 3,
- 214, 164, 8, 3, 214, 167, 8, 3, 214, 165, 8, 3, 226, 144, 8, 3, 226, 118,
- 8, 3, 78, 8, 3, 226, 179, 8, 3, 245, 43, 8, 3, 76, 8, 3, 211, 195, 8, 3,
- 251, 236, 8, 3, 251, 233, 8, 3, 252, 14, 8, 3, 251, 246, 8, 3, 252, 3, 8,
- 3, 252, 2, 8, 3, 252, 5, 8, 3, 252, 4, 8, 3, 252, 129, 8, 3, 252, 121, 8,
- 3, 252, 199, 8, 3, 252, 150, 8, 3, 251, 109, 8, 3, 251, 113, 8, 3, 251,
- 110, 8, 3, 251, 187, 8, 3, 251, 171, 8, 3, 251, 213, 8, 3, 251, 193, 8,
- 3, 252, 29, 8, 3, 252, 83, 8, 3, 252, 41, 8, 3, 251, 95, 8, 3, 251, 92,
- 8, 3, 251, 133, 8, 3, 251, 108, 8, 3, 251, 102, 8, 3, 251, 106, 8, 3,
- 251, 80, 8, 3, 251, 78, 8, 3, 251, 85, 8, 3, 251, 83, 8, 3, 251, 81, 8,
- 3, 251, 82, 8, 3, 225, 52, 8, 3, 225, 48, 8, 3, 225, 111, 8, 3, 225, 62,
- 8, 3, 225, 78, 8, 3, 225, 105, 8, 3, 225, 101, 8, 3, 225, 244, 8, 3, 225,
- 234, 8, 3, 191, 8, 3, 226, 25, 8, 3, 224, 138, 8, 3, 224, 140, 8, 3, 224,
- 139, 8, 3, 224, 236, 8, 3, 224, 225, 8, 3, 225, 19, 8, 3, 224, 248, 8, 3,
- 224, 124, 8, 3, 224, 120, 8, 3, 224, 153, 8, 3, 224, 137, 8, 3, 224, 129,
- 8, 3, 224, 135, 8, 3, 224, 103, 8, 3, 224, 102, 8, 3, 224, 107, 8, 3,
- 224, 106, 8, 3, 224, 104, 8, 3, 224, 105, 8, 3, 252, 104, 8, 3, 252, 103,
- 8, 3, 252, 110, 8, 3, 252, 105, 8, 3, 252, 107, 8, 3, 252, 106, 8, 3,
- 252, 109, 8, 3, 252, 108, 8, 3, 252, 116, 8, 3, 252, 115, 8, 3, 252, 119,
- 8, 3, 252, 117, 8, 3, 252, 95, 8, 3, 252, 97, 8, 3, 252, 96, 8, 3, 252,
- 100, 8, 3, 252, 99, 8, 3, 252, 102, 8, 3, 252, 101, 8, 3, 252, 111, 8, 3,
- 252, 114, 8, 3, 252, 112, 8, 3, 252, 91, 8, 3, 252, 90, 8, 3, 252, 98, 8,
- 3, 252, 94, 8, 3, 252, 92, 8, 3, 252, 93, 8, 3, 252, 87, 8, 3, 252, 86,
- 8, 3, 252, 89, 8, 3, 252, 88, 8, 3, 229, 174, 8, 3, 229, 173, 8, 3, 229,
- 179, 8, 3, 229, 175, 8, 3, 229, 176, 8, 3, 229, 178, 8, 3, 229, 177, 8,
- 3, 229, 182, 8, 3, 229, 181, 8, 3, 229, 184, 8, 3, 229, 183, 8, 3, 229,
- 170, 8, 3, 229, 169, 8, 3, 229, 172, 8, 3, 229, 171, 8, 3, 229, 163, 8,
- 3, 229, 162, 8, 3, 229, 167, 8, 3, 229, 166, 8, 3, 229, 164, 8, 3, 229,
- 165, 8, 3, 229, 157, 8, 3, 229, 156, 8, 3, 229, 161, 8, 3, 229, 160, 8,
- 3, 229, 158, 8, 3, 229, 159, 8, 3, 241, 117, 8, 3, 241, 116, 8, 3, 241,
- 122, 8, 3, 241, 118, 8, 3, 241, 119, 8, 3, 241, 121, 8, 3, 241, 120, 8,
- 3, 241, 125, 8, 3, 241, 124, 8, 3, 241, 127, 8, 3, 241, 126, 8, 3, 241,
- 108, 8, 3, 241, 110, 8, 3, 241, 109, 8, 3, 241, 113, 8, 3, 241, 112, 8,
- 3, 241, 115, 8, 3, 241, 114, 8, 3, 241, 104, 8, 3, 241, 103, 8, 3, 241,
- 111, 8, 3, 241, 107, 8, 3, 241, 105, 8, 3, 241, 106, 8, 3, 241, 98, 8, 3,
- 241, 102, 8, 3, 241, 101, 8, 3, 241, 99, 8, 3, 241, 100, 8, 3, 230, 177,
- 8, 3, 230, 176, 8, 3, 230, 235, 8, 3, 230, 183, 8, 3, 230, 208, 8, 3,
- 230, 226, 8, 3, 230, 224, 8, 3, 231, 144, 8, 3, 231, 139, 8, 3, 186, 8,
- 3, 231, 177, 8, 3, 230, 79, 8, 3, 230, 78, 8, 3, 230, 82, 8, 3, 230, 80,
- 8, 3, 230, 126, 8, 3, 230, 112, 8, 3, 230, 166, 8, 3, 230, 131, 8, 3,
- 231, 31, 8, 3, 231, 96, 8, 3, 230, 60, 8, 3, 230, 56, 8, 3, 230, 107, 8,
- 3, 230, 75, 8, 3, 230, 68, 8, 3, 230, 73, 8, 3, 230, 33, 8, 3, 230, 32,
- 8, 3, 230, 38, 8, 3, 230, 35, 8, 3, 244, 91, 8, 3, 244, 86, 8, 3, 244,
- 129, 8, 3, 244, 106, 8, 3, 244, 175, 8, 3, 244, 166, 8, 3, 244, 204, 8,
- 3, 244, 178, 8, 3, 244, 11, 8, 3, 244, 51, 8, 3, 244, 35, 8, 3, 243, 225,
- 8, 3, 243, 224, 8, 3, 243, 241, 8, 3, 243, 230, 8, 3, 243, 228, 8, 3,
- 243, 229, 8, 3, 243, 212, 8, 3, 243, 211, 8, 3, 243, 215, 8, 3, 243, 213,
- 8, 3, 213, 144, 8, 3, 213, 139, 8, 3, 213, 176, 8, 3, 213, 153, 8, 3,
- 213, 166, 8, 3, 213, 163, 8, 3, 213, 168, 8, 3, 213, 167, 8, 3, 214, 7,
- 8, 3, 214, 2, 8, 3, 214, 27, 8, 3, 214, 18, 8, 3, 213, 125, 8, 3, 213,
- 121, 8, 3, 213, 138, 8, 3, 213, 126, 8, 3, 213, 178, 8, 3, 213, 244, 8,
- 3, 212, 110, 8, 3, 212, 108, 8, 3, 212, 116, 8, 3, 212, 113, 8, 3, 212,
- 111, 8, 3, 212, 112, 8, 3, 212, 102, 8, 3, 212, 101, 8, 3, 212, 106, 8,
- 3, 212, 105, 8, 3, 212, 103, 8, 3, 212, 104, 8, 3, 247, 186, 8, 3, 247,
- 174, 8, 3, 248, 11, 8, 3, 247, 211, 8, 3, 247, 244, 8, 3, 247, 248, 8, 3,
- 247, 247, 8, 3, 248, 160, 8, 3, 248, 155, 8, 3, 248, 229, 8, 3, 248, 180,
- 8, 3, 246, 70, 8, 3, 246, 71, 8, 3, 247, 128, 8, 3, 246, 110, 8, 3, 247,
- 153, 8, 3, 247, 130, 8, 3, 248, 38, 8, 3, 248, 98, 8, 3, 248, 53, 8, 3,
- 246, 61, 8, 3, 246, 59, 8, 3, 246, 86, 8, 3, 246, 69, 8, 3, 246, 64, 8,
- 3, 246, 67, 8, 3, 216, 68, 8, 3, 216, 62, 8, 3, 216, 118, 8, 3, 216, 77,
- 8, 3, 216, 110, 8, 3, 216, 112, 8, 3, 216, 111, 8, 3, 217, 47, 8, 3, 217,
- 34, 8, 3, 217, 106, 8, 3, 217, 55, 8, 3, 215, 103, 8, 3, 215, 102, 8, 3,
- 215, 105, 8, 3, 215, 104, 8, 3, 216, 6, 8, 3, 216, 2, 8, 3, 112, 8, 3,
- 216, 14, 8, 3, 216, 214, 8, 3, 217, 23, 8, 3, 216, 238, 8, 3, 215, 88, 8,
- 3, 215, 83, 8, 3, 215, 119, 8, 3, 215, 101, 8, 3, 215, 89, 8, 3, 215, 99,
- 8, 3, 248, 115, 8, 3, 248, 114, 8, 3, 248, 120, 8, 3, 248, 116, 8, 3,
- 248, 117, 8, 3, 248, 119, 8, 3, 248, 118, 8, 3, 248, 136, 8, 3, 248, 135,
- 8, 3, 248, 143, 8, 3, 248, 137, 8, 3, 248, 105, 8, 3, 248, 107, 8, 3,
- 248, 106, 8, 3, 248, 110, 8, 3, 248, 109, 8, 3, 248, 113, 8, 3, 248, 111,
- 8, 3, 248, 128, 8, 3, 248, 131, 8, 3, 248, 129, 8, 3, 248, 101, 8, 3,
- 248, 100, 8, 3, 248, 108, 8, 3, 248, 104, 8, 3, 248, 102, 8, 3, 248, 103,
- 8, 3, 229, 131, 8, 3, 229, 130, 8, 3, 229, 138, 8, 3, 229, 133, 8, 3,
- 229, 134, 8, 3, 229, 135, 8, 3, 229, 147, 8, 3, 229, 146, 8, 3, 229, 153,
- 8, 3, 229, 148, 8, 3, 229, 123, 8, 3, 229, 122, 8, 3, 229, 129, 8, 3,
- 229, 124, 8, 3, 229, 139, 8, 3, 229, 145, 8, 3, 229, 143, 8, 3, 229, 115,
- 8, 3, 229, 114, 8, 3, 229, 120, 8, 3, 229, 118, 8, 3, 229, 116, 8, 3,
- 229, 117, 8, 3, 241, 84, 8, 3, 241, 83, 8, 3, 241, 90, 8, 3, 241, 85, 8,
- 3, 241, 87, 8, 3, 241, 86, 8, 3, 241, 89, 8, 3, 241, 88, 8, 3, 241, 95,
- 8, 3, 241, 94, 8, 3, 241, 97, 8, 3, 241, 96, 8, 3, 241, 78, 8, 3, 241,
- 79, 8, 3, 241, 81, 8, 3, 241, 80, 8, 3, 241, 82, 8, 3, 241, 91, 8, 3,
- 241, 93, 8, 3, 241, 92, 8, 3, 241, 77, 8, 3, 228, 194, 8, 3, 228, 192, 8,
- 3, 228, 238, 8, 3, 228, 197, 8, 3, 228, 220, 8, 3, 228, 234, 8, 3, 228,
- 233, 8, 3, 229, 188, 8, 3, 198, 8, 3, 229, 202, 8, 3, 227, 190, 8, 3,
- 227, 192, 8, 3, 227, 191, 8, 3, 228, 56, 8, 3, 228, 43, 8, 3, 228, 79, 8,
- 3, 228, 65, 8, 3, 229, 88, 8, 3, 229, 112, 8, 3, 229, 99, 8, 3, 227, 185,
- 8, 3, 227, 181, 8, 3, 227, 242, 8, 3, 227, 189, 8, 3, 227, 187, 8, 3,
- 227, 188, 8, 3, 241, 148, 8, 3, 241, 147, 8, 3, 241, 153, 8, 3, 241, 149,
- 8, 3, 241, 150, 8, 3, 241, 152, 8, 3, 241, 151, 8, 3, 241, 158, 8, 3,
- 241, 157, 8, 3, 241, 160, 8, 3, 241, 159, 8, 3, 241, 140, 8, 3, 241, 142,
- 8, 3, 241, 141, 8, 3, 241, 144, 8, 3, 241, 146, 8, 3, 241, 145, 8, 3,
- 241, 154, 8, 3, 241, 156, 8, 3, 241, 155, 8, 3, 241, 136, 8, 3, 241, 135,
- 8, 3, 241, 143, 8, 3, 241, 139, 8, 3, 241, 137, 8, 3, 241, 138, 8, 3,
- 241, 130, 8, 3, 241, 129, 8, 3, 241, 134, 8, 3, 241, 133, 8, 3, 241, 131,
- 8, 3, 241, 132, 8, 3, 232, 201, 8, 3, 232, 195, 8, 3, 232, 247, 8, 3,
- 232, 208, 8, 3, 232, 239, 8, 3, 232, 238, 8, 3, 232, 242, 8, 3, 232, 240,
- 8, 3, 233, 85, 8, 3, 233, 75, 8, 3, 233, 141, 8, 3, 233, 94, 8, 3, 232,
- 84, 8, 3, 232, 83, 8, 3, 232, 86, 8, 3, 232, 85, 8, 3, 232, 122, 8, 3,
- 232, 112, 8, 3, 232, 162, 8, 3, 232, 126, 8, 3, 233, 8, 8, 3, 233, 64, 8,
- 3, 233, 23, 8, 3, 232, 79, 8, 3, 232, 77, 8, 3, 232, 103, 8, 3, 232, 82,
- 8, 3, 232, 80, 8, 3, 232, 81, 8, 3, 232, 59, 8, 3, 232, 58, 8, 3, 232,
- 67, 8, 3, 232, 62, 8, 3, 232, 60, 8, 3, 232, 61, 8, 3, 242, 196, 8, 3,
- 242, 195, 8, 3, 242, 221, 8, 3, 242, 206, 8, 3, 242, 213, 8, 3, 242, 212,
- 8, 3, 242, 215, 8, 3, 242, 214, 8, 3, 243, 96, 8, 3, 243, 91, 8, 3, 243,
- 142, 8, 3, 243, 106, 8, 3, 242, 98, 8, 3, 242, 97, 8, 3, 242, 100, 8, 3,
- 242, 99, 8, 3, 242, 161, 8, 3, 242, 159, 8, 3, 242, 181, 8, 3, 242, 169,
- 8, 3, 243, 40, 8, 3, 243, 38, 8, 3, 243, 69, 8, 3, 243, 51, 8, 3, 242,
- 88, 8, 3, 242, 87, 8, 3, 242, 120, 8, 3, 242, 96, 8, 3, 242, 89, 8, 3,
- 242, 95, 8, 3, 234, 67, 8, 3, 234, 66, 8, 3, 234, 98, 8, 3, 234, 81, 8,
- 3, 234, 91, 8, 3, 234, 94, 8, 3, 234, 92, 8, 3, 234, 208, 8, 3, 234, 196,
- 8, 3, 176, 8, 3, 234, 234, 8, 3, 233, 206, 8, 3, 233, 211, 8, 3, 233,
- 208, 8, 3, 234, 6, 8, 3, 234, 2, 8, 3, 234, 34, 8, 3, 234, 13, 8, 3, 234,
- 162, 8, 3, 234, 146, 8, 3, 234, 188, 8, 3, 234, 165, 8, 3, 233, 195, 8,
- 3, 233, 192, 8, 3, 233, 223, 8, 3, 233, 205, 8, 3, 233, 198, 8, 3, 233,
- 202, 8, 3, 243, 22, 8, 3, 243, 21, 8, 3, 243, 26, 8, 3, 243, 23, 8, 3,
- 243, 25, 8, 3, 243, 24, 8, 3, 243, 33, 8, 3, 243, 32, 8, 3, 243, 36, 8,
- 3, 243, 34, 8, 3, 243, 13, 8, 3, 243, 12, 8, 3, 243, 15, 8, 3, 243, 14,
- 8, 3, 243, 18, 8, 3, 243, 17, 8, 3, 243, 20, 8, 3, 243, 19, 8, 3, 243,
- 28, 8, 3, 243, 27, 8, 3, 243, 31, 8, 3, 243, 29, 8, 3, 243, 8, 8, 3, 243,
- 7, 8, 3, 243, 16, 8, 3, 243, 11, 8, 3, 243, 9, 8, 3, 243, 10, 8, 3, 230,
- 254, 8, 3, 230, 255, 8, 3, 231, 17, 8, 3, 231, 16, 8, 3, 231, 19, 8, 3,
- 231, 18, 8, 3, 230, 245, 8, 3, 230, 247, 8, 3, 230, 246, 8, 3, 230, 250,
- 8, 3, 230, 249, 8, 3, 230, 252, 8, 3, 230, 251, 8, 3, 231, 0, 8, 3, 231,
- 2, 8, 3, 231, 1, 8, 3, 230, 241, 8, 3, 230, 240, 8, 3, 230, 248, 8, 3,
- 230, 244, 8, 3, 230, 242, 8, 3, 230, 243, 8, 3, 240, 187, 8, 3, 240, 186,
- 8, 3, 240, 193, 8, 3, 240, 188, 8, 3, 240, 190, 8, 3, 240, 189, 8, 3,
- 240, 192, 8, 3, 240, 191, 8, 3, 240, 198, 8, 3, 240, 197, 8, 3, 240, 200,
- 8, 3, 240, 199, 8, 3, 240, 179, 8, 3, 240, 178, 8, 3, 240, 181, 8, 3,
- 240, 180, 8, 3, 240, 183, 8, 3, 240, 182, 8, 3, 240, 185, 8, 3, 240, 184,
- 8, 3, 240, 194, 8, 3, 240, 196, 8, 3, 240, 195, 8, 3, 229, 29, 8, 3, 229,
- 31, 8, 3, 229, 30, 8, 3, 229, 72, 8, 3, 229, 70, 8, 3, 229, 82, 8, 3,
- 229, 75, 8, 3, 228, 248, 8, 3, 228, 247, 8, 3, 228, 249, 8, 3, 229, 1, 8,
- 3, 228, 254, 8, 3, 229, 9, 8, 3, 229, 3, 8, 3, 229, 63, 8, 3, 229, 69, 8,
- 3, 229, 65, 8, 3, 241, 163, 8, 3, 241, 173, 8, 3, 241, 182, 8, 3, 242, 2,
- 8, 3, 241, 250, 8, 3, 162, 8, 3, 242, 13, 8, 3, 240, 213, 8, 3, 240, 212,
- 8, 3, 240, 215, 8, 3, 240, 214, 8, 3, 240, 249, 8, 3, 240, 240, 8, 3,
- 241, 75, 8, 3, 241, 54, 8, 3, 241, 201, 8, 3, 241, 245, 8, 3, 241, 213,
- 8, 3, 212, 43, 8, 3, 212, 28, 8, 3, 212, 65, 8, 3, 212, 51, 8, 3, 211,
- 185, 8, 3, 211, 187, 8, 3, 211, 186, 8, 3, 211, 203, 8, 3, 211, 227, 8,
- 3, 211, 210, 8, 3, 212, 5, 8, 3, 212, 22, 8, 3, 212, 10, 8, 3, 210, 30,
- 8, 3, 210, 29, 8, 3, 210, 44, 8, 3, 210, 32, 8, 3, 210, 37, 8, 3, 210,
- 39, 8, 3, 210, 38, 8, 3, 210, 102, 8, 3, 210, 99, 8, 3, 210, 116, 8, 3,
- 210, 105, 8, 3, 210, 6, 8, 3, 210, 8, 8, 3, 210, 7, 8, 3, 210, 19, 8, 3,
- 210, 18, 8, 3, 210, 23, 8, 3, 210, 20, 8, 3, 210, 84, 8, 3, 210, 94, 8,
- 3, 210, 88, 8, 3, 210, 2, 8, 3, 210, 1, 8, 3, 210, 13, 8, 3, 210, 5, 8,
- 3, 210, 3, 8, 3, 210, 4, 8, 3, 209, 245, 8, 3, 209, 244, 8, 3, 209, 250,
- 8, 3, 209, 248, 8, 3, 209, 246, 8, 3, 209, 247, 8, 3, 250, 36, 8, 3, 250,
- 32, 8, 3, 250, 59, 8, 3, 250, 45, 8, 3, 250, 56, 8, 3, 250, 50, 8, 3,
- 250, 58, 8, 3, 250, 57, 8, 3, 250, 232, 8, 3, 250, 225, 8, 3, 251, 41, 8,
- 3, 251, 3, 8, 3, 249, 112, 8, 3, 249, 114, 8, 3, 249, 113, 8, 3, 249,
- 161, 8, 3, 249, 152, 8, 3, 249, 246, 8, 3, 249, 177, 8, 3, 250, 168, 8,
- 3, 250, 198, 8, 3, 250, 173, 8, 3, 249, 92, 8, 3, 249, 90, 8, 3, 249,
- 120, 8, 3, 249, 110, 8, 3, 249, 97, 8, 3, 249, 109, 8, 3, 249, 71, 8, 3,
- 249, 70, 8, 3, 249, 81, 8, 3, 249, 77, 8, 3, 249, 72, 8, 3, 249, 74, 8,
- 3, 209, 228, 8, 3, 209, 227, 8, 3, 209, 234, 8, 3, 209, 229, 8, 3, 209,
- 231, 8, 3, 209, 230, 8, 3, 209, 233, 8, 3, 209, 232, 8, 3, 209, 240, 8,
- 3, 209, 239, 8, 3, 209, 243, 8, 3, 209, 241, 8, 3, 209, 224, 8, 3, 209,
- 226, 8, 3, 209, 225, 8, 3, 209, 235, 8, 3, 209, 238, 8, 3, 209, 236, 8,
- 3, 209, 217, 8, 3, 209, 221, 8, 3, 209, 220, 8, 3, 209, 218, 8, 3, 209,
- 219, 8, 3, 209, 211, 8, 3, 209, 210, 8, 3, 209, 216, 8, 3, 209, 214, 8,
- 3, 209, 212, 8, 3, 209, 213, 8, 3, 227, 108, 8, 3, 227, 107, 8, 3, 227,
- 113, 8, 3, 227, 109, 8, 3, 227, 110, 8, 3, 227, 112, 8, 3, 227, 111, 8,
- 3, 227, 118, 8, 3, 227, 117, 8, 3, 227, 121, 8, 3, 227, 120, 8, 3, 227,
- 101, 8, 3, 227, 102, 8, 3, 227, 105, 8, 3, 227, 106, 8, 3, 227, 114, 8,
- 3, 227, 116, 8, 3, 227, 96, 8, 3, 227, 104, 8, 3, 227, 100, 8, 3, 227,
- 97, 8, 3, 227, 98, 8, 3, 227, 91, 8, 3, 227, 90, 8, 3, 227, 95, 8, 3,
- 227, 94, 8, 3, 227, 92, 8, 3, 227, 93, 8, 3, 219, 129, 8, 3, 195, 8, 3,
- 219, 193, 8, 3, 219, 132, 8, 3, 219, 185, 8, 3, 219, 188, 8, 3, 219, 186,
- 8, 3, 221, 228, 8, 3, 221, 216, 8, 3, 206, 8, 3, 221, 236, 8, 3, 218, 29,
- 8, 3, 218, 31, 8, 3, 218, 30, 8, 3, 219, 36, 8, 3, 219, 25, 8, 3, 219,
- 60, 8, 3, 219, 40, 8, 3, 220, 116, 8, 3, 221, 183, 8, 3, 220, 141, 8, 3,
- 218, 6, 8, 3, 218, 4, 8, 3, 218, 84, 8, 3, 218, 28, 8, 3, 218, 10, 8, 3,
- 218, 18, 8, 3, 217, 167, 8, 3, 217, 166, 8, 3, 217, 233, 8, 3, 217, 174,
- 8, 3, 217, 169, 8, 3, 217, 173, 8, 3, 218, 188, 8, 3, 218, 187, 8, 3,
- 218, 194, 8, 3, 218, 189, 8, 3, 218, 191, 8, 3, 218, 193, 8, 3, 218, 192,
- 8, 3, 218, 202, 8, 3, 218, 200, 8, 3, 218, 225, 8, 3, 218, 203, 8, 3,
- 218, 183, 8, 3, 218, 182, 8, 3, 218, 186, 8, 3, 218, 184, 8, 3, 218, 196,
- 8, 3, 218, 199, 8, 3, 218, 197, 8, 3, 218, 179, 8, 3, 218, 177, 8, 3,
- 218, 181, 8, 3, 218, 180, 8, 3, 218, 172, 8, 3, 218, 171, 8, 3, 218, 176,
- 8, 3, 218, 175, 8, 3, 218, 173, 8, 3, 218, 174, 8, 3, 210, 77, 8, 3, 210,
- 76, 8, 3, 210, 82, 8, 3, 210, 79, 8, 3, 210, 59, 8, 3, 210, 61, 8, 3,
- 210, 60, 8, 3, 210, 64, 8, 3, 210, 63, 8, 3, 210, 67, 8, 3, 210, 65, 8,
- 3, 210, 71, 8, 3, 210, 70, 8, 3, 210, 74, 8, 3, 210, 72, 8, 3, 210, 55,
- 8, 3, 210, 54, 8, 3, 210, 62, 8, 3, 210, 58, 8, 3, 210, 56, 8, 3, 210,
- 57, 8, 3, 210, 47, 8, 3, 210, 46, 8, 3, 210, 51, 8, 3, 210, 50, 8, 3,
- 210, 48, 8, 3, 210, 49, 8, 3, 250, 144, 8, 3, 250, 141, 8, 3, 250, 165,
- 8, 3, 250, 152, 8, 3, 250, 73, 8, 3, 250, 72, 8, 3, 250, 75, 8, 3, 250,
- 74, 8, 3, 250, 87, 8, 3, 250, 86, 8, 3, 250, 94, 8, 3, 250, 89, 8, 3,
- 250, 123, 8, 3, 250, 121, 8, 3, 250, 139, 8, 3, 250, 129, 8, 3, 250, 67,
- 8, 3, 250, 77, 8, 3, 250, 71, 8, 3, 250, 68, 8, 3, 250, 70, 8, 3, 250,
- 61, 8, 3, 250, 60, 8, 3, 250, 65, 8, 3, 250, 64, 8, 3, 250, 62, 8, 3,
- 250, 63, 8, 3, 222, 177, 8, 3, 222, 181, 8, 3, 222, 160, 8, 3, 222, 161,
- 8, 3, 222, 164, 8, 3, 222, 163, 8, 3, 222, 167, 8, 3, 222, 165, 8, 3,
- 222, 171, 8, 3, 222, 170, 8, 3, 222, 176, 8, 3, 222, 172, 8, 3, 222, 156,
- 8, 3, 222, 154, 8, 3, 222, 162, 8, 3, 222, 159, 8, 3, 222, 157, 8, 3,
- 222, 158, 8, 3, 222, 149, 8, 3, 222, 148, 8, 3, 222, 153, 8, 3, 222, 152,
- 8, 3, 222, 150, 8, 3, 222, 151, 8, 3, 228, 39, 8, 3, 228, 38, 8, 3, 228,
- 41, 8, 3, 228, 40, 8, 3, 228, 31, 8, 3, 228, 33, 8, 3, 228, 32, 8, 3,
- 228, 35, 8, 3, 228, 34, 8, 3, 228, 37, 8, 3, 228, 36, 8, 3, 228, 26, 8,
- 3, 228, 25, 8, 3, 228, 30, 8, 3, 228, 29, 8, 3, 228, 27, 8, 3, 228, 28,
- 8, 3, 228, 20, 8, 3, 228, 19, 8, 3, 228, 24, 8, 3, 228, 23, 8, 3, 228,
- 21, 8, 3, 228, 22, 8, 3, 220, 74, 8, 3, 220, 69, 8, 3, 220, 104, 8, 3,
- 220, 85, 8, 3, 219, 217, 8, 3, 219, 219, 8, 3, 219, 218, 8, 3, 219, 238,
- 8, 3, 219, 235, 8, 3, 220, 9, 8, 3, 220, 0, 8, 3, 220, 44, 8, 3, 220, 37,
- 8, 3, 220, 65, 8, 3, 220, 52, 8, 3, 219, 213, 8, 3, 219, 211, 8, 3, 219,
- 227, 8, 3, 219, 216, 8, 3, 219, 214, 8, 3, 219, 215, 8, 3, 219, 196, 8,
- 3, 219, 195, 8, 3, 219, 202, 8, 3, 219, 199, 8, 3, 219, 197, 8, 3, 219,
- 198, 8, 3, 223, 144, 8, 3, 223, 138, 8, 3, 205, 8, 3, 223, 150, 8, 3,
- 222, 122, 8, 3, 222, 124, 8, 3, 222, 123, 8, 3, 222, 190, 8, 3, 222, 183,
- 8, 3, 222, 213, 8, 3, 222, 194, 8, 3, 223, 46, 8, 3, 223, 131, 8, 3, 223,
- 84, 8, 3, 222, 115, 8, 3, 222, 112, 8, 3, 222, 142, 8, 3, 222, 121, 8, 3,
- 222, 117, 8, 3, 222, 118, 8, 3, 222, 97, 8, 3, 222, 96, 8, 3, 222, 102,
- 8, 3, 222, 100, 8, 3, 222, 98, 8, 3, 222, 99, 8, 3, 235, 104, 8, 3, 235,
- 103, 8, 3, 235, 114, 8, 3, 235, 105, 8, 3, 235, 110, 8, 3, 235, 109, 8,
- 3, 235, 112, 8, 3, 235, 111, 8, 3, 235, 47, 8, 3, 235, 46, 8, 3, 235, 49,
- 8, 3, 235, 48, 8, 3, 235, 62, 8, 3, 235, 60, 8, 3, 235, 74, 8, 3, 235,
- 64, 8, 3, 235, 40, 8, 3, 235, 38, 8, 3, 235, 57, 8, 3, 235, 45, 8, 3,
- 235, 42, 8, 3, 235, 43, 8, 3, 235, 32, 8, 3, 235, 31, 8, 3, 235, 36, 8,
- 3, 235, 35, 8, 3, 235, 33, 8, 3, 235, 34, 8, 3, 224, 49, 8, 3, 224, 47,
- 8, 3, 224, 56, 8, 3, 224, 50, 8, 3, 224, 53, 8, 3, 224, 52, 8, 3, 224,
- 55, 8, 3, 224, 54, 8, 3, 224, 2, 8, 3, 223, 255, 8, 3, 224, 4, 8, 3, 224,
- 3, 8, 3, 224, 36, 8, 3, 224, 35, 8, 3, 224, 45, 8, 3, 224, 39, 8, 3, 223,
- 250, 8, 3, 223, 246, 8, 3, 224, 33, 8, 3, 223, 254, 8, 3, 223, 252, 8, 3,
- 223, 253, 8, 3, 223, 230, 8, 3, 223, 228, 8, 3, 223, 240, 8, 3, 223, 233,
- 8, 3, 223, 231, 8, 3, 223, 232, 8, 3, 235, 93, 8, 3, 235, 92, 8, 3, 235,
- 99, 8, 3, 235, 94, 8, 3, 235, 96, 8, 3, 235, 95, 8, 3, 235, 98, 8, 3,
- 235, 97, 8, 3, 235, 84, 8, 3, 235, 86, 8, 3, 235, 85, 8, 3, 235, 89, 8,
- 3, 235, 88, 8, 3, 235, 91, 8, 3, 235, 90, 8, 3, 235, 80, 8, 3, 235, 79,
- 8, 3, 235, 87, 8, 3, 235, 83, 8, 3, 235, 81, 8, 3, 235, 82, 8, 3, 235,
- 76, 8, 3, 235, 75, 8, 3, 235, 78, 8, 3, 235, 77, 8, 3, 228, 167, 8, 3,
- 228, 166, 8, 3, 228, 174, 8, 3, 228, 168, 8, 3, 228, 170, 8, 3, 228, 169,
- 8, 3, 228, 173, 8, 3, 228, 171, 8, 3, 228, 156, 8, 3, 228, 157, 8, 3,
- 228, 162, 8, 3, 228, 161, 8, 3, 228, 165, 8, 3, 228, 163, 8, 3, 228, 151,
- 8, 3, 228, 160, 8, 3, 228, 155, 8, 3, 228, 152, 8, 3, 228, 153, 8, 3,
- 228, 146, 8, 3, 228, 145, 8, 3, 228, 150, 8, 3, 228, 149, 8, 3, 228, 147,
- 8, 3, 228, 148, 8, 3, 227, 141, 8, 3, 227, 140, 8, 3, 227, 152, 8, 3,
- 227, 145, 8, 3, 227, 149, 8, 3, 227, 148, 8, 3, 227, 151, 8, 3, 227, 150,
- 8, 3, 227, 128, 8, 3, 227, 130, 8, 3, 227, 129, 8, 3, 227, 134, 8, 3,
- 227, 133, 8, 3, 227, 138, 8, 3, 227, 135, 8, 3, 227, 126, 8, 3, 227, 124,
- 8, 3, 227, 132, 8, 3, 227, 127, 8, 3, 211, 150, 8, 3, 211, 149, 8, 3,
- 211, 157, 8, 3, 211, 152, 8, 3, 211, 154, 8, 3, 211, 153, 8, 3, 211, 156,
- 8, 3, 211, 155, 8, 3, 211, 139, 8, 3, 211, 140, 8, 3, 211, 144, 8, 3,
- 211, 143, 8, 3, 211, 148, 8, 3, 211, 146, 8, 3, 211, 121, 8, 3, 211, 119,
- 8, 3, 211, 131, 8, 3, 211, 124, 8, 3, 211, 122, 8, 3, 211, 123, 8, 3,
- 210, 250, 8, 3, 210, 248, 8, 3, 211, 8, 8, 3, 210, 251, 8, 3, 211, 2, 8,
- 3, 211, 1, 8, 3, 211, 5, 8, 3, 211, 3, 8, 3, 210, 191, 8, 3, 210, 190, 8,
- 3, 210, 194, 8, 3, 210, 192, 8, 3, 210, 224, 8, 3, 210, 221, 8, 3, 210,
- 244, 8, 3, 210, 228, 8, 3, 210, 182, 8, 3, 210, 178, 8, 3, 210, 212, 8,
- 3, 210, 189, 8, 3, 210, 185, 8, 3, 210, 186, 8, 3, 210, 162, 8, 3, 210,
- 161, 8, 3, 210, 169, 8, 3, 210, 165, 8, 3, 210, 163, 8, 3, 210, 164, 8,
- 34, 224, 36, 8, 34, 232, 247, 8, 34, 234, 67, 8, 34, 227, 145, 8, 34,
- 249, 77, 8, 34, 218, 194, 8, 34, 243, 19, 8, 34, 243, 51, 8, 34, 230,
- 235, 8, 34, 240, 187, 8, 34, 232, 61, 8, 34, 252, 91, 8, 34, 230, 131, 8,
- 34, 210, 244, 8, 34, 224, 124, 8, 34, 240, 181, 8, 34, 217, 47, 8, 34,
- 243, 142, 8, 34, 210, 5, 8, 34, 249, 71, 8, 34, 248, 103, 8, 34, 251,
- 106, 8, 34, 243, 15, 8, 34, 227, 135, 8, 34, 215, 119, 8, 34, 226, 179,
- 8, 34, 235, 80, 8, 34, 210, 19, 8, 34, 224, 103, 8, 34, 241, 115, 8, 34,
- 210, 250, 8, 34, 212, 112, 8, 34, 219, 202, 8, 34, 213, 244, 8, 34, 210,
- 116, 8, 34, 235, 74, 8, 34, 227, 100, 8, 34, 235, 78, 8, 34, 242, 161, 8,
- 34, 235, 98, 8, 34, 211, 227, 8, 34, 246, 86, 8, 34, 219, 215, 8, 34,
- 232, 242, 8, 34, 249, 81, 8, 34, 249, 113, 8, 34, 250, 45, 8, 34, 240,
- 184, 8, 34, 220, 74, 8, 34, 210, 4, 8, 34, 220, 0, 8, 34, 250, 139, 8,
- 34, 209, 231, 8, 34, 229, 178, 8, 34, 234, 188, 232, 202, 1, 252, 199,
- 232, 202, 1, 191, 232, 202, 1, 225, 150, 232, 202, 1, 248, 229, 232, 202,
- 1, 217, 106, 232, 202, 1, 216, 209, 232, 202, 1, 243, 142, 232, 202, 1,
- 176, 232, 202, 1, 234, 138, 232, 202, 1, 235, 147, 232, 202, 1, 251, 41,
- 232, 202, 1, 250, 165, 232, 202, 1, 246, 46, 232, 202, 1, 215, 184, 232,
- 202, 1, 215, 176, 232, 202, 1, 186, 232, 202, 1, 198, 232, 202, 1, 233,
- 141, 232, 202, 1, 206, 232, 202, 1, 210, 82, 232, 202, 1, 210, 116, 232,
- 202, 1, 229, 82, 232, 202, 1, 162, 232, 202, 1, 211, 165, 232, 202, 1,
- 241, 196, 232, 202, 1, 244, 204, 232, 202, 1, 212, 65, 232, 202, 1, 220,
- 104, 232, 202, 1, 192, 232, 202, 1, 243, 0, 232, 202, 1, 61, 232, 202, 1,
- 254, 252, 232, 202, 1, 76, 232, 202, 1, 245, 63, 232, 202, 1, 74, 232,
- 202, 1, 78, 232, 202, 1, 69, 232, 202, 1, 214, 214, 232, 202, 1, 214,
- 208, 232, 202, 1, 226, 238, 232, 202, 1, 138, 230, 37, 216, 118, 232,
- 202, 1, 138, 229, 234, 225, 19, 232, 202, 1, 138, 230, 37, 249, 80, 232,
- 202, 1, 138, 230, 37, 251, 213, 232, 202, 1, 138, 230, 37, 198, 232, 202,
- 1, 138, 230, 37, 235, 121, 232, 202, 224, 144, 249, 227, 232, 202, 224,
- 144, 243, 236, 218, 131, 41, 3, 245, 217, 41, 3, 245, 213, 41, 3, 241,
- 227, 41, 3, 212, 17, 41, 3, 212, 16, 41, 3, 225, 214, 41, 3, 252, 21, 41,
- 3, 252, 74, 41, 3, 231, 121, 41, 3, 233, 253, 41, 3, 231, 11, 41, 3, 243,
- 82, 41, 3, 244, 155, 41, 3, 213, 250, 41, 3, 217, 12, 41, 3, 216, 195,
- 41, 3, 248, 24, 41, 3, 248, 21, 41, 3, 233, 56, 41, 3, 223, 111, 41, 3,
- 248, 85, 41, 3, 229, 144, 41, 3, 221, 172, 41, 3, 220, 63, 41, 3, 210,
- 92, 41, 3, 210, 73, 41, 3, 250, 190, 41, 3, 235, 130, 41, 3, 228, 181,
- 41, 3, 211, 44, 41, 3, 234, 187, 41, 3, 229, 56, 41, 3, 243, 62, 41, 3,
- 231, 85, 41, 3, 229, 108, 41, 3, 227, 159, 41, 3, 74, 41, 3, 236, 6, 41,
- 3, 241, 187, 41, 3, 241, 167, 41, 3, 211, 250, 41, 3, 211, 241, 41, 3,
- 225, 111, 41, 3, 252, 19, 41, 3, 252, 14, 41, 3, 231, 114, 41, 3, 233,
- 250, 41, 3, 231, 8, 41, 3, 243, 78, 41, 3, 244, 129, 41, 3, 213, 176, 41,
- 3, 216, 118, 41, 3, 216, 176, 41, 3, 248, 16, 41, 3, 248, 20, 41, 3, 232,
- 247, 41, 3, 223, 38, 41, 3, 248, 11, 41, 3, 229, 138, 41, 3, 219, 193,
- 41, 3, 220, 34, 41, 3, 210, 44, 41, 3, 210, 69, 41, 3, 250, 59, 41, 3,
- 235, 114, 41, 3, 228, 174, 41, 3, 211, 8, 41, 3, 234, 98, 41, 3, 229, 48,
- 41, 3, 242, 221, 41, 3, 230, 235, 41, 3, 228, 238, 41, 3, 227, 152, 41,
- 3, 61, 41, 3, 254, 131, 41, 3, 229, 77, 41, 3, 162, 41, 3, 242, 25, 41,
- 3, 212, 65, 41, 3, 212, 55, 41, 3, 191, 41, 3, 252, 26, 41, 3, 252, 199,
- 41, 3, 231, 129, 41, 3, 234, 1, 41, 3, 234, 0, 41, 3, 231, 15, 41, 3,
- 243, 86, 41, 3, 244, 204, 41, 3, 214, 27, 41, 3, 217, 106, 41, 3, 216,
- 209, 41, 3, 248, 33, 41, 3, 248, 23, 41, 3, 233, 141, 41, 3, 205, 41, 3,
- 248, 229, 41, 3, 229, 153, 41, 3, 206, 41, 3, 220, 104, 41, 3, 210, 116,
- 41, 3, 210, 82, 41, 3, 251, 41, 41, 3, 235, 147, 41, 3, 228, 190, 41, 3,
- 192, 41, 3, 176, 41, 3, 234, 240, 41, 3, 229, 61, 41, 3, 243, 142, 41, 3,
- 186, 41, 3, 198, 41, 3, 227, 169, 41, 3, 226, 187, 41, 3, 226, 183, 41,
- 3, 241, 60, 41, 3, 211, 215, 41, 3, 211, 211, 41, 3, 224, 252, 41, 3,
- 252, 17, 41, 3, 251, 201, 41, 3, 231, 109, 41, 3, 233, 248, 41, 3, 231,
- 4, 41, 3, 243, 74, 41, 3, 244, 42, 41, 3, 213, 127, 41, 3, 216, 18, 41,
- 3, 216, 154, 41, 3, 248, 14, 41, 3, 248, 18, 41, 3, 232, 133, 41, 3, 222,
- 199, 41, 3, 247, 133, 41, 3, 229, 125, 41, 3, 219, 42, 41, 3, 220, 3, 41,
- 3, 210, 21, 41, 3, 210, 66, 41, 3, 249, 182, 41, 3, 235, 65, 41, 3, 228,
- 164, 41, 3, 210, 229, 41, 3, 234, 16, 41, 3, 229, 46, 41, 3, 242, 171,
- 41, 3, 230, 137, 41, 3, 228, 69, 41, 3, 227, 136, 41, 3, 69, 41, 3, 214,
- 190, 41, 3, 240, 229, 41, 3, 240, 219, 41, 3, 211, 195, 41, 3, 211, 189,
- 41, 3, 224, 153, 41, 3, 252, 16, 41, 3, 251, 133, 41, 3, 231, 108, 41, 3,
- 233, 246, 41, 3, 231, 3, 41, 3, 243, 73, 41, 3, 243, 241, 41, 3, 212,
- 116, 41, 3, 215, 119, 41, 3, 216, 137, 41, 3, 248, 12, 41, 3, 248, 17,
- 41, 3, 232, 103, 41, 3, 222, 142, 41, 3, 246, 86, 41, 3, 229, 120, 41, 3,
- 218, 84, 41, 3, 219, 227, 41, 3, 210, 13, 41, 3, 210, 62, 41, 3, 249,
- 120, 41, 3, 235, 57, 41, 3, 228, 160, 41, 3, 210, 212, 41, 3, 233, 223,
- 41, 3, 229, 45, 41, 3, 242, 120, 41, 3, 230, 107, 41, 3, 227, 242, 41, 3,
- 227, 132, 41, 3, 78, 41, 3, 226, 200, 41, 3, 229, 5, 41, 3, 241, 75, 41,
- 3, 241, 63, 41, 3, 211, 227, 41, 3, 211, 216, 41, 3, 225, 19, 41, 3, 252,
- 18, 41, 3, 251, 213, 41, 3, 231, 110, 41, 3, 233, 249, 41, 3, 231, 6, 41,
- 3, 243, 76, 41, 3, 243, 75, 41, 3, 244, 51, 41, 3, 213, 138, 41, 3, 112,
- 41, 3, 216, 157, 41, 3, 248, 15, 41, 3, 248, 19, 41, 3, 232, 162, 41, 3,
- 222, 213, 41, 3, 247, 153, 41, 3, 229, 129, 41, 3, 219, 60, 41, 3, 220,
- 9, 41, 3, 210, 23, 41, 3, 210, 67, 41, 3, 249, 246, 41, 3, 235, 74, 41,
- 3, 228, 165, 41, 3, 210, 244, 41, 3, 234, 34, 41, 3, 229, 47, 41, 3, 242,
- 181, 41, 3, 230, 166, 41, 3, 228, 79, 41, 3, 227, 138, 41, 3, 76, 41, 3,
- 245, 158, 41, 3, 229, 66, 41, 3, 241, 245, 41, 3, 241, 216, 41, 3, 212,
- 22, 41, 3, 212, 12, 41, 3, 225, 224, 41, 3, 252, 22, 41, 3, 252, 83, 41,
- 3, 231, 122, 41, 3, 233, 254, 41, 3, 233, 252, 41, 3, 231, 12, 41, 3,
- 243, 83, 41, 3, 243, 81, 41, 3, 244, 162, 41, 3, 213, 255, 41, 3, 217,
- 23, 41, 3, 216, 196, 41, 3, 248, 25, 41, 3, 248, 22, 41, 3, 233, 64, 41,
- 3, 223, 131, 41, 3, 248, 98, 41, 3, 229, 145, 41, 3, 221, 183, 41, 3,
- 220, 65, 41, 3, 210, 94, 41, 3, 210, 74, 41, 3, 250, 198, 41, 3, 235,
- 132, 41, 3, 228, 183, 41, 3, 211, 47, 41, 3, 234, 188, 41, 3, 229, 57,
- 41, 3, 229, 53, 41, 3, 243, 69, 41, 3, 243, 58, 41, 3, 231, 96, 41, 3,
- 229, 112, 41, 3, 227, 160, 41, 3, 229, 84, 41, 3, 233, 28, 41, 249, 227,
- 41, 243, 236, 218, 131, 41, 224, 16, 79, 41, 3, 229, 128, 244, 204, 41,
- 3, 229, 128, 176, 41, 3, 229, 128, 219, 42, 41, 16, 244, 152, 41, 16,
- 234, 186, 41, 16, 216, 82, 41, 16, 228, 213, 41, 16, 252, 155, 41, 16,
- 244, 203, 41, 16, 217, 102, 41, 16, 248, 184, 41, 16, 247, 132, 41, 16,
- 233, 212, 41, 16, 216, 22, 41, 16, 247, 152, 41, 16, 235, 66, 41, 21,
- 210, 86, 41, 21, 111, 41, 21, 105, 41, 21, 158, 41, 21, 161, 41, 21, 190,
- 41, 21, 195, 41, 21, 199, 41, 21, 196, 41, 21, 201, 41, 3, 229, 128, 186,
- 41, 3, 229, 128, 247, 153, 33, 6, 1, 210, 90, 33, 4, 1, 210, 90, 33, 6,
- 1, 246, 42, 33, 4, 1, 246, 42, 33, 6, 1, 223, 52, 246, 44, 33, 4, 1, 223,
- 52, 246, 44, 33, 6, 1, 235, 192, 33, 4, 1, 235, 192, 33, 6, 1, 247, 169,
- 33, 4, 1, 247, 169, 33, 6, 1, 230, 145, 214, 205, 33, 4, 1, 230, 145,
- 214, 205, 33, 6, 1, 251, 144, 226, 205, 33, 4, 1, 251, 144, 226, 205, 33,
- 6, 1, 229, 92, 211, 31, 33, 4, 1, 229, 92, 211, 31, 33, 6, 1, 211, 28, 2,
- 252, 193, 211, 31, 33, 4, 1, 211, 28, 2, 252, 193, 211, 31, 33, 6, 1,
- 235, 190, 211, 59, 33, 4, 1, 235, 190, 211, 59, 33, 6, 1, 223, 52, 210,
- 212, 33, 4, 1, 223, 52, 210, 212, 33, 6, 1, 235, 190, 61, 33, 4, 1, 235,
- 190, 61, 33, 6, 1, 250, 8, 232, 198, 210, 183, 33, 4, 1, 250, 8, 232,
- 198, 210, 183, 33, 6, 1, 251, 222, 210, 183, 33, 4, 1, 251, 222, 210,
- 183, 33, 6, 1, 235, 190, 250, 8, 232, 198, 210, 183, 33, 4, 1, 235, 190,
- 250, 8, 232, 198, 210, 183, 33, 6, 1, 210, 246, 33, 4, 1, 210, 246, 33,
- 6, 1, 223, 52, 215, 179, 33, 4, 1, 223, 52, 215, 179, 33, 6, 1, 219, 54,
- 248, 98, 33, 4, 1, 219, 54, 248, 98, 33, 6, 1, 219, 54, 245, 182, 33, 4,
- 1, 219, 54, 245, 182, 33, 6, 1, 219, 54, 245, 167, 33, 4, 1, 219, 54,
- 245, 167, 33, 6, 1, 230, 149, 78, 33, 4, 1, 230, 149, 78, 33, 6, 1, 251,
- 248, 78, 33, 4, 1, 251, 248, 78, 33, 6, 1, 52, 230, 149, 78, 33, 4, 1,
- 52, 230, 149, 78, 33, 1, 230, 91, 78, 38, 33, 212, 100, 38, 33, 216, 249,
- 230, 196, 50, 38, 33, 240, 218, 230, 196, 50, 38, 33, 216, 149, 230, 196,
- 50, 219, 95, 253, 224, 38, 33, 1, 214, 202, 236, 67, 38, 33, 1, 74, 38,
- 33, 1, 211, 8, 38, 33, 1, 69, 38, 33, 1, 242, 10, 50, 38, 33, 1, 211, 27,
- 38, 33, 1, 219, 54, 50, 38, 33, 1, 226, 205, 38, 33, 234, 198, 38, 33,
- 225, 231, 33, 234, 198, 33, 225, 231, 33, 6, 1, 246, 54, 33, 4, 1, 246,
- 54, 33, 6, 1, 246, 35, 33, 4, 1, 246, 35, 33, 6, 1, 210, 52, 33, 4, 1,
- 210, 52, 33, 6, 1, 250, 214, 33, 4, 1, 250, 214, 33, 6, 1, 246, 33, 33,
- 4, 1, 246, 33, 33, 6, 1, 217, 24, 2, 230, 229, 103, 33, 4, 1, 217, 24, 2,
- 230, 229, 103, 33, 6, 1, 215, 78, 33, 4, 1, 215, 78, 33, 6, 1, 215, 161,
- 33, 4, 1, 215, 161, 33, 6, 1, 215, 165, 33, 4, 1, 215, 165, 33, 6, 1,
- 217, 29, 33, 4, 1, 217, 29, 33, 6, 1, 240, 205, 33, 4, 1, 240, 205, 33,
- 6, 1, 219, 208, 33, 4, 1, 219, 208, 38, 33, 1, 235, 190, 76, 20, 1, 61,
- 20, 1, 176, 20, 1, 69, 20, 1, 233, 223, 20, 1, 245, 217, 20, 1, 223, 111,
- 20, 1, 217, 87, 20, 1, 78, 20, 1, 227, 152, 20, 1, 74, 20, 1, 233, 141,
- 20, 1, 191, 20, 1, 222, 242, 20, 1, 223, 32, 20, 1, 233, 55, 20, 1, 231,
- 84, 20, 1, 217, 102, 20, 1, 229, 151, 20, 1, 228, 188, 20, 1, 194, 20, 1,
- 218, 5, 20, 1, 230, 107, 20, 1, 220, 29, 20, 1, 219, 193, 20, 1, 220, 39,
- 20, 1, 220, 125, 20, 1, 233, 161, 20, 1, 234, 162, 20, 1, 227, 213, 20,
- 1, 227, 242, 20, 1, 228, 159, 20, 1, 210, 226, 20, 1, 219, 227, 20, 1,
- 210, 187, 20, 1, 192, 20, 1, 228, 14, 20, 1, 234, 148, 20, 1, 225, 154,
- 20, 1, 228, 181, 20, 1, 227, 251, 20, 1, 224, 147, 20, 1, 211, 192, 20,
- 1, 225, 214, 20, 1, 244, 155, 20, 1, 222, 142, 20, 1, 232, 103, 20, 1,
- 230, 235, 20, 1, 228, 238, 20, 1, 223, 54, 20, 1, 223, 174, 20, 1, 234,
- 171, 20, 1, 229, 12, 20, 1, 229, 61, 20, 1, 229, 82, 20, 1, 220, 9, 20,
- 1, 224, 150, 20, 1, 243, 241, 20, 1, 244, 45, 20, 1, 212, 65, 20, 1, 198,
- 20, 1, 232, 247, 20, 1, 225, 111, 20, 1, 232, 125, 20, 1, 234, 34, 20, 1,
- 231, 119, 20, 1, 223, 86, 20, 1, 231, 63, 20, 1, 186, 20, 1, 216, 118,
- 20, 1, 234, 98, 20, 1, 230, 166, 20, 1, 231, 127, 20, 1, 216, 231, 20, 1,
- 234, 1, 20, 1, 216, 248, 20, 1, 227, 243, 20, 1, 221, 253, 20, 1, 244,
- 200, 20, 1, 234, 3, 20, 1, 234, 30, 20, 38, 164, 234, 11, 20, 38, 164,
- 215, 111, 20, 228, 187, 20, 243, 236, 218, 131, 20, 249, 234, 20, 249,
- 227, 20, 220, 152, 20, 224, 16, 79, 58, 1, 250, 104, 138, 210, 254, 225,
- 64, 58, 1, 250, 104, 138, 211, 70, 225, 64, 58, 1, 250, 104, 138, 210,
- 254, 220, 86, 58, 1, 250, 104, 138, 211, 70, 220, 86, 58, 1, 250, 104,
- 138, 210, 254, 224, 33, 58, 1, 250, 104, 138, 211, 70, 224, 33, 58, 1,
- 250, 104, 138, 210, 254, 222, 142, 58, 1, 250, 104, 138, 211, 70, 222,
- 142, 58, 1, 245, 28, 246, 126, 138, 130, 58, 1, 125, 246, 126, 138, 130,
- 58, 1, 230, 230, 246, 126, 138, 130, 58, 1, 121, 246, 126, 138, 130, 58,
- 1, 245, 27, 246, 126, 138, 130, 58, 1, 245, 28, 246, 126, 233, 45, 138,
- 130, 58, 1, 125, 246, 126, 233, 45, 138, 130, 58, 1, 230, 230, 246, 126,
- 233, 45, 138, 130, 58, 1, 121, 246, 126, 233, 45, 138, 130, 58, 1, 245,
- 27, 246, 126, 233, 45, 138, 130, 58, 1, 245, 28, 233, 45, 138, 130, 58,
- 1, 125, 233, 45, 138, 130, 58, 1, 230, 230, 233, 45, 138, 130, 58, 1,
- 121, 233, 45, 138, 130, 58, 1, 245, 27, 233, 45, 138, 130, 58, 1, 59, 67,
- 130, 58, 1, 59, 219, 97, 58, 1, 59, 203, 130, 58, 1, 232, 114, 44, 249,
- 169, 254, 117, 58, 1, 223, 160, 120, 75, 58, 1, 223, 160, 124, 75, 58, 1,
- 223, 160, 245, 39, 79, 58, 1, 223, 160, 235, 200, 245, 39, 79, 58, 1,
- 121, 235, 200, 245, 39, 79, 58, 1, 218, 113, 22, 125, 216, 31, 58, 1,
- 218, 113, 22, 121, 216, 31, 7, 6, 1, 245, 207, 254, 179, 7, 4, 1, 245,
- 207, 254, 179, 7, 6, 1, 245, 207, 254, 205, 7, 4, 1, 245, 207, 254, 205,
- 7, 6, 1, 241, 214, 7, 4, 1, 241, 214, 7, 6, 1, 215, 40, 7, 4, 1, 215, 40,
- 7, 6, 1, 215, 230, 7, 4, 1, 215, 230, 7, 6, 1, 249, 118, 7, 4, 1, 249,
- 118, 7, 6, 1, 249, 119, 2, 249, 227, 7, 4, 1, 249, 119, 2, 249, 227, 7,
- 1, 4, 6, 245, 14, 7, 1, 4, 6, 222, 93, 7, 6, 1, 255, 82, 7, 4, 1, 255,
- 82, 7, 6, 1, 254, 81, 7, 4, 1, 254, 81, 7, 6, 1, 253, 200, 7, 4, 1, 253,
- 200, 7, 6, 1, 253, 184, 7, 4, 1, 253, 184, 7, 6, 1, 253, 185, 2, 203,
- 130, 7, 4, 1, 253, 185, 2, 203, 130, 7, 6, 1, 253, 175, 7, 4, 1, 253,
- 175, 7, 6, 1, 223, 52, 251, 75, 2, 247, 128, 7, 4, 1, 223, 52, 251, 75,
- 2, 247, 128, 7, 6, 1, 235, 30, 2, 91, 7, 4, 1, 235, 30, 2, 91, 7, 6, 1,
- 235, 30, 2, 248, 7, 91, 7, 4, 1, 235, 30, 2, 248, 7, 91, 7, 6, 1, 235,
- 30, 2, 218, 105, 22, 248, 7, 91, 7, 4, 1, 235, 30, 2, 218, 105, 22, 248,
- 7, 91, 7, 6, 1, 251, 143, 156, 7, 4, 1, 251, 143, 156, 7, 6, 1, 233, 155,
- 2, 125, 91, 7, 4, 1, 233, 155, 2, 125, 91, 7, 6, 1, 144, 2, 200, 218,
- 105, 226, 124, 7, 4, 1, 144, 2, 200, 218, 105, 226, 124, 7, 6, 1, 144, 2,
- 232, 129, 7, 4, 1, 144, 2, 232, 129, 7, 6, 1, 226, 187, 7, 4, 1, 226,
- 187, 7, 6, 1, 226, 110, 2, 218, 105, 216, 140, 248, 47, 7, 4, 1, 226,
- 110, 2, 218, 105, 216, 140, 248, 47, 7, 6, 1, 226, 110, 2, 244, 61, 7, 4,
- 1, 226, 110, 2, 244, 61, 7, 6, 1, 226, 110, 2, 218, 231, 217, 78, 7, 4,
- 1, 226, 110, 2, 218, 231, 217, 78, 7, 6, 1, 224, 100, 2, 218, 105, 216,
- 140, 248, 47, 7, 4, 1, 224, 100, 2, 218, 105, 216, 140, 248, 47, 7, 6, 1,
- 224, 100, 2, 248, 7, 91, 7, 4, 1, 224, 100, 2, 248, 7, 91, 7, 6, 1, 223,
- 227, 222, 188, 7, 4, 1, 223, 227, 222, 188, 7, 6, 1, 222, 132, 222, 188,
- 7, 4, 1, 222, 132, 222, 188, 7, 6, 1, 214, 106, 2, 248, 7, 91, 7, 4, 1,
- 214, 106, 2, 248, 7, 91, 7, 6, 1, 212, 106, 7, 4, 1, 212, 106, 7, 6, 1,
- 213, 145, 210, 159, 7, 4, 1, 213, 145, 210, 159, 7, 6, 1, 216, 153, 2,
- 91, 7, 4, 1, 216, 153, 2, 91, 7, 6, 1, 216, 153, 2, 218, 105, 216, 140,
- 248, 47, 7, 4, 1, 216, 153, 2, 218, 105, 216, 140, 248, 47, 7, 6, 1, 213,
- 245, 7, 4, 1, 213, 245, 7, 6, 1, 245, 73, 7, 4, 1, 245, 73, 7, 6, 1, 235,
- 178, 7, 4, 1, 235, 178, 7, 6, 1, 249, 215, 7, 4, 1, 249, 215, 58, 1, 214,
- 133, 7, 4, 1, 246, 77, 7, 4, 1, 232, 89, 7, 4, 1, 230, 85, 7, 4, 1, 227,
- 205, 7, 4, 1, 222, 131, 7, 1, 4, 6, 222, 131, 7, 4, 1, 215, 109, 7, 4, 1,
- 214, 197, 7, 6, 1, 235, 220, 249, 68, 7, 4, 1, 235, 220, 249, 68, 7, 6,
- 1, 235, 220, 245, 14, 7, 4, 1, 235, 220, 245, 14, 7, 6, 1, 235, 220, 243,
- 209, 7, 6, 1, 215, 94, 235, 220, 243, 209, 7, 4, 1, 215, 94, 235, 220,
- 243, 209, 7, 6, 1, 215, 94, 156, 7, 4, 1, 215, 94, 156, 7, 6, 1, 235,
- 220, 153, 7, 4, 1, 235, 220, 153, 7, 6, 1, 235, 220, 222, 93, 7, 4, 1,
- 235, 220, 222, 93, 7, 6, 1, 235, 220, 217, 153, 7, 4, 1, 235, 220, 217,
- 153, 58, 1, 121, 250, 39, 255, 23, 58, 1, 249, 234, 58, 1, 219, 253, 245,
- 106, 50, 7, 6, 1, 222, 1, 7, 4, 1, 222, 1, 7, 6, 1, 215, 94, 242, 67, 7,
- 4, 1, 233, 155, 2, 223, 58, 241, 59, 22, 252, 49, 7, 6, 1, 230, 31, 2,
- 248, 47, 7, 4, 1, 230, 31, 2, 248, 47, 7, 6, 1, 251, 75, 2, 130, 7, 4, 1,
- 251, 75, 2, 130, 7, 6, 1, 243, 210, 2, 226, 252, 91, 7, 4, 1, 243, 210,
- 2, 226, 252, 91, 7, 6, 1, 235, 30, 2, 226, 252, 91, 7, 4, 1, 235, 30, 2,
- 226, 252, 91, 7, 6, 1, 230, 31, 2, 226, 252, 91, 7, 4, 1, 230, 31, 2,
- 226, 252, 91, 7, 6, 1, 223, 227, 2, 226, 252, 91, 7, 4, 1, 223, 227, 2,
- 226, 252, 91, 7, 6, 1, 222, 94, 2, 226, 252, 91, 7, 4, 1, 222, 94, 2,
- 226, 252, 91, 7, 6, 1, 242, 68, 2, 103, 58, 1, 6, 242, 68, 2, 91, 58, 1,
- 4, 27, 226, 238, 7, 1, 4, 6, 215, 94, 194, 7, 245, 111, 1, 223, 52, 245,
- 14, 7, 245, 111, 1, 223, 52, 226, 109, 7, 245, 111, 1, 235, 200, 194, 7,
- 245, 111, 1, 240, 161, 232, 135, 7, 245, 111, 1, 254, 31, 194, 217, 231,
- 229, 219, 1, 61, 217, 231, 229, 219, 1, 74, 217, 231, 229, 219, 5, 246,
- 56, 217, 231, 229, 219, 1, 69, 217, 231, 229, 219, 1, 76, 217, 231, 229,
- 219, 1, 78, 217, 231, 229, 219, 5, 242, 4, 217, 231, 229, 219, 1, 234,
- 34, 217, 231, 229, 219, 1, 234, 111, 217, 231, 229, 219, 1, 242, 181,
- 217, 231, 229, 219, 1, 242, 231, 217, 231, 229, 219, 5, 254, 83, 217,
- 231, 229, 219, 1, 249, 246, 217, 231, 229, 219, 1, 250, 94, 217, 231,
- 229, 219, 1, 235, 74, 217, 231, 229, 219, 1, 235, 115, 217, 231, 229,
- 219, 1, 215, 134, 217, 231, 229, 219, 1, 215, 140, 217, 231, 229, 219, 1,
- 248, 113, 217, 231, 229, 219, 1, 248, 122, 217, 231, 229, 219, 1, 112,
- 217, 231, 229, 219, 1, 216, 157, 217, 231, 229, 219, 1, 247, 153, 217,
- 231, 229, 219, 1, 248, 15, 217, 231, 229, 219, 1, 228, 79, 217, 231, 229,
- 219, 1, 225, 19, 217, 231, 229, 219, 1, 225, 124, 217, 231, 229, 219, 1,
- 251, 213, 217, 231, 229, 219, 1, 252, 18, 217, 231, 229, 219, 1, 230,
- 166, 217, 231, 229, 219, 1, 222, 213, 217, 231, 229, 219, 1, 232, 162,
- 217, 231, 229, 219, 1, 222, 167, 217, 231, 229, 219, 1, 219, 60, 217,
- 231, 229, 219, 1, 241, 75, 217, 231, 229, 219, 25, 5, 61, 217, 231, 229,
- 219, 25, 5, 74, 217, 231, 229, 219, 25, 5, 69, 217, 231, 229, 219, 25, 5,
- 76, 217, 231, 229, 219, 25, 5, 226, 187, 217, 231, 229, 219, 225, 15,
- 231, 163, 217, 231, 229, 219, 225, 15, 231, 162, 217, 231, 229, 219, 225,
- 15, 231, 161, 217, 231, 229, 219, 225, 15, 231, 160, 228, 61, 235, 247,
- 244, 10, 123, 224, 24, 228, 61, 235, 247, 244, 10, 123, 242, 34, 228, 61,
- 235, 247, 244, 10, 134, 224, 22, 228, 61, 235, 247, 244, 10, 123, 219,
- 119, 228, 61, 235, 247, 244, 10, 123, 245, 196, 228, 61, 235, 247, 244,
- 10, 134, 219, 118, 228, 61, 235, 247, 224, 25, 79, 228, 61, 235, 247,
- 225, 43, 79, 228, 61, 235, 247, 222, 120, 79, 228, 61, 235, 247, 224, 26,
- 79, 225, 147, 1, 176, 225, 147, 1, 234, 138, 225, 147, 1, 243, 142, 225,
- 147, 1, 229, 82, 225, 147, 1, 251, 41, 225, 147, 1, 250, 165, 225, 147,
- 1, 235, 147, 225, 147, 1, 227, 169, 225, 147, 1, 217, 106, 225, 147, 1,
- 216, 209, 225, 147, 1, 248, 229, 225, 147, 1, 198, 225, 147, 1, 191, 225,
- 147, 1, 225, 150, 225, 147, 1, 252, 199, 225, 147, 1, 186, 225, 147, 1,
- 215, 184, 225, 147, 1, 215, 176, 225, 147, 1, 246, 46, 225, 147, 1, 212,
- 65, 225, 147, 1, 210, 82, 225, 147, 1, 210, 116, 225, 147, 1, 4, 61, 225,
- 147, 1, 192, 225, 147, 1, 205, 225, 147, 1, 233, 141, 225, 147, 1, 220,
- 104, 225, 147, 1, 206, 225, 147, 1, 162, 225, 147, 1, 61, 225, 147, 1,
- 74, 225, 147, 1, 69, 225, 147, 1, 76, 225, 147, 1, 78, 225, 147, 1, 224,
- 91, 225, 147, 1, 211, 165, 225, 147, 1, 244, 204, 225, 147, 1, 243, 36,
- 225, 147, 1, 245, 217, 225, 147, 218, 74, 1, 212, 65, 225, 147, 218, 74,
- 1, 192, 225, 147, 1, 215, 157, 225, 147, 1, 215, 145, 225, 147, 1, 248,
- 143, 225, 147, 1, 228, 115, 225, 147, 1, 254, 149, 192, 225, 147, 1, 213,
- 134, 220, 104, 225, 147, 1, 213, 135, 162, 225, 147, 1, 253, 231, 244,
- 204, 225, 147, 218, 74, 1, 205, 225, 147, 218, 26, 1, 205, 225, 147, 1,
- 251, 7, 225, 147, 219, 157, 241, 243, 79, 225, 147, 52, 241, 243, 79,
- 225, 147, 164, 220, 97, 225, 147, 164, 52, 220, 97, 179, 5, 254, 83, 179,
- 5, 213, 147, 179, 1, 61, 179, 1, 255, 82, 179, 1, 74, 179, 1, 236, 40,
- 179, 1, 69, 179, 1, 214, 118, 179, 1, 149, 153, 179, 1, 149, 222, 182,
- 179, 1, 149, 156, 179, 1, 149, 232, 191, 179, 1, 76, 179, 1, 245, 217,
- 179, 1, 254, 210, 179, 1, 78, 179, 1, 226, 187, 179, 1, 253, 200, 179, 1,
- 176, 179, 1, 234, 138, 179, 1, 243, 142, 179, 1, 243, 0, 179, 1, 229, 82,
- 179, 1, 251, 41, 179, 1, 250, 165, 179, 1, 235, 147, 179, 1, 235, 120,
- 179, 1, 227, 169, 179, 1, 215, 157, 179, 1, 215, 145, 179, 1, 248, 143,
- 179, 1, 248, 127, 179, 1, 228, 115, 179, 1, 217, 106, 179, 1, 216, 209,
- 179, 1, 248, 229, 179, 1, 248, 33, 179, 1, 198, 179, 1, 191, 179, 1, 225,
- 150, 179, 1, 252, 199, 179, 1, 252, 26, 179, 1, 186, 179, 1, 192, 179, 1,
- 205, 179, 1, 233, 141, 179, 1, 214, 27, 179, 1, 220, 104, 179, 1, 218,
- 225, 179, 1, 206, 179, 1, 162, 179, 1, 232, 190, 179, 117, 5, 242, 51,
- 179, 25, 5, 255, 82, 179, 25, 5, 74, 179, 25, 5, 236, 40, 179, 25, 5, 69,
- 179, 25, 5, 214, 118, 179, 25, 5, 149, 153, 179, 25, 5, 149, 222, 182,
- 179, 25, 5, 149, 156, 179, 25, 5, 149, 232, 191, 179, 25, 5, 76, 179, 25,
- 5, 245, 217, 179, 25, 5, 254, 210, 179, 25, 5, 78, 179, 25, 5, 226, 187,
- 179, 25, 5, 253, 200, 179, 5, 213, 152, 179, 248, 186, 179, 52, 248, 186,
- 179, 21, 210, 86, 179, 21, 111, 179, 21, 105, 179, 21, 158, 179, 21, 161,
- 179, 21, 190, 179, 21, 195, 179, 21, 199, 179, 21, 196, 179, 21, 201, 38,
- 84, 21, 210, 86, 38, 84, 21, 111, 38, 84, 21, 105, 38, 84, 21, 158, 38,
- 84, 21, 161, 38, 84, 21, 190, 38, 84, 21, 195, 38, 84, 21, 199, 38, 84,
- 21, 196, 38, 84, 21, 201, 38, 84, 1, 61, 38, 84, 1, 69, 38, 84, 1, 176,
- 38, 84, 1, 198, 38, 84, 1, 191, 38, 84, 1, 205, 38, 84, 1, 213, 176, 38,
- 84, 5, 253, 183, 84, 5, 219, 19, 251, 7, 84, 5, 251, 8, 213, 152, 84, 5,
- 52, 251, 8, 213, 152, 84, 5, 251, 8, 105, 84, 5, 251, 8, 158, 84, 5, 251,
- 8, 253, 183, 84, 5, 224, 127, 84, 243, 107, 244, 111, 84, 250, 246, 84,
- 241, 237, 234, 194, 232, 248, 21, 210, 86, 234, 194, 232, 248, 21, 111,
- 234, 194, 232, 248, 21, 105, 234, 194, 232, 248, 21, 158, 234, 194, 232,
- 248, 21, 161, 234, 194, 232, 248, 21, 190, 234, 194, 232, 248, 21, 195,
- 234, 194, 232, 248, 21, 199, 234, 194, 232, 248, 21, 196, 234, 194, 232,
- 248, 21, 201, 234, 194, 232, 248, 1, 176, 234, 194, 232, 248, 1, 234,
- 138, 234, 194, 232, 248, 1, 243, 142, 234, 194, 232, 248, 1, 229, 82,
- 234, 194, 232, 248, 1, 206, 234, 194, 232, 248, 1, 220, 104, 234, 194,
- 232, 248, 1, 210, 116, 234, 194, 232, 248, 1, 227, 169, 234, 194, 232,
- 248, 1, 217, 106, 234, 194, 232, 248, 1, 240, 233, 234, 194, 232, 248, 1,
- 198, 234, 194, 232, 248, 1, 191, 234, 194, 232, 248, 1, 225, 150, 234,
- 194, 232, 248, 1, 186, 234, 194, 232, 248, 1, 248, 229, 234, 194, 232,
- 248, 1, 252, 199, 234, 194, 232, 248, 1, 205, 234, 194, 232, 248, 1, 192,
- 234, 194, 232, 248, 1, 233, 141, 234, 194, 232, 248, 1, 212, 65, 234,
- 194, 232, 248, 1, 216, 209, 234, 194, 232, 248, 1, 162, 234, 194, 232,
- 248, 1, 214, 27, 234, 194, 232, 248, 1, 251, 41, 234, 194, 232, 248, 1,
- 61, 234, 194, 232, 248, 1, 226, 238, 234, 194, 232, 248, 1, 74, 234, 194,
- 232, 248, 1, 226, 187, 234, 194, 232, 248, 25, 214, 214, 234, 194, 232,
- 248, 25, 76, 234, 194, 232, 248, 25, 69, 234, 194, 232, 248, 25, 245,
- 217, 234, 194, 232, 248, 25, 78, 234, 194, 232, 248, 138, 225, 33, 234,
- 194, 232, 248, 138, 251, 20, 234, 194, 232, 248, 138, 251, 21, 225, 33,
- 234, 194, 232, 248, 5, 249, 85, 234, 194, 232, 248, 5, 219, 201, 223, 96,
- 1, 176, 223, 96, 1, 243, 142, 223, 96, 1, 229, 82, 223, 96, 1, 217, 106,
- 223, 96, 1, 248, 229, 223, 96, 1, 198, 223, 96, 1, 191, 223, 96, 1, 252,
- 199, 223, 96, 1, 186, 223, 96, 1, 251, 41, 223, 96, 1, 235, 147, 223, 96,
- 1, 227, 169, 223, 96, 1, 206, 223, 96, 1, 205, 223, 96, 1, 233, 141, 223,
- 96, 1, 192, 223, 96, 1, 212, 65, 223, 96, 1, 162, 223, 96, 1, 231, 129,
- 223, 96, 1, 229, 61, 223, 96, 1, 229, 153, 223, 96, 1, 227, 139, 223, 96,
- 1, 61, 223, 96, 25, 5, 74, 223, 96, 25, 5, 69, 223, 96, 25, 5, 76, 223,
- 96, 25, 5, 254, 210, 223, 96, 25, 5, 78, 223, 96, 25, 5, 253, 200, 223,
- 96, 25, 5, 245, 63, 223, 96, 25, 5, 245, 241, 223, 96, 117, 5, 229, 84,
- 223, 96, 117, 5, 230, 30, 223, 96, 117, 5, 153, 223, 96, 117, 5, 242, 67,
- 223, 96, 213, 152, 223, 96, 221, 175, 79, 24, 100, 216, 98, 24, 100, 216,
- 97, 24, 100, 216, 95, 24, 100, 216, 100, 24, 100, 223, 24, 24, 100, 223,
- 8, 24, 100, 223, 3, 24, 100, 223, 5, 24, 100, 223, 21, 24, 100, 223, 14,
- 24, 100, 223, 7, 24, 100, 223, 26, 24, 100, 223, 9, 24, 100, 223, 28, 24,
- 100, 223, 25, 24, 100, 230, 218, 24, 100, 230, 209, 24, 100, 230, 212,
- 24, 100, 225, 83, 24, 100, 225, 94, 24, 100, 225, 95, 24, 100, 218, 209,
- 24, 100, 236, 53, 24, 100, 236, 60, 24, 100, 218, 220, 24, 100, 218, 207,
- 24, 100, 225, 133, 24, 100, 241, 174, 24, 100, 218, 204, 155, 5, 226, 31,
- 155, 5, 250, 195, 155, 5, 233, 72, 155, 5, 211, 243, 155, 1, 61, 155, 1,
- 240, 161, 234, 197, 155, 1, 74, 155, 1, 236, 40, 155, 1, 69, 155, 1, 226,
- 94, 250, 171, 155, 1, 229, 83, 233, 34, 155, 1, 229, 83, 233, 35, 223,
- 145, 155, 1, 76, 155, 1, 254, 210, 155, 1, 78, 155, 1, 176, 155, 1, 235,
- 19, 221, 230, 155, 1, 235, 19, 230, 71, 155, 1, 243, 142, 155, 1, 243,
- 143, 230, 71, 155, 1, 229, 82, 155, 1, 251, 41, 155, 1, 251, 42, 230, 71,
- 155, 1, 235, 147, 155, 1, 227, 170, 230, 71, 155, 1, 235, 148, 231, 212,
- 155, 1, 227, 169, 155, 1, 215, 157, 155, 1, 215, 158, 231, 212, 155, 1,
- 248, 143, 155, 1, 248, 144, 231, 212, 155, 1, 229, 234, 230, 71, 155, 1,
- 217, 106, 155, 1, 217, 107, 230, 71, 155, 1, 248, 229, 155, 1, 248, 230,
- 231, 212, 155, 1, 198, 155, 1, 191, 155, 1, 226, 94, 230, 71, 155, 1,
- 252, 199, 155, 1, 252, 200, 230, 71, 155, 1, 186, 155, 1, 192, 155, 1,
- 205, 155, 1, 223, 191, 254, 219, 155, 1, 233, 141, 155, 1, 212, 65, 155,
- 1, 222, 36, 230, 71, 155, 1, 222, 36, 231, 212, 155, 1, 206, 155, 1, 162,
- 155, 5, 250, 196, 216, 251, 155, 25, 5, 217, 48, 155, 25, 5, 216, 36,
- 155, 25, 5, 211, 190, 155, 25, 5, 211, 191, 231, 74, 155, 25, 5, 218, 48,
- 155, 25, 5, 218, 49, 231, 62, 155, 25, 5, 217, 66, 155, 25, 5, 247, 202,
- 230, 70, 155, 25, 5, 225, 187, 155, 117, 5, 234, 164, 155, 117, 5, 225,
- 199, 155, 117, 5, 251, 27, 155, 226, 44, 155, 43, 223, 72, 155, 44, 223,
- 72, 155, 226, 83, 254, 125, 155, 226, 83, 231, 229, 155, 226, 83, 232,
- 93, 155, 226, 83, 211, 238, 155, 226, 83, 226, 45, 155, 226, 83, 232,
- 211, 155, 226, 83, 232, 87, 155, 226, 83, 255, 2, 155, 226, 83, 255, 3,
- 255, 2, 155, 226, 83, 225, 54, 155, 215, 94, 226, 83, 225, 54, 155, 226,
- 40, 155, 21, 210, 86, 155, 21, 111, 155, 21, 105, 155, 21, 158, 155, 21,
- 161, 155, 21, 190, 155, 21, 195, 155, 21, 199, 155, 21, 196, 155, 21,
- 201, 155, 226, 83, 216, 70, 215, 107, 155, 226, 83, 235, 174, 172, 1, 61,
- 172, 1, 74, 172, 1, 69, 172, 1, 76, 172, 1, 254, 210, 172, 1, 78, 172, 1,
- 176, 172, 1, 234, 138, 172, 1, 243, 142, 172, 1, 243, 0, 172, 1, 228,
- 250, 172, 1, 229, 82, 172, 1, 250, 165, 172, 1, 250, 120, 172, 1, 235,
- 147, 172, 1, 235, 120, 172, 1, 228, 240, 172, 1, 228, 242, 172, 1, 228,
- 241, 172, 1, 217, 106, 172, 1, 216, 209, 172, 1, 248, 229, 172, 1, 248,
- 33, 172, 1, 227, 211, 172, 1, 198, 172, 1, 248, 143, 172, 1, 191, 172, 1,
- 224, 223, 172, 1, 225, 150, 172, 1, 252, 199, 172, 1, 252, 26, 172, 1,
- 230, 100, 172, 1, 186, 172, 1, 252, 119, 172, 1, 192, 172, 1, 205, 172,
- 1, 233, 141, 172, 1, 214, 27, 172, 1, 218, 225, 172, 1, 206, 172, 1, 162,
- 172, 25, 5, 255, 82, 172, 25, 5, 74, 172, 25, 5, 236, 40, 172, 25, 5,
- 245, 203, 172, 25, 5, 69, 172, 25, 5, 226, 238, 172, 25, 5, 78, 172, 25,
- 5, 254, 210, 172, 25, 5, 253, 200, 172, 25, 5, 214, 214, 172, 117, 5,
- 192, 172, 117, 5, 205, 172, 117, 5, 233, 141, 172, 117, 5, 212, 65, 172,
- 1, 40, 235, 29, 172, 1, 40, 243, 209, 172, 1, 40, 229, 84, 172, 117, 5,
- 40, 229, 84, 172, 1, 40, 250, 166, 172, 1, 40, 217, 153, 172, 1, 40, 230,
- 30, 172, 1, 40, 226, 109, 172, 1, 40, 211, 117, 172, 1, 40, 153, 172, 1,
- 40, 156, 172, 1, 40, 218, 228, 172, 117, 5, 40, 194, 172, 117, 5, 40,
- 242, 67, 172, 21, 210, 86, 172, 21, 111, 172, 21, 105, 172, 21, 158, 172,
- 21, 161, 172, 21, 190, 172, 21, 195, 172, 21, 199, 172, 21, 196, 172, 21,
- 201, 172, 224, 144, 218, 253, 172, 224, 144, 248, 186, 172, 224, 144, 52,
- 248, 186, 172, 224, 144, 215, 212, 248, 186, 68, 1, 234, 132, 243, 142,
- 68, 1, 234, 132, 251, 41, 68, 1, 234, 132, 250, 165, 68, 1, 234, 132,
- 235, 147, 68, 1, 234, 132, 235, 120, 68, 1, 234, 132, 227, 169, 68, 1,
- 234, 132, 215, 157, 68, 1, 234, 132, 215, 145, 68, 1, 234, 132, 248, 143,
- 68, 1, 234, 132, 248, 127, 68, 1, 234, 132, 248, 33, 68, 1, 234, 132,
- 198, 68, 1, 234, 132, 206, 68, 1, 234, 132, 162, 68, 1, 234, 132, 241,
- 196, 68, 1, 234, 132, 244, 204, 68, 58, 1, 234, 132, 223, 112, 68, 1,
- 234, 132, 211, 165, 68, 1, 234, 132, 210, 116, 68, 1, 234, 132, 205, 68,
- 232, 151, 234, 132, 227, 1, 68, 232, 151, 234, 132, 224, 46, 68, 232,
- 151, 234, 132, 241, 128, 68, 16, 254, 199, 245, 38, 68, 16, 254, 199,
- 111, 68, 16, 254, 199, 105, 68, 1, 254, 199, 205, 68, 5, 226, 27, 234,
- 219, 216, 31, 39, 208, 1, 121, 234, 34, 39, 208, 1, 125, 234, 34, 39,
- 208, 1, 121, 234, 111, 39, 208, 1, 125, 234, 111, 39, 208, 1, 121, 234,
- 120, 39, 208, 1, 125, 234, 120, 39, 208, 1, 121, 242, 181, 39, 208, 1,
- 125, 242, 181, 39, 208, 1, 121, 229, 9, 39, 208, 1, 125, 229, 9, 39, 208,
- 1, 121, 249, 246, 39, 208, 1, 125, 249, 246, 39, 208, 1, 121, 250, 94,
- 39, 208, 1, 125, 250, 94, 39, 208, 1, 121, 219, 60, 39, 208, 1, 125, 219,
- 60, 39, 208, 1, 121, 227, 138, 39, 208, 1, 125, 227, 138, 39, 208, 1,
- 121, 247, 153, 39, 208, 1, 125, 247, 153, 39, 208, 1, 121, 112, 39, 208,
- 1, 125, 112, 39, 208, 1, 121, 216, 157, 39, 208, 1, 125, 216, 157, 39,
- 208, 1, 121, 228, 79, 39, 208, 1, 125, 228, 79, 39, 208, 1, 121, 251,
- 213, 39, 208, 1, 125, 251, 213, 39, 208, 1, 121, 225, 19, 39, 208, 1,
- 125, 225, 19, 39, 208, 1, 121, 225, 124, 39, 208, 1, 125, 225, 124, 39,
- 208, 1, 121, 244, 51, 39, 208, 1, 125, 244, 51, 39, 208, 1, 121, 230,
- 166, 39, 208, 1, 125, 230, 166, 39, 208, 1, 121, 210, 244, 39, 208, 1,
- 125, 210, 244, 39, 208, 1, 121, 222, 213, 39, 208, 1, 125, 222, 213, 39,
- 208, 1, 121, 232, 162, 39, 208, 1, 125, 232, 162, 39, 208, 1, 121, 213,
- 138, 39, 208, 1, 125, 213, 138, 39, 208, 1, 121, 241, 75, 39, 208, 1,
- 125, 241, 75, 39, 208, 1, 121, 78, 39, 208, 1, 125, 78, 39, 208, 231,
- 209, 234, 236, 39, 208, 25, 255, 82, 39, 208, 25, 74, 39, 208, 25, 214,
- 214, 39, 208, 25, 69, 39, 208, 25, 76, 39, 208, 25, 78, 39, 208, 231,
- 209, 234, 114, 39, 208, 25, 240, 126, 39, 208, 25, 214, 213, 39, 208, 25,
- 214, 229, 39, 208, 25, 253, 198, 39, 208, 25, 253, 175, 39, 208, 25, 254,
- 131, 39, 208, 25, 254, 144, 39, 208, 138, 231, 209, 245, 188, 39, 208,
- 138, 231, 209, 227, 210, 39, 208, 138, 231, 209, 216, 157, 39, 208, 138,
- 231, 209, 219, 44, 39, 208, 16, 234, 19, 39, 208, 16, 227, 210, 39, 208,
- 16, 221, 255, 39, 208, 16, 241, 76, 241, 71, 39, 208, 16, 234, 28, 234,
- 27, 188, 187, 1, 76, 188, 187, 1, 78, 188, 187, 1, 250, 165, 188, 187, 1,
- 227, 169, 188, 187, 1, 215, 157, 188, 187, 1, 215, 145, 188, 187, 1, 248,
- 143, 188, 187, 1, 248, 127, 188, 187, 1, 228, 115, 188, 187, 1, 220, 104,
- 188, 187, 1, 218, 225, 188, 187, 25, 5, 236, 40, 188, 187, 25, 5, 214,
- 118, 188, 187, 25, 5, 255, 46, 188, 187, 25, 5, 253, 200, 188, 187, 25,
- 5, 255, 39, 188, 187, 250, 133, 188, 187, 254, 215, 234, 104, 188, 187,
- 254, 111, 188, 187, 3, 223, 77, 79, 188, 187, 211, 209, 223, 77, 79, 188,
- 187, 25, 5, 213, 147, 188, 187, 213, 152, 29, 3, 215, 138, 29, 3, 215,
- 141, 29, 3, 215, 144, 29, 3, 215, 142, 29, 3, 215, 143, 29, 3, 215, 140,
- 29, 3, 248, 121, 29, 3, 248, 123, 29, 3, 248, 126, 29, 3, 248, 124, 29,
- 3, 248, 125, 29, 3, 248, 122, 29, 3, 246, 36, 29, 3, 246, 39, 29, 3, 246,
- 45, 29, 3, 246, 43, 29, 3, 246, 44, 29, 3, 246, 37, 29, 3, 250, 212, 29,
- 3, 250, 206, 29, 3, 250, 208, 29, 3, 250, 211, 29, 3, 250, 209, 29, 3,
- 250, 210, 29, 3, 250, 207, 29, 3, 252, 119, 29, 3, 252, 98, 29, 3, 252,
- 110, 29, 3, 252, 118, 29, 3, 252, 113, 29, 3, 252, 114, 29, 3, 252, 102,
- 188, 187, 1, 234, 25, 188, 187, 1, 221, 255, 188, 187, 1, 233, 115, 188,
- 187, 1, 230, 177, 188, 187, 1, 191, 188, 187, 1, 198, 188, 187, 1, 250,
- 110, 188, 187, 1, 216, 91, 188, 187, 1, 234, 107, 188, 187, 1, 228, 255,
- 188, 187, 1, 216, 151, 188, 187, 1, 212, 60, 188, 187, 1, 211, 69, 188,
- 187, 1, 240, 223, 188, 187, 1, 214, 190, 188, 187, 1, 74, 188, 187, 1,
- 225, 145, 188, 187, 1, 253, 210, 188, 187, 1, 242, 174, 188, 187, 1, 235,
- 118, 188, 187, 1, 223, 169, 188, 187, 1, 252, 199, 188, 187, 1, 235, 106,
- 188, 187, 1, 247, 227, 188, 187, 1, 242, 228, 188, 187, 1, 248, 13, 188,
- 187, 1, 252, 24, 188, 187, 1, 234, 26, 232, 134, 188, 187, 1, 233, 116,
- 232, 134, 188, 187, 1, 230, 178, 232, 134, 188, 187, 1, 226, 94, 232,
- 134, 188, 187, 1, 229, 234, 232, 134, 188, 187, 1, 216, 92, 232, 134,
- 188, 187, 1, 229, 0, 232, 134, 188, 187, 1, 240, 161, 232, 134, 188, 187,
- 25, 5, 226, 199, 188, 187, 25, 5, 236, 4, 188, 187, 25, 5, 254, 130, 188,
- 187, 25, 5, 211, 38, 188, 187, 25, 5, 219, 34, 188, 187, 25, 5, 214, 187,
- 188, 187, 25, 5, 250, 131, 188, 187, 25, 5, 227, 195, 188, 187, 250, 132,
- 188, 187, 232, 90, 235, 156, 188, 187, 254, 54, 235, 156, 188, 187, 21,
- 210, 86, 188, 187, 21, 111, 188, 187, 21, 105, 188, 187, 21, 158, 188,
- 187, 21, 161, 188, 187, 21, 190, 188, 187, 21, 195, 188, 187, 21, 199,
- 188, 187, 21, 196, 188, 187, 21, 201, 24, 143, 227, 81, 24, 143, 227, 86,
- 24, 143, 210, 243, 24, 143, 210, 242, 24, 143, 210, 241, 24, 143, 215,
- 23, 24, 143, 215, 26, 24, 143, 210, 210, 24, 143, 210, 206, 24, 143, 245,
- 62, 24, 143, 245, 60, 24, 143, 245, 61, 24, 143, 245, 58, 24, 143, 240,
- 151, 24, 143, 240, 150, 24, 143, 240, 148, 24, 143, 240, 149, 24, 143,
- 240, 154, 24, 143, 240, 147, 24, 143, 240, 146, 24, 143, 240, 156, 24,
- 143, 254, 41, 24, 143, 254, 40, 24, 90, 228, 224, 24, 90, 228, 230, 24,
- 90, 218, 206, 24, 90, 218, 205, 24, 90, 216, 97, 24, 90, 216, 95, 24, 90,
- 216, 94, 24, 90, 216, 100, 24, 90, 216, 101, 24, 90, 216, 93, 24, 90,
- 223, 8, 24, 90, 223, 23, 24, 90, 218, 212, 24, 90, 223, 20, 24, 90, 223,
- 10, 24, 90, 223, 12, 24, 90, 222, 255, 24, 90, 223, 0, 24, 90, 234, 224,
- 24, 90, 230, 217, 24, 90, 230, 211, 24, 90, 218, 216, 24, 90, 230, 214,
- 24, 90, 230, 220, 24, 90, 225, 79, 24, 90, 225, 88, 24, 90, 225, 92, 24,
- 90, 218, 214, 24, 90, 225, 82, 24, 90, 225, 96, 24, 90, 225, 97, 24, 90,
- 219, 142, 24, 90, 219, 145, 24, 90, 218, 210, 24, 90, 218, 208, 24, 90,
- 219, 140, 24, 90, 219, 148, 24, 90, 219, 149, 24, 90, 219, 134, 24, 90,
- 219, 147, 24, 90, 226, 34, 24, 90, 226, 35, 24, 90, 211, 24, 24, 90, 211,
- 25, 24, 90, 250, 52, 24, 90, 250, 51, 24, 90, 218, 221, 24, 90, 225, 131,
- 24, 90, 225, 130, 10, 14, 238, 31, 10, 14, 238, 30, 10, 14, 238, 29, 10,
- 14, 238, 28, 10, 14, 238, 27, 10, 14, 238, 26, 10, 14, 238, 25, 10, 14,
- 238, 24, 10, 14, 238, 23, 10, 14, 238, 22, 10, 14, 238, 21, 10, 14, 238,
- 20, 10, 14, 238, 19, 10, 14, 238, 18, 10, 14, 238, 17, 10, 14, 238, 16,
- 10, 14, 238, 15, 10, 14, 238, 14, 10, 14, 238, 13, 10, 14, 238, 12, 10,
- 14, 238, 11, 10, 14, 238, 10, 10, 14, 238, 9, 10, 14, 238, 8, 10, 14,
- 238, 7, 10, 14, 238, 6, 10, 14, 238, 5, 10, 14, 238, 4, 10, 14, 238, 3,
- 10, 14, 238, 2, 10, 14, 238, 1, 10, 14, 238, 0, 10, 14, 237, 255, 10, 14,
- 237, 254, 10, 14, 237, 253, 10, 14, 237, 252, 10, 14, 237, 251, 10, 14,
- 237, 250, 10, 14, 237, 249, 10, 14, 237, 248, 10, 14, 237, 247, 10, 14,
- 237, 246, 10, 14, 237, 245, 10, 14, 237, 244, 10, 14, 237, 243, 10, 14,
- 237, 242, 10, 14, 237, 241, 10, 14, 237, 240, 10, 14, 237, 239, 10, 14,
- 237, 238, 10, 14, 237, 237, 10, 14, 237, 236, 10, 14, 237, 235, 10, 14,
- 237, 234, 10, 14, 237, 233, 10, 14, 237, 232, 10, 14, 237, 231, 10, 14,
- 237, 230, 10, 14, 237, 229, 10, 14, 237, 228, 10, 14, 237, 227, 10, 14,
- 237, 226, 10, 14, 237, 225, 10, 14, 237, 224, 10, 14, 237, 223, 10, 14,
- 237, 222, 10, 14, 237, 221, 10, 14, 237, 220, 10, 14, 237, 219, 10, 14,
- 237, 218, 10, 14, 237, 217, 10, 14, 237, 216, 10, 14, 237, 215, 10, 14,
- 237, 214, 10, 14, 237, 213, 10, 14, 237, 212, 10, 14, 237, 211, 10, 14,
- 237, 210, 10, 14, 237, 209, 10, 14, 237, 208, 10, 14, 237, 207, 10, 14,
- 237, 206, 10, 14, 237, 205, 10, 14, 237, 204, 10, 14, 237, 203, 10, 14,
- 237, 202, 10, 14, 237, 201, 10, 14, 237, 200, 10, 14, 237, 199, 10, 14,
- 237, 198, 10, 14, 237, 197, 10, 14, 237, 196, 10, 14, 237, 195, 10, 14,
- 237, 194, 10, 14, 237, 193, 10, 14, 237, 192, 10, 14, 237, 191, 10, 14,
- 237, 190, 10, 14, 237, 189, 10, 14, 237, 188, 10, 14, 237, 187, 10, 14,
- 237, 186, 10, 14, 237, 185, 10, 14, 237, 184, 10, 14, 237, 183, 10, 14,
- 237, 182, 10, 14, 237, 181, 10, 14, 237, 180, 10, 14, 237, 179, 10, 14,
- 237, 178, 10, 14, 237, 177, 10, 14, 237, 176, 10, 14, 237, 175, 10, 14,
- 237, 174, 10, 14, 237, 173, 10, 14, 237, 172, 10, 14, 237, 171, 10, 14,
- 237, 170, 10, 14, 237, 169, 10, 14, 237, 168, 10, 14, 237, 167, 10, 14,
- 237, 166, 10, 14, 237, 165, 10, 14, 237, 164, 10, 14, 237, 163, 10, 14,
- 237, 162, 10, 14, 237, 161, 10, 14, 237, 160, 10, 14, 237, 159, 10, 14,
- 237, 158, 10, 14, 237, 157, 10, 14, 237, 156, 10, 14, 237, 155, 10, 14,
- 237, 154, 10, 14, 237, 153, 10, 14, 237, 152, 10, 14, 237, 151, 10, 14,
- 237, 150, 10, 14, 237, 149, 10, 14, 237, 148, 10, 14, 237, 147, 10, 14,
- 237, 146, 10, 14, 237, 145, 10, 14, 237, 144, 10, 14, 237, 143, 10, 14,
- 237, 142, 10, 14, 237, 141, 10, 14, 237, 140, 10, 14, 237, 139, 10, 14,
- 237, 138, 10, 14, 237, 137, 10, 14, 237, 136, 10, 14, 237, 135, 10, 14,
- 237, 134, 10, 14, 237, 133, 10, 14, 237, 132, 10, 14, 237, 131, 10, 14,
- 237, 130, 10, 14, 237, 129, 10, 14, 237, 128, 10, 14, 237, 127, 10, 14,
- 237, 126, 10, 14, 237, 125, 10, 14, 237, 124, 10, 14, 237, 123, 10, 14,
- 237, 122, 10, 14, 237, 121, 10, 14, 237, 120, 10, 14, 237, 119, 10, 14,
- 237, 118, 10, 14, 237, 117, 10, 14, 237, 116, 10, 14, 237, 115, 10, 14,
- 237, 114, 10, 14, 237, 113, 10, 14, 237, 112, 10, 14, 237, 111, 10, 14,
- 237, 110, 10, 14, 237, 109, 10, 14, 237, 108, 10, 14, 237, 107, 10, 14,
- 237, 106, 10, 14, 237, 105, 10, 14, 237, 104, 10, 14, 237, 103, 10, 14,
- 237, 102, 10, 14, 237, 101, 10, 14, 237, 100, 10, 14, 237, 99, 10, 14,
- 237, 98, 10, 14, 237, 97, 10, 14, 237, 96, 10, 14, 237, 95, 10, 14, 237,
- 94, 10, 14, 237, 93, 10, 14, 237, 92, 10, 14, 237, 91, 10, 14, 237, 90,
- 10, 14, 237, 89, 10, 14, 237, 88, 10, 14, 237, 87, 10, 14, 237, 86, 10,
- 14, 237, 85, 10, 14, 237, 84, 10, 14, 237, 83, 10, 14, 237, 82, 10, 14,
- 237, 81, 10, 14, 237, 80, 10, 14, 237, 79, 10, 14, 237, 78, 10, 14, 237,
- 77, 10, 14, 237, 76, 10, 14, 237, 75, 10, 14, 237, 74, 10, 14, 237, 73,
- 10, 14, 237, 72, 10, 14, 237, 71, 10, 14, 237, 70, 10, 14, 237, 69, 10,
- 14, 237, 68, 10, 14, 237, 67, 10, 14, 237, 66, 10, 14, 237, 65, 10, 14,
- 237, 64, 10, 14, 237, 63, 10, 14, 237, 62, 10, 14, 237, 61, 10, 14, 237,
- 60, 10, 14, 237, 59, 10, 14, 237, 58, 10, 14, 237, 57, 10, 14, 237, 56,
- 10, 14, 237, 55, 10, 14, 237, 54, 10, 14, 237, 53, 10, 14, 237, 52, 10,
- 14, 237, 51, 10, 14, 237, 50, 10, 14, 237, 49, 10, 14, 237, 48, 10, 14,
- 237, 47, 10, 14, 237, 46, 10, 14, 237, 45, 10, 14, 237, 44, 10, 14, 237,
- 43, 10, 14, 237, 42, 10, 14, 237, 41, 10, 14, 237, 40, 10, 14, 237, 39,
- 10, 14, 237, 38, 10, 14, 237, 37, 10, 14, 237, 36, 10, 14, 237, 35, 10,
- 14, 237, 34, 10, 14, 237, 33, 10, 14, 237, 32, 10, 14, 237, 31, 10, 14,
- 237, 30, 10, 14, 237, 29, 10, 14, 237, 28, 10, 14, 237, 27, 10, 14, 237,
- 26, 10, 14, 237, 25, 10, 14, 237, 24, 10, 14, 237, 23, 10, 14, 237, 22,
- 10, 14, 237, 21, 10, 14, 237, 20, 10, 14, 237, 19, 10, 14, 237, 18, 10,
- 14, 237, 17, 10, 14, 237, 16, 10, 14, 237, 15, 10, 14, 237, 14, 10, 14,
- 237, 13, 10, 14, 237, 12, 10, 14, 237, 11, 10, 14, 237, 10, 10, 14, 237,
- 9, 10, 14, 237, 8, 10, 14, 237, 7, 10, 14, 237, 6, 10, 14, 237, 5, 10,
- 14, 237, 4, 10, 14, 237, 3, 10, 14, 237, 2, 10, 14, 237, 1, 10, 14, 237,
- 0, 10, 14, 236, 255, 10, 14, 236, 254, 10, 14, 236, 253, 10, 14, 236,
- 252, 10, 14, 236, 251, 10, 14, 236, 250, 10, 14, 236, 249, 10, 14, 236,
- 248, 10, 14, 236, 247, 10, 14, 236, 246, 10, 14, 236, 245, 10, 14, 236,
- 244, 10, 14, 236, 243, 10, 14, 236, 242, 10, 14, 236, 241, 10, 14, 236,
- 240, 10, 14, 236, 239, 10, 14, 236, 238, 10, 14, 236, 237, 10, 14, 236,
- 236, 10, 14, 236, 235, 10, 14, 236, 234, 10, 14, 236, 233, 10, 14, 236,
- 232, 10, 14, 236, 231, 10, 14, 236, 230, 10, 14, 236, 229, 10, 14, 236,
- 228, 10, 14, 236, 227, 10, 14, 236, 226, 10, 14, 236, 225, 10, 14, 236,
- 224, 10, 14, 236, 223, 10, 14, 236, 222, 10, 14, 236, 221, 10, 14, 236,
- 220, 10, 14, 236, 219, 10, 14, 236, 218, 10, 14, 236, 217, 10, 14, 236,
- 216, 10, 14, 236, 215, 10, 14, 236, 214, 10, 14, 236, 213, 10, 14, 236,
- 212, 10, 14, 236, 211, 10, 14, 236, 210, 10, 14, 236, 209, 10, 14, 236,
- 208, 10, 14, 236, 207, 10, 14, 236, 206, 10, 14, 236, 205, 10, 14, 236,
- 204, 10, 14, 236, 203, 10, 14, 236, 202, 10, 14, 236, 201, 10, 14, 236,
- 200, 10, 14, 236, 199, 10, 14, 236, 198, 10, 14, 236, 197, 10, 14, 236,
- 196, 10, 14, 236, 195, 10, 14, 236, 194, 10, 14, 236, 193, 10, 14, 236,
- 192, 10, 14, 236, 191, 10, 14, 236, 190, 10, 14, 236, 189, 10, 14, 236,
- 188, 10, 14, 236, 187, 10, 14, 236, 186, 10, 14, 236, 185, 10, 14, 236,
- 184, 10, 14, 236, 183, 10, 14, 236, 182, 10, 14, 236, 181, 10, 14, 236,
- 180, 10, 14, 236, 179, 10, 14, 236, 178, 10, 14, 236, 177, 10, 14, 236,
- 176, 10, 14, 236, 175, 10, 14, 236, 174, 10, 14, 236, 173, 10, 14, 236,
- 172, 10, 14, 236, 171, 10, 14, 236, 170, 10, 14, 236, 169, 10, 14, 236,
- 168, 10, 14, 236, 167, 10, 14, 236, 166, 10, 14, 236, 165, 10, 14, 236,
- 164, 10, 14, 236, 163, 10, 14, 236, 162, 10, 14, 236, 161, 10, 14, 236,
- 160, 10, 14, 236, 159, 10, 14, 236, 158, 10, 14, 236, 157, 10, 14, 236,
- 156, 10, 14, 236, 155, 10, 14, 236, 154, 10, 14, 236, 153, 10, 14, 236,
- 152, 10, 14, 236, 151, 10, 14, 236, 150, 10, 14, 236, 149, 10, 14, 236,
- 148, 10, 14, 236, 147, 10, 14, 236, 146, 10, 14, 236, 145, 10, 14, 236,
- 144, 10, 14, 236, 143, 10, 14, 236, 142, 10, 14, 236, 141, 10, 14, 236,
- 140, 10, 14, 236, 139, 10, 14, 236, 138, 10, 14, 236, 137, 10, 14, 236,
- 136, 10, 14, 236, 135, 10, 14, 236, 134, 10, 14, 236, 133, 10, 14, 236,
- 132, 10, 14, 236, 131, 10, 14, 236, 130, 10, 14, 236, 129, 10, 14, 236,
- 128, 10, 14, 236, 127, 10, 14, 236, 126, 10, 14, 236, 125, 10, 14, 236,
- 124, 10, 14, 236, 123, 10, 14, 236, 122, 10, 14, 236, 121, 10, 14, 236,
- 120, 10, 14, 236, 119, 10, 14, 236, 118, 10, 14, 236, 117, 10, 14, 236,
- 116, 10, 14, 236, 115, 10, 14, 236, 114, 10, 14, 236, 113, 10, 14, 236,
- 112, 10, 14, 236, 111, 10, 14, 236, 110, 10, 14, 236, 109, 10, 14, 236,
- 108, 10, 14, 236, 107, 10, 14, 236, 106, 10, 14, 236, 105, 10, 14, 236,
- 104, 10, 14, 236, 103, 10, 14, 236, 102, 10, 14, 236, 101, 10, 14, 236,
- 100, 10, 14, 236, 99, 10, 14, 236, 98, 10, 14, 236, 97, 10, 14, 236, 96,
- 10, 14, 236, 95, 10, 14, 236, 94, 10, 14, 236, 93, 10, 14, 236, 92, 10,
- 14, 236, 91, 10, 14, 236, 90, 10, 14, 236, 89, 10, 14, 236, 88, 10, 14,
- 236, 87, 10, 14, 236, 86, 10, 14, 236, 85, 10, 14, 236, 84, 10, 14, 236,
- 83, 10, 14, 236, 82, 10, 14, 236, 81, 10, 14, 236, 80, 10, 14, 236, 79,
- 10, 14, 236, 78, 10, 14, 236, 77, 10, 14, 236, 76, 10, 14, 236, 75, 10,
- 14, 236, 74, 10, 14, 236, 73, 10, 14, 236, 72, 7, 4, 27, 244, 133, 7, 4,
- 27, 244, 129, 7, 4, 27, 244, 84, 7, 4, 27, 244, 132, 7, 4, 27, 244, 131,
- 7, 4, 27, 200, 222, 94, 217, 153, 7, 4, 27, 218, 170, 150, 4, 27, 231,
- 64, 228, 44, 150, 4, 27, 231, 64, 245, 221, 150, 4, 27, 231, 64, 235,
- 234, 150, 4, 27, 213, 180, 228, 44, 150, 4, 27, 231, 64, 211, 160, 94, 1,
- 210, 234, 2, 241, 165, 94, 225, 14, 235, 56, 214, 11, 94, 27, 211, 6,
- 210, 234, 210, 234, 225, 243, 94, 1, 254, 147, 253, 170, 94, 1, 211, 247,
- 254, 179, 94, 1, 211, 247, 248, 197, 94, 1, 211, 247, 241, 245, 94, 1,
- 211, 247, 235, 0, 94, 1, 211, 247, 233, 100, 94, 1, 211, 247, 40, 231,
- 70, 94, 1, 211, 247, 223, 70, 94, 1, 211, 247, 217, 39, 94, 1, 254, 147,
- 96, 50, 94, 1, 220, 23, 2, 220, 23, 247, 128, 94, 1, 220, 23, 2, 219,
- 161, 247, 128, 94, 1, 220, 23, 2, 248, 216, 22, 220, 23, 247, 128, 94, 1,
- 220, 23, 2, 248, 216, 22, 219, 161, 247, 128, 94, 1, 109, 2, 225, 243,
- 94, 1, 109, 2, 224, 79, 94, 1, 109, 2, 231, 176, 94, 1, 252, 37, 2, 248,
- 215, 94, 1, 242, 209, 2, 248, 215, 94, 1, 248, 198, 2, 248, 215, 94, 1,
- 241, 246, 2, 231, 176, 94, 1, 214, 4, 2, 248, 215, 94, 1, 210, 98, 2,
- 248, 215, 94, 1, 216, 232, 2, 248, 215, 94, 1, 210, 234, 2, 248, 215, 94,
- 1, 40, 235, 1, 2, 248, 215, 94, 1, 235, 1, 2, 248, 215, 94, 1, 233, 101,
- 2, 248, 215, 94, 1, 231, 71, 2, 248, 215, 94, 1, 227, 199, 2, 248, 215,
- 94, 1, 221, 252, 2, 248, 215, 94, 1, 40, 225, 225, 2, 248, 215, 94, 1,
- 225, 225, 2, 248, 215, 94, 1, 215, 181, 2, 248, 215, 94, 1, 224, 43, 2,
- 248, 215, 94, 1, 223, 71, 2, 248, 215, 94, 1, 220, 23, 2, 248, 215, 94,
- 1, 217, 40, 2, 248, 215, 94, 1, 214, 4, 2, 241, 68, 94, 1, 252, 37, 2,
- 223, 172, 94, 1, 235, 1, 2, 223, 172, 94, 1, 225, 225, 2, 223, 172, 94,
- 27, 109, 233, 100, 9, 1, 109, 212, 47, 53, 17, 9, 1, 109, 212, 47, 40,
- 17, 9, 1, 252, 73, 53, 17, 9, 1, 252, 73, 40, 17, 9, 1, 252, 73, 65, 17,
- 9, 1, 252, 73, 147, 17, 9, 1, 225, 209, 53, 17, 9, 1, 225, 209, 40, 17,
- 9, 1, 225, 209, 65, 17, 9, 1, 225, 209, 147, 17, 9, 1, 252, 61, 53, 17,
- 9, 1, 252, 61, 40, 17, 9, 1, 252, 61, 65, 17, 9, 1, 252, 61, 147, 17, 9,
- 1, 215, 148, 53, 17, 9, 1, 215, 148, 40, 17, 9, 1, 215, 148, 65, 17, 9,
- 1, 215, 148, 147, 17, 9, 1, 217, 7, 53, 17, 9, 1, 217, 7, 40, 17, 9, 1,
- 217, 7, 65, 17, 9, 1, 217, 7, 147, 17, 9, 1, 215, 150, 53, 17, 9, 1, 215,
- 150, 40, 17, 9, 1, 215, 150, 65, 17, 9, 1, 215, 150, 147, 17, 9, 1, 213,
- 249, 53, 17, 9, 1, 213, 249, 40, 17, 9, 1, 213, 249, 65, 17, 9, 1, 213,
- 249, 147, 17, 9, 1, 225, 207, 53, 17, 9, 1, 225, 207, 40, 17, 9, 1, 225,
- 207, 65, 17, 9, 1, 225, 207, 147, 17, 9, 1, 246, 52, 53, 17, 9, 1, 246,
- 52, 40, 17, 9, 1, 246, 52, 65, 17, 9, 1, 246, 52, 147, 17, 9, 1, 227,
- 158, 53, 17, 9, 1, 227, 158, 40, 17, 9, 1, 227, 158, 65, 17, 9, 1, 227,
- 158, 147, 17, 9, 1, 217, 28, 53, 17, 9, 1, 217, 28, 40, 17, 9, 1, 217,
- 28, 65, 17, 9, 1, 217, 28, 147, 17, 9, 1, 217, 26, 53, 17, 9, 1, 217, 26,
- 40, 17, 9, 1, 217, 26, 65, 17, 9, 1, 217, 26, 147, 17, 9, 1, 248, 141,
- 53, 17, 9, 1, 248, 141, 40, 17, 9, 1, 248, 210, 53, 17, 9, 1, 248, 210,
- 40, 17, 9, 1, 246, 79, 53, 17, 9, 1, 246, 79, 40, 17, 9, 1, 248, 139, 53,
- 17, 9, 1, 248, 139, 40, 17, 9, 1, 235, 127, 53, 17, 9, 1, 235, 127, 40,
- 17, 9, 1, 222, 174, 53, 17, 9, 1, 222, 174, 40, 17, 9, 1, 234, 181, 53,
- 17, 9, 1, 234, 181, 40, 17, 9, 1, 234, 181, 65, 17, 9, 1, 234, 181, 147,
- 17, 9, 1, 243, 130, 53, 17, 9, 1, 243, 130, 40, 17, 9, 1, 243, 130, 65,
- 17, 9, 1, 243, 130, 147, 17, 9, 1, 242, 109, 53, 17, 9, 1, 242, 109, 40,
- 17, 9, 1, 242, 109, 65, 17, 9, 1, 242, 109, 147, 17, 9, 1, 229, 8, 53,
- 17, 9, 1, 229, 8, 40, 17, 9, 1, 229, 8, 65, 17, 9, 1, 229, 8, 147, 17, 9,
- 1, 228, 68, 242, 226, 53, 17, 9, 1, 228, 68, 242, 226, 40, 17, 9, 1, 222,
- 217, 53, 17, 9, 1, 222, 217, 40, 17, 9, 1, 222, 217, 65, 17, 9, 1, 222,
- 217, 147, 17, 9, 1, 241, 226, 2, 77, 72, 53, 17, 9, 1, 241, 226, 2, 77,
- 72, 40, 17, 9, 1, 241, 226, 242, 179, 53, 17, 9, 1, 241, 226, 242, 179,
- 40, 17, 9, 1, 241, 226, 242, 179, 65, 17, 9, 1, 241, 226, 242, 179, 147,
- 17, 9, 1, 241, 226, 247, 150, 53, 17, 9, 1, 241, 226, 247, 150, 40, 17,
- 9, 1, 241, 226, 247, 150, 65, 17, 9, 1, 241, 226, 247, 150, 147, 17, 9,
- 1, 77, 252, 141, 53, 17, 9, 1, 77, 252, 141, 40, 17, 9, 1, 77, 252, 141,
- 2, 182, 72, 53, 17, 9, 1, 77, 252, 141, 2, 182, 72, 40, 17, 9, 16, 59,
- 48, 9, 16, 59, 51, 9, 16, 113, 170, 48, 9, 16, 113, 170, 51, 9, 16, 134,
- 170, 48, 9, 16, 134, 170, 51, 9, 16, 134, 170, 225, 10, 246, 112, 48, 9,
- 16, 134, 170, 225, 10, 246, 112, 51, 9, 16, 244, 19, 170, 48, 9, 16, 244,
- 19, 170, 51, 9, 16, 52, 67, 252, 149, 51, 9, 16, 113, 170, 213, 189, 48,
- 9, 16, 113, 170, 213, 189, 51, 9, 16, 222, 236, 9, 16, 4, 217, 82, 48, 9,
- 16, 4, 217, 82, 51, 9, 1, 229, 85, 53, 17, 9, 1, 229, 85, 40, 17, 9, 1,
- 229, 85, 65, 17, 9, 1, 229, 85, 147, 17, 9, 1, 104, 53, 17, 9, 1, 104,
- 40, 17, 9, 1, 226, 239, 53, 17, 9, 1, 226, 239, 40, 17, 9, 1, 210, 213,
- 53, 17, 9, 1, 210, 213, 40, 17, 9, 1, 104, 2, 182, 72, 53, 17, 9, 1, 214,
- 0, 53, 17, 9, 1, 214, 0, 40, 17, 9, 1, 234, 79, 226, 239, 53, 17, 9, 1,
- 234, 79, 226, 239, 40, 17, 9, 1, 234, 79, 210, 213, 53, 17, 9, 1, 234,
- 79, 210, 213, 40, 17, 9, 1, 160, 53, 17, 9, 1, 160, 40, 17, 9, 1, 160,
- 65, 17, 9, 1, 160, 147, 17, 9, 1, 214, 207, 234, 192, 234, 79, 109, 231,
- 198, 65, 17, 9, 1, 214, 207, 234, 192, 234, 79, 109, 231, 198, 147, 17,
- 9, 27, 77, 2, 182, 72, 2, 109, 53, 17, 9, 27, 77, 2, 182, 72, 2, 109, 40,
- 17, 9, 27, 77, 2, 182, 72, 2, 254, 253, 53, 17, 9, 27, 77, 2, 182, 72, 2,
- 254, 253, 40, 17, 9, 27, 77, 2, 182, 72, 2, 212, 31, 53, 17, 9, 27, 77,
- 2, 182, 72, 2, 212, 31, 40, 17, 9, 27, 77, 2, 182, 72, 2, 104, 53, 17, 9,
- 27, 77, 2, 182, 72, 2, 104, 40, 17, 9, 27, 77, 2, 182, 72, 2, 226, 239,
- 53, 17, 9, 27, 77, 2, 182, 72, 2, 226, 239, 40, 17, 9, 27, 77, 2, 182,
- 72, 2, 210, 213, 53, 17, 9, 27, 77, 2, 182, 72, 2, 210, 213, 40, 17, 9,
- 27, 77, 2, 182, 72, 2, 160, 53, 17, 9, 27, 77, 2, 182, 72, 2, 160, 40,
- 17, 9, 27, 77, 2, 182, 72, 2, 160, 65, 17, 9, 27, 214, 207, 234, 79, 77,
- 2, 182, 72, 2, 109, 231, 198, 53, 17, 9, 27, 214, 207, 234, 79, 77, 2,
- 182, 72, 2, 109, 231, 198, 40, 17, 9, 27, 214, 207, 234, 79, 77, 2, 182,
- 72, 2, 109, 231, 198, 65, 17, 9, 1, 244, 176, 77, 53, 17, 9, 1, 244, 176,
- 77, 40, 17, 9, 1, 244, 176, 77, 65, 17, 9, 1, 244, 176, 77, 147, 17, 9,
- 27, 77, 2, 182, 72, 2, 151, 53, 17, 9, 27, 77, 2, 182, 72, 2, 122, 53,
- 17, 9, 27, 77, 2, 182, 72, 2, 66, 53, 17, 9, 27, 77, 2, 182, 72, 2, 109,
- 231, 198, 53, 17, 9, 27, 77, 2, 182, 72, 2, 77, 53, 17, 9, 27, 252, 63,
- 2, 151, 53, 17, 9, 27, 252, 63, 2, 122, 53, 17, 9, 27, 252, 63, 2, 234,
- 136, 53, 17, 9, 27, 252, 63, 2, 66, 53, 17, 9, 27, 252, 63, 2, 109, 231,
- 198, 53, 17, 9, 27, 252, 63, 2, 77, 53, 17, 9, 27, 217, 9, 2, 151, 53,
- 17, 9, 27, 217, 9, 2, 122, 53, 17, 9, 27, 217, 9, 2, 234, 136, 53, 17, 9,
- 27, 217, 9, 2, 66, 53, 17, 9, 27, 217, 9, 2, 109, 231, 198, 53, 17, 9,
- 27, 217, 9, 2, 77, 53, 17, 9, 27, 216, 194, 2, 151, 53, 17, 9, 27, 216,
- 194, 2, 66, 53, 17, 9, 27, 216, 194, 2, 109, 231, 198, 53, 17, 9, 27,
- 216, 194, 2, 77, 53, 17, 9, 27, 151, 2, 122, 53, 17, 9, 27, 151, 2, 66,
- 53, 17, 9, 27, 122, 2, 151, 53, 17, 9, 27, 122, 2, 66, 53, 17, 9, 27,
- 234, 136, 2, 151, 53, 17, 9, 27, 234, 136, 2, 122, 53, 17, 9, 27, 234,
- 136, 2, 66, 53, 17, 9, 27, 221, 169, 2, 151, 53, 17, 9, 27, 221, 169, 2,
- 122, 53, 17, 9, 27, 221, 169, 2, 234, 136, 53, 17, 9, 27, 221, 169, 2,
- 66, 53, 17, 9, 27, 222, 29, 2, 122, 53, 17, 9, 27, 222, 29, 2, 66, 53,
- 17, 9, 27, 248, 225, 2, 151, 53, 17, 9, 27, 248, 225, 2, 122, 53, 17, 9,
- 27, 248, 225, 2, 234, 136, 53, 17, 9, 27, 248, 225, 2, 66, 53, 17, 9, 27,
- 217, 82, 2, 122, 53, 17, 9, 27, 217, 82, 2, 66, 53, 17, 9, 27, 210, 112,
- 2, 66, 53, 17, 9, 27, 254, 206, 2, 151, 53, 17, 9, 27, 254, 206, 2, 66,
- 53, 17, 9, 27, 242, 252, 2, 151, 53, 17, 9, 27, 242, 252, 2, 66, 53, 17,
- 9, 27, 244, 151, 2, 151, 53, 17, 9, 27, 244, 151, 2, 122, 53, 17, 9, 27,
- 244, 151, 2, 234, 136, 53, 17, 9, 27, 244, 151, 2, 66, 53, 17, 9, 27,
- 244, 151, 2, 109, 231, 198, 53, 17, 9, 27, 244, 151, 2, 77, 53, 17, 9,
- 27, 224, 85, 2, 122, 53, 17, 9, 27, 224, 85, 2, 66, 53, 17, 9, 27, 224,
- 85, 2, 109, 231, 198, 53, 17, 9, 27, 224, 85, 2, 77, 53, 17, 9, 27, 235,
- 1, 2, 109, 53, 17, 9, 27, 235, 1, 2, 151, 53, 17, 9, 27, 235, 1, 2, 122,
- 53, 17, 9, 27, 235, 1, 2, 234, 136, 53, 17, 9, 27, 235, 1, 2, 233, 109,
- 53, 17, 9, 27, 235, 1, 2, 66, 53, 17, 9, 27, 235, 1, 2, 109, 231, 198,
- 53, 17, 9, 27, 235, 1, 2, 77, 53, 17, 9, 27, 233, 109, 2, 151, 53, 17, 9,
- 27, 233, 109, 2, 122, 53, 17, 9, 27, 233, 109, 2, 234, 136, 53, 17, 9,
- 27, 233, 109, 2, 66, 53, 17, 9, 27, 233, 109, 2, 109, 231, 198, 53, 17,
- 9, 27, 233, 109, 2, 77, 53, 17, 9, 27, 66, 2, 151, 53, 17, 9, 27, 66, 2,
- 122, 53, 17, 9, 27, 66, 2, 234, 136, 53, 17, 9, 27, 66, 2, 66, 53, 17, 9,
- 27, 66, 2, 109, 231, 198, 53, 17, 9, 27, 66, 2, 77, 53, 17, 9, 27, 228,
- 68, 2, 151, 53, 17, 9, 27, 228, 68, 2, 122, 53, 17, 9, 27, 228, 68, 2,
- 234, 136, 53, 17, 9, 27, 228, 68, 2, 66, 53, 17, 9, 27, 228, 68, 2, 109,
- 231, 198, 53, 17, 9, 27, 228, 68, 2, 77, 53, 17, 9, 27, 241, 226, 2, 151,
- 53, 17, 9, 27, 241, 226, 2, 66, 53, 17, 9, 27, 241, 226, 2, 109, 231,
- 198, 53, 17, 9, 27, 241, 226, 2, 77, 53, 17, 9, 27, 77, 2, 151, 53, 17,
- 9, 27, 77, 2, 122, 53, 17, 9, 27, 77, 2, 234, 136, 53, 17, 9, 27, 77, 2,
- 66, 53, 17, 9, 27, 77, 2, 109, 231, 198, 53, 17, 9, 27, 77, 2, 77, 53,
- 17, 9, 27, 216, 204, 2, 218, 24, 109, 53, 17, 9, 27, 223, 99, 2, 218, 24,
- 109, 53, 17, 9, 27, 109, 231, 198, 2, 218, 24, 109, 53, 17, 9, 27, 220,
- 96, 2, 248, 191, 53, 17, 9, 27, 220, 96, 2, 234, 210, 53, 17, 9, 27, 220,
- 96, 2, 244, 174, 53, 17, 9, 27, 220, 96, 2, 248, 193, 53, 17, 9, 27, 220,
- 96, 2, 234, 212, 53, 17, 9, 27, 220, 96, 2, 218, 24, 109, 53, 17, 9, 27,
- 77, 2, 182, 72, 2, 223, 99, 40, 17, 9, 27, 77, 2, 182, 72, 2, 210, 109,
- 40, 17, 9, 27, 77, 2, 182, 72, 2, 66, 40, 17, 9, 27, 77, 2, 182, 72, 2,
- 228, 68, 40, 17, 9, 27, 77, 2, 182, 72, 2, 109, 231, 198, 40, 17, 9, 27,
- 77, 2, 182, 72, 2, 77, 40, 17, 9, 27, 252, 63, 2, 223, 99, 40, 17, 9, 27,
- 252, 63, 2, 210, 109, 40, 17, 9, 27, 252, 63, 2, 66, 40, 17, 9, 27, 252,
- 63, 2, 228, 68, 40, 17, 9, 27, 252, 63, 2, 109, 231, 198, 40, 17, 9, 27,
- 252, 63, 2, 77, 40, 17, 9, 27, 217, 9, 2, 223, 99, 40, 17, 9, 27, 217, 9,
- 2, 210, 109, 40, 17, 9, 27, 217, 9, 2, 66, 40, 17, 9, 27, 217, 9, 2, 228,
- 68, 40, 17, 9, 27, 217, 9, 2, 109, 231, 198, 40, 17, 9, 27, 217, 9, 2,
- 77, 40, 17, 9, 27, 216, 194, 2, 223, 99, 40, 17, 9, 27, 216, 194, 2, 210,
- 109, 40, 17, 9, 27, 216, 194, 2, 66, 40, 17, 9, 27, 216, 194, 2, 228, 68,
- 40, 17, 9, 27, 216, 194, 2, 109, 231, 198, 40, 17, 9, 27, 216, 194, 2,
- 77, 40, 17, 9, 27, 244, 151, 2, 109, 231, 198, 40, 17, 9, 27, 244, 151,
- 2, 77, 40, 17, 9, 27, 224, 85, 2, 109, 231, 198, 40, 17, 9, 27, 224, 85,
- 2, 77, 40, 17, 9, 27, 235, 1, 2, 109, 40, 17, 9, 27, 235, 1, 2, 233, 109,
- 40, 17, 9, 27, 235, 1, 2, 66, 40, 17, 9, 27, 235, 1, 2, 109, 231, 198,
- 40, 17, 9, 27, 235, 1, 2, 77, 40, 17, 9, 27, 233, 109, 2, 66, 40, 17, 9,
- 27, 233, 109, 2, 109, 231, 198, 40, 17, 9, 27, 233, 109, 2, 77, 40, 17,
- 9, 27, 66, 2, 109, 40, 17, 9, 27, 66, 2, 66, 40, 17, 9, 27, 228, 68, 2,
- 223, 99, 40, 17, 9, 27, 228, 68, 2, 210, 109, 40, 17, 9, 27, 228, 68, 2,
- 66, 40, 17, 9, 27, 228, 68, 2, 228, 68, 40, 17, 9, 27, 228, 68, 2, 109,
- 231, 198, 40, 17, 9, 27, 228, 68, 2, 77, 40, 17, 9, 27, 109, 231, 198, 2,
- 218, 24, 109, 40, 17, 9, 27, 77, 2, 223, 99, 40, 17, 9, 27, 77, 2, 210,
- 109, 40, 17, 9, 27, 77, 2, 66, 40, 17, 9, 27, 77, 2, 228, 68, 40, 17, 9,
- 27, 77, 2, 109, 231, 198, 40, 17, 9, 27, 77, 2, 77, 40, 17, 9, 27, 77, 2,
- 182, 72, 2, 151, 65, 17, 9, 27, 77, 2, 182, 72, 2, 122, 65, 17, 9, 27,
- 77, 2, 182, 72, 2, 234, 136, 65, 17, 9, 27, 77, 2, 182, 72, 2, 66, 65,
- 17, 9, 27, 77, 2, 182, 72, 2, 241, 226, 65, 17, 9, 27, 252, 63, 2, 151,
- 65, 17, 9, 27, 252, 63, 2, 122, 65, 17, 9, 27, 252, 63, 2, 234, 136, 65,
- 17, 9, 27, 252, 63, 2, 66, 65, 17, 9, 27, 252, 63, 2, 241, 226, 65, 17,
- 9, 27, 217, 9, 2, 151, 65, 17, 9, 27, 217, 9, 2, 122, 65, 17, 9, 27, 217,
- 9, 2, 234, 136, 65, 17, 9, 27, 217, 9, 2, 66, 65, 17, 9, 27, 217, 9, 2,
- 241, 226, 65, 17, 9, 27, 216, 194, 2, 66, 65, 17, 9, 27, 151, 2, 122, 65,
- 17, 9, 27, 151, 2, 66, 65, 17, 9, 27, 122, 2, 151, 65, 17, 9, 27, 122, 2,
- 66, 65, 17, 9, 27, 234, 136, 2, 151, 65, 17, 9, 27, 234, 136, 2, 66, 65,
- 17, 9, 27, 221, 169, 2, 151, 65, 17, 9, 27, 221, 169, 2, 122, 65, 17, 9,
- 27, 221, 169, 2, 234, 136, 65, 17, 9, 27, 221, 169, 2, 66, 65, 17, 9, 27,
- 222, 29, 2, 122, 65, 17, 9, 27, 222, 29, 2, 234, 136, 65, 17, 9, 27, 222,
- 29, 2, 66, 65, 17, 9, 27, 248, 225, 2, 151, 65, 17, 9, 27, 248, 225, 2,
- 122, 65, 17, 9, 27, 248, 225, 2, 234, 136, 65, 17, 9, 27, 248, 225, 2,
- 66, 65, 17, 9, 27, 217, 82, 2, 122, 65, 17, 9, 27, 210, 112, 2, 66, 65,
- 17, 9, 27, 254, 206, 2, 151, 65, 17, 9, 27, 254, 206, 2, 66, 65, 17, 9,
- 27, 242, 252, 2, 151, 65, 17, 9, 27, 242, 252, 2, 66, 65, 17, 9, 27, 244,
- 151, 2, 151, 65, 17, 9, 27, 244, 151, 2, 122, 65, 17, 9, 27, 244, 151, 2,
- 234, 136, 65, 17, 9, 27, 244, 151, 2, 66, 65, 17, 9, 27, 224, 85, 2, 122,
- 65, 17, 9, 27, 224, 85, 2, 66, 65, 17, 9, 27, 235, 1, 2, 151, 65, 17, 9,
- 27, 235, 1, 2, 122, 65, 17, 9, 27, 235, 1, 2, 234, 136, 65, 17, 9, 27,
- 235, 1, 2, 233, 109, 65, 17, 9, 27, 235, 1, 2, 66, 65, 17, 9, 27, 233,
- 109, 2, 151, 65, 17, 9, 27, 233, 109, 2, 122, 65, 17, 9, 27, 233, 109, 2,
- 234, 136, 65, 17, 9, 27, 233, 109, 2, 66, 65, 17, 9, 27, 233, 109, 2,
- 241, 226, 65, 17, 9, 27, 66, 2, 151, 65, 17, 9, 27, 66, 2, 122, 65, 17,
- 9, 27, 66, 2, 234, 136, 65, 17, 9, 27, 66, 2, 66, 65, 17, 9, 27, 228, 68,
- 2, 151, 65, 17, 9, 27, 228, 68, 2, 122, 65, 17, 9, 27, 228, 68, 2, 234,
- 136, 65, 17, 9, 27, 228, 68, 2, 66, 65, 17, 9, 27, 228, 68, 2, 241, 226,
- 65, 17, 9, 27, 241, 226, 2, 151, 65, 17, 9, 27, 241, 226, 2, 66, 65, 17,
- 9, 27, 241, 226, 2, 218, 24, 109, 65, 17, 9, 27, 77, 2, 151, 65, 17, 9,
- 27, 77, 2, 122, 65, 17, 9, 27, 77, 2, 234, 136, 65, 17, 9, 27, 77, 2, 66,
- 65, 17, 9, 27, 77, 2, 241, 226, 65, 17, 9, 27, 77, 2, 182, 72, 2, 66,
- 147, 17, 9, 27, 77, 2, 182, 72, 2, 241, 226, 147, 17, 9, 27, 252, 63, 2,
- 66, 147, 17, 9, 27, 252, 63, 2, 241, 226, 147, 17, 9, 27, 217, 9, 2, 66,
- 147, 17, 9, 27, 217, 9, 2, 241, 226, 147, 17, 9, 27, 216, 194, 2, 66,
- 147, 17, 9, 27, 216, 194, 2, 241, 226, 147, 17, 9, 27, 221, 169, 2, 66,
- 147, 17, 9, 27, 221, 169, 2, 241, 226, 147, 17, 9, 27, 220, 62, 2, 66,
- 147, 17, 9, 27, 220, 62, 2, 241, 226, 147, 17, 9, 27, 235, 1, 2, 233,
- 109, 147, 17, 9, 27, 235, 1, 2, 66, 147, 17, 9, 27, 233, 109, 2, 66, 147,
- 17, 9, 27, 228, 68, 2, 66, 147, 17, 9, 27, 228, 68, 2, 241, 226, 147, 17,
- 9, 27, 77, 2, 66, 147, 17, 9, 27, 77, 2, 241, 226, 147, 17, 9, 27, 220,
- 96, 2, 244, 174, 147, 17, 9, 27, 220, 96, 2, 248, 193, 147, 17, 9, 27,
- 220, 96, 2, 234, 212, 147, 17, 9, 27, 217, 82, 2, 109, 231, 198, 53, 17,
- 9, 27, 217, 82, 2, 77, 53, 17, 9, 27, 254, 206, 2, 109, 231, 198, 53, 17,
- 9, 27, 254, 206, 2, 77, 53, 17, 9, 27, 242, 252, 2, 109, 231, 198, 53,
- 17, 9, 27, 242, 252, 2, 77, 53, 17, 9, 27, 221, 169, 2, 109, 231, 198,
- 53, 17, 9, 27, 221, 169, 2, 77, 53, 17, 9, 27, 220, 62, 2, 109, 231, 198,
- 53, 17, 9, 27, 220, 62, 2, 77, 53, 17, 9, 27, 122, 2, 109, 231, 198, 53,
- 17, 9, 27, 122, 2, 77, 53, 17, 9, 27, 151, 2, 109, 231, 198, 53, 17, 9,
- 27, 151, 2, 77, 53, 17, 9, 27, 234, 136, 2, 109, 231, 198, 53, 17, 9, 27,
- 234, 136, 2, 77, 53, 17, 9, 27, 222, 29, 2, 109, 231, 198, 53, 17, 9, 27,
- 222, 29, 2, 77, 53, 17, 9, 27, 248, 225, 2, 109, 231, 198, 53, 17, 9, 27,
- 248, 225, 2, 77, 53, 17, 9, 27, 220, 62, 2, 151, 53, 17, 9, 27, 220, 62,
- 2, 122, 53, 17, 9, 27, 220, 62, 2, 234, 136, 53, 17, 9, 27, 220, 62, 2,
- 66, 53, 17, 9, 27, 220, 62, 2, 223, 99, 53, 17, 9, 27, 221, 169, 2, 223,
- 99, 53, 17, 9, 27, 222, 29, 2, 223, 99, 53, 17, 9, 27, 248, 225, 2, 223,
- 99, 53, 17, 9, 27, 217, 82, 2, 109, 231, 198, 40, 17, 9, 27, 217, 82, 2,
- 77, 40, 17, 9, 27, 254, 206, 2, 109, 231, 198, 40, 17, 9, 27, 254, 206,
- 2, 77, 40, 17, 9, 27, 242, 252, 2, 109, 231, 198, 40, 17, 9, 27, 242,
- 252, 2, 77, 40, 17, 9, 27, 221, 169, 2, 109, 231, 198, 40, 17, 9, 27,
- 221, 169, 2, 77, 40, 17, 9, 27, 220, 62, 2, 109, 231, 198, 40, 17, 9, 27,
- 220, 62, 2, 77, 40, 17, 9, 27, 122, 2, 109, 231, 198, 40, 17, 9, 27, 122,
- 2, 77, 40, 17, 9, 27, 151, 2, 109, 231, 198, 40, 17, 9, 27, 151, 2, 77,
- 40, 17, 9, 27, 234, 136, 2, 109, 231, 198, 40, 17, 9, 27, 234, 136, 2,
- 77, 40, 17, 9, 27, 222, 29, 2, 109, 231, 198, 40, 17, 9, 27, 222, 29, 2,
- 77, 40, 17, 9, 27, 248, 225, 2, 109, 231, 198, 40, 17, 9, 27, 248, 225,
- 2, 77, 40, 17, 9, 27, 220, 62, 2, 151, 40, 17, 9, 27, 220, 62, 2, 122,
- 40, 17, 9, 27, 220, 62, 2, 234, 136, 40, 17, 9, 27, 220, 62, 2, 66, 40,
- 17, 9, 27, 220, 62, 2, 223, 99, 40, 17, 9, 27, 221, 169, 2, 223, 99, 40,
- 17, 9, 27, 222, 29, 2, 223, 99, 40, 17, 9, 27, 248, 225, 2, 223, 99, 40,
- 17, 9, 27, 220, 62, 2, 151, 65, 17, 9, 27, 220, 62, 2, 122, 65, 17, 9,
- 27, 220, 62, 2, 234, 136, 65, 17, 9, 27, 220, 62, 2, 66, 65, 17, 9, 27,
- 221, 169, 2, 241, 226, 65, 17, 9, 27, 220, 62, 2, 241, 226, 65, 17, 9,
- 27, 217, 82, 2, 66, 65, 17, 9, 27, 221, 169, 2, 151, 147, 17, 9, 27, 221,
- 169, 2, 122, 147, 17, 9, 27, 221, 169, 2, 234, 136, 147, 17, 9, 27, 220,
- 62, 2, 151, 147, 17, 9, 27, 220, 62, 2, 122, 147, 17, 9, 27, 220, 62, 2,
- 234, 136, 147, 17, 9, 27, 217, 82, 2, 66, 147, 17, 9, 27, 210, 112, 2,
- 66, 147, 17, 9, 27, 109, 2, 244, 172, 40, 17, 9, 27, 109, 2, 244, 172,
- 53, 17, 226, 150, 43, 226, 7, 226, 150, 44, 226, 7, 9, 27, 217, 9, 2,
- 151, 2, 66, 65, 17, 9, 27, 217, 9, 2, 122, 2, 151, 40, 17, 9, 27, 217, 9,
- 2, 122, 2, 151, 65, 17, 9, 27, 217, 9, 2, 122, 2, 66, 65, 17, 9, 27, 217,
- 9, 2, 234, 136, 2, 66, 65, 17, 9, 27, 217, 9, 2, 66, 2, 151, 65, 17, 9,
- 27, 217, 9, 2, 66, 2, 122, 65, 17, 9, 27, 217, 9, 2, 66, 2, 234, 136, 65,
- 17, 9, 27, 151, 2, 66, 2, 122, 40, 17, 9, 27, 151, 2, 66, 2, 122, 65, 17,
- 9, 27, 122, 2, 66, 2, 77, 40, 17, 9, 27, 122, 2, 66, 2, 109, 231, 198,
- 40, 17, 9, 27, 221, 169, 2, 122, 2, 151, 65, 17, 9, 27, 221, 169, 2, 151,
- 2, 122, 65, 17, 9, 27, 221, 169, 2, 151, 2, 109, 231, 198, 40, 17, 9, 27,
- 221, 169, 2, 66, 2, 122, 40, 17, 9, 27, 221, 169, 2, 66, 2, 122, 65, 17,
- 9, 27, 221, 169, 2, 66, 2, 151, 65, 17, 9, 27, 221, 169, 2, 66, 2, 66,
- 40, 17, 9, 27, 221, 169, 2, 66, 2, 66, 65, 17, 9, 27, 222, 29, 2, 122, 2,
- 122, 40, 17, 9, 27, 222, 29, 2, 122, 2, 122, 65, 17, 9, 27, 222, 29, 2,
- 66, 2, 66, 40, 17, 9, 27, 220, 62, 2, 122, 2, 66, 40, 17, 9, 27, 220, 62,
- 2, 122, 2, 66, 65, 17, 9, 27, 220, 62, 2, 151, 2, 77, 40, 17, 9, 27, 220,
- 62, 2, 66, 2, 234, 136, 40, 17, 9, 27, 220, 62, 2, 66, 2, 234, 136, 65,
- 17, 9, 27, 220, 62, 2, 66, 2, 66, 40, 17, 9, 27, 220, 62, 2, 66, 2, 66,
- 65, 17, 9, 27, 248, 225, 2, 122, 2, 109, 231, 198, 40, 17, 9, 27, 248,
- 225, 2, 234, 136, 2, 66, 40, 17, 9, 27, 248, 225, 2, 234, 136, 2, 66, 65,
- 17, 9, 27, 217, 82, 2, 66, 2, 122, 40, 17, 9, 27, 217, 82, 2, 66, 2, 122,
- 65, 17, 9, 27, 217, 82, 2, 66, 2, 66, 65, 17, 9, 27, 217, 82, 2, 66, 2,
- 77, 40, 17, 9, 27, 254, 206, 2, 151, 2, 66, 40, 17, 9, 27, 254, 206, 2,
- 66, 2, 66, 40, 17, 9, 27, 254, 206, 2, 66, 2, 66, 65, 17, 9, 27, 254,
- 206, 2, 66, 2, 109, 231, 198, 40, 17, 9, 27, 242, 252, 2, 66, 2, 66, 40,
- 17, 9, 27, 242, 252, 2, 66, 2, 77, 40, 17, 9, 27, 242, 252, 2, 66, 2,
- 109, 231, 198, 40, 17, 9, 27, 244, 151, 2, 234, 136, 2, 66, 40, 17, 9,
- 27, 244, 151, 2, 234, 136, 2, 66, 65, 17, 9, 27, 224, 85, 2, 66, 2, 122,
- 40, 17, 9, 27, 224, 85, 2, 66, 2, 66, 40, 17, 9, 27, 233, 109, 2, 122, 2,
- 66, 40, 17, 9, 27, 233, 109, 2, 122, 2, 77, 40, 17, 9, 27, 233, 109, 2,
- 122, 2, 109, 231, 198, 40, 17, 9, 27, 233, 109, 2, 151, 2, 151, 65, 17,
- 9, 27, 233, 109, 2, 151, 2, 151, 40, 17, 9, 27, 233, 109, 2, 234, 136, 2,
- 66, 40, 17, 9, 27, 233, 109, 2, 234, 136, 2, 66, 65, 17, 9, 27, 233, 109,
- 2, 66, 2, 122, 40, 17, 9, 27, 233, 109, 2, 66, 2, 122, 65, 17, 9, 27, 66,
- 2, 122, 2, 151, 65, 17, 9, 27, 66, 2, 122, 2, 66, 65, 17, 9, 27, 66, 2,
- 122, 2, 77, 40, 17, 9, 27, 66, 2, 151, 2, 122, 65, 17, 9, 27, 66, 2, 151,
- 2, 66, 65, 17, 9, 27, 66, 2, 234, 136, 2, 151, 65, 17, 9, 27, 66, 2, 234,
- 136, 2, 66, 65, 17, 9, 27, 66, 2, 151, 2, 234, 136, 65, 17, 9, 27, 241,
- 226, 2, 66, 2, 151, 65, 17, 9, 27, 241, 226, 2, 66, 2, 66, 65, 17, 9, 27,
- 228, 68, 2, 122, 2, 66, 65, 17, 9, 27, 228, 68, 2, 122, 2, 109, 231, 198,
- 40, 17, 9, 27, 228, 68, 2, 151, 2, 66, 40, 17, 9, 27, 228, 68, 2, 151, 2,
- 66, 65, 17, 9, 27, 228, 68, 2, 151, 2, 109, 231, 198, 40, 17, 9, 27, 228,
- 68, 2, 66, 2, 77, 40, 17, 9, 27, 228, 68, 2, 66, 2, 109, 231, 198, 40,
- 17, 9, 27, 77, 2, 66, 2, 66, 40, 17, 9, 27, 77, 2, 66, 2, 66, 65, 17, 9,
- 27, 252, 63, 2, 234, 136, 2, 77, 40, 17, 9, 27, 217, 9, 2, 151, 2, 77,
- 40, 17, 9, 27, 217, 9, 2, 151, 2, 109, 231, 198, 40, 17, 9, 27, 217, 9,
- 2, 234, 136, 2, 77, 40, 17, 9, 27, 217, 9, 2, 234, 136, 2, 109, 231, 198,
- 40, 17, 9, 27, 217, 9, 2, 66, 2, 77, 40, 17, 9, 27, 217, 9, 2, 66, 2,
- 109, 231, 198, 40, 17, 9, 27, 151, 2, 66, 2, 77, 40, 17, 9, 27, 151, 2,
- 122, 2, 109, 231, 198, 40, 17, 9, 27, 151, 2, 66, 2, 109, 231, 198, 40,
- 17, 9, 27, 221, 169, 2, 234, 136, 2, 109, 231, 198, 40, 17, 9, 27, 222,
- 29, 2, 122, 2, 77, 40, 17, 9, 27, 220, 62, 2, 122, 2, 77, 40, 17, 9, 27,
- 248, 225, 2, 122, 2, 77, 40, 17, 9, 27, 233, 109, 2, 151, 2, 77, 40, 17,
- 9, 27, 233, 109, 2, 66, 2, 77, 40, 17, 9, 27, 77, 2, 122, 2, 77, 40, 17,
- 9, 27, 77, 2, 151, 2, 77, 40, 17, 9, 27, 77, 2, 66, 2, 77, 40, 17, 9, 27,
- 66, 2, 66, 2, 77, 40, 17, 9, 27, 224, 85, 2, 66, 2, 77, 40, 17, 9, 27,
- 228, 68, 2, 122, 2, 77, 40, 17, 9, 27, 224, 85, 2, 66, 2, 122, 65, 17, 9,
- 27, 233, 109, 2, 122, 2, 66, 65, 17, 9, 27, 254, 206, 2, 66, 2, 77, 40,
- 17, 9, 27, 235, 1, 2, 66, 2, 77, 40, 17, 9, 27, 228, 68, 2, 151, 2, 122,
- 65, 17, 9, 27, 66, 2, 234, 136, 2, 77, 40, 17, 9, 27, 233, 109, 2, 151,
- 2, 66, 65, 17, 9, 27, 235, 1, 2, 66, 2, 66, 40, 17, 9, 27, 233, 109, 2,
- 151, 2, 66, 40, 17, 9, 27, 228, 68, 2, 151, 2, 122, 40, 17, 9, 27, 151,
- 2, 122, 2, 77, 40, 17, 9, 27, 122, 2, 151, 2, 77, 40, 17, 9, 27, 66, 2,
- 151, 2, 77, 40, 17, 9, 27, 244, 151, 2, 66, 2, 77, 40, 17, 9, 27, 252,
- 63, 2, 122, 2, 77, 40, 17, 9, 27, 235, 1, 2, 66, 2, 66, 65, 17, 9, 27,
- 254, 206, 2, 151, 2, 66, 65, 17, 9, 27, 222, 29, 2, 66, 2, 66, 65, 17, 9,
- 27, 221, 169, 2, 234, 136, 2, 77, 40, 17, 9, 27, 228, 68, 2, 151, 2, 77,
- 40, 17, 9, 27, 222, 6, 214, 128, 253, 246, 234, 10, 218, 132, 5, 53, 17,
- 9, 27, 224, 81, 214, 128, 253, 246, 234, 10, 218, 132, 5, 53, 17, 9, 27,
- 254, 162, 53, 17, 9, 27, 254, 192, 53, 17, 9, 27, 230, 158, 53, 17, 9,
- 27, 222, 7, 53, 17, 9, 27, 223, 146, 53, 17, 9, 27, 254, 181, 53, 17, 9,
- 27, 212, 49, 53, 17, 9, 27, 222, 6, 53, 17, 9, 27, 222, 5, 254, 181, 212,
- 48, 9, 27, 235, 140, 223, 37, 50, 9, 27, 251, 238, 254, 47, 254, 48, 45,
- 221, 158, 45, 221, 47, 45, 220, 235, 45, 220, 224, 45, 220, 213, 45, 220,
- 202, 45, 220, 191, 45, 220, 180, 45, 220, 169, 45, 221, 157, 45, 221,
- 146, 45, 221, 135, 45, 221, 124, 45, 221, 113, 45, 221, 102, 45, 221, 91,
- 224, 197, 244, 28, 31, 67, 249, 227, 224, 197, 244, 28, 31, 67, 110, 249,
- 227, 224, 197, 244, 28, 31, 67, 110, 243, 236, 218, 131, 224, 197, 244,
- 28, 31, 67, 249, 234, 224, 197, 244, 28, 31, 67, 220, 152, 224, 197, 244,
- 28, 31, 67, 245, 39, 79, 224, 197, 244, 28, 31, 67, 224, 16, 79, 224,
- 197, 244, 28, 31, 67, 43, 71, 233, 26, 127, 224, 197, 244, 28, 31, 67,
- 44, 71, 233, 26, 251, 164, 224, 197, 244, 28, 31, 67, 203, 245, 171, 38,
- 27, 43, 242, 34, 38, 27, 44, 242, 34, 38, 52, 216, 90, 43, 242, 34, 38,
- 52, 216, 90, 44, 242, 34, 38, 231, 238, 43, 242, 34, 38, 231, 238, 44,
- 242, 34, 38, 249, 205, 231, 237, 224, 197, 244, 28, 31, 67, 113, 59, 233,
- 62, 224, 197, 244, 28, 31, 67, 245, 168, 248, 164, 224, 197, 244, 28, 31,
- 67, 245, 159, 248, 164, 224, 197, 244, 28, 31, 67, 121, 232, 219, 224,
- 197, 244, 28, 31, 67, 212, 32, 121, 232, 219, 224, 197, 244, 28, 31, 67,
- 43, 226, 7, 224, 197, 244, 28, 31, 67, 44, 226, 7, 224, 197, 244, 28, 31,
- 67, 43, 249, 107, 127, 224, 197, 244, 28, 31, 67, 44, 249, 107, 127, 224,
- 197, 244, 28, 31, 67, 43, 216, 7, 220, 55, 127, 224, 197, 244, 28, 31,
- 67, 44, 216, 7, 220, 55, 127, 224, 197, 244, 28, 31, 67, 43, 85, 233, 26,
- 127, 224, 197, 244, 28, 31, 67, 44, 85, 233, 26, 127, 224, 197, 244, 28,
- 31, 67, 43, 52, 254, 118, 127, 224, 197, 244, 28, 31, 67, 44, 52, 254,
- 118, 127, 224, 197, 244, 28, 31, 67, 43, 254, 118, 127, 224, 197, 244,
- 28, 31, 67, 44, 254, 118, 127, 224, 197, 244, 28, 31, 67, 43, 249, 169,
- 127, 224, 197, 244, 28, 31, 67, 44, 249, 169, 127, 224, 197, 244, 28, 31,
- 67, 43, 71, 249, 169, 127, 224, 197, 244, 28, 31, 67, 44, 71, 249, 169,
- 127, 220, 133, 247, 128, 71, 220, 133, 247, 128, 224, 197, 244, 28, 31,
- 67, 43, 42, 127, 224, 197, 244, 28, 31, 67, 44, 42, 127, 248, 163, 226,
- 123, 250, 180, 226, 123, 212, 32, 226, 123, 52, 212, 32, 226, 123, 248,
- 163, 121, 232, 219, 250, 180, 121, 232, 219, 212, 32, 121, 232, 219, 4,
- 249, 227, 4, 110, 249, 227, 4, 243, 236, 218, 131, 4, 220, 152, 4, 249,
- 234, 4, 224, 16, 79, 4, 245, 39, 79, 4, 245, 168, 248, 164, 4, 43, 226,
- 7, 4, 44, 226, 7, 4, 43, 249, 107, 127, 4, 44, 249, 107, 127, 4, 43, 216,
- 7, 220, 55, 127, 4, 44, 216, 7, 220, 55, 127, 4, 54, 50, 4, 254, 134, 4,
- 253, 224, 4, 96, 50, 4, 240, 174, 4, 233, 21, 50, 4, 242, 137, 50, 4,
- 245, 106, 50, 4, 223, 53, 219, 48, 4, 247, 140, 50, 4, 225, 185, 50, 4,
- 249, 225, 253, 214, 9, 244, 172, 53, 17, 9, 217, 45, 2, 244, 172, 48, 9,
- 248, 191, 53, 17, 9, 217, 79, 244, 9, 9, 234, 210, 53, 17, 9, 244, 174,
- 53, 17, 9, 244, 174, 147, 17, 9, 248, 193, 53, 17, 9, 248, 193, 147, 17,
- 9, 234, 212, 53, 17, 9, 234, 212, 147, 17, 9, 220, 96, 53, 17, 9, 220,
- 96, 147, 17, 9, 218, 47, 53, 17, 9, 218, 47, 147, 17, 9, 1, 182, 53, 17,
- 9, 1, 109, 2, 231, 233, 72, 53, 17, 9, 1, 109, 2, 231, 233, 72, 40, 17,
- 9, 1, 109, 2, 182, 72, 53, 17, 9, 1, 109, 2, 182, 72, 40, 17, 9, 1, 212,
- 31, 2, 182, 72, 53, 17, 9, 1, 212, 31, 2, 182, 72, 40, 17, 9, 1, 109, 2,
- 182, 252, 51, 53, 17, 9, 1, 109, 2, 182, 252, 51, 40, 17, 9, 1, 77, 2,
- 182, 72, 53, 17, 9, 1, 77, 2, 182, 72, 40, 17, 9, 1, 77, 2, 182, 72, 65,
- 17, 9, 1, 77, 2, 182, 72, 147, 17, 9, 1, 109, 53, 17, 9, 1, 109, 40, 17,
- 9, 1, 252, 63, 53, 17, 9, 1, 252, 63, 40, 17, 9, 1, 252, 63, 65, 17, 9,
- 1, 252, 63, 147, 17, 9, 1, 217, 9, 231, 170, 53, 17, 9, 1, 217, 9, 231,
- 170, 40, 17, 9, 1, 217, 9, 53, 17, 9, 1, 217, 9, 40, 17, 9, 1, 217, 9,
- 65, 17, 9, 1, 217, 9, 147, 17, 9, 1, 216, 194, 53, 17, 9, 1, 216, 194,
- 40, 17, 9, 1, 216, 194, 65, 17, 9, 1, 216, 194, 147, 17, 9, 1, 151, 53,
- 17, 9, 1, 151, 40, 17, 9, 1, 151, 65, 17, 9, 1, 151, 147, 17, 9, 1, 122,
- 53, 17, 9, 1, 122, 40, 17, 9, 1, 122, 65, 17, 9, 1, 122, 147, 17, 9, 1,
- 234, 136, 53, 17, 9, 1, 234, 136, 40, 17, 9, 1, 234, 136, 65, 17, 9, 1,
- 234, 136, 147, 17, 9, 1, 248, 204, 53, 17, 9, 1, 248, 204, 40, 17, 9, 1,
- 216, 204, 53, 17, 9, 1, 216, 204, 40, 17, 9, 1, 223, 99, 53, 17, 9, 1,
- 223, 99, 40, 17, 9, 1, 210, 109, 53, 17, 9, 1, 210, 109, 40, 17, 9, 1,
- 221, 169, 53, 17, 9, 1, 221, 169, 40, 17, 9, 1, 221, 169, 65, 17, 9, 1,
- 221, 169, 147, 17, 9, 1, 220, 62, 53, 17, 9, 1, 220, 62, 40, 17, 9, 1,
- 220, 62, 65, 17, 9, 1, 220, 62, 147, 17, 9, 1, 222, 29, 53, 17, 9, 1,
- 222, 29, 40, 17, 9, 1, 222, 29, 65, 17, 9, 1, 222, 29, 147, 17, 9, 1,
- 248, 225, 53, 17, 9, 1, 248, 225, 40, 17, 9, 1, 248, 225, 65, 17, 9, 1,
- 248, 225, 147, 17, 9, 1, 217, 82, 53, 17, 9, 1, 217, 82, 40, 17, 9, 1,
- 217, 82, 65, 17, 9, 1, 217, 82, 147, 17, 9, 1, 210, 112, 53, 17, 9, 1,
- 210, 112, 40, 17, 9, 1, 210, 112, 65, 17, 9, 1, 210, 112, 147, 17, 9, 1,
- 254, 206, 53, 17, 9, 1, 254, 206, 40, 17, 9, 1, 254, 206, 65, 17, 9, 1,
- 254, 206, 147, 17, 9, 1, 242, 252, 53, 17, 9, 1, 242, 252, 40, 17, 9, 1,
- 242, 252, 65, 17, 9, 1, 242, 252, 147, 17, 9, 1, 244, 151, 53, 17, 9, 1,
- 244, 151, 40, 17, 9, 1, 244, 151, 65, 17, 9, 1, 244, 151, 147, 17, 9, 1,
- 224, 85, 53, 17, 9, 1, 224, 85, 40, 17, 9, 1, 224, 85, 65, 17, 9, 1, 224,
- 85, 147, 17, 9, 1, 235, 1, 53, 17, 9, 1, 235, 1, 40, 17, 9, 1, 235, 1,
- 65, 17, 9, 1, 235, 1, 147, 17, 9, 1, 233, 109, 53, 17, 9, 1, 233, 109,
- 40, 17, 9, 1, 233, 109, 65, 17, 9, 1, 233, 109, 147, 17, 9, 1, 66, 53,
- 17, 9, 1, 66, 40, 17, 9, 1, 66, 65, 17, 9, 1, 66, 147, 17, 9, 1, 228, 68,
- 53, 17, 9, 1, 228, 68, 40, 17, 9, 1, 228, 68, 65, 17, 9, 1, 228, 68, 147,
- 17, 9, 1, 241, 226, 53, 17, 9, 1, 241, 226, 40, 17, 9, 1, 241, 226, 65,
- 17, 9, 1, 241, 226, 147, 17, 9, 1, 212, 31, 53, 17, 9, 1, 212, 31, 40,
- 17, 9, 1, 109, 231, 198, 53, 17, 9, 1, 109, 231, 198, 40, 17, 9, 1, 77,
- 53, 17, 9, 1, 77, 40, 17, 9, 1, 77, 65, 17, 9, 1, 77, 147, 17, 9, 27,
- 233, 109, 2, 109, 2, 231, 233, 72, 53, 17, 9, 27, 233, 109, 2, 109, 2,
- 231, 233, 72, 40, 17, 9, 27, 233, 109, 2, 109, 2, 182, 72, 53, 17, 9, 27,
- 233, 109, 2, 109, 2, 182, 72, 40, 17, 9, 27, 233, 109, 2, 109, 2, 182,
- 252, 51, 53, 17, 9, 27, 233, 109, 2, 109, 2, 182, 252, 51, 40, 17, 9, 27,
- 233, 109, 2, 109, 53, 17, 9, 27, 233, 109, 2, 109, 40, 17, 210, 87, 211,
- 245, 228, 78, 219, 20, 126, 245, 39, 79, 126, 224, 1, 79, 126, 54, 50,
- 126, 247, 140, 50, 126, 225, 185, 50, 126, 254, 134, 126, 254, 65, 126,
- 43, 226, 7, 126, 44, 226, 7, 126, 253, 224, 126, 96, 50, 126, 249, 227,
- 126, 240, 174, 126, 243, 236, 218, 131, 126, 219, 48, 126, 21, 210, 86,
- 126, 21, 111, 126, 21, 105, 126, 21, 158, 126, 21, 161, 126, 21, 190,
- 126, 21, 195, 126, 21, 199, 126, 21, 196, 126, 21, 201, 126, 249, 234,
- 126, 220, 152, 126, 233, 21, 50, 126, 245, 106, 50, 126, 242, 137, 50,
- 126, 224, 16, 79, 126, 249, 225, 253, 214, 126, 7, 6, 1, 61, 126, 7, 6,
- 1, 253, 166, 126, 7, 6, 1, 251, 74, 126, 7, 6, 1, 249, 68, 126, 7, 6, 1,
- 76, 126, 7, 6, 1, 245, 14, 126, 7, 6, 1, 243, 209, 126, 7, 6, 1, 242, 67,
- 126, 7, 6, 1, 74, 126, 7, 6, 1, 235, 150, 126, 7, 6, 1, 235, 29, 126, 7,
- 6, 1, 156, 126, 7, 6, 1, 194, 126, 7, 6, 1, 230, 30, 126, 7, 6, 1, 78,
- 126, 7, 6, 1, 226, 109, 126, 7, 6, 1, 224, 99, 126, 7, 6, 1, 153, 126, 7,
- 6, 1, 222, 93, 126, 7, 6, 1, 217, 153, 126, 7, 6, 1, 69, 126, 7, 6, 1,
- 214, 105, 126, 7, 6, 1, 212, 98, 126, 7, 6, 1, 211, 178, 126, 7, 6, 1,
- 211, 117, 126, 7, 6, 1, 210, 159, 126, 43, 42, 127, 126, 223, 53, 219,
- 48, 126, 44, 42, 127, 126, 250, 39, 255, 23, 126, 121, 232, 219, 126,
- 242, 144, 255, 23, 126, 7, 4, 1, 61, 126, 7, 4, 1, 253, 166, 126, 7, 4,
- 1, 251, 74, 126, 7, 4, 1, 249, 68, 126, 7, 4, 1, 76, 126, 7, 4, 1, 245,
- 14, 126, 7, 4, 1, 243, 209, 126, 7, 4, 1, 242, 67, 126, 7, 4, 1, 74, 126,
- 7, 4, 1, 235, 150, 126, 7, 4, 1, 235, 29, 126, 7, 4, 1, 156, 126, 7, 4,
- 1, 194, 126, 7, 4, 1, 230, 30, 126, 7, 4, 1, 78, 126, 7, 4, 1, 226, 109,
- 126, 7, 4, 1, 224, 99, 126, 7, 4, 1, 153, 126, 7, 4, 1, 222, 93, 126, 7,
- 4, 1, 217, 153, 126, 7, 4, 1, 69, 126, 7, 4, 1, 214, 105, 126, 7, 4, 1,
- 212, 98, 126, 7, 4, 1, 211, 178, 126, 7, 4, 1, 211, 117, 126, 7, 4, 1,
- 210, 159, 126, 43, 249, 107, 127, 126, 67, 232, 219, 126, 44, 249, 107,
- 127, 126, 184, 126, 43, 71, 226, 7, 126, 44, 71, 226, 7, 101, 110, 243,
- 236, 218, 131, 101, 43, 249, 169, 127, 101, 44, 249, 169, 127, 101, 110,
- 249, 227, 101, 56, 230, 229, 247, 128, 101, 56, 1, 211, 227, 101, 56, 1,
- 4, 61, 101, 56, 1, 4, 74, 101, 56, 1, 4, 69, 101, 56, 1, 4, 76, 101, 56,
- 1, 4, 78, 101, 56, 1, 4, 192, 101, 56, 1, 4, 210, 212, 101, 56, 1, 4,
- 210, 244, 101, 56, 1, 4, 215, 119, 101, 234, 207, 224, 176, 219, 33, 79,
- 101, 56, 1, 61, 101, 56, 1, 74, 101, 56, 1, 69, 101, 56, 1, 76, 101, 56,
- 1, 78, 101, 56, 1, 176, 101, 56, 1, 234, 98, 101, 56, 1, 233, 223, 101,
- 56, 1, 234, 188, 101, 56, 1, 234, 34, 101, 56, 1, 206, 101, 56, 1, 219,
- 193, 101, 56, 1, 218, 84, 101, 56, 1, 221, 183, 101, 56, 1, 219, 60, 101,
- 56, 1, 217, 106, 101, 56, 1, 216, 118, 101, 56, 1, 215, 119, 101, 56, 1,
- 217, 23, 101, 56, 1, 112, 101, 56, 1, 198, 101, 56, 1, 228, 238, 101, 56,
- 1, 227, 242, 101, 56, 1, 229, 112, 101, 56, 1, 228, 79, 101, 56, 1, 162,
- 101, 56, 1, 241, 187, 101, 56, 1, 240, 229, 101, 56, 1, 241, 245, 101,
- 56, 1, 241, 75, 101, 56, 1, 186, 101, 56, 1, 230, 235, 101, 56, 1, 230,
- 107, 101, 56, 1, 231, 96, 101, 56, 1, 230, 166, 101, 56, 1, 192, 101, 56,
- 1, 210, 212, 101, 56, 1, 210, 244, 101, 56, 1, 205, 101, 56, 1, 223, 38,
- 101, 56, 1, 222, 142, 101, 56, 1, 223, 131, 101, 56, 1, 222, 213, 101,
- 56, 1, 212, 65, 101, 56, 1, 230, 30, 101, 56, 213, 135, 219, 33, 79, 101,
- 56, 220, 157, 219, 33, 79, 101, 24, 244, 111, 101, 24, 1, 234, 64, 101,
- 24, 1, 218, 217, 101, 24, 1, 234, 57, 101, 24, 1, 228, 231, 101, 24, 1,
- 228, 229, 101, 24, 1, 228, 228, 101, 24, 1, 216, 102, 101, 24, 1, 218,
- 206, 101, 24, 1, 223, 29, 101, 24, 1, 223, 24, 101, 24, 1, 223, 21, 101,
- 24, 1, 223, 14, 101, 24, 1, 223, 9, 101, 24, 1, 223, 4, 101, 24, 1, 223,
- 15, 101, 24, 1, 223, 27, 101, 24, 1, 230, 222, 101, 24, 1, 225, 98, 101,
- 24, 1, 218, 214, 101, 24, 1, 225, 87, 101, 24, 1, 219, 150, 101, 24, 1,
- 218, 211, 101, 24, 1, 236, 63, 101, 24, 1, 250, 54, 101, 24, 1, 218, 221,
- 101, 24, 1, 250, 114, 101, 24, 1, 234, 116, 101, 24, 1, 216, 174, 101,
- 24, 1, 225, 134, 101, 24, 1, 241, 179, 101, 24, 1, 61, 101, 24, 1, 254,
- 252, 101, 24, 1, 192, 101, 24, 1, 211, 92, 101, 24, 1, 245, 125, 101, 24,
- 1, 76, 101, 24, 1, 211, 36, 101, 24, 1, 211, 47, 101, 24, 1, 78, 101, 24,
- 1, 212, 65, 101, 24, 1, 212, 62, 101, 24, 1, 226, 238, 101, 24, 1, 210,
- 244, 101, 24, 1, 69, 101, 24, 1, 212, 11, 101, 24, 1, 212, 22, 101, 24,
- 1, 211, 250, 101, 24, 1, 210, 212, 101, 24, 1, 245, 63, 101, 24, 1, 211,
- 8, 101, 24, 1, 74, 126, 250, 184, 50, 126, 224, 231, 50, 126, 228, 57,
- 50, 126, 231, 237, 126, 251, 143, 130, 126, 211, 40, 50, 126, 211, 217,
- 50, 101, 244, 26, 193, 213, 239, 101, 140, 75, 101, 214, 153, 75, 101,
- 97, 75, 101, 246, 112, 75, 101, 85, 218, 236, 101, 71, 250, 43, 235, 211,
- 254, 107, 254, 128, 235, 211, 254, 107, 220, 139, 235, 211, 254, 107,
- 216, 237, 226, 253, 223, 75, 250, 150, 223, 75, 250, 150, 62, 57, 3, 253,
- 150, 61, 62, 57, 3, 253, 119, 76, 62, 57, 3, 253, 128, 74, 62, 57, 3,
- 253, 96, 78, 62, 57, 3, 253, 146, 69, 62, 57, 3, 253, 165, 248, 229, 62,
- 57, 3, 253, 112, 248, 98, 62, 57, 3, 253, 152, 248, 11, 62, 57, 3, 253,
- 142, 247, 153, 62, 57, 3, 253, 106, 246, 86, 62, 57, 3, 253, 100, 235,
- 147, 62, 57, 3, 253, 111, 235, 132, 62, 57, 3, 253, 121, 235, 74, 62, 57,
- 3, 253, 92, 235, 57, 62, 57, 3, 253, 80, 176, 62, 57, 3, 253, 113, 234,
- 188, 62, 57, 3, 253, 90, 234, 98, 62, 57, 3, 253, 87, 234, 34, 62, 57, 3,
- 253, 76, 233, 223, 62, 57, 3, 253, 77, 186, 62, 57, 3, 253, 143, 231, 96,
- 62, 57, 3, 253, 84, 230, 235, 62, 57, 3, 253, 141, 230, 166, 62, 57, 3,
- 253, 133, 230, 107, 62, 57, 3, 253, 154, 198, 62, 57, 3, 253, 132, 229,
- 112, 62, 57, 3, 253, 126, 228, 238, 62, 57, 3, 253, 105, 228, 79, 62, 57,
- 3, 253, 102, 227, 242, 62, 57, 3, 253, 161, 191, 62, 57, 3, 253, 85, 225,
- 224, 62, 57, 3, 253, 118, 225, 111, 62, 57, 3, 253, 145, 225, 19, 62, 57,
- 3, 253, 107, 224, 153, 62, 57, 3, 253, 140, 224, 91, 62, 57, 3, 253, 79,
- 224, 72, 62, 57, 3, 253, 135, 224, 56, 62, 57, 3, 253, 124, 224, 45, 62,
- 57, 3, 253, 97, 205, 62, 57, 3, 253, 129, 223, 131, 62, 57, 3, 253, 104,
- 223, 38, 62, 57, 3, 253, 163, 222, 213, 62, 57, 3, 253, 130, 222, 142,
- 62, 57, 3, 253, 125, 206, 62, 57, 3, 253, 148, 221, 183, 62, 57, 3, 253,
- 116, 219, 193, 62, 57, 3, 253, 144, 219, 60, 62, 57, 3, 253, 99, 218, 84,
- 62, 57, 3, 253, 98, 217, 106, 62, 57, 3, 253, 159, 217, 23, 62, 57, 3,
- 253, 120, 216, 118, 62, 57, 3, 253, 157, 112, 62, 57, 3, 253, 88, 215,
- 119, 62, 57, 3, 253, 103, 212, 65, 62, 57, 3, 253, 82, 212, 22, 62, 57,
- 3, 253, 117, 211, 250, 62, 57, 3, 253, 115, 211, 227, 62, 57, 3, 253,
- 139, 210, 116, 62, 57, 3, 253, 83, 210, 94, 62, 57, 3, 253, 136, 210, 23,
- 62, 57, 3, 253, 131, 255, 84, 62, 57, 3, 253, 114, 255, 83, 62, 57, 3,
- 253, 73, 253, 200, 62, 57, 3, 253, 86, 246, 54, 62, 57, 3, 253, 69, 246,
- 53, 62, 57, 3, 253, 109, 227, 178, 62, 57, 3, 253, 127, 224, 151, 62, 57,
- 3, 253, 95, 224, 155, 62, 57, 3, 253, 81, 223, 189, 62, 57, 3, 253, 123,
- 223, 188, 62, 57, 3, 253, 89, 222, 212, 62, 57, 3, 253, 91, 217, 103, 62,
- 57, 3, 253, 71, 215, 78, 62, 57, 3, 253, 68, 105, 62, 57, 16, 253, 138,
- 62, 57, 16, 253, 137, 62, 57, 16, 253, 134, 62, 57, 16, 253, 122, 62, 57,
- 16, 253, 110, 62, 57, 16, 253, 108, 62, 57, 16, 253, 101, 62, 57, 16,
- 253, 94, 62, 57, 16, 253, 93, 62, 57, 16, 253, 78, 62, 57, 16, 253, 75,
- 62, 57, 16, 253, 74, 62, 57, 16, 253, 72, 62, 57, 16, 253, 70, 62, 57,
- 106, 253, 67, 231, 190, 62, 57, 106, 253, 66, 211, 221, 62, 57, 106, 253,
- 65, 248, 82, 62, 57, 106, 253, 64, 245, 103, 62, 57, 106, 253, 63, 231,
- 164, 62, 57, 106, 253, 62, 218, 164, 62, 57, 106, 253, 61, 245, 45, 62,
- 57, 106, 253, 60, 223, 156, 62, 57, 106, 253, 59, 220, 64, 62, 57, 106,
- 253, 58, 241, 244, 62, 57, 106, 253, 57, 219, 27, 62, 57, 106, 253, 56,
- 251, 211, 62, 57, 106, 253, 55, 249, 153, 62, 57, 106, 253, 54, 251, 123,
- 62, 57, 106, 253, 53, 212, 2, 62, 57, 106, 253, 52, 252, 144, 62, 57,
- 106, 253, 51, 226, 209, 62, 57, 106, 253, 50, 219, 0, 62, 57, 106, 253,
- 49, 249, 76, 62, 57, 230, 147, 253, 48, 234, 230, 62, 57, 230, 147, 253,
- 47, 234, 238, 62, 57, 106, 253, 46, 226, 222, 62, 57, 106, 253, 45, 211,
- 236, 62, 57, 106, 253, 44, 62, 57, 230, 147, 253, 43, 254, 25, 62, 57,
- 230, 147, 253, 42, 231, 57, 62, 57, 106, 253, 41, 251, 142, 62, 57, 106,
- 253, 40, 242, 173, 62, 57, 106, 253, 39, 62, 57, 106, 253, 38, 211, 212,
- 62, 57, 106, 253, 37, 62, 57, 106, 253, 36, 62, 57, 106, 253, 35, 240,
- 255, 62, 57, 106, 253, 34, 62, 57, 106, 253, 33, 62, 57, 106, 253, 32,
- 62, 57, 230, 147, 253, 30, 215, 92, 62, 57, 106, 253, 29, 62, 57, 106,
- 253, 28, 62, 57, 106, 253, 27, 250, 2, 62, 57, 106, 253, 26, 62, 57, 106,
- 253, 25, 62, 57, 106, 253, 24, 243, 100, 62, 57, 106, 253, 23, 254, 12,
- 62, 57, 106, 253, 22, 62, 57, 106, 253, 21, 62, 57, 106, 253, 20, 62, 57,
- 106, 253, 19, 62, 57, 106, 253, 18, 62, 57, 106, 253, 17, 62, 57, 106,
- 253, 16, 62, 57, 106, 253, 15, 62, 57, 106, 253, 14, 62, 57, 106, 253,
- 13, 230, 139, 62, 57, 106, 253, 12, 62, 57, 106, 253, 11, 215, 236, 62,
- 57, 106, 253, 10, 62, 57, 106, 253, 9, 62, 57, 106, 253, 8, 62, 57, 106,
- 253, 7, 62, 57, 106, 253, 6, 62, 57, 106, 253, 5, 62, 57, 106, 253, 4,
- 62, 57, 106, 253, 3, 62, 57, 106, 253, 2, 62, 57, 106, 253, 1, 62, 57,
- 106, 253, 0, 62, 57, 106, 252, 255, 241, 218, 62, 57, 106, 252, 234, 244,
- 36, 62, 57, 106, 252, 231, 252, 124, 62, 57, 106, 252, 226, 219, 7, 62,
- 57, 106, 252, 225, 75, 62, 57, 106, 252, 224, 62, 57, 106, 252, 223, 217,
- 237, 62, 57, 106, 252, 222, 62, 57, 106, 252, 221, 62, 57, 106, 252, 220,
- 211, 254, 250, 147, 62, 57, 106, 252, 219, 250, 147, 62, 57, 106, 252,
- 218, 250, 148, 244, 7, 62, 57, 106, 252, 217, 212, 0, 62, 57, 106, 252,
- 216, 62, 57, 106, 252, 215, 62, 57, 230, 147, 252, 214, 247, 206, 62, 57,
- 106, 252, 213, 62, 57, 106, 252, 212, 62, 57, 106, 252, 210, 62, 57, 106,
- 252, 209, 62, 57, 106, 252, 208, 62, 57, 106, 252, 207, 248, 167, 62, 57,
- 106, 252, 206, 62, 57, 106, 252, 205, 62, 57, 106, 252, 204, 62, 57, 106,
- 252, 203, 62, 57, 106, 252, 202, 62, 57, 106, 213, 186, 253, 31, 62, 57,
- 106, 213, 186, 252, 254, 62, 57, 106, 213, 186, 252, 253, 62, 57, 106,
- 213, 186, 252, 252, 62, 57, 106, 213, 186, 252, 251, 62, 57, 106, 213,
- 186, 252, 250, 62, 57, 106, 213, 186, 252, 249, 62, 57, 106, 213, 186,
- 252, 248, 62, 57, 106, 213, 186, 252, 247, 62, 57, 106, 213, 186, 252,
- 246, 62, 57, 106, 213, 186, 252, 245, 62, 57, 106, 213, 186, 252, 244,
- 62, 57, 106, 213, 186, 252, 243, 62, 57, 106, 213, 186, 252, 242, 62, 57,
- 106, 213, 186, 252, 241, 62, 57, 106, 213, 186, 252, 240, 62, 57, 106,
- 213, 186, 252, 239, 62, 57, 106, 213, 186, 252, 238, 62, 57, 106, 213,
- 186, 252, 237, 62, 57, 106, 213, 186, 252, 236, 62, 57, 106, 213, 186,
- 252, 235, 62, 57, 106, 213, 186, 252, 233, 62, 57, 106, 213, 186, 252,
- 232, 62, 57, 106, 213, 186, 252, 230, 62, 57, 106, 213, 186, 252, 229,
- 62, 57, 106, 213, 186, 252, 228, 62, 57, 106, 213, 186, 252, 227, 62, 57,
- 106, 213, 186, 252, 211, 62, 57, 106, 213, 186, 252, 201, 254, 245, 211,
- 209, 220, 140, 232, 219, 254, 245, 211, 209, 220, 140, 247, 128, 254,
- 245, 250, 138, 79, 254, 245, 54, 111, 254, 245, 54, 105, 254, 245, 54,
- 158, 254, 245, 54, 161, 254, 245, 54, 190, 254, 245, 54, 195, 254, 245,
- 54, 199, 254, 245, 54, 196, 254, 245, 54, 201, 254, 245, 54, 216, 248,
- 254, 245, 54, 215, 73, 254, 245, 54, 216, 163, 254, 245, 54, 244, 23,
- 254, 245, 54, 244, 122, 254, 245, 54, 219, 113, 254, 245, 54, 220, 118,
- 254, 245, 54, 245, 192, 254, 245, 54, 228, 200, 254, 245, 54, 123, 240,
- 217, 254, 245, 54, 113, 240, 217, 254, 245, 54, 134, 240, 217, 254, 245,
- 54, 244, 19, 240, 217, 254, 245, 54, 244, 89, 240, 217, 254, 245, 54,
- 219, 127, 240, 217, 254, 245, 54, 220, 124, 240, 217, 254, 245, 54, 245,
- 201, 240, 217, 254, 245, 54, 228, 205, 240, 217, 254, 245, 54, 123, 216,
- 148, 254, 245, 54, 113, 216, 148, 254, 245, 54, 134, 216, 148, 254, 245,
- 54, 244, 19, 216, 148, 254, 245, 54, 244, 89, 216, 148, 254, 245, 54,
- 219, 127, 216, 148, 254, 245, 54, 220, 124, 216, 148, 254, 245, 54, 245,
- 201, 216, 148, 254, 245, 54, 228, 205, 216, 148, 254, 245, 54, 216, 249,
- 216, 148, 254, 245, 54, 215, 74, 216, 148, 254, 245, 54, 216, 164, 216,
- 148, 254, 245, 54, 244, 24, 216, 148, 254, 245, 54, 244, 123, 216, 148,
- 254, 245, 54, 219, 114, 216, 148, 254, 245, 54, 220, 119, 216, 148, 254,
- 245, 54, 245, 193, 216, 148, 254, 245, 54, 228, 201, 216, 148, 254, 245,
- 212, 14, 252, 136, 214, 173, 254, 245, 212, 14, 244, 100, 218, 60, 254,
- 245, 212, 14, 221, 178, 218, 60, 254, 245, 212, 14, 216, 170, 218, 60,
- 254, 245, 212, 14, 244, 12, 218, 60, 254, 245, 246, 89, 231, 95, 244,
- 100, 218, 60, 254, 245, 232, 205, 231, 95, 244, 100, 218, 60, 254, 245,
- 231, 95, 221, 178, 218, 60, 254, 245, 231, 95, 216, 170, 218, 60, 26,
- 255, 15, 253, 202, 123, 224, 24, 26, 255, 15, 253, 202, 123, 242, 34, 26,
- 255, 15, 253, 202, 123, 246, 108, 26, 255, 15, 253, 202, 190, 26, 255,
- 15, 253, 202, 244, 122, 26, 255, 15, 253, 202, 244, 89, 240, 217, 26,
- 255, 15, 253, 202, 244, 89, 216, 148, 26, 255, 15, 253, 202, 244, 123,
- 216, 148, 26, 255, 15, 253, 202, 244, 89, 217, 68, 26, 255, 15, 253, 202,
- 216, 249, 217, 68, 26, 255, 15, 253, 202, 244, 123, 217, 68, 26, 255, 15,
- 253, 202, 123, 240, 218, 217, 68, 26, 255, 15, 253, 202, 244, 89, 240,
- 218, 217, 68, 26, 255, 15, 253, 202, 123, 216, 149, 217, 68, 26, 255, 15,
- 253, 202, 244, 89, 216, 149, 217, 68, 26, 255, 15, 253, 202, 244, 89,
- 218, 152, 26, 255, 15, 253, 202, 216, 249, 218, 152, 26, 255, 15, 253,
- 202, 244, 123, 218, 152, 26, 255, 15, 253, 202, 123, 240, 218, 218, 152,
- 26, 255, 15, 253, 202, 244, 89, 240, 218, 218, 152, 26, 255, 15, 253,
- 202, 123, 216, 149, 218, 152, 26, 255, 15, 253, 202, 216, 249, 216, 149,
- 218, 152, 26, 255, 15, 253, 202, 244, 123, 216, 149, 218, 152, 26, 255,
- 15, 253, 202, 216, 249, 230, 169, 26, 255, 15, 241, 212, 123, 225, 34,
- 26, 255, 15, 216, 182, 111, 26, 255, 15, 241, 208, 111, 26, 255, 15, 245,
- 112, 105, 26, 255, 15, 216, 182, 105, 26, 255, 15, 249, 73, 113, 246,
- 107, 26, 255, 15, 245, 112, 113, 246, 107, 26, 255, 15, 215, 204, 190,
- 26, 255, 15, 215, 204, 216, 248, 26, 255, 15, 215, 204, 216, 249, 254,
- 149, 17, 26, 255, 15, 241, 208, 216, 248, 26, 255, 15, 231, 46, 216, 248,
- 26, 255, 15, 216, 182, 216, 248, 26, 255, 15, 216, 182, 216, 163, 26,
- 255, 15, 215, 204, 244, 122, 26, 255, 15, 215, 204, 244, 123, 254, 149,
- 17, 26, 255, 15, 241, 208, 244, 122, 26, 255, 15, 216, 182, 244, 122, 26,
- 255, 15, 216, 182, 123, 240, 217, 26, 255, 15, 216, 182, 134, 240, 217,
- 26, 255, 15, 245, 112, 244, 89, 240, 217, 26, 255, 15, 215, 204, 244, 89,
- 240, 217, 26, 255, 15, 216, 182, 244, 89, 240, 217, 26, 255, 15, 250,
- 235, 244, 89, 240, 217, 26, 255, 15, 229, 187, 244, 89, 240, 217, 26,
- 255, 15, 216, 182, 123, 216, 148, 26, 255, 15, 216, 182, 244, 89, 216,
- 148, 26, 255, 15, 248, 65, 244, 89, 230, 169, 26, 255, 15, 218, 120, 244,
- 123, 230, 169, 26, 123, 163, 50, 26, 123, 163, 5, 254, 149, 17, 26, 113,
- 216, 168, 50, 26, 134, 224, 23, 50, 26, 211, 45, 50, 26, 217, 69, 50, 26,
- 246, 109, 50, 26, 226, 250, 50, 26, 113, 226, 249, 50, 26, 134, 226, 249,
- 50, 26, 244, 19, 226, 249, 50, 26, 244, 89, 226, 249, 50, 26, 231, 40,
- 50, 26, 233, 163, 252, 136, 50, 26, 232, 200, 50, 26, 226, 135, 50, 26,
- 211, 159, 50, 26, 253, 251, 50, 26, 254, 8, 50, 26, 242, 151, 50, 26,
- 215, 187, 252, 136, 50, 26, 210, 87, 50, 222, 200, 220, 115, 50, 222,
- 200, 214, 185, 50, 222, 200, 220, 144, 50, 222, 200, 220, 113, 50, 222,
- 200, 247, 221, 220, 113, 50, 222, 200, 219, 170, 50, 222, 200, 248, 61,
- 50, 222, 200, 224, 9, 50, 222, 200, 220, 131, 50, 222, 200, 246, 68, 50,
- 222, 200, 253, 246, 50, 222, 200, 250, 179, 50, 225, 146, 247, 199, 5,
- 225, 216, 225, 146, 247, 199, 5, 225, 27, 241, 242, 225, 146, 247, 199,
- 5, 217, 46, 241, 242, 225, 146, 247, 199, 5, 250, 255, 225, 146, 247,
- 199, 5, 250, 109, 225, 146, 247, 199, 5, 211, 221, 225, 146, 247, 199, 5,
- 241, 218, 225, 146, 247, 199, 5, 243, 92, 225, 146, 247, 199, 5, 216,
- 117, 225, 146, 247, 199, 5, 75, 225, 146, 247, 199, 5, 251, 177, 225,
- 146, 247, 199, 5, 220, 31, 225, 146, 247, 199, 5, 249, 252, 225, 146,
- 247, 199, 5, 231, 189, 225, 146, 247, 199, 5, 231, 141, 225, 146, 247,
- 199, 5, 221, 218, 225, 146, 247, 199, 5, 232, 243, 225, 146, 247, 199, 5,
- 251, 196, 225, 146, 247, 199, 5, 250, 239, 225, 38, 225, 146, 247, 199,
- 5, 247, 141, 225, 146, 247, 199, 5, 249, 231, 225, 146, 247, 199, 5, 219,
- 89, 225, 146, 247, 199, 5, 249, 232, 225, 146, 247, 199, 5, 252, 71, 225,
- 146, 247, 199, 5, 220, 18, 225, 146, 247, 199, 5, 240, 255, 225, 146,
- 247, 199, 5, 241, 185, 225, 146, 247, 199, 5, 251, 120, 233, 42, 225,
- 146, 247, 199, 5, 250, 232, 225, 146, 247, 199, 5, 223, 156, 225, 146,
- 247, 199, 5, 245, 238, 225, 146, 247, 199, 5, 246, 115, 225, 146, 247,
- 199, 5, 215, 106, 225, 146, 247, 199, 5, 252, 74, 225, 146, 247, 199, 5,
- 225, 39, 215, 236, 225, 146, 247, 199, 5, 213, 159, 225, 146, 247, 199,
- 5, 226, 22, 225, 146, 247, 199, 5, 222, 192, 225, 146, 247, 199, 5, 232,
- 230, 225, 146, 247, 199, 5, 226, 119, 252, 192, 225, 146, 247, 199, 5,
- 244, 56, 225, 146, 247, 199, 5, 242, 145, 225, 146, 247, 199, 5, 218,
- 121, 225, 146, 247, 199, 5, 4, 253, 176, 225, 146, 247, 199, 5, 212, 32,
- 252, 156, 225, 146, 247, 199, 5, 38, 226, 252, 91, 232, 65, 1, 61, 232,
- 65, 1, 76, 232, 65, 1, 253, 166, 232, 65, 1, 252, 27, 232, 65, 1, 243,
- 209, 232, 65, 1, 249, 68, 232, 65, 1, 74, 232, 65, 1, 212, 98, 232, 65,
- 1, 210, 159, 232, 65, 1, 216, 211, 232, 65, 1, 235, 150, 232, 65, 1, 235,
- 29, 232, 65, 1, 224, 99, 232, 65, 1, 156, 232, 65, 1, 194, 232, 65, 1,
- 230, 30, 232, 65, 1, 230, 171, 232, 65, 1, 228, 116, 232, 65, 1, 69, 232,
- 65, 1, 226, 109, 232, 65, 1, 234, 53, 232, 65, 1, 153, 232, 65, 1, 222,
- 93, 232, 65, 1, 217, 153, 232, 65, 1, 215, 160, 232, 65, 1, 254, 131,
- 232, 65, 1, 245, 158, 232, 65, 1, 242, 67, 232, 65, 1, 211, 178, 250,
- 245, 1, 61, 250, 245, 1, 226, 95, 250, 245, 1, 249, 68, 250, 245, 1, 156,
- 250, 245, 1, 214, 116, 250, 245, 1, 153, 250, 245, 1, 233, 68, 250, 245,
- 1, 255, 84, 250, 245, 1, 224, 99, 250, 245, 1, 253, 166, 250, 245, 1,
- 194, 250, 245, 1, 78, 250, 245, 1, 248, 231, 250, 245, 1, 217, 153, 250,
- 245, 1, 220, 106, 250, 245, 1, 220, 105, 250, 245, 1, 222, 93, 250, 245,
- 1, 251, 73, 250, 245, 1, 69, 250, 245, 1, 228, 116, 250, 245, 1, 211,
- 178, 250, 245, 1, 230, 30, 250, 245, 1, 215, 159, 250, 245, 1, 226, 109,
- 250, 245, 1, 218, 228, 250, 245, 1, 74, 250, 245, 1, 76, 250, 245, 1,
- 214, 113, 250, 245, 1, 235, 29, 250, 245, 1, 235, 20, 250, 245, 1, 229,
- 155, 250, 245, 1, 214, 118, 250, 245, 1, 243, 209, 250, 245, 1, 243, 144,
- 250, 245, 1, 218, 170, 250, 245, 1, 218, 169, 250, 245, 1, 229, 84, 250,
- 245, 1, 236, 40, 250, 245, 1, 251, 72, 250, 245, 1, 215, 160, 250, 245,
- 1, 214, 115, 250, 245, 1, 222, 182, 250, 245, 1, 231, 134, 250, 245, 1,
- 231, 133, 250, 245, 1, 231, 132, 250, 245, 1, 231, 131, 250, 245, 1, 233,
- 67, 250, 245, 1, 245, 242, 250, 245, 1, 214, 114, 55, 32, 1, 61, 55, 32,
- 1, 252, 83, 55, 32, 1, 234, 188, 55, 32, 1, 248, 98, 55, 32, 1, 76, 55,
- 32, 1, 213, 255, 55, 32, 1, 210, 94, 55, 32, 1, 241, 245, 55, 32, 1, 216,
- 196, 55, 32, 1, 74, 55, 32, 1, 176, 55, 32, 1, 245, 182, 55, 32, 1, 245,
- 167, 55, 32, 1, 245, 158, 55, 32, 1, 245, 83, 55, 32, 1, 78, 55, 32, 1,
- 225, 224, 55, 32, 1, 220, 65, 55, 32, 1, 233, 223, 55, 32, 1, 245, 100,
- 55, 32, 1, 245, 90, 55, 32, 1, 217, 23, 55, 32, 1, 69, 55, 32, 1, 245,
- 185, 55, 32, 1, 225, 139, 55, 32, 1, 234, 125, 55, 32, 1, 245, 210, 55,
- 32, 1, 245, 92, 55, 32, 1, 250, 139, 55, 32, 1, 236, 40, 55, 32, 1, 214,
- 118, 55, 32, 227, 202, 111, 55, 32, 227, 202, 190, 55, 32, 227, 202, 216,
- 248, 55, 32, 227, 202, 244, 122, 242, 160, 1, 254, 213, 242, 160, 1, 252,
- 171, 242, 160, 1, 242, 218, 242, 160, 1, 248, 212, 242, 160, 1, 254, 209,
- 242, 160, 1, 224, 82, 242, 160, 1, 235, 161, 242, 160, 1, 242, 46, 242,
- 160, 1, 216, 159, 242, 160, 1, 245, 191, 242, 160, 1, 233, 196, 242, 160,
- 1, 233, 119, 242, 160, 1, 231, 184, 242, 160, 1, 229, 189, 242, 160, 1,
- 235, 125, 242, 160, 1, 214, 136, 242, 160, 1, 226, 73, 242, 160, 1, 228,
- 200, 242, 160, 1, 223, 168, 242, 160, 1, 221, 220, 242, 160, 1, 217, 5,
- 242, 160, 1, 211, 234, 242, 160, 1, 244, 186, 242, 160, 1, 236, 44, 242,
- 160, 1, 240, 206, 242, 160, 1, 226, 143, 242, 160, 1, 228, 205, 240, 217,
- 214, 209, 1, 254, 155, 214, 209, 1, 252, 34, 214, 209, 1, 243, 115, 214,
- 209, 1, 234, 138, 214, 209, 1, 248, 62, 214, 209, 1, 241, 75, 214, 209,
- 1, 211, 227, 214, 209, 1, 210, 85, 214, 209, 1, 240, 248, 214, 209, 1,
- 216, 231, 214, 209, 1, 210, 233, 214, 209, 1, 235, 0, 214, 209, 1, 220,
- 22, 214, 209, 1, 233, 104, 214, 209, 1, 231, 70, 214, 209, 1, 248, 29,
- 214, 209, 1, 227, 198, 214, 209, 1, 210, 13, 214, 209, 1, 221, 250, 214,
- 209, 1, 254, 205, 214, 209, 1, 224, 153, 214, 209, 1, 222, 27, 214, 209,
- 1, 224, 38, 214, 209, 1, 223, 147, 214, 209, 1, 216, 200, 214, 209, 1,
- 242, 251, 214, 209, 1, 112, 214, 209, 1, 74, 214, 209, 1, 69, 214, 209,
- 1, 218, 181, 214, 209, 211, 209, 247, 180, 55, 225, 172, 5, 61, 55, 225,
- 172, 5, 74, 55, 225, 172, 5, 69, 55, 225, 172, 5, 176, 55, 225, 172, 5,
- 233, 223, 55, 225, 172, 5, 243, 142, 55, 225, 172, 5, 242, 120, 55, 225,
- 172, 5, 211, 165, 55, 225, 172, 5, 251, 41, 55, 225, 172, 5, 235, 147,
- 55, 225, 172, 5, 235, 114, 55, 225, 172, 5, 217, 106, 55, 225, 172, 5,
- 215, 119, 55, 225, 172, 5, 248, 229, 55, 225, 172, 5, 248, 11, 55, 225,
- 172, 5, 246, 86, 55, 225, 172, 5, 216, 209, 55, 225, 172, 5, 191, 55,
- 225, 172, 5, 252, 199, 55, 225, 172, 5, 244, 204, 55, 225, 172, 5, 198,
- 55, 225, 172, 5, 227, 242, 55, 225, 172, 5, 186, 55, 225, 172, 5, 230,
- 235, 55, 225, 172, 5, 230, 107, 55, 225, 172, 5, 192, 55, 225, 172, 5,
- 214, 27, 55, 225, 172, 5, 213, 176, 55, 225, 172, 5, 205, 55, 225, 172,
- 5, 222, 142, 55, 225, 172, 5, 233, 141, 55, 225, 172, 5, 206, 55, 225,
- 172, 5, 210, 116, 55, 225, 172, 5, 220, 104, 55, 225, 172, 5, 218, 225,
- 55, 225, 172, 5, 162, 55, 225, 172, 5, 253, 194, 55, 225, 172, 5, 253,
- 193, 55, 225, 172, 5, 253, 192, 55, 225, 172, 5, 211, 142, 55, 225, 172,
- 5, 248, 208, 55, 225, 172, 5, 248, 207, 55, 225, 172, 5, 252, 178, 55,
- 225, 172, 5, 251, 93, 55, 225, 172, 211, 209, 247, 180, 55, 225, 172, 54,
- 111, 55, 225, 172, 54, 105, 55, 225, 172, 54, 216, 248, 55, 225, 172, 54,
- 215, 73, 55, 225, 172, 54, 240, 217, 181, 6, 1, 200, 74, 181, 6, 1, 200,
- 76, 181, 6, 1, 200, 61, 181, 6, 1, 200, 254, 218, 181, 6, 1, 200, 78,
- 181, 6, 1, 200, 226, 187, 181, 6, 1, 219, 253, 74, 181, 6, 1, 219, 253,
- 76, 181, 6, 1, 219, 253, 61, 181, 6, 1, 219, 253, 254, 218, 181, 6, 1,
- 219, 253, 78, 181, 6, 1, 219, 253, 226, 187, 181, 6, 1, 253, 175, 181, 6,
- 1, 226, 120, 181, 6, 1, 211, 195, 181, 6, 1, 211, 44, 181, 6, 1, 242, 67,
- 181, 6, 1, 225, 214, 181, 6, 1, 252, 74, 181, 6, 1, 217, 12, 181, 6, 1,
- 248, 85, 181, 6, 1, 250, 136, 181, 6, 1, 235, 130, 181, 6, 1, 234, 195,
- 181, 6, 1, 243, 90, 181, 6, 1, 245, 210, 181, 6, 1, 213, 250, 181, 6, 1,
- 245, 67, 181, 6, 1, 216, 195, 181, 6, 1, 245, 90, 181, 6, 1, 210, 92,
- 181, 6, 1, 245, 83, 181, 6, 1, 210, 73, 181, 6, 1, 245, 100, 181, 6, 1,
- 245, 182, 181, 6, 1, 245, 167, 181, 6, 1, 245, 158, 181, 6, 1, 245, 146,
- 181, 6, 1, 226, 223, 181, 6, 1, 245, 46, 181, 4, 1, 200, 74, 181, 4, 1,
- 200, 76, 181, 4, 1, 200, 61, 181, 4, 1, 200, 254, 218, 181, 4, 1, 200,
- 78, 181, 4, 1, 200, 226, 187, 181, 4, 1, 219, 253, 74, 181, 4, 1, 219,
- 253, 76, 181, 4, 1, 219, 253, 61, 181, 4, 1, 219, 253, 254, 218, 181, 4,
- 1, 219, 253, 78, 181, 4, 1, 219, 253, 226, 187, 181, 4, 1, 253, 175, 181,
- 4, 1, 226, 120, 181, 4, 1, 211, 195, 181, 4, 1, 211, 44, 181, 4, 1, 242,
- 67, 181, 4, 1, 225, 214, 181, 4, 1, 252, 74, 181, 4, 1, 217, 12, 181, 4,
- 1, 248, 85, 181, 4, 1, 250, 136, 181, 4, 1, 235, 130, 181, 4, 1, 234,
- 195, 181, 4, 1, 243, 90, 181, 4, 1, 245, 210, 181, 4, 1, 213, 250, 181,
- 4, 1, 245, 67, 181, 4, 1, 216, 195, 181, 4, 1, 245, 90, 181, 4, 1, 210,
- 92, 181, 4, 1, 245, 83, 181, 4, 1, 210, 73, 181, 4, 1, 245, 100, 181, 4,
- 1, 245, 182, 181, 4, 1, 245, 167, 181, 4, 1, 245, 158, 181, 4, 1, 245,
- 146, 181, 4, 1, 226, 223, 181, 4, 1, 245, 46, 220, 71, 1, 225, 212, 220,
- 71, 1, 216, 6, 220, 71, 1, 234, 97, 220, 71, 1, 244, 155, 220, 71, 1,
- 216, 173, 220, 71, 1, 219, 60, 220, 71, 1, 218, 15, 220, 71, 1, 250, 69,
- 220, 71, 1, 211, 46, 220, 71, 1, 240, 216, 220, 71, 1, 252, 13, 220, 71,
- 1, 248, 97, 220, 71, 1, 243, 128, 220, 71, 1, 213, 123, 220, 71, 1, 216,
- 177, 220, 71, 1, 210, 21, 220, 71, 1, 231, 94, 220, 71, 1, 235, 55, 220,
- 71, 1, 211, 225, 220, 71, 1, 242, 55, 220, 71, 1, 232, 148, 220, 71, 1,
- 230, 194, 220, 71, 1, 236, 47, 220, 71, 1, 245, 209, 220, 71, 1, 253,
- 239, 220, 71, 1, 255, 0, 220, 71, 1, 226, 200, 220, 71, 1, 211, 212, 220,
- 71, 1, 226, 134, 220, 71, 1, 254, 218, 220, 71, 1, 222, 210, 220, 71, 1,
- 227, 198, 220, 71, 1, 245, 225, 220, 71, 1, 254, 223, 220, 71, 1, 240,
- 118, 220, 71, 1, 214, 163, 220, 71, 1, 227, 2, 220, 71, 1, 226, 180, 220,
- 71, 1, 226, 222, 220, 71, 1, 253, 178, 220, 71, 1, 254, 27, 220, 71, 1,
- 226, 162, 220, 71, 1, 254, 201, 220, 71, 1, 245, 94, 220, 71, 1, 254, 5,
- 220, 71, 1, 245, 235, 220, 71, 1, 240, 125, 220, 71, 1, 211, 13, 226,
- 145, 1, 254, 179, 226, 145, 1, 252, 199, 226, 145, 1, 217, 106, 226, 145,
- 1, 235, 147, 226, 145, 1, 211, 165, 226, 145, 1, 234, 138, 226, 145, 1,
- 248, 84, 226, 145, 1, 205, 226, 145, 1, 206, 226, 145, 1, 220, 28, 226,
- 145, 1, 248, 33, 226, 145, 1, 250, 223, 226, 145, 1, 243, 142, 226, 145,
- 1, 244, 204, 226, 145, 1, 224, 89, 226, 145, 1, 235, 15, 226, 145, 1,
- 233, 136, 226, 145, 1, 230, 205, 226, 145, 1, 227, 182, 226, 145, 1, 212,
- 30, 226, 145, 1, 162, 226, 145, 1, 192, 226, 145, 1, 61, 226, 145, 1, 76,
- 226, 145, 1, 74, 226, 145, 1, 78, 226, 145, 1, 69, 226, 145, 1, 255, 82,
- 226, 145, 1, 245, 217, 226, 145, 1, 226, 187, 226, 145, 21, 210, 86, 226,
- 145, 21, 111, 226, 145, 21, 105, 226, 145, 21, 158, 226, 145, 21, 161,
- 226, 145, 21, 190, 226, 145, 21, 195, 226, 145, 21, 199, 226, 145, 21,
- 196, 226, 145, 21, 201, 249, 75, 3, 61, 249, 75, 3, 76, 249, 75, 3, 74,
- 249, 75, 3, 78, 249, 75, 3, 69, 249, 75, 3, 235, 147, 249, 75, 3, 235,
- 74, 249, 75, 3, 176, 249, 75, 3, 234, 188, 249, 75, 3, 234, 98, 249, 75,
- 3, 234, 34, 249, 75, 3, 233, 223, 249, 75, 3, 233, 141, 249, 75, 3, 233,
- 64, 249, 75, 3, 232, 247, 249, 75, 3, 232, 162, 249, 75, 3, 232, 103,
- 249, 75, 3, 186, 249, 75, 3, 231, 96, 249, 75, 3, 230, 235, 249, 75, 3,
- 230, 166, 249, 75, 3, 230, 107, 249, 75, 3, 198, 249, 75, 3, 229, 112,
- 249, 75, 3, 228, 238, 249, 75, 3, 228, 79, 249, 75, 3, 227, 242, 249, 75,
- 3, 191, 249, 75, 3, 225, 224, 249, 75, 3, 225, 111, 249, 75, 3, 225, 19,
- 249, 75, 3, 224, 153, 249, 75, 3, 205, 249, 75, 3, 223, 131, 249, 75, 3,
- 223, 38, 249, 75, 3, 222, 213, 249, 75, 3, 222, 142, 249, 75, 3, 206,
- 249, 75, 3, 221, 183, 249, 75, 3, 219, 193, 249, 75, 3, 219, 60, 249, 75,
- 3, 218, 84, 249, 75, 3, 217, 106, 249, 75, 3, 217, 23, 249, 75, 3, 216,
- 118, 249, 75, 3, 112, 249, 75, 3, 215, 119, 249, 75, 3, 212, 65, 249, 75,
- 3, 212, 22, 249, 75, 3, 211, 250, 249, 75, 3, 211, 227, 249, 75, 3, 211,
- 165, 249, 75, 3, 211, 162, 249, 75, 3, 210, 116, 249, 75, 3, 210, 23,
- 236, 8, 254, 35, 1, 254, 177, 236, 8, 254, 35, 1, 252, 33, 236, 8, 254,
- 35, 1, 242, 208, 236, 8, 254, 35, 1, 248, 196, 236, 8, 254, 35, 1, 241,
- 245, 236, 8, 254, 35, 1, 212, 30, 236, 8, 254, 35, 1, 210, 97, 236, 8,
- 254, 35, 1, 241, 202, 236, 8, 254, 35, 1, 216, 227, 236, 8, 254, 35, 1,
- 210, 232, 236, 8, 254, 35, 1, 234, 231, 236, 8, 254, 35, 1, 233, 99, 236,
- 8, 254, 35, 1, 231, 70, 236, 8, 254, 35, 1, 227, 198, 236, 8, 254, 35, 1,
- 221, 251, 236, 8, 254, 35, 1, 253, 170, 236, 8, 254, 35, 1, 225, 224,
- 236, 8, 254, 35, 1, 222, 26, 236, 8, 254, 35, 1, 224, 37, 236, 8, 254,
- 35, 1, 223, 70, 236, 8, 254, 35, 1, 220, 22, 236, 8, 254, 35, 1, 217, 37,
- 236, 8, 254, 35, 221, 175, 50, 236, 8, 254, 35, 54, 111, 236, 8, 254, 35,
- 54, 105, 236, 8, 254, 35, 54, 158, 236, 8, 254, 35, 54, 216, 248, 236, 8,
- 254, 35, 54, 215, 73, 236, 8, 254, 35, 54, 123, 240, 217, 236, 8, 254,
- 35, 54, 123, 216, 148, 236, 8, 254, 35, 54, 216, 249, 216, 148, 225, 122,
- 1, 254, 174, 225, 122, 1, 252, 36, 225, 122, 1, 243, 116, 225, 122, 1,
- 248, 64, 225, 122, 1, 241, 245, 225, 122, 1, 212, 37, 225, 122, 1, 210,
- 110, 225, 122, 1, 241, 204, 225, 122, 1, 216, 231, 225, 122, 1, 210, 233,
- 225, 122, 1, 235, 0, 225, 122, 1, 233, 105, 225, 122, 1, 231, 70, 225,
- 122, 1, 227, 198, 225, 122, 1, 220, 146, 225, 122, 1, 254, 205, 225, 122,
- 1, 225, 224, 225, 122, 1, 222, 27, 225, 122, 1, 224, 42, 225, 122, 1,
- 222, 191, 225, 122, 1, 220, 22, 225, 122, 1, 217, 42, 225, 122, 54, 111,
- 225, 122, 54, 216, 248, 225, 122, 54, 215, 73, 225, 122, 54, 123, 240,
- 217, 225, 122, 54, 105, 225, 122, 54, 158, 225, 122, 211, 209, 220, 139,
- 232, 64, 1, 61, 232, 64, 1, 253, 166, 232, 64, 1, 243, 209, 232, 64, 1,
- 249, 68, 232, 64, 1, 76, 232, 64, 1, 214, 105, 232, 64, 1, 74, 232, 64,
- 1, 211, 117, 232, 64, 1, 235, 29, 232, 64, 1, 156, 232, 64, 1, 194, 232,
- 64, 1, 230, 30, 232, 64, 1, 78, 232, 64, 1, 153, 232, 64, 1, 218, 228,
- 232, 64, 1, 217, 153, 232, 64, 1, 69, 232, 64, 1, 245, 14, 232, 64, 1,
- 224, 99, 232, 64, 1, 222, 93, 232, 64, 1, 215, 160, 232, 64, 1, 254, 131,
- 232, 64, 1, 245, 158, 232, 64, 1, 232, 67, 232, 64, 1, 228, 116, 232, 64,
- 1, 251, 74, 232, 64, 215, 223, 79, 231, 53, 241, 181, 1, 61, 231, 53,
- 241, 181, 1, 76, 231, 53, 241, 181, 1, 74, 231, 53, 241, 181, 1, 78, 231,
- 53, 241, 181, 1, 192, 231, 53, 241, 181, 1, 212, 65, 231, 53, 241, 181,
- 1, 252, 199, 231, 53, 241, 181, 1, 252, 198, 231, 53, 241, 181, 1, 191,
- 231, 53, 241, 181, 1, 186, 231, 53, 241, 181, 1, 198, 231, 53, 241, 181,
- 1, 229, 233, 231, 53, 241, 181, 1, 229, 112, 231, 53, 241, 181, 1, 229,
- 111, 231, 53, 241, 181, 1, 205, 231, 53, 241, 181, 1, 223, 190, 231, 53,
- 241, 181, 1, 233, 141, 231, 53, 241, 181, 1, 234, 138, 231, 53, 241, 181,
- 1, 241, 196, 231, 53, 241, 181, 1, 206, 231, 53, 241, 181, 1, 222, 35,
- 231, 53, 241, 181, 1, 221, 183, 231, 53, 241, 181, 1, 176, 231, 53, 241,
- 181, 1, 224, 91, 231, 53, 241, 181, 1, 217, 106, 231, 53, 241, 181, 1,
- 217, 105, 231, 53, 241, 181, 1, 217, 23, 231, 53, 241, 181, 1, 217, 22,
- 231, 53, 241, 181, 1, 112, 231, 53, 241, 181, 1, 248, 229, 231, 53, 241,
- 181, 16, 213, 170, 231, 53, 241, 181, 16, 213, 169, 231, 53, 249, 102, 1,
- 61, 231, 53, 249, 102, 1, 76, 231, 53, 249, 102, 1, 74, 231, 53, 249,
- 102, 1, 78, 231, 53, 249, 102, 1, 192, 231, 53, 249, 102, 1, 212, 65,
- 231, 53, 249, 102, 1, 252, 199, 231, 53, 249, 102, 1, 191, 231, 53, 249,
- 102, 1, 186, 231, 53, 249, 102, 1, 198, 231, 53, 249, 102, 1, 229, 112,
- 231, 53, 249, 102, 1, 205, 231, 53, 249, 102, 1, 233, 141, 231, 53, 249,
- 102, 1, 234, 138, 231, 53, 249, 102, 1, 241, 196, 231, 53, 249, 102, 1,
- 206, 231, 53, 249, 102, 1, 254, 31, 206, 231, 53, 249, 102, 1, 221, 183,
- 231, 53, 249, 102, 1, 176, 231, 53, 249, 102, 1, 224, 91, 231, 53, 249,
- 102, 1, 217, 106, 231, 53, 249, 102, 1, 217, 23, 231, 53, 249, 102, 1,
- 112, 231, 53, 249, 102, 1, 248, 229, 231, 53, 249, 102, 232, 151, 222,
- 219, 231, 53, 249, 102, 232, 151, 236, 13, 234, 126, 1, 61, 234, 126, 25,
- 5, 74, 234, 126, 25, 5, 69, 234, 126, 25, 5, 149, 153, 234, 126, 25, 5,
- 76, 234, 126, 25, 5, 78, 234, 126, 25, 233, 29, 79, 234, 126, 5, 52, 222,
- 237, 51, 234, 126, 5, 254, 83, 234, 126, 5, 213, 147, 234, 126, 1, 176,
- 234, 126, 1, 234, 138, 234, 126, 1, 243, 142, 234, 126, 1, 243, 0, 234,
- 126, 1, 251, 41, 234, 126, 1, 250, 165, 234, 126, 1, 235, 147, 234, 126,
- 1, 227, 169, 234, 126, 1, 215, 157, 234, 126, 1, 215, 145, 234, 126, 1,
- 248, 143, 234, 126, 1, 248, 127, 234, 126, 1, 228, 115, 234, 126, 1, 217,
- 106, 234, 126, 1, 216, 209, 234, 126, 1, 248, 229, 234, 126, 1, 248, 33,
- 234, 126, 1, 198, 234, 126, 1, 191, 234, 126, 1, 225, 150, 234, 126, 1,
- 252, 199, 234, 126, 1, 252, 26, 234, 126, 1, 186, 234, 126, 1, 192, 234,
- 126, 1, 205, 234, 126, 1, 233, 141, 234, 126, 1, 214, 27, 234, 126, 1,
- 220, 104, 234, 126, 1, 218, 225, 234, 126, 1, 206, 234, 126, 1, 210, 116,
- 234, 126, 1, 162, 234, 126, 1, 234, 52, 234, 126, 1, 215, 125, 234, 126,
- 5, 252, 149, 48, 234, 126, 5, 250, 229, 234, 126, 5, 59, 51, 234, 126,
- 213, 152, 234, 126, 21, 111, 234, 126, 21, 105, 234, 126, 21, 158, 234,
- 126, 21, 161, 234, 126, 54, 216, 248, 234, 126, 54, 215, 73, 234, 126,
- 54, 123, 240, 217, 234, 126, 54, 123, 216, 148, 234, 126, 224, 144, 247,
- 128, 234, 126, 224, 144, 4, 250, 43, 234, 126, 224, 144, 250, 43, 234,
- 126, 224, 144, 249, 145, 130, 234, 126, 224, 144, 231, 185, 234, 126,
- 224, 144, 232, 121, 234, 126, 224, 144, 248, 186, 234, 126, 224, 144, 52,
- 248, 186, 234, 126, 224, 144, 232, 213, 55, 219, 30, 254, 46, 1, 241,
- 245, 55, 219, 30, 254, 46, 1, 233, 99, 55, 219, 30, 254, 46, 1, 241, 202,
- 55, 219, 30, 254, 46, 1, 231, 70, 55, 219, 30, 254, 46, 1, 224, 37, 55,
- 219, 30, 254, 46, 1, 212, 30, 55, 219, 30, 254, 46, 1, 220, 22, 55, 219,
- 30, 254, 46, 1, 223, 70, 55, 219, 30, 254, 46, 1, 252, 33, 55, 219, 30,
- 254, 46, 1, 217, 37, 55, 219, 30, 254, 46, 1, 221, 228, 55, 219, 30, 254,
- 46, 1, 234, 231, 55, 219, 30, 254, 46, 1, 227, 198, 55, 219, 30, 254, 46,
- 1, 234, 122, 55, 219, 30, 254, 46, 1, 222, 26, 55, 219, 30, 254, 46, 1,
- 221, 251, 55, 219, 30, 254, 46, 1, 244, 162, 55, 219, 30, 254, 46, 1,
- 254, 179, 55, 219, 30, 254, 46, 1, 253, 169, 55, 219, 30, 254, 46, 1,
- 248, 30, 55, 219, 30, 254, 46, 1, 242, 208, 55, 219, 30, 254, 46, 1, 248,
- 196, 55, 219, 30, 254, 46, 1, 242, 245, 55, 219, 30, 254, 46, 1, 216,
- 227, 55, 219, 30, 254, 46, 1, 210, 96, 55, 219, 30, 254, 46, 1, 248, 27,
- 55, 219, 30, 254, 46, 1, 210, 232, 55, 219, 30, 254, 46, 1, 216, 198, 55,
- 219, 30, 254, 46, 1, 216, 179, 55, 219, 30, 254, 46, 54, 111, 55, 219,
- 30, 254, 46, 54, 244, 122, 55, 219, 30, 254, 46, 132, 235, 245, 253, 180,
- 1, 61, 253, 180, 1, 255, 82, 253, 180, 1, 254, 81, 253, 180, 1, 255, 41,
- 253, 180, 1, 254, 131, 253, 180, 1, 255, 42, 253, 180, 1, 254, 252, 253,
- 180, 1, 254, 248, 253, 180, 1, 76, 253, 180, 1, 245, 217, 253, 180, 1,
- 78, 253, 180, 1, 226, 187, 253, 180, 1, 74, 253, 180, 1, 236, 40, 253,
- 180, 1, 69, 253, 180, 1, 214, 118, 253, 180, 1, 234, 188, 253, 180, 1,
- 211, 162, 253, 180, 1, 211, 128, 253, 180, 1, 211, 137, 253, 180, 1, 243,
- 69, 253, 180, 1, 243, 31, 253, 180, 1, 242, 243, 253, 180, 1, 250, 198,
- 253, 180, 1, 235, 132, 253, 180, 1, 217, 23, 253, 180, 1, 216, 196, 253,
- 180, 1, 248, 98, 253, 180, 1, 248, 25, 253, 180, 1, 215, 152, 253, 180,
- 1, 225, 224, 253, 180, 1, 244, 162, 253, 180, 1, 252, 83, 253, 180, 1,
- 252, 22, 253, 180, 1, 229, 69, 253, 180, 1, 228, 244, 253, 180, 1, 228,
- 245, 253, 180, 1, 229, 112, 253, 180, 1, 227, 160, 253, 180, 1, 228, 110,
- 253, 180, 1, 231, 96, 253, 180, 1, 241, 123, 253, 180, 1, 210, 166, 253,
- 180, 1, 211, 47, 253, 180, 1, 213, 255, 253, 180, 1, 223, 131, 253, 180,
- 1, 233, 64, 253, 180, 1, 221, 183, 253, 180, 1, 210, 94, 253, 180, 1,
- 220, 65, 253, 180, 1, 210, 74, 253, 180, 1, 219, 200, 253, 180, 1, 218,
- 195, 253, 180, 1, 241, 245, 253, 180, 255, 30, 79, 216, 80, 113, 170,
- 115, 123, 59, 224, 143, 4, 113, 170, 115, 123, 59, 224, 143, 233, 91,
- 113, 170, 115, 123, 59, 224, 143, 233, 91, 123, 59, 115, 113, 170, 224,
- 143, 233, 91, 113, 222, 235, 115, 123, 222, 237, 224, 143, 233, 91, 123,
- 222, 237, 115, 113, 222, 235, 224, 143, 235, 225, 226, 2, 1, 254, 177,
- 235, 225, 226, 2, 1, 252, 33, 235, 225, 226, 2, 1, 242, 208, 235, 225,
- 226, 2, 1, 248, 196, 235, 225, 226, 2, 1, 241, 245, 235, 225, 226, 2, 1,
- 212, 30, 235, 225, 226, 2, 1, 210, 97, 235, 225, 226, 2, 1, 241, 202,
- 235, 225, 226, 2, 1, 216, 227, 235, 225, 226, 2, 1, 210, 232, 235, 225,
- 226, 2, 1, 234, 231, 235, 225, 226, 2, 1, 233, 99, 235, 225, 226, 2, 1,
- 231, 70, 235, 225, 226, 2, 1, 227, 198, 235, 225, 226, 2, 1, 221, 251,
- 235, 225, 226, 2, 1, 253, 170, 235, 225, 226, 2, 1, 225, 224, 235, 225,
- 226, 2, 1, 222, 26, 235, 225, 226, 2, 1, 224, 37, 235, 225, 226, 2, 1,
- 223, 70, 235, 225, 226, 2, 1, 220, 22, 235, 225, 226, 2, 1, 217, 37, 235,
- 225, 226, 2, 54, 111, 235, 225, 226, 2, 54, 105, 235, 225, 226, 2, 54,
- 158, 235, 225, 226, 2, 54, 161, 235, 225, 226, 2, 54, 216, 248, 235, 225,
- 226, 2, 54, 215, 73, 235, 225, 226, 2, 54, 123, 240, 217, 235, 225, 226,
- 2, 54, 123, 216, 148, 235, 225, 226, 76, 1, 254, 177, 235, 225, 226, 76,
- 1, 252, 33, 235, 225, 226, 76, 1, 242, 208, 235, 225, 226, 76, 1, 248,
- 196, 235, 225, 226, 76, 1, 241, 245, 235, 225, 226, 76, 1, 212, 29, 235,
- 225, 226, 76, 1, 210, 97, 235, 225, 226, 76, 1, 241, 202, 235, 225, 226,
- 76, 1, 216, 227, 235, 225, 226, 76, 1, 210, 232, 235, 225, 226, 76, 1,
- 234, 231, 235, 225, 226, 76, 1, 233, 99, 235, 225, 226, 76, 1, 231, 69,
- 235, 225, 226, 76, 1, 227, 198, 235, 225, 226, 76, 1, 221, 251, 235, 225,
- 226, 76, 1, 225, 224, 235, 225, 226, 76, 1, 222, 26, 235, 225, 226, 76,
- 1, 220, 22, 235, 225, 226, 76, 1, 217, 37, 235, 225, 226, 76, 54, 111,
- 235, 225, 226, 76, 54, 105, 235, 225, 226, 76, 54, 158, 235, 225, 226,
- 76, 54, 161, 235, 225, 226, 76, 54, 216, 248, 235, 225, 226, 76, 54, 215,
- 73, 235, 225, 226, 76, 54, 123, 240, 217, 235, 225, 226, 76, 54, 123,
- 216, 148, 55, 202, 1, 226, 153, 61, 55, 202, 1, 211, 37, 61, 55, 202, 1,
- 211, 37, 254, 252, 55, 202, 1, 226, 153, 74, 55, 202, 1, 211, 37, 74, 55,
- 202, 1, 211, 37, 76, 55, 202, 1, 226, 153, 78, 55, 202, 1, 226, 153, 226,
- 238, 55, 202, 1, 211, 37, 226, 238, 55, 202, 1, 226, 153, 255, 34, 55,
- 202, 1, 211, 37, 255, 34, 55, 202, 1, 226, 153, 254, 251, 55, 202, 1,
- 211, 37, 254, 251, 55, 202, 1, 226, 153, 254, 225, 55, 202, 1, 211, 37,
- 254, 225, 55, 202, 1, 226, 153, 254, 246, 55, 202, 1, 211, 37, 254, 246,
- 55, 202, 1, 226, 153, 255, 8, 55, 202, 1, 211, 37, 255, 8, 55, 202, 1,
- 226, 153, 254, 250, 55, 202, 1, 226, 153, 245, 20, 55, 202, 1, 211, 37,
- 245, 20, 55, 202, 1, 226, 153, 253, 175, 55, 202, 1, 211, 37, 253, 175,
- 55, 202, 1, 226, 153, 254, 233, 55, 202, 1, 211, 37, 254, 233, 55, 202,
- 1, 226, 153, 254, 244, 55, 202, 1, 211, 37, 254, 244, 55, 202, 1, 226,
- 153, 226, 237, 55, 202, 1, 211, 37, 226, 237, 55, 202, 1, 226, 153, 254,
- 187, 55, 202, 1, 211, 37, 254, 187, 55, 202, 1, 226, 153, 254, 243, 55,
- 202, 1, 226, 153, 245, 169, 55, 202, 1, 226, 153, 245, 167, 55, 202, 1,
- 226, 153, 254, 131, 55, 202, 1, 226, 153, 254, 241, 55, 202, 1, 211, 37,
- 254, 241, 55, 202, 1, 226, 153, 245, 139, 55, 202, 1, 211, 37, 245, 139,
- 55, 202, 1, 226, 153, 245, 155, 55, 202, 1, 211, 37, 245, 155, 55, 202,
- 1, 226, 153, 245, 126, 55, 202, 1, 211, 37, 245, 126, 55, 202, 1, 211,
- 37, 254, 123, 55, 202, 1, 226, 153, 245, 146, 55, 202, 1, 211, 37, 254,
- 240, 55, 202, 1, 226, 153, 245, 116, 55, 202, 1, 226, 153, 226, 179, 55,
- 202, 1, 226, 153, 240, 120, 55, 202, 1, 226, 153, 245, 223, 55, 202, 1,
- 211, 37, 245, 223, 55, 202, 1, 226, 153, 254, 53, 55, 202, 1, 211, 37,
- 254, 53, 55, 202, 1, 226, 153, 235, 188, 55, 202, 1, 211, 37, 235, 188,
- 55, 202, 1, 226, 153, 226, 163, 55, 202, 1, 211, 37, 226, 163, 55, 202,
- 1, 226, 153, 254, 49, 55, 202, 1, 211, 37, 254, 49, 55, 202, 1, 226, 153,
- 254, 239, 55, 202, 1, 226, 153, 253, 245, 55, 202, 1, 226, 153, 254, 237,
- 55, 202, 1, 226, 153, 253, 239, 55, 202, 1, 211, 37, 253, 239, 55, 202,
- 1, 226, 153, 245, 83, 55, 202, 1, 211, 37, 245, 83, 55, 202, 1, 226, 153,
- 253, 214, 55, 202, 1, 211, 37, 253, 214, 55, 202, 1, 226, 153, 254, 234,
- 55, 202, 1, 211, 37, 254, 234, 55, 202, 1, 226, 153, 226, 144, 55, 202,
- 1, 226, 153, 252, 133, 222, 129, 21, 111, 222, 129, 21, 105, 222, 129,
- 21, 158, 222, 129, 21, 161, 222, 129, 21, 190, 222, 129, 21, 195, 222,
- 129, 21, 199, 222, 129, 21, 196, 222, 129, 21, 201, 222, 129, 54, 216,
- 248, 222, 129, 54, 215, 73, 222, 129, 54, 216, 163, 222, 129, 54, 244,
- 23, 222, 129, 54, 244, 122, 222, 129, 54, 219, 113, 222, 129, 54, 220,
- 118, 222, 129, 54, 245, 192, 222, 129, 54, 228, 200, 222, 129, 54, 123,
- 240, 217, 222, 129, 54, 113, 240, 217, 222, 129, 54, 134, 240, 217, 222,
- 129, 54, 244, 19, 240, 217, 222, 129, 54, 244, 89, 240, 217, 222, 129,
- 54, 219, 127, 240, 217, 222, 129, 54, 220, 124, 240, 217, 222, 129, 54,
- 245, 201, 240, 217, 222, 129, 54, 228, 205, 240, 217, 222, 129, 244, 10,
- 123, 242, 34, 222, 129, 244, 10, 123, 224, 24, 222, 129, 244, 10, 123,
- 216, 169, 222, 129, 244, 10, 113, 216, 167, 118, 5, 251, 7, 118, 5, 254,
- 83, 118, 5, 213, 147, 118, 5, 235, 108, 118, 5, 214, 161, 118, 1, 61,
- 118, 1, 255, 82, 118, 1, 74, 118, 1, 236, 40, 118, 1, 69, 118, 1, 214,
- 118, 118, 1, 149, 153, 118, 1, 149, 222, 182, 118, 1, 149, 156, 118, 1,
- 149, 232, 191, 118, 1, 76, 118, 1, 254, 210, 118, 1, 78, 118, 1, 253,
- 200, 118, 1, 176, 118, 1, 234, 138, 118, 1, 243, 142, 118, 1, 243, 0,
- 118, 1, 229, 82, 118, 1, 251, 41, 118, 1, 250, 165, 118, 1, 235, 147,
- 118, 1, 235, 120, 118, 1, 227, 169, 118, 1, 215, 157, 118, 1, 215, 145,
- 118, 1, 248, 143, 118, 1, 248, 127, 118, 1, 228, 115, 118, 1, 217, 106,
- 118, 1, 216, 209, 118, 1, 248, 229, 118, 1, 248, 33, 118, 1, 198, 118, 1,
- 191, 118, 1, 225, 150, 118, 1, 252, 199, 118, 1, 252, 26, 118, 1, 186,
- 118, 1, 192, 118, 1, 205, 118, 1, 233, 141, 118, 1, 214, 27, 118, 1, 220,
- 104, 118, 1, 218, 225, 118, 1, 206, 118, 1, 162, 118, 1, 232, 190, 118,
- 1, 55, 36, 232, 181, 118, 1, 55, 36, 222, 181, 118, 1, 55, 36, 228, 97,
- 118, 25, 5, 255, 82, 118, 25, 5, 252, 23, 255, 82, 118, 25, 5, 74, 118,
- 25, 5, 236, 40, 118, 25, 5, 69, 118, 25, 5, 214, 118, 118, 25, 5, 149,
- 153, 118, 25, 5, 149, 222, 182, 118, 25, 5, 149, 156, 118, 25, 5, 149,
- 232, 191, 118, 25, 5, 76, 118, 25, 5, 254, 210, 118, 25, 5, 78, 118, 25,
- 5, 253, 200, 118, 213, 152, 118, 248, 186, 118, 52, 248, 186, 118, 224,
- 144, 247, 128, 118, 224, 144, 52, 247, 128, 118, 224, 144, 232, 219, 118,
- 224, 144, 249, 145, 130, 118, 224, 144, 232, 121, 118, 54, 111, 118, 54,
- 105, 118, 54, 158, 118, 54, 161, 118, 54, 190, 118, 54, 195, 118, 54,
- 199, 118, 54, 196, 118, 54, 201, 118, 54, 216, 248, 118, 54, 215, 73,
- 118, 54, 216, 163, 118, 54, 244, 23, 118, 54, 244, 122, 118, 54, 219,
- 113, 118, 54, 220, 118, 118, 54, 245, 192, 118, 54, 228, 200, 118, 54,
- 123, 240, 217, 118, 54, 123, 216, 148, 118, 21, 210, 86, 118, 21, 111,
- 118, 21, 105, 118, 21, 158, 118, 21, 161, 118, 21, 190, 118, 21, 195,
- 118, 21, 199, 118, 21, 196, 118, 21, 201, 234, 250, 5, 251, 7, 234, 250,
- 5, 254, 83, 234, 250, 5, 213, 147, 234, 250, 1, 61, 234, 250, 1, 255, 82,
- 234, 250, 1, 74, 234, 250, 1, 236, 40, 234, 250, 1, 69, 234, 250, 1, 214,
- 118, 234, 250, 1, 76, 234, 250, 1, 254, 210, 234, 250, 1, 78, 234, 250,
- 1, 253, 200, 234, 250, 1, 176, 234, 250, 1, 234, 138, 234, 250, 1, 243,
- 142, 234, 250, 1, 243, 0, 234, 250, 1, 229, 82, 234, 250, 1, 251, 41,
- 234, 250, 1, 250, 165, 234, 250, 1, 235, 147, 234, 250, 1, 235, 120, 234,
- 250, 1, 227, 169, 234, 250, 1, 215, 157, 234, 250, 1, 215, 145, 234, 250,
- 1, 248, 143, 234, 250, 1, 248, 132, 234, 250, 1, 248, 127, 234, 250, 1,
- 223, 42, 234, 250, 1, 228, 115, 234, 250, 1, 217, 106, 234, 250, 1, 216,
- 209, 234, 250, 1, 248, 229, 234, 250, 1, 248, 33, 234, 250, 1, 198, 234,
- 250, 1, 191, 234, 250, 1, 225, 150, 234, 250, 1, 252, 199, 234, 250, 1,
- 252, 26, 234, 250, 1, 186, 234, 250, 1, 192, 234, 250, 1, 205, 234, 250,
- 1, 233, 141, 234, 250, 1, 214, 27, 234, 250, 1, 220, 104, 234, 250, 1,
- 218, 225, 234, 250, 1, 206, 234, 250, 1, 162, 234, 250, 25, 5, 255, 82,
- 234, 250, 25, 5, 74, 234, 250, 25, 5, 236, 40, 234, 250, 25, 5, 69, 234,
- 250, 25, 5, 214, 118, 234, 250, 25, 5, 76, 234, 250, 25, 5, 254, 210,
- 234, 250, 25, 5, 78, 234, 250, 25, 5, 253, 200, 234, 250, 5, 213, 152,
- 234, 250, 5, 227, 209, 234, 250, 255, 30, 50, 234, 250, 245, 129, 50,
- 234, 250, 54, 50, 234, 250, 221, 175, 79, 234, 250, 52, 221, 175, 79,
- 234, 250, 248, 186, 234, 250, 52, 248, 186, 219, 38, 219, 46, 1, 222, 20,
- 219, 38, 219, 46, 1, 217, 81, 219, 38, 219, 46, 1, 252, 176, 219, 38,
- 219, 46, 1, 251, 31, 219, 38, 219, 46, 1, 248, 211, 219, 38, 219, 46, 1,
- 243, 127, 219, 38, 219, 46, 1, 231, 215, 219, 38, 219, 46, 1, 229, 79,
- 219, 38, 219, 46, 1, 233, 118, 219, 38, 219, 46, 1, 229, 218, 219, 38,
- 219, 46, 1, 214, 24, 219, 38, 219, 46, 1, 226, 77, 219, 38, 219, 46, 1,
- 211, 84, 219, 38, 219, 46, 1, 223, 171, 219, 38, 219, 46, 1, 242, 44,
- 219, 38, 219, 46, 1, 234, 254, 219, 38, 219, 46, 1, 235, 142, 219, 38,
- 219, 46, 1, 227, 166, 219, 38, 219, 46, 1, 254, 218, 219, 38, 219, 46, 1,
- 245, 215, 219, 38, 219, 46, 1, 236, 41, 219, 38, 219, 46, 1, 214, 208,
- 219, 38, 219, 46, 1, 226, 226, 219, 38, 219, 46, 1, 245, 205, 219, 38,
- 219, 46, 1, 231, 228, 219, 38, 219, 46, 21, 210, 86, 219, 38, 219, 46,
- 21, 111, 219, 38, 219, 46, 21, 105, 219, 38, 219, 46, 21, 158, 219, 38,
- 219, 46, 21, 161, 219, 38, 219, 46, 21, 190, 219, 38, 219, 46, 21, 195,
- 219, 38, 219, 46, 21, 199, 219, 38, 219, 46, 21, 196, 219, 38, 219, 46,
- 21, 201, 250, 159, 5, 251, 7, 250, 159, 5, 254, 83, 250, 159, 5, 213,
- 147, 250, 159, 1, 255, 82, 250, 159, 1, 74, 250, 159, 1, 69, 250, 159, 1,
- 76, 250, 159, 1, 235, 16, 250, 159, 1, 234, 137, 250, 159, 1, 243, 139,
- 250, 159, 1, 242, 255, 250, 159, 1, 229, 81, 250, 159, 1, 251, 40, 250,
- 159, 1, 250, 164, 250, 159, 1, 235, 146, 250, 159, 1, 235, 119, 250, 159,
- 1, 227, 168, 250, 159, 1, 215, 156, 250, 159, 1, 215, 144, 250, 159, 1,
- 248, 142, 250, 159, 1, 248, 126, 250, 159, 1, 228, 114, 250, 159, 1, 217,
- 102, 250, 159, 1, 216, 208, 250, 159, 1, 248, 228, 250, 159, 1, 248, 32,
- 250, 159, 1, 229, 230, 250, 159, 1, 226, 93, 250, 159, 1, 225, 149, 250,
- 159, 1, 252, 197, 250, 159, 1, 252, 25, 250, 159, 1, 231, 242, 250, 159,
- 1, 210, 167, 250, 159, 1, 211, 103, 250, 159, 1, 223, 187, 250, 159, 1,
- 233, 140, 250, 159, 1, 212, 64, 250, 159, 1, 222, 33, 250, 159, 1, 242,
- 53, 250, 159, 25, 5, 61, 250, 159, 25, 5, 74, 250, 159, 25, 5, 236, 40,
- 250, 159, 25, 5, 69, 250, 159, 25, 5, 214, 118, 250, 159, 25, 5, 76, 250,
- 159, 25, 5, 254, 210, 250, 159, 25, 5, 78, 250, 159, 25, 5, 253, 200,
- 250, 159, 25, 5, 226, 223, 250, 159, 144, 79, 250, 159, 253, 201, 79,
- 250, 159, 213, 152, 250, 159, 231, 240, 250, 159, 21, 210, 86, 250, 159,
- 21, 111, 250, 159, 21, 105, 250, 159, 21, 158, 250, 159, 21, 161, 250,
- 159, 21, 190, 250, 159, 21, 195, 250, 159, 21, 199, 250, 159, 21, 196,
- 250, 159, 21, 201, 250, 159, 221, 175, 79, 250, 159, 248, 186, 250, 159,
- 52, 248, 186, 250, 159, 224, 16, 79, 174, 5, 251, 7, 174, 5, 254, 83,
- 174, 5, 213, 147, 174, 1, 61, 174, 1, 255, 82, 174, 1, 74, 174, 1, 236,
- 40, 174, 1, 69, 174, 1, 214, 118, 174, 1, 149, 153, 174, 1, 149, 222,
- 182, 174, 1, 149, 156, 174, 1, 149, 232, 191, 174, 1, 76, 174, 1, 254,
- 210, 174, 1, 78, 174, 1, 253, 200, 174, 1, 176, 174, 1, 234, 138, 174, 1,
- 243, 142, 174, 1, 243, 0, 174, 1, 229, 82, 174, 1, 251, 41, 174, 1, 250,
- 165, 174, 1, 235, 147, 174, 1, 235, 120, 174, 1, 227, 169, 174, 1, 215,
- 157, 174, 1, 215, 145, 174, 1, 248, 143, 174, 1, 248, 127, 174, 1, 228,
- 115, 174, 1, 217, 106, 174, 1, 216, 209, 174, 1, 248, 229, 174, 1, 248,
- 33, 174, 1, 198, 174, 1, 191, 174, 1, 225, 150, 174, 1, 252, 199, 174, 1,
- 252, 26, 174, 1, 186, 174, 1, 192, 174, 1, 205, 174, 1, 233, 141, 174, 1,
- 232, 190, 174, 1, 214, 27, 174, 1, 220, 104, 174, 1, 218, 225, 174, 1,
- 206, 174, 1, 162, 174, 25, 5, 255, 82, 174, 25, 5, 74, 174, 25, 5, 236,
- 40, 174, 25, 5, 69, 174, 25, 5, 214, 118, 174, 25, 5, 149, 153, 174, 25,
- 5, 149, 222, 182, 174, 25, 5, 149, 156, 174, 25, 5, 149, 232, 191, 174,
- 25, 5, 76, 174, 25, 5, 254, 210, 174, 25, 5, 78, 174, 25, 5, 253, 200,
- 174, 5, 213, 152, 174, 5, 253, 183, 174, 5, 235, 108, 174, 5, 214, 161,
- 174, 226, 208, 174, 248, 186, 174, 52, 248, 186, 174, 255, 30, 50, 174,
- 220, 139, 174, 21, 210, 86, 174, 21, 111, 174, 21, 105, 174, 21, 158,
- 174, 21, 161, 174, 21, 190, 174, 21, 195, 174, 21, 199, 174, 21, 196,
- 174, 21, 201, 217, 70, 1, 61, 217, 70, 1, 255, 82, 217, 70, 1, 74, 217,
- 70, 1, 236, 40, 217, 70, 1, 69, 217, 70, 1, 214, 118, 217, 70, 1, 76,
- 217, 70, 1, 254, 210, 217, 70, 1, 78, 217, 70, 1, 253, 200, 217, 70, 1,
- 176, 217, 70, 1, 234, 138, 217, 70, 1, 243, 142, 217, 70, 1, 243, 0, 217,
- 70, 1, 229, 82, 217, 70, 1, 251, 41, 217, 70, 1, 250, 165, 217, 70, 1,
- 235, 147, 217, 70, 1, 235, 120, 217, 70, 1, 227, 169, 217, 70, 1, 215,
- 157, 217, 70, 1, 215, 145, 217, 70, 1, 248, 143, 217, 70, 1, 248, 127,
- 217, 70, 1, 228, 115, 217, 70, 1, 217, 106, 217, 70, 1, 216, 209, 217,
- 70, 1, 248, 229, 217, 70, 1, 248, 33, 217, 70, 1, 198, 217, 70, 1, 191,
- 217, 70, 1, 225, 150, 217, 70, 1, 252, 199, 217, 70, 1, 252, 26, 217, 70,
- 1, 186, 217, 70, 1, 192, 217, 70, 1, 205, 217, 70, 1, 233, 141, 217, 70,
- 1, 214, 27, 217, 70, 1, 220, 104, 217, 70, 1, 206, 217, 70, 1, 162, 217,
- 70, 1, 222, 181, 217, 70, 5, 254, 83, 217, 70, 5, 213, 147, 217, 70, 25,
- 5, 255, 82, 217, 70, 25, 5, 74, 217, 70, 25, 5, 236, 40, 217, 70, 25, 5,
- 69, 217, 70, 25, 5, 214, 118, 217, 70, 25, 5, 76, 217, 70, 25, 5, 254,
- 210, 217, 70, 25, 5, 78, 217, 70, 25, 5, 253, 200, 217, 70, 5, 213, 152,
- 217, 70, 5, 227, 209, 217, 70, 21, 210, 86, 217, 70, 21, 111, 217, 70,
- 21, 105, 217, 70, 21, 158, 217, 70, 21, 161, 217, 70, 21, 190, 217, 70,
- 21, 195, 217, 70, 21, 199, 217, 70, 21, 196, 217, 70, 21, 201, 15, 5, 61,
- 15, 5, 116, 30, 61, 15, 5, 116, 30, 252, 184, 15, 5, 116, 30, 243, 112,
- 216, 240, 15, 5, 116, 30, 162, 15, 5, 116, 30, 236, 42, 15, 5, 116, 30,
- 233, 122, 242, 101, 15, 5, 116, 30, 230, 66, 15, 5, 116, 30, 222, 23, 15,
- 5, 255, 84, 15, 5, 255, 34, 15, 5, 255, 35, 30, 253, 237, 15, 5, 255, 35,
- 30, 246, 75, 242, 101, 15, 5, 255, 35, 30, 243, 125, 15, 5, 255, 35, 30,
- 243, 112, 216, 240, 15, 5, 255, 35, 30, 162, 15, 5, 255, 35, 30, 236, 43,
- 242, 101, 15, 5, 255, 35, 30, 236, 16, 15, 5, 255, 35, 30, 233, 123, 15,
- 5, 255, 35, 30, 220, 50, 15, 5, 255, 35, 30, 104, 96, 104, 96, 69, 15, 5,
- 255, 35, 242, 101, 15, 5, 255, 32, 15, 5, 255, 33, 30, 252, 168, 15, 5,
- 255, 33, 30, 243, 112, 216, 240, 15, 5, 255, 33, 30, 231, 97, 96, 245,
- 158, 15, 5, 255, 33, 30, 220, 102, 15, 5, 255, 33, 30, 217, 73, 15, 5,
- 255, 8, 15, 5, 254, 195, 15, 5, 254, 196, 30, 245, 95, 15, 5, 254, 196,
- 30, 220, 12, 96, 242, 197, 15, 5, 254, 187, 15, 5, 254, 188, 30, 254,
- 187, 15, 5, 254, 188, 30, 247, 224, 15, 5, 254, 188, 30, 242, 197, 15, 5,
- 254, 188, 30, 162, 15, 5, 254, 188, 30, 235, 5, 15, 5, 254, 188, 30, 234,
- 98, 15, 5, 254, 188, 30, 220, 65, 15, 5, 254, 188, 30, 214, 126, 15, 5,
- 254, 184, 15, 5, 254, 177, 15, 5, 254, 140, 15, 5, 254, 141, 30, 220, 65,
- 15, 5, 254, 131, 15, 5, 254, 132, 115, 254, 131, 15, 5, 254, 132, 134,
- 216, 86, 15, 5, 254, 132, 96, 229, 222, 226, 168, 254, 132, 96, 229, 221,
- 15, 5, 254, 132, 96, 229, 222, 218, 235, 15, 5, 254, 102, 15, 5, 254, 75,
- 15, 5, 254, 43, 15, 5, 254, 44, 30, 233, 202, 15, 5, 254, 16, 15, 5, 253,
- 244, 15, 5, 253, 239, 15, 5, 253, 240, 210, 40, 216, 240, 15, 5, 253,
- 240, 235, 9, 216, 240, 15, 5, 253, 240, 115, 253, 240, 215, 115, 115,
- 215, 115, 215, 115, 115, 215, 115, 226, 25, 15, 5, 253, 240, 115, 253,
- 240, 115, 253, 239, 15, 5, 253, 240, 115, 253, 240, 115, 253, 240, 249,
- 133, 253, 240, 115, 253, 240, 115, 253, 239, 15, 5, 253, 237, 15, 5, 253,
- 234, 15, 5, 252, 199, 15, 5, 252, 184, 15, 5, 252, 179, 15, 5, 252, 175,
- 15, 5, 252, 169, 15, 5, 252, 170, 115, 252, 169, 15, 5, 252, 168, 15, 5,
- 130, 15, 5, 252, 148, 15, 5, 252, 14, 15, 5, 252, 15, 30, 61, 15, 5, 252,
- 15, 30, 243, 103, 15, 5, 252, 15, 30, 236, 43, 242, 101, 15, 5, 251, 133,
- 15, 5, 251, 134, 115, 251, 134, 255, 34, 15, 5, 251, 134, 115, 251, 134,
- 214, 190, 15, 5, 251, 134, 249, 133, 251, 133, 15, 5, 251, 117, 15, 5,
- 251, 118, 115, 251, 117, 15, 5, 251, 106, 15, 5, 251, 105, 15, 5, 248,
- 229, 15, 5, 248, 220, 15, 5, 248, 221, 234, 72, 30, 116, 96, 231, 152,
- 15, 5, 248, 221, 234, 72, 30, 254, 140, 15, 5, 248, 221, 234, 72, 30,
- 252, 168, 15, 5, 248, 221, 234, 72, 30, 252, 14, 15, 5, 248, 221, 234,
- 72, 30, 243, 142, 15, 5, 248, 221, 234, 72, 30, 243, 143, 96, 231, 152,
- 15, 5, 248, 221, 234, 72, 30, 242, 221, 15, 5, 248, 221, 234, 72, 30,
- 242, 204, 15, 5, 248, 221, 234, 72, 30, 242, 110, 15, 5, 248, 221, 234,
- 72, 30, 162, 15, 5, 248, 221, 234, 72, 30, 235, 186, 15, 5, 248, 221,
- 234, 72, 30, 235, 187, 96, 232, 103, 15, 5, 248, 221, 234, 72, 30, 234,
- 248, 15, 5, 248, 221, 234, 72, 30, 233, 141, 15, 5, 248, 221, 234, 72,
- 30, 232, 103, 15, 5, 248, 221, 234, 72, 30, 232, 104, 96, 231, 151, 15,
- 5, 248, 221, 234, 72, 30, 232, 89, 15, 5, 248, 221, 234, 72, 30, 229,
- 112, 15, 5, 248, 221, 234, 72, 30, 226, 26, 96, 226, 25, 15, 5, 248, 221,
- 234, 72, 30, 219, 193, 15, 5, 248, 221, 234, 72, 30, 217, 73, 15, 5, 248,
- 221, 234, 72, 30, 214, 231, 96, 242, 204, 15, 5, 248, 221, 234, 72, 30,
- 214, 126, 15, 5, 248, 195, 15, 5, 248, 174, 15, 5, 248, 173, 15, 5, 248,
- 172, 15, 5, 248, 11, 15, 5, 247, 250, 15, 5, 247, 225, 15, 5, 247, 226,
- 30, 220, 65, 15, 5, 247, 224, 15, 5, 247, 214, 15, 5, 247, 215, 234, 214,
- 104, 242, 102, 247, 195, 15, 5, 247, 195, 15, 5, 246, 86, 15, 5, 246, 87,
- 115, 246, 86, 15, 5, 246, 87, 242, 101, 15, 5, 246, 87, 220, 47, 15, 5,
- 246, 84, 15, 5, 246, 85, 30, 245, 80, 15, 5, 246, 83, 15, 5, 246, 82, 15,
- 5, 246, 81, 15, 5, 246, 80, 15, 5, 246, 76, 15, 5, 246, 74, 15, 5, 246,
- 75, 242, 101, 15, 5, 246, 75, 242, 102, 242, 101, 15, 5, 246, 73, 15, 5,
- 246, 66, 15, 5, 76, 15, 5, 160, 30, 226, 25, 15, 5, 160, 115, 160, 227,
- 199, 115, 227, 198, 15, 5, 245, 242, 15, 5, 245, 243, 30, 116, 96, 242,
- 56, 96, 248, 229, 15, 5, 245, 243, 30, 243, 103, 15, 5, 245, 243, 30,
- 230, 235, 15, 5, 245, 243, 30, 222, 10, 15, 5, 245, 243, 30, 220, 65, 15,
- 5, 245, 243, 30, 69, 15, 5, 245, 219, 15, 5, 245, 208, 15, 5, 245, 182,
- 15, 5, 245, 158, 15, 5, 245, 159, 30, 243, 111, 15, 5, 245, 159, 30, 243,
- 112, 216, 240, 15, 5, 245, 159, 30, 231, 96, 15, 5, 245, 159, 249, 133,
- 245, 158, 15, 5, 245, 159, 226, 168, 245, 158, 15, 5, 245, 159, 218, 235,
- 15, 5, 245, 97, 15, 5, 245, 95, 15, 5, 245, 80, 15, 5, 245, 18, 15, 5,
- 245, 19, 30, 61, 15, 5, 245, 19, 30, 116, 96, 233, 110, 15, 5, 245, 19,
- 30, 116, 96, 233, 111, 30, 233, 110, 15, 5, 245, 19, 30, 254, 131, 15, 5,
- 245, 19, 30, 252, 184, 15, 5, 245, 19, 30, 246, 75, 242, 101, 15, 5, 245,
- 19, 30, 246, 75, 242, 102, 242, 101, 15, 5, 245, 19, 30, 162, 15, 5, 245,
- 19, 30, 242, 56, 242, 101, 15, 5, 245, 19, 30, 236, 43, 242, 101, 15, 5,
- 245, 19, 30, 234, 213, 15, 5, 245, 19, 30, 234, 214, 218, 235, 15, 5,
- 245, 19, 30, 233, 221, 15, 5, 245, 19, 30, 233, 141, 15, 5, 245, 19, 30,
- 233, 111, 30, 233, 110, 15, 5, 245, 19, 30, 232, 247, 15, 5, 245, 19, 30,
- 232, 103, 15, 5, 245, 19, 30, 214, 230, 15, 5, 245, 19, 30, 214, 219, 15,
- 5, 243, 142, 15, 5, 243, 143, 242, 101, 15, 5, 243, 140, 15, 5, 243, 141,
- 30, 116, 96, 248, 230, 96, 162, 15, 5, 243, 141, 30, 116, 96, 162, 15, 5,
- 243, 141, 30, 116, 96, 236, 42, 15, 5, 243, 141, 30, 255, 33, 216, 241,
- 96, 217, 94, 15, 5, 243, 141, 30, 254, 131, 15, 5, 243, 141, 30, 253,
- 239, 15, 5, 243, 141, 30, 253, 238, 96, 243, 125, 15, 5, 243, 141, 30,
- 252, 184, 15, 5, 243, 141, 30, 252, 149, 96, 205, 15, 5, 243, 141, 30,
- 251, 106, 15, 5, 243, 141, 30, 251, 107, 96, 205, 15, 5, 243, 141, 30,
- 248, 229, 15, 5, 243, 141, 30, 248, 11, 15, 5, 243, 141, 30, 247, 226,
- 30, 220, 65, 15, 5, 243, 141, 30, 246, 84, 15, 5, 243, 141, 30, 245, 182,
- 15, 5, 243, 141, 30, 245, 183, 96, 233, 141, 15, 5, 243, 141, 30, 245,
- 158, 15, 5, 243, 141, 30, 245, 159, 30, 243, 112, 216, 240, 15, 5, 243,
- 141, 30, 243, 112, 216, 240, 15, 5, 243, 141, 30, 243, 103, 15, 5, 243,
- 141, 30, 242, 221, 15, 5, 243, 141, 30, 242, 219, 15, 5, 243, 141, 30,
- 242, 220, 96, 61, 15, 5, 243, 141, 30, 242, 205, 96, 218, 84, 15, 5, 243,
- 141, 30, 242, 56, 96, 232, 104, 96, 245, 80, 15, 5, 243, 141, 30, 242,
- 37, 15, 5, 243, 141, 30, 242, 38, 96, 233, 141, 15, 5, 243, 141, 30, 241,
- 188, 96, 232, 247, 15, 5, 243, 141, 30, 240, 225, 15, 5, 243, 141, 30,
- 236, 43, 242, 101, 15, 5, 243, 141, 30, 235, 173, 96, 240, 230, 96, 253,
- 239, 15, 5, 243, 141, 30, 234, 248, 15, 5, 243, 141, 30, 234, 213, 15, 5,
- 243, 141, 30, 234, 95, 15, 5, 243, 141, 30, 234, 96, 96, 233, 110, 15, 5,
- 243, 141, 30, 233, 222, 96, 254, 131, 15, 5, 243, 141, 30, 233, 141, 15,
- 5, 243, 141, 30, 231, 97, 96, 245, 158, 15, 5, 243, 141, 30, 230, 235,
- 15, 5, 243, 141, 30, 227, 198, 15, 5, 243, 141, 30, 227, 199, 115, 227,
- 198, 15, 5, 243, 141, 30, 191, 15, 5, 243, 141, 30, 222, 10, 15, 5, 243,
- 141, 30, 221, 233, 15, 5, 243, 141, 30, 220, 65, 15, 5, 243, 141, 30,
- 220, 66, 96, 215, 99, 15, 5, 243, 141, 30, 220, 32, 15, 5, 243, 141, 30,
- 218, 44, 15, 5, 243, 141, 30, 217, 73, 15, 5, 243, 141, 30, 69, 15, 5,
- 243, 141, 30, 214, 219, 15, 5, 243, 141, 30, 214, 220, 96, 246, 86, 15,
- 5, 243, 141, 115, 243, 140, 15, 5, 243, 135, 15, 5, 243, 136, 249, 133,
- 243, 135, 15, 5, 243, 133, 15, 5, 243, 134, 115, 243, 134, 243, 104, 115,
- 243, 103, 15, 5, 243, 125, 15, 5, 243, 126, 243, 134, 115, 243, 134, 243,
- 104, 115, 243, 103, 15, 5, 243, 124, 15, 5, 243, 122, 15, 5, 243, 113,
- 15, 5, 243, 111, 15, 5, 243, 112, 216, 240, 15, 5, 243, 112, 115, 243,
- 111, 15, 5, 243, 112, 249, 133, 243, 111, 15, 5, 243, 103, 15, 5, 243,
- 102, 15, 5, 243, 97, 15, 5, 243, 43, 15, 5, 243, 44, 30, 233, 202, 15, 5,
- 242, 221, 15, 5, 242, 222, 30, 76, 15, 5, 242, 222, 30, 69, 15, 5, 242,
- 222, 249, 133, 242, 221, 15, 5, 242, 219, 15, 5, 242, 220, 115, 242, 219,
- 15, 5, 242, 220, 249, 133, 242, 219, 15, 5, 242, 216, 15, 5, 242, 204,
- 15, 5, 242, 205, 242, 101, 15, 5, 242, 202, 15, 5, 242, 203, 30, 116, 96,
- 236, 42, 15, 5, 242, 203, 30, 243, 112, 216, 240, 15, 5, 242, 203, 30,
- 236, 42, 15, 5, 242, 203, 30, 232, 104, 96, 236, 42, 15, 5, 242, 203, 30,
- 191, 15, 5, 242, 199, 15, 5, 242, 197, 15, 5, 242, 198, 249, 133, 242,
- 197, 15, 5, 242, 198, 30, 252, 184, 15, 5, 242, 198, 30, 217, 73, 15, 5,
- 242, 198, 216, 240, 15, 5, 242, 120, 15, 5, 242, 121, 249, 133, 242, 120,
- 15, 5, 242, 118, 15, 5, 242, 119, 30, 234, 248, 15, 5, 242, 119, 30, 234,
- 249, 30, 236, 43, 242, 101, 15, 5, 242, 119, 30, 227, 198, 15, 5, 242,
- 119, 30, 222, 11, 96, 215, 114, 15, 5, 242, 119, 242, 101, 15, 5, 242,
- 110, 15, 5, 242, 111, 30, 116, 96, 233, 202, 15, 5, 242, 111, 30, 233,
- 202, 15, 5, 242, 111, 115, 242, 111, 232, 96, 15, 5, 242, 105, 15, 5,
- 242, 103, 15, 5, 242, 104, 30, 220, 65, 15, 5, 242, 95, 15, 5, 242, 94,
- 15, 5, 242, 91, 15, 5, 242, 90, 15, 5, 162, 15, 5, 242, 56, 216, 240, 15,
- 5, 242, 56, 242, 101, 15, 5, 242, 37, 15, 5, 241, 187, 15, 5, 241, 188,
- 30, 253, 239, 15, 5, 241, 188, 30, 253, 237, 15, 5, 241, 188, 30, 252,
- 184, 15, 5, 241, 188, 30, 247, 195, 15, 5, 241, 188, 30, 243, 133, 15, 5,
- 241, 188, 30, 234, 87, 15, 5, 241, 188, 30, 227, 198, 15, 5, 241, 188,
- 30, 220, 65, 15, 5, 241, 188, 30, 69, 15, 5, 240, 229, 15, 5, 240, 225,
- 15, 5, 240, 226, 30, 254, 131, 15, 5, 240, 226, 30, 242, 37, 15, 5, 240,
- 226, 30, 234, 213, 15, 5, 240, 226, 30, 232, 203, 15, 5, 240, 226, 30,
- 214, 219, 15, 5, 240, 222, 15, 5, 74, 15, 5, 240, 161, 61, 15, 5, 240,
- 122, 15, 5, 236, 70, 15, 5, 236, 71, 115, 236, 71, 251, 106, 15, 5, 236,
- 71, 115, 236, 71, 218, 235, 15, 5, 236, 45, 15, 5, 236, 42, 15, 5, 236,
- 43, 247, 250, 15, 5, 236, 43, 223, 38, 15, 5, 236, 43, 115, 236, 43, 220,
- 16, 115, 220, 16, 214, 220, 115, 214, 219, 15, 5, 236, 43, 242, 101, 15,
- 5, 236, 34, 15, 5, 236, 35, 30, 243, 112, 216, 240, 15, 5, 236, 33, 15,
- 5, 236, 23, 15, 5, 236, 24, 30, 217, 73, 15, 5, 236, 24, 249, 133, 236,
- 23, 15, 5, 236, 24, 226, 168, 236, 23, 15, 5, 236, 24, 218, 235, 15, 5,
- 236, 16, 15, 5, 236, 6, 15, 5, 235, 186, 15, 5, 235, 172, 15, 5, 176, 15,
- 5, 235, 19, 30, 61, 15, 5, 235, 19, 30, 255, 8, 15, 5, 235, 19, 30, 255,
- 9, 96, 233, 221, 15, 5, 235, 19, 30, 253, 237, 15, 5, 235, 19, 30, 252,
- 184, 15, 5, 235, 19, 30, 252, 168, 15, 5, 235, 19, 30, 130, 15, 5, 235,
- 19, 30, 252, 14, 15, 5, 235, 19, 30, 245, 95, 15, 5, 235, 19, 30, 245,
- 80, 15, 5, 235, 19, 30, 243, 142, 15, 5, 235, 19, 30, 243, 125, 15, 5,
- 235, 19, 30, 243, 112, 216, 240, 15, 5, 235, 19, 30, 243, 103, 15, 5,
- 235, 19, 30, 243, 104, 96, 220, 103, 96, 61, 15, 5, 235, 19, 30, 242,
- 221, 15, 5, 235, 19, 30, 242, 204, 15, 5, 235, 19, 30, 242, 198, 96, 221,
- 233, 15, 5, 235, 19, 30, 242, 198, 249, 133, 242, 197, 15, 5, 235, 19,
- 30, 242, 120, 15, 5, 235, 19, 30, 242, 94, 15, 5, 235, 19, 30, 236, 42,
- 15, 5, 235, 19, 30, 236, 23, 15, 5, 235, 19, 30, 234, 248, 15, 5, 235,
- 19, 30, 234, 98, 15, 5, 235, 19, 30, 234, 95, 15, 5, 235, 19, 30, 232,
- 247, 15, 5, 235, 19, 30, 232, 103, 15, 5, 235, 19, 30, 231, 96, 15, 5,
- 235, 19, 30, 231, 97, 96, 246, 86, 15, 5, 235, 19, 30, 231, 97, 96, 242,
- 221, 15, 5, 235, 19, 30, 231, 97, 96, 217, 23, 15, 5, 235, 19, 30, 230,
- 235, 15, 5, 235, 19, 30, 230, 236, 96, 227, 193, 15, 5, 235, 19, 30, 229,
- 112, 15, 5, 235, 19, 30, 227, 198, 15, 5, 235, 19, 30, 225, 111, 15, 5,
- 235, 19, 30, 222, 142, 15, 5, 235, 19, 30, 206, 15, 5, 235, 19, 30, 221,
- 233, 15, 5, 235, 19, 30, 220, 104, 15, 5, 235, 19, 30, 220, 65, 15, 5,
- 235, 19, 30, 220, 32, 15, 5, 235, 19, 30, 219, 227, 15, 5, 235, 19, 30,
- 219, 184, 15, 5, 235, 19, 30, 218, 52, 15, 5, 235, 19, 30, 217, 51, 15,
- 5, 235, 19, 30, 69, 15, 5, 235, 19, 30, 214, 230, 15, 5, 235, 19, 30,
- 214, 219, 15, 5, 235, 19, 30, 214, 193, 30, 191, 15, 5, 235, 19, 30, 214,
- 126, 15, 5, 235, 19, 30, 210, 44, 15, 5, 235, 17, 15, 5, 235, 18, 249,
- 133, 235, 17, 15, 5, 235, 10, 15, 5, 235, 7, 15, 5, 235, 5, 15, 5, 235,
- 4, 15, 5, 235, 2, 15, 5, 235, 3, 115, 235, 2, 15, 5, 234, 248, 15, 5,
- 234, 249, 30, 236, 43, 242, 101, 15, 5, 234, 244, 15, 5, 234, 245, 30,
- 252, 184, 15, 5, 234, 245, 249, 133, 234, 244, 15, 5, 234, 242, 15, 5,
- 234, 241, 15, 5, 234, 213, 15, 5, 234, 214, 233, 124, 30, 104, 115, 233,
- 124, 30, 69, 15, 5, 234, 214, 115, 234, 214, 233, 124, 30, 104, 115, 233,
- 124, 30, 69, 15, 5, 234, 163, 15, 5, 234, 98, 15, 5, 234, 99, 30, 252,
- 184, 15, 5, 234, 99, 30, 69, 15, 5, 234, 99, 30, 214, 219, 15, 5, 234,
- 95, 15, 5, 234, 87, 15, 5, 234, 74, 15, 5, 234, 73, 15, 5, 234, 71, 15,
- 5, 234, 72, 115, 234, 71, 15, 5, 233, 223, 15, 5, 233, 224, 115, 241,
- 188, 30, 253, 238, 233, 224, 115, 241, 188, 30, 253, 237, 15, 5, 233,
- 221, 15, 5, 233, 219, 15, 5, 233, 220, 214, 12, 17, 15, 5, 233, 218, 15,
- 5, 233, 215, 15, 5, 233, 216, 242, 101, 15, 5, 233, 214, 15, 5, 233, 202,
- 15, 5, 233, 203, 226, 168, 233, 202, 15, 5, 233, 197, 15, 5, 233, 178,
- 15, 5, 233, 141, 15, 5, 233, 123, 15, 5, 233, 124, 30, 61, 15, 5, 233,
- 124, 30, 116, 96, 248, 230, 96, 162, 15, 5, 233, 124, 30, 116, 96, 243,
- 103, 15, 5, 233, 124, 30, 116, 96, 233, 110, 15, 5, 233, 124, 30, 254,
- 187, 15, 5, 233, 124, 30, 254, 131, 15, 5, 233, 124, 30, 253, 240, 210,
- 40, 216, 240, 15, 5, 233, 124, 30, 252, 184, 15, 5, 233, 124, 30, 252,
- 14, 15, 5, 233, 124, 30, 248, 174, 15, 5, 233, 124, 30, 245, 158, 15, 5,
- 233, 124, 30, 243, 142, 15, 5, 233, 124, 30, 243, 103, 15, 5, 233, 124,
- 30, 242, 110, 15, 5, 233, 124, 30, 242, 111, 96, 242, 110, 15, 5, 233,
- 124, 30, 162, 15, 5, 233, 124, 30, 242, 37, 15, 5, 233, 124, 30, 241,
- 188, 30, 227, 198, 15, 5, 233, 124, 30, 236, 43, 242, 101, 15, 5, 233,
- 124, 30, 236, 23, 15, 5, 233, 124, 30, 236, 24, 96, 162, 15, 5, 233, 124,
- 30, 236, 24, 96, 232, 103, 15, 5, 233, 124, 30, 234, 98, 15, 5, 233, 124,
- 30, 234, 87, 15, 5, 233, 124, 30, 233, 221, 15, 5, 233, 124, 30, 233,
- 215, 15, 5, 233, 124, 30, 233, 216, 96, 241, 188, 96, 61, 15, 5, 233,
- 124, 30, 233, 123, 15, 5, 233, 124, 30, 232, 203, 15, 5, 233, 124, 30,
- 232, 103, 15, 5, 233, 124, 30, 232, 91, 15, 5, 233, 124, 30, 231, 96, 15,
- 5, 233, 124, 30, 231, 97, 96, 245, 158, 15, 5, 233, 124, 30, 230, 66, 15,
- 5, 233, 124, 30, 229, 112, 15, 5, 233, 124, 30, 220, 66, 96, 218, 44, 15,
- 5, 233, 124, 30, 220, 12, 96, 242, 198, 96, 245, 95, 15, 5, 233, 124, 30,
- 220, 12, 96, 242, 198, 216, 240, 15, 5, 233, 124, 30, 219, 225, 15, 5,
- 233, 124, 30, 219, 226, 96, 219, 225, 15, 5, 233, 124, 30, 218, 44, 15,
- 5, 233, 124, 30, 217, 85, 15, 5, 233, 124, 30, 217, 73, 15, 5, 233, 124,
- 30, 217, 24, 96, 116, 96, 218, 85, 96, 198, 15, 5, 233, 124, 30, 69, 15,
- 5, 233, 124, 30, 104, 96, 61, 15, 5, 233, 124, 30, 104, 96, 104, 96, 69,
- 15, 5, 233, 124, 30, 214, 231, 96, 253, 239, 15, 5, 233, 124, 30, 214,
- 219, 15, 5, 233, 124, 30, 214, 126, 15, 5, 233, 124, 218, 235, 15, 5,
- 233, 121, 15, 5, 233, 122, 30, 220, 65, 15, 5, 233, 122, 30, 220, 66, 96,
- 218, 44, 15, 5, 233, 122, 242, 101, 15, 5, 233, 122, 242, 102, 115, 233,
- 122, 242, 102, 220, 65, 15, 5, 233, 117, 15, 5, 233, 110, 15, 5, 233,
- 111, 30, 233, 110, 15, 5, 233, 108, 15, 5, 233, 109, 30, 233, 202, 15, 5,
- 233, 109, 30, 233, 203, 96, 222, 142, 15, 5, 232, 247, 15, 5, 232, 232,
- 15, 5, 232, 222, 15, 5, 232, 203, 15, 5, 232, 103, 15, 5, 232, 104, 30,
- 252, 184, 15, 5, 232, 101, 15, 5, 232, 102, 30, 254, 187, 15, 5, 232,
- 102, 30, 252, 184, 15, 5, 232, 102, 30, 245, 80, 15, 5, 232, 102, 30,
- 245, 81, 216, 240, 15, 5, 232, 102, 30, 243, 112, 216, 240, 15, 5, 232,
- 102, 30, 241, 188, 30, 252, 184, 15, 5, 232, 102, 30, 236, 23, 15, 5,
- 232, 102, 30, 235, 7, 15, 5, 232, 102, 30, 235, 5, 15, 5, 232, 102, 30,
- 235, 6, 96, 253, 239, 15, 5, 232, 102, 30, 234, 98, 15, 5, 232, 102, 30,
- 233, 142, 96, 253, 239, 15, 5, 232, 102, 30, 233, 123, 15, 5, 232, 102,
- 30, 231, 97, 96, 245, 158, 15, 5, 232, 102, 30, 229, 112, 15, 5, 232,
- 102, 30, 227, 242, 15, 5, 232, 102, 30, 219, 194, 96, 253, 239, 15, 5,
- 232, 102, 30, 219, 176, 96, 251, 133, 15, 5, 232, 102, 30, 215, 114, 15,
- 5, 232, 102, 216, 240, 15, 5, 232, 102, 249, 133, 232, 101, 15, 5, 232,
- 102, 226, 168, 232, 101, 15, 5, 232, 102, 218, 235, 15, 5, 232, 102, 220,
- 47, 15, 5, 232, 100, 15, 5, 232, 96, 15, 5, 232, 97, 115, 232, 96, 15, 5,
- 232, 97, 226, 168, 232, 96, 15, 5, 232, 97, 220, 47, 15, 5, 232, 94, 15,
- 5, 232, 91, 15, 5, 232, 89, 15, 5, 232, 90, 115, 232, 89, 15, 5, 232, 90,
- 115, 232, 90, 243, 104, 115, 243, 103, 15, 5, 186, 15, 5, 231, 244, 30,
- 217, 73, 15, 5, 231, 244, 242, 101, 15, 5, 231, 243, 15, 5, 231, 215, 15,
- 5, 231, 171, 15, 5, 231, 152, 15, 5, 231, 151, 15, 5, 231, 96, 15, 5,
- 231, 52, 15, 5, 230, 235, 15, 5, 230, 193, 15, 5, 230, 107, 15, 5, 230,
- 108, 115, 230, 107, 15, 5, 230, 98, 15, 5, 230, 99, 242, 101, 15, 5, 230,
- 83, 15, 5, 230, 69, 15, 5, 230, 66, 15, 5, 230, 67, 30, 61, 15, 5, 230,
- 67, 30, 233, 202, 15, 5, 230, 67, 30, 210, 116, 15, 5, 230, 67, 115, 230,
- 66, 15, 5, 230, 67, 115, 230, 67, 30, 116, 96, 198, 15, 5, 230, 67, 249,
- 133, 230, 66, 15, 5, 230, 64, 15, 5, 230, 65, 30, 61, 15, 5, 230, 65, 30,
- 116, 96, 248, 11, 15, 5, 230, 65, 30, 248, 11, 15, 5, 230, 65, 242, 101,
- 15, 5, 198, 15, 5, 229, 232, 15, 5, 229, 221, 15, 5, 229, 222, 235, 199,
- 15, 5, 229, 222, 30, 219, 228, 216, 240, 15, 5, 229, 222, 226, 168, 229,
- 221, 15, 5, 229, 220, 15, 5, 229, 213, 227, 184, 15, 5, 229, 212, 15, 5,
- 229, 211, 15, 5, 229, 112, 15, 5, 229, 113, 30, 61, 15, 5, 229, 113, 30,
- 214, 219, 15, 5, 229, 113, 220, 47, 15, 5, 228, 238, 15, 5, 228, 239, 30,
- 76, 15, 5, 228, 237, 15, 5, 228, 208, 15, 5, 228, 209, 30, 243, 112, 216,
- 240, 15, 5, 228, 209, 30, 243, 104, 96, 243, 112, 216, 240, 15, 5, 228,
- 206, 15, 5, 228, 207, 30, 254, 131, 15, 5, 228, 207, 30, 253, 239, 15, 5,
- 228, 207, 30, 253, 240, 96, 253, 239, 15, 5, 228, 207, 30, 242, 110, 15,
- 5, 228, 207, 30, 231, 97, 96, 243, 112, 216, 240, 15, 5, 228, 207, 30,
- 229, 112, 15, 5, 228, 207, 30, 227, 198, 15, 5, 228, 207, 30, 220, 65,
- 15, 5, 228, 207, 30, 220, 66, 96, 116, 254, 131, 15, 5, 228, 207, 30,
- 220, 66, 96, 253, 239, 15, 5, 228, 207, 30, 220, 66, 96, 253, 240, 96,
- 253, 239, 15, 5, 228, 207, 30, 214, 231, 96, 253, 239, 15, 5, 228, 207,
- 30, 214, 126, 15, 5, 228, 195, 15, 5, 227, 242, 15, 5, 227, 214, 15, 5,
- 227, 198, 15, 5, 227, 199, 233, 122, 30, 243, 103, 15, 5, 227, 199, 233,
- 122, 30, 231, 152, 15, 5, 227, 199, 233, 122, 30, 222, 10, 15, 5, 227,
- 199, 233, 122, 30, 222, 11, 115, 227, 199, 233, 122, 30, 222, 10, 15, 5,
- 227, 199, 233, 122, 30, 214, 126, 15, 5, 227, 199, 216, 240, 15, 5, 227,
- 199, 115, 227, 198, 15, 5, 227, 199, 249, 133, 227, 198, 15, 5, 227, 199,
- 249, 133, 227, 199, 233, 122, 115, 233, 121, 15, 5, 227, 193, 15, 5, 227,
- 194, 255, 33, 30, 253, 234, 15, 5, 227, 194, 255, 33, 30, 252, 14, 15, 5,
- 227, 194, 255, 33, 30, 246, 82, 15, 5, 227, 194, 255, 33, 30, 242, 110,
- 15, 5, 227, 194, 255, 33, 30, 236, 43, 242, 101, 15, 5, 227, 194, 255,
- 33, 30, 235, 5, 15, 5, 227, 194, 255, 33, 30, 233, 141, 15, 5, 227, 194,
- 255, 33, 30, 229, 112, 15, 5, 227, 194, 255, 33, 30, 219, 173, 15, 5,
- 227, 194, 255, 33, 30, 214, 230, 15, 5, 227, 194, 234, 72, 30, 252, 14,
- 15, 5, 227, 194, 234, 72, 30, 252, 15, 69, 15, 5, 191, 15, 5, 226, 84,
- 15, 5, 226, 51, 15, 5, 226, 25, 15, 5, 225, 164, 15, 5, 225, 111, 15, 5,
- 225, 112, 30, 61, 15, 5, 225, 112, 30, 255, 34, 15, 5, 225, 112, 30, 252,
- 14, 15, 5, 225, 112, 30, 251, 133, 15, 5, 225, 112, 30, 76, 15, 5, 225,
- 112, 30, 74, 15, 5, 225, 112, 30, 240, 122, 15, 5, 225, 112, 30, 69, 15,
- 5, 225, 112, 30, 214, 230, 15, 5, 225, 112, 249, 133, 225, 111, 15, 5,
- 225, 56, 15, 5, 225, 57, 30, 234, 244, 15, 5, 225, 57, 30, 214, 219, 15,
- 5, 225, 57, 30, 210, 116, 15, 5, 225, 57, 226, 168, 225, 56, 15, 5, 205,
- 15, 5, 223, 185, 15, 5, 223, 38, 15, 5, 222, 142, 15, 5, 206, 15, 5, 222,
- 24, 227, 184, 15, 5, 222, 23, 15, 5, 222, 24, 30, 61, 15, 5, 222, 24, 30,
- 246, 86, 15, 5, 222, 24, 30, 246, 84, 15, 5, 222, 24, 30, 162, 15, 5,
- 222, 24, 30, 234, 248, 15, 5, 222, 24, 30, 233, 202, 15, 5, 222, 24, 30,
- 232, 89, 15, 5, 222, 24, 30, 230, 235, 15, 5, 222, 24, 30, 227, 198, 15,
- 5, 222, 24, 30, 222, 10, 15, 5, 222, 24, 30, 220, 32, 15, 5, 222, 24, 30,
- 217, 94, 15, 5, 222, 24, 30, 214, 230, 15, 5, 222, 24, 30, 214, 225, 15,
- 5, 222, 24, 30, 214, 197, 15, 5, 222, 24, 30, 214, 150, 15, 5, 222, 24,
- 30, 214, 126, 15, 5, 222, 24, 115, 222, 23, 15, 5, 222, 24, 242, 101, 15,
- 5, 222, 10, 15, 5, 222, 11, 233, 124, 30, 253, 237, 15, 5, 221, 241, 15,
- 5, 221, 233, 15, 5, 220, 104, 15, 5, 220, 102, 15, 5, 220, 103, 30, 61,
- 15, 5, 220, 103, 30, 252, 184, 15, 5, 220, 103, 30, 242, 197, 15, 5, 220,
- 103, 30, 229, 112, 15, 5, 220, 103, 30, 219, 225, 15, 5, 220, 103, 30,
- 215, 99, 15, 5, 220, 103, 30, 69, 15, 5, 220, 103, 30, 104, 96, 61, 15,
- 5, 220, 101, 15, 5, 220, 99, 15, 5, 220, 80, 15, 5, 220, 65, 15, 5, 220,
- 66, 240, 229, 15, 5, 220, 66, 115, 220, 66, 243, 134, 115, 243, 134, 243,
- 104, 115, 243, 103, 15, 5, 220, 66, 115, 220, 66, 217, 95, 115, 217, 95,
- 243, 104, 115, 243, 103, 15, 5, 220, 58, 15, 5, 220, 53, 15, 5, 220, 50,
- 15, 5, 220, 49, 15, 5, 220, 46, 15, 5, 220, 32, 15, 5, 220, 33, 30, 61,
- 15, 5, 220, 33, 30, 236, 23, 15, 5, 220, 26, 15, 5, 220, 27, 30, 61, 15,
- 5, 220, 27, 30, 252, 169, 15, 5, 220, 27, 30, 251, 117, 15, 5, 220, 27,
- 30, 247, 214, 15, 5, 220, 27, 30, 243, 103, 15, 5, 220, 27, 30, 236, 42,
- 15, 5, 220, 27, 30, 236, 43, 242, 101, 15, 5, 220, 27, 30, 233, 197, 15,
- 5, 220, 27, 30, 232, 91, 15, 5, 220, 27, 30, 230, 98, 15, 5, 220, 27, 30,
- 222, 10, 15, 5, 220, 20, 15, 5, 220, 15, 15, 5, 220, 16, 216, 240, 15, 5,
- 220, 16, 115, 220, 16, 251, 107, 115, 251, 106, 15, 5, 220, 11, 15, 5,
- 219, 227, 15, 5, 219, 228, 115, 235, 200, 219, 227, 15, 5, 219, 225, 15,
- 5, 219, 224, 15, 5, 219, 193, 15, 5, 219, 194, 242, 101, 15, 5, 219, 184,
- 15, 5, 219, 182, 15, 5, 219, 183, 115, 219, 183, 219, 225, 15, 5, 219,
- 175, 15, 5, 219, 173, 15, 5, 218, 84, 15, 5, 218, 85, 115, 218, 84, 15,
- 5, 218, 55, 15, 5, 218, 54, 15, 5, 218, 52, 15, 5, 218, 44, 15, 5, 218,
- 43, 15, 5, 218, 18, 15, 5, 218, 17, 15, 5, 217, 106, 15, 5, 217, 107,
- 253, 224, 15, 5, 217, 107, 30, 241, 187, 15, 5, 217, 107, 30, 230, 235,
- 15, 5, 217, 107, 242, 101, 15, 5, 217, 94, 15, 5, 217, 95, 115, 217, 95,
- 228, 239, 115, 228, 239, 247, 196, 115, 247, 195, 15, 5, 217, 95, 218,
- 235, 15, 5, 217, 85, 15, 5, 129, 30, 252, 14, 15, 5, 129, 30, 242, 110,
- 15, 5, 129, 30, 220, 65, 15, 5, 129, 30, 219, 227, 15, 5, 129, 30, 215,
- 114, 15, 5, 129, 30, 214, 219, 15, 5, 217, 73, 15, 5, 217, 51, 15, 5,
- 217, 23, 15, 5, 217, 24, 242, 101, 15, 5, 216, 118, 15, 5, 216, 119, 216,
- 240, 15, 5, 216, 91, 15, 5, 216, 73, 15, 5, 216, 74, 30, 217, 73, 15, 5,
- 216, 74, 115, 216, 73, 15, 5, 216, 74, 115, 216, 74, 243, 134, 115, 243,
- 134, 243, 104, 115, 243, 103, 15, 5, 215, 119, 15, 5, 215, 114, 15, 5,
- 215, 112, 15, 5, 215, 109, 15, 5, 215, 99, 15, 5, 215, 100, 115, 215,
- 100, 210, 117, 115, 210, 116, 15, 5, 69, 15, 5, 104, 242, 110, 15, 5,
- 104, 104, 69, 15, 5, 104, 115, 104, 226, 94, 115, 226, 94, 243, 104, 115,
- 243, 103, 15, 5, 104, 115, 104, 218, 19, 115, 218, 18, 15, 5, 104, 115,
- 104, 104, 223, 52, 115, 104, 223, 51, 15, 5, 214, 230, 15, 5, 214, 225,
- 15, 5, 214, 219, 15, 5, 214, 220, 233, 197, 15, 5, 214, 220, 30, 252,
- 184, 15, 5, 214, 220, 30, 230, 235, 15, 5, 214, 220, 30, 104, 96, 104,
- 96, 69, 15, 5, 214, 220, 30, 104, 96, 104, 96, 104, 242, 101, 15, 5, 214,
- 220, 242, 101, 15, 5, 214, 220, 220, 47, 15, 5, 214, 220, 220, 48, 30,
- 252, 184, 15, 5, 214, 215, 15, 5, 214, 197, 15, 5, 214, 198, 30, 233,
- 123, 15, 5, 214, 198, 30, 231, 97, 96, 248, 229, 15, 5, 214, 198, 30,
- 220, 102, 15, 5, 214, 198, 30, 69, 15, 5, 214, 196, 15, 5, 214, 192, 15,
- 5, 214, 193, 30, 234, 213, 15, 5, 214, 193, 30, 191, 15, 5, 214, 190, 15,
- 5, 214, 191, 242, 101, 15, 5, 214, 150, 15, 5, 214, 151, 249, 133, 214,
- 150, 15, 5, 214, 151, 220, 47, 15, 5, 214, 148, 15, 5, 214, 149, 30, 116,
- 96, 162, 15, 5, 214, 149, 30, 116, 96, 198, 15, 5, 214, 149, 30, 254,
- 187, 15, 5, 214, 149, 30, 162, 15, 5, 214, 149, 30, 227, 198, 15, 5, 214,
- 149, 30, 214, 230, 15, 5, 214, 149, 30, 214, 231, 96, 253, 239, 15, 5,
- 214, 149, 30, 214, 231, 96, 252, 14, 15, 5, 214, 147, 15, 5, 214, 144,
- 15, 5, 214, 143, 15, 5, 214, 139, 15, 5, 214, 140, 30, 61, 15, 5, 214,
- 140, 30, 253, 234, 15, 5, 214, 140, 30, 130, 15, 5, 214, 140, 30, 246,
- 76, 15, 5, 214, 140, 30, 243, 142, 15, 5, 214, 140, 30, 243, 125, 15, 5,
- 214, 140, 30, 243, 112, 216, 240, 15, 5, 214, 140, 30, 243, 103, 15, 5,
- 214, 140, 30, 242, 120, 15, 5, 214, 140, 30, 162, 15, 5, 214, 140, 30,
- 236, 42, 15, 5, 214, 140, 30, 236, 23, 15, 5, 214, 140, 30, 235, 172, 15,
- 5, 214, 140, 30, 234, 98, 15, 5, 214, 140, 30, 232, 89, 15, 5, 214, 140,
- 30, 230, 193, 15, 5, 214, 140, 30, 191, 15, 5, 214, 140, 30, 220, 65, 15,
- 5, 214, 140, 30, 219, 182, 15, 5, 214, 140, 30, 215, 119, 15, 5, 214,
- 140, 30, 104, 96, 242, 110, 15, 5, 214, 140, 30, 214, 219, 15, 5, 214,
- 140, 30, 214, 137, 15, 5, 214, 137, 15, 5, 214, 138, 30, 69, 15, 5, 214,
- 126, 15, 5, 214, 127, 30, 61, 15, 5, 214, 127, 30, 233, 223, 15, 5, 214,
- 127, 30, 233, 202, 15, 5, 214, 127, 30, 217, 73, 15, 5, 214, 122, 15, 5,
- 214, 125, 15, 5, 214, 123, 15, 5, 214, 119, 15, 5, 214, 108, 15, 5, 214,
- 109, 30, 234, 213, 15, 5, 214, 107, 15, 5, 210, 116, 15, 5, 210, 117,
- 216, 240, 15, 5, 210, 117, 92, 30, 233, 202, 15, 5, 210, 113, 15, 5, 210,
- 106, 15, 5, 210, 93, 15, 5, 210, 44, 15, 5, 210, 45, 115, 210, 44, 15, 5,
- 210, 43, 15, 5, 210, 41, 15, 5, 210, 42, 235, 9, 216, 240, 15, 5, 210,
- 36, 15, 5, 210, 28, 15, 5, 210, 13, 15, 5, 210, 11, 15, 5, 210, 12, 30,
- 61, 15, 5, 210, 10, 15, 5, 210, 9, 15, 132, 5, 113, 253, 239, 15, 132, 5,
- 134, 253, 239, 15, 132, 5, 244, 19, 253, 239, 15, 132, 5, 244, 89, 253,
- 239, 15, 132, 5, 219, 127, 253, 239, 15, 132, 5, 220, 124, 253, 239, 15,
- 132, 5, 245, 201, 253, 239, 15, 132, 5, 228, 205, 253, 239, 15, 132, 5,
- 134, 247, 195, 15, 132, 5, 244, 19, 247, 195, 15, 132, 5, 244, 89, 247,
- 195, 15, 132, 5, 219, 127, 247, 195, 15, 132, 5, 220, 124, 247, 195, 15,
- 132, 5, 245, 201, 247, 195, 15, 132, 5, 228, 205, 247, 195, 15, 132, 5,
- 244, 19, 69, 15, 132, 5, 244, 89, 69, 15, 132, 5, 219, 127, 69, 15, 132,
- 5, 220, 124, 69, 15, 132, 5, 245, 201, 69, 15, 132, 5, 228, 205, 69, 15,
- 132, 5, 123, 243, 45, 15, 132, 5, 113, 243, 45, 15, 132, 5, 134, 243, 45,
- 15, 132, 5, 244, 19, 243, 45, 15, 132, 5, 244, 89, 243, 45, 15, 132, 5,
- 219, 127, 243, 45, 15, 132, 5, 220, 124, 243, 45, 15, 132, 5, 245, 201,
- 243, 45, 15, 132, 5, 228, 205, 243, 45, 15, 132, 5, 123, 243, 42, 15,
- 132, 5, 113, 243, 42, 15, 132, 5, 134, 243, 42, 15, 132, 5, 244, 19, 243,
- 42, 15, 132, 5, 244, 89, 243, 42, 15, 132, 5, 113, 220, 80, 15, 132, 5,
- 134, 220, 80, 15, 132, 5, 134, 220, 81, 214, 12, 17, 15, 132, 5, 244, 19,
- 220, 80, 15, 132, 5, 244, 89, 220, 80, 15, 132, 5, 219, 127, 220, 80, 15,
- 132, 5, 220, 124, 220, 80, 15, 132, 5, 245, 201, 220, 80, 15, 132, 5,
- 228, 205, 220, 80, 15, 132, 5, 123, 220, 75, 15, 132, 5, 113, 220, 75,
- 15, 132, 5, 134, 220, 75, 15, 132, 5, 134, 220, 76, 214, 12, 17, 15, 132,
- 5, 244, 19, 220, 75, 15, 132, 5, 244, 89, 220, 75, 15, 132, 5, 220, 81,
- 30, 243, 126, 96, 247, 195, 15, 132, 5, 220, 81, 30, 243, 126, 96, 230,
- 193, 15, 132, 5, 123, 251, 103, 15, 132, 5, 113, 251, 103, 15, 132, 5,
- 134, 251, 103, 15, 132, 5, 134, 251, 104, 214, 12, 17, 15, 132, 5, 244,
- 19, 251, 103, 15, 132, 5, 244, 89, 251, 103, 15, 132, 5, 134, 214, 12,
- 244, 28, 245, 82, 15, 132, 5, 134, 214, 12, 244, 28, 245, 79, 15, 132, 5,
- 244, 19, 214, 12, 244, 28, 232, 223, 15, 132, 5, 244, 19, 214, 12, 244,
- 28, 232, 221, 15, 132, 5, 244, 19, 214, 12, 244, 28, 232, 224, 61, 15,
- 132, 5, 244, 19, 214, 12, 244, 28, 232, 224, 253, 166, 15, 132, 5, 219,
- 127, 214, 12, 244, 28, 253, 236, 15, 132, 5, 220, 124, 214, 12, 244, 28,
- 236, 15, 15, 132, 5, 220, 124, 214, 12, 244, 28, 236, 17, 61, 15, 132, 5,
- 220, 124, 214, 12, 244, 28, 236, 17, 253, 166, 15, 132, 5, 245, 201, 214,
- 12, 244, 28, 214, 121, 15, 132, 5, 245, 201, 214, 12, 244, 28, 214, 120,
- 15, 132, 5, 228, 205, 214, 12, 244, 28, 236, 31, 15, 132, 5, 228, 205,
- 214, 12, 244, 28, 236, 30, 15, 132, 5, 228, 205, 214, 12, 244, 28, 236,
- 29, 15, 132, 5, 228, 205, 214, 12, 244, 28, 236, 32, 61, 15, 132, 5, 113,
- 253, 240, 216, 240, 15, 132, 5, 134, 253, 240, 216, 240, 15, 132, 5, 244,
- 19, 253, 240, 216, 240, 15, 132, 5, 244, 89, 253, 240, 216, 240, 15, 132,
- 5, 219, 127, 253, 240, 216, 240, 15, 132, 5, 123, 252, 158, 15, 132, 5,
- 113, 252, 158, 15, 132, 5, 134, 252, 158, 15, 132, 5, 244, 19, 252, 158,
- 15, 132, 5, 244, 19, 252, 159, 214, 12, 17, 15, 132, 5, 244, 89, 252,
- 158, 15, 132, 5, 244, 89, 252, 159, 214, 12, 17, 15, 132, 5, 228, 215,
- 15, 132, 5, 228, 216, 15, 132, 5, 123, 245, 78, 15, 132, 5, 113, 245, 78,
- 15, 132, 5, 123, 216, 170, 247, 195, 15, 132, 5, 113, 216, 168, 247, 195,
- 15, 132, 5, 244, 89, 219, 116, 247, 195, 15, 132, 5, 123, 216, 170, 214,
- 12, 244, 28, 61, 15, 132, 5, 113, 216, 168, 214, 12, 244, 28, 61, 15,
- 132, 5, 123, 245, 197, 253, 239, 15, 132, 5, 123, 224, 25, 253, 239, 15,
- 132, 5, 55, 253, 227, 123, 219, 117, 15, 132, 5, 55, 253, 227, 123, 224,
- 24, 15, 224, 144, 5, 55, 253, 227, 211, 209, 247, 180, 15, 224, 144, 5,
- 67, 249, 234, 15, 224, 144, 5, 248, 7, 249, 234, 15, 224, 144, 5, 248, 7,
- 215, 222, 12, 13, 255, 164, 12, 13, 255, 163, 12, 13, 255, 162, 12, 13,
- 255, 161, 12, 13, 255, 160, 12, 13, 255, 159, 12, 13, 255, 158, 12, 13,
- 255, 157, 12, 13, 255, 156, 12, 13, 255, 155, 12, 13, 255, 154, 12, 13,
- 255, 153, 12, 13, 255, 152, 12, 13, 255, 151, 12, 13, 255, 150, 12, 13,
- 255, 149, 12, 13, 255, 148, 12, 13, 255, 147, 12, 13, 255, 146, 12, 13,
- 255, 145, 12, 13, 255, 144, 12, 13, 255, 143, 12, 13, 255, 142, 12, 13,
- 255, 141, 12, 13, 255, 140, 12, 13, 255, 139, 12, 13, 255, 138, 12, 13,
- 255, 137, 12, 13, 255, 136, 12, 13, 255, 135, 12, 13, 255, 134, 12, 13,
- 255, 133, 12, 13, 255, 132, 12, 13, 255, 131, 12, 13, 255, 130, 12, 13,
- 255, 129, 12, 13, 255, 128, 12, 13, 255, 127, 12, 13, 255, 126, 12, 13,
- 255, 125, 12, 13, 255, 124, 12, 13, 255, 123, 12, 13, 255, 122, 12, 13,
- 255, 121, 12, 13, 255, 120, 12, 13, 255, 119, 12, 13, 255, 118, 12, 13,
- 255, 117, 12, 13, 255, 116, 12, 13, 255, 115, 12, 13, 255, 114, 12, 13,
- 255, 113, 12, 13, 255, 112, 12, 13, 255, 111, 12, 13, 255, 110, 12, 13,
- 255, 109, 12, 13, 255, 108, 12, 13, 255, 107, 12, 13, 255, 106, 12, 13,
- 255, 105, 12, 13, 255, 104, 12, 13, 255, 103, 12, 13, 255, 102, 12, 13,
- 255, 101, 12, 13, 255, 100, 12, 13, 255, 99, 12, 13, 255, 98, 12, 13,
- 255, 97, 12, 13, 255, 96, 12, 13, 255, 95, 12, 13, 255, 94, 12, 13, 255,
- 93, 12, 13, 255, 92, 12, 13, 255, 91, 12, 13, 255, 90, 12, 13, 255, 89,
- 12, 13, 255, 88, 12, 13, 255, 87, 12, 13, 255, 86, 12, 13, 255, 85, 12,
- 13, 253, 164, 12, 13, 253, 162, 12, 13, 253, 160, 12, 13, 253, 158, 12,
- 13, 253, 156, 12, 13, 253, 155, 12, 13, 253, 153, 12, 13, 253, 151, 12,
- 13, 253, 149, 12, 13, 253, 147, 12, 13, 251, 70, 12, 13, 251, 69, 12, 13,
- 251, 68, 12, 13, 251, 67, 12, 13, 251, 66, 12, 13, 251, 65, 12, 13, 251,
- 64, 12, 13, 251, 63, 12, 13, 251, 62, 12, 13, 251, 61, 12, 13, 251, 60,
- 12, 13, 251, 59, 12, 13, 251, 58, 12, 13, 251, 57, 12, 13, 251, 56, 12,
- 13, 251, 55, 12, 13, 251, 54, 12, 13, 251, 53, 12, 13, 251, 52, 12, 13,
- 251, 51, 12, 13, 251, 50, 12, 13, 251, 49, 12, 13, 251, 48, 12, 13, 251,
- 47, 12, 13, 251, 46, 12, 13, 251, 45, 12, 13, 251, 44, 12, 13, 251, 43,
- 12, 13, 249, 67, 12, 13, 249, 66, 12, 13, 249, 65, 12, 13, 249, 64, 12,
- 13, 249, 63, 12, 13, 249, 62, 12, 13, 249, 61, 12, 13, 249, 60, 12, 13,
- 249, 59, 12, 13, 249, 58, 12, 13, 249, 57, 12, 13, 249, 56, 12, 13, 249,
- 55, 12, 13, 249, 54, 12, 13, 249, 53, 12, 13, 249, 52, 12, 13, 249, 51,
- 12, 13, 249, 50, 12, 13, 249, 49, 12, 13, 249, 48, 12, 13, 249, 47, 12,
- 13, 249, 46, 12, 13, 249, 45, 12, 13, 249, 44, 12, 13, 249, 43, 12, 13,
- 249, 42, 12, 13, 249, 41, 12, 13, 249, 40, 12, 13, 249, 39, 12, 13, 249,
- 38, 12, 13, 249, 37, 12, 13, 249, 36, 12, 13, 249, 35, 12, 13, 249, 34,
- 12, 13, 249, 33, 12, 13, 249, 32, 12, 13, 249, 31, 12, 13, 249, 30, 12,
- 13, 249, 29, 12, 13, 249, 28, 12, 13, 249, 27, 12, 13, 249, 26, 12, 13,
- 249, 25, 12, 13, 249, 24, 12, 13, 249, 23, 12, 13, 249, 22, 12, 13, 249,
- 21, 12, 13, 249, 20, 12, 13, 249, 19, 12, 13, 249, 18, 12, 13, 249, 17,
- 12, 13, 249, 16, 12, 13, 249, 15, 12, 13, 249, 14, 12, 13, 249, 13, 12,
- 13, 249, 12, 12, 13, 249, 11, 12, 13, 249, 10, 12, 13, 249, 9, 12, 13,
- 249, 8, 12, 13, 249, 7, 12, 13, 249, 6, 12, 13, 249, 5, 12, 13, 249, 4,
- 12, 13, 249, 3, 12, 13, 249, 2, 12, 13, 249, 1, 12, 13, 249, 0, 12, 13,
- 248, 255, 12, 13, 248, 254, 12, 13, 248, 253, 12, 13, 248, 252, 12, 13,
- 248, 251, 12, 13, 248, 250, 12, 13, 248, 249, 12, 13, 248, 248, 12, 13,
- 248, 247, 12, 13, 248, 246, 12, 13, 248, 245, 12, 13, 248, 244, 12, 13,
- 248, 243, 12, 13, 248, 242, 12, 13, 248, 241, 12, 13, 248, 240, 12, 13,
- 248, 239, 12, 13, 248, 238, 12, 13, 248, 237, 12, 13, 248, 236, 12, 13,
- 248, 235, 12, 13, 248, 234, 12, 13, 248, 233, 12, 13, 248, 232, 12, 13,
- 246, 31, 12, 13, 246, 30, 12, 13, 246, 29, 12, 13, 246, 28, 12, 13, 246,
- 27, 12, 13, 246, 26, 12, 13, 246, 25, 12, 13, 246, 24, 12, 13, 246, 23,
- 12, 13, 246, 22, 12, 13, 246, 21, 12, 13, 246, 20, 12, 13, 246, 19, 12,
- 13, 246, 18, 12, 13, 246, 17, 12, 13, 246, 16, 12, 13, 246, 15, 12, 13,
- 246, 14, 12, 13, 246, 13, 12, 13, 246, 12, 12, 13, 246, 11, 12, 13, 246,
- 10, 12, 13, 246, 9, 12, 13, 246, 8, 12, 13, 246, 7, 12, 13, 246, 6, 12,
- 13, 246, 5, 12, 13, 246, 4, 12, 13, 246, 3, 12, 13, 246, 2, 12, 13, 246,
- 1, 12, 13, 246, 0, 12, 13, 245, 255, 12, 13, 245, 254, 12, 13, 245, 253,
- 12, 13, 245, 252, 12, 13, 245, 251, 12, 13, 245, 250, 12, 13, 245, 249,
- 12, 13, 245, 248, 12, 13, 245, 247, 12, 13, 245, 246, 12, 13, 245, 245,
- 12, 13, 245, 244, 12, 13, 245, 13, 12, 13, 245, 12, 12, 13, 245, 11, 12,
- 13, 245, 10, 12, 13, 245, 9, 12, 13, 245, 8, 12, 13, 245, 7, 12, 13, 245,
- 6, 12, 13, 245, 5, 12, 13, 245, 4, 12, 13, 245, 3, 12, 13, 245, 2, 12,
- 13, 245, 1, 12, 13, 245, 0, 12, 13, 244, 255, 12, 13, 244, 254, 12, 13,
- 244, 253, 12, 13, 244, 252, 12, 13, 244, 251, 12, 13, 244, 250, 12, 13,
- 244, 249, 12, 13, 244, 248, 12, 13, 244, 247, 12, 13, 244, 246, 12, 13,
- 244, 245, 12, 13, 244, 244, 12, 13, 244, 243, 12, 13, 244, 242, 12, 13,
- 244, 241, 12, 13, 244, 240, 12, 13, 244, 239, 12, 13, 244, 238, 12, 13,
- 244, 237, 12, 13, 244, 236, 12, 13, 244, 235, 12, 13, 244, 234, 12, 13,
- 244, 233, 12, 13, 244, 232, 12, 13, 244, 231, 12, 13, 244, 230, 12, 13,
- 244, 229, 12, 13, 244, 228, 12, 13, 244, 227, 12, 13, 244, 226, 12, 13,
- 244, 225, 12, 13, 244, 224, 12, 13, 244, 223, 12, 13, 244, 222, 12, 13,
- 244, 221, 12, 13, 244, 220, 12, 13, 244, 219, 12, 13, 244, 218, 12, 13,
- 244, 217, 12, 13, 244, 216, 12, 13, 244, 215, 12, 13, 244, 214, 12, 13,
- 244, 213, 12, 13, 244, 212, 12, 13, 244, 211, 12, 13, 244, 210, 12, 13,
- 244, 209, 12, 13, 244, 208, 12, 13, 244, 207, 12, 13, 244, 206, 12, 13,
- 244, 205, 12, 13, 243, 208, 12, 13, 243, 207, 12, 13, 243, 206, 12, 13,
- 243, 205, 12, 13, 243, 204, 12, 13, 243, 203, 12, 13, 243, 202, 12, 13,
- 243, 201, 12, 13, 243, 200, 12, 13, 243, 199, 12, 13, 243, 198, 12, 13,
- 243, 197, 12, 13, 243, 196, 12, 13, 243, 195, 12, 13, 243, 194, 12, 13,
- 243, 193, 12, 13, 243, 192, 12, 13, 243, 191, 12, 13, 243, 190, 12, 13,
- 243, 189, 12, 13, 243, 188, 12, 13, 243, 187, 12, 13, 243, 186, 12, 13,
- 243, 185, 12, 13, 243, 184, 12, 13, 243, 183, 12, 13, 243, 182, 12, 13,
- 243, 181, 12, 13, 243, 180, 12, 13, 243, 179, 12, 13, 243, 178, 12, 13,
- 243, 177, 12, 13, 243, 176, 12, 13, 243, 175, 12, 13, 243, 174, 12, 13,
- 243, 173, 12, 13, 243, 172, 12, 13, 243, 171, 12, 13, 243, 170, 12, 13,
- 243, 169, 12, 13, 243, 168, 12, 13, 243, 167, 12, 13, 243, 166, 12, 13,
- 243, 165, 12, 13, 243, 164, 12, 13, 243, 163, 12, 13, 243, 162, 12, 13,
- 243, 161, 12, 13, 243, 160, 12, 13, 243, 159, 12, 13, 243, 158, 12, 13,
- 243, 157, 12, 13, 243, 156, 12, 13, 243, 155, 12, 13, 243, 154, 12, 13,
- 243, 153, 12, 13, 243, 152, 12, 13, 243, 151, 12, 13, 243, 150, 12, 13,
- 243, 149, 12, 13, 243, 148, 12, 13, 243, 147, 12, 13, 243, 146, 12, 13,
- 243, 145, 12, 13, 242, 65, 12, 13, 242, 64, 12, 13, 242, 63, 12, 13, 242,
- 62, 12, 13, 242, 61, 12, 13, 242, 60, 12, 13, 242, 59, 12, 13, 242, 58,
- 12, 13, 242, 57, 12, 13, 240, 145, 12, 13, 240, 144, 12, 13, 240, 143,
- 12, 13, 240, 142, 12, 13, 240, 141, 12, 13, 240, 140, 12, 13, 240, 139,
- 12, 13, 240, 138, 12, 13, 240, 137, 12, 13, 240, 136, 12, 13, 240, 135,
- 12, 13, 240, 134, 12, 13, 240, 133, 12, 13, 240, 132, 12, 13, 240, 131,
- 12, 13, 240, 130, 12, 13, 240, 129, 12, 13, 240, 128, 12, 13, 240, 127,
- 12, 13, 235, 28, 12, 13, 235, 27, 12, 13, 235, 26, 12, 13, 235, 25, 12,
- 13, 235, 24, 12, 13, 235, 23, 12, 13, 235, 22, 12, 13, 235, 21, 12, 13,
- 233, 152, 12, 13, 233, 151, 12, 13, 233, 150, 12, 13, 233, 149, 12, 13,
- 233, 148, 12, 13, 233, 147, 12, 13, 233, 146, 12, 13, 233, 145, 12, 13,
- 233, 144, 12, 13, 233, 143, 12, 13, 232, 54, 12, 13, 232, 53, 12, 13,
- 232, 52, 12, 13, 232, 51, 12, 13, 232, 50, 12, 13, 232, 49, 12, 13, 232,
- 48, 12, 13, 232, 47, 12, 13, 232, 46, 12, 13, 232, 45, 12, 13, 232, 44,
- 12, 13, 232, 43, 12, 13, 232, 42, 12, 13, 232, 41, 12, 13, 232, 40, 12,
- 13, 232, 39, 12, 13, 232, 38, 12, 13, 232, 37, 12, 13, 232, 36, 12, 13,
- 232, 35, 12, 13, 232, 34, 12, 13, 232, 33, 12, 13, 232, 32, 12, 13, 232,
- 31, 12, 13, 232, 30, 12, 13, 232, 29, 12, 13, 232, 28, 12, 13, 232, 27,
- 12, 13, 232, 26, 12, 13, 232, 25, 12, 13, 232, 24, 12, 13, 232, 23, 12,
- 13, 232, 22, 12, 13, 232, 21, 12, 13, 232, 20, 12, 13, 232, 19, 12, 13,
- 232, 18, 12, 13, 232, 17, 12, 13, 232, 16, 12, 13, 232, 15, 12, 13, 232,
- 14, 12, 13, 232, 13, 12, 13, 232, 12, 12, 13, 232, 11, 12, 13, 232, 10,
- 12, 13, 232, 9, 12, 13, 232, 8, 12, 13, 232, 7, 12, 13, 232, 6, 12, 13,
- 232, 5, 12, 13, 232, 4, 12, 13, 232, 3, 12, 13, 232, 2, 12, 13, 232, 1,
- 12, 13, 232, 0, 12, 13, 231, 255, 12, 13, 231, 254, 12, 13, 231, 253, 12,
- 13, 231, 252, 12, 13, 231, 251, 12, 13, 231, 250, 12, 13, 231, 249, 12,
- 13, 231, 248, 12, 13, 231, 247, 12, 13, 231, 246, 12, 13, 231, 245, 12,
- 13, 230, 27, 12, 13, 230, 26, 12, 13, 230, 25, 12, 13, 230, 24, 12, 13,
- 230, 23, 12, 13, 230, 22, 12, 13, 230, 21, 12, 13, 230, 20, 12, 13, 230,
- 19, 12, 13, 230, 18, 12, 13, 230, 17, 12, 13, 230, 16, 12, 13, 230, 15,
- 12, 13, 230, 14, 12, 13, 230, 13, 12, 13, 230, 12, 12, 13, 230, 11, 12,
- 13, 230, 10, 12, 13, 230, 9, 12, 13, 230, 8, 12, 13, 230, 7, 12, 13, 230,
- 6, 12, 13, 230, 5, 12, 13, 230, 4, 12, 13, 230, 3, 12, 13, 230, 2, 12,
- 13, 230, 1, 12, 13, 230, 0, 12, 13, 229, 255, 12, 13, 229, 254, 12, 13,
- 229, 253, 12, 13, 229, 252, 12, 13, 229, 251, 12, 13, 229, 250, 12, 13,
- 229, 249, 12, 13, 229, 248, 12, 13, 229, 247, 12, 13, 229, 246, 12, 13,
- 229, 245, 12, 13, 229, 244, 12, 13, 229, 243, 12, 13, 229, 242, 12, 13,
- 229, 241, 12, 13, 229, 240, 12, 13, 229, 239, 12, 13, 229, 238, 12, 13,
- 229, 237, 12, 13, 229, 236, 12, 13, 229, 235, 12, 13, 228, 139, 12, 13,
- 228, 138, 12, 13, 228, 137, 12, 13, 228, 136, 12, 13, 228, 135, 12, 13,
- 228, 134, 12, 13, 228, 133, 12, 13, 228, 132, 12, 13, 228, 131, 12, 13,
- 228, 130, 12, 13, 228, 129, 12, 13, 228, 128, 12, 13, 228, 127, 12, 13,
- 228, 126, 12, 13, 228, 125, 12, 13, 228, 124, 12, 13, 228, 123, 12, 13,
- 228, 122, 12, 13, 228, 121, 12, 13, 228, 120, 12, 13, 228, 119, 12, 13,
- 228, 118, 12, 13, 227, 241, 12, 13, 227, 240, 12, 13, 227, 239, 12, 13,
- 227, 238, 12, 13, 227, 237, 12, 13, 227, 236, 12, 13, 227, 235, 12, 13,
- 227, 234, 12, 13, 227, 233, 12, 13, 227, 232, 12, 13, 227, 231, 12, 13,
- 227, 230, 12, 13, 227, 229, 12, 13, 227, 228, 12, 13, 227, 227, 12, 13,
- 227, 226, 12, 13, 227, 225, 12, 13, 227, 224, 12, 13, 227, 223, 12, 13,
- 227, 222, 12, 13, 227, 221, 12, 13, 227, 220, 12, 13, 227, 219, 12, 13,
- 227, 218, 12, 13, 227, 217, 12, 13, 227, 216, 12, 13, 227, 80, 12, 13,
- 227, 79, 12, 13, 227, 78, 12, 13, 227, 77, 12, 13, 227, 76, 12, 13, 227,
- 75, 12, 13, 227, 74, 12, 13, 227, 73, 12, 13, 227, 72, 12, 13, 227, 71,
- 12, 13, 227, 70, 12, 13, 227, 69, 12, 13, 227, 68, 12, 13, 227, 67, 12,
- 13, 227, 66, 12, 13, 227, 65, 12, 13, 227, 64, 12, 13, 227, 63, 12, 13,
- 227, 62, 12, 13, 227, 61, 12, 13, 227, 60, 12, 13, 227, 59, 12, 13, 227,
- 58, 12, 13, 227, 57, 12, 13, 227, 56, 12, 13, 227, 55, 12, 13, 227, 54,
- 12, 13, 227, 53, 12, 13, 227, 52, 12, 13, 227, 51, 12, 13, 227, 50, 12,
- 13, 227, 49, 12, 13, 227, 48, 12, 13, 227, 47, 12, 13, 227, 46, 12, 13,
- 227, 45, 12, 13, 227, 44, 12, 13, 227, 43, 12, 13, 227, 42, 12, 13, 227,
- 41, 12, 13, 227, 40, 12, 13, 227, 39, 12, 13, 227, 38, 12, 13, 227, 37,
- 12, 13, 227, 36, 12, 13, 227, 35, 12, 13, 227, 34, 12, 13, 227, 33, 12,
- 13, 227, 32, 12, 13, 227, 31, 12, 13, 227, 30, 12, 13, 227, 29, 12, 13,
- 227, 28, 12, 13, 227, 27, 12, 13, 227, 26, 12, 13, 227, 25, 12, 13, 227,
- 24, 12, 13, 227, 23, 12, 13, 227, 22, 12, 13, 227, 21, 12, 13, 227, 20,
- 12, 13, 227, 19, 12, 13, 227, 18, 12, 13, 227, 17, 12, 13, 227, 16, 12,
- 13, 227, 15, 12, 13, 227, 14, 12, 13, 227, 13, 12, 13, 227, 12, 12, 13,
- 227, 11, 12, 13, 227, 10, 12, 13, 227, 9, 12, 13, 227, 8, 12, 13, 227, 7,
- 12, 13, 227, 6, 12, 13, 226, 108, 12, 13, 226, 107, 12, 13, 226, 106, 12,
- 13, 226, 105, 12, 13, 226, 104, 12, 13, 226, 103, 12, 13, 226, 102, 12,
- 13, 226, 101, 12, 13, 226, 100, 12, 13, 226, 99, 12, 13, 226, 98, 12, 13,
- 226, 97, 12, 13, 226, 96, 12, 13, 224, 98, 12, 13, 224, 97, 12, 13, 224,
- 96, 12, 13, 224, 95, 12, 13, 224, 94, 12, 13, 224, 93, 12, 13, 224, 92,
- 12, 13, 223, 225, 12, 13, 223, 224, 12, 13, 223, 223, 12, 13, 223, 222,
- 12, 13, 223, 221, 12, 13, 223, 220, 12, 13, 223, 219, 12, 13, 223, 218,
- 12, 13, 223, 217, 12, 13, 223, 216, 12, 13, 223, 215, 12, 13, 223, 214,
- 12, 13, 223, 213, 12, 13, 223, 212, 12, 13, 223, 211, 12, 13, 223, 210,
- 12, 13, 223, 209, 12, 13, 223, 208, 12, 13, 223, 207, 12, 13, 223, 206,
- 12, 13, 223, 205, 12, 13, 223, 204, 12, 13, 223, 203, 12, 13, 223, 202,
- 12, 13, 223, 201, 12, 13, 223, 200, 12, 13, 223, 199, 12, 13, 223, 198,
- 12, 13, 223, 197, 12, 13, 223, 196, 12, 13, 223, 195, 12, 13, 223, 194,
- 12, 13, 223, 193, 12, 13, 223, 192, 12, 13, 222, 90, 12, 13, 222, 89, 12,
- 13, 222, 88, 12, 13, 222, 87, 12, 13, 222, 86, 12, 13, 222, 85, 12, 13,
- 222, 84, 12, 13, 222, 83, 12, 13, 222, 82, 12, 13, 222, 81, 12, 13, 222,
- 80, 12, 13, 222, 79, 12, 13, 222, 78, 12, 13, 222, 77, 12, 13, 222, 76,
- 12, 13, 222, 75, 12, 13, 222, 74, 12, 13, 222, 73, 12, 13, 222, 72, 12,
- 13, 222, 71, 12, 13, 222, 70, 12, 13, 222, 69, 12, 13, 222, 68, 12, 13,
- 222, 67, 12, 13, 222, 66, 12, 13, 222, 65, 12, 13, 222, 64, 12, 13, 222,
- 63, 12, 13, 222, 62, 12, 13, 222, 61, 12, 13, 222, 60, 12, 13, 222, 59,
- 12, 13, 222, 58, 12, 13, 222, 57, 12, 13, 222, 56, 12, 13, 222, 55, 12,
- 13, 222, 54, 12, 13, 222, 53, 12, 13, 222, 52, 12, 13, 222, 51, 12, 13,
- 222, 50, 12, 13, 222, 49, 12, 13, 222, 48, 12, 13, 222, 47, 12, 13, 222,
- 46, 12, 13, 222, 45, 12, 13, 222, 44, 12, 13, 222, 43, 12, 13, 222, 42,
- 12, 13, 222, 41, 12, 13, 222, 40, 12, 13, 222, 39, 12, 13, 222, 38, 12,
- 13, 222, 37, 12, 13, 217, 151, 12, 13, 217, 150, 12, 13, 217, 149, 12,
- 13, 217, 148, 12, 13, 217, 147, 12, 13, 217, 146, 12, 13, 217, 145, 12,
- 13, 217, 144, 12, 13, 217, 143, 12, 13, 217, 142, 12, 13, 217, 141, 12,
- 13, 217, 140, 12, 13, 217, 139, 12, 13, 217, 138, 12, 13, 217, 137, 12,
- 13, 217, 136, 12, 13, 217, 135, 12, 13, 217, 134, 12, 13, 217, 133, 12,
- 13, 217, 132, 12, 13, 217, 131, 12, 13, 217, 130, 12, 13, 217, 129, 12,
- 13, 217, 128, 12, 13, 217, 127, 12, 13, 217, 126, 12, 13, 217, 125, 12,
- 13, 217, 124, 12, 13, 217, 123, 12, 13, 217, 122, 12, 13, 217, 121, 12,
- 13, 217, 120, 12, 13, 217, 119, 12, 13, 217, 118, 12, 13, 217, 117, 12,
- 13, 217, 116, 12, 13, 217, 115, 12, 13, 217, 114, 12, 13, 217, 113, 12,
- 13, 217, 112, 12, 13, 217, 111, 12, 13, 217, 110, 12, 13, 217, 109, 12,
- 13, 217, 108, 12, 13, 215, 22, 12, 13, 215, 21, 12, 13, 215, 20, 12, 13,
- 215, 19, 12, 13, 215, 18, 12, 13, 215, 17, 12, 13, 215, 16, 12, 13, 215,
- 15, 12, 13, 215, 14, 12, 13, 215, 13, 12, 13, 215, 12, 12, 13, 215, 11,
- 12, 13, 215, 10, 12, 13, 215, 9, 12, 13, 215, 8, 12, 13, 215, 7, 12, 13,
- 215, 6, 12, 13, 215, 5, 12, 13, 215, 4, 12, 13, 215, 3, 12, 13, 215, 2,
- 12, 13, 215, 1, 12, 13, 215, 0, 12, 13, 214, 255, 12, 13, 214, 254, 12,
- 13, 214, 253, 12, 13, 214, 252, 12, 13, 214, 251, 12, 13, 214, 250, 12,
- 13, 214, 249, 12, 13, 214, 248, 12, 13, 214, 247, 12, 13, 214, 246, 12,
- 13, 214, 245, 12, 13, 214, 244, 12, 13, 214, 243, 12, 13, 214, 242, 12,
- 13, 214, 241, 12, 13, 214, 240, 12, 13, 214, 239, 12, 13, 214, 238, 12,
- 13, 214, 237, 12, 13, 214, 236, 12, 13, 214, 235, 12, 13, 214, 234, 12,
- 13, 214, 233, 12, 13, 214, 232, 12, 13, 214, 104, 12, 13, 214, 103, 12,
- 13, 214, 102, 12, 13, 214, 101, 12, 13, 214, 100, 12, 13, 214, 99, 12,
- 13, 214, 98, 12, 13, 214, 97, 12, 13, 214, 96, 12, 13, 214, 95, 12, 13,
- 214, 94, 12, 13, 214, 93, 12, 13, 214, 92, 12, 13, 214, 91, 12, 13, 214,
- 90, 12, 13, 214, 89, 12, 13, 214, 88, 12, 13, 214, 87, 12, 13, 214, 86,
- 12, 13, 214, 85, 12, 13, 214, 84, 12, 13, 214, 83, 12, 13, 214, 82, 12,
- 13, 214, 81, 12, 13, 214, 80, 12, 13, 214, 79, 12, 13, 214, 78, 12, 13,
- 214, 77, 12, 13, 214, 76, 12, 13, 214, 75, 12, 13, 214, 74, 12, 13, 214,
- 73, 12, 13, 214, 72, 12, 13, 214, 71, 12, 13, 214, 70, 12, 13, 214, 69,
- 12, 13, 214, 68, 12, 13, 214, 67, 12, 13, 214, 66, 12, 13, 214, 65, 12,
- 13, 214, 64, 12, 13, 214, 63, 12, 13, 214, 62, 12, 13, 214, 61, 12, 13,
- 214, 60, 12, 13, 214, 59, 12, 13, 214, 58, 12, 13, 214, 57, 12, 13, 214,
- 56, 12, 13, 214, 55, 12, 13, 214, 54, 12, 13, 214, 53, 12, 13, 214, 52,
- 12, 13, 214, 51, 12, 13, 214, 50, 12, 13, 214, 49, 12, 13, 214, 48, 12,
- 13, 214, 47, 12, 13, 214, 46, 12, 13, 214, 45, 12, 13, 214, 44, 12, 13,
- 214, 43, 12, 13, 214, 42, 12, 13, 214, 41, 12, 13, 214, 40, 12, 13, 214,
- 39, 12, 13, 214, 38, 12, 13, 214, 37, 12, 13, 214, 36, 12, 13, 214, 35,
- 12, 13, 214, 34, 12, 13, 214, 33, 12, 13, 214, 32, 12, 13, 214, 31, 12,
- 13, 214, 30, 12, 13, 214, 29, 12, 13, 214, 28, 12, 13, 212, 97, 12, 13,
- 212, 96, 12, 13, 212, 95, 12, 13, 212, 94, 12, 13, 212, 93, 12, 13, 212,
- 92, 12, 13, 212, 91, 12, 13, 212, 90, 12, 13, 212, 89, 12, 13, 212, 88,
- 12, 13, 212, 87, 12, 13, 212, 86, 12, 13, 212, 85, 12, 13, 212, 84, 12,
- 13, 212, 83, 12, 13, 212, 82, 12, 13, 212, 81, 12, 13, 212, 80, 12, 13,
- 212, 79, 12, 13, 212, 78, 12, 13, 212, 77, 12, 13, 212, 76, 12, 13, 212,
- 75, 12, 13, 212, 74, 12, 13, 212, 73, 12, 13, 212, 72, 12, 13, 212, 71,
- 12, 13, 212, 70, 12, 13, 212, 69, 12, 13, 212, 68, 12, 13, 212, 67, 12,
- 13, 212, 66, 12, 13, 211, 177, 12, 13, 211, 176, 12, 13, 211, 175, 12,
- 13, 211, 174, 12, 13, 211, 173, 12, 13, 211, 172, 12, 13, 211, 171, 12,
- 13, 211, 170, 12, 13, 211, 169, 12, 13, 211, 168, 12, 13, 211, 167, 12,
- 13, 211, 166, 12, 13, 211, 115, 12, 13, 211, 114, 12, 13, 211, 113, 12,
- 13, 211, 112, 12, 13, 211, 111, 12, 13, 211, 110, 12, 13, 211, 109, 12,
- 13, 211, 108, 12, 13, 211, 107, 12, 13, 210, 158, 12, 13, 210, 157, 12,
- 13, 210, 156, 12, 13, 210, 155, 12, 13, 210, 154, 12, 13, 210, 153, 12,
- 13, 210, 152, 12, 13, 210, 151, 12, 13, 210, 150, 12, 13, 210, 149, 12,
- 13, 210, 148, 12, 13, 210, 147, 12, 13, 210, 146, 12, 13, 210, 145, 12,
- 13, 210, 144, 12, 13, 210, 143, 12, 13, 210, 142, 12, 13, 210, 141, 12,
- 13, 210, 140, 12, 13, 210, 139, 12, 13, 210, 138, 12, 13, 210, 137, 12,
- 13, 210, 136, 12, 13, 210, 135, 12, 13, 210, 134, 12, 13, 210, 133, 12,
- 13, 210, 132, 12, 13, 210, 131, 12, 13, 210, 130, 12, 13, 210, 129, 12,
- 13, 210, 128, 12, 13, 210, 127, 12, 13, 210, 126, 12, 13, 210, 125, 12,
- 13, 210, 124, 12, 13, 210, 123, 12, 13, 210, 122, 12, 13, 210, 121, 12,
- 13, 210, 120, 12, 13, 210, 119, 12, 13, 210, 118, 12, 13, 255, 81, 12,
- 13, 255, 80, 12, 13, 255, 79, 12, 13, 255, 78, 12, 13, 255, 77, 12, 13,
- 255, 76, 12, 13, 255, 75, 12, 13, 255, 74, 12, 13, 255, 73, 12, 13, 255,
- 72, 12, 13, 255, 71, 12, 13, 255, 70, 12, 13, 255, 69, 12, 13, 255, 68,
- 12, 13, 255, 67, 12, 13, 255, 66, 12, 13, 255, 65, 12, 13, 255, 64, 12,
- 13, 255, 63, 12, 13, 255, 62, 12, 13, 255, 61, 12, 13, 255, 60, 12, 13,
- 255, 59, 12, 13, 255, 58, 12, 13, 255, 57, 12, 13, 255, 56, 12, 13, 255,
- 55, 12, 13, 255, 54, 12, 13, 255, 53, 12, 13, 255, 52, 12, 13, 255, 51,
- 12, 13, 255, 50, 12, 13, 255, 49, 12, 13, 255, 48, 20, 1, 167, 229, 17,
- 231, 21, 20, 1, 167, 243, 77, 244, 44, 20, 1, 167, 224, 254, 231, 22,
- 225, 60, 20, 1, 167, 224, 254, 231, 22, 225, 61, 20, 1, 167, 229, 231,
- 231, 21, 20, 1, 167, 219, 223, 20, 1, 167, 216, 67, 231, 21, 20, 1, 167,
- 227, 122, 231, 21, 20, 1, 167, 220, 21, 226, 94, 228, 174, 20, 1, 167,
- 224, 254, 226, 94, 228, 175, 225, 60, 20, 1, 167, 224, 254, 226, 94, 228,
- 175, 225, 61, 20, 1, 167, 231, 223, 20, 1, 167, 215, 120, 231, 224, 20,
- 1, 167, 229, 76, 20, 1, 167, 231, 220, 20, 1, 167, 231, 181, 20, 1, 167,
- 230, 53, 20, 1, 167, 220, 126, 20, 1, 167, 227, 246, 20, 1, 167, 234,
- 155, 20, 1, 167, 228, 143, 20, 1, 167, 218, 5, 20, 1, 167, 229, 16, 20,
- 1, 167, 233, 93, 20, 1, 167, 233, 18, 233, 195, 20, 1, 167, 227, 253,
- 231, 29, 20, 1, 167, 231, 227, 20, 1, 167, 225, 250, 20, 1, 167, 242,
- 238, 20, 1, 167, 226, 54, 20, 1, 167, 230, 156, 229, 50, 20, 1, 167, 227,
- 103, 231, 32, 20, 1, 167, 104, 210, 188, 229, 225, 20, 1, 167, 242, 239,
- 20, 1, 167, 227, 253, 227, 254, 20, 1, 167, 219, 130, 20, 1, 167, 231,
- 14, 20, 1, 167, 231, 35, 20, 1, 167, 230, 135, 20, 1, 167, 234, 255, 20,
- 1, 167, 226, 94, 233, 53, 20, 1, 167, 229, 154, 233, 53, 20, 1, 167, 225,
- 161, 20, 1, 167, 231, 221, 20, 1, 167, 228, 212, 20, 1, 167, 224, 137,
- 20, 1, 167, 215, 117, 20, 1, 167, 232, 99, 20, 1, 167, 219, 43, 20, 1,
- 167, 216, 217, 20, 1, 167, 231, 218, 20, 1, 167, 234, 162, 20, 1, 167,
- 229, 150, 20, 1, 167, 233, 207, 20, 1, 167, 230, 136, 20, 1, 167, 219,
- 220, 20, 1, 167, 232, 144, 20, 1, 167, 244, 101, 20, 1, 167, 222, 201,
- 20, 1, 167, 233, 247, 20, 1, 167, 219, 39, 20, 1, 167, 231, 178, 225,
- 102, 20, 1, 167, 220, 14, 20, 1, 167, 227, 252, 20, 1, 167, 219, 255,
- 228, 7, 210, 196, 20, 1, 167, 227, 142, 230, 153, 20, 1, 167, 226, 89,
- 20, 1, 167, 228, 144, 20, 1, 167, 214, 170, 20, 1, 167, 229, 53, 20, 1,
- 167, 231, 217, 20, 1, 167, 228, 186, 20, 1, 167, 231, 124, 20, 1, 167,
- 227, 155, 20, 1, 167, 216, 221, 20, 1, 167, 219, 36, 20, 1, 167, 226, 90,
- 20, 1, 167, 228, 11, 20, 1, 167, 231, 225, 20, 1, 167, 227, 152, 20, 1,
- 167, 234, 222, 20, 1, 167, 228, 14, 20, 1, 167, 213, 250, 20, 1, 167,
- 232, 103, 20, 1, 167, 229, 103, 20, 1, 167, 229, 201, 20, 1, 167, 231,
- 123, 20, 1, 225, 141, 228, 9, 20, 1, 225, 141, 215, 120, 231, 222, 20, 1,
- 225, 141, 219, 187, 20, 1, 225, 141, 220, 130, 215, 119, 20, 1, 225, 141,
- 232, 146, 227, 249, 20, 1, 225, 141, 231, 130, 231, 226, 20, 1, 225, 141,
- 234, 93, 20, 1, 225, 141, 211, 15, 20, 1, 225, 141, 231, 125, 20, 1, 225,
- 141, 234, 243, 20, 1, 225, 141, 225, 211, 20, 1, 225, 141, 211, 89, 233,
- 53, 20, 1, 225, 141, 233, 109, 228, 7, 227, 164, 20, 1, 225, 141, 227,
- 247, 220, 40, 20, 1, 225, 141, 229, 121, 228, 189, 20, 1, 225, 141, 242,
- 236, 20, 1, 225, 141, 225, 52, 20, 1, 225, 141, 215, 120, 228, 5, 20, 1,
- 225, 141, 220, 45, 228, 184, 20, 1, 225, 141, 220, 41, 20, 1, 225, 141,
- 231, 22, 216, 220, 20, 1, 225, 141, 231, 112, 231, 126, 20, 1, 225, 141,
- 227, 153, 227, 249, 20, 1, 225, 141, 234, 151, 20, 1, 225, 141, 242, 237,
- 20, 1, 225, 141, 234, 147, 20, 1, 225, 141, 233, 135, 20, 1, 225, 141,
- 225, 253, 20, 1, 225, 141, 213, 182, 20, 1, 225, 141, 229, 18, 230, 51,
- 20, 1, 225, 141, 229, 52, 231, 108, 20, 1, 225, 141, 211, 193, 20, 1,
- 225, 141, 222, 13, 20, 1, 225, 141, 217, 98, 20, 1, 225, 141, 231, 34,
- 20, 1, 225, 141, 229, 37, 20, 1, 225, 141, 229, 38, 233, 90, 20, 1, 225,
- 141, 231, 24, 20, 1, 225, 141, 218, 53, 20, 1, 225, 141, 231, 116, 20, 1,
- 225, 141, 230, 138, 20, 1, 225, 141, 227, 167, 20, 1, 225, 141, 224, 141,
- 20, 1, 225, 141, 231, 33, 229, 54, 20, 1, 225, 141, 244, 134, 20, 1, 225,
- 141, 231, 103, 20, 1, 225, 141, 244, 155, 20, 1, 225, 141, 234, 159, 20,
- 1, 225, 141, 231, 244, 228, 178, 20, 1, 225, 141, 231, 244, 228, 154, 20,
- 1, 225, 141, 233, 17, 20, 1, 225, 141, 229, 60, 20, 1, 225, 141, 228, 16,
- 20, 1, 225, 141, 186, 20, 1, 225, 141, 234, 80, 20, 1, 225, 141, 229, 6,
- 20, 1, 137, 229, 17, 231, 224, 20, 1, 137, 227, 121, 20, 1, 137, 210,
- 196, 20, 1, 137, 212, 53, 20, 1, 137, 229, 53, 20, 1, 137, 229, 142, 20,
- 1, 137, 229, 24, 20, 1, 137, 242, 246, 20, 1, 137, 231, 120, 20, 1, 137,
- 243, 84, 20, 1, 137, 227, 144, 230, 175, 231, 36, 20, 1, 137, 227, 245,
- 231, 111, 20, 1, 137, 231, 117, 20, 1, 137, 225, 58, 20, 1, 137, 229,
- 127, 20, 1, 137, 231, 128, 251, 37, 20, 1, 137, 234, 149, 20, 1, 137,
- 242, 247, 20, 1, 137, 234, 156, 20, 1, 137, 210, 213, 230, 81, 20, 1,
- 137, 227, 115, 20, 1, 137, 231, 105, 20, 1, 137, 228, 15, 20, 1, 137,
- 231, 111, 20, 1, 137, 211, 16, 20, 1, 137, 233, 255, 20, 1, 137, 235, 16,
- 20, 1, 137, 220, 125, 20, 1, 137, 229, 136, 20, 1, 137, 217, 96, 20, 1,
- 137, 228, 158, 20, 1, 137, 216, 67, 210, 198, 20, 1, 137, 218, 80, 20, 1,
- 137, 229, 44, 227, 164, 20, 1, 137, 213, 181, 20, 1, 137, 229, 204, 20,
- 1, 137, 231, 244, 234, 158, 20, 1, 137, 227, 254, 20, 1, 137, 229, 39,
- 20, 1, 137, 233, 94, 20, 1, 137, 231, 113, 20, 1, 137, 231, 13, 20, 1,
- 137, 227, 248, 20, 1, 137, 216, 216, 20, 1, 137, 229, 41, 20, 1, 137,
- 243, 240, 20, 1, 137, 229, 141, 20, 1, 137, 228, 17, 20, 1, 137, 228, 13,
- 20, 1, 137, 251, 115, 20, 1, 137, 213, 183, 20, 1, 137, 231, 118, 20, 1,
- 137, 222, 142, 20, 1, 137, 228, 188, 20, 1, 137, 233, 108, 20, 1, 137,
- 216, 65, 20, 1, 137, 227, 255, 229, 6, 20, 1, 137, 228, 180, 20, 1, 137,
- 234, 162, 20, 1, 137, 229, 45, 20, 1, 137, 231, 217, 20, 1, 137, 231,
- 106, 20, 1, 137, 232, 103, 20, 1, 137, 233, 195, 20, 1, 137, 228, 186,
- 20, 1, 137, 229, 6, 20, 1, 137, 211, 184, 20, 1, 137, 229, 42, 20, 1,
- 137, 228, 2, 20, 1, 137, 227, 250, 20, 1, 137, 233, 209, 228, 144, 20, 1,
- 137, 228, 0, 20, 1, 137, 229, 149, 20, 1, 137, 231, 244, 228, 5, 20, 1,
- 137, 211, 103, 20, 1, 137, 229, 148, 20, 1, 137, 219, 222, 20, 1, 137,
- 220, 128, 20, 1, 137, 231, 114, 20, 1, 137, 231, 224, 20, 1, 137, 231,
- 124, 20, 1, 137, 234, 150, 20, 1, 137, 231, 115, 20, 1, 137, 234, 154,
- 20, 1, 137, 231, 128, 225, 106, 20, 1, 137, 210, 179, 20, 1, 137, 228,
- 176, 20, 1, 137, 230, 225, 20, 1, 137, 230, 105, 20, 1, 137, 220, 17, 20,
- 1, 137, 234, 172, 233, 76, 20, 1, 137, 234, 172, 244, 168, 20, 1, 137,
- 229, 74, 20, 1, 137, 229, 201, 20, 1, 137, 232, 206, 20, 1, 137, 225, 68,
- 20, 1, 137, 225, 202, 20, 1, 137, 216, 231, 20, 1, 107, 231, 104, 20, 1,
- 107, 212, 51, 20, 1, 107, 228, 174, 20, 1, 107, 231, 21, 20, 1, 107, 228,
- 172, 20, 1, 107, 232, 241, 20, 1, 107, 228, 177, 20, 1, 107, 228, 12, 20,
- 1, 107, 229, 59, 20, 1, 107, 227, 164, 20, 1, 107, 211, 194, 20, 1, 107,
- 229, 14, 20, 1, 107, 220, 63, 20, 1, 107, 229, 25, 20, 1, 107, 234, 157,
- 20, 1, 107, 216, 218, 20, 1, 107, 220, 43, 20, 1, 107, 228, 185, 20, 1,
- 107, 218, 53, 20, 1, 107, 234, 162, 20, 1, 107, 211, 91, 20, 1, 107, 233,
- 210, 20, 1, 107, 221, 236, 20, 1, 107, 231, 26, 20, 1, 107, 229, 140, 20,
- 1, 107, 231, 193, 20, 1, 107, 231, 32, 20, 1, 107, 220, 127, 20, 1, 107,
- 211, 39, 20, 1, 107, 228, 179, 20, 1, 107, 234, 153, 231, 107, 20, 1,
- 107, 229, 21, 20, 1, 107, 215, 119, 20, 1, 107, 242, 255, 20, 1, 107,
- 229, 11, 20, 1, 107, 244, 135, 20, 1, 107, 229, 144, 20, 1, 107, 231, 5,
- 20, 1, 107, 233, 11, 20, 1, 107, 229, 126, 20, 1, 107, 230, 152, 20, 1,
- 107, 231, 9, 20, 1, 107, 224, 121, 20, 1, 107, 231, 7, 20, 1, 107, 231,
- 23, 20, 1, 107, 232, 89, 20, 1, 107, 228, 4, 20, 1, 107, 231, 127, 20, 1,
- 107, 233, 186, 20, 1, 107, 227, 155, 20, 1, 107, 216, 221, 20, 1, 107,
- 219, 36, 20, 1, 107, 210, 179, 20, 1, 107, 234, 154, 20, 1, 107, 223,
- 173, 20, 1, 107, 217, 11, 20, 1, 107, 229, 22, 20, 1, 107, 231, 28, 20,
- 1, 107, 228, 3, 20, 1, 107, 234, 152, 20, 1, 107, 225, 62, 20, 1, 107,
- 225, 155, 20, 1, 107, 227, 131, 20, 1, 107, 233, 17, 20, 1, 107, 229, 60,
- 20, 1, 107, 231, 25, 20, 1, 107, 229, 34, 20, 1, 107, 210, 193, 20, 1,
- 107, 226, 25, 20, 1, 107, 210, 192, 20, 1, 107, 229, 149, 20, 1, 107,
- 227, 249, 20, 1, 107, 218, 82, 20, 1, 107, 233, 214, 20, 1, 107, 229, 49,
- 20, 1, 107, 229, 19, 20, 1, 107, 215, 103, 20, 1, 107, 231, 36, 20, 1,
- 107, 233, 204, 20, 1, 107, 228, 1, 20, 1, 107, 216, 219, 20, 1, 107, 231,
- 219, 20, 1, 107, 229, 58, 20, 1, 107, 233, 10, 20, 1, 107, 229, 40, 20,
- 1, 107, 228, 6, 20, 1, 107, 228, 158, 20, 1, 107, 242, 240, 20, 1, 107,
- 233, 223, 20, 1, 107, 223, 87, 226, 213, 20, 1, 107, 217, 87, 20, 1, 107,
- 216, 11, 20, 1, 107, 227, 152, 20, 1, 107, 222, 242, 20, 1, 107, 233, 55,
- 20, 1, 107, 231, 84, 20, 1, 107, 194, 20, 1, 107, 218, 5, 20, 1, 107,
- 230, 107, 20, 1, 107, 220, 29, 20, 1, 107, 220, 39, 20, 1, 107, 233, 161,
- 20, 1, 107, 227, 242, 20, 1, 107, 219, 227, 20, 1, 107, 227, 251, 20, 1,
- 107, 225, 214, 20, 1, 107, 228, 238, 20, 1, 107, 219, 254, 20, 1, 107,
- 224, 136, 20, 1, 107, 230, 51, 20, 1, 107, 232, 125, 20, 1, 107, 223, 87,
- 230, 101, 20, 1, 107, 216, 118, 20, 1, 107, 227, 243, 20, 1, 107, 231,
- 128, 199, 20, 1, 107, 221, 234, 20, 1, 107, 244, 203, 20, 1, 82, 229,
- 148, 20, 1, 82, 216, 17, 20, 1, 82, 231, 117, 20, 1, 82, 233, 94, 20, 1,
- 82, 213, 128, 20, 1, 82, 232, 131, 20, 1, 82, 226, 93, 20, 1, 82, 219,
- 47, 20, 1, 82, 223, 148, 20, 1, 82, 228, 8, 20, 1, 82, 229, 119, 20, 1,
- 82, 224, 150, 20, 1, 82, 217, 63, 20, 1, 82, 229, 27, 20, 1, 82, 233,
- 251, 20, 1, 82, 211, 187, 20, 1, 82, 221, 172, 20, 1, 82, 229, 50, 20, 1,
- 82, 226, 90, 20, 1, 82, 216, 18, 20, 1, 82, 233, 208, 20, 1, 82, 232,
- 145, 20, 1, 82, 228, 11, 20, 1, 82, 229, 3, 20, 1, 82, 231, 225, 20, 1,
- 82, 229, 20, 20, 1, 82, 229, 2, 20, 1, 82, 228, 10, 20, 1, 82, 222, 240,
- 20, 1, 82, 228, 176, 20, 1, 82, 225, 213, 20, 1, 82, 222, 33, 20, 1, 82,
- 229, 35, 20, 1, 82, 231, 15, 20, 1, 82, 242, 234, 20, 1, 82, 229, 23, 20,
- 1, 82, 228, 187, 20, 1, 82, 231, 177, 20, 1, 82, 232, 127, 20, 1, 82,
- 229, 55, 20, 1, 82, 229, 132, 20, 1, 82, 217, 86, 227, 249, 20, 1, 82,
- 220, 129, 20, 1, 82, 224, 146, 20, 1, 82, 229, 152, 219, 53, 20, 1, 82,
- 229, 43, 227, 164, 20, 1, 82, 211, 4, 20, 1, 82, 242, 235, 20, 1, 82,
- 215, 118, 20, 1, 82, 211, 19, 20, 1, 82, 225, 19, 20, 1, 82, 215, 108,
- 20, 1, 82, 234, 160, 20, 1, 82, 218, 81, 20, 1, 82, 216, 220, 20, 1, 82,
- 213, 184, 20, 1, 82, 212, 6, 20, 1, 82, 233, 138, 20, 1, 82, 224, 153,
- 20, 1, 82, 217, 97, 20, 1, 82, 242, 254, 20, 1, 82, 229, 64, 20, 1, 82,
- 220, 42, 20, 1, 82, 231, 10, 20, 1, 82, 231, 121, 20, 1, 82, 227, 119,
- 20, 1, 82, 228, 141, 20, 1, 82, 243, 80, 20, 1, 82, 215, 109, 20, 1, 82,
- 233, 217, 20, 1, 82, 211, 67, 20, 1, 82, 227, 153, 250, 24, 20, 1, 82,
- 210, 250, 20, 1, 82, 231, 27, 20, 1, 82, 229, 137, 20, 1, 82, 225, 103,
- 20, 1, 82, 210, 197, 20, 1, 82, 233, 12, 20, 1, 82, 243, 240, 20, 1, 82,
- 243, 79, 20, 1, 82, 229, 13, 20, 1, 82, 234, 162, 20, 1, 82, 231, 228,
- 20, 1, 82, 229, 26, 20, 1, 82, 242, 241, 20, 1, 82, 244, 204, 20, 1, 82,
- 227, 244, 20, 1, 82, 225, 156, 20, 1, 82, 211, 17, 20, 1, 82, 229, 51,
- 20, 1, 82, 227, 153, 252, 31, 20, 1, 82, 227, 99, 20, 1, 82, 224, 250,
- 20, 1, 82, 230, 225, 20, 1, 82, 243, 238, 20, 1, 82, 229, 225, 20, 1, 82,
- 230, 105, 20, 1, 82, 242, 240, 20, 1, 82, 243, 242, 74, 20, 1, 82, 230,
- 52, 20, 1, 82, 224, 149, 20, 1, 82, 229, 15, 20, 1, 82, 233, 195, 20, 1,
- 82, 225, 100, 20, 1, 82, 227, 252, 20, 1, 82, 211, 18, 20, 1, 82, 229,
- 36, 20, 1, 82, 226, 94, 225, 190, 20, 1, 82, 243, 242, 251, 23, 20, 1,
- 82, 244, 45, 20, 1, 82, 228, 181, 20, 1, 82, 61, 20, 1, 82, 216, 11, 20,
- 1, 82, 78, 20, 1, 82, 74, 20, 1, 82, 233, 92, 20, 1, 82, 226, 94, 225,
- 26, 20, 1, 82, 217, 102, 20, 1, 82, 217, 52, 20, 1, 82, 229, 152, 230,
- 39, 240, 241, 20, 1, 82, 220, 17, 20, 1, 82, 211, 14, 20, 1, 82, 228,
- 252, 20, 1, 82, 210, 202, 20, 1, 82, 210, 227, 217, 241, 20, 1, 82, 210,
- 227, 249, 155, 20, 1, 82, 210, 187, 20, 1, 82, 210, 195, 20, 1, 82, 234,
- 148, 20, 1, 82, 225, 154, 20, 1, 82, 228, 182, 245, 110, 20, 1, 82, 224,
- 147, 20, 1, 82, 211, 192, 20, 1, 82, 244, 155, 20, 1, 82, 213, 250, 20,
- 1, 82, 232, 103, 20, 1, 82, 230, 235, 20, 1, 82, 223, 54, 20, 1, 82, 223,
- 174, 20, 1, 82, 228, 251, 20, 1, 82, 229, 82, 20, 1, 82, 220, 9, 20, 1,
- 82, 219, 254, 20, 1, 82, 243, 242, 223, 89, 20, 1, 82, 198, 20, 1, 82,
- 225, 111, 20, 1, 82, 232, 125, 20, 1, 82, 234, 34, 20, 1, 82, 231, 63,
- 20, 1, 82, 186, 20, 1, 82, 231, 174, 20, 1, 82, 216, 222, 20, 1, 82, 234,
- 98, 20, 1, 82, 230, 155, 20, 1, 82, 216, 248, 20, 1, 82, 244, 177, 20, 1,
- 82, 242, 230, 20, 1, 225, 140, 176, 20, 1, 225, 140, 69, 20, 1, 225, 140,
- 233, 223, 20, 1, 225, 140, 245, 217, 20, 1, 225, 140, 223, 111, 20, 1,
- 225, 140, 217, 87, 20, 1, 225, 140, 227, 152, 20, 1, 225, 140, 233, 141,
- 20, 1, 225, 140, 222, 242, 20, 1, 225, 140, 223, 32, 20, 1, 225, 140,
- 231, 84, 20, 1, 225, 140, 217, 102, 20, 1, 225, 140, 229, 151, 20, 1,
- 225, 140, 228, 188, 20, 1, 225, 140, 194, 20, 1, 225, 140, 218, 5, 20, 1,
- 225, 140, 220, 29, 20, 1, 225, 140, 219, 193, 20, 1, 225, 140, 220, 125,
- 20, 1, 225, 140, 233, 161, 20, 1, 225, 140, 234, 162, 20, 1, 225, 140,
- 227, 213, 20, 1, 225, 140, 227, 242, 20, 1, 225, 140, 228, 159, 20, 1,
- 225, 140, 210, 226, 20, 1, 225, 140, 219, 227, 20, 1, 225, 140, 192, 20,
- 1, 225, 140, 228, 14, 20, 1, 225, 140, 225, 154, 20, 1, 225, 140, 227,
- 251, 20, 1, 225, 140, 211, 192, 20, 1, 225, 140, 225, 214, 20, 1, 225,
- 140, 222, 142, 20, 1, 225, 140, 228, 238, 20, 1, 225, 140, 223, 54, 20,
- 1, 225, 140, 234, 171, 20, 1, 225, 140, 229, 12, 20, 1, 225, 140, 229,
- 61, 20, 1, 225, 140, 220, 9, 20, 1, 225, 140, 224, 150, 20, 1, 225, 140,
- 244, 45, 20, 1, 225, 140, 212, 65, 20, 1, 225, 140, 232, 247, 20, 1, 225,
- 140, 232, 125, 20, 1, 225, 140, 234, 34, 20, 1, 225, 140, 231, 119, 20,
- 1, 225, 140, 223, 86, 20, 1, 225, 140, 186, 20, 1, 225, 140, 230, 166,
- 20, 1, 225, 140, 231, 127, 20, 1, 225, 140, 216, 231, 20, 1, 225, 140,
- 234, 1, 20, 1, 225, 140, 221, 253, 20, 1, 225, 140, 212, 115, 95, 1, 191,
- 95, 1, 252, 199, 95, 1, 8, 191, 95, 1, 225, 45, 95, 1, 186, 95, 1, 230,
- 238, 95, 1, 254, 31, 186, 95, 1, 244, 204, 95, 1, 214, 27, 95, 1, 213,
- 177, 95, 1, 217, 106, 95, 1, 248, 229, 95, 1, 8, 215, 157, 95, 1, 8, 217,
- 106, 95, 1, 215, 157, 95, 1, 248, 143, 95, 1, 198, 95, 1, 228, 242, 95,
- 1, 8, 228, 115, 95, 1, 254, 31, 198, 95, 1, 228, 115, 95, 1, 228, 101,
- 95, 1, 233, 141, 95, 1, 232, 66, 95, 1, 233, 4, 95, 1, 232, 249, 95, 1,
- 216, 57, 95, 1, 247, 161, 95, 1, 216, 49, 95, 1, 247, 160, 95, 1, 176,
- 95, 1, 243, 142, 95, 1, 8, 176, 95, 1, 224, 91, 95, 1, 224, 69, 95, 1,
- 229, 82, 95, 1, 229, 33, 95, 1, 254, 31, 229, 82, 95, 1, 162, 95, 1, 211,
- 165, 95, 1, 243, 0, 95, 1, 242, 233, 95, 1, 215, 166, 95, 1, 246, 34, 95,
- 1, 227, 169, 95, 1, 227, 154, 95, 1, 215, 176, 95, 1, 246, 41, 95, 1, 8,
- 215, 176, 95, 1, 8, 246, 41, 95, 1, 223, 109, 215, 176, 95, 1, 220, 104,
- 95, 1, 218, 225, 95, 1, 210, 82, 95, 1, 210, 14, 95, 1, 215, 184, 95, 1,
- 246, 46, 95, 1, 8, 215, 184, 95, 1, 206, 95, 1, 210, 116, 95, 1, 210, 15,
- 95, 1, 209, 243, 95, 1, 209, 223, 95, 1, 254, 31, 209, 243, 95, 1, 209,
- 215, 95, 1, 209, 222, 95, 1, 212, 65, 95, 1, 254, 218, 95, 1, 241, 196,
- 95, 1, 229, 197, 95, 5, 253, 230, 95, 5, 223, 109, 213, 133, 95, 5, 223,
- 109, 253, 230, 95, 25, 5, 61, 95, 25, 5, 255, 82, 95, 25, 5, 254, 214,
- 95, 25, 5, 254, 131, 95, 25, 5, 254, 123, 95, 25, 5, 78, 95, 25, 5, 226,
- 187, 95, 25, 5, 211, 227, 95, 25, 5, 212, 98, 95, 25, 5, 76, 95, 25, 5,
- 245, 158, 95, 25, 5, 245, 146, 95, 25, 5, 226, 236, 95, 25, 5, 74, 95,
- 25, 5, 240, 126, 95, 25, 5, 240, 125, 95, 25, 5, 240, 124, 95, 25, 5,
- 235, 196, 95, 25, 5, 236, 67, 95, 25, 5, 236, 40, 95, 25, 5, 235, 162,
- 95, 25, 5, 235, 238, 95, 25, 5, 69, 95, 25, 5, 214, 229, 95, 25, 5, 214,
- 228, 95, 25, 5, 214, 227, 95, 25, 5, 214, 118, 95, 25, 5, 214, 211, 95,
- 25, 5, 214, 178, 95, 25, 5, 211, 117, 95, 25, 5, 211, 8, 95, 25, 5, 254,
- 252, 95, 25, 5, 254, 248, 95, 25, 5, 245, 94, 95, 25, 5, 222, 185, 245,
- 94, 95, 25, 5, 245, 100, 95, 25, 5, 222, 185, 245, 100, 95, 25, 5, 254,
- 210, 95, 25, 5, 245, 203, 95, 25, 5, 253, 200, 95, 25, 5, 226, 138, 95,
- 25, 5, 230, 30, 95, 25, 5, 229, 84, 95, 138, 222, 254, 95, 138, 216, 15,
- 222, 254, 95, 138, 48, 95, 138, 51, 95, 1, 216, 29, 95, 1, 216, 28, 95,
- 1, 216, 27, 95, 1, 216, 26, 95, 1, 216, 25, 95, 1, 216, 24, 95, 1, 216,
- 23, 95, 1, 223, 109, 216, 30, 95, 1, 223, 109, 216, 29, 95, 1, 223, 109,
- 216, 27, 95, 1, 223, 109, 216, 26, 95, 1, 223, 109, 216, 25, 95, 1, 223,
- 109, 216, 23, 56, 1, 254, 31, 76, 141, 1, 254, 31, 211, 47, 49, 28, 16,
- 224, 157, 49, 28, 16, 248, 166, 49, 28, 16, 225, 178, 49, 28, 16, 226,
- 117, 245, 186, 49, 28, 16, 226, 117, 247, 209, 49, 28, 16, 214, 16, 245,
- 186, 49, 28, 16, 214, 16, 247, 209, 49, 28, 16, 234, 203, 49, 28, 16,
- 217, 170, 49, 28, 16, 226, 13, 49, 28, 16, 210, 217, 49, 28, 16, 210,
- 218, 247, 209, 49, 28, 16, 233, 240, 49, 28, 16, 254, 76, 245, 186, 49,
- 28, 16, 245, 34, 245, 186, 49, 28, 16, 217, 3, 49, 28, 16, 234, 167, 49,
- 28, 16, 254, 66, 49, 28, 16, 254, 67, 247, 209, 49, 28, 16, 217, 176, 49,
- 28, 16, 216, 160, 49, 28, 16, 226, 210, 254, 29, 49, 28, 16, 242, 166,
- 254, 29, 49, 28, 16, 224, 156, 49, 28, 16, 250, 157, 49, 28, 16, 214, 6,
- 49, 28, 16, 235, 170, 254, 29, 49, 28, 16, 234, 169, 254, 29, 49, 28, 16,
- 234, 168, 254, 29, 49, 28, 16, 221, 215, 49, 28, 16, 226, 4, 49, 28, 16,
- 218, 148, 254, 69, 49, 28, 16, 226, 116, 254, 29, 49, 28, 16, 214, 15,
- 254, 29, 49, 28, 16, 254, 70, 254, 29, 49, 28, 16, 254, 64, 49, 28, 16,
- 234, 43, 49, 28, 16, 223, 49, 49, 28, 16, 225, 109, 254, 29, 49, 28, 16,
- 216, 84, 49, 28, 16, 254, 129, 49, 28, 16, 221, 161, 49, 28, 16, 217,
- 179, 254, 29, 49, 28, 16, 217, 179, 231, 45, 218, 146, 49, 28, 16, 226,
- 111, 254, 29, 49, 28, 16, 216, 191, 49, 28, 16, 233, 33, 49, 28, 16, 246,
- 49, 49, 28, 16, 215, 228, 49, 28, 16, 216, 233, 49, 28, 16, 233, 243, 49,
- 28, 16, 254, 76, 245, 34, 229, 100, 49, 28, 16, 243, 243, 254, 29, 49,
- 28, 16, 236, 19, 49, 28, 16, 215, 200, 254, 29, 49, 28, 16, 234, 206,
- 215, 199, 49, 28, 16, 225, 203, 49, 28, 16, 224, 161, 49, 28, 16, 234,
- 17, 49, 28, 16, 250, 88, 254, 29, 49, 28, 16, 223, 149, 49, 28, 16, 226,
- 16, 254, 29, 49, 28, 16, 226, 14, 254, 29, 49, 28, 16, 240, 116, 49, 28,
- 16, 229, 208, 49, 28, 16, 225, 159, 49, 28, 16, 234, 18, 254, 158, 49,
- 28, 16, 215, 200, 254, 158, 49, 28, 16, 218, 125, 49, 28, 16, 242, 130,
- 49, 28, 16, 235, 170, 229, 100, 49, 28, 16, 226, 210, 229, 100, 49, 28,
- 16, 226, 117, 229, 100, 49, 28, 16, 225, 158, 49, 28, 16, 234, 4, 49, 28,
- 16, 225, 157, 49, 28, 16, 233, 242, 49, 28, 16, 225, 204, 229, 100, 49,
- 28, 16, 234, 168, 229, 101, 254, 104, 49, 28, 16, 234, 169, 229, 101,
- 254, 104, 49, 28, 16, 210, 215, 49, 28, 16, 254, 67, 229, 100, 49, 28,
- 16, 254, 68, 217, 177, 229, 100, 49, 28, 16, 210, 216, 49, 28, 16, 233,
- 241, 49, 28, 16, 245, 181, 49, 28, 16, 250, 158, 49, 28, 16, 230, 203,
- 235, 169, 49, 28, 16, 214, 16, 229, 100, 49, 28, 16, 225, 109, 229, 100,
- 49, 28, 16, 224, 162, 229, 100, 49, 28, 16, 226, 207, 49, 28, 16, 254,
- 92, 49, 28, 16, 232, 63, 49, 28, 16, 226, 14, 229, 100, 49, 28, 16, 226,
- 16, 229, 100, 49, 28, 16, 245, 68, 226, 15, 49, 28, 16, 233, 159, 49, 28,
- 16, 254, 93, 49, 28, 16, 215, 200, 229, 100, 49, 28, 16, 245, 184, 49,
- 28, 16, 217, 179, 229, 100, 49, 28, 16, 217, 171, 49, 28, 16, 250, 88,
- 229, 100, 49, 28, 16, 245, 114, 49, 28, 16, 221, 162, 229, 100, 49, 28,
- 16, 211, 151, 234, 43, 49, 28, 16, 215, 197, 49, 28, 16, 224, 163, 49,
- 28, 16, 215, 201, 49, 28, 16, 215, 198, 49, 28, 16, 224, 160, 49, 28, 16,
- 215, 196, 49, 28, 16, 224, 159, 49, 28, 16, 242, 165, 49, 28, 16, 254,
- 22, 49, 28, 16, 245, 68, 254, 22, 49, 28, 16, 226, 111, 229, 100, 49, 28,
- 16, 216, 190, 245, 77, 49, 28, 16, 216, 190, 245, 33, 49, 28, 16, 216,
- 192, 254, 71, 49, 28, 16, 216, 185, 234, 253, 254, 63, 49, 28, 16, 234,
- 205, 49, 28, 16, 245, 147, 49, 28, 16, 211, 11, 234, 202, 49, 28, 16,
- 211, 11, 254, 104, 49, 28, 16, 218, 147, 49, 28, 16, 234, 44, 254, 104,
- 49, 28, 16, 247, 210, 254, 29, 49, 28, 16, 233, 244, 254, 29, 49, 28, 16,
- 233, 244, 254, 158, 49, 28, 16, 233, 244, 229, 100, 49, 28, 16, 254, 70,
- 229, 100, 49, 28, 16, 254, 72, 49, 28, 16, 247, 209, 49, 28, 16, 215,
- 211, 49, 28, 16, 216, 225, 49, 28, 16, 234, 8, 49, 28, 16, 233, 38, 245,
- 142, 250, 79, 49, 28, 16, 233, 38, 246, 50, 250, 80, 49, 28, 16, 233, 38,
- 215, 213, 250, 80, 49, 28, 16, 233, 38, 216, 235, 250, 80, 49, 28, 16,
- 233, 38, 236, 14, 250, 79, 49, 28, 16, 242, 166, 229, 101, 254, 104, 49,
- 28, 16, 242, 166, 226, 5, 254, 18, 49, 28, 16, 242, 166, 226, 5, 248, 37,
- 49, 28, 16, 247, 233, 49, 28, 16, 247, 234, 226, 5, 254, 19, 234, 202,
- 49, 28, 16, 247, 234, 226, 5, 254, 19, 254, 104, 49, 28, 16, 247, 234,
- 226, 5, 248, 37, 49, 28, 16, 215, 217, 49, 28, 16, 254, 23, 49, 28, 16,
- 236, 21, 49, 28, 16, 247, 254, 49, 28, 16, 254, 220, 225, 3, 254, 24, 49,
- 28, 16, 254, 220, 254, 21, 49, 28, 16, 254, 220, 254, 24, 49, 28, 16,
- 254, 220, 231, 39, 49, 28, 16, 254, 220, 231, 50, 49, 28, 16, 254, 220,
- 242, 167, 49, 28, 16, 254, 220, 242, 164, 49, 28, 16, 254, 220, 225, 3,
- 242, 167, 49, 28, 16, 231, 156, 224, 168, 240, 114, 49, 28, 16, 231, 156,
- 254, 160, 224, 168, 240, 114, 49, 28, 16, 231, 156, 248, 36, 240, 114,
- 49, 28, 16, 231, 156, 254, 160, 248, 36, 240, 114, 49, 28, 16, 231, 156,
- 215, 206, 240, 114, 49, 28, 16, 231, 156, 215, 218, 49, 28, 16, 231, 156,
- 216, 229, 240, 114, 49, 28, 16, 231, 156, 216, 229, 233, 41, 240, 114,
- 49, 28, 16, 231, 156, 233, 41, 240, 114, 49, 28, 16, 231, 156, 225, 42,
- 240, 114, 49, 28, 16, 235, 176, 216, 252, 240, 115, 49, 28, 16, 254, 68,
- 216, 252, 240, 115, 49, 28, 16, 244, 180, 216, 226, 49, 28, 16, 244, 180,
- 230, 148, 49, 28, 16, 244, 180, 247, 238, 49, 28, 16, 231, 156, 214, 10,
- 240, 114, 49, 28, 16, 231, 156, 224, 167, 240, 114, 49, 28, 16, 231, 156,
- 225, 42, 216, 229, 240, 114, 49, 28, 16, 242, 162, 230, 31, 254, 71, 49,
- 28, 16, 242, 162, 230, 31, 247, 208, 49, 28, 16, 245, 156, 234, 253, 243,
- 243, 213, 124, 49, 28, 16, 236, 20, 49, 28, 16, 236, 18, 49, 28, 16, 243,
- 243, 254, 30, 248, 35, 240, 113, 49, 28, 16, 243, 243, 247, 252, 191, 49,
- 28, 16, 243, 243, 247, 252, 229, 208, 49, 28, 16, 243, 243, 229, 203,
- 240, 114, 49, 28, 16, 243, 243, 247, 252, 248, 11, 49, 28, 16, 243, 243,
- 219, 104, 247, 251, 248, 11, 49, 28, 16, 243, 243, 247, 252, 234, 188,
- 49, 28, 16, 243, 243, 247, 252, 210, 23, 49, 28, 16, 243, 243, 247, 252,
- 228, 239, 234, 202, 49, 28, 16, 243, 243, 247, 252, 228, 239, 254, 104,
- 49, 28, 16, 243, 243, 231, 196, 250, 81, 247, 238, 49, 28, 16, 243, 243,
- 231, 196, 250, 81, 230, 148, 49, 28, 16, 244, 130, 219, 104, 250, 81,
- 214, 9, 49, 28, 16, 243, 243, 219, 104, 250, 81, 217, 180, 49, 28, 16,
- 243, 243, 229, 102, 49, 28, 16, 250, 82, 209, 249, 49, 28, 16, 250, 82,
- 234, 42, 49, 28, 16, 250, 82, 219, 11, 49, 28, 16, 243, 243, 240, 161,
- 211, 10, 216, 230, 49, 28, 16, 243, 243, 245, 157, 254, 94, 49, 28, 16,
- 211, 10, 215, 207, 49, 28, 16, 247, 246, 215, 207, 49, 28, 16, 247, 246,
- 216, 230, 49, 28, 16, 247, 246, 254, 73, 246, 50, 247, 147, 49, 28, 16,
- 247, 246, 230, 146, 216, 234, 247, 147, 49, 28, 16, 247, 246, 247, 230,
- 245, 44, 247, 147, 49, 28, 16, 247, 246, 215, 215, 226, 215, 247, 147,
- 49, 28, 16, 211, 10, 254, 73, 246, 50, 247, 147, 49, 28, 16, 211, 10,
- 230, 146, 216, 234, 247, 147, 49, 28, 16, 211, 10, 247, 230, 245, 44,
- 247, 147, 49, 28, 16, 211, 10, 215, 215, 226, 215, 247, 147, 49, 28, 16,
- 243, 56, 247, 245, 49, 28, 16, 243, 56, 211, 9, 49, 28, 16, 247, 253,
- 254, 73, 230, 204, 49, 28, 16, 247, 253, 254, 73, 231, 78, 49, 28, 16,
- 247, 253, 247, 209, 49, 28, 16, 247, 253, 216, 183, 49, 28, 16, 219, 165,
- 216, 183, 49, 28, 16, 219, 165, 216, 184, 247, 194, 49, 28, 16, 219, 165,
- 216, 184, 215, 208, 49, 28, 16, 219, 165, 216, 184, 216, 223, 49, 28, 16,
- 219, 165, 253, 252, 49, 28, 16, 219, 165, 253, 253, 247, 194, 49, 28, 16,
- 219, 165, 253, 253, 215, 208, 49, 28, 16, 219, 165, 253, 253, 216, 223,
- 49, 28, 16, 247, 231, 243, 37, 49, 28, 16, 247, 237, 226, 138, 49, 28,
- 16, 218, 139, 49, 28, 16, 254, 15, 191, 49, 28, 16, 254, 15, 213, 124,
- 49, 28, 16, 254, 15, 243, 142, 49, 28, 16, 254, 15, 248, 11, 49, 28, 16,
- 254, 15, 234, 188, 49, 28, 16, 254, 15, 210, 23, 49, 28, 16, 254, 15,
- 228, 238, 49, 28, 16, 234, 168, 229, 101, 231, 49, 49, 28, 16, 234, 169,
- 229, 101, 231, 49, 49, 28, 16, 234, 168, 229, 101, 234, 202, 49, 28, 16,
- 234, 169, 229, 101, 234, 202, 49, 28, 16, 234, 44, 234, 202, 49, 28, 16,
- 242, 166, 229, 101, 234, 202, 28, 16, 219, 157, 252, 143, 28, 16, 52,
- 252, 143, 28, 16, 40, 252, 143, 28, 16, 223, 53, 40, 252, 143, 28, 16,
- 248, 163, 252, 143, 28, 16, 219, 253, 252, 143, 28, 16, 43, 223, 80, 50,
- 28, 16, 44, 223, 80, 50, 28, 16, 223, 80, 247, 126, 28, 16, 248, 204,
- 221, 165, 28, 16, 248, 230, 251, 1, 28, 16, 221, 165, 28, 16, 249, 242,
- 28, 16, 223, 78, 244, 119, 28, 16, 223, 78, 244, 118, 28, 16, 223, 78,
- 244, 117, 28, 16, 244, 139, 28, 16, 244, 140, 51, 28, 16, 251, 156, 79,
- 28, 16, 251, 32, 28, 16, 251, 167, 28, 16, 127, 28, 16, 226, 197, 218,
- 165, 28, 16, 215, 57, 218, 165, 28, 16, 216, 143, 218, 165, 28, 16, 244,
- 18, 218, 165, 28, 16, 244, 88, 218, 165, 28, 16, 219, 126, 218, 165, 28,
- 16, 219, 124, 244, 2, 28, 16, 244, 16, 244, 2, 28, 16, 243, 210, 250, 22,
- 28, 16, 243, 210, 250, 23, 226, 140, 254, 150, 28, 16, 243, 210, 250, 23,
- 226, 140, 252, 130, 28, 16, 251, 75, 250, 22, 28, 16, 245, 15, 250, 22,
- 28, 16, 245, 15, 250, 23, 226, 140, 254, 150, 28, 16, 245, 15, 250, 23,
- 226, 140, 252, 130, 28, 16, 246, 91, 250, 21, 28, 16, 246, 91, 250, 20,
- 28, 16, 230, 90, 231, 95, 223, 64, 28, 16, 52, 220, 77, 28, 16, 52, 244,
- 73, 28, 16, 244, 74, 214, 163, 28, 16, 244, 74, 246, 114, 28, 16, 229,
- 193, 214, 163, 28, 16, 229, 193, 246, 114, 28, 16, 220, 78, 214, 163, 28,
- 16, 220, 78, 246, 114, 28, 16, 224, 25, 138, 220, 77, 28, 16, 224, 25,
- 138, 244, 73, 28, 16, 249, 224, 216, 88, 28, 16, 249, 93, 216, 88, 28,
- 16, 226, 140, 254, 150, 28, 16, 226, 140, 252, 130, 28, 16, 224, 7, 254,
- 150, 28, 16, 224, 7, 252, 130, 28, 16, 230, 93, 223, 64, 28, 16, 211,
- 251, 223, 64, 28, 16, 163, 223, 64, 28, 16, 224, 25, 223, 64, 28, 16,
- 245, 197, 223, 64, 28, 16, 219, 120, 223, 64, 28, 16, 216, 161, 223, 64,
- 28, 16, 219, 112, 223, 64, 28, 16, 123, 240, 218, 215, 71, 223, 64, 28,
- 16, 211, 179, 228, 48, 28, 16, 96, 228, 48, 28, 16, 250, 44, 211, 179,
- 228, 48, 28, 16, 42, 228, 49, 211, 253, 28, 16, 42, 228, 49, 251, 229,
- 28, 16, 215, 227, 228, 49, 120, 211, 253, 28, 16, 215, 227, 228, 49, 120,
- 251, 229, 28, 16, 215, 227, 228, 49, 43, 211, 253, 28, 16, 215, 227, 228,
- 49, 43, 251, 229, 28, 16, 215, 227, 228, 49, 44, 211, 253, 28, 16, 215,
- 227, 228, 49, 44, 251, 229, 28, 16, 215, 227, 228, 49, 124, 211, 253, 28,
- 16, 215, 227, 228, 49, 124, 251, 229, 28, 16, 215, 227, 228, 49, 120, 44,
- 211, 253, 28, 16, 215, 227, 228, 49, 120, 44, 251, 229, 28, 16, 230, 134,
- 228, 49, 211, 253, 28, 16, 230, 134, 228, 49, 251, 229, 28, 16, 215, 224,
- 228, 49, 124, 211, 253, 28, 16, 215, 224, 228, 49, 124, 251, 229, 28, 16,
- 226, 8, 228, 48, 28, 16, 213, 132, 228, 48, 28, 16, 228, 49, 251, 229,
- 28, 16, 227, 207, 228, 48, 28, 16, 249, 249, 228, 49, 211, 253, 28, 16,
- 249, 249, 228, 49, 251, 229, 28, 16, 251, 154, 28, 16, 211, 251, 228, 52,
- 28, 16, 163, 228, 52, 28, 16, 224, 25, 228, 52, 28, 16, 245, 197, 228,
- 52, 28, 16, 219, 120, 228, 52, 28, 16, 216, 161, 228, 52, 28, 16, 219,
- 112, 228, 52, 28, 16, 123, 240, 218, 215, 71, 228, 52, 28, 16, 38, 218,
- 141, 28, 16, 38, 218, 242, 218, 141, 28, 16, 38, 215, 235, 28, 16, 38,
- 215, 234, 28, 16, 38, 215, 233, 28, 16, 244, 109, 215, 235, 28, 16, 244,
- 109, 215, 234, 28, 16, 244, 109, 215, 233, 28, 16, 38, 253, 197, 247,
- 128, 28, 16, 38, 244, 80, 28, 16, 38, 244, 79, 28, 16, 38, 244, 78, 28,
- 16, 38, 244, 77, 28, 16, 38, 244, 76, 28, 16, 252, 66, 252, 82, 28, 16,
- 245, 151, 252, 82, 28, 16, 252, 66, 216, 112, 28, 16, 245, 151, 216, 112,
- 28, 16, 252, 66, 219, 82, 28, 16, 245, 151, 219, 82, 28, 16, 252, 66,
- 225, 118, 28, 16, 245, 151, 225, 118, 28, 16, 38, 255, 23, 28, 16, 38,
- 218, 167, 28, 16, 38, 216, 239, 28, 16, 38, 218, 168, 28, 16, 38, 231,
- 167, 28, 16, 38, 231, 166, 28, 16, 38, 255, 22, 28, 16, 38, 232, 118, 28,
- 16, 254, 6, 214, 163, 28, 16, 254, 6, 246, 114, 28, 16, 38, 247, 143, 28,
- 16, 38, 222, 234, 28, 16, 38, 244, 66, 28, 16, 38, 219, 78, 28, 16, 38,
- 252, 46, 28, 16, 38, 52, 216, 20, 28, 16, 38, 215, 212, 216, 20, 28, 16,
- 222, 238, 28, 16, 218, 76, 28, 16, 210, 159, 28, 16, 225, 110, 28, 16,
- 231, 30, 28, 16, 244, 25, 28, 16, 249, 146, 28, 16, 248, 86, 28, 16, 242,
- 157, 228, 53, 219, 97, 28, 16, 242, 157, 228, 53, 228, 80, 219, 97, 28,
- 16, 216, 1, 28, 16, 215, 95, 28, 16, 235, 200, 215, 95, 28, 16, 215, 96,
- 219, 97, 28, 16, 215, 96, 214, 163, 28, 16, 226, 152, 218, 104, 28, 16,
- 226, 152, 218, 101, 28, 16, 226, 152, 218, 100, 28, 16, 226, 152, 218,
- 99, 28, 16, 226, 152, 218, 98, 28, 16, 226, 152, 218, 97, 28, 16, 226,
- 152, 218, 96, 28, 16, 226, 152, 218, 95, 28, 16, 226, 152, 218, 94, 28,
- 16, 226, 152, 218, 103, 28, 16, 226, 152, 218, 102, 28, 16, 241, 252, 28,
- 16, 229, 110, 28, 16, 245, 151, 64, 218, 135, 28, 16, 248, 79, 219, 97,
- 28, 16, 38, 124, 251, 177, 28, 16, 38, 120, 251, 177, 28, 16, 38, 242, 7,
- 28, 16, 38, 219, 69, 225, 46, 28, 16, 225, 219, 79, 28, 16, 225, 219,
- 120, 79, 28, 16, 163, 225, 219, 79, 28, 16, 242, 189, 214, 163, 28, 16,
- 242, 189, 246, 114, 28, 16, 2, 244, 108, 28, 16, 248, 188, 28, 16, 248,
- 189, 254, 163, 28, 16, 231, 138, 28, 16, 232, 135, 28, 16, 251, 151, 28,
- 16, 220, 156, 211, 253, 28, 16, 220, 156, 251, 229, 28, 16, 230, 189, 28,
- 16, 230, 190, 251, 229, 28, 16, 220, 150, 211, 253, 28, 16, 220, 150,
- 251, 229, 28, 16, 243, 227, 211, 253, 28, 16, 243, 227, 251, 229, 28, 16,
- 232, 136, 225, 183, 223, 64, 28, 16, 232, 136, 236, 11, 223, 64, 28, 16,
- 251, 152, 223, 64, 28, 16, 220, 156, 223, 64, 28, 16, 230, 190, 223, 64,
- 28, 16, 220, 150, 223, 64, 28, 16, 216, 250, 225, 181, 249, 115, 224,
- 177, 225, 182, 28, 16, 216, 250, 225, 181, 249, 115, 224, 177, 236, 10,
- 28, 16, 216, 250, 225, 181, 249, 115, 224, 177, 225, 183, 247, 219, 28,
- 16, 216, 250, 236, 9, 249, 115, 224, 177, 225, 182, 28, 16, 216, 250,
- 236, 9, 249, 115, 224, 177, 236, 10, 28, 16, 216, 250, 236, 9, 249, 115,
- 224, 177, 236, 11, 247, 219, 28, 16, 216, 250, 236, 9, 249, 115, 224,
- 177, 236, 11, 247, 218, 28, 16, 216, 250, 236, 9, 249, 115, 224, 177,
- 236, 11, 247, 217, 28, 16, 249, 141, 28, 16, 242, 133, 251, 75, 250, 22,
- 28, 16, 242, 133, 245, 15, 250, 22, 28, 16, 42, 253, 166, 28, 16, 213,
- 151, 28, 16, 225, 17, 28, 16, 250, 13, 28, 16, 221, 205, 28, 16, 250, 17,
- 28, 16, 216, 8, 28, 16, 224, 245, 28, 16, 224, 246, 244, 68, 28, 16, 221,
- 206, 244, 68, 28, 16, 216, 9, 223, 61, 28, 16, 225, 166, 218, 67, 26,
- 213, 137, 189, 217, 230, 26, 213, 137, 189, 217, 219, 26, 213, 137, 189,
- 217, 209, 26, 213, 137, 189, 217, 202, 26, 213, 137, 189, 217, 194, 26,
- 213, 137, 189, 217, 188, 26, 213, 137, 189, 217, 187, 26, 213, 137, 189,
- 217, 186, 26, 213, 137, 189, 217, 185, 26, 213, 137, 189, 217, 229, 26,
- 213, 137, 189, 217, 228, 26, 213, 137, 189, 217, 227, 26, 213, 137, 189,
- 217, 226, 26, 213, 137, 189, 217, 225, 26, 213, 137, 189, 217, 224, 26,
- 213, 137, 189, 217, 223, 26, 213, 137, 189, 217, 222, 26, 213, 137, 189,
- 217, 221, 26, 213, 137, 189, 217, 220, 26, 213, 137, 189, 217, 218, 26,
- 213, 137, 189, 217, 217, 26, 213, 137, 189, 217, 216, 26, 213, 137, 189,
- 217, 215, 26, 213, 137, 189, 217, 214, 26, 213, 137, 189, 217, 193, 26,
- 213, 137, 189, 217, 192, 26, 213, 137, 189, 217, 191, 26, 213, 137, 189,
- 217, 190, 26, 213, 137, 189, 217, 189, 26, 235, 221, 189, 217, 230, 26,
- 235, 221, 189, 217, 219, 26, 235, 221, 189, 217, 202, 26, 235, 221, 189,
- 217, 194, 26, 235, 221, 189, 217, 187, 26, 235, 221, 189, 217, 186, 26,
- 235, 221, 189, 217, 228, 26, 235, 221, 189, 217, 227, 26, 235, 221, 189,
- 217, 226, 26, 235, 221, 189, 217, 225, 26, 235, 221, 189, 217, 222, 26,
- 235, 221, 189, 217, 221, 26, 235, 221, 189, 217, 220, 26, 235, 221, 189,
- 217, 215, 26, 235, 221, 189, 217, 214, 26, 235, 221, 189, 217, 213, 26,
- 235, 221, 189, 217, 212, 26, 235, 221, 189, 217, 211, 26, 235, 221, 189,
- 217, 210, 26, 235, 221, 189, 217, 208, 26, 235, 221, 189, 217, 207, 26,
- 235, 221, 189, 217, 206, 26, 235, 221, 189, 217, 205, 26, 235, 221, 189,
- 217, 204, 26, 235, 221, 189, 217, 203, 26, 235, 221, 189, 217, 201, 26,
- 235, 221, 189, 217, 200, 26, 235, 221, 189, 217, 199, 26, 235, 221, 189,
- 217, 198, 26, 235, 221, 189, 217, 197, 26, 235, 221, 189, 217, 196, 26,
- 235, 221, 189, 217, 195, 26, 235, 221, 189, 217, 193, 26, 235, 221, 189,
- 217, 192, 26, 235, 221, 189, 217, 191, 26, 235, 221, 189, 217, 190, 26,
- 235, 221, 189, 217, 189, 38, 26, 28, 215, 209, 38, 26, 28, 216, 224, 38,
- 26, 28, 225, 191, 26, 28, 233, 37, 230, 147, 31, 245, 231, 247, 232, 31,
- 241, 229, 245, 231, 247, 232, 31, 240, 221, 245, 231, 247, 232, 31, 245,
- 230, 241, 230, 247, 232, 31, 245, 230, 240, 220, 247, 232, 31, 245, 231,
- 180, 31, 250, 182, 180, 31, 243, 236, 250, 43, 180, 31, 230, 182, 180,
- 31, 252, 138, 180, 31, 234, 185, 219, 81, 180, 31, 249, 187, 180, 31,
- 253, 241, 180, 31, 226, 167, 180, 31, 251, 161, 226, 134, 180, 31, 248,
- 81, 177, 247, 187, 180, 31, 247, 184, 180, 31, 210, 222, 180, 31, 235,
- 254, 180, 31, 225, 200, 180, 31, 223, 130, 180, 31, 249, 197, 180, 31,
- 241, 67, 252, 192, 180, 31, 212, 59, 180, 31, 244, 47, 180, 31, 254, 255,
- 180, 31, 223, 92, 180, 31, 223, 68, 180, 31, 245, 229, 180, 31, 235, 59,
- 180, 31, 249, 192, 180, 31, 245, 150, 180, 31, 246, 60, 180, 31, 250,
- 153, 180, 31, 248, 90, 180, 31, 23, 223, 67, 180, 31, 226, 85, 180, 31,
- 233, 40, 180, 31, 250, 6, 180, 31, 234, 83, 180, 31, 243, 93, 180, 31,
- 218, 114, 180, 31, 224, 133, 180, 31, 243, 235, 180, 31, 223, 69, 180,
- 31, 233, 77, 177, 230, 162, 180, 31, 223, 65, 180, 31, 242, 175, 216, 43,
- 231, 81, 180, 31, 245, 152, 180, 31, 218, 126, 180, 31, 242, 135, 180,
- 31, 245, 144, 180, 31, 225, 239, 180, 31, 222, 228, 180, 31, 244, 67,
- 180, 31, 214, 8, 177, 212, 44, 180, 31, 249, 201, 180, 31, 231, 94, 180,
- 31, 245, 69, 180, 31, 214, 172, 180, 31, 247, 220, 180, 31, 250, 8, 230,
- 115, 180, 31, 242, 113, 180, 31, 243, 94, 236, 6, 180, 31, 231, 146, 180,
- 31, 255, 19, 180, 31, 245, 165, 180, 31, 246, 117, 180, 31, 212, 42, 180,
- 31, 219, 152, 180, 31, 235, 229, 180, 31, 248, 50, 180, 31, 248, 168,
- 180, 31, 247, 216, 180, 31, 245, 37, 180, 31, 220, 117, 180, 31, 218,
- 130, 180, 31, 242, 9, 180, 31, 249, 220, 180, 31, 250, 3, 180, 31, 244,
- 185, 180, 31, 254, 221, 180, 31, 249, 219, 180, 31, 226, 201, 216, 197,
- 213, 242, 180, 31, 247, 240, 180, 31, 233, 130, 180, 31, 244, 21, 249,
- 157, 222, 204, 214, 174, 21, 111, 249, 157, 222, 204, 214, 174, 21, 105,
- 249, 157, 222, 204, 214, 174, 21, 158, 249, 157, 222, 204, 214, 174, 21,
- 161, 249, 157, 222, 204, 214, 174, 21, 190, 249, 157, 222, 204, 214, 174,
- 21, 195, 249, 157, 222, 204, 214, 174, 21, 199, 249, 157, 222, 204, 214,
- 174, 21, 196, 249, 157, 222, 204, 214, 174, 21, 201, 249, 157, 222, 204,
- 216, 244, 21, 111, 249, 157, 222, 204, 216, 244, 21, 105, 249, 157, 222,
- 204, 216, 244, 21, 158, 249, 157, 222, 204, 216, 244, 21, 161, 249, 157,
- 222, 204, 216, 244, 21, 190, 249, 157, 222, 204, 216, 244, 21, 195, 249,
- 157, 222, 204, 216, 244, 21, 199, 249, 157, 222, 204, 216, 244, 21, 196,
- 249, 157, 222, 204, 216, 244, 21, 201, 11, 23, 6, 61, 11, 23, 6, 253,
- 166, 11, 23, 6, 251, 74, 11, 23, 6, 249, 68, 11, 23, 6, 76, 11, 23, 6,
- 245, 14, 11, 23, 6, 243, 209, 11, 23, 6, 242, 67, 11, 23, 6, 74, 11, 23,
- 6, 235, 150, 11, 23, 6, 235, 29, 11, 23, 6, 156, 11, 23, 6, 194, 11, 23,
- 6, 230, 30, 11, 23, 6, 78, 11, 23, 6, 226, 109, 11, 23, 6, 224, 99, 11,
- 23, 6, 153, 11, 23, 6, 222, 93, 11, 23, 6, 217, 153, 11, 23, 6, 69, 11,
- 23, 6, 214, 105, 11, 23, 6, 212, 98, 11, 23, 6, 211, 178, 11, 23, 6, 211,
- 117, 11, 23, 6, 210, 159, 11, 23, 4, 61, 11, 23, 4, 253, 166, 11, 23, 4,
- 251, 74, 11, 23, 4, 249, 68, 11, 23, 4, 76, 11, 23, 4, 245, 14, 11, 23,
- 4, 243, 209, 11, 23, 4, 242, 67, 11, 23, 4, 74, 11, 23, 4, 235, 150, 11,
- 23, 4, 235, 29, 11, 23, 4, 156, 11, 23, 4, 194, 11, 23, 4, 230, 30, 11,
- 23, 4, 78, 11, 23, 4, 226, 109, 11, 23, 4, 224, 99, 11, 23, 4, 153, 11,
- 23, 4, 222, 93, 11, 23, 4, 217, 153, 11, 23, 4, 69, 11, 23, 4, 214, 105,
- 11, 23, 4, 212, 98, 11, 23, 4, 211, 178, 11, 23, 4, 211, 117, 11, 23, 4,
- 210, 159, 11, 32, 6, 61, 11, 32, 6, 253, 166, 11, 32, 6, 251, 74, 11, 32,
- 6, 249, 68, 11, 32, 6, 76, 11, 32, 6, 245, 14, 11, 32, 6, 243, 209, 11,
- 32, 6, 242, 67, 11, 32, 6, 74, 11, 32, 6, 235, 150, 11, 32, 6, 235, 29,
- 11, 32, 6, 156, 11, 32, 6, 194, 11, 32, 6, 230, 30, 11, 32, 6, 78, 11,
- 32, 6, 226, 109, 11, 32, 6, 224, 99, 11, 32, 6, 153, 11, 32, 6, 222, 93,
- 11, 32, 6, 217, 153, 11, 32, 6, 69, 11, 32, 6, 214, 105, 11, 32, 6, 212,
- 98, 11, 32, 6, 211, 178, 11, 32, 6, 211, 117, 11, 32, 6, 210, 159, 11,
- 32, 4, 61, 11, 32, 4, 253, 166, 11, 32, 4, 251, 74, 11, 32, 4, 249, 68,
- 11, 32, 4, 76, 11, 32, 4, 245, 14, 11, 32, 4, 243, 209, 11, 32, 4, 74,
- 11, 32, 4, 235, 150, 11, 32, 4, 235, 29, 11, 32, 4, 156, 11, 32, 4, 194,
- 11, 32, 4, 230, 30, 11, 32, 4, 78, 11, 32, 4, 226, 109, 11, 32, 4, 224,
- 99, 11, 32, 4, 153, 11, 32, 4, 222, 93, 11, 32, 4, 217, 153, 11, 32, 4,
- 69, 11, 32, 4, 214, 105, 11, 32, 4, 212, 98, 11, 32, 4, 211, 178, 11, 32,
- 4, 211, 117, 11, 32, 4, 210, 159, 11, 23, 32, 6, 61, 11, 23, 32, 6, 253,
- 166, 11, 23, 32, 6, 251, 74, 11, 23, 32, 6, 249, 68, 11, 23, 32, 6, 76,
- 11, 23, 32, 6, 245, 14, 11, 23, 32, 6, 243, 209, 11, 23, 32, 6, 242, 67,
- 11, 23, 32, 6, 74, 11, 23, 32, 6, 235, 150, 11, 23, 32, 6, 235, 29, 11,
- 23, 32, 6, 156, 11, 23, 32, 6, 194, 11, 23, 32, 6, 230, 30, 11, 23, 32,
- 6, 78, 11, 23, 32, 6, 226, 109, 11, 23, 32, 6, 224, 99, 11, 23, 32, 6,
- 153, 11, 23, 32, 6, 222, 93, 11, 23, 32, 6, 217, 153, 11, 23, 32, 6, 69,
- 11, 23, 32, 6, 214, 105, 11, 23, 32, 6, 212, 98, 11, 23, 32, 6, 211, 178,
- 11, 23, 32, 6, 211, 117, 11, 23, 32, 6, 210, 159, 11, 23, 32, 4, 61, 11,
- 23, 32, 4, 253, 166, 11, 23, 32, 4, 251, 74, 11, 23, 32, 4, 249, 68, 11,
- 23, 32, 4, 76, 11, 23, 32, 4, 245, 14, 11, 23, 32, 4, 243, 209, 11, 23,
- 32, 4, 242, 67, 11, 23, 32, 4, 74, 11, 23, 32, 4, 235, 150, 11, 23, 32,
- 4, 235, 29, 11, 23, 32, 4, 156, 11, 23, 32, 4, 194, 11, 23, 32, 4, 230,
- 30, 11, 23, 32, 4, 78, 11, 23, 32, 4, 226, 109, 11, 23, 32, 4, 224, 99,
- 11, 23, 32, 4, 153, 11, 23, 32, 4, 222, 93, 11, 23, 32, 4, 217, 153, 11,
- 23, 32, 4, 69, 11, 23, 32, 4, 214, 105, 11, 23, 32, 4, 212, 98, 11, 23,
- 32, 4, 211, 178, 11, 23, 32, 4, 211, 117, 11, 23, 32, 4, 210, 159, 11,
- 119, 6, 61, 11, 119, 6, 251, 74, 11, 119, 6, 249, 68, 11, 119, 6, 243,
- 209, 11, 119, 6, 235, 150, 11, 119, 6, 235, 29, 11, 119, 6, 230, 30, 11,
- 119, 6, 78, 11, 119, 6, 226, 109, 11, 119, 6, 224, 99, 11, 119, 6, 222,
- 93, 11, 119, 6, 217, 153, 11, 119, 6, 69, 11, 119, 6, 214, 105, 11, 119,
- 6, 212, 98, 11, 119, 6, 211, 178, 11, 119, 6, 211, 117, 11, 119, 6, 210,
- 159, 11, 119, 4, 61, 11, 119, 4, 253, 166, 11, 119, 4, 251, 74, 11, 119,
- 4, 249, 68, 11, 119, 4, 245, 14, 11, 119, 4, 242, 67, 11, 119, 4, 74, 11,
- 119, 4, 235, 150, 11, 119, 4, 235, 29, 11, 119, 4, 156, 11, 119, 4, 194,
- 11, 119, 4, 230, 30, 11, 119, 4, 226, 109, 11, 119, 4, 224, 99, 11, 119,
- 4, 153, 11, 119, 4, 222, 93, 11, 119, 4, 217, 153, 11, 119, 4, 69, 11,
- 119, 4, 214, 105, 11, 119, 4, 212, 98, 11, 119, 4, 211, 178, 11, 119, 4,
- 211, 117, 11, 119, 4, 210, 159, 11, 23, 119, 6, 61, 11, 23, 119, 6, 253,
- 166, 11, 23, 119, 6, 251, 74, 11, 23, 119, 6, 249, 68, 11, 23, 119, 6,
- 76, 11, 23, 119, 6, 245, 14, 11, 23, 119, 6, 243, 209, 11, 23, 119, 6,
- 242, 67, 11, 23, 119, 6, 74, 11, 23, 119, 6, 235, 150, 11, 23, 119, 6,
- 235, 29, 11, 23, 119, 6, 156, 11, 23, 119, 6, 194, 11, 23, 119, 6, 230,
- 30, 11, 23, 119, 6, 78, 11, 23, 119, 6, 226, 109, 11, 23, 119, 6, 224,
- 99, 11, 23, 119, 6, 153, 11, 23, 119, 6, 222, 93, 11, 23, 119, 6, 217,
- 153, 11, 23, 119, 6, 69, 11, 23, 119, 6, 214, 105, 11, 23, 119, 6, 212,
- 98, 11, 23, 119, 6, 211, 178, 11, 23, 119, 6, 211, 117, 11, 23, 119, 6,
- 210, 159, 11, 23, 119, 4, 61, 11, 23, 119, 4, 253, 166, 11, 23, 119, 4,
- 251, 74, 11, 23, 119, 4, 249, 68, 11, 23, 119, 4, 76, 11, 23, 119, 4,
- 245, 14, 11, 23, 119, 4, 243, 209, 11, 23, 119, 4, 242, 67, 11, 23, 119,
- 4, 74, 11, 23, 119, 4, 235, 150, 11, 23, 119, 4, 235, 29, 11, 23, 119, 4,
- 156, 11, 23, 119, 4, 194, 11, 23, 119, 4, 230, 30, 11, 23, 119, 4, 78,
- 11, 23, 119, 4, 226, 109, 11, 23, 119, 4, 224, 99, 11, 23, 119, 4, 153,
- 11, 23, 119, 4, 222, 93, 11, 23, 119, 4, 217, 153, 11, 23, 119, 4, 69,
- 11, 23, 119, 4, 214, 105, 11, 23, 119, 4, 212, 98, 11, 23, 119, 4, 211,
- 178, 11, 23, 119, 4, 211, 117, 11, 23, 119, 4, 210, 159, 11, 133, 6, 61,
- 11, 133, 6, 253, 166, 11, 133, 6, 249, 68, 11, 133, 6, 76, 11, 133, 6,
- 245, 14, 11, 133, 6, 243, 209, 11, 133, 6, 235, 150, 11, 133, 6, 235, 29,
- 11, 133, 6, 156, 11, 133, 6, 194, 11, 133, 6, 230, 30, 11, 133, 6, 78,
- 11, 133, 6, 226, 109, 11, 133, 6, 224, 99, 11, 133, 6, 222, 93, 11, 133,
- 6, 217, 153, 11, 133, 6, 69, 11, 133, 6, 214, 105, 11, 133, 6, 212, 98,
- 11, 133, 6, 211, 178, 11, 133, 6, 211, 117, 11, 133, 4, 61, 11, 133, 4,
- 253, 166, 11, 133, 4, 251, 74, 11, 133, 4, 249, 68, 11, 133, 4, 76, 11,
- 133, 4, 245, 14, 11, 133, 4, 243, 209, 11, 133, 4, 242, 67, 11, 133, 4,
- 74, 11, 133, 4, 235, 150, 11, 133, 4, 235, 29, 11, 133, 4, 156, 11, 133,
- 4, 194, 11, 133, 4, 230, 30, 11, 133, 4, 78, 11, 133, 4, 226, 109, 11,
- 133, 4, 224, 99, 11, 133, 4, 153, 11, 133, 4, 222, 93, 11, 133, 4, 217,
- 153, 11, 133, 4, 69, 11, 133, 4, 214, 105, 11, 133, 4, 212, 98, 11, 133,
- 4, 211, 178, 11, 133, 4, 211, 117, 11, 133, 4, 210, 159, 11, 139, 6, 61,
- 11, 139, 6, 253, 166, 11, 139, 6, 249, 68, 11, 139, 6, 76, 11, 139, 6,
- 245, 14, 11, 139, 6, 243, 209, 11, 139, 6, 74, 11, 139, 6, 235, 150, 11,
- 139, 6, 235, 29, 11, 139, 6, 156, 11, 139, 6, 194, 11, 139, 6, 78, 11,
- 139, 6, 222, 93, 11, 139, 6, 217, 153, 11, 139, 6, 69, 11, 139, 6, 214,
- 105, 11, 139, 6, 212, 98, 11, 139, 6, 211, 178, 11, 139, 6, 211, 117, 11,
- 139, 4, 61, 11, 139, 4, 253, 166, 11, 139, 4, 251, 74, 11, 139, 4, 249,
- 68, 11, 139, 4, 76, 11, 139, 4, 245, 14, 11, 139, 4, 243, 209, 11, 139,
- 4, 242, 67, 11, 139, 4, 74, 11, 139, 4, 235, 150, 11, 139, 4, 235, 29,
- 11, 139, 4, 156, 11, 139, 4, 194, 11, 139, 4, 230, 30, 11, 139, 4, 78,
- 11, 139, 4, 226, 109, 11, 139, 4, 224, 99, 11, 139, 4, 153, 11, 139, 4,
- 222, 93, 11, 139, 4, 217, 153, 11, 139, 4, 69, 11, 139, 4, 214, 105, 11,
- 139, 4, 212, 98, 11, 139, 4, 211, 178, 11, 139, 4, 211, 117, 11, 139, 4,
- 210, 159, 11, 23, 133, 6, 61, 11, 23, 133, 6, 253, 166, 11, 23, 133, 6,
- 251, 74, 11, 23, 133, 6, 249, 68, 11, 23, 133, 6, 76, 11, 23, 133, 6,
- 245, 14, 11, 23, 133, 6, 243, 209, 11, 23, 133, 6, 242, 67, 11, 23, 133,
- 6, 74, 11, 23, 133, 6, 235, 150, 11, 23, 133, 6, 235, 29, 11, 23, 133, 6,
- 156, 11, 23, 133, 6, 194, 11, 23, 133, 6, 230, 30, 11, 23, 133, 6, 78,
- 11, 23, 133, 6, 226, 109, 11, 23, 133, 6, 224, 99, 11, 23, 133, 6, 153,
- 11, 23, 133, 6, 222, 93, 11, 23, 133, 6, 217, 153, 11, 23, 133, 6, 69,
- 11, 23, 133, 6, 214, 105, 11, 23, 133, 6, 212, 98, 11, 23, 133, 6, 211,
- 178, 11, 23, 133, 6, 211, 117, 11, 23, 133, 6, 210, 159, 11, 23, 133, 4,
- 61, 11, 23, 133, 4, 253, 166, 11, 23, 133, 4, 251, 74, 11, 23, 133, 4,
- 249, 68, 11, 23, 133, 4, 76, 11, 23, 133, 4, 245, 14, 11, 23, 133, 4,
- 243, 209, 11, 23, 133, 4, 242, 67, 11, 23, 133, 4, 74, 11, 23, 133, 4,
- 235, 150, 11, 23, 133, 4, 235, 29, 11, 23, 133, 4, 156, 11, 23, 133, 4,
- 194, 11, 23, 133, 4, 230, 30, 11, 23, 133, 4, 78, 11, 23, 133, 4, 226,
- 109, 11, 23, 133, 4, 224, 99, 11, 23, 133, 4, 153, 11, 23, 133, 4, 222,
- 93, 11, 23, 133, 4, 217, 153, 11, 23, 133, 4, 69, 11, 23, 133, 4, 214,
- 105, 11, 23, 133, 4, 212, 98, 11, 23, 133, 4, 211, 178, 11, 23, 133, 4,
- 211, 117, 11, 23, 133, 4, 210, 159, 11, 35, 6, 61, 11, 35, 6, 253, 166,
- 11, 35, 6, 251, 74, 11, 35, 6, 249, 68, 11, 35, 6, 76, 11, 35, 6, 245,
- 14, 11, 35, 6, 243, 209, 11, 35, 6, 242, 67, 11, 35, 6, 74, 11, 35, 6,
- 235, 150, 11, 35, 6, 235, 29, 11, 35, 6, 156, 11, 35, 6, 194, 11, 35, 6,
- 230, 30, 11, 35, 6, 78, 11, 35, 6, 226, 109, 11, 35, 6, 224, 99, 11, 35,
- 6, 153, 11, 35, 6, 222, 93, 11, 35, 6, 217, 153, 11, 35, 6, 69, 11, 35,
- 6, 214, 105, 11, 35, 6, 212, 98, 11, 35, 6, 211, 178, 11, 35, 6, 211,
- 117, 11, 35, 6, 210, 159, 11, 35, 4, 61, 11, 35, 4, 253, 166, 11, 35, 4,
- 251, 74, 11, 35, 4, 249, 68, 11, 35, 4, 76, 11, 35, 4, 245, 14, 11, 35,
- 4, 243, 209, 11, 35, 4, 242, 67, 11, 35, 4, 74, 11, 35, 4, 235, 150, 11,
- 35, 4, 235, 29, 11, 35, 4, 156, 11, 35, 4, 194, 11, 35, 4, 230, 30, 11,
- 35, 4, 78, 11, 35, 4, 226, 109, 11, 35, 4, 224, 99, 11, 35, 4, 153, 11,
- 35, 4, 222, 93, 11, 35, 4, 217, 153, 11, 35, 4, 69, 11, 35, 4, 214, 105,
- 11, 35, 4, 212, 98, 11, 35, 4, 211, 178, 11, 35, 4, 211, 117, 11, 35, 4,
- 210, 159, 11, 35, 23, 6, 61, 11, 35, 23, 6, 253, 166, 11, 35, 23, 6, 251,
- 74, 11, 35, 23, 6, 249, 68, 11, 35, 23, 6, 76, 11, 35, 23, 6, 245, 14,
- 11, 35, 23, 6, 243, 209, 11, 35, 23, 6, 242, 67, 11, 35, 23, 6, 74, 11,
- 35, 23, 6, 235, 150, 11, 35, 23, 6, 235, 29, 11, 35, 23, 6, 156, 11, 35,
- 23, 6, 194, 11, 35, 23, 6, 230, 30, 11, 35, 23, 6, 78, 11, 35, 23, 6,
- 226, 109, 11, 35, 23, 6, 224, 99, 11, 35, 23, 6, 153, 11, 35, 23, 6, 222,
- 93, 11, 35, 23, 6, 217, 153, 11, 35, 23, 6, 69, 11, 35, 23, 6, 214, 105,
- 11, 35, 23, 6, 212, 98, 11, 35, 23, 6, 211, 178, 11, 35, 23, 6, 211, 117,
- 11, 35, 23, 6, 210, 159, 11, 35, 23, 4, 61, 11, 35, 23, 4, 253, 166, 11,
- 35, 23, 4, 251, 74, 11, 35, 23, 4, 249, 68, 11, 35, 23, 4, 76, 11, 35,
- 23, 4, 245, 14, 11, 35, 23, 4, 243, 209, 11, 35, 23, 4, 242, 67, 11, 35,
- 23, 4, 74, 11, 35, 23, 4, 235, 150, 11, 35, 23, 4, 235, 29, 11, 35, 23,
- 4, 156, 11, 35, 23, 4, 194, 11, 35, 23, 4, 230, 30, 11, 35, 23, 4, 78,
- 11, 35, 23, 4, 226, 109, 11, 35, 23, 4, 224, 99, 11, 35, 23, 4, 153, 11,
- 35, 23, 4, 222, 93, 11, 35, 23, 4, 217, 153, 11, 35, 23, 4, 69, 11, 35,
- 23, 4, 214, 105, 11, 35, 23, 4, 212, 98, 11, 35, 23, 4, 211, 178, 11, 35,
- 23, 4, 211, 117, 11, 35, 23, 4, 210, 159, 11, 35, 32, 6, 61, 11, 35, 32,
- 6, 253, 166, 11, 35, 32, 6, 251, 74, 11, 35, 32, 6, 249, 68, 11, 35, 32,
- 6, 76, 11, 35, 32, 6, 245, 14, 11, 35, 32, 6, 243, 209, 11, 35, 32, 6,
- 242, 67, 11, 35, 32, 6, 74, 11, 35, 32, 6, 235, 150, 11, 35, 32, 6, 235,
- 29, 11, 35, 32, 6, 156, 11, 35, 32, 6, 194, 11, 35, 32, 6, 230, 30, 11,
- 35, 32, 6, 78, 11, 35, 32, 6, 226, 109, 11, 35, 32, 6, 224, 99, 11, 35,
- 32, 6, 153, 11, 35, 32, 6, 222, 93, 11, 35, 32, 6, 217, 153, 11, 35, 32,
- 6, 69, 11, 35, 32, 6, 214, 105, 11, 35, 32, 6, 212, 98, 11, 35, 32, 6,
- 211, 178, 11, 35, 32, 6, 211, 117, 11, 35, 32, 6, 210, 159, 11, 35, 32,
- 4, 61, 11, 35, 32, 4, 253, 166, 11, 35, 32, 4, 251, 74, 11, 35, 32, 4,
- 249, 68, 11, 35, 32, 4, 76, 11, 35, 32, 4, 245, 14, 11, 35, 32, 4, 243,
- 209, 11, 35, 32, 4, 242, 67, 11, 35, 32, 4, 74, 11, 35, 32, 4, 235, 150,
- 11, 35, 32, 4, 235, 29, 11, 35, 32, 4, 156, 11, 35, 32, 4, 194, 11, 35,
- 32, 4, 230, 30, 11, 35, 32, 4, 78, 11, 35, 32, 4, 226, 109, 11, 35, 32,
- 4, 224, 99, 11, 35, 32, 4, 153, 11, 35, 32, 4, 222, 93, 11, 35, 32, 4,
- 217, 153, 11, 35, 32, 4, 69, 11, 35, 32, 4, 214, 105, 11, 35, 32, 4, 212,
- 98, 11, 35, 32, 4, 211, 178, 11, 35, 32, 4, 211, 117, 11, 35, 32, 4, 210,
- 159, 11, 35, 23, 32, 6, 61, 11, 35, 23, 32, 6, 253, 166, 11, 35, 23, 32,
- 6, 251, 74, 11, 35, 23, 32, 6, 249, 68, 11, 35, 23, 32, 6, 76, 11, 35,
- 23, 32, 6, 245, 14, 11, 35, 23, 32, 6, 243, 209, 11, 35, 23, 32, 6, 242,
- 67, 11, 35, 23, 32, 6, 74, 11, 35, 23, 32, 6, 235, 150, 11, 35, 23, 32,
- 6, 235, 29, 11, 35, 23, 32, 6, 156, 11, 35, 23, 32, 6, 194, 11, 35, 23,
- 32, 6, 230, 30, 11, 35, 23, 32, 6, 78, 11, 35, 23, 32, 6, 226, 109, 11,
- 35, 23, 32, 6, 224, 99, 11, 35, 23, 32, 6, 153, 11, 35, 23, 32, 6, 222,
- 93, 11, 35, 23, 32, 6, 217, 153, 11, 35, 23, 32, 6, 69, 11, 35, 23, 32,
- 6, 214, 105, 11, 35, 23, 32, 6, 212, 98, 11, 35, 23, 32, 6, 211, 178, 11,
- 35, 23, 32, 6, 211, 117, 11, 35, 23, 32, 6, 210, 159, 11, 35, 23, 32, 4,
- 61, 11, 35, 23, 32, 4, 253, 166, 11, 35, 23, 32, 4, 251, 74, 11, 35, 23,
- 32, 4, 249, 68, 11, 35, 23, 32, 4, 76, 11, 35, 23, 32, 4, 245, 14, 11,
- 35, 23, 32, 4, 243, 209, 11, 35, 23, 32, 4, 242, 67, 11, 35, 23, 32, 4,
- 74, 11, 35, 23, 32, 4, 235, 150, 11, 35, 23, 32, 4, 235, 29, 11, 35, 23,
- 32, 4, 156, 11, 35, 23, 32, 4, 194, 11, 35, 23, 32, 4, 230, 30, 11, 35,
- 23, 32, 4, 78, 11, 35, 23, 32, 4, 226, 109, 11, 35, 23, 32, 4, 224, 99,
- 11, 35, 23, 32, 4, 153, 11, 35, 23, 32, 4, 222, 93, 11, 35, 23, 32, 4,
- 217, 153, 11, 35, 23, 32, 4, 69, 11, 35, 23, 32, 4, 214, 105, 11, 35, 23,
- 32, 4, 212, 98, 11, 35, 23, 32, 4, 211, 178, 11, 35, 23, 32, 4, 211, 117,
- 11, 35, 23, 32, 4, 210, 159, 11, 230, 143, 6, 61, 11, 230, 143, 6, 253,
- 166, 11, 230, 143, 6, 251, 74, 11, 230, 143, 6, 249, 68, 11, 230, 143, 6,
- 76, 11, 230, 143, 6, 245, 14, 11, 230, 143, 6, 243, 209, 11, 230, 143, 6,
- 242, 67, 11, 230, 143, 6, 74, 11, 230, 143, 6, 235, 150, 11, 230, 143, 6,
- 235, 29, 11, 230, 143, 6, 156, 11, 230, 143, 6, 194, 11, 230, 143, 6,
- 230, 30, 11, 230, 143, 6, 78, 11, 230, 143, 6, 226, 109, 11, 230, 143, 6,
- 224, 99, 11, 230, 143, 6, 153, 11, 230, 143, 6, 222, 93, 11, 230, 143, 6,
- 217, 153, 11, 230, 143, 6, 69, 11, 230, 143, 6, 214, 105, 11, 230, 143,
- 6, 212, 98, 11, 230, 143, 6, 211, 178, 11, 230, 143, 6, 211, 117, 11,
- 230, 143, 6, 210, 159, 11, 230, 143, 4, 61, 11, 230, 143, 4, 253, 166,
- 11, 230, 143, 4, 251, 74, 11, 230, 143, 4, 249, 68, 11, 230, 143, 4, 76,
- 11, 230, 143, 4, 245, 14, 11, 230, 143, 4, 243, 209, 11, 230, 143, 4,
- 242, 67, 11, 230, 143, 4, 74, 11, 230, 143, 4, 235, 150, 11, 230, 143, 4,
- 235, 29, 11, 230, 143, 4, 156, 11, 230, 143, 4, 194, 11, 230, 143, 4,
- 230, 30, 11, 230, 143, 4, 78, 11, 230, 143, 4, 226, 109, 11, 230, 143, 4,
- 224, 99, 11, 230, 143, 4, 153, 11, 230, 143, 4, 222, 93, 11, 230, 143, 4,
- 217, 153, 11, 230, 143, 4, 69, 11, 230, 143, 4, 214, 105, 11, 230, 143,
- 4, 212, 98, 11, 230, 143, 4, 211, 178, 11, 230, 143, 4, 211, 117, 11,
- 230, 143, 4, 210, 159, 11, 32, 4, 247, 127, 74, 11, 32, 4, 247, 127, 235,
- 150, 11, 23, 6, 254, 151, 11, 23, 6, 252, 34, 11, 23, 6, 243, 114, 11,
- 23, 6, 248, 62, 11, 23, 6, 245, 108, 11, 23, 6, 210, 85, 11, 23, 6, 245,
- 71, 11, 23, 6, 216, 180, 11, 23, 6, 235, 192, 11, 23, 6, 234, 228, 11,
- 23, 6, 233, 104, 11, 23, 6, 230, 107, 11, 23, 6, 227, 242, 11, 23, 6,
- 211, 157, 11, 23, 6, 226, 203, 11, 23, 6, 225, 111, 11, 23, 6, 223, 40,
- 11, 23, 6, 216, 181, 87, 11, 23, 6, 219, 179, 11, 23, 6, 217, 42, 11, 23,
- 6, 214, 157, 11, 23, 6, 225, 136, 11, 23, 6, 250, 118, 11, 23, 6, 224,
- 164, 11, 23, 6, 226, 205, 11, 23, 229, 226, 11, 23, 4, 254, 151, 11, 23,
- 4, 252, 34, 11, 23, 4, 243, 114, 11, 23, 4, 248, 62, 11, 23, 4, 245, 108,
- 11, 23, 4, 210, 85, 11, 23, 4, 245, 71, 11, 23, 4, 216, 180, 11, 23, 4,
- 235, 192, 11, 23, 4, 234, 228, 11, 23, 4, 233, 104, 11, 23, 4, 230, 107,
- 11, 23, 4, 227, 242, 11, 23, 4, 211, 157, 11, 23, 4, 226, 203, 11, 23, 4,
- 225, 111, 11, 23, 4, 223, 40, 11, 23, 4, 40, 219, 179, 11, 23, 4, 219,
- 179, 11, 23, 4, 217, 42, 11, 23, 4, 214, 157, 11, 23, 4, 225, 136, 11,
- 23, 4, 250, 118, 11, 23, 4, 224, 164, 11, 23, 4, 226, 205, 11, 23, 226,
- 1, 247, 241, 11, 23, 245, 109, 87, 11, 23, 216, 181, 87, 11, 23, 234,
- 229, 87, 11, 23, 225, 137, 87, 11, 23, 223, 41, 87, 11, 23, 225, 112, 87,
- 11, 32, 6, 254, 151, 11, 32, 6, 252, 34, 11, 32, 6, 243, 114, 11, 32, 6,
- 248, 62, 11, 32, 6, 245, 108, 11, 32, 6, 210, 85, 11, 32, 6, 245, 71, 11,
- 32, 6, 216, 180, 11, 32, 6, 235, 192, 11, 32, 6, 234, 228, 11, 32, 6,
- 233, 104, 11, 32, 6, 230, 107, 11, 32, 6, 227, 242, 11, 32, 6, 211, 157,
- 11, 32, 6, 226, 203, 11, 32, 6, 225, 111, 11, 32, 6, 223, 40, 11, 32, 6,
- 216, 181, 87, 11, 32, 6, 219, 179, 11, 32, 6, 217, 42, 11, 32, 6, 214,
- 157, 11, 32, 6, 225, 136, 11, 32, 6, 250, 118, 11, 32, 6, 224, 164, 11,
- 32, 6, 226, 205, 11, 32, 229, 226, 11, 32, 4, 254, 151, 11, 32, 4, 252,
- 34, 11, 32, 4, 243, 114, 11, 32, 4, 248, 62, 11, 32, 4, 245, 108, 11, 32,
- 4, 210, 85, 11, 32, 4, 245, 71, 11, 32, 4, 216, 180, 11, 32, 4, 235, 192,
- 11, 32, 4, 234, 228, 11, 32, 4, 233, 104, 11, 32, 4, 230, 107, 11, 32, 4,
- 227, 242, 11, 32, 4, 211, 157, 11, 32, 4, 226, 203, 11, 32, 4, 225, 111,
- 11, 32, 4, 223, 40, 11, 32, 4, 40, 219, 179, 11, 32, 4, 219, 179, 11, 32,
- 4, 217, 42, 11, 32, 4, 214, 157, 11, 32, 4, 225, 136, 11, 32, 4, 250,
- 118, 11, 32, 4, 224, 164, 11, 32, 4, 226, 205, 11, 32, 226, 1, 247, 241,
- 11, 32, 245, 109, 87, 11, 32, 216, 181, 87, 11, 32, 234, 229, 87, 11, 32,
- 225, 137, 87, 11, 32, 223, 41, 87, 11, 32, 225, 112, 87, 11, 23, 32, 6,
- 254, 151, 11, 23, 32, 6, 252, 34, 11, 23, 32, 6, 243, 114, 11, 23, 32, 6,
- 248, 62, 11, 23, 32, 6, 245, 108, 11, 23, 32, 6, 210, 85, 11, 23, 32, 6,
- 245, 71, 11, 23, 32, 6, 216, 180, 11, 23, 32, 6, 235, 192, 11, 23, 32, 6,
- 234, 228, 11, 23, 32, 6, 233, 104, 11, 23, 32, 6, 230, 107, 11, 23, 32,
- 6, 227, 242, 11, 23, 32, 6, 211, 157, 11, 23, 32, 6, 226, 203, 11, 23,
- 32, 6, 225, 111, 11, 23, 32, 6, 223, 40, 11, 23, 32, 6, 216, 181, 87, 11,
- 23, 32, 6, 219, 179, 11, 23, 32, 6, 217, 42, 11, 23, 32, 6, 214, 157, 11,
- 23, 32, 6, 225, 136, 11, 23, 32, 6, 250, 118, 11, 23, 32, 6, 224, 164,
- 11, 23, 32, 6, 226, 205, 11, 23, 32, 229, 226, 11, 23, 32, 4, 254, 151,
- 11, 23, 32, 4, 252, 34, 11, 23, 32, 4, 243, 114, 11, 23, 32, 4, 248, 62,
- 11, 23, 32, 4, 245, 108, 11, 23, 32, 4, 210, 85, 11, 23, 32, 4, 245, 71,
- 11, 23, 32, 4, 216, 180, 11, 23, 32, 4, 235, 192, 11, 23, 32, 4, 234,
- 228, 11, 23, 32, 4, 233, 104, 11, 23, 32, 4, 230, 107, 11, 23, 32, 4,
- 227, 242, 11, 23, 32, 4, 211, 157, 11, 23, 32, 4, 226, 203, 11, 23, 32,
- 4, 225, 111, 11, 23, 32, 4, 223, 40, 11, 23, 32, 4, 40, 219, 179, 11, 23,
- 32, 4, 219, 179, 11, 23, 32, 4, 217, 42, 11, 23, 32, 4, 214, 157, 11, 23,
- 32, 4, 225, 136, 11, 23, 32, 4, 250, 118, 11, 23, 32, 4, 224, 164, 11,
- 23, 32, 4, 226, 205, 11, 23, 32, 226, 1, 247, 241, 11, 23, 32, 245, 109,
- 87, 11, 23, 32, 216, 181, 87, 11, 23, 32, 234, 229, 87, 11, 23, 32, 225,
- 137, 87, 11, 23, 32, 223, 41, 87, 11, 23, 32, 225, 112, 87, 11, 35, 23,
- 6, 254, 151, 11, 35, 23, 6, 252, 34, 11, 35, 23, 6, 243, 114, 11, 35, 23,
- 6, 248, 62, 11, 35, 23, 6, 245, 108, 11, 35, 23, 6, 210, 85, 11, 35, 23,
- 6, 245, 71, 11, 35, 23, 6, 216, 180, 11, 35, 23, 6, 235, 192, 11, 35, 23,
- 6, 234, 228, 11, 35, 23, 6, 233, 104, 11, 35, 23, 6, 230, 107, 11, 35,
- 23, 6, 227, 242, 11, 35, 23, 6, 211, 157, 11, 35, 23, 6, 226, 203, 11,
- 35, 23, 6, 225, 111, 11, 35, 23, 6, 223, 40, 11, 35, 23, 6, 216, 181, 87,
- 11, 35, 23, 6, 219, 179, 11, 35, 23, 6, 217, 42, 11, 35, 23, 6, 214, 157,
- 11, 35, 23, 6, 225, 136, 11, 35, 23, 6, 250, 118, 11, 35, 23, 6, 224,
- 164, 11, 35, 23, 6, 226, 205, 11, 35, 23, 229, 226, 11, 35, 23, 4, 254,
- 151, 11, 35, 23, 4, 252, 34, 11, 35, 23, 4, 243, 114, 11, 35, 23, 4, 248,
- 62, 11, 35, 23, 4, 245, 108, 11, 35, 23, 4, 210, 85, 11, 35, 23, 4, 245,
- 71, 11, 35, 23, 4, 216, 180, 11, 35, 23, 4, 235, 192, 11, 35, 23, 4, 234,
- 228, 11, 35, 23, 4, 233, 104, 11, 35, 23, 4, 230, 107, 11, 35, 23, 4,
- 227, 242, 11, 35, 23, 4, 211, 157, 11, 35, 23, 4, 226, 203, 11, 35, 23,
- 4, 225, 111, 11, 35, 23, 4, 223, 40, 11, 35, 23, 4, 40, 219, 179, 11, 35,
- 23, 4, 219, 179, 11, 35, 23, 4, 217, 42, 11, 35, 23, 4, 214, 157, 11, 35,
- 23, 4, 225, 136, 11, 35, 23, 4, 250, 118, 11, 35, 23, 4, 224, 164, 11,
- 35, 23, 4, 226, 205, 11, 35, 23, 226, 1, 247, 241, 11, 35, 23, 245, 109,
- 87, 11, 35, 23, 216, 181, 87, 11, 35, 23, 234, 229, 87, 11, 35, 23, 225,
- 137, 87, 11, 35, 23, 223, 41, 87, 11, 35, 23, 225, 112, 87, 11, 35, 23,
- 32, 6, 254, 151, 11, 35, 23, 32, 6, 252, 34, 11, 35, 23, 32, 6, 243, 114,
- 11, 35, 23, 32, 6, 248, 62, 11, 35, 23, 32, 6, 245, 108, 11, 35, 23, 32,
- 6, 210, 85, 11, 35, 23, 32, 6, 245, 71, 11, 35, 23, 32, 6, 216, 180, 11,
- 35, 23, 32, 6, 235, 192, 11, 35, 23, 32, 6, 234, 228, 11, 35, 23, 32, 6,
- 233, 104, 11, 35, 23, 32, 6, 230, 107, 11, 35, 23, 32, 6, 227, 242, 11,
- 35, 23, 32, 6, 211, 157, 11, 35, 23, 32, 6, 226, 203, 11, 35, 23, 32, 6,
- 225, 111, 11, 35, 23, 32, 6, 223, 40, 11, 35, 23, 32, 6, 216, 181, 87,
- 11, 35, 23, 32, 6, 219, 179, 11, 35, 23, 32, 6, 217, 42, 11, 35, 23, 32,
- 6, 214, 157, 11, 35, 23, 32, 6, 225, 136, 11, 35, 23, 32, 6, 250, 118,
- 11, 35, 23, 32, 6, 224, 164, 11, 35, 23, 32, 6, 226, 205, 11, 35, 23, 32,
- 229, 226, 11, 35, 23, 32, 4, 254, 151, 11, 35, 23, 32, 4, 252, 34, 11,
- 35, 23, 32, 4, 243, 114, 11, 35, 23, 32, 4, 248, 62, 11, 35, 23, 32, 4,
- 245, 108, 11, 35, 23, 32, 4, 210, 85, 11, 35, 23, 32, 4, 245, 71, 11, 35,
- 23, 32, 4, 216, 180, 11, 35, 23, 32, 4, 235, 192, 11, 35, 23, 32, 4, 234,
- 228, 11, 35, 23, 32, 4, 233, 104, 11, 35, 23, 32, 4, 230, 107, 11, 35,
- 23, 32, 4, 227, 242, 11, 35, 23, 32, 4, 211, 157, 11, 35, 23, 32, 4, 226,
- 203, 11, 35, 23, 32, 4, 225, 111, 11, 35, 23, 32, 4, 223, 40, 11, 35, 23,
- 32, 4, 40, 219, 179, 11, 35, 23, 32, 4, 219, 179, 11, 35, 23, 32, 4, 217,
- 42, 11, 35, 23, 32, 4, 214, 157, 11, 35, 23, 32, 4, 225, 136, 11, 35, 23,
- 32, 4, 250, 118, 11, 35, 23, 32, 4, 224, 164, 11, 35, 23, 32, 4, 226,
- 205, 11, 35, 23, 32, 226, 1, 247, 241, 11, 35, 23, 32, 245, 109, 87, 11,
- 35, 23, 32, 216, 181, 87, 11, 35, 23, 32, 234, 229, 87, 11, 35, 23, 32,
- 225, 137, 87, 11, 35, 23, 32, 223, 41, 87, 11, 35, 23, 32, 225, 112, 87,
- 11, 23, 6, 247, 235, 11, 23, 4, 247, 235, 11, 23, 21, 210, 86, 11, 23,
- 21, 111, 11, 23, 21, 105, 11, 23, 21, 158, 11, 23, 21, 161, 11, 23, 21,
- 190, 11, 23, 21, 195, 11, 23, 21, 199, 11, 23, 21, 196, 11, 23, 21, 201,
- 11, 139, 21, 210, 86, 11, 139, 21, 111, 11, 139, 21, 105, 11, 139, 21,
- 158, 11, 139, 21, 161, 11, 139, 21, 190, 11, 139, 21, 195, 11, 139, 21,
- 199, 11, 139, 21, 196, 11, 139, 21, 201, 11, 35, 21, 210, 86, 11, 35, 21,
- 111, 11, 35, 21, 105, 11, 35, 21, 158, 11, 35, 21, 161, 11, 35, 21, 190,
- 11, 35, 21, 195, 11, 35, 21, 199, 11, 35, 21, 196, 11, 35, 21, 201, 11,
- 35, 23, 21, 210, 86, 11, 35, 23, 21, 111, 11, 35, 23, 21, 105, 11, 35,
- 23, 21, 158, 11, 35, 23, 21, 161, 11, 35, 23, 21, 190, 11, 35, 23, 21,
- 195, 11, 35, 23, 21, 199, 11, 35, 23, 21, 196, 11, 35, 23, 21, 201, 11,
- 230, 143, 21, 210, 86, 11, 230, 143, 21, 111, 11, 230, 143, 21, 105, 11,
- 230, 143, 21, 158, 11, 230, 143, 21, 161, 11, 230, 143, 21, 190, 11, 230,
- 143, 21, 195, 11, 230, 143, 21, 199, 11, 230, 143, 21, 196, 11, 230, 143,
- 21, 201, 9, 11, 254, 179, 9, 11, 252, 62, 9, 11, 235, 129, 9, 11, 248,
- 203, 9, 11, 212, 30, 9, 11, 210, 108, 9, 11, 242, 44, 9, 11, 217, 81, 9,
- 11, 211, 43, 9, 11, 235, 0, 9, 11, 233, 108, 9, 11, 231, 83, 9, 11, 228,
- 67, 9, 11, 221, 168, 9, 11, 254, 205, 9, 11, 244, 150, 9, 11, 222, 28, 9,
- 11, 224, 84, 9, 11, 223, 98, 9, 11, 220, 61, 9, 11, 217, 8, 9, 11, 216,
- 193, 9, 11, 234, 135, 9, 11, 216, 203, 9, 11, 248, 224, 9, 11, 210, 111,
- 9, 11, 242, 251, 9, 11, 247, 127, 252, 62, 9, 11, 247, 127, 228, 67, 9,
- 11, 247, 127, 244, 150, 9, 11, 247, 127, 224, 84, 9, 11, 65, 252, 62, 9,
- 11, 65, 235, 129, 9, 11, 65, 241, 225, 9, 11, 65, 242, 44, 9, 11, 65,
- 211, 43, 9, 11, 65, 235, 0, 9, 11, 65, 233, 108, 9, 11, 65, 231, 83, 9,
- 11, 65, 228, 67, 9, 11, 65, 221, 168, 9, 11, 65, 254, 205, 9, 11, 65,
- 244, 150, 9, 11, 65, 222, 28, 9, 11, 65, 224, 84, 9, 11, 65, 220, 61, 9,
- 11, 65, 217, 8, 9, 11, 65, 216, 193, 9, 11, 65, 234, 135, 9, 11, 65, 248,
- 224, 9, 11, 65, 242, 251, 9, 11, 217, 77, 235, 129, 9, 11, 217, 77, 242,
- 44, 9, 11, 217, 77, 211, 43, 9, 11, 217, 77, 233, 108, 9, 11, 217, 77,
- 228, 67, 9, 11, 217, 77, 221, 168, 9, 11, 217, 77, 254, 205, 9, 11, 217,
- 77, 222, 28, 9, 11, 217, 77, 224, 84, 9, 11, 217, 77, 220, 61, 9, 11,
- 217, 77, 234, 135, 9, 11, 217, 77, 248, 224, 9, 11, 217, 77, 242, 251, 9,
- 11, 217, 77, 247, 127, 228, 67, 9, 11, 217, 77, 247, 127, 224, 84, 9, 11,
- 218, 112, 252, 62, 9, 11, 218, 112, 235, 129, 9, 11, 218, 112, 241, 225,
- 9, 11, 218, 112, 242, 44, 9, 11, 218, 112, 217, 81, 9, 11, 218, 112, 211,
- 43, 9, 11, 218, 112, 235, 0, 9, 11, 218, 112, 231, 83, 9, 11, 218, 112,
- 228, 67, 9, 11, 218, 112, 221, 168, 9, 11, 218, 112, 254, 205, 9, 11,
- 218, 112, 244, 150, 9, 11, 218, 112, 222, 28, 9, 11, 218, 112, 224, 84,
- 9, 11, 218, 112, 220, 61, 9, 11, 218, 112, 217, 8, 9, 11, 218, 112, 216,
- 193, 9, 11, 218, 112, 234, 135, 9, 11, 218, 112, 248, 224, 9, 11, 218,
- 112, 210, 111, 9, 11, 218, 112, 242, 251, 9, 11, 218, 112, 247, 127, 252,
- 62, 9, 11, 218, 112, 247, 127, 244, 150, 9, 11, 232, 128, 254, 179, 9,
- 11, 232, 128, 252, 62, 9, 11, 232, 128, 235, 129, 9, 11, 232, 128, 248,
- 203, 9, 11, 232, 128, 241, 225, 9, 11, 232, 128, 212, 30, 9, 11, 232,
- 128, 210, 108, 9, 11, 232, 128, 242, 44, 9, 11, 232, 128, 217, 81, 9, 11,
- 232, 128, 211, 43, 9, 11, 232, 128, 233, 108, 9, 11, 232, 128, 231, 83,
- 9, 11, 232, 128, 228, 67, 9, 11, 232, 128, 221, 168, 9, 11, 232, 128,
- 254, 205, 9, 11, 232, 128, 244, 150, 9, 11, 232, 128, 222, 28, 9, 11,
- 232, 128, 224, 84, 9, 11, 232, 128, 223, 98, 9, 11, 232, 128, 220, 61, 9,
- 11, 232, 128, 217, 8, 9, 11, 232, 128, 216, 193, 9, 11, 232, 128, 234,
- 135, 9, 11, 232, 128, 216, 203, 9, 11, 232, 128, 248, 224, 9, 11, 232,
- 128, 210, 111, 9, 11, 232, 128, 242, 251, 9, 11, 139, 252, 62, 9, 11,
- 139, 235, 129, 9, 11, 139, 248, 203, 9, 11, 139, 212, 30, 9, 11, 139,
- 210, 108, 9, 11, 139, 242, 44, 9, 11, 139, 217, 81, 9, 11, 139, 211, 43,
- 9, 11, 139, 233, 108, 9, 11, 139, 231, 83, 9, 11, 139, 228, 67, 9, 11,
- 139, 221, 168, 9, 11, 139, 254, 205, 9, 11, 139, 244, 150, 9, 11, 139,
- 222, 28, 9, 11, 139, 224, 84, 9, 11, 139, 223, 98, 9, 11, 139, 220, 61,
- 9, 11, 139, 217, 8, 9, 11, 139, 216, 193, 9, 11, 139, 234, 135, 9, 11,
- 139, 216, 203, 9, 11, 139, 248, 224, 9, 11, 139, 210, 111, 9, 11, 139,
- 242, 251, 9, 11, 226, 172, 66, 2, 122, 2, 217, 44, 9, 11, 226, 172, 122,
- 2, 248, 203, 231, 210, 86, 245, 228, 211, 239, 231, 210, 86, 219, 30,
- 211, 239, 231, 210, 86, 212, 9, 211, 239, 231, 210, 86, 228, 61, 211,
- 239, 231, 210, 86, 223, 114, 246, 104, 231, 210, 86, 242, 134, 246, 104,
- 231, 210, 86, 71, 246, 104, 231, 210, 86, 123, 64, 250, 149, 231, 210,
- 86, 113, 64, 250, 149, 231, 210, 86, 134, 64, 250, 149, 231, 210, 86,
- 244, 19, 64, 250, 149, 231, 210, 86, 244, 89, 64, 250, 149, 231, 210, 86,
- 219, 127, 64, 250, 149, 231, 210, 86, 220, 124, 64, 250, 149, 231, 210,
- 86, 245, 201, 64, 250, 149, 231, 210, 86, 228, 205, 64, 250, 149, 231,
- 210, 86, 123, 64, 252, 161, 231, 210, 86, 113, 64, 252, 161, 231, 210,
- 86, 134, 64, 252, 161, 231, 210, 86, 244, 19, 64, 252, 161, 231, 210, 86,
- 244, 89, 64, 252, 161, 231, 210, 86, 219, 127, 64, 252, 161, 231, 210,
- 86, 220, 124, 64, 252, 161, 231, 210, 86, 245, 201, 64, 252, 161, 231,
- 210, 86, 228, 205, 64, 252, 161, 231, 210, 86, 123, 64, 250, 42, 231,
- 210, 86, 113, 64, 250, 42, 231, 210, 86, 134, 64, 250, 42, 231, 210, 86,
- 244, 19, 64, 250, 42, 231, 210, 86, 244, 89, 64, 250, 42, 231, 210, 86,
- 219, 127, 64, 250, 42, 231, 210, 86, 220, 124, 64, 250, 42, 231, 210, 86,
- 245, 201, 64, 250, 42, 231, 210, 86, 228, 205, 64, 250, 42, 231, 210, 86,
- 225, 28, 231, 210, 86, 226, 160, 231, 210, 86, 252, 162, 231, 210, 86,
- 250, 78, 231, 210, 86, 218, 241, 231, 210, 86, 218, 40, 231, 210, 86,
- 253, 187, 231, 210, 86, 211, 232, 231, 210, 86, 235, 68, 231, 210, 86,
- 252, 192, 131, 86, 203, 252, 192, 131, 86, 241, 50, 131, 86, 241, 49,
- 131, 86, 241, 48, 131, 86, 241, 47, 131, 86, 241, 46, 131, 86, 241, 45,
- 131, 86, 241, 44, 131, 86, 241, 43, 131, 86, 241, 42, 131, 86, 241, 41,
- 131, 86, 241, 40, 131, 86, 241, 39, 131, 86, 241, 38, 131, 86, 241, 37,
- 131, 86, 241, 36, 131, 86, 241, 35, 131, 86, 241, 34, 131, 86, 241, 33,
- 131, 86, 241, 32, 131, 86, 241, 31, 131, 86, 241, 30, 131, 86, 241, 29,
- 131, 86, 241, 28, 131, 86, 241, 27, 131, 86, 241, 26, 131, 86, 241, 25,
- 131, 86, 241, 24, 131, 86, 241, 23, 131, 86, 241, 22, 131, 86, 241, 21,
- 131, 86, 241, 20, 131, 86, 241, 19, 131, 86, 241, 18, 131, 86, 241, 17,
- 131, 86, 241, 16, 131, 86, 241, 15, 131, 86, 241, 14, 131, 86, 241, 13,
- 131, 86, 241, 12, 131, 86, 241, 11, 131, 86, 241, 10, 131, 86, 241, 9,
- 131, 86, 241, 8, 131, 86, 241, 7, 131, 86, 241, 6, 131, 86, 241, 5, 131,
- 86, 241, 4, 131, 86, 241, 3, 131, 86, 241, 2, 131, 86, 67, 252, 192, 131,
- 86, 213, 238, 131, 86, 213, 237, 131, 86, 213, 236, 131, 86, 213, 235,
- 131, 86, 213, 234, 131, 86, 213, 233, 131, 86, 213, 232, 131, 86, 213,
- 231, 131, 86, 213, 230, 131, 86, 213, 229, 131, 86, 213, 228, 131, 86,
- 213, 227, 131, 86, 213, 226, 131, 86, 213, 225, 131, 86, 213, 224, 131,
- 86, 213, 223, 131, 86, 213, 222, 131, 86, 213, 221, 131, 86, 213, 220,
- 131, 86, 213, 219, 131, 86, 213, 218, 131, 86, 213, 217, 131, 86, 213,
- 216, 131, 86, 213, 215, 131, 86, 213, 214, 131, 86, 213, 213, 131, 86,
- 213, 212, 131, 86, 213, 211, 131, 86, 213, 210, 131, 86, 213, 209, 131,
- 86, 213, 208, 131, 86, 213, 207, 131, 86, 213, 206, 131, 86, 213, 205,
- 131, 86, 213, 204, 131, 86, 213, 203, 131, 86, 213, 202, 131, 86, 213,
- 201, 131, 86, 213, 200, 131, 86, 213, 199, 131, 86, 213, 198, 131, 86,
- 213, 197, 131, 86, 213, 196, 131, 86, 213, 195, 131, 86, 213, 194, 131,
- 86, 213, 193, 131, 86, 213, 192, 131, 86, 213, 191, 131, 86, 213, 190,
- 225, 36, 250, 251, 252, 192, 225, 36, 250, 251, 255, 18, 64, 219, 17,
- 225, 36, 250, 251, 113, 64, 219, 17, 225, 36, 250, 251, 134, 64, 219, 17,
- 225, 36, 250, 251, 244, 19, 64, 219, 17, 225, 36, 250, 251, 244, 89, 64,
- 219, 17, 225, 36, 250, 251, 219, 127, 64, 219, 17, 225, 36, 250, 251,
- 220, 124, 64, 219, 17, 225, 36, 250, 251, 245, 201, 64, 219, 17, 225, 36,
- 250, 251, 228, 205, 64, 219, 17, 225, 36, 250, 251, 216, 249, 64, 219,
- 17, 225, 36, 250, 251, 235, 145, 64, 219, 17, 225, 36, 250, 251, 234, 37,
- 64, 219, 17, 225, 36, 250, 251, 224, 18, 64, 219, 17, 225, 36, 250, 251,
- 234, 85, 64, 219, 17, 225, 36, 250, 251, 255, 18, 64, 241, 232, 225, 36,
- 250, 251, 113, 64, 241, 232, 225, 36, 250, 251, 134, 64, 241, 232, 225,
- 36, 250, 251, 244, 19, 64, 241, 232, 225, 36, 250, 251, 244, 89, 64, 241,
- 232, 225, 36, 250, 251, 219, 127, 64, 241, 232, 225, 36, 250, 251, 220,
- 124, 64, 241, 232, 225, 36, 250, 251, 245, 201, 64, 241, 232, 225, 36,
- 250, 251, 228, 205, 64, 241, 232, 225, 36, 250, 251, 216, 249, 64, 241,
- 232, 225, 36, 250, 251, 235, 145, 64, 241, 232, 225, 36, 250, 251, 234,
- 37, 64, 241, 232, 225, 36, 250, 251, 224, 18, 64, 241, 232, 225, 36, 250,
- 251, 234, 85, 64, 241, 232, 225, 36, 250, 251, 255, 18, 64, 247, 255,
- 225, 36, 250, 251, 113, 64, 247, 255, 225, 36, 250, 251, 134, 64, 247,
- 255, 225, 36, 250, 251, 244, 19, 64, 247, 255, 225, 36, 250, 251, 244,
- 89, 64, 247, 255, 225, 36, 250, 251, 219, 127, 64, 247, 255, 225, 36,
- 250, 251, 220, 124, 64, 247, 255, 225, 36, 250, 251, 245, 201, 64, 247,
- 255, 225, 36, 250, 251, 228, 205, 64, 247, 255, 225, 36, 250, 251, 216,
- 249, 64, 247, 255, 225, 36, 250, 251, 235, 145, 64, 247, 255, 225, 36,
- 250, 251, 234, 37, 64, 247, 255, 225, 36, 250, 251, 224, 18, 64, 247,
- 255, 225, 36, 250, 251, 234, 85, 64, 247, 255, 225, 36, 250, 251, 85,
- 235, 68, 225, 36, 250, 251, 255, 18, 64, 249, 250, 225, 36, 250, 251,
- 113, 64, 249, 250, 225, 36, 250, 251, 134, 64, 249, 250, 225, 36, 250,
- 251, 244, 19, 64, 249, 250, 225, 36, 250, 251, 244, 89, 64, 249, 250,
- 225, 36, 250, 251, 219, 127, 64, 249, 250, 225, 36, 250, 251, 220, 124,
- 64, 249, 250, 225, 36, 250, 251, 245, 201, 64, 249, 250, 225, 36, 250,
- 251, 228, 205, 64, 249, 250, 225, 36, 250, 251, 216, 249, 64, 249, 250,
- 225, 36, 250, 251, 235, 145, 64, 249, 250, 225, 36, 250, 251, 234, 37,
- 64, 249, 250, 225, 36, 250, 251, 224, 18, 64, 249, 250, 225, 36, 250,
- 251, 234, 85, 64, 249, 250, 225, 36, 250, 251, 71, 235, 68, 21, 210, 87,
- 243, 236, 218, 131, 21, 210, 87, 249, 227, 21, 123, 249, 227, 21, 113,
- 249, 227, 21, 134, 249, 227, 21, 244, 19, 249, 227, 21, 244, 89, 249,
- 227, 21, 219, 127, 249, 227, 21, 220, 124, 249, 227, 21, 245, 201, 249,
- 227, 21, 228, 205, 249, 227, 88, 7, 6, 1, 61, 88, 7, 6, 1, 253, 166, 88,
- 7, 6, 1, 251, 74, 88, 7, 6, 1, 249, 68, 88, 7, 6, 1, 76, 88, 7, 6, 1,
- 245, 14, 88, 7, 6, 1, 243, 209, 88, 7, 6, 1, 242, 67, 88, 7, 6, 1, 74,
- 88, 7, 6, 1, 235, 150, 88, 7, 6, 1, 235, 29, 88, 7, 6, 1, 156, 88, 7, 6,
- 1, 194, 88, 7, 6, 1, 230, 30, 88, 7, 6, 1, 78, 88, 7, 6, 1, 226, 109, 88,
- 7, 6, 1, 224, 99, 88, 7, 6, 1, 153, 88, 7, 6, 1, 222, 93, 88, 7, 6, 1,
- 217, 153, 88, 7, 6, 1, 69, 88, 7, 6, 1, 214, 105, 88, 7, 6, 1, 212, 98,
- 88, 7, 6, 1, 211, 178, 88, 7, 6, 1, 211, 117, 88, 7, 6, 1, 210, 159, 216,
- 7, 220, 55, 251, 165, 7, 6, 1, 222, 93, 37, 32, 7, 6, 1, 251, 74, 37, 32,
- 7, 6, 1, 153, 37, 250, 199, 37, 211, 180, 92, 7, 6, 1, 61, 92, 7, 6, 1,
- 253, 166, 92, 7, 6, 1, 251, 74, 92, 7, 6, 1, 249, 68, 92, 7, 6, 1, 76,
- 92, 7, 6, 1, 245, 14, 92, 7, 6, 1, 243, 209, 92, 7, 6, 1, 242, 67, 92, 7,
- 6, 1, 74, 92, 7, 6, 1, 235, 150, 92, 7, 6, 1, 235, 29, 92, 7, 6, 1, 156,
- 92, 7, 6, 1, 194, 92, 7, 6, 1, 230, 30, 92, 7, 6, 1, 78, 92, 7, 6, 1,
- 226, 109, 92, 7, 6, 1, 224, 99, 92, 7, 6, 1, 153, 92, 7, 6, 1, 222, 93,
- 92, 7, 6, 1, 217, 153, 92, 7, 6, 1, 69, 92, 7, 6, 1, 214, 105, 92, 7, 6,
- 1, 212, 98, 92, 7, 6, 1, 211, 178, 92, 7, 6, 1, 211, 117, 92, 7, 6, 1,
- 210, 159, 92, 240, 208, 92, 230, 54, 92, 221, 185, 92, 218, 228, 92, 224,
- 221, 92, 212, 23, 152, 37, 7, 6, 1, 61, 152, 37, 7, 6, 1, 253, 166, 152,
- 37, 7, 6, 1, 251, 74, 152, 37, 7, 6, 1, 249, 68, 152, 37, 7, 6, 1, 76,
- 152, 37, 7, 6, 1, 245, 14, 152, 37, 7, 6, 1, 243, 209, 152, 37, 7, 6, 1,
- 242, 67, 152, 37, 7, 6, 1, 74, 152, 37, 7, 6, 1, 235, 150, 152, 37, 7, 6,
- 1, 235, 29, 152, 37, 7, 6, 1, 156, 152, 37, 7, 6, 1, 194, 152, 37, 7, 6,
- 1, 230, 30, 152, 37, 7, 6, 1, 78, 152, 37, 7, 6, 1, 226, 109, 152, 37, 7,
- 6, 1, 224, 99, 152, 37, 7, 6, 1, 153, 152, 37, 7, 6, 1, 222, 93, 152, 37,
- 7, 6, 1, 217, 153, 152, 37, 7, 6, 1, 69, 152, 37, 7, 6, 1, 214, 105, 152,
- 37, 7, 6, 1, 212, 98, 152, 37, 7, 6, 1, 211, 178, 152, 37, 7, 6, 1, 211,
- 117, 152, 37, 7, 6, 1, 210, 159, 223, 160, 231, 102, 50, 223, 160, 231,
- 99, 50, 152, 92, 7, 6, 1, 61, 152, 92, 7, 6, 1, 253, 166, 152, 92, 7, 6,
- 1, 251, 74, 152, 92, 7, 6, 1, 249, 68, 152, 92, 7, 6, 1, 76, 152, 92, 7,
- 6, 1, 245, 14, 152, 92, 7, 6, 1, 243, 209, 152, 92, 7, 6, 1, 242, 67,
- 152, 92, 7, 6, 1, 74, 152, 92, 7, 6, 1, 235, 150, 152, 92, 7, 6, 1, 235,
- 29, 152, 92, 7, 6, 1, 156, 152, 92, 7, 6, 1, 194, 152, 92, 7, 6, 1, 230,
- 30, 152, 92, 7, 6, 1, 78, 152, 92, 7, 6, 1, 226, 109, 152, 92, 7, 6, 1,
- 224, 99, 152, 92, 7, 6, 1, 153, 152, 92, 7, 6, 1, 222, 93, 152, 92, 7, 6,
- 1, 217, 153, 152, 92, 7, 6, 1, 69, 152, 92, 7, 6, 1, 214, 105, 152, 92,
- 7, 6, 1, 212, 98, 152, 92, 7, 6, 1, 211, 178, 152, 92, 7, 6, 1, 211, 117,
- 152, 92, 7, 6, 1, 210, 159, 249, 136, 152, 92, 7, 6, 1, 226, 109, 152,
- 92, 240, 120, 152, 92, 191, 152, 92, 206, 152, 92, 255, 34, 152, 92, 212,
- 23, 42, 247, 172, 92, 250, 31, 92, 249, 178, 92, 244, 4, 92, 240, 112,
- 92, 229, 91, 92, 229, 84, 92, 226, 218, 92, 219, 37, 92, 120, 2, 245, 39,
- 79, 92, 213, 119, 223, 106, 235, 246, 16, 1, 61, 223, 106, 235, 246, 16,
- 1, 253, 166, 223, 106, 235, 246, 16, 1, 251, 74, 223, 106, 235, 246, 16,
- 1, 249, 68, 223, 106, 235, 246, 16, 1, 76, 223, 106, 235, 246, 16, 1,
- 245, 14, 223, 106, 235, 246, 16, 1, 243, 209, 223, 106, 235, 246, 16, 1,
- 242, 67, 223, 106, 235, 246, 16, 1, 74, 223, 106, 235, 246, 16, 1, 235,
- 150, 223, 106, 235, 246, 16, 1, 235, 29, 223, 106, 235, 246, 16, 1, 156,
- 223, 106, 235, 246, 16, 1, 194, 223, 106, 235, 246, 16, 1, 230, 30, 223,
- 106, 235, 246, 16, 1, 78, 223, 106, 235, 246, 16, 1, 226, 109, 223, 106,
- 235, 246, 16, 1, 224, 99, 223, 106, 235, 246, 16, 1, 153, 223, 106, 235,
- 246, 16, 1, 222, 93, 223, 106, 235, 246, 16, 1, 217, 153, 223, 106, 235,
- 246, 16, 1, 69, 223, 106, 235, 246, 16, 1, 214, 105, 223, 106, 235, 246,
- 16, 1, 212, 98, 223, 106, 235, 246, 16, 1, 211, 178, 223, 106, 235, 246,
- 16, 1, 211, 117, 223, 106, 235, 246, 16, 1, 210, 159, 42, 141, 241, 70,
- 92, 56, 234, 24, 92, 56, 206, 92, 10, 214, 177, 238, 57, 92, 10, 214,
- 177, 238, 61, 92, 10, 214, 177, 238, 69, 92, 56, 248, 98, 92, 10, 214,
- 177, 238, 76, 92, 10, 214, 177, 238, 63, 92, 10, 214, 177, 238, 35, 92,
- 10, 214, 177, 238, 62, 92, 10, 214, 177, 238, 75, 92, 10, 214, 177, 238,
- 49, 92, 10, 214, 177, 238, 42, 92, 10, 214, 177, 238, 51, 92, 10, 214,
- 177, 238, 72, 92, 10, 214, 177, 238, 58, 92, 10, 214, 177, 238, 74, 92,
- 10, 214, 177, 238, 50, 92, 10, 214, 177, 238, 73, 92, 10, 214, 177, 238,
- 36, 92, 10, 214, 177, 238, 41, 92, 10, 214, 177, 238, 34, 92, 10, 214,
- 177, 238, 64, 92, 10, 214, 177, 238, 66, 92, 10, 214, 177, 238, 44, 92,
- 10, 214, 177, 238, 55, 92, 10, 214, 177, 238, 53, 92, 10, 214, 177, 238,
- 79, 92, 10, 214, 177, 238, 78, 92, 10, 214, 177, 238, 32, 92, 10, 214,
- 177, 238, 59, 92, 10, 214, 177, 238, 77, 92, 10, 214, 177, 238, 68, 92,
- 10, 214, 177, 238, 54, 92, 10, 214, 177, 238, 33, 92, 10, 214, 177, 238,
- 56, 92, 10, 214, 177, 238, 38, 92, 10, 214, 177, 238, 37, 92, 10, 214,
- 177, 238, 67, 92, 10, 214, 177, 238, 45, 92, 10, 214, 177, 238, 47, 92,
- 10, 214, 177, 238, 48, 92, 10, 214, 177, 238, 40, 92, 10, 214, 177, 238,
- 71, 92, 10, 214, 177, 238, 65, 216, 7, 220, 55, 251, 165, 10, 214, 177,
- 238, 46, 216, 7, 220, 55, 251, 165, 10, 214, 177, 238, 78, 216, 7, 220,
- 55, 251, 165, 10, 214, 177, 238, 76, 216, 7, 220, 55, 251, 165, 10, 214,
- 177, 238, 60, 216, 7, 220, 55, 251, 165, 10, 214, 177, 238, 43, 216, 7,
- 220, 55, 251, 165, 10, 214, 177, 238, 56, 216, 7, 220, 55, 251, 165, 10,
- 214, 177, 238, 39, 216, 7, 220, 55, 251, 165, 10, 214, 177, 238, 70, 216,
- 7, 220, 55, 251, 165, 10, 214, 177, 238, 52, 37, 154, 254, 254, 37, 154,
- 255, 21, 249, 79, 244, 50, 250, 8, 214, 194, 228, 218, 2, 218, 155, 218,
- 34, 115, 230, 119, 218, 33, 250, 34, 253, 215, 246, 62, 218, 32, 115,
- 251, 126, 223, 161, 251, 148, 253, 215, 228, 217, 212, 41, 212, 35, 213,
- 131, 230, 200, 212, 25, 245, 232, 242, 188, 245, 53, 245, 232, 242, 188,
- 254, 136, 245, 232, 242, 188, 253, 233, 242, 188, 2, 231, 56, 166, 230,
- 134, 87, 212, 27, 249, 145, 230, 134, 87, 244, 100, 224, 25, 230, 134,
- 87, 212, 27, 242, 217, 230, 134, 87, 243, 236, 230, 134, 87, 212, 52,
- 242, 217, 230, 134, 87, 233, 86, 224, 25, 230, 134, 87, 212, 52, 249,
- 145, 230, 134, 87, 249, 145, 230, 133, 166, 230, 134, 2, 244, 198, 244,
- 100, 224, 25, 230, 134, 2, 244, 198, 233, 86, 224, 25, 230, 134, 2, 244,
- 198, 243, 236, 230, 134, 2, 244, 198, 218, 39, 2, 244, 198, 242, 186,
- 218, 158, 220, 1, 218, 158, 250, 124, 221, 170, 245, 47, 215, 236, 248,
- 92, 215, 236, 226, 63, 215, 236, 251, 35, 215, 110, 250, 126, 251, 218,
- 222, 193, 241, 186, 218, 37, 251, 218, 245, 236, 64, 231, 199, 245, 236,
- 64, 223, 34, 241, 211, 244, 19, 233, 60, 249, 254, 231, 175, 233, 59,
- 244, 184, 233, 59, 233, 60, 244, 55, 236, 7, 211, 239, 230, 63, 216, 35,
- 253, 199, 242, 150, 231, 72, 212, 39, 217, 58, 233, 32, 252, 157, 225,
- 65, 223, 114, 254, 62, 242, 134, 254, 62, 225, 220, 225, 221, 250, 127,
- 218, 116, 242, 30, 219, 92, 64, 225, 47, 231, 92, 226, 201, 251, 202,
- 224, 232, 233, 42, 223, 35, 249, 150, 223, 35, 252, 167, 249, 181, 223,
- 34, 249, 103, 22, 223, 34, 218, 143, 251, 175, 219, 16, 251, 159, 244, 3,
- 243, 255, 222, 209, 217, 247, 224, 234, 248, 183, 226, 240, 218, 8, 244,
- 0, 219, 232, 244, 99, 251, 29, 2, 217, 240, 248, 43, 219, 54, 240, 119,
- 249, 149, 220, 72, 240, 118, 240, 119, 249, 149, 246, 116, 249, 180, 250,
- 92, 130, 251, 6, 232, 147, 249, 96, 241, 62, 224, 236, 219, 242, 252, 44,
- 251, 171, 224, 237, 64, 244, 41, 249, 179, 244, 32, 22, 234, 38, 217, 20,
- 211, 230, 242, 20, 222, 14, 251, 185, 22, 249, 110, 211, 237, 242, 191,
- 249, 243, 242, 191, 215, 194, 246, 98, 252, 70, 230, 98, 250, 15, 252,
- 70, 230, 97, 252, 195, 251, 184, 223, 36, 211, 201, 224, 198, 251, 243,
- 251, 28, 235, 144, 250, 85, 215, 236, 244, 170, 250, 84, 244, 102, 244,
- 103, 219, 14, 252, 166, 225, 254, 224, 247, 249, 212, 252, 167, 217, 60,
- 215, 236, 249, 136, 244, 75, 225, 66, 248, 89, 235, 137, 247, 139, 250,
- 240, 218, 115, 211, 240, 250, 106, 230, 134, 213, 164, 250, 170, 221,
- 201, 221, 226, 242, 155, 251, 3, 250, 241, 240, 252, 244, 138, 212, 0,
- 222, 202, 249, 244, 244, 94, 225, 5, 22, 244, 98, 230, 232, 230, 113,
- 251, 18, 250, 47, 241, 239, 253, 249, 226, 66, 216, 15, 242, 2, 250, 37,
- 216, 243, 216, 114, 250, 28, 251, 210, 225, 180, 253, 248, 213, 172, 243,
- 117, 247, 205, 241, 163, 219, 86, 231, 239, 251, 253, 243, 118, 247, 248,
- 251, 174, 244, 60, 225, 36, 250, 249, 28, 228, 52, 230, 90, 28, 228, 47,
- 221, 214, 242, 106, 28, 234, 143, 215, 191, 213, 154, 28, 221, 194, 222,
- 126, 220, 13, 2, 221, 229, 216, 245, 223, 181, 22, 252, 167, 219, 107,
- 22, 219, 107, 251, 195, 252, 131, 22, 241, 56, 250, 128, 244, 81, 219,
- 65, 222, 127, 218, 13, 215, 195, 240, 253, 223, 182, 254, 137, 244, 39,
- 222, 138, 244, 39, 217, 242, 240, 242, 251, 127, 240, 242, 2, 243, 101,
- 226, 233, 251, 127, 235, 137, 224, 242, 226, 232, 245, 52, 224, 242, 226,
- 232, 240, 251, 252, 153, 253, 189, 216, 253, 231, 239, 240, 247, 232,
- 117, 240, 247, 249, 184, 218, 127, 221, 200, 248, 51, 218, 127, 244, 188,
- 235, 155, 233, 95, 235, 137, 250, 234, 245, 52, 250, 234, 223, 144, 230,
- 117, 226, 118, 212, 41, 251, 131, 249, 153, 216, 107, 233, 24, 223, 183,
- 250, 232, 246, 104, 249, 143, 212, 3, 219, 72, 219, 70, 240, 252, 223,
- 156, 242, 177, 220, 59, 230, 150, 222, 196, 250, 116, 247, 144, 225, 76,
- 251, 211, 245, 177, 226, 242, 218, 254, 220, 54, 251, 130, 254, 100, 241,
- 61, 233, 127, 252, 68, 244, 98, 215, 194, 244, 98, 251, 217, 215, 91,
- 242, 0, 250, 117, 252, 195, 250, 117, 243, 250, 252, 195, 250, 117, 251,
- 245, 225, 198, 234, 32, 224, 251, 246, 95, 251, 19, 252, 185, 251, 19,
- 247, 138, 230, 118, 244, 198, 249, 154, 244, 198, 216, 108, 244, 198,
- 223, 184, 244, 198, 250, 233, 244, 198, 246, 105, 244, 198, 218, 243,
- 212, 3, 240, 253, 244, 198, 230, 151, 244, 198, 247, 145, 244, 198, 225,
- 77, 244, 198, 243, 253, 244, 198, 242, 27, 244, 198, 211, 224, 244, 198,
- 252, 79, 244, 198, 226, 49, 244, 198, 225, 77, 228, 58, 225, 236, 224,
- 189, 245, 21, 245, 235, 228, 58, 230, 115, 216, 20, 71, 120, 225, 10,
- 252, 190, 235, 249, 71, 124, 225, 10, 252, 190, 235, 249, 71, 43, 225,
- 10, 252, 190, 235, 249, 71, 44, 225, 10, 252, 190, 235, 249, 244, 92,
- 242, 23, 50, 212, 33, 242, 23, 50, 226, 219, 242, 23, 50, 216, 136, 120,
- 50, 216, 136, 124, 50, 250, 27, 242, 18, 50, 204, 242, 18, 50, 249, 131,
- 211, 220, 242, 2, 245, 22, 229, 109, 217, 152, 235, 131, 246, 100, 234,
- 88, 251, 255, 211, 220, 250, 1, 224, 130, 242, 21, 224, 233, 231, 182,
- 220, 6, 253, 211, 220, 6, 241, 171, 220, 6, 211, 220, 221, 242, 211, 220,
- 251, 194, 244, 37, 251, 98, 236, 7, 219, 171, 251, 97, 236, 7, 219, 171,
- 251, 170, 242, 201, 231, 190, 211, 221, 244, 182, 231, 191, 22, 211, 222,
- 241, 67, 242, 17, 113, 231, 64, 241, 67, 242, 17, 113, 211, 219, 241, 67,
- 242, 17, 225, 2, 226, 231, 211, 222, 2, 251, 114, 245, 233, 251, 149, 2,
- 213, 246, 225, 171, 2, 251, 220, 242, 41, 231, 191, 2, 242, 117, 225,
- 112, 231, 179, 231, 191, 2, 215, 98, 226, 212, 231, 190, 226, 212, 211,
- 221, 252, 194, 249, 198, 211, 205, 224, 192, 235, 137, 226, 227, 235,
- 137, 242, 176, 242, 229, 252, 195, 254, 121, 245, 26, 254, 169, 254, 170,
- 230, 141, 236, 12, 219, 102, 235, 239, 248, 42, 225, 170, 242, 112, 248,
- 187, 232, 207, 229, 216, 225, 1, 244, 199, 231, 147, 242, 40, 252, 146,
- 225, 4, 217, 172, 225, 69, 234, 70, 79, 232, 117, 233, 16, 222, 236, 243,
- 61, 218, 133, 234, 69, 251, 179, 249, 156, 2, 241, 234, 212, 19, 252, 77,
- 241, 234, 251, 143, 241, 234, 113, 241, 232, 219, 12, 241, 234, 242, 127,
- 241, 234, 241, 235, 2, 75, 251, 216, 241, 234, 242, 134, 241, 234, 211,
- 42, 241, 234, 224, 131, 241, 234, 241, 235, 2, 223, 36, 223, 47, 241,
- 232, 241, 235, 248, 89, 248, 1, 220, 84, 2, 116, 59, 235, 222, 245, 180,
- 193, 251, 124, 254, 120, 87, 251, 203, 219, 94, 87, 249, 236, 87, 218,
- 248, 217, 249, 87, 246, 93, 248, 165, 87, 225, 70, 64, 224, 252, 244, 69,
- 252, 11, 247, 173, 87, 219, 5, 252, 166, 216, 150, 252, 166, 71, 244, 59,
- 240, 218, 225, 8, 87, 230, 154, 252, 180, 249, 106, 245, 40, 114, 247,
- 140, 50, 249, 147, 250, 250, 252, 152, 2, 211, 40, 50, 252, 152, 2, 247,
- 140, 50, 252, 152, 2, 245, 55, 50, 252, 152, 2, 224, 231, 50, 230, 154,
- 2, 211, 235, 250, 146, 2, 214, 153, 215, 232, 22, 211, 40, 50, 221, 180,
- 225, 169, 249, 216, 251, 147, 230, 191, 244, 64, 247, 193, 226, 165, 247,
- 198, 246, 57, 244, 115, 244, 48, 204, 244, 115, 244, 48, 226, 80, 2, 249,
- 108, 226, 80, 244, 191, 214, 163, 251, 24, 217, 19, 251, 24, 250, 251,
- 235, 249, 250, 146, 2, 214, 153, 215, 231, 250, 146, 2, 246, 112, 215,
- 231, 252, 149, 250, 145, 250, 14, 224, 126, 222, 187, 224, 126, 226, 23,
- 218, 123, 222, 133, 215, 223, 222, 133, 251, 199, 217, 92, 233, 57, 228,
- 50, 228, 51, 2, 248, 88, 249, 155, 250, 8, 251, 200, 204, 251, 200, 242,
- 134, 251, 200, 251, 216, 251, 200, 226, 161, 251, 200, 251, 197, 229,
- 210, 252, 183, 221, 188, 231, 65, 217, 2, 223, 126, 226, 78, 244, 167,
- 231, 239, 221, 225, 254, 97, 224, 148, 255, 5, 232, 119, 250, 135, 231,
- 77, 226, 133, 215, 239, 236, 3, 215, 239, 226, 86, 246, 32, 87, 236, 0,
- 245, 127, 245, 128, 2, 246, 112, 80, 48, 250, 8, 231, 205, 2, 232, 113,
- 244, 81, 250, 8, 231, 205, 2, 223, 160, 244, 81, 204, 231, 205, 2, 223,
- 160, 244, 81, 204, 231, 205, 2, 232, 113, 244, 81, 224, 239, 224, 240,
- 240, 255, 229, 89, 230, 164, 225, 120, 230, 164, 225, 121, 2, 97, 80,
- 253, 215, 233, 52, 213, 175, 230, 163, 230, 164, 225, 121, 226, 234, 228,
- 80, 230, 164, 225, 119, 254, 98, 2, 252, 137, 251, 18, 213, 172, 251, 18,
- 216, 255, 223, 176, 213, 171, 215, 60, 97, 253, 255, 250, 10, 97, 22,
- 140, 204, 250, 44, 253, 255, 250, 10, 97, 22, 140, 204, 250, 44, 254, 0,
- 2, 37, 123, 226, 124, 250, 10, 246, 112, 22, 214, 153, 204, 250, 44, 253,
- 255, 254, 96, 246, 112, 22, 214, 153, 204, 250, 44, 253, 255, 121, 251,
- 146, 87, 125, 251, 146, 87, 219, 9, 2, 251, 12, 91, 219, 8, 219, 9, 2,
- 123, 219, 33, 212, 35, 219, 9, 2, 134, 219, 33, 212, 34, 252, 123, 245,
- 180, 225, 30, 233, 48, 231, 216, 242, 191, 222, 250, 231, 216, 242, 191,
- 232, 158, 2, 235, 232, 225, 202, 250, 8, 232, 158, 2, 234, 144, 234, 144,
- 232, 157, 204, 232, 157, 252, 52, 252, 53, 2, 251, 12, 91, 251, 198, 232,
- 210, 87, 223, 177, 251, 94, 252, 193, 2, 140, 80, 48, 245, 151, 2, 140,
- 80, 48, 226, 201, 2, 245, 39, 164, 2, 43, 44, 80, 48, 219, 41, 2, 97, 80,
- 48, 216, 15, 2, 214, 153, 80, 48, 228, 80, 123, 214, 184, 245, 199, 87,
- 234, 142, 216, 248, 235, 226, 16, 31, 7, 6, 233, 15, 235, 226, 16, 31, 7,
- 4, 233, 15, 235, 226, 16, 31, 227, 203, 235, 226, 16, 31, 217, 184, 235,
- 226, 16, 31, 7, 233, 15, 244, 104, 245, 180, 216, 10, 211, 199, 242, 28,
- 227, 186, 22, 251, 205, 241, 73, 225, 53, 230, 231, 217, 0, 249, 122,
- 252, 167, 219, 127, 225, 12, 218, 159, 2, 230, 229, 247, 128, 235, 137,
- 16, 31, 252, 65, 215, 221, 245, 164, 85, 42, 251, 94, 71, 42, 251, 94,
- 233, 91, 223, 114, 250, 43, 233, 91, 251, 216, 250, 43, 233, 91, 226,
- 161, 248, 0, 233, 91, 251, 216, 248, 0, 4, 226, 161, 248, 0, 4, 251, 216,
- 248, 0, 214, 162, 223, 114, 215, 226, 246, 113, 223, 114, 215, 226, 214,
- 162, 4, 223, 114, 215, 226, 246, 113, 4, 223, 114, 215, 226, 37, 249,
- 139, 224, 255, 249, 139, 225, 0, 2, 242, 33, 51, 249, 139, 224, 255, 228,
- 54, 43, 220, 155, 2, 134, 247, 126, 250, 12, 244, 199, 123, 226, 246,
- 250, 12, 244, 199, 113, 226, 246, 250, 12, 244, 199, 134, 226, 246, 250,
- 12, 244, 199, 244, 19, 226, 246, 250, 12, 244, 199, 244, 89, 226, 246,
- 250, 12, 244, 199, 219, 127, 226, 246, 250, 12, 244, 199, 220, 124, 226,
- 246, 250, 12, 244, 199, 245, 201, 226, 246, 250, 12, 244, 199, 228, 205,
- 226, 246, 250, 12, 244, 199, 216, 249, 226, 246, 250, 12, 244, 199, 245,
- 176, 226, 246, 250, 12, 244, 199, 215, 77, 226, 246, 250, 12, 244, 199,
- 226, 196, 250, 12, 244, 199, 215, 56, 250, 12, 244, 199, 216, 141, 250,
- 12, 244, 199, 244, 15, 250, 12, 244, 199, 244, 87, 250, 12, 244, 199,
- 219, 123, 250, 12, 244, 199, 220, 123, 250, 12, 244, 199, 245, 200, 250,
- 12, 244, 199, 228, 204, 250, 12, 244, 199, 216, 247, 250, 12, 244, 199,
- 245, 174, 250, 12, 244, 199, 215, 75, 230, 122, 243, 237, 216, 37, 216,
- 3, 218, 150, 64, 232, 245, 219, 172, 64, 235, 138, 230, 111, 242, 131,
- 244, 198, 242, 131, 244, 199, 2, 219, 76, 245, 21, 244, 199, 2, 217, 15,
- 64, 235, 59, 219, 76, 244, 199, 2, 204, 230, 115, 219, 76, 244, 199, 2,
- 204, 230, 116, 22, 219, 76, 245, 21, 219, 76, 244, 199, 2, 204, 230, 116,
- 22, 249, 238, 217, 248, 219, 76, 244, 199, 2, 204, 230, 116, 22, 216,
- 105, 245, 21, 219, 76, 244, 199, 2, 242, 32, 219, 76, 244, 199, 2, 240,
- 254, 211, 233, 244, 198, 219, 76, 244, 199, 2, 219, 76, 245, 21, 244,
- 199, 221, 219, 248, 70, 244, 41, 223, 91, 244, 198, 219, 76, 244, 199, 2,
- 241, 233, 245, 21, 219, 76, 244, 199, 2, 218, 35, 219, 75, 244, 198, 229,
- 92, 244, 198, 245, 31, 244, 198, 214, 188, 244, 198, 244, 199, 2, 249,
- 238, 217, 248, 225, 195, 244, 198, 249, 209, 244, 198, 249, 210, 244,
- 198, 234, 68, 244, 198, 244, 199, 216, 138, 116, 234, 69, 234, 68, 244,
- 199, 2, 219, 76, 245, 21, 234, 68, 244, 199, 2, 250, 8, 245, 21, 244,
- 199, 2, 218, 89, 216, 20, 244, 199, 2, 218, 89, 216, 21, 22, 211, 233,
- 245, 23, 244, 199, 2, 218, 89, 216, 21, 22, 216, 105, 245, 21, 247, 200,
- 244, 198, 211, 204, 244, 198, 254, 116, 244, 198, 224, 230, 244, 198,
- 249, 124, 244, 198, 225, 173, 244, 198, 244, 199, 2, 232, 132, 64, 215,
- 205, 247, 200, 251, 96, 223, 91, 244, 198, 243, 247, 244, 199, 2, 204,
- 230, 115, 254, 114, 244, 198, 244, 160, 244, 198, 212, 20, 244, 198, 219,
- 93, 244, 198, 216, 72, 244, 198, 242, 132, 244, 198, 232, 120, 249, 124,
- 244, 198, 244, 199, 2, 204, 230, 115, 240, 210, 244, 198, 244, 199, 2,
- 204, 230, 116, 22, 249, 238, 217, 248, 244, 199, 221, 192, 236, 7, 244,
- 161, 253, 221, 244, 198, 244, 57, 244, 198, 219, 94, 244, 198, 247, 173,
- 244, 198, 244, 199, 211, 230, 230, 115, 244, 199, 2, 231, 89, 231, 149,
- 242, 131, 250, 233, 244, 199, 2, 219, 76, 245, 21, 250, 233, 244, 199, 2,
- 217, 15, 64, 235, 59, 219, 76, 250, 233, 244, 199, 2, 204, 230, 115, 219,
- 76, 250, 233, 244, 199, 2, 241, 233, 245, 21, 250, 233, 244, 199, 2, 211,
- 196, 219, 77, 234, 68, 250, 233, 244, 199, 2, 250, 8, 245, 21, 224, 230,
- 250, 233, 244, 198, 249, 124, 250, 233, 244, 198, 212, 20, 250, 233, 244,
- 198, 244, 199, 2, 228, 80, 242, 170, 243, 41, 244, 199, 2, 226, 219, 243,
- 41, 225, 171, 251, 176, 248, 83, 221, 171, 230, 150, 241, 236, 230, 150,
- 219, 10, 230, 150, 242, 12, 225, 171, 223, 159, 123, 242, 22, 225, 171,
- 223, 159, 251, 186, 242, 18, 236, 7, 250, 187, 225, 171, 243, 246, 225,
- 171, 2, 224, 230, 244, 198, 225, 171, 2, 244, 49, 242, 17, 222, 205, 241,
- 221, 218, 145, 232, 155, 223, 165, 250, 252, 241, 169, 215, 249, 241,
- 169, 215, 250, 2, 251, 122, 228, 58, 215, 249, 231, 37, 193, 223, 166,
- 218, 151, 215, 247, 215, 248, 250, 252, 251, 100, 226, 198, 251, 100,
- 215, 202, 251, 101, 218, 131, 230, 192, 254, 138, 244, 105, 245, 145,
- 225, 2, 250, 252, 226, 198, 225, 2, 250, 252, 217, 33, 226, 198, 217, 33,
- 253, 188, 226, 198, 253, 188, 223, 121, 213, 247, 248, 66, 215, 193, 253,
- 250, 232, 123, 215, 255, 230, 144, 230, 121, 223, 164, 218, 7, 223, 164,
- 230, 121, 251, 36, 254, 238, 215, 246, 220, 18, 222, 184, 219, 3, 203,
- 215, 253, 232, 236, 67, 215, 253, 232, 236, 249, 198, 50, 225, 2, 250,
- 237, 223, 47, 232, 236, 215, 223, 244, 82, 226, 201, 224, 241, 247, 131,
- 228, 80, 245, 133, 50, 219, 74, 87, 228, 80, 219, 74, 87, 224, 125, 232,
- 199, 236, 7, 235, 163, 225, 44, 87, 247, 154, 228, 57, 232, 199, 87, 224,
- 235, 212, 41, 87, 228, 71, 212, 41, 87, 252, 10, 228, 80, 252, 9, 252, 8,
- 230, 121, 252, 8, 225, 216, 228, 80, 225, 215, 250, 108, 249, 132, 231,
- 61, 87, 211, 218, 87, 223, 62, 252, 195, 87, 216, 38, 212, 41, 250, 5,
- 219, 236, 252, 126, 252, 124, 225, 246, 249, 185, 249, 94, 252, 177, 250,
- 30, 43, 232, 95, 108, 16, 31, 224, 6, 108, 16, 31, 254, 201, 108, 16, 31,
- 244, 104, 108, 16, 31, 245, 231, 108, 16, 31, 212, 40, 108, 16, 31, 254,
- 51, 108, 16, 31, 254, 52, 223, 108, 108, 16, 31, 254, 52, 223, 107, 108,
- 16, 31, 254, 52, 213, 143, 108, 16, 31, 254, 52, 213, 142, 108, 16, 31,
- 213, 157, 108, 16, 31, 213, 156, 108, 16, 31, 213, 155, 108, 16, 31, 218,
- 45, 108, 16, 31, 225, 128, 218, 45, 108, 16, 31, 85, 218, 45, 108, 16,
- 31, 231, 60, 218, 72, 108, 16, 31, 231, 60, 218, 71, 108, 16, 31, 231,
- 60, 218, 70, 108, 16, 31, 250, 46, 108, 16, 31, 222, 3, 108, 16, 31, 228,
- 193, 108, 16, 31, 213, 141, 108, 16, 31, 213, 140, 108, 16, 31, 222, 206,
- 222, 3, 108, 16, 31, 222, 206, 222, 2, 108, 16, 31, 242, 173, 108, 16,
- 31, 219, 168, 108, 16, 31, 235, 184, 226, 157, 108, 16, 31, 235, 184,
- 226, 156, 108, 16, 31, 249, 142, 64, 235, 183, 108, 16, 31, 223, 104, 64,
- 235, 183, 108, 16, 31, 249, 176, 226, 157, 108, 16, 31, 235, 182, 226,
- 157, 108, 16, 31, 218, 73, 64, 249, 175, 108, 16, 31, 249, 142, 64, 249,
- 175, 108, 16, 31, 249, 142, 64, 249, 174, 108, 16, 31, 249, 176, 254, 91,
- 108, 16, 31, 222, 4, 64, 249, 176, 254, 91, 108, 16, 31, 218, 73, 64,
- 222, 4, 64, 249, 175, 108, 16, 31, 213, 243, 108, 16, 31, 216, 85, 226,
- 157, 108, 16, 31, 233, 63, 226, 157, 108, 16, 31, 254, 90, 226, 157, 108,
- 16, 31, 218, 73, 64, 254, 89, 108, 16, 31, 222, 4, 64, 254, 89, 108, 16,
- 31, 218, 73, 64, 222, 4, 64, 254, 89, 108, 16, 31, 213, 158, 64, 254, 89,
- 108, 16, 31, 223, 104, 64, 254, 89, 108, 16, 31, 223, 104, 64, 254, 88,
- 108, 16, 31, 223, 103, 108, 16, 31, 223, 102, 108, 16, 31, 223, 101, 108,
- 16, 31, 223, 100, 108, 16, 31, 254, 166, 108, 16, 31, 254, 165, 108, 16,
- 31, 231, 168, 108, 16, 31, 222, 9, 108, 16, 31, 253, 254, 108, 16, 31,
- 223, 128, 108, 16, 31, 223, 127, 108, 16, 31, 253, 191, 108, 16, 31, 251,
- 237, 226, 157, 108, 16, 31, 217, 50, 108, 16, 31, 217, 49, 108, 16, 31,
- 224, 11, 232, 228, 108, 16, 31, 251, 191, 108, 16, 31, 251, 190, 108, 16,
- 31, 251, 189, 108, 16, 31, 254, 146, 108, 16, 31, 226, 222, 108, 16, 31,
- 218, 250, 108, 16, 31, 216, 83, 108, 16, 31, 242, 103, 108, 16, 31, 212,
- 28, 108, 16, 31, 224, 229, 108, 16, 31, 251, 22, 108, 16, 31, 215, 86,
- 108, 16, 31, 250, 254, 230, 127, 108, 16, 31, 221, 204, 64, 235, 61, 108,
- 16, 31, 251, 33, 108, 16, 31, 215, 220, 108, 16, 31, 218, 156, 215, 220,
- 108, 16, 31, 232, 154, 108, 16, 31, 219, 58, 108, 16, 31, 214, 142, 108,
- 16, 31, 240, 253, 246, 72, 108, 16, 31, 253, 235, 108, 16, 31, 224, 237,
- 253, 235, 108, 16, 31, 251, 150, 108, 16, 31, 224, 228, 251, 150, 108,
- 16, 31, 254, 143, 108, 16, 31, 218, 119, 218, 27, 218, 118, 108, 16, 31,
- 218, 119, 218, 27, 218, 117, 108, 16, 31, 218, 69, 108, 16, 31, 224, 203,
- 108, 16, 31, 247, 189, 108, 16, 31, 247, 191, 108, 16, 31, 247, 190, 108,
- 16, 31, 224, 134, 108, 16, 31, 224, 123, 108, 16, 31, 249, 130, 108, 16,
- 31, 249, 129, 108, 16, 31, 249, 128, 108, 16, 31, 249, 127, 108, 16, 31,
- 249, 126, 108, 16, 31, 254, 178, 108, 16, 31, 252, 127, 64, 231, 154,
- 108, 16, 31, 252, 127, 64, 214, 17, 108, 16, 31, 223, 60, 108, 16, 31,
- 240, 245, 108, 16, 31, 228, 217, 108, 16, 31, 248, 153, 108, 16, 31, 230,
- 139, 108, 16, 31, 163, 246, 102, 108, 16, 31, 163, 226, 136, 10, 14, 240,
- 109, 10, 14, 240, 108, 10, 14, 240, 107, 10, 14, 240, 106, 10, 14, 240,
- 105, 10, 14, 240, 104, 10, 14, 240, 103, 10, 14, 240, 102, 10, 14, 240,
- 101, 10, 14, 240, 100, 10, 14, 240, 99, 10, 14, 240, 98, 10, 14, 240, 97,
- 10, 14, 240, 96, 10, 14, 240, 95, 10, 14, 240, 94, 10, 14, 240, 93, 10,
- 14, 240, 92, 10, 14, 240, 91, 10, 14, 240, 90, 10, 14, 240, 89, 10, 14,
- 240, 88, 10, 14, 240, 87, 10, 14, 240, 86, 10, 14, 240, 85, 10, 14, 240,
- 84, 10, 14, 240, 83, 10, 14, 240, 82, 10, 14, 240, 81, 10, 14, 240, 80,
- 10, 14, 240, 79, 10, 14, 240, 78, 10, 14, 240, 77, 10, 14, 240, 76, 10,
- 14, 240, 75, 10, 14, 240, 74, 10, 14, 240, 73, 10, 14, 240, 72, 10, 14,
- 240, 71, 10, 14, 240, 70, 10, 14, 240, 69, 10, 14, 240, 68, 10, 14, 240,
- 67, 10, 14, 240, 66, 10, 14, 240, 65, 10, 14, 240, 64, 10, 14, 240, 63,
- 10, 14, 240, 62, 10, 14, 240, 61, 10, 14, 240, 60, 10, 14, 240, 59, 10,
- 14, 240, 58, 10, 14, 240, 57, 10, 14, 240, 56, 10, 14, 240, 55, 10, 14,
- 240, 54, 10, 14, 240, 53, 10, 14, 240, 52, 10, 14, 240, 51, 10, 14, 240,
- 50, 10, 14, 240, 49, 10, 14, 240, 48, 10, 14, 240, 47, 10, 14, 240, 46,
- 10, 14, 240, 45, 10, 14, 240, 44, 10, 14, 240, 43, 10, 14, 240, 42, 10,
- 14, 240, 41, 10, 14, 240, 40, 10, 14, 240, 39, 10, 14, 240, 38, 10, 14,
- 240, 37, 10, 14, 240, 36, 10, 14, 240, 35, 10, 14, 240, 34, 10, 14, 240,
- 33, 10, 14, 240, 32, 10, 14, 240, 31, 10, 14, 240, 30, 10, 14, 240, 29,
- 10, 14, 240, 28, 10, 14, 240, 27, 10, 14, 240, 26, 10, 14, 240, 25, 10,
- 14, 240, 24, 10, 14, 240, 23, 10, 14, 240, 22, 10, 14, 240, 21, 10, 14,
- 240, 20, 10, 14, 240, 19, 10, 14, 240, 18, 10, 14, 240, 17, 10, 14, 240,
- 16, 10, 14, 240, 15, 10, 14, 240, 14, 10, 14, 240, 13, 10, 14, 240, 12,
- 10, 14, 240, 11, 10, 14, 240, 10, 10, 14, 240, 9, 10, 14, 240, 8, 10, 14,
- 240, 7, 10, 14, 240, 6, 10, 14, 240, 5, 10, 14, 240, 4, 10, 14, 240, 3,
- 10, 14, 240, 2, 10, 14, 240, 1, 10, 14, 240, 0, 10, 14, 239, 255, 10, 14,
- 239, 254, 10, 14, 239, 253, 10, 14, 239, 252, 10, 14, 239, 251, 10, 14,
- 239, 250, 10, 14, 239, 249, 10, 14, 239, 248, 10, 14, 239, 247, 10, 14,
- 239, 246, 10, 14, 239, 245, 10, 14, 239, 244, 10, 14, 239, 243, 10, 14,
- 239, 242, 10, 14, 239, 241, 10, 14, 239, 240, 10, 14, 239, 239, 10, 14,
- 239, 238, 10, 14, 239, 237, 10, 14, 239, 236, 10, 14, 239, 235, 10, 14,
- 239, 234, 10, 14, 239, 233, 10, 14, 239, 232, 10, 14, 239, 231, 10, 14,
- 239, 230, 10, 14, 239, 229, 10, 14, 239, 228, 10, 14, 239, 227, 10, 14,
- 239, 226, 10, 14, 239, 225, 10, 14, 239, 224, 10, 14, 239, 223, 10, 14,
- 239, 222, 10, 14, 239, 221, 10, 14, 239, 220, 10, 14, 239, 219, 10, 14,
- 239, 218, 10, 14, 239, 217, 10, 14, 239, 216, 10, 14, 239, 215, 10, 14,
- 239, 214, 10, 14, 239, 213, 10, 14, 239, 212, 10, 14, 239, 211, 10, 14,
- 239, 210, 10, 14, 239, 209, 10, 14, 239, 208, 10, 14, 239, 207, 10, 14,
- 239, 206, 10, 14, 239, 205, 10, 14, 239, 204, 10, 14, 239, 203, 10, 14,
- 239, 202, 10, 14, 239, 201, 10, 14, 239, 200, 10, 14, 239, 199, 10, 14,
- 239, 198, 10, 14, 239, 197, 10, 14, 239, 196, 10, 14, 239, 195, 10, 14,
- 239, 194, 10, 14, 239, 193, 10, 14, 239, 192, 10, 14, 239, 191, 10, 14,
- 239, 190, 10, 14, 239, 189, 10, 14, 239, 188, 10, 14, 239, 187, 10, 14,
- 239, 186, 10, 14, 239, 185, 10, 14, 239, 184, 10, 14, 239, 183, 10, 14,
- 239, 182, 10, 14, 239, 181, 10, 14, 239, 180, 10, 14, 239, 179, 10, 14,
- 239, 178, 10, 14, 239, 177, 10, 14, 239, 176, 10, 14, 239, 175, 10, 14,
- 239, 174, 10, 14, 239, 173, 10, 14, 239, 172, 10, 14, 239, 171, 10, 14,
- 239, 170, 10, 14, 239, 169, 10, 14, 239, 168, 10, 14, 239, 167, 10, 14,
- 239, 166, 10, 14, 239, 165, 10, 14, 239, 164, 10, 14, 239, 163, 10, 14,
- 239, 162, 10, 14, 239, 161, 10, 14, 239, 160, 10, 14, 239, 159, 10, 14,
- 239, 158, 10, 14, 239, 157, 10, 14, 239, 156, 10, 14, 239, 155, 10, 14,
- 239, 154, 10, 14, 239, 153, 10, 14, 239, 152, 10, 14, 239, 151, 10, 14,
- 239, 150, 10, 14, 239, 149, 10, 14, 239, 148, 10, 14, 239, 147, 10, 14,
- 239, 146, 10, 14, 239, 145, 10, 14, 239, 144, 10, 14, 239, 143, 10, 14,
- 239, 142, 10, 14, 239, 141, 10, 14, 239, 140, 10, 14, 239, 139, 10, 14,
- 239, 138, 10, 14, 239, 137, 10, 14, 239, 136, 10, 14, 239, 135, 10, 14,
- 239, 134, 10, 14, 239, 133, 10, 14, 239, 132, 10, 14, 239, 131, 10, 14,
- 239, 130, 10, 14, 239, 129, 10, 14, 239, 128, 10, 14, 239, 127, 10, 14,
- 239, 126, 10, 14, 239, 125, 10, 14, 239, 124, 10, 14, 239, 123, 10, 14,
- 239, 122, 10, 14, 239, 121, 10, 14, 239, 120, 10, 14, 239, 119, 10, 14,
- 239, 118, 10, 14, 239, 117, 10, 14, 239, 116, 10, 14, 239, 115, 10, 14,
- 239, 114, 10, 14, 239, 113, 10, 14, 239, 112, 10, 14, 239, 111, 10, 14,
- 239, 110, 10, 14, 239, 109, 10, 14, 239, 108, 10, 14, 239, 107, 10, 14,
- 239, 106, 10, 14, 239, 105, 10, 14, 239, 104, 10, 14, 239, 103, 10, 14,
- 239, 102, 10, 14, 239, 101, 10, 14, 239, 100, 10, 14, 239, 99, 10, 14,
- 239, 98, 10, 14, 239, 97, 10, 14, 239, 96, 10, 14, 239, 95, 10, 14, 239,
- 94, 10, 14, 239, 93, 10, 14, 239, 92, 10, 14, 239, 91, 10, 14, 239, 90,
- 10, 14, 239, 89, 10, 14, 239, 88, 10, 14, 239, 87, 10, 14, 239, 86, 10,
- 14, 239, 85, 10, 14, 239, 84, 10, 14, 239, 83, 10, 14, 239, 82, 10, 14,
- 239, 81, 10, 14, 239, 80, 10, 14, 239, 79, 10, 14, 239, 78, 10, 14, 239,
- 77, 10, 14, 239, 76, 10, 14, 239, 75, 10, 14, 239, 74, 10, 14, 239, 73,
- 10, 14, 239, 72, 10, 14, 239, 71, 10, 14, 239, 70, 10, 14, 239, 69, 10,
- 14, 239, 68, 10, 14, 239, 67, 10, 14, 239, 66, 10, 14, 239, 65, 10, 14,
- 239, 64, 10, 14, 239, 63, 10, 14, 239, 62, 10, 14, 239, 61, 10, 14, 239,
- 60, 10, 14, 239, 59, 10, 14, 239, 58, 10, 14, 239, 57, 10, 14, 239, 56,
- 10, 14, 239, 55, 10, 14, 239, 54, 10, 14, 239, 53, 10, 14, 239, 52, 10,
- 14, 239, 51, 10, 14, 239, 50, 10, 14, 239, 49, 10, 14, 239, 48, 10, 14,
- 239, 47, 10, 14, 239, 46, 10, 14, 239, 45, 10, 14, 239, 44, 10, 14, 239,
- 43, 10, 14, 239, 42, 10, 14, 239, 41, 10, 14, 239, 40, 10, 14, 239, 39,
- 10, 14, 239, 38, 10, 14, 239, 37, 10, 14, 239, 36, 10, 14, 239, 35, 10,
- 14, 239, 34, 10, 14, 239, 33, 10, 14, 239, 32, 10, 14, 239, 31, 10, 14,
- 239, 30, 10, 14, 239, 29, 10, 14, 239, 28, 10, 14, 239, 27, 10, 14, 239,
- 26, 10, 14, 239, 25, 10, 14, 239, 24, 10, 14, 239, 23, 10, 14, 239, 22,
- 10, 14, 239, 21, 10, 14, 239, 20, 10, 14, 239, 19, 10, 14, 239, 18, 10,
- 14, 239, 17, 10, 14, 239, 16, 10, 14, 239, 15, 10, 14, 239, 14, 10, 14,
- 239, 13, 10, 14, 239, 12, 10, 14, 239, 11, 10, 14, 239, 10, 10, 14, 239,
- 9, 10, 14, 239, 8, 10, 14, 239, 7, 10, 14, 239, 6, 10, 14, 239, 5, 10,
- 14, 239, 4, 10, 14, 239, 3, 10, 14, 239, 2, 10, 14, 239, 1, 10, 14, 239,
- 0, 10, 14, 238, 255, 10, 14, 238, 254, 10, 14, 238, 253, 10, 14, 238,
- 252, 10, 14, 238, 251, 10, 14, 238, 250, 10, 14, 238, 249, 10, 14, 238,
- 248, 10, 14, 238, 247, 10, 14, 238, 246, 10, 14, 238, 245, 10, 14, 238,
- 244, 10, 14, 238, 243, 10, 14, 238, 242, 10, 14, 238, 241, 10, 14, 238,
- 240, 10, 14, 238, 239, 10, 14, 238, 238, 10, 14, 238, 237, 10, 14, 238,
- 236, 10, 14, 238, 235, 10, 14, 238, 234, 10, 14, 238, 233, 10, 14, 238,
- 232, 10, 14, 238, 231, 10, 14, 238, 230, 10, 14, 238, 229, 10, 14, 238,
- 228, 10, 14, 238, 227, 10, 14, 238, 226, 10, 14, 238, 225, 10, 14, 238,
- 224, 10, 14, 238, 223, 10, 14, 238, 222, 10, 14, 238, 221, 10, 14, 238,
- 220, 10, 14, 238, 219, 10, 14, 238, 218, 10, 14, 238, 217, 10, 14, 238,
- 216, 10, 14, 238, 215, 10, 14, 238, 214, 10, 14, 238, 213, 10, 14, 238,
- 212, 10, 14, 238, 211, 10, 14, 238, 210, 10, 14, 238, 209, 10, 14, 238,
- 208, 10, 14, 238, 207, 10, 14, 238, 206, 10, 14, 238, 205, 10, 14, 238,
- 204, 10, 14, 238, 203, 10, 14, 238, 202, 10, 14, 238, 201, 10, 14, 238,
- 200, 10, 14, 238, 199, 10, 14, 238, 198, 10, 14, 238, 197, 10, 14, 238,
- 196, 10, 14, 238, 195, 10, 14, 238, 194, 10, 14, 238, 193, 10, 14, 238,
- 192, 10, 14, 238, 191, 10, 14, 238, 190, 10, 14, 238, 189, 10, 14, 238,
- 188, 10, 14, 238, 187, 10, 14, 238, 186, 10, 14, 238, 185, 10, 14, 238,
- 184, 10, 14, 238, 183, 10, 14, 238, 182, 10, 14, 238, 181, 10, 14, 238,
- 180, 10, 14, 238, 179, 10, 14, 238, 178, 10, 14, 238, 177, 10, 14, 238,
- 176, 10, 14, 238, 175, 10, 14, 238, 174, 10, 14, 238, 173, 10, 14, 238,
- 172, 10, 14, 238, 171, 10, 14, 238, 170, 10, 14, 238, 169, 10, 14, 238,
- 168, 10, 14, 238, 167, 10, 14, 238, 166, 10, 14, 238, 165, 10, 14, 238,
- 164, 10, 14, 238, 163, 10, 14, 238, 162, 10, 14, 238, 161, 10, 14, 238,
- 160, 10, 14, 238, 159, 10, 14, 238, 158, 10, 14, 238, 157, 10, 14, 238,
- 156, 10, 14, 238, 155, 10, 14, 238, 154, 10, 14, 238, 153, 10, 14, 238,
- 152, 10, 14, 238, 151, 10, 14, 238, 150, 10, 14, 238, 149, 10, 14, 238,
- 148, 10, 14, 238, 147, 10, 14, 238, 146, 10, 14, 238, 145, 10, 14, 238,
- 144, 10, 14, 238, 143, 10, 14, 238, 142, 10, 14, 238, 141, 10, 14, 238,
- 140, 10, 14, 238, 139, 10, 14, 238, 138, 10, 14, 238, 137, 10, 14, 238,
- 136, 10, 14, 238, 135, 10, 14, 238, 134, 10, 14, 238, 133, 10, 14, 238,
- 132, 10, 14, 238, 131, 10, 14, 238, 130, 10, 14, 238, 129, 10, 14, 238,
- 128, 10, 14, 238, 127, 10, 14, 238, 126, 10, 14, 238, 125, 10, 14, 238,
- 124, 10, 14, 238, 123, 10, 14, 238, 122, 10, 14, 238, 121, 10, 14, 238,
- 120, 10, 14, 238, 119, 10, 14, 238, 118, 10, 14, 238, 117, 10, 14, 238,
- 116, 10, 14, 238, 115, 10, 14, 238, 114, 10, 14, 238, 113, 10, 14, 238,
- 112, 10, 14, 238, 111, 10, 14, 238, 110, 10, 14, 238, 109, 10, 14, 238,
- 108, 10, 14, 238, 107, 10, 14, 238, 106, 10, 14, 238, 105, 10, 14, 238,
- 104, 10, 14, 238, 103, 10, 14, 238, 102, 10, 14, 238, 101, 10, 14, 238,
- 100, 10, 14, 238, 99, 10, 14, 238, 98, 10, 14, 238, 97, 10, 14, 238, 96,
- 10, 14, 238, 95, 10, 14, 238, 94, 10, 14, 238, 93, 10, 14, 238, 92, 10,
- 14, 238, 91, 10, 14, 238, 90, 10, 14, 238, 89, 10, 14, 238, 88, 10, 14,
- 238, 87, 10, 14, 238, 86, 10, 14, 238, 85, 10, 14, 238, 84, 10, 14, 238,
- 83, 10, 14, 238, 82, 10, 14, 238, 81, 10, 14, 238, 80, 233, 96, 217, 85,
- 129, 219, 20, 129, 245, 39, 79, 129, 224, 1, 79, 129, 54, 50, 129, 247,
- 140, 50, 129, 225, 185, 50, 129, 254, 134, 129, 254, 65, 129, 43, 226, 7,
- 129, 44, 226, 7, 129, 253, 224, 129, 96, 50, 129, 249, 227, 129, 240,
- 174, 129, 243, 236, 218, 131, 129, 219, 48, 129, 21, 210, 86, 129, 21,
- 111, 129, 21, 105, 129, 21, 158, 129, 21, 161, 129, 21, 190, 129, 21,
- 195, 129, 21, 199, 129, 21, 196, 129, 21, 201, 129, 249, 234, 129, 220,
- 152, 129, 233, 21, 50, 129, 245, 106, 50, 129, 242, 137, 50, 129, 224,
- 16, 79, 129, 249, 225, 253, 214, 129, 7, 6, 1, 61, 129, 7, 6, 1, 253,
- 166, 129, 7, 6, 1, 251, 74, 129, 7, 6, 1, 249, 68, 129, 7, 6, 1, 76, 129,
- 7, 6, 1, 245, 14, 129, 7, 6, 1, 243, 209, 129, 7, 6, 1, 242, 67, 129, 7,
- 6, 1, 74, 129, 7, 6, 1, 235, 150, 129, 7, 6, 1, 235, 29, 129, 7, 6, 1,
- 156, 129, 7, 6, 1, 194, 129, 7, 6, 1, 230, 30, 129, 7, 6, 1, 78, 129, 7,
- 6, 1, 226, 109, 129, 7, 6, 1, 224, 99, 129, 7, 6, 1, 153, 129, 7, 6, 1,
- 222, 93, 129, 7, 6, 1, 217, 153, 129, 7, 6, 1, 69, 129, 7, 6, 1, 214,
- 105, 129, 7, 6, 1, 212, 98, 129, 7, 6, 1, 211, 178, 129, 7, 6, 1, 211,
- 117, 129, 7, 6, 1, 210, 159, 129, 43, 42, 127, 129, 223, 53, 219, 48,
- 129, 44, 42, 127, 129, 250, 39, 255, 23, 129, 121, 232, 219, 129, 242,
- 144, 255, 23, 129, 7, 4, 1, 61, 129, 7, 4, 1, 253, 166, 129, 7, 4, 1,
- 251, 74, 129, 7, 4, 1, 249, 68, 129, 7, 4, 1, 76, 129, 7, 4, 1, 245, 14,
- 129, 7, 4, 1, 243, 209, 129, 7, 4, 1, 242, 67, 129, 7, 4, 1, 74, 129, 7,
- 4, 1, 235, 150, 129, 7, 4, 1, 235, 29, 129, 7, 4, 1, 156, 129, 7, 4, 1,
- 194, 129, 7, 4, 1, 230, 30, 129, 7, 4, 1, 78, 129, 7, 4, 1, 226, 109,
- 129, 7, 4, 1, 224, 99, 129, 7, 4, 1, 153, 129, 7, 4, 1, 222, 93, 129, 7,
- 4, 1, 217, 153, 129, 7, 4, 1, 69, 129, 7, 4, 1, 214, 105, 129, 7, 4, 1,
- 212, 98, 129, 7, 4, 1, 211, 178, 129, 7, 4, 1, 211, 117, 129, 7, 4, 1,
- 210, 159, 129, 43, 249, 107, 127, 129, 67, 232, 219, 129, 44, 249, 107,
- 127, 129, 184, 251, 14, 217, 85, 45, 221, 80, 45, 221, 69, 45, 221, 58,
- 45, 221, 46, 45, 221, 35, 45, 221, 24, 45, 221, 13, 45, 221, 2, 45, 220,
- 247, 45, 220, 239, 45, 220, 238, 45, 220, 237, 45, 220, 236, 45, 220,
- 234, 45, 220, 233, 45, 220, 232, 45, 220, 231, 45, 220, 230, 45, 220,
- 229, 45, 220, 228, 45, 220, 227, 45, 220, 226, 45, 220, 225, 45, 220,
- 223, 45, 220, 222, 45, 220, 221, 45, 220, 220, 45, 220, 219, 45, 220,
- 218, 45, 220, 217, 45, 220, 216, 45, 220, 215, 45, 220, 214, 45, 220,
- 212, 45, 220, 211, 45, 220, 210, 45, 220, 209, 45, 220, 208, 45, 220,
- 207, 45, 220, 206, 45, 220, 205, 45, 220, 204, 45, 220, 203, 45, 220,
- 201, 45, 220, 200, 45, 220, 199, 45, 220, 198, 45, 220, 197, 45, 220,
- 196, 45, 220, 195, 45, 220, 194, 45, 220, 193, 45, 220, 192, 45, 220,
- 190, 45, 220, 189, 45, 220, 188, 45, 220, 187, 45, 220, 186, 45, 220,
- 185, 45, 220, 184, 45, 220, 183, 45, 220, 182, 45, 220, 181, 45, 220,
- 179, 45, 220, 178, 45, 220, 177, 45, 220, 176, 45, 220, 175, 45, 220,
- 174, 45, 220, 173, 45, 220, 172, 45, 220, 171, 45, 220, 170, 45, 220,
- 168, 45, 220, 167, 45, 220, 166, 45, 220, 165, 45, 220, 164, 45, 220,
- 163, 45, 220, 162, 45, 220, 161, 45, 220, 160, 45, 220, 159, 45, 221,
- 156, 45, 221, 155, 45, 221, 154, 45, 221, 153, 45, 221, 152, 45, 221,
- 151, 45, 221, 150, 45, 221, 149, 45, 221, 148, 45, 221, 147, 45, 221,
- 145, 45, 221, 144, 45, 221, 143, 45, 221, 142, 45, 221, 141, 45, 221,
- 140, 45, 221, 139, 45, 221, 138, 45, 221, 137, 45, 221, 136, 45, 221,
- 134, 45, 221, 133, 45, 221, 132, 45, 221, 131, 45, 221, 130, 45, 221,
- 129, 45, 221, 128, 45, 221, 127, 45, 221, 126, 45, 221, 125, 45, 221,
- 123, 45, 221, 122, 45, 221, 121, 45, 221, 120, 45, 221, 119, 45, 221,
- 118, 45, 221, 117, 45, 221, 116, 45, 221, 115, 45, 221, 114, 45, 221,
- 112, 45, 221, 111, 45, 221, 110, 45, 221, 109, 45, 221, 108, 45, 221,
- 107, 45, 221, 106, 45, 221, 105, 45, 221, 104, 45, 221, 103, 45, 221,
- 101, 45, 221, 100, 45, 221, 99, 45, 221, 98, 45, 221, 97, 45, 221, 96,
- 45, 221, 95, 45, 221, 94, 45, 221, 93, 45, 221, 92, 45, 221, 90, 45, 221,
- 89, 45, 221, 88, 45, 221, 87, 45, 221, 86, 45, 221, 85, 45, 221, 84, 45,
- 221, 83, 45, 221, 82, 45, 221, 81, 45, 221, 79, 45, 221, 78, 45, 221, 77,
- 45, 221, 76, 45, 221, 75, 45, 221, 74, 45, 221, 73, 45, 221, 72, 45, 221,
- 71, 45, 221, 70, 45, 221, 68, 45, 221, 67, 45, 221, 66, 45, 221, 65, 45,
- 221, 64, 45, 221, 63, 45, 221, 62, 45, 221, 61, 45, 221, 60, 45, 221, 59,
- 45, 221, 57, 45, 221, 56, 45, 221, 55, 45, 221, 54, 45, 221, 53, 45, 221,
- 52, 45, 221, 51, 45, 221, 50, 45, 221, 49, 45, 221, 48, 45, 221, 45, 45,
- 221, 44, 45, 221, 43, 45, 221, 42, 45, 221, 41, 45, 221, 40, 45, 221, 39,
- 45, 221, 38, 45, 221, 37, 45, 221, 36, 45, 221, 34, 45, 221, 33, 45, 221,
- 32, 45, 221, 31, 45, 221, 30, 45, 221, 29, 45, 221, 28, 45, 221, 27, 45,
- 221, 26, 45, 221, 25, 45, 221, 23, 45, 221, 22, 45, 221, 21, 45, 221, 20,
- 45, 221, 19, 45, 221, 18, 45, 221, 17, 45, 221, 16, 45, 221, 15, 45, 221,
- 14, 45, 221, 12, 45, 221, 11, 45, 221, 10, 45, 221, 9, 45, 221, 8, 45,
- 221, 7, 45, 221, 6, 45, 221, 5, 45, 221, 4, 45, 221, 3, 45, 221, 1, 45,
- 221, 0, 45, 220, 255, 45, 220, 254, 45, 220, 253, 45, 220, 252, 45, 220,
- 251, 45, 220, 250, 45, 220, 249, 45, 220, 248, 45, 220, 246, 45, 220,
- 245, 45, 220, 244, 45, 220, 243, 45, 220, 242, 45, 220, 241, 45, 220,
- 240, 227, 206, 227, 208, 218, 154, 64, 241, 240, 219, 50, 218, 154, 64,
- 216, 213, 218, 86, 245, 151, 64, 216, 213, 245, 64, 245, 151, 64, 215,
- 244, 245, 117, 245, 140, 245, 141, 255, 16, 255, 17, 254, 176, 252, 55,
- 252, 187, 251, 139, 135, 217, 90, 203, 217, 90, 240, 234, 217, 94, 232,
- 220, 244, 153, 166, 232, 219, 245, 151, 64, 232, 219, 233, 6, 228, 140,
- 245, 120, 232, 220, 217, 90, 67, 217, 90, 212, 118, 244, 28, 244, 153,
- 244, 133, 250, 238, 223, 56, 249, 151, 220, 30, 226, 134, 232, 156, 111,
- 219, 60, 220, 30, 236, 6, 232, 156, 210, 86, 219, 193, 248, 159, 232,
- 210, 245, 85, 247, 163, 248, 39, 249, 186, 111, 248, 149, 248, 39, 249,
- 186, 105, 248, 148, 248, 39, 249, 186, 158, 248, 147, 248, 39, 249, 186,
- 161, 248, 146, 152, 255, 16, 229, 214, 217, 178, 236, 69, 217, 181, 245,
- 151, 64, 215, 245, 251, 221, 245, 70, 251, 13, 251, 15, 245, 151, 64,
- 231, 86, 245, 118, 218, 62, 218, 79, 245, 85, 245, 86, 235, 239, 220,
- 140, 161, 244, 115, 220, 139, 243, 245, 235, 239, 220, 140, 158, 242,
- 128, 220, 139, 242, 125, 235, 239, 220, 140, 105, 223, 124, 220, 139,
- 222, 147, 235, 239, 220, 140, 111, 214, 174, 220, 139, 214, 133, 219, 23,
- 248, 71, 248, 73, 226, 82, 250, 150, 226, 84, 125, 226, 244, 224, 196,
- 241, 54, 251, 158, 225, 176, 241, 210, 251, 169, 228, 80, 251, 158, 241,
- 210, 229, 180, 235, 249, 235, 251, 229, 87, 232, 219, 229, 104, 218, 154,
- 64, 221, 160, 254, 26, 218, 225, 245, 151, 64, 221, 160, 254, 26, 245,
- 88, 135, 217, 91, 220, 129, 203, 217, 91, 220, 129, 240, 231, 135, 217,
- 91, 2, 235, 41, 203, 217, 91, 2, 235, 41, 240, 232, 232, 220, 217, 91,
- 220, 129, 67, 217, 91, 220, 129, 212, 117, 226, 1, 232, 220, 244, 22,
- 226, 1, 232, 220, 246, 114, 225, 35, 226, 1, 232, 220, 252, 186, 226, 1,
- 232, 220, 214, 163, 225, 31, 223, 53, 232, 220, 244, 153, 223, 53, 235,
- 249, 223, 38, 219, 157, 220, 30, 105, 219, 154, 218, 227, 219, 157, 220,
- 30, 158, 219, 153, 218, 226, 248, 39, 249, 186, 218, 107, 248, 145, 224,
- 186, 214, 132, 111, 224, 186, 214, 130, 224, 152, 224, 186, 214, 132,
- 105, 224, 186, 214, 129, 224, 151, 220, 130, 215, 243, 218, 153, 218, 90,
- 251, 14, 250, 150, 250, 217, 231, 48, 212, 59, 230, 48, 218, 154, 64,
- 242, 114, 254, 26, 218, 154, 64, 224, 169, 254, 26, 219, 22, 245, 151,
- 64, 242, 114, 254, 26, 245, 151, 64, 224, 169, 254, 26, 245, 115, 218,
- 154, 64, 218, 107, 219, 37, 219, 157, 242, 148, 135, 235, 202, 220, 109,
- 219, 157, 135, 235, 202, 221, 196, 249, 186, 220, 137, 235, 202, 249,
- 121, 218, 108, 216, 237, 218, 170, 226, 173, 217, 168, 249, 226, 226,
- 146, 224, 187, 231, 47, 225, 22, 254, 61, 224, 181, 249, 226, 254, 77,
- 229, 168, 219, 202, 7, 6, 1, 243, 0, 7, 4, 1, 243, 0, 250, 167, 254, 157,
- 183, 218, 68, 249, 235, 219, 108, 233, 52, 165, 1, 232, 181, 209, 209, 1,
- 244, 52, 244, 44, 209, 209, 1, 244, 52, 244, 165, 209, 209, 1, 222, 213,
- 209, 209, 1, 232, 162, 63, 164, 251, 231, 220, 5, 242, 222, 230, 253,
- 223, 44, 243, 223, 243, 222, 243, 221, 230, 50, 209, 251, 209, 252, 209,
- 254, 232, 107, 222, 221, 232, 109, 222, 223, 225, 227, 232, 106, 222,
- 220, 228, 111, 230, 170, 211, 229, 232, 108, 222, 222, 243, 244, 225,
- 226, 212, 15, 245, 170, 243, 233, 230, 234, 226, 201, 214, 134, 87, 230,
- 234, 248, 165, 87, 8, 3, 235, 164, 79, 224, 197, 244, 28, 31, 67, 44, 71,
- 233, 26, 127, 213, 118, 213, 7, 212, 195, 212, 184, 212, 173, 212, 162,
- 212, 151, 212, 140, 212, 129, 213, 117, 213, 106, 213, 95, 213, 84, 213,
- 73, 213, 62, 213, 51, 251, 79, 226, 159, 79, 251, 204, 209, 253, 15, 5,
- 227, 215, 216, 240, 15, 5, 227, 215, 115, 227, 215, 251, 107, 115, 251,
- 106, 49, 28, 16, 243, 243, 219, 104, 250, 81, 214, 9, 213, 40, 213, 29,
- 213, 18, 213, 6, 212, 251, 212, 240, 212, 229, 212, 218, 212, 207, 212,
- 199, 212, 198, 212, 197, 212, 196, 212, 194, 212, 193, 212, 192, 212,
- 191, 212, 190, 212, 189, 212, 188, 212, 187, 212, 186, 212, 185, 212,
- 183, 212, 182, 212, 181, 212, 180, 212, 179, 212, 178, 212, 177, 212,
- 176, 212, 175, 212, 174, 212, 172, 212, 171, 212, 170, 212, 169, 212,
- 168, 212, 167, 212, 166, 212, 165, 212, 164, 212, 163, 212, 161, 212,
- 160, 212, 159, 212, 158, 212, 157, 212, 156, 212, 155, 212, 154, 212,
- 153, 212, 152, 212, 150, 212, 149, 212, 148, 212, 147, 212, 146, 212,
- 145, 212, 144, 212, 143, 212, 142, 212, 141, 212, 139, 212, 138, 212,
- 137, 212, 136, 212, 135, 212, 134, 212, 133, 212, 132, 212, 131, 212,
- 130, 212, 128, 212, 127, 212, 126, 212, 125, 212, 124, 212, 123, 212,
- 122, 212, 121, 212, 120, 212, 119, 213, 116, 213, 115, 213, 114, 213,
- 113, 213, 112, 213, 111, 213, 110, 213, 109, 213, 108, 213, 107, 213,
- 105, 213, 104, 213, 103, 213, 102, 213, 101, 213, 100, 213, 99, 213, 98,
- 213, 97, 213, 96, 213, 94, 213, 93, 213, 92, 213, 91, 213, 90, 213, 89,
- 213, 88, 213, 87, 213, 86, 213, 85, 213, 83, 213, 82, 213, 81, 213, 80,
- 213, 79, 213, 78, 213, 77, 213, 76, 213, 75, 213, 74, 213, 72, 213, 71,
- 213, 70, 213, 69, 213, 68, 213, 67, 213, 66, 213, 65, 213, 64, 213, 63,
- 213, 61, 213, 60, 213, 59, 213, 58, 213, 57, 213, 56, 213, 55, 213, 54,
- 213, 53, 213, 52, 213, 50, 213, 49, 213, 48, 213, 47, 213, 46, 213, 45,
- 213, 44, 213, 43, 213, 42, 213, 41, 213, 39, 213, 38, 213, 37, 213, 36,
- 213, 35, 213, 34, 213, 33, 213, 32, 213, 31, 213, 30, 213, 28, 213, 27,
- 213, 26, 213, 25, 213, 24, 213, 23, 213, 22, 213, 21, 213, 20, 213, 19,
- 213, 17, 213, 16, 213, 15, 213, 14, 213, 13, 213, 12, 213, 11, 213, 10,
- 213, 9, 213, 8, 213, 5, 213, 4, 213, 3, 213, 2, 213, 1, 213, 0, 212, 255,
- 212, 254, 212, 253, 212, 252, 212, 250, 212, 249, 212, 248, 212, 247,
- 212, 246, 212, 245, 212, 244, 212, 243, 212, 242, 212, 241, 212, 239,
- 212, 238, 212, 237, 212, 236, 212, 235, 212, 234, 212, 233, 212, 232,
- 212, 231, 212, 230, 212, 228, 212, 227, 212, 226, 212, 225, 212, 224,
- 212, 223, 212, 222, 212, 221, 212, 220, 212, 219, 212, 217, 212, 216,
- 212, 215, 212, 214, 212, 213, 212, 212, 212, 211, 212, 210, 212, 209,
- 212, 208, 212, 206, 212, 205, 212, 204, 212, 203, 212, 202, 212, 201,
- 212, 200, 7, 6, 1, 116, 2, 231, 238, 22, 242, 143, 7, 4, 1, 116, 2, 231,
- 238, 22, 242, 143, 7, 6, 1, 160, 2, 67, 232, 220, 51, 7, 4, 1, 160, 2,
- 67, 232, 220, 51, 7, 6, 1, 160, 2, 67, 232, 220, 252, 51, 22, 242, 143,
- 7, 4, 1, 160, 2, 67, 232, 220, 252, 51, 22, 242, 143, 7, 6, 1, 160, 2,
- 67, 232, 220, 252, 51, 22, 142, 7, 4, 1, 160, 2, 67, 232, 220, 252, 51,
- 22, 142, 7, 6, 1, 160, 2, 250, 39, 22, 231, 237, 7, 4, 1, 160, 2, 250,
- 39, 22, 231, 237, 7, 6, 1, 160, 2, 250, 39, 22, 250, 242, 7, 4, 1, 160,
- 2, 250, 39, 22, 250, 242, 7, 6, 1, 240, 161, 2, 231, 238, 22, 242, 143,
- 7, 4, 1, 240, 161, 2, 231, 238, 22, 242, 143, 7, 4, 1, 240, 161, 2, 59,
- 72, 22, 142, 7, 4, 1, 229, 85, 2, 216, 90, 48, 7, 6, 1, 144, 2, 67, 232,
- 220, 51, 7, 4, 1, 144, 2, 67, 232, 220, 51, 7, 6, 1, 144, 2, 67, 232,
- 220, 252, 51, 22, 242, 143, 7, 4, 1, 144, 2, 67, 232, 220, 252, 51, 22,
- 242, 143, 7, 6, 1, 144, 2, 67, 232, 220, 252, 51, 22, 142, 7, 4, 1, 144,
- 2, 67, 232, 220, 252, 51, 22, 142, 7, 6, 1, 222, 94, 2, 67, 232, 220, 51,
- 7, 4, 1, 222, 94, 2, 67, 232, 220, 51, 7, 6, 1, 104, 2, 231, 238, 22,
- 242, 143, 7, 4, 1, 104, 2, 231, 238, 22, 242, 143, 7, 6, 1, 116, 2, 226,
- 229, 22, 142, 7, 4, 1, 116, 2, 226, 229, 22, 142, 7, 6, 1, 116, 2, 226,
- 229, 22, 184, 7, 4, 1, 116, 2, 226, 229, 22, 184, 7, 6, 1, 160, 2, 226,
- 229, 22, 142, 7, 4, 1, 160, 2, 226, 229, 22, 142, 7, 6, 1, 160, 2, 226,
- 229, 22, 184, 7, 4, 1, 160, 2, 226, 229, 22, 184, 7, 6, 1, 160, 2, 59,
- 72, 22, 142, 7, 4, 1, 160, 2, 59, 72, 22, 142, 7, 6, 1, 160, 2, 59, 72,
- 22, 184, 7, 4, 1, 160, 2, 59, 72, 22, 184, 7, 4, 1, 240, 161, 2, 59, 72,
- 22, 242, 143, 7, 4, 1, 240, 161, 2, 59, 72, 22, 184, 7, 6, 1, 240, 161,
- 2, 226, 229, 22, 142, 7, 4, 1, 240, 161, 2, 226, 229, 22, 59, 72, 22,
- 142, 7, 6, 1, 240, 161, 2, 226, 229, 22, 184, 7, 4, 1, 240, 161, 2, 226,
- 229, 22, 59, 72, 22, 184, 7, 6, 1, 235, 151, 2, 184, 7, 4, 1, 235, 151,
- 2, 59, 72, 22, 184, 7, 6, 1, 233, 155, 2, 184, 7, 4, 1, 233, 155, 2, 184,
- 7, 6, 1, 232, 55, 2, 184, 7, 4, 1, 232, 55, 2, 184, 7, 6, 1, 223, 227, 2,
- 184, 7, 4, 1, 223, 227, 2, 184, 7, 6, 1, 104, 2, 226, 229, 22, 142, 7, 4,
- 1, 104, 2, 226, 229, 22, 142, 7, 6, 1, 104, 2, 226, 229, 22, 184, 7, 4,
- 1, 104, 2, 226, 229, 22, 184, 7, 6, 1, 104, 2, 231, 238, 22, 142, 7, 4,
- 1, 104, 2, 231, 238, 22, 142, 7, 6, 1, 104, 2, 231, 238, 22, 184, 7, 4,
- 1, 104, 2, 231, 238, 22, 184, 7, 4, 1, 254, 253, 2, 242, 143, 7, 4, 1,
- 204, 144, 2, 242, 143, 7, 4, 1, 204, 144, 2, 142, 7, 4, 1, 215, 94, 214,
- 106, 2, 242, 143, 7, 4, 1, 215, 94, 214, 106, 2, 142, 7, 4, 1, 221, 198,
- 2, 242, 143, 7, 4, 1, 221, 198, 2, 142, 7, 4, 1, 241, 58, 221, 198, 2,
- 242, 143, 7, 4, 1, 241, 58, 221, 198, 2, 142, 9, 220, 137, 77, 2, 182,
- 72, 2, 254, 179, 9, 220, 137, 77, 2, 182, 72, 2, 212, 30, 9, 220, 137,
- 77, 2, 182, 72, 2, 109, 231, 197, 9, 220, 137, 77, 2, 182, 72, 2, 226,
- 238, 9, 220, 137, 77, 2, 182, 72, 2, 69, 9, 220, 137, 77, 2, 182, 72, 2,
- 210, 212, 9, 220, 137, 77, 2, 182, 72, 2, 76, 9, 220, 137, 77, 2, 182,
- 72, 2, 254, 252, 9, 220, 137, 228, 68, 2, 234, 180, 146, 1, 234, 115, 36,
- 117, 235, 29, 36, 117, 229, 84, 36, 117, 251, 74, 36, 117, 227, 171, 36,
- 117, 215, 160, 36, 117, 228, 116, 36, 117, 217, 153, 36, 117, 230, 30,
- 36, 117, 226, 109, 36, 117, 194, 36, 117, 211, 117, 36, 117, 153, 36,
- 117, 156, 36, 117, 214, 105, 36, 117, 232, 182, 36, 117, 232, 191, 36,
- 117, 222, 182, 36, 117, 228, 98, 36, 117, 235, 150, 36, 117, 220, 106,
- 36, 117, 218, 228, 36, 117, 222, 93, 36, 117, 242, 67, 36, 117, 233, 238,
- 36, 3, 235, 16, 36, 3, 234, 98, 36, 3, 234, 89, 36, 3, 233, 223, 36, 3,
- 233, 194, 36, 3, 234, 188, 36, 3, 234, 187, 36, 3, 234, 252, 36, 3, 234,
- 34, 36, 3, 234, 16, 36, 3, 234, 201, 36, 3, 229, 81, 36, 3, 229, 32, 36,
- 3, 229, 28, 36, 3, 228, 253, 36, 3, 228, 246, 36, 3, 229, 69, 36, 3, 229,
- 67, 36, 3, 229, 78, 36, 3, 229, 9, 36, 3, 229, 4, 36, 3, 229, 71, 36, 3,
- 251, 40, 36, 3, 250, 59, 36, 3, 250, 49, 36, 3, 249, 120, 36, 3, 249, 91,
- 36, 3, 250, 198, 36, 3, 250, 190, 36, 3, 251, 30, 36, 3, 249, 246, 36, 3,
- 249, 182, 36, 3, 250, 230, 36, 3, 227, 168, 36, 3, 227, 152, 36, 3, 227,
- 147, 36, 3, 227, 132, 36, 3, 227, 125, 36, 3, 227, 160, 36, 3, 227, 159,
- 36, 3, 227, 165, 36, 3, 227, 138, 36, 3, 227, 136, 36, 3, 227, 163, 36,
- 3, 215, 156, 36, 3, 215, 136, 36, 3, 215, 135, 36, 3, 215, 124, 36, 3,
- 215, 121, 36, 3, 215, 152, 36, 3, 215, 151, 36, 3, 215, 155, 36, 3, 215,
- 134, 36, 3, 215, 133, 36, 3, 215, 154, 36, 3, 228, 114, 36, 3, 228, 100,
- 36, 3, 228, 99, 36, 3, 228, 83, 36, 3, 228, 82, 36, 3, 228, 110, 36, 3,
- 228, 109, 36, 3, 228, 113, 36, 3, 228, 85, 36, 3, 228, 84, 36, 3, 228,
- 112, 36, 3, 217, 102, 36, 3, 216, 118, 36, 3, 216, 104, 36, 3, 215, 119,
- 36, 3, 215, 85, 36, 3, 217, 23, 36, 3, 217, 12, 36, 3, 217, 80, 36, 3,
- 112, 36, 3, 216, 18, 36, 3, 217, 42, 36, 3, 229, 230, 36, 3, 228, 238,
- 36, 3, 228, 213, 36, 3, 227, 242, 36, 3, 227, 183, 36, 3, 229, 112, 36,
- 3, 229, 108, 36, 3, 229, 217, 36, 3, 228, 79, 36, 3, 228, 69, 36, 3, 229,
- 192, 36, 3, 226, 93, 36, 3, 225, 111, 36, 3, 225, 74, 36, 3, 224, 153,
- 36, 3, 224, 122, 36, 3, 225, 224, 36, 3, 225, 214, 36, 3, 226, 75, 36, 3,
- 225, 19, 36, 3, 224, 252, 36, 3, 225, 238, 36, 3, 231, 242, 36, 3, 230,
- 235, 36, 3, 230, 206, 36, 3, 230, 107, 36, 3, 230, 59, 36, 3, 231, 96,
- 36, 3, 231, 85, 36, 3, 231, 208, 36, 3, 230, 166, 36, 3, 230, 137, 36, 3,
- 231, 140, 36, 3, 211, 103, 36, 3, 211, 8, 36, 3, 210, 255, 36, 3, 210,
- 212, 36, 3, 210, 181, 36, 3, 211, 47, 36, 3, 211, 44, 36, 3, 211, 82, 36,
- 3, 210, 244, 36, 3, 210, 229, 36, 3, 211, 55, 36, 3, 223, 187, 36, 3,
- 223, 38, 36, 3, 222, 242, 36, 3, 222, 142, 36, 3, 222, 114, 36, 3, 223,
- 131, 36, 3, 223, 111, 36, 3, 223, 169, 36, 3, 222, 213, 36, 3, 222, 199,
- 36, 3, 223, 139, 36, 3, 233, 140, 36, 3, 232, 247, 36, 3, 232, 233, 36,
- 3, 232, 103, 36, 3, 232, 78, 36, 3, 233, 64, 36, 3, 233, 56, 36, 3, 233,
- 115, 36, 3, 232, 162, 36, 3, 232, 133, 36, 3, 233, 80, 36, 3, 214, 26,
- 36, 3, 213, 176, 36, 3, 213, 162, 36, 3, 212, 116, 36, 3, 212, 109, 36,
- 3, 213, 255, 36, 3, 213, 250, 36, 3, 214, 23, 36, 3, 213, 138, 36, 3,
- 213, 127, 36, 3, 214, 5, 36, 3, 232, 180, 36, 3, 232, 175, 36, 3, 232,
- 174, 36, 3, 232, 171, 36, 3, 232, 170, 36, 3, 232, 177, 36, 3, 232, 176,
- 36, 3, 232, 179, 36, 3, 232, 173, 36, 3, 232, 172, 36, 3, 232, 178, 36,
- 3, 232, 189, 36, 3, 232, 184, 36, 3, 232, 183, 36, 3, 232, 167, 36, 3,
- 232, 166, 36, 3, 232, 186, 36, 3, 232, 185, 36, 3, 232, 188, 36, 3, 232,
- 169, 36, 3, 232, 168, 36, 3, 232, 187, 36, 3, 222, 180, 36, 3, 222, 169,
- 36, 3, 222, 168, 36, 3, 222, 162, 36, 3, 222, 155, 36, 3, 222, 176, 36,
- 3, 222, 175, 36, 3, 222, 179, 36, 3, 222, 167, 36, 3, 222, 166, 36, 3,
- 222, 178, 36, 3, 228, 96, 36, 3, 228, 91, 36, 3, 228, 90, 36, 3, 228, 87,
- 36, 3, 228, 86, 36, 3, 228, 93, 36, 3, 228, 92, 36, 3, 228, 95, 36, 3,
- 228, 89, 36, 3, 228, 88, 36, 3, 228, 94, 36, 3, 235, 146, 36, 3, 235,
- 114, 36, 3, 235, 107, 36, 3, 235, 57, 36, 3, 235, 39, 36, 3, 235, 132,
- 36, 3, 235, 130, 36, 3, 235, 141, 36, 3, 235, 74, 36, 3, 235, 65, 36, 3,
- 235, 135, 36, 3, 220, 100, 36, 3, 220, 34, 36, 3, 220, 29, 36, 3, 219,
- 227, 36, 3, 219, 212, 36, 3, 220, 65, 36, 3, 220, 63, 36, 3, 220, 92, 36,
- 3, 220, 9, 36, 3, 220, 3, 36, 3, 220, 73, 36, 3, 218, 224, 36, 3, 218,
- 194, 36, 3, 218, 190, 36, 3, 218, 181, 36, 3, 218, 178, 36, 3, 218, 199,
- 36, 3, 218, 198, 36, 3, 218, 223, 36, 3, 218, 186, 36, 3, 218, 185, 36,
- 3, 218, 201, 36, 3, 222, 33, 36, 3, 219, 193, 36, 3, 219, 177, 36, 3,
- 218, 84, 36, 3, 218, 5, 36, 3, 221, 183, 36, 3, 221, 172, 36, 3, 222, 19,
- 36, 3, 219, 60, 36, 3, 219, 42, 36, 3, 221, 221, 36, 3, 242, 53, 36, 3,
- 241, 187, 36, 3, 241, 168, 36, 3, 240, 229, 36, 3, 240, 209, 36, 3, 241,
- 245, 36, 3, 241, 227, 36, 3, 242, 43, 36, 3, 241, 75, 36, 3, 241, 60, 36,
- 3, 241, 253, 36, 3, 233, 237, 36, 3, 233, 236, 36, 3, 233, 231, 36, 3,
- 233, 230, 36, 3, 233, 227, 36, 3, 233, 226, 36, 3, 233, 233, 36, 3, 233,
- 232, 36, 3, 233, 235, 36, 3, 233, 229, 36, 3, 233, 228, 36, 3, 233, 234,
- 36, 3, 219, 233, 175, 117, 5, 211, 68, 175, 117, 5, 223, 158, 175, 117,
- 5, 223, 81, 98, 1, 215, 28, 70, 117, 5, 249, 241, 176, 70, 117, 5, 249,
- 241, 234, 138, 70, 117, 5, 249, 241, 234, 34, 70, 117, 5, 249, 241, 234,
- 111, 70, 117, 5, 249, 241, 229, 9, 70, 117, 5, 249, 241, 251, 41, 70,
- 117, 5, 249, 241, 250, 165, 70, 117, 5, 249, 241, 249, 246, 70, 117, 5,
- 249, 241, 250, 94, 70, 117, 5, 249, 241, 227, 138, 70, 117, 5, 249, 241,
- 248, 229, 70, 117, 5, 249, 241, 215, 145, 70, 117, 5, 249, 241, 247, 153,
- 70, 117, 5, 249, 241, 215, 140, 70, 117, 5, 249, 241, 198, 70, 117, 5,
- 249, 241, 217, 106, 70, 117, 5, 249, 241, 216, 209, 70, 117, 5, 249, 241,
- 112, 70, 117, 5, 249, 241, 216, 157, 70, 117, 5, 249, 241, 228, 79, 70,
- 117, 5, 249, 241, 252, 199, 70, 117, 5, 249, 241, 225, 150, 70, 117, 5,
- 249, 241, 225, 19, 70, 117, 5, 249, 241, 225, 124, 70, 117, 5, 249, 241,
- 230, 166, 70, 117, 5, 249, 241, 210, 244, 70, 117, 5, 249, 241, 222, 213,
- 70, 117, 5, 249, 241, 232, 162, 70, 117, 5, 249, 241, 213, 138, 70, 117,
- 5, 249, 241, 220, 104, 70, 117, 5, 249, 241, 218, 225, 70, 117, 5, 249,
- 241, 206, 70, 117, 5, 249, 241, 162, 70, 117, 5, 249, 241, 233, 141, 70,
- 25, 5, 249, 241, 224, 91, 70, 235, 250, 25, 5, 249, 241, 224, 33, 70,
- 235, 250, 25, 5, 249, 241, 222, 102, 70, 235, 250, 25, 5, 249, 241, 222,
- 95, 70, 235, 250, 25, 5, 249, 241, 224, 72, 70, 25, 5, 226, 208, 70, 25,
- 5, 255, 43, 141, 1, 252, 7, 229, 82, 141, 1, 252, 7, 229, 32, 141, 1,
- 252, 7, 228, 253, 141, 1, 252, 7, 229, 69, 141, 1, 252, 7, 229, 9, 56, 1,
- 252, 7, 229, 82, 56, 1, 252, 7, 229, 32, 56, 1, 252, 7, 228, 253, 56, 1,
- 252, 7, 229, 69, 56, 1, 252, 7, 229, 9, 56, 1, 254, 203, 250, 198, 56, 1,
- 254, 203, 215, 119, 56, 1, 254, 203, 112, 56, 1, 254, 203, 226, 109, 58,
- 1, 245, 28, 245, 27, 249, 190, 138, 130, 58, 1, 245, 27, 245, 28, 249,
- 190, 138, 130,
+ 0, 211, 228, 240, 212, 82, 217, 31, 82, 42, 54, 243, 97, 54, 218, 246,
+ 54, 250, 235, 250, 160, 49, 219, 76, 50, 219, 76, 250, 59, 91, 54, 245,
+ 233, 235, 219, 239, 102, 211, 61, 212, 0, 17, 202, 84, 17, 105, 17, 108,
+ 17, 147, 17, 149, 17, 170, 17, 195, 17, 213, 111, 17, 199, 17, 222, 63,
+ 245, 242, 213, 143, 227, 179, 54, 241, 35, 54, 237, 247, 54, 217, 47, 82,
+ 245, 231, 250, 49, 8, 6, 1, 63, 8, 6, 1, 249, 255, 8, 6, 1, 247, 125, 8,
+ 6, 1, 245, 51, 8, 6, 1, 74, 8, 6, 1, 240, 174, 8, 6, 1, 239, 75, 8, 6, 1,
+ 237, 171, 8, 6, 1, 75, 8, 6, 1, 230, 184, 8, 6, 1, 230, 54, 8, 6, 1, 159,
+ 8, 6, 1, 226, 185, 8, 6, 1, 223, 163, 8, 6, 1, 78, 8, 6, 1, 219, 184, 8,
+ 6, 1, 217, 134, 8, 6, 1, 146, 8, 6, 1, 194, 8, 6, 1, 210, 69, 8, 6, 1,
+ 68, 8, 6, 1, 206, 164, 8, 6, 1, 204, 144, 8, 6, 1, 203, 196, 8, 6, 1,
+ 203, 124, 8, 6, 1, 202, 159, 49, 51, 155, 216, 74, 212, 0, 50, 51, 155,
+ 246, 53, 251, 138, 124, 227, 114, 237, 254, 251, 138, 8, 5, 1, 63, 8, 5,
+ 1, 249, 255, 8, 5, 1, 247, 125, 8, 5, 1, 245, 51, 8, 5, 1, 74, 8, 5, 1,
+ 240, 174, 8, 5, 1, 239, 75, 8, 5, 1, 237, 171, 8, 5, 1, 75, 8, 5, 1, 230,
+ 184, 8, 5, 1, 230, 54, 8, 5, 1, 159, 8, 5, 1, 226, 185, 8, 5, 1, 223,
+ 163, 8, 5, 1, 78, 8, 5, 1, 219, 184, 8, 5, 1, 217, 134, 8, 5, 1, 146, 8,
+ 5, 1, 194, 8, 5, 1, 210, 69, 8, 5, 1, 68, 8, 5, 1, 206, 164, 8, 5, 1,
+ 204, 144, 8, 5, 1, 203, 196, 8, 5, 1, 203, 124, 8, 5, 1, 202, 159, 49,
+ 245, 93, 155, 80, 227, 114, 50, 245, 93, 155, 208, 227, 221, 190, 211,
+ 228, 230, 239, 240, 212, 82, 246, 220, 54, 218, 20, 54, 245, 92, 54, 203,
+ 43, 54, 247, 203, 142, 214, 168, 54, 243, 231, 245, 169, 54, 240, 41,
+ 219, 240, 231, 31, 227, 217, 52, 250, 218, 217, 31, 82, 221, 166, 54,
+ 212, 7, 235, 220, 216, 129, 54, 225, 170, 244, 55, 54, 218, 75, 54, 210,
+ 199, 108, 210, 199, 147, 251, 126, 251, 138, 224, 153, 54, 218, 126, 54,
+ 101, 243, 85, 246, 231, 210, 199, 105, 225, 80, 219, 240, 231, 31, 216,
+ 11, 52, 250, 218, 217, 31, 82, 204, 161, 239, 138, 118, 217, 55, 204,
+ 161, 239, 138, 118, 237, 137, 204, 161, 239, 138, 126, 217, 53, 230, 239,
+ 217, 47, 82, 8, 6, 1, 34, 3, 237, 253, 8, 6, 1, 34, 3, 165, 8, 6, 1, 34,
+ 3, 246, 52, 8, 6, 1, 34, 3, 208, 227, 8, 6, 1, 34, 3, 243, 231, 8, 6, 1,
+ 34, 3, 215, 253, 55, 8, 6, 1, 251, 109, 8, 6, 1, 247, 126, 3, 246, 231,
+ 8, 6, 1, 188, 3, 237, 253, 8, 6, 1, 188, 3, 165, 8, 6, 1, 188, 3, 246,
+ 52, 8, 6, 1, 188, 3, 243, 231, 8, 6, 1, 235, 206, 3, 237, 253, 8, 6, 1,
+ 235, 206, 3, 165, 8, 6, 1, 235, 206, 3, 246, 52, 8, 6, 1, 235, 206, 3,
+ 243, 231, 8, 6, 1, 240, 243, 8, 6, 1, 223, 164, 3, 208, 227, 8, 6, 1,
+ 158, 3, 237, 253, 8, 6, 1, 158, 3, 165, 8, 6, 1, 158, 3, 246, 52, 8, 6,
+ 1, 158, 3, 208, 227, 8, 6, 1, 158, 3, 243, 231, 223, 224, 54, 8, 6, 1,
+ 158, 3, 95, 8, 6, 1, 106, 3, 237, 253, 8, 6, 1, 106, 3, 165, 8, 6, 1,
+ 106, 3, 246, 52, 8, 6, 1, 106, 3, 243, 231, 8, 6, 1, 203, 125, 3, 165, 8,
+ 6, 1, 209, 40, 8, 5, 1, 213, 57, 194, 8, 5, 1, 34, 3, 237, 253, 8, 5, 1,
+ 34, 3, 165, 8, 5, 1, 34, 3, 246, 52, 8, 5, 1, 34, 3, 208, 227, 8, 5, 1,
+ 34, 3, 243, 231, 8, 5, 1, 34, 3, 215, 253, 55, 8, 5, 1, 251, 109, 8, 5,
+ 1, 247, 126, 3, 246, 231, 8, 5, 1, 188, 3, 237, 253, 8, 5, 1, 188, 3,
+ 165, 8, 5, 1, 188, 3, 246, 52, 8, 5, 1, 188, 3, 243, 231, 8, 5, 1, 235,
+ 206, 3, 237, 253, 8, 5, 1, 235, 206, 3, 165, 8, 5, 1, 235, 206, 3, 246,
+ 52, 8, 5, 1, 235, 206, 3, 243, 231, 8, 5, 1, 240, 243, 8, 5, 1, 223, 164,
+ 3, 208, 227, 8, 5, 1, 158, 3, 237, 253, 8, 5, 1, 158, 3, 165, 8, 5, 1,
+ 158, 3, 246, 52, 8, 5, 1, 158, 3, 208, 227, 8, 5, 1, 158, 3, 243, 231,
+ 243, 137, 54, 8, 5, 1, 158, 3, 95, 8, 5, 1, 106, 3, 237, 253, 8, 5, 1,
+ 106, 3, 165, 8, 5, 1, 106, 3, 246, 52, 8, 5, 1, 106, 3, 243, 231, 8, 5,
+ 1, 203, 125, 3, 165, 8, 5, 1, 209, 40, 8, 5, 1, 203, 125, 3, 243, 231, 8,
+ 6, 1, 34, 3, 225, 170, 8, 5, 1, 34, 3, 225, 170, 8, 6, 1, 34, 3, 247,
+ 214, 8, 5, 1, 34, 3, 247, 214, 8, 6, 1, 34, 3, 220, 62, 8, 5, 1, 34, 3,
+ 220, 62, 8, 6, 1, 247, 126, 3, 165, 8, 5, 1, 247, 126, 3, 165, 8, 6, 1,
+ 247, 126, 3, 246, 52, 8, 5, 1, 247, 126, 3, 246, 52, 8, 6, 1, 247, 126,
+ 3, 70, 55, 8, 5, 1, 247, 126, 3, 70, 55, 8, 6, 1, 247, 126, 3, 247, 29,
+ 8, 5, 1, 247, 126, 3, 247, 29, 8, 6, 1, 245, 52, 3, 247, 29, 8, 5, 1,
+ 245, 52, 3, 247, 29, 8, 6, 1, 245, 52, 3, 95, 8, 5, 1, 245, 52, 3, 95, 8,
+ 6, 1, 188, 3, 225, 170, 8, 5, 1, 188, 3, 225, 170, 8, 6, 1, 188, 3, 247,
+ 214, 8, 5, 1, 188, 3, 247, 214, 8, 6, 1, 188, 3, 70, 55, 8, 5, 1, 188, 3,
+ 70, 55, 8, 6, 1, 188, 3, 220, 62, 8, 5, 1, 188, 3, 220, 62, 8, 6, 1, 188,
+ 3, 247, 29, 8, 5, 1, 188, 3, 247, 29, 8, 6, 1, 239, 76, 3, 246, 52, 8, 5,
+ 1, 239, 76, 3, 246, 52, 8, 6, 1, 239, 76, 3, 247, 214, 8, 5, 1, 239, 76,
+ 3, 247, 214, 8, 6, 1, 239, 76, 3, 70, 55, 8, 5, 1, 239, 76, 3, 70, 55, 8,
+ 6, 1, 239, 76, 3, 246, 231, 8, 5, 1, 239, 76, 3, 246, 231, 8, 6, 1, 237,
+ 172, 3, 246, 52, 8, 5, 1, 237, 172, 3, 246, 52, 8, 6, 1, 237, 172, 3, 95,
+ 8, 5, 1, 237, 172, 3, 95, 8, 6, 1, 235, 206, 3, 208, 227, 8, 5, 1, 235,
+ 206, 3, 208, 227, 8, 6, 1, 235, 206, 3, 225, 170, 8, 5, 1, 235, 206, 3,
+ 225, 170, 8, 6, 1, 235, 206, 3, 247, 214, 8, 5, 1, 235, 206, 3, 247, 214,
+ 8, 6, 1, 235, 206, 3, 220, 62, 8, 5, 1, 235, 206, 3, 220, 62, 8, 6, 1,
+ 235, 206, 3, 70, 55, 8, 5, 1, 243, 84, 75, 8, 6, 32, 231, 81, 8, 5, 32,
+ 231, 81, 8, 6, 1, 230, 185, 3, 246, 52, 8, 5, 1, 230, 185, 3, 246, 52, 8,
+ 6, 1, 230, 55, 3, 246, 231, 8, 5, 1, 230, 55, 3, 246, 231, 8, 5, 1, 228,
+ 231, 8, 6, 1, 228, 131, 3, 165, 8, 5, 1, 228, 131, 3, 165, 8, 6, 1, 228,
+ 131, 3, 246, 231, 8, 5, 1, 228, 131, 3, 246, 231, 8, 6, 1, 228, 131, 3,
+ 247, 29, 8, 5, 1, 228, 131, 3, 247, 29, 8, 6, 1, 228, 131, 3, 101, 243,
+ 85, 8, 5, 1, 228, 131, 3, 101, 243, 85, 8, 6, 1, 228, 131, 3, 95, 8, 5,
+ 1, 228, 131, 3, 95, 8, 6, 1, 223, 164, 3, 165, 8, 5, 1, 223, 164, 3, 165,
+ 8, 6, 1, 223, 164, 3, 246, 231, 8, 5, 1, 223, 164, 3, 246, 231, 8, 6, 1,
+ 223, 164, 3, 247, 29, 8, 5, 1, 223, 164, 3, 247, 29, 8, 5, 1, 223, 164,
+ 217, 251, 247, 137, 250, 160, 8, 6, 1, 241, 78, 8, 5, 1, 241, 78, 8, 6,
+ 1, 158, 3, 225, 170, 8, 5, 1, 158, 3, 225, 170, 8, 6, 1, 158, 3, 247,
+ 214, 8, 5, 1, 158, 3, 247, 214, 8, 6, 1, 158, 3, 52, 165, 8, 5, 1, 158,
+ 3, 52, 165, 8, 6, 32, 220, 73, 8, 5, 32, 220, 73, 8, 6, 1, 217, 1, 3,
+ 165, 8, 5, 1, 217, 1, 3, 165, 8, 6, 1, 217, 1, 3, 246, 231, 8, 5, 1, 217,
+ 1, 3, 246, 231, 8, 6, 1, 217, 1, 3, 247, 29, 8, 5, 1, 217, 1, 3, 247, 29,
+ 8, 6, 1, 215, 94, 3, 165, 8, 5, 1, 215, 94, 3, 165, 8, 6, 1, 215, 94, 3,
+ 246, 52, 8, 5, 1, 215, 94, 3, 246, 52, 8, 6, 1, 215, 94, 3, 246, 231, 8,
+ 5, 1, 215, 94, 3, 246, 231, 8, 6, 1, 215, 94, 3, 247, 29, 8, 5, 1, 215,
+ 94, 3, 247, 29, 8, 6, 1, 210, 70, 3, 246, 231, 8, 5, 1, 210, 70, 3, 246,
+ 231, 8, 6, 1, 210, 70, 3, 247, 29, 8, 5, 1, 210, 70, 3, 247, 29, 8, 6, 1,
+ 210, 70, 3, 95, 8, 5, 1, 210, 70, 3, 95, 8, 6, 1, 106, 3, 208, 227, 8, 5,
+ 1, 106, 3, 208, 227, 8, 6, 1, 106, 3, 225, 170, 8, 5, 1, 106, 3, 225,
+ 170, 8, 6, 1, 106, 3, 247, 214, 8, 5, 1, 106, 3, 247, 214, 8, 6, 1, 106,
+ 3, 215, 253, 55, 8, 5, 1, 106, 3, 215, 253, 55, 8, 6, 1, 106, 3, 52, 165,
+ 8, 5, 1, 106, 3, 52, 165, 8, 6, 1, 106, 3, 220, 62, 8, 5, 1, 106, 3, 220,
+ 62, 8, 6, 1, 204, 145, 3, 246, 52, 8, 5, 1, 204, 145, 3, 246, 52, 8, 6,
+ 1, 203, 125, 3, 246, 52, 8, 5, 1, 203, 125, 3, 246, 52, 8, 6, 1, 203,
+ 125, 3, 243, 231, 8, 6, 1, 202, 160, 3, 165, 8, 5, 1, 202, 160, 3, 165,
+ 8, 6, 1, 202, 160, 3, 70, 55, 8, 5, 1, 202, 160, 3, 70, 55, 8, 6, 1, 202,
+ 160, 3, 247, 29, 8, 5, 1, 202, 160, 3, 247, 29, 8, 5, 1, 163, 194, 8, 5,
+ 1, 66, 3, 95, 8, 6, 1, 66, 3, 113, 8, 6, 1, 66, 3, 208, 142, 8, 5, 1, 66,
+ 3, 208, 142, 8, 6, 1, 143, 195, 8, 5, 1, 143, 195, 8, 6, 1, 171, 78, 8,
+ 6, 1, 247, 126, 3, 113, 8, 5, 1, 247, 126, 3, 113, 8, 6, 1, 251, 84, 245,
+ 51, 8, 6, 1, 245, 52, 3, 113, 8, 6, 1, 245, 52, 3, 208, 142, 8, 5, 1,
+ 245, 52, 3, 208, 142, 8, 5, 1, 207, 174, 244, 37, 8, 6, 1, 216, 73, 74,
+ 8, 6, 1, 214, 192, 8, 6, 1, 171, 74, 8, 6, 1, 240, 175, 3, 113, 8, 5, 1,
+ 240, 175, 3, 113, 8, 6, 1, 239, 76, 3, 113, 8, 6, 1, 238, 235, 8, 5, 1,
+ 235, 255, 8, 6, 1, 230, 230, 8, 6, 1, 235, 206, 3, 95, 8, 6, 1, 230, 55,
+ 3, 113, 8, 5, 1, 230, 55, 3, 113, 8, 5, 1, 228, 131, 3, 142, 8, 5, 1,
+ 228, 26, 3, 95, 8, 6, 1, 207, 174, 226, 185, 8, 6, 1, 223, 164, 3, 49,
+ 113, 8, 5, 1, 223, 164, 3, 163, 50, 227, 210, 8, 6, 1, 158, 3, 101, 208,
+ 227, 8, 6, 1, 158, 3, 236, 53, 8, 5, 1, 158, 3, 236, 53, 8, 6, 1, 220,
+ 57, 8, 5, 1, 220, 57, 8, 6, 1, 219, 185, 3, 113, 8, 5, 1, 219, 185, 3,
+ 113, 8, 1, 202, 216, 8, 6, 1, 143, 108, 8, 5, 1, 143, 108, 8, 6, 1, 241,
+ 7, 8, 1, 216, 73, 241, 8, 227, 14, 8, 5, 1, 210, 70, 3, 219, 142, 113, 8,
+ 6, 1, 210, 70, 3, 113, 8, 5, 1, 210, 70, 3, 113, 8, 6, 1, 210, 70, 3,
+ 216, 79, 113, 8, 6, 1, 106, 3, 236, 53, 8, 5, 1, 106, 3, 236, 53, 8, 6,
+ 1, 206, 216, 8, 6, 1, 206, 165, 3, 113, 8, 6, 1, 203, 125, 3, 113, 8, 5,
+ 1, 203, 125, 3, 113, 8, 6, 1, 202, 160, 3, 95, 8, 5, 1, 202, 160, 3, 95,
+ 8, 6, 1, 240, 177, 8, 6, 1, 240, 178, 216, 72, 8, 5, 1, 240, 178, 216,
+ 72, 8, 5, 1, 240, 178, 3, 209, 248, 8, 1, 120, 3, 95, 8, 6, 1, 143, 170,
+ 8, 5, 1, 143, 170, 8, 1, 230, 239, 238, 45, 211, 62, 3, 95, 8, 1, 203,
+ 199, 8, 1, 244, 30, 246, 27, 8, 1, 227, 254, 246, 27, 8, 1, 250, 248,
+ 246, 27, 8, 1, 216, 79, 246, 27, 8, 6, 1, 242, 1, 3, 247, 29, 8, 6, 1,
+ 245, 52, 3, 5, 1, 202, 160, 3, 247, 29, 8, 5, 1, 242, 1, 3, 247, 29, 8,
+ 6, 1, 227, 81, 8, 6, 1, 228, 131, 3, 5, 1, 230, 184, 8, 5, 1, 227, 81, 8,
+ 6, 1, 222, 49, 8, 6, 1, 223, 164, 3, 5, 1, 230, 184, 8, 5, 1, 222, 49, 8,
+ 6, 1, 34, 3, 247, 29, 8, 5, 1, 34, 3, 247, 29, 8, 6, 1, 235, 206, 3, 247,
+ 29, 8, 5, 1, 235, 206, 3, 247, 29, 8, 6, 1, 158, 3, 247, 29, 8, 5, 1,
+ 158, 3, 247, 29, 8, 6, 1, 106, 3, 247, 29, 8, 5, 1, 106, 3, 247, 29, 8,
+ 6, 1, 106, 3, 243, 232, 25, 225, 170, 8, 5, 1, 106, 3, 243, 232, 25, 225,
+ 170, 8, 6, 1, 106, 3, 243, 232, 25, 165, 8, 5, 1, 106, 3, 243, 232, 25,
+ 165, 8, 6, 1, 106, 3, 243, 232, 25, 247, 29, 8, 5, 1, 106, 3, 243, 232,
+ 25, 247, 29, 8, 6, 1, 106, 3, 243, 232, 25, 237, 253, 8, 5, 1, 106, 3,
+ 243, 232, 25, 237, 253, 8, 5, 1, 207, 174, 74, 8, 6, 1, 34, 3, 243, 232,
+ 25, 225, 170, 8, 5, 1, 34, 3, 243, 232, 25, 225, 170, 8, 6, 1, 34, 3, 70,
+ 87, 25, 225, 170, 8, 5, 1, 34, 3, 70, 87, 25, 225, 170, 8, 6, 1, 251,
+ 110, 3, 225, 170, 8, 5, 1, 251, 110, 3, 225, 170, 8, 6, 1, 239, 76, 3,
+ 95, 8, 5, 1, 239, 76, 3, 95, 8, 6, 1, 239, 76, 3, 247, 29, 8, 5, 1, 239,
+ 76, 3, 247, 29, 8, 6, 1, 230, 55, 3, 247, 29, 8, 5, 1, 230, 55, 3, 247,
+ 29, 8, 6, 1, 158, 3, 220, 62, 8, 5, 1, 158, 3, 220, 62, 8, 6, 1, 158, 3,
+ 220, 63, 25, 225, 170, 8, 5, 1, 158, 3, 220, 63, 25, 225, 170, 8, 6, 1,
+ 240, 178, 3, 247, 29, 8, 5, 1, 240, 178, 3, 247, 29, 8, 5, 1, 230, 185,
+ 3, 247, 29, 8, 6, 1, 242, 0, 8, 6, 1, 245, 52, 3, 5, 1, 202, 159, 8, 5,
+ 1, 242, 0, 8, 6, 1, 239, 76, 3, 165, 8, 5, 1, 239, 76, 3, 165, 8, 6, 1,
+ 235, 252, 8, 6, 1, 203, 199, 8, 6, 1, 223, 164, 3, 237, 253, 8, 5, 1,
+ 223, 164, 3, 237, 253, 8, 6, 1, 34, 3, 215, 253, 87, 25, 165, 8, 5, 1,
+ 34, 3, 215, 253, 87, 25, 165, 8, 6, 1, 251, 110, 3, 165, 8, 5, 1, 251,
+ 110, 3, 165, 8, 6, 1, 158, 3, 211, 32, 25, 165, 8, 5, 1, 158, 3, 211, 32,
+ 25, 165, 8, 6, 1, 34, 3, 52, 237, 253, 8, 5, 1, 34, 3, 52, 237, 253, 8,
+ 6, 1, 34, 3, 230, 239, 247, 214, 8, 5, 1, 34, 3, 230, 239, 247, 214, 8,
+ 6, 1, 188, 3, 52, 237, 253, 8, 5, 1, 188, 3, 52, 237, 253, 8, 6, 1, 188,
+ 3, 230, 239, 247, 214, 8, 5, 1, 188, 3, 230, 239, 247, 214, 8, 6, 1, 235,
+ 206, 3, 52, 237, 253, 8, 5, 1, 235, 206, 3, 52, 237, 253, 8, 6, 1, 235,
+ 206, 3, 230, 239, 247, 214, 8, 5, 1, 235, 206, 3, 230, 239, 247, 214, 8,
+ 6, 1, 158, 3, 52, 237, 253, 8, 5, 1, 158, 3, 52, 237, 253, 8, 6, 1, 158,
+ 3, 230, 239, 247, 214, 8, 5, 1, 158, 3, 230, 239, 247, 214, 8, 6, 1, 217,
+ 1, 3, 52, 237, 253, 8, 5, 1, 217, 1, 3, 52, 237, 253, 8, 6, 1, 217, 1, 3,
+ 230, 239, 247, 214, 8, 5, 1, 217, 1, 3, 230, 239, 247, 214, 8, 6, 1, 106,
+ 3, 52, 237, 253, 8, 5, 1, 106, 3, 52, 237, 253, 8, 6, 1, 106, 3, 230,
+ 239, 247, 214, 8, 5, 1, 106, 3, 230, 239, 247, 214, 8, 6, 1, 215, 94, 3,
+ 245, 234, 56, 8, 5, 1, 215, 94, 3, 245, 234, 56, 8, 6, 1, 210, 70, 3,
+ 245, 234, 56, 8, 5, 1, 210, 70, 3, 245, 234, 56, 8, 6, 1, 202, 234, 8, 5,
+ 1, 202, 234, 8, 6, 1, 237, 172, 3, 247, 29, 8, 5, 1, 237, 172, 3, 247,
+ 29, 8, 6, 1, 223, 164, 3, 163, 50, 227, 210, 8, 5, 1, 245, 52, 3, 245,
+ 95, 8, 6, 1, 219, 216, 8, 5, 1, 219, 216, 8, 6, 1, 202, 160, 3, 113, 8,
+ 5, 1, 202, 160, 3, 113, 8, 6, 1, 34, 3, 70, 55, 8, 5, 1, 34, 3, 70, 55,
+ 8, 6, 1, 188, 3, 246, 231, 8, 5, 1, 188, 3, 246, 231, 8, 6, 1, 158, 3,
+ 243, 232, 25, 225, 170, 8, 5, 1, 158, 3, 243, 232, 25, 225, 170, 8, 6, 1,
+ 158, 3, 208, 228, 25, 225, 170, 8, 5, 1, 158, 3, 208, 228, 25, 225, 170,
+ 8, 6, 1, 158, 3, 70, 55, 8, 5, 1, 158, 3, 70, 55, 8, 6, 1, 158, 3, 70,
+ 87, 25, 225, 170, 8, 5, 1, 158, 3, 70, 87, 25, 225, 170, 8, 6, 1, 203,
+ 125, 3, 225, 170, 8, 5, 1, 203, 125, 3, 225, 170, 8, 5, 1, 228, 131, 3,
+ 245, 95, 8, 5, 1, 223, 164, 3, 245, 95, 8, 5, 1, 210, 70, 3, 245, 95, 8,
+ 5, 1, 243, 84, 230, 184, 8, 5, 1, 244, 130, 243, 191, 8, 5, 1, 217, 66,
+ 243, 191, 8, 6, 1, 34, 3, 95, 8, 6, 1, 247, 126, 3, 95, 8, 5, 1, 247,
+ 126, 3, 95, 8, 6, 1, 228, 131, 3, 142, 8, 6, 1, 210, 70, 3, 243, 228, 95,
+ 8, 5, 1, 215, 94, 3, 210, 169, 209, 248, 8, 5, 1, 202, 160, 3, 210, 169,
+ 209, 248, 8, 6, 1, 238, 45, 211, 61, 8, 5, 1, 238, 45, 211, 61, 8, 6, 1,
+ 66, 3, 95, 8, 6, 1, 106, 142, 8, 6, 1, 207, 174, 206, 164, 8, 6, 1, 188,
+ 3, 95, 8, 5, 1, 188, 3, 95, 8, 6, 1, 230, 185, 3, 95, 8, 5, 1, 230, 185,
+ 3, 95, 8, 6, 1, 5, 217, 135, 3, 236, 116, 209, 248, 8, 5, 1, 217, 135, 3,
+ 236, 116, 209, 248, 8, 6, 1, 217, 1, 3, 95, 8, 5, 1, 217, 1, 3, 95, 8, 6,
+ 1, 203, 125, 3, 95, 8, 5, 1, 203, 125, 3, 95, 8, 5, 1, 207, 174, 63, 8,
+ 5, 1, 251, 2, 8, 5, 1, 207, 174, 251, 2, 8, 5, 1, 66, 3, 113, 8, 5, 1,
+ 171, 78, 8, 5, 1, 247, 126, 3, 245, 95, 8, 5, 1, 245, 52, 3, 209, 248, 8,
+ 5, 1, 245, 52, 3, 113, 8, 5, 1, 216, 73, 74, 8, 5, 1, 214, 192, 8, 5, 1,
+ 214, 193, 3, 113, 8, 5, 1, 171, 74, 8, 5, 1, 216, 73, 171, 74, 8, 5, 1,
+ 216, 73, 171, 188, 3, 113, 8, 5, 1, 246, 16, 216, 73, 171, 74, 8, 5, 1,
+ 243, 84, 230, 185, 3, 95, 8, 5, 1, 239, 76, 3, 113, 8, 5, 1, 132, 239,
+ 75, 8, 1, 5, 6, 239, 75, 8, 5, 1, 238, 235, 8, 5, 1, 216, 182, 236, 53,
+ 8, 5, 1, 207, 174, 237, 171, 8, 5, 1, 237, 172, 3, 113, 8, 5, 1, 237, 32,
+ 3, 113, 8, 5, 1, 235, 206, 3, 95, 8, 5, 1, 230, 230, 8, 1, 5, 6, 75, 8,
+ 5, 1, 228, 131, 3, 101, 208, 227, 8, 5, 1, 228, 131, 3, 248, 124, 8, 5,
+ 1, 228, 131, 3, 216, 79, 113, 8, 5, 1, 227, 164, 8, 5, 1, 207, 174, 226,
+ 185, 8, 5, 1, 207, 174, 226, 186, 3, 163, 227, 210, 8, 5, 1, 226, 186, 3,
+ 113, 8, 5, 1, 223, 164, 3, 49, 113, 8, 5, 1, 223, 164, 3, 216, 79, 113,
+ 8, 1, 5, 6, 223, 163, 8, 5, 1, 248, 225, 78, 8, 1, 5, 6, 220, 73, 8, 5,
+ 1, 246, 16, 220, 36, 8, 5, 1, 218, 192, 8, 5, 1, 207, 174, 146, 8, 5, 1,
+ 207, 174, 217, 1, 3, 163, 227, 210, 8, 5, 1, 207, 174, 217, 1, 3, 113, 8,
+ 5, 1, 217, 1, 3, 163, 227, 210, 8, 5, 1, 217, 1, 3, 209, 248, 8, 5, 1,
+ 217, 1, 3, 239, 240, 8, 5, 1, 216, 73, 217, 1, 3, 239, 240, 8, 1, 5, 6,
+ 146, 8, 1, 5, 6, 230, 239, 146, 8, 5, 1, 215, 94, 3, 113, 8, 5, 1, 241,
+ 7, 8, 5, 1, 243, 84, 230, 185, 3, 211, 32, 25, 113, 8, 5, 1, 211, 174,
+ 216, 73, 241, 7, 8, 5, 1, 241, 8, 3, 245, 95, 8, 5, 1, 207, 174, 210, 69,
+ 8, 5, 1, 210, 70, 3, 216, 79, 113, 8, 5, 1, 106, 142, 8, 5, 1, 206, 216,
+ 8, 5, 1, 206, 165, 3, 113, 8, 5, 1, 207, 174, 206, 164, 8, 5, 1, 207,
+ 174, 204, 144, 8, 5, 1, 207, 174, 203, 124, 8, 1, 5, 6, 203, 124, 8, 5,
+ 1, 202, 160, 3, 216, 79, 113, 8, 5, 1, 202, 160, 3, 245, 95, 8, 5, 1,
+ 240, 177, 8, 5, 1, 240, 178, 3, 245, 95, 8, 1, 238, 45, 211, 61, 8, 1,
+ 218, 199, 205, 186, 239, 126, 8, 1, 230, 239, 238, 45, 211, 61, 8, 1,
+ 211, 40, 247, 125, 8, 1, 248, 70, 246, 27, 8, 1, 5, 6, 249, 255, 8, 5, 1,
+ 246, 16, 171, 74, 8, 1, 5, 6, 239, 76, 3, 113, 8, 1, 5, 6, 237, 171, 8,
+ 5, 1, 230, 185, 3, 245, 126, 8, 5, 1, 207, 174, 230, 54, 8, 1, 5, 6, 159,
+ 8, 5, 1, 217, 135, 3, 113, 8, 1, 238, 45, 211, 62, 3, 95, 8, 1, 216, 73,
+ 238, 45, 211, 62, 3, 95, 8, 5, 1, 242, 1, 243, 191, 8, 5, 1, 244, 3, 243,
+ 191, 8, 5, 1, 242, 1, 243, 192, 3, 245, 95, 8, 5, 1, 208, 22, 243, 191,
+ 8, 5, 1, 209, 137, 243, 191, 8, 5, 1, 209, 194, 243, 192, 3, 245, 95, 8,
+ 5, 1, 240, 39, 243, 191, 8, 5, 1, 226, 241, 243, 191, 8, 5, 1, 226, 187,
+ 243, 191, 8, 1, 248, 70, 218, 245, 8, 1, 248, 78, 218, 245, 8, 5, 1, 207,
+ 174, 237, 172, 3, 239, 240, 8, 5, 1, 207, 174, 237, 172, 3, 239, 241, 25,
+ 209, 248, 65, 1, 5, 237, 171, 65, 1, 5, 237, 172, 3, 113, 65, 1, 5, 230,
+ 184, 65, 1, 5, 146, 65, 1, 5, 207, 174, 146, 65, 1, 5, 207, 174, 217, 1,
+ 3, 113, 65, 1, 5, 6, 230, 239, 146, 65, 1, 5, 204, 144, 65, 1, 5, 203,
+ 124, 65, 1, 217, 236, 65, 1, 52, 217, 236, 65, 1, 207, 174, 245, 233, 65,
+ 1, 250, 160, 65, 1, 216, 73, 245, 233, 65, 1, 50, 162, 215, 252, 65, 1,
+ 49, 162, 215, 252, 65, 1, 238, 45, 211, 61, 65, 1, 216, 73, 238, 45, 211,
+ 61, 65, 1, 49, 250, 94, 65, 1, 50, 250, 94, 65, 1, 112, 250, 94, 65, 1,
+ 121, 250, 94, 65, 1, 246, 53, 251, 138, 247, 29, 65, 1, 80, 227, 114, 65,
+ 1, 225, 170, 65, 1, 251, 126, 251, 138, 65, 1, 237, 254, 251, 138, 65, 1,
+ 124, 80, 227, 114, 65, 1, 124, 225, 170, 65, 1, 124, 237, 254, 251, 138,
+ 65, 1, 124, 251, 126, 251, 138, 65, 1, 208, 82, 245, 242, 65, 1, 162,
+ 208, 82, 245, 242, 65, 1, 246, 216, 50, 162, 215, 252, 65, 1, 246, 216,
+ 49, 162, 215, 252, 65, 1, 112, 210, 3, 65, 1, 121, 210, 3, 65, 1, 91, 54,
+ 65, 1, 224, 103, 54, 247, 214, 70, 55, 215, 253, 55, 220, 62, 5, 208,
+ 227, 52, 251, 126, 251, 138, 65, 1, 216, 58, 113, 65, 1, 245, 131, 251,
+ 138, 65, 1, 5, 238, 235, 65, 1, 5, 159, 65, 1, 5, 194, 65, 1, 5, 203,
+ 196, 65, 1, 5, 216, 73, 238, 45, 211, 61, 65, 1, 240, 198, 143, 142, 65,
+ 1, 138, 143, 142, 65, 1, 224, 150, 143, 142, 65, 1, 124, 143, 142, 65, 1,
+ 240, 197, 143, 142, 65, 1, 203, 1, 244, 27, 143, 82, 65, 1, 203, 77, 244,
+ 27, 143, 82, 65, 1, 205, 184, 65, 1, 206, 251, 65, 1, 52, 250, 160, 65,
+ 1, 124, 121, 250, 94, 65, 1, 124, 112, 250, 94, 65, 1, 124, 49, 250, 94,
+ 65, 1, 124, 50, 250, 94, 65, 1, 124, 215, 252, 65, 1, 101, 237, 254, 251,
+ 138, 65, 1, 101, 52, 237, 254, 251, 138, 65, 1, 101, 52, 251, 126, 251,
+ 138, 65, 1, 124, 208, 227, 65, 1, 216, 188, 245, 242, 65, 1, 248, 142,
+ 138, 208, 161, 65, 1, 241, 84, 138, 208, 161, 65, 1, 248, 142, 124, 208,
+ 161, 65, 1, 241, 84, 124, 208, 161, 65, 1, 213, 34, 65, 1, 171, 213, 34,
+ 65, 1, 124, 49, 47, 39, 237, 254, 251, 138, 39, 251, 126, 251, 138, 39,
+ 246, 53, 251, 138, 39, 208, 227, 39, 225, 170, 39, 219, 198, 39, 247,
+ 214, 39, 70, 55, 39, 243, 231, 39, 236, 116, 55, 39, 215, 253, 55, 39,
+ 52, 251, 126, 251, 138, 39, 247, 29, 39, 80, 227, 115, 55, 39, 52, 80,
+ 227, 115, 55, 39, 52, 237, 254, 251, 138, 39, 247, 52, 39, 230, 239, 247,
+ 214, 39, 207, 174, 245, 234, 55, 39, 245, 234, 55, 39, 216, 73, 245, 234,
+ 55, 39, 245, 234, 87, 216, 16, 39, 237, 254, 251, 139, 56, 39, 251, 126,
+ 251, 139, 56, 39, 49, 210, 4, 56, 39, 50, 210, 4, 56, 39, 49, 250, 218,
+ 55, 39, 236, 53, 39, 49, 162, 215, 253, 56, 39, 112, 210, 4, 56, 39, 121,
+ 210, 4, 56, 39, 91, 2, 56, 39, 224, 103, 2, 56, 39, 219, 140, 236, 116,
+ 56, 39, 216, 79, 236, 116, 56, 39, 70, 56, 39, 243, 232, 56, 39, 215,
+ 253, 56, 39, 245, 234, 56, 39, 246, 231, 39, 220, 62, 39, 80, 227, 115,
+ 56, 39, 247, 208, 56, 39, 230, 239, 52, 250, 127, 56, 39, 247, 30, 56,
+ 39, 246, 53, 251, 139, 56, 39, 247, 215, 56, 39, 230, 239, 247, 215, 56,
+ 39, 208, 228, 56, 39, 225, 171, 56, 39, 124, 227, 114, 39, 52, 124, 227,
+ 114, 39, 208, 228, 219, 199, 39, 212, 228, 211, 32, 219, 199, 39, 163,
+ 211, 32, 219, 199, 39, 212, 228, 212, 1, 219, 199, 39, 163, 212, 1, 219,
+ 199, 39, 50, 162, 215, 253, 56, 39, 230, 239, 247, 208, 56, 39, 51, 56,
+ 39, 214, 176, 56, 39, 203, 197, 55, 39, 80, 208, 227, 39, 52, 219, 198,
+ 39, 237, 254, 143, 82, 39, 251, 126, 143, 82, 39, 30, 218, 239, 39, 30,
+ 228, 252, 39, 30, 243, 225, 208, 149, 39, 30, 202, 221, 39, 247, 208, 55,
+ 39, 241, 35, 2, 56, 39, 52, 80, 227, 115, 56, 39, 49, 250, 218, 56, 39,
+ 221, 166, 208, 228, 55, 39, 236, 122, 55, 39, 251, 7, 156, 208, 173, 55,
+ 39, 49, 50, 53, 56, 39, 177, 53, 56, 39, 238, 4, 230, 96, 39, 50, 250,
+ 95, 55, 39, 49, 162, 215, 253, 55, 39, 240, 36, 39, 203, 197, 56, 39, 49,
+ 250, 95, 56, 39, 50, 250, 95, 56, 39, 50, 250, 95, 25, 112, 250, 95, 56,
+ 39, 50, 162, 215, 253, 55, 39, 70, 87, 216, 16, 39, 250, 60, 56, 39, 52,
+ 215, 253, 56, 39, 202, 30, 55, 39, 52, 247, 215, 56, 39, 52, 247, 214,
+ 39, 52, 225, 170, 39, 52, 225, 171, 56, 39, 52, 208, 227, 39, 52, 230,
+ 239, 247, 214, 39, 52, 86, 53, 56, 39, 8, 5, 1, 63, 39, 8, 5, 1, 74, 39,
+ 8, 5, 1, 75, 39, 8, 5, 1, 78, 39, 8, 5, 1, 68, 39, 8, 5, 1, 247, 125, 39,
+ 8, 5, 1, 245, 51, 39, 8, 5, 1, 237, 171, 39, 8, 5, 1, 226, 185, 39, 8, 5,
+ 1, 146, 39, 8, 5, 1, 210, 69, 39, 8, 5, 1, 206, 164, 39, 8, 5, 1, 203,
+ 196, 30, 6, 1, 237, 20, 30, 5, 1, 237, 20, 30, 6, 1, 250, 126, 214, 246,
+ 30, 5, 1, 250, 126, 214, 246, 30, 221, 44, 54, 30, 226, 251, 221, 44, 54,
+ 30, 6, 1, 219, 126, 243, 199, 30, 5, 1, 219, 126, 243, 199, 30, 202, 221,
+ 30, 5, 216, 73, 226, 221, 212, 145, 97, 30, 5, 242, 83, 226, 221, 212,
+ 145, 97, 30, 5, 216, 73, 242, 83, 226, 221, 212, 145, 97, 30, 217, 47,
+ 82, 30, 6, 1, 202, 227, 30, 208, 149, 30, 243, 225, 208, 149, 30, 6, 1,
+ 251, 3, 3, 208, 149, 30, 250, 203, 209, 163, 30, 6, 1, 241, 38, 3, 208,
+ 149, 30, 6, 1, 240, 249, 3, 208, 149, 30, 6, 1, 230, 231, 3, 208, 149,
+ 30, 6, 1, 220, 35, 3, 208, 149, 30, 6, 1, 206, 217, 3, 208, 149, 30, 6,
+ 1, 220, 37, 3, 208, 149, 30, 5, 1, 230, 231, 3, 243, 225, 25, 208, 149,
+ 30, 6, 1, 251, 2, 30, 6, 1, 248, 106, 30, 6, 1, 238, 235, 30, 6, 1, 244,
+ 37, 30, 6, 1, 241, 37, 30, 6, 1, 202, 83, 30, 6, 1, 240, 248, 30, 6, 1,
+ 209, 74, 30, 6, 1, 230, 230, 30, 6, 1, 229, 247, 30, 6, 1, 228, 24, 30,
+ 6, 1, 223, 246, 30, 6, 1, 221, 84, 30, 6, 1, 203, 170, 30, 6, 1, 220, 34,
+ 30, 6, 1, 218, 167, 30, 6, 1, 216, 59, 30, 6, 1, 212, 144, 30, 6, 1, 209,
+ 207, 30, 6, 1, 206, 216, 30, 6, 1, 218, 192, 30, 6, 1, 246, 142, 30, 6,
+ 1, 217, 202, 30, 6, 1, 220, 36, 30, 6, 1, 230, 231, 3, 243, 224, 30, 6,
+ 1, 206, 217, 3, 243, 224, 30, 5, 1, 251, 3, 3, 208, 149, 30, 5, 1, 241,
+ 38, 3, 208, 149, 30, 5, 1, 240, 249, 3, 208, 149, 30, 5, 1, 230, 231, 3,
+ 208, 149, 30, 5, 1, 206, 217, 3, 243, 225, 25, 208, 149, 30, 5, 1, 251,
+ 2, 30, 5, 1, 248, 106, 30, 5, 1, 238, 235, 30, 5, 1, 244, 37, 30, 5, 1,
+ 241, 37, 30, 5, 1, 202, 83, 30, 5, 1, 240, 248, 30, 5, 1, 209, 74, 30, 5,
+ 1, 230, 230, 30, 5, 1, 229, 247, 30, 5, 1, 228, 24, 30, 5, 1, 223, 246,
+ 30, 5, 1, 221, 84, 30, 5, 1, 203, 170, 30, 5, 1, 220, 34, 30, 5, 1, 218,
+ 167, 30, 5, 1, 216, 59, 30, 5, 1, 46, 212, 144, 30, 5, 1, 212, 144, 30,
+ 5, 1, 209, 207, 30, 5, 1, 206, 216, 30, 5, 1, 218, 192, 30, 5, 1, 246,
+ 142, 30, 5, 1, 217, 202, 30, 5, 1, 220, 36, 30, 5, 1, 230, 231, 3, 243,
+ 224, 30, 5, 1, 206, 217, 3, 243, 224, 30, 5, 1, 220, 35, 3, 208, 149, 30,
+ 5, 1, 206, 217, 3, 208, 149, 30, 5, 1, 220, 37, 3, 208, 149, 30, 6, 230,
+ 19, 97, 30, 248, 107, 97, 30, 209, 75, 97, 30, 206, 217, 3, 236, 116, 97,
+ 30, 206, 217, 3, 251, 126, 25, 236, 116, 97, 30, 206, 217, 3, 243, 232,
+ 25, 236, 116, 97, 30, 218, 193, 97, 30, 218, 168, 97, 30, 230, 19, 97,
+ 30, 1, 250, 126, 229, 0, 30, 5, 1, 250, 126, 229, 0, 30, 1, 211, 71, 30,
+ 5, 1, 211, 71, 30, 1, 243, 199, 30, 5, 1, 243, 199, 30, 1, 229, 0, 30, 5,
+ 1, 229, 0, 30, 1, 214, 246, 30, 5, 1, 214, 246, 84, 6, 1, 213, 35, 84, 5,
+ 1, 213, 35, 84, 6, 1, 240, 45, 84, 5, 1, 240, 45, 84, 6, 1, 229, 127, 84,
+ 5, 1, 229, 127, 84, 6, 1, 236, 107, 84, 5, 1, 236, 107, 84, 6, 1, 238,
+ 230, 84, 5, 1, 238, 230, 84, 6, 1, 213, 1, 84, 5, 1, 213, 1, 84, 6, 1,
+ 244, 52, 84, 5, 1, 244, 52, 30, 229, 248, 97, 30, 216, 60, 97, 30, 226,
+ 221, 212, 145, 97, 30, 1, 202, 227, 30, 6, 209, 75, 97, 30, 226, 221,
+ 241, 38, 97, 30, 216, 73, 226, 221, 241, 38, 97, 30, 6, 1, 212, 242, 30,
+ 5, 1, 212, 242, 30, 6, 226, 221, 212, 145, 97, 30, 6, 1, 214, 243, 30, 5,
+ 1, 214, 243, 30, 216, 60, 3, 211, 32, 97, 30, 6, 216, 73, 226, 221, 212,
+ 145, 97, 30, 6, 242, 83, 226, 221, 212, 145, 97, 30, 6, 216, 73, 242, 83,
+ 226, 221, 212, 145, 97, 36, 6, 1, 231, 111, 3, 237, 253, 36, 6, 1, 230,
+ 234, 36, 6, 1, 243, 130, 36, 6, 1, 238, 52, 36, 6, 1, 207, 11, 231, 110,
+ 36, 6, 1, 241, 252, 36, 6, 1, 247, 135, 75, 36, 6, 1, 203, 11, 36, 6, 1,
+ 230, 161, 36, 6, 1, 227, 80, 36, 6, 1, 222, 41, 36, 6, 1, 208, 8, 36, 6,
+ 1, 229, 49, 36, 6, 1, 235, 206, 3, 237, 253, 36, 6, 1, 212, 228, 68, 36,
+ 6, 1, 241, 248, 36, 6, 1, 63, 36, 6, 1, 248, 162, 36, 6, 1, 206, 55, 36,
+ 6, 1, 238, 105, 36, 6, 1, 244, 75, 36, 6, 1, 231, 110, 36, 6, 1, 202, 71,
+ 36, 6, 1, 202, 92, 36, 6, 1, 75, 36, 6, 1, 212, 228, 75, 36, 6, 1, 173,
+ 36, 6, 1, 241, 122, 36, 6, 1, 241, 103, 36, 6, 1, 241, 92, 36, 6, 1, 78,
+ 36, 6, 1, 219, 34, 36, 6, 1, 241, 28, 36, 6, 1, 241, 17, 36, 6, 1, 209,
+ 187, 36, 6, 1, 68, 36, 6, 1, 241, 154, 36, 6, 1, 152, 36, 6, 1, 208, 14,
+ 36, 6, 1, 246, 170, 36, 6, 1, 213, 90, 36, 6, 1, 213, 46, 36, 6, 1, 237,
+ 91, 54, 36, 6, 1, 203, 30, 36, 6, 1, 212, 7, 54, 36, 6, 1, 74, 36, 6, 1,
+ 202, 213, 36, 6, 1, 198, 36, 5, 1, 63, 36, 5, 1, 248, 162, 36, 5, 1, 206,
+ 55, 36, 5, 1, 238, 105, 36, 5, 1, 244, 75, 36, 5, 1, 231, 110, 36, 5, 1,
+ 202, 71, 36, 5, 1, 202, 92, 36, 5, 1, 75, 36, 5, 1, 212, 228, 75, 36, 5,
+ 1, 173, 36, 5, 1, 241, 122, 36, 5, 1, 241, 103, 36, 5, 1, 241, 92, 36, 5,
+ 1, 78, 36, 5, 1, 219, 34, 36, 5, 1, 241, 28, 36, 5, 1, 241, 17, 36, 5, 1,
+ 209, 187, 36, 5, 1, 68, 36, 5, 1, 241, 154, 36, 5, 1, 152, 36, 5, 1, 208,
+ 14, 36, 5, 1, 246, 170, 36, 5, 1, 213, 90, 36, 5, 1, 213, 46, 36, 5, 1,
+ 237, 91, 54, 36, 5, 1, 203, 30, 36, 5, 1, 212, 7, 54, 36, 5, 1, 74, 36,
+ 5, 1, 202, 213, 36, 5, 1, 198, 36, 5, 1, 231, 111, 3, 237, 253, 36, 5, 1,
+ 230, 234, 36, 5, 1, 243, 130, 36, 5, 1, 238, 52, 36, 5, 1, 207, 11, 231,
+ 110, 36, 5, 1, 241, 252, 36, 5, 1, 247, 135, 75, 36, 5, 1, 203, 11, 36,
+ 5, 1, 230, 161, 36, 5, 1, 227, 80, 36, 5, 1, 222, 41, 36, 5, 1, 208, 8,
+ 36, 5, 1, 229, 49, 36, 5, 1, 235, 206, 3, 237, 253, 36, 5, 1, 212, 228,
+ 68, 36, 5, 1, 241, 248, 36, 6, 1, 220, 36, 36, 5, 1, 220, 36, 36, 6, 1,
+ 203, 66, 36, 5, 1, 203, 66, 36, 6, 1, 230, 228, 74, 36, 5, 1, 230, 228,
+ 74, 36, 6, 1, 227, 86, 202, 183, 36, 5, 1, 227, 86, 202, 183, 36, 6, 1,
+ 230, 228, 227, 86, 202, 183, 36, 5, 1, 230, 228, 227, 86, 202, 183, 36,
+ 6, 1, 248, 73, 202, 183, 36, 5, 1, 248, 73, 202, 183, 36, 6, 1, 230, 228,
+ 248, 73, 202, 183, 36, 5, 1, 230, 228, 248, 73, 202, 183, 36, 6, 1, 228,
+ 225, 36, 5, 1, 228, 225, 36, 6, 1, 217, 202, 36, 5, 1, 217, 202, 36, 6,
+ 1, 239, 235, 36, 5, 1, 239, 235, 36, 6, 1, 230, 186, 36, 5, 1, 230, 186,
+ 36, 6, 1, 230, 187, 3, 52, 237, 254, 251, 138, 36, 5, 1, 230, 187, 3, 52,
+ 237, 254, 251, 138, 36, 6, 1, 207, 14, 36, 5, 1, 207, 14, 36, 6, 1, 215,
+ 191, 220, 36, 36, 5, 1, 215, 191, 220, 36, 36, 6, 1, 220, 37, 3, 208,
+ 197, 36, 5, 1, 220, 37, 3, 208, 197, 36, 6, 1, 219, 224, 36, 5, 1, 219,
+ 224, 36, 6, 1, 229, 0, 36, 5, 1, 229, 0, 36, 209, 35, 54, 39, 36, 208,
+ 197, 39, 36, 219, 141, 39, 36, 244, 142, 218, 71, 39, 36, 217, 196, 218,
+ 71, 39, 36, 218, 55, 39, 36, 236, 12, 209, 35, 54, 39, 36, 224, 114, 54,
+ 36, 6, 1, 212, 228, 235, 206, 3, 209, 248, 36, 5, 1, 212, 228, 235, 206,
+ 3, 209, 248, 36, 6, 1, 213, 139, 54, 36, 5, 1, 213, 139, 54, 36, 6, 1,
+ 241, 29, 3, 208, 254, 36, 5, 1, 241, 29, 3, 208, 254, 36, 6, 1, 238, 106,
+ 3, 206, 215, 36, 5, 1, 238, 106, 3, 206, 215, 36, 6, 1, 238, 106, 3, 95,
+ 36, 5, 1, 238, 106, 3, 95, 36, 6, 1, 238, 106, 3, 101, 113, 36, 5, 1,
+ 238, 106, 3, 101, 113, 36, 6, 1, 202, 72, 3, 244, 20, 36, 5, 1, 202, 72,
+ 3, 244, 20, 36, 6, 1, 202, 93, 3, 244, 20, 36, 5, 1, 202, 93, 3, 244, 20,
+ 36, 6, 1, 230, 44, 3, 244, 20, 36, 5, 1, 230, 44, 3, 244, 20, 36, 6, 1,
+ 230, 44, 3, 80, 95, 36, 5, 1, 230, 44, 3, 80, 95, 36, 6, 1, 230, 44, 3,
+ 95, 36, 5, 1, 230, 44, 3, 95, 36, 6, 1, 248, 214, 173, 36, 5, 1, 248,
+ 214, 173, 36, 6, 1, 241, 93, 3, 244, 20, 36, 5, 1, 241, 93, 3, 244, 20,
+ 36, 6, 32, 241, 93, 238, 105, 36, 5, 32, 241, 93, 238, 105, 36, 6, 1,
+ 219, 35, 3, 101, 113, 36, 5, 1, 219, 35, 3, 101, 113, 36, 6, 1, 251, 145,
+ 152, 36, 5, 1, 251, 145, 152, 36, 6, 1, 241, 18, 3, 244, 20, 36, 5, 1,
+ 241, 18, 3, 244, 20, 36, 6, 1, 209, 188, 3, 244, 20, 36, 5, 1, 209, 188,
+ 3, 244, 20, 36, 6, 1, 211, 53, 68, 36, 5, 1, 211, 53, 68, 36, 6, 1, 211,
+ 53, 106, 3, 95, 36, 5, 1, 211, 53, 106, 3, 95, 36, 6, 1, 237, 160, 3,
+ 244, 20, 36, 5, 1, 237, 160, 3, 244, 20, 36, 6, 32, 209, 188, 208, 14,
+ 36, 5, 32, 209, 188, 208, 14, 36, 6, 1, 246, 171, 3, 244, 20, 36, 5, 1,
+ 246, 171, 3, 244, 20, 36, 6, 1, 246, 171, 3, 80, 95, 36, 5, 1, 246, 171,
+ 3, 80, 95, 36, 6, 1, 213, 12, 36, 5, 1, 213, 12, 36, 6, 1, 251, 145, 246,
+ 170, 36, 5, 1, 251, 145, 246, 170, 36, 6, 1, 251, 145, 246, 171, 3, 244,
+ 20, 36, 5, 1, 251, 145, 246, 171, 3, 244, 20, 36, 1, 219, 133, 36, 6, 1,
+ 202, 72, 3, 247, 214, 36, 5, 1, 202, 72, 3, 247, 214, 36, 6, 1, 230, 44,
+ 3, 113, 36, 5, 1, 230, 44, 3, 113, 36, 6, 1, 241, 123, 3, 209, 248, 36,
+ 5, 1, 241, 123, 3, 209, 248, 36, 6, 1, 241, 93, 3, 113, 36, 5, 1, 241,
+ 93, 3, 113, 36, 6, 1, 241, 93, 3, 209, 248, 36, 5, 1, 241, 93, 3, 209,
+ 248, 36, 6, 1, 229, 138, 246, 170, 36, 5, 1, 229, 138, 246, 170, 36, 6,
+ 1, 241, 104, 3, 209, 248, 36, 5, 1, 241, 104, 3, 209, 248, 36, 5, 1, 219,
+ 133, 36, 6, 1, 34, 3, 247, 214, 36, 5, 1, 34, 3, 247, 214, 36, 6, 1, 34,
+ 3, 243, 231, 36, 5, 1, 34, 3, 243, 231, 36, 6, 32, 34, 231, 110, 36, 5,
+ 32, 34, 231, 110, 36, 6, 1, 231, 111, 3, 247, 214, 36, 5, 1, 231, 111, 3,
+ 247, 214, 36, 6, 1, 214, 192, 36, 5, 1, 214, 192, 36, 6, 1, 214, 193, 3,
+ 243, 231, 36, 5, 1, 214, 193, 3, 243, 231, 36, 6, 1, 202, 72, 3, 243,
+ 231, 36, 5, 1, 202, 72, 3, 243, 231, 36, 6, 1, 202, 93, 3, 243, 231, 36,
+ 5, 1, 202, 93, 3, 243, 231, 36, 6, 1, 251, 145, 241, 252, 36, 5, 1, 251,
+ 145, 241, 252, 36, 6, 1, 235, 206, 3, 225, 170, 36, 5, 1, 235, 206, 3,
+ 225, 170, 36, 6, 1, 235, 206, 3, 243, 231, 36, 5, 1, 235, 206, 3, 243,
+ 231, 36, 6, 1, 158, 3, 243, 231, 36, 5, 1, 158, 3, 243, 231, 36, 6, 1,
+ 248, 225, 78, 36, 5, 1, 248, 225, 78, 36, 6, 1, 248, 225, 158, 3, 243,
+ 231, 36, 5, 1, 248, 225, 158, 3, 243, 231, 36, 6, 1, 188, 3, 243, 231,
+ 36, 5, 1, 188, 3, 243, 231, 36, 6, 1, 106, 3, 225, 170, 36, 5, 1, 106, 3,
+ 225, 170, 36, 6, 1, 106, 3, 243, 231, 36, 5, 1, 106, 3, 243, 231, 36, 6,
+ 1, 106, 3, 52, 165, 36, 5, 1, 106, 3, 52, 165, 36, 6, 1, 246, 171, 3,
+ 243, 231, 36, 5, 1, 246, 171, 3, 243, 231, 36, 6, 1, 238, 106, 3, 244,
+ 20, 36, 5, 1, 238, 106, 3, 244, 20, 36, 6, 1, 203, 31, 3, 243, 231, 36,
+ 5, 1, 203, 31, 3, 243, 231, 36, 6, 1, 238, 106, 3, 211, 32, 25, 113, 36,
+ 5, 1, 238, 106, 3, 211, 32, 25, 113, 36, 6, 1, 237, 160, 3, 113, 36, 5,
+ 1, 237, 160, 3, 113, 36, 6, 1, 237, 160, 3, 95, 36, 5, 1, 237, 160, 3,
+ 95, 36, 6, 1, 229, 10, 244, 75, 36, 5, 1, 229, 10, 244, 75, 36, 6, 1,
+ 229, 10, 243, 130, 36, 5, 1, 229, 10, 243, 130, 36, 6, 1, 229, 10, 202,
+ 21, 36, 5, 1, 229, 10, 202, 21, 36, 6, 1, 229, 10, 241, 244, 36, 5, 1,
+ 229, 10, 241, 244, 36, 6, 1, 229, 10, 227, 80, 36, 5, 1, 229, 10, 227,
+ 80, 36, 6, 1, 229, 10, 222, 41, 36, 5, 1, 229, 10, 222, 41, 36, 6, 1,
+ 229, 10, 212, 71, 36, 5, 1, 229, 10, 212, 71, 36, 6, 1, 229, 10, 208,
+ 191, 36, 5, 1, 229, 10, 208, 191, 36, 6, 1, 216, 73, 202, 92, 36, 5, 1,
+ 216, 73, 202, 92, 36, 6, 1, 241, 123, 3, 113, 36, 5, 1, 241, 123, 3, 113,
+ 36, 6, 1, 227, 161, 36, 5, 1, 227, 161, 36, 6, 1, 216, 61, 36, 5, 1, 216,
+ 61, 36, 6, 1, 203, 99, 36, 5, 1, 203, 99, 36, 6, 1, 217, 126, 36, 5, 1,
+ 217, 126, 36, 6, 1, 204, 62, 36, 5, 1, 204, 62, 36, 6, 1, 251, 26, 173,
+ 36, 5, 1, 251, 26, 173, 36, 6, 1, 241, 123, 3, 101, 113, 36, 5, 1, 241,
+ 123, 3, 101, 113, 36, 6, 1, 241, 93, 3, 101, 113, 36, 5, 1, 241, 93, 3,
+ 101, 113, 36, 6, 1, 219, 35, 3, 244, 20, 36, 5, 1, 219, 35, 3, 244, 20,
+ 36, 6, 1, 213, 13, 3, 244, 20, 36, 5, 1, 213, 13, 3, 244, 20, 36, 6, 1,
+ 241, 93, 3, 49, 113, 36, 5, 1, 241, 93, 3, 49, 113, 36, 6, 1, 241, 237,
+ 36, 5, 1, 241, 237, 36, 6, 1, 244, 124, 36, 5, 1, 244, 124, 36, 6, 1,
+ 241, 123, 3, 244, 20, 36, 5, 1, 241, 123, 3, 244, 20, 178, 6, 1, 250, 5,
+ 178, 6, 1, 248, 122, 178, 6, 1, 238, 69, 178, 6, 1, 244, 212, 178, 6, 1,
+ 241, 167, 178, 6, 1, 202, 116, 178, 6, 1, 241, 147, 178, 6, 1, 240, 250,
+ 178, 6, 1, 135, 178, 6, 1, 202, 71, 178, 6, 1, 231, 19, 178, 6, 1, 227,
+ 83, 178, 6, 1, 203, 174, 178, 6, 1, 247, 92, 178, 6, 1, 229, 180, 178, 6,
+ 1, 236, 136, 178, 6, 1, 230, 181, 178, 6, 1, 238, 116, 178, 6, 1, 246,
+ 160, 178, 6, 1, 224, 240, 178, 6, 1, 203, 11, 178, 6, 1, 221, 152, 178,
+ 6, 1, 213, 90, 178, 6, 1, 205, 189, 178, 6, 1, 246, 199, 178, 6, 1, 219,
+ 16, 178, 6, 1, 230, 144, 178, 6, 1, 216, 220, 178, 6, 1, 214, 155, 178,
+ 6, 1, 205, 234, 178, 6, 1, 208, 194, 178, 6, 1, 216, 122, 178, 6, 1, 245,
+ 254, 178, 6, 1, 202, 252, 178, 6, 1, 218, 102, 178, 6, 1, 229, 191, 178,
+ 6, 1, 220, 60, 178, 6, 1, 240, 47, 178, 65, 1, 49, 162, 215, 252, 178,
+ 250, 160, 178, 241, 96, 82, 178, 240, 212, 82, 178, 245, 233, 178, 217,
+ 47, 82, 178, 251, 146, 82, 178, 5, 1, 250, 5, 178, 5, 1, 248, 122, 178,
+ 5, 1, 238, 69, 178, 5, 1, 244, 212, 178, 5, 1, 241, 167, 178, 5, 1, 202,
+ 116, 178, 5, 1, 241, 147, 178, 5, 1, 240, 250, 178, 5, 1, 135, 178, 5, 1,
+ 202, 71, 178, 5, 1, 231, 19, 178, 5, 1, 227, 83, 178, 5, 1, 203, 174,
+ 178, 5, 1, 247, 92, 178, 5, 1, 229, 180, 178, 5, 1, 236, 136, 178, 5, 1,
+ 230, 181, 178, 5, 1, 238, 116, 178, 5, 1, 246, 160, 178, 5, 1, 224, 240,
+ 178, 5, 1, 203, 11, 178, 5, 1, 221, 152, 178, 5, 1, 213, 90, 178, 5, 1,
+ 205, 189, 178, 5, 1, 246, 199, 178, 5, 1, 219, 16, 178, 5, 1, 230, 144,
+ 178, 5, 1, 216, 220, 178, 5, 1, 214, 155, 178, 5, 1, 205, 234, 178, 5, 1,
+ 208, 194, 178, 5, 1, 216, 122, 178, 5, 1, 245, 254, 178, 5, 1, 202, 252,
+ 178, 5, 1, 218, 102, 178, 5, 1, 229, 191, 178, 5, 1, 220, 60, 178, 5, 1,
+ 240, 47, 178, 5, 32, 241, 168, 202, 252, 178, 239, 102, 211, 61, 178,
+ 235, 220, 216, 15, 178, 240, 246, 54, 227, 221, 178, 240, 246, 54, 178,
+ 242, 60, 54, 110, 251, 139, 240, 241, 110, 251, 139, 214, 156, 110, 251,
+ 139, 213, 69, 110, 251, 139, 202, 103, 217, 109, 110, 251, 139, 202, 103,
+ 238, 254, 110, 251, 139, 208, 209, 110, 251, 139, 216, 70, 110, 251, 139,
+ 202, 101, 110, 251, 139, 219, 61, 110, 251, 139, 203, 23, 110, 251, 139,
+ 209, 115, 110, 251, 139, 238, 167, 110, 251, 139, 238, 168, 223, 208,
+ 110, 251, 139, 238, 165, 110, 251, 139, 217, 110, 219, 90, 110, 251, 139,
+ 209, 158, 238, 183, 110, 251, 139, 219, 40, 110, 251, 139, 250, 43, 237,
+ 152, 110, 251, 139, 223, 218, 110, 251, 139, 225, 145, 110, 251, 139,
+ 224, 229, 110, 251, 139, 224, 230, 229, 192, 110, 251, 139, 244, 151,
+ 110, 251, 139, 217, 121, 110, 251, 139, 209, 158, 217, 104, 110, 251,
+ 139, 203, 33, 248, 123, 202, 233, 110, 251, 139, 220, 43, 110, 251, 139,
+ 231, 69, 110, 251, 139, 244, 53, 110, 251, 139, 202, 28, 110, 131, 225,
+ 75, 246, 61, 110, 218, 63, 213, 15, 110, 218, 63, 237, 82, 214, 156, 110,
+ 218, 63, 237, 82, 219, 54, 110, 218, 63, 237, 82, 217, 114, 110, 218, 63,
+ 236, 232, 110, 218, 63, 208, 11, 110, 218, 63, 214, 156, 110, 218, 63,
+ 219, 54, 110, 218, 63, 217, 114, 110, 218, 63, 236, 128, 110, 218, 63,
+ 236, 129, 237, 84, 35, 206, 59, 110, 218, 63, 217, 51, 110, 218, 63, 244,
+ 198, 219, 245, 225, 105, 110, 218, 63, 224, 219, 110, 217, 179, 225, 102,
+ 110, 218, 63, 216, 200, 110, 217, 179, 219, 63, 110, 218, 63, 213, 0,
+ 243, 85, 110, 218, 63, 212, 124, 243, 85, 110, 217, 179, 212, 8, 219, 56,
+ 110, 131, 206, 221, 243, 85, 110, 131, 226, 251, 243, 85, 110, 217, 179,
+ 221, 41, 237, 151, 110, 218, 63, 217, 115, 217, 109, 110, 1, 251, 30,
+ 110, 1, 248, 108, 110, 1, 238, 67, 110, 1, 244, 178, 110, 1, 237, 67,
+ 110, 1, 206, 59, 110, 1, 202, 95, 110, 1, 237, 21, 110, 1, 209, 132, 110,
+ 1, 202, 236, 110, 1, 46, 230, 22, 110, 1, 230, 22, 110, 1, 228, 20, 110,
+ 1, 46, 224, 247, 110, 1, 224, 247, 110, 1, 46, 221, 40, 110, 1, 221, 40,
+ 110, 1, 214, 249, 110, 1, 250, 3, 110, 1, 46, 219, 34, 110, 1, 219, 34,
+ 110, 1, 46, 208, 15, 110, 1, 208, 15, 110, 1, 217, 74, 110, 1, 216, 91,
+ 110, 1, 212, 255, 110, 1, 209, 203, 110, 32, 203, 9, 52, 206, 59, 110,
+ 32, 203, 9, 206, 60, 202, 236, 110, 32, 203, 9, 52, 202, 236, 110, 217,
+ 179, 238, 167, 110, 217, 179, 238, 165, 10, 42, 54, 10, 2, 214, 242, 10,
+ 239, 170, 225, 88, 10, 2, 215, 24, 10, 2, 214, 245, 10, 42, 131, 55, 250,
+ 140, 245, 106, 215, 204, 250, 140, 239, 140, 215, 204, 10, 216, 165, 250,
+ 140, 218, 247, 224, 116, 54, 250, 140, 218, 247, 209, 153, 209, 37, 54,
+ 251, 86, 54, 10, 245, 233, 10, 244, 138, 213, 130, 10, 218, 65, 206, 40,
+ 54, 10, 2, 224, 95, 10, 2, 215, 3, 251, 33, 204, 86, 10, 2, 251, 33, 250,
+ 64, 10, 2, 216, 198, 251, 32, 10, 2, 216, 206, 251, 12, 250, 210, 10, 2,
+ 209, 240, 10, 5, 138, 209, 251, 10, 5, 138, 32, 137, 3, 228, 29, 3, 203,
+ 47, 10, 5, 138, 202, 107, 10, 5, 240, 71, 10, 5, 244, 172, 10, 5, 229,
+ 229, 10, 213, 143, 10, 1, 82, 10, 208, 70, 70, 217, 179, 82, 10, 217, 47,
+ 82, 10, 1, 229, 233, 203, 47, 10, 1, 237, 127, 10, 1, 137, 3, 225, 166,
+ 55, 10, 1, 137, 3, 237, 128, 55, 10, 1, 204, 71, 3, 237, 128, 55, 10, 1,
+ 137, 3, 237, 128, 56, 10, 1, 89, 3, 237, 128, 55, 10, 1, 251, 30, 10, 1,
+ 248, 138, 10, 1, 209, 170, 225, 98, 10, 1, 209, 169, 10, 1, 209, 88, 10,
+ 1, 230, 158, 10, 1, 237, 148, 10, 1, 229, 140, 10, 1, 244, 184, 10, 1,
+ 209, 100, 10, 1, 216, 122, 10, 1, 202, 107, 10, 1, 214, 161, 10, 1, 213,
+ 39, 10, 1, 215, 28, 10, 1, 244, 207, 10, 1, 209, 251, 10, 1, 202, 110,
+ 10, 1, 251, 59, 10, 1, 238, 114, 10, 1, 229, 190, 3, 120, 187, 55, 10, 1,
+ 229, 190, 3, 126, 187, 56, 10, 1, 240, 75, 89, 3, 230, 239, 206, 164, 10,
+ 1, 240, 75, 89, 3, 120, 187, 55, 10, 1, 240, 75, 89, 3, 126, 187, 55, 10,
+ 209, 209, 10, 1, 240, 47, 10, 1, 217, 119, 10, 1, 230, 22, 10, 1, 228,
+ 28, 10, 1, 225, 5, 10, 1, 221, 178, 10, 1, 237, 43, 10, 1, 204, 70, 10,
+ 1, 137, 225, 129, 10, 1, 203, 47, 10, 240, 69, 10, 244, 170, 10, 229,
+ 227, 10, 240, 71, 10, 244, 172, 10, 229, 229, 10, 213, 80, 10, 210, 222,
+ 10, 225, 164, 55, 10, 237, 128, 55, 10, 237, 128, 56, 10, 210, 246, 251,
+ 30, 10, 230, 239, 244, 172, 10, 131, 221, 179, 238, 85, 10, 201, 248, 10,
+ 22, 2, 5, 206, 165, 55, 10, 22, 2, 230, 239, 5, 206, 165, 55, 10, 22, 2,
+ 70, 56, 10, 216, 73, 244, 172, 10, 240, 72, 3, 120, 243, 83, 10, 204, 72,
+ 237, 128, 56, 250, 140, 17, 202, 84, 250, 140, 17, 105, 250, 140, 17,
+ 108, 250, 140, 17, 147, 250, 140, 17, 149, 250, 140, 17, 170, 250, 140,
+ 17, 195, 250, 140, 17, 213, 111, 250, 140, 17, 199, 250, 140, 17, 222,
+ 63, 10, 218, 246, 54, 10, 244, 68, 213, 130, 10, 209, 35, 213, 130, 10,
+ 239, 233, 218, 61, 211, 94, 10, 1, 243, 84, 248, 138, 10, 1, 243, 84,
+ 217, 119, 10, 1, 210, 199, 251, 30, 10, 1, 137, 204, 87, 10, 1, 137, 3,
+ 204, 72, 237, 128, 55, 10, 1, 137, 3, 204, 72, 237, 128, 56, 10, 1, 138,
+ 237, 127, 10, 1, 138, 237, 128, 251, 30, 10, 1, 138, 237, 128, 204, 70,
+ 10, 1, 106, 3, 237, 128, 55, 10, 1, 138, 237, 128, 203, 47, 10, 1, 207,
+ 233, 10, 1, 207, 231, 10, 1, 248, 148, 10, 1, 209, 170, 3, 215, 252, 10,
+ 1, 209, 170, 3, 126, 187, 87, 242, 68, 10, 1, 219, 16, 10, 1, 209, 167,
+ 10, 1, 248, 136, 10, 1, 151, 3, 237, 128, 55, 10, 1, 151, 3, 120, 187,
+ 80, 55, 10, 1, 220, 254, 10, 1, 242, 5, 10, 1, 151, 3, 126, 187, 55, 10,
+ 1, 209, 191, 10, 1, 209, 189, 10, 1, 244, 115, 10, 1, 244, 185, 3, 215,
+ 252, 10, 1, 244, 185, 3, 70, 56, 10, 1, 244, 185, 3, 70, 248, 126, 25, 5,
+ 209, 251, 10, 1, 244, 191, 10, 1, 244, 117, 10, 1, 242, 33, 10, 1, 244,
+ 185, 3, 126, 187, 87, 242, 68, 10, 1, 244, 185, 3, 239, 147, 187, 55, 10,
+ 1, 215, 177, 10, 1, 216, 123, 3, 5, 206, 164, 10, 1, 216, 123, 3, 215,
+ 252, 10, 1, 216, 123, 3, 70, 56, 10, 1, 216, 123, 3, 5, 206, 165, 56, 10,
+ 1, 216, 123, 3, 70, 248, 126, 25, 70, 55, 10, 1, 216, 123, 3, 120, 187,
+ 55, 10, 1, 230, 155, 10, 1, 216, 123, 3, 239, 147, 187, 55, 10, 1, 214,
+ 162, 3, 70, 248, 126, 25, 70, 55, 10, 1, 214, 162, 3, 126, 187, 56, 10,
+ 1, 214, 162, 3, 126, 187, 248, 126, 25, 126, 187, 55, 10, 1, 215, 29, 3,
+ 120, 187, 56, 10, 1, 215, 29, 3, 126, 187, 55, 10, 1, 209, 252, 3, 126,
+ 187, 55, 10, 1, 251, 60, 3, 126, 187, 55, 10, 1, 243, 84, 240, 47, 10, 1,
+ 240, 48, 3, 70, 224, 5, 56, 10, 1, 240, 48, 3, 70, 56, 10, 1, 206, 48,
+ 10, 1, 240, 48, 3, 126, 187, 56, 10, 1, 219, 14, 10, 1, 217, 120, 3, 70,
+ 55, 10, 1, 217, 120, 3, 126, 187, 55, 10, 1, 229, 189, 10, 1, 210, 169,
+ 230, 22, 10, 1, 230, 23, 3, 215, 252, 10, 1, 230, 23, 3, 70, 55, 10, 1,
+ 222, 205, 10, 1, 230, 23, 3, 126, 187, 56, 10, 1, 238, 251, 10, 1, 238,
+ 252, 3, 215, 252, 10, 1, 222, 126, 10, 1, 238, 252, 3, 120, 187, 56, 10,
+ 1, 237, 217, 10, 1, 238, 252, 3, 126, 187, 55, 10, 1, 228, 29, 3, 5, 206,
+ 164, 10, 1, 228, 29, 3, 70, 55, 10, 1, 228, 29, 3, 126, 187, 55, 10, 1,
+ 228, 29, 3, 126, 187, 56, 10, 1, 221, 179, 3, 70, 56, 10, 1, 221, 179,
+ 238, 85, 10, 1, 215, 230, 10, 1, 221, 179, 3, 215, 252, 10, 1, 221, 179,
+ 3, 126, 187, 55, 10, 1, 237, 44, 243, 109, 10, 1, 209, 192, 3, 70, 55,
+ 10, 1, 237, 44, 3, 89, 55, 10, 1, 237, 44, 238, 36, 10, 1, 237, 44, 238,
+ 37, 3, 237, 128, 55, 10, 1, 209, 170, 225, 99, 238, 36, 10, 1, 204, 71,
+ 3, 215, 252, 10, 1, 229, 76, 220, 73, 10, 1, 220, 73, 10, 1, 68, 10, 1,
+ 202, 213, 10, 1, 229, 76, 202, 213, 10, 1, 204, 71, 3, 120, 187, 55, 10,
+ 1, 206, 55, 10, 1, 240, 75, 203, 47, 10, 1, 89, 3, 209, 248, 10, 1, 89,
+ 3, 5, 206, 164, 10, 1, 204, 71, 3, 70, 55, 10, 1, 74, 10, 1, 89, 3, 126,
+ 187, 56, 10, 1, 89, 248, 223, 10, 1, 89, 248, 224, 3, 237, 128, 55, 10,
+ 239, 102, 211, 61, 10, 1, 251, 109, 10, 5, 138, 32, 215, 29, 3, 228, 29,
+ 3, 137, 225, 129, 10, 5, 138, 32, 217, 120, 3, 228, 29, 3, 137, 225, 129,
+ 10, 5, 138, 83, 81, 18, 10, 5, 138, 228, 29, 251, 30, 10, 5, 138, 230,
+ 158, 10, 5, 138, 126, 243, 83, 10, 5, 138, 214, 161, 10, 241, 84, 76,
+ 250, 7, 10, 211, 90, 76, 215, 143, 241, 123, 236, 227, 10, 5, 138, 215,
+ 189, 202, 84, 10, 5, 138, 206, 219, 216, 142, 202, 84, 10, 5, 138, 243,
+ 84, 237, 65, 76, 229, 140, 10, 5, 138, 83, 64, 18, 10, 5, 124, 214, 161,
+ 10, 5, 138, 225, 165, 10, 5, 204, 70, 10, 5, 203, 47, 10, 5, 138, 203,
+ 47, 10, 5, 138, 221, 178, 10, 218, 97, 76, 215, 14, 10, 241, 94, 246,
+ 218, 124, 211, 61, 10, 241, 94, 246, 218, 138, 211, 61, 10, 215, 189,
+ 138, 211, 62, 3, 240, 8, 246, 217, 10, 5, 124, 225, 5, 10, 1, 244, 185,
+ 3, 230, 239, 206, 164, 10, 1, 216, 123, 3, 230, 239, 206, 164, 240, 202,
+ 250, 140, 17, 202, 84, 240, 202, 250, 140, 17, 105, 240, 202, 250, 140,
+ 17, 108, 240, 202, 250, 140, 17, 147, 240, 202, 250, 140, 17, 149, 240,
+ 202, 250, 140, 17, 170, 240, 202, 250, 140, 17, 195, 240, 202, 250, 140,
+ 17, 213, 111, 240, 202, 250, 140, 17, 199, 240, 202, 250, 140, 17, 222,
+ 63, 10, 1, 213, 40, 3, 70, 56, 10, 1, 244, 208, 3, 70, 56, 10, 1, 238,
+ 115, 3, 70, 56, 10, 2, 212, 123, 250, 235, 10, 2, 212, 123, 218, 27, 224,
+ 240, 10, 1, 237, 44, 3, 230, 239, 206, 164, 210, 89, 241, 84, 76, 219,
+ 88, 210, 89, 210, 195, 239, 102, 211, 61, 210, 89, 210, 248, 239, 102,
+ 211, 61, 210, 89, 210, 195, 245, 242, 210, 89, 210, 248, 245, 242, 210,
+ 89, 236, 106, 245, 242, 210, 89, 245, 243, 212, 68, 227, 222, 210, 89,
+ 245, 243, 212, 68, 216, 16, 210, 89, 210, 195, 245, 243, 212, 68, 227,
+ 222, 210, 89, 210, 248, 245, 243, 212, 68, 216, 16, 210, 89, 245, 186,
+ 210, 89, 237, 89, 220, 91, 210, 89, 237, 89, 224, 217, 210, 89, 237, 89,
+ 250, 61, 210, 89, 251, 146, 82, 210, 89, 1, 251, 35, 210, 89, 1, 210,
+ 199, 251, 35, 210, 89, 1, 248, 105, 210, 89, 1, 238, 241, 210, 89, 1,
+ 238, 242, 238, 219, 210, 89, 1, 244, 181, 210, 89, 1, 243, 84, 244, 182,
+ 215, 246, 210, 89, 1, 237, 67, 210, 89, 1, 204, 70, 210, 89, 1, 202, 107,
+ 210, 89, 1, 237, 19, 210, 89, 1, 209, 128, 210, 89, 1, 209, 129, 238,
+ 219, 210, 89, 1, 202, 200, 210, 89, 1, 202, 201, 237, 67, 210, 89, 1,
+ 229, 250, 210, 89, 1, 228, 27, 210, 89, 1, 224, 112, 210, 89, 1, 221, 40,
+ 210, 89, 1, 213, 136, 210, 89, 1, 46, 213, 136, 210, 89, 1, 74, 210, 89,
+ 1, 219, 34, 210, 89, 1, 216, 73, 219, 34, 210, 89, 1, 215, 26, 210, 89,
+ 1, 217, 113, 210, 89, 1, 215, 246, 210, 89, 1, 212, 255, 210, 89, 1, 209,
+ 201, 210, 89, 1, 218, 231, 248, 92, 210, 89, 1, 218, 231, 238, 112, 210,
+ 89, 1, 218, 231, 243, 252, 210, 89, 217, 192, 55, 210, 89, 217, 192, 56,
+ 210, 89, 217, 192, 242, 82, 210, 89, 202, 11, 55, 210, 89, 202, 11, 56,
+ 210, 89, 202, 11, 242, 82, 210, 89, 216, 161, 55, 210, 89, 216, 161, 56,
+ 210, 89, 242, 83, 202, 18, 236, 105, 210, 89, 242, 83, 202, 18, 250, 211,
+ 210, 89, 237, 70, 55, 210, 89, 237, 70, 56, 210, 89, 237, 69, 242, 82,
+ 210, 89, 241, 11, 55, 210, 89, 241, 11, 56, 210, 89, 215, 109, 210, 89,
+ 240, 41, 243, 85, 210, 89, 217, 25, 210, 89, 215, 137, 210, 89, 120, 80,
+ 187, 55, 210, 89, 120, 80, 187, 56, 210, 89, 126, 187, 55, 210, 89, 126,
+ 187, 56, 210, 89, 220, 89, 227, 115, 55, 210, 89, 220, 89, 227, 115, 56,
+ 210, 89, 223, 194, 210, 89, 248, 222, 210, 89, 1, 212, 4, 202, 78, 210,
+ 89, 1, 212, 4, 229, 133, 210, 89, 1, 212, 4, 240, 60, 10, 1, 248, 139, 3,
+ 126, 187, 236, 55, 56, 10, 1, 248, 139, 3, 70, 248, 126, 25, 126, 187,
+ 55, 10, 1, 248, 139, 3, 126, 187, 218, 59, 177, 56, 10, 1, 248, 139, 3,
+ 126, 187, 218, 59, 177, 248, 126, 25, 120, 187, 55, 10, 1, 248, 139, 3,
+ 120, 187, 248, 126, 25, 70, 55, 10, 1, 248, 139, 3, 230, 239, 5, 206,
+ 165, 56, 10, 1, 248, 139, 3, 5, 206, 164, 10, 1, 151, 3, 120, 187, 55,
+ 10, 1, 151, 3, 126, 187, 218, 59, 177, 56, 10, 1, 244, 185, 3, 120, 187,
+ 205, 244, 248, 126, 25, 5, 209, 251, 10, 1, 244, 185, 3, 230, 239, 5,
+ 206, 165, 56, 10, 1, 216, 123, 3, 95, 10, 1, 214, 162, 3, 239, 147, 187,
+ 55, 10, 1, 251, 60, 3, 120, 187, 55, 10, 1, 251, 60, 3, 126, 187, 218,
+ 59, 183, 55, 10, 1, 251, 60, 3, 120, 187, 205, 244, 55, 10, 1, 240, 48,
+ 3, 120, 187, 56, 10, 1, 240, 48, 3, 126, 187, 218, 59, 177, 56, 10, 1,
+ 229, 190, 3, 70, 55, 10, 1, 229, 190, 3, 126, 187, 55, 10, 1, 229, 190,
+ 3, 126, 187, 218, 59, 177, 56, 10, 1, 83, 3, 70, 55, 10, 1, 83, 3, 70,
+ 56, 10, 1, 221, 179, 3, 120, 187, 56, 10, 1, 221, 179, 3, 5, 209, 251,
+ 10, 1, 221, 179, 3, 5, 206, 164, 10, 1, 228, 29, 3, 142, 10, 1, 216, 123,
+ 3, 120, 187, 205, 244, 55, 10, 1, 216, 123, 3, 237, 128, 55, 10, 1, 214,
+ 162, 3, 120, 187, 205, 244, 55, 10, 1, 151, 3, 5, 10, 1, 209, 252, 56,
+ 10, 1, 151, 3, 5, 10, 1, 209, 252, 25, 120, 243, 83, 10, 1, 214, 162, 3,
+ 5, 10, 1, 209, 252, 25, 120, 243, 83, 10, 1, 216, 123, 3, 5, 10, 1, 209,
+ 252, 25, 120, 243, 83, 10, 1, 151, 3, 5, 10, 1, 209, 252, 55, 10, 1, 137,
+ 3, 240, 202, 250, 140, 17, 120, 55, 10, 1, 137, 3, 240, 202, 250, 140,
+ 17, 126, 55, 10, 1, 240, 75, 89, 3, 240, 202, 250, 140, 17, 120, 55, 10,
+ 1, 240, 75, 89, 3, 240, 202, 250, 140, 17, 126, 55, 10, 1, 240, 75, 89,
+ 3, 240, 202, 250, 140, 17, 239, 147, 56, 10, 1, 204, 71, 3, 240, 202,
+ 250, 140, 17, 120, 55, 10, 1, 204, 71, 3, 240, 202, 250, 140, 17, 126,
+ 55, 10, 1, 89, 248, 224, 3, 240, 202, 250, 140, 17, 120, 55, 10, 1, 89,
+ 248, 224, 3, 240, 202, 250, 140, 17, 126, 55, 10, 1, 151, 3, 240, 202,
+ 250, 140, 17, 239, 147, 56, 10, 1, 214, 162, 3, 240, 202, 250, 140, 17,
+ 239, 147, 55, 10, 1, 214, 162, 3, 230, 239, 206, 164, 10, 1, 230, 23, 3,
+ 120, 187, 55, 209, 105, 1, 237, 157, 209, 105, 1, 213, 49, 209, 105, 1,
+ 221, 177, 209, 105, 1, 216, 216, 209, 105, 1, 249, 30, 209, 105, 1, 227,
+ 158, 209, 105, 1, 230, 37, 209, 105, 1, 251, 19, 209, 105, 1, 206, 84,
+ 209, 105, 1, 225, 4, 209, 105, 1, 240, 106, 209, 105, 1, 243, 255, 209,
+ 105, 1, 209, 107, 209, 105, 1, 228, 109, 209, 105, 1, 239, 4, 209, 105,
+ 1, 238, 42, 209, 105, 1, 214, 160, 209, 105, 1, 244, 136, 209, 105, 1,
+ 202, 98, 209, 105, 1, 209, 202, 209, 105, 1, 203, 110, 209, 105, 1, 219,
+ 47, 209, 105, 1, 230, 166, 209, 105, 1, 246, 173, 209, 105, 1, 207, 240,
+ 209, 105, 1, 237, 11, 209, 105, 1, 229, 143, 209, 105, 1, 209, 106, 209,
+ 105, 1, 202, 114, 209, 105, 1, 213, 38, 209, 105, 1, 215, 32, 209, 105,
+ 1, 244, 210, 209, 105, 1, 135, 209, 105, 1, 202, 17, 209, 105, 1, 251,
+ 56, 209, 105, 1, 238, 113, 209, 105, 1, 217, 123, 209, 105, 1, 204, 109,
+ 209, 105, 251, 148, 209, 105, 251, 246, 209, 105, 235, 165, 209, 105,
+ 241, 160, 209, 105, 207, 32, 209, 105, 220, 17, 209, 105, 241, 170, 209,
+ 105, 240, 193, 209, 105, 220, 88, 209, 105, 220, 96, 209, 105, 210, 222,
+ 209, 105, 1, 223, 106, 221, 255, 17, 202, 84, 221, 255, 17, 105, 221,
+ 255, 17, 108, 221, 255, 17, 147, 221, 255, 17, 149, 221, 255, 17, 170,
+ 221, 255, 17, 195, 221, 255, 17, 213, 111, 221, 255, 17, 199, 221, 255,
+ 17, 222, 63, 221, 255, 1, 63, 221, 255, 1, 241, 161, 221, 255, 1, 75,
+ 221, 255, 1, 74, 221, 255, 1, 68, 221, 255, 1, 220, 18, 221, 255, 1, 78,
+ 221, 255, 1, 244, 199, 221, 255, 1, 223, 163, 221, 255, 1, 249, 32, 221,
+ 255, 1, 185, 221, 255, 1, 210, 22, 221, 255, 1, 230, 181, 221, 255, 1,
+ 246, 199, 221, 255, 1, 244, 212, 221, 255, 1, 216, 220, 221, 255, 1, 215,
+ 185, 221, 255, 1, 215, 36, 221, 255, 1, 238, 207, 221, 255, 1, 240, 108,
+ 221, 255, 1, 173, 221, 255, 1, 228, 113, 221, 255, 1, 223, 111, 203, 252,
+ 221, 255, 1, 192, 221, 255, 1, 221, 11, 221, 255, 1, 201, 201, 221, 255,
+ 1, 152, 221, 255, 1, 204, 111, 221, 255, 1, 198, 221, 255, 1, 221, 12,
+ 203, 252, 221, 255, 1, 230, 93, 230, 181, 221, 255, 1, 230, 93, 246, 199,
+ 221, 255, 1, 230, 93, 216, 220, 221, 255, 39, 212, 228, 138, 208, 161,
+ 221, 255, 39, 212, 228, 124, 208, 161, 221, 255, 39, 212, 228, 215, 245,
+ 208, 161, 221, 255, 39, 163, 244, 19, 208, 161, 221, 255, 39, 163, 138,
+ 208, 161, 221, 255, 39, 163, 124, 208, 161, 221, 255, 39, 163, 215, 245,
+ 208, 161, 221, 255, 39, 223, 71, 82, 221, 255, 39, 52, 70, 55, 221, 255,
+ 138, 143, 250, 160, 221, 255, 124, 143, 250, 160, 221, 255, 16, 220, 19,
+ 244, 33, 221, 255, 16, 238, 206, 221, 255, 245, 233, 221, 255, 240, 212,
+ 82, 221, 255, 228, 84, 214, 252, 1, 251, 37, 214, 252, 1, 248, 51, 214,
+ 252, 1, 238, 240, 214, 252, 1, 244, 183, 214, 252, 1, 230, 192, 214, 252,
+ 1, 249, 30, 214, 252, 1, 202, 87, 214, 252, 1, 230, 201, 214, 252, 1,
+ 208, 200, 214, 252, 1, 202, 182, 214, 252, 1, 230, 38, 214, 252, 1, 228,
+ 106, 214, 252, 1, 224, 112, 214, 252, 1, 221, 40, 214, 252, 1, 212, 121,
+ 214, 252, 1, 231, 49, 214, 252, 1, 240, 26, 214, 252, 1, 208, 18, 214,
+ 252, 1, 217, 44, 214, 252, 1, 215, 246, 214, 252, 1, 213, 66, 214, 252,
+ 1, 210, 17, 214, 252, 131, 231, 49, 214, 252, 131, 231, 48, 214, 252,
+ 131, 220, 84, 214, 252, 131, 244, 197, 214, 252, 65, 1, 241, 42, 202,
+ 182, 214, 252, 131, 241, 42, 202, 182, 214, 252, 22, 2, 163, 74, 214,
+ 252, 22, 2, 74, 214, 252, 22, 2, 219, 197, 252, 25, 214, 252, 22, 2, 163,
+ 252, 25, 214, 252, 22, 2, 252, 25, 214, 252, 22, 2, 219, 197, 63, 214,
+ 252, 22, 2, 163, 63, 214, 252, 22, 2, 63, 214, 252, 65, 1, 212, 228, 63,
+ 214, 252, 22, 2, 212, 228, 63, 214, 252, 22, 2, 163, 68, 214, 252, 22, 2,
+ 68, 214, 252, 65, 1, 75, 214, 252, 22, 2, 163, 75, 214, 252, 22, 2, 75,
+ 214, 252, 22, 2, 78, 214, 252, 22, 2, 210, 222, 214, 252, 131, 222, 223,
+ 214, 252, 217, 179, 222, 223, 214, 252, 217, 179, 251, 83, 214, 252, 217,
+ 179, 250, 222, 214, 252, 217, 179, 248, 202, 214, 252, 217, 179, 250, 44,
+ 214, 252, 217, 179, 212, 243, 214, 252, 251, 146, 82, 214, 252, 217, 179,
+ 224, 250, 217, 80, 214, 252, 217, 179, 202, 25, 214, 252, 217, 179, 217,
+ 80, 214, 252, 217, 179, 202, 113, 214, 252, 217, 179, 207, 170, 214, 252,
+ 217, 179, 250, 111, 214, 252, 217, 179, 212, 8, 225, 77, 214, 252, 217,
+ 179, 250, 206, 225, 118, 1, 237, 134, 225, 118, 1, 251, 232, 225, 118, 1,
+ 251, 81, 225, 118, 1, 251, 122, 225, 118, 1, 251, 73, 225, 118, 1, 206,
+ 184, 225, 118, 1, 250, 1, 225, 118, 1, 230, 201, 225, 118, 1, 250, 41,
+ 225, 118, 1, 251, 42, 225, 118, 1, 251, 47, 225, 118, 1, 251, 39, 225,
+ 118, 1, 250, 247, 225, 118, 1, 250, 231, 225, 118, 1, 250, 81, 225, 118,
+ 1, 231, 49, 225, 118, 1, 250, 175, 225, 118, 1, 250, 51, 225, 118, 1,
+ 250, 148, 225, 118, 1, 250, 144, 225, 118, 1, 250, 75, 225, 118, 1, 250,
+ 49, 225, 118, 1, 242, 18, 225, 118, 1, 230, 30, 225, 118, 1, 251, 59,
+ 225, 118, 251, 87, 82, 225, 118, 205, 187, 82, 225, 118, 238, 179, 82,
+ 225, 118, 217, 178, 10, 1, 248, 139, 3, 5, 206, 165, 56, 10, 1, 248, 139,
+ 3, 237, 128, 55, 10, 1, 184, 3, 120, 187, 55, 10, 1, 209, 252, 3, 120,
+ 187, 55, 10, 1, 240, 48, 3, 70, 248, 126, 25, 126, 187, 55, 10, 1, 217,
+ 120, 3, 70, 56, 10, 1, 228, 29, 3, 52, 142, 10, 1, 83, 3, 126, 187, 55,
+ 10, 1, 89, 3, 120, 187, 248, 126, 25, 237, 128, 55, 10, 1, 89, 3, 120,
+ 187, 248, 126, 25, 70, 55, 10, 1, 216, 123, 3, 227, 14, 10, 1, 204, 71,
+ 3, 70, 204, 4, 10, 1, 215, 215, 203, 47, 10, 1, 124, 251, 30, 10, 1, 244,
+ 185, 3, 126, 187, 56, 10, 1, 215, 29, 3, 126, 187, 56, 10, 1, 238, 252,
+ 3, 230, 239, 95, 10, 1, 211, 53, 204, 70, 10, 1, 202, 108, 3, 230, 239,
+ 206, 165, 55, 10, 1, 251, 60, 3, 126, 187, 56, 10, 1, 230, 23, 3, 70, 56,
+ 10, 207, 174, 244, 173, 56, 10, 245, 93, 240, 71, 10, 245, 93, 244, 172,
+ 10, 245, 93, 229, 229, 10, 245, 93, 240, 69, 10, 245, 93, 244, 170, 10,
+ 245, 93, 229, 227, 10, 143, 118, 70, 55, 10, 143, 120, 187, 55, 10, 143,
+ 227, 15, 55, 10, 143, 118, 70, 56, 10, 143, 120, 187, 56, 10, 143, 227,
+ 15, 56, 10, 171, 240, 69, 10, 171, 244, 170, 10, 171, 229, 227, 10, 5,
+ 138, 204, 70, 10, 240, 72, 3, 215, 252, 10, 240, 72, 3, 70, 55, 10, 229,
+ 230, 3, 70, 56, 10, 49, 250, 95, 55, 10, 50, 250, 95, 55, 10, 49, 250,
+ 95, 56, 10, 50, 250, 95, 56, 10, 52, 50, 250, 95, 55, 10, 52, 50, 250,
+ 95, 87, 3, 243, 85, 10, 50, 250, 95, 87, 3, 243, 85, 10, 244, 173, 3,
+ 243, 85, 10, 131, 212, 154, 221, 179, 238, 85, 92, 2, 230, 239, 247, 52,
+ 92, 2, 247, 52, 92, 2, 250, 180, 92, 2, 205, 199, 92, 1, 212, 228, 63,
+ 92, 1, 63, 92, 1, 252, 25, 92, 1, 75, 92, 1, 231, 83, 92, 1, 68, 92, 1,
+ 206, 178, 92, 1, 125, 146, 92, 1, 125, 159, 92, 1, 247, 55, 74, 92, 1,
+ 212, 228, 74, 92, 1, 74, 92, 1, 251, 64, 92, 1, 247, 55, 78, 92, 1, 212,
+ 228, 78, 92, 1, 78, 92, 1, 250, 34, 92, 1, 173, 92, 1, 229, 144, 92, 1,
+ 239, 8, 92, 1, 238, 119, 92, 1, 222, 203, 92, 1, 247, 92, 92, 1, 246,
+ 199, 92, 1, 230, 181, 92, 1, 230, 149, 92, 1, 221, 11, 92, 1, 207, 241,
+ 92, 1, 207, 229, 92, 1, 244, 120, 92, 1, 244, 104, 92, 1, 221, 227, 92,
+ 1, 210, 22, 92, 1, 209, 108, 92, 1, 244, 212, 92, 1, 244, 1, 92, 1, 201,
+ 201, 92, 1, 221, 209, 92, 1, 185, 92, 1, 218, 208, 92, 1, 249, 32, 92, 1,
+ 248, 98, 92, 1, 192, 92, 1, 198, 92, 1, 216, 220, 92, 1, 215, 185, 92, 1,
+ 228, 113, 92, 1, 227, 77, 92, 1, 227, 68, 92, 1, 206, 86, 92, 1, 213, 90,
+ 92, 1, 211, 164, 92, 1, 215, 36, 92, 1, 152, 92, 22, 2, 220, 73, 92, 22,
+ 2, 220, 16, 92, 2, 221, 51, 92, 2, 250, 17, 92, 22, 2, 252, 25, 92, 22,
+ 2, 75, 92, 22, 2, 231, 83, 92, 22, 2, 68, 92, 22, 2, 206, 178, 92, 22, 2,
+ 125, 146, 92, 22, 2, 125, 215, 186, 92, 22, 2, 247, 55, 74, 92, 22, 2,
+ 212, 228, 74, 92, 22, 2, 74, 92, 22, 2, 251, 64, 92, 22, 2, 247, 55, 78,
+ 92, 22, 2, 212, 228, 78, 92, 22, 2, 78, 92, 22, 2, 250, 34, 92, 2, 205,
+ 204, 92, 22, 2, 217, 229, 74, 92, 22, 2, 250, 13, 92, 220, 39, 92, 211,
+ 42, 2, 207, 26, 92, 211, 42, 2, 250, 182, 92, 237, 254, 251, 138, 92,
+ 251, 126, 251, 138, 92, 22, 2, 247, 55, 163, 74, 92, 22, 2, 207, 24, 92,
+ 22, 2, 206, 177, 92, 1, 217, 126, 92, 1, 229, 125, 92, 1, 238, 94, 92, 1,
+ 202, 116, 92, 1, 244, 109, 92, 1, 216, 61, 92, 1, 240, 108, 92, 1, 202,
+ 168, 92, 1, 125, 215, 186, 92, 1, 125, 227, 78, 92, 22, 2, 125, 159, 92,
+ 22, 2, 125, 227, 78, 92, 244, 166, 92, 52, 244, 166, 92, 17, 202, 84, 92,
+ 17, 105, 92, 17, 108, 92, 17, 147, 92, 17, 149, 92, 17, 170, 92, 17, 195,
+ 92, 17, 213, 111, 92, 17, 199, 92, 17, 222, 63, 92, 251, 146, 54, 92, 2,
+ 138, 211, 227, 243, 85, 92, 1, 247, 55, 63, 92, 1, 220, 73, 92, 1, 220,
+ 16, 92, 1, 250, 13, 92, 1, 207, 24, 92, 1, 206, 177, 92, 1, 225, 82, 244,
+ 120, 92, 1, 202, 80, 92, 1, 79, 198, 92, 1, 238, 155, 92, 1, 230, 129,
+ 92, 1, 238, 45, 211, 61, 92, 1, 244, 110, 92, 1, 248, 198, 179, 250, 209,
+ 179, 2, 247, 52, 179, 2, 250, 180, 179, 2, 205, 199, 179, 1, 63, 179, 1,
+ 252, 25, 179, 1, 75, 179, 1, 231, 83, 179, 1, 68, 179, 1, 206, 178, 179,
+ 1, 125, 146, 179, 1, 125, 159, 179, 1, 74, 179, 1, 251, 64, 179, 1, 78,
+ 179, 1, 250, 34, 179, 1, 173, 179, 1, 229, 144, 179, 1, 239, 8, 179, 1,
+ 238, 119, 179, 1, 222, 203, 179, 1, 247, 92, 179, 1, 246, 199, 179, 1,
+ 230, 181, 179, 1, 230, 149, 179, 1, 221, 11, 179, 1, 207, 241, 179, 1,
+ 207, 229, 179, 1, 244, 120, 179, 1, 244, 104, 179, 1, 221, 227, 179, 1,
+ 210, 22, 179, 1, 209, 108, 179, 1, 244, 212, 179, 1, 244, 1, 179, 1, 201,
+ 201, 179, 1, 185, 179, 1, 218, 208, 179, 1, 249, 32, 179, 1, 248, 98,
+ 179, 1, 192, 179, 1, 198, 179, 1, 216, 220, 179, 1, 228, 113, 179, 1,
+ 213, 90, 179, 1, 211, 164, 179, 1, 215, 36, 179, 1, 152, 179, 2, 221, 51,
+ 179, 2, 250, 17, 179, 22, 2, 252, 25, 179, 22, 2, 75, 179, 22, 2, 231,
+ 83, 179, 22, 2, 68, 179, 22, 2, 206, 178, 179, 22, 2, 125, 146, 179, 22,
+ 2, 125, 215, 186, 179, 22, 2, 74, 179, 22, 2, 251, 64, 179, 22, 2, 78,
+ 179, 22, 2, 250, 34, 179, 2, 205, 204, 179, 1, 229, 135, 210, 22, 179,
+ 250, 35, 227, 196, 82, 179, 1, 215, 185, 179, 1, 216, 61, 179, 1, 202,
+ 168, 179, 1, 125, 215, 186, 179, 1, 125, 227, 78, 179, 22, 2, 125, 159,
+ 179, 22, 2, 125, 227, 78, 179, 17, 202, 84, 179, 17, 105, 179, 17, 108,
+ 179, 17, 147, 179, 17, 149, 179, 17, 170, 179, 17, 195, 179, 17, 213,
+ 111, 179, 17, 199, 179, 17, 222, 63, 179, 1, 216, 221, 3, 101, 243, 227,
+ 179, 1, 216, 221, 3, 226, 251, 243, 227, 179, 215, 120, 82, 179, 215,
+ 120, 54, 179, 245, 92, 221, 43, 105, 179, 245, 92, 221, 43, 108, 179,
+ 245, 92, 221, 43, 147, 179, 245, 92, 221, 43, 149, 179, 245, 92, 221, 43,
+ 118, 227, 180, 209, 98, 209, 93, 244, 31, 179, 245, 92, 244, 32, 212, 82,
+ 179, 230, 202, 179, 238, 231, 82, 237, 198, 2, 251, 121, 248, 66, 237,
+ 198, 2, 248, 66, 237, 198, 2, 205, 199, 237, 198, 1, 63, 237, 198, 1,
+ 252, 25, 237, 198, 1, 75, 237, 198, 1, 231, 83, 237, 198, 1, 68, 237,
+ 198, 1, 206, 178, 237, 198, 1, 241, 161, 237, 198, 1, 251, 64, 237, 198,
+ 1, 220, 18, 237, 198, 1, 250, 34, 237, 198, 1, 173, 237, 198, 1, 229,
+ 144, 237, 198, 1, 239, 8, 237, 198, 1, 238, 119, 237, 198, 1, 222, 203,
+ 237, 198, 1, 247, 92, 237, 198, 1, 246, 199, 237, 198, 1, 230, 181, 237,
+ 198, 1, 230, 149, 237, 198, 1, 221, 11, 237, 198, 1, 207, 241, 237, 198,
+ 1, 207, 229, 237, 198, 1, 244, 120, 237, 198, 1, 244, 104, 237, 198, 1,
+ 221, 227, 237, 198, 1, 210, 22, 237, 198, 1, 209, 108, 237, 198, 1, 244,
+ 212, 237, 198, 1, 244, 1, 237, 198, 1, 201, 201, 237, 198, 1, 185, 237,
+ 198, 1, 218, 208, 237, 198, 1, 249, 32, 237, 198, 1, 248, 98, 237, 198,
+ 1, 192, 237, 198, 1, 198, 237, 198, 1, 216, 220, 237, 198, 1, 228, 113,
+ 237, 198, 1, 227, 77, 237, 198, 1, 206, 86, 237, 198, 1, 213, 90, 237,
+ 198, 1, 215, 36, 237, 198, 1, 152, 237, 198, 2, 221, 51, 237, 198, 22, 2,
+ 252, 25, 237, 198, 22, 2, 75, 237, 198, 22, 2, 231, 83, 237, 198, 22, 2,
+ 68, 237, 198, 22, 2, 206, 178, 237, 198, 22, 2, 241, 161, 237, 198, 22,
+ 2, 251, 64, 237, 198, 22, 2, 220, 18, 237, 198, 22, 2, 250, 34, 237, 198,
+ 2, 205, 204, 237, 198, 2, 207, 28, 237, 198, 1, 229, 125, 237, 198, 1,
+ 238, 94, 237, 198, 1, 202, 116, 237, 198, 1, 215, 185, 237, 198, 1, 240,
+ 108, 237, 198, 17, 202, 84, 237, 198, 17, 105, 237, 198, 17, 108, 237,
+ 198, 17, 147, 237, 198, 17, 149, 237, 198, 17, 170, 237, 198, 17, 195,
+ 237, 198, 17, 213, 111, 237, 198, 17, 199, 237, 198, 17, 222, 63, 237,
+ 198, 208, 208, 237, 198, 251, 120, 237, 198, 230, 222, 237, 198, 206,
+ 206, 237, 198, 241, 130, 220, 23, 237, 198, 2, 203, 85, 237, 213, 2, 247,
+ 52, 237, 213, 2, 250, 180, 237, 213, 2, 205, 199, 237, 213, 1, 63, 237,
+ 213, 1, 252, 25, 237, 213, 1, 75, 237, 213, 1, 231, 83, 237, 213, 1, 68,
+ 237, 213, 1, 206, 178, 237, 213, 1, 125, 146, 237, 213, 1, 125, 159, 237,
+ 213, 22, 247, 55, 74, 237, 213, 1, 74, 237, 213, 1, 251, 64, 237, 213,
+ 22, 247, 55, 78, 237, 213, 1, 78, 237, 213, 1, 250, 34, 237, 213, 1, 173,
+ 237, 213, 1, 229, 144, 237, 213, 1, 239, 8, 237, 213, 1, 238, 119, 237,
+ 213, 1, 222, 203, 237, 213, 1, 247, 92, 237, 213, 1, 246, 199, 237, 213,
+ 1, 230, 181, 237, 213, 1, 230, 149, 237, 213, 1, 221, 11, 237, 213, 1,
+ 207, 241, 237, 213, 1, 207, 229, 237, 213, 1, 244, 120, 237, 213, 1, 244,
+ 104, 237, 213, 1, 221, 227, 237, 213, 1, 210, 22, 237, 213, 1, 209, 108,
+ 237, 213, 1, 244, 212, 237, 213, 1, 244, 1, 237, 213, 1, 201, 201, 237,
+ 213, 1, 185, 237, 213, 1, 218, 208, 237, 213, 1, 249, 32, 237, 213, 1,
+ 248, 98, 237, 213, 1, 192, 237, 213, 1, 198, 237, 213, 1, 216, 220, 237,
+ 213, 1, 228, 113, 237, 213, 1, 227, 77, 237, 213, 1, 206, 86, 237, 213,
+ 1, 213, 90, 237, 213, 1, 211, 164, 237, 213, 1, 215, 36, 237, 213, 1,
+ 152, 237, 213, 2, 221, 51, 237, 213, 2, 250, 17, 237, 213, 22, 2, 252,
+ 25, 237, 213, 22, 2, 75, 237, 213, 22, 2, 231, 83, 237, 213, 22, 2, 68,
+ 237, 213, 22, 2, 206, 178, 237, 213, 22, 2, 125, 146, 237, 213, 22, 2,
+ 125, 215, 186, 237, 213, 22, 2, 247, 55, 74, 237, 213, 22, 2, 74, 237,
+ 213, 22, 2, 251, 64, 237, 213, 22, 2, 247, 55, 78, 237, 213, 22, 2, 78,
+ 237, 213, 22, 2, 250, 34, 237, 213, 2, 205, 204, 237, 213, 220, 39, 237,
+ 213, 1, 125, 215, 186, 237, 213, 1, 125, 227, 78, 237, 213, 22, 2, 125,
+ 159, 237, 213, 22, 2, 125, 227, 78, 237, 213, 17, 202, 84, 237, 213, 17,
+ 105, 237, 213, 17, 108, 237, 213, 17, 147, 237, 213, 17, 149, 237, 213,
+ 17, 170, 237, 213, 17, 195, 237, 213, 17, 213, 111, 237, 213, 17, 199,
+ 237, 213, 17, 222, 63, 237, 213, 251, 146, 54, 237, 213, 215, 120, 54,
+ 237, 213, 1, 202, 80, 193, 2, 247, 52, 193, 2, 250, 180, 193, 2, 205,
+ 199, 193, 1, 63, 193, 1, 252, 25, 193, 1, 75, 193, 1, 231, 83, 193, 1,
+ 68, 193, 1, 206, 178, 193, 1, 125, 146, 193, 1, 125, 159, 193, 1, 74,
+ 193, 1, 251, 64, 193, 1, 78, 193, 1, 250, 34, 193, 1, 173, 193, 1, 229,
+ 144, 193, 1, 239, 8, 193, 1, 238, 119, 193, 1, 222, 203, 193, 1, 247, 92,
+ 193, 1, 246, 199, 193, 1, 230, 181, 193, 1, 230, 149, 193, 1, 221, 11,
+ 193, 1, 207, 241, 193, 1, 207, 229, 193, 1, 244, 120, 193, 1, 244, 104,
+ 193, 1, 221, 227, 193, 1, 210, 22, 193, 1, 209, 108, 193, 1, 244, 212,
+ 193, 1, 244, 1, 193, 1, 201, 201, 193, 1, 185, 193, 1, 218, 208, 193, 1,
+ 249, 32, 193, 1, 248, 98, 193, 1, 192, 193, 1, 198, 193, 1, 216, 220,
+ 193, 1, 228, 113, 193, 1, 227, 77, 193, 1, 206, 86, 193, 1, 213, 90, 193,
+ 1, 211, 164, 193, 1, 215, 36, 193, 1, 152, 193, 2, 221, 51, 193, 2, 250,
+ 17, 193, 22, 2, 252, 25, 193, 22, 2, 75, 193, 22, 2, 231, 83, 193, 22, 2,
+ 68, 193, 22, 2, 206, 178, 193, 22, 2, 125, 146, 193, 22, 2, 125, 215,
+ 186, 193, 22, 2, 74, 193, 22, 2, 251, 64, 193, 22, 2, 78, 193, 22, 2,
+ 250, 34, 193, 2, 205, 204, 193, 251, 65, 227, 196, 82, 193, 250, 35, 227,
+ 196, 82, 193, 1, 215, 185, 193, 1, 216, 61, 193, 1, 202, 168, 193, 1,
+ 125, 215, 186, 193, 1, 125, 227, 78, 193, 22, 2, 125, 159, 193, 22, 2,
+ 125, 227, 78, 193, 17, 202, 84, 193, 17, 105, 193, 17, 108, 193, 17, 147,
+ 193, 17, 149, 193, 17, 170, 193, 17, 195, 193, 17, 213, 111, 193, 17,
+ 199, 193, 17, 222, 63, 193, 230, 202, 193, 1, 204, 111, 193, 239, 138,
+ 118, 217, 55, 193, 239, 138, 118, 237, 137, 193, 239, 138, 126, 217, 53,
+ 193, 239, 138, 118, 212, 80, 193, 239, 138, 118, 241, 138, 193, 239, 138,
+ 126, 212, 79, 44, 2, 250, 180, 44, 2, 205, 199, 44, 1, 63, 44, 1, 252,
+ 25, 44, 1, 75, 44, 1, 231, 83, 44, 1, 68, 44, 1, 206, 178, 44, 1, 74, 44,
+ 1, 241, 161, 44, 1, 251, 64, 44, 1, 78, 44, 1, 220, 18, 44, 1, 250, 34,
+ 44, 1, 173, 44, 1, 222, 203, 44, 1, 247, 92, 44, 1, 230, 181, 44, 1, 221,
+ 11, 44, 1, 207, 241, 44, 1, 221, 227, 44, 1, 210, 22, 44, 1, 201, 201,
+ 44, 1, 221, 209, 44, 1, 185, 44, 1, 192, 44, 1, 198, 44, 1, 216, 220, 44,
+ 1, 215, 185, 44, 1, 228, 113, 44, 1, 227, 77, 44, 1, 227, 68, 44, 1, 206,
+ 86, 44, 1, 213, 90, 44, 1, 211, 164, 44, 1, 215, 36, 44, 1, 152, 44, 22,
+ 2, 252, 25, 44, 22, 2, 75, 44, 22, 2, 231, 83, 44, 22, 2, 68, 44, 22, 2,
+ 206, 178, 44, 22, 2, 74, 44, 22, 2, 241, 161, 44, 22, 2, 251, 64, 44, 22,
+ 2, 78, 44, 22, 2, 220, 18, 44, 22, 2, 250, 34, 44, 2, 205, 204, 44, 220,
+ 39, 44, 250, 35, 227, 196, 82, 44, 17, 202, 84, 44, 17, 105, 44, 17, 108,
+ 44, 17, 147, 44, 17, 149, 44, 17, 170, 44, 17, 195, 44, 17, 213, 111, 44,
+ 17, 199, 44, 17, 222, 63, 44, 42, 209, 152, 44, 42, 118, 236, 11, 44, 42,
+ 118, 209, 36, 44, 244, 133, 54, 44, 224, 38, 54, 44, 203, 50, 54, 44,
+ 244, 72, 54, 44, 245, 141, 54, 44, 250, 82, 87, 54, 44, 215, 120, 54, 44,
+ 42, 54, 175, 2, 39, 247, 53, 55, 175, 2, 247, 52, 175, 2, 250, 180, 175,
+ 2, 205, 199, 175, 1, 63, 175, 1, 252, 25, 175, 1, 75, 175, 1, 231, 83,
+ 175, 1, 68, 175, 1, 206, 178, 175, 1, 125, 146, 175, 1, 125, 159, 175, 1,
+ 74, 175, 1, 241, 161, 175, 1, 251, 64, 175, 1, 78, 175, 1, 220, 18, 175,
+ 1, 250, 34, 175, 1, 173, 175, 1, 229, 144, 175, 1, 239, 8, 175, 1, 238,
+ 119, 175, 1, 222, 203, 175, 1, 247, 92, 175, 1, 246, 199, 175, 1, 230,
+ 181, 175, 1, 230, 149, 175, 1, 221, 11, 175, 1, 207, 241, 175, 1, 207,
+ 229, 175, 1, 244, 120, 175, 1, 244, 104, 175, 1, 221, 227, 175, 1, 210,
+ 22, 175, 1, 209, 108, 175, 1, 244, 212, 175, 1, 244, 1, 175, 1, 201, 201,
+ 175, 1, 185, 175, 1, 218, 208, 175, 1, 249, 32, 175, 1, 248, 98, 175, 1,
+ 192, 175, 1, 198, 175, 1, 216, 220, 175, 1, 215, 185, 175, 1, 228, 113,
+ 175, 1, 227, 77, 175, 1, 227, 68, 175, 1, 206, 86, 175, 1, 213, 90, 175,
+ 1, 211, 164, 175, 1, 215, 36, 175, 1, 152, 175, 2, 250, 17, 175, 22, 2,
+ 252, 25, 175, 22, 2, 75, 175, 22, 2, 231, 83, 175, 22, 2, 68, 175, 22, 2,
+ 206, 178, 175, 22, 2, 125, 146, 175, 22, 2, 125, 215, 186, 175, 22, 2,
+ 74, 175, 22, 2, 241, 161, 175, 22, 2, 251, 64, 175, 22, 2, 78, 175, 22,
+ 2, 220, 18, 175, 22, 2, 250, 34, 175, 2, 205, 204, 175, 227, 196, 82,
+ 175, 251, 65, 227, 196, 82, 175, 1, 208, 20, 175, 1, 241, 255, 175, 1,
+ 215, 166, 175, 1, 125, 215, 186, 175, 1, 125, 227, 78, 175, 22, 2, 125,
+ 159, 175, 22, 2, 125, 227, 78, 175, 17, 202, 84, 175, 17, 105, 175, 17,
+ 108, 175, 17, 147, 175, 17, 149, 175, 17, 170, 175, 17, 195, 175, 17,
+ 213, 111, 175, 17, 199, 175, 17, 222, 63, 175, 239, 138, 17, 202, 85, 35,
+ 220, 77, 218, 15, 76, 149, 175, 239, 138, 17, 118, 35, 220, 77, 218, 15,
+ 76, 149, 175, 239, 138, 17, 120, 35, 220, 77, 218, 15, 76, 149, 175, 239,
+ 138, 17, 126, 35, 220, 77, 218, 15, 76, 149, 175, 239, 138, 17, 118, 35,
+ 240, 225, 218, 15, 76, 149, 175, 239, 138, 17, 120, 35, 240, 225, 218,
+ 15, 76, 149, 175, 239, 138, 17, 126, 35, 240, 225, 218, 15, 76, 149, 175,
+ 2, 207, 164, 200, 2, 247, 52, 200, 2, 250, 180, 200, 2, 205, 199, 200, 1,
+ 63, 200, 1, 252, 25, 200, 1, 75, 200, 1, 231, 83, 200, 1, 68, 200, 1,
+ 206, 178, 200, 1, 125, 146, 200, 1, 125, 159, 200, 1, 74, 200, 1, 241,
+ 161, 200, 1, 251, 64, 200, 1, 78, 200, 1, 220, 18, 200, 1, 250, 34, 200,
+ 1, 173, 200, 1, 229, 144, 200, 1, 239, 8, 200, 1, 238, 119, 200, 1, 222,
+ 203, 200, 1, 247, 92, 200, 1, 246, 199, 200, 1, 230, 181, 200, 1, 230,
+ 149, 200, 1, 221, 11, 200, 1, 207, 241, 200, 1, 207, 229, 200, 1, 244,
+ 120, 200, 1, 244, 104, 200, 1, 221, 227, 200, 1, 210, 22, 200, 1, 209,
+ 108, 200, 1, 244, 212, 200, 1, 244, 1, 200, 1, 201, 201, 200, 1, 185,
+ 200, 1, 218, 208, 200, 1, 249, 32, 200, 1, 248, 98, 200, 1, 192, 200, 1,
+ 198, 200, 1, 216, 220, 200, 1, 215, 185, 200, 1, 228, 113, 200, 1, 227,
+ 77, 200, 1, 206, 86, 200, 1, 213, 90, 200, 1, 211, 164, 200, 1, 215, 36,
+ 200, 1, 152, 200, 2, 221, 51, 200, 2, 250, 17, 200, 22, 2, 252, 25, 200,
+ 22, 2, 75, 200, 22, 2, 231, 83, 200, 22, 2, 68, 200, 22, 2, 206, 178,
+ 200, 22, 2, 125, 146, 200, 22, 2, 125, 215, 186, 200, 22, 2, 74, 200, 22,
+ 2, 241, 161, 200, 22, 2, 251, 64, 200, 22, 2, 78, 200, 22, 2, 220, 18,
+ 200, 22, 2, 250, 34, 200, 2, 205, 204, 200, 227, 196, 82, 200, 251, 65,
+ 227, 196, 82, 200, 1, 240, 108, 200, 1, 125, 215, 186, 200, 1, 125, 227,
+ 78, 200, 22, 2, 125, 159, 200, 22, 2, 125, 227, 78, 200, 17, 202, 84,
+ 200, 17, 105, 200, 17, 108, 200, 17, 147, 200, 17, 149, 200, 17, 170,
+ 200, 17, 195, 200, 17, 213, 111, 200, 17, 199, 200, 17, 222, 63, 200, 2,
+ 230, 135, 200, 2, 206, 222, 164, 2, 247, 52, 164, 2, 250, 180, 164, 2,
+ 205, 199, 164, 1, 63, 164, 1, 252, 25, 164, 1, 75, 164, 1, 231, 83, 164,
+ 1, 68, 164, 1, 206, 178, 164, 1, 125, 146, 164, 1, 125, 159, 164, 1, 74,
+ 164, 1, 241, 161, 164, 1, 251, 64, 164, 1, 78, 164, 1, 220, 18, 164, 1,
+ 250, 34, 164, 1, 173, 164, 1, 229, 144, 164, 1, 239, 8, 164, 1, 238, 119,
+ 164, 1, 222, 203, 164, 1, 247, 92, 164, 1, 246, 199, 164, 1, 230, 181,
+ 164, 1, 230, 149, 164, 1, 221, 11, 164, 1, 207, 241, 164, 1, 207, 229,
+ 164, 1, 244, 120, 164, 1, 244, 104, 164, 1, 221, 227, 164, 1, 210, 22,
+ 164, 1, 209, 108, 164, 1, 244, 212, 164, 1, 244, 1, 164, 1, 201, 201,
+ 164, 1, 221, 209, 164, 1, 185, 164, 1, 218, 208, 164, 1, 249, 32, 164, 1,
+ 248, 98, 164, 1, 192, 164, 1, 198, 164, 1, 216, 220, 164, 1, 215, 185,
+ 164, 1, 228, 113, 164, 1, 227, 77, 164, 1, 227, 68, 164, 1, 206, 86, 164,
+ 1, 213, 90, 164, 1, 211, 164, 164, 1, 215, 36, 164, 1, 152, 164, 1, 207,
+ 210, 164, 2, 250, 17, 164, 22, 2, 252, 25, 164, 22, 2, 75, 164, 22, 2,
+ 231, 83, 164, 22, 2, 68, 164, 22, 2, 206, 178, 164, 22, 2, 125, 146, 164,
+ 22, 2, 125, 215, 186, 164, 22, 2, 74, 164, 22, 2, 241, 161, 164, 22, 2,
+ 251, 64, 164, 22, 2, 78, 164, 22, 2, 220, 18, 164, 22, 2, 250, 34, 164,
+ 2, 205, 204, 164, 1, 70, 216, 97, 164, 250, 35, 227, 196, 82, 164, 1,
+ 250, 126, 231, 83, 164, 1, 125, 215, 186, 164, 1, 125, 227, 78, 164, 22,
+ 2, 125, 159, 164, 22, 2, 125, 227, 78, 164, 17, 202, 84, 164, 17, 105,
+ 164, 17, 108, 164, 17, 147, 164, 17, 149, 164, 17, 170, 164, 17, 195,
+ 164, 17, 213, 111, 164, 17, 199, 164, 17, 222, 63, 164, 42, 209, 152,
+ 164, 42, 118, 236, 11, 164, 42, 118, 209, 36, 164, 239, 138, 118, 217,
+ 55, 164, 239, 138, 118, 237, 137, 164, 239, 138, 126, 217, 53, 164, 244,
+ 138, 82, 164, 1, 246, 131, 221, 228, 164, 1, 246, 131, 223, 163, 164, 1,
+ 246, 131, 215, 186, 164, 1, 246, 131, 159, 164, 1, 246, 131, 227, 78,
+ 164, 1, 246, 131, 230, 54, 140, 2, 250, 179, 140, 2, 205, 198, 140, 1,
+ 250, 6, 140, 1, 251, 235, 140, 1, 251, 89, 140, 1, 251, 104, 140, 1, 230,
+ 191, 140, 1, 231, 82, 140, 1, 206, 169, 140, 1, 206, 172, 140, 1, 230,
+ 217, 140, 1, 230, 218, 140, 1, 231, 68, 140, 1, 231, 70, 140, 1, 240,
+ 194, 140, 1, 241, 156, 140, 1, 251, 49, 140, 1, 219, 187, 140, 1, 220,
+ 11, 140, 1, 250, 20, 140, 1, 251, 5, 229, 206, 140, 1, 225, 147, 229,
+ 206, 140, 1, 251, 5, 238, 210, 140, 1, 225, 147, 238, 210, 140, 1, 229,
+ 255, 223, 103, 140, 1, 214, 235, 238, 210, 140, 1, 251, 5, 247, 8, 140,
+ 1, 225, 147, 247, 8, 140, 1, 251, 5, 230, 164, 140, 1, 225, 147, 230,
+ 164, 140, 1, 210, 15, 223, 103, 140, 1, 210, 15, 214, 234, 223, 104, 140,
+ 1, 214, 235, 230, 164, 140, 1, 251, 5, 207, 237, 140, 1, 225, 147, 207,
+ 237, 140, 1, 251, 5, 244, 111, 140, 1, 225, 147, 244, 111, 140, 1, 223,
+ 191, 223, 58, 140, 1, 214, 235, 244, 111, 140, 1, 251, 5, 209, 195, 140,
+ 1, 225, 147, 209, 195, 140, 1, 251, 5, 244, 131, 140, 1, 225, 147, 244,
+ 131, 140, 1, 244, 162, 223, 58, 140, 1, 214, 235, 244, 131, 140, 1, 251,
+ 5, 219, 42, 140, 1, 225, 147, 219, 42, 140, 1, 251, 5, 248, 200, 140, 1,
+ 225, 147, 248, 200, 140, 1, 225, 62, 140, 1, 250, 241, 248, 200, 140, 1,
+ 203, 57, 140, 1, 216, 164, 140, 1, 244, 162, 227, 243, 140, 1, 206, 57,
+ 140, 1, 210, 15, 214, 207, 140, 1, 223, 191, 214, 207, 140, 1, 244, 162,
+ 214, 207, 140, 1, 237, 71, 140, 1, 223, 191, 227, 243, 140, 1, 240, 62,
+ 140, 2, 251, 38, 140, 22, 2, 251, 99, 140, 22, 2, 229, 169, 251, 106,
+ 140, 22, 2, 243, 200, 251, 106, 140, 22, 2, 229, 169, 230, 214, 140, 22,
+ 2, 243, 200, 230, 214, 140, 22, 2, 229, 169, 219, 167, 140, 22, 2, 243,
+ 200, 219, 167, 140, 22, 2, 238, 253, 140, 22, 2, 229, 11, 140, 22, 2,
+ 243, 200, 229, 11, 140, 22, 2, 229, 13, 244, 50, 140, 22, 2, 229, 12,
+ 237, 158, 251, 99, 140, 22, 2, 229, 12, 237, 158, 243, 200, 251, 99, 140,
+ 22, 2, 229, 12, 237, 158, 238, 209, 140, 22, 2, 238, 209, 140, 227, 89,
+ 17, 202, 84, 140, 227, 89, 17, 105, 140, 227, 89, 17, 108, 140, 227, 89,
+ 17, 147, 140, 227, 89, 17, 149, 140, 227, 89, 17, 170, 140, 227, 89, 17,
+ 195, 140, 227, 89, 17, 213, 111, 140, 227, 89, 17, 199, 140, 227, 89, 17,
+ 222, 63, 140, 22, 2, 243, 200, 238, 253, 140, 22, 2, 243, 200, 238, 209,
+ 140, 217, 179, 228, 194, 209, 103, 167, 229, 27, 230, 18, 209, 103, 167,
+ 229, 116, 229, 139, 209, 103, 167, 229, 116, 229, 108, 209, 103, 167,
+ 229, 116, 229, 103, 209, 103, 167, 229, 116, 229, 112, 209, 103, 167,
+ 229, 116, 216, 185, 209, 103, 167, 222, 129, 222, 116, 209, 103, 167,
+ 246, 117, 246, 188, 209, 103, 167, 246, 117, 246, 127, 209, 103, 167,
+ 246, 117, 246, 187, 209, 103, 167, 212, 14, 212, 13, 209, 103, 167, 246,
+ 117, 246, 113, 209, 103, 167, 202, 248, 202, 255, 209, 103, 167, 243,
+ 114, 246, 196, 209, 103, 167, 208, 173, 219, 53, 209, 103, 167, 209, 48,
+ 209, 97, 209, 103, 167, 209, 48, 223, 80, 209, 103, 167, 209, 48, 218,
+ 170, 209, 103, 167, 221, 192, 222, 230, 209, 103, 167, 243, 114, 244, 51,
+ 209, 103, 167, 208, 173, 209, 223, 209, 103, 167, 209, 48, 209, 16, 209,
+ 103, 167, 209, 48, 209, 104, 209, 103, 167, 209, 48, 209, 43, 209, 103,
+ 167, 221, 192, 221, 84, 209, 103, 167, 248, 24, 249, 0, 209, 103, 167,
+ 218, 70, 218, 98, 209, 103, 167, 218, 181, 218, 172, 209, 103, 167, 239,
+ 187, 240, 108, 209, 103, 167, 218, 181, 218, 201, 209, 103, 167, 239,
+ 187, 240, 81, 209, 103, 167, 218, 181, 214, 247, 209, 103, 167, 224, 83,
+ 192, 209, 103, 167, 202, 248, 203, 86, 209, 103, 167, 215, 228, 215, 144,
+ 209, 103, 167, 215, 145, 209, 103, 167, 227, 50, 227, 107, 209, 103, 167,
+ 226, 239, 209, 103, 167, 204, 1, 204, 106, 209, 103, 167, 212, 14, 215,
+ 6, 209, 103, 167, 212, 14, 215, 116, 209, 103, 167, 212, 14, 211, 9, 209,
+ 103, 167, 236, 137, 236, 233, 209, 103, 167, 227, 50, 246, 97, 209, 103,
+ 167, 158, 250, 223, 209, 103, 167, 236, 137, 221, 187, 209, 103, 167,
+ 219, 144, 209, 103, 167, 214, 229, 63, 209, 103, 167, 225, 141, 237, 125,
+ 209, 103, 167, 214, 229, 252, 25, 209, 103, 167, 214, 229, 250, 247, 209,
+ 103, 167, 214, 229, 75, 209, 103, 167, 214, 229, 231, 83, 209, 103, 167,
+ 214, 229, 207, 24, 209, 103, 167, 214, 229, 207, 22, 209, 103, 167, 214,
+ 229, 68, 209, 103, 167, 214, 229, 206, 178, 209, 103, 167, 218, 183, 209,
+ 103, 245, 92, 16, 249, 1, 209, 103, 167, 214, 229, 74, 209, 103, 167,
+ 214, 229, 251, 109, 209, 103, 167, 214, 229, 78, 209, 103, 167, 214, 229,
+ 251, 65, 225, 135, 209, 103, 167, 214, 229, 251, 65, 225, 136, 209, 103,
+ 167, 228, 32, 209, 103, 167, 225, 132, 209, 103, 167, 225, 133, 209, 103,
+ 167, 225, 141, 241, 129, 209, 103, 167, 225, 141, 209, 47, 209, 103, 167,
+ 225, 141, 208, 88, 209, 103, 167, 225, 141, 246, 175, 209, 103, 167, 209,
+ 95, 209, 103, 167, 222, 72, 209, 103, 167, 203, 80, 209, 103, 167, 239,
+ 177, 209, 103, 17, 202, 84, 209, 103, 17, 105, 209, 103, 17, 108, 209,
+ 103, 17, 147, 209, 103, 17, 149, 209, 103, 17, 170, 209, 103, 17, 195,
+ 209, 103, 17, 213, 111, 209, 103, 17, 199, 209, 103, 17, 222, 63, 209,
+ 103, 167, 250, 219, 209, 103, 167, 229, 113, 228, 12, 1, 229, 26, 228,
+ 12, 1, 229, 116, 210, 211, 228, 12, 1, 229, 116, 209, 232, 228, 12, 1,
+ 222, 128, 228, 12, 1, 245, 254, 228, 12, 1, 212, 14, 209, 232, 228, 12,
+ 1, 220, 233, 228, 12, 1, 243, 113, 228, 12, 1, 135, 228, 12, 1, 209, 48,
+ 210, 211, 228, 12, 1, 209, 48, 209, 232, 228, 12, 1, 221, 191, 228, 12,
+ 1, 248, 23, 228, 12, 1, 218, 69, 228, 12, 1, 218, 181, 210, 211, 228, 12,
+ 1, 239, 187, 209, 232, 228, 12, 1, 218, 181, 209, 232, 228, 12, 1, 239,
+ 187, 210, 211, 228, 12, 1, 224, 82, 228, 12, 1, 202, 247, 228, 12, 1,
+ 227, 50, 227, 107, 228, 12, 1, 227, 50, 227, 12, 228, 12, 1, 204, 0, 228,
+ 12, 1, 212, 14, 210, 211, 228, 12, 1, 236, 137, 210, 211, 228, 12, 1, 78,
+ 228, 12, 1, 236, 137, 209, 232, 228, 12, 241, 108, 228, 12, 22, 2, 63,
+ 228, 12, 22, 2, 225, 141, 230, 4, 228, 12, 22, 2, 252, 25, 228, 12, 22,
+ 2, 250, 247, 228, 12, 22, 2, 75, 228, 12, 22, 2, 231, 83, 228, 12, 22, 2,
+ 203, 124, 228, 12, 22, 2, 202, 169, 228, 12, 22, 2, 68, 228, 12, 22, 2,
+ 206, 178, 228, 12, 22, 2, 225, 141, 229, 9, 228, 12, 213, 138, 2, 227,
+ 49, 228, 12, 213, 138, 2, 220, 233, 228, 12, 22, 2, 74, 228, 12, 22, 2,
+ 241, 145, 228, 12, 22, 2, 78, 228, 12, 22, 2, 250, 8, 228, 12, 22, 2,
+ 251, 64, 228, 12, 229, 27, 228, 113, 228, 12, 143, 225, 141, 241, 129,
+ 228, 12, 143, 225, 141, 209, 47, 228, 12, 143, 225, 141, 209, 2, 228, 12,
+ 143, 225, 141, 247, 16, 228, 12, 247, 58, 82, 228, 12, 222, 81, 228, 12,
+ 17, 202, 84, 228, 12, 17, 105, 228, 12, 17, 108, 228, 12, 17, 147, 228,
+ 12, 17, 149, 228, 12, 17, 170, 228, 12, 17, 195, 228, 12, 17, 213, 111,
+ 228, 12, 17, 199, 228, 12, 17, 222, 63, 228, 12, 236, 137, 221, 191, 228,
+ 12, 236, 137, 224, 82, 228, 12, 1, 229, 117, 238, 39, 228, 12, 1, 229,
+ 117, 220, 233, 77, 4, 220, 39, 77, 131, 237, 232, 203, 3, 224, 173, 208,
+ 26, 63, 77, 131, 237, 232, 203, 3, 224, 173, 255, 22, 215, 232, 248, 164,
+ 192, 77, 131, 237, 232, 203, 3, 224, 173, 255, 22, 237, 232, 208, 6, 192,
+ 77, 131, 81, 203, 3, 224, 173, 225, 22, 192, 77, 131, 246, 12, 203, 3,
+ 224, 173, 213, 97, 192, 77, 131, 247, 34, 203, 3, 224, 173, 218, 171,
+ 213, 83, 192, 77, 131, 203, 3, 224, 173, 208, 6, 213, 83, 192, 77, 131,
+ 214, 205, 213, 82, 77, 131, 247, 196, 203, 3, 224, 172, 77, 131, 248, 45,
+ 212, 238, 203, 3, 224, 172, 77, 131, 230, 243, 208, 5, 77, 131, 244, 44,
+ 208, 6, 247, 195, 77, 131, 213, 82, 77, 131, 220, 238, 213, 82, 77, 131,
+ 208, 6, 213, 82, 77, 131, 220, 238, 208, 6, 213, 82, 77, 131, 215, 255,
+ 246, 156, 211, 180, 213, 82, 77, 131, 216, 65, 238, 9, 213, 82, 77, 131,
+ 247, 34, 255, 26, 215, 149, 225, 21, 163, 247, 61, 77, 131, 237, 232,
+ 208, 5, 77, 227, 35, 2, 246, 197, 215, 148, 77, 227, 35, 2, 227, 159,
+ 215, 148, 77, 250, 55, 2, 213, 93, 238, 193, 255, 27, 215, 148, 77, 250,
+ 55, 2, 255, 24, 185, 77, 250, 55, 2, 214, 178, 208, 0, 77, 2, 216, 160,
+ 243, 127, 238, 192, 77, 2, 216, 160, 243, 127, 238, 41, 77, 2, 216, 160,
+ 243, 127, 237, 233, 77, 2, 216, 160, 223, 99, 238, 192, 77, 2, 216, 160,
+ 223, 99, 238, 41, 77, 2, 216, 160, 243, 127, 216, 160, 223, 98, 77, 17,
+ 202, 84, 77, 17, 105, 77, 17, 108, 77, 17, 147, 77, 17, 149, 77, 17, 170,
+ 77, 17, 195, 77, 17, 213, 111, 77, 17, 199, 77, 17, 222, 63, 77, 17, 162,
+ 105, 77, 17, 162, 108, 77, 17, 162, 147, 77, 17, 162, 149, 77, 17, 162,
+ 170, 77, 17, 162, 195, 77, 17, 162, 213, 111, 77, 17, 162, 199, 77, 17,
+ 162, 222, 63, 77, 17, 162, 202, 84, 77, 131, 247, 198, 215, 148, 77, 131,
+ 222, 194, 247, 127, 220, 249, 202, 19, 77, 131, 247, 34, 255, 26, 215,
+ 149, 247, 128, 224, 126, 247, 61, 77, 131, 222, 194, 247, 127, 213, 94,
+ 215, 148, 77, 131, 246, 171, 224, 172, 77, 131, 208, 21, 255, 23, 77,
+ 131, 237, 215, 215, 149, 237, 174, 77, 131, 237, 215, 215, 149, 237, 180,
+ 77, 131, 250, 224, 229, 134, 237, 174, 77, 131, 250, 224, 229, 134, 237,
+ 180, 77, 2, 203, 72, 208, 4, 77, 2, 225, 101, 208, 4, 77, 1, 173, 77, 1,
+ 229, 144, 77, 1, 239, 8, 77, 1, 238, 119, 77, 1, 222, 203, 77, 1, 247,
+ 92, 77, 1, 246, 199, 77, 1, 230, 181, 77, 1, 221, 11, 77, 1, 207, 241,
+ 77, 1, 207, 229, 77, 1, 244, 120, 77, 1, 244, 104, 77, 1, 221, 227, 77,
+ 1, 210, 22, 77, 1, 209, 108, 77, 1, 244, 212, 77, 1, 244, 1, 77, 1, 201,
+ 201, 77, 1, 185, 77, 1, 218, 208, 77, 1, 249, 32, 77, 1, 248, 98, 77, 1,
+ 192, 77, 1, 208, 20, 77, 1, 208, 10, 77, 1, 241, 255, 77, 1, 241, 249,
+ 77, 1, 204, 111, 77, 1, 202, 80, 77, 1, 202, 116, 77, 1, 255, 29, 77, 1,
+ 198, 77, 1, 216, 220, 77, 1, 228, 113, 77, 1, 213, 90, 77, 1, 211, 164,
+ 77, 1, 215, 36, 77, 1, 152, 77, 1, 63, 77, 1, 228, 223, 77, 1, 239, 229,
+ 216, 220, 77, 1, 229, 47, 77, 1, 215, 185, 77, 22, 2, 252, 25, 77, 22, 2,
+ 75, 77, 22, 2, 231, 83, 77, 22, 2, 68, 77, 22, 2, 206, 178, 77, 22, 2,
+ 125, 146, 77, 22, 2, 125, 215, 186, 77, 22, 2, 125, 159, 77, 22, 2, 125,
+ 227, 78, 77, 22, 2, 74, 77, 22, 2, 241, 161, 77, 22, 2, 78, 77, 22, 2,
+ 220, 18, 77, 2, 215, 238, 211, 11, 222, 204, 215, 227, 77, 2, 215, 232,
+ 248, 163, 77, 22, 2, 216, 73, 75, 77, 22, 2, 216, 73, 231, 83, 77, 2,
+ 220, 249, 202, 20, 223, 107, 244, 212, 77, 2, 212, 27, 227, 236, 77, 131,
+ 237, 139, 77, 131, 219, 132, 77, 2, 227, 239, 215, 148, 77, 2, 203, 77,
+ 215, 148, 77, 2, 227, 240, 208, 21, 247, 61, 77, 2, 225, 24, 247, 61, 77,
+ 2, 237, 236, 247, 62, 216, 63, 77, 2, 237, 236, 225, 14, 216, 63, 77, 2,
+ 230, 239, 225, 24, 247, 61, 77, 210, 254, 2, 227, 240, 208, 21, 247, 61,
+ 77, 210, 254, 2, 225, 24, 247, 61, 77, 210, 254, 2, 230, 239, 225, 24,
+ 247, 61, 77, 210, 254, 1, 173, 77, 210, 254, 1, 229, 144, 77, 210, 254,
+ 1, 239, 8, 77, 210, 254, 1, 238, 119, 77, 210, 254, 1, 222, 203, 77, 210,
+ 254, 1, 247, 92, 77, 210, 254, 1, 246, 199, 77, 210, 254, 1, 230, 181,
+ 77, 210, 254, 1, 221, 11, 77, 210, 254, 1, 207, 241, 77, 210, 254, 1,
+ 207, 229, 77, 210, 254, 1, 244, 120, 77, 210, 254, 1, 244, 104, 77, 210,
+ 254, 1, 221, 227, 77, 210, 254, 1, 210, 22, 77, 210, 254, 1, 209, 108,
+ 77, 210, 254, 1, 244, 212, 77, 210, 254, 1, 244, 1, 77, 210, 254, 1, 201,
+ 201, 77, 210, 254, 1, 185, 77, 210, 254, 1, 218, 208, 77, 210, 254, 1,
+ 249, 32, 77, 210, 254, 1, 248, 98, 77, 210, 254, 1, 192, 77, 210, 254, 1,
+ 208, 20, 77, 210, 254, 1, 208, 10, 77, 210, 254, 1, 241, 255, 77, 210,
+ 254, 1, 241, 249, 77, 210, 254, 1, 204, 111, 77, 210, 254, 1, 202, 80,
+ 77, 210, 254, 1, 202, 116, 77, 210, 254, 1, 255, 29, 77, 210, 254, 1,
+ 198, 77, 210, 254, 1, 216, 220, 77, 210, 254, 1, 228, 113, 77, 210, 254,
+ 1, 213, 90, 77, 210, 254, 1, 211, 164, 77, 210, 254, 1, 215, 36, 77, 210,
+ 254, 1, 152, 77, 210, 254, 1, 63, 77, 210, 254, 1, 228, 223, 77, 210,
+ 254, 1, 239, 229, 204, 111, 77, 210, 254, 1, 239, 229, 198, 77, 210, 254,
+ 1, 239, 229, 216, 220, 77, 228, 210, 215, 146, 229, 144, 77, 228, 210,
+ 215, 146, 229, 145, 247, 128, 224, 126, 247, 61, 77, 247, 49, 2, 79, 248,
+ 155, 77, 247, 49, 2, 157, 248, 155, 77, 247, 49, 2, 247, 50, 209, 185,
+ 77, 247, 49, 2, 214, 204, 255, 28, 77, 16, 242, 55, 247, 193, 77, 16,
+ 216, 159, 215, 239, 77, 16, 219, 155, 238, 191, 77, 16, 216, 159, 215,
+ 240, 216, 65, 238, 8, 77, 16, 218, 171, 185, 77, 16, 221, 175, 247, 193,
+ 77, 16, 221, 175, 247, 194, 220, 238, 255, 25, 77, 16, 221, 175, 247,
+ 194, 237, 234, 255, 25, 77, 16, 221, 175, 247, 194, 247, 128, 255, 25,
+ 77, 2, 216, 160, 223, 99, 216, 160, 243, 126, 77, 2, 216, 160, 223, 99,
+ 237, 233, 77, 131, 247, 197, 212, 238, 238, 82, 224, 173, 216, 64, 77,
+ 131, 224, 84, 203, 3, 238, 82, 224, 173, 216, 64, 77, 131, 220, 238, 208,
+ 5, 77, 131, 81, 247, 220, 215, 229, 203, 3, 224, 173, 225, 22, 192, 77,
+ 131, 246, 12, 247, 220, 215, 229, 203, 3, 224, 173, 213, 97, 192, 216,
+ 15, 210, 174, 54, 227, 221, 210, 174, 54, 216, 15, 210, 174, 2, 3, 243,
+ 83, 227, 221, 210, 174, 2, 3, 243, 83, 77, 131, 227, 231, 225, 25, 215,
+ 148, 77, 131, 208, 112, 225, 25, 215, 148, 69, 1, 173, 69, 1, 229, 144,
+ 69, 1, 239, 8, 69, 1, 238, 119, 69, 1, 222, 203, 69, 1, 247, 92, 69, 1,
+ 246, 199, 69, 1, 230, 181, 69, 1, 230, 149, 69, 1, 221, 11, 69, 1, 221,
+ 193, 69, 1, 207, 241, 69, 1, 207, 229, 69, 1, 244, 120, 69, 1, 244, 104,
+ 69, 1, 221, 227, 69, 1, 210, 22, 69, 1, 209, 108, 69, 1, 244, 212, 69, 1,
+ 244, 1, 69, 1, 201, 201, 69, 1, 185, 69, 1, 218, 208, 69, 1, 249, 32, 69,
+ 1, 248, 98, 69, 1, 192, 69, 1, 198, 69, 1, 216, 220, 69, 1, 228, 113, 69,
+ 1, 204, 111, 69, 1, 215, 36, 69, 1, 152, 69, 1, 227, 77, 69, 1, 63, 69,
+ 1, 213, 67, 63, 69, 1, 75, 69, 1, 231, 83, 69, 1, 68, 69, 1, 206, 178,
+ 69, 1, 74, 69, 1, 224, 55, 74, 69, 1, 78, 69, 1, 250, 34, 69, 22, 2, 209,
+ 234, 252, 25, 69, 22, 2, 252, 25, 69, 22, 2, 75, 69, 22, 2, 231, 83, 69,
+ 22, 2, 68, 69, 22, 2, 206, 178, 69, 22, 2, 74, 69, 22, 2, 251, 64, 69,
+ 22, 2, 224, 55, 231, 83, 69, 22, 2, 224, 55, 78, 69, 22, 2, 188, 55, 69,
+ 2, 250, 180, 69, 2, 70, 56, 69, 2, 205, 199, 69, 2, 205, 204, 69, 2, 250,
+ 79, 69, 109, 2, 174, 198, 69, 109, 2, 174, 216, 220, 69, 109, 2, 174,
+ 204, 111, 69, 109, 2, 174, 152, 69, 1, 237, 249, 215, 36, 69, 17, 202,
+ 84, 69, 17, 105, 69, 17, 108, 69, 17, 147, 69, 17, 149, 69, 17, 170, 69,
+ 17, 195, 69, 17, 213, 111, 69, 17, 199, 69, 17, 222, 63, 69, 2, 227, 86,
+ 214, 167, 69, 2, 214, 167, 69, 16, 227, 44, 69, 16, 245, 227, 69, 16,
+ 251, 85, 69, 16, 238, 174, 69, 1, 213, 90, 69, 1, 211, 164, 69, 1, 125,
+ 146, 69, 1, 125, 215, 186, 69, 1, 125, 159, 69, 1, 125, 227, 78, 69, 22,
+ 2, 125, 146, 69, 22, 2, 125, 215, 186, 69, 22, 2, 125, 159, 69, 22, 2,
+ 125, 227, 78, 69, 1, 224, 55, 222, 203, 69, 1, 224, 55, 230, 149, 69, 1,
+ 224, 55, 248, 198, 69, 1, 224, 55, 248, 193, 69, 109, 2, 224, 55, 174,
+ 201, 201, 69, 109, 2, 224, 55, 174, 192, 69, 109, 2, 224, 55, 174, 228,
+ 113, 69, 1, 213, 96, 229, 237, 213, 90, 69, 22, 2, 213, 96, 229, 237,
+ 240, 238, 69, 143, 131, 213, 96, 229, 237, 237, 79, 69, 143, 131, 213,
+ 96, 229, 237, 229, 202, 218, 180, 69, 1, 204, 44, 217, 146, 229, 237,
+ 209, 108, 69, 1, 204, 44, 217, 146, 229, 237, 217, 152, 69, 22, 2, 204,
+ 44, 217, 146, 229, 237, 240, 238, 69, 22, 2, 204, 44, 217, 146, 229, 237,
+ 207, 24, 69, 2, 204, 44, 217, 146, 229, 237, 208, 160, 69, 2, 204, 44,
+ 217, 146, 229, 237, 208, 159, 69, 2, 204, 44, 217, 146, 229, 237, 208,
+ 158, 69, 2, 204, 44, 217, 146, 229, 237, 208, 157, 69, 2, 204, 44, 217,
+ 146, 229, 237, 208, 156, 69, 1, 241, 174, 217, 146, 229, 237, 221, 227,
+ 69, 1, 241, 174, 217, 146, 229, 237, 202, 176, 69, 1, 241, 174, 217, 146,
+ 229, 237, 238, 84, 69, 22, 2, 238, 186, 229, 237, 75, 69, 22, 2, 229,
+ 207, 220, 73, 69, 22, 2, 229, 207, 68, 69, 22, 2, 229, 207, 241, 161, 69,
+ 1, 213, 67, 173, 69, 1, 213, 67, 229, 144, 69, 1, 213, 67, 239, 8, 69, 1,
+ 213, 67, 247, 92, 69, 1, 213, 67, 202, 116, 69, 1, 213, 67, 221, 11, 69,
+ 1, 213, 67, 244, 212, 69, 1, 213, 67, 201, 201, 69, 1, 213, 67, 218, 208,
+ 69, 1, 213, 67, 240, 108, 69, 1, 213, 67, 249, 32, 69, 1, 213, 67, 209,
+ 108, 69, 1, 213, 67, 152, 69, 109, 2, 213, 67, 174, 204, 111, 69, 22, 2,
+ 213, 67, 252, 25, 69, 22, 2, 213, 67, 74, 69, 22, 2, 213, 67, 188, 55,
+ 69, 22, 2, 213, 67, 46, 203, 124, 69, 2, 213, 67, 208, 159, 69, 2, 213,
+ 67, 208, 158, 69, 2, 213, 67, 208, 156, 69, 2, 213, 67, 208, 155, 69, 2,
+ 213, 67, 245, 156, 208, 159, 69, 2, 213, 67, 245, 156, 208, 158, 69, 2,
+ 213, 67, 245, 156, 241, 95, 208, 161, 69, 1, 215, 130, 219, 139, 240,
+ 108, 69, 2, 215, 130, 219, 139, 208, 156, 69, 213, 67, 17, 202, 84, 69,
+ 213, 67, 17, 105, 69, 213, 67, 17, 108, 69, 213, 67, 17, 147, 69, 213,
+ 67, 17, 149, 69, 213, 67, 17, 170, 69, 213, 67, 17, 195, 69, 213, 67, 17,
+ 213, 111, 69, 213, 67, 17, 199, 69, 213, 67, 17, 222, 63, 69, 2, 229,
+ 137, 208, 160, 69, 2, 229, 137, 208, 158, 69, 22, 2, 251, 51, 63, 69, 22,
+ 2, 251, 51, 251, 64, 69, 16, 213, 67, 105, 69, 16, 213, 67, 240, 211,
+ 114, 6, 1, 250, 231, 114, 6, 1, 248, 242, 114, 6, 1, 238, 234, 114, 6, 1,
+ 243, 93, 114, 6, 1, 241, 92, 114, 6, 1, 205, 213, 114, 6, 1, 202, 87,
+ 114, 6, 1, 209, 230, 114, 6, 1, 231, 49, 114, 6, 1, 230, 4, 114, 6, 1,
+ 228, 2, 114, 6, 1, 225, 122, 114, 6, 1, 223, 74, 114, 6, 1, 220, 31, 114,
+ 6, 1, 219, 91, 114, 6, 1, 202, 76, 114, 6, 1, 216, 202, 114, 6, 1, 214,
+ 243, 114, 6, 1, 209, 218, 114, 6, 1, 206, 255, 114, 6, 1, 218, 200, 114,
+ 6, 1, 229, 132, 114, 6, 1, 238, 110, 114, 6, 1, 217, 111, 114, 6, 1, 212,
+ 255, 114, 6, 1, 246, 129, 114, 6, 1, 247, 61, 114, 6, 1, 230, 133, 114,
+ 6, 1, 246, 68, 114, 6, 1, 246, 183, 114, 6, 1, 203, 180, 114, 6, 1, 230,
+ 146, 114, 6, 1, 237, 154, 114, 6, 1, 237, 67, 114, 6, 1, 236, 254, 114,
+ 6, 1, 204, 62, 114, 6, 1, 237, 92, 114, 6, 1, 236, 132, 114, 6, 1, 202,
+ 249, 114, 6, 1, 251, 98, 114, 1, 250, 231, 114, 1, 248, 242, 114, 1, 238,
+ 234, 114, 1, 243, 93, 114, 1, 241, 92, 114, 1, 205, 213, 114, 1, 202, 87,
+ 114, 1, 209, 230, 114, 1, 231, 49, 114, 1, 230, 4, 114, 1, 228, 2, 114,
+ 1, 225, 122, 114, 1, 223, 74, 114, 1, 220, 31, 114, 1, 219, 91, 114, 1,
+ 202, 76, 114, 1, 216, 202, 114, 1, 214, 243, 114, 1, 209, 218, 114, 1,
+ 206, 255, 114, 1, 218, 200, 114, 1, 229, 132, 114, 1, 238, 110, 114, 1,
+ 217, 111, 114, 1, 212, 255, 114, 1, 246, 129, 114, 1, 247, 61, 114, 1,
+ 230, 133, 114, 1, 246, 68, 114, 1, 246, 183, 114, 1, 203, 180, 114, 1,
+ 230, 146, 114, 1, 237, 154, 114, 1, 237, 67, 114, 1, 236, 254, 114, 1,
+ 204, 62, 114, 1, 237, 92, 114, 1, 236, 132, 114, 1, 240, 26, 114, 1, 202,
+ 249, 114, 1, 241, 110, 114, 1, 207, 174, 238, 234, 114, 1, 251, 59, 114,
+ 219, 89, 213, 130, 65, 1, 114, 223, 74, 114, 1, 251, 98, 114, 1, 237, 91,
+ 54, 114, 1, 228, 104, 54, 28, 123, 229, 59, 28, 123, 211, 156, 28, 123,
+ 222, 93, 28, 123, 208, 240, 28, 123, 211, 145, 28, 123, 216, 47, 28, 123,
+ 224, 141, 28, 123, 218, 153, 28, 123, 211, 153, 28, 123, 212, 111, 28,
+ 123, 211, 150, 28, 123, 231, 106, 28, 123, 246, 74, 28, 123, 211, 160,
+ 28, 123, 246, 138, 28, 123, 229, 120, 28, 123, 209, 66, 28, 123, 218,
+ 190, 28, 123, 236, 251, 28, 123, 222, 89, 28, 123, 211, 154, 28, 123,
+ 222, 83, 28, 123, 222, 87, 28, 123, 208, 237, 28, 123, 216, 35, 28, 123,
+ 211, 152, 28, 123, 216, 45, 28, 123, 229, 243, 28, 123, 224, 134, 28,
+ 123, 229, 246, 28, 123, 218, 148, 28, 123, 218, 146, 28, 123, 218, 134,
+ 28, 123, 218, 142, 28, 123, 218, 140, 28, 123, 218, 137, 28, 123, 218,
+ 139, 28, 123, 218, 136, 28, 123, 218, 141, 28, 123, 218, 151, 28, 123,
+ 218, 152, 28, 123, 218, 135, 28, 123, 218, 145, 28, 123, 229, 244, 28,
+ 123, 229, 242, 28, 123, 212, 104, 28, 123, 212, 102, 28, 123, 212, 94,
+ 28, 123, 212, 97, 28, 123, 212, 103, 28, 123, 212, 99, 28, 123, 212, 98,
+ 28, 123, 212, 96, 28, 123, 212, 107, 28, 123, 212, 109, 28, 123, 212,
+ 110, 28, 123, 212, 105, 28, 123, 212, 95, 28, 123, 212, 100, 28, 123,
+ 212, 108, 28, 123, 246, 120, 28, 123, 246, 118, 28, 123, 246, 210, 28,
+ 123, 246, 208, 28, 123, 219, 107, 28, 123, 231, 101, 28, 123, 231, 92,
+ 28, 123, 231, 100, 28, 123, 231, 97, 28, 123, 231, 95, 28, 123, 231, 99,
+ 28, 123, 211, 157, 28, 123, 231, 104, 28, 123, 231, 105, 28, 123, 231,
+ 93, 28, 123, 231, 98, 28, 123, 203, 29, 28, 123, 246, 73, 28, 123, 246,
+ 121, 28, 123, 246, 119, 28, 123, 246, 211, 28, 123, 246, 209, 28, 123,
+ 246, 136, 28, 123, 246, 137, 28, 123, 246, 122, 28, 123, 246, 212, 28,
+ 123, 218, 188, 28, 123, 229, 245, 28, 123, 211, 158, 28, 123, 203, 35,
+ 28, 123, 229, 50, 28, 123, 222, 85, 28, 123, 222, 91, 28, 123, 222, 90,
+ 28, 123, 208, 234, 28, 123, 240, 7, 28, 176, 240, 7, 28, 176, 63, 28,
+ 176, 251, 109, 28, 176, 198, 28, 176, 203, 99, 28, 176, 241, 55, 28, 176,
+ 74, 28, 176, 203, 39, 28, 176, 203, 52, 28, 176, 78, 28, 176, 204, 111,
+ 28, 176, 204, 107, 28, 176, 220, 73, 28, 176, 202, 247, 28, 176, 68, 28,
+ 176, 204, 48, 28, 176, 204, 62, 28, 176, 204, 30, 28, 176, 202, 213, 28,
+ 176, 240, 238, 28, 176, 203, 11, 28, 176, 75, 28, 176, 255, 20, 28, 176,
+ 255, 19, 28, 176, 203, 113, 28, 176, 203, 111, 28, 176, 241, 53, 28, 176,
+ 241, 52, 28, 176, 241, 54, 28, 176, 203, 38, 28, 176, 203, 37, 28, 176,
+ 220, 181, 28, 176, 220, 182, 28, 176, 220, 175, 28, 176, 220, 180, 28,
+ 176, 220, 178, 28, 176, 202, 241, 28, 176, 202, 240, 28, 176, 202, 239,
+ 28, 176, 202, 242, 28, 176, 202, 243, 28, 176, 207, 97, 28, 176, 207, 96,
+ 28, 176, 207, 94, 28, 176, 207, 90, 28, 176, 207, 91, 28, 176, 202, 212,
+ 28, 176, 202, 209, 28, 176, 202, 210, 28, 176, 202, 204, 28, 176, 202,
+ 205, 28, 176, 202, 206, 28, 176, 202, 208, 28, 176, 240, 232, 28, 176,
+ 240, 234, 28, 176, 203, 10, 28, 176, 235, 205, 28, 176, 235, 197, 28,
+ 176, 235, 200, 28, 176, 235, 198, 28, 176, 235, 202, 28, 176, 235, 204,
+ 28, 176, 250, 137, 28, 176, 250, 134, 28, 176, 250, 132, 28, 176, 250,
+ 133, 28, 176, 211, 161, 28, 176, 255, 21, 28, 176, 203, 112, 28, 176,
+ 203, 36, 28, 176, 220, 177, 28, 176, 220, 176, 28, 107, 229, 59, 28, 107,
+ 211, 156, 28, 107, 229, 52, 28, 107, 222, 93, 28, 107, 222, 91, 28, 107,
+ 222, 90, 28, 107, 208, 240, 28, 107, 216, 47, 28, 107, 216, 42, 28, 107,
+ 216, 39, 28, 107, 216, 32, 28, 107, 216, 27, 28, 107, 216, 22, 28, 107,
+ 216, 33, 28, 107, 216, 45, 28, 107, 224, 141, 28, 107, 218, 153, 28, 107,
+ 218, 142, 28, 107, 212, 111, 28, 107, 211, 150, 28, 107, 231, 106, 28,
+ 107, 246, 74, 28, 107, 246, 138, 28, 107, 229, 120, 28, 107, 209, 66, 28,
+ 107, 218, 190, 28, 107, 236, 251, 28, 107, 229, 53, 28, 107, 229, 51, 28,
+ 107, 222, 89, 28, 107, 222, 83, 28, 107, 222, 85, 28, 107, 222, 88, 28,
+ 107, 222, 84, 28, 107, 208, 237, 28, 107, 208, 234, 28, 107, 216, 40, 28,
+ 107, 216, 35, 28, 107, 216, 21, 28, 107, 216, 20, 28, 107, 211, 152, 28,
+ 107, 216, 37, 28, 107, 216, 36, 28, 107, 216, 29, 28, 107, 216, 31, 28,
+ 107, 216, 44, 28, 107, 216, 24, 28, 107, 216, 34, 28, 107, 216, 43, 28,
+ 107, 216, 19, 28, 107, 224, 137, 28, 107, 224, 132, 28, 107, 224, 134,
+ 28, 107, 224, 131, 28, 107, 224, 129, 28, 107, 224, 135, 28, 107, 224,
+ 140, 28, 107, 224, 138, 28, 107, 229, 246, 28, 107, 218, 144, 28, 107,
+ 218, 145, 28, 107, 218, 150, 28, 107, 229, 244, 28, 107, 212, 104, 28,
+ 107, 212, 94, 28, 107, 212, 97, 28, 107, 212, 99, 28, 107, 219, 107, 28,
+ 107, 231, 101, 28, 107, 231, 94, 28, 107, 211, 157, 28, 107, 231, 102,
+ 28, 107, 203, 29, 28, 107, 203, 25, 28, 107, 203, 26, 28, 107, 218, 188,
+ 28, 107, 229, 245, 28, 107, 236, 249, 28, 107, 236, 247, 28, 107, 236,
+ 250, 28, 107, 236, 248, 28, 107, 203, 35, 28, 107, 229, 55, 28, 107, 229,
+ 54, 28, 107, 229, 58, 28, 107, 229, 56, 28, 107, 229, 57, 28, 107, 211,
+ 154, 33, 4, 152, 33, 4, 236, 26, 33, 4, 237, 3, 33, 4, 237, 157, 33, 4,
+ 237, 48, 33, 4, 237, 67, 33, 4, 236, 136, 33, 4, 236, 135, 33, 4, 228,
+ 113, 33, 4, 226, 239, 33, 4, 227, 148, 33, 4, 228, 112, 33, 4, 227, 226,
+ 33, 4, 227, 234, 33, 4, 227, 49, 33, 4, 226, 207, 33, 4, 237, 12, 33, 4,
+ 237, 6, 33, 4, 237, 8, 33, 4, 237, 11, 33, 4, 237, 9, 33, 4, 237, 10, 33,
+ 4, 237, 7, 33, 4, 237, 5, 33, 4, 192, 33, 4, 223, 246, 33, 4, 224, 155,
+ 33, 4, 225, 175, 33, 4, 225, 8, 33, 4, 225, 20, 33, 4, 224, 82, 33, 4,
+ 223, 180, 33, 4, 210, 80, 33, 4, 210, 74, 33, 4, 210, 76, 33, 4, 210, 79,
+ 33, 4, 210, 77, 33, 4, 210, 78, 33, 4, 210, 75, 33, 4, 210, 73, 33, 4,
+ 216, 220, 33, 4, 215, 145, 33, 4, 216, 57, 33, 4, 216, 216, 33, 4, 216,
+ 135, 33, 4, 216, 158, 33, 4, 215, 227, 33, 4, 215, 111, 33, 4, 215, 36,
+ 33, 4, 211, 10, 33, 4, 212, 162, 33, 4, 215, 33, 33, 4, 214, 165, 33, 4,
+ 214, 177, 33, 4, 212, 13, 33, 4, 210, 172, 33, 4, 213, 90, 33, 4, 212,
+ 199, 33, 4, 213, 11, 33, 4, 213, 85, 33, 4, 213, 41, 33, 4, 213, 43, 33,
+ 4, 212, 242, 33, 4, 212, 180, 33, 4, 217, 126, 33, 4, 217, 65, 33, 4,
+ 217, 88, 33, 4, 217, 125, 33, 4, 217, 105, 33, 4, 217, 106, 33, 4, 217,
+ 77, 33, 4, 217, 76, 33, 4, 217, 19, 33, 4, 217, 15, 33, 4, 217, 18, 33,
+ 4, 217, 16, 33, 4, 217, 17, 33, 4, 217, 102, 33, 4, 217, 94, 33, 4, 217,
+ 97, 33, 4, 217, 101, 33, 4, 217, 98, 33, 4, 217, 99, 33, 4, 217, 96, 33,
+ 4, 217, 93, 33, 4, 217, 89, 33, 4, 217, 92, 33, 4, 217, 90, 33, 4, 217,
+ 91, 33, 4, 249, 32, 33, 4, 247, 193, 33, 4, 248, 86, 33, 4, 249, 30, 33,
+ 4, 248, 150, 33, 4, 248, 162, 33, 4, 248, 23, 33, 4, 247, 142, 33, 4,
+ 206, 86, 33, 4, 204, 163, 33, 4, 205, 230, 33, 4, 206, 85, 33, 4, 206,
+ 50, 33, 4, 206, 55, 33, 4, 205, 189, 33, 4, 204, 154, 33, 4, 210, 22, 33,
+ 4, 207, 203, 33, 4, 209, 2, 33, 4, 210, 18, 33, 4, 209, 176, 33, 4, 209,
+ 187, 33, 4, 135, 33, 4, 207, 160, 33, 4, 247, 92, 33, 4, 245, 110, 33, 4,
+ 246, 79, 33, 4, 247, 91, 33, 4, 246, 230, 33, 4, 246, 238, 33, 4, 245,
+ 254, 33, 4, 245, 74, 33, 4, 203, 182, 33, 4, 203, 152, 33, 4, 203, 170,
+ 33, 4, 203, 181, 33, 4, 203, 175, 33, 4, 203, 176, 33, 4, 203, 160, 33,
+ 4, 203, 159, 33, 4, 203, 146, 33, 4, 203, 142, 33, 4, 203, 145, 33, 4,
+ 203, 143, 33, 4, 203, 144, 33, 4, 201, 201, 33, 4, 221, 84, 33, 4, 222,
+ 100, 33, 4, 223, 106, 33, 4, 222, 235, 33, 4, 222, 240, 33, 4, 221, 191,
+ 33, 4, 221, 20, 33, 4, 221, 11, 33, 4, 220, 226, 33, 4, 220, 248, 33, 4,
+ 221, 10, 33, 4, 221, 0, 33, 4, 221, 1, 33, 4, 220, 233, 33, 4, 220, 216,
+ 33, 4, 238, 45, 63, 33, 4, 238, 45, 68, 33, 4, 238, 45, 75, 33, 4, 238,
+ 45, 252, 25, 33, 4, 238, 45, 241, 161, 33, 4, 238, 45, 74, 33, 4, 238,
+ 45, 78, 33, 4, 238, 45, 204, 111, 33, 4, 173, 33, 4, 228, 209, 33, 4,
+ 229, 100, 33, 4, 230, 41, 33, 4, 229, 198, 33, 4, 229, 201, 33, 4, 229,
+ 26, 33, 4, 229, 25, 33, 4, 228, 167, 33, 4, 228, 160, 33, 4, 228, 166,
+ 33, 4, 228, 161, 33, 4, 228, 162, 33, 4, 228, 153, 33, 4, 228, 147, 33,
+ 4, 228, 149, 33, 4, 228, 152, 33, 4, 228, 150, 33, 4, 228, 151, 33, 4,
+ 228, 148, 33, 4, 228, 146, 33, 4, 228, 142, 33, 4, 228, 145, 33, 4, 228,
+ 143, 33, 4, 228, 144, 33, 4, 204, 111, 33, 4, 203, 217, 33, 4, 204, 30,
+ 33, 4, 204, 110, 33, 4, 204, 55, 33, 4, 204, 62, 33, 4, 204, 0, 33, 4,
+ 203, 255, 33, 4, 218, 199, 63, 33, 4, 218, 199, 68, 33, 4, 218, 199, 75,
+ 33, 4, 218, 199, 252, 25, 33, 4, 218, 199, 241, 161, 33, 4, 218, 199, 74,
+ 33, 4, 218, 199, 78, 33, 4, 202, 116, 33, 4, 202, 6, 33, 4, 202, 39, 33,
+ 4, 202, 114, 33, 4, 202, 90, 33, 4, 202, 92, 33, 4, 202, 17, 33, 4, 201,
+ 249, 33, 4, 202, 80, 33, 4, 202, 57, 33, 4, 202, 66, 33, 4, 202, 79, 33,
+ 4, 202, 70, 33, 4, 202, 71, 33, 4, 202, 63, 33, 4, 202, 48, 33, 4, 198,
+ 33, 4, 202, 213, 33, 4, 203, 11, 33, 4, 203, 110, 33, 4, 203, 49, 33, 4,
+ 203, 52, 33, 4, 202, 247, 33, 4, 202, 238, 33, 4, 244, 212, 33, 4, 242,
+ 42, 33, 4, 243, 233, 33, 4, 244, 211, 33, 4, 244, 61, 33, 4, 244, 75, 33,
+ 4, 243, 113, 33, 4, 242, 10, 33, 4, 244, 120, 33, 4, 244, 85, 33, 4, 244,
+ 97, 33, 4, 244, 119, 33, 4, 244, 107, 33, 4, 244, 108, 33, 4, 244, 90,
+ 33, 4, 244, 76, 33, 4, 230, 181, 33, 4, 230, 82, 33, 4, 230, 141, 33, 4,
+ 230, 180, 33, 4, 230, 159, 33, 4, 230, 161, 33, 4, 230, 101, 33, 4, 230,
+ 62, 33, 4, 239, 8, 33, 4, 237, 230, 33, 4, 238, 81, 33, 4, 239, 5, 33, 4,
+ 238, 182, 33, 4, 238, 190, 33, 4, 238, 39, 33, 4, 238, 38, 33, 4, 237,
+ 190, 33, 4, 237, 186, 33, 4, 237, 189, 33, 4, 237, 187, 33, 4, 237, 188,
+ 33, 4, 238, 155, 33, 4, 238, 135, 33, 4, 238, 145, 33, 4, 238, 154, 33,
+ 4, 238, 149, 33, 4, 238, 150, 33, 4, 238, 139, 33, 4, 238, 124, 33, 4,
+ 209, 108, 33, 4, 209, 22, 33, 4, 209, 70, 33, 4, 209, 107, 33, 4, 209,
+ 90, 33, 4, 209, 92, 33, 4, 209, 47, 33, 4, 209, 13, 33, 4, 246, 199, 33,
+ 4, 246, 98, 33, 4, 246, 142, 33, 4, 246, 198, 33, 4, 246, 166, 33, 4,
+ 246, 170, 33, 4, 246, 116, 33, 4, 246, 87, 33, 4, 218, 208, 33, 4, 218,
+ 173, 33, 4, 218, 192, 33, 4, 218, 207, 33, 4, 218, 194, 33, 4, 218, 195,
+ 33, 4, 218, 180, 33, 4, 218, 169, 33, 4, 208, 20, 33, 4, 207, 249, 33, 4,
+ 207, 255, 33, 4, 208, 19, 33, 4, 208, 13, 33, 4, 208, 14, 33, 4, 207,
+ 253, 33, 4, 207, 247, 33, 4, 207, 106, 33, 4, 207, 98, 33, 4, 207, 102,
+ 33, 4, 207, 105, 33, 4, 207, 103, 33, 4, 207, 104, 33, 4, 207, 100, 33,
+ 4, 207, 99, 33, 4, 240, 108, 33, 4, 239, 108, 33, 4, 240, 26, 33, 4, 240,
+ 107, 33, 4, 240, 53, 33, 4, 240, 60, 33, 4, 239, 186, 33, 4, 239, 86, 33,
+ 4, 185, 33, 4, 217, 191, 33, 4, 218, 167, 33, 4, 219, 168, 33, 4, 219,
+ 23, 33, 4, 219, 34, 33, 4, 218, 69, 33, 4, 217, 152, 33, 4, 215, 101, 33,
+ 4, 223, 169, 33, 4, 239, 80, 33, 39, 238, 179, 25, 22, 227, 196, 82, 33,
+ 39, 22, 227, 196, 82, 33, 39, 238, 179, 82, 33, 214, 168, 82, 33, 203,
+ 237, 33, 239, 102, 211, 61, 33, 245, 233, 33, 213, 143, 33, 245, 242, 33,
+ 217, 246, 245, 242, 33, 217, 47, 82, 33, 219, 89, 213, 130, 33, 17, 105,
+ 33, 17, 108, 33, 17, 147, 33, 17, 149, 33, 17, 170, 33, 17, 195, 33, 17,
+ 213, 111, 33, 17, 199, 33, 17, 222, 63, 33, 42, 209, 152, 33, 42, 207,
+ 151, 33, 42, 209, 53, 33, 42, 239, 153, 33, 42, 240, 18, 33, 42, 212, 74,
+ 33, 42, 213, 105, 33, 42, 241, 134, 33, 42, 222, 58, 33, 42, 236, 11, 33,
+ 42, 209, 153, 209, 36, 33, 4, 214, 173, 223, 180, 33, 4, 223, 176, 33, 4,
+ 223, 177, 33, 4, 223, 178, 33, 4, 214, 173, 247, 142, 33, 4, 247, 139,
+ 33, 4, 247, 140, 33, 4, 247, 141, 33, 4, 214, 173, 239, 86, 33, 4, 239,
+ 82, 33, 4, 239, 83, 33, 4, 239, 84, 33, 4, 214, 173, 217, 152, 33, 4,
+ 217, 148, 33, 4, 217, 149, 33, 4, 217, 150, 33, 208, 162, 131, 202, 250,
+ 33, 208, 162, 131, 244, 22, 33, 208, 162, 131, 216, 2, 33, 208, 162, 131,
+ 212, 228, 216, 2, 33, 208, 162, 131, 243, 207, 33, 208, 162, 131, 229,
+ 179, 33, 208, 162, 131, 246, 124, 33, 208, 162, 131, 237, 0, 33, 208,
+ 162, 131, 244, 21, 33, 208, 162, 131, 228, 181, 90, 1, 63, 90, 1, 74, 90,
+ 1, 75, 90, 1, 78, 90, 1, 68, 90, 1, 206, 164, 90, 1, 239, 8, 90, 1, 173,
+ 90, 1, 238, 190, 90, 1, 238, 81, 90, 1, 238, 39, 90, 1, 237, 230, 90, 1,
+ 237, 192, 90, 1, 152, 90, 1, 237, 67, 90, 1, 237, 3, 90, 1, 236, 136, 90,
+ 1, 236, 26, 90, 1, 235, 255, 90, 1, 228, 113, 90, 1, 227, 234, 90, 1,
+ 227, 148, 90, 1, 227, 49, 90, 1, 226, 239, 90, 1, 226, 208, 90, 1, 192,
+ 90, 1, 225, 20, 90, 1, 224, 155, 90, 1, 224, 82, 90, 1, 223, 246, 90, 1,
+ 201, 201, 90, 1, 236, 160, 90, 1, 223, 93, 90, 1, 222, 240, 90, 1, 222,
+ 100, 90, 1, 221, 191, 90, 1, 221, 84, 90, 1, 221, 22, 90, 1, 217, 64, 90,
+ 1, 217, 50, 90, 1, 217, 43, 90, 1, 217, 34, 90, 1, 217, 23, 90, 1, 217,
+ 21, 90, 1, 215, 36, 90, 1, 194, 90, 1, 214, 177, 90, 1, 212, 162, 90, 1,
+ 212, 13, 90, 1, 211, 10, 90, 1, 210, 177, 90, 1, 244, 212, 90, 1, 210,
+ 22, 90, 1, 244, 75, 90, 1, 209, 187, 90, 1, 243, 233, 90, 1, 209, 2, 90,
+ 1, 243, 113, 90, 1, 242, 42, 90, 1, 242, 13, 90, 1, 243, 124, 90, 1, 208,
+ 190, 90, 1, 208, 189, 90, 1, 208, 178, 90, 1, 208, 177, 90, 1, 208, 176,
+ 90, 1, 208, 175, 90, 1, 208, 20, 90, 1, 208, 14, 90, 1, 207, 255, 90, 1,
+ 207, 253, 90, 1, 207, 249, 90, 1, 207, 248, 90, 1, 204, 111, 90, 1, 204,
+ 62, 90, 1, 204, 30, 90, 1, 204, 0, 90, 1, 203, 217, 90, 1, 203, 204, 90,
+ 1, 198, 90, 1, 203, 52, 90, 1, 203, 11, 90, 1, 202, 247, 90, 1, 202, 213,
+ 90, 1, 202, 177, 90, 1, 223, 187, 90, 5, 1, 203, 52, 90, 5, 1, 203, 11,
+ 90, 5, 1, 202, 247, 90, 5, 1, 202, 213, 90, 5, 1, 202, 177, 90, 5, 1,
+ 223, 187, 19, 20, 235, 220, 19, 20, 74, 19, 20, 251, 245, 19, 20, 75, 19,
+ 20, 231, 83, 19, 20, 78, 19, 20, 220, 18, 19, 20, 203, 123, 220, 18, 19,
+ 20, 88, 241, 161, 19, 20, 88, 75, 19, 20, 63, 19, 20, 252, 25, 19, 20,
+ 204, 62, 19, 20, 196, 204, 62, 19, 20, 204, 30, 19, 20, 196, 204, 30, 19,
+ 20, 204, 19, 19, 20, 196, 204, 19, 19, 20, 204, 0, 19, 20, 196, 204, 0,
+ 19, 20, 203, 244, 19, 20, 196, 203, 244, 19, 20, 223, 68, 203, 244, 19,
+ 20, 204, 111, 19, 20, 196, 204, 111, 19, 20, 204, 110, 19, 20, 196, 204,
+ 110, 19, 20, 223, 68, 204, 110, 19, 20, 251, 64, 19, 20, 203, 123, 204,
+ 144, 19, 20, 238, 45, 211, 61, 19, 20, 46, 165, 19, 20, 46, 237, 253, 19,
+ 20, 46, 247, 248, 162, 215, 252, 19, 20, 46, 208, 145, 162, 215, 252, 19,
+ 20, 46, 50, 162, 215, 252, 19, 20, 46, 215, 252, 19, 20, 46, 52, 165, 19,
+ 20, 46, 52, 212, 228, 80, 211, 19, 19, 20, 46, 101, 243, 85, 19, 20, 46,
+ 212, 228, 236, 106, 95, 19, 20, 46, 218, 76, 19, 20, 46, 121, 210, 3, 19,
+ 20, 241, 92, 19, 20, 231, 49, 19, 20, 220, 31, 19, 20, 250, 231, 19, 20,
+ 219, 34, 19, 20, 219, 166, 19, 20, 218, 167, 19, 20, 218, 129, 19, 20,
+ 218, 69, 19, 20, 218, 45, 19, 20, 203, 123, 218, 45, 19, 20, 88, 237, 48,
+ 19, 20, 88, 237, 3, 19, 20, 185, 19, 20, 219, 168, 19, 20, 217, 150, 19,
+ 20, 196, 217, 150, 19, 20, 217, 148, 19, 20, 196, 217, 148, 19, 20, 217,
+ 147, 19, 20, 196, 217, 147, 19, 20, 217, 145, 19, 20, 196, 217, 145, 19,
+ 20, 217, 144, 19, 20, 196, 217, 144, 19, 20, 217, 152, 19, 20, 196, 217,
+ 152, 19, 20, 217, 151, 19, 20, 196, 217, 151, 19, 20, 203, 123, 217, 151,
+ 19, 20, 219, 184, 19, 20, 196, 219, 184, 19, 20, 88, 237, 171, 19, 20,
+ 209, 187, 19, 20, 210, 16, 19, 20, 209, 2, 19, 20, 208, 242, 19, 20, 135,
+ 19, 20, 208, 148, 19, 20, 203, 123, 208, 148, 19, 20, 88, 244, 61, 19,
+ 20, 88, 243, 233, 19, 20, 210, 22, 19, 20, 210, 18, 19, 20, 207, 158, 19,
+ 20, 196, 207, 158, 19, 20, 207, 140, 19, 20, 196, 207, 140, 19, 20, 207,
+ 139, 19, 20, 196, 207, 139, 19, 20, 108, 19, 20, 196, 108, 19, 20, 207,
+ 130, 19, 20, 196, 207, 130, 19, 20, 207, 160, 19, 20, 196, 207, 160, 19,
+ 20, 207, 159, 19, 20, 196, 207, 159, 19, 20, 223, 68, 207, 159, 19, 20,
+ 210, 69, 19, 20, 207, 236, 19, 20, 207, 220, 19, 20, 207, 218, 19, 20,
+ 207, 241, 19, 20, 229, 201, 19, 20, 230, 36, 19, 20, 229, 100, 19, 20,
+ 229, 87, 19, 20, 229, 26, 19, 20, 229, 6, 19, 20, 203, 123, 229, 6, 19,
+ 20, 173, 19, 20, 230, 41, 19, 20, 228, 162, 19, 20, 196, 228, 162, 19,
+ 20, 228, 160, 19, 20, 196, 228, 160, 19, 20, 228, 159, 19, 20, 196, 228,
+ 159, 19, 20, 228, 157, 19, 20, 196, 228, 157, 19, 20, 228, 156, 19, 20,
+ 196, 228, 156, 19, 20, 228, 167, 19, 20, 196, 228, 167, 19, 20, 228, 166,
+ 19, 20, 196, 228, 166, 19, 20, 223, 68, 228, 166, 19, 20, 230, 54, 19,
+ 20, 228, 168, 19, 20, 211, 237, 229, 191, 19, 20, 211, 237, 229, 88, 19,
+ 20, 211, 237, 229, 20, 19, 20, 211, 237, 230, 20, 19, 20, 246, 238, 19,
+ 20, 247, 90, 19, 20, 246, 79, 19, 20, 246, 69, 19, 20, 245, 254, 19, 20,
+ 245, 180, 19, 20, 203, 123, 245, 180, 19, 20, 247, 92, 19, 20, 247, 91,
+ 19, 20, 245, 72, 19, 20, 196, 245, 72, 19, 20, 245, 70, 19, 20, 196, 245,
+ 70, 19, 20, 245, 69, 19, 20, 196, 245, 69, 19, 20, 245, 68, 19, 20, 196,
+ 245, 68, 19, 20, 245, 67, 19, 20, 196, 245, 67, 19, 20, 245, 74, 19, 20,
+ 196, 245, 74, 19, 20, 245, 73, 19, 20, 196, 245, 73, 19, 20, 223, 68,
+ 245, 73, 19, 20, 247, 125, 19, 20, 214, 206, 209, 110, 19, 20, 225, 20,
+ 19, 20, 225, 174, 19, 20, 224, 155, 19, 20, 224, 125, 19, 20, 224, 82,
+ 19, 20, 224, 35, 19, 20, 203, 123, 224, 35, 19, 20, 192, 19, 20, 225,
+ 175, 19, 20, 223, 178, 19, 20, 196, 223, 178, 19, 20, 223, 176, 19, 20,
+ 196, 223, 176, 19, 20, 223, 175, 19, 20, 196, 223, 175, 19, 20, 223, 174,
+ 19, 20, 196, 223, 174, 19, 20, 223, 173, 19, 20, 196, 223, 173, 19, 20,
+ 223, 180, 19, 20, 196, 223, 180, 19, 20, 223, 179, 19, 20, 196, 223, 179,
+ 19, 20, 223, 68, 223, 179, 19, 20, 226, 185, 19, 20, 196, 226, 185, 19,
+ 20, 224, 159, 19, 20, 250, 48, 226, 185, 19, 20, 214, 206, 226, 185, 19,
+ 20, 222, 240, 19, 20, 223, 105, 19, 20, 222, 100, 19, 20, 222, 75, 19,
+ 20, 221, 191, 19, 20, 221, 180, 19, 20, 203, 123, 221, 180, 19, 20, 201,
+ 201, 19, 20, 223, 106, 19, 20, 221, 18, 19, 20, 196, 221, 18, 19, 20,
+ 221, 20, 19, 20, 196, 221, 20, 19, 20, 221, 19, 19, 20, 196, 221, 19, 19,
+ 20, 223, 68, 221, 19, 19, 20, 223, 163, 19, 20, 88, 222, 205, 19, 20,
+ 222, 105, 19, 20, 227, 234, 19, 20, 228, 111, 19, 20, 227, 148, 19, 20,
+ 227, 130, 19, 20, 227, 49, 19, 20, 227, 18, 19, 20, 203, 123, 227, 18,
+ 19, 20, 228, 113, 19, 20, 228, 112, 19, 20, 226, 205, 19, 20, 196, 226,
+ 205, 19, 20, 226, 204, 19, 20, 196, 226, 204, 19, 20, 226, 203, 19, 20,
+ 196, 226, 203, 19, 20, 226, 202, 19, 20, 196, 226, 202, 19, 20, 226, 201,
+ 19, 20, 196, 226, 201, 19, 20, 226, 207, 19, 20, 196, 226, 207, 19, 20,
+ 226, 206, 19, 20, 196, 226, 206, 19, 20, 159, 19, 20, 196, 159, 19, 20,
+ 174, 159, 19, 20, 214, 177, 19, 20, 215, 31, 19, 20, 212, 162, 19, 20,
+ 212, 142, 19, 20, 212, 13, 19, 20, 211, 250, 19, 20, 203, 123, 211, 250,
+ 19, 20, 215, 36, 19, 20, 215, 33, 19, 20, 210, 168, 19, 20, 196, 210,
+ 168, 19, 20, 210, 162, 19, 20, 196, 210, 162, 19, 20, 210, 161, 19, 20,
+ 196, 210, 161, 19, 20, 210, 157, 19, 20, 196, 210, 157, 19, 20, 210, 156,
+ 19, 20, 196, 210, 156, 19, 20, 210, 172, 19, 20, 196, 210, 172, 19, 20,
+ 210, 171, 19, 20, 196, 210, 171, 19, 20, 223, 68, 210, 171, 19, 20, 194,
+ 19, 20, 250, 48, 194, 19, 20, 210, 173, 19, 20, 248, 40, 194, 19, 20,
+ 224, 28, 212, 70, 19, 20, 223, 68, 212, 61, 19, 20, 223, 68, 215, 92, 19,
+ 20, 223, 68, 211, 179, 19, 20, 223, 68, 211, 13, 19, 20, 223, 68, 212,
+ 60, 19, 20, 223, 68, 214, 180, 19, 20, 213, 43, 19, 20, 213, 11, 19, 20,
+ 213, 6, 19, 20, 212, 242, 19, 20, 212, 236, 19, 20, 213, 90, 19, 20, 213,
+ 85, 19, 20, 212, 177, 19, 20, 196, 212, 177, 19, 20, 212, 176, 19, 20,
+ 196, 212, 176, 19, 20, 212, 175, 19, 20, 196, 212, 175, 19, 20, 212, 174,
+ 19, 20, 196, 212, 174, 19, 20, 212, 173, 19, 20, 196, 212, 173, 19, 20,
+ 212, 180, 19, 20, 196, 212, 180, 19, 20, 212, 179, 19, 20, 196, 212, 179,
+ 19, 20, 213, 92, 19, 20, 203, 52, 19, 20, 203, 108, 19, 20, 203, 11, 19,
+ 20, 203, 2, 19, 20, 202, 247, 19, 20, 202, 232, 19, 20, 203, 123, 202,
+ 232, 19, 20, 198, 19, 20, 203, 110, 19, 20, 202, 174, 19, 20, 196, 202,
+ 174, 19, 20, 202, 173, 19, 20, 196, 202, 173, 19, 20, 202, 172, 19, 20,
+ 196, 202, 172, 19, 20, 202, 171, 19, 20, 196, 202, 171, 19, 20, 202, 170,
+ 19, 20, 196, 202, 170, 19, 20, 202, 176, 19, 20, 196, 202, 176, 19, 20,
+ 202, 175, 19, 20, 196, 202, 175, 19, 20, 223, 68, 202, 175, 19, 20, 203,
+ 124, 19, 20, 248, 84, 203, 124, 19, 20, 196, 203, 124, 19, 20, 214, 206,
+ 203, 11, 19, 20, 216, 158, 19, 20, 217, 0, 216, 158, 19, 20, 196, 227,
+ 234, 19, 20, 216, 215, 19, 20, 216, 57, 19, 20, 216, 3, 19, 20, 215, 227,
+ 19, 20, 215, 208, 19, 20, 196, 227, 49, 19, 20, 216, 220, 19, 20, 216,
+ 216, 19, 20, 196, 228, 113, 19, 20, 215, 110, 19, 20, 196, 215, 110, 19,
+ 20, 146, 19, 20, 196, 146, 19, 20, 174, 146, 19, 20, 240, 60, 19, 20,
+ 240, 105, 19, 20, 240, 26, 19, 20, 240, 12, 19, 20, 239, 186, 19, 20,
+ 239, 175, 19, 20, 240, 108, 19, 20, 240, 107, 19, 20, 239, 85, 19, 20,
+ 196, 239, 85, 19, 20, 240, 174, 19, 20, 209, 92, 19, 20, 223, 161, 209,
+ 92, 19, 20, 209, 70, 19, 20, 223, 161, 209, 70, 19, 20, 209, 64, 19, 20,
+ 223, 161, 209, 64, 19, 20, 209, 47, 19, 20, 209, 42, 19, 20, 209, 108,
+ 19, 20, 209, 107, 19, 20, 209, 12, 19, 20, 196, 209, 12, 19, 20, 209,
+ 110, 19, 20, 207, 227, 19, 20, 207, 225, 19, 20, 207, 224, 19, 20, 207,
+ 229, 19, 20, 207, 230, 19, 20, 207, 124, 19, 20, 207, 123, 19, 20, 207,
+ 122, 19, 20, 207, 126, 19, 20, 221, 39, 237, 67, 19, 20, 221, 39, 237, 3,
+ 19, 20, 221, 39, 236, 239, 19, 20, 221, 39, 236, 136, 19, 20, 221, 39,
+ 236, 117, 19, 20, 221, 39, 152, 19, 20, 221, 39, 237, 157, 19, 20, 221,
+ 39, 237, 171, 19, 20, 221, 38, 237, 171, 19, 20, 236, 226, 19, 20, 217,
+ 122, 19, 20, 217, 88, 19, 20, 217, 83, 19, 20, 217, 77, 19, 20, 217, 72,
+ 19, 20, 217, 126, 19, 20, 217, 125, 19, 20, 217, 134, 19, 20, 208, 186,
+ 19, 20, 208, 184, 19, 20, 208, 183, 19, 20, 208, 187, 19, 20, 196, 216,
+ 158, 19, 20, 196, 216, 57, 19, 20, 196, 215, 227, 19, 20, 196, 216, 220,
+ 19, 20, 222, 201, 19, 20, 222, 151, 19, 20, 222, 147, 19, 20, 222, 128,
+ 19, 20, 222, 123, 19, 20, 222, 203, 19, 20, 222, 202, 19, 20, 222, 205,
+ 19, 20, 221, 220, 19, 20, 214, 206, 213, 43, 19, 20, 214, 206, 213, 11,
+ 19, 20, 214, 206, 212, 242, 19, 20, 214, 206, 213, 90, 19, 20, 203, 242,
+ 209, 92, 19, 20, 203, 242, 209, 70, 19, 20, 203, 242, 209, 47, 19, 20,
+ 203, 242, 209, 108, 19, 20, 203, 242, 209, 110, 19, 20, 227, 155, 19, 20,
+ 227, 154, 19, 20, 227, 153, 19, 20, 227, 152, 19, 20, 227, 161, 19, 20,
+ 227, 160, 19, 20, 227, 162, 19, 20, 209, 109, 209, 92, 19, 20, 209, 109,
+ 209, 70, 19, 20, 209, 109, 209, 64, 19, 20, 209, 109, 209, 47, 19, 20,
+ 209, 109, 209, 42, 19, 20, 209, 109, 209, 108, 19, 20, 209, 109, 209,
+ 107, 19, 20, 209, 109, 209, 110, 19, 20, 251, 50, 249, 255, 19, 20, 248,
+ 40, 74, 19, 20, 248, 40, 75, 19, 20, 248, 40, 78, 19, 20, 248, 40, 63,
+ 19, 20, 248, 40, 204, 62, 19, 20, 248, 40, 204, 30, 19, 20, 248, 40, 204,
+ 0, 19, 20, 248, 40, 204, 111, 19, 20, 248, 40, 222, 240, 19, 20, 248, 40,
+ 222, 100, 19, 20, 248, 40, 221, 191, 19, 20, 248, 40, 201, 201, 19, 20,
+ 248, 40, 229, 201, 19, 20, 248, 40, 229, 100, 19, 20, 248, 40, 229, 26,
+ 19, 20, 248, 40, 173, 19, 20, 214, 206, 237, 67, 19, 20, 214, 206, 237,
+ 3, 19, 20, 214, 206, 236, 136, 19, 20, 214, 206, 152, 19, 20, 88, 238,
+ 87, 19, 20, 88, 238, 91, 19, 20, 88, 238, 105, 19, 20, 88, 238, 104, 19,
+ 20, 88, 238, 93, 19, 20, 88, 238, 119, 19, 20, 88, 215, 145, 19, 20, 88,
+ 215, 227, 19, 20, 88, 216, 158, 19, 20, 88, 216, 135, 19, 20, 88, 216,
+ 57, 19, 20, 88, 216, 220, 19, 20, 88, 203, 217, 19, 20, 88, 204, 0, 19,
+ 20, 88, 204, 62, 19, 20, 88, 204, 55, 19, 20, 88, 204, 30, 19, 20, 88,
+ 204, 111, 19, 20, 88, 235, 247, 19, 20, 88, 235, 248, 19, 20, 88, 235,
+ 251, 19, 20, 88, 235, 250, 19, 20, 88, 235, 249, 19, 20, 88, 235, 254,
+ 19, 20, 88, 209, 22, 19, 20, 88, 209, 47, 19, 20, 88, 209, 92, 19, 20,
+ 88, 209, 90, 19, 20, 88, 209, 70, 19, 20, 88, 209, 108, 19, 20, 88, 207,
+ 208, 19, 20, 88, 207, 218, 19, 20, 88, 207, 236, 19, 20, 88, 207, 235,
+ 19, 20, 88, 207, 220, 19, 20, 88, 207, 241, 19, 20, 88, 217, 191, 19, 20,
+ 88, 218, 69, 19, 20, 88, 219, 34, 19, 20, 88, 219, 23, 19, 20, 88, 218,
+ 167, 19, 20, 88, 185, 19, 20, 88, 219, 184, 19, 20, 88, 237, 230, 19, 20,
+ 88, 238, 39, 19, 20, 88, 238, 190, 19, 20, 88, 238, 182, 19, 20, 88, 238,
+ 81, 19, 20, 88, 239, 8, 19, 20, 88, 229, 109, 19, 20, 88, 229, 115, 19,
+ 20, 88, 229, 129, 19, 20, 88, 229, 128, 19, 20, 88, 229, 122, 19, 20, 88,
+ 229, 144, 19, 20, 88, 229, 42, 19, 20, 88, 229, 43, 19, 20, 88, 229, 46,
+ 19, 20, 88, 229, 45, 19, 20, 88, 229, 44, 19, 20, 88, 229, 47, 19, 20,
+ 88, 229, 48, 19, 20, 88, 221, 84, 19, 20, 88, 221, 191, 19, 20, 88, 222,
+ 240, 19, 20, 88, 222, 235, 19, 20, 88, 222, 100, 19, 20, 88, 201, 201,
+ 19, 20, 88, 223, 246, 19, 20, 88, 224, 82, 19, 20, 88, 225, 20, 19, 20,
+ 88, 225, 8, 19, 20, 88, 224, 155, 19, 20, 88, 192, 19, 20, 88, 202, 213,
+ 19, 20, 88, 202, 247, 19, 20, 88, 203, 52, 19, 20, 88, 203, 49, 19, 20,
+ 88, 203, 11, 19, 20, 88, 198, 19, 20, 88, 230, 82, 19, 20, 214, 206, 230,
+ 82, 19, 20, 88, 230, 101, 19, 20, 88, 230, 161, 19, 20, 88, 230, 159, 19,
+ 20, 88, 230, 141, 19, 20, 214, 206, 230, 141, 19, 20, 88, 230, 181, 19,
+ 20, 88, 230, 114, 19, 20, 88, 230, 118, 19, 20, 88, 230, 128, 19, 20, 88,
+ 230, 127, 19, 20, 88, 230, 126, 19, 20, 88, 230, 129, 19, 20, 88, 226,
+ 239, 19, 20, 88, 227, 49, 19, 20, 88, 227, 234, 19, 20, 88, 227, 226, 19,
+ 20, 88, 227, 148, 19, 20, 88, 228, 113, 19, 20, 88, 243, 117, 19, 20, 88,
+ 243, 118, 19, 20, 88, 243, 123, 19, 20, 88, 243, 122, 19, 20, 88, 243,
+ 119, 19, 20, 88, 243, 124, 19, 20, 88, 227, 151, 19, 20, 88, 227, 153,
+ 19, 20, 88, 227, 157, 19, 20, 88, 227, 156, 19, 20, 88, 227, 155, 19, 20,
+ 88, 227, 161, 19, 20, 88, 208, 181, 19, 20, 88, 208, 183, 19, 20, 88,
+ 208, 186, 19, 20, 88, 208, 185, 19, 20, 88, 208, 184, 19, 20, 88, 208,
+ 187, 19, 20, 88, 208, 176, 19, 20, 88, 208, 177, 19, 20, 88, 208, 189,
+ 19, 20, 88, 208, 188, 19, 20, 88, 208, 178, 19, 20, 88, 208, 190, 19, 20,
+ 88, 202, 6, 19, 20, 88, 202, 17, 19, 20, 88, 202, 92, 19, 20, 88, 202,
+ 90, 19, 20, 88, 202, 39, 19, 20, 88, 202, 116, 19, 20, 88, 202, 159, 19,
+ 20, 88, 81, 202, 159, 19, 20, 88, 241, 242, 19, 20, 88, 241, 243, 19, 20,
+ 88, 241, 252, 19, 20, 88, 241, 251, 19, 20, 88, 241, 246, 19, 20, 88,
+ 241, 255, 19, 20, 88, 211, 10, 19, 20, 88, 212, 13, 19, 20, 88, 214, 177,
+ 19, 20, 88, 214, 165, 19, 20, 88, 212, 162, 19, 20, 88, 215, 36, 19, 20,
+ 88, 212, 199, 19, 20, 88, 212, 242, 19, 20, 88, 213, 43, 19, 20, 88, 213,
+ 41, 19, 20, 88, 213, 11, 19, 20, 88, 213, 90, 19, 20, 88, 213, 92, 19,
+ 20, 88, 207, 249, 19, 20, 88, 207, 253, 19, 20, 88, 208, 14, 19, 20, 88,
+ 208, 13, 19, 20, 88, 207, 255, 19, 20, 88, 208, 20, 19, 20, 88, 246, 98,
+ 19, 20, 88, 246, 116, 19, 20, 88, 246, 170, 19, 20, 88, 246, 166, 19, 20,
+ 88, 246, 142, 19, 20, 88, 246, 199, 19, 20, 88, 207, 211, 19, 20, 88,
+ 207, 212, 19, 20, 88, 207, 215, 19, 20, 88, 207, 214, 19, 20, 88, 207,
+ 213, 19, 20, 88, 207, 216, 19, 20, 246, 143, 54, 19, 20, 239, 102, 211,
+ 61, 19, 20, 217, 118, 19, 20, 222, 199, 19, 20, 221, 217, 19, 20, 221,
+ 216, 19, 20, 221, 215, 19, 20, 221, 214, 19, 20, 221, 219, 19, 20, 221,
+ 218, 19, 20, 203, 242, 209, 10, 19, 20, 203, 242, 209, 9, 19, 20, 203,
+ 242, 209, 8, 19, 20, 203, 242, 209, 7, 19, 20, 203, 242, 209, 6, 19, 20,
+ 203, 242, 209, 13, 19, 20, 203, 242, 209, 12, 19, 20, 203, 242, 46, 209,
+ 110, 19, 20, 248, 40, 204, 144, 220, 64, 211, 229, 82, 220, 64, 1, 248,
+ 132, 220, 64, 1, 226, 225, 220, 64, 1, 240, 57, 220, 64, 1, 215, 16, 220,
+ 64, 1, 222, 56, 220, 64, 1, 207, 36, 220, 64, 1, 244, 186, 220, 64, 1,
+ 208, 214, 220, 64, 1, 245, 245, 220, 64, 1, 246, 225, 220, 64, 1, 223,
+ 233, 220, 64, 1, 238, 20, 220, 64, 1, 222, 189, 220, 64, 1, 211, 54, 220,
+ 64, 1, 215, 138, 220, 64, 1, 251, 61, 220, 64, 1, 220, 22, 220, 64, 1,
+ 206, 210, 220, 64, 1, 241, 187, 220, 64, 1, 230, 233, 220, 64, 1, 241,
+ 188, 220, 64, 1, 219, 244, 220, 64, 1, 207, 15, 220, 64, 1, 231, 89, 220,
+ 64, 1, 241, 185, 220, 64, 1, 219, 13, 220, 64, 240, 56, 82, 220, 64, 216,
+ 73, 240, 56, 82, 197, 1, 240, 46, 240, 38, 240, 61, 240, 174, 197, 1,
+ 206, 164, 197, 1, 206, 195, 206, 211, 68, 197, 1, 202, 216, 197, 1, 203,
+ 124, 197, 1, 204, 144, 197, 1, 209, 15, 209, 14, 209, 40, 197, 1, 240,
+ 243, 197, 1, 250, 199, 63, 197, 1, 219, 228, 78, 197, 1, 251, 142, 63,
+ 197, 1, 251, 93, 197, 1, 227, 24, 78, 197, 1, 212, 221, 78, 197, 1, 78,
+ 197, 1, 220, 73, 197, 1, 220, 31, 197, 1, 216, 195, 216, 208, 216, 120,
+ 146, 197, 1, 229, 216, 197, 1, 246, 221, 197, 1, 229, 217, 230, 54, 197,
+ 1, 239, 75, 197, 1, 241, 78, 197, 1, 238, 185, 237, 177, 239, 75, 197, 1,
+ 238, 224, 197, 1, 203, 209, 203, 200, 204, 144, 197, 1, 237, 149, 237,
+ 171, 197, 1, 237, 153, 237, 171, 197, 1, 227, 26, 237, 171, 197, 1, 212,
+ 224, 237, 171, 197, 1, 223, 63, 221, 2, 223, 64, 223, 163, 197, 1, 212,
+ 222, 223, 163, 197, 1, 242, 80, 197, 1, 230, 212, 230, 216, 230, 203, 75,
+ 197, 1, 74, 197, 1, 230, 152, 230, 184, 197, 1, 238, 169, 197, 1, 227,
+ 27, 251, 109, 197, 1, 212, 226, 63, 197, 1, 230, 195, 241, 51, 197, 1,
+ 218, 226, 218, 251, 219, 184, 197, 1, 251, 23, 241, 49, 197, 1, 211, 234,
+ 194, 197, 1, 212, 146, 227, 23, 194, 197, 1, 212, 220, 194, 197, 1, 247,
+ 125, 197, 1, 202, 159, 197, 1, 208, 195, 208, 207, 207, 108, 210, 69,
+ 197, 1, 212, 219, 210, 69, 197, 1, 245, 51, 197, 1, 248, 111, 248, 114,
+ 248, 46, 249, 255, 197, 1, 212, 225, 249, 255, 197, 1, 242, 79, 197, 1,
+ 220, 2, 197, 1, 241, 146, 241, 148, 74, 197, 1, 225, 113, 225, 123, 226,
+ 185, 197, 1, 227, 25, 226, 185, 197, 1, 212, 223, 226, 185, 197, 1, 227,
+ 249, 228, 91, 227, 34, 159, 197, 1, 242, 81, 197, 1, 231, 23, 197, 1,
+ 231, 24, 197, 1, 244, 200, 244, 206, 245, 51, 197, 1, 219, 222, 240, 242,
+ 78, 197, 1, 241, 183, 197, 1, 230, 232, 197, 1, 245, 71, 197, 1, 247, 75,
+ 197, 1, 246, 237, 197, 1, 211, 99, 197, 1, 227, 22, 197, 1, 212, 218,
+ 197, 1, 235, 161, 197, 1, 217, 134, 197, 1, 203, 196, 197, 212, 120, 217,
+ 178, 197, 223, 226, 217, 178, 197, 245, 131, 217, 178, 197, 250, 108, 97,
+ 197, 207, 162, 97, 197, 248, 130, 97, 197, 1, 230, 54, 197, 1, 213, 92,
+ 197, 1, 220, 18, 197, 1, 239, 131, 247, 20, 219, 227, 197, 1, 239, 131,
+ 247, 20, 230, 215, 197, 1, 239, 131, 247, 20, 241, 147, 197, 1, 239, 131,
+ 247, 20, 251, 141, 197, 1, 239, 131, 247, 20, 251, 93, 209, 254, 1, 63,
+ 209, 254, 1, 75, 209, 254, 1, 68, 209, 254, 1, 173, 209, 254, 1, 239, 8,
+ 209, 254, 1, 222, 203, 209, 254, 1, 210, 22, 209, 254, 1, 244, 212, 209,
+ 254, 1, 201, 201, 209, 254, 1, 185, 209, 254, 1, 249, 32, 209, 254, 1,
+ 192, 209, 254, 1, 198, 209, 254, 1, 228, 113, 209, 254, 1, 204, 111, 209,
+ 254, 1, 215, 36, 209, 254, 1, 152, 209, 254, 22, 2, 75, 209, 254, 22, 2,
+ 68, 209, 254, 2, 205, 204, 237, 96, 1, 63, 237, 96, 1, 75, 237, 96, 1,
+ 68, 237, 96, 1, 173, 237, 96, 1, 239, 8, 237, 96, 1, 222, 203, 237, 96,
+ 1, 210, 22, 237, 96, 1, 244, 212, 237, 96, 1, 201, 201, 237, 96, 1, 185,
+ 237, 96, 1, 249, 32, 237, 96, 1, 192, 237, 96, 1, 198, 237, 96, 1, 216,
+ 220, 237, 96, 1, 228, 113, 237, 96, 1, 204, 111, 237, 96, 1, 215, 36,
+ 237, 96, 1, 152, 237, 96, 22, 2, 75, 237, 96, 22, 2, 68, 237, 96, 2, 219,
+ 124, 218, 185, 212, 120, 217, 178, 218, 185, 52, 217, 178, 247, 185, 1,
+ 63, 247, 185, 1, 75, 247, 185, 1, 68, 247, 185, 1, 173, 247, 185, 1, 239,
+ 8, 247, 185, 1, 222, 203, 247, 185, 1, 210, 22, 247, 185, 1, 244, 212,
+ 247, 185, 1, 201, 201, 247, 185, 1, 185, 247, 185, 1, 249, 32, 247, 185,
+ 1, 192, 247, 185, 1, 198, 247, 185, 1, 216, 220, 247, 185, 1, 228, 113,
+ 247, 185, 1, 204, 111, 247, 185, 1, 215, 36, 247, 185, 1, 152, 247, 185,
+ 22, 2, 75, 247, 185, 22, 2, 68, 209, 253, 1, 63, 209, 253, 1, 75, 209,
+ 253, 1, 68, 209, 253, 1, 173, 209, 253, 1, 239, 8, 209, 253, 1, 222, 203,
+ 209, 253, 1, 210, 22, 209, 253, 1, 244, 212, 209, 253, 1, 201, 201, 209,
+ 253, 1, 185, 209, 253, 1, 249, 32, 209, 253, 1, 192, 209, 253, 1, 198,
+ 209, 253, 1, 228, 113, 209, 253, 1, 204, 111, 209, 253, 1, 215, 36, 209,
+ 253, 22, 2, 75, 209, 253, 22, 2, 68, 85, 1, 173, 85, 1, 229, 144, 85, 1,
+ 229, 26, 85, 1, 229, 115, 85, 1, 222, 128, 85, 1, 247, 92, 85, 1, 246,
+ 199, 85, 1, 245, 254, 85, 1, 246, 116, 85, 1, 220, 233, 85, 1, 244, 212,
+ 85, 1, 207, 229, 85, 1, 243, 113, 85, 1, 207, 224, 85, 1, 221, 197, 85,
+ 1, 210, 22, 85, 1, 209, 108, 85, 1, 135, 85, 1, 209, 47, 85, 1, 221, 191,
+ 85, 1, 249, 32, 85, 1, 218, 208, 85, 1, 218, 69, 85, 1, 218, 180, 85, 1,
+ 224, 82, 85, 1, 202, 247, 85, 1, 215, 227, 85, 1, 227, 49, 85, 1, 205,
+ 189, 85, 1, 213, 90, 85, 1, 211, 124, 85, 1, 215, 36, 85, 1, 152, 85, 1,
+ 228, 113, 85, 1, 217, 126, 85, 231, 36, 22, 217, 112, 85, 231, 36, 22,
+ 217, 125, 85, 231, 36, 22, 217, 88, 85, 231, 36, 22, 217, 83, 85, 231,
+ 36, 22, 217, 65, 85, 231, 36, 22, 217, 35, 85, 231, 36, 22, 217, 23, 85,
+ 231, 36, 22, 217, 22, 85, 231, 36, 22, 215, 102, 85, 231, 36, 22, 215,
+ 95, 85, 231, 36, 22, 226, 199, 85, 231, 36, 22, 226, 188, 85, 231, 36,
+ 22, 217, 106, 85, 231, 36, 22, 217, 118, 85, 231, 36, 22, 217, 73, 207,
+ 121, 105, 85, 231, 36, 22, 217, 73, 207, 121, 108, 85, 231, 36, 22, 217,
+ 108, 85, 22, 231, 21, 250, 148, 85, 22, 231, 21, 252, 25, 85, 22, 2, 252,
+ 25, 85, 22, 2, 75, 85, 22, 2, 231, 83, 85, 22, 2, 203, 124, 85, 22, 2,
+ 202, 169, 85, 22, 2, 68, 85, 22, 2, 206, 178, 85, 22, 2, 207, 39, 85, 22,
+ 2, 220, 73, 85, 22, 2, 198, 85, 22, 2, 231, 110, 85, 22, 2, 74, 85, 22,
+ 2, 251, 109, 85, 22, 2, 251, 64, 85, 22, 2, 220, 18, 85, 22, 2, 250, 34,
+ 85, 2, 222, 73, 85, 2, 216, 156, 85, 2, 202, 180, 85, 2, 223, 190, 85, 2,
+ 208, 73, 85, 2, 248, 233, 85, 2, 215, 222, 85, 2, 208, 171, 85, 2, 230,
+ 11, 85, 2, 251, 66, 85, 2, 214, 244, 214, 237, 85, 2, 205, 201, 85, 2,
+ 245, 248, 85, 2, 248, 205, 85, 2, 229, 136, 85, 2, 248, 228, 85, 2, 247,
+ 64, 218, 130, 228, 173, 85, 2, 227, 203, 208, 148, 85, 2, 248, 100, 85,
+ 2, 218, 182, 223, 243, 85, 2, 229, 4, 85, 245, 92, 16, 216, 49, 85, 2,
+ 250, 16, 85, 2, 250, 37, 85, 17, 202, 84, 85, 17, 105, 85, 17, 108, 85,
+ 17, 147, 85, 17, 149, 85, 17, 170, 85, 17, 195, 85, 17, 213, 111, 85, 17,
+ 199, 85, 17, 222, 63, 85, 16, 227, 203, 250, 39, 211, 253, 85, 16, 227,
+ 203, 250, 39, 223, 210, 85, 16, 227, 203, 250, 39, 218, 129, 85, 16, 227,
+ 203, 250, 39, 248, 133, 85, 16, 227, 203, 250, 39, 247, 165, 85, 16, 227,
+ 203, 250, 39, 218, 7, 85, 16, 227, 203, 250, 39, 218, 1, 85, 16, 227,
+ 203, 250, 39, 217, 255, 85, 16, 227, 203, 250, 39, 218, 5, 85, 16, 227,
+ 203, 250, 39, 218, 3, 94, 248, 59, 94, 241, 108, 94, 245, 233, 94, 239,
+ 102, 211, 61, 94, 245, 242, 94, 239, 147, 243, 83, 94, 208, 170, 212, 7,
+ 235, 220, 94, 212, 160, 4, 247, 244, 225, 88, 94, 225, 119, 245, 233, 94,
+ 225, 119, 239, 102, 211, 61, 94, 222, 54, 94, 239, 130, 57, 214, 151,
+ 105, 94, 239, 130, 57, 214, 151, 108, 94, 239, 130, 57, 214, 151, 147,
+ 94, 22, 213, 130, 94, 17, 202, 84, 94, 17, 105, 94, 17, 108, 94, 17, 147,
+ 94, 17, 149, 94, 17, 170, 94, 17, 195, 94, 17, 213, 111, 94, 17, 199, 94,
+ 17, 222, 63, 94, 1, 63, 94, 1, 74, 94, 1, 75, 94, 1, 78, 94, 1, 68, 94,
+ 1, 220, 73, 94, 1, 207, 24, 94, 1, 241, 161, 94, 1, 201, 201, 94, 1, 250,
+ 223, 94, 1, 249, 32, 94, 1, 185, 94, 1, 217, 126, 94, 1, 239, 8, 94, 1,
+ 192, 94, 1, 228, 113, 94, 1, 215, 36, 94, 1, 213, 90, 94, 1, 210, 22, 94,
+ 1, 244, 212, 94, 1, 246, 199, 94, 1, 230, 181, 94, 1, 198, 94, 1, 216,
+ 220, 94, 1, 204, 111, 94, 1, 240, 108, 94, 1, 173, 94, 1, 229, 144, 94,
+ 1, 208, 20, 94, 1, 202, 116, 94, 1, 237, 157, 94, 1, 202, 10, 94, 1, 227,
+ 161, 94, 1, 202, 66, 94, 1, 246, 142, 94, 1, 208, 170, 163, 22, 54, 94,
+ 1, 208, 170, 74, 94, 1, 208, 170, 75, 94, 1, 208, 170, 78, 94, 1, 208,
+ 170, 68, 94, 1, 208, 170, 220, 73, 94, 1, 208, 170, 207, 24, 94, 1, 208,
+ 170, 250, 223, 94, 1, 208, 170, 249, 32, 94, 1, 208, 170, 185, 94, 1,
+ 208, 170, 217, 126, 94, 1, 208, 170, 239, 8, 94, 1, 208, 170, 192, 94, 1,
+ 208, 170, 210, 22, 94, 1, 208, 170, 244, 212, 94, 1, 208, 170, 246, 199,
+ 94, 1, 208, 170, 230, 181, 94, 1, 208, 170, 208, 20, 94, 1, 208, 170,
+ 198, 94, 1, 208, 170, 204, 111, 94, 1, 208, 170, 173, 94, 1, 208, 170,
+ 239, 5, 94, 1, 208, 170, 237, 157, 94, 1, 208, 170, 230, 140, 94, 1, 208,
+ 170, 222, 98, 94, 1, 208, 170, 241, 255, 94, 1, 212, 160, 74, 94, 1, 212,
+ 160, 75, 94, 1, 212, 160, 230, 192, 94, 1, 212, 160, 207, 24, 94, 1, 212,
+ 160, 68, 94, 1, 212, 160, 250, 223, 94, 1, 212, 160, 173, 94, 1, 212,
+ 160, 239, 8, 94, 1, 212, 160, 152, 94, 1, 212, 160, 185, 94, 1, 212, 160,
+ 213, 90, 94, 1, 212, 160, 210, 22, 94, 1, 212, 160, 244, 212, 94, 1, 212,
+ 160, 230, 181, 94, 1, 212, 160, 240, 108, 94, 1, 212, 160, 239, 5, 94, 1,
+ 212, 160, 237, 157, 94, 1, 212, 160, 208, 20, 94, 1, 212, 160, 202, 116,
+ 94, 1, 212, 160, 216, 216, 94, 1, 212, 160, 246, 199, 94, 1, 212, 160,
+ 202, 80, 94, 1, 225, 119, 75, 94, 1, 225, 119, 173, 94, 1, 225, 119, 216,
+ 220, 94, 1, 225, 119, 240, 108, 94, 1, 225, 119, 202, 80, 94, 1, 251, 22,
+ 238, 244, 250, 181, 105, 94, 1, 251, 22, 238, 244, 205, 200, 105, 94, 1,
+ 251, 22, 238, 244, 244, 174, 94, 1, 251, 22, 238, 244, 207, 34, 94, 1,
+ 251, 22, 238, 244, 230, 239, 207, 34, 94, 1, 251, 22, 238, 244, 248, 245,
+ 94, 1, 251, 22, 238, 244, 126, 248, 245, 94, 1, 251, 22, 238, 244, 63,
+ 94, 1, 251, 22, 238, 244, 75, 94, 1, 251, 22, 238, 244, 173, 94, 1, 251,
+ 22, 238, 244, 222, 203, 94, 1, 251, 22, 238, 244, 247, 92, 94, 1, 251,
+ 22, 238, 244, 207, 241, 94, 1, 251, 22, 238, 244, 207, 229, 94, 1, 251,
+ 22, 238, 244, 244, 120, 94, 1, 251, 22, 238, 244, 221, 227, 94, 1, 251,
+ 22, 238, 244, 210, 22, 94, 1, 251, 22, 238, 244, 244, 212, 94, 1, 251,
+ 22, 238, 244, 185, 94, 1, 251, 22, 238, 244, 218, 208, 94, 1, 251, 22,
+ 238, 244, 211, 164, 94, 1, 251, 22, 238, 244, 202, 80, 94, 1, 251, 22,
+ 238, 244, 202, 116, 94, 1, 251, 22, 238, 244, 251, 73, 94, 1, 208, 170,
+ 251, 22, 238, 244, 210, 22, 94, 1, 208, 170, 251, 22, 238, 244, 202, 80,
+ 94, 1, 225, 119, 251, 22, 238, 244, 238, 119, 94, 1, 225, 119, 251, 22,
+ 238, 244, 222, 203, 94, 1, 225, 119, 251, 22, 238, 244, 247, 92, 94, 1,
+ 225, 119, 251, 22, 238, 244, 230, 149, 94, 1, 225, 119, 251, 22, 238,
+ 244, 207, 241, 94, 1, 225, 119, 251, 22, 238, 244, 244, 104, 94, 1, 225,
+ 119, 251, 22, 238, 244, 210, 22, 94, 1, 225, 119, 251, 22, 238, 244, 244,
+ 1, 94, 1, 225, 119, 251, 22, 238, 244, 211, 164, 94, 1, 225, 119, 251,
+ 22, 238, 244, 245, 65, 94, 1, 225, 119, 251, 22, 238, 244, 202, 80, 94,
+ 1, 225, 119, 251, 22, 238, 244, 202, 116, 94, 1, 251, 22, 238, 244, 162,
+ 68, 94, 1, 251, 22, 238, 244, 162, 198, 94, 1, 225, 119, 251, 22, 238,
+ 244, 248, 98, 94, 1, 251, 22, 238, 244, 244, 201, 94, 1, 225, 119, 251,
+ 22, 238, 244, 227, 161, 19, 20, 219, 188, 19, 20, 250, 8, 19, 20, 251,
+ 236, 19, 20, 204, 65, 19, 20, 218, 13, 19, 20, 219, 43, 19, 20, 217, 143,
+ 19, 20, 209, 196, 19, 20, 229, 208, 19, 20, 228, 164, 19, 20, 225, 63,
+ 19, 20, 221, 149, 19, 20, 223, 59, 19, 20, 227, 244, 19, 20, 211, 232,
+ 19, 20, 214, 208, 19, 20, 212, 207, 19, 20, 213, 47, 19, 20, 212, 172,
+ 19, 20, 202, 222, 19, 20, 203, 58, 19, 20, 216, 165, 19, 20, 221, 17, 19,
+ 20, 220, 53, 221, 17, 19, 20, 221, 16, 19, 20, 220, 53, 221, 16, 19, 20,
+ 221, 15, 19, 20, 220, 53, 221, 15, 19, 20, 221, 14, 19, 20, 220, 53, 221,
+ 14, 19, 20, 215, 107, 19, 20, 215, 106, 19, 20, 215, 105, 19, 20, 215,
+ 104, 19, 20, 215, 103, 19, 20, 215, 111, 19, 20, 220, 53, 219, 184, 19,
+ 20, 220, 53, 210, 69, 19, 20, 220, 53, 230, 54, 19, 20, 220, 53, 247,
+ 125, 19, 20, 220, 53, 226, 185, 19, 20, 220, 53, 223, 163, 19, 20, 220,
+ 53, 194, 19, 20, 220, 53, 213, 92, 19, 20, 241, 174, 204, 144, 19, 20,
+ 204, 44, 204, 144, 19, 20, 46, 5, 215, 252, 19, 20, 46, 216, 188, 243,
+ 85, 19, 20, 217, 0, 215, 108, 19, 20, 196, 227, 18, 19, 20, 196, 228,
+ 112, 19, 20, 209, 11, 19, 20, 209, 13, 19, 20, 207, 221, 19, 20, 207,
+ 223, 19, 20, 207, 228, 19, 20, 208, 180, 19, 20, 208, 182, 19, 20, 214,
+ 206, 212, 177, 19, 20, 214, 206, 212, 236, 19, 20, 214, 206, 236, 117,
+ 19, 20, 88, 237, 185, 19, 20, 88, 244, 35, 238, 182, 19, 20, 88, 239, 5,
+ 19, 20, 88, 237, 190, 19, 20, 214, 206, 230, 64, 19, 20, 88, 230, 62, 19,
+ 20, 248, 153, 244, 35, 159, 19, 20, 248, 153, 244, 35, 146, 19, 20, 88,
+ 244, 30, 194, 227, 124, 205, 169, 227, 174, 227, 124, 1, 173, 227, 124,
+ 1, 229, 144, 227, 124, 1, 239, 8, 227, 124, 1, 238, 119, 227, 124, 1,
+ 222, 203, 227, 124, 1, 247, 92, 227, 124, 1, 246, 199, 227, 124, 1, 230,
+ 181, 227, 124, 1, 230, 149, 227, 124, 1, 203, 78, 227, 124, 1, 210, 22,
+ 227, 124, 1, 209, 108, 227, 124, 1, 244, 212, 227, 124, 1, 244, 1, 227,
+ 124, 1, 201, 201, 227, 124, 1, 185, 227, 124, 1, 218, 208, 227, 124, 1,
+ 249, 32, 227, 124, 1, 248, 98, 227, 124, 1, 192, 227, 124, 1, 198, 227,
+ 124, 1, 216, 220, 227, 124, 1, 228, 113, 227, 124, 1, 204, 111, 227, 124,
+ 1, 213, 90, 227, 124, 1, 211, 164, 227, 124, 1, 215, 36, 227, 124, 1,
+ 152, 227, 124, 1, 237, 181, 227, 124, 1, 208, 119, 227, 124, 22, 2, 63,
+ 227, 124, 22, 2, 75, 227, 124, 22, 2, 68, 227, 124, 22, 2, 241, 161, 227,
+ 124, 22, 2, 251, 64, 227, 124, 22, 2, 220, 18, 227, 124, 22, 2, 250, 34,
+ 227, 124, 22, 2, 74, 227, 124, 22, 2, 78, 227, 124, 210, 254, 1, 198,
+ 227, 124, 210, 254, 1, 216, 220, 227, 124, 210, 254, 1, 204, 111, 227,
+ 124, 5, 1, 173, 227, 124, 5, 1, 222, 203, 227, 124, 5, 1, 250, 180, 227,
+ 124, 5, 1, 210, 22, 227, 124, 5, 1, 201, 201, 227, 124, 5, 1, 185, 227,
+ 124, 5, 1, 192, 227, 124, 5, 1, 216, 220, 227, 124, 5, 1, 228, 113, 227,
+ 124, 2, 223, 231, 227, 124, 2, 229, 186, 227, 124, 2, 215, 34, 227, 124,
+ 2, 227, 18, 227, 124, 240, 212, 82, 227, 124, 217, 47, 82, 227, 124, 17,
+ 202, 84, 227, 124, 17, 105, 227, 124, 17, 108, 227, 124, 17, 147, 227,
+ 124, 17, 149, 227, 124, 17, 170, 227, 124, 17, 195, 227, 124, 17, 213,
+ 111, 227, 124, 17, 199, 227, 124, 17, 222, 63, 45, 227, 235, 1, 173, 45,
+ 227, 235, 1, 203, 182, 45, 227, 235, 1, 222, 203, 45, 227, 235, 1, 208,
+ 20, 45, 227, 235, 1, 215, 36, 45, 227, 235, 1, 198, 45, 227, 235, 1, 210,
+ 22, 45, 227, 235, 1, 209, 108, 45, 227, 235, 1, 228, 113, 45, 227, 235,
+ 1, 185, 45, 227, 235, 1, 218, 208, 45, 227, 235, 1, 192, 45, 227, 235, 1,
+ 240, 108, 45, 227, 235, 1, 206, 86, 45, 227, 235, 1, 152, 45, 227, 235,
+ 1, 217, 126, 45, 227, 235, 1, 229, 144, 45, 227, 235, 1, 208, 10, 45,
+ 227, 235, 1, 201, 201, 45, 227, 235, 1, 63, 45, 227, 235, 1, 75, 45, 227,
+ 235, 1, 241, 161, 45, 227, 235, 1, 241, 147, 45, 227, 235, 1, 68, 45,
+ 227, 235, 1, 220, 18, 45, 227, 235, 1, 78, 45, 227, 235, 1, 207, 24, 45,
+ 227, 235, 1, 74, 45, 227, 235, 1, 250, 32, 45, 227, 235, 1, 251, 64, 45,
+ 227, 235, 1, 208, 159, 45, 227, 235, 1, 208, 158, 45, 227, 235, 1, 208,
+ 157, 45, 227, 235, 1, 208, 156, 45, 227, 235, 1, 208, 155, 222, 214, 45,
+ 226, 233, 1, 138, 217, 126, 222, 214, 45, 226, 233, 1, 124, 217, 126,
+ 222, 214, 45, 226, 233, 1, 138, 173, 222, 214, 45, 226, 233, 1, 138, 203,
+ 182, 222, 214, 45, 226, 233, 1, 138, 222, 203, 222, 214, 45, 226, 233, 1,
+ 124, 173, 222, 214, 45, 226, 233, 1, 124, 203, 182, 222, 214, 45, 226,
+ 233, 1, 124, 222, 203, 222, 214, 45, 226, 233, 1, 138, 208, 20, 222, 214,
+ 45, 226, 233, 1, 138, 215, 36, 222, 214, 45, 226, 233, 1, 138, 198, 222,
+ 214, 45, 226, 233, 1, 124, 208, 20, 222, 214, 45, 226, 233, 1, 124, 215,
+ 36, 222, 214, 45, 226, 233, 1, 124, 198, 222, 214, 45, 226, 233, 1, 138,
+ 210, 22, 222, 214, 45, 226, 233, 1, 138, 209, 108, 222, 214, 45, 226,
+ 233, 1, 138, 201, 201, 222, 214, 45, 226, 233, 1, 124, 210, 22, 222, 214,
+ 45, 226, 233, 1, 124, 209, 108, 222, 214, 45, 226, 233, 1, 124, 201, 201,
+ 222, 214, 45, 226, 233, 1, 138, 185, 222, 214, 45, 226, 233, 1, 138, 218,
+ 208, 222, 214, 45, 226, 233, 1, 138, 192, 222, 214, 45, 226, 233, 1, 124,
+ 185, 222, 214, 45, 226, 233, 1, 124, 218, 208, 222, 214, 45, 226, 233, 1,
+ 124, 192, 222, 214, 45, 226, 233, 1, 138, 240, 108, 222, 214, 45, 226,
+ 233, 1, 138, 206, 86, 222, 214, 45, 226, 233, 1, 138, 228, 113, 222, 214,
+ 45, 226, 233, 1, 124, 240, 108, 222, 214, 45, 226, 233, 1, 124, 206, 86,
+ 222, 214, 45, 226, 233, 1, 124, 228, 113, 222, 214, 45, 226, 233, 1, 138,
+ 152, 222, 214, 45, 226, 233, 1, 138, 244, 212, 222, 214, 45, 226, 233, 1,
+ 138, 249, 32, 222, 214, 45, 226, 233, 1, 124, 152, 222, 214, 45, 226,
+ 233, 1, 124, 244, 212, 222, 214, 45, 226, 233, 1, 124, 249, 32, 222, 214,
+ 45, 226, 233, 1, 138, 228, 169, 222, 214, 45, 226, 233, 1, 138, 203, 149,
+ 222, 214, 45, 226, 233, 1, 124, 228, 169, 222, 214, 45, 226, 233, 1, 124,
+ 203, 149, 222, 214, 45, 226, 233, 1, 138, 211, 9, 222, 214, 45, 226, 233,
+ 1, 124, 211, 9, 222, 214, 45, 226, 233, 22, 2, 22, 212, 216, 222, 214,
+ 45, 226, 233, 22, 2, 252, 25, 222, 214, 45, 226, 233, 22, 2, 231, 83,
+ 222, 214, 45, 226, 233, 22, 2, 68, 222, 214, 45, 226, 233, 22, 2, 206,
+ 178, 222, 214, 45, 226, 233, 22, 2, 74, 222, 214, 45, 226, 233, 22, 2,
+ 251, 109, 222, 214, 45, 226, 233, 22, 2, 78, 222, 214, 45, 226, 233, 22,
+ 2, 220, 97, 222, 214, 45, 226, 233, 22, 2, 207, 24, 222, 214, 45, 226,
+ 233, 22, 2, 250, 8, 222, 214, 45, 226, 233, 22, 2, 251, 236, 222, 214,
+ 45, 226, 233, 22, 2, 206, 170, 222, 214, 45, 226, 233, 22, 2, 219, 188,
+ 222, 214, 45, 226, 233, 22, 2, 220, 94, 222, 214, 45, 226, 233, 22, 2,
+ 207, 20, 222, 214, 45, 226, 233, 22, 2, 230, 192, 222, 214, 45, 226, 233,
+ 1, 46, 206, 164, 222, 214, 45, 226, 233, 1, 46, 222, 205, 222, 214, 45,
+ 226, 233, 1, 46, 223, 163, 222, 214, 45, 226, 233, 1, 46, 226, 185, 222,
+ 214, 45, 226, 233, 1, 46, 230, 54, 222, 214, 45, 226, 233, 1, 46, 245,
+ 51, 222, 214, 45, 226, 233, 1, 46, 249, 255, 222, 214, 45, 226, 233, 143,
+ 225, 92, 222, 214, 45, 226, 233, 143, 225, 91, 222, 214, 45, 226, 233,
+ 17, 202, 84, 222, 214, 45, 226, 233, 17, 105, 222, 214, 45, 226, 233, 17,
+ 108, 222, 214, 45, 226, 233, 17, 147, 222, 214, 45, 226, 233, 17, 149,
+ 222, 214, 45, 226, 233, 17, 170, 222, 214, 45, 226, 233, 17, 195, 222,
+ 214, 45, 226, 233, 17, 213, 111, 222, 214, 45, 226, 233, 17, 199, 222,
+ 214, 45, 226, 233, 17, 222, 63, 222, 214, 45, 226, 233, 104, 17, 105,
+ 222, 214, 45, 226, 233, 2, 228, 97, 222, 214, 45, 226, 233, 2, 228, 96,
+ 85, 16, 219, 51, 85, 16, 223, 211, 229, 22, 85, 16, 218, 130, 229, 22,
+ 85, 16, 248, 134, 229, 22, 85, 16, 247, 166, 229, 22, 85, 16, 218, 8,
+ 229, 22, 85, 16, 218, 2, 229, 22, 85, 16, 218, 0, 229, 22, 85, 16, 218,
+ 6, 229, 22, 85, 16, 218, 4, 229, 22, 85, 16, 244, 161, 229, 22, 85, 16,
+ 244, 157, 229, 22, 85, 16, 244, 156, 229, 22, 85, 16, 244, 159, 229, 22,
+ 85, 16, 244, 158, 229, 22, 85, 16, 244, 155, 229, 22, 85, 16, 207, 167,
+ 85, 16, 223, 211, 215, 220, 85, 16, 218, 130, 215, 220, 85, 16, 248, 134,
+ 215, 220, 85, 16, 247, 166, 215, 220, 85, 16, 218, 8, 215, 220, 85, 16,
+ 218, 2, 215, 220, 85, 16, 218, 0, 215, 220, 85, 16, 218, 6, 215, 220, 85,
+ 16, 218, 4, 215, 220, 85, 16, 244, 161, 215, 220, 85, 16, 244, 157, 215,
+ 220, 85, 16, 244, 156, 215, 220, 85, 16, 244, 159, 215, 220, 85, 16, 244,
+ 158, 215, 220, 85, 16, 244, 155, 215, 220, 247, 186, 1, 173, 247, 186, 1,
+ 239, 8, 247, 186, 1, 222, 203, 247, 186, 1, 222, 146, 247, 186, 1, 185,
+ 247, 186, 1, 249, 32, 247, 186, 1, 192, 247, 186, 1, 223, 250, 247, 186,
+ 1, 210, 22, 247, 186, 1, 244, 212, 247, 186, 1, 201, 201, 247, 186, 1,
+ 221, 147, 247, 186, 1, 247, 92, 247, 186, 1, 230, 181, 247, 186, 1, 221,
+ 11, 247, 186, 1, 221, 3, 247, 186, 1, 198, 247, 186, 1, 216, 220, 247,
+ 186, 1, 228, 113, 247, 186, 1, 206, 86, 247, 186, 1, 215, 36, 247, 186,
+ 1, 63, 247, 186, 1, 152, 247, 186, 22, 2, 75, 247, 186, 22, 2, 68, 247,
+ 186, 22, 2, 74, 247, 186, 22, 2, 78, 247, 186, 22, 2, 251, 109, 247, 186,
+ 219, 136, 247, 186, 241, 84, 76, 214, 167, 45, 104, 1, 138, 173, 45, 104,
+ 1, 138, 229, 144, 45, 104, 1, 138, 228, 153, 45, 104, 1, 124, 173, 45,
+ 104, 1, 124, 228, 153, 45, 104, 1, 124, 229, 144, 45, 104, 1, 222, 203,
+ 45, 104, 1, 138, 247, 92, 45, 104, 1, 138, 246, 199, 45, 104, 1, 124,
+ 247, 92, 45, 104, 1, 124, 215, 36, 45, 104, 1, 124, 246, 199, 45, 104, 1,
+ 221, 11, 45, 104, 1, 216, 171, 45, 104, 1, 138, 216, 169, 45, 104, 1,
+ 244, 212, 45, 104, 1, 124, 216, 169, 45, 104, 1, 216, 180, 45, 104, 1,
+ 138, 210, 22, 45, 104, 1, 138, 209, 108, 45, 104, 1, 124, 210, 22, 45,
+ 104, 1, 124, 209, 108, 45, 104, 1, 201, 201, 45, 104, 1, 249, 32, 45,
+ 104, 1, 138, 185, 45, 104, 1, 138, 218, 208, 45, 104, 1, 138, 240, 108,
+ 45, 104, 1, 124, 185, 45, 104, 1, 124, 240, 108, 45, 104, 1, 124, 218,
+ 208, 45, 104, 1, 192, 45, 104, 1, 124, 198, 45, 104, 1, 138, 198, 45,
+ 104, 1, 216, 220, 45, 104, 1, 215, 140, 45, 104, 1, 228, 113, 45, 104, 1,
+ 226, 232, 45, 104, 1, 204, 111, 45, 104, 1, 138, 213, 90, 45, 104, 1,
+ 138, 211, 164, 45, 104, 1, 138, 215, 36, 45, 104, 1, 138, 152, 45, 104,
+ 1, 227, 77, 45, 104, 1, 63, 45, 104, 1, 124, 152, 45, 104, 1, 75, 45,
+ 104, 1, 231, 83, 45, 104, 1, 68, 45, 104, 1, 206, 178, 45, 104, 1, 241,
+ 161, 45, 104, 1, 220, 18, 45, 104, 1, 228, 97, 45, 104, 1, 237, 249, 215,
+ 36, 45, 104, 109, 2, 174, 216, 220, 45, 104, 109, 2, 174, 228, 113, 45,
+ 104, 109, 2, 228, 114, 209, 228, 228, 86, 45, 104, 2, 225, 141, 230, 1,
+ 228, 86, 45, 104, 109, 2, 46, 222, 203, 45, 104, 109, 2, 124, 185, 45,
+ 104, 109, 2, 138, 216, 170, 219, 245, 124, 185, 45, 104, 109, 2, 192, 45,
+ 104, 109, 2, 249, 32, 45, 104, 109, 2, 215, 36, 45, 104, 2, 215, 10, 45,
+ 104, 22, 2, 63, 45, 104, 22, 2, 225, 141, 214, 225, 45, 104, 22, 2, 252,
+ 25, 45, 104, 22, 2, 209, 234, 252, 25, 45, 104, 22, 2, 75, 45, 104, 22,
+ 2, 231, 83, 45, 104, 22, 2, 207, 24, 45, 104, 22, 2, 206, 177, 45, 104,
+ 22, 2, 68, 45, 104, 22, 2, 206, 178, 45, 104, 22, 2, 78, 45, 104, 22, 2,
+ 220, 98, 56, 45, 104, 22, 2, 219, 188, 45, 104, 22, 2, 74, 45, 104, 22,
+ 2, 251, 109, 45, 104, 22, 2, 220, 18, 45, 104, 22, 2, 251, 64, 45, 104,
+ 22, 2, 104, 251, 64, 45, 104, 22, 2, 220, 98, 55, 45, 104, 2, 225, 141,
+ 230, 0, 45, 104, 2, 208, 160, 45, 104, 2, 208, 159, 45, 104, 2, 229, 105,
+ 208, 158, 45, 104, 2, 229, 105, 208, 157, 45, 104, 2, 229, 105, 208, 156,
+ 45, 104, 2, 216, 221, 237, 156, 45, 104, 2, 225, 141, 214, 253, 45, 104,
+ 2, 229, 104, 229, 239, 45, 104, 39, 245, 113, 243, 85, 45, 104, 236, 108,
+ 17, 202, 84, 45, 104, 236, 108, 17, 105, 45, 104, 236, 108, 17, 108, 45,
+ 104, 236, 108, 17, 147, 45, 104, 236, 108, 17, 149, 45, 104, 236, 108,
+ 17, 170, 45, 104, 236, 108, 17, 195, 45, 104, 236, 108, 17, 213, 111, 45,
+ 104, 236, 108, 17, 199, 45, 104, 236, 108, 17, 222, 63, 45, 104, 104, 17,
+ 202, 84, 45, 104, 104, 17, 105, 45, 104, 104, 17, 108, 45, 104, 104, 17,
+ 147, 45, 104, 104, 17, 149, 45, 104, 104, 17, 170, 45, 104, 104, 17, 195,
+ 45, 104, 104, 17, 213, 111, 45, 104, 104, 17, 199, 45, 104, 104, 17, 222,
+ 63, 45, 104, 2, 204, 29, 45, 104, 2, 204, 28, 45, 104, 2, 214, 212, 45,
+ 104, 2, 229, 175, 45, 104, 2, 236, 36, 45, 104, 2, 243, 99, 45, 104, 2,
+ 216, 73, 215, 198, 216, 180, 45, 104, 2, 225, 141, 203, 79, 45, 104, 2,
+ 230, 35, 45, 104, 2, 230, 34, 45, 104, 2, 214, 220, 45, 104, 2, 214, 219,
+ 45, 104, 2, 237, 98, 45, 104, 2, 247, 89, 39, 242, 75, 246, 53, 251, 138,
+ 39, 243, 230, 39, 231, 27, 39, 183, 47, 39, 208, 70, 243, 85, 39, 203,
+ 195, 56, 39, 204, 21, 227, 115, 56, 39, 171, 131, 56, 39, 52, 171, 131,
+ 56, 39, 157, 246, 219, 211, 32, 56, 39, 211, 18, 246, 219, 211, 32, 56,
+ 39, 219, 78, 55, 39, 52, 219, 78, 55, 39, 219, 78, 56, 39, 219, 78, 219,
+ 199, 130, 2, 207, 9, 216, 51, 130, 2, 207, 9, 247, 54, 130, 2, 246, 234,
+ 130, 2, 210, 191, 130, 2, 248, 56, 130, 1, 251, 45, 130, 1, 251, 46, 209,
+ 178, 130, 1, 231, 79, 130, 1, 231, 80, 209, 178, 130, 1, 207, 12, 130, 1,
+ 207, 13, 209, 178, 130, 1, 216, 221, 216, 103, 130, 1, 216, 221, 216,
+ 104, 209, 178, 130, 1, 228, 114, 227, 197, 130, 1, 228, 114, 227, 198,
+ 209, 178, 130, 1, 241, 127, 130, 1, 251, 62, 130, 1, 220, 49, 130, 1,
+ 220, 50, 209, 178, 130, 1, 173, 130, 1, 230, 44, 225, 144, 130, 1, 239,
+ 8, 130, 1, 239, 9, 238, 25, 130, 1, 222, 203, 130, 1, 247, 92, 130, 1,
+ 247, 93, 228, 100, 130, 1, 230, 181, 130, 1, 230, 182, 230, 153, 130, 1,
+ 221, 11, 130, 1, 210, 23, 227, 253, 130, 1, 210, 23, 223, 206, 225, 144,
+ 130, 1, 244, 213, 223, 206, 251, 4, 130, 1, 244, 213, 223, 206, 225, 144,
+ 130, 1, 223, 111, 216, 183, 130, 1, 210, 22, 130, 1, 210, 23, 209, 200,
+ 130, 1, 244, 212, 130, 1, 244, 213, 225, 163, 130, 1, 201, 201, 130, 1,
+ 185, 130, 1, 219, 169, 229, 251, 130, 1, 249, 32, 130, 1, 249, 33, 229,
+ 187, 130, 1, 192, 130, 1, 198, 130, 1, 216, 220, 130, 1, 228, 113, 130,
+ 1, 204, 111, 130, 1, 215, 37, 215, 21, 130, 1, 215, 37, 214, 232, 130, 1,
+ 215, 36, 130, 1, 152, 130, 2, 216, 94, 130, 22, 2, 209, 178, 130, 22, 2,
+ 207, 8, 130, 22, 2, 207, 9, 214, 228, 130, 22, 2, 210, 224, 130, 22, 2,
+ 210, 225, 231, 71, 130, 22, 2, 216, 221, 216, 103, 130, 22, 2, 216, 221,
+ 216, 104, 209, 178, 130, 22, 2, 228, 114, 227, 197, 130, 22, 2, 228, 114,
+ 227, 198, 209, 178, 130, 22, 2, 209, 235, 130, 22, 2, 209, 236, 216, 103,
+ 130, 22, 2, 209, 236, 209, 178, 130, 22, 2, 209, 236, 216, 104, 209, 178,
+ 130, 22, 2, 218, 249, 130, 22, 2, 218, 250, 209, 178, 130, 251, 117, 251,
+ 116, 130, 1, 230, 23, 214, 227, 130, 1, 229, 111, 214, 227, 130, 1, 207,
+ 101, 214, 227, 130, 1, 241, 155, 214, 227, 130, 1, 206, 56, 214, 227,
+ 130, 1, 202, 106, 214, 227, 130, 1, 250, 52, 214, 227, 130, 17, 202, 84,
+ 130, 17, 105, 130, 17, 108, 130, 17, 147, 130, 17, 149, 130, 17, 170,
+ 130, 17, 195, 130, 17, 213, 111, 130, 17, 199, 130, 17, 222, 63, 130,
+ 219, 104, 130, 219, 130, 130, 204, 14, 130, 247, 31, 219, 123, 130, 247,
+ 31, 212, 139, 130, 247, 31, 219, 75, 130, 219, 129, 130, 31, 16, 243, 91,
+ 130, 31, 16, 244, 34, 130, 31, 16, 242, 27, 130, 31, 16, 244, 164, 130,
+ 31, 16, 244, 165, 210, 191, 130, 31, 16, 243, 175, 130, 31, 16, 244, 205,
+ 130, 31, 16, 244, 10, 130, 31, 16, 244, 187, 130, 31, 16, 244, 165, 238,
+ 184, 130, 31, 16, 39, 209, 171, 130, 31, 16, 39, 241, 82, 130, 31, 16,
+ 39, 229, 182, 130, 31, 16, 39, 229, 184, 130, 31, 16, 39, 230, 157, 130,
+ 31, 16, 39, 229, 183, 3, 230, 157, 130, 31, 16, 39, 229, 185, 3, 230,
+ 157, 130, 31, 16, 39, 248, 119, 130, 31, 16, 39, 238, 29, 130, 31, 16,
+ 216, 14, 171, 242, 37, 130, 31, 16, 216, 14, 171, 244, 203, 130, 31, 16,
+ 216, 14, 246, 16, 207, 195, 130, 31, 16, 216, 14, 246, 16, 209, 244, 130,
+ 31, 16, 227, 220, 171, 219, 118, 130, 31, 16, 227, 220, 171, 217, 177,
+ 130, 31, 16, 227, 220, 246, 16, 218, 94, 130, 31, 16, 227, 220, 246, 16,
+ 218, 80, 130, 31, 16, 227, 220, 171, 218, 119, 210, 213, 2, 219, 101,
+ 210, 213, 2, 219, 114, 210, 213, 2, 219, 110, 210, 213, 1, 63, 210, 213,
+ 1, 75, 210, 213, 1, 68, 210, 213, 1, 251, 109, 210, 213, 1, 78, 210, 213,
+ 1, 74, 210, 213, 1, 240, 238, 210, 213, 1, 173, 210, 213, 1, 217, 126,
+ 210, 213, 1, 239, 8, 210, 213, 1, 222, 203, 210, 213, 1, 247, 92, 210,
+ 213, 1, 230, 181, 210, 213, 1, 202, 116, 210, 213, 1, 221, 11, 210, 213,
+ 1, 210, 22, 210, 213, 1, 244, 212, 210, 213, 1, 201, 201, 210, 213, 1,
+ 185, 210, 213, 1, 240, 108, 210, 213, 1, 206, 86, 210, 213, 1, 249, 32,
+ 210, 213, 1, 192, 210, 213, 1, 198, 210, 213, 1, 216, 220, 210, 213, 1,
+ 228, 113, 210, 213, 1, 204, 111, 210, 213, 1, 215, 36, 210, 213, 1, 203,
+ 182, 210, 213, 1, 152, 210, 213, 109, 2, 219, 127, 210, 213, 109, 2, 219,
+ 103, 210, 213, 109, 2, 219, 100, 210, 213, 22, 2, 219, 117, 210, 213, 22,
+ 2, 219, 99, 210, 213, 22, 2, 219, 121, 210, 213, 22, 2, 219, 109, 210,
+ 213, 22, 2, 219, 128, 210, 213, 22, 2, 219, 119, 210, 213, 2, 219, 131,
+ 210, 213, 2, 205, 204, 210, 213, 109, 2, 219, 64, 192, 210, 213, 109, 2,
+ 219, 64, 204, 111, 210, 213, 1, 229, 144, 210, 213, 1, 210, 150, 210,
+ 213, 17, 202, 84, 210, 213, 17, 105, 210, 213, 17, 108, 210, 213, 17,
+ 147, 210, 213, 17, 149, 210, 213, 17, 170, 210, 213, 17, 195, 210, 213,
+ 17, 213, 111, 210, 213, 17, 199, 210, 213, 17, 222, 63, 210, 213, 250,
+ 17, 210, 213, 1, 216, 76, 210, 213, 1, 227, 171, 210, 213, 1, 248, 98,
+ 210, 213, 1, 46, 230, 54, 210, 213, 1, 46, 226, 185, 248, 208, 1, 63,
+ 248, 208, 1, 212, 131, 63, 248, 208, 1, 152, 248, 208, 1, 212, 131, 152,
+ 248, 208, 1, 225, 117, 152, 248, 208, 1, 249, 32, 248, 208, 1, 229, 236,
+ 249, 32, 248, 208, 1, 185, 248, 208, 1, 212, 131, 185, 248, 208, 1, 201,
+ 201, 248, 208, 1, 225, 117, 201, 201, 248, 208, 1, 204, 111, 248, 208, 1,
+ 212, 131, 204, 111, 248, 208, 1, 219, 143, 204, 111, 248, 208, 1, 239, 8,
+ 248, 208, 1, 212, 131, 239, 8, 248, 208, 1, 230, 181, 248, 208, 1, 244,
+ 212, 248, 208, 1, 216, 220, 248, 208, 1, 212, 131, 216, 220, 248, 208, 1,
+ 192, 248, 208, 1, 212, 131, 192, 248, 208, 1, 211, 236, 210, 22, 248,
+ 208, 1, 221, 170, 210, 22, 248, 208, 1, 215, 36, 248, 208, 1, 212, 131,
+ 215, 36, 248, 208, 1, 225, 117, 215, 36, 248, 208, 1, 198, 248, 208, 1,
+ 212, 131, 198, 248, 208, 1, 222, 203, 248, 208, 1, 228, 113, 248, 208, 1,
+ 212, 131, 228, 113, 248, 208, 1, 221, 11, 248, 208, 1, 247, 92, 248, 208,
+ 1, 223, 25, 248, 208, 1, 225, 54, 248, 208, 1, 75, 248, 208, 1, 68, 248,
+ 208, 2, 208, 164, 248, 208, 22, 2, 74, 248, 208, 22, 2, 219, 143, 74,
+ 248, 208, 22, 2, 241, 161, 248, 208, 22, 2, 75, 248, 208, 22, 2, 229,
+ 236, 75, 248, 208, 22, 2, 78, 248, 208, 22, 2, 229, 236, 78, 248, 208,
+ 22, 2, 68, 248, 208, 22, 2, 106, 35, 212, 131, 215, 36, 248, 208, 109, 2,
+ 222, 205, 248, 208, 109, 2, 237, 171, 248, 208, 219, 112, 248, 208, 219,
+ 108, 248, 208, 16, 248, 64, 223, 111, 224, 218, 248, 208, 16, 248, 64,
+ 218, 122, 248, 208, 16, 248, 64, 230, 79, 248, 208, 16, 248, 64, 219,
+ 112, 227, 181, 1, 173, 227, 181, 1, 229, 40, 227, 181, 1, 229, 144, 227,
+ 181, 1, 239, 8, 227, 181, 1, 238, 51, 227, 181, 1, 222, 203, 227, 181, 1,
+ 247, 92, 227, 181, 1, 246, 199, 227, 181, 1, 230, 181, 227, 181, 1, 221,
+ 11, 227, 181, 1, 210, 22, 227, 181, 1, 209, 108, 227, 181, 1, 244, 212,
+ 227, 181, 1, 201, 201, 227, 181, 1, 185, 227, 181, 1, 218, 98, 227, 181,
+ 1, 218, 208, 227, 181, 1, 240, 108, 227, 181, 1, 239, 227, 227, 181, 1,
+ 249, 32, 227, 181, 1, 248, 44, 227, 181, 1, 192, 227, 181, 1, 224, 89,
+ 227, 181, 1, 208, 20, 227, 181, 1, 208, 10, 227, 181, 1, 241, 255, 227,
+ 181, 1, 198, 227, 181, 1, 216, 220, 227, 181, 1, 228, 113, 227, 181, 1,
+ 152, 227, 181, 1, 236, 224, 227, 181, 1, 206, 86, 227, 181, 1, 215, 36,
+ 227, 181, 1, 213, 90, 227, 181, 1, 204, 111, 227, 181, 1, 63, 227, 181,
+ 210, 254, 1, 198, 227, 181, 210, 254, 1, 216, 220, 227, 181, 22, 2, 252,
+ 25, 227, 181, 22, 2, 75, 227, 181, 22, 2, 78, 227, 181, 22, 2, 220, 18,
+ 227, 181, 22, 2, 68, 227, 181, 22, 2, 206, 178, 227, 181, 22, 2, 74, 227,
+ 181, 109, 2, 230, 54, 227, 181, 109, 2, 226, 185, 227, 181, 109, 2, 159,
+ 227, 181, 109, 2, 223, 163, 227, 181, 109, 2, 219, 184, 227, 181, 109, 2,
+ 146, 227, 181, 109, 2, 210, 69, 227, 181, 109, 2, 220, 241, 227, 181,
+ 109, 2, 230, 0, 227, 181, 2, 216, 181, 227, 181, 2, 221, 51, 227, 181,
+ 217, 179, 210, 20, 227, 181, 217, 179, 220, 252, 209, 5, 210, 20, 227,
+ 181, 217, 179, 246, 206, 227, 181, 217, 179, 208, 2, 246, 206, 227, 181,
+ 217, 179, 208, 1, 227, 181, 17, 202, 84, 227, 181, 17, 105, 227, 181, 17,
+ 108, 227, 181, 17, 147, 227, 181, 17, 149, 227, 181, 17, 170, 227, 181,
+ 17, 195, 227, 181, 17, 213, 111, 227, 181, 17, 199, 227, 181, 17, 222,
+ 63, 227, 181, 1, 207, 241, 227, 181, 1, 207, 229, 227, 181, 1, 244, 120,
+ 220, 47, 246, 135, 17, 202, 84, 220, 47, 246, 135, 17, 105, 220, 47, 246,
+ 135, 17, 108, 220, 47, 246, 135, 17, 147, 220, 47, 246, 135, 17, 149,
+ 220, 47, 246, 135, 17, 170, 220, 47, 246, 135, 17, 195, 220, 47, 246,
+ 135, 17, 213, 111, 220, 47, 246, 135, 17, 199, 220, 47, 246, 135, 17,
+ 222, 63, 220, 47, 246, 135, 1, 228, 113, 220, 47, 246, 135, 1, 250, 49,
+ 220, 47, 246, 135, 1, 251, 81, 220, 47, 246, 135, 1, 250, 223, 220, 47,
+ 246, 135, 1, 251, 39, 220, 47, 246, 135, 1, 228, 112, 220, 47, 246, 135,
+ 1, 251, 243, 220, 47, 246, 135, 1, 251, 244, 220, 47, 246, 135, 1, 251,
+ 242, 220, 47, 246, 135, 1, 251, 237, 220, 47, 246, 135, 1, 227, 148, 220,
+ 47, 246, 135, 1, 230, 215, 220, 47, 246, 135, 1, 231, 84, 220, 47, 246,
+ 135, 1, 230, 236, 220, 47, 246, 135, 1, 230, 224, 220, 47, 246, 135, 1,
+ 226, 239, 220, 47, 246, 135, 1, 207, 31, 220, 47, 246, 135, 1, 207, 29,
+ 220, 47, 246, 135, 1, 206, 229, 220, 47, 246, 135, 1, 206, 170, 220, 47,
+ 246, 135, 1, 227, 234, 220, 47, 246, 135, 1, 241, 46, 220, 47, 246, 135,
+ 1, 241, 164, 220, 47, 246, 135, 1, 241, 92, 220, 47, 246, 135, 1, 241,
+ 21, 220, 47, 246, 135, 1, 227, 49, 220, 47, 246, 135, 1, 219, 219, 220,
+ 47, 246, 135, 1, 220, 93, 220, 47, 246, 135, 1, 219, 206, 220, 47, 246,
+ 135, 1, 220, 60, 220, 47, 246, 135, 223, 247, 207, 206, 220, 47, 246,
+ 135, 239, 3, 207, 207, 220, 47, 246, 135, 223, 245, 207, 207, 220, 47,
+ 246, 135, 216, 118, 220, 47, 246, 135, 218, 206, 220, 47, 246, 135, 251,
+ 72, 220, 47, 246, 135, 217, 179, 223, 241, 220, 47, 246, 135, 217, 179,
+ 52, 223, 241, 210, 213, 217, 179, 248, 64, 210, 184, 210, 213, 217, 179,
+ 248, 64, 219, 113, 210, 213, 217, 179, 248, 64, 217, 167, 210, 213, 217,
+ 179, 248, 64, 247, 77, 210, 213, 217, 179, 248, 64, 227, 172, 214, 224,
+ 210, 213, 217, 179, 248, 64, 230, 44, 214, 224, 210, 213, 217, 179, 248,
+ 64, 244, 213, 214, 224, 210, 213, 217, 179, 248, 64, 249, 33, 214, 224,
+ 206, 52, 143, 229, 234, 206, 52, 143, 213, 58, 206, 52, 143, 217, 245,
+ 206, 52, 2, 222, 76, 206, 52, 2, 203, 87, 224, 146, 210, 175, 206, 52,
+ 143, 203, 87, 251, 77, 231, 36, 210, 175, 206, 52, 143, 203, 87, 231, 36,
+ 210, 175, 206, 52, 143, 203, 87, 229, 222, 231, 36, 210, 175, 206, 52,
+ 143, 247, 55, 56, 206, 52, 143, 203, 87, 229, 222, 231, 36, 210, 176,
+ 214, 194, 206, 52, 143, 52, 210, 175, 206, 52, 143, 208, 70, 210, 175,
+ 206, 52, 143, 229, 222, 250, 182, 206, 52, 143, 70, 56, 206, 52, 143,
+ 120, 187, 56, 206, 52, 143, 126, 187, 56, 206, 52, 143, 216, 4, 229, 233,
+ 231, 36, 210, 175, 206, 52, 143, 250, 47, 231, 36, 210, 175, 206, 52, 2,
+ 205, 200, 210, 175, 206, 52, 2, 205, 200, 207, 26, 206, 52, 2, 216, 73,
+ 205, 200, 207, 26, 206, 52, 2, 205, 200, 250, 182, 206, 52, 2, 216, 73,
+ 205, 200, 250, 182, 206, 52, 2, 205, 200, 207, 27, 3, 209, 248, 206, 52,
+ 2, 205, 200, 250, 183, 3, 209, 248, 206, 52, 2, 250, 181, 250, 197, 206,
+ 52, 2, 250, 181, 249, 2, 206, 52, 2, 250, 181, 206, 77, 206, 52, 2, 250,
+ 181, 206, 78, 3, 209, 248, 206, 52, 2, 208, 201, 206, 52, 2, 237, 15,
+ 163, 250, 180, 206, 52, 2, 163, 250, 180, 206, 52, 2, 215, 147, 163, 250,
+ 180, 206, 52, 2, 250, 181, 207, 33, 223, 232, 206, 52, 2, 250, 122, 206,
+ 52, 2, 215, 198, 250, 122, 206, 52, 143, 247, 55, 55, 206, 52, 2, 230,
+ 135, 206, 52, 2, 206, 222, 206, 52, 143, 215, 253, 55, 206, 52, 143, 52,
+ 215, 253, 55, 8, 1, 5, 6, 63, 8, 1, 5, 6, 251, 109, 8, 5, 1, 207, 174,
+ 251, 109, 8, 1, 5, 6, 248, 225, 249, 255, 8, 1, 5, 6, 247, 125, 8, 1, 5,
+ 6, 245, 51, 8, 1, 5, 6, 240, 243, 8, 1, 5, 6, 74, 8, 5, 1, 207, 174, 171,
+ 74, 8, 5, 1, 207, 174, 75, 8, 1, 5, 6, 230, 184, 8, 1, 5, 6, 230, 54, 8,
+ 1, 5, 6, 228, 131, 3, 95, 8, 1, 5, 6, 226, 185, 8, 1, 5, 6, 216, 73, 223,
+ 163, 8, 1, 5, 6, 78, 8, 1, 5, 6, 171, 78, 8, 5, 1, 212, 154, 78, 8, 5, 1,
+ 212, 154, 171, 78, 8, 5, 1, 212, 154, 158, 3, 95, 8, 5, 1, 207, 174, 220,
+ 73, 8, 1, 5, 6, 219, 216, 8, 5, 1, 208, 145, 162, 78, 8, 5, 1, 247, 248,
+ 162, 78, 8, 1, 5, 6, 219, 184, 8, 1, 5, 6, 216, 73, 146, 8, 1, 5, 6, 207,
+ 174, 146, 8, 1, 5, 6, 210, 69, 8, 1, 5, 6, 68, 8, 5, 1, 212, 154, 68, 8,
+ 5, 1, 212, 154, 243, 229, 68, 8, 5, 1, 212, 154, 207, 174, 226, 185, 8,
+ 1, 5, 6, 206, 164, 8, 1, 5, 6, 204, 144, 8, 1, 5, 6, 202, 159, 8, 1, 5,
+ 6, 240, 177, 8, 1, 205, 186, 228, 3, 211, 200, 8, 1, 251, 59, 30, 1, 5,
+ 6, 238, 235, 30, 1, 5, 6, 228, 24, 30, 1, 5, 6, 218, 167, 30, 1, 5, 6,
+ 216, 59, 30, 1, 5, 6, 217, 202, 36, 1, 5, 6, 241, 122, 65, 1, 6, 63, 65,
+ 1, 6, 251, 109, 65, 1, 6, 249, 255, 65, 1, 6, 248, 225, 249, 255, 65, 1,
+ 6, 245, 51, 65, 1, 6, 74, 65, 1, 6, 216, 73, 74, 65, 1, 6, 239, 75, 65,
+ 1, 6, 237, 171, 65, 1, 6, 75, 65, 1, 6, 230, 184, 65, 1, 6, 230, 54, 65,
+ 1, 6, 159, 65, 1, 6, 226, 185, 65, 1, 6, 223, 163, 65, 1, 6, 216, 73,
+ 223, 163, 65, 1, 6, 78, 65, 1, 6, 219, 216, 65, 1, 6, 219, 184, 65, 1, 6,
+ 146, 65, 1, 6, 210, 69, 65, 1, 6, 68, 65, 1, 6, 204, 144, 65, 1, 5, 63,
+ 65, 1, 5, 207, 174, 63, 65, 1, 5, 251, 2, 65, 1, 5, 207, 174, 251, 109,
+ 65, 1, 5, 249, 255, 65, 1, 5, 245, 51, 65, 1, 5, 74, 65, 1, 5, 214, 192,
+ 65, 1, 5, 171, 74, 65, 1, 5, 207, 174, 171, 74, 65, 1, 5, 239, 75, 65, 1,
+ 5, 207, 174, 75, 65, 1, 5, 230, 54, 65, 1, 5, 226, 185, 65, 1, 5, 241,
+ 78, 65, 1, 5, 78, 65, 1, 5, 171, 78, 65, 1, 5, 208, 145, 162, 78, 65, 1,
+ 5, 247, 248, 162, 78, 65, 1, 5, 219, 184, 65, 1, 5, 210, 69, 65, 1, 5,
+ 68, 65, 1, 5, 212, 154, 68, 65, 1, 5, 207, 174, 226, 185, 65, 1, 5, 206,
+ 164, 65, 1, 5, 251, 59, 65, 1, 5, 248, 106, 65, 1, 5, 30, 238, 235, 65,
+ 1, 5, 244, 37, 65, 1, 5, 30, 218, 192, 65, 1, 5, 246, 142, 8, 210, 246,
+ 5, 1, 75, 8, 210, 246, 5, 1, 146, 8, 210, 246, 5, 1, 68, 8, 210, 246, 5,
+ 1, 206, 164, 30, 210, 246, 5, 1, 248, 106, 30, 210, 246, 5, 1, 238, 235,
+ 30, 210, 246, 5, 1, 216, 59, 30, 210, 246, 5, 1, 218, 192, 30, 210, 246,
+ 5, 1, 246, 142, 8, 5, 1, 207, 24, 8, 5, 1, 66, 3, 101, 208, 227, 8, 5, 1,
+ 245, 52, 3, 101, 208, 227, 8, 5, 1, 240, 175, 3, 101, 208, 227, 8, 5, 1,
+ 226, 186, 3, 101, 208, 227, 8, 5, 1, 223, 164, 3, 101, 208, 227, 8, 5, 1,
+ 219, 185, 3, 101, 208, 227, 8, 5, 1, 217, 1, 3, 101, 208, 227, 8, 5, 1,
+ 217, 1, 3, 239, 241, 25, 101, 208, 227, 8, 5, 1, 215, 94, 3, 101, 208,
+ 227, 8, 5, 1, 210, 70, 3, 101, 208, 227, 8, 5, 1, 202, 160, 3, 101, 208,
+ 227, 8, 5, 1, 207, 174, 239, 75, 65, 1, 36, 241, 92, 8, 5, 1, 231, 4,
+ 239, 75, 8, 5, 1, 209, 111, 3, 211, 36, 8, 5, 6, 1, 235, 206, 3, 95, 8,
+ 5, 1, 230, 231, 3, 95, 8, 5, 1, 219, 185, 3, 95, 8, 5, 6, 1, 106, 3, 95,
+ 8, 5, 1, 206, 217, 3, 95, 8, 5, 1, 66, 3, 219, 142, 113, 8, 5, 1, 245,
+ 52, 3, 219, 142, 113, 8, 5, 1, 240, 175, 3, 219, 142, 113, 8, 5, 1, 239,
+ 76, 3, 219, 142, 113, 8, 5, 1, 230, 55, 3, 219, 142, 113, 8, 5, 1, 228,
+ 131, 3, 219, 142, 113, 8, 5, 1, 226, 186, 3, 219, 142, 113, 8, 5, 1, 223,
+ 164, 3, 219, 142, 113, 8, 5, 1, 219, 185, 3, 219, 142, 113, 8, 5, 1, 217,
+ 1, 3, 219, 142, 113, 8, 5, 1, 215, 94, 3, 219, 142, 113, 8, 5, 1, 241, 8,
+ 3, 219, 142, 113, 8, 5, 1, 206, 165, 3, 219, 142, 113, 8, 5, 1, 203, 197,
+ 3, 219, 142, 113, 8, 5, 1, 202, 160, 3, 219, 142, 113, 8, 5, 1, 34, 3,
+ 216, 79, 113, 8, 5, 1, 251, 3, 3, 216, 79, 113, 8, 5, 1, 245, 52, 3, 236,
+ 116, 25, 209, 248, 8, 5, 1, 188, 3, 216, 79, 113, 8, 5, 1, 171, 188, 3,
+ 216, 79, 113, 8, 5, 1, 216, 73, 171, 188, 3, 216, 79, 113, 8, 5, 1, 214,
+ 193, 3, 216, 79, 113, 8, 5, 1, 235, 206, 3, 216, 79, 113, 8, 5, 1, 171,
+ 158, 3, 216, 79, 113, 8, 5, 1, 241, 8, 3, 216, 79, 113, 8, 5, 1, 106, 3,
+ 216, 79, 113, 8, 5, 1, 240, 178, 3, 216, 79, 113, 65, 1, 5, 207, 174,
+ 251, 2, 65, 1, 5, 247, 125, 65, 1, 5, 247, 126, 3, 245, 95, 65, 1, 5,
+ 240, 243, 65, 1, 5, 216, 73, 171, 74, 65, 1, 5, 240, 174, 65, 1, 5, 243,
+ 84, 230, 185, 3, 95, 65, 1, 5, 132, 239, 75, 65, 1, 5, 207, 174, 237,
+ 171, 65, 1, 5, 235, 206, 3, 95, 65, 1, 5, 230, 230, 65, 1, 5, 6, 75, 65,
+ 1, 5, 6, 235, 206, 3, 95, 65, 1, 5, 230, 185, 3, 245, 126, 65, 1, 5, 228,
+ 131, 3, 216, 79, 113, 65, 1, 5, 228, 131, 3, 219, 142, 113, 65, 1, 5, 6,
+ 159, 65, 1, 5, 226, 186, 3, 113, 65, 1, 5, 207, 174, 226, 186, 3, 163,
+ 227, 210, 65, 1, 5, 223, 164, 3, 49, 113, 65, 1, 5, 223, 164, 3, 216, 79,
+ 113, 65, 1, 5, 6, 223, 163, 65, 1, 5, 248, 225, 78, 65, 1, 5, 218, 192,
+ 65, 1, 5, 215, 94, 3, 113, 65, 1, 5, 241, 7, 65, 1, 5, 210, 70, 3, 219,
+ 142, 113, 65, 1, 5, 106, 142, 65, 1, 5, 206, 216, 65, 1, 5, 6, 68, 65, 1,
+ 5, 206, 165, 3, 113, 65, 1, 5, 207, 174, 206, 164, 65, 1, 5, 202, 159,
+ 65, 1, 5, 202, 160, 3, 216, 79, 113, 65, 1, 5, 202, 160, 3, 245, 95, 65,
+ 1, 5, 240, 177, 65, 1, 5, 209, 74, 39, 242, 83, 237, 254, 251, 138, 39,
+ 242, 83, 251, 126, 251, 138, 39, 212, 25, 56, 39, 210, 182, 82, 39, 225,
+ 169, 39, 237, 251, 39, 225, 167, 39, 251, 124, 39, 237, 252, 39, 251,
+ 125, 39, 8, 5, 1, 217, 1, 56, 39, 247, 213, 39, 225, 168, 39, 52, 246,
+ 53, 55, 39, 220, 63, 55, 39, 202, 30, 56, 39, 230, 216, 56, 39, 206, 211,
+ 55, 39, 206, 194, 55, 39, 8, 5, 1, 239, 214, 171, 34, 55, 39, 8, 5, 1,
+ 251, 109, 39, 8, 5, 1, 250, 178, 39, 8, 5, 1, 250, 18, 39, 8, 5, 1, 247,
+ 126, 246, 231, 39, 8, 5, 1, 231, 4, 245, 51, 39, 8, 5, 1, 240, 243, 39,
+ 8, 5, 1, 239, 75, 39, 8, 1, 5, 6, 239, 75, 39, 8, 5, 1, 230, 54, 39, 8,
+ 5, 1, 159, 39, 8, 1, 5, 6, 159, 39, 8, 1, 5, 6, 226, 185, 39, 8, 5, 1,
+ 223, 163, 39, 8, 1, 5, 6, 223, 163, 39, 8, 1, 5, 6, 146, 39, 8, 5, 1,
+ 217, 1, 215, 192, 39, 8, 5, 1, 194, 39, 8, 5, 1, 163, 194, 39, 8, 5, 1,
+ 202, 159, 39, 8, 5, 1, 251, 2, 39, 8, 5, 1, 249, 255, 39, 8, 5, 1, 248,
+ 106, 39, 8, 5, 1, 214, 192, 39, 8, 5, 1, 240, 174, 39, 8, 5, 1, 228, 131,
+ 3, 52, 101, 208, 227, 39, 8, 5, 1, 158, 3, 157, 246, 219, 95, 39, 8, 5,
+ 1, 219, 184, 39, 8, 5, 1, 241, 7, 39, 8, 5, 1, 106, 3, 157, 246, 219, 95,
+ 39, 8, 5, 1, 204, 144, 39, 8, 5, 1, 34, 3, 243, 231, 39, 8, 5, 1, 158, 3,
+ 243, 231, 39, 8, 5, 1, 106, 3, 243, 231, 39, 112, 210, 4, 55, 39, 52,
+ 230, 239, 247, 215, 56, 39, 251, 7, 156, 208, 173, 56, 39, 49, 250, 95,
+ 55, 39, 50, 250, 95, 25, 121, 250, 95, 56, 8, 6, 1, 34, 3, 215, 253, 56,
+ 8, 5, 1, 34, 3, 215, 253, 56, 8, 6, 1, 66, 3, 70, 55, 8, 5, 1, 66, 3, 70,
+ 55, 8, 6, 1, 66, 3, 70, 56, 8, 5, 1, 66, 3, 70, 56, 8, 6, 1, 66, 3, 227,
+ 115, 56, 8, 5, 1, 66, 3, 227, 115, 56, 8, 6, 1, 247, 126, 3, 246, 232,
+ 25, 165, 8, 5, 1, 247, 126, 3, 246, 232, 25, 165, 8, 6, 1, 245, 52, 3,
+ 70, 55, 8, 5, 1, 245, 52, 3, 70, 55, 8, 6, 1, 245, 52, 3, 70, 56, 8, 5,
+ 1, 245, 52, 3, 70, 56, 8, 6, 1, 245, 52, 3, 227, 115, 56, 8, 5, 1, 245,
+ 52, 3, 227, 115, 56, 8, 6, 1, 245, 52, 3, 246, 231, 8, 5, 1, 245, 52, 3,
+ 246, 231, 8, 6, 1, 245, 52, 3, 246, 53, 56, 8, 5, 1, 245, 52, 3, 246, 53,
+ 56, 8, 6, 1, 188, 3, 225, 171, 25, 237, 253, 8, 5, 1, 188, 3, 225, 171,
+ 25, 237, 253, 8, 6, 1, 188, 3, 225, 171, 25, 165, 8, 5, 1, 188, 3, 225,
+ 171, 25, 165, 8, 6, 1, 188, 3, 246, 53, 56, 8, 5, 1, 188, 3, 246, 53, 56,
+ 8, 6, 1, 188, 3, 208, 228, 56, 8, 5, 1, 188, 3, 208, 228, 56, 8, 6, 1,
+ 188, 3, 246, 232, 25, 247, 214, 8, 5, 1, 188, 3, 246, 232, 25, 247, 214,
+ 8, 6, 1, 240, 175, 3, 70, 55, 8, 5, 1, 240, 175, 3, 70, 55, 8, 6, 1, 239,
+ 76, 3, 225, 170, 8, 5, 1, 239, 76, 3, 225, 170, 8, 6, 1, 237, 172, 3, 70,
+ 55, 8, 5, 1, 237, 172, 3, 70, 55, 8, 6, 1, 237, 172, 3, 70, 56, 8, 5, 1,
+ 237, 172, 3, 70, 56, 8, 6, 1, 237, 172, 3, 243, 231, 8, 5, 1, 237, 172,
+ 3, 243, 231, 8, 6, 1, 237, 172, 3, 246, 231, 8, 5, 1, 237, 172, 3, 246,
+ 231, 8, 6, 1, 237, 172, 3, 247, 215, 56, 8, 5, 1, 237, 172, 3, 247, 215,
+ 56, 8, 6, 1, 235, 206, 3, 208, 228, 56, 8, 5, 1, 235, 206, 3, 208, 228,
+ 56, 8, 6, 1, 235, 206, 3, 243, 232, 25, 165, 8, 5, 1, 235, 206, 3, 243,
+ 232, 25, 165, 8, 6, 1, 230, 55, 3, 165, 8, 5, 1, 230, 55, 3, 165, 8, 6,
+ 1, 230, 55, 3, 70, 56, 8, 5, 1, 230, 55, 3, 70, 56, 8, 6, 1, 230, 55, 3,
+ 227, 115, 56, 8, 5, 1, 230, 55, 3, 227, 115, 56, 8, 6, 1, 228, 131, 3,
+ 70, 56, 8, 5, 1, 228, 131, 3, 70, 56, 8, 6, 1, 228, 131, 3, 70, 248, 126,
+ 25, 225, 170, 8, 5, 1, 228, 131, 3, 70, 248, 126, 25, 225, 170, 8, 6, 1,
+ 228, 131, 3, 227, 115, 56, 8, 5, 1, 228, 131, 3, 227, 115, 56, 8, 6, 1,
+ 228, 131, 3, 246, 53, 56, 8, 5, 1, 228, 131, 3, 246, 53, 56, 8, 6, 1,
+ 226, 186, 3, 165, 8, 5, 1, 226, 186, 3, 165, 8, 6, 1, 226, 186, 3, 70,
+ 55, 8, 5, 1, 226, 186, 3, 70, 55, 8, 6, 1, 226, 186, 3, 70, 56, 8, 5, 1,
+ 226, 186, 3, 70, 56, 8, 6, 1, 223, 164, 3, 70, 55, 8, 5, 1, 223, 164, 3,
+ 70, 55, 8, 6, 1, 223, 164, 3, 70, 56, 8, 5, 1, 223, 164, 3, 70, 56, 8, 6,
+ 1, 223, 164, 3, 227, 115, 56, 8, 5, 1, 223, 164, 3, 227, 115, 56, 8, 6,
+ 1, 223, 164, 3, 246, 53, 56, 8, 5, 1, 223, 164, 3, 246, 53, 56, 8, 6, 1,
+ 158, 3, 208, 228, 25, 165, 8, 5, 1, 158, 3, 208, 228, 25, 165, 8, 6, 1,
+ 158, 3, 208, 228, 25, 243, 231, 8, 5, 1, 158, 3, 208, 228, 25, 243, 231,
+ 8, 6, 1, 158, 3, 225, 171, 25, 237, 253, 8, 5, 1, 158, 3, 225, 171, 25,
+ 237, 253, 8, 6, 1, 158, 3, 225, 171, 25, 165, 8, 5, 1, 158, 3, 225, 171,
+ 25, 165, 8, 6, 1, 219, 185, 3, 165, 8, 5, 1, 219, 185, 3, 165, 8, 6, 1,
+ 219, 185, 3, 70, 55, 8, 5, 1, 219, 185, 3, 70, 55, 8, 6, 1, 217, 1, 3,
+ 70, 55, 8, 5, 1, 217, 1, 3, 70, 55, 8, 6, 1, 217, 1, 3, 70, 56, 8, 5, 1,
+ 217, 1, 3, 70, 56, 8, 6, 1, 217, 1, 3, 70, 248, 126, 25, 225, 170, 8, 5,
+ 1, 217, 1, 3, 70, 248, 126, 25, 225, 170, 8, 6, 1, 217, 1, 3, 227, 115,
+ 56, 8, 5, 1, 217, 1, 3, 227, 115, 56, 8, 6, 1, 215, 94, 3, 70, 55, 8, 5,
+ 1, 215, 94, 3, 70, 55, 8, 6, 1, 215, 94, 3, 70, 56, 8, 5, 1, 215, 94, 3,
+ 70, 56, 8, 6, 1, 215, 94, 3, 251, 126, 25, 70, 55, 8, 5, 1, 215, 94, 3,
+ 251, 126, 25, 70, 55, 8, 6, 1, 215, 94, 3, 247, 30, 25, 70, 55, 8, 5, 1,
+ 215, 94, 3, 247, 30, 25, 70, 55, 8, 6, 1, 215, 94, 3, 70, 248, 126, 25,
+ 70, 55, 8, 5, 1, 215, 94, 3, 70, 248, 126, 25, 70, 55, 8, 6, 1, 210, 70,
+ 3, 70, 55, 8, 5, 1, 210, 70, 3, 70, 55, 8, 6, 1, 210, 70, 3, 70, 56, 8,
+ 5, 1, 210, 70, 3, 70, 56, 8, 6, 1, 210, 70, 3, 227, 115, 56, 8, 5, 1,
+ 210, 70, 3, 227, 115, 56, 8, 6, 1, 210, 70, 3, 246, 53, 56, 8, 5, 1, 210,
+ 70, 3, 246, 53, 56, 8, 6, 1, 106, 3, 243, 232, 56, 8, 5, 1, 106, 3, 243,
+ 232, 56, 8, 6, 1, 106, 3, 208, 228, 56, 8, 5, 1, 106, 3, 208, 228, 56, 8,
+ 6, 1, 106, 3, 246, 53, 56, 8, 5, 1, 106, 3, 246, 53, 56, 8, 6, 1, 106, 3,
+ 208, 228, 25, 165, 8, 5, 1, 106, 3, 208, 228, 25, 165, 8, 6, 1, 106, 3,
+ 225, 171, 25, 243, 231, 8, 5, 1, 106, 3, 225, 171, 25, 243, 231, 8, 6, 1,
+ 206, 165, 3, 208, 227, 8, 5, 1, 206, 165, 3, 208, 227, 8, 6, 1, 206, 165,
+ 3, 70, 56, 8, 5, 1, 206, 165, 3, 70, 56, 8, 6, 1, 204, 145, 3, 237, 253,
+ 8, 5, 1, 204, 145, 3, 237, 253, 8, 6, 1, 204, 145, 3, 165, 8, 5, 1, 204,
+ 145, 3, 165, 8, 6, 1, 204, 145, 3, 243, 231, 8, 5, 1, 204, 145, 3, 243,
+ 231, 8, 6, 1, 204, 145, 3, 70, 55, 8, 5, 1, 204, 145, 3, 70, 55, 8, 6, 1,
+ 204, 145, 3, 70, 56, 8, 5, 1, 204, 145, 3, 70, 56, 8, 6, 1, 203, 197, 3,
+ 70, 55, 8, 5, 1, 203, 197, 3, 70, 55, 8, 6, 1, 203, 197, 3, 243, 231, 8,
+ 5, 1, 203, 197, 3, 243, 231, 8, 6, 1, 203, 125, 3, 70, 55, 8, 5, 1, 203,
+ 125, 3, 70, 55, 8, 6, 1, 202, 160, 3, 246, 52, 8, 5, 1, 202, 160, 3, 246,
+ 52, 8, 6, 1, 202, 160, 3, 70, 56, 8, 5, 1, 202, 160, 3, 70, 56, 8, 6, 1,
+ 202, 160, 3, 227, 115, 56, 8, 5, 1, 202, 160, 3, 227, 115, 56, 8, 5, 1,
+ 237, 172, 3, 227, 115, 56, 8, 5, 1, 210, 70, 3, 243, 231, 8, 5, 1, 204,
+ 145, 3, 215, 253, 55, 8, 5, 1, 203, 125, 3, 215, 253, 55, 8, 5, 1, 34, 3,
+ 50, 162, 215, 252, 8, 5, 1, 163, 215, 94, 3, 70, 55, 8, 5, 1, 163, 215,
+ 94, 3, 243, 228, 95, 8, 5, 1, 163, 215, 94, 3, 138, 95, 8, 6, 1, 213, 57,
+ 194, 8, 5, 1, 244, 37, 8, 6, 1, 34, 3, 70, 56, 8, 5, 1, 34, 3, 70, 56, 8,
+ 6, 1, 34, 3, 236, 116, 55, 8, 5, 1, 34, 3, 236, 116, 55, 8, 6, 1, 34, 3,
+ 246, 53, 25, 165, 8, 5, 1, 34, 3, 246, 53, 25, 165, 8, 6, 1, 34, 3, 246,
+ 53, 25, 237, 253, 8, 5, 1, 34, 3, 246, 53, 25, 237, 253, 8, 6, 1, 34, 3,
+ 246, 53, 25, 236, 116, 55, 8, 5, 1, 34, 3, 246, 53, 25, 236, 116, 55, 8,
+ 6, 1, 34, 3, 246, 53, 25, 208, 227, 8, 5, 1, 34, 3, 246, 53, 25, 208,
+ 227, 8, 6, 1, 34, 3, 246, 53, 25, 70, 56, 8, 5, 1, 34, 3, 246, 53, 25,
+ 70, 56, 8, 6, 1, 34, 3, 247, 215, 25, 165, 8, 5, 1, 34, 3, 247, 215, 25,
+ 165, 8, 6, 1, 34, 3, 247, 215, 25, 237, 253, 8, 5, 1, 34, 3, 247, 215,
+ 25, 237, 253, 8, 6, 1, 34, 3, 247, 215, 25, 236, 116, 55, 8, 5, 1, 34, 3,
+ 247, 215, 25, 236, 116, 55, 8, 6, 1, 34, 3, 247, 215, 25, 208, 227, 8, 5,
+ 1, 34, 3, 247, 215, 25, 208, 227, 8, 6, 1, 34, 3, 247, 215, 25, 70, 56,
+ 8, 5, 1, 34, 3, 247, 215, 25, 70, 56, 8, 6, 1, 188, 3, 70, 56, 8, 5, 1,
+ 188, 3, 70, 56, 8, 6, 1, 188, 3, 236, 116, 55, 8, 5, 1, 188, 3, 236, 116,
+ 55, 8, 6, 1, 188, 3, 208, 227, 8, 5, 1, 188, 3, 208, 227, 8, 6, 1, 188,
+ 3, 246, 53, 25, 165, 8, 5, 1, 188, 3, 246, 53, 25, 165, 8, 6, 1, 188, 3,
+ 246, 53, 25, 237, 253, 8, 5, 1, 188, 3, 246, 53, 25, 237, 253, 8, 6, 1,
+ 188, 3, 246, 53, 25, 236, 116, 55, 8, 5, 1, 188, 3, 246, 53, 25, 236,
+ 116, 55, 8, 6, 1, 188, 3, 246, 53, 25, 208, 227, 8, 5, 1, 188, 3, 246,
+ 53, 25, 208, 227, 8, 6, 1, 188, 3, 246, 53, 25, 70, 56, 8, 5, 1, 188, 3,
+ 246, 53, 25, 70, 56, 8, 6, 1, 235, 206, 3, 236, 116, 55, 8, 5, 1, 235,
+ 206, 3, 236, 116, 55, 8, 6, 1, 235, 206, 3, 70, 56, 8, 5, 1, 235, 206, 3,
+ 70, 56, 8, 6, 1, 158, 3, 70, 56, 8, 5, 1, 158, 3, 70, 56, 8, 6, 1, 158,
+ 3, 236, 116, 55, 8, 5, 1, 158, 3, 236, 116, 55, 8, 6, 1, 158, 3, 246, 53,
+ 25, 165, 8, 5, 1, 158, 3, 246, 53, 25, 165, 8, 6, 1, 158, 3, 246, 53, 25,
+ 237, 253, 8, 5, 1, 158, 3, 246, 53, 25, 237, 253, 8, 6, 1, 158, 3, 246,
+ 53, 25, 236, 116, 55, 8, 5, 1, 158, 3, 246, 53, 25, 236, 116, 55, 8, 6,
+ 1, 158, 3, 246, 53, 25, 208, 227, 8, 5, 1, 158, 3, 246, 53, 25, 208, 227,
+ 8, 6, 1, 158, 3, 246, 53, 25, 70, 56, 8, 5, 1, 158, 3, 246, 53, 25, 70,
+ 56, 8, 6, 1, 158, 3, 236, 54, 25, 165, 8, 5, 1, 158, 3, 236, 54, 25, 165,
+ 8, 6, 1, 158, 3, 236, 54, 25, 237, 253, 8, 5, 1, 158, 3, 236, 54, 25,
+ 237, 253, 8, 6, 1, 158, 3, 236, 54, 25, 236, 116, 55, 8, 5, 1, 158, 3,
+ 236, 54, 25, 236, 116, 55, 8, 6, 1, 158, 3, 236, 54, 25, 208, 227, 8, 5,
+ 1, 158, 3, 236, 54, 25, 208, 227, 8, 6, 1, 158, 3, 236, 54, 25, 70, 56,
+ 8, 5, 1, 158, 3, 236, 54, 25, 70, 56, 8, 6, 1, 106, 3, 70, 56, 8, 5, 1,
+ 106, 3, 70, 56, 8, 6, 1, 106, 3, 236, 116, 55, 8, 5, 1, 106, 3, 236, 116,
+ 55, 8, 6, 1, 106, 3, 236, 54, 25, 165, 8, 5, 1, 106, 3, 236, 54, 25, 165,
+ 8, 6, 1, 106, 3, 236, 54, 25, 237, 253, 8, 5, 1, 106, 3, 236, 54, 25,
+ 237, 253, 8, 6, 1, 106, 3, 236, 54, 25, 236, 116, 55, 8, 5, 1, 106, 3,
+ 236, 54, 25, 236, 116, 55, 8, 6, 1, 106, 3, 236, 54, 25, 208, 227, 8, 5,
+ 1, 106, 3, 236, 54, 25, 208, 227, 8, 6, 1, 106, 3, 236, 54, 25, 70, 56,
+ 8, 5, 1, 106, 3, 236, 54, 25, 70, 56, 8, 6, 1, 203, 125, 3, 237, 253, 8,
+ 5, 1, 203, 125, 3, 237, 253, 8, 6, 1, 203, 125, 3, 70, 56, 8, 5, 1, 203,
+ 125, 3, 70, 56, 8, 6, 1, 203, 125, 3, 236, 116, 55, 8, 5, 1, 203, 125, 3,
+ 236, 116, 55, 8, 6, 1, 203, 125, 3, 208, 227, 8, 5, 1, 203, 125, 3, 208,
+ 227, 8, 6, 1, 224, 147, 227, 78, 8, 5, 1, 224, 147, 227, 78, 8, 6, 1,
+ 224, 147, 206, 164, 8, 5, 1, 224, 147, 206, 164, 8, 6, 1, 203, 125, 3,
+ 227, 14, 8, 5, 1, 203, 125, 3, 227, 14, 30, 5, 1, 251, 3, 3, 217, 195,
+ 30, 5, 1, 251, 3, 3, 244, 141, 30, 5, 1, 251, 3, 3, 217, 196, 25, 206,
+ 70, 30, 5, 1, 251, 3, 3, 244, 142, 25, 206, 70, 30, 5, 1, 251, 3, 3, 217,
+ 196, 25, 219, 189, 30, 5, 1, 251, 3, 3, 244, 142, 25, 219, 189, 30, 5, 1,
+ 251, 3, 3, 217, 196, 25, 218, 239, 30, 5, 1, 251, 3, 3, 244, 142, 25,
+ 218, 239, 30, 6, 1, 251, 3, 3, 217, 195, 30, 6, 1, 251, 3, 3, 244, 141,
+ 30, 6, 1, 251, 3, 3, 217, 196, 25, 206, 70, 30, 6, 1, 251, 3, 3, 244,
+ 142, 25, 206, 70, 30, 6, 1, 251, 3, 3, 217, 196, 25, 219, 189, 30, 6, 1,
+ 251, 3, 3, 244, 142, 25, 219, 189, 30, 6, 1, 251, 3, 3, 217, 196, 25,
+ 218, 239, 30, 6, 1, 251, 3, 3, 244, 142, 25, 218, 239, 30, 5, 1, 241, 38,
+ 3, 217, 195, 30, 5, 1, 241, 38, 3, 244, 141, 30, 5, 1, 241, 38, 3, 217,
+ 196, 25, 206, 70, 30, 5, 1, 241, 38, 3, 244, 142, 25, 206, 70, 30, 5, 1,
+ 241, 38, 3, 217, 196, 25, 219, 189, 30, 5, 1, 241, 38, 3, 244, 142, 25,
+ 219, 189, 30, 6, 1, 241, 38, 3, 217, 195, 30, 6, 1, 241, 38, 3, 244, 141,
+ 30, 6, 1, 241, 38, 3, 217, 196, 25, 206, 70, 30, 6, 1, 241, 38, 3, 244,
+ 142, 25, 206, 70, 30, 6, 1, 241, 38, 3, 217, 196, 25, 219, 189, 30, 6, 1,
+ 241, 38, 3, 244, 142, 25, 219, 189, 30, 5, 1, 240, 249, 3, 217, 195, 30,
+ 5, 1, 240, 249, 3, 244, 141, 30, 5, 1, 240, 249, 3, 217, 196, 25, 206,
+ 70, 30, 5, 1, 240, 249, 3, 244, 142, 25, 206, 70, 30, 5, 1, 240, 249, 3,
+ 217, 196, 25, 219, 189, 30, 5, 1, 240, 249, 3, 244, 142, 25, 219, 189,
+ 30, 5, 1, 240, 249, 3, 217, 196, 25, 218, 239, 30, 5, 1, 240, 249, 3,
+ 244, 142, 25, 218, 239, 30, 6, 1, 240, 249, 3, 217, 195, 30, 6, 1, 240,
+ 249, 3, 244, 141, 30, 6, 1, 240, 249, 3, 217, 196, 25, 206, 70, 30, 6, 1,
+ 240, 249, 3, 244, 142, 25, 206, 70, 30, 6, 1, 240, 249, 3, 217, 196, 25,
+ 219, 189, 30, 6, 1, 240, 249, 3, 244, 142, 25, 219, 189, 30, 6, 1, 240,
+ 249, 3, 217, 196, 25, 218, 239, 30, 6, 1, 240, 249, 3, 244, 142, 25, 218,
+ 239, 30, 5, 1, 230, 231, 3, 217, 195, 30, 5, 1, 230, 231, 3, 244, 141,
+ 30, 5, 1, 230, 231, 3, 217, 196, 25, 206, 70, 30, 5, 1, 230, 231, 3, 244,
+ 142, 25, 206, 70, 30, 5, 1, 230, 231, 3, 217, 196, 25, 219, 189, 30, 5,
+ 1, 230, 231, 3, 244, 142, 25, 219, 189, 30, 5, 1, 230, 231, 3, 217, 196,
+ 25, 218, 239, 30, 5, 1, 230, 231, 3, 244, 142, 25, 218, 239, 30, 6, 1,
+ 230, 231, 3, 217, 195, 30, 6, 1, 230, 231, 3, 244, 141, 30, 6, 1, 230,
+ 231, 3, 217, 196, 25, 206, 70, 30, 6, 1, 230, 231, 3, 244, 142, 25, 206,
+ 70, 30, 6, 1, 230, 231, 3, 217, 196, 25, 219, 189, 30, 6, 1, 230, 231, 3,
+ 244, 142, 25, 219, 189, 30, 6, 1, 230, 231, 3, 217, 196, 25, 218, 239,
+ 30, 6, 1, 230, 231, 3, 244, 142, 25, 218, 239, 30, 5, 1, 220, 35, 3, 217,
+ 195, 30, 5, 1, 220, 35, 3, 244, 141, 30, 5, 1, 220, 35, 3, 217, 196, 25,
+ 206, 70, 30, 5, 1, 220, 35, 3, 244, 142, 25, 206, 70, 30, 5, 1, 220, 35,
+ 3, 217, 196, 25, 219, 189, 30, 5, 1, 220, 35, 3, 244, 142, 25, 219, 189,
+ 30, 6, 1, 220, 35, 3, 217, 195, 30, 6, 1, 220, 35, 3, 244, 141, 30, 6, 1,
+ 220, 35, 3, 217, 196, 25, 206, 70, 30, 6, 1, 220, 35, 3, 244, 142, 25,
+ 206, 70, 30, 6, 1, 220, 35, 3, 217, 196, 25, 219, 189, 30, 6, 1, 220, 35,
+ 3, 244, 142, 25, 219, 189, 30, 5, 1, 206, 217, 3, 217, 195, 30, 5, 1,
+ 206, 217, 3, 244, 141, 30, 5, 1, 206, 217, 3, 217, 196, 25, 206, 70, 30,
+ 5, 1, 206, 217, 3, 244, 142, 25, 206, 70, 30, 5, 1, 206, 217, 3, 217,
+ 196, 25, 219, 189, 30, 5, 1, 206, 217, 3, 244, 142, 25, 219, 189, 30, 5,
+ 1, 206, 217, 3, 217, 196, 25, 218, 239, 30, 5, 1, 206, 217, 3, 244, 142,
+ 25, 218, 239, 30, 6, 1, 206, 217, 3, 244, 141, 30, 6, 1, 206, 217, 3,
+ 244, 142, 25, 206, 70, 30, 6, 1, 206, 217, 3, 244, 142, 25, 219, 189, 30,
+ 6, 1, 206, 217, 3, 244, 142, 25, 218, 239, 30, 5, 1, 220, 37, 3, 217,
+ 195, 30, 5, 1, 220, 37, 3, 244, 141, 30, 5, 1, 220, 37, 3, 217, 196, 25,
+ 206, 70, 30, 5, 1, 220, 37, 3, 244, 142, 25, 206, 70, 30, 5, 1, 220, 37,
+ 3, 217, 196, 25, 219, 189, 30, 5, 1, 220, 37, 3, 244, 142, 25, 219, 189,
+ 30, 5, 1, 220, 37, 3, 217, 196, 25, 218, 239, 30, 5, 1, 220, 37, 3, 244,
+ 142, 25, 218, 239, 30, 6, 1, 220, 37, 3, 217, 195, 30, 6, 1, 220, 37, 3,
+ 244, 141, 30, 6, 1, 220, 37, 3, 217, 196, 25, 206, 70, 30, 6, 1, 220, 37,
+ 3, 244, 142, 25, 206, 70, 30, 6, 1, 220, 37, 3, 217, 196, 25, 219, 189,
+ 30, 6, 1, 220, 37, 3, 244, 142, 25, 219, 189, 30, 6, 1, 220, 37, 3, 217,
+ 196, 25, 218, 239, 30, 6, 1, 220, 37, 3, 244, 142, 25, 218, 239, 30, 5,
+ 1, 251, 3, 3, 206, 70, 30, 5, 1, 251, 3, 3, 219, 189, 30, 5, 1, 241, 38,
+ 3, 206, 70, 30, 5, 1, 241, 38, 3, 219, 189, 30, 5, 1, 240, 249, 3, 206,
+ 70, 30, 5, 1, 240, 249, 3, 219, 189, 30, 5, 1, 230, 231, 3, 206, 70, 30,
+ 5, 1, 230, 231, 3, 219, 189, 30, 5, 1, 220, 35, 3, 206, 70, 30, 5, 1,
+ 220, 35, 3, 219, 189, 30, 5, 1, 206, 217, 3, 206, 70, 30, 5, 1, 206, 217,
+ 3, 219, 189, 30, 5, 1, 220, 37, 3, 206, 70, 30, 5, 1, 220, 37, 3, 219,
+ 189, 30, 5, 1, 251, 3, 3, 217, 196, 25, 202, 221, 30, 5, 1, 251, 3, 3,
+ 244, 142, 25, 202, 221, 30, 5, 1, 251, 3, 3, 217, 196, 25, 206, 71, 25,
+ 202, 221, 30, 5, 1, 251, 3, 3, 244, 142, 25, 206, 71, 25, 202, 221, 30,
+ 5, 1, 251, 3, 3, 217, 196, 25, 219, 190, 25, 202, 221, 30, 5, 1, 251, 3,
+ 3, 244, 142, 25, 219, 190, 25, 202, 221, 30, 5, 1, 251, 3, 3, 217, 196,
+ 25, 218, 240, 25, 202, 221, 30, 5, 1, 251, 3, 3, 244, 142, 25, 218, 240,
+ 25, 202, 221, 30, 6, 1, 251, 3, 3, 217, 196, 25, 217, 209, 30, 6, 1, 251,
+ 3, 3, 244, 142, 25, 217, 209, 30, 6, 1, 251, 3, 3, 217, 196, 25, 206, 71,
+ 25, 217, 209, 30, 6, 1, 251, 3, 3, 244, 142, 25, 206, 71, 25, 217, 209,
+ 30, 6, 1, 251, 3, 3, 217, 196, 25, 219, 190, 25, 217, 209, 30, 6, 1, 251,
+ 3, 3, 244, 142, 25, 219, 190, 25, 217, 209, 30, 6, 1, 251, 3, 3, 217,
+ 196, 25, 218, 240, 25, 217, 209, 30, 6, 1, 251, 3, 3, 244, 142, 25, 218,
+ 240, 25, 217, 209, 30, 5, 1, 240, 249, 3, 217, 196, 25, 202, 221, 30, 5,
+ 1, 240, 249, 3, 244, 142, 25, 202, 221, 30, 5, 1, 240, 249, 3, 217, 196,
+ 25, 206, 71, 25, 202, 221, 30, 5, 1, 240, 249, 3, 244, 142, 25, 206, 71,
+ 25, 202, 221, 30, 5, 1, 240, 249, 3, 217, 196, 25, 219, 190, 25, 202,
+ 221, 30, 5, 1, 240, 249, 3, 244, 142, 25, 219, 190, 25, 202, 221, 30, 5,
+ 1, 240, 249, 3, 217, 196, 25, 218, 240, 25, 202, 221, 30, 5, 1, 240, 249,
+ 3, 244, 142, 25, 218, 240, 25, 202, 221, 30, 6, 1, 240, 249, 3, 217, 196,
+ 25, 217, 209, 30, 6, 1, 240, 249, 3, 244, 142, 25, 217, 209, 30, 6, 1,
+ 240, 249, 3, 217, 196, 25, 206, 71, 25, 217, 209, 30, 6, 1, 240, 249, 3,
+ 244, 142, 25, 206, 71, 25, 217, 209, 30, 6, 1, 240, 249, 3, 217, 196, 25,
+ 219, 190, 25, 217, 209, 30, 6, 1, 240, 249, 3, 244, 142, 25, 219, 190,
+ 25, 217, 209, 30, 6, 1, 240, 249, 3, 217, 196, 25, 218, 240, 25, 217,
+ 209, 30, 6, 1, 240, 249, 3, 244, 142, 25, 218, 240, 25, 217, 209, 30, 5,
+ 1, 220, 37, 3, 217, 196, 25, 202, 221, 30, 5, 1, 220, 37, 3, 244, 142,
+ 25, 202, 221, 30, 5, 1, 220, 37, 3, 217, 196, 25, 206, 71, 25, 202, 221,
+ 30, 5, 1, 220, 37, 3, 244, 142, 25, 206, 71, 25, 202, 221, 30, 5, 1, 220,
+ 37, 3, 217, 196, 25, 219, 190, 25, 202, 221, 30, 5, 1, 220, 37, 3, 244,
+ 142, 25, 219, 190, 25, 202, 221, 30, 5, 1, 220, 37, 3, 217, 196, 25, 218,
+ 240, 25, 202, 221, 30, 5, 1, 220, 37, 3, 244, 142, 25, 218, 240, 25, 202,
+ 221, 30, 6, 1, 220, 37, 3, 217, 196, 25, 217, 209, 30, 6, 1, 220, 37, 3,
+ 244, 142, 25, 217, 209, 30, 6, 1, 220, 37, 3, 217, 196, 25, 206, 71, 25,
+ 217, 209, 30, 6, 1, 220, 37, 3, 244, 142, 25, 206, 71, 25, 217, 209, 30,
+ 6, 1, 220, 37, 3, 217, 196, 25, 219, 190, 25, 217, 209, 30, 6, 1, 220,
+ 37, 3, 244, 142, 25, 219, 190, 25, 217, 209, 30, 6, 1, 220, 37, 3, 217,
+ 196, 25, 218, 240, 25, 217, 209, 30, 6, 1, 220, 37, 3, 244, 142, 25, 218,
+ 240, 25, 217, 209, 30, 5, 1, 251, 3, 3, 205, 167, 30, 5, 1, 251, 3, 3,
+ 225, 170, 30, 5, 1, 251, 3, 3, 206, 71, 25, 202, 221, 30, 5, 1, 251, 3,
+ 3, 202, 221, 30, 5, 1, 251, 3, 3, 219, 190, 25, 202, 221, 30, 5, 1, 251,
+ 3, 3, 218, 239, 30, 5, 1, 251, 3, 3, 218, 240, 25, 202, 221, 30, 6, 1,
+ 251, 3, 3, 205, 167, 30, 6, 1, 251, 3, 3, 225, 170, 30, 6, 1, 251, 3, 3,
+ 206, 70, 30, 6, 1, 251, 3, 3, 219, 189, 30, 6, 1, 251, 3, 3, 217, 209,
+ 30, 228, 252, 30, 217, 209, 30, 217, 195, 30, 218, 239, 30, 243, 225, 25,
+ 218, 239, 30, 5, 1, 240, 249, 3, 206, 71, 25, 202, 221, 30, 5, 1, 240,
+ 249, 3, 202, 221, 30, 5, 1, 240, 249, 3, 219, 190, 25, 202, 221, 30, 5,
+ 1, 240, 249, 3, 218, 239, 30, 5, 1, 240, 249, 3, 218, 240, 25, 202, 221,
+ 30, 6, 1, 241, 38, 3, 206, 70, 30, 6, 1, 241, 38, 3, 219, 189, 30, 6, 1,
+ 240, 249, 3, 206, 70, 30, 6, 1, 240, 249, 3, 219, 189, 30, 6, 1, 240,
+ 249, 3, 217, 209, 30, 217, 196, 25, 206, 70, 30, 217, 196, 25, 219, 189,
+ 30, 217, 196, 25, 218, 239, 30, 5, 1, 230, 231, 3, 205, 167, 30, 5, 1,
+ 230, 231, 3, 225, 170, 30, 5, 1, 230, 231, 3, 243, 225, 25, 206, 70, 30,
+ 5, 1, 230, 231, 3, 243, 225, 25, 219, 189, 30, 5, 1, 230, 231, 3, 218,
+ 239, 30, 5, 1, 230, 231, 3, 243, 225, 25, 218, 239, 30, 6, 1, 230, 231,
+ 3, 205, 167, 30, 6, 1, 230, 231, 3, 225, 170, 30, 6, 1, 230, 231, 3, 206,
+ 70, 30, 6, 1, 230, 231, 3, 219, 189, 30, 244, 142, 25, 206, 70, 30, 244,
+ 142, 25, 219, 189, 30, 244, 142, 25, 218, 239, 30, 5, 1, 206, 217, 3,
+ 205, 167, 30, 5, 1, 206, 217, 3, 225, 170, 30, 5, 1, 206, 217, 3, 243,
+ 225, 25, 206, 70, 30, 5, 1, 206, 217, 3, 243, 225, 25, 219, 189, 30, 5,
+ 1, 216, 60, 3, 217, 195, 30, 5, 1, 216, 60, 3, 244, 141, 30, 5, 1, 206,
+ 217, 3, 218, 239, 30, 5, 1, 206, 217, 3, 243, 225, 25, 218, 239, 30, 6,
+ 1, 206, 217, 3, 205, 167, 30, 6, 1, 206, 217, 3, 225, 170, 30, 6, 1, 206,
+ 217, 3, 206, 70, 30, 6, 1, 206, 217, 3, 219, 189, 30, 6, 1, 216, 60, 3,
+ 244, 141, 30, 243, 225, 25, 206, 70, 30, 243, 225, 25, 219, 189, 30, 206,
+ 70, 30, 5, 1, 220, 37, 3, 206, 71, 25, 202, 221, 30, 5, 1, 220, 37, 3,
+ 202, 221, 30, 5, 1, 220, 37, 3, 219, 190, 25, 202, 221, 30, 5, 1, 220,
+ 37, 3, 218, 239, 30, 5, 1, 220, 37, 3, 218, 240, 25, 202, 221, 30, 6, 1,
+ 220, 35, 3, 206, 70, 30, 6, 1, 220, 35, 3, 219, 189, 30, 6, 1, 220, 37,
+ 3, 206, 70, 30, 6, 1, 220, 37, 3, 219, 189, 30, 6, 1, 220, 37, 3, 217,
+ 209, 30, 219, 189, 30, 244, 141, 241, 93, 217, 62, 241, 104, 217, 62,
+ 241, 93, 211, 228, 241, 104, 211, 228, 209, 28, 211, 228, 239, 145, 211,
+ 228, 212, 86, 211, 228, 240, 16, 211, 228, 217, 179, 211, 228, 209, 63,
+ 211, 228, 237, 146, 211, 228, 202, 85, 204, 24, 211, 228, 202, 85, 204,
+ 24, 221, 183, 202, 85, 204, 24, 230, 96, 227, 213, 82, 216, 7, 82, 235,
+ 220, 221, 184, 235, 220, 240, 16, 244, 144, 241, 93, 244, 144, 241, 104,
+ 244, 144, 236, 106, 142, 52, 80, 227, 114, 52, 124, 227, 114, 49, 212,
+ 120, 217, 31, 82, 50, 212, 120, 217, 31, 82, 212, 120, 226, 255, 217, 31,
+ 82, 212, 120, 236, 241, 217, 31, 82, 49, 52, 217, 31, 82, 50, 52, 217,
+ 31, 82, 52, 226, 255, 217, 31, 82, 52, 236, 241, 217, 31, 82, 244, 195,
+ 52, 244, 195, 247, 177, 208, 82, 247, 177, 118, 70, 227, 232, 120, 70,
+ 227, 232, 236, 106, 241, 108, 235, 218, 218, 62, 227, 115, 213, 130, 219,
+ 89, 213, 130, 227, 213, 241, 102, 216, 7, 241, 102, 218, 42, 243, 165,
+ 239, 157, 227, 213, 219, 196, 216, 7, 219, 196, 223, 73, 221, 190, 211,
+ 228, 218, 247, 224, 116, 54, 218, 247, 209, 153, 209, 37, 54, 217, 236,
+ 52, 217, 236, 208, 70, 217, 236, 216, 73, 217, 236, 216, 73, 52, 217,
+ 236, 216, 73, 208, 70, 217, 236, 247, 33, 212, 120, 227, 217, 250, 218,
+ 217, 31, 82, 212, 120, 216, 11, 250, 218, 217, 31, 82, 216, 134, 82, 52,
+ 240, 212, 82, 230, 247, 219, 198, 206, 243, 167, 208, 250, 247, 34, 231,
+ 8, 218, 62, 250, 57, 235, 221, 247, 177, 239, 138, 212, 57, 49, 51, 247,
+ 227, 3, 217, 41, 50, 51, 247, 227, 3, 217, 41, 52, 217, 47, 82, 217, 47,
+ 240, 212, 82, 240, 212, 217, 47, 82, 208, 203, 2, 240, 250, 216, 73, 218,
+ 126, 54, 62, 96, 247, 177, 62, 86, 247, 177, 124, 250, 59, 216, 73, 213,
+ 143, 246, 17, 206, 224, 120, 250, 58, 251, 18, 205, 243, 245, 231, 224,
+ 103, 54, 210, 153, 244, 144, 230, 239, 206, 243, 239, 198, 217, 179, 82,
+ 126, 70, 217, 178, 217, 58, 217, 236, 239, 147, 70, 217, 178, 239, 233,
+ 70, 217, 178, 120, 70, 217, 178, 239, 147, 70, 82, 242, 83, 245, 130,
+ 208, 81, 80, 239, 147, 243, 83, 225, 10, 13, 211, 228, 203, 238, 230, 96,
+ 239, 100, 250, 155, 230, 237, 208, 219, 230, 237, 213, 130, 230, 237,
+ 218, 76, 227, 213, 230, 207, 216, 7, 230, 207, 239, 245, 211, 18, 230,
+ 207, 218, 42, 243, 165, 230, 207, 231, 20, 210, 101, 210, 170, 251, 128,
+ 210, 101, 210, 170, 231, 20, 10, 239, 159, 213, 61, 251, 128, 10, 239,
+ 159, 213, 61, 223, 67, 17, 213, 62, 221, 186, 17, 213, 62, 210, 199, 202,
+ 84, 210, 199, 8, 5, 1, 75, 210, 199, 149, 210, 199, 170, 210, 199, 195,
+ 210, 199, 213, 111, 210, 199, 199, 210, 199, 222, 63, 210, 199, 91, 54,
+ 210, 199, 224, 102, 210, 199, 241, 35, 54, 210, 199, 49, 219, 76, 210,
+ 199, 50, 219, 76, 210, 199, 8, 5, 1, 223, 163, 210, 246, 202, 84, 210,
+ 246, 105, 210, 246, 108, 210, 246, 147, 210, 246, 149, 210, 246, 170,
+ 210, 246, 195, 210, 246, 213, 111, 210, 246, 199, 210, 246, 222, 63, 210,
+ 246, 91, 54, 210, 246, 224, 102, 210, 246, 241, 35, 54, 210, 246, 49,
+ 219, 76, 210, 246, 50, 219, 76, 8, 210, 246, 5, 1, 63, 8, 210, 246, 5, 1,
+ 74, 8, 210, 246, 5, 1, 78, 8, 210, 246, 5, 1, 203, 196, 8, 210, 246, 5,
+ 1, 214, 192, 8, 210, 246, 5, 1, 237, 171, 8, 210, 246, 5, 1, 230, 54, 8,
+ 210, 246, 5, 1, 159, 8, 210, 246, 5, 1, 226, 185, 8, 210, 246, 5, 1, 223,
+ 163, 8, 210, 246, 5, 1, 219, 184, 8, 210, 246, 5, 1, 194, 8, 210, 246, 5,
+ 1, 210, 69, 240, 229, 54, 245, 243, 54, 245, 115, 54, 239, 128, 239, 132,
+ 54, 227, 94, 54, 224, 117, 54, 223, 90, 54, 218, 224, 54, 215, 120, 54,
+ 203, 246, 54, 222, 214, 213, 29, 54, 243, 92, 54, 240, 230, 54, 229, 79,
+ 54, 207, 196, 54, 242, 66, 54, 238, 166, 219, 2, 54, 218, 221, 54, 237,
+ 225, 54, 250, 24, 54, 236, 32, 54, 246, 233, 54, 227, 84, 208, 125, 54,
+ 211, 209, 54, 209, 150, 54, 231, 34, 215, 120, 54, 207, 177, 227, 94, 54,
+ 221, 173, 131, 54, 225, 120, 54, 215, 142, 54, 228, 4, 54, 39, 49, 237,
+ 87, 55, 39, 50, 237, 87, 55, 39, 163, 80, 227, 115, 219, 199, 39, 212,
+ 228, 80, 227, 115, 219, 199, 39, 250, 194, 53, 55, 39, 246, 18, 53, 55,
+ 39, 49, 53, 55, 39, 50, 53, 55, 39, 215, 253, 219, 199, 39, 246, 18, 215,
+ 253, 219, 199, 39, 250, 194, 215, 253, 219, 199, 39, 126, 187, 55, 39,
+ 239, 147, 187, 55, 39, 241, 88, 246, 61, 39, 241, 88, 211, 177, 39, 241,
+ 88, 243, 221, 39, 241, 88, 246, 62, 249, 20, 39, 49, 50, 53, 55, 39, 241,
+ 88, 214, 184, 39, 241, 88, 229, 147, 39, 241, 88, 206, 214, 218, 59, 208,
+ 85, 39, 216, 74, 212, 1, 219, 199, 39, 52, 80, 211, 32, 219, 199, 39,
+ 250, 204, 97, 39, 208, 70, 206, 245, 39, 204, 27, 247, 208, 55, 39, 96,
+ 53, 219, 199, 39, 163, 52, 212, 1, 219, 199, 39, 86, 237, 87, 3, 150,
+ 242, 68, 39, 96, 237, 87, 3, 150, 242, 68, 39, 49, 53, 56, 39, 50, 53,
+ 56, 39, 250, 60, 55, 251, 134, 220, 69, 251, 118, 208, 173, 209, 93, 210,
+ 255, 169, 6, 247, 125, 244, 55, 246, 223, 246, 218, 227, 115, 97, 247,
+ 35, 220, 69, 247, 84, 206, 254, 240, 231, 245, 200, 214, 181, 244, 55,
+ 240, 90, 132, 5, 239, 75, 132, 6, 237, 171, 248, 41, 6, 237, 171, 169, 6,
+ 237, 171, 218, 93, 245, 200, 218, 93, 245, 201, 115, 120, 218, 167, 132,
+ 6, 75, 248, 41, 6, 75, 132, 6, 159, 132, 5, 159, 228, 131, 66, 248, 231,
+ 97, 169, 6, 223, 163, 221, 42, 54, 211, 241, 216, 146, 245, 168, 132, 6,
+ 219, 184, 169, 6, 219, 184, 169, 6, 217, 134, 132, 6, 146, 248, 41, 6,
+ 146, 169, 6, 146, 217, 243, 209, 241, 216, 86, 213, 122, 82, 209, 162,
+ 54, 208, 115, 131, 54, 206, 39, 169, 6, 202, 159, 219, 215, 54, 220, 59,
+ 54, 230, 239, 220, 59, 54, 248, 41, 6, 202, 159, 207, 174, 30, 5, 1, 230,
+ 230, 229, 188, 54, 250, 213, 54, 132, 6, 249, 255, 248, 41, 6, 247, 125,
+ 240, 255, 97, 132, 5, 74, 132, 6, 74, 132, 6, 240, 174, 207, 174, 6, 240,
+ 174, 132, 6, 226, 185, 132, 5, 78, 137, 97, 248, 109, 97, 238, 68, 97,
+ 244, 179, 97, 231, 25, 211, 239, 215, 198, 6, 217, 134, 240, 93, 54, 169,
+ 5, 218, 167, 169, 5, 238, 235, 169, 6, 238, 235, 169, 6, 218, 167, 169,
+ 223, 162, 210, 217, 207, 174, 41, 6, 239, 75, 207, 174, 41, 6, 159, 216,
+ 73, 41, 6, 159, 207, 174, 41, 6, 203, 124, 169, 37, 6, 245, 51, 169, 37,
+ 5, 245, 51, 169, 37, 5, 74, 169, 37, 5, 75, 169, 37, 5, 230, 184, 217,
+ 212, 227, 114, 207, 174, 250, 235, 218, 247, 54, 251, 41, 207, 174, 5,
+ 240, 174, 16, 35, 214, 252, 211, 239, 204, 161, 239, 138, 118, 213, 107,
+ 204, 161, 239, 138, 118, 222, 57, 204, 161, 239, 138, 118, 209, 143, 204,
+ 161, 239, 138, 118, 209, 60, 204, 161, 239, 138, 120, 209, 57, 204, 161,
+ 239, 138, 118, 240, 21, 204, 161, 239, 138, 120, 240, 20, 204, 161, 239,
+ 138, 126, 240, 20, 204, 161, 239, 138, 239, 147, 240, 20, 204, 161, 239,
+ 138, 118, 212, 78, 204, 161, 239, 138, 239, 233, 212, 76, 204, 161, 239,
+ 138, 118, 241, 138, 204, 161, 239, 138, 126, 241, 136, 204, 161, 239,
+ 138, 239, 233, 241, 136, 204, 161, 239, 138, 213, 112, 241, 136, 239,
+ 138, 221, 43, 105, 215, 210, 221, 44, 105, 215, 210, 221, 44, 108, 215,
+ 210, 221, 44, 147, 215, 210, 221, 44, 149, 215, 210, 221, 44, 170, 215,
+ 210, 221, 44, 195, 215, 210, 221, 44, 213, 111, 215, 210, 221, 44, 199,
+ 215, 210, 221, 44, 222, 63, 215, 210, 221, 44, 209, 152, 215, 210, 221,
+ 44, 241, 112, 215, 210, 221, 44, 207, 154, 215, 210, 221, 44, 240, 18,
+ 215, 210, 221, 44, 118, 236, 11, 215, 210, 221, 44, 239, 233, 236, 11,
+ 215, 210, 221, 44, 118, 209, 36, 5, 215, 210, 221, 44, 105, 5, 215, 210,
+ 221, 44, 108, 5, 215, 210, 221, 44, 147, 5, 215, 210, 221, 44, 149, 5,
+ 215, 210, 221, 44, 170, 5, 215, 210, 221, 44, 195, 5, 215, 210, 221, 44,
+ 213, 111, 5, 215, 210, 221, 44, 199, 5, 215, 210, 221, 44, 222, 63, 5,
+ 215, 210, 221, 44, 209, 152, 5, 215, 210, 221, 44, 241, 112, 5, 215, 210,
+ 221, 44, 207, 154, 5, 215, 210, 221, 44, 240, 18, 5, 215, 210, 221, 44,
+ 118, 236, 11, 5, 215, 210, 221, 44, 239, 233, 236, 11, 5, 215, 210, 221,
+ 44, 118, 209, 36, 215, 210, 221, 44, 118, 209, 37, 247, 126, 245, 51,
+ 215, 210, 221, 44, 239, 233, 209, 36, 215, 210, 221, 44, 209, 153, 209,
+ 36, 215, 210, 221, 44, 216, 73, 118, 236, 11, 8, 5, 1, 216, 73, 247, 125,
+ 215, 210, 221, 44, 212, 88, 227, 255, 18, 215, 210, 221, 44, 240, 19,
+ 241, 182, 18, 215, 210, 221, 44, 240, 19, 209, 36, 215, 210, 221, 44,
+ 118, 236, 12, 209, 36, 204, 161, 239, 138, 202, 85, 209, 57, 207, 174,
+ 17, 108, 207, 174, 17, 147, 96, 47, 177, 47, 86, 47, 183, 47, 49, 50, 47,
+ 112, 121, 47, 153, 204, 46, 47, 153, 241, 176, 47, 211, 238, 241, 176,
+ 47, 211, 238, 204, 46, 47, 96, 53, 3, 95, 86, 53, 3, 95, 96, 204, 76, 47,
+ 86, 204, 76, 47, 96, 120, 237, 62, 47, 177, 120, 237, 62, 47, 86, 120,
+ 237, 62, 47, 183, 120, 237, 62, 47, 96, 53, 3, 209, 248, 86, 53, 3, 209,
+ 248, 96, 53, 239, 120, 142, 177, 53, 239, 120, 142, 86, 53, 239, 120,
+ 142, 183, 53, 239, 120, 142, 112, 121, 53, 3, 248, 218, 96, 53, 3, 113,
+ 86, 53, 3, 113, 96, 53, 3, 227, 14, 86, 53, 3, 227, 14, 49, 50, 204, 76,
+ 47, 49, 50, 53, 3, 95, 183, 202, 30, 47, 177, 53, 3, 208, 211, 227, 212,
+ 177, 53, 3, 208, 211, 216, 5, 183, 53, 3, 208, 211, 227, 212, 183, 53, 3,
+ 208, 211, 216, 5, 86, 53, 3, 245, 166, 242, 68, 183, 53, 3, 245, 166,
+ 227, 212, 250, 194, 208, 145, 213, 146, 47, 246, 18, 208, 145, 213, 146,
+ 47, 153, 204, 46, 53, 208, 173, 163, 142, 96, 53, 208, 173, 248, 231,
+ 115, 86, 53, 208, 173, 142, 250, 194, 171, 246, 62, 47, 246, 18, 171,
+ 246, 62, 47, 96, 237, 87, 3, 150, 206, 212, 96, 237, 87, 3, 150, 242, 68,
+ 177, 237, 87, 3, 150, 216, 5, 177, 237, 87, 3, 150, 227, 212, 86, 237,
+ 87, 3, 150, 206, 212, 86, 237, 87, 3, 150, 242, 68, 183, 237, 87, 3, 150,
+ 216, 5, 183, 237, 87, 3, 150, 227, 212, 86, 53, 115, 96, 47, 177, 53, 96,
+ 76, 183, 47, 96, 53, 115, 86, 47, 96, 219, 146, 250, 91, 177, 219, 146,
+ 250, 91, 86, 219, 146, 250, 91, 183, 219, 146, 250, 91, 96, 237, 87, 115,
+ 86, 237, 86, 86, 237, 87, 115, 96, 237, 86, 96, 52, 53, 3, 95, 49, 50,
+ 52, 53, 3, 95, 86, 52, 53, 3, 95, 96, 52, 47, 177, 52, 47, 86, 52, 47,
+ 183, 52, 47, 49, 50, 52, 47, 112, 121, 52, 47, 153, 204, 46, 52, 47, 153,
+ 241, 176, 52, 47, 211, 238, 241, 176, 52, 47, 211, 238, 204, 46, 52, 47,
+ 96, 208, 70, 47, 86, 208, 70, 47, 96, 211, 171, 47, 86, 211, 171, 47,
+ 177, 53, 3, 52, 95, 183, 53, 3, 52, 95, 96, 244, 143, 47, 177, 244, 143,
+ 47, 86, 244, 143, 47, 183, 244, 143, 47, 96, 53, 208, 173, 142, 86, 53,
+ 208, 173, 142, 96, 61, 47, 177, 61, 47, 86, 61, 47, 183, 61, 47, 177, 61,
+ 53, 239, 120, 142, 177, 61, 53, 220, 32, 219, 26, 177, 61, 53, 220, 32,
+ 219, 27, 3, 236, 106, 142, 177, 61, 53, 220, 32, 219, 27, 3, 80, 142,
+ 177, 61, 52, 47, 177, 61, 52, 53, 220, 32, 219, 26, 86, 61, 53, 239, 120,
+ 204, 99, 153, 204, 46, 53, 208, 173, 245, 165, 211, 238, 241, 176, 53,
+ 208, 173, 245, 165, 112, 121, 61, 47, 50, 53, 3, 5, 246, 61, 183, 53, 96,
+ 76, 177, 47, 126, 86, 250, 91, 96, 53, 3, 80, 95, 86, 53, 3, 80, 95, 49,
+ 50, 53, 3, 80, 95, 96, 53, 3, 52, 80, 95, 86, 53, 3, 52, 80, 95, 49, 50,
+ 53, 3, 52, 80, 95, 96, 220, 6, 47, 86, 220, 6, 47, 49, 50, 220, 6, 47,
+ 35, 251, 14, 245, 228, 219, 69, 243, 205, 209, 83, 240, 207, 209, 83,
+ 243, 104, 221, 166, 240, 208, 241, 94, 213, 117, 231, 38, 223, 101, 241,
+ 115, 220, 69, 221, 166, 250, 232, 241, 115, 220, 69, 5, 241, 115, 220,
+ 69, 245, 194, 250, 82, 224, 244, 243, 104, 221, 166, 245, 196, 250, 82,
+ 224, 244, 5, 245, 194, 250, 82, 224, 244, 241, 84, 76, 217, 214, 223,
+ 162, 217, 224, 223, 162, 245, 171, 223, 162, 210, 217, 224, 103, 54, 224,
+ 101, 54, 70, 218, 76, 243, 137, 212, 57, 213, 118, 224, 102, 250, 60,
+ 219, 254, 215, 253, 219, 254, 247, 178, 219, 254, 51, 215, 204, 245, 106,
+ 215, 204, 239, 140, 215, 204, 217, 210, 135, 231, 27, 50, 250, 217, 250,
+ 217, 225, 17, 250, 217, 211, 208, 250, 217, 243, 139, 243, 104, 221, 166,
+ 243, 143, 219, 82, 135, 221, 166, 219, 82, 135, 227, 37, 250, 226, 227,
+ 37, 219, 244, 230, 244, 206, 237, 231, 2, 52, 231, 2, 208, 70, 231, 2,
+ 245, 188, 231, 2, 210, 189, 231, 2, 205, 178, 231, 2, 246, 18, 231, 2,
+ 246, 18, 245, 188, 231, 2, 250, 194, 245, 188, 231, 2, 209, 82, 248, 152,
+ 216, 168, 217, 211, 70, 224, 102, 240, 215, 238, 172, 217, 211, 236, 121,
+ 208, 228, 219, 254, 216, 73, 208, 227, 230, 239, 227, 241, 194, 212, 122,
+ 204, 75, 203, 226, 217, 224, 221, 166, 208, 227, 224, 103, 208, 227, 250,
+ 53, 156, 135, 221, 166, 250, 53, 156, 135, 250, 151, 156, 135, 250, 151,
+ 247, 148, 221, 166, 251, 127, 156, 135, 222, 232, 250, 151, 221, 175,
+ 251, 127, 156, 135, 251, 7, 156, 135, 221, 166, 251, 7, 156, 135, 251, 7,
+ 156, 219, 245, 156, 135, 208, 70, 208, 227, 251, 15, 156, 135, 241, 30,
+ 135, 238, 171, 241, 30, 135, 243, 206, 248, 103, 250, 153, 209, 93, 227,
+ 122, 238, 171, 156, 135, 250, 151, 156, 208, 173, 219, 245, 209, 93, 231,
+ 65, 220, 69, 231, 65, 76, 219, 245, 250, 151, 156, 135, 245, 243, 241,
+ 34, 241, 35, 245, 242, 215, 253, 231, 50, 156, 135, 215, 253, 156, 135,
+ 245, 159, 135, 240, 254, 241, 33, 135, 211, 95, 241, 34, 244, 38, 156,
+ 135, 156, 208, 173, 247, 137, 244, 56, 225, 17, 247, 136, 217, 45, 156,
+ 135, 221, 166, 156, 135, 235, 154, 135, 221, 166, 235, 154, 135, 211, 39,
+ 241, 30, 135, 227, 179, 219, 245, 156, 135, 237, 247, 219, 245, 156, 135,
+ 227, 179, 115, 156, 135, 237, 247, 115, 156, 135, 227, 179, 247, 148,
+ 221, 166, 156, 135, 237, 247, 247, 148, 221, 166, 156, 135, 223, 240,
+ 227, 178, 223, 240, 237, 246, 248, 103, 221, 166, 241, 30, 135, 221, 166,
+ 227, 178, 221, 166, 237, 246, 222, 232, 227, 179, 221, 175, 156, 135,
+ 222, 232, 237, 247, 221, 175, 156, 135, 227, 179, 219, 245, 241, 30, 135,
+ 237, 247, 219, 245, 241, 30, 135, 222, 232, 227, 179, 221, 175, 241, 30,
+ 135, 222, 232, 237, 247, 221, 175, 241, 30, 135, 227, 179, 219, 245, 237,
+ 246, 237, 247, 219, 245, 227, 178, 222, 232, 227, 179, 221, 175, 237,
+ 246, 222, 232, 237, 247, 221, 175, 227, 178, 217, 249, 210, 236, 217,
+ 250, 219, 245, 156, 135, 210, 237, 219, 245, 156, 135, 217, 250, 219,
+ 245, 241, 30, 135, 210, 237, 219, 245, 241, 30, 135, 243, 104, 221, 166,
+ 217, 252, 243, 104, 221, 166, 210, 238, 210, 245, 220, 69, 210, 198, 220,
+ 69, 221, 166, 34, 210, 245, 220, 69, 221, 166, 34, 210, 198, 220, 69,
+ 210, 245, 76, 219, 245, 156, 135, 210, 198, 76, 219, 245, 156, 135, 222,
+ 232, 34, 210, 245, 76, 221, 175, 156, 135, 222, 232, 34, 210, 198, 76,
+ 221, 175, 156, 135, 210, 245, 76, 3, 221, 166, 156, 135, 210, 198, 76, 3,
+ 221, 166, 156, 135, 223, 221, 223, 222, 223, 223, 223, 222, 206, 237, 51,
+ 231, 65, 220, 69, 51, 219, 236, 220, 69, 51, 231, 65, 76, 219, 245, 156,
+ 135, 51, 219, 236, 76, 219, 245, 156, 135, 51, 247, 48, 51, 245, 99, 43,
+ 218, 76, 43, 224, 102, 43, 208, 219, 43, 243, 137, 212, 57, 43, 70, 219,
+ 254, 43, 215, 253, 219, 254, 43, 250, 60, 219, 254, 43, 241, 34, 43, 244,
+ 144, 103, 218, 76, 103, 224, 102, 103, 208, 219, 103, 70, 219, 254, 50,
+ 210, 3, 49, 210, 3, 121, 210, 3, 112, 210, 3, 250, 63, 224, 77, 208, 49,
+ 239, 165, 208, 70, 80, 248, 231, 50, 207, 173, 52, 80, 248, 231, 52, 50,
+ 207, 173, 243, 104, 221, 166, 217, 205, 221, 166, 208, 49, 243, 104, 221,
+ 166, 239, 166, 222, 234, 52, 80, 248, 231, 52, 50, 207, 173, 217, 250,
+ 206, 248, 216, 117, 210, 237, 206, 248, 216, 117, 221, 172, 211, 2, 220,
+ 69, 245, 194, 250, 82, 221, 172, 211, 1, 221, 172, 211, 2, 76, 219, 245,
+ 156, 135, 245, 194, 250, 82, 221, 172, 211, 2, 219, 245, 156, 135, 219,
+ 236, 220, 69, 231, 65, 220, 69, 223, 228, 237, 24, 245, 205, 225, 69,
+ 230, 255, 203, 156, 223, 81, 221, 174, 50, 250, 218, 3, 250, 128, 50,
+ 208, 85, 223, 162, 227, 37, 250, 226, 223, 162, 227, 37, 219, 244, 223,
+ 162, 230, 244, 223, 162, 206, 237, 243, 222, 219, 254, 70, 219, 254, 211,
+ 95, 219, 254, 243, 137, 208, 219, 247, 234, 49, 221, 172, 240, 92, 213,
+ 142, 217, 224, 50, 221, 172, 240, 92, 213, 142, 217, 224, 49, 213, 142,
+ 217, 224, 50, 213, 142, 217, 224, 216, 73, 208, 228, 241, 34, 245, 93,
+ 227, 37, 219, 244, 245, 93, 227, 37, 250, 226, 52, 210, 244, 52, 210,
+ 197, 52, 230, 244, 52, 206, 237, 218, 103, 156, 25, 219, 82, 135, 227,
+ 179, 3, 243, 85, 237, 247, 3, 243, 85, 205, 242, 223, 240, 227, 178, 205,
+ 242, 223, 240, 237, 246, 227, 179, 156, 208, 173, 219, 245, 237, 246,
+ 237, 247, 156, 208, 173, 219, 245, 227, 178, 156, 208, 173, 219, 245,
+ 227, 178, 156, 208, 173, 219, 245, 237, 246, 156, 208, 173, 219, 245,
+ 217, 249, 156, 208, 173, 219, 245, 210, 236, 243, 104, 221, 166, 217,
+ 253, 219, 245, 241, 36, 243, 104, 221, 166, 210, 239, 219, 245, 241, 36,
+ 221, 166, 51, 231, 65, 76, 219, 245, 156, 135, 221, 166, 51, 219, 236,
+ 76, 219, 245, 156, 135, 51, 231, 65, 76, 219, 245, 221, 166, 156, 135,
+ 51, 219, 236, 76, 219, 245, 221, 166, 156, 135, 227, 179, 247, 148, 221,
+ 166, 241, 30, 135, 237, 247, 247, 148, 221, 166, 241, 30, 135, 217, 250,
+ 247, 148, 221, 166, 241, 30, 135, 210, 237, 247, 148, 221, 166, 241, 30,
+ 135, 221, 166, 221, 172, 211, 2, 220, 69, 243, 104, 221, 166, 245, 196,
+ 250, 82, 221, 172, 211, 1, 221, 166, 221, 172, 211, 2, 76, 219, 245, 156,
+ 135, 243, 104, 221, 166, 245, 196, 250, 82, 221, 172, 211, 2, 219, 245,
+ 241, 36, 80, 241, 108, 224, 146, 236, 106, 241, 108, 112, 50, 243, 228,
+ 241, 108, 121, 50, 243, 228, 241, 108, 241, 115, 76, 3, 163, 236, 106,
+ 95, 241, 115, 76, 3, 80, 248, 231, 250, 50, 241, 84, 76, 236, 106, 95, 5,
+ 241, 115, 76, 3, 80, 248, 231, 250, 50, 241, 84, 76, 236, 106, 95, 241,
+ 115, 76, 3, 70, 55, 241, 115, 76, 3, 219, 203, 5, 241, 115, 76, 3, 219,
+ 203, 241, 115, 76, 3, 206, 246, 241, 115, 76, 3, 120, 236, 106, 211, 19,
+ 245, 194, 3, 163, 236, 106, 95, 245, 194, 3, 80, 248, 231, 250, 50, 241,
+ 84, 76, 236, 106, 95, 5, 245, 194, 3, 80, 248, 231, 250, 50, 241, 84, 76,
+ 236, 106, 95, 245, 194, 3, 219, 203, 5, 245, 194, 3, 219, 203, 202, 160,
+ 221, 164, 249, 11, 224, 243, 243, 223, 54, 241, 117, 47, 236, 38, 112,
+ 250, 94, 121, 250, 94, 217, 218, 218, 227, 204, 72, 227, 114, 49, 246,
+ 226, 50, 246, 226, 49, 239, 204, 50, 239, 204, 247, 248, 50, 245, 132,
+ 247, 248, 49, 245, 132, 208, 145, 50, 245, 132, 208, 145, 49, 245, 132,
+ 216, 73, 221, 166, 54, 51, 226, 246, 250, 128, 214, 158, 214, 166, 209,
+ 162, 216, 147, 218, 34, 231, 31, 205, 218, 211, 177, 218, 97, 76, 230,
+ 254, 54, 207, 174, 221, 166, 54, 204, 82, 236, 40, 208, 145, 49, 245,
+ 165, 208, 145, 50, 245, 165, 247, 248, 49, 245, 165, 247, 248, 50, 245,
+ 165, 208, 145, 162, 231, 2, 247, 248, 162, 231, 2, 239, 115, 212, 31,
+ 112, 250, 95, 248, 104, 120, 236, 106, 248, 220, 219, 247, 229, 151, 241,
+ 26, 208, 173, 209, 93, 216, 16, 203, 197, 231, 50, 34, 216, 144, 247,
+ 233, 229, 149, 227, 217, 250, 218, 155, 216, 11, 250, 218, 155, 241, 26,
+ 208, 173, 209, 93, 227, 222, 248, 115, 215, 252, 245, 61, 251, 15, 250,
+ 103, 210, 100, 208, 130, 215, 125, 243, 185, 219, 237, 245, 209, 209,
+ 220, 212, 44, 245, 155, 245, 154, 250, 169, 239, 98, 16, 235, 203, 250,
+ 169, 239, 98, 16, 211, 169, 217, 62, 250, 169, 239, 98, 16, 217, 63, 241,
+ 36, 250, 169, 239, 98, 16, 217, 63, 243, 143, 250, 169, 239, 98, 16, 217,
+ 63, 243, 221, 250, 169, 239, 98, 16, 217, 63, 230, 88, 250, 169, 239, 98,
+ 16, 217, 63, 246, 61, 250, 169, 239, 98, 16, 246, 62, 211, 69, 250, 169,
+ 239, 98, 16, 246, 62, 230, 88, 250, 169, 239, 98, 16, 212, 58, 142, 250,
+ 169, 239, 98, 16, 249, 21, 142, 250, 169, 239, 98, 16, 217, 63, 212, 57,
+ 250, 169, 239, 98, 16, 217, 63, 249, 20, 250, 169, 239, 98, 16, 217, 63,
+ 227, 178, 250, 169, 239, 98, 16, 217, 63, 237, 246, 250, 169, 239, 98,
+ 16, 96, 206, 76, 250, 169, 239, 98, 16, 86, 206, 76, 250, 169, 239, 98,
+ 16, 217, 63, 96, 47, 250, 169, 239, 98, 16, 217, 63, 86, 47, 250, 169,
+ 239, 98, 16, 246, 62, 249, 20, 250, 169, 239, 98, 16, 121, 210, 4, 206,
+ 246, 250, 169, 239, 98, 16, 244, 38, 211, 69, 250, 169, 239, 98, 16, 217,
+ 63, 121, 247, 33, 250, 169, 239, 98, 16, 217, 63, 244, 37, 250, 169, 239,
+ 98, 16, 121, 210, 4, 230, 88, 250, 169, 239, 98, 16, 177, 206, 76, 250,
+ 169, 239, 98, 16, 217, 63, 177, 47, 250, 169, 239, 98, 16, 112, 210, 4,
+ 219, 203, 250, 169, 239, 98, 16, 244, 49, 211, 69, 250, 169, 239, 98, 16,
+ 217, 63, 112, 247, 33, 250, 169, 239, 98, 16, 217, 63, 244, 48, 250, 169,
+ 239, 98, 16, 112, 210, 4, 230, 88, 250, 169, 239, 98, 16, 183, 206, 76,
+ 250, 169, 239, 98, 16, 217, 63, 183, 47, 250, 169, 239, 98, 16, 217, 30,
+ 206, 246, 250, 169, 239, 98, 16, 244, 38, 206, 246, 250, 169, 239, 98,
+ 16, 243, 222, 206, 246, 250, 169, 239, 98, 16, 230, 89, 206, 246, 250,
+ 169, 239, 98, 16, 246, 62, 206, 246, 250, 169, 239, 98, 16, 112, 212,
+ 240, 230, 88, 250, 169, 239, 98, 16, 217, 30, 217, 62, 250, 169, 239, 98,
+ 16, 246, 62, 211, 94, 250, 169, 239, 98, 16, 217, 63, 245, 242, 250, 169,
+ 239, 98, 16, 112, 210, 4, 243, 231, 250, 169, 239, 98, 16, 244, 49, 243,
+ 231, 250, 169, 239, 98, 16, 211, 95, 243, 231, 250, 169, 239, 98, 16,
+ 230, 89, 243, 231, 250, 169, 239, 98, 16, 246, 62, 243, 231, 250, 169,
+ 239, 98, 16, 121, 212, 240, 211, 69, 250, 169, 239, 98, 16, 49, 212, 240,
+ 211, 69, 250, 169, 239, 98, 16, 208, 228, 243, 231, 250, 169, 239, 98,
+ 16, 237, 247, 243, 231, 250, 169, 239, 98, 16, 245, 234, 142, 250, 169,
+ 239, 98, 16, 244, 49, 208, 227, 250, 169, 239, 98, 16, 202, 29, 250, 169,
+ 239, 98, 16, 211, 70, 208, 227, 250, 169, 239, 98, 16, 213, 144, 206,
+ 246, 250, 169, 239, 98, 16, 217, 63, 221, 166, 241, 36, 250, 169, 239,
+ 98, 16, 217, 63, 217, 46, 250, 169, 239, 98, 16, 121, 247, 34, 208, 227,
+ 250, 169, 239, 98, 16, 112, 247, 34, 208, 227, 250, 169, 239, 98, 16,
+ 230, 230, 250, 169, 239, 98, 16, 216, 59, 250, 169, 239, 98, 16, 220, 36,
+ 250, 169, 239, 98, 16, 251, 3, 206, 246, 250, 169, 239, 98, 16, 241, 38,
+ 206, 246, 250, 169, 239, 98, 16, 230, 231, 206, 246, 250, 169, 239, 98,
+ 16, 220, 37, 206, 246, 250, 169, 239, 98, 16, 251, 2, 221, 166, 246, 169,
+ 82, 50, 250, 218, 3, 183, 202, 30, 47, 212, 210, 171, 247, 233, 248, 129,
+ 97, 80, 227, 115, 3, 101, 243, 85, 231, 8, 97, 245, 189, 206, 244, 97,
+ 243, 158, 206, 244, 97, 241, 96, 97, 245, 224, 97, 61, 51, 3, 246, 218,
+ 80, 227, 114, 241, 68, 97, 250, 250, 229, 152, 97, 237, 37, 97, 43, 236,
+ 106, 248, 231, 3, 221, 163, 43, 208, 86, 242, 70, 247, 203, 246, 62, 3,
+ 221, 169, 47, 206, 242, 97, 224, 40, 97, 235, 216, 97, 220, 7, 237, 170,
+ 97, 220, 7, 228, 129, 97, 219, 59, 97, 219, 58, 97, 243, 167, 245, 91,
+ 16, 239, 159, 108, 212, 5, 97, 250, 169, 239, 98, 16, 217, 62, 244, 68,
+ 213, 131, 229, 152, 97, 217, 238, 219, 153, 222, 208, 219, 153, 217, 234,
+ 214, 185, 97, 246, 33, 214, 185, 97, 49, 219, 77, 206, 221, 113, 49, 219,
+ 77, 240, 200, 49, 219, 77, 226, 251, 113, 50, 219, 77, 206, 221, 113, 50,
+ 219, 77, 240, 200, 50, 219, 77, 226, 251, 113, 49, 51, 247, 227, 206,
+ 221, 245, 165, 49, 51, 247, 227, 240, 200, 49, 51, 247, 227, 226, 251,
+ 245, 165, 50, 51, 247, 227, 206, 221, 245, 165, 50, 51, 247, 227, 240,
+ 200, 50, 51, 247, 227, 226, 251, 245, 165, 49, 245, 93, 247, 227, 206,
+ 221, 113, 49, 245, 93, 247, 227, 101, 218, 159, 49, 245, 93, 247, 227,
+ 226, 251, 113, 245, 93, 247, 227, 240, 200, 50, 245, 93, 247, 227, 206,
+ 221, 113, 50, 245, 93, 247, 227, 101, 218, 159, 50, 245, 93, 247, 227,
+ 226, 251, 113, 231, 3, 240, 200, 236, 106, 227, 115, 240, 200, 206, 221,
+ 49, 219, 245, 226, 251, 50, 245, 93, 247, 227, 214, 167, 206, 221, 50,
+ 219, 245, 226, 251, 49, 245, 93, 247, 227, 214, 167, 210, 218, 208, 144,
+ 210, 218, 247, 247, 208, 145, 51, 155, 247, 248, 51, 155, 247, 248, 51,
+ 247, 227, 115, 208, 145, 51, 155, 40, 16, 247, 247, 49, 80, 98, 227, 114,
+ 50, 80, 98, 227, 114, 236, 106, 214, 202, 227, 113, 236, 106, 214, 202,
+ 227, 112, 236, 106, 214, 202, 227, 111, 236, 106, 214, 202, 227, 110,
+ 244, 29, 16, 157, 80, 25, 208, 145, 216, 16, 244, 29, 16, 157, 80, 25,
+ 247, 248, 216, 16, 244, 29, 16, 157, 80, 3, 246, 61, 244, 29, 16, 157,
+ 121, 25, 236, 106, 3, 246, 61, 244, 29, 16, 157, 112, 25, 236, 106, 3,
+ 246, 61, 244, 29, 16, 157, 80, 3, 208, 85, 244, 29, 16, 157, 121, 25,
+ 236, 106, 3, 208, 85, 244, 29, 16, 157, 112, 25, 236, 106, 3, 208, 85,
+ 244, 29, 16, 157, 80, 25, 204, 75, 244, 29, 16, 157, 121, 25, 236, 106,
+ 3, 204, 75, 244, 29, 16, 157, 112, 25, 236, 106, 3, 204, 75, 244, 29, 16,
+ 157, 121, 25, 236, 105, 244, 29, 16, 157, 112, 25, 236, 105, 244, 29, 16,
+ 157, 80, 25, 208, 145, 227, 222, 244, 29, 16, 157, 80, 25, 247, 248, 227,
+ 222, 51, 239, 172, 216, 78, 97, 241, 131, 97, 80, 227, 115, 240, 200,
+ 224, 214, 247, 214, 224, 214, 163, 115, 212, 227, 224, 214, 212, 228,
+ 115, 227, 28, 224, 214, 163, 115, 120, 212, 213, 224, 214, 120, 212, 214,
+ 115, 227, 28, 224, 214, 120, 212, 214, 230, 97, 224, 214, 208, 66, 224,
+ 214, 209, 124, 224, 214, 218, 253, 241, 180, 237, 239, 239, 92, 208, 145,
+ 219, 76, 247, 248, 219, 76, 208, 145, 245, 93, 155, 247, 248, 245, 93,
+ 155, 208, 145, 208, 133, 213, 33, 155, 247, 248, 208, 133, 213, 33, 155,
+ 61, 208, 101, 248, 115, 215, 253, 3, 246, 61, 211, 51, 239, 215, 251,
+ 142, 245, 90, 241, 116, 230, 244, 244, 68, 240, 204, 97, 62, 216, 11, 52,
+ 208, 85, 62, 227, 217, 52, 208, 85, 62, 206, 223, 52, 208, 85, 62, 242,
+ 69, 52, 208, 85, 62, 216, 11, 52, 208, 86, 3, 80, 142, 62, 227, 217, 52,
+ 208, 86, 3, 80, 142, 62, 216, 11, 208, 86, 3, 52, 80, 142, 251, 34, 246,
+ 19, 211, 58, 208, 220, 246, 19, 236, 41, 3, 239, 195, 214, 241, 62, 225,
+ 10, 227, 217, 208, 85, 62, 225, 10, 216, 11, 208, 85, 62, 225, 10, 206,
+ 223, 208, 85, 62, 225, 10, 242, 69, 208, 85, 52, 80, 142, 62, 51, 35,
+ 211, 61, 62, 246, 62, 35, 216, 148, 16, 35, 221, 48, 16, 35, 211, 90, 76,
+ 237, 61, 16, 35, 211, 90, 76, 209, 112, 16, 35, 241, 84, 76, 209, 112,
+ 16, 35, 241, 84, 76, 208, 105, 16, 35, 241, 71, 16, 35, 251, 130, 16, 35,
+ 248, 128, 16, 35, 249, 19, 16, 35, 236, 106, 210, 5, 16, 35, 227, 115,
+ 240, 51, 16, 35, 80, 210, 5, 16, 35, 239, 159, 240, 51, 16, 35, 247, 25,
+ 216, 77, 16, 35, 213, 7, 219, 211, 16, 35, 213, 7, 231, 49, 16, 35, 244,
+ 139, 227, 105, 241, 9, 16, 35, 244, 8, 245, 184, 105, 16, 35, 244, 8,
+ 245, 184, 108, 16, 35, 244, 8, 245, 184, 147, 16, 35, 244, 8, 245, 184,
+ 149, 16, 35, 182, 251, 130, 16, 35, 210, 95, 231, 112, 16, 35, 241, 84,
+ 76, 208, 106, 248, 33, 16, 35, 247, 59, 16, 35, 241, 84, 76, 225, 9, 16,
+ 35, 210, 242, 16, 35, 241, 9, 16, 35, 240, 11, 213, 130, 16, 35, 237,
+ 238, 213, 130, 16, 35, 216, 149, 213, 130, 16, 35, 206, 236, 213, 130,
+ 16, 35, 211, 228, 16, 35, 244, 46, 248, 37, 97, 171, 247, 233, 16, 35,
+ 222, 211, 16, 35, 244, 47, 239, 159, 108, 16, 35, 210, 243, 239, 159,
+ 108, 220, 82, 113, 220, 82, 246, 194, 220, 82, 239, 162, 220, 82, 230,
+ 239, 239, 162, 220, 82, 248, 125, 247, 190, 220, 82, 247, 241, 208, 250,
+ 220, 82, 247, 224, 248, 236, 235, 153, 220, 82, 250, 237, 76, 246, 168,
+ 220, 82, 244, 144, 220, 82, 245, 80, 251, 134, 221, 46, 220, 82, 52, 249,
+ 20, 43, 17, 105, 43, 17, 108, 43, 17, 147, 43, 17, 149, 43, 17, 170, 43,
+ 17, 195, 43, 17, 213, 111, 43, 17, 199, 43, 17, 222, 63, 43, 42, 209,
+ 152, 43, 42, 241, 112, 43, 42, 207, 154, 43, 42, 209, 55, 43, 42, 239,
+ 141, 43, 42, 240, 22, 43, 42, 212, 82, 43, 42, 213, 108, 43, 42, 241,
+ 140, 43, 42, 222, 60, 43, 42, 207, 151, 102, 17, 105, 102, 17, 108, 102,
+ 17, 147, 102, 17, 149, 102, 17, 170, 102, 17, 195, 102, 17, 213, 111,
+ 102, 17, 199, 102, 17, 222, 63, 102, 42, 209, 152, 102, 42, 241, 112,
+ 102, 42, 207, 154, 102, 42, 209, 55, 102, 42, 239, 141, 102, 42, 240, 22,
+ 102, 42, 212, 82, 102, 42, 213, 108, 102, 42, 241, 140, 102, 42, 222, 60,
+ 102, 42, 207, 151, 17, 118, 239, 102, 211, 61, 17, 120, 239, 102, 211,
+ 61, 17, 126, 239, 102, 211, 61, 17, 239, 147, 239, 102, 211, 61, 17, 239,
+ 233, 239, 102, 211, 61, 17, 212, 88, 239, 102, 211, 61, 17, 213, 112,
+ 239, 102, 211, 61, 17, 241, 143, 239, 102, 211, 61, 17, 222, 64, 239,
+ 102, 211, 61, 42, 209, 153, 239, 102, 211, 61, 42, 241, 113, 239, 102,
+ 211, 61, 42, 207, 155, 239, 102, 211, 61, 42, 209, 56, 239, 102, 211, 61,
+ 42, 239, 142, 239, 102, 211, 61, 42, 240, 23, 239, 102, 211, 61, 42, 212,
+ 83, 239, 102, 211, 61, 42, 213, 109, 239, 102, 211, 61, 42, 241, 141,
+ 239, 102, 211, 61, 42, 222, 61, 239, 102, 211, 61, 42, 207, 152, 239,
+ 102, 211, 61, 102, 8, 5, 1, 63, 102, 8, 5, 1, 249, 255, 102, 8, 5, 1,
+ 247, 125, 102, 8, 5, 1, 245, 51, 102, 8, 5, 1, 74, 102, 8, 5, 1, 240,
+ 174, 102, 8, 5, 1, 239, 75, 102, 8, 5, 1, 237, 171, 102, 8, 5, 1, 75,
+ 102, 8, 5, 1, 230, 184, 102, 8, 5, 1, 230, 54, 102, 8, 5, 1, 159, 102, 8,
+ 5, 1, 226, 185, 102, 8, 5, 1, 223, 163, 102, 8, 5, 1, 78, 102, 8, 5, 1,
+ 219, 184, 102, 8, 5, 1, 217, 134, 102, 8, 5, 1, 146, 102, 8, 5, 1, 194,
+ 102, 8, 5, 1, 210, 69, 102, 8, 5, 1, 68, 102, 8, 5, 1, 206, 164, 102, 8,
+ 5, 1, 204, 144, 102, 8, 5, 1, 203, 196, 102, 8, 5, 1, 203, 124, 102, 8,
+ 5, 1, 202, 159, 43, 8, 6, 1, 63, 43, 8, 6, 1, 249, 255, 43, 8, 6, 1, 247,
+ 125, 43, 8, 6, 1, 245, 51, 43, 8, 6, 1, 74, 43, 8, 6, 1, 240, 174, 43, 8,
+ 6, 1, 239, 75, 43, 8, 6, 1, 237, 171, 43, 8, 6, 1, 75, 43, 8, 6, 1, 230,
+ 184, 43, 8, 6, 1, 230, 54, 43, 8, 6, 1, 159, 43, 8, 6, 1, 226, 185, 43,
+ 8, 6, 1, 223, 163, 43, 8, 6, 1, 78, 43, 8, 6, 1, 219, 184, 43, 8, 6, 1,
+ 217, 134, 43, 8, 6, 1, 146, 43, 8, 6, 1, 194, 43, 8, 6, 1, 210, 69, 43,
+ 8, 6, 1, 68, 43, 8, 6, 1, 206, 164, 43, 8, 6, 1, 204, 144, 43, 8, 6, 1,
+ 203, 196, 43, 8, 6, 1, 203, 124, 43, 8, 6, 1, 202, 159, 43, 8, 5, 1, 63,
+ 43, 8, 5, 1, 249, 255, 43, 8, 5, 1, 247, 125, 43, 8, 5, 1, 245, 51, 43,
+ 8, 5, 1, 74, 43, 8, 5, 1, 240, 174, 43, 8, 5, 1, 239, 75, 43, 8, 5, 1,
+ 237, 171, 43, 8, 5, 1, 75, 43, 8, 5, 1, 230, 184, 43, 8, 5, 1, 230, 54,
+ 43, 8, 5, 1, 159, 43, 8, 5, 1, 226, 185, 43, 8, 5, 1, 223, 163, 43, 8, 5,
+ 1, 78, 43, 8, 5, 1, 219, 184, 43, 8, 5, 1, 217, 134, 43, 8, 5, 1, 146,
+ 43, 8, 5, 1, 194, 43, 8, 5, 1, 210, 69, 43, 8, 5, 1, 68, 43, 8, 5, 1,
+ 206, 164, 43, 8, 5, 1, 204, 144, 43, 8, 5, 1, 203, 196, 43, 8, 5, 1, 203,
+ 124, 43, 8, 5, 1, 202, 159, 43, 17, 202, 84, 182, 43, 42, 241, 112, 182,
+ 43, 42, 207, 154, 182, 43, 42, 209, 55, 182, 43, 42, 239, 141, 182, 43,
+ 42, 240, 22, 182, 43, 42, 212, 82, 182, 43, 42, 213, 108, 182, 43, 42,
+ 241, 140, 182, 43, 42, 222, 60, 182, 43, 42, 207, 151, 52, 43, 17, 105,
+ 52, 43, 17, 108, 52, 43, 17, 147, 52, 43, 17, 149, 52, 43, 17, 170, 52,
+ 43, 17, 195, 52, 43, 17, 213, 111, 52, 43, 17, 199, 52, 43, 17, 222, 63,
+ 52, 43, 42, 209, 152, 182, 43, 17, 202, 84, 98, 116, 157, 236, 105, 98,
+ 116, 79, 236, 105, 98, 116, 157, 206, 38, 98, 116, 79, 206, 38, 98, 116,
+ 157, 208, 70, 244, 145, 236, 105, 98, 116, 79, 208, 70, 244, 145, 236,
+ 105, 98, 116, 157, 208, 70, 244, 145, 206, 38, 98, 116, 79, 208, 70, 244,
+ 145, 206, 38, 98, 116, 157, 217, 58, 244, 145, 236, 105, 98, 116, 79,
+ 217, 58, 244, 145, 236, 105, 98, 116, 157, 217, 58, 244, 145, 206, 38,
+ 98, 116, 79, 217, 58, 244, 145, 206, 38, 98, 116, 157, 121, 25, 216, 16,
+ 98, 116, 121, 157, 25, 50, 237, 49, 98, 116, 121, 79, 25, 50, 227, 134,
+ 98, 116, 79, 121, 25, 216, 16, 98, 116, 157, 121, 25, 227, 222, 98, 116,
+ 121, 157, 25, 49, 237, 49, 98, 116, 121, 79, 25, 49, 227, 134, 98, 116,
+ 79, 121, 25, 227, 222, 98, 116, 157, 112, 25, 216, 16, 98, 116, 112, 157,
+ 25, 50, 237, 49, 98, 116, 112, 79, 25, 50, 227, 134, 98, 116, 79, 112,
+ 25, 216, 16, 98, 116, 157, 112, 25, 227, 222, 98, 116, 112, 157, 25, 49,
+ 237, 49, 98, 116, 112, 79, 25, 49, 227, 134, 98, 116, 79, 112, 25, 227,
+ 222, 98, 116, 157, 80, 25, 216, 16, 98, 116, 80, 157, 25, 50, 237, 49,
+ 98, 116, 112, 79, 25, 50, 121, 227, 134, 98, 116, 121, 79, 25, 50, 112,
+ 227, 134, 98, 116, 80, 79, 25, 50, 227, 134, 98, 116, 121, 157, 25, 50,
+ 112, 237, 49, 98, 116, 112, 157, 25, 50, 121, 237, 49, 98, 116, 79, 80,
+ 25, 216, 16, 98, 116, 157, 80, 25, 227, 222, 98, 116, 80, 157, 25, 49,
+ 237, 49, 98, 116, 112, 79, 25, 49, 121, 227, 134, 98, 116, 121, 79, 25,
+ 49, 112, 227, 134, 98, 116, 80, 79, 25, 49, 227, 134, 98, 116, 121, 157,
+ 25, 49, 112, 237, 49, 98, 116, 112, 157, 25, 49, 121, 237, 49, 98, 116,
+ 79, 80, 25, 227, 222, 98, 116, 157, 121, 25, 236, 105, 98, 116, 49, 79,
+ 25, 50, 121, 227, 134, 98, 116, 50, 79, 25, 49, 121, 227, 134, 98, 116,
+ 121, 157, 25, 236, 106, 237, 49, 98, 116, 121, 79, 25, 236, 106, 227,
+ 134, 98, 116, 50, 157, 25, 49, 121, 237, 49, 98, 116, 49, 157, 25, 50,
+ 121, 237, 49, 98, 116, 79, 121, 25, 236, 105, 98, 116, 157, 112, 25, 236,
+ 105, 98, 116, 49, 79, 25, 50, 112, 227, 134, 98, 116, 50, 79, 25, 49,
+ 112, 227, 134, 98, 116, 112, 157, 25, 236, 106, 237, 49, 98, 116, 112,
+ 79, 25, 236, 106, 227, 134, 98, 116, 50, 157, 25, 49, 112, 237, 49, 98,
+ 116, 49, 157, 25, 50, 112, 237, 49, 98, 116, 79, 112, 25, 236, 105, 98,
+ 116, 157, 80, 25, 236, 105, 98, 116, 49, 79, 25, 50, 80, 227, 134, 98,
+ 116, 50, 79, 25, 49, 80, 227, 134, 98, 116, 80, 157, 25, 236, 106, 237,
+ 49, 98, 116, 112, 79, 25, 121, 236, 106, 227, 134, 98, 116, 121, 79, 25,
+ 112, 236, 106, 227, 134, 98, 116, 80, 79, 25, 236, 106, 227, 134, 98,
+ 116, 49, 112, 79, 25, 50, 121, 227, 134, 98, 116, 50, 112, 79, 25, 49,
+ 121, 227, 134, 98, 116, 49, 121, 79, 25, 50, 112, 227, 134, 98, 116, 50,
+ 121, 79, 25, 49, 112, 227, 134, 98, 116, 121, 157, 25, 112, 236, 106,
+ 237, 49, 98, 116, 112, 157, 25, 121, 236, 106, 237, 49, 98, 116, 50, 157,
+ 25, 49, 80, 237, 49, 98, 116, 49, 157, 25, 50, 80, 237, 49, 98, 116, 79,
+ 80, 25, 236, 105, 98, 116, 157, 52, 244, 145, 236, 105, 98, 116, 79, 52,
+ 244, 145, 236, 105, 98, 116, 157, 52, 244, 145, 206, 38, 98, 116, 79, 52,
+ 244, 145, 206, 38, 98, 116, 52, 236, 105, 98, 116, 52, 206, 38, 98, 116,
+ 121, 212, 120, 25, 50, 242, 78, 98, 116, 121, 52, 25, 50, 212, 119, 98,
+ 116, 52, 121, 25, 216, 16, 98, 116, 121, 212, 120, 25, 49, 242, 78, 98,
+ 116, 121, 52, 25, 49, 212, 119, 98, 116, 52, 121, 25, 227, 222, 98, 116,
+ 112, 212, 120, 25, 50, 242, 78, 98, 116, 112, 52, 25, 50, 212, 119, 98,
+ 116, 52, 112, 25, 216, 16, 98, 116, 112, 212, 120, 25, 49, 242, 78, 98,
+ 116, 112, 52, 25, 49, 212, 119, 98, 116, 52, 112, 25, 227, 222, 98, 116,
+ 80, 212, 120, 25, 50, 242, 78, 98, 116, 80, 52, 25, 50, 212, 119, 98,
+ 116, 52, 80, 25, 216, 16, 98, 116, 80, 212, 120, 25, 49, 242, 78, 98,
+ 116, 80, 52, 25, 49, 212, 119, 98, 116, 52, 80, 25, 227, 222, 98, 116,
+ 121, 212, 120, 25, 236, 106, 242, 78, 98, 116, 121, 52, 25, 236, 106,
+ 212, 119, 98, 116, 52, 121, 25, 236, 105, 98, 116, 112, 212, 120, 25,
+ 236, 106, 242, 78, 98, 116, 112, 52, 25, 236, 106, 212, 119, 98, 116, 52,
+ 112, 25, 236, 105, 98, 116, 80, 212, 120, 25, 236, 106, 242, 78, 98, 116,
+ 80, 52, 25, 236, 106, 212, 119, 98, 116, 52, 80, 25, 236, 105, 98, 116,
+ 157, 250, 129, 121, 25, 216, 16, 98, 116, 157, 250, 129, 121, 25, 227,
+ 222, 98, 116, 157, 250, 129, 112, 25, 227, 222, 98, 116, 157, 250, 129,
+ 112, 25, 216, 16, 98, 116, 157, 243, 228, 206, 221, 50, 208, 173, 226,
+ 251, 227, 222, 98, 116, 157, 243, 228, 206, 221, 49, 208, 173, 226, 251,
+ 216, 16, 98, 116, 157, 243, 228, 245, 130, 98, 116, 157, 227, 222, 98,
+ 116, 157, 206, 224, 98, 116, 157, 216, 16, 98, 116, 157, 242, 70, 98,
+ 116, 79, 227, 222, 98, 116, 79, 206, 224, 98, 116, 79, 216, 16, 98, 116,
+ 79, 242, 70, 98, 116, 157, 49, 25, 79, 216, 16, 98, 116, 157, 112, 25,
+ 79, 242, 70, 98, 116, 79, 49, 25, 157, 216, 16, 98, 116, 79, 112, 25,
+ 157, 242, 70, 206, 221, 162, 248, 33, 226, 251, 118, 241, 139, 248, 33,
+ 226, 251, 118, 217, 56, 248, 33, 226, 251, 126, 241, 137, 248, 33, 226,
+ 251, 162, 248, 33, 226, 251, 239, 233, 241, 137, 248, 33, 226, 251, 126,
+ 217, 54, 248, 33, 226, 251, 213, 112, 241, 137, 248, 33, 239, 102, 248,
+ 33, 49, 213, 112, 241, 137, 248, 33, 49, 126, 217, 54, 248, 33, 49, 239,
+ 233, 241, 137, 248, 33, 49, 162, 248, 33, 49, 126, 241, 137, 248, 33, 49,
+ 118, 217, 56, 248, 33, 49, 118, 241, 139, 248, 33, 50, 162, 248, 33, 157,
+ 213, 79, 225, 10, 213, 79, 244, 150, 213, 79, 206, 221, 118, 241, 139,
+ 248, 33, 50, 118, 241, 139, 248, 33, 217, 60, 226, 251, 227, 222, 217,
+ 60, 226, 251, 216, 16, 217, 60, 206, 221, 227, 222, 217, 60, 206, 221,
+ 49, 25, 226, 251, 49, 25, 226, 251, 216, 16, 217, 60, 206, 221, 49, 25,
+ 226, 251, 216, 16, 217, 60, 206, 221, 49, 25, 206, 221, 50, 25, 226, 251,
+ 227, 222, 217, 60, 206, 221, 49, 25, 206, 221, 50, 25, 226, 251, 216, 16,
+ 217, 60, 206, 221, 216, 16, 217, 60, 206, 221, 50, 25, 226, 251, 227,
+ 222, 217, 60, 206, 221, 50, 25, 226, 251, 49, 25, 226, 251, 216, 16, 62,
+ 211, 177, 61, 211, 177, 61, 51, 3, 215, 189, 245, 164, 61, 51, 245, 195,
+ 62, 5, 211, 177, 51, 3, 236, 106, 240, 9, 51, 3, 80, 240, 9, 51, 3, 219,
+ 229, 245, 125, 240, 9, 51, 3, 206, 221, 49, 208, 173, 226, 251, 50, 240,
+ 9, 51, 3, 206, 221, 50, 208, 173, 226, 251, 49, 240, 9, 51, 3, 243, 228,
+ 245, 125, 240, 9, 62, 5, 211, 177, 61, 5, 211, 177, 62, 216, 143, 61,
+ 216, 143, 62, 80, 216, 143, 61, 80, 216, 143, 62, 219, 80, 61, 219, 80,
+ 62, 206, 223, 208, 85, 61, 206, 223, 208, 85, 62, 206, 223, 5, 208, 85,
+ 61, 206, 223, 5, 208, 85, 62, 216, 11, 208, 85, 61, 216, 11, 208, 85, 62,
+ 216, 11, 5, 208, 85, 61, 216, 11, 5, 208, 85, 62, 216, 11, 218, 60, 61,
+ 216, 11, 218, 60, 62, 242, 69, 208, 85, 61, 242, 69, 208, 85, 62, 242,
+ 69, 5, 208, 85, 61, 242, 69, 5, 208, 85, 62, 227, 217, 208, 85, 61, 227,
+ 217, 208, 85, 62, 227, 217, 5, 208, 85, 61, 227, 217, 5, 208, 85, 62,
+ 227, 217, 218, 60, 61, 227, 217, 218, 60, 62, 243, 221, 61, 243, 221, 61,
+ 243, 222, 245, 195, 62, 5, 243, 221, 239, 242, 226, 246, 61, 246, 61,
+ 242, 83, 246, 61, 246, 62, 3, 80, 240, 9, 247, 173, 62, 246, 61, 246, 62,
+ 3, 49, 162, 248, 43, 246, 62, 3, 50, 162, 248, 43, 246, 62, 3, 226, 251,
+ 162, 248, 43, 246, 62, 3, 206, 221, 162, 248, 43, 246, 62, 3, 206, 221,
+ 50, 217, 60, 248, 43, 246, 62, 3, 251, 15, 247, 148, 206, 221, 49, 217,
+ 60, 248, 43, 49, 162, 62, 246, 61, 50, 162, 62, 246, 61, 230, 240, 247,
+ 177, 230, 240, 61, 246, 61, 206, 221, 162, 230, 240, 61, 246, 61, 226,
+ 251, 162, 230, 240, 61, 246, 61, 206, 221, 49, 217, 60, 246, 55, 250,
+ 128, 206, 221, 50, 217, 60, 246, 55, 250, 128, 226, 251, 50, 217, 60,
+ 246, 55, 250, 128, 226, 251, 49, 217, 60, 246, 55, 250, 128, 206, 221,
+ 162, 246, 61, 226, 251, 162, 246, 61, 62, 226, 251, 50, 208, 85, 62, 226,
+ 251, 49, 208, 85, 62, 206, 221, 49, 208, 85, 62, 206, 221, 50, 208, 85,
+ 61, 247, 177, 51, 3, 49, 162, 248, 43, 51, 3, 50, 162, 248, 43, 51, 3,
+ 206, 221, 49, 243, 228, 162, 248, 43, 51, 3, 226, 251, 50, 243, 228, 162,
+ 248, 43, 61, 51, 3, 80, 248, 55, 227, 114, 61, 206, 223, 208, 86, 3, 243,
+ 85, 206, 223, 208, 86, 3, 49, 162, 248, 43, 206, 223, 208, 86, 3, 50,
+ 162, 248, 43, 228, 8, 246, 61, 61, 51, 3, 206, 221, 49, 217, 59, 61, 51,
+ 3, 226, 251, 49, 217, 59, 61, 51, 3, 226, 251, 50, 217, 59, 61, 51, 3,
+ 206, 221, 50, 217, 59, 61, 246, 62, 3, 206, 221, 49, 217, 59, 61, 246,
+ 62, 3, 226, 251, 49, 217, 59, 61, 246, 62, 3, 226, 251, 50, 217, 59, 61,
+ 246, 62, 3, 206, 221, 50, 217, 59, 206, 221, 49, 208, 85, 206, 221, 50,
+ 208, 85, 226, 251, 49, 208, 85, 61, 225, 10, 211, 177, 62, 225, 10, 211,
+ 177, 61, 225, 10, 5, 211, 177, 62, 225, 10, 5, 211, 177, 226, 251, 50,
+ 208, 85, 62, 210, 215, 3, 216, 162, 246, 7, 207, 3, 212, 15, 245, 236,
+ 62, 211, 94, 61, 211, 94, 227, 131, 209, 17, 210, 214, 250, 78, 221, 188,
+ 244, 19, 221, 188, 245, 204, 219, 250, 62, 209, 161, 61, 209, 161, 248,
+ 248, 247, 233, 248, 248, 98, 3, 246, 168, 248, 248, 98, 3, 203, 196, 214,
+ 254, 207, 4, 3, 216, 191, 242, 48, 236, 47, 248, 102, 61, 212, 237, 218,
+ 159, 62, 212, 237, 218, 159, 213, 68, 216, 73, 215, 198, 239, 201, 237,
+ 56, 247, 177, 62, 49, 218, 59, 231, 35, 62, 50, 218, 59, 231, 35, 61, 49,
+ 218, 59, 231, 35, 61, 112, 218, 59, 231, 35, 61, 50, 218, 59, 231, 35,
+ 61, 121, 218, 59, 231, 35, 212, 63, 25, 245, 129, 247, 11, 54, 216, 203,
+ 54, 248, 62, 54, 247, 83, 250, 208, 219, 230, 245, 130, 246, 143, 216,
+ 59, 245, 131, 76, 227, 9, 245, 131, 76, 230, 151, 211, 95, 25, 245, 138,
+ 240, 75, 97, 251, 115, 213, 70, 237, 131, 25, 212, 159, 219, 33, 97, 203,
+ 1, 203, 76, 208, 75, 35, 237, 51, 208, 75, 35, 228, 33, 208, 75, 35, 239,
+ 249, 208, 75, 35, 209, 18, 208, 75, 35, 204, 16, 208, 75, 35, 204, 80,
+ 208, 75, 35, 224, 12, 208, 75, 35, 241, 179, 204, 37, 76, 243, 249, 61,
+ 239, 114, 240, 102, 61, 212, 30, 240, 102, 62, 212, 30, 240, 102, 61,
+ 210, 215, 3, 216, 162, 239, 245, 217, 56, 224, 29, 228, 1, 217, 56, 224,
+ 29, 224, 234, 240, 43, 54, 241, 179, 225, 127, 54, 230, 69, 214, 218,
+ 206, 205, 222, 224, 218, 73, 250, 114, 209, 205, 238, 178, 247, 57, 227,
+ 184, 205, 202, 227, 145, 214, 187, 215, 20, 247, 43, 250, 145, 218, 108,
+ 61, 246, 150, 229, 81, 61, 246, 150, 217, 48, 61, 246, 150, 215, 206, 61,
+ 246, 150, 248, 54, 61, 246, 150, 229, 31, 61, 246, 150, 219, 45, 62, 246,
+ 150, 229, 81, 62, 246, 150, 217, 48, 62, 246, 150, 215, 206, 62, 246,
+ 150, 248, 54, 62, 246, 150, 229, 31, 62, 246, 150, 219, 45, 62, 211, 226,
+ 210, 227, 61, 237, 56, 210, 227, 61, 243, 222, 210, 227, 62, 246, 5, 210,
+ 227, 61, 211, 226, 210, 227, 62, 237, 56, 210, 227, 62, 243, 222, 210,
+ 227, 61, 246, 5, 210, 227, 236, 47, 211, 182, 217, 56, 221, 160, 241,
+ 139, 221, 160, 248, 158, 241, 139, 221, 155, 248, 158, 212, 81, 221, 155,
+ 223, 195, 239, 217, 54, 223, 195, 223, 66, 54, 223, 195, 213, 57, 54,
+ 204, 46, 210, 89, 245, 130, 241, 176, 210, 89, 245, 130, 206, 233, 216,
+ 139, 97, 216, 139, 16, 35, 207, 120, 218, 90, 216, 139, 16, 35, 207, 118,
+ 218, 90, 216, 139, 16, 35, 207, 117, 218, 90, 216, 139, 16, 35, 207, 115,
+ 218, 90, 216, 139, 16, 35, 207, 113, 218, 90, 216, 139, 16, 35, 207, 111,
+ 218, 90, 216, 139, 16, 35, 207, 109, 218, 90, 216, 139, 16, 35, 238, 176,
+ 225, 70, 62, 206, 233, 216, 139, 97, 216, 140, 219, 95, 97, 219, 68, 219,
+ 95, 97, 218, 238, 219, 95, 54, 204, 35, 97, 243, 214, 240, 101, 243, 214,
+ 240, 100, 243, 214, 240, 99, 243, 214, 240, 98, 243, 214, 240, 97, 243,
+ 214, 240, 96, 61, 246, 62, 3, 70, 216, 16, 61, 246, 62, 3, 120, 243, 83,
+ 62, 246, 62, 3, 61, 70, 216, 16, 62, 246, 62, 3, 120, 61, 243, 83, 224,
+ 45, 35, 203, 76, 224, 45, 35, 203, 0, 243, 195, 35, 237, 248, 203, 76,
+ 243, 195, 35, 227, 177, 203, 0, 243, 195, 35, 227, 177, 203, 76, 243,
+ 195, 35, 237, 248, 203, 0, 61, 239, 225, 62, 239, 225, 237, 131, 25, 218,
+ 163, 250, 228, 245, 128, 210, 154, 211, 103, 76, 251, 92, 214, 203, 251,
+ 29, 239, 197, 238, 187, 211, 103, 76, 237, 26, 250, 42, 97, 239, 213,
+ 219, 207, 61, 211, 94, 126, 227, 109, 245, 181, 216, 16, 126, 227, 109,
+ 245, 181, 227, 222, 204, 91, 54, 138, 205, 179, 54, 242, 75, 240, 43, 54,
+ 242, 75, 225, 127, 54, 230, 250, 240, 43, 25, 225, 127, 54, 225, 127, 25,
+ 240, 43, 54, 225, 127, 3, 211, 32, 54, 225, 127, 3, 211, 32, 25, 225,
+ 127, 25, 240, 43, 54, 80, 225, 127, 3, 211, 32, 54, 236, 106, 225, 127,
+ 3, 211, 32, 54, 225, 10, 61, 246, 61, 225, 10, 62, 246, 61, 225, 10, 5,
+ 61, 246, 61, 225, 86, 97, 243, 135, 97, 206, 230, 219, 67, 97, 245, 247,
+ 239, 97, 206, 201, 222, 217, 246, 203, 219, 137, 230, 75, 205, 240, 246,
+ 123, 62, 224, 30, 227, 128, 213, 101, 213, 140, 217, 38, 213, 120, 212,
+ 10, 248, 251, 248, 217, 103, 229, 151, 61, 242, 58, 225, 122, 61, 242,
+ 58, 229, 81, 62, 242, 58, 225, 122, 62, 242, 58, 229, 81, 212, 16, 204,
+ 3, 212, 19, 210, 215, 248, 135, 246, 7, 216, 190, 62, 212, 15, 209, 19,
+ 246, 8, 25, 216, 190, 207, 174, 61, 212, 237, 218, 159, 207, 174, 62,
+ 212, 237, 218, 159, 61, 243, 222, 231, 50, 211, 177, 245, 124, 228, 15,
+ 243, 162, 247, 39, 219, 253, 218, 163, 247, 40, 212, 48, 237, 36, 3, 61,
+ 245, 130, 43, 245, 124, 228, 15, 246, 195, 221, 192, 241, 62, 250, 255,
+ 220, 26, 49, 204, 66, 208, 113, 62, 207, 131, 49, 204, 66, 208, 113, 61,
+ 207, 131, 49, 204, 66, 208, 113, 62, 49, 228, 16, 224, 233, 61, 49, 228,
+ 16, 224, 233, 242, 53, 212, 40, 54, 79, 61, 242, 69, 208, 85, 49, 246,
+ 16, 241, 62, 103, 214, 254, 240, 84, 243, 228, 231, 50, 61, 246, 62, 231,
+ 50, 62, 211, 177, 62, 208, 50, 216, 84, 49, 241, 61, 216, 84, 49, 241,
+ 60, 250, 54, 16, 35, 206, 205, 79, 246, 62, 3, 211, 32, 25, 120, 187, 55,
+ 218, 254, 216, 13, 230, 252, 218, 254, 227, 219, 230, 252, 218, 254, 230,
+ 239, 218, 254, 62, 245, 131, 220, 32, 213, 8, 212, 252, 212, 203, 246,
+ 90, 247, 19, 236, 231, 212, 89, 238, 188, 204, 3, 236, 23, 238, 188, 3,
+ 237, 101, 225, 107, 16, 35, 227, 133, 224, 12, 207, 4, 220, 32, 237, 239,
+ 239, 148, 239, 226, 231, 50, 236, 126, 240, 34, 215, 15, 51, 239, 147,
+ 245, 164, 212, 66, 235, 163, 212, 69, 218, 230, 3, 248, 251, 209, 144,
+ 230, 169, 248, 236, 97, 237, 59, 237, 250, 97, 239, 105, 217, 180, 245,
+ 100, 220, 32, 62, 211, 177, 61, 239, 226, 3, 236, 106, 101, 62, 211, 33,
+ 62, 215, 25, 214, 190, 206, 221, 248, 38, 214, 190, 62, 214, 190, 226,
+ 251, 248, 38, 214, 190, 61, 214, 190, 61, 79, 246, 169, 82, 209, 162,
+ 227, 47, 54, 209, 221, 242, 52, 251, 52, 241, 57, 216, 188, 239, 238,
+ 216, 188, 237, 123, 205, 228, 237, 123, 203, 220, 237, 123, 226, 251, 50,
+ 219, 8, 219, 8, 206, 221, 50, 219, 8, 61, 222, 97, 62, 222, 97, 246, 169,
+ 82, 79, 246, 169, 82, 223, 224, 203, 196, 79, 223, 224, 203, 196, 248,
+ 248, 203, 196, 79, 248, 248, 203, 196, 219, 207, 30, 245, 130, 79, 30,
+ 245, 130, 171, 246, 218, 245, 130, 79, 171, 246, 218, 245, 130, 8, 245,
+ 130, 213, 77, 61, 8, 245, 130, 219, 207, 8, 245, 130, 225, 124, 245, 130,
+ 211, 95, 76, 244, 137, 239, 147, 209, 180, 250, 59, 239, 147, 248, 249,
+ 250, 59, 79, 239, 147, 248, 249, 250, 59, 239, 147, 246, 3, 250, 59, 62,
+ 239, 147, 218, 61, 211, 94, 61, 239, 147, 218, 61, 211, 94, 211, 221,
+ 211, 42, 219, 207, 61, 211, 94, 43, 61, 211, 94, 171, 246, 218, 62, 211,
+ 94, 62, 246, 218, 61, 211, 94, 219, 207, 62, 211, 94, 79, 219, 207, 62,
+ 211, 94, 218, 118, 211, 94, 213, 77, 61, 211, 94, 79, 250, 59, 171, 246,
+ 218, 250, 59, 241, 143, 211, 191, 250, 59, 241, 143, 218, 61, 62, 211,
+ 94, 241, 143, 218, 61, 218, 118, 211, 94, 212, 88, 218, 61, 62, 211, 94,
+ 241, 143, 218, 61, 216, 141, 62, 211, 94, 79, 241, 143, 218, 61, 216,
+ 141, 62, 211, 94, 207, 155, 218, 61, 62, 211, 94, 212, 83, 218, 61, 250,
+ 59, 209, 180, 250, 59, 171, 246, 218, 209, 180, 250, 59, 79, 209, 180,
+ 250, 59, 212, 88, 218, 218, 62, 25, 61, 239, 200, 62, 239, 200, 61, 239,
+ 200, 241, 143, 218, 218, 219, 207, 62, 239, 200, 43, 171, 246, 218, 241,
+ 143, 218, 61, 211, 94, 79, 209, 180, 218, 118, 250, 59, 212, 17, 208,
+ 244, 208, 78, 212, 17, 79, 246, 146, 212, 17, 211, 223, 79, 211, 223,
+ 248, 249, 250, 59, 241, 143, 209, 180, 217, 213, 250, 59, 79, 241, 143,
+ 209, 180, 217, 213, 250, 59, 245, 131, 82, 213, 77, 61, 246, 61, 182,
+ 103, 245, 131, 82, 226, 251, 50, 242, 50, 61, 211, 177, 206, 221, 50,
+ 242, 50, 61, 211, 177, 226, 251, 50, 213, 77, 61, 211, 177, 206, 221, 50,
+ 213, 77, 61, 211, 177, 62, 217, 47, 131, 219, 233, 61, 217, 47, 131, 219,
+ 233, 61, 240, 212, 131, 219, 233, 62, 243, 222, 224, 103, 61, 203, 196,
+ 79, 240, 212, 131, 97, 157, 80, 142, 225, 10, 80, 142, 79, 80, 142, 79,
+ 212, 120, 207, 174, 245, 234, 217, 31, 131, 219, 233, 79, 212, 120, 245,
+ 234, 217, 31, 131, 219, 233, 79, 52, 207, 174, 245, 234, 217, 31, 131,
+ 219, 233, 79, 52, 245, 234, 217, 31, 131, 219, 233, 79, 124, 212, 120,
+ 245, 234, 217, 31, 131, 219, 233, 79, 124, 52, 245, 234, 217, 31, 131,
+ 219, 233, 245, 86, 211, 78, 219, 89, 2, 219, 233, 79, 240, 212, 131, 219,
+ 233, 79, 237, 56, 240, 212, 131, 219, 233, 79, 62, 237, 55, 215, 198, 79,
+ 62, 237, 56, 247, 177, 239, 201, 237, 55, 215, 198, 239, 201, 237, 56,
+ 247, 177, 225, 10, 49, 219, 77, 219, 233, 225, 10, 50, 219, 77, 219, 233,
+ 225, 10, 239, 214, 49, 219, 77, 219, 233, 225, 10, 239, 214, 50, 219, 77,
+ 219, 233, 225, 10, 227, 217, 250, 218, 247, 227, 219, 233, 225, 10, 216,
+ 11, 250, 218, 247, 227, 219, 233, 79, 227, 217, 250, 218, 217, 31, 131,
+ 219, 233, 79, 216, 11, 250, 218, 217, 31, 131, 219, 233, 79, 227, 217,
+ 250, 218, 247, 227, 219, 233, 79, 216, 11, 250, 218, 247, 227, 219, 233,
+ 157, 49, 208, 133, 213, 33, 247, 227, 219, 233, 157, 50, 208, 133, 213,
+ 33, 247, 227, 219, 233, 225, 10, 49, 245, 93, 247, 227, 219, 233, 225,
+ 10, 50, 245, 93, 247, 227, 219, 233, 243, 174, 182, 43, 17, 105, 243,
+ 174, 182, 43, 17, 108, 243, 174, 182, 43, 17, 147, 243, 174, 182, 43, 17,
+ 149, 243, 174, 182, 43, 17, 170, 243, 174, 182, 43, 17, 195, 243, 174,
+ 182, 43, 17, 213, 111, 243, 174, 182, 43, 17, 199, 243, 174, 182, 43, 17,
+ 222, 63, 243, 174, 182, 43, 42, 209, 152, 243, 174, 43, 41, 17, 105, 243,
+ 174, 43, 41, 17, 108, 243, 174, 43, 41, 17, 147, 243, 174, 43, 41, 17,
+ 149, 243, 174, 43, 41, 17, 170, 243, 174, 43, 41, 17, 195, 243, 174, 43,
+ 41, 17, 213, 111, 243, 174, 43, 41, 17, 199, 243, 174, 43, 41, 17, 222,
+ 63, 243, 174, 43, 41, 42, 209, 152, 243, 174, 182, 43, 41, 17, 105, 243,
+ 174, 182, 43, 41, 17, 108, 243, 174, 182, 43, 41, 17, 147, 243, 174, 182,
+ 43, 41, 17, 149, 243, 174, 182, 43, 41, 17, 170, 243, 174, 182, 43, 41,
+ 17, 195, 243, 174, 182, 43, 41, 17, 213, 111, 243, 174, 182, 43, 41, 17,
+ 199, 243, 174, 182, 43, 41, 17, 222, 63, 243, 174, 182, 43, 41, 42, 209,
+ 152, 79, 204, 26, 86, 47, 79, 91, 54, 79, 224, 103, 54, 79, 243, 137, 54,
+ 79, 211, 238, 241, 176, 47, 79, 86, 47, 79, 153, 241, 176, 47, 242, 63,
+ 218, 63, 86, 47, 79, 215, 190, 86, 47, 208, 84, 86, 47, 79, 208, 84, 86,
+ 47, 244, 143, 208, 84, 86, 47, 79, 244, 143, 208, 84, 86, 47, 62, 86, 47,
+ 209, 31, 208, 143, 86, 250, 94, 209, 31, 247, 246, 86, 250, 94, 62, 86,
+ 250, 94, 79, 62, 245, 86, 183, 25, 86, 47, 79, 62, 245, 86, 177, 25, 86,
+ 47, 211, 174, 62, 86, 47, 79, 245, 217, 62, 86, 47, 216, 10, 61, 86, 47,
+ 227, 216, 61, 86, 47, 249, 24, 213, 77, 61, 86, 47, 239, 117, 213, 77,
+ 61, 86, 47, 79, 226, 251, 216, 9, 61, 86, 47, 79, 206, 221, 216, 9, 61,
+ 86, 47, 221, 162, 226, 251, 216, 9, 61, 86, 47, 245, 93, 227, 14, 221,
+ 162, 206, 221, 216, 9, 61, 86, 47, 43, 79, 61, 86, 47, 204, 32, 86, 47,
+ 248, 42, 211, 238, 241, 176, 47, 248, 42, 86, 47, 248, 42, 153, 241, 176,
+ 47, 79, 248, 42, 211, 238, 241, 176, 47, 79, 248, 42, 86, 47, 79, 248,
+ 42, 153, 241, 176, 47, 209, 182, 86, 47, 79, 209, 181, 86, 47, 204, 56,
+ 86, 47, 79, 204, 56, 86, 47, 220, 3, 86, 47, 52, 245, 93, 227, 14, 126,
+ 243, 184, 250, 217, 61, 208, 86, 245, 195, 5, 61, 208, 85, 218, 233, 171,
+ 210, 244, 171, 210, 197, 49, 215, 93, 249, 11, 244, 43, 50, 215, 93, 249,
+ 11, 244, 43, 219, 245, 3, 70, 231, 6, 216, 74, 212, 1, 217, 248, 210,
+ 244, 210, 198, 217, 248, 212, 0, 80, 248, 231, 3, 236, 106, 95, 13, 215,
+ 245, 243, 227, 163, 243, 136, 13, 240, 84, 243, 227, 103, 227, 37, 250,
+ 226, 103, 227, 37, 219, 244, 61, 243, 222, 3, 246, 216, 243, 85, 25, 3,
+ 243, 85, 241, 115, 76, 220, 1, 206, 212, 226, 251, 50, 245, 166, 3, 243,
+ 85, 206, 221, 49, 245, 166, 3, 243, 85, 49, 219, 209, 230, 99, 50, 219,
+ 209, 230, 99, 239, 102, 219, 209, 230, 99, 228, 8, 112, 210, 3, 228, 8,
+ 121, 210, 3, 49, 25, 50, 52, 207, 173, 49, 25, 50, 210, 3, 49, 223, 228,
+ 163, 50, 210, 3, 163, 49, 210, 3, 112, 210, 4, 3, 246, 62, 55, 226, 247,
+ 243, 142, 247, 137, 236, 106, 215, 135, 61, 245, 216, 243, 221, 61, 245,
+ 216, 243, 222, 3, 96, 208, 254, 61, 245, 216, 243, 222, 3, 86, 208, 254,
+ 61, 51, 3, 96, 208, 254, 61, 51, 3, 86, 208, 254, 13, 49, 61, 51, 155,
+ 13, 50, 61, 51, 155, 13, 49, 250, 218, 155, 13, 50, 250, 218, 155, 13,
+ 49, 52, 250, 218, 155, 13, 50, 52, 250, 218, 155, 13, 49, 61, 208, 133,
+ 213, 33, 155, 13, 50, 61, 208, 133, 213, 33, 155, 13, 49, 239, 214, 219,
+ 76, 13, 50, 239, 214, 219, 76, 177, 217, 58, 47, 183, 217, 58, 47, 250,
+ 194, 238, 226, 246, 62, 47, 246, 18, 238, 226, 246, 62, 47, 50, 53, 3,
+ 43, 218, 76, 163, 96, 47, 163, 86, 47, 163, 49, 50, 47, 163, 96, 52, 47,
+ 163, 86, 52, 47, 163, 49, 50, 52, 47, 163, 96, 53, 239, 120, 142, 163,
+ 86, 53, 239, 120, 142, 163, 96, 52, 53, 239, 120, 142, 163, 86, 52, 53,
+ 239, 120, 142, 163, 86, 211, 171, 47, 58, 59, 248, 36, 58, 59, 243, 82,
+ 58, 59, 242, 210, 58, 59, 243, 81, 58, 59, 242, 146, 58, 59, 243, 17, 58,
+ 59, 242, 209, 58, 59, 243, 80, 58, 59, 242, 114, 58, 59, 242, 241, 58,
+ 59, 242, 177, 58, 59, 243, 48, 58, 59, 242, 145, 58, 59, 243, 16, 58, 59,
+ 242, 208, 58, 59, 243, 79, 58, 59, 242, 98, 58, 59, 242, 225, 58, 59,
+ 242, 161, 58, 59, 243, 32, 58, 59, 242, 129, 58, 59, 243, 0, 58, 59, 242,
+ 192, 58, 59, 243, 63, 58, 59, 242, 113, 58, 59, 242, 240, 58, 59, 242,
+ 176, 58, 59, 243, 47, 58, 59, 242, 144, 58, 59, 243, 15, 58, 59, 242,
+ 207, 58, 59, 243, 78, 58, 59, 242, 90, 58, 59, 242, 217, 58, 59, 242,
+ 153, 58, 59, 243, 24, 58, 59, 242, 121, 58, 59, 242, 248, 58, 59, 242,
+ 184, 58, 59, 243, 55, 58, 59, 242, 105, 58, 59, 242, 232, 58, 59, 242,
+ 168, 58, 59, 243, 39, 58, 59, 242, 136, 58, 59, 243, 7, 58, 59, 242, 199,
+ 58, 59, 243, 70, 58, 59, 242, 97, 58, 59, 242, 224, 58, 59, 242, 160, 58,
+ 59, 243, 31, 58, 59, 242, 128, 58, 59, 242, 255, 58, 59, 242, 191, 58,
+ 59, 243, 62, 58, 59, 242, 112, 58, 59, 242, 239, 58, 59, 242, 175, 58,
+ 59, 243, 46, 58, 59, 242, 143, 58, 59, 243, 14, 58, 59, 242, 206, 58, 59,
+ 243, 77, 58, 59, 242, 86, 58, 59, 242, 213, 58, 59, 242, 149, 58, 59,
+ 243, 20, 58, 59, 242, 117, 58, 59, 242, 244, 58, 59, 242, 180, 58, 59,
+ 243, 51, 58, 59, 242, 101, 58, 59, 242, 228, 58, 59, 242, 164, 58, 59,
+ 243, 35, 58, 59, 242, 132, 58, 59, 243, 3, 58, 59, 242, 195, 58, 59, 243,
+ 66, 58, 59, 242, 93, 58, 59, 242, 220, 58, 59, 242, 156, 58, 59, 243, 27,
+ 58, 59, 242, 124, 58, 59, 242, 251, 58, 59, 242, 187, 58, 59, 243, 58,
+ 58, 59, 242, 108, 58, 59, 242, 235, 58, 59, 242, 171, 58, 59, 243, 42,
+ 58, 59, 242, 139, 58, 59, 243, 10, 58, 59, 242, 202, 58, 59, 243, 73, 58,
+ 59, 242, 89, 58, 59, 242, 216, 58, 59, 242, 152, 58, 59, 243, 23, 58, 59,
+ 242, 120, 58, 59, 242, 247, 58, 59, 242, 183, 58, 59, 243, 54, 58, 59,
+ 242, 104, 58, 59, 242, 231, 58, 59, 242, 167, 58, 59, 243, 38, 58, 59,
+ 242, 135, 58, 59, 243, 6, 58, 59, 242, 198, 58, 59, 243, 69, 58, 59, 242,
+ 96, 58, 59, 242, 223, 58, 59, 242, 159, 58, 59, 243, 30, 58, 59, 242,
+ 127, 58, 59, 242, 254, 58, 59, 242, 190, 58, 59, 243, 61, 58, 59, 242,
+ 111, 58, 59, 242, 238, 58, 59, 242, 174, 58, 59, 243, 45, 58, 59, 242,
+ 142, 58, 59, 243, 13, 58, 59, 242, 205, 58, 59, 243, 76, 58, 59, 242, 84,
+ 58, 59, 242, 211, 58, 59, 242, 147, 58, 59, 243, 18, 58, 59, 242, 115,
+ 58, 59, 242, 242, 58, 59, 242, 178, 58, 59, 243, 49, 58, 59, 242, 99, 58,
+ 59, 242, 226, 58, 59, 242, 162, 58, 59, 243, 33, 58, 59, 242, 130, 58,
+ 59, 243, 1, 58, 59, 242, 193, 58, 59, 243, 64, 58, 59, 242, 91, 58, 59,
+ 242, 218, 58, 59, 242, 154, 58, 59, 243, 25, 58, 59, 242, 122, 58, 59,
+ 242, 249, 58, 59, 242, 185, 58, 59, 243, 56, 58, 59, 242, 106, 58, 59,
+ 242, 233, 58, 59, 242, 169, 58, 59, 243, 40, 58, 59, 242, 137, 58, 59,
+ 243, 8, 58, 59, 242, 200, 58, 59, 243, 71, 58, 59, 242, 87, 58, 59, 242,
+ 214, 58, 59, 242, 150, 58, 59, 243, 21, 58, 59, 242, 118, 58, 59, 242,
+ 245, 58, 59, 242, 181, 58, 59, 243, 52, 58, 59, 242, 102, 58, 59, 242,
+ 229, 58, 59, 242, 165, 58, 59, 243, 36, 58, 59, 242, 133, 58, 59, 243, 4,
+ 58, 59, 242, 196, 58, 59, 243, 67, 58, 59, 242, 94, 58, 59, 242, 221, 58,
+ 59, 242, 157, 58, 59, 243, 28, 58, 59, 242, 125, 58, 59, 242, 252, 58,
+ 59, 242, 188, 58, 59, 243, 59, 58, 59, 242, 109, 58, 59, 242, 236, 58,
+ 59, 242, 172, 58, 59, 243, 43, 58, 59, 242, 140, 58, 59, 243, 11, 58, 59,
+ 242, 203, 58, 59, 243, 74, 58, 59, 242, 85, 58, 59, 242, 212, 58, 59,
+ 242, 148, 58, 59, 243, 19, 58, 59, 242, 116, 58, 59, 242, 243, 58, 59,
+ 242, 179, 58, 59, 243, 50, 58, 59, 242, 100, 58, 59, 242, 227, 58, 59,
+ 242, 163, 58, 59, 243, 34, 58, 59, 242, 131, 58, 59, 243, 2, 58, 59, 242,
+ 194, 58, 59, 243, 65, 58, 59, 242, 92, 58, 59, 242, 219, 58, 59, 242,
+ 155, 58, 59, 243, 26, 58, 59, 242, 123, 58, 59, 242, 250, 58, 59, 242,
+ 186, 58, 59, 243, 57, 58, 59, 242, 107, 58, 59, 242, 234, 58, 59, 242,
+ 170, 58, 59, 243, 41, 58, 59, 242, 138, 58, 59, 243, 9, 58, 59, 242, 201,
+ 58, 59, 243, 72, 58, 59, 242, 88, 58, 59, 242, 215, 58, 59, 242, 151, 58,
+ 59, 243, 22, 58, 59, 242, 119, 58, 59, 242, 246, 58, 59, 242, 182, 58,
+ 59, 243, 53, 58, 59, 242, 103, 58, 59, 242, 230, 58, 59, 242, 166, 58,
+ 59, 243, 37, 58, 59, 242, 134, 58, 59, 243, 5, 58, 59, 242, 197, 58, 59,
+ 243, 68, 58, 59, 242, 95, 58, 59, 242, 222, 58, 59, 242, 158, 58, 59,
+ 243, 29, 58, 59, 242, 126, 58, 59, 242, 253, 58, 59, 242, 189, 58, 59,
+ 243, 60, 58, 59, 242, 110, 58, 59, 242, 237, 58, 59, 242, 173, 58, 59,
+ 243, 44, 58, 59, 242, 141, 58, 59, 243, 12, 58, 59, 242, 204, 58, 59,
+ 243, 75, 86, 207, 134, 53, 3, 80, 95, 86, 207, 134, 53, 3, 52, 80, 95,
+ 96, 52, 53, 3, 80, 95, 86, 52, 53, 3, 80, 95, 49, 50, 52, 53, 3, 80, 95,
+ 86, 207, 134, 53, 239, 120, 142, 96, 52, 53, 239, 120, 142, 86, 52, 53,
+ 239, 120, 142, 183, 53, 3, 236, 106, 95, 177, 53, 3, 236, 106, 95, 177,
+ 208, 70, 47, 183, 208, 70, 47, 96, 52, 244, 145, 47, 86, 52, 244, 145,
+ 47, 96, 208, 70, 244, 145, 47, 86, 208, 70, 244, 145, 47, 86, 207, 134,
+ 208, 70, 244, 145, 47, 86, 53, 3, 242, 83, 211, 77, 177, 53, 208, 173,
+ 142, 183, 53, 208, 173, 142, 86, 53, 3, 209, 249, 3, 80, 95, 86, 53, 3,
+ 209, 249, 3, 52, 80, 95, 86, 207, 134, 53, 3, 209, 248, 86, 207, 134, 53,
+ 3, 209, 249, 3, 80, 95, 86, 207, 134, 53, 3, 209, 249, 3, 52, 80, 95, 96,
+ 250, 96, 86, 250, 96, 96, 52, 250, 96, 86, 52, 250, 96, 96, 53, 208, 173,
+ 62, 243, 221, 86, 53, 208, 173, 62, 243, 221, 96, 53, 239, 120, 248, 231,
+ 208, 173, 62, 243, 221, 86, 53, 239, 120, 248, 231, 208, 173, 62, 243,
+ 221, 153, 204, 46, 25, 211, 238, 241, 176, 47, 153, 241, 176, 25, 211,
+ 238, 204, 46, 47, 153, 204, 46, 53, 3, 113, 153, 241, 176, 53, 3, 113,
+ 211, 238, 241, 176, 53, 3, 113, 211, 238, 204, 46, 53, 3, 113, 153, 204,
+ 46, 53, 25, 153, 241, 176, 47, 153, 241, 176, 53, 25, 211, 238, 241, 176,
+ 47, 211, 238, 241, 176, 53, 25, 211, 238, 204, 46, 47, 211, 238, 204, 46,
+ 53, 25, 153, 204, 46, 47, 215, 245, 243, 228, 245, 124, 240, 84, 243,
+ 227, 240, 84, 243, 228, 245, 124, 215, 245, 243, 227, 211, 238, 241, 176,
+ 53, 245, 124, 153, 241, 176, 47, 153, 241, 176, 53, 245, 124, 211, 238,
+ 241, 176, 47, 240, 84, 243, 228, 245, 124, 153, 241, 176, 47, 215, 245,
+ 243, 228, 245, 124, 211, 238, 241, 176, 47, 153, 241, 176, 53, 245, 124,
+ 153, 204, 46, 47, 153, 204, 46, 53, 245, 124, 153, 241, 176, 47, 204, 76,
+ 53, 218, 59, 243, 164, 216, 16, 53, 218, 59, 86, 209, 84, 245, 84, 206,
+ 212, 53, 218, 59, 86, 209, 84, 245, 84, 242, 68, 53, 218, 59, 183, 209,
+ 84, 245, 84, 227, 212, 53, 218, 59, 183, 209, 84, 245, 84, 216, 5, 216,
+ 8, 250, 129, 246, 18, 47, 227, 215, 250, 129, 250, 194, 47, 208, 145,
+ 250, 129, 250, 194, 47, 247, 248, 250, 129, 250, 194, 47, 208, 145, 250,
+ 129, 246, 18, 53, 3, 224, 102, 208, 145, 250, 129, 250, 194, 53, 3, 218,
+ 76, 226, 251, 50, 213, 145, 246, 18, 47, 226, 251, 49, 213, 145, 250,
+ 194, 47, 250, 194, 246, 16, 246, 62, 47, 246, 18, 246, 16, 246, 62, 47,
+ 86, 53, 87, 212, 228, 96, 47, 96, 53, 87, 212, 228, 86, 47, 212, 228, 86,
+ 53, 87, 96, 47, 86, 53, 3, 91, 56, 96, 53, 3, 91, 56, 86, 53, 209, 25,
+ 203, 196, 49, 50, 53, 209, 25, 5, 246, 61, 177, 207, 134, 53, 239, 120,
+ 5, 246, 61, 49, 150, 112, 50, 150, 121, 237, 86, 49, 150, 121, 50, 150,
+ 112, 237, 86, 112, 150, 50, 121, 150, 49, 237, 86, 112, 150, 49, 121,
+ 150, 50, 237, 86, 49, 150, 112, 50, 150, 112, 237, 86, 112, 150, 50, 121,
+ 150, 50, 237, 86, 49, 150, 121, 50, 150, 121, 237, 86, 112, 150, 49, 121,
+ 150, 49, 237, 86, 96, 237, 87, 3, 150, 112, 208, 173, 142, 86, 237, 87,
+ 3, 150, 112, 208, 173, 142, 177, 237, 87, 3, 150, 50, 208, 173, 142, 183,
+ 237, 87, 3, 150, 50, 208, 173, 142, 96, 237, 87, 3, 150, 121, 208, 173,
+ 142, 86, 237, 87, 3, 150, 121, 208, 173, 142, 177, 237, 87, 3, 150, 49,
+ 208, 173, 142, 183, 237, 87, 3, 150, 49, 208, 173, 142, 96, 237, 87, 3,
+ 150, 112, 239, 120, 142, 86, 237, 87, 3, 150, 112, 239, 120, 142, 177,
+ 237, 87, 3, 150, 50, 239, 120, 142, 183, 237, 87, 3, 150, 50, 239, 120,
+ 142, 96, 237, 87, 3, 150, 121, 239, 120, 142, 86, 237, 87, 3, 150, 121,
+ 239, 120, 142, 177, 237, 87, 3, 150, 49, 239, 120, 142, 183, 237, 87, 3,
+ 150, 49, 239, 120, 142, 96, 237, 87, 3, 150, 112, 87, 96, 237, 87, 3,
+ 150, 242, 70, 177, 237, 87, 3, 150, 49, 248, 110, 177, 237, 87, 3, 150,
+ 216, 16, 86, 237, 87, 3, 150, 112, 87, 86, 237, 87, 3, 150, 242, 70, 183,
+ 237, 87, 3, 150, 49, 248, 110, 183, 237, 87, 3, 150, 216, 16, 96, 237,
+ 87, 3, 150, 112, 87, 86, 237, 87, 3, 150, 206, 224, 96, 237, 87, 3, 150,
+ 121, 87, 86, 237, 87, 3, 150, 242, 70, 86, 237, 87, 3, 150, 112, 87, 96,
+ 237, 87, 3, 150, 206, 224, 86, 237, 87, 3, 150, 121, 87, 96, 237, 87, 3,
+ 150, 242, 70, 96, 237, 87, 3, 150, 112, 87, 163, 244, 144, 96, 237, 87,
+ 3, 150, 121, 248, 126, 163, 244, 144, 86, 237, 87, 3, 150, 112, 87, 163,
+ 244, 144, 86, 237, 87, 3, 150, 121, 248, 126, 163, 244, 144, 177, 237,
+ 87, 3, 150, 49, 248, 110, 183, 237, 87, 3, 150, 216, 16, 183, 237, 87, 3,
+ 150, 49, 248, 110, 177, 237, 87, 3, 150, 216, 16, 50, 52, 53, 3, 215,
+ 189, 237, 64, 241, 35, 2, 87, 86, 47, 208, 228, 219, 255, 87, 86, 47, 96,
+ 53, 87, 208, 228, 219, 254, 86, 53, 87, 208, 228, 219, 254, 86, 53, 87,
+ 251, 7, 156, 135, 227, 179, 87, 96, 47, 96, 53, 209, 25, 227, 178, 237,
+ 247, 87, 86, 47, 210, 245, 87, 86, 47, 96, 53, 209, 25, 210, 244, 210,
+ 198, 87, 96, 47, 49, 239, 244, 209, 248, 50, 239, 244, 209, 248, 112,
+ 239, 244, 209, 248, 121, 239, 244, 209, 248, 208, 70, 80, 248, 231, 244,
+ 43, 202, 160, 221, 164, 211, 188, 202, 160, 221, 164, 207, 121, 245, 242,
+ 49, 61, 245, 93, 155, 50, 61, 245, 93, 155, 49, 61, 219, 76, 50, 61, 219,
+ 76, 202, 160, 221, 164, 49, 231, 65, 155, 202, 160, 221, 164, 50, 231,
+ 65, 155, 202, 160, 221, 164, 49, 248, 65, 155, 202, 160, 221, 164, 50,
+ 248, 65, 155, 49, 51, 247, 227, 3, 206, 246, 50, 51, 247, 227, 3, 206,
+ 246, 49, 51, 247, 227, 3, 208, 255, 231, 50, 208, 145, 245, 165, 50, 51,
+ 247, 227, 3, 208, 255, 231, 50, 247, 248, 245, 165, 49, 51, 247, 227, 3,
+ 208, 255, 231, 50, 247, 248, 245, 165, 50, 51, 247, 227, 3, 208, 255,
+ 231, 50, 208, 145, 245, 165, 49, 250, 218, 247, 227, 3, 243, 85, 50, 250,
+ 218, 247, 227, 3, 243, 85, 49, 250, 129, 227, 179, 155, 50, 250, 129,
+ 237, 247, 155, 52, 49, 250, 129, 237, 247, 155, 52, 50, 250, 129, 227,
+ 179, 155, 49, 62, 208, 133, 213, 33, 155, 50, 62, 208, 133, 213, 33, 155,
+ 242, 83, 240, 40, 80, 202, 30, 227, 114, 225, 17, 250, 218, 220, 1, 227,
+ 222, 50, 250, 218, 206, 69, 3, 211, 177, 225, 17, 50, 250, 218, 3, 243,
+ 85, 250, 218, 3, 215, 94, 231, 6, 251, 126, 250, 217, 211, 208, 250, 218,
+ 220, 1, 227, 222, 211, 208, 250, 218, 220, 1, 206, 224, 207, 174, 250,
+ 217, 216, 73, 250, 217, 250, 218, 3, 206, 246, 216, 73, 250, 218, 3, 206,
+ 246, 220, 89, 250, 218, 220, 1, 206, 224, 220, 89, 250, 218, 220, 1, 242,
+ 70, 225, 17, 250, 218, 3, 171, 250, 107, 241, 81, 231, 50, 53, 218, 59,
+ 112, 25, 216, 16, 225, 17, 250, 218, 3, 171, 250, 107, 241, 81, 231, 50,
+ 53, 218, 59, 112, 25, 227, 222, 225, 17, 250, 218, 3, 171, 250, 107, 241,
+ 81, 231, 50, 53, 218, 59, 121, 25, 216, 16, 225, 17, 250, 218, 3, 171,
+ 250, 107, 241, 81, 231, 50, 53, 218, 59, 121, 25, 227, 222, 225, 17, 250,
+ 218, 3, 171, 250, 107, 241, 81, 231, 50, 53, 218, 59, 50, 25, 206, 224,
+ 225, 17, 250, 218, 3, 171, 250, 107, 241, 81, 231, 50, 53, 218, 59, 49,
+ 25, 206, 224, 225, 17, 250, 218, 3, 171, 250, 107, 241, 81, 231, 50, 53,
+ 218, 59, 50, 25, 242, 70, 225, 17, 250, 218, 3, 171, 250, 107, 241, 81,
+ 231, 50, 53, 218, 59, 49, 25, 242, 70, 216, 73, 241, 94, 213, 117, 241,
+ 94, 213, 118, 3, 219, 203, 241, 94, 213, 118, 3, 5, 246, 62, 55, 241, 94,
+ 213, 118, 3, 50, 53, 55, 241, 94, 213, 118, 3, 49, 53, 55, 246, 62, 3,
+ 236, 106, 142, 43, 80, 142, 43, 219, 81, 43, 216, 74, 212, 0, 43, 218,
+ 233, 246, 62, 243, 142, 247, 137, 236, 106, 248, 231, 25, 208, 145, 162,
+ 243, 142, 247, 137, 80, 142, 246, 62, 3, 210, 200, 203, 196, 43, 250,
+ 192, 243, 137, 54, 112, 53, 209, 25, 246, 61, 43, 61, 247, 177, 43, 247,
+ 177, 43, 227, 178, 43, 237, 246, 246, 62, 3, 5, 246, 62, 208, 173, 209,
+ 93, 216, 16, 246, 62, 3, 120, 236, 106, 211, 20, 208, 173, 209, 93, 216,
+ 16, 103, 215, 245, 243, 228, 212, 57, 103, 240, 84, 243, 228, 212, 57,
+ 103, 250, 59, 103, 5, 246, 61, 103, 211, 177, 120, 230, 98, 211, 175,
+ 208, 86, 3, 70, 55, 208, 86, 3, 206, 246, 215, 94, 231, 50, 208, 85, 208,
+ 86, 3, 213, 124, 250, 50, 247, 247, 50, 208, 86, 87, 49, 208, 85, 49,
+ 208, 86, 248, 110, 80, 142, 80, 248, 231, 248, 110, 50, 208, 85, 247,
+ 235, 3, 49, 162, 248, 43, 247, 235, 3, 50, 162, 248, 43, 62, 247, 234,
+ 23, 3, 49, 162, 248, 43, 23, 3, 50, 162, 248, 43, 61, 236, 40, 62, 236,
+ 40, 49, 204, 21, 240, 40, 50, 204, 21, 240, 40, 49, 52, 204, 21, 240, 40,
+ 50, 52, 204, 21, 240, 40, 231, 42, 231, 27, 208, 251, 115, 231, 27, 231,
+ 28, 222, 234, 3, 80, 142, 242, 77, 223, 228, 51, 3, 245, 187, 219, 208,
+ 231, 39, 250, 81, 212, 193, 217, 224, 241, 35, 2, 25, 212, 59, 219, 81,
+ 241, 35, 2, 25, 212, 59, 219, 82, 3, 208, 228, 55, 235, 154, 208, 173,
+ 25, 212, 59, 219, 81, 238, 48, 211, 93, 209, 81, 242, 69, 208, 86, 3, 49,
+ 162, 248, 43, 242, 69, 208, 86, 3, 50, 162, 248, 43, 62, 243, 222, 3,
+ 121, 47, 62, 226, 246, 61, 246, 62, 3, 121, 47, 62, 246, 62, 3, 121, 47,
+ 241, 20, 61, 211, 177, 241, 20, 62, 211, 177, 241, 20, 61, 243, 221, 241,
+ 20, 62, 243, 221, 241, 20, 61, 246, 61, 241, 20, 62, 246, 61, 215, 134,
+ 216, 74, 212, 1, 219, 254, 212, 1, 3, 219, 203, 216, 74, 212, 1, 3, 236,
+ 106, 95, 248, 73, 212, 0, 248, 73, 216, 74, 212, 0, 52, 218, 76, 208, 70,
+ 218, 76, 227, 217, 245, 86, 250, 218, 155, 216, 11, 245, 86, 250, 218,
+ 155, 208, 212, 224, 100, 223, 162, 43, 70, 219, 254, 223, 162, 43, 91,
+ 219, 254, 223, 162, 43, 23, 219, 254, 223, 162, 206, 238, 219, 255, 3,
+ 243, 85, 223, 162, 206, 238, 219, 255, 3, 218, 76, 223, 162, 51, 230,
+ 245, 219, 254, 223, 162, 51, 206, 238, 219, 254, 120, 227, 37, 25, 219,
+ 254, 120, 227, 37, 219, 245, 219, 254, 223, 162, 23, 219, 254, 224, 58,
+ 120, 210, 220, 210, 218, 3, 231, 2, 217, 58, 231, 3, 219, 254, 239, 252,
+ 219, 71, 231, 2, 231, 3, 3, 52, 95, 231, 3, 250, 15, 3, 212, 57, 246, 54,
+ 239, 99, 250, 194, 231, 0, 227, 115, 231, 1, 3, 216, 142, 219, 52, 250,
+ 104, 218, 53, 227, 115, 231, 1, 3, 213, 145, 219, 52, 250, 104, 218, 53,
+ 227, 115, 231, 1, 221, 166, 231, 44, 209, 93, 218, 53, 231, 3, 250, 104,
+ 34, 218, 63, 219, 254, 217, 52, 231, 3, 219, 254, 231, 3, 3, 96, 53, 3,
+ 113, 231, 3, 3, 23, 54, 231, 3, 3, 230, 244, 231, 3, 3, 206, 237, 231, 3,
+ 3, 219, 203, 231, 3, 3, 206, 246, 230, 99, 228, 8, 49, 208, 86, 219, 254,
+ 202, 160, 221, 164, 214, 198, 245, 223, 202, 160, 221, 164, 214, 198,
+ 218, 114, 202, 160, 221, 164, 214, 198, 217, 219, 91, 2, 3, 5, 246, 62,
+ 55, 91, 2, 3, 246, 53, 251, 139, 55, 91, 2, 3, 208, 228, 55, 91, 2, 3,
+ 70, 56, 91, 2, 3, 208, 228, 56, 91, 2, 3, 210, 246, 108, 91, 2, 3, 62,
+ 208, 85, 224, 103, 2, 3, 245, 234, 55, 224, 103, 2, 3, 70, 56, 224, 103,
+ 2, 3, 240, 84, 243, 83, 224, 103, 2, 3, 215, 245, 243, 83, 91, 2, 231,
+ 50, 49, 162, 246, 61, 91, 2, 231, 50, 50, 162, 246, 61, 206, 54, 219,
+ 245, 245, 131, 217, 224, 223, 224, 2, 3, 70, 55, 223, 224, 2, 3, 206,
+ 246, 213, 142, 217, 225, 3, 247, 248, 246, 15, 212, 34, 217, 224, 223,
+ 224, 2, 231, 50, 49, 162, 246, 61, 223, 224, 2, 231, 50, 50, 162, 246,
+ 61, 43, 223, 224, 2, 3, 246, 53, 251, 138, 223, 224, 2, 231, 50, 52, 246,
+ 61, 43, 243, 137, 54, 91, 2, 231, 50, 208, 85, 224, 103, 2, 231, 50, 208,
+ 85, 223, 224, 2, 231, 50, 208, 85, 230, 253, 217, 224, 216, 6, 230, 253,
+ 217, 224, 202, 160, 221, 164, 216, 116, 245, 223, 250, 245, 219, 245,
+ 245, 171, 230, 245, 3, 243, 85, 206, 238, 3, 224, 103, 54, 206, 238, 3,
+ 219, 203, 230, 245, 3, 219, 203, 230, 245, 3, 227, 37, 250, 226, 206,
+ 238, 3, 227, 37, 219, 244, 206, 238, 87, 230, 244, 230, 245, 87, 206,
+ 237, 206, 238, 87, 248, 231, 87, 230, 244, 230, 245, 87, 248, 231, 87,
+ 206, 237, 206, 238, 248, 110, 25, 230, 98, 3, 206, 237, 230, 245, 248,
+ 110, 25, 230, 98, 3, 230, 244, 246, 16, 206, 238, 3, 213, 123, 246, 16,
+ 230, 245, 3, 213, 123, 52, 51, 230, 244, 52, 51, 206, 237, 246, 16, 206,
+ 238, 3, 213, 124, 25, 212, 34, 217, 224, 227, 37, 25, 3, 70, 55, 227, 37,
+ 219, 245, 3, 70, 55, 52, 227, 37, 250, 226, 52, 227, 37, 219, 244, 120,
+ 230, 246, 227, 37, 250, 226, 120, 230, 246, 227, 37, 219, 244, 212, 43,
+ 228, 8, 219, 244, 212, 43, 228, 8, 250, 226, 227, 37, 219, 245, 219, 200,
+ 227, 37, 250, 226, 227, 37, 25, 3, 101, 211, 77, 227, 37, 219, 245, 3,
+ 101, 211, 77, 227, 37, 25, 3, 236, 106, 244, 144, 227, 37, 219, 245, 3,
+ 236, 106, 244, 144, 227, 37, 25, 3, 52, 219, 203, 227, 37, 25, 3, 206,
+ 246, 227, 37, 25, 3, 52, 206, 246, 5, 206, 51, 3, 206, 246, 227, 37, 219,
+ 245, 3, 52, 219, 203, 227, 37, 219, 245, 3, 52, 206, 246, 202, 160, 221,
+ 164, 243, 94, 250, 184, 202, 160, 221, 164, 216, 179, 250, 184, 241, 35,
+ 2, 3, 70, 56, 235, 154, 3, 70, 55, 208, 70, 236, 106, 248, 231, 3, 52,
+ 80, 95, 208, 70, 236, 106, 248, 231, 3, 208, 70, 80, 95, 208, 228, 219,
+ 255, 3, 70, 55, 208, 228, 219, 255, 3, 215, 245, 243, 83, 212, 129, 224,
+ 103, 212, 128, 245, 210, 3, 70, 55, 241, 35, 3, 250, 59, 251, 7, 156,
+ 208, 173, 3, 246, 53, 251, 138, 250, 151, 156, 219, 245, 156, 135, 241,
+ 35, 2, 87, 91, 54, 91, 2, 87, 241, 35, 54, 241, 35, 2, 87, 208, 228, 219,
+ 254, 52, 245, 243, 241, 36, 120, 245, 203, 241, 35, 212, 143, 126, 245,
+ 203, 241, 35, 212, 143, 241, 35, 2, 3, 120, 187, 87, 25, 120, 187, 56,
+ 241, 30, 3, 239, 147, 187, 55, 227, 179, 3, 246, 62, 231, 6, 237, 247, 3,
+ 246, 62, 231, 6, 227, 179, 3, 217, 47, 131, 55, 237, 247, 3, 217, 47,
+ 131, 55, 227, 179, 219, 245, 212, 59, 156, 135, 237, 247, 219, 245, 212,
+ 59, 156, 135, 227, 179, 219, 245, 212, 59, 156, 208, 173, 3, 70, 231, 6,
+ 237, 247, 219, 245, 212, 59, 156, 208, 173, 3, 70, 231, 6, 227, 179, 219,
+ 245, 212, 59, 156, 208, 173, 3, 70, 55, 237, 247, 219, 245, 212, 59, 156,
+ 208, 173, 3, 70, 55, 227, 179, 219, 245, 212, 59, 156, 208, 173, 3, 70,
+ 87, 216, 16, 237, 247, 219, 245, 212, 59, 156, 208, 173, 3, 70, 87, 227,
+ 222, 227, 179, 219, 245, 250, 152, 237, 247, 219, 245, 250, 152, 227,
+ 179, 25, 212, 118, 221, 166, 156, 135, 237, 247, 25, 212, 118, 221, 166,
+ 156, 135, 227, 179, 25, 221, 166, 250, 152, 237, 247, 25, 221, 166, 250,
+ 152, 227, 179, 87, 242, 76, 156, 87, 237, 246, 237, 247, 87, 242, 76,
+ 156, 87, 227, 178, 227, 179, 87, 212, 129, 219, 245, 241, 36, 237, 247,
+ 87, 212, 129, 219, 245, 241, 36, 227, 179, 87, 212, 129, 87, 237, 246,
+ 237, 247, 87, 212, 129, 87, 227, 178, 227, 179, 87, 237, 247, 87, 242,
+ 76, 241, 36, 237, 247, 87, 227, 179, 87, 242, 76, 241, 36, 227, 179, 87,
+ 212, 59, 156, 87, 237, 247, 87, 212, 59, 241, 36, 237, 247, 87, 212, 59,
+ 156, 87, 227, 179, 87, 212, 59, 241, 36, 212, 59, 156, 208, 173, 219,
+ 245, 227, 178, 212, 59, 156, 208, 173, 219, 245, 237, 246, 212, 59, 156,
+ 208, 173, 219, 245, 227, 179, 3, 70, 231, 6, 212, 59, 156, 208, 173, 219,
+ 245, 237, 247, 3, 70, 231, 6, 242, 76, 156, 208, 173, 219, 245, 227, 178,
+ 242, 76, 156, 208, 173, 219, 245, 237, 246, 242, 76, 212, 59, 156, 208,
+ 173, 219, 245, 227, 178, 242, 76, 212, 59, 156, 208, 173, 219, 245, 237,
+ 246, 212, 129, 219, 245, 227, 178, 212, 129, 219, 245, 237, 246, 212,
+ 129, 87, 227, 179, 87, 241, 35, 54, 212, 129, 87, 237, 247, 87, 241, 35,
+ 54, 52, 222, 221, 227, 178, 52, 222, 221, 237, 246, 52, 222, 221, 227,
+ 179, 3, 206, 246, 237, 247, 219, 200, 227, 178, 237, 247, 248, 110, 227,
+ 178, 227, 179, 246, 16, 247, 137, 245, 87, 237, 247, 246, 16, 247, 137,
+ 245, 87, 227, 179, 246, 16, 247, 137, 245, 88, 87, 212, 59, 241, 36, 237,
+ 247, 246, 16, 247, 137, 245, 88, 87, 212, 59, 241, 36, 212, 35, 209, 97,
+ 228, 6, 209, 97, 212, 35, 209, 98, 219, 245, 156, 135, 228, 6, 209, 98,
+ 219, 245, 156, 135, 241, 35, 2, 3, 247, 170, 55, 217, 250, 87, 212, 118,
+ 241, 35, 54, 210, 237, 87, 212, 118, 241, 35, 54, 217, 250, 87, 212, 118,
+ 221, 166, 156, 135, 210, 237, 87, 212, 118, 221, 166, 156, 135, 217, 250,
+ 87, 241, 35, 54, 210, 237, 87, 241, 35, 54, 217, 250, 87, 221, 166, 156,
+ 135, 210, 237, 87, 221, 166, 156, 135, 217, 250, 87, 251, 7, 156, 135,
+ 210, 237, 87, 251, 7, 156, 135, 217, 250, 87, 221, 166, 251, 7, 156, 135,
+ 210, 237, 87, 221, 166, 251, 7, 156, 135, 52, 217, 249, 52, 210, 236,
+ 210, 245, 3, 243, 85, 210, 198, 3, 243, 85, 210, 245, 3, 91, 2, 56, 210,
+ 198, 3, 91, 2, 56, 210, 245, 3, 223, 224, 2, 56, 210, 198, 3, 223, 224,
+ 2, 56, 210, 245, 76, 219, 245, 156, 208, 173, 3, 70, 55, 210, 198, 76,
+ 219, 245, 156, 208, 173, 3, 70, 55, 210, 245, 76, 87, 241, 35, 54, 210,
+ 198, 76, 87, 241, 35, 54, 210, 245, 76, 87, 208, 228, 219, 254, 210, 198,
+ 76, 87, 208, 228, 219, 254, 210, 245, 76, 87, 251, 7, 156, 135, 210, 198,
+ 76, 87, 251, 7, 156, 135, 210, 245, 76, 87, 221, 166, 156, 135, 210, 198,
+ 76, 87, 221, 166, 156, 135, 51, 49, 171, 98, 219, 254, 51, 50, 171, 98,
+ 219, 254, 246, 16, 210, 244, 246, 16, 210, 197, 246, 16, 210, 245, 219,
+ 245, 156, 135, 246, 16, 210, 198, 219, 245, 156, 135, 210, 245, 87, 210,
+ 197, 210, 198, 87, 210, 244, 210, 245, 87, 210, 244, 210, 198, 87, 210,
+ 197, 210, 198, 248, 110, 210, 244, 210, 198, 248, 110, 25, 230, 98, 247,
+ 137, 244, 145, 3, 210, 244, 241, 115, 76, 220, 1, 242, 68, 218, 104, 3,
+ 209, 177, 208, 144, 208, 102, 230, 244, 239, 160, 221, 181, 212, 228, 49,
+ 210, 3, 212, 228, 121, 210, 3, 212, 228, 112, 210, 3, 218, 234, 3, 194,
+ 80, 248, 231, 208, 70, 50, 207, 173, 52, 80, 248, 231, 49, 207, 173, 80,
+ 248, 231, 52, 49, 207, 173, 52, 80, 248, 231, 52, 49, 207, 173, 163, 244,
+ 145, 239, 120, 49, 224, 245, 76, 52, 206, 38, 212, 228, 121, 210, 4, 3,
+ 219, 203, 212, 228, 112, 210, 4, 3, 206, 246, 212, 228, 112, 210, 4, 87,
+ 212, 228, 121, 210, 3, 52, 121, 210, 3, 52, 112, 210, 3, 52, 211, 32,
+ 221, 166, 54, 216, 73, 52, 211, 32, 221, 166, 54, 243, 104, 221, 166,
+ 243, 144, 3, 216, 73, 222, 233, 212, 57, 80, 227, 115, 3, 246, 62, 55,
+ 80, 227, 115, 3, 246, 62, 56, 121, 210, 4, 3, 246, 62, 56, 219, 82, 3,
+ 236, 106, 95, 219, 82, 3, 208, 228, 219, 254, 208, 70, 80, 248, 231, 248,
+ 67, 216, 117, 208, 70, 80, 248, 231, 3, 236, 106, 95, 208, 70, 245, 243,
+ 219, 254, 208, 70, 222, 221, 227, 178, 208, 70, 222, 221, 237, 246, 242,
+ 76, 212, 59, 227, 179, 219, 245, 156, 135, 242, 76, 212, 59, 237, 247,
+ 219, 245, 156, 135, 208, 70, 212, 1, 248, 67, 216, 117, 228, 8, 208, 70,
+ 80, 248, 231, 219, 254, 52, 212, 1, 219, 254, 61, 80, 142, 223, 162, 61,
+ 80, 142, 153, 241, 176, 61, 47, 153, 204, 46, 61, 47, 211, 238, 241, 176,
+ 61, 47, 211, 238, 204, 46, 61, 47, 49, 50, 61, 47, 96, 62, 47, 177, 62,
+ 47, 183, 62, 47, 153, 241, 176, 62, 47, 153, 204, 46, 62, 47, 211, 238,
+ 241, 176, 62, 47, 211, 238, 204, 46, 62, 47, 49, 50, 62, 47, 112, 121,
+ 62, 47, 86, 53, 3, 208, 211, 242, 68, 86, 53, 3, 208, 211, 206, 212, 96,
+ 53, 3, 208, 211, 242, 68, 96, 53, 3, 208, 211, 206, 212, 51, 3, 208, 145,
+ 162, 248, 43, 51, 3, 247, 248, 162, 248, 43, 51, 3, 206, 221, 50, 243,
+ 228, 162, 248, 43, 51, 3, 226, 251, 49, 243, 228, 162, 248, 43, 243, 222,
+ 3, 49, 162, 248, 43, 243, 222, 3, 50, 162, 248, 43, 243, 222, 3, 208,
+ 145, 162, 248, 43, 243, 222, 3, 247, 248, 162, 248, 43, 242, 83, 211,
+ 177, 62, 228, 8, 211, 177, 61, 228, 8, 211, 177, 62, 205, 242, 5, 211,
+ 177, 61, 205, 242, 5, 211, 177, 62, 218, 255, 61, 218, 255, 61, 237, 17,
+ 62, 237, 17, 236, 106, 62, 237, 17, 62, 228, 8, 246, 61, 62, 225, 10,
+ 243, 221, 61, 225, 10, 243, 221, 62, 225, 10, 226, 246, 61, 225, 10, 226,
+ 246, 62, 5, 243, 221, 62, 5, 226, 246, 61, 5, 226, 246, 62, 236, 106,
+ 241, 109, 61, 236, 106, 241, 109, 62, 80, 241, 109, 61, 80, 241, 109, 49,
+ 53, 3, 5, 246, 61, 126, 96, 250, 91, 49, 53, 3, 43, 218, 76, 163, 96,
+ 211, 171, 47, 96, 207, 134, 53, 3, 80, 95, 96, 207, 134, 53, 3, 52, 80,
+ 95, 96, 207, 134, 53, 239, 120, 142, 96, 207, 134, 208, 70, 244, 145, 47,
+ 96, 53, 3, 242, 83, 211, 77, 96, 53, 3, 209, 249, 3, 80, 95, 96, 53, 3,
+ 209, 249, 3, 52, 80, 95, 96, 207, 134, 53, 3, 209, 248, 96, 207, 134, 53,
+ 3, 209, 249, 3, 80, 95, 96, 207, 134, 53, 3, 209, 249, 3, 52, 80, 95, 96,
+ 53, 209, 25, 203, 196, 204, 76, 53, 218, 59, 243, 164, 227, 222, 241, 35,
+ 2, 87, 96, 47, 216, 74, 208, 228, 219, 255, 87, 96, 47, 96, 53, 87, 216,
+ 74, 251, 7, 156, 135, 86, 53, 209, 25, 237, 246, 86, 53, 209, 25, 210,
+ 197, 96, 217, 58, 47, 86, 217, 58, 47, 216, 74, 208, 228, 219, 255, 87,
+ 86, 47, 86, 53, 87, 216, 74, 251, 7, 156, 135, 208, 228, 219, 255, 87,
+ 96, 47, 96, 53, 87, 251, 7, 156, 135, 96, 53, 87, 216, 74, 208, 228, 219,
+ 254, 86, 53, 87, 216, 74, 208, 228, 219, 254, 183, 208, 84, 202, 30, 47,
+ 212, 228, 212, 59, 153, 47, 212, 228, 249, 22, 211, 238, 47, 61, 225, 10,
+ 211, 94, 62, 5, 211, 94, 61, 5, 211, 94, 62, 216, 11, 218, 255, 61, 216,
+ 11, 218, 255, 79, 228, 8, 246, 61, 79, 219, 205, 3, 219, 205, 231, 6, 79,
+ 246, 62, 3, 246, 62, 231, 6, 79, 246, 61, 79, 43, 214, 254, 212, 59, 153,
+ 53, 3, 236, 115, 237, 64, 249, 22, 211, 238, 53, 3, 236, 115, 209, 248,
+ 212, 59, 153, 53, 3, 236, 106, 209, 248, 249, 22, 211, 238, 53, 3, 236,
+ 106, 209, 248, 248, 118, 53, 218, 59, 183, 209, 84, 153, 241, 175, 212,
+ 228, 248, 118, 53, 218, 59, 183, 209, 84, 153, 241, 175, 96, 208, 84, 47,
+ 177, 208, 84, 47, 86, 208, 84, 47, 183, 208, 84, 47, 49, 50, 208, 84, 47,
+ 112, 121, 208, 84, 47, 153, 204, 46, 208, 84, 47, 153, 241, 176, 208, 84,
+ 47, 211, 238, 241, 176, 208, 84, 47, 211, 238, 204, 46, 208, 84, 47, 96,
+ 208, 84, 244, 143, 47, 177, 208, 84, 244, 143, 47, 86, 208, 84, 244, 143,
+ 47, 183, 208, 84, 244, 143, 47, 246, 18, 208, 84, 171, 246, 62, 47, 250,
+ 194, 208, 84, 171, 246, 62, 47, 96, 208, 84, 53, 208, 173, 142, 177, 208,
+ 84, 53, 208, 173, 142, 86, 208, 84, 53, 208, 173, 142, 183, 208, 84, 53,
+ 208, 173, 142, 153, 204, 46, 208, 84, 53, 208, 173, 142, 153, 241, 176,
+ 208, 84, 53, 208, 173, 142, 211, 238, 241, 176, 208, 84, 53, 208, 173,
+ 142, 211, 238, 204, 46, 208, 84, 53, 208, 173, 142, 96, 208, 84, 53, 3,
+ 52, 236, 106, 95, 177, 208, 84, 53, 3, 52, 236, 106, 95, 86, 208, 84, 53,
+ 3, 52, 236, 106, 95, 183, 208, 84, 53, 3, 52, 236, 106, 95, 236, 106,
+ 210, 11, 229, 151, 80, 210, 11, 229, 151, 96, 208, 84, 53, 115, 86, 208,
+ 84, 47, 177, 208, 84, 53, 96, 76, 183, 208, 84, 47, 86, 208, 84, 53, 115,
+ 96, 208, 84, 47, 183, 208, 84, 53, 96, 76, 177, 208, 84, 47, 96, 208, 84,
+ 219, 146, 250, 91, 177, 208, 84, 219, 146, 250, 91, 86, 208, 84, 219,
+ 146, 250, 91, 183, 208, 84, 219, 146, 250, 91, 96, 62, 43, 61, 47, 177,
+ 62, 43, 61, 47, 86, 62, 43, 61, 47, 183, 62, 43, 61, 47, 250, 194, 208,
+ 84, 50, 207, 92, 47, 250, 194, 208, 84, 247, 248, 207, 92, 47, 250, 194,
+ 208, 84, 49, 207, 92, 47, 250, 194, 208, 84, 208, 145, 207, 92, 47, 216,
+ 78, 227, 222, 216, 78, 216, 16, 222, 212, 227, 222, 222, 212, 216, 16,
+ 239, 147, 245, 166, 250, 92, 246, 57, 250, 193, 86, 62, 47, 209, 31, 208,
+ 143, 96, 241, 31, 250, 94, 209, 31, 216, 12, 177, 241, 31, 250, 94, 209,
+ 31, 208, 143, 86, 241, 31, 250, 94, 209, 31, 227, 218, 183, 241, 31, 250,
+ 94, 62, 96, 241, 31, 250, 94, 62, 177, 241, 31, 250, 94, 62, 86, 241, 31,
+ 250, 94, 62, 183, 241, 31, 250, 94, 183, 208, 84, 53, 3, 163, 208, 211,
+ 227, 212, 183, 208, 84, 53, 3, 163, 208, 211, 216, 5, 177, 208, 84, 53,
+ 3, 163, 208, 211, 227, 212, 177, 208, 84, 53, 3, 163, 208, 211, 216, 5,
+ 96, 208, 84, 53, 3, 163, 208, 211, 206, 212, 86, 208, 84, 53, 3, 163,
+ 208, 211, 206, 212, 96, 208, 84, 53, 3, 163, 208, 211, 242, 68, 86, 208,
+ 84, 53, 3, 163, 208, 211, 242, 68, 62, 245, 86, 183, 25, 96, 47, 62, 245,
+ 86, 183, 25, 86, 47, 62, 245, 86, 177, 25, 96, 47, 62, 245, 86, 177, 25,
+ 86, 47, 62, 245, 86, 96, 25, 177, 47, 62, 245, 86, 86, 25, 177, 47, 62,
+ 245, 86, 96, 25, 183, 47, 62, 245, 86, 86, 25, 183, 47, 216, 55, 53, 121,
+ 227, 222, 216, 55, 53, 121, 216, 16, 216, 55, 53, 112, 227, 222, 216, 55,
+ 53, 112, 216, 16, 216, 55, 53, 49, 206, 224, 216, 55, 53, 50, 206, 224,
+ 216, 55, 53, 49, 242, 70, 216, 55, 53, 50, 242, 70, 177, 61, 53, 239,
+ 120, 248, 231, 3, 236, 106, 142, 112, 250, 95, 231, 50, 34, 216, 144,
+ 247, 233, 248, 248, 98, 3, 157, 203, 196, 43, 203, 196, 43, 26, 203, 196,
+ 62, 51, 246, 215, 62, 243, 222, 246, 215, 207, 174, 62, 218, 255, 236,
+ 106, 62, 220, 81, 62, 220, 81, 62, 225, 10, 206, 223, 208, 86, 246, 215,
+ 62, 225, 10, 242, 69, 208, 86, 246, 215, 62, 225, 10, 227, 217, 208, 86,
+ 246, 215, 62, 225, 10, 216, 11, 208, 86, 246, 215, 208, 145, 162, 62,
+ 246, 61, 247, 248, 162, 62, 246, 61, 157, 239, 147, 218, 61, 62, 245, 82,
+ 215, 198, 157, 239, 147, 218, 61, 62, 245, 82, 61, 239, 147, 218, 61,
+ 245, 82, 215, 198, 61, 239, 147, 218, 61, 245, 82, 51, 218, 34, 231, 31,
+ 206, 250, 54, 96, 207, 134, 53, 3, 208, 86, 250, 93, 177, 207, 134, 53,
+ 3, 208, 86, 250, 93, 86, 207, 134, 53, 3, 208, 86, 250, 93, 183, 207,
+ 134, 53, 3, 208, 86, 250, 93, 180, 6, 1, 250, 0, 180, 6, 1, 247, 181,
+ 180, 6, 1, 206, 53, 180, 6, 1, 238, 50, 180, 6, 1, 243, 108, 180, 6, 1,
+ 203, 24, 180, 6, 1, 202, 64, 180, 6, 1, 241, 250, 180, 6, 1, 202, 89,
+ 180, 6, 1, 230, 188, 180, 6, 1, 81, 230, 188, 180, 6, 1, 75, 180, 6, 1,
+ 243, 128, 180, 6, 1, 230, 10, 180, 6, 1, 227, 79, 180, 6, 1, 223, 167,
+ 180, 6, 1, 223, 69, 180, 6, 1, 220, 20, 180, 6, 1, 218, 56, 180, 6, 1,
+ 215, 244, 180, 6, 1, 212, 41, 180, 6, 1, 207, 161, 180, 6, 1, 207, 10,
+ 180, 6, 1, 239, 123, 180, 6, 1, 237, 23, 180, 6, 1, 219, 217, 180, 6, 1,
+ 219, 34, 180, 6, 1, 212, 202, 180, 6, 1, 207, 255, 180, 6, 1, 246, 104,
+ 180, 6, 1, 213, 90, 180, 6, 1, 203, 30, 180, 6, 1, 203, 32, 180, 6, 1,
+ 203, 64, 180, 6, 1, 211, 204, 152, 180, 6, 1, 202, 213, 180, 6, 1, 5,
+ 202, 183, 180, 6, 1, 5, 202, 184, 3, 209, 248, 180, 6, 1, 202, 247, 180,
+ 6, 1, 230, 229, 5, 202, 183, 180, 6, 1, 248, 73, 202, 183, 180, 6, 1,
+ 230, 229, 248, 73, 202, 183, 180, 6, 1, 239, 235, 180, 6, 1, 230, 186,
+ 180, 6, 1, 212, 201, 180, 6, 1, 208, 60, 63, 180, 6, 1, 227, 252, 223,
+ 167, 180, 5, 1, 250, 0, 180, 5, 1, 247, 181, 180, 5, 1, 206, 53, 180, 5,
+ 1, 238, 50, 180, 5, 1, 243, 108, 180, 5, 1, 203, 24, 180, 5, 1, 202, 64,
+ 180, 5, 1, 241, 250, 180, 5, 1, 202, 89, 180, 5, 1, 230, 188, 180, 5, 1,
+ 81, 230, 188, 180, 5, 1, 75, 180, 5, 1, 243, 128, 180, 5, 1, 230, 10,
+ 180, 5, 1, 227, 79, 180, 5, 1, 223, 167, 180, 5, 1, 223, 69, 180, 5, 1,
+ 220, 20, 180, 5, 1, 218, 56, 180, 5, 1, 215, 244, 180, 5, 1, 212, 41,
+ 180, 5, 1, 207, 161, 180, 5, 1, 207, 10, 180, 5, 1, 239, 123, 180, 5, 1,
+ 237, 23, 180, 5, 1, 219, 217, 180, 5, 1, 219, 34, 180, 5, 1, 212, 202,
+ 180, 5, 1, 207, 255, 180, 5, 1, 246, 104, 180, 5, 1, 213, 90, 180, 5, 1,
+ 203, 30, 180, 5, 1, 203, 32, 180, 5, 1, 203, 64, 180, 5, 1, 211, 204,
+ 152, 180, 5, 1, 202, 213, 180, 5, 1, 5, 202, 183, 180, 5, 1, 5, 202, 184,
+ 3, 209, 248, 180, 5, 1, 202, 247, 180, 5, 1, 230, 229, 5, 202, 183, 180,
+ 5, 1, 248, 73, 202, 183, 180, 5, 1, 230, 229, 248, 73, 202, 183, 180, 5,
+ 1, 239, 235, 180, 5, 1, 230, 186, 180, 5, 1, 212, 201, 180, 5, 1, 208,
+ 60, 63, 180, 5, 1, 227, 252, 223, 167, 8, 6, 1, 228, 131, 3, 52, 142, 8,
+ 5, 1, 228, 131, 3, 52, 142, 8, 6, 1, 228, 131, 3, 101, 208, 227, 8, 6, 1,
+ 219, 185, 3, 95, 8, 6, 1, 217, 1, 3, 209, 248, 8, 5, 1, 34, 3, 95, 8, 5,
+ 1, 210, 70, 3, 243, 228, 95, 8, 6, 1, 237, 172, 3, 244, 20, 8, 5, 1, 237,
+ 172, 3, 244, 20, 8, 6, 1, 230, 55, 3, 244, 20, 8, 5, 1, 230, 55, 3, 244,
+ 20, 8, 6, 1, 202, 160, 3, 244, 20, 8, 5, 1, 202, 160, 3, 244, 20, 8, 6,
+ 1, 251, 2, 8, 6, 1, 226, 186, 3, 113, 8, 6, 1, 207, 174, 63, 8, 6, 1,
+ 207, 174, 251, 2, 8, 5, 1, 206, 165, 3, 50, 113, 8, 6, 1, 204, 145, 3,
+ 113, 8, 5, 1, 204, 145, 3, 113, 8, 5, 1, 206, 165, 3, 245, 95, 8, 6, 1,
+ 162, 237, 171, 8, 5, 1, 162, 237, 171, 8, 5, 1, 209, 246, 218, 192, 8, 5,
+ 1, 188, 3, 221, 163, 8, 5, 1, 207, 174, 217, 1, 3, 209, 248, 8, 5, 1,
+ 158, 3, 124, 215, 253, 231, 6, 8, 1, 5, 6, 207, 174, 74, 8, 210, 246, 5,
+ 1, 230, 184, 65, 1, 6, 206, 164, 8, 6, 1, 215, 94, 3, 210, 169, 209, 248,
+ 8, 6, 1, 202, 160, 3, 210, 169, 209, 248, 84, 6, 1, 251, 24, 84, 5, 1,
+ 251, 24, 84, 6, 1, 205, 227, 84, 5, 1, 205, 227, 84, 6, 1, 238, 235, 84,
+ 5, 1, 238, 235, 84, 6, 1, 244, 180, 84, 5, 1, 244, 180, 84, 6, 1, 241,
+ 144, 84, 5, 1, 241, 144, 84, 6, 1, 211, 243, 84, 5, 1, 211, 243, 84, 6,
+ 1, 202, 99, 84, 5, 1, 202, 99, 84, 6, 1, 237, 80, 84, 5, 1, 237, 80, 84,
+ 6, 1, 209, 72, 84, 5, 1, 209, 72, 84, 6, 1, 235, 168, 84, 5, 1, 235, 168,
+ 84, 6, 1, 229, 252, 84, 5, 1, 229, 252, 84, 6, 1, 227, 248, 84, 5, 1,
+ 227, 248, 84, 6, 1, 224, 155, 84, 5, 1, 224, 155, 84, 6, 1, 222, 100, 84,
+ 5, 1, 222, 100, 84, 6, 1, 228, 225, 84, 5, 1, 228, 225, 84, 6, 1, 78, 84,
+ 5, 1, 78, 84, 6, 1, 218, 167, 84, 5, 1, 218, 167, 84, 6, 1, 215, 227, 84,
+ 5, 1, 215, 227, 84, 6, 1, 212, 132, 84, 5, 1, 212, 132, 84, 6, 1, 209,
+ 207, 84, 5, 1, 209, 207, 84, 6, 1, 207, 39, 84, 5, 1, 207, 39, 84, 6, 1,
+ 240, 26, 84, 5, 1, 240, 26, 84, 6, 1, 229, 122, 84, 5, 1, 229, 122, 84,
+ 6, 1, 217, 202, 84, 5, 1, 217, 202, 84, 6, 1, 220, 12, 84, 5, 1, 220, 12,
+ 84, 6, 1, 243, 226, 251, 30, 84, 5, 1, 243, 226, 251, 30, 84, 6, 1, 38,
+ 84, 251, 59, 84, 5, 1, 38, 84, 251, 59, 84, 6, 1, 245, 113, 241, 144, 84,
+ 5, 1, 245, 113, 241, 144, 84, 6, 1, 243, 226, 229, 252, 84, 5, 1, 243,
+ 226, 229, 252, 84, 6, 1, 243, 226, 222, 100, 84, 5, 1, 243, 226, 222,
+ 100, 84, 6, 1, 245, 113, 222, 100, 84, 5, 1, 245, 113, 222, 100, 84, 6,
+ 1, 38, 84, 220, 12, 84, 5, 1, 38, 84, 220, 12, 84, 6, 1, 214, 246, 84, 5,
+ 1, 214, 246, 84, 6, 1, 245, 128, 213, 35, 84, 5, 1, 245, 128, 213, 35,
+ 84, 6, 1, 38, 84, 213, 35, 84, 5, 1, 38, 84, 213, 35, 84, 6, 1, 38, 84,
+ 241, 7, 84, 5, 1, 38, 84, 241, 7, 84, 6, 1, 251, 43, 229, 127, 84, 5, 1,
+ 251, 43, 229, 127, 84, 6, 1, 243, 226, 236, 107, 84, 5, 1, 243, 226, 236,
+ 107, 84, 6, 1, 38, 84, 236, 107, 84, 5, 1, 38, 84, 236, 107, 84, 6, 1,
+ 38, 84, 152, 84, 5, 1, 38, 84, 152, 84, 6, 1, 228, 130, 152, 84, 5, 1,
+ 228, 130, 152, 84, 6, 1, 38, 84, 237, 42, 84, 5, 1, 38, 84, 237, 42, 84,
+ 6, 1, 38, 84, 237, 83, 84, 5, 1, 38, 84, 237, 83, 84, 6, 1, 38, 84, 238,
+ 230, 84, 5, 1, 38, 84, 238, 230, 84, 6, 1, 38, 84, 243, 131, 84, 5, 1,
+ 38, 84, 243, 131, 84, 6, 1, 38, 84, 213, 1, 84, 5, 1, 38, 84, 213, 1, 84,
+ 6, 1, 38, 221, 54, 213, 1, 84, 5, 1, 38, 221, 54, 213, 1, 84, 6, 1, 38,
+ 221, 54, 222, 151, 84, 5, 1, 38, 221, 54, 222, 151, 84, 6, 1, 38, 221,
+ 54, 220, 248, 84, 5, 1, 38, 221, 54, 220, 248, 84, 6, 1, 38, 221, 54,
+ 204, 77, 84, 5, 1, 38, 221, 54, 204, 77, 84, 16, 230, 18, 84, 16, 224,
+ 156, 215, 227, 84, 16, 218, 168, 215, 227, 84, 16, 211, 85, 84, 16, 209,
+ 208, 215, 227, 84, 16, 229, 123, 215, 227, 84, 16, 213, 2, 212, 132, 84,
+ 6, 1, 245, 113, 213, 35, 84, 5, 1, 245, 113, 213, 35, 84, 6, 1, 245, 113,
+ 238, 230, 84, 5, 1, 245, 113, 238, 230, 84, 39, 222, 101, 55, 84, 39,
+ 211, 197, 250, 67, 84, 39, 211, 197, 227, 186, 84, 6, 1, 248, 16, 229,
+ 127, 84, 5, 1, 248, 16, 229, 127, 84, 38, 221, 54, 239, 102, 211, 61, 84,
+ 38, 221, 54, 243, 167, 217, 47, 82, 84, 38, 221, 54, 231, 30, 217, 47,
+ 82, 84, 38, 221, 54, 206, 40, 243, 141, 84, 239, 138, 118, 237, 137, 84,
+ 239, 102, 211, 61, 84, 224, 25, 243, 141, 114, 5, 1, 250, 231, 114, 5, 1,
+ 248, 242, 114, 5, 1, 238, 234, 114, 5, 1, 243, 93, 114, 5, 1, 241, 92,
+ 114, 5, 1, 205, 213, 114, 5, 1, 202, 87, 114, 5, 1, 209, 230, 114, 5, 1,
+ 231, 49, 114, 5, 1, 230, 4, 114, 5, 1, 228, 2, 114, 5, 1, 225, 122, 114,
+ 5, 1, 223, 74, 114, 5, 1, 220, 31, 114, 5, 1, 219, 91, 114, 5, 1, 202,
+ 76, 114, 5, 1, 216, 202, 114, 5, 1, 214, 243, 114, 5, 1, 209, 218, 114,
+ 5, 1, 206, 255, 114, 5, 1, 218, 200, 114, 5, 1, 229, 132, 114, 5, 1, 238,
+ 110, 114, 5, 1, 217, 111, 114, 5, 1, 212, 255, 114, 5, 1, 246, 129, 114,
+ 5, 1, 247, 61, 114, 5, 1, 230, 133, 114, 5, 1, 246, 68, 114, 5, 1, 246,
+ 183, 114, 5, 1, 203, 180, 114, 5, 1, 230, 146, 114, 5, 1, 237, 154, 114,
+ 5, 1, 237, 67, 114, 5, 1, 236, 254, 114, 5, 1, 204, 62, 114, 5, 1, 237,
+ 92, 114, 5, 1, 236, 132, 114, 5, 1, 202, 249, 114, 5, 1, 251, 98, 208,
+ 247, 1, 198, 208, 247, 1, 203, 106, 208, 247, 1, 203, 105, 208, 247, 1,
+ 203, 95, 208, 247, 1, 203, 93, 208, 247, 1, 248, 112, 251, 140, 203, 88,
+ 208, 247, 1, 203, 88, 208, 247, 1, 203, 103, 208, 247, 1, 203, 100, 208,
+ 247, 1, 203, 102, 208, 247, 1, 203, 101, 208, 247, 1, 203, 15, 208, 247,
+ 1, 203, 97, 208, 247, 1, 203, 86, 208, 247, 1, 207, 200, 203, 86, 208,
+ 247, 1, 203, 83, 208, 247, 1, 203, 91, 208, 247, 1, 248, 112, 251, 140,
+ 203, 91, 208, 247, 1, 207, 200, 203, 91, 208, 247, 1, 203, 90, 208, 247,
+ 1, 203, 110, 208, 247, 1, 203, 84, 208, 247, 1, 207, 200, 203, 84, 208,
+ 247, 1, 203, 73, 208, 247, 1, 207, 200, 203, 73, 208, 247, 1, 203, 11,
+ 208, 247, 1, 203, 54, 208, 247, 1, 251, 71, 203, 54, 208, 247, 1, 207,
+ 200, 203, 54, 208, 247, 1, 203, 82, 208, 247, 1, 203, 81, 208, 247, 1,
+ 203, 78, 208, 247, 1, 207, 200, 203, 92, 208, 247, 1, 207, 200, 203, 76,
+ 208, 247, 1, 203, 74, 208, 247, 1, 202, 213, 208, 247, 1, 203, 71, 208,
+ 247, 1, 203, 70, 208, 247, 1, 203, 94, 208, 247, 1, 207, 200, 203, 94,
+ 208, 247, 1, 250, 4, 203, 94, 208, 247, 1, 203, 69, 208, 247, 1, 203, 67,
+ 208, 247, 1, 203, 68, 208, 247, 1, 203, 66, 208, 247, 1, 203, 65, 208,
+ 247, 1, 203, 104, 208, 247, 1, 203, 63, 208, 247, 1, 203, 61, 208, 247,
+ 1, 203, 60, 208, 247, 1, 203, 58, 208, 247, 1, 203, 55, 208, 247, 1, 209,
+ 199, 203, 55, 208, 247, 1, 203, 53, 208, 247, 1, 203, 52, 208, 247, 1,
+ 202, 247, 208, 247, 65, 1, 228, 103, 82, 208, 247, 213, 131, 82, 208,
+ 247, 109, 230, 96, 33, 4, 227, 48, 33, 4, 224, 81, 33, 4, 215, 225, 33,
+ 4, 212, 12, 33, 4, 212, 241, 33, 4, 248, 22, 33, 4, 208, 172, 33, 4, 245,
+ 253, 33, 4, 221, 189, 33, 4, 220, 232, 33, 4, 238, 45, 220, 97, 33, 4,
+ 202, 16, 33, 4, 243, 111, 33, 4, 244, 89, 33, 4, 230, 100, 33, 4, 209,
+ 46, 33, 4, 246, 115, 33, 4, 218, 179, 33, 4, 218, 68, 33, 4, 238, 125,
+ 33, 4, 238, 121, 33, 4, 238, 122, 33, 4, 238, 123, 33, 4, 211, 164, 33,
+ 4, 211, 119, 33, 4, 211, 132, 33, 4, 211, 163, 33, 4, 211, 137, 33, 4,
+ 211, 138, 33, 4, 211, 124, 33, 4, 247, 5, 33, 4, 246, 240, 33, 4, 246,
+ 242, 33, 4, 247, 4, 33, 4, 247, 2, 33, 4, 247, 3, 33, 4, 246, 241, 33, 4,
+ 201, 235, 33, 4, 201, 213, 33, 4, 201, 226, 33, 4, 201, 234, 33, 4, 201,
+ 229, 33, 4, 201, 230, 33, 4, 201, 218, 33, 4, 247, 0, 33, 4, 246, 243,
+ 33, 4, 246, 245, 33, 4, 246, 255, 33, 4, 246, 253, 33, 4, 246, 254, 33,
+ 4, 246, 244, 33, 4, 217, 13, 33, 4, 217, 3, 33, 4, 217, 9, 33, 4, 217,
+ 12, 33, 4, 217, 10, 33, 4, 217, 11, 33, 4, 217, 8, 33, 4, 228, 141, 33,
+ 4, 228, 133, 33, 4, 228, 136, 33, 4, 228, 140, 33, 4, 228, 137, 33, 4,
+ 228, 138, 33, 4, 228, 134, 33, 4, 203, 140, 33, 4, 203, 127, 33, 4, 203,
+ 135, 33, 4, 203, 139, 33, 4, 203, 137, 33, 4, 203, 138, 33, 4, 203, 134,
+ 33, 4, 237, 183, 33, 4, 237, 173, 33, 4, 237, 176, 33, 4, 237, 182, 33,
+ 4, 237, 178, 33, 4, 237, 179, 33, 4, 237, 175, 39, 36, 1, 248, 162, 39,
+ 36, 1, 206, 55, 39, 36, 1, 238, 105, 39, 36, 1, 244, 75, 39, 36, 1, 202,
+ 71, 39, 36, 1, 202, 92, 39, 36, 1, 173, 39, 36, 1, 241, 122, 39, 36, 1,
+ 241, 103, 39, 36, 1, 241, 92, 39, 36, 1, 78, 39, 36, 1, 219, 34, 39, 36,
+ 1, 241, 28, 39, 36, 1, 241, 17, 39, 36, 1, 209, 187, 39, 36, 1, 152, 39,
+ 36, 1, 208, 14, 39, 36, 1, 246, 170, 39, 36, 1, 213, 90, 39, 36, 1, 213,
+ 46, 39, 36, 1, 239, 235, 39, 36, 1, 241, 13, 39, 36, 1, 63, 39, 36, 1,
+ 231, 110, 39, 36, 1, 243, 129, 39, 36, 1, 224, 43, 207, 14, 39, 36, 1,
+ 203, 66, 39, 36, 1, 202, 213, 39, 36, 1, 230, 228, 63, 39, 36, 1, 227,
+ 86, 202, 183, 39, 36, 1, 248, 73, 202, 183, 39, 36, 1, 230, 228, 248, 73,
+ 202, 183, 50, 250, 218, 210, 241, 225, 88, 50, 250, 218, 242, 83, 210,
+ 241, 225, 88, 49, 210, 241, 155, 50, 210, 241, 155, 49, 242, 83, 210,
+ 241, 155, 50, 242, 83, 210, 241, 155, 216, 188, 230, 249, 225, 88, 216,
+ 188, 242, 83, 230, 249, 225, 88, 242, 83, 208, 103, 225, 88, 49, 208,
+ 103, 155, 50, 208, 103, 155, 216, 188, 211, 177, 49, 216, 188, 220, 33,
+ 155, 50, 216, 188, 220, 33, 155, 241, 162, 245, 163, 219, 87, 239, 161,
+ 219, 87, 216, 73, 239, 161, 219, 87, 235, 217, 242, 83, 220, 92, 183,
+ 250, 227, 177, 250, 227, 242, 83, 216, 11, 250, 217, 52, 220, 89, 235,
+ 220, 230, 239, 230, 247, 219, 135, 247, 223, 235, 221, 3, 243, 231, 208,
+ 228, 3, 215, 253, 55, 49, 124, 219, 79, 155, 50, 124, 219, 79, 155, 208,
+ 228, 3, 70, 55, 208, 228, 3, 70, 56, 49, 80, 248, 231, 3, 217, 41, 50,
+ 80, 248, 231, 3, 217, 41, 208, 145, 49, 162, 155, 208, 145, 50, 162, 155,
+ 247, 248, 49, 162, 155, 247, 248, 50, 162, 155, 49, 212, 154, 106, 155,
+ 50, 212, 154, 106, 155, 49, 52, 219, 76, 50, 52, 219, 76, 120, 187, 115,
+ 118, 70, 217, 178, 118, 70, 115, 120, 187, 217, 178, 103, 239, 147, 70,
+ 217, 178, 239, 233, 70, 82, 216, 73, 217, 47, 82, 80, 208, 227, 215, 253,
+ 218, 62, 203, 238, 213, 131, 101, 243, 85, 207, 174, 245, 233, 216, 188,
+ 243, 85, 216, 188, 245, 233, 207, 174, 213, 143, 244, 196, 3, 49, 237,
+ 224, 244, 196, 3, 50, 237, 224, 207, 174, 244, 195, 208, 145, 162, 214,
+ 168, 54, 207, 135, 244, 144, 209, 30, 244, 144, 211, 76, 239, 102, 211,
+ 61, 80, 212, 88, 243, 83, 204, 21, 80, 227, 114, 247, 46, 52, 235, 220,
+ 216, 73, 245, 233, 52, 226, 252, 217, 31, 82, 12, 40, 216, 100, 12, 40,
+ 246, 26, 12, 40, 214, 171, 105, 12, 40, 214, 171, 108, 12, 40, 214, 171,
+ 147, 12, 40, 218, 229, 12, 40, 247, 233, 12, 40, 210, 8, 12, 40, 229, 34,
+ 105, 12, 40, 229, 34, 108, 12, 40, 243, 138, 12, 40, 214, 175, 12, 40, 5,
+ 105, 12, 40, 5, 108, 12, 40, 228, 23, 105, 12, 40, 228, 23, 108, 12, 40,
+ 228, 23, 147, 12, 40, 228, 23, 149, 12, 40, 212, 24, 12, 40, 209, 33, 12,
+ 40, 212, 22, 105, 12, 40, 212, 22, 108, 12, 40, 237, 56, 105, 12, 40,
+ 237, 56, 108, 12, 40, 237, 123, 12, 40, 216, 178, 12, 40, 246, 112, 12,
+ 40, 210, 214, 12, 40, 224, 29, 12, 40, 244, 73, 12, 40, 224, 20, 12, 40,
+ 246, 44, 12, 40, 204, 81, 105, 12, 40, 204, 81, 108, 12, 40, 239, 249,
+ 12, 40, 219, 46, 105, 12, 40, 219, 46, 108, 12, 40, 212, 127, 162, 208,
+ 96, 208, 25, 12, 40, 245, 149, 12, 40, 243, 102, 12, 40, 230, 176, 12,
+ 40, 248, 15, 76, 246, 10, 12, 40, 240, 191, 12, 40, 211, 199, 105, 12,
+ 40, 211, 199, 108, 12, 40, 248, 244, 12, 40, 212, 134, 12, 40, 247, 122,
+ 212, 134, 12, 40, 222, 220, 105, 12, 40, 222, 220, 108, 12, 40, 222, 220,
+ 147, 12, 40, 222, 220, 149, 12, 40, 224, 227, 12, 40, 213, 37, 12, 40,
+ 216, 184, 12, 40, 240, 219, 12, 40, 220, 45, 12, 40, 247, 201, 105, 12,
+ 40, 247, 201, 108, 12, 40, 225, 15, 12, 40, 224, 24, 12, 40, 238, 1, 105,
+ 12, 40, 238, 1, 108, 12, 40, 238, 1, 147, 12, 40, 208, 245, 12, 40, 246,
+ 9, 12, 40, 204, 46, 105, 12, 40, 204, 46, 108, 12, 40, 247, 122, 214,
+ 165, 12, 40, 212, 127, 236, 53, 12, 40, 236, 53, 12, 40, 247, 122, 211,
+ 211, 12, 40, 247, 122, 213, 32, 12, 40, 239, 172, 12, 40, 247, 122, 247,
+ 23, 12, 40, 212, 127, 204, 101, 12, 40, 204, 102, 105, 12, 40, 204, 102,
+ 108, 12, 40, 246, 47, 12, 40, 247, 122, 238, 31, 12, 40, 163, 105, 12,
+ 40, 163, 108, 12, 40, 247, 122, 227, 28, 12, 40, 247, 122, 238, 216, 12,
+ 40, 224, 16, 105, 12, 40, 224, 16, 108, 12, 40, 216, 190, 12, 40, 248,
+ 25, 12, 40, 247, 122, 209, 224, 227, 228, 12, 40, 247, 122, 227, 229, 12,
+ 40, 247, 122, 204, 16, 12, 40, 247, 122, 239, 190, 12, 40, 241, 173, 105,
+ 12, 40, 241, 173, 108, 12, 40, 241, 173, 147, 12, 40, 247, 122, 241, 172,
+ 12, 40, 237, 64, 12, 40, 247, 122, 236, 49, 12, 40, 248, 11, 12, 40, 238,
+ 89, 12, 40, 247, 122, 239, 243, 12, 40, 247, 122, 248, 60, 12, 40, 247,
+ 122, 215, 1, 12, 40, 212, 127, 204, 38, 12, 40, 212, 127, 203, 44, 12,
+ 40, 247, 122, 239, 121, 12, 40, 230, 183, 240, 224, 12, 40, 247, 122,
+ 240, 224, 12, 40, 230, 183, 208, 146, 12, 40, 247, 122, 208, 146, 12, 40,
+ 230, 183, 242, 61, 12, 40, 247, 122, 242, 61, 12, 40, 207, 171, 12, 40,
+ 230, 183, 207, 171, 12, 40, 247, 122, 207, 171, 71, 40, 105, 71, 40, 227,
+ 114, 71, 40, 243, 85, 71, 40, 212, 57, 71, 40, 214, 170, 71, 40, 113, 71,
+ 40, 108, 71, 40, 227, 143, 71, 40, 225, 122, 71, 40, 227, 207, 71, 40,
+ 241, 67, 71, 40, 199, 71, 40, 121, 247, 233, 71, 40, 245, 151, 71, 40,
+ 235, 162, 71, 40, 210, 8, 71, 40, 171, 247, 233, 71, 40, 229, 33, 71, 40,
+ 218, 16, 71, 40, 203, 228, 71, 40, 211, 190, 71, 40, 50, 171, 247, 233,
+ 71, 40, 236, 255, 241, 87, 71, 40, 209, 152, 71, 40, 243, 138, 71, 40,
+ 214, 175, 71, 40, 246, 26, 71, 40, 217, 226, 71, 40, 251, 80, 71, 40,
+ 224, 7, 71, 40, 241, 87, 71, 40, 241, 179, 71, 40, 214, 197, 71, 40, 238,
+ 39, 71, 40, 238, 40, 212, 38, 71, 40, 240, 223, 71, 40, 248, 72, 71, 40,
+ 203, 250, 71, 40, 246, 133, 71, 40, 215, 207, 71, 40, 231, 45, 71, 40,
+ 212, 36, 71, 40, 228, 22, 71, 40, 245, 161, 71, 40, 211, 181, 71, 40,
+ 224, 12, 71, 40, 215, 241, 71, 40, 203, 235, 71, 40, 220, 25, 71, 40,
+ 207, 180, 71, 40, 242, 44, 71, 40, 212, 228, 209, 33, 71, 40, 242, 83,
+ 246, 26, 71, 40, 163, 211, 38, 71, 40, 120, 237, 99, 71, 40, 212, 234,
+ 71, 40, 247, 240, 71, 40, 212, 21, 71, 40, 247, 205, 71, 40, 211, 75, 71,
+ 40, 237, 55, 71, 40, 237, 138, 71, 40, 243, 88, 71, 40, 237, 123, 71, 40,
+ 247, 223, 71, 40, 216, 178, 71, 40, 214, 183, 71, 40, 243, 169, 71, 40,
+ 250, 9, 71, 40, 211, 177, 71, 40, 221, 165, 71, 40, 210, 214, 71, 40,
+ 214, 208, 71, 40, 224, 29, 71, 40, 208, 95, 71, 40, 228, 99, 71, 40, 211,
+ 61, 71, 40, 244, 73, 71, 40, 204, 61, 71, 40, 243, 114, 221, 165, 71, 40,
+ 245, 229, 71, 40, 239, 95, 71, 40, 246, 38, 71, 40, 211, 80, 71, 40, 204,
+ 80, 71, 40, 239, 249, 71, 40, 246, 34, 71, 40, 240, 67, 71, 40, 52, 203,
+ 196, 71, 40, 162, 208, 96, 208, 25, 71, 40, 212, 50, 71, 40, 240, 79, 71,
+ 40, 245, 149, 71, 40, 243, 102, 71, 40, 217, 223, 71, 40, 230, 176, 71,
+ 40, 224, 249, 71, 40, 208, 226, 71, 40, 210, 164, 71, 40, 227, 137, 71,
+ 40, 206, 191, 71, 40, 240, 24, 71, 40, 248, 15, 76, 246, 10, 71, 40, 212,
+ 158, 71, 40, 242, 83, 209, 144, 71, 40, 204, 33, 71, 40, 212, 65, 71, 40,
+ 243, 156, 71, 40, 240, 191, 71, 40, 211, 214, 71, 40, 47, 71, 40, 211,
+ 63, 71, 40, 211, 198, 71, 40, 208, 118, 71, 40, 238, 10, 71, 40, 247, 10,
+ 71, 40, 211, 98, 71, 40, 248, 244, 71, 40, 216, 52, 71, 40, 212, 134, 71,
+ 40, 230, 168, 71, 40, 222, 219, 71, 40, 213, 37, 71, 40, 240, 55, 71, 40,
+ 220, 45, 71, 40, 250, 226, 71, 40, 218, 83, 71, 40, 241, 183, 71, 40,
+ 247, 200, 71, 40, 225, 15, 71, 40, 224, 104, 71, 40, 213, 149, 71, 40,
+ 250, 98, 71, 40, 224, 24, 71, 40, 208, 150, 71, 40, 219, 252, 71, 40,
+ 248, 19, 71, 40, 211, 59, 71, 40, 245, 241, 71, 40, 238, 0, 71, 40, 208,
+ 245, 71, 40, 231, 9, 71, 40, 248, 31, 71, 40, 204, 102, 241, 87, 71, 40,
+ 246, 9, 71, 40, 204, 45, 71, 40, 214, 165, 71, 40, 236, 53, 71, 40, 211,
+ 211, 71, 40, 206, 79, 71, 40, 248, 157, 71, 40, 218, 131, 71, 40, 249,
+ 13, 71, 40, 213, 32, 71, 40, 216, 137, 71, 40, 215, 128, 71, 40, 239,
+ 172, 71, 40, 248, 17, 71, 40, 247, 23, 71, 40, 248, 48, 71, 40, 224, 26,
+ 71, 40, 204, 101, 71, 40, 246, 47, 71, 40, 204, 12, 71, 40, 243, 149, 71,
+ 40, 205, 214, 71, 40, 238, 31, 71, 40, 227, 28, 71, 40, 238, 216, 71, 40,
+ 224, 15, 71, 40, 212, 56, 71, 40, 212, 228, 209, 247, 248, 60, 71, 40,
+ 216, 190, 71, 40, 248, 25, 71, 40, 203, 219, 71, 40, 240, 102, 71, 40,
+ 227, 228, 71, 40, 209, 224, 227, 228, 71, 40, 227, 224, 71, 40, 211, 240,
+ 71, 40, 227, 229, 71, 40, 204, 16, 71, 40, 239, 190, 71, 40, 241, 172,
+ 71, 40, 237, 64, 71, 40, 239, 136, 71, 40, 236, 49, 71, 40, 248, 11, 71,
+ 40, 209, 233, 71, 40, 237, 145, 71, 40, 240, 17, 71, 40, 215, 30, 204,
+ 12, 71, 40, 247, 12, 71, 40, 238, 89, 71, 40, 239, 243, 71, 40, 248, 60,
+ 71, 40, 215, 1, 71, 40, 244, 58, 71, 40, 204, 38, 71, 40, 237, 34, 71,
+ 40, 203, 44, 71, 40, 224, 115, 71, 40, 248, 43, 71, 40, 241, 99, 71, 40,
+ 239, 121, 71, 40, 208, 67, 71, 40, 242, 46, 71, 40, 216, 172, 71, 40,
+ 221, 167, 71, 40, 240, 224, 71, 40, 208, 146, 71, 40, 242, 61, 71, 40,
+ 207, 171, 71, 40, 239, 193, 139, 244, 18, 167, 49, 208, 173, 216, 16,
+ 139, 244, 18, 167, 87, 208, 173, 56, 139, 244, 18, 167, 49, 208, 173,
+ 101, 25, 216, 16, 139, 244, 18, 167, 87, 208, 173, 101, 25, 56, 139, 244,
+ 18, 167, 239, 102, 210, 186, 139, 244, 18, 167, 210, 187, 239, 120, 55,
+ 139, 244, 18, 167, 210, 187, 239, 120, 56, 139, 244, 18, 167, 210, 187,
+ 239, 120, 227, 222, 139, 244, 18, 167, 210, 187, 239, 120, 206, 221, 227,
+ 222, 139, 244, 18, 167, 210, 187, 239, 120, 206, 221, 216, 16, 139, 244,
+ 18, 167, 210, 187, 239, 120, 226, 251, 227, 222, 139, 244, 18, 167, 219,
+ 202, 139, 211, 228, 139, 245, 233, 139, 239, 102, 211, 61, 243, 146, 82,
+ 230, 169, 231, 29, 211, 97, 97, 139, 230, 199, 82, 139, 246, 12, 82, 139,
+ 42, 202, 84, 49, 250, 218, 155, 50, 250, 218, 155, 49, 52, 250, 218, 155,
+ 50, 52, 250, 218, 155, 49, 245, 166, 155, 50, 245, 166, 155, 49, 61, 245,
+ 166, 155, 50, 61, 245, 166, 155, 49, 62, 227, 185, 155, 50, 62, 227, 185,
+ 155, 218, 29, 82, 238, 158, 82, 49, 208, 133, 213, 33, 155, 50, 208, 133,
+ 213, 33, 155, 49, 61, 227, 185, 155, 50, 61, 227, 185, 155, 49, 61, 208,
+ 133, 213, 33, 155, 50, 61, 208, 133, 213, 33, 155, 49, 61, 51, 155, 50,
+ 61, 51, 155, 204, 76, 244, 144, 216, 73, 52, 217, 237, 217, 31, 82, 52,
+ 217, 237, 217, 31, 82, 124, 52, 217, 237, 217, 31, 82, 218, 29, 131, 240,
+ 102, 237, 97, 221, 44, 105, 237, 97, 221, 44, 108, 237, 97, 221, 44, 147,
+ 237, 97, 221, 44, 149, 237, 97, 221, 44, 170, 237, 97, 221, 44, 195, 237,
+ 97, 221, 44, 213, 111, 237, 97, 221, 44, 199, 237, 97, 221, 44, 222, 63,
+ 139, 227, 167, 143, 82, 139, 215, 245, 143, 82, 139, 244, 27, 143, 82,
+ 139, 241, 66, 143, 82, 28, 212, 120, 70, 143, 82, 28, 52, 70, 143, 82,
+ 204, 72, 244, 144, 80, 230, 3, 216, 101, 82, 80, 230, 3, 216, 101, 3,
+ 205, 186, 211, 241, 82, 80, 230, 3, 216, 101, 131, 206, 221, 237, 137,
+ 80, 230, 3, 216, 101, 3, 205, 186, 211, 241, 131, 206, 221, 237, 137, 80,
+ 230, 3, 216, 101, 131, 226, 251, 237, 137, 43, 218, 29, 82, 139, 209,
+ 164, 227, 115, 240, 52, 213, 131, 97, 237, 97, 221, 44, 209, 152, 237,
+ 97, 221, 44, 207, 151, 237, 97, 221, 44, 209, 53, 80, 139, 230, 199, 82,
+ 225, 72, 82, 219, 71, 250, 251, 82, 139, 57, 231, 31, 139, 162, 240, 10,
+ 211, 228, 172, 1, 5, 63, 172, 1, 63, 172, 1, 5, 75, 172, 1, 75, 172, 1,
+ 5, 68, 172, 1, 68, 172, 1, 5, 74, 172, 1, 74, 172, 1, 5, 78, 172, 1, 78,
+ 172, 1, 173, 172, 1, 239, 8, 172, 1, 229, 100, 172, 1, 238, 81, 172, 1,
+ 228, 209, 172, 1, 237, 230, 172, 1, 229, 201, 172, 1, 238, 190, 172, 1,
+ 229, 26, 172, 1, 238, 39, 172, 1, 215, 36, 172, 1, 202, 116, 172, 1, 212,
+ 162, 172, 1, 202, 39, 172, 1, 211, 10, 172, 1, 202, 6, 172, 1, 214, 177,
+ 172, 1, 202, 92, 172, 1, 212, 13, 172, 1, 202, 17, 172, 1, 210, 22, 172,
+ 1, 244, 212, 172, 1, 209, 2, 172, 1, 243, 233, 172, 1, 5, 207, 203, 172,
+ 1, 207, 203, 172, 1, 242, 42, 172, 1, 209, 187, 172, 1, 244, 75, 172, 1,
+ 135, 172, 1, 243, 113, 172, 1, 201, 201, 172, 1, 222, 100, 172, 1, 221,
+ 84, 172, 1, 222, 240, 172, 1, 221, 191, 172, 1, 152, 172, 1, 249, 32,
+ 172, 1, 185, 172, 1, 237, 3, 172, 1, 248, 86, 172, 1, 218, 167, 172, 1,
+ 236, 26, 172, 1, 247, 193, 172, 1, 217, 191, 172, 1, 237, 67, 172, 1,
+ 248, 162, 172, 1, 219, 34, 172, 1, 236, 136, 172, 1, 248, 23, 172, 1,
+ 218, 69, 172, 1, 192, 172, 1, 224, 155, 172, 1, 223, 246, 172, 1, 225,
+ 20, 172, 1, 224, 82, 172, 1, 5, 198, 172, 1, 198, 172, 1, 5, 202, 213,
+ 172, 1, 202, 213, 172, 1, 5, 202, 247, 172, 1, 202, 247, 172, 1, 216,
+ 220, 172, 1, 216, 57, 172, 1, 215, 145, 172, 1, 216, 158, 172, 1, 215,
+ 227, 172, 1, 5, 204, 111, 172, 1, 204, 111, 172, 1, 204, 30, 172, 1, 204,
+ 62, 172, 1, 204, 0, 172, 1, 223, 163, 172, 1, 204, 163, 172, 1, 5, 173,
+ 172, 1, 5, 229, 201, 39, 229, 225, 205, 186, 211, 241, 82, 39, 229, 225,
+ 213, 148, 211, 241, 82, 229, 225, 205, 186, 211, 241, 82, 229, 225, 213,
+ 148, 211, 241, 82, 172, 230, 199, 82, 172, 205, 186, 230, 199, 82, 172,
+ 243, 192, 202, 228, 229, 225, 52, 235, 220, 67, 1, 5, 63, 67, 1, 63, 67,
+ 1, 5, 75, 67, 1, 75, 67, 1, 5, 68, 67, 1, 68, 67, 1, 5, 74, 67, 1, 74,
+ 67, 1, 5, 78, 67, 1, 78, 67, 1, 173, 67, 1, 239, 8, 67, 1, 229, 100, 67,
+ 1, 238, 81, 67, 1, 228, 209, 67, 1, 237, 230, 67, 1, 229, 201, 67, 1,
+ 238, 190, 67, 1, 229, 26, 67, 1, 238, 39, 67, 1, 215, 36, 67, 1, 202,
+ 116, 67, 1, 212, 162, 67, 1, 202, 39, 67, 1, 211, 10, 67, 1, 202, 6, 67,
+ 1, 214, 177, 67, 1, 202, 92, 67, 1, 212, 13, 67, 1, 202, 17, 67, 1, 210,
+ 22, 67, 1, 244, 212, 67, 1, 209, 2, 67, 1, 243, 233, 67, 1, 5, 207, 203,
+ 67, 1, 207, 203, 67, 1, 242, 42, 67, 1, 209, 187, 67, 1, 244, 75, 67, 1,
+ 135, 67, 1, 243, 113, 67, 1, 201, 201, 67, 1, 222, 100, 67, 1, 221, 84,
+ 67, 1, 222, 240, 67, 1, 221, 191, 67, 1, 152, 67, 1, 249, 32, 67, 1, 185,
+ 67, 1, 237, 3, 67, 1, 248, 86, 67, 1, 218, 167, 67, 1, 236, 26, 67, 1,
+ 247, 193, 67, 1, 217, 191, 67, 1, 237, 67, 67, 1, 248, 162, 67, 1, 219,
+ 34, 67, 1, 236, 136, 67, 1, 248, 23, 67, 1, 218, 69, 67, 1, 192, 67, 1,
+ 224, 155, 67, 1, 223, 246, 67, 1, 225, 20, 67, 1, 224, 82, 67, 1, 5, 198,
+ 67, 1, 198, 67, 1, 5, 202, 213, 67, 1, 202, 213, 67, 1, 5, 202, 247, 67,
+ 1, 202, 247, 67, 1, 216, 220, 67, 1, 216, 57, 67, 1, 215, 145, 67, 1,
+ 216, 158, 67, 1, 215, 227, 67, 1, 5, 204, 111, 67, 1, 204, 111, 67, 1,
+ 204, 30, 67, 1, 204, 62, 67, 1, 204, 0, 67, 1, 223, 163, 67, 1, 204, 163,
+ 67, 1, 5, 173, 67, 1, 5, 229, 201, 67, 1, 206, 86, 67, 1, 205, 230, 67,
+ 1, 206, 55, 67, 1, 205, 189, 67, 101, 243, 85, 229, 225, 217, 215, 211,
+ 241, 82, 67, 230, 199, 82, 67, 205, 186, 230, 199, 82, 67, 243, 192, 228,
+ 249, 248, 1, 1, 249, 255, 248, 1, 1, 219, 184, 248, 1, 1, 226, 185, 248,
+ 1, 1, 240, 174, 248, 1, 1, 245, 51, 248, 1, 1, 210, 69, 248, 1, 1, 223,
+ 163, 248, 1, 1, 159, 248, 1, 1, 239, 75, 248, 1, 1, 230, 54, 248, 1, 1,
+ 237, 171, 248, 1, 1, 230, 184, 248, 1, 1, 217, 134, 248, 1, 1, 203, 196,
+ 248, 1, 1, 202, 81, 248, 1, 1, 246, 200, 248, 1, 1, 213, 92, 248, 1, 1,
+ 146, 248, 1, 1, 202, 159, 248, 1, 1, 247, 125, 248, 1, 1, 194, 248, 1, 1,
+ 63, 248, 1, 1, 78, 248, 1, 1, 74, 248, 1, 1, 241, 147, 248, 1, 1, 251,
+ 64, 248, 1, 1, 241, 145, 248, 1, 1, 250, 34, 248, 1, 1, 219, 216, 248, 1,
+ 1, 250, 231, 248, 1, 1, 241, 92, 248, 1, 1, 250, 223, 248, 1, 1, 241, 78,
+ 248, 1, 1, 241, 28, 248, 1, 1, 75, 248, 1, 1, 68, 248, 1, 1, 230, 197,
+ 248, 1, 1, 206, 164, 248, 1, 1, 222, 205, 248, 1, 1, 238, 43, 248, 1, 1,
+ 231, 84, 28, 1, 229, 59, 28, 1, 211, 156, 28, 1, 229, 52, 28, 1, 222, 93,
+ 28, 1, 222, 91, 28, 1, 222, 90, 28, 1, 208, 240, 28, 1, 211, 145, 28, 1,
+ 216, 47, 28, 1, 216, 42, 28, 1, 216, 39, 28, 1, 216, 32, 28, 1, 216, 27,
+ 28, 1, 216, 22, 28, 1, 216, 33, 28, 1, 216, 45, 28, 1, 224, 141, 28, 1,
+ 218, 153, 28, 1, 211, 153, 28, 1, 218, 142, 28, 1, 212, 111, 28, 1, 211,
+ 150, 28, 1, 231, 106, 28, 1, 246, 74, 28, 1, 211, 160, 28, 1, 246, 138,
+ 28, 1, 229, 120, 28, 1, 209, 66, 28, 1, 218, 190, 28, 1, 236, 251, 28, 1,
+ 63, 28, 1, 251, 109, 28, 1, 198, 28, 1, 203, 99, 28, 1, 241, 55, 28, 1,
+ 74, 28, 1, 203, 39, 28, 1, 203, 52, 28, 1, 78, 28, 1, 204, 111, 28, 1,
+ 204, 107, 28, 1, 220, 73, 28, 1, 202, 247, 28, 1, 68, 28, 1, 204, 48, 28,
+ 1, 204, 62, 28, 1, 204, 30, 28, 1, 202, 213, 28, 1, 240, 238, 28, 1, 203,
+ 11, 28, 1, 75, 28, 240, 7, 28, 1, 211, 154, 28, 1, 222, 83, 28, 1, 222,
+ 85, 28, 1, 222, 88, 28, 1, 216, 40, 28, 1, 216, 21, 28, 1, 216, 29, 28,
+ 1, 216, 34, 28, 1, 216, 19, 28, 1, 224, 134, 28, 1, 224, 131, 28, 1, 224,
+ 135, 28, 1, 229, 246, 28, 1, 218, 148, 28, 1, 218, 134, 28, 1, 218, 140,
+ 28, 1, 218, 137, 28, 1, 218, 151, 28, 1, 218, 135, 28, 1, 229, 244, 28,
+ 1, 229, 242, 28, 1, 212, 104, 28, 1, 212, 102, 28, 1, 212, 94, 28, 1,
+ 212, 99, 28, 1, 212, 109, 28, 1, 219, 107, 28, 1, 211, 157, 28, 1, 203,
+ 29, 28, 1, 203, 25, 28, 1, 203, 26, 28, 1, 229, 245, 28, 1, 211, 158, 28,
+ 1, 203, 35, 28, 1, 202, 241, 28, 1, 202, 240, 28, 1, 202, 243, 28, 1,
+ 202, 204, 28, 1, 202, 205, 28, 1, 202, 208, 28, 1, 250, 137, 28, 1, 250,
+ 131, 139, 250, 205, 227, 103, 82, 139, 250, 205, 216, 74, 82, 139, 250,
+ 205, 118, 82, 139, 250, 205, 120, 82, 139, 250, 205, 126, 82, 139, 250,
+ 205, 239, 147, 82, 139, 250, 205, 208, 145, 82, 139, 250, 205, 101, 82,
+ 139, 250, 205, 247, 248, 82, 139, 250, 205, 239, 245, 82, 139, 250, 205,
+ 214, 171, 82, 139, 250, 205, 209, 61, 82, 139, 250, 205, 239, 140, 82,
+ 139, 250, 205, 237, 52, 82, 139, 250, 205, 241, 180, 82, 139, 250, 205,
+ 225, 123, 82, 248, 1, 1, 247, 193, 248, 1, 1, 202, 39, 248, 1, 1, 230,
+ 141, 248, 1, 1, 237, 230, 248, 1, 1, 241, 161, 248, 1, 1, 241, 75, 248,
+ 1, 1, 220, 18, 248, 1, 1, 220, 22, 248, 1, 1, 230, 224, 248, 1, 1, 250,
+ 207, 248, 1, 1, 231, 16, 248, 1, 1, 206, 229, 248, 1, 1, 231, 66, 248, 1,
+ 1, 222, 183, 248, 1, 1, 251, 58, 248, 1, 1, 250, 29, 248, 1, 1, 250, 247,
+ 248, 1, 1, 220, 39, 248, 1, 1, 220, 24, 248, 1, 1, 231, 13, 248, 1, 46,
+ 1, 219, 184, 248, 1, 46, 1, 210, 69, 248, 1, 46, 1, 230, 54, 248, 1, 46,
+ 1, 237, 171, 248, 1, 1, 238, 120, 248, 1, 1, 227, 162, 248, 1, 1, 201,
+ 242, 12, 211, 32, 210, 69, 12, 211, 32, 204, 41, 12, 211, 32, 203, 171,
+ 12, 211, 32, 247, 138, 12, 211, 32, 210, 173, 12, 211, 32, 235, 210, 12,
+ 211, 32, 235, 214, 12, 211, 32, 236, 35, 12, 211, 32, 235, 211, 12, 211,
+ 32, 210, 72, 12, 211, 32, 235, 213, 12, 211, 32, 235, 209, 12, 211, 32,
+ 236, 33, 12, 211, 32, 235, 212, 12, 211, 32, 235, 208, 12, 211, 32, 223,
+ 163, 12, 211, 32, 237, 171, 12, 211, 32, 194, 12, 211, 32, 219, 184, 12,
+ 211, 32, 211, 231, 12, 211, 32, 245, 51, 12, 211, 32, 235, 215, 12, 211,
+ 32, 237, 13, 12, 211, 32, 210, 81, 12, 211, 32, 210, 152, 12, 211, 32,
+ 211, 108, 12, 211, 32, 213, 98, 12, 211, 32, 219, 38, 12, 211, 32, 217,
+ 136, 12, 211, 32, 208, 174, 12, 211, 32, 210, 71, 12, 211, 32, 210, 163,
+ 12, 211, 32, 235, 223, 12, 211, 32, 235, 207, 12, 211, 32, 218, 210, 12,
+ 211, 32, 217, 134, 67, 1, 5, 228, 209, 67, 1, 5, 212, 162, 67, 1, 5, 211,
+ 10, 67, 1, 5, 135, 67, 1, 5, 221, 84, 67, 1, 5, 152, 67, 1, 5, 237, 3,
+ 67, 1, 5, 236, 26, 67, 1, 5, 237, 67, 67, 1, 5, 236, 136, 67, 1, 5, 223,
+ 246, 67, 1, 5, 216, 220, 67, 1, 5, 216, 57, 67, 1, 5, 215, 145, 67, 1, 5,
+ 216, 158, 67, 1, 5, 215, 227, 102, 28, 229, 59, 102, 28, 222, 93, 102,
+ 28, 208, 240, 102, 28, 216, 47, 102, 28, 224, 141, 102, 28, 218, 153,
+ 102, 28, 212, 111, 102, 28, 231, 106, 102, 28, 246, 74, 102, 28, 246,
+ 138, 102, 28, 229, 120, 102, 28, 209, 66, 102, 28, 218, 190, 102, 28,
+ 236, 251, 102, 28, 229, 60, 63, 102, 28, 222, 94, 63, 102, 28, 208, 241,
+ 63, 102, 28, 216, 48, 63, 102, 28, 224, 142, 63, 102, 28, 218, 154, 63,
+ 102, 28, 212, 112, 63, 102, 28, 231, 107, 63, 102, 28, 246, 75, 63, 102,
+ 28, 246, 139, 63, 102, 28, 229, 121, 63, 102, 28, 209, 67, 63, 102, 28,
+ 218, 191, 63, 102, 28, 236, 252, 63, 102, 28, 246, 75, 68, 102, 228, 253,
+ 167, 220, 54, 102, 228, 253, 167, 158, 236, 26, 102, 189, 105, 102, 189,
+ 108, 102, 189, 147, 102, 189, 149, 102, 189, 170, 102, 189, 195, 102,
+ 189, 213, 111, 102, 189, 199, 102, 189, 222, 63, 102, 189, 209, 152, 102,
+ 189, 224, 29, 102, 189, 239, 249, 102, 189, 204, 80, 102, 189, 203, 243,
+ 102, 189, 224, 220, 102, 189, 241, 179, 102, 189, 210, 214, 102, 189,
+ 211, 64, 102, 189, 237, 74, 102, 189, 212, 9, 102, 189, 223, 84, 102,
+ 189, 211, 213, 102, 189, 240, 4, 102, 189, 245, 211, 102, 189, 228, 102,
+ 102, 189, 216, 95, 102, 189, 247, 71, 102, 189, 211, 14, 102, 189, 210,
+ 196, 102, 189, 241, 65, 102, 189, 216, 87, 102, 189, 251, 10, 102, 189,
+ 240, 33, 102, 189, 216, 85, 102, 189, 213, 149, 102, 189, 216, 157, 43,
+ 189, 217, 46, 43, 189, 229, 83, 43, 189, 214, 195, 43, 189, 228, 249, 43,
+ 42, 209, 153, 220, 32, 62, 211, 177, 43, 42, 207, 152, 220, 32, 62, 211,
+ 177, 43, 42, 209, 54, 220, 32, 62, 211, 177, 43, 42, 239, 154, 220, 32,
+ 62, 211, 177, 43, 42, 240, 19, 220, 32, 62, 211, 177, 43, 42, 212, 75,
+ 220, 32, 62, 211, 177, 43, 42, 213, 106, 220, 32, 62, 211, 177, 43, 42,
+ 241, 135, 220, 32, 62, 211, 177, 219, 67, 54, 43, 42, 207, 152, 105, 43,
+ 42, 207, 152, 108, 43, 42, 207, 152, 147, 43, 42, 207, 152, 149, 43, 42,
+ 207, 152, 170, 43, 42, 207, 152, 195, 43, 42, 207, 152, 213, 111, 43, 42,
+ 207, 152, 199, 43, 42, 207, 152, 222, 63, 43, 42, 209, 53, 43, 42, 209,
+ 54, 105, 43, 42, 209, 54, 108, 43, 42, 209, 54, 147, 43, 42, 209, 54,
+ 149, 43, 42, 209, 54, 170, 43, 28, 229, 59, 43, 28, 222, 93, 43, 28, 208,
+ 240, 43, 28, 216, 47, 43, 28, 224, 141, 43, 28, 218, 153, 43, 28, 212,
+ 111, 43, 28, 231, 106, 43, 28, 246, 74, 43, 28, 246, 138, 43, 28, 229,
+ 120, 43, 28, 209, 66, 43, 28, 218, 190, 43, 28, 236, 251, 43, 28, 229,
+ 60, 63, 43, 28, 222, 94, 63, 43, 28, 208, 241, 63, 43, 28, 216, 48, 63,
+ 43, 28, 224, 142, 63, 43, 28, 218, 154, 63, 43, 28, 212, 112, 63, 43, 28,
+ 231, 107, 63, 43, 28, 246, 75, 63, 43, 28, 246, 139, 63, 43, 28, 229,
+ 121, 63, 43, 28, 209, 67, 63, 43, 28, 218, 191, 63, 43, 28, 236, 252, 63,
+ 43, 228, 253, 167, 246, 189, 43, 228, 253, 167, 230, 78, 43, 28, 231,
+ 107, 68, 228, 253, 211, 97, 97, 43, 189, 105, 43, 189, 108, 43, 189, 147,
+ 43, 189, 149, 43, 189, 170, 43, 189, 195, 43, 189, 213, 111, 43, 189,
+ 199, 43, 189, 222, 63, 43, 189, 209, 152, 43, 189, 224, 29, 43, 189, 239,
+ 249, 43, 189, 204, 80, 43, 189, 203, 243, 43, 189, 224, 220, 43, 189,
+ 241, 179, 43, 189, 210, 214, 43, 189, 211, 64, 43, 189, 237, 74, 43, 189,
+ 212, 9, 43, 189, 223, 84, 43, 189, 211, 213, 43, 189, 240, 4, 43, 189,
+ 245, 211, 43, 189, 228, 102, 43, 189, 214, 169, 43, 189, 225, 126, 43,
+ 189, 240, 42, 43, 189, 210, 226, 43, 189, 240, 216, 43, 189, 217, 233,
+ 43, 189, 250, 38, 43, 189, 230, 200, 43, 189, 216, 85, 43, 189, 245, 170,
+ 43, 189, 245, 160, 43, 189, 236, 244, 43, 189, 246, 217, 43, 189, 227, 0,
+ 43, 189, 227, 222, 43, 189, 216, 16, 43, 189, 225, 11, 43, 189, 216, 112,
+ 43, 189, 211, 14, 43, 189, 210, 196, 43, 189, 241, 65, 43, 189, 216, 87,
+ 43, 189, 251, 10, 43, 189, 222, 79, 43, 42, 209, 54, 195, 43, 42, 209,
+ 54, 213, 111, 43, 42, 209, 54, 199, 43, 42, 209, 54, 222, 63, 43, 42,
+ 239, 153, 43, 42, 239, 154, 105, 43, 42, 239, 154, 108, 43, 42, 239, 154,
+ 147, 43, 42, 239, 154, 149, 43, 42, 239, 154, 170, 43, 42, 239, 154, 195,
+ 43, 42, 239, 154, 213, 111, 43, 42, 239, 154, 199, 43, 42, 239, 154, 222,
+ 63, 43, 42, 240, 18, 139, 209, 164, 16, 35, 230, 171, 139, 209, 164, 16,
+ 35, 240, 54, 139, 209, 164, 16, 35, 225, 94, 139, 209, 164, 16, 35, 250,
+ 150, 139, 209, 164, 16, 35, 225, 63, 139, 209, 164, 16, 35, 230, 76, 139,
+ 209, 164, 16, 35, 230, 77, 139, 209, 164, 16, 35, 250, 30, 139, 209, 164,
+ 16, 35, 213, 129, 139, 209, 164, 16, 35, 220, 79, 139, 209, 164, 16, 35,
+ 221, 153, 139, 209, 164, 16, 35, 244, 70, 51, 237, 13, 51, 241, 24, 51,
+ 240, 226, 227, 120, 227, 147, 54, 43, 67, 63, 43, 67, 75, 43, 67, 68, 43,
+ 67, 74, 43, 67, 78, 43, 67, 173, 43, 67, 229, 100, 43, 67, 228, 209, 43,
+ 67, 229, 201, 43, 67, 229, 26, 43, 67, 215, 36, 43, 67, 212, 162, 43, 67,
+ 211, 10, 43, 67, 214, 177, 43, 67, 212, 13, 43, 67, 210, 22, 43, 67, 209,
+ 2, 43, 67, 207, 203, 43, 67, 209, 187, 43, 67, 135, 43, 67, 201, 201, 43,
+ 67, 222, 100, 43, 67, 221, 84, 43, 67, 222, 240, 43, 67, 221, 191, 43,
+ 67, 152, 43, 67, 237, 3, 43, 67, 236, 26, 43, 67, 237, 67, 43, 67, 236,
+ 136, 43, 67, 192, 43, 67, 224, 155, 43, 67, 223, 246, 43, 67, 225, 20,
+ 43, 67, 224, 82, 43, 67, 198, 43, 67, 202, 213, 43, 67, 202, 247, 43, 67,
+ 216, 220, 43, 67, 216, 57, 43, 67, 215, 145, 43, 67, 216, 158, 43, 67,
+ 215, 227, 43, 67, 204, 111, 43, 67, 204, 30, 43, 67, 204, 62, 43, 67,
+ 204, 0, 51, 250, 174, 51, 250, 83, 51, 250, 201, 51, 251, 239, 51, 231,
+ 18, 51, 230, 242, 51, 206, 227, 51, 240, 253, 51, 241, 158, 51, 220, 21,
+ 51, 220, 14, 51, 230, 16, 51, 229, 238, 51, 229, 235, 51, 238, 220, 51,
+ 238, 229, 51, 238, 70, 51, 238, 66, 51, 228, 132, 51, 238, 58, 51, 229,
+ 75, 51, 229, 74, 51, 229, 73, 51, 229, 72, 51, 237, 200, 51, 237, 199,
+ 51, 228, 180, 51, 228, 182, 51, 229, 194, 51, 228, 251, 51, 229, 3, 51,
+ 215, 17, 51, 214, 236, 51, 212, 92, 51, 213, 134, 51, 213, 133, 51, 244,
+ 209, 51, 244, 14, 51, 243, 86, 51, 208, 163, 51, 223, 79, 51, 221, 154,
+ 51, 237, 142, 51, 219, 163, 51, 219, 162, 51, 249, 29, 51, 218, 164, 51,
+ 218, 127, 51, 218, 128, 51, 248, 57, 51, 236, 24, 51, 236, 19, 51, 247,
+ 151, 51, 236, 4, 51, 237, 39, 51, 218, 220, 51, 219, 4, 51, 237, 22, 51,
+ 219, 0, 51, 219, 18, 51, 248, 145, 51, 218, 58, 51, 247, 253, 51, 236,
+ 120, 51, 218, 46, 51, 236, 111, 51, 236, 113, 51, 225, 138, 51, 225, 134,
+ 51, 225, 143, 51, 225, 83, 51, 225, 110, 51, 224, 121, 51, 224, 97, 51,
+ 224, 96, 51, 225, 0, 51, 224, 253, 51, 225, 1, 51, 203, 109, 51, 203,
+ 107, 51, 202, 202, 51, 215, 243, 51, 215, 247, 51, 215, 119, 51, 215,
+ 113, 51, 216, 109, 51, 216, 106, 51, 204, 78, 139, 209, 164, 16, 35, 236,
+ 43, 202, 84, 139, 209, 164, 16, 35, 236, 43, 105, 139, 209, 164, 16, 35,
+ 236, 43, 108, 139, 209, 164, 16, 35, 236, 43, 147, 139, 209, 164, 16, 35,
+ 236, 43, 149, 139, 209, 164, 16, 35, 236, 43, 170, 139, 209, 164, 16, 35,
+ 236, 43, 195, 139, 209, 164, 16, 35, 236, 43, 213, 111, 139, 209, 164,
+ 16, 35, 236, 43, 199, 139, 209, 164, 16, 35, 236, 43, 222, 63, 139, 209,
+ 164, 16, 35, 236, 43, 209, 152, 139, 209, 164, 16, 35, 236, 43, 241, 112,
+ 139, 209, 164, 16, 35, 236, 43, 207, 154, 139, 209, 164, 16, 35, 236, 43,
+ 209, 55, 139, 209, 164, 16, 35, 236, 43, 239, 141, 139, 209, 164, 16, 35,
+ 236, 43, 240, 22, 139, 209, 164, 16, 35, 236, 43, 212, 82, 139, 209, 164,
+ 16, 35, 236, 43, 213, 108, 139, 209, 164, 16, 35, 236, 43, 241, 140, 139,
+ 209, 164, 16, 35, 236, 43, 222, 60, 139, 209, 164, 16, 35, 236, 43, 207,
+ 151, 139, 209, 164, 16, 35, 236, 43, 207, 145, 139, 209, 164, 16, 35,
+ 236, 43, 207, 141, 139, 209, 164, 16, 35, 236, 43, 207, 142, 139, 209,
+ 164, 16, 35, 236, 43, 207, 147, 51, 236, 34, 51, 244, 212, 51, 250, 34,
+ 51, 142, 51, 219, 206, 51, 219, 39, 51, 243, 115, 51, 243, 116, 211, 176,
+ 51, 243, 116, 245, 105, 51, 230, 197, 51, 241, 27, 223, 85, 237, 40, 51,
+ 241, 27, 223, 85, 210, 92, 51, 241, 27, 223, 85, 209, 245, 51, 241, 27,
+ 223, 85, 224, 252, 51, 245, 162, 51, 219, 169, 250, 233, 51, 201, 201,
+ 51, 223, 247, 63, 51, 192, 51, 173, 51, 229, 204, 51, 225, 59, 51, 238,
+ 208, 51, 247, 76, 51, 229, 203, 51, 218, 211, 51, 222, 207, 51, 223, 247,
+ 240, 174, 51, 223, 247, 239, 75, 51, 224, 196, 51, 229, 146, 51, 235,
+ 215, 51, 229, 102, 51, 224, 157, 51, 238, 83, 51, 209, 4, 51, 223, 247,
+ 159, 51, 224, 90, 51, 243, 125, 51, 229, 41, 51, 239, 188, 51, 221, 229,
+ 51, 223, 247, 226, 185, 51, 224, 87, 51, 245, 255, 51, 229, 35, 51, 224,
+ 88, 211, 176, 51, 246, 0, 211, 176, 51, 226, 186, 211, 176, 51, 229, 36,
+ 211, 176, 51, 224, 88, 245, 105, 51, 246, 0, 245, 105, 51, 226, 186, 245,
+ 105, 51, 229, 36, 245, 105, 51, 226, 186, 115, 194, 51, 226, 186, 115,
+ 215, 94, 211, 176, 51, 185, 51, 228, 244, 51, 223, 250, 51, 238, 15, 51,
+ 216, 207, 51, 216, 208, 115, 194, 51, 216, 208, 115, 215, 94, 211, 176,
+ 51, 217, 204, 51, 221, 122, 51, 223, 247, 194, 51, 223, 248, 51, 217,
+ 154, 51, 221, 22, 51, 223, 247, 206, 164, 51, 223, 187, 51, 228, 170, 51,
+ 223, 188, 225, 0, 51, 217, 153, 51, 221, 21, 51, 223, 247, 204, 144, 51,
+ 223, 181, 51, 228, 168, 51, 223, 182, 225, 0, 51, 230, 55, 220, 58, 51,
+ 226, 186, 220, 58, 51, 250, 247, 51, 247, 229, 51, 247, 6, 51, 246, 239,
+ 51, 247, 126, 115, 229, 146, 51, 245, 254, 51, 244, 129, 51, 237, 184,
+ 51, 152, 51, 236, 35, 51, 231, 49, 51, 229, 48, 51, 229, 36, 247, 47, 51,
+ 228, 211, 51, 227, 52, 51, 227, 51, 51, 227, 38, 51, 226, 200, 51, 225,
+ 60, 212, 36, 51, 224, 120, 51, 224, 56, 51, 218, 209, 51, 218, 72, 51,
+ 218, 11, 51, 218, 9, 51, 211, 168, 51, 210, 177, 51, 204, 64, 51, 206,
+ 165, 115, 226, 185, 51, 34, 115, 226, 185, 139, 209, 164, 16, 35, 244,
+ 133, 105, 139, 209, 164, 16, 35, 244, 133, 108, 139, 209, 164, 16, 35,
+ 244, 133, 147, 139, 209, 164, 16, 35, 244, 133, 149, 139, 209, 164, 16,
+ 35, 244, 133, 170, 139, 209, 164, 16, 35, 244, 133, 195, 139, 209, 164,
+ 16, 35, 244, 133, 213, 111, 139, 209, 164, 16, 35, 244, 133, 199, 139,
+ 209, 164, 16, 35, 244, 133, 222, 63, 139, 209, 164, 16, 35, 244, 133,
+ 209, 152, 139, 209, 164, 16, 35, 244, 133, 241, 112, 139, 209, 164, 16,
+ 35, 244, 133, 207, 154, 139, 209, 164, 16, 35, 244, 133, 209, 55, 139,
+ 209, 164, 16, 35, 244, 133, 239, 141, 139, 209, 164, 16, 35, 244, 133,
+ 240, 22, 139, 209, 164, 16, 35, 244, 133, 212, 82, 139, 209, 164, 16, 35,
+ 244, 133, 213, 108, 139, 209, 164, 16, 35, 244, 133, 241, 140, 139, 209,
+ 164, 16, 35, 244, 133, 222, 60, 139, 209, 164, 16, 35, 244, 133, 207,
+ 151, 139, 209, 164, 16, 35, 244, 133, 207, 145, 139, 209, 164, 16, 35,
+ 244, 133, 207, 141, 139, 209, 164, 16, 35, 244, 133, 207, 142, 139, 209,
+ 164, 16, 35, 244, 133, 207, 147, 139, 209, 164, 16, 35, 244, 133, 207,
+ 148, 139, 209, 164, 16, 35, 244, 133, 207, 143, 139, 209, 164, 16, 35,
+ 244, 133, 207, 144, 139, 209, 164, 16, 35, 244, 133, 207, 150, 139, 209,
+ 164, 16, 35, 244, 133, 207, 146, 139, 209, 164, 16, 35, 244, 133, 209,
+ 53, 139, 209, 164, 16, 35, 244, 133, 209, 52, 51, 238, 246, 237, 16, 35,
+ 209, 93, 245, 142, 237, 51, 237, 16, 35, 209, 93, 216, 151, 241, 179,
+ 237, 16, 35, 243, 203, 250, 50, 209, 93, 248, 140, 237, 16, 35, 202, 226,
+ 239, 180, 237, 16, 35, 204, 103, 237, 16, 35, 245, 214, 237, 16, 35, 209,
+ 93, 250, 105, 237, 16, 35, 236, 127, 208, 169, 237, 16, 35, 5, 209, 231,
+ 237, 16, 35, 208, 97, 237, 16, 35, 219, 32, 237, 16, 35, 211, 96, 237,
+ 16, 35, 240, 44, 237, 16, 35, 237, 249, 218, 32, 237, 16, 35, 224, 75,
+ 237, 16, 35, 241, 64, 237, 16, 35, 239, 181, 237, 16, 35, 203, 236, 220,
+ 32, 209, 93, 244, 71, 237, 16, 35, 250, 154, 237, 16, 35, 245, 193, 237,
+ 16, 35, 248, 49, 209, 24, 237, 16, 35, 238, 13, 237, 16, 35, 211, 192,
+ 250, 173, 237, 16, 35, 216, 77, 237, 16, 35, 231, 12, 237, 16, 35, 237,
+ 249, 209, 231, 237, 16, 35, 224, 8, 245, 164, 237, 16, 35, 237, 249, 217,
+ 244, 237, 16, 35, 209, 93, 251, 143, 204, 80, 237, 16, 35, 209, 93, 246,
+ 24, 239, 249, 237, 16, 35, 231, 26, 237, 16, 35, 242, 20, 237, 16, 35,
+ 216, 80, 237, 16, 35, 237, 249, 218, 16, 237, 16, 35, 217, 221, 237, 16,
+ 35, 244, 149, 76, 209, 93, 227, 134, 237, 16, 35, 209, 93, 240, 82, 237,
+ 16, 35, 219, 250, 237, 16, 35, 220, 85, 237, 16, 35, 244, 42, 237, 16,
+ 35, 244, 63, 237, 16, 35, 231, 40, 237, 16, 35, 247, 217, 237, 16, 35,
+ 245, 235, 208, 173, 225, 3, 237, 16, 35, 238, 215, 208, 169, 237, 16, 35,
+ 217, 163, 206, 213, 237, 16, 35, 219, 249, 237, 16, 35, 209, 93, 204, 50,
+ 237, 16, 35, 216, 68, 237, 16, 35, 209, 93, 247, 12, 237, 16, 35, 209,
+ 93, 250, 101, 209, 18, 237, 16, 35, 209, 93, 229, 195, 211, 68, 224, 12,
+ 237, 16, 35, 244, 9, 237, 16, 35, 209, 93, 225, 85, 225, 139, 237, 16,
+ 35, 251, 144, 237, 16, 35, 209, 93, 204, 96, 237, 16, 35, 209, 93, 238,
+ 173, 204, 16, 237, 16, 35, 209, 93, 230, 84, 228, 33, 237, 16, 35, 243,
+ 153, 237, 16, 35, 227, 121, 237, 16, 35, 231, 15, 208, 24, 237, 16, 35,
+ 5, 217, 244, 237, 16, 35, 251, 82, 245, 226, 237, 16, 35, 248, 143, 245,
+ 226, 11, 4, 230, 201, 11, 4, 230, 193, 11, 4, 75, 11, 4, 230, 227, 11, 4,
+ 231, 108, 11, 4, 231, 91, 11, 4, 231, 110, 11, 4, 231, 109, 11, 4, 250,
+ 49, 11, 4, 250, 10, 11, 4, 63, 11, 4, 250, 175, 11, 4, 206, 225, 11, 4,
+ 206, 228, 11, 4, 206, 226, 11, 4, 219, 224, 11, 4, 219, 193, 11, 4, 78,
+ 11, 4, 220, 9, 11, 4, 240, 217, 11, 4, 74, 11, 4, 203, 217, 11, 4, 248,
+ 51, 11, 4, 248, 47, 11, 4, 248, 86, 11, 4, 248, 61, 11, 4, 248, 75, 11,
+ 4, 248, 74, 11, 4, 248, 77, 11, 4, 248, 76, 11, 4, 248, 209, 11, 4, 248,
+ 201, 11, 4, 249, 32, 11, 4, 248, 232, 11, 4, 247, 163, 11, 4, 247, 167,
+ 11, 4, 247, 164, 11, 4, 247, 252, 11, 4, 247, 233, 11, 4, 248, 23, 11, 4,
+ 248, 2, 11, 4, 248, 101, 11, 4, 248, 162, 11, 4, 248, 113, 11, 4, 247,
+ 147, 11, 4, 247, 143, 11, 4, 247, 193, 11, 4, 247, 162, 11, 4, 247, 155,
+ 11, 4, 247, 160, 11, 4, 247, 131, 11, 4, 247, 129, 11, 4, 247, 136, 11,
+ 4, 247, 134, 11, 4, 247, 132, 11, 4, 247, 133, 11, 4, 218, 105, 11, 4,
+ 218, 101, 11, 4, 218, 167, 11, 4, 218, 117, 11, 4, 218, 133, 11, 4, 218,
+ 160, 11, 4, 218, 156, 11, 4, 219, 55, 11, 4, 219, 44, 11, 4, 185, 11, 4,
+ 219, 96, 11, 4, 217, 173, 11, 4, 217, 175, 11, 4, 217, 174, 11, 4, 218,
+ 25, 11, 4, 218, 14, 11, 4, 218, 69, 11, 4, 218, 41, 11, 4, 217, 159, 11,
+ 4, 217, 155, 11, 4, 217, 191, 11, 4, 217, 172, 11, 4, 217, 164, 11, 4,
+ 217, 170, 11, 4, 217, 138, 11, 4, 217, 137, 11, 4, 217, 142, 11, 4, 217,
+ 141, 11, 4, 217, 139, 11, 4, 217, 140, 11, 4, 248, 183, 11, 4, 248, 182,
+ 11, 4, 248, 189, 11, 4, 248, 184, 11, 4, 248, 186, 11, 4, 248, 185, 11,
+ 4, 248, 188, 11, 4, 248, 187, 11, 4, 248, 195, 11, 4, 248, 194, 11, 4,
+ 248, 198, 11, 4, 248, 196, 11, 4, 248, 174, 11, 4, 248, 176, 11, 4, 248,
+ 175, 11, 4, 248, 179, 11, 4, 248, 178, 11, 4, 248, 181, 11, 4, 248, 180,
+ 11, 4, 248, 190, 11, 4, 248, 193, 11, 4, 248, 191, 11, 4, 248, 170, 11,
+ 4, 248, 169, 11, 4, 248, 177, 11, 4, 248, 173, 11, 4, 248, 171, 11, 4,
+ 248, 172, 11, 4, 248, 166, 11, 4, 248, 165, 11, 4, 248, 168, 11, 4, 248,
+ 167, 11, 4, 223, 47, 11, 4, 223, 46, 11, 4, 223, 52, 11, 4, 223, 48, 11,
+ 4, 223, 49, 11, 4, 223, 51, 11, 4, 223, 50, 11, 4, 223, 55, 11, 4, 223,
+ 54, 11, 4, 223, 57, 11, 4, 223, 56, 11, 4, 223, 43, 11, 4, 223, 42, 11,
+ 4, 223, 45, 11, 4, 223, 44, 11, 4, 223, 36, 11, 4, 223, 35, 11, 4, 223,
+ 40, 11, 4, 223, 39, 11, 4, 223, 37, 11, 4, 223, 38, 11, 4, 223, 30, 11,
+ 4, 223, 29, 11, 4, 223, 34, 11, 4, 223, 33, 11, 4, 223, 31, 11, 4, 223,
+ 32, 11, 4, 236, 180, 11, 4, 236, 179, 11, 4, 236, 185, 11, 4, 236, 181,
+ 11, 4, 236, 182, 11, 4, 236, 184, 11, 4, 236, 183, 11, 4, 236, 188, 11,
+ 4, 236, 187, 11, 4, 236, 190, 11, 4, 236, 189, 11, 4, 236, 171, 11, 4,
+ 236, 173, 11, 4, 236, 172, 11, 4, 236, 176, 11, 4, 236, 175, 11, 4, 236,
+ 178, 11, 4, 236, 177, 11, 4, 236, 167, 11, 4, 236, 166, 11, 4, 236, 174,
+ 11, 4, 236, 170, 11, 4, 236, 168, 11, 4, 236, 169, 11, 4, 236, 161, 11,
+ 4, 236, 165, 11, 4, 236, 164, 11, 4, 236, 162, 11, 4, 236, 163, 11, 4,
+ 224, 93, 11, 4, 224, 92, 11, 4, 224, 155, 11, 4, 224, 99, 11, 4, 224,
+ 127, 11, 4, 224, 145, 11, 4, 224, 143, 11, 4, 225, 71, 11, 4, 225, 66,
+ 11, 4, 192, 11, 4, 225, 106, 11, 4, 223, 213, 11, 4, 223, 212, 11, 4,
+ 223, 216, 11, 4, 223, 214, 11, 4, 224, 21, 11, 4, 223, 252, 11, 4, 224,
+ 82, 11, 4, 224, 27, 11, 4, 224, 207, 11, 4, 225, 20, 11, 4, 223, 193, 11,
+ 4, 223, 189, 11, 4, 223, 246, 11, 4, 223, 209, 11, 4, 223, 202, 11, 4,
+ 223, 207, 11, 4, 223, 166, 11, 4, 223, 165, 11, 4, 223, 171, 11, 4, 223,
+ 168, 11, 4, 239, 236, 11, 4, 239, 230, 11, 4, 240, 26, 11, 4, 239, 251,
+ 11, 4, 240, 73, 11, 4, 240, 64, 11, 4, 240, 108, 11, 4, 240, 78, 11, 4,
+ 239, 139, 11, 4, 239, 186, 11, 4, 239, 167, 11, 4, 239, 91, 11, 4, 239,
+ 90, 11, 4, 239, 108, 11, 4, 239, 96, 11, 4, 239, 94, 11, 4, 239, 95, 11,
+ 4, 239, 78, 11, 4, 239, 77, 11, 4, 239, 81, 11, 4, 239, 79, 11, 4, 205,
+ 196, 11, 4, 205, 191, 11, 4, 205, 230, 11, 4, 205, 205, 11, 4, 205, 219,
+ 11, 4, 205, 216, 11, 4, 205, 222, 11, 4, 205, 221, 11, 4, 206, 63, 11, 4,
+ 206, 58, 11, 4, 206, 86, 11, 4, 206, 75, 11, 4, 205, 172, 11, 4, 205,
+ 168, 11, 4, 205, 189, 11, 4, 205, 174, 11, 4, 205, 233, 11, 4, 206, 44,
+ 11, 4, 204, 157, 11, 4, 204, 155, 11, 4, 204, 163, 11, 4, 204, 160, 11,
+ 4, 204, 158, 11, 4, 204, 159, 11, 4, 204, 148, 11, 4, 204, 147, 11, 4,
+ 204, 152, 11, 4, 204, 151, 11, 4, 204, 149, 11, 4, 204, 150, 11, 4, 243,
+ 147, 11, 4, 243, 134, 11, 4, 243, 233, 11, 4, 243, 173, 11, 4, 243, 208,
+ 11, 4, 243, 213, 11, 4, 243, 212, 11, 4, 244, 140, 11, 4, 244, 134, 11,
+ 4, 244, 212, 11, 4, 244, 160, 11, 4, 242, 25, 11, 4, 242, 26, 11, 4, 243,
+ 85, 11, 4, 242, 67, 11, 4, 243, 113, 11, 4, 243, 87, 11, 4, 244, 7, 11,
+ 4, 244, 75, 11, 4, 244, 28, 11, 4, 242, 16, 11, 4, 242, 14, 11, 4, 242,
+ 42, 11, 4, 242, 24, 11, 4, 242, 19, 11, 4, 242, 22, 11, 4, 208, 200, 11,
+ 4, 208, 192, 11, 4, 209, 2, 11, 4, 208, 210, 11, 4, 208, 248, 11, 4, 208,
+ 250, 11, 4, 208, 249, 11, 4, 209, 212, 11, 4, 209, 198, 11, 4, 210, 22,
+ 11, 4, 209, 222, 11, 4, 207, 185, 11, 4, 207, 184, 11, 4, 207, 187, 11,
+ 4, 207, 186, 11, 4, 208, 131, 11, 4, 208, 121, 11, 4, 135, 11, 4, 208,
+ 144, 11, 4, 209, 114, 11, 4, 209, 187, 11, 4, 209, 139, 11, 4, 207, 168,
+ 11, 4, 207, 163, 11, 4, 207, 203, 11, 4, 207, 183, 11, 4, 207, 169, 11,
+ 4, 207, 181, 11, 4, 244, 92, 11, 4, 244, 91, 11, 4, 244, 97, 11, 4, 244,
+ 93, 11, 4, 244, 94, 11, 4, 244, 96, 11, 4, 244, 95, 11, 4, 244, 113, 11,
+ 4, 244, 112, 11, 4, 244, 120, 11, 4, 244, 114, 11, 4, 244, 82, 11, 4,
+ 244, 84, 11, 4, 244, 83, 11, 4, 244, 87, 11, 4, 244, 86, 11, 4, 244, 90,
+ 11, 4, 244, 88, 11, 4, 244, 105, 11, 4, 244, 108, 11, 4, 244, 106, 11, 4,
+ 244, 78, 11, 4, 244, 77, 11, 4, 244, 85, 11, 4, 244, 81, 11, 4, 244, 79,
+ 11, 4, 244, 80, 11, 4, 223, 3, 11, 4, 223, 2, 11, 4, 223, 10, 11, 4, 223,
+ 5, 11, 4, 223, 6, 11, 4, 223, 7, 11, 4, 223, 19, 11, 4, 223, 18, 11, 4,
+ 223, 25, 11, 4, 223, 20, 11, 4, 222, 251, 11, 4, 222, 250, 11, 4, 223, 1,
+ 11, 4, 222, 252, 11, 4, 223, 11, 11, 4, 223, 17, 11, 4, 223, 15, 11, 4,
+ 222, 243, 11, 4, 222, 242, 11, 4, 222, 248, 11, 4, 222, 246, 11, 4, 222,
+ 244, 11, 4, 222, 245, 11, 4, 236, 146, 11, 4, 236, 145, 11, 4, 236, 152,
+ 11, 4, 236, 147, 11, 4, 236, 149, 11, 4, 236, 148, 11, 4, 236, 151, 11,
+ 4, 236, 150, 11, 4, 236, 158, 11, 4, 236, 156, 11, 4, 236, 160, 11, 4,
+ 236, 159, 11, 4, 236, 139, 11, 4, 236, 140, 11, 4, 236, 143, 11, 4, 236,
+ 142, 11, 4, 236, 144, 11, 4, 236, 153, 11, 4, 236, 155, 11, 4, 236, 154,
+ 11, 4, 236, 138, 11, 4, 222, 52, 11, 4, 222, 50, 11, 4, 222, 100, 11, 4,
+ 222, 55, 11, 4, 222, 82, 11, 4, 222, 96, 11, 4, 222, 95, 11, 4, 223, 61,
+ 11, 4, 201, 201, 11, 4, 223, 76, 11, 4, 221, 32, 11, 4, 221, 34, 11, 4,
+ 221, 33, 11, 4, 221, 165, 11, 4, 221, 150, 11, 4, 221, 191, 11, 4, 221,
+ 176, 11, 4, 222, 209, 11, 4, 222, 240, 11, 4, 222, 225, 11, 4, 221, 27,
+ 11, 4, 221, 23, 11, 4, 221, 84, 11, 4, 221, 31, 11, 4, 221, 29, 11, 4,
+ 221, 30, 11, 4, 236, 211, 11, 4, 236, 210, 11, 4, 236, 216, 11, 4, 236,
+ 212, 11, 4, 236, 213, 11, 4, 236, 215, 11, 4, 236, 214, 11, 4, 236, 222,
+ 11, 4, 236, 220, 11, 4, 236, 224, 11, 4, 236, 223, 11, 4, 236, 203, 11,
+ 4, 236, 205, 11, 4, 236, 204, 11, 4, 236, 207, 11, 4, 236, 209, 11, 4,
+ 236, 208, 11, 4, 236, 217, 11, 4, 236, 219, 11, 4, 236, 218, 11, 4, 236,
+ 199, 11, 4, 236, 198, 11, 4, 236, 206, 11, 4, 236, 202, 11, 4, 236, 200,
+ 11, 4, 236, 201, 11, 4, 236, 193, 11, 4, 236, 192, 11, 4, 236, 197, 11,
+ 4, 236, 196, 11, 4, 236, 194, 11, 4, 236, 195, 11, 4, 227, 90, 11, 4,
+ 227, 82, 11, 4, 227, 148, 11, 4, 227, 100, 11, 4, 227, 139, 11, 4, 227,
+ 138, 11, 4, 227, 142, 11, 4, 227, 140, 11, 4, 228, 0, 11, 4, 227, 245,
+ 11, 4, 228, 113, 11, 4, 228, 11, 11, 4, 226, 217, 11, 4, 226, 216, 11, 4,
+ 226, 219, 11, 4, 226, 218, 11, 4, 227, 6, 11, 4, 226, 248, 11, 4, 227,
+ 49, 11, 4, 227, 11, 11, 4, 227, 165, 11, 4, 227, 234, 11, 4, 227, 182,
+ 11, 4, 226, 211, 11, 4, 226, 209, 11, 4, 226, 239, 11, 4, 226, 215, 11,
+ 4, 226, 213, 11, 4, 226, 214, 11, 4, 226, 190, 11, 4, 226, 189, 11, 4,
+ 226, 199, 11, 4, 226, 193, 11, 4, 226, 191, 11, 4, 226, 192, 11, 4, 238,
+ 54, 11, 4, 238, 53, 11, 4, 238, 81, 11, 4, 238, 65, 11, 4, 238, 73, 11,
+ 4, 238, 72, 11, 4, 238, 75, 11, 4, 238, 74, 11, 4, 238, 217, 11, 4, 238,
+ 212, 11, 4, 239, 8, 11, 4, 238, 227, 11, 4, 237, 205, 11, 4, 237, 204,
+ 11, 4, 237, 207, 11, 4, 237, 206, 11, 4, 238, 18, 11, 4, 238, 16, 11, 4,
+ 238, 39, 11, 4, 238, 26, 11, 4, 238, 159, 11, 4, 238, 157, 11, 4, 238,
+ 190, 11, 4, 238, 170, 11, 4, 237, 194, 11, 4, 237, 193, 11, 4, 237, 230,
+ 11, 4, 237, 203, 11, 4, 237, 195, 11, 4, 237, 202, 11, 4, 229, 64, 11, 4,
+ 229, 61, 11, 4, 229, 100, 11, 4, 229, 78, 11, 4, 229, 89, 11, 4, 229, 93,
+ 11, 4, 229, 91, 11, 4, 229, 226, 11, 4, 229, 209, 11, 4, 173, 11, 4, 229,
+ 253, 11, 4, 228, 187, 11, 4, 228, 192, 11, 4, 228, 189, 11, 4, 228, 250,
+ 11, 4, 228, 245, 11, 4, 229, 26, 11, 4, 229, 1, 11, 4, 229, 170, 11, 4,
+ 229, 153, 11, 4, 229, 201, 11, 4, 229, 174, 11, 4, 228, 175, 11, 4, 228,
+ 171, 11, 4, 228, 209, 11, 4, 228, 186, 11, 4, 228, 179, 11, 4, 228, 183,
+ 11, 4, 238, 141, 11, 4, 238, 140, 11, 4, 238, 145, 11, 4, 238, 142, 11,
+ 4, 238, 144, 11, 4, 238, 143, 11, 4, 238, 152, 11, 4, 238, 151, 11, 4,
+ 238, 155, 11, 4, 238, 153, 11, 4, 238, 132, 11, 4, 238, 131, 11, 4, 238,
+ 134, 11, 4, 238, 133, 11, 4, 238, 137, 11, 4, 238, 136, 11, 4, 238, 139,
+ 11, 4, 238, 138, 11, 4, 238, 147, 11, 4, 238, 146, 11, 4, 238, 150, 11,
+ 4, 238, 148, 11, 4, 238, 127, 11, 4, 238, 126, 11, 4, 238, 135, 11, 4,
+ 238, 130, 11, 4, 238, 128, 11, 4, 238, 129, 11, 4, 224, 174, 11, 4, 224,
+ 175, 11, 4, 224, 193, 11, 4, 224, 192, 11, 4, 224, 195, 11, 4, 224, 194,
+ 11, 4, 224, 165, 11, 4, 224, 167, 11, 4, 224, 166, 11, 4, 224, 170, 11,
+ 4, 224, 169, 11, 4, 224, 172, 11, 4, 224, 171, 11, 4, 224, 176, 11, 4,
+ 224, 178, 11, 4, 224, 177, 11, 4, 224, 161, 11, 4, 224, 160, 11, 4, 224,
+ 168, 11, 4, 224, 164, 11, 4, 224, 162, 11, 4, 224, 163, 11, 4, 235, 233,
+ 11, 4, 235, 232, 11, 4, 235, 239, 11, 4, 235, 234, 11, 4, 235, 236, 11,
+ 4, 235, 235, 11, 4, 235, 238, 11, 4, 235, 237, 11, 4, 235, 244, 11, 4,
+ 235, 243, 11, 4, 235, 246, 11, 4, 235, 245, 11, 4, 235, 225, 11, 4, 235,
+ 224, 11, 4, 235, 227, 11, 4, 235, 226, 11, 4, 235, 229, 11, 4, 235, 228,
+ 11, 4, 235, 231, 11, 4, 235, 230, 11, 4, 235, 240, 11, 4, 235, 242, 11,
+ 4, 235, 241, 11, 4, 222, 148, 11, 4, 222, 150, 11, 4, 222, 149, 11, 4,
+ 222, 193, 11, 4, 222, 191, 11, 4, 222, 203, 11, 4, 222, 196, 11, 4, 222,
+ 110, 11, 4, 222, 109, 11, 4, 222, 111, 11, 4, 222, 120, 11, 4, 222, 117,
+ 11, 4, 222, 128, 11, 4, 222, 122, 11, 4, 222, 184, 11, 4, 222, 190, 11,
+ 4, 222, 186, 11, 4, 236, 230, 11, 4, 236, 245, 11, 4, 236, 254, 11, 4,
+ 237, 83, 11, 4, 237, 72, 11, 4, 152, 11, 4, 237, 94, 11, 4, 236, 6, 11,
+ 4, 236, 5, 11, 4, 236, 8, 11, 4, 236, 7, 11, 4, 236, 46, 11, 4, 236, 37,
+ 11, 4, 236, 136, 11, 4, 236, 109, 11, 4, 237, 18, 11, 4, 237, 67, 11, 4,
+ 237, 30, 11, 4, 204, 83, 11, 4, 204, 68, 11, 4, 204, 111, 11, 4, 204, 93,
+ 11, 4, 203, 206, 11, 4, 203, 208, 11, 4, 203, 207, 11, 4, 203, 229, 11,
+ 4, 204, 0, 11, 4, 203, 239, 11, 4, 204, 42, 11, 4, 204, 62, 11, 4, 204,
+ 47, 11, 4, 202, 24, 11, 4, 202, 23, 11, 4, 202, 39, 11, 4, 202, 27, 11,
+ 4, 202, 32, 11, 4, 202, 34, 11, 4, 202, 33, 11, 4, 202, 100, 11, 4, 202,
+ 97, 11, 4, 202, 116, 11, 4, 202, 104, 11, 4, 201, 255, 11, 4, 202, 1, 11,
+ 4, 202, 0, 11, 4, 202, 13, 11, 4, 202, 12, 11, 4, 202, 17, 11, 4, 202,
+ 14, 11, 4, 202, 82, 11, 4, 202, 92, 11, 4, 202, 86, 11, 4, 201, 251, 11,
+ 4, 201, 250, 11, 4, 202, 6, 11, 4, 201, 254, 11, 4, 201, 252, 11, 4, 201,
+ 253, 11, 4, 201, 237, 11, 4, 201, 236, 11, 4, 201, 242, 11, 4, 201, 240,
+ 11, 4, 201, 238, 11, 4, 201, 239, 11, 4, 246, 50, 11, 4, 246, 43, 11, 4,
+ 246, 79, 11, 4, 246, 63, 11, 4, 246, 76, 11, 4, 246, 70, 11, 4, 246, 78,
+ 11, 4, 246, 77, 11, 4, 247, 17, 11, 4, 247, 9, 11, 4, 247, 92, 11, 4,
+ 247, 48, 11, 4, 245, 101, 11, 4, 245, 103, 11, 4, 245, 102, 11, 4, 245,
+ 158, 11, 4, 245, 148, 11, 4, 245, 254, 11, 4, 245, 175, 11, 4, 246, 202,
+ 11, 4, 246, 238, 11, 4, 246, 207, 11, 4, 245, 77, 11, 4, 245, 75, 11, 4,
+ 245, 110, 11, 4, 245, 99, 11, 4, 245, 83, 11, 4, 245, 96, 11, 4, 245, 54,
+ 11, 4, 245, 53, 11, 4, 245, 66, 11, 4, 245, 60, 11, 4, 245, 55, 11, 4,
+ 245, 57, 11, 4, 201, 220, 11, 4, 201, 219, 11, 4, 201, 226, 11, 4, 201,
+ 221, 11, 4, 201, 223, 11, 4, 201, 222, 11, 4, 201, 225, 11, 4, 201, 224,
+ 11, 4, 201, 232, 11, 4, 201, 231, 11, 4, 201, 235, 11, 4, 201, 233, 11,
+ 4, 201, 216, 11, 4, 201, 218, 11, 4, 201, 217, 11, 4, 201, 227, 11, 4,
+ 201, 230, 11, 4, 201, 228, 11, 4, 201, 209, 11, 4, 201, 213, 11, 4, 201,
+ 212, 11, 4, 201, 210, 11, 4, 201, 211, 11, 4, 201, 203, 11, 4, 201, 202,
+ 11, 4, 201, 208, 11, 4, 201, 206, 11, 4, 201, 204, 11, 4, 201, 205, 11,
+ 4, 220, 201, 11, 4, 220, 200, 11, 4, 220, 206, 11, 4, 220, 202, 11, 4,
+ 220, 203, 11, 4, 220, 205, 11, 4, 220, 204, 11, 4, 220, 211, 11, 4, 220,
+ 210, 11, 4, 220, 214, 11, 4, 220, 213, 11, 4, 220, 194, 11, 4, 220, 195,
+ 11, 4, 220, 198, 11, 4, 220, 199, 11, 4, 220, 207, 11, 4, 220, 209, 11,
+ 4, 220, 189, 11, 4, 220, 197, 11, 4, 220, 193, 11, 4, 220, 190, 11, 4,
+ 220, 191, 11, 4, 220, 184, 11, 4, 220, 183, 11, 4, 220, 188, 11, 4, 220,
+ 187, 11, 4, 220, 185, 11, 4, 220, 186, 11, 4, 212, 90, 11, 4, 195, 11, 4,
+ 212, 162, 11, 4, 212, 93, 11, 4, 212, 150, 11, 4, 212, 153, 11, 4, 212,
+ 151, 11, 4, 214, 225, 11, 4, 214, 211, 11, 4, 215, 36, 11, 4, 214, 233,
+ 11, 4, 210, 204, 11, 4, 210, 206, 11, 4, 210, 205, 11, 4, 211, 244, 11,
+ 4, 211, 233, 11, 4, 212, 13, 11, 4, 211, 248, 11, 4, 213, 103, 11, 4,
+ 214, 177, 11, 4, 213, 132, 11, 4, 210, 181, 11, 4, 210, 178, 11, 4, 211,
+ 10, 11, 4, 210, 203, 11, 4, 210, 185, 11, 4, 210, 193, 11, 4, 210, 83,
+ 11, 4, 210, 82, 11, 4, 210, 151, 11, 4, 210, 91, 11, 4, 210, 85, 11, 4,
+ 210, 90, 11, 4, 211, 126, 11, 4, 211, 125, 11, 4, 211, 132, 11, 4, 211,
+ 127, 11, 4, 211, 129, 11, 4, 211, 131, 11, 4, 211, 130, 11, 4, 211, 141,
+ 11, 4, 211, 139, 11, 4, 211, 164, 11, 4, 211, 142, 11, 4, 211, 121, 11,
+ 4, 211, 120, 11, 4, 211, 124, 11, 4, 211, 122, 11, 4, 211, 135, 11, 4,
+ 211, 138, 11, 4, 211, 136, 11, 4, 211, 117, 11, 4, 211, 115, 11, 4, 211,
+ 119, 11, 4, 211, 118, 11, 4, 211, 110, 11, 4, 211, 109, 11, 4, 211, 114,
+ 11, 4, 211, 113, 11, 4, 211, 111, 11, 4, 211, 112, 11, 4, 202, 75, 11, 4,
+ 202, 74, 11, 4, 202, 80, 11, 4, 202, 77, 11, 4, 202, 54, 11, 4, 202, 56,
+ 11, 4, 202, 55, 11, 4, 202, 59, 11, 4, 202, 58, 11, 4, 202, 63, 11, 4,
+ 202, 60, 11, 4, 202, 68, 11, 4, 202, 67, 11, 4, 202, 71, 11, 4, 202, 69,
+ 11, 4, 202, 50, 11, 4, 202, 49, 11, 4, 202, 57, 11, 4, 202, 53, 11, 4,
+ 202, 51, 11, 4, 202, 52, 11, 4, 202, 42, 11, 4, 202, 41, 11, 4, 202, 46,
+ 11, 4, 202, 45, 11, 4, 202, 43, 11, 4, 202, 44, 11, 4, 246, 176, 11, 4,
+ 246, 172, 11, 4, 246, 199, 11, 4, 246, 185, 11, 4, 246, 94, 11, 4, 246,
+ 93, 11, 4, 246, 96, 11, 4, 246, 95, 11, 4, 246, 109, 11, 4, 246, 108, 11,
+ 4, 246, 116, 11, 4, 246, 111, 11, 4, 246, 147, 11, 4, 246, 145, 11, 4,
+ 246, 170, 11, 4, 246, 155, 11, 4, 246, 88, 11, 4, 246, 98, 11, 4, 246,
+ 92, 11, 4, 246, 89, 11, 4, 246, 91, 11, 4, 246, 81, 11, 4, 246, 80, 11,
+ 4, 246, 85, 11, 4, 246, 84, 11, 4, 246, 82, 11, 4, 246, 83, 11, 4, 215,
+ 181, 11, 4, 215, 185, 11, 4, 215, 163, 11, 4, 215, 164, 11, 4, 215, 168,
+ 11, 4, 215, 167, 11, 4, 215, 171, 11, 4, 215, 169, 11, 4, 215, 175, 11,
+ 4, 215, 174, 11, 4, 215, 180, 11, 4, 215, 176, 11, 4, 215, 159, 11, 4,
+ 215, 157, 11, 4, 215, 165, 11, 4, 215, 162, 11, 4, 215, 160, 11, 4, 215,
+ 161, 11, 4, 215, 152, 11, 4, 215, 151, 11, 4, 215, 156, 11, 4, 215, 155,
+ 11, 4, 215, 153, 11, 4, 215, 154, 11, 4, 221, 145, 11, 4, 221, 144, 11,
+ 4, 221, 147, 11, 4, 221, 146, 11, 4, 221, 136, 11, 4, 221, 138, 11, 4,
+ 221, 137, 11, 4, 221, 140, 11, 4, 221, 139, 11, 4, 221, 143, 11, 4, 221,
+ 142, 11, 4, 221, 130, 11, 4, 221, 129, 11, 4, 221, 135, 11, 4, 221, 133,
+ 11, 4, 221, 131, 11, 4, 221, 132, 11, 4, 221, 124, 11, 4, 221, 123, 11,
+ 4, 221, 128, 11, 4, 221, 127, 11, 4, 221, 125, 11, 4, 221, 126, 11, 4,
+ 213, 53, 11, 4, 213, 48, 11, 4, 213, 90, 11, 4, 213, 64, 11, 4, 212, 188,
+ 11, 4, 212, 190, 11, 4, 212, 189, 11, 4, 212, 212, 11, 4, 212, 208, 11,
+ 4, 212, 242, 11, 4, 212, 232, 11, 4, 213, 21, 11, 4, 213, 14, 11, 4, 213,
+ 43, 11, 4, 213, 30, 11, 4, 212, 184, 11, 4, 212, 181, 11, 4, 212, 199,
+ 11, 4, 212, 187, 11, 4, 212, 185, 11, 4, 212, 186, 11, 4, 212, 165, 11,
+ 4, 212, 164, 11, 4, 212, 171, 11, 4, 212, 168, 11, 4, 212, 166, 11, 4,
+ 212, 167, 11, 4, 216, 172, 11, 4, 216, 166, 11, 4, 216, 220, 11, 4, 216,
+ 178, 11, 4, 215, 122, 11, 4, 215, 124, 11, 4, 215, 123, 11, 4, 215, 199,
+ 11, 4, 215, 187, 11, 4, 215, 227, 11, 4, 215, 203, 11, 4, 216, 66, 11, 4,
+ 216, 158, 11, 4, 216, 105, 11, 4, 215, 115, 11, 4, 215, 112, 11, 4, 215,
+ 145, 11, 4, 215, 121, 11, 4, 215, 117, 11, 4, 215, 118, 11, 4, 215, 97,
+ 11, 4, 215, 96, 11, 4, 215, 102, 11, 4, 215, 100, 11, 4, 215, 98, 11, 4,
+ 215, 99, 11, 4, 230, 131, 11, 4, 230, 130, 11, 4, 230, 141, 11, 4, 230,
+ 132, 11, 4, 230, 137, 11, 4, 230, 136, 11, 4, 230, 139, 11, 4, 230, 138,
+ 11, 4, 230, 72, 11, 4, 230, 71, 11, 4, 230, 74, 11, 4, 230, 73, 11, 4,
+ 230, 88, 11, 4, 230, 86, 11, 4, 230, 101, 11, 4, 230, 90, 11, 4, 230, 65,
+ 11, 4, 230, 63, 11, 4, 230, 82, 11, 4, 230, 70, 11, 4, 230, 67, 11, 4,
+ 230, 68, 11, 4, 230, 57, 11, 4, 230, 56, 11, 4, 230, 61, 11, 4, 230, 60,
+ 11, 4, 230, 58, 11, 4, 230, 59, 11, 4, 217, 81, 11, 4, 217, 79, 11, 4,
+ 217, 88, 11, 4, 217, 82, 11, 4, 217, 85, 11, 4, 217, 84, 11, 4, 217, 87,
+ 11, 4, 217, 86, 11, 4, 217, 32, 11, 4, 217, 29, 11, 4, 217, 34, 11, 4,
+ 217, 33, 11, 4, 217, 68, 11, 4, 217, 67, 11, 4, 217, 77, 11, 4, 217, 71,
+ 11, 4, 217, 24, 11, 4, 217, 20, 11, 4, 217, 65, 11, 4, 217, 28, 11, 4,
+ 217, 26, 11, 4, 217, 27, 11, 4, 217, 4, 11, 4, 217, 2, 11, 4, 217, 14,
+ 11, 4, 217, 7, 11, 4, 217, 5, 11, 4, 217, 6, 11, 4, 230, 120, 11, 4, 230,
+ 119, 11, 4, 230, 126, 11, 4, 230, 121, 11, 4, 230, 123, 11, 4, 230, 122,
+ 11, 4, 230, 125, 11, 4, 230, 124, 11, 4, 230, 111, 11, 4, 230, 113, 11,
+ 4, 230, 112, 11, 4, 230, 116, 11, 4, 230, 115, 11, 4, 230, 118, 11, 4,
+ 230, 117, 11, 4, 230, 107, 11, 4, 230, 106, 11, 4, 230, 114, 11, 4, 230,
+ 110, 11, 4, 230, 108, 11, 4, 230, 109, 11, 4, 230, 103, 11, 4, 230, 102,
+ 11, 4, 230, 105, 11, 4, 230, 104, 11, 4, 222, 25, 11, 4, 222, 24, 11, 4,
+ 222, 32, 11, 4, 222, 26, 11, 4, 222, 28, 11, 4, 222, 27, 11, 4, 222, 31,
+ 11, 4, 222, 29, 11, 4, 222, 14, 11, 4, 222, 15, 11, 4, 222, 20, 11, 4,
+ 222, 19, 11, 4, 222, 23, 11, 4, 222, 21, 11, 4, 222, 9, 11, 4, 222, 18,
+ 11, 4, 222, 13, 11, 4, 222, 10, 11, 4, 222, 11, 11, 4, 222, 4, 11, 4,
+ 222, 3, 11, 4, 222, 8, 11, 4, 222, 7, 11, 4, 222, 5, 11, 4, 222, 6, 11,
+ 4, 220, 236, 11, 4, 220, 235, 11, 4, 220, 248, 11, 4, 220, 240, 11, 4,
+ 220, 245, 11, 4, 220, 244, 11, 4, 220, 247, 11, 4, 220, 246, 11, 4, 220,
+ 221, 11, 4, 220, 223, 11, 4, 220, 222, 11, 4, 220, 228, 11, 4, 220, 227,
+ 11, 4, 220, 233, 11, 4, 220, 229, 11, 4, 220, 219, 11, 4, 220, 217, 11,
+ 4, 220, 226, 11, 4, 220, 220, 11, 4, 203, 162, 11, 4, 203, 161, 11, 4,
+ 203, 170, 11, 4, 203, 164, 11, 4, 203, 166, 11, 4, 203, 165, 11, 4, 203,
+ 168, 11, 4, 203, 167, 11, 4, 203, 150, 11, 4, 203, 151, 11, 4, 203, 155,
+ 11, 4, 203, 154, 11, 4, 203, 160, 11, 4, 203, 158, 11, 4, 203, 128, 11,
+ 4, 203, 126, 11, 4, 203, 141, 11, 4, 203, 131, 11, 4, 203, 129, 11, 4,
+ 203, 130, 11, 4, 202, 253, 11, 4, 202, 251, 11, 4, 203, 11, 11, 4, 202,
+ 254, 11, 4, 203, 5, 11, 4, 203, 4, 11, 4, 203, 8, 11, 4, 203, 6, 11, 4,
+ 202, 191, 11, 4, 202, 190, 11, 4, 202, 194, 11, 4, 202, 192, 11, 4, 202,
+ 227, 11, 4, 202, 223, 11, 4, 202, 247, 11, 4, 202, 231, 11, 4, 202, 182,
+ 11, 4, 202, 178, 11, 4, 202, 213, 11, 4, 202, 189, 11, 4, 202, 185, 11,
+ 4, 202, 186, 11, 4, 202, 162, 11, 4, 202, 161, 11, 4, 202, 169, 11, 4,
+ 202, 165, 11, 4, 202, 163, 11, 4, 202, 164, 11, 40, 217, 68, 11, 40, 227,
+ 148, 11, 40, 229, 64, 11, 40, 220, 240, 11, 40, 245, 60, 11, 40, 211,
+ 132, 11, 40, 238, 138, 11, 40, 238, 170, 11, 40, 224, 155, 11, 40, 235,
+ 233, 11, 40, 226, 192, 11, 40, 248, 170, 11, 40, 224, 27, 11, 40, 202,
+ 247, 11, 40, 217, 159, 11, 40, 235, 227, 11, 40, 209, 212, 11, 40, 239,
+ 8, 11, 40, 201, 254, 11, 40, 245, 54, 11, 40, 244, 80, 11, 40, 247, 160,
+ 11, 40, 238, 134, 11, 40, 220, 229, 11, 40, 207, 203, 11, 40, 220, 9, 11,
+ 40, 230, 107, 11, 40, 202, 13, 11, 40, 217, 138, 11, 40, 236, 178, 11,
+ 40, 202, 253, 11, 40, 204, 159, 11, 40, 212, 171, 11, 40, 206, 44, 11,
+ 40, 202, 116, 11, 40, 230, 101, 11, 40, 220, 193, 11, 40, 230, 105, 11,
+ 40, 238, 18, 11, 40, 230, 125, 11, 40, 204, 0, 11, 40, 242, 42, 11, 40,
+ 212, 186, 11, 40, 227, 142, 11, 40, 245, 66, 11, 40, 245, 102, 11, 40,
+ 246, 63, 11, 40, 235, 230, 11, 40, 213, 53, 11, 40, 201, 253, 11, 40,
+ 212, 232, 11, 40, 246, 170, 11, 40, 201, 223, 11, 40, 223, 51, 11, 40,
+ 229, 201, 227, 91, 1, 249, 32, 227, 91, 1, 185, 227, 91, 1, 218, 208,
+ 227, 91, 1, 244, 212, 227, 91, 1, 210, 22, 227, 91, 1, 209, 108, 227, 91,
+ 1, 239, 8, 227, 91, 1, 173, 227, 91, 1, 229, 144, 227, 91, 1, 230, 181,
+ 227, 91, 1, 247, 92, 227, 91, 1, 246, 199, 227, 91, 1, 241, 255, 227, 91,
+ 1, 208, 20, 227, 91, 1, 208, 10, 227, 91, 1, 192, 227, 91, 1, 201, 201,
+ 227, 91, 1, 228, 113, 227, 91, 1, 215, 36, 227, 91, 1, 202, 80, 227, 91,
+ 1, 202, 116, 227, 91, 1, 222, 203, 227, 91, 1, 152, 227, 91, 1, 203, 182,
+ 227, 91, 1, 237, 12, 227, 91, 1, 240, 108, 227, 91, 1, 204, 111, 227, 91,
+ 1, 213, 90, 227, 91, 1, 198, 227, 91, 1, 238, 119, 227, 91, 1, 63, 227,
+ 91, 1, 251, 109, 227, 91, 1, 74, 227, 91, 1, 240, 238, 227, 91, 1, 75,
+ 227, 91, 1, 78, 227, 91, 1, 68, 227, 91, 1, 207, 24, 227, 91, 1, 207, 18,
+ 227, 91, 1, 220, 73, 227, 91, 1, 143, 223, 170, 209, 2, 227, 91, 1, 143,
+ 223, 111, 218, 69, 227, 91, 1, 143, 223, 170, 245, 65, 227, 91, 1, 143,
+ 223, 170, 248, 23, 227, 91, 1, 143, 223, 170, 201, 201, 227, 91, 1, 143,
+ 223, 170, 230, 150, 227, 91, 217, 179, 245, 233, 227, 91, 217, 179, 239,
+ 102, 211, 61, 48, 4, 241, 161, 48, 4, 241, 157, 48, 4, 237, 48, 48, 4,
+ 204, 55, 48, 4, 204, 54, 48, 4, 219, 23, 48, 4, 248, 93, 48, 4, 248, 150,
+ 48, 4, 225, 46, 48, 4, 228, 239, 48, 4, 224, 187, 48, 4, 238, 203, 48, 4,
+ 240, 53, 48, 4, 206, 50, 48, 4, 209, 176, 48, 4, 209, 90, 48, 4, 243,
+ 247, 48, 4, 243, 244, 48, 4, 227, 226, 48, 4, 216, 135, 48, 4, 244, 61,
+ 48, 4, 223, 16, 48, 4, 214, 165, 48, 4, 213, 41, 48, 4, 202, 90, 48, 4,
+ 202, 70, 48, 4, 246, 230, 48, 4, 230, 159, 48, 4, 222, 39, 48, 4, 203,
+ 49, 48, 4, 229, 198, 48, 4, 222, 176, 48, 4, 238, 182, 48, 4, 225, 8, 48,
+ 4, 222, 235, 48, 4, 221, 0, 48, 4, 75, 48, 4, 231, 49, 48, 4, 237, 3, 48,
+ 4, 236, 238, 48, 4, 204, 30, 48, 4, 204, 18, 48, 4, 218, 167, 48, 4, 248,
+ 91, 48, 4, 248, 86, 48, 4, 225, 39, 48, 4, 228, 236, 48, 4, 224, 184, 48,
+ 4, 238, 199, 48, 4, 240, 26, 48, 4, 205, 230, 48, 4, 209, 2, 48, 4, 209,
+ 70, 48, 4, 243, 239, 48, 4, 243, 243, 48, 4, 227, 148, 48, 4, 216, 57,
+ 48, 4, 243, 233, 48, 4, 223, 10, 48, 4, 212, 162, 48, 4, 213, 11, 48, 4,
+ 202, 39, 48, 4, 202, 66, 48, 4, 246, 79, 48, 4, 230, 141, 48, 4, 222, 32,
+ 48, 4, 203, 11, 48, 4, 229, 100, 48, 4, 222, 168, 48, 4, 238, 81, 48, 4,
+ 224, 155, 48, 4, 222, 100, 48, 4, 220, 248, 48, 4, 63, 48, 4, 250, 231,
+ 48, 4, 222, 198, 48, 4, 152, 48, 4, 237, 126, 48, 4, 204, 111, 48, 4,
+ 204, 97, 48, 4, 185, 48, 4, 248, 98, 48, 4, 249, 32, 48, 4, 225, 54, 48,
+ 4, 228, 244, 48, 4, 228, 242, 48, 4, 224, 191, 48, 4, 238, 207, 48, 4,
+ 240, 108, 48, 4, 206, 86, 48, 4, 210, 22, 48, 4, 209, 108, 48, 4, 244, 1,
+ 48, 4, 243, 246, 48, 4, 228, 113, 48, 4, 216, 220, 48, 4, 244, 212, 48,
+ 4, 223, 25, 48, 4, 215, 36, 48, 4, 213, 90, 48, 4, 202, 116, 48, 4, 202,
+ 80, 48, 4, 247, 92, 48, 4, 230, 181, 48, 4, 222, 48, 48, 4, 198, 48, 4,
+ 173, 48, 4, 230, 4, 48, 4, 222, 182, 48, 4, 239, 8, 48, 4, 192, 48, 4,
+ 201, 201, 48, 4, 221, 11, 48, 4, 220, 18, 48, 4, 220, 13, 48, 4, 236,
+ 117, 48, 4, 203, 244, 48, 4, 203, 240, 48, 4, 218, 45, 48, 4, 248, 89,
+ 48, 4, 248, 10, 48, 4, 225, 34, 48, 4, 228, 234, 48, 4, 224, 180, 48, 4,
+ 238, 195, 48, 4, 239, 175, 48, 4, 205, 176, 48, 4, 208, 148, 48, 4, 209,
+ 42, 48, 4, 243, 236, 48, 4, 243, 241, 48, 4, 227, 18, 48, 4, 215, 208,
+ 48, 4, 243, 90, 48, 4, 222, 253, 48, 4, 211, 250, 48, 4, 212, 236, 48, 4,
+ 202, 15, 48, 4, 202, 61, 48, 4, 245, 180, 48, 4, 230, 91, 48, 4, 222, 22,
+ 48, 4, 202, 232, 48, 4, 229, 6, 48, 4, 222, 166, 48, 4, 238, 28, 48, 4,
+ 224, 35, 48, 4, 221, 180, 48, 4, 220, 230, 48, 4, 68, 48, 4, 206, 255,
+ 48, 4, 236, 26, 48, 4, 236, 13, 48, 4, 203, 217, 48, 4, 203, 210, 48, 4,
+ 217, 191, 48, 4, 248, 88, 48, 4, 247, 193, 48, 4, 225, 33, 48, 4, 228,
+ 232, 48, 4, 224, 179, 48, 4, 238, 194, 48, 4, 239, 108, 48, 4, 204, 163,
+ 48, 4, 207, 203, 48, 4, 209, 22, 48, 4, 243, 234, 48, 4, 243, 240, 48, 4,
+ 226, 239, 48, 4, 215, 145, 48, 4, 242, 42, 48, 4, 222, 248, 48, 4, 211,
+ 10, 48, 4, 212, 199, 48, 4, 202, 6, 48, 4, 202, 57, 48, 4, 245, 110, 48,
+ 4, 230, 82, 48, 4, 222, 18, 48, 4, 202, 213, 48, 4, 228, 209, 48, 4, 222,
+ 165, 48, 4, 237, 230, 48, 4, 223, 246, 48, 4, 221, 84, 48, 4, 220, 226,
+ 48, 4, 78, 48, 4, 220, 31, 48, 4, 222, 124, 48, 4, 236, 136, 48, 4, 236,
+ 120, 48, 4, 204, 0, 48, 4, 203, 245, 48, 4, 218, 69, 48, 4, 248, 90, 48,
+ 4, 248, 23, 48, 4, 225, 35, 48, 4, 228, 235, 48, 4, 224, 182, 48, 4, 238,
+ 197, 48, 4, 238, 196, 48, 4, 239, 186, 48, 4, 205, 189, 48, 4, 135, 48,
+ 4, 209, 47, 48, 4, 243, 237, 48, 4, 243, 242, 48, 4, 227, 49, 48, 4, 215,
+ 227, 48, 4, 243, 113, 48, 4, 223, 1, 48, 4, 212, 13, 48, 4, 212, 242, 48,
+ 4, 202, 17, 48, 4, 202, 63, 48, 4, 245, 254, 48, 4, 230, 101, 48, 4, 222,
+ 23, 48, 4, 202, 247, 48, 4, 229, 26, 48, 4, 222, 167, 48, 4, 238, 39, 48,
+ 4, 224, 82, 48, 4, 221, 191, 48, 4, 220, 233, 48, 4, 74, 48, 4, 241, 92,
+ 48, 4, 222, 187, 48, 4, 237, 67, 48, 4, 237, 33, 48, 4, 204, 62, 48, 4,
+ 204, 49, 48, 4, 219, 34, 48, 4, 248, 94, 48, 4, 248, 162, 48, 4, 225, 47,
+ 48, 4, 228, 240, 48, 4, 228, 238, 48, 4, 224, 188, 48, 4, 238, 204, 48,
+ 4, 238, 202, 48, 4, 240, 60, 48, 4, 206, 55, 48, 4, 209, 187, 48, 4, 209,
+ 92, 48, 4, 243, 248, 48, 4, 243, 245, 48, 4, 227, 234, 48, 4, 216, 158,
+ 48, 4, 244, 75, 48, 4, 223, 17, 48, 4, 214, 177, 48, 4, 213, 43, 48, 4,
+ 202, 92, 48, 4, 202, 71, 48, 4, 246, 238, 48, 4, 230, 161, 48, 4, 222,
+ 41, 48, 4, 203, 52, 48, 4, 229, 201, 48, 4, 222, 177, 48, 4, 222, 173,
+ 48, 4, 238, 190, 48, 4, 238, 177, 48, 4, 225, 20, 48, 4, 222, 240, 48, 4,
+ 221, 1, 48, 4, 222, 205, 48, 4, 227, 188, 48, 245, 233, 48, 239, 102,
+ 211, 61, 48, 217, 47, 82, 48, 4, 223, 0, 240, 108, 48, 4, 223, 0, 173,
+ 48, 4, 223, 0, 211, 250, 48, 16, 240, 49, 48, 16, 229, 196, 48, 16, 208,
+ 215, 48, 16, 222, 75, 48, 16, 248, 237, 48, 16, 240, 107, 48, 16, 210,
+ 18, 48, 16, 244, 164, 48, 16, 243, 89, 48, 16, 228, 193, 48, 16, 208,
+ 152, 48, 16, 243, 112, 48, 16, 230, 92, 48, 17, 202, 84, 48, 17, 105, 48,
+ 17, 108, 48, 17, 147, 48, 17, 149, 48, 17, 170, 48, 17, 195, 48, 17, 213,
+ 111, 48, 17, 199, 48, 17, 222, 63, 48, 4, 223, 0, 192, 48, 4, 223, 0,
+ 243, 113, 36, 6, 1, 202, 88, 36, 5, 1, 202, 88, 36, 6, 1, 241, 250, 36,
+ 5, 1, 241, 250, 36, 6, 1, 216, 73, 241, 252, 36, 5, 1, 216, 73, 241, 252,
+ 36, 6, 1, 230, 230, 36, 5, 1, 230, 230, 36, 6, 1, 243, 129, 36, 5, 1,
+ 243, 129, 36, 6, 1, 224, 43, 207, 14, 36, 5, 1, 224, 43, 207, 14, 36, 6,
+ 1, 247, 204, 220, 36, 36, 5, 1, 247, 204, 220, 36, 36, 6, 1, 222, 216,
+ 203, 34, 36, 5, 1, 222, 216, 203, 34, 36, 6, 1, 203, 31, 3, 249, 26, 203,
+ 34, 36, 5, 1, 203, 31, 3, 249, 26, 203, 34, 36, 6, 1, 230, 228, 203, 66,
+ 36, 5, 1, 230, 228, 203, 66, 36, 6, 1, 216, 73, 202, 213, 36, 5, 1, 216,
+ 73, 202, 213, 36, 6, 1, 230, 228, 63, 36, 5, 1, 230, 228, 63, 36, 6, 1,
+ 246, 16, 227, 86, 202, 183, 36, 5, 1, 246, 16, 227, 86, 202, 183, 36, 6,
+ 1, 248, 35, 202, 183, 36, 5, 1, 248, 35, 202, 183, 36, 6, 1, 230, 228,
+ 246, 16, 227, 86, 202, 183, 36, 5, 1, 230, 228, 246, 16, 227, 86, 202,
+ 183, 36, 6, 1, 202, 249, 36, 5, 1, 202, 249, 36, 6, 1, 216, 73, 208, 14,
+ 36, 5, 1, 216, 73, 208, 14, 36, 6, 1, 212, 7, 244, 75, 36, 5, 1, 212, 7,
+ 244, 75, 36, 6, 1, 212, 7, 241, 122, 36, 5, 1, 212, 7, 241, 122, 36, 6,
+ 1, 212, 7, 241, 103, 36, 5, 1, 212, 7, 241, 103, 36, 6, 1, 224, 47, 78,
+ 36, 5, 1, 224, 47, 78, 36, 6, 1, 248, 63, 78, 36, 5, 1, 248, 63, 78, 36,
+ 6, 1, 52, 224, 47, 78, 36, 5, 1, 52, 224, 47, 78, 36, 1, 223, 227, 78,
+ 39, 36, 204, 146, 39, 36, 209, 153, 224, 114, 54, 39, 36, 236, 12, 224,
+ 114, 54, 39, 36, 209, 37, 224, 114, 54, 212, 55, 250, 59, 39, 36, 1, 207,
+ 11, 231, 110, 39, 36, 1, 75, 39, 36, 1, 203, 11, 39, 36, 1, 68, 39, 36,
+ 1, 237, 91, 54, 39, 36, 1, 203, 30, 39, 36, 1, 212, 7, 54, 39, 36, 1,
+ 220, 36, 39, 36, 229, 213, 39, 36, 219, 41, 36, 229, 213, 36, 219, 41,
+ 36, 6, 1, 242, 9, 36, 5, 1, 242, 9, 36, 6, 1, 241, 241, 36, 5, 1, 241,
+ 241, 36, 6, 1, 202, 47, 36, 5, 1, 202, 47, 36, 6, 1, 246, 254, 36, 5, 1,
+ 246, 254, 36, 6, 1, 241, 238, 36, 5, 1, 241, 238, 36, 6, 1, 209, 188, 3,
+ 101, 113, 36, 5, 1, 209, 188, 3, 101, 113, 36, 6, 1, 207, 158, 36, 5, 1,
+ 207, 158, 36, 6, 1, 207, 245, 36, 5, 1, 207, 245, 36, 6, 1, 207, 250, 36,
+ 5, 1, 207, 250, 36, 6, 1, 209, 193, 36, 5, 1, 209, 193, 36, 6, 1, 235,
+ 251, 36, 5, 1, 235, 251, 36, 6, 1, 212, 177, 36, 5, 1, 212, 177, 36, 6,
+ 1, 52, 78, 36, 5, 1, 52, 78, 36, 6, 1, 245, 128, 78, 36, 5, 1, 245, 128,
+ 78, 65, 1, 36, 237, 91, 54, 65, 1, 36, 212, 7, 54, 39, 36, 1, 241, 154,
+ 39, 36, 1, 230, 228, 74, 24, 1, 63, 24, 1, 173, 24, 1, 68, 24, 1, 228,
+ 209, 24, 1, 241, 161, 24, 1, 216, 135, 24, 1, 210, 1, 24, 1, 78, 24, 1,
+ 220, 248, 24, 1, 75, 24, 1, 228, 113, 24, 1, 185, 24, 1, 216, 3, 24, 1,
+ 216, 50, 24, 1, 227, 225, 24, 1, 225, 7, 24, 1, 210, 18, 24, 1, 223, 23,
+ 24, 1, 222, 46, 24, 1, 226, 185, 24, 1, 210, 179, 24, 1, 223, 246, 24, 1,
+ 213, 6, 24, 1, 212, 162, 24, 1, 213, 16, 24, 1, 213, 113, 24, 1, 228,
+ 137, 24, 1, 229, 170, 24, 1, 221, 55, 24, 1, 221, 84, 24, 1, 222, 17, 24,
+ 1, 202, 229, 24, 1, 212, 199, 24, 1, 202, 187, 24, 1, 198, 24, 1, 221,
+ 118, 24, 1, 229, 156, 24, 1, 218, 212, 24, 1, 222, 39, 24, 1, 221, 99,
+ 24, 1, 217, 183, 24, 1, 203, 214, 24, 1, 219, 23, 24, 1, 240, 53, 24, 1,
+ 215, 145, 24, 1, 226, 239, 24, 1, 224, 155, 24, 1, 222, 100, 24, 1, 216,
+ 75, 24, 1, 216, 202, 24, 1, 229, 180, 24, 1, 222, 131, 24, 1, 222, 182,
+ 24, 1, 222, 203, 24, 1, 212, 242, 24, 1, 217, 188, 24, 1, 239, 108, 24,
+ 1, 239, 179, 24, 1, 204, 111, 24, 1, 201, 201, 24, 1, 227, 148, 24, 1,
+ 218, 167, 24, 1, 227, 10, 24, 1, 229, 26, 24, 1, 225, 44, 24, 1, 216,
+ 107, 24, 1, 224, 240, 24, 1, 192, 24, 1, 209, 2, 24, 1, 229, 100, 24, 1,
+ 224, 82, 24, 1, 225, 52, 24, 1, 209, 132, 24, 1, 228, 244, 24, 1, 209,
+ 152, 24, 1, 221, 86, 24, 1, 214, 251, 24, 1, 240, 104, 24, 1, 228, 246,
+ 24, 1, 229, 21, 24, 39, 131, 228, 255, 24, 39, 131, 207, 194, 24, 222,
+ 45, 24, 239, 102, 211, 61, 24, 245, 242, 24, 245, 233, 24, 213, 143, 24,
+ 217, 47, 82, 65, 1, 246, 128, 143, 203, 1, 218, 119, 65, 1, 246, 128,
+ 143, 203, 77, 218, 119, 65, 1, 246, 128, 143, 203, 1, 213, 65, 65, 1,
+ 246, 128, 143, 203, 77, 213, 65, 65, 1, 246, 128, 143, 203, 1, 217, 65,
+ 65, 1, 246, 128, 143, 203, 77, 217, 65, 65, 1, 246, 128, 143, 203, 1,
+ 215, 145, 65, 1, 246, 128, 143, 203, 77, 215, 145, 65, 1, 240, 198, 242,
+ 83, 143, 142, 65, 1, 138, 242, 83, 143, 142, 65, 1, 224, 150, 242, 83,
+ 143, 142, 65, 1, 124, 242, 83, 143, 142, 65, 1, 240, 197, 242, 83, 143,
+ 142, 65, 1, 240, 198, 242, 83, 227, 214, 143, 142, 65, 1, 138, 242, 83,
+ 227, 214, 143, 142, 65, 1, 224, 150, 242, 83, 227, 214, 143, 142, 65, 1,
+ 124, 242, 83, 227, 214, 143, 142, 65, 1, 240, 197, 242, 83, 227, 214,
+ 143, 142, 65, 1, 240, 198, 227, 214, 143, 142, 65, 1, 138, 227, 214, 143,
+ 142, 65, 1, 224, 150, 227, 214, 143, 142, 65, 1, 124, 227, 214, 143, 142,
+ 65, 1, 240, 197, 227, 214, 143, 142, 65, 1, 70, 80, 142, 65, 1, 70, 212,
+ 57, 65, 1, 70, 236, 106, 142, 65, 1, 226, 251, 50, 245, 166, 250, 217,
+ 65, 1, 216, 188, 112, 47, 65, 1, 216, 188, 121, 47, 65, 1, 216, 188, 240,
+ 212, 82, 65, 1, 216, 188, 230, 239, 240, 212, 82, 65, 1, 124, 230, 239,
+ 240, 212, 82, 65, 1, 211, 42, 25, 138, 208, 161, 65, 1, 211, 42, 25, 124,
+ 208, 161, 8, 6, 1, 241, 149, 251, 30, 8, 5, 1, 241, 149, 251, 30, 8, 6,
+ 1, 241, 149, 251, 59, 8, 5, 1, 241, 149, 251, 59, 8, 6, 1, 237, 31, 8, 5,
+ 1, 237, 31, 8, 6, 1, 207, 107, 8, 5, 1, 207, 107, 8, 6, 1, 208, 89, 8, 5,
+ 1, 208, 89, 8, 6, 1, 245, 107, 8, 5, 1, 245, 107, 8, 6, 1, 245, 108, 3,
+ 245, 233, 8, 5, 1, 245, 108, 3, 245, 233, 8, 1, 5, 6, 240, 174, 8, 1, 5,
+ 6, 194, 8, 6, 1, 252, 25, 8, 5, 1, 252, 25, 8, 6, 1, 250, 178, 8, 5, 1,
+ 250, 178, 8, 6, 1, 250, 34, 8, 5, 1, 250, 34, 8, 6, 1, 250, 18, 8, 5, 1,
+ 250, 18, 8, 6, 1, 250, 19, 3, 236, 106, 142, 8, 5, 1, 250, 19, 3, 236,
+ 106, 142, 8, 6, 1, 250, 8, 8, 5, 1, 250, 8, 8, 6, 1, 216, 73, 247, 126,
+ 3, 243, 85, 8, 5, 1, 216, 73, 247, 126, 3, 243, 85, 8, 6, 1, 230, 55, 3,
+ 95, 8, 5, 1, 230, 55, 3, 95, 8, 6, 1, 230, 55, 3, 243, 228, 95, 8, 5, 1,
+ 230, 55, 3, 243, 228, 95, 8, 6, 1, 230, 55, 3, 211, 32, 25, 243, 228, 95,
+ 8, 5, 1, 230, 55, 3, 211, 32, 25, 243, 228, 95, 8, 6, 1, 247, 203, 159,
+ 8, 5, 1, 247, 203, 159, 8, 6, 1, 228, 131, 3, 138, 95, 8, 5, 1, 228, 131,
+ 3, 138, 95, 8, 6, 1, 158, 3, 163, 211, 32, 219, 199, 8, 5, 1, 158, 3,
+ 163, 211, 32, 219, 199, 8, 6, 1, 158, 3, 227, 14, 8, 5, 1, 158, 3, 227,
+ 14, 8, 6, 1, 220, 18, 8, 5, 1, 220, 18, 8, 6, 1, 219, 185, 3, 211, 32,
+ 209, 25, 244, 20, 8, 5, 1, 219, 185, 3, 211, 32, 209, 25, 244, 20, 8, 6,
+ 1, 219, 185, 3, 239, 199, 8, 5, 1, 219, 185, 3, 239, 199, 8, 6, 1, 219,
+ 185, 3, 211, 170, 209, 248, 8, 5, 1, 219, 185, 3, 211, 170, 209, 248, 8,
+ 6, 1, 217, 135, 3, 211, 32, 209, 25, 244, 20, 8, 5, 1, 217, 135, 3, 211,
+ 32, 209, 25, 244, 20, 8, 6, 1, 217, 135, 3, 243, 228, 95, 8, 5, 1, 217,
+ 135, 3, 243, 228, 95, 8, 6, 1, 217, 1, 215, 192, 8, 5, 1, 217, 1, 215,
+ 192, 8, 6, 1, 215, 132, 215, 192, 8, 5, 1, 215, 132, 215, 192, 8, 6, 1,
+ 206, 165, 3, 243, 228, 95, 8, 5, 1, 206, 165, 3, 243, 228, 95, 8, 6, 1,
+ 204, 152, 8, 5, 1, 204, 152, 8, 6, 1, 205, 197, 202, 159, 8, 5, 1, 205,
+ 197, 202, 159, 8, 6, 1, 209, 41, 3, 95, 8, 5, 1, 209, 41, 3, 95, 8, 6, 1,
+ 209, 41, 3, 211, 32, 209, 25, 244, 20, 8, 5, 1, 209, 41, 3, 211, 32, 209,
+ 25, 244, 20, 8, 6, 1, 206, 45, 8, 5, 1, 206, 45, 8, 6, 1, 240, 250, 8, 5,
+ 1, 240, 250, 8, 6, 1, 230, 215, 8, 5, 1, 230, 215, 8, 6, 1, 245, 218, 8,
+ 5, 1, 245, 218, 65, 1, 206, 193, 8, 5, 1, 242, 32, 8, 5, 1, 226, 222, 8,
+ 5, 1, 223, 220, 8, 5, 1, 221, 47, 8, 5, 1, 215, 131, 8, 1, 5, 6, 215,
+ 131, 8, 5, 1, 207, 191, 8, 5, 1, 207, 6, 8, 6, 1, 231, 4, 245, 51, 8, 5,
+ 1, 231, 4, 245, 51, 8, 6, 1, 231, 4, 240, 174, 8, 5, 1, 231, 4, 240, 174,
+ 8, 6, 1, 231, 4, 239, 75, 8, 6, 1, 207, 174, 231, 4, 239, 75, 8, 5, 1,
+ 207, 174, 231, 4, 239, 75, 8, 6, 1, 207, 174, 159, 8, 5, 1, 207, 174,
+ 159, 8, 6, 1, 231, 4, 146, 8, 5, 1, 231, 4, 146, 8, 6, 1, 231, 4, 194, 8,
+ 5, 1, 231, 4, 194, 8, 6, 1, 231, 4, 210, 69, 8, 5, 1, 231, 4, 210, 69,
+ 65, 1, 124, 246, 53, 251, 138, 65, 1, 245, 242, 65, 1, 212, 228, 241, 35,
+ 54, 8, 6, 1, 214, 255, 8, 5, 1, 214, 255, 8, 6, 1, 207, 174, 237, 171, 8,
+ 5, 1, 228, 131, 3, 216, 79, 236, 116, 25, 248, 124, 8, 1, 212, 114, 243,
+ 85, 8, 6, 1, 223, 164, 3, 244, 20, 8, 5, 1, 223, 164, 3, 244, 20, 8, 6,
+ 1, 247, 126, 3, 142, 8, 5, 1, 247, 126, 3, 142, 8, 5, 1, 247, 126, 3,
+ 219, 142, 113, 8, 5, 1, 237, 172, 3, 219, 142, 113, 8, 6, 1, 66, 3, 239,
+ 199, 8, 5, 1, 66, 3, 239, 199, 8, 6, 1, 240, 175, 3, 95, 8, 5, 1, 240,
+ 175, 3, 95, 8, 6, 1, 205, 182, 251, 109, 8, 5, 1, 205, 182, 251, 109, 8,
+ 6, 1, 205, 182, 220, 73, 8, 5, 1, 205, 182, 220, 73, 8, 6, 1, 205, 182,
+ 207, 24, 8, 5, 1, 205, 182, 207, 24, 8, 6, 1, 239, 76, 3, 220, 89, 95, 8,
+ 5, 1, 239, 76, 3, 220, 89, 95, 8, 6, 1, 230, 55, 3, 220, 89, 95, 8, 5, 1,
+ 230, 55, 3, 220, 89, 95, 8, 6, 1, 223, 164, 3, 220, 89, 95, 8, 5, 1, 223,
+ 164, 3, 220, 89, 95, 8, 6, 1, 217, 1, 3, 220, 89, 95, 8, 5, 1, 217, 1, 3,
+ 220, 89, 95, 8, 6, 1, 215, 94, 3, 220, 89, 95, 8, 5, 1, 215, 94, 3, 220,
+ 89, 95, 8, 6, 1, 237, 172, 3, 113, 8, 6, 1, 216, 73, 171, 74, 8, 6, 1,
+ 132, 239, 75, 8, 6, 1, 228, 131, 3, 248, 124, 8, 6, 1, 207, 174, 230, 54,
+ 8, 6, 1, 207, 174, 210, 69, 8, 6, 1, 230, 185, 3, 245, 126, 8, 6, 1, 246,
+ 142, 8, 6, 1, 248, 106, 8, 5, 1, 248, 106, 8, 6, 1, 220, 36, 8, 5, 1,
+ 220, 36, 8, 241, 40, 1, 212, 154, 75, 65, 1, 6, 237, 172, 3, 95, 65, 1,
+ 5, 32, 220, 73, 8, 1, 5, 6, 207, 174, 226, 185, 8, 241, 40, 1, 216, 73,
+ 240, 174, 8, 241, 40, 1, 216, 73, 219, 184, 8, 241, 40, 1, 230, 239, 226,
+ 185, 8, 241, 40, 1, 235, 206, 227, 20, 8, 241, 40, 1, 250, 126, 226, 185,
+ 210, 149, 223, 94, 1, 63, 210, 149, 223, 94, 1, 75, 210, 149, 223, 94, 2,
+ 242, 11, 210, 149, 223, 94, 1, 68, 210, 149, 223, 94, 1, 74, 210, 149,
+ 223, 94, 1, 78, 210, 149, 223, 94, 2, 237, 85, 210, 149, 223, 94, 1, 229,
+ 26, 210, 149, 223, 94, 1, 229, 115, 210, 149, 223, 94, 1, 238, 39, 210,
+ 149, 223, 94, 1, 238, 91, 210, 149, 223, 94, 2, 250, 180, 210, 149, 223,
+ 94, 1, 245, 254, 210, 149, 223, 94, 1, 246, 116, 210, 149, 223, 94, 1,
+ 230, 101, 210, 149, 223, 94, 1, 230, 143, 210, 149, 223, 94, 1, 207, 218,
+ 210, 149, 223, 94, 1, 207, 224, 210, 149, 223, 94, 1, 244, 90, 210, 149,
+ 223, 94, 1, 244, 99, 210, 149, 223, 94, 1, 135, 210, 149, 223, 94, 1,
+ 209, 47, 210, 149, 223, 94, 1, 243, 113, 210, 149, 223, 94, 1, 243, 237,
+ 210, 149, 223, 94, 1, 221, 191, 210, 149, 223, 94, 1, 218, 69, 210, 149,
+ 223, 94, 1, 218, 180, 210, 149, 223, 94, 1, 248, 23, 210, 149, 223, 94,
+ 1, 248, 90, 210, 149, 223, 94, 1, 224, 82, 210, 149, 223, 94, 1, 215,
+ 227, 210, 149, 223, 94, 1, 227, 49, 210, 149, 223, 94, 1, 215, 171, 210,
+ 149, 223, 94, 1, 212, 13, 210, 149, 223, 94, 1, 236, 136, 210, 149, 223,
+ 94, 22, 2, 63, 210, 149, 223, 94, 22, 2, 75, 210, 149, 223, 94, 22, 2,
+ 68, 210, 149, 223, 94, 22, 2, 74, 210, 149, 223, 94, 22, 2, 220, 18, 210,
+ 149, 223, 94, 218, 64, 225, 92, 210, 149, 223, 94, 218, 64, 225, 91, 210,
+ 149, 223, 94, 218, 64, 225, 90, 210, 149, 223, 94, 218, 64, 225, 89, 153,
+ 231, 33, 239, 138, 118, 217, 55, 153, 231, 33, 239, 138, 118, 237, 137,
+ 153, 231, 33, 239, 138, 126, 217, 53, 153, 231, 33, 239, 138, 118, 212,
+ 80, 153, 231, 33, 239, 138, 118, 241, 138, 153, 231, 33, 239, 138, 126,
+ 212, 79, 153, 231, 33, 217, 56, 82, 153, 231, 33, 218, 96, 82, 153, 231,
+ 33, 215, 120, 82, 153, 231, 33, 217, 57, 82, 218, 204, 1, 173, 218, 204,
+ 1, 229, 144, 218, 204, 1, 239, 8, 218, 204, 1, 222, 203, 218, 204, 1,
+ 247, 92, 218, 204, 1, 246, 199, 218, 204, 1, 230, 181, 218, 204, 1, 221,
+ 11, 218, 204, 1, 210, 22, 218, 204, 1, 209, 108, 218, 204, 1, 244, 212,
+ 218, 204, 1, 201, 201, 218, 204, 1, 185, 218, 204, 1, 218, 208, 218, 204,
+ 1, 249, 32, 218, 204, 1, 192, 218, 204, 1, 208, 20, 218, 204, 1, 208, 10,
+ 218, 204, 1, 241, 255, 218, 204, 1, 204, 111, 218, 204, 1, 202, 80, 218,
+ 204, 1, 202, 116, 218, 204, 1, 5, 63, 218, 204, 1, 198, 218, 204, 1, 216,
+ 220, 218, 204, 1, 228, 113, 218, 204, 1, 213, 90, 218, 204, 1, 215, 36,
+ 218, 204, 1, 152, 218, 204, 1, 63, 218, 204, 1, 75, 218, 204, 1, 68, 218,
+ 204, 1, 74, 218, 204, 1, 78, 218, 204, 1, 217, 126, 218, 204, 1, 203,
+ 182, 218, 204, 1, 240, 108, 218, 204, 1, 238, 155, 218, 204, 1, 241, 161,
+ 218, 204, 210, 254, 1, 204, 111, 218, 204, 210, 254, 1, 198, 218, 204, 1,
+ 207, 241, 218, 204, 1, 207, 229, 218, 204, 1, 244, 120, 218, 204, 1, 221,
+ 227, 218, 204, 1, 250, 255, 198, 218, 204, 1, 205, 185, 213, 90, 218,
+ 204, 1, 205, 186, 152, 218, 204, 1, 250, 66, 240, 108, 218, 204, 210,
+ 254, 1, 216, 220, 218, 204, 210, 201, 1, 216, 220, 218, 204, 1, 247, 52,
+ 218, 204, 212, 120, 237, 65, 82, 218, 204, 52, 237, 65, 82, 218, 204,
+ 131, 213, 82, 218, 204, 131, 52, 213, 82, 214, 215, 2, 250, 180, 214,
+ 215, 2, 205, 199, 214, 215, 1, 63, 214, 215, 1, 252, 25, 214, 215, 1, 75,
+ 214, 215, 1, 231, 83, 214, 215, 1, 68, 214, 215, 1, 206, 178, 214, 215,
+ 1, 125, 146, 214, 215, 1, 125, 215, 186, 214, 215, 1, 125, 159, 214, 215,
+ 1, 125, 227, 78, 214, 215, 1, 74, 214, 215, 1, 241, 161, 214, 215, 1,
+ 251, 64, 214, 215, 1, 78, 214, 215, 1, 220, 18, 214, 215, 1, 250, 34,
+ 214, 215, 1, 173, 214, 215, 1, 229, 144, 214, 215, 1, 239, 8, 214, 215,
+ 1, 238, 119, 214, 215, 1, 222, 203, 214, 215, 1, 247, 92, 214, 215, 1,
+ 246, 199, 214, 215, 1, 230, 181, 214, 215, 1, 230, 149, 214, 215, 1, 221,
+ 11, 214, 215, 1, 207, 241, 214, 215, 1, 207, 229, 214, 215, 1, 244, 120,
+ 214, 215, 1, 244, 104, 214, 215, 1, 221, 227, 214, 215, 1, 210, 22, 214,
+ 215, 1, 209, 108, 214, 215, 1, 244, 212, 214, 215, 1, 244, 1, 214, 215,
+ 1, 201, 201, 214, 215, 1, 185, 214, 215, 1, 218, 208, 214, 215, 1, 249,
+ 32, 214, 215, 1, 248, 98, 214, 215, 1, 192, 214, 215, 1, 198, 214, 215,
+ 1, 216, 220, 214, 215, 1, 228, 113, 214, 215, 1, 206, 86, 214, 215, 1,
+ 213, 90, 214, 215, 1, 211, 164, 214, 215, 1, 215, 36, 214, 215, 1, 152,
+ 214, 215, 1, 227, 77, 214, 215, 109, 2, 237, 155, 214, 215, 22, 2, 252,
+ 25, 214, 215, 22, 2, 75, 214, 215, 22, 2, 231, 83, 214, 215, 22, 2, 68,
+ 214, 215, 22, 2, 206, 178, 214, 215, 22, 2, 125, 146, 214, 215, 22, 2,
+ 125, 215, 186, 214, 215, 22, 2, 125, 159, 214, 215, 22, 2, 125, 227, 78,
+ 214, 215, 22, 2, 74, 214, 215, 22, 2, 241, 161, 214, 215, 22, 2, 251, 64,
+ 214, 215, 22, 2, 78, 214, 215, 22, 2, 220, 18, 214, 215, 22, 2, 250, 34,
+ 214, 215, 2, 205, 204, 214, 215, 244, 166, 214, 215, 52, 244, 166, 214,
+ 215, 17, 202, 84, 214, 215, 17, 105, 214, 215, 17, 108, 214, 215, 17,
+ 147, 214, 215, 17, 149, 214, 215, 17, 170, 214, 215, 17, 195, 214, 215,
+ 17, 213, 111, 214, 215, 17, 199, 214, 215, 17, 222, 63, 39, 92, 17, 202,
+ 84, 39, 92, 17, 105, 39, 92, 17, 108, 39, 92, 17, 147, 39, 92, 17, 149,
+ 39, 92, 17, 170, 39, 92, 17, 195, 39, 92, 17, 213, 111, 39, 92, 17, 199,
+ 39, 92, 17, 222, 63, 39, 92, 1, 63, 39, 92, 1, 68, 39, 92, 1, 173, 39,
+ 92, 1, 201, 201, 39, 92, 1, 185, 39, 92, 1, 216, 220, 39, 92, 1, 205,
+ 230, 39, 92, 2, 250, 17, 92, 2, 211, 227, 247, 52, 92, 2, 247, 53, 205,
+ 204, 92, 2, 52, 247, 53, 205, 204, 92, 2, 247, 53, 108, 92, 2, 247, 53,
+ 147, 92, 2, 247, 53, 250, 17, 92, 2, 217, 162, 92, 238, 228, 240, 7, 92,
+ 247, 33, 92, 237, 58, 92, 2, 212, 157, 92, 230, 173, 220, 39, 229, 207,
+ 227, 149, 17, 202, 84, 229, 207, 227, 149, 17, 105, 229, 207, 227, 149,
+ 17, 108, 229, 207, 227, 149, 17, 147, 229, 207, 227, 149, 17, 149, 229,
+ 207, 227, 149, 17, 170, 229, 207, 227, 149, 17, 195, 229, 207, 227, 149,
+ 17, 213, 111, 229, 207, 227, 149, 17, 199, 229, 207, 227, 149, 17, 222,
+ 63, 229, 207, 227, 149, 1, 173, 229, 207, 227, 149, 1, 229, 144, 229,
+ 207, 227, 149, 1, 239, 8, 229, 207, 227, 149, 1, 222, 203, 229, 207, 227,
+ 149, 1, 215, 36, 229, 207, 227, 149, 1, 213, 90, 229, 207, 227, 149, 1,
+ 202, 116, 229, 207, 227, 149, 1, 221, 11, 229, 207, 227, 149, 1, 210, 22,
+ 229, 207, 227, 149, 1, 236, 30, 229, 207, 227, 149, 1, 201, 201, 229,
+ 207, 227, 149, 1, 185, 229, 207, 227, 149, 1, 218, 208, 229, 207, 227,
+ 149, 1, 192, 229, 207, 227, 149, 1, 244, 212, 229, 207, 227, 149, 1, 249,
+ 32, 229, 207, 227, 149, 1, 216, 220, 229, 207, 227, 149, 1, 198, 229,
+ 207, 227, 149, 1, 228, 113, 229, 207, 227, 149, 1, 204, 111, 229, 207,
+ 227, 149, 1, 209, 108, 229, 207, 227, 149, 1, 152, 229, 207, 227, 149, 1,
+ 206, 86, 229, 207, 227, 149, 1, 247, 92, 229, 207, 227, 149, 1, 63, 229,
+ 207, 227, 149, 1, 220, 73, 229, 207, 227, 149, 1, 75, 229, 207, 227, 149,
+ 1, 220, 18, 229, 207, 227, 149, 22, 207, 24, 229, 207, 227, 149, 22, 74,
+ 229, 207, 227, 149, 22, 68, 229, 207, 227, 149, 22, 241, 161, 229, 207,
+ 227, 149, 22, 78, 229, 207, 227, 149, 143, 218, 84, 229, 207, 227, 149,
+ 143, 247, 68, 229, 207, 227, 149, 143, 247, 69, 218, 84, 229, 207, 227,
+ 149, 2, 245, 70, 229, 207, 227, 149, 2, 212, 170, 216, 119, 1, 173, 216,
+ 119, 1, 239, 8, 216, 119, 1, 222, 203, 216, 119, 1, 210, 22, 216, 119, 1,
+ 244, 212, 216, 119, 1, 201, 201, 216, 119, 1, 185, 216, 119, 1, 249, 32,
+ 216, 119, 1, 192, 216, 119, 1, 247, 92, 216, 119, 1, 230, 181, 216, 119,
+ 1, 221, 11, 216, 119, 1, 215, 36, 216, 119, 1, 216, 220, 216, 119, 1,
+ 228, 113, 216, 119, 1, 198, 216, 119, 1, 204, 111, 216, 119, 1, 152, 216,
+ 119, 1, 225, 54, 216, 119, 1, 222, 182, 216, 119, 1, 223, 25, 216, 119,
+ 1, 220, 234, 216, 119, 1, 63, 216, 119, 22, 2, 75, 216, 119, 22, 2, 68,
+ 216, 119, 22, 2, 74, 216, 119, 22, 2, 251, 64, 216, 119, 22, 2, 78, 216,
+ 119, 22, 2, 250, 34, 216, 119, 22, 2, 240, 238, 216, 119, 22, 2, 241,
+ 189, 216, 119, 109, 2, 222, 205, 216, 119, 109, 2, 223, 163, 216, 119,
+ 109, 2, 146, 216, 119, 109, 2, 237, 171, 216, 119, 205, 204, 216, 119,
+ 214, 168, 82, 28, 123, 208, 236, 28, 123, 208, 235, 28, 123, 208, 233,
+ 28, 123, 208, 238, 28, 123, 216, 42, 28, 123, 216, 26, 28, 123, 216, 21,
+ 28, 123, 216, 23, 28, 123, 216, 39, 28, 123, 216, 32, 28, 123, 216, 25,
+ 28, 123, 216, 44, 28, 123, 216, 27, 28, 123, 216, 46, 28, 123, 216, 43,
+ 28, 123, 224, 137, 28, 123, 224, 128, 28, 123, 224, 131, 28, 123, 218,
+ 138, 28, 123, 218, 149, 28, 123, 218, 150, 28, 123, 211, 148, 28, 123,
+ 231, 96, 28, 123, 231, 103, 28, 123, 211, 159, 28, 123, 211, 146, 28,
+ 123, 218, 189, 28, 123, 236, 246, 28, 123, 211, 143, 190, 2, 219, 102,
+ 190, 2, 246, 235, 190, 2, 227, 242, 190, 2, 204, 20, 190, 1, 63, 190, 1,
+ 235, 206, 229, 211, 190, 1, 75, 190, 1, 231, 83, 190, 1, 68, 190, 1, 219,
+ 169, 246, 205, 190, 1, 222, 204, 227, 201, 190, 1, 222, 204, 227, 202,
+ 216, 173, 190, 1, 74, 190, 1, 251, 64, 190, 1, 78, 190, 1, 173, 190, 1,
+ 230, 44, 214, 227, 190, 1, 230, 44, 223, 205, 190, 1, 239, 8, 190, 1,
+ 239, 9, 223, 205, 190, 1, 222, 203, 190, 1, 247, 92, 190, 1, 247, 93,
+ 223, 205, 190, 1, 230, 181, 190, 1, 221, 12, 223, 205, 190, 1, 230, 182,
+ 225, 144, 190, 1, 221, 11, 190, 1, 207, 241, 190, 1, 207, 242, 225, 144,
+ 190, 1, 244, 120, 190, 1, 244, 121, 225, 144, 190, 1, 223, 111, 223, 205,
+ 190, 1, 210, 22, 190, 1, 210, 23, 223, 205, 190, 1, 244, 212, 190, 1,
+ 244, 213, 225, 144, 190, 1, 201, 201, 190, 1, 185, 190, 1, 219, 169, 223,
+ 205, 190, 1, 249, 32, 190, 1, 249, 33, 223, 205, 190, 1, 192, 190, 1,
+ 198, 190, 1, 216, 220, 190, 1, 216, 221, 251, 74, 190, 1, 228, 113, 190,
+ 1, 204, 111, 190, 1, 215, 37, 223, 205, 190, 1, 215, 37, 225, 144, 190,
+ 1, 215, 36, 190, 1, 152, 190, 2, 246, 236, 209, 155, 190, 22, 2, 209,
+ 214, 190, 22, 2, 208, 166, 190, 22, 2, 203, 211, 190, 22, 2, 203, 212,
+ 224, 251, 190, 22, 2, 210, 224, 190, 22, 2, 210, 225, 224, 239, 190, 22,
+ 2, 209, 235, 190, 22, 2, 243, 163, 223, 204, 190, 22, 2, 218, 249, 190,
+ 109, 2, 229, 173, 190, 109, 2, 219, 6, 190, 109, 2, 247, 77, 190, 219,
+ 115, 190, 49, 216, 93, 190, 50, 216, 93, 190, 219, 158, 250, 225, 190,
+ 219, 158, 225, 162, 190, 219, 158, 226, 226, 190, 219, 158, 204, 14, 190,
+ 219, 158, 219, 116, 190, 219, 158, 227, 106, 190, 219, 158, 226, 220,
+ 190, 219, 158, 251, 116, 190, 219, 158, 251, 117, 251, 116, 190, 219,
+ 158, 218, 107, 190, 207, 174, 219, 158, 218, 107, 190, 219, 111, 190, 17,
+ 202, 84, 190, 17, 105, 190, 17, 108, 190, 17, 147, 190, 17, 149, 190, 17,
+ 170, 190, 17, 195, 190, 17, 213, 111, 190, 17, 199, 190, 17, 222, 63,
+ 190, 219, 158, 208, 202, 207, 189, 190, 219, 158, 230, 211, 69, 1, 213,
+ 67, 238, 119, 69, 1, 213, 67, 246, 199, 69, 1, 213, 67, 230, 149, 69, 1,
+ 213, 67, 221, 227, 69, 1, 213, 67, 248, 98, 69, 2, 213, 67, 214, 213, 69,
+ 65, 1, 213, 67, 216, 136, 69, 1, 45, 228, 85, 221, 11, 69, 1, 45, 228,
+ 85, 240, 108, 69, 1, 45, 228, 85, 239, 8, 69, 1, 45, 228, 85, 238, 119,
+ 69, 1, 45, 228, 85, 230, 181, 69, 1, 45, 228, 85, 230, 149, 69, 1, 45,
+ 228, 85, 244, 120, 69, 1, 45, 228, 85, 244, 104, 69, 1, 45, 228, 85, 221,
+ 227, 69, 45, 228, 85, 17, 202, 84, 69, 45, 228, 85, 17, 105, 69, 45, 228,
+ 85, 17, 108, 69, 45, 228, 85, 17, 147, 69, 45, 228, 85, 17, 149, 69, 45,
+ 228, 85, 17, 170, 69, 45, 228, 85, 17, 195, 69, 45, 228, 85, 17, 213,
+ 111, 69, 45, 228, 85, 17, 199, 69, 45, 228, 85, 17, 222, 63, 69, 1, 45,
+ 228, 85, 227, 77, 69, 1, 45, 228, 85, 244, 212, 69, 1, 45, 228, 85, 244,
+ 1, 69, 1, 45, 228, 85, 249, 32, 69, 1, 45, 228, 85, 248, 98, 246, 192, 1,
+ 63, 246, 192, 1, 75, 246, 192, 1, 68, 246, 192, 1, 74, 246, 192, 1, 251,
+ 64, 246, 192, 1, 78, 246, 192, 1, 173, 246, 192, 1, 229, 144, 246, 192,
+ 1, 239, 8, 246, 192, 1, 238, 119, 246, 192, 1, 222, 112, 246, 192, 1,
+ 222, 203, 246, 192, 1, 246, 199, 246, 192, 1, 246, 144, 246, 192, 1, 230,
+ 181, 246, 192, 1, 230, 149, 246, 192, 1, 222, 102, 246, 192, 1, 222, 104,
+ 246, 192, 1, 222, 103, 246, 192, 1, 210, 22, 246, 192, 1, 209, 108, 246,
+ 192, 1, 244, 212, 246, 192, 1, 244, 1, 246, 192, 1, 221, 53, 246, 192, 1,
+ 201, 201, 246, 192, 1, 244, 120, 246, 192, 1, 185, 246, 192, 1, 218, 12,
+ 246, 192, 1, 218, 208, 246, 192, 1, 249, 32, 246, 192, 1, 248, 98, 246,
+ 192, 1, 223, 238, 246, 192, 1, 192, 246, 192, 1, 248, 198, 246, 192, 1,
+ 198, 246, 192, 1, 216, 220, 246, 192, 1, 228, 113, 246, 192, 1, 206, 86,
+ 246, 192, 1, 211, 164, 246, 192, 1, 215, 36, 246, 192, 1, 152, 246, 192,
+ 22, 2, 252, 25, 246, 192, 22, 2, 75, 246, 192, 22, 2, 231, 83, 246, 192,
+ 22, 2, 241, 145, 246, 192, 22, 2, 68, 246, 192, 22, 2, 220, 73, 246, 192,
+ 22, 2, 78, 246, 192, 22, 2, 251, 64, 246, 192, 22, 2, 250, 34, 246, 192,
+ 22, 2, 207, 24, 246, 192, 109, 2, 198, 246, 192, 109, 2, 216, 220, 246,
+ 192, 109, 2, 228, 113, 246, 192, 109, 2, 204, 111, 246, 192, 1, 46, 230,
+ 54, 246, 192, 1, 46, 239, 75, 246, 192, 1, 46, 222, 205, 246, 192, 109,
+ 2, 46, 222, 205, 246, 192, 1, 46, 246, 200, 246, 192, 1, 46, 210, 69,
+ 246, 192, 1, 46, 223, 163, 246, 192, 1, 46, 219, 184, 246, 192, 1, 46,
+ 203, 124, 246, 192, 1, 46, 146, 246, 192, 1, 46, 159, 246, 192, 1, 46,
+ 211, 167, 246, 192, 109, 2, 46, 226, 185, 246, 192, 109, 2, 46, 237, 171,
+ 246, 192, 17, 202, 84, 246, 192, 17, 105, 246, 192, 17, 108, 246, 192,
+ 17, 147, 246, 192, 17, 149, 246, 192, 17, 170, 246, 192, 17, 195, 246,
+ 192, 17, 213, 111, 246, 192, 17, 199, 246, 192, 17, 222, 63, 246, 192,
+ 217, 179, 211, 201, 246, 192, 217, 179, 244, 166, 246, 192, 217, 179, 52,
+ 244, 166, 246, 192, 217, 179, 208, 70, 244, 166, 69, 1, 229, 137, 239, 8,
+ 69, 1, 229, 137, 247, 92, 69, 1, 229, 137, 246, 199, 69, 1, 229, 137,
+ 230, 181, 69, 1, 229, 137, 230, 149, 69, 1, 229, 137, 221, 11, 69, 1,
+ 229, 137, 207, 241, 69, 1, 229, 137, 207, 229, 69, 1, 229, 137, 244, 120,
+ 69, 1, 229, 137, 244, 104, 69, 1, 229, 137, 244, 1, 69, 1, 229, 137, 201,
+ 201, 69, 1, 229, 137, 215, 36, 69, 1, 229, 137, 152, 69, 1, 229, 137,
+ 237, 12, 69, 1, 229, 137, 240, 108, 69, 65, 1, 229, 137, 216, 136, 69, 1,
+ 229, 137, 203, 182, 69, 1, 229, 137, 202, 116, 69, 1, 229, 137, 216, 220,
+ 69, 227, 36, 229, 137, 220, 94, 69, 227, 36, 229, 137, 217, 78, 69, 227,
+ 36, 229, 137, 236, 191, 69, 16, 251, 51, 240, 211, 69, 16, 251, 51, 105,
+ 69, 16, 251, 51, 108, 69, 1, 251, 51, 216, 220, 69, 2, 219, 98, 229, 237,
+ 208, 161, 69, 2, 45, 228, 85, 208, 159, 69, 2, 45, 228, 85, 208, 156, 69,
+ 1, 212, 178, 219, 139, 246, 199, 69, 1, 212, 178, 219, 139, 213, 90, 45,
+ 205, 220, 1, 124, 229, 26, 45, 205, 220, 1, 138, 229, 26, 45, 205, 220,
+ 1, 124, 229, 115, 45, 205, 220, 1, 138, 229, 115, 45, 205, 220, 1, 124,
+ 229, 124, 45, 205, 220, 1, 138, 229, 124, 45, 205, 220, 1, 124, 238, 39,
+ 45, 205, 220, 1, 138, 238, 39, 45, 205, 220, 1, 124, 222, 128, 45, 205,
+ 220, 1, 138, 222, 128, 45, 205, 220, 1, 124, 245, 254, 45, 205, 220, 1,
+ 138, 245, 254, 45, 205, 220, 1, 124, 246, 116, 45, 205, 220, 1, 138, 246,
+ 116, 45, 205, 220, 1, 124, 212, 13, 45, 205, 220, 1, 138, 212, 13, 45,
+ 205, 220, 1, 124, 220, 233, 45, 205, 220, 1, 138, 220, 233, 45, 205, 220,
+ 1, 124, 243, 113, 45, 205, 220, 1, 138, 243, 113, 45, 205, 220, 1, 124,
+ 135, 45, 205, 220, 1, 138, 135, 45, 205, 220, 1, 124, 209, 47, 45, 205,
+ 220, 1, 138, 209, 47, 45, 205, 220, 1, 124, 221, 191, 45, 205, 220, 1,
+ 138, 221, 191, 45, 205, 220, 1, 124, 248, 23, 45, 205, 220, 1, 138, 248,
+ 23, 45, 205, 220, 1, 124, 218, 69, 45, 205, 220, 1, 138, 218, 69, 45,
+ 205, 220, 1, 124, 218, 180, 45, 205, 220, 1, 138, 218, 180, 45, 205, 220,
+ 1, 124, 239, 186, 45, 205, 220, 1, 138, 239, 186, 45, 205, 220, 1, 124,
+ 224, 82, 45, 205, 220, 1, 138, 224, 82, 45, 205, 220, 1, 124, 202, 247,
+ 45, 205, 220, 1, 138, 202, 247, 45, 205, 220, 1, 124, 215, 227, 45, 205,
+ 220, 1, 138, 215, 227, 45, 205, 220, 1, 124, 227, 49, 45, 205, 220, 1,
+ 138, 227, 49, 45, 205, 220, 1, 124, 205, 189, 45, 205, 220, 1, 138, 205,
+ 189, 45, 205, 220, 1, 124, 236, 136, 45, 205, 220, 1, 138, 236, 136, 45,
+ 205, 220, 1, 124, 78, 45, 205, 220, 1, 138, 78, 45, 205, 220, 225, 141,
+ 230, 0, 45, 205, 220, 22, 252, 25, 45, 205, 220, 22, 75, 45, 205, 220,
+ 22, 207, 24, 45, 205, 220, 22, 68, 45, 205, 220, 22, 74, 45, 205, 220,
+ 22, 78, 45, 205, 220, 225, 141, 229, 118, 45, 205, 220, 22, 235, 171, 45,
+ 205, 220, 22, 207, 23, 45, 205, 220, 22, 207, 39, 45, 205, 220, 22, 250,
+ 32, 45, 205, 220, 22, 250, 8, 45, 205, 220, 22, 250, 231, 45, 205, 220,
+ 22, 250, 247, 45, 205, 220, 143, 225, 141, 241, 129, 45, 205, 220, 143,
+ 225, 141, 221, 52, 45, 205, 220, 143, 225, 141, 209, 47, 45, 205, 220,
+ 143, 225, 141, 211, 252, 45, 205, 220, 16, 229, 9, 45, 205, 220, 16, 221,
+ 52, 45, 205, 220, 16, 214, 253, 45, 205, 220, 16, 236, 137, 236, 131, 45,
+ 205, 220, 16, 229, 19, 229, 18, 225, 2, 225, 61, 1, 74, 225, 2, 225, 61,
+ 1, 78, 225, 2, 225, 61, 1, 246, 199, 225, 2, 225, 61, 1, 221, 11, 225, 2,
+ 225, 61, 1, 207, 241, 225, 2, 225, 61, 1, 207, 229, 225, 2, 225, 61, 1,
+ 244, 120, 225, 2, 225, 61, 1, 244, 104, 225, 2, 225, 61, 1, 221, 227,
+ 225, 2, 225, 61, 1, 213, 90, 225, 2, 225, 61, 1, 211, 164, 225, 2, 225,
+ 61, 22, 2, 231, 83, 225, 2, 225, 61, 22, 2, 206, 178, 225, 2, 225, 61,
+ 22, 2, 251, 245, 225, 2, 225, 61, 22, 2, 250, 34, 225, 2, 225, 61, 22, 2,
+ 251, 238, 225, 2, 225, 61, 246, 159, 225, 2, 225, 61, 251, 70, 229, 107,
+ 225, 2, 225, 61, 250, 209, 225, 2, 225, 61, 4, 216, 98, 82, 225, 2, 225,
+ 61, 203, 238, 216, 98, 82, 225, 2, 225, 61, 22, 2, 205, 199, 225, 2, 225,
+ 61, 205, 204, 33, 4, 207, 222, 33, 4, 207, 225, 33, 4, 207, 228, 33, 4,
+ 207, 226, 33, 4, 207, 227, 33, 4, 207, 224, 33, 4, 244, 98, 33, 4, 244,
+ 100, 33, 4, 244, 103, 33, 4, 244, 101, 33, 4, 244, 102, 33, 4, 244, 99,
+ 33, 4, 241, 242, 33, 4, 241, 246, 33, 4, 241, 254, 33, 4, 241, 251, 33,
+ 4, 241, 252, 33, 4, 241, 243, 33, 4, 246, 252, 33, 4, 246, 246, 33, 4,
+ 246, 248, 33, 4, 246, 251, 33, 4, 246, 249, 33, 4, 246, 250, 33, 4, 246,
+ 247, 33, 4, 248, 198, 33, 4, 248, 177, 33, 4, 248, 189, 33, 4, 248, 197,
+ 33, 4, 248, 192, 33, 4, 248, 193, 33, 4, 248, 181, 8, 5, 1, 248, 225,
+ 251, 2, 8, 5, 1, 34, 216, 71, 8, 5, 1, 248, 39, 74, 8, 5, 1, 248, 225,
+ 74, 8, 5, 1, 188, 3, 239, 199, 8, 5, 1, 227, 187, 240, 174, 8, 5, 1, 132,
+ 239, 76, 3, 245, 126, 8, 5, 1, 228, 131, 3, 230, 239, 227, 241, 194, 8,
+ 5, 1, 228, 131, 3, 52, 101, 208, 227, 8, 5, 1, 228, 131, 3, 101, 215,
+ 252, 8, 5, 1, 226, 186, 3, 245, 126, 8, 5, 1, 223, 164, 3, 245, 126, 8,
+ 5, 1, 241, 79, 3, 245, 126, 8, 5, 1, 248, 39, 78, 8, 5, 1, 248, 39, 158,
+ 3, 95, 8, 5, 1, 171, 158, 3, 95, 8, 5, 1, 230, 239, 220, 73, 8, 5, 1,
+ 207, 174, 220, 74, 3, 95, 8, 5, 1, 207, 174, 220, 74, 3, 236, 106, 95, 8,
+ 5, 1, 207, 174, 158, 220, 4, 8, 5, 1, 207, 174, 158, 220, 5, 3, 95, 8, 5,
+ 1, 211, 66, 146, 8, 1, 5, 6, 217, 1, 3, 50, 227, 210, 8, 5, 1, 217, 1,
+ 204, 3, 237, 102, 8, 5, 1, 52, 146, 8, 5, 1, 217, 1, 3, 245, 126, 8, 5,
+ 1, 52, 217, 1, 3, 245, 126, 8, 5, 1, 132, 146, 8, 5, 1, 132, 217, 1, 3,
+ 215, 252, 8, 5, 1, 248, 216, 241, 7, 8, 5, 1, 106, 3, 212, 228, 50, 227,
+ 210, 8, 5, 1, 106, 248, 231, 3, 212, 228, 50, 227, 210, 8, 5, 1, 207, 17,
+ 8, 5, 1, 207, 174, 207, 17, 8, 5, 1, 106, 3, 49, 113, 8, 5, 1, 246, 142,
+ 8, 5, 1, 246, 143, 3, 124, 50, 215, 252, 8, 5, 1, 246, 143, 3, 124, 49,
+ 213, 125, 8, 5, 1, 203, 197, 3, 124, 50, 215, 252, 8, 5, 1, 203, 197, 3,
+ 163, 49, 227, 210, 8, 5, 1, 203, 197, 3, 163, 49, 227, 211, 25, 124, 50,
+ 215, 252, 8, 5, 1, 203, 197, 3, 163, 49, 227, 211, 3, 213, 125, 8, 5, 1,
+ 203, 125, 3, 212, 228, 50, 227, 210, 65, 247, 215, 3, 230, 239, 247, 214,
+ 65, 1, 5, 237, 31, 65, 1, 5, 228, 131, 3, 230, 239, 227, 241, 194, 65, 1,
+ 5, 228, 131, 3, 101, 208, 227, 65, 1, 5, 106, 3, 49, 113, 8, 5, 1, 215,
+ 11, 203, 66, 8, 5, 1, 230, 228, 74, 8, 5, 1, 171, 220, 73, 8, 5, 1, 206,
+ 228, 8, 5, 1, 230, 239, 251, 2, 30, 1, 5, 6, 220, 36, 90, 5, 1, 63, 90,
+ 5, 1, 74, 90, 5, 1, 75, 90, 5, 1, 78, 90, 5, 1, 68, 90, 5, 1, 206, 164,
+ 90, 5, 1, 239, 8, 90, 5, 1, 173, 90, 5, 1, 238, 190, 90, 5, 1, 238, 81,
+ 90, 5, 1, 238, 39, 90, 5, 1, 237, 230, 90, 5, 1, 237, 192, 90, 5, 1, 152,
+ 90, 5, 1, 237, 67, 90, 5, 1, 237, 3, 90, 5, 1, 236, 136, 90, 5, 1, 236,
+ 26, 90, 5, 1, 235, 255, 90, 5, 1, 228, 113, 90, 5, 1, 227, 234, 90, 5, 1,
+ 227, 148, 90, 5, 1, 227, 49, 90, 5, 1, 226, 239, 90, 5, 1, 226, 208, 90,
+ 5, 1, 192, 90, 5, 1, 225, 20, 90, 5, 1, 224, 155, 90, 5, 1, 224, 82, 90,
+ 5, 1, 223, 246, 90, 5, 1, 201, 201, 90, 5, 1, 236, 160, 90, 5, 1, 223,
+ 93, 90, 5, 1, 222, 240, 90, 5, 1, 222, 100, 90, 5, 1, 221, 191, 90, 5, 1,
+ 221, 84, 90, 5, 1, 221, 22, 90, 5, 1, 217, 64, 90, 5, 1, 217, 50, 90, 5,
+ 1, 217, 43, 90, 5, 1, 217, 34, 90, 5, 1, 217, 23, 90, 5, 1, 217, 21, 90,
+ 5, 1, 215, 36, 90, 5, 1, 194, 90, 5, 1, 214, 177, 90, 5, 1, 212, 162, 90,
+ 5, 1, 212, 13, 90, 5, 1, 211, 10, 90, 5, 1, 210, 177, 90, 5, 1, 244, 212,
+ 90, 5, 1, 210, 22, 90, 5, 1, 244, 75, 90, 5, 1, 209, 187, 90, 5, 1, 243,
+ 233, 90, 5, 1, 209, 2, 90, 5, 1, 243, 113, 90, 5, 1, 242, 42, 90, 5, 1,
+ 242, 13, 90, 5, 1, 243, 124, 90, 5, 1, 208, 190, 90, 5, 1, 208, 189, 90,
+ 5, 1, 208, 178, 90, 5, 1, 208, 177, 90, 5, 1, 208, 176, 90, 5, 1, 208,
+ 175, 90, 5, 1, 208, 20, 90, 5, 1, 208, 14, 90, 5, 1, 207, 255, 90, 5, 1,
+ 207, 253, 90, 5, 1, 207, 249, 90, 5, 1, 207, 248, 90, 5, 1, 204, 111, 90,
+ 5, 1, 204, 62, 90, 5, 1, 204, 30, 90, 5, 1, 204, 0, 90, 5, 1, 203, 217,
+ 90, 5, 1, 203, 204, 90, 5, 1, 198, 225, 2, 225, 61, 1, 229, 16, 225, 2,
+ 225, 61, 1, 214, 253, 225, 2, 225, 61, 1, 228, 86, 225, 2, 225, 61, 1,
+ 224, 93, 225, 2, 225, 61, 1, 185, 225, 2, 225, 61, 1, 201, 201, 225, 2,
+ 225, 61, 1, 246, 134, 225, 2, 225, 61, 1, 208, 229, 225, 2, 225, 61, 1,
+ 229, 110, 225, 2, 225, 61, 1, 222, 118, 225, 2, 225, 61, 1, 209, 39, 225,
+ 2, 225, 61, 1, 204, 105, 225, 2, 225, 61, 1, 203, 76, 225, 2, 225, 61, 1,
+ 236, 18, 225, 2, 225, 61, 1, 206, 255, 225, 2, 225, 61, 1, 75, 225, 2,
+ 225, 61, 1, 218, 202, 225, 2, 225, 61, 1, 250, 45, 225, 2, 225, 61, 1,
+ 238, 32, 225, 2, 225, 61, 1, 230, 147, 225, 2, 225, 61, 1, 216, 197, 225,
+ 2, 225, 61, 1, 249, 32, 225, 2, 225, 61, 1, 230, 133, 225, 2, 225, 61, 1,
+ 243, 190, 225, 2, 225, 61, 1, 238, 88, 225, 2, 225, 61, 1, 243, 235, 225,
+ 2, 225, 61, 1, 248, 96, 225, 2, 225, 61, 1, 229, 17, 227, 19, 225, 2,
+ 225, 61, 1, 228, 87, 227, 19, 225, 2, 225, 61, 1, 224, 94, 227, 19, 225,
+ 2, 225, 61, 1, 219, 169, 227, 19, 225, 2, 225, 61, 1, 223, 111, 227, 19,
+ 225, 2, 225, 61, 1, 208, 230, 227, 19, 225, 2, 225, 61, 1, 222, 119, 227,
+ 19, 225, 2, 225, 61, 1, 235, 206, 227, 19, 225, 2, 225, 61, 22, 2, 220,
+ 30, 225, 2, 225, 61, 22, 2, 231, 47, 225, 2, 225, 61, 22, 2, 250, 230,
+ 225, 2, 225, 61, 22, 2, 203, 41, 225, 2, 225, 61, 22, 2, 211, 242, 225,
+ 2, 225, 61, 22, 2, 206, 252, 225, 2, 225, 61, 22, 2, 246, 157, 225, 2,
+ 225, 61, 22, 2, 221, 37, 225, 2, 225, 61, 246, 158, 225, 2, 225, 61, 226,
+ 223, 230, 190, 225, 2, 225, 61, 250, 149, 230, 190, 225, 2, 225, 61, 17,
+ 202, 84, 225, 2, 225, 61, 17, 105, 225, 2, 225, 61, 17, 108, 225, 2, 225,
+ 61, 17, 147, 225, 2, 225, 61, 17, 149, 225, 2, 225, 61, 17, 170, 225, 2,
+ 225, 61, 17, 195, 225, 2, 225, 61, 17, 213, 111, 225, 2, 225, 61, 17,
+ 199, 225, 2, 225, 61, 17, 222, 63, 28, 176, 220, 174, 28, 176, 220, 179,
+ 28, 176, 202, 246, 28, 176, 202, 245, 28, 176, 202, 244, 28, 176, 207,
+ 89, 28, 176, 207, 93, 28, 176, 202, 211, 28, 176, 202, 207, 28, 176, 240,
+ 237, 28, 176, 240, 235, 28, 176, 240, 236, 28, 176, 240, 233, 28, 176,
+ 235, 196, 28, 176, 235, 195, 28, 176, 235, 193, 28, 176, 235, 194, 28,
+ 176, 235, 199, 28, 176, 235, 192, 28, 176, 235, 191, 28, 176, 235, 201,
+ 28, 176, 250, 136, 28, 176, 250, 135, 28, 107, 222, 86, 28, 107, 222, 92,
+ 28, 107, 211, 145, 28, 107, 211, 144, 28, 107, 208, 235, 28, 107, 208,
+ 233, 28, 107, 208, 232, 28, 107, 208, 238, 28, 107, 208, 239, 28, 107,
+ 208, 231, 28, 107, 216, 26, 28, 107, 216, 41, 28, 107, 211, 151, 28, 107,
+ 216, 38, 28, 107, 216, 28, 28, 107, 216, 30, 28, 107, 216, 17, 28, 107,
+ 216, 18, 28, 107, 229, 243, 28, 107, 224, 136, 28, 107, 224, 130, 28,
+ 107, 211, 155, 28, 107, 224, 133, 28, 107, 224, 139, 28, 107, 218, 134,
+ 28, 107, 218, 143, 28, 107, 218, 147, 28, 107, 211, 153, 28, 107, 218,
+ 137, 28, 107, 218, 151, 28, 107, 218, 152, 28, 107, 212, 103, 28, 107,
+ 212, 106, 28, 107, 211, 149, 28, 107, 211, 147, 28, 107, 212, 101, 28,
+ 107, 212, 109, 28, 107, 212, 110, 28, 107, 212, 95, 28, 107, 212, 108,
+ 28, 107, 219, 105, 28, 107, 219, 106, 28, 107, 203, 27, 28, 107, 203, 28,
+ 28, 107, 246, 72, 28, 107, 246, 71, 28, 107, 211, 160, 28, 107, 218, 187,
+ 28, 107, 218, 186, 12, 15, 233, 74, 12, 15, 233, 73, 12, 15, 233, 72, 12,
+ 15, 233, 71, 12, 15, 233, 70, 12, 15, 233, 69, 12, 15, 233, 68, 12, 15,
+ 233, 67, 12, 15, 233, 66, 12, 15, 233, 65, 12, 15, 233, 64, 12, 15, 233,
+ 63, 12, 15, 233, 62, 12, 15, 233, 61, 12, 15, 233, 60, 12, 15, 233, 59,
+ 12, 15, 233, 58, 12, 15, 233, 57, 12, 15, 233, 56, 12, 15, 233, 55, 12,
+ 15, 233, 54, 12, 15, 233, 53, 12, 15, 233, 52, 12, 15, 233, 51, 12, 15,
+ 233, 50, 12, 15, 233, 49, 12, 15, 233, 48, 12, 15, 233, 47, 12, 15, 233,
+ 46, 12, 15, 233, 45, 12, 15, 233, 44, 12, 15, 233, 43, 12, 15, 233, 42,
+ 12, 15, 233, 41, 12, 15, 233, 40, 12, 15, 233, 39, 12, 15, 233, 38, 12,
+ 15, 233, 37, 12, 15, 233, 36, 12, 15, 233, 35, 12, 15, 233, 34, 12, 15,
+ 233, 33, 12, 15, 233, 32, 12, 15, 233, 31, 12, 15, 233, 30, 12, 15, 233,
+ 29, 12, 15, 233, 28, 12, 15, 233, 27, 12, 15, 233, 26, 12, 15, 233, 25,
+ 12, 15, 233, 24, 12, 15, 233, 23, 12, 15, 233, 22, 12, 15, 233, 21, 12,
+ 15, 233, 20, 12, 15, 233, 19, 12, 15, 233, 18, 12, 15, 233, 17, 12, 15,
+ 233, 16, 12, 15, 233, 15, 12, 15, 233, 14, 12, 15, 233, 13, 12, 15, 233,
+ 12, 12, 15, 233, 11, 12, 15, 233, 10, 12, 15, 233, 9, 12, 15, 233, 8, 12,
+ 15, 233, 7, 12, 15, 233, 6, 12, 15, 233, 5, 12, 15, 233, 4, 12, 15, 233,
+ 3, 12, 15, 233, 2, 12, 15, 233, 1, 12, 15, 233, 0, 12, 15, 232, 255, 12,
+ 15, 232, 254, 12, 15, 232, 253, 12, 15, 232, 252, 12, 15, 232, 251, 12,
+ 15, 232, 250, 12, 15, 232, 249, 12, 15, 232, 248, 12, 15, 232, 247, 12,
+ 15, 232, 246, 12, 15, 232, 245, 12, 15, 232, 244, 12, 15, 232, 243, 12,
+ 15, 232, 242, 12, 15, 232, 241, 12, 15, 232, 240, 12, 15, 232, 239, 12,
+ 15, 232, 238, 12, 15, 232, 237, 12, 15, 232, 236, 12, 15, 232, 235, 12,
+ 15, 232, 234, 12, 15, 232, 233, 12, 15, 232, 232, 12, 15, 232, 231, 12,
+ 15, 232, 230, 12, 15, 232, 229, 12, 15, 232, 228, 12, 15, 232, 227, 12,
+ 15, 232, 226, 12, 15, 232, 225, 12, 15, 232, 224, 12, 15, 232, 223, 12,
+ 15, 232, 222, 12, 15, 232, 221, 12, 15, 232, 220, 12, 15, 232, 219, 12,
+ 15, 232, 218, 12, 15, 232, 217, 12, 15, 232, 216, 12, 15, 232, 215, 12,
+ 15, 232, 214, 12, 15, 232, 213, 12, 15, 232, 212, 12, 15, 232, 211, 12,
+ 15, 232, 210, 12, 15, 232, 209, 12, 15, 232, 208, 12, 15, 232, 207, 12,
+ 15, 232, 206, 12, 15, 232, 205, 12, 15, 232, 204, 12, 15, 232, 203, 12,
+ 15, 232, 202, 12, 15, 232, 201, 12, 15, 232, 200, 12, 15, 232, 199, 12,
+ 15, 232, 198, 12, 15, 232, 197, 12, 15, 232, 196, 12, 15, 232, 195, 12,
+ 15, 232, 194, 12, 15, 232, 193, 12, 15, 232, 192, 12, 15, 232, 191, 12,
+ 15, 232, 190, 12, 15, 232, 189, 12, 15, 232, 188, 12, 15, 232, 187, 12,
+ 15, 232, 186, 12, 15, 232, 185, 12, 15, 232, 184, 12, 15, 232, 183, 12,
+ 15, 232, 182, 12, 15, 232, 181, 12, 15, 232, 180, 12, 15, 232, 179, 12,
+ 15, 232, 178, 12, 15, 232, 177, 12, 15, 232, 176, 12, 15, 232, 175, 12,
+ 15, 232, 174, 12, 15, 232, 173, 12, 15, 232, 172, 12, 15, 232, 171, 12,
+ 15, 232, 170, 12, 15, 232, 169, 12, 15, 232, 168, 12, 15, 232, 167, 12,
+ 15, 232, 166, 12, 15, 232, 165, 12, 15, 232, 164, 12, 15, 232, 163, 12,
+ 15, 232, 162, 12, 15, 232, 161, 12, 15, 232, 160, 12, 15, 232, 159, 12,
+ 15, 232, 158, 12, 15, 232, 157, 12, 15, 232, 156, 12, 15, 232, 155, 12,
+ 15, 232, 154, 12, 15, 232, 153, 12, 15, 232, 152, 12, 15, 232, 151, 12,
+ 15, 232, 150, 12, 15, 232, 149, 12, 15, 232, 148, 12, 15, 232, 147, 12,
+ 15, 232, 146, 12, 15, 232, 145, 12, 15, 232, 144, 12, 15, 232, 143, 12,
+ 15, 232, 142, 12, 15, 232, 141, 12, 15, 232, 140, 12, 15, 232, 139, 12,
+ 15, 232, 138, 12, 15, 232, 137, 12, 15, 232, 136, 12, 15, 232, 135, 12,
+ 15, 232, 134, 12, 15, 232, 133, 12, 15, 232, 132, 12, 15, 232, 131, 12,
+ 15, 232, 130, 12, 15, 232, 129, 12, 15, 232, 128, 12, 15, 232, 127, 12,
+ 15, 232, 126, 12, 15, 232, 125, 12, 15, 232, 124, 12, 15, 232, 123, 12,
+ 15, 232, 122, 12, 15, 232, 121, 12, 15, 232, 120, 12, 15, 232, 119, 12,
+ 15, 232, 118, 12, 15, 232, 117, 12, 15, 232, 116, 12, 15, 232, 115, 12,
+ 15, 232, 114, 12, 15, 232, 113, 12, 15, 232, 112, 12, 15, 232, 111, 12,
+ 15, 232, 110, 12, 15, 232, 109, 12, 15, 232, 108, 12, 15, 232, 107, 12,
+ 15, 232, 106, 12, 15, 232, 105, 12, 15, 232, 104, 12, 15, 232, 103, 12,
+ 15, 232, 102, 12, 15, 232, 101, 12, 15, 232, 100, 12, 15, 232, 99, 12,
+ 15, 232, 98, 12, 15, 232, 97, 12, 15, 232, 96, 12, 15, 232, 95, 12, 15,
+ 232, 94, 12, 15, 232, 93, 12, 15, 232, 92, 12, 15, 232, 91, 12, 15, 232,
+ 90, 12, 15, 232, 89, 12, 15, 232, 88, 12, 15, 232, 87, 12, 15, 232, 86,
+ 12, 15, 232, 85, 12, 15, 232, 84, 12, 15, 232, 83, 12, 15, 232, 82, 12,
+ 15, 232, 81, 12, 15, 232, 80, 12, 15, 232, 79, 12, 15, 232, 78, 12, 15,
+ 232, 77, 12, 15, 232, 76, 12, 15, 232, 75, 12, 15, 232, 74, 12, 15, 232,
+ 73, 12, 15, 232, 72, 12, 15, 232, 71, 12, 15, 232, 70, 12, 15, 232, 69,
+ 12, 15, 232, 68, 12, 15, 232, 67, 12, 15, 232, 66, 12, 15, 232, 65, 12,
+ 15, 232, 64, 12, 15, 232, 63, 12, 15, 232, 62, 12, 15, 232, 61, 12, 15,
+ 232, 60, 12, 15, 232, 59, 12, 15, 232, 58, 12, 15, 232, 57, 12, 15, 232,
+ 56, 12, 15, 232, 55, 12, 15, 232, 54, 12, 15, 232, 53, 12, 15, 232, 52,
+ 12, 15, 232, 51, 12, 15, 232, 50, 12, 15, 232, 49, 12, 15, 232, 48, 12,
+ 15, 232, 47, 12, 15, 232, 46, 12, 15, 232, 45, 12, 15, 232, 44, 12, 15,
+ 232, 43, 12, 15, 232, 42, 12, 15, 232, 41, 12, 15, 232, 40, 12, 15, 232,
+ 39, 12, 15, 232, 38, 12, 15, 232, 37, 12, 15, 232, 36, 12, 15, 232, 35,
+ 12, 15, 232, 34, 12, 15, 232, 33, 12, 15, 232, 32, 12, 15, 232, 31, 12,
+ 15, 232, 30, 12, 15, 232, 29, 12, 15, 232, 28, 12, 15, 232, 27, 12, 15,
+ 232, 26, 12, 15, 232, 25, 12, 15, 232, 24, 12, 15, 232, 23, 12, 15, 232,
+ 22, 12, 15, 232, 21, 12, 15, 232, 20, 12, 15, 232, 19, 12, 15, 232, 18,
+ 12, 15, 232, 17, 12, 15, 232, 16, 12, 15, 232, 15, 12, 15, 232, 14, 12,
+ 15, 232, 13, 12, 15, 232, 12, 12, 15, 232, 11, 12, 15, 232, 10, 12, 15,
+ 232, 9, 12, 15, 232, 8, 12, 15, 232, 7, 12, 15, 232, 6, 12, 15, 232, 5,
+ 12, 15, 232, 4, 12, 15, 232, 3, 12, 15, 232, 2, 12, 15, 232, 1, 12, 15,
+ 232, 0, 12, 15, 231, 255, 12, 15, 231, 254, 12, 15, 231, 253, 12, 15,
+ 231, 252, 12, 15, 231, 251, 12, 15, 231, 250, 12, 15, 231, 249, 12, 15,
+ 231, 248, 12, 15, 231, 247, 12, 15, 231, 246, 12, 15, 231, 245, 12, 15,
+ 231, 244, 12, 15, 231, 243, 12, 15, 231, 242, 12, 15, 231, 241, 12, 15,
+ 231, 240, 12, 15, 231, 239, 12, 15, 231, 238, 12, 15, 231, 237, 12, 15,
+ 231, 236, 12, 15, 231, 235, 12, 15, 231, 234, 12, 15, 231, 233, 12, 15,
+ 231, 232, 12, 15, 231, 231, 12, 15, 231, 230, 12, 15, 231, 229, 12, 15,
+ 231, 228, 12, 15, 231, 227, 12, 15, 231, 226, 12, 15, 231, 225, 12, 15,
+ 231, 224, 12, 15, 231, 223, 12, 15, 231, 222, 12, 15, 231, 221, 12, 15,
+ 231, 220, 12, 15, 231, 219, 12, 15, 231, 218, 12, 15, 231, 217, 12, 15,
+ 231, 216, 12, 15, 231, 215, 12, 15, 231, 214, 12, 15, 231, 213, 12, 15,
+ 231, 212, 12, 15, 231, 211, 12, 15, 231, 210, 12, 15, 231, 209, 12, 15,
+ 231, 208, 12, 15, 231, 207, 12, 15, 231, 206, 12, 15, 231, 205, 12, 15,
+ 231, 204, 12, 15, 231, 203, 12, 15, 231, 202, 12, 15, 231, 201, 12, 15,
+ 231, 200, 12, 15, 231, 199, 12, 15, 231, 198, 12, 15, 231, 197, 12, 15,
+ 231, 196, 12, 15, 231, 195, 12, 15, 231, 194, 12, 15, 231, 193, 12, 15,
+ 231, 192, 12, 15, 231, 191, 12, 15, 231, 190, 12, 15, 231, 189, 12, 15,
+ 231, 188, 12, 15, 231, 187, 12, 15, 231, 186, 12, 15, 231, 185, 12, 15,
+ 231, 184, 12, 15, 231, 183, 12, 15, 231, 182, 12, 15, 231, 181, 12, 15,
+ 231, 180, 12, 15, 231, 179, 12, 15, 231, 178, 12, 15, 231, 177, 12, 15,
+ 231, 176, 12, 15, 231, 175, 12, 15, 231, 174, 12, 15, 231, 173, 12, 15,
+ 231, 172, 12, 15, 231, 171, 12, 15, 231, 170, 12, 15, 231, 169, 12, 15,
+ 231, 168, 12, 15, 231, 167, 12, 15, 231, 166, 12, 15, 231, 165, 12, 15,
+ 231, 164, 12, 15, 231, 163, 12, 15, 231, 162, 12, 15, 231, 161, 12, 15,
+ 231, 160, 12, 15, 231, 159, 12, 15, 231, 158, 12, 15, 231, 157, 12, 15,
+ 231, 156, 12, 15, 231, 155, 12, 15, 231, 154, 12, 15, 231, 153, 12, 15,
+ 231, 152, 12, 15, 231, 151, 12, 15, 231, 150, 12, 15, 231, 149, 12, 15,
+ 231, 148, 12, 15, 231, 147, 12, 15, 231, 146, 12, 15, 231, 145, 12, 15,
+ 231, 144, 12, 15, 231, 143, 12, 15, 231, 142, 12, 15, 231, 141, 12, 15,
+ 231, 140, 12, 15, 231, 139, 12, 15, 231, 138, 12, 15, 231, 137, 12, 15,
+ 231, 136, 12, 15, 231, 135, 12, 15, 231, 134, 12, 15, 231, 133, 12, 15,
+ 231, 132, 12, 15, 231, 131, 12, 15, 231, 130, 12, 15, 231, 129, 12, 15,
+ 231, 128, 12, 15, 231, 127, 12, 15, 231, 126, 12, 15, 231, 125, 12, 15,
+ 231, 124, 12, 15, 231, 123, 12, 15, 231, 122, 12, 15, 231, 121, 12, 15,
+ 231, 120, 12, 15, 231, 119, 12, 15, 231, 118, 12, 15, 231, 117, 12, 15,
+ 231, 116, 12, 15, 231, 115, 8, 5, 32, 240, 30, 8, 5, 32, 240, 26, 8, 5,
+ 32, 239, 228, 8, 5, 32, 240, 29, 8, 5, 32, 240, 28, 8, 5, 32, 163, 215,
+ 94, 210, 69, 8, 5, 32, 211, 108, 178, 5, 32, 224, 241, 221, 152, 178, 5,
+ 32, 224, 241, 241, 167, 178, 5, 32, 224, 241, 231, 19, 178, 5, 32, 205,
+ 235, 221, 152, 178, 5, 32, 224, 241, 203, 174, 110, 1, 202, 237, 3, 236,
+ 232, 110, 218, 63, 230, 81, 206, 67, 110, 32, 203, 9, 202, 237, 202, 237,
+ 219, 54, 110, 1, 250, 250, 250, 3, 110, 1, 204, 27, 251, 30, 110, 1, 204,
+ 27, 244, 178, 110, 1, 204, 27, 237, 67, 110, 1, 204, 27, 230, 22, 110, 1,
+ 204, 27, 228, 20, 110, 1, 204, 27, 46, 224, 247, 110, 1, 204, 27, 216,
+ 91, 110, 1, 204, 27, 209, 203, 110, 1, 250, 250, 91, 54, 110, 1, 213, 0,
+ 3, 213, 0, 243, 85, 110, 1, 213, 0, 3, 212, 124, 243, 85, 110, 1, 213, 0,
+ 3, 244, 198, 25, 213, 0, 243, 85, 110, 1, 213, 0, 3, 244, 198, 25, 212,
+ 124, 243, 85, 110, 1, 137, 3, 219, 54, 110, 1, 137, 3, 217, 114, 110, 1,
+ 137, 3, 225, 105, 110, 1, 248, 109, 3, 244, 197, 110, 1, 238, 68, 3, 244,
+ 197, 110, 1, 244, 179, 3, 244, 197, 110, 1, 237, 68, 3, 225, 105, 110, 1,
+ 206, 60, 3, 244, 197, 110, 1, 202, 96, 3, 244, 197, 110, 1, 209, 133, 3,
+ 244, 197, 110, 1, 202, 237, 3, 244, 197, 110, 1, 46, 230, 23, 3, 244,
+ 197, 110, 1, 230, 23, 3, 244, 197, 110, 1, 228, 21, 3, 244, 197, 110, 1,
+ 224, 248, 3, 244, 197, 110, 1, 221, 41, 3, 244, 197, 110, 1, 214, 250, 3,
+ 244, 197, 110, 1, 46, 219, 35, 3, 244, 197, 110, 1, 219, 35, 3, 244, 197,
+ 110, 1, 208, 16, 3, 244, 197, 110, 1, 217, 75, 3, 244, 197, 110, 1, 216,
+ 92, 3, 244, 197, 110, 1, 213, 0, 3, 244, 197, 110, 1, 209, 204, 3, 244,
+ 197, 110, 1, 206, 60, 3, 236, 128, 110, 1, 248, 109, 3, 216, 200, 110, 1,
+ 230, 23, 3, 216, 200, 110, 1, 219, 35, 3, 216, 200, 110, 32, 137, 228,
+ 20, 10, 1, 137, 204, 88, 64, 18, 10, 1, 137, 204, 88, 46, 18, 10, 1, 248,
+ 149, 64, 18, 10, 1, 248, 149, 46, 18, 10, 1, 248, 149, 81, 18, 10, 1,
+ 248, 149, 174, 18, 10, 1, 219, 17, 64, 18, 10, 1, 219, 17, 46, 18, 10, 1,
+ 219, 17, 81, 18, 10, 1, 219, 17, 174, 18, 10, 1, 248, 137, 64, 18, 10, 1,
+ 248, 137, 46, 18, 10, 1, 248, 137, 81, 18, 10, 1, 248, 137, 174, 18, 10,
+ 1, 207, 232, 64, 18, 10, 1, 207, 232, 46, 18, 10, 1, 207, 232, 81, 18,
+ 10, 1, 207, 232, 174, 18, 10, 1, 209, 168, 64, 18, 10, 1, 209, 168, 46,
+ 18, 10, 1, 209, 168, 81, 18, 10, 1, 209, 168, 174, 18, 10, 1, 207, 234,
+ 64, 18, 10, 1, 207, 234, 46, 18, 10, 1, 207, 234, 81, 18, 10, 1, 207,
+ 234, 174, 18, 10, 1, 206, 49, 64, 18, 10, 1, 206, 49, 46, 18, 10, 1, 206,
+ 49, 81, 18, 10, 1, 206, 49, 174, 18, 10, 1, 219, 15, 64, 18, 10, 1, 219,
+ 15, 46, 18, 10, 1, 219, 15, 81, 18, 10, 1, 219, 15, 174, 18, 10, 1, 242,
+ 6, 64, 18, 10, 1, 242, 6, 46, 18, 10, 1, 242, 6, 81, 18, 10, 1, 242, 6,
+ 174, 18, 10, 1, 220, 255, 64, 18, 10, 1, 220, 255, 46, 18, 10, 1, 220,
+ 255, 81, 18, 10, 1, 220, 255, 174, 18, 10, 1, 209, 192, 64, 18, 10, 1,
+ 209, 192, 46, 18, 10, 1, 209, 192, 81, 18, 10, 1, 209, 192, 174, 18, 10,
+ 1, 209, 190, 64, 18, 10, 1, 209, 190, 46, 18, 10, 1, 209, 190, 81, 18,
+ 10, 1, 209, 190, 174, 18, 10, 1, 244, 118, 64, 18, 10, 1, 244, 118, 46,
+ 18, 10, 1, 244, 192, 64, 18, 10, 1, 244, 192, 46, 18, 10, 1, 242, 34, 64,
+ 18, 10, 1, 242, 34, 46, 18, 10, 1, 244, 116, 64, 18, 10, 1, 244, 116, 46,
+ 18, 10, 1, 230, 156, 64, 18, 10, 1, 230, 156, 46, 18, 10, 1, 215, 178,
+ 64, 18, 10, 1, 215, 178, 46, 18, 10, 1, 229, 190, 64, 18, 10, 1, 229,
+ 190, 46, 18, 10, 1, 229, 190, 81, 18, 10, 1, 229, 190, 174, 18, 10, 1,
+ 238, 252, 64, 18, 10, 1, 238, 252, 46, 18, 10, 1, 238, 252, 81, 18, 10,
+ 1, 238, 252, 174, 18, 10, 1, 237, 218, 64, 18, 10, 1, 237, 218, 46, 18,
+ 10, 1, 237, 218, 81, 18, 10, 1, 237, 218, 174, 18, 10, 1, 222, 127, 64,
+ 18, 10, 1, 222, 127, 46, 18, 10, 1, 222, 127, 81, 18, 10, 1, 222, 127,
+ 174, 18, 10, 1, 221, 179, 238, 86, 64, 18, 10, 1, 221, 179, 238, 86, 46,
+ 18, 10, 1, 215, 231, 64, 18, 10, 1, 215, 231, 46, 18, 10, 1, 215, 231,
+ 81, 18, 10, 1, 215, 231, 174, 18, 10, 1, 237, 44, 3, 89, 87, 64, 18, 10,
+ 1, 237, 44, 3, 89, 87, 46, 18, 10, 1, 237, 44, 238, 37, 64, 18, 10, 1,
+ 237, 44, 238, 37, 46, 18, 10, 1, 237, 44, 238, 37, 81, 18, 10, 1, 237,
+ 44, 238, 37, 174, 18, 10, 1, 237, 44, 243, 110, 64, 18, 10, 1, 237, 44,
+ 243, 110, 46, 18, 10, 1, 237, 44, 243, 110, 81, 18, 10, 1, 237, 44, 243,
+ 110, 174, 18, 10, 1, 89, 248, 224, 64, 18, 10, 1, 89, 248, 224, 46, 18,
+ 10, 1, 89, 248, 224, 3, 237, 128, 87, 64, 18, 10, 1, 89, 248, 224, 3,
+ 237, 128, 87, 46, 18, 10, 16, 70, 55, 10, 16, 70, 56, 10, 16, 120, 187,
+ 55, 10, 16, 120, 187, 56, 10, 16, 126, 187, 55, 10, 16, 126, 187, 56, 10,
+ 16, 126, 187, 218, 59, 183, 55, 10, 16, 126, 187, 218, 59, 183, 56, 10,
+ 16, 239, 147, 187, 55, 10, 16, 239, 147, 187, 56, 10, 16, 52, 80, 248,
+ 231, 56, 10, 16, 120, 187, 205, 244, 55, 10, 16, 120, 187, 205, 244, 56,
+ 10, 16, 215, 252, 10, 16, 5, 209, 252, 55, 10, 16, 5, 209, 252, 56, 10,
+ 1, 222, 206, 64, 18, 10, 1, 222, 206, 46, 18, 10, 1, 222, 206, 81, 18,
+ 10, 1, 222, 206, 174, 18, 10, 1, 106, 64, 18, 10, 1, 106, 46, 18, 10, 1,
+ 220, 74, 64, 18, 10, 1, 220, 74, 46, 18, 10, 1, 202, 214, 64, 18, 10, 1,
+ 202, 214, 46, 18, 10, 1, 106, 3, 237, 128, 87, 64, 18, 10, 1, 206, 56,
+ 64, 18, 10, 1, 206, 56, 46, 18, 10, 1, 229, 76, 220, 74, 64, 18, 10, 1,
+ 229, 76, 220, 74, 46, 18, 10, 1, 229, 76, 202, 214, 64, 18, 10, 1, 229,
+ 76, 202, 214, 46, 18, 10, 1, 188, 64, 18, 10, 1, 188, 46, 18, 10, 1, 188,
+ 81, 18, 10, 1, 188, 174, 18, 10, 1, 207, 16, 229, 205, 229, 76, 137, 225,
+ 130, 81, 18, 10, 1, 207, 16, 229, 205, 229, 76, 137, 225, 130, 174, 18,
+ 10, 32, 89, 3, 237, 128, 87, 3, 137, 64, 18, 10, 32, 89, 3, 237, 128, 87,
+ 3, 137, 46, 18, 10, 32, 89, 3, 237, 128, 87, 3, 251, 110, 64, 18, 10, 32,
+ 89, 3, 237, 128, 87, 3, 251, 110, 46, 18, 10, 32, 89, 3, 237, 128, 87, 3,
+ 204, 71, 64, 18, 10, 32, 89, 3, 237, 128, 87, 3, 204, 71, 46, 18, 10, 32,
+ 89, 3, 237, 128, 87, 3, 106, 64, 18, 10, 32, 89, 3, 237, 128, 87, 3, 106,
+ 46, 18, 10, 32, 89, 3, 237, 128, 87, 3, 220, 74, 64, 18, 10, 32, 89, 3,
+ 237, 128, 87, 3, 220, 74, 46, 18, 10, 32, 89, 3, 237, 128, 87, 3, 202,
+ 214, 64, 18, 10, 32, 89, 3, 237, 128, 87, 3, 202, 214, 46, 18, 10, 32,
+ 89, 3, 237, 128, 87, 3, 188, 64, 18, 10, 32, 89, 3, 237, 128, 87, 3, 188,
+ 46, 18, 10, 32, 89, 3, 237, 128, 87, 3, 188, 81, 18, 10, 32, 207, 16,
+ 229, 76, 89, 3, 237, 128, 87, 3, 137, 225, 130, 64, 18, 10, 32, 207, 16,
+ 229, 76, 89, 3, 237, 128, 87, 3, 137, 225, 130, 46, 18, 10, 32, 207, 16,
+ 229, 76, 89, 3, 237, 128, 87, 3, 137, 225, 130, 81, 18, 10, 1, 240, 75,
+ 89, 64, 18, 10, 1, 240, 75, 89, 46, 18, 10, 1, 240, 75, 89, 81, 18, 10,
+ 1, 240, 75, 89, 174, 18, 10, 32, 89, 3, 237, 128, 87, 3, 184, 64, 18, 10,
+ 32, 89, 3, 237, 128, 87, 3, 151, 64, 18, 10, 32, 89, 3, 237, 128, 87, 3,
+ 83, 64, 18, 10, 32, 89, 3, 237, 128, 87, 3, 137, 225, 130, 64, 18, 10,
+ 32, 89, 3, 237, 128, 87, 3, 89, 64, 18, 10, 32, 248, 139, 3, 184, 64, 18,
+ 10, 32, 248, 139, 3, 151, 64, 18, 10, 32, 248, 139, 3, 229, 141, 64, 18,
+ 10, 32, 248, 139, 3, 83, 64, 18, 10, 32, 248, 139, 3, 137, 225, 130, 64,
+ 18, 10, 32, 248, 139, 3, 89, 64, 18, 10, 32, 209, 170, 3, 184, 64, 18,
+ 10, 32, 209, 170, 3, 151, 64, 18, 10, 32, 209, 170, 3, 229, 141, 64, 18,
+ 10, 32, 209, 170, 3, 83, 64, 18, 10, 32, 209, 170, 3, 137, 225, 130, 64,
+ 18, 10, 32, 209, 170, 3, 89, 64, 18, 10, 32, 209, 89, 3, 184, 64, 18, 10,
+ 32, 209, 89, 3, 83, 64, 18, 10, 32, 209, 89, 3, 137, 225, 130, 64, 18,
+ 10, 32, 209, 89, 3, 89, 64, 18, 10, 32, 184, 3, 151, 64, 18, 10, 32, 184,
+ 3, 83, 64, 18, 10, 32, 151, 3, 184, 64, 18, 10, 32, 151, 3, 83, 64, 18,
+ 10, 32, 229, 141, 3, 184, 64, 18, 10, 32, 229, 141, 3, 151, 64, 18, 10,
+ 32, 229, 141, 3, 83, 64, 18, 10, 32, 214, 162, 3, 184, 64, 18, 10, 32,
+ 214, 162, 3, 151, 64, 18, 10, 32, 214, 162, 3, 229, 141, 64, 18, 10, 32,
+ 214, 162, 3, 83, 64, 18, 10, 32, 215, 29, 3, 151, 64, 18, 10, 32, 215,
+ 29, 3, 83, 64, 18, 10, 32, 244, 208, 3, 184, 64, 18, 10, 32, 244, 208, 3,
+ 151, 64, 18, 10, 32, 244, 208, 3, 229, 141, 64, 18, 10, 32, 244, 208, 3,
+ 83, 64, 18, 10, 32, 209, 252, 3, 151, 64, 18, 10, 32, 209, 252, 3, 83,
+ 64, 18, 10, 32, 202, 111, 3, 83, 64, 18, 10, 32, 251, 60, 3, 184, 64, 18,
+ 10, 32, 251, 60, 3, 83, 64, 18, 10, 32, 238, 115, 3, 184, 64, 18, 10, 32,
+ 238, 115, 3, 83, 64, 18, 10, 32, 240, 48, 3, 184, 64, 18, 10, 32, 240,
+ 48, 3, 151, 64, 18, 10, 32, 240, 48, 3, 229, 141, 64, 18, 10, 32, 240,
+ 48, 3, 83, 64, 18, 10, 32, 240, 48, 3, 137, 225, 130, 64, 18, 10, 32,
+ 240, 48, 3, 89, 64, 18, 10, 32, 217, 120, 3, 151, 64, 18, 10, 32, 217,
+ 120, 3, 83, 64, 18, 10, 32, 217, 120, 3, 137, 225, 130, 64, 18, 10, 32,
+ 217, 120, 3, 89, 64, 18, 10, 32, 230, 23, 3, 137, 64, 18, 10, 32, 230,
+ 23, 3, 184, 64, 18, 10, 32, 230, 23, 3, 151, 64, 18, 10, 32, 230, 23, 3,
+ 229, 141, 64, 18, 10, 32, 230, 23, 3, 228, 29, 64, 18, 10, 32, 230, 23,
+ 3, 83, 64, 18, 10, 32, 230, 23, 3, 137, 225, 130, 64, 18, 10, 32, 230,
+ 23, 3, 89, 64, 18, 10, 32, 228, 29, 3, 184, 64, 18, 10, 32, 228, 29, 3,
+ 151, 64, 18, 10, 32, 228, 29, 3, 229, 141, 64, 18, 10, 32, 228, 29, 3,
+ 83, 64, 18, 10, 32, 228, 29, 3, 137, 225, 130, 64, 18, 10, 32, 228, 29,
+ 3, 89, 64, 18, 10, 32, 83, 3, 184, 64, 18, 10, 32, 83, 3, 151, 64, 18,
+ 10, 32, 83, 3, 229, 141, 64, 18, 10, 32, 83, 3, 83, 64, 18, 10, 32, 83,
+ 3, 137, 225, 130, 64, 18, 10, 32, 83, 3, 89, 64, 18, 10, 32, 221, 179, 3,
+ 184, 64, 18, 10, 32, 221, 179, 3, 151, 64, 18, 10, 32, 221, 179, 3, 229,
+ 141, 64, 18, 10, 32, 221, 179, 3, 83, 64, 18, 10, 32, 221, 179, 3, 137,
+ 225, 130, 64, 18, 10, 32, 221, 179, 3, 89, 64, 18, 10, 32, 237, 44, 3,
+ 184, 64, 18, 10, 32, 237, 44, 3, 83, 64, 18, 10, 32, 237, 44, 3, 137,
+ 225, 130, 64, 18, 10, 32, 237, 44, 3, 89, 64, 18, 10, 32, 89, 3, 184, 64,
+ 18, 10, 32, 89, 3, 151, 64, 18, 10, 32, 89, 3, 229, 141, 64, 18, 10, 32,
+ 89, 3, 83, 64, 18, 10, 32, 89, 3, 137, 225, 130, 64, 18, 10, 32, 89, 3,
+ 89, 64, 18, 10, 32, 209, 101, 3, 210, 199, 137, 64, 18, 10, 32, 216, 123,
+ 3, 210, 199, 137, 64, 18, 10, 32, 137, 225, 130, 3, 210, 199, 137, 64,
+ 18, 10, 32, 213, 81, 3, 244, 171, 64, 18, 10, 32, 213, 81, 3, 229, 228,
+ 64, 18, 10, 32, 213, 81, 3, 240, 72, 64, 18, 10, 32, 213, 81, 3, 244,
+ 173, 64, 18, 10, 32, 213, 81, 3, 229, 230, 64, 18, 10, 32, 213, 81, 3,
+ 210, 199, 137, 64, 18, 10, 32, 89, 3, 237, 128, 87, 3, 216, 123, 46, 18,
+ 10, 32, 89, 3, 237, 128, 87, 3, 202, 108, 46, 18, 10, 32, 89, 3, 237,
+ 128, 87, 3, 83, 46, 18, 10, 32, 89, 3, 237, 128, 87, 3, 221, 179, 46, 18,
+ 10, 32, 89, 3, 237, 128, 87, 3, 137, 225, 130, 46, 18, 10, 32, 89, 3,
+ 237, 128, 87, 3, 89, 46, 18, 10, 32, 248, 139, 3, 216, 123, 46, 18, 10,
+ 32, 248, 139, 3, 202, 108, 46, 18, 10, 32, 248, 139, 3, 83, 46, 18, 10,
+ 32, 248, 139, 3, 221, 179, 46, 18, 10, 32, 248, 139, 3, 137, 225, 130,
+ 46, 18, 10, 32, 248, 139, 3, 89, 46, 18, 10, 32, 209, 170, 3, 216, 123,
+ 46, 18, 10, 32, 209, 170, 3, 202, 108, 46, 18, 10, 32, 209, 170, 3, 83,
+ 46, 18, 10, 32, 209, 170, 3, 221, 179, 46, 18, 10, 32, 209, 170, 3, 137,
+ 225, 130, 46, 18, 10, 32, 209, 170, 3, 89, 46, 18, 10, 32, 209, 89, 3,
+ 216, 123, 46, 18, 10, 32, 209, 89, 3, 202, 108, 46, 18, 10, 32, 209, 89,
+ 3, 83, 46, 18, 10, 32, 209, 89, 3, 221, 179, 46, 18, 10, 32, 209, 89, 3,
+ 137, 225, 130, 46, 18, 10, 32, 209, 89, 3, 89, 46, 18, 10, 32, 240, 48,
+ 3, 137, 225, 130, 46, 18, 10, 32, 240, 48, 3, 89, 46, 18, 10, 32, 217,
+ 120, 3, 137, 225, 130, 46, 18, 10, 32, 217, 120, 3, 89, 46, 18, 10, 32,
+ 230, 23, 3, 137, 46, 18, 10, 32, 230, 23, 3, 228, 29, 46, 18, 10, 32,
+ 230, 23, 3, 83, 46, 18, 10, 32, 230, 23, 3, 137, 225, 130, 46, 18, 10,
+ 32, 230, 23, 3, 89, 46, 18, 10, 32, 228, 29, 3, 83, 46, 18, 10, 32, 228,
+ 29, 3, 137, 225, 130, 46, 18, 10, 32, 228, 29, 3, 89, 46, 18, 10, 32, 83,
+ 3, 137, 46, 18, 10, 32, 83, 3, 83, 46, 18, 10, 32, 221, 179, 3, 216, 123,
+ 46, 18, 10, 32, 221, 179, 3, 202, 108, 46, 18, 10, 32, 221, 179, 3, 83,
+ 46, 18, 10, 32, 221, 179, 3, 221, 179, 46, 18, 10, 32, 221, 179, 3, 137,
+ 225, 130, 46, 18, 10, 32, 221, 179, 3, 89, 46, 18, 10, 32, 137, 225, 130,
+ 3, 210, 199, 137, 46, 18, 10, 32, 89, 3, 216, 123, 46, 18, 10, 32, 89, 3,
+ 202, 108, 46, 18, 10, 32, 89, 3, 83, 46, 18, 10, 32, 89, 3, 221, 179, 46,
+ 18, 10, 32, 89, 3, 137, 225, 130, 46, 18, 10, 32, 89, 3, 89, 46, 18, 10,
+ 32, 89, 3, 237, 128, 87, 3, 184, 81, 18, 10, 32, 89, 3, 237, 128, 87, 3,
+ 151, 81, 18, 10, 32, 89, 3, 237, 128, 87, 3, 229, 141, 81, 18, 10, 32,
+ 89, 3, 237, 128, 87, 3, 83, 81, 18, 10, 32, 89, 3, 237, 128, 87, 3, 237,
+ 44, 81, 18, 10, 32, 248, 139, 3, 184, 81, 18, 10, 32, 248, 139, 3, 151,
+ 81, 18, 10, 32, 248, 139, 3, 229, 141, 81, 18, 10, 32, 248, 139, 3, 83,
+ 81, 18, 10, 32, 248, 139, 3, 237, 44, 81, 18, 10, 32, 209, 170, 3, 184,
+ 81, 18, 10, 32, 209, 170, 3, 151, 81, 18, 10, 32, 209, 170, 3, 229, 141,
+ 81, 18, 10, 32, 209, 170, 3, 83, 81, 18, 10, 32, 209, 170, 3, 237, 44,
+ 81, 18, 10, 32, 209, 89, 3, 83, 81, 18, 10, 32, 184, 3, 151, 81, 18, 10,
+ 32, 184, 3, 83, 81, 18, 10, 32, 151, 3, 184, 81, 18, 10, 32, 151, 3, 83,
+ 81, 18, 10, 32, 229, 141, 3, 184, 81, 18, 10, 32, 229, 141, 3, 83, 81,
+ 18, 10, 32, 214, 162, 3, 184, 81, 18, 10, 32, 214, 162, 3, 151, 81, 18,
+ 10, 32, 214, 162, 3, 229, 141, 81, 18, 10, 32, 214, 162, 3, 83, 81, 18,
+ 10, 32, 215, 29, 3, 151, 81, 18, 10, 32, 215, 29, 3, 229, 141, 81, 18,
+ 10, 32, 215, 29, 3, 83, 81, 18, 10, 32, 244, 208, 3, 184, 81, 18, 10, 32,
+ 244, 208, 3, 151, 81, 18, 10, 32, 244, 208, 3, 229, 141, 81, 18, 10, 32,
+ 244, 208, 3, 83, 81, 18, 10, 32, 209, 252, 3, 151, 81, 18, 10, 32, 202,
+ 111, 3, 83, 81, 18, 10, 32, 251, 60, 3, 184, 81, 18, 10, 32, 251, 60, 3,
+ 83, 81, 18, 10, 32, 238, 115, 3, 184, 81, 18, 10, 32, 238, 115, 3, 83,
+ 81, 18, 10, 32, 240, 48, 3, 184, 81, 18, 10, 32, 240, 48, 3, 151, 81, 18,
+ 10, 32, 240, 48, 3, 229, 141, 81, 18, 10, 32, 240, 48, 3, 83, 81, 18, 10,
+ 32, 217, 120, 3, 151, 81, 18, 10, 32, 217, 120, 3, 83, 81, 18, 10, 32,
+ 230, 23, 3, 184, 81, 18, 10, 32, 230, 23, 3, 151, 81, 18, 10, 32, 230,
+ 23, 3, 229, 141, 81, 18, 10, 32, 230, 23, 3, 228, 29, 81, 18, 10, 32,
+ 230, 23, 3, 83, 81, 18, 10, 32, 228, 29, 3, 184, 81, 18, 10, 32, 228, 29,
+ 3, 151, 81, 18, 10, 32, 228, 29, 3, 229, 141, 81, 18, 10, 32, 228, 29, 3,
+ 83, 81, 18, 10, 32, 228, 29, 3, 237, 44, 81, 18, 10, 32, 83, 3, 184, 81,
+ 18, 10, 32, 83, 3, 151, 81, 18, 10, 32, 83, 3, 229, 141, 81, 18, 10, 32,
+ 83, 3, 83, 81, 18, 10, 32, 221, 179, 3, 184, 81, 18, 10, 32, 221, 179, 3,
+ 151, 81, 18, 10, 32, 221, 179, 3, 229, 141, 81, 18, 10, 32, 221, 179, 3,
+ 83, 81, 18, 10, 32, 221, 179, 3, 237, 44, 81, 18, 10, 32, 237, 44, 3,
+ 184, 81, 18, 10, 32, 237, 44, 3, 83, 81, 18, 10, 32, 237, 44, 3, 210,
+ 199, 137, 81, 18, 10, 32, 89, 3, 184, 81, 18, 10, 32, 89, 3, 151, 81, 18,
+ 10, 32, 89, 3, 229, 141, 81, 18, 10, 32, 89, 3, 83, 81, 18, 10, 32, 89,
+ 3, 237, 44, 81, 18, 10, 32, 89, 3, 237, 128, 87, 3, 83, 174, 18, 10, 32,
+ 89, 3, 237, 128, 87, 3, 237, 44, 174, 18, 10, 32, 248, 139, 3, 83, 174,
+ 18, 10, 32, 248, 139, 3, 237, 44, 174, 18, 10, 32, 209, 170, 3, 83, 174,
+ 18, 10, 32, 209, 170, 3, 237, 44, 174, 18, 10, 32, 209, 89, 3, 83, 174,
+ 18, 10, 32, 209, 89, 3, 237, 44, 174, 18, 10, 32, 214, 162, 3, 83, 174,
+ 18, 10, 32, 214, 162, 3, 237, 44, 174, 18, 10, 32, 213, 40, 3, 83, 174,
+ 18, 10, 32, 213, 40, 3, 237, 44, 174, 18, 10, 32, 230, 23, 3, 228, 29,
+ 174, 18, 10, 32, 230, 23, 3, 83, 174, 18, 10, 32, 228, 29, 3, 83, 174,
+ 18, 10, 32, 221, 179, 3, 83, 174, 18, 10, 32, 221, 179, 3, 237, 44, 174,
+ 18, 10, 32, 89, 3, 83, 174, 18, 10, 32, 89, 3, 237, 44, 174, 18, 10, 32,
+ 213, 81, 3, 240, 72, 174, 18, 10, 32, 213, 81, 3, 244, 173, 174, 18, 10,
+ 32, 213, 81, 3, 229, 230, 174, 18, 10, 32, 209, 252, 3, 137, 225, 130,
+ 64, 18, 10, 32, 209, 252, 3, 89, 64, 18, 10, 32, 251, 60, 3, 137, 225,
+ 130, 64, 18, 10, 32, 251, 60, 3, 89, 64, 18, 10, 32, 238, 115, 3, 137,
+ 225, 130, 64, 18, 10, 32, 238, 115, 3, 89, 64, 18, 10, 32, 214, 162, 3,
+ 137, 225, 130, 64, 18, 10, 32, 214, 162, 3, 89, 64, 18, 10, 32, 213, 40,
+ 3, 137, 225, 130, 64, 18, 10, 32, 213, 40, 3, 89, 64, 18, 10, 32, 151, 3,
+ 137, 225, 130, 64, 18, 10, 32, 151, 3, 89, 64, 18, 10, 32, 184, 3, 137,
+ 225, 130, 64, 18, 10, 32, 184, 3, 89, 64, 18, 10, 32, 229, 141, 3, 137,
+ 225, 130, 64, 18, 10, 32, 229, 141, 3, 89, 64, 18, 10, 32, 215, 29, 3,
+ 137, 225, 130, 64, 18, 10, 32, 215, 29, 3, 89, 64, 18, 10, 32, 244, 208,
+ 3, 137, 225, 130, 64, 18, 10, 32, 244, 208, 3, 89, 64, 18, 10, 32, 213,
+ 40, 3, 184, 64, 18, 10, 32, 213, 40, 3, 151, 64, 18, 10, 32, 213, 40, 3,
+ 229, 141, 64, 18, 10, 32, 213, 40, 3, 83, 64, 18, 10, 32, 213, 40, 3,
+ 216, 123, 64, 18, 10, 32, 214, 162, 3, 216, 123, 64, 18, 10, 32, 215, 29,
+ 3, 216, 123, 64, 18, 10, 32, 244, 208, 3, 216, 123, 64, 18, 10, 32, 209,
+ 252, 3, 137, 225, 130, 46, 18, 10, 32, 209, 252, 3, 89, 46, 18, 10, 32,
+ 251, 60, 3, 137, 225, 130, 46, 18, 10, 32, 251, 60, 3, 89, 46, 18, 10,
+ 32, 238, 115, 3, 137, 225, 130, 46, 18, 10, 32, 238, 115, 3, 89, 46, 18,
+ 10, 32, 214, 162, 3, 137, 225, 130, 46, 18, 10, 32, 214, 162, 3, 89, 46,
+ 18, 10, 32, 213, 40, 3, 137, 225, 130, 46, 18, 10, 32, 213, 40, 3, 89,
+ 46, 18, 10, 32, 151, 3, 137, 225, 130, 46, 18, 10, 32, 151, 3, 89, 46,
+ 18, 10, 32, 184, 3, 137, 225, 130, 46, 18, 10, 32, 184, 3, 89, 46, 18,
+ 10, 32, 229, 141, 3, 137, 225, 130, 46, 18, 10, 32, 229, 141, 3, 89, 46,
+ 18, 10, 32, 215, 29, 3, 137, 225, 130, 46, 18, 10, 32, 215, 29, 3, 89,
+ 46, 18, 10, 32, 244, 208, 3, 137, 225, 130, 46, 18, 10, 32, 244, 208, 3,
+ 89, 46, 18, 10, 32, 213, 40, 3, 184, 46, 18, 10, 32, 213, 40, 3, 151, 46,
+ 18, 10, 32, 213, 40, 3, 229, 141, 46, 18, 10, 32, 213, 40, 3, 83, 46, 18,
+ 10, 32, 213, 40, 3, 216, 123, 46, 18, 10, 32, 214, 162, 3, 216, 123, 46,
+ 18, 10, 32, 215, 29, 3, 216, 123, 46, 18, 10, 32, 244, 208, 3, 216, 123,
+ 46, 18, 10, 32, 213, 40, 3, 184, 81, 18, 10, 32, 213, 40, 3, 151, 81, 18,
+ 10, 32, 213, 40, 3, 229, 141, 81, 18, 10, 32, 213, 40, 3, 83, 81, 18, 10,
+ 32, 214, 162, 3, 237, 44, 81, 18, 10, 32, 213, 40, 3, 237, 44, 81, 18,
+ 10, 32, 209, 252, 3, 83, 81, 18, 10, 32, 214, 162, 3, 184, 174, 18, 10,
+ 32, 214, 162, 3, 151, 174, 18, 10, 32, 214, 162, 3, 229, 141, 174, 18,
+ 10, 32, 213, 40, 3, 184, 174, 18, 10, 32, 213, 40, 3, 151, 174, 18, 10,
+ 32, 213, 40, 3, 229, 141, 174, 18, 10, 32, 209, 252, 3, 83, 174, 18, 10,
+ 32, 202, 111, 3, 83, 174, 18, 10, 32, 137, 3, 240, 70, 46, 18, 10, 32,
+ 137, 3, 240, 70, 64, 18, 219, 231, 49, 219, 76, 219, 231, 50, 219, 76,
+ 10, 32, 209, 170, 3, 184, 3, 83, 81, 18, 10, 32, 209, 170, 3, 151, 3,
+ 184, 46, 18, 10, 32, 209, 170, 3, 151, 3, 184, 81, 18, 10, 32, 209, 170,
+ 3, 151, 3, 83, 81, 18, 10, 32, 209, 170, 3, 229, 141, 3, 83, 81, 18, 10,
+ 32, 209, 170, 3, 83, 3, 184, 81, 18, 10, 32, 209, 170, 3, 83, 3, 151, 81,
+ 18, 10, 32, 209, 170, 3, 83, 3, 229, 141, 81, 18, 10, 32, 184, 3, 83, 3,
+ 151, 46, 18, 10, 32, 184, 3, 83, 3, 151, 81, 18, 10, 32, 151, 3, 83, 3,
+ 89, 46, 18, 10, 32, 151, 3, 83, 3, 137, 225, 130, 46, 18, 10, 32, 214,
+ 162, 3, 151, 3, 184, 81, 18, 10, 32, 214, 162, 3, 184, 3, 151, 81, 18,
+ 10, 32, 214, 162, 3, 184, 3, 137, 225, 130, 46, 18, 10, 32, 214, 162, 3,
+ 83, 3, 151, 46, 18, 10, 32, 214, 162, 3, 83, 3, 151, 81, 18, 10, 32, 214,
+ 162, 3, 83, 3, 184, 81, 18, 10, 32, 214, 162, 3, 83, 3, 83, 46, 18, 10,
+ 32, 214, 162, 3, 83, 3, 83, 81, 18, 10, 32, 215, 29, 3, 151, 3, 151, 46,
+ 18, 10, 32, 215, 29, 3, 151, 3, 151, 81, 18, 10, 32, 215, 29, 3, 83, 3,
+ 83, 46, 18, 10, 32, 213, 40, 3, 151, 3, 83, 46, 18, 10, 32, 213, 40, 3,
+ 151, 3, 83, 81, 18, 10, 32, 213, 40, 3, 184, 3, 89, 46, 18, 10, 32, 213,
+ 40, 3, 83, 3, 229, 141, 46, 18, 10, 32, 213, 40, 3, 83, 3, 229, 141, 81,
+ 18, 10, 32, 213, 40, 3, 83, 3, 83, 46, 18, 10, 32, 213, 40, 3, 83, 3, 83,
+ 81, 18, 10, 32, 244, 208, 3, 151, 3, 137, 225, 130, 46, 18, 10, 32, 244,
+ 208, 3, 229, 141, 3, 83, 46, 18, 10, 32, 244, 208, 3, 229, 141, 3, 83,
+ 81, 18, 10, 32, 209, 252, 3, 83, 3, 151, 46, 18, 10, 32, 209, 252, 3, 83,
+ 3, 151, 81, 18, 10, 32, 209, 252, 3, 83, 3, 83, 81, 18, 10, 32, 209, 252,
+ 3, 83, 3, 89, 46, 18, 10, 32, 251, 60, 3, 184, 3, 83, 46, 18, 10, 32,
+ 251, 60, 3, 83, 3, 83, 46, 18, 10, 32, 251, 60, 3, 83, 3, 83, 81, 18, 10,
+ 32, 251, 60, 3, 83, 3, 137, 225, 130, 46, 18, 10, 32, 238, 115, 3, 83, 3,
+ 83, 46, 18, 10, 32, 238, 115, 3, 83, 3, 89, 46, 18, 10, 32, 238, 115, 3,
+ 83, 3, 137, 225, 130, 46, 18, 10, 32, 240, 48, 3, 229, 141, 3, 83, 46,
+ 18, 10, 32, 240, 48, 3, 229, 141, 3, 83, 81, 18, 10, 32, 217, 120, 3, 83,
+ 3, 151, 46, 18, 10, 32, 217, 120, 3, 83, 3, 83, 46, 18, 10, 32, 228, 29,
+ 3, 151, 3, 83, 46, 18, 10, 32, 228, 29, 3, 151, 3, 89, 46, 18, 10, 32,
+ 228, 29, 3, 151, 3, 137, 225, 130, 46, 18, 10, 32, 228, 29, 3, 184, 3,
+ 184, 81, 18, 10, 32, 228, 29, 3, 184, 3, 184, 46, 18, 10, 32, 228, 29, 3,
+ 229, 141, 3, 83, 46, 18, 10, 32, 228, 29, 3, 229, 141, 3, 83, 81, 18, 10,
+ 32, 228, 29, 3, 83, 3, 151, 46, 18, 10, 32, 228, 29, 3, 83, 3, 151, 81,
+ 18, 10, 32, 83, 3, 151, 3, 184, 81, 18, 10, 32, 83, 3, 151, 3, 83, 81,
+ 18, 10, 32, 83, 3, 151, 3, 89, 46, 18, 10, 32, 83, 3, 184, 3, 151, 81,
+ 18, 10, 32, 83, 3, 184, 3, 83, 81, 18, 10, 32, 83, 3, 229, 141, 3, 184,
+ 81, 18, 10, 32, 83, 3, 229, 141, 3, 83, 81, 18, 10, 32, 83, 3, 184, 3,
+ 229, 141, 81, 18, 10, 32, 237, 44, 3, 83, 3, 184, 81, 18, 10, 32, 237,
+ 44, 3, 83, 3, 83, 81, 18, 10, 32, 221, 179, 3, 151, 3, 83, 81, 18, 10,
+ 32, 221, 179, 3, 151, 3, 137, 225, 130, 46, 18, 10, 32, 221, 179, 3, 184,
+ 3, 83, 46, 18, 10, 32, 221, 179, 3, 184, 3, 83, 81, 18, 10, 32, 221, 179,
+ 3, 184, 3, 137, 225, 130, 46, 18, 10, 32, 221, 179, 3, 83, 3, 89, 46, 18,
+ 10, 32, 221, 179, 3, 83, 3, 137, 225, 130, 46, 18, 10, 32, 89, 3, 83, 3,
+ 83, 46, 18, 10, 32, 89, 3, 83, 3, 83, 81, 18, 10, 32, 248, 139, 3, 229,
+ 141, 3, 89, 46, 18, 10, 32, 209, 170, 3, 184, 3, 89, 46, 18, 10, 32, 209,
+ 170, 3, 184, 3, 137, 225, 130, 46, 18, 10, 32, 209, 170, 3, 229, 141, 3,
+ 89, 46, 18, 10, 32, 209, 170, 3, 229, 141, 3, 137, 225, 130, 46, 18, 10,
+ 32, 209, 170, 3, 83, 3, 89, 46, 18, 10, 32, 209, 170, 3, 83, 3, 137, 225,
+ 130, 46, 18, 10, 32, 184, 3, 83, 3, 89, 46, 18, 10, 32, 184, 3, 151, 3,
+ 137, 225, 130, 46, 18, 10, 32, 184, 3, 83, 3, 137, 225, 130, 46, 18, 10,
+ 32, 214, 162, 3, 229, 141, 3, 137, 225, 130, 46, 18, 10, 32, 215, 29, 3,
+ 151, 3, 89, 46, 18, 10, 32, 213, 40, 3, 151, 3, 89, 46, 18, 10, 32, 244,
+ 208, 3, 151, 3, 89, 46, 18, 10, 32, 228, 29, 3, 184, 3, 89, 46, 18, 10,
+ 32, 228, 29, 3, 83, 3, 89, 46, 18, 10, 32, 89, 3, 151, 3, 89, 46, 18, 10,
+ 32, 89, 3, 184, 3, 89, 46, 18, 10, 32, 89, 3, 83, 3, 89, 46, 18, 10, 32,
+ 83, 3, 83, 3, 89, 46, 18, 10, 32, 217, 120, 3, 83, 3, 89, 46, 18, 10, 32,
+ 221, 179, 3, 151, 3, 89, 46, 18, 10, 32, 217, 120, 3, 83, 3, 151, 81, 18,
+ 10, 32, 228, 29, 3, 151, 3, 83, 81, 18, 10, 32, 251, 60, 3, 83, 3, 89,
+ 46, 18, 10, 32, 230, 23, 3, 83, 3, 89, 46, 18, 10, 32, 221, 179, 3, 184,
+ 3, 151, 81, 18, 10, 32, 83, 3, 229, 141, 3, 89, 46, 18, 10, 32, 228, 29,
+ 3, 184, 3, 83, 81, 18, 10, 32, 230, 23, 3, 83, 3, 83, 46, 18, 10, 32,
+ 228, 29, 3, 184, 3, 83, 46, 18, 10, 32, 221, 179, 3, 184, 3, 151, 46, 18,
+ 10, 32, 184, 3, 151, 3, 89, 46, 18, 10, 32, 151, 3, 184, 3, 89, 46, 18,
+ 10, 32, 83, 3, 184, 3, 89, 46, 18, 10, 32, 240, 48, 3, 83, 3, 89, 46, 18,
+ 10, 32, 248, 139, 3, 151, 3, 89, 46, 18, 10, 32, 230, 23, 3, 83, 3, 83,
+ 81, 18, 10, 32, 251, 60, 3, 184, 3, 83, 81, 18, 10, 32, 215, 29, 3, 83,
+ 3, 83, 81, 18, 10, 32, 214, 162, 3, 229, 141, 3, 89, 46, 18, 10, 32, 221,
+ 179, 3, 184, 3, 89, 46, 18, 10, 32, 215, 4, 206, 188, 250, 82, 228, 254,
+ 211, 62, 2, 64, 18, 10, 32, 217, 116, 206, 188, 250, 82, 228, 254, 211,
+ 62, 2, 64, 18, 10, 32, 251, 13, 64, 18, 10, 32, 251, 44, 64, 18, 10, 32,
+ 224, 57, 64, 18, 10, 32, 215, 5, 64, 18, 10, 32, 216, 174, 64, 18, 10,
+ 32, 251, 33, 64, 18, 10, 32, 204, 90, 64, 18, 10, 32, 215, 4, 64, 18, 10,
+ 32, 215, 3, 251, 33, 204, 89, 10, 32, 230, 172, 216, 56, 54, 10, 32, 248,
+ 53, 250, 142, 250, 143, 57, 214, 149, 57, 214, 38, 57, 213, 226, 57, 213,
+ 215, 57, 213, 204, 57, 213, 193, 57, 213, 182, 57, 213, 171, 57, 213,
+ 160, 57, 214, 148, 57, 214, 137, 57, 214, 126, 57, 214, 115, 57, 214,
+ 104, 57, 214, 93, 57, 214, 82, 217, 241, 239, 159, 35, 80, 245, 233, 217,
+ 241, 239, 159, 35, 80, 139, 245, 233, 217, 241, 239, 159, 35, 80, 139,
+ 239, 102, 211, 61, 217, 241, 239, 159, 35, 80, 245, 242, 217, 241, 239,
+ 159, 35, 80, 213, 143, 217, 241, 239, 159, 35, 80, 240, 212, 82, 217,
+ 241, 239, 159, 35, 80, 217, 47, 82, 217, 241, 239, 159, 35, 80, 49, 61,
+ 227, 185, 155, 217, 241, 239, 159, 35, 80, 50, 61, 227, 185, 247, 225,
+ 217, 241, 239, 159, 35, 80, 236, 106, 241, 108, 39, 32, 49, 237, 137, 39,
+ 32, 50, 237, 137, 39, 52, 208, 228, 49, 237, 137, 39, 52, 208, 228, 50,
+ 237, 137, 39, 225, 171, 49, 237, 137, 39, 225, 171, 50, 237, 137, 39,
+ 245, 206, 225, 170, 39, 32, 49, 162, 56, 39, 32, 50, 162, 56, 39, 208,
+ 228, 49, 162, 56, 39, 208, 228, 50, 162, 56, 39, 225, 171, 49, 162, 56,
+ 39, 225, 171, 50, 162, 56, 39, 245, 206, 225, 171, 56, 39, 36, 208, 198,
+ 49, 237, 137, 39, 36, 208, 198, 50, 237, 137, 217, 241, 239, 159, 35, 80,
+ 120, 70, 227, 232, 217, 241, 239, 159, 35, 80, 241, 104, 244, 144, 217,
+ 241, 239, 159, 35, 80, 241, 93, 244, 144, 217, 241, 239, 159, 35, 80,
+ 124, 227, 114, 217, 241, 239, 159, 35, 80, 204, 72, 124, 227, 114, 217,
+ 241, 239, 159, 35, 80, 49, 219, 76, 217, 241, 239, 159, 35, 80, 50, 219,
+ 76, 217, 241, 239, 159, 35, 80, 49, 245, 93, 155, 217, 241, 239, 159, 35,
+ 80, 50, 245, 93, 155, 217, 241, 239, 159, 35, 80, 49, 208, 133, 213, 33,
+ 155, 217, 241, 239, 159, 35, 80, 50, 208, 133, 213, 33, 155, 217, 241,
+ 239, 159, 35, 80, 49, 62, 227, 185, 155, 217, 241, 239, 159, 35, 80, 50,
+ 62, 227, 185, 155, 217, 241, 239, 159, 35, 80, 49, 52, 250, 218, 155,
+ 217, 241, 239, 159, 35, 80, 50, 52, 250, 218, 155, 217, 241, 239, 159,
+ 35, 80, 49, 250, 218, 155, 217, 241, 239, 159, 35, 80, 50, 250, 218, 155,
+ 217, 241, 239, 159, 35, 80, 49, 245, 166, 155, 217, 241, 239, 159, 35,
+ 80, 50, 245, 166, 155, 217, 241, 239, 159, 35, 80, 49, 61, 245, 166, 155,
+ 217, 241, 239, 159, 35, 80, 50, 61, 245, 166, 155, 213, 121, 243, 85, 61,
+ 213, 121, 243, 85, 217, 241, 239, 159, 35, 80, 49, 51, 155, 217, 241,
+ 239, 159, 35, 80, 50, 51, 155, 244, 143, 219, 198, 246, 214, 219, 198,
+ 204, 72, 219, 198, 52, 204, 72, 219, 198, 244, 143, 124, 227, 114, 246,
+ 214, 124, 227, 114, 204, 72, 124, 227, 114, 5, 245, 233, 5, 139, 245,
+ 233, 5, 239, 102, 211, 61, 5, 213, 143, 5, 245, 242, 5, 217, 47, 82, 5,
+ 240, 212, 82, 5, 241, 104, 244, 144, 5, 49, 219, 76, 5, 50, 219, 76, 5,
+ 49, 245, 93, 155, 5, 50, 245, 93, 155, 5, 49, 208, 133, 213, 33, 155, 5,
+ 50, 208, 133, 213, 33, 155, 5, 42, 54, 5, 250, 235, 5, 250, 59, 5, 91,
+ 54, 5, 235, 219, 5, 227, 179, 54, 5, 237, 247, 54, 5, 241, 35, 54, 5,
+ 216, 74, 212, 0, 5, 243, 97, 54, 5, 218, 246, 54, 5, 245, 231, 250, 49,
+ 10, 240, 70, 64, 18, 10, 209, 210, 3, 240, 70, 55, 10, 244, 171, 64, 18,
+ 10, 209, 249, 239, 137, 10, 229, 228, 64, 18, 10, 240, 72, 64, 18, 10,
+ 240, 72, 174, 18, 10, 244, 173, 64, 18, 10, 244, 173, 174, 18, 10, 229,
+ 230, 64, 18, 10, 229, 230, 174, 18, 10, 213, 81, 64, 18, 10, 213, 81,
+ 174, 18, 10, 210, 223, 64, 18, 10, 210, 223, 174, 18, 10, 1, 237, 128,
+ 64, 18, 10, 1, 137, 3, 225, 166, 87, 64, 18, 10, 1, 137, 3, 225, 166, 87,
+ 46, 18, 10, 1, 137, 3, 237, 128, 87, 64, 18, 10, 1, 137, 3, 237, 128, 87,
+ 46, 18, 10, 1, 204, 71, 3, 237, 128, 87, 64, 18, 10, 1, 204, 71, 3, 237,
+ 128, 87, 46, 18, 10, 1, 137, 3, 237, 128, 248, 126, 64, 18, 10, 1, 137,
+ 3, 237, 128, 248, 126, 46, 18, 10, 1, 89, 3, 237, 128, 87, 64, 18, 10, 1,
+ 89, 3, 237, 128, 87, 46, 18, 10, 1, 89, 3, 237, 128, 87, 81, 18, 10, 1,
+ 89, 3, 237, 128, 87, 174, 18, 10, 1, 137, 64, 18, 10, 1, 137, 46, 18, 10,
+ 1, 248, 139, 64, 18, 10, 1, 248, 139, 46, 18, 10, 1, 248, 139, 81, 18,
+ 10, 1, 248, 139, 174, 18, 10, 1, 209, 170, 225, 99, 64, 18, 10, 1, 209,
+ 170, 225, 99, 46, 18, 10, 1, 209, 170, 64, 18, 10, 1, 209, 170, 46, 18,
+ 10, 1, 209, 170, 81, 18, 10, 1, 209, 170, 174, 18, 10, 1, 209, 89, 64,
+ 18, 10, 1, 209, 89, 46, 18, 10, 1, 209, 89, 81, 18, 10, 1, 209, 89, 174,
+ 18, 10, 1, 184, 64, 18, 10, 1, 184, 46, 18, 10, 1, 184, 81, 18, 10, 1,
+ 184, 174, 18, 10, 1, 151, 64, 18, 10, 1, 151, 46, 18, 10, 1, 151, 81, 18,
+ 10, 1, 151, 174, 18, 10, 1, 229, 141, 64, 18, 10, 1, 229, 141, 46, 18,
+ 10, 1, 229, 141, 81, 18, 10, 1, 229, 141, 174, 18, 10, 1, 244, 185, 64,
+ 18, 10, 1, 244, 185, 46, 18, 10, 1, 209, 101, 64, 18, 10, 1, 209, 101,
+ 46, 18, 10, 1, 216, 123, 64, 18, 10, 1, 216, 123, 46, 18, 10, 1, 202,
+ 108, 64, 18, 10, 1, 202, 108, 46, 18, 10, 1, 214, 162, 64, 18, 10, 1,
+ 214, 162, 46, 18, 10, 1, 214, 162, 81, 18, 10, 1, 214, 162, 174, 18, 10,
+ 1, 213, 40, 64, 18, 10, 1, 213, 40, 46, 18, 10, 1, 213, 40, 81, 18, 10,
+ 1, 213, 40, 174, 18, 10, 1, 215, 29, 64, 18, 10, 1, 215, 29, 46, 18, 10,
+ 1, 215, 29, 81, 18, 10, 1, 215, 29, 174, 18, 10, 1, 244, 208, 64, 18, 10,
+ 1, 244, 208, 46, 18, 10, 1, 244, 208, 81, 18, 10, 1, 244, 208, 174, 18,
+ 10, 1, 209, 252, 64, 18, 10, 1, 209, 252, 46, 18, 10, 1, 209, 252, 81,
+ 18, 10, 1, 209, 252, 174, 18, 10, 1, 202, 111, 64, 18, 10, 1, 202, 111,
+ 46, 18, 10, 1, 202, 111, 81, 18, 10, 1, 202, 111, 174, 18, 10, 1, 251,
+ 60, 64, 18, 10, 1, 251, 60, 46, 18, 10, 1, 251, 60, 81, 18, 10, 1, 251,
+ 60, 174, 18, 10, 1, 238, 115, 64, 18, 10, 1, 238, 115, 46, 18, 10, 1,
+ 238, 115, 81, 18, 10, 1, 238, 115, 174, 18, 10, 1, 240, 48, 64, 18, 10,
+ 1, 240, 48, 46, 18, 10, 1, 240, 48, 81, 18, 10, 1, 240, 48, 174, 18, 10,
+ 1, 217, 120, 64, 18, 10, 1, 217, 120, 46, 18, 10, 1, 217, 120, 81, 18,
+ 10, 1, 217, 120, 174, 18, 10, 1, 230, 23, 64, 18, 10, 1, 230, 23, 46, 18,
+ 10, 1, 230, 23, 81, 18, 10, 1, 230, 23, 174, 18, 10, 1, 228, 29, 64, 18,
+ 10, 1, 228, 29, 46, 18, 10, 1, 228, 29, 81, 18, 10, 1, 228, 29, 174, 18,
+ 10, 1, 83, 64, 18, 10, 1, 83, 46, 18, 10, 1, 83, 81, 18, 10, 1, 83, 174,
+ 18, 10, 1, 221, 179, 64, 18, 10, 1, 221, 179, 46, 18, 10, 1, 221, 179,
+ 81, 18, 10, 1, 221, 179, 174, 18, 10, 1, 237, 44, 64, 18, 10, 1, 237, 44,
+ 46, 18, 10, 1, 237, 44, 81, 18, 10, 1, 237, 44, 174, 18, 10, 1, 204, 71,
+ 64, 18, 10, 1, 204, 71, 46, 18, 10, 1, 137, 225, 130, 64, 18, 10, 1, 137,
+ 225, 130, 46, 18, 10, 1, 89, 64, 18, 10, 1, 89, 46, 18, 10, 1, 89, 81,
+ 18, 10, 1, 89, 174, 18, 10, 32, 228, 29, 3, 137, 3, 225, 166, 87, 64, 18,
+ 10, 32, 228, 29, 3, 137, 3, 225, 166, 87, 46, 18, 10, 32, 228, 29, 3,
+ 137, 3, 237, 128, 87, 64, 18, 10, 32, 228, 29, 3, 137, 3, 237, 128, 87,
+ 46, 18, 10, 32, 228, 29, 3, 137, 3, 237, 128, 248, 126, 64, 18, 10, 32,
+ 228, 29, 3, 137, 3, 237, 128, 248, 126, 46, 18, 10, 32, 228, 29, 3, 137,
+ 64, 18, 10, 32, 228, 29, 3, 137, 46, 18, 202, 85, 204, 24, 221, 190, 211,
+ 228, 154, 240, 212, 82, 154, 217, 31, 82, 154, 42, 54, 154, 243, 97, 54,
+ 154, 218, 246, 54, 154, 250, 235, 154, 250, 160, 154, 49, 219, 76, 154,
+ 50, 219, 76, 154, 250, 59, 154, 91, 54, 154, 245, 233, 154, 235, 219,
+ 154, 239, 102, 211, 61, 154, 212, 0, 154, 17, 202, 84, 154, 17, 105, 154,
+ 17, 108, 154, 17, 147, 154, 17, 149, 154, 17, 170, 154, 17, 195, 154, 17,
+ 213, 111, 154, 17, 199, 154, 17, 222, 63, 154, 245, 242, 154, 213, 143,
+ 154, 227, 179, 54, 154, 241, 35, 54, 154, 237, 247, 54, 154, 217, 47, 82,
+ 154, 245, 231, 250, 49, 154, 8, 6, 1, 63, 154, 8, 6, 1, 249, 255, 154, 8,
+ 6, 1, 247, 125, 154, 8, 6, 1, 245, 51, 154, 8, 6, 1, 74, 154, 8, 6, 1,
+ 240, 174, 154, 8, 6, 1, 239, 75, 154, 8, 6, 1, 237, 171, 154, 8, 6, 1,
+ 75, 154, 8, 6, 1, 230, 184, 154, 8, 6, 1, 230, 54, 154, 8, 6, 1, 159,
+ 154, 8, 6, 1, 226, 185, 154, 8, 6, 1, 223, 163, 154, 8, 6, 1, 78, 154, 8,
+ 6, 1, 219, 184, 154, 8, 6, 1, 217, 134, 154, 8, 6, 1, 146, 154, 8, 6, 1,
+ 194, 154, 8, 6, 1, 210, 69, 154, 8, 6, 1, 68, 154, 8, 6, 1, 206, 164,
+ 154, 8, 6, 1, 204, 144, 154, 8, 6, 1, 203, 196, 154, 8, 6, 1, 203, 124,
+ 154, 8, 6, 1, 202, 159, 154, 49, 51, 155, 154, 216, 74, 212, 0, 154, 50,
+ 51, 155, 154, 246, 53, 251, 138, 154, 124, 227, 114, 154, 237, 254, 251,
+ 138, 154, 8, 5, 1, 63, 154, 8, 5, 1, 249, 255, 154, 8, 5, 1, 247, 125,
+ 154, 8, 5, 1, 245, 51, 154, 8, 5, 1, 74, 154, 8, 5, 1, 240, 174, 154, 8,
+ 5, 1, 239, 75, 154, 8, 5, 1, 237, 171, 154, 8, 5, 1, 75, 154, 8, 5, 1,
+ 230, 184, 154, 8, 5, 1, 230, 54, 154, 8, 5, 1, 159, 154, 8, 5, 1, 226,
+ 185, 154, 8, 5, 1, 223, 163, 154, 8, 5, 1, 78, 154, 8, 5, 1, 219, 184,
+ 154, 8, 5, 1, 217, 134, 154, 8, 5, 1, 146, 154, 8, 5, 1, 194, 154, 8, 5,
+ 1, 210, 69, 154, 8, 5, 1, 68, 154, 8, 5, 1, 206, 164, 154, 8, 5, 1, 204,
+ 144, 154, 8, 5, 1, 203, 196, 154, 8, 5, 1, 203, 124, 154, 8, 5, 1, 202,
+ 159, 154, 49, 245, 93, 155, 154, 80, 227, 114, 154, 50, 245, 93, 155,
+ 154, 208, 227, 154, 49, 61, 219, 76, 154, 50, 61, 219, 76, 127, 139, 239,
+ 102, 211, 61, 127, 49, 245, 166, 155, 127, 50, 245, 166, 155, 127, 139,
+ 245, 233, 127, 67, 101, 243, 85, 127, 67, 1, 204, 0, 127, 67, 1, 5, 63,
+ 127, 67, 1, 5, 75, 127, 67, 1, 5, 68, 127, 67, 1, 5, 74, 127, 67, 1, 5,
+ 78, 127, 67, 1, 5, 198, 127, 67, 1, 5, 202, 213, 127, 67, 1, 5, 202, 247,
+ 127, 67, 1, 5, 207, 203, 127, 229, 225, 217, 215, 211, 241, 82, 127, 67,
+ 1, 63, 127, 67, 1, 75, 127, 67, 1, 68, 127, 67, 1, 74, 127, 67, 1, 78,
+ 127, 67, 1, 173, 127, 67, 1, 229, 100, 127, 67, 1, 228, 209, 127, 67, 1,
+ 229, 201, 127, 67, 1, 229, 26, 127, 67, 1, 215, 36, 127, 67, 1, 212, 162,
+ 127, 67, 1, 211, 10, 127, 67, 1, 214, 177, 127, 67, 1, 212, 13, 127, 67,
+ 1, 210, 22, 127, 67, 1, 209, 2, 127, 67, 1, 207, 203, 127, 67, 1, 209,
+ 187, 127, 67, 1, 135, 127, 67, 1, 201, 201, 127, 67, 1, 222, 100, 127,
+ 67, 1, 221, 84, 127, 67, 1, 222, 240, 127, 67, 1, 221, 191, 127, 67, 1,
+ 152, 127, 67, 1, 237, 3, 127, 67, 1, 236, 26, 127, 67, 1, 237, 67, 127,
+ 67, 1, 236, 136, 127, 67, 1, 192, 127, 67, 1, 224, 155, 127, 67, 1, 223,
+ 246, 127, 67, 1, 225, 20, 127, 67, 1, 224, 82, 127, 67, 1, 198, 127, 67,
+ 1, 202, 213, 127, 67, 1, 202, 247, 127, 67, 1, 216, 220, 127, 67, 1, 216,
+ 57, 127, 67, 1, 215, 145, 127, 67, 1, 216, 158, 127, 67, 1, 215, 227,
+ 127, 67, 1, 204, 111, 127, 67, 1, 223, 163, 127, 67, 205, 186, 211, 241,
+ 82, 127, 67, 213, 148, 211, 241, 82, 127, 28, 240, 7, 127, 28, 1, 229,
+ 59, 127, 28, 1, 211, 156, 127, 28, 1, 229, 52, 127, 28, 1, 222, 93, 127,
+ 28, 1, 222, 91, 127, 28, 1, 222, 90, 127, 28, 1, 208, 240, 127, 28, 1,
+ 211, 145, 127, 28, 1, 216, 47, 127, 28, 1, 216, 42, 127, 28, 1, 216, 39,
+ 127, 28, 1, 216, 32, 127, 28, 1, 216, 27, 127, 28, 1, 216, 22, 127, 28,
+ 1, 216, 33, 127, 28, 1, 216, 45, 127, 28, 1, 224, 141, 127, 28, 1, 218,
+ 153, 127, 28, 1, 211, 153, 127, 28, 1, 218, 142, 127, 28, 1, 212, 111,
+ 127, 28, 1, 211, 150, 127, 28, 1, 231, 106, 127, 28, 1, 246, 74, 127, 28,
+ 1, 211, 160, 127, 28, 1, 246, 138, 127, 28, 1, 229, 120, 127, 28, 1, 209,
+ 66, 127, 28, 1, 218, 190, 127, 28, 1, 236, 251, 127, 28, 1, 63, 127, 28,
+ 1, 251, 109, 127, 28, 1, 198, 127, 28, 1, 203, 99, 127, 28, 1, 241, 55,
+ 127, 28, 1, 74, 127, 28, 1, 203, 39, 127, 28, 1, 203, 52, 127, 28, 1, 78,
+ 127, 28, 1, 204, 111, 127, 28, 1, 204, 107, 127, 28, 1, 220, 73, 127, 28,
+ 1, 202, 247, 127, 28, 1, 68, 127, 28, 1, 204, 48, 127, 28, 1, 204, 62,
+ 127, 28, 1, 204, 30, 127, 28, 1, 202, 213, 127, 28, 1, 240, 238, 127, 28,
+ 1, 203, 11, 127, 28, 1, 75, 154, 246, 220, 54, 154, 218, 20, 54, 154,
+ 221, 166, 54, 154, 225, 170, 154, 247, 203, 142, 154, 203, 43, 54, 154,
+ 203, 246, 54, 127, 239, 156, 157, 206, 38, 127, 96, 47, 127, 177, 47,
+ 127, 86, 47, 127, 183, 47, 127, 62, 211, 177, 127, 61, 246, 61, 230, 251,
+ 250, 205, 250, 228, 230, 251, 250, 205, 213, 130, 230, 251, 250, 205,
+ 209, 138, 220, 90, 216, 96, 246, 182, 216, 96, 246, 182, 29, 66, 4, 249,
+ 239, 63, 29, 66, 4, 249, 208, 74, 29, 66, 4, 249, 217, 75, 29, 66, 4,
+ 249, 185, 78, 29, 66, 4, 249, 235, 68, 29, 66, 4, 249, 254, 244, 212, 29,
+ 66, 4, 249, 201, 244, 75, 29, 66, 4, 249, 241, 243, 233, 29, 66, 4, 249,
+ 231, 243, 113, 29, 66, 4, 249, 195, 242, 42, 29, 66, 4, 249, 189, 230,
+ 181, 29, 66, 4, 249, 200, 230, 161, 29, 66, 4, 249, 210, 230, 101, 29,
+ 66, 4, 249, 181, 230, 82, 29, 66, 4, 249, 169, 173, 29, 66, 4, 249, 202,
+ 229, 201, 29, 66, 4, 249, 179, 229, 100, 29, 66, 4, 249, 176, 229, 26,
+ 29, 66, 4, 249, 165, 228, 209, 29, 66, 4, 249, 166, 192, 29, 66, 4, 249,
+ 232, 225, 20, 29, 66, 4, 249, 173, 224, 155, 29, 66, 4, 249, 230, 224,
+ 82, 29, 66, 4, 249, 222, 223, 246, 29, 66, 4, 249, 243, 201, 201, 29, 66,
+ 4, 249, 221, 222, 240, 29, 66, 4, 249, 215, 222, 100, 29, 66, 4, 249,
+ 194, 221, 191, 29, 66, 4, 249, 191, 221, 84, 29, 66, 4, 249, 250, 185,
+ 29, 66, 4, 249, 174, 219, 34, 29, 66, 4, 249, 207, 218, 167, 29, 66, 4,
+ 249, 234, 218, 69, 29, 66, 4, 249, 196, 217, 191, 29, 66, 4, 249, 229,
+ 217, 126, 29, 66, 4, 249, 168, 217, 106, 29, 66, 4, 249, 224, 217, 88,
+ 29, 66, 4, 249, 213, 217, 77, 29, 66, 4, 249, 186, 216, 220, 29, 66, 4,
+ 249, 218, 216, 158, 29, 66, 4, 249, 193, 216, 57, 29, 66, 4, 249, 252,
+ 215, 227, 29, 66, 4, 249, 219, 215, 145, 29, 66, 4, 249, 214, 215, 36,
+ 29, 66, 4, 249, 237, 214, 177, 29, 66, 4, 249, 205, 212, 162, 29, 66, 4,
+ 249, 233, 212, 13, 29, 66, 4, 249, 188, 211, 10, 29, 66, 4, 249, 187,
+ 210, 22, 29, 66, 4, 249, 248, 209, 187, 29, 66, 4, 249, 209, 209, 2, 29,
+ 66, 4, 249, 246, 135, 29, 66, 4, 249, 177, 207, 203, 29, 66, 4, 249, 192,
+ 204, 111, 29, 66, 4, 249, 171, 204, 62, 29, 66, 4, 249, 206, 204, 30, 29,
+ 66, 4, 249, 204, 204, 0, 29, 66, 4, 249, 228, 202, 116, 29, 66, 4, 249,
+ 172, 202, 92, 29, 66, 4, 249, 225, 202, 17, 29, 66, 4, 249, 220, 254, 34,
+ 29, 66, 4, 249, 203, 253, 178, 29, 66, 4, 249, 162, 250, 34, 29, 66, 4,
+ 249, 175, 242, 9, 29, 66, 4, 249, 158, 242, 8, 29, 66, 4, 249, 198, 221,
+ 20, 29, 66, 4, 249, 216, 217, 189, 29, 66, 4, 249, 184, 217, 193, 29, 66,
+ 4, 249, 170, 216, 218, 29, 66, 4, 249, 212, 216, 217, 29, 66, 4, 249,
+ 178, 215, 226, 29, 66, 4, 249, 180, 210, 19, 29, 66, 4, 249, 160, 207,
+ 158, 29, 66, 4, 249, 157, 108, 29, 66, 16, 249, 227, 29, 66, 16, 249,
+ 226, 29, 66, 16, 249, 223, 29, 66, 16, 249, 211, 29, 66, 16, 249, 199,
+ 29, 66, 16, 249, 197, 29, 66, 16, 249, 190, 29, 66, 16, 249, 183, 29, 66,
+ 16, 249, 182, 29, 66, 16, 249, 167, 29, 66, 16, 249, 164, 29, 66, 16,
+ 249, 163, 29, 66, 16, 249, 161, 29, 66, 16, 249, 159, 29, 66, 133, 249,
+ 156, 225, 122, 29, 66, 133, 249, 155, 203, 250, 29, 66, 133, 249, 154,
+ 244, 58, 29, 66, 133, 249, 153, 241, 32, 29, 66, 133, 249, 152, 225, 93,
+ 29, 66, 133, 249, 151, 211, 101, 29, 66, 133, 249, 150, 240, 219, 29, 66,
+ 133, 249, 149, 216, 184, 29, 66, 133, 249, 148, 213, 42, 29, 66, 133,
+ 249, 147, 237, 66, 29, 66, 133, 249, 146, 211, 235, 29, 66, 133, 249,
+ 145, 248, 21, 29, 66, 133, 249, 144, 245, 149, 29, 66, 133, 249, 143,
+ 247, 179, 29, 66, 133, 249, 142, 204, 38, 29, 66, 133, 249, 141, 248,
+ 227, 29, 66, 133, 249, 140, 220, 41, 29, 66, 133, 249, 139, 211, 207, 29,
+ 66, 133, 249, 138, 245, 59, 29, 66, 224, 45, 249, 137, 229, 249, 29, 66,
+ 224, 45, 249, 136, 230, 2, 29, 66, 133, 249, 135, 220, 55, 29, 66, 133,
+ 249, 134, 204, 12, 29, 66, 133, 249, 133, 29, 66, 224, 45, 249, 132, 250,
+ 119, 29, 66, 224, 45, 249, 131, 224, 232, 29, 66, 133, 249, 130, 247,
+ 202, 29, 66, 133, 249, 129, 238, 31, 29, 66, 133, 249, 128, 29, 66, 133,
+ 249, 127, 203, 241, 29, 66, 133, 249, 126, 29, 66, 133, 249, 125, 29, 66,
+ 133, 249, 124, 236, 53, 29, 66, 133, 249, 123, 29, 66, 133, 249, 122, 29,
+ 66, 133, 249, 121, 29, 66, 224, 45, 249, 119, 207, 172, 29, 66, 133, 249,
+ 118, 29, 66, 133, 249, 117, 29, 66, 133, 249, 116, 246, 10, 29, 66, 133,
+ 249, 115, 29, 66, 133, 249, 114, 29, 66, 133, 249, 113, 238, 221, 29, 66,
+ 133, 249, 112, 250, 106, 29, 66, 133, 249, 111, 29, 66, 133, 249, 110,
+ 29, 66, 133, 249, 109, 29, 66, 133, 249, 108, 29, 66, 133, 249, 107, 29,
+ 66, 133, 249, 106, 29, 66, 133, 249, 105, 29, 66, 133, 249, 104, 29, 66,
+ 133, 249, 103, 29, 66, 133, 249, 102, 224, 37, 29, 66, 133, 249, 101, 29,
+ 66, 133, 249, 100, 208, 95, 29, 66, 133, 249, 99, 29, 66, 133, 249, 98,
+ 29, 66, 133, 249, 97, 29, 66, 133, 249, 96, 29, 66, 133, 249, 95, 29, 66,
+ 133, 249, 94, 29, 66, 133, 249, 93, 29, 66, 133, 249, 92, 29, 66, 133,
+ 249, 91, 29, 66, 133, 249, 90, 29, 66, 133, 249, 89, 29, 66, 133, 249,
+ 88, 237, 35, 29, 66, 133, 249, 67, 239, 168, 29, 66, 133, 249, 64, 248,
+ 204, 29, 66, 133, 249, 59, 211, 214, 29, 66, 133, 249, 58, 47, 29, 66,
+ 133, 249, 57, 29, 66, 133, 249, 56, 210, 155, 29, 66, 133, 249, 55, 29,
+ 66, 133, 249, 54, 29, 66, 133, 249, 53, 204, 34, 246, 179, 29, 66, 133,
+ 249, 52, 246, 179, 29, 66, 133, 249, 51, 246, 180, 239, 134, 29, 66, 133,
+ 249, 50, 204, 36, 29, 66, 133, 249, 49, 29, 66, 133, 249, 48, 29, 66,
+ 224, 45, 249, 47, 243, 168, 29, 66, 133, 249, 46, 29, 66, 133, 249, 45,
+ 29, 66, 133, 249, 43, 29, 66, 133, 249, 42, 29, 66, 133, 249, 41, 29, 66,
+ 133, 249, 40, 244, 147, 29, 66, 133, 249, 39, 29, 66, 133, 249, 38, 29,
+ 66, 133, 249, 37, 29, 66, 133, 249, 36, 29, 66, 133, 249, 35, 29, 66,
+ 133, 205, 241, 249, 120, 29, 66, 133, 205, 241, 249, 87, 29, 66, 133,
+ 205, 241, 249, 86, 29, 66, 133, 205, 241, 249, 85, 29, 66, 133, 205, 241,
+ 249, 84, 29, 66, 133, 205, 241, 249, 83, 29, 66, 133, 205, 241, 249, 82,
+ 29, 66, 133, 205, 241, 249, 81, 29, 66, 133, 205, 241, 249, 80, 29, 66,
+ 133, 205, 241, 249, 79, 29, 66, 133, 205, 241, 249, 78, 29, 66, 133, 205,
+ 241, 249, 77, 29, 66, 133, 205, 241, 249, 76, 29, 66, 133, 205, 241, 249,
+ 75, 29, 66, 133, 205, 241, 249, 74, 29, 66, 133, 205, 241, 249, 73, 29,
+ 66, 133, 205, 241, 249, 72, 29, 66, 133, 205, 241, 249, 71, 29, 66, 133,
+ 205, 241, 249, 70, 29, 66, 133, 205, 241, 249, 69, 29, 66, 133, 205, 241,
+ 249, 68, 29, 66, 133, 205, 241, 249, 66, 29, 66, 133, 205, 241, 249, 65,
+ 29, 66, 133, 205, 241, 249, 63, 29, 66, 133, 205, 241, 249, 62, 29, 66,
+ 133, 205, 241, 249, 61, 29, 66, 133, 205, 241, 249, 60, 29, 66, 133, 205,
+ 241, 249, 44, 29, 66, 133, 205, 241, 249, 34, 251, 102, 203, 238, 213,
+ 131, 227, 114, 251, 102, 203, 238, 213, 131, 243, 85, 251, 102, 246, 169,
+ 82, 251, 102, 42, 105, 251, 102, 42, 108, 251, 102, 42, 147, 251, 102,
+ 42, 149, 251, 102, 42, 170, 251, 102, 42, 195, 251, 102, 42, 213, 111,
+ 251, 102, 42, 199, 251, 102, 42, 222, 63, 251, 102, 42, 209, 152, 251,
+ 102, 42, 207, 151, 251, 102, 42, 209, 53, 251, 102, 42, 239, 153, 251,
+ 102, 42, 240, 18, 251, 102, 42, 212, 74, 251, 102, 42, 213, 105, 251,
+ 102, 42, 241, 134, 251, 102, 42, 222, 58, 251, 102, 42, 118, 236, 11,
+ 251, 102, 42, 120, 236, 11, 251, 102, 42, 126, 236, 11, 251, 102, 42,
+ 239, 147, 236, 11, 251, 102, 42, 239, 233, 236, 11, 251, 102, 42, 212,
+ 88, 236, 11, 251, 102, 42, 213, 112, 236, 11, 251, 102, 42, 241, 143,
+ 236, 11, 251, 102, 42, 222, 64, 236, 11, 251, 102, 42, 118, 209, 36, 251,
+ 102, 42, 120, 209, 36, 251, 102, 42, 126, 209, 36, 251, 102, 42, 239,
+ 147, 209, 36, 251, 102, 42, 239, 233, 209, 36, 251, 102, 42, 212, 88,
+ 209, 36, 251, 102, 42, 213, 112, 209, 36, 251, 102, 42, 241, 143, 209,
+ 36, 251, 102, 42, 222, 64, 209, 36, 251, 102, 42, 209, 153, 209, 36, 251,
+ 102, 42, 207, 152, 209, 36, 251, 102, 42, 209, 54, 209, 36, 251, 102, 42,
+ 239, 154, 209, 36, 251, 102, 42, 240, 19, 209, 36, 251, 102, 42, 212, 75,
+ 209, 36, 251, 102, 42, 213, 106, 209, 36, 251, 102, 42, 241, 135, 209,
+ 36, 251, 102, 42, 222, 59, 209, 36, 251, 102, 204, 51, 248, 219, 206,
+ 235, 251, 102, 204, 51, 239, 245, 210, 240, 251, 102, 204, 51, 214, 171,
+ 210, 240, 251, 102, 204, 51, 209, 61, 210, 240, 251, 102, 204, 51, 239,
+ 140, 210, 240, 251, 102, 242, 45, 225, 19, 239, 245, 210, 240, 251, 102,
+ 227, 95, 225, 19, 239, 245, 210, 240, 251, 102, 225, 19, 214, 171, 210,
+ 240, 251, 102, 225, 19, 209, 61, 210, 240, 30, 251, 129, 250, 36, 118,
+ 217, 55, 30, 251, 129, 250, 36, 118, 237, 137, 30, 251, 129, 250, 36,
+ 118, 242, 65, 30, 251, 129, 250, 36, 170, 30, 251, 129, 250, 36, 240, 18,
+ 30, 251, 129, 250, 36, 239, 233, 236, 11, 30, 251, 129, 250, 36, 239,
+ 233, 209, 36, 30, 251, 129, 250, 36, 240, 19, 209, 36, 30, 251, 129, 250,
+ 36, 239, 233, 209, 237, 30, 251, 129, 250, 36, 209, 153, 209, 237, 30,
+ 251, 129, 250, 36, 240, 19, 209, 237, 30, 251, 129, 250, 36, 118, 236,
+ 12, 209, 237, 30, 251, 129, 250, 36, 239, 233, 236, 12, 209, 237, 30,
+ 251, 129, 250, 36, 118, 209, 37, 209, 237, 30, 251, 129, 250, 36, 239,
+ 233, 209, 37, 209, 237, 30, 251, 129, 250, 36, 239, 233, 211, 88, 30,
+ 251, 129, 250, 36, 209, 153, 211, 88, 30, 251, 129, 250, 36, 240, 19,
+ 211, 88, 30, 251, 129, 250, 36, 118, 236, 12, 211, 88, 30, 251, 129, 250,
+ 36, 239, 233, 236, 12, 211, 88, 30, 251, 129, 250, 36, 118, 209, 37, 211,
+ 88, 30, 251, 129, 250, 36, 209, 153, 209, 37, 211, 88, 30, 251, 129, 250,
+ 36, 240, 19, 209, 37, 211, 88, 30, 251, 129, 250, 36, 209, 153, 224, 85,
+ 30, 251, 129, 237, 29, 118, 218, 86, 30, 251, 129, 209, 76, 105, 30, 251,
+ 129, 237, 25, 105, 30, 251, 129, 241, 41, 108, 30, 251, 129, 209, 76,
+ 108, 30, 251, 129, 245, 56, 120, 242, 64, 30, 251, 129, 241, 41, 120,
+ 242, 64, 30, 251, 129, 208, 61, 170, 30, 251, 129, 208, 61, 209, 152, 30,
+ 251, 129, 208, 61, 209, 153, 250, 255, 18, 30, 251, 129, 237, 25, 209,
+ 152, 30, 251, 129, 224, 222, 209, 152, 30, 251, 129, 209, 76, 209, 152,
+ 30, 251, 129, 209, 76, 209, 53, 30, 251, 129, 208, 61, 240, 18, 30, 251,
+ 129, 208, 61, 240, 19, 250, 255, 18, 30, 251, 129, 237, 25, 240, 18, 30,
+ 251, 129, 209, 76, 240, 18, 30, 251, 129, 209, 76, 118, 236, 11, 30, 251,
+ 129, 209, 76, 126, 236, 11, 30, 251, 129, 241, 41, 239, 233, 236, 11, 30,
+ 251, 129, 208, 61, 239, 233, 236, 11, 30, 251, 129, 209, 76, 239, 233,
+ 236, 11, 30, 251, 129, 247, 21, 239, 233, 236, 11, 30, 251, 129, 223, 60,
+ 239, 233, 236, 11, 30, 251, 129, 209, 76, 118, 209, 36, 30, 251, 129,
+ 209, 76, 239, 233, 209, 36, 30, 251, 129, 244, 40, 239, 233, 224, 85, 30,
+ 251, 129, 211, 49, 240, 19, 224, 85, 30, 118, 162, 54, 30, 118, 162, 2,
+ 250, 255, 18, 30, 120, 209, 58, 54, 30, 126, 217, 54, 54, 30, 203, 50,
+ 54, 30, 209, 238, 54, 30, 242, 66, 54, 30, 220, 87, 54, 30, 120, 220, 86,
+ 54, 30, 126, 220, 86, 54, 30, 239, 147, 220, 86, 54, 30, 239, 233, 220,
+ 86, 54, 30, 224, 216, 54, 30, 228, 139, 248, 219, 54, 30, 227, 88, 54,
+ 30, 219, 213, 54, 30, 203, 173, 54, 30, 250, 87, 54, 30, 250, 102, 54,
+ 30, 238, 7, 54, 30, 208, 23, 248, 219, 54, 30, 202, 85, 54, 30, 118, 217,
+ 56, 54, 30, 212, 113, 54, 215, 210, 213, 102, 54, 215, 210, 206, 249, 54,
+ 215, 210, 213, 135, 54, 215, 210, 213, 100, 54, 215, 210, 243, 183, 213,
+ 100, 54, 215, 210, 212, 135, 54, 215, 210, 244, 36, 54, 215, 210, 217,
+ 39, 54, 215, 210, 213, 119, 54, 215, 210, 242, 23, 54, 215, 210, 250, 82,
+ 54, 215, 210, 246, 213, 54, 30, 16, 209, 208, 216, 59, 218, 203, 243,
+ 160, 2, 219, 25, 218, 203, 243, 160, 2, 218, 78, 237, 64, 218, 203, 243,
+ 160, 2, 209, 211, 237, 64, 218, 203, 243, 160, 2, 247, 42, 218, 203, 243,
+ 160, 2, 246, 133, 218, 203, 243, 160, 2, 203, 250, 218, 203, 243, 160, 2,
+ 237, 35, 218, 203, 243, 160, 2, 238, 213, 218, 203, 243, 160, 2, 209, 0,
+ 218, 203, 243, 160, 2, 47, 218, 203, 243, 160, 2, 247, 240, 218, 203,
+ 243, 160, 2, 213, 8, 218, 203, 243, 160, 2, 246, 4, 218, 203, 243, 160,
+ 2, 225, 121, 218, 203, 243, 160, 2, 225, 68, 218, 203, 243, 160, 2, 214,
+ 213, 218, 203, 243, 160, 2, 227, 143, 218, 203, 243, 160, 2, 248, 5, 218,
+ 203, 243, 160, 2, 247, 26, 218, 91, 218, 203, 243, 160, 2, 243, 98, 218,
+ 203, 243, 160, 2, 245, 239, 218, 203, 243, 160, 2, 212, 46, 218, 203,
+ 243, 160, 2, 245, 240, 218, 203, 243, 160, 2, 248, 147, 218, 203, 243,
+ 160, 2, 212, 251, 218, 203, 243, 160, 2, 236, 53, 218, 203, 243, 160, 2,
+ 237, 1, 218, 203, 243, 160, 2, 247, 174, 227, 210, 218, 203, 243, 160, 2,
+ 247, 17, 218, 203, 243, 160, 2, 216, 184, 218, 203, 243, 160, 2, 241,
+ 186, 218, 203, 243, 160, 2, 242, 71, 218, 203, 243, 160, 2, 207, 188,
+ 218, 203, 243, 160, 2, 248, 150, 218, 203, 243, 160, 2, 218, 92, 208, 95,
+ 218, 203, 243, 160, 2, 205, 211, 218, 203, 243, 160, 2, 219, 92, 218,
+ 203, 243, 160, 2, 215, 201, 218, 203, 243, 160, 2, 227, 127, 218, 203,
+ 243, 160, 2, 219, 194, 249, 25, 218, 203, 243, 160, 2, 239, 193, 218,
+ 203, 243, 160, 2, 237, 255, 218, 203, 243, 160, 2, 211, 50, 218, 203,
+ 243, 160, 2, 5, 250, 9, 218, 203, 243, 160, 2, 204, 72, 248, 238, 218,
+ 203, 243, 160, 2, 39, 220, 89, 95, 226, 197, 1, 63, 226, 197, 1, 74, 226,
+ 197, 1, 249, 255, 226, 197, 1, 248, 99, 226, 197, 1, 239, 75, 226, 197,
+ 1, 245, 51, 226, 197, 1, 75, 226, 197, 1, 204, 144, 226, 197, 1, 202,
+ 159, 226, 197, 1, 209, 110, 226, 197, 1, 230, 184, 226, 197, 1, 230, 54,
+ 226, 197, 1, 217, 134, 226, 197, 1, 159, 226, 197, 1, 226, 185, 226, 197,
+ 1, 223, 163, 226, 197, 1, 224, 87, 226, 197, 1, 221, 228, 226, 197, 1,
+ 68, 226, 197, 1, 219, 184, 226, 197, 1, 229, 48, 226, 197, 1, 146, 226,
+ 197, 1, 194, 226, 197, 1, 210, 69, 226, 197, 1, 207, 244, 226, 197, 1,
+ 250, 231, 226, 197, 1, 241, 92, 226, 197, 1, 237, 171, 226, 197, 1, 203,
+ 196, 247, 32, 1, 63, 247, 32, 1, 219, 170, 247, 32, 1, 245, 51, 247, 32,
+ 1, 159, 247, 32, 1, 206, 176, 247, 32, 1, 146, 247, 32, 1, 227, 238, 247,
+ 32, 1, 254, 34, 247, 32, 1, 217, 134, 247, 32, 1, 249, 255, 247, 32, 1,
+ 226, 185, 247, 32, 1, 78, 247, 32, 1, 244, 214, 247, 32, 1, 210, 69, 247,
+ 32, 1, 213, 92, 247, 32, 1, 213, 91, 247, 32, 1, 194, 247, 32, 1, 247,
+ 124, 247, 32, 1, 68, 247, 32, 1, 221, 228, 247, 32, 1, 203, 196, 247, 32,
+ 1, 223, 163, 247, 32, 1, 207, 243, 247, 32, 1, 219, 184, 247, 32, 1, 211,
+ 167, 247, 32, 1, 75, 247, 32, 1, 74, 247, 32, 1, 206, 173, 247, 32, 1,
+ 230, 54, 247, 32, 1, 230, 45, 247, 32, 1, 223, 27, 247, 32, 1, 206, 178,
+ 247, 32, 1, 239, 75, 247, 32, 1, 239, 10, 247, 32, 1, 211, 108, 247, 32,
+ 1, 211, 107, 247, 32, 1, 222, 205, 247, 32, 1, 231, 83, 247, 32, 1, 247,
+ 123, 247, 32, 1, 207, 244, 247, 32, 1, 206, 175, 247, 32, 1, 215, 186,
+ 247, 32, 1, 225, 59, 247, 32, 1, 225, 58, 247, 32, 1, 225, 57, 247, 32,
+ 1, 225, 56, 247, 32, 1, 227, 237, 247, 32, 1, 241, 190, 247, 32, 1, 206,
+ 174, 84, 241, 44, 209, 35, 82, 84, 241, 44, 17, 105, 84, 241, 44, 17,
+ 108, 84, 241, 44, 17, 147, 84, 241, 44, 17, 149, 84, 241, 44, 17, 170,
+ 84, 241, 44, 17, 195, 84, 241, 44, 17, 213, 111, 84, 241, 44, 17, 199,
+ 84, 241, 44, 17, 222, 63, 84, 241, 44, 42, 209, 152, 84, 241, 44, 42,
+ 207, 151, 84, 241, 44, 42, 209, 53, 84, 241, 44, 42, 239, 153, 84, 241,
+ 44, 42, 240, 18, 84, 241, 44, 42, 212, 74, 84, 241, 44, 42, 213, 105, 84,
+ 241, 44, 42, 241, 134, 84, 241, 44, 42, 222, 58, 84, 241, 44, 42, 118,
+ 236, 11, 84, 241, 44, 42, 120, 236, 11, 84, 241, 44, 42, 126, 236, 11,
+ 84, 241, 44, 42, 239, 147, 236, 11, 84, 241, 44, 42, 239, 233, 236, 11,
+ 84, 241, 44, 42, 212, 88, 236, 11, 84, 241, 44, 42, 213, 112, 236, 11,
+ 84, 241, 44, 42, 241, 143, 236, 11, 84, 241, 44, 42, 222, 64, 236, 11,
+ 38, 37, 1, 63, 38, 37, 1, 248, 162, 38, 37, 1, 229, 201, 38, 37, 1, 244,
+ 75, 38, 37, 1, 74, 38, 37, 1, 206, 55, 38, 37, 1, 202, 92, 38, 37, 1,
+ 237, 67, 38, 37, 1, 209, 92, 38, 37, 1, 75, 38, 37, 1, 173, 38, 37, 1,
+ 241, 122, 38, 37, 1, 241, 103, 38, 37, 1, 241, 92, 38, 37, 1, 241, 7, 38,
+ 37, 1, 78, 38, 37, 1, 219, 34, 38, 37, 1, 213, 43, 38, 37, 1, 228, 209,
+ 38, 37, 1, 241, 28, 38, 37, 1, 241, 17, 38, 37, 1, 209, 187, 38, 37, 1,
+ 68, 38, 37, 1, 241, 125, 38, 37, 1, 218, 195, 38, 37, 1, 229, 129, 38,
+ 37, 1, 241, 154, 38, 37, 1, 241, 19, 38, 37, 1, 246, 170, 38, 37, 1, 231,
+ 83, 38, 37, 1, 206, 178, 38, 37, 1, 241, 0, 38, 37, 221, 44, 105, 38, 37,
+ 221, 44, 170, 38, 37, 221, 44, 209, 152, 38, 37, 221, 44, 240, 18, 238,
+ 17, 1, 251, 67, 238, 17, 1, 248, 255, 238, 17, 1, 238, 78, 238, 17, 1,
+ 244, 194, 238, 17, 1, 251, 63, 238, 17, 1, 217, 117, 238, 17, 1, 230,
+ 196, 238, 17, 1, 237, 150, 238, 17, 1, 209, 49, 238, 17, 1, 241, 133,
+ 238, 17, 1, 228, 176, 238, 17, 1, 228, 90, 238, 17, 1, 225, 114, 238, 17,
+ 1, 223, 62, 238, 17, 1, 230, 154, 238, 17, 1, 206, 196, 238, 17, 1, 219,
+ 145, 238, 17, 1, 222, 58, 238, 17, 1, 216, 196, 238, 17, 1, 214, 216,
+ 238, 17, 1, 209, 166, 238, 17, 1, 204, 10, 238, 17, 1, 240, 88, 238, 17,
+ 1, 231, 87, 238, 17, 1, 235, 252, 238, 17, 1, 219, 223, 238, 17, 1, 222,
+ 64, 236, 11, 38, 218, 237, 1, 250, 231, 38, 218, 237, 1, 247, 160, 38,
+ 218, 237, 1, 238, 248, 38, 218, 237, 1, 243, 101, 38, 218, 237, 1, 74,
+ 38, 218, 237, 1, 202, 62, 38, 218, 237, 1, 241, 247, 38, 218, 237, 1,
+ 202, 99, 38, 218, 237, 1, 241, 245, 38, 218, 237, 1, 75, 38, 218, 237, 1,
+ 229, 15, 38, 218, 237, 1, 227, 206, 38, 218, 237, 1, 224, 238, 38, 218,
+ 237, 1, 222, 228, 38, 218, 237, 1, 205, 175, 38, 218, 237, 1, 219, 22,
+ 38, 218, 237, 1, 216, 121, 38, 218, 237, 1, 212, 142, 38, 218, 237, 1,
+ 209, 250, 38, 218, 237, 1, 68, 38, 218, 237, 1, 246, 151, 38, 218, 237,
+ 1, 212, 235, 38, 218, 237, 1, 213, 45, 38, 218, 237, 1, 202, 215, 38,
+ 218, 237, 1, 203, 30, 38, 218, 237, 1, 78, 38, 218, 237, 1, 220, 18, 38,
+ 218, 237, 1, 241, 154, 38, 218, 237, 1, 152, 38, 218, 237, 1, 207, 254,
+ 38, 218, 237, 1, 206, 43, 38, 218, 237, 1, 203, 34, 38, 218, 237, 1, 203,
+ 32, 38, 218, 237, 1, 203, 66, 38, 218, 237, 1, 231, 110, 38, 218, 237, 1,
+ 202, 213, 38, 218, 237, 1, 198, 38, 218, 237, 1, 235, 171, 39, 38, 218,
+ 237, 1, 250, 231, 39, 38, 218, 237, 1, 243, 101, 39, 38, 218, 237, 1,
+ 202, 99, 39, 38, 218, 237, 1, 222, 228, 39, 38, 218, 237, 1, 212, 142,
+ 207, 19, 1, 251, 6, 207, 19, 1, 248, 106, 207, 19, 1, 238, 236, 207, 19,
+ 1, 229, 144, 207, 19, 1, 244, 37, 207, 19, 1, 236, 136, 207, 19, 1, 204,
+ 0, 207, 19, 1, 202, 83, 207, 19, 1, 236, 45, 207, 19, 1, 209, 132, 207,
+ 19, 1, 202, 236, 207, 19, 1, 230, 22, 207, 19, 1, 212, 255, 207, 19, 1,
+ 228, 24, 207, 19, 1, 224, 247, 207, 19, 1, 243, 253, 207, 19, 1, 221, 40,
+ 207, 19, 1, 202, 6, 207, 19, 1, 214, 248, 207, 19, 1, 251, 59, 207, 19,
+ 1, 217, 191, 207, 19, 1, 215, 27, 207, 19, 1, 217, 70, 207, 19, 1, 216,
+ 175, 207, 19, 1, 209, 96, 207, 19, 1, 238, 114, 207, 19, 1, 135, 207, 19,
+ 1, 75, 207, 19, 1, 68, 207, 19, 1, 211, 119, 207, 19, 203, 238, 243, 141,
+ 38, 218, 231, 2, 63, 38, 218, 231, 2, 75, 38, 218, 231, 2, 68, 38, 218,
+ 231, 2, 173, 38, 218, 231, 2, 228, 209, 38, 218, 231, 2, 239, 8, 38, 218,
+ 231, 2, 237, 230, 38, 218, 231, 2, 203, 182, 38, 218, 231, 2, 247, 92,
+ 38, 218, 231, 2, 230, 181, 38, 218, 231, 2, 230, 141, 38, 218, 231, 2,
+ 210, 22, 38, 218, 231, 2, 207, 203, 38, 218, 231, 2, 244, 212, 38, 218,
+ 231, 2, 243, 233, 38, 218, 231, 2, 242, 42, 38, 218, 231, 2, 209, 108,
+ 38, 218, 231, 2, 185, 38, 218, 231, 2, 249, 32, 38, 218, 231, 2, 240,
+ 108, 38, 218, 231, 2, 201, 201, 38, 218, 231, 2, 221, 84, 38, 218, 231,
+ 2, 192, 38, 218, 231, 2, 224, 155, 38, 218, 231, 2, 223, 246, 38, 218,
+ 231, 2, 198, 38, 218, 231, 2, 206, 86, 38, 218, 231, 2, 205, 230, 38,
+ 218, 231, 2, 216, 220, 38, 218, 231, 2, 215, 145, 38, 218, 231, 2, 228,
+ 113, 38, 218, 231, 2, 215, 36, 38, 218, 231, 2, 202, 116, 38, 218, 231,
+ 2, 213, 90, 38, 218, 231, 2, 211, 164, 38, 218, 231, 2, 152, 38, 218,
+ 231, 2, 250, 28, 38, 218, 231, 2, 250, 27, 38, 218, 231, 2, 250, 26, 38,
+ 218, 231, 2, 203, 153, 38, 218, 231, 2, 244, 190, 38, 218, 231, 2, 244,
+ 189, 38, 218, 231, 2, 249, 8, 38, 218, 231, 2, 247, 144, 38, 218, 231,
+ 203, 238, 243, 141, 38, 218, 231, 42, 105, 38, 218, 231, 42, 108, 38,
+ 218, 231, 42, 209, 152, 38, 218, 231, 42, 207, 151, 38, 218, 231, 42,
+ 236, 11, 244, 17, 6, 1, 163, 75, 244, 17, 6, 1, 163, 74, 244, 17, 6, 1,
+ 163, 63, 244, 17, 6, 1, 163, 251, 73, 244, 17, 6, 1, 163, 78, 244, 17, 6,
+ 1, 163, 220, 18, 244, 17, 6, 1, 212, 228, 75, 244, 17, 6, 1, 212, 228,
+ 74, 244, 17, 6, 1, 212, 228, 63, 244, 17, 6, 1, 212, 228, 251, 73, 244,
+ 17, 6, 1, 212, 228, 78, 244, 17, 6, 1, 212, 228, 220, 18, 244, 17, 6, 1,
+ 250, 8, 244, 17, 6, 1, 219, 195, 244, 17, 6, 1, 203, 217, 244, 17, 6, 1,
+ 203, 49, 244, 17, 6, 1, 237, 171, 244, 17, 6, 1, 219, 23, 244, 17, 6, 1,
+ 248, 150, 244, 17, 6, 1, 209, 176, 244, 17, 6, 1, 244, 61, 244, 17, 6, 1,
+ 246, 166, 244, 17, 6, 1, 230, 159, 244, 17, 6, 1, 229, 208, 244, 17, 6,
+ 1, 238, 211, 244, 17, 6, 1, 241, 154, 244, 17, 6, 1, 206, 50, 244, 17, 6,
+ 1, 240, 243, 244, 17, 6, 1, 209, 90, 244, 17, 6, 1, 241, 17, 244, 17, 6,
+ 1, 202, 90, 244, 17, 6, 1, 241, 7, 244, 17, 6, 1, 202, 70, 244, 17, 6, 1,
+ 241, 28, 244, 17, 6, 1, 241, 122, 244, 17, 6, 1, 241, 103, 244, 17, 6, 1,
+ 241, 92, 244, 17, 6, 1, 241, 78, 244, 17, 6, 1, 220, 57, 244, 17, 6, 1,
+ 240, 220, 244, 17, 5, 1, 163, 75, 244, 17, 5, 1, 163, 74, 244, 17, 5, 1,
+ 163, 63, 244, 17, 5, 1, 163, 251, 73, 244, 17, 5, 1, 163, 78, 244, 17, 5,
+ 1, 163, 220, 18, 244, 17, 5, 1, 212, 228, 75, 244, 17, 5, 1, 212, 228,
+ 74, 244, 17, 5, 1, 212, 228, 63, 244, 17, 5, 1, 212, 228, 251, 73, 244,
+ 17, 5, 1, 212, 228, 78, 244, 17, 5, 1, 212, 228, 220, 18, 244, 17, 5, 1,
+ 250, 8, 244, 17, 5, 1, 219, 195, 244, 17, 5, 1, 203, 217, 244, 17, 5, 1,
+ 203, 49, 244, 17, 5, 1, 237, 171, 244, 17, 5, 1, 219, 23, 244, 17, 5, 1,
+ 248, 150, 244, 17, 5, 1, 209, 176, 244, 17, 5, 1, 244, 61, 244, 17, 5, 1,
+ 246, 166, 244, 17, 5, 1, 230, 159, 244, 17, 5, 1, 229, 208, 244, 17, 5,
+ 1, 238, 211, 244, 17, 5, 1, 241, 154, 244, 17, 5, 1, 206, 50, 244, 17, 5,
+ 1, 240, 243, 244, 17, 5, 1, 209, 90, 244, 17, 5, 1, 241, 17, 244, 17, 5,
+ 1, 202, 90, 244, 17, 5, 1, 241, 7, 244, 17, 5, 1, 202, 70, 244, 17, 5, 1,
+ 241, 28, 244, 17, 5, 1, 241, 122, 244, 17, 5, 1, 241, 103, 244, 17, 5, 1,
+ 241, 92, 244, 17, 5, 1, 241, 78, 244, 17, 5, 1, 220, 57, 244, 17, 5, 1,
+ 240, 220, 213, 50, 1, 219, 20, 213, 50, 1, 208, 131, 213, 50, 1, 229, 96,
+ 213, 50, 1, 240, 53, 213, 50, 1, 209, 65, 213, 50, 1, 212, 13, 213, 50,
+ 1, 210, 190, 213, 50, 1, 246, 90, 213, 50, 1, 203, 51, 213, 50, 1, 236,
+ 9, 213, 50, 1, 248, 85, 213, 50, 1, 244, 74, 213, 50, 1, 238, 250, 213,
+ 50, 1, 205, 170, 213, 50, 1, 209, 71, 213, 50, 1, 202, 15, 213, 50, 1,
+ 225, 18, 213, 50, 1, 230, 80, 213, 50, 1, 203, 254, 213, 50, 1, 237, 159,
+ 213, 50, 1, 227, 33, 213, 50, 1, 224, 111, 213, 50, 1, 231, 90, 213, 50,
+ 1, 241, 152, 213, 50, 1, 250, 75, 213, 50, 1, 251, 113, 213, 50, 1, 220,
+ 31, 213, 50, 1, 203, 241, 213, 50, 1, 219, 211, 213, 50, 1, 251, 73, 213,
+ 50, 1, 215, 224, 213, 50, 1, 221, 40, 213, 50, 1, 241, 172, 213, 50, 1,
+ 251, 78, 213, 50, 1, 235, 162, 213, 50, 1, 206, 224, 213, 50, 1, 220, 95,
+ 213, 50, 1, 220, 10, 213, 50, 1, 220, 55, 213, 50, 1, 250, 11, 213, 50,
+ 1, 250, 121, 213, 50, 1, 219, 244, 213, 50, 1, 251, 54, 213, 50, 1, 241,
+ 21, 213, 50, 1, 250, 99, 213, 50, 1, 241, 183, 213, 50, 1, 235, 170, 213,
+ 50, 1, 203, 16, 219, 225, 1, 251, 30, 219, 225, 1, 249, 32, 219, 225, 1,
+ 210, 22, 219, 225, 1, 230, 181, 219, 225, 1, 203, 182, 219, 225, 1, 229,
+ 144, 219, 225, 1, 244, 60, 219, 225, 1, 216, 220, 219, 225, 1, 215, 36,
+ 219, 225, 1, 213, 5, 219, 225, 1, 244, 1, 219, 225, 1, 247, 7, 219, 225,
+ 1, 239, 8, 219, 225, 1, 240, 108, 219, 225, 1, 217, 124, 219, 225, 1,
+ 230, 38, 219, 225, 1, 228, 108, 219, 225, 1, 224, 124, 219, 225, 1, 221,
+ 24, 219, 225, 1, 204, 70, 219, 225, 1, 152, 219, 225, 1, 198, 219, 225,
+ 1, 63, 219, 225, 1, 74, 219, 225, 1, 75, 219, 225, 1, 78, 219, 225, 1,
+ 68, 219, 225, 1, 252, 25, 219, 225, 1, 241, 161, 219, 225, 1, 220, 18,
+ 219, 225, 17, 202, 84, 219, 225, 17, 105, 219, 225, 17, 108, 219, 225,
+ 17, 147, 219, 225, 17, 149, 219, 225, 17, 170, 219, 225, 17, 195, 219,
+ 225, 17, 213, 111, 219, 225, 17, 199, 219, 225, 17, 222, 63, 241, 118, 1,
+ 63, 241, 118, 1, 248, 162, 241, 118, 1, 246, 238, 241, 118, 1, 246, 170,
+ 241, 118, 1, 244, 75, 241, 118, 1, 223, 17, 241, 118, 1, 243, 248, 241,
+ 118, 1, 241, 145, 241, 118, 1, 74, 241, 118, 1, 240, 60, 241, 118, 1,
+ 238, 190, 241, 118, 1, 238, 52, 241, 118, 1, 237, 67, 241, 118, 1, 75,
+ 241, 118, 1, 230, 161, 241, 118, 1, 229, 201, 241, 118, 1, 227, 234, 241,
+ 118, 1, 227, 73, 241, 118, 1, 225, 20, 241, 118, 1, 222, 240, 241, 118,
+ 1, 201, 201, 241, 118, 1, 222, 41, 241, 118, 1, 78, 241, 118, 1, 219, 34,
+ 241, 118, 1, 217, 106, 241, 118, 1, 216, 158, 241, 118, 1, 215, 180, 241,
+ 118, 1, 214, 177, 241, 118, 1, 213, 43, 241, 118, 1, 209, 187, 241, 118,
+ 1, 209, 92, 241, 118, 1, 68, 241, 118, 1, 206, 55, 241, 118, 1, 203, 176,
+ 241, 118, 1, 203, 124, 241, 118, 1, 202, 92, 241, 118, 1, 202, 71, 241,
+ 118, 1, 238, 105, 241, 118, 1, 238, 111, 241, 118, 1, 229, 129, 247, 14,
+ 251, 31, 1, 251, 1, 247, 14, 251, 31, 1, 248, 108, 247, 14, 251, 31, 1,
+ 238, 69, 247, 14, 251, 31, 1, 244, 140, 247, 14, 251, 31, 1, 241, 171,
+ 247, 14, 251, 31, 1, 202, 102, 247, 14, 251, 31, 1, 240, 183, 247, 14,
+ 251, 31, 1, 202, 65, 247, 14, 251, 31, 1, 209, 213, 247, 14, 251, 31, 1,
+ 246, 199, 247, 14, 251, 31, 1, 202, 224, 247, 14, 251, 31, 1, 202, 80,
+ 247, 14, 251, 31, 1, 230, 223, 247, 14, 251, 31, 1, 213, 90, 247, 14,
+ 251, 31, 1, 228, 17, 247, 14, 251, 31, 1, 230, 235, 247, 14, 251, 31, 1,
+ 203, 172, 247, 14, 251, 31, 1, 242, 7, 247, 14, 251, 31, 1, 247, 39, 247,
+ 14, 251, 31, 1, 230, 142, 247, 14, 251, 31, 1, 229, 240, 247, 14, 251,
+ 31, 1, 226, 194, 247, 14, 251, 31, 1, 237, 14, 247, 14, 251, 31, 1, 217,
+ 107, 247, 14, 251, 31, 1, 250, 177, 247, 14, 251, 31, 1, 246, 107, 247,
+ 14, 251, 31, 1, 246, 142, 247, 14, 251, 31, 1, 245, 63, 247, 14, 251, 31,
+ 1, 225, 103, 247, 14, 251, 31, 1, 217, 111, 247, 14, 251, 31, 1, 221,
+ 151, 247, 14, 251, 31, 1, 241, 240, 247, 14, 251, 31, 1, 213, 73, 247,
+ 14, 251, 31, 1, 230, 162, 247, 14, 251, 31, 1, 220, 31, 247, 14, 251, 31,
+ 1, 207, 125, 247, 14, 251, 31, 1, 240, 83, 247, 14, 251, 31, 1, 241, 253,
+ 247, 14, 251, 31, 1, 246, 176, 247, 14, 251, 31, 1, 219, 9, 247, 14, 251,
+ 31, 1, 238, 95, 247, 14, 251, 31, 1, 216, 172, 247, 14, 251, 31, 1, 213,
+ 99, 247, 14, 251, 31, 1, 205, 232, 247, 14, 251, 31, 1, 208, 193, 247,
+ 14, 251, 31, 1, 212, 207, 247, 14, 251, 31, 1, 230, 194, 247, 14, 251,
+ 31, 1, 245, 64, 247, 14, 251, 31, 1, 247, 7, 247, 14, 251, 31, 1, 203,
+ 56, 247, 14, 251, 31, 1, 218, 102, 247, 14, 251, 31, 1, 229, 62, 247, 14,
+ 251, 31, 246, 49, 82, 29, 34, 2, 251, 231, 29, 34, 2, 251, 230, 29, 34,
+ 2, 251, 229, 29, 34, 2, 251, 228, 29, 34, 2, 251, 227, 29, 34, 2, 251,
+ 226, 29, 34, 2, 251, 225, 29, 34, 2, 251, 224, 29, 34, 2, 251, 223, 29,
+ 34, 2, 251, 222, 29, 34, 2, 251, 221, 29, 34, 2, 251, 220, 29, 34, 2,
+ 251, 219, 29, 34, 2, 251, 218, 29, 34, 2, 251, 217, 29, 34, 2, 251, 216,
+ 29, 34, 2, 251, 215, 29, 34, 2, 251, 214, 29, 34, 2, 251, 213, 29, 34, 2,
+ 251, 212, 29, 34, 2, 251, 211, 29, 34, 2, 251, 210, 29, 34, 2, 251, 209,
+ 29, 34, 2, 251, 208, 29, 34, 2, 251, 207, 29, 34, 2, 251, 206, 29, 34, 2,
+ 251, 205, 29, 34, 2, 254, 239, 29, 34, 2, 251, 204, 29, 34, 2, 251, 203,
+ 29, 34, 2, 251, 202, 29, 34, 2, 251, 201, 29, 34, 2, 251, 200, 29, 34, 2,
+ 251, 199, 29, 34, 2, 251, 198, 29, 34, 2, 251, 197, 29, 34, 2, 251, 196,
+ 29, 34, 2, 251, 195, 29, 34, 2, 251, 194, 29, 34, 2, 251, 193, 29, 34, 2,
+ 251, 192, 29, 34, 2, 251, 191, 29, 34, 2, 251, 190, 29, 34, 2, 251, 189,
+ 29, 34, 2, 251, 188, 29, 34, 2, 251, 187, 29, 34, 2, 251, 186, 29, 34, 2,
+ 251, 185, 29, 34, 2, 251, 184, 29, 34, 2, 251, 183, 29, 34, 2, 251, 182,
+ 29, 34, 2, 251, 181, 29, 34, 2, 251, 180, 29, 34, 2, 251, 179, 29, 34, 2,
+ 251, 178, 29, 34, 2, 251, 177, 29, 34, 2, 251, 176, 29, 34, 2, 251, 175,
+ 29, 34, 2, 251, 174, 29, 34, 2, 251, 173, 29, 34, 2, 251, 172, 29, 34, 2,
+ 251, 171, 29, 34, 2, 251, 170, 29, 34, 2, 251, 169, 29, 34, 2, 251, 168,
+ 29, 34, 2, 251, 167, 29, 34, 2, 251, 166, 29, 34, 2, 251, 165, 29, 34, 2,
+ 251, 164, 29, 34, 2, 251, 163, 29, 34, 2, 251, 162, 29, 34, 2, 254, 152,
+ 29, 34, 2, 251, 161, 29, 34, 2, 251, 160, 29, 34, 2, 254, 117, 29, 34, 2,
+ 251, 159, 29, 34, 2, 251, 158, 29, 34, 2, 251, 157, 29, 34, 2, 251, 156,
+ 29, 34, 2, 254, 104, 29, 34, 2, 251, 155, 29, 34, 2, 251, 154, 29, 34, 2,
+ 251, 153, 29, 34, 2, 251, 152, 29, 34, 2, 251, 151, 29, 34, 2, 253, 176,
+ 29, 34, 2, 253, 175, 29, 34, 2, 253, 174, 29, 34, 2, 253, 173, 29, 34, 2,
+ 253, 172, 29, 34, 2, 253, 171, 29, 34, 2, 253, 170, 29, 34, 2, 253, 169,
+ 29, 34, 2, 253, 167, 29, 34, 2, 253, 166, 29, 34, 2, 253, 165, 29, 34, 2,
+ 253, 164, 29, 34, 2, 253, 163, 29, 34, 2, 253, 162, 29, 34, 2, 253, 160,
+ 29, 34, 2, 253, 159, 29, 34, 2, 253, 158, 29, 34, 2, 253, 157, 29, 34, 2,
+ 253, 156, 29, 34, 2, 253, 155, 29, 34, 2, 253, 154, 29, 34, 2, 253, 153,
+ 29, 34, 2, 253, 152, 29, 34, 2, 253, 151, 29, 34, 2, 253, 150, 29, 34, 2,
+ 253, 149, 29, 34, 2, 253, 148, 29, 34, 2, 253, 147, 29, 34, 2, 253, 146,
+ 29, 34, 2, 253, 145, 29, 34, 2, 253, 144, 29, 34, 2, 253, 143, 29, 34, 2,
+ 253, 142, 29, 34, 2, 253, 140, 29, 34, 2, 253, 139, 29, 34, 2, 253, 138,
+ 29, 34, 2, 253, 134, 29, 34, 2, 253, 133, 29, 34, 2, 253, 132, 29, 34, 2,
+ 253, 131, 29, 34, 2, 253, 127, 29, 34, 2, 253, 126, 29, 34, 2, 253, 125,
+ 29, 34, 2, 253, 124, 29, 34, 2, 253, 123, 29, 34, 2, 253, 122, 29, 34, 2,
+ 253, 121, 29, 34, 2, 253, 120, 29, 34, 2, 253, 119, 29, 34, 2, 253, 118,
+ 29, 34, 2, 253, 117, 29, 34, 2, 253, 116, 29, 34, 2, 253, 115, 29, 34, 2,
+ 253, 114, 29, 34, 2, 253, 113, 29, 34, 2, 253, 112, 29, 34, 2, 253, 111,
+ 29, 34, 2, 253, 110, 29, 34, 2, 253, 109, 29, 34, 2, 253, 108, 29, 34, 2,
+ 253, 107, 29, 34, 2, 253, 106, 29, 34, 2, 253, 105, 29, 34, 2, 253, 103,
+ 29, 34, 2, 253, 102, 29, 34, 2, 253, 101, 29, 34, 2, 253, 100, 29, 34, 2,
+ 253, 99, 29, 34, 2, 253, 97, 29, 34, 2, 253, 96, 29, 34, 2, 253, 95, 29,
+ 34, 2, 253, 94, 29, 34, 2, 253, 92, 29, 34, 2, 253, 91, 29, 34, 2, 253,
+ 90, 29, 34, 2, 253, 56, 29, 34, 2, 253, 54, 29, 34, 2, 253, 52, 29, 34,
+ 2, 253, 50, 29, 34, 2, 253, 48, 29, 34, 2, 253, 46, 29, 34, 2, 253, 44,
+ 29, 34, 2, 253, 42, 29, 34, 2, 253, 40, 29, 34, 2, 253, 38, 29, 34, 2,
+ 253, 36, 29, 34, 2, 253, 33, 29, 34, 2, 253, 31, 29, 34, 2, 253, 29, 29,
+ 34, 2, 253, 27, 29, 34, 2, 253, 25, 29, 34, 2, 253, 23, 29, 34, 2, 253,
+ 21, 29, 34, 2, 253, 19, 29, 34, 2, 252, 193, 29, 34, 2, 252, 192, 29, 34,
+ 2, 252, 191, 29, 34, 2, 252, 190, 29, 34, 2, 252, 189, 29, 34, 2, 252,
+ 188, 29, 34, 2, 252, 186, 29, 34, 2, 252, 185, 29, 34, 2, 252, 184, 29,
+ 34, 2, 252, 183, 29, 34, 2, 252, 182, 29, 34, 2, 252, 181, 29, 34, 2,
+ 252, 179, 29, 34, 2, 252, 178, 29, 34, 2, 252, 174, 29, 34, 2, 252, 173,
+ 29, 34, 2, 252, 171, 29, 34, 2, 252, 170, 29, 34, 2, 252, 169, 29, 34, 2,
+ 252, 168, 29, 34, 2, 252, 167, 29, 34, 2, 252, 166, 29, 34, 2, 252, 165,
+ 29, 34, 2, 252, 164, 29, 34, 2, 252, 163, 29, 34, 2, 252, 162, 29, 34, 2,
+ 252, 161, 29, 34, 2, 252, 160, 29, 34, 2, 252, 159, 29, 34, 2, 252, 158,
+ 29, 34, 2, 252, 157, 29, 34, 2, 252, 156, 29, 34, 2, 252, 155, 29, 34, 2,
+ 252, 154, 29, 34, 2, 252, 153, 29, 34, 2, 252, 152, 29, 34, 2, 252, 151,
+ 29, 34, 2, 252, 150, 29, 34, 2, 252, 149, 29, 34, 2, 252, 148, 29, 34, 2,
+ 252, 147, 29, 34, 2, 252, 146, 29, 34, 2, 252, 145, 29, 34, 2, 252, 144,
+ 29, 34, 2, 252, 143, 29, 34, 2, 252, 142, 29, 34, 2, 252, 141, 29, 34, 2,
+ 252, 140, 29, 34, 2, 252, 139, 29, 34, 2, 252, 138, 29, 34, 2, 252, 137,
+ 29, 34, 2, 252, 136, 29, 34, 2, 252, 135, 29, 34, 2, 252, 134, 29, 34, 2,
+ 252, 133, 29, 34, 2, 252, 132, 29, 34, 2, 252, 131, 29, 34, 2, 252, 130,
+ 29, 34, 2, 252, 129, 29, 34, 2, 252, 128, 29, 34, 2, 252, 127, 29, 34, 2,
+ 252, 126, 29, 34, 2, 252, 125, 29, 34, 2, 252, 124, 29, 34, 2, 252, 123,
+ 29, 34, 2, 252, 122, 29, 34, 2, 252, 121, 29, 34, 2, 252, 120, 29, 34, 2,
+ 252, 119, 29, 34, 2, 252, 118, 29, 34, 2, 252, 117, 29, 34, 2, 252, 116,
+ 29, 34, 2, 252, 115, 29, 34, 2, 252, 114, 29, 34, 2, 252, 113, 29, 34, 2,
+ 252, 112, 29, 34, 2, 252, 111, 29, 34, 2, 252, 110, 29, 34, 2, 252, 109,
+ 29, 34, 2, 252, 108, 29, 34, 2, 252, 107, 29, 34, 2, 252, 106, 29, 34, 2,
+ 252, 105, 29, 34, 2, 252, 104, 29, 34, 2, 252, 103, 29, 34, 2, 252, 102,
+ 29, 34, 2, 252, 101, 29, 34, 2, 252, 100, 29, 34, 2, 252, 99, 29, 34, 2,
+ 252, 98, 29, 34, 2, 252, 97, 29, 34, 2, 252, 96, 29, 34, 2, 252, 95, 29,
+ 34, 2, 252, 94, 29, 34, 2, 252, 93, 29, 34, 2, 252, 92, 29, 34, 2, 252,
+ 91, 29, 34, 2, 252, 90, 29, 34, 2, 252, 89, 29, 34, 2, 252, 88, 29, 34,
+ 2, 252, 87, 29, 34, 2, 252, 86, 29, 34, 2, 252, 85, 29, 34, 2, 252, 84,
+ 29, 34, 2, 252, 83, 29, 34, 2, 252, 82, 29, 34, 2, 252, 81, 29, 34, 2,
+ 252, 80, 29, 34, 2, 252, 79, 29, 34, 2, 252, 78, 29, 34, 2, 252, 77, 29,
+ 34, 2, 252, 76, 29, 34, 2, 252, 75, 29, 34, 2, 252, 74, 29, 34, 2, 252,
+ 73, 29, 34, 2, 252, 72, 29, 34, 2, 252, 71, 29, 34, 2, 252, 70, 29, 34,
+ 2, 252, 69, 29, 34, 2, 252, 68, 29, 34, 2, 252, 67, 29, 34, 2, 252, 66,
+ 29, 34, 2, 252, 65, 29, 34, 2, 252, 64, 29, 34, 2, 252, 63, 29, 34, 2,
+ 252, 62, 29, 34, 2, 252, 61, 29, 34, 2, 252, 60, 29, 34, 2, 252, 59, 29,
+ 34, 2, 252, 58, 29, 34, 2, 252, 57, 29, 34, 2, 252, 56, 29, 34, 2, 252,
+ 55, 63, 29, 34, 2, 252, 54, 249, 255, 29, 34, 2, 252, 53, 245, 51, 29,
+ 34, 2, 252, 52, 74, 29, 34, 2, 252, 51, 240, 174, 29, 34, 2, 252, 50,
+ 237, 171, 29, 34, 2, 252, 49, 230, 184, 29, 34, 2, 252, 48, 230, 54, 29,
+ 34, 2, 252, 47, 159, 29, 34, 2, 252, 46, 228, 118, 29, 34, 2, 252, 45,
+ 228, 117, 29, 34, 2, 252, 44, 228, 116, 29, 34, 2, 252, 43, 228, 115, 29,
+ 34, 2, 252, 42, 204, 144, 29, 34, 2, 252, 41, 203, 196, 29, 34, 2, 252,
+ 40, 203, 124, 29, 34, 2, 252, 39, 220, 36, 29, 34, 2, 252, 38, 251, 147,
+ 29, 34, 2, 252, 37, 248, 199, 29, 34, 2, 252, 36, 244, 122, 29, 34, 2,
+ 252, 35, 240, 182, 29, 34, 2, 252, 34, 230, 161, 29, 34, 2, 252, 33, 29,
+ 34, 2, 252, 32, 29, 34, 2, 252, 31, 29, 34, 2, 252, 30, 29, 34, 2, 252,
+ 29, 29, 34, 2, 252, 28, 29, 34, 2, 252, 27, 29, 34, 2, 252, 26, 245, 58,
+ 4, 63, 245, 58, 4, 74, 245, 58, 4, 75, 245, 58, 4, 78, 245, 58, 4, 68,
+ 245, 58, 4, 230, 181, 245, 58, 4, 230, 101, 245, 58, 4, 173, 245, 58, 4,
+ 229, 201, 245, 58, 4, 229, 100, 245, 58, 4, 229, 26, 245, 58, 4, 228,
+ 209, 245, 58, 4, 228, 113, 245, 58, 4, 227, 234, 245, 58, 4, 227, 148,
+ 245, 58, 4, 227, 49, 245, 58, 4, 226, 239, 245, 58, 4, 192, 245, 58, 4,
+ 225, 20, 245, 58, 4, 224, 155, 245, 58, 4, 224, 82, 245, 58, 4, 223, 246,
+ 245, 58, 4, 201, 201, 245, 58, 4, 222, 240, 245, 58, 4, 222, 100, 245,
+ 58, 4, 221, 191, 245, 58, 4, 221, 84, 245, 58, 4, 185, 245, 58, 4, 219,
+ 34, 245, 58, 4, 218, 167, 245, 58, 4, 218, 69, 245, 58, 4, 217, 191, 245,
+ 58, 4, 216, 220, 245, 58, 4, 216, 158, 245, 58, 4, 216, 57, 245, 58, 4,
+ 215, 227, 245, 58, 4, 215, 145, 245, 58, 4, 215, 36, 245, 58, 4, 214,
+ 177, 245, 58, 4, 212, 162, 245, 58, 4, 212, 13, 245, 58, 4, 211, 10, 245,
+ 58, 4, 210, 22, 245, 58, 4, 209, 187, 245, 58, 4, 209, 2, 245, 58, 4,
+ 135, 245, 58, 4, 207, 203, 245, 58, 4, 204, 111, 245, 58, 4, 204, 62,
+ 245, 58, 4, 204, 30, 245, 58, 4, 204, 0, 245, 58, 4, 203, 182, 245, 58,
+ 4, 203, 176, 245, 58, 4, 202, 116, 245, 58, 4, 202, 17, 231, 51, 250,
+ 130, 1, 251, 28, 231, 51, 250, 130, 1, 248, 105, 231, 51, 250, 130, 1,
+ 238, 67, 231, 51, 250, 130, 1, 244, 177, 231, 51, 250, 130, 1, 237, 67,
+ 231, 51, 250, 130, 1, 204, 70, 231, 51, 250, 130, 1, 202, 95, 231, 51,
+ 250, 130, 1, 237, 19, 231, 51, 250, 130, 1, 209, 128, 231, 51, 250, 130,
+ 1, 202, 235, 231, 51, 250, 130, 1, 229, 250, 231, 51, 250, 130, 1, 228,
+ 19, 231, 51, 250, 130, 1, 224, 247, 231, 51, 250, 130, 1, 221, 40, 231,
+ 51, 250, 130, 1, 214, 249, 231, 51, 250, 130, 1, 250, 3, 231, 51, 250,
+ 130, 1, 219, 34, 231, 51, 250, 130, 1, 215, 26, 231, 51, 250, 130, 1,
+ 217, 69, 231, 51, 250, 130, 1, 216, 91, 231, 51, 250, 130, 1, 212, 255,
+ 231, 51, 250, 130, 1, 209, 201, 231, 51, 250, 130, 214, 168, 54, 231, 51,
+ 250, 130, 42, 105, 231, 51, 250, 130, 42, 108, 231, 51, 250, 130, 42,
+ 147, 231, 51, 250, 130, 42, 209, 152, 231, 51, 250, 130, 42, 207, 151,
+ 231, 51, 250, 130, 42, 118, 236, 11, 231, 51, 250, 130, 42, 118, 209, 36,
+ 231, 51, 250, 130, 42, 209, 153, 209, 36, 219, 134, 1, 251, 28, 219, 134,
+ 1, 248, 105, 219, 134, 1, 238, 67, 219, 134, 1, 244, 177, 219, 134, 1,
+ 237, 67, 219, 134, 1, 204, 70, 219, 134, 1, 202, 95, 219, 134, 1, 237,
+ 19, 219, 134, 1, 209, 128, 219, 134, 1, 202, 235, 219, 134, 1, 229, 250,
+ 219, 134, 1, 228, 19, 219, 134, 1, 224, 247, 219, 134, 1, 46, 221, 40,
+ 219, 134, 1, 221, 40, 219, 134, 1, 214, 249, 219, 134, 1, 250, 3, 219,
+ 134, 1, 219, 34, 219, 134, 1, 215, 26, 219, 134, 1, 217, 69, 219, 134, 1,
+ 216, 91, 219, 134, 1, 212, 255, 219, 134, 1, 209, 201, 219, 134, 227,
+ 217, 239, 212, 219, 134, 216, 11, 239, 212, 219, 134, 42, 105, 219, 134,
+ 42, 108, 219, 134, 42, 147, 219, 134, 42, 149, 219, 134, 42, 170, 219,
+ 134, 42, 209, 152, 219, 134, 42, 207, 151, 223, 102, 1, 46, 251, 28, 223,
+ 102, 1, 251, 28, 223, 102, 1, 46, 248, 105, 223, 102, 1, 248, 105, 223,
+ 102, 1, 238, 67, 223, 102, 1, 244, 177, 223, 102, 1, 46, 237, 67, 223,
+ 102, 1, 237, 67, 223, 102, 1, 204, 70, 223, 102, 1, 202, 95, 223, 102, 1,
+ 237, 19, 223, 102, 1, 209, 128, 223, 102, 1, 46, 202, 235, 223, 102, 1,
+ 202, 235, 223, 102, 1, 46, 229, 250, 223, 102, 1, 229, 250, 223, 102, 1,
+ 46, 228, 19, 223, 102, 1, 228, 19, 223, 102, 1, 46, 224, 247, 223, 102,
+ 1, 224, 247, 223, 102, 1, 46, 221, 40, 223, 102, 1, 221, 40, 223, 102, 1,
+ 214, 249, 223, 102, 1, 250, 3, 223, 102, 1, 219, 34, 223, 102, 1, 215,
+ 26, 223, 102, 1, 217, 69, 223, 102, 1, 216, 91, 223, 102, 1, 46, 212,
+ 255, 223, 102, 1, 212, 255, 223, 102, 1, 209, 201, 223, 102, 42, 105,
+ 223, 102, 42, 108, 223, 102, 42, 147, 223, 102, 42, 149, 223, 102, 245,
+ 116, 42, 149, 223, 102, 42, 170, 223, 102, 42, 209, 152, 223, 102, 42,
+ 207, 151, 223, 102, 42, 118, 236, 11, 237, 78, 1, 251, 28, 237, 78, 1,
+ 248, 105, 237, 78, 1, 238, 67, 237, 78, 1, 244, 176, 237, 78, 1, 237, 67,
+ 237, 78, 1, 204, 70, 237, 78, 1, 202, 94, 237, 78, 1, 237, 19, 237, 78,
+ 1, 209, 128, 237, 78, 1, 202, 235, 237, 78, 1, 229, 250, 237, 78, 1, 228,
+ 19, 237, 78, 1, 224, 247, 237, 78, 1, 221, 40, 237, 78, 1, 214, 249, 237,
+ 78, 1, 250, 2, 237, 78, 1, 219, 34, 237, 78, 1, 215, 26, 237, 78, 1, 217,
+ 69, 237, 78, 1, 212, 255, 237, 78, 1, 209, 201, 237, 78, 42, 105, 237,
+ 78, 42, 170, 237, 78, 42, 209, 152, 237, 78, 42, 207, 151, 237, 78, 42,
+ 118, 236, 11, 218, 178, 1, 251, 25, 218, 178, 1, 248, 108, 218, 178, 1,
+ 238, 237, 218, 178, 1, 244, 39, 218, 178, 1, 237, 67, 218, 178, 1, 204,
+ 77, 218, 178, 1, 202, 109, 218, 178, 1, 237, 21, 218, 178, 1, 209, 132,
+ 218, 178, 1, 202, 236, 218, 178, 1, 230, 22, 218, 178, 1, 228, 25, 218,
+ 178, 1, 224, 247, 218, 178, 1, 221, 40, 218, 178, 1, 213, 137, 218, 178,
+ 1, 251, 59, 218, 178, 1, 219, 34, 218, 178, 1, 215, 27, 218, 178, 1, 217,
+ 74, 218, 178, 1, 215, 200, 218, 178, 1, 212, 255, 218, 178, 1, 209, 207,
+ 218, 178, 42, 105, 218, 178, 42, 209, 152, 218, 178, 42, 207, 151, 218,
+ 178, 42, 118, 236, 11, 218, 178, 42, 108, 218, 178, 42, 147, 218, 178,
+ 203, 238, 213, 130, 226, 196, 1, 63, 226, 196, 1, 249, 255, 226, 196, 1,
+ 239, 75, 226, 196, 1, 245, 51, 226, 196, 1, 74, 226, 196, 1, 206, 164,
+ 226, 196, 1, 75, 226, 196, 1, 203, 124, 226, 196, 1, 230, 54, 226, 196,
+ 1, 159, 226, 196, 1, 226, 185, 226, 196, 1, 223, 163, 226, 196, 1, 78,
+ 226, 196, 1, 146, 226, 196, 1, 211, 167, 226, 196, 1, 210, 69, 226, 196,
+ 1, 68, 226, 196, 1, 240, 174, 226, 196, 1, 217, 134, 226, 196, 1, 194,
+ 226, 196, 1, 207, 244, 226, 196, 1, 250, 231, 226, 196, 1, 241, 92, 226,
+ 196, 1, 226, 199, 226, 196, 1, 221, 228, 226, 196, 1, 247, 125, 226, 196,
+ 208, 82, 82, 129, 236, 253, 1, 63, 129, 236, 253, 1, 74, 129, 236, 253,
+ 1, 75, 129, 236, 253, 1, 78, 129, 236, 253, 1, 198, 129, 236, 253, 1,
+ 204, 111, 129, 236, 253, 1, 249, 32, 129, 236, 253, 1, 249, 31, 129, 236,
+ 253, 1, 185, 129, 236, 253, 1, 192, 129, 236, 253, 1, 201, 201, 129, 236,
+ 253, 1, 223, 110, 129, 236, 253, 1, 222, 240, 129, 236, 253, 1, 222, 239,
+ 129, 236, 253, 1, 216, 220, 129, 236, 253, 1, 216, 219, 129, 236, 253, 1,
+ 228, 113, 129, 236, 253, 1, 229, 144, 129, 236, 253, 1, 237, 12, 129,
+ 236, 253, 1, 215, 36, 129, 236, 253, 1, 215, 35, 129, 236, 253, 1, 214,
+ 177, 129, 236, 253, 1, 173, 129, 236, 253, 1, 217, 126, 129, 236, 253, 1,
+ 210, 22, 129, 236, 253, 1, 210, 21, 129, 236, 253, 1, 209, 187, 129, 236,
+ 253, 1, 209, 186, 129, 236, 253, 1, 135, 129, 236, 253, 1, 244, 212, 129,
+ 236, 253, 16, 205, 224, 129, 236, 253, 16, 205, 223, 129, 191, 1, 63,
+ 129, 191, 1, 74, 129, 191, 1, 75, 129, 191, 1, 78, 129, 191, 1, 198, 129,
+ 191, 1, 204, 111, 129, 191, 1, 249, 32, 129, 191, 1, 185, 129, 191, 1,
+ 192, 129, 191, 1, 201, 201, 129, 191, 1, 222, 240, 129, 191, 1, 216, 220,
+ 129, 191, 1, 228, 113, 129, 191, 1, 229, 144, 129, 191, 1, 237, 12, 129,
+ 191, 1, 215, 36, 129, 191, 1, 250, 126, 215, 36, 129, 191, 1, 214, 177,
+ 129, 191, 1, 173, 129, 191, 1, 217, 126, 129, 191, 1, 210, 22, 129, 191,
+ 1, 209, 187, 129, 191, 1, 135, 129, 191, 1, 244, 212, 129, 191, 239, 138,
+ 241, 113, 207, 156, 129, 191, 239, 138, 118, 237, 137, 129, 191, 227, 36,
+ 215, 233, 129, 191, 227, 36, 231, 56, 129, 191, 42, 105, 129, 191, 42,
+ 108, 129, 191, 42, 147, 129, 191, 42, 149, 129, 191, 42, 170, 129, 191,
+ 42, 195, 129, 191, 42, 213, 111, 129, 191, 42, 199, 129, 191, 42, 222,
+ 63, 129, 191, 42, 209, 152, 129, 191, 42, 207, 151, 129, 191, 42, 209,
+ 53, 129, 191, 42, 239, 153, 129, 191, 42, 240, 18, 129, 191, 42, 212, 74,
+ 129, 191, 42, 213, 105, 129, 191, 42, 118, 236, 11, 129, 191, 42, 120,
+ 236, 11, 129, 191, 42, 126, 236, 11, 129, 191, 42, 239, 147, 236, 11,
+ 129, 191, 42, 239, 233, 236, 11, 129, 191, 42, 212, 88, 236, 11, 129,
+ 191, 42, 213, 112, 236, 11, 129, 191, 42, 241, 143, 236, 11, 129, 191,
+ 42, 222, 64, 236, 11, 129, 191, 42, 118, 209, 36, 129, 191, 42, 120, 209,
+ 36, 129, 191, 42, 126, 209, 36, 129, 191, 42, 239, 147, 209, 36, 129,
+ 191, 42, 239, 233, 209, 36, 129, 191, 42, 212, 88, 209, 36, 129, 191, 42,
+ 213, 112, 209, 36, 129, 191, 42, 241, 143, 209, 36, 129, 191, 42, 222,
+ 64, 209, 36, 129, 191, 42, 209, 153, 209, 36, 129, 191, 42, 207, 152,
+ 209, 36, 129, 191, 42, 209, 54, 209, 36, 129, 191, 42, 239, 154, 209, 36,
+ 129, 191, 42, 240, 19, 209, 36, 129, 191, 42, 212, 75, 209, 36, 129, 191,
+ 42, 213, 106, 209, 36, 129, 191, 42, 241, 135, 209, 36, 129, 191, 42,
+ 222, 59, 209, 36, 129, 191, 42, 118, 236, 12, 209, 36, 129, 191, 42, 120,
+ 236, 12, 209, 36, 129, 191, 42, 126, 236, 12, 209, 36, 129, 191, 42, 239,
+ 147, 236, 12, 209, 36, 129, 191, 42, 239, 233, 236, 12, 209, 36, 129,
+ 191, 42, 212, 88, 236, 12, 209, 36, 129, 191, 42, 213, 112, 236, 12, 209,
+ 36, 129, 191, 42, 241, 143, 236, 12, 209, 36, 129, 191, 42, 222, 64, 236,
+ 12, 209, 36, 129, 191, 239, 138, 118, 207, 157, 129, 191, 239, 138, 120,
+ 207, 156, 129, 191, 239, 138, 126, 207, 156, 129, 191, 239, 138, 239,
+ 147, 207, 156, 129, 191, 239, 138, 239, 233, 207, 156, 129, 191, 239,
+ 138, 212, 88, 207, 156, 129, 191, 239, 138, 213, 112, 207, 156, 129, 191,
+ 239, 138, 241, 143, 207, 156, 129, 191, 239, 138, 222, 64, 207, 156, 129,
+ 191, 239, 138, 209, 153, 207, 156, 229, 131, 1, 63, 229, 131, 22, 2, 75,
+ 229, 131, 22, 2, 68, 229, 131, 22, 2, 125, 146, 229, 131, 22, 2, 74, 229,
+ 131, 22, 2, 78, 229, 131, 22, 227, 196, 82, 229, 131, 2, 52, 215, 253,
+ 56, 229, 131, 2, 250, 180, 229, 131, 2, 205, 199, 229, 131, 1, 173, 229,
+ 131, 1, 229, 144, 229, 131, 1, 239, 8, 229, 131, 1, 238, 119, 229, 131,
+ 1, 247, 92, 229, 131, 1, 246, 199, 229, 131, 1, 230, 181, 229, 131, 1,
+ 221, 11, 229, 131, 1, 207, 241, 229, 131, 1, 207, 229, 229, 131, 1, 244,
+ 120, 229, 131, 1, 244, 104, 229, 131, 1, 221, 227, 229, 131, 1, 210, 22,
+ 229, 131, 1, 209, 108, 229, 131, 1, 244, 212, 229, 131, 1, 244, 1, 229,
+ 131, 1, 201, 201, 229, 131, 1, 185, 229, 131, 1, 218, 208, 229, 131, 1,
+ 249, 32, 229, 131, 1, 248, 98, 229, 131, 1, 192, 229, 131, 1, 198, 229,
+ 131, 1, 216, 220, 229, 131, 1, 228, 113, 229, 131, 1, 206, 86, 229, 131,
+ 1, 213, 90, 229, 131, 1, 211, 164, 229, 131, 1, 215, 36, 229, 131, 1,
+ 202, 116, 229, 131, 1, 152, 229, 131, 1, 229, 47, 229, 131, 1, 207, 209,
+ 229, 131, 2, 248, 231, 55, 229, 131, 2, 247, 13, 229, 131, 2, 70, 56,
+ 229, 131, 205, 204, 229, 131, 17, 105, 229, 131, 17, 108, 229, 131, 17,
+ 147, 229, 131, 17, 149, 229, 131, 42, 209, 152, 229, 131, 42, 207, 151,
+ 229, 131, 42, 118, 236, 11, 229, 131, 42, 118, 209, 36, 229, 131, 217,
+ 179, 243, 85, 229, 131, 217, 179, 5, 246, 61, 229, 131, 217, 179, 246,
+ 61, 229, 131, 217, 179, 245, 139, 142, 229, 131, 217, 179, 225, 116, 229,
+ 131, 217, 179, 227, 5, 229, 131, 217, 179, 244, 166, 229, 131, 217, 179,
+ 52, 244, 166, 229, 131, 217, 179, 227, 108, 38, 211, 238, 250, 141, 1,
+ 237, 67, 38, 211, 238, 250, 141, 1, 228, 19, 38, 211, 238, 250, 141, 1,
+ 237, 19, 38, 211, 238, 250, 141, 1, 224, 247, 38, 211, 238, 250, 141, 1,
+ 217, 69, 38, 211, 238, 250, 141, 1, 204, 70, 38, 211, 238, 250, 141, 1,
+ 212, 255, 38, 211, 238, 250, 141, 1, 216, 91, 38, 211, 238, 250, 141, 1,
+ 248, 105, 38, 211, 238, 250, 141, 1, 209, 201, 38, 211, 238, 250, 141, 1,
+ 214, 225, 38, 211, 238, 250, 141, 1, 229, 250, 38, 211, 238, 250, 141, 1,
+ 221, 40, 38, 211, 238, 250, 141, 1, 229, 126, 38, 211, 238, 250, 141, 1,
+ 215, 26, 38, 211, 238, 250, 141, 1, 214, 249, 38, 211, 238, 250, 141, 1,
+ 240, 60, 38, 211, 238, 250, 141, 1, 251, 30, 38, 211, 238, 250, 141, 1,
+ 250, 2, 38, 211, 238, 250, 141, 1, 243, 254, 38, 211, 238, 250, 141, 1,
+ 238, 67, 38, 211, 238, 250, 141, 1, 244, 177, 38, 211, 238, 250, 141, 1,
+ 238, 107, 38, 211, 238, 250, 141, 1, 209, 128, 38, 211, 238, 250, 141, 1,
+ 202, 94, 38, 211, 238, 250, 141, 1, 243, 251, 38, 211, 238, 250, 141, 1,
+ 202, 235, 38, 211, 238, 250, 141, 1, 209, 94, 38, 211, 238, 250, 141, 1,
+ 209, 73, 38, 211, 238, 250, 141, 42, 105, 38, 211, 238, 250, 141, 42,
+ 240, 18, 38, 211, 238, 250, 141, 141, 231, 31, 38, 153, 250, 141, 1, 237,
+ 43, 38, 153, 250, 141, 1, 228, 28, 38, 153, 250, 141, 1, 237, 148, 38,
+ 153, 250, 141, 1, 225, 5, 38, 153, 250, 141, 1, 217, 119, 38, 153, 250,
+ 141, 1, 204, 70, 38, 153, 250, 141, 1, 241, 15, 38, 153, 250, 141, 1,
+ 216, 122, 38, 153, 250, 141, 1, 248, 138, 38, 153, 250, 141, 1, 209, 169,
+ 38, 153, 250, 141, 1, 241, 16, 38, 153, 250, 141, 1, 230, 22, 38, 153,
+ 250, 141, 1, 221, 178, 38, 153, 250, 141, 1, 229, 140, 38, 153, 250, 141,
+ 1, 215, 28, 38, 153, 250, 141, 1, 241, 14, 38, 153, 250, 141, 1, 240, 47,
+ 38, 153, 250, 141, 1, 251, 30, 38, 153, 250, 141, 1, 251, 59, 38, 153,
+ 250, 141, 1, 244, 207, 38, 153, 250, 141, 1, 238, 181, 38, 153, 250, 141,
+ 1, 244, 184, 38, 153, 250, 141, 1, 238, 114, 38, 153, 250, 141, 1, 209,
+ 251, 38, 153, 250, 141, 1, 202, 107, 38, 153, 250, 141, 1, 209, 100, 38,
+ 153, 250, 141, 1, 203, 47, 38, 153, 250, 141, 1, 209, 88, 38, 153, 250,
+ 141, 1, 202, 110, 38, 153, 250, 141, 42, 105, 38, 153, 250, 141, 42, 209,
+ 152, 38, 153, 250, 141, 42, 207, 151, 225, 115, 1, 251, 28, 225, 115, 1,
+ 248, 105, 225, 115, 1, 248, 92, 225, 115, 1, 238, 67, 225, 115, 1, 238,
+ 92, 225, 115, 1, 244, 177, 225, 115, 1, 237, 67, 225, 115, 1, 204, 70,
+ 225, 115, 2, 207, 29, 225, 115, 1, 202, 95, 225, 115, 1, 202, 73, 225,
+ 115, 1, 230, 163, 225, 115, 1, 230, 145, 225, 115, 1, 237, 19, 225, 115,
+ 1, 209, 128, 225, 115, 1, 202, 235, 225, 115, 1, 229, 250, 225, 115, 1,
+ 203, 179, 225, 115, 1, 229, 133, 225, 115, 1, 228, 19, 225, 115, 1, 243,
+ 250, 225, 115, 1, 209, 99, 225, 115, 1, 224, 247, 225, 115, 1, 221, 40,
+ 225, 115, 1, 214, 249, 225, 115, 1, 250, 3, 225, 115, 1, 251, 234, 225,
+ 115, 1, 219, 34, 225, 115, 1, 240, 60, 225, 115, 1, 215, 26, 225, 115, 1,
+ 217, 69, 225, 115, 1, 203, 157, 225, 115, 1, 217, 95, 225, 115, 1, 216,
+ 91, 225, 115, 1, 212, 255, 225, 115, 1, 211, 133, 225, 115, 1, 209, 201,
+ 225, 115, 251, 146, 131, 55, 225, 115, 251, 146, 131, 56, 225, 115, 42,
+ 105, 225, 115, 42, 170, 225, 115, 42, 209, 152, 225, 115, 42, 207, 151,
+ 225, 115, 42, 118, 236, 11, 225, 115, 217, 179, 211, 94, 225, 115, 217,
+ 179, 239, 212, 225, 115, 217, 179, 52, 70, 204, 5, 243, 85, 225, 115,
+ 217, 179, 70, 204, 5, 243, 85, 225, 115, 217, 179, 243, 85, 225, 115,
+ 217, 179, 120, 243, 83, 225, 115, 217, 179, 227, 115, 240, 7, 250, 14, 1,
+ 63, 250, 14, 1, 252, 25, 250, 14, 1, 250, 178, 250, 14, 1, 251, 240, 250,
+ 14, 1, 250, 231, 250, 14, 1, 251, 241, 250, 14, 1, 251, 109, 250, 14, 1,
+ 251, 105, 250, 14, 1, 74, 250, 14, 1, 241, 161, 250, 14, 1, 78, 250, 14,
+ 1, 220, 18, 250, 14, 1, 75, 250, 14, 1, 231, 83, 250, 14, 1, 68, 250, 14,
+ 1, 206, 178, 250, 14, 1, 229, 201, 250, 14, 1, 203, 176, 250, 14, 1, 203,
+ 138, 250, 14, 1, 203, 148, 250, 14, 1, 238, 190, 250, 14, 1, 238, 150,
+ 250, 14, 1, 238, 105, 250, 14, 1, 246, 238, 250, 14, 1, 230, 161, 250,
+ 14, 1, 209, 187, 250, 14, 1, 209, 92, 250, 14, 1, 244, 75, 250, 14, 1,
+ 243, 248, 250, 14, 1, 207, 236, 250, 14, 1, 219, 34, 250, 14, 1, 240, 60,
+ 250, 14, 1, 248, 162, 250, 14, 1, 248, 94, 250, 14, 1, 222, 190, 250, 14,
+ 1, 222, 106, 250, 14, 1, 222, 107, 250, 14, 1, 222, 240, 250, 14, 1, 221,
+ 1, 250, 14, 1, 221, 222, 250, 14, 1, 225, 20, 250, 14, 1, 236, 186, 250,
+ 14, 1, 202, 166, 250, 14, 1, 203, 52, 250, 14, 1, 206, 55, 250, 14, 1,
+ 216, 158, 250, 14, 1, 227, 234, 250, 14, 1, 214, 177, 250, 14, 1, 202,
+ 92, 250, 14, 1, 213, 43, 250, 14, 1, 202, 71, 250, 14, 1, 212, 169, 250,
+ 14, 1, 211, 134, 250, 14, 1, 237, 67, 250, 14, 251, 146, 82, 208, 213,
+ 120, 187, 115, 118, 70, 217, 178, 5, 120, 187, 115, 118, 70, 217, 178,
+ 228, 8, 120, 187, 115, 118, 70, 217, 178, 228, 8, 118, 70, 115, 120, 187,
+ 217, 178, 228, 8, 120, 215, 250, 115, 118, 215, 253, 217, 178, 228, 8,
+ 118, 215, 253, 115, 120, 215, 250, 217, 178, 231, 10, 219, 70, 1, 251,
+ 28, 231, 10, 219, 70, 1, 248, 105, 231, 10, 219, 70, 1, 238, 67, 231, 10,
+ 219, 70, 1, 244, 177, 231, 10, 219, 70, 1, 237, 67, 231, 10, 219, 70, 1,
+ 204, 70, 231, 10, 219, 70, 1, 202, 95, 231, 10, 219, 70, 1, 237, 19, 231,
+ 10, 219, 70, 1, 209, 128, 231, 10, 219, 70, 1, 202, 235, 231, 10, 219,
+ 70, 1, 229, 250, 231, 10, 219, 70, 1, 228, 19, 231, 10, 219, 70, 1, 224,
+ 247, 231, 10, 219, 70, 1, 221, 40, 231, 10, 219, 70, 1, 214, 249, 231,
+ 10, 219, 70, 1, 250, 3, 231, 10, 219, 70, 1, 219, 34, 231, 10, 219, 70,
+ 1, 215, 26, 231, 10, 219, 70, 1, 217, 69, 231, 10, 219, 70, 1, 216, 91,
+ 231, 10, 219, 70, 1, 212, 255, 231, 10, 219, 70, 1, 209, 201, 231, 10,
+ 219, 70, 42, 105, 231, 10, 219, 70, 42, 108, 231, 10, 219, 70, 42, 147,
+ 231, 10, 219, 70, 42, 149, 231, 10, 219, 70, 42, 209, 152, 231, 10, 219,
+ 70, 42, 207, 151, 231, 10, 219, 70, 42, 118, 236, 11, 231, 10, 219, 70,
+ 42, 118, 209, 36, 231, 10, 219, 149, 1, 251, 28, 231, 10, 219, 149, 1,
+ 248, 105, 231, 10, 219, 149, 1, 238, 67, 231, 10, 219, 149, 1, 244, 177,
+ 231, 10, 219, 149, 1, 237, 67, 231, 10, 219, 149, 1, 204, 69, 231, 10,
+ 219, 149, 1, 202, 95, 231, 10, 219, 149, 1, 237, 19, 231, 10, 219, 149,
+ 1, 209, 128, 231, 10, 219, 149, 1, 202, 235, 231, 10, 219, 149, 1, 229,
+ 250, 231, 10, 219, 149, 1, 228, 19, 231, 10, 219, 149, 1, 224, 246, 231,
+ 10, 219, 149, 1, 221, 40, 231, 10, 219, 149, 1, 214, 249, 231, 10, 219,
+ 149, 1, 219, 34, 231, 10, 219, 149, 1, 215, 26, 231, 10, 219, 149, 1,
+ 212, 255, 231, 10, 219, 149, 1, 209, 201, 231, 10, 219, 149, 42, 105,
+ 231, 10, 219, 149, 42, 108, 231, 10, 219, 149, 42, 147, 231, 10, 219,
+ 149, 42, 149, 231, 10, 219, 149, 42, 209, 152, 231, 10, 219, 149, 42,
+ 207, 151, 231, 10, 219, 149, 42, 118, 236, 11, 231, 10, 219, 149, 42,
+ 118, 209, 36, 217, 203, 219, 149, 1, 251, 28, 217, 203, 219, 149, 1, 248,
+ 105, 217, 203, 219, 149, 1, 238, 67, 217, 203, 219, 149, 1, 244, 177,
+ 217, 203, 219, 149, 1, 237, 67, 217, 203, 219, 149, 1, 204, 69, 217, 203,
+ 219, 149, 1, 202, 95, 217, 203, 219, 149, 1, 237, 19, 217, 203, 219, 149,
+ 1, 202, 235, 217, 203, 219, 149, 1, 229, 250, 217, 203, 219, 149, 1, 228,
+ 19, 217, 203, 219, 149, 1, 224, 246, 217, 203, 219, 149, 1, 221, 40, 217,
+ 203, 219, 149, 1, 214, 249, 217, 203, 219, 149, 1, 219, 34, 217, 203,
+ 219, 149, 1, 215, 26, 217, 203, 219, 149, 1, 212, 255, 217, 203, 219,
+ 149, 1, 209, 201, 217, 203, 219, 149, 214, 168, 82, 217, 203, 219, 149,
+ 207, 174, 214, 168, 82, 217, 203, 219, 149, 239, 147, 187, 3, 245, 130,
+ 217, 203, 219, 149, 239, 147, 187, 3, 243, 85, 217, 203, 219, 149, 42,
+ 105, 217, 203, 219, 149, 42, 108, 217, 203, 219, 149, 42, 147, 217, 203,
+ 219, 149, 42, 149, 217, 203, 219, 149, 42, 209, 152, 217, 203, 219, 149,
+ 42, 207, 151, 217, 203, 219, 149, 42, 118, 236, 11, 38, 207, 178, 1, 219,
+ 235, 63, 38, 207, 178, 1, 203, 40, 63, 38, 207, 178, 1, 203, 40, 251,
+ 109, 38, 207, 178, 1, 219, 235, 75, 38, 207, 178, 1, 203, 40, 75, 38,
+ 207, 178, 1, 203, 40, 74, 38, 207, 178, 1, 219, 235, 78, 38, 207, 178, 1,
+ 219, 235, 220, 73, 38, 207, 178, 1, 203, 40, 220, 73, 38, 207, 178, 1,
+ 219, 235, 251, 232, 38, 207, 178, 1, 203, 40, 251, 232, 38, 207, 178, 1,
+ 219, 235, 251, 108, 38, 207, 178, 1, 203, 40, 251, 108, 38, 207, 178, 1,
+ 219, 235, 251, 81, 38, 207, 178, 1, 203, 40, 251, 81, 38, 207, 178, 1,
+ 219, 235, 251, 103, 38, 207, 178, 1, 203, 40, 251, 103, 38, 207, 178, 1,
+ 219, 235, 251, 122, 38, 207, 178, 1, 203, 40, 251, 122, 38, 207, 178, 1,
+ 219, 235, 251, 107, 38, 207, 178, 1, 219, 235, 240, 181, 38, 207, 178, 1,
+ 203, 40, 240, 181, 38, 207, 178, 1, 219, 235, 250, 8, 38, 207, 178, 1,
+ 203, 40, 250, 8, 38, 207, 178, 1, 219, 235, 251, 90, 38, 207, 178, 1,
+ 203, 40, 251, 90, 38, 207, 178, 1, 219, 235, 251, 101, 38, 207, 178, 1,
+ 203, 40, 251, 101, 38, 207, 178, 1, 219, 235, 220, 71, 38, 207, 178, 1,
+ 203, 40, 220, 71, 38, 207, 178, 1, 219, 235, 251, 39, 38, 207, 178, 1,
+ 203, 40, 251, 39, 38, 207, 178, 1, 219, 235, 251, 100, 38, 207, 178, 1,
+ 219, 235, 241, 106, 38, 207, 178, 1, 219, 235, 241, 103, 38, 207, 178, 1,
+ 219, 235, 250, 231, 38, 207, 178, 1, 219, 235, 251, 98, 38, 207, 178, 1,
+ 203, 40, 251, 98, 38, 207, 178, 1, 219, 235, 241, 70, 38, 207, 178, 1,
+ 203, 40, 241, 70, 38, 207, 178, 1, 219, 235, 241, 89, 38, 207, 178, 1,
+ 203, 40, 241, 89, 38, 207, 178, 1, 219, 235, 241, 56, 38, 207, 178, 1,
+ 203, 40, 241, 56, 38, 207, 178, 1, 203, 40, 250, 223, 38, 207, 178, 1,
+ 219, 235, 241, 78, 38, 207, 178, 1, 203, 40, 251, 97, 38, 207, 178, 1,
+ 219, 235, 241, 46, 38, 207, 178, 1, 219, 235, 220, 9, 38, 207, 178, 1,
+ 219, 235, 235, 164, 38, 207, 178, 1, 219, 235, 241, 169, 38, 207, 178, 1,
+ 203, 40, 241, 169, 38, 207, 178, 1, 219, 235, 250, 148, 38, 207, 178, 1,
+ 203, 40, 250, 148, 38, 207, 178, 1, 219, 235, 230, 226, 38, 207, 178, 1,
+ 203, 40, 230, 226, 38, 207, 178, 1, 219, 235, 219, 246, 38, 207, 178, 1,
+ 203, 40, 219, 246, 38, 207, 178, 1, 219, 235, 250, 144, 38, 207, 178, 1,
+ 203, 40, 250, 144, 38, 207, 178, 1, 219, 235, 251, 96, 38, 207, 178, 1,
+ 219, 235, 250, 81, 38, 207, 178, 1, 219, 235, 251, 94, 38, 207, 178, 1,
+ 219, 235, 250, 75, 38, 207, 178, 1, 203, 40, 250, 75, 38, 207, 178, 1,
+ 219, 235, 241, 7, 38, 207, 178, 1, 203, 40, 241, 7, 38, 207, 178, 1, 219,
+ 235, 250, 49, 38, 207, 178, 1, 203, 40, 250, 49, 38, 207, 178, 1, 219,
+ 235, 251, 91, 38, 207, 178, 1, 203, 40, 251, 91, 38, 207, 178, 1, 219,
+ 235, 219, 224, 38, 207, 178, 1, 219, 235, 248, 215, 38, 145, 6, 1, 63,
+ 38, 145, 6, 1, 252, 25, 38, 145, 6, 1, 241, 171, 38, 145, 6, 1, 250, 242,
+ 38, 145, 6, 1, 241, 169, 38, 145, 6, 1, 241, 89, 38, 145, 6, 1, 241, 166,
+ 38, 145, 6, 1, 241, 165, 38, 145, 6, 1, 250, 226, 38, 145, 6, 1, 74, 38,
+ 145, 6, 1, 246, 17, 74, 38, 145, 6, 1, 241, 161, 38, 145, 6, 1, 241, 154,
+ 38, 145, 6, 1, 241, 153, 38, 145, 6, 1, 241, 150, 38, 145, 6, 1, 241,
+ 147, 38, 145, 6, 1, 75, 38, 145, 6, 1, 231, 83, 38, 145, 6, 1, 241, 132,
+ 38, 145, 6, 1, 241, 129, 38, 145, 6, 1, 251, 47, 38, 145, 6, 1, 206, 232,
+ 38, 145, 6, 1, 241, 122, 38, 145, 6, 1, 241, 105, 38, 145, 6, 1, 241,
+ 103, 38, 145, 6, 1, 241, 92, 38, 145, 6, 1, 241, 56, 38, 145, 6, 1, 78,
+ 38, 145, 6, 1, 220, 18, 38, 145, 6, 1, 222, 71, 220, 73, 38, 145, 6, 1,
+ 215, 141, 220, 73, 38, 145, 6, 1, 220, 72, 38, 145, 6, 1, 241, 46, 38,
+ 145, 6, 1, 241, 97, 38, 145, 6, 1, 241, 28, 38, 145, 6, 1, 212, 228, 241,
+ 28, 38, 145, 6, 1, 241, 17, 38, 145, 6, 1, 240, 252, 38, 145, 6, 1, 240,
+ 250, 38, 145, 6, 1, 241, 70, 38, 145, 6, 1, 240, 239, 38, 145, 6, 1, 241,
+ 167, 38, 145, 6, 1, 68, 38, 145, 6, 1, 206, 178, 38, 145, 6, 1, 222, 71,
+ 207, 24, 38, 145, 6, 1, 215, 141, 207, 24, 38, 145, 6, 1, 240, 226, 38,
+ 145, 6, 1, 240, 181, 38, 145, 6, 1, 240, 176, 38, 145, 6, 1, 241, 69, 54,
+ 38, 145, 6, 1, 206, 193, 38, 145, 5, 1, 63, 38, 145, 5, 1, 252, 25, 38,
+ 145, 5, 1, 241, 171, 38, 145, 5, 1, 250, 242, 38, 145, 5, 1, 241, 169,
+ 38, 145, 5, 1, 241, 89, 38, 145, 5, 1, 241, 166, 38, 145, 5, 1, 241, 165,
+ 38, 145, 5, 1, 250, 226, 38, 145, 5, 1, 74, 38, 145, 5, 1, 246, 17, 74,
+ 38, 145, 5, 1, 241, 161, 38, 145, 5, 1, 241, 154, 38, 145, 5, 1, 241,
+ 153, 38, 145, 5, 1, 241, 150, 38, 145, 5, 1, 241, 147, 38, 145, 5, 1, 75,
+ 38, 145, 5, 1, 231, 83, 38, 145, 5, 1, 241, 132, 38, 145, 5, 1, 241, 129,
+ 38, 145, 5, 1, 251, 47, 38, 145, 5, 1, 206, 232, 38, 145, 5, 1, 241, 122,
+ 38, 145, 5, 1, 241, 105, 38, 145, 5, 1, 241, 103, 38, 145, 5, 1, 241, 92,
+ 38, 145, 5, 1, 241, 56, 38, 145, 5, 1, 78, 38, 145, 5, 1, 220, 18, 38,
+ 145, 5, 1, 222, 71, 220, 73, 38, 145, 5, 1, 215, 141, 220, 73, 38, 145,
+ 5, 1, 220, 72, 38, 145, 5, 1, 241, 46, 38, 145, 5, 1, 241, 97, 38, 145,
+ 5, 1, 241, 28, 38, 145, 5, 1, 212, 228, 241, 28, 38, 145, 5, 1, 241, 17,
+ 38, 145, 5, 1, 240, 252, 38, 145, 5, 1, 240, 250, 38, 145, 5, 1, 241, 70,
+ 38, 145, 5, 1, 240, 239, 38, 145, 5, 1, 241, 167, 38, 145, 5, 1, 68, 38,
+ 145, 5, 1, 206, 178, 38, 145, 5, 1, 222, 71, 207, 24, 38, 145, 5, 1, 215,
+ 141, 207, 24, 38, 145, 5, 1, 240, 226, 38, 145, 5, 1, 240, 181, 38, 145,
+ 5, 1, 240, 176, 38, 145, 5, 1, 241, 69, 54, 38, 145, 5, 1, 206, 193, 38,
+ 145, 42, 105, 38, 145, 42, 170, 38, 145, 42, 209, 152, 38, 145, 42, 240,
+ 18, 38, 145, 42, 118, 236, 11, 38, 145, 42, 118, 209, 36, 215, 129, 17,
+ 105, 215, 129, 17, 108, 215, 129, 17, 147, 215, 129, 17, 149, 215, 129,
+ 17, 170, 215, 129, 17, 195, 215, 129, 17, 213, 111, 215, 129, 17, 199,
+ 215, 129, 17, 222, 63, 215, 129, 42, 209, 152, 215, 129, 42, 207, 151,
+ 215, 129, 42, 209, 53, 215, 129, 42, 239, 153, 215, 129, 42, 240, 18,
+ 215, 129, 42, 212, 74, 215, 129, 42, 213, 105, 215, 129, 42, 241, 134,
+ 215, 129, 42, 222, 58, 215, 129, 42, 118, 236, 11, 215, 129, 42, 120,
+ 236, 11, 215, 129, 42, 126, 236, 11, 215, 129, 42, 239, 147, 236, 11,
+ 215, 129, 42, 239, 233, 236, 11, 215, 129, 42, 212, 88, 236, 11, 215,
+ 129, 42, 213, 112, 236, 11, 215, 129, 42, 241, 143, 236, 11, 215, 129,
+ 42, 222, 64, 236, 11, 215, 129, 239, 138, 118, 237, 137, 215, 129, 239,
+ 138, 118, 217, 55, 215, 129, 239, 138, 118, 209, 60, 215, 129, 239, 138,
+ 120, 209, 57, 144, 2, 247, 52, 144, 2, 250, 180, 144, 2, 205, 199, 144,
+ 2, 230, 135, 144, 2, 206, 222, 144, 1, 63, 144, 1, 252, 25, 144, 1, 75,
+ 144, 1, 231, 83, 144, 1, 68, 144, 1, 206, 178, 144, 1, 125, 146, 144, 1,
+ 125, 215, 186, 144, 1, 125, 159, 144, 1, 125, 227, 78, 144, 1, 74, 144,
+ 1, 251, 64, 144, 1, 78, 144, 1, 250, 34, 144, 1, 173, 144, 1, 229, 144,
+ 144, 1, 239, 8, 144, 1, 238, 119, 144, 1, 222, 203, 144, 1, 247, 92, 144,
+ 1, 246, 199, 144, 1, 230, 181, 144, 1, 230, 149, 144, 1, 221, 11, 144, 1,
+ 207, 241, 144, 1, 207, 229, 144, 1, 244, 120, 144, 1, 244, 104, 144, 1,
+ 221, 227, 144, 1, 210, 22, 144, 1, 209, 108, 144, 1, 244, 212, 144, 1,
+ 244, 1, 144, 1, 201, 201, 144, 1, 185, 144, 1, 218, 208, 144, 1, 249, 32,
+ 144, 1, 248, 98, 144, 1, 192, 144, 1, 198, 144, 1, 216, 220, 144, 1, 228,
+ 113, 144, 1, 206, 86, 144, 1, 213, 90, 144, 1, 211, 164, 144, 1, 215, 36,
+ 144, 1, 152, 144, 1, 227, 77, 144, 1, 38, 44, 227, 68, 144, 1, 38, 44,
+ 215, 185, 144, 1, 38, 44, 221, 209, 144, 22, 2, 252, 25, 144, 22, 2, 248,
+ 95, 252, 25, 144, 22, 2, 75, 144, 22, 2, 231, 83, 144, 22, 2, 68, 144,
+ 22, 2, 206, 178, 144, 22, 2, 125, 146, 144, 22, 2, 125, 215, 186, 144,
+ 22, 2, 125, 159, 144, 22, 2, 125, 227, 78, 144, 22, 2, 74, 144, 22, 2,
+ 251, 64, 144, 22, 2, 78, 144, 22, 2, 250, 34, 144, 205, 204, 144, 244,
+ 166, 144, 52, 244, 166, 144, 217, 179, 243, 85, 144, 217, 179, 52, 243,
+ 85, 144, 217, 179, 227, 114, 144, 217, 179, 245, 139, 142, 144, 217, 179,
+ 227, 5, 144, 42, 105, 144, 42, 108, 144, 42, 147, 144, 42, 149, 144, 42,
+ 170, 144, 42, 195, 144, 42, 213, 111, 144, 42, 199, 144, 42, 222, 63,
+ 144, 42, 209, 152, 144, 42, 207, 151, 144, 42, 209, 53, 144, 42, 239,
+ 153, 144, 42, 240, 18, 144, 42, 212, 74, 144, 42, 213, 105, 144, 42, 241,
+ 134, 144, 42, 222, 58, 144, 42, 118, 236, 11, 144, 42, 118, 209, 36, 144,
+ 17, 202, 84, 144, 17, 105, 144, 17, 108, 144, 17, 147, 144, 17, 149, 144,
+ 17, 170, 144, 17, 195, 144, 17, 213, 111, 144, 17, 199, 144, 17, 222, 63,
+ 144, 42, 230, 96, 230, 15, 2, 247, 52, 230, 15, 2, 250, 180, 230, 15, 2,
+ 205, 199, 230, 15, 1, 63, 230, 15, 1, 252, 25, 230, 15, 1, 75, 230, 15,
+ 1, 231, 83, 230, 15, 1, 68, 230, 15, 1, 206, 178, 230, 15, 1, 74, 230,
+ 15, 1, 251, 64, 230, 15, 1, 78, 230, 15, 1, 250, 34, 230, 15, 1, 173,
+ 230, 15, 1, 229, 144, 230, 15, 1, 239, 8, 230, 15, 1, 238, 119, 230, 15,
+ 1, 222, 203, 230, 15, 1, 247, 92, 230, 15, 1, 246, 199, 230, 15, 1, 230,
+ 181, 230, 15, 1, 230, 149, 230, 15, 1, 221, 11, 230, 15, 1, 207, 241,
+ 230, 15, 1, 207, 229, 230, 15, 1, 244, 120, 230, 15, 1, 244, 109, 230,
+ 15, 1, 244, 104, 230, 15, 1, 216, 61, 230, 15, 1, 221, 227, 230, 15, 1,
+ 210, 22, 230, 15, 1, 209, 108, 230, 15, 1, 244, 212, 230, 15, 1, 244, 1,
+ 230, 15, 1, 201, 201, 230, 15, 1, 185, 230, 15, 1, 218, 208, 230, 15, 1,
+ 249, 32, 230, 15, 1, 248, 98, 230, 15, 1, 192, 230, 15, 1, 198, 230, 15,
+ 1, 216, 220, 230, 15, 1, 228, 113, 230, 15, 1, 206, 86, 230, 15, 1, 213,
+ 90, 230, 15, 1, 211, 164, 230, 15, 1, 215, 36, 230, 15, 1, 152, 230, 15,
+ 22, 2, 252, 25, 230, 15, 22, 2, 75, 230, 15, 22, 2, 231, 83, 230, 15, 22,
+ 2, 68, 230, 15, 22, 2, 206, 178, 230, 15, 22, 2, 74, 230, 15, 22, 2, 251,
+ 64, 230, 15, 22, 2, 78, 230, 15, 22, 2, 250, 34, 230, 15, 2, 205, 204,
+ 230, 15, 2, 221, 51, 230, 15, 251, 146, 54, 230, 15, 241, 59, 54, 230,
+ 15, 42, 54, 230, 15, 214, 168, 82, 230, 15, 52, 214, 168, 82, 230, 15,
+ 244, 166, 230, 15, 52, 244, 166, 211, 246, 211, 254, 1, 215, 19, 211,
+ 246, 211, 254, 1, 209, 251, 211, 246, 211, 254, 1, 249, 5, 211, 246, 211,
+ 254, 1, 247, 81, 211, 246, 211, 254, 1, 244, 193, 211, 246, 211, 254, 1,
+ 238, 249, 211, 246, 211, 254, 1, 225, 148, 211, 246, 211, 254, 1, 222,
+ 200, 211, 246, 211, 254, 1, 228, 89, 211, 246, 211, 254, 1, 223, 93, 211,
+ 246, 211, 254, 1, 206, 82, 211, 246, 211, 254, 1, 219, 150, 211, 246,
+ 211, 254, 1, 203, 91, 211, 246, 211, 254, 1, 216, 199, 211, 246, 211,
+ 254, 1, 237, 148, 211, 246, 211, 254, 1, 230, 20, 211, 246, 211, 254, 1,
+ 230, 175, 211, 246, 211, 254, 1, 221, 8, 211, 246, 211, 254, 1, 251, 73,
+ 211, 246, 211, 254, 1, 241, 159, 211, 246, 211, 254, 1, 231, 84, 211,
+ 246, 211, 254, 1, 207, 18, 211, 246, 211, 254, 1, 220, 60, 211, 246, 211,
+ 254, 1, 241, 147, 211, 246, 211, 254, 1, 225, 161, 211, 246, 211, 254,
+ 17, 202, 84, 211, 246, 211, 254, 17, 105, 211, 246, 211, 254, 17, 108,
+ 211, 246, 211, 254, 17, 147, 211, 246, 211, 254, 17, 149, 211, 246, 211,
+ 254, 17, 170, 211, 246, 211, 254, 17, 195, 211, 246, 211, 254, 17, 213,
+ 111, 211, 246, 211, 254, 17, 199, 211, 246, 211, 254, 17, 222, 63, 246,
+ 193, 2, 247, 52, 246, 193, 2, 250, 180, 246, 193, 2, 205, 199, 246, 193,
+ 1, 252, 25, 246, 193, 1, 75, 246, 193, 1, 68, 246, 193, 1, 74, 246, 193,
+ 1, 230, 41, 246, 193, 1, 229, 143, 246, 193, 1, 239, 5, 246, 193, 1, 238,
+ 118, 246, 193, 1, 222, 202, 246, 193, 1, 247, 91, 246, 193, 1, 246, 198,
+ 246, 193, 1, 230, 180, 246, 193, 1, 230, 148, 246, 193, 1, 221, 10, 246,
+ 193, 1, 207, 240, 246, 193, 1, 207, 228, 246, 193, 1, 244, 119, 246, 193,
+ 1, 244, 103, 246, 193, 1, 221, 226, 246, 193, 1, 210, 18, 246, 193, 1,
+ 209, 107, 246, 193, 1, 244, 211, 246, 193, 1, 244, 0, 246, 193, 1, 223,
+ 106, 246, 193, 1, 219, 168, 246, 193, 1, 218, 207, 246, 193, 1, 249, 30,
+ 246, 193, 1, 248, 97, 246, 193, 1, 225, 175, 246, 193, 1, 202, 167, 246,
+ 193, 1, 203, 110, 246, 193, 1, 216, 216, 246, 193, 1, 228, 112, 246, 193,
+ 1, 204, 110, 246, 193, 1, 215, 33, 246, 193, 1, 237, 157, 246, 193, 22,
+ 2, 63, 246, 193, 22, 2, 75, 246, 193, 22, 2, 231, 83, 246, 193, 22, 2,
+ 68, 246, 193, 22, 2, 206, 178, 246, 193, 22, 2, 74, 246, 193, 22, 2, 251,
+ 64, 246, 193, 22, 2, 78, 246, 193, 22, 2, 250, 34, 246, 193, 22, 2, 220,
+ 57, 246, 193, 158, 82, 246, 193, 250, 35, 82, 246, 193, 205, 204, 246,
+ 193, 225, 173, 246, 193, 17, 202, 84, 246, 193, 17, 105, 246, 193, 17,
+ 108, 246, 193, 17, 147, 246, 193, 17, 149, 246, 193, 17, 170, 246, 193,
+ 17, 195, 246, 193, 17, 213, 111, 246, 193, 17, 199, 246, 193, 17, 222,
+ 63, 246, 193, 214, 168, 82, 246, 193, 244, 166, 246, 193, 52, 244, 166,
+ 246, 193, 217, 47, 82, 225, 146, 1, 63, 225, 146, 1, 75, 225, 146, 1, 68,
+ 225, 146, 1, 74, 225, 146, 1, 78, 225, 146, 1, 173, 225, 146, 1, 229,
+ 144, 225, 146, 1, 239, 8, 225, 146, 1, 238, 119, 225, 146, 1, 247, 92,
+ 225, 146, 1, 246, 199, 225, 146, 1, 230, 181, 225, 146, 1, 230, 149, 225,
+ 146, 1, 221, 11, 225, 146, 1, 207, 241, 225, 146, 1, 207, 229, 225, 146,
+ 1, 244, 120, 225, 146, 1, 244, 104, 225, 146, 1, 221, 227, 225, 146, 1,
+ 210, 22, 225, 146, 1, 209, 108, 225, 146, 1, 244, 212, 225, 146, 1, 244,
+ 1, 225, 146, 1, 201, 201, 225, 146, 1, 185, 225, 146, 1, 218, 208, 225,
+ 146, 1, 249, 32, 225, 146, 1, 248, 98, 225, 146, 1, 192, 225, 146, 1,
+ 216, 220, 225, 146, 1, 228, 113, 225, 146, 1, 206, 86, 225, 146, 1, 215,
+ 36, 225, 146, 1, 152, 225, 146, 1, 215, 185, 225, 146, 2, 221, 51, 225,
+ 146, 251, 146, 54, 225, 146, 214, 168, 82, 225, 146, 32, 212, 206, 181,
+ 2, 247, 52, 181, 2, 250, 180, 181, 2, 205, 199, 181, 1, 63, 181, 1, 252,
+ 25, 181, 1, 75, 181, 1, 231, 83, 181, 1, 68, 181, 1, 206, 178, 181, 1,
+ 125, 146, 181, 1, 125, 215, 186, 181, 1, 125, 159, 181, 1, 125, 227, 78,
+ 181, 1, 74, 181, 1, 251, 64, 181, 1, 78, 181, 1, 250, 34, 181, 1, 173,
+ 181, 1, 229, 144, 181, 1, 239, 8, 181, 1, 238, 119, 181, 1, 222, 203,
+ 181, 1, 247, 92, 181, 1, 246, 199, 181, 1, 230, 181, 181, 1, 230, 149,
+ 181, 1, 221, 11, 181, 1, 207, 241, 181, 1, 207, 229, 181, 1, 244, 120,
+ 181, 1, 244, 104, 181, 1, 221, 227, 181, 1, 210, 22, 181, 1, 209, 108,
+ 181, 1, 244, 212, 181, 1, 244, 1, 181, 1, 201, 201, 181, 1, 185, 181, 1,
+ 218, 208, 181, 1, 249, 32, 181, 1, 248, 98, 181, 1, 192, 181, 1, 198,
+ 181, 1, 216, 220, 181, 1, 228, 113, 181, 1, 227, 77, 181, 1, 206, 86,
+ 181, 1, 213, 90, 181, 1, 211, 164, 181, 1, 215, 36, 181, 1, 152, 181, 22,
+ 2, 252, 25, 181, 22, 2, 75, 181, 22, 2, 231, 83, 181, 22, 2, 68, 181, 22,
+ 2, 206, 178, 181, 22, 2, 125, 146, 181, 22, 2, 125, 215, 186, 181, 22, 2,
+ 125, 159, 181, 22, 2, 125, 227, 78, 181, 22, 2, 74, 181, 22, 2, 251, 64,
+ 181, 22, 2, 78, 181, 22, 2, 250, 34, 181, 2, 205, 204, 181, 2, 250, 17,
+ 181, 2, 230, 135, 181, 2, 206, 222, 181, 220, 39, 181, 244, 166, 181, 52,
+ 244, 166, 181, 251, 146, 54, 181, 213, 130, 181, 214, 239, 82, 181, 2,
+ 221, 51, 181, 22, 65, 82, 181, 240, 199, 212, 228, 22, 82, 181, 210, 180,
+ 82, 181, 17, 202, 84, 181, 17, 105, 181, 17, 108, 181, 17, 147, 181, 17,
+ 149, 181, 17, 170, 181, 17, 195, 181, 17, 213, 111, 181, 17, 199, 181,
+ 17, 222, 63, 181, 241, 128, 181, 2, 212, 157, 181, 237, 58, 181, 245,
+ 191, 54, 181, 214, 168, 225, 92, 181, 214, 168, 225, 91, 140, 250, 126,
+ 17, 105, 140, 250, 126, 17, 108, 140, 250, 126, 17, 147, 140, 250, 126,
+ 17, 149, 140, 250, 126, 17, 170, 140, 250, 126, 17, 195, 140, 250, 126,
+ 17, 213, 111, 140, 250, 126, 17, 199, 140, 250, 126, 17, 222, 63, 140,
+ 250, 126, 42, 209, 152, 140, 250, 126, 42, 207, 151, 140, 250, 126, 42,
+ 209, 53, 140, 250, 126, 42, 239, 153, 140, 250, 126, 42, 240, 18, 140,
+ 250, 126, 42, 212, 74, 140, 250, 126, 42, 213, 105, 140, 250, 126, 42,
+ 241, 134, 140, 250, 126, 42, 222, 58, 140, 250, 126, 42, 118, 236, 11,
+ 140, 250, 126, 42, 118, 209, 36, 229, 114, 1, 63, 229, 114, 1, 252, 25,
+ 229, 114, 1, 75, 229, 114, 1, 68, 229, 114, 1, 74, 229, 114, 1, 251, 64,
+ 229, 114, 1, 78, 229, 114, 1, 250, 34, 229, 114, 1, 173, 229, 114, 1,
+ 229, 144, 229, 114, 1, 239, 8, 229, 114, 1, 238, 155, 229, 114, 1, 238,
+ 119, 229, 114, 1, 222, 203, 229, 114, 1, 247, 92, 229, 114, 1, 246, 199,
+ 229, 114, 1, 230, 181, 229, 114, 1, 230, 129, 229, 114, 1, 221, 11, 229,
+ 114, 1, 207, 241, 229, 114, 1, 207, 229, 229, 114, 1, 244, 120, 229, 114,
+ 1, 244, 104, 229, 114, 1, 221, 227, 229, 114, 1, 210, 22, 229, 114, 1,
+ 209, 108, 229, 114, 1, 244, 212, 229, 114, 1, 244, 110, 229, 114, 1, 244,
+ 1, 229, 114, 1, 201, 201, 229, 114, 1, 185, 229, 114, 1, 218, 208, 229,
+ 114, 1, 249, 32, 229, 114, 1, 248, 198, 229, 114, 1, 248, 98, 229, 114,
+ 1, 192, 229, 114, 1, 198, 229, 114, 1, 216, 220, 229, 114, 1, 228, 113,
+ 229, 114, 1, 206, 86, 229, 114, 1, 215, 36, 229, 114, 1, 152, 229, 114,
+ 1, 227, 77, 229, 114, 22, 2, 252, 25, 229, 114, 22, 2, 75, 229, 114, 22,
+ 2, 231, 83, 229, 114, 22, 2, 68, 229, 114, 22, 2, 74, 229, 114, 22, 2,
+ 251, 64, 229, 114, 22, 2, 78, 229, 114, 22, 2, 250, 34, 229, 114, 2, 250,
+ 180, 229, 114, 2, 205, 204, 229, 114, 2, 221, 51, 229, 114, 2, 213, 80,
+ 229, 114, 244, 166, 229, 114, 52, 244, 166, 229, 114, 203, 238, 213, 130,
+ 229, 114, 214, 168, 82, 229, 114, 52, 214, 168, 82, 229, 114, 251, 146,
+ 54, 223, 230, 1, 63, 223, 230, 1, 75, 223, 230, 1, 68, 223, 230, 1, 74,
+ 223, 230, 1, 173, 223, 230, 1, 229, 144, 223, 230, 1, 239, 8, 223, 230,
+ 1, 238, 119, 223, 230, 1, 247, 92, 223, 230, 1, 246, 199, 223, 230, 1,
+ 230, 181, 223, 230, 1, 230, 129, 223, 230, 1, 221, 11, 223, 230, 1, 207,
+ 241, 223, 230, 1, 207, 229, 223, 230, 1, 244, 120, 223, 230, 1, 244, 110,
+ 223, 230, 1, 244, 104, 223, 230, 1, 221, 227, 223, 230, 1, 210, 22, 223,
+ 230, 1, 209, 108, 223, 230, 1, 244, 212, 223, 230, 1, 244, 1, 223, 230,
+ 1, 201, 201, 223, 230, 1, 185, 223, 230, 1, 218, 208, 223, 230, 1, 249,
+ 32, 223, 230, 1, 248, 98, 223, 230, 1, 192, 223, 230, 1, 198, 223, 230,
+ 1, 216, 220, 223, 230, 1, 228, 113, 223, 230, 1, 206, 86, 223, 230, 1,
+ 215, 36, 223, 230, 1, 152, 223, 230, 1, 215, 185, 223, 230, 1, 216, 61,
+ 223, 230, 214, 168, 82, 229, 106, 1, 63, 229, 106, 1, 252, 25, 229, 106,
+ 1, 75, 229, 106, 1, 231, 83, 229, 106, 1, 68, 229, 106, 1, 206, 178, 229,
+ 106, 1, 74, 229, 106, 1, 251, 64, 229, 106, 1, 78, 229, 106, 1, 250, 34,
+ 229, 106, 1, 173, 229, 106, 1, 229, 144, 229, 106, 1, 239, 8, 229, 106,
+ 1, 238, 155, 229, 106, 1, 238, 119, 229, 106, 1, 222, 203, 229, 106, 1,
+ 247, 92, 229, 106, 1, 246, 199, 229, 106, 1, 230, 181, 229, 106, 1, 230,
+ 129, 229, 106, 1, 230, 149, 229, 106, 1, 221, 11, 229, 106, 1, 207, 241,
+ 229, 106, 1, 207, 229, 229, 106, 1, 244, 120, 229, 106, 1, 244, 110, 229,
+ 106, 1, 215, 185, 229, 106, 1, 244, 104, 229, 106, 1, 221, 227, 229, 106,
+ 1, 210, 22, 229, 106, 1, 209, 108, 229, 106, 1, 244, 212, 229, 106, 1,
+ 244, 1, 229, 106, 1, 201, 201, 229, 106, 1, 185, 229, 106, 1, 218, 208,
+ 229, 106, 1, 249, 32, 229, 106, 1, 248, 198, 229, 106, 1, 248, 98, 229,
+ 106, 1, 192, 229, 106, 1, 198, 229, 106, 1, 216, 220, 229, 106, 1, 228,
+ 113, 229, 106, 1, 206, 86, 229, 106, 1, 213, 90, 229, 106, 1, 215, 36,
+ 229, 106, 1, 152, 229, 106, 2, 250, 180, 229, 106, 22, 2, 252, 25, 229,
+ 106, 22, 2, 75, 229, 106, 22, 2, 231, 83, 229, 106, 22, 2, 68, 229, 106,
+ 22, 2, 206, 178, 229, 106, 22, 2, 74, 229, 106, 22, 2, 251, 64, 229, 106,
+ 22, 2, 78, 229, 106, 22, 2, 250, 34, 229, 106, 2, 221, 51, 229, 106, 2,
+ 205, 204, 229, 106, 17, 202, 84, 229, 106, 17, 105, 229, 106, 17, 108,
+ 229, 106, 17, 147, 229, 106, 17, 149, 229, 106, 17, 170, 229, 106, 17,
+ 195, 229, 106, 17, 213, 111, 229, 106, 17, 199, 229, 106, 17, 222, 63,
+ 238, 6, 2, 39, 250, 181, 55, 238, 6, 2, 247, 52, 238, 6, 2, 250, 180,
+ 238, 6, 2, 205, 199, 238, 6, 1, 63, 238, 6, 1, 252, 25, 238, 6, 1, 75,
+ 238, 6, 1, 231, 83, 238, 6, 1, 68, 238, 6, 1, 206, 178, 238, 6, 1, 125,
+ 146, 238, 6, 1, 125, 159, 238, 6, 1, 241, 161, 238, 6, 1, 251, 64, 238,
+ 6, 1, 220, 18, 238, 6, 1, 250, 34, 238, 6, 1, 173, 238, 6, 1, 229, 144,
+ 238, 6, 1, 239, 8, 238, 6, 1, 238, 119, 238, 6, 1, 222, 203, 238, 6, 1,
+ 247, 92, 238, 6, 1, 246, 199, 238, 6, 1, 230, 181, 238, 6, 1, 230, 149,
+ 238, 6, 1, 221, 11, 238, 6, 1, 207, 241, 238, 6, 1, 207, 229, 238, 6, 1,
+ 244, 120, 238, 6, 1, 244, 104, 238, 6, 1, 221, 227, 238, 6, 1, 210, 22,
+ 238, 6, 1, 209, 108, 238, 6, 1, 244, 212, 238, 6, 1, 244, 1, 238, 6, 1,
+ 201, 201, 238, 6, 1, 185, 238, 6, 1, 218, 208, 238, 6, 1, 249, 32, 238,
+ 6, 1, 248, 98, 238, 6, 1, 192, 238, 6, 1, 198, 238, 6, 1, 216, 220, 238,
+ 6, 1, 228, 113, 238, 6, 1, 227, 77, 238, 6, 1, 206, 86, 238, 6, 1, 213,
+ 90, 238, 6, 1, 211, 164, 238, 6, 1, 215, 36, 238, 6, 1, 152, 238, 6, 2,
+ 221, 51, 238, 6, 2, 250, 17, 238, 6, 22, 2, 252, 25, 238, 6, 22, 2, 75,
+ 238, 6, 22, 2, 231, 83, 238, 6, 22, 2, 68, 238, 6, 22, 2, 206, 178, 238,
+ 6, 22, 2, 125, 146, 238, 6, 22, 2, 125, 215, 186, 238, 6, 22, 2, 241,
+ 161, 238, 6, 22, 2, 251, 64, 238, 6, 22, 2, 220, 18, 238, 6, 22, 2, 250,
+ 34, 238, 6, 2, 205, 204, 238, 6, 220, 39, 238, 6, 250, 35, 227, 196, 82,
+ 238, 6, 2, 218, 74, 238, 6, 1, 206, 52, 250, 180, 238, 6, 1, 206, 52, 52,
+ 250, 180, 238, 6, 1, 125, 215, 186, 238, 6, 1, 125, 227, 78, 238, 6, 22,
+ 2, 125, 159, 238, 6, 22, 2, 125, 227, 78, 39, 238, 6, 17, 202, 84, 39,
+ 238, 6, 17, 105, 39, 238, 6, 17, 108, 39, 238, 6, 17, 147, 39, 238, 6,
+ 17, 149, 39, 238, 6, 17, 170, 39, 238, 6, 17, 195, 39, 238, 6, 1, 63, 39,
+ 238, 6, 1, 173, 39, 238, 6, 1, 201, 201, 39, 238, 6, 1, 205, 230, 39,
+ 238, 6, 1, 185, 208, 204, 250, 209, 208, 204, 1, 63, 208, 204, 1, 252,
+ 25, 208, 204, 1, 75, 208, 204, 1, 231, 83, 208, 204, 1, 68, 208, 204, 1,
+ 206, 178, 208, 204, 1, 125, 146, 208, 204, 1, 125, 215, 186, 208, 204, 1,
+ 125, 159, 208, 204, 1, 125, 227, 78, 208, 204, 1, 74, 208, 204, 1, 251,
+ 64, 208, 204, 1, 78, 208, 204, 1, 250, 34, 208, 204, 1, 173, 208, 204, 1,
+ 229, 144, 208, 204, 1, 239, 8, 208, 204, 1, 238, 119, 208, 204, 1, 222,
+ 203, 208, 204, 1, 247, 92, 208, 204, 1, 246, 199, 208, 204, 1, 230, 181,
+ 208, 204, 1, 230, 149, 208, 204, 1, 221, 11, 208, 204, 1, 207, 241, 208,
+ 204, 1, 207, 229, 208, 204, 1, 244, 120, 208, 204, 1, 244, 104, 208, 204,
+ 1, 221, 227, 208, 204, 1, 210, 22, 208, 204, 1, 209, 108, 208, 204, 1,
+ 244, 212, 208, 204, 1, 244, 1, 208, 204, 1, 201, 201, 208, 204, 1, 185,
+ 208, 204, 1, 218, 208, 208, 204, 1, 249, 32, 208, 204, 1, 248, 98, 208,
+ 204, 1, 192, 208, 204, 1, 198, 208, 204, 1, 216, 220, 208, 204, 1, 228,
+ 113, 208, 204, 1, 206, 86, 208, 204, 1, 213, 90, 208, 204, 1, 211, 164,
+ 208, 204, 1, 215, 36, 208, 204, 1, 152, 208, 204, 22, 2, 252, 25, 208,
+ 204, 22, 2, 75, 208, 204, 22, 2, 231, 83, 208, 204, 22, 2, 68, 208, 204,
+ 22, 2, 206, 178, 208, 204, 22, 2, 125, 146, 208, 204, 22, 2, 125, 215,
+ 186, 208, 204, 22, 2, 125, 159, 208, 204, 22, 2, 125, 227, 78, 208, 204,
+ 22, 2, 74, 208, 204, 22, 2, 212, 228, 74, 208, 204, 22, 2, 251, 64, 208,
+ 204, 22, 2, 78, 208, 204, 22, 2, 212, 228, 78, 208, 204, 22, 2, 250, 34,
+ 208, 204, 2, 247, 52, 208, 204, 2, 250, 180, 208, 204, 2, 205, 199, 208,
+ 204, 2, 205, 204, 208, 204, 2, 221, 51, 208, 204, 2, 250, 17, 208, 204,
+ 237, 191, 208, 204, 251, 146, 54, 208, 204, 220, 39, 208, 204, 17, 202,
+ 84, 208, 204, 17, 105, 208, 204, 17, 108, 208, 204, 17, 147, 208, 204,
+ 17, 149, 208, 204, 17, 170, 208, 204, 17, 195, 208, 204, 17, 213, 111,
+ 208, 204, 17, 199, 208, 204, 17, 222, 63, 186, 1, 63, 186, 1, 252, 25,
+ 186, 1, 75, 186, 1, 231, 83, 186, 1, 68, 186, 1, 206, 178, 186, 1, 125,
+ 146, 186, 1, 125, 215, 186, 186, 1, 125, 159, 186, 1, 125, 227, 78, 186,
+ 1, 74, 186, 1, 251, 64, 186, 1, 78, 186, 1, 250, 34, 186, 1, 173, 186, 1,
+ 229, 144, 186, 1, 239, 8, 186, 1, 238, 119, 186, 1, 222, 203, 186, 1,
+ 247, 92, 186, 1, 246, 199, 186, 1, 230, 181, 186, 1, 230, 149, 186, 1,
+ 221, 11, 186, 1, 207, 241, 186, 1, 207, 229, 186, 1, 244, 120, 186, 1,
+ 244, 104, 186, 1, 221, 227, 186, 1, 210, 22, 186, 1, 209, 108, 186, 1,
+ 244, 212, 186, 1, 244, 1, 186, 1, 201, 201, 186, 1, 185, 186, 1, 218,
+ 208, 186, 1, 249, 32, 186, 1, 248, 98, 186, 1, 192, 186, 1, 198, 186, 1,
+ 216, 220, 186, 1, 228, 113, 186, 1, 206, 86, 186, 1, 213, 90, 186, 1,
+ 211, 164, 186, 1, 215, 36, 186, 1, 152, 186, 22, 2, 252, 25, 186, 22, 2,
+ 75, 186, 22, 2, 231, 83, 186, 22, 2, 68, 186, 22, 2, 206, 178, 186, 22,
+ 2, 125, 146, 186, 22, 2, 125, 215, 186, 186, 22, 2, 74, 186, 22, 2, 251,
+ 64, 186, 22, 2, 78, 186, 22, 2, 250, 34, 186, 2, 247, 52, 186, 2, 250,
+ 180, 186, 2, 205, 199, 186, 2, 205, 204, 186, 2, 221, 51, 186, 2, 212,
+ 157, 186, 244, 166, 186, 52, 244, 166, 186, 213, 131, 243, 85, 186, 213,
+ 131, 142, 186, 216, 98, 225, 92, 186, 216, 98, 225, 91, 186, 216, 98,
+ 225, 90, 186, 241, 84, 76, 209, 113, 82, 186, 214, 168, 131, 3, 208, 80,
+ 25, 207, 92, 219, 232, 186, 214, 168, 131, 3, 208, 80, 25, 242, 83, 245,
+ 137, 186, 214, 168, 131, 3, 216, 163, 25, 242, 83, 245, 137, 186, 214,
+ 168, 131, 3, 216, 163, 25, 242, 83, 52, 245, 137, 186, 214, 168, 131, 3,
+ 216, 163, 25, 242, 83, 208, 70, 245, 137, 186, 214, 168, 131, 52, 215,
+ 252, 186, 214, 168, 131, 52, 215, 253, 3, 216, 162, 186, 214, 168, 131,
+ 3, 52, 245, 137, 186, 214, 168, 131, 3, 208, 70, 245, 137, 186, 214, 168,
+ 131, 3, 217, 58, 245, 137, 186, 214, 168, 131, 3, 213, 128, 245, 137,
+ 186, 214, 168, 131, 3, 246, 59, 25, 216, 162, 186, 214, 168, 131, 3, 246,
+ 59, 25, 120, 241, 86, 186, 214, 168, 131, 3, 246, 59, 25, 239, 147, 241,
+ 86, 186, 1, 209, 32, 250, 255, 75, 186, 1, 207, 136, 250, 255, 75, 186,
+ 1, 207, 136, 250, 255, 231, 83, 186, 1, 250, 255, 68, 186, 22, 2, 250,
+ 255, 68, 186, 22, 2, 250, 255, 206, 178, 224, 74, 1, 63, 224, 74, 1, 252,
+ 25, 224, 74, 1, 75, 224, 74, 1, 231, 83, 224, 74, 1, 68, 224, 74, 1, 206,
+ 178, 224, 74, 1, 125, 146, 224, 74, 1, 125, 215, 186, 224, 74, 1, 125,
+ 159, 224, 74, 1, 125, 227, 78, 224, 74, 1, 74, 224, 74, 1, 251, 64, 224,
+ 74, 1, 78, 224, 74, 1, 250, 34, 224, 74, 1, 173, 224, 74, 1, 229, 144,
+ 224, 74, 1, 239, 8, 224, 74, 1, 238, 119, 224, 74, 1, 222, 203, 224, 74,
+ 1, 247, 92, 224, 74, 1, 246, 199, 224, 74, 1, 230, 181, 224, 74, 1, 230,
+ 149, 224, 74, 1, 221, 11, 224, 74, 1, 207, 241, 224, 74, 1, 207, 229,
+ 224, 74, 1, 244, 120, 224, 74, 1, 244, 104, 224, 74, 1, 221, 227, 224,
+ 74, 1, 210, 22, 224, 74, 1, 209, 108, 224, 74, 1, 244, 212, 224, 74, 1,
+ 244, 1, 224, 74, 1, 201, 201, 224, 74, 1, 185, 224, 74, 1, 218, 208, 224,
+ 74, 1, 249, 32, 224, 74, 1, 248, 98, 224, 74, 1, 192, 224, 74, 1, 198,
+ 224, 74, 1, 216, 220, 224, 74, 1, 228, 113, 224, 74, 1, 206, 86, 224, 74,
+ 1, 213, 90, 224, 74, 1, 211, 164, 224, 74, 1, 215, 36, 224, 74, 1, 152,
+ 224, 74, 1, 227, 77, 224, 74, 22, 2, 252, 25, 224, 74, 22, 2, 75, 224,
+ 74, 22, 2, 231, 83, 224, 74, 22, 2, 68, 224, 74, 22, 2, 206, 178, 224,
+ 74, 22, 2, 125, 146, 224, 74, 22, 2, 125, 215, 186, 224, 74, 22, 2, 125,
+ 159, 224, 74, 22, 2, 125, 227, 78, 224, 74, 22, 2, 74, 224, 74, 22, 2,
+ 251, 64, 224, 74, 22, 2, 78, 224, 74, 22, 2, 250, 34, 224, 74, 2, 250,
+ 180, 224, 74, 2, 205, 199, 224, 74, 2, 205, 204, 224, 74, 2, 250, 123,
+ 224, 74, 244, 166, 224, 74, 52, 244, 166, 224, 74, 251, 146, 54, 224, 74,
+ 2, 236, 0, 224, 74, 17, 202, 84, 224, 74, 17, 105, 224, 74, 17, 108, 224,
+ 74, 17, 147, 224, 74, 17, 149, 224, 74, 17, 170, 224, 74, 17, 195, 224,
+ 74, 17, 213, 111, 224, 74, 17, 199, 224, 74, 17, 222, 63, 209, 239, 1,
+ 63, 209, 239, 1, 252, 25, 209, 239, 1, 75, 209, 239, 1, 231, 83, 209,
+ 239, 1, 68, 209, 239, 1, 206, 178, 209, 239, 1, 74, 209, 239, 1, 251, 64,
+ 209, 239, 1, 78, 209, 239, 1, 250, 34, 209, 239, 1, 173, 209, 239, 1,
+ 229, 144, 209, 239, 1, 239, 8, 209, 239, 1, 238, 119, 209, 239, 1, 222,
+ 203, 209, 239, 1, 247, 92, 209, 239, 1, 246, 199, 209, 239, 1, 230, 181,
+ 209, 239, 1, 230, 149, 209, 239, 1, 221, 11, 209, 239, 1, 207, 241, 209,
+ 239, 1, 207, 229, 209, 239, 1, 244, 120, 209, 239, 1, 244, 104, 209, 239,
+ 1, 221, 227, 209, 239, 1, 210, 22, 209, 239, 1, 209, 108, 209, 239, 1,
+ 244, 212, 209, 239, 1, 244, 1, 209, 239, 1, 201, 201, 209, 239, 1, 185,
+ 209, 239, 1, 218, 208, 209, 239, 1, 249, 32, 209, 239, 1, 248, 98, 209,
+ 239, 1, 192, 209, 239, 1, 198, 209, 239, 1, 216, 220, 209, 239, 1, 228,
+ 113, 209, 239, 1, 206, 86, 209, 239, 1, 213, 90, 209, 239, 1, 215, 36,
+ 209, 239, 1, 152, 209, 239, 1, 215, 185, 209, 239, 2, 250, 180, 209, 239,
+ 2, 205, 199, 209, 239, 22, 2, 252, 25, 209, 239, 22, 2, 75, 209, 239, 22,
+ 2, 231, 83, 209, 239, 22, 2, 68, 209, 239, 22, 2, 206, 178, 209, 239, 22,
+ 2, 74, 209, 239, 22, 2, 251, 64, 209, 239, 22, 2, 78, 209, 239, 22, 2,
+ 250, 34, 209, 239, 2, 205, 204, 209, 239, 2, 221, 51, 209, 239, 17, 202,
+ 84, 209, 239, 17, 105, 209, 239, 17, 108, 209, 239, 17, 147, 209, 239,
+ 17, 149, 209, 239, 17, 170, 209, 239, 17, 195, 209, 239, 17, 213, 111,
+ 209, 239, 17, 199, 209, 239, 17, 222, 63, 251, 68, 1, 173, 251, 68, 1,
+ 229, 144, 251, 68, 1, 222, 203, 251, 68, 1, 201, 201, 251, 68, 1, 210,
+ 22, 251, 68, 1, 250, 255, 210, 22, 251, 68, 1, 185, 251, 68, 1, 218, 208,
+ 251, 68, 1, 249, 32, 251, 68, 1, 192, 251, 68, 1, 230, 181, 251, 68, 1,
+ 246, 199, 251, 68, 1, 209, 108, 251, 68, 1, 216, 220, 251, 68, 1, 228,
+ 113, 251, 68, 1, 215, 36, 251, 68, 1, 221, 11, 251, 68, 1, 152, 251, 68,
+ 1, 63, 251, 68, 1, 244, 212, 251, 68, 1, 244, 1, 251, 68, 1, 239, 8, 251,
+ 68, 1, 250, 255, 239, 8, 251, 68, 1, 238, 119, 251, 68, 1, 248, 98, 251,
+ 68, 1, 230, 149, 251, 68, 109, 2, 174, 228, 113, 251, 68, 109, 2, 174,
+ 216, 220, 251, 68, 109, 2, 174, 227, 135, 216, 220, 251, 68, 22, 2, 63,
+ 251, 68, 22, 2, 252, 25, 251, 68, 22, 2, 75, 251, 68, 22, 2, 231, 83,
+ 251, 68, 22, 2, 68, 251, 68, 22, 2, 206, 178, 251, 68, 22, 2, 74, 251,
+ 68, 22, 2, 250, 13, 251, 68, 22, 2, 78, 251, 68, 22, 2, 251, 64, 251, 68,
+ 22, 2, 250, 247, 251, 68, 2, 229, 86, 251, 68, 17, 202, 84, 251, 68, 17,
+ 105, 251, 68, 17, 108, 251, 68, 17, 147, 251, 68, 17, 149, 251, 68, 17,
+ 170, 251, 68, 17, 195, 251, 68, 17, 213, 111, 251, 68, 17, 199, 251, 68,
+ 17, 222, 63, 251, 68, 42, 209, 152, 251, 68, 42, 207, 151, 251, 68, 2, 5,
+ 214, 167, 251, 68, 2, 214, 167, 251, 68, 2, 215, 136, 251, 68, 16, 205,
+ 230, 204, 92, 246, 48, 6, 1, 222, 202, 204, 92, 246, 48, 6, 1, 63, 204,
+ 92, 246, 48, 6, 1, 204, 30, 204, 92, 246, 48, 6, 1, 202, 213, 204, 92,
+ 246, 48, 6, 1, 198, 204, 92, 246, 48, 6, 1, 202, 247, 204, 92, 246, 48,
+ 6, 1, 231, 83, 204, 92, 246, 48, 6, 1, 206, 178, 204, 92, 246, 48, 6, 1,
+ 74, 204, 92, 246, 48, 6, 1, 78, 204, 92, 246, 48, 6, 1, 250, 223, 204,
+ 92, 246, 48, 6, 1, 239, 8, 204, 92, 246, 48, 6, 1, 229, 26, 204, 92, 246,
+ 48, 6, 1, 241, 56, 204, 92, 246, 48, 6, 1, 202, 197, 204, 92, 246, 48, 6,
+ 1, 207, 31, 204, 92, 246, 48, 6, 1, 241, 75, 204, 92, 246, 48, 6, 1, 220,
+ 76, 204, 92, 246, 48, 6, 1, 207, 236, 204, 92, 246, 48, 6, 1, 221, 37,
+ 204, 92, 246, 48, 6, 1, 244, 212, 204, 92, 246, 48, 6, 1, 250, 49, 204,
+ 92, 246, 48, 6, 1, 250, 247, 204, 92, 246, 48, 6, 1, 247, 193, 204, 92,
+ 246, 48, 6, 1, 217, 191, 204, 92, 246, 48, 6, 1, 236, 228, 204, 92, 246,
+ 48, 6, 1, 236, 124, 204, 92, 246, 48, 6, 1, 236, 51, 204, 92, 246, 48, 6,
+ 1, 237, 92, 204, 92, 246, 48, 6, 1, 211, 116, 204, 92, 246, 48, 6, 1,
+ 212, 142, 204, 92, 246, 48, 6, 1, 205, 190, 204, 92, 246, 48, 5, 1, 222,
+ 202, 204, 92, 246, 48, 5, 1, 63, 204, 92, 246, 48, 5, 1, 204, 30, 204,
+ 92, 246, 48, 5, 1, 202, 213, 204, 92, 246, 48, 5, 1, 198, 204, 92, 246,
+ 48, 5, 1, 202, 247, 204, 92, 246, 48, 5, 1, 231, 83, 204, 92, 246, 48, 5,
+ 1, 206, 178, 204, 92, 246, 48, 5, 1, 74, 204, 92, 246, 48, 5, 1, 78, 204,
+ 92, 246, 48, 5, 1, 250, 223, 204, 92, 246, 48, 5, 1, 239, 8, 204, 92,
+ 246, 48, 5, 1, 229, 26, 204, 92, 246, 48, 5, 1, 241, 56, 204, 92, 246,
+ 48, 5, 1, 202, 197, 204, 92, 246, 48, 5, 1, 207, 31, 204, 92, 246, 48, 5,
+ 1, 241, 75, 204, 92, 246, 48, 5, 1, 220, 76, 204, 92, 246, 48, 5, 1, 207,
+ 236, 204, 92, 246, 48, 5, 1, 221, 37, 204, 92, 246, 48, 5, 1, 244, 212,
+ 204, 92, 246, 48, 5, 1, 250, 49, 204, 92, 246, 48, 5, 1, 250, 247, 204,
+ 92, 246, 48, 5, 1, 247, 193, 204, 92, 246, 48, 5, 1, 217, 191, 204, 92,
+ 246, 48, 5, 1, 236, 228, 204, 92, 246, 48, 5, 1, 236, 124, 204, 92, 246,
+ 48, 5, 1, 236, 51, 204, 92, 246, 48, 5, 1, 237, 92, 204, 92, 246, 48, 5,
+ 1, 211, 116, 204, 92, 246, 48, 5, 1, 212, 142, 204, 92, 246, 48, 5, 1,
+ 205, 190, 204, 92, 246, 48, 17, 202, 84, 204, 92, 246, 48, 17, 105, 204,
+ 92, 246, 48, 17, 108, 204, 92, 246, 48, 17, 147, 204, 92, 246, 48, 17,
+ 149, 204, 92, 246, 48, 17, 170, 204, 92, 246, 48, 17, 195, 204, 92, 246,
+ 48, 17, 213, 111, 204, 92, 246, 48, 17, 199, 204, 92, 246, 48, 17, 222,
+ 63, 204, 92, 246, 48, 42, 209, 152, 204, 92, 246, 48, 42, 207, 151, 204,
+ 92, 246, 48, 42, 209, 53, 204, 92, 246, 48, 42, 239, 153, 204, 92, 246,
+ 48, 42, 240, 18, 204, 92, 246, 48, 42, 212, 74, 204, 92, 246, 48, 42,
+ 213, 105, 204, 92, 246, 48, 42, 241, 134, 204, 92, 246, 48, 42, 222, 58,
+ 204, 92, 246, 48, 220, 39, 219, 49, 246, 66, 237, 77, 1, 185, 219, 49,
+ 246, 66, 237, 77, 1, 173, 219, 49, 246, 66, 237, 77, 1, 228, 113, 219,
+ 49, 246, 66, 237, 77, 1, 192, 219, 49, 246, 66, 237, 77, 1, 244, 212,
+ 219, 49, 246, 66, 237, 77, 1, 202, 116, 219, 49, 246, 66, 237, 77, 1,
+ 206, 86, 219, 49, 246, 66, 237, 77, 1, 222, 203, 219, 49, 246, 66, 237,
+ 77, 1, 152, 219, 49, 246, 66, 237, 77, 1, 239, 8, 219, 49, 246, 66, 237,
+ 77, 1, 229, 144, 219, 49, 246, 66, 237, 77, 1, 215, 36, 219, 49, 246, 66,
+ 237, 77, 1, 249, 32, 219, 49, 246, 66, 237, 77, 1, 247, 92, 219, 49, 246,
+ 66, 237, 77, 1, 210, 22, 219, 49, 246, 66, 237, 77, 1, 209, 108, 219, 49,
+ 246, 66, 237, 77, 1, 201, 201, 219, 49, 246, 66, 237, 77, 1, 218, 208,
+ 219, 49, 246, 66, 237, 77, 1, 216, 220, 219, 49, 246, 66, 237, 77, 1,
+ 240, 108, 219, 49, 246, 66, 237, 77, 1, 246, 199, 219, 49, 246, 66, 237,
+ 77, 1, 63, 219, 49, 246, 66, 237, 77, 1, 74, 219, 49, 246, 66, 237, 77,
+ 1, 75, 219, 49, 246, 66, 237, 77, 1, 78, 219, 49, 246, 66, 237, 77, 1,
+ 68, 219, 49, 246, 66, 237, 77, 1, 207, 39, 219, 49, 246, 66, 237, 77, 1,
+ 235, 171, 219, 49, 246, 66, 237, 77, 1, 46, 219, 184, 219, 49, 246, 66,
+ 237, 77, 1, 46, 230, 54, 219, 49, 246, 66, 237, 77, 1, 46, 210, 69, 219,
+ 49, 246, 66, 237, 77, 1, 46, 226, 185, 219, 49, 246, 66, 237, 77, 1, 46,
+ 223, 163, 219, 49, 246, 66, 237, 77, 1, 46, 159, 219, 49, 246, 66, 237,
+ 77, 1, 46, 204, 144, 219, 49, 246, 66, 237, 77, 1, 46, 222, 205, 219, 49,
+ 246, 66, 237, 77, 1, 46, 203, 124, 219, 49, 246, 66, 237, 77, 215, 245,
+ 143, 227, 28, 219, 49, 246, 66, 237, 77, 215, 245, 208, 161, 219, 49,
+ 246, 66, 237, 77, 214, 239, 238, 45, 211, 61, 219, 49, 246, 66, 237, 77,
+ 215, 245, 143, 163, 240, 5, 219, 49, 246, 66, 237, 77, 215, 245, 143,
+ 240, 5, 219, 49, 246, 66, 237, 77, 214, 239, 238, 45, 211, 62, 240, 5,
+ 219, 49, 246, 66, 237, 77, 214, 239, 143, 227, 28, 219, 49, 246, 66, 237,
+ 77, 214, 239, 208, 161, 219, 49, 246, 66, 237, 77, 214, 239, 143, 163,
+ 240, 5, 219, 49, 246, 66, 237, 77, 214, 239, 143, 240, 5, 219, 49, 246,
+ 66, 237, 77, 224, 149, 208, 161, 219, 49, 246, 66, 237, 77, 238, 45, 211,
+ 62, 206, 68, 219, 49, 246, 66, 237, 77, 224, 149, 143, 163, 240, 5, 219,
+ 49, 246, 66, 237, 77, 224, 149, 143, 240, 5, 219, 49, 246, 66, 237, 77,
+ 226, 254, 143, 227, 28, 219, 49, 246, 66, 237, 77, 226, 254, 208, 161,
+ 219, 49, 246, 66, 237, 77, 238, 45, 211, 61, 219, 49, 246, 66, 237, 77,
+ 226, 254, 143, 163, 240, 5, 219, 49, 246, 66, 237, 77, 226, 254, 143,
+ 240, 5, 219, 49, 246, 66, 237, 77, 238, 45, 211, 62, 240, 5, 9, 2, 63, 9,
+ 2, 34, 23, 63, 9, 2, 34, 23, 249, 15, 9, 2, 34, 23, 238, 233, 209, 141,
+ 9, 2, 34, 23, 152, 9, 2, 34, 23, 231, 85, 9, 2, 34, 23, 228, 93, 237,
+ 208, 9, 2, 34, 23, 223, 199, 9, 2, 34, 23, 215, 22, 9, 2, 254, 34, 9, 2,
+ 251, 232, 9, 2, 251, 233, 23, 250, 73, 9, 2, 251, 233, 23, 242, 30, 237,
+ 208, 9, 2, 251, 233, 23, 238, 246, 9, 2, 251, 233, 23, 238, 233, 209,
+ 141, 9, 2, 251, 233, 23, 152, 9, 2, 251, 233, 23, 231, 86, 237, 208, 9,
+ 2, 251, 233, 23, 231, 59, 9, 2, 251, 233, 23, 228, 94, 9, 2, 251, 233,
+ 23, 213, 27, 9, 2, 251, 233, 23, 106, 91, 106, 91, 68, 9, 2, 251, 233,
+ 237, 208, 9, 2, 251, 149, 9, 2, 251, 150, 23, 248, 252, 9, 2, 251, 150,
+ 23, 238, 233, 209, 141, 9, 2, 251, 150, 23, 225, 21, 91, 241, 92, 9, 2,
+ 251, 150, 23, 213, 88, 9, 2, 251, 150, 23, 209, 242, 9, 2, 251, 122, 9,
+ 2, 251, 47, 9, 2, 251, 48, 23, 241, 22, 9, 2, 251, 48, 23, 212, 245, 91,
+ 238, 55, 9, 2, 251, 39, 9, 2, 251, 40, 23, 251, 39, 9, 2, 251, 40, 23,
+ 243, 186, 9, 2, 251, 40, 23, 238, 55, 9, 2, 251, 40, 23, 152, 9, 2, 251,
+ 40, 23, 230, 27, 9, 2, 251, 40, 23, 229, 100, 9, 2, 251, 40, 23, 213, 43,
+ 9, 2, 251, 40, 23, 206, 186, 9, 2, 251, 36, 9, 2, 251, 28, 9, 2, 250,
+ 243, 9, 2, 250, 244, 23, 213, 43, 9, 2, 250, 231, 9, 2, 250, 232, 115,
+ 250, 231, 9, 2, 250, 232, 126, 208, 219, 9, 2, 250, 232, 91, 223, 97,
+ 219, 251, 250, 232, 91, 223, 96, 9, 2, 250, 232, 91, 223, 97, 211, 176,
+ 9, 2, 250, 200, 9, 2, 250, 170, 9, 2, 250, 138, 9, 2, 250, 139, 23, 228,
+ 183, 9, 2, 250, 110, 9, 2, 250, 80, 9, 2, 250, 75, 9, 2, 250, 76, 202,
+ 35, 209, 141, 9, 2, 250, 76, 230, 31, 209, 141, 9, 2, 250, 76, 115, 250,
+ 76, 207, 198, 115, 207, 198, 207, 198, 115, 207, 198, 219, 96, 9, 2, 250,
+ 76, 115, 250, 76, 115, 250, 75, 9, 2, 250, 76, 115, 250, 76, 115, 250,
+ 76, 245, 124, 250, 76, 115, 250, 76, 115, 250, 75, 9, 2, 250, 73, 9, 2,
+ 250, 69, 9, 2, 249, 32, 9, 2, 249, 15, 9, 2, 249, 9, 9, 2, 249, 3, 9, 2,
+ 248, 253, 9, 2, 248, 254, 115, 248, 253, 9, 2, 248, 252, 9, 2, 142, 9, 2,
+ 248, 230, 9, 2, 248, 86, 9, 2, 248, 87, 23, 63, 9, 2, 248, 87, 23, 238,
+ 224, 9, 2, 248, 87, 23, 231, 86, 237, 208, 9, 2, 247, 193, 9, 2, 247,
+ 194, 115, 247, 194, 251, 232, 9, 2, 247, 194, 115, 247, 194, 206, 255, 9,
+ 2, 247, 194, 245, 124, 247, 193, 9, 2, 247, 171, 9, 2, 247, 172, 115,
+ 247, 171, 9, 2, 247, 160, 9, 2, 247, 159, 9, 2, 244, 212, 9, 2, 244, 203,
+ 9, 2, 244, 204, 229, 69, 23, 34, 91, 225, 79, 9, 2, 244, 204, 229, 69,
+ 23, 250, 243, 9, 2, 244, 204, 229, 69, 23, 248, 252, 9, 2, 244, 204, 229,
+ 69, 23, 248, 86, 9, 2, 244, 204, 229, 69, 23, 239, 8, 9, 2, 244, 204,
+ 229, 69, 23, 239, 9, 91, 225, 79, 9, 2, 244, 204, 229, 69, 23, 238, 81,
+ 9, 2, 244, 204, 229, 69, 23, 238, 63, 9, 2, 244, 204, 229, 69, 23, 237,
+ 219, 9, 2, 244, 204, 229, 69, 23, 152, 9, 2, 244, 204, 229, 69, 23, 230,
+ 224, 9, 2, 244, 204, 229, 69, 23, 230, 225, 91, 226, 239, 9, 2, 244, 204,
+ 229, 69, 23, 230, 12, 9, 2, 244, 204, 229, 69, 23, 228, 113, 9, 2, 244,
+ 204, 229, 69, 23, 226, 239, 9, 2, 244, 204, 229, 69, 23, 226, 240, 91,
+ 225, 78, 9, 2, 244, 204, 229, 69, 23, 226, 222, 9, 2, 244, 204, 229, 69,
+ 23, 222, 240, 9, 2, 244, 204, 229, 69, 23, 219, 97, 91, 219, 96, 9, 2,
+ 244, 204, 229, 69, 23, 212, 162, 9, 2, 244, 204, 229, 69, 23, 209, 242,
+ 9, 2, 244, 204, 229, 69, 23, 207, 41, 91, 238, 63, 9, 2, 244, 204, 229,
+ 69, 23, 206, 186, 9, 2, 244, 175, 9, 2, 244, 154, 9, 2, 244, 153, 9, 2,
+ 244, 152, 9, 2, 243, 233, 9, 2, 243, 215, 9, 2, 243, 188, 9, 2, 243, 189,
+ 23, 213, 43, 9, 2, 243, 186, 9, 2, 243, 176, 9, 2, 243, 177, 229, 232,
+ 106, 237, 209, 243, 156, 9, 2, 243, 156, 9, 2, 242, 42, 9, 2, 242, 43,
+ 115, 242, 42, 9, 2, 242, 43, 237, 208, 9, 2, 242, 43, 213, 24, 9, 2, 242,
+ 40, 9, 2, 242, 41, 23, 241, 4, 9, 2, 242, 39, 9, 2, 242, 37, 9, 2, 242,
+ 36, 9, 2, 242, 35, 9, 2, 242, 31, 9, 2, 242, 29, 9, 2, 242, 30, 237, 208,
+ 9, 2, 242, 30, 237, 209, 237, 208, 9, 2, 242, 28, 9, 2, 242, 21, 9, 2,
+ 74, 9, 2, 188, 23, 219, 96, 9, 2, 188, 115, 188, 221, 41, 115, 221, 40,
+ 9, 2, 241, 190, 9, 2, 241, 191, 23, 34, 91, 237, 160, 91, 244, 212, 9, 2,
+ 241, 191, 23, 238, 224, 9, 2, 241, 191, 23, 224, 155, 9, 2, 241, 191, 23,
+ 215, 8, 9, 2, 241, 191, 23, 213, 43, 9, 2, 241, 191, 23, 68, 9, 2, 241,
+ 163, 9, 2, 241, 151, 9, 2, 241, 122, 9, 2, 241, 92, 9, 2, 241, 93, 23,
+ 238, 232, 9, 2, 241, 93, 23, 238, 233, 209, 141, 9, 2, 241, 93, 23, 225,
+ 20, 9, 2, 241, 93, 245, 124, 241, 92, 9, 2, 241, 93, 219, 251, 241, 92,
+ 9, 2, 241, 93, 211, 176, 9, 2, 241, 25, 9, 2, 241, 22, 9, 2, 241, 4, 9,
+ 2, 240, 179, 9, 2, 240, 180, 23, 63, 9, 2, 240, 180, 23, 34, 91, 228, 30,
+ 9, 2, 240, 180, 23, 34, 91, 228, 31, 23, 228, 30, 9, 2, 240, 180, 23,
+ 250, 231, 9, 2, 240, 180, 23, 249, 15, 9, 2, 240, 180, 23, 242, 30, 237,
+ 208, 9, 2, 240, 180, 23, 242, 30, 237, 209, 237, 208, 9, 2, 240, 180, 23,
+ 152, 9, 2, 240, 180, 23, 237, 160, 237, 208, 9, 2, 240, 180, 23, 231, 86,
+ 237, 208, 9, 2, 240, 180, 23, 229, 231, 9, 2, 240, 180, 23, 229, 232,
+ 211, 176, 9, 2, 240, 180, 23, 228, 207, 9, 2, 240, 180, 23, 228, 113, 9,
+ 2, 240, 180, 23, 228, 31, 23, 228, 30, 9, 2, 240, 180, 23, 227, 148, 9,
+ 2, 240, 180, 23, 226, 239, 9, 2, 240, 180, 23, 207, 40, 9, 2, 240, 180,
+ 23, 207, 29, 9, 2, 239, 8, 9, 2, 239, 9, 237, 208, 9, 2, 239, 6, 9, 2,
+ 239, 7, 23, 34, 91, 244, 213, 91, 152, 9, 2, 239, 7, 23, 34, 91, 152, 9,
+ 2, 239, 7, 23, 34, 91, 231, 85, 9, 2, 239, 7, 23, 251, 150, 209, 142, 91,
+ 210, 10, 9, 2, 239, 7, 23, 250, 231, 9, 2, 239, 7, 23, 250, 75, 9, 2,
+ 239, 7, 23, 250, 74, 91, 238, 246, 9, 2, 239, 7, 23, 249, 15, 9, 2, 239,
+ 7, 23, 248, 231, 91, 216, 220, 9, 2, 239, 7, 23, 247, 160, 9, 2, 239, 7,
+ 23, 247, 161, 91, 216, 220, 9, 2, 239, 7, 23, 244, 212, 9, 2, 239, 7, 23,
+ 243, 233, 9, 2, 239, 7, 23, 243, 189, 23, 213, 43, 9, 2, 239, 7, 23, 242,
+ 40, 9, 2, 239, 7, 23, 241, 122, 9, 2, 239, 7, 23, 241, 123, 91, 228, 113,
+ 9, 2, 239, 7, 23, 241, 92, 9, 2, 239, 7, 23, 241, 93, 23, 238, 233, 209,
+ 141, 9, 2, 239, 7, 23, 238, 233, 209, 141, 9, 2, 239, 7, 23, 238, 224, 9,
+ 2, 239, 7, 23, 238, 81, 9, 2, 239, 7, 23, 238, 79, 9, 2, 239, 7, 23, 238,
+ 80, 91, 63, 9, 2, 239, 7, 23, 238, 64, 91, 211, 10, 9, 2, 239, 7, 23,
+ 237, 160, 91, 226, 240, 91, 241, 4, 9, 2, 239, 7, 23, 237, 140, 9, 2,
+ 239, 7, 23, 237, 141, 91, 228, 113, 9, 2, 239, 7, 23, 237, 4, 91, 227,
+ 148, 9, 2, 239, 7, 23, 236, 21, 9, 2, 239, 7, 23, 231, 86, 237, 208, 9,
+ 2, 239, 7, 23, 230, 210, 91, 236, 27, 91, 250, 75, 9, 2, 239, 7, 23, 230,
+ 12, 9, 2, 239, 7, 23, 229, 231, 9, 2, 239, 7, 23, 229, 94, 9, 2, 239, 7,
+ 23, 229, 95, 91, 228, 30, 9, 2, 239, 7, 23, 228, 208, 91, 250, 231, 9, 2,
+ 239, 7, 23, 228, 113, 9, 2, 239, 7, 23, 225, 21, 91, 241, 92, 9, 2, 239,
+ 7, 23, 224, 155, 9, 2, 239, 7, 23, 221, 40, 9, 2, 239, 7, 23, 221, 41,
+ 115, 221, 40, 9, 2, 239, 7, 23, 185, 9, 2, 239, 7, 23, 215, 8, 9, 2, 239,
+ 7, 23, 214, 230, 9, 2, 239, 7, 23, 213, 43, 9, 2, 239, 7, 23, 213, 44,
+ 91, 207, 181, 9, 2, 239, 7, 23, 213, 9, 9, 2, 239, 7, 23, 210, 220, 9, 2,
+ 239, 7, 23, 209, 242, 9, 2, 239, 7, 23, 68, 9, 2, 239, 7, 23, 207, 29, 9,
+ 2, 239, 7, 23, 207, 30, 91, 242, 42, 9, 2, 239, 7, 115, 239, 6, 9, 2,
+ 239, 1, 9, 2, 239, 2, 245, 124, 239, 1, 9, 2, 238, 255, 9, 2, 239, 0,
+ 115, 239, 0, 238, 225, 115, 238, 224, 9, 2, 238, 246, 9, 2, 238, 247,
+ 239, 0, 115, 239, 0, 238, 225, 115, 238, 224, 9, 2, 238, 245, 9, 2, 238,
+ 243, 9, 2, 238, 234, 9, 2, 238, 232, 9, 2, 238, 233, 209, 141, 9, 2, 238,
+ 233, 115, 238, 232, 9, 2, 238, 233, 245, 124, 238, 232, 9, 2, 238, 224,
+ 9, 2, 238, 223, 9, 2, 238, 218, 9, 2, 238, 162, 9, 2, 238, 163, 23, 228,
+ 183, 9, 2, 238, 81, 9, 2, 238, 82, 23, 74, 9, 2, 238, 82, 23, 68, 9, 2,
+ 238, 82, 245, 124, 238, 81, 9, 2, 238, 79, 9, 2, 238, 80, 115, 238, 79,
+ 9, 2, 238, 80, 245, 124, 238, 79, 9, 2, 238, 76, 9, 2, 238, 63, 9, 2,
+ 238, 64, 237, 208, 9, 2, 238, 61, 9, 2, 238, 62, 23, 34, 91, 231, 85, 9,
+ 2, 238, 62, 23, 238, 233, 209, 141, 9, 2, 238, 62, 23, 231, 85, 9, 2,
+ 238, 62, 23, 226, 240, 91, 231, 85, 9, 2, 238, 62, 23, 185, 9, 2, 238,
+ 57, 9, 2, 238, 55, 9, 2, 238, 56, 245, 124, 238, 55, 9, 2, 238, 56, 23,
+ 249, 15, 9, 2, 238, 56, 23, 209, 242, 9, 2, 238, 56, 209, 141, 9, 2, 237,
+ 230, 9, 2, 237, 231, 245, 124, 237, 230, 9, 2, 237, 228, 9, 2, 237, 229,
+ 23, 230, 12, 9, 2, 237, 229, 23, 230, 13, 23, 231, 86, 237, 208, 9, 2,
+ 237, 229, 23, 221, 40, 9, 2, 237, 229, 23, 215, 9, 91, 207, 197, 9, 2,
+ 237, 229, 237, 208, 9, 2, 237, 219, 9, 2, 237, 220, 23, 34, 91, 228, 183,
+ 9, 2, 237, 220, 23, 228, 183, 9, 2, 237, 220, 115, 237, 220, 226, 230, 9,
+ 2, 237, 212, 9, 2, 237, 210, 9, 2, 237, 211, 23, 213, 43, 9, 2, 237, 202,
+ 9, 2, 237, 201, 9, 2, 237, 197, 9, 2, 237, 196, 9, 2, 152, 9, 2, 237,
+ 160, 209, 141, 9, 2, 237, 160, 237, 208, 9, 2, 237, 140, 9, 2, 237, 3, 9,
+ 2, 237, 4, 23, 250, 75, 9, 2, 237, 4, 23, 250, 73, 9, 2, 237, 4, 23, 249,
+ 15, 9, 2, 237, 4, 23, 243, 156, 9, 2, 237, 4, 23, 238, 255, 9, 2, 237, 4,
+ 23, 229, 84, 9, 2, 237, 4, 23, 221, 40, 9, 2, 237, 4, 23, 213, 43, 9, 2,
+ 237, 4, 23, 68, 9, 2, 236, 26, 9, 2, 236, 21, 9, 2, 236, 22, 23, 250,
+ 231, 9, 2, 236, 22, 23, 237, 140, 9, 2, 236, 22, 23, 229, 231, 9, 2, 236,
+ 22, 23, 227, 92, 9, 2, 236, 22, 23, 207, 29, 9, 2, 236, 17, 9, 2, 75, 9,
+ 2, 235, 206, 63, 9, 2, 235, 166, 9, 2, 231, 113, 9, 2, 231, 114, 115,
+ 231, 114, 247, 160, 9, 2, 231, 114, 115, 231, 114, 211, 176, 9, 2, 231,
+ 88, 9, 2, 231, 85, 9, 2, 231, 86, 243, 215, 9, 2, 231, 86, 216, 57, 9, 2,
+ 231, 86, 115, 231, 86, 212, 249, 115, 212, 249, 207, 30, 115, 207, 29, 9,
+ 2, 231, 86, 237, 208, 9, 2, 231, 77, 9, 2, 231, 78, 23, 238, 233, 209,
+ 141, 9, 2, 231, 76, 9, 2, 231, 66, 9, 2, 231, 67, 23, 209, 242, 9, 2,
+ 231, 67, 245, 124, 231, 66, 9, 2, 231, 67, 219, 251, 231, 66, 9, 2, 231,
+ 67, 211, 176, 9, 2, 231, 59, 9, 2, 231, 49, 9, 2, 230, 224, 9, 2, 230,
+ 209, 9, 2, 173, 9, 2, 230, 44, 23, 63, 9, 2, 230, 44, 23, 251, 122, 9, 2,
+ 230, 44, 23, 251, 123, 91, 228, 207, 9, 2, 230, 44, 23, 250, 73, 9, 2,
+ 230, 44, 23, 249, 15, 9, 2, 230, 44, 23, 248, 252, 9, 2, 230, 44, 23,
+ 142, 9, 2, 230, 44, 23, 248, 86, 9, 2, 230, 44, 23, 241, 22, 9, 2, 230,
+ 44, 23, 241, 4, 9, 2, 230, 44, 23, 239, 8, 9, 2, 230, 44, 23, 238, 246,
+ 9, 2, 230, 44, 23, 238, 233, 209, 141, 9, 2, 230, 44, 23, 238, 224, 9, 2,
+ 230, 44, 23, 238, 225, 91, 213, 89, 91, 63, 9, 2, 230, 44, 23, 238, 81,
+ 9, 2, 230, 44, 23, 238, 63, 9, 2, 230, 44, 23, 238, 56, 91, 214, 230, 9,
+ 2, 230, 44, 23, 238, 56, 245, 124, 238, 55, 9, 2, 230, 44, 23, 237, 230,
+ 9, 2, 230, 44, 23, 237, 201, 9, 2, 230, 44, 23, 231, 85, 9, 2, 230, 44,
+ 23, 231, 66, 9, 2, 230, 44, 23, 230, 12, 9, 2, 230, 44, 23, 229, 100, 9,
+ 2, 230, 44, 23, 229, 94, 9, 2, 230, 44, 23, 227, 148, 9, 2, 230, 44, 23,
+ 226, 239, 9, 2, 230, 44, 23, 225, 20, 9, 2, 230, 44, 23, 225, 21, 91,
+ 242, 42, 9, 2, 230, 44, 23, 225, 21, 91, 238, 81, 9, 2, 230, 44, 23, 225,
+ 21, 91, 209, 187, 9, 2, 230, 44, 23, 224, 155, 9, 2, 230, 44, 23, 224,
+ 156, 91, 221, 35, 9, 2, 230, 44, 23, 222, 240, 9, 2, 230, 44, 23, 221,
+ 40, 9, 2, 230, 44, 23, 218, 167, 9, 2, 230, 44, 23, 215, 145, 9, 2, 230,
+ 44, 23, 215, 36, 9, 2, 230, 44, 23, 214, 230, 9, 2, 230, 44, 23, 213, 90,
+ 9, 2, 230, 44, 23, 213, 43, 9, 2, 230, 44, 23, 213, 9, 9, 2, 230, 44, 23,
+ 212, 199, 9, 2, 230, 44, 23, 212, 149, 9, 2, 230, 44, 23, 210, 229, 9, 2,
+ 230, 44, 23, 209, 218, 9, 2, 230, 44, 23, 68, 9, 2, 230, 44, 23, 207, 40,
+ 9, 2, 230, 44, 23, 207, 29, 9, 2, 230, 44, 23, 207, 2, 23, 185, 9, 2,
+ 230, 44, 23, 206, 186, 9, 2, 230, 44, 23, 202, 39, 9, 2, 230, 42, 9, 2,
+ 230, 43, 245, 124, 230, 42, 9, 2, 230, 32, 9, 2, 230, 29, 9, 2, 230, 27,
+ 9, 2, 230, 26, 9, 2, 230, 24, 9, 2, 230, 25, 115, 230, 24, 9, 2, 230, 12,
+ 9, 2, 230, 13, 23, 231, 86, 237, 208, 9, 2, 230, 8, 9, 2, 230, 9, 23,
+ 249, 15, 9, 2, 230, 9, 245, 124, 230, 8, 9, 2, 230, 6, 9, 2, 230, 5, 9,
+ 2, 229, 231, 9, 2, 229, 232, 228, 95, 23, 106, 115, 228, 95, 23, 68, 9,
+ 2, 229, 232, 115, 229, 232, 228, 95, 23, 106, 115, 228, 95, 23, 68, 9, 2,
+ 229, 171, 9, 2, 229, 100, 9, 2, 229, 101, 23, 249, 15, 9, 2, 229, 101,
+ 23, 68, 9, 2, 229, 101, 23, 207, 29, 9, 2, 229, 94, 9, 2, 229, 84, 9, 2,
+ 229, 71, 9, 2, 229, 70, 9, 2, 229, 68, 9, 2, 229, 69, 115, 229, 68, 9, 2,
+ 228, 209, 9, 2, 228, 210, 115, 237, 4, 23, 250, 74, 228, 210, 115, 237,
+ 4, 23, 250, 73, 9, 2, 228, 207, 9, 2, 228, 205, 9, 2, 228, 206, 206, 69,
+ 18, 9, 2, 228, 204, 9, 2, 228, 196, 9, 2, 228, 197, 237, 208, 9, 2, 228,
+ 195, 9, 2, 228, 183, 9, 2, 228, 184, 219, 251, 228, 183, 9, 2, 228, 177,
+ 9, 2, 228, 155, 9, 2, 228, 113, 9, 2, 228, 94, 9, 2, 228, 95, 23, 63, 9,
+ 2, 228, 95, 23, 34, 91, 244, 213, 91, 152, 9, 2, 228, 95, 23, 34, 91,
+ 238, 224, 9, 2, 228, 95, 23, 34, 91, 228, 30, 9, 2, 228, 95, 23, 251, 39,
+ 9, 2, 228, 95, 23, 250, 231, 9, 2, 228, 95, 23, 250, 76, 202, 35, 209,
+ 141, 9, 2, 228, 95, 23, 249, 15, 9, 2, 228, 95, 23, 248, 86, 9, 2, 228,
+ 95, 23, 244, 154, 9, 2, 228, 95, 23, 241, 92, 9, 2, 228, 95, 23, 239, 8,
+ 9, 2, 228, 95, 23, 238, 224, 9, 2, 228, 95, 23, 237, 219, 9, 2, 228, 95,
+ 23, 237, 220, 91, 237, 219, 9, 2, 228, 95, 23, 152, 9, 2, 228, 95, 23,
+ 237, 140, 9, 2, 228, 95, 23, 237, 4, 23, 221, 40, 9, 2, 228, 95, 23, 231,
+ 86, 237, 208, 9, 2, 228, 95, 23, 231, 66, 9, 2, 228, 95, 23, 231, 67, 91,
+ 152, 9, 2, 228, 95, 23, 231, 67, 91, 226, 239, 9, 2, 228, 95, 23, 229,
+ 100, 9, 2, 228, 95, 23, 229, 84, 9, 2, 228, 95, 23, 228, 207, 9, 2, 228,
+ 95, 23, 228, 196, 9, 2, 228, 95, 23, 228, 197, 91, 237, 4, 91, 63, 9, 2,
+ 228, 95, 23, 228, 94, 9, 2, 228, 95, 23, 227, 92, 9, 2, 228, 95, 23, 226,
+ 239, 9, 2, 228, 95, 23, 226, 224, 9, 2, 228, 95, 23, 225, 20, 9, 2, 228,
+ 95, 23, 225, 21, 91, 241, 92, 9, 2, 228, 95, 23, 223, 199, 9, 2, 228, 95,
+ 23, 222, 240, 9, 2, 228, 95, 23, 213, 44, 91, 210, 220, 9, 2, 228, 95,
+ 23, 212, 245, 91, 238, 56, 91, 241, 22, 9, 2, 228, 95, 23, 212, 245, 91,
+ 238, 56, 209, 141, 9, 2, 228, 95, 23, 212, 197, 9, 2, 228, 95, 23, 212,
+ 198, 91, 212, 197, 9, 2, 228, 95, 23, 210, 220, 9, 2, 228, 95, 23, 209,
+ 255, 9, 2, 228, 95, 23, 209, 242, 9, 2, 228, 95, 23, 209, 188, 91, 34,
+ 91, 211, 11, 91, 201, 201, 9, 2, 228, 95, 23, 68, 9, 2, 228, 95, 23, 106,
+ 91, 63, 9, 2, 228, 95, 23, 106, 91, 106, 91, 68, 9, 2, 228, 95, 23, 207,
+ 41, 91, 250, 75, 9, 2, 228, 95, 23, 207, 29, 9, 2, 228, 95, 23, 206, 186,
+ 9, 2, 228, 95, 211, 176, 9, 2, 228, 92, 9, 2, 228, 93, 23, 213, 43, 9, 2,
+ 228, 93, 23, 213, 44, 91, 210, 220, 9, 2, 228, 93, 237, 208, 9, 2, 228,
+ 93, 237, 209, 115, 228, 93, 237, 209, 213, 43, 9, 2, 228, 88, 9, 2, 228,
+ 30, 9, 2, 228, 31, 23, 228, 30, 9, 2, 228, 28, 9, 2, 228, 29, 23, 228,
+ 183, 9, 2, 228, 29, 23, 228, 184, 91, 215, 145, 9, 2, 227, 148, 9, 2,
+ 227, 129, 9, 2, 227, 117, 9, 2, 227, 92, 9, 2, 226, 239, 9, 2, 226, 240,
+ 23, 249, 15, 9, 2, 226, 237, 9, 2, 226, 238, 23, 251, 39, 9, 2, 226, 238,
+ 23, 249, 15, 9, 2, 226, 238, 23, 241, 4, 9, 2, 226, 238, 23, 241, 5, 209,
+ 141, 9, 2, 226, 238, 23, 238, 233, 209, 141, 9, 2, 226, 238, 23, 237, 4,
+ 23, 249, 15, 9, 2, 226, 238, 23, 231, 66, 9, 2, 226, 238, 23, 230, 29, 9,
+ 2, 226, 238, 23, 230, 27, 9, 2, 226, 238, 23, 230, 28, 91, 250, 75, 9, 2,
+ 226, 238, 23, 229, 100, 9, 2, 226, 238, 23, 228, 114, 91, 250, 75, 9, 2,
+ 226, 238, 23, 228, 94, 9, 2, 226, 238, 23, 225, 21, 91, 241, 92, 9, 2,
+ 226, 238, 23, 222, 240, 9, 2, 226, 238, 23, 221, 84, 9, 2, 226, 238, 23,
+ 212, 163, 91, 250, 75, 9, 2, 226, 238, 23, 212, 141, 91, 247, 193, 9, 2,
+ 226, 238, 23, 207, 197, 9, 2, 226, 238, 209, 141, 9, 2, 226, 238, 245,
+ 124, 226, 237, 9, 2, 226, 238, 219, 251, 226, 237, 9, 2, 226, 238, 211,
+ 176, 9, 2, 226, 238, 213, 24, 9, 2, 226, 236, 9, 2, 226, 230, 9, 2, 226,
+ 231, 115, 226, 230, 9, 2, 226, 231, 219, 251, 226, 230, 9, 2, 226, 231,
+ 213, 24, 9, 2, 226, 227, 9, 2, 226, 224, 9, 2, 226, 222, 9, 2, 226, 223,
+ 115, 226, 222, 9, 2, 226, 223, 115, 226, 223, 238, 225, 115, 238, 224, 9,
+ 2, 192, 9, 2, 225, 177, 23, 209, 242, 9, 2, 225, 177, 237, 208, 9, 2,
+ 225, 176, 9, 2, 225, 148, 9, 2, 225, 100, 9, 2, 225, 79, 9, 2, 225, 78,
+ 9, 2, 225, 20, 9, 2, 224, 228, 9, 2, 224, 155, 9, 2, 224, 110, 9, 2, 223,
+ 246, 9, 2, 223, 247, 115, 223, 246, 9, 2, 223, 235, 9, 2, 223, 236, 237,
+ 208, 9, 2, 223, 217, 9, 2, 223, 203, 9, 2, 223, 199, 9, 2, 223, 200, 23,
+ 63, 9, 2, 223, 200, 23, 228, 183, 9, 2, 223, 200, 23, 202, 116, 9, 2,
+ 223, 200, 115, 223, 199, 9, 2, 223, 200, 115, 223, 200, 23, 34, 91, 201,
+ 201, 9, 2, 223, 200, 245, 124, 223, 199, 9, 2, 223, 197, 9, 2, 223, 198,
+ 23, 63, 9, 2, 223, 198, 23, 34, 91, 243, 233, 9, 2, 223, 198, 23, 243,
+ 233, 9, 2, 223, 198, 237, 208, 9, 2, 201, 201, 9, 2, 223, 109, 9, 2, 223,
+ 96, 9, 2, 223, 97, 230, 238, 9, 2, 223, 97, 23, 212, 200, 209, 141, 9, 2,
+ 223, 97, 219, 251, 223, 96, 9, 2, 223, 95, 9, 2, 223, 88, 221, 26, 9, 2,
+ 223, 87, 9, 2, 223, 86, 9, 2, 222, 240, 9, 2, 222, 241, 23, 63, 9, 2,
+ 222, 241, 23, 207, 29, 9, 2, 222, 241, 213, 24, 9, 2, 222, 100, 9, 2,
+ 222, 101, 23, 74, 9, 2, 222, 99, 9, 2, 222, 69, 9, 2, 222, 70, 23, 238,
+ 233, 209, 141, 9, 2, 222, 70, 23, 238, 225, 91, 238, 233, 209, 141, 9, 2,
+ 222, 65, 9, 2, 222, 66, 23, 250, 231, 9, 2, 222, 66, 23, 250, 75, 9, 2,
+ 222, 66, 23, 250, 76, 91, 250, 75, 9, 2, 222, 66, 23, 237, 219, 9, 2,
+ 222, 66, 23, 225, 21, 91, 238, 233, 209, 141, 9, 2, 222, 66, 23, 222,
+ 240, 9, 2, 222, 66, 23, 221, 40, 9, 2, 222, 66, 23, 213, 43, 9, 2, 222,
+ 66, 23, 213, 44, 91, 34, 250, 231, 9, 2, 222, 66, 23, 213, 44, 91, 250,
+ 75, 9, 2, 222, 66, 23, 213, 44, 91, 250, 76, 91, 250, 75, 9, 2, 222, 66,
+ 23, 207, 41, 91, 250, 75, 9, 2, 222, 66, 23, 206, 186, 9, 2, 222, 53, 9,
+ 2, 221, 84, 9, 2, 221, 56, 9, 2, 221, 40, 9, 2, 221, 41, 228, 93, 23,
+ 238, 224, 9, 2, 221, 41, 228, 93, 23, 225, 79, 9, 2, 221, 41, 228, 93,
+ 23, 215, 8, 9, 2, 221, 41, 228, 93, 23, 215, 9, 115, 221, 41, 228, 93,
+ 23, 215, 8, 9, 2, 221, 41, 228, 93, 23, 206, 186, 9, 2, 221, 41, 209,
+ 141, 9, 2, 221, 41, 115, 221, 40, 9, 2, 221, 41, 245, 124, 221, 40, 9, 2,
+ 221, 41, 245, 124, 221, 41, 228, 93, 115, 228, 92, 9, 2, 221, 35, 9, 2,
+ 221, 36, 251, 150, 23, 250, 69, 9, 2, 221, 36, 251, 150, 23, 248, 86, 9,
+ 2, 221, 36, 251, 150, 23, 242, 37, 9, 2, 221, 36, 251, 150, 23, 237, 219,
+ 9, 2, 221, 36, 251, 150, 23, 231, 86, 237, 208, 9, 2, 221, 36, 251, 150,
+ 23, 230, 27, 9, 2, 221, 36, 251, 150, 23, 228, 113, 9, 2, 221, 36, 251,
+ 150, 23, 222, 240, 9, 2, 221, 36, 251, 150, 23, 212, 138, 9, 2, 221, 36,
+ 251, 150, 23, 207, 40, 9, 2, 221, 36, 229, 69, 23, 248, 86, 9, 2, 221,
+ 36, 229, 69, 23, 248, 87, 68, 9, 2, 185, 9, 2, 219, 159, 9, 2, 219, 122,
+ 9, 2, 219, 96, 9, 2, 218, 222, 9, 2, 218, 167, 9, 2, 218, 168, 23, 63, 9,
+ 2, 218, 168, 23, 251, 232, 9, 2, 218, 168, 23, 248, 86, 9, 2, 218, 168,
+ 23, 247, 193, 9, 2, 218, 168, 23, 74, 9, 2, 218, 168, 23, 75, 9, 2, 218,
+ 168, 23, 235, 166, 9, 2, 218, 168, 23, 68, 9, 2, 218, 168, 23, 207, 40,
+ 9, 2, 218, 168, 245, 124, 218, 167, 9, 2, 218, 109, 9, 2, 218, 110, 23,
+ 230, 8, 9, 2, 218, 110, 23, 207, 29, 9, 2, 218, 110, 23, 202, 116, 9, 2,
+ 218, 110, 219, 251, 218, 109, 9, 2, 216, 220, 9, 2, 216, 214, 9, 2, 216,
+ 57, 9, 2, 215, 145, 9, 2, 215, 36, 9, 2, 215, 23, 221, 26, 9, 2, 215, 22,
+ 9, 2, 215, 23, 23, 63, 9, 2, 215, 23, 23, 242, 42, 9, 2, 215, 23, 23,
+ 242, 40, 9, 2, 215, 23, 23, 152, 9, 2, 215, 23, 23, 230, 12, 9, 2, 215,
+ 23, 23, 228, 183, 9, 2, 215, 23, 23, 226, 222, 9, 2, 215, 23, 23, 224,
+ 155, 9, 2, 215, 23, 23, 221, 40, 9, 2, 215, 23, 23, 215, 8, 9, 2, 215,
+ 23, 23, 213, 9, 9, 2, 215, 23, 23, 210, 10, 9, 2, 215, 23, 23, 207, 40,
+ 9, 2, 215, 23, 23, 207, 35, 9, 2, 215, 23, 23, 207, 6, 9, 2, 215, 23, 23,
+ 206, 210, 9, 2, 215, 23, 23, 206, 186, 9, 2, 215, 23, 115, 215, 22, 9, 2,
+ 215, 23, 237, 208, 9, 2, 215, 8, 9, 2, 215, 9, 228, 95, 23, 250, 73, 9,
+ 2, 214, 238, 9, 2, 214, 230, 9, 2, 213, 90, 9, 2, 213, 88, 9, 2, 213, 89,
+ 23, 63, 9, 2, 213, 89, 23, 249, 15, 9, 2, 213, 89, 23, 238, 55, 9, 2,
+ 213, 89, 23, 222, 240, 9, 2, 213, 89, 23, 212, 197, 9, 2, 213, 89, 23,
+ 207, 181, 9, 2, 213, 89, 23, 68, 9, 2, 213, 89, 23, 106, 91, 63, 9, 2,
+ 213, 86, 9, 2, 213, 84, 9, 2, 213, 59, 9, 2, 213, 43, 9, 2, 213, 44, 236,
+ 26, 9, 2, 213, 44, 115, 213, 44, 239, 0, 115, 239, 0, 238, 225, 115, 238,
+ 224, 9, 2, 213, 44, 115, 213, 44, 210, 11, 115, 210, 11, 238, 225, 115,
+ 238, 224, 9, 2, 213, 36, 9, 2, 213, 31, 9, 2, 213, 27, 9, 2, 213, 26, 9,
+ 2, 213, 23, 9, 2, 213, 9, 9, 2, 213, 10, 23, 63, 9, 2, 213, 10, 23, 231,
+ 66, 9, 2, 213, 3, 9, 2, 213, 4, 23, 63, 9, 2, 213, 4, 23, 248, 253, 9, 2,
+ 213, 4, 23, 247, 171, 9, 2, 213, 4, 23, 243, 176, 9, 2, 213, 4, 23, 238,
+ 224, 9, 2, 213, 4, 23, 231, 85, 9, 2, 213, 4, 23, 231, 86, 237, 208, 9,
+ 2, 213, 4, 23, 228, 177, 9, 2, 213, 4, 23, 226, 224, 9, 2, 213, 4, 23,
+ 223, 235, 9, 2, 213, 4, 23, 215, 8, 9, 2, 212, 253, 9, 2, 212, 248, 9, 2,
+ 212, 249, 209, 141, 9, 2, 212, 249, 115, 212, 249, 247, 161, 115, 247,
+ 160, 9, 2, 212, 244, 9, 2, 212, 199, 9, 2, 212, 200, 115, 230, 239, 212,
+ 199, 9, 2, 212, 197, 9, 2, 212, 196, 9, 2, 212, 162, 9, 2, 212, 163, 237,
+ 208, 9, 2, 212, 149, 9, 2, 212, 147, 9, 2, 212, 148, 115, 212, 148, 212,
+ 197, 9, 2, 212, 140, 9, 2, 212, 138, 9, 2, 211, 10, 9, 2, 211, 11, 115,
+ 211, 10, 9, 2, 210, 232, 9, 2, 210, 231, 9, 2, 210, 229, 9, 2, 210, 220,
+ 9, 2, 210, 219, 9, 2, 210, 193, 9, 2, 210, 192, 9, 2, 210, 22, 9, 2, 210,
+ 23, 250, 59, 9, 2, 210, 23, 23, 237, 3, 9, 2, 210, 23, 23, 224, 155, 9,
+ 2, 210, 23, 237, 208, 9, 2, 210, 10, 9, 2, 210, 11, 115, 210, 11, 222,
+ 101, 115, 222, 101, 243, 157, 115, 243, 156, 9, 2, 210, 11, 211, 176, 9,
+ 2, 209, 255, 9, 2, 160, 23, 248, 86, 9, 2, 160, 23, 237, 219, 9, 2, 160,
+ 23, 213, 43, 9, 2, 160, 23, 212, 199, 9, 2, 160, 23, 207, 197, 9, 2, 160,
+ 23, 207, 29, 9, 2, 209, 242, 9, 2, 209, 218, 9, 2, 209, 187, 9, 2, 209,
+ 188, 237, 208, 9, 2, 209, 2, 9, 2, 209, 3, 209, 141, 9, 2, 208, 229, 9,
+ 2, 208, 206, 9, 2, 208, 207, 23, 209, 242, 9, 2, 208, 207, 115, 208, 206,
+ 9, 2, 208, 207, 115, 208, 207, 239, 0, 115, 239, 0, 238, 225, 115, 238,
+ 224, 9, 2, 207, 203, 9, 2, 207, 197, 9, 2, 207, 195, 9, 2, 207, 191, 9,
+ 2, 207, 181, 9, 2, 207, 182, 115, 207, 182, 202, 117, 115, 202, 116, 9,
+ 2, 68, 9, 2, 106, 237, 219, 9, 2, 106, 106, 68, 9, 2, 106, 115, 106, 219,
+ 169, 115, 219, 169, 238, 225, 115, 238, 224, 9, 2, 106, 115, 106, 210,
+ 194, 115, 210, 193, 9, 2, 106, 115, 106, 106, 216, 73, 115, 106, 216, 72,
+ 9, 2, 207, 40, 9, 2, 207, 35, 9, 2, 207, 29, 9, 2, 207, 30, 228, 177, 9,
+ 2, 207, 30, 23, 249, 15, 9, 2, 207, 30, 23, 224, 155, 9, 2, 207, 30, 23,
+ 106, 91, 106, 91, 68, 9, 2, 207, 30, 23, 106, 91, 106, 91, 106, 237, 208,
+ 9, 2, 207, 30, 237, 208, 9, 2, 207, 30, 213, 24, 9, 2, 207, 30, 213, 25,
+ 23, 249, 15, 9, 2, 207, 25, 9, 2, 207, 6, 9, 2, 207, 7, 23, 228, 94, 9,
+ 2, 207, 7, 23, 225, 21, 91, 244, 212, 9, 2, 207, 7, 23, 213, 88, 9, 2,
+ 207, 7, 23, 68, 9, 2, 207, 5, 9, 2, 207, 1, 9, 2, 207, 2, 23, 229, 231,
+ 9, 2, 207, 2, 23, 185, 9, 2, 206, 255, 9, 2, 207, 0, 237, 208, 9, 2, 206,
+ 210, 9, 2, 206, 211, 245, 124, 206, 210, 9, 2, 206, 211, 213, 24, 9, 2,
+ 206, 208, 9, 2, 206, 209, 23, 34, 91, 152, 9, 2, 206, 209, 23, 34, 91,
+ 201, 201, 9, 2, 206, 209, 23, 251, 39, 9, 2, 206, 209, 23, 152, 9, 2,
+ 206, 209, 23, 221, 40, 9, 2, 206, 209, 23, 207, 40, 9, 2, 206, 209, 23,
+ 207, 41, 91, 250, 75, 9, 2, 206, 209, 23, 207, 41, 91, 248, 86, 9, 2,
+ 206, 207, 9, 2, 206, 204, 9, 2, 206, 203, 9, 2, 206, 199, 9, 2, 206, 200,
+ 23, 63, 9, 2, 206, 200, 23, 250, 69, 9, 2, 206, 200, 23, 142, 9, 2, 206,
+ 200, 23, 242, 31, 9, 2, 206, 200, 23, 239, 8, 9, 2, 206, 200, 23, 238,
+ 246, 9, 2, 206, 200, 23, 238, 233, 209, 141, 9, 2, 206, 200, 23, 238,
+ 224, 9, 2, 206, 200, 23, 237, 230, 9, 2, 206, 200, 23, 152, 9, 2, 206,
+ 200, 23, 231, 85, 9, 2, 206, 200, 23, 231, 66, 9, 2, 206, 200, 23, 230,
+ 209, 9, 2, 206, 200, 23, 229, 100, 9, 2, 206, 200, 23, 226, 222, 9, 2,
+ 206, 200, 23, 224, 110, 9, 2, 206, 200, 23, 185, 9, 2, 206, 200, 23, 213,
+ 43, 9, 2, 206, 200, 23, 212, 147, 9, 2, 206, 200, 23, 207, 203, 9, 2,
+ 206, 200, 23, 106, 91, 237, 219, 9, 2, 206, 200, 23, 207, 29, 9, 2, 206,
+ 200, 23, 206, 197, 9, 2, 206, 197, 9, 2, 206, 198, 23, 68, 9, 2, 206,
+ 186, 9, 2, 206, 187, 23, 63, 9, 2, 206, 187, 23, 228, 209, 9, 2, 206,
+ 187, 23, 228, 183, 9, 2, 206, 187, 23, 209, 242, 9, 2, 206, 182, 9, 2,
+ 206, 185, 9, 2, 206, 183, 9, 2, 206, 179, 9, 2, 206, 167, 9, 2, 206, 168,
+ 23, 229, 231, 9, 2, 206, 166, 9, 2, 202, 116, 9, 2, 202, 117, 209, 141,
+ 9, 2, 202, 117, 103, 23, 228, 183, 9, 2, 202, 112, 9, 2, 202, 105, 9, 2,
+ 202, 91, 9, 2, 202, 39, 9, 2, 202, 40, 115, 202, 39, 9, 2, 202, 38, 9, 2,
+ 202, 36, 9, 2, 202, 37, 230, 31, 209, 141, 9, 2, 202, 31, 9, 2, 202, 22,
+ 9, 2, 202, 6, 9, 2, 202, 4, 9, 2, 202, 5, 23, 63, 9, 2, 202, 3, 9, 2,
+ 202, 2, 9, 2, 229, 254, 241, 119, 9, 2, 251, 233, 23, 221, 40, 9, 2, 251,
+ 150, 23, 63, 9, 2, 250, 244, 23, 228, 198, 9, 2, 244, 204, 229, 69, 23,
+ 207, 41, 91, 225, 79, 9, 2, 244, 202, 9, 2, 243, 157, 91, 212, 199, 9, 2,
+ 242, 41, 23, 213, 43, 9, 2, 240, 180, 23, 237, 219, 9, 2, 240, 180, 23,
+ 213, 43, 9, 2, 239, 7, 23, 250, 232, 91, 230, 13, 91, 63, 9, 2, 239, 7,
+ 23, 250, 73, 9, 2, 238, 189, 9, 2, 238, 71, 9, 2, 236, 3, 9, 2, 230, 44,
+ 23, 250, 200, 9, 2, 230, 44, 23, 250, 72, 9, 2, 230, 44, 23, 238, 55, 9,
+ 2, 230, 44, 23, 237, 219, 9, 2, 230, 44, 23, 237, 4, 23, 250, 73, 9, 2,
+ 230, 44, 23, 226, 222, 9, 2, 230, 44, 23, 185, 9, 2, 230, 44, 23, 212,
+ 192, 9, 2, 230, 44, 23, 207, 203, 9, 2, 230, 44, 23, 206, 208, 9, 2, 228,
+ 95, 23, 238, 81, 9, 2, 226, 238, 213, 25, 23, 249, 15, 9, 2, 226, 238,
+ 23, 241, 5, 91, 228, 30, 9, 2, 226, 238, 23, 212, 199, 9, 2, 224, 227, 9,
+ 2, 223, 198, 23, 202, 116, 9, 2, 223, 108, 9, 2, 222, 68, 9, 2, 222, 67,
+ 9, 2, 222, 66, 23, 248, 253, 9, 2, 222, 66, 23, 238, 81, 9, 2, 221, 57,
+ 215, 198, 222, 59, 244, 54, 9, 2, 218, 223, 250, 59, 9, 2, 218, 113, 9,
+ 2, 215, 23, 23, 231, 86, 237, 208, 9, 2, 209, 1, 9, 2, 207, 7, 23, 225,
+ 20, 9, 2, 106, 68, 9, 141, 2, 120, 250, 75, 9, 141, 2, 126, 250, 75, 9,
+ 141, 2, 239, 147, 250, 75, 9, 141, 2, 239, 233, 250, 75, 9, 141, 2, 212,
+ 88, 250, 75, 9, 141, 2, 213, 112, 250, 75, 9, 141, 2, 241, 143, 250, 75,
+ 9, 141, 2, 222, 64, 250, 75, 9, 141, 2, 126, 243, 156, 9, 141, 2, 239,
+ 147, 243, 156, 9, 141, 2, 239, 233, 243, 156, 9, 141, 2, 212, 88, 243,
+ 156, 9, 141, 2, 213, 112, 243, 156, 9, 141, 2, 241, 143, 243, 156, 9,
+ 141, 2, 222, 64, 243, 156, 9, 141, 2, 239, 147, 68, 9, 141, 2, 239, 233,
+ 68, 9, 141, 2, 212, 88, 68, 9, 141, 2, 213, 112, 68, 9, 141, 2, 241, 143,
+ 68, 9, 141, 2, 222, 64, 68, 9, 141, 2, 118, 238, 164, 9, 141, 2, 120,
+ 238, 164, 9, 141, 2, 126, 238, 164, 9, 141, 2, 239, 147, 238, 164, 9,
+ 141, 2, 239, 233, 238, 164, 9, 141, 2, 212, 88, 238, 164, 9, 141, 2, 213,
+ 112, 238, 164, 9, 141, 2, 241, 143, 238, 164, 9, 141, 2, 222, 64, 238,
+ 164, 9, 141, 2, 118, 238, 161, 9, 141, 2, 120, 238, 161, 9, 141, 2, 126,
+ 238, 161, 9, 141, 2, 239, 147, 238, 161, 9, 141, 2, 239, 233, 238, 161,
+ 9, 141, 2, 120, 213, 59, 9, 141, 2, 126, 213, 59, 9, 141, 2, 126, 213,
+ 60, 206, 69, 18, 9, 141, 2, 239, 147, 213, 59, 9, 141, 2, 239, 233, 213,
+ 59, 9, 141, 2, 212, 88, 213, 59, 9, 141, 2, 213, 112, 213, 59, 9, 141, 2,
+ 241, 143, 213, 59, 9, 141, 2, 222, 64, 213, 59, 9, 141, 2, 118, 213, 54,
+ 9, 141, 2, 120, 213, 54, 9, 141, 2, 126, 213, 54, 9, 141, 2, 126, 213,
+ 55, 206, 69, 18, 9, 141, 2, 239, 147, 213, 54, 9, 141, 2, 239, 233, 213,
+ 54, 9, 141, 2, 213, 60, 23, 238, 247, 91, 243, 156, 9, 141, 2, 213, 60,
+ 23, 238, 247, 91, 224, 110, 9, 141, 2, 118, 247, 156, 9, 141, 2, 120,
+ 247, 156, 9, 141, 2, 126, 247, 156, 9, 141, 2, 126, 247, 157, 206, 69,
+ 18, 9, 141, 2, 239, 147, 247, 156, 9, 141, 2, 239, 233, 247, 156, 9, 141,
+ 2, 126, 206, 69, 239, 159, 241, 6, 9, 141, 2, 126, 206, 69, 239, 159,
+ 241, 3, 9, 141, 2, 239, 147, 206, 69, 239, 159, 227, 118, 9, 141, 2, 239,
+ 147, 206, 69, 239, 159, 227, 116, 9, 141, 2, 239, 147, 206, 69, 239, 159,
+ 227, 119, 63, 9, 141, 2, 239, 147, 206, 69, 239, 159, 227, 119, 249, 255,
+ 9, 141, 2, 212, 88, 206, 69, 239, 159, 250, 71, 9, 141, 2, 213, 112, 206,
+ 69, 239, 159, 231, 58, 9, 141, 2, 213, 112, 206, 69, 239, 159, 231, 60,
+ 63, 9, 141, 2, 213, 112, 206, 69, 239, 159, 231, 60, 249, 255, 9, 141, 2,
+ 241, 143, 206, 69, 239, 159, 206, 181, 9, 141, 2, 241, 143, 206, 69, 239,
+ 159, 206, 180, 9, 141, 2, 222, 64, 206, 69, 239, 159, 231, 74, 9, 141, 2,
+ 222, 64, 206, 69, 239, 159, 231, 73, 9, 141, 2, 222, 64, 206, 69, 239,
+ 159, 231, 72, 9, 141, 2, 222, 64, 206, 69, 239, 159, 231, 75, 63, 9, 141,
+ 2, 120, 250, 76, 209, 141, 9, 141, 2, 126, 250, 76, 209, 141, 9, 141, 2,
+ 239, 147, 250, 76, 209, 141, 9, 141, 2, 239, 233, 250, 76, 209, 141, 9,
+ 141, 2, 212, 88, 250, 76, 209, 141, 9, 141, 2, 118, 248, 240, 9, 141, 2,
+ 120, 248, 240, 9, 141, 2, 126, 248, 240, 9, 141, 2, 239, 147, 248, 240,
+ 9, 141, 2, 239, 147, 248, 241, 206, 69, 18, 9, 141, 2, 239, 233, 248,
+ 240, 9, 141, 2, 239, 233, 248, 241, 206, 69, 18, 9, 141, 2, 222, 77, 9,
+ 141, 2, 222, 78, 9, 141, 2, 118, 241, 2, 9, 141, 2, 120, 241, 2, 9, 141,
+ 2, 118, 209, 61, 243, 156, 9, 141, 2, 120, 209, 58, 243, 156, 9, 141, 2,
+ 239, 233, 212, 77, 243, 156, 9, 141, 2, 118, 209, 61, 206, 69, 239, 159,
+ 63, 9, 141, 2, 120, 209, 58, 206, 69, 239, 159, 63, 9, 141, 2, 118, 241,
+ 139, 250, 75, 9, 141, 2, 118, 217, 56, 250, 75, 9, 141, 2, 38, 250, 62,
+ 118, 212, 78, 9, 141, 2, 38, 250, 62, 118, 217, 55, 9, 141, 2, 118, 217,
+ 56, 237, 202, 9, 141, 2, 118, 162, 237, 202, 9, 141, 2, 241, 120, 118,
+ 209, 60, 9, 141, 2, 241, 120, 120, 209, 57, 9, 141, 2, 241, 120, 239,
+ 153, 9, 141, 2, 241, 120, 240, 18, 9, 141, 2, 239, 147, 106, 206, 69, 18,
+ 9, 141, 2, 239, 233, 106, 206, 69, 18, 9, 141, 2, 212, 88, 106, 206, 69,
+ 18, 9, 141, 2, 213, 112, 106, 206, 69, 18, 9, 141, 2, 241, 143, 106, 206,
+ 69, 18, 9, 141, 2, 222, 64, 106, 206, 69, 18, 9, 217, 179, 2, 38, 250,
+ 62, 203, 238, 243, 141, 9, 217, 179, 2, 80, 245, 242, 9, 217, 179, 2,
+ 243, 228, 245, 242, 9, 217, 179, 2, 243, 228, 208, 81, 9, 217, 179, 2,
+ 243, 228, 217, 61, 9, 2, 251, 233, 23, 221, 41, 209, 141, 9, 2, 251, 233,
+ 23, 212, 197, 9, 2, 251, 123, 23, 241, 4, 9, 2, 249, 16, 23, 243, 157,
+ 209, 141, 9, 2, 249, 4, 23, 251, 149, 9, 2, 249, 4, 23, 222, 100, 9, 2,
+ 249, 4, 23, 202, 116, 9, 2, 247, 194, 115, 247, 194, 23, 223, 109, 9, 2,
+ 244, 213, 23, 209, 242, 9, 2, 244, 204, 23, 228, 183, 9, 2, 243, 189, 23,
+ 231, 85, 9, 2, 243, 189, 23, 106, 106, 68, 9, 2, 243, 187, 23, 207, 29,
+ 9, 2, 242, 38, 23, 250, 200, 9, 2, 242, 38, 23, 250, 75, 9, 2, 242, 38,
+ 23, 250, 76, 250, 50, 227, 222, 9, 2, 242, 38, 23, 243, 176, 9, 2, 242,
+ 38, 23, 242, 31, 9, 2, 242, 38, 23, 241, 22, 9, 2, 242, 38, 23, 239, 8,
+ 9, 2, 242, 38, 23, 238, 81, 9, 2, 242, 38, 23, 238, 64, 237, 208, 9, 2,
+ 242, 38, 23, 238, 55, 9, 2, 242, 38, 23, 152, 9, 2, 242, 38, 23, 237, 3,
+ 9, 2, 242, 38, 23, 231, 86, 237, 208, 9, 2, 242, 38, 23, 229, 231, 9, 2,
+ 242, 38, 23, 228, 183, 9, 2, 242, 38, 23, 228, 177, 9, 2, 242, 38, 23,
+ 228, 178, 91, 229, 231, 9, 2, 242, 38, 23, 228, 82, 9, 2, 242, 38, 23,
+ 228, 28, 9, 2, 242, 38, 23, 228, 29, 23, 228, 183, 9, 2, 242, 38, 23,
+ 226, 228, 91, 238, 55, 9, 2, 242, 38, 23, 225, 79, 9, 2, 242, 38, 23,
+ 224, 228, 9, 2, 242, 38, 23, 224, 155, 9, 2, 242, 38, 23, 222, 100, 9, 2,
+ 242, 38, 23, 218, 167, 9, 2, 242, 38, 23, 213, 43, 9, 2, 242, 38, 23,
+ 212, 163, 237, 208, 9, 2, 241, 191, 23, 228, 183, 9, 2, 241, 191, 23,
+ 219, 96, 9, 2, 241, 23, 203, 196, 9, 2, 241, 5, 245, 124, 241, 4, 9, 2,
+ 240, 180, 213, 25, 23, 250, 75, 9, 2, 240, 180, 213, 25, 23, 237, 3, 9,
+ 2, 240, 180, 213, 25, 23, 231, 86, 237, 208, 9, 2, 240, 180, 213, 25, 23,
+ 228, 113, 9, 2, 240, 180, 213, 25, 23, 228, 30, 9, 2, 240, 180, 213, 25,
+ 23, 225, 20, 9, 2, 240, 180, 213, 25, 23, 224, 228, 9, 2, 240, 180, 213,
+ 25, 23, 211, 10, 9, 2, 240, 180, 23, 211, 10, 9, 2, 239, 7, 23, 249, 3,
+ 9, 2, 239, 7, 23, 243, 189, 237, 208, 9, 2, 239, 7, 23, 242, 38, 23, 231,
+ 86, 237, 208, 9, 2, 239, 7, 23, 242, 38, 23, 229, 231, 9, 2, 239, 7, 23,
+ 241, 25, 9, 2, 239, 7, 23, 239, 8, 9, 2, 239, 7, 23, 238, 225, 91, 243,
+ 233, 9, 2, 239, 7, 23, 238, 225, 91, 222, 240, 9, 2, 239, 7, 23, 237,
+ 160, 91, 63, 9, 2, 239, 7, 23, 228, 178, 91, 229, 231, 9, 2, 239, 7, 23,
+ 228, 28, 9, 2, 239, 7, 23, 228, 29, 23, 228, 183, 9, 2, 239, 7, 23, 226,
+ 227, 9, 2, 239, 7, 23, 223, 199, 9, 2, 239, 7, 23, 222, 240, 9, 2, 239,
+ 7, 23, 222, 241, 91, 241, 190, 9, 2, 239, 7, 23, 222, 241, 91, 238, 81,
+ 9, 2, 239, 7, 23, 213, 3, 9, 2, 239, 7, 23, 202, 22, 9, 2, 239, 2, 215,
+ 198, 222, 59, 244, 54, 9, 2, 238, 163, 23, 68, 9, 2, 238, 56, 23, 238,
+ 56, 245, 124, 238, 55, 9, 2, 237, 229, 23, 231, 86, 237, 208, 9, 2, 237,
+ 220, 91, 238, 56, 23, 209, 242, 9, 2, 237, 160, 209, 142, 237, 208, 9, 2,
+ 237, 4, 23, 250, 76, 115, 237, 4, 23, 250, 75, 9, 2, 230, 44, 23, 247,
+ 193, 9, 2, 230, 44, 23, 173, 9, 2, 230, 44, 23, 106, 106, 68, 9, 2, 230,
+ 44, 23, 206, 210, 9, 2, 228, 95, 23, 202, 7, 115, 202, 6, 9, 2, 228, 83,
+ 9, 2, 228, 81, 9, 2, 228, 80, 9, 2, 228, 79, 9, 2, 228, 78, 9, 2, 228,
+ 77, 9, 2, 228, 76, 9, 2, 228, 75, 115, 228, 75, 237, 208, 9, 2, 228, 74,
+ 9, 2, 228, 73, 115, 228, 72, 9, 2, 228, 71, 9, 2, 228, 70, 9, 2, 228, 69,
+ 9, 2, 228, 68, 9, 2, 228, 67, 9, 2, 228, 66, 9, 2, 228, 65, 9, 2, 228,
+ 64, 9, 2, 228, 63, 9, 2, 228, 62, 9, 2, 228, 61, 9, 2, 228, 60, 9, 2,
+ 228, 59, 9, 2, 228, 58, 9, 2, 228, 57, 9, 2, 228, 56, 9, 2, 228, 55, 9,
+ 2, 228, 54, 9, 2, 228, 52, 9, 2, 228, 53, 23, 237, 230, 9, 2, 228, 53,
+ 23, 231, 85, 9, 2, 228, 53, 23, 219, 97, 91, 226, 236, 9, 2, 228, 53, 23,
+ 219, 97, 91, 219, 97, 91, 226, 236, 9, 2, 228, 53, 23, 207, 41, 91, 249,
+ 32, 9, 2, 228, 51, 9, 2, 228, 50, 9, 2, 228, 49, 9, 2, 228, 48, 9, 2,
+ 228, 47, 9, 2, 228, 46, 9, 2, 228, 45, 9, 2, 228, 44, 9, 2, 228, 43, 9,
+ 2, 228, 42, 9, 2, 228, 40, 9, 2, 228, 41, 23, 250, 75, 9, 2, 228, 41, 23,
+ 249, 15, 9, 2, 228, 41, 23, 242, 30, 237, 209, 237, 208, 9, 2, 228, 41,
+ 23, 228, 207, 9, 2, 228, 41, 23, 228, 113, 9, 2, 228, 41, 23, 209, 218,
+ 9, 2, 228, 41, 23, 209, 187, 9, 2, 228, 41, 23, 207, 40, 9, 2, 228, 41,
+ 23, 207, 29, 9, 2, 228, 41, 23, 206, 197, 9, 2, 228, 39, 9, 2, 228, 37,
+ 9, 2, 228, 38, 23, 242, 40, 9, 2, 228, 38, 23, 239, 8, 9, 2, 228, 38, 23,
+ 231, 85, 9, 2, 228, 38, 23, 231, 86, 237, 208, 9, 2, 228, 38, 23, 222,
+ 100, 9, 2, 228, 38, 23, 219, 97, 91, 219, 97, 91, 226, 236, 9, 2, 228,
+ 38, 23, 213, 28, 91, 229, 100, 9, 2, 228, 38, 23, 207, 29, 9, 2, 228, 38,
+ 23, 206, 197, 9, 2, 228, 35, 9, 2, 228, 34, 9, 2, 226, 238, 237, 209, 23,
+ 250, 75, 9, 2, 226, 238, 23, 243, 156, 9, 2, 226, 238, 23, 237, 140, 9,
+ 2, 226, 238, 23, 219, 96, 9, 2, 226, 238, 23, 219, 97, 91, 219, 97, 91,
+ 226, 236, 9, 2, 226, 238, 23, 209, 242, 9, 2, 224, 156, 91, 202, 115, 9,
+ 2, 223, 200, 115, 223, 200, 23, 239, 8, 9, 2, 223, 200, 115, 223, 200,
+ 23, 230, 12, 9, 2, 222, 66, 23, 243, 189, 237, 208, 9, 2, 222, 66, 23,
+ 238, 55, 9, 2, 222, 66, 23, 237, 212, 9, 2, 222, 66, 23, 237, 3, 9, 2,
+ 222, 66, 23, 229, 171, 9, 2, 222, 66, 23, 228, 78, 9, 2, 222, 66, 23,
+ 225, 79, 9, 2, 222, 66, 23, 219, 97, 91, 219, 96, 9, 2, 222, 66, 23, 68,
+ 9, 2, 222, 66, 23, 106, 91, 68, 9, 2, 222, 66, 23, 206, 197, 9, 2, 215,
+ 23, 237, 209, 23, 152, 9, 2, 215, 23, 23, 241, 92, 9, 2, 215, 23, 23,
+ 213, 44, 250, 50, 227, 222, 9, 2, 215, 23, 23, 209, 242, 9, 2, 213, 87,
+ 209, 141, 9, 2, 213, 44, 115, 213, 43, 9, 2, 213, 44, 91, 236, 21, 9, 2,
+ 213, 44, 91, 223, 86, 9, 2, 213, 44, 91, 214, 230, 9, 2, 212, 198, 91,
+ 242, 38, 23, 222, 100, 9, 2, 212, 198, 91, 241, 191, 23, 250, 231, 9, 2,
+ 212, 163, 23, 209, 242, 9, 2, 209, 243, 91, 215, 22, 9, 2, 207, 192, 23,
+ 238, 233, 209, 141, 9, 2, 207, 192, 23, 126, 243, 156, 9, 2, 206, 209,
+ 230, 238, 9, 2, 206, 209, 23, 207, 29, 9, 2, 206, 200, 23, 244, 153, 9,
+ 2, 206, 200, 23, 228, 36, 9, 2, 206, 200, 23, 226, 236, 9, 2, 202, 115,
+ 9, 2, 202, 7, 115, 202, 7, 91, 214, 230, 9, 2, 202, 5, 23, 126, 243, 157,
+ 209, 141, 14, 7, 255, 18, 14, 7, 255, 17, 14, 7, 255, 16, 14, 7, 255, 15,
+ 14, 7, 255, 14, 14, 7, 255, 13, 14, 7, 255, 12, 14, 7, 255, 11, 14, 7,
+ 255, 10, 14, 7, 255, 9, 14, 7, 255, 8, 14, 7, 255, 7, 14, 7, 255, 6, 14,
+ 7, 255, 4, 14, 7, 255, 3, 14, 7, 255, 2, 14, 7, 255, 1, 14, 7, 255, 0,
+ 14, 7, 254, 255, 14, 7, 254, 254, 14, 7, 254, 253, 14, 7, 254, 252, 14,
+ 7, 254, 251, 14, 7, 254, 250, 14, 7, 254, 249, 14, 7, 254, 248, 14, 7,
+ 254, 247, 14, 7, 254, 246, 14, 7, 254, 245, 14, 7, 254, 244, 14, 7, 254,
+ 243, 14, 7, 254, 241, 14, 7, 254, 240, 14, 7, 254, 238, 14, 7, 254, 237,
+ 14, 7, 254, 236, 14, 7, 254, 235, 14, 7, 254, 234, 14, 7, 254, 233, 14,
+ 7, 254, 232, 14, 7, 254, 231, 14, 7, 254, 230, 14, 7, 254, 229, 14, 7,
+ 254, 228, 14, 7, 254, 227, 14, 7, 254, 225, 14, 7, 254, 224, 14, 7, 254,
+ 223, 14, 7, 254, 221, 14, 7, 254, 220, 14, 7, 254, 219, 14, 7, 254, 218,
+ 14, 7, 254, 217, 14, 7, 254, 216, 14, 7, 254, 215, 14, 7, 254, 214, 14,
+ 7, 254, 211, 14, 7, 254, 210, 14, 7, 254, 209, 14, 7, 254, 208, 14, 7,
+ 254, 207, 14, 7, 254, 206, 14, 7, 254, 205, 14, 7, 254, 204, 14, 7, 254,
+ 203, 14, 7, 254, 202, 14, 7, 254, 201, 14, 7, 254, 200, 14, 7, 254, 199,
+ 14, 7, 254, 198, 14, 7, 254, 197, 14, 7, 254, 196, 14, 7, 254, 195, 14,
+ 7, 254, 194, 14, 7, 254, 193, 14, 7, 254, 192, 14, 7, 254, 188, 14, 7,
+ 254, 187, 14, 7, 254, 186, 14, 7, 254, 185, 14, 7, 249, 253, 14, 7, 249,
+ 251, 14, 7, 249, 249, 14, 7, 249, 247, 14, 7, 249, 245, 14, 7, 249, 244,
+ 14, 7, 249, 242, 14, 7, 249, 240, 14, 7, 249, 238, 14, 7, 249, 236, 14,
+ 7, 247, 121, 14, 7, 247, 120, 14, 7, 247, 119, 14, 7, 247, 118, 14, 7,
+ 247, 117, 14, 7, 247, 116, 14, 7, 247, 115, 14, 7, 247, 114, 14, 7, 247,
+ 113, 14, 7, 247, 112, 14, 7, 247, 111, 14, 7, 247, 110, 14, 7, 247, 109,
+ 14, 7, 247, 108, 14, 7, 247, 107, 14, 7, 247, 106, 14, 7, 247, 105, 14,
+ 7, 247, 104, 14, 7, 247, 103, 14, 7, 247, 102, 14, 7, 247, 101, 14, 7,
+ 247, 100, 14, 7, 247, 99, 14, 7, 247, 98, 14, 7, 247, 97, 14, 7, 247, 96,
+ 14, 7, 247, 95, 14, 7, 247, 94, 14, 7, 245, 50, 14, 7, 245, 49, 14, 7,
+ 245, 48, 14, 7, 245, 47, 14, 7, 245, 46, 14, 7, 245, 45, 14, 7, 245, 44,
+ 14, 7, 245, 43, 14, 7, 245, 42, 14, 7, 245, 41, 14, 7, 245, 40, 14, 7,
+ 245, 39, 14, 7, 245, 38, 14, 7, 245, 37, 14, 7, 245, 36, 14, 7, 245, 35,
+ 14, 7, 245, 34, 14, 7, 245, 33, 14, 7, 245, 32, 14, 7, 245, 31, 14, 7,
+ 245, 30, 14, 7, 245, 29, 14, 7, 245, 28, 14, 7, 245, 27, 14, 7, 245, 26,
+ 14, 7, 245, 25, 14, 7, 245, 24, 14, 7, 245, 23, 14, 7, 245, 22, 14, 7,
+ 245, 21, 14, 7, 245, 20, 14, 7, 245, 19, 14, 7, 245, 18, 14, 7, 245, 17,
+ 14, 7, 245, 16, 14, 7, 245, 15, 14, 7, 245, 14, 14, 7, 245, 13, 14, 7,
+ 245, 12, 14, 7, 245, 11, 14, 7, 245, 10, 14, 7, 245, 9, 14, 7, 245, 8,
+ 14, 7, 245, 7, 14, 7, 245, 6, 14, 7, 245, 5, 14, 7, 245, 4, 14, 7, 245,
+ 3, 14, 7, 245, 2, 14, 7, 245, 1, 14, 7, 245, 0, 14, 7, 244, 255, 14, 7,
+ 244, 254, 14, 7, 244, 253, 14, 7, 244, 252, 14, 7, 244, 251, 14, 7, 244,
+ 250, 14, 7, 244, 249, 14, 7, 244, 248, 14, 7, 244, 247, 14, 7, 244, 246,
+ 14, 7, 244, 245, 14, 7, 244, 244, 14, 7, 244, 243, 14, 7, 244, 242, 14,
+ 7, 244, 241, 14, 7, 244, 240, 14, 7, 244, 239, 14, 7, 244, 238, 14, 7,
+ 244, 237, 14, 7, 244, 236, 14, 7, 244, 235, 14, 7, 244, 234, 14, 7, 244,
+ 233, 14, 7, 244, 232, 14, 7, 244, 231, 14, 7, 244, 230, 14, 7, 244, 229,
+ 14, 7, 244, 228, 14, 7, 244, 227, 14, 7, 244, 226, 14, 7, 244, 225, 14,
+ 7, 244, 224, 14, 7, 244, 223, 14, 7, 244, 222, 14, 7, 244, 221, 14, 7,
+ 244, 220, 14, 7, 244, 219, 14, 7, 244, 218, 14, 7, 244, 217, 14, 7, 244,
+ 216, 14, 7, 244, 215, 14, 7, 241, 235, 14, 7, 241, 234, 14, 7, 241, 233,
+ 14, 7, 241, 232, 14, 7, 241, 231, 14, 7, 241, 230, 14, 7, 241, 229, 14,
+ 7, 241, 228, 14, 7, 241, 227, 14, 7, 241, 226, 14, 7, 241, 225, 14, 7,
+ 241, 224, 14, 7, 241, 223, 14, 7, 241, 222, 14, 7, 241, 221, 14, 7, 241,
+ 220, 14, 7, 241, 219, 14, 7, 241, 218, 14, 7, 241, 217, 14, 7, 241, 216,
+ 14, 7, 241, 215, 14, 7, 241, 214, 14, 7, 241, 213, 14, 7, 241, 212, 14,
+ 7, 241, 211, 14, 7, 241, 210, 14, 7, 241, 209, 14, 7, 241, 208, 14, 7,
+ 241, 207, 14, 7, 241, 206, 14, 7, 241, 205, 14, 7, 241, 204, 14, 7, 241,
+ 203, 14, 7, 241, 202, 14, 7, 241, 201, 14, 7, 241, 200, 14, 7, 241, 199,
+ 14, 7, 241, 198, 14, 7, 241, 197, 14, 7, 241, 196, 14, 7, 241, 195, 14,
+ 7, 241, 194, 14, 7, 241, 193, 14, 7, 241, 192, 14, 7, 240, 173, 14, 7,
+ 240, 172, 14, 7, 240, 171, 14, 7, 240, 170, 14, 7, 240, 169, 14, 7, 240,
+ 168, 14, 7, 240, 167, 14, 7, 240, 166, 14, 7, 240, 165, 14, 7, 240, 164,
+ 14, 7, 240, 163, 14, 7, 240, 162, 14, 7, 240, 161, 14, 7, 240, 160, 14,
+ 7, 240, 159, 14, 7, 240, 158, 14, 7, 240, 157, 14, 7, 240, 156, 14, 7,
+ 240, 155, 14, 7, 240, 154, 14, 7, 240, 153, 14, 7, 240, 152, 14, 7, 240,
+ 151, 14, 7, 240, 150, 14, 7, 240, 149, 14, 7, 240, 148, 14, 7, 240, 147,
+ 14, 7, 240, 146, 14, 7, 240, 145, 14, 7, 240, 144, 14, 7, 240, 143, 14,
+ 7, 240, 142, 14, 7, 240, 141, 14, 7, 240, 140, 14, 7, 240, 139, 14, 7,
+ 240, 138, 14, 7, 240, 137, 14, 7, 240, 136, 14, 7, 240, 135, 14, 7, 240,
+ 134, 14, 7, 240, 133, 14, 7, 240, 132, 14, 7, 240, 131, 14, 7, 240, 130,
+ 14, 7, 240, 129, 14, 7, 240, 128, 14, 7, 240, 127, 14, 7, 240, 126, 14,
+ 7, 240, 125, 14, 7, 240, 124, 14, 7, 240, 123, 14, 7, 240, 122, 14, 7,
+ 240, 121, 14, 7, 240, 120, 14, 7, 240, 119, 14, 7, 240, 118, 14, 7, 240,
+ 117, 14, 7, 240, 116, 14, 7, 240, 115, 14, 7, 240, 114, 14, 7, 240, 113,
+ 14, 7, 240, 112, 14, 7, 240, 111, 14, 7, 240, 110, 14, 7, 240, 109, 14,
+ 7, 239, 74, 14, 7, 239, 73, 14, 7, 239, 72, 14, 7, 239, 71, 14, 7, 239,
+ 70, 14, 7, 239, 69, 14, 7, 239, 68, 14, 7, 239, 67, 14, 7, 239, 66, 14,
+ 7, 239, 65, 14, 7, 239, 64, 14, 7, 239, 63, 14, 7, 239, 62, 14, 7, 239,
+ 61, 14, 7, 239, 60, 14, 7, 239, 59, 14, 7, 239, 58, 14, 7, 239, 57, 14,
+ 7, 239, 56, 14, 7, 239, 55, 14, 7, 239, 54, 14, 7, 239, 53, 14, 7, 239,
+ 52, 14, 7, 239, 51, 14, 7, 239, 50, 14, 7, 239, 49, 14, 7, 239, 48, 14,
+ 7, 239, 47, 14, 7, 239, 46, 14, 7, 239, 45, 14, 7, 239, 44, 14, 7, 239,
+ 43, 14, 7, 239, 42, 14, 7, 239, 41, 14, 7, 239, 40, 14, 7, 239, 39, 14,
+ 7, 239, 38, 14, 7, 239, 37, 14, 7, 239, 36, 14, 7, 239, 35, 14, 7, 239,
+ 34, 14, 7, 239, 33, 14, 7, 239, 32, 14, 7, 239, 31, 14, 7, 239, 30, 14,
+ 7, 239, 29, 14, 7, 239, 28, 14, 7, 239, 27, 14, 7, 239, 26, 14, 7, 239,
+ 25, 14, 7, 239, 24, 14, 7, 239, 23, 14, 7, 239, 22, 14, 7, 239, 21, 14,
+ 7, 239, 20, 14, 7, 239, 19, 14, 7, 239, 18, 14, 7, 239, 17, 14, 7, 239,
+ 16, 14, 7, 239, 15, 14, 7, 239, 14, 14, 7, 239, 13, 14, 7, 239, 12, 14,
+ 7, 239, 11, 14, 7, 237, 169, 14, 7, 237, 168, 14, 7, 237, 167, 14, 7,
+ 237, 166, 14, 7, 237, 165, 14, 7, 237, 164, 14, 7, 237, 163, 14, 7, 237,
+ 162, 14, 7, 237, 161, 14, 7, 235, 190, 14, 7, 235, 189, 14, 7, 235, 188,
+ 14, 7, 235, 187, 14, 7, 235, 186, 14, 7, 235, 185, 14, 7, 235, 184, 14,
+ 7, 235, 183, 14, 7, 235, 182, 14, 7, 235, 181, 14, 7, 235, 180, 14, 7,
+ 235, 179, 14, 7, 235, 178, 14, 7, 235, 177, 14, 7, 235, 176, 14, 7, 235,
+ 175, 14, 7, 235, 174, 14, 7, 235, 173, 14, 7, 235, 172, 14, 7, 230, 53,
+ 14, 7, 230, 52, 14, 7, 230, 51, 14, 7, 230, 50, 14, 7, 230, 49, 14, 7,
+ 230, 48, 14, 7, 230, 47, 14, 7, 230, 46, 14, 7, 228, 128, 14, 7, 228,
+ 127, 14, 7, 228, 126, 14, 7, 228, 125, 14, 7, 228, 124, 14, 7, 228, 123,
+ 14, 7, 228, 122, 14, 7, 228, 121, 14, 7, 228, 120, 14, 7, 228, 119, 14,
+ 7, 226, 183, 14, 7, 226, 182, 14, 7, 226, 181, 14, 7, 226, 179, 14, 7,
+ 226, 177, 14, 7, 226, 176, 14, 7, 226, 174, 14, 7, 226, 172, 14, 7, 226,
+ 170, 14, 7, 226, 168, 14, 7, 226, 166, 14, 7, 226, 164, 14, 7, 226, 162,
+ 14, 7, 226, 161, 14, 7, 226, 159, 14, 7, 226, 157, 14, 7, 226, 156, 14,
+ 7, 226, 155, 14, 7, 226, 154, 14, 7, 226, 153, 14, 7, 226, 152, 14, 7,
+ 226, 151, 14, 7, 226, 150, 14, 7, 226, 149, 14, 7, 226, 147, 14, 7, 226,
+ 145, 14, 7, 226, 143, 14, 7, 226, 142, 14, 7, 226, 140, 14, 7, 226, 139,
+ 14, 7, 226, 137, 14, 7, 226, 136, 14, 7, 226, 134, 14, 7, 226, 132, 14,
+ 7, 226, 130, 14, 7, 226, 128, 14, 7, 226, 126, 14, 7, 226, 125, 14, 7,
+ 226, 123, 14, 7, 226, 121, 14, 7, 226, 120, 14, 7, 226, 118, 14, 7, 226,
+ 116, 14, 7, 226, 114, 14, 7, 226, 112, 14, 7, 226, 111, 14, 7, 226, 109,
+ 14, 7, 226, 107, 14, 7, 226, 105, 14, 7, 226, 104, 14, 7, 226, 102, 14,
+ 7, 226, 100, 14, 7, 226, 99, 14, 7, 226, 98, 14, 7, 226, 96, 14, 7, 226,
+ 94, 14, 7, 226, 92, 14, 7, 226, 90, 14, 7, 226, 88, 14, 7, 226, 86, 14,
+ 7, 226, 84, 14, 7, 226, 83, 14, 7, 226, 81, 14, 7, 226, 79, 14, 7, 226,
+ 77, 14, 7, 226, 75, 14, 7, 223, 160, 14, 7, 223, 159, 14, 7, 223, 158,
+ 14, 7, 223, 157, 14, 7, 223, 156, 14, 7, 223, 155, 14, 7, 223, 154, 14,
+ 7, 223, 153, 14, 7, 223, 152, 14, 7, 223, 151, 14, 7, 223, 150, 14, 7,
+ 223, 149, 14, 7, 223, 148, 14, 7, 223, 147, 14, 7, 223, 146, 14, 7, 223,
+ 145, 14, 7, 223, 144, 14, 7, 223, 143, 14, 7, 223, 142, 14, 7, 223, 141,
+ 14, 7, 223, 140, 14, 7, 223, 139, 14, 7, 223, 138, 14, 7, 223, 137, 14,
+ 7, 223, 136, 14, 7, 223, 135, 14, 7, 223, 134, 14, 7, 223, 133, 14, 7,
+ 223, 132, 14, 7, 223, 131, 14, 7, 223, 130, 14, 7, 223, 129, 14, 7, 223,
+ 128, 14, 7, 223, 127, 14, 7, 223, 126, 14, 7, 223, 125, 14, 7, 223, 124,
+ 14, 7, 223, 123, 14, 7, 223, 122, 14, 7, 223, 121, 14, 7, 223, 120, 14,
+ 7, 223, 119, 14, 7, 223, 118, 14, 7, 223, 117, 14, 7, 223, 116, 14, 7,
+ 223, 115, 14, 7, 223, 114, 14, 7, 223, 113, 14, 7, 223, 112, 14, 7, 221,
+ 252, 14, 7, 221, 251, 14, 7, 221, 250, 14, 7, 221, 249, 14, 7, 221, 248,
+ 14, 7, 221, 247, 14, 7, 221, 246, 14, 7, 221, 245, 14, 7, 221, 244, 14,
+ 7, 221, 243, 14, 7, 221, 242, 14, 7, 221, 241, 14, 7, 221, 240, 14, 7,
+ 221, 239, 14, 7, 221, 238, 14, 7, 221, 237, 14, 7, 221, 236, 14, 7, 221,
+ 235, 14, 7, 221, 234, 14, 7, 221, 233, 14, 7, 221, 232, 14, 7, 221, 231,
+ 14, 7, 221, 83, 14, 7, 221, 82, 14, 7, 221, 81, 14, 7, 221, 80, 14, 7,
+ 221, 79, 14, 7, 221, 78, 14, 7, 221, 77, 14, 7, 221, 76, 14, 7, 221, 75,
+ 14, 7, 221, 74, 14, 7, 221, 73, 14, 7, 221, 72, 14, 7, 221, 71, 14, 7,
+ 221, 70, 14, 7, 221, 69, 14, 7, 221, 68, 14, 7, 221, 67, 14, 7, 221, 66,
+ 14, 7, 221, 65, 14, 7, 221, 64, 14, 7, 221, 63, 14, 7, 221, 62, 14, 7,
+ 221, 61, 14, 7, 221, 60, 14, 7, 221, 59, 14, 7, 221, 58, 14, 7, 220, 173,
+ 14, 7, 220, 172, 14, 7, 220, 171, 14, 7, 220, 170, 14, 7, 220, 169, 14,
+ 7, 220, 168, 14, 7, 220, 167, 14, 7, 220, 166, 14, 7, 220, 165, 14, 7,
+ 220, 164, 14, 7, 220, 163, 14, 7, 220, 162, 14, 7, 220, 161, 14, 7, 220,
+ 160, 14, 7, 220, 159, 14, 7, 220, 158, 14, 7, 220, 157, 14, 7, 220, 156,
+ 14, 7, 220, 155, 14, 7, 220, 154, 14, 7, 220, 153, 14, 7, 220, 152, 14,
+ 7, 220, 151, 14, 7, 220, 150, 14, 7, 220, 149, 14, 7, 220, 148, 14, 7,
+ 220, 147, 14, 7, 220, 146, 14, 7, 220, 145, 14, 7, 220, 144, 14, 7, 220,
+ 143, 14, 7, 220, 142, 14, 7, 220, 141, 14, 7, 220, 140, 14, 7, 220, 139,
+ 14, 7, 220, 138, 14, 7, 220, 137, 14, 7, 220, 136, 14, 7, 220, 135, 14,
+ 7, 220, 134, 14, 7, 220, 133, 14, 7, 220, 132, 14, 7, 220, 131, 14, 7,
+ 220, 130, 14, 7, 220, 129, 14, 7, 220, 128, 14, 7, 220, 127, 14, 7, 220,
+ 126, 14, 7, 220, 125, 14, 7, 220, 124, 14, 7, 220, 123, 14, 7, 220, 122,
+ 14, 7, 220, 121, 14, 7, 220, 120, 14, 7, 220, 119, 14, 7, 220, 118, 14,
+ 7, 220, 117, 14, 7, 220, 116, 14, 7, 220, 115, 14, 7, 220, 114, 14, 7,
+ 220, 113, 14, 7, 220, 112, 14, 7, 220, 111, 14, 7, 220, 110, 14, 7, 220,
+ 109, 14, 7, 220, 108, 14, 7, 220, 107, 14, 7, 220, 106, 14, 7, 220, 105,
+ 14, 7, 220, 104, 14, 7, 220, 103, 14, 7, 220, 102, 14, 7, 220, 101, 14,
+ 7, 220, 100, 14, 7, 220, 99, 14, 7, 219, 183, 14, 7, 219, 182, 14, 7,
+ 219, 181, 14, 7, 219, 180, 14, 7, 219, 179, 14, 7, 219, 178, 14, 7, 219,
+ 177, 14, 7, 219, 176, 14, 7, 219, 175, 14, 7, 219, 174, 14, 7, 219, 173,
+ 14, 7, 219, 172, 14, 7, 219, 171, 14, 7, 217, 133, 14, 7, 217, 132, 14,
+ 7, 217, 131, 14, 7, 217, 130, 14, 7, 217, 129, 14, 7, 217, 128, 14, 7,
+ 217, 127, 14, 7, 216, 255, 14, 7, 216, 254, 14, 7, 216, 253, 14, 7, 216,
+ 252, 14, 7, 216, 251, 14, 7, 216, 250, 14, 7, 216, 249, 14, 7, 216, 248,
+ 14, 7, 216, 247, 14, 7, 216, 246, 14, 7, 216, 245, 14, 7, 216, 244, 14,
+ 7, 216, 243, 14, 7, 216, 242, 14, 7, 216, 241, 14, 7, 216, 240, 14, 7,
+ 216, 239, 14, 7, 216, 238, 14, 7, 216, 237, 14, 7, 216, 236, 14, 7, 216,
+ 235, 14, 7, 216, 234, 14, 7, 216, 233, 14, 7, 216, 232, 14, 7, 216, 231,
+ 14, 7, 216, 230, 14, 7, 216, 229, 14, 7, 216, 228, 14, 7, 216, 227, 14,
+ 7, 216, 226, 14, 7, 216, 225, 14, 7, 216, 224, 14, 7, 216, 223, 14, 7,
+ 216, 222, 14, 7, 215, 91, 14, 7, 215, 90, 14, 7, 215, 89, 14, 7, 215, 88,
+ 14, 7, 215, 87, 14, 7, 215, 86, 14, 7, 215, 85, 14, 7, 215, 84, 14, 7,
+ 215, 83, 14, 7, 215, 82, 14, 7, 215, 81, 14, 7, 215, 80, 14, 7, 215, 79,
+ 14, 7, 215, 78, 14, 7, 215, 77, 14, 7, 215, 76, 14, 7, 215, 75, 14, 7,
+ 215, 74, 14, 7, 215, 73, 14, 7, 215, 72, 14, 7, 215, 71, 14, 7, 215, 70,
+ 14, 7, 215, 69, 14, 7, 215, 68, 14, 7, 215, 67, 14, 7, 215, 66, 14, 7,
+ 215, 65, 14, 7, 215, 64, 14, 7, 215, 63, 14, 7, 215, 62, 14, 7, 215, 61,
+ 14, 7, 215, 60, 14, 7, 215, 59, 14, 7, 215, 58, 14, 7, 215, 57, 14, 7,
+ 215, 56, 14, 7, 215, 55, 14, 7, 215, 54, 14, 7, 215, 53, 14, 7, 215, 52,
+ 14, 7, 215, 51, 14, 7, 215, 50, 14, 7, 215, 49, 14, 7, 215, 48, 14, 7,
+ 215, 47, 14, 7, 215, 46, 14, 7, 215, 45, 14, 7, 215, 44, 14, 7, 215, 43,
+ 14, 7, 215, 42, 14, 7, 215, 41, 14, 7, 215, 40, 14, 7, 215, 39, 14, 7,
+ 215, 38, 14, 7, 210, 67, 14, 7, 210, 66, 14, 7, 210, 65, 14, 7, 210, 64,
+ 14, 7, 210, 63, 14, 7, 210, 62, 14, 7, 210, 61, 14, 7, 210, 60, 14, 7,
+ 210, 59, 14, 7, 210, 58, 14, 7, 210, 57, 14, 7, 210, 56, 14, 7, 210, 55,
+ 14, 7, 210, 54, 14, 7, 210, 53, 14, 7, 210, 52, 14, 7, 210, 51, 14, 7,
+ 210, 50, 14, 7, 210, 49, 14, 7, 210, 48, 14, 7, 210, 47, 14, 7, 210, 46,
+ 14, 7, 210, 45, 14, 7, 210, 44, 14, 7, 210, 43, 14, 7, 210, 42, 14, 7,
+ 210, 41, 14, 7, 210, 40, 14, 7, 210, 39, 14, 7, 210, 38, 14, 7, 210, 37,
+ 14, 7, 210, 36, 14, 7, 210, 35, 14, 7, 210, 34, 14, 7, 210, 33, 14, 7,
+ 210, 32, 14, 7, 210, 31, 14, 7, 210, 30, 14, 7, 210, 29, 14, 7, 210, 28,
+ 14, 7, 210, 27, 14, 7, 210, 26, 14, 7, 210, 25, 14, 7, 210, 24, 14, 7,
+ 207, 88, 14, 7, 207, 87, 14, 7, 207, 86, 14, 7, 207, 85, 14, 7, 207, 84,
+ 14, 7, 207, 83, 14, 7, 207, 82, 14, 7, 207, 81, 14, 7, 207, 80, 14, 7,
+ 207, 79, 14, 7, 207, 78, 14, 7, 207, 77, 14, 7, 207, 76, 14, 7, 207, 75,
+ 14, 7, 207, 74, 14, 7, 207, 73, 14, 7, 207, 72, 14, 7, 207, 71, 14, 7,
+ 207, 70, 14, 7, 207, 69, 14, 7, 207, 68, 14, 7, 207, 67, 14, 7, 207, 66,
+ 14, 7, 207, 65, 14, 7, 207, 64, 14, 7, 207, 63, 14, 7, 207, 62, 14, 7,
+ 207, 61, 14, 7, 207, 60, 14, 7, 207, 59, 14, 7, 207, 58, 14, 7, 207, 57,
+ 14, 7, 207, 56, 14, 7, 207, 55, 14, 7, 207, 54, 14, 7, 207, 53, 14, 7,
+ 207, 52, 14, 7, 207, 51, 14, 7, 207, 50, 14, 7, 207, 49, 14, 7, 207, 48,
+ 14, 7, 207, 47, 14, 7, 207, 46, 14, 7, 207, 45, 14, 7, 207, 44, 14, 7,
+ 207, 43, 14, 7, 207, 42, 14, 7, 206, 163, 14, 7, 206, 162, 14, 7, 206,
+ 161, 14, 7, 206, 160, 14, 7, 206, 159, 14, 7, 206, 158, 14, 7, 206, 157,
+ 14, 7, 206, 156, 14, 7, 206, 155, 14, 7, 206, 154, 14, 7, 206, 153, 14,
+ 7, 206, 152, 14, 7, 206, 151, 14, 7, 206, 150, 14, 7, 206, 149, 14, 7,
+ 206, 148, 14, 7, 206, 147, 14, 7, 206, 146, 14, 7, 206, 145, 14, 7, 206,
+ 144, 14, 7, 206, 143, 14, 7, 206, 142, 14, 7, 206, 141, 14, 7, 206, 140,
+ 14, 7, 206, 139, 14, 7, 206, 138, 14, 7, 206, 137, 14, 7, 206, 136, 14,
+ 7, 206, 135, 14, 7, 206, 134, 14, 7, 206, 133, 14, 7, 206, 132, 14, 7,
+ 206, 131, 14, 7, 206, 130, 14, 7, 206, 129, 14, 7, 206, 128, 14, 7, 206,
+ 127, 14, 7, 206, 126, 14, 7, 206, 125, 14, 7, 206, 124, 14, 7, 206, 123,
+ 14, 7, 206, 122, 14, 7, 206, 121, 14, 7, 206, 120, 14, 7, 206, 119, 14,
+ 7, 206, 118, 14, 7, 206, 117, 14, 7, 206, 116, 14, 7, 206, 115, 14, 7,
+ 206, 114, 14, 7, 206, 113, 14, 7, 206, 112, 14, 7, 206, 111, 14, 7, 206,
+ 110, 14, 7, 206, 109, 14, 7, 206, 108, 14, 7, 206, 107, 14, 7, 206, 106,
+ 14, 7, 206, 105, 14, 7, 206, 104, 14, 7, 206, 103, 14, 7, 206, 102, 14,
+ 7, 206, 101, 14, 7, 206, 100, 14, 7, 206, 99, 14, 7, 206, 98, 14, 7, 206,
+ 97, 14, 7, 206, 96, 14, 7, 206, 95, 14, 7, 206, 94, 14, 7, 206, 93, 14,
+ 7, 206, 92, 14, 7, 206, 91, 14, 7, 206, 90, 14, 7, 206, 89, 14, 7, 206,
+ 88, 14, 7, 206, 87, 14, 7, 204, 143, 14, 7, 204, 142, 14, 7, 204, 141,
+ 14, 7, 204, 140, 14, 7, 204, 139, 14, 7, 204, 138, 14, 7, 204, 137, 14,
+ 7, 204, 136, 14, 7, 204, 135, 14, 7, 204, 134, 14, 7, 204, 133, 14, 7,
+ 204, 132, 14, 7, 204, 131, 14, 7, 204, 130, 14, 7, 204, 129, 14, 7, 204,
+ 128, 14, 7, 204, 127, 14, 7, 204, 126, 14, 7, 204, 125, 14, 7, 204, 124,
+ 14, 7, 204, 123, 14, 7, 204, 122, 14, 7, 204, 121, 14, 7, 204, 120, 14,
+ 7, 204, 119, 14, 7, 204, 118, 14, 7, 204, 117, 14, 7, 204, 116, 14, 7,
+ 204, 115, 14, 7, 204, 114, 14, 7, 204, 113, 14, 7, 204, 112, 14, 7, 203,
+ 194, 14, 7, 203, 193, 14, 7, 203, 192, 14, 7, 203, 191, 14, 7, 203, 190,
+ 14, 7, 203, 189, 14, 7, 203, 188, 14, 7, 203, 187, 14, 7, 203, 186, 14,
+ 7, 203, 185, 14, 7, 203, 184, 14, 7, 203, 183, 14, 7, 203, 122, 14, 7,
+ 203, 121, 14, 7, 203, 120, 14, 7, 203, 119, 14, 7, 203, 118, 14, 7, 203,
+ 117, 14, 7, 203, 116, 14, 7, 203, 115, 14, 7, 203, 114, 14, 7, 202, 158,
+ 14, 7, 202, 157, 14, 7, 202, 156, 14, 7, 202, 155, 14, 7, 202, 154, 14,
+ 7, 202, 153, 14, 7, 202, 152, 14, 7, 202, 151, 14, 7, 202, 150, 14, 7,
+ 202, 149, 14, 7, 202, 148, 14, 7, 202, 147, 14, 7, 202, 146, 14, 7, 202,
+ 145, 14, 7, 202, 144, 14, 7, 202, 143, 14, 7, 202, 142, 14, 7, 202, 141,
+ 14, 7, 202, 140, 14, 7, 202, 139, 14, 7, 202, 138, 14, 7, 202, 137, 14,
+ 7, 202, 136, 14, 7, 202, 135, 14, 7, 202, 134, 14, 7, 202, 133, 14, 7,
+ 202, 132, 14, 7, 202, 131, 14, 7, 202, 130, 14, 7, 202, 129, 14, 7, 202,
+ 128, 14, 7, 202, 127, 14, 7, 202, 126, 14, 7, 202, 125, 14, 7, 202, 124,
+ 14, 7, 202, 123, 14, 7, 202, 122, 14, 7, 202, 121, 14, 7, 202, 120, 14,
+ 7, 202, 119, 14, 7, 202, 118, 14, 7, 252, 24, 14, 7, 252, 23, 14, 7, 252,
+ 22, 14, 7, 252, 21, 14, 7, 252, 20, 14, 7, 252, 19, 14, 7, 252, 18, 14,
+ 7, 252, 17, 14, 7, 252, 16, 14, 7, 252, 15, 14, 7, 252, 14, 14, 7, 252,
+ 13, 14, 7, 252, 12, 14, 7, 252, 11, 14, 7, 252, 10, 14, 7, 252, 9, 14, 7,
+ 252, 8, 14, 7, 252, 7, 14, 7, 252, 6, 14, 7, 252, 5, 14, 7, 252, 4, 14,
+ 7, 252, 3, 14, 7, 252, 2, 14, 7, 252, 1, 14, 7, 252, 0, 14, 7, 251, 255,
+ 14, 7, 251, 254, 14, 7, 251, 253, 14, 7, 251, 252, 14, 7, 251, 251, 14,
+ 7, 251, 250, 14, 7, 251, 249, 14, 7, 251, 248, 14, 7, 251, 247, 27, 7,
+ 255, 18, 27, 7, 255, 17, 27, 7, 255, 16, 27, 7, 255, 15, 27, 7, 255, 14,
+ 27, 7, 255, 12, 27, 7, 255, 9, 27, 7, 255, 8, 27, 7, 255, 7, 27, 7, 255,
+ 6, 27, 7, 255, 5, 27, 7, 255, 4, 27, 7, 255, 3, 27, 7, 255, 2, 27, 7,
+ 255, 1, 27, 7, 254, 255, 27, 7, 254, 254, 27, 7, 254, 253, 27, 7, 254,
+ 251, 27, 7, 254, 250, 27, 7, 254, 249, 27, 7, 254, 248, 27, 7, 254, 247,
+ 27, 7, 254, 246, 27, 7, 254, 245, 27, 7, 254, 244, 27, 7, 254, 243, 27,
+ 7, 254, 242, 27, 7, 254, 241, 27, 7, 254, 240, 27, 7, 254, 238, 27, 7,
+ 254, 237, 27, 7, 254, 236, 27, 7, 254, 235, 27, 7, 254, 233, 27, 7, 254,
+ 232, 27, 7, 254, 231, 27, 7, 254, 230, 27, 7, 254, 229, 27, 7, 254, 228,
+ 27, 7, 254, 227, 27, 7, 254, 226, 27, 7, 254, 225, 27, 7, 254, 223, 27,
+ 7, 254, 222, 27, 7, 254, 221, 27, 7, 254, 219, 27, 7, 254, 217, 27, 7,
+ 254, 216, 27, 7, 254, 215, 27, 7, 254, 214, 27, 7, 254, 213, 27, 7, 254,
+ 212, 27, 7, 254, 211, 27, 7, 254, 210, 27, 7, 254, 209, 27, 7, 254, 208,
+ 27, 7, 254, 207, 27, 7, 254, 206, 27, 7, 254, 205, 27, 7, 254, 204, 27,
+ 7, 254, 203, 27, 7, 254, 202, 27, 7, 254, 201, 27, 7, 254, 200, 27, 7,
+ 254, 199, 27, 7, 254, 198, 27, 7, 254, 197, 27, 7, 254, 196, 27, 7, 254,
+ 195, 27, 7, 254, 194, 27, 7, 254, 193, 27, 7, 254, 192, 27, 7, 254, 191,
+ 27, 7, 254, 190, 27, 7, 254, 189, 27, 7, 254, 188, 27, 7, 254, 187, 27,
+ 7, 254, 186, 27, 7, 254, 185, 27, 7, 254, 184, 27, 7, 254, 183, 27, 7,
+ 254, 182, 27, 7, 254, 181, 27, 7, 254, 180, 27, 7, 254, 179, 27, 7, 254,
+ 178, 27, 7, 254, 177, 27, 7, 254, 176, 27, 7, 254, 175, 27, 7, 254, 174,
+ 27, 7, 254, 173, 27, 7, 254, 172, 27, 7, 254, 171, 27, 7, 254, 170, 27,
+ 7, 254, 169, 27, 7, 254, 168, 27, 7, 254, 167, 27, 7, 254, 166, 27, 7,
+ 254, 165, 27, 7, 254, 164, 27, 7, 254, 163, 27, 7, 254, 162, 27, 7, 254,
+ 161, 27, 7, 254, 160, 27, 7, 254, 159, 27, 7, 254, 158, 27, 7, 254, 157,
+ 27, 7, 254, 156, 27, 7, 254, 155, 27, 7, 254, 154, 27, 7, 254, 153, 27,
+ 7, 254, 151, 27, 7, 254, 150, 27, 7, 254, 149, 27, 7, 254, 148, 27, 7,
+ 254, 147, 27, 7, 254, 146, 27, 7, 254, 145, 27, 7, 254, 144, 27, 7, 254,
+ 143, 27, 7, 254, 142, 27, 7, 254, 141, 27, 7, 254, 140, 27, 7, 254, 139,
+ 27, 7, 254, 138, 27, 7, 254, 137, 27, 7, 254, 136, 27, 7, 254, 135, 27,
+ 7, 254, 134, 27, 7, 254, 133, 27, 7, 254, 132, 27, 7, 254, 131, 27, 7,
+ 254, 130, 27, 7, 254, 129, 27, 7, 254, 128, 27, 7, 254, 127, 27, 7, 254,
+ 126, 27, 7, 254, 125, 27, 7, 254, 124, 27, 7, 254, 123, 27, 7, 254, 122,
+ 27, 7, 254, 121, 27, 7, 254, 120, 27, 7, 254, 119, 27, 7, 254, 118, 27,
+ 7, 254, 116, 27, 7, 254, 115, 27, 7, 254, 114, 27, 7, 254, 113, 27, 7,
+ 254, 112, 27, 7, 254, 111, 27, 7, 254, 110, 27, 7, 254, 109, 27, 7, 254,
+ 108, 27, 7, 254, 107, 27, 7, 254, 106, 27, 7, 254, 105, 27, 7, 254, 103,
+ 27, 7, 254, 102, 27, 7, 254, 101, 27, 7, 254, 100, 27, 7, 254, 99, 27, 7,
+ 254, 98, 27, 7, 254, 97, 27, 7, 254, 96, 27, 7, 254, 95, 27, 7, 254, 94,
+ 27, 7, 254, 93, 27, 7, 254, 92, 27, 7, 254, 91, 27, 7, 254, 90, 27, 7,
+ 254, 89, 27, 7, 254, 88, 27, 7, 254, 87, 27, 7, 254, 86, 27, 7, 254, 85,
+ 27, 7, 254, 84, 27, 7, 254, 83, 27, 7, 254, 82, 27, 7, 254, 81, 27, 7,
+ 254, 80, 27, 7, 254, 79, 27, 7, 254, 78, 27, 7, 254, 77, 27, 7, 254, 76,
+ 27, 7, 254, 75, 27, 7, 254, 74, 27, 7, 254, 73, 27, 7, 254, 72, 27, 7,
+ 254, 71, 27, 7, 254, 70, 27, 7, 254, 69, 27, 7, 254, 68, 27, 7, 254, 67,
+ 27, 7, 254, 66, 27, 7, 254, 65, 27, 7, 254, 64, 27, 7, 254, 63, 27, 7,
+ 254, 62, 27, 7, 254, 61, 27, 7, 254, 60, 27, 7, 254, 59, 27, 7, 254, 58,
+ 27, 7, 254, 57, 27, 7, 254, 56, 27, 7, 254, 55, 27, 7, 254, 54, 27, 7,
+ 254, 53, 27, 7, 254, 52, 27, 7, 254, 51, 27, 7, 254, 50, 27, 7, 254, 49,
+ 27, 7, 254, 48, 27, 7, 254, 47, 27, 7, 254, 46, 27, 7, 254, 45, 27, 7,
+ 254, 44, 27, 7, 254, 43, 27, 7, 254, 42, 27, 7, 254, 41, 27, 7, 254, 40,
+ 27, 7, 254, 39, 27, 7, 254, 38, 27, 7, 254, 37, 27, 7, 254, 36, 27, 7,
+ 254, 35, 27, 7, 254, 33, 27, 7, 254, 32, 27, 7, 254, 31, 27, 7, 254, 30,
+ 27, 7, 254, 29, 27, 7, 254, 28, 27, 7, 254, 27, 27, 7, 254, 26, 27, 7,
+ 254, 25, 27, 7, 254, 24, 27, 7, 254, 23, 27, 7, 254, 22, 27, 7, 254, 21,
+ 27, 7, 254, 20, 27, 7, 254, 19, 27, 7, 254, 18, 27, 7, 254, 17, 27, 7,
+ 254, 16, 27, 7, 254, 15, 27, 7, 254, 14, 27, 7, 254, 13, 27, 7, 254, 12,
+ 27, 7, 254, 11, 27, 7, 254, 10, 27, 7, 254, 9, 27, 7, 254, 8, 27, 7, 254,
+ 7, 27, 7, 254, 6, 27, 7, 254, 5, 27, 7, 254, 4, 27, 7, 254, 3, 27, 7,
+ 254, 2, 27, 7, 254, 1, 27, 7, 254, 0, 27, 7, 253, 255, 27, 7, 253, 254,
+ 27, 7, 253, 253, 27, 7, 253, 252, 27, 7, 253, 251, 27, 7, 253, 250, 27,
+ 7, 253, 249, 27, 7, 253, 248, 27, 7, 253, 247, 27, 7, 253, 246, 27, 7,
+ 253, 245, 27, 7, 253, 244, 27, 7, 253, 243, 27, 7, 253, 242, 27, 7, 253,
+ 241, 27, 7, 253, 240, 27, 7, 253, 239, 27, 7, 253, 238, 27, 7, 253, 237,
+ 27, 7, 253, 236, 27, 7, 253, 235, 27, 7, 253, 234, 27, 7, 253, 233, 27,
+ 7, 253, 232, 27, 7, 253, 231, 27, 7, 253, 230, 27, 7, 253, 229, 27, 7,
+ 253, 228, 27, 7, 253, 227, 27, 7, 253, 226, 27, 7, 253, 225, 27, 7, 253,
+ 224, 27, 7, 253, 223, 27, 7, 253, 222, 27, 7, 253, 221, 27, 7, 253, 220,
+ 27, 7, 253, 219, 27, 7, 253, 218, 27, 7, 253, 217, 27, 7, 253, 216, 27,
+ 7, 253, 215, 27, 7, 253, 214, 27, 7, 253, 213, 27, 7, 253, 212, 27, 7,
+ 253, 211, 27, 7, 253, 210, 27, 7, 253, 209, 27, 7, 253, 208, 27, 7, 253,
+ 207, 27, 7, 253, 206, 27, 7, 253, 205, 27, 7, 253, 204, 27, 7, 253, 203,
+ 27, 7, 253, 202, 27, 7, 253, 201, 27, 7, 253, 200, 27, 7, 253, 199, 27,
+ 7, 253, 198, 27, 7, 253, 197, 27, 7, 253, 196, 27, 7, 253, 195, 27, 7,
+ 253, 194, 27, 7, 253, 193, 27, 7, 253, 192, 27, 7, 253, 191, 27, 7, 253,
+ 190, 27, 7, 253, 189, 27, 7, 253, 188, 27, 7, 253, 187, 27, 7, 253, 186,
+ 27, 7, 253, 185, 27, 7, 253, 184, 27, 7, 253, 183, 27, 7, 253, 182, 27,
+ 7, 253, 181, 27, 7, 253, 180, 27, 7, 253, 179, 27, 7, 253, 177, 27, 7,
+ 253, 176, 27, 7, 253, 175, 27, 7, 253, 174, 27, 7, 253, 173, 27, 7, 253,
+ 172, 27, 7, 253, 171, 27, 7, 253, 170, 27, 7, 253, 169, 27, 7, 253, 168,
+ 27, 7, 253, 167, 27, 7, 253, 164, 27, 7, 253, 163, 27, 7, 253, 162, 27,
+ 7, 253, 161, 27, 7, 253, 157, 27, 7, 253, 156, 27, 7, 253, 155, 27, 7,
+ 253, 154, 27, 7, 253, 153, 27, 7, 253, 152, 27, 7, 253, 151, 27, 7, 253,
+ 150, 27, 7, 253, 149, 27, 7, 253, 148, 27, 7, 253, 147, 27, 7, 253, 146,
+ 27, 7, 253, 145, 27, 7, 253, 144, 27, 7, 253, 143, 27, 7, 253, 142, 27,
+ 7, 253, 141, 27, 7, 253, 140, 27, 7, 253, 139, 27, 7, 253, 137, 27, 7,
+ 253, 136, 27, 7, 253, 135, 27, 7, 253, 134, 27, 7, 253, 133, 27, 7, 253,
+ 132, 27, 7, 253, 131, 27, 7, 253, 130, 27, 7, 253, 129, 27, 7, 253, 128,
+ 27, 7, 253, 127, 27, 7, 253, 126, 27, 7, 253, 125, 27, 7, 253, 124, 27,
+ 7, 253, 123, 27, 7, 253, 122, 27, 7, 253, 121, 27, 7, 253, 120, 27, 7,
+ 253, 119, 27, 7, 253, 118, 27, 7, 253, 117, 27, 7, 253, 116, 27, 7, 253,
+ 115, 27, 7, 253, 114, 27, 7, 253, 113, 27, 7, 253, 112, 27, 7, 253, 111,
+ 27, 7, 253, 110, 27, 7, 253, 109, 27, 7, 253, 108, 27, 7, 253, 107, 27,
+ 7, 253, 106, 27, 7, 253, 105, 27, 7, 253, 104, 27, 7, 253, 103, 27, 7,
+ 253, 102, 27, 7, 253, 101, 27, 7, 253, 100, 27, 7, 253, 99, 27, 7, 253,
+ 98, 27, 7, 253, 97, 27, 7, 253, 96, 27, 7, 253, 95, 27, 7, 253, 94, 27,
+ 7, 253, 93, 27, 7, 253, 92, 27, 7, 253, 91, 27, 7, 253, 90, 27, 7, 253,
+ 89, 27, 7, 253, 88, 27, 7, 253, 87, 27, 7, 253, 86, 27, 7, 253, 85, 27,
+ 7, 253, 84, 27, 7, 253, 83, 27, 7, 253, 82, 27, 7, 253, 81, 27, 7, 253,
+ 80, 27, 7, 253, 79, 27, 7, 253, 78, 27, 7, 253, 77, 27, 7, 253, 76, 216,
+ 221, 219, 245, 216, 57, 27, 7, 253, 75, 27, 7, 253, 74, 27, 7, 253, 73,
+ 27, 7, 253, 72, 27, 7, 253, 71, 27, 7, 253, 70, 27, 7, 253, 69, 27, 7,
+ 253, 68, 27, 7, 253, 67, 27, 7, 253, 66, 27, 7, 253, 65, 27, 7, 253, 64,
+ 199, 27, 7, 253, 63, 27, 7, 253, 62, 27, 7, 253, 61, 27, 7, 253, 60, 27,
+ 7, 253, 59, 27, 7, 253, 58, 27, 7, 253, 57, 27, 7, 253, 55, 27, 7, 253,
+ 53, 27, 7, 253, 51, 27, 7, 253, 49, 27, 7, 253, 47, 27, 7, 253, 45, 27,
+ 7, 253, 43, 27, 7, 253, 41, 27, 7, 253, 39, 27, 7, 253, 37, 248, 142,
+ 227, 36, 82, 27, 7, 253, 35, 241, 84, 227, 36, 82, 27, 7, 253, 34, 27, 7,
+ 253, 32, 27, 7, 253, 30, 27, 7, 253, 28, 27, 7, 253, 26, 27, 7, 253, 24,
+ 27, 7, 253, 22, 27, 7, 253, 20, 27, 7, 253, 18, 27, 7, 253, 17, 27, 7,
+ 253, 16, 27, 7, 253, 15, 27, 7, 253, 14, 27, 7, 253, 13, 27, 7, 253, 12,
+ 27, 7, 253, 11, 27, 7, 253, 10, 27, 7, 253, 9, 27, 7, 253, 8, 27, 7, 253,
+ 7, 27, 7, 253, 6, 27, 7, 253, 5, 27, 7, 253, 4, 27, 7, 253, 3, 27, 7,
+ 253, 2, 27, 7, 253, 1, 27, 7, 253, 0, 27, 7, 252, 255, 27, 7, 252, 254,
+ 27, 7, 252, 253, 27, 7, 252, 252, 27, 7, 252, 251, 27, 7, 252, 250, 27,
+ 7, 252, 249, 27, 7, 252, 248, 27, 7, 252, 247, 27, 7, 252, 246, 27, 7,
+ 252, 245, 27, 7, 252, 244, 27, 7, 252, 243, 27, 7, 252, 242, 27, 7, 252,
+ 241, 27, 7, 252, 240, 27, 7, 252, 239, 27, 7, 252, 238, 27, 7, 252, 237,
+ 27, 7, 252, 236, 27, 7, 252, 235, 27, 7, 252, 234, 27, 7, 252, 233, 27,
+ 7, 252, 232, 27, 7, 252, 231, 27, 7, 252, 230, 27, 7, 252, 229, 27, 7,
+ 252, 228, 27, 7, 252, 227, 27, 7, 252, 226, 27, 7, 252, 225, 27, 7, 252,
+ 224, 27, 7, 252, 223, 27, 7, 252, 222, 27, 7, 252, 221, 27, 7, 252, 220,
+ 27, 7, 252, 219, 27, 7, 252, 218, 27, 7, 252, 217, 27, 7, 252, 216, 27,
+ 7, 252, 215, 27, 7, 252, 214, 27, 7, 252, 213, 27, 7, 252, 212, 27, 7,
+ 252, 211, 27, 7, 252, 210, 27, 7, 252, 209, 27, 7, 252, 208, 27, 7, 252,
+ 207, 27, 7, 252, 206, 27, 7, 252, 205, 27, 7, 252, 204, 27, 7, 252, 203,
+ 27, 7, 252, 202, 27, 7, 252, 201, 27, 7, 252, 200, 27, 7, 252, 199, 27,
+ 7, 252, 198, 27, 7, 252, 197, 27, 7, 252, 196, 27, 7, 252, 195, 27, 7,
+ 252, 194, 27, 7, 252, 193, 27, 7, 252, 192, 27, 7, 252, 191, 27, 7, 252,
+ 190, 27, 7, 252, 189, 27, 7, 252, 188, 27, 7, 252, 187, 27, 7, 252, 186,
+ 27, 7, 252, 185, 27, 7, 252, 184, 27, 7, 252, 183, 27, 7, 252, 182, 27,
+ 7, 252, 181, 27, 7, 252, 180, 27, 7, 252, 179, 27, 7, 252, 178, 27, 7,
+ 252, 177, 27, 7, 252, 176, 27, 7, 252, 175, 27, 7, 252, 174, 27, 7, 252,
+ 173, 27, 7, 252, 172, 27, 7, 252, 171, 27, 7, 252, 170, 27, 7, 252, 169,
+ 27, 7, 252, 168, 27, 7, 252, 167, 27, 7, 252, 166, 27, 7, 252, 165, 27,
+ 7, 252, 164, 24, 1, 218, 198, 222, 136, 224, 197, 24, 1, 218, 198, 238,
+ 198, 239, 178, 24, 1, 218, 198, 218, 47, 224, 198, 218, 115, 24, 1, 218,
+ 198, 218, 47, 224, 198, 218, 116, 24, 1, 218, 198, 223, 107, 224, 197,
+ 24, 1, 218, 198, 212, 195, 24, 1, 218, 198, 208, 199, 224, 197, 24, 1,
+ 218, 198, 220, 215, 224, 197, 24, 1, 218, 198, 212, 254, 219, 169, 222,
+ 32, 24, 1, 218, 198, 218, 47, 219, 169, 222, 33, 218, 115, 24, 1, 218,
+ 198, 218, 47, 219, 169, 222, 33, 218, 116, 24, 1, 218, 198, 225, 156, 24,
+ 1, 218, 198, 207, 204, 225, 157, 24, 1, 218, 198, 222, 197, 24, 1, 218,
+ 198, 225, 153, 24, 1, 218, 198, 225, 111, 24, 1, 218, 198, 223, 186, 24,
+ 1, 218, 198, 213, 114, 24, 1, 218, 198, 221, 91, 24, 1, 218, 198, 229,
+ 163, 24, 1, 218, 198, 222, 0, 24, 1, 218, 198, 210, 179, 24, 1, 218, 198,
+ 222, 135, 24, 1, 218, 198, 228, 10, 24, 1, 218, 198, 227, 176, 228, 175,
+ 24, 1, 218, 198, 221, 101, 224, 205, 24, 1, 218, 198, 225, 160, 24, 1,
+ 218, 198, 219, 62, 24, 1, 218, 198, 238, 100, 24, 1, 218, 198, 219, 125,
+ 24, 1, 218, 198, 224, 55, 222, 170, 24, 1, 218, 198, 220, 196, 224, 208,
+ 24, 1, 218, 198, 106, 202, 188, 223, 100, 24, 1, 218, 198, 238, 101, 24,
+ 1, 218, 198, 221, 101, 221, 102, 24, 1, 218, 198, 212, 91, 24, 1, 218,
+ 198, 224, 190, 24, 1, 218, 198, 224, 211, 24, 1, 218, 198, 224, 31, 24,
+ 1, 218, 198, 230, 21, 24, 1, 218, 198, 219, 169, 227, 223, 24, 1, 218,
+ 198, 223, 26, 227, 223, 24, 1, 218, 198, 218, 219, 24, 1, 218, 198, 225,
+ 154, 24, 1, 218, 198, 222, 74, 24, 1, 218, 198, 217, 172, 24, 1, 218,
+ 198, 207, 201, 24, 1, 218, 198, 226, 235, 24, 1, 218, 198, 211, 251, 24,
+ 1, 218, 198, 209, 117, 24, 1, 218, 198, 225, 151, 24, 1, 218, 198, 229,
+ 170, 24, 1, 218, 198, 223, 22, 24, 1, 218, 198, 228, 188, 24, 1, 218,
+ 198, 224, 32, 24, 1, 218, 198, 212, 191, 24, 1, 218, 198, 227, 29, 24, 1,
+ 218, 198, 239, 246, 24, 1, 218, 198, 215, 211, 24, 1, 218, 198, 228, 233,
+ 24, 1, 218, 198, 211, 247, 24, 1, 218, 198, 225, 107, 218, 157, 24, 1,
+ 218, 198, 212, 247, 24, 1, 218, 198, 221, 100, 24, 1, 218, 198, 212, 230,
+ 221, 111, 202, 196, 24, 1, 218, 198, 220, 237, 224, 51, 24, 1, 218, 198,
+ 219, 164, 24, 1, 218, 198, 222, 2, 24, 1, 218, 198, 206, 231, 24, 1, 218,
+ 198, 222, 173, 24, 1, 218, 198, 225, 150, 24, 1, 218, 198, 222, 44, 24,
+ 1, 218, 198, 225, 49, 24, 1, 218, 198, 220, 251, 24, 1, 218, 198, 209,
+ 121, 24, 1, 218, 198, 211, 244, 24, 1, 218, 198, 219, 165, 24, 1, 218,
+ 198, 221, 115, 24, 1, 218, 198, 225, 158, 24, 1, 218, 198, 220, 248, 24,
+ 1, 218, 198, 229, 241, 24, 1, 218, 198, 221, 118, 24, 1, 218, 198, 206,
+ 50, 24, 1, 218, 198, 226, 239, 24, 1, 218, 198, 222, 230, 24, 1, 218,
+ 198, 223, 75, 24, 1, 218, 198, 225, 48, 24, 1, 218, 197, 221, 113, 24, 1,
+ 218, 197, 207, 204, 225, 155, 24, 1, 218, 197, 212, 152, 24, 1, 218, 197,
+ 213, 118, 207, 203, 24, 1, 218, 197, 227, 31, 221, 97, 24, 1, 218, 197,
+ 225, 55, 225, 159, 24, 1, 218, 197, 229, 92, 24, 1, 218, 197, 203, 18,
+ 24, 1, 218, 197, 225, 50, 24, 1, 218, 197, 230, 7, 24, 1, 218, 197, 219,
+ 19, 24, 1, 218, 197, 203, 96, 227, 223, 24, 1, 218, 197, 228, 29, 221,
+ 111, 221, 6, 24, 1, 218, 197, 221, 94, 213, 17, 24, 1, 218, 197, 222,
+ 249, 222, 47, 24, 1, 218, 197, 238, 98, 24, 1, 218, 197, 218, 105, 24, 1,
+ 218, 197, 207, 204, 221, 109, 24, 1, 218, 197, 213, 22, 222, 42, 24, 1,
+ 218, 197, 213, 18, 24, 1, 218, 197, 224, 198, 209, 120, 24, 1, 218, 197,
+ 225, 37, 225, 51, 24, 1, 218, 197, 220, 249, 221, 97, 24, 1, 218, 197,
+ 229, 159, 24, 1, 218, 197, 238, 99, 24, 1, 218, 197, 229, 155, 24, 1,
+ 218, 197, 228, 107, 24, 1, 218, 197, 219, 65, 24, 1, 218, 197, 205, 237,
+ 24, 1, 218, 197, 222, 137, 223, 184, 24, 1, 218, 197, 222, 172, 225, 33,
+ 24, 1, 218, 197, 203, 215, 24, 1, 218, 197, 215, 12, 24, 1, 218, 197,
+ 210, 14, 24, 1, 218, 197, 224, 210, 24, 1, 218, 197, 222, 156, 24, 1,
+ 218, 197, 222, 157, 228, 7, 24, 1, 218, 197, 224, 200, 24, 1, 218, 197,
+ 210, 230, 24, 1, 218, 197, 225, 41, 24, 1, 218, 197, 224, 36, 24, 1, 218,
+ 197, 221, 9, 24, 1, 218, 197, 217, 176, 24, 1, 218, 197, 224, 209, 222,
+ 174, 24, 1, 218, 197, 240, 31, 24, 1, 218, 197, 225, 28, 24, 1, 218, 197,
+ 240, 53, 24, 1, 218, 197, 229, 167, 24, 1, 218, 197, 225, 177, 222, 36,
+ 24, 1, 218, 197, 225, 177, 222, 12, 24, 1, 218, 197, 227, 175, 24, 1,
+ 218, 197, 222, 180, 24, 1, 218, 197, 221, 120, 24, 1, 218, 197, 192, 24,
+ 1, 218, 197, 229, 77, 24, 1, 218, 197, 222, 125, 24, 1, 168, 222, 136,
+ 225, 157, 24, 1, 168, 220, 214, 24, 1, 168, 202, 196, 24, 1, 168, 204,
+ 95, 24, 1, 168, 222, 173, 24, 1, 168, 223, 14, 24, 1, 168, 222, 143, 24,
+ 1, 168, 238, 108, 24, 1, 168, 225, 45, 24, 1, 168, 238, 205, 24, 1, 168,
+ 220, 239, 224, 91, 224, 212, 24, 1, 168, 221, 89, 225, 36, 24, 1, 168,
+ 225, 42, 24, 1, 168, 218, 111, 24, 1, 168, 222, 255, 24, 1, 168, 225, 53,
+ 247, 88, 24, 1, 168, 229, 157, 24, 1, 168, 238, 109, 24, 1, 168, 229,
+ 164, 24, 1, 168, 202, 214, 223, 215, 24, 1, 168, 220, 208, 24, 1, 168,
+ 225, 30, 24, 1, 168, 221, 119, 24, 1, 168, 225, 36, 24, 1, 168, 203, 19,
+ 24, 1, 168, 228, 241, 24, 1, 168, 230, 41, 24, 1, 168, 213, 113, 24, 1,
+ 168, 223, 8, 24, 1, 168, 210, 12, 24, 1, 168, 222, 16, 24, 1, 168, 208,
+ 199, 202, 199, 24, 1, 168, 211, 5, 24, 1, 168, 222, 163, 221, 6, 24, 1,
+ 168, 205, 236, 24, 1, 168, 223, 78, 24, 1, 168, 225, 177, 229, 166, 24,
+ 1, 168, 221, 102, 24, 1, 168, 222, 158, 24, 1, 168, 228, 11, 24, 1, 168,
+ 225, 38, 24, 1, 168, 224, 189, 24, 1, 168, 221, 96, 24, 1, 168, 209, 116,
+ 24, 1, 168, 222, 160, 24, 1, 168, 239, 106, 24, 1, 168, 223, 13, 24, 1,
+ 168, 221, 121, 24, 1, 168, 221, 117, 24, 1, 168, 247, 169, 24, 1, 168,
+ 205, 238, 24, 1, 168, 225, 43, 24, 1, 168, 215, 145, 24, 1, 168, 222, 46,
+ 24, 1, 168, 228, 28, 24, 1, 168, 208, 196, 24, 1, 168, 221, 103, 222,
+ 125, 24, 1, 168, 222, 38, 24, 1, 168, 229, 170, 24, 1, 168, 222, 165, 24,
+ 1, 168, 225, 150, 24, 1, 168, 225, 31, 24, 1, 168, 226, 239, 24, 1, 168,
+ 228, 175, 24, 1, 168, 222, 44, 24, 1, 168, 222, 125, 24, 1, 168, 203,
+ 205, 24, 1, 168, 222, 161, 24, 1, 168, 221, 106, 24, 1, 168, 221, 98, 24,
+ 1, 168, 228, 190, 222, 2, 24, 1, 168, 221, 104, 24, 1, 168, 223, 21, 24,
+ 1, 168, 225, 177, 221, 109, 24, 1, 168, 203, 110, 24, 1, 168, 223, 20,
+ 24, 1, 168, 212, 194, 24, 1, 168, 213, 116, 24, 1, 168, 225, 39, 24, 1,
+ 168, 225, 157, 24, 1, 168, 225, 49, 24, 1, 168, 229, 158, 24, 1, 168,
+ 225, 40, 24, 1, 168, 229, 162, 24, 1, 168, 225, 53, 218, 162, 24, 1, 168,
+ 202, 179, 24, 1, 168, 222, 34, 24, 1, 168, 224, 144, 24, 1, 168, 223,
+ 244, 24, 1, 168, 212, 250, 24, 1, 168, 229, 181, 227, 246, 24, 1, 168,
+ 229, 181, 240, 66, 24, 1, 168, 222, 195, 24, 1, 168, 223, 75, 24, 1, 168,
+ 227, 96, 24, 1, 168, 218, 123, 24, 1, 168, 219, 9, 24, 1, 168, 209, 132,
+ 24, 1, 134, 225, 29, 24, 1, 134, 204, 93, 24, 1, 134, 222, 32, 24, 1,
+ 134, 224, 197, 24, 1, 134, 222, 30, 24, 1, 134, 227, 141, 24, 1, 134,
+ 222, 35, 24, 1, 134, 221, 116, 24, 1, 134, 222, 179, 24, 1, 134, 221, 6,
+ 24, 1, 134, 203, 216, 24, 1, 134, 222, 133, 24, 1, 134, 213, 41, 24, 1,
+ 134, 222, 144, 24, 1, 134, 229, 165, 24, 1, 134, 209, 118, 24, 1, 134,
+ 213, 20, 24, 1, 134, 222, 43, 24, 1, 134, 210, 230, 24, 1, 134, 229, 170,
+ 24, 1, 134, 203, 98, 24, 1, 134, 228, 191, 24, 1, 134, 214, 233, 24, 1,
+ 134, 224, 202, 24, 1, 134, 223, 12, 24, 1, 134, 225, 125, 24, 1, 134,
+ 224, 208, 24, 1, 134, 213, 115, 24, 1, 134, 203, 42, 24, 1, 134, 222, 37,
+ 24, 1, 134, 229, 161, 225, 32, 24, 1, 134, 222, 140, 24, 1, 134, 207,
+ 203, 24, 1, 134, 238, 118, 24, 1, 134, 222, 130, 24, 1, 134, 240, 32, 24,
+ 1, 134, 223, 16, 24, 1, 134, 224, 181, 24, 1, 134, 227, 169, 24, 1, 134,
+ 222, 254, 24, 1, 134, 224, 50, 24, 1, 134, 224, 185, 24, 1, 134, 217,
+ 156, 24, 1, 134, 224, 183, 24, 1, 134, 224, 199, 24, 1, 134, 226, 222,
+ 24, 1, 134, 221, 108, 24, 1, 134, 225, 52, 24, 1, 134, 228, 165, 24, 1,
+ 134, 220, 251, 24, 1, 134, 209, 121, 24, 1, 134, 211, 244, 24, 1, 134,
+ 202, 179, 24, 1, 134, 229, 162, 24, 1, 134, 216, 201, 24, 1, 134, 209,
+ 175, 24, 1, 134, 222, 141, 24, 1, 134, 224, 204, 24, 1, 134, 221, 107,
+ 24, 1, 134, 229, 160, 24, 1, 134, 218, 117, 24, 1, 134, 218, 213, 24, 1,
+ 134, 220, 225, 24, 1, 134, 227, 175, 24, 1, 134, 222, 180, 24, 1, 134,
+ 224, 201, 24, 1, 134, 222, 153, 24, 1, 134, 202, 193, 24, 1, 134, 219,
+ 96, 24, 1, 134, 202, 192, 24, 1, 134, 223, 21, 24, 1, 134, 221, 97, 24,
+ 1, 134, 211, 7, 24, 1, 134, 228, 195, 24, 1, 134, 222, 169, 24, 1, 134,
+ 222, 138, 24, 1, 134, 207, 185, 24, 1, 134, 224, 212, 24, 1, 134, 228,
+ 185, 24, 1, 134, 221, 105, 24, 1, 134, 209, 119, 24, 1, 134, 225, 152,
+ 24, 1, 134, 222, 178, 24, 1, 134, 227, 168, 24, 1, 134, 222, 159, 24, 1,
+ 134, 221, 110, 24, 1, 134, 222, 16, 24, 1, 134, 238, 102, 24, 1, 134,
+ 228, 209, 24, 1, 134, 216, 108, 220, 45, 24, 1, 134, 210, 1, 24, 1, 134,
+ 208, 141, 24, 1, 134, 220, 248, 24, 1, 134, 216, 3, 24, 1, 134, 227, 225,
+ 24, 1, 134, 225, 7, 24, 1, 134, 226, 185, 24, 1, 134, 210, 179, 24, 1,
+ 134, 223, 246, 24, 1, 134, 213, 6, 24, 1, 134, 213, 16, 24, 1, 134, 228,
+ 137, 24, 1, 134, 221, 84, 24, 1, 134, 212, 199, 24, 1, 134, 221, 99, 24,
+ 1, 134, 219, 23, 24, 1, 134, 222, 100, 24, 1, 134, 212, 229, 24, 1, 134,
+ 217, 171, 24, 1, 134, 223, 184, 24, 1, 134, 227, 10, 24, 1, 134, 216,
+ 108, 223, 239, 24, 1, 134, 209, 2, 24, 1, 134, 221, 86, 24, 1, 134, 225,
+ 53, 213, 111, 24, 1, 134, 214, 231, 24, 1, 134, 240, 107, 24, 1, 93, 223,
+ 20, 24, 1, 93, 208, 147, 24, 1, 93, 225, 42, 24, 1, 93, 228, 11, 24, 1,
+ 93, 205, 177, 24, 1, 93, 227, 16, 24, 1, 93, 219, 168, 24, 1, 93, 211,
+ 255, 24, 1, 93, 216, 176, 24, 1, 93, 221, 112, 24, 1, 93, 222, 247, 24,
+ 1, 93, 217, 188, 24, 1, 93, 209, 232, 24, 1, 93, 222, 146, 24, 1, 93,
+ 228, 237, 24, 1, 93, 203, 208, 24, 1, 93, 214, 165, 24, 1, 93, 222, 170,
+ 24, 1, 93, 219, 165, 24, 1, 93, 208, 148, 24, 1, 93, 228, 189, 24, 1, 93,
+ 227, 30, 24, 1, 93, 221, 115, 24, 1, 93, 222, 122, 24, 1, 93, 225, 158,
+ 24, 1, 93, 222, 139, 24, 1, 93, 222, 121, 24, 1, 93, 221, 114, 24, 1, 93,
+ 216, 0, 24, 1, 93, 222, 34, 24, 1, 93, 219, 21, 24, 1, 93, 215, 33, 24,
+ 1, 93, 222, 154, 24, 1, 93, 224, 191, 24, 1, 93, 238, 96, 24, 1, 93, 222,
+ 142, 24, 1, 93, 222, 45, 24, 1, 93, 225, 106, 24, 1, 93, 227, 12, 24, 1,
+ 93, 222, 175, 24, 1, 93, 223, 4, 24, 1, 93, 210, 0, 221, 97, 24, 1, 93,
+ 213, 117, 24, 1, 93, 217, 181, 24, 1, 93, 223, 24, 212, 6, 24, 1, 93,
+ 222, 162, 221, 6, 24, 1, 93, 203, 7, 24, 1, 93, 238, 97, 24, 1, 93, 207,
+ 202, 24, 1, 93, 203, 22, 24, 1, 93, 218, 69, 24, 1, 93, 207, 190, 24, 1,
+ 93, 229, 168, 24, 1, 93, 211, 6, 24, 1, 93, 209, 120, 24, 1, 93, 205,
+ 239, 24, 1, 93, 204, 43, 24, 1, 93, 228, 110, 24, 1, 93, 217, 191, 24, 1,
+ 93, 210, 13, 24, 1, 93, 238, 117, 24, 1, 93, 222, 185, 24, 1, 93, 213,
+ 19, 24, 1, 93, 224, 186, 24, 1, 93, 225, 46, 24, 1, 93, 220, 212, 24, 1,
+ 93, 221, 254, 24, 1, 93, 238, 201, 24, 1, 93, 207, 191, 24, 1, 93, 228,
+ 199, 24, 1, 93, 203, 74, 24, 1, 93, 220, 249, 246, 32, 24, 1, 93, 202,
+ 253, 24, 1, 93, 224, 203, 24, 1, 93, 223, 9, 24, 1, 93, 218, 158, 24, 1,
+ 93, 202, 198, 24, 1, 93, 227, 170, 24, 1, 93, 239, 106, 24, 1, 93, 238,
+ 200, 24, 1, 93, 222, 132, 24, 1, 93, 229, 170, 24, 1, 93, 225, 161, 24,
+ 1, 93, 222, 145, 24, 1, 93, 238, 103, 24, 1, 93, 240, 108, 24, 1, 93,
+ 221, 87, 24, 1, 93, 218, 214, 24, 1, 93, 203, 20, 24, 1, 93, 222, 171,
+ 24, 1, 93, 220, 249, 248, 103, 24, 1, 93, 220, 192, 24, 1, 93, 218, 43,
+ 24, 1, 93, 224, 144, 24, 1, 93, 239, 104, 24, 1, 93, 223, 100, 24, 1, 93,
+ 223, 244, 24, 1, 93, 238, 102, 24, 1, 93, 239, 109, 75, 24, 1, 93, 223,
+ 185, 24, 1, 93, 217, 187, 24, 1, 93, 222, 134, 24, 1, 93, 228, 175, 24,
+ 1, 93, 218, 155, 24, 1, 93, 221, 100, 24, 1, 93, 203, 21, 24, 1, 93, 222,
+ 155, 24, 1, 93, 219, 169, 218, 252, 24, 1, 93, 239, 109, 247, 71, 24, 1,
+ 93, 239, 179, 24, 1, 93, 222, 39, 24, 1, 93, 63, 24, 1, 93, 208, 141, 24,
+ 1, 93, 78, 24, 1, 93, 75, 24, 1, 93, 228, 9, 24, 1, 93, 219, 169, 218,
+ 77, 24, 1, 93, 210, 18, 24, 1, 93, 209, 219, 24, 1, 93, 223, 24, 223,
+ 172, 236, 38, 24, 1, 93, 212, 250, 24, 1, 93, 203, 17, 24, 1, 93, 222,
+ 115, 24, 1, 93, 202, 203, 24, 1, 93, 202, 230, 210, 159, 24, 1, 93, 202,
+ 230, 245, 151, 24, 1, 93, 202, 187, 24, 1, 93, 202, 195, 24, 1, 93, 229,
+ 156, 24, 1, 93, 218, 212, 24, 1, 93, 222, 40, 241, 39, 24, 1, 93, 217,
+ 183, 24, 1, 93, 203, 214, 24, 1, 93, 240, 53, 24, 1, 93, 206, 50, 24, 1,
+ 93, 226, 239, 24, 1, 93, 224, 155, 24, 1, 93, 216, 75, 24, 1, 93, 216,
+ 202, 24, 1, 93, 222, 114, 24, 1, 93, 222, 203, 24, 1, 93, 212, 242, 24,
+ 1, 93, 212, 229, 24, 1, 93, 239, 109, 216, 111, 24, 1, 93, 201, 201, 24,
+ 1, 93, 218, 167, 24, 1, 93, 227, 10, 24, 1, 93, 229, 26, 24, 1, 93, 224,
+ 240, 24, 1, 93, 192, 24, 1, 93, 225, 103, 24, 1, 93, 209, 122, 24, 1, 93,
+ 229, 100, 24, 1, 93, 224, 54, 24, 1, 93, 209, 152, 24, 1, 93, 240, 77,
+ 24, 1, 93, 238, 90, 24, 1, 218, 196, 173, 24, 1, 218, 196, 68, 24, 1,
+ 218, 196, 228, 209, 24, 1, 218, 196, 241, 161, 24, 1, 218, 196, 216, 135,
+ 24, 1, 218, 196, 210, 1, 24, 1, 218, 196, 220, 248, 24, 1, 218, 196, 228,
+ 113, 24, 1, 218, 196, 216, 3, 24, 1, 218, 196, 216, 50, 24, 1, 218, 196,
+ 225, 7, 24, 1, 218, 196, 210, 18, 24, 1, 218, 196, 223, 23, 24, 1, 218,
+ 196, 222, 46, 24, 1, 218, 196, 226, 185, 24, 1, 218, 196, 210, 179, 24,
+ 1, 218, 196, 213, 6, 24, 1, 218, 196, 212, 162, 24, 1, 218, 196, 213,
+ 113, 24, 1, 218, 196, 228, 137, 24, 1, 218, 196, 229, 170, 24, 1, 218,
+ 196, 221, 55, 24, 1, 218, 196, 221, 84, 24, 1, 218, 196, 222, 17, 24, 1,
+ 218, 196, 202, 229, 24, 1, 218, 196, 212, 199, 24, 1, 218, 196, 198, 24,
+ 1, 218, 196, 221, 118, 24, 1, 218, 196, 218, 212, 24, 1, 218, 196, 221,
+ 99, 24, 1, 218, 196, 203, 214, 24, 1, 218, 196, 219, 23, 24, 1, 218, 196,
+ 215, 145, 24, 1, 218, 196, 222, 100, 24, 1, 218, 196, 216, 75, 24, 1,
+ 218, 196, 229, 180, 24, 1, 218, 196, 222, 131, 24, 1, 218, 196, 222, 182,
+ 24, 1, 218, 196, 212, 242, 24, 1, 218, 196, 217, 188, 24, 1, 218, 196,
+ 239, 179, 24, 1, 218, 196, 204, 111, 24, 1, 218, 196, 227, 148, 24, 1,
+ 218, 196, 227, 10, 24, 1, 218, 196, 229, 26, 24, 1, 218, 196, 225, 44,
+ 24, 1, 218, 196, 216, 107, 24, 1, 218, 196, 192, 24, 1, 218, 196, 224,
+ 82, 24, 1, 218, 196, 225, 52, 24, 1, 218, 196, 209, 132, 24, 1, 218, 196,
+ 228, 244, 24, 1, 218, 196, 214, 251, 24, 1, 218, 196, 204, 162, 223, 249,
+ 1, 210, 22, 223, 249, 1, 222, 151, 223, 249, 1, 202, 247, 223, 249, 1,
+ 224, 112, 223, 249, 1, 249, 32, 223, 249, 1, 244, 212, 223, 249, 1, 63,
+ 223, 249, 1, 218, 192, 223, 249, 1, 229, 139, 223, 249, 1, 237, 95, 223,
+ 249, 1, 244, 188, 223, 249, 1, 246, 98, 223, 249, 1, 229, 200, 223, 249,
+ 1, 220, 46, 223, 249, 1, 225, 158, 223, 249, 1, 222, 68, 223, 249, 1,
+ 185, 223, 249, 1, 220, 18, 223, 249, 1, 78, 223, 249, 1, 215, 227, 223,
+ 249, 1, 213, 11, 223, 249, 1, 209, 91, 223, 249, 1, 241, 189, 223, 249,
+ 1, 204, 111, 223, 249, 1, 74, 223, 249, 1, 229, 26, 223, 249, 1, 228, 17,
+ 223, 249, 1, 228, 113, 223, 249, 1, 237, 147, 223, 249, 1, 216, 57, 223,
+ 249, 1, 209, 165, 223, 249, 17, 202, 84, 223, 249, 17, 105, 223, 249, 17,
+ 108, 223, 249, 17, 147, 223, 249, 17, 149, 223, 249, 17, 170, 223, 249,
+ 17, 195, 223, 249, 17, 213, 111, 223, 249, 17, 199, 223, 249, 17, 222,
+ 63, 223, 249, 244, 166, 223, 249, 52, 244, 166, 248, 212, 206, 83, 1,
+ 241, 74, 248, 212, 206, 83, 1, 173, 248, 212, 206, 83, 1, 214, 177, 248,
+ 212, 206, 83, 1, 240, 108, 248, 212, 206, 83, 1, 225, 47, 248, 212, 206,
+ 83, 1, 203, 8, 248, 212, 206, 83, 1, 238, 249, 248, 212, 206, 83, 1, 243,
+ 238, 248, 212, 206, 83, 1, 228, 243, 248, 212, 206, 83, 1, 230, 101, 248,
+ 212, 206, 83, 1, 235, 253, 248, 212, 206, 83, 1, 204, 111, 248, 212, 206,
+ 83, 1, 202, 17, 248, 212, 206, 83, 1, 238, 194, 248, 212, 206, 83, 1,
+ 243, 113, 248, 212, 206, 83, 1, 246, 238, 248, 212, 206, 83, 1, 206, 171,
+ 248, 212, 206, 83, 1, 135, 248, 212, 206, 83, 1, 249, 32, 248, 212, 206,
+ 83, 1, 204, 163, 248, 212, 206, 83, 1, 203, 46, 248, 212, 206, 83, 1,
+ 185, 248, 212, 206, 83, 1, 204, 108, 248, 212, 206, 83, 1, 63, 248, 212,
+ 206, 83, 1, 78, 248, 212, 206, 83, 1, 220, 18, 248, 212, 206, 83, 1, 68,
+ 248, 212, 206, 83, 1, 241, 161, 248, 212, 206, 83, 1, 74, 248, 212, 206,
+ 83, 1, 75, 248, 212, 206, 83, 39, 138, 208, 161, 248, 212, 206, 83, 39,
+ 124, 208, 161, 248, 212, 206, 83, 39, 224, 150, 208, 161, 248, 212, 206,
+ 83, 39, 226, 253, 208, 161, 248, 212, 206, 83, 39, 236, 242, 208, 161,
+ 248, 212, 206, 83, 239, 102, 211, 61, 119, 117, 22, 229, 197, 119, 117,
+ 22, 229, 193, 119, 117, 22, 229, 97, 119, 117, 22, 229, 63, 119, 117, 22,
+ 229, 218, 119, 117, 22, 229, 215, 119, 117, 22, 228, 200, 119, 117, 22,
+ 228, 172, 119, 117, 22, 229, 199, 119, 117, 22, 229, 154, 119, 117, 22,
+ 230, 17, 119, 117, 22, 230, 14, 119, 117, 22, 229, 5, 119, 117, 22, 229,
+ 2, 119, 117, 22, 229, 212, 119, 117, 22, 229, 210, 119, 117, 22, 228,
+ 202, 119, 117, 22, 228, 201, 119, 117, 22, 229, 23, 119, 117, 22, 228,
+ 247, 119, 117, 22, 229, 99, 119, 117, 22, 229, 98, 119, 117, 22, 230, 32,
+ 119, 117, 22, 229, 214, 119, 117, 22, 228, 163, 119, 117, 22, 228, 154,
+ 119, 117, 22, 230, 40, 119, 117, 22, 230, 33, 119, 117, 109, 206, 61,
+ 119, 117, 109, 221, 90, 119, 117, 109, 227, 251, 119, 117, 109, 237, 76,
+ 119, 117, 109, 221, 230, 119, 117, 109, 216, 167, 119, 117, 109, 222, 1,
+ 119, 117, 109, 217, 100, 119, 117, 109, 203, 62, 119, 117, 109, 236, 221,
+ 119, 117, 109, 225, 67, 119, 117, 109, 246, 174, 119, 117, 109, 223, 28,
+ 119, 117, 109, 236, 157, 119, 117, 109, 218, 85, 119, 117, 109, 221, 95,
+ 119, 117, 109, 223, 65, 119, 117, 109, 250, 34, 119, 117, 109, 203, 178,
+ 119, 117, 109, 247, 15, 119, 117, 131, 246, 67, 207, 199, 119, 117, 131,
+ 246, 67, 212, 13, 119, 117, 131, 246, 67, 229, 172, 119, 117, 131, 246,
+ 67, 229, 130, 119, 117, 131, 246, 67, 211, 4, 119, 117, 131, 246, 67,
+ 236, 123, 119, 117, 131, 246, 67, 209, 206, 119, 117, 2, 205, 173, 209,
+ 44, 119, 117, 2, 205, 173, 208, 9, 246, 229, 119, 117, 2, 246, 67, 246,
+ 163, 119, 117, 2, 205, 173, 209, 69, 119, 117, 2, 205, 173, 240, 50, 119,
+ 117, 2, 203, 136, 221, 85, 119, 117, 2, 203, 136, 216, 59, 119, 117, 2,
+ 203, 136, 208, 124, 119, 117, 2, 203, 136, 240, 89, 119, 117, 2, 205,
+ 173, 214, 159, 119, 117, 2, 225, 6, 211, 8, 119, 117, 2, 205, 173, 221,
+ 134, 119, 117, 2, 235, 167, 203, 81, 119, 117, 2, 203, 177, 119, 117, 2,
+ 246, 67, 207, 252, 215, 216, 119, 117, 17, 202, 84, 119, 117, 17, 105,
+ 119, 117, 17, 108, 119, 117, 17, 147, 119, 117, 17, 149, 119, 117, 17,
+ 170, 119, 117, 17, 195, 119, 117, 17, 213, 111, 119, 117, 17, 199, 119,
+ 117, 17, 222, 63, 119, 117, 42, 209, 147, 119, 117, 42, 236, 10, 119,
+ 117, 42, 209, 153, 209, 34, 119, 117, 42, 224, 113, 119, 117, 42, 236,
+ 12, 224, 113, 119, 117, 42, 209, 153, 248, 68, 119, 117, 42, 208, 72,
+ 119, 117, 2, 205, 173, 226, 234, 119, 117, 2, 203, 133, 119, 117, 2, 236,
+ 216, 119, 117, 2, 209, 59, 236, 216, 119, 117, 2, 201, 247, 209, 102,
+ 119, 117, 2, 236, 141, 119, 117, 2, 221, 148, 119, 117, 2, 203, 169, 119,
+ 117, 2, 221, 88, 119, 117, 2, 250, 18, 119, 117, 2, 207, 129, 246, 228,
+ 119, 117, 2, 225, 6, 208, 12, 119, 117, 2, 209, 207, 119, 117, 2, 227, 7,
+ 119, 117, 2, 223, 201, 119, 117, 2, 246, 67, 237, 143, 226, 212, 221, 93,
+ 221, 92, 119, 117, 2, 246, 67, 245, 109, 208, 3, 119, 117, 2, 246, 67,
+ 207, 127, 119, 117, 2, 246, 67, 207, 128, 246, 86, 119, 117, 2, 246, 67,
+ 217, 186, 244, 135, 119, 117, 2, 246, 67, 221, 141, 208, 132, 119, 117,
+ 246, 39, 2, 208, 7, 119, 117, 246, 39, 2, 203, 48, 119, 117, 246, 39, 2,
+ 227, 93, 119, 117, 246, 39, 2, 227, 250, 119, 117, 246, 39, 2, 203, 132,
+ 119, 117, 246, 39, 2, 229, 6, 119, 117, 246, 39, 2, 237, 73, 119, 117,
+ 246, 39, 2, 223, 242, 119, 117, 246, 39, 2, 209, 45, 119, 117, 246, 39,
+ 2, 208, 17, 119, 117, 246, 39, 2, 218, 205, 119, 117, 246, 39, 2, 229,
+ 142, 119, 117, 246, 39, 2, 237, 133, 119, 117, 246, 39, 2, 206, 80, 119,
+ 117, 246, 39, 2, 240, 86, 119, 117, 246, 39, 2, 203, 88, 119, 117, 246,
+ 39, 2, 207, 246, 119, 117, 246, 39, 2, 228, 158, 119, 117, 246, 39, 2,
+ 204, 153, 111, 1, 185, 111, 1, 249, 32, 111, 1, 11, 185, 111, 1, 218, 98,
+ 111, 1, 192, 111, 1, 224, 158, 111, 1, 250, 126, 192, 111, 1, 240, 108,
+ 111, 1, 206, 86, 111, 1, 205, 231, 111, 1, 210, 22, 111, 1, 244, 212,
+ 111, 1, 11, 207, 241, 111, 1, 11, 210, 22, 111, 1, 207, 241, 111, 1, 244,
+ 120, 111, 1, 201, 201, 111, 1, 222, 104, 111, 1, 11, 221, 227, 111, 1,
+ 250, 126, 201, 201, 111, 1, 221, 227, 111, 1, 221, 213, 111, 1, 228, 113,
+ 111, 1, 226, 198, 111, 1, 227, 161, 111, 1, 227, 150, 111, 1, 208, 187,
+ 111, 1, 243, 121, 111, 1, 208, 179, 111, 1, 243, 120, 111, 1, 173, 111,
+ 1, 239, 8, 111, 1, 11, 173, 111, 1, 217, 126, 111, 1, 217, 103, 111, 1,
+ 222, 203, 111, 1, 222, 152, 111, 1, 250, 126, 222, 203, 111, 1, 152, 111,
+ 1, 203, 182, 111, 1, 238, 119, 111, 1, 238, 94, 111, 1, 207, 251, 111, 1,
+ 241, 239, 111, 1, 221, 11, 111, 1, 220, 250, 111, 1, 208, 10, 111, 1,
+ 241, 249, 111, 1, 11, 208, 10, 111, 1, 11, 241, 249, 111, 1, 216, 133,
+ 208, 10, 111, 1, 213, 90, 111, 1, 211, 164, 111, 1, 202, 80, 111, 1, 202,
+ 8, 111, 1, 208, 20, 111, 1, 241, 255, 111, 1, 11, 208, 20, 111, 1, 215,
+ 36, 111, 1, 202, 116, 111, 1, 202, 9, 111, 1, 201, 235, 111, 1, 201, 215,
+ 111, 1, 250, 126, 201, 235, 111, 1, 201, 207, 111, 1, 201, 214, 111, 1,
+ 204, 111, 111, 1, 251, 73, 111, 1, 237, 12, 111, 1, 223, 70, 111, 2, 250,
+ 65, 111, 2, 216, 133, 205, 184, 111, 2, 216, 133, 250, 65, 111, 22, 2,
+ 63, 111, 22, 2, 252, 25, 111, 22, 2, 251, 69, 111, 22, 2, 250, 231, 111,
+ 22, 2, 250, 223, 111, 22, 2, 78, 111, 22, 2, 220, 18, 111, 22, 2, 204, 0,
+ 111, 22, 2, 204, 144, 111, 22, 2, 74, 111, 22, 2, 241, 92, 111, 22, 2,
+ 241, 78, 111, 22, 2, 220, 70, 111, 22, 2, 75, 111, 22, 2, 235, 171, 111,
+ 22, 2, 235, 170, 111, 22, 2, 235, 169, 111, 22, 2, 230, 234, 111, 22, 2,
+ 231, 110, 111, 22, 2, 231, 83, 111, 22, 2, 230, 197, 111, 22, 2, 231, 24,
+ 111, 22, 2, 68, 111, 22, 2, 207, 39, 111, 22, 2, 207, 38, 111, 22, 2,
+ 207, 37, 111, 22, 2, 206, 178, 111, 22, 2, 207, 21, 111, 22, 2, 206, 241,
+ 111, 22, 2, 203, 124, 111, 22, 2, 203, 11, 111, 22, 2, 251, 109, 111, 22,
+ 2, 251, 105, 111, 22, 2, 241, 21, 111, 22, 2, 215, 189, 241, 21, 111, 22,
+ 2, 241, 28, 111, 22, 2, 215, 189, 241, 28, 111, 22, 2, 251, 64, 111, 22,
+ 2, 241, 145, 111, 22, 2, 250, 34, 111, 22, 2, 219, 216, 111, 22, 2, 223,
+ 163, 111, 22, 2, 222, 205, 111, 143, 216, 16, 111, 143, 208, 145, 216,
+ 16, 111, 143, 55, 111, 143, 56, 111, 1, 208, 159, 111, 1, 208, 158, 111,
+ 1, 208, 157, 111, 1, 208, 156, 111, 1, 208, 155, 111, 1, 208, 154, 111,
+ 1, 208, 153, 111, 1, 216, 133, 208, 160, 111, 1, 216, 133, 208, 159, 111,
+ 1, 216, 133, 208, 157, 111, 1, 216, 133, 208, 156, 111, 1, 216, 133, 208,
+ 155, 111, 1, 216, 133, 208, 153, 67, 1, 250, 126, 74, 172, 1, 250, 126,
+ 203, 52, 100, 1, 237, 171, 100, 1, 203, 196, 100, 1, 219, 184, 100, 1,
+ 210, 69, 100, 1, 240, 174, 100, 1, 230, 54, 100, 1, 159, 100, 1, 249,
+ 255, 100, 1, 245, 51, 100, 1, 206, 164, 100, 1, 239, 75, 100, 1, 146,
+ 100, 1, 219, 185, 223, 163, 100, 1, 245, 52, 194, 100, 1, 240, 175, 223,
+ 163, 100, 1, 230, 55, 226, 185, 100, 1, 217, 1, 194, 100, 1, 209, 110,
+ 100, 1, 212, 45, 244, 2, 100, 1, 244, 2, 100, 1, 229, 48, 100, 1, 212,
+ 45, 230, 184, 100, 1, 236, 225, 100, 1, 227, 162, 100, 1, 216, 62, 100,
+ 1, 226, 185, 100, 1, 223, 163, 100, 1, 230, 184, 100, 1, 194, 100, 1,
+ 226, 186, 223, 163, 100, 1, 223, 164, 226, 185, 100, 1, 230, 185, 226,
+ 185, 100, 1, 215, 94, 230, 184, 100, 1, 226, 186, 3, 243, 85, 100, 1,
+ 223, 164, 3, 243, 85, 100, 1, 230, 185, 3, 243, 85, 100, 1, 230, 185, 3,
+ 187, 231, 7, 25, 55, 100, 1, 215, 94, 3, 243, 85, 100, 1, 215, 94, 3, 70,
+ 56, 100, 1, 226, 186, 194, 100, 1, 223, 164, 194, 100, 1, 230, 185, 194,
+ 100, 1, 215, 94, 194, 100, 1, 226, 186, 223, 164, 194, 100, 1, 223, 164,
+ 226, 186, 194, 100, 1, 230, 185, 226, 186, 194, 100, 1, 215, 94, 230,
+ 185, 194, 100, 1, 230, 185, 215, 94, 3, 243, 85, 100, 1, 230, 185, 223,
+ 163, 100, 1, 230, 185, 223, 164, 194, 100, 1, 215, 94, 210, 69, 100, 1,
+ 215, 94, 210, 70, 146, 100, 1, 215, 94, 219, 184, 100, 1, 215, 94, 219,
+ 185, 146, 100, 1, 210, 70, 194, 100, 1, 210, 70, 217, 1, 194, 100, 1,
+ 204, 144, 100, 1, 204, 40, 100, 1, 204, 145, 146, 100, 1, 215, 94, 223,
+ 163, 100, 1, 215, 94, 226, 185, 100, 1, 230, 55, 217, 1, 194, 100, 1,
+ 239, 76, 217, 1, 194, 100, 1, 215, 94, 230, 54, 100, 1, 215, 94, 230, 55,
+ 146, 100, 1, 63, 100, 1, 212, 45, 219, 195, 100, 1, 220, 97, 100, 1, 78,
+ 100, 1, 250, 176, 100, 1, 75, 100, 1, 74, 100, 1, 231, 110, 100, 1, 212,
+ 228, 75, 100, 1, 207, 17, 100, 1, 241, 161, 100, 1, 212, 45, 241, 147,
+ 100, 1, 215, 209, 75, 100, 1, 212, 45, 241, 161, 100, 1, 163, 75, 100, 1,
+ 203, 52, 100, 1, 68, 100, 1, 240, 238, 100, 1, 203, 147, 100, 1, 106,
+ 223, 163, 100, 1, 163, 68, 100, 1, 215, 209, 68, 100, 1, 207, 18, 100, 1,
+ 212, 45, 68, 100, 1, 220, 15, 100, 1, 219, 195, 100, 1, 219, 216, 100, 1,
+ 204, 111, 100, 1, 204, 0, 100, 1, 204, 30, 100, 1, 204, 53, 100, 1, 203,
+ 230, 100, 1, 223, 72, 68, 100, 1, 223, 72, 78, 100, 1, 223, 72, 75, 100,
+ 1, 223, 72, 63, 100, 1, 218, 235, 250, 231, 100, 1, 218, 235, 250, 247,
+ 100, 1, 212, 45, 241, 92, 100, 1, 212, 45, 250, 231, 100, 1, 212, 45,
+ 220, 31, 100, 1, 125, 226, 185, 100, 251, 88, 49, 236, 106, 214, 172,
+ 100, 251, 88, 224, 150, 236, 106, 214, 172, 100, 251, 88, 50, 236, 106,
+ 214, 172, 100, 251, 88, 124, 80, 214, 172, 100, 251, 88, 224, 150, 80,
+ 214, 172, 100, 251, 88, 138, 80, 214, 172, 100, 251, 88, 250, 40, 214,
+ 172, 100, 251, 88, 250, 40, 227, 213, 214, 172, 100, 251, 88, 250, 40,
+ 209, 226, 100, 251, 88, 250, 40, 209, 248, 100, 251, 88, 250, 40, 188,
+ 113, 100, 251, 88, 250, 40, 235, 206, 113, 100, 251, 88, 250, 40, 209,
+ 227, 113, 100, 251, 88, 138, 165, 100, 251, 88, 138, 208, 244, 165, 100,
+ 251, 88, 138, 237, 253, 100, 251, 88, 138, 163, 237, 253, 100, 251, 88,
+ 138, 243, 85, 100, 251, 88, 138, 246, 61, 100, 251, 88, 138, 227, 114,
+ 100, 251, 88, 138, 204, 75, 100, 251, 88, 138, 206, 38, 100, 251, 88,
+ 124, 165, 100, 251, 88, 124, 208, 244, 165, 100, 251, 88, 124, 237, 253,
+ 100, 251, 88, 124, 163, 237, 253, 100, 251, 88, 124, 243, 85, 100, 251,
+ 88, 124, 246, 61, 100, 251, 88, 124, 227, 114, 100, 251, 88, 124, 204,
+ 75, 100, 251, 88, 124, 206, 38, 100, 251, 88, 124, 47, 100, 2, 158, 3,
+ 245, 130, 100, 209, 68, 1, 214, 150, 100, 52, 82, 100, 217, 179, 246,
+ 126, 239, 102, 211, 61, 212, 215, 239, 158, 1, 219, 201, 212, 215, 239,
+ 158, 245, 190, 219, 201, 212, 215, 239, 158, 121, 211, 75, 212, 215, 239,
+ 158, 112, 211, 75, 60, 31, 16, 217, 195, 60, 31, 16, 244, 146, 60, 31,
+ 16, 218, 239, 60, 31, 16, 219, 192, 241, 126, 60, 31, 16, 219, 192, 243,
+ 171, 60, 31, 16, 206, 73, 241, 126, 60, 31, 16, 206, 73, 243, 171, 60,
+ 31, 16, 229, 221, 60, 31, 16, 210, 86, 60, 31, 16, 219, 83, 60, 31, 16,
+ 202, 219, 60, 31, 16, 202, 220, 243, 171, 60, 31, 16, 228, 226, 60, 31,
+ 16, 250, 171, 241, 126, 60, 31, 16, 240, 206, 241, 126, 60, 31, 16, 209,
+ 163, 60, 31, 16, 229, 176, 60, 31, 16, 250, 161, 60, 31, 16, 250, 162,
+ 243, 171, 60, 31, 16, 210, 93, 60, 31, 16, 209, 50, 60, 31, 16, 220, 42,
+ 250, 124, 60, 31, 16, 238, 23, 250, 124, 60, 31, 16, 217, 194, 60, 31,
+ 16, 246, 190, 60, 31, 16, 206, 62, 60, 31, 16, 230, 206, 250, 124, 60,
+ 31, 16, 229, 178, 250, 124, 60, 31, 16, 229, 177, 250, 124, 60, 31, 16,
+ 214, 210, 60, 31, 16, 219, 73, 60, 31, 16, 211, 84, 250, 164, 60, 31, 16,
+ 219, 191, 250, 124, 60, 31, 16, 206, 72, 250, 124, 60, 31, 16, 250, 165,
+ 250, 124, 60, 31, 16, 250, 159, 60, 31, 16, 229, 38, 60, 31, 16, 216, 69,
+ 60, 31, 16, 218, 165, 250, 124, 60, 31, 16, 208, 217, 60, 31, 16, 250,
+ 229, 60, 31, 16, 214, 153, 60, 31, 16, 210, 97, 250, 124, 60, 31, 16,
+ 210, 97, 224, 221, 211, 82, 60, 31, 16, 219, 186, 250, 124, 60, 31, 16,
+ 209, 86, 60, 31, 16, 227, 200, 60, 31, 16, 242, 2, 60, 31, 16, 208, 87,
+ 60, 31, 16, 209, 134, 60, 31, 16, 228, 229, 60, 31, 16, 250, 171, 240,
+ 206, 222, 226, 60, 31, 16, 239, 110, 250, 124, 60, 31, 16, 231, 62, 60,
+ 31, 16, 208, 57, 250, 124, 60, 31, 16, 229, 224, 208, 56, 60, 31, 16,
+ 219, 11, 60, 31, 16, 217, 199, 60, 31, 16, 229, 7, 60, 31, 16, 246, 110,
+ 250, 124, 60, 31, 16, 216, 177, 60, 31, 16, 219, 86, 250, 124, 60, 31,
+ 16, 219, 84, 250, 124, 60, 31, 16, 235, 160, 60, 31, 16, 223, 82, 60, 31,
+ 16, 218, 217, 60, 31, 16, 229, 8, 251, 9, 60, 31, 16, 208, 57, 251, 9,
+ 60, 31, 16, 211, 55, 60, 31, 16, 237, 240, 60, 31, 16, 230, 206, 222,
+ 226, 60, 31, 16, 220, 42, 222, 226, 60, 31, 16, 219, 192, 222, 226, 60,
+ 31, 16, 218, 216, 60, 31, 16, 228, 248, 60, 31, 16, 218, 215, 60, 31, 16,
+ 228, 228, 60, 31, 16, 219, 12, 222, 226, 60, 31, 16, 229, 177, 222, 227,
+ 250, 202, 60, 31, 16, 229, 178, 222, 227, 250, 202, 60, 31, 16, 202, 217,
+ 60, 31, 16, 250, 162, 222, 226, 60, 31, 16, 250, 163, 210, 94, 222, 226,
+ 60, 31, 16, 202, 218, 60, 31, 16, 228, 227, 60, 31, 16, 241, 121, 60, 31,
+ 16, 246, 191, 60, 31, 16, 224, 122, 230, 205, 60, 31, 16, 206, 73, 222,
+ 226, 60, 31, 16, 218, 165, 222, 226, 60, 31, 16, 217, 200, 222, 226, 60,
+ 31, 16, 220, 38, 60, 31, 16, 250, 189, 60, 31, 16, 226, 195, 60, 31, 16,
+ 219, 84, 222, 226, 60, 31, 16, 219, 86, 222, 226, 60, 31, 16, 240, 244,
+ 219, 85, 60, 31, 16, 228, 135, 60, 31, 16, 250, 190, 60, 31, 16, 208, 57,
+ 222, 226, 60, 31, 16, 241, 124, 60, 31, 16, 210, 97, 222, 226, 60, 31,
+ 16, 210, 87, 60, 31, 16, 246, 110, 222, 226, 60, 31, 16, 241, 43, 60, 31,
+ 16, 214, 154, 222, 226, 60, 31, 16, 203, 163, 229, 38, 60, 31, 16, 208,
+ 54, 60, 31, 16, 217, 201, 60, 31, 16, 208, 58, 60, 31, 16, 208, 55, 60,
+ 31, 16, 217, 198, 60, 31, 16, 208, 53, 60, 31, 16, 217, 197, 60, 31, 16,
+ 238, 22, 60, 31, 16, 250, 116, 60, 31, 16, 240, 244, 250, 116, 60, 31,
+ 16, 219, 186, 222, 226, 60, 31, 16, 209, 85, 241, 1, 60, 31, 16, 209, 85,
+ 240, 205, 60, 31, 16, 209, 87, 250, 166, 60, 31, 16, 209, 79, 230, 19,
+ 250, 158, 60, 31, 16, 229, 223, 60, 31, 16, 241, 80, 60, 31, 16, 203, 14,
+ 229, 220, 60, 31, 16, 203, 14, 250, 202, 60, 31, 16, 211, 83, 60, 31, 16,
+ 229, 39, 250, 202, 60, 31, 16, 243, 172, 250, 124, 60, 31, 16, 228, 230,
+ 250, 124, 60, 31, 16, 228, 230, 251, 9, 60, 31, 16, 228, 230, 222, 226,
+ 60, 31, 16, 250, 165, 222, 226, 60, 31, 16, 250, 167, 60, 31, 16, 243,
+ 171, 60, 31, 16, 208, 68, 60, 31, 16, 209, 125, 60, 31, 16, 228, 252, 60,
+ 31, 16, 227, 205, 241, 73, 246, 100, 60, 31, 16, 227, 205, 242, 3, 246,
+ 101, 60, 31, 16, 227, 205, 208, 71, 246, 101, 60, 31, 16, 227, 205, 209,
+ 136, 246, 101, 60, 31, 16, 227, 205, 231, 57, 246, 100, 60, 31, 16, 238,
+ 23, 222, 227, 250, 202, 60, 31, 16, 238, 23, 219, 74, 250, 112, 60, 31,
+ 16, 238, 23, 219, 74, 244, 6, 60, 31, 16, 243, 196, 60, 31, 16, 243, 197,
+ 219, 74, 250, 113, 229, 220, 60, 31, 16, 243, 197, 219, 74, 250, 113,
+ 250, 202, 60, 31, 16, 243, 197, 219, 74, 244, 6, 60, 31, 16, 208, 76, 60,
+ 31, 16, 250, 117, 60, 31, 16, 231, 64, 60, 31, 16, 243, 219, 60, 31, 16,
+ 251, 75, 218, 52, 250, 118, 60, 31, 16, 251, 75, 250, 115, 60, 31, 16,
+ 251, 75, 250, 118, 60, 31, 16, 251, 75, 224, 215, 60, 31, 16, 251, 75,
+ 224, 226, 60, 31, 16, 251, 75, 238, 24, 60, 31, 16, 251, 75, 238, 21, 60,
+ 31, 16, 251, 75, 218, 52, 238, 24, 60, 31, 16, 225, 84, 217, 207, 235,
+ 158, 60, 31, 16, 225, 84, 251, 11, 217, 207, 235, 158, 60, 31, 16, 225,
+ 84, 244, 5, 235, 158, 60, 31, 16, 225, 84, 251, 11, 244, 5, 235, 158, 60,
+ 31, 16, 225, 84, 208, 63, 235, 158, 60, 31, 16, 225, 84, 208, 77, 60, 31,
+ 16, 225, 84, 209, 130, 235, 158, 60, 31, 16, 225, 84, 209, 130, 227, 209,
+ 235, 158, 60, 31, 16, 225, 84, 227, 209, 235, 158, 60, 31, 16, 225, 84,
+ 218, 95, 235, 158, 60, 31, 16, 230, 213, 209, 156, 235, 159, 60, 31, 16,
+ 250, 163, 209, 156, 235, 159, 60, 31, 16, 240, 80, 209, 127, 60, 31, 16,
+ 240, 80, 224, 46, 60, 31, 16, 240, 80, 243, 202, 60, 31, 16, 225, 84,
+ 206, 66, 235, 158, 60, 31, 16, 225, 84, 217, 206, 235, 158, 60, 31, 16,
+ 225, 84, 218, 95, 209, 130, 235, 158, 60, 31, 16, 238, 19, 223, 164, 250,
+ 166, 60, 31, 16, 238, 19, 223, 164, 243, 170, 60, 31, 16, 241, 90, 230,
+ 19, 239, 110, 205, 171, 60, 31, 16, 231, 63, 60, 31, 16, 231, 61, 60, 31,
+ 16, 239, 110, 250, 125, 244, 4, 235, 157, 60, 31, 16, 239, 110, 243, 217,
+ 185, 60, 31, 16, 239, 110, 243, 217, 223, 82, 60, 31, 16, 239, 110, 223,
+ 77, 235, 158, 60, 31, 16, 239, 110, 243, 217, 243, 233, 60, 31, 16, 239,
+ 110, 212, 64, 243, 216, 243, 233, 60, 31, 16, 239, 110, 243, 217, 229,
+ 201, 60, 31, 16, 239, 110, 243, 217, 202, 17, 60, 31, 16, 239, 110, 243,
+ 217, 222, 101, 229, 220, 60, 31, 16, 239, 110, 243, 217, 222, 101, 250,
+ 202, 60, 31, 16, 239, 110, 225, 128, 246, 102, 243, 202, 60, 31, 16, 239,
+ 110, 225, 128, 246, 102, 224, 46, 60, 31, 16, 240, 27, 212, 64, 246, 102,
+ 206, 65, 60, 31, 16, 239, 110, 212, 64, 246, 102, 210, 98, 60, 31, 16,
+ 239, 110, 222, 229, 60, 31, 16, 246, 103, 201, 241, 60, 31, 16, 246, 103,
+ 229, 37, 60, 31, 16, 246, 103, 211, 219, 60, 31, 16, 239, 110, 235, 206,
+ 203, 13, 209, 131, 60, 31, 16, 239, 110, 241, 91, 250, 191, 60, 31, 16,
+ 203, 13, 208, 64, 60, 31, 16, 243, 210, 208, 64, 60, 31, 16, 243, 210,
+ 209, 131, 60, 31, 16, 243, 210, 250, 168, 242, 3, 243, 105, 60, 31, 16,
+ 243, 210, 224, 44, 209, 135, 243, 105, 60, 31, 16, 243, 210, 243, 193,
+ 240, 218, 243, 105, 60, 31, 16, 243, 210, 208, 74, 220, 48, 243, 105, 60,
+ 31, 16, 203, 13, 250, 168, 242, 3, 243, 105, 60, 31, 16, 203, 13, 224,
+ 44, 209, 135, 243, 105, 60, 31, 16, 203, 13, 243, 193, 240, 218, 243,
+ 105, 60, 31, 16, 203, 13, 208, 74, 220, 48, 243, 105, 60, 31, 16, 238,
+ 175, 243, 209, 60, 31, 16, 238, 175, 203, 12, 60, 31, 16, 243, 218, 250,
+ 168, 224, 123, 60, 31, 16, 243, 218, 250, 168, 224, 255, 60, 31, 16, 243,
+ 218, 243, 171, 60, 31, 16, 243, 218, 209, 77, 60, 31, 16, 212, 130, 209,
+ 77, 60, 31, 16, 212, 130, 209, 78, 243, 155, 60, 31, 16, 212, 130, 209,
+ 78, 208, 65, 60, 31, 16, 212, 130, 209, 78, 209, 123, 60, 31, 16, 212,
+ 130, 250, 88, 60, 31, 16, 212, 130, 250, 89, 243, 155, 60, 31, 16, 212,
+ 130, 250, 89, 208, 65, 60, 31, 16, 212, 130, 250, 89, 209, 123, 60, 31,
+ 16, 243, 194, 238, 156, 60, 31, 16, 243, 201, 219, 216, 60, 31, 16, 211,
+ 71, 60, 31, 16, 250, 109, 185, 60, 31, 16, 250, 109, 205, 171, 60, 31,
+ 16, 250, 109, 239, 8, 60, 31, 16, 250, 109, 243, 233, 60, 31, 16, 250,
+ 109, 229, 201, 60, 31, 16, 250, 109, 202, 17, 60, 31, 16, 250, 109, 222,
+ 100, 60, 31, 16, 229, 177, 222, 227, 224, 225, 60, 31, 16, 229, 178, 222,
+ 227, 224, 225, 60, 31, 16, 229, 177, 222, 227, 229, 220, 60, 31, 16, 229,
+ 178, 222, 227, 229, 220, 60, 31, 16, 229, 39, 229, 220, 60, 31, 16, 238,
+ 23, 222, 227, 229, 220, 31, 16, 212, 120, 248, 226, 31, 16, 52, 248, 226,
+ 31, 16, 46, 248, 226, 31, 16, 216, 74, 46, 248, 226, 31, 16, 244, 143,
+ 248, 226, 31, 16, 212, 228, 248, 226, 31, 16, 49, 216, 101, 54, 31, 16,
+ 50, 216, 101, 54, 31, 16, 216, 101, 243, 83, 31, 16, 244, 185, 214, 157,
+ 31, 16, 244, 213, 247, 45, 31, 16, 214, 157, 31, 16, 245, 250, 31, 16,
+ 216, 99, 240, 15, 31, 16, 216, 99, 240, 14, 31, 16, 216, 99, 240, 13, 31,
+ 16, 240, 36, 31, 16, 240, 37, 56, 31, 16, 247, 216, 82, 31, 16, 247, 82,
+ 31, 16, 247, 228, 31, 16, 155, 31, 16, 220, 28, 211, 102, 31, 16, 207,
+ 133, 211, 102, 31, 16, 209, 29, 211, 102, 31, 16, 239, 146, 211, 102, 31,
+ 16, 239, 232, 211, 102, 31, 16, 212, 87, 211, 102, 31, 16, 212, 85, 239,
+ 127, 31, 16, 239, 144, 239, 127, 31, 16, 239, 76, 246, 30, 31, 16, 239,
+ 76, 246, 31, 219, 218, 251, 0, 31, 16, 239, 76, 246, 31, 219, 218, 248,
+ 211, 31, 16, 247, 126, 246, 30, 31, 16, 240, 175, 246, 30, 31, 16, 240,
+ 175, 246, 31, 219, 218, 251, 0, 31, 16, 240, 175, 246, 31, 219, 218, 248,
+ 211, 31, 16, 242, 47, 246, 29, 31, 16, 242, 47, 246, 28, 31, 16, 223,
+ 226, 225, 19, 216, 85, 31, 16, 52, 213, 56, 31, 16, 52, 239, 216, 31, 16,
+ 239, 217, 206, 224, 31, 16, 239, 217, 242, 70, 31, 16, 223, 66, 206, 224,
+ 31, 16, 223, 66, 242, 70, 31, 16, 213, 57, 206, 224, 31, 16, 213, 57,
+ 242, 70, 31, 16, 217, 56, 143, 213, 56, 31, 16, 217, 56, 143, 239, 216,
+ 31, 16, 245, 230, 208, 221, 31, 16, 245, 78, 208, 221, 31, 16, 219, 218,
+ 251, 0, 31, 16, 219, 218, 248, 211, 31, 16, 217, 37, 251, 0, 31, 16, 217,
+ 37, 248, 211, 31, 16, 223, 229, 216, 85, 31, 16, 204, 31, 216, 85, 31,
+ 16, 162, 216, 85, 31, 16, 217, 56, 216, 85, 31, 16, 241, 139, 216, 85,
+ 31, 16, 212, 81, 216, 85, 31, 16, 209, 51, 216, 85, 31, 16, 212, 73, 216,
+ 85, 31, 16, 118, 236, 12, 207, 149, 216, 85, 31, 16, 203, 197, 221, 156,
+ 31, 16, 91, 221, 156, 31, 16, 246, 62, 203, 197, 221, 156, 31, 16, 51,
+ 221, 157, 204, 33, 31, 16, 51, 221, 157, 248, 43, 31, 16, 208, 86, 221,
+ 157, 112, 204, 33, 31, 16, 208, 86, 221, 157, 112, 248, 43, 31, 16, 208,
+ 86, 221, 157, 49, 204, 33, 31, 16, 208, 86, 221, 157, 49, 248, 43, 31,
+ 16, 208, 86, 221, 157, 50, 204, 33, 31, 16, 208, 86, 221, 157, 50, 248,
+ 43, 31, 16, 208, 86, 221, 157, 121, 204, 33, 31, 16, 208, 86, 221, 157,
+ 121, 248, 43, 31, 16, 208, 86, 221, 157, 112, 50, 204, 33, 31, 16, 208,
+ 86, 221, 157, 112, 50, 248, 43, 31, 16, 224, 30, 221, 157, 204, 33, 31,
+ 16, 224, 30, 221, 157, 248, 43, 31, 16, 208, 83, 221, 157, 121, 204, 33,
+ 31, 16, 208, 83, 221, 157, 121, 248, 43, 31, 16, 219, 77, 221, 156, 31,
+ 16, 205, 183, 221, 156, 31, 16, 221, 157, 248, 43, 31, 16, 221, 49, 221,
+ 156, 31, 16, 246, 1, 221, 157, 204, 33, 31, 16, 246, 1, 221, 157, 248,
+ 43, 31, 16, 247, 214, 31, 16, 204, 31, 221, 160, 31, 16, 162, 221, 160,
+ 31, 16, 217, 56, 221, 160, 31, 16, 241, 139, 221, 160, 31, 16, 212, 81,
+ 221, 160, 31, 16, 209, 51, 221, 160, 31, 16, 212, 73, 221, 160, 31, 16,
+ 118, 236, 12, 207, 149, 221, 160, 31, 16, 39, 211, 77, 31, 16, 39, 211,
+ 184, 211, 77, 31, 16, 39, 208, 94, 31, 16, 39, 208, 93, 31, 16, 39, 208,
+ 92, 31, 16, 240, 0, 208, 94, 31, 16, 240, 0, 208, 93, 31, 16, 240, 0,
+ 208, 92, 31, 16, 39, 250, 31, 243, 85, 31, 16, 39, 239, 224, 31, 16, 39,
+ 239, 223, 31, 16, 39, 239, 222, 31, 16, 39, 239, 221, 31, 16, 39, 239,
+ 220, 31, 16, 248, 142, 248, 159, 31, 16, 241, 84, 248, 159, 31, 16, 248,
+ 142, 208, 250, 31, 16, 241, 84, 208, 250, 31, 16, 248, 142, 212, 37, 31,
+ 16, 241, 84, 212, 37, 31, 16, 248, 142, 218, 174, 31, 16, 241, 84, 218,
+ 174, 31, 16, 39, 251, 138, 31, 16, 39, 211, 105, 31, 16, 39, 209, 140,
+ 31, 16, 39, 211, 106, 31, 16, 39, 225, 96, 31, 16, 39, 225, 95, 31, 16,
+ 39, 251, 137, 31, 16, 39, 227, 2, 31, 16, 250, 100, 206, 224, 31, 16,
+ 250, 100, 242, 70, 31, 16, 39, 243, 100, 31, 16, 39, 215, 249, 31, 16,
+ 39, 239, 206, 31, 16, 39, 212, 33, 31, 16, 39, 248, 120, 31, 16, 39, 52,
+ 208, 150, 31, 16, 39, 208, 70, 208, 150, 31, 16, 215, 254, 31, 16, 211,
+ 0, 31, 16, 202, 159, 31, 16, 218, 166, 31, 16, 224, 206, 31, 16, 239,
+ 155, 31, 16, 245, 140, 31, 16, 244, 62, 31, 16, 238, 14, 221, 161, 212,
+ 57, 31, 16, 238, 14, 221, 161, 221, 192, 212, 57, 31, 16, 208, 120, 31,
+ 16, 207, 175, 31, 16, 230, 239, 207, 175, 31, 16, 207, 176, 212, 57, 31,
+ 16, 207, 176, 206, 224, 31, 16, 219, 234, 211, 31, 31, 16, 219, 234, 211,
+ 28, 31, 16, 219, 234, 211, 27, 31, 16, 219, 234, 211, 26, 31, 16, 219,
+ 234, 211, 25, 31, 16, 219, 234, 211, 24, 31, 16, 219, 234, 211, 23, 31,
+ 16, 219, 234, 211, 22, 31, 16, 219, 234, 211, 21, 31, 16, 219, 234, 211,
+ 30, 31, 16, 219, 234, 211, 29, 31, 16, 237, 75, 31, 16, 222, 238, 31, 16,
+ 241, 84, 76, 211, 67, 31, 16, 244, 55, 212, 57, 31, 16, 39, 121, 247,
+ 240, 31, 16, 39, 112, 247, 240, 31, 16, 39, 237, 88, 31, 16, 39, 212, 23,
+ 218, 99, 31, 16, 219, 28, 82, 31, 16, 219, 28, 112, 82, 31, 16, 162, 219,
+ 28, 82, 31, 16, 238, 47, 206, 224, 31, 16, 238, 47, 242, 70, 31, 16, 3,
+ 239, 255, 31, 16, 244, 168, 31, 16, 244, 169, 251, 14, 31, 16, 225, 65,
+ 31, 16, 227, 20, 31, 16, 247, 211, 31, 16, 213, 147, 204, 33, 31, 16,
+ 213, 147, 248, 43, 31, 16, 224, 106, 31, 16, 224, 107, 248, 43, 31, 16,
+ 213, 141, 204, 33, 31, 16, 213, 141, 248, 43, 31, 16, 239, 93, 204, 33,
+ 31, 16, 239, 93, 248, 43, 31, 16, 227, 21, 218, 244, 216, 85, 31, 16,
+ 227, 21, 231, 54, 216, 85, 31, 16, 247, 212, 216, 85, 31, 16, 213, 147,
+ 216, 85, 31, 16, 224, 107, 216, 85, 31, 16, 213, 141, 216, 85, 31, 16,
+ 209, 154, 218, 242, 245, 104, 217, 216, 218, 243, 31, 16, 209, 154, 218,
+ 242, 245, 104, 217, 216, 231, 53, 31, 16, 209, 154, 218, 242, 245, 104,
+ 217, 216, 218, 244, 243, 181, 31, 16, 209, 154, 231, 52, 245, 104, 217,
+ 216, 218, 243, 31, 16, 209, 154, 231, 52, 245, 104, 217, 216, 231, 53,
+ 31, 16, 209, 154, 231, 52, 245, 104, 217, 216, 231, 54, 243, 181, 31, 16,
+ 209, 154, 231, 52, 245, 104, 217, 216, 231, 54, 243, 180, 31, 16, 209,
+ 154, 231, 52, 245, 104, 217, 216, 231, 54, 243, 179, 31, 16, 245, 133,
+ 31, 16, 237, 243, 247, 126, 246, 30, 31, 16, 237, 243, 240, 175, 246, 30,
+ 31, 16, 51, 249, 255, 31, 16, 205, 203, 31, 16, 218, 66, 31, 16, 246, 21,
+ 31, 16, 214, 200, 31, 16, 246, 25, 31, 16, 208, 138, 31, 16, 218, 36, 31,
+ 16, 218, 37, 239, 209, 31, 16, 214, 201, 239, 209, 31, 16, 208, 139, 216,
+ 82, 31, 16, 218, 225, 210, 247, 31, 16, 229, 90, 247, 126, 246, 30, 31,
+ 16, 229, 90, 241, 84, 76, 218, 159, 31, 16, 229, 90, 46, 221, 160, 31,
+ 16, 229, 90, 216, 150, 82, 31, 16, 229, 90, 204, 31, 221, 160, 31, 16,
+ 229, 90, 162, 221, 160, 31, 16, 229, 90, 217, 56, 221, 161, 211, 78, 242,
+ 70, 31, 16, 229, 90, 217, 56, 221, 161, 211, 78, 206, 224, 31, 16, 229,
+ 90, 241, 139, 221, 161, 211, 78, 242, 70, 31, 16, 229, 90, 241, 139, 221,
+ 161, 211, 78, 206, 224, 31, 16, 229, 90, 239, 217, 54, 30, 205, 188, 221,
+ 164, 210, 148, 30, 205, 188, 221, 164, 210, 137, 30, 205, 188, 221, 164,
+ 210, 127, 30, 205, 188, 221, 164, 210, 120, 30, 205, 188, 221, 164, 210,
+ 112, 30, 205, 188, 221, 164, 210, 106, 30, 205, 188, 221, 164, 210, 105,
+ 30, 205, 188, 221, 164, 210, 104, 30, 205, 188, 221, 164, 210, 103, 30,
+ 205, 188, 221, 164, 210, 147, 30, 205, 188, 221, 164, 210, 146, 30, 205,
+ 188, 221, 164, 210, 145, 30, 205, 188, 221, 164, 210, 144, 30, 205, 188,
+ 221, 164, 210, 143, 30, 205, 188, 221, 164, 210, 142, 30, 205, 188, 221,
+ 164, 210, 141, 30, 205, 188, 221, 164, 210, 140, 30, 205, 188, 221, 164,
+ 210, 139, 30, 205, 188, 221, 164, 210, 138, 30, 205, 188, 221, 164, 210,
+ 136, 30, 205, 188, 221, 164, 210, 135, 30, 205, 188, 221, 164, 210, 134,
+ 30, 205, 188, 221, 164, 210, 133, 30, 205, 188, 221, 164, 210, 132, 30,
+ 205, 188, 221, 164, 210, 111, 30, 205, 188, 221, 164, 210, 110, 30, 205,
+ 188, 221, 164, 210, 109, 30, 205, 188, 221, 164, 210, 108, 30, 205, 188,
+ 221, 164, 210, 107, 30, 231, 5, 221, 164, 210, 148, 30, 231, 5, 221, 164,
+ 210, 137, 30, 231, 5, 221, 164, 210, 120, 30, 231, 5, 221, 164, 210, 112,
+ 30, 231, 5, 221, 164, 210, 105, 30, 231, 5, 221, 164, 210, 104, 30, 231,
+ 5, 221, 164, 210, 146, 30, 231, 5, 221, 164, 210, 145, 30, 231, 5, 221,
+ 164, 210, 144, 30, 231, 5, 221, 164, 210, 143, 30, 231, 5, 221, 164, 210,
+ 140, 30, 231, 5, 221, 164, 210, 139, 30, 231, 5, 221, 164, 210, 138, 30,
+ 231, 5, 221, 164, 210, 133, 30, 231, 5, 221, 164, 210, 132, 30, 231, 5,
+ 221, 164, 210, 131, 30, 231, 5, 221, 164, 210, 130, 30, 231, 5, 221, 164,
+ 210, 129, 30, 231, 5, 221, 164, 210, 128, 30, 231, 5, 221, 164, 210, 126,
+ 30, 231, 5, 221, 164, 210, 125, 30, 231, 5, 221, 164, 210, 124, 30, 231,
+ 5, 221, 164, 210, 123, 30, 231, 5, 221, 164, 210, 122, 30, 231, 5, 221,
+ 164, 210, 121, 30, 231, 5, 221, 164, 210, 119, 30, 231, 5, 221, 164, 210,
+ 118, 30, 231, 5, 221, 164, 210, 117, 30, 231, 5, 221, 164, 210, 116, 30,
+ 231, 5, 221, 164, 210, 115, 30, 231, 5, 221, 164, 210, 114, 30, 231, 5,
+ 221, 164, 210, 113, 30, 231, 5, 221, 164, 210, 111, 30, 231, 5, 221, 164,
+ 210, 110, 30, 231, 5, 221, 164, 210, 109, 30, 231, 5, 221, 164, 210, 108,
+ 30, 231, 5, 221, 164, 210, 107, 39, 30, 31, 208, 66, 39, 30, 31, 209,
+ 124, 39, 30, 31, 218, 253, 30, 31, 227, 204, 224, 45, 35, 241, 179, 243,
+ 195, 35, 237, 50, 241, 179, 243, 195, 35, 236, 16, 241, 179, 243, 195,
+ 35, 241, 178, 237, 51, 243, 195, 35, 241, 178, 236, 15, 243, 195, 35,
+ 241, 179, 209, 126, 35, 246, 217, 209, 126, 35, 239, 102, 246, 61, 209,
+ 126, 35, 224, 98, 209, 126, 35, 248, 221, 209, 126, 35, 229, 195, 212,
+ 36, 209, 126, 35, 245, 185, 209, 126, 35, 250, 77, 209, 126, 35, 219,
+ 250, 209, 126, 35, 247, 221, 219, 211, 209, 126, 35, 244, 57, 219, 245,
+ 243, 148, 209, 126, 35, 243, 145, 209, 126, 35, 202, 225, 209, 126, 35,
+ 231, 40, 209, 126, 35, 219, 7, 209, 126, 35, 216, 157, 209, 126, 35, 245,
+ 197, 209, 126, 35, 236, 127, 249, 25, 209, 126, 35, 204, 103, 209, 126,
+ 35, 239, 181, 209, 126, 35, 251, 112, 209, 126, 35, 216, 114, 209, 126,
+ 35, 216, 89, 209, 126, 35, 241, 177, 209, 126, 35, 230, 85, 209, 126, 35,
+ 245, 192, 209, 126, 35, 241, 83, 209, 126, 35, 242, 15, 209, 126, 35,
+ 246, 186, 209, 126, 35, 244, 67, 209, 126, 35, 26, 216, 88, 209, 126, 35,
+ 219, 160, 209, 126, 35, 227, 208, 209, 126, 35, 246, 14, 209, 126, 35,
+ 229, 80, 209, 126, 35, 238, 214, 209, 126, 35, 211, 43, 209, 126, 35,
+ 217, 168, 209, 126, 35, 239, 101, 209, 126, 35, 216, 90, 209, 126, 35,
+ 227, 247, 219, 245, 224, 78, 209, 126, 35, 216, 86, 209, 126, 35, 238,
+ 33, 208, 173, 225, 3, 209, 126, 35, 241, 85, 209, 126, 35, 211, 56, 209,
+ 126, 35, 237, 245, 209, 126, 35, 241, 76, 209, 126, 35, 219, 50, 209,
+ 126, 35, 215, 242, 209, 126, 35, 239, 207, 209, 126, 35, 206, 64, 219,
+ 245, 204, 84, 209, 126, 35, 245, 202, 209, 126, 35, 225, 18, 209, 126,
+ 35, 240, 245, 209, 126, 35, 206, 234, 209, 126, 35, 243, 182, 209, 126,
+ 35, 246, 16, 224, 7, 209, 126, 35, 237, 222, 209, 126, 35, 238, 215, 231,
+ 49, 209, 126, 35, 225, 73, 209, 126, 35, 251, 133, 209, 126, 35, 241,
+ 101, 209, 126, 35, 242, 74, 209, 126, 35, 204, 82, 209, 126, 35, 212,
+ 115, 209, 126, 35, 231, 14, 209, 126, 35, 244, 25, 209, 126, 35, 244,
+ 148, 209, 126, 35, 243, 178, 209, 126, 35, 240, 209, 209, 126, 35, 213,
+ 104, 209, 126, 35, 211, 60, 209, 126, 35, 237, 90, 209, 126, 35, 245,
+ 226, 209, 126, 35, 246, 11, 209, 126, 35, 240, 87, 209, 126, 35, 251, 76,
+ 209, 126, 35, 245, 225, 209, 126, 35, 220, 32, 209, 93, 206, 41, 209,
+ 126, 35, 243, 204, 209, 126, 35, 228, 101, 209, 126, 35, 239, 150, 245,
+ 153, 215, 217, 206, 236, 17, 105, 245, 153, 215, 217, 206, 236, 17, 108,
+ 245, 153, 215, 217, 206, 236, 17, 147, 245, 153, 215, 217, 206, 236, 17,
+ 149, 245, 153, 215, 217, 206, 236, 17, 170, 245, 153, 215, 217, 206, 236,
+ 17, 195, 245, 153, 215, 217, 206, 236, 17, 213, 111, 245, 153, 215, 217,
+ 206, 236, 17, 199, 245, 153, 215, 217, 206, 236, 17, 222, 63, 245, 153,
+ 215, 217, 209, 148, 17, 105, 245, 153, 215, 217, 209, 148, 17, 108, 245,
+ 153, 215, 217, 209, 148, 17, 147, 245, 153, 215, 217, 209, 148, 17, 149,
+ 245, 153, 215, 217, 209, 148, 17, 170, 245, 153, 215, 217, 209, 148, 17,
+ 195, 245, 153, 215, 217, 209, 148, 17, 213, 111, 245, 153, 215, 217, 209,
+ 148, 17, 199, 245, 153, 215, 217, 209, 148, 17, 222, 63, 13, 26, 6, 63,
+ 13, 26, 6, 249, 255, 13, 26, 6, 247, 125, 13, 26, 6, 245, 51, 13, 26, 6,
+ 74, 13, 26, 6, 240, 174, 13, 26, 6, 239, 75, 13, 26, 6, 237, 171, 13, 26,
+ 6, 75, 13, 26, 6, 230, 184, 13, 26, 6, 230, 54, 13, 26, 6, 159, 13, 26,
+ 6, 226, 185, 13, 26, 6, 223, 163, 13, 26, 6, 78, 13, 26, 6, 219, 184, 13,
+ 26, 6, 217, 134, 13, 26, 6, 146, 13, 26, 6, 194, 13, 26, 6, 210, 69, 13,
+ 26, 6, 68, 13, 26, 6, 206, 164, 13, 26, 6, 204, 144, 13, 26, 6, 203, 196,
+ 13, 26, 6, 203, 124, 13, 26, 6, 202, 159, 13, 26, 5, 63, 13, 26, 5, 249,
+ 255, 13, 26, 5, 247, 125, 13, 26, 5, 245, 51, 13, 26, 5, 74, 13, 26, 5,
+ 240, 174, 13, 26, 5, 239, 75, 13, 26, 5, 237, 171, 13, 26, 5, 75, 13, 26,
+ 5, 230, 184, 13, 26, 5, 230, 54, 13, 26, 5, 159, 13, 26, 5, 226, 185, 13,
+ 26, 5, 223, 163, 13, 26, 5, 78, 13, 26, 5, 219, 184, 13, 26, 5, 217, 134,
+ 13, 26, 5, 146, 13, 26, 5, 194, 13, 26, 5, 210, 69, 13, 26, 5, 68, 13,
+ 26, 5, 206, 164, 13, 26, 5, 204, 144, 13, 26, 5, 203, 196, 13, 26, 5,
+ 203, 124, 13, 26, 5, 202, 159, 13, 37, 6, 63, 13, 37, 6, 249, 255, 13,
+ 37, 6, 247, 125, 13, 37, 6, 245, 51, 13, 37, 6, 74, 13, 37, 6, 240, 174,
+ 13, 37, 6, 239, 75, 13, 37, 6, 237, 171, 13, 37, 6, 75, 13, 37, 6, 230,
+ 184, 13, 37, 6, 230, 54, 13, 37, 6, 159, 13, 37, 6, 226, 185, 13, 37, 6,
+ 223, 163, 13, 37, 6, 78, 13, 37, 6, 219, 184, 13, 37, 6, 217, 134, 13,
+ 37, 6, 146, 13, 37, 6, 194, 13, 37, 6, 210, 69, 13, 37, 6, 68, 13, 37, 6,
+ 206, 164, 13, 37, 6, 204, 144, 13, 37, 6, 203, 196, 13, 37, 6, 203, 124,
+ 13, 37, 6, 202, 159, 13, 37, 5, 63, 13, 37, 5, 249, 255, 13, 37, 5, 247,
+ 125, 13, 37, 5, 245, 51, 13, 37, 5, 74, 13, 37, 5, 240, 174, 13, 37, 5,
+ 239, 75, 13, 37, 5, 75, 13, 37, 5, 230, 184, 13, 37, 5, 230, 54, 13, 37,
+ 5, 159, 13, 37, 5, 226, 185, 13, 37, 5, 223, 163, 13, 37, 5, 78, 13, 37,
+ 5, 219, 184, 13, 37, 5, 217, 134, 13, 37, 5, 146, 13, 37, 5, 194, 13, 37,
+ 5, 210, 69, 13, 37, 5, 68, 13, 37, 5, 206, 164, 13, 37, 5, 204, 144, 13,
+ 37, 5, 203, 196, 13, 37, 5, 203, 124, 13, 37, 5, 202, 159, 13, 26, 37, 6,
+ 63, 13, 26, 37, 6, 249, 255, 13, 26, 37, 6, 247, 125, 13, 26, 37, 6, 245,
+ 51, 13, 26, 37, 6, 74, 13, 26, 37, 6, 240, 174, 13, 26, 37, 6, 239, 75,
+ 13, 26, 37, 6, 237, 171, 13, 26, 37, 6, 75, 13, 26, 37, 6, 230, 184, 13,
+ 26, 37, 6, 230, 54, 13, 26, 37, 6, 159, 13, 26, 37, 6, 226, 185, 13, 26,
+ 37, 6, 223, 163, 13, 26, 37, 6, 78, 13, 26, 37, 6, 219, 184, 13, 26, 37,
+ 6, 217, 134, 13, 26, 37, 6, 146, 13, 26, 37, 6, 194, 13, 26, 37, 6, 210,
+ 69, 13, 26, 37, 6, 68, 13, 26, 37, 6, 206, 164, 13, 26, 37, 6, 204, 144,
+ 13, 26, 37, 6, 203, 196, 13, 26, 37, 6, 203, 124, 13, 26, 37, 6, 202,
+ 159, 13, 26, 37, 5, 63, 13, 26, 37, 5, 249, 255, 13, 26, 37, 5, 247, 125,
+ 13, 26, 37, 5, 245, 51, 13, 26, 37, 5, 74, 13, 26, 37, 5, 240, 174, 13,
+ 26, 37, 5, 239, 75, 13, 26, 37, 5, 237, 171, 13, 26, 37, 5, 75, 13, 26,
+ 37, 5, 230, 184, 13, 26, 37, 5, 230, 54, 13, 26, 37, 5, 159, 13, 26, 37,
+ 5, 226, 185, 13, 26, 37, 5, 223, 163, 13, 26, 37, 5, 78, 13, 26, 37, 5,
+ 219, 184, 13, 26, 37, 5, 217, 134, 13, 26, 37, 5, 146, 13, 26, 37, 5,
+ 194, 13, 26, 37, 5, 210, 69, 13, 26, 37, 5, 68, 13, 26, 37, 5, 206, 164,
+ 13, 26, 37, 5, 204, 144, 13, 26, 37, 5, 203, 196, 13, 26, 37, 5, 203,
+ 124, 13, 26, 37, 5, 202, 159, 13, 132, 6, 63, 13, 132, 6, 247, 125, 13,
+ 132, 6, 245, 51, 13, 132, 6, 239, 75, 13, 132, 6, 230, 184, 13, 132, 6,
+ 230, 54, 13, 132, 6, 223, 163, 13, 132, 6, 78, 13, 132, 6, 219, 184, 13,
+ 132, 6, 217, 134, 13, 132, 6, 194, 13, 132, 6, 210, 69, 13, 132, 6, 68,
+ 13, 132, 6, 206, 164, 13, 132, 6, 204, 144, 13, 132, 6, 203, 196, 13,
+ 132, 6, 203, 124, 13, 132, 6, 202, 159, 13, 132, 5, 63, 13, 132, 5, 249,
+ 255, 13, 132, 5, 247, 125, 13, 132, 5, 245, 51, 13, 132, 5, 240, 174, 13,
+ 132, 5, 237, 171, 13, 132, 5, 75, 13, 132, 5, 230, 184, 13, 132, 5, 230,
+ 54, 13, 132, 5, 159, 13, 132, 5, 226, 185, 13, 132, 5, 223, 163, 13, 132,
+ 5, 219, 184, 13, 132, 5, 217, 134, 13, 132, 5, 146, 13, 132, 5, 194, 13,
+ 132, 5, 210, 69, 13, 132, 5, 68, 13, 132, 5, 206, 164, 13, 132, 5, 204,
+ 144, 13, 132, 5, 203, 196, 13, 132, 5, 203, 124, 13, 132, 5, 202, 159,
+ 13, 26, 132, 6, 63, 13, 26, 132, 6, 249, 255, 13, 26, 132, 6, 247, 125,
+ 13, 26, 132, 6, 245, 51, 13, 26, 132, 6, 74, 13, 26, 132, 6, 240, 174,
+ 13, 26, 132, 6, 239, 75, 13, 26, 132, 6, 237, 171, 13, 26, 132, 6, 75,
+ 13, 26, 132, 6, 230, 184, 13, 26, 132, 6, 230, 54, 13, 26, 132, 6, 159,
+ 13, 26, 132, 6, 226, 185, 13, 26, 132, 6, 223, 163, 13, 26, 132, 6, 78,
+ 13, 26, 132, 6, 219, 184, 13, 26, 132, 6, 217, 134, 13, 26, 132, 6, 146,
+ 13, 26, 132, 6, 194, 13, 26, 132, 6, 210, 69, 13, 26, 132, 6, 68, 13, 26,
+ 132, 6, 206, 164, 13, 26, 132, 6, 204, 144, 13, 26, 132, 6, 203, 196, 13,
+ 26, 132, 6, 203, 124, 13, 26, 132, 6, 202, 159, 13, 26, 132, 5, 63, 13,
+ 26, 132, 5, 249, 255, 13, 26, 132, 5, 247, 125, 13, 26, 132, 5, 245, 51,
+ 13, 26, 132, 5, 74, 13, 26, 132, 5, 240, 174, 13, 26, 132, 5, 239, 75,
+ 13, 26, 132, 5, 237, 171, 13, 26, 132, 5, 75, 13, 26, 132, 5, 230, 184,
+ 13, 26, 132, 5, 230, 54, 13, 26, 132, 5, 159, 13, 26, 132, 5, 226, 185,
+ 13, 26, 132, 5, 223, 163, 13, 26, 132, 5, 78, 13, 26, 132, 5, 219, 184,
+ 13, 26, 132, 5, 217, 134, 13, 26, 132, 5, 146, 13, 26, 132, 5, 194, 13,
+ 26, 132, 5, 210, 69, 13, 26, 132, 5, 68, 13, 26, 132, 5, 206, 164, 13,
+ 26, 132, 5, 204, 144, 13, 26, 132, 5, 203, 196, 13, 26, 132, 5, 203, 124,
+ 13, 26, 132, 5, 202, 159, 13, 166, 6, 63, 13, 166, 6, 249, 255, 13, 166,
+ 6, 245, 51, 13, 166, 6, 74, 13, 166, 6, 240, 174, 13, 166, 6, 239, 75,
+ 13, 166, 6, 230, 184, 13, 166, 6, 230, 54, 13, 166, 6, 159, 13, 166, 6,
+ 226, 185, 13, 166, 6, 223, 163, 13, 166, 6, 78, 13, 166, 6, 219, 184, 13,
+ 166, 6, 217, 134, 13, 166, 6, 194, 13, 166, 6, 210, 69, 13, 166, 6, 68,
+ 13, 166, 6, 206, 164, 13, 166, 6, 204, 144, 13, 166, 6, 203, 196, 13,
+ 166, 6, 203, 124, 13, 166, 5, 63, 13, 166, 5, 249, 255, 13, 166, 5, 247,
+ 125, 13, 166, 5, 245, 51, 13, 166, 5, 74, 13, 166, 5, 240, 174, 13, 166,
+ 5, 239, 75, 13, 166, 5, 237, 171, 13, 166, 5, 75, 13, 166, 5, 230, 184,
+ 13, 166, 5, 230, 54, 13, 166, 5, 159, 13, 166, 5, 226, 185, 13, 166, 5,
+ 223, 163, 13, 166, 5, 78, 13, 166, 5, 219, 184, 13, 166, 5, 217, 134, 13,
+ 166, 5, 146, 13, 166, 5, 194, 13, 166, 5, 210, 69, 13, 166, 5, 68, 13,
+ 166, 5, 206, 164, 13, 166, 5, 204, 144, 13, 166, 5, 203, 196, 13, 166, 5,
+ 203, 124, 13, 166, 5, 202, 159, 13, 169, 6, 63, 13, 169, 6, 249, 255, 13,
+ 169, 6, 245, 51, 13, 169, 6, 74, 13, 169, 6, 240, 174, 13, 169, 6, 239,
+ 75, 13, 169, 6, 75, 13, 169, 6, 230, 184, 13, 169, 6, 230, 54, 13, 169,
+ 6, 159, 13, 169, 6, 226, 185, 13, 169, 6, 78, 13, 169, 6, 194, 13, 169,
+ 6, 210, 69, 13, 169, 6, 68, 13, 169, 6, 206, 164, 13, 169, 6, 204, 144,
+ 13, 169, 6, 203, 196, 13, 169, 6, 203, 124, 13, 169, 5, 63, 13, 169, 5,
+ 249, 255, 13, 169, 5, 247, 125, 13, 169, 5, 245, 51, 13, 169, 5, 74, 13,
+ 169, 5, 240, 174, 13, 169, 5, 239, 75, 13, 169, 5, 237, 171, 13, 169, 5,
+ 75, 13, 169, 5, 230, 184, 13, 169, 5, 230, 54, 13, 169, 5, 159, 13, 169,
+ 5, 226, 185, 13, 169, 5, 223, 163, 13, 169, 5, 78, 13, 169, 5, 219, 184,
+ 13, 169, 5, 217, 134, 13, 169, 5, 146, 13, 169, 5, 194, 13, 169, 5, 210,
+ 69, 13, 169, 5, 68, 13, 169, 5, 206, 164, 13, 169, 5, 204, 144, 13, 169,
+ 5, 203, 196, 13, 169, 5, 203, 124, 13, 169, 5, 202, 159, 13, 26, 166, 6,
+ 63, 13, 26, 166, 6, 249, 255, 13, 26, 166, 6, 247, 125, 13, 26, 166, 6,
+ 245, 51, 13, 26, 166, 6, 74, 13, 26, 166, 6, 240, 174, 13, 26, 166, 6,
+ 239, 75, 13, 26, 166, 6, 237, 171, 13, 26, 166, 6, 75, 13, 26, 166, 6,
+ 230, 184, 13, 26, 166, 6, 230, 54, 13, 26, 166, 6, 159, 13, 26, 166, 6,
+ 226, 185, 13, 26, 166, 6, 223, 163, 13, 26, 166, 6, 78, 13, 26, 166, 6,
+ 219, 184, 13, 26, 166, 6, 217, 134, 13, 26, 166, 6, 146, 13, 26, 166, 6,
+ 194, 13, 26, 166, 6, 210, 69, 13, 26, 166, 6, 68, 13, 26, 166, 6, 206,
+ 164, 13, 26, 166, 6, 204, 144, 13, 26, 166, 6, 203, 196, 13, 26, 166, 6,
+ 203, 124, 13, 26, 166, 6, 202, 159, 13, 26, 166, 5, 63, 13, 26, 166, 5,
+ 249, 255, 13, 26, 166, 5, 247, 125, 13, 26, 166, 5, 245, 51, 13, 26, 166,
+ 5, 74, 13, 26, 166, 5, 240, 174, 13, 26, 166, 5, 239, 75, 13, 26, 166, 5,
+ 237, 171, 13, 26, 166, 5, 75, 13, 26, 166, 5, 230, 184, 13, 26, 166, 5,
+ 230, 54, 13, 26, 166, 5, 159, 13, 26, 166, 5, 226, 185, 13, 26, 166, 5,
+ 223, 163, 13, 26, 166, 5, 78, 13, 26, 166, 5, 219, 184, 13, 26, 166, 5,
+ 217, 134, 13, 26, 166, 5, 146, 13, 26, 166, 5, 194, 13, 26, 166, 5, 210,
+ 69, 13, 26, 166, 5, 68, 13, 26, 166, 5, 206, 164, 13, 26, 166, 5, 204,
+ 144, 13, 26, 166, 5, 203, 196, 13, 26, 166, 5, 203, 124, 13, 26, 166, 5,
+ 202, 159, 13, 41, 6, 63, 13, 41, 6, 249, 255, 13, 41, 6, 247, 125, 13,
+ 41, 6, 245, 51, 13, 41, 6, 74, 13, 41, 6, 240, 174, 13, 41, 6, 239, 75,
+ 13, 41, 6, 237, 171, 13, 41, 6, 75, 13, 41, 6, 230, 184, 13, 41, 6, 230,
+ 54, 13, 41, 6, 159, 13, 41, 6, 226, 185, 13, 41, 6, 223, 163, 13, 41, 6,
+ 78, 13, 41, 6, 219, 184, 13, 41, 6, 217, 134, 13, 41, 6, 146, 13, 41, 6,
+ 194, 13, 41, 6, 210, 69, 13, 41, 6, 68, 13, 41, 6, 206, 164, 13, 41, 6,
+ 204, 144, 13, 41, 6, 203, 196, 13, 41, 6, 203, 124, 13, 41, 6, 202, 159,
+ 13, 41, 5, 63, 13, 41, 5, 249, 255, 13, 41, 5, 247, 125, 13, 41, 5, 245,
+ 51, 13, 41, 5, 74, 13, 41, 5, 240, 174, 13, 41, 5, 239, 75, 13, 41, 5,
+ 237, 171, 13, 41, 5, 75, 13, 41, 5, 230, 184, 13, 41, 5, 230, 54, 13, 41,
+ 5, 159, 13, 41, 5, 226, 185, 13, 41, 5, 223, 163, 13, 41, 5, 78, 13, 41,
+ 5, 219, 184, 13, 41, 5, 217, 134, 13, 41, 5, 146, 13, 41, 5, 194, 13, 41,
+ 5, 210, 69, 13, 41, 5, 68, 13, 41, 5, 206, 164, 13, 41, 5, 204, 144, 13,
+ 41, 5, 203, 196, 13, 41, 5, 203, 124, 13, 41, 5, 202, 159, 13, 41, 26, 6,
+ 63, 13, 41, 26, 6, 249, 255, 13, 41, 26, 6, 247, 125, 13, 41, 26, 6, 245,
+ 51, 13, 41, 26, 6, 74, 13, 41, 26, 6, 240, 174, 13, 41, 26, 6, 239, 75,
+ 13, 41, 26, 6, 237, 171, 13, 41, 26, 6, 75, 13, 41, 26, 6, 230, 184, 13,
+ 41, 26, 6, 230, 54, 13, 41, 26, 6, 159, 13, 41, 26, 6, 226, 185, 13, 41,
+ 26, 6, 223, 163, 13, 41, 26, 6, 78, 13, 41, 26, 6, 219, 184, 13, 41, 26,
+ 6, 217, 134, 13, 41, 26, 6, 146, 13, 41, 26, 6, 194, 13, 41, 26, 6, 210,
+ 69, 13, 41, 26, 6, 68, 13, 41, 26, 6, 206, 164, 13, 41, 26, 6, 204, 144,
+ 13, 41, 26, 6, 203, 196, 13, 41, 26, 6, 203, 124, 13, 41, 26, 6, 202,
+ 159, 13, 41, 26, 5, 63, 13, 41, 26, 5, 249, 255, 13, 41, 26, 5, 247, 125,
+ 13, 41, 26, 5, 245, 51, 13, 41, 26, 5, 74, 13, 41, 26, 5, 240, 174, 13,
+ 41, 26, 5, 239, 75, 13, 41, 26, 5, 237, 171, 13, 41, 26, 5, 75, 13, 41,
+ 26, 5, 230, 184, 13, 41, 26, 5, 230, 54, 13, 41, 26, 5, 159, 13, 41, 26,
+ 5, 226, 185, 13, 41, 26, 5, 223, 163, 13, 41, 26, 5, 78, 13, 41, 26, 5,
+ 219, 184, 13, 41, 26, 5, 217, 134, 13, 41, 26, 5, 146, 13, 41, 26, 5,
+ 194, 13, 41, 26, 5, 210, 69, 13, 41, 26, 5, 68, 13, 41, 26, 5, 206, 164,
+ 13, 41, 26, 5, 204, 144, 13, 41, 26, 5, 203, 196, 13, 41, 26, 5, 203,
+ 124, 13, 41, 26, 5, 202, 159, 13, 41, 37, 6, 63, 13, 41, 37, 6, 249, 255,
+ 13, 41, 37, 6, 247, 125, 13, 41, 37, 6, 245, 51, 13, 41, 37, 6, 74, 13,
+ 41, 37, 6, 240, 174, 13, 41, 37, 6, 239, 75, 13, 41, 37, 6, 237, 171, 13,
+ 41, 37, 6, 75, 13, 41, 37, 6, 230, 184, 13, 41, 37, 6, 230, 54, 13, 41,
+ 37, 6, 159, 13, 41, 37, 6, 226, 185, 13, 41, 37, 6, 223, 163, 13, 41, 37,
+ 6, 78, 13, 41, 37, 6, 219, 184, 13, 41, 37, 6, 217, 134, 13, 41, 37, 6,
+ 146, 13, 41, 37, 6, 194, 13, 41, 37, 6, 210, 69, 13, 41, 37, 6, 68, 13,
+ 41, 37, 6, 206, 164, 13, 41, 37, 6, 204, 144, 13, 41, 37, 6, 203, 196,
+ 13, 41, 37, 6, 203, 124, 13, 41, 37, 6, 202, 159, 13, 41, 37, 5, 63, 13,
+ 41, 37, 5, 249, 255, 13, 41, 37, 5, 247, 125, 13, 41, 37, 5, 245, 51, 13,
+ 41, 37, 5, 74, 13, 41, 37, 5, 240, 174, 13, 41, 37, 5, 239, 75, 13, 41,
+ 37, 5, 237, 171, 13, 41, 37, 5, 75, 13, 41, 37, 5, 230, 184, 13, 41, 37,
+ 5, 230, 54, 13, 41, 37, 5, 159, 13, 41, 37, 5, 226, 185, 13, 41, 37, 5,
+ 223, 163, 13, 41, 37, 5, 78, 13, 41, 37, 5, 219, 184, 13, 41, 37, 5, 217,
+ 134, 13, 41, 37, 5, 146, 13, 41, 37, 5, 194, 13, 41, 37, 5, 210, 69, 13,
+ 41, 37, 5, 68, 13, 41, 37, 5, 206, 164, 13, 41, 37, 5, 204, 144, 13, 41,
+ 37, 5, 203, 196, 13, 41, 37, 5, 203, 124, 13, 41, 37, 5, 202, 159, 13,
+ 41, 26, 37, 6, 63, 13, 41, 26, 37, 6, 249, 255, 13, 41, 26, 37, 6, 247,
+ 125, 13, 41, 26, 37, 6, 245, 51, 13, 41, 26, 37, 6, 74, 13, 41, 26, 37,
+ 6, 240, 174, 13, 41, 26, 37, 6, 239, 75, 13, 41, 26, 37, 6, 237, 171, 13,
+ 41, 26, 37, 6, 75, 13, 41, 26, 37, 6, 230, 184, 13, 41, 26, 37, 6, 230,
+ 54, 13, 41, 26, 37, 6, 159, 13, 41, 26, 37, 6, 226, 185, 13, 41, 26, 37,
+ 6, 223, 163, 13, 41, 26, 37, 6, 78, 13, 41, 26, 37, 6, 219, 184, 13, 41,
+ 26, 37, 6, 217, 134, 13, 41, 26, 37, 6, 146, 13, 41, 26, 37, 6, 194, 13,
+ 41, 26, 37, 6, 210, 69, 13, 41, 26, 37, 6, 68, 13, 41, 26, 37, 6, 206,
+ 164, 13, 41, 26, 37, 6, 204, 144, 13, 41, 26, 37, 6, 203, 196, 13, 41,
+ 26, 37, 6, 203, 124, 13, 41, 26, 37, 6, 202, 159, 13, 41, 26, 37, 5, 63,
+ 13, 41, 26, 37, 5, 249, 255, 13, 41, 26, 37, 5, 247, 125, 13, 41, 26, 37,
+ 5, 245, 51, 13, 41, 26, 37, 5, 74, 13, 41, 26, 37, 5, 240, 174, 13, 41,
+ 26, 37, 5, 239, 75, 13, 41, 26, 37, 5, 237, 171, 13, 41, 26, 37, 5, 75,
+ 13, 41, 26, 37, 5, 230, 184, 13, 41, 26, 37, 5, 230, 54, 13, 41, 26, 37,
+ 5, 159, 13, 41, 26, 37, 5, 226, 185, 13, 41, 26, 37, 5, 223, 163, 13, 41,
+ 26, 37, 5, 78, 13, 41, 26, 37, 5, 219, 184, 13, 41, 26, 37, 5, 217, 134,
+ 13, 41, 26, 37, 5, 146, 13, 41, 26, 37, 5, 194, 13, 41, 26, 37, 5, 210,
+ 69, 13, 41, 26, 37, 5, 68, 13, 41, 26, 37, 5, 206, 164, 13, 41, 26, 37,
+ 5, 204, 144, 13, 41, 26, 37, 5, 203, 196, 13, 41, 26, 37, 5, 203, 124,
+ 13, 41, 26, 37, 5, 202, 159, 13, 224, 41, 6, 63, 13, 224, 41, 6, 249,
+ 255, 13, 224, 41, 6, 247, 125, 13, 224, 41, 6, 245, 51, 13, 224, 41, 6,
+ 74, 13, 224, 41, 6, 240, 174, 13, 224, 41, 6, 239, 75, 13, 224, 41, 6,
+ 237, 171, 13, 224, 41, 6, 75, 13, 224, 41, 6, 230, 184, 13, 224, 41, 6,
+ 230, 54, 13, 224, 41, 6, 159, 13, 224, 41, 6, 226, 185, 13, 224, 41, 6,
+ 223, 163, 13, 224, 41, 6, 78, 13, 224, 41, 6, 219, 184, 13, 224, 41, 6,
+ 217, 134, 13, 224, 41, 6, 146, 13, 224, 41, 6, 194, 13, 224, 41, 6, 210,
+ 69, 13, 224, 41, 6, 68, 13, 224, 41, 6, 206, 164, 13, 224, 41, 6, 204,
+ 144, 13, 224, 41, 6, 203, 196, 13, 224, 41, 6, 203, 124, 13, 224, 41, 6,
+ 202, 159, 13, 224, 41, 5, 63, 13, 224, 41, 5, 249, 255, 13, 224, 41, 5,
+ 247, 125, 13, 224, 41, 5, 245, 51, 13, 224, 41, 5, 74, 13, 224, 41, 5,
+ 240, 174, 13, 224, 41, 5, 239, 75, 13, 224, 41, 5, 237, 171, 13, 224, 41,
+ 5, 75, 13, 224, 41, 5, 230, 184, 13, 224, 41, 5, 230, 54, 13, 224, 41, 5,
+ 159, 13, 224, 41, 5, 226, 185, 13, 224, 41, 5, 223, 163, 13, 224, 41, 5,
+ 78, 13, 224, 41, 5, 219, 184, 13, 224, 41, 5, 217, 134, 13, 224, 41, 5,
+ 146, 13, 224, 41, 5, 194, 13, 224, 41, 5, 210, 69, 13, 224, 41, 5, 68,
+ 13, 224, 41, 5, 206, 164, 13, 224, 41, 5, 204, 144, 13, 224, 41, 5, 203,
+ 196, 13, 224, 41, 5, 203, 124, 13, 224, 41, 5, 202, 159, 13, 37, 5, 243,
+ 84, 75, 13, 37, 5, 243, 84, 230, 184, 13, 26, 6, 251, 2, 13, 26, 6, 248,
+ 106, 13, 26, 6, 238, 235, 13, 26, 6, 244, 37, 13, 26, 6, 241, 37, 13, 26,
+ 6, 202, 83, 13, 26, 6, 240, 248, 13, 26, 6, 209, 74, 13, 26, 6, 230, 230,
+ 13, 26, 6, 229, 247, 13, 26, 6, 228, 24, 13, 26, 6, 223, 246, 13, 26, 6,
+ 221, 84, 13, 26, 6, 203, 170, 13, 26, 6, 220, 34, 13, 26, 6, 218, 167,
+ 13, 26, 6, 216, 59, 13, 26, 6, 209, 75, 97, 13, 26, 6, 212, 144, 13, 26,
+ 6, 209, 207, 13, 26, 6, 206, 216, 13, 26, 6, 218, 192, 13, 26, 6, 246,
+ 142, 13, 26, 6, 217, 202, 13, 26, 6, 220, 36, 13, 26, 223, 101, 13, 26,
+ 5, 251, 2, 13, 26, 5, 248, 106, 13, 26, 5, 238, 235, 13, 26, 5, 244, 37,
+ 13, 26, 5, 241, 37, 13, 26, 5, 202, 83, 13, 26, 5, 240, 248, 13, 26, 5,
+ 209, 74, 13, 26, 5, 230, 230, 13, 26, 5, 229, 247, 13, 26, 5, 228, 24,
+ 13, 26, 5, 223, 246, 13, 26, 5, 221, 84, 13, 26, 5, 203, 170, 13, 26, 5,
+ 220, 34, 13, 26, 5, 218, 167, 13, 26, 5, 216, 59, 13, 26, 5, 46, 212,
+ 144, 13, 26, 5, 212, 144, 13, 26, 5, 209, 207, 13, 26, 5, 206, 216, 13,
+ 26, 5, 218, 192, 13, 26, 5, 246, 142, 13, 26, 5, 217, 202, 13, 26, 5,
+ 220, 36, 13, 26, 219, 69, 243, 205, 13, 26, 241, 38, 97, 13, 26, 209, 75,
+ 97, 13, 26, 229, 248, 97, 13, 26, 218, 193, 97, 13, 26, 216, 60, 97, 13,
+ 26, 218, 168, 97, 13, 37, 6, 251, 2, 13, 37, 6, 248, 106, 13, 37, 6, 238,
+ 235, 13, 37, 6, 244, 37, 13, 37, 6, 241, 37, 13, 37, 6, 202, 83, 13, 37,
+ 6, 240, 248, 13, 37, 6, 209, 74, 13, 37, 6, 230, 230, 13, 37, 6, 229,
+ 247, 13, 37, 6, 228, 24, 13, 37, 6, 223, 246, 13, 37, 6, 221, 84, 13, 37,
+ 6, 203, 170, 13, 37, 6, 220, 34, 13, 37, 6, 218, 167, 13, 37, 6, 216, 59,
+ 13, 37, 6, 209, 75, 97, 13, 37, 6, 212, 144, 13, 37, 6, 209, 207, 13, 37,
+ 6, 206, 216, 13, 37, 6, 218, 192, 13, 37, 6, 246, 142, 13, 37, 6, 217,
+ 202, 13, 37, 6, 220, 36, 13, 37, 223, 101, 13, 37, 5, 251, 2, 13, 37, 5,
+ 248, 106, 13, 37, 5, 238, 235, 13, 37, 5, 244, 37, 13, 37, 5, 241, 37,
+ 13, 37, 5, 202, 83, 13, 37, 5, 240, 248, 13, 37, 5, 209, 74, 13, 37, 5,
+ 230, 230, 13, 37, 5, 229, 247, 13, 37, 5, 228, 24, 13, 37, 5, 223, 246,
+ 13, 37, 5, 221, 84, 13, 37, 5, 203, 170, 13, 37, 5, 220, 34, 13, 37, 5,
+ 218, 167, 13, 37, 5, 216, 59, 13, 37, 5, 46, 212, 144, 13, 37, 5, 212,
+ 144, 13, 37, 5, 209, 207, 13, 37, 5, 206, 216, 13, 37, 5, 218, 192, 13,
+ 37, 5, 246, 142, 13, 37, 5, 217, 202, 13, 37, 5, 220, 36, 13, 37, 219,
+ 69, 243, 205, 13, 37, 241, 38, 97, 13, 37, 209, 75, 97, 13, 37, 229, 248,
+ 97, 13, 37, 218, 193, 97, 13, 37, 216, 60, 97, 13, 37, 218, 168, 97, 13,
+ 26, 37, 6, 251, 2, 13, 26, 37, 6, 248, 106, 13, 26, 37, 6, 238, 235, 13,
+ 26, 37, 6, 244, 37, 13, 26, 37, 6, 241, 37, 13, 26, 37, 6, 202, 83, 13,
+ 26, 37, 6, 240, 248, 13, 26, 37, 6, 209, 74, 13, 26, 37, 6, 230, 230, 13,
+ 26, 37, 6, 229, 247, 13, 26, 37, 6, 228, 24, 13, 26, 37, 6, 223, 246, 13,
+ 26, 37, 6, 221, 84, 13, 26, 37, 6, 203, 170, 13, 26, 37, 6, 220, 34, 13,
+ 26, 37, 6, 218, 167, 13, 26, 37, 6, 216, 59, 13, 26, 37, 6, 209, 75, 97,
+ 13, 26, 37, 6, 212, 144, 13, 26, 37, 6, 209, 207, 13, 26, 37, 6, 206,
+ 216, 13, 26, 37, 6, 218, 192, 13, 26, 37, 6, 246, 142, 13, 26, 37, 6,
+ 217, 202, 13, 26, 37, 6, 220, 36, 13, 26, 37, 223, 101, 13, 26, 37, 5,
+ 251, 2, 13, 26, 37, 5, 248, 106, 13, 26, 37, 5, 238, 235, 13, 26, 37, 5,
+ 244, 37, 13, 26, 37, 5, 241, 37, 13, 26, 37, 5, 202, 83, 13, 26, 37, 5,
+ 240, 248, 13, 26, 37, 5, 209, 74, 13, 26, 37, 5, 230, 230, 13, 26, 37, 5,
+ 229, 247, 13, 26, 37, 5, 228, 24, 13, 26, 37, 5, 223, 246, 13, 26, 37, 5,
+ 221, 84, 13, 26, 37, 5, 203, 170, 13, 26, 37, 5, 220, 34, 13, 26, 37, 5,
+ 218, 167, 13, 26, 37, 5, 216, 59, 13, 26, 37, 5, 46, 212, 144, 13, 26,
+ 37, 5, 212, 144, 13, 26, 37, 5, 209, 207, 13, 26, 37, 5, 206, 216, 13,
+ 26, 37, 5, 218, 192, 13, 26, 37, 5, 246, 142, 13, 26, 37, 5, 217, 202,
+ 13, 26, 37, 5, 220, 36, 13, 26, 37, 219, 69, 243, 205, 13, 26, 37, 241,
+ 38, 97, 13, 26, 37, 209, 75, 97, 13, 26, 37, 229, 248, 97, 13, 26, 37,
+ 218, 193, 97, 13, 26, 37, 216, 60, 97, 13, 26, 37, 218, 168, 97, 13, 41,
+ 26, 6, 251, 2, 13, 41, 26, 6, 248, 106, 13, 41, 26, 6, 238, 235, 13, 41,
+ 26, 6, 244, 37, 13, 41, 26, 6, 241, 37, 13, 41, 26, 6, 202, 83, 13, 41,
+ 26, 6, 240, 248, 13, 41, 26, 6, 209, 74, 13, 41, 26, 6, 230, 230, 13, 41,
+ 26, 6, 229, 247, 13, 41, 26, 6, 228, 24, 13, 41, 26, 6, 223, 246, 13, 41,
+ 26, 6, 221, 84, 13, 41, 26, 6, 203, 170, 13, 41, 26, 6, 220, 34, 13, 41,
+ 26, 6, 218, 167, 13, 41, 26, 6, 216, 59, 13, 41, 26, 6, 209, 75, 97, 13,
+ 41, 26, 6, 212, 144, 13, 41, 26, 6, 209, 207, 13, 41, 26, 6, 206, 216,
+ 13, 41, 26, 6, 218, 192, 13, 41, 26, 6, 246, 142, 13, 41, 26, 6, 217,
+ 202, 13, 41, 26, 6, 220, 36, 13, 41, 26, 223, 101, 13, 41, 26, 5, 251, 2,
+ 13, 41, 26, 5, 248, 106, 13, 41, 26, 5, 238, 235, 13, 41, 26, 5, 244, 37,
+ 13, 41, 26, 5, 241, 37, 13, 41, 26, 5, 202, 83, 13, 41, 26, 5, 240, 248,
+ 13, 41, 26, 5, 209, 74, 13, 41, 26, 5, 230, 230, 13, 41, 26, 5, 229, 247,
+ 13, 41, 26, 5, 228, 24, 13, 41, 26, 5, 223, 246, 13, 41, 26, 5, 221, 84,
+ 13, 41, 26, 5, 203, 170, 13, 41, 26, 5, 220, 34, 13, 41, 26, 5, 218, 167,
+ 13, 41, 26, 5, 216, 59, 13, 41, 26, 5, 46, 212, 144, 13, 41, 26, 5, 212,
+ 144, 13, 41, 26, 5, 209, 207, 13, 41, 26, 5, 206, 216, 13, 41, 26, 5,
+ 218, 192, 13, 41, 26, 5, 246, 142, 13, 41, 26, 5, 217, 202, 13, 41, 26,
+ 5, 220, 36, 13, 41, 26, 219, 69, 243, 205, 13, 41, 26, 241, 38, 97, 13,
+ 41, 26, 209, 75, 97, 13, 41, 26, 229, 248, 97, 13, 41, 26, 218, 193, 97,
+ 13, 41, 26, 216, 60, 97, 13, 41, 26, 218, 168, 97, 13, 41, 26, 37, 6,
+ 251, 2, 13, 41, 26, 37, 6, 248, 106, 13, 41, 26, 37, 6, 238, 235, 13, 41,
+ 26, 37, 6, 244, 37, 13, 41, 26, 37, 6, 241, 37, 13, 41, 26, 37, 6, 202,
+ 83, 13, 41, 26, 37, 6, 240, 248, 13, 41, 26, 37, 6, 209, 74, 13, 41, 26,
+ 37, 6, 230, 230, 13, 41, 26, 37, 6, 229, 247, 13, 41, 26, 37, 6, 228, 24,
+ 13, 41, 26, 37, 6, 223, 246, 13, 41, 26, 37, 6, 221, 84, 13, 41, 26, 37,
+ 6, 203, 170, 13, 41, 26, 37, 6, 220, 34, 13, 41, 26, 37, 6, 218, 167, 13,
+ 41, 26, 37, 6, 216, 59, 13, 41, 26, 37, 6, 209, 75, 97, 13, 41, 26, 37,
+ 6, 212, 144, 13, 41, 26, 37, 6, 209, 207, 13, 41, 26, 37, 6, 206, 216,
+ 13, 41, 26, 37, 6, 218, 192, 13, 41, 26, 37, 6, 246, 142, 13, 41, 26, 37,
+ 6, 217, 202, 13, 41, 26, 37, 6, 220, 36, 13, 41, 26, 37, 223, 101, 13,
+ 41, 26, 37, 5, 251, 2, 13, 41, 26, 37, 5, 248, 106, 13, 41, 26, 37, 5,
+ 238, 235, 13, 41, 26, 37, 5, 244, 37, 13, 41, 26, 37, 5, 241, 37, 13, 41,
+ 26, 37, 5, 202, 83, 13, 41, 26, 37, 5, 240, 248, 13, 41, 26, 37, 5, 209,
+ 74, 13, 41, 26, 37, 5, 230, 230, 13, 41, 26, 37, 5, 229, 247, 13, 41, 26,
+ 37, 5, 228, 24, 13, 41, 26, 37, 5, 223, 246, 13, 41, 26, 37, 5, 221, 84,
+ 13, 41, 26, 37, 5, 203, 170, 13, 41, 26, 37, 5, 220, 34, 13, 41, 26, 37,
+ 5, 218, 167, 13, 41, 26, 37, 5, 216, 59, 13, 41, 26, 37, 5, 46, 212, 144,
+ 13, 41, 26, 37, 5, 212, 144, 13, 41, 26, 37, 5, 209, 207, 13, 41, 26, 37,
+ 5, 206, 216, 13, 41, 26, 37, 5, 218, 192, 13, 41, 26, 37, 5, 246, 142,
+ 13, 41, 26, 37, 5, 217, 202, 13, 41, 26, 37, 5, 220, 36, 13, 41, 26, 37,
+ 219, 69, 243, 205, 13, 41, 26, 37, 241, 38, 97, 13, 41, 26, 37, 209, 75,
+ 97, 13, 41, 26, 37, 229, 248, 97, 13, 41, 26, 37, 218, 193, 97, 13, 41,
+ 26, 37, 216, 60, 97, 13, 41, 26, 37, 218, 168, 97, 13, 26, 6, 243, 199,
+ 13, 26, 5, 243, 199, 13, 26, 17, 202, 84, 13, 26, 17, 105, 13, 26, 17,
+ 108, 13, 26, 17, 147, 13, 26, 17, 149, 13, 26, 17, 170, 13, 26, 17, 195,
+ 13, 26, 17, 213, 111, 13, 26, 17, 199, 13, 26, 17, 222, 63, 13, 169, 17,
+ 202, 84, 13, 169, 17, 105, 13, 169, 17, 108, 13, 169, 17, 147, 13, 169,
+ 17, 149, 13, 169, 17, 170, 13, 169, 17, 195, 13, 169, 17, 213, 111, 13,
+ 169, 17, 199, 13, 169, 17, 222, 63, 13, 41, 17, 202, 84, 13, 41, 17, 105,
+ 13, 41, 17, 108, 13, 41, 17, 147, 13, 41, 17, 149, 13, 41, 17, 170, 13,
+ 41, 17, 195, 13, 41, 17, 213, 111, 13, 41, 17, 199, 13, 41, 17, 222, 63,
+ 13, 41, 26, 17, 202, 84, 13, 41, 26, 17, 105, 13, 41, 26, 17, 108, 13,
+ 41, 26, 17, 147, 13, 41, 26, 17, 149, 13, 41, 26, 17, 170, 13, 41, 26,
+ 17, 195, 13, 41, 26, 17, 213, 111, 13, 41, 26, 17, 199, 13, 41, 26, 17,
+ 222, 63, 13, 224, 41, 17, 202, 84, 13, 224, 41, 17, 105, 13, 224, 41, 17,
+ 108, 13, 224, 41, 17, 147, 13, 224, 41, 17, 149, 13, 224, 41, 17, 170,
+ 13, 224, 41, 17, 195, 13, 224, 41, 17, 213, 111, 13, 224, 41, 17, 199,
+ 13, 224, 41, 17, 222, 63, 21, 128, 231, 35, 21, 237, 120, 231, 35, 21,
+ 237, 116, 231, 35, 21, 237, 105, 231, 35, 21, 237, 109, 231, 35, 21, 237,
+ 122, 231, 35, 21, 128, 122, 248, 117, 21, 237, 120, 122, 248, 117, 21,
+ 128, 148, 206, 248, 122, 248, 117, 21, 128, 122, 216, 188, 229, 29, 21,
+ 128, 122, 245, 97, 21, 128, 122, 236, 235, 21, 128, 122, 236, 236, 227,
+ 0, 21, 237, 120, 122, 236, 237, 21, 128, 122, 224, 148, 21, 237, 120,
+ 122, 224, 148, 21, 128, 122, 101, 248, 117, 21, 128, 122, 101, 216, 188,
+ 229, 28, 21, 128, 122, 101, 236, 235, 21, 128, 122, 112, 101, 236, 235,
+ 21, 128, 122, 236, 236, 101, 206, 224, 21, 128, 122, 101, 245, 207, 21,
+ 128, 122, 101, 245, 208, 122, 248, 117, 21, 128, 122, 101, 245, 208, 101,
+ 248, 117, 21, 128, 122, 101, 245, 208, 245, 97, 21, 128, 122, 101, 245,
+ 208, 236, 235, 21, 128, 122, 101, 245, 127, 21, 237, 120, 122, 101, 245,
+ 127, 21, 128, 101, 248, 118, 115, 231, 35, 21, 128, 122, 248, 118, 115,
+ 224, 148, 21, 128, 122, 101, 209, 21, 21, 237, 120, 122, 101, 209, 21,
+ 21, 128, 122, 101, 211, 53, 148, 248, 117, 21, 128, 122, 101, 248, 118,
+ 148, 211, 52, 21, 128, 122, 101, 148, 248, 117, 21, 128, 122, 101, 236,
+ 236, 211, 186, 148, 212, 155, 21, 128, 122, 112, 101, 236, 236, 148, 212,
+ 155, 21, 128, 122, 112, 101, 236, 236, 148, 245, 207, 21, 128, 122, 236,
+ 236, 101, 112, 148, 212, 155, 21, 128, 122, 101, 112, 211, 186, 148, 239,
+ 151, 21, 128, 122, 101, 148, 245, 97, 21, 128, 122, 101, 148, 246, 60,
+ 21, 128, 122, 101, 148, 236, 114, 21, 128, 122, 101, 148, 236, 235, 21,
+ 128, 148, 248, 104, 122, 101, 211, 52, 21, 128, 122, 101, 245, 208, 148,
+ 212, 155, 21, 128, 122, 101, 245, 208, 148, 212, 156, 245, 207, 21, 128,
+ 122, 101, 245, 208, 148, 212, 156, 248, 117, 21, 128, 101, 148, 236, 115,
+ 122, 206, 224, 21, 128, 122, 148, 236, 115, 101, 206, 224, 21, 128, 122,
+ 101, 245, 208, 236, 236, 148, 212, 155, 21, 128, 122, 101, 245, 128, 148,
+ 212, 155, 21, 128, 122, 101, 245, 208, 148, 239, 151, 21, 128, 122, 101,
+ 245, 208, 245, 98, 148, 239, 151, 21, 128, 101, 148, 245, 98, 122, 206,
+ 224, 21, 128, 122, 148, 245, 98, 101, 206, 224, 21, 128, 101, 148, 43,
+ 122, 206, 224, 21, 128, 101, 148, 43, 122, 236, 235, 21, 128, 122, 148,
+ 250, 216, 219, 212, 101, 206, 224, 21, 128, 122, 148, 250, 216, 231, 50,
+ 101, 206, 224, 21, 128, 122, 148, 43, 101, 206, 224, 21, 128, 122, 101,
+ 148, 245, 208, 236, 235, 21, 128, 122, 101, 148, 250, 216, 219, 211, 21,
+ 128, 122, 101, 148, 250, 215, 21, 128, 101, 148, 250, 216, 219, 212, 122,
+ 206, 224, 21, 128, 101, 148, 250, 216, 219, 212, 122, 245, 127, 21, 128,
+ 101, 148, 250, 216, 122, 206, 224, 21, 128, 122, 148, 236, 115, 101, 236,
+ 235, 21, 237, 111, 239, 147, 239, 253, 21, 237, 111, 239, 147, 239, 254,
+ 248, 117, 21, 237, 111, 239, 147, 239, 254, 236, 235, 21, 237, 111, 239,
+ 147, 239, 254, 245, 207, 21, 237, 111, 239, 147, 239, 254, 245, 208, 211,
+ 193, 21, 237, 118, 239, 147, 239, 254, 245, 207, 21, 128, 239, 147, 239,
+ 254, 245, 208, 248, 117, 21, 237, 109, 239, 147, 239, 254, 245, 207, 21,
+ 237, 111, 239, 233, 239, 254, 211, 185, 21, 237, 111, 237, 46, 239, 233,
+ 239, 254, 211, 185, 21, 237, 111, 239, 233, 239, 254, 211, 186, 239, 147,
+ 248, 117, 21, 237, 111, 237, 46, 239, 233, 239, 254, 211, 186, 239, 147,
+ 248, 117, 21, 237, 111, 239, 233, 239, 254, 211, 186, 248, 117, 21, 237,
+ 111, 237, 46, 239, 233, 239, 254, 211, 186, 248, 117, 21, 237, 111, 239,
+ 233, 239, 254, 211, 186, 148, 239, 151, 21, 237, 116, 239, 233, 239, 254,
+ 211, 185, 21, 237, 116, 239, 233, 239, 254, 211, 186, 220, 8, 21, 237,
+ 109, 239, 233, 239, 254, 211, 186, 220, 8, 21, 237, 105, 239, 233, 239,
+ 254, 211, 185, 21, 237, 111, 239, 233, 239, 254, 211, 186, 236, 235, 21,
+ 237, 111, 239, 233, 239, 254, 211, 186, 236, 236, 148, 212, 155, 21, 237,
+ 111, 239, 233, 239, 254, 211, 186, 236, 236, 221, 192, 209, 21, 21, 237,
+ 110, 21, 237, 111, 248, 104, 219, 135, 240, 94, 21, 237, 111, 237, 45,
+ 21, 237, 111, 148, 212, 155, 21, 237, 111, 237, 46, 148, 212, 155, 21,
+ 237, 111, 148, 248, 117, 21, 237, 111, 148, 239, 151, 21, 237, 111, 211,
+ 194, 122, 148, 212, 155, 21, 237, 111, 211, 194, 246, 217, 21, 237, 111,
+ 211, 194, 246, 218, 148, 212, 155, 21, 237, 111, 211, 194, 246, 218, 148,
+ 212, 156, 248, 117, 21, 237, 111, 211, 194, 227, 85, 21, 237, 117, 21,
+ 237, 118, 148, 212, 155, 21, 237, 118, 221, 192, 209, 21, 21, 237, 118,
+ 148, 239, 151, 21, 237, 107, 245, 94, 21, 237, 106, 21, 237, 116, 220, 8,
+ 21, 237, 115, 21, 237, 116, 171, 148, 212, 155, 21, 237, 116, 148, 212,
+ 155, 21, 237, 116, 171, 221, 192, 209, 21, 21, 237, 116, 221, 192, 209,
+ 21, 21, 237, 116, 171, 148, 239, 151, 21, 237, 116, 148, 239, 151, 21,
+ 237, 114, 220, 8, 21, 237, 113, 21, 237, 119, 21, 237, 104, 21, 237, 105,
+ 148, 212, 155, 21, 237, 105, 221, 192, 209, 21, 21, 237, 105, 148, 239,
+ 151, 21, 237, 109, 220, 8, 21, 237, 109, 171, 148, 239, 151, 21, 237,
+ 108, 21, 237, 109, 212, 36, 21, 237, 109, 171, 148, 212, 155, 21, 237,
+ 109, 148, 212, 155, 21, 237, 109, 171, 221, 192, 209, 21, 21, 237, 109,
+ 221, 192, 209, 21, 21, 237, 109, 148, 212, 156, 208, 127, 231, 35, 21,
+ 237, 109, 148, 248, 104, 101, 215, 252, 21, 237, 121, 21, 128, 122, 101,
+ 215, 252, 21, 237, 120, 122, 101, 215, 252, 21, 237, 109, 122, 101, 215,
+ 252, 21, 237, 122, 122, 101, 215, 252, 21, 237, 109, 227, 85, 21, 128,
+ 122, 101, 215, 253, 248, 117, 21, 128, 122, 101, 215, 253, 245, 207, 21,
+ 237, 109, 122, 101, 215, 253, 245, 207, 21, 128, 227, 86, 242, 70, 21,
+ 128, 227, 86, 121, 215, 248, 211, 52, 21, 128, 227, 86, 121, 215, 248,
+ 245, 85, 21, 128, 227, 86, 121, 219, 220, 246, 60, 21, 128, 227, 86, 206,
+ 224, 21, 128, 148, 206, 248, 227, 86, 206, 224, 21, 237, 120, 227, 86,
+ 206, 224, 21, 237, 105, 227, 86, 206, 224, 21, 237, 122, 227, 86, 206,
+ 224, 21, 128, 227, 86, 216, 188, 229, 29, 21, 128, 227, 86, 248, 117, 21,
+ 128, 227, 86, 208, 128, 209, 21, 21, 128, 227, 86, 209, 21, 21, 237, 109,
+ 227, 86, 209, 21, 21, 128, 227, 86, 122, 209, 21, 21, 237, 109, 227, 86,
+ 122, 209, 21, 21, 237, 122, 227, 86, 122, 148, 122, 148, 219, 211, 21,
+ 237, 122, 227, 86, 122, 148, 122, 209, 21, 21, 128, 227, 86, 231, 35, 21,
+ 237, 120, 227, 86, 231, 35, 21, 237, 109, 227, 86, 231, 35, 21, 237, 122,
+ 227, 86, 231, 35, 21, 128, 122, 101, 227, 85, 21, 237, 120, 122, 101,
+ 227, 85, 21, 237, 109, 122, 101, 227, 85, 21, 237, 109, 215, 252, 21,
+ 237, 122, 122, 101, 227, 85, 21, 128, 122, 101, 245, 131, 227, 85, 21,
+ 237, 120, 122, 101, 245, 131, 227, 85, 21, 128, 215, 253, 242, 70, 21,
+ 237, 109, 215, 253, 121, 122, 148, 236, 116, 224, 148, 21, 237, 122, 215,
+ 253, 121, 101, 148, 122, 245, 130, 21, 128, 215, 253, 206, 224, 21, 128,
+ 215, 253, 216, 188, 229, 29, 21, 128, 215, 253, 227, 85, 21, 237, 120,
+ 215, 253, 227, 85, 21, 237, 105, 215, 253, 227, 85, 21, 237, 122, 215,
+ 253, 227, 85, 21, 128, 215, 253, 224, 148, 21, 128, 215, 253, 101, 245,
+ 207, 21, 128, 215, 253, 101, 216, 188, 229, 28, 21, 128, 215, 253, 231,
+ 35, 21, 128, 215, 253, 209, 21, 21, 237, 107, 215, 253, 209, 21, 21, 128,
+ 122, 215, 253, 227, 85, 21, 237, 120, 122, 215, 253, 227, 85, 21, 237,
+ 114, 122, 215, 253, 227, 86, 220, 31, 21, 237, 107, 122, 215, 253, 227,
+ 86, 219, 211, 21, 237, 107, 122, 215, 253, 227, 86, 231, 49, 21, 237,
+ 107, 122, 215, 253, 227, 86, 206, 247, 21, 237, 116, 122, 215, 253, 227,
+ 85, 21, 237, 109, 122, 215, 253, 227, 85, 21, 237, 122, 122, 215, 253,
+ 227, 86, 219, 211, 21, 237, 122, 122, 215, 253, 227, 85, 21, 128, 101,
+ 242, 70, 21, 237, 109, 224, 148, 21, 128, 101, 206, 224, 21, 237, 120,
+ 101, 206, 224, 21, 128, 101, 216, 188, 229, 29, 21, 128, 101, 112, 148,
+ 212, 155, 21, 237, 107, 101, 209, 21, 21, 128, 101, 148, 227, 85, 21,
+ 128, 101, 227, 85, 21, 128, 101, 215, 253, 227, 85, 21, 237, 120, 101,
+ 215, 253, 227, 85, 21, 237, 114, 101, 215, 253, 227, 86, 220, 31, 21,
+ 237, 116, 101, 215, 253, 227, 85, 21, 237, 109, 101, 215, 253, 227, 85,
+ 21, 237, 122, 101, 215, 253, 227, 86, 219, 211, 21, 237, 122, 101, 215,
+ 253, 227, 86, 231, 49, 21, 237, 122, 101, 215, 253, 227, 85, 21, 237,
+ 120, 101, 215, 253, 227, 86, 248, 117, 21, 237, 118, 101, 215, 253, 227,
+ 86, 245, 207, 21, 237, 118, 101, 215, 253, 227, 86, 245, 208, 212, 155,
+ 21, 237, 107, 101, 215, 253, 227, 86, 245, 208, 219, 211, 21, 237, 107,
+ 101, 215, 253, 227, 86, 245, 208, 231, 49, 21, 237, 107, 101, 215, 253,
+ 227, 86, 245, 207, 21, 237, 109, 122, 236, 235, 21, 128, 122, 148, 212,
+ 155, 21, 237, 109, 122, 148, 212, 155, 21, 128, 122, 148, 212, 156, 148,
+ 243, 227, 21, 128, 122, 148, 212, 156, 148, 245, 207, 21, 128, 122, 148,
+ 212, 156, 148, 248, 117, 21, 128, 122, 148, 212, 156, 122, 248, 117, 21,
+ 128, 122, 148, 212, 156, 247, 251, 248, 117, 21, 128, 122, 148, 212, 156,
+ 122, 236, 237, 21, 128, 122, 148, 239, 152, 122, 211, 52, 21, 128, 122,
+ 148, 239, 152, 122, 248, 117, 21, 128, 122, 148, 113, 21, 128, 122, 148,
+ 245, 94, 21, 128, 122, 148, 245, 88, 148, 231, 6, 21, 237, 118, 122, 148,
+ 245, 88, 148, 231, 6, 21, 128, 122, 148, 245, 88, 148, 206, 247, 21, 128,
+ 122, 148, 246, 61, 21, 237, 116, 122, 209, 21, 21, 237, 116, 122, 148,
+ 220, 8, 21, 237, 109, 122, 148, 220, 8, 21, 237, 109, 122, 148, 228, 7,
+ 21, 237, 109, 122, 209, 21, 21, 237, 109, 122, 148, 212, 36, 21, 237,
+ 122, 122, 148, 219, 211, 21, 237, 122, 122, 148, 231, 49, 21, 237, 122,
+ 122, 209, 21, 21, 128, 209, 21, 21, 128, 148, 237, 45, 21, 128, 148, 212,
+ 156, 243, 227, 21, 128, 148, 212, 156, 245, 207, 21, 128, 148, 212, 156,
+ 248, 117, 21, 128, 148, 239, 151, 21, 128, 148, 248, 104, 122, 224, 148,
+ 21, 128, 148, 248, 104, 101, 215, 252, 21, 128, 148, 248, 104, 215, 253,
+ 227, 85, 21, 128, 148, 206, 248, 120, 239, 253, 21, 128, 148, 115, 120,
+ 239, 253, 21, 128, 148, 206, 248, 126, 239, 253, 21, 128, 148, 206, 248,
+ 239, 147, 239, 253, 21, 128, 148, 115, 239, 147, 216, 188, 229, 28, 21,
+ 237, 112, 21, 128, 237, 45, 21, 208, 129, 212, 119, 21, 208, 129, 223,
+ 225, 21, 208, 129, 248, 103, 21, 238, 2, 212, 119, 21, 238, 2, 223, 225,
+ 21, 238, 2, 248, 103, 21, 211, 37, 212, 119, 21, 211, 37, 223, 225, 21,
+ 211, 37, 248, 103, 21, 247, 201, 212, 119, 21, 247, 201, 223, 225, 21,
+ 247, 201, 248, 103, 21, 215, 143, 212, 119, 21, 215, 143, 223, 225, 21,
+ 215, 143, 248, 103, 21, 210, 189, 210, 102, 21, 210, 189, 248, 103, 21,
+ 211, 173, 228, 8, 212, 119, 21, 211, 173, 5, 212, 119, 21, 211, 173, 228,
+ 8, 223, 225, 21, 211, 173, 5, 223, 225, 21, 211, 173, 213, 126, 21, 239,
+ 208, 228, 8, 212, 119, 21, 239, 208, 5, 212, 119, 21, 239, 208, 228, 8,
+ 223, 225, 21, 239, 208, 5, 223, 225, 21, 239, 208, 213, 126, 21, 211,
+ 173, 239, 208, 250, 252, 21, 224, 0, 112, 121, 228, 7, 21, 224, 0, 112,
+ 121, 212, 36, 21, 224, 0, 112, 213, 126, 21, 224, 0, 121, 213, 126, 21,
+ 224, 0, 112, 121, 250, 253, 228, 7, 21, 224, 0, 112, 121, 250, 253, 212,
+ 36, 21, 224, 0, 212, 156, 208, 173, 212, 156, 214, 190, 21, 223, 255,
+ 240, 3, 245, 197, 21, 224, 1, 240, 3, 245, 197, 21, 223, 255, 212, 120,
+ 211, 53, 212, 36, 21, 223, 255, 212, 120, 211, 53, 225, 9, 21, 223, 255,
+ 212, 120, 211, 53, 228, 7, 21, 223, 255, 212, 120, 211, 53, 228, 5, 21,
+ 223, 255, 212, 120, 203, 221, 239, 211, 21, 223, 255, 52, 211, 52, 21,
+ 223, 255, 52, 203, 221, 239, 211, 21, 223, 255, 52, 250, 252, 21, 223,
+ 255, 52, 250, 253, 203, 221, 239, 211, 21, 223, 255, 245, 130, 21, 223,
+ 255, 208, 70, 211, 53, 224, 3, 21, 223, 255, 208, 70, 203, 221, 239, 211,
+ 21, 223, 255, 208, 70, 250, 252, 21, 223, 255, 208, 70, 250, 253, 203,
+ 221, 239, 211, 21, 223, 255, 248, 121, 212, 36, 21, 223, 255, 248, 121,
+ 225, 9, 21, 223, 255, 248, 121, 228, 7, 21, 223, 255, 245, 166, 212, 36,
+ 21, 223, 255, 245, 166, 225, 9, 21, 223, 255, 245, 166, 228, 7, 21, 223,
+ 255, 245, 166, 215, 196, 21, 223, 255, 246, 169, 212, 36, 21, 223, 255,
+ 246, 169, 225, 9, 21, 223, 255, 246, 169, 228, 7, 21, 223, 255, 98, 212,
+ 36, 21, 223, 255, 98, 225, 9, 21, 223, 255, 98, 228, 7, 21, 223, 255,
+ 202, 30, 212, 36, 21, 223, 255, 202, 30, 225, 9, 21, 223, 255, 202, 30,
+ 228, 7, 21, 223, 255, 219, 30, 212, 36, 21, 223, 255, 219, 30, 225, 9,
+ 21, 223, 255, 219, 30, 228, 7, 21, 208, 99, 215, 194, 212, 119, 21, 208,
+ 99, 215, 194, 242, 78, 21, 208, 99, 215, 194, 250, 252, 21, 208, 99, 215,
+ 195, 212, 119, 21, 208, 99, 215, 195, 242, 78, 21, 208, 99, 215, 195,
+ 250, 252, 21, 208, 99, 213, 71, 21, 208, 99, 250, 107, 211, 202, 212,
+ 119, 21, 208, 99, 250, 107, 211, 202, 242, 78, 21, 208, 99, 250, 107,
+ 211, 202, 208, 69, 21, 224, 2, 250, 12, 212, 36, 21, 224, 2, 250, 12,
+ 225, 9, 21, 224, 2, 250, 12, 228, 7, 21, 224, 2, 250, 12, 228, 5, 21,
+ 224, 2, 208, 123, 212, 36, 21, 224, 2, 208, 123, 225, 9, 21, 224, 2, 208,
+ 123, 228, 7, 21, 224, 2, 208, 123, 228, 5, 21, 224, 2, 248, 104, 250, 12,
+ 212, 36, 21, 224, 2, 248, 104, 250, 12, 225, 9, 21, 224, 2, 248, 104,
+ 250, 12, 228, 7, 21, 224, 2, 248, 104, 250, 12, 228, 5, 21, 224, 2, 248,
+ 104, 208, 123, 212, 36, 21, 224, 2, 248, 104, 208, 123, 225, 9, 21, 224,
+ 2, 248, 104, 208, 123, 228, 7, 21, 224, 2, 248, 104, 208, 123, 228, 5,
+ 21, 224, 1, 212, 120, 211, 53, 212, 36, 21, 224, 1, 212, 120, 211, 53,
+ 225, 9, 21, 224, 1, 212, 120, 211, 53, 228, 7, 21, 224, 1, 212, 120, 211,
+ 53, 228, 5, 21, 224, 1, 212, 120, 203, 221, 239, 211, 21, 224, 1, 52,
+ 211, 52, 21, 224, 1, 52, 203, 221, 239, 211, 21, 224, 1, 52, 250, 252,
+ 21, 224, 1, 52, 250, 253, 203, 221, 239, 211, 21, 224, 1, 245, 130, 21,
+ 224, 1, 208, 70, 211, 53, 224, 3, 21, 224, 1, 208, 70, 203, 221, 239,
+ 211, 21, 224, 1, 208, 70, 250, 253, 224, 3, 21, 224, 1, 208, 70, 250,
+ 253, 203, 221, 239, 211, 21, 224, 1, 248, 120, 21, 224, 1, 245, 166, 212,
+ 36, 21, 224, 1, 245, 166, 225, 9, 21, 224, 1, 245, 166, 228, 7, 21, 224,
+ 1, 246, 168, 21, 224, 1, 98, 212, 36, 21, 224, 1, 98, 225, 9, 21, 224, 1,
+ 98, 228, 7, 21, 224, 1, 202, 30, 212, 36, 21, 224, 1, 202, 30, 225, 9,
+ 21, 224, 1, 202, 30, 228, 7, 21, 224, 1, 219, 30, 212, 36, 21, 224, 1,
+ 219, 30, 225, 9, 21, 224, 1, 219, 30, 228, 7, 21, 208, 100, 215, 195,
+ 212, 119, 21, 208, 100, 215, 195, 242, 78, 21, 208, 100, 215, 195, 250,
+ 252, 21, 208, 100, 215, 194, 212, 119, 21, 208, 100, 215, 194, 242, 78,
+ 21, 208, 100, 215, 194, 250, 252, 21, 208, 100, 213, 71, 21, 223, 255,
+ 245, 88, 217, 56, 212, 36, 21, 223, 255, 245, 88, 217, 56, 225, 9, 21,
+ 223, 255, 245, 88, 217, 56, 228, 7, 21, 223, 255, 245, 88, 217, 56, 228,
+ 5, 21, 223, 255, 245, 88, 237, 136, 212, 36, 21, 223, 255, 245, 88, 237,
+ 136, 225, 9, 21, 223, 255, 245, 88, 237, 136, 228, 7, 21, 223, 255, 245,
+ 88, 237, 136, 228, 5, 21, 223, 255, 245, 88, 209, 27, 246, 62, 212, 36,
+ 21, 223, 255, 245, 88, 209, 27, 246, 62, 225, 9, 21, 223, 255, 236, 14,
+ 212, 36, 21, 223, 255, 236, 14, 225, 9, 21, 223, 255, 236, 14, 228, 7,
+ 21, 223, 255, 227, 15, 212, 36, 21, 223, 255, 227, 15, 225, 9, 21, 223,
+ 255, 227, 15, 228, 7, 21, 223, 255, 227, 15, 5, 242, 78, 21, 223, 255,
+ 204, 76, 245, 88, 52, 212, 36, 21, 223, 255, 204, 76, 245, 88, 52, 225,
+ 9, 21, 223, 255, 204, 76, 245, 88, 52, 228, 7, 21, 223, 255, 204, 76,
+ 245, 88, 208, 70, 212, 36, 21, 223, 255, 204, 76, 245, 88, 208, 70, 225,
+ 9, 21, 223, 255, 204, 76, 245, 88, 208, 70, 228, 7, 21, 223, 255, 245,
+ 88, 209, 84, 211, 52, 21, 223, 255, 245, 86, 245, 131, 212, 36, 21, 223,
+ 255, 245, 86, 245, 131, 225, 9, 21, 215, 194, 212, 119, 21, 215, 194,
+ 242, 78, 21, 215, 194, 250, 254, 21, 223, 255, 213, 71, 21, 223, 255,
+ 245, 88, 236, 229, 239, 119, 204, 99, 21, 223, 255, 236, 14, 236, 229,
+ 239, 119, 204, 99, 21, 223, 255, 227, 15, 236, 229, 239, 119, 204, 99,
+ 21, 223, 255, 204, 76, 236, 229, 239, 119, 204, 99, 21, 215, 194, 212,
+ 120, 236, 229, 239, 119, 204, 99, 21, 215, 194, 52, 236, 229, 239, 119,
+ 204, 99, 21, 215, 194, 250, 253, 236, 229, 239, 119, 204, 99, 21, 223,
+ 255, 245, 88, 236, 229, 246, 149, 21, 223, 255, 236, 14, 236, 229, 246,
+ 149, 21, 223, 255, 227, 15, 236, 229, 246, 149, 21, 223, 255, 204, 76,
+ 236, 229, 246, 149, 21, 215, 194, 212, 120, 236, 229, 246, 149, 21, 215,
+ 194, 52, 236, 229, 246, 149, 21, 215, 194, 250, 253, 236, 229, 246, 149,
+ 21, 223, 255, 204, 76, 243, 228, 219, 52, 212, 36, 21, 223, 255, 204, 76,
+ 243, 228, 219, 52, 225, 9, 21, 223, 255, 204, 76, 243, 228, 219, 52, 228,
+ 7, 21, 224, 1, 245, 88, 236, 229, 246, 227, 212, 36, 21, 224, 1, 245, 88,
+ 236, 229, 246, 227, 228, 7, 21, 224, 1, 236, 14, 236, 229, 246, 227, 5,
+ 242, 78, 21, 224, 1, 236, 14, 236, 229, 246, 227, 228, 8, 242, 78, 21,
+ 224, 1, 236, 14, 236, 229, 246, 227, 5, 208, 69, 21, 224, 1, 236, 14,
+ 236, 229, 246, 227, 228, 8, 208, 69, 21, 224, 1, 227, 15, 236, 229, 246,
+ 227, 5, 212, 119, 21, 224, 1, 227, 15, 236, 229, 246, 227, 228, 8, 212,
+ 119, 21, 224, 1, 227, 15, 236, 229, 246, 227, 5, 242, 78, 21, 224, 1,
+ 227, 15, 236, 229, 246, 227, 228, 8, 242, 78, 21, 224, 1, 204, 76, 236,
+ 229, 246, 227, 212, 36, 21, 224, 1, 204, 76, 236, 229, 246, 227, 228, 7,
+ 21, 215, 195, 212, 120, 236, 229, 246, 226, 21, 215, 195, 52, 236, 229,
+ 246, 226, 21, 215, 195, 250, 253, 236, 229, 246, 226, 21, 224, 1, 245,
+ 88, 236, 229, 239, 205, 212, 36, 21, 224, 1, 245, 88, 236, 229, 239, 205,
+ 228, 7, 21, 224, 1, 236, 14, 236, 229, 239, 205, 5, 242, 78, 21, 224, 1,
+ 236, 14, 236, 229, 239, 205, 228, 8, 242, 78, 21, 224, 1, 236, 14, 236,
+ 229, 239, 205, 208, 70, 5, 208, 69, 21, 224, 1, 236, 14, 236, 229, 239,
+ 205, 208, 70, 228, 8, 208, 69, 21, 224, 1, 227, 15, 236, 229, 239, 205,
+ 5, 212, 119, 21, 224, 1, 227, 15, 236, 229, 239, 205, 228, 8, 212, 119,
+ 21, 224, 1, 227, 15, 236, 229, 239, 205, 5, 242, 78, 21, 224, 1, 227, 15,
+ 236, 229, 239, 205, 228, 8, 242, 78, 21, 224, 1, 204, 76, 236, 229, 239,
+ 205, 212, 36, 21, 224, 1, 204, 76, 236, 229, 239, 205, 228, 7, 21, 215,
+ 195, 212, 120, 236, 229, 239, 204, 21, 215, 195, 52, 236, 229, 239, 204,
+ 21, 215, 195, 250, 253, 236, 229, 239, 204, 21, 224, 1, 245, 88, 212, 36,
+ 21, 224, 1, 245, 88, 225, 9, 21, 224, 1, 245, 88, 228, 7, 21, 224, 1,
+ 245, 88, 228, 5, 21, 224, 1, 245, 88, 245, 237, 21, 224, 1, 236, 14, 212,
+ 36, 21, 224, 1, 227, 15, 212, 36, 21, 224, 1, 204, 76, 212, 24, 21, 224,
+ 1, 204, 76, 212, 36, 21, 224, 1, 204, 76, 228, 7, 21, 215, 195, 212, 119,
+ 21, 215, 195, 242, 78, 21, 215, 195, 250, 252, 21, 224, 1, 213, 72, 219,
+ 81, 21, 223, 255, 250, 107, 246, 62, 5, 212, 119, 21, 223, 255, 250, 107,
+ 246, 62, 225, 10, 212, 119, 21, 223, 255, 250, 107, 246, 62, 5, 242, 78,
+ 21, 223, 255, 250, 107, 246, 62, 225, 10, 242, 78, 21, 224, 1, 250, 107,
+ 246, 62, 236, 229, 204, 100, 5, 212, 119, 21, 224, 1, 250, 107, 246, 62,
+ 236, 229, 204, 100, 225, 10, 212, 119, 21, 224, 1, 250, 107, 246, 62,
+ 236, 229, 204, 100, 228, 8, 212, 119, 21, 224, 1, 250, 107, 246, 62, 236,
+ 229, 204, 100, 5, 242, 78, 21, 224, 1, 250, 107, 246, 62, 236, 229, 204,
+ 100, 225, 10, 242, 78, 21, 224, 1, 250, 107, 246, 62, 236, 229, 204, 100,
+ 228, 8, 242, 78, 21, 223, 255, 203, 221, 246, 62, 239, 119, 212, 119, 21,
+ 223, 255, 203, 221, 246, 62, 239, 119, 242, 78, 21, 224, 1, 203, 221,
+ 246, 62, 236, 229, 204, 100, 212, 119, 21, 224, 1, 203, 221, 246, 62,
+ 236, 229, 204, 100, 242, 78, 21, 223, 255, 240, 3, 246, 59, 212, 119, 21,
+ 223, 255, 240, 3, 246, 59, 242, 78, 21, 224, 1, 240, 3, 246, 59, 236,
+ 229, 204, 100, 212, 119, 21, 224, 1, 240, 3, 246, 59, 236, 229, 204, 100,
+ 242, 78, 21, 242, 4, 250, 95, 212, 36, 21, 242, 4, 250, 95, 228, 7, 21,
+ 242, 4, 240, 74, 21, 242, 4, 212, 39, 21, 242, 4, 209, 145, 21, 242, 4,
+ 216, 115, 21, 242, 4, 212, 125, 21, 242, 4, 212, 126, 250, 252, 21, 242,
+ 4, 240, 221, 219, 221, 208, 221, 21, 242, 4, 238, 12, 21, 237, 64, 21,
+ 237, 65, 216, 1, 21, 237, 65, 223, 255, 211, 52, 21, 237, 65, 223, 255,
+ 208, 224, 21, 237, 65, 224, 1, 211, 52, 21, 237, 65, 223, 255, 245, 87,
+ 21, 237, 65, 224, 1, 245, 87, 21, 237, 65, 224, 4, 246, 61, 21, 240, 103,
+ 243, 166, 218, 34, 221, 168, 239, 152, 208, 222, 21, 240, 103, 243, 166,
+ 218, 34, 221, 168, 112, 219, 245, 242, 70, 21, 240, 103, 243, 166, 218,
+ 34, 221, 168, 112, 219, 245, 121, 208, 222, 21, 240, 190, 211, 53, 206,
+ 224, 21, 240, 190, 211, 53, 222, 215, 21, 240, 190, 211, 53, 242, 70, 21,
+ 242, 57, 240, 190, 222, 216, 242, 70, 21, 242, 57, 240, 190, 121, 222,
+ 215, 21, 242, 57, 240, 190, 112, 222, 215, 21, 242, 57, 240, 190, 222,
+ 216, 206, 224, 21, 239, 164, 222, 215, 21, 239, 164, 245, 197, 21, 239,
+ 164, 203, 224, 21, 240, 185, 220, 8, 21, 240, 185, 211, 172, 21, 240,
+ 185, 246, 15, 21, 240, 192, 248, 34, 212, 119, 21, 240, 192, 248, 34,
+ 223, 225, 21, 240, 185, 162, 220, 8, 21, 240, 185, 204, 27, 220, 8, 21,
+ 240, 185, 162, 246, 15, 21, 240, 185, 204, 25, 224, 3, 21, 240, 192, 204,
+ 9, 21, 240, 186, 206, 224, 21, 240, 186, 242, 70, 21, 240, 186, 239, 191,
+ 21, 240, 188, 211, 52, 21, 240, 188, 211, 53, 242, 78, 21, 240, 188, 211,
+ 53, 250, 252, 21, 240, 189, 211, 52, 21, 240, 189, 211, 53, 242, 78, 21,
+ 240, 189, 211, 53, 250, 252, 21, 240, 188, 245, 85, 21, 240, 189, 245,
+ 85, 21, 240, 188, 246, 56, 21, 246, 164, 217, 182, 21, 246, 164, 222,
+ 215, 21, 246, 164, 210, 234, 21, 209, 146, 246, 164, 236, 244, 21, 209,
+ 146, 246, 164, 224, 148, 21, 209, 146, 246, 164, 227, 0, 21, 241, 181,
+ 21, 221, 168, 222, 215, 21, 221, 168, 245, 197, 21, 221, 168, 203, 222,
+ 21, 221, 168, 204, 22, 21, 251, 55, 248, 27, 219, 211, 21, 251, 55, 210,
+ 233, 231, 49, 21, 251, 55, 248, 29, 5, 215, 193, 21, 251, 55, 210, 235,
+ 5, 215, 193, 21, 247, 216, 231, 22, 21, 247, 216, 240, 210, 21, 224, 8,
+ 246, 16, 222, 215, 21, 224, 8, 246, 16, 239, 151, 21, 224, 8, 246, 16,
+ 245, 197, 21, 224, 8, 212, 31, 21, 224, 8, 212, 32, 203, 224, 21, 224, 8,
+ 212, 32, 220, 8, 21, 224, 8, 239, 115, 21, 224, 8, 239, 116, 203, 224,
+ 21, 224, 8, 239, 116, 220, 8, 21, 224, 8, 171, 246, 61, 21, 224, 8, 171,
+ 239, 151, 21, 224, 8, 171, 203, 224, 21, 224, 8, 171, 219, 204, 21, 224,
+ 8, 171, 219, 205, 203, 224, 21, 224, 8, 171, 219, 205, 203, 59, 21, 224,
+ 8, 171, 216, 143, 21, 224, 8, 171, 216, 144, 203, 224, 21, 224, 8, 171,
+ 216, 144, 203, 59, 21, 224, 8, 229, 66, 21, 224, 8, 229, 67, 239, 151,
+ 21, 224, 8, 229, 67, 203, 224, 21, 224, 8, 209, 145, 21, 224, 8, 209,
+ 146, 239, 151, 21, 224, 8, 209, 146, 210, 234, 21, 227, 99, 217, 239,
+ 208, 169, 21, 227, 101, 226, 251, 115, 206, 220, 21, 227, 101, 206, 221,
+ 115, 226, 250, 21, 224, 8, 245, 164, 21, 224, 8, 203, 223, 212, 119, 21,
+ 224, 8, 203, 223, 242, 78, 21, 208, 151, 211, 72, 219, 212, 240, 76, 21,
+ 208, 151, 227, 144, 227, 98, 21, 208, 151, 208, 211, 248, 104, 227, 98,
+ 21, 208, 151, 208, 211, 208, 127, 231, 7, 224, 7, 21, 208, 151, 231, 7,
+ 224, 8, 216, 115, 21, 208, 151, 223, 254, 251, 79, 246, 165, 21, 208,
+ 151, 246, 218, 211, 72, 219, 211, 21, 208, 151, 246, 218, 231, 7, 224, 7,
+ 21, 209, 172, 21, 209, 173, 224, 3, 21, 209, 173, 220, 32, 208, 150, 21,
+ 209, 173, 220, 32, 208, 151, 224, 3, 21, 209, 173, 220, 32, 227, 98, 21,
+ 209, 173, 220, 32, 227, 99, 224, 3, 21, 209, 173, 248, 50, 227, 98, 21,
+ 223, 255, 230, 165, 21, 224, 1, 230, 165, 21, 222, 237, 21, 237, 145, 21,
+ 240, 213, 21, 212, 211, 236, 234, 211, 203, 21, 212, 211, 236, 234, 218,
+ 33, 21, 204, 98, 212, 211, 236, 234, 224, 6, 21, 239, 203, 212, 211, 236,
+ 234, 224, 6, 21, 212, 211, 208, 223, 239, 120, 204, 104, 21, 208, 134,
+ 211, 53, 211, 41, 21, 208, 134, 245, 86, 248, 120, 21, 208, 135, 207,
+ 137, 21, 206, 221, 248, 18, 208, 223, 239, 120, 236, 234, 230, 95, 21,
+ 227, 126, 245, 238, 21, 227, 126, 227, 195, 21, 227, 126, 227, 194, 21,
+ 227, 126, 227, 193, 21, 227, 126, 227, 192, 21, 227, 126, 227, 191, 21,
+ 227, 126, 227, 190, 21, 227, 126, 227, 189, 21, 240, 2, 21, 227, 45, 211,
+ 228, 21, 227, 46, 211, 228, 21, 227, 47, 237, 41, 21, 227, 47, 204, 23,
+ 21, 227, 47, 244, 24, 21, 227, 47, 237, 65, 222, 237, 21, 227, 47, 208,
+ 136, 21, 227, 47, 227, 125, 243, 198, 21, 245, 233, 21, 239, 102, 211,
+ 61, 21, 213, 143, 21, 245, 242, 21, 219, 76, 21, 240, 10, 224, 66, 21,
+ 240, 10, 224, 65, 21, 240, 10, 224, 64, 21, 240, 10, 224, 63, 21, 240,
+ 10, 224, 62, 21, 215, 197, 224, 66, 21, 215, 197, 224, 65, 21, 215, 197,
+ 224, 64, 21, 215, 197, 224, 63, 21, 215, 197, 224, 62, 21, 215, 197, 224,
+ 61, 21, 215, 197, 224, 60, 21, 215, 197, 224, 59, 21, 215, 197, 224, 73,
+ 21, 215, 197, 224, 72, 21, 215, 197, 224, 71, 21, 215, 197, 224, 70, 21,
+ 215, 197, 224, 69, 21, 215, 197, 224, 68, 21, 215, 197, 224, 67, 73, 72,
+ 4, 226, 184, 229, 100, 73, 72, 4, 226, 180, 173, 73, 72, 4, 226, 178,
+ 228, 209, 73, 72, 4, 226, 54, 229, 198, 73, 72, 4, 226, 24, 229, 201, 73,
+ 72, 4, 226, 43, 229, 6, 73, 72, 4, 226, 71, 229, 26, 73, 72, 4, 225, 196,
+ 228, 203, 73, 72, 4, 226, 175, 204, 30, 73, 72, 4, 226, 173, 204, 111,
+ 73, 72, 4, 226, 171, 203, 217, 73, 72, 4, 225, 249, 204, 55, 73, 72, 4,
+ 226, 1, 204, 62, 73, 72, 4, 226, 5, 203, 244, 73, 72, 4, 226, 74, 204, 0,
+ 73, 72, 4, 225, 181, 203, 213, 73, 72, 4, 225, 232, 204, 53, 73, 72, 4,
+ 226, 58, 203, 201, 73, 72, 4, 226, 70, 203, 203, 73, 72, 4, 225, 236,
+ 203, 202, 73, 72, 4, 226, 169, 224, 110, 73, 72, 4, 226, 167, 225, 122,
+ 73, 72, 4, 226, 165, 223, 219, 73, 72, 4, 226, 60, 224, 240, 73, 72, 4,
+ 226, 25, 224, 54, 73, 72, 4, 225, 221, 223, 243, 73, 72, 4, 225, 186,
+ 223, 237, 73, 72, 4, 226, 163, 248, 86, 73, 72, 4, 226, 160, 249, 32, 73,
+ 72, 4, 226, 158, 247, 193, 73, 72, 4, 225, 225, 248, 150, 73, 72, 4, 226,
+ 22, 248, 162, 73, 72, 4, 226, 16, 248, 10, 73, 72, 4, 225, 237, 248, 23,
+ 73, 72, 4, 226, 148, 75, 73, 72, 4, 226, 146, 63, 73, 72, 4, 226, 144,
+ 68, 73, 72, 4, 225, 212, 241, 161, 73, 72, 4, 226, 19, 74, 73, 72, 4,
+ 225, 210, 220, 18, 73, 72, 4, 225, 228, 78, 73, 72, 4, 225, 238, 241,
+ 145, 73, 72, 4, 225, 244, 231, 49, 73, 72, 4, 225, 240, 231, 49, 73, 72,
+ 4, 225, 180, 250, 231, 73, 72, 4, 225, 197, 241, 92, 73, 72, 4, 226, 133,
+ 212, 162, 73, 72, 4, 226, 131, 215, 36, 73, 72, 4, 226, 129, 211, 10, 73,
+ 72, 4, 225, 213, 214, 165, 73, 72, 4, 226, 3, 214, 177, 73, 72, 4, 225,
+ 239, 211, 250, 73, 72, 4, 226, 40, 212, 13, 73, 72, 4, 225, 179, 212,
+ 161, 73, 72, 4, 226, 119, 227, 148, 73, 72, 4, 226, 117, 228, 113, 73,
+ 72, 4, 226, 115, 226, 239, 73, 72, 4, 226, 35, 227, 226, 73, 72, 4, 226,
+ 46, 227, 234, 73, 72, 4, 226, 65, 227, 18, 73, 72, 4, 225, 222, 227, 49,
+ 73, 72, 4, 226, 9, 163, 227, 234, 73, 72, 4, 226, 141, 243, 233, 73, 72,
+ 4, 226, 138, 244, 212, 73, 72, 4, 226, 135, 242, 42, 73, 72, 4, 226, 30,
+ 244, 61, 73, 72, 4, 225, 195, 243, 90, 73, 72, 4, 225, 194, 243, 113, 73,
+ 72, 4, 226, 127, 209, 2, 73, 72, 4, 226, 124, 210, 22, 73, 72, 4, 226,
+ 122, 207, 203, 73, 72, 4, 226, 28, 209, 176, 73, 72, 4, 226, 64, 209,
+ 187, 73, 72, 4, 226, 15, 208, 148, 73, 72, 4, 226, 50, 135, 73, 72, 4,
+ 226, 113, 230, 141, 73, 72, 4, 226, 110, 230, 181, 73, 72, 4, 226, 108,
+ 230, 82, 73, 72, 4, 225, 218, 230, 159, 73, 72, 4, 226, 6, 230, 161, 73,
+ 72, 4, 225, 215, 230, 91, 73, 72, 4, 226, 56, 230, 101, 73, 72, 4, 225,
+ 200, 163, 230, 101, 73, 72, 4, 226, 106, 203, 11, 73, 72, 4, 226, 103,
+ 198, 73, 72, 4, 226, 101, 202, 213, 73, 72, 4, 226, 10, 203, 49, 73, 72,
+ 4, 226, 39, 203, 52, 73, 72, 4, 225, 234, 202, 232, 73, 72, 4, 225, 254,
+ 202, 247, 73, 72, 4, 226, 97, 240, 26, 73, 72, 4, 226, 95, 240, 108, 73,
+ 72, 4, 226, 93, 239, 108, 73, 72, 4, 226, 41, 240, 53, 73, 72, 4, 226,
+ 44, 240, 60, 73, 72, 4, 225, 242, 239, 175, 73, 72, 4, 226, 31, 239, 186,
+ 73, 72, 4, 225, 178, 239, 107, 73, 72, 4, 226, 18, 240, 81, 73, 72, 4,
+ 226, 91, 222, 68, 73, 72, 4, 226, 89, 223, 83, 73, 72, 4, 226, 87, 221,
+ 40, 73, 72, 4, 226, 2, 222, 230, 73, 72, 4, 225, 206, 221, 185, 73, 72,
+ 4, 225, 199, 237, 3, 73, 72, 4, 226, 82, 152, 73, 72, 4, 225, 189, 236,
+ 26, 73, 72, 4, 226, 85, 237, 48, 73, 72, 4, 226, 23, 237, 67, 73, 72, 4,
+ 226, 80, 236, 117, 73, 72, 4, 225, 235, 236, 136, 73, 72, 4, 226, 36,
+ 237, 47, 73, 72, 4, 225, 247, 236, 110, 73, 72, 4, 226, 66, 236, 238, 73,
+ 72, 4, 225, 245, 237, 126, 73, 72, 4, 226, 32, 236, 13, 73, 72, 4, 226,
+ 67, 237, 33, 73, 72, 4, 225, 182, 236, 120, 73, 72, 4, 226, 73, 236, 25,
+ 73, 72, 4, 226, 29, 222, 168, 73, 72, 4, 226, 78, 222, 182, 73, 72, 4,
+ 226, 37, 222, 165, 73, 72, 4, 226, 4, 222, 176, 73, 72, 4, 225, 229, 222,
+ 177, 73, 72, 4, 225, 219, 222, 166, 73, 72, 4, 225, 255, 222, 167, 73,
+ 72, 4, 225, 216, 222, 181, 73, 72, 4, 225, 248, 222, 164, 73, 72, 4, 226,
+ 33, 163, 222, 177, 73, 72, 4, 226, 13, 163, 222, 166, 73, 72, 4, 225,
+ 192, 163, 222, 167, 73, 72, 4, 225, 220, 238, 81, 73, 72, 4, 226, 8, 239,
+ 8, 73, 72, 4, 225, 207, 237, 230, 73, 72, 4, 225, 185, 238, 182, 73, 72,
+ 4, 225, 209, 237, 216, 73, 72, 4, 225, 208, 237, 226, 73, 72, 4, 225,
+ 191, 222, 187, 73, 72, 4, 226, 62, 222, 124, 73, 72, 4, 225, 198, 222,
+ 113, 73, 72, 4, 226, 51, 218, 167, 73, 72, 4, 226, 20, 185, 73, 72, 4,
+ 226, 69, 217, 191, 73, 72, 4, 226, 38, 219, 23, 73, 72, 4, 226, 68, 219,
+ 34, 73, 72, 4, 226, 17, 218, 45, 73, 72, 4, 226, 53, 218, 69, 73, 72, 4,
+ 225, 230, 225, 39, 73, 72, 4, 226, 57, 225, 54, 73, 72, 4, 225, 253, 225,
+ 33, 73, 72, 4, 226, 72, 225, 46, 73, 72, 4, 225, 187, 225, 46, 73, 72, 4,
+ 226, 47, 225, 47, 73, 72, 4, 225, 203, 225, 34, 73, 72, 4, 225, 201, 225,
+ 35, 73, 72, 4, 225, 188, 225, 27, 73, 72, 4, 225, 214, 163, 225, 47, 73,
+ 72, 4, 226, 14, 163, 225, 34, 73, 72, 4, 225, 233, 163, 225, 35, 73, 72,
+ 4, 225, 243, 228, 236, 73, 72, 4, 226, 27, 228, 244, 73, 72, 4, 226, 45,
+ 228, 232, 73, 72, 4, 226, 76, 228, 239, 73, 72, 4, 226, 11, 228, 240, 73,
+ 72, 4, 226, 7, 228, 234, 73, 72, 4, 225, 217, 228, 235, 73, 72, 4, 225,
+ 251, 238, 199, 73, 72, 4, 226, 63, 238, 207, 73, 72, 4, 225, 227, 238,
+ 194, 73, 72, 4, 226, 26, 238, 203, 73, 72, 4, 226, 12, 238, 204, 73, 72,
+ 4, 226, 48, 238, 195, 73, 72, 4, 226, 49, 238, 197, 73, 72, 4, 225, 204,
+ 216, 220, 73, 72, 4, 225, 252, 223, 10, 73, 72, 4, 225, 246, 223, 25, 73,
+ 72, 4, 225, 250, 222, 248, 73, 72, 4, 225, 184, 223, 16, 73, 72, 4, 226,
+ 0, 223, 17, 73, 72, 4, 226, 52, 222, 253, 73, 72, 4, 226, 55, 223, 1, 73,
+ 72, 4, 225, 223, 222, 48, 73, 72, 4, 225, 183, 222, 18, 73, 72, 4, 225,
+ 226, 222, 39, 73, 72, 4, 225, 241, 222, 22, 73, 72, 4, 225, 193, 205,
+ 230, 73, 72, 4, 225, 190, 206, 86, 73, 72, 4, 225, 224, 204, 163, 73, 72,
+ 4, 225, 202, 206, 50, 73, 72, 4, 226, 34, 206, 55, 73, 72, 4, 225, 231,
+ 205, 176, 73, 72, 4, 226, 42, 205, 189, 73, 72, 4, 225, 211, 220, 242,
+ 73, 72, 4, 226, 61, 221, 5, 73, 72, 4, 225, 205, 220, 224, 73, 72, 4,
+ 226, 21, 220, 253, 73, 72, 4, 226, 59, 220, 231, 73, 72, 17, 105, 73, 72,
+ 17, 108, 73, 72, 17, 147, 73, 72, 17, 149, 73, 72, 17, 170, 73, 72, 17,
+ 195, 73, 72, 17, 213, 111, 73, 72, 17, 199, 73, 72, 17, 222, 63, 73, 72,
+ 39, 42, 209, 174, 73, 72, 39, 42, 209, 147, 73, 72, 39, 42, 236, 10, 73,
+ 72, 39, 42, 209, 34, 73, 72, 39, 42, 209, 153, 209, 34, 73, 72, 39, 42,
+ 236, 12, 209, 34, 73, 72, 39, 42, 224, 113, 10, 13, 251, 30, 10, 13, 248,
+ 138, 10, 13, 230, 158, 10, 13, 244, 184, 10, 13, 204, 70, 10, 13, 202,
+ 107, 10, 13, 237, 148, 10, 13, 209, 251, 10, 13, 203, 47, 10, 13, 230,
+ 22, 10, 13, 228, 28, 10, 13, 225, 5, 10, 13, 221, 178, 10, 13, 214, 161,
+ 10, 13, 251, 59, 10, 13, 240, 47, 10, 13, 215, 28, 10, 13, 217, 119, 10,
+ 13, 216, 122, 10, 13, 213, 39, 10, 13, 209, 169, 10, 13, 209, 88, 10, 13,
+ 229, 140, 10, 13, 209, 100, 10, 13, 244, 207, 10, 13, 202, 110, 10, 13,
+ 238, 114, 10, 13, 243, 84, 248, 138, 10, 13, 243, 84, 221, 178, 10, 13,
+ 243, 84, 240, 47, 10, 13, 243, 84, 217, 119, 10, 13, 81, 248, 138, 10,
+ 13, 81, 230, 158, 10, 13, 81, 237, 43, 10, 13, 81, 237, 148, 10, 13, 81,
+ 203, 47, 10, 13, 81, 230, 22, 10, 13, 81, 228, 28, 10, 13, 81, 225, 5,
+ 10, 13, 81, 221, 178, 10, 13, 81, 214, 161, 10, 13, 81, 251, 59, 10, 13,
+ 81, 240, 47, 10, 13, 81, 215, 28, 10, 13, 81, 217, 119, 10, 13, 81, 213,
+ 39, 10, 13, 81, 209, 169, 10, 13, 81, 209, 88, 10, 13, 81, 229, 140, 10,
+ 13, 81, 244, 207, 10, 13, 81, 238, 114, 10, 13, 209, 247, 230, 158, 10,
+ 13, 209, 247, 237, 148, 10, 13, 209, 247, 203, 47, 10, 13, 209, 247, 228,
+ 28, 10, 13, 209, 247, 221, 178, 10, 13, 209, 247, 214, 161, 10, 13, 209,
+ 247, 251, 59, 10, 13, 209, 247, 215, 28, 10, 13, 209, 247, 217, 119, 10,
+ 13, 209, 247, 213, 39, 10, 13, 209, 247, 229, 140, 10, 13, 209, 247, 244,
+ 207, 10, 13, 209, 247, 238, 114, 10, 13, 209, 247, 243, 84, 221, 178, 10,
+ 13, 209, 247, 243, 84, 217, 119, 10, 13, 211, 40, 248, 138, 10, 13, 211,
+ 40, 230, 158, 10, 13, 211, 40, 237, 43, 10, 13, 211, 40, 237, 148, 10,
+ 13, 211, 40, 209, 251, 10, 13, 211, 40, 203, 47, 10, 13, 211, 40, 230,
+ 22, 10, 13, 211, 40, 225, 5, 10, 13, 211, 40, 221, 178, 10, 13, 211, 40,
+ 214, 161, 10, 13, 211, 40, 251, 59, 10, 13, 211, 40, 240, 47, 10, 13,
+ 211, 40, 215, 28, 10, 13, 211, 40, 217, 119, 10, 13, 211, 40, 213, 39,
+ 10, 13, 211, 40, 209, 169, 10, 13, 211, 40, 209, 88, 10, 13, 211, 40,
+ 229, 140, 10, 13, 211, 40, 244, 207, 10, 13, 211, 40, 202, 110, 10, 13,
+ 211, 40, 238, 114, 10, 13, 211, 40, 243, 84, 248, 138, 10, 13, 211, 40,
+ 243, 84, 240, 47, 10, 13, 227, 13, 251, 30, 10, 13, 227, 13, 248, 138,
+ 10, 13, 227, 13, 230, 158, 10, 13, 227, 13, 244, 184, 10, 13, 227, 13,
+ 237, 43, 10, 13, 227, 13, 204, 70, 10, 13, 227, 13, 202, 107, 10, 13,
+ 227, 13, 237, 148, 10, 13, 227, 13, 209, 251, 10, 13, 227, 13, 203, 47,
+ 10, 13, 227, 13, 228, 28, 10, 13, 227, 13, 225, 5, 10, 13, 227, 13, 221,
+ 178, 10, 13, 227, 13, 214, 161, 10, 13, 227, 13, 251, 59, 10, 13, 227,
+ 13, 240, 47, 10, 13, 227, 13, 215, 28, 10, 13, 227, 13, 217, 119, 10, 13,
+ 227, 13, 216, 122, 10, 13, 227, 13, 213, 39, 10, 13, 227, 13, 209, 169,
+ 10, 13, 227, 13, 209, 88, 10, 13, 227, 13, 229, 140, 10, 13, 227, 13,
+ 209, 100, 10, 13, 227, 13, 244, 207, 10, 13, 227, 13, 202, 110, 10, 13,
+ 227, 13, 238, 114, 10, 13, 169, 248, 138, 10, 13, 169, 230, 158, 10, 13,
+ 169, 244, 184, 10, 13, 169, 204, 70, 10, 13, 169, 202, 107, 10, 13, 169,
+ 237, 148, 10, 13, 169, 209, 251, 10, 13, 169, 203, 47, 10, 13, 169, 228,
+ 28, 10, 13, 169, 225, 5, 10, 13, 169, 221, 178, 10, 13, 169, 214, 161,
+ 10, 13, 169, 251, 59, 10, 13, 169, 240, 47, 10, 13, 169, 215, 28, 10, 13,
+ 169, 217, 119, 10, 13, 169, 216, 122, 10, 13, 169, 213, 39, 10, 13, 169,
+ 209, 169, 10, 13, 169, 209, 88, 10, 13, 169, 229, 140, 10, 13, 169, 209,
+ 100, 10, 13, 169, 244, 207, 10, 13, 169, 202, 110, 10, 13, 169, 238, 114,
+ 10, 13, 219, 255, 83, 3, 151, 3, 209, 209, 10, 13, 219, 255, 151, 3, 244,
+ 184, 225, 142, 99, 241, 176, 204, 16, 225, 142, 99, 211, 238, 204, 16,
+ 225, 142, 99, 204, 46, 204, 16, 225, 142, 99, 153, 204, 16, 225, 142, 99,
+ 216, 138, 242, 61, 225, 142, 99, 237, 244, 242, 61, 225, 142, 99, 61,
+ 242, 61, 225, 142, 99, 118, 76, 246, 181, 225, 142, 99, 120, 76, 246,
+ 181, 225, 142, 99, 126, 76, 246, 181, 225, 142, 99, 239, 147, 76, 246,
+ 181, 225, 142, 99, 239, 233, 76, 246, 181, 225, 142, 99, 212, 88, 76,
+ 246, 181, 225, 142, 99, 213, 112, 76, 246, 181, 225, 142, 99, 241, 143,
+ 76, 246, 181, 225, 142, 99, 222, 64, 76, 246, 181, 225, 142, 99, 118, 76,
+ 248, 243, 225, 142, 99, 120, 76, 248, 243, 225, 142, 99, 126, 76, 248,
+ 243, 225, 142, 99, 239, 147, 76, 248, 243, 225, 142, 99, 239, 233, 76,
+ 248, 243, 225, 142, 99, 212, 88, 76, 248, 243, 225, 142, 99, 213, 112,
+ 76, 248, 243, 225, 142, 99, 241, 143, 76, 248, 243, 225, 142, 99, 222,
+ 64, 76, 248, 243, 225, 142, 99, 118, 76, 246, 58, 225, 142, 99, 120, 76,
+ 246, 58, 225, 142, 99, 126, 76, 246, 58, 225, 142, 99, 239, 147, 76, 246,
+ 58, 225, 142, 99, 239, 233, 76, 246, 58, 225, 142, 99, 212, 88, 76, 246,
+ 58, 225, 142, 99, 213, 112, 76, 246, 58, 225, 142, 99, 241, 143, 76, 246,
+ 58, 225, 142, 99, 222, 64, 76, 246, 58, 225, 142, 99, 218, 79, 225, 142,
+ 99, 219, 242, 225, 142, 99, 248, 244, 225, 142, 99, 246, 99, 225, 142,
+ 99, 211, 183, 225, 142, 99, 210, 216, 225, 142, 99, 250, 21, 225, 142,
+ 99, 204, 7, 225, 142, 99, 230, 94, 225, 142, 99, 249, 25, 161, 99, 236,
+ 106, 249, 25, 161, 99, 236, 104, 161, 99, 236, 103, 161, 99, 236, 102,
+ 161, 99, 236, 101, 161, 99, 236, 100, 161, 99, 236, 99, 161, 99, 236, 98,
+ 161, 99, 236, 97, 161, 99, 236, 96, 161, 99, 236, 95, 161, 99, 236, 94,
+ 161, 99, 236, 93, 161, 99, 236, 92, 161, 99, 236, 91, 161, 99, 236, 90,
+ 161, 99, 236, 89, 161, 99, 236, 88, 161, 99, 236, 87, 161, 99, 236, 86,
+ 161, 99, 236, 85, 161, 99, 236, 84, 161, 99, 236, 83, 161, 99, 236, 82,
+ 161, 99, 236, 81, 161, 99, 236, 80, 161, 99, 236, 79, 161, 99, 236, 78,
+ 161, 99, 236, 77, 161, 99, 236, 76, 161, 99, 236, 75, 161, 99, 236, 74,
+ 161, 99, 236, 73, 161, 99, 236, 72, 161, 99, 236, 71, 161, 99, 236, 70,
+ 161, 99, 236, 69, 161, 99, 236, 68, 161, 99, 236, 67, 161, 99, 236, 66,
+ 161, 99, 236, 65, 161, 99, 236, 64, 161, 99, 236, 63, 161, 99, 236, 62,
+ 161, 99, 236, 61, 161, 99, 236, 60, 161, 99, 236, 59, 161, 99, 236, 58,
+ 161, 99, 236, 57, 161, 99, 236, 56, 161, 99, 80, 249, 25, 161, 99, 206,
+ 37, 161, 99, 206, 36, 161, 99, 206, 35, 161, 99, 206, 34, 161, 99, 206,
+ 33, 161, 99, 206, 32, 161, 99, 206, 31, 161, 99, 206, 30, 161, 99, 206,
+ 29, 161, 99, 206, 28, 161, 99, 206, 27, 161, 99, 206, 26, 161, 99, 206,
+ 25, 161, 99, 206, 24, 161, 99, 206, 23, 161, 99, 206, 22, 161, 99, 206,
+ 21, 161, 99, 206, 20, 161, 99, 206, 19, 161, 99, 206, 18, 161, 99, 206,
+ 17, 161, 99, 206, 16, 161, 99, 206, 15, 161, 99, 206, 14, 161, 99, 206,
+ 13, 161, 99, 206, 12, 161, 99, 206, 11, 161, 99, 206, 10, 161, 99, 206,
+ 9, 161, 99, 206, 8, 161, 99, 206, 7, 161, 99, 206, 6, 161, 99, 206, 5,
+ 161, 99, 206, 4, 161, 99, 206, 3, 161, 99, 206, 2, 161, 99, 206, 1, 161,
+ 99, 206, 0, 161, 99, 205, 255, 161, 99, 205, 254, 161, 99, 205, 253, 161,
+ 99, 205, 252, 161, 99, 205, 251, 161, 99, 205, 250, 161, 99, 205, 249,
+ 161, 99, 205, 248, 161, 99, 205, 247, 161, 99, 205, 246, 161, 99, 205,
+ 245, 218, 88, 247, 38, 249, 25, 218, 88, 247, 38, 251, 132, 76, 211, 225,
+ 218, 88, 247, 38, 120, 76, 211, 225, 218, 88, 247, 38, 126, 76, 211, 225,
+ 218, 88, 247, 38, 239, 147, 76, 211, 225, 218, 88, 247, 38, 239, 233, 76,
+ 211, 225, 218, 88, 247, 38, 212, 88, 76, 211, 225, 218, 88, 247, 38, 213,
+ 112, 76, 211, 225, 218, 88, 247, 38, 241, 143, 76, 211, 225, 218, 88,
+ 247, 38, 222, 64, 76, 211, 225, 218, 88, 247, 38, 209, 153, 76, 211, 225,
+ 218, 88, 247, 38, 230, 179, 76, 211, 225, 218, 88, 247, 38, 229, 32, 76,
+ 211, 225, 218, 88, 247, 38, 217, 49, 76, 211, 225, 218, 88, 247, 38, 229,
+ 82, 76, 211, 225, 218, 88, 247, 38, 251, 132, 76, 237, 53, 218, 88, 247,
+ 38, 120, 76, 237, 53, 218, 88, 247, 38, 126, 76, 237, 53, 218, 88, 247,
+ 38, 239, 147, 76, 237, 53, 218, 88, 247, 38, 239, 233, 76, 237, 53, 218,
+ 88, 247, 38, 212, 88, 76, 237, 53, 218, 88, 247, 38, 213, 112, 76, 237,
+ 53, 218, 88, 247, 38, 241, 143, 76, 237, 53, 218, 88, 247, 38, 222, 64,
+ 76, 237, 53, 218, 88, 247, 38, 209, 153, 76, 237, 53, 218, 88, 247, 38,
+ 230, 179, 76, 237, 53, 218, 88, 247, 38, 229, 32, 76, 237, 53, 218, 88,
+ 247, 38, 217, 49, 76, 237, 53, 218, 88, 247, 38, 229, 82, 76, 237, 53,
+ 218, 88, 247, 38, 216, 138, 230, 94, 218, 88, 247, 38, 251, 132, 76, 243,
+ 220, 218, 88, 247, 38, 120, 76, 243, 220, 218, 88, 247, 38, 126, 76, 243,
+ 220, 218, 88, 247, 38, 239, 147, 76, 243, 220, 218, 88, 247, 38, 239,
+ 233, 76, 243, 220, 218, 88, 247, 38, 212, 88, 76, 243, 220, 218, 88, 247,
+ 38, 213, 112, 76, 243, 220, 218, 88, 247, 38, 241, 143, 76, 243, 220,
+ 218, 88, 247, 38, 222, 64, 76, 243, 220, 218, 88, 247, 38, 209, 153, 76,
+ 243, 220, 218, 88, 247, 38, 230, 179, 76, 243, 220, 218, 88, 247, 38,
+ 229, 32, 76, 243, 220, 218, 88, 247, 38, 217, 49, 76, 243, 220, 218, 88,
+ 247, 38, 229, 82, 76, 243, 220, 218, 88, 247, 38, 62, 230, 94, 218, 88,
+ 247, 38, 251, 132, 76, 246, 2, 218, 88, 247, 38, 120, 76, 246, 2, 218,
+ 88, 247, 38, 126, 76, 246, 2, 218, 88, 247, 38, 239, 147, 76, 246, 2,
+ 218, 88, 247, 38, 239, 233, 76, 246, 2, 218, 88, 247, 38, 212, 88, 76,
+ 246, 2, 218, 88, 247, 38, 213, 112, 76, 246, 2, 218, 88, 247, 38, 241,
+ 143, 76, 246, 2, 218, 88, 247, 38, 222, 64, 76, 246, 2, 218, 88, 247, 38,
+ 209, 153, 76, 246, 2, 218, 88, 247, 38, 230, 179, 76, 246, 2, 218, 88,
+ 247, 38, 229, 32, 76, 246, 2, 218, 88, 247, 38, 217, 49, 76, 246, 2, 218,
+ 88, 247, 38, 229, 82, 76, 246, 2, 218, 88, 247, 38, 61, 230, 94, 218, 88,
+ 247, 38, 239, 173, 218, 88, 247, 38, 208, 48, 218, 88, 247, 38, 208, 37,
+ 218, 88, 247, 38, 208, 34, 218, 88, 247, 38, 208, 33, 218, 88, 247, 38,
+ 208, 32, 218, 88, 247, 38, 208, 31, 218, 88, 247, 38, 208, 30, 218, 88,
+ 247, 38, 208, 29, 218, 88, 247, 38, 208, 28, 218, 88, 247, 38, 208, 47,
+ 218, 88, 247, 38, 208, 46, 218, 88, 247, 38, 208, 45, 218, 88, 247, 38,
+ 208, 44, 218, 88, 247, 38, 208, 43, 218, 88, 247, 38, 208, 42, 218, 88,
+ 247, 38, 208, 41, 218, 88, 247, 38, 208, 40, 218, 88, 247, 38, 208, 39,
+ 218, 88, 247, 38, 208, 38, 218, 88, 247, 38, 208, 36, 218, 88, 247, 38,
+ 208, 35, 17, 202, 85, 239, 102, 211, 61, 17, 202, 85, 245, 233, 17, 118,
+ 245, 233, 17, 120, 245, 233, 17, 126, 245, 233, 17, 239, 147, 245, 233,
+ 17, 239, 233, 245, 233, 17, 212, 88, 245, 233, 17, 213, 112, 245, 233,
+ 17, 241, 143, 245, 233, 17, 222, 64, 245, 233, 243, 174, 43, 41, 17, 202,
+ 84, 243, 174, 182, 43, 41, 17, 202, 84, 102, 8, 6, 1, 63, 102, 8, 6, 1,
+ 249, 255, 102, 8, 6, 1, 247, 125, 102, 8, 6, 1, 245, 51, 102, 8, 6, 1,
+ 74, 102, 8, 6, 1, 240, 174, 102, 8, 6, 1, 239, 75, 102, 8, 6, 1, 237,
+ 171, 102, 8, 6, 1, 75, 102, 8, 6, 1, 230, 184, 102, 8, 6, 1, 230, 54,
+ 102, 8, 6, 1, 159, 102, 8, 6, 1, 226, 185, 102, 8, 6, 1, 223, 163, 102,
+ 8, 6, 1, 78, 102, 8, 6, 1, 219, 184, 102, 8, 6, 1, 217, 134, 102, 8, 6,
+ 1, 146, 102, 8, 6, 1, 194, 102, 8, 6, 1, 210, 69, 102, 8, 6, 1, 68, 102,
+ 8, 6, 1, 206, 164, 102, 8, 6, 1, 204, 144, 102, 8, 6, 1, 203, 196, 102,
+ 8, 6, 1, 203, 124, 102, 8, 6, 1, 202, 159, 208, 133, 213, 33, 247, 226,
+ 8, 6, 1, 194, 43, 37, 8, 6, 1, 247, 125, 43, 37, 8, 6, 1, 146, 43, 246,
+ 239, 43, 203, 198, 103, 8, 6, 1, 63, 103, 8, 6, 1, 249, 255, 103, 8, 6,
+ 1, 247, 125, 103, 8, 6, 1, 245, 51, 103, 8, 6, 1, 74, 103, 8, 6, 1, 240,
+ 174, 103, 8, 6, 1, 239, 75, 103, 8, 6, 1, 237, 171, 103, 8, 6, 1, 75,
+ 103, 8, 6, 1, 230, 184, 103, 8, 6, 1, 230, 54, 103, 8, 6, 1, 159, 103, 8,
+ 6, 1, 226, 185, 103, 8, 6, 1, 223, 163, 103, 8, 6, 1, 78, 103, 8, 6, 1,
+ 219, 184, 103, 8, 6, 1, 217, 134, 103, 8, 6, 1, 146, 103, 8, 6, 1, 194,
+ 103, 8, 6, 1, 210, 69, 103, 8, 6, 1, 68, 103, 8, 6, 1, 206, 164, 103, 8,
+ 6, 1, 204, 144, 103, 8, 6, 1, 203, 196, 103, 8, 6, 1, 203, 124, 103, 8,
+ 6, 1, 202, 159, 103, 235, 255, 103, 223, 187, 103, 214, 179, 103, 211,
+ 167, 103, 218, 10, 103, 204, 63, 182, 43, 8, 6, 1, 63, 182, 43, 8, 6, 1,
+ 249, 255, 182, 43, 8, 6, 1, 247, 125, 182, 43, 8, 6, 1, 245, 51, 182, 43,
+ 8, 6, 1, 74, 182, 43, 8, 6, 1, 240, 174, 182, 43, 8, 6, 1, 239, 75, 182,
+ 43, 8, 6, 1, 237, 171, 182, 43, 8, 6, 1, 75, 182, 43, 8, 6, 1, 230, 184,
+ 182, 43, 8, 6, 1, 230, 54, 182, 43, 8, 6, 1, 159, 182, 43, 8, 6, 1, 226,
+ 185, 182, 43, 8, 6, 1, 223, 163, 182, 43, 8, 6, 1, 78, 182, 43, 8, 6, 1,
+ 219, 184, 182, 43, 8, 6, 1, 217, 134, 182, 43, 8, 6, 1, 146, 182, 43, 8,
+ 6, 1, 194, 182, 43, 8, 6, 1, 210, 69, 182, 43, 8, 6, 1, 68, 182, 43, 8,
+ 6, 1, 206, 164, 182, 43, 8, 6, 1, 204, 144, 182, 43, 8, 6, 1, 203, 196,
+ 182, 43, 8, 6, 1, 203, 124, 182, 43, 8, 6, 1, 202, 159, 216, 188, 225,
+ 26, 54, 216, 188, 225, 23, 54, 182, 103, 8, 6, 1, 63, 182, 103, 8, 6, 1,
+ 249, 255, 182, 103, 8, 6, 1, 247, 125, 182, 103, 8, 6, 1, 245, 51, 182,
+ 103, 8, 6, 1, 74, 182, 103, 8, 6, 1, 240, 174, 182, 103, 8, 6, 1, 239,
+ 75, 182, 103, 8, 6, 1, 237, 171, 182, 103, 8, 6, 1, 75, 182, 103, 8, 6,
+ 1, 230, 184, 182, 103, 8, 6, 1, 230, 54, 182, 103, 8, 6, 1, 159, 182,
+ 103, 8, 6, 1, 226, 185, 182, 103, 8, 6, 1, 223, 163, 182, 103, 8, 6, 1,
+ 78, 182, 103, 8, 6, 1, 219, 184, 182, 103, 8, 6, 1, 217, 134, 182, 103,
+ 8, 6, 1, 146, 182, 103, 8, 6, 1, 194, 182, 103, 8, 6, 1, 210, 69, 182,
+ 103, 8, 6, 1, 68, 182, 103, 8, 6, 1, 206, 164, 182, 103, 8, 6, 1, 204,
+ 144, 182, 103, 8, 6, 1, 203, 196, 182, 103, 8, 6, 1, 203, 124, 182, 103,
+ 8, 6, 1, 202, 159, 245, 128, 182, 103, 8, 6, 1, 219, 184, 182, 103, 235,
+ 164, 182, 103, 185, 182, 103, 215, 36, 182, 103, 251, 232, 182, 103, 204,
+ 63, 51, 243, 132, 103, 246, 42, 103, 245, 176, 103, 239, 129, 103, 235,
+ 155, 103, 222, 213, 103, 222, 205, 103, 220, 51, 103, 211, 245, 103, 112,
+ 3, 240, 212, 82, 103, 205, 166, 216, 130, 231, 32, 16, 1, 63, 216, 130,
+ 231, 32, 16, 1, 249, 255, 216, 130, 231, 32, 16, 1, 247, 125, 216, 130,
+ 231, 32, 16, 1, 245, 51, 216, 130, 231, 32, 16, 1, 74, 216, 130, 231, 32,
+ 16, 1, 240, 174, 216, 130, 231, 32, 16, 1, 239, 75, 216, 130, 231, 32,
+ 16, 1, 237, 171, 216, 130, 231, 32, 16, 1, 75, 216, 130, 231, 32, 16, 1,
+ 230, 184, 216, 130, 231, 32, 16, 1, 230, 54, 216, 130, 231, 32, 16, 1,
+ 159, 216, 130, 231, 32, 16, 1, 226, 185, 216, 130, 231, 32, 16, 1, 223,
+ 163, 216, 130, 231, 32, 16, 1, 78, 216, 130, 231, 32, 16, 1, 219, 184,
+ 216, 130, 231, 32, 16, 1, 217, 134, 216, 130, 231, 32, 16, 1, 146, 216,
+ 130, 231, 32, 16, 1, 194, 216, 130, 231, 32, 16, 1, 210, 69, 216, 130,
+ 231, 32, 16, 1, 68, 216, 130, 231, 32, 16, 1, 206, 164, 216, 130, 231,
+ 32, 16, 1, 204, 144, 216, 130, 231, 32, 16, 1, 203, 196, 216, 130, 231,
+ 32, 16, 1, 203, 124, 216, 130, 231, 32, 16, 1, 202, 159, 51, 172, 236,
+ 130, 103, 67, 229, 14, 103, 67, 215, 36, 103, 12, 206, 239, 233, 100,
+ 103, 12, 206, 239, 233, 104, 103, 12, 206, 239, 233, 112, 103, 67, 244,
+ 75, 103, 12, 206, 239, 233, 119, 103, 12, 206, 239, 233, 106, 103, 12,
+ 206, 239, 233, 78, 103, 12, 206, 239, 233, 105, 103, 12, 206, 239, 233,
+ 118, 103, 12, 206, 239, 233, 92, 103, 12, 206, 239, 233, 85, 103, 12,
+ 206, 239, 233, 94, 103, 12, 206, 239, 233, 115, 103, 12, 206, 239, 233,
+ 101, 103, 12, 206, 239, 233, 117, 103, 12, 206, 239, 233, 93, 103, 12,
+ 206, 239, 233, 116, 103, 12, 206, 239, 233, 79, 103, 12, 206, 239, 233,
+ 84, 103, 12, 206, 239, 233, 77, 103, 12, 206, 239, 233, 107, 103, 12,
+ 206, 239, 233, 109, 103, 12, 206, 239, 233, 87, 103, 12, 206, 239, 233,
+ 98, 103, 12, 206, 239, 233, 96, 103, 12, 206, 239, 233, 122, 103, 12,
+ 206, 239, 233, 121, 103, 12, 206, 239, 233, 75, 103, 12, 206, 239, 233,
+ 102, 103, 12, 206, 239, 233, 120, 103, 12, 206, 239, 233, 111, 103, 12,
+ 206, 239, 233, 97, 103, 12, 206, 239, 233, 76, 103, 12, 206, 239, 233,
+ 99, 103, 12, 206, 239, 233, 81, 103, 12, 206, 239, 233, 80, 103, 12, 206,
+ 239, 233, 110, 103, 12, 206, 239, 233, 88, 103, 12, 206, 239, 233, 90,
+ 103, 12, 206, 239, 233, 91, 103, 12, 206, 239, 233, 83, 103, 12, 206,
+ 239, 233, 114, 103, 12, 206, 239, 233, 108, 208, 133, 213, 33, 247, 226,
+ 12, 206, 239, 233, 89, 208, 133, 213, 33, 247, 226, 12, 206, 239, 233,
+ 121, 208, 133, 213, 33, 247, 226, 12, 206, 239, 233, 119, 208, 133, 213,
+ 33, 247, 226, 12, 206, 239, 233, 103, 208, 133, 213, 33, 247, 226, 12,
+ 206, 239, 233, 86, 208, 133, 213, 33, 247, 226, 12, 206, 239, 233, 99,
+ 208, 133, 213, 33, 247, 226, 12, 206, 239, 233, 82, 208, 133, 213, 33,
+ 247, 226, 12, 206, 239, 233, 113, 208, 133, 213, 33, 247, 226, 12, 206,
+ 239, 233, 95, 43, 189, 251, 111, 43, 189, 251, 136, 245, 62, 239, 184,
+ 246, 16, 207, 3, 222, 80, 3, 211, 91, 210, 209, 115, 224, 11, 210, 208,
+ 246, 46, 250, 50, 242, 17, 210, 207, 115, 247, 182, 216, 189, 247, 208,
+ 250, 50, 222, 79, 204, 81, 204, 75, 205, 181, 224, 118, 204, 65, 241,
+ 180, 238, 46, 240, 228, 241, 180, 238, 46, 250, 238, 241, 180, 238, 46,
+ 250, 68, 238, 46, 3, 224, 231, 222, 214, 224, 30, 97, 204, 67, 245, 139,
+ 224, 30, 97, 239, 245, 217, 56, 224, 30, 97, 204, 67, 238, 77, 224, 30,
+ 97, 239, 102, 224, 30, 97, 204, 94, 238, 77, 224, 30, 97, 228, 1, 217,
+ 56, 224, 30, 97, 204, 94, 245, 139, 224, 30, 97, 245, 139, 224, 29, 222,
+ 214, 224, 30, 3, 240, 102, 239, 245, 217, 56, 224, 30, 3, 240, 102, 228,
+ 1, 217, 56, 224, 30, 3, 240, 102, 239, 102, 224, 30, 3, 240, 102, 210,
+ 215, 3, 240, 102, 238, 44, 211, 94, 212, 233, 211, 94, 209, 80, 62, 242,
+ 49, 61, 210, 214, 61, 210, 215, 3, 5, 246, 7, 61, 210, 215, 248, 135,
+ 246, 7, 61, 210, 215, 248, 135, 246, 8, 3, 216, 190, 246, 8, 3, 216, 190,
+ 246, 8, 3, 212, 19, 246, 8, 3, 227, 131, 246, 8, 3, 208, 137, 239, 185,
+ 204, 17, 248, 27, 240, 102, 236, 47, 243, 102, 210, 2, 247, 158, 246,
+ 148, 214, 163, 240, 222, 208, 95, 244, 69, 208, 95, 219, 135, 208, 95,
+ 247, 85, 236, 47, 218, 248, 207, 193, 246, 152, 248, 30, 215, 202, 237,
+ 2, 210, 212, 248, 30, 241, 184, 76, 225, 131, 241, 184, 76, 216, 52, 237,
+ 28, 239, 147, 227, 230, 246, 6, 225, 104, 227, 229, 240, 85, 227, 229,
+ 227, 230, 239, 192, 231, 50, 204, 16, 223, 196, 208, 165, 250, 33, 238,
+ 5, 224, 249, 204, 79, 209, 225, 227, 199, 248, 239, 218, 120, 216, 138,
+ 250, 157, 237, 244, 250, 157, 219, 29, 219, 31, 246, 153, 211, 45, 237,
+ 132, 212, 51, 76, 218, 100, 225, 16, 220, 32, 248, 11, 218, 21, 227, 210,
+ 216, 53, 245, 145, 216, 53, 248, 251, 245, 179, 216, 52, 245, 89, 25,
+ 216, 52, 211, 79, 247, 237, 211, 224, 247, 219, 239, 128, 239, 124, 215,
+ 223, 210, 165, 218, 23, 244, 163, 220, 75, 210, 183, 239, 125, 212, 204,
+ 239, 244, 247, 79, 3, 210, 158, 244, 13, 212, 7, 235, 163, 245, 143, 213,
+ 51, 235, 162, 235, 163, 245, 143, 242, 73, 245, 178, 246, 114, 142, 247,
+ 51, 227, 32, 245, 81, 236, 119, 218, 25, 212, 217, 248, 116, 247, 233,
+ 218, 26, 76, 239, 174, 245, 177, 239, 163, 25, 229, 33, 209, 184, 204, 3,
+ 237, 102, 215, 13, 247, 250, 25, 245, 99, 204, 13, 238, 49, 245, 251,
+ 238, 49, 208, 51, 242, 54, 248, 146, 223, 235, 246, 23, 248, 146, 223,
+ 234, 249, 28, 247, 249, 239, 163, 25, 229, 34, 3, 218, 89, 247, 250, 3,
+ 218, 38, 245, 167, 218, 40, 216, 54, 203, 227, 217, 242, 248, 58, 247,
+ 78, 230, 178, 246, 106, 208, 95, 240, 68, 246, 105, 239, 247, 239, 248,
+ 211, 222, 248, 250, 219, 66, 218, 39, 245, 215, 248, 251, 209, 229, 208,
+ 95, 245, 128, 239, 219, 218, 121, 244, 66, 230, 169, 243, 96, 247, 27,
+ 211, 44, 204, 17, 246, 130, 224, 30, 205, 217, 246, 204, 214, 196, 214,
+ 223, 238, 11, 247, 48, 237, 56, 3, 208, 211, 220, 32, 209, 93, 227, 222,
+ 247, 243, 76, 239, 196, 224, 119, 225, 13, 216, 110, 216, 54, 31, 229,
+ 150, 3, 230, 177, 211, 15, 224, 152, 227, 167, 212, 49, 245, 184, 229,
+ 30, 248, 158, 250, 78, 31, 221, 155, 248, 158, 244, 19, 31, 221, 155,
+ 240, 6, 239, 133, 251, 114, 208, 252, 247, 28, 236, 49, 240, 35, 204, 36,
+ 215, 213, 245, 252, 239, 239, 218, 54, 25, 239, 243, 224, 152, 223, 253,
+ 247, 65, 246, 65, 237, 60, 250, 85, 219, 138, 208, 145, 237, 83, 246, 51,
+ 209, 144, 208, 253, 246, 37, 248, 20, 218, 241, 250, 84, 205, 226, 238,
+ 238, 243, 167, 236, 230, 212, 42, 225, 172, 248, 69, 238, 239, 243, 213,
+ 247, 236, 239, 198, 218, 88, 247, 36, 31, 221, 160, 223, 226, 31, 221,
+ 155, 214, 209, 237, 214, 31, 229, 149, 208, 27, 205, 206, 31, 214, 189,
+ 215, 126, 212, 246, 3, 214, 226, 209, 149, 216, 209, 25, 248, 251, 212,
+ 67, 25, 212, 67, 248, 4, 248, 213, 25, 236, 112, 246, 154, 239, 225, 212,
+ 18, 215, 127, 210, 188, 211, 189, 225, 13, 208, 52, 236, 50, 216, 210,
+ 250, 239, 239, 171, 215, 139, 239, 171, 210, 160, 204, 51, 227, 136, 238,
+ 30, 216, 211, 224, 18, 216, 211, 247, 39, 245, 136, 248, 210, 25, 248,
+ 251, 205, 180, 240, 25, 236, 133, 211, 73, 25, 248, 251, 235, 163, 236,
+ 133, 211, 73, 25, 217, 184, 210, 9, 209, 149, 219, 156, 25, 248, 251,
+ 212, 20, 247, 44, 224, 12, 247, 63, 248, 161, 3, 207, 3, 247, 184, 245,
+ 198, 236, 39, 247, 182, 246, 45, 244, 23, 236, 39, 247, 183, 246, 35,
+ 247, 183, 244, 15, 244, 16, 230, 208, 223, 67, 219, 72, 211, 104, 236,
+ 39, 247, 183, 236, 39, 3, 238, 222, 220, 67, 247, 183, 230, 169, 218, 31,
+ 220, 66, 240, 227, 218, 31, 220, 66, 236, 48, 248, 235, 250, 23, 209,
+ 157, 225, 172, 236, 44, 227, 1, 236, 44, 245, 182, 211, 57, 214, 195,
+ 244, 26, 211, 57, 240, 91, 230, 189, 228, 13, 230, 169, 247, 19, 240,
+ 227, 247, 19, 61, 219, 3, 62, 219, 3, 204, 73, 61, 239, 225, 204, 73, 62,
+ 239, 225, 215, 201, 62, 215, 201, 228, 105, 249, 12, 216, 209, 25, 212,
+ 183, 247, 241, 25, 47, 250, 234, 241, 98, 65, 239, 234, 207, 119, 241,
+ 98, 65, 239, 234, 207, 116, 241, 98, 65, 239, 234, 207, 114, 241, 98, 65,
+ 239, 234, 207, 112, 241, 98, 65, 239, 234, 207, 110, 216, 172, 224, 9,
+ 219, 193, 204, 81, 247, 188, 245, 149, 208, 245, 227, 183, 216, 212, 247,
+ 17, 242, 61, 245, 135, 204, 39, 212, 26, 212, 24, 236, 49, 216, 184, 238,
+ 35, 213, 37, 224, 48, 215, 205, 246, 140, 243, 102, 218, 131, 248, 21,
+ 241, 114, 220, 78, 211, 202, 213, 32, 247, 187, 250, 198, 236, 118, 228,
+ 98, 248, 144, 239, 243, 208, 51, 239, 243, 248, 28, 207, 171, 237, 81,
+ 246, 141, 249, 28, 246, 141, 239, 118, 249, 28, 246, 141, 248, 60, 219,
+ 5, 229, 24, 218, 44, 242, 51, 247, 67, 249, 17, 247, 67, 243, 95, 224,
+ 10, 240, 102, 245, 150, 240, 102, 208, 246, 240, 102, 216, 213, 240, 102,
+ 247, 18, 240, 102, 242, 62, 240, 102, 211, 187, 204, 39, 236, 50, 240,
+ 102, 224, 49, 240, 102, 243, 103, 240, 102, 218, 132, 240, 102, 239, 122,
+ 240, 102, 237, 129, 240, 102, 203, 253, 240, 102, 248, 156, 240, 102,
+ 219, 120, 240, 102, 218, 132, 221, 167, 219, 46, 217, 230, 246, 125, 240,
+ 184, 240, 191, 241, 183, 221, 167, 224, 7, 208, 150, 61, 112, 218, 59,
+ 249, 23, 231, 35, 61, 121, 218, 59, 249, 23, 231, 35, 61, 49, 218, 59,
+ 249, 23, 231, 35, 61, 50, 218, 59, 249, 23, 231, 35, 239, 237, 237, 124,
+ 54, 204, 73, 237, 124, 54, 220, 52, 237, 124, 54, 209, 20, 112, 54, 209,
+ 20, 121, 54, 246, 36, 237, 100, 54, 171, 237, 100, 54, 245, 122, 203,
+ 249, 237, 83, 240, 187, 222, 236, 210, 68, 230, 160, 242, 56, 229, 85,
+ 248, 71, 203, 249, 246, 9, 217, 165, 237, 103, 218, 22, 225, 112, 212,
+ 239, 250, 46, 212, 239, 236, 243, 212, 239, 203, 249, 214, 240, 203, 249,
+ 248, 3, 239, 169, 247, 150, 231, 50, 212, 136, 247, 149, 231, 50, 212,
+ 136, 247, 232, 238, 60, 225, 122, 203, 250, 240, 82, 225, 123, 25, 203,
+ 251, 236, 127, 237, 99, 120, 224, 241, 236, 127, 237, 99, 120, 203, 248,
+ 236, 127, 237, 99, 218, 51, 220, 65, 203, 251, 3, 247, 168, 241, 181,
+ 247, 209, 3, 206, 46, 218, 230, 3, 248, 32, 237, 145, 225, 123, 3, 237,
+ 227, 218, 168, 225, 108, 225, 123, 3, 207, 180, 220, 44, 225, 122, 220,
+ 44, 203, 250, 249, 27, 245, 199, 203, 234, 217, 235, 230, 169, 220, 61,
+ 230, 169, 238, 34, 238, 89, 249, 28, 250, 221, 240, 196, 251, 20, 251,
+ 21, 224, 39, 231, 55, 212, 62, 231, 25, 244, 12, 218, 229, 237, 221, 244,
+ 167, 227, 97, 223, 91, 218, 50, 240, 103, 225, 74, 237, 144, 248, 229,
+ 218, 53, 210, 88, 218, 124, 229, 67, 82, 227, 1, 227, 174, 215, 252, 238,
+ 180, 211, 63, 229, 66, 247, 242, 245, 152, 3, 237, 55, 204, 58, 248, 154,
+ 237, 55, 247, 203, 237, 55, 120, 237, 53, 211, 220, 237, 55, 237, 237,
+ 237, 55, 237, 56, 3, 47, 248, 26, 237, 55, 237, 244, 237, 55, 203, 45,
+ 237, 55, 217, 166, 237, 55, 237, 56, 3, 216, 54, 216, 67, 237, 53, 237,
+ 56, 244, 66, 243, 222, 213, 63, 3, 34, 70, 231, 6, 241, 117, 157, 247,
+ 180, 250, 220, 97, 248, 12, 212, 54, 97, 245, 244, 97, 211, 196, 210,
+ 167, 97, 242, 49, 244, 145, 97, 218, 125, 76, 218, 45, 239, 210, 248, 83,
+ 243, 133, 97, 211, 212, 248, 250, 209, 38, 248, 250, 61, 239, 197, 236,
+ 12, 218, 57, 97, 224, 53, 249, 10, 245, 92, 240, 214, 79, 243, 97, 54,
+ 245, 141, 247, 37, 248, 234, 3, 203, 43, 54, 248, 234, 3, 243, 97, 54,
+ 248, 234, 3, 240, 230, 54, 248, 234, 3, 218, 20, 54, 224, 53, 3, 204, 11,
+ 246, 178, 3, 177, 208, 91, 25, 203, 43, 54, 214, 174, 218, 228, 245, 220,
+ 247, 207, 224, 108, 239, 202, 243, 154, 219, 248, 243, 159, 242, 12, 240,
+ 11, 239, 182, 171, 240, 11, 239, 182, 219, 154, 3, 245, 95, 219, 154,
+ 240, 95, 206, 224, 247, 72, 209, 183, 247, 72, 247, 38, 231, 35, 246,
+ 178, 3, 177, 208, 90, 246, 178, 3, 183, 208, 90, 248, 231, 246, 177, 246,
+ 22, 217, 161, 215, 191, 217, 161, 219, 94, 211, 53, 215, 133, 208, 82,
+ 215, 133, 248, 8, 210, 7, 227, 227, 221, 158, 221, 159, 3, 244, 65, 245,
+ 151, 246, 16, 248, 9, 171, 248, 9, 237, 244, 248, 9, 248, 26, 248, 9,
+ 219, 243, 248, 9, 248, 6, 223, 85, 249, 14, 214, 182, 224, 242, 209, 162,
+ 216, 152, 219, 152, 240, 65, 225, 172, 214, 222, 250, 195, 217, 185, 251,
+ 119, 227, 3, 246, 162, 224, 254, 219, 210, 208, 98, 231, 46, 208, 98,
+ 219, 161, 241, 236, 97, 231, 43, 241, 57, 241, 58, 3, 183, 53, 55, 246,
+ 16, 225, 137, 3, 226, 249, 239, 225, 246, 16, 225, 137, 3, 216, 188, 239,
+ 225, 171, 225, 137, 3, 216, 188, 239, 225, 171, 225, 137, 3, 226, 249,
+ 239, 225, 218, 28, 218, 29, 236, 53, 222, 210, 224, 80, 218, 176, 224,
+ 80, 218, 177, 3, 86, 53, 250, 50, 227, 222, 205, 229, 224, 79, 224, 80,
+ 218, 177, 220, 68, 221, 192, 224, 80, 218, 175, 250, 196, 3, 248, 220,
+ 247, 65, 247, 66, 3, 239, 218, 205, 226, 247, 65, 209, 159, 216, 204,
+ 205, 225, 240, 6, 217, 217, 218, 35, 211, 74, 217, 254, 248, 160, 207,
+ 138, 86, 250, 91, 246, 18, 86, 25, 96, 171, 246, 62, 250, 91, 246, 18,
+ 86, 25, 96, 171, 246, 62, 250, 92, 3, 43, 118, 219, 199, 246, 18, 183,
+ 25, 177, 171, 246, 62, 250, 91, 250, 194, 183, 25, 177, 171, 246, 62,
+ 250, 91, 124, 247, 206, 97, 138, 247, 206, 97, 211, 217, 3, 247, 58, 95,
+ 211, 216, 211, 217, 3, 118, 211, 241, 204, 75, 211, 217, 3, 126, 211,
+ 241, 204, 74, 248, 203, 241, 117, 218, 81, 227, 217, 225, 149, 238, 49,
+ 216, 11, 225, 149, 238, 49, 227, 43, 3, 231, 17, 219, 9, 246, 16, 227,
+ 43, 3, 229, 151, 229, 151, 227, 42, 171, 227, 42, 248, 128, 248, 129, 3,
+ 247, 58, 95, 248, 7, 227, 105, 97, 216, 205, 247, 145, 249, 26, 3, 96,
+ 53, 55, 241, 84, 3, 96, 53, 55, 220, 32, 3, 240, 212, 131, 3, 49, 50, 53,
+ 55, 211, 249, 3, 86, 53, 55, 208, 145, 3, 177, 53, 55, 221, 192, 118,
+ 206, 248, 241, 141, 97, 229, 148, 209, 152, 231, 11, 16, 35, 8, 6, 227,
+ 173, 231, 11, 16, 35, 8, 5, 227, 173, 231, 11, 16, 35, 221, 45, 231, 11,
+ 16, 35, 210, 102, 231, 11, 16, 35, 8, 227, 173, 239, 249, 241, 117, 208,
+ 140, 203, 225, 237, 130, 221, 28, 25, 248, 14, 236, 134, 218, 106, 224,
+ 151, 209, 160, 245, 112, 248, 251, 212, 88, 218, 61, 211, 95, 3, 101,
+ 243, 85, 230, 169, 16, 35, 248, 141, 208, 80, 241, 100, 62, 51, 247, 145,
+ 61, 51, 247, 145, 228, 8, 216, 138, 246, 61, 228, 8, 248, 26, 246, 61,
+ 228, 8, 219, 243, 243, 221, 228, 8, 248, 26, 243, 221, 5, 219, 243, 243,
+ 221, 5, 248, 26, 243, 221, 206, 223, 216, 138, 208, 85, 242, 69, 216,
+ 138, 208, 85, 206, 223, 5, 216, 138, 208, 85, 242, 69, 5, 216, 138, 208,
+ 85, 226, 251, 50, 213, 77, 61, 246, 61, 206, 221, 50, 213, 77, 61, 246,
+ 61, 43, 245, 131, 218, 48, 245, 131, 218, 49, 3, 237, 136, 56, 245, 131,
+ 218, 48, 221, 162, 49, 213, 146, 3, 126, 243, 83, 221, 162, 50, 213, 146,
+ 3, 126, 243, 83, 16, 35, 225, 87, 246, 184, 61, 8, 245, 130, 79, 8, 245,
+ 130, 246, 222, 245, 130, 220, 40, 97, 242, 72, 76, 219, 32, 230, 39, 224,
+ 22, 210, 96, 224, 237, 3, 222, 64, 247, 222, 247, 238, 76, 235, 222, 246,
+ 20, 240, 103, 118, 220, 83, 246, 20, 240, 103, 120, 220, 83, 246, 20,
+ 240, 103, 126, 220, 83, 246, 20, 240, 103, 239, 147, 220, 83, 246, 20,
+ 240, 103, 239, 233, 220, 83, 246, 20, 240, 103, 212, 88, 220, 83, 246,
+ 20, 240, 103, 213, 112, 220, 83, 246, 20, 240, 103, 241, 143, 220, 83,
+ 246, 20, 240, 103, 222, 64, 220, 83, 246, 20, 240, 103, 209, 153, 220,
+ 83, 246, 20, 240, 103, 241, 113, 220, 83, 246, 20, 240, 103, 207, 155,
+ 220, 83, 246, 20, 240, 103, 220, 27, 246, 20, 240, 103, 207, 132, 246,
+ 20, 240, 103, 209, 26, 246, 20, 240, 103, 239, 143, 246, 20, 240, 103,
+ 239, 231, 246, 20, 240, 103, 212, 84, 246, 20, 240, 103, 213, 110, 246,
+ 20, 240, 103, 241, 142, 246, 20, 240, 103, 222, 62, 246, 20, 240, 103,
+ 209, 151, 246, 20, 240, 103, 241, 111, 246, 20, 240, 103, 207, 153, 50,
+ 211, 216, 50, 211, 217, 3, 118, 211, 241, 204, 75, 50, 211, 217, 3, 126,
+ 211, 241, 204, 74, 247, 175, 247, 176, 3, 211, 241, 204, 74, 215, 251,
+ 248, 128, 248, 9, 247, 56, 225, 109, 246, 19, 62, 212, 63, 25, 245, 129,
+ 221, 192, 218, 112, 236, 126, 225, 123, 231, 50, 247, 152, 210, 228, 227,
+ 166, 212, 52, 219, 245, 211, 178, 244, 150, 210, 210, 211, 205, 211, 206,
+ 204, 59, 230, 83, 49, 237, 124, 209, 162, 216, 152, 209, 162, 216, 153,
+ 3, 219, 153, 50, 237, 124, 209, 162, 216, 152, 61, 208, 126, 209, 161,
+ 62, 208, 126, 209, 161, 209, 162, 220, 32, 208, 145, 76, 224, 76, 246,
+ 40, 224, 80, 218, 176, 249, 26, 76, 241, 57, 211, 100, 241, 57, 241, 58,
+ 3, 227, 131, 239, 189, 241, 57, 219, 10, 115, 211, 100, 241, 57, 227,
+ 104, 219, 93, 62, 217, 161, 226, 251, 49, 219, 8, 226, 251, 49, 248, 246,
+ 219, 9, 226, 251, 49, 239, 149, 219, 9, 226, 251, 49, 219, 147, 226, 251,
+ 49, 245, 144, 49, 203, 220, 237, 123, 207, 174, 220, 52, 237, 124, 54,
+ 216, 188, 237, 124, 3, 239, 254, 211, 195, 216, 73, 216, 188, 237, 124,
+ 3, 239, 254, 211, 195, 216, 73, 209, 20, 112, 54, 216, 73, 209, 20, 121,
+ 54, 216, 73, 205, 228, 237, 123, 216, 73, 237, 124, 3, 101, 240, 3, 240,
+ 201, 216, 188, 237, 124, 3, 219, 71, 248, 104, 101, 25, 215, 253, 239,
+ 253, 61, 121, 218, 59, 49, 237, 124, 231, 35, 212, 154, 61, 49, 218, 59,
+ 231, 35, 212, 154, 61, 50, 218, 59, 231, 35, 212, 154, 62, 49, 218, 59,
+ 231, 35, 212, 154, 62, 50, 218, 59, 231, 35, 62, 49, 218, 59, 249, 23,
+ 231, 35, 62, 50, 218, 59, 249, 23, 231, 35, 212, 154, 61, 112, 218, 59,
+ 231, 35, 212, 154, 61, 121, 218, 59, 231, 35, 212, 154, 62, 112, 218, 59,
+ 231, 35, 212, 154, 62, 121, 218, 59, 231, 35, 62, 112, 218, 59, 249, 23,
+ 231, 35, 62, 121, 218, 59, 249, 23, 231, 35, 244, 11, 245, 220, 229, 150,
+ 25, 224, 9, 126, 222, 218, 245, 219, 217, 231, 218, 67, 247, 74, 62, 237,
+ 91, 213, 33, 239, 202, 243, 154, 61, 237, 91, 213, 33, 239, 202, 243,
+ 154, 212, 7, 213, 33, 239, 202, 243, 154, 209, 221, 247, 22, 204, 6, 229,
+ 149, 118, 247, 146, 224, 9, 120, 247, 146, 224, 9, 126, 247, 146, 224, 9,
+ 208, 117, 38, 218, 228, 245, 220, 237, 91, 243, 154, 214, 184, 217, 232,
+ 235, 156, 240, 65, 235, 156, 219, 248, 243, 160, 235, 156, 243, 107, 3,
+ 209, 112, 243, 107, 3, 209, 113, 25, 218, 161, 243, 107, 3, 218, 161,
+ 239, 135, 3, 218, 161, 239, 135, 3, 208, 225, 239, 135, 3, 250, 232, 203,
+ 196, 62, 239, 182, 239, 182, 171, 239, 182, 247, 38, 122, 243, 140, 247,
+ 38, 240, 11, 247, 233, 240, 11, 247, 87, 241, 94, 221, 160, 241, 94, 221,
+ 161, 219, 153, 241, 94, 221, 161, 219, 159, 221, 160, 221, 161, 219, 153,
+ 221, 161, 219, 159, 241, 94, 243, 106, 241, 94, 219, 153, 241, 94, 219,
+ 151, 243, 106, 219, 153, 219, 151, 204, 85, 211, 202, 221, 161, 219, 159,
+ 211, 202, 247, 73, 219, 159, 244, 11, 204, 15, 224, 105, 225, 64, 219,
+ 201, 246, 18, 50, 25, 49, 213, 146, 250, 91, 247, 58, 203, 196, 231, 41,
+ 239, 176, 212, 72, 97, 244, 64, 239, 176, 212, 72, 97, 245, 221, 38, 229,
+ 151, 215, 214, 222, 210, 219, 154, 3, 43, 209, 112, 211, 65, 246, 177,
+ 244, 196, 229, 33, 227, 98, 211, 215, 237, 65, 231, 50, 212, 136, 126,
+ 216, 163, 55, 126, 216, 163, 56, 126, 216, 163, 227, 222, 126, 216, 163,
+ 216, 16, 49, 211, 212, 247, 192, 50, 211, 212, 247, 192, 120, 211, 212,
+ 247, 191, 126, 211, 212, 247, 191, 49, 209, 38, 247, 192, 50, 209, 38,
+ 247, 192, 49, 250, 220, 247, 192, 50, 250, 220, 247, 192, 224, 34, 247,
+ 192, 227, 132, 224, 34, 247, 192, 227, 132, 224, 33, 248, 248, 98, 3,
+ 248, 247, 248, 248, 132, 203, 196, 248, 248, 98, 3, 132, 203, 196, 248,
+ 248, 26, 132, 203, 196, 248, 248, 98, 3, 26, 132, 203, 196, 157, 246,
+ 169, 82, 248, 248, 98, 3, 26, 246, 168, 203, 233, 225, 106, 224, 14, 239,
+ 103, 208, 167, 208, 122, 211, 86, 76, 227, 146, 212, 137, 76, 230, 170,
+ 223, 251, 237, 241, 240, 102, 237, 241, 240, 103, 3, 212, 30, 240, 184,
+ 240, 103, 3, 209, 179, 76, 230, 85, 212, 30, 240, 103, 3, 171, 224, 7,
+ 212, 30, 240, 103, 3, 171, 224, 8, 25, 212, 30, 240, 184, 212, 30, 240,
+ 103, 3, 171, 224, 8, 25, 245, 246, 210, 166, 212, 30, 240, 103, 3, 171,
+ 224, 8, 25, 208, 243, 240, 184, 212, 30, 240, 103, 3, 237, 135, 212, 30,
+ 240, 103, 3, 236, 52, 204, 8, 240, 102, 212, 30, 240, 103, 3, 212, 30,
+ 240, 184, 240, 103, 214, 214, 244, 45, 239, 174, 216, 113, 240, 102, 212,
+ 30, 240, 103, 3, 237, 54, 240, 184, 212, 30, 240, 103, 3, 210, 210, 212,
+ 29, 240, 102, 222, 216, 240, 102, 240, 203, 240, 102, 206, 253, 240, 102,
+ 240, 103, 3, 245, 246, 210, 166, 219, 1, 240, 102, 245, 212, 240, 102,
+ 245, 213, 240, 102, 229, 65, 240, 102, 240, 103, 209, 23, 34, 229, 66,
+ 229, 65, 240, 103, 3, 212, 30, 240, 184, 229, 65, 240, 103, 3, 246, 16,
+ 240, 184, 240, 103, 3, 211, 16, 208, 150, 240, 103, 3, 211, 16, 208, 151,
+ 25, 204, 8, 240, 191, 240, 103, 3, 211, 16, 208, 151, 25, 208, 243, 240,
+ 184, 243, 161, 240, 102, 203, 232, 240, 102, 250, 214, 240, 102, 218, 19,
+ 240, 102, 245, 114, 240, 102, 218, 232, 240, 102, 240, 103, 3, 227, 17,
+ 76, 208, 62, 243, 161, 247, 148, 216, 113, 240, 102, 239, 114, 240, 103,
+ 3, 171, 224, 7, 250, 212, 240, 102, 240, 58, 240, 102, 204, 60, 240, 102,
+ 212, 53, 240, 102, 208, 205, 240, 102, 237, 242, 240, 102, 227, 4, 245,
+ 114, 240, 102, 240, 103, 3, 171, 224, 7, 236, 2, 240, 102, 240, 103, 3,
+ 171, 224, 8, 25, 245, 246, 210, 166, 240, 103, 214, 186, 231, 50, 240,
+ 59, 250, 56, 240, 102, 239, 194, 240, 102, 212, 54, 240, 102, 243, 133,
+ 240, 102, 240, 103, 204, 3, 224, 7, 240, 103, 3, 225, 12, 225, 76, 237,
+ 241, 247, 18, 240, 103, 3, 212, 30, 240, 184, 247, 18, 240, 103, 3, 209,
+ 179, 76, 230, 85, 212, 30, 247, 18, 240, 103, 3, 171, 224, 7, 212, 30,
+ 247, 18, 240, 103, 3, 237, 54, 240, 184, 247, 18, 240, 103, 3, 203, 218,
+ 212, 31, 229, 65, 247, 18, 240, 103, 3, 246, 16, 240, 184, 218, 19, 247,
+ 18, 240, 102, 245, 114, 247, 18, 240, 102, 204, 60, 247, 18, 240, 102,
+ 212, 47, 239, 114, 240, 102, 212, 47, 212, 30, 240, 102, 206, 218, 240,
+ 102, 240, 103, 3, 215, 212, 240, 184, 240, 103, 3, 221, 192, 238, 27,
+ 238, 160, 240, 103, 3, 220, 52, 238, 160, 218, 230, 247, 239, 244, 59,
+ 214, 164, 224, 48, 237, 57, 224, 48, 211, 218, 224, 48, 237, 93, 218,
+ 230, 216, 187, 118, 237, 123, 218, 230, 216, 187, 247, 251, 237, 100,
+ 231, 50, 246, 224, 218, 230, 239, 113, 218, 230, 3, 218, 19, 240, 102,
+ 218, 230, 3, 239, 183, 237, 99, 153, 204, 46, 218, 59, 227, 229, 211,
+ 238, 204, 46, 218, 59, 227, 229, 153, 241, 176, 218, 59, 227, 229, 211,
+ 238, 241, 176, 218, 59, 227, 229, 207, 174, 153, 204, 46, 218, 59, 227,
+ 229, 207, 174, 211, 238, 204, 46, 218, 59, 227, 229, 207, 174, 153, 241,
+ 176, 218, 59, 227, 229, 207, 174, 211, 238, 241, 176, 218, 59, 227, 229,
+ 153, 204, 46, 218, 59, 205, 212, 227, 229, 211, 238, 204, 46, 218, 59,
+ 205, 212, 227, 229, 153, 241, 176, 218, 59, 205, 212, 227, 229, 211, 238,
+ 241, 176, 218, 59, 205, 212, 227, 229, 79, 153, 204, 46, 218, 59, 205,
+ 212, 227, 229, 79, 211, 238, 204, 46, 218, 59, 205, 212, 227, 229, 79,
+ 153, 241, 176, 218, 59, 205, 212, 227, 229, 79, 211, 238, 241, 176, 218,
+ 59, 205, 212, 227, 229, 153, 204, 46, 218, 59, 247, 189, 211, 238, 204,
+ 46, 218, 59, 247, 189, 153, 241, 176, 218, 59, 247, 189, 211, 238, 241,
+ 176, 218, 59, 247, 189, 79, 153, 204, 46, 218, 59, 247, 189, 79, 211,
+ 238, 204, 46, 218, 59, 247, 189, 79, 153, 241, 176, 218, 59, 247, 189,
+ 79, 211, 238, 241, 176, 218, 59, 247, 189, 236, 125, 217, 40, 51, 219,
+ 233, 236, 125, 217, 40, 51, 219, 234, 231, 50, 62, 211, 177, 212, 2, 217,
+ 40, 51, 219, 233, 212, 2, 217, 40, 51, 219, 234, 231, 50, 62, 211, 177,
+ 96, 215, 218, 177, 215, 218, 86, 215, 218, 183, 215, 218, 132, 32, 240,
+ 251, 219, 233, 79, 132, 32, 240, 251, 219, 233, 32, 171, 240, 251, 219,
+ 233, 79, 32, 171, 240, 251, 219, 233, 79, 250, 236, 219, 233, 210, 169,
+ 250, 236, 219, 233, 41, 79, 52, 207, 174, 245, 234, 217, 31, 131, 219,
+ 233, 41, 79, 52, 245, 234, 217, 31, 131, 219, 233, 41, 79, 124, 52, 245,
+ 234, 217, 31, 131, 219, 233, 79, 230, 248, 219, 233, 41, 230, 248, 219,
+ 233, 79, 41, 230, 248, 219, 233, 205, 242, 79, 212, 0, 205, 242, 79, 216,
+ 74, 212, 0, 246, 167, 248, 20, 216, 74, 246, 167, 248, 20, 215, 218, 237,
+ 38, 211, 81, 227, 40, 216, 193, 247, 39, 236, 240, 208, 110, 236, 240,
+ 208, 111, 3, 247, 178, 221, 167, 208, 110, 224, 213, 157, 216, 194, 211,
+ 87, 208, 108, 208, 109, 247, 39, 247, 153, 220, 29, 247, 153, 208, 59,
+ 247, 154, 211, 61, 224, 109, 250, 240, 239, 250, 241, 77, 218, 51, 247,
+ 39, 220, 29, 218, 51, 247, 39, 209, 197, 220, 29, 209, 197, 250, 22, 220,
+ 29, 250, 22, 216, 145, 206, 47, 244, 41, 208, 50, 250, 86, 227, 8, 208,
+ 116, 224, 42, 224, 13, 216, 192, 210, 182, 216, 192, 224, 13, 247, 86,
+ 251, 95, 208, 107, 212, 251, 215, 188, 211, 210, 236, 106, 208, 114, 227,
+ 134, 80, 208, 114, 227, 134, 245, 199, 54, 218, 51, 247, 24, 216, 67,
+ 227, 134, 208, 82, 239, 226, 220, 32, 218, 30, 243, 88, 221, 192, 241,
+ 63, 54, 212, 28, 97, 221, 192, 212, 28, 97, 217, 160, 227, 87, 231, 50,
+ 230, 198, 218, 97, 97, 243, 114, 221, 166, 227, 87, 97, 218, 24, 204, 81,
+ 97, 221, 182, 204, 81, 97, 248, 82, 221, 192, 248, 81, 248, 80, 224, 13,
+ 248, 80, 219, 25, 221, 192, 219, 24, 246, 132, 245, 123, 224, 236, 97,
+ 203, 247, 97, 216, 83, 249, 28, 97, 208, 168, 204, 81, 246, 13, 212, 209,
+ 248, 206, 248, 204, 219, 57, 245, 183, 245, 79, 249, 7, 246, 41, 49, 226,
+ 229, 208, 86, 3, 215, 189, 245, 164, 217, 220, 54, 43, 231, 25, 211, 239,
+ 247, 231, 97, 238, 59, 97, 245, 157, 25, 228, 18, 212, 54, 251, 135, 212,
+ 231, 249, 6, 248, 127, 248, 128, 248, 151, 218, 97, 76, 203, 231, 237,
+ 131, 25, 203, 225, 213, 8, 220, 56, 242, 46, 224, 17, 216, 193, 208, 118,
+ 224, 19, 248, 19, 206, 223, 224, 119, 251, 52, 206, 223, 251, 52, 206,
+ 223, 5, 251, 52, 5, 251, 52, 221, 171, 251, 52, 251, 53, 244, 25, 251,
+ 53, 250, 97, 214, 221, 220, 29, 239, 250, 241, 77, 243, 211, 227, 40,
+ 219, 60, 212, 251, 136, 16, 35, 217, 36, 136, 16, 35, 251, 54, 136, 16,
+ 35, 239, 249, 136, 16, 35, 241, 179, 136, 16, 35, 204, 80, 136, 16, 35,
+ 250, 146, 136, 16, 35, 250, 147, 216, 132, 136, 16, 35, 250, 147, 216,
+ 131, 136, 16, 35, 250, 147, 205, 195, 136, 16, 35, 250, 147, 205, 194,
+ 136, 16, 35, 205, 209, 136, 16, 35, 205, 208, 136, 16, 35, 205, 207, 136,
+ 16, 35, 210, 221, 136, 16, 35, 218, 184, 210, 221, 136, 16, 35, 62, 210,
+ 221, 136, 16, 35, 224, 235, 210, 252, 136, 16, 35, 224, 235, 210, 251,
+ 136, 16, 35, 224, 235, 210, 250, 136, 16, 35, 246, 64, 136, 16, 35, 215,
+ 1, 136, 16, 35, 222, 51, 136, 16, 35, 205, 193, 136, 16, 35, 205, 192,
+ 136, 16, 35, 215, 219, 215, 1, 136, 16, 35, 215, 219, 215, 0, 136, 16,
+ 35, 238, 31, 136, 16, 35, 212, 133, 136, 16, 35, 230, 221, 219, 239, 136,
+ 16, 35, 230, 221, 219, 238, 136, 16, 35, 245, 134, 76, 230, 220, 136, 16,
+ 35, 216, 128, 76, 230, 220, 136, 16, 35, 245, 174, 219, 239, 136, 16, 35,
+ 230, 219, 219, 239, 136, 16, 35, 210, 253, 76, 245, 173, 136, 16, 35,
+ 245, 134, 76, 245, 173, 136, 16, 35, 245, 134, 76, 245, 172, 136, 16, 35,
+ 245, 174, 250, 188, 136, 16, 35, 215, 2, 76, 245, 174, 250, 188, 136, 16,
+ 35, 210, 253, 76, 215, 2, 76, 245, 173, 136, 16, 35, 206, 42, 136, 16,
+ 35, 208, 218, 219, 239, 136, 16, 35, 227, 233, 219, 239, 136, 16, 35,
+ 250, 187, 219, 239, 136, 16, 35, 210, 253, 76, 250, 186, 136, 16, 35,
+ 215, 2, 76, 250, 186, 136, 16, 35, 210, 253, 76, 215, 2, 76, 250, 186,
+ 136, 16, 35, 205, 210, 76, 250, 186, 136, 16, 35, 216, 128, 76, 250, 186,
+ 136, 16, 35, 216, 128, 76, 250, 185, 136, 16, 35, 216, 127, 136, 16, 35,
+ 216, 126, 136, 16, 35, 216, 125, 136, 16, 35, 216, 124, 136, 16, 35, 251,
+ 17, 136, 16, 35, 251, 16, 136, 16, 35, 225, 97, 136, 16, 35, 215, 7, 136,
+ 16, 35, 250, 90, 136, 16, 35, 216, 155, 136, 16, 35, 216, 154, 136, 16,
+ 35, 250, 25, 136, 16, 35, 248, 52, 219, 239, 136, 16, 35, 209, 216, 136,
+ 16, 35, 209, 215, 136, 16, 35, 217, 42, 227, 123, 136, 16, 35, 248, 0,
+ 136, 16, 35, 247, 255, 136, 16, 35, 247, 254, 136, 16, 35, 250, 249, 136,
+ 16, 35, 220, 55, 136, 16, 35, 211, 198, 136, 16, 35, 208, 216, 136, 16,
+ 35, 237, 210, 136, 16, 35, 204, 68, 136, 16, 35, 218, 18, 136, 16, 35,
+ 247, 70, 136, 16, 35, 207, 166, 136, 16, 35, 247, 41, 224, 23, 136, 16,
+ 35, 214, 199, 76, 230, 87, 136, 16, 35, 247, 83, 136, 16, 35, 208, 79,
+ 136, 16, 35, 211, 92, 208, 79, 136, 16, 35, 227, 39, 136, 16, 35, 212,
+ 11, 136, 16, 35, 206, 202, 136, 16, 35, 236, 50, 242, 27, 136, 16, 35,
+ 250, 70, 136, 16, 35, 218, 26, 250, 70, 136, 16, 35, 247, 210, 136, 16,
+ 35, 218, 17, 247, 210, 136, 16, 35, 250, 246, 136, 16, 35, 211, 48, 210,
+ 202, 211, 47, 136, 16, 35, 211, 48, 210, 202, 211, 46, 136, 16, 35, 210,
+ 249, 136, 16, 35, 217, 247, 136, 16, 35, 243, 150, 136, 16, 35, 243, 152,
+ 136, 16, 35, 243, 151, 136, 16, 35, 217, 169, 136, 16, 35, 217, 158, 136,
+ 16, 35, 245, 121, 136, 16, 35, 245, 120, 136, 16, 35, 245, 119, 136, 16,
+ 35, 245, 118, 136, 16, 35, 245, 117, 136, 16, 35, 251, 29, 136, 16, 35,
+ 248, 207, 76, 225, 81, 136, 16, 35, 248, 207, 76, 206, 74, 136, 16, 35,
+ 216, 81, 136, 16, 35, 236, 42, 136, 16, 35, 222, 79, 136, 16, 35, 244,
+ 132, 136, 16, 35, 224, 37, 136, 16, 35, 162, 242, 59, 136, 16, 35, 162,
+ 219, 214, 62, 227, 217, 230, 204, 50, 208, 85, 62, 206, 223, 230, 204,
+ 50, 208, 85, 62, 216, 11, 230, 204, 50, 208, 85, 62, 242, 69, 230, 204,
+ 50, 208, 85, 62, 212, 47, 5, 246, 61, 225, 10, 26, 61, 246, 61, 26, 61,
+ 246, 61, 79, 61, 246, 61, 205, 242, 79, 61, 246, 61, 240, 195, 79, 61,
+ 246, 61, 61, 246, 62, 245, 195, 62, 5, 246, 61, 215, 191, 209, 217, 62,
+ 208, 213, 211, 177, 62, 212, 47, 5, 211, 177, 157, 61, 211, 177, 225, 10,
+ 61, 211, 177, 26, 61, 211, 177, 79, 61, 211, 177, 205, 242, 79, 61, 211,
+ 177, 240, 195, 79, 61, 211, 177, 61, 51, 245, 195, 62, 205, 242, 5, 211,
+ 177, 61, 51, 245, 195, 62, 225, 10, 211, 177, 51, 209, 217, 62, 208, 213,
+ 243, 221, 62, 205, 242, 5, 243, 221, 62, 225, 10, 5, 243, 221, 61, 243,
+ 222, 245, 195, 62, 205, 242, 5, 243, 221, 61, 243, 222, 245, 195, 62,
+ 225, 10, 243, 221, 243, 222, 209, 217, 62, 208, 213, 226, 246, 62, 205,
+ 242, 5, 226, 246, 62, 225, 10, 5, 226, 246, 61, 226, 247, 245, 195, 62,
+ 5, 226, 246, 209, 63, 30, 245, 130, 157, 30, 245, 130, 225, 10, 30, 245,
+ 130, 26, 30, 245, 130, 205, 242, 26, 30, 245, 130, 205, 242, 79, 30, 245,
+ 130, 240, 195, 79, 30, 245, 130, 209, 63, 214, 254, 157, 214, 254, 225,
+ 10, 214, 254, 26, 214, 254, 79, 214, 254, 205, 242, 79, 214, 254, 240,
+ 195, 79, 214, 254, 157, 239, 233, 211, 191, 250, 59, 225, 10, 239, 233,
+ 211, 191, 250, 59, 26, 239, 233, 211, 191, 250, 59, 79, 239, 233, 211,
+ 191, 250, 59, 205, 242, 79, 239, 233, 211, 191, 250, 59, 240, 195, 79,
+ 239, 233, 211, 191, 250, 59, 157, 212, 88, 211, 191, 250, 59, 225, 10,
+ 212, 88, 211, 191, 250, 59, 26, 212, 88, 211, 191, 250, 59, 79, 212, 88,
+ 211, 191, 250, 59, 205, 242, 79, 212, 88, 211, 191, 250, 59, 240, 195,
+ 79, 212, 88, 211, 191, 250, 59, 157, 241, 143, 211, 191, 250, 59, 225,
+ 10, 241, 143, 211, 191, 250, 59, 26, 241, 143, 211, 191, 250, 59, 79,
+ 241, 143, 211, 191, 250, 59, 205, 242, 79, 241, 143, 211, 191, 250, 59,
+ 157, 126, 218, 61, 62, 211, 94, 225, 10, 126, 218, 61, 62, 211, 94, 126,
+ 218, 61, 62, 211, 94, 225, 10, 126, 218, 61, 218, 118, 211, 94, 157, 239,
+ 147, 218, 61, 62, 211, 94, 225, 10, 239, 147, 218, 61, 62, 211, 94, 239,
+ 147, 218, 61, 62, 211, 94, 225, 10, 239, 147, 218, 61, 218, 118, 211, 94,
+ 216, 74, 157, 239, 147, 218, 61, 218, 118, 211, 94, 157, 239, 233, 218,
+ 61, 62, 211, 94, 79, 239, 233, 218, 61, 62, 211, 94, 225, 10, 212, 88,
+ 218, 61, 62, 211, 94, 79, 212, 88, 218, 61, 62, 211, 94, 212, 88, 218,
+ 61, 218, 118, 211, 94, 225, 10, 241, 143, 218, 61, 62, 211, 94, 79, 241,
+ 143, 218, 61, 62, 211, 94, 205, 242, 79, 241, 143, 218, 61, 62, 211, 94,
+ 79, 241, 143, 218, 61, 218, 118, 211, 94, 157, 207, 155, 218, 61, 62,
+ 211, 94, 79, 207, 155, 218, 61, 62, 211, 94, 79, 207, 155, 218, 61, 218,
+ 118, 211, 94, 96, 53, 3, 5, 208, 86, 250, 94, 177, 53, 3, 5, 208, 86,
+ 250, 94, 86, 53, 3, 5, 208, 86, 250, 94, 183, 53, 3, 5, 208, 86, 250, 94,
+ 96, 53, 3, 225, 10, 208, 86, 250, 94, 177, 53, 3, 225, 10, 208, 86, 250,
+ 94, 86, 53, 3, 225, 10, 208, 86, 250, 94, 183, 53, 3, 225, 10, 208, 86,
+ 250, 94, 96, 53, 3, 228, 8, 208, 86, 250, 94, 177, 53, 3, 228, 8, 208,
+ 86, 250, 94, 86, 53, 3, 228, 8, 208, 86, 250, 94, 183, 53, 3, 228, 8,
+ 208, 86, 250, 94, 96, 53, 3, 5, 241, 31, 250, 94, 177, 53, 3, 5, 241, 31,
+ 250, 94, 86, 53, 3, 5, 241, 31, 250, 94, 183, 53, 3, 5, 241, 31, 250, 94,
+ 96, 53, 3, 241, 31, 250, 94, 177, 53, 3, 241, 31, 250, 94, 86, 53, 3,
+ 241, 31, 250, 94, 183, 53, 3, 241, 31, 250, 94, 79, 96, 53, 3, 241, 31,
+ 250, 94, 79, 177, 53, 3, 241, 31, 250, 94, 79, 86, 53, 3, 241, 31, 250,
+ 94, 79, 183, 53, 3, 241, 31, 250, 94, 79, 96, 53, 3, 228, 8, 241, 31,
+ 250, 94, 79, 177, 53, 3, 228, 8, 241, 31, 250, 94, 79, 86, 53, 3, 228, 8,
+ 241, 31, 250, 94, 79, 183, 53, 3, 228, 8, 241, 31, 250, 94, 96, 208, 84,
+ 53, 3, 223, 73, 213, 75, 177, 208, 84, 53, 3, 223, 73, 213, 75, 86, 208,
+ 84, 53, 3, 223, 73, 213, 75, 183, 208, 84, 53, 3, 223, 73, 213, 75, 96,
+ 208, 84, 53, 3, 225, 10, 213, 75, 177, 208, 84, 53, 3, 225, 10, 213, 75,
+ 86, 208, 84, 53, 3, 225, 10, 213, 75, 183, 208, 84, 53, 3, 225, 10, 213,
+ 75, 96, 208, 84, 53, 3, 26, 213, 75, 177, 208, 84, 53, 3, 26, 213, 75,
+ 86, 208, 84, 53, 3, 26, 213, 75, 183, 208, 84, 53, 3, 26, 213, 75, 96,
+ 208, 84, 53, 3, 79, 213, 75, 177, 208, 84, 53, 3, 79, 213, 75, 86, 208,
+ 84, 53, 3, 79, 213, 75, 183, 208, 84, 53, 3, 79, 213, 75, 96, 208, 84,
+ 53, 3, 205, 242, 79, 213, 75, 177, 208, 84, 53, 3, 205, 242, 79, 213, 75,
+ 86, 208, 84, 53, 3, 205, 242, 79, 213, 75, 183, 208, 84, 53, 3, 205, 242,
+ 79, 213, 75, 96, 240, 1, 47, 177, 240, 1, 47, 86, 240, 1, 47, 183, 240,
+ 1, 47, 96, 103, 47, 177, 103, 47, 86, 103, 47, 183, 103, 47, 96, 245,
+ 222, 47, 177, 245, 222, 47, 86, 245, 222, 47, 183, 245, 222, 47, 96, 79,
+ 245, 222, 47, 177, 79, 245, 222, 47, 86, 79, 245, 222, 47, 183, 79, 245,
+ 222, 47, 96, 79, 47, 177, 79, 47, 86, 79, 47, 183, 79, 47, 96, 41, 47,
+ 177, 41, 47, 86, 41, 47, 183, 41, 47, 153, 204, 46, 41, 47, 153, 241,
+ 176, 41, 47, 211, 238, 241, 176, 41, 47, 211, 238, 204, 46, 41, 47, 49,
+ 50, 41, 47, 112, 121, 41, 47, 204, 26, 96, 157, 150, 47, 204, 26, 177,
+ 157, 150, 47, 204, 26, 86, 157, 150, 47, 204, 26, 183, 157, 150, 47, 204,
+ 26, 153, 204, 46, 157, 150, 47, 204, 26, 153, 241, 176, 157, 150, 47,
+ 204, 26, 211, 238, 241, 176, 157, 150, 47, 204, 26, 211, 238, 204, 46,
+ 157, 150, 47, 204, 26, 96, 150, 47, 204, 26, 177, 150, 47, 204, 26, 86,
+ 150, 47, 204, 26, 183, 150, 47, 204, 26, 153, 204, 46, 150, 47, 204, 26,
+ 153, 241, 176, 150, 47, 204, 26, 211, 238, 241, 176, 150, 47, 204, 26,
+ 211, 238, 204, 46, 150, 47, 204, 26, 96, 225, 10, 150, 47, 204, 26, 177,
+ 225, 10, 150, 47, 204, 26, 86, 225, 10, 150, 47, 204, 26, 183, 225, 10,
+ 150, 47, 204, 26, 153, 204, 46, 225, 10, 150, 47, 204, 26, 153, 241, 176,
+ 225, 10, 150, 47, 204, 26, 211, 238, 241, 176, 225, 10, 150, 47, 204, 26,
+ 211, 238, 204, 46, 225, 10, 150, 47, 204, 26, 96, 79, 150, 47, 204, 26,
+ 177, 79, 150, 47, 204, 26, 86, 79, 150, 47, 204, 26, 183, 79, 150, 47,
+ 204, 26, 153, 204, 46, 79, 150, 47, 204, 26, 153, 241, 176, 79, 150, 47,
+ 204, 26, 211, 238, 241, 176, 79, 150, 47, 204, 26, 211, 238, 204, 46, 79,
+ 150, 47, 204, 26, 96, 205, 242, 79, 150, 47, 204, 26, 177, 205, 242, 79,
+ 150, 47, 204, 26, 86, 205, 242, 79, 150, 47, 204, 26, 183, 205, 242, 79,
+ 150, 47, 204, 26, 153, 204, 46, 205, 242, 79, 150, 47, 204, 26, 153, 241,
+ 176, 205, 242, 79, 150, 47, 204, 26, 211, 238, 241, 176, 205, 242, 79,
+ 150, 47, 204, 26, 211, 238, 204, 46, 205, 242, 79, 150, 47, 96, 208, 86,
+ 250, 94, 177, 208, 86, 250, 94, 86, 208, 86, 250, 94, 183, 208, 86, 250,
+ 94, 96, 61, 53, 204, 5, 208, 86, 250, 94, 177, 61, 53, 204, 5, 208, 86,
+ 250, 94, 86, 61, 53, 204, 5, 208, 86, 250, 94, 183, 61, 53, 204, 5, 208,
+ 86, 250, 94, 96, 53, 3, 221, 162, 209, 248, 177, 53, 3, 221, 162, 209,
+ 248, 86, 53, 3, 221, 162, 209, 248, 183, 53, 3, 221, 162, 209, 248, 79,
+ 53, 213, 76, 204, 24, 105, 79, 53, 213, 76, 204, 24, 120, 209, 57, 79,
+ 53, 213, 76, 204, 24, 118, 237, 137, 79, 53, 213, 76, 204, 24, 118, 209,
+ 60, 96, 247, 245, 61, 47, 86, 247, 248, 213, 78, 61, 47, 96, 208, 145,
+ 213, 78, 61, 47, 86, 208, 145, 213, 78, 61, 47, 96, 227, 216, 61, 47, 86,
+ 216, 10, 61, 47, 96, 216, 10, 61, 47, 86, 227, 216, 61, 47, 96, 249, 24,
+ 213, 77, 61, 47, 86, 249, 24, 213, 77, 61, 47, 96, 239, 117, 213, 77, 61,
+ 47, 86, 239, 117, 213, 77, 61, 47, 61, 53, 213, 76, 204, 24, 105, 61, 53,
+ 213, 76, 204, 24, 120, 209, 57, 202, 26, 240, 102, 224, 52, 240, 102,
+ 240, 103, 3, 209, 80, 222, 222, 240, 102, 209, 62, 240, 102, 240, 103, 3,
+ 237, 63, 215, 221, 240, 102, 236, 20, 240, 102, 2, 76, 209, 93, 236, 52,
+ 245, 146, 227, 102, 240, 102, 214, 188, 207, 179, 206, 240, 240, 102,
+ 246, 161, 204, 57, 12, 15, 235, 152, 12, 15, 235, 151, 12, 15, 235, 150,
+ 12, 15, 235, 149, 12, 15, 235, 148, 12, 15, 235, 147, 12, 15, 235, 146,
+ 12, 15, 235, 145, 12, 15, 235, 144, 12, 15, 235, 143, 12, 15, 235, 142,
+ 12, 15, 235, 141, 12, 15, 235, 140, 12, 15, 235, 139, 12, 15, 235, 138,
+ 12, 15, 235, 137, 12, 15, 235, 136, 12, 15, 235, 135, 12, 15, 235, 134,
+ 12, 15, 235, 133, 12, 15, 235, 132, 12, 15, 235, 131, 12, 15, 235, 130,
+ 12, 15, 235, 129, 12, 15, 235, 128, 12, 15, 235, 127, 12, 15, 235, 126,
+ 12, 15, 235, 125, 12, 15, 235, 124, 12, 15, 235, 123, 12, 15, 235, 122,
+ 12, 15, 235, 121, 12, 15, 235, 120, 12, 15, 235, 119, 12, 15, 235, 118,
+ 12, 15, 235, 117, 12, 15, 235, 116, 12, 15, 235, 115, 12, 15, 235, 114,
+ 12, 15, 235, 113, 12, 15, 235, 112, 12, 15, 235, 111, 12, 15, 235, 110,
+ 12, 15, 235, 109, 12, 15, 235, 108, 12, 15, 235, 107, 12, 15, 235, 106,
+ 12, 15, 235, 105, 12, 15, 235, 104, 12, 15, 235, 103, 12, 15, 235, 102,
+ 12, 15, 235, 101, 12, 15, 235, 100, 12, 15, 235, 99, 12, 15, 235, 98, 12,
+ 15, 235, 97, 12, 15, 235, 96, 12, 15, 235, 95, 12, 15, 235, 94, 12, 15,
+ 235, 93, 12, 15, 235, 92, 12, 15, 235, 91, 12, 15, 235, 90, 12, 15, 235,
+ 89, 12, 15, 235, 88, 12, 15, 235, 87, 12, 15, 235, 86, 12, 15, 235, 85,
+ 12, 15, 235, 84, 12, 15, 235, 83, 12, 15, 235, 82, 12, 15, 235, 81, 12,
+ 15, 235, 80, 12, 15, 235, 79, 12, 15, 235, 78, 12, 15, 235, 77, 12, 15,
+ 235, 76, 12, 15, 235, 75, 12, 15, 235, 74, 12, 15, 235, 73, 12, 15, 235,
+ 72, 12, 15, 235, 71, 12, 15, 235, 70, 12, 15, 235, 69, 12, 15, 235, 68,
+ 12, 15, 235, 67, 12, 15, 235, 66, 12, 15, 235, 65, 12, 15, 235, 64, 12,
+ 15, 235, 63, 12, 15, 235, 62, 12, 15, 235, 61, 12, 15, 235, 60, 12, 15,
+ 235, 59, 12, 15, 235, 58, 12, 15, 235, 57, 12, 15, 235, 56, 12, 15, 235,
+ 55, 12, 15, 235, 54, 12, 15, 235, 53, 12, 15, 235, 52, 12, 15, 235, 51,
+ 12, 15, 235, 50, 12, 15, 235, 49, 12, 15, 235, 48, 12, 15, 235, 47, 12,
+ 15, 235, 46, 12, 15, 235, 45, 12, 15, 235, 44, 12, 15, 235, 43, 12, 15,
+ 235, 42, 12, 15, 235, 41, 12, 15, 235, 40, 12, 15, 235, 39, 12, 15, 235,
+ 38, 12, 15, 235, 37, 12, 15, 235, 36, 12, 15, 235, 35, 12, 15, 235, 34,
+ 12, 15, 235, 33, 12, 15, 235, 32, 12, 15, 235, 31, 12, 15, 235, 30, 12,
+ 15, 235, 29, 12, 15, 235, 28, 12, 15, 235, 27, 12, 15, 235, 26, 12, 15,
+ 235, 25, 12, 15, 235, 24, 12, 15, 235, 23, 12, 15, 235, 22, 12, 15, 235,
+ 21, 12, 15, 235, 20, 12, 15, 235, 19, 12, 15, 235, 18, 12, 15, 235, 17,
+ 12, 15, 235, 16, 12, 15, 235, 15, 12, 15, 235, 14, 12, 15, 235, 13, 12,
+ 15, 235, 12, 12, 15, 235, 11, 12, 15, 235, 10, 12, 15, 235, 9, 12, 15,
+ 235, 8, 12, 15, 235, 7, 12, 15, 235, 6, 12, 15, 235, 5, 12, 15, 235, 4,
+ 12, 15, 235, 3, 12, 15, 235, 2, 12, 15, 235, 1, 12, 15, 235, 0, 12, 15,
+ 234, 255, 12, 15, 234, 254, 12, 15, 234, 253, 12, 15, 234, 252, 12, 15,
+ 234, 251, 12, 15, 234, 250, 12, 15, 234, 249, 12, 15, 234, 248, 12, 15,
+ 234, 247, 12, 15, 234, 246, 12, 15, 234, 245, 12, 15, 234, 244, 12, 15,
+ 234, 243, 12, 15, 234, 242, 12, 15, 234, 241, 12, 15, 234, 240, 12, 15,
+ 234, 239, 12, 15, 234, 238, 12, 15, 234, 237, 12, 15, 234, 236, 12, 15,
+ 234, 235, 12, 15, 234, 234, 12, 15, 234, 233, 12, 15, 234, 232, 12, 15,
+ 234, 231, 12, 15, 234, 230, 12, 15, 234, 229, 12, 15, 234, 228, 12, 15,
+ 234, 227, 12, 15, 234, 226, 12, 15, 234, 225, 12, 15, 234, 224, 12, 15,
+ 234, 223, 12, 15, 234, 222, 12, 15, 234, 221, 12, 15, 234, 220, 12, 15,
+ 234, 219, 12, 15, 234, 218, 12, 15, 234, 217, 12, 15, 234, 216, 12, 15,
+ 234, 215, 12, 15, 234, 214, 12, 15, 234, 213, 12, 15, 234, 212, 12, 15,
+ 234, 211, 12, 15, 234, 210, 12, 15, 234, 209, 12, 15, 234, 208, 12, 15,
+ 234, 207, 12, 15, 234, 206, 12, 15, 234, 205, 12, 15, 234, 204, 12, 15,
+ 234, 203, 12, 15, 234, 202, 12, 15, 234, 201, 12, 15, 234, 200, 12, 15,
+ 234, 199, 12, 15, 234, 198, 12, 15, 234, 197, 12, 15, 234, 196, 12, 15,
+ 234, 195, 12, 15, 234, 194, 12, 15, 234, 193, 12, 15, 234, 192, 12, 15,
+ 234, 191, 12, 15, 234, 190, 12, 15, 234, 189, 12, 15, 234, 188, 12, 15,
+ 234, 187, 12, 15, 234, 186, 12, 15, 234, 185, 12, 15, 234, 184, 12, 15,
+ 234, 183, 12, 15, 234, 182, 12, 15, 234, 181, 12, 15, 234, 180, 12, 15,
+ 234, 179, 12, 15, 234, 178, 12, 15, 234, 177, 12, 15, 234, 176, 12, 15,
+ 234, 175, 12, 15, 234, 174, 12, 15, 234, 173, 12, 15, 234, 172, 12, 15,
+ 234, 171, 12, 15, 234, 170, 12, 15, 234, 169, 12, 15, 234, 168, 12, 15,
+ 234, 167, 12, 15, 234, 166, 12, 15, 234, 165, 12, 15, 234, 164, 12, 15,
+ 234, 163, 12, 15, 234, 162, 12, 15, 234, 161, 12, 15, 234, 160, 12, 15,
+ 234, 159, 12, 15, 234, 158, 12, 15, 234, 157, 12, 15, 234, 156, 12, 15,
+ 234, 155, 12, 15, 234, 154, 12, 15, 234, 153, 12, 15, 234, 152, 12, 15,
+ 234, 151, 12, 15, 234, 150, 12, 15, 234, 149, 12, 15, 234, 148, 12, 15,
+ 234, 147, 12, 15, 234, 146, 12, 15, 234, 145, 12, 15, 234, 144, 12, 15,
+ 234, 143, 12, 15, 234, 142, 12, 15, 234, 141, 12, 15, 234, 140, 12, 15,
+ 234, 139, 12, 15, 234, 138, 12, 15, 234, 137, 12, 15, 234, 136, 12, 15,
+ 234, 135, 12, 15, 234, 134, 12, 15, 234, 133, 12, 15, 234, 132, 12, 15,
+ 234, 131, 12, 15, 234, 130, 12, 15, 234, 129, 12, 15, 234, 128, 12, 15,
+ 234, 127, 12, 15, 234, 126, 12, 15, 234, 125, 12, 15, 234, 124, 12, 15,
+ 234, 123, 12, 15, 234, 122, 12, 15, 234, 121, 12, 15, 234, 120, 12, 15,
+ 234, 119, 12, 15, 234, 118, 12, 15, 234, 117, 12, 15, 234, 116, 12, 15,
+ 234, 115, 12, 15, 234, 114, 12, 15, 234, 113, 12, 15, 234, 112, 12, 15,
+ 234, 111, 12, 15, 234, 110, 12, 15, 234, 109, 12, 15, 234, 108, 12, 15,
+ 234, 107, 12, 15, 234, 106, 12, 15, 234, 105, 12, 15, 234, 104, 12, 15,
+ 234, 103, 12, 15, 234, 102, 12, 15, 234, 101, 12, 15, 234, 100, 12, 15,
+ 234, 99, 12, 15, 234, 98, 12, 15, 234, 97, 12, 15, 234, 96, 12, 15, 234,
+ 95, 12, 15, 234, 94, 12, 15, 234, 93, 12, 15, 234, 92, 12, 15, 234, 91,
+ 12, 15, 234, 90, 12, 15, 234, 89, 12, 15, 234, 88, 12, 15, 234, 87, 12,
+ 15, 234, 86, 12, 15, 234, 85, 12, 15, 234, 84, 12, 15, 234, 83, 12, 15,
+ 234, 82, 12, 15, 234, 81, 12, 15, 234, 80, 12, 15, 234, 79, 12, 15, 234,
+ 78, 12, 15, 234, 77, 12, 15, 234, 76, 12, 15, 234, 75, 12, 15, 234, 74,
+ 12, 15, 234, 73, 12, 15, 234, 72, 12, 15, 234, 71, 12, 15, 234, 70, 12,
+ 15, 234, 69, 12, 15, 234, 68, 12, 15, 234, 67, 12, 15, 234, 66, 12, 15,
+ 234, 65, 12, 15, 234, 64, 12, 15, 234, 63, 12, 15, 234, 62, 12, 15, 234,
+ 61, 12, 15, 234, 60, 12, 15, 234, 59, 12, 15, 234, 58, 12, 15, 234, 57,
+ 12, 15, 234, 56, 12, 15, 234, 55, 12, 15, 234, 54, 12, 15, 234, 53, 12,
+ 15, 234, 52, 12, 15, 234, 51, 12, 15, 234, 50, 12, 15, 234, 49, 12, 15,
+ 234, 48, 12, 15, 234, 47, 12, 15, 234, 46, 12, 15, 234, 45, 12, 15, 234,
+ 44, 12, 15, 234, 43, 12, 15, 234, 42, 12, 15, 234, 41, 12, 15, 234, 40,
+ 12, 15, 234, 39, 12, 15, 234, 38, 12, 15, 234, 37, 12, 15, 234, 36, 12,
+ 15, 234, 35, 12, 15, 234, 34, 12, 15, 234, 33, 12, 15, 234, 32, 12, 15,
+ 234, 31, 12, 15, 234, 30, 12, 15, 234, 29, 12, 15, 234, 28, 12, 15, 234,
+ 27, 12, 15, 234, 26, 12, 15, 234, 25, 12, 15, 234, 24, 12, 15, 234, 23,
+ 12, 15, 234, 22, 12, 15, 234, 21, 12, 15, 234, 20, 12, 15, 234, 19, 12,
+ 15, 234, 18, 12, 15, 234, 17, 12, 15, 234, 16, 12, 15, 234, 15, 12, 15,
+ 234, 14, 12, 15, 234, 13, 12, 15, 234, 12, 12, 15, 234, 11, 12, 15, 234,
+ 10, 12, 15, 234, 9, 12, 15, 234, 8, 12, 15, 234, 7, 12, 15, 234, 6, 12,
+ 15, 234, 5, 12, 15, 234, 4, 12, 15, 234, 3, 12, 15, 234, 2, 12, 15, 234,
+ 1, 12, 15, 234, 0, 12, 15, 233, 255, 12, 15, 233, 254, 12, 15, 233, 253,
+ 12, 15, 233, 252, 12, 15, 233, 251, 12, 15, 233, 250, 12, 15, 233, 249,
+ 12, 15, 233, 248, 12, 15, 233, 247, 12, 15, 233, 246, 12, 15, 233, 245,
+ 12, 15, 233, 244, 12, 15, 233, 243, 12, 15, 233, 242, 12, 15, 233, 241,
+ 12, 15, 233, 240, 12, 15, 233, 239, 12, 15, 233, 238, 12, 15, 233, 237,
+ 12, 15, 233, 236, 12, 15, 233, 235, 12, 15, 233, 234, 12, 15, 233, 233,
+ 12, 15, 233, 232, 12, 15, 233, 231, 12, 15, 233, 230, 12, 15, 233, 229,
+ 12, 15, 233, 228, 12, 15, 233, 227, 12, 15, 233, 226, 12, 15, 233, 225,
+ 12, 15, 233, 224, 12, 15, 233, 223, 12, 15, 233, 222, 12, 15, 233, 221,
+ 12, 15, 233, 220, 12, 15, 233, 219, 12, 15, 233, 218, 12, 15, 233, 217,
+ 12, 15, 233, 216, 12, 15, 233, 215, 12, 15, 233, 214, 12, 15, 233, 213,
+ 12, 15, 233, 212, 12, 15, 233, 211, 12, 15, 233, 210, 12, 15, 233, 209,
+ 12, 15, 233, 208, 12, 15, 233, 207, 12, 15, 233, 206, 12, 15, 233, 205,
+ 12, 15, 233, 204, 12, 15, 233, 203, 12, 15, 233, 202, 12, 15, 233, 201,
+ 12, 15, 233, 200, 12, 15, 233, 199, 12, 15, 233, 198, 12, 15, 233, 197,
+ 12, 15, 233, 196, 12, 15, 233, 195, 12, 15, 233, 194, 12, 15, 233, 193,
+ 12, 15, 233, 192, 12, 15, 233, 191, 12, 15, 233, 190, 12, 15, 233, 189,
+ 12, 15, 233, 188, 12, 15, 233, 187, 12, 15, 233, 186, 12, 15, 233, 185,
+ 12, 15, 233, 184, 12, 15, 233, 183, 12, 15, 233, 182, 12, 15, 233, 181,
+ 12, 15, 233, 180, 12, 15, 233, 179, 12, 15, 233, 178, 12, 15, 233, 177,
+ 12, 15, 233, 176, 12, 15, 233, 175, 12, 15, 233, 174, 12, 15, 233, 173,
+ 12, 15, 233, 172, 12, 15, 233, 171, 12, 15, 233, 170, 12, 15, 233, 169,
+ 12, 15, 233, 168, 12, 15, 233, 167, 12, 15, 233, 166, 12, 15, 233, 165,
+ 12, 15, 233, 164, 12, 15, 233, 163, 12, 15, 233, 162, 12, 15, 233, 161,
+ 12, 15, 233, 160, 12, 15, 233, 159, 12, 15, 233, 158, 12, 15, 233, 157,
+ 12, 15, 233, 156, 12, 15, 233, 155, 12, 15, 233, 154, 12, 15, 233, 153,
+ 12, 15, 233, 152, 12, 15, 233, 151, 12, 15, 233, 150, 12, 15, 233, 149,
+ 12, 15, 233, 148, 12, 15, 233, 147, 12, 15, 233, 146, 12, 15, 233, 145,
+ 12, 15, 233, 144, 12, 15, 233, 143, 12, 15, 233, 142, 12, 15, 233, 141,
+ 12, 15, 233, 140, 12, 15, 233, 139, 12, 15, 233, 138, 12, 15, 233, 137,
+ 12, 15, 233, 136, 12, 15, 233, 135, 12, 15, 233, 134, 12, 15, 233, 133,
+ 12, 15, 233, 132, 12, 15, 233, 131, 12, 15, 233, 130, 12, 15, 233, 129,
+ 12, 15, 233, 128, 12, 15, 233, 127, 12, 15, 233, 126, 12, 15, 233, 125,
+ 12, 15, 233, 124, 12, 15, 233, 123, 228, 14, 209, 255, 160, 211, 228,
+ 160, 240, 212, 82, 160, 217, 31, 82, 160, 42, 54, 160, 243, 97, 54, 160,
+ 218, 246, 54, 160, 250, 235, 160, 250, 160, 160, 49, 219, 76, 160, 50,
+ 219, 76, 160, 250, 59, 160, 91, 54, 160, 245, 233, 160, 235, 219, 160,
+ 239, 102, 211, 61, 160, 212, 0, 160, 17, 202, 84, 160, 17, 105, 160, 17,
+ 108, 160, 17, 147, 160, 17, 149, 160, 17, 170, 160, 17, 195, 160, 17,
+ 213, 111, 160, 17, 199, 160, 17, 222, 63, 160, 245, 242, 160, 213, 143,
+ 160, 227, 179, 54, 160, 241, 35, 54, 160, 237, 247, 54, 160, 217, 47, 82,
+ 160, 245, 231, 250, 49, 160, 8, 6, 1, 63, 160, 8, 6, 1, 249, 255, 160, 8,
+ 6, 1, 247, 125, 160, 8, 6, 1, 245, 51, 160, 8, 6, 1, 74, 160, 8, 6, 1,
+ 240, 174, 160, 8, 6, 1, 239, 75, 160, 8, 6, 1, 237, 171, 160, 8, 6, 1,
+ 75, 160, 8, 6, 1, 230, 184, 160, 8, 6, 1, 230, 54, 160, 8, 6, 1, 159,
+ 160, 8, 6, 1, 226, 185, 160, 8, 6, 1, 223, 163, 160, 8, 6, 1, 78, 160, 8,
+ 6, 1, 219, 184, 160, 8, 6, 1, 217, 134, 160, 8, 6, 1, 146, 160, 8, 6, 1,
+ 194, 160, 8, 6, 1, 210, 69, 160, 8, 6, 1, 68, 160, 8, 6, 1, 206, 164,
+ 160, 8, 6, 1, 204, 144, 160, 8, 6, 1, 203, 196, 160, 8, 6, 1, 203, 124,
+ 160, 8, 6, 1, 202, 159, 160, 49, 51, 155, 160, 216, 74, 212, 0, 160, 50,
+ 51, 155, 160, 246, 53, 251, 138, 160, 124, 227, 114, 160, 237, 254, 251,
+ 138, 160, 8, 5, 1, 63, 160, 8, 5, 1, 249, 255, 160, 8, 5, 1, 247, 125,
+ 160, 8, 5, 1, 245, 51, 160, 8, 5, 1, 74, 160, 8, 5, 1, 240, 174, 160, 8,
+ 5, 1, 239, 75, 160, 8, 5, 1, 237, 171, 160, 8, 5, 1, 75, 160, 8, 5, 1,
+ 230, 184, 160, 8, 5, 1, 230, 54, 160, 8, 5, 1, 159, 160, 8, 5, 1, 226,
+ 185, 160, 8, 5, 1, 223, 163, 160, 8, 5, 1, 78, 160, 8, 5, 1, 219, 184,
+ 160, 8, 5, 1, 217, 134, 160, 8, 5, 1, 146, 160, 8, 5, 1, 194, 160, 8, 5,
+ 1, 210, 69, 160, 8, 5, 1, 68, 160, 8, 5, 1, 206, 164, 160, 8, 5, 1, 204,
+ 144, 160, 8, 5, 1, 203, 196, 160, 8, 5, 1, 203, 124, 160, 8, 5, 1, 202,
+ 159, 160, 49, 245, 93, 155, 160, 80, 227, 114, 160, 50, 245, 93, 155,
+ 160, 208, 227, 247, 60, 209, 255, 57, 214, 71, 57, 214, 60, 57, 214, 49,
+ 57, 214, 37, 57, 214, 26, 57, 214, 15, 57, 214, 4, 57, 213, 249, 57, 213,
+ 238, 57, 213, 230, 57, 213, 229, 57, 213, 228, 57, 213, 227, 57, 213,
+ 225, 57, 213, 224, 57, 213, 223, 57, 213, 222, 57, 213, 221, 57, 213,
+ 220, 57, 213, 219, 57, 213, 218, 57, 213, 217, 57, 213, 216, 57, 213,
+ 214, 57, 213, 213, 57, 213, 212, 57, 213, 211, 57, 213, 210, 57, 213,
+ 209, 57, 213, 208, 57, 213, 207, 57, 213, 206, 57, 213, 205, 57, 213,
+ 203, 57, 213, 202, 57, 213, 201, 57, 213, 200, 57, 213, 199, 57, 213,
+ 198, 57, 213, 197, 57, 213, 196, 57, 213, 195, 57, 213, 194, 57, 213,
+ 192, 57, 213, 191, 57, 213, 190, 57, 213, 189, 57, 213, 188, 57, 213,
+ 187, 57, 213, 186, 57, 213, 185, 57, 213, 184, 57, 213, 183, 57, 213,
+ 181, 57, 213, 180, 57, 213, 179, 57, 213, 178, 57, 213, 177, 57, 213,
+ 176, 57, 213, 175, 57, 213, 174, 57, 213, 173, 57, 213, 172, 57, 213,
+ 170, 57, 213, 169, 57, 213, 168, 57, 213, 167, 57, 213, 166, 57, 213,
+ 165, 57, 213, 164, 57, 213, 163, 57, 213, 162, 57, 213, 161, 57, 213,
+ 159, 57, 213, 158, 57, 213, 157, 57, 213, 156, 57, 213, 155, 57, 213,
+ 154, 57, 213, 153, 57, 213, 152, 57, 213, 151, 57, 213, 150, 57, 214,
+ 147, 57, 214, 146, 57, 214, 145, 57, 214, 144, 57, 214, 143, 57, 214,
+ 142, 57, 214, 141, 57, 214, 140, 57, 214, 139, 57, 214, 138, 57, 214,
+ 136, 57, 214, 135, 57, 214, 134, 57, 214, 133, 57, 214, 132, 57, 214,
+ 131, 57, 214, 130, 57, 214, 129, 57, 214, 128, 57, 214, 127, 57, 214,
+ 125, 57, 214, 124, 57, 214, 123, 57, 214, 122, 57, 214, 121, 57, 214,
+ 120, 57, 214, 119, 57, 214, 118, 57, 214, 117, 57, 214, 116, 57, 214,
+ 114, 57, 214, 113, 57, 214, 112, 57, 214, 111, 57, 214, 110, 57, 214,
+ 109, 57, 214, 108, 57, 214, 107, 57, 214, 106, 57, 214, 105, 57, 214,
+ 103, 57, 214, 102, 57, 214, 101, 57, 214, 100, 57, 214, 99, 57, 214, 98,
+ 57, 214, 97, 57, 214, 96, 57, 214, 95, 57, 214, 94, 57, 214, 92, 57, 214,
+ 91, 57, 214, 90, 57, 214, 89, 57, 214, 88, 57, 214, 87, 57, 214, 86, 57,
+ 214, 85, 57, 214, 84, 57, 214, 83, 57, 214, 81, 57, 214, 80, 57, 214, 79,
+ 57, 214, 78, 57, 214, 77, 57, 214, 76, 57, 214, 75, 57, 214, 74, 57, 214,
+ 73, 57, 214, 72, 57, 214, 70, 57, 214, 69, 57, 214, 68, 57, 214, 67, 57,
+ 214, 66, 57, 214, 65, 57, 214, 64, 57, 214, 63, 57, 214, 62, 57, 214, 61,
+ 57, 214, 59, 57, 214, 58, 57, 214, 57, 57, 214, 56, 57, 214, 55, 57, 214,
+ 54, 57, 214, 53, 57, 214, 52, 57, 214, 51, 57, 214, 50, 57, 214, 48, 57,
+ 214, 47, 57, 214, 46, 57, 214, 45, 57, 214, 44, 57, 214, 43, 57, 214, 42,
+ 57, 214, 41, 57, 214, 40, 57, 214, 39, 57, 214, 36, 57, 214, 35, 57, 214,
+ 34, 57, 214, 33, 57, 214, 32, 57, 214, 31, 57, 214, 30, 57, 214, 29, 57,
+ 214, 28, 57, 214, 27, 57, 214, 25, 57, 214, 24, 57, 214, 23, 57, 214, 22,
+ 57, 214, 21, 57, 214, 20, 57, 214, 19, 57, 214, 18, 57, 214, 17, 57, 214,
+ 16, 57, 214, 14, 57, 214, 13, 57, 214, 12, 57, 214, 11, 57, 214, 10, 57,
+ 214, 9, 57, 214, 8, 57, 214, 7, 57, 214, 6, 57, 214, 5, 57, 214, 3, 57,
+ 214, 2, 57, 214, 1, 57, 214, 0, 57, 213, 255, 57, 213, 254, 57, 213, 253,
+ 57, 213, 252, 57, 213, 251, 57, 213, 250, 57, 213, 248, 57, 213, 247, 57,
+ 213, 246, 57, 213, 245, 57, 213, 244, 57, 213, 243, 57, 213, 242, 57,
+ 213, 241, 57, 213, 240, 57, 213, 239, 57, 213, 237, 57, 213, 236, 57,
+ 213, 235, 57, 213, 234, 57, 213, 233, 57, 213, 232, 57, 213, 231, 221,
+ 48, 221, 50, 211, 90, 76, 237, 61, 212, 3, 211, 90, 76, 209, 112, 211,
+ 12, 241, 84, 76, 209, 112, 240, 240, 241, 84, 76, 208, 105, 241, 47, 241,
+ 71, 241, 72, 251, 130, 251, 131, 251, 27, 248, 131, 249, 19, 247, 199,
+ 167, 210, 5, 236, 106, 210, 5, 236, 31, 210, 10, 227, 115, 240, 51, 222,
+ 214, 227, 114, 241, 84, 76, 227, 114, 227, 163, 221, 253, 241, 50, 227,
+ 115, 210, 5, 80, 210, 5, 204, 165, 239, 159, 240, 51, 240, 30, 247, 25,
+ 216, 77, 245, 147, 213, 7, 219, 211, 227, 41, 105, 212, 13, 213, 7, 231,
+ 49, 227, 41, 202, 84, 212, 162, 244, 139, 227, 105, 241, 9, 243, 123,
+ 244, 8, 245, 184, 105, 244, 128, 244, 8, 245, 184, 108, 244, 127, 244, 8,
+ 245, 184, 147, 244, 126, 244, 8, 245, 184, 149, 244, 125, 182, 251, 130,
+ 223, 89, 210, 95, 231, 112, 210, 99, 241, 84, 76, 208, 106, 248, 33, 240,
+ 247, 247, 59, 247, 61, 241, 84, 76, 225, 9, 241, 48, 210, 242, 211, 3,
+ 241, 9, 241, 10, 231, 25, 213, 131, 149, 240, 11, 213, 130, 239, 112,
+ 231, 25, 213, 131, 147, 237, 238, 213, 130, 237, 235, 231, 25, 213, 131,
+ 108, 216, 149, 213, 130, 215, 150, 231, 25, 213, 131, 105, 206, 236, 213,
+ 130, 206, 193, 211, 231, 244, 46, 244, 48, 219, 157, 246, 182, 219, 159,
+ 138, 220, 80, 217, 240, 236, 109, 247, 218, 218, 236, 237, 27, 247, 230,
+ 221, 192, 247, 218, 237, 27, 223, 53, 231, 35, 231, 37, 222, 208, 227,
+ 114, 222, 231, 211, 90, 76, 214, 152, 250, 120, 211, 164, 241, 84, 76,
+ 214, 152, 250, 120, 241, 12, 167, 210, 6, 213, 117, 236, 106, 210, 6,
+ 213, 117, 236, 28, 167, 210, 6, 3, 230, 66, 236, 106, 210, 6, 3, 230, 66,
+ 236, 29, 227, 115, 210, 6, 213, 117, 80, 210, 6, 213, 117, 204, 164, 219,
+ 69, 227, 115, 239, 151, 219, 69, 227, 115, 242, 70, 218, 87, 219, 69,
+ 227, 115, 249, 18, 219, 69, 227, 115, 206, 224, 218, 82, 216, 74, 227,
+ 115, 240, 51, 216, 74, 231, 35, 216, 57, 212, 120, 213, 7, 108, 212, 117,
+ 211, 166, 212, 120, 213, 7, 147, 212, 116, 211, 165, 244, 8, 245, 184,
+ 211, 34, 244, 123, 217, 227, 206, 192, 105, 217, 227, 206, 190, 217, 190,
+ 217, 227, 206, 192, 108, 217, 227, 206, 189, 217, 189, 213, 118, 208,
+ 104, 211, 89, 211, 17, 247, 60, 246, 182, 247, 1, 224, 224, 204, 103,
+ 223, 181, 211, 90, 76, 237, 223, 250, 120, 211, 90, 76, 217, 208, 250,
+ 120, 211, 230, 241, 84, 76, 237, 223, 250, 120, 241, 84, 76, 217, 208,
+ 250, 120, 241, 45, 211, 90, 76, 211, 34, 211, 245, 212, 120, 238, 3, 167,
+ 230, 241, 213, 95, 212, 120, 167, 230, 241, 214, 191, 245, 184, 213, 127,
+ 230, 241, 245, 111, 211, 35, 209, 138, 211, 108, 220, 0, 210, 84, 245,
+ 232, 219, 226, 217, 228, 224, 223, 218, 72, 250, 156, 217, 222, 245, 232,
+ 250, 172, 223, 41, 212, 171, 8, 6, 1, 238, 119, 8, 5, 1, 238, 119, 246,
+ 201, 251, 8, 210, 89, 210, 248, 245, 243, 212, 68, 227, 222, 200, 1, 227,
+ 68, 228, 12, 1, 239, 187, 239, 178, 228, 12, 1, 239, 187, 240, 63, 228,
+ 12, 1, 215, 227, 228, 12, 1, 227, 49, 77, 131, 248, 45, 212, 238, 238,
+ 82, 224, 173, 216, 64, 239, 89, 239, 88, 239, 87, 223, 183, 201, 243,
+ 201, 244, 201, 246, 226, 243, 215, 235, 226, 245, 215, 237, 219, 37, 226,
+ 242, 215, 234, 221, 223, 224, 86, 204, 2, 226, 244, 215, 236, 239, 111,
+ 219, 36, 204, 52, 241, 107, 239, 99, 224, 154, 220, 32, 206, 194, 97,
+ 224, 154, 244, 145, 97, 96, 208, 84, 53, 3, 52, 80, 95, 86, 208, 84, 53,
+ 3, 52, 80, 95, 11, 4, 230, 199, 82, 217, 241, 239, 159, 35, 80, 50, 61,
+ 227, 185, 155, 205, 165, 205, 54, 204, 242, 204, 231, 204, 220, 204, 209,
+ 204, 198, 204, 187, 204, 176, 205, 164, 205, 153, 205, 142, 205, 131,
+ 205, 120, 205, 109, 205, 98, 247, 130, 219, 241, 82, 248, 13, 201, 245,
+ 9, 2, 221, 57, 209, 141, 9, 2, 221, 57, 115, 221, 57, 247, 161, 115, 247,
+ 160, 60, 31, 16, 239, 110, 212, 64, 246, 102, 206, 65, 205, 87, 205, 76,
+ 205, 65, 205, 53, 205, 42, 205, 31, 205, 20, 205, 9, 204, 254, 204, 246,
+ 204, 245, 204, 244, 204, 243, 204, 241, 204, 240, 204, 239, 204, 238,
+ 204, 237, 204, 236, 204, 235, 204, 234, 204, 233, 204, 232, 204, 230,
+ 204, 229, 204, 228, 204, 227, 204, 226, 204, 225, 204, 224, 204, 223,
+ 204, 222, 204, 221, 204, 219, 204, 218, 204, 217, 204, 216, 204, 215,
+ 204, 214, 204, 213, 204, 212, 204, 211, 204, 210, 204, 208, 204, 207,
+ 204, 206, 204, 205, 204, 204, 204, 203, 204, 202, 204, 201, 204, 200,
+ 204, 199, 204, 197, 204, 196, 204, 195, 204, 194, 204, 193, 204, 192,
+ 204, 191, 204, 190, 204, 189, 204, 188, 204, 186, 204, 185, 204, 184,
+ 204, 183, 204, 182, 204, 181, 204, 180, 204, 179, 204, 178, 204, 177,
+ 204, 175, 204, 174, 204, 173, 204, 172, 204, 171, 204, 170, 204, 169,
+ 204, 168, 204, 167, 204, 166, 205, 163, 205, 162, 205, 161, 205, 160,
+ 205, 159, 205, 158, 205, 157, 205, 156, 205, 155, 205, 154, 205, 152,
+ 205, 151, 205, 150, 205, 149, 205, 148, 205, 147, 205, 146, 205, 145,
+ 205, 144, 205, 143, 205, 141, 205, 140, 205, 139, 205, 138, 205, 137,
+ 205, 136, 205, 135, 205, 134, 205, 133, 205, 132, 205, 130, 205, 129,
+ 205, 128, 205, 127, 205, 126, 205, 125, 205, 124, 205, 123, 205, 122,
+ 205, 121, 205, 119, 205, 118, 205, 117, 205, 116, 205, 115, 205, 114,
+ 205, 113, 205, 112, 205, 111, 205, 110, 205, 108, 205, 107, 205, 106,
+ 205, 105, 205, 104, 205, 103, 205, 102, 205, 101, 205, 100, 205, 99, 205,
+ 97, 205, 96, 205, 95, 205, 94, 205, 93, 205, 92, 205, 91, 205, 90, 205,
+ 89, 205, 88, 205, 86, 205, 85, 205, 84, 205, 83, 205, 82, 205, 81, 205,
+ 80, 205, 79, 205, 78, 205, 77, 205, 75, 205, 74, 205, 73, 205, 72, 205,
+ 71, 205, 70, 205, 69, 205, 68, 205, 67, 205, 66, 205, 64, 205, 63, 205,
+ 62, 205, 61, 205, 60, 205, 59, 205, 58, 205, 57, 205, 56, 205, 55, 205,
+ 52, 205, 51, 205, 50, 205, 49, 205, 48, 205, 47, 205, 46, 205, 45, 205,
+ 44, 205, 43, 205, 41, 205, 40, 205, 39, 205, 38, 205, 37, 205, 36, 205,
+ 35, 205, 34, 205, 33, 205, 32, 205, 30, 205, 29, 205, 28, 205, 27, 205,
+ 26, 205, 25, 205, 24, 205, 23, 205, 22, 205, 21, 205, 19, 205, 18, 205,
+ 17, 205, 16, 205, 15, 205, 14, 205, 13, 205, 12, 205, 11, 205, 10, 205,
+ 8, 205, 7, 205, 6, 205, 5, 205, 4, 205, 3, 205, 2, 205, 1, 205, 0, 204,
+ 255, 204, 253, 204, 252, 204, 251, 204, 250, 204, 249, 204, 248, 204,
+ 247, 8, 6, 1, 34, 3, 225, 171, 25, 237, 253, 8, 5, 1, 34, 3, 225, 171,
+ 25, 237, 253, 8, 6, 1, 188, 3, 80, 227, 115, 56, 8, 5, 1, 188, 3, 80,
+ 227, 115, 56, 8, 6, 1, 188, 3, 80, 227, 115, 248, 126, 25, 237, 253, 8,
+ 5, 1, 188, 3, 80, 227, 115, 248, 126, 25, 237, 253, 8, 6, 1, 188, 3, 80,
+ 227, 115, 248, 126, 25, 165, 8, 5, 1, 188, 3, 80, 227, 115, 248, 126, 25,
+ 165, 8, 6, 1, 188, 3, 246, 53, 25, 225, 170, 8, 5, 1, 188, 3, 246, 53,
+ 25, 225, 170, 8, 6, 1, 188, 3, 246, 53, 25, 247, 29, 8, 5, 1, 188, 3,
+ 246, 53, 25, 247, 29, 8, 6, 1, 235, 206, 3, 225, 171, 25, 237, 253, 8, 5,
+ 1, 235, 206, 3, 225, 171, 25, 237, 253, 8, 5, 1, 235, 206, 3, 70, 87, 25,
+ 165, 8, 5, 1, 222, 206, 3, 208, 228, 55, 8, 6, 1, 158, 3, 80, 227, 115,
+ 56, 8, 5, 1, 158, 3, 80, 227, 115, 56, 8, 6, 1, 158, 3, 80, 227, 115,
+ 248, 126, 25, 237, 253, 8, 5, 1, 158, 3, 80, 227, 115, 248, 126, 25, 237,
+ 253, 8, 6, 1, 158, 3, 80, 227, 115, 248, 126, 25, 165, 8, 5, 1, 158, 3,
+ 80, 227, 115, 248, 126, 25, 165, 8, 6, 1, 215, 94, 3, 80, 227, 115, 56,
+ 8, 5, 1, 215, 94, 3, 80, 227, 115, 56, 8, 6, 1, 106, 3, 225, 171, 25,
+ 237, 253, 8, 5, 1, 106, 3, 225, 171, 25, 237, 253, 8, 6, 1, 34, 3, 220,
+ 63, 25, 165, 8, 5, 1, 34, 3, 220, 63, 25, 165, 8, 6, 1, 34, 3, 220, 63,
+ 25, 208, 227, 8, 5, 1, 34, 3, 220, 63, 25, 208, 227, 8, 6, 1, 188, 3,
+ 220, 63, 25, 165, 8, 5, 1, 188, 3, 220, 63, 25, 165, 8, 6, 1, 188, 3,
+ 220, 63, 25, 208, 227, 8, 5, 1, 188, 3, 220, 63, 25, 208, 227, 8, 6, 1,
+ 188, 3, 70, 87, 25, 165, 8, 5, 1, 188, 3, 70, 87, 25, 165, 8, 6, 1, 188,
+ 3, 70, 87, 25, 208, 227, 8, 5, 1, 188, 3, 70, 87, 25, 208, 227, 8, 5, 1,
+ 235, 206, 3, 70, 87, 25, 237, 253, 8, 5, 1, 235, 206, 3, 70, 87, 25, 208,
+ 227, 8, 6, 1, 235, 206, 3, 220, 63, 25, 165, 8, 5, 1, 235, 206, 3, 220,
+ 63, 25, 70, 87, 25, 165, 8, 6, 1, 235, 206, 3, 220, 63, 25, 208, 227, 8,
+ 5, 1, 235, 206, 3, 220, 63, 25, 70, 87, 25, 208, 227, 8, 6, 1, 230, 185,
+ 3, 208, 227, 8, 5, 1, 230, 185, 3, 70, 87, 25, 208, 227, 8, 6, 1, 228,
+ 131, 3, 208, 227, 8, 5, 1, 228, 131, 3, 208, 227, 8, 6, 1, 226, 186, 3,
+ 208, 227, 8, 5, 1, 226, 186, 3, 208, 227, 8, 6, 1, 217, 1, 3, 208, 227,
+ 8, 5, 1, 217, 1, 3, 208, 227, 8, 6, 1, 106, 3, 220, 63, 25, 165, 8, 5, 1,
+ 106, 3, 220, 63, 25, 165, 8, 6, 1, 106, 3, 220, 63, 25, 208, 227, 8, 5,
+ 1, 106, 3, 220, 63, 25, 208, 227, 8, 6, 1, 106, 3, 225, 171, 25, 165, 8,
+ 5, 1, 106, 3, 225, 171, 25, 165, 8, 6, 1, 106, 3, 225, 171, 25, 208, 227,
+ 8, 5, 1, 106, 3, 225, 171, 25, 208, 227, 8, 5, 1, 251, 110, 3, 237, 253,
+ 8, 5, 1, 171, 158, 3, 237, 253, 8, 5, 1, 171, 158, 3, 165, 8, 5, 1, 207,
+ 174, 206, 165, 3, 237, 253, 8, 5, 1, 207, 174, 206, 165, 3, 165, 8, 5, 1,
+ 214, 193, 3, 237, 253, 8, 5, 1, 214, 193, 3, 165, 8, 5, 1, 236, 115, 214,
+ 193, 3, 237, 253, 8, 5, 1, 236, 115, 214, 193, 3, 165, 10, 213, 127, 89,
+ 3, 237, 128, 87, 3, 251, 30, 10, 213, 127, 89, 3, 237, 128, 87, 3, 204,
+ 70, 10, 213, 127, 89, 3, 237, 128, 87, 3, 137, 225, 129, 10, 213, 127,
+ 89, 3, 237, 128, 87, 3, 220, 73, 10, 213, 127, 89, 3, 237, 128, 87, 3,
+ 68, 10, 213, 127, 89, 3, 237, 128, 87, 3, 202, 213, 10, 213, 127, 89, 3,
+ 237, 128, 87, 3, 74, 10, 213, 127, 89, 3, 237, 128, 87, 3, 251, 109, 10,
+ 213, 127, 221, 179, 3, 229, 189, 179, 1, 229, 119, 44, 109, 230, 54, 44,
+ 109, 222, 205, 44, 109, 247, 125, 44, 109, 221, 13, 44, 109, 207, 244,
+ 44, 109, 221, 228, 44, 109, 210, 69, 44, 109, 223, 163, 44, 109, 219,
+ 184, 44, 109, 226, 185, 44, 109, 203, 124, 44, 109, 146, 44, 109, 159,
+ 44, 109, 206, 164, 44, 109, 227, 69, 44, 109, 227, 78, 44, 109, 215, 186,
+ 44, 109, 221, 210, 44, 109, 230, 184, 44, 109, 213, 92, 44, 109, 211,
+ 167, 44, 109, 194, 44, 109, 237, 171, 44, 109, 228, 224, 44, 4, 230, 41,
+ 44, 4, 229, 100, 44, 4, 229, 87, 44, 4, 228, 209, 44, 4, 228, 174, 44, 4,
+ 229, 201, 44, 4, 229, 198, 44, 4, 230, 18, 44, 4, 229, 26, 44, 4, 229, 6,
+ 44, 4, 229, 219, 44, 4, 222, 202, 44, 4, 222, 151, 44, 4, 222, 147, 44,
+ 4, 222, 116, 44, 4, 222, 108, 44, 4, 222, 190, 44, 4, 222, 188, 44, 4,
+ 222, 199, 44, 4, 222, 128, 44, 4, 222, 123, 44, 4, 222, 192, 44, 4, 247,
+ 91, 44, 4, 246, 79, 44, 4, 246, 69, 44, 4, 245, 110, 44, 4, 245, 76, 44,
+ 4, 246, 238, 44, 4, 246, 230, 44, 4, 247, 80, 44, 4, 245, 254, 44, 4,
+ 245, 180, 44, 4, 247, 15, 44, 4, 221, 10, 44, 4, 220, 248, 44, 4, 220,
+ 243, 44, 4, 220, 226, 44, 4, 220, 218, 44, 4, 221, 1, 44, 4, 221, 0, 44,
+ 4, 221, 7, 44, 4, 220, 233, 44, 4, 220, 230, 44, 4, 221, 4, 44, 4, 207,
+ 240, 44, 4, 207, 220, 44, 4, 207, 219, 44, 4, 207, 208, 44, 4, 207, 205,
+ 44, 4, 207, 236, 44, 4, 207, 235, 44, 4, 207, 239, 44, 4, 207, 218, 44,
+ 4, 207, 217, 44, 4, 207, 238, 44, 4, 221, 226, 44, 4, 221, 212, 44, 4,
+ 221, 211, 44, 4, 221, 195, 44, 4, 221, 194, 44, 4, 221, 222, 44, 4, 221,
+ 221, 44, 4, 221, 225, 44, 4, 221, 197, 44, 4, 221, 196, 44, 4, 221, 224,
+ 44, 4, 210, 18, 44, 4, 209, 2, 44, 4, 208, 242, 44, 4, 207, 203, 44, 4,
+ 207, 165, 44, 4, 209, 187, 44, 4, 209, 176, 44, 4, 209, 250, 44, 4, 135,
+ 44, 4, 208, 148, 44, 4, 209, 207, 44, 4, 223, 106, 44, 4, 222, 100, 44,
+ 4, 222, 75, 44, 4, 221, 84, 44, 4, 221, 25, 44, 4, 222, 240, 44, 4, 222,
+ 235, 44, 4, 223, 92, 44, 4, 221, 191, 44, 4, 221, 180, 44, 4, 223, 65,
+ 44, 4, 219, 168, 44, 4, 218, 167, 44, 4, 218, 129, 44, 4, 217, 191, 44,
+ 4, 217, 157, 44, 4, 219, 34, 44, 4, 219, 23, 44, 4, 219, 148, 44, 4, 218,
+ 69, 44, 4, 218, 45, 44, 4, 219, 48, 44, 4, 225, 175, 44, 4, 224, 155, 44,
+ 4, 224, 125, 44, 4, 223, 246, 44, 4, 223, 192, 44, 4, 225, 20, 44, 4,
+ 225, 8, 44, 4, 225, 140, 44, 4, 224, 82, 44, 4, 224, 35, 44, 4, 225, 67,
+ 44, 4, 203, 110, 44, 4, 203, 11, 44, 4, 203, 2, 44, 4, 202, 213, 44, 4,
+ 202, 181, 44, 4, 203, 52, 44, 4, 203, 49, 44, 4, 203, 89, 44, 4, 202,
+ 247, 44, 4, 202, 232, 44, 4, 203, 62, 44, 4, 216, 216, 44, 4, 216, 57,
+ 44, 4, 216, 3, 44, 4, 215, 145, 44, 4, 215, 114, 44, 4, 216, 158, 44, 4,
+ 216, 135, 44, 4, 216, 197, 44, 4, 215, 227, 44, 4, 215, 208, 44, 4, 216,
+ 167, 44, 4, 228, 112, 44, 4, 227, 148, 44, 4, 227, 130, 44, 4, 226, 239,
+ 44, 4, 226, 210, 44, 4, 227, 234, 44, 4, 227, 226, 44, 4, 228, 86, 44, 4,
+ 227, 49, 44, 4, 227, 18, 44, 4, 227, 251, 44, 4, 206, 85, 44, 4, 205,
+ 230, 44, 4, 205, 215, 44, 4, 204, 163, 44, 4, 204, 156, 44, 4, 206, 55,
+ 44, 4, 206, 50, 44, 4, 206, 81, 44, 4, 205, 189, 44, 4, 205, 176, 44, 4,
+ 206, 61, 44, 4, 227, 67, 44, 4, 227, 62, 44, 4, 227, 61, 44, 4, 227, 58,
+ 44, 4, 227, 57, 44, 4, 227, 64, 44, 4, 227, 63, 44, 4, 227, 66, 44, 4,
+ 227, 60, 44, 4, 227, 59, 44, 4, 227, 65, 44, 4, 227, 76, 44, 4, 227, 71,
+ 44, 4, 227, 70, 44, 4, 227, 54, 44, 4, 227, 53, 44, 4, 227, 73, 44, 4,
+ 227, 72, 44, 4, 227, 75, 44, 4, 227, 56, 44, 4, 227, 55, 44, 4, 227, 74,
+ 44, 4, 215, 184, 44, 4, 215, 173, 44, 4, 215, 172, 44, 4, 215, 165, 44,
+ 4, 215, 158, 44, 4, 215, 180, 44, 4, 215, 179, 44, 4, 215, 183, 44, 4,
+ 215, 171, 44, 4, 215, 170, 44, 4, 215, 182, 44, 4, 221, 208, 44, 4, 221,
+ 203, 44, 4, 221, 202, 44, 4, 221, 199, 44, 4, 221, 198, 44, 4, 221, 205,
+ 44, 4, 221, 204, 44, 4, 221, 207, 44, 4, 221, 201, 44, 4, 221, 200, 44,
+ 4, 221, 206, 44, 4, 230, 180, 44, 4, 230, 141, 44, 4, 230, 134, 44, 4,
+ 230, 82, 44, 4, 230, 64, 44, 4, 230, 161, 44, 4, 230, 159, 44, 4, 230,
+ 174, 44, 4, 230, 101, 44, 4, 230, 91, 44, 4, 230, 167, 44, 4, 213, 85,
+ 44, 4, 213, 11, 44, 4, 213, 6, 44, 4, 212, 199, 44, 4, 212, 182, 44, 4,
+ 213, 43, 44, 4, 213, 41, 44, 4, 213, 74, 44, 4, 212, 242, 44, 4, 212,
+ 236, 44, 4, 213, 52, 44, 4, 211, 163, 44, 4, 211, 132, 44, 4, 211, 128,
+ 44, 4, 211, 119, 44, 4, 211, 116, 44, 4, 211, 138, 44, 4, 211, 137, 44,
+ 4, 211, 162, 44, 4, 211, 124, 44, 4, 211, 123, 44, 4, 211, 140, 44, 4,
+ 215, 33, 44, 4, 212, 162, 44, 4, 212, 142, 44, 4, 211, 10, 44, 4, 210,
+ 179, 44, 4, 214, 177, 44, 4, 214, 165, 44, 4, 215, 18, 44, 4, 212, 13,
+ 44, 4, 211, 250, 44, 4, 214, 217, 44, 4, 237, 157, 44, 4, 237, 3, 44, 4,
+ 236, 239, 44, 4, 236, 26, 44, 4, 236, 1, 44, 4, 237, 67, 44, 4, 237, 48,
+ 44, 4, 237, 147, 44, 4, 236, 136, 44, 4, 236, 117, 44, 4, 237, 76, 44, 4,
+ 228, 223, 44, 4, 228, 222, 44, 4, 228, 217, 44, 4, 228, 216, 44, 4, 228,
+ 213, 44, 4, 228, 212, 44, 4, 228, 219, 44, 4, 228, 218, 44, 4, 228, 221,
+ 44, 4, 228, 215, 44, 4, 228, 214, 44, 4, 228, 220, 44, 4, 212, 205, 140,
+ 109, 2, 203, 75, 140, 109, 2, 216, 186, 140, 109, 2, 216, 102, 114, 1,
+ 207, 95, 85, 109, 2, 245, 249, 173, 85, 109, 2, 245, 249, 229, 144, 85,
+ 109, 2, 245, 249, 229, 26, 85, 109, 2, 245, 249, 229, 115, 85, 109, 2,
+ 245, 249, 222, 128, 85, 109, 2, 245, 249, 247, 92, 85, 109, 2, 245, 249,
+ 246, 199, 85, 109, 2, 245, 249, 245, 254, 85, 109, 2, 245, 249, 246, 116,
+ 85, 109, 2, 245, 249, 220, 233, 85, 109, 2, 245, 249, 244, 212, 85, 109,
+ 2, 245, 249, 207, 229, 85, 109, 2, 245, 249, 243, 113, 85, 109, 2, 245,
+ 249, 207, 224, 85, 109, 2, 245, 249, 201, 201, 85, 109, 2, 245, 249, 210,
+ 22, 85, 109, 2, 245, 249, 209, 108, 85, 109, 2, 245, 249, 135, 85, 109,
+ 2, 245, 249, 209, 47, 85, 109, 2, 245, 249, 221, 191, 85, 109, 2, 245,
+ 249, 249, 32, 85, 109, 2, 245, 249, 218, 208, 85, 109, 2, 245, 249, 218,
+ 69, 85, 109, 2, 245, 249, 218, 180, 85, 109, 2, 245, 249, 224, 82, 85,
+ 109, 2, 245, 249, 202, 247, 85, 109, 2, 245, 249, 215, 227, 85, 109, 2,
+ 245, 249, 227, 49, 85, 109, 2, 245, 249, 205, 189, 85, 109, 2, 245, 249,
+ 213, 90, 85, 109, 2, 245, 249, 211, 164, 85, 109, 2, 245, 249, 215, 36,
+ 85, 109, 2, 245, 249, 152, 85, 109, 2, 245, 249, 228, 113, 85, 22, 2,
+ 245, 249, 217, 126, 85, 231, 36, 22, 2, 245, 249, 217, 65, 85, 231, 36,
+ 22, 2, 245, 249, 215, 102, 85, 231, 36, 22, 2, 245, 249, 215, 95, 85,
+ 231, 36, 22, 2, 245, 249, 217, 106, 85, 22, 2, 220, 39, 85, 22, 2, 251,
+ 242, 172, 1, 248, 79, 222, 203, 172, 1, 248, 79, 222, 151, 172, 1, 248,
+ 79, 222, 116, 172, 1, 248, 79, 222, 190, 172, 1, 248, 79, 222, 128, 67,
+ 1, 248, 79, 222, 203, 67, 1, 248, 79, 222, 151, 67, 1, 248, 79, 222, 116,
+ 67, 1, 248, 79, 222, 190, 67, 1, 248, 79, 222, 128, 67, 1, 251, 57, 246,
+ 238, 67, 1, 251, 57, 207, 203, 67, 1, 251, 57, 135, 67, 1, 251, 57, 219,
+ 184, 65, 1, 240, 198, 240, 197, 245, 188, 143, 142, 65, 1, 240, 197, 240,
+ 198, 245, 188, 143, 142,
};
static unsigned char phrasebook_offset1[] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
- 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 104, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 105, 106, 107, 108, 109,
- 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
- 124, 125, 126, 127, 128, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 129, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 130, 131,
- 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
- 146, 147, 87, 148, 149, 150, 151, 152, 87, 87, 87, 87, 87, 87, 153, 87,
- 154, 155, 156, 87, 157, 87, 158, 87, 87, 87, 159, 87, 87, 87, 160, 161,
- 162, 163, 87, 87, 87, 87, 87, 87, 87, 87, 87, 164, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 165, 166, 167, 168,
- 169, 170, 171, 87, 172, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 173, 174, 175, 176, 177, 178,
- 179, 180, 181, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 182,
- 183, 184, 185, 186, 87, 87, 87, 87, 87, 87, 87, 87, 87, 187, 188, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 189, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 190, 191, 192, 193, 194, 87, 195,
- 87, 196, 197, 198, 199, 200, 201, 202, 203, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 204, 205, 87, 87, 206, 207, 208, 209, 210, 87, 211, 212, 213, 214,
- 215, 216, 217, 218, 219, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 220, 221,
- 222, 223, 224, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 225, 87, 226, 227,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 228, 229, 230, 231, 232, 233, 234, 235, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87,
+ 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 53, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 65, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 66, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 67, 68, 69, 70, 71, 72,
+ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 52, 87, 52, 88,
+ 89, 90, 91, 92, 93, 94, 95, 96, 52, 97, 52, 52, 52, 52, 52, 98, 99, 100,
+ 101, 102, 103, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 104, 105, 106,
+ 107, 108, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 109, 110, 111, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 112, 113, 114, 115, 52, 52, 52, 116, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 117, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 118, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 119, 120,
+ 121, 122, 123, 124, 125, 126, 127, 128, 129, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 130, 52, 52, 52, 52, 52, 131, 52, 132, 133, 134,
+ 135, 136, 137, 138, 139, 140, 141, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 142, 143, 144, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 145, 146, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 147, 148, 149,
+ 150, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52,
};
static unsigned int phrasebook_offset2[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 6, 9, 11, 14, 17, 19, 21, 24, 27, 29, 31,
- 33, 35, 39, 41, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 69, 72,
- 75, 78, 82, 86, 91, 96, 101, 105, 110, 115, 120, 124, 129, 134, 138, 142,
- 147, 151, 156, 161, 165, 170, 175, 179, 184, 189, 194, 199, 204, 207,
- 211, 214, 218, 221, 225, 229, 234, 239, 244, 248, 253, 258, 263, 267,
- 272, 277, 281, 285, 290, 294, 299, 304, 308, 313, 318, 322, 327, 332,
- 337, 342, 347, 351, 354, 358, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 359, 363, 368,
- 371, 374, 377, 380, 383, 386, 388, 391, 397, 405, 408, 412, 415, 417,
- 420, 423, 426, 429, 433, 436, 439, 443, 445, 448, 454, 462, 469, 476,
- 483, 488, 495, 501, 508, 514, 521, 529, 534, 542, 549, 555, 562, 569,
- 577, 584, 592, 600, 605, 612, 619, 625, 632, 638, 645, 648, 654, 661,
- 667, 674, 681, 688, 693, 700, 707, 713, 720, 726, 733, 741, 746, 754,
- 761, 767, 774, 781, 789, 796, 804, 812, 817, 824, 831, 837, 844, 850,
- 857, 860, 866, 873, 879, 886, 893, 900, 905, 913, 920, 927, 934, 941,
- 948, 955, 962, 969, 977, 985, 993, 1001, 1009, 1017, 1025, 1033, 1040,
- 1047, 1054, 1061, 1068, 1075, 1082, 1089, 1096, 1103, 1110, 1117, 1125,
- 1133, 1141, 1149, 1157, 1165, 1173, 1181, 1189, 1197, 1204, 1211, 1218,
- 1225, 1233, 1241, 1249, 1257, 1265, 1273, 1281, 1287, 1292, 1297, 1305,
- 1313, 1321, 1329, 1334, 1341, 1348, 1356, 1364, 1372, 1380, 1390, 1400,
- 1407, 1414, 1421, 1428, 1436, 1444, 1452, 1460, 1471, 1476, 1481, 1488,
- 1495, 1502, 1509, 1516, 1523, 1528, 1533, 1540, 1547, 1555, 1563, 1571,
- 1579, 1586, 1593, 1601, 1609, 1617, 1625, 1633, 1641, 1649, 1657, 1665,
- 1673, 1680, 1687, 1693, 1699, 1706, 1713, 1720, 1727, 1735, 1743, 1750,
- 1757, 1764, 1771, 1779, 1787, 1795, 1803, 1811, 1818, 1825, 1833, 1841,
- 1849, 1857, 1863, 1869, 1875, 1882, 1889, 1894, 1899, 1904, 1911, 1918,
- 1925, 1932, 1940, 1948, 1955, 1961, 1966, 1971, 1978, 1985, 1992, 1997,
- 2002, 2007, 2014, 2021, 2028, 2035, 2042, 2048, 2056, 2066, 2074, 2081,
- 2088, 2093, 2098, 2105, 2112, 2116, 2121, 2126, 2131, 2139, 2148, 2155,
- 2162, 2171, 2178, 2185, 2190, 2197, 2204, 2211, 2218, 2225, 2230, 2237,
- 2244, 2252, 2257, 2262, 2267, 2277, 2281, 2287, 2293, 2299, 2305, 2313,
- 2326, 2334, 2339, 2349, 2354, 2359, 2369, 2374, 2381, 2388, 2396, 2404,
- 2411, 2418, 2425, 2432, 2442, 2452, 2461, 2470, 2480, 2490, 2500, 2510,
- 2516, 2526, 2536, 2546, 2556, 2564, 2572, 2579, 2586, 2594, 2602, 2610,
- 2618, 2625, 2632, 2642, 2652, 2660, 2668, 2676, 2681, 2691, 2696, 2703,
- 2710, 2715, 2720, 2728, 2736, 2746, 2756, 2763, 2770, 2779, 2788, 2796,
- 2804, 2813, 2822, 2830, 2838, 2847, 2856, 2865, 2874, 2884, 2894, 2902,
- 2910, 2919, 2928, 2937, 2946, 2956, 2966, 2974, 2982, 2991, 3000, 3009,
- 3018, 3027, 3036, 3041, 3046, 3054, 3062, 3072, 3080, 3085, 3090, 3097,
- 3104, 3111, 3118, 3125, 3132, 3142, 3152, 3162, 3172, 3179, 3186, 3196,
- 3206, 3214, 3222, 3230, 3238, 3246, 3253, 3260, 3267, 3273, 3280, 3287,
- 3294, 3303, 3313, 3323, 3330, 3337, 3343, 3348, 3355, 3361, 3367, 3374,
- 3381, 3392, 3402, 3409, 3416, 3423, 3430, 3436, 3441, 3448, 3454, 3459,
- 3467, 3475, 3482, 3488, 3493, 3500, 3505, 3512, 3521, 3530, 3539, 3546,
- 3552, 3558, 3563, 3570, 3577, 3584, 3591, 3598, 3603, 3608, 3617, 3625,
- 3634, 3639, 3645, 3656, 3663, 3671, 3680, 3686, 3692, 3698, 3705, 3710,
- 3716, 3727, 3736, 3745, 3753, 3761, 3771, 3776, 3783, 3790, 3795, 3807,
- 3816, 3824, 3831, 3840, 3845, 3850, 3857, 3864, 3871, 3878, 3884, 3893,
- 3901, 3906, 3914, 3920, 3928, 3936, 3942, 3948, 3954, 3961, 3969, 3975,
- 3983, 3990, 3995, 4002, 4010, 4020, 4027, 4034, 4044, 4051, 4058, 4068,
- 4075, 4082, 4089, 4095, 4101, 4111, 4124, 4129, 4136, 4141, 4145, 4151,
- 4160, 4167, 4172, 4177, 4181, 4186, 4192, 4196, 4202, 4208, 4214, 4220,
- 4228, 4233, 4238, 4243, 4248, 4254, 4256, 4261, 4265, 4271, 4277, 4283,
- 4288, 4295, 4302, 4308, 4315, 4323, 4331, 4336, 4341, 4345, 4350, 4352,
- 4354, 4357, 4359, 4361, 4366, 4371, 4377, 4382, 4386, 4391, 4396, 4405,
- 4411, 4416, 4422, 4427, 4433, 4441, 4449, 4453, 4457, 4462, 4468, 4474,
- 4480, 4486, 4491, 4499, 4508, 4517, 4521, 4527, 4534, 4541, 4548, 4555,
- 4559, 4564, 4569, 4574, 4579, 4584, 4586, 4589, 4592, 4595, 4598, 4601,
- 4605, 4609, 4615, 4618, 4623, 4629, 4635, 4638, 4643, 4649, 4653, 4659,
- 4665, 4671, 4677, 4682, 4687, 4692, 4695, 4701, 4706, 4711, 4715, 4720,
- 4726, 4732, 4735, 4739, 4743, 4747, 4750, 4753, 4758, 4762, 4769, 4773,
- 4779, 4783, 4789, 4793, 4797, 4801, 4806, 4811, 4818, 4824, 4831, 4837,
- 4843, 4849, 4852, 4856, 4860, 4863, 4867, 4872, 4877, 4881, 4885, 4891,
- 4895, 4899, 4904, 4910, 4915, 4921, 4925, 4932, 4937, 4942, 4947, 4952,
- 4958, 4961, 4965, 4970, 4975, 4984, 4990, 4995, 4999, 5004, 5008, 5013,
- 5017, 5021, 5026, 5029, 5035, 5040, 5045, 5050, 5055, 5060, 5065, 5071,
- 5077, 5083, 5088, 5093, 5099, 5105, 5111, 5116, 5121, 5128, 5135, 5139,
- 5145, 5152, 0, 0, 5159, 5162, 5171, 5180, 5191, 0, 0, 0, 0, 0, 5195,
- 5198, 5203, 5211, 5216, 5224, 5232, 0, 5240, 0, 5248, 5256, 5264, 5275,
- 5280, 5285, 5290, 5295, 5300, 5305, 5310, 5315, 5320, 5325, 5330, 5335,
- 5340, 5345, 5350, 5355, 0, 5360, 5365, 5370, 5375, 5380, 5385, 5390,
- 5395, 5403, 5411, 5419, 5427, 5435, 5443, 5454, 5459, 5464, 5469, 5474,
- 5479, 5484, 5489, 5494, 5499, 5504, 5509, 5514, 5519, 5524, 5529, 5534,
- 5539, 5545, 5550, 5555, 5560, 5565, 5570, 5575, 5580, 5588, 5596, 5604,
- 5612, 5620, 5625, 5629, 5633, 5640, 5650, 5660, 5664, 5668, 5672, 5678,
- 5685, 5689, 5694, 5698, 5703, 5707, 5712, 5716, 5721, 5726, 5731, 5736,
- 5741, 5746, 5751, 5756, 5761, 5766, 5771, 5776, 5781, 5786, 5791, 5795,
- 5799, 5805, 5809, 5814, 5820, 5828, 5833, 5838, 5845, 5850, 5855, 5862,
- 5871, 5880, 5891, 5899, 5904, 5909, 5914, 5921, 5926, 5932, 5937, 5942,
- 5947, 5952, 5957, 5962, 5970, 5976, 5981, 5985, 5990, 5995, 6000, 6005,
- 6010, 6015, 6020, 6024, 6030, 6034, 6039, 6044, 6049, 6053, 6058, 6063,
- 6068, 6073, 6077, 6082, 6086, 6091, 6096, 6101, 6106, 6112, 6117, 6123,
- 6127, 6132, 6136, 6140, 6145, 6150, 6155, 6160, 6165, 6170, 6175, 6179,
- 6185, 6189, 6194, 6199, 6204, 6208, 6213, 6218, 6223, 6228, 6232, 6237,
- 6241, 6246, 6251, 6256, 6261, 6267, 6272, 6278, 6282, 6287, 6291, 6299,
- 6304, 6309, 6314, 6321, 6326, 6332, 6337, 6342, 6347, 6352, 6357, 6362,
- 6370, 6376, 6381, 6386, 6391, 6396, 6401, 6407, 6413, 6420, 6427, 6436,
- 6445, 6452, 6459, 6468, 6477, 6482, 6487, 6492, 6497, 6502, 6507, 6512,
- 6517, 6528, 6539, 6544, 6549, 6556, 6563, 6571, 6579, 6584, 6589, 6594,
- 6599, 6603, 6607, 6611, 6617, 6623, 6627, 6634, 6639, 6649, 6659, 6665,
- 6671, 6679, 6687, 6695, 6703, 6710, 6717, 6726, 6735, 6743, 6751, 6759,
- 6767, 6775, 6783, 6791, 6799, 6806, 6813, 6819, 6825, 6833, 6841, 6848,
- 6855, 6864, 6873, 6879, 6885, 6893, 6901, 6909, 6917, 6923, 6929, 6937,
- 6945, 6953, 6961, 6968, 6975, 6983, 6991, 6999, 7007, 7012, 7017, 7024,
- 7031, 7041, 7051, 7055, 7063, 7071, 7078, 7085, 7093, 7101, 7108, 7115,
- 7123, 7131, 7138, 7145, 7153, 7161, 7166, 7173, 7180, 7187, 7194, 7200,
- 7206, 7214, 7222, 7227, 7232, 7240, 7248, 7256, 7264, 7272, 7280, 7287,
- 7294, 7302, 7310, 7318, 7326, 7333, 7340, 7346, 7352, 7361, 7370, 7377,
- 7384, 7391, 7398, 7405, 7412, 7419, 7426, 7434, 7442, 7450, 7458, 7466,
- 7474, 7484, 7494, 7501, 7508, 7515, 7522, 7529, 7536, 7543, 7550, 7557,
- 7564, 7571, 7578, 7585, 7592, 7599, 7606, 7613, 7620, 7627, 7634, 7641,
- 7648, 7655, 7662, 7667, 7672, 7677, 7682, 7687, 7692, 7697, 7702, 7707,
- 7712, 7718, 7724, 7733, 7742, 7751, 7760, 7768, 7776, 7784, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 7792, 7797, 7802, 7807, 7812, 7817, 7822, 7827, 7832,
- 7836, 7841, 7846, 7851, 7856, 7861, 7866, 7871, 7876, 7881, 7886, 7891,
- 7896, 7901, 7906, 7911, 7916, 7921, 7926, 7930, 7935, 7940, 7945, 7950,
- 7955, 7960, 7965, 7970, 7975, 0, 0, 7980, 7987, 7990, 7994, 7998, 8001,
- 8005, 0, 8009, 8014, 8019, 8024, 8029, 8034, 8039, 8044, 8049, 8053,
- 8058, 8063, 8068, 8073, 8078, 8083, 8088, 8093, 8098, 8103, 8108, 8113,
- 8118, 8123, 8128, 8133, 8138, 8143, 8147, 8152, 8157, 8162, 8167, 8172,
- 8177, 8182, 8187, 8192, 8197, 0, 8204, 8209, 0, 0, 0, 0, 8212, 0, 8216,
- 8221, 8226, 8231, 8238, 8245, 8250, 8255, 8260, 8265, 8270, 8275, 8280,
- 8287, 8292, 8299, 8306, 8311, 8318, 8323, 8328, 8333, 8340, 8345, 8350,
- 8357, 8366, 8371, 8376, 8381, 8386, 8392, 8397, 8404, 8411, 8418, 8423,
- 8428, 8433, 8438, 8443, 8448, 8458, 8463, 8471, 8476, 8481, 8486, 8491,
- 8498, 8505, 8512, 8518, 8524, 8531, 0, 0, 0, 0, 0, 0, 0, 0, 8538, 8542,
- 8546, 8550, 8554, 8558, 8562, 8566, 8570, 8574, 8578, 8583, 8587, 8591,
- 8596, 8600, 8605, 8609, 8613, 8617, 8622, 8626, 8631, 8635, 8639, 8643,
- 8647, 0, 0, 0, 0, 0, 8651, 8658, 8666, 8673, 8678, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 8683, 8686, 8690, 8695, 8699, 0, 8703, 8709, 8715, 8718,
- 8725, 8734, 8737, 8740, 8745, 8751, 8755, 8763, 8769, 8775, 8783, 8787,
- 8792, 8803, 8808, 8812, 8816, 8820, 8823, 0, 8826, 8833, 8837, 8843,
- 8847, 8854, 8860, 8867, 8873, 8879, 8883, 8887, 8893, 8897, 8901, 8905,
- 8909, 8913, 8917, 8921, 8925, 8929, 8933, 8937, 8941, 8945, 8949, 8953,
- 8957, 8961, 8969, 8977, 8987, 8996, 9005, 9008, 9012, 9016, 9020, 9024,
- 9028, 9032, 9036, 9040, 9045, 9049, 9052, 9055, 9058, 9061, 9064, 9067,
- 9070, 9073, 9077, 9080, 9083, 9088, 9093, 9099, 9102, 9109, 9118, 9123,
- 9128, 9135, 9140, 9145, 9149, 9153, 9157, 9161, 9165, 9169, 9173, 9177,
- 9181, 9185, 9190, 9195, 9202, 9208, 9214, 9220, 9225, 9233, 9241, 9246,
- 9252, 9258, 9264, 9270, 9274, 9278, 9282, 9289, 9299, 9303, 9307, 9311,
- 9317, 9325, 9329, 9333, 9340, 9344, 9348, 9352, 9359, 9366, 9378, 9382,
- 9386, 9390, 9400, 9409, 9413, 9421, 9428, 9435, 9444, 9455, 9463, 9467,
- 9476, 9487, 9495, 9508, 9516, 9524, 9532, 9540, 9546, 9555, 9562, 9566,
- 9574, 9578, 9585, 9593, 9597, 9603, 9610, 9617, 9621, 9629, 9633, 9640,
- 9644, 9652, 9656, 9664, 9672, 9679, 9687, 9695, 9702, 9708, 9712, 9719,
- 9727, 9733, 9740, 9747, 9753, 9762, 9770, 9777, 9783, 9787, 9790, 9794,
- 9800, 9808, 9812, 9818, 9824, 9831, 9838, 9841, 9848, 9853, 9861, 9866,
- 9870, 9883, 9896, 9902, 9909, 9914, 9920, 9925, 9931, 9941, 9948, 9957,
- 9967, 9973, 9978, 9983, 9987, 9991, 9996, 10001, 10007, 10015, 10023,
- 10034, 10039, 10048, 10057, 10064, 10070, 10076, 10082, 10088, 10094,
- 10100, 10106, 10112, 10118, 10125, 10132, 10139, 10145, 10153, 10162,
- 10168, 10175, 10182, 10187, 10192, 10196, 10203, 10210, 10219, 10228,
- 10231, 10236, 10241, 0, 10246, 10250, 10254, 10260, 10264, 10268, 10274,
- 10278, 10286, 10290, 10294, 10298, 10302, 10306, 10312, 10316, 10322,
- 10326, 10330, 10334, 10338, 10342, 10347, 10350, 10354, 10360, 10364,
- 10368, 10372, 10376, 10380, 10386, 10392, 10398, 10402, 10406, 10411,
- 10415, 10419, 10424, 10428, 10432, 10439, 10446, 10450, 10454, 10459,
- 10463, 10467, 10470, 10475, 10478, 10481, 10486, 10491, 10495, 10499,
- 10505, 10511, 10514, 0, 0, 10517, 10523, 10529, 10535, 10545, 10557,
- 10569, 10586, 10598, 10609, 10617, 10624, 10635, 10650, 10661, 10667,
- 10676, 10684, 10696, 10706, 10714, 10726, 10733, 10741, 10753, 10759,
- 10765, 10773, 10781, 10789, 10795, 10805, 10812, 10822, 10832, 10845,
- 10859, 10873, 10883, 10894, 10905, 10918, 10931, 10945, 10957, 10969,
- 10982, 10995, 11007, 11020, 11029, 11037, 11042, 11047, 11052, 11057,
- 11062, 11067, 11072, 11077, 11082, 11087, 11092, 11097, 11102, 11107,
- 11112, 11117, 11122, 11127, 11132, 11137, 11142, 11147, 11152, 11157,
- 11162, 11167, 11172, 11177, 11182, 11187, 11192, 11197, 11201, 11206,
- 11211, 11216, 11221, 11226, 11230, 11234, 11238, 11242, 11246, 11250,
- 11254, 11258, 11262, 11266, 11270, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 11275, 11280, 11284, 11288, 11292, 11296, 11300, 11304, 11308, 11312,
- 11316, 11320, 11325, 11329, 11333, 11337, 11342, 11346, 11351, 11356,
- 11361, 11365, 11370, 11375, 11380, 11385, 11389, 11394, 11398, 11403,
- 11408, 11412, 11417, 11424, 11428, 11433, 11437, 11441, 11446, 11450,
- 11457, 11464, 11471, 11477, 11485, 11493, 11502, 11510, 11517, 11524,
- 11532, 11538, 11544, 11550, 11556, 11563, 11568, 11572, 11577, 0, 0, 0,
- 0, 0, 11581, 11586, 11591, 11596, 11601, 11606, 11611, 11616, 11621,
- 11626, 11631, 11636, 11641, 11646, 11651, 11656, 11661, 11666, 11671,
- 11676, 11681, 11686, 11691, 11696, 11701, 11706, 11711, 11719, 11726,
- 11732, 11737, 11745, 11752, 11758, 11765, 11771, 11776, 11783, 11790,
- 11796, 11801, 11806, 11812, 11817, 11822, 11828, 0, 0, 11833, 11839,
- 11845, 11851, 11857, 11863, 11869, 11874, 11882, 11888, 11894, 11900,
- 11906, 11912, 11920, 0, 11926, 11931, 11936, 11941, 11946, 11951, 11956,
- 11961, 11966, 11971, 11976, 11981, 11986, 11991, 11996, 12001, 12006,
- 12011, 12016, 12021, 12026, 12031, 12036, 12041, 12046, 12051, 12056,
- 12061, 0, 0, 12066, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 33, 35, 39, 41, 44, 46, 48, 50, 52, 54, 56, 59, 61, 64, 66, 68, 71, 74,
+ 77, 80, 84, 88, 93, 98, 103, 107, 112, 117, 122, 126, 131, 136, 140, 145,
+ 150, 154, 159, 164, 168, 172, 177, 181, 186, 191, 196, 201, 206, 209,
+ 213, 216, 220, 223, 227, 231, 236, 241, 246, 250, 255, 260, 265, 269,
+ 274, 279, 283, 288, 293, 297, 302, 307, 311, 315, 320, 324, 329, 334,
+ 339, 344, 349, 353, 356, 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 366, 371,
+ 374, 377, 380, 383, 386, 389, 391, 394, 400, 408, 411, 415, 418, 420,
+ 423, 426, 429, 432, 436, 439, 442, 445, 447, 450, 456, 464, 471, 478,
+ 485, 490, 497, 503, 510, 517, 524, 532, 537, 545, 552, 558, 565, 572,
+ 580, 587, 595, 603, 608, 616, 623, 629, 636, 643, 650, 653, 659, 666,
+ 672, 679, 686, 693, 698, 704, 711, 717, 724, 731, 738, 746, 751, 759,
+ 766, 772, 779, 786, 794, 801, 809, 817, 822, 830, 837, 843, 850, 857,
+ 864, 867, 873, 880, 886, 893, 900, 907, 912, 920, 927, 934, 941, 948,
+ 955, 962, 969, 976, 984, 992, 1000, 1008, 1016, 1024, 1032, 1040, 1047,
+ 1054, 1061, 1068, 1075, 1082, 1089, 1096, 1103, 1110, 1117, 1124, 1132,
+ 1140, 1148, 1156, 1164, 1172, 1180, 1188, 1196, 1204, 1211, 1218, 1226,
+ 1234, 1242, 1250, 1258, 1266, 1274, 1282, 1290, 1296, 1301, 1306, 1314,
+ 1322, 1330, 1338, 1343, 1350, 1357, 1365, 1373, 1381, 1389, 1398, 1407,
+ 1414, 1421, 1428, 1435, 1443, 1451, 1459, 1467, 1478, 1483, 1488, 1495,
+ 1502, 1509, 1516, 1523, 1530, 1535, 1540, 1547, 1554, 1562, 1570, 1578,
+ 1586, 1593, 1600, 1608, 1616, 1624, 1632, 1640, 1648, 1656, 1664, 1672,
+ 1680, 1687, 1694, 1701, 1708, 1715, 1722, 1729, 1736, 1744, 1752, 1759,
+ 1766, 1773, 1780, 1788, 1796, 1804, 1812, 1820, 1827, 1834, 1842, 1850,
+ 1858, 1866, 1871, 1877, 1883, 1890, 1897, 1902, 1907, 1912, 1919, 1926,
+ 1933, 1940, 1948, 1956, 1963, 1969, 1974, 1979, 1986, 1993, 2000, 2005,
+ 2010, 2015, 2022, 2029, 2036, 2043, 2050, 2057, 2065, 2075, 2083, 2090,
+ 2097, 2102, 2107, 2114, 2121, 2125, 2130, 2135, 2140, 2148, 2157, 2164,
+ 2171, 2180, 2187, 2194, 2199, 2206, 2213, 2220, 2227, 2234, 2239, 2246,
+ 2253, 2261, 2266, 2271, 2276, 2286, 2290, 2296, 2302, 2308, 2314, 2322,
+ 2335, 2343, 2348, 2358, 2363, 2368, 2378, 2383, 2390, 2397, 2405, 2413,
+ 2420, 2427, 2434, 2441, 2451, 2461, 2470, 2479, 2489, 2499, 2509, 2519,
+ 2525, 2535, 2545, 2555, 2565, 2573, 2581, 2588, 2595, 2603, 2611, 2619,
+ 2627, 2634, 2641, 2651, 2661, 2669, 2677, 2685, 2690, 2700, 2705, 2712,
+ 2719, 2724, 2729, 2737, 2745, 2755, 2765, 2772, 2779, 2788, 2797, 2805,
+ 2813, 2822, 2831, 2839, 2847, 2856, 2865, 2874, 2883, 2893, 2903, 2911,
+ 2919, 2928, 2937, 2946, 2955, 2965, 2975, 2983, 2991, 3000, 3009, 3018,
+ 3027, 3036, 3045, 3050, 3055, 3063, 3071, 3081, 3089, 3094, 3099, 3106,
+ 3113, 3120, 3127, 3134, 3141, 3151, 3161, 3171, 3181, 3188, 3195, 3205,
+ 3215, 3223, 3231, 3239, 3247, 3255, 3262, 3269, 3276, 3282, 3289, 3296,
+ 3303, 3312, 3322, 3332, 3339, 3346, 3352, 3357, 3364, 3370, 3376, 3383,
+ 3390, 3401, 3411, 3418, 3425, 3432, 3439, 3445, 3450, 3457, 3463, 3468,
+ 3476, 3484, 3491, 3497, 3502, 3509, 3514, 3521, 3530, 3539, 3548, 3555,
+ 3561, 3567, 3572, 3579, 3586, 3593, 3600, 3607, 3612, 3617, 3626, 3634,
+ 3643, 3648, 3655, 3666, 3673, 3681, 3690, 3696, 3702, 3708, 3715, 3720,
+ 3726, 3737, 3746, 3755, 3763, 3771, 3781, 3786, 3793, 3800, 3805, 3817,
+ 3826, 3834, 3841, 3850, 3855, 3860, 3867, 3874, 3881, 3888, 3894, 3903,
+ 3911, 3916, 3924, 3930, 3938, 3946, 3952, 3958, 3964, 3971, 3979, 3985,
+ 3993, 4000, 4005, 4012, 4020, 4030, 4037, 4044, 4054, 4061, 4068, 4078,
+ 4085, 4092, 4099, 4105, 4111, 4121, 4134, 4139, 4146, 4151, 4155, 4161,
+ 4170, 4177, 4182, 4187, 4191, 4196, 4202, 4206, 4212, 4218, 4224, 4230,
+ 4238, 4243, 4248, 4253, 4258, 4264, 4266, 4271, 4275, 4281, 4287, 4293,
+ 4298, 4305, 4312, 4318, 4325, 4333, 4341, 4346, 4351, 4355, 4360, 4362,
+ 4364, 4367, 4369, 4372, 4377, 4382, 4388, 4393, 4397, 4401, 4406, 4415,
+ 4421, 4426, 4432, 4437, 4443, 4451, 4459, 4463, 4467, 4472, 4478, 4484,
+ 4490, 4496, 4501, 4508, 4516, 4524, 4529, 4535, 4542, 4549, 4556, 4563,
+ 4567, 4572, 4577, 4582, 4587, 4592, 4595, 4598, 4601, 4604, 4607, 4610,
+ 4614, 4618, 4624, 4627, 4632, 4638, 4644, 4647, 4652, 4658, 4662, 4668,
+ 4674, 4680, 4686, 4691, 4696, 4701, 4704, 4710, 4715, 4720, 4724, 4729,
+ 4735, 4741, 4744, 4748, 4752, 4756, 4759, 4762, 4767, 4771, 4778, 4782,
+ 4788, 4792, 4798, 4802, 4806, 4810, 4815, 4820, 4827, 4833, 4840, 4846,
+ 4852, 4858, 4861, 4865, 4869, 4873, 4877, 4882, 4887, 4891, 4895, 4901,
+ 4905, 4909, 4914, 4920, 4925, 4931, 4935, 4942, 4947, 4951, 4956, 4961,
+ 4967, 4970, 4974, 4979, 4984, 4993, 4999, 5004, 5008, 5013, 5017, 5022,
+ 5026, 5030, 5035, 5039, 5045, 5050, 5055, 5060, 5065, 5070, 5075, 5081,
+ 5087, 5093, 5099, 5104, 5110, 5116, 5122, 5127, 5132, 5139, 5146, 5150,
+ 5156, 5163, 0, 0, 5170, 5173, 5182, 5191, 5202, 5206, 0, 0, 0, 0, 5211,
+ 5214, 5219, 5227, 5232, 5240, 5248, 0, 5256, 0, 5264, 5272, 5280, 5291,
+ 5296, 5301, 5306, 5311, 5316, 5321, 5326, 5331, 5336, 5341, 5346, 5351,
+ 5356, 5361, 5366, 5371, 0, 5376, 5381, 5386, 5391, 5396, 5401, 5406,
+ 5411, 5419, 5427, 5435, 5443, 5451, 5459, 5470, 5475, 5480, 5485, 5490,
+ 5495, 5500, 5505, 5510, 5515, 5520, 5525, 5530, 5535, 5540, 5545, 5550,
+ 5555, 5561, 5566, 5571, 5576, 5581, 5586, 5591, 5596, 5604, 5612, 5620,
+ 5628, 5636, 5641, 5645, 5649, 5656, 5666, 5676, 5680, 5684, 5688, 5694,
+ 5701, 5705, 5710, 5714, 5719, 5723, 5728, 5732, 5737, 5742, 5747, 5752,
+ 5757, 5762, 5767, 5772, 5777, 5782, 5787, 5792, 5797, 5802, 5807, 5811,
+ 5815, 5821, 5825, 5830, 5836, 5844, 5849, 5854, 5861, 5866, 5871, 5878,
+ 5887, 5896, 5907, 5915, 5920, 5925, 5930, 5937, 5942, 5948, 5953, 5958,
+ 5963, 5968, 5973, 5978, 5986, 5992, 5997, 6001, 6006, 6011, 6016, 6021,
+ 6026, 6031, 6036, 6040, 6046, 6050, 6055, 6060, 6065, 6069, 6074, 6079,
+ 6084, 6089, 6093, 6098, 6102, 6107, 6112, 6117, 6122, 6128, 6133, 6139,
+ 6143, 6148, 6152, 6156, 6161, 6166, 6171, 6176, 6181, 6186, 6191, 6195,
+ 6201, 6205, 6210, 6215, 6220, 6224, 6229, 6234, 6239, 6244, 6248, 6253,
+ 6257, 6262, 6267, 6272, 6277, 6283, 6288, 6294, 6298, 6303, 6307, 6315,
+ 6320, 6325, 6330, 6337, 6342, 6348, 6353, 6358, 6363, 6368, 6373, 6378,
+ 6386, 6392, 6397, 6402, 6407, 6412, 6417, 6423, 6429, 6436, 6443, 6452,
+ 6461, 6468, 6475, 6484, 6493, 6498, 6503, 6508, 6513, 6518, 6523, 6528,
+ 6533, 6544, 6555, 6560, 6565, 6572, 6579, 6587, 6595, 6600, 6605, 6610,
+ 6615, 6619, 6623, 6627, 6633, 6639, 6643, 6650, 6655, 6665, 6675, 6681,
+ 6687, 6695, 6703, 6711, 6719, 6726, 6733, 6741, 6749, 6757, 6765, 6773,
+ 6781, 6789, 6797, 6805, 6813, 6820, 6827, 6833, 6839, 6847, 6855, 6862,
+ 6869, 6877, 6885, 6891, 6897, 6905, 6913, 6921, 6929, 6935, 6941, 6949,
+ 6957, 6965, 6973, 6980, 6987, 6995, 7003, 7011, 7019, 7024, 7029, 7036,
+ 7043, 7053, 7063, 7067, 7075, 7083, 7090, 7097, 7105, 7113, 7120, 7127,
+ 7135, 7143, 7150, 7157, 7165, 7173, 7178, 7185, 7192, 7199, 7206, 7212,
+ 7218, 7226, 7234, 7239, 7244, 7252, 7260, 7268, 7276, 7284, 7292, 7299,
+ 7306, 7314, 7322, 7330, 7338, 7345, 7352, 7358, 7364, 7373, 7382, 7389,
+ 7396, 7403, 7410, 7417, 7424, 7431, 7438, 7446, 7454, 7462, 7470, 7478,
+ 7486, 7496, 7506, 7513, 7520, 7527, 7534, 7541, 7548, 7555, 7562, 7569,
+ 7576, 7583, 7590, 7597, 7604, 7611, 7618, 7625, 7632, 7639, 7646, 7653,
+ 7660, 7667, 7674, 7679, 7684, 7689, 7694, 7699, 7704, 7709, 7714, 7719,
+ 7724, 7730, 7736, 7744, 7752, 7760, 7768, 7776, 7784, 7792, 7800, 7808,
+ 7816, 7821, 7826, 7831, 7836, 7844, 0, 7852, 7857, 7862, 7867, 7872,
+ 7877, 7882, 7887, 7892, 7896, 7901, 7906, 7911, 7916, 7921, 7926, 7931,
+ 7936, 7941, 7946, 7951, 7956, 7961, 7966, 7971, 7976, 7981, 7986, 7991,
+ 7996, 8001, 8006, 8011, 8016, 8021, 8026, 8031, 8036, 0, 0, 8041, 8048,
+ 8051, 8055, 8059, 8062, 8066, 0, 8070, 8075, 8080, 8085, 8090, 8095,
+ 8100, 8105, 8110, 8114, 8119, 8124, 8129, 8134, 8139, 8144, 8149, 8154,
+ 8159, 8164, 8169, 8174, 8179, 8184, 8189, 8194, 8199, 8204, 8209, 8214,
+ 8219, 8224, 8229, 8234, 8239, 8244, 8249, 8254, 8259, 0, 8266, 8271, 0,
+ 0, 8274, 8280, 8286, 0, 8290, 8295, 8300, 8305, 8312, 8319, 8324, 8329,
+ 8334, 8339, 8344, 8349, 8354, 8361, 8366, 8373, 8380, 8385, 8392, 8397,
+ 8402, 8407, 8414, 8419, 8424, 8431, 8440, 8445, 8450, 8455, 8460, 8466,
+ 8471, 8478, 8485, 8492, 8497, 8502, 8507, 8512, 8517, 8522, 8532, 8537,
+ 8546, 8551, 8556, 8561, 8566, 8573, 8580, 8587, 8593, 8599, 8606, 0, 0,
+ 0, 0, 0, 0, 0, 0, 8613, 8617, 8621, 8625, 8629, 8633, 8637, 8641, 8645,
+ 8649, 8653, 8658, 8662, 8666, 8671, 8675, 8680, 8684, 8688, 8692, 8697,
+ 8701, 8706, 8710, 8714, 8718, 8722, 0, 0, 0, 0, 0, 8726, 8733, 8741,
+ 8748, 8753, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8758, 8761, 8765, 8770,
+ 8774, 8778, 8782, 8788, 8794, 8797, 8804, 8813, 8816, 8819, 8824, 8830,
+ 8834, 8842, 8848, 8854, 8862, 8866, 8871, 8882, 8887, 8891, 8895, 8899,
+ 8902, 0, 8905, 8912, 8916, 8922, 8926, 8933, 8940, 8948, 8955, 8962,
+ 8966, 8970, 8976, 8980, 8984, 8988, 8992, 8996, 9000, 9004, 9008, 9012,
+ 9016, 9020, 9024, 9028, 9032, 9036, 9040, 9044, 9052, 9060, 9070, 9079,
+ 9088, 9091, 9095, 9099, 9103, 9107, 9111, 9115, 9119, 9123, 9128, 9132,
+ 9135, 9138, 9141, 9144, 9147, 9150, 9153, 9156, 9160, 9164, 9168, 9173,
+ 9178, 9184, 9187, 9194, 9203, 9208, 9213, 9220, 9226, 9231, 9235, 9239,
+ 9243, 9247, 9251, 9255, 9260, 9264, 9269, 9273, 9278, 9283, 9290, 9296,
+ 9302, 9308, 9313, 9322, 9331, 9336, 9343, 9350, 9357, 9364, 9368, 9372,
+ 9376, 9383, 9393, 9397, 9401, 9405, 9412, 9420, 9424, 9428, 9435, 9439,
+ 9443, 9447, 9454, 9461, 9473, 9477, 9481, 9485, 9495, 9504, 9508, 9516,
+ 9523, 9530, 9539, 9550, 9558, 9562, 9571, 9582, 9590, 9603, 9611, 9619,
+ 9627, 9635, 9641, 9650, 9657, 9661, 9669, 9673, 9680, 9688, 9692, 9698,
+ 9705, 9712, 9716, 9724, 9728, 9735, 9739, 9747, 9751, 9759, 9767, 9774,
+ 9782, 9790, 9797, 9803, 9807, 9814, 9822, 9828, 9835, 9842, 9848, 9858,
+ 9866, 9873, 9879, 9883, 9886, 9890, 9896, 9904, 9908, 9914, 9920, 9927,
+ 9934, 9937, 9944, 9949, 9958, 9963, 9967, 9980, 9993, 9999, 10006, 10011,
+ 10017, 10022, 10028, 10038, 10045, 10054, 10064, 10070, 10075, 10080,
+ 10084, 10088, 10093, 10098, 10104, 10112, 10120, 10131, 10136, 10145,
+ 10154, 10161, 10167, 10173, 10179, 10185, 10191, 10197, 10204, 10210,
+ 10217, 10224, 10231, 10238, 10244, 10252, 10261, 10268, 10276, 10284,
+ 10290, 10296, 10302, 10310, 10318, 10328, 10338, 10342, 10348, 10354, 0,
+ 10360, 10365, 10370, 10377, 10382, 10387, 10394, 10399, 10408, 10413,
+ 10418, 10423, 10428, 10433, 10440, 10445, 10452, 10457, 10462, 10467,
+ 10472, 10477, 10483, 10487, 10492, 10499, 10504, 10509, 10514, 10519,
+ 10524, 10531, 10538, 10545, 10550, 10555, 10561, 10566, 10571, 10577,
+ 10582, 10587, 10595, 10603, 10608, 10613, 10619, 10624, 10629, 10633,
+ 10639, 10643, 10647, 10653, 10659, 10664, 10669, 10676, 10683, 10687, 0,
+ 0, 10691, 10698, 10705, 10712, 10722, 10734, 10745, 10761, 10773, 10784,
+ 10792, 10799, 10809, 10824, 10835, 10841, 10850, 10858, 10869, 10879,
+ 10887, 10898, 10905, 10913, 10924, 10930, 10936, 10944, 10952, 10960,
+ 10966, 10976, 10984, 10994, 11004, 11017, 11031, 11045, 11055, 11066,
+ 11077, 11090, 11103, 11117, 11129, 11141, 11154, 11167, 11179, 11192,
+ 11201, 11209, 11214, 11219, 11224, 11229, 11234, 11239, 11244, 11249,
+ 11254, 11259, 11264, 11269, 11274, 11279, 11284, 11289, 11294, 11299,
+ 11304, 11309, 11314, 11319, 11324, 11329, 11334, 11339, 11344, 11349,
+ 11354, 11359, 11364, 11369, 11373, 11378, 11383, 11388, 11393, 11398,
+ 11402, 11406, 11410, 11414, 11418, 11422, 11426, 11430, 11434, 11438,
+ 11442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11447, 11452, 11456,
+ 11460, 11464, 11468, 11472, 11476, 11481, 11485, 11490, 11494, 11499,
+ 11503, 11507, 11511, 11516, 11520, 11525, 11530, 11535, 11539, 11544,
+ 11549, 11554, 11559, 11564, 11569, 11574, 11579, 11584, 11588, 11593,
+ 11600, 11604, 11609, 11614, 11618, 11623, 11627, 11634, 11641, 11648,
+ 11655, 11663, 11671, 11680, 11688, 11695, 11702, 11710, 11716, 11722,
+ 11728, 11734, 11741, 11746, 11750, 11755, 0, 0, 0, 0, 0, 11759, 11764,
+ 11769, 11774, 11779, 11784, 11789, 11794, 11799, 11804, 11809, 11814,
+ 11819, 11824, 11829, 11834, 11839, 11844, 11849, 11854, 11859, 11864,
+ 11869, 11874, 11879, 11884, 11889, 11897, 11904, 11910, 11915, 11923,
+ 11930, 11936, 11943, 11949, 11954, 11961, 11968, 11974, 11979, 11984,
+ 11990, 11995, 12000, 12006, 0, 0, 12011, 12017, 12023, 12029, 12035,
+ 12041, 12047, 12052, 12060, 12066, 12072, 12078, 12084, 12090, 12098, 0,
+ 12104, 12109, 12114, 12119, 12124, 12129, 12134, 12139, 12144, 12149,
+ 12154, 12159, 12164, 12169, 12174, 12179, 12184, 12189, 12194, 12199,
+ 12204, 12209, 12214, 12219, 12224, 12229, 12234, 12239, 0, 0, 12244, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12248, 12257, 12265,
+ 12272, 12280, 12292, 12299, 12306, 12313, 12325, 12336, 12343, 12351,
+ 12357, 12362, 12370, 12378, 12386, 12392, 12402, 12410, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12417, 12423, 12428,
+ 12433, 12438, 12443, 12448, 12453, 12458, 12463, 12468, 12473, 12478,
+ 12483, 12487, 12491, 12495, 12500, 12506, 12512, 12518, 12523, 12528,
+ 12533, 12538, 12544, 12553, 12561, 12567, 12575, 12581, 12585, 12589,
+ 12593, 12598, 12601, 12605, 12608, 12612, 12615, 12619, 12623, 12627,
+ 12632, 12637, 12640, 12644, 12649, 12654, 12657, 12661, 12664, 12668,
+ 12672, 12676, 12680, 12684, 12688, 12692, 12696, 12700, 12704, 12708,
+ 12712, 12716, 12720, 12724, 12728, 12732, 12736, 12740, 12744, 12747,
+ 12751, 12755, 12759, 12762, 12765, 12769, 12773, 12777, 12781, 12785,
+ 12789, 12793, 12797, 12801, 12804, 12809, 12814, 12818, 12822, 12827,
+ 12831, 12836, 12840, 12845, 12850, 12856, 12862, 12868, 12872, 12877,
+ 12883, 12889, 12893, 12898, 12902, 12908, 12913, 12916, 12922, 12928,
+ 12933, 12938, 12945, 12950, 12955, 12959, 12963, 12967, 12971, 12975,
+ 12979, 12983, 12987, 12992, 12997, 13002, 13008, 13011, 13015, 13019,
+ 13022, 13025, 13028, 13031, 13034, 13037, 13041, 13044, 13048, 13052,
+ 13059, 13064, 13068, 13072, 13076, 13080, 13084, 13090, 13094, 13098,
+ 13102, 13106, 13112, 13116, 13120, 13123, 13127, 13131, 0, 13135, 13138,
+ 13142, 13145, 13149, 13152, 13156, 13160, 0, 0, 13164, 13167, 0, 0,
+ 13171, 13174, 13178, 13181, 13185, 13189, 13193, 13197, 13201, 13205,
+ 13209, 13213, 13217, 13221, 13225, 13229, 13233, 13237, 13241, 13245,
+ 13249, 13253, 0, 13257, 13260, 13264, 13268, 13272, 13275, 13278, 0,
+ 13282, 0, 0, 0, 13286, 13290, 13294, 13298, 0, 0, 13301, 13305, 13309,
+ 13314, 13318, 13323, 13327, 13332, 13337, 0, 0, 13343, 13347, 0, 0,
+ 13352, 13356, 13361, 13365, 0, 0, 0, 0, 0, 0, 0, 0, 13371, 0, 0, 0, 0,
+ 13377, 13381, 0, 13385, 13389, 13394, 13399, 13404, 0, 0, 13410, 13414,
+ 13417, 13420, 13423, 13426, 13429, 13432, 13436, 13439, 13443, 13451,
+ 13460, 13464, 13468, 13474, 13480, 13486, 13492, 13506, 13513, 13516, 0,
+ 0, 0, 0, 0, 13520, 13527, 13532, 0, 13537, 13541, 13546, 13550, 13555,
+ 13559, 0, 0, 0, 0, 13564, 13569, 0, 0, 13574, 13579, 13584, 13588, 13593,
+ 13598, 13603, 13608, 13613, 13618, 13623, 13628, 13633, 13638, 13643,
+ 13648, 13653, 13658, 13663, 13668, 13673, 13678, 0, 13683, 13687, 13692,
+ 13697, 13702, 13706, 13710, 0, 13715, 13720, 0, 13725, 13730, 0, 13735,
+ 13740, 0, 0, 13744, 0, 13749, 13755, 13760, 13766, 13771, 0, 0, 0, 0,
+ 13777, 13783, 0, 0, 13789, 13795, 13801, 0, 0, 0, 13806, 0, 0, 0, 0, 0,
+ 0, 0, 13811, 13816, 13821, 13826, 0, 13831, 0, 0, 0, 0, 0, 0, 0, 13836,
+ 13841, 13845, 13849, 13853, 13857, 13861, 13865, 13870, 13874, 13879,
+ 13883, 13887, 13891, 13895, 13901, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 13906, 13911, 13916, 0, 13921, 13925, 13930, 13934, 13939, 13943, 13948,
+ 13953, 13958, 0, 13964, 13968, 13973, 0, 13979, 13983, 13988, 13992,
+ 13997, 14002, 14007, 14012, 14017, 14022, 14027, 14032, 14037, 14042,
+ 14047, 14052, 14057, 14062, 14067, 14072, 14077, 14082, 0, 14087, 14091,
+ 14096, 14101, 14106, 14110, 14114, 0, 14119, 14124, 0, 14129, 14134,
+ 14139, 14144, 14149, 0, 0, 14153, 14158, 14163, 14169, 14174, 14180,
+ 14185, 14191, 14197, 14204, 0, 14211, 14216, 14222, 0, 14229, 14234,
+ 14240, 0, 0, 14245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14249,
+ 14255, 14261, 14267, 0, 0, 14274, 14279, 14283, 14287, 14291, 14295,
+ 14299, 14303, 14308, 14312, 14317, 14322, 0, 0, 0, 0, 0, 0, 0, 14327, 0,
+ 0, 0, 0, 0, 0, 0, 14332, 14336, 14340, 0, 14344, 14347, 14351, 14354,
+ 14358, 14361, 14365, 14369, 0, 0, 14373, 14376, 0, 0, 14380, 14383,
+ 14387, 14390, 14394, 14398, 14402, 14406, 14410, 14414, 14418, 14422,
+ 14426, 14430, 14434, 14438, 14442, 14446, 14450, 14454, 14458, 14462, 0,
+ 14466, 14469, 14473, 14477, 14481, 14484, 14487, 0, 14491, 14495, 0,
+ 14499, 14503, 14507, 14511, 14515, 0, 0, 14518, 14522, 14526, 14531,
+ 14535, 14540, 14544, 14549, 14554, 0, 0, 14560, 14564, 0, 0, 14569,
+ 14573, 14578, 0, 0, 0, 0, 0, 0, 0, 0, 14582, 14588, 0, 0, 0, 0, 14594,
+ 14598, 0, 14602, 14606, 14611, 14616, 14621, 0, 0, 14627, 14631, 14634,
+ 14637, 14640, 14643, 14646, 14649, 14653, 14656, 14660, 14663, 14667,
+ 14673, 14679, 14685, 14691, 14697, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14703,
+ 14707, 0, 14711, 14714, 14718, 14721, 14725, 14728, 0, 0, 0, 14732,
+ 14735, 14739, 0, 14743, 14746, 14750, 14754, 0, 0, 0, 14757, 14761, 0,
+ 14765, 0, 14769, 14773, 0, 0, 0, 14777, 14781, 0, 0, 0, 14785, 14789,
+ 14793, 0, 0, 0, 14796, 14799, 14802, 14806, 14810, 14814, 14818, 14822,
+ 14826, 14830, 14834, 14838, 0, 0, 0, 0, 14841, 14846, 14850, 14855,
+ 14859, 0, 0, 0, 14864, 14868, 14873, 0, 14878, 14882, 14887, 14892, 0, 0,
+ 14896, 0, 0, 0, 0, 0, 0, 14899, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 14905, 14909, 14912, 14915, 14918, 14921, 14924, 14927, 14931, 14934,
+ 14938, 14942, 14947, 14952, 14956, 14960, 14964, 14968, 14972, 14977,
+ 14981, 0, 0, 0, 0, 0, 14984, 14990, 14994, 14998, 0, 15002, 15005, 15009,
+ 15012, 15016, 15019, 15023, 15027, 0, 15031, 15034, 15038, 0, 15042,
+ 15045, 15049, 15053, 15056, 15060, 15064, 15068, 15072, 15076, 15080,
+ 15084, 15088, 15092, 15096, 15100, 15104, 15108, 15112, 15116, 15120,
+ 15124, 15128, 0, 15132, 15135, 15139, 15143, 15147, 15150, 15153, 15157,
+ 15161, 15165, 15169, 15173, 15177, 15181, 15185, 15189, 0, 0, 0, 15192,
+ 15196, 15201, 15205, 15210, 15214, 15219, 15224, 0, 15230, 15234, 15239,
+ 0, 15244, 15248, 15253, 15258, 0, 0, 0, 0, 0, 0, 0, 15262, 15266, 0,
+ 15272, 15276, 15280, 0, 0, 0, 0, 0, 15284, 15289, 15294, 15299, 0, 0,
+ 15305, 15309, 15312, 15315, 15318, 15321, 15324, 15327, 15331, 15334, 0,
+ 0, 0, 0, 0, 0, 0, 0, 15338, 15351, 15363, 15375, 15387, 15399, 15411,
+ 15423, 0, 15427, 15431, 15435, 0, 15439, 15442, 15446, 15449, 15453,
+ 15456, 15460, 15464, 0, 15468, 15471, 15475, 0, 15479, 15482, 15486,
+ 15490, 15493, 15497, 15501, 15505, 15509, 15513, 15517, 15521, 15525,
+ 15529, 15533, 15537, 15541, 15545, 15549, 15553, 15557, 15561, 15565, 0,
+ 15569, 15572, 15576, 15580, 15584, 15587, 15590, 15594, 15598, 15602, 0,
+ 15606, 15610, 15614, 15618, 15622, 0, 0, 15625, 15629, 15633, 15638,
+ 15642, 15647, 15651, 15656, 15661, 0, 15667, 15671, 15676, 0, 15681,
+ 15685, 15690, 15695, 0, 0, 0, 0, 0, 0, 0, 15699, 15703, 0, 0, 0, 0, 0, 0,
+ 0, 15709, 0, 15713, 15718, 15723, 15728, 0, 0, 15734, 15738, 15741,
+ 15744, 15747, 15750, 15753, 15756, 15760, 15763, 0, 15767, 15771, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15775, 15779, 15783, 0, 15787, 15790,
+ 15794, 15797, 15801, 15804, 15808, 15812, 0, 15816, 15819, 15823, 0,
+ 15827, 15830, 15834, 15838, 15841, 15845, 15849, 15853, 15857, 15861,
+ 15865, 15869, 15873, 15877, 15881, 15885, 15889, 15893, 15897, 15901,
+ 15905, 15909, 15913, 15917, 15921, 15924, 15928, 15932, 15936, 15939,
+ 15942, 15946, 15950, 15954, 15958, 15962, 15966, 15970, 15974, 15978,
+ 15981, 0, 0, 15985, 15989, 15994, 15998, 16003, 16007, 16012, 16017, 0,
+ 16023, 16027, 16032, 0, 16037, 16041, 16046, 16051, 16055, 0, 0, 0, 0, 0,
+ 0, 0, 0, 16060, 0, 0, 0, 0, 0, 0, 0, 16066, 16072, 16077, 16082, 16087,
+ 0, 0, 16093, 16097, 16100, 16103, 16106, 16109, 16112, 16115, 16119,
+ 16122, 16126, 16130, 16135, 16140, 16146, 16152, 0, 0, 0, 16158, 16162,
+ 16168, 16174, 16180, 16185, 16191, 0, 0, 16197, 16201, 0, 16205, 16209,
+ 16213, 16217, 16221, 16225, 16229, 16233, 16237, 16241, 16245, 16249,
+ 16253, 16257, 16261, 16265, 16269, 16273, 0, 0, 0, 16277, 16283, 16289,
+ 16295, 16301, 16307, 16313, 16319, 16325, 16331, 16337, 16343, 16351,
+ 16357, 16363, 16369, 16375, 16381, 16387, 16393, 16399, 16405, 16411,
+ 16417, 0, 16423, 16429, 16435, 16441, 16447, 16453, 16457, 16463, 16467,
+ 0, 16471, 0, 0, 16477, 16481, 16487, 16493, 16499, 16503, 16509, 0, 0, 0,
+ 16513, 0, 0, 0, 0, 16517, 16522, 16529, 16536, 16543, 16550, 0, 16557, 0,
+ 16564, 16569, 16574, 16581, 16588, 16597, 16608, 16617, 0, 0, 0, 0, 0, 0,
+ 16622, 16628, 16633, 16638, 16643, 16648, 16653, 16658, 16664, 16669, 0,
+ 0, 16675, 16682, 16689, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16694, 16701,
+ 16708, 16715, 16722, 16729, 16736, 16743, 16750, 16757, 16764, 16771,
+ 16778, 16785, 16792, 16799, 16806, 16813, 16820, 16827, 16834, 16841,
+ 16848, 16855, 16862, 16869, 16876, 16883, 16890, 16897, 16904, 16911,
+ 16918, 16924, 16931, 16938, 16943, 16950, 16955, 16962, 16969, 16976,
+ 16983, 16990, 16997, 17003, 17010, 17015, 17021, 17028, 17035, 17042,
+ 17048, 17055, 17062, 17069, 17075, 17082, 0, 0, 0, 0, 17087, 17094,
+ 17100, 17107, 17113, 17122, 17131, 17136, 17141, 17146, 17153, 17160,
+ 17167, 17174, 17179, 17184, 17189, 17194, 17199, 17203, 17207, 17211,
+ 17215, 17219, 17223, 17228, 17232, 17237, 17242, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 17247, 17252, 0, 17259, 0, 0, 17266, 17271, 0, 17276, 0,
+ 0, 17283, 0, 0, 0, 0, 0, 0, 17288, 17293, 17297, 17304, 0, 17311, 17316,
+ 17321, 17326, 17333, 17340, 17347, 0, 17354, 17359, 17364, 0, 17371, 0,
+ 17378, 0, 0, 17383, 17390, 0, 17397, 17401, 17408, 17412, 17417, 17425,
+ 17431, 17437, 17442, 17448, 17454, 17460, 17465, 0, 17471, 17479, 17486,
+ 0, 0, 17493, 17498, 17504, 17509, 17515, 0, 17521, 0, 17527, 17534,
+ 17541, 17548, 17555, 17560, 0, 0, 17564, 17569, 17573, 17577, 17581,
+ 17585, 17589, 17593, 17598, 17602, 0, 0, 17607, 17613, 17619, 17626, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 17633, 17637, 17648, 17663, 17678, 17688, 17699,
+ 17712, 17723, 17729, 17737, 17747, 17753, 17761, 17765, 17771, 17777,
+ 17785, 17795, 17803, 17816, 17822, 17830, 17838, 17850, 17857, 17865,
+ 17873, 17881, 17889, 17897, 17905, 17915, 17919, 17922, 17925, 17928,
+ 17931, 17934, 17937, 17941, 17944, 17948, 17952, 17956, 17960, 17964,
+ 17968, 17972, 17977, 17981, 17986, 17991, 17997, 18007, 18021, 18031,
+ 18037, 18043, 18051, 18059, 18067, 18075, 18081, 18087, 18090, 18094,
+ 18098, 18102, 18106, 18110, 18114, 0, 18118, 18122, 18126, 18130, 18134,
+ 18138, 18142, 18146, 18150, 18154, 18158, 18162, 18165, 18169, 18173,
+ 18177, 18180, 18184, 18188, 18192, 18196, 18200, 18204, 18208, 18212,
+ 18215, 18219, 18223, 18227, 18231, 18235, 18238, 18241, 18245, 18251,
+ 18255, 0, 0, 0, 0, 18259, 18264, 18268, 18273, 18277, 18282, 18287,
+ 18293, 18298, 18304, 18308, 18313, 18317, 18322, 18332, 18338, 18344,
+ 18351, 18361, 18367, 18371, 18375, 18381, 18387, 18395, 18401, 18409,
+ 18417, 18425, 18435, 18443, 18453, 18458, 18464, 18470, 18476, 18482,
+ 18488, 18494, 0, 18500, 18506, 18512, 18518, 18524, 18530, 18536, 18542,
+ 18548, 18554, 18560, 18566, 18571, 18577, 18583, 18589, 18594, 18600,
+ 18606, 18612, 18618, 18624, 18630, 18636, 18642, 18647, 18653, 18659,
+ 18665, 18671, 18677, 18682, 18687, 18693, 18701, 18708, 0, 18716, 18723,
+ 18736, 18743, 18750, 18758, 18766, 18772, 18778, 18784, 18794, 18799,
+ 18805, 18815, 18825, 0, 18835, 18845, 18853, 18865, 18877, 18883, 18897,
+ 18912, 18917, 18922, 18930, 18938, 18946, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 18954, 18957, 18961, 18965, 18969, 18973, 18977, 18981, 18985,
+ 18989, 18993, 18997, 19001, 19005, 19009, 19013, 19017, 19021, 19025,
+ 19029, 19033, 19037, 19040, 19044, 19048, 19052, 19055, 19058, 19062,
+ 19066, 19070, 19074, 19077, 19081, 19084, 19089, 19092, 19096, 19099,
+ 19103, 19106, 19111, 19114, 19118, 19125, 19130, 19134, 19139, 19143,
+ 19148, 19152, 19157, 19164, 19170, 19175, 19179, 19183, 19187, 19191,
+ 19195, 19200, 19206, 19212, 19217, 19223, 19227, 19230, 19233, 19236,
+ 19239, 19242, 19245, 19249, 19252, 19256, 19262, 19266, 19270, 19274,
+ 19278, 19282, 19286, 19290, 19294, 19299, 19303, 19308, 19313, 19319,
+ 19324, 19330, 19336, 19342, 19348, 19354, 19362, 19369, 19377, 19385,
+ 19394, 19403, 19414, 19424, 19434, 19445, 19456, 19466, 19476, 19486,
+ 19496, 19506, 19516, 19526, 19536, 19544, 19551, 19557, 19564, 19569,
+ 19575, 19581, 19587, 19593, 19599, 19605, 19611, 19617, 19623, 19629,
+ 19635, 19640, 19648, 19655, 19661, 19668, 19676, 19682, 19688, 19694,
+ 19700, 19708, 19716, 19726, 19734, 19742, 19748, 19753, 19758, 19763,
+ 19768, 19773, 19778, 19784, 19789, 19795, 19801, 19807, 19813, 19820,
+ 19825, 19831, 19836, 19841, 19846, 19851, 19856, 19861, 19866, 19871,
+ 19876, 19881, 19886, 19891, 19896, 19901, 19906, 19911, 19916, 19921,
+ 19926, 19931, 19936, 19941, 19946, 19951, 19956, 19961, 19966, 19971,
+ 19976, 19981, 19986, 19991, 19996, 20001, 20006, 20011, 20016, 0, 20021,
+ 0, 0, 0, 0, 0, 20026, 0, 0, 20031, 20035, 20039, 20043, 20047, 20051,
+ 20055, 20059, 20063, 20067, 20071, 20075, 20079, 20083, 20087, 20091,
+ 20095, 20099, 20103, 20107, 20111, 20115, 20119, 20123, 20127, 20131,
+ 20135, 20139, 20143, 20147, 20151, 20155, 20159, 20163, 20167, 20171,
+ 20175, 20179, 20183, 20187, 20191, 20195, 20201, 20205, 20210, 20215,
+ 20219, 20224, 20229, 20233, 20237, 20241, 20245, 20249, 20253, 20257,
+ 20261, 20265, 20269, 20273, 20277, 20281, 20285, 20289, 20293, 20297,
+ 20301, 20305, 20309, 20313, 20317, 20321, 20325, 20329, 20333, 20337,
+ 20341, 20345, 20349, 20353, 20357, 20361, 20365, 20369, 20373, 20377,
+ 20381, 20385, 20389, 20393, 20397, 20401, 20405, 20409, 20413, 20417,
+ 20421, 20425, 20429, 20433, 20437, 20441, 20445, 20449, 20453, 20457,
+ 20461, 20465, 20469, 20473, 20477, 20481, 20485, 20489, 20493, 20497,
+ 20501, 20505, 20509, 20513, 20517, 20521, 20525, 20529, 20533, 20537,
+ 20541, 20545, 20549, 20553, 20557, 20561, 20565, 20569, 20573, 20577,
+ 20581, 20585, 20589, 20593, 20597, 20601, 20605, 20609, 20613, 20617,
+ 20620, 20624, 20627, 20631, 20635, 20638, 20642, 20646, 20649, 20653,
+ 20657, 20661, 20665, 20668, 20672, 20676, 20680, 20684, 20688, 20692,
+ 20695, 20699, 20703, 20707, 20711, 20715, 20719, 20723, 20727, 20731,
+ 20735, 20739, 20743, 20747, 20751, 20755, 20759, 20763, 20767, 20771,
+ 20775, 20779, 20783, 20787, 20791, 20795, 20799, 20803, 20807, 20811,
+ 20815, 20819, 20823, 20827, 20831, 20835, 20839, 20843, 20847, 20851,
+ 20855, 20859, 20863, 20867, 20871, 20875, 20879, 20883, 20887, 20891,
+ 20895, 20899, 20903, 20907, 20911, 20915, 20919, 20923, 20927, 20931,
+ 20935, 20939, 20943, 20947, 20951, 20955, 20959, 20963, 20967, 20971,
+ 20975, 20979, 20983, 20987, 20991, 20995, 20999, 21003, 21007, 21011,
+ 21015, 21019, 21023, 21027, 21031, 21035, 21039, 21043, 21047, 21051,
+ 21055, 21059, 21063, 21067, 21071, 21075, 21079, 21083, 21087, 21091,
+ 21095, 21099, 21103, 21107, 21111, 21115, 21119, 21123, 21127, 21131,
+ 21135, 21139, 21143, 21147, 21151, 21155, 21159, 21163, 21167, 21171,
+ 21175, 21179, 21183, 21187, 21191, 21195, 21199, 21203, 21207, 21211,
+ 21215, 21219, 21223, 21227, 21231, 21235, 21239, 21243, 21247, 21250,
+ 21254, 21258, 21262, 21266, 21270, 21274, 21278, 21282, 21286, 21290,
+ 21294, 21298, 21302, 21306, 21310, 21314, 21318, 21322, 21326, 21330,
+ 21334, 21338, 21342, 21345, 21349, 21353, 21357, 21361, 21365, 21369,
+ 21373, 21377, 21381, 21385, 21389, 21393, 21397, 21401, 21405, 21409,
+ 21413, 21417, 21421, 21425, 21429, 21433, 21437, 21441, 21445, 21449,
+ 21453, 21457, 21461, 21465, 21469, 21473, 21477, 21481, 21485, 21489,
+ 21493, 21497, 21501, 21505, 21509, 21513, 21517, 21521, 21525, 21529,
+ 21533, 0, 21537, 21541, 21545, 21549, 0, 0, 21553, 21557, 21561, 21565,
+ 21569, 21573, 21577, 0, 21581, 0, 21585, 21589, 21593, 21597, 0, 0,
+ 21601, 21605, 21609, 21613, 21617, 21621, 21625, 21629, 21633, 21637,
+ 21641, 21645, 21649, 21653, 21657, 21661, 21665, 21669, 21673, 21677,
+ 21681, 21685, 21689, 21692, 21696, 21700, 21704, 21708, 21712, 21716,
+ 21720, 21724, 21728, 21732, 21736, 21740, 21744, 21748, 21752, 21756,
+ 21760, 0, 21764, 21768, 21772, 21776, 0, 0, 21780, 21784, 21788, 21792,
+ 21796, 21800, 21804, 21808, 21812, 21816, 21820, 21824, 21828, 21832,
+ 21836, 21840, 21844, 21849, 21854, 21859, 21865, 21871, 21876, 21881,
+ 21887, 21890, 21894, 21898, 21902, 21906, 21910, 21914, 21918, 0, 21922,
+ 21926, 21930, 21934, 0, 0, 21938, 21942, 21946, 21950, 21954, 21958,
+ 21962, 0, 21966, 0, 21970, 21974, 21978, 21982, 0, 0, 21986, 21990,
+ 21994, 21998, 22002, 22006, 22010, 22014, 22018, 22023, 22028, 22033,
+ 22039, 22045, 22050, 0, 22055, 22059, 22063, 22067, 22071, 22075, 22079,
+ 22083, 22087, 22091, 22095, 22099, 22103, 22107, 22111, 22115, 22119,
+ 22122, 22126, 22130, 22134, 22138, 22142, 22146, 22150, 22154, 22158,
+ 22162, 22166, 22170, 22174, 22178, 22182, 22186, 22190, 22194, 22198,
+ 22202, 22206, 22210, 22214, 22218, 22222, 22226, 22230, 22234, 22238,
+ 22242, 22246, 22250, 22254, 22258, 22262, 22266, 22270, 22274, 22278, 0,
+ 22282, 22286, 22290, 22294, 0, 0, 22298, 22302, 22306, 22310, 22314,
+ 22318, 22322, 22326, 22330, 22334, 22338, 22342, 22346, 22350, 22354,
+ 22358, 22362, 22366, 22370, 22374, 22378, 22382, 22386, 22390, 22394,
+ 22398, 22402, 22406, 22410, 22414, 22418, 22422, 22426, 22430, 22434,
+ 22438, 22442, 22446, 22450, 22454, 22458, 22462, 22466, 22470, 22474,
+ 22478, 22482, 22486, 22490, 22494, 22498, 22502, 22506, 22510, 22514,
+ 22518, 22522, 22525, 22529, 22533, 22537, 22541, 22545, 22549, 22553,
+ 22557, 22561, 0, 0, 22565, 22574, 22580, 22585, 22589, 22592, 22597,
+ 22600, 22603, 22606, 22611, 22615, 22620, 22623, 22626, 22629, 22632,
+ 22635, 22638, 22642, 22645, 22649, 22653, 22657, 22661, 22665, 22669,
+ 22673, 22677, 22681, 22685, 22689, 0, 0, 0, 22695, 22701, 22705, 22709,
+ 22713, 22719, 22723, 22727, 22731, 22737, 22741, 22745, 22749, 22755,
+ 22759, 22763, 22767, 22773, 22779, 22785, 22793, 22799, 22805, 22811,
+ 22817, 22823, 0, 0, 0, 0, 0, 0, 22829, 22832, 22835, 22838, 22841, 22844,
+ 22848, 22852, 22855, 22859, 22863, 22867, 22871, 22875, 22878, 22882,
+ 22886, 22890, 22894, 22898, 22902, 22906, 22910, 22914, 22918, 22922,
+ 22925, 22929, 22933, 22937, 22941, 22945, 22949, 22953, 22957, 22961,
+ 22965, 22969, 22973, 22977, 22981, 22985, 22989, 22993, 22997, 23001,
+ 23004, 23008, 23012, 23016, 23020, 23024, 23028, 23032, 23036, 23040,
+ 23044, 23048, 23052, 23056, 23060, 23064, 23068, 23072, 23076, 23080,
+ 23084, 23088, 23092, 23096, 23100, 23104, 23108, 23112, 23116, 23120,
+ 23124, 23128, 23132, 23136, 23139, 23143, 23147, 23151, 23155, 23159, 0,
+ 0, 23163, 23168, 23173, 23178, 23183, 23188, 0, 0, 23193, 23197, 23200,
+ 23204, 23207, 23211, 23214, 23218, 23224, 23229, 23233, 23236, 23240,
+ 23244, 23249, 23253, 23258, 23262, 23267, 23271, 23276, 23280, 23285,
+ 23291, 23295, 23300, 23304, 23309, 23315, 23319, 23325, 23331, 23335,
+ 23340, 23348, 23356, 23363, 23368, 23373, 23382, 23388, 23396, 23401,
+ 23407, 23411, 23415, 23419, 23423, 23427, 23431, 23435, 23439, 23443,
+ 23447, 23453, 23458, 23463, 23466, 23470, 23474, 23479, 23483, 23488,
+ 23492, 23497, 23501, 23506, 23510, 23515, 23519, 23524, 23528, 23533,
+ 23539, 23543, 23548, 23553, 23557, 23561, 23565, 23569, 23572, 23576,
+ 23582, 23587, 23592, 23596, 23600, 23604, 23609, 23613, 23618, 23622,
+ 23627, 23630, 23634, 23638, 23643, 23647, 23652, 23656, 23661, 23667,
+ 23671, 23675, 23679, 23683, 23687, 23691, 23695, 23699, 23703, 23707,
+ 23711, 23717, 23720, 23724, 23728, 23733, 23737, 23742, 23746, 23751,
+ 23755, 23760, 23764, 23769, 23773, 23778, 23782, 23787, 23793, 23797,
+ 23801, 23807, 23813, 23819, 23825, 23829, 23833, 23837, 23841, 23845,
+ 23849, 23855, 23859, 23863, 23867, 23872, 23876, 23881, 23885, 23890,
+ 23894, 23899, 23903, 23908, 23912, 23917, 23921, 23926, 23932, 23936,
+ 23942, 23946, 23950, 23954, 23958, 23962, 23966, 23972, 23975, 23979,
+ 23983, 23988, 23992, 23997, 24001, 24006, 24010, 24015, 24019, 24024,
+ 24028, 24033, 24037, 24042, 24048, 24052, 24057, 24061, 24067, 24073,
+ 24077, 24081, 24085, 24089, 24093, 24097, 24103, 24107, 24111, 24115,
+ 24120, 24124, 24129, 24133, 24138, 24144, 24148, 24153, 24157, 24161,
+ 24165, 24169, 24173, 24177, 24181, 24187, 24191, 24195, 24199, 24204,
+ 24208, 24213, 24217, 24222, 24226, 24231, 24235, 24240, 24244, 24249,
+ 24253, 24258, 24261, 24265, 24269, 24273, 24277, 24281, 24285, 24289,
+ 24293, 24299, 24303, 24307, 24311, 24316, 24320, 24325, 24329, 24334,
+ 24338, 24343, 24347, 24352, 24356, 24361, 24365, 24370, 24376, 24379,
+ 24384, 24388, 24393, 24399, 24405, 24411, 24417, 24423, 24429, 24435,
+ 24439, 24443, 24447, 24451, 24455, 24459, 24463, 24467, 24472, 24476,
+ 24481, 24485, 24490, 24494, 24499, 24503, 24508, 24512, 24517, 24521,
+ 24526, 24530, 24534, 24538, 24542, 24546, 24550, 24554, 24560, 24563,
+ 24567, 24571, 24576, 24580, 24585, 24589, 24594, 24598, 24603, 24607,
+ 24612, 24616, 24621, 24625, 24630, 24636, 24640, 24646, 24651, 24657,
+ 24661, 24667, 24672, 24676, 24680, 24684, 24688, 24692, 24697, 24701,
+ 24705, 24710, 24714, 24719, 24722, 24726, 24730, 24734, 24738, 24742,
+ 24746, 24750, 24754, 24758, 24762, 24766, 24771, 24775, 24779, 24785,
+ 24789, 24795, 24799, 24805, 24809, 24813, 24817, 24821, 24825, 24830,
+ 24834, 24838, 24842, 24846, 24850, 24854, 24858, 24862, 24866, 24870,
+ 24876, 24882, 24888, 24894, 24900, 24905, 24911, 24917, 24923, 24927,
+ 24931, 24935, 24939, 24943, 24947, 24951, 24955, 24959, 24963, 24967,
+ 24971, 24975, 24980, 24985, 24990, 24995, 24999, 25003, 25007, 25011,
+ 25015, 25019, 25023, 25027, 25031, 25037, 25043, 25049, 25055, 25061,
+ 25067, 25073, 25079, 25085, 25089, 25093, 25097, 25101, 25105, 25109,
+ 25113, 25119, 25125, 25131, 25137, 25143, 25149, 25155, 25161, 25167,
+ 25172, 25177, 25182, 25187, 25193, 25199, 25205, 25211, 25217, 25223,
+ 25229, 25235, 25241, 25247, 25253, 25258, 25264, 25270, 25276, 25281,
+ 25286, 25291, 25296, 25301, 25306, 25311, 25316, 25321, 25326, 25331,
+ 25336, 25341, 25346, 25351, 25356, 25361, 25366, 25371, 25376, 25381,
+ 25386, 25391, 25396, 25401, 25406, 25411, 25416, 25421, 25426, 25431,
+ 25436, 25441, 25446, 25451, 25456, 25461, 25466, 25471, 25476, 25481,
+ 25486, 25490, 25495, 25500, 25505, 25510, 25515, 25520, 25525, 25530,
+ 25535, 25540, 25545, 25550, 25555, 25560, 25565, 25570, 25575, 25580,
+ 25585, 25590, 25595, 25600, 25605, 25610, 25615, 25620, 25625, 25630,
+ 25635, 25640, 25645, 25649, 25654, 25659, 25664, 25669, 25674, 25678,
+ 25683, 25689, 25694, 25699, 25704, 25709, 25715, 25720, 25725, 25730,
+ 25735, 25740, 25745, 25750, 25755, 25760, 25765, 25770, 25775, 25780,
+ 25785, 25790, 25795, 25800, 25805, 25810, 25815, 25820, 25825, 25830,
+ 25835, 25840, 25845, 25850, 25855, 25860, 25865, 25870, 25875, 25880,
+ 25885, 25890, 25895, 25900, 25905, 25910, 25915, 25920, 25925, 25930,
+ 25935, 25941, 25946, 25951, 25956, 25961, 25966, 25971, 25976, 25981,
+ 25986, 25991, 25996, 26001, 26006, 26011, 26016, 26021, 26026, 26031,
+ 26036, 26041, 26046, 26051, 26056, 26061, 26066, 26071, 26076, 26081,
+ 26086, 26091, 26096, 26101, 26106, 26111, 26116, 26121, 26126, 26131,
+ 26137, 26141, 26145, 26149, 26153, 26157, 26161, 26165, 26169, 26175,
+ 26181, 26187, 26193, 26199, 26205, 26211, 26218, 26224, 26229, 26234,
+ 26239, 26244, 26249, 26254, 26259, 26264, 26269, 26274, 26279, 26284,
+ 26289, 26294, 26299, 26304, 26309, 26314, 26319, 26324, 26329, 26334,
+ 26339, 26344, 26349, 26354, 26359, 26364, 0, 0, 0, 26371, 26381, 26385,
+ 26392, 26396, 26400, 26404, 26412, 26416, 26421, 26426, 26431, 26435,
+ 26440, 26445, 26448, 26452, 26456, 26465, 26469, 26473, 26479, 26483,
+ 26487, 26495, 26499, 26507, 26513, 26519, 26525, 26531, 26541, 26547,
+ 26551, 26560, 26563, 26569, 26573, 26579, 26584, 26590, 26598, 26604,
+ 26609, 26616, 26621, 26625, 26629, 26639, 26645, 26649, 26659, 26665,
+ 26669, 26673, 26680, 26688, 26694, 26700, 26709, 26713, 26717, 26721,
+ 26729, 26736, 26740, 26744, 26748, 26752, 26756, 26760, 26764, 26768,
+ 26772, 26776, 26780, 26785, 26790, 26795, 26799, 26803, 26807, 26811,
+ 26815, 26819, 26827, 26835, 26843, 26851, 0, 0, 0, 0, 0, 0, 0, 26859,
+ 26863, 26867, 26871, 26875, 26880, 26885, 26890, 26895, 26900, 26904,
+ 26909, 26913, 0, 26917, 26922, 26927, 26932, 26936, 26941, 26946, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 26951, 26955, 26959, 26963, 26967, 26972,
+ 26977, 26982, 26987, 26992, 26996, 27001, 27005, 27009, 27014, 27019,
+ 27024, 27029, 27033, 27038, 27043, 27048, 27054, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 27059, 27063, 27067, 27071, 27075, 27080, 27085, 27090, 27095, 27100,
+ 27104, 27109, 27113, 27117, 27122, 27127, 27132, 27137, 27141, 27146, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27151, 27155, 27159, 27163, 27167,
+ 27172, 27177, 27182, 27187, 27192, 27196, 27201, 27205, 0, 27209, 27214,
+ 27219, 0, 27224, 27229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27234, 27237,
+ 27241, 27245, 27249, 27253, 27257, 27261, 27265, 27269, 27273, 27277,
+ 27281, 27285, 27289, 27293, 27297, 27301, 27304, 27308, 27312, 27316,
+ 27320, 27324, 27328, 27332, 27336, 27340, 27344, 27348, 27352, 27356,
+ 27360, 27363, 27367, 27371, 27377, 27383, 27389, 27395, 27401, 27407,
+ 27413, 27419, 27425, 27431, 27437, 27443, 27449, 27455, 27464, 27473,
+ 27479, 27485, 27491, 27496, 27500, 27505, 27510, 27515, 27519, 27524,
+ 27529, 27534, 27538, 27543, 27547, 27552, 27557, 27562, 27567, 27571,
+ 27575, 27579, 27583, 27587, 27591, 27595, 27599, 27603, 27607, 27613,
+ 27617, 27621, 27625, 27629, 27633, 27641, 27647, 27651, 27657, 27661,
+ 27667, 27671, 0, 0, 27675, 27679, 27682, 27685, 27688, 27691, 27694,
+ 27697, 27701, 27704, 0, 0, 0, 0, 0, 0, 27708, 27716, 27724, 27732, 27740,
+ 27748, 27756, 27764, 27772, 27780, 0, 0, 0, 0, 0, 0, 27788, 27791, 27794,
+ 27797, 27802, 27805, 27810, 27817, 27825, 27830, 27837, 27840, 27847,
+ 27854, 27861, 0, 27865, 27869, 27872, 27875, 27878, 27881, 27884, 27887,
+ 27891, 27894, 0, 0, 0, 0, 0, 0, 27898, 27901, 27904, 27907, 27910, 27913,
+ 27917, 27921, 27925, 27929, 27933, 27937, 27940, 27944, 27948, 27951,
+ 27955, 27959, 27963, 27967, 27971, 27975, 27979, 27982, 27986, 27990,
+ 27994, 27997, 28001, 28005, 28009, 28013, 28017, 28021, 28025, 28029,
+ 28036, 28041, 28046, 28051, 28056, 28062, 28068, 28074, 28080, 28085,
+ 28091, 28097, 28102, 28108, 28114, 28120, 28126, 28132, 28137, 28143,
+ 28148, 28154, 28160, 28166, 28172, 28178, 28183, 28188, 28194, 28200,
+ 28205, 28211, 28216, 28222, 28227, 28232, 28238, 28244, 28250, 28256,
+ 28262, 28268, 28274, 28280, 28286, 28292, 28298, 28304, 28309, 28314,
+ 28320, 28326, 0, 0, 0, 0, 0, 0, 0, 0, 28332, 28341, 28350, 28358, 28366,
+ 28376, 28384, 28393, 28400, 28407, 28414, 28422, 28430, 28438, 28446,
+ 28454, 28462, 28470, 28478, 28485, 28493, 28501, 28509, 28517, 28525,
+ 28535, 28545, 28555, 28565, 28575, 28585, 28595, 28605, 28615, 28625,
+ 28635, 28645, 28655, 28665, 28673, 28681, 28691, 28699, 0, 0, 0, 0, 0,
+ 28709, 28713, 28717, 28721, 28725, 28729, 28733, 28737, 28741, 28745,
+ 28749, 28753, 28757, 28761, 28765, 28769, 28773, 28777, 28781, 28785,
+ 28789, 28793, 28797, 28801, 28807, 28811, 28817, 28821, 28827, 28831,
+ 28837, 28841, 28845, 28849, 28853, 28857, 28861, 28867, 28873, 28879,
+ 28885, 28891, 28897, 28902, 28908, 28914, 28920, 28926, 28933, 28939,
+ 28944, 28949, 28953, 28957, 28961, 28965, 28969, 28973, 28977, 28983,
+ 28989, 28995, 29000, 29007, 29012, 29017, 29023, 29028, 29035, 29042, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 29048, 29054, 29058, 29063, 29068, 29073,
+ 29078, 29083, 29088, 29093, 29098, 29103, 29108, 29113, 29118, 29123,
+ 29128, 29132, 29137, 29142, 29147, 29151, 29155, 29160, 29165, 29170,
+ 29175, 29180, 29185, 29189, 29194, 0, 29199, 29204, 29209, 29214, 29220,
+ 29226, 29232, 29238, 29243, 29248, 29254, 29261, 0, 0, 0, 0, 29268,
+ 29273, 29279, 29285, 29291, 29297, 29302, 29307, 29313, 29319, 29324,
+ 29329, 0, 0, 0, 0, 29334, 0, 0, 0, 29339, 29344, 29349, 29354, 29358,
+ 29362, 29366, 29370, 29374, 29378, 29383, 29387, 29392, 29397, 29403,
+ 29409, 29415, 29421, 29426, 29432, 29438, 29444, 29449, 29455, 29460,
+ 29466, 29472, 29477, 29483, 29489, 29495, 29501, 29506, 29511, 29517,
+ 29523, 29528, 29534, 29539, 29545, 29550, 29556, 0, 0, 29562, 29568,
+ 29574, 29580, 29586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29592, 29601,
+ 29610, 29618, 29627, 29636, 29644, 29653, 29662, 29671, 29680, 29688,
+ 29697, 29706, 29714, 29723, 29732, 29741, 29750, 29759, 29768, 29776,
+ 29785, 29793, 29801, 29810, 29818, 29827, 29836, 29845, 29854, 29863,
+ 29872, 29880, 29889, 29898, 29906, 29915, 29924, 29933, 29942, 29951,
+ 29960, 29969, 0, 0, 0, 0, 29978, 29988, 29997, 30006, 30014, 30023,
+ 30031, 30040, 30048, 30057, 30066, 30075, 30084, 30093, 30102, 30111,
+ 30120, 30129, 30138, 30147, 30156, 30165, 30174, 30183, 30192, 30200, 0,
+ 0, 0, 0, 0, 0, 30208, 30216, 30223, 30230, 30237, 30244, 30251, 30258,
+ 30266, 30273, 30281, 0, 0, 0, 30289, 30297, 30305, 30309, 30315, 30321,
+ 30327, 30333, 30339, 30345, 30351, 30357, 30363, 30369, 30375, 30381,
+ 30387, 30393, 30399, 30403, 30409, 30415, 30421, 30427, 30433, 30439,
+ 30445, 30451, 30457, 30463, 30469, 30475, 30481, 30487, 30493, 30497,
+ 30502, 30507, 30512, 30516, 30521, 30525, 30530, 30535, 30540, 30545,
+ 30550, 30555, 30560, 30565, 30570, 30574, 30579, 30584, 30589, 30594,
+ 30598, 30602, 30607, 30612, 30617, 30622, 0, 0, 30628, 30632, 30639,
+ 30644, 30650, 30656, 30661, 30667, 30673, 30678, 30684, 30690, 30696,
+ 30702, 30708, 30713, 30718, 30724, 30729, 30735, 30740, 30746, 30752,
+ 30758, 30764, 30769, 30774, 30779, 30785, 30791, 30796, 30802, 30808,
+ 30812, 30817, 30822, 30827, 30832, 30837, 30842, 30847, 30853, 30859,
+ 30865, 30870, 30875, 30879, 30884, 30888, 30893, 30897, 30902, 30907,
+ 30912, 30917, 30924, 30931, 30938, 30948, 30957, 30964, 30970, 30981,
+ 30986, 30992, 0, 30998, 31003, 31008, 31016, 31022, 31030, 31035, 31041,
+ 31047, 31053, 31058, 31064, 31069, 31076, 31082, 31087, 31093, 31099,
+ 31105, 31112, 31119, 31126, 31131, 31136, 31143, 31150, 31157, 31164,
+ 31171, 0, 0, 31178, 31185, 31192, 31198, 31204, 31210, 31216, 31222,
+ 31228, 31235, 31241, 0, 0, 0, 0, 0, 0, 31248, 31254, 31259, 31264, 31269,
+ 31274, 31279, 31284, 31290, 31295, 0, 0, 0, 0, 0, 0, 31301, 31306, 31311,
+ 31316, 31321, 31326, 31331, 31340, 31347, 31352, 31357, 31362, 31367,
+ 31372, 0, 0, 31377, 31384, 31387, 31390, 31393, 31398, 31402, 31408,
+ 31412, 31417, 31424, 31432, 31436, 31441, 31445, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 31450, 31456, 31462, 31466, 31470, 31474,
+ 31478, 31484, 31488, 31494, 31498, 31504, 31510, 31518, 31524, 31532,
+ 31536, 31540, 31544, 31550, 31553, 31559, 31563, 31569, 31573, 31577,
+ 31583, 31587, 31593, 31597, 31603, 31611, 31619, 31627, 31633, 31637,
+ 31643, 31647, 31653, 31657, 31660, 31666, 31670, 31676, 31679, 31682,
+ 31686, 31690, 31694, 31700, 31706, 31710, 31713, 31717, 31722, 31727,
+ 31734, 31739, 31746, 31753, 31762, 31769, 31778, 31783, 31790, 31797,
+ 31806, 31811, 31818, 31823, 31829, 31835, 31841, 31847, 31853, 31859, 0,
+ 0, 0, 0, 31865, 31869, 31872, 31875, 31878, 31881, 31884, 31887, 31891,
+ 31894, 31898, 31901, 31904, 31907, 31912, 31917, 31922, 31925, 31930,
+ 31935, 31940, 31945, 31952, 31957, 31962, 31967, 31972, 31979, 31985,
+ 31991, 31997, 32003, 32009, 32018, 32027, 32033, 32039, 32047, 32055,
+ 32064, 32073, 32081, 32089, 32098, 32107, 0, 0, 0, 32115, 32120, 32125,
+ 32130, 32134, 32138, 32142, 32147, 32151, 32155, 32160, 32164, 32169,
+ 32174, 32179, 32184, 32189, 32194, 32199, 32204, 32209, 32214, 32218,
+ 32223, 32228, 32233, 32237, 32241, 32246, 32251, 32256, 32261, 32266,
+ 32270, 32276, 32282, 32288, 32294, 32300, 32306, 32312, 32318, 32324,
+ 32329, 32334, 32341, 32349, 32354, 32359, 32364, 32368, 32372, 32376,
+ 32380, 32384, 32388, 32393, 32397, 32402, 32406, 32411, 32416, 32421,
+ 32427, 32433, 32437, 32443, 32447, 32453, 32459, 32464, 32471, 32475,
+ 32481, 32486, 32493, 32498, 32505, 32512, 32517, 32524, 32529, 32534,
+ 32539, 32546, 32550, 32556, 32563, 32570, 32575, 32582, 32589, 32593,
+ 32599, 32604, 32609, 32616, 32621, 32626, 32631, 32636, 32640, 32644,
+ 32649, 32654, 32661, 32667, 32672, 32679, 32684, 32691, 32696, 32706,
+ 32712, 32718, 32722, 0, 0, 0, 0, 0, 0, 0, 0, 32726, 32735, 32742, 32749,
+ 32756, 32760, 32765, 32770, 32775, 32780, 32785, 32790, 32795, 32800,
+ 32805, 32810, 32815, 32820, 32825, 32829, 32834, 32839, 32844, 32849,
+ 32854, 32859, 32863, 32868, 32873, 32878, 32883, 32887, 32892, 32897,
+ 32901, 32906, 32911, 32916, 32921, 32926, 32930, 32936, 32943, 32949,
+ 32954, 32959, 32965, 32970, 32976, 32981, 32987, 32993, 32998, 33004,
+ 33010, 33015, 33021, 33027, 33033, 33038, 0, 0, 0, 33043, 33049, 33059,
+ 33065, 33073, 33079, 33084, 33088, 33092, 33096, 33100, 33104, 33108,
+ 33113, 33117, 0, 0, 0, 33122, 33127, 33132, 33137, 33144, 33150, 33156,
+ 33162, 33168, 33174, 33180, 33187, 33193, 33200, 33207, 33214, 33221,
+ 33228, 33235, 33242, 33249, 33256, 33263, 33270, 33277, 33284, 33291,
+ 33298, 33305, 33312, 33319, 33326, 33333, 33340, 33347, 33354, 33361,
+ 33368, 33375, 33382, 33389, 33396, 33403, 33410, 33418, 33426, 33434,
+ 33440, 33446, 33452, 33460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 12070, 0, 12079, 12086, 12094, 12106, 12113, 12120, 12127, 12138, 12149,
- 12156, 12164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12170, 12175, 12180, 12185, 12190,
- 12195, 12200, 12205, 12210, 12215, 12220, 12225, 12230, 12234, 12238,
- 12242, 12247, 12253, 12259, 12265, 12270, 12275, 12280, 12285, 12291,
- 12300, 12308, 0, 12314, 12320, 12324, 12328, 12332, 12337, 12340, 12344,
- 12347, 12351, 12354, 12358, 12362, 12366, 12371, 12376, 12379, 12383,
- 12388, 12393, 12396, 12400, 12403, 12407, 12411, 12415, 12419, 12423,
- 12427, 12431, 12435, 12439, 12443, 12447, 12451, 12455, 12459, 12463,
- 12467, 12471, 12475, 12478, 12482, 12485, 12489, 12493, 12497, 12500,
- 12503, 12506, 12510, 12514, 12518, 12522, 12526, 12530, 12534, 12537,
- 12540, 12545, 12550, 12554, 12558, 12563, 12567, 12572, 12576, 12581,
- 12586, 12592, 12598, 12604, 12608, 12613, 12619, 12625, 12629, 12634,
- 12638, 12644, 12649, 12652, 12658, 12664, 12669, 12674, 12681, 12686,
- 12691, 12695, 12699, 12703, 12707, 12711, 12715, 12719, 12723, 12728,
- 12733, 12738, 12744, 12747, 12751, 12755, 12758, 12761, 12764, 12767,
- 12770, 12773, 12776, 12779, 12782, 12786, 12793, 12798, 12802, 12806,
- 12810, 12814, 0, 12818, 12822, 12826, 12830, 12834, 12840, 12844, 0,
- 12848, 12852, 12856, 0, 12860, 12863, 12867, 12870, 12874, 12877, 12881,
- 12885, 0, 0, 12889, 12892, 0, 0, 12896, 12899, 12903, 12906, 12910,
- 12914, 12918, 12922, 12926, 12930, 12934, 12938, 12942, 12946, 12950,
- 12954, 12958, 12962, 12966, 12970, 12974, 12978, 0, 12981, 12984, 12988,
- 12992, 12996, 12999, 13002, 0, 13005, 0, 0, 0, 13009, 13013, 13017,
- 13020, 0, 0, 13023, 13027, 13031, 13036, 13040, 13045, 13049, 13054,
- 13059, 0, 0, 13065, 13069, 0, 0, 13074, 13078, 13083, 13087, 0, 0, 0, 0,
- 0, 0, 0, 0, 13093, 0, 0, 0, 0, 13099, 13103, 0, 13107, 13111, 13116,
- 13121, 13126, 0, 0, 13132, 13136, 13139, 13142, 13145, 13148, 13151,
- 13154, 13157, 13160, 13163, 13172, 13181, 13185, 13189, 13195, 13201,
- 13207, 13213, 13227, 13234, 13237, 0, 0, 0, 0, 0, 13241, 13247, 13251, 0,
- 13255, 13258, 13262, 13265, 13269, 13272, 0, 0, 0, 0, 13276, 13280, 0, 0,
- 13284, 13288, 13292, 13295, 13299, 13303, 13307, 13311, 13315, 13319,
- 13323, 13327, 13331, 13335, 13339, 13343, 13347, 13351, 13355, 13359,
- 13363, 13367, 0, 13370, 13373, 13377, 13381, 13385, 13388, 13391, 0,
- 13394, 13398, 0, 13402, 13406, 0, 13410, 13413, 0, 0, 13416, 0, 13420,
- 13425, 13429, 13434, 13438, 0, 0, 0, 0, 13443, 13448, 0, 0, 13453, 13458,
- 13463, 0, 0, 0, 13467, 0, 0, 0, 0, 0, 0, 0, 13471, 13475, 13479, 13483,
- 0, 13487, 0, 0, 0, 0, 0, 0, 0, 13491, 13495, 13498, 13501, 13504, 13507,
- 13510, 13513, 13516, 13519, 13522, 13525, 13528, 13531, 13534, 13539, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13543, 13547, 13551, 0, 13555, 13558,
- 13562, 13565, 13569, 13572, 13576, 13580, 13584, 0, 13589, 13592, 13596,
- 0, 13601, 13604, 13608, 13611, 13615, 13619, 13623, 13627, 13631, 13635,
- 13639, 13643, 13647, 13651, 13655, 13659, 13663, 13667, 13671, 13675,
- 13679, 13683, 0, 13686, 13689, 13693, 13697, 13701, 13704, 13707, 0,
- 13710, 13714, 0, 13718, 13722, 13726, 13730, 13733, 0, 0, 13736, 13740,
- 13744, 13749, 13753, 13758, 13762, 13767, 13772, 13778, 0, 13784, 13788,
- 13793, 0, 13799, 13803, 13808, 0, 0, 13812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 13815, 13820, 13825, 13830, 0, 0, 13836, 13840, 13843,
- 13846, 13849, 13852, 13855, 13858, 13861, 13864, 13867, 13871, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13875, 13879, 13883, 0, 13887, 13890,
- 13894, 13897, 13901, 13904, 13908, 13912, 0, 0, 13916, 13919, 0, 0,
- 13923, 13926, 13930, 13933, 13937, 13941, 13945, 13949, 13953, 13957,
- 13961, 13965, 13969, 13973, 13977, 13981, 13985, 13989, 13993, 13997,
- 14001, 14005, 0, 14008, 14011, 14015, 14019, 14023, 14026, 14029, 0,
- 14032, 14036, 0, 14040, 14044, 14048, 14052, 14055, 0, 0, 14058, 14062,
- 14066, 14071, 14075, 14080, 14084, 14089, 14094, 0, 0, 14100, 14104, 0,
- 0, 14109, 14113, 14118, 0, 0, 0, 0, 0, 0, 0, 0, 14122, 14128, 0, 0, 0, 0,
- 14134, 14138, 0, 14142, 14146, 14151, 14156, 14161, 0, 0, 14167, 14171,
- 14174, 14177, 14180, 14183, 14186, 14189, 14192, 14195, 14198, 14201,
- 14205, 14211, 14217, 14223, 14229, 14235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 14241, 14245, 0, 14249, 14252, 14256, 14259, 14263, 14266, 0, 0, 0,
- 14270, 14273, 14277, 0, 14281, 14284, 14288, 14292, 0, 0, 0, 14295,
- 14299, 0, 14303, 0, 14307, 14311, 0, 0, 0, 14315, 14319, 0, 0, 0, 14323,
- 14326, 14330, 0, 0, 0, 14333, 14336, 14339, 14342, 14346, 14350, 14354,
- 14358, 14362, 14366, 14370, 14373, 0, 0, 0, 0, 14376, 14381, 14385,
- 14390, 14394, 0, 0, 0, 14399, 14403, 14408, 0, 14413, 14417, 14422,
- 14427, 0, 0, 14431, 0, 0, 0, 0, 0, 0, 14434, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 14440, 14444, 14447, 14450, 14453, 14456, 14459, 14462,
- 14465, 14468, 14471, 14475, 14480, 14485, 14489, 14493, 14497, 14501,
- 14505, 14510, 14514, 0, 0, 0, 0, 0, 0, 14517, 14521, 14525, 0, 14529,
- 14532, 14536, 14539, 14543, 14546, 14550, 14554, 0, 14558, 14561, 14565,
- 0, 14569, 14572, 14576, 14580, 14583, 14587, 14591, 14595, 14599, 14603,
- 14607, 14611, 14615, 14619, 14623, 14627, 14631, 14635, 14639, 14643,
- 14647, 14651, 14655, 0, 14658, 14661, 14665, 14669, 14673, 14676, 14679,
- 14682, 14686, 14690, 0, 14694, 14698, 14702, 14706, 14709, 0, 0, 0,
- 14712, 14716, 14721, 14725, 14730, 14734, 14739, 14744, 0, 14750, 14754,
- 14759, 0, 14764, 14768, 14773, 14778, 0, 0, 0, 0, 0, 0, 0, 14782, 14786,
- 0, 14792, 14796, 0, 0, 0, 0, 0, 0, 14800, 14805, 14810, 14815, 0, 0,
- 14821, 14825, 14828, 14831, 14834, 14837, 14840, 14843, 14846, 14849, 0,
- 0, 0, 0, 0, 0, 0, 0, 14852, 14865, 14877, 14889, 14901, 14913, 14925,
- 14937, 0, 0, 14941, 14945, 0, 14949, 14952, 14956, 14959, 14963, 14966,
- 14970, 14974, 0, 14978, 14981, 14985, 0, 14989, 14992, 14996, 15000,
- 15003, 15007, 15011, 15015, 15019, 15023, 15027, 15031, 15035, 15039,
- 15043, 15047, 15051, 15055, 15059, 15063, 15067, 15071, 15075, 0, 15078,
- 15081, 15085, 15089, 15093, 15096, 15099, 15102, 15106, 15110, 0, 15114,
- 15118, 15122, 15126, 15129, 0, 0, 15132, 15136, 15140, 15145, 15149,
- 15154, 15158, 15163, 15168, 0, 15174, 15178, 15183, 0, 15188, 15192,
- 15197, 15202, 0, 0, 0, 0, 0, 0, 0, 15206, 15210, 0, 0, 0, 0, 0, 0, 0,
- 15216, 0, 15220, 15225, 15230, 15235, 0, 0, 15241, 15245, 15248, 15251,
- 15254, 15257, 15260, 15263, 15266, 15269, 0, 15272, 15276, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15280, 15284, 0, 15288, 15291, 15295,
- 15298, 15302, 15305, 15309, 15313, 0, 15317, 15320, 15324, 0, 15328,
- 15331, 15335, 15339, 15342, 15346, 15350, 15354, 15358, 15362, 15366,
- 15370, 15374, 15378, 15382, 15386, 15390, 15394, 15398, 15402, 15406,
- 15410, 15414, 15417, 15421, 15424, 15428, 15432, 15436, 15439, 15442,
- 15445, 15449, 15453, 15457, 15461, 15465, 15469, 15473, 15476, 15479, 0,
- 0, 15483, 15487, 15492, 15496, 15501, 15505, 15510, 15515, 0, 15521,
- 15525, 15530, 0, 15535, 15539, 15544, 15549, 15553, 0, 0, 0, 0, 0, 0, 0,
- 0, 15558, 0, 0, 0, 0, 0, 0, 0, 0, 15564, 15569, 15574, 15579, 0, 0,
- 15585, 15589, 15592, 15595, 15598, 15601, 15604, 15607, 15610, 15613,
- 15616, 15620, 15625, 15630, 15636, 15642, 0, 0, 0, 15648, 15652, 15658,
- 15664, 15670, 15675, 15681, 0, 0, 15687, 15691, 0, 15695, 15699, 15703,
- 15707, 15711, 15715, 15719, 15723, 15727, 15731, 15735, 15739, 15743,
- 15747, 15751, 15755, 15759, 15763, 0, 0, 0, 15767, 15773, 15779, 15785,
- 15791, 15797, 15803, 15809, 15815, 15821, 15827, 15833, 15841, 15847,
- 15853, 15859, 15865, 15871, 15877, 15883, 15889, 15895, 15901, 15907, 0,
- 15913, 15919, 15925, 15931, 15937, 15943, 15947, 15953, 15957, 0, 15961,
- 0, 0, 15967, 15971, 15977, 15983, 15989, 15993, 15999, 0, 0, 0, 16003, 0,
- 0, 0, 0, 16007, 16012, 16019, 16026, 16033, 16040, 0, 16047, 0, 16054,
- 16059, 16064, 16071, 16078, 16087, 16098, 16107, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16112, 16119, 16126, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 16131, 16137, 16143, 16149, 16155, 16161, 16167, 16173,
- 16179, 16185, 16191, 16197, 16203, 16209, 16215, 16221, 16227, 16233,
- 16239, 16245, 16251, 16257, 16263, 16269, 16275, 16281, 16287, 16293,
- 16299, 16305, 16311, 16317, 16323, 16328, 16334, 16340, 16344, 16350,
- 16354, 16360, 16366, 16372, 16378, 16384, 16390, 16395, 16401, 16405,
- 16410, 16416, 16422, 16428, 16433, 16439, 16445, 16451, 16456, 16462, 0,
- 0, 0, 0, 16466, 16472, 16477, 16483, 16488, 16496, 16504, 16508, 16512,
- 16516, 16522, 16528, 16534, 16540, 16544, 16548, 16552, 16556, 16560,
- 16563, 16566, 16569, 16572, 16575, 16578, 16581, 16584, 16587, 16591, 0,
+ 0, 33469, 33477, 33485, 33493, 33501, 33511, 33521, 33531, 0, 0, 0, 0, 0,
+ 0, 0, 0, 33541, 33546, 33551, 33556, 33561, 33570, 33581, 33590, 33601,
+ 33607, 33620, 33626, 33633, 33640, 33645, 33651, 33657, 33668, 33677,
+ 33684, 33691, 33700, 33707, 33716, 33726, 33736, 33743, 33750, 33757,
+ 33767, 33772, 33780, 33786, 33794, 33803, 33808, 33815, 33821, 33826, 0,
+ 33831, 33837, 0, 0, 0, 0, 0, 0, 33844, 33849, 33855, 33862, 33870, 33876,
+ 33882, 33888, 33893, 33900, 33906, 33912, 33918, 33926, 33932, 33940,
+ 33945, 33951, 33957, 33964, 33972, 33979, 33985, 33992, 33999, 34005,
+ 34012, 34019, 34025, 34030, 34036, 34044, 34053, 34059, 34065, 34071,
+ 34077, 34085, 34089, 34095, 34101, 34107, 34113, 34119, 34125, 34129,
+ 34134, 34139, 34146, 34151, 34155, 34161, 34166, 34171, 34175, 34180,
+ 34185, 34189, 34194, 34199, 34206, 34210, 34215, 34220, 34224, 34229,
+ 34233, 34238, 34242, 34248, 34253, 34260, 34265, 34270, 34274, 34279,
+ 34284, 34291, 34296, 34302, 34307, 34312, 34317, 34321, 34326, 34333,
+ 34340, 34345, 34350, 34354, 34360, 34367, 34372, 34377, 34382, 34388,
+ 34393, 34399, 34404, 34410, 34416, 34422, 34429, 34436, 34443, 34450,
+ 34457, 34464, 34469, 34477, 34486, 34495, 34504, 34513, 34522, 34531,
+ 34543, 34552, 34561, 34570, 34577, 34582, 34589, 34597, 34605, 34612,
+ 34619, 34626, 34633, 34641, 34650, 34659, 34668, 34677, 34686, 34695,
+ 34704, 34713, 34722, 34731, 34740, 34749, 34758, 34767, 34775, 34784,
+ 34795, 34803, 34812, 34823, 34832, 34841, 34850, 34859, 34867, 34876,
+ 34883, 34888, 34896, 34901, 34908, 34913, 34922, 34928, 34935, 34942,
+ 34947, 34952, 34960, 34968, 34977, 34986, 34991, 34998, 35009, 35017,
+ 35026, 35032, 35038, 35043, 35050, 35055, 35064, 35069, 35074, 35079,
+ 35086, 35093, 35098, 35107, 35115, 35120, 35125, 35132, 35139, 35143,
+ 35147, 35150, 35153, 35156, 35159, 35162, 35165, 35172, 35175, 35178,
+ 35183, 35187, 35191, 35195, 35199, 35203, 35212, 35218, 35224, 35230,
+ 35238, 35246, 35252, 35258, 35265, 35271, 35276, 35282, 35289, 35295,
+ 35302, 35308, 35316, 35321, 35327, 35333, 35339, 35345, 35351, 35357,
+ 35363, 35374, 35384, 35390, 35396, 35406, 35412, 35420, 35428, 35436, 0,
+ 0, 0, 0, 0, 0, 35441, 35448, 35455, 35460, 35469, 35477, 35485, 35492,
+ 35499, 35506, 35513, 35521, 35529, 35539, 35549, 35557, 35565, 35573,
+ 35581, 35590, 35599, 35607, 35615, 35624, 35633, 35643, 35653, 35662,
+ 35671, 35679, 35687, 35695, 35703, 35713, 35723, 35731, 35739, 35747,
+ 35755, 35763, 35771, 35779, 35787, 35795, 35803, 35811, 35819, 35828,
+ 35837, 35846, 35855, 35865, 35875, 35882, 35889, 35897, 35905, 35914,
+ 35923, 35931, 35939, 35951, 35963, 35972, 35981, 35990, 35999, 36006,
+ 36013, 36021, 36029, 36037, 36045, 36053, 36061, 36069, 36077, 36086,
+ 36095, 36104, 36113, 36122, 36131, 36141, 36151, 36161, 36171, 36180,
+ 36189, 36196, 36203, 36211, 36219, 36227, 36235, 36243, 36251, 36263,
+ 36275, 36284, 36293, 36301, 36309, 36317, 36325, 36336, 36347, 36358,
+ 36369, 36381, 36393, 36401, 36409, 36417, 36425, 36434, 36443, 36452,
+ 36461, 36469, 36477, 36485, 36493, 36501, 36509, 36518, 36527, 36537,
+ 36547, 36555, 36563, 36571, 36579, 36587, 36595, 36602, 36609, 36617,
+ 36625, 36633, 36641, 36649, 36657, 36665, 36673, 36681, 36689, 36697,
+ 36705, 36713, 36721, 36729, 36737, 36746, 36755, 36764, 36772, 36781,
+ 36790, 36799, 36808, 36818, 36827, 36833, 36838, 36845, 36852, 36860,
+ 36868, 36877, 36886, 36896, 36906, 36917, 36928, 36938, 36948, 36958,
+ 36968, 36977, 36986, 36996, 37006, 37017, 37028, 37038, 37048, 37058,
+ 37068, 37075, 37082, 37090, 37098, 37105, 37112, 37121, 37130, 37140,
+ 37150, 37161, 37172, 37182, 37192, 37202, 37212, 37221, 37230, 37238,
+ 37246, 37253, 37260, 37268, 37276, 37285, 37294, 37304, 37314, 37325,
+ 37336, 37346, 37356, 37366, 37376, 37385, 37394, 37404, 37414, 37425,
+ 37436, 37446, 37456, 37466, 37476, 37483, 37490, 37498, 37506, 37515,
+ 37524, 37534, 37544, 37555, 37566, 37576, 37586, 37596, 37606, 37614,
+ 37622, 37630, 37638, 37647, 37656, 37664, 37672, 37679, 37686, 37693,
+ 37700, 37708, 37716, 37724, 37732, 37743, 37754, 37765, 37776, 37787,
+ 37798, 37806, 37814, 37825, 37836, 37847, 37858, 37869, 37880, 37888,
+ 37896, 37907, 37918, 37929, 0, 0, 37940, 37948, 37956, 37967, 37978,
+ 37989, 0, 0, 38000, 38008, 38016, 38027, 38038, 38049, 38060, 38071,
+ 38082, 38090, 38098, 38109, 38120, 38131, 38142, 38153, 38164, 38172,
+ 38180, 38191, 38202, 38213, 38224, 38235, 38246, 38254, 38262, 38273,
+ 38284, 38295, 38306, 38317, 38328, 38336, 38344, 38355, 38366, 38377, 0,
+ 0, 38388, 38396, 38404, 38415, 38426, 38437, 0, 0, 38448, 38456, 38464,
+ 38475, 38486, 38497, 38508, 38519, 0, 38530, 0, 38538, 0, 38549, 0,
+ 38560, 38571, 38579, 38587, 38598, 38609, 38620, 38631, 38642, 38653,
+ 38661, 38669, 38680, 38691, 38702, 38713, 38724, 38735, 38743, 38751,
+ 38759, 38767, 38775, 38783, 38791, 38799, 38807, 38815, 38823, 38831,
+ 38839, 0, 0, 38847, 38858, 38869, 38883, 38897, 38911, 38925, 38939,
+ 38953, 38964, 38975, 38989, 39003, 39017, 39031, 39045, 39059, 39070,
+ 39081, 39095, 39109, 39123, 39137, 39151, 39165, 39176, 39187, 39201,
+ 39215, 39229, 39243, 39257, 39271, 39282, 39293, 39307, 39321, 39335,
+ 39349, 39363, 39377, 39388, 39399, 39413, 39427, 39441, 39455, 39469,
+ 39483, 39491, 39499, 39510, 39518, 0, 39529, 39537, 39548, 39556, 39564,
+ 39572, 39580, 39588, 39591, 39594, 39597, 39600, 39606, 39617, 39625, 0,
+ 39636, 39644, 39655, 39663, 39671, 39679, 39687, 39695, 39701, 39707,
+ 39713, 39721, 39729, 39740, 0, 0, 39751, 39759, 39770, 39778, 39786,
+ 39794, 0, 39802, 39808, 39814, 39820, 39828, 39836, 39847, 39858, 39866,
+ 39874, 39882, 39893, 39901, 39909, 39917, 39925, 39933, 39939, 39945, 0,
+ 0, 39948, 39959, 39967, 0, 39978, 39986, 39997, 40005, 40013, 40021,
+ 40029, 40037, 40040, 0, 40043, 40047, 40051, 40055, 40059, 40063, 40067,
+ 40071, 40075, 40079, 40083, 40087, 40093, 40099, 40105, 40108, 40111,
+ 40113, 40117, 40121, 40125, 40129, 40132, 40136, 40140, 40146, 40152,
+ 40159, 40166, 40171, 40176, 40182, 40188, 40190, 40193, 40195, 40199,
+ 40203, 40207, 40211, 40215, 40219, 40223, 40227, 40231, 40237, 40241,
+ 40245, 40251, 40256, 40263, 40265, 40268, 40272, 40276, 40281, 40287,
+ 40289, 40298, 40307, 40310, 40314, 40316, 40318, 40320, 40323, 40329,
+ 40331, 40335, 40339, 40346, 40353, 40357, 40362, 40367, 40372, 40377,
+ 40381, 40385, 40388, 40392, 40396, 40403, 40408, 40412, 40416, 40421,
+ 40425, 40429, 40434, 40439, 40443, 40447, 40451, 40453, 40458, 40463,
+ 40467, 40471, 40475, 40479, 0, 40483, 40487, 40491, 40497, 40503, 40509,
+ 40515, 40522, 40529, 40534, 40539, 40543, 0, 0, 40549, 40552, 40555,
+ 40558, 40562, 40565, 40569, 40573, 40577, 40582, 40587, 40592, 40599,
+ 40603, 40606, 40609, 40612, 40615, 40618, 40621, 40625, 40628, 40632,
+ 40636, 40640, 40645, 40650, 0, 40655, 40661, 40667, 40673, 40680, 40687,
+ 40694, 40701, 40707, 40714, 40721, 40728, 40734, 0, 0, 0, 40741, 40744,
+ 40747, 40750, 40755, 40758, 40761, 40764, 40767, 40770, 40773, 40778,
+ 40781, 40784, 40787, 40790, 40793, 40798, 40801, 40804, 40807, 40810,
+ 40813, 40818, 40821, 40824, 40829, 40834, 40838, 40841, 40844, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40847, 40852, 40857, 40864,
+ 40872, 40877, 40882, 40886, 40890, 40895, 40902, 40909, 40913, 40918,
+ 40923, 40928, 40933, 40940, 40945, 40950, 40955, 40964, 40971, 40978,
+ 40982, 40987, 40993, 40998, 41005, 41013, 41021, 41025, 41029, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41033, 41037, 41045, 41049, 41053,
+ 41058, 41062, 41066, 41070, 41072, 41076, 41080, 41084, 41089, 41093,
+ 41097, 41105, 41108, 41112, 41115, 41118, 41124, 41128, 41131, 41137,
+ 41141, 41145, 41149, 41152, 41156, 41159, 41163, 41165, 41168, 41171,
+ 41175, 41177, 41181, 41184, 41187, 41192, 41197, 41204, 41207, 41210,
+ 41214, 41219, 41222, 41225, 41228, 41232, 41237, 41241, 41244, 41246,
+ 41249, 41252, 41255, 41259, 41264, 41267, 41271, 41275, 41279, 41283,
+ 41288, 41294, 41299, 41304, 41310, 41315, 41320, 41324, 41328, 41333,
+ 41337, 41341, 41344, 41346, 41351, 41357, 41364, 41371, 41378, 41385,
+ 41392, 41399, 41406, 41413, 41421, 41428, 41436, 41443, 41450, 41458,
+ 41466, 41471, 41476, 41481, 41486, 41491, 41496, 41501, 41507, 41512,
+ 41518, 41524, 41530, 41536, 41542, 41549, 41557, 41564, 41570, 41576,
+ 41582, 41588, 41594, 41600, 41607, 41613, 41620, 41627, 41634, 41641,
+ 41648, 41656, 41665, 41673, 41684, 41692, 41700, 41709, 41716, 41725,
+ 41734, 41742, 41751, 41759, 41763, 0, 0, 0, 0, 41767, 41769, 41771,
+ 41773, 41775, 41778, 41781, 41785, 41789, 41794, 41799, 41803, 41807,
+ 41811, 41815, 41820, 41825, 41830, 41835, 41840, 41845, 41850, 41855,
+ 41860, 41865, 41871, 41875, 41879, 41884, 41889, 41894, 41899, 41903,
+ 41910, 41917, 41924, 41931, 41938, 41945, 41952, 41959, 41967, 41979,
+ 41985, 41991, 41998, 42005, 42012, 42019, 42026, 42033, 42040, 42047,
+ 42052, 42058, 42063, 42068, 42073, 42078, 42083, 42090, 42097, 42102,
+ 42108, 42113, 42116, 42119, 42122, 42125, 42129, 42133, 42138, 42143,
+ 42149, 42155, 42159, 42163, 42167, 42171, 42176, 42181, 42185, 42189,
+ 42193, 42197, 42202, 42207, 42210, 42213, 42216, 42219, 42225, 42232,
+ 42243, 42253, 42257, 42265, 42272, 42280, 42289, 42293, 42299, 42305,
+ 42309, 42314, 42319, 42325, 42331, 42337, 42344, 42348, 42352, 42357,
+ 42360, 42362, 42366, 42370, 42378, 42382, 42384, 42386, 42390, 42398,
+ 42403, 42409, 42419, 42426, 42431, 42435, 42439, 42443, 42446, 42449,
+ 42452, 42456, 42460, 42464, 42468, 42472, 42475, 42479, 42483, 42486,
+ 42488, 42491, 42493, 42497, 42501, 42503, 42509, 42512, 42517, 42521,
+ 42525, 42527, 42529, 42531, 42534, 42538, 42542, 42546, 42550, 42554,
+ 42560, 42566, 42568, 42570, 42572, 42574, 42577, 42579, 42583, 42585,
+ 42589, 42593, 42598, 42602, 42606, 42610, 42614, 42618, 42624, 42628,
+ 42638, 42648, 42652, 42658, 42665, 42669, 42673, 42676, 42681, 42685,
+ 42691, 42695, 42708, 42717, 42721, 42725, 42731, 42735, 42738, 42740,
+ 42743, 42747, 42751, 42758, 42762, 42766, 42770, 42773, 42778, 42783,
+ 42789, 42795, 42800, 42805, 42813, 42821, 42825, 42829, 42831, 42836,
+ 42840, 42844, 42852, 42860, 42867, 42874, 42883, 42892, 42898, 42904,
+ 42912, 42920, 42922, 42924, 42930, 42936, 42943, 42950, 42956, 42962,
+ 42966, 42970, 42977, 42984, 42991, 42998, 43008, 43018, 43026, 43034,
+ 43036, 43040, 43044, 43049, 43054, 43062, 43070, 43073, 43076, 43079,
+ 43082, 43085, 43090, 43094, 43099, 43104, 43107, 43110, 43113, 43116,
+ 43119, 43123, 43126, 43129, 43132, 43135, 43137, 43139, 43141, 43143,
+ 43151, 43159, 43165, 43169, 43175, 43185, 43191, 43197, 43203, 43211,
+ 43220, 43232, 43236, 43240, 43242, 43248, 43250, 43252, 43254, 43256,
+ 43262, 43265, 43271, 43277, 43281, 43285, 43289, 43292, 43296, 43300,
+ 43302, 43311, 43320, 43325, 43330, 43336, 43342, 43348, 43351, 43354,
+ 43357, 43360, 43362, 43367, 43372, 43377, 43383, 43389, 43398, 43407,
+ 43414, 43421, 43428, 43435, 43445, 43455, 43465, 43475, 43485, 43495,
+ 43504, 43513, 43522, 43531, 43539, 43551, 43562, 43578, 43581, 43587,
+ 43593, 43599, 43607, 43622, 43638, 43644, 43650, 43657, 43663, 43672,
+ 43679, 43693, 43708, 43713, 43719, 43727, 43730, 43733, 43735, 43738,
+ 43741, 43743, 43745, 43749, 43752, 43755, 43758, 43761, 43766, 43771,
+ 43776, 43781, 43786, 43789, 43791, 43793, 43795, 43799, 43803, 43807,
+ 43813, 43818, 43820, 43822, 43827, 43832, 43837, 43842, 43847, 43852,
+ 43854, 43856, 43866, 43870, 43878, 43887, 43889, 43894, 43899, 43907,
+ 43911, 43913, 43917, 43919, 43923, 43927, 43931, 43933, 43935, 43937,
+ 43944, 43953, 43962, 43971, 43980, 43989, 43998, 44007, 44016, 44024,
+ 44032, 44041, 44050, 44059, 44068, 44076, 44084, 44093, 44102, 44111,
+ 44121, 44130, 44140, 44149, 44159, 44167, 44176, 44186, 44195, 44205,
+ 44214, 44224, 44232, 44241, 44250, 44259, 44268, 44277, 44286, 44296,
+ 44305, 44314, 44323, 44333, 44342, 44351, 44360, 44369, 44379, 44389,
+ 44398, 44407, 44415, 44424, 44431, 44440, 44449, 44460, 44469, 44479,
+ 44489, 44496, 44503, 44510, 44519, 44528, 44537, 44546, 44553, 44558,
+ 44566, 44571, 44574, 44581, 44584, 44589, 44594, 44597, 44600, 44608,
+ 44611, 44616, 44619, 44627, 44632, 44640, 44643, 44646, 44649, 44654,
+ 44659, 44662, 44665, 44673, 44676, 44683, 44690, 44694, 44698, 44703,
+ 44708, 44714, 44719, 44725, 44731, 44736, 44742, 44750, 44756, 44764,
+ 44772, 44778, 44786, 44794, 44802, 44810, 44816, 44824, 44832, 44840,
+ 44844, 44850, 44864, 44878, 44882, 44886, 44890, 44894, 44904, 44908,
+ 44913, 44918, 44924, 44930, 44936, 44942, 44952, 44962, 44970, 44981,
+ 44992, 45000, 45011, 45022, 45030, 45041, 45052, 45060, 45068, 45078,
+ 45088, 45091, 45094, 45097, 45102, 45106, 45112, 45119, 45126, 45134,
+ 45141, 45145, 45149, 45153, 45157, 45159, 45163, 45167, 45172, 45177,
+ 45184, 45191, 45194, 45201, 45203, 45205, 45209, 45213, 45218, 45224,
+ 45230, 45236, 45242, 45251, 45260, 45269, 45273, 45275, 45279, 45286,
+ 45293, 45300, 45307, 45314, 45317, 45322, 0, 0, 0, 0, 0, 45328, 45332,
+ 45339, 45346, 45353, 45360, 45364, 45368, 45372, 45376, 45382, 45388,
+ 45393, 45399, 45405, 45411, 45417, 45425, 45432, 45439, 45446, 45453,
+ 45458, 45464, 45473, 45477, 45484, 45488, 45492, 45498, 45504, 45510,
+ 45516, 45520, 45524, 45527, 45530, 45534, 45541, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45548, 45551, 45555,
+ 45559, 45565, 45571, 45577, 45585, 45592, 45596, 45604, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45609, 45612, 45615, 45618,
+ 45621, 45624, 45627, 45631, 45634, 45638, 45642, 45646, 45650, 45654,
+ 45658, 45662, 45666, 45670, 45674, 45678, 45682, 45685, 45688, 45691,
+ 45694, 45697, 45700, 45704, 45707, 45711, 45715, 45719, 45723, 45727,
+ 45731, 45735, 45739, 45743, 45747, 45751, 45755, 45761, 45767, 45773,
+ 45780, 45787, 45794, 45801, 45808, 45815, 45822, 45829, 45836, 45843,
+ 45850, 45857, 45864, 45871, 45878, 45885, 45892, 45897, 45903, 45909,
+ 45915, 45920, 45926, 45932, 45938, 45943, 45949, 45955, 45960, 45966,
+ 45972, 45977, 45983, 45989, 45994, 45999, 46005, 46010, 46016, 46022,
+ 46028, 46034, 46040, 46045, 46051, 46057, 46063, 46068, 46074, 46080,
+ 46086, 46091, 46097, 46103, 46108, 46114, 46120, 46125, 46131, 46137,
+ 46142, 46147, 46153, 46158, 46164, 46170, 46176, 46182, 46188, 46193,
+ 46199, 46205, 46211, 46216, 46222, 46228, 46234, 46239, 46245, 46251,
+ 46256, 46262, 46268, 46273, 46279, 46285, 46290, 46295, 46301, 46306,
+ 46312, 46318, 46324, 46330, 46336, 46340, 46345, 46350, 46355, 46360,
+ 46365, 46370, 46375, 46380, 46385, 46390, 46394, 46398, 46402, 46406,
+ 46410, 46414, 46419, 46423, 46428, 46433, 46438, 46443, 46448, 46453,
+ 46458, 46467, 46476, 46485, 46494, 46503, 46512, 46521, 46530, 46537,
+ 46545, 46553, 46560, 46567, 46575, 46583, 46590, 46597, 46605, 46613,
+ 46620, 46627, 46635, 46643, 46650, 46657, 46665, 46674, 46683, 46691,
+ 46700, 46709, 46716, 46723, 46731, 46740, 46749, 46757, 46766, 46775,
+ 46782, 46789, 46798, 46807, 46816, 46825, 46834, 46843, 46850, 46857,
+ 46866, 46875, 46884, 46893, 46902, 46911, 46918, 46925, 46934, 46943,
+ 46952, 46962, 46972, 46981, 46991, 47001, 47011, 47021, 47031, 47041,
+ 47050, 47059, 47066, 47074, 47082, 47090, 47098, 47103, 47108, 47117,
+ 47125, 47132, 47141, 47149, 47156, 47165, 47173, 47180, 47189, 47197,
+ 47204, 47213, 47221, 47228, 47237, 47245, 47252, 47262, 47271, 47278,
+ 47288, 47297, 47304, 47314, 47323, 47330, 47339, 47348, 47357, 47366,
+ 47380, 47394, 47401, 47406, 47411, 47416, 47421, 47426, 47431, 47436,
+ 47441, 47449, 47457, 47465, 47473, 47478, 47485, 47492, 47499, 47504,
+ 47512, 47519, 47527, 47531, 47538, 47544, 47551, 47555, 47561, 47567,
+ 47573, 47577, 47580, 47584, 47588, 47595, 47601, 47607, 47613, 47619,
+ 47633, 47643, 47657, 47671, 47677, 47687, 47701, 47704, 47707, 47714,
+ 47722, 47728, 47733, 47741, 47753, 47765, 47773, 47777, 47781, 47784,
+ 47787, 47791, 47795, 47798, 47801, 47806, 47811, 47817, 47823, 47828,
+ 47833, 47839, 47845, 47850, 47855, 47860, 47865, 47871, 47877, 47882,
+ 47887, 47893, 47899, 47904, 47909, 47912, 47915, 47924, 47926, 47928,
+ 47931, 47935, 47941, 47943, 47946, 47953, 47960, 47968, 47976, 47986,
+ 48000, 48005, 48010, 48014, 48019, 48027, 48035, 48044, 48053, 48062,
+ 48071, 48076, 48081, 48087, 48093, 48099, 48105, 48108, 48114, 48120,
+ 48130, 48140, 48148, 48156, 48165, 48174, 48178, 48186, 48194, 48202,
+ 48210, 48219, 48228, 48237, 48246, 48251, 48256, 48261, 48266, 48271,
+ 48277, 48283, 48288, 48294, 48296, 48298, 48300, 48302, 48305, 48308,
+ 48310, 48312, 48314, 48318, 48322, 48324, 48326, 48329, 48332, 48336,
+ 48342, 48348, 48350, 48357, 48361, 48366, 48371, 48373, 48383, 48389,
+ 48395, 48401, 48407, 48413, 48419, 48424, 48427, 48430, 48433, 48435,
+ 48437, 48441, 48445, 48450, 48455, 48460, 48463, 48467, 48472, 48475,
+ 48479, 48484, 48489, 48494, 48499, 48504, 48509, 48514, 48519, 48524,
+ 48529, 48534, 48539, 48545, 48551, 48557, 48559, 48562, 48564, 48567,
+ 48569, 48571, 48573, 48575, 48577, 48579, 48581, 48583, 48585, 48587,
+ 48589, 48591, 48593, 48595, 48597, 48599, 48601, 48606, 48611, 48616,
+ 48621, 48626, 48631, 48636, 48641, 48646, 48651, 48656, 48661, 48666,
+ 48671, 48676, 48681, 48686, 48691, 48696, 48701, 48705, 48709, 48713,
+ 48719, 48725, 48730, 48735, 48740, 48746, 48752, 48757, 48765, 48773,
+ 48781, 48789, 48797, 48805, 48813, 48821, 48827, 48832, 48837, 48842,
+ 48845, 48849, 48853, 48857, 48861, 48865, 48869, 48876, 48883, 48891,
+ 48899, 48904, 48909, 48916, 48923, 48930, 48937, 48940, 48943, 48948,
+ 48950, 48954, 48959, 48961, 48963, 48965, 48967, 48972, 48975, 48977,
+ 48982, 48989, 48996, 48999, 49003, 49008, 49013, 49021, 49027, 49033,
+ 49045, 49052, 49060, 49065, 49070, 49076, 49079, 49082, 49087, 49089,
+ 49093, 49095, 49097, 49099, 49101, 49103, 49105, 49110, 49112, 49114,
+ 49116, 49118, 49122, 49124, 49127, 49132, 49137, 49142, 49147, 49153,
+ 49159, 49161, 49164, 49171, 49178, 49185, 49192, 49196, 49200, 49202,
+ 49204, 49208, 49214, 49219, 49221, 49225, 49234, 49242, 49250, 49256,
+ 49262, 49267, 49273, 49278, 49281, 49295, 49298, 49303, 49308, 49314,
+ 49324, 49326, 49332, 49338, 49342, 49349, 49353, 49355, 49357, 49361,
+ 49367, 49372, 49378, 49380, 49386, 49388, 49394, 49396, 49398, 49403,
+ 49405, 49409, 49414, 49416, 49421, 49426, 49430, 49437, 49447, 49452,
+ 49458, 49461, 49467, 49470, 49475, 49480, 49484, 49486, 49488, 49492,
+ 49496, 49500, 49504, 49509, 49511, 49516, 49519, 49522, 49525, 49529,
+ 49533, 49538, 49542, 49547, 49552, 49556, 49561, 49567, 49570, 49576,
+ 49581, 49585, 49590, 49596, 49602, 49609, 49615, 49622, 49629, 49631,
+ 49638, 49642, 49648, 49654, 49659, 49665, 49669, 49674, 49677, 49682,
+ 49688, 49695, 49703, 49710, 49719, 49729, 49736, 49742, 49746, 49753,
+ 49758, 49767, 49770, 49773, 49782, 49792, 49799, 49801, 49807, 49812,
+ 49814, 49817, 49821, 49829, 49838, 49841, 49846, 49851, 49859, 49867,
+ 49875, 49883, 49889, 49895, 49901, 49909, 49914, 49917, 49921, 49924,
+ 49936, 49946, 49957, 49966, 49977, 49987, 49996, 50002, 50010, 50014,
+ 50022, 50026, 50034, 50041, 50048, 50057, 50066, 50076, 50086, 50096,
+ 50106, 50115, 50124, 50134, 50144, 50153, 50162, 50168, 50174, 50180,
+ 50186, 50192, 50198, 50205, 50211, 50218, 50225, 50231, 50237, 50243,
+ 50249, 50255, 50261, 50268, 50274, 50281, 50288, 50295, 50302, 50309,
+ 50316, 50323, 50330, 50338, 50345, 50353, 50361, 50366, 50369, 50373,
+ 50377, 50383, 50386, 50391, 50397, 50402, 50406, 50411, 50417, 50424,
+ 50427, 50434, 50441, 50445, 50453, 50461, 50466, 50472, 50477, 50482,
+ 50489, 50496, 50504, 50512, 50521, 50525, 50534, 50539, 50543, 50550,
+ 50554, 50560, 50568, 50573, 50580, 50584, 50589, 50593, 50598, 50602,
+ 50607, 50612, 50621, 50623, 50626, 50629, 50636, 50643, 50649, 50657,
+ 50663, 50670, 50675, 50678, 50683, 50688, 50693, 50701, 50705, 50712,
+ 50720, 50728, 50733, 50738, 50744, 50749, 50754, 50760, 50765, 50768,
+ 50772, 50776, 50783, 50793, 50798, 50807, 50816, 50822, 50828, 50833,
+ 50838, 50843, 50848, 50854, 50860, 50868, 50876, 50882, 50888, 50892,
+ 50896, 50903, 50910, 50916, 50919, 50922, 50926, 50930, 50934, 50939,
+ 50945, 50951, 50958, 50965, 50970, 50974, 50978, 50982, 50986, 50990,
+ 50994, 50998, 51002, 51006, 51010, 51014, 51018, 51022, 51026, 51030,
+ 51034, 51038, 51042, 51046, 51050, 51054, 51058, 51062, 51066, 51070,
+ 51074, 51078, 51082, 51086, 51090, 51094, 51098, 51102, 51106, 51110,
+ 51114, 51118, 51122, 51126, 51130, 51134, 51138, 51142, 51146, 51150,
+ 51154, 51158, 51162, 51166, 51170, 51174, 51178, 51182, 51186, 51190,
+ 51194, 51198, 51202, 51206, 51210, 51214, 51218, 51222, 51226, 51230,
+ 51234, 51238, 51242, 51246, 51250, 51254, 51258, 51262, 51266, 51270,
+ 51274, 51278, 51282, 51286, 51290, 51294, 51298, 51302, 51306, 51310,
+ 51314, 51318, 51322, 51326, 51330, 51334, 51338, 51342, 51346, 51350,
+ 51354, 51358, 51362, 51366, 51370, 51374, 51378, 51382, 51386, 51390,
+ 51394, 51398, 51402, 51406, 51410, 51414, 51418, 51422, 51426, 51430,
+ 51434, 51438, 51442, 51446, 51450, 51454, 51458, 51462, 51466, 51470,
+ 51474, 51478, 51482, 51486, 51490, 51494, 51498, 51502, 51506, 51510,
+ 51514, 51518, 51522, 51526, 51530, 51534, 51538, 51542, 51546, 51550,
+ 51554, 51558, 51562, 51566, 51570, 51574, 51578, 51582, 51586, 51590,
+ 51594, 51598, 51602, 51606, 51610, 51614, 51618, 51622, 51626, 51630,
+ 51634, 51638, 51642, 51646, 51650, 51654, 51658, 51662, 51666, 51670,
+ 51674, 51678, 51682, 51686, 51690, 51694, 51698, 51702, 51706, 51710,
+ 51714, 51718, 51722, 51726, 51730, 51734, 51738, 51742, 51746, 51750,
+ 51754, 51758, 51762, 51766, 51770, 51774, 51778, 51782, 51786, 51790,
+ 51794, 51798, 51802, 51806, 51810, 51814, 51818, 51822, 51826, 51830,
+ 51834, 51838, 51842, 51846, 51850, 51854, 51858, 51862, 51866, 51870,
+ 51874, 51878, 51882, 51886, 51890, 51894, 51898, 51902, 51906, 51910,
+ 51914, 51918, 51922, 51926, 51930, 51934, 51938, 51942, 51946, 51950,
+ 51954, 51958, 51962, 51966, 51970, 51974, 51978, 51982, 51986, 51990,
+ 51994, 52001, 52009, 52015, 52021, 52028, 52035, 52041, 52047, 52053,
+ 52059, 52063, 52067, 52072, 52077, 52083, 52089, 52097, 52104, 52109,
+ 52114, 52122, 52131, 52138, 52148, 52159, 52162, 52165, 52169, 52173,
+ 52180, 52187, 52198, 52209, 52218, 52227, 52233, 52239, 52246, 52253,
+ 52262, 52272, 52283, 52293, 52303, 52313, 52324, 52335, 52345, 52356,
+ 52366, 52376, 52385, 52395, 52405, 52415, 52425, 52432, 52439, 52446,
+ 52453, 52463, 52473, 52481, 52489, 52496, 52503, 52510, 52517, 52524,
+ 52529, 52534, 52540, 52548, 52557, 52565, 52573, 52581, 52589, 52597,
+ 52605, 52613, 52621, 52630, 52639, 52648, 52657, 52666, 52675, 52684,
+ 52693, 52702, 52711, 52720, 52729, 52738, 52747, 52756, 52765, 52779,
+ 52794, 52808, 52823, 52837, 52851, 52865, 52879, 52889, 52900, 52910,
+ 52921, 52936, 52951, 52959, 52965, 52972, 52979, 52986, 52993, 52998,
+ 53004, 53009, 53014, 53020, 53025, 53030, 53035, 53040, 53045, 53052,
+ 53058, 53066, 53071, 53076, 53080, 53084, 53092, 53100, 53108, 53116,
+ 53123, 53130, 53143, 53156, 53169, 53182, 53190, 53198, 53204, 53210,
+ 53217, 53224, 53231, 53238, 53242, 53247, 53255, 53263, 53271, 53278,
+ 53282, 53290, 53298, 53302, 53306, 53311, 53318, 53326, 53334, 53353,
+ 53372, 53391, 53410, 53429, 53448, 53467, 53486, 53492, 53499, 53508,
+ 53516, 53524, 53530, 53533, 53536, 53541, 53544, 53564, 53571, 53577,
+ 53583, 53587, 53590, 53593, 53596, 53608, 53622, 53629, 53636, 53639,
+ 53643, 53646, 53651, 53656, 53661, 53667, 53676, 53683, 53690, 53698,
+ 53705, 53712, 53715, 53721, 53727, 53730, 53733, 53738, 53743, 53749,
+ 53755, 53759, 53764, 53771, 53775, 53781, 53785, 53789, 53797, 53809,
+ 53818, 53822, 53824, 53833, 53842, 53848, 53851, 53857, 53863, 53868,
+ 53873, 53878, 53883, 53888, 53893, 53895, 53901, 53906, 53914, 53918,
+ 53924, 53927, 53931, 53938, 53945, 53947, 53949, 53955, 53961, 53967,
+ 53976, 53985, 53992, 53999, 54005, 54012, 54017, 54022, 54027, 54033,
+ 54039, 54044, 54051, 54055, 54059, 54072, 54085, 54097, 54106, 54112,
+ 54119, 54124, 54129, 54134, 54139, 54144, 54146, 54153, 54161, 54169,
+ 54177, 54184, 54192, 54198, 54203, 54209, 54215, 54221, 54228, 54234,
+ 54242, 54250, 54258, 54266, 54274, 54280, 54286, 54295, 54299, 54308,
+ 54317, 54326, 54334, 54338, 54344, 54351, 54358, 54362, 54368, 54376,
+ 54382, 54387, 54393, 54398, 54403, 54410, 54417, 54422, 54427, 54435,
+ 54443, 54453, 54463, 54470, 54477, 54481, 54485, 54497, 54503, 54510,
+ 54515, 54520, 54527, 54534, 54540, 54546, 54556, 54563, 54571, 54579,
+ 54588, 54595, 54601, 54608, 54614, 54622, 54630, 54638, 54646, 54652,
+ 54657, 54667, 54678, 54685, 54694, 54700, 54705, 54710, 54720, 54727,
+ 54733, 54739, 54747, 54752, 54759, 54766, 54777, 54784, 54791, 54798,
+ 54805, 54812, 54820, 54828, 54841, 54854, 54866, 54878, 54892, 54906,
+ 54912, 54918, 54927, 54936, 54943, 54950, 54959, 54968, 54977, 54986,
+ 54994, 55002, 55012, 55022, 55036, 55050, 55059, 55068, 55081, 55094,
+ 55103, 55112, 55123, 55134, 55140, 55146, 55155, 55164, 55169, 55174,
+ 55182, 55188, 55194, 55202, 55210, 55223, 55236, 55240, 55244, 55252,
+ 55260, 55267, 55275, 55283, 55292, 55301, 55307, 55313, 55320, 55327,
+ 55334, 55341, 55350, 55359, 55362, 55365, 55370, 55375, 55381, 55387,
+ 55394, 55401, 55412, 55423, 55430, 55437, 55445, 55453, 55461, 55469,
+ 55477, 55485, 55491, 55497, 55501, 55505, 55513, 55521, 55526, 55531,
+ 55536, 55541, 55547, 55561, 55568, 55575, 55579, 55581, 55583, 55588,
+ 55593, 55598, 55602, 55610, 55617, 55624, 55632, 55644, 55652, 55660,
+ 55671, 55675, 55679, 55685, 55693, 55706, 55713, 55720, 55727, 55733,
+ 55740, 55749, 55758, 55764, 55770, 55776, 55786, 55796, 55804, 55813,
+ 55818, 55821, 55826, 55831, 55836, 55842, 55848, 55852, 55855, 55858,
+ 55861, 55866, 55871, 55877, 55883, 55887, 55891, 55898, 55905, 55912,
+ 55919, 55926, 55933, 55943, 55953, 55960, 55967, 55975, 55983, 55987,
+ 55992, 55997, 56003, 56009, 56012, 56015, 56018, 56021, 56026, 56031,
+ 56036, 56041, 56046, 56051, 56055, 56059, 56063, 56068, 56073, 56077,
+ 56081, 56087, 56091, 56097, 56102, 56109, 56117, 56124, 56132, 56139,
+ 56147, 56156, 56163, 56173, 56184, 56190, 56199, 56205, 56214, 56223,
+ 56229, 56235, 56239, 56243, 56252, 56261, 56268, 56275, 56284, 56293,
+ 56299, 56305, 56312, 56317, 56321, 56325, 56330, 56335, 56340, 56348,
+ 56356, 56359, 56363, 56372, 56382, 56391, 56401, 56412, 56425, 56429,
+ 56433, 56437, 56441, 56446, 56451, 56457, 56463, 56470, 56477, 56483,
+ 56489, 56495, 56501, 56509, 56517, 56524, 56531, 56538, 0, 0, 56545,
+ 56554, 56563, 56573, 56583, 56592, 56601, 56610, 56619, 56625, 56630,
+ 56639, 56649, 56658, 56668, 56675, 56682, 56689, 56696, 56701, 56706,
+ 56711, 56716, 56724, 56733, 56741, 56750, 56754, 56758, 56762, 56766,
+ 56776, 0, 0, 56779, 56788, 56797, 56806, 56815, 56821, 56827, 56833,
+ 56839, 56849, 56859, 56869, 56879, 56889, 56899, 56909, 56919, 56926,
+ 56933, 56940, 56947, 56954, 56961, 56968, 56975, 56981, 56987, 56993,
+ 56999, 57005, 57011, 57017, 57023, 57034, 0, 0, 0, 57044, 57051, 57054,
+ 57058, 57062, 57067, 57072, 57077, 57080, 57089, 57098, 57107, 0, 57116,
+ 57122, 57128, 57136, 57146, 57153, 57162, 57167, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57170, 57179,
+ 57188, 57197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57206,
+ 57211, 57216, 57221, 57226, 57231, 57236, 57241, 57246, 57251, 57256,
+ 57262, 57266, 57271, 57276, 57281, 57286, 57291, 57296, 57301, 57306,
+ 57311, 57316, 57321, 57326, 57331, 57336, 57341, 57346, 57351, 57356,
+ 57361, 57366, 57371, 57376, 57382, 57387, 57393, 57402, 57407, 57415,
+ 57422, 57431, 57436, 57441, 57446, 57452, 0, 57459, 57464, 57469, 57474,
+ 57479, 57484, 57489, 57494, 57499, 57504, 57509, 57515, 57519, 57524,
+ 57529, 57534, 57539, 57544, 57549, 57554, 57559, 57564, 57569, 57574,
+ 57579, 57584, 57589, 57594, 57599, 57604, 57609, 57614, 57619, 57624,
+ 57629, 57635, 57640, 57646, 57655, 57660, 57668, 57675, 57684, 57689,
+ 57694, 57699, 57705, 0, 57712, 57720, 57728, 57737, 57744, 57752, 57758,
+ 57767, 57775, 57783, 57791, 57799, 57807, 57815, 57820, 57827, 57833,
+ 57840, 57848, 57855, 57862, 57870, 57876, 57882, 57889, 57896, 57906,
+ 57916, 57923, 57930, 57935, 57945, 57955, 57960, 57965, 57970, 57975,
+ 57980, 57985, 57990, 57995, 58000, 58005, 58010, 58015, 58020, 58025,
+ 58030, 58035, 58040, 58045, 58050, 58055, 58060, 58065, 58070, 58075,
+ 58080, 58085, 58090, 58095, 58100, 58105, 58109, 58113, 58118, 58123,
+ 58128, 58133, 58138, 58143, 58148, 58153, 58158, 58163, 58168, 58173,
+ 58178, 58183, 58188, 58193, 58198, 58203, 58210, 58217, 58224, 58231,
+ 58238, 58245, 58252, 58259, 58266, 58273, 58280, 58287, 58294, 58301,
+ 58306, 58311, 58318, 58325, 58332, 58339, 58346, 58353, 58360, 58367,
+ 58374, 58381, 58388, 58395, 58401, 58407, 58413, 58419, 58426, 58433,
+ 58440, 58447, 58454, 58461, 58468, 58475, 58482, 58489, 58497, 58505,
+ 58513, 58521, 58529, 58537, 58545, 58553, 58557, 58563, 58569, 58573,
+ 58579, 58585, 58591, 58598, 58605, 58612, 58619, 58624, 58630, 58636,
+ 58643, 0, 0, 0, 0, 0, 58650, 58658, 58667, 58676, 58684, 58690, 58695,
+ 58700, 58705, 58710, 58715, 58720, 58725, 58730, 58735, 58740, 58745,
+ 58750, 58755, 58760, 58765, 58770, 58775, 58780, 58785, 58790, 58795,
+ 58800, 58805, 58810, 58815, 58820, 58825, 58830, 58835, 58840, 58845,
+ 58850, 58855, 58860, 58865, 58870, 58875, 58880, 58885, 0, 58890, 0, 0,
+ 0, 0, 0, 58895, 0, 0, 58900, 58904, 58909, 58914, 58919, 58924, 58933,
+ 58938, 58943, 58948, 58953, 58958, 58963, 58968, 58973, 58980, 58985,
+ 58990, 58999, 59006, 59011, 59016, 59021, 59028, 59033, 59040, 59045,
+ 59050, 59057, 59064, 59069, 59074, 59079, 59086, 59093, 59098, 59103,
+ 59108, 59113, 59118, 59125, 59132, 59137, 59142, 59147, 59152, 59157,
+ 59162, 59167, 59172, 59177, 59182, 59187, 59194, 59199, 59204, 0, 0, 0,
+ 0, 0, 0, 0, 59209, 59216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 59221, 59226, 59230, 59234, 59238, 59242, 59246, 59250, 59254, 59258,
+ 59262, 59266, 59272, 59276, 59280, 59284, 59288, 59292, 59296, 59300,
+ 59304, 59308, 59312, 59316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59320, 59324,
+ 59328, 59332, 59336, 59340, 59344, 0, 59348, 59352, 59356, 59360, 59364,
+ 59368, 59372, 0, 59376, 59380, 59384, 59388, 59392, 59396, 59400, 0,
+ 59404, 59408, 59412, 59416, 59420, 59424, 59428, 0, 59432, 59436, 59440,
+ 59444, 59448, 59452, 59456, 0, 59460, 59464, 59468, 59472, 59476, 59480,
+ 59484, 0, 59488, 59492, 59496, 59500, 59504, 59508, 59512, 0, 59516,
+ 59520, 59524, 59528, 59532, 59536, 59540, 0, 59544, 59549, 59554, 59559,
+ 59564, 59569, 59574, 59578, 59583, 59588, 59593, 59597, 59602, 59607,
+ 59612, 59617, 59621, 59626, 59631, 59636, 59641, 59646, 59651, 59655,
+ 59660, 59665, 59672, 59677, 59682, 59688, 59695, 59702, 59711, 59718,
+ 59727, 59731, 59735, 59741, 59747, 59753, 59761, 59767, 59771, 59775,
+ 59779, 59785, 59791, 59795, 59797, 59801, 59807, 59809, 59813, 59816,
+ 59819, 59825, 59830, 59834, 59838, 59843, 59849, 59854, 59859, 59864,
+ 59869, 59876, 59883, 59888, 59893, 59898, 59903, 59908, 59913, 59917,
+ 59921, 59928, 59935, 59941, 59945, 59950, 59953, 59957, 59964, 59968,
+ 59972, 59976, 59980, 59986, 59992, 59996, 60002, 60006, 60010, 60016,
+ 60021, 60026, 60028, 60031, 60035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16595, 16600, 0, 16607, 0, 0, 16614,
- 16619, 0, 16624, 0, 0, 16631, 0, 0, 0, 0, 0, 0, 16636, 16641, 16645,
- 16652, 0, 16659, 16664, 16669, 16674, 16681, 16688, 16695, 0, 16702,
- 16707, 16712, 0, 16719, 0, 16726, 0, 0, 16731, 16738, 0, 16745, 16749,
- 16756, 16760, 16765, 16773, 16779, 16785, 16790, 16796, 16802, 16808,
- 16813, 0, 16819, 16827, 16834, 0, 0, 16841, 16846, 16852, 16857, 16863,
- 0, 16869, 0, 16875, 16882, 16889, 16896, 16903, 16908, 0, 0, 16912,
- 16917, 16921, 16925, 16929, 16933, 16937, 16941, 16945, 16949, 0, 0,
- 16953, 16959, 16965, 16972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16979, 16983, 16994,
- 17009, 17024, 17034, 17045, 17058, 17069, 17075, 17083, 17093, 17099,
- 17107, 17111, 17117, 17123, 17131, 17141, 17149, 17162, 17168, 17176,
- 17184, 17196, 17203, 17211, 17219, 17227, 17235, 17243, 17251, 17261,
- 17265, 17268, 17271, 17274, 17277, 17280, 17283, 17286, 17289, 17292,
- 17296, 17300, 17304, 17308, 17312, 17316, 17320, 17324, 17328, 17333,
- 17339, 17349, 17363, 17373, 17379, 17385, 17393, 17401, 17409, 17417,
- 17423, 17429, 17432, 17436, 17440, 17444, 17448, 17452, 17456, 0, 17460,
- 17464, 17468, 17472, 17476, 17480, 17484, 17488, 17492, 17496, 17500,
- 17503, 17506, 17510, 17514, 17518, 17521, 17525, 17529, 17533, 17537,
- 17541, 17545, 17549, 17553, 17556, 17559, 17563, 17567, 17571, 17574,
- 17577, 17580, 17584, 17589, 17593, 0, 0, 0, 0, 17597, 17602, 17606,
- 17611, 17615, 17620, 17625, 17631, 17636, 17642, 17646, 17651, 17655,
- 17660, 17670, 17676, 17682, 17689, 17699, 17705, 17709, 17713, 17719,
- 17725, 17733, 17739, 17747, 17755, 17763, 17773, 17781, 17791, 17796,
- 17802, 17808, 17814, 17820, 17826, 17832, 0, 17838, 17844, 17850, 17856,
- 17862, 17868, 17874, 17880, 17886, 17892, 17898, 17903, 17908, 17914,
- 17920, 17926, 17931, 17937, 17943, 17949, 17955, 17961, 17967, 17973,
- 17979, 17984, 17989, 17995, 18001, 18007, 18012, 18017, 18022, 18028,
- 18036, 18043, 0, 18050, 18057, 18070, 18077, 18084, 18092, 18100, 18106,
- 18112, 18118, 18128, 18133, 18139, 18149, 18159, 0, 18169, 18179, 18187,
- 18199, 18211, 18217, 18231, 18246, 18251, 18256, 18264, 18272, 18280, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18288, 18291, 18295, 18299, 18303,
- 18307, 18311, 18315, 18319, 18323, 18327, 18331, 18335, 18339, 18343,
- 18347, 18351, 18355, 18359, 18363, 18367, 18370, 18373, 18377, 18381,
- 18385, 18388, 18391, 18394, 18398, 18402, 18405, 18408, 18412, 18415,
- 18420, 18423, 18427, 18430, 18434, 18437, 18442, 18445, 18449, 18456,
- 18461, 18465, 18470, 18474, 18479, 18483, 18488, 18495, 18501, 18506,
- 18510, 18514, 18518, 18522, 18526, 18531, 18536, 18542, 18547, 18552,
- 18556, 18559, 18562, 18565, 18568, 18571, 18574, 18577, 18580, 18583,
- 18589, 18593, 18597, 18601, 18605, 18609, 18613, 18617, 18621, 18626,
- 18630, 18635, 18640, 18646, 18651, 18657, 18663, 18669, 18675, 18681,
- 18688, 18695, 18703, 18711, 18720, 18729, 18740, 18750, 18760, 18771,
- 18782, 18792, 18802, 18812, 18822, 18832, 18842, 18852, 18862, 18870,
- 18877, 18883, 18890, 18895, 18901, 18907, 18913, 18919, 18925, 18931,
- 18936, 18942, 18948, 18954, 18960, 18965, 18973, 18980, 18986, 18993,
- 19001, 19007, 19013, 19019, 19025, 19033, 19041, 19051, 19059, 19067,
- 19073, 19078, 19083, 19088, 19093, 19098, 19103, 19108, 19113, 19118,
- 19124, 19130, 19136, 19143, 19148, 19154, 19159, 19164, 19169, 19174,
- 19179, 19184, 19189, 19194, 19199, 19204, 19209, 19214, 19219, 19224,
- 19229, 19234, 19239, 19244, 19249, 19254, 19259, 19264, 19269, 19274,
- 19279, 19284, 19289, 19294, 19299, 19304, 19309, 19314, 19319, 19324,
- 19329, 19334, 19339, 0, 19344, 0, 0, 0, 0, 0, 19349, 0, 0, 19354, 19358,
- 19362, 19366, 19370, 19374, 19378, 19382, 19386, 19390, 19394, 19398,
- 19402, 19406, 19410, 19414, 19418, 19422, 19426, 19430, 19434, 19438,
- 19442, 19446, 19450, 19454, 19458, 19462, 19466, 19470, 19474, 19478,
- 19482, 19486, 19490, 19494, 19498, 19502, 19506, 19510, 19514, 19518,
- 19524, 19528, 19533, 19538, 19542, 19547, 19552, 19556, 19560, 19564,
- 19568, 19572, 19576, 19580, 19584, 19588, 19592, 19596, 19600, 19604,
- 19608, 19612, 19616, 19620, 19624, 19628, 19632, 19636, 19640, 19644,
- 19648, 19652, 19656, 19660, 19664, 19668, 19672, 19676, 19680, 19684,
- 19688, 19692, 19696, 19700, 19704, 19708, 19712, 19716, 19720, 19724,
- 19728, 19732, 19736, 19740, 19744, 19748, 19752, 19756, 19760, 19764,
- 19768, 19772, 19776, 19780, 19784, 19788, 19792, 19796, 19800, 19804,
- 19808, 19812, 19816, 19820, 19824, 19828, 19832, 19836, 19840, 19844,
- 19848, 19852, 19856, 19860, 19864, 19868, 19872, 19876, 19880, 19884,
- 19888, 19892, 19896, 19900, 19904, 19908, 19912, 19916, 19920, 19924,
- 19928, 19932, 19936, 19940, 19943, 19947, 19950, 19954, 19958, 19961,
- 19965, 19969, 19972, 19976, 19980, 19984, 19988, 19991, 19995, 19999,
- 20003, 20007, 20011, 20015, 20018, 20022, 20026, 20030, 20034, 20038,
- 20042, 20046, 20050, 20054, 20058, 20062, 20066, 20070, 20074, 20078,
- 20082, 20086, 20090, 20094, 20098, 20102, 20106, 20110, 20114, 20118,
- 20122, 20126, 20130, 20134, 20138, 20142, 20146, 20150, 20154, 20158,
- 20162, 20166, 20170, 20174, 20178, 20182, 20186, 20190, 20194, 20198,
- 20202, 20206, 20210, 20214, 20218, 20222, 20226, 20230, 20234, 20238,
- 20242, 20246, 20250, 20254, 20258, 20262, 20266, 20270, 20274, 20278,
- 20282, 20286, 20290, 20294, 20298, 20302, 20306, 20310, 20314, 20318,
- 20322, 20326, 20330, 20334, 20338, 20342, 20346, 20350, 20354, 20358,
- 20362, 20366, 20370, 20374, 20378, 20382, 20386, 20390, 20394, 20398,
- 20402, 20406, 20410, 20414, 20418, 20422, 20426, 20430, 20434, 20438,
- 20442, 20446, 20450, 20454, 20458, 20462, 20466, 20470, 20474, 20478,
- 20482, 20486, 20490, 20494, 20498, 20502, 20506, 20510, 20514, 20518,
- 20522, 20526, 20530, 20534, 20538, 20542, 20546, 20550, 20554, 20558,
- 20562, 20566, 20570, 20573, 20577, 20581, 20585, 20589, 20593, 20597,
- 20601, 20605, 20609, 20613, 20617, 20621, 20625, 20629, 20633, 20637,
- 20641, 20645, 20649, 20653, 20657, 20661, 20665, 20668, 20672, 20676,
- 20680, 20684, 20688, 20692, 20696, 20700, 20704, 20708, 20712, 20716,
- 20720, 20724, 20728, 20731, 20735, 20739, 20743, 20747, 20751, 20755,
- 20759, 20762, 20766, 20770, 20774, 20778, 20782, 20786, 20790, 20794,
- 20798, 20802, 20806, 20810, 20814, 20818, 20822, 20826, 20830, 20834,
- 20838, 20842, 20846, 20850, 20854, 0, 20858, 20862, 20866, 20870, 0, 0,
- 20874, 20878, 20882, 20886, 20890, 20894, 20898, 0, 20902, 0, 20906,
- 20910, 20914, 20918, 0, 0, 20922, 20926, 20930, 20934, 20938, 20942,
- 20946, 20950, 20954, 20958, 20962, 20966, 20970, 20974, 20978, 20982,
- 20986, 20990, 20994, 20998, 21002, 21006, 21010, 21013, 21017, 21021,
- 21025, 21029, 21033, 21037, 21041, 21045, 21049, 21053, 21057, 21061,
- 21065, 21069, 21073, 21077, 21081, 0, 21085, 21089, 21093, 21097, 0, 0,
- 21101, 21104, 21108, 21112, 21116, 21120, 21124, 21128, 21132, 21136,
- 21140, 21144, 21148, 21152, 21156, 21160, 21164, 21169, 21174, 21179,
- 21185, 21191, 21196, 21201, 21207, 21210, 21214, 21218, 21222, 21226,
- 21230, 21234, 21238, 0, 21242, 21246, 21250, 21254, 0, 0, 21258, 21262,
- 21266, 21270, 21274, 21278, 21282, 0, 21286, 0, 21290, 21294, 21298,
- 21302, 0, 0, 21306, 21310, 21314, 21318, 21322, 21326, 21330, 21334,
- 21338, 21343, 21348, 21353, 21359, 21365, 21370, 0, 21375, 21379, 21383,
- 21387, 21391, 21395, 21399, 21403, 21407, 21411, 21415, 21419, 21423,
- 21427, 21431, 21435, 21439, 21442, 21446, 21450, 21454, 21458, 21462,
- 21466, 21470, 21474, 21478, 21482, 21486, 21490, 21494, 21498, 21502,
- 21506, 21510, 21514, 21518, 21522, 21526, 21530, 21534, 21538, 21542,
- 21546, 21550, 21554, 21558, 21562, 21566, 21570, 21574, 21578, 21582,
- 21586, 21590, 21594, 21598, 0, 21602, 21606, 21610, 21614, 0, 0, 21618,
- 21622, 21626, 21630, 21634, 21638, 21642, 21646, 21650, 21654, 21658,
- 21662, 21666, 21670, 21674, 21678, 21682, 21686, 21690, 21694, 21698,
- 21702, 21706, 21710, 21714, 21718, 21722, 21726, 21730, 21734, 21738,
- 21742, 21746, 21750, 21754, 21758, 21762, 21766, 21770, 21774, 21778,
- 21782, 21786, 21790, 21794, 21798, 21802, 21806, 21810, 21814, 21818,
- 21822, 21826, 21830, 21834, 21838, 21842, 21845, 21849, 21853, 21857,
- 21861, 21865, 21869, 21873, 21877, 21881, 0, 0, 21885, 21894, 21900,
- 21905, 21909, 21912, 21917, 21920, 21923, 21926, 21931, 21935, 21940,
- 21943, 21946, 21949, 21952, 21955, 21958, 21961, 21964, 21967, 21971,
- 21975, 21979, 21983, 21987, 21991, 21995, 21999, 22003, 22007, 0, 0, 0,
- 22013, 22019, 22023, 22027, 22031, 22037, 22041, 22045, 22049, 22055,
- 22059, 22063, 22067, 22073, 22077, 22081, 22085, 22091, 22097, 22103,
- 22111, 22117, 22123, 22129, 22135, 22141, 0, 0, 0, 0, 0, 0, 22147, 22150,
- 22153, 22156, 22159, 22162, 22166, 22170, 22173, 22177, 22181, 22185,
- 22189, 22193, 22196, 22200, 22204, 22208, 22212, 22216, 22220, 22224,
- 22228, 22232, 22236, 22240, 22243, 22247, 22251, 22255, 22259, 22262,
- 22266, 22270, 22274, 22278, 22282, 22286, 22290, 22294, 22298, 22302,
- 22306, 22310, 22314, 22317, 22321, 22325, 22329, 22333, 22337, 22341,
- 22345, 22349, 22353, 22357, 22361, 22365, 22369, 22373, 22377, 22381,
- 22385, 22389, 22393, 22397, 22401, 22405, 22409, 22413, 22417, 22421,
- 22425, 22429, 22433, 22437, 22441, 22445, 22449, 22453, 22456, 22460,
- 22464, 22468, 22472, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22476, 22480,
- 22483, 22487, 22490, 22494, 22497, 22501, 22507, 22512, 22516, 22519,
- 22523, 22527, 22532, 22536, 22541, 22545, 22550, 22554, 22559, 22563,
- 22568, 22574, 22578, 22583, 22587, 22592, 22598, 22602, 22608, 22614,
- 22618, 22623, 22631, 22639, 22646, 22651, 22656, 22665, 22672, 22679,
- 22684, 22690, 22694, 22698, 22702, 22706, 22710, 22714, 22718, 22722,
- 22726, 22730, 22736, 22741, 22746, 22749, 22753, 22757, 22762, 22766,
- 22771, 22775, 22780, 22784, 22789, 22793, 22798, 22802, 22807, 22811,
- 22816, 22822, 22826, 22831, 22836, 22840, 22844, 22848, 22852, 22855,
- 22859, 22865, 22870, 22875, 22879, 22883, 22887, 22892, 22896, 22901,
- 22905, 22910, 22913, 22917, 22921, 22926, 22930, 22935, 22939, 22944,
- 22950, 22954, 22958, 22962, 22966, 22970, 22974, 22978, 22982, 22986,
- 22990, 22994, 23000, 23003, 23007, 23011, 23016, 23020, 23025, 23029,
- 23034, 23038, 23043, 23047, 23052, 23056, 23061, 23065, 23070, 23076,
- 23080, 23084, 23090, 23096, 23102, 23108, 23112, 23116, 23120, 23124,
- 23128, 23132, 23138, 23142, 23146, 23150, 23155, 23159, 23164, 23168,
- 23173, 23177, 23182, 23186, 23191, 23195, 23200, 23204, 23209, 23215,
- 23219, 23225, 23229, 23233, 23237, 23241, 23245, 23249, 23255, 23258,
- 23262, 23266, 23271, 23275, 23280, 23284, 23289, 23293, 23298, 23302,
- 23307, 23311, 23316, 23320, 23325, 23331, 23334, 23338, 23342, 23347,
- 23352, 23356, 23360, 23364, 23368, 23372, 23376, 23382, 23385, 23389,
- 23393, 23398, 23402, 23407, 23411, 23416, 23422, 23426, 23431, 23435,
- 23439, 23443, 23447, 23451, 23455, 23459, 23465, 23469, 23473, 23477,
- 23482, 23486, 23491, 23495, 23500, 23504, 23509, 23513, 23518, 23522,
- 23527, 23531, 23536, 23539, 23543, 23547, 23551, 23555, 23559, 23563,
- 23567, 23571, 23577, 23580, 23584, 23588, 23593, 23597, 23602, 23606,
- 23611, 23615, 23620, 23624, 23629, 23633, 23638, 23642, 23647, 23653,
- 23657, 23663, 23667, 23673, 23679, 23685, 23691, 23697, 23703, 23709,
- 23715, 23719, 23723, 23727, 23731, 23735, 23739, 23743, 23747, 23752,
- 23756, 23761, 23765, 23770, 23774, 23779, 23783, 23788, 23792, 23797,
- 23801, 23806, 23810, 23814, 23818, 23822, 23826, 23830, 23834, 23840,
- 23843, 23847, 23851, 23856, 23860, 23865, 23869, 23874, 23878, 23883,
- 23887, 23892, 23896, 23901, 23905, 23910, 23916, 23920, 23926, 23931,
- 23937, 23941, 23947, 23952, 23956, 23960, 23964, 23968, 23972, 23977,
- 23980, 23984, 23989, 23993, 23998, 24001, 24005, 24009, 24013, 24017,
- 24021, 24025, 24029, 24033, 24037, 24041, 24045, 24050, 24054, 24058,
- 24064, 24068, 24074, 24078, 24084, 24088, 24092, 24096, 24100, 24104,
- 24109, 24113, 24117, 24121, 24125, 24129, 24133, 24137, 24141, 24145,
- 24149, 24155, 24161, 24167, 24173, 24179, 24184, 24190, 24196, 24202,
- 24206, 24210, 24214, 24218, 24222, 24226, 24230, 24234, 24238, 24242,
- 24246, 24250, 24254, 24259, 24264, 24269, 24273, 24277, 24281, 24285,
- 24289, 24293, 24297, 24301, 24305, 24309, 24315, 24321, 24327, 24333,
- 24339, 24345, 24351, 24357, 24363, 24367, 24371, 24375, 24379, 24383,
- 24387, 24391, 24397, 24403, 24409, 24415, 24421, 24427, 24433, 24439,
- 24445, 24450, 24455, 24460, 24465, 24471, 24477, 24483, 24489, 24495,
- 24501, 24507, 24512, 24518, 24524, 24530, 24535, 24541, 24547, 24553,
- 24558, 24563, 24568, 24573, 24578, 24583, 24588, 24593, 24598, 24603,
- 24608, 24613, 24617, 24622, 24627, 24632, 24637, 24642, 24647, 24652,
- 24657, 24662, 24667, 24672, 24677, 24682, 24687, 24692, 24697, 24702,
- 24707, 24712, 24717, 24722, 24727, 24732, 24737, 24742, 24747, 24752,
- 24757, 24762, 24766, 24771, 24776, 24781, 24786, 24791, 24796, 24801,
- 24806, 24811, 24816, 24821, 24826, 24831, 24836, 24841, 24846, 24851,
- 24856, 24861, 24866, 24871, 24876, 24881, 24886, 24891, 24895, 24900,
- 24905, 24910, 24915, 24920, 24924, 24929, 24934, 24939, 24944, 24949,
- 24953, 24958, 24964, 24969, 24974, 24979, 24984, 24990, 24995, 25000,
- 25005, 25010, 25015, 25020, 25025, 25030, 25035, 25040, 25045, 25050,
- 25055, 25060, 25065, 25070, 25075, 25080, 25085, 25090, 25095, 25100,
- 25105, 25110, 25115, 25120, 25125, 25130, 25135, 25140, 25145, 25150,
- 25155, 25160, 25165, 25170, 25175, 25180, 25185, 25190, 25195, 25200,
- 25205, 25210, 25216, 25221, 25226, 25231, 25236, 25241, 25246, 25251,
- 25256, 25261, 25266, 25271, 25275, 25280, 25285, 25290, 25295, 25300,
- 25305, 25310, 25315, 25320, 25325, 25330, 25335, 25340, 25345, 25350,
- 25355, 25360, 25365, 25370, 25375, 25380, 25385, 25390, 25395, 25400,
- 25405, 25411, 25415, 25419, 25423, 25427, 25431, 25435, 25439, 25443,
- 25449, 25455, 25461, 25467, 25473, 25479, 25485, 25492, 25498, 25503,
- 25508, 25513, 25518, 25523, 25528, 25533, 25538, 25543, 25548, 25553,
- 25558, 25563, 25568, 25573, 25578, 25583, 25588, 25593, 25598, 25603,
- 25608, 25613, 25618, 25623, 25628, 25633, 25638, 0, 0, 0, 25645, 25655,
- 25659, 25666, 25670, 25674, 25678, 25686, 25690, 25695, 25700, 25705,
- 25709, 25714, 25719, 25722, 25726, 25730, 25739, 25743, 25747, 25753,
- 25757, 25761, 25769, 25773, 25781, 25787, 25793, 25799, 25805, 25815,
- 25821, 25825, 25834, 25837, 25843, 25847, 25853, 25858, 25864, 25872,
- 25878, 25884, 25892, 25898, 25902, 25906, 25916, 25922, 25926, 25936,
- 25942, 25946, 25950, 25957, 25964, 25969, 25974, 25983, 25987, 25991,
- 25995, 26003, 26010, 26014, 26018, 26022, 26026, 26030, 26034, 26038,
- 26042, 26046, 26050, 26054, 26059, 26064, 26069, 26073, 26077, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26081, 26085, 26089, 26093, 26097,
- 26102, 26107, 26112, 26117, 26121, 26125, 26130, 26134, 0, 26138, 26143,
- 26148, 26152, 26156, 26161, 26166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 26171, 26175, 26179, 26183, 26187, 26192, 26197, 26202, 26207, 26211,
- 26215, 26220, 26224, 26228, 26232, 26237, 26242, 26246, 26250, 26255,
- 26260, 26265, 26271, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26276, 26280, 26284,
- 26288, 26292, 26297, 26302, 26307, 26312, 26316, 26320, 26325, 26329,
- 26333, 26337, 26342, 26347, 26351, 26355, 26360, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 26365, 26369, 26373, 26377, 26381, 26386, 26391, 26396,
- 26401, 26405, 26409, 26414, 26418, 0, 26422, 26427, 26432, 0, 26436,
- 26441, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26446, 26449, 26453, 26457,
- 26461, 26465, 26469, 26473, 26477, 26481, 26485, 26489, 26493, 26497,
- 26501, 26505, 26509, 26513, 26516, 26520, 26524, 26528, 26532, 26536,
- 26540, 26544, 26548, 26552, 26556, 26560, 26564, 26568, 26571, 26574,
- 26578, 26582, 26588, 26594, 26600, 26606, 26612, 26618, 26624, 26630,
- 26636, 26642, 26648, 26654, 26660, 26666, 26675, 26684, 26690, 26696,
- 26702, 26707, 26711, 26716, 26721, 26726, 26730, 26735, 26740, 26745,
- 26749, 26754, 26758, 26763, 26768, 26773, 26778, 26782, 26786, 26790,
- 26794, 26798, 26802, 26806, 26810, 26814, 26818, 26824, 26828, 26832,
- 26836, 26840, 26844, 26852, 26858, 26862, 26868, 26872, 26878, 26882, 0,
- 0, 26886, 26890, 26893, 26896, 26899, 26902, 26905, 26908, 26911, 26914,
- 0, 0, 0, 0, 0, 0, 26917, 26925, 26933, 26941, 26949, 26957, 26965, 26973,
- 26981, 26989, 0, 0, 0, 0, 0, 0, 26997, 27000, 27003, 27006, 27011, 27014,
- 27019, 27026, 27034, 27039, 27046, 27049, 27056, 27063, 27070, 0, 27074,
- 27078, 27081, 27084, 27087, 27090, 27093, 27096, 27099, 27102, 0, 0, 0,
- 0, 0, 0, 27105, 27108, 27111, 27114, 27117, 27120, 27124, 27128, 27132,
- 27135, 27139, 27143, 27146, 27150, 27154, 27157, 27161, 27164, 27168,
- 27172, 27176, 27180, 27184, 27187, 27190, 27194, 27198, 27201, 27205,
- 27209, 27213, 27217, 27221, 27225, 27229, 27233, 27240, 27245, 27250,
- 27255, 27260, 27266, 27272, 27278, 27284, 27289, 27295, 27301, 27306,
- 27312, 27318, 27324, 27330, 27336, 27341, 27347, 27352, 27358, 27364,
- 27370, 27376, 27382, 27387, 27392, 27398, 27404, 27409, 27415, 27420,
- 27426, 27431, 27436, 27442, 27448, 27454, 27460, 27466, 27472, 27478,
- 27484, 27490, 27496, 27502, 27508, 27513, 27518, 27523, 27529, 0, 0, 0,
- 0, 0, 0, 0, 0, 27535, 27544, 27553, 27561, 27569, 27579, 27587, 27596,
- 27603, 27610, 27617, 27625, 27633, 27641, 27649, 27657, 27665, 27673,
- 27681, 27688, 27696, 27704, 27712, 27720, 27728, 27738, 27748, 27758,
- 27768, 27778, 27788, 27798, 27808, 27818, 27828, 27838, 27848, 27858,
- 27868, 27876, 27884, 27894, 27902, 0, 0, 0, 0, 0, 27912, 27916, 27920,
- 27924, 27928, 27932, 27936, 27940, 27944, 27948, 27952, 27956, 27960,
- 27964, 27968, 27972, 27976, 27980, 27984, 27988, 27992, 27996, 28000,
- 28004, 28010, 28014, 28020, 28024, 28030, 28034, 28040, 28044, 28048,
- 28052, 28056, 28060, 28064, 28070, 28076, 28082, 28088, 28093, 28099,
- 28105, 28111, 28117, 28123, 28129, 28136, 28142, 28147, 28152, 28156,
- 28160, 28164, 28168, 28172, 28176, 28180, 28186, 28192, 28198, 28203,
- 28210, 28215, 28220, 28226, 28231, 28238, 28245, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 28252, 28258, 28262, 28267, 28272, 28277, 28282, 28287, 28292,
- 28297, 28302, 28307, 28312, 28317, 28322, 28327, 28331, 28335, 28340,
- 28345, 28350, 28354, 28358, 28362, 28367, 28372, 28377, 28382, 28386, 0,
- 0, 0, 28390, 28395, 28400, 28405, 28411, 28417, 28423, 28429, 28434,
- 28439, 28445, 28451, 0, 0, 0, 0, 28458, 28463, 28469, 28475, 28481,
- 28486, 28491, 28496, 28501, 28507, 28512, 28517, 0, 0, 0, 0, 28522, 0, 0,
- 0, 28527, 28532, 28537, 28542, 28546, 28550, 28554, 28558, 28562, 28566,
- 28570, 28574, 28578, 28583, 28589, 28595, 28601, 28606, 28611, 28617,
- 28623, 28629, 28634, 28640, 28645, 28651, 28657, 28662, 28668, 28674,
- 28680, 28685, 28690, 28695, 28701, 28707, 28712, 28718, 28723, 28729,
- 28734, 28740, 0, 0, 28746, 28752, 28758, 28764, 28770, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 28776, 28783, 28790, 28796, 28803, 28810, 28816, 28823,
- 28830, 28837, 28843, 28849, 28856, 28862, 28868, 28875, 28882, 28888,
- 28895, 28902, 28908, 28914, 28921, 28927, 28933, 28940, 28946, 28953,
- 28960, 28967, 28974, 28981, 28988, 28994, 29001, 29008, 29014, 29021,
- 29028, 29035, 29042, 29049, 29056, 29063, 0, 0, 0, 0, 29070, 29078,
- 29085, 29092, 29098, 29105, 29111, 29118, 29124, 29131, 29138, 29145,
- 29152, 29159, 29166, 29173, 29180, 29187, 29194, 29201, 29208, 29214,
- 29221, 29228, 29235, 29241, 0, 0, 0, 0, 0, 0, 29247, 29253, 29258, 29263,
- 29268, 29273, 29278, 29283, 29288, 29293, 29298, 0, 0, 0, 29304, 29310,
- 29316, 29320, 29326, 29332, 29338, 29344, 29350, 29356, 29362, 29368,
- 29374, 29380, 29386, 29392, 29398, 29404, 29410, 29414, 29420, 29426,
- 29432, 29438, 29444, 29450, 29456, 29462, 29468, 29474, 29480, 29486,
- 29492, 29498, 29504, 29508, 29513, 29518, 29523, 29527, 29532, 29536,
- 29541, 29546, 29551, 29555, 29560, 29565, 29570, 29575, 29580, 29584,
- 29588, 29593, 29598, 29602, 29606, 29610, 29615, 29620, 29625, 29630, 0,
- 0, 29636, 29640, 29647, 29652, 29658, 29664, 29669, 29675, 29681, 29686,
- 29692, 29698, 29704, 29709, 29715, 29720, 29725, 29731, 29736, 29742,
- 29747, 29753, 29759, 29765, 29771, 29775, 29780, 29785, 29791, 29797,
- 29802, 29808, 29814, 29818, 29823, 29828, 29832, 29837, 29842, 29847,
- 29852, 29858, 29864, 29869, 29874, 29879, 29883, 29888, 29892, 29897,
- 29901, 29906, 29911, 29916, 29921, 29927, 29933, 29940, 29950, 29959,
- 29966, 29972, 29982, 29987, 29993, 0, 29998, 30003, 30008, 30016, 30022,
- 30030, 30035, 30041, 30047, 30053, 30058, 30064, 30069, 30076, 30082,
- 30087, 30093, 30099, 30105, 30112, 30119, 30126, 30131, 30136, 30143,
- 30150, 30157, 30164, 30171, 0, 0, 30178, 30185, 30192, 30198, 30204,
- 30210, 30216, 30222, 30228, 30234, 30240, 0, 0, 0, 0, 0, 0, 30246, 30252,
- 30257, 30262, 30267, 30272, 30277, 30282, 30287, 30292, 0, 0, 0, 0, 0, 0,
- 30297, 30302, 30307, 30312, 30317, 30322, 30327, 30336, 30343, 30348,
- 30353, 30358, 30363, 30368, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 60041, 60045, 60049, 60054, 60059, 60064, 60068, 60072, 60076, 60081,
+ 60086, 60090, 60094, 60098, 60102, 60107, 60112, 60117, 60122, 60126,
+ 60130, 60135, 60140, 60145, 60150, 60154, 0, 60158, 60162, 60166, 60170,
+ 60174, 60178, 60182, 60187, 60192, 60196, 60201, 60206, 60215, 60219,
+ 60223, 60227, 60234, 60238, 60243, 60248, 60252, 60256, 60262, 60267,
+ 60272, 60277, 60282, 60286, 60290, 60294, 60298, 60302, 60307, 60312,
+ 60316, 60320, 60325, 60330, 60335, 60339, 60343, 60348, 60353, 60359,
+ 60365, 60369, 60375, 60381, 60385, 60391, 60397, 60402, 60407, 60411,
+ 60417, 60421, 60425, 60431, 60437, 60442, 60447, 60451, 60455, 60463,
+ 60469, 60475, 60481, 60486, 60491, 60496, 60502, 60506, 60512, 60516,
+ 60520, 60526, 60532, 60538, 60544, 60550, 60556, 60562, 60568, 60574,
+ 60580, 60586, 60592, 60596, 60602, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 60608, 60611, 60615, 60619, 60623, 60627, 60630, 60633, 60637, 60641,
+ 60645, 60649, 60652, 60657, 60661, 60665, 60669, 60674, 60678, 60682,
+ 60686, 60690, 60696, 60702, 60706, 60710, 60714, 60718, 60722, 60726,
+ 60730, 60734, 60738, 60742, 60746, 60752, 60756, 60760, 60764, 60768,
+ 60772, 60776, 60780, 60784, 60788, 60792, 60796, 60800, 60804, 60808,
+ 60812, 60816, 60822, 60828, 60833, 60838, 60842, 60846, 60850, 60854,
+ 60858, 60862, 60866, 60870, 60874, 60878, 60882, 60886, 60890, 60894,
+ 60898, 60902, 60906, 60910, 60914, 60918, 60922, 60926, 60930, 60934,
+ 60940, 60944, 60948, 60952, 60956, 60960, 60964, 60968, 60972, 60977,
+ 60984, 60988, 60992, 60996, 61000, 61004, 61008, 61012, 61016, 61020,
+ 61024, 61028, 61032, 61039, 61043, 61049, 61053, 61057, 61061, 61065,
+ 61069, 61072, 61076, 61080, 61084, 61088, 61092, 61096, 61100, 61104,
+ 61108, 61112, 61116, 61120, 61124, 61128, 61132, 61136, 61140, 61144,
+ 61148, 61152, 61156, 61160, 61164, 61168, 61172, 61176, 61180, 61184,
+ 61188, 61192, 61196, 61200, 61206, 61210, 61214, 61218, 61222, 61226,
+ 61230, 61234, 61238, 61242, 61246, 61250, 61254, 61258, 61262, 61266,
+ 61270, 61274, 61278, 61282, 61286, 61290, 61294, 61298, 61302, 61306,
+ 61310, 61314, 61322, 61326, 61330, 61334, 61338, 61342, 61348, 61352,
+ 61356, 61360, 61364, 61368, 61372, 61376, 61380, 61384, 61388, 61392,
+ 61396, 61400, 61406, 61410, 61414, 61418, 61422, 61426, 61430, 61434,
+ 61438, 61442, 61446, 61450, 61454, 61458, 61462, 61466, 61470, 61474,
+ 61478, 61482, 61486, 61490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61494, 61503, 61511, 61522, 61532,
+ 61540, 61549, 61558, 61568, 61580, 61592, 61604, 0, 0, 0, 0, 61610,
+ 61613, 61616, 61621, 61624, 61631, 61635, 61639, 61643, 61647, 61651,
+ 61656, 61661, 61665, 61669, 61674, 61679, 61684, 61689, 61692, 61695,
+ 61701, 61707, 61712, 61717, 61724, 61731, 61735, 61739, 61743, 61751,
+ 61757, 61764, 61769, 61774, 61779, 61784, 61789, 61794, 61799, 61805,
+ 61810, 61816, 61821, 61826, 61831, 61836, 61842, 61847, 61851, 61857,
+ 61868, 61878, 61893, 61903, 61907, 61917, 61923, 61929, 61935, 61940,
+ 61943, 61948, 61952, 0, 61958, 61962, 61965, 61969, 61972, 61976, 61979,
+ 61983, 61986, 61990, 61993, 61996, 62000, 62004, 62008, 62012, 62016,
+ 62020, 62024, 62028, 62032, 62036, 62040, 62044, 62048, 62052, 62056,
+ 62060, 62064, 62068, 62072, 62076, 62080, 62084, 62088, 62093, 62097,
+ 62101, 62105, 62109, 62112, 62116, 62120, 62124, 62128, 62132, 62136,
+ 62139, 62143, 62146, 62150, 62154, 62158, 62162, 62166, 62170, 62174,
+ 62178, 62182, 62186, 62190, 62194, 62197, 62201, 62205, 62209, 62213,
+ 62217, 62220, 62225, 62229, 62234, 62238, 62242, 62246, 62250, 62254,
+ 62258, 62263, 62267, 62271, 62275, 62279, 62283, 62287, 62291, 0, 0,
+ 62296, 62304, 62312, 62319, 62326, 62330, 62336, 62341, 62346, 62350,
+ 62353, 62357, 62360, 62364, 62367, 62371, 62374, 62378, 62381, 62384,
+ 62388, 62392, 62396, 62400, 62404, 62408, 62412, 62416, 62420, 62424,
+ 62428, 62432, 62436, 62440, 62444, 62448, 62452, 62456, 62460, 62464,
+ 62468, 62472, 62476, 62481, 62485, 62489, 62493, 62497, 62500, 62504,
+ 62508, 62512, 62516, 62520, 62524, 62527, 62531, 62534, 62538, 62542,
+ 62546, 62550, 62554, 62558, 62562, 62566, 62570, 62574, 62578, 62582,
+ 62585, 62589, 62593, 62597, 62601, 62605, 62608, 62613, 62617, 62622,
+ 62626, 62630, 62634, 62638, 62642, 62646, 62651, 62655, 62659, 62663,
+ 62667, 62671, 62675, 62679, 62684, 62688, 62692, 62696, 62700, 62704,
+ 62711, 62715, 62721, 0, 0, 0, 0, 0, 62726, 62731, 62736, 62741, 62746,
+ 62751, 62756, 62761, 62765, 62770, 62775, 62780, 62785, 62790, 62795,
+ 62800, 62805, 62810, 62814, 62819, 62824, 62828, 62832, 62836, 62840,
+ 62845, 62850, 62855, 62860, 62865, 62870, 62875, 62880, 62885, 62890,
+ 62894, 62898, 62903, 62908, 62913, 62918, 0, 0, 0, 62923, 62927, 62931,
+ 62935, 62939, 62943, 62947, 62951, 62955, 62959, 62963, 62967, 62971,
+ 62975, 62979, 62983, 62987, 62991, 62995, 62999, 63003, 63007, 63011,
+ 63015, 63019, 63023, 63027, 63031, 63035, 63039, 63043, 63046, 63050,
+ 63053, 63057, 63061, 63064, 63068, 63072, 63075, 63079, 63083, 63087,
+ 63091, 63094, 63098, 63102, 63106, 63110, 63114, 63118, 63121, 63124,
+ 63128, 63132, 63136, 63140, 63144, 63148, 63152, 63156, 63160, 63164,
+ 63168, 63172, 63176, 63180, 63184, 63188, 63192, 63196, 63200, 63204,
+ 63208, 63212, 63216, 63220, 63224, 63228, 63232, 63236, 63240, 63244,
+ 63248, 63252, 63256, 63260, 63264, 63268, 63272, 63276, 63280, 63284,
+ 63288, 0, 63292, 63298, 63304, 63309, 63314, 63319, 63325, 63331, 63336,
+ 63342, 63348, 63354, 63360, 63366, 63372, 63378, 63384, 63389, 63394,
+ 63399, 63404, 63409, 63414, 63419, 63424, 63429, 63434, 63439, 63444,
+ 63449, 63454, 63459, 63464, 63469, 63474, 63479, 63484, 63490, 63496,
+ 63502, 63508, 63513, 63518, 0, 0, 0, 0, 0, 63523, 63528, 63533, 63538,
+ 63543, 63548, 63553, 63558, 63563, 63568, 63573, 63578, 63583, 63588,
+ 63593, 63598, 63603, 63608, 63612, 63617, 63622, 63627, 63632, 63637,
+ 63642, 63647, 63652, 63657, 63662, 63667, 63672, 63677, 63682, 63687,
+ 63692, 63697, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63702, 63707, 63712,
+ 63717, 63721, 63726, 63730, 63735, 63740, 63745, 63750, 63755, 63760,
+ 63765, 63770, 63775, 63780, 63784, 63788, 63792, 63796, 63800, 63804,
+ 63808, 63812, 63816, 63820, 63824, 63828, 63832, 63836, 63841, 63846,
+ 63851, 63856, 63861, 63866, 63871, 63876, 63881, 63886, 63891, 63896,
+ 63901, 63906, 63911, 63917, 0, 63924, 63927, 63930, 63933, 63936, 63939,
+ 63942, 63946, 63949, 63953, 63957, 63961, 63965, 63969, 63973, 63977,
+ 63981, 63985, 63989, 63993, 63997, 64001, 64005, 64009, 64013, 64017,
+ 64021, 64025, 64029, 64033, 64037, 64041, 64045, 64049, 64053, 64057,
+ 64061, 64065, 64069, 64073, 64077, 64086, 64095, 64104, 64113, 64122,
+ 64131, 64140, 64149, 64152, 64157, 64162, 64167, 64172, 64177, 64182,
+ 64188, 64193, 64199, 64203, 64208, 64213, 64218, 64223, 64228, 64232,
+ 64236, 64240, 64244, 64248, 64252, 64256, 64260, 64264, 64268, 64272,
+ 64276, 64280, 64284, 64289, 64294, 64299, 64304, 64309, 64314, 64319,
+ 64324, 64329, 64334, 64339, 64344, 64349, 64354, 64360, 64366, 64371,
+ 64376, 64379, 64382, 64385, 64388, 64391, 64394, 64398, 64401, 64405,
+ 64409, 64413, 64417, 64421, 64425, 64429, 64433, 64437, 64441, 64445,
+ 64449, 64453, 64457, 64461, 64465, 64469, 64473, 64477, 64481, 64485,
+ 64489, 64493, 64497, 64501, 64505, 64509, 64513, 64517, 64521, 64525,
+ 64529, 64533, 64537, 64541, 64545, 64549, 64553, 64557, 64561, 64565,
+ 64570, 64576, 64581, 64587, 64591, 64596, 64601, 64606, 64611, 64616,
+ 64621, 64627, 64632, 64638, 64642, 64649, 64656, 64663, 64670, 64677,
+ 64684, 64691, 64698, 64705, 64712, 64719, 64726, 64729, 64732, 64735,
+ 64740, 64743, 64746, 64749, 64752, 64755, 64758, 64762, 64766, 64770,
+ 64774, 64778, 64782, 64786, 64790, 64794, 64798, 64802, 64806, 64810,
+ 64813, 64817, 64821, 64825, 64829, 64833, 64836, 64840, 64844, 64848,
+ 64852, 64855, 64859, 64863, 64867, 64871, 64874, 64878, 64882, 64886,
+ 64890, 64894, 64898, 64902, 64906, 64910, 64914, 0, 64918, 64921, 64924,
+ 64927, 64930, 64933, 64936, 64939, 64942, 64945, 64948, 64951, 64954,
+ 64957, 64960, 64963, 64966, 64969, 64972, 64975, 64978, 64981, 64984,
+ 64987, 64990, 64993, 64996, 64999, 65002, 65005, 65008, 65011, 65014,
+ 65017, 65020, 65023, 65026, 65029, 65032, 65035, 65038, 65041, 65044,
+ 65047, 65050, 65053, 65056, 65059, 65062, 65065, 65068, 65071, 65074,
+ 65077, 65080, 65083, 65086, 65089, 65092, 65095, 65098, 65101, 65104,
+ 65107, 65110, 65113, 65116, 65119, 65122, 65125, 65128, 65131, 65134,
+ 65137, 65140, 65143, 65146, 65149, 65152, 65155, 65158, 65161, 65164,
+ 65167, 65170, 65173, 65176, 65179, 65182, 65191, 65199, 65207, 65215,
+ 65223, 65231, 65239, 65248, 65256, 65265, 65274, 65283, 65292, 65301,
+ 65310, 65319, 65328, 65337, 65346, 65355, 65364, 65373, 65382, 65391,
+ 65400, 65403, 65406, 65409, 65411, 65414, 65417, 65420, 65425, 65430,
+ 65433, 65440, 65447, 65454, 65461, 65464, 65469, 65472, 65476, 65478,
+ 65480, 65483, 65486, 65489, 65492, 65495, 65498, 65501, 65506, 65511,
+ 65514, 65517, 65520, 65523, 65526, 65529, 65532, 65536, 65539, 65542,
+ 65545, 65548, 65551, 65556, 65559, 65562, 65565, 65570, 65575, 65580,
+ 65585, 65590, 65595, 65600, 65605, 65610, 65618, 65620, 65623, 65626,
+ 65629, 65632, 65637, 65645, 65648, 65651, 65655, 65658, 65661, 65664,
+ 65669, 65672, 65675, 65680, 65683, 65686, 65691, 65694, 65697, 65702,
+ 65707, 65712, 65715, 65718, 65721, 65724, 65730, 65733, 65736, 65739,
+ 65741, 65744, 65747, 65750, 65755, 65758, 65761, 65764, 65767, 65770,
+ 65775, 65778, 65781, 65784, 65787, 65790, 65793, 65796, 65799, 65802,
+ 65808, 65813, 65821, 65829, 65837, 65845, 65853, 65861, 65870, 65878,
+ 65887, 65896, 65905, 65914, 65923, 65932, 65941, 65950, 65959, 65968,
+ 65977, 65986, 65995, 66004, 66013, 66022, 66031, 66040, 66049, 66058,
+ 66067, 66076, 66085, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30373, 30379,
- 30385, 30389, 30393, 30397, 30401, 30407, 30411, 30417, 30421, 30427,
- 30433, 30441, 30447, 30455, 30459, 30463, 30467, 30473, 30476, 30482,
- 30486, 30492, 30496, 30500, 30506, 30510, 30516, 30520, 30526, 30534,
- 30542, 30550, 30556, 30560, 30566, 30570, 30576, 30579, 30582, 30588,
- 30592, 30598, 30601, 30604, 30607, 30611, 30615, 30621, 30627, 30630,
- 30633, 30637, 30642, 30647, 30654, 30659, 30666, 30673, 30682, 30689,
- 30698, 30703, 30710, 30717, 30726, 30731, 30738, 30743, 30749, 30755,
- 30761, 30767, 30773, 30779, 0, 0, 0, 0, 30785, 30789, 30792, 30795,
- 30798, 30801, 30804, 30807, 30810, 30813, 30816, 30819, 30822, 30825,
- 30830, 30835, 30840, 30843, 30848, 30853, 30858, 30863, 30870, 30875,
- 30880, 30885, 30890, 30897, 30903, 30909, 30915, 30921, 30927, 30936,
- 30945, 30951, 30957, 30965, 30973, 30982, 30991, 30999, 31007, 31016,
- 31025, 0, 0, 0, 31033, 31037, 31041, 31045, 31048, 31051, 31054, 31058,
- 31061, 31064, 31068, 31071, 31075, 31079, 31083, 31087, 31091, 31095,
- 31099, 31103, 31107, 31110, 31113, 31117, 31121, 31125, 31128, 31131,
- 31134, 31138, 31142, 31145, 31149, 31152, 31157, 31162, 31167, 31172,
- 31177, 31182, 31187, 31192, 31197, 31201, 31205, 31211, 31218, 31222,
- 31226, 31230, 31233, 31236, 31239, 31242, 31245, 31248, 31251, 31254,
- 31257, 31260, 31264, 31268, 31272, 31277, 31281, 31285, 31291, 31295,
- 31301, 31307, 31312, 31319, 31323, 31329, 31333, 31339, 31344, 31351,
- 31358, 31363, 31370, 31375, 31380, 31384, 31390, 31394, 31400, 31407,
- 31414, 31418, 31424, 31430, 31434, 31440, 31445, 31450, 31457, 31462,
- 31467, 31472, 31477, 31481, 31485, 31490, 31495, 31502, 31508, 31513,
- 31520, 31525, 31532, 31537, 31546, 31552, 31558, 31562, 0, 0, 0, 0, 0, 0,
- 0, 0, 31566, 31575, 31582, 31589, 31596, 31599, 31603, 31607, 31611,
- 31615, 31619, 31623, 31627, 31631, 31635, 31639, 31643, 31647, 31650,
- 31653, 31657, 31661, 31665, 31669, 31673, 31677, 31680, 31684, 31688,
- 31692, 31696, 31699, 31702, 31706, 31709, 31713, 31717, 31720, 31724,
- 31728, 31731, 31736, 31741, 31746, 31750, 31754, 31759, 31763, 31768,
- 31772, 31777, 31781, 31785, 31790, 31795, 31799, 31804, 31809, 31814,
- 31818, 0, 0, 0, 31822, 31827, 31836, 31841, 31848, 31853, 31857, 31860,
- 31863, 31866, 31869, 31872, 31875, 31878, 31881, 0, 0, 0, 31884, 31888,
- 31892, 31896, 31903, 31909, 31915, 31921, 31927, 31933, 31939, 31945,
- 31951, 31957, 31964, 31971, 31978, 31985, 31992, 31999, 32006, 32013,
- 32020, 32027, 32034, 32041, 32048, 32055, 32062, 32069, 32076, 32083,
- 32090, 32097, 32104, 32111, 32118, 32125, 32132, 32139, 32146, 32153,
- 32160, 32167, 32175, 32183, 32191, 32197, 32203, 32209, 32217, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32226, 32233, 32240, 32247, 32254,
- 32263, 32272, 32281, 0, 0, 0, 0, 0, 0, 0, 0, 32290, 32295, 32300, 32305,
- 32310, 32319, 32330, 32339, 32350, 32356, 32369, 32375, 32382, 32389,
- 32394, 32400, 32406, 32417, 32426, 32433, 32440, 32449, 32456, 32465,
- 32475, 32485, 32492, 32499, 32506, 32516, 32521, 32529, 32535, 32543,
- 32552, 32557, 32564, 32570, 32575, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32580,
- 32585, 32591, 32598, 32606, 32612, 32618, 32624, 32629, 32636, 32642,
- 32648, 32654, 32662, 32667, 32675, 32680, 32686, 32692, 32699, 32707,
- 32714, 32720, 32727, 32734, 32740, 32747, 32754, 32760, 32765, 32771,
- 32779, 32787, 32793, 32799, 32805, 32811, 32819, 32823, 32829, 32835,
- 32841, 32847, 32853, 32859, 32863, 32868, 32873, 32880, 32885, 32889,
- 32895, 32900, 32905, 32909, 32914, 32919, 32923, 32927, 32932, 32939,
- 32943, 32948, 32953, 32957, 32962, 32966, 32971, 32975, 32981, 32986,
- 32993, 32998, 33003, 33007, 33012, 33017, 33024, 33029, 33035, 33040,
- 33044, 33049, 33053, 33058, 33065, 33072, 33077, 33082, 33086, 33092,
- 33098, 33103, 33108, 33113, 33119, 33124, 33130, 33135, 33141, 33147,
- 33153, 33160, 33167, 33174, 33181, 33188, 33195, 33200, 33208, 33217,
- 33226, 33235, 33244, 33253, 33262, 33274, 33283, 33292, 33301, 33308,
- 33313, 33320, 33328, 33336, 33343, 33350, 33357, 33364, 33372, 33381,
- 33390, 33399, 33408, 33417, 33426, 33435, 33444, 33453, 33462, 33471,
- 33480, 33489, 33498, 33506, 33515, 33526, 33534, 33543, 33554, 33563,
- 33572, 33581, 33590, 33598, 33607, 33614, 33619, 33627, 33632, 33639,
- 33644, 33653, 33659, 33666, 33673, 33678, 33683, 33691, 33699, 33708,
- 33717, 33722, 33729, 33740, 33748, 33757, 33763, 33769, 33774, 33781,
- 33786, 33795, 33800, 33805, 33810, 33817, 33824, 33829, 33838, 33846,
- 33851, 33856, 33863, 33870, 33874, 33878, 33881, 33884, 33887, 33890,
- 33893, 33896, 33903, 33906, 33909, 33914, 33918, 33922, 33926, 33930,
- 33934, 33943, 33949, 33955, 33961, 33969, 33977, 33983, 33989, 33996,
- 34002, 34007, 34013, 34019, 34025, 34032, 34038, 34046, 34052, 34059, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34065, 34072,
- 34079, 34084, 34093, 34101, 34109, 34116, 34123, 34130, 34137, 34145,
- 34153, 34163, 34173, 34181, 34189, 34197, 34205, 34214, 34223, 34231,
- 34239, 34248, 34257, 34267, 34277, 34286, 34295, 34303, 34311, 34319,
- 34327, 34337, 34347, 34355, 34363, 34371, 34379, 34387, 34395, 34403,
- 34411, 34419, 34427, 34435, 34443, 34452, 34461, 34470, 34479, 34489,
- 34499, 34506, 34513, 34521, 34529, 34538, 34547, 34555, 34563, 34575,
- 34587, 34596, 34605, 34614, 34623, 34630, 34637, 34645, 34653, 34661,
- 34669, 34677, 34685, 34693, 34701, 34710, 34719, 34728, 34737, 34746,
- 34755, 34765, 34775, 34785, 34795, 34804, 34813, 34820, 34827, 34835,
- 34843, 34851, 34859, 34867, 34875, 34887, 34899, 34908, 34917, 34925,
- 34933, 34941, 34949, 34960, 34971, 34982, 34993, 35005, 35017, 35025,
- 35033, 35041, 35049, 35058, 35067, 35076, 35085, 35093, 35101, 35109,
- 35117, 35125, 35133, 35142, 35151, 35161, 35171, 35178, 35185, 35193,
- 35201, 35209, 35217, 35224, 35231, 35239, 35247, 35255, 35263, 35271,
- 35279, 35287, 35295, 35303, 35311, 35319, 35327, 35335, 35343, 35351,
- 35359, 35368, 35377, 35386, 35394, 35403, 35412, 35421, 35430, 35440,
- 35449, 35456, 35461, 35468, 35475, 35483, 35491, 35500, 35509, 35519,
- 35529, 35540, 35551, 35560, 35569, 35579, 35589, 35598, 35607, 35617,
- 35627, 35638, 35649, 35658, 35667, 35677, 35687, 35694, 35701, 35709,
- 35717, 35723, 35729, 35738, 35747, 35757, 35767, 35778, 35789, 35798,
- 35807, 35817, 35827, 35836, 35845, 35853, 35861, 35868, 35875, 35883,
- 35891, 35900, 35909, 35919, 35929, 35940, 35951, 35960, 35969, 35979,
- 35989, 35998, 36007, 36017, 36027, 36038, 36049, 36058, 36067, 36077,
- 36087, 36094, 36101, 36109, 36117, 36126, 36135, 36145, 36155, 36166,
- 36177, 36186, 36195, 36205, 36215, 36223, 36231, 36239, 36247, 36256,
- 36265, 36272, 36279, 36286, 36293, 36300, 36307, 36315, 36323, 36331,
- 36339, 36350, 36361, 36372, 36383, 36394, 36405, 36413, 36421, 36432,
- 36443, 36454, 36465, 36476, 36487, 36495, 36503, 36514, 36525, 36536, 0,
- 0, 36547, 36555, 36563, 36574, 36585, 36596, 0, 0, 36607, 36615, 36623,
- 36634, 36645, 36656, 36667, 36678, 36689, 36697, 36705, 36716, 36727,
- 36738, 36749, 36760, 36771, 36779, 36787, 36798, 36809, 36820, 36831,
- 36842, 36853, 36861, 36869, 36880, 36891, 36902, 36913, 36924, 36935,
- 36943, 36951, 36962, 36973, 36984, 0, 0, 36995, 37003, 37011, 37022,
- 37033, 37044, 0, 0, 37055, 37063, 37071, 37082, 37093, 37104, 37115,
- 37126, 0, 37137, 0, 37145, 0, 37156, 0, 37167, 37178, 37186, 37194,
- 37205, 37216, 37227, 37238, 37249, 37260, 37268, 37276, 37287, 37298,
- 37309, 37320, 37331, 37342, 37350, 37358, 37366, 37374, 37382, 37390,
- 37398, 37406, 37414, 37422, 37430, 37438, 37446, 0, 0, 37454, 37465,
- 37476, 37490, 37504, 37518, 37532, 37546, 37560, 37571, 37582, 37596,
- 37610, 37624, 37638, 37652, 37666, 37677, 37688, 37702, 37716, 37730,
- 37744, 37758, 37772, 37783, 37794, 37808, 37822, 37836, 37850, 37864,
- 37878, 37889, 37900, 37914, 37928, 37942, 37956, 37970, 37984, 37995,
- 38006, 38020, 38034, 38048, 38062, 38076, 38090, 38098, 38106, 38117,
- 38125, 0, 38136, 38144, 38155, 38163, 38171, 38179, 38187, 38195, 38198,
- 38201, 38204, 38207, 38213, 38224, 38232, 0, 38243, 38251, 38262, 38270,
- 38278, 38286, 38294, 38302, 38308, 38314, 38320, 38328, 38336, 38347, 0,
- 0, 38358, 38366, 38377, 38385, 38393, 38401, 0, 38409, 38415, 38421,
- 38427, 38435, 38443, 38454, 38465, 38473, 38481, 38489, 38500, 38508,
- 38516, 38524, 38532, 38540, 38546, 38552, 0, 0, 38555, 38566, 38574, 0,
- 38585, 38593, 38604, 38612, 38620, 38628, 38636, 38644, 38647, 0, 38650,
- 38654, 38658, 38662, 38666, 38670, 38674, 38678, 38682, 38686, 38690,
- 38694, 38700, 38706, 38712, 38715, 38718, 38720, 38724, 38728, 38732,
- 38736, 38738, 38742, 38746, 38752, 38758, 38765, 38772, 38777, 38782,
- 38788, 38794, 38796, 38799, 38801, 38805, 38809, 38813, 38816, 38820,
- 38824, 38828, 38832, 38836, 38842, 38846, 38850, 38856, 38861, 38868,
- 38870, 38873, 38877, 38881, 38886, 38892, 38894, 38903, 38912, 38915,
- 38919, 38921, 38923, 38925, 38928, 38934, 38936, 38940, 38944, 38951,
- 38958, 38962, 38967, 38972, 38977, 38982, 38986, 38990, 38993, 38997,
- 39001, 39008, 39013, 39017, 39021, 39026, 39030, 39034, 39039, 39044,
- 39048, 39052, 39056, 39058, 39063, 39068, 39072, 39076, 39080, 39084, 0,
- 39088, 39092, 39096, 39102, 39108, 39114, 39120, 39127, 39134, 39139,
- 39144, 39148, 0, 0, 39154, 39157, 39160, 39163, 39166, 39169, 39172,
- 39176, 39180, 39185, 39190, 39195, 39202, 39206, 39209, 39212, 39215,
- 39218, 39221, 39224, 39227, 39230, 39233, 39237, 39241, 39246, 39251, 0,
- 39256, 39262, 39268, 39274, 39281, 39288, 39295, 39302, 39308, 39314,
- 39321, 39328, 39335, 0, 0, 0, 39342, 39345, 39348, 39351, 39356, 39359,
- 39362, 39365, 39368, 39371, 39374, 39378, 39381, 39384, 39387, 39390,
- 39393, 39398, 39401, 39404, 39407, 39410, 39413, 39418, 39421, 39424,
- 39429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 39434, 39439, 39444, 39451, 39459, 39464, 39469, 39473, 39477, 39482,
- 39489, 39496, 39500, 39505, 39510, 39515, 39520, 39527, 39532, 39537,
- 39542, 39551, 39558, 39565, 39569, 39574, 39580, 39585, 39592, 39601,
- 39610, 39614, 39618, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39622,
- 39626, 39634, 39638, 39642, 39647, 39651, 39655, 39659, 39661, 39665,
- 39669, 39673, 39678, 39682, 39686, 39694, 39697, 39701, 39704, 39707,
- 39713, 39717, 39720, 39726, 39730, 39734, 39738, 39741, 39745, 39748,
- 39752, 39754, 39757, 39760, 39764, 39766, 39770, 39773, 39776, 39781,
- 39786, 39793, 39796, 39799, 39803, 39808, 39811, 39814, 39817, 39821,
- 39826, 39829, 39832, 39834, 39837, 39840, 39843, 39847, 39852, 39855,
- 39859, 39863, 39867, 39871, 39876, 39882, 39887, 39892, 39898, 39903,
- 39908, 39912, 39916, 39921, 39925, 39929, 39932, 39934, 39939, 39945,
- 39952, 39959, 39966, 39973, 39980, 39987, 39994, 40001, 40009, 40016,
- 40024, 40031, 40038, 40046, 40054, 40059, 40064, 40069, 40074, 40079,
- 40084, 40089, 40094, 40099, 40104, 40110, 40116, 40122, 40128, 40135,
- 40143, 40150, 40156, 40162, 40168, 40174, 40180, 40186, 40192, 40198,
- 40204, 40211, 40218, 40225, 40232, 40240, 40249, 40257, 40268, 40276,
- 40284, 40293, 40300, 40309, 40318, 40326, 40335, 0, 0, 0, 0, 0, 0, 40343,
- 40345, 40348, 40350, 40353, 40356, 40359, 40364, 40369, 40374, 40379,
- 40383, 40387, 40391, 40395, 40400, 40406, 40411, 40417, 40422, 40427,
- 40432, 40438, 40443, 40449, 40455, 40459, 40463, 40468, 40473, 40478,
- 40483, 40488, 40496, 40504, 40512, 40520, 40527, 40535, 40542, 40549,
- 40558, 40570, 40576, 40582, 40590, 40598, 40607, 40616, 40624, 40632,
- 40641, 40650, 40655, 40663, 40668, 40673, 40679, 40684, 40690, 40697,
- 40704, 40709, 40715, 40720, 40723, 40727, 40730, 40734, 40738, 40742,
- 40748, 40754, 40760, 40766, 40770, 40774, 40778, 40782, 40788, 40794,
- 40798, 40803, 40807, 40812, 40817, 40822, 40825, 40829, 40832, 40836,
- 40843, 40851, 40862, 40873, 40878, 40887, 40894, 40903, 40912, 40916,
- 40922, 40930, 40934, 40939, 40944, 40950, 40956, 40962, 40969, 40973,
- 40977, 40982, 40985, 40987, 40991, 40995, 41003, 41007, 41009, 41011,
- 41015, 41023, 41028, 41034, 41044, 41051, 41056, 41060, 41064, 41068,
- 41071, 41074, 41077, 41081, 41085, 41089, 41093, 41097, 41100, 41104,
- 41108, 41111, 41113, 41116, 41118, 41122, 41126, 41128, 41134, 41137,
- 41142, 41146, 41150, 41152, 41154, 41156, 41159, 41163, 41167, 41171,
- 41175, 41179, 41185, 41191, 41193, 41195, 41197, 41199, 41202, 41204,
- 41208, 41210, 41214, 41217, 41223, 41227, 41231, 41234, 41237, 41241,
- 41247, 41251, 41261, 41271, 41275, 41281, 41287, 41290, 41294, 41297,
- 41302, 41306, 41312, 41316, 41328, 41336, 41340, 41344, 41350, 41354,
- 41357, 41359, 41362, 41366, 41370, 41377, 41381, 41385, 41389, 41392,
- 41397, 41402, 41407, 41412, 41417, 41422, 41430, 41438, 41442, 41446,
- 41448, 41453, 41457, 41461, 41469, 41477, 41483, 41489, 41498, 41507,
- 41512, 41517, 41525, 41533, 41535, 41537, 41542, 41547, 41553, 41559,
- 41565, 41571, 41575, 41579, 41586, 41593, 41599, 41605, 41615, 41625,
- 41633, 41641, 41643, 41647, 41651, 41656, 41661, 41668, 41675, 41678,
- 41681, 41684, 41687, 41690, 41695, 41699, 41704, 41709, 41712, 41715,
- 41718, 41721, 41724, 41728, 41731, 41734, 41737, 41740, 41742, 41744,
- 41746, 41748, 41756, 41764, 41770, 41774, 41780, 41790, 41796, 41802,
- 41808, 41816, 41824, 41835, 41839, 41843, 41845, 41851, 41853, 41855,
- 41857, 41859, 41865, 41868, 41874, 41880, 41884, 41888, 41892, 41895,
- 41899, 41903, 41905, 41914, 41923, 41928, 41933, 41939, 41945, 41951,
- 41954, 41957, 41960, 41963, 41965, 41970, 41975, 41980, 41986, 41992,
- 42000, 42008, 42014, 42020, 42026, 42032, 42041, 42050, 42059, 42068,
- 42077, 42086, 42095, 42104, 42113, 42122, 42130, 42142, 42152, 42167,
- 42170, 42175, 42181, 42187, 42194, 42208, 42223, 42229, 42235, 42242,
- 42248, 42256, 42262, 42275, 42289, 42294, 42300, 42307, 42310, 42313,
- 42315, 42318, 42321, 42323, 42325, 42329, 42332, 42335, 42338, 42341,
- 42346, 42351, 42356, 42361, 42366, 42369, 42371, 42373, 42375, 42379,
- 42383, 42387, 42393, 42398, 42400, 42402, 42407, 42412, 42417, 42422,
- 42427, 42432, 42434, 42436, 42445, 42449, 42457, 42466, 42468, 42473,
- 42478, 42486, 42490, 42492, 42496, 42498, 42502, 42506, 42510, 42512,
- 42514, 42516, 42523, 42532, 42541, 42550, 42559, 42568, 42577, 42586,
- 42595, 42603, 42611, 42620, 42629, 42638, 42647, 42655, 42663, 42672,
- 42681, 42690, 42700, 42709, 42719, 42728, 42738, 42747, 42757, 42767,
- 42776, 42786, 42795, 42805, 42814, 42824, 42833, 42842, 42851, 42860,
- 42869, 42879, 42888, 42897, 42906, 42916, 42925, 42934, 42943, 42952,
- 42962, 42972, 42981, 42990, 42998, 43006, 43013, 43021, 43030, 43041,
- 43050, 43059, 43068, 43075, 43082, 43089, 43098, 43107, 43116, 43125,
- 43132, 43137, 43146, 43151, 43154, 43162, 43165, 43170, 43175, 43178,
- 43181, 43189, 43192, 43197, 43200, 43207, 43212, 43220, 43223, 43226,
- 43229, 43234, 43239, 43242, 43245, 43253, 43256, 43263, 43270, 43274,
- 43278, 43283, 43288, 43294, 43299, 43305, 43311, 43316, 43322, 43330,
- 43336, 43344, 43352, 43358, 43366, 43374, 43383, 43391, 43397, 43405,
- 43414, 43422, 43426, 43431, 43444, 43457, 43461, 43465, 43469, 43473,
- 43483, 43487, 43492, 43497, 43502, 43507, 43512, 43517, 43527, 43537,
- 43545, 43555, 43565, 43573, 43583, 43593, 43601, 43611, 43621, 43629,
- 43637, 43647, 43657, 43660, 43663, 43666, 43671, 43675, 43681, 43688,
- 43695, 43703, 43710, 43714, 43718, 43722, 43726, 43728, 43732, 43736,
- 43741, 43746, 43753, 43760, 43763, 43770, 43772, 43774, 43778, 43782,
- 43787, 43793, 43799, 43805, 43811, 43820, 43829, 43838, 43842, 43844,
- 43848, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43855, 43859, 43866, 43873,
- 43880, 43887, 43891, 43895, 43899, 43903, 43908, 43914, 43919, 43925,
- 43931, 43937, 43943, 43951, 43958, 43965, 43972, 43979, 43984, 43990,
- 43999, 44003, 44010, 44014, 44018, 44024, 44030, 44036, 44042, 44046,
- 44050, 44053, 44056, 44060, 44067, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44074, 44077, 44081, 44085, 44091,
- 44097, 44103, 44111, 44118, 44122, 44130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44135, 44138, 44141, 44144, 44147,
- 44150, 44153, 44156, 44159, 44162, 44166, 44170, 44174, 44178, 44182,
- 44186, 44190, 44194, 44198, 44202, 44206, 44209, 44212, 44215, 44218,
- 44221, 44224, 44227, 44230, 44233, 44237, 44241, 44245, 44249, 44253,
- 44257, 44261, 44265, 44269, 44273, 44277, 44283, 44289, 44295, 44302,
- 44309, 44316, 44323, 44330, 44337, 44344, 44351, 44358, 44365, 44372,
- 44379, 44386, 44393, 44400, 44407, 44414, 44419, 44425, 44431, 44437,
- 44442, 44448, 44454, 44460, 44465, 44471, 44477, 44482, 44487, 44493,
- 44498, 44504, 44510, 44515, 44521, 44527, 44532, 44538, 44544, 44550,
- 44556, 44562, 44567, 44573, 44579, 44585, 44590, 44596, 44602, 44608,
- 44613, 44619, 44625, 44630, 44635, 44641, 44646, 44652, 44658, 44663,
- 44669, 44675, 44680, 44686, 44692, 44698, 44704, 44710, 44715, 44721,
- 44727, 44733, 44738, 44744, 44750, 44756, 44761, 44767, 44773, 44778,
- 44783, 44789, 44794, 44800, 44806, 44811, 44817, 44823, 44828, 44834,
- 44840, 44846, 44852, 44858, 44862, 44867, 44872, 44877, 44882, 44887,
- 44892, 44897, 44902, 44907, 44912, 44916, 44920, 44924, 44928, 44932,
- 44936, 44940, 44944, 44948, 44953, 44958, 44963, 44968, 44973, 44978,
- 44987, 44996, 45005, 45014, 45023, 45032, 45041, 45050, 45057, 45065,
- 45073, 45080, 45087, 45095, 45103, 45110, 45117, 45125, 45133, 45140,
- 45147, 45155, 45163, 45170, 45177, 45185, 45194, 45203, 45211, 45220,
- 45229, 45236, 45243, 45251, 45260, 45269, 45277, 45286, 45295, 45302,
- 45309, 45318, 45327, 45335, 45343, 45352, 45361, 45368, 45375, 45384,
- 45393, 45401, 45409, 45418, 45427, 45434, 45441, 45450, 45459, 45467,
- 45476, 45485, 45493, 45503, 45513, 45523, 45533, 45542, 45551, 45560,
- 45569, 45576, 45584, 45592, 45600, 45608, 45613, 45618, 45627, 45635,
- 45642, 45651, 45659, 45666, 45675, 45683, 45690, 45699, 45707, 45714,
- 45723, 45731, 45738, 45747, 45755, 45762, 45771, 45779, 45786, 45795,
- 45803, 45810, 45819, 45827, 45834, 45843, 45852, 45861, 45870, 45884,
- 45898, 45905, 45910, 45915, 45920, 45925, 45930, 45935, 45940, 45945,
- 45953, 45961, 45969, 45977, 45982, 45989, 45996, 46003, 46008, 46016,
- 46023, 46031, 46035, 46042, 46048, 46055, 46059, 46065, 46071, 46077,
- 46081, 46084, 46088, 46092, 46099, 46105, 46111, 46117, 46123, 46137,
- 46147, 46161, 46175, 46181, 46191, 46205, 46208, 46211, 46218, 46226,
- 46231, 46236, 46244, 46256, 46268, 46276, 46280, 46284, 46287, 46290,
- 46294, 46298, 46301, 46304, 46309, 46314, 46320, 46326, 46331, 46336,
- 46342, 46348, 46353, 46358, 46363, 46368, 46374, 46380, 46385, 46390,
- 46396, 46402, 46407, 46412, 46415, 46418, 46427, 46429, 46431, 46434,
- 46438, 46444, 46446, 46449, 46456, 46463, 46471, 46479, 46489, 46503,
- 46508, 46513, 46517, 46522, 46530, 46538, 46547, 46556, 46565, 46574,
- 46579, 46584, 46590, 46596, 46602, 46608, 46611, 46617, 46623, 46633,
- 46643, 46651, 46659, 46668, 46677, 46681, 46689, 46697, 46705, 46713,
- 46722, 46731, 46740, 46749, 46754, 46759, 46764, 46769, 46774, 46780,
- 46786, 46791, 46797, 46799, 46801, 46803, 46805, 46808, 46811, 46813,
- 46815, 46817, 46821, 46825, 46827, 46829, 46832, 46835, 46839, 46845,
- 46851, 46853, 46860, 46864, 46869, 46874, 46876, 46886, 46892, 46898,
- 46904, 46910, 46916, 46922, 46927, 46930, 46933, 46936, 46938, 46940,
- 46944, 46948, 46953, 46958, 46963, 46966, 46970, 46975, 46978, 46982,
- 46987, 46992, 46997, 47002, 47007, 47012, 47017, 47022, 47027, 47032,
- 47037, 47042, 47048, 47054, 47060, 47062, 47065, 47067, 47070, 47072,
- 47074, 47076, 47078, 47080, 47082, 47084, 47086, 47088, 47090, 47092,
- 47094, 47096, 47098, 47100, 47102, 47104, 47109, 47114, 47119, 47124,
- 47129, 47134, 47139, 47144, 47149, 47154, 47159, 47164, 47169, 47174,
- 47179, 47184, 47189, 47194, 47199, 47204, 47208, 47212, 47216, 47222,
- 47228, 47233, 47238, 47243, 47248, 47253, 47258, 47266, 47274, 47282,
- 47290, 47298, 47306, 47314, 47322, 47328, 47333, 47338, 47343, 47346,
- 47350, 47354, 47358, 47362, 47366, 47370, 47377, 47384, 47392, 47400,
- 47405, 47410, 47417, 47424, 47431, 47438, 47441, 47444, 47449, 47451,
- 47455, 47460, 47462, 47464, 47466, 47468, 47473, 47476, 47478, 47483,
- 47490, 47497, 47500, 47504, 47509, 47514, 47522, 47528, 47534, 47546,
- 47553, 47560, 47565, 47570, 47576, 47579, 47582, 47587, 47589, 47593,
- 47595, 47597, 47599, 47601, 47603, 47605, 47610, 47612, 47614, 47616,
- 47618, 47622, 47624, 47627, 47632, 47637, 47642, 47647, 47653, 47659,
- 47661, 47664, 47671, 47678, 47685, 47692, 47696, 47700, 47702, 47704,
- 47708, 47714, 47719, 47721, 47725, 47734, 47742, 47750, 47756, 47762,
- 47767, 47773, 47778, 47781, 47795, 47798, 47803, 47808, 47814, 47824,
- 47826, 47832, 47838, 47842, 47849, 47853, 47855, 47857, 47861, 47867,
- 47872, 47878, 47880, 47886, 47888, 47894, 47896, 47898, 47903, 47905,
- 47909, 47914, 47916, 47921, 47926, 47930, 47937, 0, 47947, 47953, 47956,
- 47962, 47965, 47970, 47975, 47979, 47981, 47983, 47987, 47991, 47995,
- 47999, 48004, 48006, 48011, 48014, 48017, 48020, 48024, 48028, 48033,
- 48037, 48042, 48047, 48051, 48056, 48062, 48065, 48071, 48076, 48080,
- 48085, 48091, 48097, 48104, 48110, 48117, 48124, 48126, 48133, 48137,
- 48143, 48149, 48154, 48160, 48164, 48169, 48172, 48177, 48183, 48190,
- 48198, 48205, 48214, 48224, 48231, 48237, 48241, 48248, 48253, 48262,
- 48265, 48268, 48277, 48287, 48294, 48296, 48302, 48307, 48309, 48312,
- 48316, 48324, 48333, 48336, 48341, 48346, 48354, 48362, 48370, 48378,
- 48384, 48390, 48396, 48404, 48409, 48412, 48416, 48419, 48431, 48441,
- 48452, 48461, 48472, 48482, 48491, 48497, 48505, 48509, 48517, 48521,
- 48529, 48536, 48543, 48552, 48561, 48571, 48581, 48591, 48601, 48610,
- 48619, 48629, 48639, 48648, 48657, 48663, 48669, 48675, 48681, 48687,
- 48693, 48699, 48705, 48711, 48718, 48724, 48730, 48736, 48742, 48748,
- 48754, 48760, 48766, 48772, 48779, 48786, 48793, 48800, 48807, 48814,
- 48821, 48828, 48835, 48842, 48850, 48855, 48858, 48862, 48866, 48872,
- 48875, 48881, 48887, 48892, 48896, 48901, 48907, 48914, 48917, 48924,
- 48931, 48935, 48944, 48953, 48958, 48964, 48969, 48974, 48981, 48988,
- 48996, 49004, 49013, 49017, 49026, 49031, 49035, 49042, 49046, 49053,
- 49061, 49066, 49074, 49078, 49083, 49087, 49092, 49096, 49101, 49106,
- 49115, 49117, 49120, 49123, 49130, 49137, 49142, 49150, 49156, 49162,
- 49167, 49170, 49175, 49180, 49185, 49193, 49197, 49204, 49212, 49220,
- 49225, 49230, 49236, 49241, 49246, 49252, 49257, 49260, 49264, 49268,
- 49275, 49284, 49289, 49298, 49307, 49313, 49319, 49324, 49329, 49334,
- 49339, 49345, 49351, 49359, 49367, 49373, 49379, 49384, 49389, 49396,
- 49403, 49409, 49412, 49415, 49419, 49423, 49427, 49432, 49438, 49444,
- 49451, 49458, 49463, 49467, 49471, 49475, 49479, 49483, 49487, 49491,
- 49495, 49499, 49503, 49507, 49511, 49515, 49519, 49523, 49527, 49531,
- 49535, 49539, 49543, 49547, 49551, 49555, 49559, 49563, 49567, 49571,
- 49575, 49579, 49583, 49587, 49591, 49595, 49599, 49603, 49607, 49611,
- 49615, 49619, 49623, 49627, 49631, 49635, 49639, 49643, 49647, 49651,
- 49655, 49659, 49663, 49667, 49671, 49675, 49679, 49683, 49687, 49691,
- 49695, 49699, 49703, 49707, 49711, 49715, 49719, 49723, 49727, 49731,
- 49735, 49739, 49743, 49747, 49751, 49755, 49759, 49763, 49767, 49771,
- 49775, 49779, 49783, 49787, 49791, 49795, 49799, 49803, 49807, 49811,
- 49815, 49819, 49823, 49827, 49831, 49835, 49839, 49843, 49847, 49851,
- 49855, 49859, 49863, 49867, 49871, 49875, 49879, 49883, 49887, 49891,
- 49895, 49899, 49903, 49907, 49911, 49915, 49919, 49923, 49927, 49931,
- 49935, 49939, 49943, 49947, 49951, 49955, 49959, 49963, 49967, 49971,
- 49975, 49979, 49983, 49987, 49991, 49995, 49999, 50003, 50007, 50011,
- 50015, 50019, 50023, 50027, 50031, 50035, 50039, 50043, 50047, 50051,
- 50055, 50059, 50063, 50067, 50071, 50075, 50079, 50083, 50087, 50091,
- 50095, 50099, 50103, 50107, 50111, 50115, 50119, 50123, 50127, 50131,
- 50135, 50139, 50143, 50147, 50151, 50155, 50159, 50163, 50167, 50171,
- 50175, 50179, 50183, 50187, 50191, 50195, 50199, 50203, 50207, 50211,
- 50215, 50219, 50223, 50227, 50231, 50235, 50239, 50243, 50247, 50251,
- 50255, 50259, 50263, 50267, 50271, 50275, 50279, 50283, 50287, 50291,
- 50295, 50299, 50303, 50307, 50311, 50315, 50319, 50323, 50327, 50331,
- 50335, 50339, 50343, 50347, 50351, 50355, 50359, 50363, 50367, 50371,
- 50375, 50379, 50383, 50387, 50391, 50395, 50399, 50403, 50407, 50411,
- 50415, 50419, 50423, 50427, 50431, 50435, 50439, 50443, 50447, 50451,
- 50455, 50459, 50463, 50467, 50471, 50475, 50479, 50483, 50487, 50494,
- 50502, 50508, 50514, 50521, 50528, 50534, 50540, 50546, 50552, 50557,
- 50562, 50567, 50572, 50578, 50584, 50592, 50599, 50605, 50611, 50619,
- 50628, 50635, 50645, 50656, 50659, 50662, 50666, 50670, 50677, 50684,
- 50695, 50706, 50716, 50726, 50733, 50740, 50747, 50754, 50765, 50776,
- 50787, 50798, 50808, 50818, 50830, 50842, 50853, 50864, 50876, 50888,
- 50897, 50907, 50917, 50928, 50939, 50946, 50953, 50960, 50967, 50977,
- 50987, 50995, 51003, 51010, 51017, 51024, 51031, 51038, 51043, 51048,
- 51054, 51062, 51072, 51082, 51092, 51102, 51112, 51122, 51132, 51142,
- 51152, 51162, 51172, 51183, 51194, 51204, 51214, 51225, 51236, 51246,
- 51256, 51267, 51278, 51288, 51298, 51309, 51320, 51336, 51355, 51371,
- 51390, 51406, 51422, 51438, 51454, 51465, 51477, 51488, 51500, 51519,
- 51538, 51546, 51552, 51559, 51566, 51573, 51580, 51585, 51591, 51596,
- 51601, 51607, 51612, 51617, 51622, 51627, 51632, 51639, 51644, 51651,
- 51656, 51661, 51665, 51669, 51676, 51683, 51690, 51697, 51704, 51711,
- 51724, 51737, 51750, 51763, 51771, 51779, 51785, 51791, 51798, 51805,
- 51812, 51819, 51823, 51828, 51836, 51844, 51852, 51859, 51863, 51871,
- 51879, 51883, 51887, 51892, 51899, 51907, 51915, 51934, 51953, 51972,
- 51991, 52010, 52029, 52048, 52067, 52073, 52080, 52089, 52097, 52105,
- 52110, 52113, 52116, 52121, 52124, 52143, 52150, 52156, 52162, 52166,
- 52169, 52172, 52175, 52187, 52200, 52207, 52214, 52217, 52221, 52224,
- 52229, 52234, 52239, 52245, 52254, 52261, 52268, 52276, 52283, 52290,
- 52293, 52299, 52305, 52308, 52311, 52316, 52321, 52327, 52333, 52337,
- 52342, 52349, 52353, 52359, 52363, 52367, 52375, 52387, 52396, 52400,
- 52402, 52411, 52420, 52426, 52429, 52435, 52441, 52446, 52451, 52456,
- 52461, 52466, 52471, 52473, 52479, 52484, 52491, 52495, 52501, 52504,
- 52508, 52515, 52522, 52524, 52526, 52532, 52538, 52544, 52553, 52562,
- 52569, 52576, 52582, 52588, 52593, 52598, 52603, 52609, 52615, 52620,
- 52627, 52631, 52635, 52648, 52661, 52673, 52682, 52688, 52695, 52700,
- 52705, 52710, 52715, 52720, 52722, 52729, 52736, 52743, 52750, 52757,
- 52765, 52771, 52776, 52782, 52788, 52794, 52801, 52807, 52815, 52823,
- 52831, 52839, 52846, 52852, 52858, 52867, 52871, 52880, 52889, 52898,
- 52906, 52910, 52916, 52923, 52930, 52934, 52940, 52947, 52952, 52957,
- 52963, 52968, 52973, 52980, 52987, 52992, 52997, 53005, 53013, 53023,
- 53033, 53040, 53047, 53051, 53055, 53067, 53073, 53079, 53084, 53089,
- 53096, 53103, 53109, 53115, 53124, 53132, 53140, 53147, 53154, 53161,
- 53167, 53174, 53180, 53187, 53194, 53201, 53208, 53214, 53219, 53228,
- 53238, 53245, 53254, 53260, 53265, 53270, 53280, 53286, 53292, 53298,
- 53306, 53311, 53318, 53325, 53336, 53343, 53350, 53357, 53364, 53371,
- 53378, 53385, 53397, 53409, 53420, 53431, 53444, 53457, 53462, 53467,
- 53476, 53485, 53492, 53499, 53508, 53517, 53525, 53533, 53541, 53549,
- 53559, 53569, 53583, 53597, 53605, 53613, 53625, 53637, 53645, 53653,
- 53663, 53673, 53678, 53683, 53692, 53701, 53706, 53711, 53719, 53725,
- 53731, 53739, 53747, 53760, 53773, 53777, 53781, 53788, 53795, 53802,
- 53810, 53818, 53827, 53836, 53842, 53848, 53855, 53862, 53869, 53876,
- 53885, 53894, 53897, 53900, 53905, 53910, 53916, 53922, 53929, 53936,
- 53946, 53956, 53963, 53970, 53978, 53986, 53994, 54002, 54010, 54018,
- 54024, 54030, 54034, 54038, 54045, 54052, 54057, 54062, 54067, 54072,
- 54078, 54092, 54099, 54106, 54110, 54112, 54114, 54119, 54124, 54129,
- 54134, 54142, 54149, 54156, 54164, 54176, 54184, 54192, 54203, 54207,
- 54211, 54217, 54225, 54238, 54245, 54252, 54259, 54264, 54271, 54280,
- 54288, 54294, 54300, 54306, 54315, 54324, 54332, 54341, 54346, 54349,
- 54354, 54360, 54366, 54372, 54378, 54382, 54385, 54389, 54393, 54399,
- 54405, 54411, 54417, 54421, 54425, 54432, 54439, 54446, 54453, 54460,
- 54467, 54477, 54487, 54494, 54501, 54509, 54517, 54521, 54526, 54531,
- 54537, 54543, 54546, 54549, 54552, 54555, 54559, 54564, 54569, 54574,
- 54579, 54584, 54588, 54592, 54596, 54600, 54604, 54608, 54612, 54618,
- 54622, 54628, 54633, 54640, 54648, 54655, 54663, 54670, 54678, 54687,
- 54694, 54704, 54715, 54721, 54730, 54736, 54745, 54754, 54760, 54766,
- 54770, 54774, 54783, 54792, 54799, 54806, 54815, 0, 0, 0, 54824, 54829,
- 54833, 54837, 54842, 54847, 54852, 54860, 54868, 54871, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54875, 54880, 54885,
- 54890, 54895, 54900, 54905, 54910, 54915, 54920, 54925, 54931, 54935,
- 54940, 54945, 54950, 54955, 54960, 54965, 54970, 54975, 54980, 54985,
- 54990, 54995, 55000, 55005, 55010, 55015, 55020, 55025, 55030, 55035,
- 55040, 55045, 55051, 55056, 55062, 55071, 55076, 55084, 55091, 55100,
- 55105, 55110, 55115, 55121, 0, 55128, 55133, 55138, 55143, 55148, 55153,
- 55158, 55163, 55168, 55173, 55178, 55184, 55188, 55193, 55198, 55203,
- 55208, 55213, 55218, 55223, 55228, 55233, 55238, 55243, 55248, 55253,
- 55258, 55263, 55268, 55273, 55278, 55283, 55288, 55293, 55298, 55304,
- 55309, 55315, 55324, 55329, 55337, 55344, 55353, 55358, 55363, 55368,
- 55374, 0, 55381, 55389, 55397, 55406, 55413, 55421, 55427, 55436, 55444,
- 55452, 55460, 55468, 55476, 55484, 55489, 55496, 55502, 55509, 55517,
- 55524, 55531, 55539, 55545, 55551, 55558, 55565, 55575, 55585, 55592,
- 55599, 55604, 55614, 55624, 55629, 55634, 55639, 55644, 55649, 55654,
- 55659, 55664, 55669, 55674, 55679, 55684, 55689, 55694, 55699, 55704,
- 55709, 55714, 55719, 55724, 55729, 55734, 55739, 55744, 55749, 55754,
- 55759, 55764, 55769, 55774, 55778, 55782, 55787, 55792, 55797, 55802,
- 55807, 55812, 55817, 55822, 55827, 55832, 55837, 55842, 55847, 55852,
- 55857, 55862, 55867, 55872, 55879, 55886, 55893, 55900, 55907, 55914,
- 55921, 55928, 55935, 55942, 55949, 55956, 55963, 55970, 55975, 55980,
- 55987, 55994, 56001, 56008, 56015, 56022, 56029, 56036, 56043, 56050,
- 56057, 56064, 56070, 56076, 56082, 56088, 56095, 56102, 56109, 56116,
- 56123, 56130, 56137, 56144, 56151, 56158, 56166, 56174, 56182, 56190,
- 56198, 56206, 56214, 56222, 56226, 56232, 56238, 56242, 56248, 56254,
- 56260, 56267, 56274, 56281, 56288, 56293, 56299, 56305, 56312, 0, 0, 0,
- 0, 0, 56319, 56327, 56336, 56345, 56353, 56359, 56364, 56369, 56374,
- 56379, 56384, 56389, 56394, 56399, 56404, 56409, 56414, 56419, 56424,
- 56429, 56434, 56439, 56444, 56449, 56454, 56459, 56464, 56469, 56474,
- 56479, 56484, 56489, 56494, 56499, 56504, 56509, 56514, 56519, 56524,
- 56529, 56534, 56539, 56544, 56549, 56554, 0, 56559, 0, 0, 0, 0, 0, 56564,
- 0, 0, 56569, 56573, 56578, 56583, 56588, 56593, 56602, 56607, 56612,
- 56617, 56622, 56627, 56632, 56637, 56642, 56649, 56654, 56659, 56668,
- 56675, 56680, 56685, 56690, 56697, 56702, 56709, 56714, 56719, 56726,
- 56733, 56738, 56743, 56748, 56755, 56762, 56767, 56772, 56777, 56782,
- 56787, 56794, 56801, 56806, 56811, 56816, 56821, 56826, 56831, 56836,
- 56841, 56846, 56851, 56856, 56863, 56868, 56873, 0, 0, 0, 0, 0, 0, 0,
- 56878, 56885, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56890, 56895,
- 56899, 56903, 56907, 56911, 56915, 56919, 56923, 56927, 56931, 56935,
- 56941, 56945, 56949, 56953, 56957, 56961, 56965, 56969, 56973, 56977,
- 56981, 56985, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56989, 56993, 56997, 57001,
- 57005, 57009, 57013, 0, 57017, 57021, 57025, 57029, 57033, 57037, 57041,
- 0, 57045, 57049, 57053, 57057, 57061, 57065, 57069, 0, 57073, 57077,
- 57081, 57085, 57089, 57093, 57097, 0, 57101, 57105, 57109, 57113, 57117,
- 57121, 57125, 0, 57129, 57133, 57137, 57141, 57145, 57149, 57153, 0,
- 57157, 57161, 57165, 57169, 57173, 57177, 57181, 0, 57185, 57189, 57193,
- 57197, 57201, 57205, 57209, 0, 57213, 57218, 57223, 57228, 57233, 57238,
- 57243, 57247, 57252, 57257, 57262, 57266, 57271, 57276, 57281, 57286,
- 57290, 57295, 57300, 57305, 57310, 57315, 57320, 57324, 57329, 57334,
- 57341, 57346, 57351, 57357, 57364, 57371, 57380, 57387, 57396, 57400,
- 57404, 57410, 57416, 57422, 57430, 57436, 57440, 57444, 57448, 57454,
- 57460, 57464, 57466, 57470, 57476, 57478, 57482, 57486, 57490, 57496,
- 57501, 57505, 57509, 57514, 57520, 57525, 57530, 57535, 57540, 57547,
- 57554, 57559, 57564, 57569, 57574, 57579, 57584, 57588, 57592, 57599,
- 57606, 57612, 57616, 57621, 57623, 57627, 57635, 57639, 57643, 57647,
- 57651, 57657, 57663, 57667, 57673, 57677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57681, 57685, 57689, 57694, 57699, 57704,
- 57708, 57712, 57716, 57721, 57726, 57730, 57734, 57738, 57742, 57747,
- 57752, 57757, 57762, 57766, 57770, 57775, 57780, 57785, 57790, 57794, 0,
- 57798, 57802, 57806, 57810, 57814, 57818, 57822, 57827, 57832, 57836,
- 57841, 57846, 57855, 57859, 57863, 57867, 57874, 57878, 57883, 57888,
- 57892, 57896, 57902, 57907, 57912, 57917, 57922, 57926, 57930, 57934,
- 57938, 57942, 57947, 57952, 57956, 57960, 57965, 57970, 57975, 57979,
- 57983, 57988, 57993, 57999, 58005, 58009, 58015, 58021, 58025, 58031,
- 58037, 58042, 58047, 58051, 58057, 58061, 58065, 58071, 58077, 58082,
- 58087, 58091, 58095, 58103, 58109, 58115, 58121, 58126, 58131, 58136,
- 58142, 58146, 58152, 58156, 58160, 58166, 58172, 58178, 58184, 58190,
- 58196, 58202, 58208, 58214, 58220, 58226, 58232, 58236, 58242, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 58248, 58251, 58255, 58259, 58263, 58267,
- 58270, 58273, 58277, 58281, 58285, 58289, 58292, 58297, 58301, 58305,
- 58309, 58314, 58318, 58322, 58326, 58330, 58336, 58342, 58346, 58350,
- 58354, 58358, 58362, 58366, 58370, 58374, 58378, 58382, 58386, 58392,
- 58396, 58400, 58404, 58408, 58412, 58416, 58420, 58424, 58428, 58432,
- 58436, 58440, 58444, 58448, 58452, 58456, 58462, 58468, 58473, 58478,
- 58482, 58486, 58490, 58494, 58498, 58502, 58506, 58510, 58514, 58518,
- 58522, 58526, 58530, 58534, 58538, 58542, 58546, 58550, 58554, 58558,
- 58562, 58566, 58570, 58574, 58580, 58584, 58588, 58592, 58596, 58600,
- 58604, 58608, 58612, 58617, 58624, 58628, 58632, 58636, 58640, 58644,
- 58648, 58652, 58656, 58660, 58664, 58668, 58672, 58679, 58683, 58689,
- 58693, 58697, 58701, 58705, 58709, 58712, 58716, 58720, 58724, 58728,
- 58732, 58736, 58740, 58744, 58748, 58752, 58756, 58760, 58764, 58768,
- 58772, 58776, 58780, 58784, 58788, 58792, 58796, 58800, 58804, 58808,
- 58812, 58816, 58820, 58824, 58828, 58832, 58836, 58840, 58846, 58850,
- 58854, 58858, 58862, 58866, 58870, 58874, 58878, 58882, 58886, 58890,
- 58894, 58898, 58902, 58906, 58910, 58914, 58918, 58922, 58926, 58930,
- 58934, 58938, 58942, 58946, 58950, 58954, 58962, 58966, 58970, 58974,
- 58978, 58982, 58988, 58992, 58996, 59000, 59004, 59008, 59012, 59016,
- 59020, 59024, 59028, 59032, 59036, 59040, 59046, 59050, 59054, 59058,
- 59062, 59066, 59070, 59074, 59078, 59082, 59086, 59090, 59094, 59098,
- 59102, 59106, 59110, 59114, 59118, 59122, 59126, 59130, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59134, 59143,
- 59151, 59163, 59174, 59182, 59191, 59200, 59210, 59222, 59234, 59246, 0,
- 0, 0, 0, 59252, 59255, 59258, 59263, 59266, 59273, 59277, 59281, 59285,
- 59289, 59293, 59298, 59303, 59307, 59311, 59316, 59321, 59326, 59331,
- 59334, 59337, 59343, 59349, 59354, 59359, 59366, 59373, 59377, 59381,
- 59385, 59393, 59399, 59406, 59411, 59416, 59421, 59426, 59431, 59436,
- 59441, 59446, 59451, 59456, 59461, 59466, 59471, 59476, 59482, 59487,
- 59491, 59497, 59508, 59518, 59533, 59543, 59547, 59557, 59563, 59569,
- 59575, 59580, 59583, 59588, 59592, 0, 59598, 59602, 59605, 59609, 59612,
- 59616, 59619, 59623, 59626, 59630, 59633, 59636, 59640, 59644, 59648,
- 59652, 59656, 59660, 59664, 59668, 59672, 59675, 59679, 59683, 59687,
- 59691, 59695, 59699, 59703, 59707, 59711, 59715, 59719, 59723, 59727,
- 59732, 59736, 59740, 59744, 59748, 59751, 59755, 59758, 59762, 59766,
- 59770, 59774, 59777, 59781, 59784, 59788, 59792, 59796, 59800, 59804,
- 59808, 59812, 59816, 59820, 59824, 59828, 59832, 59835, 59839, 59843,
- 59847, 59851, 59855, 59858, 59863, 59867, 59872, 59876, 59879, 59883,
- 59887, 59891, 59895, 59900, 59904, 59908, 59912, 59916, 59920, 59924,
- 59928, 0, 0, 59933, 59941, 59949, 59956, 59963, 59967, 59973, 59978,
- 59983, 59987, 59990, 59994, 59997, 60001, 60004, 60008, 60011, 60015,
- 60018, 60021, 60025, 60029, 60033, 60037, 60041, 60045, 60049, 60053,
- 60057, 60060, 60064, 60068, 60072, 60076, 60080, 60084, 60088, 60092,
- 60096, 60100, 60104, 60108, 60112, 60117, 60121, 60125, 60129, 60133,
- 60136, 60140, 60143, 60147, 60151, 60155, 60159, 60162, 60166, 60169,
- 60173, 60177, 60181, 60185, 60189, 60193, 60197, 60201, 60205, 60209,
- 60213, 60217, 60220, 60224, 60228, 60232, 60236, 60240, 60243, 60248,
- 60252, 60257, 60261, 60264, 60268, 60272, 60276, 60280, 60285, 60289,
- 60293, 60297, 60301, 60305, 60309, 60313, 60318, 60322, 60326, 60330,
- 60334, 60339, 60346, 60350, 60356, 0, 0, 0, 0, 0, 60361, 60366, 60371,
- 60375, 60380, 60385, 60390, 60395, 60399, 60404, 60409, 60414, 60419,
- 60424, 60429, 60434, 60439, 60444, 60448, 60453, 60458, 60463, 60467,
- 60471, 60475, 60480, 60485, 60490, 60495, 60500, 60505, 60510, 60515,
- 60520, 60525, 60529, 60533, 60538, 60543, 60548, 60553, 0, 0, 0, 60558,
- 60562, 60566, 60570, 60574, 60578, 60582, 60586, 60590, 60594, 60598,
- 60602, 60606, 60610, 60614, 60618, 60622, 60626, 60630, 60634, 60638,
- 60642, 60646, 60650, 60654, 60658, 60662, 60666, 60670, 60674, 60678,
- 60681, 60685, 60688, 60692, 60696, 60699, 60703, 60707, 60710, 60714,
- 60718, 60722, 60726, 60729, 60733, 60737, 60741, 60745, 60749, 60753,
- 60756, 60759, 60763, 60767, 60771, 60775, 60779, 60783, 60787, 60791,
- 60795, 60799, 60803, 60807, 60811, 60815, 60819, 60823, 60827, 60831,
- 60835, 60839, 60843, 60847, 60851, 60855, 60859, 60863, 60867, 60871,
- 60875, 60879, 60883, 60887, 60891, 60895, 60899, 60903, 60907, 60911,
- 60915, 60919, 60923, 0, 60927, 60933, 60939, 60944, 60949, 60954, 60960,
- 60966, 60972, 60978, 60984, 60990, 60996, 61002, 61008, 61014, 61020,
- 61025, 61030, 61035, 61040, 61045, 61050, 61055, 61060, 61065, 61070,
- 61075, 61080, 61085, 61090, 61095, 61100, 61105, 61110, 61115, 61120,
- 61126, 61132, 61138, 61144, 61149, 61154, 0, 0, 0, 0, 0, 61159, 61164,
- 61169, 61174, 61179, 61184, 61189, 61194, 61199, 61204, 61209, 61214,
- 61219, 61224, 61229, 61234, 61239, 61244, 61249, 61254, 61259, 61264,
- 61269, 61274, 61279, 61284, 61289, 61294, 61299, 61304, 61309, 61314,
- 61319, 61324, 61329, 61334, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61339,
- 61344, 61349, 61354, 61358, 61363, 61367, 61372, 61377, 61382, 61387,
- 61392, 61396, 61401, 61406, 61411, 61416, 61420, 61424, 61428, 61432,
- 61436, 61440, 61444, 61448, 61452, 61456, 61460, 61464, 61468, 61472,
- 61477, 61482, 61487, 61492, 61497, 61502, 61507, 61512, 61517, 61522,
- 61527, 61532, 61537, 61542, 61547, 61553, 0, 61560, 61563, 61566, 61569,
- 61572, 61575, 61578, 61581, 61584, 61587, 61591, 61595, 61599, 61603,
- 61607, 61611, 61615, 61619, 61623, 61627, 61631, 61635, 61639, 61643,
- 61647, 61651, 61655, 61659, 61663, 61667, 61671, 61675, 61679, 61683,
- 61687, 61691, 61695, 61699, 61703, 61707, 61711, 61720, 61729, 61738,
- 61747, 61756, 61765, 61774, 61783, 61786, 61791, 61796, 61801, 61806,
- 61811, 61816, 61821, 61826, 61831, 61835, 61840, 61845, 61850, 61855,
- 61860, 61864, 61868, 61872, 61876, 61880, 61884, 61888, 61892, 61896,
- 61900, 61904, 61908, 61912, 61916, 61921, 61926, 61931, 61936, 61941,
- 61946, 61951, 61956, 61961, 61966, 61971, 61976, 61981, 61986, 61992,
- 61998, 62003, 62008, 62011, 62014, 62017, 62020, 62023, 62026, 62029,
- 62032, 62035, 62039, 62043, 62047, 62051, 62055, 62059, 62063, 62067,
- 62071, 62075, 62079, 62083, 62087, 62091, 62095, 62099, 62103, 62107,
- 62111, 62115, 62119, 62123, 62127, 62131, 62135, 62139, 62143, 62147,
- 62151, 62155, 62159, 62163, 62167, 62171, 62175, 62179, 62183, 62187,
- 62191, 62195, 62200, 62205, 62210, 62215, 62219, 62224, 62229, 62234,
- 62239, 62244, 62249, 62254, 62259, 62264, 62268, 62275, 62282, 62289,
- 62296, 62303, 62310, 62317, 62324, 62331, 62338, 62345, 62352, 62355,
- 62358, 62361, 62366, 62369, 62372, 62375, 62378, 62381, 62384, 62388,
- 62392, 62396, 62400, 62403, 62407, 62411, 62415, 62419, 62423, 62427,
- 62431, 62435, 62438, 62441, 62445, 62449, 62453, 62457, 62460, 62464,
- 62468, 62472, 62476, 62479, 62483, 62487, 62491, 62495, 62498, 62502,
- 62506, 62509, 62513, 62517, 62521, 62525, 62529, 62533, 62537, 0, 62541,
- 62544, 62547, 62550, 62553, 62556, 62559, 62562, 62565, 62568, 62571,
- 62574, 62577, 62580, 62583, 62586, 62589, 62592, 62595, 62598, 62601,
- 62604, 62607, 62610, 62613, 62616, 62619, 62622, 62625, 62628, 62631,
- 62634, 62637, 62640, 62643, 62646, 62649, 62652, 62655, 62658, 62661,
- 62664, 62667, 62670, 62673, 62676, 62679, 62682, 62685, 62688, 62691,
- 62694, 62697, 62700, 62703, 62706, 62709, 62712, 62715, 62718, 62721,
- 62724, 62727, 62730, 62733, 62736, 62739, 62742, 62745, 62748, 62751,
- 62754, 62757, 62760, 62763, 62766, 62769, 62772, 62775, 62778, 62781,
- 62784, 62787, 62790, 62793, 62796, 62799, 62802, 62805, 62814, 62822,
- 62830, 62838, 62846, 62854, 62862, 62870, 62878, 62886, 62895, 62904,
- 62913, 62922, 62931, 62940, 62949, 62958, 62967, 62976, 62985, 62994,
- 63003, 63012, 63021, 63024, 63027, 63030, 63032, 63035, 63038, 63041,
- 63046, 63051, 63054, 63061, 63068, 63075, 63082, 63085, 63090, 63092,
- 63096, 63098, 63100, 63103, 63106, 63109, 63112, 63115, 63118, 63121,
- 63126, 63131, 63134, 63137, 63140, 63143, 63146, 63149, 63152, 63156,
- 63159, 63162, 63165, 63168, 63171, 63175, 63178, 63181, 63184, 63189,
- 63194, 63199, 63204, 63209, 63214, 63219, 63224, 63230, 63238, 63240,
- 63243, 63246, 63249, 63252, 63258, 63266, 63269, 63272, 63277, 63280,
- 63283, 63286, 63291, 63294, 63297, 63302, 63305, 63308, 63313, 63316,
- 63319, 63324, 63329, 63334, 63337, 63340, 63343, 63346, 63352, 63355,
- 63358, 63361, 63363, 63366, 63369, 63372, 63377, 63380, 63383, 63386,
- 63389, 63392, 63397, 63400, 63403, 63406, 63409, 63412, 63415, 63418,
- 63421, 63424, 63429, 63433, 63441, 63449, 63457, 63465, 63473, 63481,
- 63489, 63497, 63505, 63514, 63523, 63532, 63541, 63550, 63559, 63568,
- 63577, 63586, 63595, 63604, 63613, 63622, 63631, 63640, 63649, 63658,
- 63667, 63676, 63685, 63694, 63703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63706, 63715, 63724, 63735, 63742, 63747, 63752, 63759, 63766,
- 63772, 63777, 63782, 63787, 63792, 63799, 63804, 63809, 63814, 63825,
- 63830, 63835, 63842, 63847, 63854, 63859, 63864, 63871, 63878, 63885,
- 63894, 63903, 63908, 63913, 63918, 63925, 63930, 63940, 63947, 63952,
- 63957, 63962, 63967, 63972, 63977, 63986, 63993, 64000, 64005, 64012,
- 64017, 64024, 64033, 64044, 64049, 64058, 64063, 64070, 64079, 64088,
- 64093, 64098, 64105, 64111, 64118, 64125, 64129, 64133, 64136, 64140,
- 64144, 64148, 64152, 64156, 64160, 64164, 64167, 64171, 64175, 64179,
- 64183, 64187, 64191, 64194, 64198, 64202, 64205, 64209, 64213, 64217,
- 64221, 64225, 64229, 64233, 64237, 64241, 64245, 64249, 64253, 64257,
- 64261, 64265, 64269, 64273, 64277, 64281, 64285, 64289, 64293, 64297,
- 64301, 64305, 64309, 64313, 64317, 64321, 64325, 64329, 64333, 64337,
- 64341, 64345, 64349, 64353, 64357, 64361, 64365, 64369, 64373, 64377,
- 64381, 64384, 64388, 64392, 64396, 64400, 64404, 64408, 64412, 64416,
- 64420, 64424, 64428, 64432, 64436, 64440, 64444, 64448, 64452, 64456,
- 64460, 64464, 64468, 64472, 64476, 64480, 64484, 64488, 64492, 64496,
- 64500, 64504, 64508, 64512, 64516, 64520, 64524, 64528, 64532, 64536,
- 64540, 64544, 64548, 64552, 64556, 64560, 64564, 64568, 64572, 64576,
- 64580, 64584, 64588, 64592, 64596, 64600, 64604, 64608, 64612, 64616,
- 64620, 64624, 64628, 64632, 64636, 64640, 64644, 64648, 64652, 64656,
- 64660, 64664, 64668, 64672, 64676, 64680, 64684, 64688, 64692, 64696,
- 64700, 64704, 64708, 64712, 64716, 64720, 64724, 64728, 64732, 64736,
- 64740, 64744, 64748, 64752, 64756, 64760, 64764, 64768, 64772, 64776,
- 64780, 64784, 64788, 64792, 64796, 64800, 64804, 64808, 64812, 64816,
- 64820, 64824, 64828, 64832, 64836, 64840, 64844, 64848, 64852, 64855,
- 64859, 64863, 64867, 64871, 64875, 64879, 64883, 64887, 64891, 64895,
- 64899, 64903, 64907, 64911, 64915, 64919, 64923, 64927, 64931, 64935,
- 64939, 64943, 64947, 64951, 64955, 64959, 64963, 64967, 64971, 64975,
- 64979, 64983, 64987, 64991, 64995, 64999, 65003, 65007, 65011, 65015,
- 65019, 65023, 65027, 65031, 65035, 65039, 65043, 65047, 65051, 65055,
- 65059, 65063, 65067, 65071, 65075, 65079, 65083, 65087, 65091, 65095,
- 65099, 65103, 65107, 65111, 65115, 65119, 65123, 65127, 65131, 65135,
- 65139, 65143, 65147, 65151, 65155, 65159, 65163, 65167, 65171, 65175,
- 65179, 65183, 65187, 65191, 65195, 65199, 65203, 65207, 65211, 65215,
- 65219, 65223, 65227, 65231, 65235, 65239, 65243, 65247, 65251, 65255,
- 65259, 65263, 65267, 65271, 65275, 65279, 65283, 65287, 65291, 65295,
- 65299, 65303, 65307, 65311, 65315, 65318, 65322, 65326, 65330, 65334,
- 65338, 65342, 65346, 65350, 65354, 65358, 65362, 65366, 65370, 65374,
- 65378, 65382, 65386, 65390, 65394, 65398, 65402, 65406, 65410, 65414,
- 65418, 65422, 65426, 65430, 65434, 65438, 65442, 65446, 65450, 65454,
- 65458, 65462, 65466, 65470, 65474, 65478, 65482, 65486, 65490, 65494,
- 65498, 65502, 65506, 65510, 65514, 65518, 65522, 65526, 65530, 65534,
- 65538, 65542, 65546, 65550, 65554, 65558, 65562, 65566, 65570, 65574,
- 65578, 65582, 65586, 65590, 65594, 65598, 65602, 65606, 65610, 65614,
- 65618, 65622, 65626, 65630, 65634, 65638, 65642, 65646, 65650, 65654,
- 65658, 65662, 65666, 65670, 65674, 65677, 65681, 65685, 65689, 65693,
- 65697, 65701, 65705, 65709, 65713, 65717, 65721, 65725, 65729, 65733,
- 65737, 65741, 65745, 65749, 65753, 65757, 65761, 65765, 65769, 65773,
- 65777, 65781, 65785, 65789, 65793, 65797, 65801, 65805, 65809, 65813,
- 65817, 65821, 65825, 65829, 65833, 65837, 65841, 65845, 65849, 65853,
- 65857, 65861, 65865, 65869, 65873, 65877, 65881, 65885, 65889, 65893,
- 65897, 65901, 65905, 65909, 65913, 65917, 65921, 65925, 65929, 65933,
- 65937, 65941, 65945, 65949, 65953, 65957, 65961, 65965, 65969, 65973,
- 65977, 65981, 65985, 65989, 65993, 65997, 66001, 66005, 66009, 66013,
- 66017, 66021, 66025, 66029, 66033, 66037, 66041, 66045, 66049, 66053,
- 66057, 66061, 66065, 66069, 66073, 66077, 66081, 66085, 66089, 66093,
- 66097, 66101, 66105, 66109, 66113, 66117, 66121, 66125, 66129, 66133,
- 66137, 66141, 66145, 66149, 66153, 66157, 66161, 66165, 66169, 66172,
- 66176, 66180, 66184, 66188, 66192, 66196, 66200, 66204, 66208, 66212,
- 66216, 66220, 66224, 66228, 66232, 66236, 66240, 66244, 66248, 66252,
- 66256, 66260, 66264, 66268, 66272, 66276, 66280, 66284, 66288, 66292,
- 66296, 66300, 66304, 66308, 66312, 66316, 66320, 66324, 66328, 66332,
- 66336, 66340, 66344, 66348, 66352, 66356, 66360, 66364, 66368, 66372,
- 66376, 66380, 66384, 66388, 66392, 66396, 66400, 66404, 66408, 66412,
- 66416, 66420, 66424, 66428, 66432, 66436, 66440, 66444, 66448, 66452,
- 66456, 66460, 66464, 66468, 66472, 66476, 66480, 66484, 66488, 66492,
- 66496, 66500, 66504, 66508, 66512, 66516, 66520, 66524, 66528, 66532,
- 66536, 66540, 66544, 66548, 66552, 66556, 66560, 66564, 66568, 66572,
- 66576, 66580, 66584, 66588, 66592, 66596, 66600, 66604, 66608, 66612,
- 66616, 66620, 66624, 66627, 66631, 66635, 66639, 66643, 66647, 66651,
- 66655, 66659, 66663, 66667, 66671, 66675, 66679, 66683, 66687, 66691,
- 66695, 66699, 66703, 66707, 66711, 66715, 66719, 66723, 66727, 66731,
- 66735, 66739, 66743, 66747, 66751, 66755, 66759, 66763, 66767, 66771,
- 66775, 66779, 66783, 66787, 66791, 66795, 66799, 66803, 66807, 66811,
- 66815, 66819, 66823, 66827, 66831, 66835, 66839, 66843, 66847, 66851,
- 66855, 66859, 66863, 66867, 66871, 66875, 66879, 66883, 66887, 66891,
- 66895, 66899, 66903, 66907, 66911, 66915, 66919, 66923, 66927, 66931,
- 66935, 66939, 66943, 66947, 66951, 66955, 66959, 66963, 66967, 66971,
- 66975, 66979, 66983, 66987, 66991, 66995, 66999, 67003, 67007, 67011,
- 67015, 67019, 67023, 67027, 67031, 67035, 67039, 67043, 67047, 67051,
- 67055, 67059, 67063, 67067, 67071, 67075, 67079, 67083, 67087, 67091,
- 67095, 67099, 67103, 67107, 67111, 67115, 67119, 67123, 67127, 67131,
- 67135, 67139, 67143, 67147, 67151, 67155, 67159, 67163, 67167, 67171,
- 67175, 67179, 67183, 67187, 67191, 67195, 67199, 67203, 67207, 67211,
- 67215, 67219, 67223, 67227, 67230, 67234, 67238, 67242, 67246, 67250,
- 67254, 67258, 67261, 67265, 67269, 67273, 67277, 67281, 67285, 67289,
- 67293, 67297, 67301, 67305, 67309, 67313, 67317, 67321, 67325, 67329,
- 67333, 67337, 67341, 67345, 67349, 67353, 67357, 67361, 67365, 67369,
- 67373, 67377, 67381, 67385, 67389, 67393, 67397, 67401, 67405, 67409,
- 67413, 67417, 67421, 67425, 67429, 67433, 67437, 67441, 67445, 67449,
- 67453, 67457, 67461, 67465, 67469, 67473, 67477, 67481, 67485, 67489,
- 67493, 67497, 67501, 67505, 67509, 67513, 67517, 67521, 67525, 67529,
- 67533, 67537, 67541, 67545, 67549, 67553, 67557, 67561, 67565, 67569,
- 67573, 67577, 67581, 67585, 67589, 67593, 67597, 67601, 67605, 67609,
- 67613, 67617, 67621, 67625, 67629, 67633, 67637, 67641, 67645, 67649,
- 67653, 67657, 67661, 67665, 67669, 67673, 67677, 67681, 67685, 67689,
- 67693, 67697, 67701, 67705, 67709, 67713, 67717, 67721, 67725, 67729,
- 67733, 67737, 67741, 67745, 67749, 67753, 67757, 67761, 67765, 67769,
- 67773, 67777, 67781, 67785, 67789, 67793, 67797, 67801, 67805, 67809,
- 67813, 67817, 67821, 67825, 67829, 67833, 67837, 67841, 67845, 67849,
- 67853, 67857, 67861, 67865, 67869, 67873, 67877, 67881, 67885, 67889,
- 67893, 67897, 67901, 67905, 67909, 67913, 67917, 67921, 67925, 67929,
- 67933, 67937, 67941, 67945, 67949, 67953, 67957, 67961, 67965, 67969,
- 67973, 67977, 67981, 67985, 67988, 67992, 67996, 68000, 68004, 68008,
- 68012, 68016, 68020, 68024, 68028, 68032, 68036, 68040, 68044, 68048,
- 68052, 68056, 68060, 68064, 68068, 68072, 68076, 68080, 68084, 68088,
- 68092, 68096, 68100, 68104, 68108, 68112, 68116, 68120, 68124, 68128,
- 68132, 68136, 68140, 68144, 68148, 68152, 68156, 68160, 68164, 68168,
- 68172, 68176, 68180, 68184, 68188, 68192, 68196, 68200, 68204, 68208,
- 68212, 68216, 68220, 68224, 68228, 68232, 68236, 68240, 68244, 68248,
- 68252, 68256, 68260, 68264, 68268, 68272, 68276, 68280, 68284, 68288,
- 68292, 68296, 68300, 68304, 68308, 68312, 68316, 68320, 68324, 68328,
- 68332, 68336, 68340, 68344, 68348, 68352, 68356, 68360, 68364, 68368,
- 68372, 68376, 68380, 68384, 68388, 68392, 68396, 68400, 68404, 68408,
- 68412, 68416, 68420, 68424, 68428, 68432, 68436, 68440, 68444, 68448,
- 68452, 68456, 68460, 68464, 68468, 68472, 68476, 68480, 68484, 68488,
- 68492, 68496, 68500, 68504, 68508, 68512, 68516, 68520, 68524, 68528,
- 68532, 68536, 68540, 68544, 68548, 68552, 68556, 68560, 68564, 68568,
- 68572, 68576, 68580, 68584, 68588, 68592, 68596, 68600, 68604, 68608,
- 68612, 68616, 68620, 68624, 68628, 68632, 68636, 68640, 68644, 68648,
- 68652, 68656, 68660, 68664, 68668, 68672, 68676, 68680, 68684, 68688,
- 68692, 68696, 68700, 68704, 68708, 68712, 68716, 68720, 68724, 68728,
- 68732, 68736, 68740, 68744, 68748, 68752, 68756, 68760, 68764, 68768, 0,
- 0, 0, 68772, 68776, 68780, 68784, 68788, 68792, 68796, 68800, 68804,
- 68808, 68812, 68816, 68820, 68824, 68828, 68832, 68836, 68840, 68844,
- 68848, 68852, 68856, 68860, 68864, 68868, 68872, 68876, 68880, 68884,
- 68888, 68892, 68896, 68900, 68904, 68908, 68912, 68916, 68920, 68924,
- 68928, 68932, 68936, 68940, 68944, 68948, 68952, 68956, 68960, 68964,
- 68968, 68972, 68976, 68980, 68984, 68988, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68992, 68997, 69001, 69006, 69011, 69016, 69021, 69026, 69030, 69035,
- 69040, 69045, 69050, 69055, 69060, 69065, 69069, 69073, 69078, 69082,
- 69087, 69092, 69097, 69101, 69106, 69111, 69116, 69121, 69126, 69130,
- 69135, 69139, 69144, 69148, 69153, 69157, 69161, 69165, 69170, 69175,
- 69180, 69188, 69196, 69204, 69212, 69219, 69227, 69233, 69241, 69245,
- 69249, 69253, 69257, 69261, 69265, 69269, 69273, 69277, 69281, 69285,
- 69289, 69293, 69297, 69301, 69305, 69309, 69313, 69317, 69321, 69325,
- 69329, 69333, 69337, 69341, 69345, 69349, 69353, 69357, 69361, 69365,
- 69369, 69373, 69377, 69381, 69385, 69388, 69392, 69396, 69400, 69404,
- 69408, 69412, 69416, 69420, 69424, 69428, 69432, 69436, 69440, 69444,
- 69448, 69452, 69456, 69460, 69464, 69468, 69472, 69476, 69480, 69484,
- 69488, 69492, 69496, 69500, 69504, 69508, 69512, 69516, 69520, 69524,
- 69528, 69532, 69535, 69539, 69543, 69546, 69550, 69554, 69558, 69561,
- 69565, 69569, 69573, 69577, 69581, 69585, 69589, 69593, 69597, 69601,
- 69605, 69609, 69613, 69617, 69620, 69624, 69628, 69631, 69635, 69639,
- 69643, 69647, 69651, 69655, 69658, 69661, 69665, 69669, 69673, 69676,
- 69679, 69683, 69687, 69691, 69695, 69699, 69703, 69707, 69711, 69715,
- 69719, 69723, 69727, 69731, 69735, 69739, 69743, 69747, 69751, 69755,
- 69759, 69763, 69767, 69771, 69775, 69779, 69783, 69787, 69791, 69795,
- 69799, 69803, 69807, 69811, 69815, 69819, 69823, 69827, 69830, 69834,
- 69838, 69842, 69846, 69850, 69854, 69858, 69862, 69866, 69870, 69874,
- 69878, 69882, 69886, 69890, 69894, 69898, 69902, 69906, 69910, 69914,
- 69918, 69922, 69926, 69930, 69934, 69938, 69942, 69946, 69950, 69954,
- 69958, 69962, 69966, 69970, 69974, 69977, 69981, 69985, 69989, 69993,
- 69997, 70001, 70005, 70009, 70013, 70017, 70021, 70025, 70029, 70033,
- 70037, 70041, 70044, 70048, 70052, 70056, 70060, 70064, 70068, 70072,
- 70076, 70080, 70084, 70088, 70092, 70096, 70100, 70104, 70108, 70112,
- 70116, 70120, 70124, 70128, 70131, 70135, 70139, 70143, 70147, 70151,
- 70155, 70159, 70163, 70167, 70171, 70175, 70179, 70183, 70187, 70191,
- 70195, 70199, 70203, 70207, 70211, 70215, 70219, 70223, 70227, 70231,
- 70235, 70239, 70243, 70247, 70251, 70255, 70259, 70263, 70267, 70271,
- 70275, 70279, 70283, 70287, 70291, 70295, 70299, 70303, 70306, 70311,
- 70315, 70321, 70326, 70332, 70336, 70340, 70344, 70348, 70352, 70356,
- 70360, 70364, 70368, 70372, 70376, 70380, 70384, 70388, 70391, 70394,
- 70397, 70400, 70403, 70406, 70409, 70412, 70415, 70420, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70426, 70431, 70436, 70441,
- 70446, 70453, 70460, 70465, 70470, 70475, 70480, 70487, 70494, 70501,
- 70508, 70515, 70522, 70532, 70542, 70549, 70556, 70563, 70570, 70576,
- 70582, 70591, 70600, 70607, 70614, 70625, 70636, 70641, 70646, 70653,
- 70660, 70667, 70674, 70681, 70688, 70695, 70702, 70708, 70714, 70720,
- 70726, 70733, 70740, 70745, 70749, 70756, 70763, 70770, 70774, 70781,
- 70785, 70790, 70794, 70800, 70805, 70811, 70816, 70820, 70824, 70827,
- 70830, 70835, 70840, 70845, 70850, 70855, 70860, 70865, 70870, 70875,
- 70880, 70889, 70898, 70903, 70908, 70913, 70918, 70923, 70928, 70933,
- 70938, 70943, 70948, 70953, 0, 0, 0, 0, 0, 0, 0, 70958, 70964, 70967,
- 70970, 70973, 70977, 70981, 70985, 70989, 70992, 70996, 70999, 71003,
- 71006, 71010, 71014, 71018, 71022, 71026, 71030, 71034, 71037, 71041,
- 71045, 71049, 71053, 71057, 71061, 71065, 71069, 71073, 71077, 71081,
- 71085, 71089, 71093, 71096, 71100, 71104, 71108, 71112, 71116, 71120,
- 71124, 71128, 71132, 71136, 71140, 71144, 71148, 71152, 71156, 71160,
- 71164, 71168, 71172, 71176, 71180, 71184, 71188, 71192, 71195, 71199,
- 71203, 71207, 71211, 71215, 71219, 71223, 71226, 71230, 71234, 71238,
- 71242, 71246, 71250, 71254, 71258, 71262, 71266, 71270, 71274, 71279,
- 71284, 71287, 71292, 71295, 71298, 71301, 0, 0, 0, 0, 0, 0, 0, 0, 71305,
- 71314, 71323, 71332, 71341, 71350, 71359, 71368, 71377, 71385, 71392,
- 71400, 71407, 71415, 71425, 71434, 71444, 71453, 71463, 71471, 71478,
- 71486, 71493, 71501, 71506, 71511, 71516, 71525, 71531, 71537, 71544,
- 71553, 71561, 71569, 71577, 71584, 71591, 71598, 71605, 71610, 71615,
- 71620, 71625, 71630, 71635, 71640, 71645, 71653, 71661, 71667, 71673,
- 71678, 71683, 71688, 71693, 71698, 71703, 71708, 71713, 71721, 71729,
- 71734, 71739, 71749, 71759, 71766, 71773, 71782, 71791, 71803, 71815,
- 71821, 71827, 71835, 71843, 71853, 71863, 71870, 71877, 71882, 71887,
- 71899, 71911, 71919, 71927, 71937, 71947, 71959, 71971, 71980, 71989,
- 71996, 72003, 72010, 72017, 72026, 72035, 72040, 72045, 72052, 72059,
- 72066, 72073, 72085, 72097, 72102, 72107, 72112, 72117, 72122, 72127,
- 72132, 72137, 72141, 72146, 72151, 72156, 72161, 72166, 72172, 72177,
- 72182, 72189, 72196, 72203, 72210, 72217, 72226, 72235, 72241, 72247,
- 72253, 72259, 72266, 72273, 72280, 72287, 72294, 72298, 72305, 72310,
- 72315, 72322, 0, 72335, 72343, 72351, 72358, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 72365, 72374, 72383, 72392, 72401, 72410, 72419, 72428, 72437,
- 72446, 72455, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 72462, 72469, 72475, 72482, 72490, 72498,
- 72505, 72513, 72520, 72526, 72532, 72539, 72545, 72551, 72557, 72564,
- 72571, 72578, 72585, 72592, 72599, 72606, 72613, 72620, 72627, 72634,
- 72641, 72648, 72655, 72661, 72668, 72675, 72682, 72689, 72696, 72703,
- 72710, 72717, 72724, 72731, 72738, 72745, 72752, 72759, 72766, 72773,
- 72780, 72787, 72795, 72803, 72811, 72819, 0, 0, 0, 0, 72827, 72836,
- 72845, 72854, 72863, 72872, 72881, 72888, 72895, 72902, 0, 0, 0, 0, 0, 0,
- 72909, 72913, 72918, 72923, 72928, 72933, 72938, 72943, 72948, 72953,
- 72958, 72963, 72967, 72971, 72976, 72981, 72985, 72990, 72995, 73000,
- 73005, 73010, 73015, 73020, 73024, 73028, 73033, 73038, 73042, 73046,
- 73050, 73054, 73058, 73062, 73066, 73071, 73076, 73081, 73086, 73091,
- 73098, 73104, 73109, 73114, 73119, 73124, 73130, 73137, 73143, 73150,
- 73156, 73162, 73167, 73174, 73180, 73185, 0, 0, 0, 0, 0, 0, 0, 0, 73191,
- 73195, 73199, 73202, 73206, 73209, 73213, 73216, 73220, 73224, 73229,
- 73233, 73238, 73241, 73245, 73249, 73252, 73256, 73260, 73263, 73267,
- 73271, 73275, 73279, 73283, 73287, 73291, 73295, 73299, 73303, 73307,
- 73311, 73315, 73319, 73323, 73327, 73331, 73335, 73338, 73341, 73345,
- 73349, 73353, 73356, 73359, 73362, 73366, 73370, 73374, 73378, 73381,
- 73384, 73388, 73393, 73398, 73402, 73407, 73411, 73416, 73421, 73427,
- 73432, 73438, 73442, 73447, 73452, 73456, 73461, 73466, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 73470, 73473, 73477, 73481, 73484, 73487, 73490, 73493, 73496,
- 73499, 73502, 73505, 0, 0, 0, 0, 0, 0, 73508, 73513, 73517, 73521, 73525,
- 73529, 73533, 73537, 73541, 73545, 73549, 73553, 73557, 73561, 73565,
- 73569, 73573, 73578, 73583, 73589, 73595, 73602, 73607, 73612, 73618,
- 73622, 73627, 73630, 0, 0, 0, 0, 73633, 73640, 73646, 73652, 73658,
- 73664, 73670, 73676, 73682, 73688, 73694, 73700, 73707, 73714, 73721,
- 73727, 73734, 73741, 73748, 73755, 73762, 73768, 73774, 73781, 73787,
- 73794, 73801, 73807, 73813, 73820, 73827, 73834, 73840, 73847, 73854,
- 73860, 73867, 73873, 73880, 73887, 73893, 73899, 73906, 73912, 73919,
- 73926, 73935, 73942, 73949, 73953, 73958, 73963, 73968, 73973, 73977,
- 73981, 73986, 73990, 73995, 74000, 74005, 74009, 74013, 74018, 74022,
- 74027, 74031, 74036, 74041, 74046, 74051, 74055, 74060, 74065, 74070,
- 74076, 74081, 74087, 74093, 74099, 74105, 74111, 74116, 74122, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 74126, 74131, 74135, 74139, 74143, 74147, 74151,
- 74155, 74159, 74163, 74167, 74171, 74175, 74179, 74183, 74187, 74191,
- 74195, 74199, 74203, 74207, 74211, 74215, 74219, 74223, 74227, 74231,
- 74235, 74239, 74243, 0, 0, 0, 74247, 74251, 74255, 74259, 74263, 74266,
- 74272, 74275, 74279, 74282, 74288, 74294, 74302, 74305, 74309, 74312,
- 74315, 74321, 74327, 74331, 74337, 74341, 74345, 74351, 74355, 74361,
- 74367, 74371, 74375, 74381, 74385, 74391, 74397, 74401, 74407, 74411,
- 74417, 74420, 74423, 74429, 74433, 74439, 74442, 74445, 74448, 74454,
- 74458, 74462, 74468, 74474, 74477, 74480, 74486, 74491, 74496, 74501,
- 74508, 74513, 74520, 74525, 74532, 74537, 74542, 74547, 74552, 74555,
- 74559, 74563, 74568, 74573, 74578, 74583, 74588, 74593, 74598, 74603,
- 74610, 74615, 0, 74622, 74625, 74629, 74632, 74635, 74638, 74641, 74644,
- 74647, 74650, 74653, 0, 0, 0, 0, 74656, 74663, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 74668, 74671, 74674, 74677, 74680, 74684, 74687, 74690, 74694, 74698,
- 74702, 74706, 74710, 74714, 74718, 74722, 74726, 74730, 74734, 74738,
- 74742, 74746, 74750, 74754, 74758, 74761, 74765, 74768, 74772, 74776,
- 74780, 74784, 74788, 74791, 74795, 74798, 74801, 74805, 74809, 74813,
- 74816, 74819, 74824, 74828, 74833, 74838, 74842, 74847, 74851, 74856,
- 74861, 74866, 74870, 74874, 74879, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74884,
- 74889, 74894, 74899, 74905, 74910, 74915, 74920, 74925, 74930, 74934,
- 74938, 74943, 74948, 0, 0, 74954, 74958, 74961, 74964, 74967, 74970,
- 74973, 74976, 74979, 74982, 0, 0, 74985, 74990, 74995, 75001, 75008,
- 75014, 75020, 75026, 75032, 75038, 75044, 75050, 75056, 75062, 75068,
- 75074, 75079, 75084, 75089, 75095, 75101, 75108, 75114, 75120, 75125,
- 75132, 75139, 75146, 75152, 75157, 75162, 75167, 0, 0, 0, 0, 75175,
- 75181, 75187, 75193, 75199, 75205, 75211, 75217, 75223, 75229, 75235,
- 75241, 75247, 75253, 75259, 75265, 75271, 75277, 75283, 75289, 75295,
- 75300, 75305, 75311, 75317, 75323, 75329, 75335, 75341, 75347, 75353,
- 75359, 75365, 75371, 75377, 75383, 75389, 75395, 75401, 75407, 75413,
- 75419, 75425, 75431, 75437, 75443, 75449, 75454, 75459, 75465, 75470,
- 75474, 75479, 75483, 75487, 75491, 75497, 75502, 75507, 75512, 75517,
- 75522, 75527, 75532, 75539, 75546, 75553, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75560, 75565, 75570, 75575,
- 75582, 75589, 75593, 75597, 75602, 75607, 75612, 75617, 75622, 75627,
- 75632, 75637, 75642, 75648, 75654, 75660, 75666, 75672, 75676, 75682,
- 75686, 75692, 75699, 75705, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75709, 75713,
- 75717, 75721, 75725, 75729, 0, 0, 75733, 75737, 75741, 75745, 75749,
- 75753, 0, 0, 75757, 75761, 75765, 75769, 75773, 75777, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 75781, 75785, 75789, 75793, 75797, 75801, 75805, 0, 75809,
- 75813, 75817, 75821, 75825, 75829, 75833, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 66088, 66097, 66106, 66117, 66124, 66129, 66134, 66141, 66148, 66154,
+ 66159, 66164, 66169, 66174, 66181, 66186, 66191, 66196, 66207, 66212,
+ 66217, 66224, 66229, 66236, 66241, 66246, 66253, 66260, 66267, 66276,
+ 66285, 66290, 66295, 66300, 66307, 66312, 66322, 66329, 66334, 66339,
+ 66344, 66349, 66354, 66359, 66368, 66375, 66382, 66387, 66394, 66399,
+ 66406, 66415, 66426, 66431, 66440, 66445, 66452, 66461, 66470, 66475,
+ 66480, 66487, 66493, 66500, 66507, 66511, 66515, 66518, 66522, 66526,
+ 66530, 66534, 66538, 66542, 66546, 66549, 66553, 66557, 66561, 66565,
+ 66569, 66573, 66576, 66580, 66584, 66587, 66591, 66595, 66599, 66603,
+ 66607, 66611, 66615, 66619, 66623, 66627, 66631, 66635, 66639, 66643,
+ 66647, 66651, 66655, 66659, 66663, 66667, 66671, 66675, 66679, 66683,
+ 66687, 66691, 66695, 66699, 66703, 66707, 66711, 66715, 66719, 66723,
+ 66727, 66731, 66735, 66739, 66743, 66747, 66751, 66755, 66759, 66763,
+ 66766, 66770, 66774, 66778, 66782, 66786, 66790, 66794, 66798, 66802,
+ 66806, 66810, 66814, 66818, 66822, 66826, 66830, 66834, 66838, 66842,
+ 66846, 66850, 66854, 66858, 66862, 66866, 66870, 66874, 66878, 66882,
+ 66886, 66890, 66894, 66898, 66902, 66906, 66910, 66914, 66918, 66922,
+ 66926, 66930, 66934, 66938, 66942, 66946, 66950, 66954, 66958, 66962,
+ 66966, 66970, 66974, 66978, 66982, 66986, 66990, 66994, 66998, 67002,
+ 67006, 67010, 67014, 67018, 67022, 67026, 67030, 67034, 67038, 67042,
+ 67046, 67050, 67054, 67058, 67062, 67066, 67070, 67074, 67078, 67082,
+ 67086, 67090, 67094, 67098, 67102, 67106, 67110, 67114, 67118, 67122,
+ 67126, 67130, 67134, 67138, 67142, 67146, 67150, 67154, 67158, 67162,
+ 67166, 67170, 67174, 67178, 67182, 67186, 67190, 67194, 67198, 67202,
+ 67206, 67210, 67214, 67218, 67222, 67226, 67230, 67234, 67237, 67241,
+ 67245, 67249, 67253, 67257, 67261, 67265, 67269, 67273, 67277, 67281,
+ 67285, 67289, 67293, 67297, 67301, 67305, 67309, 67313, 67317, 67321,
+ 67325, 67329, 67333, 67337, 67341, 67345, 67349, 67353, 67357, 67361,
+ 67365, 67369, 67373, 67377, 67381, 67385, 67389, 67393, 67397, 67401,
+ 67405, 67409, 67413, 67417, 67421, 67425, 67429, 67433, 67437, 67441,
+ 67445, 67449, 67453, 67457, 67461, 67465, 67469, 67473, 67477, 67481,
+ 67485, 67489, 67493, 67497, 67501, 67505, 67509, 67513, 67517, 67521,
+ 67525, 67529, 67533, 67537, 67541, 67545, 67549, 67553, 67557, 67561,
+ 67565, 67569, 67573, 67577, 67581, 67585, 67589, 67593, 67597, 67601,
+ 67605, 67609, 67613, 67617, 67621, 67625, 67629, 67633, 67637, 67641,
+ 67645, 67649, 67653, 67657, 67661, 67665, 67669, 67673, 67677, 67681,
+ 67685, 67689, 67693, 67697, 67700, 67704, 67708, 67712, 67716, 67720,
+ 67724, 67728, 67732, 67736, 67740, 67744, 67748, 67752, 67756, 67760,
+ 67764, 67768, 67772, 67776, 67780, 67784, 67788, 67792, 67796, 67800,
+ 67804, 67808, 67812, 67816, 67820, 67824, 67828, 67832, 67836, 67840,
+ 67844, 67848, 67852, 67856, 67860, 67864, 67868, 67872, 67876, 67880,
+ 67884, 67888, 67892, 67896, 67900, 67904, 67908, 67912, 67916, 67920,
+ 67924, 67928, 67932, 67936, 67940, 67944, 67948, 67952, 67956, 67960,
+ 67964, 67968, 67972, 67976, 67980, 67984, 67988, 67992, 67996, 68000,
+ 68004, 68008, 68012, 68016, 68020, 68024, 68028, 68032, 68036, 68040,
+ 68044, 68048, 68052, 68056, 68060, 68064, 68068, 68072, 68076, 68080,
+ 68084, 68088, 68092, 68096, 68100, 68104, 68108, 68112, 68116, 68120,
+ 68124, 68128, 68132, 68136, 68140, 68144, 68148, 68152, 68156, 68160,
+ 68164, 68168, 68172, 68176, 68180, 68184, 68188, 68192, 68196, 68200,
+ 68204, 68208, 68212, 68216, 68220, 68224, 68228, 68232, 68236, 68240,
+ 68244, 68248, 68252, 68256, 68260, 68264, 68268, 68272, 68276, 68280,
+ 68284, 68288, 68292, 68296, 68300, 68304, 68308, 68312, 68316, 68320,
+ 68324, 68328, 68332, 68336, 68340, 68344, 68348, 68352, 68356, 68360,
+ 68364, 68368, 68372, 68376, 68380, 68384, 68388, 68392, 68396, 68400,
+ 68404, 68408, 68412, 68416, 68420, 68424, 68428, 68432, 68436, 68440,
+ 68444, 68448, 68452, 68456, 68460, 68464, 68468, 68472, 68476, 68480,
+ 68484, 68488, 68492, 68496, 68500, 68504, 68508, 68512, 68516, 68520,
+ 68524, 68528, 68532, 68536, 68540, 68544, 68548, 68552, 68555, 68559,
+ 68563, 68567, 68571, 68575, 68579, 68583, 68587, 68591, 68595, 68599,
+ 68603, 68607, 68611, 68615, 68619, 68623, 68627, 68631, 68635, 68639,
+ 68643, 68647, 68651, 68655, 68659, 68663, 68667, 68671, 68675, 68679,
+ 68683, 68687, 68691, 68695, 68699, 68703, 68707, 68711, 68715, 68719,
+ 68723, 68727, 68731, 68735, 68739, 68743, 68747, 68751, 68755, 68759,
+ 68763, 68767, 68771, 68775, 68779, 68783, 68787, 68791, 68795, 68799,
+ 68803, 68807, 68811, 68815, 68819, 68823, 68827, 68831, 68835, 68839,
+ 68843, 68847, 68851, 68855, 68859, 68863, 68867, 68871, 68875, 68879,
+ 68883, 68887, 68891, 68895, 68899, 68903, 68907, 68911, 68915, 68919,
+ 68923, 68927, 68931, 68935, 68939, 68943, 68947, 68951, 68955, 68959,
+ 68963, 68967, 68971, 68975, 68979, 68983, 68987, 68991, 68995, 68999,
+ 69003, 69007, 69010, 69014, 69018, 69022, 69026, 69030, 69034, 69038,
+ 69042, 69046, 69050, 69054, 69058, 69062, 69066, 69070, 69074, 69078,
+ 69082, 69086, 69090, 69094, 69098, 69102, 69106, 69110, 69114, 69118,
+ 69122, 69126, 69130, 69134, 69138, 69142, 69146, 69150, 69154, 69158,
+ 69162, 69166, 69170, 69174, 69178, 69182, 69186, 69190, 69194, 69198,
+ 69202, 69206, 69210, 69214, 69218, 69222, 69226, 69230, 69234, 69238,
+ 69242, 69246, 69250, 69254, 69258, 69262, 69266, 69270, 69274, 69278,
+ 69282, 69286, 69290, 69294, 69298, 69302, 69306, 69310, 69314, 69318,
+ 69322, 69326, 69330, 69334, 69338, 69342, 69346, 69350, 69354, 69358,
+ 69362, 69366, 69370, 69374, 69378, 69382, 69386, 69390, 69394, 69398,
+ 69402, 69406, 69410, 69414, 69418, 69422, 69426, 69430, 69434, 69438,
+ 69442, 69446, 69450, 69454, 69458, 69462, 69466, 69470, 69474, 69478,
+ 69482, 69486, 69490, 69494, 69498, 69502, 69506, 69510, 69514, 69518,
+ 69522, 69526, 69530, 69534, 69538, 69542, 69546, 69550, 69554, 69558,
+ 69562, 69566, 69570, 69574, 69578, 69582, 69586, 69590, 69594, 69598,
+ 69602, 69606, 69610, 69613, 69617, 69621, 69625, 69629, 69633, 69637,
+ 69641, 69645, 69649, 69653, 69657, 69661, 69665, 69669, 69673, 69677,
+ 69681, 69685, 69689, 69693, 69697, 69701, 69705, 69709, 69713, 69717,
+ 69721, 69725, 69729, 69733, 69737, 69741, 69745, 69749, 69753, 69757,
+ 69761, 69765, 69769, 69773, 69777, 69781, 69785, 69789, 69793, 69797,
+ 69801, 69805, 69809, 69813, 69817, 69821, 69825, 69829, 69833, 69837,
+ 69841, 69845, 69849, 69853, 69857, 69861, 69865, 69869, 69873, 69877,
+ 69881, 69885, 69889, 69893, 69897, 69901, 69905, 69909, 69913, 69917,
+ 69921, 69925, 69929, 69933, 69937, 69941, 69945, 69949, 69953, 69957,
+ 69961, 69965, 69969, 69973, 69977, 69981, 69985, 69989, 69993, 69997,
+ 70001, 70005, 70009, 70013, 70017, 70021, 70025, 70029, 70033, 70037,
+ 70041, 70045, 70049, 70053, 70057, 70061, 70065, 70069, 70073, 70077,
+ 70081, 70085, 70089, 70093, 70097, 70101, 70105, 70109, 70113, 70117,
+ 70121, 70125, 70129, 70133, 70137, 70141, 70145, 70149, 70153, 70157,
+ 70161, 70165, 70169, 70173, 70177, 70181, 70185, 70189, 70193, 70197,
+ 70201, 70205, 70209, 70213, 70217, 70221, 70225, 70229, 70233, 70237,
+ 70241, 70245, 70249, 70253, 70257, 70261, 70265, 70269, 70273, 70277,
+ 70281, 70285, 70289, 70293, 70297, 70301, 70305, 70309, 70313, 70317,
+ 70321, 70325, 70329, 70333, 70337, 70341, 70345, 70349, 70353, 70357,
+ 70361, 70365, 70369, 70373, 70377, 70381, 70385, 70389, 70393, 70397,
+ 70401, 70405, 70409, 70413, 70417, 70421, 70425, 70429, 70433, 70437,
+ 70441, 70445, 70449, 70453, 70457, 70461, 70465, 70469, 70473, 70477,
+ 70481, 70485, 70489, 70493, 70497, 70501, 70505, 70509, 70513, 70517,
+ 70521, 70525, 70529, 70533, 70537, 70541, 70545, 70549, 70553, 70557,
+ 70561, 70565, 70569, 70573, 70577, 70581, 70585, 70589, 70593, 70597,
+ 70601, 70605, 70609, 70613, 70617, 70621, 70625, 70629, 70633, 70637,
+ 70641, 70645, 70649, 70653, 70657, 70661, 70665, 70669, 70673, 70677,
+ 70681, 70685, 70689, 70693, 70697, 70701, 70705, 70709, 70713, 70717,
+ 70721, 70725, 70729, 70733, 70737, 70741, 70745, 70749, 70753, 70757,
+ 70761, 70765, 70769, 70773, 70777, 70781, 70785, 70789, 70793, 70797,
+ 70801, 70805, 70809, 70813, 70817, 70821, 70825, 70829, 70833, 70837,
+ 70841, 70845, 70849, 70853, 70857, 70861, 70865, 70869, 70873, 70877,
+ 70881, 70885, 70889, 70893, 70897, 70901, 70905, 70909, 70913, 70917,
+ 70921, 70925, 70929, 70933, 70937, 70941, 70945, 70949, 70953, 70957,
+ 70961, 70965, 70969, 70973, 70977, 70981, 70985, 70989, 70993, 70997,
+ 71001, 71005, 71009, 71013, 71017, 71021, 71025, 71029, 71033, 71037,
+ 71041, 71045, 71049, 71053, 71057, 71061, 71065, 71069, 71073, 71077,
+ 71081, 71085, 71089, 71093, 71097, 71101, 71105, 71109, 71113, 71117,
+ 71121, 71125, 71129, 71133, 71137, 71141, 71145, 71149, 71153, 0, 0, 0,
+ 71157, 71161, 71165, 71169, 71173, 71177, 71181, 71185, 71189, 71193,
+ 71197, 71201, 71205, 71209, 71213, 71217, 71221, 71225, 71229, 71233,
+ 71237, 71241, 71245, 71249, 71253, 71257, 71261, 71265, 71269, 71273,
+ 71277, 71281, 71285, 71289, 71293, 71297, 71301, 71305, 71309, 71313,
+ 71317, 71321, 71325, 71329, 71333, 71337, 71341, 71345, 71349, 71353,
+ 71357, 71361, 71365, 71369, 71373, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71377,
+ 71382, 71386, 71391, 71396, 71401, 71406, 71411, 71415, 71420, 71425,
+ 71430, 71435, 71440, 71445, 71450, 71454, 71459, 71464, 71469, 71474,
+ 71479, 71484, 71488, 71493, 71498, 71503, 71508, 71513, 71517, 71522,
+ 71526, 71531, 71535, 71540, 71544, 71548, 71552, 71557, 71562, 71567,
+ 71575, 71583, 71591, 71599, 71607, 71615, 71621, 71629, 71633, 71637,
+ 71641, 71645, 71649, 71653, 71657, 71661, 71665, 71669, 71673, 71677,
+ 71681, 71685, 71689, 71693, 71697, 71701, 71705, 71709, 71713, 71717,
+ 71721, 71725, 71729, 71733, 71737, 71741, 71745, 71749, 71753, 71757,
+ 71761, 71765, 71769, 71773, 71776, 71780, 71784, 71788, 71792, 71796,
+ 71800, 71804, 71808, 71812, 71816, 71820, 71824, 71828, 71832, 71836,
+ 71840, 71844, 71848, 71852, 71856, 71860, 71864, 71868, 71872, 71876,
+ 71880, 71884, 71888, 71892, 71896, 71900, 71904, 71908, 71912, 71916,
+ 71920, 71923, 71927, 71931, 71934, 71938, 71942, 71946, 71949, 71953,
+ 71957, 71961, 71965, 71969, 71973, 71977, 71981, 71985, 71989, 71993,
+ 71997, 72001, 72005, 72009, 72013, 72017, 72021, 72025, 72029, 72033,
+ 72037, 72041, 72045, 72048, 72051, 72055, 72059, 72063, 72066, 72070,
+ 72074, 72078, 72082, 72086, 72090, 72094, 72098, 72102, 72106, 72110,
+ 72114, 72118, 72122, 72126, 72130, 72134, 72138, 72142, 72146, 72150,
+ 72154, 72158, 72162, 72166, 72170, 72174, 72178, 72182, 72186, 72190,
+ 72194, 72198, 72202, 72206, 72210, 72214, 72218, 72221, 72225, 72229,
+ 72233, 72237, 72241, 72245, 72249, 72253, 72257, 72261, 72265, 72269,
+ 72273, 72277, 72281, 72285, 72289, 72293, 72297, 72301, 72305, 72309,
+ 72313, 72317, 72321, 72325, 72329, 72333, 72337, 72341, 72345, 72349,
+ 72353, 72357, 72361, 72365, 72368, 72372, 72376, 72380, 72384, 72388,
+ 72392, 72396, 72400, 72404, 72408, 72412, 72416, 72420, 72424, 72428,
+ 72432, 72435, 72439, 72443, 72447, 72451, 72455, 72459, 72463, 72467,
+ 72471, 72475, 72479, 72483, 72487, 72491, 72495, 72499, 72503, 72507,
+ 72511, 72515, 72519, 72522, 72526, 72530, 72534, 72538, 72542, 72546,
+ 72550, 72554, 72558, 72562, 72566, 72570, 72574, 72578, 72582, 72586,
+ 72590, 72594, 72598, 72602, 72606, 72610, 72614, 72618, 72622, 72626,
+ 72630, 72634, 72638, 72642, 72646, 72650, 72654, 72658, 72662, 72666,
+ 72670, 72674, 72678, 72682, 72686, 72690, 72694, 72697, 72702, 72706,
+ 72712, 72717, 72723, 72727, 72731, 72735, 72739, 72743, 72747, 72751,
+ 72755, 72759, 72763, 72767, 72771, 72775, 72779, 72782, 72785, 72788,
+ 72791, 72794, 72797, 72801, 72804, 72808, 72813, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72819, 72824, 72829, 72834, 72839,
+ 72846, 72853, 72858, 72863, 72868, 72873, 72880, 72887, 72894, 72901,
+ 72908, 72915, 72925, 72935, 72942, 72949, 72956, 72963, 72969, 72975,
+ 72984, 72993, 73000, 73007, 73018, 73029, 73034, 73039, 73046, 73053,
+ 73060, 73067, 73074, 73081, 73088, 73095, 73101, 73107, 73113, 73119,
+ 73126, 73133, 73138, 73142, 73149, 73156, 73163, 73167, 73174, 73178,
+ 73183, 73187, 73193, 73198, 73204, 73209, 73213, 73217, 73220, 73223,
+ 73228, 73233, 73238, 73243, 73248, 73253, 73258, 73263, 73268, 73273,
+ 73281, 73289, 73294, 73299, 73304, 73309, 73314, 73319, 73324, 73329,
+ 73334, 73339, 73344, 73349, 73354, 73359, 73365, 73371, 73377, 73383,
+ 73388, 73394, 73397, 73400, 73403, 73407, 73411, 73415, 73419, 73422,
+ 73426, 73429, 73433, 73436, 73440, 73444, 73448, 73452, 73456, 73460,
+ 73464, 73468, 73472, 73476, 73480, 73484, 73488, 73492, 73496, 73500,
+ 73504, 73508, 73512, 73516, 73520, 73524, 73527, 73531, 73535, 73539,
+ 73543, 73547, 73551, 73555, 73559, 73563, 73567, 73571, 73575, 73579,
+ 73583, 73587, 73591, 73595, 73599, 73603, 73607, 73611, 73615, 73619,
+ 73623, 73627, 73631, 73635, 73639, 73643, 73647, 73651, 73655, 73658,
+ 73662, 73666, 73670, 73674, 73678, 73682, 73686, 73690, 73694, 73698,
+ 73702, 73706, 73711, 73716, 73719, 73724, 73727, 73730, 73733, 0, 0, 0,
+ 0, 0, 0, 0, 0, 73737, 73746, 73755, 73764, 73773, 73782, 73791, 73800,
+ 73809, 73817, 73824, 73832, 73839, 73847, 73857, 73866, 73876, 73885,
+ 73895, 73903, 73910, 73918, 73925, 73933, 73938, 73943, 73949, 73958,
+ 73964, 73970, 73977, 73986, 73994, 74002, 74010, 74017, 74024, 74031,
+ 74038, 74043, 74048, 74053, 74058, 74063, 74068, 74073, 74078, 74086,
+ 74094, 74100, 74105, 74110, 74115, 74120, 74125, 74130, 74135, 74140,
+ 74145, 74154, 74163, 74168, 74173, 74183, 74193, 74200, 74207, 74216,
+ 74225, 74237, 74249, 74255, 74261, 74269, 74277, 74287, 74297, 74304,
+ 74311, 74316, 74321, 74333, 74345, 74353, 74361, 74371, 74381, 74393,
+ 74405, 74414, 74423, 74430, 74437, 74444, 74451, 74460, 74469, 74474,
+ 74479, 74486, 74493, 74500, 74507, 74519, 74531, 74536, 74541, 74546,
+ 74551, 74556, 74561, 74566, 74571, 74575, 74580, 74585, 74590, 74595,
+ 74600, 74606, 74611, 74616, 74623, 74630, 74637, 74644, 74651, 74660,
+ 74669, 74675, 74681, 74687, 74693, 74699, 74705, 74712, 74719, 74726,
+ 74730, 74737, 74742, 74747, 74754, 74767, 74773, 74781, 74789, 74796,
+ 74803, 74812, 74821, 74828, 74835, 74842, 74849, 74856, 74863, 74870,
+ 74877, 74884, 74891, 74900, 74909, 74918, 74927, 74936, 74945, 74954,
+ 74963, 74972, 74981, 74988, 74995, 75001, 0, 0, 75009, 75016, 75023,
+ 75031, 75036, 75041, 75046, 75051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 75056, 75063, 75070, 75076, 75084, 75092, 75100, 75108, 75116,
+ 75124, 75130, 75136, 75143, 75149, 75155, 75161, 75168, 75175, 75182,
+ 75189, 75196, 75203, 75210, 75217, 75224, 75231, 75238, 75245, 75252,
+ 75259, 75265, 75272, 75279, 75286, 75293, 75300, 75307, 75314, 75321,
+ 75328, 75335, 75342, 75349, 75356, 75363, 75370, 75377, 75384, 75391,
+ 75399, 75407, 75415, 75423, 0, 0, 0, 0, 75431, 75439, 75447, 75455,
+ 75463, 75471, 75479, 75485, 75491, 75497, 0, 0, 0, 0, 0, 0, 75503, 75507,
+ 75512, 75517, 75522, 75527, 75532, 75537, 75542, 75547, 75552, 75557,
+ 75562, 75566, 75571, 75576, 75580, 75585, 75590, 75595, 75600, 75605,
+ 75610, 75615, 75619, 75624, 75629, 75634, 75639, 75643, 75647, 75651,
+ 75655, 75659, 75663, 75668, 75673, 75678, 75683, 75688, 75695, 75701,
+ 75706, 75711, 75716, 75721, 75727, 75734, 75740, 75747, 75754, 75761,
+ 75766, 75773, 75779, 75784, 0, 0, 0, 0, 0, 0, 0, 0, 75790, 75795, 75800,
+ 75804, 75809, 75813, 75818, 75822, 75827, 75832, 75838, 75843, 75849,
+ 75853, 75858, 75863, 75867, 75872, 75877, 75881, 75886, 75891, 75896,
+ 75901, 75906, 75911, 75916, 75921, 75926, 75931, 75936, 75941, 75946,
+ 75951, 75956, 75961, 75966, 75971, 75976, 75980, 75985, 75990, 75995,
+ 75999, 76003, 76008, 76013, 76018, 76023, 76028, 76033, 76037, 76042,
+ 76048, 76054, 76059, 76065, 76070, 76076, 76082, 76089, 76095, 76102,
+ 76107, 76113, 76119, 76124, 76130, 76136, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 76141, 76145, 76150, 76155, 76159, 76163, 76167, 76171, 76175, 76179,
+ 76184, 76188, 0, 0, 0, 0, 0, 0, 76193, 76198, 76202, 76206, 76210, 76214,
+ 76218, 76222, 76227, 76231, 76236, 76240, 76244, 76248, 76253, 76257,
+ 76262, 76267, 76272, 76278, 76284, 76291, 76296, 76301, 76307, 76311,
+ 76316, 76319, 76322, 76326, 0, 0, 76331, 76338, 76344, 76350, 76356,
+ 76362, 76368, 76374, 76381, 76387, 76394, 76400, 76407, 76414, 76421,
+ 76428, 76435, 76442, 76449, 76456, 76463, 76470, 76476, 76483, 76489,
+ 76496, 76503, 76510, 76516, 76523, 76530, 76537, 76543, 76550, 76557,
+ 76563, 76570, 76576, 76583, 76590, 76596, 76602, 76609, 76615, 76622,
+ 76629, 76638, 76645, 76652, 76656, 76661, 76666, 76671, 76676, 76681,
+ 76685, 76690, 76694, 76699, 76704, 76709, 76714, 76719, 76724, 76728,
+ 76733, 76737, 76742, 76747, 76752, 76757, 76761, 76766, 76771, 76776,
+ 76782, 76787, 76793, 76799, 76805, 76811, 76817, 76822, 76828, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 76832, 76837, 76841, 76845, 76849, 76853, 76857,
+ 76861, 76865, 76869, 76873, 76877, 76881, 76885, 76889, 76893, 76897,
+ 76901, 76905, 76909, 76913, 76917, 76921, 76925, 76929, 76933, 76937,
+ 76941, 76945, 76949, 0, 0, 0, 76953, 76957, 76961, 76965, 76969, 76972,
+ 76978, 76981, 76985, 76988, 76994, 77000, 77008, 77011, 77015, 77018,
+ 77021, 77027, 77033, 77037, 77043, 77047, 77051, 77057, 77061, 77067,
+ 77073, 77077, 77081, 77087, 77091, 77097, 77103, 77107, 77113, 77117,
+ 77123, 77127, 77130, 77136, 77140, 77146, 77149, 77152, 77156, 77162,
+ 77166, 77170, 77176, 77182, 77186, 77189, 77195, 77200, 77205, 77210,
+ 77217, 77222, 77229, 77234, 77241, 77246, 77251, 77256, 77261, 77264,
+ 77268, 77272, 77277, 77282, 77287, 77292, 77297, 77302, 77307, 77312,
+ 77319, 77324, 0, 77331, 77334, 77338, 77341, 77344, 77347, 77350, 77353,
+ 77356, 77360, 77363, 0, 0, 0, 0, 77367, 77374, 77379, 77385, 77391,
+ 77397, 77403, 77409, 77415, 77422, 77429, 77436, 77443, 77450, 77457,
+ 77464, 77471, 77478, 77485, 77492, 77498, 77504, 77510, 77516, 77522,
+ 77528, 77535, 77541, 77548, 77555, 77562, 77569, 77576, 0, 77583, 77587,
+ 77591, 77595, 77599, 77604, 77608, 77612, 77617, 77622, 77627, 77632,
+ 77637, 77642, 77647, 77652, 77657, 77662, 77667, 77672, 77677, 77682,
+ 77687, 77692, 77697, 77702, 77707, 77711, 77716, 77721, 77726, 77731,
+ 77736, 77740, 77745, 77749, 77754, 77759, 77764, 77769, 77774, 77778,
+ 77784, 77789, 77795, 77801, 77806, 77812, 77817, 77823, 77829, 77835,
+ 77840, 77846, 77852, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77858, 77864, 77870,
+ 77876, 77883, 77889, 77895, 77901, 77907, 77913, 77918, 77923, 77929,
+ 77936, 0, 0, 77943, 77948, 77952, 77956, 77960, 77964, 77968, 77972,
+ 77977, 77981, 0, 0, 77986, 77992, 77998, 78005, 78013, 78019, 78025,
+ 78031, 78037, 78043, 78049, 78055, 78061, 78067, 78073, 78079, 78085,
+ 78091, 78096, 78102, 78108, 78115, 78121, 78127, 78133, 78140, 78147,
+ 78154, 78160, 78165, 78170, 78176, 78184, 78191, 78198, 78206, 78214,
+ 78221, 78228, 78235, 78242, 78249, 78256, 78263, 78270, 78277, 78284,
+ 78291, 78298, 78305, 78312, 78319, 78326, 78333, 78340, 78347, 78354,
+ 78360, 78366, 78373, 78380, 78387, 78394, 78401, 78408, 78415, 78422,
+ 78429, 78436, 78443, 78450, 78457, 78464, 78471, 78478, 78485, 78492,
+ 78499, 78506, 78513, 78520, 78527, 78534, 78540, 78546, 78553, 78559,
+ 78564, 78570, 78575, 78580, 78585, 78592, 78598, 78604, 78610, 78616,
+ 78622, 78628, 78634, 78642, 78650, 78658, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78666, 78672, 78678, 78684,
+ 78692, 78700, 78706, 78712, 78719, 78726, 78733, 78740, 78747, 78754,
+ 78761, 78768, 78775, 78783, 78791, 78799, 78807, 78815, 78821, 78829,
+ 78835, 78843, 78852, 78860, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78866, 78870,
+ 78874, 78878, 78882, 78886, 0, 0, 78890, 78894, 78898, 78902, 78906,
+ 78910, 0, 0, 78914, 78918, 78922, 78926, 78930, 78934, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 78938, 78942, 78946, 78950, 78954, 78958, 78962, 0, 78966,
+ 78970, 78974, 78978, 78982, 78986, 78990, 0, 78994, 79001, 79007, 79013,
+ 79019, 79026, 79033, 79042, 79053, 79063, 79072, 79080, 79088, 79096,
+ 79102, 79110, 79117, 79124, 79133, 79144, 79152, 79162, 79168, 79178,
+ 79187, 79192, 79200, 79209, 79214, 79223, 79230, 79240, 79252, 79257,
+ 79264, 79271, 79276, 79286, 79296, 79306, 79316, 79331, 79344, 79355,
+ 79363, 79368, 79379, 79388, 79395, 79402, 79408, 79414, 79419, 79426, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 79432, 79436, 79440, 79444, 79448, 79452,
+ 79457, 79462, 79466, 79471, 79476, 79481, 79486, 79491, 79495, 79500,
+ 79505, 79510, 79515, 79520, 79525, 79530, 79535, 79540, 79545, 79550,
+ 79554, 79559, 79564, 79569, 79574, 79579, 79584, 79589, 79594, 79599,
+ 79604, 79609, 79614, 79619, 79624, 79629, 79634, 79639, 79644, 79649,
+ 79653, 79658, 79663, 79668, 79673, 79678, 79683, 79688, 79693, 79698,
+ 79703, 79708, 79713, 79718, 79723, 79728, 79733, 79738, 79743, 79748,
+ 79753, 79758, 79763, 79768, 79773, 79778, 79783, 79788, 79793, 79798,
+ 79803, 79808, 79813, 79818, 79822, 79829, 79836, 79843, 79850, 79856,
+ 79863, 79870, 79877, 79884, 79891, 79898, 79905, 79912, 79919, 79926,
+ 79932, 79939, 79946, 79953, 79960, 79967, 79974, 79981, 79988, 79995,
+ 80002, 80009, 80018, 80027, 80036, 80045, 80054, 80063, 80072, 80081,
+ 80089, 80097, 80105, 80113, 80121, 80129, 80137, 80145, 80151, 80159, 0,
+ 0, 80167, 80174, 80180, 80186, 80192, 80198, 80204, 80210, 80217, 80223,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75837, 75842, 75847, 75852,
- 75857, 75861, 75865, 75870, 75875, 75880, 75885, 75890, 75895, 75900,
- 75905, 75910, 75914, 75919, 75924, 75929, 75934, 75939, 75944, 75949,
- 75954, 75959, 75964, 75969, 75976, 75983, 75990, 75997, 76004, 76011,
- 76018, 76025, 76031, 76037, 76043, 76049, 76055, 76061, 76067, 76073,
- 76077, 76083, 0, 0, 76089, 76094, 76098, 76102, 76106, 76110, 76114,
- 76118, 76122, 76126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76130, 76134, 76138, 76142, 76146,
- 76150, 76154, 76158, 76162, 76166, 76170, 76174, 76178, 76182, 76186,
- 76190, 76194, 76198, 76202, 76206, 76210, 76214, 76218, 0, 0, 0, 0,
- 76222, 76226, 76230, 76234, 76238, 76242, 76246, 76250, 76254, 76258,
- 76262, 76266, 76270, 76274, 76278, 76282, 76286, 76290, 76294, 76298,
- 76302, 76306, 76310, 76314, 76318, 76322, 76326, 76330, 76334, 76338,
- 76342, 76346, 76350, 76354, 76358, 76362, 76366, 76370, 76374, 76378,
- 76382, 76386, 76390, 76394, 76398, 76402, 76406, 76410, 76414, 0, 0, 0,
- 0, 76418, 76422, 76426, 76430, 76434, 76438, 76442, 76446, 76450, 76454,
- 76458, 76462, 76466, 76470, 76474, 76478, 76482, 76486, 76490, 76494,
- 76498, 76502, 76506, 76510, 76514, 76518, 76522, 76526, 76530, 76534,
- 76538, 76542, 76546, 76550, 76554, 76558, 76562, 76566, 76570, 76574,
- 76578, 76582, 76586, 76590, 76594, 76598, 76602, 76606, 76610, 76614,
- 76618, 76622, 76626, 76630, 76634, 76638, 76642, 76646, 76650, 76654,
- 76658, 76662, 76666, 76670, 76674, 76678, 76682, 76686, 76690, 76694,
- 76698, 76702, 76706, 76710, 76714, 76718, 76722, 76726, 76730, 76734,
- 76738, 76742, 76746, 76750, 76754, 76758, 76762, 76766, 76770, 76774,
- 76778, 76782, 76786, 76790, 76794, 76798, 76802, 76806, 76810, 76814,
- 76818, 76822, 76826, 76830, 76834, 76838, 76842, 76846, 76850, 76854,
- 76858, 76862, 76866, 76870, 76874, 76878, 76882, 76886, 76890, 76894,
- 76898, 76902, 76906, 76910, 76914, 76918, 76922, 76926, 76930, 76934,
- 76938, 76942, 76946, 76950, 76954, 76958, 76962, 76966, 76970, 76974,
- 76978, 76982, 76986, 76990, 76994, 76998, 77002, 77006, 77010, 77014,
- 77018, 77022, 77026, 77030, 77034, 77038, 77042, 77046, 77050, 77054,
- 77058, 77062, 77066, 77070, 77074, 77078, 77082, 77086, 77090, 77094,
- 77098, 77102, 77106, 77110, 77114, 77118, 77122, 77126, 77130, 77134,
- 77138, 77142, 77146, 77150, 77154, 77158, 77162, 77166, 77170, 77174,
- 77178, 77182, 77186, 77190, 77194, 77198, 77202, 77206, 77210, 77214,
- 77218, 77222, 77226, 77230, 77234, 77238, 77242, 77246, 77250, 77254,
- 77258, 77262, 77266, 77270, 77274, 77278, 77282, 77286, 77290, 77294,
- 77298, 77302, 77306, 77310, 77314, 77318, 77322, 77326, 77330, 77334,
- 77338, 77342, 77346, 77350, 77354, 77358, 77362, 77366, 77370, 77374,
- 77378, 77382, 77386, 77390, 77394, 77398, 77402, 77406, 77410, 77414,
- 77418, 77422, 77426, 77430, 77434, 77438, 77442, 77446, 77450, 77454,
- 77458, 77462, 77466, 77470, 77474, 77478, 77482, 77486, 77490, 77494,
- 77498, 77502, 77506, 77510, 77514, 77518, 77522, 77526, 77530, 77534,
- 77538, 77542, 77546, 77550, 77554, 77558, 77562, 77566, 77570, 77574,
- 77578, 77582, 77586, 77590, 77594, 77598, 77602, 77606, 77610, 77614,
- 77618, 77622, 77626, 77630, 77634, 77638, 77642, 77646, 77650, 77654,
- 77658, 77662, 77666, 77670, 77674, 77678, 77682, 77686, 77690, 77694,
- 77698, 77702, 77706, 77710, 77714, 77718, 77722, 77726, 77730, 77734,
- 77738, 77742, 77746, 77750, 77754, 77758, 77762, 77766, 77770, 77774,
- 77778, 77782, 77786, 77790, 77794, 77798, 77802, 77806, 77810, 77814,
- 77818, 77822, 77826, 77830, 77834, 77838, 77842, 77846, 77850, 77854,
- 77858, 77862, 77866, 77870, 77874, 77878, 0, 0, 77882, 77886, 77890,
- 77894, 77898, 77902, 77906, 77910, 77914, 77918, 77922, 77926, 77930,
- 77934, 77938, 77942, 77946, 77950, 77954, 77958, 77962, 77966, 77970,
- 77974, 77978, 77982, 77986, 77990, 77994, 77998, 78002, 78006, 78010,
- 78014, 78018, 78022, 78026, 78030, 78034, 78038, 78042, 78046, 78050,
- 78054, 78058, 78062, 78066, 78070, 78074, 78078, 78082, 78086, 78090,
- 78094, 78098, 78102, 78106, 78110, 78114, 78118, 78122, 78126, 78130,
- 78134, 78138, 78142, 78146, 78150, 78154, 78158, 78162, 78166, 78170,
- 78174, 78178, 78182, 78186, 78190, 78194, 78198, 78202, 78206, 78210,
- 78214, 78218, 78222, 78226, 78230, 78234, 78238, 78242, 78246, 78250,
- 78254, 78258, 78262, 78266, 78270, 78274, 78278, 78282, 78286, 78290,
- 78294, 78298, 78302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78306,
- 78311, 78316, 78321, 78326, 78331, 78339, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 78344, 78351, 78358, 78365, 78372, 0, 0, 0, 0, 0, 78379, 78386,
- 78393, 78403, 78409, 78415, 78421, 78427, 78433, 78439, 78446, 78452,
- 78458, 78464, 78473, 78482, 78494, 78506, 78512, 78518, 78524, 78531,
- 78538, 78545, 78552, 78559, 0, 78566, 78573, 78580, 78588, 78595, 0,
- 78602, 0, 78609, 78616, 0, 78623, 78631, 0, 78638, 78645, 78652, 78659,
- 78666, 78673, 78680, 78687, 78694, 78701, 78706, 78713, 78720, 78726,
- 78732, 78738, 78744, 78750, 78756, 78762, 78768, 78774, 78780, 78786,
- 78792, 78798, 78804, 78810, 78816, 78822, 78828, 78834, 78840, 78846,
- 78852, 78858, 78864, 78870, 78876, 78882, 78888, 78894, 78900, 78906,
- 78912, 78918, 78924, 78930, 78936, 78942, 78948, 78954, 78960, 78966,
- 78972, 78978, 78984, 78990, 78996, 79002, 79008, 79014, 79020, 79026,
- 79032, 79038, 79044, 79050, 79056, 79062, 79068, 79074, 79080, 79086,
- 79092, 79098, 79104, 79110, 79116, 79122, 79128, 79134, 79140, 79146,
- 79152, 79158, 79164, 79170, 79176, 79184, 79192, 79198, 79204, 79210,
- 79216, 79225, 79234, 79242, 79250, 79258, 79266, 79274, 79282, 79290,
- 79298, 79305, 79312, 79322, 79332, 79336, 79340, 79345, 79350, 79355,
- 79360, 79369, 79378, 79384, 79390, 79397, 79404, 79411, 79415, 79421, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79427, 79433, 79439,
- 79445, 79451, 79456, 79461, 79467, 79473, 79479, 79485, 79493, 79499,
- 79505, 79513, 79521, 79529, 79537, 79542, 79547, 79552, 79557, 79570,
- 79583, 79593, 79603, 79614, 79625, 79636, 79647, 79657, 79667, 79678,
- 79689, 79700, 79711, 79721, 79731, 79741, 79757, 79773, 79789, 79796,
- 79803, 79810, 79817, 79827, 79837, 79847, 79859, 79869, 79877, 79885,
- 79894, 79902, 79912, 79920, 79928, 79936, 79945, 79953, 79963, 79971,
- 79979, 79987, 79997, 80005, 80012, 80019, 80026, 80033, 80041, 80049,
- 80057, 80065, 80073, 80082, 80090, 80098, 80106, 80114, 80122, 80131,
- 80139, 80147, 80155, 80163, 80171, 80179, 80187, 80195, 80203, 80211,
- 80220, 80228, 80238, 80246, 80254, 80262, 80272, 80280, 80288, 80296,
- 80304, 80313, 80322, 80330, 80340, 80348, 80356, 80364, 80373, 80381,
- 80391, 80399, 80406, 80413, 80421, 80428, 80437, 80444, 80452, 80460,
- 80469, 80477, 80487, 80495, 80503, 80511, 80521, 80529, 80536, 80543,
- 80551, 80558, 80567, 80574, 80584, 80594, 80605, 80614, 80623, 80632,
- 80641, 80650, 80660, 80671, 80682, 80692, 80703, 80715, 80725, 80734,
- 80743, 80751, 80760, 80770, 80778, 80787, 80796, 80804, 80813, 80823,
- 80831, 80840, 80849, 80857, 80866, 80876, 80884, 80894, 80902, 80912,
- 80920, 80928, 80937, 80945, 80955, 80963, 80971, 80981, 80989, 80996,
- 81003, 81012, 81021, 81029, 81038, 81048, 81056, 81067, 81075, 81083,
- 81090, 81098, 81107, 81114, 81124, 81134, 81145, 81155, 81166, 81174,
- 81182, 81191, 81199, 81208, 81216, 81224, 81233, 81241, 81250, 81258,
- 81265, 81272, 81279, 81286, 81294, 81302, 81310, 81318, 81327, 81335,
- 81343, 81352, 81360, 81368, 81376, 81385, 81393, 81401, 81409, 81417,
- 81425, 81433, 81441, 81449, 81457, 81466, 81474, 81482, 81490, 81498,
- 81506, 81515, 81524, 81532, 81540, 81548, 81557, 81565, 81574, 81581,
- 81588, 81596, 81603, 81611, 81619, 81628, 81636, 81645, 81653, 81661,
- 81671, 81678, 81685, 81693, 81700, 81708, 81718, 81729, 81737, 81746,
- 81754, 81763, 81771, 81780, 81788, 81797, 81805, 81814, 81823, 81831,
- 81839, 81847, 81856, 81863, 81871, 81880, 81889, 81898, 81908, 81916,
- 81926, 81934, 81944, 81952, 81962, 81970, 81980, 81988, 81997, 82004,
- 82013, 82020, 82030, 82038, 82048, 82056, 82066, 82074, 82082, 82090,
- 82099, 82107, 82116, 82125, 82134, 82143, 82153, 82161, 82171, 82179,
- 82189, 82197, 82207, 82215, 82225, 82233, 82242, 82249, 82258, 82265,
- 82275, 82283, 82293, 82301, 82311, 82319, 82327, 82335, 82344, 82352,
- 82361, 82370, 82379, 82388, 82396, 82404, 82413, 82421, 82430, 82439,
- 82447, 82455, 82463, 82472, 82480, 82488, 82497, 82505, 82513, 82521,
- 82529, 82534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82539,
- 82549, 82559, 82569, 82579, 82590, 82600, 82610, 82621, 82630, 82639,
- 82648, 82659, 82669, 82679, 82691, 82701, 82711, 82721, 82731, 82741,
- 82751, 82761, 82771, 82781, 82791, 82801, 82812, 82823, 82833, 82843,
- 82855, 82866, 82877, 82887, 82897, 82907, 82917, 82927, 82937, 82947,
- 82959, 82969, 82979, 82991, 83002, 83013, 83023, 83033, 83043, 83053,
- 83065, 83075, 83085, 83096, 83107, 83117, 83127, 83136, 83145, 83154,
- 83163, 83172, 83182, 0, 0, 83192, 83202, 83212, 83222, 83232, 83244,
- 83254, 83264, 83276, 83286, 83298, 83307, 83316, 83327, 83337, 83349,
- 83360, 83373, 83383, 83395, 83404, 83415, 83426, 83439, 83449, 83459,
- 83469, 83479, 83489, 83498, 83507, 83516, 83525, 83535, 83545, 83555,
- 83565, 83575, 83585, 83595, 83605, 83615, 83625, 83635, 83645, 83654,
- 83663, 83672, 83682, 83692, 83702, 83712, 83722, 83733, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83743, 83758, 83773, 83779, 83785, 83791,
- 83797, 83803, 83809, 83815, 83821, 83829, 83833, 83836, 0, 0, 83844,
- 83847, 83850, 83853, 83856, 83859, 83862, 83865, 83868, 83871, 83874,
- 83877, 83880, 83883, 83886, 83889, 83892, 83900, 83909, 83920, 83928,
- 83936, 83945, 83954, 83965, 83977, 0, 0, 0, 0, 0, 0, 83986, 83991, 83996,
- 84003, 84010, 84016, 84022, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84027, 84037,
- 84047, 84057, 84066, 84077, 84086, 84095, 84105, 84115, 84127, 84139,
- 84150, 84161, 84172, 84183, 84193, 84203, 84213, 84223, 84234, 84245,
- 84249, 84254, 84263, 84272, 84276, 84280, 84284, 84289, 84294, 84299,
- 84304, 84307, 84311, 0, 84316, 84319, 84322, 84326, 84330, 84335, 84339,
- 84343, 84348, 84353, 84360, 84367, 84370, 84373, 84376, 84379, 84382,
- 84386, 84390, 0, 84394, 84399, 84403, 84407, 0, 0, 0, 0, 84412, 84417,
- 84424, 84429, 84434, 0, 84439, 84444, 84449, 84454, 84459, 84464, 84469,
- 84474, 84479, 84484, 84489, 84494, 84503, 84512, 84520, 84528, 84537,
- 84546, 84555, 84564, 84572, 84580, 84588, 84596, 84601, 84606, 84612,
- 84618, 84624, 84630, 84638, 84646, 84652, 84658, 84664, 84670, 84676,
- 84682, 84688, 84694, 84699, 84704, 84709, 84714, 84719, 84724, 84729,
- 84734, 84740, 84746, 84752, 84758, 84764, 84770, 84776, 84782, 84788,
- 84794, 84800, 84806, 84812, 84818, 84824, 84830, 84836, 84842, 84848,
- 84854, 84860, 84866, 84872, 84878, 84884, 84890, 84896, 84902, 84908,
- 84914, 84920, 84926, 84932, 84938, 84944, 84950, 84956, 84962, 84968,
- 84974, 84980, 84986, 84992, 84998, 85004, 85010, 85016, 85022, 85028,
- 85034, 85040, 85046, 85052, 85058, 85064, 85070, 85076, 85082, 85088,
- 85094, 85099, 85104, 85109, 85114, 85120, 85126, 85132, 85138, 85144,
- 85150, 85156, 85162, 85168, 85174, 85181, 85188, 85193, 85198, 85203,
- 85208, 85220, 85232, 85243, 85254, 85266, 85278, 85286, 0, 0, 85294, 0,
- 85302, 85306, 85310, 85313, 85317, 85321, 85324, 85327, 85331, 85335,
- 85338, 85341, 85344, 85347, 85352, 85355, 85359, 85362, 85365, 85368,
- 85371, 85374, 85377, 85380, 85383, 85386, 85389, 85392, 85396, 85400,
- 85404, 85408, 85413, 85418, 85424, 85430, 85436, 85441, 85447, 85453,
- 85459, 85464, 85470, 85476, 85481, 85486, 85492, 85497, 85503, 85509,
- 85514, 85520, 85526, 85531, 85537, 85543, 85549, 85555, 85561, 85565,
- 85570, 85574, 85579, 85583, 85588, 85593, 85599, 85605, 85611, 85616,
- 85622, 85628, 85634, 85639, 85645, 85651, 85656, 85661, 85667, 85672,
- 85678, 85684, 85689, 85695, 85701, 85706, 85712, 85718, 85724, 85730,
- 85736, 85741, 85745, 85750, 85752, 85757, 85762, 85768, 85773, 85778,
- 85782, 85788, 85793, 85798, 85803, 85808, 85813, 85818, 85823, 85829,
- 85835, 85841, 85849, 85853, 85857, 85861, 85865, 85869, 85873, 85878,
- 85883, 85888, 85893, 85897, 85902, 85907, 85912, 85917, 85922, 85927,
- 85932, 85937, 85941, 85945, 85950, 85955, 85960, 85965, 85969, 85974,
- 85979, 85984, 85989, 85993, 85998, 86003, 86008, 86013, 86017, 86022,
- 86027, 86031, 86036, 86041, 86046, 86051, 86056, 86061, 86068, 86075,
- 86079, 86084, 86089, 86094, 86099, 86104, 86109, 86114, 86119, 86124,
- 86129, 86134, 86139, 86144, 86149, 86154, 86159, 86164, 86169, 86174,
- 86179, 86184, 86189, 86194, 86199, 86204, 86209, 86214, 86219, 86224, 0,
- 0, 0, 86229, 86233, 86238, 86242, 86247, 86252, 0, 0, 86256, 86261,
- 86266, 86270, 86275, 86280, 0, 0, 86285, 86290, 86294, 86299, 86304,
- 86309, 0, 0, 86314, 86319, 86324, 0, 0, 0, 86328, 86332, 86336, 86340,
- 86343, 86347, 86351, 0, 86355, 86361, 86364, 86368, 86371, 86375, 86379,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86383, 86389, 86395, 86401, 86407, 0, 0,
- 86411, 86417, 86423, 86429, 86435, 86441, 86448, 86455, 86462, 86469,
- 86476, 86483, 0, 86490, 86497, 86504, 86510, 86517, 86524, 86531, 86538,
- 86544, 86551, 86558, 86565, 86572, 86578, 86585, 86592, 86599, 86606,
- 86612, 86619, 86626, 86633, 86640, 86647, 86654, 86661, 0, 86668, 86674,
- 86681, 86688, 86695, 86702, 86708, 86715, 86722, 86729, 86736, 86743,
- 86750, 86757, 86763, 86770, 86777, 86784, 86791, 0, 86798, 86805, 0,
- 86812, 86819, 86826, 86833, 86840, 86847, 86854, 86861, 86868, 86875,
- 86882, 86889, 86896, 86903, 86910, 0, 0, 86916, 86921, 86926, 86931,
- 86936, 86941, 86946, 86951, 86956, 86961, 86966, 86971, 86976, 86981, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 86986, 86993, 87000, 87007, 87014, 87021,
- 87028, 87035, 87042, 87049, 87056, 87063, 87070, 87077, 87084, 87091,
- 87098, 87105, 87112, 87119, 87127, 87135, 87142, 87149, 87154, 87162,
- 87170, 87177, 87184, 87189, 87196, 87201, 87206, 87213, 87218, 87223,
- 87228, 87236, 87241, 87246, 87253, 87258, 87263, 87270, 87277, 87282,
- 87287, 87292, 87297, 87302, 87307, 87312, 87317, 87322, 87329, 87334,
- 87341, 87346, 87351, 87356, 87361, 87366, 87371, 87376, 87381, 87386,
- 87391, 87396, 87403, 87410, 87417, 87424, 87430, 87435, 87442, 87447,
- 87452, 87461, 87468, 87477, 87484, 87489, 87494, 87502, 87507, 87512,
- 87517, 87522, 87527, 87534, 87539, 87544, 87549, 87554, 87559, 87566,
- 87573, 87580, 87587, 87594, 87601, 87608, 87615, 87622, 87629, 87636,
- 87643, 87650, 87657, 87664, 87671, 87678, 87685, 87692, 87699, 87706,
- 87713, 87720, 87727, 87734, 87741, 87748, 87755, 0, 0, 0, 0, 0, 87762,
- 87770, 87778, 0, 0, 0, 0, 87783, 87787, 87791, 87795, 87799, 87803,
- 87807, 87811, 87815, 87819, 87824, 87829, 87834, 87839, 87844, 87849,
- 87854, 87859, 87864, 87870, 87876, 87882, 87889, 87896, 87903, 87910,
- 87917, 87924, 87930, 87936, 87942, 87949, 87956, 87963, 87970, 87977,
- 87984, 87991, 87998, 88005, 88012, 88019, 88026, 88033, 88040, 0, 0, 0,
- 88047, 88055, 88063, 88071, 88079, 88087, 88097, 88107, 88115, 88123,
- 88131, 88139, 88147, 88153, 88160, 88169, 88178, 88187, 88196, 88205,
- 88214, 88224, 88235, 88245, 88256, 88265, 88274, 88283, 88293, 88304,
- 88314, 88325, 88336, 88345, 88353, 88359, 88365, 88371, 88377, 88385,
- 88393, 88399, 88406, 88416, 88423, 88430, 88437, 88444, 88451, 88461,
- 88468, 88475, 88483, 88491, 88500, 88509, 88518, 88527, 88536, 88544,
- 88553, 88562, 88571, 88575, 88582, 88587, 88592, 88596, 88600, 88604,
- 88608, 88613, 88618, 88624, 88630, 88634, 88640, 88644, 88648, 88652,
- 88656, 88660, 88664, 88670, 0, 0, 0, 0, 0, 88674, 88679, 88684, 88689,
- 88694, 88701, 88706, 88711, 88716, 88721, 88726, 88731, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88736,
- 88743, 88752, 88761, 88768, 88775, 88782, 88789, 88796, 88803, 88809,
- 88816, 88823, 88830, 88837, 88844, 88851, 88858, 88865, 88874, 88881,
- 88888, 88895, 88902, 88909, 88916, 88923, 88930, 88939, 88946, 88953,
- 88960, 88967, 88974, 88981, 88990, 88997, 89004, 89011, 89018, 89027,
- 89034, 89041, 89048, 89056, 89065, 0, 0, 89074, 89078, 89082, 89087,
- 89092, 89097, 89102, 89106, 89111, 89116, 89121, 89126, 89131, 89136,
- 89140, 89144, 89149, 89154, 89159, 89163, 89168, 89173, 89177, 89182,
- 89187, 89192, 89197, 89202, 89207, 0, 0, 0, 89212, 89216, 89221, 89226,
- 89230, 89235, 89239, 89244, 89249, 89254, 89259, 89263, 89267, 89272,
- 89277, 89282, 89287, 89292, 89297, 89301, 89306, 89311, 89316, 89321,
- 89326, 89331, 89335, 89339, 89344, 89349, 89354, 89359, 89364, 89369,
- 89374, 89379, 89384, 89389, 89394, 89399, 89404, 89409, 89414, 89419,
- 89424, 89429, 89434, 89439, 89444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80230, 80234, 80238, 80242,
+ 80246, 80250, 80254, 80258, 80262, 80266, 80270, 80274, 80278, 80282,
+ 80286, 80290, 80294, 80298, 80302, 80306, 80310, 80314, 80318, 0, 0, 0,
+ 0, 80322, 80326, 80330, 80334, 80338, 80342, 80346, 80350, 80354, 80358,
+ 80362, 80366, 80370, 80374, 80378, 80382, 80386, 80390, 80394, 80398,
+ 80402, 80406, 80410, 80414, 80418, 80422, 80426, 80430, 80434, 80438,
+ 80442, 80446, 80450, 80454, 80458, 80462, 80466, 80470, 80474, 80478,
+ 80482, 80486, 80490, 80494, 80498, 80502, 80506, 80510, 80514, 0, 0, 0,
+ 0, 80518, 80522, 80526, 80530, 80534, 80538, 80542, 80546, 80550, 80554,
+ 80558, 80562, 80566, 80570, 80574, 80578, 80582, 80586, 80590, 80594,
+ 80598, 80602, 80606, 80610, 80614, 80618, 80622, 80626, 80630, 80634,
+ 80638, 80642, 80646, 80650, 80654, 80658, 80662, 80666, 80670, 80674,
+ 80678, 80682, 80686, 80690, 80694, 80698, 80702, 80706, 80710, 80714,
+ 80718, 80722, 80726, 80730, 80734, 80738, 80742, 80746, 80750, 80754,
+ 80758, 80762, 80766, 80770, 80774, 80778, 80782, 80786, 80790, 80794,
+ 80798, 80802, 80806, 80810, 80814, 80818, 80822, 80826, 80830, 80834,
+ 80838, 80842, 80846, 80850, 80854, 80858, 80862, 80866, 80870, 80874,
+ 80878, 80882, 80886, 80890, 80894, 80898, 80902, 80906, 80910, 80914,
+ 80918, 80922, 80926, 80930, 80934, 80938, 80942, 80946, 80950, 80954,
+ 80958, 80962, 80966, 80970, 80974, 80978, 80982, 80986, 80990, 80994,
+ 80998, 81002, 81006, 81010, 81014, 81018, 81022, 81026, 81030, 81034,
+ 81038, 81042, 81046, 81050, 81054, 81058, 81062, 81066, 81070, 81074,
+ 81078, 81082, 81086, 81090, 81094, 81098, 81102, 81106, 81110, 81114,
+ 81118, 81122, 81126, 81130, 81134, 81138, 81142, 81146, 81150, 81154,
+ 81158, 81162, 81166, 81170, 81174, 81178, 81182, 81186, 81190, 81194,
+ 81198, 81202, 81206, 81210, 81214, 81218, 81222, 81226, 81230, 81234,
+ 81238, 81242, 81246, 81250, 81254, 81258, 81262, 81266, 81270, 81274,
+ 81278, 81282, 81286, 81290, 81294, 81298, 81302, 81306, 81310, 81314,
+ 81318, 81322, 81326, 81330, 81334, 81338, 81342, 81346, 81350, 81354,
+ 81358, 81362, 81366, 81370, 81374, 81378, 81382, 81386, 81390, 81394,
+ 81398, 81402, 81406, 81410, 81414, 81418, 81422, 81426, 81430, 81434,
+ 81438, 81442, 81446, 81450, 81454, 81458, 81462, 81466, 81470, 81474,
+ 81478, 81482, 81486, 81490, 81494, 81498, 81502, 81506, 81510, 81514,
+ 81518, 81522, 81526, 81530, 81534, 81538, 81542, 81546, 81550, 81554,
+ 81558, 81562, 81566, 81570, 81574, 81578, 81582, 81586, 81590, 81594,
+ 81598, 81602, 81606, 81610, 81614, 81618, 81622, 81626, 81630, 81634,
+ 81638, 81642, 81646, 81650, 81654, 81658, 81662, 81666, 81670, 81674,
+ 81678, 81682, 81686, 81690, 81694, 81698, 81702, 81706, 81710, 81714,
+ 81718, 81722, 81726, 81730, 81734, 81738, 81742, 81746, 81750, 81754,
+ 81758, 81762, 81766, 81770, 81774, 81778, 81782, 81786, 81790, 81794,
+ 81798, 81802, 81806, 81810, 81814, 81818, 81822, 81826, 81830, 81834,
+ 81838, 81842, 81846, 81850, 81854, 81858, 81862, 81866, 81870, 81874,
+ 81878, 81882, 81886, 81890, 81894, 81898, 81902, 81906, 81910, 81914,
+ 81918, 81922, 81926, 81930, 81934, 81938, 81942, 81946, 81950, 81954,
+ 81958, 81962, 81966, 81970, 81974, 81978, 0, 0, 81982, 81986, 81990,
+ 81994, 81998, 82002, 82006, 82010, 82014, 82018, 82022, 82026, 82030,
+ 82034, 82038, 82042, 82046, 82050, 82054, 82058, 82062, 82066, 82070,
+ 82074, 82078, 82082, 82086, 82090, 82094, 82098, 82102, 82106, 82110,
+ 82114, 82118, 82122, 82126, 82130, 82134, 82138, 82142, 82146, 82150,
+ 82154, 82158, 82162, 82166, 82170, 82174, 82178, 82182, 82186, 82190,
+ 82194, 82198, 82202, 82206, 82210, 82214, 82218, 82222, 82226, 82230,
+ 82234, 82238, 82242, 82246, 82250, 82254, 82258, 82262, 82266, 82270,
+ 82274, 82278, 82282, 82286, 82290, 82294, 82298, 82302, 82306, 82310,
+ 82314, 82318, 82322, 82326, 82330, 82334, 82338, 82342, 82346, 82350,
+ 82354, 82358, 82362, 82366, 82370, 82374, 82378, 82382, 82386, 82390,
+ 82394, 82398, 82402, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82406,
+ 82411, 82416, 82421, 82426, 82431, 82439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 82444, 82451, 82458, 82465, 82472, 0, 0, 0, 0, 0, 82479, 82486,
+ 82493, 82503, 82509, 82515, 82521, 82527, 82533, 82539, 82546, 82552,
+ 82558, 82564, 82573, 82582, 82594, 82606, 82612, 82618, 82624, 82631,
+ 82638, 82645, 82652, 82659, 0, 82666, 82673, 82680, 82688, 82695, 0,
+ 82702, 0, 82709, 82716, 0, 82723, 82731, 0, 82738, 82745, 82752, 82759,
+ 82766, 82773, 82780, 82787, 82794, 82801, 82806, 82813, 82820, 82826,
+ 82832, 82838, 82844, 82850, 82856, 82862, 82868, 82874, 82880, 82886,
+ 82892, 82898, 82904, 82910, 82916, 82922, 82928, 82934, 82940, 82946,
+ 82952, 82958, 82964, 82970, 82976, 82982, 82988, 82994, 83000, 83006,
+ 83012, 83018, 83024, 83030, 83036, 83042, 83048, 83054, 83060, 83066,
+ 83072, 83078, 83084, 83090, 83096, 83102, 83108, 83114, 83120, 83126,
+ 83132, 83138, 83144, 83150, 83156, 83162, 83168, 83174, 83180, 83186,
+ 83192, 83198, 83204, 83210, 83216, 83222, 83228, 83234, 83240, 83246,
+ 83252, 83258, 83264, 83270, 83276, 83284, 83292, 83298, 83304, 83310,
+ 83316, 83325, 83334, 83342, 83350, 83358, 83366, 83374, 83382, 83390,
+ 83398, 83405, 83412, 83423, 83434, 83438, 83442, 83447, 83452, 83457,
+ 83462, 83470, 83478, 83484, 83490, 83497, 83504, 83511, 83515, 83521, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83527, 83533, 83539,
+ 83545, 83551, 83556, 83561, 83567, 83573, 83579, 83585, 83594, 83600,
+ 83606, 83614, 83622, 83630, 83638, 83643, 83648, 83653, 83658, 83671,
+ 83684, 83695, 83706, 83718, 83730, 83742, 83754, 83765, 83776, 83788,
+ 83800, 83812, 83824, 83835, 83846, 83857, 83874, 83891, 83908, 83915,
+ 83922, 83929, 83936, 83947, 83958, 83969, 83982, 83993, 84001, 84009,
+ 84018, 84026, 84036, 84044, 84052, 84060, 84069, 84077, 84087, 84095,
+ 84103, 84111, 84121, 84129, 84136, 84143, 84150, 84157, 84165, 84173,
+ 84181, 84189, 84197, 84206, 84214, 84222, 84230, 84238, 84246, 84255,
+ 84263, 84271, 84279, 84287, 84295, 84303, 84311, 84319, 84327, 84335,
+ 84344, 84352, 84362, 84370, 84378, 84386, 84396, 84404, 84412, 84420,
+ 84428, 84437, 84446, 84454, 84464, 84472, 84480, 84488, 84497, 84505,
+ 84515, 84523, 84530, 84537, 84545, 84552, 84561, 84568, 84576, 84584,
+ 84593, 84601, 84611, 84619, 84627, 84635, 84645, 84653, 84660, 84667,
+ 84675, 84682, 84691, 84698, 84708, 84718, 84729, 84738, 84747, 84756,
+ 84765, 84774, 84784, 84796, 84808, 84819, 84831, 84844, 84855, 84864,
+ 84873, 84881, 84890, 84900, 84908, 84917, 84926, 84934, 84943, 84953,
+ 84961, 84970, 84979, 84987, 84996, 85006, 85014, 85024, 85032, 85042,
+ 85050, 85058, 85067, 85075, 85085, 85093, 85101, 85111, 85119, 85126,
+ 85133, 85142, 85151, 85159, 85168, 85178, 85186, 85197, 85205, 85213,
+ 85220, 85228, 85237, 85244, 85255, 85266, 85278, 85289, 85301, 85309,
+ 85317, 85326, 85334, 85343, 85351, 85359, 85368, 85376, 85385, 85393,
+ 85400, 85407, 85414, 85421, 85429, 85437, 85445, 85453, 85462, 85470,
+ 85478, 85487, 85495, 85503, 85511, 85520, 85528, 85536, 85544, 85552,
+ 85560, 85568, 85576, 85584, 85592, 85601, 85609, 85617, 85625, 85633,
+ 85641, 85650, 85659, 85667, 85675, 85683, 85692, 85700, 85709, 85716,
+ 85723, 85731, 85738, 85746, 85754, 85763, 85771, 85780, 85788, 85796,
+ 85806, 85813, 85820, 85828, 85835, 85843, 85854, 85866, 85874, 85883,
+ 85891, 85900, 85908, 85917, 85925, 85934, 85942, 85951, 85960, 85968,
+ 85976, 85984, 85993, 86000, 86008, 86017, 86026, 86035, 86045, 86053,
+ 86063, 86071, 86081, 86089, 86099, 86107, 86117, 86125, 86134, 86141,
+ 86150, 86157, 86167, 86175, 86185, 86193, 86203, 86211, 86219, 86227,
+ 86236, 86244, 86253, 86262, 86271, 86280, 86290, 86298, 86308, 86316,
+ 86326, 86334, 86344, 86352, 86362, 86370, 86379, 86386, 86395, 86402,
+ 86412, 86420, 86430, 86438, 86448, 86456, 86464, 86472, 86481, 86489,
+ 86498, 86507, 86516, 86525, 86533, 86541, 86550, 86558, 86567, 86576,
+ 86584, 86592, 86600, 86609, 86617, 86625, 86634, 86642, 86650, 86658,
+ 86666, 86671, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86676,
+ 86686, 86696, 86706, 86716, 86727, 86737, 86747, 86758, 86767, 86776,
+ 86785, 86796, 86806, 86816, 86828, 86838, 86848, 86858, 86868, 86878,
+ 86888, 86898, 86908, 86918, 86928, 86938, 86949, 86960, 86970, 86980,
+ 86992, 87003, 87014, 87024, 87034, 87044, 87054, 87064, 87074, 87084,
+ 87096, 87106, 87116, 87128, 87139, 87150, 87160, 87170, 87180, 87190,
+ 87202, 87212, 87222, 87233, 87244, 87254, 87264, 87273, 87282, 87291,
+ 87300, 87309, 87319, 0, 0, 87329, 87339, 87349, 87359, 87369, 87381,
+ 87391, 87401, 87413, 87423, 87435, 87444, 87453, 87464, 87474, 87486,
+ 87497, 87510, 87520, 87532, 87541, 87552, 87563, 87576, 87586, 87596,
+ 87606, 87616, 87626, 87635, 87644, 87653, 87662, 87672, 87682, 87692,
+ 87702, 87712, 87722, 87732, 87742, 87752, 87762, 87772, 87782, 87791,
+ 87800, 87809, 87819, 87829, 87839, 87849, 87859, 87870, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89449, 89453, 89458, 89463, 89468, 89472,
- 89477, 89482, 89487, 89492, 89496, 89500, 89505, 89510, 89515, 89520,
- 89524, 89529, 89534, 89539, 89544, 89549, 89554, 89558, 89563, 89568,
- 89573, 89578, 89583, 89588, 89593, 0, 89598, 89603, 89608, 89614, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89620, 89625, 89630, 89635, 89640, 89645,
- 89650, 89655, 89660, 89665, 89670, 89675, 89680, 89685, 89690, 89695,
- 89700, 89705, 89710, 89715, 89720, 89725, 89730, 89735, 89740, 89745,
- 89750, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87880, 87895, 87910, 87916, 87922, 87928,
+ 87934, 87940, 87946, 87952, 87958, 87966, 87970, 87973, 0, 0, 87981,
+ 87984, 87987, 87990, 87993, 87996, 87999, 88002, 88005, 88008, 88011,
+ 88014, 88017, 88020, 88023, 88026, 88029, 88037, 88046, 88057, 88065,
+ 88073, 88082, 88091, 88102, 88114, 0, 0, 0, 0, 0, 0, 88124, 88129, 88134,
+ 88141, 88148, 88154, 88160, 88165, 88170, 88175, 88181, 88187, 88193,
+ 88199, 88205, 88212, 88219, 88229, 88239, 88249, 88258, 88269, 88278,
+ 88287, 88297, 88307, 88319, 88331, 88342, 88353, 88364, 88375, 88385,
+ 88395, 88405, 88415, 88426, 88437, 88441, 88446, 88455, 88464, 88468,
+ 88472, 88476, 88481, 88486, 88491, 88496, 88499, 88503, 0, 88508, 88511,
+ 88514, 88518, 88522, 88527, 88531, 88535, 88540, 88545, 88552, 88559,
+ 88562, 88565, 88568, 88571, 88574, 88578, 88582, 0, 88586, 88591, 88595,
+ 88599, 0, 0, 0, 0, 88604, 88609, 88616, 88621, 88626, 0, 88631, 88636,
+ 88641, 88646, 88651, 88656, 88661, 88666, 88671, 88676, 88681, 88687,
+ 88696, 88705, 88714, 88723, 88733, 88743, 88753, 88763, 88772, 88781,
+ 88790, 88799, 88804, 88809, 88815, 88821, 88827, 88833, 88841, 88849,
+ 88855, 88861, 88867, 88873, 88879, 88885, 88891, 88897, 88902, 88907,
+ 88912, 88917, 88922, 88927, 88932, 88937, 88943, 88949, 88955, 88961,
+ 88967, 88973, 88979, 88985, 88991, 88997, 89003, 89009, 89015, 89021,
+ 89027, 89033, 89039, 89045, 89051, 89057, 89063, 89069, 89075, 89081,
+ 89087, 89093, 89099, 89105, 89111, 89117, 89123, 89129, 89135, 89141,
+ 89147, 89153, 89159, 89165, 89171, 89177, 89183, 89189, 89195, 89201,
+ 89207, 89213, 89219, 89225, 89231, 89237, 89243, 89249, 89255, 89261,
+ 89267, 89273, 89279, 89285, 89291, 89297, 89302, 89307, 89312, 89317,
+ 89323, 89329, 89335, 89341, 89347, 89353, 89359, 89365, 89371, 89377,
+ 89384, 89391, 89396, 89401, 89406, 89411, 89423, 89435, 89447, 89459,
+ 89472, 89485, 89493, 0, 0, 89501, 0, 89509, 89513, 89517, 89520, 89524,
+ 89528, 89531, 89534, 89538, 89542, 89545, 89548, 89551, 89554, 89559,
+ 89562, 89566, 89569, 89572, 89575, 89578, 89581, 89584, 89588, 89591,
+ 89595, 89598, 89601, 89605, 89609, 89613, 89617, 89622, 89627, 89633,
+ 89639, 89645, 89650, 89656, 89662, 89668, 89673, 89679, 89685, 89690,
+ 89696, 89702, 89707, 89713, 89719, 89724, 89729, 89735, 89740, 89746,
+ 89752, 89758, 89764, 89770, 89774, 89779, 89783, 89788, 89792, 89797,
+ 89802, 89808, 89814, 89820, 89825, 89831, 89837, 89843, 89848, 89854,
+ 89860, 89865, 89871, 89877, 89882, 89888, 89894, 89899, 89904, 89910,
+ 89915, 89921, 89927, 89933, 89939, 89945, 89950, 89954, 89959, 89962,
+ 89967, 89972, 89978, 89983, 89988, 89992, 89997, 90002, 90007, 90012,
+ 90017, 90022, 90027, 90032, 90038, 90044, 90050, 90058, 90062, 90066,
+ 90070, 90074, 90078, 90082, 90087, 90092, 90097, 90102, 90107, 90112,
+ 90117, 90122, 90127, 90132, 90137, 90142, 90147, 90151, 90156, 90161,
+ 90166, 90171, 90176, 90180, 90185, 90190, 90195, 90200, 90204, 90209,
+ 90214, 90219, 90224, 90228, 90233, 90238, 90243, 90248, 90253, 90258,
+ 90263, 90268, 90273, 90280, 90287, 90291, 90296, 90301, 90306, 90311,
+ 90316, 90321, 90326, 90331, 90336, 90341, 90346, 90351, 90356, 90361,
+ 90366, 90371, 90376, 90381, 90386, 90391, 90396, 90401, 90406, 90411,
+ 90416, 90421, 90426, 90431, 90436, 0, 0, 0, 90441, 90445, 90450, 90454,
+ 90459, 90464, 0, 0, 90468, 90473, 90478, 90482, 90487, 90492, 0, 0,
+ 90497, 90502, 90506, 90511, 90516, 90521, 0, 0, 90526, 90531, 90536, 0,
+ 0, 0, 90540, 90544, 90548, 90552, 90555, 90559, 90563, 0, 90567, 90573,
+ 90576, 90579, 90582, 90585, 90589, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90593,
+ 90599, 90605, 90611, 90617, 0, 0, 90621, 90627, 90633, 90639, 90645,
+ 90651, 90658, 90665, 90672, 90679, 90686, 90693, 0, 90700, 90707, 90714,
+ 90720, 90727, 90734, 90741, 90748, 90754, 90761, 90768, 90775, 90782,
+ 90789, 90796, 90803, 90810, 90817, 90823, 90830, 90837, 90844, 90851,
+ 90858, 90865, 90872, 0, 90879, 90886, 90893, 90900, 90907, 90914, 90921,
+ 90928, 90935, 90942, 90949, 90956, 90963, 90970, 90976, 90983, 90990,
+ 90997, 91004, 0, 91011, 91018, 0, 91025, 91032, 91039, 91046, 91053,
+ 91060, 91067, 91074, 91081, 91088, 91095, 91102, 91109, 91116, 91123, 0,
+ 0, 91129, 91134, 91139, 91144, 91149, 91154, 91159, 91164, 91169, 91174,
+ 91179, 91184, 91189, 91194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91199, 91206,
+ 91213, 91220, 91227, 91234, 91241, 91248, 91255, 91262, 91269, 91276,
+ 91283, 91290, 91297, 91304, 91311, 91318, 91325, 91332, 91340, 91348,
+ 91355, 91362, 91367, 91375, 91383, 91390, 91397, 91402, 91409, 91414,
+ 91419, 91426, 91431, 91436, 91441, 91449, 91454, 91459, 91466, 91471,
+ 91476, 91483, 91490, 91495, 91500, 91505, 91510, 91515, 91520, 91525,
+ 91530, 91535, 91542, 91547, 91554, 91559, 91564, 91569, 91574, 91579,
+ 91584, 91589, 91594, 91599, 91604, 91609, 91616, 91623, 91630, 91637,
+ 91643, 91648, 91655, 91660, 91665, 91674, 91681, 91690, 91697, 91702,
+ 91707, 91715, 91720, 91725, 91730, 91735, 91740, 91747, 91752, 91757,
+ 91762, 91767, 91772, 91779, 91786, 91793, 91800, 91807, 91814, 91821,
+ 91828, 91835, 91842, 91849, 91856, 91863, 91870, 91877, 91884, 91891,
+ 91898, 91905, 91912, 91919, 91926, 91933, 91940, 91947, 91954, 91961,
+ 91968, 0, 0, 0, 0, 0, 91975, 91983, 91991, 0, 0, 0, 0, 91996, 92000,
+ 92004, 92008, 92012, 92016, 92020, 92025, 92029, 92034, 92039, 92044,
+ 92049, 92054, 92059, 92064, 92069, 92074, 92079, 92085, 92091, 92097,
+ 92104, 92111, 92118, 92125, 92132, 92139, 92145, 92151, 92157, 92164,
+ 92171, 92178, 92185, 92192, 92199, 92206, 92213, 92220, 92227, 92234,
+ 92241, 92248, 92255, 0, 0, 0, 92262, 92270, 92278, 92286, 92294, 92302,
+ 92312, 92322, 92330, 92338, 92346, 92354, 92362, 92368, 92375, 92384,
+ 92393, 92402, 92411, 92420, 92429, 92439, 92450, 92460, 92471, 92480,
+ 92489, 92498, 92508, 92519, 92529, 92540, 92551, 92560, 92568, 92574,
+ 92580, 92586, 92592, 92600, 92608, 92614, 92621, 92631, 92638, 92645,
+ 92652, 92659, 92666, 92676, 92683, 92690, 92698, 92706, 92715, 92724,
+ 92733, 92742, 92751, 92759, 92768, 92777, 92786, 92790, 92797, 92802,
+ 92807, 92811, 92815, 92819, 92823, 92828, 92833, 92839, 92845, 92849,
+ 92855, 92859, 92863, 92867, 92871, 92875, 92879, 92885, 92889, 92894, 0,
+ 0, 0, 92898, 92903, 92908, 92913, 92918, 92925, 92930, 92935, 92940,
+ 92945, 92950, 92955, 0, 0, 0, 0, 92960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 89757, 89762, 89767, 89772, 89777, 89782, 89787,
- 89792, 89797, 89802, 89807, 89812, 89817, 89822, 89827, 89832, 89837,
- 89842, 89847, 89852, 89857, 89862, 89867, 89872, 89877, 89882, 89887,
- 89891, 89895, 89899, 0, 89904, 89910, 89915, 89920, 89925, 89930, 89936,
- 89942, 89948, 89954, 89960, 89966, 89972, 89978, 89984, 89990, 89996,
- 90002, 90008, 90013, 90019, 90025, 90030, 90036, 90041, 90047, 90053,
- 90058, 90064, 90070, 90075, 90081, 90087, 90092, 90098, 90104, 90110, 0,
- 0, 0, 0, 90115, 90121, 90127, 90133, 90139, 90145, 90151, 90157, 90163,
- 90170, 90175, 90180, 90186, 90192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92966, 92973, 92982, 92991, 92998,
+ 93005, 93012, 93019, 93026, 93033, 93039, 93046, 93053, 93060, 93067,
+ 93074, 93081, 93088, 93095, 93104, 93111, 93118, 93125, 93132, 93139,
+ 93146, 93153, 93160, 93169, 93176, 93183, 93190, 93197, 93204, 93211,
+ 93220, 93227, 93234, 93241, 93248, 93257, 93264, 93271, 93278, 93286,
+ 93295, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 90198, 90203, 90208, 90213, 90219, 90224, 90230, 90236,
- 90242, 90248, 90255, 90261, 90268, 90273, 90278, 90283, 90288, 90293,
- 90298, 90303, 90308, 90313, 90318, 90323, 90328, 90333, 90338, 90343,
- 90348, 90353, 90358, 90363, 90368, 90373, 90378, 90383, 90388, 90393,
- 90398, 90403, 90408, 90413, 90418, 90423, 90429, 90434, 90440, 90446,
- 90452, 90458, 90465, 90471, 90478, 90483, 90488, 90493, 90498, 90503,
- 90508, 90513, 90518, 90523, 90528, 90533, 90538, 90543, 90548, 90553,
- 90558, 90563, 90568, 90573, 90578, 90583, 90588, 90593, 90598, 90603,
- 90608, 90613, 90618, 90623, 90628, 90633, 90638, 90643, 90648, 90653,
- 90658, 90663, 90668, 90673, 90678, 90683, 90688, 90693, 90698, 90703,
- 90708, 90713, 90718, 90723, 90728, 90733, 90738, 90743, 90748, 90753,
- 90758, 90763, 90768, 90773, 90778, 90783, 90788, 90793, 90798, 90803,
- 90808, 90813, 90818, 90823, 90828, 90833, 90838, 90843, 90848, 90853,
- 90858, 90863, 90868, 90873, 90878, 90883, 90888, 90893, 90897, 90901,
- 90906, 90911, 90916, 90921, 90926, 90931, 90936, 90941, 90946, 90951,
- 90956, 90960, 90964, 90968, 90972, 90976, 90980, 90984, 90989, 90994, 0,
- 0, 90999, 91004, 91008, 91012, 91016, 91020, 91024, 91028, 91032, 91036,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91040, 91044, 91048, 91052,
- 91056, 91060, 0, 0, 91065, 0, 91070, 91074, 91079, 91084, 91089, 91094,
- 91099, 91104, 91109, 91114, 91119, 91123, 91128, 91133, 91138, 91143,
- 91147, 91152, 91157, 91162, 91167, 91171, 91176, 91181, 91186, 91191,
- 91195, 91200, 91205, 91210, 91215, 91219, 91224, 91229, 91234, 91239,
- 91244, 91249, 91254, 91258, 91263, 91268, 91273, 91278, 0, 91283, 91288,
- 0, 0, 0, 91293, 0, 0, 91298, 91303, 91310, 91317, 91324, 91331, 91338,
- 91345, 91352, 91359, 91366, 91373, 91380, 91387, 91394, 91401, 91408,
- 91415, 91422, 91429, 91436, 91443, 91450, 0, 91457, 91464, 91470, 91476,
- 91482, 91489, 91496, 91504, 91512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91521, 91526,
- 91531, 91536, 91541, 91546, 91551, 91556, 91561, 91566, 91571, 91576,
- 91581, 91586, 91591, 91596, 91601, 91606, 91611, 91616, 91621, 91626,
- 91631, 91635, 91640, 91645, 91651, 91655, 0, 0, 0, 91659, 91665, 91669,
- 91674, 91679, 91684, 91688, 91693, 91697, 91702, 91707, 91711, 91715,
- 91720, 91724, 91728, 91733, 91738, 91742, 91747, 91752, 91757, 91762,
- 91767, 91772, 91777, 91782, 0, 0, 0, 0, 0, 91787, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93304, 93308, 93312, 93317, 93322,
+ 93327, 93332, 93336, 93341, 93346, 93351, 93356, 93361, 93366, 93370,
+ 93375, 93380, 93385, 93390, 93394, 93399, 93404, 93408, 93412, 93417,
+ 93422, 93427, 93432, 93437, 0, 0, 0, 93442, 93446, 93451, 93456, 93460,
+ 93465, 93469, 93474, 93479, 93484, 93489, 93494, 93498, 93503, 93508,
+ 93513, 93518, 93522, 93527, 93531, 93536, 93541, 93546, 93551, 93556,
+ 93561, 93565, 93569, 93574, 93579, 93584, 93589, 93594, 93599, 93604,
+ 93609, 93614, 93619, 93624, 93629, 93634, 93639, 93644, 93649, 93654,
+ 93659, 93664, 93669, 93674, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 93679, 93685, 93690, 93695, 93700, 93705, 93710, 93715, 93721, 93726,
+ 93732, 93738, 93744, 93750, 93756, 93762, 93768, 93774, 93780, 93786,
+ 93793, 93800, 93807, 93815, 93823, 93831, 93839, 93847, 0, 0, 0, 0,
+ 93855, 93859, 93864, 93869, 93874, 93878, 93883, 93888, 93893, 93898,
+ 93902, 93906, 93911, 93916, 93921, 93926, 93930, 93935, 93940, 93945,
+ 93950, 93955, 93960, 93964, 93969, 93974, 93979, 93984, 93989, 93994,
+ 93999, 94004, 94009, 94014, 94019, 94025, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 94031, 94036, 94041, 94046, 94051, 94056, 94061, 94066, 94071,
+ 94076, 94081, 94086, 94091, 94096, 94101, 94106, 94111, 94116, 94121,
+ 94126, 94131, 94136, 94141, 94146, 94151, 94156, 94161, 0, 0, 0, 0, 0,
+ 94168, 94174, 94180, 94186, 94192, 94197, 94203, 94209, 94215, 94221,
+ 94226, 94232, 94238, 94244, 94250, 94256, 94262, 94268, 94274, 94280,
+ 94285, 94291, 94297, 94303, 94309, 94315, 94320, 94326, 94332, 94337,
+ 94343, 94349, 94355, 94361, 94367, 94373, 94379, 94384, 94390, 94397,
+ 94404, 94411, 94418, 0, 0, 0, 0, 0, 94425, 94430, 94435, 94440, 94445,
+ 94450, 94455, 94460, 94465, 94470, 94475, 94480, 94485, 94490, 94495,
+ 94500, 94505, 94510, 94515, 94520, 94525, 94530, 94535, 94540, 94545,
+ 94550, 94555, 94559, 94563, 94567, 0, 94572, 94578, 94583, 94588, 94593,
+ 94598, 94604, 94610, 94616, 94622, 94628, 94634, 94640, 94646, 94652,
+ 94658, 94664, 94670, 94676, 94681, 94687, 94693, 94699, 94705, 94710,
+ 94716, 94722, 94727, 94733, 94739, 94745, 94751, 94757, 94763, 94769,
+ 94775, 94781, 0, 0, 0, 0, 94786, 94792, 94798, 94804, 94810, 94816,
+ 94822, 94828, 94834, 94841, 94846, 94851, 94857, 94863, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94869, 94875, 94881, 94887, 94894,
+ 94900, 94907, 94914, 94921, 94928, 94936, 94943, 94951, 94957, 94963,
+ 94969, 94975, 94981, 94987, 94993, 94999, 95005, 95011, 95017, 95023,
+ 95029, 95035, 95041, 95047, 95053, 95059, 95065, 95071, 95077, 95083,
+ 95089, 95095, 95101, 95107, 95113, 95119, 95125, 95131, 95137, 95144,
+ 95150, 95157, 95164, 95171, 95178, 95186, 95193, 95201, 95207, 95213,
+ 95219, 95225, 95231, 95237, 95243, 95249, 95255, 95261, 95267, 95273,
+ 95279, 95285, 95291, 95297, 95303, 95309, 95315, 95321, 95327, 95333,
+ 95339, 95345, 95351, 95357, 95363, 95369, 95374, 95379, 95384, 95389,
+ 95394, 95399, 95404, 95409, 95414, 95419, 95424, 95429, 95434, 95439,
+ 95444, 95449, 95454, 95459, 95464, 95469, 95474, 95479, 95484, 95489,
+ 95494, 95499, 95504, 95509, 95514, 95519, 95524, 95529, 95534, 95539,
+ 95544, 95549, 95554, 95559, 95564, 95569, 95574, 95579, 95584, 95589,
+ 95594, 95599, 95604, 95609, 95614, 95619, 95624, 95629, 95634, 95639,
+ 95644, 95649, 95654, 95659, 95664, 95669, 95674, 95679, 95684, 95689,
+ 95694, 95699, 95704, 95709, 95713, 95717, 95721, 95725, 95729, 95733,
+ 95737, 95742, 95747, 0, 0, 95752, 95757, 95761, 95765, 95769, 95773,
+ 95777, 95781, 95786, 95790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 91792, 91798, 91804, 91810, 91816, 91822, 91829,
- 91836, 91843, 91849, 91855, 91861, 91868, 91875, 91882, 91888, 91895,
- 91902, 91909, 91916, 91922, 91929, 91936, 91942, 91949, 91956, 91963,
- 91970, 91977, 91983, 91990, 91997, 92004, 92010, 92016, 92022, 92028,
- 92034, 92041, 92048, 92054, 92060, 92066, 92073, 92079, 92086, 92093,
- 92100, 92106, 92114, 92121, 92127, 92134, 92141, 92148, 92154, 0, 0, 0,
- 0, 0, 0, 92161, 92169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 92177, 92181, 92186, 92191, 0, 92197, 92202, 0, 0, 0, 0, 0, 92207, 92213,
- 92220, 92225, 92230, 92234, 92239, 92244, 0, 92249, 92254, 92259, 0,
- 92264, 92269, 92274, 92279, 92284, 92289, 92294, 92299, 92304, 92309,
- 92314, 92318, 92322, 92327, 92332, 92337, 92341, 92345, 92349, 92354,
- 92359, 92364, 92369, 92373, 92378, 92382, 92387, 0, 0, 0, 0, 92392,
- 92398, 92403, 0, 0, 0, 0, 92408, 92412, 92416, 92420, 92424, 92428,
- 92433, 92438, 92444, 0, 0, 0, 0, 0, 0, 0, 0, 92450, 92456, 92463, 92469,
- 92476, 92482, 92488, 92494, 92501, 0, 0, 0, 0, 0, 0, 0, 92507, 92515,
- 92523, 92531, 92539, 92547, 92555, 92563, 92571, 92579, 92587, 92595,
- 92603, 92611, 92619, 92627, 92635, 92643, 92651, 92659, 92667, 92675,
- 92683, 92691, 92699, 92707, 92715, 92723, 92731, 92739, 92746, 92754,
- 92762, 92766, 92771, 92776, 92781, 92786, 92791, 92796, 92801, 92805,
- 92810, 92814, 92819, 92823, 92828, 92832, 92837, 92842, 92847, 92852,
- 92857, 92862, 92867, 92872, 92877, 92882, 92887, 92892, 92897, 92902,
- 92907, 92912, 92917, 92922, 92927, 92932, 92937, 92942, 92947, 92952,
- 92957, 92962, 92967, 92972, 92977, 92982, 92987, 92992, 92997, 93002,
- 93007, 93012, 93017, 93022, 0, 0, 0, 93027, 93032, 93041, 93049, 93058,
- 93067, 93078, 93089, 93096, 93103, 93110, 93117, 93124, 93131, 93138,
- 93145, 93152, 93159, 93166, 93173, 93180, 93187, 93194, 93201, 93208,
- 93215, 93222, 93229, 93236, 0, 0, 93243, 93249, 93255, 93261, 93267,
- 93274, 93281, 93289, 93297, 93304, 93311, 93318, 93325, 93332, 93339,
- 93346, 93353, 93360, 93367, 93374, 93381, 93388, 93395, 93402, 93409,
- 93416, 93423, 0, 0, 0, 0, 0, 93430, 93436, 93442, 93448, 93454, 93461,
- 93468, 93476, 93484, 93490, 93496, 93503, 93509, 93515, 93521, 93527,
- 93534, 93541, 93548, 93555, 93562, 93569, 93576, 93583, 93590, 93597,
- 93604, 93611, 93618, 93625, 93632, 93639, 93646, 93653, 93660, 93667,
- 93674, 93681, 93688, 93695, 93702, 93709, 93716, 93723, 93730, 93737,
- 93744, 93751, 93758, 93765, 93772, 93779, 93786, 93793, 93800, 93807,
- 93814, 93821, 93828, 93835, 93842, 93849, 93856, 93863, 93870, 93877,
- 93884, 93891, 93898, 93905, 93912, 93919, 93926, 93933, 93940, 93947,
- 93954, 93961, 93968, 93975, 93982, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 95795, 95799, 95804, 95809, 95814, 95819, 95824, 95829, 95834, 95838,
+ 95843, 95848, 95853, 95858, 95862, 95867, 95872, 95877, 95882, 95887,
+ 95892, 95897, 95902, 95906, 95911, 95916, 95921, 95926, 95931, 95936,
+ 95941, 95946, 95950, 95955, 95960, 95965, 95970, 95975, 95980, 95985, 0,
+ 0, 0, 0, 0, 0, 0, 0, 95990, 95997, 96004, 96011, 96018, 96025, 96032,
+ 96039, 96046, 96053, 96060, 96067, 96074, 96081, 96088, 96095, 96102,
+ 96109, 96116, 96123, 96130, 96137, 96144, 96151, 96158, 96165, 96172,
+ 96179, 96186, 96193, 96200, 96207, 96214, 96221, 96228, 96235, 96242,
+ 96249, 96256, 96263, 96270, 96277, 96284, 96291, 96298, 96305, 96312,
+ 96319, 96326, 96333, 96340, 96347, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 96354, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 96361, 96366, 96371, 96376, 96381, 96386, 96391, 96396, 96401,
+ 96406, 96411, 96416, 96421, 96426, 96431, 96436, 96441, 96446, 96451,
+ 96456, 96461, 96466, 96471, 96476, 96481, 96486, 96491, 96496, 96501,
+ 96506, 96511, 96516, 96521, 96526, 96531, 96536, 96541, 96546, 96551,
+ 96556, 96561, 96566, 96571, 96576, 96581, 96586, 96591, 96596, 96601,
+ 96606, 96611, 96616, 96621, 96626, 96631, 96636, 96641, 96646, 96651,
+ 96656, 96661, 96666, 96671, 96676, 96681, 96686, 96691, 96696, 96701,
+ 96706, 96711, 96716, 96721, 96726, 96731, 96736, 96741, 96746, 96751,
+ 96756, 96761, 96766, 96771, 96776, 96781, 96786, 96791, 96796, 96801,
+ 96806, 96811, 96816, 96821, 96826, 96831, 96836, 96841, 96846, 96851,
+ 96856, 96861, 96866, 96871, 96876, 96881, 96886, 96891, 96896, 96901,
+ 96906, 96911, 96916, 96921, 96926, 96931, 96936, 96941, 96946, 96951,
+ 96956, 96961, 96966, 96971, 96976, 96981, 96986, 96991, 96996, 97001,
+ 97006, 97011, 97016, 97021, 97026, 97031, 97036, 97041, 97046, 97051,
+ 97056, 97061, 97066, 97071, 97076, 97081, 97086, 97091, 97096, 97101,
+ 97106, 97111, 97116, 97121, 97126, 97131, 97136, 97141, 97146, 97151,
+ 97156, 97161, 97166, 97171, 97176, 97181, 97186, 97191, 97196, 97201,
+ 97206, 97211, 97216, 97221, 97226, 97231, 97236, 97241, 97246, 97251,
+ 97256, 97261, 97266, 97271, 97276, 97281, 97286, 97291, 97296, 97301,
+ 97306, 97311, 97316, 97321, 97326, 97331, 97336, 97341, 97346, 97351,
+ 97356, 97361, 97366, 97371, 97376, 97381, 97386, 97391, 97396, 97401,
+ 97406, 97411, 97416, 97421, 97426, 97431, 97436, 97441, 97446, 97451,
+ 97456, 97461, 97466, 97471, 97476, 97481, 97486, 97491, 97496, 97501,
+ 97506, 97511, 97516, 97521, 97526, 97531, 97536, 97541, 97546, 97551,
+ 97556, 97561, 97566, 97571, 97576, 97581, 97586, 97591, 97596, 97601,
+ 97606, 97611, 97616, 97621, 97626, 97631, 97636, 97641, 97646, 97651,
+ 97656, 97661, 97666, 97671, 97676, 97681, 97686, 97691, 97696, 97701,
+ 97706, 97711, 97716, 97721, 97726, 97731, 97736, 97741, 97746, 97751,
+ 97756, 97761, 97766, 97771, 97776, 97781, 97786, 97791, 97796, 97801,
+ 97806, 97811, 97816, 97821, 97826, 97831, 97836, 97841, 97846, 97851,
+ 97856, 97861, 97866, 97871, 97876, 97881, 97886, 97891, 97896, 97901,
+ 97906, 97911, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97916, 97922, 97929, 97936,
+ 97942, 97949, 97956, 97963, 97970, 97976, 97983, 97990, 97997, 98004,
+ 98011, 98018, 98025, 98032, 98039, 98046, 98053, 98060, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 98067, 98072, 98077, 98082, 98087, 98092, 98097, 98102, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 98107, 98111, 98115, 98119, 98123, 98127, 0, 0, 98132,
+ 0, 98137, 98141, 98146, 98151, 98156, 98161, 98166, 98171, 98176, 98181,
+ 98186, 98190, 98195, 98200, 98205, 98210, 98215, 98220, 98225, 98230,
+ 98235, 98239, 98244, 98249, 98254, 98259, 98264, 98269, 98274, 98279,
+ 98284, 98289, 98294, 98299, 98304, 98309, 98314, 98319, 98324, 98328,
+ 98333, 98338, 98343, 98348, 0, 98353, 98358, 0, 0, 0, 98363, 0, 0, 98368,
+ 98373, 98380, 98387, 98394, 98401, 98408, 98415, 98422, 98429, 98436,
+ 98443, 98450, 98457, 98464, 98471, 98478, 98485, 98492, 98499, 98506,
+ 98513, 98520, 0, 98527, 98534, 98540, 98546, 98552, 98559, 98566, 98574,
+ 98582, 98591, 98596, 98601, 98606, 98611, 98616, 98621, 98626, 98631,
+ 98636, 98641, 98646, 98651, 98656, 98662, 98667, 98672, 98677, 98682,
+ 98687, 98692, 98697, 98702, 98707, 98713, 98719, 98723, 98727, 98731,
+ 98735, 98739, 98744, 98749, 98755, 98760, 98766, 98771, 98776, 98781,
+ 98787, 98792, 98797, 98802, 98807, 98812, 98818, 98823, 98829, 98834,
+ 98840, 98845, 98851, 98856, 98862, 98867, 98872, 98877, 98882, 98887,
+ 98892, 98897, 98903, 98908, 0, 0, 0, 0, 0, 0, 0, 0, 98913, 98917, 98921,
+ 98925, 98929, 98935, 98939, 98944, 98949, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98955, 98960, 98965, 98970,
+ 98975, 98980, 98985, 98990, 98995, 99000, 99005, 99010, 99015, 99020,
+ 99025, 99030, 99035, 99040, 99045, 0, 99050, 99055, 0, 0, 0, 0, 0, 99060,
+ 99064, 99068, 99073, 99078, 99084, 99089, 99094, 99099, 99104, 99109,
+ 99114, 99119, 99124, 99129, 99134, 99139, 99144, 99149, 99154, 99159,
+ 99164, 99169, 99174, 99179, 99184, 99189, 99194, 99198, 99203, 99208,
+ 99214, 99218, 0, 0, 0, 99222, 99228, 99232, 99237, 99242, 99247, 99251,
+ 99256, 99260, 99265, 99270, 99274, 99279, 99284, 99288, 99292, 99297,
+ 99302, 99306, 99311, 99316, 99320, 99325, 99330, 99335, 99340, 99345, 0,
+ 0, 0, 0, 0, 99350, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99355,
+ 99360, 99365, 99370, 99375, 99380, 99386, 99392, 99398, 99403, 99408,
+ 99414, 99420, 99426, 99432, 99438, 99444, 99450, 99456, 99462, 99468,
+ 99474, 99480, 99485, 99491, 99497, 99503, 99509, 99515, 99520, 99526,
+ 99532, 99538, 99542, 99546, 99550, 99554, 99558, 99563, 99568, 99572,
+ 99576, 99581, 99586, 99591, 99596, 99601, 99606, 99611, 99618, 99623,
+ 99627, 99632, 99637, 99642, 99646, 0, 0, 0, 0, 99651, 99659, 99666,
+ 99672, 99678, 99682, 99686, 99690, 99694, 99698, 99702, 99707, 99711,
+ 99716, 99721, 99726, 99731, 99736, 99741, 99746, 0, 0, 99751, 99757,
+ 99763, 99769, 99776, 99783, 99790, 99797, 99804, 99811, 99817, 99823,
+ 99829, 99836, 99843, 99850, 99857, 99864, 99871, 99878, 99885, 99892,
+ 99899, 99906, 99913, 99920, 99927, 99934, 99942, 99950, 99958, 99967,
+ 99976, 99985, 99994, 100003, 100012, 100019, 100026, 100033, 100041,
+ 100049, 100057, 100065, 100073, 100081, 100089, 100093, 100098, 100103,
+ 0, 100109, 100114, 0, 0, 0, 0, 0, 100119, 100125, 100132, 100137, 100142,
+ 100146, 100151, 100156, 0, 100161, 100166, 100171, 0, 100176, 100181,
+ 100186, 100191, 100196, 100201, 100206, 100211, 100216, 100221, 100226,
+ 100231, 100235, 100240, 100245, 100250, 100254, 100258, 100263, 100268,
+ 100273, 100278, 100283, 100288, 100293, 100297, 100302, 0, 0, 0, 0,
+ 100307, 100313, 100318, 0, 0, 0, 0, 100323, 100327, 100331, 100335,
+ 100339, 100343, 100348, 100353, 100359, 0, 0, 0, 0, 0, 0, 0, 0, 100365,
+ 100371, 100378, 100384, 100391, 100397, 100403, 100409, 100416, 0, 0, 0,
+ 0, 0, 0, 0, 100422, 100430, 100438, 100446, 100454, 100462, 100470,
+ 100478, 100486, 100494, 100502, 100510, 100518, 100526, 100534, 100542,
+ 100550, 100558, 100566, 100574, 100582, 100590, 100598, 100606, 100614,
+ 100622, 100630, 100638, 100646, 100654, 100661, 100669, 100677, 100684,
+ 100691, 100698, 100705, 100712, 100719, 100726, 100733, 100740, 100747,
+ 100754, 100761, 100768, 100775, 100782, 100789, 100796, 100803, 100810,
+ 100817, 100824, 100831, 100838, 100845, 100852, 100859, 100866, 100873,
+ 100880, 100886, 100893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100900, 100905, 100910,
+ 100915, 100920, 100925, 100930, 100935, 100940, 100945, 100950, 100955,
+ 100960, 100965, 100970, 100975, 100980, 100985, 100990, 100995, 101000,
+ 101005, 101010, 101015, 101020, 101025, 101030, 101035, 101040, 101045,
+ 101050, 101055, 101060, 101065, 101070, 101075, 101080, 101085, 101091,
+ 0, 0, 0, 0, 101097, 101101, 101105, 101110, 101115, 101121, 101127,
+ 101133, 101143, 101152, 101158, 101165, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 101173, 101177, 101182, 101187, 101192, 101197, 101202, 101207, 101212,
+ 101216, 101221, 101225, 101230, 101234, 101239, 101243, 101248, 101253,
+ 101258, 101263, 101268, 101273, 101278, 101283, 101288, 101293, 101298,
+ 101303, 101308, 101313, 101318, 101323, 101328, 101333, 101338, 101343,
+ 101348, 101353, 101358, 101363, 101368, 101373, 101378, 101383, 101388,
+ 101393, 101398, 101403, 101408, 101413, 101418, 101423, 101428, 101433,
+ 0, 0, 0, 101438, 101443, 101452, 101460, 101469, 101478, 101489, 101500,
+ 101507, 101514, 101521, 101528, 101535, 101542, 101549, 101556, 101563,
+ 101570, 101577, 101584, 101591, 101598, 101605, 101612, 101619, 101626,
+ 101633, 101640, 101647, 0, 0, 101654, 101660, 101666, 101672, 101678,
+ 101685, 101692, 101700, 101708, 101715, 101722, 101729, 101736, 101743,
+ 101750, 101757, 101764, 101771, 101778, 101785, 101792, 101799, 101806,
+ 101813, 101820, 101827, 101834, 0, 0, 0, 0, 0, 101841, 101847, 101853,
+ 101859, 101865, 101872, 101879, 101887, 101895, 101902, 101909, 101916,
+ 101923, 101930, 101937, 101944, 101951, 101958, 101965, 101972, 101979,
+ 101986, 101993, 102000, 102007, 102014, 0, 0, 0, 0, 0, 0, 0, 102021,
+ 102028, 102037, 102047, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102057,
+ 102063, 102069, 102075, 102081, 102088, 102095, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 102103, 102110, 102117, 102125, 102132, 102139, 102146, 102153, 102161,
+ 102169, 102177, 102185, 102193, 102201, 102209, 102217, 102225, 102233,
+ 102241, 102249, 102257, 102265, 102273, 102281, 102289, 102297, 102305,
+ 102313, 102321, 102329, 102337, 102345, 102353, 102361, 102369, 102377,
+ 102385, 102393, 102401, 102409, 102417, 102425, 102433, 102441, 102449,
+ 102457, 102465, 102473, 102481, 102489, 102497, 102505, 102513, 102521,
+ 102529, 102537, 102545, 102553, 102561, 102569, 102577, 102585, 102593,
+ 102601, 102609, 102617, 102625, 102633, 102641, 102649, 102657, 102665,
+ 102673, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 102681, 102686, 102692, 102698, 102704,
+ 102710, 102716, 102722, 102728, 102734, 102739, 102746, 102752, 102758,
+ 102764, 102770, 102776, 102781, 102787, 102793, 102799, 102805, 102811,
+ 102817, 102823, 102829, 102835, 102841, 102846, 102852, 102860, 102868,
+ 102874, 102880, 102886, 102892, 102900, 102906, 102912, 102918, 102924,
+ 102930, 102936, 102941, 102947, 102955, 102963, 102969, 102975, 102981,
+ 102988, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102994, 102999, 103005,
+ 103011, 103017, 103023, 103029, 103035, 103041, 103047, 103052, 103059,
+ 103065, 103071, 103077, 103083, 103089, 103094, 103100, 103106, 103112,
+ 103118, 103124, 103130, 103136, 103142, 103148, 103154, 103159, 103165,
+ 103173, 103181, 103187, 103193, 103199, 103205, 103213, 103219, 103225,
+ 103231, 103237, 103243, 103249, 103254, 103260, 103268, 103276, 103282,
+ 103288, 103294, 103301, 0, 0, 0, 0, 0, 0, 0, 103307, 103311, 103315,
+ 103320, 103325, 103331, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 103337, 103341, 103345, 103349, 103353, 103357,
+ 103361, 103366, 103370, 103375, 103380, 103385, 103390, 103395, 103400,
+ 103405, 103410, 103415, 103420, 103426, 103432, 103438, 103445, 103452,
+ 103459, 103466, 103473, 103480, 103487, 103494, 103501, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 103508, 103512, 103516, 103520, 103524, 103528, 103531, 103535,
+ 103538, 103542, 103545, 103549, 103553, 103558, 103562, 103567, 103570,
+ 103574, 103577, 103581, 103584, 103588, 103592, 103596, 103600, 103604,
+ 103608, 103612, 103616, 103620, 103624, 103628, 103632, 103636, 103640,
+ 103644, 103648, 103652, 103656, 103660, 103663, 103667, 103671, 103675,
+ 103678, 103681, 103685, 103689, 103693, 103697, 103701, 103705, 103708,
+ 103712, 103718, 103724, 103730, 103735, 103742, 103746, 103751, 103755,
+ 103760, 103765, 103771, 103776, 103782, 103786, 103791, 103795, 103800,
+ 103803, 103806, 103810, 103815, 103821, 103826, 103832, 0, 0, 0, 0,
+ 103837, 103840, 103843, 103846, 103849, 103852, 103855, 103859, 103862,
+ 103866, 103870, 103874, 103878, 103882, 103886, 103890, 103894, 103898,
+ 103902, 103907, 103912, 103916, 103919, 103922, 103925, 103928, 103931,
+ 103934, 103938, 103941, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 103945, 103949, 103954, 103959, 103964, 103968, 103973, 103977, 103982,
+ 103986, 103991, 103995, 104000, 104004, 104009, 104013, 104018, 104023,
+ 104028, 104033, 104038, 104043, 104048, 104053, 104058, 104063, 104068,
+ 104073, 104078, 104083, 104088, 104093, 104098, 104103, 104108, 104113,
+ 104118, 104122, 104127, 104132, 104137, 104141, 104145, 104150, 104155,
+ 104160, 104165, 104170, 104175, 104179, 104185, 104190, 104196, 104201,
+ 104207, 104212, 104218, 104223, 104229, 104234, 104239, 104244, 104249,
+ 104253, 104258, 104264, 104268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 104273, 104280, 104287, 104294, 104301, 104308, 104315, 104322, 104329,
+ 104336, 104343, 104350, 104357, 104364, 104371, 104378, 104385, 104392,
+ 104399, 104406, 104413, 104420, 104427, 104434, 104441, 0, 0, 0, 0, 0, 0,
+ 0, 104448, 104455, 104461, 104467, 104473, 104479, 104485, 104491,
+ 104498, 104504, 0, 0, 0, 0, 0, 0, 104511, 104516, 104521, 104526, 104531,
+ 104535, 104539, 104543, 104548, 104553, 104558, 104563, 104568, 104573,
+ 104578, 104583, 104588, 104593, 104598, 104603, 104608, 104613, 104618,
+ 104623, 104628, 104633, 104638, 104643, 104648, 104653, 104658, 104663,
+ 104668, 104673, 104678, 104683, 104688, 104693, 104698, 104703, 104708,
+ 104713, 104719, 104724, 104730, 104735, 104741, 104746, 104752, 104758,
+ 104762, 104767, 104771, 0, 104775, 104780, 104784, 104788, 104792,
+ 104796, 104800, 104804, 104809, 104813, 104818, 104823, 104827, 104832,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104837, 104841, 104845, 104849,
+ 104853, 104857, 104861, 104866, 104871, 104876, 104881, 104886, 104891,
+ 104896, 104901, 104906, 104911, 104916, 104921, 104926, 104931, 104936,
+ 104941, 104946, 104951, 104955, 104960, 104965, 104970, 104974, 104979,
+ 104984, 104989, 104994, 104998, 105003, 105008, 105013, 105018, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 105023, 105027, 105031, 105035, 105038, 105042, 105045,
+ 105049, 105052, 105056, 105060, 105065, 105069, 105074, 105077, 105081,
+ 105084, 105088, 105091, 105095, 105099, 105103, 105107, 105111, 105115,
+ 105119, 105123, 105127, 105131, 105135, 105139, 105143, 105147, 105151,
+ 105155, 105159, 105163, 105167, 105170, 105174, 105178, 105182, 105185,
+ 105188, 105192, 105196, 105200, 105204, 105208, 105212, 105216, 105219,
+ 105224, 105228, 105233, 105237, 105242, 105247, 105253, 105258, 105264,
+ 105268, 105273, 105277, 105282, 105286, 105290, 105294, 105298, 105301,
+ 105304, 105308, 105312, 105315, 105319, 105323, 105327, 105334, 0, 0,
+ 105338, 105342, 105345, 105348, 105351, 105354, 105357, 105360, 105364,
+ 105367, 105371, 105374, 105378, 105381, 105385, 105390, 0, 105395,
+ 105400, 105405, 105410, 105415, 105420, 105425, 105431, 105436, 105442,
+ 105448, 105454, 105460, 105466, 105472, 105478, 105484, 105490, 105496,
+ 105503, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105510, 105514, 105519, 105523,
+ 105527, 105531, 105536, 105540, 105545, 105549, 105554, 105559, 105564,
+ 105569, 105574, 105579, 105584, 105589, 0, 105594, 105599, 105604,
+ 105609, 105614, 105619, 105624, 105629, 105634, 105639, 105644, 105649,
+ 105654, 105658, 105663, 105668, 105673, 105678, 105682, 105686, 105691,
+ 105696, 105701, 105706, 105710, 105715, 105721, 105726, 105732, 105737,
+ 105742, 105748, 105753, 105759, 105764, 105769, 105774, 105779, 105783,
+ 105788, 105794, 105799, 105805, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 105810, 105814, 105818, 105822, 105826, 105830, 105835, 0,
+ 105840, 0, 105845, 105850, 105855, 105860, 0, 105865, 105870, 105875,
+ 105880, 105885, 105890, 105895, 105900, 105905, 105910, 105915, 105920,
+ 105925, 105929, 105934, 0, 105939, 105944, 105948, 105952, 105957,
+ 105962, 105967, 105972, 105976, 105981, 105986, 0, 0, 0, 0, 0, 0, 105991,
+ 105995, 106000, 106004, 106009, 106013, 106018, 106022, 106027, 106031,
+ 106036, 106040, 106045, 106050, 106055, 106060, 106065, 106070, 106075,
+ 106080, 106085, 106090, 106095, 106100, 106105, 106110, 106115, 106120,
+ 106125, 106130, 106135, 106140, 106145, 106150, 106155, 106159, 106164,
+ 106169, 106174, 106179, 106183, 106187, 106192, 106197, 106202, 106207,
+ 106212, 106216, 106221, 106227, 106232, 106238, 106243, 106249, 106254,
+ 106260, 106265, 106271, 106276, 0, 0, 0, 0, 0, 106281, 106286, 106290,
+ 106294, 106298, 106302, 106306, 106310, 106315, 106319, 0, 0, 0, 0, 0, 0,
+ 106324, 106331, 106336, 106341, 0, 106346, 106350, 106355, 106359,
+ 106364, 106368, 106373, 106378, 0, 0, 106383, 106388, 0, 0, 106393,
+ 106398, 106403, 106407, 106412, 106417, 106422, 106427, 106432, 106437,
+ 106442, 106447, 106452, 106457, 106462, 106467, 106472, 106477, 106482,
+ 106487, 106492, 106497, 0, 106502, 106506, 106511, 106516, 106521,
+ 106525, 106529, 0, 106534, 106539, 0, 106544, 106549, 106554, 106559,
+ 106564, 0, 0, 106568, 106573, 106578, 106584, 106589, 106595, 106600,
+ 106606, 106612, 0, 0, 106619, 106625, 0, 0, 106631, 106637, 106643, 0, 0,
+ 106648, 0, 0, 0, 0, 0, 0, 106652, 0, 0, 0, 0, 0, 106659, 106664, 106671,
+ 106679, 106685, 106691, 106697, 0, 0, 106704, 106710, 106715, 106720,
+ 106725, 106730, 106735, 0, 0, 0, 106740, 106745, 106750, 106756, 106762,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 106767, 106771, 106775, 106780, 106784, 106789, 106793, 106798,
+ 106803, 106809, 106814, 106820, 106824, 106829, 106833, 106838, 106842,
+ 106847, 106852, 106857, 106862, 106867, 106872, 106877, 106882, 106887,
+ 106892, 106897, 106902, 106907, 106912, 106917, 106922, 106927, 106932,
+ 106937, 106941, 106946, 106951, 106956, 106960, 106964, 106969, 106974,
+ 106979, 106984, 106989, 106994, 106998, 107004, 107009, 107015, 107020,
+ 107026, 107032, 107039, 107045, 107052, 107057, 107064, 107070, 107075,
+ 107082, 107088, 107093, 107098, 107103, 107108, 107113, 107118, 107122,
+ 107127, 0, 0, 0, 0, 0, 0, 0, 0, 107131, 107136, 107140, 107144, 107148,
+ 107152, 107156, 107160, 107165, 107169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107174, 107177, 107181, 107184, 107188,
+ 107191, 107195, 107199, 107204, 107208, 107213, 107216, 107220, 107223,
+ 107227, 107230, 107234, 107238, 107242, 107246, 107250, 107254, 107258,
+ 107262, 107266, 107270, 107274, 107278, 107282, 107286, 107290, 107294,
+ 107298, 107302, 107306, 107309, 107313, 107317, 107321, 107324, 107327,
+ 107331, 107335, 107339, 107343, 107347, 107351, 107354, 107359, 107363,
+ 107368, 107372, 107377, 107382, 0, 0, 107388, 107392, 107397, 107401,
+ 107406, 107410, 107414, 107418, 107422, 107426, 107430, 107433, 107437,
+ 107442, 107446, 107451, 107456, 107461, 107468, 107480, 107492, 107504,
+ 107517, 107531, 107538, 107548, 107556, 107565, 107574, 107583, 107593,
+ 107604, 107616, 107623, 107630, 107638, 107643, 107649, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 107656, 107660, 107665, 107669, 107674, 107678, 107683,
+ 107688, 107694, 107699, 107705, 107709, 107714, 107718, 107723, 107727,
+ 107732, 107737, 107742, 107747, 107752, 107757, 107762, 107767, 107772,
+ 107777, 107782, 107787, 107792, 107797, 107802, 107807, 107812, 107817,
+ 107822, 107826, 107831, 107836, 107841, 107845, 107849, 107854, 107859,
+ 107864, 107869, 107874, 107879, 107883, 107888, 107894, 107899, 107905,
+ 107910, 107916, 107922, 107929, 107935, 107942, 107947, 107953, 107958,
+ 107964, 107969, 107974, 107979, 107984, 107988, 107993, 107998, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 108003, 108008, 108012, 108016, 108020, 108024,
+ 108028, 108032, 108037, 108041, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 108046, 108050, 108055, 108059, 108064, 108068, 108073, 108077, 108082,
+ 108086, 108091, 108095, 108100, 108105, 108110, 108115, 108120, 108125,
+ 108130, 108135, 108140, 108145, 108150, 108155, 108160, 108165, 108170,
+ 108175, 108180, 108185, 108190, 108194, 108199, 108204, 108209, 108213,
+ 108217, 108222, 108227, 108232, 108237, 108242, 108246, 108251, 108256,
+ 108261, 108267, 108272, 108278, 108283, 108289, 108294, 108300, 108305,
+ 108311, 108316, 0, 0, 0, 0, 0, 0, 0, 0, 108321, 108326, 108330, 108334,
+ 108338, 108342, 108346, 108350, 108355, 108359, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108364,
+ 108368, 108373, 108378, 108383, 108388, 108395, 108399, 108404, 108409,
+ 108413, 108418, 108423, 108428, 108433, 108438, 108443, 108448, 108452,
+ 108456, 108461, 108466, 108471, 108478, 108483, 108488, 0, 0, 0, 108493,
+ 108500, 108507, 108516, 108521, 108527, 108532, 108538, 108543, 108549,
+ 108554, 108560, 108565, 108571, 108577, 0, 0, 0, 0, 108582, 108587,
+ 108591, 108595, 108599, 108603, 108607, 108611, 108616, 108620, 108625,
+ 108630, 108635, 108641, 108646, 108651, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 108656, 108664, 108671, 108679, 108687, 108694, 108702,
+ 108710, 108718, 108725, 108732, 108740, 108748, 108756, 108764, 108772,
+ 108780, 108788, 108796, 108804, 108812, 108820, 108828, 108836, 108844,
+ 108852, 108860, 108868, 108876, 108884, 108892, 108900, 108908, 108916,
+ 108923, 108931, 108939, 108946, 108954, 108962, 108970, 108977, 108984,
+ 108992, 109000, 109008, 109016, 109024, 109032, 109040, 109048, 109056,
+ 109064, 109072, 109080, 109088, 109096, 109104, 109112, 109120, 109128,
+ 109136, 109144, 109152, 109160, 109167, 109173, 109179, 109185, 109191,
+ 109197, 109203, 109210, 109216, 109223, 109230, 109237, 109244, 109251,
+ 109258, 109265, 109272, 109279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 109286, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 109292, 109300, 109308, 109317, 109325, 109334, 109343, 109352,
+ 109361, 109369, 109378, 109387, 109396, 109405, 109414, 109423, 109432,
+ 109441, 109450, 109459, 109468, 109477, 109485, 109493, 109501, 109509,
+ 109517, 109526, 109535, 109545, 109555, 109565, 109575, 109585, 109594,
+ 109604, 109614, 109624, 109635, 109645, 109657, 109669, 109680, 109694,
+ 109705, 109715, 109727, 109738, 109748, 109760, 109772, 109783, 109794,
+ 109804, 109814, 109826, 109837, 0, 0, 0, 0, 0, 0, 0, 109849, 109852,
+ 109857, 109863, 109871, 109876, 109882, 109890, 109896, 109902, 109906,
+ 109910, 109917, 109926, 109933, 109942, 109948, 109957, 109964, 109971,
+ 109978, 109988, 109994, 109998, 110005, 110014, 110024, 110031, 110038,
+ 110042, 110046, 110053, 110063, 110067, 110074, 110081, 110088, 110094,
+ 110101, 110108, 110115, 110122, 110126, 110130, 110134, 110141, 110145,
+ 110152, 110159, 110173, 110182, 110186, 110190, 110194, 110201, 110205,
+ 110209, 110213, 110221, 110229, 110248, 110258, 110278, 110282, 110286,
+ 110290, 110294, 110298, 110302, 110306, 110313, 110317, 110320, 110324,
+ 110328, 110334, 110341, 110350, 110354, 110363, 110372, 110380, 110384,
+ 110391, 110395, 110399, 110403, 110407, 110418, 110427, 110436, 110445,
+ 110454, 110466, 110475, 110484, 110493, 110501, 110510, 110522, 110531,
+ 110540, 110549, 110561, 110570, 110579, 110591, 110600, 110609, 110621,
+ 110630, 110634, 110638, 110642, 110646, 110650, 110654, 110658, 110665,
+ 110669, 110673, 110684, 110688, 110692, 110699, 110705, 110711, 110715,
+ 110722, 110726, 110730, 110734, 110738, 110742, 110746, 110752, 110760,
+ 110764, 110768, 110771, 110777, 110787, 110791, 110803, 110810, 110817,
+ 110824, 110831, 110837, 110841, 110845, 110849, 110853, 110860, 110869,
+ 110876, 110884, 110892, 110898, 110902, 110906, 110910, 110914, 110920,
+ 110929, 110941, 110948, 110955, 110964, 110975, 110981, 110990, 110999,
+ 111006, 111015, 111022, 111029, 111039, 111046, 111053, 111060, 111067,
+ 111071, 111077, 111081, 111092, 111100, 111109, 111121, 111128, 111135,
+ 111145, 111152, 111162, 111169, 111179, 111186, 111193, 111203, 111210,
+ 111217, 111227, 111234, 111246, 111255, 111262, 111269, 111276, 111285,
+ 111295, 111308, 111315, 111325, 111335, 111342, 111351, 111364, 111371,
+ 111378, 111385, 111395, 111405, 111412, 111422, 111429, 111436, 111446,
+ 111452, 111459, 111466, 111473, 111483, 111490, 111497, 111504, 111510,
+ 111517, 111527, 111534, 111538, 111546, 111550, 111562, 111566, 111580,
+ 111584, 111588, 111592, 111596, 111602, 111609, 111617, 111621, 111625,
+ 111629, 111633, 111640, 111644, 111650, 111656, 111664, 111668, 111675,
+ 111683, 111687, 111691, 111697, 111701, 111710, 111719, 111726, 111736,
+ 111742, 111746, 111750, 111758, 111765, 111772, 111778, 111782, 111790,
+ 111794, 111801, 111813, 111820, 111830, 111836, 111840, 111849, 111856,
+ 111865, 111869, 111873, 111880, 111884, 111888, 111892, 111896, 111899,
+ 111905, 111911, 111915, 111919, 111926, 111933, 111940, 111947, 111954,
+ 111961, 111968, 111975, 111981, 111985, 111989, 111996, 112003, 112010,
+ 112017, 112024, 112028, 112031, 112036, 112040, 112044, 112053, 112062,
+ 112066, 112070, 112076, 112082, 112099, 112105, 112109, 112118, 112122,
+ 112126, 112133, 112141, 112149, 112155, 112159, 112163, 112167, 112171,
+ 112174, 112180, 112187, 112197, 112204, 112211, 112218, 112224, 112231,
+ 112238, 112245, 112252, 112259, 112268, 112275, 112287, 112294, 112301,
+ 112311, 112322, 112329, 112336, 112343, 112350, 112357, 112364, 112371,
+ 112378, 112385, 112392, 112402, 112412, 112422, 112429, 112439, 112446,
+ 112453, 112460, 112467, 112474, 112481, 112488, 112495, 112502, 112509,
+ 112516, 112523, 112530, 112536, 112543, 112550, 112559, 112566, 112573,
+ 112577, 112585, 112589, 112593, 112597, 112601, 112605, 112612, 112616,
+ 112625, 112629, 112636, 112644, 112648, 112652, 112656, 112669, 112685,
+ 112689, 112693, 112700, 112706, 112713, 112717, 112721, 112725, 112729,
+ 112733, 112740, 112744, 112762, 112766, 112770, 112777, 112781, 112785,
+ 112791, 112795, 112799, 112807, 112811, 112815, 112819, 112823, 112829,
+ 112840, 112849, 112858, 112865, 112872, 112883, 112890, 112897, 112904,
+ 112911, 112918, 112925, 112932, 112942, 112948, 112955, 112965, 112974,
+ 112981, 112990, 113000, 113007, 113014, 113021, 113028, 113040, 113047,
+ 113054, 113061, 113068, 113075, 113085, 113092, 113099, 113109, 113122,
+ 113134, 113141, 113151, 113158, 113165, 113172, 113187, 113193, 113201,
+ 113211, 113221, 113228, 113235, 113241, 113245, 113252, 113262, 113268,
+ 113281, 113285, 113289, 113296, 113300, 113307, 113317, 113321, 113325,
+ 113329, 113333, 113337, 113344, 113348, 113355, 113362, 113369, 113378,
+ 113387, 113397, 113404, 113411, 113418, 113428, 113435, 113445, 113452,
+ 113462, 113469, 113476, 113486, 113496, 113503, 113509, 113517, 113525,
+ 113531, 113537, 113541, 113545, 113552, 113560, 113566, 113570, 113574,
+ 113578, 113585, 113597, 113600, 113607, 113613, 113617, 113621, 113625,
+ 113629, 113633, 113637, 113641, 113645, 113649, 113653, 113660, 113664,
+ 113670, 113674, 113678, 113682, 113688, 113695, 113702, 113709, 113721,
+ 113729, 113733, 113739, 113748, 113755, 113761, 113765, 113769, 113773,
+ 113779, 113788, 113796, 113800, 113806, 113810, 113814, 113818, 113824,
+ 113831, 113837, 113841, 113847, 113851, 113855, 113864, 113876, 113880,
+ 113887, 113894, 113904, 113911, 113923, 113930, 113937, 113944, 113955,
+ 113965, 113978, 113988, 113995, 113999, 114003, 114007, 114011, 114020,
+ 114029, 114038, 114055, 114064, 114070, 114077, 114085, 114098, 114102,
+ 114111, 114120, 114129, 114138, 114149, 114158, 114167, 114176, 114185,
+ 114194, 114203, 114213, 114216, 114220, 114224, 114228, 114232, 114236,
+ 114242, 114249, 114256, 114263, 114269, 114275, 114282, 114288, 114295,
+ 114303, 114307, 114314, 114321, 114328, 114336, 114340, 114344, 114348,
+ 114352, 114356, 114362, 114366, 114372, 114379, 114386, 114392, 114399,
+ 114406, 114413, 114420, 114427, 114434, 114441, 114448, 114455, 114462,
+ 114469, 114476, 114483, 114490, 114496, 114500, 114509, 114513, 114517,
+ 114521, 114525, 114531, 114538, 114545, 114552, 114559, 114566, 114572,
+ 114580, 114584, 114588, 114592, 114596, 114602, 114619, 114636, 114640,
+ 114644, 114648, 114652, 114656, 114660, 114666, 114673, 114677, 114683,
+ 114690, 114697, 114704, 114711, 114718, 114727, 114734, 114741, 114748,
+ 114755, 114759, 114763, 114769, 114781, 114785, 114789, 114798, 114802,
+ 114806, 114810, 114816, 114820, 114824, 114833, 114837, 114841, 114845,
+ 114852, 114856, 114860, 114864, 114868, 114872, 114876, 114880, 114884,
+ 114890, 114897, 114904, 114910, 114914, 114931, 114937, 114941, 114947,
+ 114953, 114959, 114965, 114971, 114977, 114981, 114985, 114989, 114995,
+ 114999, 115005, 115009, 115013, 115020, 115027, 115044, 115048, 115052,
+ 115056, 115060, 115064, 115076, 115079, 115084, 115089, 115104, 115114,
+ 115126, 115130, 115134, 115138, 115144, 115151, 115158, 115168, 115180,
+ 115186, 115192, 115201, 115205, 115209, 115216, 115226, 115233, 115239,
+ 115243, 115247, 115254, 115260, 115264, 115270, 115274, 115282, 115288,
+ 115292, 115300, 115309, 115316, 115322, 115329, 115336, 115346, 115356,
+ 115360, 115364, 115368, 115372, 115378, 115385, 115391, 115398, 115405,
+ 115412, 115421, 115428, 115435, 115441, 115448, 115455, 115462, 115469,
+ 115476, 115483, 115489, 115496, 115503, 115510, 115519, 115526, 115533,
+ 115537, 115543, 115547, 115553, 115560, 115567, 115574, 115578, 115582,
+ 115586, 115590, 115594, 115601, 115605, 115609, 115615, 115623, 115627,
+ 115631, 115635, 115639, 115646, 115650, 115654, 115662, 115666, 115670,
+ 115674, 115678, 115684, 115688, 115692, 115698, 115705, 115711, 115718,
+ 115730, 115734, 115741, 115748, 115755, 115762, 115774, 115781, 115785,
+ 115789, 115793, 115800, 115807, 115814, 115821, 115831, 115838, 115844,
+ 115851, 115858, 115865, 115872, 115881, 115891, 115898, 115902, 115909,
+ 115913, 115917, 115921, 115928, 115935, 115945, 115951, 115955, 115964,
+ 115968, 115975, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115979, 115985, 115991, 115998, 116005,
+ 116012, 116019, 116026, 116033, 116039, 116046, 116053, 116060, 116067,
+ 116074, 116081, 116087, 116093, 116099, 116105, 116111, 116117, 116123,
+ 116129, 116135, 116142, 116149, 116156, 116163, 116170, 116177, 116183,
+ 116189, 116195, 116202, 116209, 116215, 116221, 116230, 116237, 116244,
+ 116251, 116258, 116265, 116272, 116278, 116284, 116290, 116299, 116306,
+ 116313, 116324, 116335, 116341, 116347, 116353, 116362, 116369, 116376,
+ 116386, 116396, 116407, 116418, 116430, 116443, 116454, 116465, 116477,
+ 116490, 116501, 116512, 116523, 116534, 116545, 116557, 116565, 116573,
+ 116582, 116591, 116600, 116606, 116612, 116618, 116625, 116635, 116642,
+ 116652, 116657, 116662, 116668, 116674, 116682, 116690, 116699, 116710,
+ 116721, 116729, 116737, 116746, 116755, 116763, 116770, 116778, 116786,
+ 116793, 116800, 116809, 116818, 116827, 116836, 116845, 0, 116854,
+ 116865, 116872, 116880, 116888, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116896,
+ 116905, 116912, 116919, 116928, 116935, 116942, 116949, 116959, 116966,
+ 116973, 116980, 116988, 116995, 117002, 117009, 117020, 117027, 117034,
+ 117041, 117048, 117055, 117064, 117071, 117077, 117084, 117093, 117100,
+ 117107, 117114, 117124, 117131, 117138, 117148, 117158, 117165, 117172,
+ 117179, 117186, 117193, 117200, 117209, 117216, 117223, 117229, 117237,
+ 117246, 117255, 117266, 117275, 117284, 117293, 117302, 117311, 117318,
+ 117325, 117334, 117346, 117356, 117363, 117370, 117380, 117390, 117399,
+ 117409, 117416, 117426, 117433, 117440, 117447, 117457, 117467, 117474,
+ 117481, 117491, 117497, 117508, 117517, 117527, 117535, 117548, 117555,
+ 117561, 117569, 117576, 117586, 117590, 117594, 117598, 117602, 117606,
+ 117610, 117614, 117623, 117627, 117634, 117638, 117642, 117646, 117650,
+ 117654, 117658, 117662, 117666, 117670, 117674, 117678, 117682, 117686,
+ 117690, 117694, 117698, 117702, 117706, 117710, 117717, 117724, 117734,
+ 117747, 117757, 117761, 117765, 117769, 117773, 117777, 117781, 117785,
+ 117789, 117793, 117797, 117801, 117808, 117815, 117826, 117833, 117840,
+ 117847, 117854, 117861, 117868, 117875, 117879, 117883, 117890, 117897,
+ 117904, 117913, 117920, 117933, 117943, 117950, 117957, 117961, 117965,
+ 117974, 117981, 117988, 117995, 118008, 118015, 118022, 118032, 118042,
+ 118051, 118058, 118065, 118072, 118079, 118086, 118093, 118103, 118109,
+ 118117, 118124, 118132, 118139, 118150, 118157, 118163, 118170, 118177,
+ 118184, 118191, 118201, 118211, 118218, 118225, 118234, 118242, 118248,
+ 118255, 118262, 118269, 118276, 118280, 118290, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118300, 118304, 118308, 118312,
+ 118316, 118320, 118324, 118328, 118332, 118336, 118340, 118344, 118348,
+ 118352, 118356, 118360, 118364, 118368, 118372, 118376, 118380, 118384,
+ 118388, 118392, 118396, 118400, 118404, 118408, 118412, 118416, 118420,
+ 118424, 118428, 118432, 118436, 118440, 118444, 118448, 118452, 118456,
+ 118460, 118464, 118468, 118472, 118476, 118480, 118484, 118488, 118492,
+ 118496, 118500, 118504, 118508, 118512, 118516, 118520, 118524, 118528,
+ 118532, 118536, 118540, 118544, 118548, 118552, 118556, 118560, 118564,
+ 118568, 118572, 118576, 118580, 118584, 118588, 118592, 118596, 118600,
+ 118604, 118608, 118612, 118616, 118620, 118624, 118628, 118632, 118636,
+ 118640, 118644, 118648, 118652, 118656, 118660, 118664, 118668, 118672,
+ 118676, 118680, 118684, 118688, 118692, 118696, 118700, 118704, 118708,
+ 118712, 118716, 118720, 118724, 118728, 118732, 118736, 118740, 118744,
+ 118748, 118752, 118756, 118760, 118764, 118768, 118772, 118776, 118780,
+ 118784, 118788, 118792, 118796, 118800, 118804, 118808, 118812, 118816,
+ 118820, 118824, 118828, 118832, 118836, 118840, 118844, 118848, 118852,
+ 118856, 118860, 118864, 118868, 118872, 118876, 118880, 118884, 118888,
+ 118892, 118896, 118900, 118904, 118908, 118912, 118916, 118920, 118924,
+ 118928, 118932, 118936, 118940, 118944, 118948, 118952, 118956, 118960,
+ 118964, 118968, 118972, 118976, 118980, 118984, 118988, 118992, 118996,
+ 119000, 119004, 119008, 119012, 119016, 119020, 119024, 119028, 119032,
+ 119036, 119040, 119044, 119048, 119052, 119056, 119060, 119064, 119068,
+ 119072, 119076, 119080, 119084, 119088, 119092, 119096, 119100, 119104,
+ 119108, 119112, 119116, 119120, 119124, 119128, 119132, 119136, 119140,
+ 119144, 119148, 119152, 119156, 119160, 119164, 119168, 119172, 119176,
+ 119180, 119184, 119188, 119192, 119196, 119200, 119204, 119208, 119212,
+ 119216, 119220, 119224, 119228, 119232, 119236, 119240, 119244, 119248,
+ 119252, 119256, 119260, 119264, 119268, 119272, 119276, 119280, 119284,
+ 119288, 119292, 119296, 119300, 119304, 119308, 119312, 119316, 119320,
+ 119324, 119328, 119332, 119336, 119340, 119344, 119348, 119352, 119356,
+ 119360, 119364, 119368, 119372, 119376, 119380, 119384, 119388, 119392,
+ 119396, 119400, 119404, 119408, 119412, 119416, 119420, 119424, 119428,
+ 119432, 119436, 119440, 119444, 119448, 119452, 119456, 119460, 119464,
+ 119468, 119472, 119476, 119480, 119484, 119488, 119492, 119496, 119500,
+ 119504, 119508, 119512, 119516, 119520, 119524, 119528, 119532, 119536,
+ 119540, 119544, 119548, 119552, 119556, 119560, 119564, 119568, 119572,
+ 119576, 119580, 119584, 119588, 119592, 119596, 119600, 119604, 119608,
+ 119612, 119616, 119620, 119624, 119628, 119632, 119636, 119640, 119644,
+ 119648, 119652, 119656, 119660, 119664, 119668, 119672, 119676, 119680,
+ 119684, 119688, 119692, 119696, 119700, 119704, 119708, 119712, 119716,
+ 119720, 119724, 119728, 119732, 119736, 119740, 119744, 119748, 119752,
+ 119756, 119760, 119764, 119768, 119772, 119776, 119780, 119784, 119788,
+ 119792, 119796, 119800, 119804, 119808, 119812, 119816, 119820, 119824,
+ 119828, 119832, 119836, 119840, 119844, 119848, 119852, 119856, 119860,
+ 119864, 119868, 119872, 119876, 119880, 119884, 119888, 119892, 119896,
+ 119900, 119904, 119908, 119912, 119916, 119920, 119924, 119928, 119932,
+ 119936, 119940, 119944, 119948, 119952, 119956, 119960, 119964, 119968,
+ 119972, 119976, 119980, 119984, 119988, 119992, 119996, 120000, 120004,
+ 120008, 120012, 120016, 120020, 120024, 120028, 120032, 120036, 120040,
+ 120044, 120048, 120052, 120056, 120060, 120064, 120068, 120072, 120076,
+ 120080, 120084, 120088, 120092, 120096, 120100, 120104, 120108, 120112,
+ 120116, 120120, 120124, 120128, 120132, 120136, 120140, 120144, 120148,
+ 120152, 120156, 120160, 120164, 120168, 120172, 120176, 120180, 120184,
+ 120188, 120192, 120196, 120200, 120204, 120208, 120212, 120216, 120220,
+ 120224, 120228, 120232, 120236, 120240, 120244, 120248, 120252, 120256,
+ 120260, 120264, 120268, 120272, 120276, 120280, 120284, 120288, 120292,
+ 120296, 120300, 120304, 120308, 120312, 120316, 120320, 120324, 120328,
+ 120332, 120336, 120340, 120344, 120348, 120352, 120356, 120360, 120364,
+ 120368, 120372, 120376, 120380, 120384, 120388, 120392, 120396, 120400,
+ 120404, 120408, 120412, 120416, 120420, 120424, 120428, 120432, 120436,
+ 120440, 120444, 120448, 120452, 120456, 120460, 120464, 120468, 120472,
+ 120476, 120480, 120484, 120488, 120492, 120496, 120500, 120504, 120508,
+ 120512, 120516, 120520, 120524, 120528, 120532, 120536, 120540, 120544,
+ 120548, 120552, 120556, 120560, 120564, 120568, 120572, 120576, 120580,
+ 120584, 120588, 120592, 120596, 120600, 120604, 120608, 120612, 120616,
+ 120620, 120624, 120628, 120632, 120636, 120640, 120644, 120648, 120652,
+ 120656, 120660, 120664, 120668, 120672, 120676, 120680, 120684, 120688,
+ 120692, 120696, 120700, 120704, 120708, 120712, 120716, 120720, 120724,
+ 120728, 120732, 120736, 120740, 120744, 120748, 120752, 120756, 120760,
+ 120764, 120768, 120772, 120776, 120780, 120784, 120788, 120792, 120796,
+ 120800, 120804, 120808, 120812, 120816, 120820, 120824, 120828, 120832,
+ 120836, 120840, 120844, 120848, 120852, 120856, 120860, 120864, 120868,
+ 120872, 120876, 120880, 120884, 120888, 120892, 120896, 120900, 120904,
+ 120908, 120912, 120916, 120920, 120924, 120928, 120932, 120936, 120940,
+ 120944, 120948, 120952, 120956, 120960, 120964, 120968, 120972, 120976,
+ 120980, 120984, 120988, 120992, 120996, 121000, 121004, 121008, 121012,
+ 121016, 121020, 121024, 121028, 121032, 121036, 121040, 121044, 121048,
+ 121052, 121056, 121060, 121064, 121068, 121072, 121076, 121080, 121084,
+ 121088, 121092, 121096, 121100, 121104, 121108, 121112, 121116, 121120,
+ 121124, 121128, 121132, 121136, 121140, 121144, 121148, 121152, 121156,
+ 121160, 121164, 121168, 121172, 121176, 121180, 121184, 121188, 121192,
+ 121196, 121200, 121204, 121208, 121212, 121216, 121220, 121224, 121228,
+ 121232, 121236, 121240, 121244, 121248, 121252, 121256, 121260, 121264,
+ 121268, 121272, 121276, 121280, 121284, 121288, 121292, 121296, 121300,
+ 121304, 121308, 121312, 121316, 121320, 121324, 121328, 121332, 121336,
+ 121340, 121344, 121348, 121352, 121356, 121360, 121364, 121368, 121372,
+ 121376, 121380, 121384, 121388, 121392, 121396, 121400, 121404, 121408,
+ 121412, 121416, 121420, 121424, 121428, 121432, 121436, 121440, 121444,
+ 121448, 121452, 121456, 121460, 121464, 121468, 121472, 121476, 121480,
+ 121484, 121488, 121492, 121496, 121500, 121504, 121508, 121512, 121516,
+ 121520, 121524, 121528, 121532, 121536, 121540, 121544, 121548, 121552,
+ 121556, 121560, 121564, 121568, 121572, 121576, 121580, 121584, 121588,
+ 121592, 121596, 121600, 121604, 121608, 121612, 121616, 121620, 121624,
+ 121628, 121632, 121636, 121640, 121644, 121648, 121652, 121656, 121660,
+ 121664, 121668, 121672, 121676, 121680, 121684, 121688, 121692, 121696,
+ 121700, 121704, 121708, 121712, 121716, 121720, 121724, 121728, 121732,
+ 121736, 121740, 121744, 121748, 121752, 121756, 121760, 121764, 121768,
+ 121772, 121776, 121780, 121784, 121788, 121792, 121796, 121800, 121804,
+ 121808, 121812, 121816, 121820, 121824, 121828, 121832, 121836, 121840,
+ 121844, 121848, 121852, 121856, 121860, 121864, 121868, 121872, 121876,
+ 121880, 121884, 121888, 121892, 121896, 121900, 121904, 121908, 121912,
+ 121916, 121920, 121924, 121928, 121932, 121936, 121940, 121944, 121948,
+ 121952, 121956, 121960, 121964, 121968, 121972, 121976, 121980, 121984,
+ 121988, 121992, 121996, 122000, 122004, 122008, 122012, 122016, 122020,
+ 122024, 122028, 122032, 122036, 122040, 122044, 122048, 122052, 122056,
+ 122060, 122064, 122068, 122072, 122076, 122080, 122084, 122088, 122092,
+ 122096, 122100, 122104, 122108, 122112, 122116, 122120, 122124, 122128,
+ 122132, 122136, 122140, 122144, 122148, 122152, 122156, 122160, 122164,
+ 122168, 122172, 122176, 122180, 122184, 122188, 122192, 122196, 122200,
+ 122204, 122208, 122212, 122216, 122220, 122224, 122228, 122232, 122236,
+ 122240, 122244, 122248, 122252, 122256, 122260, 122264, 122268, 122272,
+ 122276, 122280, 122284, 122288, 122292, 122296, 122300, 122304, 122308,
+ 122312, 122316, 122320, 122324, 122328, 122332, 122336, 122340, 122344,
+ 122348, 122352, 122356, 122360, 122364, 122368, 122372, 122376, 122380,
+ 122384, 122388, 122392, 122396, 122400, 122404, 122408, 122412, 122416,
+ 122420, 122424, 122428, 122432, 122436, 122440, 122444, 122448, 122452,
+ 122456, 122460, 122464, 122468, 122472, 122476, 122480, 122484, 122488,
+ 122492, 122496, 122500, 122504, 122508, 122512, 122516, 122520, 122524,
+ 122528, 122532, 122536, 122540, 122544, 122548, 122552, 122556, 122560,
+ 122564, 122568, 122572, 122576, 122580, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 122584, 122588, 122592, 122596, 122600, 122604, 122608,
+ 122612, 122616, 122620, 122624, 122628, 122632, 122636, 122640, 122644,
+ 122648, 122652, 122656, 122660, 122664, 122668, 122672, 122676, 122680,
+ 122684, 122688, 122692, 122696, 122700, 122704, 122708, 122712, 122716,
+ 122720, 122724, 122728, 122732, 122736, 122740, 122744, 122748, 122752,
+ 122756, 122760, 122764, 122768, 122772, 122776, 122780, 122784, 122788,
+ 122792, 122796, 122800, 122804, 122808, 122812, 122816, 122820, 122824,
+ 122828, 122832, 122836, 122840, 122844, 122848, 122852, 122856, 122860,
+ 122864, 122868, 122872, 122876, 122880, 122884, 122888, 122892, 122896,
+ 122900, 122904, 122908, 122912, 122916, 122920, 122924, 122928, 122932,
+ 122936, 122940, 122944, 122948, 122952, 122956, 122960, 122964, 122968,
+ 122972, 122976, 122980, 122984, 122988, 122992, 122996, 123000, 123004,
+ 123008, 123012, 123016, 123020, 123024, 123028, 123032, 123036, 123040,
+ 123044, 123048, 123052, 123056, 123060, 123064, 123068, 123072, 123076,
+ 123080, 123084, 123088, 123092, 123096, 123100, 123104, 123108, 123112,
+ 123116, 123120, 123124, 123128, 123132, 123136, 123140, 123144, 123148,
+ 123152, 123156, 123160, 123164, 123168, 123172, 123176, 123180, 123184,
+ 123188, 123192, 123196, 123200, 123204, 123208, 123212, 123216, 123220,
+ 123224, 123228, 123232, 123236, 123240, 123244, 123248, 123252, 123256,
+ 123260, 123264, 123268, 123272, 123276, 123280, 123284, 123288, 123292,
+ 123296, 123300, 123304, 123308, 123312, 123316, 123320, 123324, 123328,
+ 123332, 123336, 123340, 123344, 123348, 123352, 123356, 123360, 123364,
+ 123368, 123372, 123376, 123380, 123384, 123388, 123392, 123396, 123400,
+ 123404, 123408, 123412, 123416, 123420, 123424, 123428, 123432, 123436,
+ 123440, 123444, 123448, 123452, 123456, 123460, 123464, 123468, 123472,
+ 123476, 123480, 123484, 123488, 123492, 123496, 123500, 123504, 123508,
+ 123512, 123516, 123520, 123524, 123528, 123532, 123536, 123540, 123544,
+ 123548, 123552, 123556, 123560, 123564, 123568, 123572, 123576, 123580,
+ 123584, 123588, 123592, 123596, 123600, 123604, 123608, 123612, 123616,
+ 123620, 123624, 123628, 123632, 123636, 123640, 123644, 123648, 123652,
+ 123656, 123660, 123664, 123668, 123672, 123676, 123680, 123684, 123688,
+ 123692, 123696, 123700, 123704, 123708, 123712, 123716, 123720, 123724,
+ 123728, 123732, 123736, 123740, 123744, 123748, 123752, 123756, 123760,
+ 123764, 123768, 123772, 123776, 123780, 123784, 123788, 123792, 123796,
+ 123800, 123804, 123808, 123812, 123816, 123820, 123824, 123828, 123832,
+ 123836, 123840, 123844, 123848, 123852, 123856, 123860, 123864, 123868,
+ 123872, 123876, 123880, 123884, 123888, 123892, 123896, 123900, 123904,
+ 123908, 123912, 123916, 123920, 123924, 123928, 123932, 123936, 123940,
+ 123944, 123948, 123952, 123956, 123960, 123964, 123968, 123972, 123976,
+ 123980, 123984, 123988, 123992, 123996, 124000, 124004, 124008, 124012,
+ 124016, 124020, 124024, 124028, 124032, 124036, 124040, 124044, 124048,
+ 124052, 124056, 124060, 124064, 124068, 124072, 124076, 124080, 124084,
+ 124088, 124092, 124096, 124100, 124104, 124108, 124112, 124116, 124120,
+ 124124, 124128, 124132, 124136, 124140, 124144, 124148, 124152, 124156,
+ 124160, 124164, 124168, 124172, 124176, 124180, 124184, 124188, 124192,
+ 124196, 124200, 124204, 124208, 124212, 124216, 124220, 124224, 124228,
+ 124232, 124236, 124240, 124244, 124248, 124252, 124256, 124260, 124264,
+ 124268, 124272, 124276, 124280, 124284, 124288, 124292, 124296, 124300,
+ 124304, 124308, 124312, 124316, 124326, 124330, 124334, 124338, 124342,
+ 124346, 124350, 124354, 124358, 124362, 124366, 124370, 124375, 124379,
+ 124383, 124387, 124391, 124395, 124399, 124403, 124407, 124411, 124415,
+ 124419, 124423, 124427, 124431, 124435, 124439, 124448, 124457, 124461,
+ 124465, 124469, 124473, 124477, 124481, 124485, 124489, 124493, 124497,
+ 124501, 124505, 124509, 124513, 124517, 124521, 124525, 124529, 124533,
+ 124537, 124541, 124545, 124549, 124553, 124557, 124561, 124565, 124569,
+ 124573, 124577, 124581, 124585, 124589, 124593, 124597, 124601, 124605,
+ 124609, 124613, 124617, 124621, 124625, 124629, 124633, 124637, 124641,
+ 124645, 124649, 124653, 124657, 124661, 124665, 124669, 124673, 124677,
+ 124681, 124685, 124689, 124693, 124697, 124701, 124705, 124709, 124713,
+ 124717, 124721, 124725, 124729, 124733, 124737, 124741, 124745, 124749,
+ 124753, 124757, 124761, 124765, 124769, 124773, 124777, 124781, 124785,
+ 124789, 124793, 124797, 124801, 124805, 124809, 124813, 124817, 124821,
+ 124825, 124829, 124833, 124837, 124841, 124845, 124849, 124853, 124857,
+ 124861, 124865, 124869, 124873, 124877, 124881, 124885, 124889, 124893,
+ 124897, 124901, 124905, 124909, 124913, 124917, 124921, 124925, 124929,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 124933, 124941,
+ 124949, 124959, 124969, 124977, 124983, 124991, 124999, 125009, 125021,
+ 125033, 125039, 125047, 125053, 125059, 125065, 125071, 125077, 125083,
+ 125089, 125095, 125101, 125107, 125113, 125121, 125129, 125135, 125141,
+ 125147, 125153, 125161, 125169, 125178, 125184, 125192, 125198, 125204,
+ 125210, 125216, 125222, 125230, 125238, 125244, 125250, 125256, 125262,
+ 125268, 125274, 125280, 125286, 125292, 125298, 125304, 125310, 125316,
+ 125322, 125328, 125334, 125340, 125346, 125352, 125360, 125366, 125372,
+ 125382, 125390, 125396, 125402, 125408, 125414, 125420, 125426, 125432,
+ 125438, 125444, 125450, 125456, 125462, 125468, 125474, 125480, 125486,
+ 125492, 125498, 125504, 125510, 125516, 125522, 125530, 125536, 125544,
+ 125552, 125560, 125566, 125572, 125578, 125584, 125590, 125598, 125608,
+ 125616, 125624, 125630, 125636, 125644, 125652, 125658, 125666, 125674,
+ 125682, 125688, 125694, 125700, 125706, 125712, 125718, 125726, 125734,
+ 125740, 125746, 125752, 125758, 125764, 125772, 125778, 125784, 125790,
+ 125796, 125802, 125808, 125816, 125822, 125828, 125834, 125840, 125848,
+ 125856, 125862, 125868, 125874, 125879, 125885, 125891, 125898, 125903,
+ 125908, 125913, 125918, 125923, 125928, 125933, 125938, 125943, 125952,
+ 125959, 125964, 125969, 125974, 125981, 125986, 125991, 125996, 126003,
+ 126008, 126013, 126018, 126023, 126028, 126033, 126038, 126043, 126048,
+ 126053, 126058, 126065, 126070, 126077, 126082, 126087, 126094, 126099,
+ 126104, 126109, 126114, 126119, 126124, 126129, 126134, 126139, 126144,
+ 126149, 126154, 126159, 126164, 126169, 126174, 126179, 126184, 126189,
+ 126196, 126201, 126206, 126211, 126216, 126221, 126226, 126231, 126236,
+ 126241, 126246, 126251, 126256, 126261, 126268, 126273, 126278, 126285,
+ 126290, 126295, 126300, 126305, 126310, 126315, 126320, 126325, 126330,
+ 126335, 126342, 126347, 126352, 126357, 126362, 126367, 126374, 126381,
+ 126386, 126391, 126396, 126401, 126406, 126411, 126416, 126421, 126426,
+ 126431, 126436, 126441, 126446, 126451, 126456, 126461, 126466, 126471,
+ 126476, 126481, 126486, 126491, 126496, 126501, 126506, 126511, 126516,
+ 126521, 126526, 126531, 126536, 126541, 126546, 126551, 126556, 126561,
+ 126568, 126573, 126578, 126583, 126588, 126593, 126598, 126603, 126608,
+ 126613, 126618, 126623, 126628, 126633, 126638, 126643, 126648, 126653,
+ 126658, 126663, 126668, 126673, 126678, 126683, 126688, 126693, 126698,
+ 126703, 126708, 126713, 126718, 126723, 126728, 126733, 126738, 126743,
+ 126748, 126753, 126758, 126763, 126768, 126773, 126778, 126783, 126788,
+ 126793, 126798, 126803, 126808, 126813, 126818, 126823, 126828, 126833,
+ 126838, 126843, 126848, 126853, 126858, 126865, 126870, 126875, 126880,
+ 126885, 126890, 126895, 126900, 126905, 126910, 126915, 126920, 126925,
+ 126930, 126935, 126940, 126945, 126950, 126955, 126960, 126965, 126970,
+ 126977, 126982, 126987, 126994, 126999, 127004, 127009, 127014, 127019,
+ 127024, 127029, 127034, 127039, 127044, 127049, 127054, 127059, 127064,
+ 127069, 127074, 127079, 127084, 127089, 127094, 127099, 127104, 127109,
+ 127114, 127119, 127124, 127129, 127134, 127139, 127144, 127149, 127154,
+ 127159, 127164, 127169, 127174, 127179, 127184, 127189, 127194, 127199,
+ 127204, 127209, 127216, 127221, 127226, 127233, 127240, 127245, 127250,
+ 127255, 127260, 127265, 127270, 127275, 127280, 127285, 127290, 127295,
+ 127300, 127305, 127310, 127315, 127320, 127325, 127330, 127335, 127340,
+ 127345, 127350, 127355, 127360, 127365, 127372, 127377, 127382, 127387,
+ 127392, 127397, 127402, 127407, 127412, 127417, 127422, 127427, 127432,
+ 127437, 127442, 127447, 127452, 127457, 127462, 127469, 127474, 127479,
+ 127484, 127489, 127494, 127499, 127504, 127510, 127515, 127520, 127525,
+ 127530, 127535, 127540, 127545, 127550, 127557, 127564, 127569, 127574,
+ 127578, 127583, 127587, 127591, 127596, 127603, 127608, 127613, 127622,
+ 127627, 127632, 127637, 127642, 127649, 127656, 127661, 127666, 127671,
+ 127676, 127683, 127688, 127693, 127698, 127703, 127708, 127713, 127718,
+ 127723, 127728, 127733, 127738, 127743, 127750, 127755, 127760, 127765,
+ 127770, 127775, 127779, 127784, 127789, 127794, 127799, 127804, 127809,
+ 127814, 127819, 127824, 127830, 127836, 127842, 127848, 127854, 127860,
+ 127866, 127872, 127878, 127884, 127890, 127896, 127902, 127908, 127914,
+ 127920, 127926, 127932, 127938, 127944, 127950, 127956, 127962, 127968,
+ 127973, 127979, 127985, 127991, 127997, 128003, 128009, 128015, 128021,
+ 128027, 128033, 128039, 128045, 128051, 128057, 128063, 128069, 128075,
+ 128081, 128087, 128093, 128098, 128104, 128110, 128116, 128122, 128128,
+ 0, 0, 0, 0, 0, 0, 0, 128134, 128139, 128144, 128149, 128154, 128159,
+ 128164, 128168, 128173, 128178, 128183, 128188, 128193, 128198, 128203,
+ 128208, 128213, 128217, 128222, 128226, 128231, 128236, 128241, 128246,
+ 128251, 128255, 128260, 128265, 128270, 128275, 128280, 0, 128285,
+ 128290, 128294, 128298, 128302, 128306, 128310, 128314, 128319, 128323,
+ 0, 0, 0, 0, 128328, 128332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 128337, 128344, 128350, 128357, 128364,
+ 128371, 128378, 128385, 128392, 128399, 128406, 128413, 128420, 128427,
+ 128434, 128441, 128448, 128455, 128461, 128468, 128475, 128482, 128488,
+ 128495, 128501, 128507, 128514, 128520, 128527, 128533, 0, 0, 128539,
+ 128547, 128555, 128564, 128573, 128582, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 128590, 128595, 128600, 128605, 128610, 128615, 128620, 128625, 128630,
+ 128635, 128640, 128645, 128650, 128655, 128660, 128665, 128670, 128675,
+ 128680, 128685, 128690, 128695, 128700, 128705, 128710, 128715, 128720,
+ 128725, 128730, 128735, 128740, 128745, 128750, 128755, 128760, 128765,
+ 128770, 128775, 128780, 128785, 128790, 128795, 128800, 128805, 128810,
+ 128815, 128820, 128825, 128830, 128837, 128844, 128851, 128858, 128865,
+ 128872, 128879, 128886, 128895, 128902, 128909, 128916, 128923, 128930,
+ 128937, 128944, 128951, 128958, 128965, 128972, 128977, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 128986, 128991, 128995, 128999, 129003, 129007, 129011,
+ 129015, 129020, 129024, 0, 129029, 129034, 129039, 129046, 129051,
+ 129058, 129065, 0, 129070, 129077, 129082, 129087, 129094, 129101,
+ 129106, 129111, 129116, 129121, 129126, 129133, 129140, 129145, 129150,
+ 129155, 129168, 129177, 129184, 129193, 129202, 0, 0, 0, 0, 0, 129211,
+ 129218, 129225, 129232, 129239, 129246, 129253, 129260, 129267, 129274,
+ 129281, 129288, 129295, 129302, 129309, 129316, 129323, 129330, 129337,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129344, 129347, 129351,
+ 129355, 129359, 129362, 129366, 129371, 129375, 129379, 129383, 129387,
+ 129391, 129396, 129401, 129405, 129409, 129413, 129417, 129422, 129428,
+ 129432, 129436, 129440, 129444, 129448, 129452, 129456, 129460, 129464,
+ 129468, 129471, 129475, 129479, 129483, 129487, 129491, 129495, 129501,
+ 129504, 129508, 129512, 129516, 129520, 129524, 129528, 129532, 129536,
+ 129540, 129545, 129550, 129556, 129560, 129564, 129568, 129572, 129576,
+ 129580, 129585, 129589, 129593, 129597, 129601, 129605, 129611, 129615,
+ 129619, 129623, 129627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129631, 129635,
+ 129639, 129645, 129651, 129655, 129660, 129665, 129670, 129675, 129679,
+ 129684, 129689, 129694, 129698, 129703, 129708, 129713, 129717, 129722,
+ 129727, 129732, 129737, 129742, 129747, 129752, 129757, 129761, 129766,
+ 129771, 129776, 129781, 129786, 129791, 129796, 129801, 129806, 129811,
+ 129816, 129823, 129828, 129835, 129840, 129845, 129850, 129855, 129860,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129865, 129869, 129875,
+ 129878, 129881, 129885, 129889, 129893, 129897, 129901, 129905, 129909,
+ 129915, 129921, 129927, 129933, 129939, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129945, 129950, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 129956, 129960, 129964, 129968, 129972, 129976,
+ 129980, 129983, 129987, 129991, 129995, 129999, 130002, 130008, 130013,
+ 130019, 130025, 130030, 130034, 130040, 130044, 130048, 130054, 130058,
+ 130062, 130066, 130070, 130074, 130078, 130081, 130087, 130093, 130099,
+ 130105, 130112, 130119, 130126, 130136, 130143, 130150, 130155, 130160,
+ 130165, 130170, 130177, 130184, 130191, 130198, 130207, 130213, 130220,
+ 130226, 130233, 130239, 130246, 130251, 130258, 130262, 130266, 130271,
+ 130277, 130283, 130290, 130297, 130303, 130310, 130313, 130319, 130323,
+ 130326, 130330, 130333, 130336, 130340, 130345, 130349, 130353, 130359,
+ 130364, 130370, 130374, 130378, 130381, 130385, 130389, 130394, 130398,
+ 130403, 130407, 130412, 130416, 130420, 130424, 130428, 130432, 130436,
+ 130440, 130444, 130449, 130454, 130459, 130464, 130470, 130476, 130482,
+ 130488, 130494, 0, 0, 0, 0, 0, 130499, 130507, 130516, 130524, 130531,
+ 130539, 130546, 130553, 130562, 130569, 130576, 130583, 130591, 0, 0, 0,
+ 130599, 130604, 130611, 130617, 130624, 130630, 130636, 130642, 130648,
+ 0, 0, 0, 0, 0, 0, 0, 130654, 130659, 130666, 130672, 130679, 130685,
+ 130691, 130697, 130703, 130709, 0, 0, 130714, 130720, 130726, 130729,
+ 130738, 130745, 130753, 130760, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 130767, 130772, 130777, 130782, 130789, 130796, 130803,
+ 130810, 130815, 130820, 130825, 130830, 130837, 130842, 130849, 130856,
+ 130861, 130866, 130871, 130878, 130883, 130888, 130895, 130902, 130907,
+ 130912, 130917, 130924, 130931, 130938, 130943, 130948, 130955, 130962,
+ 130969, 130976, 130981, 130986, 130991, 130998, 131003, 131008, 131013,
+ 131020, 131029, 131036, 131041, 131046, 131051, 131056, 131061, 131066,
+ 131075, 131082, 131087, 131094, 131101, 131106, 131111, 131116, 131123,
+ 131128, 131135, 131142, 131147, 131152, 131157, 131164, 131171, 131176,
+ 131181, 131188, 131195, 131202, 131207, 131212, 131217, 131222, 131229,
+ 131238, 131247, 131252, 131259, 131268, 131273, 131278, 131283, 131288,
+ 131295, 131302, 131309, 131316, 131321, 131326, 131331, 131338, 131345,
+ 131352, 131357, 131362, 131369, 131374, 131381, 131386, 131393, 131398,
+ 131405, 131412, 131417, 131422, 131427, 131432, 131437, 131442, 131447,
+ 131452, 131457, 131464, 131471, 131478, 131485, 131492, 131501, 131506,
+ 131511, 131518, 131525, 131530, 131537, 131544, 131551, 131558, 131565,
+ 131572, 131577, 131582, 131587, 131592, 131597, 131606, 131615, 131624,
+ 131633, 131642, 131651, 131660, 131669, 131674, 131685, 131696, 131705,
+ 131710, 131715, 131720, 131725, 131734, 131741, 131748, 131755, 131762,
+ 131769, 131776, 131785, 131794, 131805, 131814, 131825, 131834, 131841,
+ 131850, 131861, 131870, 131879, 131888, 131897, 131904, 131911, 131918,
+ 131927, 131936, 131947, 131956, 131965, 131976, 131981, 131986, 131997,
+ 132005, 132014, 132023, 132032, 132043, 132052, 132061, 132072, 132083,
+ 132094, 132105, 132116, 132127, 132134, 132141, 132148, 132155, 132166,
+ 132175, 132182, 132189, 132196, 132207, 132218, 132229, 132240, 132251,
+ 132262, 132273, 132284, 132291, 132298, 132307, 132316, 132323, 132330,
+ 132337, 132346, 132355, 132364, 132371, 132380, 132389, 132398, 132405,
+ 132412, 132417, 132423, 132430, 132437, 132444, 132451, 132458, 132465,
+ 132474, 132483, 132492, 132501, 132508, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 132517, 132523, 132528, 132533, 132540, 132546, 132552, 132558, 132564,
+ 132570, 132576, 132582, 132586, 132590, 132596, 132602, 132608, 132612,
+ 132617, 132622, 132626, 132630, 132633, 132639, 132645, 132651, 132657,
+ 132663, 132669, 132675, 132681, 132687, 132697, 132707, 132713, 132719,
+ 132729, 132739, 132745, 0, 0, 132751, 132759, 132764, 132769, 132775,
+ 132781, 132787, 132793, 132799, 132805, 132812, 132819, 132825, 132831,
+ 132837, 132843, 132849, 132855, 132861, 132867, 132872, 132878, 132884,
+ 132890, 132896, 132902, 132911, 132917, 132922, 132930, 132937, 132944,
+ 132953, 132962, 132971, 132980, 132989, 132998, 133007, 133016, 133026,
+ 133036, 133044, 133052, 133061, 133070, 133076, 133082, 133088, 133094,
+ 133102, 133110, 133114, 133120, 133125, 133131, 133137, 133143, 133149,
+ 133155, 133164, 133169, 133176, 133181, 133186, 133191, 133197, 133203,
+ 133209, 133216, 133221, 133226, 133231, 133236, 133241, 133247, 133253,
+ 133259, 133265, 133271, 133277, 133283, 133289, 133294, 133299, 133304,
+ 133309, 133314, 133319, 133324, 133329, 133335, 133341, 133346, 133351,
+ 133356, 133361, 133366, 133372, 133379, 133383, 133387, 133391, 133395,
+ 133399, 133403, 133407, 133411, 133419, 133429, 133433, 133437, 133443,
+ 133449, 133455, 133461, 133467, 133473, 133479, 133485, 133491, 133497,
+ 133503, 133509, 133515, 133521, 133525, 133529, 133536, 133542, 133548,
+ 133554, 133559, 133566, 133571, 133577, 133583, 133589, 133595, 133600,
+ 133604, 133610, 133614, 133618, 133622, 133628, 133634, 133638, 133644,
+ 133650, 133656, 133662, 133668, 133676, 133684, 133690, 133696, 133702,
+ 133708, 133720, 133732, 133746, 133758, 133770, 133784, 133798, 133812,
+ 133816, 133824, 133832, 133837, 133841, 133845, 133849, 133853, 133857,
+ 133861, 133865, 133871, 133877, 133883, 133889, 133897, 133906, 133913,
+ 133920, 133928, 133935, 133947, 133959, 133971, 133983, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133990, 133997,
+ 134004, 134011, 134018, 134025, 134032, 134039, 134046, 134053, 134060,
+ 134067, 134074, 134081, 134088, 134095, 134102, 134109, 134116, 134123,
+ 134130, 134137, 134144, 134151, 134158, 134165, 134172, 134179, 134186,
+ 134193, 134200, 134207, 134214, 134221, 134228, 134235, 134242, 134249,
+ 134256, 134263, 134270, 134277, 134284, 134291, 134298, 134305, 134312,
+ 134319, 134326, 134333, 134340, 134347, 134354, 134361, 134368, 134375,
+ 134382, 134389, 134396, 134403, 134410, 134417, 134424, 134431, 134438,
+ 134445, 134452, 134457, 134462, 134467, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 134471, 134476, 134483, 134490, 134497, 134504,
+ 134509, 134514, 134521, 134526, 134531, 134538, 134543, 134548, 134553,
+ 134560, 134569, 134574, 134579, 134584, 134589, 134594, 134599, 134606,
+ 134611, 134616, 134621, 134626, 134631, 134636, 134641, 134646, 134651,
+ 134656, 134661, 134666, 134672, 134677, 134682, 134687, 134692, 134697,
+ 134702, 134707, 134712, 134717, 134726, 134731, 134740, 134745, 134750,
+ 134755, 134760, 134765, 134770, 134775, 134784, 134789, 134794, 134799,
+ 134804, 134809, 134816, 134821, 134828, 134833, 134838, 134843, 134848,
+ 134853, 134858, 134863, 134868, 134873, 134878, 134883, 134888, 134893,
+ 134898, 134903, 134908, 134913, 134918, 134923, 134932, 134937, 134942,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 134947, 134955, 134963, 134971, 134979,
+ 134987, 134995, 135004, 135012, 135021, 135029, 135037, 135045, 135053,
+ 135061, 135069, 135078, 135086, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 135095, 135099, 135104, 135109, 135114, 135118,
+ 135123, 135128, 135133, 135137, 135142, 135147, 135151, 135156, 135161,
+ 135165, 135170, 135175, 135179, 135183, 135188, 135192, 135197, 135202,
+ 135207, 135212, 135217, 135221, 135226, 135231, 135236, 135240, 135245,
+ 135250, 135255, 135259, 135264, 135269, 135273, 135278, 135283, 135287,
+ 135292, 135297, 135301, 135305, 135310, 135314, 135319, 135324, 135329,
+ 135334, 135339, 135343, 135348, 135353, 135358, 135362, 135367, 135372,
+ 135377, 135381, 135386, 135391, 135395, 135400, 135405, 135409, 135414,
+ 135419, 135423, 135427, 135432, 135436, 135441, 135446, 135451, 135456,
+ 135461, 135465, 135470, 135475, 135480, 135484, 135489, 0, 135494,
+ 135498, 135503, 135508, 135512, 135517, 135522, 135526, 135531, 135536,
+ 135540, 135544, 135549, 135553, 135558, 135563, 135568, 135573, 135578,
+ 135583, 135589, 135595, 135601, 135606, 135612, 135618, 135624, 135629,
+ 135635, 135641, 135646, 135652, 135658, 135663, 135669, 135675, 135680,
+ 135685, 135691, 135696, 135702, 135708, 135714, 135720, 135726, 135731,
+ 135737, 135743, 135749, 135754, 135760, 135766, 135772, 135777, 135783,
+ 135789, 135794, 135800, 135806, 135811, 135817, 135823, 135828, 135833,
+ 135839, 135844, 135850, 135856, 135862, 135868, 135874, 0, 135878,
+ 135883, 0, 0, 135888, 0, 0, 135893, 135898, 0, 0, 135903, 135908, 135912,
+ 135917, 0, 135922, 135926, 135931, 135935, 135940, 135945, 135950,
+ 135955, 135960, 135964, 135969, 135974, 0, 135979, 0, 135984, 135989,
+ 135993, 135998, 136003, 136007, 136012, 0, 136017, 136022, 136027,
+ 136031, 136035, 136040, 136044, 136049, 136054, 136059, 136064, 136069,
+ 136074, 136080, 136086, 136092, 136097, 136103, 136109, 136115, 136120,
+ 136126, 136132, 136137, 136143, 136149, 136154, 136160, 136166, 136171,
+ 136176, 136182, 136187, 136193, 136199, 136205, 136211, 136217, 136222,
+ 136228, 136234, 136240, 136245, 136251, 136257, 136263, 136268, 136274,
+ 136280, 136285, 136291, 136297, 136302, 136308, 136314, 136319, 136324,
+ 136330, 136335, 136341, 136347, 136353, 136359, 136365, 136369, 0,
+ 136374, 136379, 136383, 136388, 0, 0, 136393, 136398, 136403, 136407,
+ 136412, 136417, 136421, 136426, 0, 136431, 136435, 136440, 136444,
+ 136449, 136454, 136459, 0, 136464, 136468, 136473, 136478, 136483,
+ 136487, 136492, 136497, 136502, 136506, 136511, 136516, 136520, 136525,
+ 136530, 136534, 136539, 136544, 136548, 136552, 136557, 136561, 136566,
+ 136571, 136576, 136581, 136586, 136590, 0, 136595, 136600, 136604,
+ 136609, 0, 136614, 136618, 136623, 136628, 136632, 0, 136637, 0, 0, 0,
+ 136641, 136645, 136650, 136654, 136659, 136664, 136669, 0, 136674,
+ 136678, 136683, 136688, 136693, 136697, 136702, 136707, 136712, 136716,
+ 136721, 136726, 136730, 136735, 136740, 136744, 136749, 136754, 136758,
+ 136762, 136767, 136771, 136776, 136781, 136786, 136791, 136796, 136801,
+ 136807, 136813, 136819, 136824, 136830, 136836, 136842, 136847, 136853,
+ 136859, 136864, 136870, 136876, 136881, 136887, 136893, 136898, 136903,
+ 136909, 136914, 136920, 136926, 136932, 136938, 136944, 136949, 136955,
+ 136961, 136967, 136972, 136978, 136984, 136990, 136995, 137001, 137007,
+ 137012, 137018, 137024, 137029, 137035, 137041, 137046, 137051, 137057,
+ 137062, 137068, 137074, 137080, 137086, 137092, 137096, 137101, 137106,
+ 137111, 137115, 137120, 137125, 137130, 137134, 137139, 137144, 137148,
+ 137153, 137158, 137162, 137167, 137172, 137176, 137180, 137185, 137189,
+ 137194, 137199, 137204, 137209, 137214, 137218, 137223, 137228, 137233,
+ 137237, 137242, 137247, 137252, 137256, 137261, 137266, 137270, 137275,
+ 137280, 137284, 137289, 137294, 137298, 137302, 137307, 137311, 137316,
+ 137321, 137326, 137331, 137336, 137341, 137347, 137353, 137359, 137364,
+ 137370, 137376, 137382, 137387, 137393, 137399, 137404, 137410, 137416,
+ 137421, 137427, 137433, 137438, 137443, 137449, 137454, 137460, 137466,
+ 137472, 137478, 137484, 137489, 137495, 137501, 137507, 137512, 137518,
+ 137524, 137530, 137535, 137541, 137547, 137552, 137558, 137564, 137569,
+ 137575, 137581, 137586, 137591, 137597, 137602, 137608, 137614, 137620,
+ 137626, 137632, 137637, 137643, 137649, 137655, 137660, 137666, 137672,
+ 137678, 137683, 137689, 137695, 137700, 137706, 137712, 137717, 137723,
+ 137729, 137734, 137739, 137745, 137750, 137756, 137762, 137768, 137774,
+ 137780, 137785, 137791, 137797, 137803, 137808, 137814, 137820, 137826,
+ 137831, 137837, 137843, 137848, 137854, 137860, 137865, 137871, 137877,
+ 137882, 137887, 137893, 137898, 137904, 137910, 137916, 137922, 137928,
+ 137934, 137941, 137948, 137955, 137961, 137968, 137975, 137982, 137988,
+ 137995, 138002, 138008, 138015, 138022, 138028, 138035, 138042, 138048,
+ 138054, 138061, 138067, 138074, 138081, 138088, 138095, 138102, 138108,
+ 138115, 138122, 138129, 138135, 138142, 138149, 138156, 138162, 138169,
+ 138176, 138182, 138189, 138196, 138202, 138209, 138216, 138222, 138228,
+ 138235, 138241, 138248, 138255, 138262, 138269, 138276, 138281, 138287,
+ 138293, 138299, 138304, 138310, 138316, 138322, 138327, 138333, 138339,
+ 138344, 138350, 138356, 138361, 138367, 138373, 138378, 138383, 138389,
+ 138394, 138400, 138406, 138412, 138418, 138424, 138429, 138435, 138441,
+ 138447, 138452, 138458, 138464, 138470, 138475, 138481, 138487, 138492,
+ 138498, 138504, 138509, 138515, 138521, 138526, 138531, 138537, 138542,
+ 138548, 138554, 138560, 138566, 138572, 138578, 0, 0, 138585, 138590,
+ 138595, 138600, 138605, 138610, 138615, 138620, 138625, 138630, 138635,
+ 138640, 138645, 138650, 138655, 138660, 138665, 138670, 138676, 138681,
+ 138686, 138691, 138696, 138701, 138706, 138711, 138715, 138720, 138725,
+ 138730, 138735, 138740, 138745, 138750, 138755, 138760, 138765, 138770,
+ 138775, 138780, 138785, 138790, 138795, 138800, 138806, 138811, 138816,
+ 138821, 138826, 138831, 138836, 138841, 138847, 138852, 138857, 138862,
+ 138867, 138872, 138877, 138882, 138887, 138892, 138897, 138902, 138907,
+ 138912, 138917, 138922, 138927, 138932, 138937, 138942, 138947, 138952,
+ 138957, 138962, 138968, 138973, 138978, 138983, 138988, 138993, 138998,
+ 139003, 139007, 139012, 139017, 139022, 139027, 139032, 139037, 139042,
+ 139047, 139052, 139057, 139062, 139067, 139072, 139077, 139082, 139087,
+ 139092, 139098, 139103, 139108, 139113, 139118, 139123, 139128, 139133,
+ 139139, 139144, 139149, 139154, 139159, 139164, 139169, 139175, 139181,
+ 139187, 139193, 139199, 139205, 139211, 139217, 139223, 139229, 139235,
+ 139241, 139247, 139253, 139259, 139265, 139271, 139278, 139284, 139290,
+ 139296, 139302, 139308, 139314, 139320, 139325, 139331, 139337, 139343,
+ 139349, 139355, 139361, 139367, 139373, 139379, 139385, 139391, 139397,
+ 139403, 139409, 139415, 139421, 139427, 139434, 139440, 139446, 139452,
+ 139458, 139464, 139470, 139476, 139483, 139489, 139495, 139501, 139507,
+ 139513, 139519, 139525, 139531, 139537, 139543, 139549, 139555, 139561,
+ 139567, 139573, 139579, 139585, 139591, 139597, 139603, 139609, 139615,
+ 139621, 139628, 139634, 139640, 139646, 139652, 139658, 139664, 139670,
+ 139675, 139681, 139687, 139693, 139699, 139705, 139711, 139717, 139723,
+ 139729, 139735, 139741, 139747, 139753, 139759, 139765, 139771, 139777,
+ 139784, 139790, 139796, 139802, 139808, 139814, 139820, 139826, 139833,
+ 139839, 139845, 139851, 139857, 139863, 139869, 139876, 139883, 139890,
+ 139897, 139904, 139911, 139918, 139925, 139932, 139939, 139946, 139953,
+ 139960, 139967, 139974, 139981, 139988, 139996, 140003, 140010, 140017,
+ 140024, 140031, 140038, 140045, 140051, 140058, 140065, 140072, 140079,
+ 140086, 140093, 140100, 140107, 140114, 140121, 140128, 140135, 140142,
+ 140149, 140156, 140163, 140170, 140178, 140185, 140192, 140199, 140206,
+ 140213, 140220, 140227, 140235, 140242, 140249, 140256, 140263, 140270,
+ 140277, 140282, 0, 0, 140287, 140292, 140296, 140300, 140304, 140308,
+ 140312, 140316, 140321, 140325, 140330, 140335, 140339, 140343, 140347,
+ 140351, 140355, 140359, 140364, 140368, 140373, 140378, 140382, 140386,
+ 140390, 140394, 140398, 140402, 140407, 140411, 140416, 140422, 140427,
+ 140432, 140437, 140442, 140447, 140452, 140458, 140463, 140469, 140475,
+ 140480, 140485, 140490, 140495, 140500, 140505, 140511, 140516, 140522,
+ 140526, 140531, 140536, 140541, 140546, 140551, 140556, 140562, 140570,
+ 140577, 140582, 140587, 140594, 140600, 140605, 140611, 140617, 140625,
+ 140631, 140638, 140646, 140652, 140661, 140670, 140678, 140686, 140692,
+ 140699, 140707, 140715, 140721, 140728, 140737, 140746, 140753, 140764,
+ 140774, 140784, 140794, 140804, 140811, 140818, 140825, 140832, 140841,
+ 140850, 140861, 140872, 140881, 140890, 140901, 140910, 140919, 140930,
+ 140939, 140948, 140956, 140964, 140975, 140986, 140994, 141003, 141012,
+ 141019, 141030, 141041, 141050, 141059, 141066, 141075, 141084, 141093,
+ 141104, 141113, 141123, 141132, 141141, 141152, 141165, 141180, 141191,
+ 141204, 141216, 141225, 141236, 141247, 141256, 141267, 141281, 141296,
+ 141299, 141308, 141313, 141319, 141327, 141333, 141339, 141348, 141355,
+ 141365, 141377, 141384, 141387, 141393, 141400, 141406, 141411, 141414,
+ 141419, 141422, 141429, 141435, 141443, 141450, 141457, 141463, 141468,
+ 141471, 141474, 141477, 141483, 141490, 141496, 141501, 141508, 141511,
+ 141516, 141523, 141529, 141537, 141544, 141554, 141563, 141566, 141572,
+ 141579, 141586, 141593, 141598, 141606, 141614, 141623, 141629, 141638,
+ 141647, 141656, 141662, 141671, 141678, 141685, 141692, 141700, 141706,
+ 141714, 141720, 141727, 141734, 141742, 141753, 141763, 141769, 141776,
+ 141783, 141790, 141796, 141803, 141810, 141815, 141822, 141830, 141839,
+ 141845, 141857, 141868, 141874, 141882, 141888, 141895, 141902, 141909,
+ 141915, 141922, 141931, 141937, 141943, 141950, 141957, 141965, 141975,
+ 141985, 141995, 142005, 142013, 142021, 142031, 142039, 142044, 142049,
+ 142054, 142060, 142067, 142074, 142080, 142086, 142091, 142098, 142106,
+ 142116, 142124, 142132, 142142, 142152, 142160, 142170, 142180, 142192,
+ 142204, 142216, 142226, 142232, 142238, 142245, 142254, 142263, 142272,
+ 142281, 142291, 142300, 142309, 142318, 142323, 142329, 142338, 142348,
+ 142357, 142363, 142369, 142376, 142383, 142390, 142396, 142403, 142410,
+ 142417, 142423, 142427, 142432, 142439, 142446, 142453, 142458, 142466,
+ 142474, 142483, 142491, 142498, 142506, 142515, 142525, 142528, 142532,
+ 142537, 142542, 142547, 142552, 142557, 142562, 142567, 142572, 142577,
+ 142582, 142587, 142592, 142597, 142602, 142607, 142612, 142617, 142624,
+ 142630, 142637, 142643, 142648, 142655, 142661, 142668, 142674, 142679,
+ 142686, 142693, 142700, 142706, 142712, 142721, 142730, 142741, 142748,
+ 142755, 142764, 142773, 142782, 142791, 142800, 142806, 142814, 142820,
+ 142830, 142835, 142844, 142853, 142860, 142871, 142878, 142885, 142892,
+ 142899, 142906, 142913, 142920, 142927, 142934, 142941, 142947, 142953,
+ 142959, 142966, 142973, 142980, 142987, 142994, 143001, 143008, 143015,
+ 143022, 143029, 143036, 143043, 143048, 143057, 143066, 143075, 143082,
+ 143089, 143096, 143103, 143110, 143117, 143124, 143131, 143140, 143149,
+ 143158, 143167, 143176, 143185, 143194, 143203, 143212, 143221, 143230,
+ 143239, 143248, 143254, 143262, 143268, 143278, 143283, 143292, 143301,
+ 143310, 143321, 143326, 143333, 143340, 143347, 143352, 143358, 143364,
+ 143370, 143377, 143384, 143391, 143398, 143405, 143412, 143419, 143426,
+ 143433, 143440, 143447, 143454, 143459, 143468, 143477, 143486, 143495,
+ 143504, 143513, 143522, 143531, 143542, 143553, 143560, 143567, 143574,
+ 143581, 143588, 143595, 143603, 143613, 143623, 143633, 143644, 143655,
+ 143666, 143675, 143684, 143693, 143698, 143703, 143708, 143713, 143724,
+ 143735, 143746, 143757, 143768, 143778, 143789, 143798, 143807, 143816,
+ 143825, 143834, 143842, 143851, 143862, 143873, 143884, 143895, 143906,
+ 143918, 143931, 143943, 143956, 143968, 143981, 143993, 144006, 144017,
+ 144028, 144037, 144045, 144054, 144065, 144076, 144088, 144101, 144115,
+ 144130, 144142, 144155, 144167, 144180, 144191, 144202, 144211, 144219,
+ 144228, 144235, 144242, 144249, 144256, 144263, 144270, 144277, 144284,
+ 144291, 144298, 144303, 144308, 144313, 144320, 144330, 144341, 144351,
+ 144362, 144376, 144391, 144406, 144420, 144435, 144450, 144461, 144472,
+ 144485, 144498, 144507, 144516, 144529, 144542, 144549, 144556, 144561,
+ 144566, 144571, 144576, 144581, 144588, 144597, 144602, 144605, 144610,
+ 144617, 144624, 144631, 144638, 144645, 144652, 144665, 144679, 144694,
+ 144701, 144708, 144715, 144724, 144732, 144740, 144749, 144754, 144759,
+ 144764, 144769, 144774, 144779, 144786, 144793, 144799, 144806, 144812,
+ 144819, 144824, 144829, 144834, 144839, 144844, 144851, 144858, 144863,
+ 144870, 144877, 144882, 144887, 144892, 144897, 144902, 144907, 144914,
+ 144921, 144928, 144931, 144936, 144941, 144946, 144951, 144958, 144965,
+ 144973, 144981, 144986, 144991, 144998, 145005, 145012, 145017, 145024,
+ 145031, 145036, 145043, 145050, 145056, 145062, 145068, 145074, 145082,
+ 145090, 145096, 145104, 145112, 145117, 145124, 145131, 145136, 145143,
+ 145150, 145157, 145165, 145173, 145178, 145185, 145192, 145201, 145208,
+ 145217, 145228, 145237, 145246, 145255, 145264, 145267, 145272, 145279,
+ 145288, 145295, 145304, 145311, 145316, 145321, 145324, 145327, 145330,
+ 145337, 145344, 145353, 145362, 145371, 145378, 145385, 145390, 145403,
+ 145408, 145413, 145418, 145423, 145428, 145433, 145438, 145443, 145446,
+ 145451, 145456, 145461, 145466, 145471, 145478, 145483, 145490, 145493,
+ 145498, 145501, 145504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 145507, 145512, 145517, 145522, 145527, 0, 145532, 145537, 145542,
+ 145547, 145552, 145557, 145562, 145567, 145572, 145577, 145582, 145587,
+ 145592, 145597, 145602, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93989, 93993,
- 93997, 94001, 94005, 94009, 94013, 94017, 94021, 94025, 94030, 94035,
- 94040, 94045, 94050, 94055, 94060, 94065, 94070, 94076, 94082, 94088,
- 94095, 94102, 94109, 94116, 94123, 94130, 94137, 94144, 94151, 0, 94158,
- 94162, 94166, 94170, 94174, 94178, 94181, 94185, 94188, 94192, 94195,
- 94199, 94203, 94208, 94212, 94217, 94220, 94224, 94227, 94231, 94234,
- 94238, 94242, 94246, 94250, 94254, 94258, 94262, 94266, 94270, 94274,
- 94278, 94282, 94286, 94290, 94294, 94298, 94302, 94306, 94309, 94312,
- 94316, 94320, 94324, 94327, 94330, 94333, 94337, 94341, 94345, 94349,
- 94352, 94355, 94359, 94365, 94371, 94377, 94382, 94389, 94393, 94398,
- 94402, 94407, 94412, 94418, 94423, 94429, 94433, 94438, 94442, 94447,
- 94450, 94453, 94457, 94462, 94468, 94473, 94479, 0, 0, 0, 0, 94484,
- 94487, 94490, 94493, 94496, 94499, 94502, 94505, 94508, 94511, 94515,
- 94519, 94523, 94527, 94531, 94535, 94539, 94543, 94547, 94552, 94557,
- 94561, 94564, 94567, 94570, 94573, 94576, 94579, 94582, 94585, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94588, 94593, 94598, 94603, 94607,
- 94612, 94616, 94621, 94625, 94630, 94634, 94639, 94643, 94648, 94652,
- 94657, 94662, 94667, 94672, 94677, 94682, 94687, 94692, 94697, 94702,
- 94707, 94712, 94717, 94722, 94727, 94732, 94737, 94742, 94747, 94752,
- 94756, 94760, 94765, 94770, 94775, 94779, 94783, 94787, 94792, 94797,
- 94802, 94807, 94811, 94815, 94821, 94826, 94832, 94837, 94843, 94848,
- 94854, 94859, 94865, 94870, 94875, 94880, 94885, 94889, 94894, 94900,
- 94904, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94909, 94916, 94923,
- 94930, 94937, 94944, 94951, 94958, 94965, 94972, 94979, 94986, 94993,
- 95000, 95007, 95014, 95021, 95028, 95035, 95042, 95049, 95056, 95063,
- 95070, 95077, 0, 0, 0, 0, 0, 0, 0, 95084, 95091, 95097, 95103, 95109,
- 95115, 95121, 95127, 95133, 95139, 0, 0, 0, 0, 0, 0, 95145, 95150, 95155,
- 95160, 95165, 95169, 95173, 95177, 95182, 95187, 95192, 95197, 95202,
- 95207, 95212, 95217, 95222, 95227, 95232, 95237, 95242, 95247, 95252,
- 95257, 95262, 95267, 95272, 95277, 95282, 95287, 95292, 95297, 95302,
- 95307, 95312, 95317, 95322, 95327, 95332, 95337, 95342, 95347, 95353,
- 95358, 95364, 95369, 95375, 95380, 95386, 95392, 95396, 95401, 95405, 0,
- 95409, 95414, 95418, 95422, 95426, 95430, 95434, 95438, 95442, 95446,
- 95450, 95455, 95459, 95464, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95469,
- 95473, 95477, 95481, 95484, 95488, 95491, 95495, 95498, 95502, 95506,
- 95511, 95515, 95520, 95523, 95527, 95530, 95534, 95537, 95541, 95545,
- 95549, 95553, 95557, 95561, 95565, 95569, 95573, 95577, 95581, 95585,
- 95589, 95593, 95597, 95601, 95605, 95609, 95612, 95615, 95619, 95623,
- 95627, 95630, 95633, 95636, 95640, 95644, 95648, 95652, 95656, 95659,
- 95662, 95667, 95671, 95676, 95680, 95685, 95690, 95696, 95701, 95707,
- 95711, 95716, 95720, 95725, 95729, 95733, 95737, 95741, 95744, 95747,
- 95751, 95755, 0, 0, 0, 0, 0, 0, 0, 95758, 95762, 95765, 95768, 95771,
- 95774, 95777, 95780, 95783, 95786, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145607, 145614, 145620,
+ 145627, 145634, 145641, 145648, 145655, 145662, 145669, 145676, 145683,
+ 145690, 145697, 145704, 145711, 145718, 145725, 145732, 145739, 145746,
+ 145753, 145760, 145767, 145774, 145781, 145788, 145795, 145802, 145809,
+ 145816, 145823, 145830, 145837, 145844, 145850, 145856, 145862, 145869,
+ 145875, 145882, 145888, 145895, 145902, 145909, 145916, 145923, 145930,
+ 145937, 145944, 145951, 145958, 145965, 145972, 145979, 145986, 145993,
+ 146000, 146007, 146014, 146021, 146028, 146036, 146043, 146050, 146057,
+ 146064, 146071, 146078, 146085, 146092, 146099, 146106, 146113, 146120,
+ 146126, 146133, 146140, 146147, 146154, 146161, 146168, 146175, 146183,
+ 146190, 146196, 146203, 146210, 146217, 146224, 146231, 146238, 146245,
+ 146252, 146259, 146266, 146273, 146280, 146287, 146294, 146301, 146308,
+ 146315, 146322, 146329, 146336, 146342, 146349, 146356, 146363, 146370,
+ 146377, 146384, 146391, 146398, 146405, 146412, 146419, 146426, 146433,
+ 146440, 146447, 146454, 146461, 146468, 146475, 146482, 146489, 146496,
+ 146504, 146512, 146520, 146527, 146534, 146541, 146548, 146555, 146562,
+ 146569, 146576, 146583, 146590, 146596, 146603, 146610, 146617, 146624,
+ 146631, 146638, 146645, 146652, 146659, 146666, 146673, 146680, 146687,
+ 146694, 146702, 146710, 146718, 146725, 146732, 146739, 146746, 146753,
+ 146760, 146767, 146774, 146781, 146788, 146795, 146802, 146809, 146816,
+ 146823, 146830, 146837, 146844, 146851, 146858, 146865, 146872, 146879,
+ 146886, 146893, 146900, 146907, 146914, 146921, 146928, 146935, 146942,
+ 146949, 146956, 146963, 146970, 146977, 0, 0, 146984, 146988, 146992,
+ 146996, 147000, 147004, 147008, 147013, 147017, 147022, 147028, 147034,
+ 147040, 147046, 147054, 147062, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 95789, 95793, 95798, 95802, 95807, 95811, 95816, 95820, 95825, 95829,
- 95834, 95838, 95843, 95848, 95853, 95858, 95863, 95868, 95873, 95878,
- 95883, 95888, 95893, 95898, 95903, 95908, 95913, 95918, 95923, 95928,
- 95932, 95936, 95941, 95946, 95951, 95955, 95959, 95963, 95968, 95973,
- 95978, 95982, 95986, 95991, 95996, 96001, 96007, 96012, 96018, 96023,
- 96029, 96034, 96040, 96045, 96051, 96056, 0, 0, 0, 0, 0, 0, 0, 0, 96061,
- 96066, 96070, 96074, 96078, 96082, 96086, 96090, 96094, 96098, 0, 0, 0,
+ 0, 0, 0, 147068, 147072, 147076, 147080, 0, 147084, 147088, 147092,
+ 147096, 147100, 147104, 147108, 147112, 147116, 147120, 147124, 147128,
+ 147132, 147136, 147140, 147144, 147148, 147152, 147156, 147160, 147164,
+ 147168, 147172, 147176, 147182, 147188, 147194, 0, 147200, 147205, 0,
+ 147210, 0, 0, 147215, 0, 147220, 147225, 147230, 147235, 147240, 147245,
+ 147250, 147255, 147260, 147265, 0, 147270, 147275, 147280, 147285, 0,
+ 147290, 0, 147295, 0, 0, 0, 0, 0, 0, 147300, 0, 0, 0, 0, 147306, 0,
+ 147312, 0, 147318, 0, 147324, 147330, 147336, 0, 147342, 147348, 0,
+ 147354, 0, 0, 147360, 0, 147366, 0, 147372, 0, 147378, 0, 147386, 0,
+ 147394, 147400, 0, 147406, 0, 0, 147412, 147418, 147424, 147430, 0,
+ 147436, 147442, 147448, 147454, 147460, 147466, 147472, 0, 147478,
+ 147484, 147490, 147496, 0, 147502, 147508, 147514, 147520, 0, 147528, 0,
+ 147536, 147542, 147548, 147554, 147560, 147566, 147572, 147578, 147584,
+ 147590, 0, 147596, 147602, 147608, 147614, 147620, 147626, 147632,
+ 147638, 147644, 147650, 147656, 147662, 147668, 147674, 147680, 147686,
+ 147692, 0, 0, 0, 0, 0, 147698, 147703, 147708, 0, 147713, 147718, 147723,
+ 147728, 147733, 0, 147738, 147743, 147748, 147753, 147758, 147763,
+ 147768, 147773, 147778, 147783, 147788, 147793, 147798, 147803, 147808,
+ 147813, 147818, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 147823, 147833, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 147841, 147848, 147855, 147862, 147868, 147875, 147882,
+ 147888, 147895, 147902, 147909, 147917, 147925, 147933, 147941, 147949,
+ 147957, 147964, 147971, 147978, 147986, 147994, 148002, 148010, 148018,
+ 148026, 148033, 148040, 148047, 148055, 148063, 148071, 148079, 148087,
+ 148095, 148100, 148105, 148110, 148115, 148120, 148125, 148130, 148135,
+ 148140, 0, 0, 0, 0, 148145, 148151, 148155, 148159, 148163, 148167,
+ 148171, 148175, 148179, 148183, 148187, 148191, 148195, 148199, 148203,
+ 148207, 148211, 148215, 148219, 148223, 148227, 148231, 148235, 148239,
+ 148243, 148247, 148251, 148255, 148259, 148263, 148267, 148271, 148275,
+ 148279, 148283, 148287, 148291, 148295, 148299, 148303, 148307, 148311,
+ 148315, 148319, 148323, 148327, 148331, 148335, 148339, 148343, 148347,
+ 148352, 148356, 148360, 148364, 148368, 148372, 148376, 148380, 148384,
+ 148388, 148392, 148396, 148400, 148404, 148408, 148412, 148416, 148420,
+ 148424, 148428, 148432, 148436, 148440, 148444, 148448, 148452, 148456,
+ 148460, 148464, 148468, 148472, 148476, 148480, 148484, 148488, 148492,
+ 148496, 148500, 148504, 148508, 148512, 148516, 148520, 148524, 148528,
+ 148532, 148536, 148540, 148544, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 148548, 148554, 148563, 148571, 148579, 148588, 148597, 148606, 148615,
+ 148624, 148633, 148642, 148651, 148660, 148669, 0, 0, 148678, 148687,
+ 148695, 148703, 148712, 148721, 148730, 148739, 148748, 148757, 148766,
+ 148775, 148784, 148793, 148802, 0, 148810, 148819, 148827, 148835,
+ 148844, 148853, 148862, 148871, 148880, 148889, 148898, 148907, 148916,
+ 148925, 148934, 0, 148941, 148950, 148958, 148966, 148975, 148984,
+ 148993, 149002, 149011, 149020, 149029, 149038, 149047, 149056, 149065,
+ 149072, 149078, 149084, 149090, 149096, 149102, 149108, 149114, 149120,
+ 149126, 149132, 149138, 149144, 149150, 149156, 149162, 149168, 149174,
+ 149180, 149186, 149192, 149198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149204,
+ 149211, 149216, 149220, 149224, 149228, 149233, 149238, 149243, 149248,
+ 149253, 149258, 149265, 0, 0, 0, 149273, 149278, 149284, 149290, 149296,
+ 149301, 149307, 149313, 149319, 149324, 149330, 149336, 149341, 149347,
+ 149353, 149358, 149364, 149370, 149375, 149380, 149386, 149391, 149397,
+ 149403, 149409, 149415, 149421, 149431, 149438, 149444, 149447, 0,
+ 149450, 149455, 149461, 149467, 149473, 149478, 149484, 149490, 149496,
+ 149501, 149507, 149513, 149518, 149524, 149530, 149535, 149541, 149547,
+ 149552, 149557, 149563, 149568, 149574, 149580, 149586, 149592, 149598,
+ 149601, 149604, 149607, 149610, 149613, 149616, 149622, 149629, 149636,
+ 149643, 149649, 149656, 149663, 149670, 149676, 149683, 149690, 149696,
+ 149703, 149710, 149716, 149723, 149730, 149736, 149742, 149749, 149755,
+ 149762, 149769, 149776, 149783, 149790, 149795, 0, 0, 0, 0, 149800,
+ 149806, 149813, 149820, 149827, 149833, 149840, 149847, 149854, 149860,
+ 149867, 149874, 149880, 149887, 149894, 149900, 149907, 149914, 149920,
+ 149926, 149933, 149939, 149946, 149953, 149960, 149967, 149974, 149983,
+ 149987, 149990, 149994, 149998, 150002, 150005, 150008, 150011, 150014,
+ 150017, 150020, 150023, 150026, 150029, 150035, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 96102, 96105, 96110, 96116, 96124, 96129, 96135, 96143, 96149,
- 96155, 96159, 96163, 96170, 96179, 96186, 96195, 96201, 96210, 96217,
- 96224, 96231, 96241, 96247, 96251, 96258, 96267, 96277, 96284, 96291,
- 96295, 96299, 96306, 96316, 96320, 96327, 96334, 96341, 96347, 96354,
- 96361, 96368, 96375, 96379, 96383, 96387, 96394, 96398, 96405, 96412,
- 96426, 96435, 96439, 96443, 96447, 96454, 96458, 96462, 96466, 96474,
- 96482, 96501, 96511, 96531, 96535, 96539, 96543, 96547, 96551, 96555,
- 96559, 96566, 96570, 96573, 96577, 96581, 96587, 96594, 96603, 96607,
- 96616, 96625, 96633, 96637, 96644, 96648, 96652, 96656, 96660, 96671,
- 96680, 96689, 96698, 96707, 96719, 96728, 96737, 96746, 96754, 96763,
- 96775, 96784, 96793, 96802, 96814, 96823, 96832, 96844, 96853, 96862,
- 96874, 96883, 96887, 96891, 96895, 96899, 96903, 96907, 96911, 96918,
- 96922, 96926, 96937, 96941, 96945, 96952, 96958, 96964, 96968, 96975,
- 96979, 96983, 96987, 96991, 96995, 96999, 97005, 97013, 97017, 97021,
- 97024, 97030, 97040, 97044, 97056, 97063, 97070, 97077, 97084, 97090,
- 97094, 97098, 97102, 97106, 97113, 97122, 97129, 97137, 97145, 97151,
- 97155, 97159, 97163, 97167, 97173, 97182, 97194, 97201, 97208, 97217,
- 97228, 97234, 97243, 97252, 97259, 97268, 97275, 97282, 97292, 97299,
- 97306, 97313, 97320, 97324, 97330, 97334, 97345, 97353, 97362, 97374,
- 97381, 97388, 97398, 97405, 97414, 97421, 97430, 97437, 97444, 97454,
- 97461, 97468, 97478, 97485, 97497, 97506, 97513, 97520, 97527, 97536,
- 97546, 97559, 97566, 97576, 97586, 97593, 97602, 97615, 97622, 97629,
- 97636, 97646, 97656, 97663, 97673, 97680, 97687, 97697, 97703, 97710,
- 97717, 97724, 97734, 97741, 97748, 97755, 97761, 97768, 97778, 97785,
- 97789, 97797, 97801, 97813, 97817, 97831, 97835, 97839, 97843, 97847,
- 97853, 97860, 97868, 97872, 97876, 97880, 97884, 97891, 97895, 97901,
- 97907, 97915, 97919, 97926, 97934, 97938, 97942, 97948, 97952, 97961,
- 97970, 97977, 97987, 97993, 97997, 98001, 98009, 98016, 98023, 98029,
- 98033, 98041, 98045, 98052, 98064, 98071, 98081, 98087, 98091, 98100,
- 98107, 98116, 98120, 98124, 98131, 98135, 98139, 98143, 98147, 98150,
- 98156, 98162, 98166, 98170, 98177, 98184, 98191, 98198, 98205, 98212,
- 98219, 98226, 98232, 98236, 98240, 98247, 98254, 98261, 98268, 98275,
- 98279, 98282, 98287, 98291, 98295, 98304, 98313, 98317, 98321, 98327,
- 98333, 98350, 98356, 98360, 98369, 98373, 98377, 98384, 98392, 98400,
- 98406, 98410, 98414, 98418, 98422, 98425, 98431, 98438, 98448, 98455,
- 98462, 98469, 98475, 98482, 98489, 98496, 98503, 98510, 98519, 98526,
- 98538, 98545, 98552, 98562, 98573, 98580, 98587, 98594, 98601, 98608,
- 98615, 98622, 98629, 98636, 98643, 98653, 98663, 98673, 98680, 98690,
- 98697, 98704, 98711, 98718, 98724, 98731, 98738, 98745, 98752, 98759,
- 98766, 98773, 98780, 98786, 98793, 98800, 98809, 98816, 98823, 98827,
- 98835, 98839, 98843, 98847, 98851, 98855, 98862, 98866, 98875, 98879,
- 98886, 98894, 98898, 98902, 98906, 98919, 98935, 98939, 98943, 98950,
- 98956, 98963, 98967, 98971, 98975, 98979, 98983, 98990, 98994, 99012,
- 99016, 99020, 99027, 99031, 99035, 99041, 99045, 99049, 99057, 99061,
- 99065, 99069, 99073, 99079, 99090, 99099, 99108, 99115, 99122, 99133,
- 99140, 99147, 99154, 99161, 99168, 99175, 99182, 99192, 99198, 99205,
- 99215, 99224, 99231, 99240, 99250, 99257, 99264, 99271, 99278, 99290,
- 99297, 99304, 99311, 99318, 99325, 99335, 99342, 99349, 99359, 99372,
- 99384, 99391, 99401, 99408, 99415, 99422, 99436, 99442, 99450, 99460,
- 99470, 99477, 99484, 99490, 99494, 99501, 99511, 99517, 99530, 99534,
- 99538, 99545, 99549, 99556, 99566, 99570, 99574, 99578, 99582, 99586,
- 99593, 99597, 99604, 99611, 99618, 99627, 99636, 99646, 99653, 99660,
- 99667, 99677, 99684, 99694, 99701, 99711, 99718, 99725, 99735, 99745,
- 99752, 99758, 99766, 99774, 99780, 99786, 99790, 99794, 99801, 99809,
- 99815, 99819, 99823, 99827, 99834, 99846, 99849, 99856, 99862, 99866,
- 99870, 99874, 99878, 99882, 99886, 99890, 99894, 99898, 99902, 99909,
- 99913, 99919, 99923, 99927, 99931, 99937, 99944, 99951, 99958, 99969,
- 99977, 99981, 99987, 99996, 100003, 100009, 100012, 100016, 100020,
- 100026, 100035, 100043, 100047, 100053, 100057, 100061, 100065, 100071,
- 100078, 100084, 100088, 100094, 100098, 100102, 100111, 100123, 100127,
- 100134, 100141, 100151, 100158, 100170, 100177, 100184, 100191, 100202,
- 100212, 100225, 100235, 100242, 100246, 100250, 100254, 100258, 100267,
- 100276, 100285, 100302, 100311, 100317, 100324, 100332, 100345, 100349,
- 100358, 100367, 100376, 100385, 100396, 100405, 100414, 100423, 100432,
- 100441, 100450, 100460, 100463, 100467, 100471, 100475, 100479, 100483,
- 100489, 100496, 100503, 100510, 100516, 100522, 100529, 100535, 100542,
- 100550, 100554, 100561, 100568, 100575, 100583, 100586, 100590, 100594,
- 100598, 100601, 100607, 100611, 100617, 100624, 100631, 100637, 100644,
- 100651, 100658, 100665, 100672, 100679, 100686, 100693, 100700, 100707,
- 100714, 100721, 100728, 100735, 100741, 100745, 100754, 100758, 100762,
- 100766, 100770, 100776, 100783, 100790, 100797, 100804, 100811, 100817,
- 100825, 100829, 100833, 100837, 100841, 100847, 100864, 100881, 100885,
- 100889, 100893, 100897, 100901, 100905, 100911, 100918, 100922, 100928,
- 100935, 100942, 100949, 100956, 100963, 100972, 100979, 100986, 100993,
- 101000, 101004, 101008, 101014, 101026, 101030, 101034, 101043, 101047,
- 101051, 101055, 101061, 101065, 101069, 101078, 101082, 101086, 101090,
- 101097, 101101, 101105, 101109, 101113, 101117, 101121, 101125, 101129,
- 101135, 101142, 101149, 101155, 101159, 101176, 101182, 101186, 101192,
- 101198, 101204, 101210, 101216, 101222, 101226, 101230, 101234, 101240,
- 101244, 101250, 101254, 101258, 101265, 101272, 101289, 101293, 101297,
- 101301, 101305, 101309, 101321, 101324, 101329, 101334, 101349, 101359,
- 101371, 101375, 101379, 101383, 101389, 101396, 101403, 101413, 101425,
- 101431, 101437, 101446, 101450, 101454, 101461, 101471, 101478, 101484,
- 101488, 101492, 101499, 101505, 101509, 101515, 101519, 101527, 101533,
- 101537, 101545, 101553, 101560, 101566, 101573, 101580, 101590, 101600,
- 101604, 101608, 101612, 101616, 101622, 101629, 101635, 101642, 101649,
- 101656, 101665, 101672, 101679, 101685, 101692, 101699, 101706, 101713,
- 101720, 101727, 101733, 101740, 101747, 101754, 101763, 101770, 101777,
- 101781, 101787, 101791, 101797, 101804, 101811, 101818, 101822, 101826,
- 101830, 101834, 101838, 101845, 101849, 101853, 101859, 101867, 101871,
- 101875, 101879, 101883, 101890, 101894, 101898, 101906, 101910, 101914,
- 101918, 101922, 101928, 101932, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 101936, 101942, 101948, 101955, 101962, 101969, 101976, 101983,
- 101990, 101996, 102003, 102010, 102017, 102024, 102031, 102038, 102044,
- 102050, 102056, 102062, 102068, 102074, 102080, 102086, 102092, 102099,
- 102106, 102113, 102120, 102127, 102134, 102140, 102146, 102152, 102159,
- 102166, 102172, 102178, 102187, 102194, 102201, 102208, 102215, 102222,
- 102229, 102235, 102241, 102247, 102256, 102263, 102270, 102281, 102292,
- 102298, 102304, 102310, 102319, 102326, 102333, 102343, 102353, 102364,
- 102375, 102387, 102400, 102411, 102422, 102434, 102447, 102458, 102469,
- 102480, 102491, 102502, 102514, 102522, 102530, 102539, 102548, 102557,
- 102563, 102569, 102575, 102582, 102592, 102599, 102609, 102614, 102619,
- 102625, 102631, 102639, 102647, 102656, 102667, 102678, 102686, 102694,
- 102703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102712, 102723, 102730,
- 102738, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102746, 102750, 102754,
- 102758, 102762, 102766, 102770, 102774, 102778, 102782, 102786, 102790,
- 102794, 102798, 102802, 102806, 102810, 102814, 102818, 102822, 102826,
- 102830, 102834, 102838, 102842, 102846, 102850, 102854, 102858, 102862,
- 102866, 102870, 102874, 102878, 102882, 102886, 102890, 102894, 102898,
- 102902, 102906, 102910, 102914, 102918, 102922, 102926, 102930, 102934,
- 102938, 102942, 102946, 102950, 102954, 102958, 102962, 102966, 102970,
- 102974, 102978, 102982, 102986, 102990, 102994, 102998, 103002, 103006,
- 103010, 103014, 103018, 103022, 103026, 103030, 103034, 103038, 103042,
- 103046, 103050, 103054, 103058, 103062, 103066, 103070, 103074, 103078,
- 103082, 103086, 103090, 103094, 103098, 103102, 103106, 103110, 103114,
- 103118, 103122, 103126, 103130, 103134, 103138, 103142, 103146, 103150,
- 103154, 103158, 103162, 103166, 103170, 103174, 103178, 103182, 103186,
- 103190, 103194, 103198, 103202, 103206, 103210, 103214, 103218, 103222,
- 103226, 103230, 103234, 103238, 103242, 103246, 103250, 103254, 103258,
- 103262, 103266, 103270, 103274, 103278, 103282, 103286, 103290, 103294,
- 103298, 103302, 103306, 103310, 103314, 103318, 103322, 103326, 103330,
- 103334, 103338, 103342, 103346, 103350, 103354, 103358, 103362, 103366,
- 103370, 103374, 103378, 103382, 103386, 103390, 103394, 103398, 103402,
- 103406, 103410, 103414, 103418, 103422, 103426, 103430, 103434, 103438,
- 103442, 103446, 103450, 103454, 103458, 103462, 103466, 103470, 103474,
- 103478, 103482, 103486, 103490, 103494, 103498, 103502, 103506, 103510,
- 103514, 103518, 103522, 103526, 103530, 103534, 103538, 103542, 103546,
- 103550, 103554, 103558, 103562, 103566, 103570, 103574, 103578, 103582,
- 103586, 103590, 103594, 103598, 103602, 103606, 103610, 103614, 103618,
- 103622, 103626, 103630, 103634, 103638, 103642, 103646, 103650, 103654,
- 103658, 103662, 103666, 103670, 103674, 103678, 103682, 103686, 103690,
- 103694, 103698, 103702, 103706, 103710, 103714, 103718, 103722, 103726,
- 103730, 103734, 103738, 103742, 103746, 103750, 103754, 103758, 103762,
- 103766, 103770, 103774, 103778, 103782, 103786, 103790, 103794, 103798,
- 103802, 103806, 103810, 103814, 103818, 103822, 103826, 103830, 103834,
- 103838, 103842, 103846, 103850, 103854, 103858, 103862, 103866, 103870,
- 103874, 103878, 103882, 103886, 103890, 103894, 103898, 103902, 103906,
- 103910, 103914, 103918, 103922, 103926, 103930, 103934, 103938, 103942,
- 103946, 103950, 103954, 103958, 103962, 103966, 103970, 103974, 103978,
- 103982, 103986, 103990, 103994, 103998, 104002, 104006, 104010, 104014,
- 104018, 104022, 104026, 104030, 104034, 104038, 104042, 104046, 104050,
- 104054, 104058, 104062, 104066, 104070, 104074, 104078, 104082, 104086,
- 104090, 104094, 104098, 104102, 104106, 104110, 104114, 104118, 104122,
- 104126, 104130, 104134, 104138, 104142, 104146, 104150, 104154, 104158,
- 104162, 104166, 104170, 104174, 104178, 104182, 104186, 104190, 104194,
- 104198, 104202, 104206, 104210, 104214, 104218, 104222, 104226, 104230,
- 104234, 104238, 104242, 104246, 104250, 104254, 104258, 104262, 104266,
- 104270, 104274, 104278, 104282, 104286, 104290, 104294, 104298, 104302,
- 104306, 104310, 104314, 104318, 104322, 104326, 104330, 104334, 104338,
- 104342, 104346, 104350, 104354, 104358, 104362, 104366, 104370, 104374,
- 104378, 104382, 104386, 104390, 104394, 104398, 104402, 104406, 104410,
- 104414, 104418, 104422, 104426, 104430, 104434, 104438, 104442, 104446,
- 104450, 104454, 104458, 104462, 104466, 104470, 104474, 104478, 104482,
- 104486, 104490, 104494, 104498, 104502, 104506, 104510, 104514, 104518,
- 104522, 104526, 104530, 104534, 104538, 104542, 104546, 104550, 104554,
- 104558, 104562, 104566, 104570, 104574, 104578, 104582, 104586, 104590,
- 104594, 104598, 104602, 104606, 104610, 104614, 104618, 104622, 104626,
- 104630, 104634, 104638, 104642, 104646, 104650, 104654, 104658, 104662,
- 104666, 104670, 104674, 104678, 104682, 104686, 104690, 104694, 104698,
- 104702, 104706, 104710, 104714, 104718, 104722, 104726, 104730, 104734,
- 104738, 104742, 104746, 104750, 104754, 104758, 104762, 104766, 104770,
- 104774, 104778, 104782, 104786, 104790, 104794, 104798, 104802, 104806,
- 104810, 104814, 104818, 104822, 104826, 104830, 104834, 104838, 104842,
- 104846, 104850, 104854, 104858, 104862, 104866, 104870, 104874, 104878,
- 104882, 104886, 104890, 104894, 104898, 104902, 104906, 104910, 104914,
- 104918, 104922, 104926, 104930, 104934, 104938, 104942, 104946, 104950,
- 104954, 104958, 104962, 104966, 104970, 104974, 104978, 104982, 104986,
- 104990, 104994, 104998, 105002, 105006, 105010, 105014, 105018, 105022,
- 105026, 105030, 105034, 105038, 105042, 105046, 105050, 105054, 105058,
- 105062, 105066, 105070, 105074, 105078, 105082, 105086, 105090, 105094,
- 105098, 105102, 105106, 105110, 105114, 105118, 105122, 105126, 105130,
- 105134, 105138, 105142, 105146, 105150, 105154, 105158, 105162, 105166,
- 105170, 105174, 105178, 105182, 105186, 105190, 105194, 105198, 105202,
- 105206, 105210, 105214, 105218, 105222, 105226, 105230, 105234, 105238,
- 105242, 105246, 105250, 105254, 105258, 105262, 105266, 105270, 105274,
- 105278, 105282, 105286, 105290, 105294, 105298, 105302, 105306, 105310,
- 105314, 105318, 105322, 105326, 105330, 105334, 105338, 105342, 105346,
- 105350, 105354, 105358, 105362, 105366, 105370, 105374, 105378, 105382,
- 105386, 105390, 105394, 105398, 105402, 105406, 105410, 105414, 105418,
- 105422, 105426, 105430, 105434, 105438, 105442, 105446, 105450, 105454,
- 105458, 105462, 105466, 105470, 105474, 105478, 105482, 105486, 105490,
- 105494, 105498, 105502, 105506, 105510, 105514, 105518, 105522, 105526,
- 105530, 105534, 105538, 105542, 105546, 105550, 105554, 105558, 105562,
- 105566, 105570, 105574, 105578, 105582, 105586, 105590, 105594, 105598,
- 105602, 105606, 105610, 105614, 105618, 105622, 105626, 105630, 105634,
- 105638, 105642, 105646, 105650, 105654, 105658, 105662, 105666, 105670,
- 105674, 105678, 105682, 105686, 105690, 105694, 105698, 105702, 105706,
- 105710, 105714, 105718, 105722, 105726, 105730, 105734, 105738, 105742,
- 105746, 105750, 105754, 105758, 105762, 105766, 105770, 105774, 105778,
- 105782, 105786, 105790, 105794, 105798, 105802, 105806, 105810, 105814,
- 105818, 105822, 105826, 105830, 105834, 105838, 105842, 105846, 105850,
- 105854, 105858, 105862, 105866, 105870, 105874, 105878, 105882, 105886,
- 105890, 105894, 105898, 105902, 105906, 105910, 105914, 105918, 105922,
- 105926, 105930, 105934, 105938, 105942, 105946, 105950, 105954, 105958,
- 105962, 105966, 105970, 105974, 105978, 105982, 105986, 105990, 105994,
- 105998, 106002, 106006, 106010, 106014, 106018, 106022, 106026, 106030,
- 106034, 106038, 106042, 106046, 106050, 106054, 106058, 106062, 106066,
- 106070, 106074, 106078, 106082, 106086, 106090, 106094, 106098, 106102,
- 106106, 106110, 106114, 106118, 106122, 106126, 106130, 106134, 106138,
- 106142, 106146, 106150, 106154, 106158, 106162, 106166, 106170, 106174,
- 106178, 106182, 106186, 106190, 106194, 106198, 106202, 106206, 106210,
- 106214, 106218, 106222, 106226, 106230, 106234, 106238, 106242, 106246,
- 106250, 106254, 106258, 106262, 106266, 106270, 106274, 106278, 106282,
- 106286, 106290, 106294, 106298, 106302, 106306, 106310, 106314, 106318,
- 106322, 106326, 106330, 106334, 106338, 106342, 106346, 106350, 106354,
- 106358, 106362, 106366, 106370, 106374, 106378, 106382, 106386, 106390,
- 106394, 106398, 106402, 106406, 106410, 106414, 106418, 106422, 106426,
- 106430, 106434, 106438, 106442, 106446, 106450, 106454, 106458, 106462,
- 106466, 106470, 106474, 106478, 106482, 106486, 106490, 106494, 106498,
- 106502, 106506, 106510, 106514, 106518, 106522, 106526, 106530, 106534,
- 106538, 106542, 106546, 106550, 106554, 106558, 106562, 106566, 106570,
- 106574, 106578, 106582, 106586, 106590, 106594, 106598, 106602, 106606,
- 106610, 106614, 106618, 106622, 106626, 106630, 106634, 106638, 106642,
- 106646, 106650, 106654, 106658, 106662, 106666, 106670, 106674, 106678,
- 106682, 106686, 106690, 106694, 106698, 106702, 106706, 106710, 106714,
- 106718, 106722, 106726, 106730, 106734, 106738, 106742, 106746, 106750,
- 106754, 106758, 106762, 106766, 106770, 106774, 106778, 106782, 106786,
- 106790, 106794, 106798, 106802, 106806, 106810, 106814, 106818, 106822,
- 106826, 106830, 106834, 106838, 106842, 106846, 106850, 106854, 106858,
- 106862, 106866, 106870, 106874, 106878, 106882, 106886, 106890, 106894,
- 106898, 106902, 106906, 106910, 106914, 106918, 106922, 106926, 106930,
- 106934, 106938, 106942, 106946, 106950, 106954, 106958, 106962, 106966,
- 106970, 106974, 106978, 106982, 106986, 106990, 106994, 106998, 107002,
- 107006, 107010, 107014, 107018, 107022, 107026, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150038, 150045,
+ 150053, 150061, 150069, 150076, 150084, 150092, 150100, 150107, 150115,
+ 150123, 150130, 150138, 150146, 150153, 150161, 150169, 150176, 150183,
+ 150191, 150198, 150206, 150214, 150222, 150230, 150238, 150242, 150246,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150250, 150256, 150262, 150268,
+ 150272, 150278, 150284, 150290, 150296, 150302, 150308, 150314, 150320,
+ 150326, 150332, 150338, 150344, 150350, 150356, 150362, 150368, 150374,
+ 150380, 150386, 150392, 150398, 150404, 150410, 150416, 150422, 150428,
+ 150434, 150440, 150446, 150452, 150458, 150464, 150470, 150476, 150482,
+ 150488, 150494, 150500, 0, 0, 0, 0, 0, 150506, 150517, 150528, 150539,
+ 150550, 150561, 150572, 150583, 150594, 0, 0, 0, 0, 0, 0, 0, 150605,
+ 150609, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 107030, 107037, 107044, 107053, 107062, 107069, 107074, 107081,
- 107088, 107097, 107108, 107119, 107124, 107131, 107136, 107141, 107146,
- 107151, 107156, 107161, 107166, 107171, 107176, 107181, 107186, 107193,
- 107200, 107205, 107210, 107215, 107220, 107227, 107234, 107242, 107247,
- 107254, 107259, 107264, 107269, 107274, 107279, 107286, 107293, 107298,
- 107303, 107308, 107313, 107318, 107323, 107328, 107333, 107338, 107343,
- 107348, 107353, 107358, 107363, 107368, 107373, 107378, 107383, 107388,
- 107395, 107400, 107405, 107414, 107421, 107426, 107431, 107436, 107441,
- 107446, 107451, 107456, 107461, 107466, 107471, 107476, 107481, 107486,
- 107491, 107496, 107501, 107506, 107511, 107516, 107521, 107526, 107532,
- 107540, 107546, 107554, 107562, 107570, 107576, 107582, 107588, 107594,
- 107600, 107608, 107618, 107626, 107634, 107640, 107646, 107654, 107662,
- 107668, 107676, 107684, 107692, 107698, 107704, 107710, 107716, 107722,
- 107728, 107736, 107744, 107750, 107756, 107762, 107768, 107774, 107782,
- 107788, 107794, 107800, 107806, 107812, 107818, 107826, 107832, 107838,
- 107844, 107850, 107858, 107866, 107872, 107878, 107884, 107889, 107895,
- 107901, 107908, 107913, 107918, 107923, 107928, 107933, 107938, 107943,
- 107948, 107953, 107962, 107969, 107974, 107979, 107984, 107991, 107996,
- 108001, 108006, 108013, 108018, 108023, 108028, 108033, 108038, 108043,
- 108048, 108053, 108058, 108063, 108068, 108075, 108080, 108087, 108092,
- 108097, 108104, 108109, 108114, 108119, 108124, 108129, 108134, 108139,
- 108144, 108149, 108154, 108159, 108164, 108169, 108174, 108179, 108184,
- 108189, 108194, 108199, 108206, 108211, 108216, 108221, 108226, 108231,
- 108236, 108241, 108246, 108251, 108256, 108261, 108266, 108271, 108278,
- 108283, 108288, 108295, 108300, 108305, 108310, 108315, 108320, 108325,
- 108330, 108335, 108340, 108345, 108352, 108357, 108362, 108367, 108372,
- 108377, 108384, 108391, 108396, 108401, 108406, 108411, 108416, 108421,
- 108426, 108431, 108436, 108441, 108446, 108451, 108456, 108461, 108466,
- 108471, 108476, 108481, 108486, 108491, 108496, 108501, 108506, 108511,
- 108516, 108521, 108526, 108531, 108536, 108541, 108546, 108551, 108556,
- 108561, 108566, 108571, 108578, 108583, 108588, 108593, 108598, 108603,
- 108608, 108613, 108618, 108623, 108628, 108633, 108638, 108643, 108648,
- 108653, 108658, 108663, 108668, 108673, 108678, 108683, 108688, 108693,
- 108698, 108703, 108708, 108713, 108718, 108723, 108728, 108733, 108738,
- 108743, 108748, 108753, 108758, 108763, 108768, 108773, 108778, 108783,
- 108788, 108793, 108798, 108803, 108808, 108813, 108818, 108823, 108828,
- 108833, 108838, 108843, 108848, 108853, 108858, 108863, 108868, 108875,
- 108880, 108885, 108890, 108895, 108900, 108905, 108909, 108914, 108919,
- 108924, 108929, 108934, 108939, 108944, 108949, 108954, 108959, 108964,
- 108969, 108974, 108979, 108986, 108991, 108996, 109002, 109007, 109012,
- 109017, 109022, 109027, 109032, 109037, 109042, 109047, 109052, 109057,
- 109062, 109067, 109072, 109077, 109082, 109087, 109092, 109097, 109102,
- 109107, 109112, 109117, 109122, 109127, 109132, 109137, 109142, 109147,
- 109152, 109157, 109162, 109167, 109172, 109177, 109182, 109187, 109192,
- 109197, 109202, 109207, 109212, 109217, 109224, 109229, 109234, 109241,
- 109248, 109253, 109258, 109263, 109268, 109273, 109278, 109283, 109288,
- 109293, 109298, 109303, 109308, 109313, 109318, 109323, 109328, 109333,
- 109338, 109343, 109348, 109353, 109358, 109363, 109368, 109373, 109380,
- 109385, 109390, 109395, 109400, 109405, 109410, 109415, 109420, 109425,
- 109430, 109435, 109440, 109445, 109450, 109455, 109460, 109465, 109470,
- 109477, 109482, 109487, 109492, 109497, 109502, 109507, 109512, 109518,
- 109523, 109528, 109533, 109538, 109543, 109548, 109553, 109558, 109565,
- 109572, 109577, 109582, 109586, 109591, 109595, 109599, 109604, 109611,
- 109616, 109621, 109630, 109635, 109640, 109645, 109650, 109657, 109664,
- 109669, 109674, 109679, 109684, 109691, 109696, 109701, 109706, 109711,
- 109716, 109721, 109726, 109731, 109736, 109741, 109746, 109751, 109758,
- 109762, 109767, 109772, 109777, 109782, 109786, 109791, 109796, 109801,
- 109806, 109811, 109816, 109821, 109826, 109831, 109837, 109843, 109849,
- 109855, 109861, 109867, 109873, 109879, 109885, 109891, 109897, 109903,
- 109908, 109914, 109920, 109926, 109932, 109938, 109944, 109950, 109956,
- 109962, 109968, 109974, 109979, 109985, 109991, 109997, 110003, 110009,
- 110015, 110021, 110027, 110033, 110039, 110045, 110051, 110057, 110063,
- 110069, 110075, 110081, 110087, 110093, 110099, 110104, 110110, 110116,
- 110122, 110128, 110134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 110140, 110143, 110147, 110151, 110155, 110158,
- 110162, 110167, 110171, 110175, 110179, 110183, 110187, 110192, 110197,
- 110201, 110205, 110208, 110212, 110217, 110222, 110226, 110230, 110234,
- 110238, 110242, 110246, 110250, 110254, 110258, 110262, 110265, 110269,
- 110273, 110277, 110281, 110285, 110289, 110295, 110298, 110302, 110306,
- 110310, 110314, 110318, 110322, 110326, 110330, 110334, 110339, 110344,
- 110350, 110354, 110358, 110362, 110366, 110370, 110374, 110379, 110382,
- 110386, 110390, 110394, 110398, 110404, 110408, 110412, 110416, 110420,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110424, 110428, 110432, 110438, 110444,
- 110448, 110453, 110458, 110463, 110468, 110472, 110477, 110482, 110487,
- 110491, 110496, 110501, 110506, 110510, 110515, 110520, 110525, 110530,
- 110535, 110540, 110545, 110550, 110554, 110559, 110564, 110569, 110574,
- 110579, 110584, 110589, 110594, 110599, 110604, 110609, 110616, 110621,
- 110628, 110633, 110638, 110643, 110648, 110653, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 110658, 110662, 110668, 110671, 110674, 110678,
- 110682, 110686, 110690, 110694, 110698, 110702, 110708, 110714, 110720,
- 110726, 110732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 150613, 150615, 150617, 150621, 150626, 150631,
+ 150633, 150639, 150644, 150646, 150652, 150656, 150658, 150662, 150668,
+ 150674, 150680, 150685, 150690, 150697, 150704, 150711, 150716, 150723,
+ 150730, 150737, 150741, 150748, 150757, 150766, 150773, 150778, 150782,
+ 150786, 150788, 150791, 150794, 150801, 150808, 150818, 150823, 150828,
+ 150833, 150838, 150840, 150846, 150850, 150852, 150854, 150856, 150858,
+ 150862, 150866, 150870, 150872, 150876, 150878, 150882, 150884, 150886,
+ 150888, 150890, 150895, 150900, 150902, 150908, 150912, 150916, 150924,
+ 150926, 150928, 150930, 150932, 150934, 150936, 150938, 150940, 150942,
+ 150944, 150948, 150952, 150954, 150956, 150958, 150960, 150962, 150967,
+ 150973, 150977, 150981, 150985, 150989, 150994, 150998, 151000, 151002,
+ 151006, 151012, 151014, 151016, 151018, 151022, 151031, 151037, 151041,
+ 151045, 151047, 151049, 151052, 151054, 151056, 151058, 151062, 151064,
+ 151068, 151073, 151075, 151080, 151086, 151093, 151097, 151101, 151105,
+ 151109, 151115, 151119, 151127, 151134, 151136, 151138, 151142, 151146,
+ 151148, 151152, 151156, 151158, 151162, 151164, 151168, 151172, 151176,
+ 151180, 151184, 151188, 151192, 151196, 151202, 151206, 151210, 151221,
+ 151226, 151230, 151234, 151240, 151244, 151248, 151252, 151259, 151266,
+ 151270, 151274, 151278, 151282, 151286, 151293, 151295, 151299, 151301,
+ 151303, 151307, 151311, 151315, 151317, 151321, 151325, 151329, 151333,
+ 151337, 151339, 151343, 151345, 151351, 151354, 151359, 151361, 151363,
+ 151366, 151368, 151370, 151373, 151380, 151387, 151394, 151399, 151403,
+ 151405, 151407, 151409, 151413, 151415, 151419, 151423, 151427, 151429,
+ 151433, 151435, 151439, 151443, 151450, 151452, 151461, 151470, 151479,
+ 151485, 151487, 151492, 151496, 151500, 151502, 151508, 151512, 151514,
+ 151518, 151522, 151524, 151528, 151533, 151537, 151543, 151549, 151551,
+ 151553, 151559, 151561, 151565, 151569, 151571, 151575, 151577, 151581,
+ 151585, 151589, 151592, 151595, 151600, 151605, 151607, 151610, 151612,
+ 151619, 151623, 151625, 151632, 151639, 151646, 151653, 151660, 151662,
+ 151664, 151666, 151670, 151672, 151674, 151676, 151678, 151680, 151682,
+ 151684, 151686, 151688, 151690, 151692, 151694, 151696, 151698, 151700,
+ 151702, 151704, 151706, 151708, 151710, 151712, 151714, 151718, 151720,
+ 151722, 151724, 151728, 151730, 151734, 151736, 151738, 151742, 151746,
+ 151752, 151754, 151756, 151758, 151760, 151764, 151768, 151770, 151774,
+ 151778, 151782, 151786, 151790, 151794, 151798, 151802, 151806, 151810,
+ 151814, 151818, 151822, 151826, 151830, 151834, 151838, 151842, 151844,
+ 151846, 151848, 151850, 151852, 151854, 151856, 151864, 151872, 151880,
+ 151888, 151893, 151898, 151903, 151907, 151911, 151916, 151920, 151922,
+ 151926, 151928, 151930, 151932, 151934, 151936, 151938, 151940, 151944,
+ 151946, 151948, 151950, 151954, 151958, 151962, 151966, 151970, 151972,
+ 151978, 151984, 151986, 151988, 151990, 151992, 151994, 152003, 152010,
+ 152017, 152021, 152028, 152033, 152040, 152049, 152054, 152058, 152062,
+ 152064, 152068, 152070, 152074, 152078, 152080, 152084, 152088, 152092,
+ 152094, 152096, 152102, 152104, 152106, 152108, 152112, 152116, 152118,
+ 152122, 152124, 152126, 152129, 152133, 152135, 152139, 152141, 152143,
+ 152148, 152150, 152154, 152158, 152161, 152165, 152169, 152173, 152177,
+ 152181, 152185, 152189, 152194, 152198, 152202, 152211, 152216, 152219,
+ 152221, 152224, 152227, 152232, 152234, 152237, 152242, 152246, 152249,
+ 152253, 152257, 152260, 152265, 152269, 152273, 152277, 152281, 152287,
+ 152293, 152299, 152305, 152310, 152320, 152322, 152326, 152328, 152330,
+ 152334, 152338, 152340, 152344, 152349, 152354, 152360, 152362, 152366,
+ 152370, 152376, 152382, 152386, 152388, 152390, 152394, 152396, 152400,
+ 152404, 152408, 152410, 152412, 152419, 152423, 152426, 152430, 152434,
+ 152438, 152440, 152444, 152446, 152448, 152452, 152454, 152458, 152462,
+ 152468, 152472, 152476, 152480, 152482, 152485, 152489, 152495, 152504,
+ 152513, 152521, 152529, 152531, 152535, 152537, 152541, 152552, 152556,
+ 152562, 152568, 152573, 152575, 152580, 152584, 152586, 152588, 152590,
+ 152594, 152598, 152602, 152607, 152617, 152632, 152642, 152652, 152656,
+ 152660, 152666, 152668, 152676, 152684, 152686, 152690, 152696, 152702,
+ 152709, 152716, 152718, 152720, 152723, 152725, 152731, 152733, 152736,
+ 152740, 152746, 152752, 152763, 152769, 152775, 152783, 152787, 152795,
+ 152803, 152809, 152815, 152822, 152824, 152828, 152830, 152832, 152837,
+ 152839, 152841, 152843, 152845, 152849, 152859, 152865, 152869, 152873,
+ 152877, 152883, 152889, 152895, 152901, 152906, 152911, 152917, 152923,
+ 152930, 152937, 152945, 152953, 152958, 152966, 152970, 152979, 152988,
+ 152994, 152998, 153002, 153006, 153009, 153014, 153016, 153018, 153020,
+ 153027, 153032, 153039, 153046, 153053, 153061, 153069, 153077, 153085,
+ 153093, 153101, 153109, 153117, 153125, 153131, 153137, 153143, 153149,
+ 153155, 153161, 153167, 153173, 153179, 153185, 153191, 153197, 153200,
+ 153209, 153218, 153220, 153227, 153231, 153233, 153235, 153239, 153245,
+ 153249, 153251, 153261, 153267, 153271, 153273, 153277, 0, 153279,
+ 153286, 153293, 153300, 153305, 153310, 153319, 153325, 153330, 153334,
+ 153339, 153343, 153350, 153354, 153357, 153362, 153369, 153376, 153381,
+ 153386, 153391, 153398, 153407, 153418, 153424, 153430, 153436, 153446,
+ 153461, 153470, 153478, 153486, 153494, 153502, 153510, 153518, 153526,
+ 153534, 153542, 153550, 153558, 0, 153566, 153570, 153575, 153580,
+ 153582, 153586, 153595, 153604, 153612, 153616, 153620, 153625, 153630,
+ 153635, 153637, 153642, 153646, 153648, 153652, 153656, 153662, 153667,
+ 153675, 153680, 153685, 153690, 153697, 153700, 153702, 153705, 153710,
+ 153716, 153720, 153724, 153730, 153736, 153738, 153742, 153746, 153750,
+ 153754, 153758, 153760, 153762, 153764, 153766, 153772, 153778, 153782,
+ 153784, 153786, 153788, 153797, 153801, 153808, 153815, 153817, 153820,
+ 153824, 153830, 153834, 153838, 153840, 153848, 153852, 153856, 153861,
+ 153866, 153871, 153876, 153881, 153886, 153891, 153896, 153901, 153906,
+ 153910, 153916, 153920, 153926, 153931, 153938, 153944, 153952, 153956,
+ 153963, 153967, 153971, 153975, 153980, 153985, 153987, 153991, 154000,
+ 154008, 154016, 154029, 154042, 154055, 154062, 154069, 154073, 154082,
+ 154090, 154094, 154103, 154110, 154114, 154118, 154122, 154126, 154133,
+ 154137, 154141, 154145, 154149, 154156, 154165, 154174, 154181, 154193,
+ 154205, 154209, 154213, 154217, 154221, 154225, 154229, 154237, 154245,
+ 154253, 154257, 154261, 154265, 154269, 154273, 154277, 154283, 154289,
+ 154293, 154304, 154312, 154316, 154320, 154324, 154328, 154334, 154341,
+ 154352, 154362, 154372, 154383, 154392, 154403, 154409, 154415, 154421,
+ 154427, 154433, 154437, 154444, 154453, 154460, 154466, 154470, 154474,
+ 154478, 154487, 154499, 154503, 154510, 154517, 154524, 154532, 154539,
+ 154547, 154556, 154566, 154575, 154585, 154594, 154604, 154613, 154623,
+ 154633, 154644, 154654, 154665, 154672, 154680, 154687, 154695, 154703,
+ 154712, 154720, 154729, 154736, 154748, 154755, 154767, 154770, 154773,
+ 154776, 154779, 154785, 154792, 154798, 154805, 154810, 154816, 154828,
+ 154838, 154849, 154854, 154859, 154865, 154870, 154877, 154881, 154887,
+ 154889, 154891, 154895, 154899, 154903, 154912, 154914, 154916, 154919,
+ 154921, 154923, 154927, 154929, 154933, 154935, 154939, 154941, 154943,
+ 154947, 154951, 154957, 154959, 154963, 154965, 154969, 154973, 154977,
+ 154981, 154983, 154985, 154989, 154993, 154997, 155001, 155003, 155005,
+ 155007, 155013, 155018, 155021, 155029, 155037, 155039, 155044, 155047,
+ 155052, 155063, 155070, 155075, 155080, 155082, 155086, 155088, 155092,
+ 155094, 155098, 155102, 155105, 155108, 155110, 155113, 155115, 155119,
+ 155121, 155123, 155125, 155129, 155131, 155135, 155138, 155145, 155148,
+ 155153, 155156, 155159, 155164, 155168, 155172, 155176, 155178, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 155183, 155188, 155190, 155194,
+ 155196, 155200, 155204, 155210, 155214, 155219, 155222, 155226, 155230,
+ 0, 0, 0, 155234, 155236, 155242, 155246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 155250, 155255, 155260, 155265, 155270, 155275, 155280, 155287,
+ 155294, 155301, 155308, 155313, 155318, 155323, 155328, 155335, 155341,
+ 155348, 155355, 155362, 155367, 155372, 155377, 155382, 155387, 155394,
+ 155401, 155406, 155411, 155418, 155425, 155433, 155441, 155448, 155455,
+ 155463, 155471, 155479, 155486, 155496, 155507, 155512, 155519, 155526,
+ 155533, 155541, 155549, 155560, 155568, 155576, 155584, 155589, 155594,
+ 155599, 155604, 155609, 155614, 155619, 155624, 155629, 155634, 155639,
+ 155644, 155651, 155656, 155661, 155668, 155673, 155678, 155683, 155688,
+ 155693, 155698, 155703, 155708, 155713, 155718, 155723, 155728, 155735,
+ 155743, 155748, 155753, 155760, 155765, 155770, 155775, 155782, 155787,
+ 155794, 155799, 155806, 155811, 155820, 155829, 155834, 155839, 155844,
+ 155849, 155854, 155859, 155864, 155869, 155874, 155879, 155884, 155889,
+ 155894, 155902, 155910, 155915, 155920, 155925, 155930, 155935, 155941,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 155947, 155955, 155963, 155971,
+ 155979, 155985, 155991, 155995, 155999, 156005, 156011, 156020, 156024,
+ 156029, 156035, 156039, 156044, 156048, 156052, 156058, 156064, 156074,
+ 156083, 156086, 156091, 156097, 156103, 156114, 156124, 156128, 156133,
+ 156139, 156145, 156154, 156159, 156163, 156168, 156172, 156178, 156184,
+ 156190, 156194, 156197, 156201, 156204, 156207, 156212, 156217, 156224,
+ 156232, 156239, 156246, 156255, 156264, 156271, 156279, 156286, 156293,
+ 156302, 156311, 156318, 156326, 156333, 156340, 156349, 156356, 156364,
+ 156370, 156379, 156387, 156396, 156403, 156413, 156424, 156432, 156440,
+ 156449, 156457, 156465, 156474, 156482, 156492, 156501, 156509, 156517,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 110738, 110743, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 156526, 156534,
+ 156542, 156550, 156558, 156567, 156576, 156585, 156594, 156603, 156612,
+ 156621, 0, 0, 0, 0, 156630, 156638, 156646, 156654, 156662, 156669,
+ 156676, 156683, 156690, 156698, 156706, 156714, 156722, 156732, 156742,
+ 156752, 156762, 156771, 156780, 156789, 156798, 156807, 156816, 156825,
+ 156834, 156842, 156850, 156858, 156866, 156874, 156882, 156890, 156898,
+ 156908, 156918, 156928, 156938, 156942, 156946, 156950, 156954, 156957,
+ 156960, 156963, 156966, 156970, 156974, 156978, 156982, 156987, 156992,
+ 156997, 157002, 157005, 157008, 157011, 0, 0, 0, 0, 0, 0, 0, 0, 157014,
+ 157017, 157020, 157023, 157026, 157031, 157036, 157042, 157048, 157052,
+ 0, 0, 0, 0, 0, 0, 157056, 157062, 157068, 157074, 157080, 157088, 157096,
+ 157105, 157114, 157119, 157124, 157129, 157134, 157141, 157148, 157156,
+ 157164, 157171, 157178, 157185, 157192, 157201, 157210, 157220, 157230,
+ 157236, 157242, 157248, 157254, 157262, 157270, 157279, 157288, 157296,
+ 157304, 157312, 157320, 157330, 157340, 157351, 0, 0, 0, 0, 0, 0, 0, 0,
+ 157362, 157367, 157372, 157377, 157382, 157391, 157400, 157409, 157418,
+ 157425, 157432, 157439, 157446, 157453, 157462, 157471, 157480, 157485,
+ 157492, 157499, 157506, 157511, 157516, 157521, 157526, 157533, 157540,
+ 157547, 157554, 157561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 157570, 157574, 157578, 157583, 157587,
+ 157591, 157596, 157600, 157604, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110749, 110754, 110759,
- 110764, 110771, 110778, 110785, 110792, 110797, 110802, 110807, 110812,
- 110819, 110824, 110831, 110838, 110843, 110848, 110853, 110860, 110865,
- 110870, 110877, 110884, 110889, 110894, 110899, 110906, 110913, 110920,
- 110925, 110930, 110937, 110944, 110951, 110958, 110963, 110968, 110973,
- 110980, 110985, 110990, 110995, 111002, 111011, 111018, 111023, 111028,
- 111033, 111038, 111043, 111048, 111057, 111064, 111069, 111076, 111083,
- 111088, 111093, 111098, 111105, 111110, 111117, 111124, 111129, 111134,
- 111139, 111146, 111153, 111158, 111163, 111170, 111177, 111184, 111189,
- 111194, 111199, 111204, 111211, 111220, 111229, 111234, 111241, 111250,
- 111255, 111260, 111265, 111270, 111277, 111284, 111291, 111298, 111303,
- 111308, 111313, 111320, 111327, 111334, 111339, 111344, 111351, 111356,
- 111363, 111368, 111375, 111380, 111387, 111394, 111399, 111404, 111409,
- 111414, 111419, 111424, 111429, 111434, 111439, 111446, 111453, 111460,
- 111467, 111474, 111483, 111488, 111493, 111500, 111507, 111512, 111519,
- 111526, 111533, 111540, 111547, 111554, 111559, 111564, 111569, 111574,
- 111579, 111588, 111597, 111606, 111615, 111624, 111633, 111642, 111651,
- 111656, 111667, 111678, 111687, 111692, 111697, 111702, 111707, 111716,
- 111723, 111730, 111737, 111744, 111751, 111758, 111767, 111776, 111787,
- 111796, 111807, 111816, 111823, 111832, 111843, 111852, 111861, 111870,
- 111879, 111886, 111893, 111900, 111909, 111918, 111929, 111938, 111947,
- 111958, 111963, 111968, 111979, 111987, 111996, 112005, 112014, 112025,
- 112034, 112043, 112054, 112065, 112076, 112087, 112098, 112109, 112116,
- 112123, 112130, 112137, 112148, 112157, 112164, 112171, 112178, 112189,
- 112200, 112211, 112222, 112233, 112244, 112255, 112266, 112273, 112280,
- 112289, 112298, 112305, 112312, 112319, 112328, 112337, 112346, 112353,
- 112362, 112371, 112380, 112387, 112394, 112399, 112405, 112412, 112419,
- 112426, 112433, 112440, 112447, 112456, 112465, 112474, 112483, 112490,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112499, 112505, 112510, 112515, 112522,
- 112528, 112534, 112540, 112546, 112552, 112558, 112564, 112568, 112572,
- 112578, 112584, 112590, 112594, 112599, 112604, 112608, 112612, 112615,
- 112621, 112627, 112633, 112639, 112645, 112651, 112657, 112663, 112669,
- 112679, 112689, 112695, 112701, 112711, 112721, 112727, 0, 0, 112733,
- 112741, 112746, 112751, 112757, 112763, 112769, 112775, 112781, 112787,
- 112794, 112801, 112807, 112813, 112819, 112825, 112831, 112837, 112843,
- 112849, 112854, 112860, 112866, 112872, 112878, 112884, 112893, 112899,
- 112904, 112912, 112919, 112926, 112935, 112944, 112953, 112962, 112971,
- 112980, 112989, 112998, 113008, 113018, 113026, 113034, 113043, 113052,
- 113058, 113064, 113070, 113076, 113084, 113092, 113096, 113102, 113107,
- 113113, 113119, 113125, 113131, 113137, 113146, 113151, 113158, 113163,
- 113168, 113173, 113179, 113185, 113191, 113198, 113203, 113208, 113213,
- 113218, 113223, 113229, 113235, 113241, 113247, 113253, 113259, 113265,
- 113271, 113276, 113281, 113286, 113291, 113296, 113301, 113306, 113311,
- 113317, 113323, 113328, 113333, 113338, 113343, 113348, 113354, 113361,
- 113365, 113369, 113373, 113377, 113381, 113385, 113389, 113393, 113401,
- 113411, 113415, 113419, 113425, 113431, 113437, 113443, 113449, 113455,
- 113461, 113467, 113473, 113479, 113485, 113491, 113497, 113503, 113507,
- 113511, 113518, 113524, 113530, 113536, 113541, 113548, 113553, 113559,
- 113565, 113571, 113577, 113582, 113586, 113592, 113596, 113600, 113604,
- 113610, 113616, 113620, 113626, 113632, 113638, 113644, 113650, 113658,
- 113666, 113672, 113678, 113684, 113690, 113702, 113714, 113728, 113740,
- 113752, 113766, 113780, 113794, 113798, 113806, 113814, 113819, 113823,
- 113827, 113831, 113835, 113839, 113843, 113847, 113853, 113859, 113865,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 113871, 113877, 113883, 113889, 113895,
- 113901, 113907, 113913, 113919, 113925, 113931, 113937, 113943, 113949,
- 113955, 113961, 113967, 113973, 113979, 113985, 113991, 113997, 114003,
- 114009, 114015, 114021, 114027, 114033, 114039, 114045, 114051, 114057,
- 114063, 114069, 114075, 114081, 114087, 114093, 114099, 114105, 114111,
- 114117, 114123, 114129, 114135, 114141, 114147, 114153, 114159, 114165,
- 114171, 114177, 114183, 114189, 114195, 114201, 114207, 114213, 114219,
- 114225, 114231, 114237, 114243, 114249, 114255, 114261, 114267, 114272,
- 114277, 114282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114286, 114291, 114298,
- 114305, 114312, 114319, 114324, 114328, 114334, 114338, 114342, 114348,
- 114352, 114356, 114360, 114366, 114373, 114377, 114381, 114385, 114389,
- 114393, 114397, 114403, 114407, 114411, 114415, 114419, 114423, 114427,
- 114431, 114435, 114439, 114443, 114447, 114451, 114456, 114460, 114464,
- 114468, 114472, 114476, 114480, 114484, 114488, 114492, 114499, 114503,
- 114511, 114515, 114519, 114523, 114527, 114531, 114535, 114539, 114546,
- 114550, 114554, 114558, 114562, 114566, 114572, 114576, 114582, 114586,
- 114590, 114594, 114598, 114602, 114606, 114610, 114614, 114618, 114622,
- 114626, 114630, 114634, 114638, 114642, 114646, 114650, 114654, 114658,
- 114666, 114670, 114674, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114678, 114686,
- 114694, 114702, 114710, 114718, 114726, 114734, 114742, 114750, 114758,
- 114766, 114774, 114782, 114790, 114798, 114806, 114814, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 114822, 114826, 114831, 114836, 114841, 114845,
- 114850, 114855, 114860, 114864, 114869, 114874, 114878, 114882, 114887,
- 114891, 114896, 114901, 114905, 114910, 114915, 114919, 114924, 114929,
- 114934, 114939, 114944, 114948, 114953, 114958, 114963, 114967, 114972,
- 114977, 114982, 114986, 114991, 114996, 115000, 115004, 115009, 115013,
- 115018, 115023, 115027, 115032, 115037, 115041, 115046, 115051, 115056,
- 115061, 115066, 115070, 115075, 115080, 115085, 115089, 115094, 115099,
- 115104, 115108, 115113, 115118, 115122, 115126, 115131, 115135, 115140,
- 115145, 115149, 115154, 115159, 115163, 115168, 115173, 115178, 115183,
- 115188, 115192, 115197, 115202, 115207, 115211, 115216, 0, 115221,
- 115225, 115230, 115235, 115239, 115243, 115248, 115252, 115257, 115262,
- 115266, 115271, 115276, 115280, 115285, 115290, 115295, 115300, 115305,
- 115310, 115316, 115322, 115328, 115333, 115339, 115345, 115351, 115356,
- 115362, 115368, 115373, 115378, 115384, 115389, 115395, 115401, 115406,
- 115412, 115418, 115423, 115429, 115435, 115441, 115447, 115453, 115458,
- 115464, 115470, 115476, 115481, 115487, 115493, 115499, 115504, 115510,
- 115516, 115521, 115526, 115532, 115537, 115543, 115549, 115554, 115560,
- 115566, 115571, 115577, 115583, 115589, 115595, 115601, 0, 115605,
- 115610, 0, 0, 115615, 0, 0, 115620, 115625, 0, 0, 115630, 115635, 115639,
- 115644, 0, 115649, 115654, 115659, 115663, 115668, 115673, 115678,
- 115683, 115688, 115692, 115697, 115702, 0, 115707, 0, 115712, 115717,
- 115721, 115726, 115731, 115735, 115739, 0, 115744, 115749, 115754,
- 115758, 115763, 115768, 115772, 115777, 115782, 115787, 115792, 115797,
- 115802, 115808, 115814, 115820, 115825, 115831, 115837, 115843, 115848,
- 115854, 115860, 115865, 115870, 115876, 115881, 115887, 115893, 115898,
- 115904, 115910, 115915, 115921, 115927, 115933, 115939, 115945, 115950,
- 115956, 115962, 115968, 115973, 115979, 115985, 115991, 115996, 116002,
- 116008, 116013, 116018, 116024, 116029, 116035, 116041, 116046, 116052,
- 116058, 116063, 116069, 116075, 116081, 116087, 116093, 116097, 0,
- 116102, 116107, 116111, 116116, 0, 0, 116121, 116126, 116131, 116135,
- 116139, 116144, 116148, 116153, 0, 116158, 116163, 116168, 116172,
- 116177, 116182, 116187, 0, 116192, 116196, 116201, 116206, 116211,
- 116215, 116220, 116225, 116230, 116234, 116239, 116244, 116248, 116252,
- 116257, 116261, 116266, 116271, 116275, 116280, 116285, 116289, 116294,
- 116299, 116304, 116309, 116314, 116318, 0, 116323, 116328, 116332,
- 116337, 0, 116342, 116346, 116351, 116356, 116360, 0, 116364, 0, 0, 0,
- 116368, 116373, 116378, 116382, 116387, 116392, 116397, 0, 116402,
- 116406, 116411, 116416, 116421, 116425, 116430, 116435, 116440, 116444,
- 116449, 116454, 116458, 116462, 116467, 116471, 116476, 116481, 116485,
- 116490, 116495, 116499, 116504, 116509, 116514, 116519, 116524, 116529,
- 116535, 116541, 116547, 116552, 116558, 116564, 116570, 116575, 116581,
- 116587, 116592, 116597, 116603, 116608, 116614, 116620, 116625, 116631,
- 116637, 116642, 116648, 116654, 116660, 116666, 116672, 116677, 116683,
- 116689, 116695, 116700, 116706, 116712, 116718, 116723, 116729, 116735,
- 116740, 116745, 116751, 116756, 116762, 116768, 116773, 116779, 116785,
- 116790, 116796, 116802, 116808, 116814, 116820, 116824, 116829, 116834,
- 116839, 116843, 116848, 116853, 116858, 116862, 116867, 116872, 116876,
- 116880, 116885, 116889, 116894, 116899, 116903, 116908, 116913, 116917,
- 116922, 116927, 116932, 116937, 116942, 116946, 116951, 116956, 116961,
- 116965, 116970, 116975, 116980, 116984, 116989, 116994, 116998, 117002,
- 117007, 117011, 117016, 117021, 117025, 117030, 117035, 117039, 117044,
- 117049, 117054, 117059, 117064, 117069, 117075, 117081, 117087, 117092,
- 117098, 117104, 117110, 117115, 117121, 117127, 117132, 117137, 117143,
- 117148, 117154, 117160, 117165, 117171, 117177, 117182, 117188, 117194,
- 117200, 117206, 117212, 117217, 117223, 117229, 117235, 117240, 117246,
- 117252, 117258, 117263, 117269, 117275, 117280, 117285, 117291, 117296,
- 117302, 117308, 117313, 117319, 117325, 117330, 117336, 117342, 117348,
- 117354, 117360, 117365, 117371, 117377, 117383, 117388, 117394, 117400,
- 117406, 117411, 117417, 117423, 117428, 117433, 117439, 117444, 117450,
- 117456, 117461, 117467, 117473, 117478, 117484, 117490, 117496, 117502,
- 117508, 117513, 117519, 117525, 117531, 117536, 117542, 117548, 117554,
- 117559, 117565, 117571, 117576, 117581, 117587, 117592, 117598, 117604,
- 117609, 117615, 117621, 117626, 117632, 117638, 117644, 117650, 117656,
- 117662, 117669, 117676, 117683, 117689, 117696, 117703, 117710, 117716,
- 117723, 117730, 117736, 117742, 117749, 117755, 117762, 117769, 117775,
- 117782, 117789, 117795, 117802, 117809, 117816, 117823, 117830, 117836,
- 117843, 117850, 117857, 117863, 117870, 117877, 117884, 117890, 117897,
- 117904, 117910, 117916, 117923, 117929, 117936, 117943, 117949, 117956,
- 117963, 117969, 117976, 117983, 117990, 117997, 118004, 118009, 118015,
- 118021, 118027, 118032, 118038, 118044, 118050, 118055, 118061, 118067,
- 118072, 118077, 118083, 118088, 118094, 118100, 118105, 118111, 118117,
- 118122, 118128, 118134, 118140, 118146, 118152, 118157, 118163, 118169,
- 118175, 118180, 118186, 118192, 118198, 118203, 118209, 118215, 118220,
- 118225, 118231, 118236, 118242, 118248, 118253, 118259, 118265, 118270,
- 118276, 118282, 118288, 118294, 118300, 118306, 0, 0, 118313, 118318,
- 118323, 118328, 118333, 118338, 118343, 118348, 118353, 118358, 118363,
- 118368, 118373, 118378, 118383, 118388, 118393, 118398, 118404, 118409,
- 118414, 118419, 118424, 118429, 118434, 118439, 118443, 118448, 118453,
- 118458, 118463, 118468, 118473, 118478, 118483, 118488, 118493, 118498,
- 118503, 118508, 118513, 118518, 118523, 118528, 118534, 118539, 118544,
- 118549, 118554, 118559, 118564, 118569, 118575, 118580, 118585, 118590,
- 118595, 118600, 118605, 118610, 118615, 118620, 118625, 118630, 118635,
- 118640, 118645, 118650, 118655, 118660, 118665, 118670, 118675, 118680,
- 118685, 118690, 118696, 118701, 118706, 118711, 118716, 118721, 118726,
- 118731, 118735, 118740, 118745, 118750, 118755, 118760, 118765, 118770,
- 118775, 118780, 118785, 118790, 118795, 118800, 118805, 118810, 118815,
- 118820, 118826, 118831, 118836, 118841, 118846, 118851, 118856, 118861,
- 118867, 118872, 118877, 118882, 118887, 118892, 118897, 118903, 118909,
- 118915, 118921, 118927, 118933, 118939, 118945, 118951, 118957, 118963,
- 118969, 118975, 118981, 118987, 118993, 118999, 119006, 119012, 119018,
- 119024, 119030, 119036, 119042, 119048, 119053, 119059, 119065, 119071,
- 119077, 119083, 119089, 119095, 119101, 119107, 119113, 119119, 119125,
- 119131, 119137, 119143, 119149, 119155, 119162, 119168, 119174, 119180,
- 119186, 119192, 119198, 119204, 119211, 119217, 119223, 119229, 119235,
- 119241, 119247, 119253, 119259, 119265, 119271, 119277, 119283, 119289,
- 119295, 119301, 119307, 119313, 119319, 119325, 119331, 119337, 119343,
- 119349, 119356, 119362, 119368, 119374, 119380, 119386, 119392, 119398,
- 119403, 119409, 119415, 119421, 119427, 119433, 119439, 119445, 119451,
- 119457, 119463, 119469, 119475, 119481, 119487, 119493, 119499, 119505,
- 119512, 119518, 119524, 119530, 119536, 119542, 119548, 119554, 119561,
- 119567, 119573, 119579, 119585, 119591, 119597, 119604, 119611, 119618,
- 119625, 119632, 119639, 119646, 119653, 119660, 119667, 119674, 119681,
- 119688, 119695, 119702, 119709, 119716, 119724, 119731, 119738, 119745,
- 119752, 119759, 119766, 119773, 119779, 119786, 119793, 119800, 119807,
- 119814, 119821, 119828, 119835, 119842, 119849, 119856, 119863, 119870,
- 119877, 119884, 119891, 119898, 119906, 119913, 119920, 119927, 119934,
- 119941, 119948, 119955, 119963, 119970, 119977, 119984, 119991, 119998,
- 120005, 120010, 0, 0, 120015, 120020, 120024, 120028, 120032, 120036,
- 120040, 120044, 120048, 120052, 120056, 120061, 120065, 120069, 120073,
- 120077, 120081, 120085, 120089, 120093, 120097, 120102, 120106, 120110,
- 120114, 120118, 120122, 120126, 120130, 120134, 120138, 120144, 120149,
- 120154, 120159, 120164, 120169, 120174, 120179, 120184, 120189, 120195,
- 120200, 120205, 120210, 120215, 120220, 120225, 120230, 120235, 120240,
- 120244, 120248, 120252, 0, 120256, 120260, 120264, 120268, 120272,
- 120276, 120280, 120284, 120288, 120292, 120296, 120300, 120304, 120308,
- 120312, 120316, 120320, 120324, 120328, 120332, 120336, 120340, 120344,
- 120348, 120354, 120360, 120366, 0, 120372, 120377, 0, 120382, 0, 0,
- 120387, 0, 120392, 120397, 120402, 120407, 120412, 120417, 120422,
- 120427, 120432, 120437, 0, 120442, 120447, 120452, 120457, 0, 120462, 0,
- 120467, 0, 0, 0, 0, 0, 0, 120472, 0, 0, 0, 0, 120478, 0, 120484, 0,
- 120490, 0, 120496, 120502, 120508, 0, 120514, 120520, 0, 120526, 0, 0,
- 120532, 0, 120538, 0, 120544, 0, 120550, 0, 120558, 0, 120566, 120572, 0,
- 120578, 0, 0, 120584, 120590, 120596, 120602, 0, 120608, 120614, 120620,
- 120626, 120632, 120638, 120644, 0, 120650, 120656, 120662, 120668, 0,
- 120674, 120680, 120686, 120692, 0, 120700, 0, 120708, 120714, 120720,
- 120726, 120732, 120738, 120744, 120750, 120756, 120762, 0, 120768,
- 120774, 120780, 120786, 120792, 120798, 120804, 120810, 120816, 120822,
- 120828, 120834, 120840, 120846, 120852, 120858, 120864, 0, 0, 0, 0, 0,
- 120870, 120875, 120880, 0, 120885, 120890, 120895, 120900, 120905, 0,
- 120910, 120915, 120920, 120925, 120930, 120935, 120940, 120945, 120950,
- 120955, 120960, 120965, 120970, 120975, 120980, 120985, 120990, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 157610, 157612,
+ 157616, 157618, 157620, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 157624, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 120995, 121005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121013,
- 121020, 121027, 121034, 121041, 121048, 121055, 121061, 121068, 121075,
- 121082, 121090, 121098, 121106, 121114, 121122, 121130, 121137, 121144,
- 121151, 121159, 121167, 121175, 121183, 121191, 121199, 121206, 121213,
- 121220, 121228, 121236, 121244, 121252, 121260, 121268, 121273, 121278,
- 121283, 121288, 121293, 121298, 121303, 121308, 121313, 0, 0, 0, 0,
- 121318, 121323, 121327, 121331, 121335, 121339, 121343, 121347, 121351,
- 121355, 121359, 121363, 121367, 121371, 121375, 121379, 121383, 121387,
- 121391, 121395, 121399, 121403, 121407, 121411, 121415, 121419, 121423,
- 121427, 121431, 121435, 121439, 121443, 121447, 121451, 121455, 121459,
- 121463, 121467, 121471, 121475, 121479, 121483, 121487, 121491, 121495,
- 121499, 121503, 121507, 121511, 121515, 121519, 121524, 121528, 121532,
- 121536, 121540, 121544, 121548, 121552, 121556, 121560, 121564, 121568,
- 121572, 121576, 121580, 121584, 121588, 121592, 121596, 121600, 121604,
- 121608, 121612, 121616, 121620, 121624, 121628, 121632, 121636, 121640,
- 121644, 121648, 121652, 121656, 121660, 121664, 121668, 121672, 121676,
- 121680, 121684, 121688, 121692, 121696, 121700, 121704, 121708, 121712,
- 121716, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121720, 121726, 121735,
- 121743, 121751, 121760, 121769, 121778, 121787, 121796, 121805, 121814,
- 121823, 121832, 121841, 0, 0, 121850, 121859, 121867, 121875, 121884,
- 121893, 121902, 121911, 121920, 121929, 121938, 121947, 121956, 121965,
- 0, 0, 121974, 121983, 121991, 121999, 122008, 122017, 122026, 122035,
- 122044, 122053, 122062, 122071, 122080, 122089, 122098, 0, 122105,
- 122114, 122122, 122130, 122139, 122148, 122157, 122166, 122175, 122184,
- 122193, 122202, 122211, 122220, 122229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122236,
- 122243, 122248, 122252, 122256, 122260, 122265, 122270, 122275, 122280,
- 122285, 0, 0, 0, 0, 0, 122290, 122295, 122301, 122307, 122313, 122318,
- 122324, 122330, 122336, 122341, 122347, 122353, 122358, 122363, 122369,
- 122374, 122380, 122386, 122391, 122397, 122403, 122408, 122414, 122420,
- 122426, 122432, 122438, 122449, 122456, 122462, 122465, 0, 122468,
- 122473, 122479, 122485, 122491, 122496, 122502, 122508, 122514, 122519,
- 122525, 122531, 122536, 122541, 122547, 122552, 122558, 122564, 122569,
- 122575, 122581, 122586, 122592, 122598, 122604, 122610, 122616, 122619,
- 122622, 122625, 122628, 122631, 122634, 122640, 122647, 122654, 122661,
- 122667, 122674, 122681, 122688, 122694, 122701, 122708, 122714, 122720,
- 122727, 122733, 122740, 122747, 122753, 122760, 122767, 122773, 122780,
- 122787, 122794, 122801, 122808, 122813, 0, 0, 0, 0, 122818, 122824,
- 122831, 122838, 122845, 122851, 122858, 122865, 122872, 122878, 122885,
- 122892, 122898, 122904, 122911, 122917, 122924, 122931, 122937, 122944,
- 122951, 122957, 122964, 122971, 122978, 122985, 122992, 123001, 123005,
- 123008, 123011, 123015, 123019, 123022, 123025, 123028, 123031, 123034,
- 123037, 123040, 123043, 123046, 123052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 157628, 157632, 157636, 157640,
+ 157644, 157648, 157652, 157656, 157660, 157664, 157668, 157672, 157676,
+ 157680, 157684, 157688, 157692, 157696, 157700, 157704, 157708, 157712,
+ 157716, 157720, 157724, 157728, 157732, 157736, 157740, 157744, 157748,
+ 157752, 157756, 157760, 157764, 157768, 157772, 157776, 157780, 157784,
+ 157788, 157792, 157796, 157800, 157804, 157808, 157812, 157816, 157820,
+ 157824, 157828, 157832, 157836, 157840, 157844, 157848, 157852, 157856,
+ 157860, 157864, 157868, 157872, 157876, 157880, 157884, 157888, 157892,
+ 157896, 157900, 157904, 157908, 157912, 157916, 157920, 157924, 157928,
+ 157932, 157936, 157940, 157944, 157948, 157952, 157956, 157960, 157964,
+ 157968, 157972, 157976, 157980, 157984, 157988, 157992, 157996, 158000,
+ 158004, 158008, 158012, 158016, 158020, 158024, 158028, 158032, 158036,
+ 158040, 158044, 158048, 158052, 158056, 158060, 158064, 158068, 158072,
+ 158076, 158080, 158084, 158088, 158092, 158096, 158100, 158104, 158108,
+ 158112, 158116, 158120, 158124, 158128, 158132, 158136, 158140, 158144,
+ 158148, 158152, 158156, 158160, 158164, 158168, 158172, 158176, 158180,
+ 158184, 158188, 158192, 158196, 158200, 158204, 158208, 158212, 158216,
+ 158220, 158224, 158228, 158232, 158236, 158240, 158244, 158248, 158252,
+ 158256, 158260, 158264, 158268, 158272, 158276, 158280, 158284, 158288,
+ 158292, 158296, 158300, 158304, 158308, 158312, 158316, 158320, 158324,
+ 158328, 158332, 158336, 158340, 158344, 158348, 158352, 158356, 158360,
+ 158364, 158368, 158372, 158376, 158380, 158384, 158388, 158392, 158396,
+ 158400, 158404, 158408, 158412, 158416, 158420, 158424, 158428, 158432,
+ 158436, 158440, 158444, 158448, 158452, 158456, 158460, 158464, 158468,
+ 158472, 158476, 158480, 158484, 158488, 158492, 158496, 158500, 158504,
+ 158508, 158512, 158516, 158520, 158524, 158528, 158532, 158536, 158540,
+ 158544, 158548, 158552, 158556, 158560, 158564, 158568, 158572, 158576,
+ 158580, 158584, 158588, 158592, 158596, 158600, 158604, 158608, 158612,
+ 158616, 158620, 158624, 158628, 158632, 158636, 158640, 158644, 158648,
+ 158652, 158656, 158660, 158664, 158668, 158672, 158676, 158680, 158684,
+ 158688, 158692, 158696, 158700, 158704, 158708, 158712, 158716, 158720,
+ 158724, 158728, 158732, 158736, 158740, 158744, 158748, 158752, 158756,
+ 158760, 158764, 158768, 158772, 158776, 158780, 158784, 158788, 158792,
+ 158796, 158800, 158804, 158808, 158812, 158816, 158820, 158824, 158828,
+ 158832, 158836, 158840, 158844, 158848, 158852, 158856, 158860, 158864,
+ 158868, 158872, 158876, 158880, 158884, 158888, 158892, 158896, 158900,
+ 158904, 158908, 158912, 158916, 158920, 158924, 158928, 158932, 158936,
+ 158940, 158944, 158948, 158952, 158956, 158960, 158964, 158968, 158972,
+ 158976, 158980, 158984, 158988, 158992, 158996, 159000, 159004, 159008,
+ 159012, 159016, 159020, 159024, 159028, 159032, 159036, 159040, 159044,
+ 159048, 159052, 159056, 159060, 159064, 159068, 159072, 159076, 159080,
+ 159084, 159088, 159092, 159096, 159100, 159104, 159108, 159112, 159116,
+ 159120, 159124, 159128, 159132, 159136, 159140, 159144, 159148, 159152,
+ 159156, 159160, 159164, 159168, 159172, 159176, 159180, 159184, 159188,
+ 159192, 159196, 159200, 159204, 159208, 159212, 159216, 159220, 159224,
+ 159228, 159232, 159236, 159240, 159244, 159248, 159252, 159256, 159260,
+ 159264, 159268, 159272, 159276, 159280, 159284, 159288, 159292, 159296,
+ 159300, 159304, 159308, 159312, 159316, 159320, 159324, 159328, 159332,
+ 159336, 159340, 159344, 159348, 159352, 159356, 159360, 159364, 159368,
+ 159372, 159376, 159380, 159384, 159388, 159392, 159396, 159400, 159404,
+ 159408, 159412, 159416, 159420, 159424, 159428, 159432, 159436, 159440,
+ 159444, 159448, 159452, 159456, 159460, 159464, 159468, 159472, 159476,
+ 159480, 159484, 159488, 159492, 159496, 159500, 159504, 159508, 159512,
+ 159516, 159520, 159524, 159528, 159532, 159536, 159540, 159544, 159548,
+ 159552, 159556, 159560, 159564, 159568, 159572, 159576, 159580, 159584,
+ 159588, 159592, 159596, 159600, 159604, 159608, 159612, 159616, 159620,
+ 159624, 159628, 159632, 159636, 159640, 159644, 159648, 159652, 159656,
+ 159660, 159664, 159668, 159672, 159676, 159680, 159684, 159688, 159692,
+ 159696, 159700, 159704, 159708, 159712, 159716, 159720, 159724, 159728,
+ 159732, 159736, 159740, 159744, 159748, 159752, 159756, 159760, 159764,
+ 159768, 159772, 159776, 159780, 159784, 159788, 159792, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123055, 123062, 123070,
- 123078, 123086, 123093, 123101, 123109, 123117, 123124, 123132, 123140,
- 123147, 123154, 123162, 123169, 123177, 123185, 123192, 123200, 123208,
- 123215, 123223, 123231, 123239, 123247, 123255, 123259, 123263, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123266, 123272, 123278, 123284, 123288,
- 123294, 123300, 123306, 123312, 123318, 123324, 123330, 123336, 123342,
- 123348, 123354, 123360, 123366, 123372, 123378, 123384, 123390, 123396,
- 123402, 123408, 123414, 123420, 123426, 123432, 123438, 123444, 123450,
- 123456, 123462, 123468, 123474, 123480, 123486, 123492, 123498, 123504,
- 123510, 123516, 0, 0, 0, 0, 0, 123522, 123533, 123544, 123555, 123566,
- 123577, 123588, 123599, 123610, 0, 0, 0, 0, 0, 0, 0, 123621, 123625, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123629,
- 123631, 123633, 123637, 123642, 123647, 123649, 123655, 123660, 123662,
- 123668, 123672, 123674, 123678, 123684, 123690, 123696, 123701, 123705,
- 123712, 123719, 123726, 123731, 123738, 123745, 123752, 123756, 123762,
- 123771, 123780, 123787, 123792, 123796, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 123800, 123802, 123804, 123808, 123812, 123816, 0, 123818,
- 123820, 123824, 123826, 123828, 123830, 123832, 123837, 123842, 123844,
- 123850, 123854, 123858, 123866, 123868, 123870, 123872, 123874, 123876,
- 123878, 123880, 123882, 123884, 123886, 123890, 123894, 123896, 123898,
- 123900, 123902, 123904, 123909, 123915, 123919, 123923, 123927, 123931,
- 123936, 123940, 123942, 123944, 123948, 123954, 123956, 123958, 123960,
- 123964, 123973, 123979, 123983, 123987, 123989, 123991, 123994, 123996,
- 123998, 124000, 124004, 124006, 124010, 124015, 124017, 124022, 124028,
- 124035, 124039, 124043, 124047, 124051, 124057, 0, 0, 0, 124061, 124063,
- 124067, 124071, 124073, 124077, 124081, 124083, 124087, 124089, 124093,
- 124097, 124101, 124105, 124109, 124113, 124117, 124121, 124127, 124131,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 124135, 124139, 124143, 124147,
- 124154, 124156, 124160, 124162, 124164, 124168, 124172, 124176, 124178,
- 124182, 124186, 124190, 124194, 124198, 124200, 124204, 124206, 124212,
- 124215, 124220, 124222, 124224, 124227, 124229, 124231, 124234, 124241,
- 124248, 124255, 124260, 124264, 124266, 124268, 0, 124270, 124272,
- 124276, 124280, 124284, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 124286, 124290, 124295, 124299, 124305, 124311, 124313,
- 124315, 124321, 124323, 124327, 124331, 124333, 124337, 124339, 124343,
- 124347, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 124351, 124353,
- 124355, 124357, 124361, 124363, 124365, 124367, 124369, 124371, 124373,
- 124375, 124377, 124379, 124381, 124383, 124385, 124387, 124389, 124391,
- 124393, 124395, 124397, 124399, 124401, 124403, 124405, 124409, 124411,
- 124413, 124415, 124419, 124421, 124425, 124427, 124429, 124433, 124437,
- 124443, 124445, 124447, 124449, 124451, 124455, 124459, 124461, 124465,
- 124469, 124473, 124477, 124481, 124485, 124489, 124493, 124497, 124501,
- 124505, 124509, 124513, 124517, 124521, 124525, 124529, 0, 124533, 0,
- 124535, 124537, 124539, 124541, 124543, 124551, 124559, 124567, 124575,
- 124580, 124585, 124590, 124594, 124598, 124603, 124607, 124609, 124613,
- 124615, 124617, 124619, 124621, 124623, 124625, 124627, 124631, 124633,
- 124635, 124637, 124641, 124645, 124649, 124653, 124657, 124659, 124665,
- 124671, 124673, 124675, 124677, 124679, 124681, 124690, 124697, 124704,
- 124708, 124715, 124720, 124727, 124736, 124741, 124745, 124749, 124751,
- 124755, 124757, 124761, 124765, 124767, 124771, 124775, 124779, 124781,
- 124783, 124789, 124791, 124793, 124795, 124799, 124803, 124805, 124809,
- 124811, 124813, 124816, 124820, 124822, 124826, 124828, 124830, 124835,
- 124837, 124841, 124845, 124848, 124852, 124856, 124860, 124864, 124868,
- 124872, 124876, 124881, 124885, 124889, 124898, 124903, 124906, 124908,
- 124911, 124914, 124919, 124921, 124924, 124929, 124933, 124936, 124940,
- 124944, 124947, 124952, 124956, 124960, 124964, 124968, 124974, 124980,
- 124986, 124992, 124997, 125008, 125010, 125014, 125016, 125018, 125022,
- 125026, 125028, 125032, 125037, 125042, 125048, 125050, 125054, 125058,
- 125065, 125072, 125076, 125078, 125080, 125084, 125086, 125090, 125094,
- 125098, 125100, 125102, 125109, 125113, 125116, 125120, 125124, 125128,
- 125130, 125134, 125136, 125138, 125142, 125144, 125148, 125152, 125158,
- 125162, 125166, 125170, 125172, 125175, 125179, 125186, 125195, 125204,
- 125212, 125220, 125222, 125226, 125228, 125232, 125243, 125247, 125253,
- 125259, 125264, 0, 125266, 125270, 125272, 125274, 0, 0, 0, 125276,
- 125281, 125291, 125306, 125318, 125330, 125334, 125338, 125344, 125346,
- 125354, 125362, 125364, 125368, 125374, 125380, 125387, 125394, 125396,
- 125398, 125401, 125403, 125409, 125411, 125414, 125418, 125424, 125430,
- 125441, 125447, 125454, 125462, 125466, 125474, 125482, 125488, 125494,
- 125501, 125503, 125507, 125509, 125511, 125516, 125518, 125520, 125522,
- 125524, 125528, 125539, 125545, 125549, 125553, 125557, 125563, 125569,
- 125575, 125581, 125586, 125591, 125597, 125603, 125610, 0, 0, 125617,
- 125622, 125630, 125634, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125643,
- 125650, 125657, 125664, 125672, 125680, 125688, 125696, 125704, 125712,
- 125720, 125728, 125736, 125742, 125748, 125754, 125760, 125766, 125772,
- 125778, 125784, 125790, 125796, 125802, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125808, 125812, 125816,
- 125821, 125826, 125828, 125832, 125841, 125849, 125857, 125870, 125883,
- 125896, 125903, 125910, 125914, 125923, 125931, 125935, 125944, 125951,
- 125955, 125959, 125963, 125967, 125974, 125978, 125982, 125986, 125990,
- 125997, 126006, 126015, 126022, 126034, 126046, 126050, 126054, 126058,
- 126062, 126066, 126070, 126078, 126086, 126094, 126098, 126102, 126106,
- 126110, 126114, 126118, 126124, 126130, 126134, 126145, 126153, 126157,
- 126161, 126165, 126169, 126175, 126182, 126193, 126203, 126213, 126224,
- 126233, 126244, 126250, 126256, 0, 0, 0, 0, 126262, 126271, 126278,
- 126284, 126288, 126292, 126296, 126305, 126317, 126321, 126328, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126335,
- 126337, 126339, 126343, 126347, 126351, 126360, 126362, 126364, 126367,
- 126369, 126371, 126375, 126377, 126381, 126383, 126387, 126389, 126391,
- 126395, 126399, 126405, 126407, 126411, 126413, 126417, 126421, 126425,
- 126429, 126431, 126433, 126437, 126441, 126445, 126449, 126451, 126453,
- 126455, 126460, 126465, 126468, 126476, 126484, 126486, 126491, 126494,
- 126499, 126510, 126517, 126522, 126527, 126529, 126533, 126535, 126539,
- 126541, 126545, 126549, 126552, 126555, 126557, 126560, 126562, 126566,
- 126568, 126570, 126572, 126576, 126578, 126582, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 159796, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 159800, 159803, 159807, 159811,
+ 159814, 159818, 159822, 159825, 159828, 159832, 159836, 159839, 159842,
+ 159845, 159848, 159853, 159856, 159860, 159863, 159866, 159869, 159872,
+ 159875, 159878, 159882, 159885, 159889, 159892, 159895, 159899, 159903,
+ 159907, 159911, 159916, 159921, 159927, 159933, 159939, 159944, 159950,
+ 159956, 159962, 159967, 159973, 159979, 159984, 159990, 159996, 160001,
+ 160007, 160013, 160018, 160023, 160029, 160034, 160040, 160046, 160052,
+ 160058, 160064, 160068, 160073, 160077, 160082, 160086, 160091, 160096,
+ 160102, 160108, 160114, 160119, 160125, 160131, 160137, 160142, 160148,
+ 160154, 160159, 160165, 160171, 160176, 160182, 160188, 160193, 160198,
+ 160204, 160209, 160215, 160221, 160227, 160233, 160239, 160244, 160248,
+ 160253, 160256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 126585, 126590, 126595, 126600, 126605, 126610, 126615, 126622,
- 126629, 126636, 126643, 126648, 126653, 126658, 126663, 126670, 126676,
- 126683, 126690, 126697, 126702, 126707, 126712, 126717, 126722, 126729,
- 126736, 126741, 126746, 126753, 126760, 126768, 126776, 126783, 126790,
- 126798, 126806, 126814, 126821, 126831, 126842, 126847, 126854, 126861,
- 126868, 126876, 126884, 126895, 126903, 126911, 126919, 126924, 126929,
- 126934, 126939, 126944, 126949, 126954, 126959, 126964, 126969, 126974,
- 126979, 126986, 126991, 126996, 127003, 127008, 127013, 127018, 127023,
- 127028, 127033, 127038, 127043, 127048, 127053, 127058, 127063, 127070,
- 127078, 127083, 127088, 127095, 127100, 127105, 127110, 127117, 127122,
- 127129, 127134, 127141, 127146, 127155, 127164, 127169, 127174, 127179,
- 127184, 127189, 127194, 127199, 127204, 127209, 127214, 127219, 127224,
- 127229, 127237, 127245, 127250, 127255, 127260, 127265, 127270, 127276,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127282, 127286, 127290, 127294,
- 127298, 127302, 127306, 127310, 127314, 127318, 127322, 127326, 127330,
- 127334, 127338, 127342, 127346, 127350, 127354, 127358, 127362, 127366,
- 127370, 127374, 127378, 127382, 127386, 127390, 127394, 127398, 127402,
- 127406, 127410, 127414, 127418, 127422, 127426, 127430, 127434, 127438,
- 127442, 127446, 127450, 127454, 127458, 127462, 127466, 127470, 127474,
- 127478, 127482, 127486, 127490, 127494, 127498, 127502, 127506, 127510,
- 127514, 127518, 127522, 127526, 127530, 127534, 127538, 127542, 127546,
- 127550, 127554, 127558, 127562, 127566, 127570, 127574, 127578, 127582,
- 127586, 127590, 127594, 127598, 127602, 127606, 127610, 127614, 127618,
- 127622, 127626, 127630, 127634, 127638, 127642, 127646, 127650, 127654,
- 127658, 127662, 127666, 127670, 127674, 127678, 127682, 127686, 127690,
- 127694, 127698, 127702, 127706, 127710, 127714, 127718, 127722, 127726,
- 127730, 127734, 127738, 127742, 127746, 127750, 127754, 127758, 127762,
- 127766, 127770, 127774, 127778, 127782, 127786, 127790, 127794, 127798,
- 127802, 127806, 127810, 127814, 127818, 127822, 127826, 127830, 127834,
- 127838, 127842, 127846, 127850, 127854, 127858, 127862, 127866, 127870,
- 127874, 127878, 127882, 127886, 127890, 127894, 127898, 127902, 127906,
- 127910, 127914, 127918, 127922, 127926, 127930, 127934, 127938, 127942,
- 127946, 127950, 127954, 127958, 127962, 127966, 127970, 127974, 127978,
- 127982, 127986, 127990, 127994, 127998, 128002, 128006, 128010, 128014,
- 128018, 128022, 128026, 128030, 128034, 128038, 128042, 128046, 128050,
- 128054, 128058, 128062, 128066, 128070, 128074, 128078, 128082, 128086,
- 128090, 128094, 128098, 128102, 128106, 128110, 128114, 128118, 128122,
- 128126, 128130, 128134, 128138, 128142, 128146, 128150, 128154, 128158,
- 128162, 128166, 128170, 128174, 128178, 128182, 128186, 128190, 128194,
- 128198, 128202, 128206, 128210, 128214, 128218, 128222, 128226, 128230,
- 128234, 128238, 128242, 128246, 128250, 128254, 128258, 128262, 128266,
- 128270, 128274, 128278, 128282, 128286, 128290, 128294, 128298, 128302,
- 128306, 128310, 128314, 128318, 128322, 128326, 128330, 128334, 128338,
- 128342, 128346, 128350, 128354, 128358, 128362, 128366, 128370, 128374,
- 128378, 128382, 128386, 128390, 128394, 128398, 128402, 128406, 128410,
- 128414, 128418, 128422, 128426, 128430, 128434, 128438, 128442, 128446,
- 128450, 128454, 128458, 128462, 128466, 128470, 128474, 128478, 128482,
- 128486, 128490, 128494, 128498, 128502, 128506, 128510, 128514, 128518,
- 128522, 128526, 128530, 128534, 128538, 128542, 128546, 128550, 128554,
- 128558, 128562, 128566, 128570, 128574, 128578, 128582, 128586, 128590,
- 128594, 128598, 128602, 128606, 128610, 128614, 128618, 128622, 128626,
- 128630, 128634, 128638, 128642, 128646, 128650, 128654, 128658, 128662,
- 128666, 128670, 128674, 128678, 128682, 128686, 128690, 128694, 128698,
- 128702, 128706, 128710, 128714, 128718, 128722, 128726, 128730, 128734,
- 128738, 128742, 128746, 128750, 128754, 128758, 128762, 128766, 128770,
- 128774, 128778, 128782, 128786, 128790, 128794, 128798, 128802, 128806,
- 128810, 128814, 128818, 128822, 128826, 128830, 128834, 128838, 128842,
- 128846, 128850, 128854, 128858, 128862, 128866, 128870, 128874, 128878,
- 128882, 128886, 128890, 128894, 128898, 128902, 128906, 128910, 128914,
- 128918, 128922, 128926, 128930, 128934, 128938, 128942, 128946, 128950,
- 128954, 128958, 128962, 128966, 128970, 128974, 128978, 128982, 128986,
- 128990, 128994, 128998, 129002, 129006, 129010, 129014, 129018, 129022,
- 129026, 129030, 129034, 129038, 129042, 129046, 129050, 129054, 129058,
- 129062, 129066, 129070, 129074, 129078, 129082, 129086, 129090, 129094,
- 129098, 129102, 129106, 129110, 129114, 129118, 129122, 129126, 129130,
- 129134, 129138, 129142, 129146, 129150, 129154, 129158, 129162, 129166,
- 129170, 129174, 129178, 129182, 129186, 129190, 129194, 129198, 129202,
- 129206, 129210, 129214, 129218, 129222, 129226, 129230, 129234, 129238,
- 129242, 129246, 129250, 129254, 129258, 129262, 129266, 129270, 129274,
- 129278, 129282, 129286, 129290, 129294, 129298, 129302, 129306, 129310,
- 129314, 129318, 129322, 129326, 129330, 129334, 129338, 129342, 129346,
- 129350, 129354, 129358, 129362, 129366, 129370, 129374, 129378, 129382,
- 129386, 129390, 129394, 129398, 129402, 129406, 129410, 129414, 129418,
- 129422, 129426, 129430, 129434, 129438, 129442, 129446, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129450, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 160260, 160263, 160266, 160269,
+ 160272, 160275, 160278, 160281, 160284, 160287, 160290, 160293, 160296,
+ 160299, 160302, 160305, 160308, 160311, 160314, 160317, 160320, 160323,
+ 160326, 160329, 160332, 160335, 160338, 160341, 160344, 160347, 160350,
+ 160353, 160356, 160359, 160362, 160365, 160368, 160371, 160374, 160377,
+ 160380, 160383, 160386, 160389, 160392, 160395, 160398, 160401, 160404,
+ 160407, 160410, 160413, 160416, 160419, 160422, 160425, 160428, 160431,
+ 160434, 160437, 160440, 160443, 160446, 160449, 160452, 160455, 160458,
+ 160461, 160464, 160467, 160470, 160473, 160476, 160479, 160482, 160485,
+ 160488, 160491, 160494, 160497, 160500, 160503, 160506, 160509, 160512,
+ 160515, 160518, 160521, 160524, 160527, 160530, 160533, 160536, 160539,
+ 160542, 160545, 160548, 160551, 160554, 160557, 160560, 160563, 160566,
+ 160569, 160572, 160575, 160578, 160581, 160584, 160587, 160590, 160593,
+ 160596, 160599, 160602, 160605, 160608, 160611, 160614, 160617, 160620,
+ 160623, 160626, 160629, 160632, 160635, 160638, 160641, 160644, 160647,
+ 160650, 160653, 160656, 160659, 160662, 160665, 160668, 160671, 160674,
+ 160677, 160680, 160683, 160686, 160689, 160692, 160695, 160698, 160701,
+ 160704, 160707, 160710, 160713, 160716, 160719, 160722, 160725, 160728,
+ 160731, 160734, 160737, 160740, 160743, 160746, 160749, 160752, 160755,
+ 160758, 160761, 160764, 160767, 160770, 160773, 160776, 160779, 160782,
+ 160785, 160788, 160791, 160794, 160797, 160800, 160803, 160806, 160809,
+ 160812, 160815, 160818, 160821, 160824, 160827, 160830, 160833, 160836,
+ 160839, 160842, 160845, 160848, 160851, 160854, 160857, 160860, 160863,
+ 160866, 160869, 160872, 160875, 160878, 160881, 160884, 160887, 160890,
+ 160893, 160896, 160899, 160902, 160905, 160908, 160911, 160914, 160917,
+ 160920, 160923, 160926, 160929, 160932, 160935, 160938, 160941, 160944,
+ 160947, 160950, 160953, 160956, 160959, 160962, 160965, 160968, 160971,
+ 160974, 160977, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 160980,
+ 160982, 160984, 160989, 160991, 160996, 160998, 161003, 161005, 161010,
+ 161012, 161014, 161016, 161018, 161020, 161022, 161024, 161026, 161028,
+ 161031, 161035, 161037, 161039, 161043, 161047, 161052, 161054, 161056,
+ 161058, 161062, 161065, 161067, 161071, 161073, 161077, 161079, 161083,
+ 161086, 161088, 161092, 161096, 161098, 161104, 161106, 161111, 161113,
+ 161118, 161120, 161125, 161127, 161132, 161134, 161137, 161139, 161143,
+ 161145, 161152, 161154, 161156, 161158, 161163, 161165, 161167, 161169,
+ 161171, 161173, 161178, 161182, 161184, 161189, 161193, 161195, 161200,
+ 161204, 161206, 161211, 161215, 161217, 161219, 161221, 161223, 161227,
+ 161229, 161234, 161236, 161242, 161244, 161250, 161252, 161254, 161256,
+ 161260, 161262, 161269, 161271, 161278, 161280, 161285, 161291, 161293,
+ 161299, 161306, 161308, 161314, 161319, 161321, 161327, 161333, 161335,
+ 161341, 161347, 161349, 161355, 161359, 161361, 161366, 161368, 161370,
+ 161375, 161377, 161379, 161385, 161387, 161392, 161396, 161398, 161403,
+ 161407, 161409, 161415, 161417, 161421, 161423, 161427, 161429, 161436,
+ 161443, 161445, 161452, 161459, 161461, 161466, 161468, 161475, 161477,
+ 161482, 161484, 161490, 161492, 161496, 161498, 161504, 161506, 161510,
+ 161512, 161518, 161520, 161522, 161524, 161529, 161534, 161536, 161538,
+ 161548, 161552, 161559, 161566, 161571, 161576, 161588, 161590, 161592,
+ 161594, 161596, 161598, 161600, 161602, 161604, 161606, 161608, 161610,
+ 161612, 161614, 161616, 161618, 161620, 161622, 161624, 161626, 161628,
+ 161630, 161636, 161643, 161648, 161656, 161664, 161669, 161680, 161682,
+ 161684, 161686, 161688, 161690, 161692, 161694, 161696, 161698, 161700,
+ 161702, 161704, 161706, 161708, 161710, 161712, 161717, 161719, 161721,
+ 161727, 161739, 161750, 161752, 161754, 161756, 161758, 161760, 161762,
+ 161764, 161766, 161768, 161770, 161772, 161774, 161776, 161778, 161780,
+ 161782, 161784, 161786, 161788, 161790, 161792, 161794, 161796, 161798,
+ 161800, 161802, 161804, 161806, 161808, 161810, 161812, 161814, 161816,
+ 161818, 161820, 161822, 161824, 161826, 161828, 161830, 161832, 161834,
+ 161836, 161838, 161840, 161842, 161844, 161846, 161848, 161850, 161852,
+ 161854, 161856, 161858, 161860, 161862, 161864, 161866, 161868, 161870,
+ 161872, 161874, 161876, 161878, 161880, 161882, 161884, 161886, 161888,
+ 161890, 161892, 161894, 161896, 161898, 161900, 161902, 161904, 161906,
+ 161908, 161910, 161912, 161914, 161916, 161918, 161920, 161922, 161924,
+ 161926, 161928, 161930, 161932, 161934, 161936, 161938, 161940, 161942,
+ 161944, 161946, 161948, 161950, 161952, 161954, 161956, 161958, 161960,
+ 161962, 161964, 161966, 161968, 161970, 161972, 161974, 161976, 161978,
+ 161980, 161982, 161984, 161986, 161988, 161990, 161992, 161994, 161996,
+ 161998, 162000, 162002, 162004, 162006, 162008, 162010, 162012, 162014,
+ 162016, 162018, 162020, 162022, 162024, 162026, 162028, 162030, 162032,
+ 162034, 162036, 162038, 162040, 162042, 162044, 162046, 162048, 162050,
+ 162052, 162054, 162056, 162058, 162060, 162062, 162064, 162066, 162068,
+ 162070, 162072, 162074, 162076, 162078, 162080, 162082, 162084, 162086,
+ 162088, 162090, 162092, 162094, 162096, 162098, 162100, 162102, 162104,
+ 162106, 162108, 162110, 162112, 162114, 162116, 162118, 162120, 162122,
+ 162124, 162126, 162128, 162130, 162132, 162134, 162136, 162138, 162140,
+ 162142, 162144, 162146, 162148, 162150, 162152, 162154, 162156, 162158,
+ 162160, 162162, 162164, 162166, 162168, 162170, 162172, 162174, 162176,
+ 162178, 162180, 162182, 162184, 162186, 162188, 162190, 162192, 162194,
+ 162196, 162198, 162200, 162202, 162204, 162206, 162208, 162210, 162212,
+ 162214, 162216, 162218, 162220, 162222, 162224, 162226, 162228, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 129454, 129457, 129461, 129465, 129468, 129472, 129476,
- 129479, 129482, 129486, 129490, 129493, 129496, 129499, 129502, 129507,
- 129510, 129514, 129517, 129520, 129523, 129526, 129529, 129532, 129535,
- 129538, 129541, 129544, 129547, 129551, 129555, 129559, 129563, 129568,
- 129573, 129579, 129585, 129591, 129596, 129602, 129608, 129614, 129619,
- 129625, 129631, 129636, 129641, 129647, 129652, 129658, 129664, 129669,
- 129675, 129681, 129686, 129692, 129698, 129704, 129710, 129716, 129720,
- 129725, 129729, 129734, 129738, 129743, 129748, 129754, 129760, 129766,
- 129771, 129777, 129783, 129789, 129794, 129800, 129806, 129811, 129816,
- 129822, 129827, 129833, 129839, 129844, 129850, 129856, 129861, 129867,
- 129873, 129879, 129885, 129891, 129896, 129900, 129905, 129907, 129911,
- 129914, 129917, 129920, 129923, 129926, 129929, 129932, 129935, 129938,
- 129941, 129944, 129947, 129950, 129953, 129956, 129959, 129962, 129965,
- 129968, 129971, 129974, 129977, 129980, 129983, 129986, 129989, 129992,
- 129995, 129998, 130001, 130004, 130007, 130010, 130013, 130016, 130019,
- 130022, 130025, 130028, 130031, 130034, 130037, 130040, 130043, 130046,
- 130049, 130052, 130055, 130058, 130061, 130064, 130067, 130070, 130073,
- 130076, 130079, 130082, 130085, 130088, 130091, 130094, 130097, 130100,
- 130103, 130106, 130109, 130112, 130115, 130118, 130121, 130124, 130127,
- 130130, 130133, 130136, 130139, 130142, 130145, 130148, 130151, 130154,
- 130157, 130160, 130163, 130166, 130169, 130172, 130175, 130178, 130181,
- 130184, 130187, 130190, 130193, 130196, 130199, 130202, 130205, 130208,
- 130211, 130214, 130217, 130220, 130223, 130226, 130229, 130232, 130235,
- 130238, 130241, 130244, 130247, 130250, 130253, 130256, 130259, 130262,
- 130265, 130268, 130271, 130274, 130277, 130280, 130283, 130286, 130289,
- 130292, 130295, 130298, 130301, 130304, 130307, 130310, 130313, 130316,
- 130319, 130322, 130325, 130328, 130331, 130334, 130337, 130340, 130343,
- 130346, 130349, 130352, 130355, 130358, 130361, 130364, 130367, 130370,
- 130373, 130376, 130379, 130382, 130385, 130388, 130391, 130394, 130397,
- 130400, 130403, 130406, 130409, 130412, 130415, 130418, 130421, 130424,
- 130427, 130430, 130433, 130436, 130439, 130442, 130445, 130448, 130451,
- 130454, 130457, 130460, 130463, 130466, 130469, 130472, 130475, 130478,
- 130481, 130484, 130487, 130490, 130493, 130496, 130499, 130502, 130505,
- 130508, 130511, 130514, 130517, 130520, 130523, 130526, 130529, 130532,
- 130535, 130538, 130541, 130544, 130547, 130550, 130553, 130556, 130559,
- 130562, 130565, 130568, 130571, 130574, 130577, 130580, 130583, 130586,
- 130589, 130592, 130595, 130598, 130601, 130604, 130607, 130610, 130613,
- 130616, 130619, 130622, 130625, 130628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 130631, 130633, 130635, 130640, 130642, 130647, 130649,
- 130654, 130656, 130661, 130663, 130665, 130667, 130669, 130671, 130673,
- 130675, 130677, 130679, 130682, 130685, 130687, 130689, 130693, 130696,
- 130701, 130703, 130705, 130707, 130711, 130714, 130716, 130720, 130722,
- 130726, 130728, 130732, 130735, 130737, 130741, 130745, 130747, 130753,
- 130755, 130760, 130762, 130767, 130769, 130774, 130776, 130781, 130783,
- 130786, 130788, 130792, 130794, 130801, 130803, 130805, 130807, 130812,
- 130814, 130816, 130818, 130820, 130822, 130827, 130831, 130833, 130838,
- 130842, 130844, 130849, 130853, 130855, 130860, 130864, 130866, 130868,
- 130870, 130872, 130876, 130878, 130883, 130885, 130891, 130893, 130899,
- 130901, 130903, 130905, 130909, 130911, 130918, 130920, 130927, 130929,
- 130934, 130939, 130941, 130947, 130953, 130955, 130961, 130966, 130968,
- 130974, 130980, 130982, 130988, 130994, 130996, 131002, 131006, 131008,
- 131013, 131015, 131017, 131022, 131024, 131026, 131032, 131034, 131039,
- 131043, 131045, 131050, 131054, 131056, 131062, 131064, 131068, 131070,
- 131074, 131076, 131083, 131090, 131092, 131099, 131106, 131108, 131113,
- 131115, 131122, 131124, 131129, 131131, 131137, 131139, 131143, 131145,
- 131151, 131153, 131157, 131159, 131165, 131167, 131169, 131171, 131176,
- 131181, 131183, 131185, 131194, 131198, 131205, 131212, 131217, 131222,
- 131234, 131236, 131238, 131240, 131242, 131244, 131246, 131248, 131250,
- 131252, 131254, 131256, 131258, 131260, 131262, 131264, 131266, 131268,
- 131270, 131272, 131274, 131276, 131282, 131289, 131294, 131299, 131310,
- 131312, 131314, 131316, 131318, 131320, 131322, 131324, 131326, 131328,
- 131330, 131332, 131334, 131336, 131338, 131340, 131342, 131347, 131349,
- 131351, 131357, 131369, 131380, 131382, 131384, 131386, 131388, 131390,
- 131392, 131394, 131396, 131398, 131400, 131402, 131404, 131406, 131408,
- 131410, 131412, 131414, 131416, 131418, 131420, 131422, 131424, 131426,
- 131428, 131430, 131432, 131434, 131436, 131438, 131440, 131442, 131444,
- 131446, 131448, 131450, 131452, 131454, 131456, 131458, 131460, 131462,
- 131464, 131466, 131468, 131470, 131472, 131474, 131476, 131478, 131480,
- 131482, 131484, 131486, 131488, 131490, 131492, 131494, 131496, 131498,
- 131500, 131502, 131504, 131506, 131508, 131510, 131512, 131514, 131516,
- 131518, 131520, 131522, 131524, 131526, 131528, 131530, 131532, 131534,
- 131536, 131538, 131540, 131542, 131544, 131546, 131548, 131550, 131552,
- 131554, 131556, 131558, 131560, 131562, 131564, 131566, 131568, 131570,
- 131572, 131574, 131576, 131578, 131580, 131582, 131584, 131586, 131588,
- 131590, 131592, 131594, 131596, 131598, 131600, 131602, 131604, 131606,
- 131608, 131610, 131612, 131614, 131616, 131618, 131620, 131622, 131624,
- 131626, 131628, 131630, 131632, 131634, 131636, 131638, 131640, 131642,
- 131644, 131646, 131648, 131650, 131652, 131654, 131656, 131658, 131660,
- 131662, 131664, 131666, 131668, 131670, 131672, 131674, 131676, 131678,
- 131680, 131682, 131684, 131686, 131688, 131690, 131692, 131694, 131696,
- 131698, 131700, 131702, 131704, 131706, 131708, 131710, 131712, 131714,
- 131716, 131718, 131720, 131722, 131724, 131726, 131728, 131730, 131732,
- 131734, 131736, 131738, 131740, 131742, 131744, 131746, 131748, 131750,
- 131752, 131754, 131756, 131758, 131760, 131762, 131764, 131766, 131768,
- 131770, 131772, 131774, 131776, 131778, 131780, 131782, 131784, 131786,
- 131788, 131790, 131792, 131794, 131796, 131798, 131800, 131802, 131804,
- 131806, 131808, 131810, 131812, 131814, 131816, 131818, 131820, 131822,
- 131824, 131826, 131828, 131830, 131832, 131834, 131836, 131838, 131840,
- 131842, 131844, 131846, 131848, 131850, 131852, 131854, 131856, 131858,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 162230, 162240, 162250, 162259, 162268, 162281, 162294, 162306,
+ 162318, 162328, 162338, 162348, 162358, 162369, 162380, 162390, 162399,
+ 162408, 162417, 162430, 162443, 162455, 162467, 162477, 162487, 162497,
+ 162507, 162516, 162525, 162535, 162545, 162554, 162563, 162573, 162583,
+ 162592, 162601, 162611, 162621, 162632, 162643, 162653, 162666, 162677,
+ 162691, 162699, 162710, 162718, 162726, 162734, 162742, 162750, 162758,
+ 162767, 162776, 162786, 162796, 162805, 162814, 162824, 162834, 162842,
+ 162850, 162857, 162867, 162876, 162884, 162891, 162901, 162910, 162921,
+ 162932, 162944, 162955, 162965, 162976, 162986, 162997, 163005, 163009,
+ 163013, 163017, 163021, 163025, 163029, 163033, 163037, 163041, 163045,
+ 163049, 163053, 163056, 163059, 163063, 163067, 163071, 163075, 163079,
+ 163083, 163087, 163091, 163094, 163098, 163102, 163106, 163110, 163114,
+ 163118, 163122, 163126, 163130, 163134, 163138, 163142, 163146, 163150,
+ 163154, 163158, 163162, 163166, 163170, 163174, 163178, 163182, 163186,
+ 163190, 163194, 163198, 163202, 163206, 163210, 163214, 163218, 163222,
+ 163226, 163230, 163234, 163238, 163242, 163246, 163250, 163254, 163258,
+ 163262, 163266, 163270, 163274, 163278, 163282, 163286, 163290, 163294,
+ 163298, 163302, 163306, 163310, 163314, 163318, 163322, 163326, 163330,
+ 163334, 163338, 163342, 163346, 163350, 163354, 163358, 163362, 163366,
+ 163370, 163374, 163378, 163382, 163386, 163390, 163394, 163398, 163401,
+ 163405, 163409, 163413, 163417, 163421, 163425, 163429, 163433, 163437,
+ 163441, 163445, 163449, 163453, 163457, 163461, 163465, 163469, 163473,
+ 163477, 163481, 163485, 163489, 163493, 163497, 163501, 163505, 163509,
+ 163513, 163517, 163521, 163525, 163529, 163533, 163537, 163541, 163545,
+ 163549, 163553, 163557, 163561, 163565, 163569, 163573, 163577, 163581,
+ 163585, 163589, 163593, 163597, 163601, 163605, 163609, 163613, 163617,
+ 163621, 163625, 163629, 163633, 163637, 163641, 163645, 163649, 163653,
+ 163657, 163661, 163665, 163669, 163673, 163677, 163681, 163685, 163689,
+ 163693, 163697, 163701, 163705, 163709, 163713, 163717, 163721, 163725,
+ 163729, 163733, 163737, 163741, 163745, 163749, 163753, 163757, 163761,
+ 163765, 163769, 163773, 163777, 163781, 163785, 163789, 163793, 163797,
+ 163801, 163805, 163809, 163813, 163817, 163821, 163825, 163829, 163833,
+ 163837, 163841, 163845, 163849, 163853, 163857, 163861, 163865, 163869,
+ 163873, 163877, 163881, 163885, 163889, 163893, 163897, 163901, 163905,
+ 163909, 163913, 163917, 163921, 163925, 163929, 163933, 163937, 163941,
+ 163945, 163949, 163953, 163957, 163961, 163965, 163969, 163973, 163977,
+ 163981, 163985, 163989, 163993, 163997, 164001, 164005, 164009, 164013,
+ 164017, 164021, 164025, 164029, 164033, 164037, 164041, 164045, 164049,
+ 164053, 164057, 164061, 164065, 164069, 164073, 164077, 164081, 164085,
+ 164089, 164093, 164097, 164101, 164105, 164109, 164113, 164117, 164121,
+ 164125, 164129, 164133, 164137, 164141, 164145, 164149, 164153, 164157,
+ 164161, 164165, 164170, 164175, 164180, 164184, 164190, 164197, 164204,
+ 164211, 164218, 164225, 164232, 164239, 164246, 164253, 164260, 164267,
+ 164274, 164281, 164288, 164295, 164302, 164308, 164315, 164322, 164329,
+ 164336, 164343, 164350, 164357, 164364, 164371, 164378, 164385, 164392,
+ 164399, 164406, 164412, 164419, 164426, 164435, 164444, 164453, 164462,
+ 164467, 164472, 164478, 164484, 164490, 164496, 164502, 164508, 164514,
+ 164520, 164526, 164532, 164538, 164544, 164549, 164555, 164565, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 131860, 131870, 131880, 131889, 131898, 131911,
- 131924, 131936, 131948, 131958, 131968, 131978, 131988, 131999, 132010,
- 132020, 132029, 132038, 132047, 132060, 132073, 132085, 132097, 132107,
- 132117, 132127, 132137, 132146, 132155, 132164, 132173, 132182, 132191,
- 132200, 132209, 132218, 132227, 132236, 132245, 132256, 132266, 132276,
- 132289, 132299, 132312, 132319, 132329, 132336, 132343, 132350, 132357,
- 132364, 132371, 132380, 132389, 132398, 132407, 132416, 132425, 132434,
- 132443, 132451, 132459, 132466, 132476, 132485, 132493, 132500, 132510,
- 132519, 132529, 132539, 132550, 132560, 132569, 132579, 132588, 132598,
- 132606, 132610, 132614, 132618, 132622, 132626, 132630, 132634, 132638,
- 132642, 132646, 132649, 132653, 132656, 132659, 132663, 132667, 132671,
- 132675, 132679, 132683, 132687, 132691, 132695, 132699, 132703, 132707,
- 132711, 132715, 132719, 132723, 132727, 132731, 132735, 132739, 132743,
- 132747, 132751, 132755, 132759, 132763, 132767, 132771, 132775, 132779,
- 132783, 132787, 132791, 132795, 132799, 132803, 132807, 132811, 132815,
- 132819, 132823, 132827, 132831, 132835, 132839, 132843, 132847, 132851,
- 132855, 132859, 132863, 132867, 132871, 132875, 132879, 132883, 132887,
- 132891, 132895, 132899, 132903, 132907, 132911, 132915, 132919, 132923,
- 132927, 132931, 132935, 132939, 132943, 132947, 132951, 132955, 132959,
- 132963, 132967, 132971, 132975, 132979, 132983, 132987, 132991, 132995,
- 132999, 133002, 133006, 133010, 133014, 133018, 133022, 133026, 133030,
- 133034, 133038, 133042, 133046, 133050, 133054, 133058, 133062, 133066,
- 133070, 133074, 133078, 133082, 133086, 133090, 133094, 133098, 133102,
- 133106, 133110, 133114, 133118, 133122, 133126, 133130, 133134, 133138,
- 133142, 133146, 133150, 133154, 133158, 133162, 133166, 133170, 133174,
- 133178, 133182, 133186, 133190, 133194, 133198, 133202, 133206, 133210,
- 133214, 133218, 133222, 133226, 133230, 133234, 133238, 133242, 133246,
- 133250, 133254, 133258, 133262, 133266, 133270, 133274, 133278, 133282,
- 133286, 133290, 133294, 133298, 133302, 133306, 133310, 133314, 133318,
- 133322, 133326, 133330, 133334, 133338, 133342, 133346, 133350, 133354,
- 133358, 133362, 133366, 133370, 133374, 133378, 133382, 133386, 133390,
- 133394, 133398, 133402, 133406, 133410, 133414, 133418, 133422, 133426,
- 133430, 133434, 133438, 133442, 133446, 133450, 133454, 133458, 133462,
- 133466, 133470, 133474, 133478, 133482, 133486, 133490, 133494, 133498,
- 133502, 133506, 133510, 133514, 133518, 133522, 133526, 133530, 133534,
- 133538, 133542, 133546, 133550, 133554, 133558, 133562, 133566, 133570,
- 133574, 133578, 133582, 133586, 133590, 133594, 133598, 133602, 133606,
- 133610, 133614, 133618, 133622, 133626, 133630, 133634, 133638, 133642,
- 133646, 133650, 133654, 133658, 133662, 133666, 133670, 133674, 133678,
- 133682, 133686, 133690, 133694, 133698, 133702, 133706, 133710, 133714,
- 133718, 133722, 133726, 133730, 133734, 133738, 133742, 133746, 133750,
- 133754, 133758, 133762, 133766, 133771, 133776, 133781, 133785, 133791,
- 133798, 133805, 133812, 133819, 133826, 133833, 133840, 133847, 133854,
- 133861, 133868, 133875, 133882, 133888, 133895, 133902, 133908, 133915,
- 133922, 133929, 133936, 133943, 133950, 133957, 133964, 133971, 133978,
- 133985, 133992, 133999, 134005, 134011, 134018, 134025, 134034, 134043,
- 134052, 134061, 134066, 134071, 134077, 134083, 134089, 134095, 134101,
- 134107, 134113, 134119, 134125, 134131, 134137, 134143, 134148, 134154,
- 134164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0,
};
/* name->code dictionary */
static unsigned int code_hash[] = {
- 74224, 4851, 0, 78156, 78499, 128685, 7929, 0, 194682, 127766, 78500,
- 66480, 0, 42833, 74529, 12064, 0, 596, 983821, 69850, 13192, 8651, 0, 0,
- 120218, 12995, 64865, 1373, 0, 0, 5816, 119067, 64810, 4231, 6825, 42897,
- 4233, 4234, 4232, 917836, 74415, 120210, 6384, 917840, 78108, 8851, 0,
- 128553, 0, 41601, 8874, 983783, 7748, 0, 0, 0, 127939, 41603, 9784, 0,
- 9188, 41600, 0, 120618, 128343, 1457, 3535, 0, 0, 0, 0, 65240, 11951, 0,
- 3404, 0, 0, 0, 1759, 0, 41076, 68383, 120572, 119205, 66577, 94014,
- 127764, 65859, 0, 7404, 0, 0, 0, 0, 65908, 9834, 3055, 9852, 983860,
- 65288, 0, 11398, 0, 92417, 119255, 0, 0, 603, 74398, 43548, 0, 0, 917824,
- 3350, 120817, 64318, 917828, 127089, 3390, 74483, 43265, 120599, 917830,
- 78573, 0, 1919, 3400, 120651, 127944, 11647, 917540, 66446, 64141, 8562,
- 2121, 64138, 4043, 8712, 64134, 64133, 11297, 983688, 983152, 11966,
- 64128, 128587, 0, 0, 64132, 10867, 64130, 64129, 983844, 43374, 9779,
- 2764, 66002, 10167, 9471, 0, 66021, 0, 0, 5457, 5440, 8857, 93981, 65282,
- 2843, 5355, 127928, 983965, 0, 5194, 11657, 43984, 128292, 0, 983620, 0,
- 0, 127027, 10717, 64570, 5630, 5396, 64143, 10682, 0, 10602, 800, 42499,
- 66186, 0, 0, 64930, 11631, 64146, 64145, 64144, 762, 13172, 118859,
- 194661, 64468, 10906, 1353, 6960, 0, 0, 5828, 8724, 917806, 8933, 1601,
- 42244, 858, 7080, 64109, 64108, 8090, 0, 74401, 917811, 587, 0, 128131,
- 0, 0, 0, 78214, 2750, 74218, 556, 64158, 64157, 983949, 12213, 194678,
- 2760, 0, 0, 0, 194794, 64156, 64155, 42496, 0, 64151, 64150, 12679,
- 10053, 10421, 11093, 64153, 64152, 0, 0, 4839, 0, 0, 1874, 119016, 0,
- 6577, 64125, 64124, 64123, 0, 127531, 92534, 7007, 7590, 65443, 9036,
- 92550, 64122, 74422, 66609, 0, 64117, 64116, 6287, 64114, 2725, 64120,
- 64119, 43981, 42128, 127842, 1177, 65601, 12322, 64106, 69640, 127306,
- 64102, 7859, 1945, 64099, 0, 10453, 64104, 7188, 7997, 0, 7389, 983161,
- 8705, 64097, 64096, 9571, 528, 128671, 44017, 11429, 71347, 0, 983077,
- 917990, 73841, 0, 0, 9056, 64313, 6188, 120019, 6155, 64068, 1823, 64066,
- 64065, 64072, 64071, 63, 7233, 92212, 0, 41904, 6639, 64064, 983775,
- 128344, 0, 1176, 118959, 127930, 8162, 128667, 983831, 0, 120519, 66376,
- 66242, 11415, 4333, 9855, 64112, 64642, 0, 5388, 0, 0, 0, 7714, 66222,
- 69902, 7768, 0, 4199, 64708, 983421, 0, 0, 8708, 9560, 64077, 64076,
- 8996, 4992, 4471, 42622, 64079, 64078, 92179, 0, 126570, 0, 64615, 41915,
- 0, 12075, 70062, 0, 5174, 983217, 0, 127557, 3123, 0, 12685, 127904,
- 8408, 64704, 0, 0, 9223, 0, 41616, 67999, 73797, 0, 1116, 128204, 43049,
- 7136, 43050, 8548, 120485, 0, 119061, 917999, 0, 13115, 43675, 64091,
- 9322, 0, 120595, 64095, 64094, 8111, 66247, 42332, 64089, 64088, 6199, 0,
- 0, 11434, 64083, 64082, 11329, 7737, 64087, 64086, 64085, 64084, 194817,
- 9927, 41335, 4118, 1797, 0, 41334, 0, 46, 43448, 127881, 298, 0, 128114,
- 0, 42627, 0, 32, 6187, 119052, 11495, 11459, 3665, 983600, 42871, 0,
- 19923, 74335, 0, 127192, 66239, 42264, 64403, 4412, 7240, 92495, 0,
- 983466, 65758, 12750, 4181, 8544, 0, 120199, 917897, 120198, 69809, 6181,
- 65014, 0, 0, 983196, 3639, 119588, 0, 0, 118904, 10073, 120206, 128862,
- 127186, 68409, 42844, 7498, 1098, 92565, 120205, 0, 983118, 10207, 8789,
- 983225, 0, 0, 983472, 9234, 0, 6182, 983474, 65058, 0, 983478, 983475, 0,
- 5471, 9461, 5573, 118936, 5473, 44, 0, 66244, 94072, 0, 66238, 12844, 0,
- 1622, 7767, 1900, 41339, 11458, 0, 0, 6581, 5576, 0, 64405, 41337, 0,
- 41631, 8947, 68390, 127844, 41694, 0, 0, 7908, 0, 10408, 6579, 0, 64618,
- 0, 120147, 2138, 6583, 7761, 127010, 120504, 194828, 0, 5058, 41010,
- 9992, 128299, 5057, 0, 0, 74538, 5054, 118951, 194971, 78606, 0, 1437,
- 41617, 658, 3497, 128509, 7486, 5061, 5060, 4235, 127878, 0, 128529,
- 12113, 4236, 4727, 0, 0, 7693, 10749, 0, 7488, 5773, 978, 128134, 0,
- 41619, 10239, 68611, 0, 66209, 0, 128700, 9748, 983956, 127524, 0, 0, 0,
- 0, 195083, 0, 983843, 0, 0, 0, 0, 0, 9341, 119596, 2379, 11325, 0, 64668,
- 67854, 8125, 120545, 6743, 119175, 917940, 2369, 0, 983972, 983973,
- 119235, 74092, 73936, 7008, 43660, 0, 0, 0, 2367, 127827, 983857, 264,
- 2375, 8060, 6194, 119858, 1844, 119084, 0, 6019, 0, 0, 6961, 0, 118839,
- 0, 8800, 0, 42862, 4463, 65581, 6192, 194676, 42771, 0, 92333, 725,
- 65042, 118797, 120800, 983040, 12892, 0, 0, 0, 0, 0, 0, 127261, 120707,
- 983128, 0, 5074, 5073, 128790, 8983, 118981, 74493, 983561, 5072, 93977,
- 6198, 11614, 0, 196, 0, 0, 0, 4929, 120342, 0, 0, 0, 0, 42847, 0, 0, 0,
- 4934, 0, 41323, 9758, 0, 92289, 127917, 42584, 0, 4329, 41321, 4979,
- 3048, 7752, 41320, 983042, 74418, 12819, 0, 5071, 0, 3642, 0, 5070,
- 10042, 118835, 3987, 5068, 0, 8909, 78650, 78649, 69917, 10636, 73981,
- 11806, 43167, 4531, 1245, 9105, 66463, 4921, 120219, 4926, 65544, 73884,
- 194619, 0, 0, 64709, 0, 194620, 78880, 4922, 325, 992, 119568, 4925, 0,
- 0, 9526, 4920, 0, 948, 0, 120208, 4930, 0, 92175, 120275, 4933, 120211,
- 0, 118985, 4928, 0, 0, 74770, 120194, 126548, 722, 194934, 19908, 12637,
- 127485, 119855, 8753, 1509, 0, 5468, 9511, 127474, 127477, 1672, 6205,
- 10864, 74586, 127480, 70103, 127466, 78555, 127468, 73863, 126577,
- 126503, 41607, 120115, 1679, 120116, 120180, 120113, 127462, 7005, 41609,
- 9580, 0, 401, 69949, 43779, 6968, 5761, 342, 8553, 0, 8143, 127115,
- 11983, 92249, 624, 74508, 4057, 43788, 5078, 74258, 12478, 0, 5076, 0,
- 194609, 0, 8295, 685, 9025, 1524, 12618, 0, 5539, 0, 92523, 120102, 7138,
- 120552, 0, 194611, 78752, 0, 12520, 8058, 9732, 0, 5080, 64775, 5036,
- 5035, 120590, 42604, 983656, 0, 8074, 275, 13291, 1907, 78838, 4432,
- 127271, 5033, 127273, 127272, 4836, 3888, 73792, 10729, 64546, 127262,
- 43704, 127264, 127251, 67588, 119000, 127252, 127255, 8858, 6409, 127256,
- 120252, 128100, 0, 0, 66321, 0, 12814, 127248, 3432, 10218, 0, 6094,
- 7641, 42445, 0, 92487, 42406, 1676, 74320, 194607, 983177, 5030, 0, 0, 0,
- 73869, 9622, 0, 69944, 6787, 0, 0, 0, 983583, 10544, 12919, 0, 92218, 0,
- 0, 69906, 120789, 0, 947, 119835, 194586, 194585, 10969, 119935, 7613,
+ 74224, 4851, 125138, 78156, 78499, 72391, 7929, 66910, 194682, 127766,
+ 78500, 66480, 64038, 42833, 74529, 12064, 72385, 596, 983821, 69850,
+ 13192, 8651, 120217, 126542, 120218, 12995, 64865, 1373, 119856, 113752,
+ 5816, 119067, 64810, 4231, 6825, 42897, 4233, 4234, 4232, 120889, 74415,
+ 120210, 6384, 70351, 78108, 8851, 67698, 128553, 82954, 41601, 8874,
+ 72392, 7748, 125083, 0, 127026, 127939, 41603, 9784, 0, 9188, 41600, 0,
+ 120618, 128343, 1457, 3535, 128635, 6381, 0, 0, 65240, 11951, 0, 3404,
+ 983079, 70487, 72411, 1759, 120853, 41076, 68383, 69972, 119205, 66577,
+ 94014, 127764, 65859, 0, 7404, 0, 0, 69970, 128387, 65908, 9834, 3055,
+ 9852, 128360, 65288, 121291, 11398, 0, 92417, 93016, 128380, 127337, 603,
+ 74398, 43548, 0, 71865, 917824, 3350, 120817, 64318, 194698, 78121, 3390,
+ 74483, 43265, 92399, 917830, 78573, 118803, 1919, 3400, 120651, 83296,
+ 11647, 83298, 66446, 64141, 8562, 2121, 64138, 4043, 8712, 64134, 64133,
+ 11297, 983688, 983152, 11966, 64128, 66286, 93042, 128830, 64132, 10867,
+ 64130, 64129, 121255, 43374, 9779, 2764, 66002, 10167, 9471, 83458,
+ 66021, 74509, 0, 5457, 5440, 8857, 93981, 65282, 2843, 5355, 68858,
+ 983342, 69971, 5194, 11657, 43984, 128292, 113724, 128872, 0, 0, 72393,
+ 10717, 64570, 5630, 5396, 64143, 10682, 83300, 10602, 800, 42499, 66186,
+ 0, 0, 64930, 11631, 64146, 64145, 64144, 762, 13172, 75008, 77928, 43929,
+ 10906, 1353, 6960, 83032, 128779, 5828, 8724, 917806, 8933, 1601, 42244,
+ 858, 7080, 64109, 64108, 8090, 70455, 72388, 74606, 587, 917907, 82971,
+ 0, 0, 0, 78214, 2750, 74218, 556, 64158, 64157, 78707, 12213, 83290,
+ 2760, 83284, 83285, 78708, 83287, 64156, 64155, 42496, 83283, 64151,
+ 64150, 12679, 10053, 10421, 11093, 64153, 64152, 125016, 0, 4839, 68527,
+ 0, 1874, 119016, 120091, 6577, 64125, 64124, 64123, 0, 127531, 92534,
+ 7007, 7590, 65443, 9036, 78847, 64122, 66389, 66609, 121347, 64117,
+ 64116, 6287, 64114, 2725, 64120, 64119, 43981, 42128, 127842, 1177,
+ 65601, 12322, 64106, 69640, 92895, 64102, 7859, 1945, 64099, 0, 10453,
+ 64104, 7188, 7997, 0, 7389, 983161, 8705, 64097, 64096, 9571, 528,
+ 128545, 44017, 11429, 71347, 0, 983077, 120864, 73841, 83339, 83340,
+ 9056, 64313, 6188, 74360, 6155, 64068, 1823, 64066, 64065, 64072, 64071,
+ 63, 7233, 92212, 72414, 41904, 6639, 64064, 983775, 128344, 121388, 1176,
+ 118959, 127930, 8162, 127019, 128197, 92747, 120519, 42931, 66242, 11415,
+ 4333, 9855, 64112, 64642, 0, 5388, 0, 121271, 983649, 7714, 66222, 69902,
+ 7768, 72403, 4199, 64708, 65064, 70117, 0, 8708, 9560, 64077, 64076,
+ 8996, 4992, 4471, 42622, 64079, 64078, 92179, 71878, 126570, 121256,
+ 64615, 41915, 0, 12075, 42041, 194825, 5174, 983217, 0, 127557, 3123,
+ 125100, 12685, 119216, 8408, 64704, 83328, 0, 9223, 0, 41616, 67999,
+ 73797, 83327, 1116, 75067, 43049, 7136, 43050, 8548, 120485, 0, 75031,
+ 917622, 128168, 13115, 43675, 64091, 9322, 83338, 83331, 64095, 64094,
+ 8111, 66247, 42332, 64089, 64088, 6199, 67249, 66398, 11434, 64083,
+ 64082, 11329, 7737, 64087, 64086, 64085, 64084, 83033, 9927, 41335, 4118,
+ 1797, 83312, 41334, 0, 46, 43448, 83309, 298, 83303, 83304, 83305, 42627,
+ 125011, 32, 6187, 83037, 11495, 11459, 3665, 83036, 42871, 0, 19923,
+ 74335, 0, 127192, 66239, 42264, 64403, 4412, 7240, 83314, 71444, 983468,
+ 65758, 12750, 4181, 8544, 83461, 68053, 83407, 120198, 69809, 6181,
+ 65014, 983422, 128484, 983196, 3639, 119588, 118851, 83039, 118904,
+ 10073, 120206, 83038, 127186, 68409, 42844, 7498, 1098, 92565, 120205, 0,
+ 128915, 10207, 8789, 93070, 120338, 92973, 128325, 9234, 917895, 6182,
+ 983475, 65058, 120319, 983480, 68064, 917831, 5471, 9461, 5573, 118936,
+ 5473, 44, 0, 66244, 94072, 0, 66238, 12844, 66894, 1622, 7767, 1900,
+ 41339, 11458, 119061, 0, 6581, 5576, 128618, 43855, 41337, 0, 41631,
+ 8947, 68390, 69683, 41694, 983848, 72396, 7908, 0, 10408, 6579, 917872,
+ 64618, 0, 120147, 2138, 6583, 7761, 70005, 120504, 194828, 128961, 5058,
+ 41010, 9992, 128299, 5057, 917941, 0, 74538, 5054, 118951, 194971, 78606,
+ 0, 1437, 41617, 658, 3497, 128509, 7486, 5061, 5060, 4235, 127878,
+ 128322, 128529, 12113, 4236, 4727, 128487, 0, 7693, 10749, 120332, 7488,
+ 5773, 978, 128134, 983699, 41619, 10239, 68611, 71864, 66209, 127233,
+ 74135, 9748, 983956, 127524, 0, 983316, 194676, 194675, 128081, 0,
+ 983313, 983302, 0, 127865, 0, 92776, 9341, 78821, 2379, 11325, 917902,
+ 64668, 67854, 8125, 120545, 6743, 83164, 917940, 2369, 83406, 983323,
+ 127966, 119235, 71868, 73936, 7008, 43660, 120346, 0, 43841, 2367,
+ 127827, 983857, 264, 2375, 8060, 6194, 119858, 1844, 119084, 129049,
+ 6019, 128975, 0, 6961, 0, 70435, 67171, 8800, 127332, 42862, 4463, 65581,
+ 6192, 119610, 42771, 0, 92333, 725, 65042, 93014, 120800, 74942, 12892,
+ 0, 67149, 74899, 73931, 0, 120495, 127261, 12224, 983128, 129061, 5074,
+ 5073, 121164, 8983, 118981, 74493, 71231, 5072, 74547, 6198, 11614, 0,
+ 196, 983154, 0, 983936, 4929, 120342, 129145, 0, 127987, 121455, 42847,
+ 92953, 0, 67754, 4934, 983981, 41323, 9758, 0, 92289, 70181, 42584, 0,
+ 4329, 41321, 4979, 3048, 7752, 41320, 983042, 64667, 12819, 983870, 5071,
+ 127915, 3642, 67334, 5070, 10042, 113813, 3987, 5068, 983460, 8909,
+ 78650, 78649, 69917, 10636, 73981, 11806, 43167, 4531, 1245, 9105, 66463,
+ 4921, 120219, 4926, 65544, 73884, 121359, 128028, 0, 64709, 83269,
+ 128854, 78880, 4922, 325, 992, 119568, 4925, 127218, 0, 9526, 4920,
+ 128617, 948, 0, 120208, 4930, 127857, 92175, 120275, 4933, 113779,
+ 121049, 118985, 4928, 983149, 83514, 74770, 120194, 126548, 722, 194934,
+ 19908, 12637, 127485, 82999, 8753, 1509, 0, 5468, 9511, 43493, 127477,
+ 1672, 6205, 10864, 74586, 127480, 70103, 92694, 78555, 127468, 73863,
+ 126577, 68336, 41607, 120115, 1679, 120116, 120180, 92761, 127462, 7005,
+ 41609, 9580, 70431, 401, 69949, 43779, 6968, 5761, 342, 8553, 127900,
+ 8143, 127115, 11983, 92249, 624, 74508, 4057, 43788, 5078, 74258, 12478,
+ 0, 5076, 128702, 82991, 0, 8295, 685, 9025, 1524, 12618, 0, 5539, 129182,
+ 92523, 71435, 7138, 120552, 43504, 194611, 66914, 65794, 12520, 8058,
+ 9732, 92480, 5080, 64775, 5036, 5035, 120590, 42604, 983656, 0, 8074,
+ 275, 13291, 1907, 78838, 4432, 121313, 5033, 120341, 120818, 4836, 3888,
+ 73792, 10729, 64546, 127262, 43704, 127264, 92957, 67588, 68061, 124983,
+ 70360, 8858, 6409, 7663, 120252, 128100, 119007, 0, 66321, 94052, 12814,
+ 127248, 3432, 10218, 0, 6094, 7641, 42445, 128792, 92487, 42406, 1676,
+ 67362, 74862, 67365, 5030, 67364, 118810, 195008, 73869, 9622, 113763,
+ 69944, 6787, 67361, 983270, 0, 68319, 10544, 12919, 71484, 72397, 0, 0,
+ 69906, 120789, 983041, 947, 67695, 67367, 128528, 10969, 67228, 7613,
92562, 119936, 4795, 119930, 7018, 7376, 120181, 120192, 120268, 0,
- 43567, 74056, 917910, 11833, 119919, 7216, 65232, 7217, 251, 7218, 7895,
- 4395, 43538, 119926, 119929, 119928, 7213, 119922, 7214, 7215, 983836,
- 74141, 8880, 7685, 66459, 120173, 65540, 119618, 625, 8187, 42861, 1113,
- 7236, 7915, 3630, 120176, 8179, 74264, 67886, 9316, 10980, 2489, 65624,
- 8150, 1359, 67652, 127329, 127330, 73756, 5042, 5041, 42769, 12084,
- 127324, 127321, 92279, 127319, 127320, 127317, 127318, 127315, 12283,
- 1616, 3795, 0, 8795, 66245, 0, 0, 0, 1138, 73905, 12677, 0, 0, 3239,
- 127311, 0, 0, 8431, 0, 42164, 0, 11778, 12620, 6826, 73773, 119073, 5040,
- 0, 0, 983443, 78420, 0, 5039, 0, 78418, 0, 5038, 0, 0, 13184, 74293, 0,
- 64648, 0, 9359, 78416, 0, 128770, 65157, 6662, 0, 0, 3863, 73909, 4835,
- 55266, 43432, 127822, 4309, 7127, 194569, 0, 194568, 1301, 0, 42589, 569,
- 0, 73813, 711, 4389, 7133, 0, 73880, 11610, 11368, 0, 194570, 41331,
- 1006, 74240, 0, 1550, 8201, 73737, 7627, 5499, 5031, 77908, 42738, 65784,
- 77907, 65267, 3758, 0, 65781, 64734, 70073, 2440, 65780, 77913, 8449, 0,
- 5008, 983572, 2118, 0, 12121, 8255, 5512, 73875, 2128, 2130, 2131, 2126,
- 2133, 1119, 127068, 2114, 2116, 2455, 0, 2122, 2123, 2124, 2125, 127486,
- 8714, 983820, 2113, 0, 2115, 128177, 127907, 43713, 5052, 66220, 5821,
- 6186, 65778, 65775, 5051, 65773, 1429, 42647, 5050, 302, 388, 41115, 735,
- 6637, 5907, 65088, 0, 12726, 74594, 9117, 983181, 12003, 5513, 6666,
- 5053, 74230, 5510, 78451, 0, 78447, 2470, 78437, 0, 1925, 0, 92237,
- 74807, 0, 5048, 5047, 0, 0, 0, 92313, 0, 74497, 92395, 8089, 6929, 639,
- 983563, 68179, 64442, 0, 92348, 4599, 41402, 6674, 43397, 43294, 1476,
- 648, 0, 65819, 3233, 0, 41782, 6951, 94017, 983976, 3530, 9750, 128317,
- 0, 6656, 42618, 0, 5046, 8512, 65856, 74261, 8967, 0, 5045, 42026, 1916,
- 7986, 5044, 120556, 9006, 13128, 5043, 0, 7853, 74068, 74004, 9669,
- 12341, 12703, 8402, 0, 119070, 917600, 41750, 3586, 64508, 43148, 0, 0,
- 119606, 67983, 13296, 517, 0, 128534, 194946, 41528, 123, 65454, 0, 0,
- 74478, 10531, 7784, 41526, 10829, 73991, 8057, 1126, 73895, 0, 194591, 0,
- 3925, 4251, 8069, 10517, 120439, 489, 0, 4250, 120441, 120452, 43151,
- 983178, 194851, 66200, 0, 0, 0, 78423, 0, 0, 8711, 6183, 0, 0, 0, 120448,
- 7623, 118925, 118889, 9235, 12760, 74176, 69662, 66445, 43540, 10062,
- 3743, 11514, 11078, 0, 12136, 0, 126597, 120435, 0, 7726, 0, 19922, 267,
- 3393, 42198, 1371, 194849, 69233, 2458, 0, 6201, 0, 41074, 4266, 10652,
- 41612, 41077, 3402, 9050, 3398, 0, 983348, 0, 3391, 41075, 2476, 0,
- 128017, 0, 10625, 0, 12767, 13017, 78743, 64261, 64934, 127537, 13014,
- 13013, 0, 6673, 0, 0, 0, 12438, 0, 983342, 0, 983880, 126638, 9053,
- 13015, 74523, 0, 704, 66215, 6195, 983828, 6660, 78758, 917760, 917793,
- 42212, 12629, 11435, 0, 55256, 65538, 0, 127940, 983341, 74547, 126585,
- 65448, 78100, 12948, 119001, 195002, 119238, 195004, 78099, 127085, 0,
- 128320, 4287, 8276, 4902, 1131, 0, 78458, 66728, 1816, 0, 42533, 168,
- 42845, 4898, 64298, 983141, 0, 4901, 1821, 0, 578, 3653, 0, 791, 9162,
- 6977, 0, 78889, 74561, 0, 73731, 8354, 43590, 119303, 983449, 7557,
- 119339, 119301, 8234, 7241, 0, 120671, 119167, 194996, 12811, 65925,
- 3946, 78078, 10998, 78080, 673, 194867, 64397, 128276, 74599, 78449,
- 8890, 194977, 194976, 2448, 78085, 10267, 8424, 2452, 78083, 128824,
- 8729, 78456, 0, 7845, 917917, 71302, 4408, 4122, 6772, 11039, 8723,
- 194990, 71310, 119302, 731, 119304, 92286, 2438, 64855, 119300, 119299,
- 1175, 0, 42135, 373, 119172, 2119, 11457, 11521, 7723, 0, 0, 0, 41952, 0,
- 5273, 2127, 5269, 6337, 5202, 2404, 5267, 42823, 11291, 19915, 5277,
- 12963, 127864, 6189, 4125, 1314, 12133, 120340, 118873, 1271, 983640, 0,
- 66024, 41482, 3864, 74539, 0, 3879, 0, 12978, 4166, 4574, 0, 7567, 7459,
- 983160, 41390, 5384, 41882, 67647, 92548, 5759, 983912, 0, 41388, 64446,
- 41392, 64288, 41387, 0, 8706, 5552, 983187, 700, 0, 5553, 0, 7088, 5356,
- 7499, 68007, 66596, 74066, 0, 10263, 5554, 0, 12344, 10311, 78113, 6665,
- 92626, 0, 7618, 8517, 11455, 78440, 64632, 64447, 5555, 78088, 78093,
- 78091, 0, 42803, 65033, 9143, 6668, 195067, 67995, 195069, 656, 195071,
- 65037, 4577, 64624, 0, 0, 0, 983649, 4269, 73885, 917775, 42846, 69644,
- 950, 0, 92273, 66580, 118895, 66683, 10554, 917778, 119121, 0, 5098,
- 917770, 0, 119099, 5097, 4935, 9848, 10381, 0, 128870, 983701, 3651, 0,
- 120730, 127556, 5102, 5101, 10269, 12983, 8138, 4517, 1932, 5100, 1439,
- 12093, 1247, 10034, 195064, 5099, 78373, 1441, 42087, 3063, 650, 0, 7838,
- 0, 195041, 195040, 119142, 9031, 120790, 128582, 9078, 8545, 66356,
- 128799, 0, 9154, 9118, 126543, 0, 2676, 2277, 0, 73812, 6190, 8599,
- 195053, 69918, 10795, 9857, 7014, 9856, 195033, 92620, 12129, 0, 8481, 0,
- 6202, 195035, 10920, 128237, 5203, 195039, 195038, 5108, 5107, 65818,
- 66019, 9762, 0, 5541, 74772, 0, 12613, 5284, 6657, 207, 128806, 4275,
- 74819, 854, 68147, 74381, 0, 78786, 5103, 127861, 64348, 41368, 43974,
- 488, 69811, 0, 71339, 10157, 0, 43034, 11438, 64674, 0, 92694, 68431,
- 41771, 5106, 6669, 8504, 65154, 69813, 41367, 5105, 127509, 69720, 6476,
- 5104, 983749, 304, 3176, 119010, 0, 932, 120633, 6567, 238, 69656,
- 195011, 194595, 19905, 120577, 195015, 78870, 41044, 67640, 194902,
- 42055, 9912, 65939, 10670, 74093, 13273, 0, 12552, 195019, 8803, 309,
- 6622, 8151, 10858, 78706, 67636, 0, 12568, 0, 12553, 10814, 43275, 6950,
- 9712, 68680, 43970, 983198, 65165, 92725, 0, 66466, 0, 0, 0, 66725, 6191,
- 11351, 10437, 11316, 67634, 43763, 0, 41754, 67635, 9370, 2720, 194975,
- 68462, 8232, 118817, 0, 3222, 0, 0, 0, 66663, 0, 0, 10834, 0, 0, 65732,
- 94095, 917547, 92682, 67679, 195020, 0, 7781, 41383, 64568, 0, 120738,
- 12077, 0, 64586, 917620, 42396, 55255, 3475, 128035, 2479, 0, 3632,
- 120728, 10698, 8376, 3648, 194960, 74844, 67639, 3636, 67894, 3650, 8837,
- 65229, 1843, 42283, 43250, 41562, 9100, 74548, 917630, 3640, 127190,
- 42321, 7284, 194974, 194973, 194950, 194949, 194952, 194951, 126649,
- 194953, 42080, 2529, 0, 0, 0, 42083, 120678, 68398, 194957, 67619, 66367,
- 194958, 9634, 92380, 9988, 0, 41068, 0, 4295, 65264, 68006, 0, 92545, 0,
- 785, 8236, 128647, 9027, 68160, 67623, 64383, 120265, 925, 127156, 0,
- 41985, 41071, 9586, 0, 41984, 9217, 0, 0, 0, 9186, 2067, 4016, 983803, 0,
- 381, 12936, 0, 42077, 0, 69880, 5184, 42078, 194947, 10810, 128531, 4585,
- 19943, 5860, 67633, 0, 0, 812, 3615, 0, 5178, 44000, 120548, 78807, 5188,
- 74287, 67629, 3605, 10692, 1166, 64429, 42639, 924, 0, 67631, 42616,
- 120670, 2442, 10703, 78789, 67632, 917924, 12771, 12736, 12753, 66708,
- 73933, 67626, 42401, 0, 69872, 127373, 42288, 12751, 0, 8542, 13145,
- 194963, 2468, 66706, 41294, 3626, 3883, 64388, 42479, 0, 41117, 0, 92580,
- 0, 0, 67624, 0, 1290, 0, 65585, 2715, 806, 65208, 41884, 917883, 1318,
- 64731, 126578, 0, 0, 66325, 3465, 2405, 9240, 0, 12756, 65259, 0, 983781,
- 12752, 5833, 1432, 0, 41883, 73912, 9799, 0, 41886, 2480, 0, 2062,
- 127293, 6494, 5537, 78656, 0, 194587, 0, 1211, 0, 0, 0, 118832, 12318, 0,
- 0, 68005, 10622, 983779, 0, 78654, 6566, 78659, 0, 73780, 119196, 64864,
- 0, 78660, 0, 8284, 13081, 0, 3589, 42051, 4035, 6492, 92236, 4265, 6642,
- 3977, 74186, 41778, 836, 119216, 2488, 0, 4582, 0, 0, 41777, 12926,
- 983377, 7528, 10550, 0, 92706, 0, 10961, 0, 1374, 64878, 119014, 0,
- 42389, 41374, 2286, 0, 78492, 41377, 127909, 0, 400, 12597, 120586, 0, 0,
- 6661, 983145, 64827, 0, 73817, 390, 0, 71301, 983862, 3473, 7718, 0, 0,
- 0, 55285, 0, 0, 0, 11969, 983390, 127841, 6365, 1887, 6763, 983370, 8080,
- 7006, 0, 983371, 6757, 64351, 1544, 0, 6766, 64677, 120716, 983372, 6146,
- 0, 771, 983373, 0, 12812, 13168, 42272, 12200, 917927, 7904, 0, 953,
- 12917, 119560, 12300, 0, 11491, 9724, 10341, 983773, 9524, 7490, 11389,
- 7489, 3379, 0, 7487, 0, 471, 7484, 7482, 6753, 7480, 5764, 7478, 7477,
- 6501, 7475, 6918, 7473, 7472, 2474, 7470, 7468, 10232, 10615, 10213,
- 127288, 92357, 10049, 11834, 3544, 0, 6017, 65311, 127481, 120216, 13306,
- 10533, 7870, 73949, 7625, 0, 120544, 0, 0, 92660, 0, 0, 0, 19961, 2472,
- 42665, 92341, 0, 2139, 4256, 120776, 74380, 0, 42675, 42658, 12845, 0, 0,
- 65138, 119355, 67862, 0, 65671, 7083, 120008, 8066, 7678, 74865, 0, 0, 0,
- 0, 7186, 0, 120555, 0, 445, 120566, 128308, 0, 0, 8330, 0, 0, 42797,
- 983150, 120215, 0, 3902, 0, 1770, 0, 128866, 1560, 120209, 194972, 4584,
- 73843, 0, 11712, 10866, 118928, 1118, 71334, 0, 0, 1081, 7436, 68420,
- 7252, 0, 5996, 69921, 4903, 0, 41386, 5162, 119189, 1330, 0, 7139, 0,
- 12047, 41384, 0, 0, 1848, 4334, 6324, 41975, 64777, 10674, 12308, 12186,
- 0, 0, 983741, 12715, 68002, 983479, 126630, 2018, 66672, 41979, 66685,
- 119157, 68000, 92464, 0, 126984, 68001, 9334, 92705, 92315, 70101, 7975,
- 0, 77957, 0, 66621, 4884, 66597, 69732, 0, 0, 6313, 65513, 69857, 0, 0,
- 0, 2345, 43697, 463, 0, 0, 119607, 3117, 5460, 0, 0, 983387, 0, 42279,
- 194577, 0, 78415, 0, 195008, 983384, 13248, 0, 0, 0, 0, 0, 0, 5663, 0, 0,
- 0, 0, 2482, 1471, 0, 0, 42247, 12378, 73925, 69664, 0, 12374, 0, 0, 0,
- 983694, 2460, 0, 11944, 12376, 127868, 64679, 0, 12380, 10557, 64473,
- 5870, 0, 2024, 127180, 0, 0, 539, 0, 127765, 94052, 3853, 65180, 127923,
- 120796, 120245, 92324, 0, 8659, 0, 12474, 92579, 9503, 194969, 2478, 0,
- 4162, 0, 4260, 12953, 69633, 120089, 12470, 0, 74189, 2742, 12476, 11798,
- 10946, 127310, 5000, 0, 983579, 0, 69672, 8213, 74017, 7771, 6161, 68018,
- 6709, 0, 78885, 983708, 127971, 120582, 78547, 0, 10301, 10333, 10397, 0,
- 0, 73791, 0, 0, 0, 0, 119123, 4014, 12842, 73952, 12015, 127290, 8275,
- 3893, 983264, 0, 12210, 7221, 42147, 0, 74550, 74465, 64747, 118841, 0,
- 12516, 4444, 0, 92271, 74537, 10892, 8231, 0, 6473, 41968, 78388, 41973,
- 3591, 41969, 0, 2453, 128549, 92666, 64705, 0, 0, 10349, 10413, 43591,
- 41962, 3202, 74353, 0, 8316, 0, 0, 94060, 687, 0, 0, 0, 1840, 0, 68671,
- 119809, 4883, 285, 4723, 70099, 92692, 4459, 74577, 42921, 41720, 11089,
- 240, 19906, 0, 42323, 0, 9743, 120232, 13134, 126535, 0, 0, 0, 0, 42634,
- 983343, 43437, 3081, 11463, 120154, 0, 0, 10445, 0, 0, 66717, 2614, 9125,
- 119023, 1729, 0, 120236, 65221, 63883, 43334, 64852, 0, 65194, 66201, 0,
- 66578, 5001, 41879, 74427, 4121, 5003, 884, 66700, 63879, 4943, 5150,
- 73889, 74182, 127915, 643, 3086, 0, 42448, 42299, 58, 0, 917952, 120083,
- 63873, 8491, 0, 0, 983623, 4530, 42409, 7126, 194575, 2721, 120074,
- 119096, 19929, 0, 194574, 0, 4242, 4264, 120077, 120530, 66179, 42412,
- 65941, 13114, 64522, 10740, 3094, 0, 9754, 119102, 4437, 73948, 127074,
- 983238, 55280, 42174, 194925, 42430, 0, 0, 42355, 66026, 4306, 41380,
- 68432, 92586, 0, 66667, 127309, 0, 126521, 42200, 42566, 0, 0, 5088,
- 6948, 0, 8524, 0, 0, 12385, 0, 0, 69646, 1386, 64580, 11480, 6116, 65039,
- 65038, 12392, 65036, 8064, 0, 12101, 5822, 119004, 2080, 710, 77999,
- 11663, 1666, 42091, 119657, 12383, 43671, 42092, 68418, 4289, 0, 63896,
- 12061, 42096, 43621, 3362, 12377, 983832, 983834, 68449, 7461, 73901,
- 1244, 331, 73786, 12683, 10662, 0, 8112, 0, 65852, 0, 12379, 194877,
- 120818, 41964, 42208, 63843, 2084, 41965, 0, 65866, 4327, 0, 63840,
- 78549, 41220, 13032, 0, 584, 12933, 43177, 12373, 69855, 13000, 1351,
- 2935, 8698, 12665, 0, 1930, 0, 78229, 12427, 66514, 69859, 13031, 0,
- 63901, 0, 3657, 128572, 65202, 6000, 119206, 12426, 127181, 0, 41740,
- 12428, 41283, 41916, 119210, 0, 0, 12429, 6727, 0, 7562, 0, 5170, 0,
- 41755, 676, 0, 66704, 66664, 9978, 66491, 3536, 0, 9752, 92397, 6162, 0,
- 69228, 10113, 41829, 65886, 5159, 12422, 41832, 439, 43077, 0, 42207,
- 74549, 11796, 40970, 41830, 0, 917799, 8308, 917797, 917796, 0, 67864,
- 917801, 917800, 12336, 4135, 69805, 341, 2727, 4129, 3539, 0, 63861, 0,
- 7913, 0, 63859, 4131, 63868, 0, 63867, 4133, 11371, 210, 4600, 0, 74560,
- 4137, 8082, 78506, 119062, 78504, 6704, 4591, 128029, 0, 0, 9680, 0,
- 120623, 561, 12159, 195, 78508, 41501, 0, 42031, 5719, 7172, 42687, 8368,
- 0, 41499, 0, 0, 42242, 41498, 917794, 42025, 78565, 65805, 42463, 0,
- 2924, 0, 120510, 0, 0, 119213, 73941, 0, 42330, 917784, 3969, 0, 0, 7169,
- 1992, 9652, 73977, 7246, 42086, 126615, 2219, 0, 0, 128801, 194837, 0,
- 327, 0, 9042, 917777, 917776, 65148, 12433, 917781, 127276, 917779,
- 12431, 8668, 12434, 983835, 917782, 5999, 0, 7712, 12432, 128243, 43653,
- 1726, 1015, 0, 8212, 0, 128014, 42423, 119066, 0, 128108, 66709, 0, 8811,
- 927, 0, 0, 12436, 983245, 42021, 0, 0, 1299, 12240, 42350, 65143, 0,
- 195016, 0, 78197, 11348, 0, 78037, 9194, 983184, 0, 19914, 12179, 983812,
- 2296, 194923, 63836, 63832, 917773, 10967, 63816, 2594, 3444, 63817,
- 64651, 0, 41503, 127478, 11265, 0, 120756, 194922, 0, 5664, 3972, 0, 0,
- 0, 128508, 12416, 917764, 119608, 10816, 917769, 917768, 12418, 74111,
- 3882, 8532, 917771, 1573, 128648, 119847, 4596, 66339, 12417, 66001,
- 65343, 126491, 12414, 8287, 68219, 195017, 68108, 1143, 119169, 119846,
- 12415, 6626, 42763, 0, 118884, 9021, 120783, 0, 11724, 0, 0, 127104,
- 126619, 0, 0, 8027, 10997, 9171, 12741, 11400, 71305, 194799, 0, 128239,
- 0, 128881, 119604, 127523, 120190, 194773, 67608, 128214, 42368, 0, 7715,
- 3881, 41487, 12118, 42514, 68651, 0, 983895, 3009, 41476, 41489, 69825,
- 3007, 1448, 3018, 194809, 3889, 8521, 5083, 5082, 119859, 120184, 8519,
- 983241, 3014, 5081, 65853, 120715, 0, 68014, 69951, 5079, 64802, 42210,
- 4597, 65532, 11828, 120185, 12371, 0, 8407, 0, 10805, 8518, 10779,
- 120188, 71303, 983933, 12367, 42170, 0, 92557, 629, 1924, 0, 12037,
- 74366, 5987, 8462, 8005, 12365, 63933, 69735, 120815, 12369, 10649,
- 67981, 5077, 120174, 10880, 63927, 5075, 917881, 0, 65075, 0, 11007,
- 983705, 66659, 92607, 0, 66684, 0, 3434, 4954, 1904, 0, 5266, 126980,
- 5272, 10499, 4507, 9578, 63923, 120177, 7979, 0, 9831, 0, 194926, 461,
- 9803, 0, 4504, 1505, 0, 6325, 5276, 43021, 120488, 0, 55236, 0, 66461,
- 5177, 41324, 12055, 8722, 0, 41327, 0, 66695, 4114, 409, 4383, 8900,
- 8948, 41325, 0, 721, 10182, 9108, 71311, 0, 119185, 42229, 194912, 0,
- 5998, 0, 42353, 74825, 0, 12587, 94104, 78571, 0, 71328, 194562, 41576,
- 42215, 78570, 119207, 0, 8578, 5995, 7573, 41575, 74789, 74752, 63944,
- 63949, 64767, 2670, 4167, 194796, 11723, 0, 74120, 0, 65076, 938, 43414,
- 73854, 11737, 9721, 0, 0, 0, 11742, 2419, 0, 11493, 12334, 194913, 4153,
- 12302, 10793, 5250, 12407, 11978, 4404, 9189, 12401, 42007, 5775, 6759,
- 65806, 43997, 0, 42002, 12404, 983553, 0, 4940, 12410, 7683, 1167, 73729,
- 4983, 120507, 861, 0, 0, 0, 0, 43757, 43370, 0, 0, 11956, 0, 0, 0, 9616,
- 6631, 0, 12816, 43759, 42218, 12710, 68674, 12721, 4101, 66185, 0, 5992,
- 7616, 195044, 0, 12577, 0, 983884, 853, 42693, 195014, 0, 983647, 5016,
- 43535, 63893, 42835, 9491, 917913, 0, 917914, 0, 12712, 7105, 127807,
- 65060, 120797, 9900, 7750, 0, 194919, 0, 127830, 0, 64778, 12585, 10565,
- 128151, 12177, 0, 0, 0, 77824, 0, 4900, 127874, 12878, 92630, 8984, 4119,
- 74768, 8971, 78593, 43113, 9702, 78594, 11025, 9245, 13048, 4927, 4138,
- 74185, 92481, 92710, 12397, 77827, 0, 13054, 12394, 0, 0, 0, 13053, 0,
- 3948, 10781, 1546, 0, 5010, 1680, 10507, 78590, 78583, 0, 0, 0, 194915,
- 7267, 0, 74833, 128181, 5993, 2819, 0, 12706, 77840, 1893, 7266, 63915,
- 7264, 7265, 0, 1363, 0, 63997, 63910, 63996, 3077, 0, 0, 1512, 69929,
- 12589, 41479, 128313, 0, 43339, 73776, 9836, 120727, 0, 41481, 43335,
- 7832, 42343, 3090, 43337, 817, 1664, 1850, 128841, 3079, 11340, 42408,
- 42447, 127140, 120020, 42307, 12386, 42304, 917555, 0, 12389, 0, 92366,
- 41996, 11526, 63985, 5864, 1147, 63992, 42887, 1987, 92718, 5480, 7858,
- 11653, 4116, 12391, 66193, 0, 4939, 12384, 0, 0, 41686, 63905, 119601,
- 194688, 983190, 0, 12649, 0, 0, 8247, 507, 91, 2042, 120775, 43643,
- 194689, 66028, 10036, 41844, 119813, 774, 119829, 0, 119815, 5994, 12539,
- 0, 78375, 120597, 119833, 983105, 119600, 0, 0, 7719, 6026, 2486, 128312,
- 119808, 162, 0, 65219, 41073, 9687, 41681, 6304, 119812, 66196, 194881,
- 5262, 0, 55233, 12681, 42379, 0, 7534, 12219, 0, 127528, 42810, 10492, 0,
- 983661, 0, 43119, 0, 120753, 12403, 2500, 195013, 0, 4899, 12729, 0, 0,
- 74113, 2343, 4103, 19946, 74112, 77851, 13112, 0, 195012, 12859, 70087,
- 120148, 66369, 5861, 127758, 11999, 12400, 0, 983839, 12645, 5146, 11320,
- 68410, 6748, 65040, 0, 64184, 12974, 64183, 67613, 120645, 5147, 0, 0,
- 74524, 0, 1928, 0, 67649, 5991, 3445, 67609, 4976, 64176, 0, 67610, 8241,
- 0, 77868, 4206, 0, 0, 0, 128298, 0, 10138, 0, 0, 8897, 120234, 0, 8357,
- 4124, 77862, 65836, 120641, 127926, 77859, 0, 0, 1123, 963, 41553, 10120,
- 12405, 120150, 92664, 398, 13278, 9723, 6366, 120311, 7945, 0, 4402,
- 9970, 12402, 983136, 42392, 1305, 12408, 0, 44007, 0, 0, 41464, 12411,
- 12969, 120824, 41465, 983565, 8528, 1575, 0, 63955, 165, 3024, 41467,
- 119163, 0, 9093, 0, 9147, 128787, 63958, 0, 9148, 9692, 4096, 53, 8296,
- 6750, 195018, 0, 9594, 0, 0, 43527, 0, 727, 194703, 195023, 5805, 0,
- 6726, 0, 42176, 12370, 11655, 119095, 10591, 2280, 0, 12372, 120642,
- 120307, 0, 92343, 0, 12366, 10963, 6066, 1329, 0, 3052, 9220, 0, 64478,
- 194701, 10803, 4132, 120306, 68474, 92473, 0, 983313, 74837, 120155,
- 1499, 0, 8055, 42740, 63965, 0, 63962, 74042, 8924, 43123, 5988, 3660,
- 63969, 11781, 42718, 8788, 1357, 64851, 65743, 0, 8774, 0, 127086, 9941,
- 120172, 0, 1933, 69655, 9564, 0, 92435, 73866, 0, 0, 2487, 67614, 3121,
- 1804, 3311, 67615, 70081, 78302, 12220, 67616, 120598, 127475, 0, 68200,
- 6675, 128144, 0, 67592, 120685, 0, 64771, 1198, 9132, 0, 64619, 510,
- 64663, 0, 0, 4561, 2101, 1398, 0, 92554, 74034, 41569, 92684, 11406,
- 8167, 12127, 0, 840, 0, 126518, 7101, 6967, 0, 194898, 9796, 0, 333,
- 69891, 0, 8144, 2117, 0, 983595, 12406, 0, 19931, 119089, 6678, 7769, 0,
- 12621, 0, 127366, 10227, 4764, 43101, 9981, 0, 40986, 4127, 66487, 0,
- 42202, 12754, 195022, 0, 0, 94097, 67594, 2048, 12944, 4050, 67595,
- 917967, 43102, 10581, 12985, 4533, 195021, 74003, 6490, 0, 12038, 0, 0,
- 120704, 65461, 9798, 69704, 0, 1948, 69841, 0, 952, 128235, 0, 0, 120802,
- 6449, 9494, 120313, 0, 43098, 4843, 8142, 64160, 4098, 64170, 0, 0, 3436,
- 119973, 0, 12817, 67597, 6676, 3930, 42615, 0, 0, 67598, 0, 0, 0, 65591,
- 41581, 65916, 1453, 0, 0, 0, 8500, 42222, 120142, 73743, 120400, 4317,
- 11543, 67676, 64676, 0, 0, 67606, 119083, 0, 42217, 13102, 0, 66003,
- 6672, 0, 0, 0, 983747, 63841, 9613, 9001, 4526, 11274, 67601, 64520,
- 64210, 6664, 78704, 42056, 10228, 64957, 11281, 0, 3807, 1469, 66640,
- 65381, 42197, 4988, 42372, 0, 9598, 904, 352, 42225, 1451, 8061, 8453,
- 4134, 0, 74847, 66576, 127916, 0, 10520, 8575, 9960, 1201, 127289, 12846,
- 127291, 127292, 11919, 64962, 127287, 43739, 127281, 8511, 9460, 823,
- 11587, 12305, 0, 64695, 127305, 12387, 1253, 13183, 65766, 500, 42783,
- 65765, 64208, 64369, 65760, 65761, 119585, 11606, 64784, 11702, 66498,
- 9821, 64304, 0, 5152, 11048, 7533, 68366, 64410, 92305, 0, 4323, 120062,
- 92669, 71332, 127052, 42587, 42214, 41394, 0, 4763, 4112, 118935, 0,
- 5260, 43143, 94038, 326, 120131, 68423, 0, 10771, 2876, 74074, 92530,
- 194924, 41398, 7382, 9802, 127077, 127076, 453, 41396, 120524, 42720,
- 12140, 9572, 0, 7003, 194883, 42334, 7704, 126490, 194885, 43144, 4123,
- 8494, 43146, 9977, 0, 0, 65759, 10765, 64061, 4465, 9808, 64056, 65582,
- 4126, 0, 9521, 9589, 64755, 0, 64020, 126604, 10464, 0, 0, 194869, 64514,
- 11528, 64024, 128072, 679, 64013, 0, 5850, 758, 7536, 0, 92234, 41441,
- 10693, 64006, 983567, 64005, 4058, 119019, 126487, 64660, 0, 119050, 0,
- 983069, 1139, 43298, 64027, 64029, 8970, 0, 9934, 983094, 10774, 128020,
- 42201, 12421, 128216, 0, 1852, 3057, 64046, 73744, 64034, 64039, 0, 0, 0,
- 194899, 92322, 7645, 12854, 74338, 3496, 0, 0, 0, 9102, 627, 127795,
- 6158, 8327, 74553, 66632, 12419, 13309, 11570, 127811, 19960, 11696, 0,
- 1018, 118970, 194909, 194897, 1682, 194896, 194911, 42756, 6765, 194906,
- 0, 0, 73814, 11412, 6768, 10728, 194830, 71316, 118863, 43311, 64966,
- 11577, 0, 43040, 1833, 11576, 0, 74779, 0, 185, 65085, 74533, 64754,
- 194848, 7535, 8085, 42525, 120387, 9749, 41701, 6131, 1949, 4117, 7847,
- 120489, 194711, 64483, 65693, 0, 0, 0, 69695, 42240, 0, 126651, 42864,
- 126498, 64667, 41868, 1184, 0, 815, 11484, 127535, 67840, 983651, 0,
- 66197, 0, 10986, 64683, 983785, 0, 3455, 0, 0, 9879, 0, 0, 4158, 128050,
- 68166, 0, 0, 0, 0, 69645, 332, 118808, 0, 5142, 2407, 69643, 42199, 0,
- 92404, 74373, 0, 55217, 0, 63870, 43163, 0, 0, 92390, 42867, 1834, 0,
- 92461, 69817, 10940, 65249, 119040, 8662, 0, 0, 2652, 120527, 7164,
- 10784, 195093, 67674, 0, 92233, 92482, 194749, 74562, 917505, 1828,
- 74474, 120327, 78620, 8531, 12499, 6280, 12324, 118854, 65238, 68374,
- 4832, 65573, 0, 6279, 12508, 12904, 12502, 9161, 0, 1620, 64436, 3601,
- 195094, 128073, 983562, 609, 11555, 983099, 12496, 127839, 74181, 4343,
- 12505, 0, 127863, 0, 11377, 239, 0, 637, 0, 0, 42671, 0, 0, 0, 43565,
- 71306, 126493, 12696, 128256, 0, 94062, 12929, 0, 712, 0, 4197, 983206,
- 42818, 126632, 0, 120490, 0, 119137, 1506, 43562, 0, 92491, 0, 12651, 0,
- 64628, 74517, 12058, 74084, 917838, 7494, 0, 4924, 65592, 118844, 0,
- 127088, 355, 9719, 127087, 13066, 64796, 0, 0, 12033, 42178, 0, 69760,
- 42571, 92635, 0, 0, 0, 0, 0, 127176, 3178, 0, 0, 92704, 0, 9080, 127000,
- 120352, 0, 68209, 0, 11082, 0, 5699, 195100, 66000, 9488, 65166, 119112,
- 0, 0, 0, 0, 71313, 0, 5265, 69235, 0, 11487, 67858, 12464, 0, 43045, 0,
- 0, 43345, 0, 10770, 118994, 6807, 465, 9829, 0, 74348, 0, 43346, 8116,
- 795, 0, 0, 12462, 10930, 10831, 0, 118952, 64362, 74334, 983602, 120811,
- 0, 12468, 8607, 1008, 0, 10092, 195078, 917842, 67855, 55257, 73771,
- 1766, 11282, 11996, 1820, 4547, 0, 0, 0, 0, 13223, 128665, 64595, 127294,
- 0, 92311, 4345, 12616, 0, 0, 0, 74467, 0, 0, 0, 5382, 0, 0, 0, 119060,
- 64953, 5406, 19920, 69897, 66510, 3590, 194864, 1130, 0, 0, 42016, 11823,
- 43023, 0, 118896, 7742, 0, 13280, 71323, 9326, 73826, 5310, 74812, 78584,
- 92229, 8959, 43589, 6747, 66723, 0, 8568, 0, 120496, 73816, 120803,
- 983848, 42670, 0, 11621, 12460, 0, 120631, 0, 43063, 74519, 127182, 0,
- 73917, 7843, 69783, 11689, 5410, 5783, 10468, 8403, 5400, 11594, 128247,
- 0, 118990, 10491, 69842, 64412, 0, 0, 5587, 42865, 64404, 8268, 4923,
- 65086, 8981, 12382, 42133, 120755, 9706, 69738, 0, 66610, 10461, 12103,
- 0, 8642, 0, 42766, 983866, 2210, 9983, 0, 94009, 0, 0, 0, 7398, 41515, 0,
- 11802, 8041, 1461, 910, 119133, 0, 6749, 3658, 93964, 120525, 0, 7617,
- 194841, 12888, 127983, 67668, 13143, 0, 9193, 11097, 5703, 0, 41517,
- 41504, 41519, 10016, 64305, 0, 65864, 623, 781, 670, 10660, 5769, 613,
- 7543, 120279, 477, 41083, 92521, 0, 592, 1578, 12459, 43449, 0, 0, 8225,
- 0, 654, 11345, 653, 652, 0, 647, 0, 633, 120744, 0, 126472, 12480, 43243,
- 0, 39, 12487, 0, 120529, 74199, 12482, 0, 12489, 0, 3195, 5550, 983554,
- 7897, 0, 1203, 74396, 1813, 64544, 41311, 12090, 0, 2877, 0, 0, 1675,
- 69840, 0, 0, 0, 10070, 10595, 0, 119077, 194777, 983611, 0, 0, 0, 43244,
- 0, 0, 983916, 119561, 983078, 0, 194921, 128160, 9939, 0, 983151, 77860,
- 0, 0, 270, 0, 10714, 0, 0, 0, 0, 0, 65372, 0, 74038, 119558, 6273, 66679,
- 364, 9595, 194908, 0, 0, 707, 0, 0, 9282, 66489, 224, 0, 68670, 9332,
- 4966, 68677, 0, 68644, 0, 3841, 68634, 0, 10732, 68640, 850, 4972, 0,
- 12890, 2909, 68619, 44008, 68627, 983718, 11544, 10203, 9608, 0, 0,
- 11962, 194694, 12507, 1196, 128687, 128311, 777, 120187, 4375, 65271,
- 67678, 0, 12198, 0, 64824, 119343, 983236, 9454, 63778, 8658, 42528,
- 78000, 2705, 917975, 41520, 0, 0, 11986, 7765, 42502, 8280, 74520, 2701,
- 0, 127002, 5767, 0, 0, 9809, 8353, 63747, 66701, 63772, 983814, 63745,
- 1748, 63770, 0, 0, 0, 65542, 63766, 55244, 3061, 0, 63764, 63787, 9067,
- 6096, 0, 7694, 0, 7257, 63768, 3485, 12987, 0, 127522, 120628, 63807,
- 1591, 0, 6386, 63783, 0, 0, 92535, 0, 0, 0, 74575, 0, 65719, 13083,
- 64574, 65012, 0, 1640, 12495, 66691, 7624, 3138, 10996, 92247, 1922, 0,
- 12498, 10987, 69936, 69939, 3894, 65543, 0, 194842, 983588, 493, 0,
- 43197, 1717, 4228, 479, 10303, 74020, 0, 917935, 10335, 3520, 917932,
- 12490, 64315, 0, 127039, 12493, 6233, 42681, 1002, 12491, 0, 64911,
- 92615, 2096, 65120, 0, 78219, 983081, 8378, 11632, 127041, 66213, 63864,
+ 43567, 74056, 120266, 11833, 119919, 7216, 65232, 7217, 251, 7218, 7895,
+ 4395, 43538, 119926, 119834, 119928, 7213, 68476, 7214, 7215, 5879,
+ 74141, 8880, 7685, 66459, 120173, 65540, 67359, 625, 8187, 42861, 1113,
+ 7236, 7915, 3630, 120176, 8179, 70163, 67886, 9316, 10980, 2489, 65624,
+ 8150, 1359, 67652, 70464, 127330, 73756, 5042, 5041, 42769, 12084,
+ 127324, 127321, 74410, 127319, 127320, 127317, 121284, 127315, 12283,
+ 1616, 3795, 67732, 8795, 66245, 0, 0, 0, 1138, 73905, 12677, 128280,
+ 67724, 3239, 66893, 128818, 0, 8431, 0, 42164, 71229, 11778, 12620, 6826,
+ 73773, 70169, 5040, 127969, 0, 67094, 78420, 0, 5039, 983241, 78418, 0,
+ 5038, 0, 983862, 13184, 43960, 120931, 64648, 0, 9359, 78416, 917623,
+ 128770, 65157, 6662, 0, 70182, 3863, 73909, 4835, 55266, 43432, 127822,
+ 4309, 7127, 194569, 0, 194568, 1301, 0, 42589, 569, 128804, 73813, 711,
+ 4389, 7133, 120643, 73880, 11610, 11368, 0, 194570, 41331, 1006, 74240,
+ 67224, 1550, 8201, 70453, 7627, 5499, 5031, 77908, 42738, 65784, 43957,
+ 65267, 3758, 0, 65781, 64734, 67222, 2440, 43955, 70787, 8449, 0, 5008,
+ 983572, 2118, 126508, 12121, 8255, 5512, 73875, 2128, 2130, 2131, 2126,
+ 2133, 1119, 121250, 2114, 2116, 2455, 113798, 2122, 2123, 2124, 2125,
+ 127486, 8714, 983820, 2113, 195049, 2115, 128177, 127907, 43713, 5052,
+ 66220, 5821, 6186, 65778, 65775, 5051, 65773, 1429, 42647, 5050, 302,
+ 388, 41115, 735, 6637, 5907, 65088, 0, 12726, 74594, 9117, 983181, 12003,
+ 5513, 5109, 5053, 74230, 5510, 78451, 0, 78447, 2470, 78437, 0, 1925,
+ 71251, 92237, 74807, 983062, 5048, 5047, 194837, 983380, 74201, 92313,
+ 194802, 74497, 82982, 8089, 6929, 639, 82981, 68179, 64442, 70180, 82984,
+ 4599, 41402, 6674, 43397, 43294, 1476, 648, 0, 65819, 3233, 0, 41782,
+ 6951, 94017, 129197, 3530, 9750, 128317, 120991, 6656, 42618, 70175,
+ 5046, 8512, 65856, 74261, 8967, 0, 5045, 42026, 1916, 7986, 5044, 120556,
+ 9006, 13128, 5043, 121335, 7853, 67808, 74004, 9669, 12341, 12703, 8402,
+ 128883, 119070, 70174, 41750, 3586, 64508, 43148, 0, 127971, 119606,
+ 67983, 13296, 517, 0, 128467, 194946, 41528, 123, 65454, 0, 121326,
+ 74478, 10531, 7784, 41526, 10829, 73991, 8057, 1126, 73895, 194857,
+ 194591, 0, 3925, 4251, 8069, 10517, 71112, 489, 71110, 4250, 92266,
+ 120452, 43151, 983178, 92738, 66200, 0, 0, 125026, 74298, 128879, 983476,
+ 8711, 6183, 83448, 983952, 72402, 120448, 7623, 118925, 66376, 9235,
+ 12760, 74176, 69662, 66445, 43540, 10062, 3743, 11514, 11078, 0, 12136,
+ 0, 126597, 120434, 194850, 7726, 195095, 19922, 267, 3393, 42198, 1371,
+ 194849, 69233, 2458, 0, 6201, 0, 41074, 4266, 10652, 41612, 41077, 3402,
+ 9050, 3398, 128424, 983350, 0, 3391, 41075, 2476, 0, 128017, 0, 10625,
+ 129106, 12767, 13017, 78743, 64261, 64934, 70152, 13014, 13013, 121198,
+ 6673, 0, 0, 121324, 12438, 0, 983344, 83106, 71128, 120062, 9053, 13015,
+ 74523, 0, 704, 66215, 6195, 74949, 6660, 78758, 917760, 74861, 42212,
+ 12629, 11435, 0, 55256, 65538, 67343, 121437, 129086, 43876, 92941,
+ 65448, 78100, 12948, 119001, 128595, 43949, 120048, 78099, 127085, 0,
+ 128320, 4287, 8276, 4902, 1131, 983606, 78458, 66728, 1816, 43952, 42533,
+ 168, 42845, 4898, 64298, 43950, 78105, 4901, 1821, 43951, 578, 3653,
+ 128946, 791, 9162, 6977, 74196, 78889, 70160, 0, 73731, 8354, 43590,
+ 119303, 983451, 7557, 119108, 67378, 8234, 7241, 128608, 113735, 119167,
+ 194996, 12811, 65925, 3946, 78078, 10998, 78080, 673, 194867, 64397,
+ 128276, 74599, 78449, 8890, 194977, 194976, 2448, 78085, 10267, 8424,
+ 2452, 78083, 67217, 8729, 78456, 0, 7845, 126564, 71302, 4408, 4122,
+ 6772, 11039, 8723, 65896, 71310, 119302, 731, 119304, 71904, 2438, 64855,
+ 119300, 119299, 1175, 0, 42135, 373, 119172, 2119, 11457, 11521, 7723,
+ 128639, 0, 0, 41952, 93023, 5273, 2127, 5269, 6337, 5202, 2404, 5267,
+ 42823, 11291, 19915, 5277, 12963, 70320, 6189, 4125, 1314, 12133, 120340,
+ 118873, 1271, 983640, 129112, 66024, 41482, 3864, 9204, 0, 3879, 0,
+ 12978, 4166, 4574, 128111, 7567, 7459, 78128, 41390, 5384, 41882, 67647,
+ 70154, 5759, 194869, 121413, 41388, 64446, 41392, 64288, 41387, 67201,
+ 8706, 5552, 68837, 700, 0, 5553, 0, 7088, 5356, 7499, 68007, 66596,
+ 74066, 67251, 10263, 5554, 0, 12344, 10311, 78113, 6665, 11115, 121035,
+ 7618, 8517, 11455, 78440, 64632, 64447, 5555, 78088, 78093, 78091, 0,
+ 42803, 65033, 9143, 6668, 67288, 67995, 195069, 656, 195071, 65037, 4577,
+ 64624, 0, 0, 71912, 194908, 4269, 73885, 917775, 42846, 69644, 950, 0,
+ 92273, 66580, 77992, 66683, 10554, 119008, 119121, 6832, 5098, 917768,
+ 194668, 70403, 5097, 4935, 9848, 10381, 0, 67296, 92896, 3651, 0, 67294,
+ 70848, 5102, 5101, 10269, 12983, 8138, 4517, 1932, 5100, 1439, 12093,
+ 1247, 10034, 121340, 5099, 78373, 1441, 42087, 3063, 650, 119953, 7838,
+ 0, 128655, 195040, 119142, 9031, 70829, 78427, 9078, 8545, 66356, 128799,
+ 194923, 9154, 9118, 126543, 119586, 2676, 2277, 128422, 68237, 6190,
+ 8599, 125118, 69918, 10795, 9857, 7014, 9856, 195033, 71903, 12129,
+ 126651, 8481, 83068, 6202, 67711, 10920, 113726, 5203, 195039, 195038,
+ 5108, 5107, 65818, 66019, 9762, 11205, 5541, 74772, 0, 12613, 5284, 6657,
+ 207, 121206, 4275, 74819, 854, 68147, 74381, 66816, 78786, 5103, 127861,
+ 64348, 41368, 43974, 488, 69811, 0, 71339, 10157, 194612, 43034, 11438,
+ 64674, 0, 70158, 68431, 41771, 5106, 6669, 8504, 65154, 69813, 41367,
+ 5105, 65266, 69720, 6476, 5104, 983749, 304, 3176, 78871, 70149, 932,
+ 113683, 6567, 238, 69656, 78432, 194595, 19905, 43850, 195015, 78870,
+ 41044, 67640, 67302, 42055, 9912, 65939, 10670, 74093, 13273, 0, 12552,
+ 93039, 8803, 309, 6622, 8151, 10858, 78706, 67636, 70171, 12568, 127917,
+ 12553, 10814, 43275, 6950, 9712, 68680, 43970, 126535, 65165, 92725, 0,
+ 66466, 124986, 127784, 0, 66725, 6191, 11351, 10437, 11316, 67634, 43763,
+ 0, 41754, 67635, 9370, 2720, 194600, 68462, 8232, 118817, 121056, 3222,
+ 121439, 121137, 0, 66663, 983047, 93067, 10834, 983127, 0, 65732, 94095,
+ 917547, 92682, 67679, 120734, 67309, 7781, 41383, 64568, 67311, 120738,
+ 12077, 74433, 64586, 917620, 42396, 55255, 3475, 67260, 2479, 67306,
+ 3632, 120728, 10698, 8376, 3648, 67263, 74844, 67639, 3636, 67894, 3650,
+ 8837, 65229, 1843, 42283, 43250, 41562, 9100, 74548, 68826, 3640, 127190,
+ 42321, 7284, 92880, 118987, 194950, 194949, 74115, 194951, 126649,
+ 194953, 42080, 2529, 0, 983784, 66010, 42083, 74952, 68398, 194957,
+ 67619, 66367, 194958, 9634, 92380, 9988, 0, 41068, 0, 4295, 65264, 68006,
+ 0, 67835, 0, 785, 8236, 128647, 9027, 68160, 67623, 64383, 120265, 925,
+ 127156, 0, 41985, 41071, 9586, 120988, 41984, 9217, 128372, 92510, 92218,
+ 9186, 2067, 4016, 983803, 0, 381, 12936, 0, 42077, 92985, 69880, 5184,
+ 42078, 194607, 10810, 128531, 4585, 19943, 5860, 67633, 121334, 127104,
+ 812, 3615, 72401, 5178, 44000, 92436, 78807, 5188, 74287, 67629, 3605,
+ 10692, 1166, 64429, 42639, 924, 127793, 67631, 42616, 120670, 2442,
+ 10703, 67317, 67632, 67316, 12771, 12736, 12753, 66708, 73933, 67626,
+ 42401, 194865, 69872, 127373, 42288, 12751, 74906, 8542, 13145, 194963,
+ 2468, 66706, 41294, 3626, 3883, 64388, 42479, 71220, 41117, 0, 92580,
+ 128624, 74939, 67624, 127976, 1290, 0, 65585, 2715, 806, 65208, 41884,
+ 917883, 1318, 64731, 78004, 0, 0, 66325, 3465, 2405, 9240, 983858, 12756,
+ 65259, 0, 983781, 12752, 5833, 1432, 11246, 41883, 73912, 9799, 917893,
+ 41886, 2480, 127906, 2062, 67326, 6494, 5537, 78656, 0, 194587, 124969,
+ 1211, 0, 120971, 67269, 118832, 12318, 129024, 113796, 68005, 10622,
+ 983779, 0, 68821, 6566, 71195, 0, 73780, 119196, 64864, 0, 78660, 0,
+ 8284, 13081, 119206, 3589, 42051, 4035, 6492, 83003, 4265, 6642, 3977,
+ 74186, 41778, 836, 92947, 2488, 125096, 4582, 0, 71426, 41777, 12926,
+ 983379, 7528, 10550, 113761, 92706, 983955, 10961, 93977, 1374, 64878,
+ 119014, 67720, 42389, 41374, 2286, 917604, 78492, 41377, 127909, 195047,
+ 400, 12597, 120586, 128097, 129071, 6661, 917961, 64827, 0, 73817, 390,
+ 0, 71301, 127292, 3473, 7718, 113755, 68814, 0, 55285, 73784, 66394, 0,
+ 11969, 120461, 127841, 6365, 1887, 6763, 92551, 8080, 7006, 0, 118902,
+ 6757, 64351, 1544, 67156, 6766, 64677, 120716, 67088, 6146, 74031, 771,
+ 120682, 0, 12812, 13168, 42272, 12200, 66423, 7904, 0, 953, 12917,
+ 119560, 12300, 67089, 11491, 9724, 10341, 983773, 9524, 7490, 11389,
+ 7489, 3379, 0, 7487, 194624, 471, 7484, 7482, 6753, 7480, 5764, 7478,
+ 7477, 6501, 7475, 6918, 7473, 7472, 2474, 7470, 7468, 10232, 10615,
+ 10213, 127288, 92357, 10049, 11834, 3544, 983785, 6017, 65311, 74935,
+ 120216, 13306, 10533, 7870, 73949, 7625, 194882, 120544, 0, 127950,
+ 92660, 983356, 77889, 0, 19961, 2472, 42665, 92341, 121133, 2139, 4256,
+ 120776, 74380, 43836, 42675, 42658, 12845, 6666, 70508, 65138, 119355,
+ 67862, 0, 65671, 7083, 120008, 8066, 7678, 74865, 125134, 120321, 127283,
+ 983396, 7186, 0, 120555, 0, 445, 120566, 66849, 125141, 0, 8330, 0, 0,
+ 42797, 113736, 120215, 83001, 3902, 0, 1770, 43959, 125067, 1560, 43958,
+ 92167, 4584, 73843, 0, 11712, 10866, 67092, 1118, 71334, 74888, 0, 1081,
+ 7436, 11147, 7252, 70093, 5996, 69921, 4903, 68142, 41386, 5162, 119189,
+ 1330, 128613, 7139, 0, 12047, 41384, 0, 0, 1848, 4334, 6324, 41975,
+ 64777, 10674, 12308, 12186, 0, 0, 983741, 12715, 68002, 194576, 83256,
+ 2018, 66672, 41979, 66685, 119157, 68000, 78490, 0, 126984, 68001, 9334,
+ 92705, 70800, 70101, 7975, 0, 77957, 0, 43494, 4884, 66597, 69732, 0,
+ 121010, 6313, 65513, 69857, 0, 0, 0, 2345, 43697, 463, 0, 127890, 68178,
+ 3117, 5460, 121423, 128717, 983389, 0, 42279, 127142, 126503, 78415,
+ 983228, 68524, 983386, 13248, 125027, 983843, 43956, 128415, 983153,
+ 121009, 5663, 71120, 128472, 128958, 0, 2482, 1471, 194583, 113747,
+ 42247, 12378, 73925, 69664, 71427, 12374, 121357, 127067, 0, 118828,
+ 2460, 71882, 11944, 12376, 92342, 64679, 92893, 12380, 10557, 64473,
+ 5870, 11122, 2024, 127180, 983391, 71879, 539, 0, 120302, 70120, 3853,
+ 65180, 127923, 120796, 120245, 92324, 0, 8659, 0, 12474, 67241, 9503,
+ 194969, 2478, 120248, 4162, 0, 4260, 12953, 69633, 82966, 12470, 92640,
+ 74189, 2742, 12476, 11798, 10946, 127310, 5000, 113687, 983579, 128190,
+ 69672, 8213, 43824, 7771, 6161, 68018, 6709, 194967, 78885, 119243,
+ 68235, 120582, 78547, 113709, 10301, 10333, 10397, 119044, 0, 73791, 0,
+ 83030, 0, 121482, 119123, 4014, 12842, 73952, 12015, 127290, 8275, 3893,
+ 74903, 120927, 12210, 7221, 42147, 74868, 74550, 71215, 64747, 118841,
+ 128086, 12516, 4444, 0, 92271, 74537, 10892, 8231, 0, 6473, 41968, 78388,
+ 41973, 3591, 41969, 83008, 2453, 118899, 92666, 64705, 71068, 0, 10349,
+ 10413, 43591, 41962, 3202, 74353, 129175, 8316, 129174, 0, 94060, 687,
+ 93055, 129074, 0, 1840, 127809, 68671, 11121, 4883, 285, 4723, 11175,
+ 92692, 4459, 74577, 42921, 41720, 11089, 240, 19906, 0, 42323, 74640,
+ 9743, 120232, 13134, 93065, 128956, 65931, 92579, 128329, 42634, 983345,
+ 43437, 3081, 11463, 120154, 0, 195013, 10445, 121322, 92969, 66717, 2614,
+ 9125, 71125, 1729, 129034, 72420, 65221, 63883, 43334, 64852, 124929,
+ 65194, 66201, 0, 66578, 5001, 41879, 74427, 4121, 5003, 884, 66700,
+ 63879, 4943, 5150, 73889, 73764, 4039, 643, 3086, 92533, 42448, 42299,
+ 58, 120084, 917952, 120083, 63873, 8491, 0, 0, 983623, 4530, 42409, 7126,
+ 194575, 2721, 120073, 119096, 19929, 118941, 128797, 92975, 4242, 4264,
+ 120077, 120530, 66179, 42412, 65941, 13114, 64522, 10740, 3094, 983199,
+ 9754, 119102, 4437, 73948, 127074, 983240, 55280, 42174, 127954, 42430,
+ 0, 983452, 42355, 66026, 4306, 41380, 68432, 92586, 68314, 66667, 119351,
+ 194982, 121172, 42200, 42566, 70000, 128928, 5088, 6948, 0, 8524, 125040,
+ 0, 12385, 0, 74926, 69646, 1386, 64580, 11480, 6116, 65039, 65038, 12392,
+ 65036, 8064, 127558, 12101, 5822, 119004, 2080, 710, 77999, 11663, 1666,
+ 42091, 119657, 12383, 43671, 42092, 68418, 4289, 127897, 63896, 12061,
+ 42096, 43621, 3362, 12377, 119934, 983834, 68449, 7461, 73901, 1244, 331,
+ 73786, 12683, 10662, 0, 8112, 0, 65852, 74629, 12379, 127107, 92930,
+ 41964, 42208, 63843, 2084, 41965, 70089, 65866, 4327, 0, 63840, 66413,
+ 41220, 13032, 92980, 584, 12933, 43177, 12373, 69855, 13000, 1351, 2935,
+ 8698, 12665, 0, 1930, 0, 78229, 12427, 66514, 69859, 13031, 0, 63901, 0,
+ 3657, 119611, 65202, 6000, 113786, 12426, 121058, 119935, 41740, 12428,
+ 41283, 41916, 119210, 128318, 0, 12429, 6727, 983948, 7562, 125129, 5170,
+ 983915, 41755, 676, 0, 66704, 66664, 9978, 66491, 3536, 0, 9752, 92397,
+ 6162, 78320, 69228, 10113, 41829, 65886, 5159, 12422, 41832, 439, 3072,
+ 917828, 42207, 74549, 11796, 40970, 41830, 125021, 70151, 8308, 917797,
+ 70807, 119258, 67864, 113696, 917800, 12336, 4135, 67231, 341, 2727,
+ 4129, 3539, 0, 63861, 0, 7913, 0, 63859, 4131, 63868, 129085, 63867,
+ 4133, 11371, 210, 4600, 983897, 74560, 4137, 8082, 78506, 119062, 78504,
+ 6704, 4591, 128029, 43873, 120753, 9680, 12937, 120623, 561, 12159, 195,
+ 68321, 41501, 194581, 42031, 5719, 7172, 42687, 8368, 128306, 41499,
+ 93068, 71047, 42242, 41498, 917794, 42025, 78565, 65805, 42463, 67182,
+ 2924, 67183, 120510, 0, 983972, 92766, 73941, 67186, 42330, 67187, 3969,
+ 121405, 0, 7169, 1992, 9652, 73977, 7246, 42086, 126615, 2219, 121349, 0,
+ 128801, 67180, 127569, 327, 121277, 9042, 917777, 917776, 65148, 12433,
+ 917781, 120222, 83129, 12431, 8668, 12434, 67194, 113812, 5999, 75013,
+ 7712, 12432, 128243, 43653, 1726, 1015, 74079, 8212, 128065, 113754,
+ 42423, 119066, 194613, 72398, 66709, 121061, 8811, 927, 92532, 0, 12436,
+ 120087, 42021, 0, 67644, 1299, 12240, 42350, 65143, 0, 195016, 127972,
+ 78197, 11348, 0, 78037, 9194, 983184, 0, 19914, 12179, 128740, 2296,
+ 128932, 63836, 63832, 917773, 10967, 63816, 2594, 3444, 63817, 11178,
+ 917584, 41503, 127478, 11265, 68295, 120756, 194922, 67285, 5664, 3972,
+ 120891, 128583, 129408, 67284, 12416, 917764, 119608, 10816, 917769,
+ 11210, 12418, 8586, 3882, 8532, 917771, 1573, 68081, 119847, 4596, 66339,
+ 12417, 66001, 65343, 126491, 12414, 8287, 68219, 195017, 68108, 1143,
+ 119169, 119846, 12415, 6626, 42763, 917594, 118884, 9021, 120783, 119931,
+ 11724, 127787, 0, 71122, 126619, 0, 983661, 8027, 10997, 9171, 12741,
+ 11400, 43943, 194799, 66833, 128239, 983707, 92557, 93976, 127523,
+ 120190, 1324, 67608, 128214, 42368, 983873, 7715, 3881, 41487, 12118,
+ 42514, 68651, 128210, 128594, 3009, 41476, 41489, 69825, 3007, 1448,
+ 3018, 194809, 3889, 8521, 5083, 5082, 119859, 78255, 8519, 121226, 3014,
+ 5081, 65853, 120715, 194992, 68014, 69951, 5079, 64802, 42210, 4597,
+ 65532, 11828, 120185, 12371, 11105, 8407, 67163, 10805, 8518, 10779,
+ 120188, 71303, 121240, 12367, 42170, 0, 67290, 629, 1924, 127098, 12037,
+ 67158, 5987, 8462, 8005, 12365, 63933, 69735, 120815, 12369, 10649,
+ 67981, 5077, 120174, 10880, 63927, 5075, 121109, 127300, 65075, 0, 11007,
+ 70851, 66659, 92607, 917933, 66684, 128063, 3434, 4954, 1904, 92679,
+ 5266, 126980, 5272, 10499, 4507, 9578, 63923, 120177, 7979, 0, 9831, 0,
+ 194926, 461, 9803, 42282, 4504, 1505, 127893, 6325, 5276, 43021, 120488,
+ 0, 55236, 92659, 66461, 5177, 41324, 12055, 8722, 120805, 41327, 983732,
+ 66695, 4114, 409, 4383, 8900, 8948, 41325, 74930, 721, 10182, 9108,
+ 71311, 0, 119185, 42229, 74963, 121014, 5998, 0, 42353, 74825, 0, 12587,
+ 94104, 78571, 74889, 71328, 128955, 41576, 42215, 78570, 74037, 0, 8578,
+ 5995, 7573, 41575, 74789, 74752, 63944, 63949, 64767, 2670, 4167, 194796,
+ 11723, 0, 74120, 126642, 65076, 938, 43414, 73854, 11737, 9721, 0, 67179,
+ 67168, 11742, 2419, 67177, 11493, 12334, 92494, 4153, 12302, 10793, 5250,
+ 12407, 11978, 4404, 9189, 12401, 42007, 5775, 6759, 65806, 43997, 0,
+ 42002, 12404, 68092, 74928, 4940, 12410, 7683, 1167, 73729, 4983, 120507,
+ 861, 67699, 74880, 68297, 983807, 43757, 43370, 129298, 0, 11956, 124967,
+ 121263, 70815, 9616, 6631, 92338, 12816, 43759, 42218, 12710, 68674,
+ 12721, 4101, 66185, 0, 5992, 7616, 195044, 0, 12577, 93017, 128289, 853,
+ 42693, 194647, 119027, 983284, 5016, 43535, 63893, 42835, 9491, 917913,
+ 0, 917914, 0, 12712, 7105, 127807, 65060, 66875, 9900, 7750, 917946,
+ 127896, 74619, 119265, 983587, 64778, 12585, 10565, 128151, 12177,
+ 119843, 983260, 0, 77824, 0, 4900, 127874, 12878, 92630, 8984, 4119,
+ 74768, 8971, 78593, 43113, 9702, 66852, 11025, 9245, 13048, 4927, 4138,
+ 74185, 92481, 92710, 12397, 77827, 119040, 13054, 12394, 0, 0, 194954,
+ 13053, 118974, 3948, 10781, 1546, 0, 5010, 1680, 10507, 78590, 78583,
+ 92431, 121037, 126644, 194915, 7267, 127479, 74833, 128181, 5993, 2819,
+ 128788, 12706, 71063, 1893, 7266, 63915, 7264, 7265, 0, 1363, 983580,
+ 42923, 63910, 63996, 3077, 120018, 0, 1512, 69929, 12589, 41479, 128313,
+ 71048, 43339, 73776, 9836, 120727, 983909, 41481, 43335, 7832, 42343,
+ 3090, 43337, 817, 1664, 1850, 83177, 3079, 11340, 42408, 42447, 74932,
+ 74044, 42307, 12386, 42304, 917555, 83428, 12389, 121079, 92366, 41996,
+ 11526, 63985, 5864, 1147, 43849, 42887, 1987, 92718, 5480, 7858, 11653,
+ 4116, 12391, 66193, 121383, 4939, 12384, 0, 127778, 41686, 63905, 119601,
+ 70285, 67398, 128820, 12649, 120022, 0, 8247, 507, 91, 2042, 120775,
+ 43643, 121445, 66028, 10036, 41844, 119813, 774, 119829, 77840, 119815,
+ 5994, 12539, 0, 78375, 120597, 119833, 983105, 78377, 983237, 917628,
+ 7719, 6026, 2486, 128312, 119808, 162, 0, 65219, 41073, 9687, 41681,
+ 6304, 119812, 66196, 194881, 5262, 0, 55233, 12681, 42379, 0, 7534,
+ 12219, 2226, 70499, 42810, 10492, 121510, 121148, 121509, 43119, 0,
+ 78537, 12403, 2500, 70145, 83246, 4899, 12729, 983399, 194619, 74113,
+ 2343, 4103, 19946, 74112, 77851, 13112, 129046, 74834, 12859, 70087,
+ 120148, 66369, 5861, 127758, 11999, 12400, 43641, 128183, 12645, 5146,
+ 11320, 68410, 6748, 65040, 194786, 64184, 12974, 64183, 67613, 120645,
+ 5147, 125019, 0, 74524, 128356, 1928, 0, 67649, 5991, 3445, 67609, 4976,
+ 64176, 0, 67610, 8241, 0, 77868, 4206, 0, 78662, 129029, 128298, 67277,
+ 10138, 67238, 128785, 8897, 120234, 1422, 8357, 4124, 77862, 65836,
+ 120641, 127926, 77859, 0, 120930, 1123, 963, 41553, 10120, 12405, 120150,
+ 92664, 398, 13278, 9723, 6366, 120311, 7945, 129126, 4402, 9970, 12402,
+ 93062, 42392, 1305, 12408, 92384, 44007, 128563, 127216, 41464, 12411,
+ 12969, 67268, 41465, 121092, 8528, 1575, 0, 63955, 165, 3024, 41467,
+ 119163, 70119, 9093, 128535, 6833, 92574, 63958, 0, 9148, 9692, 4096, 53,
+ 8296, 6750, 66855, 128410, 9594, 120308, 120938, 43527, 121192, 727,
+ 74192, 93060, 5805, 0, 6726, 0, 42176, 12370, 11655, 119095, 10591, 2280,
+ 983234, 12372, 120642, 120307, 71209, 92343, 983872, 12366, 10963, 6066,
+ 1329, 0, 3052, 9220, 121045, 64478, 194701, 10803, 4132, 120306, 68474,
+ 92473, 983247, 120712, 74837, 120155, 1499, 0, 8055, 42740, 63965,
+ 120305, 63962, 74042, 8924, 43123, 5988, 3660, 63969, 11781, 42718, 8788,
+ 1357, 64851, 65743, 92894, 8774, 70337, 127086, 9941, 120172, 92748,
+ 1933, 69655, 9564, 120016, 92435, 73866, 0, 121241, 2487, 67614, 3121,
+ 1804, 3311, 67615, 70081, 78302, 12220, 67616, 92769, 120020, 194594,
+ 68200, 6675, 128144, 0, 67592, 120685, 0, 64771, 1198, 9132, 0, 64619,
+ 510, 64663, 0, 121500, 4561, 2101, 1398, 917972, 92554, 74034, 41569,
+ 92684, 11406, 8167, 12127, 120505, 840, 983283, 69992, 7101, 6967, 0,
+ 194898, 9796, 127000, 333, 69891, 0, 8144, 2117, 0, 121155, 12406,
+ 917970, 19931, 66388, 6678, 7769, 983124, 12621, 0, 127366, 10227, 4764,
+ 43101, 9981, 0, 40986, 4127, 66487, 983576, 42202, 12754, 195021, 983191,
+ 0, 94097, 67594, 2048, 12944, 4050, 67595, 917967, 43102, 10581, 11184,
+ 4533, 127212, 74003, 6490, 0, 12038, 0, 0, 68225, 65461, 9798, 69704,
+ 128912, 1948, 69841, 0, 952, 128235, 125107, 983354, 70296, 6449, 9494,
+ 120313, 0, 43098, 4843, 8142, 64160, 4098, 64170, 983341, 0, 3436,
+ 119973, 0, 12817, 67597, 6676, 3930, 42615, 66407, 69991, 67598, 0, 0, 0,
+ 65591, 41581, 65916, 1453, 194993, 121458, 127859, 8500, 42222, 120142,
+ 73743, 120400, 4317, 11543, 67676, 64676, 0, 127833, 67606, 119083,
+ 121083, 42217, 13102, 0, 66003, 6672, 0, 0, 66880, 77912, 63841, 9613,
+ 9001, 4526, 11274, 67601, 64520, 64210, 6664, 78704, 42056, 10228, 64957,
+ 11281, 0, 3807, 1469, 66640, 65381, 42197, 4988, 42372, 0, 9598, 904,
+ 352, 42225, 1451, 8061, 8453, 4134, 83485, 67223, 66576, 127916, 127831,
+ 10520, 8575, 9960, 1201, 127289, 12846, 127291, 68040, 11919, 64962,
+ 127081, 43739, 127281, 8511, 9460, 823, 11587, 12305, 0, 64695, 127305,
+ 12387, 1253, 13183, 65766, 500, 42783, 65765, 64208, 64369, 65760, 65761,
+ 70334, 11606, 64784, 11702, 66498, 9821, 64304, 127369, 5152, 11048,
+ 7533, 68366, 64410, 92305, 0, 4323, 70276, 92669, 71332, 120158, 42587,
+ 42214, 41394, 11188, 4763, 4112, 118935, 0, 5260, 43143, 94038, 326,
+ 120131, 68423, 119218, 10771, 2876, 74074, 92530, 128460, 41398, 7382,
+ 9802, 127077, 127076, 453, 41396, 120524, 13159, 12140, 9572, 983132,
+ 7003, 194883, 42334, 7704, 125069, 125020, 43144, 4123, 8494, 43146,
+ 9977, 0, 121283, 65759, 10765, 64061, 4465, 9808, 64056, 65582, 4126, 0,
+ 9521, 9589, 64755, 0, 64020, 126604, 10464, 0, 92968, 194610, 64514,
+ 11528, 64024, 128072, 679, 64013, 983555, 5850, 758, 7536, 120538, 92234,
+ 41441, 10693, 64006, 75044, 64005, 4058, 119019, 126487, 64660, 128176,
+ 119050, 0, 983069, 1139, 43298, 64027, 64029, 8970, 0, 9934, 128685,
+ 10774, 67104, 42201, 12421, 128216, 127006, 1852, 3057, 64046, 73744,
+ 64034, 64039, 68065, 0, 983690, 92913, 92322, 7645, 12854, 74338, 3496,
+ 0, 121323, 113710, 9102, 627, 127795, 6158, 8327, 74553, 66632, 12419,
+ 13309, 11570, 127811, 19960, 11696, 0, 1018, 118970, 129075, 194897,
+ 1682, 43863, 194896, 42756, 6765, 194906, 67717, 74358, 73814, 11412,
+ 6768, 10728, 119982, 71316, 71099, 43311, 64966, 11577, 127832, 43040,
+ 1833, 11576, 70054, 74779, 0, 185, 65085, 74533, 64754, 119334, 7535,
+ 8085, 42525, 119944, 9749, 41701, 6131, 1949, 4117, 7847, 120489, 120997,
+ 64483, 65693, 983711, 983495, 128615, 69695, 42240, 128587, 121352,
+ 42864, 126498, 43168, 41868, 1184, 0, 815, 11484, 127535, 67840, 983651,
+ 0, 66197, 983474, 10986, 64683, 128549, 128454, 3455, 126530, 0, 9879, 0,
+ 0, 4158, 70307, 68166, 0, 128091, 0, 0, 69645, 332, 118808, 83368, 5142,
+ 2407, 69643, 42199, 0, 92404, 74373, 83372, 55217, 71457, 63870, 43163,
+ 0, 0, 12985, 42867, 1834, 120387, 92461, 69817, 10940, 65249, 70385,
+ 8662, 120324, 0, 2652, 120527, 7164, 10784, 195093, 67674, 0, 83359,
+ 92482, 194749, 74562, 917505, 1828, 74474, 120019, 68078, 8531, 12499,
+ 6280, 12324, 72434, 65238, 68374, 4832, 65573, 43851, 6279, 12508, 12904,
+ 12502, 9161, 128555, 1620, 11247, 3601, 121301, 83353, 67246, 609, 11555,
+ 83456, 12496, 11980, 74181, 4343, 12505, 82960, 127863, 0, 11377, 239,
+ 128114, 637, 0, 128678, 42671, 0, 93032, 83095, 43565, 71306, 126493,
+ 12696, 128256, 917600, 94062, 12929, 0, 712, 0, 4197, 983206, 42818,
+ 126632, 70306, 120490, 70333, 119137, 1506, 43562, 119913, 92491, 68076,
+ 12651, 120917, 64628, 74517, 12058, 74084, 194633, 7494, 0, 4924, 65592,
+ 118844, 194823, 127088, 355, 9719, 127087, 13066, 64796, 121077, 983297,
+ 12033, 42178, 194754, 69760, 42571, 92635, 11430, 0, 70299, 121508,
+ 124951, 68324, 3178, 126488, 128633, 92704, 917566, 9080, 120943, 67697,
+ 195101, 68209, 72418, 11082, 71485, 5699, 83373, 66000, 9488, 65166,
+ 119112, 70477, 11170, 68662, 128120, 71313, 0, 5265, 69235, 83384, 11487,
+ 67858, 12464, 983365, 43045, 983831, 70345, 43345, 983276, 10770, 118994,
+ 6807, 465, 9829, 69997, 74348, 0, 43346, 8116, 795, 120352, 72412, 12462,
+ 10930, 10831, 121320, 118952, 64362, 74334, 93056, 83047, 983933, 12468,
+ 8607, 1008, 118948, 10092, 125122, 128851, 67855, 55257, 73771, 1766,
+ 11282, 11996, 1820, 4547, 0, 11202, 120243, 128345, 13223, 74934, 64595,
+ 127294, 83374, 68489, 4345, 12616, 917784, 128947, 983155, 74467, 0,
+ 983819, 128291, 5382, 127779, 0, 67233, 119060, 64953, 5406, 19920,
+ 69897, 66510, 3590, 194835, 1130, 917766, 120977, 42016, 11823, 43023,
+ 121002, 118896, 7742, 127374, 13280, 71323, 9326, 73826, 5310, 43509,
+ 78584, 92229, 8959, 43589, 6747, 66723, 64757, 8568, 194684, 120496,
+ 73816, 83060, 128418, 42670, 0, 11621, 12460, 1326, 120631, 83393, 43063,
+ 43239, 65678, 194840, 73917, 7843, 69783, 11689, 5410, 5783, 10468, 8403,
+ 5400, 11594, 120405, 68333, 83390, 10491, 69842, 64412, 0, 128012, 5587,
+ 42865, 64404, 8268, 4923, 65086, 8981, 12382, 42133, 120755, 9706, 69738,
+ 70294, 66610, 10461, 12103, 0, 8642, 83388, 42766, 83387, 2210, 9983,
+ 128689, 94009, 0, 0, 0, 7398, 41515, 0, 11802, 8041, 1461, 910, 119133,
+ 0, 6749, 3658, 93964, 120525, 0, 7617, 194841, 12888, 127983, 67668,
+ 13143, 0, 9193, 11097, 5703, 128247, 41517, 41504, 41519, 10016, 64305,
+ 0, 65864, 623, 781, 670, 10660, 5769, 613, 7543, 120279, 477, 41083,
+ 92521, 0, 592, 1578, 12459, 43449, 0, 0, 8225, 121191, 654, 11345, 653,
+ 652, 0, 647, 83266, 633, 120744, 983809, 126472, 12480, 43243, 194909,
+ 39, 12487, 121247, 120529, 74199, 12482, 0, 12489, 119607, 3195, 5550,
+ 129121, 7897, 127089, 1203, 74396, 1813, 64544, 41311, 12090, 983634,
+ 2877, 121518, 70496, 1675, 69840, 0, 0, 119078, 10070, 10595, 0, 119077,
+ 194777, 121162, 67170, 120790, 118787, 43244, 92233, 917835, 983916,
+ 119561, 983078, 194914, 194921, 128160, 9939, 0, 983151, 77860, 128948,
+ 83440, 270, 0, 10714, 118983, 72437, 0, 119942, 119338, 65372, 73803,
+ 74038, 68251, 6273, 66679, 364, 9595, 71440, 0, 0, 707, 194839, 128409,
+ 9282, 11163, 224, 128588, 68670, 9332, 4966, 68677, 194586, 68644,
+ 983131, 3841, 67357, 67341, 10732, 68640, 850, 4972, 127181, 12890, 2909,
+ 68619, 44008, 68627, 120699, 11544, 10203, 9608, 0, 917943, 11962,
+ 121397, 12507, 1196, 67684, 67100, 777, 120187, 4375, 65271, 67678, 0,
+ 12198, 917887, 64824, 119343, 127243, 9454, 63778, 8658, 42528, 70073,
+ 2705, 128680, 41520, 195098, 120379, 11986, 7765, 42502, 8280, 74520,
+ 2701, 0, 120240, 5767, 0, 195018, 9809, 8353, 63747, 66701, 63772,
+ 121233, 63745, 1748, 63770, 121419, 121078, 0, 65542, 63766, 55244, 3061,
+ 78609, 63764, 63787, 9067, 6096, 0, 7694, 0, 7257, 63768, 3485, 12987,
+ 127781, 127522, 120628, 63807, 1591, 0, 6386, 63783, 120990, 125041,
+ 92535, 0, 0, 68249, 74575, 127010, 65719, 13083, 64574, 65012, 121452,
+ 1640, 12495, 66691, 7624, 3138, 10996, 11171, 1922, 127275, 12498, 10987,
+ 69936, 69939, 3894, 65543, 129183, 194842, 128112, 493, 0, 43197, 1717,
+ 4228, 479, 10303, 74020, 0, 917935, 10335, 3520, 917932, 12490, 64315,
+ 92170, 127039, 12493, 6233, 42681, 1002, 12491, 83519, 64911, 83521,
+ 2096, 65120, 83516, 78219, 83270, 8378, 11632, 68838, 66213, 63864,
66221, 66226, 66229, 13218, 66231, 66216, 8507, 66236, 66211, 66218,
92672, 66240, 78041, 66233, 8928, 983552, 7909, 66234, 11605, 63759,
- 983654, 66208, 73999, 63799, 63803, 244, 11542, 12898, 12494, 73761,
- 12492, 12669, 0, 0, 74153, 0, 128278, 120680, 4882, 13040, 0, 8612, 4885,
- 74053, 0, 13042, 4880, 64662, 2429, 1360, 248, 0, 63797, 92394, 42358, 0,
- 7292, 0, 63756, 42786, 66693, 0, 1870, 78040, 470, 78038, 78035, 78036,
- 70028, 78034, 4579, 128090, 0, 12511, 74453, 12514, 0, 74579, 7239, 7001,
- 8623, 94011, 128052, 128048, 7378, 12512, 11615, 6104, 0, 0, 659, 6098,
- 0, 12234, 127307, 127067, 8311, 12510, 41803, 13039, 127072, 12513,
- 10202, 12471, 0, 8747, 983920, 0, 0, 2323, 0, 2319, 77917, 12477, 77916,
- 2311, 0, 4415, 237, 6281, 127280, 0, 0, 2309, 1312, 8173, 128871, 12469,
- 0, 78505, 64335, 10609, 0, 128111, 9397, 11524, 9395, 9396, 9393, 9394,
- 9391, 9392, 9389, 6209, 9387, 9388, 4932, 9386, 9383, 9384, 6740, 0,
- 65451, 8185, 0, 917832, 43024, 43336, 67659, 2313, 128167, 7948, 9236,
- 92571, 0, 0, 10570, 43473, 6289, 10484, 0, 0, 11998, 12082, 10924, 3147,
- 0, 120684, 12524, 119081, 2310, 11818, 9381, 9382, 9379, 9380, 9377,
- 9378, 9375, 9376, 1683, 9374, 983778, 9372, 12444, 0, 0, 13016, 8210,
- 983958, 42029, 11079, 12331, 43451, 42032, 8744, 726, 0, 983837, 4155, 0,
- 0, 42030, 5007, 12522, 43088, 0, 4951, 127805, 127240, 0, 9922, 43309,
- 983841, 12525, 983471, 12016, 65770, 9548, 67665, 403, 78230, 12503, 0,
- 0, 11030, 0, 92567, 65691, 63998, 1819, 10496, 0, 0, 119920, 0, 194668,
- 0, 12506, 0, 12231, 0, 12500, 44023, 12509, 64393, 78830, 3389, 10589,
- 6608, 41047, 120321, 78395, 78394, 74069, 77995, 78391, 3608, 8281,
- 120320, 1107, 0, 9076, 8862, 69743, 41052, 13084, 64766, 43217, 7803,
- 13222, 74165, 74782, 126514, 8546, 11553, 63995, 13177, 9043, 6303,
- 983947, 498, 64471, 120324, 128567, 12529, 8042, 0, 2344, 12528, 8031,
- 2414, 0, 69719, 3231, 0, 6422, 66512, 69653, 12530, 2537, 78405, 41429,
- 12658, 13036, 65772, 0, 78738, 41433, 4719, 469, 0, 4363, 3313, 41428,
- 78407, 2023, 1772, 78224, 78225, 65706, 10051, 64812, 78220, 0, 9920,
- 12215, 0, 4931, 1951, 12497, 119363, 9607, 0, 9663, 983228, 119634, 6503,
- 41110, 0, 1491, 0, 0, 127304, 41061, 0, 194838, 127187, 65026, 41993,
- 41509, 11045, 65028, 78602, 66476, 41108, 9738, 41995, 1075, 1958, 12535,
- 41992, 41506, 0, 41687, 0, 120717, 127776, 9940, 127299, 7692, 983833,
- 8008, 41131, 330, 8566, 65083, 41133, 9816, 126517, 12532, 78550, 78546,
- 3508, 127058, 43235, 0, 127298, 64139, 78231, 6411, 12910, 78554, 66644,
- 13028, 6737, 12537, 0, 0, 64136, 12536, 2350, 13029, 78233, 0, 983103,
- 13030, 6702, 4527, 0, 12538, 128810, 983645, 65599, 65717, 9966, 0, 4948,
- 12484, 4032, 128149, 12623, 0, 6207, 0, 6117, 65930, 8412, 0, 7438, 1296,
- 2325, 41511, 126625, 10149, 74118, 0, 127286, 12481, 0, 12488, 66713, 0,
- 41556, 64414, 118802, 2354, 42619, 73766, 0, 6295, 901, 41510, 7953, 0,
- 65032, 41513, 983166, 11927, 66584, 78559, 78560, 78557, 78558, 0, 78556,
- 848, 9868, 0, 6424, 78568, 119338, 69922, 74031, 78563, 78564, 2352,
- 78572, 893, 64576, 11289, 1407, 67973, 0, 13026, 6762, 78579, 78580,
- 13023, 8903, 9777, 66715, 1871, 8099, 0, 0, 1343, 983823, 0, 9325, 6818,
- 6283, 11738, 0, 983934, 0, 11741, 0, 0, 9216, 8263, 11279, 194752,
- 983825, 194754, 13021, 64494, 3136, 194758, 194757, 194760, 13022, 42737,
- 9956, 0, 0, 74552, 10014, 0, 41260, 119340, 13020, 10024, 194764, 74583,
- 74340, 69681, 0, 43001, 8029, 0, 0, 983780, 3335, 0, 0, 9776, 120526,
+ 127308, 66208, 67339, 13002, 63803, 244, 11542, 12898, 12494, 73761,
+ 12492, 12669, 94070, 0, 74153, 120310, 128278, 120680, 4882, 13040,
+ 983362, 8612, 4885, 74053, 127830, 13042, 4880, 64662, 2429, 1360, 248,
+ 129066, 63797, 92394, 42358, 0, 7292, 0, 63756, 42786, 66693, 0, 1870,
+ 78040, 470, 78038, 78035, 78036, 70028, 78034, 4579, 69232, 0, 12511,
+ 74453, 12514, 0, 71130, 7239, 7001, 8623, 94011, 125137, 128048, 7378,
+ 12512, 11615, 6104, 0, 120900, 659, 6098, 0, 12234, 83511, 67358, 8311,
+ 12510, 7669, 13039, 83509, 12513, 10202, 12471, 0, 8747, 121385, 70193,
+ 128354, 2323, 0, 2319, 77917, 12477, 77916, 2311, 7666, 4415, 237, 6281,
+ 127280, 983311, 83020, 2309, 1312, 8173, 83013, 12469, 83015, 78505,
+ 64335, 10609, 83011, 78006, 9397, 11524, 9395, 9396, 9393, 9394, 9391,
+ 9392, 9389, 6209, 9387, 9388, 4932, 9386, 9383, 9384, 6740, 127990,
+ 65451, 8185, 128931, 194843, 43024, 43336, 67659, 2313, 128167, 7948,
+ 9236, 77942, 0, 0, 10570, 43473, 6289, 10484, 83006, 83007, 11998, 12082,
+ 10924, 3147, 83004, 66406, 12524, 119081, 2310, 11818, 9381, 9382, 9379,
+ 9380, 9377, 9378, 9375, 9376, 1683, 9374, 983778, 9372, 12444, 74256, 0,
+ 13016, 8210, 121062, 42029, 11079, 12331, 43451, 42032, 8744, 726, 0,
+ 120630, 4155, 121090, 120704, 42030, 5007, 12522, 43088, 0, 4951, 113826,
+ 127217, 983202, 9922, 43309, 11211, 12525, 983473, 12016, 65770, 9548,
+ 67665, 403, 78230, 12503, 194689, 127191, 11030, 43916, 92567, 65691,
+ 63998, 1819, 10496, 0, 0, 119920, 0, 129143, 121072, 12506, 983838,
+ 11146, 71477, 12500, 44023, 12509, 64393, 78830, 3389, 10589, 6608,
+ 11208, 120236, 78395, 78394, 74069, 71446, 78391, 3608, 8281, 113732,
+ 1107, 113745, 9076, 8862, 69743, 41052, 13084, 64766, 43217, 7803, 13222,
+ 74165, 74782, 43499, 8546, 11553, 63995, 13177, 9043, 6303, 113664, 498,
+ 64471, 77987, 92974, 12529, 8042, 43899, 2344, 12528, 8031, 2414, 74506,
+ 69719, 3231, 917836, 6422, 66512, 69653, 12530, 2537, 78405, 41429,
+ 12658, 13036, 65772, 0, 78738, 41433, 4719, 469, 917810, 4363, 3313,
+ 41428, 78407, 2023, 1772, 78224, 78225, 65706, 10051, 64812, 78220,
+ 74237, 9920, 12215, 82978, 4931, 1951, 12497, 119363, 9607, 70368, 9663,
+ 66838, 119634, 6503, 41110, 983467, 1491, 66847, 129169, 127304, 41061,
+ 70454, 194838, 127187, 65026, 41993, 41509, 11045, 65028, 71181, 66476,
+ 41108, 9738, 41995, 1075, 1958, 12535, 41992, 41506, 127002, 41687, 0,
+ 120717, 127776, 9940, 127299, 7692, 983833, 8008, 41131, 330, 8566,
+ 65083, 6839, 9816, 126517, 12532, 78550, 78546, 3508, 127058, 43235,
+ 120351, 127298, 64139, 78231, 6411, 12910, 67710, 66644, 13028, 6737,
+ 12537, 0, 43506, 64136, 12536, 2350, 13029, 78233, 120914, 43897, 13030,
+ 6702, 4527, 71250, 12538, 128810, 983645, 65599, 65717, 9966, 93046,
+ 4948, 12484, 4032, 121177, 12623, 0, 6207, 983225, 6117, 65930, 8412,
+ 127183, 7438, 1296, 2325, 41511, 121020, 10149, 74118, 0, 120233, 12481,
+ 121280, 12488, 66713, 0, 41556, 64414, 118802, 2354, 42619, 73766,
+ 119244, 6295, 901, 41510, 7953, 0, 65032, 41513, 120209, 11927, 66584,
+ 78559, 78560, 78557, 71459, 83034, 67603, 848, 9868, 67220, 6424, 78568,
+ 67226, 69922, 70190, 78563, 78564, 2352, 67219, 893, 64576, 11289, 1407,
+ 67973, 983193, 13026, 6762, 78579, 70192, 13023, 8903, 9777, 66715, 1871,
+ 8099, 127984, 0, 1343, 917999, 120784, 9325, 6818, 6283, 11738, 0, 72436,
+ 113713, 11741, 917986, 75043, 9216, 8263, 11279, 83023, 83024, 83025,
+ 13021, 64494, 3136, 194758, 194757, 194760, 13022, 42737, 9956, 0, 43954,
+ 74552, 10014, 0, 41260, 119340, 13020, 10024, 194764, 74583, 74340,
+ 69681, 0, 43001, 8029, 0, 0, 983780, 3335, 119341, 9209, 9776, 120526,
194748, 5215, 42644, 3333, 1632, 194751, 64849, 3342, 78582, 5363, 12957,
- 78581, 4156, 0, 0, 6421, 78591, 1611, 78589, 13018, 74257, 78588, 74542,
- 3337, 4537, 67895, 11736, 0, 68608, 6482, 4214, 73790, 11945, 0, 13046,
- 8838, 425, 4025, 10709, 78595, 2108, 2392, 13047, 0, 0, 6819, 13049,
- 6499, 92243, 12424, 68614, 73944, 13050, 9924, 194745, 6507, 127919,
- 94073, 128069, 3277, 8929, 4947, 41055, 0, 194722, 194721, 194724, 13045,
- 64626, 66034, 7751, 194727, 8371, 194729, 3997, 12806, 8768, 13044, 0,
- 12420, 4024, 194730, 41054, 1078, 9757, 69736, 41057, 0, 0, 0, 0, 983791,
- 92210, 92411, 0, 41496, 0, 9165, 1572, 11911, 0, 118842, 2346, 13270,
- 8958, 0, 9646, 3773, 43183, 6401, 5831, 0, 0, 13043, 8056, 92494, 65681,
- 208, 127382, 41514, 0, 0, 0, 10699, 6408, 92227, 7825, 5661, 0, 120630,
- 3603, 41109, 2398, 3548, 126596, 0, 119933, 0, 3115, 9918, 0, 8294,
- 42912, 0, 0, 194726, 4876, 65804, 0, 0, 43468, 983274, 41558, 41471,
+ 78581, 4156, 0, 127329, 6421, 78039, 1611, 78589, 13018, 74257, 78588,
+ 74542, 3337, 4537, 67895, 11736, 0, 68608, 6482, 4214, 73790, 11945,
+ 43925, 13046, 8838, 425, 4025, 10709, 78595, 2108, 2392, 13047, 92745, 0,
+ 6819, 13049, 6499, 92243, 12424, 68614, 65827, 13050, 9924, 194745, 6507,
+ 127919, 94073, 128069, 3277, 8929, 4947, 41055, 0, 194722, 194721,
+ 194724, 13045, 64626, 66034, 7751, 194727, 8371, 121036, 3997, 12806,
+ 8768, 13044, 0, 12420, 4024, 128000, 41054, 1078, 9757, 69736, 41057,
+ 68307, 917842, 0, 0, 983791, 92210, 92411, 129303, 41496, 0, 9165, 1572,
+ 11911, 124990, 118842, 2346, 13270, 8958, 0, 9646, 3773, 43183, 6401,
+ 5831, 0, 120865, 13043, 8056, 70108, 65681, 208, 127382, 41514, 0,
+ 121048, 983884, 10699, 6408, 92227, 7825, 5661, 82972, 82973, 3603,
+ 41109, 2398, 3548, 82969, 82970, 119933, 82964, 3115, 9918, 127823, 8294,
+ 42912, 0, 127287, 194726, 4876, 65804, 0, 0, 43468, 121221, 41558, 41471,
73950, 8158, 9944, 41472, 120298, 13051, 78689, 3143, 194674, 6701,
- 41559, 1896, 66256, 13052, 194680, 5665, 0, 119071, 7025, 63974, 0,
+ 41559, 1896, 65215, 13052, 194680, 5665, 78594, 119071, 7025, 63974, 0,
74352, 74161, 4154, 9863, 43550, 12310, 5662, 42382, 1564, 73924, 1121,
- 78319, 63959, 0, 9942, 13231, 0, 64752, 4732, 194666, 11596, 119931,
- 65187, 1626, 63983, 10110, 64772, 42024, 6420, 42028, 0, 10509, 2795,
- 4910, 194728, 69231, 64753, 6275, 93957, 118830, 63978, 11044, 3229,
- 6423, 42774, 0, 0, 0, 12823, 2331, 917810, 7085, 6137, 0, 7524, 0,
- 917809, 8346, 0, 8338, 128315, 65043, 0, 822, 127984, 9903, 64721, 42722,
- 69877, 194659, 78655, 78661, 194660, 78662, 41265, 5311, 1795, 965,
- 118791, 10587, 78055, 11278, 78632, 194640, 0, 12946, 194641, 119341,
- 120349, 6294, 3144, 194648, 194647, 65019, 194649, 73990, 0, 983960, 748,
- 41067, 2330, 535, 3148, 12375, 78799, 194629, 10556, 2475, 12388, 4889,
- 8968, 67863, 3593, 0, 0, 2342, 0, 194634, 65206, 4894, 194635, 4890,
- 194637, 917804, 581, 4893, 983616, 6571, 65545, 4888, 4157, 78048, 78049,
- 78046, 78047, 0, 10119, 6415, 42893, 0, 69702, 0, 0, 11375, 64746, 2332,
- 78063, 412, 78061, 64932, 42880, 43587, 0, 0, 0, 0, 65197, 78066, 12203,
- 78064, 78065, 8913, 65854, 4875, 65811, 120381, 120389, 118888, 9344,
- 8826, 120386, 120395, 13104, 74781, 11997, 120393, 78075, 0, 3134, 0,
- 65696, 92331, 0, 66217, 0, 8334, 119344, 0, 3449, 0, 0, 78414, 78413,
- 118950, 74011, 0, 0, 0, 0, 1908, 120167, 4328, 10734, 127014, 0, 127914,
- 7804, 78272, 10811, 6250, 11339, 4914, 11367, 0, 78054, 4917, 74516,
- 74208, 64285, 4912, 5464, 127836, 118893, 2361, 7971, 78072, 78073,
- 55243, 78071, 0, 8086, 74317, 6707, 8319, 2312, 40977, 10960, 40962,
- 8305, 12573, 983608, 40980, 983964, 13202, 0, 12582, 78282, 983048,
- 69856, 42438, 55221, 6288, 78280, 127946, 5653, 42400, 10891, 7698, 5658,
- 74045, 70039, 0, 0, 4913, 0, 983959, 71333, 42326, 128194, 12728, 92685,
- 42478, 2327, 0, 12563, 42287, 12705, 0, 0, 12588, 8821, 6153, 2867,
- 194708, 66312, 698, 128007, 194606, 10356, 70017, 194713, 651, 12641, 0,
- 0, 0, 0, 41552, 65115, 78465, 78467, 78463, 78464, 128851, 78461, 194697,
- 74356, 64945, 4716, 43277, 0, 78474, 12340, 120568, 0, 194700, 55264,
- 41211, 120676, 8703, 5462, 917629, 983495, 10101, 0, 70049, 8479, 4151,
- 41933, 0, 0, 66254, 120821, 0, 0, 128654, 0, 119194, 74050, 92701, 0, 0,
- 0, 0, 0, 12278, 0, 0, 0, 2700, 12576, 7842, 12899, 0, 0, 2699, 0, 73845,
- 2985, 92568, 126475, 917845, 12192, 119314, 0, 119312, 9827, 119310,
- 119311, 119308, 119309, 119306, 11481, 41210, 119305, 0, 35, 78481,
- 78482, 66694, 68479, 78477, 78478, 43596, 6090, 64257, 7812, 10534, 0,
- 78485, 73848, 67975, 4272, 0, 40967, 40964, 917825, 12704, 78487, 43306,
- 0, 64497, 12138, 7930, 0, 2292, 68216, 0, 917826, 5244, 4189, 94108,
- 67596, 127504, 4188, 1879, 0, 968, 0, 43743, 0, 8873, 2279, 0, 917827,
- 65555, 12574, 0, 0, 0, 74490, 127099, 43657, 0, 0, 0, 42682, 12578,
- 12720, 0, 41227, 0, 12346, 127101, 64848, 0, 0, 7251, 0, 0, 118850,
- 119141, 128546, 66015, 0, 959, 8885, 12564, 66457, 78808, 9469, 9632,
- 92323, 74761, 64323, 127335, 0, 0, 0, 310, 0, 41281, 10976, 0, 71325, 0,
- 74266, 10054, 6497, 8574, 0, 9012, 19958, 74420, 65089, 13215, 12730,
- 65163, 74044, 374, 43195, 816, 120161, 0, 0, 41934, 7465, 0, 128168,
- 983268, 4715, 6101, 94106, 41936, 0, 4879, 0, 65446, 0, 307, 127147,
- 9585, 5374, 983267, 128059, 0, 0, 126618, 120390, 0, 65567, 120614, 1929,
- 0, 12142, 0, 12236, 41419, 194618, 120610, 12982, 194623, 5378, 78791,
- 128679, 41421, 0, 4462, 0, 126599, 128092, 821, 0, 2498, 5800, 120157,
- 983115, 1760, 2421, 4469, 2324, 828, 3611, 78400, 757, 1185, 0, 78770,
- 43597, 10628, 74808, 194572, 7999, 43971, 0, 0, 10634, 10942, 7713, 2348,
- 0, 64374, 4380, 194608, 119044, 9982, 64324, 41240, 862, 65626, 78462,
- 1810, 3673, 5137, 194617, 0, 7277, 65622, 0, 7566, 64688, 194593, 194592,
- 78092, 74357, 194597, 4748, 92228, 194598, 194601, 42260, 5871, 119075,
- 0, 74576, 44019, 0, 128189, 3967, 194604, 13137, 8775, 127945, 0, 2963,
- 0, 8410, 4454, 723, 127882, 966, 4449, 92330, 92238, 0, 7819, 2320,
- 194589, 339, 4968, 194590, 120399, 8075, 55276, 0, 8047, 0, 78827, 12634,
- 41542, 78780, 7466, 6705, 12174, 42610, 0, 74452, 983763, 1584, 66645,
- 6045, 6729, 120640, 65218, 11559, 0, 78062, 7537, 0, 11370, 0, 10330, 0,
- 10394, 0, 74194, 0, 127929, 9780, 0, 13092, 194576, 77950, 194578, 7074,
- 92648, 194579, 194582, 11414, 128868, 2531, 13034, 0, 0, 4211, 1259,
- 7517, 0, 0, 194561, 40996, 13037, 7092, 641, 5219, 94034, 194566, 11064,
- 41129, 0, 42850, 13035, 9075, 92387, 5466, 128153, 0, 64098, 65793, 4535,
- 194573, 4271, 78417, 128357, 6769, 41410, 983452, 64262, 6767, 41407, 0,
- 0, 6755, 118864, 9046, 127934, 126608, 0, 0, 0, 0, 67675, 0, 0, 0, 64338,
- 2563, 13033, 247, 118915, 0, 12338, 4651, 69895, 11270, 0, 0, 11933, 0,
- 0, 41903, 43447, 11001, 0, 42255, 0, 92661, 69821, 41905, 0, 0, 10775,
- 9793, 5009, 0, 42269, 64587, 983063, 42535, 69812, 64529, 41408, 42853,
- 3877, 120795, 42674, 8147, 43566, 119021, 983776, 10236, 65918, 43782, 0,
- 0, 64506, 69652, 118921, 4747, 128058, 69844, 43200, 5832, 0, 0, 5141,
- 42600, 0, 43203, 0, 983799, 43286, 0, 128211, 43778, 0, 41305, 78776,
- 43781, 11303, 65547, 0, 7031, 859, 0, 0, 0, 6059, 126985, 55235, 0, 8535,
- 0, 65196, 194787, 66032, 11488, 120481, 120786, 42233, 64140, 9946,
- 63885, 194792, 11822, 0, 43189, 983898, 0, 1788, 1579, 120482, 71298, 0,
- 0, 0, 9028, 119571, 69234, 94055, 0, 1285, 64882, 41242, 70086, 0, 12640,
- 0, 7401, 0, 12625, 68198, 0, 70082, 3940, 41597, 43754, 3396, 12642,
- 8665, 0, 0, 12630, 1653, 917815, 10153, 0, 6166, 120516, 118989, 0, 8815,
- 66673, 65046, 9285, 913, 42259, 119317, 119318, 2142, 68454, 42485,
- 94012, 7878, 8211, 42293, 64377, 0, 92643, 0, 194673, 12032, 0, 9725, 0,
- 78431, 5263, 12818, 78430, 41939, 10022, 65387, 78419, 42777, 10139, 980,
- 43698, 65386, 2208, 0, 43701, 43198, 7184, 120673, 194797, 917819, 10085,
- 119992, 0, 119993, 6634, 92373, 0, 119323, 8072, 119321, 43700, 0, 8872,
- 7783, 917992, 12398, 8237, 0, 0, 12395, 0, 126977, 120565, 9914, 2217,
- 917854, 73975, 6367, 6351, 66688, 0, 78107, 0, 64735, 41243, 92199, 7808,
- 1829, 0, 41937, 4358, 43272, 6353, 0, 0, 120422, 0, 1710, 0, 0, 65607, 0,
- 49, 6627, 0, 6258, 10683, 78672, 9741, 78329, 5649, 78441, 43443, 64418,
- 1643, 65213, 8405, 3470, 128225, 13213, 42452, 78331, 120664, 78445, 0,
- 1072, 78457, 78452, 78454, 6576, 41988, 41132, 65675, 1080, 120002, 9886,
- 55225, 1101, 68404, 12309, 55227, 0, 12632, 1086, 1869, 78685, 7680, 0,
- 65458, 120714, 12639, 3380, 8123, 1091, 12638, 7977, 4501, 41099, 0,
- 66309, 0, 0, 1494, 983146, 126613, 0, 11693, 126513, 10494, 92655, 65872,
- 12363, 11386, 0, 0, 0, 0, 64582, 0, 73794, 0, 8022, 0, 120462, 74106,
- 12413, 94069, 917994, 917993, 917995, 5570, 1881, 7210, 0, 1012, 43752,
- 0, 120709, 7208, 66442, 5569, 983242, 42339, 0, 6063, 0, 78383, 119594,
- 6053, 65602, 0, 92201, 64727, 9160, 194827, 0, 0, 92180, 10503, 118810,
- 6055, 3870, 4279, 8490, 120114, 4319, 64786, 8602, 120110, 11326, 92204,
- 983116, 0, 120119, 78333, 120117, 120118, 120099, 120100, 65087, 5571,
- 3674, 9740, 9121, 5568, 120107, 120108, 42085, 10107, 42159, 42870,
- 120101, 589, 7050, 983800, 43281, 10233, 41263, 66251, 65729, 66253,
- 126497, 74099, 42645, 0, 194815, 8583, 0, 5847, 6928, 128074, 0, 0, 0, 0,
- 66592, 12204, 917962, 19966, 77856, 42561, 120626, 983251, 0, 8120,
- 120701, 0, 0, 128012, 41063, 0, 10664, 0, 8369, 0, 4551, 194964, 3369, 0,
- 0, 9673, 66334, 65580, 10478, 118960, 12517, 557, 9457, 12034, 983671,
- 6355, 12519, 41004, 0, 195025, 74094, 0, 0, 77970, 983560, 0, 128175,
- 12111, 3927, 0, 12515, 1474, 67893, 5492, 6923, 92281, 10441, 73836, 0,
- 43990, 5493, 0, 74319, 0, 66635, 12019, 0, 1618, 0, 120474, 9645, 10430,
- 917959, 5853, 13063, 10363, 0, 12956, 128169, 120729, 11314, 917582,
- 12060, 0, 78392, 12826, 6329, 0, 10514, 65517, 74395, 2707, 8309, 0,
- 127054, 78398, 43570, 2697, 43420, 78396, 127057, 2695, 42171, 0, 0, 0,
- 67617, 118971, 0, 2693, 12125, 12766, 0, 1164, 128817, 0, 41918, 983168,
- 127542, 8687, 66009, 12178, 7053, 128001, 7469, 0, 5248, 12218, 120538,
- 6427, 42884, 41123, 0, 0, 42873, 41126, 9991, 41128, 74371, 127031, 0,
- 9873, 0, 42877, 7994, 64762, 2053, 42843, 6591, 9340, 0, 1589, 0, 296,
- 74438, 78852, 0, 67841, 74370, 0, 8922, 128068, 74600, 12700, 74836, 0,
- 12579, 0, 12575, 6416, 5656, 2891, 13262, 65590, 5299, 0, 11473, 5449,
- 1252, 0, 78404, 41431, 74369, 65373, 5295, 917569, 74114, 1223, 1642,
- 174, 78399, 883, 4161, 12691, 42603, 41413, 3212, 41459, 3211, 74810,
- 41425, 127029, 78412, 74450, 9728, 3846, 8070, 6150, 6636, 4370, 0, 0,
- 74178, 74587, 74117, 0, 0, 0, 4986, 12189, 0, 67648, 120499, 94001, 4257,
- 12104, 77942, 6220, 9004, 65561, 0, 77949, 0, 68135, 917576, 77946, 0,
- 69679, 69684, 9890, 78561, 12971, 78453, 92556, 73898, 11979, 70051,
- 118900, 917894, 0, 9635, 12600, 8871, 0, 0, 0, 6469, 74227, 0, 65304,
- 4679, 10230, 64300, 64867, 3427, 4240, 0, 0, 0, 0, 42916, 0, 0, 0, 7282,
- 78728, 65733, 4445, 127138, 128082, 3494, 74606, 6555, 0, 77976, 0, 0,
- 78566, 0, 983189, 65898, 983244, 65312, 5447, 0, 12895, 65593, 4010, 0,
- 41106, 0, 64448, 0, 41105, 0, 65820, 6232, 0, 128280, 0, 43608, 119091,
- 0, 6538, 4335, 78364, 3941, 41122, 11061, 78363, 64892, 9113, 1954,
- 12155, 983674, 42878, 11500, 0, 0, 74578, 0, 65832, 0, 0, 0, 77975,
- 119230, 4586, 0, 350, 10951, 0, 509, 0, 0, 92307, 0, 0, 5133, 0, 0, 9500,
- 0, 4957, 64741, 2422, 2212, 983080, 0, 0, 2496, 11516, 944, 118851, 3890,
- 12168, 1438, 0, 983117, 0, 41947, 1220, 120828, 128555, 0, 0, 1571,
- 42630, 41949, 42805, 8270, 943, 564, 0, 312, 41980, 983944, 0, 78120,
- 8877, 269, 4429, 6272, 9617, 1460, 6954, 78657, 41120, 65121, 10862,
- 6060, 41119, 41416, 74355, 4173, 0, 0, 0, 1906, 917986, 11532, 74073,
- 127338, 0, 1985, 6296, 9582, 917895, 64287, 0, 78115, 11428, 1730, 2457,
- 917808, 19918, 10469, 0, 0, 7703, 8840, 8035, 0, 0, 92230, 0, 6129, 0,
- 128528, 128268, 0, 7874, 8681, 119092, 0, 13136, 0, 0, 70102, 63886,
- 118881, 9605, 71308, 13220, 128776, 120274, 5514, 0, 9228, 0, 0, 0, 5240,
- 9811, 10012, 3096, 0, 0, 983351, 66676, 65873, 0, 0, 0, 9501, 0, 1272,
- 64536, 65465, 64654, 7467, 0, 1467, 10158, 10040, 0, 9519, 0, 917812, 0,
- 118899, 12193, 0, 0, 0, 0, 983353, 19935, 0, 92162, 69676, 0, 0, 0, 5275,
- 0, 0, 8637, 0, 0, 3789, 63880, 11471, 43554, 65862, 11474, 66332, 66603,
- 128138, 2426, 12042, 92194, 983911, 9537, 3961, 12115, 77953, 2605, 4500,
- 64561, 55224, 4981, 0, 0, 63876, 11667, 42686, 77973, 42362, 64686, 4499,
- 41649, 7589, 0, 0, 3237, 0, 68215, 917904, 8541, 78298, 70034, 41866, 0,
- 0, 0, 0, 69924, 43555, 2823, 9559, 10060, 41940, 8299, 41945, 7132,
- 41941, 3308, 7190, 64880, 8614, 65220, 41493, 0, 41699, 10762, 43780,
- 12999, 0, 0, 8106, 4128, 0, 6274, 4494, 0, 4012, 10395, 983591, 43633,
- 65447, 126511, 0, 11004, 695, 739, 696, 7611, 0, 42755, 74802, 9227,
- 7506, 7510, 69937, 691, 738, 7511, 7512, 7515, 3868, 688, 41847, 690,
- 2548, 737, 974, 8003, 7406, 917911, 0, 128688, 3985, 917912, 65860,
- 63921, 7051, 69777, 4682, 917805, 12809, 6406, 4685, 92505, 10879, 10347,
- 4680, 6341, 0, 3851, 8132, 74325, 0, 917907, 0, 41958, 119176, 917908, 0,
- 0, 42657, 92468, 7643, 42373, 11714, 67587, 43568, 983175, 11717, 7650,
- 10594, 64951, 7647, 7649, 128155, 7646, 0, 78082, 9651, 0, 3891, 0, 0,
- 2337, 1735, 74324, 67860, 2363, 983135, 0, 43561, 0, 0, 74146, 1860,
- 7495, 7580, 5812, 7497, 7584, 119140, 127853, 0, 120347, 7727, 0, 8498,
- 69818, 8949, 3065, 42719, 7135, 1569, 92375, 12534, 12124, 7690, 0,
- 12533, 983879, 6418, 4543, 78086, 6969, 0, 74800, 0, 67974, 11980,
- 128650, 983801, 63894, 120760, 12282, 66192, 0, 74592, 8850, 74275, 9238,
- 10617, 917545, 0, 92625, 0, 12791, 0, 0, 127843, 4447, 73732, 12793,
- 12900, 92377, 10950, 0, 78087, 12790, 41400, 119128, 66607, 12792, 42232,
- 194938, 1744, 12789, 10366, 12317, 41310, 983869, 41399, 0, 0, 55258, 0,
- 12690, 0, 0, 43672, 127840, 41652, 2974, 9010, 11315, 0, 278, 0, 41405,
- 119254, 0, 10077, 63853, 74557, 42586, 0, 0, 6002, 0, 43553, 0, 67903, 0,
- 12787, 41308, 7934, 65306, 0, 0, 0, 8646, 983186, 77829, 71360, 0, 6413,
- 6550, 0, 1940, 0, 43637, 220, 65193, 43551, 10678, 10044, 128322, 0, 0,
- 68659, 6403, 5707, 10393, 127532, 0, 66614, 0, 0, 0, 10297, 0, 3742, 0,
- 3959, 0, 0, 0, 2467, 0, 6003, 63844, 6663, 8040, 0, 43758, 4182, 78171,
- 4676, 120501, 0, 0, 2510, 0, 10208, 78168, 92361, 11540, 43546, 6692, 0,
- 41060, 0, 4668, 9083, 0, 0, 78144, 1559, 63831, 9677, 120260, 0, 65256,
- 0, 74070, 0, 0, 365, 12056, 43027, 120423, 41716, 128236, 0, 120472,
- 5516, 2845, 7717, 8036, 41717, 73827, 544, 12045, 6278, 0, 5515, 0, 0,
- 983051, 65339, 43221, 2211, 0, 5517, 0, 0, 74841, 67884, 0, 67890, 67885,
- 67880, 67881, 67882, 67883, 0, 0, 67879, 127188, 1902, 67887, 9638,
- 12976, 126546, 12483, 12368, 41769, 42726, 41765, 7361, 6667, 67874,
- 7556, 67878, 74351, 11264, 989, 42677, 67889, 0, 1311, 917966, 4326,
- 11000, 63824, 13068, 10932, 128880, 6917, 78155, 0, 949, 78162, 0, 6148,
- 8605, 42253, 78177, 0, 0, 42715, 0, 0, 0, 63871, 0, 41796, 1269, 6530, 0,
- 65057, 0, 5144, 12221, 42716, 0, 4431, 4331, 983729, 128675, 41834, 5279,
- 0, 10336, 8312, 0, 42701, 128825, 0, 78165, 66036, 0, 0, 6428, 42270, 0,
- 983596, 43059, 42666, 5256, 1067, 255, 12131, 983722, 9493, 983968,
- 41014, 11793, 194920, 0, 74394, 43460, 10653, 42723, 983854, 119632, 0,
- 6560, 7016, 74274, 983615, 43556, 3929, 67977, 6614, 2768, 92504, 9746,
- 5135, 11811, 12796, 11953, 0, 69761, 5139, 346, 74303, 6305, 12795, 4675,
- 5168, 78552, 127753, 74315, 74361, 8253, 8817, 1136, 0, 43563, 92232, 0,
- 194750, 7392, 8230, 9365, 0, 0, 983607, 0, 0, 4041, 0, 2357, 43240,
- 12786, 229, 119885, 119884, 44004, 7142, 119881, 12350, 65554, 119882,
- 119877, 119876, 12785, 63863, 43795, 7770, 10712, 64853, 12686, 118916,
- 42375, 0, 127238, 66352, 10470, 0, 11059, 10791, 917944, 450, 119328, 0,
- 10432, 12097, 5450, 64691, 1233, 0, 44009, 78284, 66338, 0, 0, 1839,
- 118799, 983219, 10927, 1701, 983664, 2388, 41749, 41761, 5453, 8361,
- 119865, 41758, 5444, 41763, 64889, 7143, 92493, 78677, 0, 92429, 78174,
- 66432, 8801, 3053, 4340, 983044, 0, 65812, 917831, 0, 41824, 67985,
- 120203, 194800, 194803, 42700, 194805, 127980, 194807, 78676, 92356,
- 194808, 0, 0, 4493, 4336, 0, 2314, 43602, 78826, 119325, 194811, 42439,
- 64638, 42327, 43528, 4489, 71331, 0, 194793, 1912, 42385, 10306, 10370,
- 0, 0, 8867, 10250, 10258, 2712, 1635, 78821, 1410, 92671, 983250, 118878,
- 0, 0, 9919, 120528, 559, 128157, 41825, 127975, 78188, 4892, 74016,
- 194781, 6542, 41957, 128865, 5777, 0, 759, 65749, 2079, 65248, 12788,
- 64487, 64552, 0, 10223, 42062, 0, 0, 126573, 3668, 65754, 43560, 12226,
- 67991, 65149, 2340, 41959, 194786, 194785, 194788, 43618, 65747, 10937,
- 2962, 0, 2321, 3587, 65745, 92436, 8921, 9952, 0, 0, 42714, 9951, 43409,
- 194770, 2949, 66012, 194775, 194774, 2958, 68359, 41820, 2300, 2395,
- 128563, 9976, 120043, 120050, 120058, 68220, 128143, 42809, 42807, 0,
- 120046, 10198, 4150, 64371, 8318, 41790, 67976, 41898, 2360, 41794,
- 917942, 71314, 127818, 0, 0, 2418, 983098, 2411, 11336, 799, 63823,
- 10276, 10308, 10372, 917541, 41772, 42813, 2317, 10260, 118980, 55284,
- 92203, 0, 10384, 983220, 0, 0, 7753, 2351, 6655, 64489, 69931, 0, 77872,
- 4443, 42779, 230, 0, 0, 43549, 4855, 42150, 65739, 5441, 41896, 10288,
- 10320, 0, 855, 7046, 6109, 65045, 63839, 78198, 2049, 10098, 0, 74145,
- 127943, 10264, 10280, 9184, 10376, 7013, 4467, 0, 0, 0, 41887, 0, 4862,
- 9735, 6537, 120591, 74286, 3914, 92178, 93976, 9065, 12961, 0, 0, 92253,
- 0, 289, 0, 4694, 11420, 4690, 0, 120514, 917978, 4693, 73893, 42724, 0,
- 4688, 120454, 0, 0, 67994, 8238, 3110, 120162, 983908, 120163, 6528,
- 127553, 43035, 69898, 218, 0, 1520, 0, 4786, 0, 43225, 4602, 0, 78167,
- 10088, 6548, 0, 120156, 43978, 8988, 8888, 0, 0, 0, 0, 10666, 0, 73902,
- 69740, 0, 0, 9975, 128039, 119902, 4689, 8932, 0, 65560, 119209, 74441,
- 78810, 0, 0, 67987, 0, 0, 0, 67989, 0, 10065, 8207, 0, 92613, 128011, 0,
- 662, 0, 9244, 194863, 0, 119261, 983428, 0, 0, 0, 41929, 0, 0, 66674,
- 41926, 120408, 120443, 10513, 64637, 194862, 68013, 52, 13118, 6475, 0,
- 120341, 12095, 10225, 4812, 92578, 0, 67992, 74085, 0, 3978, 0, 917945,
- 127823, 11582, 120761, 12281, 0, 6544, 13241, 93961, 69782, 128557,
- 194860, 11765, 65258, 10369, 0, 1585, 7192, 10249, 422, 1500, 2036, 986,
- 194859, 64394, 5781, 5599, 64294, 2494, 120450, 4861, 74021, 64334,
- 78203, 127808, 0, 92266, 65102, 8961, 65842, 10243, 10245, 74191, 120410,
- 0, 120453, 64821, 9478, 2508, 92683, 0, 202, 128246, 74131, 1242, 65514,
- 0, 63940, 128706, 64533, 120129, 0, 67842, 11990, 92430, 63939, 43375,
- 65440, 2504, 0, 78671, 64829, 983910, 6943, 917934, 5859, 0, 2858,
- 983361, 74294, 983914, 69239, 0, 119027, 12992, 2753, 1936, 70078, 92574,
- 2751, 12662, 2763, 8953, 64701, 10731, 12922, 7052, 917839, 0, 0, 0,
- 63920, 74128, 2856, 119910, 47, 69908, 126986, 65858, 0, 0, 0, 7899, 0,
- 8417, 43798, 7072, 0, 0, 4033, 128164, 43992, 0, 0, 212, 64600, 1903,
- 12320, 0, 0, 194563, 0, 8915, 2759, 945, 6689, 0, 0, 0, 0, 1291, 74828,
- 0, 0, 9531, 13155, 8505, 68379, 12062, 0, 0, 65487, 92189, 41837, 120611,
- 120432, 0, 0, 0, 120433, 0, 63935, 73962, 120806, 64787, 43524, 0, 64426,
- 0, 194948, 0, 0, 65664, 6693, 9843, 0, 8674, 119887, 128812, 92715, 0,
- 12624, 0, 1673, 4811, 92383, 5986, 9338, 3046, 74480, 5985, 917928,
- 119598, 9820, 0, 12187, 0, 0, 5984, 0, 43308, 4393, 67650, 0, 0, 0, 0,
- 74826, 64733, 0, 0, 3491, 0, 0, 128219, 3514, 65485, 0, 7492, 0, 74605,
- 92483, 7514, 983367, 0, 194731, 7502, 7587, 68353, 0, 0, 63925, 0, 7610,
- 219, 0, 0, 692, 43588, 74433, 41635, 43241, 9688, 7147, 9535, 0, 93991,
- 0, 64530, 0, 64610, 11804, 0, 7149, 7453, 0, 8013, 0, 92301, 0, 8895,
- 5253, 70025, 5458, 0, 2866, 0, 127860, 65111, 68433, 6700, 120484, 0,
- 120583, 0, 8962, 77960, 9641, 43694, 7059, 983677, 0, 9604, 78700, 7441,
- 63826, 67970, 118941, 64392, 194735, 983687, 2844, 983941, 41974, 0,
- 12139, 67971, 0, 0, 3358, 65295, 0, 3104, 194734, 0, 194765, 983233,
- 5308, 0, 290, 0, 0, 2862, 2792, 195088, 983070, 0, 3268, 66591, 0, 6552,
- 42367, 7035, 120558, 0, 0, 1814, 0, 10240, 92338, 74305, 0, 74528, 65903,
- 0, 42646, 7606, 2591, 2837, 4341, 77956, 64482, 127337, 8163, 65270, 0,
- 77932, 0, 9112, 74431, 863, 9490, 119898, 128349, 43323, 120513, 119897,
- 9071, 127333, 0, 3654, 7789, 9637, 0, 2535, 65504, 7653, 40993, 119899,
- 66587, 195098, 0, 92401, 983894, 11006, 12927, 7807, 8073, 0, 10629, 0,
- 74088, 3056, 10823, 128797, 127327, 8762, 10508, 69689, 73770, 43969,
- 43193, 10737, 3463, 983065, 0, 66633, 8695, 4815, 11322, 5811, 12345,
- 7049, 119911, 5195, 195081, 0, 66639, 0, 0, 0, 128041, 0, 92385, 1262, 0,
- 6561, 19939, 0, 0, 128535, 119906, 0, 0, 983097, 0, 983667, 119907,
- 64612, 11991, 0, 0, 0, 1502, 917568, 0, 9107, 127316, 5702, 3655, 67661,
- 8430, 0, 74132, 120758, 0, 74057, 9603, 0, 5254, 120742, 7724, 74388,
- 68375, 10796, 5129, 0, 0, 590, 7579, 5614, 5893, 92280, 11720, 92496,
- 11721, 0, 4798, 0, 119316, 66038, 4793, 67851, 11726, 127541, 74204,
- 68610, 0, 68626, 894, 300, 917813, 12306, 66235, 8004, 0, 0, 2562,
- 126555, 0, 42503, 0, 11652, 0, 0, 119241, 64699, 126569, 5096, 5095,
- 2863, 3424, 92244, 10454, 42530, 5094, 119638, 0, 13156, 0, 10832, 5093,
- 0, 69852, 0, 5092, 10708, 11327, 0, 5091, 176, 0, 9153, 4104, 78599,
- 78601, 1215, 42712, 5744, 12272, 9832, 11777, 71299, 127371, 42881, 0,
- 8980, 118988, 67861, 8844, 7209, 0, 0, 4278, 0, 0, 194789, 0, 9074, 4348,
- 0, 65558, 65946, 8113, 7087, 5255, 1786, 661, 0, 0, 0, 74423, 71345, 586,
- 74414, 64359, 1267, 128269, 65468, 0, 65731, 0, 127179, 3621, 120473,
- 66666, 64211, 0, 6562, 12928, 0, 1228, 65490, 11383, 0, 0, 0, 1714,
- 74406, 127831, 0, 983921, 0, 66225, 0, 0, 42660, 11436, 2070, 64, 120694,
- 0, 10291, 10323, 2826, 0, 0, 0, 42008, 9708, 42710, 0, 42011, 41999,
- 92164, 12206, 5839, 1702, 1240, 74065, 6286, 0, 983969, 65833, 77848, 0,
- 1765, 0, 0, 65588, 0, 0, 0, 8401, 0, 42014, 0, 7030, 194704, 10479,
- 64959, 2852, 0, 0, 0, 0, 128586, 917951, 6963, 0, 12667, 64540, 74786,
- 10147, 12935, 127568, 126483, 0, 0, 0, 78757, 0, 0, 0, 0, 9994, 12467,
- 2864, 64719, 1148, 10435, 11462, 41675, 7084, 2765, 0, 43382, 0, 120719,
- 128188, 92516, 66662, 0, 78133, 9364, 194685, 74416, 0, 0, 77988, 263,
- 10449, 41288, 0, 41839, 78387, 983742, 77986, 0, 6931, 69722, 64355,
- 7177, 70105, 0, 0, 0, 4262, 10285, 10722, 42020, 126575, 6806, 6992,
- 42019, 0, 41290, 983716, 750, 0, 71304, 10163, 63913, 71300, 7032, 5954,
- 64931, 4314, 0, 198, 68453, 730, 120094, 63907, 77993, 78891, 13165,
- 7107, 74171, 42804, 678, 8240, 78015, 128784, 41378, 11008, 6938, 70026,
- 92637, 2097, 66246, 120560, 0, 0, 0, 3892, 68632, 69642, 6712, 66045,
- 41470, 64805, 0, 0, 128215, 64801, 0, 497, 12100, 5953, 92667, 7796,
- 69669, 43254, 73831, 0, 10293, 5952, 1281, 43747, 0, 0, 10677, 604,
- 41097, 9182, 1859, 0, 92603, 3425, 127488, 0, 2836, 0, 0, 9707, 0, 43202,
- 0, 0, 65199, 1738, 917818, 128158, 2832, 92702, 9670, 12937, 0, 66374,
- 917956, 0, 2822, 68122, 4436, 92519, 983723, 73752, 0, 64872, 92340,
- 1331, 0, 0, 0, 12708, 0, 5090, 5089, 127977, 0, 119109, 0, 128681, 319,
- 118847, 43479, 9477, 0, 0, 5087, 92325, 7640, 96, 5086, 0, 92379, 0,
- 5085, 64286, 92665, 0, 41422, 0, 119901, 42356, 3772, 0, 0, 5011, 0, 0,
- 126587, 0, 127165, 127241, 6677, 7601, 0, 591, 64419, 118953, 92262, 0,
- 118923, 70084, 0, 10939, 6106, 6933, 41271, 6760, 71343, 4534, 41270,
- 128876, 0, 65574, 0, 9224, 69853, 3671, 8976, 126474, 0, 41275, 6372,
- 128084, 55261, 7963, 6371, 0, 568, 0, 41273, 983730, 0, 6728, 0, 9715, 0,
- 8258, 11753, 74820, 0, 9602, 118919, 42, 0, 43688, 0, 0, 7458, 0, 0,
- 65385, 119900, 0, 11958, 0, 917822, 0, 6254, 42721, 66336, 8045, 11550,
- 0, 0, 983597, 42858, 11789, 65868, 5557, 10133, 9737, 13109, 0, 9467,
- 5558, 8878, 128136, 195036, 7451, 6706, 10146, 0, 9086, 64566, 0, 64584,
- 7437, 7454, 12594, 128690, 68362, 4546, 7731, 0, 70048, 74243, 0, 3805,
- 0, 194565, 44001, 41008, 0, 6307, 19949, 983790, 7544, 983045, 43469, 0,
- 0, 10152, 64422, 65091, 119113, 7602, 64729, 0, 43521, 0, 42302, 43711,
- 43523, 41447, 5559, 0, 8704, 2397, 5556, 0, 0, 0, 9011, 9630, 92633, 0,
- 93998, 5506, 0, 1911, 66652, 0, 9961, 8845, 66698, 0, 10792, 8889, 0,
- 2098, 0, 64751, 0, 66622, 0, 0, 74364, 0, 0, 983805, 74365, 7552, 0, 0,
- 65384, 7223, 4559, 0, 1956, 43138, 7024, 65728, 64501, 1210, 195077,
- 65175, 10184, 43140, 43654, 0, 0, 0, 38, 8533, 66669, 119124, 983293,
- 983792, 0, 4357, 0, 119837, 917863, 74233, 9967, 78884, 42860, 119838,
- 10941, 65721, 6962, 0, 0, 119324, 0, 11014, 127972, 8942, 12000, 69224,
- 92267, 128536, 11974, 92213, 42772, 127518, 11650, 5013, 92663, 126583,
- 66210, 118914, 6613, 92476, 0, 43819, 983770, 0, 64714, 0, 0, 12162,
- 12120, 43476, 983766, 11024, 74811, 66228, 10563, 0, 127196, 43522, 2462,
- 0, 1837, 0, 63972, 6957, 0, 120559, 4952, 65718, 65827, 5504, 65720,
- 65714, 65715, 65716, 0, 127005, 127119, 3109, 63975, 74028, 0, 8107,
- 119234, 1127, 455, 0, 63968, 127924, 3483, 119593, 1989, 0, 69678, 9104,
- 3503, 65375, 92509, 6694, 42633, 1864, 0, 74306, 41446, 2540, 7736, 0,
- 74064, 0, 10521, 0, 42173, 9705, 74124, 8604, 6955, 10916, 43684, 6149,
- 3887, 19956, 1411, 2824, 0, 10106, 127862, 1403, 128839, 1347, 9631,
- 74444, 0, 0, 0, 0, 8640, 0, 258, 1654, 0, 0, 0, 43314, 0, 0, 4042, 11478,
- 2873, 63977, 11522, 41668, 8549, 10861, 0, 63976, 0, 68623, 0, 74585,
- 41391, 0, 917903, 376, 6987, 9221, 0, 0, 8823, 128697, 12943, 65185,
- 41869, 12619, 0, 10154, 983043, 74439, 2039, 0, 7446, 1684, 63979, 10974,
- 458, 120620, 0, 69791, 127161, 11916, 65016, 0, 69671, 42115, 983133,
- 12288, 78057, 0, 1493, 42111, 7553, 4097, 128199, 13080, 0, 65808, 6610,
- 6030, 8059, 7508, 13131, 0, 983431, 0, 8794, 41278, 41629, 12154, 128192,
- 41277, 64658, 0, 64380, 6625, 74354, 19904, 0, 0, 0, 65371, 7078, 0, 833,
- 0, 6369, 0, 10979, 41953, 0, 41434, 6062, 0, 0, 19916, 6913, 933, 1341,
- 9842, 6720, 65744, 0, 983592, 128295, 0, 7405, 10105, 65810, 0, 41632,
- 7493, 55290, 0, 41622, 0, 0, 119556, 74584, 7632, 9716, 19954, 9805,
- 5990, 900, 0, 63957, 0, 0, 3612, 0, 64376, 93987, 5389, 92597, 0, 65938,
- 2839, 9621, 582, 0, 74368, 3749, 6949, 7569, 74061, 0, 0, 6956, 4403,
- 19962, 65559, 3299, 0, 917566, 119127, 9002, 0, 74372, 74236, 8478, 7598,
- 546, 42469, 65569, 1918, 9542, 472, 7716, 10319, 10383, 6996, 0, 63952,
- 8425, 3602, 8328, 11764, 118894, 0, 69796, 41183, 12907, 10271, 10287,
- 684, 43525, 0, 2854, 119586, 4592, 65755, 0, 92256, 11963, 43620, 0,
- 78249, 0, 128551, 128809, 9881, 43115, 65757, 3415, 119131, 0, 8648, 0,
- 6741, 43047, 0, 13180, 128517, 418, 917972, 64495, 10295, 10327, 10391,
- 41752, 74339, 8641, 41449, 0, 74100, 0, 10911, 6942, 0, 1024, 42849,
- 41751, 69776, 8941, 983556, 4554, 0, 9023, 11685, 0, 9928, 78617, 0,
- 11437, 43741, 92163, 120700, 63967, 983483, 41206, 120724, 9049, 41185,
- 43166, 0, 11680, 92619, 11686, 78544, 65224, 4565, 4655, 119553, 0,
- 92183, 64523, 10343, 10407, 0, 66671, 11466, 0, 128003, 42890, 74013,
- 12050, 68201, 2860, 0, 0, 0, 42792, 5743, 10424, 12065, 42872, 0, 92342,
- 0, 8875, 0, 0, 917991, 7531, 12847, 2413, 0, 78635, 962, 0, 12855, 41196,
- 42564, 0, 1582, 983715, 5508, 0, 0, 0, 10801, 69876, 92354, 0, 7173, 496,
- 10439, 4313, 64607, 69638, 7860, 0, 906, 42793, 2842, 6405, 64722, 13132,
- 798, 64694, 12801, 8406, 1153, 92173, 64788, 0, 8054, 9174, 128652,
- 917976, 9964, 74409, 41611, 4642, 66574, 11556, 917982, 0, 78857, 42089,
- 78855, 9008, 0, 126592, 195096, 42079, 917981, 77924, 42513, 77927,
- 42842, 73985, 65285, 118974, 127003, 983702, 0, 0, 0, 11335, 64069,
- 42093, 3920, 0, 0, 0, 0, 4580, 41967, 983732, 64384, 92167, 93984, 3021,
- 42004, 0, 0, 42317, 41998, 0, 6946, 0, 0, 0, 128193, 65204, 0, 68113,
- 42690, 9880, 42010, 74824, 64589, 10111, 64875, 127880, 68399, 43998,
- 11360, 0, 0, 0, 118826, 42149, 0, 0, 0, 64941, 77919, 120421, 128077, 0,
- 55247, 4110, 66005, 6959, 10929, 119110, 0, 66703, 77921, 8617, 41982,
- 6025, 69242, 983176, 0, 0, 0, 9597, 42099, 43172, 983376, 10117, 983169,
- 92297, 41636, 0, 0, 120681, 8301, 0, 0, 187, 0, 65669, 128339, 4963, 0,
- 127517, 0, 8964, 65676, 7775, 0, 41948, 0, 0, 0, 41942, 65449, 3160,
- 10081, 13226, 42121, 42475, 42663, 128210, 41766, 119114, 65882, 78849,
- 41760, 1189, 905, 480, 10985, 41733, 67859, 9629, 6742, 1745, 43625,
- 73835, 7888, 0, 3980, 0, 42656, 41507, 8806, 7023, 0, 74279, 9447, 78651,
- 7867, 69218, 6236, 983134, 0, 10505, 0, 12851, 118948, 348, 5474, 128843,
- 3103, 0, 41753, 128540, 0, 0, 78844, 78845, 41739, 78843, 42515, 10931,
- 41756, 43347, 42560, 5391, 41746, 119147, 92591, 41259, 5561, 69930,
- 2691, 0, 65553, 7933, 5562, 69800, 128265, 41262, 128146, 64421, 74846,
- 41251, 0, 0, 3979, 0, 0, 74813, 983739, 0, 0, 0, 92524, 41266, 0, 66566,
- 128836, 10585, 65741, 41737, 9574, 2666, 0, 41738, 831, 419, 13126,
- 10716, 0, 42822, 0, 6434, 0, 6939, 7766, 6432, 128106, 69932, 916, 769,
- 41742, 11968, 74805, 6433, 5563, 547, 1943, 6439, 5560, 4994, 487,
- 126537, 4497, 3754, 127056, 120424, 9039, 0, 41776, 0, 8716, 1595, 41615,
- 0, 0, 74260, 0, 42854, 43219, 128709, 983460, 12185, 128879, 70072,
- 68355, 68357, 0, 42856, 8634, 0, 983397, 4209, 120702, 0, 65879, 41538,
- 65612, 127543, 669, 5679, 0, 69786, 92540, 0, 983464, 5678, 11821, 0,
- 6711, 460, 0, 0, 983461, 0, 120747, 0, 0, 78050, 119022, 0, 983462, 0,
- 7782, 9044, 4974, 11760, 78494, 7577, 65711, 41912, 1216, 0, 128079,
- 5792, 0, 0, 78501, 0, 2933, 12244, 0, 5683, 983392, 0, 78119, 1549, 0, 0,
- 120398, 5682, 6206, 8670, 10256, 5680, 69935, 10001, 128512, 69768, 1449,
- 10241, 78290, 128228, 0, 10552, 64342, 41922, 128548, 8584, 68030, 5567,
- 2717, 0, 0, 5564, 42886, 41908, 42882, 5565, 983256, 128026, 0, 65708,
- 65709, 5566, 69803, 65704, 65705, 11904, 42875, 43373, 42539, 5942, 8468,
- 120561, 10361, 10425, 65697, 65698, 65699, 0, 66598, 0, 64664, 10647,
- 78702, 78703, 78690, 457, 78502, 65701, 1934, 43006, 119903, 8802, 78710,
- 65130, 11747, 78709, 6087, 78705, 78716, 41757, 78711, 8043, 8950, 65694,
- 64485, 43534, 10457, 0, 11961, 78725, 78722, 78723, 78720, 78721, 0,
- 65515, 9499, 10035, 13069, 71309, 0, 9889, 68184, 42806, 0, 7256, 0, 0,
- 1667, 42161, 0, 42428, 0, 6934, 0, 10802, 64861, 6556, 78390, 0, 8101,
- 3610, 983199, 41748, 4995, 955, 65907, 119208, 5350, 64339, 78306, 64549,
- 10875, 128662, 5477, 65692, 0, 128532, 120397, 12896, 10456, 917954, 0,
- 3874, 0, 0, 983619, 120331, 0, 0, 65603, 0, 65687, 0, 41038, 74009,
- 119570, 42239, 8536, 78740, 78324, 78726, 74432, 724, 0, 1455, 78749,
- 7183, 64583, 78747, 68443, 4175, 78741, 43614, 69801, 939, 0, 43520,
- 68613, 74569, 917958, 0, 78763, 78764, 78760, 10788, 6088, 78759, 78755,
- 190, 0, 12593, 0, 8188, 64408, 0, 4417, 983213, 92261, 6370, 0, 7827,
- 68441, 6965, 0, 0, 13201, 128205, 69896, 0, 74382, 73781, 7918, 73988, 0,
- 0, 917884, 1728, 0, 43764, 178, 12972, 92679, 0, 917887, 92563, 983381,
- 0, 78327, 120405, 65690, 0, 0, 119054, 0, 9252, 917889, 4652, 68371, 0,
- 0, 0, 13065, 9923, 10806, 0, 11763, 70016, 120688, 6723, 78187, 0, 6993,
- 0, 0, 8333, 0, 0, 11390, 0, 74464, 0, 92320, 74080, 983315, 69911, 11910,
- 92559, 8278, 8963, 4034, 128560, 0, 65344, 120517, 41747, 0, 0, 8677, 0,
- 12707, 9350, 66037, 128180, 8836, 12315, 12747, 8300, 983750, 0, 7491,
- 8856, 71361, 0, 43150, 127768, 120404, 65389, 120402, 120403, 10813,
- 2592, 12853, 43269, 7263, 120244, 6536, 120238, 120239, 65516, 12321,
- 120391, 120388, 55287, 10007, 120246, 9588, 120248, 1596, 120383, 41994,
- 65801, 128808, 0, 66572, 0, 0, 10613, 6697, 12805, 41928, 40981, 78403,
- 78409, 5006, 64328, 0, 9931, 0, 8825, 74555, 65940, 43259, 0, 6107, 0,
- 119177, 0, 78401, 128641, 11783, 335, 120227, 64689, 438, 4510, 5765,
- 8721, 120233, 119227, 6092, 12840, 43112, 8876, 120231, 8096, 10284,
- 128515, 0, 0, 10380, 8733, 983072, 128240, 41602, 0, 92308, 74831,
- 917901, 0, 73747, 65399, 0, 64591, 42405, 0, 120820, 843, 11541, 0,
- 917898, 2065, 41935, 74496, 41902, 0, 0, 215, 41258, 77875, 43159, 1953,
- 9579, 41938, 1256, 3910, 9407, 6242, 0, 983100, 41257, 41900, 8675,
- 10700, 8805, 1742, 0, 9333, 8202, 127750, 0, 983197, 0, 0, 73882, 499,
- 983049, 43467, 0, 43818, 0, 1712, 5932, 77845, 41762, 983104, 0, 11967,
- 1775, 0, 0, 0, 0, 128009, 9458, 0, 6470, 9180, 120380, 43176, 0, 0,
- 42782, 0, 0, 0, 128309, 74777, 120669, 9414, 120382, 73782, 73969, 565,
- 42484, 5794, 201, 2662, 42292, 0, 8254, 0, 10975, 0, 120625, 74763, 1022,
- 4108, 3880, 74247, 0, 0, 92263, 917980, 7507, 0, 43149, 0, 65031, 7961,
- 1636, 0, 65029, 65024, 0, 12473, 6534, 0, 99, 98, 97, 120571, 67584,
- 4049, 74163, 127065, 7090, 0, 7892, 917969, 10777, 917803, 65310, 65562,
- 66599, 66722, 0, 8039, 3363, 66594, 43434, 0, 0, 12596, 66595, 42258,
- 42570, 5593, 119148, 120711, 92425, 10100, 6061, 64854, 119, 118, 117,
- 116, 12998, 122, 121, 120, 111, 110, 109, 108, 115, 114, 113, 112, 103,
- 102, 101, 100, 107, 106, 105, 104, 6436, 73974, 534, 41212, 77931, 1536,
- 64093, 73970, 77930, 127157, 0, 6020, 12716, 127112, 12744, 475, 120394,
- 13266, 127813, 127111, 0, 73926, 0, 10645, 1212, 6543, 983307, 8134,
- 128028, 2913, 73870, 127113, 1866, 983229, 195095, 0, 8923, 1645, 12059,
- 66585, 71297, 3196, 0, 0, 5935, 1250, 127066, 8174, 9787, 6733, 9859,
- 7916, 9861, 9860, 5258, 1882, 1892, 6731, 10882, 405, 11454, 73911, 0,
- 128781, 41169, 8939, 41245, 0, 41170, 1454, 11369, 6477, 12157, 0, 0, 0,
- 41172, 7855, 0, 0, 10480, 0, 0, 77936, 8264, 12610, 983308, 645, 126616,
+ 78319, 63959, 0, 9942, 13231, 983578, 64752, 4732, 194666, 11596, 78142,
+ 65187, 1626, 63983, 10110, 64772, 42024, 6420, 42028, 92294, 10509, 2795,
+ 4910, 129193, 69231, 64753, 6275, 93957, 118830, 63978, 11044, 3229,
+ 6423, 42774, 0, 0, 68526, 12823, 2331, 127788, 7085, 6137, 0, 7524,
+ 120721, 917809, 8346, 128438, 8338, 128315, 65043, 77982, 822, 70412,
+ 9903, 64721, 42722, 69877, 82956, 78655, 66882, 82959, 78484, 41265,
+ 5311, 1795, 965, 118791, 10587, 43962, 11278, 78632, 74111, 128095,
+ 12946, 121076, 71921, 120349, 6294, 3144, 113706, 127967, 65019, 74078,
+ 73990, 65111, 983960, 748, 41067, 2330, 535, 3148, 12375, 78799, 194629,
+ 10556, 2475, 12388, 4889, 8968, 67863, 3593, 74076, 82949, 2342, 82951,
+ 82944, 65206, 4894, 82947, 4890, 121059, 64433, 581, 4893, 42929, 6571,
+ 65545, 4888, 4157, 78048, 78049, 64651, 78047, 0, 10119, 6415, 42893, 0,
+ 69702, 983937, 0, 11375, 64746, 2332, 78063, 412, 78061, 42928, 42880,
+ 43587, 121098, 0, 0, 70461, 65197, 78066, 12203, 78064, 78065, 8913,
+ 65854, 4875, 65811, 75024, 120389, 71854, 9344, 8826, 92916, 120395,
+ 13104, 67828, 11997, 120393, 78075, 0, 3134, 83096, 65696, 72432, 121412,
+ 66217, 121190, 8334, 92755, 83207, 3449, 121264, 13100, 78414, 78413,
+ 83216, 66405, 70430, 83089, 83203, 127250, 1908, 120167, 4328, 10734,
+ 127014, 83198, 67825, 7804, 78272, 10811, 6250, 11339, 4914, 11367,
+ 83510, 78054, 4917, 74516, 74208, 64285, 4912, 5464, 127836, 83100, 2361,
+ 7971, 78072, 78073, 55243, 78071, 983575, 8086, 74317, 6707, 8319, 2312,
+ 40977, 10960, 40962, 8305, 12573, 71131, 40980, 983964, 13202, 127816,
+ 12582, 78282, 983048, 69856, 42438, 55221, 6288, 78280, 127946, 5653,
+ 42400, 10891, 7698, 5658, 70401, 70039, 0, 70460, 4913, 71060, 128562,
+ 71333, 42326, 121119, 12728, 92685, 42478, 2327, 0, 12563, 42287, 12705,
+ 120829, 83081, 12588, 8821, 6153, 2867, 83085, 66312, 698, 83076, 83087,
+ 10356, 70017, 128570, 651, 12641, 83138, 125098, 120710, 129064, 41552,
+ 65115, 78465, 78467, 78463, 74905, 127516, 78461, 92960, 66927, 64945,
+ 4716, 43277, 120932, 78474, 12340, 120568, 120928, 194700, 55264, 41211,
+ 120676, 8703, 5462, 83195, 83185, 10101, 0, 70049, 8479, 4151, 41933,
+ 83189, 0, 66254, 120821, 68497, 0, 128654, 113799, 83159, 74050, 42651,
+ 127371, 0, 0, 83225, 83218, 12278, 75011, 128405, 0, 2700, 12576, 7842,
+ 12899, 83155, 0, 2699, 129304, 73845, 2985, 83149, 68648, 83146, 12192,
+ 119314, 0, 66489, 9827, 119310, 8609, 119308, 67426, 119306, 11481,
+ 41210, 119305, 0, 35, 70838, 67431, 66694, 68479, 78477, 67428, 43596,
+ 6090, 64257, 7812, 10534, 0, 78485, 73848, 67975, 4272, 78321, 40967,
+ 40964, 917825, 12704, 78487, 43306, 0, 64497, 12138, 7930, 0, 2292,
+ 68216, 194871, 121390, 5244, 4189, 92697, 67596, 127504, 4188, 1879,
+ 70463, 968, 0, 43743, 0, 8873, 2279, 127100, 917827, 65555, 12574, 0,
+ 92749, 92753, 74490, 127099, 11838, 75001, 0, 0, 42682, 12578, 12720, 0,
+ 41227, 0, 12346, 127101, 64848, 69950, 917950, 7251, 0, 120382, 118850,
+ 119141, 128461, 66015, 67332, 959, 8885, 12564, 66457, 78808, 9469, 9632,
+ 92231, 74761, 64323, 127335, 128842, 0, 11132, 310, 120924, 41281, 10976,
+ 0, 71325, 128364, 74266, 10054, 6497, 8574, 917823, 9012, 19958, 74420,
+ 65089, 13215, 12730, 65163, 64260, 374, 43195, 816, 92783, 0, 83191,
+ 41934, 7465, 74615, 92752, 127895, 4715, 6101, 71089, 41936, 82967, 4879,
+ 43965, 65446, 0, 307, 127147, 9585, 5374, 127962, 128059, 0, 129189,
+ 126618, 120390, 74953, 65567, 120614, 1929, 120984, 12142, 194696, 12236,
+ 41419, 194618, 120610, 12982, 75003, 5378, 75004, 120957, 41421, 75005,
+ 4462, 0, 126599, 128092, 821, 0, 2498, 5800, 120157, 67758, 1760, 2421,
+ 4469, 2324, 828, 3611, 78400, 757, 1185, 0, 78770, 43597, 10628, 74808,
+ 68849, 7999, 43971, 11217, 121224, 10634, 10942, 7713, 2348, 0, 64374,
+ 4380, 128284, 83061, 9982, 64324, 41240, 862, 64468, 78462, 1810, 3673,
+ 5137, 194617, 0, 7277, 65622, 65069, 7566, 64688, 67143, 194592, 74957,
+ 43912, 128385, 4748, 92228, 129185, 194601, 42260, 5871, 119075, 121278,
+ 74576, 44019, 194720, 128189, 3967, 71098, 13137, 8775, 127945, 0, 2963,
+ 917785, 8410, 4454, 723, 83084, 966, 4449, 92330, 92238, 75022, 7819,
+ 2320, 194589, 339, 4968, 194590, 120399, 8075, 55276, 83057, 8047, 0,
+ 78827, 12634, 41542, 78780, 7466, 6705, 12174, 42610, 124934, 74452,
+ 983763, 1584, 66645, 6045, 6729, 120640, 65218, 11559, 194983, 78062,
+ 7537, 124991, 11370, 125093, 10330, 78798, 10394, 92236, 74194, 0,
+ 127929, 9780, 0, 11117, 74993, 77950, 67091, 7074, 92648, 194579, 194582,
+ 11414, 68781, 2531, 13034, 129159, 0, 4211, 1259, 7517, 70866, 70198,
+ 83122, 40996, 13037, 7092, 641, 5219, 83125, 194566, 11064, 41129,
+ 121253, 42850, 13035, 9075, 92387, 5466, 74293, 74530, 64098, 65793,
+ 4535, 121267, 4271, 78417, 127059, 6769, 41410, 127257, 64262, 6767,
+ 41407, 66273, 917816, 6755, 118864, 9046, 120886, 126608, 70830, 0,
+ 83232, 0, 67675, 983694, 83234, 121254, 64338, 2563, 13033, 247, 83229,
+ 0, 12338, 4651, 67355, 11270, 0, 74630, 11933, 70107, 0, 41903, 43447,
+ 11001, 73827, 42255, 83243, 83238, 69821, 41905, 67350, 0, 10775, 9793,
+ 5009, 128774, 42269, 64587, 983063, 42535, 69812, 64529, 41408, 42853,
+ 3877, 120795, 42674, 8147, 43566, 119021, 67342, 10236, 65918, 43782,
+ 78769, 78060, 64506, 69652, 118921, 4747, 83251, 69844, 43200, 5832,
+ 71208, 83250, 5141, 42600, 71866, 43203, 127208, 120129, 43286, 0,
+ 128211, 43778, 7657, 41305, 71132, 43781, 11303, 65547, 128609, 7031,
+ 859, 128488, 83262, 83237, 6059, 126985, 55235, 194817, 8535, 128638,
+ 65196, 125084, 66032, 11488, 120481, 120786, 42233, 64140, 9946, 7667,
+ 194792, 11822, 128591, 11135, 983600, 0, 1788, 1579, 120482, 71298, 0,
+ 983461, 0, 9028, 119571, 69234, 71061, 92545, 1285, 64882, 41242, 70086,
+ 83111, 12640, 83112, 7401, 0, 12625, 68198, 0, 70082, 3940, 41597, 43754,
+ 3396, 12642, 8665, 983610, 983609, 12630, 1653, 917815, 10153, 0, 6166,
+ 70825, 118989, 129409, 8815, 66673, 65046, 9285, 913, 42259, 11180,
+ 119318, 2142, 68454, 42485, 94012, 7878, 8211, 42293, 64377, 120478,
+ 92643, 121118, 194673, 12032, 0, 9725, 983491, 78431, 5263, 12818, 78430,
+ 41939, 10022, 65387, 78419, 42777, 10139, 980, 43698, 65386, 2208, 68848,
+ 43701, 43198, 7184, 92542, 128423, 128875, 10085, 74979, 0, 67394, 6634,
+ 92373, 125085, 83413, 8072, 119321, 43700, 0, 8872, 7783, 917991, 12398,
+ 8237, 0, 0, 12395, 0, 126977, 74891, 9914, 2217, 92323, 73975, 6367,
+ 6351, 66688, 92740, 68766, 0, 64735, 41243, 92199, 7808, 1829, 126541,
+ 41937, 4358, 43272, 6353, 0, 0, 120422, 93045, 1710, 120140, 0, 65607,
+ 67234, 49, 6627, 0, 6258, 10683, 78672, 9741, 78329, 5649, 78441, 43443,
+ 64418, 1643, 65213, 8405, 3470, 67244, 13213, 42452, 78331, 78013, 78445,
+ 125124, 1072, 78457, 78452, 78454, 6576, 41988, 41132, 65675, 1080,
+ 70824, 9886, 55225, 1101, 68404, 12309, 55227, 71082, 12632, 1086, 1869,
+ 78685, 7680, 0, 65458, 120714, 12639, 3380, 8123, 1091, 12638, 7977,
+ 4501, 41099, 0, 66309, 120141, 92758, 1494, 113716, 126613, 0, 11693,
+ 71255, 10494, 92655, 65872, 12363, 11386, 113727, 0, 0, 78771, 64582, 0,
+ 73794, 67395, 8022, 120989, 120462, 74106, 12413, 66883, 917994, 93035,
+ 75007, 5570, 1881, 7210, 120425, 1012, 43752, 0, 120709, 7208, 66442,
+ 5569, 195007, 42339, 92997, 6063, 67888, 69981, 119594, 6053, 65602, 0,
+ 92201, 64727, 9160, 70301, 0, 92905, 92180, 10503, 70387, 3423, 3870,
+ 4279, 8490, 120114, 4319, 64786, 8602, 120110, 11326, 92204, 983116, 0,
+ 74961, 78333, 120117, 120118, 120099, 92385, 65087, 5571, 3674, 9740,
+ 9121, 5568, 71464, 120108, 42085, 10107, 42159, 42870, 113700, 589, 7050,
+ 983800, 43281, 10233, 41263, 66251, 65729, 66253, 126497, 74099, 42645,
+ 92331, 121358, 8583, 121123, 5847, 6928, 128074, 0, 0, 0, 0, 66592,
+ 12204, 917962, 19966, 77856, 42561, 120626, 129170, 66854, 8120, 70311,
+ 194585, 0, 70308, 41063, 120417, 10664, 0, 8369, 0, 4551, 194964, 3369,
+ 74971, 121094, 9673, 66334, 65580, 10478, 118960, 12517, 557, 9457,
+ 12034, 68496, 6355, 12519, 41004, 0, 74937, 74094, 917888, 125060, 77970,
+ 92171, 127219, 128175, 12111, 3927, 0, 12515, 1474, 67893, 5492, 6923,
+ 92281, 10441, 73836, 0, 43990, 5493, 0, 74319, 0, 66635, 12019, 0, 1618,
+ 0, 120474, 9645, 10430, 126636, 5853, 13063, 10363, 983898, 12956,
+ 113666, 120729, 11314, 917582, 12060, 128648, 78392, 12826, 6329, 0,
+ 10514, 65517, 74395, 2707, 8309, 0, 127054, 78398, 43570, 2697, 43420,
+ 78396, 68247, 2695, 42171, 70809, 68334, 0, 67617, 118971, 0, 2693,
+ 12125, 12766, 120409, 1164, 113729, 70283, 41918, 77849, 67150, 8687,
+ 66009, 12178, 7053, 92540, 7469, 0, 5248, 12218, 69988, 6427, 42884,
+ 41123, 11176, 0, 42873, 41126, 9991, 41128, 74371, 127031, 983932, 9873,
+ 0, 42877, 7994, 64762, 2053, 42843, 6591, 9340, 128841, 1589, 128691,
+ 296, 67712, 78852, 121409, 67841, 74370, 128504, 8922, 128068, 43829,
+ 12700, 74836, 0, 12579, 0, 12575, 6416, 5656, 2891, 13262, 65590, 5299,
+ 78837, 11473, 5449, 1252, 127328, 78404, 41431, 74369, 65373, 5295,
+ 917569, 68320, 1223, 1642, 174, 78399, 883, 4161, 12691, 42603, 41413,
+ 3212, 41459, 3211, 74810, 41425, 74598, 78412, 74450, 9728, 3846, 8070,
+ 6150, 6636, 4370, 128619, 129158, 74178, 74587, 74117, 195094, 0, 113748,
+ 4986, 12189, 127512, 67648, 120499, 94001, 4257, 12104, 71176, 6220,
+ 9004, 65561, 983881, 77949, 0, 68135, 917576, 77946, 83453, 69679, 69684,
+ 9890, 78561, 12971, 78453, 92556, 73898, 11979, 70051, 71897, 83451, 0,
+ 9635, 12600, 8871, 67366, 68491, 0, 6469, 74227, 118900, 65304, 4679,
+ 10230, 64300, 64867, 3427, 4240, 67376, 67375, 67374, 67373, 42916,
+ 129155, 128279, 67377, 7282, 78728, 65733, 4445, 67372, 67371, 3494,
+ 67369, 6555, 129148, 77976, 0, 0, 78566, 0, 983189, 65898, 983246, 65312,
+ 5447, 0, 12895, 65593, 4010, 83154, 41106, 74357, 64448, 93994, 41105,
+ 74114, 65820, 6232, 68233, 126625, 0, 43608, 119091, 78118, 6538, 4335,
+ 78364, 3941, 41122, 11061, 78363, 64892, 9113, 1954, 12155, 983674,
+ 42878, 11500, 67405, 128152, 74578, 0, 65832, 128667, 0, 70789, 67333,
+ 119230, 4586, 0, 350, 10951, 0, 509, 67336, 983879, 92307, 0, 0, 5133,
+ 67382, 0, 9500, 0, 4957, 64741, 2422, 2212, 983080, 67381, 67380, 2496,
+ 11516, 944, 67817, 3890, 12168, 1438, 67813, 68335, 70003, 41947, 1220,
+ 120828, 74946, 70854, 74058, 1571, 42630, 41949, 42805, 8270, 943, 564,
+ 0, 312, 41980, 983944, 128295, 70797, 8877, 269, 4429, 6272, 9617, 1460,
+ 6954, 78657, 41120, 65121, 10862, 6060, 41119, 41416, 74355, 4173, 0,
+ 82948, 0, 1906, 121169, 11532, 74073, 127338, 0, 1985, 6296, 9582, 75071,
+ 64287, 128406, 78115, 11428, 1730, 2457, 917808, 19918, 10469, 0, 68088,
+ 7703, 8840, 8035, 120711, 0, 92230, 983357, 6129, 128437, 78586, 128268,
+ 0, 7874, 8681, 119092, 11206, 13136, 0, 0, 70102, 63886, 70450, 9605,
+ 71308, 13220, 67348, 67354, 5514, 74960, 9228, 67349, 67356, 67346, 5240,
+ 9811, 10012, 3096, 0, 0, 74526, 66676, 65873, 0, 128179, 0, 9501, 120832,
+ 1272, 64536, 65465, 64654, 7467, 0, 1467, 10158, 10040, 0, 9519, 68759,
+ 70312, 195085, 68820, 12193, 70400, 127240, 121373, 0, 983355, 19935,
+ 120733, 92162, 68801, 127955, 83133, 93057, 5275, 120195, 128632, 8637,
+ 43682, 0, 3789, 63880, 11471, 43554, 65862, 11474, 66332, 66603, 68784,
+ 2426, 12042, 92194, 983911, 9537, 3961, 12115, 77953, 2605, 4500, 64561,
+ 55224, 4981, 74644, 0, 41646, 11667, 42686, 74991, 42362, 64686, 4499,
+ 41649, 7589, 128776, 0, 3237, 0, 66895, 68296, 8541, 78298, 70034, 41866,
+ 0, 983814, 94056, 11174, 69924, 43555, 2823, 9559, 10060, 41940, 8299,
+ 41945, 7132, 41941, 3308, 7190, 64880, 8614, 65220, 41493, 128679, 41699,
+ 10762, 43780, 12999, 119245, 128494, 8106, 4128, 0, 6274, 4494, 983082,
+ 4012, 10395, 983591, 43633, 65447, 78260, 120973, 11004, 695, 739, 696,
+ 7611, 121073, 42755, 74802, 9227, 7506, 7510, 69937, 691, 738, 7511,
+ 7512, 7515, 3868, 688, 41847, 690, 2548, 737, 974, 8003, 7406, 127353,
+ 120166, 128688, 3985, 66425, 65860, 41851, 7051, 69777, 4682, 71873,
+ 12809, 6406, 4685, 92505, 10879, 10347, 4680, 6341, 0, 3851, 8132, 74325,
+ 119263, 120855, 127948, 41958, 119176, 917908, 194855, 0, 42657, 71075,
+ 7643, 42373, 11714, 67587, 43568, 983175, 11717, 7650, 10594, 64951,
+ 7647, 7649, 128155, 7646, 0, 78082, 9651, 126475, 3891, 127205, 0, 2337,
+ 1735, 74324, 11134, 2363, 121008, 92443, 43561, 67706, 128032, 74146,
+ 1860, 7495, 7580, 5812, 7497, 7584, 119140, 127853, 78753, 120347, 7727,
+ 0, 8498, 69818, 8949, 3065, 42719, 7135, 1569, 92375, 12534, 12124, 7690,
+ 0, 12533, 983796, 6418, 4543, 78086, 6969, 128444, 74800, 71051, 67974,
+ 10859, 128650, 983801, 63894, 120760, 12282, 66192, 983583, 74592, 8850,
+ 74275, 9238, 10617, 68063, 917909, 92625, 917801, 12791, 0, 94069,
+ 127843, 4447, 71065, 12793, 12900, 92377, 10950, 983449, 74639, 12790,
+ 41400, 119128, 66607, 12792, 42232, 119239, 1744, 12789, 10366, 12317,
+ 41310, 120730, 41399, 0, 0, 55258, 0, 12690, 127763, 0, 43672, 127840,
+ 41652, 2974, 9010, 11315, 983808, 278, 121204, 41405, 43871, 0, 10077,
+ 63853, 74557, 42586, 0, 0, 6002, 67335, 43553, 11189, 67338, 67337,
+ 12787, 41308, 7934, 65306, 120263, 120940, 94042, 8646, 128257, 77829,
+ 71360, 0, 6413, 6550, 113759, 1940, 2809, 43637, 220, 65193, 43551,
+ 10678, 10044, 68841, 128121, 983816, 68290, 6403, 5707, 10393, 127532, 0,
+ 66614, 0, 0, 0, 10297, 0, 3742, 67331, 3959, 0, 120466, 0, 2467, 68806,
+ 6003, 63844, 6663, 8040, 983220, 43758, 4182, 78171, 4676, 120501, 9210,
+ 0, 2510, 0, 10208, 78168, 92361, 11540, 43546, 6692, 6837, 41060, 128018,
+ 4668, 9083, 0, 0, 78144, 1559, 63831, 9677, 67340, 67347, 65256, 67345,
+ 67344, 983352, 983266, 365, 12056, 43027, 120423, 41716, 128236, 67352,
+ 67351, 5516, 2845, 7717, 8036, 41717, 67353, 544, 12045, 6278, 74632,
+ 5515, 129186, 120884, 983051, 65339, 43221, 2211, 0, 5517, 70116, 74225,
+ 74841, 67884, 128414, 67890, 67885, 67880, 67881, 67882, 67883, 120199,
+ 118883, 67879, 127188, 1902, 67887, 9638, 12976, 126546, 12483, 12368,
+ 41769, 42726, 41765, 7361, 6667, 67874, 7556, 67878, 74351, 11264, 989,
+ 42677, 67889, 93040, 1311, 128949, 4326, 11000, 63824, 13068, 10932,
+ 128880, 6917, 78155, 120837, 949, 77882, 917968, 6148, 8605, 42253,
+ 78177, 66906, 0, 42715, 71432, 70282, 983373, 63871, 0, 41796, 1269,
+ 6530, 121414, 65057, 70493, 5144, 12221, 42716, 68299, 4431, 4331,
+ 983729, 128675, 41834, 5279, 121362, 10336, 8312, 0, 42701, 92959, 0,
+ 78165, 66036, 70166, 120937, 6428, 42270, 983726, 983596, 43059, 42666,
+ 5256, 1067, 255, 12131, 128742, 9493, 74990, 41014, 11793, 194920,
+ 121195, 74394, 43460, 10653, 42723, 983854, 119632, 70427, 6560, 7016,
+ 74274, 69986, 43556, 3929, 67977, 6614, 2768, 92504, 9746, 5135, 11811,
+ 12796, 11953, 0, 69761, 5139, 346, 74303, 6305, 12795, 4675, 5168, 78552,
+ 43845, 74315, 74361, 8253, 8817, 1136, 917931, 43563, 92232, 128914,
+ 66410, 7392, 8230, 9365, 71194, 127109, 983607, 66915, 128402, 4041, 0,
+ 2357, 43240, 12786, 229, 43834, 119884, 44004, 7142, 119881, 12350,
+ 65554, 119882, 71305, 119876, 12785, 63863, 43795, 7770, 10712, 64853,
+ 12686, 43831, 42375, 65780, 124944, 66352, 10470, 71119, 11059, 10791,
+ 917944, 450, 119328, 127254, 10432, 12097, 5450, 64691, 1233, 0, 44009,
+ 78284, 66338, 66395, 917832, 1839, 118799, 983219, 10927, 1701, 983664,
+ 2388, 41749, 41761, 5453, 8361, 119865, 895, 5444, 41763, 64889, 7143,
+ 92493, 78677, 983137, 92429, 69983, 66432, 8801, 3053, 4340, 983044,
+ 128013, 65812, 120675, 70001, 41824, 67985, 120203, 92600, 127053, 42700,
+ 194805, 127980, 194807, 78676, 92356, 194808, 127844, 0, 4493, 4336,
+ 129171, 2314, 43602, 78826, 119325, 194811, 42439, 64638, 42327, 43528,
+ 4489, 68750, 125116, 194793, 1912, 42385, 10306, 10370, 0, 194761, 8867,
+ 10250, 10258, 2712, 1635, 71064, 1410, 78763, 983252, 118878, 983567,
+ 128715, 9919, 120528, 559, 128157, 41825, 121274, 74641, 4892, 74016,
+ 121502, 6542, 41957, 128865, 5777, 127167, 759, 65749, 2079, 65248,
+ 12788, 64487, 64552, 93063, 10223, 42062, 121279, 0, 74246, 3668, 65754,
+ 43560, 12226, 67991, 65149, 2340, 41959, 71463, 194785, 194788, 43618,
+ 65747, 10937, 2962, 0, 2321, 3587, 65745, 67236, 8921, 9952, 128941, 0,
+ 42714, 9951, 43409, 194770, 2949, 66012, 194775, 194774, 2958, 68359,
+ 41820, 2300, 2395, 120061, 9976, 120043, 120050, 71896, 68220, 128143,
+ 42809, 42807, 70798, 66290, 10198, 4150, 64371, 8318, 41790, 67976,
+ 41898, 2360, 41794, 917942, 70796, 92163, 93033, 0, 2418, 983098, 2411,
+ 11336, 799, 63823, 10276, 10308, 10372, 917541, 41772, 42813, 2317,
+ 10260, 118980, 55284, 78686, 127177, 10384, 194794, 121147, 129111, 7753,
+ 2351, 6655, 64489, 69931, 70199, 77872, 4443, 42779, 230, 0, 68067,
+ 43549, 4855, 42150, 65739, 5441, 41896, 10288, 10320, 0, 855, 7046, 6109,
+ 65045, 63839, 78198, 2049, 10098, 917779, 74145, 127943, 10264, 10280,
+ 9184, 10376, 7013, 4467, 78684, 917554, 92260, 41887, 0, 4862, 9735,
+ 6537, 120591, 74286, 3914, 92178, 68823, 9065, 12961, 0, 120456, 92253,
+ 128204, 289, 128714, 4694, 11420, 4690, 0, 120514, 917978, 4693, 73893,
+ 42724, 69977, 4688, 120454, 128507, 0, 67994, 8238, 3110, 120162, 3565,
+ 120163, 6528, 78387, 43035, 69898, 218, 983850, 1520, 0, 4786, 983168,
+ 43225, 4602, 92400, 78167, 10088, 6548, 121157, 120156, 43978, 8988,
+ 8888, 92724, 74812, 69709, 983967, 10666, 0, 73902, 69740, 121436, 0,
+ 9975, 113704, 119902, 4689, 8932, 0, 65560, 119209, 74441, 78810, 0, 0,
+ 67987, 0, 128828, 0, 67989, 119029, 10065, 8207, 71900, 92613, 128011,
+ 121028, 662, 128720, 9244, 194863, 83183, 119261, 983430, 0, 120901,
+ 917838, 41929, 0, 71084, 66674, 41926, 69994, 120443, 10513, 64637,
+ 194862, 68013, 52, 13118, 6475, 195004, 83479, 12095, 10225, 4812, 92578,
+ 128486, 67992, 74085, 0, 3978, 128425, 917945, 74015, 11582, 92768,
+ 12281, 127043, 6544, 13241, 93961, 69782, 125014, 194860, 11765, 65258,
+ 10369, 0, 1585, 7192, 10249, 422, 1500, 2036, 986, 194859, 64394, 5781,
+ 5599, 64294, 2494, 120450, 4861, 74021, 64334, 78203, 127808, 0, 83444,
+ 65102, 8961, 65842, 10243, 10245, 71907, 120410, 0, 120453, 64821, 9478,
+ 2508, 92683, 0, 202, 128246, 74131, 1242, 65514, 121170, 63940, 121363,
+ 64533, 71883, 120446, 67842, 11990, 92405, 63939, 43375, 65440, 2504, 0,
+ 78671, 64829, 93020, 6943, 917934, 5859, 0, 2858, 983363, 74294, 983914,
+ 69239, 0, 67871, 12992, 2753, 1936, 70078, 67701, 2751, 12662, 2763,
+ 8953, 64701, 10731, 12922, 7052, 917839, 66424, 63992, 0, 63920, 74128,
+ 2856, 119910, 47, 69908, 71053, 65858, 194806, 0, 67829, 7899, 0, 8417,
+ 43798, 7072, 74195, 0, 4033, 121289, 43992, 121081, 0, 212, 64600, 1903,
+ 12320, 83484, 120894, 194563, 0, 8915, 2759, 945, 6689, 93064, 0, 0,
+ 118798, 1291, 74828, 0, 120435, 9531, 13155, 8505, 68379, 12062, 128198,
+ 121216, 65487, 92189, 41837, 120611, 8246, 128874, 93066, 0, 120433, 0,
+ 63935, 73962, 120806, 64787, 43524, 0, 64426, 983092, 194948, 917866,
+ 917788, 65664, 6693, 9843, 0, 8674, 119887, 128812, 92715, 70788, 1320,
+ 121461, 1673, 4811, 92383, 5986, 9338, 3046, 74480, 5985, 917928, 119598,
+ 9820, 119892, 12187, 983841, 71041, 5984, 0, 43308, 4393, 67650, 983227,
+ 0, 74822, 0, 74826, 64733, 983214, 127898, 3491, 67146, 121142, 128219,
+ 3514, 65485, 72428, 7492, 128860, 74605, 92483, 7514, 983369, 126585,
+ 194731, 7502, 7587, 68353, 63921, 121178, 63925, 120161, 7610, 219,
+ 128158, 78722, 692, 43588, 68485, 41635, 43241, 9688, 7147, 9535, 0,
+ 93991, 0, 64530, 0, 64610, 11804, 0, 7149, 7453, 0, 8013, 66396, 92301,
+ 0, 8895, 5253, 70025, 5458, 917629, 2866, 129045, 127860, 11098, 68433,
+ 6700, 120484, 0, 120583, 194824, 8962, 77960, 9641, 43694, 7059, 983677,
+ 63997, 9604, 78700, 7441, 63826, 67970, 83435, 64392, 92626, 983687,
+ 2844, 74610, 41974, 67397, 12139, 67971, 0, 0, 3358, 65295, 983899, 3104,
+ 194734, 0, 121304, 983235, 5308, 83434, 290, 0, 121338, 2862, 2792,
+ 195088, 92963, 77984, 3268, 66591, 0, 6552, 42367, 7035, 120558, 0, 0,
+ 1814, 78464, 10240, 66285, 74305, 128382, 74528, 65903, 71454, 42646,
+ 7606, 2591, 2837, 4341, 43513, 64482, 92524, 8163, 65270, 0, 77932, 0,
+ 9112, 74431, 863, 9490, 75037, 128349, 43323, 120513, 119897, 9071,
+ 68054, 0, 3654, 7789, 9637, 121136, 2535, 65504, 7653, 40993, 92415,
+ 66587, 124987, 0, 92401, 43927, 11006, 12927, 7807, 8073, 120980, 10629,
+ 127869, 74088, 3056, 10823, 127267, 92391, 8762, 10508, 69689, 73770,
+ 43969, 43193, 10737, 3463, 120975, 983351, 66633, 8695, 4815, 11322,
+ 5811, 12345, 7049, 118811, 5195, 195081, 0, 66639, 92939, 0, 0, 128041,
+ 67903, 67739, 1262, 120165, 6561, 19939, 128673, 0, 127318, 119906,
+ 70300, 0, 983097, 0, 983667, 119907, 64612, 11991, 120654, 0, 92943,
+ 1502, 917568, 127988, 9107, 127316, 5702, 3655, 67661, 8430, 0, 71223,
+ 120758, 0, 74057, 9603, 128079, 5254, 120742, 7724, 74388, 68375, 10796,
+ 5129, 0, 70816, 590, 7579, 5614, 5893, 92280, 11720, 92496, 11721, 70804,
+ 4798, 121468, 119316, 66038, 4793, 67851, 11726, 127541, 74204, 68610,
+ 68824, 68626, 894, 300, 120875, 12306, 66235, 8004, 0, 119574, 2562,
+ 70156, 120856, 42503, 92900, 11652, 917813, 917799, 119241, 64699,
+ 126569, 5096, 5095, 2863, 3424, 92244, 10454, 42530, 5094, 70873, 0,
+ 13156, 129057, 10832, 5093, 0, 69852, 72430, 5092, 10708, 11327, 0, 5091,
+ 176, 0, 9153, 4104, 78599, 78601, 1215, 42712, 5744, 12272, 9832, 11777,
+ 71299, 66817, 42881, 0, 8980, 118988, 67861, 8844, 7209, 0, 0, 4278,
+ 128809, 0, 119160, 70821, 9074, 4348, 0, 65558, 65946, 8113, 7087, 5255,
+ 1786, 661, 128116, 0, 917925, 74423, 71345, 586, 74414, 64359, 1267,
+ 128269, 65468, 194966, 65731, 0, 72405, 3621, 92932, 66666, 64211, 0,
+ 6562, 12928, 194904, 1228, 65490, 11383, 0, 127953, 70343, 1714, 74406,
+ 120751, 0, 121113, 983976, 66225, 70110, 70867, 42660, 11436, 2070, 64,
+ 120694, 121025, 10291, 10323, 2826, 113809, 126510, 0, 42008, 9708,
+ 42710, 0, 42011, 41999, 92164, 12206, 5839, 1702, 1240, 74065, 6286,
+ 9689, 983969, 65833, 77848, 0, 1765, 0, 128622, 65588, 92350, 983281, 0,
+ 8401, 983924, 42014, 127307, 7030, 120969, 10479, 64959, 2852, 0, 121225,
+ 0, 70819, 128586, 917951, 6963, 126704, 12667, 64540, 74786, 10147,
+ 12935, 127568, 126483, 121281, 0, 0, 78757, 0, 113815, 121302, 0, 9994,
+ 12467, 2864, 64719, 1148, 10435, 11462, 41675, 7084, 2765, 78466, 43382,
+ 0, 120719, 128188, 92516, 66662, 0, 78133, 9364, 194685, 74416, 127797,
+ 0, 77988, 263, 10449, 41288, 0, 41839, 78385, 983742, 70313, 129140,
+ 6931, 69722, 43261, 7177, 70105, 92652, 0, 0, 4262, 10285, 10722, 42020,
+ 126575, 6806, 6992, 42019, 0, 41290, 983716, 750, 0, 71304, 10163, 63913,
+ 71300, 7032, 5954, 64931, 4314, 128600, 198, 68453, 730, 120094, 63907,
+ 77993, 70818, 13165, 7107, 74171, 42804, 678, 8240, 78015, 125005, 41378,
+ 11008, 6938, 70026, 92637, 2097, 66246, 120560, 70823, 194990, 983604,
+ 3892, 68632, 69642, 6712, 66045, 41470, 64805, 0, 983213, 126511, 64801,
+ 127818, 497, 12100, 5953, 92667, 7796, 69669, 43254, 73831, 0, 10293,
+ 5952, 1281, 43747, 0, 121399, 10677, 604, 41097, 9182, 1859, 0, 92603,
+ 3425, 127488, 126523, 2836, 983738, 0, 9707, 113718, 43202, 0, 0, 65199,
+ 1738, 128311, 67707, 2832, 92702, 9670, 11101, 0, 66374, 917956, 119552,
+ 2822, 68122, 4436, 92519, 983081, 73752, 70305, 64872, 92340, 1331, 0, 0,
+ 121377, 12708, 917954, 5090, 5089, 127977, 917953, 119109, 0, 70826, 319,
+ 118847, 43479, 9477, 0, 0, 5087, 74886, 7640, 96, 5086, 983597, 92379, 0,
+ 5085, 64286, 92665, 113717, 41422, 119617, 119901, 42356, 3772, 119042,
+ 0, 5011, 0, 983329, 126587, 0, 120698, 118874, 6677, 7601, 0, 591, 64419,
+ 118953, 92262, 118895, 70799, 70084, 0, 10939, 6106, 6933, 41271, 6760,
+ 71343, 4534, 41270, 128876, 67138, 65574, 194947, 9224, 67140, 3671,
+ 8976, 67139, 0, 41275, 6372, 82997, 55261, 7963, 6371, 0, 568, 92368,
+ 41273, 121448, 74531, 6728, 0, 9715, 129297, 8258, 11753, 74820, 0, 9602,
+ 118919, 42, 11191, 43688, 68243, 0, 7458, 0, 0, 65385, 67135, 67134,
+ 11958, 11165, 917822, 125087, 6254, 42721, 66336, 8045, 11550, 195064,
+ 67132, 67131, 42858, 11789, 65868, 5557, 10133, 9737, 13109, 0, 9467,
+ 5558, 8878, 43844, 195036, 7451, 6706, 10146, 0, 9086, 64566, 983185,
+ 64584, 7437, 7454, 12594, 73749, 68362, 4546, 7731, 0, 70048, 74243,
+ 125092, 3805, 0, 67128, 44001, 41008, 128052, 6307, 19949, 67129, 7544,
+ 124989, 43469, 121095, 983735, 10152, 64422, 65091, 67124, 7602, 64729,
+ 0, 43521, 0, 42302, 43711, 43523, 41447, 5559, 68483, 8704, 2397, 5556,
+ 0, 0, 0, 9011, 9630, 11166, 0, 93998, 5506, 92498, 1911, 66652, 67686,
+ 9961, 8845, 66698, 68325, 10792, 8889, 121402, 2098, 0, 64751, 70309,
+ 66622, 126626, 0, 74364, 68816, 129152, 983805, 42909, 7552, 70092,
+ 194567, 65384, 7223, 4559, 93015, 1956, 43138, 7024, 65728, 43490, 1210,
+ 195077, 65175, 10184, 43140, 43654, 0, 983233, 125045, 38, 8533, 66669,
+ 119124, 983295, 983792, 0, 4357, 0, 70289, 917863, 74233, 9967, 78884,
+ 42860, 119838, 10941, 65721, 6962, 0, 83279, 113808, 0, 11014, 120126,
+ 8942, 12000, 69224, 92267, 128536, 11974, 67363, 42772, 42650, 11650,
+ 5013, 92663, 68810, 66210, 118914, 6613, 92476, 0, 11193, 983770, 0,
+ 64714, 71479, 70802, 12162, 12120, 43476, 983766, 11024, 74811, 66228,
+ 10563, 92954, 127196, 43522, 2462, 92955, 1837, 125086, 63972, 6957, 0,
+ 113820, 4952, 65718, 64405, 5504, 65720, 65714, 65715, 65716, 128026,
+ 75016, 127119, 3109, 63975, 74028, 127213, 8107, 67154, 1127, 455, 0,
+ 63968, 127835, 3483, 119593, 1989, 983176, 69678, 9104, 3503, 65375,
+ 68300, 6694, 42633, 1864, 0, 74306, 41446, 2540, 7736, 121434, 74064,
+ 128601, 10521, 70786, 42173, 9705, 74124, 8604, 6955, 10916, 43684, 6149,
+ 3887, 19956, 1411, 2824, 0, 10106, 127862, 1403, 125053, 1347, 9631,
+ 74444, 983753, 127997, 92951, 74897, 8640, 0, 258, 1654, 0, 0, 983479,
+ 43314, 0, 0, 4042, 11478, 2873, 63977, 11522, 41668, 8549, 10861, 121053,
+ 63976, 70377, 68623, 67082, 67081, 41391, 67084, 83465, 376, 6987, 9221,
+ 0, 0, 8823, 128697, 12943, 65185, 41869, 12619, 128067, 10154, 983043,
+ 74439, 2039, 0, 7446, 1684, 63979, 10974, 458, 120620, 82950, 69791,
+ 127161, 11916, 65016, 0, 69671, 42115, 121057, 12288, 78057, 67080, 1493,
+ 42111, 7553, 4097, 128199, 13080, 0, 65808, 6610, 6030, 8059, 7508,
+ 13131, 67074, 67073, 128506, 8794, 41278, 41629, 12154, 75073, 41277,
+ 64658, 983456, 64380, 6625, 42911, 19904, 0, 121305, 71193, 65371, 7078,
+ 128699, 833, 128228, 6369, 194815, 10979, 41953, 983370, 41434, 6062, 0,
+ 0, 19916, 6913, 933, 1341, 9842, 6720, 65744, 71200, 983592, 121223,
+ 126567, 7405, 10105, 65810, 0, 41632, 7493, 55290, 92890, 41622, 0, 0,
+ 119556, 74584, 7632, 9716, 19954, 9805, 5990, 900, 0, 63957, 119638, 0,
+ 3612, 0, 64376, 93987, 5389, 92597, 0, 65938, 2839, 9621, 582, 0, 74368,
+ 3749, 6949, 7569, 74061, 83222, 83223, 6956, 4403, 19962, 65559, 3299,
+ 121005, 194939, 119127, 9002, 0, 74372, 74236, 8478, 7598, 546, 42469,
+ 65569, 1918, 9542, 472, 7716, 10319, 10383, 6996, 43077, 63952, 8425,
+ 3602, 8328, 11764, 83199, 83200, 65065, 41183, 12907, 10271, 10287, 684,
+ 43525, 127996, 2854, 83214, 4592, 65755, 83217, 67120, 11963, 43620,
+ 67117, 78249, 67123, 67122, 67121, 9881, 43115, 65757, 3415, 69677,
+ 67116, 8648, 128377, 6741, 43047, 119900, 13180, 78077, 418, 120653,
+ 64495, 10295, 10327, 10391, 41752, 66846, 8641, 41449, 83194, 74100,
+ 83186, 10911, 6942, 120879, 1024, 42849, 41751, 69776, 8941, 983556,
+ 4554, 66892, 9023, 11685, 121476, 9928, 67109, 66865, 11437, 43741,
+ 67113, 67112, 63967, 129056, 41206, 12624, 9049, 41185, 43166, 121275,
+ 8159, 92619, 11686, 71478, 65224, 4565, 4655, 119553, 129090, 92183,
+ 64523, 10343, 10407, 92764, 66671, 11466, 0, 128003, 42890, 74013, 12050,
+ 68201, 2860, 0, 127934, 70828, 42792, 5743, 10424, 12065, 42872, 121401,
+ 43875, 67103, 8875, 0, 67102, 67105, 7531, 12847, 2413, 118917, 67404,
+ 962, 0, 12855, 41196, 42564, 127975, 1582, 983715, 5508, 0, 120904,
+ 74588, 10801, 69876, 92354, 119207, 7173, 496, 10439, 4313, 64607, 69638,
+ 7860, 128049, 906, 42793, 2842, 6405, 64722, 13132, 798, 64694, 12801,
+ 8406, 1153, 83263, 64788, 83265, 8054, 9174, 67087, 67086, 9964, 67096,
+ 41611, 4642, 66574, 11556, 42512, 0, 78857, 42089, 74613, 9008, 0,
+ 126592, 195096, 42079, 83248, 77924, 42513, 77927, 42842, 73985, 65285,
+ 68338, 83239, 83240, 83241, 83242, 983590, 11335, 64069, 42093, 3920,
+ 917869, 0, 11110, 83255, 4580, 41967, 83258, 64384, 83252, 83253, 3021,
+ 42004, 983096, 83249, 42317, 41998, 0, 6946, 194755, 92967, 128455,
+ 128193, 65204, 0, 68113, 42690, 9880, 42010, 74824, 64589, 10111, 64875,
+ 127880, 68035, 43998, 11360, 83233, 74182, 83235, 83228, 42149, 83230,
+ 68508, 917993, 64941, 77919, 120421, 128077, 74885, 55247, 4110, 66005,
+ 6959, 10929, 42907, 128080, 66703, 77921, 8617, 41982, 6025, 69242,
+ 121068, 194854, 125139, 0, 9597, 42099, 43172, 983378, 10117, 983169,
+ 92297, 41636, 194889, 73738, 120681, 8301, 0, 0, 187, 128237, 65669,
+ 128339, 4963, 0, 68765, 0, 8964, 65676, 7775, 983849, 41948, 125003, 0,
+ 83236, 41942, 65449, 3160, 10081, 13226, 42121, 42475, 42663, 120616,
+ 41766, 74948, 65882, 78849, 41760, 1189, 905, 480, 10985, 41733, 67859,
+ 9629, 6742, 1745, 43625, 73835, 7888, 83405, 3980, 70373, 42656, 41507,
+ 8806, 7023, 0, 74279, 9447, 78651, 7867, 69218, 6236, 127162, 0, 10505,
+ 126638, 12851, 83489, 348, 5474, 121382, 3103, 0, 41753, 71109, 128604,
+ 0, 78844, 78845, 41739, 78843, 42515, 10931, 41756, 43347, 42560, 5391,
+ 41746, 119147, 92591, 41259, 5561, 69930, 2691, 68752, 65553, 7933, 5562,
+ 69800, 128265, 41262, 128146, 64421, 74846, 41251, 127242, 0, 3979,
+ 71248, 194899, 68331, 917912, 68847, 983697, 83382, 74633, 41266, 68836,
+ 66566, 128836, 10585, 65741, 41737, 2275, 2666, 121232, 41738, 831, 419,
+ 13126, 10716, 83400, 42822, 0, 6434, 74857, 6939, 7766, 6432, 128106,
+ 69932, 916, 769, 41742, 11968, 74805, 6433, 5563, 547, 1943, 6439, 5560,
+ 4994, 487, 126537, 4497, 3754, 83072, 83105, 9039, 0, 41776, 0, 8716,
+ 1595, 41615, 121001, 0, 74260, 74860, 42854, 43219, 83311, 121107, 12185,
+ 113810, 70072, 68355, 68357, 68421, 42856, 8634, 0, 119988, 4209, 75057,
+ 68832, 65879, 41538, 65612, 68822, 669, 5679, 68813, 68815, 68811, 68812,
+ 68804, 5678, 11821, 68802, 6711, 460, 121513, 0, 983463, 70114, 120747,
+ 194718, 121519, 78050, 119022, 0, 121515, 121514, 7782, 9044, 4974,
+ 11760, 78494, 7577, 65711, 41912, 1216, 0, 127017, 5792, 126643, 128319,
+ 78501, 0, 2933, 12244, 983702, 5683, 917896, 120895, 78119, 1549, 0,
+ 983223, 120398, 5682, 6206, 8670, 10256, 5680, 69935, 10001, 67237,
+ 69768, 1449, 10241, 78290, 119587, 194891, 10552, 64342, 41922, 70330,
+ 8584, 68030, 5567, 2717, 83179, 71448, 5564, 42886, 41908, 42882, 5565,
+ 917611, 120881, 0, 65708, 65709, 5566, 69803, 65704, 65705, 11904, 42875,
+ 43373, 42539, 5942, 8468, 120561, 10361, 10425, 65697, 65698, 65699,
+ 68052, 66598, 110592, 64664, 10647, 78702, 78703, 78690, 457, 78502,
+ 65701, 1934, 43006, 83280, 8802, 78710, 65130, 11747, 78709, 6087, 78705,
+ 78716, 41757, 78711, 8043, 8950, 65694, 64485, 43534, 10457, 0, 11961,
+ 78725, 66850, 78723, 78720, 78721, 127899, 65515, 9499, 10035, 13069,
+ 71309, 0, 9889, 68184, 42806, 125061, 7256, 0, 68094, 1667, 42161,
+ 120981, 42428, 0, 6934, 0, 10802, 64861, 6556, 78390, 0, 8101, 3610,
+ 68420, 41748, 4995, 955, 65907, 119208, 5350, 64339, 78306, 64549, 10875,
+ 125052, 5477, 65692, 0, 128532, 120397, 12896, 10456, 68298, 0, 3874, 0,
+ 0, 983619, 120331, 128773, 113665, 65603, 83272, 65687, 0, 41038, 74009,
+ 9207, 42239, 8536, 78740, 78324, 78726, 74432, 724, 83058, 1455, 78749,
+ 7183, 64583, 78747, 68443, 4175, 78741, 43614, 69801, 939, 75021, 43520,
+ 68613, 74569, 917958, 0, 70168, 78764, 78760, 10788, 6088, 78759, 78755,
+ 190, 119899, 12593, 0, 8188, 64408, 0, 4417, 121303, 92261, 6370, 125128,
+ 7827, 68441, 6965, 128581, 128868, 13201, 128205, 69896, 78868, 74382,
+ 11841, 7918, 73988, 0, 113668, 917884, 1728, 983705, 43764, 178, 12972,
+ 74620, 113671, 71103, 11168, 983383, 113672, 78327, 75042, 65690, 8382,
+ 71107, 119054, 194968, 9252, 917889, 4652, 68371, 0, 121327, 74070,
+ 13065, 9923, 10806, 194596, 11763, 70016, 120688, 6723, 78187, 0, 6993,
+ 71044, 121312, 8333, 121329, 0, 11390, 0, 74464, 0, 92320, 74080, 983317,
+ 69911, 11910, 92559, 8278, 8963, 4034, 128560, 983113, 65344, 120517,
+ 41747, 0, 128110, 8677, 0, 12707, 9350, 66037, 128180, 8836, 12315,
+ 12747, 8300, 194562, 124984, 7491, 8856, 71361, 0, 43150, 127768, 120404,
+ 65389, 120402, 120403, 10813, 2592, 12853, 43269, 7263, 83308, 6536,
+ 120238, 71891, 65516, 12321, 120391, 120388, 55287, 10007, 120246, 9588,
+ 68494, 1596, 120383, 41994, 65801, 128808, 6838, 3561, 119867, 0, 10613,
+ 6697, 12805, 41928, 40981, 10804, 78409, 5006, 64328, 0, 9931, 0, 8825,
+ 74555, 65940, 43259, 126586, 6107, 83455, 119177, 77941, 78401, 119270,
+ 11783, 335, 120227, 64689, 438, 4510, 5765, 8721, 119570, 119227, 6092,
+ 12840, 43112, 8876, 120231, 8096, 10284, 120935, 0, 0, 10380, 8733,
+ 10316, 70121, 41602, 917575, 92308, 74831, 93984, 0, 68482, 65399,
+ 917820, 64591, 42405, 83466, 120820, 843, 11541, 128326, 70321, 2065,
+ 41935, 74496, 41902, 0, 983306, 215, 41258, 77875, 43159, 1953, 9579,
+ 41938, 1256, 3910, 9407, 6242, 0, 83464, 41257, 41900, 8675, 10700, 8805,
+ 1742, 113722, 9333, 8202, 72399, 0, 983197, 127252, 0, 73882, 499,
+ 983049, 43467, 0, 43818, 83482, 1712, 5932, 77845, 41762, 983103, 0,
+ 11967, 1775, 125006, 75009, 11118, 121391, 128009, 9458, 92935, 6470,
+ 9180, 120380, 43176, 128307, 0, 42782, 0, 124999, 983135, 128309, 73849,
+ 120669, 9414, 74647, 73782, 73969, 565, 42484, 5794, 201, 2662, 42292,
+ 194870, 8254, 0, 10975, 43518, 120625, 74763, 1022, 4108, 3880, 74247,
+ 127153, 0, 92263, 917980, 7507, 983118, 43149, 71059, 65031, 7961, 1636,
+ 0, 65029, 65024, 119099, 12473, 6534, 120633, 99, 98, 97, 68226, 67584,
+ 4049, 74163, 127065, 7090, 83274, 7892, 127064, 10777, 917803, 65310,
+ 65562, 66599, 66722, 194955, 8039, 3363, 66594, 43434, 127062, 71191,
+ 12596, 66595, 42258, 42570, 5593, 119148, 120534, 92425, 10100, 6061,
+ 64854, 119, 118, 117, 116, 12998, 122, 121, 120, 111, 110, 109, 108, 115,
+ 114, 113, 112, 103, 102, 101, 100, 107, 106, 105, 104, 6436, 73974, 534,
+ 41212, 67713, 1536, 64093, 73970, 77930, 121093, 0, 6020, 12716, 127112,
+ 12744, 475, 120394, 13266, 127813, 127111, 78842, 73926, 66291, 10645,
+ 1212, 6543, 983309, 8134, 42935, 2913, 73870, 127113, 1866, 983229,
+ 71892, 120996, 8923, 1645, 12059, 66585, 71297, 3196, 72404, 194827,
+ 5935, 1250, 127066, 8174, 9787, 6733, 9859, 7916, 9861, 9860, 5258, 1882,
+ 1892, 6731, 10882, 405, 11454, 73911, 113787, 73819, 41169, 8939, 41245,
+ 128775, 41170, 1454, 11369, 6477, 12157, 120861, 0, 0, 41172, 7855, 0,
+ 71472, 10480, 43258, 126596, 77936, 8264, 12610, 983310, 645, 126616,
7609, 40973, 69943, 73833, 69948, 5824, 984, 77918, 10688, 5851, 0, 7729,
- 73982, 120518, 0, 195086, 43369, 0, 128140, 68415, 983093, 4538, 120406,
- 43141, 0, 983210, 74214, 73886, 0, 0, 118902, 43005, 78448, 9552, 0, 0,
- 983159, 12997, 0, 0, 0, 0, 2381, 12883, 10994, 10529, 41906, 0, 0, 0,
- 12425, 10661, 10856, 9614, 2428, 41478, 8582, 10064, 73930, 0, 0, 0,
- 64896, 119162, 1952, 92181, 8455, 10082, 11575, 983490, 119566, 0, 12808,
- 12183, 6145, 118955, 64929, 92433, 0, 983193, 43186, 42509, 0, 3922,
- 9187, 983614, 0, 10191, 119057, 11752, 3353, 9358, 0, 71366, 66680,
- 120090, 8248, 7931, 8558, 9795, 68380, 983297, 0, 120082, 120081, 120084,
- 41027, 120086, 0, 120088, 7366, 7019, 120073, 0, 11751, 120078, 78294,
- 64657, 8657, 120048, 8594, 120068, 0, 0, 120069, 120072, 120071, 0, 0,
- 43154, 41029, 0, 11332, 65380, 7728, 94077, 11294, 0, 66665, 7851, 0,
- 8375, 8699, 0, 42524, 0, 9085, 94041, 7504, 9327, 6160, 128095, 983864,
- 0, 8088, 0, 74012, 92500, 0, 4439, 6926, 983047, 12924, 128227, 42369,
- 4350, 65491, 65145, 9041, 43559, 64577, 10826, 0, 11296, 983283, 0, 0,
- 65825, 9577, 68199, 0, 64670, 983121, 78056, 6793, 11295, 0, 78053,
- 73872, 0, 0, 10902, 0, 0, 78070, 78068, 10472, 2995, 0, 0, 64682, 2371,
- 78069, 120808, 259, 1009, 92171, 2402, 2333, 6440, 194741, 0, 65125,
- 41244, 0, 13271, 9103, 2278, 0, 0, 0, 0, 10219, 0, 0, 0, 0, 43178,
- 127070, 41261, 119362, 43640, 8613, 0, 94049, 6736, 195092, 41492, 12005,
- 69927, 0, 1890, 120056, 0, 0, 0, 7293, 7991, 0, 10578, 0, 78076, 194738,
- 78077, 69928, 0, 78800, 92653, 64445, 42668, 6635, 0, 6164, 65170, 0, 0,
- 7676, 11664, 0, 983658, 69707, 0, 118812, 0, 0, 128045, 9175, 11925,
- 78045, 9088, 0, 64545, 1396, 0, 7546, 3847, 127177, 127835, 4985, 13288,
- 672, 8098, 43196, 194746, 983096, 128126, 42655, 74043, 65072, 1577,
- 11772, 13041, 5928, 4525, 10658, 65911, 1266, 10180, 0, 128584, 12622, 0,
- 0, 0, 194714, 127139, 13310, 773, 19933, 1539, 0, 126983, 42731, 67972,
- 0, 0, 0, 3051, 5862, 7823, 92478, 0, 120411, 3250, 43991, 69687, 66649,
- 9510, 66237, 983302, 0, 41066, 64673, 917963, 917964, 0, 3505, 8707,
- 917968, 6725, 128013, 917971, 92314, 3471, 917970, 5479, 882, 6686,
- 119584, 11613, 120772, 42754, 0, 983306, 92696, 0, 0, 0, 128523, 3225,
- 917996, 4433, 41156, 43973, 43173, 1443, 4381, 0, 0, 10926, 11756, 11757,
- 64879, 917949, 917950, 127848, 13227, 0, 10021, 5160, 1387, 0, 917953,
- 41418, 0, 65914, 6721, 217, 917955, 917960, 917961, 10443, 10789, 41158,
- 119257, 4274, 983300, 41483, 0, 41250, 0, 42179, 0, 5931, 11744, 69232,
- 0, 41252, 66682, 0, 119637, 41249, 1366, 64635, 65047, 12466, 0, 0, 4397,
- 128037, 128336, 41296, 9545, 41291, 128049, 0, 41485, 3511, 41282, 5923,
- 10400, 0, 128818, 760, 0, 12088, 5786, 0, 42256, 119869, 119860, 417,
- 41474, 119562, 41565, 0, 5934, 119867, 66583, 119231, 64877, 2284, 64481,
- 78614, 66013, 41956, 43455, 126995, 0, 0, 0, 42273, 5819, 0, 917556, 0,
- 126643, 0, 65910, 127747, 10246, 120816, 65785, 1237, 10274, 4552,
- 119576, 0, 0, 1375, 66705, 43573, 65260, 42063, 0, 42811, 10312, 69845,
- 120794, 7840, 0, 43630, 10252, 0, 128104, 43185, 0, 4396, 0, 119880,
- 10769, 9676, 119041, 0, 9753, 0, 8944, 0, 0, 10473, 0, 0, 6072, 43025,
- 10299, 0, 0, 120608, 66326, 983447, 127794, 0, 43811, 9330, 120596, 7222,
- 10283, 10315, 10379, 4996, 983782, 13281, 66517, 7865, 10087, 78343, 0,
- 78347, 0, 0, 7565, 66363, 12952, 64806, 43180, 77928, 7414, 77929, 43982,
- 74288, 622, 74023, 885, 43405, 1602, 0, 0, 852, 0, 12160, 0, 10212,
- 65435, 0, 12071, 9609, 12156, 917983, 917984, 43586, 11035, 10411,
- 917988, 10255, 6710, 10279, 4194, 10375, 73900, 0, 4315, 12644, 127516,
- 77937, 43639, 43343, 78777, 917998, 11501, 41177, 128689, 0, 917792, 0,
- 92413, 8715, 0, 41179, 0, 43313, 0, 41176, 0, 994, 0, 8452, 127103,
- 73966, 0, 0, 5921, 0, 2597, 0, 5922, 118903, 77943, 4186, 92531, 119967,
- 127105, 6718, 0, 4406, 74601, 8480, 9192, 9747, 126530, 4413, 92196,
- 42268, 3198, 5924, 5920, 92469, 6921, 78081, 74007, 42869, 8418, 11681,
- 43169, 10176, 0, 742, 0, 2893, 10772, 65276, 5937, 1914, 2553, 11682,
- 6756, 128590, 128646, 8363, 0, 2993, 7772, 3916, 4301, 120494, 1141,
- 42407, 8159, 718, 7572, 973, 0, 120718, 3235, 2415, 43164, 0, 8018,
- 42333, 74756, 10675, 6937, 42486, 43381, 65390, 10067, 0, 1202, 0, 0,
- 65863, 0, 0, 94013, 78182, 64542, 3260, 73829, 65388, 9945, 8419, 78042,
- 6738, 0, 43681, 69728, 2059, 0, 0, 55237, 1431, 0, 66565, 10821, 0,
- 12804, 128076, 8229, 1235, 3307, 11472, 78089, 78184, 4544, 0, 0, 0,
- 1740, 78097, 8758, 985, 12872, 64511, 78094, 12068, 78102, 0, 10141, 0,
- 63761, 8785, 4476, 78109, 63763, 12655, 8907, 78105, 78106, 78103, 78104,
- 0, 119572, 10665, 64616, 41572, 0, 127160, 0, 41573, 0, 3931, 120295,
- 74143, 0, 0, 0, 78460, 11982, 0, 0, 0, 128016, 64484, 0, 41167, 0, 41735,
- 94019, 717, 10754, 0, 0, 127979, 0, 63767, 0, 1780, 6936, 0, 92254, 819,
- 10611, 9694, 126978, 0, 0, 0, 0, 8343, 8342, 8345, 8344, 6578, 7009,
- 7523, 6922, 8348, 8347, 7525, 3346, 8339, 128165, 128338, 575, 268,
- 78111, 8563, 5754, 120343, 41541, 65565, 8336, 5936, 7290, 78117, 8337,
- 8341, 308, 11388, 7522, 120721, 78123, 65466, 11090, 6953, 0, 120346, 0,
- 78132, 5926, 78128, 78130, 78126, 78127, 78124, 78125, 9038, 7887, 43456,
- 7830, 11651, 13093, 64002, 0, 65742, 12874, 119597, 11590, 0, 74048,
- 128350, 8595, 0, 917947, 43703, 13097, 0, 64643, 13283, 12697, 0, 12381,
- 3488, 5933, 10033, 73738, 66241, 65570, 0, 12297, 119153, 1955, 0, 5349,
- 42538, 0, 0, 7411, 9462, 917554, 0, 0, 0, 42736, 0, 5756, 983221, 7638,
- 41642, 42764, 0, 43109, 7637, 5752, 74037, 0, 73832, 128827, 120635,
- 128231, 78334, 0, 7636, 65171, 9124, 0, 78892, 120798, 291, 0, 0, 2027,
- 66230, 10080, 78136, 10403, 0, 4640, 64713, 10224, 120429, 42512, 120431,
- 120430, 0, 128351, 127489, 127148, 0, 92499, 0, 119094, 74213, 7824, 0,
- 0, 41274, 5778, 6302, 0, 0, 12680, 119130, 1417, 77889, 194914, 9452, 0,
- 74393, 11552, 0, 127855, 128217, 65391, 0, 10172, 65453, 63789, 41264,
- 78658, 6426, 4641, 9179, 64819, 55278, 41255, 42036, 41469, 41269,
- 120412, 41267, 4646, 120425, 865, 42034, 78274, 78273, 4645, 42033,
- 78270, 127982, 983172, 64728, 0, 78673, 78674, 1659, 919, 42784, 1671,
- 195089, 6069, 9219, 128558, 1661, 13120, 63784, 69819, 10140, 9713,
- 119143, 0, 0, 94050, 2306, 10485, 118943, 6068, 10612, 195099, 119567,
- 195101, 92561, 41462, 120470, 195079, 5422, 128234, 983629, 0, 0, 10229,
- 10635, 826, 128081, 195082, 195085, 195084, 195087, 6483, 92211, 1808,
- 7848, 0, 8100, 78227, 78669, 78670, 13301, 78667, 9667, 78665, 78872, 0,
- 11003, 9904, 0, 0, 120690, 9144, 10921, 0, 78680, 9840, 65131, 78678,
- 77841, 10313, 0, 0, 64320, 10265, 78686, 10962, 78684, 43008, 8945,
- 78683, 0, 41, 195072, 1792, 120515, 195073, 8655, 195075, 92544, 77951,
- 12066, 0, 385, 4152, 2585, 127804, 119068, 3126, 0, 74136, 10957, 983703,
- 43258, 119116, 127873, 13157, 0, 917544, 3570, 0, 7443, 0, 44006, 6997,
- 68004, 126631, 7879, 8739, 11075, 0, 65216, 0, 69795, 2593, 8463, 7810,
- 917862, 7839, 119913, 78806, 119912, 9691, 4411, 78802, 0, 0, 43442,
- 69851, 65254, 10066, 983889, 0, 0, 0, 13061, 8016, 78687, 19932, 64831,
- 0, 119923, 12390, 119171, 1634, 68115, 0, 11056, 983574, 119925, 0,
- 41165, 11328, 12450, 0, 41166, 0, 12456, 119914, 171, 5941, 12452,
- 194709, 12458, 12531, 78779, 43013, 63800, 74162, 127569, 120483, 9969,
- 120767, 12454, 63806, 42132, 12063, 78425, 78424, 3230, 0, 0, 0, 5209,
- 297, 5810, 8522, 8415, 119937, 78429, 78428, 7077, 2497, 128651, 960,
- 74156, 6981, 92374, 12938, 4292, 0, 74815, 10512, 0, 74814, 78875,
- 127505, 78876, 2503, 73778, 1762, 69794, 2495, 78873, 5844, 68031,
- 118838, 0, 12654, 4663, 1899, 78877, 2507, 64121, 8726, 65594, 0, 0, 0,
- 8892, 0, 92339, 0, 983073, 5782, 420, 0, 0, 43796, 10797, 63794, 0, 0,
- 64814, 63796, 77965, 0, 66581, 119204, 41608, 0, 0, 63792, 4659, 120788,
- 0, 43676, 0, 69673, 0, 0, 0, 329, 77968, 92707, 917548, 7399, 0, 41188,
- 13244, 120466, 42167, 7435, 78193, 5380, 119086, 69225, 1155, 11365,
- 43126, 77972, 0, 65684, 0, 5601, 65192, 42765, 63752, 0, 7987, 128543,
- 1172, 69799, 6786, 43601, 120476, 74126, 5603, 0, 4473, 0, 194823, 0,
- 65347, 65346, 65345, 0, 127384, 5347, 69802, 983632, 73868, 118944,
- 10588, 0, 0, 63755, 0, 5343, 78422, 120661, 4555, 5341, 0, 70071, 128670,
- 5351, 78675, 43104, 65244, 917892, 64541, 42519, 74472, 0, 0, 74765,
- 917888, 127510, 6638, 0, 65113, 271, 74180, 65370, 8835, 65368, 12653,
- 65366, 42172, 41086, 65363, 65362, 65361, 11912, 43410, 11323, 65357,
- 11800, 65355, 5345, 65353, 65352, 65351, 761, 65349, 19959, 69718, 63856,
- 126635, 2423, 77958, 64647, 77959, 11957, 4699, 0, 0, 0, 0, 64605, 0, 0,
- 0, 4916, 0, 380, 10958, 66563, 77955, 69773, 9773, 13167, 12918, 41096,
- 73980, 69245, 78254, 917893, 10684, 0, 917896, 0, 7946, 12541, 8182,
- 67586, 69780, 0, 0, 0, 0, 9005, 1225, 6630, 0, 0, 0, 68011, 8847, 0,
- 65876, 5535, 8329, 74590, 983208, 92609, 0, 0, 3127, 2595, 65713, 42013,
- 983858, 5607, 41089, 0, 0, 74256, 2665, 11304, 43751, 74200, 4970, 8764,
- 120459, 8934, 92726, 41566, 4492, 0, 65011, 41090, 0, 0, 1188, 7254,
- 1100, 0, 128301, 41081, 2912, 11749, 69792, 0, 68019, 3572, 10023, 4959,
- 13079, 0, 983276, 9729, 0, 0, 0, 43361, 0, 0, 11803, 7996, 9907, 41450,
- 13304, 128290, 127260, 41451, 0, 11095, 8273, 127533, 3451, 983309, 972,
- 41453, 983442, 0, 73883, 68022, 73945, 983735, 2288, 19955, 9538, 0,
- 69807, 0, 0, 0, 0, 11396, 983440, 11019, 0, 0, 0, 68020, 41078, 71365,
- 261, 5927, 7791, 0, 7362, 0, 10696, 0, 6073, 9838, 118920, 0, 6075,
- 93995, 282, 126510, 6437, 74078, 128000, 9801, 0, 74177, 0, 0, 3474,
- 118787, 0, 120655, 6081, 0, 78874, 74076, 78879, 0, 0, 0, 0, 0, 8751,
- 11499, 120273, 7816, 12636, 4665, 12628, 4670, 92608, 120272, 68017,
- 9642, 10912, 958, 0, 11387, 78878, 4666, 0, 4915, 0, 4669, 0, 68099,
- 13287, 4664, 10836, 120550, 0, 69775, 0, 43595, 7450, 0, 917875, 8664,
- 9697, 3606, 917873, 0, 0, 64815, 1063, 120250, 120251, 9772, 7255, 8886,
- 1389, 127932, 120257, 120258, 120259, 12941, 42661, 92381, 120255,
- 120256, 12301, 120266, 69820, 41102, 64428, 120262, 120263, 120264, 1017,
- 66600, 523, 505, 1447, 74436, 0, 0, 0, 8608, 42789, 120613, 128704, 0,
- 73855, 11307, 66707, 917871, 127751, 11745, 7919, 0, 1641, 0, 0, 8966, 0,
- 0, 5908, 0, 0, 6744, 128355, 1699, 69861, 74843, 917933, 0, 6306, 10169,
- 71324, 119251, 10068, 3766, 2389, 120456, 120455, 6611, 257, 43170,
- 13153, 0, 42386, 0, 9436, 2599, 0, 6496, 9449, 5930, 11476, 11033, 11447,
- 10541, 5622, 120436, 8477, 3760, 1718, 9442, 66433, 3776, 0, 41435, 4352,
- 983610, 2435, 120809, 5621, 120385, 4201, 3778, 4203, 4202, 4205, 4204,
- 120447, 3768, 68142, 765, 41440, 3764, 8473, 6373, 8469, 120438, 12947,
- 4564, 0, 0, 74271, 73753, 8374, 983156, 0, 6829, 5225, 128807, 127385, 0,
- 0, 119615, 0, 74793, 5626, 73807, 11771, 74075, 127236, 128019, 42614,
- 5353, 5625, 74179, 0, 0, 1010, 64572, 41780, 42623, 64277, 69942, 6952,
- 983272, 120752, 78762, 2590, 5629, 65552, 7551, 10325, 5632, 10471,
- 120038, 120027, 120028, 120025, 5628, 120031, 970, 120029, 4772, 2400,
- 5627, 120017, 120018, 120023, 64275, 120021, 8786, 0, 203, 0, 0, 0, 0,
- 78350, 0, 64378, 42054, 0, 0, 554, 119649, 11358, 0, 12182, 42048, 11065,
- 126464, 73891, 0, 0, 5694, 7689, 69798, 9323, 4325, 3047, 10317, 175, 0,
- 0, 69764, 0, 0, 1243, 42154, 5431, 6652, 0, 69770, 43651, 0, 68118,
- 128024, 1129, 126574, 0, 65900, 1986, 7846, 78804, 8661, 917772, 65255,
- 0, 3845, 4490, 118969, 6649, 74400, 1456, 7530, 11977, 7249, 8366, 0,
- 7756, 12342, 128568, 51, 41516, 0, 8570, 9568, 71318, 456, 7026, 8145,
- 1168, 9251, 9082, 119964, 64055, 42781, 3866, 12323, 41512, 73805, 68121,
- 0, 41494, 92316, 4660, 0, 10405, 0, 78803, 0, 0, 42040, 73918, 119627,
- 7944, 41454, 12605, 0, 42205, 41455, 236, 64051, 78867, 8214, 0, 0, 0,
- 41457, 983970, 119589, 1969, 2384, 8097, 917864, 7413, 68012, 78029,
- 8766, 0, 78079, 5854, 127974, 10583, 0, 119989, 0, 10416, 917869, 3872,
- 917868, 0, 8429, 0, 118806, 2838, 128802, 0, 917866, 0, 0, 0, 983967,
- 94005, 11096, 120813, 10553, 1662, 8483, 120396, 43605, 5892, 43418, 0,
- 73742, 66, 65, 68, 67, 70, 69, 72, 71, 74, 73, 76, 75, 78, 77, 80, 79,
- 82, 81, 84, 83, 86, 85, 88, 87, 90, 89, 119862, 10357, 7385, 8170, 1704,
- 8556, 0, 9659, 0, 0, 0, 9556, 0, 4503, 11353, 9647, 0, 78185, 0, 0,
- 92713, 78886, 0, 0, 74229, 66593, 6438, 917979, 9109, 78882, 1289, 64599,
- 0, 68009, 0, 65507, 2447, 0, 0, 128042, 126545, 983137, 0, 6334, 0, 0,
- 19937, 0, 92368, 0, 5675, 254, 0, 0, 69686, 42425, 8918, 64003, 5716,
- 42312, 0, 0, 6972, 42826, 0, 42464, 120567, 0, 92645, 74796, 64400,
- 64693, 0, 77861, 65429, 9515, 4435, 0, 42522, 0, 68008, 11785, 7412,
- 64671, 41978, 1412, 4594, 1391, 10536, 8067, 9901, 7103, 128293, 7102,
- 74588, 120748, 3140, 128854, 7960, 43271, 0, 12518, 10909, 127508, 1428,
- 12472, 0, 69864, 7699, 12393, 0, 0, 0, 74518, 8223, 0, 4261, 0, 0, 0, 0,
- 0, 128302, 0, 128046, 43419, 0, 64554, 10574, 3878, 0, 42352, 1752,
- 73785, 0, 42506, 128541, 10199, 0, 0, 68021, 65919, 0, 6695, 720, 324, 0,
- 0, 43406, 983736, 1464, 40985, 0, 7974, 0, 43474, 0, 64488, 0, 0, 64041,
- 74787, 0, 78865, 92258, 65597, 0, 78863, 0, 1302, 0, 78861, 119134, 0, 0,
- 5204, 74774, 43404, 11835, 0, 3995, 68360, 65608, 3714, 92190, 0, 0,
- 10999, 11750, 0, 43251, 68660, 43301, 0, 120557, 8130, 8672, 10845,
- 11964, 0, 983185, 0, 0, 68455, 42863, 73839, 0, 0, 0, 0, 126629, 0, 468,
- 612, 0, 64401, 66448, 68376, 0, 1674, 0, 5823, 983163, 12280, 0, 540,
- 74564, 119017, 0, 8432, 0, 11073, 0, 64316, 0, 0, 820, 41741, 0, 120667,
- 0, 64684, 126992, 3359, 7800, 69934, 65177, 6226, 353, 12396, 0, 119612,
- 64742, 128682, 120282, 0, 983450, 12412, 19941, 0, 120277, 78847, 1884,
- 9481, 42418, 70059, 41157, 0, 1195, 64898, 7924, 0, 41151, 2010, 0,
- 41328, 42344, 0, 12409, 0, 4360, 127009, 9739, 128550, 69933, 73921, 0,
- 42521, 8539, 983725, 0, 118986, 0, 4788, 0, 68023, 65734, 983455, 43790,
- 0, 13075, 74429, 94063, 64569, 43532, 10837, 2492, 127197, 118901, 68637,
- 41136, 43785, 11813, 9649, 41154, 119617, 5128, 4038, 41143, 65604,
- 64859, 41592, 6771, 1648, 5435, 917837, 6734, 41343, 119848, 65439,
- 12709, 6986, 92364, 68015, 0, 41349, 70021, 12581, 10374, 5175, 0, 73806,
- 10254, 0, 10278, 10262, 69858, 41346, 0, 607, 0, 119852, 128846, 12923,
- 10314, 10282, 65477, 10378, 120297, 40976, 8265, 0, 119834, 40975, 5840,
- 42838, 0, 40978, 983897, 119840, 0, 983071, 0, 66444, 10538, 0, 2550,
- 119836, 6779, 0, 0, 3525, 6824, 118886, 0, 0, 5619, 65822, 126567,
- 194882, 7455, 0, 5616, 11486, 9656, 0, 0, 10727, 5615, 0, 120551, 42380,
- 64895, 43693, 66451, 808, 5455, 11347, 0, 1026, 5620, 194887, 0, 11350,
- 5617, 0, 9225, 64639, 127073, 9145, 128060, 1338, 120581, 983158, 12739,
- 4603, 3084, 983155, 92484, 9858, 6037, 0, 3974, 78213, 10290, 983704,
- 3083, 10322, 0, 0, 0, 41036, 0, 0, 43321, 65606, 0, 41032, 42388, 0,
- 64700, 10011, 1445, 40961, 0, 119105, 0, 40960, 0, 194891, 0, 40963,
- 64952, 10402, 0, 0, 92304, 10603, 0, 0, 983113, 0, 6714, 10083, 127069,
- 194895, 78367, 127377, 0, 93963, 9073, 42585, 64302, 10704, 65030, 4787,
- 0, 74829, 0, 65423, 0, 128118, 9570, 55260, 9525, 2689, 917626, 65426, 0,
- 917624, 43740, 0, 40966, 917622, 13286, 3998, 42598, 42596, 503, 74237,
- 8735, 2690, 66488, 42836, 127150, 41954, 917617, 1652, 772, 6688, 8310,
- 65428, 3487, 43416, 3585, 10194, 43320, 119159, 128183, 194874, 6468,
- 41976, 9720, 917606, 11767, 41970, 194596, 5836, 12358, 0, 4355, 9048,
- 12180, 65027, 64680, 13038, 43699, 0, 41488, 128087, 8527, 194917, 12362,
- 12435, 12360, 41053, 3266, 0, 12356, 8616, 41466, 0, 92588, 11450, 0,
- 3638, 12354, 0, 3216, 0, 2358, 92606, 8633, 0, 983745, 119182, 69244, 0,
- 0, 11759, 194903, 6368, 74823, 0, 41423, 8078, 10504, 127558, 41698,
- 42237, 0, 7002, 983678, 41430, 42267, 41051, 41484, 0, 0, 41050, 41473,
- 10466, 13099, 0, 0, 0, 6435, 0, 11362, 0, 0, 65382, 0, 41420, 0, 3625,
- 78157, 41409, 0, 69639, 2041, 9178, 9672, 41427, 43541, 43317, 0, 0, 0,
- 41424, 917598, 120546, 0, 128212, 0, 41417, 1261, 0, 0, 12102, 119662,
- 41401, 0, 127538, 0, 78251, 0, 42290, 3275, 92472, 42329, 74759, 0, 0, 0,
- 92388, 69649, 10989, 74234, 983140, 10598, 7410, 2669, 903, 0, 2920, 0,
- 127232, 74603, 64504, 19928, 0, 0, 3917, 0, 11732, 0, 983180, 41448,
- 41461, 128823, 0, 127912, 0, 8819, 12663, 0, 41184, 74014, 232, 74835,
- 120646, 9168, 65786, 0, 0, 0, 9094, 0, 11758, 68425, 0, 1064, 42467,
- 128044, 10115, 19924, 92711, 0, 7862, 64551, 13224, 8516, 41862, 66650,
- 7561, 78618, 69793, 1878, 0, 983269, 2911, 0, 41178, 5427, 64823, 0, 0,
- 3787, 41174, 0, 41458, 0, 41463, 42413, 11292, 2406, 775, 0, 65584,
- 69923, 6074, 9618, 128668, 983952, 43440, 0, 194901, 41436, 3656, 0,
- 120600, 41456, 0, 1599, 11333, 0, 6703, 8513, 0, 1613, 0, 68456, 12598,
- 983191, 120734, 78745, 74500, 41460, 10145, 10542, 9937, 78746, 70029,
- 9905, 0, 65730, 0, 120374, 8427, 120375, 55246, 120376, 0, 11497, 64687,
- 74008, 42592, 3871, 0, 128305, 9111, 5741, 0, 194846, 120366, 119111,
- 120745, 0, 120368, 0, 11648, 0, 194873, 120364, 41587, 120365, 0, 74322,
- 42113, 0, 127155, 12172, 0, 74530, 65298, 65723, 194840, 73871, 65724,
- 7928, 120354, 983095, 41595, 73730, 0, 42118, 73830, 66042, 10355,
- 983110, 7875, 0, 41598, 3993, 0, 1545, 40971, 536, 128521, 43029, 0, 0,
- 65173, 65286, 0, 0, 0, 0, 0, 0, 41375, 5402, 0, 0, 1687, 120503, 917817,
- 0, 78194, 64326, 40969, 10526, 78753, 8323, 40968, 1339, 11731, 78756, 0,
- 65460, 12242, 128513, 8020, 10843, 11554, 0, 0, 8266, 41006, 65722, 0,
- 10710, 0, 118942, 67667, 64567, 119155, 195091, 0, 119636, 67857, 120687,
- 0, 983066, 11755, 66305, 0, 0, 10917, 93979, 0, 11272, 2040, 41247,
- 41326, 195060, 1741, 42370, 1227, 0, 0, 11413, 0, 0, 5283, 1586, 4978, 0,
- 1984, 11830, 0, 92293, 40984, 128306, 9373, 0, 12916, 6284, 0, 41663, 0,
- 0, 0, 9237, 9385, 41648, 0, 194580, 2299, 41666, 1830, 73783, 2056,
- 41287, 92610, 0, 0, 42219, 128257, 0, 41987, 41676, 983059, 120823,
- 983144, 41670, 0, 92590, 2796, 55291, 11683, 9902, 74521, 67988, 11451,
- 983111, 128822, 42631, 2359, 0, 67844, 74164, 41238, 548, 11405, 13133,
- 64368, 983239, 128795, 0, 397, 43622, 42139, 9547, 9590, 128238, 1614,
- 43661, 64356, 66307, 6651, 1358, 0, 428, 9620, 1466, 78112, 10982,
- 118831, 1333, 7104, 407, 6425, 128834, 74253, 0, 0, 0, 5804, 11976, 8554,
- 92721, 0, 0, 9057, 42294, 41218, 0, 0, 78137, 1883, 10952, 8048, 78142,
- 41225, 92621, 42915, 983676, 128684, 0, 4407, 0, 65809, 119074, 194821,
- 8448, 7141, 74183, 0, 12675, 12659, 0, 42363, 120624, 194824, 55273,
- 10766, 12012, 2386, 64732, 9170, 917821, 9123, 64585, 120500, 119158,
- 7140, 10977, 127378, 4164, 9081, 0, 120569, 42049, 42042, 8709, 128283,
- 126477, 120637, 42419, 64799, 42047, 0, 0, 8470, 11807, 65897, 577, 0,
- 983760, 74300, 0, 127308, 74840, 0, 0, 128791, 92224, 8736, 1414, 42643,
- 9683, 43486, 74344, 0, 2536, 0, 66330, 0, 0, 0, 0, 0, 0, 0, 66317, 69945,
- 66315, 2106, 120222, 11273, 0, 43004, 7541, 0, 0, 961, 64307, 66324,
- 64906, 128591, 3106, 65917, 41284, 1696, 0, 891, 12105, 0, 42624, 12802,
- 3264, 8824, 13268, 43003, 10936, 0, 0, 0, 194826, 92688, 0, 2322, 120371,
- 983584, 11449, 128187, 42868, 41285, 3547, 0, 0, 128793, 983398, 43216,
- 6089, 78682, 0, 120578, 4170, 1029, 127761, 127036, 119224, 42374, 0,
- 744, 0, 0, 0, 65823, 127826, 0, 3551, 0, 0, 4623, 55268, 0, 4598, 983162,
- 65136, 127136, 0, 0, 10851, 0, 6179, 92602, 6180, 0, 11952, 120778,
- 78648, 11972, 78646, 78647, 78644, 78645, 177, 78643, 6176, 120580, 0, 0,
- 6177, 9020, 78652, 78653, 6178, 120249, 120242, 128027, 67673, 2214,
- 8754, 0, 120237, 2137, 43081, 0, 0, 9136, 120240, 4401, 41280, 0, 8974,
- 2308, 0, 74149, 0, 2318, 983183, 66361, 8198, 0, 64360, 12601, 42536,
- 65266, 120827, 74307, 92462, 6970, 5404, 43332, 3667, 7936, 12925,
- 126989, 6385, 0, 0, 118949, 10874, 65505, 128083, 0, 42053, 2075, 42057,
- 11083, 42052, 0, 0, 67651, 0, 9665, 92300, 983666, 13181, 0, 0, 0, 70088,
- 74148, 0, 0, 120225, 120229, 120224, 74172, 41145, 0, 94096, 983946,
- 41148, 8683, 7594, 127519, 0, 119090, 10869, 43458, 41146, 92407, 11441,
- 0, 3512, 119633, 983709, 8103, 0, 0, 65184, 11780, 41563, 42796, 0,
- 69742, 41544, 65146, 0, 0, 0, 0, 19942, 0, 118908, 7988, 10436, 74273,
- 3271, 73804, 64711, 0, 94064, 0, 0, 3804, 13070, 11557, 42044, 0, 1095,
- 0, 3599, 127774, 0, 128861, 8514, 0, 0, 0, 74346, 66697, 0, 11684, 0,
- 92486, 917603, 0, 42043, 43232, 66677, 0, 42046, 78241, 4036, 126481, 0,
- 128213, 194861, 0, 11954, 93978, 1450, 12986, 1340, 0, 65441, 92722, 0,
- 0, 127772, 0, 917542, 0, 0, 6539, 0, 0, 0, 194856, 0, 120492, 41190,
- 3973, 119365, 4575, 41193, 7982, 429, 0, 127194, 0, 194854, 65792, 0,
- 118968, 6417, 118918, 78178, 0, 194850, 0, 0, 4919, 10590, 128556, 7755,
- 0, 0, 64548, 120506, 1621, 10214, 65126, 0, 127004, 0, 12188, 983668,
- 1617, 8050, 0, 5015, 0, 119174, 42590, 194871, 1756, 78181, 0, 65768,
- 6352, 41892, 0, 7555, 13103, 5408, 2817, 1214, 69919, 92335, 983125, 0,
- 0, 0, 127195, 7957, 8689, 64723, 1056, 42896, 74147, 194813, 0, 55286,
- 7073, 65850, 12327, 983948, 119028, 0, 0, 0, 2341, 8450, 8484, 8474,
- 983260, 0, 70079, 8461, 128102, 12153, 12799, 0, 43709, 43708, 9451,
- 7571, 13073, 0, 0, 681, 983252, 703, 0, 3272, 8781, 12894, 70077, 11709,
- 92288, 74446, 0, 92532, 0, 11338, 120768, 3276, 0, 0, 65928, 0, 0, 65021,
- 64795, 74574, 0, 10047, 78814, 3262, 78811, 42711, 0, 0, 68478, 163, 576,
- 9895, 1655, 78817, 74591, 78815, 78816, 983122, 0, 0, 0, 10039, 0,
- 983945, 5623, 5717, 5776, 0, 0, 0, 41591, 11036, 65252, 92382, 0, 0, 0,
- 67848, 0, 0, 0, 8887, 127521, 7295, 11031, 0, 43157, 0, 8946, 10348,
- 10412, 8755, 0, 0, 5718, 13221, 0, 0, 78135, 0, 983711, 8810, 74499, 686,
- 0, 71362, 4619, 118954, 6654, 73769, 74426, 0, 12040, 65689, 10128,
- 65118, 0, 119151, 74205, 92651, 0, 2401, 68144, 8792, 983648, 0, 65455,
- 0, 92246, 0, 119129, 0, 12886, 127920, 66624, 0, 43557, 10300, 10161,
- 10396, 74135, 983453, 118945, 78118, 73851, 3010, 6441, 78122, 1458,
- 41475, 128672, 93975, 0, 11479, 0, 120356, 6350, 12864, 69674, 78114,
- 1061, 64780, 2001, 43111, 55230, 128686, 4052, 0, 7626, 0, 0, 1045, 0,
- 5631, 41113, 0, 0, 43707, 74127, 0, 0, 8486, 0, 73758, 2335, 4362,
- 983195, 126561, 69221, 1025, 0, 42625, 917627, 78084, 41443, 0, 128206,
- 0, 1774, 1523, 0, 0, 41445, 78236, 0, 8567, 41442, 3988, 0, 78237,
- 118910, 0, 65274, 8564, 78199, 78238, 127515, 0, 0, 43446, 0, 66513,
- 6256, 0, 579, 55218, 10206, 983075, 6375, 2673, 0, 11814, 0, 4488, 0,
- 127336, 68451, 10444, 118846, 127334, 11799, 74407, 68466, 4487, 127849,
- 42832, 1032, 120267, 43450, 78257, 7203, 0, 614, 78191, 127325, 120615,
- 0, 78262, 128669, 127323, 0, 43121, 0, 0, 92513, 1050, 7549, 0, 0, 9314,
- 0, 0, 120616, 0, 10057, 0, 127313, 0, 66504, 983171, 0, 2307, 0, 64333,
- 127312, 128547, 73873, 0, 94035, 0, 127973, 128708, 0, 10360, 6746, 0,
- 92245, 440, 0, 13085, 9233, 74216, 0, 0, 9957, 128285, 66447, 8046,
- 64963, 65777, 10125, 74212, 42819, 10910, 0, 1521, 9896, 93965, 10487,
- 69878, 12527, 0, 7970, 0, 128660, 0, 65769, 5243, 9849, 5239, 65771,
- 983235, 0, 5237, 69714, 0, 10103, 5247, 4769, 0, 118977, 12873, 2283,
- 983237, 0, 3008, 4896, 0, 12087, 0, 55231, 41103, 0, 64565, 4773, 0,
- 92717, 70074, 4770, 0, 917567, 8731, 65378, 127362, 120619, 9122, 128033,
- 126600, 4774, 3019, 9997, 12834, 0, 9456, 10215, 120547, 0, 0, 0, 0,
- 74776, 4281, 4768, 0, 41535, 4099, 9017, 0, 0, 78095, 0, 78096, 0, 0, 0,
- 78098, 0, 42814, 880, 0, 0, 128021, 2134, 0, 10116, 9877, 92329, 0, 0,
- 7095, 0, 74116, 6778, 0, 78090, 8243, 2427, 128141, 7093, 0, 11585,
- 195003, 9962, 0, 12223, 0, 0, 1434, 120254, 5637, 11573, 0, 0, 0, 19951,
- 0, 78121, 0, 0, 55283, 0, 0, 74437, 1156, 8740, 92415, 3782, 64331, 0,
- 41370, 1014, 8261, 0, 0, 10835, 0, 65536, 0, 120463, 0, 7702, 118824, 0,
- 43010, 65779, 65783, 1150, 10547, 5700, 0, 120603, 65383, 2339, 42594,
- 5697, 118788, 0, 128576, 0, 42257, 5696, 92677, 120465, 3862, 9643, 0, 0,
- 7634, 65167, 9845, 0, 0, 5701, 9722, 41490, 983153, 1426, 68217, 0,
- 68447, 42204, 55270, 8571, 194991, 78067, 0, 78818, 92719, 43182, 12184,
- 0, 42022, 0, 10281, 0, 5650, 43194, 64712, 10744, 0, 990, 5647, 0, 7387,
- 78734, 41114, 11477, 5646, 12879, 11018, 983930, 3945, 92589, 0, 0, 0, 0,
- 78212, 127746, 1020, 73763, 0, 78731, 5648, 64748, 194910, 78733, 10205,
- 3545, 983585, 6984, 0, 74051, 983655, 43242, 120458, 2667, 0, 0, 0, 9911,
- 0, 65020, 10097, 119166, 127145, 983662, 118836, 983748, 78427, 1140,
- 78426, 0, 10159, 0, 0, 8128, 0, 0, 917965, 1815, 19910, 890, 0, 3267,
- 92291, 0, 10123, 0, 4410, 1041, 10576, 6354, 92581, 580, 74232, 0,
- 128347, 0, 0, 0, 19938, 65906, 127819, 0, 0, 3298, 5375, 10142, 0, 8215,
- 0, 6134, 41246, 64402, 0, 69899, 0, 0, 0, 41382, 0, 128653, 5173, 65348,
- 527, 0, 0, 92612, 128250, 78797, 11915, 0, 0, 10072, 0, 42695, 2329,
- 42250, 0, 128864, 69667, 12245, 1568, 94033, 0, 0, 128120, 0, 74328,
- 92708, 74769, 0, 119087, 9069, 6144, 0, 0, 73822, 0, 128010, 64917,
- 41521, 118934, 494, 13250, 0, 65098, 6364, 956, 0, 12830, 10462, 73740,
- 73734, 0, 0, 0, 66449, 13263, 74281, 69217, 13171, 127796, 0, 0, 92294,
- 0, 1044, 41276, 0, 0, 0, 42068, 11795, 0, 0, 0, 0, 42450, 3907, 0, 64526,
- 11829, 68197, 12295, 0, 11475, 0, 3020, 11537, 0, 66441, 983454, 7098, 0,
- 0, 1057, 566, 42696, 0, 3016, 42274, 43464, 66490, 12921, 66571, 78472,
- 92510, 3006, 4620, 127237, 983578, 0, 0, 64659, 0, 127749, 55253, 6357,
- 6362, 8626, 71337, 2216, 9090, 65377, 41596, 0, 42920, 1698, 0, 64477, 0,
- 43813, 1053, 0, 78269, 0, 126586, 1052, 1051, 459, 1060, 74349, 66479, 0,
- 0, 0, 0, 42490, 689, 6508, 4163, 42298, 8639, 66641, 4246, 0, 0, 12130,
- 0, 42337, 64596, 64375, 66481, 127850, 0, 0, 6359, 0, 43471, 983768, 0,
- 0, 127274, 0, 6358, 6361, 1926, 6356, 92627, 7898, 8110, 10935, 0, 10069,
- 5830, 0, 43685, 0, 0, 0, 0, 8693, 78611, 119565, 983808, 120413, 0,
- 127257, 65894, 0, 0, 0, 983923, 0, 0, 119187, 2135, 78868, 0, 0, 78869,
- 42313, 5579, 92412, 0, 983082, 94002, 0, 5578, 41774, 128115, 42023,
- 6234, 5669, 92275, 0, 0, 0, 127506, 68202, 5583, 0, 0, 42426, 5580,
- 42276, 2923, 892, 2220, 42465, 41330, 194987, 5795, 65512, 119006, 65702,
- 0, 120801, 65251, 0, 65710, 0, 0, 67672, 0, 5370, 0, 2931, 1638, 10966,
- 10188, 65878, 118848, 0, 69694, 69879, 128830, 8172, 42017, 0, 10844, 0,
- 128195, 92424, 6374, 0, 0, 286, 78023, 1062, 0, 119999, 0, 7395, 0, 1070,
- 64900, 7153, 6095, 41865, 0, 3015, 128023, 126465, 5211, 983083, 6400, 0,
- 194983, 70054, 8189, 11276, 0, 0, 372, 128829, 0, 118874, 42102, 41585,
- 128202, 0, 42101, 276, 78402, 0, 33, 74226, 127303, 9007, 118796, 41588,
- 66033, 427, 10763, 118819, 0, 127884, 0, 1031, 6257, 0, 42104, 0, 983980,
- 2328, 92409, 1071, 42899, 0, 74848, 0, 983580, 0, 1047, 0, 0, 64790, 0,
- 69723, 10651, 0, 0, 0, 0, 92206, 119181, 5711, 41633, 12098, 65571, 9166,
- 0, 5710, 0, 6790, 65168, 13216, 0, 69716, 69726, 0, 64611, 41623, 195001,
- 5715, 69654, 0, 0, 5712, 2761, 41620, 68124, 3074, 5722, 0, 8643, 73768,
- 0, 118906, 2757, 11067, 9718, 74498, 8910, 10689, 6479, 0, 0, 0, 78607,
- 9196, 69670, 0, 0, 0, 0, 118911, 0, 0, 0, 0, 0, 120010, 0, 8701, 68130,
- 119616, 120522, 0, 42477, 194994, 12123, 4495, 43569, 0, 0, 0, 64946,
- 10992, 0, 120009, 0, 0, 9318, 93986, 13249, 65679, 73808, 0, 65457,
- 42249, 7639, 43995, 67845, 42641, 5454, 0, 0, 194997, 120005, 0, 983966,
- 5084, 0, 0, 118861, 0, 733, 917876, 78014, 78436, 78435, 41677, 0, 9218,
- 1731, 0, 983746, 0, 67990, 0, 0, 0, 120001, 127018, 92492, 5155, 120000,
- 5358, 983744, 0, 917767, 64424, 983231, 3840, 64314, 41432, 0, 78315,
- 68430, 67980, 43253, 65943, 0, 3371, 10988, 0, 8771, 1479, 0, 0, 1109,
- 11580, 0, 64601, 12205, 0, 0, 64507, 8868, 399, 67978, 74842, 983284,
- 983721, 12149, 13088, 551, 0, 10156, 12119, 92572, 0, 2544, 65074,
- 119211, 0, 0, 78011, 351, 119149, 0, 0, 55229, 0, 74268, 0, 0, 0, 42377,
- 0, 0, 0, 983924, 0, 9013, 4054, 0, 983570, 983628, 0, 73960, 5585, 65881,
- 2549, 74469, 0, 0, 5584, 8358, 0, 64215, 92219, 10919, 0, 7980, 126601,
- 983784, 2218, 41800, 5589, 0, 2664, 41613, 5586, 118890, 0, 11356, 0, 0,
- 43452, 78609, 0, 42573, 67856, 0, 78129, 0, 0, 74392, 8135, 6450, 10055,
- 77996, 0, 0, 119225, 5657, 0, 9626, 0, 77994, 10179, 5654, 12939, 92573,
- 120799, 0, 0, 5652, 10945, 0, 66486, 0, 3661, 7863, 0, 0, 0, 74509,
- 983852, 5659, 0, 78692, 66729, 5655, 983626, 42168, 0, 1055, 917628,
- 127792, 66310, 74030, 0, 12146, 73955, 73956, 11618, 0, 126990, 0, 10272,
- 10304, 10368, 42518, 594, 10244, 10248, 7407, 983887, 64870, 0, 3467,
- 983891, 0, 3331, 946, 10231, 1495, 8131, 74330, 0, 9562, 69222, 65927, 0,
- 70036, 69696, 69769, 64656, 983726, 0, 94020, 70056, 5666, 65227, 5318,
- 63994, 0, 9091, 10798, 0, 128166, 10186, 0, 7732, 983724, 64556, 0, 0,
- 5668, 74445, 0, 128663, 5670, 126610, 127297, 11820, 2992, 7826, 5667,
- 19952, 120807, 0, 12749, 74551, 0, 0, 66496, 4361, 119260, 1306, 9286,
- 1497, 128286, 94004, 0, 0, 3571, 13247, 0, 7973, 66353, 68435, 78278,
- 67896, 43192, 0, 78265, 553, 120653, 0, 128554, 5829, 0, 4587, 78285,
- 65912, 0, 12746, 0, 0, 119924, 5633, 119927, 94101, 94102, 94099, 64905,
- 94105, 9512, 94103, 12742, 6443, 983806, 0, 9135, 0, 41564, 0, 55219,
- 128832, 983851, 0, 12148, 0, 78297, 0, 64256, 0, 11669, 0, 5634, 4524, 0,
- 127270, 0, 118880, 2425, 65182, 128769, 43636, 5221, 78410, 328, 0,
- 983809, 69815, 5636, 0, 5329, 0, 5638, 119918, 7940, 64938, 43223, 43760,
- 5635, 3373, 2986, 78292, 74223, 3437, 78291, 6203, 4247, 0, 11920, 8274,
- 0, 0, 1657, 41561, 78299, 78295, 5639, 2954, 5660, 5640, 78303, 983685,
- 78300, 42227, 0, 0, 41637, 67872, 0, 78310, 41625, 43362, 78309, 120713,
- 11705, 5642, 0, 5486, 0, 4356, 11710, 0, 12051, 69938, 0, 5641, 8259, 0,
- 1058, 0, 67630, 0, 0, 1144, 78750, 0, 42228, 0, 73890, 118972, 0, 2800,
- 0, 5645, 64964, 8652, 2547, 66484, 43634, 0, 5608, 65890, 43808, 0,
- 67621, 119934, 9000, 0, 0, 92673, 1865, 0, 5613, 69950, 0, 0, 5610, 0, 0,
- 65826, 2069, 0, 10787, 43999, 2997, 0, 5609, 78316, 65319, 78313, 12316,
- 65376, 2412, 0, 8186, 9807, 74269, 92547, 13130, 65874, 0, 5807, 0,
- 10030, 5306, 12364, 128064, 0, 11704, 0, 92583, 10211, 0, 0, 0, 0, 11706,
- 9710, 0, 0, 0, 413, 65623, 7118, 0, 9133, 74262, 0, 1042, 0, 64779,
- 12171, 119240, 6185, 64776, 4984, 0, 708, 11391, 0, 12241, 92720, 983899,
- 1308, 0, 2534, 810, 0, 0, 0, 0, 0, 1917, 3000, 0, 0, 120739, 2364, 92443,
- 74470, 66618, 65680, 120779, 10027, 0, 128154, 12337, 120722, 127368,
- 983167, 2980, 755, 69774, 931, 13124, 68182, 6363, 2748, 0, 0, 65041,
- 92276, 44011, 8730, 983067, 127854, 78312, 7274, 119250, 0, 7275, 78304,
- 935, 0, 65840, 377, 42325, 11649, 127363, 65253, 64301, 128835, 78308,
- 42341, 65284, 2417, 0, 12884, 19912, 7907, 10768, 0, 194998, 0, 10673,
- 119217, 7248, 0, 128346, 1781, 5496, 3627, 62, 1649, 0, 964, 0, 127876,
- 78226, 128775, 127512, 0, 0, 0, 0, 43689, 127911, 13142, 78812, 42415,
- 66575, 4542, 69909, 43547, 0, 0, 7677, 2991, 4946, 42454, 11565, 7949, 0,
- 983918, 11341, 42494, 3073, 65625, 9714, 11692, 4657, 0, 92724, 6478,
- 9898, 43673, 65237, 6241, 7106, 4877, 983795, 6238, 0, 10548, 127049,
- 4409, 0, 0, 64798, 0, 5346, 0, 94047, 6237, 4874, 0, 9176, 0, 126553,
- 65231, 65884, 12678, 78748, 118912, 11378, 44018, 42785, 2408, 3251, 0,
- 0, 5685, 0, 2461, 11052, 7091, 5342, 8317, 0, 68163, 5340, 0, 127820,
- 43635, 73928, 127529, 0, 0, 0, 128510, 65482, 0, 9142, 0, 126470, 0,
- 10938, 0, 118790, 1182, 2542, 4826, 0, 0, 128176, 529, 8580, 0, 0, 10586,
- 10790, 10839, 66023, 41593, 41207, 0, 0, 41594, 225, 42828, 0, 0, 983938,
- 11376, 74379, 10721, 67664, 3438, 42097, 127267, 11084, 3194, 41870, 266,
- 78305, 120183, 41873, 120575, 11324, 120531, 0, 8420, 64918, 128844,
- 41871, 41338, 3734, 7734, 43683, 8750, 66605, 66011, 92514, 40965,
- 127937, 0, 5161, 10572, 0, 0, 0, 64349, 7287, 42162, 127552, 0, 126605,
- 11948, 69220, 12359, 43429, 41369, 1697, 12191, 0, 68633, 7286, 0, 68635,
- 10031, 0, 9870, 68645, 8620, 65824, 0, 11938, 0, 7285, 0, 119577, 42678,
- 0, 43677, 41583, 0, 65799, 92623, 0, 0, 983936, 78169, 66199, 0, 3609,
- 68624, 0, 832, 120693, 120770, 78473, 66007, 78471, 65703, 0, 0, 42732,
- 5180, 92699, 41395, 41530, 11691, 64773, 92214, 74002, 0, 0, 128645,
- 6348, 243, 13200, 983813, 6024, 92309, 9979, 10037, 41529, 10648, 8538,
- 43687, 0, 0, 4285, 66195, 0, 4230, 0, 7367, 43256, 92353, 7563, 42376, 0,
- 68442, 120512, 0, 0, 214, 0, 0, 78466, 65893, 12208, 9973, 0, 66311,
- 65589, 128277, 2603, 0, 0, 0, 70047, 0, 6022, 0, 2884, 0, 11620, 0, 43,
- 0, 66453, 1016, 41107, 0, 41121, 3885, 92, 65456, 64608, 0, 74801, 0,
- 2074, 0, 78283, 0, 12453, 128128, 983826, 74241, 126568, 6791, 12457,
- 78268, 0, 0, 0, 78279, 0, 0, 92358, 66637, 7995, 8759, 43421, 78277,
- 12449, 128552, 0, 0, 8752, 3197, 4720, 10165, 0, 119249, 0, 11595, 64893,
- 0, 43435, 0, 0, 4993, 0, 6168, 10934, 1946, 741, 0, 5494, 4639, 983147,
- 1990, 66589, 4498, 78664, 119183, 0, 0, 69734, 2960, 73779, 0, 8969,
- 128117, 43424, 127059, 0, 2950, 119579, 6210, 65753, 370, 0, 0, 0, 4953,
- 983682, 0, 0, 0, 69230, 0, 0, 65688, 983246, 5063, 3517, 2964, 43663,
- 917762, 6344, 74791, 10566, 10144, 66333, 8252, 729, 66016, 78253, 0,
- 71317, 64923, 128040, 43669, 9032, 78263, 78264, 0, 41215, 0, 65883, 0,
- 917774, 120602, 3761, 0, 0, 70068, 0, 12912, 119012, 3850, 128191, 0, 0,
- 0, 0, 908, 0, 8611, 0, 0, 127555, 43691, 41197, 0, 8978, 120540, 119135,
- 41586, 10527, 0, 917848, 3848, 78739, 194937, 127536, 65241, 5336,
- 983259, 128786, 663, 0, 10780, 0, 0, 78767, 983257, 127163, 68193, 347,
- 0, 0, 78775, 64675, 41582, 78774, 78744, 65579, 12980, 78769, 12143,
- 69657, 78512, 0, 43441, 41804, 78523, 0, 78525, 0, 128859, 41584, 10681,
- 0, 983695, 73938, 0, 128022, 4800, 66661, 0, 66306, 64715, 78534, 9518,
- 6609, 10434, 0, 11319, 1097, 0, 917850, 41730, 983214, 0, 73847, 78761,
- 65172, 41728, 41721, 0, 0, 0, 41203, 917612, 13110, 41726, 983855, 0,
- 1000, 69651, 0, 41140, 1209, 73978, 0, 73750, 1073, 6321, 77878, 41138,
- 0, 68213, 0, 12167, 1115, 41605, 9794, 127062, 67671, 55248, 12237,
- 78787, 66314, 6587, 9290, 78782, 78783, 9231, 78781, 2959, 7926, 0, 0, 0,
- 64398, 0, 119970, 12311, 983727, 78796, 78798, 78794, 78795, 68434,
- 78793, 66670, 0, 0, 12290, 120169, 0, 119873, 42142, 9968, 8205, 0, 5131,
- 0, 9627, 78536, 78542, 78535, 983212, 1944, 1248, 10148, 127755, 119990,
- 119991, 12701, 78376, 11308, 119995, 0, 119997, 119998, 65305, 65100,
- 4031, 42794, 120003, 7075, 8154, 119985, 120007, 41817, 73934, 42275,
- 120011, 120012, 78526, 120014, 120015, 6041, 0, 41899, 0, 8002, 0, 4364,
- 0, 0, 64332, 0, 7813, 9064, 119986, 10124, 7526, 8601, 7281, 78455, 7279,
- 12041, 1418, 10885, 12673, 0, 0, 9660, 983280, 13012, 4571, 0, 0, 120164,
- 12078, 2970, 0, 10933, 0, 77870, 0, 127015, 0, 41599, 0, 128831, 0,
- 12950, 92160, 3486, 0, 78311, 4239, 0, 127799, 66511, 0, 2637, 64629,
- 8460, 127053, 8476, 983975, 0, 0, 0, 65673, 1019, 78495, 4148, 0, 12289,
- 0, 4316, 0, 13119, 8488, 5412, 66243, 9935, 0, 73864, 983203, 41734,
- 8206, 74081, 9163, 3286, 9072, 5867, 13302, 7622, 7120, 41736, 92546,
- 41731, 0, 7400, 5416, 68663, 118924, 10817, 0, 41539, 127284, 0, 73963,
- 41855, 41867, 65564, 11277, 65892, 11536, 10620, 92272, 7115, 66030,
- 73932, 5498, 73942, 41536, 0, 68204, 92587, 3459, 8997, 0, 0, 0, 0,
- 92512, 0, 66377, 69781, 0, 983699, 78511, 3161, 295, 120207, 0, 92223,
- 127856, 78742, 9016, 43454, 63903, 63902, 43641, 0, 3971, 0, 70063, 2952,
- 78765, 11038, 10901, 63900, 63899, 63898, 94043, 667, 12332, 63887, 6086,
- 41722, 0, 5172, 0, 983278, 4159, 0, 0, 9815, 63884, 19934, 63882, 41198,
- 8555, 63878, 63877, 42460, 6050, 42708, 63881, 63872, 0, 42421, 0, 41723,
- 63875, 63874, 11460, 7432, 1913, 41913, 63852, 126636, 0, 42348, 73892,
- 6752, 446, 41911, 127906, 63851, 63850, 41910, 0, 63846, 2972, 12932,
- 7262, 0, 63849, 63848, 63847, 128070, 6570, 8302, 7259, 63842, 4178,
- 10746, 7250, 13214, 10041, 8105, 63892, 0, 118983, 1105, 4180, 0, 12094,
- 9497, 0, 63891, 63890, 63889, 63888, 5538, 9987, 0, 118932, 1678, 13274,
- 552, 120654, 44010, 10785, 0, 119170, 4557, 74459, 9159, 10171, 13125,
- 63860, 5540, 63858, 63865, 281, 13242, 63862, 74154, 0, 5536, 65568,
- 63857, 1388, 74169, 0, 1077, 983577, 65099, 11531, 5834, 0, 0, 0, 0,
- 42773, 0, 0, 0, 119220, 0, 3663, 0, 1112, 119122, 8686, 0, 5334, 65081,
- 43249, 74778, 127968, 11077, 0, 6509, 0, 5327, 0, 19907, 63869, 3478,
- 7583, 7679, 2903, 0, 3001, 1158, 8745, 43746, 73748, 63866, 78626, 1915,
- 4846, 0, 66371, 118984, 42105, 2990, 120128, 805, 69238, 64438, 12070,
- 8760, 1117, 118987, 12212, 120123, 65174, 42357, 63835, 63834, 0, 78240,
- 12225, 63838, 63837, 983853, 983804, 63833, 6042, 66360, 8083, 0, 0,
- 63821, 63820, 63819, 63818, 983904, 5227, 9047, 63822, 127162, 6091, 0,
- 10691, 560, 5643, 8226, 119578, 63812, 63811, 63810, 63809, 2289, 63815,
- 63814, 63813, 6047, 1597, 120143, 780, 206, 77925, 4936, 65147, 8168,
- 63930, 2076, 1093, 9882, 63934, 2082, 63932, 128150, 63929, 3546, 1605,
- 77934, 9806, 43472, 77933, 8400, 11343, 2086, 0, 63926, 2984, 5968, 9287,
- 0, 4618, 42209, 43431, 13169, 5290, 2089, 1695, 10743, 1088, 63825, 7268,
- 1084, 1085, 63829, 1083, 10131, 7283, 0, 63970, 128358, 1092, 4754, 7273,
- 5252, 44016, 43627, 127921, 0, 7408, 11809, 917618, 0, 0, 2965, 7258,
- 8808, 0, 1089, 4187, 63937, 42119, 42120, 0, 940, 5787, 10099, 63938, 0,
- 74494, 12463, 2994, 0, 118827, 0, 9664, 77939, 77940, 67892, 77938,
- 74343, 0, 0, 660, 10127, 666, 9022, 5532, 43667, 5533, 77941, 78507,
- 6118, 222, 979, 3884, 0, 74151, 92652, 6502, 0, 127118, 128695, 63951,
- 12465, 0, 0, 128782, 63946, 1707, 63924, 12461, 63950, 63897, 63948,
- 63947, 63945, 6038, 63943, 63942, 64685, 63895, 65838, 2276, 7776, 94076,
- 0, 127773, 120444, 69730, 801, 43165, 1690, 63919, 63918, 63917, 13277,
- 43659, 12951, 120638, 9906, 2054, 2334, 78515, 63916, 5483, 63914, 69737,
- 63911, 5484, 63909, 63908, 2539, 0, 43980, 5485, 0, 42697, 9061, 5534,
- 10672, 4502, 0, 253, 0, 68208, 0, 9203, 74231, 0, 11530, 92542, 68668, 0,
- 118907, 0, 10474, 43426, 13257, 42354, 128099, 983698, 70044, 195065, 0,
- 8413, 983816, 0, 5693, 7272, 0, 13209, 64470, 65831, 74350, 195063, 0, 0,
- 0, 126639, 120097, 0, 94078, 128133, 127767, 66608, 3111, 41863, 8804,
- 42913, 92187, 7270, 0, 66606, 6628, 1076, 7433, 1436, 73844, 55226,
- 128353, 63982, 7393, 12807, 43413, 63906, 1598, 63904, 0, 0, 41729, 4423,
- 1307, 0, 10515, 41589, 128698, 0, 6218, 0, 1430, 0, 0, 120606, 78754,
- 5413, 7619, 3255, 3493, 74032, 11549, 10735, 41743, 73937, 6801, 983633,
- 4518, 10990, 65073, 5167, 4481, 3771, 120158, 2710, 0, 69243, 41724, 0,
- 43073, 41690, 12479, 983635, 0, 0, 983818, 70046, 1628, 127149, 983487,
- 983731, 65262, 6333, 10783, 42315, 0, 63855, 94056, 0, 0, 5339, 74323, 0,
- 13004, 0, 4457, 0, 0, 194818, 0, 5684, 8678, 10914, 0, 5689, 65807, 0,
- 68464, 12633, 12870, 69705, 65183, 5688, 11926, 6033, 6310, 5686, 0,
- 74251, 0, 120647, 0, 50, 10558, 9871, 42612, 43655, 0, 0, 0, 66468, 0,
- 13259, 4448, 0, 983845, 0, 70043, 67853, 0, 10640, 11539, 1151, 0,
- 917607, 127544, 127079, 195050, 127852, 0, 0, 0, 12501, 64604, 0, 11527,
- 118870, 8812, 0, 11538, 8673, 12650, 11020, 0, 66467, 2105, 8087, 78163,
- 69632, 9894, 0, 0, 0, 4636, 55262, 78513, 4515, 2382, 0, 127055, 0,
- 120495, 0, 128284, 12277, 194627, 11995, 92553, 0, 12158, 0, 8741, 10197,
- 0, 92426, 0, 6531, 0, 127846, 473, 43415, 0, 983650, 1873, 1087, 0, 0, 0,
- 78527, 66439, 43218, 983123, 194716, 7237, 12504, 74282, 0, 983571, 0,
- 9489, 0, 0, 4384, 74220, 63845, 2058, 128863, 13295, 43191, 128030, 0,
- 1154, 3857, 1205, 0, 0, 13100, 12958, 120706, 74168, 0, 0, 4421, 10592,
- 0, 495, 119007, 41712, 7983, 0, 93997, 0, 6347, 120165, 7654, 41710,
- 4196, 0, 437, 41709, 73772, 0, 0, 9465, 13290, 119180, 4997, 64306, 0, 0,
- 4999, 194642, 0, 126582, 4711, 120769, 0, 2739, 0, 8044, 74834, 194643,
- 41789, 128142, 10809, 0, 0, 0, 1779, 6600, 6601, 41543, 5325, 642, 64187,
- 13058, 120449, 12875, 0, 92186, 13229, 0, 10575, 43399, 0, 0, 41791,
- 1104, 0, 0, 10655, 0, 0, 0, 0, 1082, 195049, 8428, 6569, 0, 0, 0, 69849,
- 6783, 0, 12993, 8049, 41548, 44021, 6458, 983807, 128882, 4761, 63828,
- 4766, 64623, 1273, 43407, 0, 118876, 195045, 6912, 1313, 6322, 10483,
- 983603, 41545, 0, 92449, 0, 0, 0, 0, 78624, 3484, 74337, 0, 0, 8503,
- 5122, 41527, 0, 66320, 983811, 0, 0, 0, 41537, 69683, 8303, 8282, 11817,
- 73857, 10003, 73859, 65904, 7363, 1686, 0, 78406, 11467, 3664, 65921,
- 64299, 194664, 0, 0, 4324, 126, 42246, 119152, 0, 74378, 65926, 7744,
- 194636, 74277, 74302, 78052, 43817, 6966, 43822, 8136, 0, 65600, 1633, 0,
- 0, 4762, 1103, 0, 0, 4765, 983492, 13078, 0, 4760, 63827, 2050, 10871,
- 43199, 1102, 0, 42236, 128867, 194667, 11546, 74794, 337, 0, 42591, 8627,
- 12279, 1111, 0, 92161, 4707, 68206, 10143, 7883, 127081, 7880, 4522,
- 8645, 5704, 13010, 0, 8304, 917561, 0, 119575, 2293, 0, 66654, 0, 92676,
- 0, 13008, 0, 4385, 0, 13011, 0, 92569, 119161, 13009, 160, 2677, 0, 0,
- 41793, 65763, 74221, 120141, 41792, 42770, 94054, 65762, 118829, 43821,
- 5709, 0, 94053, 43816, 0, 0, 1079, 3867, 5708, 0, 0, 43797, 5706, 64768,
- 5705, 8791, 4005, 0, 10237, 10991, 128816, 43459, 9173, 917581, 917580,
- 13170, 12540, 917577, 42605, 120765, 126617, 68647, 917572, 10058, 0,
- 74867, 194654, 127078, 3339, 11448, 1106, 917591, 917590, 917593, 3340,
- 917587, 917586, 917589, 917588, 120541, 10605, 1309, 63966, 120743, 1754,
- 92226, 13246, 864, 0, 118926, 8972, 0, 7849, 120092, 92533, 13240,
- 195068, 5192, 4338, 67982, 10948, 917601, 13199, 92575, 1236, 13208,
- 13261, 13189, 13188, 93993, 0, 7440, 0, 120153, 9553, 1590, 63777, 63776,
- 13178, 63782, 63781, 63780, 63779, 1583, 0, 13260, 4550, 0, 64205, 0, 0,
- 41522, 983915, 92168, 983772, 917858, 11354, 94071, 0, 42795, 0, 119195,
+ 73982, 120518, 83473, 195086, 43369, 983177, 128140, 68415, 77861, 4538,
+ 93978, 43141, 983769, 82976, 74214, 73886, 67709, 917599, 71918, 43005,
+ 71114, 9552, 0, 70129, 129173, 12997, 83477, 0, 128897, 195030, 2381,
+ 12883, 10994, 10529, 41906, 0, 74618, 0, 12425, 10661, 10856, 9614, 2428,
+ 41478, 8582, 10064, 73930, 82977, 70437, 121251, 64896, 119162, 1952,
+ 92181, 8455, 10082, 11575, 128450, 119566, 128093, 12808, 12183, 6145,
+ 75020, 64929, 74985, 71916, 74984, 43186, 42509, 0, 3922, 9187, 83277,
+ 83278, 10191, 83271, 11752, 3353, 9358, 983462, 71366, 66680, 120090,
+ 8248, 7931, 8558, 9795, 68380, 120047, 983056, 83470, 120081, 119052,
+ 41027, 120086, 71449, 120088, 7366, 7019, 70378, 0, 11751, 120078, 78294,
+ 64657, 8657, 83472, 8594, 120068, 0, 983789, 120069, 120072, 120071, 0,
+ 113711, 43154, 41029, 119956, 11332, 65380, 7728, 94077, 11294, 0, 66665,
+ 7851, 0, 8375, 8699, 127949, 42524, 68419, 9085, 94041, 7504, 9327, 6160,
+ 73842, 983864, 194929, 8088, 128937, 74012, 66562, 0, 4439, 6926, 72423,
+ 12924, 128227, 42369, 4350, 65491, 65145, 9041, 43559, 64577, 10826,
+ 127476, 11296, 983285, 983409, 0, 65825, 9577, 68199, 983393, 64670,
+ 983121, 78056, 6793, 11295, 70409, 78053, 73872, 78055, 119993, 10902, 0,
+ 0, 78070, 11200, 10472, 2995, 121438, 120138, 64682, 2371, 78069, 118893,
+ 259, 1009, 70405, 2402, 2333, 6440, 194741, 113757, 65125, 41244, 70407,
+ 13271, 9103, 2278, 983146, 194728, 129120, 0, 10219, 74968, 194740, 0,
+ 67718, 43178, 127070, 41261, 119362, 43640, 8613, 0, 94049, 6736, 83439,
+ 41492, 12005, 69927, 127068, 1890, 120056, 0, 83443, 0, 7293, 7991,
+ 74052, 10578, 121141, 78076, 128620, 67368, 69928, 71850, 78800, 92653,
+ 64445, 42668, 6635, 128308, 6164, 65170, 74936, 121182, 7676, 11664, 0,
+ 93025, 69707, 93022, 118812, 0, 71096, 128045, 9175, 11925, 78045, 9088,
+ 119145, 64545, 1396, 120664, 7546, 3847, 71088, 93037, 4985, 13288, 672,
+ 8098, 43196, 194746, 120723, 128126, 42655, 74043, 65072, 1577, 11772,
+ 13041, 5928, 4525, 10658, 65911, 1266, 10180, 194711, 128371, 12622,
+ 127234, 124948, 0, 121214, 127139, 13310, 773, 19933, 1539, 0, 74969,
+ 42731, 67972, 74970, 71066, 983200, 3051, 5862, 7823, 92478, 92746,
+ 120411, 3250, 43991, 69687, 66649, 9510, 66237, 983304, 0, 41066, 64673,
+ 917963, 92381, 128636, 3505, 8707, 74925, 6725, 120802, 121296, 75041,
+ 3471, 66391, 5479, 882, 6686, 119584, 11613, 120772, 42754, 74608,
+ 125029, 83433, 121237, 120845, 0, 83431, 3225, 917996, 4433, 41156,
+ 43973, 43173, 1443, 4381, 0, 983642, 10926, 11756, 11757, 64879, 121106,
+ 42654, 127848, 13227, 120320, 10021, 5160, 1387, 0, 92644, 41418, 128933,
+ 65914, 6721, 217, 917955, 917960, 121082, 10443, 10789, 41158, 119257,
+ 4274, 11143, 41483, 0, 41250, 128904, 42179, 128375, 5931, 11744, 11215,
+ 74446, 41252, 66682, 0, 119637, 41249, 1366, 64635, 65047, 12466, 983458,
+ 120813, 4397, 128037, 128336, 41296, 9545, 41291, 120893, 0, 41485, 3511,
+ 41282, 5923, 10400, 0, 120493, 760, 0, 12088, 5786, 68252, 42256, 119869,
+ 67145, 417, 41474, 119562, 41565, 74965, 5934, 74572, 66583, 74904,
+ 64877, 2284, 64481, 78614, 66013, 41956, 43455, 67240, 194656, 0, 0,
+ 42273, 5819, 0, 128056, 0, 119129, 983100, 65910, 127747, 10246, 120816,
+ 65785, 1237, 10274, 4552, 119576, 128287, 0, 1375, 66705, 43573, 65260,
+ 3329, 0, 42811, 10312, 69845, 120794, 7840, 0, 43630, 10252, 119242,
+ 128104, 43185, 0, 4396, 195051, 119880, 10769, 9676, 119041, 0, 9753,
+ 92762, 8944, 983164, 0, 10473, 983823, 120472, 6072, 43025, 10299,
+ 128436, 68845, 120608, 66326, 67412, 92952, 0, 43811, 9330, 120596, 7222,
+ 10283, 10315, 10379, 4996, 127902, 13281, 66517, 7865, 10087, 78343,
+ 74938, 43324, 0, 0, 7565, 66363, 12952, 64806, 43180, 74967, 7414, 77929,
+ 43982, 74288, 622, 74023, 885, 43405, 1602, 0, 983731, 852, 0, 12160,
+ 83491, 10212, 65435, 129092, 12071, 9609, 12156, 917983, 917984, 43586,
+ 11035, 10411, 917988, 10255, 6710, 10279, 4194, 10375, 43853, 128599,
+ 4315, 12644, 83490, 77937, 43639, 43343, 67408, 128945, 11501, 41177,
+ 121180, 128866, 43431, 127097, 92413, 8715, 0, 41179, 983358, 43313,
+ 120230, 41176, 128780, 994, 983045, 8452, 77973, 73966, 66890, 70812,
+ 5921, 0, 2597, 92423, 5922, 118903, 66873, 4186, 92531, 119967, 127105,
+ 6718, 127029, 4406, 74601, 8480, 9192, 9747, 121040, 4413, 92196, 42268,
+ 3198, 5924, 5920, 92469, 6921, 78081, 74007, 42869, 8418, 11681, 43169,
+ 10176, 0, 742, 74881, 2893, 10772, 65276, 5937, 1914, 2553, 11682, 6756,
+ 125104, 121126, 8363, 0, 2993, 7772, 3916, 4301, 120494, 1141, 42407,
+ 7417, 718, 7572, 973, 119599, 120718, 3235, 2415, 43164, 0, 8018, 42333,
+ 74756, 10675, 6937, 42486, 43381, 65390, 10067, 120849, 1202, 0, 983910,
+ 65863, 0, 68484, 94013, 78182, 64542, 3260, 73829, 65388, 9945, 8419,
+ 78042, 6738, 0, 43681, 69728, 2059, 92422, 0, 55237, 1431, 119194, 66565,
+ 10821, 0, 12804, 128076, 8229, 1235, 3307, 11472, 78089, 78184, 4544,
+ 71228, 917982, 129188, 1740, 78097, 8758, 985, 12872, 64511, 78094,
+ 12068, 78102, 71226, 10141, 74922, 63761, 8785, 4476, 65071, 63763,
+ 12655, 8907, 9147, 78106, 78103, 78104, 120898, 119572, 10665, 64616,
+ 41572, 127979, 127160, 983554, 41573, 83160, 3931, 120295, 74143, 83156,
+ 83157, 83158, 78460, 11982, 0, 83067, 128381, 92712, 64484, 119266,
+ 41167, 0, 41735, 94019, 717, 10754, 83168, 83169, 72413, 83163, 63767,
+ 83165, 1780, 6936, 0, 83161, 819, 10611, 9694, 126978, 71474, 0, 127871,
+ 129069, 8343, 8342, 8345, 8344, 6578, 7009, 7523, 6922, 8348, 8347, 7525,
+ 3346, 8339, 128165, 128208, 575, 268, 78111, 8563, 5754, 120343, 41541,
+ 65565, 8336, 5936, 7290, 78117, 8337, 8341, 308, 11388, 7522, 83151,
+ 78123, 65466, 11090, 6953, 0, 83375, 74973, 78132, 5926, 68250, 78130,
+ 78126, 78127, 78124, 78125, 9038, 7887, 43456, 7830, 11651, 13093, 64002,
+ 983559, 65742, 12874, 119597, 11590, 0, 74048, 67379, 8595, 9835, 917947,
+ 43703, 13097, 0, 64643, 13283, 12697, 74975, 12381, 3488, 5933, 10033,
+ 71101, 66241, 65570, 119154, 12297, 71212, 1955, 127970, 5349, 42538, 0,
+ 124932, 7411, 9462, 128150, 0, 128465, 43920, 42736, 121017, 5756,
+ 128324, 7638, 41642, 42764, 983717, 43109, 7637, 5752, 11213, 83481,
+ 73832, 128827, 83486, 128231, 78334, 917957, 7636, 65171, 9124, 983210,
+ 78892, 120798, 291, 0, 983221, 2027, 66230, 10080, 78136, 10403, 70869,
+ 4640, 64713, 10224, 120429, 11183, 120431, 120430, 0, 128351, 127489,
+ 127138, 0, 92499, 0, 119094, 74213, 7824, 0, 194648, 41274, 5778, 6302,
+ 121432, 0, 12680, 119130, 1417, 67242, 93041, 9452, 128153, 74393, 11552,
+ 0, 127855, 128217, 65391, 128614, 10172, 65453, 63789, 41264, 78658,
+ 6426, 4641, 9179, 64819, 55278, 41255, 42036, 41469, 41269, 120412,
+ 41267, 4646, 67759, 865, 42034, 78274, 78273, 4645, 42033, 78270, 127982,
+ 983172, 43948, 195100, 68840, 78674, 1659, 919, 42784, 1671, 127892,
+ 6069, 9219, 128558, 1661, 13120, 63784, 69819, 10140, 9713, 119143, 0,
+ 71462, 94050, 2306, 10485, 118943, 6068, 10612, 195099, 119567, 67705,
+ 92561, 41462, 120470, 195079, 5422, 128234, 983629, 128611, 83474, 10229,
+ 10635, 826, 83475, 195082, 127003, 195084, 71455, 6483, 92211, 1808,
+ 7848, 113788, 8100, 78227, 71198, 78670, 13301, 78667, 9667, 78665,
+ 67704, 983921, 11003, 9904, 83410, 983919, 120690, 9144, 10921, 92992,
+ 78680, 9840, 65131, 78678, 71092, 10313, 83408, 83500, 64320, 10265,
+ 67252, 10962, 66904, 43008, 8945, 78683, 120995, 41, 195072, 1792,
+ 120515, 195073, 8655, 68254, 92544, 77951, 12066, 67258, 385, 4152, 2585,
+ 127804, 119068, 3126, 917852, 73983, 10957, 127037, 11160, 119116,
+ 127873, 13157, 0, 128024, 3570, 129187, 7443, 118804, 44006, 6997, 68004,
+ 126631, 7879, 8739, 11075, 917971, 65216, 70196, 69795, 2593, 8463, 7810,
+ 128543, 7839, 92612, 78806, 75064, 9691, 4411, 78802, 121219, 120854,
+ 43442, 69851, 65254, 10066, 983889, 72419, 0, 0, 13061, 8016, 78687,
+ 19932, 64831, 0, 113684, 12390, 119171, 1634, 68115, 65070, 11056,
+ 983574, 119925, 983099, 41165, 11328, 12450, 983811, 41166, 0, 12456,
+ 119914, 171, 5941, 12452, 194709, 12458, 12531, 78779, 43013, 63800,
+ 74162, 119320, 120483, 9969, 120767, 12454, 63806, 42132, 12063, 78425,
+ 78424, 3230, 68773, 983497, 75025, 5209, 297, 5810, 8522, 8415, 119937,
+ 78429, 78428, 7077, 2497, 128651, 960, 74156, 6981, 92374, 12938, 4292,
+ 78893, 74815, 10512, 0, 74814, 78875, 127505, 78876, 2503, 73778, 1762,
+ 69794, 2495, 74911, 5844, 68031, 118838, 127947, 12654, 4663, 1899,
+ 78877, 2507, 64121, 8726, 65594, 92972, 0, 119000, 8892, 78872, 92339,
+ 71232, 983073, 5782, 420, 127348, 917871, 43796, 10797, 63794, 0, 128533,
+ 64814, 63796, 43861, 0, 66581, 119204, 41608, 128479, 121144, 63792,
+ 4659, 120788, 77971, 43676, 74944, 69673, 121029, 11129, 92929, 329,
+ 77968, 92707, 83496, 7399, 0, 41188, 13244, 67692, 42167, 7435, 78193,
+ 5380, 119086, 69225, 1155, 11365, 43126, 77972, 0, 65684, 0, 5601, 65192,
+ 42765, 63752, 0, 7987, 69676, 1172, 69799, 6786, 43601, 120476, 74126,
+ 5603, 0, 4473, 121085, 72426, 124947, 65347, 65346, 65345, 128548,
+ 119213, 5347, 69802, 917973, 73868, 70852, 10588, 0, 0, 63755, 128271,
+ 5343, 78422, 120661, 4555, 5341, 83459, 70071, 74916, 5351, 78675, 43104,
+ 65244, 121365, 64541, 42519, 68134, 128916, 126986, 74765, 128979,
+ 127510, 6638, 0, 65113, 271, 74180, 65370, 8835, 65368, 12653, 65366,
+ 42172, 41086, 65363, 65362, 65361, 11912, 43410, 11323, 65357, 11800,
+ 65355, 5345, 11103, 65352, 65351, 761, 65349, 19959, 69718, 63856,
+ 126635, 2423, 74518, 64647, 77959, 11957, 4699, 126573, 128670, 983787,
+ 0, 64605, 0, 68074, 983977, 4916, 128568, 380, 10958, 66563, 77955,
+ 69773, 9773, 13167, 12918, 41096, 73980, 69245, 78254, 83450, 10684, 0,
+ 125063, 92906, 7946, 12541, 8182, 67586, 69780, 0, 128207, 0, 983654,
+ 9005, 1225, 6630, 0, 0, 118854, 68011, 8847, 92371, 65876, 5535, 8329,
+ 74590, 125036, 92609, 0, 66874, 3127, 2595, 65713, 42013, 121211, 5607,
+ 41089, 128626, 0, 70292, 2665, 11304, 43751, 74200, 4970, 8764, 120459,
+ 8934, 92726, 41566, 4492, 67271, 65011, 41090, 0, 83417, 1188, 7254,
+ 1100, 0, 67270, 41081, 2912, 11749, 67282, 67281, 67280, 3572, 10023,
+ 4959, 13079, 0, 67275, 9729, 125110, 121042, 67278, 43361, 127355, 67276,
+ 11803, 7996, 9907, 41450, 13304, 83392, 83369, 41451, 83370, 11095, 8273,
+ 74322, 3451, 70291, 972, 41453, 68164, 119327, 73883, 68022, 73945,
+ 83363, 2288, 19955, 9538, 83366, 69807, 0, 129095, 0, 83381, 11396,
+ 83385, 11019, 0, 128416, 121205, 68020, 41078, 71365, 261, 5927, 7791,
+ 128681, 7362, 0, 10696, 70124, 6073, 9838, 118920, 0, 6075, 93995, 282,
+ 119178, 6437, 68830, 121459, 9801, 66399, 74177, 0, 917959, 3474, 67287,
+ 0, 67286, 6081, 83469, 78874, 67289, 67283, 83471, 70002, 42930, 0,
+ 93013, 8751, 11499, 67297, 7816, 12636, 4665, 12628, 4670, 67298, 120272,
+ 68017, 9642, 10912, 958, 67293, 11387, 67291, 4666, 70792, 4915, 67715,
+ 4669, 0, 68099, 13287, 4664, 10836, 120550, 75053, 69775, 0, 43595, 7450,
+ 0, 917875, 8664, 9697, 3606, 83446, 983978, 917874, 64815, 1063, 120250,
+ 67312, 9772, 7255, 8886, 1389, 127932, 120257, 120258, 120259, 12941,
+ 42661, 83438, 120255, 120256, 12301, 67836, 69820, 41102, 64428, 120262,
+ 66602, 120264, 1017, 66600, 523, 505, 1447, 74436, 0, 70340, 83437, 8608,
+ 42789, 120613, 83436, 0, 71906, 11307, 66707, 67301, 67300, 11745, 7919,
+ 67304, 1641, 0, 0, 8966, 128900, 74919, 5908, 71870, 67853, 6744, 67310,
+ 1699, 67308, 67307, 67314, 67313, 6306, 10169, 71324, 119251, 10068,
+ 3766, 2389, 67305, 120455, 6611, 257, 43170, 13153, 0, 42386, 983815,
+ 9436, 2599, 0, 6496, 9449, 5930, 11476, 11033, 11447, 10541, 5622,
+ 120436, 8477, 3760, 1718, 9442, 66433, 3776, 917837, 41435, 4352, 67324,
+ 2435, 71211, 5621, 120385, 4201, 3778, 4203, 4202, 4205, 4204, 120447,
+ 3768, 41774, 765, 41440, 3764, 8473, 6373, 8469, 120438, 12947, 4564,
+ 119049, 74623, 74271, 73753, 8374, 127201, 0, 6829, 5225, 66901, 127385,
+ 0, 0, 119615, 67319, 67318, 3162, 43507, 11771, 67322, 67321, 67320,
+ 42614, 5353, 5625, 74179, 67315, 0, 1010, 64572, 41780, 42623, 64277,
+ 69942, 6952, 67329, 67328, 67327, 2590, 5629, 65552, 7551, 10325, 5632,
+ 10471, 120038, 120027, 120028, 120025, 5628, 120031, 970, 120029, 4772,
+ 2400, 5627, 120017, 67330, 120023, 64275, 120021, 8786, 113693, 203,
+ 74365, 0, 0, 69985, 78350, 113703, 64378, 42054, 128575, 0, 554, 119649,
+ 11358, 71172, 12182, 42048, 11065, 125114, 73891, 83423, 83019, 5694,
+ 7689, 69798, 9323, 4325, 3047, 10317, 175, 120962, 93029, 69764, 0, 0,
+ 1243, 42154, 5431, 6652, 917561, 67753, 43651, 129129, 68118, 68093,
+ 1129, 126574, 0, 65900, 1986, 7846, 78804, 8661, 75058, 65255, 93992,
+ 3845, 4490, 118969, 6649, 74136, 1456, 7530, 11977, 7249, 8366, 0, 7756,
+ 12342, 120697, 51, 41516, 0, 8570, 9568, 71318, 456, 7026, 8145, 1168,
+ 9251, 9082, 119964, 64055, 42781, 3866, 12323, 41512, 73805, 68121,
+ 917850, 41494, 92316, 4660, 67114, 10405, 127195, 78803, 0, 129176,
+ 42040, 73918, 119627, 7944, 41454, 12605, 0, 42205, 41455, 236, 64051,
+ 78867, 8214, 83421, 113784, 120037, 41457, 983970, 119589, 1969, 2384,
+ 8097, 128019, 7413, 68012, 78029, 8766, 43864, 78079, 5854, 125000,
+ 10583, 0, 119989, 127556, 10416, 68070, 3872, 83424, 983839, 8429,
+ 121230, 118806, 2838, 6429, 0, 83426, 0, 128478, 0, 194620, 94005, 11096,
+ 83422, 10553, 1662, 8483, 120396, 43605, 5892, 43418, 67819, 73742, 66,
+ 65, 68, 67, 70, 69, 72, 71, 74, 73, 76, 75, 78, 77, 80, 79, 82, 81, 84,
+ 83, 86, 85, 88, 87, 90, 89, 119862, 10357, 7385, 8170, 1704, 8556,
+ 917975, 9659, 0, 0, 0, 9556, 0, 4503, 11353, 9647, 125015, 78185, 128959,
+ 0, 71437, 78886, 0, 0, 74229, 66593, 6438, 83364, 9109, 78882, 1289,
+ 64599, 118915, 68009, 128302, 65507, 2447, 119911, 128694, 128042,
+ 126545, 66589, 0, 6334, 128369, 0, 19937, 917793, 1322, 92359, 5675, 254,
+ 0, 0, 69686, 42425, 8918, 64003, 5716, 42312, 0, 194692, 6972, 42826,
+ 74409, 42464, 120567, 66899, 67155, 74796, 64400, 64693, 128805, 67687,
+ 65429, 9515, 4435, 0, 42522, 0, 68008, 11785, 7412, 43867, 41978, 1412,
+ 4594, 1391, 10536, 8067, 9901, 7103, 128293, 7102, 71428, 120748, 3140,
+ 127276, 7960, 43271, 121099, 12518, 10909, 127508, 1428, 12472, 67254,
+ 67253, 7699, 12393, 67257, 0, 67256, 67255, 8223, 0, 4261, 121460,
+ 120910, 74308, 983827, 113712, 67153, 983571, 128046, 43419, 983471,
+ 64554, 10574, 3878, 67691, 42352, 1752, 73785, 128171, 42506, 128541,
+ 10199, 917865, 125142, 68021, 65919, 0, 6695, 720, 324, 0, 129035, 43406,
+ 983736, 1464, 40985, 0, 7974, 0, 43474, 68082, 64488, 128977, 120951,
+ 64041, 74787, 0, 78865, 92258, 65597, 121416, 78863, 0, 1302, 66288,
+ 78861, 119134, 0, 67152, 5204, 74774, 43404, 11835, 120923, 3995, 68360,
+ 65608, 3714, 92190, 120026, 67262, 10999, 11750, 67259, 43251, 67264,
+ 43301, 0, 120557, 8130, 8672, 10845, 11964, 121268, 128014, 92173, 0,
+ 68455, 42863, 73839, 127529, 0, 67700, 917812, 113701, 43645, 468, 612,
+ 0, 64401, 66448, 68376, 0, 1674, 0, 5823, 128625, 12280, 70367, 540,
+ 74564, 119017, 66422, 8432, 78873, 11073, 0, 64316, 0, 121070, 820,
+ 41741, 983477, 120667, 124981, 64684, 126992, 3359, 7800, 69934, 65177,
+ 6226, 353, 12396, 121176, 119612, 64742, 128682, 78879, 983478, 127938,
+ 12412, 19941, 0, 120277, 70352, 1884, 9481, 42418, 70059, 41157, 983142,
+ 1195, 64898, 7924, 119870, 41151, 2010, 71430, 41328, 42344, 0, 12409, 0,
+ 4360, 121023, 9739, 128550, 69933, 73921, 917631, 42521, 8539, 128606, 0,
+ 118986, 127148, 4788, 121345, 68023, 65734, 983457, 43790, 120274, 13075,
+ 74429, 94063, 64569, 43532, 10837, 2492, 127197, 118901, 68637, 41136,
+ 43785, 11813, 9649, 41154, 113731, 5128, 4038, 41143, 65604, 64859,
+ 41592, 6771, 1648, 5435, 67295, 6734, 41343, 119848, 65439, 12709, 6986,
+ 92364, 68015, 120533, 41349, 70021, 12581, 10374, 5175, 0, 73806, 10254,
+ 113681, 10278, 10262, 69858, 41346, 120870, 607, 0, 68182, 128846, 12923,
+ 10314, 10282, 65477, 10378, 120297, 40976, 8265, 129149, 78639, 40975,
+ 5840, 42838, 74987, 40978, 121386, 92945, 128020, 119809, 0, 66444,
+ 10538, 120810, 2550, 119836, 6779, 129130, 0, 3525, 6824, 118886, 983582,
+ 0, 5619, 65822, 113751, 113738, 7455, 71424, 5616, 11486, 9656, 0, 0,
+ 10727, 5615, 120873, 120551, 42380, 64895, 43693, 66451, 808, 5455,
+ 11347, 0, 1026, 5620, 194887, 0, 11350, 5617, 0, 9225, 64639, 127073,
+ 9145, 128060, 1338, 120581, 983158, 12739, 4603, 3084, 70408, 92484,
+ 9858, 6037, 983465, 3974, 78213, 10290, 983704, 3083, 10322, 129048,
+ 129030, 75038, 41036, 66897, 0, 43321, 65606, 127071, 41032, 42388, 0,
+ 64700, 10011, 1445, 40961, 0, 119105, 0, 40960, 194907, 67727, 125106,
+ 2223, 64952, 10402, 128358, 125049, 92304, 10603, 0, 983403, 71438, 0,
+ 6714, 10083, 127069, 121019, 78367, 69976, 0, 43872, 9073, 42585, 64302,
+ 10704, 65030, 4787, 129031, 74829, 0, 65423, 121306, 128118, 9570, 55260,
+ 9525, 2689, 917626, 65426, 194872, 917624, 43740, 121163, 40966, 120009,
+ 13286, 3998, 42598, 42596, 503, 71433, 8735, 2690, 66488, 42836, 127150,
+ 41954, 917615, 1652, 772, 6688, 8310, 65428, 3487, 43416, 3585, 10194,
+ 43320, 119159, 73955, 92315, 6468, 41976, 9720, 74964, 11179, 41970,
+ 66255, 5836, 12358, 0, 4355, 9048, 12180, 65027, 64680, 13038, 43699, 0,
+ 41488, 128087, 8527, 194917, 12362, 12435, 12360, 41053, 3266, 0, 12356,
+ 8616, 41466, 42924, 2227, 11450, 983691, 3638, 12354, 67299, 3216, 83099,
+ 2358, 83092, 8633, 71201, 983745, 119182, 69244, 83090, 70375, 11759,
+ 194903, 6368, 74823, 67303, 41423, 8078, 10504, 83104, 41698, 42237,
+ 983454, 7002, 83101, 41430, 42267, 41051, 41484, 0, 71467, 41050, 41473,
+ 10466, 13099, 71445, 70371, 120897, 6435, 74331, 11362, 128973, 83088,
+ 65382, 92770, 41420, 83083, 3625, 74915, 41409, 71441, 69639, 2041, 9178,
+ 9672, 41427, 43541, 43317, 74924, 0, 128557, 41424, 917598, 120546, 0,
+ 128212, 0, 41417, 1261, 0, 0, 12102, 119662, 41401, 0, 127538, 0, 78251,
+ 124943, 42290, 3275, 92472, 42329, 68850, 74901, 0, 127951, 92388, 69649,
+ 10989, 74234, 113781, 10598, 7410, 2669, 903, 0, 2920, 0, 127232, 74603,
+ 64504, 19928, 0, 128411, 3917, 983119, 11732, 0, 983180, 41448, 41461,
+ 128823, 0, 113721, 113758, 8819, 12663, 0, 41184, 74014, 232, 74835,
+ 120646, 9168, 65786, 0, 83293, 121007, 9094, 983926, 11758, 68425, 71886,
+ 1064, 42467, 128044, 10115, 19924, 92711, 113682, 7862, 64551, 13224,
+ 8516, 41862, 66650, 7561, 78618, 69793, 1878, 0, 71434, 2911, 83074,
+ 41178, 5427, 64823, 83062, 83066, 3787, 41174, 83055, 41458, 67147,
+ 41463, 42413, 11292, 2406, 775, 0, 65584, 69923, 6074, 9618, 68056,
+ 121480, 43440, 74539, 194901, 41436, 3656, 917805, 120600, 41456, 67694,
+ 1599, 11333, 83139, 6703, 8513, 83134, 1613, 83136, 68456, 12598, 83131,
+ 83132, 78745, 74500, 41460, 10145, 10542, 9937, 78746, 67144, 9905,
+ 83145, 65730, 83147, 120374, 8427, 83142, 55246, 120376, 42895, 11497,
+ 64687, 74008, 42592, 3871, 983584, 128305, 9111, 5741, 83325, 120987,
+ 120366, 119111, 11150, 0, 120368, 128855, 11648, 83126, 83127, 83128,
+ 41587, 70391, 83123, 71108, 42113, 983588, 127155, 12172, 83121, 71443,
+ 65298, 65723, 68289, 73871, 65724, 7928, 120354, 983095, 41595, 73730,
+ 64671, 42118, 73830, 66042, 10355, 983110, 7875, 983669, 41598, 3993,
+ 121269, 1545, 40971, 536, 127075, 43029, 0, 121000, 65173, 65286, 0,
+ 70331, 195012, 0, 94065, 0, 41375, 5402, 83035, 128192, 1687, 120503,
+ 917817, 0, 78194, 64326, 40969, 10526, 73747, 8323, 40968, 1339, 11731,
+ 78756, 127108, 65460, 12242, 128513, 8020, 10843, 11554, 917867, 0, 8266,
+ 41006, 65722, 83041, 10710, 74045, 118942, 67667, 64567, 119155, 83313,
+ 128778, 71889, 67857, 120687, 0, 92958, 11755, 66305, 68332, 0, 10917,
+ 93979, 0, 11272, 2040, 41247, 41326, 195060, 1741, 42370, 1227, 83119,
+ 83120, 11413, 126583, 83115, 5283, 1586, 4978, 68050, 1984, 11830, 43819,
+ 92293, 40984, 42904, 9373, 0, 12916, 6284, 194888, 41663, 983093, 0,
+ 68313, 9237, 9385, 41648, 0, 128953, 2299, 41666, 1830, 73783, 2056,
+ 41287, 92610, 0, 71917, 42219, 68086, 120327, 41987, 41676, 983059,
+ 120823, 126553, 41670, 0, 92590, 2796, 55291, 11683, 9902, 74521, 67988,
+ 11451, 82995, 78855, 42631, 2359, 71890, 67844, 74164, 41238, 548, 11405,
+ 13133, 64368, 127270, 120925, 66272, 397, 43622, 42139, 9547, 9590,
+ 128238, 1614, 43661, 64356, 66307, 6651, 1358, 120871, 428, 9620, 1466,
+ 78112, 10982, 113785, 1333, 7104, 407, 6425, 128834, 74253, 127993, 0, 0,
+ 5804, 11976, 8554, 92721, 0, 70167, 9057, 42294, 41218, 125097, 121290,
+ 78137, 1883, 10952, 8048, 70443, 41225, 92621, 42915, 128616, 128512,
+ 128629, 4407, 74648, 65809, 11837, 194821, 8448, 7141, 74183, 120334,
+ 12675, 12659, 74634, 42363, 120624, 68077, 55273, 10766, 12012, 2386,
+ 64732, 9170, 917821, 9123, 64585, 10296, 119158, 7140, 10977, 127378,
+ 4164, 9081, 0, 120569, 42049, 42042, 8709, 128283, 126477, 120637, 42419,
+ 64799, 42047, 0, 194820, 8470, 11807, 65897, 577, 0, 983760, 74300, 0,
+ 68087, 74840, 126474, 0, 128791, 92224, 8736, 1414, 42643, 9683, 43486,
+ 74344, 0, 2536, 983941, 66330, 121238, 0, 0, 0, 0, 0, 194830, 66317,
+ 69945, 66315, 2106, 67809, 11273, 120986, 43004, 7541, 82988, 0, 961,
+ 64307, 66324, 64906, 125080, 3106, 65917, 41284, 1696, 983130, 891,
+ 12105, 0, 42624, 12802, 3264, 8824, 13268, 43003, 10936, 120878, 0, 0,
+ 194826, 92688, 3566, 2322, 120371, 70831, 11449, 128187, 42868, 41285,
+ 3547, 0, 0, 113746, 983400, 43216, 6089, 78682, 68490, 120578, 4170,
+ 1029, 127761, 127036, 119224, 42374, 0, 744, 92883, 113739, 0, 65823,
+ 127826, 11182, 3551, 92938, 983891, 4623, 55268, 128738, 4598, 983162,
+ 65136, 127136, 0, 128169, 10851, 120876, 6179, 92602, 6180, 0, 11952,
+ 74579, 78648, 11972, 78646, 78647, 78644, 78645, 177, 78643, 6176,
+ 120580, 983696, 125135, 6177, 9020, 78652, 78653, 6178, 120249, 120242,
+ 128027, 67673, 2214, 8754, 127051, 120237, 2137, 43081, 194663, 119114,
+ 9136, 66889, 4401, 41280, 70801, 8974, 2308, 194750, 74149, 128327, 2318,
+ 983183, 66361, 8198, 65626, 64360, 12601, 42536, 43931, 120827, 43930,
+ 92462, 6970, 5404, 43332, 3667, 7936, 12925, 126989, 6385, 128482,
+ 128403, 118949, 10874, 65505, 120002, 129151, 42053, 2075, 42057, 11083,
+ 42052, 0, 67266, 67651, 121104, 9665, 92300, 983666, 13181, 917617, 0, 0,
+ 70088, 74148, 0, 70419, 120225, 120229, 120224, 74172, 41145, 66404,
+ 94096, 74422, 41148, 8683, 7594, 113686, 75033, 119090, 10869, 43458,
+ 41146, 92407, 11441, 121456, 3512, 119633, 92965, 8103, 78140, 120847,
+ 65184, 11780, 41563, 42796, 129055, 69742, 41544, 65146, 71314, 0, 78109,
+ 129177, 19942, 983244, 118908, 7988, 10436, 74273, 3271, 73804, 64711, 0,
+ 94064, 983071, 128652, 3804, 13070, 11557, 42044, 0, 1095, 0, 3599,
+ 127774, 0, 128861, 8514, 0, 0, 0, 74346, 66697, 0, 11684, 0, 92486,
+ 917603, 0, 42043, 43232, 66677, 74927, 42046, 74157, 4036, 126481, 0,
+ 128213, 194861, 83355, 11954, 70348, 1450, 12986, 1340, 0, 65441, 92722,
+ 0, 0, 125117, 0, 917542, 73812, 83053, 6539, 92948, 126607, 120702,
+ 92390, 0, 120492, 41190, 3973, 119365, 4575, 41193, 7982, 429, 917979,
+ 78891, 0, 194848, 65792, 128408, 83282, 6417, 118918, 78178, 0, 128970,
+ 0, 0, 4919, 10590, 128556, 7755, 0, 92942, 64548, 120506, 1621, 10214,
+ 65126, 68253, 127004, 983616, 12188, 983668, 1617, 8050, 0, 5015, 0,
+ 119174, 42590, 70354, 1756, 78181, 0, 65768, 6352, 41892, 0, 7555, 13103,
+ 5408, 2817, 1214, 69919, 92335, 121208, 0, 68224, 120872, 41764, 7957,
+ 8689, 64723, 1056, 42896, 74147, 3559, 983918, 55286, 7073, 65850, 12327,
+ 70853, 119028, 0, 128122, 128442, 2341, 8450, 8484, 8474, 194884, 68322,
+ 70079, 8461, 67721, 12153, 12799, 0, 43709, 43708, 9451, 7571, 13073,
+ 43847, 0, 681, 983254, 703, 127518, 3272, 8781, 12894, 70077, 11709,
+ 92288, 70514, 983900, 83175, 71436, 11338, 120768, 3276, 128968, 917989,
+ 65928, 0, 121367, 65021, 64795, 74574, 0, 10047, 78814, 3262, 78811,
+ 42711, 0, 0, 68478, 163, 576, 9895, 1655, 70131, 74591, 78815, 78816,
+ 66888, 0, 0, 70513, 10039, 120426, 5626, 5623, 5717, 5776, 43488, 83497,
+ 66885, 41591, 11036, 65252, 92382, 0, 0, 120111, 67848, 128128, 983595,
+ 983472, 8887, 127521, 7295, 11031, 983336, 43157, 0, 8946, 10348, 10412,
+ 8755, 119152, 0, 5718, 13221, 0, 0, 78135, 70515, 917616, 8810, 74499,
+ 686, 0, 71362, 4619, 118954, 6654, 73769, 74426, 0, 12040, 65689, 10128,
+ 65118, 68029, 119151, 74205, 92651, 128902, 2401, 68144, 8792, 983648,
+ 68044, 65455, 0, 74328, 0, 74561, 120763, 12886, 120952, 66624, 126578,
+ 43557, 10300, 10161, 10396, 71210, 78602, 118945, 9984, 73851, 3010,
+ 6441, 70349, 1458, 41475, 72429, 93975, 127910, 11479, 121355, 120356,
+ 6350, 12864, 69674, 71473, 1061, 64780, 2001, 43111, 55230, 124946, 4052,
+ 113673, 7626, 0, 120907, 1045, 0, 5631, 41113, 127544, 0, 43707, 74127,
+ 0, 983718, 8486, 0, 73758, 2335, 4362, 983195, 126561, 69221, 1025,
+ 127277, 42625, 70325, 78084, 41443, 0, 128206, 0, 1774, 1523, 121330,
+ 68059, 41445, 78236, 11207, 8567, 41442, 3988, 74843, 78237, 118910, 0,
+ 65274, 8564, 78199, 78238, 127515, 121272, 0, 43446, 0, 66513, 6256,
+ 917807, 579, 55218, 10206, 78195, 6375, 2673, 983886, 11814, 0, 4488,
+ 128716, 120554, 68451, 10444, 118846, 127334, 11799, 74407, 68466, 4487,
+ 127849, 42832, 1032, 120267, 43450, 78257, 7203, 124998, 614, 70361,
+ 127215, 120615, 119622, 78262, 127271, 127323, 0, 43121, 127211, 128366,
+ 92513, 1050, 7549, 121260, 82994, 9314, 70365, 92898, 68039, 127061,
+ 10057, 70434, 127313, 128577, 66504, 120963, 82992, 2307, 128456, 64333,
+ 127312, 128230, 73873, 983710, 94035, 0, 127973, 128708, 70446, 10360,
+ 6746, 120473, 92245, 440, 0, 13085, 9233, 74216, 0, 127785, 9957, 128285,
+ 66447, 8046, 64963, 65777, 10125, 74212, 42819, 10910, 120424, 1521,
+ 9896, 93965, 10487, 69878, 12527, 68737, 7970, 125073, 128660, 0, 65769,
+ 5243, 9849, 5239, 65771, 121429, 0, 5237, 69714, 68756, 10103, 5247,
+ 4769, 129302, 118977, 12873, 2283, 92931, 0, 3008, 4896, 128102, 12087,
+ 0, 55231, 41103, 92256, 64565, 4773, 120846, 78549, 70074, 4770, 66891,
+ 917567, 8731, 65378, 66911, 120619, 9122, 128033, 126600, 4774, 3019,
+ 9997, 12834, 0, 9456, 10215, 120547, 0, 78556, 0, 121332, 74776, 4281,
+ 4768, 120572, 41535, 4099, 9017, 69993, 983692, 78095, 2225, 78096,
+ 118946, 121097, 0, 78098, 0, 42814, 880, 0, 113764, 66870, 2134, 0,
+ 10116, 9877, 92329, 128960, 0, 7095, 8379, 74116, 6778, 0, 78090, 8243,
+ 2427, 128141, 7093, 0, 11585, 195003, 9962, 82990, 12223, 128485, 92430,
+ 1434, 120254, 5637, 11573, 0, 0, 0, 19951, 83389, 74419, 0, 194686,
+ 55283, 0, 70363, 74437, 1156, 8740, 83295, 3782, 64331, 0, 41370, 1014,
+ 8261, 120956, 917596, 10835, 917966, 65536, 83294, 120463, 125051, 7702,
+ 118824, 128976, 43010, 65779, 65783, 1150, 10547, 5700, 0, 120603, 65383,
+ 2339, 42594, 5697, 118788, 75018, 128576, 74923, 42257, 5696, 92677,
+ 120465, 3862, 9643, 0, 70183, 7634, 65167, 9845, 0, 0, 5701, 9722, 41490,
+ 128719, 1426, 68217, 983614, 68447, 42204, 55270, 8571, 67403, 78067,
+ 43859, 78818, 92719, 43182, 12184, 0, 42022, 0, 10281, 0, 5650, 43194,
+ 64712, 10744, 78887, 990, 5647, 0, 7387, 78734, 41114, 11477, 5646,
+ 12879, 11018, 128362, 3945, 92589, 983466, 194989, 78883, 0, 78212,
+ 127746, 1020, 73763, 983835, 78731, 5648, 64748, 120920, 78733, 10205,
+ 3545, 983585, 6984, 128008, 74051, 128901, 43242, 120458, 2667, 128173,
+ 125037, 0, 9911, 0, 65020, 10097, 119166, 127145, 983662, 118836, 983748,
+ 78208, 1140, 78426, 0, 10159, 0, 0, 8128, 128644, 68326, 194911, 1815,
+ 19910, 890, 124935, 3267, 92291, 0, 10123, 121398, 4410, 1041, 10576,
+ 6354, 92581, 580, 74232, 983746, 128347, 0, 0, 128098, 19938, 65906,
+ 127819, 917811, 0, 3298, 5375, 10142, 0, 8215, 92633, 6134, 41246, 64402,
+ 983147, 69899, 194938, 0, 121426, 41382, 917927, 128653, 5173, 65348,
+ 527, 121174, 113782, 78469, 128250, 78797, 11915, 0, 0, 10072, 0, 42695,
+ 2329, 42250, 0, 11187, 69667, 12245, 1568, 94033, 83460, 0, 113705,
+ 917910, 11201, 92708, 74769, 126470, 67680, 9069, 6144, 0, 119840, 73822,
+ 0, 128010, 64917, 41521, 118934, 494, 13250, 92250, 65098, 6364, 956,
+ 113792, 12830, 10462, 73740, 73734, 0, 0, 983739, 66449, 13263, 74281,
+ 69217, 13171, 127796, 120564, 0, 63885, 127251, 1044, 41276, 128363, 0,
+ 0, 42068, 11795, 124985, 0, 127202, 0, 42450, 3907, 0, 64526, 11829,
+ 68197, 12295, 0, 11475, 70329, 3020, 11537, 0, 66441, 120761, 7098,
+ 125071, 0, 1057, 566, 42696, 127239, 3016, 42274, 43464, 66490, 12921,
+ 66571, 78472, 71207, 3006, 4620, 127237, 983330, 0, 0, 64659, 0, 127749,
+ 55253, 6357, 6362, 8626, 71337, 2216, 9090, 65377, 41596, 0, 42920, 1698,
+ 0, 64477, 917853, 43813, 1053, 0, 78269, 0, 92977, 1052, 1051, 459, 1060,
+ 74349, 66479, 67689, 66871, 917845, 70327, 42490, 689, 6508, 4163, 42298,
+ 8639, 66641, 4246, 0, 43514, 12130, 983308, 42337, 64596, 64375, 66481,
+ 127850, 983144, 127828, 6359, 0, 43471, 983768, 0, 83345, 75065, 0, 6358,
+ 6361, 1926, 6356, 92627, 7898, 8110, 10935, 0, 10069, 5830, 127773,
+ 43685, 74307, 0, 42910, 83301, 8693, 78611, 119565, 128621, 120413,
+ 92192, 121454, 65894, 194694, 0, 64296, 983681, 983644, 194959, 119187,
+ 2135, 11836, 0, 0, 78869, 42313, 5579, 92412, 70384, 129113, 43854,
+ 71913, 5578, 11840, 128115, 42023, 6234, 5669, 92275, 78620, 121171,
+ 68833, 92254, 68202, 5583, 0, 0, 42426, 5580, 42276, 2923, 892, 2220,
+ 42465, 41330, 194987, 5795, 65512, 68774, 65702, 68770, 120801, 65251,
+ 68228, 65710, 128399, 128429, 67672, 68783, 5370, 70465, 2931, 1638,
+ 10966, 10188, 65878, 118848, 0, 69694, 69879, 74585, 8172, 42017, 92756,
+ 10844, 121016, 128195, 92424, 6374, 119998, 121075, 286, 78023, 1062, 0,
+ 119999, 0, 7395, 127783, 1070, 64900, 7153, 6095, 41865, 194640, 3015,
+ 68743, 68740, 5211, 68805, 6400, 68749, 68748, 68760, 8189, 11276, 68754,
+ 70284, 372, 128829, 68761, 113783, 42102, 41585, 127751, 0, 42101, 276,
+ 78402, 67427, 33, 67425, 67424, 9007, 67430, 41588, 66033, 427, 10763,
+ 118819, 70872, 127884, 983943, 1031, 6257, 92489, 42104, 0, 983980, 2328,
+ 66837, 1071, 42899, 125088, 74848, 120857, 113793, 194981, 1047, 0,
+ 194943, 42908, 128480, 69723, 10651, 70356, 0, 125113, 72433, 66829,
+ 70817, 5711, 41633, 12098, 65571, 9166, 0, 5710, 128551, 6790, 65168,
+ 13216, 983150, 69716, 69726, 0, 64611, 41623, 195001, 5715, 69654, 71915,
+ 0, 5712, 2761, 41620, 68124, 3074, 5722, 0, 8643, 68525, 0, 118906, 2757,
+ 11067, 9718, 66419, 8910, 10689, 6479, 0, 0, 71173, 78607, 9196, 69670,
+ 125070, 0, 128338, 120335, 118911, 0, 94043, 129194, 0, 0, 120010, 73795,
+ 8701, 68130, 119616, 120522, 0, 42477, 194994, 12123, 4495, 43569, 0,
+ 129296, 0, 64946, 10992, 0, 74566, 70336, 113688, 9318, 93986, 13249,
+ 42902, 73808, 0, 65457, 42249, 7639, 43995, 67845, 42641, 5454, 0, 0,
+ 70366, 120005, 119585, 121212, 5084, 121189, 121134, 75062, 0, 733,
+ 74646, 78014, 68767, 78435, 11204, 0, 9218, 1731, 0, 92937, 71070, 67990,
+ 983125, 0, 0, 70323, 121371, 92492, 5155, 120000, 5358, 983744, 0,
+ 917767, 64424, 71236, 3840, 64314, 41432, 121316, 78315, 68430, 67980,
+ 43253, 65943, 0, 3371, 10988, 127960, 8771, 1479, 0, 0, 1109, 11580,
+ 43657, 64601, 12205, 92782, 0, 64507, 8868, 399, 67978, 74842, 983286,
+ 121336, 12149, 13088, 551, 0, 10156, 12119, 92572, 118916, 2544, 65074,
+ 119211, 983298, 0, 78011, 351, 68764, 0, 128713, 55229, 0, 74268, 78008,
+ 128094, 0, 42377, 0, 0, 0, 113767, 74320, 9013, 4054, 0, 194580, 113740,
+ 0, 73960, 5585, 65881, 2549, 74469, 74457, 11104, 5584, 8358, 126473,
+ 64215, 66864, 10919, 70480, 7980, 126601, 113698, 2218, 41800, 5589,
+ 82983, 2664, 41613, 5586, 118890, 0, 11356, 121120, 194833, 43452, 67245,
+ 92993, 42573, 66879, 83329, 67810, 69767, 78752, 74392, 8135, 6450,
+ 10055, 77996, 119948, 983173, 119225, 5657, 0, 9626, 121453, 77994,
+ 10179, 5654, 12939, 92573, 120799, 71860, 0, 5652, 10945, 194599, 66486,
+ 0, 3661, 7863, 0, 68069, 983675, 70332, 127194, 5659, 194606, 78692,
+ 66729, 5655, 983626, 42168, 121131, 1055, 71171, 71888, 66310, 74030,
+ 70516, 12146, 70362, 73956, 11618, 0, 42720, 92949, 10272, 10304, 10368,
+ 42518, 594, 10244, 10248, 7407, 74978, 64870, 74191, 3467, 71073, 7881,
+ 3331, 946, 10231, 1495, 8131, 74330, 0, 9562, 69222, 65927, 0, 70036,
+ 69696, 69769, 64656, 917995, 0, 92409, 70056, 5666, 65227, 5318, 63994,
+ 119596, 9091, 10798, 78664, 78508, 10186, 983265, 7732, 983724, 64556, 0,
+ 983979, 5668, 74445, 74982, 74645, 5670, 113795, 127297, 11820, 2992,
+ 7826, 5667, 19952, 120807, 74981, 12749, 74551, 67757, 0, 66496, 4361,
+ 119260, 1306, 9286, 1497, 128286, 94004, 70359, 0, 3571, 13247, 5874,
+ 7973, 66353, 68435, 78278, 67896, 43192, 74621, 78265, 553, 113768,
+ 127012, 93053, 5829, 0, 4587, 78285, 65912, 194919, 12746, 128671, 70338,
+ 119924, 5633, 119927, 74259, 94102, 94099, 64905, 94105, 9512, 94103,
+ 12742, 6443, 983806, 0, 9135, 128863, 41564, 121517, 55219, 128832,
+ 983851, 194877, 12148, 0, 78297, 0, 64256, 0, 11669, 0, 5634, 4524,
+ 128903, 124936, 128390, 83215, 2425, 65182, 128769, 43636, 5221, 78410,
+ 328, 121031, 68736, 69815, 5636, 119917, 5329, 121293, 5638, 83166, 7940,
+ 64938, 43223, 43760, 5635, 3373, 2986, 78292, 74223, 3437, 68763, 6203,
+ 4247, 71169, 11920, 8274, 68240, 983658, 1657, 41561, 68778, 78295, 5639,
+ 2954, 5660, 5640, 78303, 983685, 71179, 42227, 68301, 83322, 41637,
+ 67872, 121105, 78310, 41625, 43362, 78309, 120713, 11705, 5642, 0, 5486,
+ 0, 4356, 11710, 0, 12051, 69938, 0, 5641, 8259, 126994, 1058, 0, 67630,
+ 0, 128927, 1144, 78750, 127293, 42228, 983714, 73890, 118972, 127352,
+ 2800, 83209, 5645, 64964, 8652, 2547, 66484, 43634, 121356, 5608, 65890,
+ 43808, 194972, 67621, 64932, 9000, 71204, 67235, 92673, 1865, 128706,
+ 5613, 66401, 121145, 0, 5610, 983226, 71199, 65826, 2069, 0, 10787,
+ 43999, 2997, 119932, 5609, 78316, 65319, 78313, 12316, 5875, 2412, 83206,
+ 8186, 9807, 74269, 66294, 13130, 65874, 71855, 5807, 113678, 10030, 5306,
+ 12364, 118863, 92970, 11704, 83202, 92583, 10211, 0, 120579, 0, 121063,
+ 11706, 9710, 125022, 82985, 120655, 413, 65623, 7118, 83167, 9133, 74262,
+ 917964, 1042, 125068, 64779, 12171, 119240, 6185, 64776, 4984, 121266,
+ 708, 11391, 0, 12241, 92720, 83399, 1308, 121258, 2534, 810, 125089,
+ 120933, 128016, 71849, 71869, 1917, 3000, 125140, 120184, 120739, 2364,
+ 66387, 74470, 66618, 65680, 66411, 10027, 71841, 128154, 12337, 74283,
+ 127368, 983167, 2980, 755, 69774, 931, 13124, 68068, 6363, 2748, 121022,
+ 0, 65041, 92276, 44011, 8730, 194997, 127854, 78312, 7274, 119250, 92988,
+ 7275, 78304, 935, 127052, 65840, 377, 42325, 11649, 127363, 65253, 64301,
+ 128835, 78308, 42341, 65284, 2417, 0, 12884, 19912, 7907, 10768, 78300,
+ 194998, 194912, 10673, 68779, 7248, 68786, 43515, 1781, 5496, 3627, 62,
+ 1649, 67876, 964, 121034, 66403, 78226, 66393, 92897, 70355, 66409, 0,
+ 83398, 43689, 127911, 13142, 78812, 42415, 66575, 4542, 69909, 43547,
+ 83028, 0, 7677, 2991, 4946, 42454, 11565, 7949, 0, 69759, 11341, 42494,
+ 3073, 65625, 9714, 11692, 4657, 0, 70810, 6478, 9898, 43673, 65237, 6241,
+ 7106, 4877, 129108, 6238, 0, 10548, 127049, 4409, 0, 0, 64798, 70805,
+ 5346, 128240, 94047, 6237, 4874, 66851, 9176, 92882, 121153, 65231,
+ 65884, 12678, 78748, 118912, 11378, 44018, 42785, 2408, 3251, 11203,
+ 983159, 5685, 0, 2461, 11052, 7091, 5342, 8317, 121446, 68163, 5340,
+ 120559, 127820, 43635, 73928, 125001, 71069, 83318, 0, 83317, 65482,
+ 121394, 9142, 0, 68506, 0, 10938, 0, 118790, 1182, 2542, 4826, 0, 126648,
+ 72438, 529, 8580, 127490, 0, 10586, 10790, 10839, 66023, 41593, 41207,
+ 68744, 983825, 41594, 225, 42828, 0, 67821, 121200, 11376, 74379, 10721,
+ 67664, 3438, 42097, 68862, 11084, 3194, 41870, 266, 78305, 120183, 41873,
+ 120575, 11324, 120531, 0, 8420, 64918, 128839, 41871, 41338, 3734, 7734,
+ 43683, 8750, 66605, 66011, 92514, 40965, 127937, 983216, 5161, 10572,
+ 917558, 42906, 0, 64349, 7287, 42162, 120406, 983643, 126605, 11167,
+ 69220, 12359, 43429, 41369, 1697, 12191, 0, 68633, 7286, 0, 68635, 10031,
+ 113766, 9870, 67726, 8620, 65824, 917855, 11938, 121308, 7285, 983557,
+ 119577, 42678, 66842, 43677, 41583, 0, 65799, 92623, 0, 129168, 128267,
+ 78169, 66199, 0, 3609, 68624, 70280, 832, 120693, 120770, 78473, 66007,
+ 78471, 65703, 71256, 128517, 42732, 5180, 92699, 41395, 41530, 11691,
+ 64773, 92214, 74002, 127790, 120548, 128645, 6348, 243, 13200, 120160,
+ 6024, 92309, 9979, 10037, 41529, 10648, 8538, 43687, 0, 917844, 4285,
+ 66195, 121370, 4230, 92886, 7367, 43256, 92353, 7563, 42376, 983271,
+ 68442, 120512, 0, 0, 214, 128578, 0, 74856, 65893, 12208, 9973, 128386,
+ 66311, 65589, 128277, 2603, 0, 70155, 78622, 70047, 127273, 6022, 195023,
+ 2884, 0, 11620, 0, 43, 195020, 12682, 1016, 41107, 0, 41121, 3885, 92,
+ 65456, 64608, 0, 74801, 70855, 2074, 113742, 78283, 0, 12453, 70847,
+ 983826, 74241, 126568, 6791, 12457, 78268, 0, 66278, 0, 78279, 0, 0,
+ 92358, 66637, 7995, 8759, 43421, 78277, 12449, 128552, 71224, 43868,
+ 8752, 3197, 4720, 10165, 113765, 119249, 113715, 11595, 64893, 118905,
+ 43435, 124964, 125030, 4993, 0, 6168, 10934, 1946, 741, 120650, 5494,
+ 4639, 127559, 1990, 11107, 4498, 74169, 67736, 83273, 127272, 69734,
+ 2960, 73779, 0, 8969, 128117, 43424, 73959, 126464, 2950, 119579, 6210,
+ 65753, 370, 121360, 0, 0, 4953, 195009, 121054, 113708, 0, 69230, 0,
+ 195010, 65688, 74951, 5063, 3517, 2964, 43663, 917762, 6344, 74791,
+ 10566, 10144, 66333, 8252, 729, 66016, 78253, 0, 71317, 64923, 120571,
+ 43669, 9032, 78263, 78264, 0, 41215, 0, 65883, 0, 917774, 74914, 3761, 0,
+ 0, 70068, 120408, 12912, 119012, 3850, 128191, 983256, 128389, 0, 0, 908,
+ 0, 8611, 121384, 0, 74642, 43691, 41197, 0, 8978, 120540, 119135, 41586,
+ 10527, 70426, 917848, 3848, 78739, 74917, 127536, 65241, 5336, 74883,
+ 128786, 663, 0, 10780, 0, 0, 78767, 983259, 127163, 68193, 347, 0,
+ 917544, 78775, 64675, 41582, 78774, 78744, 65579, 12980, 68046, 12143,
+ 69657, 78512, 128493, 11153, 41804, 78523, 0, 78525, 0, 128859, 41584,
+ 10681, 0, 120979, 73938, 73781, 128022, 4800, 66661, 0, 66306, 64715,
+ 66384, 9518, 6609, 10434, 70845, 11319, 1097, 128964, 917564, 41730,
+ 129181, 121501, 73847, 74845, 65172, 41728, 41721, 194780, 194769,
+ 121499, 41203, 127056, 13110, 41726, 194856, 67077, 1000, 69651, 127509,
+ 41140, 1209, 73978, 125059, 73750, 1073, 6321, 77878, 41138, 983968,
+ 68213, 78000, 12167, 1115, 41605, 9794, 119904, 67671, 55248, 12237,
+ 78787, 66314, 6587, 9290, 78782, 78783, 9231, 78781, 2959, 7926, 0,
+ 917601, 128833, 64398, 71124, 119970, 12311, 119181, 78796, 68768, 78794,
+ 78795, 68434, 78793, 66670, 113797, 128579, 12290, 120169, 129093,
+ 119873, 42142, 9968, 8205, 0, 5131, 113694, 9627, 43646, 78542, 78535,
+ 983212, 1944, 1248, 10148, 127755, 119990, 119991, 12701, 78376, 11308,
+ 119995, 983493, 113702, 66836, 65305, 65100, 4031, 42794, 120003, 7075,
+ 8154, 119985, 120007, 41817, 73934, 42275, 120011, 120012, 78526, 120014,
+ 120015, 6041, 120520, 41899, 983288, 8002, 128367, 4364, 73732, 983570,
+ 64332, 120976, 7813, 9064, 119986, 10124, 7526, 8601, 7281, 68246, 7279,
+ 12041, 1418, 10885, 12673, 121152, 121381, 9660, 917929, 13012, 4571,
+ 917588, 0, 118940, 12078, 2970, 129122, 10933, 0, 77870, 121243, 77841,
+ 0, 41599, 70159, 121342, 120885, 12950, 92160, 3486, 983973, 78311, 4239,
+ 128073, 127799, 66511, 68066, 2637, 64629, 8460, 66834, 8476, 983975, 0,
+ 68312, 78489, 65673, 1019, 78495, 4148, 0, 12289, 0, 4316, 0, 13119,
+ 8488, 5412, 66243, 9935, 92777, 73864, 983203, 41734, 8206, 74081, 9163,
+ 3286, 9072, 5867, 13302, 7622, 7120, 41736, 92546, 41731, 0, 7400, 5416,
+ 68663, 118924, 10817, 0, 41539, 127284, 66853, 73963, 41855, 41867,
+ 65564, 11277, 65892, 11536, 10620, 92272, 7115, 66030, 73932, 5498,
+ 63876, 41536, 0, 68204, 92587, 3459, 8997, 194719, 92714, 0, 127782,
+ 92512, 0, 66377, 69781, 0, 124972, 78511, 3161, 295, 71257, 0, 92223,
+ 121328, 78742, 9016, 43454, 63903, 63902, 43501, 68210, 3971, 983959,
+ 70063, 2952, 78765, 11038, 10901, 63900, 63899, 63898, 68095, 667, 12332,
+ 63887, 6086, 41722, 0, 5172, 0, 983280, 4159, 983562, 0, 9815, 63884,
+ 19934, 63882, 41198, 8555, 63878, 63877, 42460, 6050, 42708, 63881,
+ 63872, 120941, 42421, 195035, 41723, 63875, 63874, 11460, 7432, 1913,
+ 41913, 63852, 66869, 128971, 42348, 73892, 6752, 446, 41911, 127901,
+ 63851, 63850, 41910, 128637, 63846, 2972, 12932, 7262, 69968, 63849,
+ 63848, 63847, 113749, 6570, 8302, 7259, 63842, 4178, 10746, 7250, 13214,
+ 10041, 8105, 63892, 127780, 69969, 1105, 4180, 127786, 12094, 9497, 0,
+ 63891, 63890, 63889, 63888, 5538, 9987, 0, 92739, 1678, 13274, 552,
+ 118834, 44010, 10785, 0, 11192, 4557, 74459, 9159, 10171, 13125, 63860,
+ 5540, 63858, 63865, 281, 13242, 63862, 74154, 0, 5536, 65568, 9574, 1388,
+ 71902, 0, 1077, 195000, 65099, 11531, 5834, 0, 0, 917789, 0, 42773,
+ 121331, 0, 0, 119220, 120912, 3663, 127027, 1112, 70335, 8686, 126611,
+ 5334, 65081, 43249, 74778, 127968, 11077, 125017, 6509, 0, 5327, 78776,
+ 19907, 63869, 3478, 7583, 7679, 2903, 0, 3001, 1158, 8745, 43746, 73748,
+ 63866, 78626, 1915, 4846, 67755, 66371, 118984, 42105, 2990, 120128, 805,
+ 69238, 64438, 12070, 8760, 1117, 113750, 12212, 120123, 65174, 42357,
+ 63835, 63834, 983947, 78240, 12225, 63838, 63837, 983853, 70173, 63833,
+ 6042, 66360, 8083, 128166, 983733, 63821, 63820, 63819, 63818, 983904,
+ 5227, 9047, 63822, 74797, 6091, 0, 10691, 560, 5643, 8226, 119578, 63812,
+ 63811, 63810, 63809, 2289, 63815, 63814, 63813, 6047, 1597, 120143, 780,
+ 206, 70126, 4936, 65147, 8168, 63930, 2076, 1093, 9882, 63934, 2082,
+ 63932, 75050, 63929, 3546, 1605, 77934, 9806, 43472, 77933, 8400, 11343,
+ 2086, 0, 63926, 2984, 5968, 9287, 0, 4618, 42209, 11137, 13169, 5290,
+ 2089, 1695, 10743, 1088, 63825, 7268, 1084, 1085, 63829, 1083, 10131,
+ 7283, 0, 63970, 121165, 1092, 4754, 7273, 5252, 44016, 43627, 127921,
+ 128920, 7408, 11809, 83220, 121181, 0, 2965, 7258, 8808, 66572, 1089,
+ 4187, 63937, 42119, 42120, 11106, 940, 5787, 10099, 63938, 0, 74494,
+ 12463, 2994, 125136, 118827, 68522, 9664, 70834, 77940, 67892, 77938,
+ 74343, 67370, 0, 660, 10127, 666, 9022, 5532, 43667, 5533, 12580, 78507,
+ 6118, 222, 979, 3884, 983394, 74151, 83227, 6502, 983855, 11085, 121261,
+ 63951, 12465, 917862, 0, 128782, 63946, 1707, 63924, 12461, 63950, 63897,
+ 63948, 63947, 63945, 6038, 63943, 63942, 64685, 63895, 65838, 2276, 7776,
+ 94076, 121086, 92464, 120444, 69730, 801, 43165, 1690, 63919, 63918,
+ 63917, 13277, 43659, 12951, 120638, 9906, 2054, 2334, 78515, 63916, 5483,
+ 63914, 69737, 63911, 5484, 63909, 63908, 2539, 120102, 43980, 5485, 0,
+ 42697, 9061, 5534, 10672, 4502, 68057, 253, 0, 68208, 120439, 9203,
+ 74231, 0, 11530, 68634, 68668, 121242, 11127, 0, 10474, 43426, 13257,
+ 42354, 128099, 983698, 70044, 195065, 0, 8413, 66841, 0, 5693, 7272, 0,
+ 13209, 64470, 65831, 74350, 195063, 0, 0, 0, 126639, 120097, 0, 94078,
+ 66840, 127165, 66608, 3111, 41863, 8804, 42913, 78347, 7270, 0, 66606,
+ 6628, 1076, 7433, 1436, 73844, 55226, 128353, 63982, 7393, 12807, 43413,
+ 63906, 1598, 63904, 71187, 70393, 41729, 4423, 1307, 113692, 10515,
+ 41589, 128698, 128918, 6218, 92917, 1430, 0, 126513, 120606, 78754, 5413,
+ 7619, 3255, 3493, 74032, 11549, 10735, 41743, 73937, 6801, 983633, 4518,
+ 10990, 65073, 5167, 4481, 3771, 67093, 2710, 983593, 66277, 41724, 67716,
+ 43073, 41690, 12479, 983635, 8380, 121071, 71852, 70046, 1628, 121229,
+ 128817, 129067, 65262, 6333, 10783, 11172, 121473, 63855, 70840, 113679,
+ 0, 5339, 74323, 120946, 13004, 66843, 4457, 0, 127756, 194818, 127116,
+ 5684, 8678, 10914, 43632, 5689, 65807, 70814, 68464, 12633, 12870, 69705,
+ 65183, 5688, 11926, 6033, 6310, 5686, 119076, 74251, 0, 120647, 128930,
+ 50, 10558, 9871, 42612, 43655, 74403, 983818, 74284, 66468, 66905, 13259,
+ 4448, 119150, 121406, 83349, 70043, 1321, 0, 10640, 11539, 1151, 121186,
+ 917607, 124958, 127079, 71106, 127852, 0, 0, 983075, 12501, 64604,
+ 128657, 11527, 118870, 8812, 983706, 11538, 8673, 12650, 11020, 0, 66467,
+ 2105, 8087, 78163, 69632, 9894, 127137, 127856, 69995, 4636, 55262,
+ 78513, 4515, 2382, 0, 127055, 983695, 113780, 0, 118968, 12277, 121239,
+ 11995, 92553, 121006, 12158, 70170, 8741, 10197, 68780, 92426, 121285,
+ 6531, 83051, 127846, 473, 43415, 92936, 983650, 1873, 1087, 124966, 0,
+ 74280, 78527, 66439, 43218, 983123, 194716, 7237, 12504, 71113, 126559,
+ 128748, 120887, 9489, 0, 70843, 4384, 74220, 63845, 2058, 69741, 13295,
+ 43191, 128030, 128571, 1154, 3857, 1205, 0, 0, 6055, 12958, 120706,
+ 74168, 128388, 70846, 4421, 10592, 0, 495, 66400, 41712, 7983, 70833,
+ 93997, 983332, 6347, 78715, 7654, 41710, 4196, 0, 437, 41709, 73772,
+ 70832, 0, 9465, 13290, 119180, 4997, 64306, 121309, 0, 4999, 194642,
+ 67401, 126582, 4711, 120769, 120602, 2739, 0, 8044, 74313, 194643, 41789,
+ 128142, 10809, 66279, 0, 0, 1779, 6600, 6601, 41543, 5325, 642, 64187,
+ 13058, 120449, 12875, 983804, 92186, 13229, 71845, 10575, 43399, 194577,
+ 0, 41791, 1104, 0, 983725, 10655, 983334, 983561, 120164, 0, 1082,
+ 121024, 8428, 6569, 0, 0, 78534, 69849, 6783, 194671, 12993, 8049, 41548,
+ 44021, 6458, 64728, 128882, 4761, 63828, 4766, 64623, 1273, 43407,
+ 120677, 118876, 195045, 6912, 1313, 6322, 10483, 128627, 41545, 126465,
+ 92449, 0, 11216, 121307, 0, 78624, 3484, 74337, 0, 0, 8503, 5122, 41527,
+ 71910, 66320, 70161, 74907, 0, 0, 41537, 66453, 8303, 8282, 11817, 73857,
+ 10003, 73859, 65904, 7363, 1686, 0, 70115, 11467, 3664, 65921, 64299,
+ 124939, 128462, 128001, 4324, 126, 42246, 75030, 69984, 67725, 65926,
+ 7744, 68859, 74277, 66283, 78052, 43817, 6966, 43822, 8136, 0, 65600,
+ 1633, 0, 126614, 4762, 1103, 70827, 70157, 4765, 983494, 13078, 0, 4760,
+ 63827, 2050, 10871, 43199, 1102, 194652, 42236, 128867, 127072, 11546,
+ 74794, 337, 121196, 42591, 8627, 12279, 1111, 0, 75047, 4707, 68206,
+ 10143, 7883, 121444, 7880, 4522, 8645, 5704, 13010, 69796, 8304, 92982,
+ 194688, 119575, 2293, 70195, 66654, 129077, 92676, 0, 13008, 121194,
+ 4385, 128736, 13011, 125004, 92569, 119161, 13009, 160, 2677, 70388,
+ 983282, 41793, 65763, 74221, 70790, 41792, 42770, 94054, 65762, 118829,
+ 43821, 5709, 128296, 71076, 43816, 983087, 983896, 1079, 3867, 5708, 0,
+ 0, 43797, 5706, 64768, 5705, 8791, 4005, 121091, 10237, 10991, 128816,
+ 43459, 9173, 917581, 917580, 13170, 12540, 129178, 42605, 120765, 126617,
+ 68647, 917572, 10058, 68058, 74867, 67730, 127078, 3339, 11448, 1106,
+ 917591, 917540, 917593, 3340, 74017, 917586, 120994, 129141, 120541,
+ 10605, 1309, 63966, 120743, 1754, 92226, 13246, 864, 983171, 118926,
+ 8972, 119918, 7849, 120092, 83130, 13240, 195068, 5192, 4338, 67982,
+ 10948, 66825, 13199, 92575, 1236, 13208, 13261, 13189, 13188, 93993,
+ 71847, 7440, 0, 120153, 9553, 1590, 63777, 63776, 13178, 63782, 63781,
+ 63780, 63779, 1583, 119923, 13260, 4550, 120598, 64205, 129107, 71071,
+ 41522, 41523, 68523, 983772, 118923, 11354, 94071, 0, 42795, 0, 119195,
11394, 194646, 13236, 13272, 13194, 1334, 69926, 4479, 1178, 65586,
- 120663, 66681, 119193, 4601, 0, 0, 983765, 0, 0, 194658, 0, 6809, 63786,
- 6031, 0, 63791, 63790, 1145, 63788, 7910, 63785, 43153, 754, 10192,
- 13105, 8183, 120741, 2037, 0, 0, 10747, 125, 0, 64890, 0, 983131, 0,
- 41719, 63758, 3523, 1074, 13258, 9536, 74077, 0, 4427, 74242, 63757,
- 43145, 12217, 63754, 41532, 1349, 63750, 63749, 0, 0, 0, 63753, 63802,
- 41084, 120622, 68133, 41930, 63805, 63804, 43632, 63801, 41082, 8140,
- 63798, 6260, 0, 0, 94074, 63793, 11988, 3898, 128241, 10201, 12238,
- 63795, 42194, 10367, 12521, 10431, 42114, 41932, 1068, 0, 12523, 12945,
- 983329, 42203, 7950, 10804, 63771, 42787, 4386, 12224, 6973, 2793, 12475,
- 0, 0, 63769, 9530, 983119, 12232, 13135, 8596, 5681, 63762, 4595, 63760,
- 792, 0, 64803, 0, 8742, 0, 11053, 128796, 63744, 128107, 0, 7588, 63748,
- 1693, 63746, 43204, 5055, 68426, 917853, 1090, 120679, 128356, 11665,
- 74133, 4558, 65685, 9523, 0, 0, 78681, 11513, 0, 6157, 63775, 63774,
- 63773, 13191, 12170, 3500, 3139, 0, 3170, 12485, 0, 10872, 78271, 13006,
- 64433, 0, 0, 941, 0, 0, 0, 65541, 11063, 0, 8228, 0, 42065, 0, 0, 94039,
- 0, 92455, 7386, 0, 64444, 0, 119863, 43603, 94075, 65397, 288, 0, 0, 0,
- 10025, 69915, 2918, 0, 65300, 119871, 9883, 64726, 2790, 65395, 3793, 0,
- 127829, 65393, 0, 74138, 0, 0, 0, 74139, 92712, 65394, 11548, 5270, 0,
- 65396, 0, 65813, 13256, 1282, 120771, 0, 0, 10888, 983604, 65242, 0,
- 3330, 0, 0, 983974, 0, 0, 74259, 3304, 42753, 0, 0, 0, 1627, 0, 0, 0,
- 5371, 13116, 0, 1826, 118794, 0, 43094, 70023, 43650, 94037, 0, 9035, 0,
- 0, 128005, 0, 92207, 68125, 0, 164, 0, 94067, 94000, 6958, 0, 43116, 0,
- 70019, 13245, 0, 0, 127376, 0, 70031, 127756, 12666, 13175, 13207,
- 120414, 66014, 120428, 7447, 5929, 0, 65509, 0, 7449, 11306, 0, 73920,
- 3180, 0, 63808, 9054, 971, 13062, 0, 0, 65195, 10164, 92252, 74428, 0,
- 78146, 92611, 0, 0, 0, 10045, 12882, 13275, 128161, 11057, 0, 13276, 0,
- 41525, 78150, 7271, 11444, 0, 0, 0, 12229, 41523, 0, 43411, 73751, 0,
- 64813, 0, 0, 10476, 3858, 0, 3932, 64958, 0, 0, 73989, 68192, 0, 69847,
- 369, 0, 41784, 0, 64163, 0, 0, 0, 65474, 4796, 12292, 126595, 65479, 0,
- 41781, 10486, 41480, 43002, 9899, 0, 0, 404, 12821, 3741, 0, 5788, 8092,
- 68212, 41222, 1831, 66020, 3982, 0, 4388, 0, 746, 120784, 0, 0, 12018,
- 65294, 0, 0, 0, 0, 4422, 4708, 3799, 74292, 119357, 0, 74430, 0, 11700,
- 4374, 0, 128179, 1364, 0, 8038, 0, 917597, 12868, 69814, 0, 6735, 73979,
- 13174, 73968, 13225, 0, 69808, 65835, 0, 2365, 7841, 0, 42855, 118856,
- 42866, 0, 0, 0, 66438, 41785, 12617, 64172, 13173, 4372, 119354, 0,
- 983568, 0, 0, 92402, 128062, 12965, 384, 64512, 10404, 10340, 119352,
- 1556, 5274, 13210, 120125, 10017, 9733, 41787, 983243, 126994, 41373,
- 78039, 12303, 0, 13232, 13233, 349, 4863, 41371, 11656, 0, 120703,
- 119883, 12861, 4398, 8543, 65618, 128018, 1096, 0, 0, 42688, 12441,
- 12355, 119348, 119347, 4318, 10452, 0, 8032, 13243, 13237, 12719, 126646,
- 119101, 0, 64884, 119872, 119345, 8597, 0, 0, 9864, 0, 120785, 119874,
- 94107, 13195, 41452, 64961, 7722, 0, 10459, 119878, 0, 119879, 66590,
- 128123, 41533, 66337, 0, 92184, 0, 4965, 43445, 917536, 73849, 0, 43638,
- 78537, 128287, 6261, 119342, 43147, 66570, 1957, 10420, 982, 2756, 13292,
- 13206, 128828, 0, 2925, 73809, 13056, 127559, 13212, 43238, 0, 13190,
- 13187, 92541, 13198, 118793, 0, 5242, 119179, 64476, 1694, 8216, 71369,
+ 68311, 66681, 119193, 4601, 0, 127885, 983765, 66828, 128972, 127839,
+ 74580, 6809, 63786, 6031, 67402, 63791, 63790, 1145, 63788, 7910, 63785,
+ 43153, 754, 10192, 13105, 8183, 120741, 2037, 0, 64710, 10747, 125,
+ 120803, 64890, 983064, 127376, 0, 41719, 63758, 3523, 1074, 13258, 9536,
+ 71056, 0, 4427, 74242, 63757, 43145, 12217, 63754, 41532, 1349, 63750,
+ 63749, 129025, 0, 127928, 63753, 63802, 41084, 120622, 68133, 41930,
+ 63805, 63804, 11140, 63801, 41082, 8140, 63798, 6260, 0, 128391, 94074,
+ 63793, 11988, 3898, 92246, 10201, 12238, 63795, 42194, 10367, 12521,
+ 10431, 42114, 41932, 1068, 0, 12523, 12945, 983331, 42203, 7950, 3124,
+ 63771, 42787, 4386, 11148, 6973, 2793, 12475, 129180, 75056, 63769, 9530,
+ 121248, 12232, 13135, 8596, 5681, 63762, 4595, 63760, 792, 113674, 64803,
+ 0, 8742, 195029, 11053, 128796, 63744, 128107, 128942, 7588, 63748, 1693,
+ 63746, 43204, 5055, 68426, 42063, 1090, 68803, 120778, 11665, 74133,
+ 4558, 65685, 9523, 983453, 63857, 71216, 11513, 0, 6157, 63775, 63774,
+ 63773, 13191, 12170, 3500, 3139, 68071, 3170, 12485, 43891, 10872, 43892,
+ 13006, 43933, 120074, 0, 941, 0, 129079, 120967, 65541, 11063, 0, 8228,
+ 0, 42065, 128368, 43889, 94039, 129299, 92455, 7386, 0, 64444, 70295,
+ 119863, 43603, 94075, 65397, 288, 83409, 0, 0, 10025, 69915, 2918, 66820,
+ 65300, 119871, 9883, 64726, 2790, 65395, 3793, 983620, 127829, 65393,
+ 120592, 74138, 83505, 92751, 75019, 74139, 78777, 65394, 11548, 5270,
+ 983238, 65396, 74998, 65813, 13256, 1282, 120771, 75012, 0, 10888,
+ 120934, 65242, 0, 3330, 0, 0, 68340, 0, 0, 71202, 3304, 42753, 92588,
+ 70298, 74643, 1627, 0, 127765, 194735, 5371, 13116, 0, 1826, 118794, 0,
+ 43094, 70023, 43650, 94037, 68317, 9035, 11141, 917977, 128005, 0, 92207,
+ 68125, 74898, 164, 68309, 94067, 94000, 6958, 0, 43116, 67719, 70019,
+ 13245, 0, 68808, 66818, 0, 70031, 11099, 12666, 13175, 13207, 120414,
+ 66014, 120428, 7447, 5929, 0, 65509, 129192, 7449, 11306, 0, 73920, 3180,
+ 125102, 63808, 9054, 971, 13062, 71090, 0, 65195, 10164, 92252, 74428,
+ 983321, 78146, 92611, 0, 70204, 0, 10045, 12882, 13275, 2303, 11057,
+ 917976, 13276, 125133, 41525, 78150, 7271, 11444, 126479, 127904, 121203,
+ 12229, 11680, 92956, 43411, 73751, 0, 64813, 195089, 0, 10476, 3858,
+ 64175, 3932, 64958, 120432, 983678, 73989, 68192, 0, 69847, 369, 74908,
+ 41784, 119175, 64163, 77997, 0, 92645, 65474, 4796, 12292, 126595, 65479,
+ 128631, 41781, 10486, 41480, 43002, 9899, 92608, 0, 404, 12821, 3741, 0,
+ 5788, 8092, 68212, 41222, 1831, 66020, 3982, 0, 4388, 194913, 746,
+ 118826, 74783, 0, 12018, 65294, 127545, 194925, 68835, 983488, 4422,
+ 4708, 3799, 74292, 119357, 121146, 74430, 0, 11700, 4374, 120377, 121151,
+ 1364, 0, 8038, 120883, 917597, 12868, 69814, 70425, 6735, 73979, 13174,
+ 73968, 13225, 194902, 69808, 65835, 0, 2365, 7841, 71476, 42855, 118856,
+ 42866, 0, 0, 127986, 66438, 41785, 12617, 64172, 13173, 4372, 119354,
+ 983920, 983568, 128871, 127821, 67685, 128062, 12965, 384, 64512, 10404,
+ 10340, 119352, 1556, 5274, 13210, 120125, 10017, 9733, 41787, 983245,
+ 121149, 41373, 68486, 12303, 128476, 13232, 13233, 349, 4863, 41371,
+ 11656, 0, 120703, 119883, 12861, 4398, 8543, 65618, 92737, 1096, 43852,
+ 121433, 42688, 12441, 12355, 119348, 119347, 4318, 10452, 92902, 8032,
+ 13243, 13237, 12719, 126646, 119101, 121156, 64884, 92909, 119345, 8597,
+ 71100, 129062, 9864, 0, 120785, 119874, 94107, 13195, 41452, 64961, 7722,
+ 0, 10459, 119878, 124949, 119879, 66590, 128123, 41533, 66337, 128663,
+ 92184, 0, 4965, 43445, 917536, 67856, 0, 43638, 78536, 121187, 6261,
+ 119342, 43147, 66570, 1957, 10420, 982, 2756, 13292, 13206, 125064,
+ 917795, 2925, 73809, 13056, 92914, 13212, 43238, 121396, 13190, 13187,
+ 92541, 13198, 118793, 121089, 5242, 119179, 64476, 1694, 8216, 71369,
6770, 43331, 0, 65620, 983728, 43544, 126466, 0, 41444, 65621, 69955,
9197, 5246, 119106, 13185, 9709, 120323, 120322, 12314, 65616, 5238,
- 119333, 0, 119337, 5236, 40979, 0, 74201, 8286, 128537, 3936, 119331,
- 11699, 41347, 127249, 13235, 8842, 41248, 0, 4379, 13239, 12692, 7969,
- 127266, 7219, 127250, 128251, 120509, 0, 66224, 734, 2979, 120303, 65619,
- 9872, 957, 64921, 1846, 66631, 41477, 119256, 120310, 74511, 41770, 1670,
- 6442, 120317, 42446, 5379, 120318, 41163, 74832, 120315, 120314, 11506,
- 0, 42841, 13267, 0, 0, 41775, 0, 7130, 41773, 0, 10663, 0, 0, 0, 6151,
- 12110, 42673, 65572, 65293, 65250, 13265, 13264, 64518, 0, 6100, 0,
- 92647, 5808, 65922, 0, 12967, 66041, 5612, 4583, 0, 0, 68097, 64575,
- 126637, 11965, 0, 68358, 0, 69789, 0, 92260, 68102, 9698, 7814, 74476,
- 119651, 128514, 0, 41921, 118858, 9756, 6985, 119258, 78490, 74219, 0, 0,
- 118997, 8012, 5674, 12353, 0, 12361, 5677, 5588, 0, 41925, 128124, 41920,
- 5673, 120534, 5676, 41923, 12694, 118978, 5672, 1294, 0, 78059, 0, 42511,
- 1727, 120725, 42436, 0, 0, 0, 74222, 8718, 3550, 736, 10268, 4505, 10316,
- 74090, 5826, 55232, 5813, 0, 120712, 5841, 5837, 55234, 0, 3105, 12829,
- 5838, 5796, 0, 119592, 5793, 0, 5866, 5797, 41011, 5865, 120091, 7956,
- 598, 0, 64649, 5806, 42398, 0, 9037, 5671, 120041, 983255, 0, 0, 128855,
- 0, 847, 128242, 9529, 0, 66657, 6980, 78483, 120035, 78484, 983491, 0,
- 120033, 78486, 0, 0, 120039, 42683, 0, 983055, 7114, 0, 0, 43190, 65463,
- 1554, 0, 42611, 42563, 0, 5651, 2929, 6792, 43201, 0, 19963, 5698, 0, 0,
- 0, 0, 5644, 10292, 65546, 69727, 68141, 8372, 0, 65116, 0, 120022, 10175,
- 10388, 42799, 94100, 41013, 10568, 0, 983618, 2869, 0, 41015, 194692,
- 2785, 4366, 0, 10954, 41802, 0, 42608, 78469, 9884, 4759, 0, 0, 10266,
- 41359, 1170, 43365, 69810, 73908, 1609, 902, 0, 63936, 128875, 11661,
- 8122, 5818, 0, 0, 3861, 9540, 11028, 2554, 5158, 5714, 2213, 0, 0, 807,
- 43079, 0, 78475, 976, 5511, 64553, 0, 42155, 0, 41356, 74110, 118801,
- 126614, 0, 8676, 983291, 0, 5582, 451, 63941, 5798, 9349, 42018, 127858,
- 0, 0, 43609, 5906, 120553, 1440, 0, 128853, 120016, 74283, 11005, 0,
- 66656, 66044, 0, 194698, 0, 0, 43393, 10094, 0, 11529, 10857, 120643,
- 66436, 6546, 93, 8102, 0, 68405, 0, 0, 8171, 0, 119097, 127064, 917543,
- 383, 7154, 41656, 92634, 94040, 0, 5187, 71296, 127277, 11286, 68620,
- 64217, 0, 5232, 0, 41009, 0, 41005, 0, 0, 983827, 8292, 195074, 4980,
- 8860, 73947, 10028, 65291, 7076, 13182, 194705, 0, 0, 10631, 66031, 7972,
- 0, 78785, 0, 7900, 0, 11309, 3806, 4198, 42725, 0, 67656, 9995, 0, 92552,
- 0, 12931, 0, 42684, 74285, 2088, 64213, 64366, 65156, 8814, 42238, 74771,
- 0, 0, 12836, 0, 0, 74342, 8593, 0, 0, 68445, 13255, 0, 0, 7464, 0, 65865,
- 0, 194650, 127144, 0, 9342, 120464, 0, 64516, 0, 78792, 10129, 41007,
- 74375, 0, 40995, 12209, 41012, 119136, 0, 0, 69724, 40992, 92264, 127153,
- 68653, 43558, 5522, 0, 61, 0, 74105, 3633, 983900, 65162, 41234, 12089,
- 78281, 9771, 983905, 13251, 128701, 0, 6262, 2784, 42743, 0, 8126, 66483,
- 0, 0, 441, 42621, 0, 0, 41002, 40999, 119623, 43266, 7108, 194779, 10890,
- 74481, 65834, 8324, 119103, 64417, 74817, 127465, 64737, 0, 983659, 8930,
- 66678, 74249, 1193, 10056, 1800, 13253, 13252, 7829, 0, 0, 7743, 0, 0,
- 77904, 92640, 77905, 9034, 6039, 0, 10075, 0, 41018, 65683, 10338, 66469,
- 0, 0, 0, 42815, 0, 41966, 0, 127471, 0, 11792, 43064, 41025, 911, 7539,
- 0, 0, 120339, 65159, 64390, 0, 0, 5520, 11662, 0, 65330, 42812, 0, 0,
- 12326, 983856, 0, 42808, 128337, 9348, 64901, 983861, 0, 0, 0, 0, 0,
- 917584, 43702, 983576, 5857, 65342, 92727, 119120, 120079, 8644, 0, 0, 0,
- 74296, 41909, 0, 120332, 2791, 69663, 1891, 69824, 0, 41907, 66647,
- 118939, 8761, 12942, 5748, 0, 10773, 0, 0, 8796, 78149, 6412, 2061, 8520,
- 13146, 127185, 63931, 0, 65902, 2882, 0, 0, 12843, 4520, 120345, 92459,
- 0, 983660, 0, 73860, 0, 0, 64345, 0, 9201, 128314, 194940, 0, 0, 43679,
- 917585, 65117, 92270, 0, 10427, 0, 3844, 120675, 9755, 1110, 6612, 12222,
- 0, 128789, 0, 0, 783, 194935, 0, 0, 983064, 194720, 65056, 3620, 41180,
- 68378, 4556, 0, 0, 194933, 74250, 0, 67657, 10510, 4382, 66482, 0, 0,
- 127527, 9177, 8902, 93958, 9839, 0, 12891, 983755, 983636, 63999, 2016,
- 41917, 9788, 63928, 0, 1862, 65800, 9155, 66623, 9786, 65082, 41919,
- 8579, 41914, 7981, 0, 66017, 4508, 64883, 92456, 92522, 127814, 0, 64592,
- 74276, 120080, 6784, 78788, 68181, 0, 0, 0, 127534, 12147, 9024, 66378,
- 66472, 983929, 64289, 65289, 78151, 66658, 194929, 64509, 78152, 0,
- 126505, 11051, 983296, 0, 11355, 65885, 0, 128310, 41214, 0, 12299, 0,
- 7500, 4506, 7773, 0, 0, 9963, 68649, 126609, 4040, 120570, 6167, 0,
- 63922, 6594, 983740, 0, 0, 3624, 43036, 0, 6387, 63990, 19947, 63988,
- 41955, 0, 63993, 10440, 9611, 65605, 6803, 0, 7738, 63986, 11446, 63984,
- 92641, 3435, 78164, 43814, 43810, 7029, 64258, 41292, 118898, 12748,
- 42742, 9517, 11518, 0, 78790, 0, 67993, 63956, 42458, 63954, 63953,
- 63960, 9591, 4516, 10217, 68370, 11469, 69697, 42306, 2723, 118947, 0, 0,
- 0, 0, 0, 11397, 2880, 0, 0, 2872, 0, 0, 3498, 4378, 917539, 4270, 0,
- 65551, 68205, 6633, 43387, 0, 5230, 0, 0, 0, 0, 0, 8161, 393, 12013, 0,
- 0, 126479, 415, 63964, 63963, 42345, 92310, 5183, 1877, 42498, 0, 2927,
- 0, 63961, 4472, 0, 0, 78159, 69699, 917936, 42340, 4756, 128078, 7081,
- 10730, 7691, 10331, 63830, 119625, 42922, 42103, 8628, 9813, 0, 42453,
- 1604, 9565, 10539, 69701, 65764, 41415, 65767, 0, 8457, 42301, 11372,
- 64873, 11992, 0, 0, 63980, 11801, 3622, 983124, 64336, 12017, 10463,
- 63981, 4967, 64189, 1966, 43628, 0, 983292, 0, 0, 63971, 4347, 4416,
- 42098, 11009, 10694, 63973, 402, 0, 13147, 128692, 42100, 64646, 13228,
- 0, 41875, 3515, 74252, 11805, 0, 11302, 6259, 43395, 0, 0, 194670, 0,
- 92351, 0, 74425, 11299, 1561, 0, 92359, 64942, 983559, 194733, 983686,
- 194732, 0, 74301, 0, 11280, 0, 69784, 74060, 0, 0, 119664, 5145, 12486,
- 65018, 66516, 5409, 127379, 194669, 7402, 5399, 9685, 74089, 7952, 5401,
- 0, 66616, 68421, 983919, 0, 5405, 127875, 64866, 0, 119583, 128345,
- 78784, 74248, 11330, 194723, 64690, 3254, 0, 0, 128207, 42390, 43678,
- 194725, 983909, 65077, 0, 6388, 3355, 9508, 9867, 5723, 11520, 5611, 0,
- 3377, 0, 0, 0, 0, 78228, 0, 983762, 42691, 917886, 127198, 74767, 0,
- 127075, 1379, 246, 0, 983761, 3788, 983106, 11041, 92549, 66304, 0, 0,
- 8917, 42403, 301, 0, 0, 0, 0, 0, 983697, 10656, 0, 65214, 119242, 42567,
- 92217, 13163, 983204, 120831, 74597, 3182, 0, 0, 0, 65034, 65889, 42169,
- 4755, 74244, 194621, 11443, 0, 66319, 74598, 608, 600, 0, 1219, 3934,
- 64206, 11483, 74510, 0, 74485, 42442, 65470, 983907, 64202, 13160, 7759,
- 42482, 485, 128006, 0, 9828, 0, 0, 42280, 0, 9351, 7778, 64379, 7496,
- 42431, 6916, 1208, 0, 119631, 11002, 42470, 0, 118946, 0, 0, 74041, 0,
- 70045, 43539, 5411, 42196, 0, 0, 0, 9150, 0, 42393, 13086, 1310, 194687,
- 9337, 12052, 10643, 55271, 983179, 12166, 2546, 194683, 213, 118852,
- 65611, 0, 0, 194756, 74310, 6554, 0, 11914, 5452, 0, 0, 0, 0, 0, 194681,
- 92560, 2713, 0, 9650, 43330, 0, 194675, 1406, 0, 0, 92659, 0, 68223,
- 4143, 194677, 0, 65748, 4141, 9682, 65287, 1508, 127013, 8779, 10569,
- 8725, 13299, 66638, 65750, 42263, 4145, 6380, 65751, 66613, 43994, 65738,
- 55250, 9185, 9550, 0, 43403, 0, 0, 0, 65736, 41951, 64816, 65756, 983205,
- 12955, 10596, 2888, 194645, 0, 0, 9657, 9019, 194766, 0, 2878, 5390, 0,
- 194961, 0, 68679, 43552, 7501, 6328, 0, 10429, 10365, 0, 0, 41946, 7503,
- 5235, 803, 68381, 0, 0, 8986, 126542, 10632, 11934, 11452, 1332, 0, 0,
- 126647, 0, 118887, 1791, 5191, 9288, 64822, 2892, 0, 43394, 555, 0, 0,
- 66646, 0, 119002, 13151, 74512, 7289, 74055, 64161, 8854, 64162, 5858,
- 41927, 10582, 0, 1784, 1361, 195047, 0, 7905, 0, 64868, 128813, 13158,
- 92166, 7211, 0, 9371, 73973, 917553, 6828, 1625, 92302, 0, 1342, 68440,
- 64171, 126704, 10903, 983494, 0, 0, 0, 0, 4482, 41606, 0, 128569, 983112,
- 0, 64381, 0, 0, 195090, 42245, 126467, 41972, 0, 444, 0, 9127, 66687,
- 66619, 126489, 78025, 0, 11349, 40991, 917570, 0, 119599, 120830, 0,
- 1197, 128282, 1149, 194970, 0, 0, 40990, 43765, 0, 3492, 0, 127942, 0, 0,
- 0, 12838, 983978, 19948, 0, 3099, 0, 0, 41087, 0, 0, 0, 119059, 12036,
- 41309, 0, 0, 8152, 0, 41550, 12227, 983613, 0, 12828, 127511, 0, 0,
- 120708, 0, 0, 10386, 119574, 0, 0, 92680, 983789, 68154, 0, 1743, 0, 0,
- 92239, 65186, 917571, 0, 9606, 0, 0, 64439, 0, 0, 92686, 0, 0, 194967, 0,
- 0, 3395, 9362, 10878, 0, 0, 78362, 64830, 0, 126557, 41091, 3426, 1344,
- 8870, 0, 0, 4735, 127017, 6119, 12822, 42699, 0, 983824, 74818, 1423, 0,
- 42637, 41080, 0, 12039, 10559, 0, 118892, 0, 9472, 0, 11929, 0, 7170,
- 9596, 6130, 128826, 43629, 11579, 78713, 0, 194740, 128691, 92185, 66699,
- 64440, 1004, 92584, 194737, 43234, 66008, 12627, 0, 68414, 0, 43619,
- 43303, 11300, 43304, 9686, 5890, 11776, 7558, 127158, 65627, 0, 10718,
- 13154, 3461, 9139, 0, 0, 0, 0, 65365, 73877, 65628, 78019, 120319, 0,
- 41708, 12860, 2641, 12069, 10838, 5403, 10352, 70085, 10061, 43237, 0,
- 5140, 209, 128847, 41704, 41056, 43078, 128125, 118809, 0, 10899, 65469,
- 92362, 0, 0, 2410, 993, 0, 120589, 120689, 78693, 0, 0, 7232, 0, 119253,
- 0, 7110, 74462, 2066, 10489, 42166, 43463, 10659, 3600, 0, 4224, 1336,
- 41518, 0, 0, 0, 0, 41139, 64820, 92538, 12966, 41134, 0, 0, 0, 0, 272,
- 4263, 8793, 0, 0, 41502, 0, 983, 12549, 0, 0, 1190, 4109, 1335, 841,
- 5888, 41358, 64863, 9544, 43481, 0, 194806, 70027, 2099, 5120, 2409,
- 7799, 0, 74424, 0, 0, 4731, 0, 66629, 0, 0, 1255, 4149, 9247, 0, 9913, 0,
- 0, 64914, 917787, 65101, 0, 11694, 92475, 11690, 5835, 127164, 66625,
- 10842, 41354, 42123, 43097, 11688, 66634, 1094, 194, 64692, 0, 8180, 0,
- 0, 9972, 73865, 4519, 6114, 10898, 43072, 0, 0, 93960, 983322, 126581,
- 10695, 0, 7540, 0, 881, 7857, 6067, 65164, 0, 0, 0, 13311, 68403, 41857,
- 64321, 8359, 0, 12689, 0, 194594, 0, 983312, 983881, 68183, 0, 983314,
- 1287, 5436, 0, 983317, 74142, 92328, 74152, 119078, 6051, 10497, 69668,
- 8985, 12109, 983323, 0, 127242, 0, 0, 3652, 10537, 0, 1276, 120440, 6549,
- 279, 73745, 0, 0, 0, 1489, 0, 0, 0, 3899, 1007, 42124, 983557, 42122,
- 92337, 92367, 0, 11985, 1345, 78600, 0, 0, 8956, 43083, 94057, 42138,
- 78610, 0, 12151, 78608, 78604, 78605, 6285, 78603, 78612, 78613, 65942,
- 492, 8685, 0, 983759, 0, 78622, 43712, 2582, 11470, 64538, 7444, 78615,
- 78616, 2297, 0, 73837, 119823, 2527, 119824, 197, 2799, 92594, 41944,
- 120276, 9933, 0, 66515, 767, 5524, 7028, 0, 0, 119827, 119817, 119828,
- 78633, 10896, 0, 1799, 120497, 6971, 74336, 128342, 0, 65340, 118979,
- 41551, 2434, 94018, 0, 120579, 0, 4631, 0, 0, 6407, 0, 6338, 43214, 0,
- 7570, 0, 3192, 0, 8414, 0, 93983, 0, 0, 0, 9164, 66612, 93959, 3171,
- 6623, 4961, 68396, 886, 55216, 8654, 78832, 9993, 74390, 64603, 70066,
- 69241, 9599, 78629, 43084, 78627, 78628, 78625, 2399, 69693, 8994, 10944,
- 41208, 983713, 41168, 8178, 0, 3367, 92334, 42510, 78641, 78636, 6804,
- 78634, 1947, 0, 0, 92681, 42759, 11068, 1705, 9331, 0, 74798, 9181,
- 65359, 0, 8017, 119831, 65096, 66720, 0, 43475, 0, 4909, 12126, 128673,
- 120696, 4904, 983333, 69650, 1365, 9253, 42757, 43436, 7462, 0, 0, 0, 0,
- 119587, 64415, 0, 0, 5398, 0, 127386, 93953, 0, 0, 119015, 0, 0, 9476, 0,
- 983777, 12763, 126603, 3629, 0, 13005, 0, 3628, 0, 0, 92502, 3469, 42107,
- 42116, 917578, 64809, 2928, 4905, 9853, 851, 9040, 0, 64665, 43086, 9114,
- 0, 42583, 9315, 4822, 4906, 3852, 2847, 119821, 3236, 11317, 1251, 7777,
- 41852, 11410, 10964, 0, 43222, 12646, 120269, 10259, 9865, 65821, 0,
- 6018, 92290, 0, 12276, 0, 68372, 0, 92259, 119244, 0, 983230, 10467, 0,
- 2443, 10918, 78217, 119825, 1001, 9241, 1927, 0, 0, 73987, 127885, 0, 0,
- 118828, 120271, 65678, 12867, 0, 8260, 77945, 7519, 11505, 12274, 8904,
- 518, 65857, 0, 128674, 13204, 4387, 857, 0, 65369, 0, 92336, 43125,
- 120592, 0, 0, 0, 0, 5136, 1968, 983041, 126627, 1337, 64967, 1629, 0,
- 796, 66506, 0, 74123, 12877, 120649, 42314, 43388, 0, 74403, 6120, 478,
- 65151, 68128, 128147, 43082, 6016, 0, 42284, 128507, 4276, 1206, 3619,
- 41638, 69691, 3843, 12011, 8853, 3361, 0, 490, 10715, 7578, 68384, 0,
- 65350, 10530, 12348, 8653, 74314, 42435, 6154, 9551, 65354, 78522, 784,
- 42397, 334, 0, 42416, 65356, 65273, 77987, 69666, 4442, 10364, 0, 778,
- 41626, 42455, 7989, 74063, 3227, 69907, 127275, 73983, 2915, 11502,
- 41022, 41702, 10309, 127035, 78320, 0, 6975, 0, 5415, 12176, 0, 74193,
- 3462, 65215, 42629, 78691, 73784, 0, 0, 9759, 0, 70057, 127254, 8114,
- 78698, 78697, 78696, 78695, 8710, 42495, 118956, 0, 4051, 10460, 43364,
- 118917, 1356, 12161, 42713, 128857, 127268, 1619, 9703, 43152, 42489,
- 42112, 127978, 1875, 10808, 42109, 120284, 41860, 64862, 13305, 64907,
- 5289, 13144, 128658, 0, 5575, 9675, 0, 5940, 226, 2649, 6336, 983277,
- 119830, 43236, 3382, 42449, 6498, 1658, 11936, 78232, 0, 11269, 10151,
- 73759, 43100, 69888, 65508, 0, 0, 0, 8935, 917985, 0, 0, 0, 616, 74753,
- 65178, 4684, 78701, 119653, 0, 126551, 0, 6048, 74460, 42110, 73965,
- 10870, 8557, 11054, 68664, 119049, 9681, 4475, 0, 41142, 2100, 0, 120731,
- 6035, 0, 7651, 10296, 64443, 0, 983295, 917987, 0, 118966, 74144, 40997,
- 0, 10392, 10328, 40998, 43462, 74488, 0, 9800, 8979, 0, 13307, 41000, 0,
- 119239, 6487, 3386, 0, 10344, 0, 65299, 5394, 43246, 78243, 10220, 66505,
- 41200, 128583, 4425, 0, 0, 0, 43074, 73799, 983200, 78147, 0, 12173,
- 78545, 0, 127011, 65338, 0, 0, 119582, 4474, 0, 43093, 128644, 1587, 0,
- 127372, 64475, 128098, 1369, 983672, 9959, 7927, 0, 4560, 0, 0, 92277,
- 983621, 64948, 4430, 74347, 42601, 4514, 66434, 93955, 8194, 65462,
- 10626, 10965, 0, 8893, 983301, 12542, 0, 65341, 0, 65829, 7925, 119822,
- 10475, 0, 0, 1352, 11069, 7707, 127560, 126486, 65279, 127102, 68207,
- 127100, 7099, 6040, 127097, 10071, 0, 9336, 43750, 0, 8899, 7798, 64474,
- 64259, 69873, 65188, 7820, 43018, 127082, 0, 7746, 1492, 78551, 10884,
- 77982, 0, 5127, 11285, 42501, 5495, 4273, 43095, 41426, 10849, 5730,
- 2999, 6342, 68636, 74304, 371, 64373, 6023, 169, 5497, 11708, 0, 0, 6323,
- 194684, 8224, 0, 8938, 6043, 12738, 0, 983076, 5321, 0, 194798, 0, 2589,
- 74332, 1689, 7802, 4683, 74318, 42704, 120296, 11905, 0, 0, 128516,
- 128163, 74513, 6049, 0, 4027, 834, 118962, 1803, 0, 1503, 0, 0, 71312,
- 5731, 1381, 2387, 0, 0, 8289, 64525, 65817, 2881, 43142, 0, 9601, 2879,
- 9668, 9766, 0, 5729, 917833, 74410, 6036, 64881, 4026, 9361, 127091,
- 2887, 0, 3526, 6298, 0, 77897, 120095, 78519, 0, 8572, 6021, 77896,
- 128288, 77895, 43155, 0, 119849, 3146, 10959, 9483, 0, 77893, 10981, 166,
- 917841, 8635, 983606, 10623, 408, 119058, 127507, 13298, 0, 7426, 41641,
- 12717, 0, 7607, 10639, 43396, 0, 0, 41643, 74134, 983054, 8713, 41640,
- 10221, 41645, 66712, 6645, 646, 66726, 66711, 42129, 93994, 77901, 3472,
- 8697, 0, 0, 983815, 0, 0, 0, 5809, 1950, 119356, 92432, 74572, 0, 42136,
- 0, 0, 0, 0, 3247, 119854, 65017, 983953, 68428, 66668, 0, 0, 10983, 0, 0,
- 0, 41567, 0, 0, 0, 194624, 119853, 0, 0, 8285, 0, 4509, 0, 66471, 12216,
- 0, 40988, 92592, 74809, 41727, 0, 42848, 2396, 917766, 0, 74018, 917538,
- 64940, 7027, 3886, 0, 42457, 119008, 0, 996, 68123, 94058, 4249, 0,
- 917594, 11707, 8222, 0, 7939, 92454, 92460, 127801, 917592, 128359, 8534,
- 127154, 40983, 0, 983240, 0, 7201, 12561, 0, 42371, 12558, 1540, 917549,
- 10052, 40982, 0, 0, 1488, 0, 0, 0, 917559, 0, 0, 1563, 128034, 9619,
- 983940, 0, 0, 127872, 71363, 5803, 7797, 6070, 10006, 0, 2922, 6082, 0,
- 65009, 983942, 12567, 128703, 0, 41412, 0, 0, 3607, 9200, 10046, 9612,
- 42153, 8218, 9485, 0, 2032, 78354, 0, 0, 0, 0, 0, 43085, 6057, 508,
- 93968, 128015, 67968, 0, 92405, 0, 0, 638, 6083, 119072, 0, 0, 2305,
- 78348, 68096, 0, 6056, 6659, 67969, 0, 6085, 0, 0, 3915, 41634, 0, 41639,
- 63912, 11941, 0, 4028, 1787, 42180, 43096, 43753, 3249, 1768, 93982,
- 12328, 501, 93985, 10601, 0, 583, 0, 41977, 0, 66004, 119350, 6505,
- 74010, 0, 13064, 55267, 120810, 6500, 5526, 65049, 0, 73764, 0, 92376,
- 12745, 9678, 0, 120587, 9869, 128815, 1771, 0, 8936, 0, 0, 4208, 78341,
- 78567, 78342, 0, 983456, 74101, 0, 11762, 0, 92422, 77997, 68010, 66475,
- 0, 5027, 78172, 128878, 0, 5069, 73862, 5028, 9897, 0, 73739, 5026,
- 983253, 68639, 6331, 10079, 8931, 0, 1415, 8866, 41901, 74790, 78138,
- 119361, 983564, 43106, 5029, 65309, 1580, 3598, 68424, 41070, 77903, 0,
- 3440, 78215, 1562, 128656, 127175, 119358, 1716, 983679, 10600, 917867,
- 620, 41001, 6028, 0, 42892, 0, 74822, 5024, 120829, 41003, 0, 5025,
- 69892, 983209, 0, 118885, 0, 65557, 0, 74541, 983587, 11599, 128209,
- 11602, 6243, 11574, 11581, 11597, 11598, 6253, 6105, 11584, 74195, 11569,
- 65275, 8906, 127096, 5755, 2636, 983227, 10815, 11619, 2301, 41540, 7815,
- 11616, 6979, 12080, 7721, 11604, 7869, 1592, 0, 42152, 78498, 41048,
- 917763, 829, 0, 92406, 19950, 0, 126482, 6616, 0, 118875, 10953, 391, 0,
- 69785, 482, 42296, 11588, 0, 43606, 0, 68397, 66370, 74506, 42335,
- 983188, 0, 0, 7538, 5315, 120644, 42491, 0, 42061, 128088, 4576, 0,
- 68417, 43809, 4277, 0, 4039, 64472, 42338, 368, 42058, 3960, 11043,
- 11337, 78209, 917820, 63989, 3958, 12132, 1849, 0, 9921, 42451, 4253,
- 41147, 42064, 11959, 42404, 41160, 0, 3618, 78338, 0, 43300, 5156, 92629,
- 0, 929, 6827, 42035, 42437, 1555, 0, 8691, 66435, 2215, 41662, 94010, 0,
- 0, 0, 93952, 4578, 64513, 41664, 983734, 42578, 128794, 41661, 78715,
- 43267, 9356, 0, 0, 0, 1286, 10166, 0, 0, 64707, 983127, 42476, 7730,
- 983859, 128522, 42483, 0, 0, 42324, 42291, 10020, 43359, 0, 6641, 525,
- 41627, 917923, 8763, 128304, 41628, 533, 11931, 65225, 8321, 42504,
- 42581, 0, 6915, 42310, 4377, 8559, 0, 74360, 0, 13193, 64350, 11666,
- 8679, 41924, 1576, 7735, 92398, 0, 73840, 983092, 11374, 78043, 10889,
- 43461, 7757, 42462, 120226, 10029, 66493, 2718, 4168, 73842, 13308,
- 120112, 0, 1179, 4440, 0, 77948, 363, 11015, 77947, 77944, 64296, 127090,
- 66692, 120826, 0, 66492, 6593, 64625, 41963, 92177, 119329, 0, 10013,
- 64434, 92520, 127095, 9492, 11782, 64382, 12833, 77830, 0, 1297, 41630,
- 630, 127094, 0, 120774, 92465, 1043, 43652, 66223, 10090, 0, 128664, 313,
- 917563, 41881, 0, 42311, 7445, 0, 5750, 10759, 9419, 55222, 9405, 11268,
- 42919, 9398, 8526, 9399, 9422, 0, 66495, 0, 0, 127239, 41718, 10707,
- 1603, 0, 119003, 0, 631, 77952, 69703, 13161, 65272, 0, 10546, 74210,
- 78101, 11600, 77961, 2797, 73821, 42427, 306, 714, 3058, 42381, 77962,
- 127080, 12351, 42395, 0, 11607, 0, 42282, 77971, 77967, 9157, 73765,
- 66364, 42433, 77964, 7603, 12803, 180, 42141, 0, 120612, 66494, 12674,
- 8244, 362, 92439, 0, 8037, 43777, 11535, 0, 74845, 5185, 7165, 5521,
- 10334, 2093, 71329, 10302, 128112, 10104, 1027, 5181, 0, 0, 10523, 1446,
- 42320, 41646, 991, 5189, 42472, 41647, 120105, 1722, 5581, 42898, 3405,
- 0, 194644, 5523, 0, 42620, 92447, 983819, 9549, 0, 10549, 55282, 9661,
- 43682, 0, 77910, 120026, 78708, 0, 77911, 0, 41991, 983893, 0, 7630,
- 9846, 7684, 10350, 0, 1174, 77981, 42733, 77978, 77980, 66485, 77977,
- 42277, 77974, 42456, 65667, 127037, 12330, 128272, 0, 42417, 42383,
- 66630, 41344, 6293, 0, 66252, 77984, 74443, 0, 10209, 8313, 4195, 74435,
- 1316, 66690, 120032, 6332, 64894, 0, 65871, 78060, 1736, 983684, 3901,
- 12228, 120151, 65200, 3383, 10446, 78841, 693, 9130, 314, 64149, 42420,
- 11949, 983669, 120152, 11026, 128788, 5332, 6940, 64154, 12635, 127007,
- 42706, 1751, 273, 8165, 13166, 120763, 78840, 71368, 12824, 0, 4528,
- 5320, 6301, 43662, 6133, 9339, 9463, 42346, 10922, 64560, 3757, 0, 0, 0,
- 65869, 73760, 2569, 0, 2326, 65740, 2565, 42459, 7596, 7921, 983868,
- 74095, 127981, 41848, 2567, 66006, 0, 4044, 92646, 0, 12233, 983871,
- 1023, 474, 0, 119818, 0, 0, 42487, 65556, 0, 127866, 42295, 0, 0, 71322,
- 92518, 9835, 66499, 0, 5417, 12275, 10895, 0, 274, 0, 1858, 0, 0, 55251,
- 10118, 3133, 128008, 73795, 0, 9610, 8068, 8197, 0, 699, 0, 41665, 5868,
- 0, 92695, 42182, 7581, 19940, 43668, 41667, 128057, 0, 1923, 65583,
- 65802, 93970, 64597, 43444, 119184, 92197, 0, 6464, 7036, 2996, 1937,
- 983751, 0, 41835, 4047, 41842, 0, 64107, 0, 0, 11017, 120601, 0, 293,
- 77966, 92169, 64791, 41827, 42466, 43422, 10579, 8560, 71350, 65413,
- 77963, 4803, 12964, 1739, 1941, 3900, 0, 1713, 77969, 0, 73957, 11407,
- 42441, 41971, 6297, 120098, 64105, 128080, 42481, 11716, 66473, 7179,
- 42289, 0, 64103, 969, 0, 9352, 0, 6165, 64100, 0, 6632, 73861, 42402,
- 74327, 7806, 0, 8914, 0, 0, 3183, 1435, 64876, 2969, 6046, 64441, 6208,
- 67849, 5746, 73749, 0, 64416, 42422, 0, 983046, 7082, 73775, 338, 5059,
- 194719, 0, 42328, 10767, 0, 8115, 0, 74758, 0, 8227, 2073, 1218, 917790,
- 0, 65848, 0, 0, 69863, 0, 126987, 4486, 0, 0, 0, 10925, 0, 0, 0, 983586,
- 42309, 10257, 65191, 10273, 0, 10305, 42461, 0, 42349, 8832, 78051,
- 64127, 10644, 42662, 78828, 42278, 74451, 126988, 69874, 7794, 0, 42429,
- 6377, 42316, 119026, 3669, 3968, 42468, 71319, 69658, 0, 65402, 119581,
- 0, 0, 64933, 0, 41960, 6699, 0, 0, 128354, 6823, 42391, 1588, 65400,
- 8409, 78223, 19967, 65398, 787, 71315, 917939, 127744, 6115, 2078, 41654,
- 42480, 0, 92650, 41655, 65401, 43975, 0, 0, 0, 644, 65500, 41657, 10778,
- 3659, 9533, 184, 1553, 13107, 65484, 69648, 10502, 74457, 0, 0, 41554, 0,
- 8220, 917943, 41557, 0, 0, 11070, 119221, 5157, 4020, 73858, 41555, 9514,
- 64818, 65103, 64641, 64303, 78131, 7520, 0, 74377, 11029, 66651, 983068,
- 0, 118930, 64527, 0, 7877, 73803, 983798, 127348, 120096, 74602, 9955,
- 119557, 4055, 42817, 0, 65212, 11715, 12190, 12319, 78630, 0, 78631,
- 9502, 65427, 0, 65424, 12607, 0, 9734, 65425, 0, 0, 127357, 78835, 92410,
- 10112, 10827, 0, 9866, 74527, 66675, 0, 8625, 64346, 11290, 10477, 0,
- 8636, 983927, 8315, 65444, 983793, 0, 74595, 6152, 0, 0, 6629, 127108,
- 120171, 0, 74589, 43993, 0, 69790, 64435, 0, 43690, 11046, 11490, 42730,
- 4485, 127107, 0, 64926, 0, 0, 0, 5869, 12437, 42728, 0, 7040, 3588, 0,
- 12825, 0, 0, 12725, 0, 127106, 78642, 223, 0, 69675, 120166, 42444, 0,
- 64499, 65245, 0, 1171, 0, 69717, 0, 1805, 8772, 43820, 0, 9930, 65247,
- 78619, 120111, 2338, 0, 118853, 0, 42676, 0, 64800, 65236, 67644, 68126,
- 1213, 0, 64075, 797, 64074, 8734, 4212, 127369, 64387, 4115, 0, 5005,
- 64070, 64073, 10679, 0, 77954, 9402, 64276, 426, 0, 0, 8251, 10136,
- 65436, 0, 2120, 43302, 1224, 0, 65576, 74192, 10701, 1764, 3101, 127815,
- 12858, 120159, 0, 11373, 6378, 127859, 120103, 8663, 9312, 41644, 4539,
- 2129, 0, 9222, 983738, 0, 4259, 9092, 74567, 41961, 0, 12724, 66357,
- 42331, 64935, 0, 0, 1293, 7947, 2132, 983767, 74593, 120308, 2454, 42717,
- 3613, 128837, 0, 0, 65888, 8816, 10978, 10840, 0, 10668, 0, 43087, 12595,
- 120304, 983114, 8822, 0, 1157, 64903, 8638, 0, 0, 0, 0, 69848, 8235,
- 120316, 4405, 10086, 120247, 0, 69216, 0, 65430, 71321, 6079, 6817,
- 10764, 127910, 64291, 128051, 998, 120312, 11062, 1317, 64327, 1558, 0,
- 1991, 7882, 42254, 0, 41700, 530, 0, 10428, 119335, 12002, 119336, 5742,
- 43076, 4692, 64630, 41823, 4007, 5004, 119334, 7896, 751, 6595, 6596,
- 120325, 66373, 0, 0, 64908, 92691, 6311, 0, 12004, 119192, 12049, 43108,
- 120326, 0, 41705, 92188, 6598, 0, 6599, 120334, 0, 42148, 118825, 66027,
- 0, 6597, 9412, 8340, 11824, 64745, 2281, 69904, 0, 1988, 5407, 67865,
- 2430, 41678, 0, 120243, 2336, 983903, 0, 78871, 120442, 983769, 1921,
- 10947, 19927, 0, 65406, 0, 19913, 4284, 13217, 0, 43789, 12841, 9229,
- 10956, 42285, 41674, 19964, 41679, 65084, 3521, 0, 5774, 8325, 0, 65403,
- 983089, 1854, 10794, 0, 67660, 69846, 0, 78359, 5280, 0, 4344, 12905,
+ 43825, 71085, 119337, 5236, 40979, 983140, 71874, 8286, 128537, 3936,
+ 119331, 11699, 41347, 69739, 13235, 8842, 41248, 0, 4379, 13239, 12692,
+ 7969, 127266, 7219, 71875, 128251, 120509, 92907, 66224, 734, 2979,
+ 120303, 65619, 9872, 957, 64921, 1846, 66631, 41477, 119256, 71192,
+ 74511, 41770, 1670, 6442, 120317, 42446, 5379, 120318, 41163, 74832,
+ 11136, 71876, 11506, 128395, 42841, 13267, 128421, 0, 41775, 0, 7130,
+ 41773, 0, 10663, 70130, 0, 983974, 6151, 12110, 42673, 65572, 65293,
+ 65250, 13265, 13264, 64518, 0, 6100, 127964, 92647, 5808, 65922, 67814,
+ 12967, 66041, 5612, 4583, 70004, 43386, 68097, 64575, 126637, 11965,
+ 194930, 68358, 71483, 69789, 42653, 83181, 68102, 9698, 7814, 71045,
+ 119651, 128514, 0, 41921, 118858, 9756, 6985, 66418, 66621, 74219, 66412,
+ 128822, 118997, 8012, 5674, 12353, 66421, 12361, 5677, 5588, 92348,
+ 41925, 128124, 41920, 5673, 83113, 5676, 41923, 12694, 118978, 5672,
+ 1294, 0, 78059, 983962, 42511, 1727, 120725, 42436, 121400, 121183, 0,
+ 74222, 8718, 3550, 736, 10268, 4505, 5873, 74090, 5826, 55232, 5813,
+ 129032, 92889, 5841, 5837, 55234, 194864, 3105, 12829, 5838, 5796, 0,
+ 119592, 5793, 0, 5866, 5797, 41011, 5865, 93009, 7956, 598, 0, 64649,
+ 5806, 42398, 0, 9037, 5671, 120041, 983257, 83478, 983929, 83184, 0, 847,
+ 128242, 9529, 83018, 66657, 6980, 78483, 43510, 78122, 92219, 0, 67411,
+ 78486, 83017, 127260, 120039, 42683, 71848, 983055, 7114, 126521, 0,
+ 43190, 65463, 1554, 0, 42611, 42563, 0, 5651, 2929, 6792, 43201, 75059,
+ 19963, 5698, 194768, 983272, 92933, 71887, 5644, 10292, 65546, 69727,
+ 68141, 8372, 0, 65116, 0, 70304, 10175, 10388, 42799, 94100, 41013,
+ 10568, 0, 983618, 2869, 917843, 41015, 74473, 2785, 4366, 0, 10954,
+ 41802, 983652, 42608, 78468, 9884, 4759, 73768, 120296, 10266, 41359,
+ 1170, 43365, 69810, 73908, 1609, 902, 92773, 63936, 83247, 11661, 8122,
+ 5818, 83245, 0, 3861, 9540, 11028, 2554, 5158, 5714, 2213, 983966, 0,
+ 807, 43079, 78092, 78475, 976, 5511, 64553, 120863, 42155, 983319, 41356,
+ 74110, 118801, 71043, 120080, 8676, 983293, 94002, 5582, 451, 63941,
+ 5798, 9349, 42018, 127858, 128521, 78681, 43609, 5906, 120553, 1440, 0,
+ 128853, 74933, 70342, 11005, 194699, 66656, 66044, 194636, 120079,
+ 128793, 0, 43393, 10094, 70164, 11529, 10857, 92944, 66436, 6546, 93,
+ 8102, 67323, 68405, 0, 194714, 8171, 118888, 119097, 82996, 917543, 383,
+ 7154, 41656, 43495, 94040, 67162, 5187, 71296, 71086, 11286, 68620,
+ 64217, 0, 5232, 0, 41009, 127377, 41005, 983810, 0, 128471, 8292, 125108,
+ 4980, 8860, 71054, 10028, 65291, 7076, 13182, 194705, 74912, 127974,
+ 10631, 11244, 7972, 68042, 78785, 0, 7900, 128590, 11309, 3806, 4198,
+ 42725, 0, 67656, 9995, 0, 92552, 0, 12931, 121110, 42684, 74285, 2088,
+ 64213, 64366, 65156, 8814, 42238, 74771, 127920, 194713, 12836, 0,
+ 113800, 74342, 8593, 0, 0, 68445, 13255, 121333, 128843, 7464, 0, 65865,
+ 0, 194650, 127144, 92395, 9342, 120464, 70376, 64516, 0, 78792, 10129,
+ 41007, 74375, 983701, 40995, 12209, 41012, 83501, 0, 83257, 69724, 40992,
+ 92264, 119136, 68653, 43558, 5522, 75026, 61, 120959, 74105, 3633,
+ 120082, 65162, 41234, 12089, 78281, 9771, 83281, 13251, 128701, 0, 6262,
+ 2784, 42743, 71078, 8126, 66483, 0, 0, 441, 42621, 0, 0, 41002, 40999,
+ 119623, 43266, 7108, 194779, 10890, 74481, 65834, 8324, 118944, 64417,
+ 74817, 127465, 64737, 74853, 983659, 8930, 66678, 67216, 1193, 10056,
+ 1800, 13253, 13252, 7829, 120992, 121175, 7743, 83502, 124996, 77904,
+ 77913, 77905, 9034, 6039, 129139, 10075, 0, 41018, 65683, 10338, 66469,
+ 0, 0, 194637, 42815, 92984, 41966, 0, 127471, 0, 11792, 43064, 41025,
+ 911, 7539, 0, 40963, 120339, 65159, 64390, 0, 983160, 5520, 11662,
+ 127473, 65330, 42812, 983215, 0, 12326, 71081, 194638, 42808, 128337,
+ 9348, 64901, 983861, 983892, 121050, 66839, 0, 0, 121004, 43702, 983148,
+ 5857, 65342, 92727, 119120, 83503, 8644, 121227, 83332, 11186, 74296,
+ 41909, 0, 66900, 2791, 69663, 1891, 69824, 66397, 41907, 66647, 118939,
+ 8761, 12942, 5748, 92713, 10773, 70868, 83174, 8796, 78149, 6412, 2061,
+ 8520, 13146, 127096, 63931, 83275, 65902, 2882, 83334, 0, 12843, 4520,
+ 120345, 92459, 0, 983660, 0, 73860, 83335, 0, 64345, 0, 9201, 128314,
+ 70871, 0, 917864, 43679, 121026, 65117, 92270, 0, 10427, 121506, 3844,
+ 6842, 9755, 1110, 6612, 12222, 93030, 128789, 983638, 92928, 783, 194935,
+ 92185, 127221, 73855, 68032, 65056, 3620, 41180, 68378, 4556, 67839,
+ 68480, 194933, 74250, 0, 67657, 10510, 4382, 66482, 67823, 0, 127527,
+ 9177, 8902, 93958, 9839, 120700, 12891, 983755, 983636, 63999, 2016,
+ 41917, 9788, 63928, 67696, 1862, 65800, 9155, 66623, 9786, 65082, 41919,
+ 8579, 41914, 7981, 0, 66017, 4508, 64883, 92456, 92522, 127814, 120834,
+ 64592, 74276, 67688, 6784, 78788, 68181, 0, 71218, 113821, 66366, 12147,
+ 9024, 66378, 66472, 124976, 64289, 65289, 78151, 66658, 71935, 64509,
+ 78152, 113697, 126505, 11051, 194928, 0, 11355, 65885, 121319, 127941,
+ 41214, 0, 12299, 0, 7500, 4506, 7773, 0, 0, 9963, 68649, 126609, 4040,
+ 120570, 6167, 74519, 63922, 6594, 983740, 0, 0, 3624, 43036, 129472,
+ 6387, 63990, 19947, 63988, 41955, 126990, 63993, 10440, 9611, 65605,
+ 6803, 120968, 7738, 63986, 11446, 63984, 92641, 3435, 78164, 43814,
+ 43810, 7029, 64258, 41292, 118898, 12748, 42742, 9517, 11518, 83292,
+ 78790, 983381, 67993, 63956, 42458, 63954, 63953, 63960, 9591, 4516,
+ 10217, 68370, 11469, 69697, 42306, 2723, 118947, 0, 92325, 0, 68079,
+ 121344, 11397, 2880, 70806, 917829, 2872, 0, 83321, 3498, 4378, 917539,
+ 4270, 0, 65551, 68205, 6633, 43387, 0, 5230, 194991, 0, 983040, 194910,
+ 121392, 8161, 393, 12013, 0, 983198, 119103, 415, 63964, 63963, 42345,
+ 92310, 5183, 1877, 42498, 0, 2927, 71058, 63961, 4472, 983299, 0, 78159,
+ 69699, 127301, 42340, 4756, 128078, 7081, 10730, 7691, 10331, 63830,
+ 119625, 42922, 42103, 8628, 9813, 78654, 42453, 1604, 9565, 10539, 69701,
+ 65764, 41415, 65767, 129196, 8457, 42301, 11372, 64873, 11992, 0, 0,
+ 63980, 11801, 3622, 195092, 64336, 12017, 10463, 63981, 4967, 64189,
+ 1966, 43628, 983908, 983294, 83267, 121052, 63971, 4347, 4416, 42098,
+ 11009, 10694, 63973, 402, 92213, 13147, 128692, 42100, 64646, 13228, 0,
+ 41875, 3515, 74252, 11805, 983157, 11302, 6259, 43395, 0, 83323, 194670,
+ 120836, 92351, 74813, 74425, 11299, 1561, 118881, 92318, 64942, 93021,
+ 194733, 70411, 78718, 121140, 74301, 68825, 11280, 128489, 69784, 74060,
+ 128392, 0, 119664, 5145, 12486, 65018, 66516, 5409, 127379, 124988, 7402,
+ 5399, 9685, 74089, 7952, 5401, 0, 66616, 66832, 92966, 120852, 5405,
+ 127875, 64866, 120965, 119583, 119122, 78784, 74248, 11330, 194723,
+ 64690, 3254, 983166, 128944, 92696, 42390, 43678, 194725, 129127, 65077,
+ 129059, 6388, 3355, 9508, 9867, 5723, 11520, 5611, 83021, 3377, 0, 0,
+ 74354, 194578, 78228, 983722, 983762, 42691, 127886, 120948, 68091,
+ 128404, 75023, 1379, 246, 74649, 983761, 3788, 92520, 11041, 67202,
+ 66304, 0, 121213, 8917, 42403, 301, 0, 128500, 127046, 0, 0, 113822,
+ 10656, 125042, 65214, 92987, 42567, 92217, 13163, 983204, 120831, 74597,
+ 3182, 0, 0, 0, 65034, 65889, 42169, 4755, 74244, 194574, 11443, 983603,
+ 66319, 6841, 608, 600, 0, 1219, 3934, 64206, 11483, 74510, 119117, 74485,
+ 42442, 65470, 983907, 64202, 13160, 7759, 42482, 485, 69982, 70505, 9828,
+ 0, 43505, 42280, 0, 9351, 7778, 64379, 7496, 42431, 6916, 1208, 0,
+ 119631, 11002, 42470, 0, 68315, 0, 0, 74041, 83144, 70045, 43539, 5411,
+ 42196, 0, 0, 0, 9150, 66831, 42393, 13086, 1310, 66848, 9337, 12052,
+ 10643, 55271, 128951, 12166, 2546, 194683, 213, 118852, 65611, 83316,
+ 194822, 194756, 74310, 6554, 94059, 11914, 5452, 0, 0, 92772, 0, 917880,
+ 194681, 92560, 2713, 119564, 9650, 43330, 121033, 128505, 1406, 125007,
+ 42925, 74638, 194593, 66256, 4143, 128136, 194762, 65748, 4141, 9682,
+ 65287, 1508, 127013, 8779, 10569, 8725, 13299, 66638, 65750, 42263, 4145,
+ 6380, 65751, 66613, 43994, 65738, 55250, 9185, 9550, 42932, 43403, 0, 0,
+ 194783, 65736, 41951, 64816, 65756, 983205, 12955, 10596, 2888, 83190, 0,
+ 121354, 9657, 9019, 121154, 0, 2878, 5390, 0, 194961, 67325, 68679,
+ 43552, 7501, 6328, 194960, 10429, 10365, 0, 0, 41946, 7503, 5235, 803,
+ 68381, 0, 0, 8986, 43838, 10632, 11934, 11452, 1332, 0, 194970, 126647,
+ 0, 118887, 1791, 5191, 9288, 64822, 2892, 83192, 43394, 555, 0, 0, 66646,
+ 128980, 119002, 13151, 74512, 7289, 74055, 64161, 8854, 64162, 5858,
+ 41927, 10582, 120457, 1784, 1361, 120921, 121516, 7905, 0, 64868, 128813,
+ 13158, 92166, 7211, 71884, 9371, 73973, 128441, 6828, 1625, 7664, 128768,
+ 1342, 68440, 64171, 92642, 10903, 983496, 0, 92527, 0, 70438, 4482,
+ 41606, 128934, 125033, 121475, 0, 64381, 983940, 194974, 195090, 42245,
+ 126467, 41972, 0, 444, 983439, 9127, 66687, 66619, 126489, 78025, 0,
+ 11349, 40991, 917570, 0, 70177, 120830, 0, 1197, 128282, 1149, 68316, 0,
+ 983258, 40990, 43765, 121262, 3492, 917906, 118784, 129026, 0, 983566,
+ 12838, 67208, 19948, 41677, 3099, 0, 0, 41087, 0, 0, 983261, 119059,
+ 12036, 41309, 128161, 0, 8152, 0, 41550, 12227, 983613, 0, 12828, 127511,
+ 75015, 120964, 120708, 0, 0, 10386, 75068, 119955, 127303, 92680, 983134,
+ 68154, 127876, 1743, 0, 0, 92239, 65186, 917571, 0, 9606, 0, 70052,
+ 64439, 128864, 68062, 92686, 983875, 0, 43866, 128881, 0, 3395, 9362,
+ 10878, 43260, 0, 78362, 64830, 0, 125046, 41091, 3426, 1344, 8870,
+ 121100, 71344, 4735, 11111, 6119, 12822, 42699, 0, 983824, 74818, 1423,
+ 128923, 42637, 41080, 0, 12039, 10559, 128634, 118892, 0, 9472, 67734,
+ 11929, 126557, 7170, 9596, 6130, 128826, 43629, 11579, 71475, 0, 92501,
+ 125081, 78046, 66699, 64440, 1004, 92584, 194736, 43234, 66008, 12627, 0,
+ 68414, 74614, 43619, 43303, 11300, 43304, 9686, 5890, 11776, 7558, 70109,
+ 65627, 0, 10718, 13154, 3461, 9139, 0, 983094, 0, 119023, 65365, 73877,
+ 65628, 78019, 119272, 83118, 41708, 12860, 2641, 12069, 10838, 5403,
+ 10352, 70085, 10061, 43237, 125057, 5140, 209, 128847, 41704, 41056,
+ 43078, 127789, 118809, 67232, 10899, 65469, 70125, 0, 0, 2410, 993,
+ 83117, 120589, 120689, 78693, 0, 0, 7232, 0, 119253, 124963, 7110, 74462,
+ 2066, 10489, 42166, 43463, 10659, 3600, 68863, 4224, 1336, 41518, 121311,
+ 0, 0, 0, 41139, 64820, 92538, 12966, 41134, 0, 0, 119153, 120441, 272,
+ 4263, 8793, 983856, 0, 41502, 128133, 983, 12549, 124940, 0, 1190, 4109,
+ 1335, 841, 5888, 41358, 64863, 9544, 43481, 0, 120926, 70027, 2099, 5120,
+ 2409, 7799, 0, 74424, 0, 121041, 4731, 92279, 66629, 128127, 92525, 1255,
+ 4149, 9247, 74977, 9913, 983828, 121101, 64914, 917787, 65101, 113714,
+ 11694, 92475, 11690, 5835, 127164, 66625, 10842, 41354, 42123, 43097,
+ 11688, 66634, 1094, 194, 64692, 917900, 8180, 125055, 0, 9972, 73865,
+ 4519, 6114, 10898, 43072, 92465, 0, 93960, 983324, 126581, 10695, 0,
+ 7540, 0, 881, 7857, 6067, 65164, 0, 917897, 129134, 13311, 68403, 41857,
+ 64321, 8359, 83286, 12689, 983312, 11245, 128105, 983314, 71859, 68183,
+ 983415, 194829, 1287, 5436, 0, 71097, 74142, 92328, 74152, 70205, 6051,
+ 10497, 69668, 8985, 12109, 82962, 128908, 93043, 121013, 0, 3652, 10537,
+ 120282, 1276, 120440, 6549, 279, 73745, 0, 128664, 83244, 1489, 0, 0, 0,
+ 3899, 1007, 42124, 43828, 42122, 92337, 92367, 0, 11985, 1345, 78600,
+ 119832, 917563, 8956, 43083, 94057, 42138, 78610, 129131, 6430, 78608,
+ 78604, 78605, 6285, 78603, 78612, 78613, 65942, 492, 8685, 128481,
+ 121270, 0, 75027, 43712, 2582, 11470, 64538, 7444, 78615, 78616, 2297, 0,
+ 73837, 119823, 2527, 119824, 197, 2799, 92594, 41944, 83152, 9933, 74011,
+ 66515, 767, 5524, 7028, 0, 92168, 119827, 119817, 92950, 78633, 10896, 0,
+ 1799, 120497, 6971, 74336, 128342, 0, 65340, 118979, 41551, 2434, 94018,
+ 118823, 65353, 0, 4631, 118996, 0, 6407, 113737, 6338, 43214, 0, 7570, 0,
+ 3192, 120330, 8414, 983392, 93983, 195043, 0, 0, 9164, 66612, 93959,
+ 3171, 6623, 4961, 68396, 886, 55216, 8654, 78832, 9993, 74390, 64603,
+ 70066, 69241, 9599, 78629, 43084, 78627, 78628, 78625, 2399, 69693, 8994,
+ 10944, 41208, 983713, 41168, 8178, 74859, 3367, 92334, 42510, 78641,
+ 78636, 6804, 70475, 1947, 917579, 0, 92681, 42759, 11068, 1705, 9331, 0,
+ 74798, 9181, 65359, 125065, 8017, 119831, 65096, 66720, 68223, 43475,
+ 917548, 4909, 12126, 127540, 120696, 4904, 92961, 43503, 1365, 9253,
+ 42757, 43436, 7462, 127772, 0, 0, 83173, 66845, 64415, 120500, 83172,
+ 5398, 125035, 127386, 93953, 127362, 983782, 119015, 83171, 127007, 9476,
+ 983887, 120695, 12763, 126603, 3629, 120844, 13005, 11181, 3628, 0, 0,
+ 92502, 3469, 42107, 42116, 917578, 64809, 2928, 4905, 9853, 851, 9040,
+ 120372, 64665, 43086, 9114, 43870, 42583, 9315, 4822, 4906, 3852, 2847,
+ 119821, 3236, 11317, 1251, 7777, 41852, 11410, 10964, 0, 43222, 12646,
+ 120269, 10259, 9865, 65821, 75046, 6018, 68293, 125010, 12276, 119110,
+ 68372, 128255, 92259, 71893, 0, 119828, 10467, 0, 2443, 10918, 78217,
+ 77947, 1001, 9241, 1927, 0, 124942, 73987, 127882, 71895, 93012, 7992,
+ 77943, 43939, 12867, 128649, 8260, 77945, 7519, 11505, 12274, 8904, 518,
+ 65857, 128361, 128674, 13204, 4387, 857, 121252, 65369, 0, 92336, 43125,
+ 11842, 0, 71072, 121462, 0, 5136, 1968, 128906, 126627, 1337, 64967,
+ 1629, 0, 796, 66506, 0, 74123, 12877, 120649, 42314, 43388, 43826, 43944,
+ 6120, 478, 65151, 68128, 128147, 43082, 6016, 0, 42284, 71894, 4276,
+ 1206, 3619, 41638, 69691, 3843, 12011, 8853, 3361, 0, 490, 10715, 7578,
+ 68384, 92754, 65350, 10530, 12348, 8653, 68245, 42435, 6154, 9551, 65354,
+ 78522, 784, 42397, 334, 121084, 42416, 65356, 65273, 43937, 69666, 4442,
+ 10364, 43935, 778, 41626, 42455, 7989, 74063, 3227, 69907, 43932, 11102,
+ 2915, 11502, 41022, 41702, 10309, 127035, 75032, 120273, 6975, 0, 5415,
+ 12176, 983709, 74193, 3462, 43940, 42629, 78691, 71175, 43942, 127256,
+ 9759, 127255, 70057, 121442, 8114, 78698, 78697, 78696, 78695, 8710,
+ 42495, 118956, 70189, 4051, 10460, 43364, 71206, 1356, 12161, 42713,
+ 128857, 127268, 1619, 9703, 43152, 42489, 42112, 64436, 1875, 10808,
+ 42109, 120284, 41860, 64862, 13305, 64907, 5289, 13144, 128658, 983224,
+ 5575, 9675, 71129, 5940, 226, 2649, 6336, 983279, 92979, 43236, 3382,
+ 42449, 6498, 1658, 11936, 78232, 113814, 11269, 10151, 73759, 43100,
+ 69888, 65508, 983143, 0, 121451, 8935, 78234, 0, 983757, 0, 616, 74753,
+ 65178, 4684, 78701, 119653, 74631, 126551, 124992, 6048, 74460, 42110,
+ 73965, 10870, 8557, 11054, 68664, 75051, 9681, 4475, 67429, 41142, 2100,
+ 125024, 120731, 6035, 73796, 7651, 6846, 64443, 983957, 983296, 917987,
+ 0, 118966, 74144, 40997, 68488, 10392, 10328, 40998, 43462, 74488, 71182,
+ 9800, 8979, 0, 13307, 41000, 0, 5114, 6487, 3386, 129094, 10344, 0, 5115,
+ 5394, 43246, 78243, 5113, 66505, 41200, 128582, 4425, 194669, 0, 0,
+ 43074, 73799, 129076, 78147, 5112, 12173, 78545, 128771, 66824, 65338,
+ 983676, 0, 119582, 4474, 128936, 43093, 43964, 1587, 0, 127372, 64475,
+ 119217, 1369, 983672, 9959, 7927, 43963, 4560, 120793, 67811, 92277,
+ 983621, 64948, 4430, 43961, 42601, 4514, 66434, 93955, 8194, 65462,
+ 10626, 10965, 120905, 8893, 983303, 12542, 0, 65341, 67703, 65829, 7925,
+ 119822, 10475, 113825, 127011, 1352, 11069, 7707, 127560, 126486, 65279,
+ 127102, 68207, 74956, 7099, 6040, 67681, 10071, 78554, 9336, 43750,
+ 121074, 8899, 7798, 64474, 64259, 69873, 65188, 7820, 43018, 127082,
+ 128898, 7746, 1492, 78551, 10884, 75075, 66866, 5127, 11285, 42501, 5495,
+ 4273, 43095, 41426, 10849, 5730, 2999, 6342, 68636, 74304, 371, 64373,
+ 6023, 169, 5497, 11708, 75028, 128603, 6323, 129065, 8224, 128417, 8938,
+ 6043, 12738, 120671, 983076, 5321, 68645, 194798, 120251, 2589, 74332,
+ 1689, 7802, 4683, 74318, 42704, 92940, 11905, 983615, 0, 128516, 128163,
+ 74513, 6049, 0, 4027, 834, 118962, 1803, 983822, 1503, 78336, 127173,
+ 71312, 5731, 1381, 2387, 126610, 70808, 8289, 64525, 65817, 2881, 43142,
+ 0, 9601, 2879, 9668, 9766, 0, 5729, 129110, 71230, 6036, 64881, 4026,
+ 9361, 127091, 2887, 70389, 3526, 6298, 119851, 77897, 120095, 78519,
+ 118964, 8572, 6021, 77896, 128288, 71174, 43155, 0, 71197, 3146, 10959,
+ 9483, 83219, 77893, 10981, 166, 917841, 8635, 917840, 10623, 408, 119058,
+ 127507, 13298, 127253, 7426, 41641, 12717, 983795, 7607, 10639, 43396,
+ 129300, 119089, 41643, 74134, 983054, 8713, 41640, 10221, 41645, 66293,
+ 6645, 646, 66726, 66711, 42129, 68255, 77901, 3472, 8697, 0, 120936,
+ 121069, 0, 118859, 0, 5809, 1950, 119356, 92432, 68339, 128943, 42136,
+ 121440, 0, 0, 0, 3247, 92402, 65017, 128794, 68428, 66668, 0, 121112,
+ 10983, 0, 128787, 0, 41567, 119852, 0, 0, 78446, 119853, 127922, 0, 8285,
+ 126516, 4509, 121043, 66471, 12216, 128806, 40988, 83221, 74809, 41727,
+ 0, 42848, 2396, 128083, 194892, 74018, 917538, 64940, 7027, 3886, 0,
+ 42457, 92888, 83299, 996, 68123, 94058, 4249, 92410, 69650, 11707, 8222,
+ 73825, 7939, 71213, 92460, 127801, 121408, 128359, 8534, 69853, 40983, 0,
+ 121421, 0, 7201, 12561, 120866, 42371, 12558, 1540, 917549, 10052, 40982,
+ 119841, 0, 1488, 71177, 0, 194831, 917559, 128401, 0, 1563, 128034, 9619,
+ 120840, 917905, 120954, 127872, 71363, 3560, 7797, 6070, 10006, 128922,
+ 2922, 6082, 70147, 65009, 983942, 12567, 66712, 0, 41412, 128131, 119591,
+ 3607, 9200, 10046, 9612, 42153, 8218, 9485, 0, 2032, 78354, 83462,
+ 119131, 0, 0, 67826, 43085, 6057, 508, 93968, 92989, 67968, 0, 92198, 0,
+ 128831, 638, 6083, 119072, 124950, 0, 2305, 78348, 68096, 917772, 6056,
+ 6659, 67969, 983290, 6085, 0, 0, 3915, 41634, 0, 41639, 63912, 11941,
+ 983783, 4028, 1787, 42180, 43096, 43753, 3249, 1768, 93982, 12328, 501,
+ 93985, 10601, 0, 583, 0, 41977, 0, 66004, 66416, 6505, 74010, 983250,
+ 13064, 55267, 119113, 6500, 5526, 65049, 0, 12990, 0, 92376, 12745, 9678,
+ 121108, 120587, 9869, 83150, 1771, 128965, 8936, 92964, 0, 4208, 78341,
+ 78567, 78342, 67742, 983208, 74101, 128605, 11762, 0, 70096, 6835, 68010,
+ 66475, 120260, 5027, 78172, 128878, 119830, 5069, 73736, 5028, 9897,
+ 92774, 73739, 5026, 983255, 68639, 6331, 10079, 8931, 0, 1415, 8866,
+ 41901, 74790, 78138, 119361, 983564, 43106, 5029, 65309, 1580, 3598,
+ 68424, 41070, 77903, 7658, 3440, 78215, 1562, 128656, 127175, 119358,
+ 1716, 983679, 10600, 78558, 620, 41001, 6028, 70445, 42892, 0, 71116,
+ 5024, 74945, 41003, 68137, 5025, 69892, 983209, 75039, 118885, 127956,
+ 65557, 0, 74541, 128924, 11599, 128209, 11602, 6243, 11574, 11581, 11597,
+ 11598, 6253, 6105, 11584, 70273, 11569, 65275, 8906, 43945, 5755, 2636,
+ 71203, 10815, 11619, 2301, 41540, 7815, 11616, 6979, 12080, 7721, 11604,
+ 7869, 1592, 0, 42152, 78498, 41048, 917763, 829, 0, 92406, 19950, 66886,
+ 64131, 6616, 0, 118875, 10953, 391, 0, 69785, 482, 42296, 11588, 0,
+ 43606, 71185, 68397, 66370, 74282, 42335, 69786, 72421, 82998, 7538,
+ 5315, 83367, 42491, 92901, 42061, 128002, 4576, 0, 68417, 43809, 4277, 0,
+ 3563, 64472, 42338, 368, 42058, 3960, 11043, 11337, 78209, 120244, 63989,
+ 3958, 12132, 1849, 0, 9921, 42451, 4253, 41147, 42064, 11959, 42404,
+ 41160, 121481, 3618, 78338, 194924, 43300, 5156, 92629, 70350, 929, 6827,
+ 42035, 42437, 1555, 0, 8691, 66435, 2215, 41662, 94010, 119262, 0,
+ 128824, 93952, 4578, 64513, 41664, 983734, 42578, 71049, 41661, 78351,
+ 43267, 9356, 0, 194880, 983401, 1286, 10166, 983117, 0, 64707, 128925,
+ 42476, 7730, 11156, 128522, 42483, 129083, 74940, 42324, 42291, 10020,
+ 43359, 0, 6641, 525, 41627, 917923, 8763, 128304, 41628, 533, 11931,
+ 65225, 8321, 42504, 42581, 0, 6915, 42310, 4377, 8559, 128321, 8587,
+ 121318, 13193, 64350, 11666, 8679, 41924, 1576, 7735, 92398, 0, 73840,
+ 83153, 11374, 78043, 10889, 43461, 7757, 42462, 120226, 10029, 66493,
+ 2718, 4168, 43904, 13308, 120112, 0, 1179, 4440, 43902, 77948, 363,
+ 11015, 43903, 77944, 43857, 83049, 66692, 120826, 0, 66492, 6593, 64625,
+ 41963, 92177, 119329, 0, 10013, 64434, 75010, 127095, 9492, 11782, 64382,
+ 12833, 77830, 0, 1297, 41630, 630, 120960, 983923, 120774, 70165, 1043,
+ 43652, 66223, 10090, 0, 124945, 313, 121483, 41881, 194658, 42311, 7445,
+ 43906, 5750, 10759, 9419, 55222, 9405, 11268, 42919, 9398, 8526, 9399,
+ 9422, 43894, 66495, 69990, 983885, 92990, 41718, 10707, 1603, 983703,
+ 119003, 0, 631, 77952, 69703, 13161, 65272, 71067, 10546, 74210, 78101,
+ 11600, 77961, 2797, 43924, 42427, 306, 714, 3058, 42381, 77962, 127080,
+ 12351, 42395, 0, 11607, 127528, 11198, 66821, 77967, 9157, 73765, 66364,
+ 42433, 77964, 7603, 12803, 180, 42141, 0, 120612, 66494, 12674, 8244,
+ 362, 92439, 43890, 8037, 43777, 11535, 126539, 43893, 5185, 7165, 5521,
+ 10334, 2093, 71329, 10302, 125131, 10104, 1027, 5181, 128435, 5117,
+ 10523, 1446, 42320, 6845, 991, 5189, 42472, 41647, 120105, 1722, 5581,
+ 42898, 3405, 0, 194644, 5523, 43915, 42620, 92447, 74943, 9549, 0, 10549,
+ 43923, 9661, 42933, 74884, 77910, 78068, 43921, 0, 71184, 983070, 41991,
+ 983893, 0, 7630, 9846, 7684, 10350, 128453, 1174, 77981, 42733, 77978,
+ 77980, 66485, 77977, 42277, 77974, 42456, 43909, 74438, 12330, 128272, 0,
+ 42417, 42383, 66630, 41344, 6293, 0, 66252, 43908, 74443, 127894, 10209,
+ 8313, 4195, 74435, 1316, 66690, 75072, 6332, 64894, 983156, 65871, 67250,
+ 1736, 983684, 3901, 12228, 120151, 65200, 3383, 10446, 78241, 693, 9130,
+ 314, 64149, 42420, 11949, 127200, 120152, 11026, 120516, 5332, 6940,
+ 64154, 12635, 124980, 42706, 1751, 273, 8165, 13166, 83307, 78840, 71368,
+ 12824, 43911, 4528, 5320, 6301, 43662, 6133, 9339, 9463, 42346, 10922,
+ 64560, 3757, 0, 0, 74302, 65869, 73760, 2569, 74976, 2326, 65740, 2565,
+ 42459, 7596, 7921, 983868, 73862, 127981, 41848, 2567, 66006, 92622,
+ 4044, 92646, 43953, 12233, 983871, 1023, 474, 194940, 119818, 0, 0,
+ 42487, 65556, 121168, 127866, 42295, 128203, 121474, 71322, 92518, 2222,
+ 66499, 0, 5417, 12275, 10895, 0, 274, 0, 1858, 983455, 0, 55251, 10118,
+ 3133, 127771, 71857, 121201, 9610, 8068, 8197, 917545, 699, 0, 41665,
+ 5868, 128710, 92695, 42182, 7581, 19940, 43668, 41667, 128057, 0, 1923,
+ 65583, 65802, 93970, 64597, 43444, 78129, 68751, 0, 6464, 7036, 2996,
+ 1937, 983751, 68481, 41835, 4047, 41842, 0, 64107, 77965, 119837, 11017,
+ 120601, 0, 293, 77966, 92169, 64791, 41827, 42466, 43422, 10579, 8560,
+ 71350, 65413, 77963, 4803, 12964, 1739, 1941, 3900, 128967, 1713, 77969,
+ 121292, 73957, 11407, 42441, 41971, 6297, 120098, 64105, 120565, 42481,
+ 11716, 66473, 7179, 42289, 125095, 64103, 969, 0, 9352, 71481, 6165,
+ 64100, 917819, 6632, 73861, 42402, 74327, 7806, 113762, 8914, 66908,
+ 124954, 3183, 1435, 64876, 2969, 6046, 64441, 6208, 67849, 5746, 66408,
+ 0, 64416, 42422, 83506, 983046, 7082, 73775, 338, 5059, 121369, 83524,
+ 42328, 10767, 128862, 8115, 83454, 74758, 0, 8227, 2073, 1218, 917790,
+ 983230, 65848, 92884, 83517, 69863, 128328, 126987, 4486, 128082, 917796,
+ 0, 10925, 0, 83515, 83507, 124952, 42309, 10257, 65191, 10273, 7668,
+ 10305, 42461, 74882, 42349, 8832, 78051, 64127, 10644, 42662, 78828,
+ 42278, 74451, 126988, 69874, 7794, 119214, 42429, 6377, 42316, 119026,
+ 3669, 3968, 42468, 71319, 69658, 0, 65402, 119581, 194973, 128747, 64933,
+ 194627, 41960, 6699, 42903, 128755, 125013, 6823, 42391, 1588, 43502,
+ 8409, 78223, 19967, 65398, 787, 71315, 128335, 127744, 6115, 2078, 41654,
+ 42480, 917949, 92650, 41655, 65401, 43975, 72427, 0, 113816, 644, 65500,
+ 41657, 10778, 3659, 9533, 184, 1553, 13107, 65484, 69648, 10502, 66296,
+ 0, 0, 41554, 0, 8220, 128432, 41557, 0, 128938, 11070, 119221, 5157,
+ 4020, 73858, 41555, 9514, 64818, 65103, 64641, 64303, 78131, 7520, 73888,
+ 74377, 11029, 66651, 983068, 128492, 118930, 64527, 121395, 7877, 12723,
+ 983798, 68776, 120096, 74602, 9955, 119557, 4055, 42817, 0, 65212, 11715,
+ 12190, 12319, 78630, 0, 78631, 9502, 65427, 125048, 65424, 12607, 120966,
+ 9734, 65425, 0, 121431, 127357, 74890, 78836, 10112, 10827, 194635, 9866,
+ 74527, 66675, 118867, 8625, 64346, 11290, 10477, 67738, 8636, 983927,
+ 8315, 65444, 983793, 195011, 74595, 6152, 78820, 73947, 6629, 125056,
+ 120171, 0, 74589, 43993, 128346, 69790, 64435, 64955, 43690, 11046,
+ 11490, 42730, 4485, 71126, 128194, 64926, 0, 983133, 43830, 5869, 12437,
+ 42728, 0, 7040, 3588, 0, 12825, 121158, 0, 12725, 74092, 127106, 78634,
+ 223, 78635, 69675, 120119, 42444, 128449, 64499, 65245, 129104, 1171,
+ 128802, 69717, 120113, 1805, 8772, 43820, 0, 9930, 65247, 78619, 74954,
+ 2338, 120032, 118853, 0, 42676, 0, 64800, 13092, 11185, 68126, 1213,
+ 128419, 64075, 797, 64074, 8734, 4212, 83005, 64387, 4115, 71331, 5005,
+ 64070, 64073, 10679, 83000, 77954, 9402, 64276, 426, 83358, 83010, 8251,
+ 10136, 65436, 0, 2120, 43302, 1224, 0, 65576, 70795, 10701, 1764, 3101,
+ 127815, 12858, 120159, 120101, 11373, 6378, 71093, 120103, 8663, 9312,
+ 41644, 4539, 2129, 70785, 9222, 121479, 118907, 4259, 9092, 74567, 41961,
+ 128515, 12724, 66357, 42331, 64935, 0, 0, 1293, 7947, 2132, 983767,
+ 71858, 72440, 2454, 42717, 3613, 128837, 71117, 0, 65888, 8816, 10978,
+ 10840, 0, 10668, 113723, 43087, 12595, 120304, 983114, 8822, 0, 1157,
+ 64903, 8638, 127265, 917886, 127905, 0, 69848, 8235, 120316, 4405, 10086,
+ 120247, 11128, 69216, 121065, 65430, 71321, 6079, 6817, 10764, 120314,
+ 64291, 120315, 998, 120312, 11062, 1317, 64327, 1558, 194572, 1991, 7882,
+ 42254, 128954, 41700, 530, 0, 10428, 119335, 12002, 119336, 5742, 43076,
+ 4692, 64630, 41823, 4007, 5004, 74033, 7896, 751, 6595, 6596, 120325,
+ 66373, 983249, 128746, 64908, 92691, 6311, 93019, 12004, 119192, 12049,
+ 43108, 120326, 71083, 41705, 92188, 6598, 121298, 6599, 66822, 93031,
+ 42148, 118825, 66027, 121055, 6597, 9412, 8340, 11824, 64745, 2281,
+ 69904, 128495, 1988, 5407, 67865, 2430, 41678, 93059, 83114, 2336,
+ 983903, 0, 67169, 120442, 127092, 1921, 10947, 19927, 70390, 65406,
+ 983464, 19913, 4284, 13217, 0, 43789, 12841, 9229, 10956, 42285, 41674,
+ 19964, 41679, 65084, 3521, 124957, 5774, 8325, 69864, 65403, 983089,
+ 1854, 10794, 93054, 67660, 69846, 194765, 78359, 5280, 0, 4344, 12905,
65433, 6076, 64793, 41610, 768, 12074, 442, 0, 68162, 64081, 12934,
41682, 65432, 41693, 0, 6071, 65434, 127467, 4804, 4053, 0, 127469,
- 194653, 41696, 467, 69823, 127463, 69797, 194652, 127473, 8421, 127472,
- 69682, 43705, 502, 0, 65431, 119056, 69954, 12043, 1303, 316, 7364, 2029,
- 2136, 119246, 11533, 64365, 43480, 92639, 4860, 126648, 127877, 42488, 0,
- 9583, 128849, 5546, 8019, 73856, 0, 0, 0, 5544, 2355, 12150, 65725, 5543,
- 77989, 63751, 12137, 5548, 77985, 0, 65727, 68388, 65726, 6077, 128352,
- 65452, 0, 11301, 78013, 78008, 78010, 9874, 78007, 0, 1319, 3050, 65410,
- 0, 0, 78016, 78017, 42830, 43996, 66716, 128137, 4691, 92242, 9345, 621,
- 92709, 128222, 0, 65411, 0, 41182, 73881, 65408, 73899, 78024, 9474,
- 10545, 119118, 10887, 3786, 65409, 8894, 43179, 119611, 7923, 3716,
- 92363, 9996, 8508, 0, 7012, 8195, 127834, 9566, 0, 3722, 0, 41707, 8493,
- 545, 9575, 41379, 10050, 12718, 69854, 8859, 6820, 74345, 65110, 120740,
- 0, 0, 9119, 2787, 7920, 118823, 4021, 2012, 7985, 0, 119663, 0, 0, 78021,
- 78022, 410, 78020, 1802, 78018, 74107, 0, 41659, 41671, 1827, 0, 64396,
- 10126, 12116, 41673, 120370, 11422, 78141, 120373, 3860, 120367, 68412,
- 41345, 120362, 120363, 11748, 42158, 7941, 11076, 8749, 120361, 2104,
- 64858, 361, 120357, 845, 0, 41560, 11970, 4562, 917920, 2926, 917919,
- 4569, 74130, 0, 43487, 194630, 611, 74129, 64871, 118891, 65629, 0,
- 194858, 0, 0, 127545, 120543, 0, 0, 6291, 0, 78639, 41669, 7094, 917921,
- 0, 983581, 74054, 127754, 195029, 0, 839, 983319, 7695, 8769, 65246,
- 4829, 194663, 4859, 64467, 0, 983963, 118998, 7206, 0, 6647, 43986, 0,
- 69766, 0, 64764, 4210, 983863, 127936, 804, 0, 0, 12298, 0, 66653, 0,
- 64924, 10091, 73931, 9468, 74245, 0, 0, 74246, 92503, 12839, 64669,
- 92202, 0, 1279, 1425, 6224, 119229, 11049, 0, 92697, 43239, 8482, 92440,
- 0, 5032, 69677, 11940, 67888, 664, 120437, 5034, 0, 0, 127525, 42702,
- 73888, 983149, 13294, 67873, 64869, 6032, 0, 9115, 7430, 120377, 0,
+ 194653, 41696, 467, 69823, 127463, 69797, 121403, 121294, 8421, 127472,
+ 69682, 43705, 502, 75029, 65431, 119056, 69954, 12043, 1303, 316, 7364,
+ 2029, 2136, 119246, 11533, 64365, 43480, 92639, 4860, 70372, 127877,
+ 42488, 70339, 9583, 128849, 5546, 8019, 73856, 983840, 124960, 120839,
+ 5544, 2355, 12150, 65725, 5543, 75034, 63751, 12137, 5548, 77985, 0,
+ 65727, 68388, 65726, 6077, 128352, 65452, 0, 11301, 11214, 65952, 78010,
+ 9874, 78007, 983115, 1319, 3050, 65410, 67399, 92606, 78016, 78017,
+ 42830, 43996, 66716, 83050, 4691, 92242, 9345, 621, 83512, 128222, 0,
+ 65411, 0, 41182, 73881, 65408, 73899, 78024, 9474, 10545, 119118, 10887,
+ 3786, 65409, 8894, 43179, 71042, 7923, 3716, 92363, 9996, 8508, 127794,
+ 7012, 8195, 127834, 9566, 0, 3722, 983374, 41707, 8493, 545, 9575, 41379,
+ 10050, 12718, 69854, 8859, 6820, 74345, 65110, 120740, 128978, 55282,
+ 9119, 2787, 7920, 70091, 4021, 2012, 7985, 0, 119663, 917792, 0, 78021,
+ 78022, 410, 78020, 1802, 78018, 74107, 74895, 41659, 41671, 1827, 0,
+ 64396, 10126, 12116, 41673, 120370, 11422, 71846, 120373, 3860, 120367,
+ 68412, 41345, 120362, 120363, 11748, 42158, 7941, 11076, 8749, 120361,
+ 2104, 64858, 361, 120357, 845, 92174, 41560, 11970, 4562, 128473, 2926,
+ 68495, 4569, 74130, 128659, 43487, 194630, 611, 74129, 64871, 118891,
+ 65629, 0, 194858, 74854, 0, 70466, 67392, 66385, 71439, 6291, 0, 68487,
+ 41669, 7094, 121051, 0, 120999, 74054, 127754, 128917, 0, 839, 121315,
+ 7695, 8769, 65246, 4829, 67756, 4859, 64467, 0, 83525, 118998, 7206,
+ 119636, 6647, 43986, 83518, 69766, 194664, 64764, 4210, 128300, 127936,
+ 804, 83520, 0, 12298, 70344, 66653, 126983, 64924, 10091, 67200, 9468,
+ 67206, 67205, 67204, 67203, 92503, 12839, 64669, 92202, 71851, 1279,
+ 1425, 6224, 119229, 11049, 127123, 71480, 42649, 8482, 92440, 0, 5032,
+ 67209, 11940, 67207, 664, 120437, 5034, 92495, 70200, 127525, 42702,
+ 70194, 93061, 13294, 67873, 64869, 6032, 67218, 9115, 7430, 77837, 70191,
120819, 68387, 120168, 73913, 120170, 41161, 5518, 4174, 10993, 41162,
- 120160, 64528, 1169, 434, 41437, 1905, 6034, 41164, 64744, 9528, 118867,
- 128800, 524, 0, 74029, 788, 74027, 0, 194638, 0, 1663, 10419, 74025,
- 42636, 0, 69725, 0, 120656, 0, 67876, 0, 0, 0, 67897, 74039, 0, 0, 11395,
- 0, 119107, 43612, 64344, 0, 0, 10855, 5445, 9355, 0, 65198, 7391, 8989,
- 221, 65686, 0, 0, 8010, 7191, 4962, 69772, 8855, 0, 0, 64469, 120426,
- 10555, 0, 43333, 92299, 0, 120427, 10451, 0, 67653, 7245, 12443, 74405,
- 9947, 120149, 78317, 3873, 8367, 0, 120146, 43433, 43649, 11987, 0, 0,
- 11010, 12723, 74059, 74062, 6217, 5896, 0, 7682, 74049, 1462, 10235, 0,
- 0, 0, 0, 0, 0, 42595, 0, 74402, 118860, 0, 120419, 92497, 74052, 0,
- 92378, 120549, 119082, 64295, 120418, 0, 64765, 73923, 120417, 120662,
- 69920, 194702, 6216, 0, 10755, 9455, 0, 8124, 127042, 9470, 6944, 127540,
- 0, 69680, 2828, 0, 531, 42638, 0, 0, 0, 43428, 8204, 3614, 2827, 9696, 0,
- 0, 8728, 4354, 10904, 78562, 19936, 7833, 120691, 0, 42599, 42597, 42709,
- 120409, 127044, 0, 8537, 0, 0, 9354, 983164, 128833, 41199, 10121, 2028,
- 0, 983194, 69715, 0, 3062, 0, 74447, 12608, 0, 66440, 7545, 9700, 12580,
- 92205, 120777, 120502, 41155, 0, 74071, 0, 983457, 12713, 0, 0, 0, 78772,
- 0, 1734, 0, 0, 127040, 64594, 2456, 231, 0, 74167, 542, 0, 118786, 0,
- 983979, 1230, 0, 0, 3597, 4446, 10584, 74235, 92215, 4037, 127938, 8352,
- 0, 5687, 0, 64515, 0, 194801, 55265, 67846, 78434, 9704, 0, 0, 70080,
- 71338, 0, 8660, 126495, 0, 0, 78773, 74482, 4483, 1709, 69721, 9909,
- 6080, 0, 120358, 1746, 1315, 8667, 0, 0, 13140, 65899, 10604, 0, 4480,
- 11266, 128152, 1226, 6930, 67979, 983690, 6360, 10897, 41230, 605, 0,
- 74785, 69875, 0, 0, 41500, 0, 311, 11453, 6221, 10608, 64943, 74280,
- 10877, 118868, 64885, 74272, 0, 0, 128559, 120736, 74312, 345, 0, 74456,
- 64606, 9917, 0, 92231, 5037, 0, 1776, 8422, 0, 118814, 41508, 41201, 323,
- 43328, 0, 42698, 1295, 194853, 4625, 0, 4630, 13117, 0, 128772, 65123,
- 11293, 2668, 11288, 0, 42640, 65666, 2519, 92369, 65420, 92479, 0, 4252,
- 5049, 42659, 119011, 706, 7754, 10854, 8738, 0, 65419, 0, 0, 649, 65421,
- 0, 66702, 0, 12670, 1013, 0, 64919, 705, 0, 65422, 127803, 1183, 126519,
- 7017, 42852, 0, 8157, 9736, 64503, 65418, 0, 983878, 74035, 0, 11913,
- 73874, 6696, 0, 8920, 119298, 0, 7962, 12211, 9837, 2051, 66227, 0, 4184,
- 0, 0, 10177, 73777, 1857, 194657, 4626, 8464, 8472, 0, 4629, 8499, 78321,
- 78322, 4624, 7818, 119173, 0, 0, 7805, 0, 94007, 6935, 92292, 78325,
- 78326, 78323, 43327, 43989, 119046, 8492, 8250, 8459, 0, 8497, 8496, 0,
- 0, 78336, 78339, 9543, 78335, 78332, 77832, 65849, 77831, 983961, 0,
- 12451, 0, 8684, 0, 6102, 0, 5298, 0, 5294, 0, 0, 983459, 195062, 9949,
- 119826, 43617, 119215, 0, 12073, 0, 0, 77863, 13108, 120617, 11439,
- 41468, 983757, 0, 5292, 55272, 983883, 1939, 5302, 3970, 917879, 12455,
- 1793, 0, 0, 0, 6643, 92477, 65263, 0, 78330, 41293, 78328, 65923, 0,
- 13219, 9569, 0, 74383, 0, 74197, 0, 5500, 8813, 0, 0, 74566, 5322, 0,
- 78340, 43631, 5324, 66443, 3784, 41614, 65269, 6230, 78349, 78345, 43324,
- 3360, 78344, 11523, 0, 92488, 9926, 7197, 0, 68429, 42894, 41821, 1249,
- 78360, 78361, 78356, 78358, 78353, 64899, 64763, 41149, 41807, 43162,
- 41815, 41150, 0, 10571, 10096, 0, 0, 78074, 6947, 41152, 887, 9249, 6565,
- 78510, 41990, 78509, 41811, 74466, 93966, 6670, 77882, 0, 0, 43092,
- 43325, 0, 10168, 0, 9781, 128655, 9190, 0, 9666, 8269, 65944, 74005,
- 13019, 11670, 69860, 315, 12813, 983458, 78432, 78256, 78351, 78352, 0,
- 983657, 0, 0, 1378, 9509, 0, 0, 74475, 3066, 92220, 67847, 0, 92355, 0,
- 78365, 8787, 120379, 194616, 41618, 194615, 78261, 194614, 0, 64652, 0,
- 194612, 0, 78366, 42088, 0, 195061, 7176, 43756, 10137, 6121, 10995,
- 78259, 74534, 8119, 64874, 917816, 127199, 194939, 0, 74525, 0, 0, 12930,
- 1394, 74514, 0, 74515, 0, 118804, 2998, 9527, 120659, 65190, 12977,
- 42090, 119165, 0, 119100, 41236, 92235, 42005, 42003, 41237, 5848, 0, 0,
- 3670, 128657, 194600, 0, 0, 7890, 0, 11298, 43315, 0, 6229, 1593, 0, 0,
- 619, 4635, 65080, 0, 128002, 4120, 65337, 65336, 0, 11808, 119214, 74115,
- 9366, 42790, 42006, 119115, 65327, 65326, 65325, 10757, 1507, 42216,
- 65321, 65320, 65335, 65334, 65333, 65332, 65331, 42059, 65329, 42689,
- 92427, 9128, 94045, 42073, 6785, 64590, 983830, 4371, 7196, 65318, 2035,
- 65316, 4106, 65314, 65313, 42074, 127847, 41228, 0, 65609, 41241, 7903,
- 41239, 43533, 78459, 7189, 0, 0, 0, 12357, 42802, 78450, 8487, 9131, 0,
- 4615, 12695, 127752, 0, 12175, 0, 64535, 0, 7809, 0, 0, 562, 12169, 6590,
- 69762, 66455, 64738, 3219, 68654, 983787, 0, 1037, 0, 2025, 128263,
- 13098, 78442, 10637, 4568, 549, 1570, 0, 2835, 0, 10624, 43623, 11072,
- 127191, 0, 0, 12606, 78433, 2825, 0, 10825, 8079, 2821, 41046, 92327,
- 7365, 983753, 120593, 13071, 0, 452, 41049, 42840, 6346, 2831, 5461,
- 74596, 11465, 5212, 0, 64703, 119191, 42308, 7181, 0, 41332, 0, 12333, 0,
- 1668, 0, 0, 0, 1187, 983385, 42628, 78575, 0, 128777, 0, 3240, 128518,
- 12194, 0, 11591, 41065, 5323, 8166, 0, 0, 0, 74535, 1623, 65297, 128856,
- 571, 0, 4918, 0, 5288, 127295, 8916, 65048, 1909, 8864, 0, 0, 10736,
- 92508, 11571, 7615, 127300, 92296, 4237, 92576, 1035, 65815, 0, 7881,
- 701, 65936, 3489, 0, 0, 120751, 11403, 0, 0, 127146, 3796, 6800, 0, 3994,
- 11421, 0, 195076, 0, 983922, 0, 0, 64857, 128105, 2855, 127828, 66308,
- 41621, 68214, 127283, 127817, 10654, 0, 119226, 12164, 3246, 7906, 43972,
- 65847, 7182, 0, 13024, 194822, 74270, 128289, 0, 0, 0, 1496, 747, 0, 942,
- 2378, 43136, 127905, 8466, 983575, 9320, 8001, 1232, 8139, 11617, 0, 0,
- 11409, 68373, 6382, 0, 64634, 128279, 0, 11612, 0, 67600, 2374, 94066,
- 8475, 11609, 66313, 0, 0, 5286, 119297, 0, 0, 64925, 120283, 194584,
- 118982, 194583, 7705, 11942, 11305, 194581, 3309, 0, 0, 0, 0, 6802, 0,
- 41653, 1280, 1241, 7168, 12096, 0, 66615, 42565, 41651, 0, 0, 0, 41650,
- 66507, 66470, 0, 12914, 41491, 66010, 119552, 6078, 9954, 0, 1475,
- 119247, 9938, 6084, 917546, 41064, 41062, 0, 0, 3256, 10189, 42076,
- 43252, 78823, 917906, 8727, 0, 65875, 0, 0, 127762, 10562, 74215, 43065,
- 0, 0, 3248, 74297, 3261, 9015, 71351, 0, 3635, 64337, 983281, 0, 0, 7195,
- 0, 2007, 64431, 0, 0, 0, 0, 635, 0, 0, 65613, 77909, 92420, 73997, 0, 0,
- 119218, 7984, 8600, 74434, 127770, 4176, 70050, 2034, 92551, 120805,
- 65891, 127038, 0, 318, 2038, 128860, 78596, 0, 3649, 13149, 42145, 42798,
- 3634, 120291, 118927, 67677, 120124, 7866, 0, 11402, 42146, 94032, 74238,
- 42664, 2849, 127034, 0, 7938, 12960, 1761, 11812, 65379, 68386, 128185,
- 1159, 0, 69729, 0, 0, 7178, 194632, 0, 41680, 0, 128203, 11534, 1514,
- 11668, 67891, 9313, 7015, 0, 67877, 194567, 12989, 66474, 9368, 12848,
- 1624, 43270, 0, 74278, 10818, 126644, 9953, 0, 78421, 1194, 3242, 9761,
- 9555, 8598, 120299, 6169, 12871, 1551, 2798, 65176, 4958, 42752, 119025,
- 0, 67875, 120301, 3495, 66648, 194768, 0, 68364, 983224, 4891, 0, 10641,
- 0, 73746, 0, 68352, 0, 73787, 194829, 194633, 7199, 64955, 0, 0, 0, 0, 0,
- 42685, 42679, 193, 0, 0, 0, 42667, 0, 5271, 92318, 92517, 118882, 1362,
- 13297, 0, 128094, 0, 983331, 73789, 0, 6658, 4426, 0, 92628, 983842,
- 92319, 7276, 42163, 5220, 0, 0, 983330, 2416, 3310, 42703, 0, 379, 0,
- 43755, 0, 0, 3223, 65492, 1284, 194771, 4549, 0, 0, 983154, 127763,
- 10807, 9558, 194613, 0, 8515, 8688, 12866, 65308, 3294, 983332, 8529,
- 128101, 43385, 7564, 0, 43329, 0, 92458, 73757, 66456, 42359, 0, 2031, 0,
- 7202, 0, 12676, 42729, 92198, 3215, 0, 7710, 1610, 73801, 0, 0, 65682, 0,
- 120537, 65924, 9974, 228, 66354, 1501, 0, 64395, 5179, 7200, 6225, 0,
- 65794, 1725, 65533, 8196, 7476, 74399, 0, 0, 7152, 8502, 5762, 1967,
- 7483, 0, 0, 8104, 0, 7474, 77979, 0, 126507, 10414, 13001, 8141, 0,
- 42537, 1557, 43594, 128642, 6330, 6805, 8631, 2545, 70052, 127166, 0,
- 74190, 0, 0, 983786, 42762, 0, 42914, 1650, 262, 1637, 0, 7901, 3238,
- 128173, 41861, 0, 128585, 65158, 10860, 94059, 43658, 7527, 0, 43319,
- 6419, 0, 45, 0, 64588, 93989, 0, 119810, 7194, 5291, 0, 43666, 13129, 0,
- 9084, 0, 8737, 0, 12881, 0, 12906, 9639, 7912, 2620, 0, 0, 0, 983875,
- 179, 65896, 0, 64756, 2853, 78443, 118813, 983890, 118996, 119009, 2850,
- 8084, 983085, 73850, 2801, 92284, 42069, 119839, 74754, 119841, 42072,
- 119843, 119842, 10398, 983056, 0, 8377, 127116, 8245, 68401, 3158, 92396,
- 3983, 43656, 923, 119857, 119856, 292, 13002, 119845, 119844, 3221, 1763,
- 92463, 4612, 119851, 119850, 7253, 127110, 68391, 0, 10782, 3637, 12996,
- 43542, 0, 64578, 983675, 3228, 69636, 8783, 0, 119614, 2731, 0, 0, 78585,
- 4102, 7696, 73878, 0, 0, 78586, 43316, 4177, 11283, 9089, 0, 73996,
- 983173, 64500, 43674, 0, 64947, 1856, 0, 0, 6379, 0, 0, 0, 3208, 12975,
- 74775, 127380, 983931, 92389, 74072, 55269, 0, 0, 983683, 2033, 78577,
- 78576, 195026, 55254, 7740, 0, 0, 0, 73964, 0, 93988, 67612, 65674,
- 128244, 94110, 41689, 0, 74006, 64909, 6646, 11790, 74019, 0, 128066,
- 128031, 8561, 4573, 0, 5326, 0, 120605, 7230, 8257, 0, 8778, 41688, 0,
- 65776, 2071, 8314, 6459, 0, 7628, 65092, 73903, 66721, 11342, 128561, 0,
- 0, 128226, 127001, 0, 11810, 13164, 10723, 967, 983951, 126469, 11946, 0,
- 3257, 0, 12307, 1845, 983157, 43526, 0, 0, 1886, 42342, 10089, 870, 7648,
- 3499, 8609, 7652, 876, 871, 877, 0, 878, 42015, 879, 43692, 4563, 0, 0,
- 7591, 65887, 867, 9520, 872, 126607, 868, 873, 7642, 0, 869, 874, 7644,
- 120674, 875, 790, 128303, 0, 0, 0, 66182, 983258, 5429, 195055, 66180,
- 126480, 66181, 68452, 983289, 983248, 42067, 0, 5433, 10657, 7911,
- 194622, 1547, 66176, 42012, 120576, 5425, 4977, 9999, 5317, 5423, 4611,
- 0, 67637, 0, 9679, 74122, 0, 0, 0, 66194, 4418, 66184, 4628, 4245,
- 119648, 0, 0, 1851, 0, 127189, 11908, 0, 9360, 118897, 983202, 42776,
- 66187, 12837, 8829, 7711, 92714, 0, 92321, 43318, 0, 8809, 69881, 0,
- 983142, 120604, 983052, 983882, 0, 983270, 0, 0, 7427, 9958, 4588, 43680,
- 0, 74484, 194968, 2433, 0, 119622, 3352, 74363, 983885, 0, 793, 74404, 0,
- 305, 567, 67662, 842, 128519, 8208, 0, 41695, 1647, 118877, 0, 7837,
- 917625, 818, 5337, 194628, 917621, 41376, 119978, 126576, 120594, 74086,
- 917615, 917614, 917613, 10973, 66359, 1372, 127172, 917608, 4969, 1254,
- 917605, 917604, 93967, 917602, 65228, 78221, 126612, 0, 2840, 0, 119982,
- 983939, 0, 3245, 9068, 68194, 64725, 0, 0, 12991, 0, 2651, 68016, 983265,
- 917611, 127026, 128883, 0, 0, 43648, 120812, 0, 43322, 92662, 0, 0,
- 64372, 92698, 3226, 655, 752, 7457, 7456, 7452, 3285, 128779, 127821,
- 119988, 65610, 2391, 0, 92248, 671, 250, 7434, 618, 668, 610, 42800,
- 7431, 1152, 42801, 640, 120666, 7448, 7439, 628, 3905, 73810, 0, 128266,
- 64749, 67850, 2107, 0, 0, 4605, 128174, 983192, 43372, 65945, 128838, 0,
- 119590, 0, 0, 0, 987, 6927, 11572, 42261, 11464, 3365, 9971, 0, 0,
- 128297, 0, 0, 0, 0, 11334, 43326, 12609, 11519, 11503, 5530, 5210, 0,
- 4627, 983892, 5208, 0, 128842, 10332, 5218, 7976, 9156, 0, 3244, 5529,
- 69647, 73894, 128852, 5432, 64965, 5527, 74033, 10516, 7790, 5528, 0,
- 42140, 120281, 0, 0, 43545, 9887, 0, 4000, 7429, 7428, 665, 7424, 3206,
- 120278, 7884, 0, 128566, 917989, 128666, 211, 2509, 128858, 120573,
- 68672, 3220, 42235, 0, 10690, 8951, 5214, 42474, 8118, 0, 7048, 4590,
- 127258, 5852, 0, 0, 127259, 1708, 0, 983165, 2623, 11943, 0, 69226, 0,
- 4698, 66509, 1066, 119921, 4701, 983876, 120285, 74225, 94111, 8267, 0,
- 127265, 0, 7516, 0, 2625, 983977, 8034, 74309, 0, 3631, 10955, 7850,
- 120293, 8416, 0, 0, 0, 43384, 12660, 0, 0, 0, 74850, 41069, 0, 128156,
- 12099, 4310, 10032, 6252, 713, 7990, 0, 3990, 0, 983262, 66368, 5017,
- 64956, 7071, 0, 119144, 1030, 118800, 983120, 9513, 41059, 9357, 0, 1773,
- 0, 120350, 0, 6339, 7745, 9844, 0, 64650, 94, 1880, 74766, 983838, 8908,
- 0, 128707, 65913, 78470, 10752, 13003, 0, 126572, 41307, 8732, 120338, 0,
- 1757, 6964, 4696, 0, 120335, 64785, 7394, 3641, 5419, 128055, 0, 127883,
- 0, 120344, 43988, 0, 8610, 43062, 7592, 856, 74299, 936, 13289, 69894,
- 43171, 1459, 0, 65243, 78638, 19953, 0, 1504, 70064, 0, 12913, 74206,
- 7529, 0, 128699, 983957, 120782, 4113, 0, 2372, 336, 0, 7509, 12152, 0,
- 682, 66458, 41505, 0, 64743, 10593, 1703, 0, 983955, 8033, 69953, 0,
- 9810, 127269, 0, 12970, 0, 42351, 10109, 917623, 0, 194693, 0, 92690, 0,
- 0, 74291, 1965, 7069, 43312, 0, 73887, 0, 2087, 64370, 6314, 41714, 8501,
- 0, 0, 74239, 41317, 92614, 2091, 74545, 2090, 0, 9353, 7117, 2077, 77886,
- 0, 10498, 2083, 77888, 0, 0, 119236, 634, 0, 0, 0, 69779, 4165, 8746, 0,
- 9654, 12856, 6924, 0, 7066, 983719, 0, 128135, 41037, 42692, 7786, 12959,
- 41039, 127483, 0, 680, 2302, 128200, 1181, 7056, 3174, 126516, 0, 92668,
- 65665, 127375, 126506, 6920, 0, 92295, 0, 118965, 0, 64644, 126981,
- 74119, 0, 41028, 0, 6231, 2613, 65302, 40989, 0, 194696, 0, 42760, 0,
- 983566, 0, 40987, 4667, 0, 983932, 8828, 0, 0, 1246, 4746, 0, 0, 11021,
- 4749, 92675, 0, 921, 4744, 0, 12702, 242, 0, 1566, 8217, 0, 64653, 78386,
- 128121, 74036, 74505, 43274, 5313, 951, 0, 0, 983867, 7604, 983290, 4009,
- 127816, 983710, 120562, 0, 983720, 64860, 119138, 119069, 0, 127370,
- 4048, 983598, 0, 70024, 1646, 77890, 64534, 73995, 120705, 0, 119890,
- 2579, 119905, 3177, 11357, 9099, 4107, 3441, 119894, 2975, 74442, 9822,
- 983935, 55220, 10084, 73943, 118840, 0, 917562, 194610, 3399, 9851,
- 983717, 11909, 9059, 0, 7687, 0, 6789, 0, 0, 0, 71367, 0, 0, 1777, 9151,
- 1137, 69767, 749, 42366, 0, 5385, 128574, 128218, 0, 0, 5989, 0, 0,
- 128091, 0, 41685, 69223, 0, 9769, 41684, 983216, 519, 0, 11740, 5766, 0,
- 0, 2600, 8848, 120138, 41297, 0, 3666, 74473, 41300, 74468, 65160, 0,
- 69688, 69771, 74479, 0, 6558, 0, 0, 69765, 120750, 252, 0, 41302, 0, 0,
- 0, 69763, 0, 11729, 8719, 9060, 0, 120139, 10761, 0, 0, 0, 118792, 11734,
- 983223, 11730, 0, 9593, 5757, 2403, 64808, 55275, 0, 11728, 43572, 0, 0,
- 7764, 983714, 11094, 120825, 0, 983226, 4282, 8298, 0, 0, 0, 0, 0, 64449,
- 0, 126650, 63854, 8456, 0, 74783, 65670, 0, 78250, 0, 7774, 10607, 9792,
- 0, 0, 0, 0, 120764, 0, 10019, 74762, 0, 3458, 4365, 70053, 983712, 3647,
- 0, 2602, 128341, 0, 194707, 41135, 0, 0, 0, 64631, 172, 4971, 41219,
- 41137, 1889, 7238, 6545, 126476, 92193, 7597, 10528, 0, 0, 3732, 73910,
- 194588, 5344, 0, 43366, 43363, 9062, 119252, 0, 0, 0, 64479, 9232, 92596,
- 0, 0, 194712, 10900, 41531, 1263, 3720, 12048, 0, 64292, 41524, 7227,
- 119635, 6099, 41534, 0, 127354, 127345, 299, 917957, 8525, 127347, 3524,
- 917565, 8831, 127349, 92564, 3075, 67867, 127352, 0, 66362, 0, 64353, 0,
- 0, 5845, 0, 0, 0, 2581, 8200, 65114, 68460, 0, 43283, 5551, 0, 120735,
- 983201, 6340, 118855, 0, 78134, 8680, 7204, 70065, 2588, 2914, 7011,
- 55281, 0, 2471, 194631, 2883, 2749, 119563, 73774, 10913, 0, 0, 8666,
- 675, 42493, 0, 43571, 0, 6219, 0, 9980, 41232, 10928, 0, 41153, 41229,
- 118967, 0, 3738, 94016, 0, 12711, 3181, 66212, 74289, 68472, 42857, 8262,
- 983379, 0, 983222, 0, 42347, 12092, 9615, 7234, 74047, 983088, 0, 43744,
- 0, 0, 73846, 2934, 12722, 120762, 922, 43983, 74507, 983126, 74461, 3218,
- 120471, 74290, 120469, 64562, 120475, 8569, 11404, 11932, 73728, 3214,
- 120461, 120468, 12128, 3207, 65486, 78729, 1901, 78727, 127326, 120460,
- 7425, 3205, 68003, 78737, 78736, 78735, 43383, 69940, 65459, 2606, 78730,
- 73897, 0, 11496, 1173, 0, 41272, 119661, 0, 0, 983321, 120737, 0, 983971,
- 983320, 378, 2610, 0, 65079, 983325, 65695, 126559, 37, 7068, 0, 120480,
- 120479, 3209, 120477, 0, 10638, 9768, 69952, 119909, 983399, 0, 0, 0, 0,
- 65510, 0, 0, 5233, 983335, 64792, 983334, 0, 126633, 0, 7060, 9847,
- 120144, 1685, 595, 0, 73971, 1292, 8940, 7380, 11088, 0, 10004, 126997,
- 0, 6541, 0, 0, 0, 3243, 9014, 5606, 0, 538, 64620, 5602, 8467, 74391,
- 6547, 128132, 8203, 78488, 983090, 8458, 65211, 8495, 119904, 0, 917552,
- 779, 78314, 64367, 2465, 69901, 8193, 55279, 9730, 9280, 0, 7065, 74155,
- 4346, 0, 73798, 504, 0, 92414, 8982, 0, 0, 0, 782, 0, 10883, 0, 194852,
- 732, 3737, 127253, 1548, 68650, 92507, 1832, 5604, 5735, 41141, 119020,
- 4376, 0, 11787, 3745, 0, 0, 42888, 65712, 983304, 3869, 11937, 5725,
- 127539, 1783, 68648, 5728, 0, 0, 0, 11918, 66567, 5724, 0, 5727, 78521,
- 0, 0, 764, 0, 128116, 43531, 0, 9033, 0, 42532, 6223, 11042, 120749,
- 11423, 0, 119861, 71344, 43465, 0, 128267, 6559, 64557, 71348, 92649,
- 120648, 43019, 43477, 10238, 74491, 0, 43377, 92282, 71346, 1478, 9783,
- 11825, 2607, 64740, 0, 7739, 74543, 0, 0, 0, 6132, 0, 63765, 0, 70058,
- 41144, 0, 92438, 43537, 6761, 10093, 4369, 917791, 0, 983148, 8820, 3947,
- 0, 0, 11515, 526, 128103, 41295, 194603, 917785, 194932, 0, 7688, 917786,
- 7686, 8288, 11815, 0, 0, 983382, 1543, 3713, 41221, 12423, 42281, 917788,
- 74024, 12293, 0, 64357, 11794, 42082, 0, 1737, 8987, 42081, 0, 7205, 0,
- 9335, 12850, 119870, 6553, 7055, 0, 8277, 0, 0, 5475, 74795, 6780, 0, 0,
- 12990, 1160, 42084, 119650, 41217, 119660, 10018, 360, 0, 0, 68176, 5863,
- 3137, 0, 4147, 983170, 41216, 7844, 2616, 119190, 68461, 65234, 983294,
- 13076, 3135, 983287, 78143, 119139, 3142, 92451, 94068, 10819, 119580,
- 10183, 0, 2608, 1470, 73967, 94008, 6227, 0, 127173, 69741, 983582, 6163,
- 983558, 0, 127314, 0, 0, 8603, 0, 119866, 3306, 10876, 43392, 119573,
- 127931, 5751, 0, 6222, 0, 0, 12086, 7403, 1600, 64309, 64939, 0, 64783,
- 92658, 11310, 0, 8882, 0, 0, 2570, 7021, 0, 0, 43110, 0, 1234, 6540,
- 6974, 0, 0, 983211, 5002, 0, 41286, 69946, 127019, 0, 43585, 0, 6551,
- 983962, 128229, 0, 41289, 0, 194602, 0, 8977, 602, 120814, 0, 128778,
- 128661, 0, 983375, 41279, 0, 0, 0, 11081, 43615, 0, 0, 0, 983612, 12727,
- 0, 0, 78397, 9475, 7112, 65105, 0, 9633, 10886, 43592, 7831, 983829,
- 194571, 0, 73915, 8076, 43048, 8290, 8291, 43051, 92570, 0, 2596, 43584,
- 0, 13113, 0, 127757, 2393, 7058, 9087, 74067, 68673, 41574, 78337, 0,
- 74058, 6376, 0, 0, 0, 0, 9854, 127748, 64696, 0, 128220, 0, 6994, 0,
- 1720, 0, 0, 0, 6529, 7063, 983182, 3751, 9120, 983485, 0, 1798, 709, 0,
- 1354, 1876, 13152, 6557, 12430, 8137, 94098, 92642, 0, 0, 245, 128097,
- 11456, 41233, 7070, 0, 94046, 6136, 917609, 65677, 8682, 41235, 92595,
- 42045, 9804, 118963, 432, 3595, 194945, 65437, 0, 74455, 42399, 0, 0,
- 128274, 0, 119658, 0, 0, 0, 77894, 8797, 0, 9052, 64888, 7167, 2356, 95,
- 74784, 10580, 0, 42286, 0, 64640, 0, 94109, 0, 74137, 70035, 10063,
- 12652, 12199, 92480, 0, 2566, 11971, 983737, 0, 1065, 0, 0, 43400, 2576,
- 66696, 93999, 0, 43604, 0, 0, 74082, 514, 74502, 70032, 2921, 43215,
- 64493, 5772, 12968, 70055, 194944, 74580, 43398, 2580, 983810, 41341,
- 41223, 6564, 1463, 41342, 0, 5293, 70020, 0, 3733, 11346, 0, 12054, 0,
- 74098, 42827, 0, 13091, 0, 0, 0, 917915, 0, 127025, 0, 74821, 0, 983733,
- 119042, 0, 127865, 13090, 66643, 0, 1270, 1132, 42360, 0, 74096, 66655,
- 42569, 127824, 0, 64761, 0, 41021, 8510, 42432, 0, 0, 194782, 0, 64496,
- 74109, 70030, 9915, 0, 983218, 7061, 41336, 3854, 69700, 13141, 68413,
- 43401, 42319, 13082, 0, 7067, 68221, 0, 127383, 127171, 0, 0, 127797,
- 9029, 43543, 119315, 2353, 6308, 0, 74792, 2611, 119186, 0, 0, 0, 43664,
- 92399, 66627, 0, 4484, 8509, 118976, 11066, 65233, 0, 41224, 41017, 0,
- 3747, 10522, 0, 0, 1691, 41226, 0, 12107, 7100, 10905, 65010, 194986,
- 697, 66018, 9284, 4244, 0, 0, 92644, 13121, 120036, 0, 12010, 128573,
- 128221, 0, 0, 0, 127193, 65816, 68111, 0, 127933, 65668, 92257, 6618,
- 118784, 66365, 0, 42234, 12648, 78110, 7123, 70038, 5785, 9198, 9764,
- 41316, 65877, 7383, 13230, 41299, 0, 0, 68365, 128258, 0, 0, 0, 13122, 0,
- 191, 70060, 8585, 8000, 64411, 120652, 42889, 64850, 41072, 41578, 0,
- 41577, 0, 10002, 0, 6533, 73802, 41570, 0, 683, 396, 41580, 68146, 0,
- 12901, 43058, 0, 343, 7129, 42680, 41360, 78154, 0, 4743, 0, 0, 74040,
- 74108, 8743, 1724, 1433, 119322, 0, 3739, 6263, 71349, 0, 3964, 6592, 0,
- 128693, 66040, 0, 42568, 69806, 128113, 1778, 3956, 0, 42070, 6563,
- 43075, 9018, 94006, 983396, 12067, 41312, 0, 5547, 74531, 127969, 0,
- 8175, 0, 284, 8108, 934, 0, 74001, 173, 66460, 7174, 92703, 118822, 1750,
- 0, 4394, 68368, 1807, 983888, 92298, 0, 5889, 0, 7180, 0, 119145, 0,
- 917558, 42471, 6982, 1721, 44022, 7891, 42243, 42160, 2583, 4512, 119360,
- 65230, 128109, 0, 0, 3855, 0, 0, 0, 0, 74295, 0, 0, 92416, 3975, 0,
- 74087, 0, 12672, 3798, 2703, 983599, 0, 2109, 9774, 1275, 0, 0, 41095,
- 3962, 0, 2932, 41101, 3954, 6457, 4513, 0, 0, 73994, 73992, 1468, 0, 0,
- 41851, 128230, 41846, 0, 55238, 7633, 41849, 68385, 4320, 3224, 0,
- 128032, 0, 42531, 119108, 1510, 0, 8256, 0, 11393, 0, 8879, 128075,
- 92474, 8770, 0, 0, 78377, 1910, 8671, 78374, 4283, 0, 127117, 68361,
- 78318, 2654, 7893, 195007, 0, 0, 0, 65106, 42761, 12857, 4581, 8411,
- 78372, 78371, 78370, 78369, 78368, 0, 0, 0, 1733, 4392, 2568, 10786,
- 69661, 0, 8184, 41486, 0, 7396, 7116, 0, 69788, 0, 7185, 7965, 0, 0,
- 92347, 983087, 41350, 9129, 0, 0, 2294, 0, 92489, 0, 10481, 0, 70022,
- 7171, 0, 340, 92498, 93972, 0, 0, 92200, 0, 0, 6764, 127487, 0, 0, 0, 0,
- 65203, 11392, 119098, 119359, 0, 3210, 0, 0, 118795, 0, 0, 127970,
- 917619, 0, 0, 10043, 0, 1186, 41571, 6999, 617, 9464, 126642, 3675, 5207,
- 65062, 5213, 194769, 2617, 41348, 41568, 128803, 3253, 120535, 0, 8630,
- 128544, 0, 5596, 5545, 7288, 2586, 64887, 0, 5217, 71336, 0, 0, 0, 64293,
- 68098, 2635, 0, 0, 983846, 0, 983641, 7835, 70040, 0, 194988, 92285,
- 64558, 127122, 0, 127121, 0, 127913, 0, 5784, 983102, 0, 0, 70033, 4011,
- 917616, 68101, 0, 7864, 4254, 65095, 983496, 5600, 3903, 127083, 10447,
- 5598, 1207, 120521, 66689, 3501, 42582, 43600, 194780, 0, 1124, 5597,
- 194778, 194772, 9321, 983484, 983481, 983482, 0, 1719, 68356, 68354,
- 9671, 1125, 4399, 127479, 917610, 983488, 7631, 5488, 7128, 120532, 0,
- 5491, 0, 8937, 43044, 2604, 74187, 5490, 43046, 5489, 7212, 11768, 43043,
- 6300, 0, 7122, 0, 4390, 454, 41397, 0, 9875, 7593, 194791, 92274, 118913,
- 7207, 0, 65901, 2394, 2575, 0, 3746, 11016, 65752, 120037, 0, 43423,
- 128683, 11989, 0, 0, 0, 0, 0, 8249, 128172, 0, 78531, 6640, 74806, 2598,
- 513, 0, 6586, 8656, 0, 120710, 65008, 0, 194784, 194989, 194795, 983473,
- 92515, 68475, 93973, 0, 0, 78637, 12647, 0, 128043, 69893, 1036, 983477,
- 92419, 1723, 128056, 74217, 0, 41579, 2444, 0, 10705, 73876, 983469,
- 74486, 983467, 740, 119222, 194978, 194984, 0, 4238, 11071, 9459, 68437,
- 78140, 78139, 194985, 8121, 10438, 74487, 42574, 13285, 55263, 11907,
- 195000, 5690, 92255, 93992, 0, 43181, 13095, 0, 127857, 64498, 0, 9506,
- 6978, 194993, 77992, 0, 0, 194992, 0, 127845, 1122, 317, 0, 0, 0, 0,
- 1920, 0, 10173, 827, 0, 0, 78378, 120126, 5223, 1304, 0, 119564, 5226,
- 12602, 94044, 0, 9329, 7758, 9239, 41173, 5224, 5487, 1222, 5692, 41725,
- 69229, 9674, 5695, 41711, 64627, 19909, 0, 74604, 5691, 287, 866, 233,
- 127490, 983441, 42816, 94036, 65140, 74797, 0, 8830, 6568, 42300, 10524,
- 41175, 983448, 983445, 983446, 5296, 983444, 42492, 43402, 92466, 3302,
- 0, 0, 6516, 6515, 6514, 6513, 6512, 0, 7856, 8690, 0, 0, 12122, 119602,
- 43976, 0, 1785, 69925, 68622, 65153, 194810, 5138, 0, 0, 118869, 0, 4540,
- 41181, 0, 6200, 0, 5134, 0, 322, 4643, 5132, 0, 6389, 128533, 5143, 0,
- 8790, 128694, 0, 194802, 0, 8869, 69916, 0, 42060, 71326, 9648, 194804,
- 127012, 10270, 10286, 10318, 10382, 43529, 66477, 0, 0, 74170, 0, 3234,
- 0, 0, 74376, 43139, 118815, 127084, 120627, 8767, 0, 74489, 9695, 120746,
- 5201, 0, 6215, 12714, 6214, 13101, 0, 194999, 65268, 0, 0, 0, 11027, 0,
- 10059, 10511, 42075, 9767, 789, 1749, 78890, 127071, 983670, 320, 0,
- 8647, 0, 3049, 0, 6471, 42071, 43156, 9925, 127356, 127355, 66478, 4960,
- 5549, 127359, 127346, 8485, 4671, 5418, 127350, 3351, 127006, 127351,
- 10610, 5414, 3064, 6212, 4286, 5421, 127344, 9554, 0, 94048, 127109,
- 6653, 128811, 0, 64510, 6213, 12885, 0, 119045, 64720, 0, 120759, 73741,
- 12603, 7131, 11430, 4566, 7518, 9317, 3801, 10342, 10406, 0, 119259,
- 42576, 0, 5200, 126611, 917948, 0, 9183, 127361, 74458, 73825, 395, 5482,
- 5198, 4349, 10390, 74202, 5196, 43224, 6113, 42009, 5205, 0, 43307, 0,
- 118973, 0, 12134, 0, 0, 118843, 9126, 435, 983624, 12014, 10377, 8093,
- 9079, 3203, 192, 65109, 3385, 0, 64430, 5383, 10294, 10326, 128178, 5738,
- 983215, 3336, 78355, 5361, 3623, 41159, 0, 68112, 7872, 8581, 0, 1260,
- 3149, 5359, 120134, 0, 7914, 5357, 92170, 128659, 2624, 5364, 0, 11431,
- 120030, 9101, 11058, 78288, 0, 78293, 42271, 78289, 42917, 120793, 0,
- 65566, 6717, 10619, 43360, 78385, 78384, 11832, 78382, 78381, 78380,
- 78379, 9319, 7097, 119055, 77906, 3232, 73824, 74581, 120632, 0, 0,
- 41889, 92453, 0, 1161, 41895, 74103, 9701, 8622, 0, 0, 73819, 120588,
- 5012, 77912, 41362, 69862, 78296, 11921, 0, 11769, 0, 68609, 41364, 0,
- 74228, 41352, 41361, 0, 41366, 0, 3356, 11611, 917, 68422, 119915, 7134,
- 8199, 78389, 119917, 677, 119916, 0, 119932, 127169, 0, 0, 0, 3349,
- 74125, 7022, 8927, 4739, 0, 5802, 0, 8615, 0, 0, 491, 128819, 10190,
- 120698, 65837, 128820, 8426, 11092, 9891, 0, 42497, 7113, 7586, 42305,
- 10852, 0, 0, 4606, 68448, 9095, 7741, 12684, 41885, 1046, 7124, 0, 0,
- 5815, 5171, 65539, 68612, 6932, 74267, 42394, 41878, 74849, 120621, 0,
- 5169, 11935, 0, 0, 3175, 120822, 1537, 120804, 5176, 8905, 4136, 4871,
- 78287, 0, 9833, 0, 0, 1128, 65920, 0, 9711, 7057, 9408, 9409, 9410, 9411,
- 3662, 9413, 3378, 9415, 9416, 9417, 9418, 6320, 9420, 9421, 5897, 9423,
- 5165, 5126, 41385, 0, 41389, 917938, 8955, 3374, 9400, 9401, 7119, 9403,
- 9404, 3507, 9406, 7629, 983617, 19925, 42669, 68463, 183, 43985, 2631, 0,
- 10627, 41130, 78260, 3996, 0, 78771, 0, 119313, 119307, 78768, 6580,
- 4332, 64825, 66329, 10726, 66686, 41125, 5899, 41365, 917918, 12085, 0,
- 574, 917922, 77825, 73828, 5448, 41058, 5446, 69709, 41322, 42211, 5442,
- 4190, 77834, 77835, 5451, 77833, 3616, 77828, 77837, 77838, 7708, 77836,
- 10859, 65867, 10345, 10409, 4191, 0, 77844, 73800, 42181, 77843, 77839,
- 2060, 0, 7111, 11788, 65587, 68129, 10415, 74102, 0, 205, 0, 10351,
- 119076, 0, 9862, 6588, 43257, 64697, 73998, 41355, 5505, 119154, 5503,
- 8021, 0, 7125, 9819, 41357, 8011, 42885, 5507, 12044, 92636, 0, 10026,
- 5472, 7109, 1191, 13106, 5470, 10329, 5476, 8991, 66322, 69778, 78267,
- 42874, 8550, 42876, 5592, 2919, 0, 2675, 5595, 78411, 43762, 4367, 0, 0,
- 5478, 5904, 5594, 0, 74150, 7291, 5590, 43761, 13067, 118909, 120372,
- 983108, 9731, 69731, 64633, 77857, 77854, 77855, 77852, 77853, 77850,
- 10750, 43714, 77858, 7137, 0, 128296, 12887, 10551, 194564, 77866, 77867,
- 77864, 77865, 9929, 5199, 9936, 1120, 42387, 0, 1444, 9486, 7554, 65839,
- 55252, 73972, 1442, 0, 5894, 70069, 0, 41171, 92511, 74313, 0, 13162, 0,
- 3334, 195010, 118803, 77881, 66022, 0, 0, 1651, 128771, 8861, 0, 0, 1142,
- 0, 8271, 0, 983058, 126645, 12903, 0, 4002, 43626, 10442, 10676, 3344, 0,
- 0, 12920, 194560, 0, 0, 66642, 1277, 0, 7871, 0, 194686, 78853, 0, 78854,
- 120360, 0, 11784, 0, 78012, 4700, 66366, 78858, 120359, 11012, 0, 78856,
- 92400, 77879, 4973, 8784, 77877, 74804, 77874, 77869, 77871, 42440, 0,
- 43118, 0, 42364, 6774, 6773, 917560, 120369, 10346, 10410, 78859, 9243,
- 2464, 74263, 6108, 3372, 0, 6247, 43117, 74526, 7121, 74166, 0, 120355,
- 92537, 0, 0, 195034, 0, 0, 0, 70083, 3354, 195037, 4192, 9289, 118999,
- 41191, 3876, 0, 70067, 120660, 43696, 43380, 0, 983091, 0, 0, 11603,
- 983954, 0, 6589, 128588, 194679, 0, 0, 983700, 0, 0, 42572, 128264,
- 10630, 74827, 1963, 11622, 127098, 11654, 0, 7550, 10686, 5903, 0, 78009,
- 41329, 9662, 917937, 64698, 3366, 10399, 0, 5542, 11013, 127927, 128300,
- 0, 78621, 194672, 6925, 0, 0, 917929, 0, 11568, 983673, 43367, 64579,
- 917930, 7852, 0, 0, 6754, 6312, 0, 64672, 65296, 0, 118957, 0, 416,
- 12296, 68457, 73834, 68177, 11050, 10984, 92208, 0, 0, 92182, 0, 983605,
- 9532, 66355, 0, 983234, 917925, 64343, 195032, 128281, 195031, 0, 195030,
- 195057, 11445, 0, 2112, 195056, 128814, 10185, 1021, 128130, 9507, 10210,
- 74544, 8023, 1200, 12243, 78001, 5282, 78003, 9624, 11545, 0, 120493,
- 3343, 4424, 11047, 1885, 43268, 3896, 78444, 66497, 2947, 392, 7894,
- 4391, 68139, 983062, 13059, 74816, 77998, 3381, 7942, 0, 69219, 0, 64757,
- 0, 3913, 0, 0, 78235, 7044, 1265, 0, 6309, 7045, 7175, 7047, 78239,
- 11791, 0, 0, 8221, 78307, 41864, 0, 0, 0, 0, 167, 983906, 78301, 983653,
- 74211, 41897, 68477, 0, 917583, 983634, 94065, 2493, 0, 118811, 0, 0,
- 64354, 0, 8777, 0, 406, 8884, 2385, 0, 92450, 0, 917573, 43030, 42027,
- 12114, 0, 917579, 64936, 194695, 0, 120629, 10561, 0, 8365, 120539,
- 983774, 65841, 120787, 11601, 0, 74121, 0, 917575, 7834, 74159, 0,
- 917574, 10298, 6624, 4908, 917596, 1639, 0, 0, 74157, 6327, 6724, 0,
- 128086, 92566, 69910, 4817, 78446, 194759, 92536, 7043, 9600, 11022, 0,
- 0, 0, 0, 0, 0, 7548, 64794, 42050, 12291, 55289, 194761, 12343, 657,
- 195054, 42705, 4461, 1134, 1838, 78438, 2057, 0, 4468, 0, 0, 0, 4456,
- 5206, 10720, 0, 42523, 127520, 0, 0, 917595, 65550, 260, 4816, 67658,
- 10687, 0, 4821, 4466, 0, 195043, 4818, 195048, 41403, 119977, 0, 0,
- 41406, 43273, 74160, 119983, 73939, 92638, 119984, 119979, 41404, 1165,
- 119980, 4451, 13087, 0, 11284, 119987, 70097, 65155, 43014, 5439, 9363,
- 70070, 3375, 128869, 5900, 93990, 7889, 2722, 42262, 0, 0, 128774, 0,
- 2282, 0, 127810, 11401, 983822, 0, 68459, 0, 0, 0, 0, 65438, 0, 7280,
- 127887, 0, 127381, 4868, 8297, 119966, 118798, 0, 0, 43161, 0, 92360, 0,
- 5182, 0, 120542, 0, 0, 4226, 119243, 12135, 5732, 4464, 0, 71330, 977,
- 4458, 0, 0, 64770, 74838, 0, 344, 0, 194790, 1395, 64279, 0, 92240, 0,
- 786, 0, 43174, 64340, 0, 194767, 120723, 43026, 7612, 10132, 64413,
- 65025, 0, 0, 0, 93956, 0, 68444, 0, 92437, 0, 119160, 10204, 92656, 0,
- 127809, 983644, 1399, 983652, 65217, 0, 8852, 128571, 241, 128780, 4907,
- 0, 983639, 7932, 9727, 128873, 74255, 8748, 0, 0, 983643, 0, 42780, 0, 0,
- 0, 4217, 0, 8650, 0, 0, 0, 69900, 118872, 43099, 3965, 119119, 6719, 0,
- 13300, 78439, 93971, 43057, 66588, 118991, 0, 0, 73815, 4420, 0, 6410,
- 7760, 0, 0, 0, 0, 0, 7294, 0, 0, 0, 9066, 0, 11993, 43188, 2626, 7762, 0,
- 0, 0, 92601, 42825, 41854, 5304, 0, 78516, 6919, 8619, 119655, 10038,
- 66454, 9592, 42851, 126993, 1542, 92303, 0, 0, 0, 0, 74311, 78497, 0,
- 10181, 0, 43624, 0, 7779, 0, 10195, 9479, 6029, 0, 92268, 9689, 0, 65577,
- 8993, 66358, 0, 42378, 3368, 606, 127030, 7697, 69237, 69787, 2030, 0,
- 6027, 8370, 4322, 0, 65207, 0, 983339, 983338, 983337, 983336, 2735,
- 42831, 77935, 127120, 74866, 8881, 119047, 0, 0, 73946, 0, 0, 0, 68140,
- 983928, 9576, 128872, 3347, 4160, 5154, 55288, 3794, 66564, 8530, 127063,
- 7709, 41112, 983132, 66560, 42041, 4572, 12876, 66561, 983758, 6758,
- 983926, 1615, 5855, 809, 0, 92283, 128316, 128004, 5799, 983328, 70100,
- 983326, 7260, 983324, 43031, 64425, 65128, 78819, 64386, 65257, 0, 68616,
- 120607, 9347, 128067, 6532, 0, 0, 0, 127060, 65828, 0, 283, 68665, 78813,
- 532, 78663, 0, 983796, 120609, 0, 3370, 0, 11361, 5443, 78778, 8153,
- 73767, 0, 10741, 0, 2298, 0, 983917, 65495, 64706, 983318, 43344, 983316,
- 7144, 9466, 78866, 9824, 983311, 983310, 0, 0, 915, 43425, 0, 0, 0, 0,
- 127178, 43264, 70096, 0, 0, 43038, 78864, 6730, 78862, 68161, 64550,
- 5186, 7360, 127837, 0, 12108, 0, 65124, 43127, 66043, 0, 6326, 43107,
- 77826, 0, 42562, 0, 128821, 0, 128520, 11485, 6103, 127123, 983305,
- 11718, 983303, 12889, 92657, 127137, 0, 0, 0, 55245, 0, 1630, 128232,
- 65483, 0, 12565, 0, 65476, 120013, 0, 119554, 9283, 7700, 917537, 9690,
- 65499, 0, 64593, 512, 3376, 68210, 0, 128677, 77892, 632, 12940, 77891,
- 42529, 78587, 0, 5957, 110593, 8926, 983299, 983298, 128273, 10745,
- 10174, 7379, 64581, 5386, 120686, 11713, 10633, 69708, 5056, 0, 0, 0,
- 120773, 0, 9812, 0, 4460, 0, 0, 71307, 128038, 0, 0, 127174, 64278,
- 92370, 43466, 0, 0, 64389, 2953, 73879, 1801, 12835, 119029, 0, 73823, 0,
- 66375, 2085, 702, 42579, 77884, 77885, 13074, 77883, 983286, 983285,
- 128570, 12106, 983282, 74207, 1755, 10482, 12863, 77898, 1163, 2951,
- 9522, 74079, 78266, 66604, 0, 3384, 69227, 10702, 830, 77902, 77899,
- 77900, 8451, 0, 0, 0, 69739, 0, 0, 0, 0, 2908, 0, 43386, 64902, 4243, 0,
- 12239, 0, 0, 4441, 0, 983279, 73940, 64352, 127513, 983275, 411, 983273,
- 9199, 983271, 4056, 118992, 41890, 0, 2730, 41604, 983937, 5428, 194743,
- 3364, 42265, 64437, 127935, 118816, 194742, 9684, 216, 0, 1401, 128053,
- 44012, 0, 0, 92585, 9158, 77842, 69905, 5768, 0, 0, 0, 484, 194739, 0, 0,
- 65895, 0, 0, 3338, 73935, 572, 7041, 2736, 67605, 983263, 93962, 2794,
- 8807, 64491, 77847, 5438, 5222, 5381, 43114, 0, 5193, 5125, 5456, 5509,
- 77846, 194747, 9534, 0, 0, 0, 3430, 0, 0, 78717, 0, 981, 0, 4330, 73929,
- 120536, 1824, 10908, 0, 7034, 41683, 64617, 0, 73754, 3957, 64358, 64547,
- 128259, 674, 63991, 983249, 2946, 5354, 5251, 5328, 5307, 3759, 11411,
- 8364, 5123, 119628, 5281, 5469, 5121, 119245, 118993, 0, 5130, 0, 0,
- 77990, 0, 120726, 1221, 2733, 11746, 77991, 5216, 0, 0, 0, 0, 3468, 7033,
- 9230, 5939, 195052, 0, 0, 120677, 68400, 7278, 10321, 10289, 64613,
- 10385, 41706, 0, 0, 983413, 0, 11739, 983426, 41981, 0, 5938, 0, 43766,
- 12448, 7576, 10401, 10337, 73852, 0, 13057, 0, 126976, 0, 10009, 0,
- 41703, 983638, 12165, 0, 0, 9885, 0, 8077, 0, 127908, 0, 0, 0, 92457, 0,
- 4220, 10725, 10433, 0, 68395, 4987, 64519, 0, 128340, 0, 0, 0, 10970,
- 11733, 0, 120792, 0, 19944, 0, 9009, 8551, 92345, 11468, 64636, 7575, 0,
- 2724, 0, 0, 12313, 110592, 515, 119947, 42791, 63987, 78286, 119943,
- 119940, 119941, 119938, 9775, 4046, 4589, 4521, 68629, 9141, 0, 78850,
- 2741, 64399, 6197, 1370, 0, 0, 0, 0, 0, 0, 6184, 8606, 3303, 41372,
- 11786, 9473, 66203, 66177, 92446, 11593, 43007, 4478, 66178, 0, 0, 2744,
- 0, 4477, 118964, 814, 42066, 66183, 66204, 43786, 119961, 66198, 41880,
- 66188, 11623, 78148, 11955, 66190, 66191, 41111, 66189, 73788, 7788,
- 4847, 0, 127759, 0, 0, 0, 1581, 6535, 78161, 12954, 430, 78160, 55259,
- 78158, 128036, 5278, 4945, 42883, 4950, 983438, 68625, 983436, 7269, 0,
- 5964, 12908, 983555, 0, 74764, 74477, 119146, 194936, 4949, 983429, 443,
- 983427, 4944, 5467, 119603, 983254, 65137, 6044, 65392, 0, 4213, 0,
- 41303, 0, 194931, 119962, 41306, 73984, 2698, 127159, 0, 12072, 3193, 0,
- 41304, 824, 128676, 12091, 78893, 78894, 119816, 4673, 64804, 4678,
- 119820, 119819, 65059, 0, 6739, 0, 5481, 3490, 1199, 119811, 8356, 69947,
- 119832, 4677, 12688, 3102, 0, 4672, 78173, 78175, 5531, 68367, 42575,
- 78170, 78166, 4674, 4548, 44005, 119949, 68658, 119946, 8025, 68630,
- 127024, 1855, 983412, 68669, 983410, 92445, 127554, 0, 127339, 119652,
- 2745, 11797, 983418, 128159, 9202, 4654, 983414, 983416, 68638, 73993,
- 10525, 4649, 65209, 983417, 0, 4648, 43080, 983406, 983407, 983404, 6246,
- 64950, 7828, 4650, 6777, 6776, 6775, 4653, 7822, 78005, 92384, 43187,
- 8669, 983415, 6821, 65093, 0, 78881, 2716, 0, 983060, 983419, 0, 68369,
- 120054, 11060, 8547, 2711, 42165, 78027, 78026, 7992, 0, 0, 4662, 78033,
- 78032, 9149, 9146, 599, 2081, 78031, 78030, 194962, 4656, 10130, 68450,
- 7811, 40994, 194965, 6414, 5967, 4658, 3725, 5713, 5814, 4661, 42434,
- 983411, 0, 0, 64904, 9026, 10833, 74864, 7547, 4867, 0, 10008, 10222,
- 3054, 194956, 9744, 78860, 7605, 4622, 119656, 983395, 94070, 983393,
- 983394, 983391, 9045, 78888, 4225, 19926, 78887, 12880, 65307, 4617,
- 78883, 983386, 41732, 4616, 10518, 10423, 10359, 983380, 5958, 0, 983433,
- 4215, 9789, 917941, 4321, 4621, 983389, 41313, 522, 5368, 0, 65803, 0,
- 5366, 12201, 5372, 0, 983409, 0, 7720, 7390, 2696, 983400, 0, 4638,
- 983405, 1790, 78242, 5965, 64363, 66569, 68646, 127833, 5376, 1835, 5335,
- 194966, 128089, 4633, 0, 68119, 1180, 4632, 128093, 5387, 5333, 0, 0,
- 42094, 5331, 4634, 11928, 983594, 5338, 4637, 128170, 5971, 42414, 0,
- 1268, 65097, 42361, 0, 0, 73853, 1427, 0, 0, 5970, 3431, 0, 10358, 10422,
- 4758, 983374, 1608, 2738, 0, 10455, 4753, 74026, 11344, 4222, 6240, 5231,
- 74384, 983378, 68377, 6248, 983362, 983363, 983360, 42318, 92582, 5229,
- 4757, 0, 0, 2728, 4752, 64563, 65235, 5234, 0, 128145, 0, 10713, 7166, 0,
- 2622, 7460, 127302, 0, 0, 8954, 74760, 65189, 2632, 42617, 10108, 1011,
- 5574, 1853, 2709, 65139, 5577, 0, 0, 118871, 68641, 8965, 7635, 42177,
- 5316, 0, 5314, 6451, 5572, 66464, 5312, 0, 5525, 5330, 5319, 983420,
- 983872, 194907, 44003, 0, 983480, 983423, 120498, 127851, 195009, 983865,
- 74022, 983422, 64609, 68643, 120634, 983489, 5721, 983401, 5519, 8632,
- 66465, 11267, 73961, 92278, 5720, 983352, 1692, 4219, 4610, 8696, 4305,
- 0, 4609, 43478, 4614, 541, 983355, 5287, 5309, 5285, 68389, 5961, 4647,
- 56, 4216, 10577, 41381, 601, 4613, 983349, 983346, 77849, 4608, 64260,
- 41124, 5190, 67628, 0, 68145, 7086, 0, 67998, 67620, 0, 2734, 11074, 0,
- 67627, 43593, 0, 67625, 5960, 0, 8992, 42593, 128260, 1782, 67622, 68114,
- 119939, 0, 68180, 5501, 119952, 42508, 7442, 43665, 359, 41253, 68392,
- 6239, 119956, 41256, 0, 68134, 0, 74209, 917550, 9346, 69660, 41254,
- 128047, 43291, 3767, 5737, 0, 4865, 0, 5740, 917997, 5736, 4368, 64724,
- 7193, 68137, 0, 5739, 41024, 4866, 0, 73904, 983840, 4869, 120563, 0,
- 4223, 128201, 6650, 126509, 0, 983463, 127890, 4870, 120445, 68661, 6716,
- 78176, 68667, 68382, 68676, 127925, 10122, 4864, 66568, 4144, 7937, 0,
- 6245, 68652, 2732, 42734, 745, 0, 195097, 92195, 4777, 7821, 0, 68631,
- 42775, 0, 194954, 0, 3097, 0, 5966, 983486, 4778, 0, 10863, 0, 4781, 0,
- 64407, 0, 128323, 8577, 128562, 68196, 43285, 10216, 4782, 0, 0, 120757,
- 68618, 12325, 43056, 8717, 0, 0, 4776, 73818, 11492, 8700, 0, 13176,
- 68363, 10426, 0, 917599, 10362, 194706, 1715, 4849, 8242, 9561, 73922,
- 43278, 42635, 0, 0, 5963, 917926, 0, 0, 4850, 0, 1607, 466, 4853, 118995,
- 4854, 127918, 5164, 983870, 1350, 5124, 64420, 1993, 5362, 8471, 2708,
- 92471, 12445, 3785, 234, 3199, 0, 41268, 4848, 2530, 917909, 2068, 1964,
- 0, 73762, 10458, 0, 8576, 78543, 0, 2704, 4794, 0, 68211, 8322, 4797,
- 5753, 0, 2694, 4792, 0, 2439, 65104, 69804, 983424, 303, 983101, 92622,
- 983425, 2437, 0, 4221, 4844, 92216, 0, 0, 0, 70042, 0, 43292, 0, 2441,
- 10739, 65090, 0, 119327, 126541, 2451, 2714, 119326, 0, 43379, 4937,
- 43376, 753, 5849, 10597, 43089, 11722, 9248, 92555, 42879, 11725, 0, 0,
- 2726, 3107, 73958, 4941, 64937, 119233, 9140, 1408, 5261, 4607, 0, 181,
- 983430, 4942, 9539, 4938, 0, 65201, 5259, 9369, 64185, 4142, 5257,
- 983601, 0, 4964, 5264, 64178, 64177, 12979, 41411, 64182, 64181, 64180,
- 64179, 9482, 4873, 41231, 1822, 42526, 128581, 12758, 3865, 0, 0, 10500,
- 0, 119024, 78028, 92408, 9830, 43642, 389, 10893, 7521, 127879, 4872,
- 5463, 0, 3125, 9567, 0, 4878, 5459, 4604, 917931, 9557, 5465, 68617, 0,
- 11494, 126492, 9563, 10865, 74570, 43279, 64186, 983439, 78714, 64191,
- 64190, 8898, 64188, 0, 41030, 78836, 0, 917835, 78820, 917834, 0, 78805,
- 41031, 78801, 11960, 6745, 3082, 983437, 78539, 73919, 10573, 41744,
- 7079, 5856, 127043, 5163, 78809, 128162, 1817, 66724, 78538, 0, 10564,
- 7763, 13077, 41813, 4400, 41745, 64207, 10275, 8925, 10371, 10307, 41814,
- 4248, 0, 0, 4541, 6299, 64204, 64203, 64201, 64200, 64199, 64198, 126471,
+ 77836, 64528, 1169, 434, 41437, 1905, 6034, 41164, 64744, 9528, 67741,
+ 128800, 524, 0, 74029, 788, 74027, 194667, 71881, 0, 1663, 10419, 42901,
+ 42636, 67211, 67210, 129147, 120656, 67215, 67214, 67213, 67212, 0,
+ 67897, 74039, 0, 0, 11395, 0, 119107, 43612, 64344, 194732, 0, 10855,
+ 5445, 9355, 67221, 65198, 7391, 8989, 221, 65686, 983874, 119238, 8010,
+ 7191, 4962, 69772, 8855, 74612, 70820, 64469, 92592, 10555, 67227, 43333,
+ 67225, 128483, 120427, 10451, 67229, 67653, 7245, 12443, 74405, 9947,
+ 120149, 78317, 3873, 8367, 77842, 120146, 43433, 43649, 11987, 83343,
+ 983581, 11010, 11164, 74059, 74062, 6217, 5896, 43846, 7682, 74049, 1462,
+ 10235, 0, 0, 983325, 43441, 127924, 127777, 42595, 126641, 74402, 118860,
+ 78661, 120419, 92497, 66287, 120420, 92378, 120549, 119082, 64295,
+ 120418, 0, 64765, 73923, 83210, 120662, 69920, 194702, 6216, 67230,
+ 10755, 9455, 11155, 8124, 127042, 9470, 6944, 121125, 0, 69680, 2828, 0,
+ 531, 42638, 194804, 917856, 120961, 43428, 8204, 3614, 2827, 9696,
+ 120365, 0, 8728, 4354, 10904, 78562, 19936, 7833, 120691, 120850, 42599,
+ 42597, 42709, 68829, 125012, 0, 8537, 127306, 0, 9354, 121244, 121348,
+ 41199, 10121, 2028, 74950, 120253, 69715, 128525, 3062, 0, 74447, 12608,
+ 983657, 66440, 7545, 9700, 11948, 92205, 120777, 120502, 41155, 68306,
+ 74071, 0, 983459, 12713, 127519, 70402, 0, 78772, 113770, 1734, 0, 78141,
+ 127040, 64594, 2456, 231, 68227, 74167, 542, 917981, 118786, 983859,
+ 194797, 1230, 125018, 121343, 3597, 4446, 10584, 74235, 92215, 4037,
+ 67737, 8352, 78436, 5687, 127018, 64515, 121378, 194801, 55265, 67846,
+ 78434, 9704, 0, 194573, 70080, 71338, 0, 8660, 126478, 0, 128569, 78773,
+ 74482, 4483, 1709, 69721, 9909, 6080, 194851, 120358, 1746, 1315, 8667,
+ 983101, 0, 13140, 65899, 10604, 0, 4480, 11266, 121114, 1226, 6930,
+ 67979, 195019, 6360, 10897, 41230, 605, 68302, 74785, 69875, 0, 121478,
+ 41500, 0, 311, 11453, 6221, 10608, 64943, 67682, 10877, 118868, 64885,
+ 74272, 0, 194672, 128559, 120736, 74312, 345, 124933, 74456, 64606, 9917,
+ 0, 74855, 5037, 119912, 1776, 8422, 128935, 118814, 41508, 41201, 323,
+ 43328, 0, 42698, 1295, 194853, 4625, 77855, 4630, 13117, 83002, 128772,
+ 65123, 11293, 2668, 11288, 0, 42640, 65666, 2519, 92369, 65420, 92479, 0,
+ 4252, 5049, 42659, 119011, 706, 7754, 10854, 8738, 983949, 65419, 0,
+ 128496, 649, 65421, 0, 66702, 983721, 12670, 1013, 0, 64919, 705, 0,
+ 65422, 127803, 1183, 126519, 7017, 42852, 917826, 8157, 9736, 64503,
+ 65418, 129050, 983878, 74035, 194918, 11913, 73874, 6696, 120916, 8920,
+ 119298, 128426, 7962, 12211, 9837, 2051, 66227, 0, 4184, 119825, 128598,
+ 10177, 73777, 1857, 194657, 4626, 8464, 8472, 68844, 4629, 8499, 74627,
+ 78322, 4624, 7818, 118861, 128108, 0, 7805, 128754, 94007, 6935, 92292,
+ 78325, 78326, 78323, 43327, 43989, 119046, 8492, 8250, 8459, 0, 8497,
+ 8496, 83499, 74582, 75052, 78339, 9543, 67860, 78332, 77832, 65849,
+ 77831, 983961, 194649, 12451, 74376, 8684, 128301, 6102, 0, 5298, 917847,
+ 5294, 0, 83016, 68043, 195062, 9949, 83014, 43617, 119215, 0, 12073, 0,
+ 128646, 77863, 13108, 120617, 11439, 41468, 83012, 0, 5292, 55272,
+ 983883, 1939, 5302, 3970, 917877, 12455, 1793, 124982, 0, 75036, 6643,
+ 92477, 65263, 0, 78330, 41293, 78328, 65923, 78835, 13219, 9569, 129041,
+ 74383, 0, 74197, 129089, 5500, 8813, 0, 128612, 68860, 5322, 120944,
+ 78340, 43631, 5324, 66443, 3784, 41614, 65269, 6230, 78349, 78345, 13282,
+ 3360, 78344, 11523, 0, 92488, 9926, 7197, 128248, 68429, 42894, 41821,
+ 1249, 78360, 78361, 78356, 78358, 78353, 64899, 64763, 41149, 41807,
+ 43162, 41815, 41150, 128911, 10571, 10096, 67161, 67160, 67159, 6947,
+ 41152, 887, 9249, 6565, 78510, 41990, 78509, 41811, 67157, 93966, 6670,
+ 67175, 67174, 0, 43092, 43325, 67178, 10168, 67176, 9781, 68248, 9190,
+ 128497, 9666, 8269, 65944, 74005, 13019, 11670, 69860, 315, 12813,
+ 129132, 72409, 78256, 72408, 78352, 0, 75063, 0, 0, 1378, 9509, 194634,
+ 92996, 72407, 3066, 92220, 67847, 72406, 92355, 917890, 78365, 8787,
+ 67189, 194616, 41618, 194615, 78261, 127384, 0, 64652, 121222, 121012, 0,
+ 78366, 42088, 71040, 195061, 7176, 43756, 10137, 6121, 10995, 78259,
+ 71050, 8119, 64874, 71052, 78174, 128690, 128630, 74525, 0, 0, 12930,
+ 1394, 74514, 128413, 74515, 983727, 67184, 2998, 9527, 67181, 65190,
+ 12977, 42090, 67185, 983647, 119100, 41236, 92235, 42005, 42003, 41237,
+ 5848, 67193, 67192, 3670, 67190, 67197, 67196, 67195, 7890, 128070,
+ 11298, 43315, 983315, 6229, 1593, 0, 125120, 619, 4635, 65080, 127158,
+ 12194, 4120, 65337, 65336, 128407, 11808, 67199, 67198, 9366, 42790,
+ 42006, 119115, 65327, 65326, 65325, 10757, 1507, 42216, 65321, 65320,
+ 43947, 65334, 43946, 65332, 65331, 42059, 65329, 42689, 92427, 9128,
+ 94045, 42073, 6785, 64590, 983830, 4371, 7196, 65318, 2035, 65316, 4106,
+ 65314, 65313, 42074, 127847, 41228, 120862, 65609, 41241, 7903, 41239,
+ 43533, 78459, 7189, 0, 0, 43941, 12357, 42802, 78450, 8487, 9131, 66292,
+ 4615, 12695, 127752, 0, 12175, 0, 64535, 0, 7809, 0, 121351, 562, 12169,
+ 6590, 69762, 66455, 64738, 3219, 68654, 121096, 128281, 1037, 128677,
+ 2025, 128263, 13098, 78442, 10637, 4568, 549, 1570, 43839, 2835, 83052,
+ 10624, 43623, 11072, 83045, 128523, 83046, 12606, 78433, 2825, 83048,
+ 10825, 8079, 2821, 41046, 92327, 7365, 83043, 120593, 13071, 121288, 452,
+ 41049, 42840, 6346, 2831, 5461, 74596, 11465, 5212, 917917, 64703,
+ 119191, 42308, 7181, 0, 41332, 0, 12333, 41047, 1668, 119849, 121150,
+ 128275, 1187, 983387, 42628, 78575, 82953, 71863, 82955, 3240, 128518,
+ 12151, 0, 11591, 41065, 5323, 8166, 0, 118932, 0, 66827, 1623, 65297,
+ 128856, 571, 0, 4918, 0, 5288, 127295, 1541, 65048, 1909, 8864, 0, 66402,
+ 10736, 92508, 11571, 7615, 70476, 92296, 4237, 92576, 1035, 65815, 68083,
+ 3567, 701, 65936, 3489, 120899, 70462, 70172, 11403, 0, 0, 82986, 3796,
+ 6800, 70472, 3994, 11421, 74611, 195076, 195078, 68036, 0, 0, 64857,
+ 83508, 2855, 74418, 66308, 41621, 68214, 83513, 127817, 10654, 82945,
+ 119226, 12164, 3246, 7906, 43972, 65847, 7182, 0, 13024, 66276, 74270,
+ 83069, 125090, 121115, 0, 1496, 747, 0, 942, 2378, 43136, 83031, 8466,
+ 83075, 9320, 8001, 1232, 8139, 11617, 74637, 0, 11409, 68373, 6382,
+ 126500, 64634, 92362, 70202, 11612, 93008, 67600, 2374, 94066, 8475,
+ 11609, 66313, 92568, 0, 5286, 119297, 83059, 983253, 64925, 120283,
+ 127204, 118982, 71905, 7705, 11942, 11305, 127203, 3309, 82979, 9206,
+ 82980, 113824, 6802, 70353, 41653, 1280, 1241, 7168, 12096, 0, 66615,
+ 42565, 41651, 0, 917627, 83042, 41650, 66507, 66470, 74472, 12914, 41491,
+ 43901, 94106, 6078, 9954, 78822, 1475, 119247, 9938, 6084, 917546, 41064,
+ 41062, 0, 113680, 3256, 10189, 42076, 43252, 78823, 68089, 8727, 120922,
+ 65875, 0, 0, 127762, 10562, 74215, 43065, 120906, 0, 3248, 74297, 3261,
+ 9015, 71351, 0, 3635, 64337, 92759, 125054, 0, 7195, 83346, 2007, 64431,
+ 195075, 0, 92197, 127090, 635, 0, 129082, 65613, 77909, 92420, 73997,
+ 128510, 121457, 43905, 7984, 8600, 74434, 127770, 4176, 70050, 2034,
+ 78423, 11154, 65891, 127038, 0, 318, 2038, 128544, 78596, 194602, 3649,
+ 13149, 42145, 42798, 3634, 120291, 71885, 67677, 120124, 7866, 75045,
+ 11402, 42146, 94032, 74238, 42664, 2849, 127034, 0, 7938, 12960, 1761,
+ 11812, 65379, 68386, 128185, 1159, 71183, 69729, 0, 120797, 7178, 120851,
+ 983836, 41680, 128469, 83098, 11534, 1514, 11668, 67891, 9313, 7015,
+ 128490, 67877, 194561, 12989, 66474, 9368, 12848, 1624, 43270, 0, 74278,
+ 10818, 83091, 9953, 194895, 78421, 1194, 3242, 9761, 9555, 8598, 120299,
+ 6169, 12871, 1551, 2798, 65176, 4958, 42752, 119025, 917924, 67875,
+ 120301, 3495, 66648, 125079, 83354, 68364, 120779, 4891, 0, 10641, 0,
+ 73746, 120945, 68352, 0, 73787, 128858, 127094, 7199, 11131, 0, 0, 0,
+ 983852, 126979, 42685, 42679, 193, 78789, 0, 0, 42667, 0, 5271, 68323,
+ 92517, 83356, 1362, 13297, 0, 71880, 0, 983333, 73789, 0, 6658, 4426, 0,
+ 66830, 983842, 83103, 7276, 42163, 5220, 0, 78621, 67822, 2416, 3310,
+ 42703, 83107, 379, 0, 43755, 70504, 43647, 3223, 65492, 1284, 194771,
+ 4549, 194738, 0, 71253, 70784, 10807, 9558, 93027, 0, 8515, 8688, 12866,
+ 65308, 3294, 83143, 8529, 128101, 43385, 7564, 0, 43329, 83148, 92458,
+ 73757, 66456, 42359, 128439, 2031, 983890, 7202, 128232, 12676, 42729,
+ 74777, 3215, 120982, 7710, 1610, 73801, 128807, 0, 65682, 0, 43917,
+ 65924, 9974, 228, 43922, 1501, 127994, 64395, 5179, 7200, 6225, 118927,
+ 42999, 1725, 65533, 8196, 7476, 74399, 0, 66868, 7152, 8502, 5762, 1967,
+ 7483, 43898, 0, 8104, 70128, 7474, 43914, 83080, 126507, 10414, 13001,
+ 8141, 983239, 42537, 1557, 43594, 128642, 6330, 6805, 8631, 2545, 42934,
+ 127166, 0, 74190, 128477, 70410, 983786, 42762, 194708, 42914, 1650, 262,
+ 1637, 128502, 7901, 3238, 83026, 41861, 0, 120211, 65158, 10860, 74959,
+ 43658, 7527, 83086, 43319, 6419, 0, 45, 0, 64588, 93989, 127753, 119810,
+ 7194, 5291, 0, 43666, 13129, 128684, 9084, 121039, 8737, 983165, 12881,
+ 75066, 12906, 9639, 7912, 2620, 983882, 3564, 0, 69978, 179, 43644,
+ 75049, 64756, 2853, 78443, 118813, 129042, 70347, 119009, 2850, 8084,
+ 983085, 73850, 2801, 92284, 42069, 119839, 74754, 83522, 42072, 92736,
+ 119842, 10398, 83386, 83523, 8377, 119312, 8245, 68401, 3158, 92396,
+ 3983, 43656, 923, 119857, 92470, 292, 11119, 119845, 119844, 3221, 1763,
+ 92463, 4612, 67729, 119850, 7253, 70456, 68391, 75002, 10782, 3637,
+ 12996, 43542, 113676, 64578, 83449, 3228, 69636, 8783, 983632, 119614,
+ 2731, 0, 120833, 78585, 4102, 7696, 73878, 121417, 128132, 70813, 43316,
+ 4177, 11283, 9089, 120918, 73996, 121111, 64500, 43674, 0, 64947, 1856,
+ 0, 0, 6379, 917804, 11142, 127176, 3208, 12975, 74775, 127380, 983931,
+ 92389, 74072, 55269, 0, 124962, 983683, 2033, 78577, 78576, 82965, 55254,
+ 7740, 82974, 70448, 126555, 73964, 68505, 93988, 67612, 65674, 128244,
+ 94110, 41689, 0, 74006, 64909, 6646, 11790, 74019, 128520, 128066,
+ 128031, 8561, 4573, 121375, 5326, 92571, 120605, 7230, 8257, 121415,
+ 8778, 41688, 0, 65776, 2071, 8314, 6459, 43511, 7628, 65092, 73903,
+ 64355, 11342, 128561, 0, 983434, 128226, 127001, 0, 11810, 13164, 10723,
+ 967, 983335, 120985, 11946, 983602, 3257, 127209, 12307, 1845, 129072,
+ 43526, 0, 119573, 1886, 42342, 10089, 870, 7648, 3499, 7662, 7652, 876,
+ 871, 877, 7665, 878, 42015, 879, 43692, 4563, 0, 917892, 7591, 65887,
+ 867, 9520, 872, 7656, 868, 873, 7642, 7659, 869, 874, 7644, 120674, 875,
+ 790, 128303, 118938, 195053, 93038, 66182, 194623, 5429, 195055, 66180,
+ 126480, 66181, 68452, 983291, 127214, 42067, 0, 5433, 10657, 7911,
+ 125119, 1547, 66176, 42012, 120576, 5425, 4977, 9999, 5317, 5423, 4611,
+ 125094, 67637, 127286, 9679, 74122, 92978, 917585, 0, 66194, 4418, 66184,
+ 4628, 4245, 119648, 0, 127263, 1851, 124995, 83320, 11908, 0, 9360,
+ 118897, 120874, 42776, 66187, 12837, 8829, 7711, 11112, 0, 92321, 43318,
+ 92302, 8809, 69881, 0, 126518, 120604, 983052, 983277, 983433, 128412, 0,
+ 120577, 7427, 9958, 4588, 43680, 0, 74484, 127185, 2433, 128602, 69973,
+ 3352, 74363, 128668, 121341, 793, 74404, 11197, 305, 567, 67662, 842,
+ 69979, 8208, 68308, 41695, 1647, 118877, 70841, 7837, 917625, 818, 5337,
+ 194628, 917621, 41376, 119978, 68742, 120594, 74086, 68777, 70179,
+ 917613, 10973, 66359, 1372, 127172, 917608, 4969, 1254, 917605, 194654,
+ 93967, 917602, 65228, 78221, 126612, 67723, 2840, 983905, 78829, 983939,
+ 66887, 3245, 9068, 68194, 64725, 121161, 128051, 12991, 124971, 2651,
+ 68016, 983267, 127326, 125038, 70835, 0, 70844, 43648, 120812, 917833,
+ 43322, 92662, 0, 0, 64372, 92698, 3226, 655, 752, 7457, 7456, 7452, 3285,
+ 74894, 11152, 92903, 65610, 2391, 92908, 92248, 671, 250, 7434, 618, 668,
+ 610, 42800, 7431, 1152, 42801, 640, 120666, 7448, 7439, 628, 3905, 73810,
+ 128340, 128266, 64749, 67850, 2107, 128290, 74249, 4605, 128174, 983192,
+ 43372, 65945, 127249, 11113, 119590, 0, 0, 70495, 987, 6927, 11572,
+ 42261, 11464, 3365, 9971, 0, 983951, 128297, 0, 78762, 127867, 121368,
+ 11334, 43326, 12609, 11519, 11503, 5530, 5210, 0, 4627, 119269, 5208, 0,
+ 70090, 10332, 2424, 7976, 9156, 0, 3244, 5529, 69647, 73894, 128852,
+ 5432, 64965, 5527, 42315, 10516, 7790, 5528, 128838, 42140, 120281, 0,
+ 983777, 43545, 9887, 121477, 4000, 7429, 7428, 665, 7424, 3206, 120278,
+ 7884, 0, 128566, 74910, 128666, 211, 2509, 92904, 70822, 68672, 3220,
+ 42235, 78480, 10690, 8951, 5214, 42474, 8118, 0, 7048, 4590, 127258,
+ 5852, 0, 78482, 127259, 1708, 0, 78481, 2623, 11943, 128700, 69226,
+ 69974, 4698, 66509, 1066, 119921, 4701, 983876, 120285, 70447, 94111,
+ 8267, 0, 1421, 66426, 7516, 127552, 2625, 983641, 8034, 74309, 0, 3631,
+ 10955, 7850, 120293, 8416, 0, 983065, 0, 43384, 12660, 128693, 128270, 0,
+ 74850, 41069, 70185, 128156, 12099, 4310, 10032, 6252, 713, 7990, 983489,
+ 3990, 125050, 983264, 66368, 5017, 64956, 7071, 0, 70457, 1030, 118800,
+ 92563, 9513, 41059, 9357, 74988, 1773, 77939, 120350, 124961, 6339, 7745,
+ 9844, 127220, 64650, 94, 1880, 74766, 113719, 8908, 983222, 128707,
+ 65913, 78470, 10752, 13003, 68769, 126572, 41307, 8732, 120336, 0, 1757,
+ 6964, 4696, 0, 120333, 64785, 7394, 3641, 5419, 128055, 0, 127883,
+ 194707, 120344, 43988, 70423, 8610, 43062, 7592, 856, 74299, 936, 13289,
+ 69894, 43171, 1459, 128224, 65243, 78638, 19953, 129078, 1504, 70064, 0,
+ 12913, 74206, 7529, 128745, 127868, 70203, 120782, 4113, 120929, 2372,
+ 336, 0, 7509, 12152, 194885, 682, 7655, 41505, 0, 64743, 10593, 1703,
+ 92467, 77911, 8033, 69953, 0, 9810, 127269, 120013, 12970, 0, 42351,
+ 10109, 74535, 74068, 74921, 0, 92690, 0, 65068, 74291, 1965, 7069, 43312,
+ 0, 73887, 11130, 2087, 64370, 6314, 41714, 8501, 11145, 121117, 74239,
+ 41317, 92614, 2091, 74545, 2090, 69912, 9353, 7117, 2077, 77886, 11161,
+ 10498, 2083, 77888, 71196, 0, 119236, 634, 124970, 92290, 194886, 69779,
+ 4165, 8746, 195048, 9654, 12856, 6924, 7660, 7066, 194693, 70415, 128135,
+ 41037, 42692, 7786, 12959, 41039, 127483, 124965, 680, 2302, 128200,
+ 1181, 7056, 3174, 67248, 0, 92668, 65665, 127375, 113776, 6920, 0, 92295,
+ 126606, 118965, 68318, 64644, 126981, 74119, 68238, 41028, 74025, 6231,
+ 2613, 65302, 40989, 68239, 68230, 68234, 42760, 0, 43896, 0, 40987, 4667,
+ 0, 71843, 8828, 77995, 70506, 1246, 4746, 128501, 128508, 11021, 4749,
+ 92675, 917882, 921, 4744, 0, 12702, 242, 0, 1566, 8217, 127210, 64653,
+ 78386, 74617, 74036, 74505, 43274, 5313, 951, 74568, 92983, 983867, 7604,
+ 983292, 4009, 70277, 71844, 120562, 0, 983720, 64860, 119138, 119069, 0,
+ 127370, 4048, 983598, 83009, 70024, 1646, 77890, 64534, 73995, 120705,
+ 129047, 119890, 2579, 119905, 3177, 11357, 9099, 4107, 3441, 119894,
+ 2975, 74442, 9822, 983935, 55220, 10084, 73943, 118840, 0, 917562, 78299,
+ 3399, 9851, 917609, 11909, 9059, 0, 7687, 0, 6789, 127767, 0, 71842,
+ 70178, 92314, 0, 1777, 9151, 1137, 66867, 749, 42366, 70444, 5385, 70791,
+ 72435, 70127, 83377, 5989, 128905, 74636, 120848, 0, 41685, 69223, 0,
+ 9769, 41684, 194737, 519, 119231, 11740, 5766, 0, 0, 2600, 8848, 70416,
+ 41297, 0, 3666, 70420, 41300, 74468, 65160, 0, 69688, 69771, 74479, 0,
+ 6558, 127149, 128064, 69765, 92775, 252, 0, 41302, 119350, 83504, 118839,
+ 69763, 68762, 11729, 8719, 9060, 129091, 120139, 10761, 0, 0, 129410,
+ 118792, 11734, 93011, 11730, 113741, 9593, 5757, 2403, 64808, 55275, 0,
+ 11728, 43572, 983139, 0, 7764, 68741, 11094, 120825, 0, 43489, 4282,
+ 8298, 0, 0, 70328, 194986, 70324, 64449, 0, 126650, 63854, 8456, 65587,
+ 70442, 65670, 983963, 78250, 0, 7774, 10607, 9792, 983869, 70326, 0,
+ 71460, 120764, 70322, 10019, 74762, 0, 3458, 4365, 70053, 983712, 3647,
+ 120207, 2602, 128341, 121103, 125043, 41135, 83498, 0, 121325, 64631,
+ 172, 4971, 41219, 41137, 1889, 7238, 6545, 126476, 77926, 7597, 10528,
+ 75054, 0, 3732, 73910, 194588, 5344, 983971, 43366, 43363, 9062, 119252,
+ 121441, 92528, 0, 64479, 9232, 92596, 83330, 113707, 194712, 10900,
+ 41531, 1263, 3720, 12048, 74075, 64292, 41524, 7227, 119635, 6099, 41534,
+ 0, 127354, 127345, 299, 83022, 8525, 127347, 3524, 917565, 8831, 127349,
+ 92564, 3075, 67867, 94053, 0, 66362, 0, 64353, 70440, 0, 5845, 121310, 0,
+ 121185, 2581, 8200, 65114, 68460, 983693, 43283, 5551, 0, 120735, 983201,
+ 6340, 118855, 121027, 78134, 8680, 7204, 70065, 2588, 2914, 7011, 55281,
+ 0, 2471, 194631, 2883, 2749, 119563, 73774, 10913, 83116, 983086, 8666,
+ 675, 42493, 121297, 43571, 0, 6219, 128584, 9980, 41232, 10928, 0, 41153,
+ 41229, 118967, 0, 3738, 94016, 983243, 12711, 3181, 66212, 74289, 68472,
+ 42857, 8262, 93036, 0, 74476, 0, 42347, 12092, 9615, 7234, 74047, 983088,
+ 128137, 43744, 0, 0, 73846, 2934, 12722, 120762, 922, 43983, 74507,
+ 983126, 74461, 3218, 120471, 74290, 120469, 64562, 120475, 8569, 11404,
+ 11932, 73728, 3214, 11212, 120468, 12128, 3207, 65486, 78729, 1901,
+ 78727, 65667, 120460, 7425, 3205, 68003, 78737, 78736, 78735, 43383,
+ 69940, 65459, 2606, 78730, 73897, 129043, 11496, 1173, 0, 41272, 119661,
+ 0, 0, 83178, 120737, 120953, 194773, 983322, 378, 2610, 983328, 65079,
+ 983327, 65695, 121220, 37, 7068, 0, 120480, 68236, 3209, 120477, 120835,
+ 10638, 9768, 69952, 119909, 71486, 92225, 983953, 983340, 0, 43840, 0, 0,
+ 5233, 983337, 64792, 71233, 128223, 126633, 128919, 7060, 9847, 120144,
+ 1685, 595, 83197, 70428, 1292, 8940, 7380, 11088, 0, 10004, 126997, 0,
+ 6541, 43837, 71465, 121030, 3243, 9014, 5606, 125032, 538, 64620, 5602,
+ 8467, 74391, 6547, 71466, 8203, 66420, 68241, 8458, 65211, 8495, 92311,
+ 127481, 917552, 779, 78314, 64367, 2465, 69901, 8193, 55279, 9730, 9280,
+ 120913, 7065, 74155, 4346, 113690, 73798, 504, 125115, 92414, 8982, 0,
+ 121471, 119170, 782, 129028, 10883, 128446, 194852, 732, 3737, 121188,
+ 1548, 68650, 92507, 1832, 5604, 5735, 41141, 119020, 4376, 983372, 11787,
+ 3745, 917868, 119885, 42888, 65712, 127913, 3869, 11937, 5725, 127539,
+ 1783, 7416, 5728, 0, 128457, 119554, 11918, 66567, 5724, 127965, 5727,
+ 78521, 121121, 0, 764, 0, 121011, 43531, 113670, 9033, 127182, 42532,
+ 6223, 11042, 120749, 11423, 74852, 119861, 68303, 43465, 0, 74767, 6559,
+ 64557, 71348, 92649, 120648, 43019, 43477, 10238, 74491, 128711, 43377,
+ 92282, 71346, 1478, 9783, 11825, 2607, 64740, 113689, 7739, 74543,
+ 917765, 67393, 0, 6132, 0, 63765, 128396, 70058, 41144, 71899, 92438,
+ 43537, 6761, 10093, 4369, 917791, 128394, 194776, 8820, 3947, 0, 65299,
+ 11515, 526, 128103, 41295, 194603, 125002, 194932, 113691, 7688, 917786,
+ 7686, 8288, 11815, 983188, 121411, 983384, 1543, 3713, 41221, 12423,
+ 42281, 78544, 74024, 12293, 983680, 64357, 11794, 42082, 128125, 1737,
+ 8987, 42081, 0, 7205, 83264, 9335, 12850, 119173, 6553, 7055, 68041,
+ 8277, 0, 67751, 5475, 74795, 6780, 65067, 0, 1327, 1160, 42084, 93963,
+ 41217, 119660, 10018, 360, 129070, 983865, 68176, 5863, 3137, 0, 4147,
+ 983170, 41216, 7844, 2616, 70197, 68461, 65234, 68341, 13076, 3135,
+ 983289, 78143, 119139, 3142, 92451, 94068, 10819, 119580, 10183, 74635,
+ 2608, 1470, 73967, 94008, 6227, 121257, 83268, 65236, 917878, 6163,
+ 983558, 113728, 127314, 128138, 983236, 8603, 127959, 119866, 3306,
+ 10876, 43392, 83187, 127931, 5751, 127517, 6222, 0, 127466, 12086, 7403,
+ 1600, 64309, 64939, 0, 64783, 92658, 11310, 0, 8882, 119903, 0, 2570,
+ 7021, 74902, 194742, 43110, 0, 1234, 6540, 6974, 92750, 0, 983211, 5002,
+ 983563, 41286, 69946, 74465, 71074, 43585, 113720, 6551, 983375, 128229,
+ 983274, 41289, 125130, 71080, 127958, 8977, 602, 120814, 0, 128350,
+ 128661, 194890, 983377, 41279, 0, 0, 94108, 11081, 43615, 0, 0, 127888,
+ 983612, 12727, 43895, 0, 78397, 9475, 7112, 65105, 0, 9633, 10886, 43592,
+ 7831, 983829, 194571, 0, 73915, 8076, 43048, 8290, 8291, 43051, 92570, 0,
+ 2596, 43584, 120983, 13113, 0, 127757, 2393, 7058, 9087, 74067, 68673,
+ 41574, 78337, 70498, 42900, 6376, 0, 0, 0, 0, 9854, 127748, 64696, 73879,
+ 128220, 120752, 6994, 0, 1720, 0, 0, 0, 6529, 7063, 983179, 3751, 9120,
+ 983487, 68038, 1798, 709, 0, 1354, 1876, 13152, 6557, 12430, 8137, 94098,
+ 67752, 70850, 119057, 245, 121066, 11456, 41233, 7070, 0, 94046, 6136,
+ 68304, 65677, 8682, 41235, 92595, 42045, 9804, 118963, 432, 3595, 127015,
+ 65437, 0, 74455, 42399, 983136, 0, 128274, 0, 119658, 128184, 0, 0,
+ 77894, 8797, 0, 9052, 64888, 7167, 2356, 95, 74784, 10580, 0, 42286,
+ 71123, 64640, 69999, 94109, 120877, 74137, 70035, 10063, 12652, 12199,
+ 74622, 43492, 2566, 11971, 983737, 120882, 1065, 0, 127005, 43400, 2576,
+ 66696, 66819, 83333, 43604, 127891, 0, 3201, 514, 74502, 70032, 2921,
+ 43215, 64493, 5772, 12968, 70055, 194944, 70310, 43398, 2580, 195025,
+ 41341, 41223, 6564, 1463, 41342, 0, 5293, 70020, 127870, 3733, 11346, 0,
+ 12054, 0, 74098, 42827, 195074, 13091, 0, 128580, 0, 917915, 127961,
+ 127025, 128334, 74821, 71104, 66295, 68037, 0, 121116, 13090, 66643, 0,
+ 1270, 1132, 42360, 0, 74096, 66655, 42569, 127824, 66898, 64761, 0,
+ 41021, 8510, 42432, 119898, 119317, 194782, 194641, 64496, 74109, 70030,
+ 9915, 983083, 983218, 7061, 41336, 3854, 69700, 13141, 68413, 43401,
+ 42319, 13082, 78114, 7067, 68221, 127881, 127383, 127171, 0, 120745,
+ 74209, 9029, 43543, 70836, 2353, 6308, 129154, 74792, 2611, 119186,
+ 66881, 127241, 65063, 43664, 92319, 66627, 92912, 4484, 8509, 118976,
+ 11066, 65233, 127146, 41224, 41017, 128149, 3747, 10522, 0, 194876, 1691,
+ 41226, 74962, 12107, 7100, 10905, 65010, 121299, 697, 66018, 9284, 4244,
+ 983343, 93058, 74781, 13121, 120036, 0, 12010, 128573, 128221, 120949,
+ 121032, 0, 127193, 65816, 68111, 118950, 127933, 65668, 92257, 6618,
+ 3562, 66365, 0, 42234, 12648, 78110, 7123, 70038, 5785, 9198, 9764,
+ 41316, 65877, 7383, 13230, 41299, 0, 0, 68365, 128258, 195027, 0, 0,
+ 13122, 0, 191, 70060, 8585, 8000, 64411, 120652, 42889, 64850, 41072,
+ 41578, 983104, 41577, 0, 10002, 121364, 6533, 73802, 41570, 917919, 683,
+ 396, 41580, 68146, 983067, 12901, 43058, 0, 343, 7129, 42680, 41360,
+ 78154, 983397, 4743, 69987, 0, 74040, 74108, 8743, 1724, 1433, 119322,
+ 128665, 3739, 6263, 71349, 128811, 3964, 6592, 121424, 68288, 66040,
+ 82946, 42568, 69806, 128113, 1778, 3956, 128443, 42070, 6563, 43075,
+ 9018, 94006, 983398, 12067, 41312, 92763, 5547, 8916, 120869, 128950,
+ 8175, 94034, 284, 8108, 934, 128039, 74001, 173, 66460, 7174, 92703,
+ 118822, 1750, 128686, 4394, 68368, 1807, 983888, 92298, 0, 5889, 128795,
+ 7180, 0, 67127, 0, 67126, 42471, 6982, 1721, 44022, 7891, 42243, 42160,
+ 2583, 4512, 119360, 65230, 128109, 0, 917630, 3855, 194810, 11767,
+ 127998, 0, 74295, 194651, 0, 92416, 3975, 67125, 74087, 74989, 12672,
+ 3798, 2703, 194608, 0, 2109, 9774, 1275, 0, 983750, 41095, 3962, 68242,
+ 2932, 41101, 3954, 6457, 4513, 74536, 127189, 73994, 73992, 1468, 120033,
+ 983057, 41803, 127999, 41846, 127244, 55238, 7633, 41849, 68385, 4320,
+ 3224, 113734, 92741, 66281, 42531, 74593, 1510, 128384, 8256, 0, 11393,
+ 0, 8879, 128075, 92474, 8770, 72416, 120811, 72415, 1910, 8671, 78374,
+ 4283, 68842, 120824, 68361, 78318, 2654, 7893, 195006, 128241, 0, 72394,
+ 65106, 42761, 12857, 4581, 8411, 78372, 78371, 78370, 78369, 78368,
+ 74475, 983444, 0, 1733, 4392, 2568, 10786, 69661, 0, 8184, 41486, 0,
+ 7396, 7116, 0, 69788, 0, 7185, 7965, 119144, 128447, 92347, 195066,
+ 41350, 9129, 983448, 0, 2294, 64501, 68034, 83326, 10481, 0, 70022, 7171,
+ 0, 340, 71105, 93972, 67360, 0, 92200, 128249, 124979, 6764, 127487,
+ 128393, 0, 92509, 128962, 65203, 11392, 119098, 119359, 119073, 3210, 0,
+ 0, 118795, 82958, 94101, 127484, 917619, 119149, 0, 10043, 121215, 1186,
+ 41571, 6999, 617, 9464, 125123, 3675, 5207, 65062, 5213, 74616, 2617,
+ 41348, 41568, 128803, 3253, 120535, 0, 8630, 121209, 0, 5596, 5545, 7288,
+ 2586, 64887, 119826, 5217, 71336, 128687, 917614, 121038, 64293, 68098,
+ 2635, 92760, 83137, 983846, 0, 92742, 7835, 70040, 120707, 194988, 92285,
+ 64558, 127122, 121425, 67083, 67085, 70099, 71118, 5784, 983102, 195050,
+ 983812, 70033, 4011, 194565, 68101, 124978, 7864, 4254, 65095, 983498,
+ 5600, 3903, 127083, 10447, 5598, 1207, 120521, 66689, 3501, 42582, 43600,
+ 129054, 127103, 1124, 5597, 194778, 194772, 9321, 983486, 75040, 983484,
+ 67400, 1719, 68356, 68354, 9671, 1125, 4399, 68775, 66274, 983490, 7631,
+ 5488, 7128, 120532, 0, 5491, 118797, 8937, 43044, 2604, 74187, 5490,
+ 43046, 5489, 7212, 11768, 43043, 6300, 127121, 7122, 983090, 4390, 454,
+ 41397, 0, 9875, 7593, 194791, 92274, 118913, 7207, 0, 65901, 2394, 2575,
+ 119184, 3746, 11016, 65752, 92757, 0, 43423, 128683, 11989, 118889,
+ 127791, 127995, 78296, 0, 8249, 128172, 11109, 78531, 6640, 74806, 2598,
+ 513, 127118, 6586, 8656, 129301, 69792, 65008, 194597, 71111, 78383,
+ 194795, 127474, 92515, 68475, 93973, 194584, 63799, 78637, 12647, 917606,
+ 128043, 69893, 1036, 68090, 92419, 1723, 68215, 74217, 0, 41579, 2444,
+ 120722, 10705, 73876, 195054, 74486, 983469, 740, 119222, 194978, 194984,
+ 0, 4238, 11071, 9459, 43936, 43938, 78139, 194985, 8121, 10438, 74487,
+ 42574, 13285, 43967, 11907, 43928, 5690, 92255, 5116, 0, 43181, 13095,
+ 77925, 43926, 64498, 0, 9506, 6978, 70176, 74931, 0, 113743, 78379,
+ 43934, 127845, 1122, 317, 0, 71055, 120621, 0, 1920, 0, 10173, 827, 0, 0,
+ 78378, 119600, 5223, 1304, 0, 83526, 5226, 12602, 94044, 5880, 9329,
+ 7758, 9239, 41173, 5224, 5487, 1222, 5692, 41725, 69229, 9674, 5695,
+ 41711, 64627, 19909, 71077, 74604, 5691, 287, 866, 233, 68138, 983443,
+ 42816, 94036, 65140, 68028, 83093, 8830, 6568, 42300, 10524, 41175,
+ 83094, 983447, 68827, 5296, 983446, 42492, 43402, 92466, 3302, 0, 74858,
+ 6516, 6515, 6514, 6513, 6512, 0, 7856, 8690, 983686, 70870, 12122,
+ 119602, 43976, 194937, 1785, 69925, 68622, 65153, 68809, 5138, 983637,
+ 71922, 118869, 0, 4540, 41181, 917920, 6200, 0, 5134, 69980, 322, 4643,
+ 5132, 121184, 6389, 120998, 5143, 83205, 8790, 120911, 120121, 128695,
+ 71168, 8869, 69916, 93069, 42060, 71326, 9648, 83109, 71170, 10270,
+ 10286, 10318, 10382, 43529, 66477, 194800, 128534, 74170, 0, 3234, 43835,
+ 917818, 70111, 43139, 118815, 127084, 120627, 8767, 68231, 74489, 9695,
+ 72439, 5201, 75061, 6215, 12714, 6214, 13101, 0, 194999, 65268, 7661, 0,
+ 120909, 11027, 128596, 10059, 10511, 42075, 9767, 789, 1749, 78890,
+ 67115, 983670, 320, 0, 8647, 83054, 3049, 0, 6471, 42071, 43156, 9925,
+ 127356, 118894, 66478, 4960, 5549, 127359, 127346, 8485, 4671, 5418,
+ 127350, 3351, 120892, 127351, 10610, 5414, 3064, 6212, 4286, 5421,
+ 127344, 9554, 68051, 94048, 66896, 6653, 83044, 83102, 64510, 6213,
+ 12885, 0, 119045, 64720, 917873, 120759, 73741, 12603, 7131, 11108, 4566,
+ 7518, 9317, 3801, 10342, 10406, 124938, 119259, 42576, 0, 5200, 92946,
+ 121435, 983895, 9183, 127361, 74458, 66282, 395, 5482, 5198, 4349, 10390,
+ 74202, 5196, 43224, 6113, 42009, 5205, 128383, 43307, 70297, 118973,
+ 70467, 12134, 121167, 0, 118843, 9126, 435, 983624, 12014, 10377, 8093,
+ 9079, 3203, 192, 65109, 3385, 125075, 64430, 5383, 10294, 10326, 127309,
+ 5738, 120089, 3336, 78355, 5361, 3623, 41159, 83378, 68112, 7872, 8581,
+ 0, 1260, 3149, 5359, 120134, 74955, 7914, 5357, 71190, 74339, 2624, 5364,
+ 983608, 11431, 120030, 9101, 11058, 78288, 67107, 78293, 42271, 78289,
+ 42917, 67111, 129179, 65566, 6717, 10619, 43360, 78291, 78384, 11832,
+ 78382, 78381, 78380, 69861, 9319, 7097, 119055, 77906, 3232, 73824,
+ 74581, 78087, 0, 71205, 41889, 92453, 129144, 1161, 41895, 74103, 9701,
+ 8622, 125025, 0, 68772, 120588, 5012, 71453, 41362, 69862, 68507, 11921,
+ 0, 11769, 68782, 68609, 41364, 120947, 74228, 41352, 41361, 917903,
+ 41366, 0, 3356, 11611, 917, 68422, 119915, 7134, 8199, 78389, 119618,
+ 677, 119916, 917876, 71482, 127169, 68747, 0, 68738, 3349, 74125, 7022,
+ 8927, 4739, 92599, 5802, 194874, 8615, 0, 128058, 491, 74401, 10190,
+ 68755, 65837, 68800, 8426, 11092, 9891, 0, 42497, 7113, 7586, 42305,
+ 10852, 0, 42648, 4606, 68448, 9095, 7741, 12684, 41885, 1046, 7124,
+ 128610, 68753, 5815, 5171, 65539, 68612, 6932, 74267, 42394, 41878,
+ 74849, 74947, 72424, 5169, 11935, 0, 0, 3175, 120822, 1537, 120804, 5176,
+ 8905, 4136, 4871, 78287, 120663, 9833, 0, 113730, 1128, 65920, 917879,
+ 9711, 7057, 9408, 9409, 9410, 9411, 3662, 9413, 3378, 9415, 9416, 9417,
+ 9418, 6320, 9420, 9421, 5897, 9423, 5165, 5126, 41385, 983938, 41389,
+ 127963, 8955, 3374, 9400, 9401, 7119, 9403, 9404, 3507, 9406, 7629,
+ 983617, 19925, 42669, 68463, 183, 43985, 2631, 70811, 10627, 41130,
+ 71079, 3996, 0, 71442, 128913, 119313, 119307, 78768, 6580, 4332, 64825,
+ 66329, 10726, 66686, 41125, 5899, 41365, 127206, 12085, 66902, 574,
+ 126705, 77825, 73828, 5448, 41058, 5446, 65932, 41322, 42211, 5442, 4190,
+ 77834, 77835, 5451, 77833, 3616, 77828, 68817, 77838, 7708, 74759, 2228,
+ 65867, 10345, 10409, 4191, 120378, 77844, 73800, 42181, 77843, 77839,
+ 2060, 121193, 7111, 11788, 65376, 68129, 10415, 74102, 983625, 205,
+ 83040, 10351, 67151, 0, 9862, 6588, 43257, 64697, 73998, 41355, 5505,
+ 74966, 5503, 8021, 128035, 7125, 9819, 41357, 8011, 42885, 5507, 12044,
+ 92636, 0, 10026, 5472, 7109, 1191, 13106, 5470, 10329, 5476, 8991, 66322,
+ 69778, 11133, 42874, 8550, 42876, 5592, 2919, 129052, 2675, 5595, 78411,
+ 43762, 4367, 127912, 917782, 5478, 5904, 5594, 0, 74150, 7291, 5590,
+ 43761, 13067, 118909, 75069, 983108, 9731, 69731, 64633, 77857, 77854,
+ 71217, 77852, 71227, 77850, 10750, 43714, 77858, 7137, 0, 66909, 12887,
+ 10551, 194564, 77866, 77867, 77864, 77865, 9929, 5199, 9936, 1120, 42387,
+ 0, 1444, 9486, 7554, 65839, 55252, 73972, 1442, 129080, 5894, 70069,
+ 128672, 41171, 92511, 70358, 1323, 13162, 120599, 3334, 128704, 92709,
+ 77881, 66022, 0, 69770, 1651, 120364, 8861, 0, 0, 1142, 983112, 8271, 0,
+ 983058, 126645, 12903, 78406, 4002, 43626, 10442, 10676, 3344, 128910,
+ 194787, 12920, 194560, 70497, 194687, 66642, 1277, 66876, 7871, 67106,
+ 71487, 78853, 129068, 78854, 120360, 983492, 11784, 0, 78012, 4700,
+ 43856, 78858, 120359, 11012, 983627, 78856, 78448, 77879, 4973, 8784,
+ 77877, 74804, 77874, 77869, 77871, 42440, 71225, 43118, 119875, 42364,
+ 6774, 6773, 917560, 120369, 10346, 10410, 78859, 9243, 2464, 74263, 6108,
+ 3372, 0, 6247, 43117, 70364, 7121, 74166, 124973, 120355, 92537, 194846,
+ 119877, 195034, 70357, 119922, 0, 67119, 3354, 195037, 4192, 9289,
+ 118999, 41191, 3876, 0, 70067, 120660, 43696, 43380, 0, 983091, 983965,
+ 983758, 11603, 983954, 75074, 6589, 128564, 82975, 120993, 67812, 983700,
+ 0, 129087, 42572, 128264, 10630, 74827, 1963, 11622, 118882, 11654,
+ 121287, 7550, 10686, 5903, 67098, 78009, 41329, 9662, 917937, 64698,
+ 3366, 10399, 917938, 5542, 11013, 127927, 71062, 194677, 71461, 67090,
+ 6925, 0, 0, 92892, 71856, 11568, 983673, 43367, 64579, 917930, 7852,
+ 11138, 0, 6754, 6312, 77956, 64672, 65296, 0, 118957, 0, 416, 12296,
+ 68457, 73834, 68177, 11050, 10984, 92208, 0, 0, 92182, 129146, 983605,
+ 9532, 66355, 119264, 68073, 113695, 64343, 195032, 92744, 195031, 0,
+ 194847, 195057, 11445, 68294, 2112, 128741, 128814, 10185, 1021, 128130,
+ 9507, 10210, 74544, 8023, 1200, 12243, 78001, 5282, 78003, 9624, 11545,
+ 0, 120276, 3343, 4424, 11047, 1885, 43268, 3896, 78444, 66497, 2947, 392,
+ 7894, 4391, 68139, 121064, 13059, 74816, 77998, 3381, 7942, 0, 69219,
+ 92433, 3558, 129190, 3913, 70429, 121376, 78235, 7044, 1265, 0, 6309,
+ 7045, 7175, 7047, 78239, 11791, 983122, 917587, 8221, 78307, 41864, 0, 0,
+ 67075, 71219, 167, 983906, 78301, 983653, 74211, 41897, 67072, 0, 917583,
+ 127140, 67076, 2493, 0, 113778, 121245, 78107, 64354, 0, 8777, 127940,
+ 406, 8884, 2385, 78210, 92450, 917590, 917573, 43030, 42027, 12114, 0,
+ 128597, 64936, 194695, 119267, 120629, 10561, 128940, 8365, 120539,
+ 983774, 65841, 120787, 11601, 0, 74121, 128896, 83176, 7834, 74159, 0,
+ 917574, 10298, 6624, 4908, 917577, 1639, 120842, 0, 70803, 6327, 6724,
+ 124953, 66354, 92566, 69910, 4817, 11087, 194759, 92536, 7043, 9600,
+ 11022, 0, 0, 0, 983599, 0, 73954, 7548, 64794, 42050, 12291, 55289,
+ 128781, 12343, 657, 67110, 42705, 4461, 1134, 1838, 78438, 2057, 0, 4468,
+ 92891, 194945, 83056, 4456, 5206, 10720, 0, 42523, 127520, 0, 93044,
+ 129411, 65550, 260, 4816, 67658, 10687, 0, 4821, 4466, 0, 83182, 4818,
+ 129058, 41403, 119977, 72422, 128458, 41406, 43273, 74160, 69805, 73939,
+ 92638, 119984, 119979, 41404, 1165, 119980, 4451, 13087, 0, 11284,
+ 119987, 70097, 65155, 43014, 5439, 9363, 70070, 3375, 128448, 5900,
+ 93990, 7889, 2722, 42262, 983481, 0, 67078, 128451, 2282, 121422, 127810,
+ 11401, 67079, 0, 68459, 125028, 983141, 0, 70150, 65438, 0, 7280, 127887,
+ 68055, 70146, 4868, 8297, 119966, 70148, 125008, 128744, 43161, 70144,
+ 92360, 0, 5182, 0, 120542, 0, 0, 4226, 70186, 12135, 5732, 4464, 195083,
+ 71330, 977, 4458, 43827, 92971, 64770, 74838, 0, 344, 0, 121228, 1395,
+ 64279, 0, 92240, 121179, 786, 126995, 43174, 64340, 83077, 194767, 73971,
+ 43026, 7612, 10132, 64413, 65025, 0, 0, 0, 93956, 983917, 68444, 0,
+ 92437, 124928, 92549, 10204, 92656, 83078, 119271, 128431, 1399, 121463,
+ 65217, 121465, 8852, 120808, 241, 121469, 4907, 128427, 983639, 7932,
+ 9727, 128463, 74255, 8748, 0, 128428, 983631, 0, 42780, 55263, 113677,
+ 983560, 4217, 93034, 8650, 127991, 120673, 128215, 69900, 118872, 43099,
+ 3965, 119119, 6719, 128007, 13300, 78439, 93971, 43057, 66588, 118991,
+ 66289, 120902, 73815, 4420, 983120, 6410, 7760, 0, 70468, 128752, 120684,
+ 121246, 7294, 128218, 43869, 120859, 9066, 121321, 11993, 43188, 2626,
+ 7762, 983866, 118831, 92899, 92601, 42825, 41854, 5304, 70290, 78516,
+ 6919, 8619, 119655, 10038, 66454, 9592, 42851, 120537, 1542, 92303,
+ 128819, 0, 127327, 121199, 74311, 78497, 0, 10181, 124937, 43624, 129060,
+ 7779, 917551, 10195, 9479, 6029, 128374, 92268, 2224, 0, 65577, 8993,
+ 66358, 0, 42378, 3368, 606, 127030, 7697, 69237, 69787, 2030, 70106,
+ 6027, 8370, 4322, 0, 65207, 0, 70386, 127903, 983339, 983338, 2735,
+ 42831, 77935, 70439, 74866, 8881, 119047, 0, 70433, 73946, 0, 194703, 0,
+ 68140, 983928, 9576, 70288, 3347, 4160, 5154, 55288, 3794, 66564, 8530,
+ 127063, 7709, 41112, 119868, 66560, 8381, 4572, 12876, 66561, 128921,
+ 6758, 66031, 1615, 5855, 809, 127117, 92283, 128316, 128004, 5799,
+ 128929, 70100, 128607, 7260, 983326, 43031, 64425, 65128, 78819, 64386,
+ 65257, 74909, 68616, 120607, 9347, 83360, 6532, 0, 917918, 120860,
+ 127060, 65828, 120006, 283, 68665, 78813, 532, 78663, 78817, 128021,
+ 120609, 0, 3370, 917881, 11361, 5443, 71431, 8153, 73767, 0, 10741,
+ 121503, 2298, 0, 125039, 65495, 64706, 983320, 43344, 983318, 7144, 9466,
+ 78866, 9824, 67142, 128963, 67133, 67130, 915, 43425, 67292, 43865,
+ 68232, 983111, 120888, 43264, 67136, 67137, 0, 43038, 78864, 6730, 78862,
+ 68161, 64550, 5186, 7360, 127837, 70451, 12108, 120644, 65124, 43127,
+ 66043, 0, 6326, 43107, 77826, 0, 42562, 0, 128821, 128178, 120919, 11485,
+ 6103, 92468, 983307, 11718, 983305, 12889, 92657, 125034, 120635, 127157,
+ 121128, 55245, 128709, 1630, 83027, 65483, 120634, 12565, 0, 65476,
+ 70369, 983072, 83029, 9283, 7700, 917537, 9690, 65499, 0, 64593, 512,
+ 3376, 68080, 0, 128253, 77892, 632, 12940, 77891, 42529, 78587, 194604,
+ 5957, 110593, 8926, 983301, 983300, 128273, 10745, 10174, 7379, 64581,
+ 5386, 120686, 11713, 10633, 69708, 5056, 0, 0, 0, 120773, 94055, 9812, 0,
+ 4460, 78791, 124956, 71307, 128038, 0, 121135, 127174, 64278, 92370,
+ 43466, 0, 0, 64389, 2953, 70122, 1801, 12835, 74847, 120867, 73823,
+ 83110, 66375, 2085, 702, 42579, 77884, 77885, 13074, 77883, 66299,
+ 983287, 71447, 12106, 120972, 74207, 1755, 10482, 12863, 77898, 1163,
+ 2951, 9522, 67816, 78266, 66604, 983860, 3384, 69227, 10702, 830, 77902,
+ 77899, 77900, 8451, 83324, 0, 0, 66458, 128957, 128870, 74896, 0, 2908,
+ 0, 11177, 64902, 4243, 92454, 12239, 121003, 124959, 4441, 0, 82968,
+ 73940, 64352, 127513, 125031, 411, 983275, 9199, 983273, 4056, 118992,
+ 41890, 128592, 2730, 41604, 128355, 5428, 194743, 3364, 42265, 64437,
+ 127935, 118816, 71458, 9684, 216, 71367, 1401, 128053, 44012, 92628,
+ 71456, 92585, 9158, 66878, 11126, 5768, 0, 983759, 0, 484, 194739, 0, 0,
+ 65895, 125076, 121380, 3338, 73935, 572, 7041, 2736, 67605, 127543,
+ 93962, 2794, 8807, 64491, 77847, 5438, 5222, 5381, 43114, 0, 5193, 5125,
+ 5456, 5509, 77846, 194747, 9534, 129109, 129040, 0, 3430, 0, 42905,
+ 78717, 74929, 981, 129184, 4330, 73929, 120536, 1824, 10908, 126506,
+ 7034, 41683, 64617, 0, 73754, 3957, 64358, 64547, 128259, 674, 63991,
+ 983251, 2946, 5354, 5251, 5328, 5307, 3759, 11411, 8364, 5123, 119628,
+ 5281, 5469, 5121, 77989, 118993, 0, 5130, 83180, 128357, 77990, 0,
+ 120726, 1221, 2733, 11746, 77991, 5216, 119268, 0, 128475, 92187, 3468,
+ 7033, 9230, 5939, 128397, 0, 5803, 71867, 68400, 7278, 10321, 10289,
+ 64613, 10385, 41706, 0, 0, 917939, 0, 11739, 77986, 41981, 92743, 5938,
+ 0, 43766, 12448, 7576, 10401, 10337, 73852, 124994, 13057, 0, 126976,
+ 129081, 10009, 0, 41703, 120950, 12165, 129191, 0, 9885, 0, 8077, 92620,
+ 127908, 121044, 194995, 0, 92457, 129138, 4220, 10725, 10433, 0, 68395,
+ 4987, 64519, 121265, 125078, 0, 194813, 128574, 10970, 11733, 0, 120792,
+ 126490, 19944, 74356, 9009, 8551, 92345, 11468, 64636, 7575, 0, 2724,
+ 128899, 0, 12313, 11151, 515, 119947, 42791, 63987, 78286, 119943,
+ 119940, 119941, 119938, 9775, 4046, 4589, 4521, 68629, 9141, 917904,
+ 78850, 2741, 64399, 6197, 1370, 0, 120841, 0, 125062, 983441, 120843,
+ 6184, 8606, 3303, 41372, 11786, 9473, 66203, 66177, 92446, 11593, 43007,
+ 4478, 66178, 0, 0, 2744, 0, 4477, 78267, 814, 42066, 66183, 66204, 43786,
+ 119961, 66198, 41880, 66188, 11623, 78148, 11955, 66190, 66191, 41111,
+ 66189, 73788, 7788, 4847, 983428, 127759, 0, 128433, 2221, 1581, 6535,
+ 78161, 12954, 430, 78160, 55259, 73944, 128036, 5278, 4945, 42883, 4950,
+ 983440, 68625, 983438, 7269, 128499, 5964, 12908, 124997, 0, 74764,
+ 43512, 119146, 194936, 4949, 983431, 443, 983429, 4944, 5467, 119603,
+ 70865, 65137, 6044, 65392, 0, 4213, 0, 41303, 917556, 194931, 119962,
+ 41306, 73984, 2698, 127159, 0, 12072, 3193, 0, 41304, 824, 128676, 12091,
+ 67118, 78894, 119816, 4673, 64804, 4678, 119820, 119819, 65059, 43860,
+ 6739, 66844, 5481, 3490, 1199, 119811, 8356, 69947, 67702, 4677, 12688,
+ 3102, 0, 4672, 78173, 78175, 5531, 68367, 42575, 78170, 78166, 4674,
+ 4548, 44005, 71087, 68658, 119946, 8025, 68630, 127024, 1855, 127475,
+ 68669, 118990, 92445, 127554, 126630, 127339, 119652, 2745, 11797,
+ 983419, 128159, 9202, 4654, 6840, 983416, 68638, 73993, 10525, 4649,
+ 65209, 121512, 121511, 4648, 43080, 75070, 121507, 983406, 6246, 64950,
+ 7828, 4650, 6777, 6776, 6775, 4653, 7822, 70287, 74624, 43187, 8669,
+ 120659, 6821, 65093, 983565, 78881, 2716, 983412, 983060, 70503, 194952,
+ 68369, 120054, 11060, 8547, 2711, 42165, 78027, 78026, 6836, 983423, 0,
+ 4662, 78033, 78032, 9149, 9146, 599, 2081, 78031, 78030, 194962, 4656,
+ 10130, 68450, 7811, 40994, 194965, 6414, 5967, 4658, 3725, 5713, 5814,
+ 4661, 42434, 983413, 128737, 11190, 64904, 9026, 10833, 74864, 7547,
+ 4867, 11100, 10008, 10222, 3054, 194956, 9744, 78860, 7605, 4622, 119656,
+ 43888, 70303, 983395, 69905, 67188, 9045, 78888, 4225, 19926, 68831,
+ 12880, 65307, 4617, 68757, 983388, 41732, 4616, 10518, 10423, 10359,
+ 983382, 5958, 0, 983435, 4215, 9789, 119619, 4321, 4621, 195028, 41313,
+ 522, 5368, 11139, 65803, 128546, 5366, 12201, 5372, 121060, 119949,
+ 194975, 7720, 7390, 2696, 983402, 0, 4638, 983407, 1790, 78242, 5965,
+ 64363, 66569, 68646, 68477, 5376, 1835, 5335, 121505, 128089, 4633, 0,
+ 68119, 1180, 4632, 67191, 5387, 5333, 0, 125132, 42094, 5331, 4634,
+ 11928, 983594, 5338, 4637, 128170, 5971, 42414, 43500, 1268, 65097,
+ 42361, 0, 0, 73853, 1427, 128440, 0, 5970, 3431, 0, 10358, 10422, 4758,
+ 983376, 1608, 2738, 125066, 10455, 4753, 74026, 11344, 4222, 6240, 5231,
+ 74384, 66611, 68377, 6248, 983364, 67815, 78878, 42318, 92582, 5229,
+ 4757, 0, 126576, 2728, 4752, 64563, 65235, 5234, 0, 128145, 128926,
+ 10713, 7166, 0, 2622, 7460, 83124, 67101, 126495, 8954, 74760, 65189,
+ 2632, 42617, 10108, 1011, 5574, 1853, 2709, 65139, 5577, 128966, 0,
+ 118871, 68641, 8965, 7635, 42177, 5316, 0, 5314, 6451, 5572, 66464, 5312,
+ 0, 5525, 5330, 5319, 68292, 127311, 65066, 44003, 68437, 983482, 43843,
+ 120498, 127851, 43918, 74851, 74022, 983424, 64609, 68643, 67410, 128593,
+ 5721, 74892, 5519, 8632, 66465, 11267, 73961, 92278, 5720, 78778, 1692,
+ 4219, 4610, 8696, 4305, 0, 4609, 43478, 4614, 541, 983242, 5287, 5309,
+ 5285, 68389, 5961, 4647, 56, 4216, 10577, 41381, 601, 4613, 120479,
+ 983348, 9208, 4608, 43966, 41124, 5190, 67628, 66826, 68145, 7086, 0,
+ 67998, 67620, 93047, 2734, 11074, 0, 67627, 43593, 0, 67625, 5960, 67722,
+ 8992, 42593, 128260, 1782, 67622, 68114, 119939, 0, 68180, 5501, 119952,
+ 42508, 7442, 43665, 359, 41253, 68392, 6239, 43900, 41256, 74132, 67740,
+ 0, 71178, 917550, 9346, 69660, 41254, 128047, 43291, 3767, 5737, 0, 4865,
+ 0, 5740, 917997, 5736, 4368, 64724, 7193, 67097, 128844, 5739, 41024,
+ 4866, 983880, 73904, 121420, 4869, 120563, 129172, 4223, 128201, 6650,
+ 126509, 0, 120212, 119872, 4870, 120445, 68661, 6716, 78176, 68667,
+ 68382, 68676, 127925, 10122, 4864, 66568, 4144, 7937, 83193, 6245, 68652,
+ 2732, 42734, 745, 68045, 195097, 92195, 4777, 7821, 129136, 68631, 42775,
+ 194661, 128445, 120679, 3097, 120908, 5966, 121197, 4778, 126469, 10863,
+ 127506, 4781, 92986, 64407, 128503, 128323, 8577, 71221, 68196, 43285,
+ 10216, 4782, 983485, 983411, 120757, 68618, 12325, 43056, 8717, 0, 0,
+ 4776, 73818, 11492, 8700, 129128, 13176, 68363, 10426, 67247, 71091,
+ 10362, 194706, 1715, 4849, 8242, 9561, 73922, 43278, 42635, 0, 127207,
+ 5963, 917926, 983483, 0, 4850, 73900, 1607, 466, 4853, 118995, 4854,
+ 127918, 5164, 73807, 1350, 5124, 64420, 1993, 5362, 8471, 2708, 92471,
+ 12445, 3785, 234, 3199, 121273, 41268, 4848, 2530, 74941, 2068, 1964, 0,
+ 73762, 10458, 983417, 8576, 78543, 0, 2704, 4794, 121102, 68211, 8322,
+ 4797, 5753, 0, 2694, 4792, 0, 2439, 65104, 69804, 983426, 303, 74625,
+ 68229, 983427, 2437, 78659, 4221, 4844, 92216, 0, 0, 0, 70042, 74095,
+ 43292, 0, 2441, 10739, 65090, 194622, 70436, 118929, 2451, 2714, 119326,
+ 0, 43379, 4937, 43376, 753, 5849, 10597, 43089, 11722, 9248, 92555,
+ 42879, 11725, 917969, 0, 2726, 3107, 73958, 4941, 64937, 119233, 9140,
+ 1408, 5261, 4607, 194715, 181, 983432, 4942, 9539, 4938, 0, 65201, 5259,
+ 9369, 64185, 4142, 5257, 983601, 6844, 4964, 5264, 64178, 64177, 12979,
+ 41411, 64182, 64181, 64180, 64179, 9482, 4873, 41231, 1822, 42526,
+ 127989, 12758, 3865, 194660, 121129, 10500, 0, 119024, 78028, 92408,
+ 9830, 43642, 389, 10893, 7521, 127879, 4872, 5463, 128119, 3125, 9567, 0,
+ 4878, 5459, 4604, 119650, 9557, 5465, 68617, 0, 11494, 126492, 9563,
+ 10865, 74570, 43279, 64186, 68521, 78714, 64191, 64190, 8898, 64188,
+ 129153, 41030, 74226, 78713, 74600, 74994, 917834, 0, 78805, 41031,
+ 78801, 11960, 6745, 3082, 983269, 78539, 73919, 10573, 41744, 7079, 5856,
+ 67838, 5163, 78809, 128162, 1817, 66724, 78538, 119010, 10564, 7763,
+ 13077, 41813, 4400, 41745, 64207, 10275, 8925, 10371, 10307, 41814, 4248,
+ 77979, 0, 4541, 6299, 64204, 64203, 64201, 64200, 64199, 64198, 126471,
42156, 78688, 0, 64193, 64192, 65223, 9943, 64197, 64196, 64195, 64194,
- 13282, 64175, 64174, 64173, 78189, 846, 78186, 9965, 0, 0, 0, 0, 2543,
- 12163, 3108, 9745, 64167, 64166, 64165, 64164, 2110, 92176, 64169, 64168,
- 64949, 10972, 10251, 10247, 42768, 715, 2295, 43299, 9453, 5348, 10943,
- 120378, 0, 11352, 550, 9910, 126705, 0, 66579, 11551, 0, 195080, 9504,
- 7187, 0, 10373, 0, 120791, 10261, 10253, 6404, 10277, 78183, 11984, 1552,
- 65222, 6998, 78180, 0, 3128, 4789, 5067, 5066, 118849, 4784, 0, 8827,
- 1146, 5065, 69890, 78192, 68136, 78190, 43412, 5064, 2431, 0, 9450, 1809,
- 0, 78200, 78201, 5062, 1264, 64817, 13254, 11697, 126598, 9785, 64716, 0,
- 3933, 74559, 4740, 7954, 0, 0, 42609, 0, 74175, 0, 127016, 0, 983873,
- 42130, 0, 5151, 917829, 917823, 0, 93980, 0, 7620, 3800, 65122, 0, 0,
- 8355, 7854, 0, 954, 64927, 4185, 41045, 127141, 41438, 41439, 68666,
- 10711, 4593, 127745, 120584, 983408, 64774, 8053, 10532, 66727, 0, 0, 0,
- 64759, 6381, 5166, 9888, 127800, 5148, 42834, 0, 78205, 78206, 43787,
- 78204, 64131, 3119, 917814, 0, 3060, 64135, 9986, 0, 77876, 636, 11698,
- 0, 983451, 9916, 11701, 7836, 42741, 64137, 8320, 78640, 8863, 92431,
- 119960, 1477, 43289, 0, 74358, 8618, 983402, 9908, 983981, 0, 0, 3937,
- 12312, 0, 983403, 0, 64781, 912, 6349, 4536, 93954, 74532, 126594, 6244,
- 92209, 71341, 3935, 120665, 983476, 0, 11950, 5392, 42248, 65129, 68656,
- 5397, 0, 12046, 12599, 0, 128261, 5395, 0, 5393, 354, 68615, 119948,
- 78503, 0, 0, 42039, 0, 0, 64142, 626, 0, 5895, 0, 0, 5780, 0, 0, 128874,
- 0, 0, 43297, 983079, 4311, 4644, 8818, 0, 128186, 0, 7145, 3918, 66452,
- 3797, 1644, 92346, 9658, 4140, 11385, 65947, 6455, 9030, 813, 119945,
- 68131, 4146, 119957, 5360, 2466, 0, 67669, 119942, 6249, 42117, 92287,
- 128224, 0, 0, 74046, 43745, 4911, 988, 917807, 0, 983468, 43061, 7054,
- 64147, 0, 64920, 68195, 6698, 118933, 92506, 0, 120006, 11981, 12202, 0,
- 11032, 67654, 6093, 11608, 975, 68662, 65843, 170, 0, 0, 4169, 0, 41859,
- 6058, 120401, 13203, 120657, 0, 0, 68657, 9818, 10178, 10324, 42106,
- 5898, 74540, 4738, 41856, 7062, 917865, 4737, 11779, 4742, 120564, 92391,
- 73736, 983364, 9825, 6448, 6715, 127008, 4831, 0, 92525, 0, 5300, 4741,
- 42108, 983354, 64159, 4736, 64148, 0, 849, 92191, 78491, 43288, 0, 66620,
- 917916, 127331, 65549, 9496, 64598, 118866, 983366, 7876, 68132, 917872,
- 3928, 917870, 43378, 10706, 7198, 0, 4842, 12053, 128129, 0, 4841, 0,
- 4171, 12008, 6251, 3923, 1490, 0, 119591, 126512, 40972, 5245, 0, 10114,
- 42001, 41888, 4845, 8332, 40974, 64347, 4840, 9077, 78346, 1747, 917849,
- 4825, 69240, 917852, 68655, 0, 983388, 0, 0, 68628, 983347, 9850, 118937,
- 367, 1472, 917859, 6687, 1274, 0, 5905, 12339, 8919, 73953, 10907, 65261,
- 11023, 119559, 4830, 9134, 78666, 64126, 43011, 0, 126626, 64101, 0, 0,
- 4824, 10614, 119659, 0, 1888, 1960, 7861, 917856, 78524, 41836, 43012,
- 6052, 6064, 54, 43009, 12214, 0, 6211, 0, 358, 41997, 41833, 11442,
- 10758, 65774, 0, 120384, 64115, 92221, 70018, 0, 0, 119053, 0, 12765,
- 64118, 126998, 12962, 0, 126580, 4017, 12827, 5241, 120392, 0, 41118,
- 3924, 0, 11366, 917843, 0, 0, 917846, 41116, 917844, 917564, 0, 11363,
- 12057, 11917, 1567, 74000, 4721, 126641, 66202, 8957, 4139, 0, 0, 0, 0,
- 0, 12740, 128702, 4722, 6816, 127793, 12759, 4725, 983383, 4726, 0,
- 194892, 983622, 128321, 917905, 0, 12755, 12762, 4015, 0, 8052, 476, 0,
- 0, 128294, 64212, 41020, 1382, 64209, 64216, 44002, 64214, 1656, 41831,
- 0, 0, 41843, 8720, 3908, 1452, 13111, 0, 64067, 127328, 8552, 64113,
- 41845, 3849, 78732, 66232, 9778, 120066, 5891, 7064, 55, 9948, 119085, 0,
- 0, 7935, 2420, 0, 1114, 92599, 67585, 70104, 120053, 92350, 120051, 3938,
- 120057, 65417, 64717, 120060, 120061, 65415, 120059, 6292, 65303, 7955,
- 6452, 4713, 128196, 66249, 917885, 917890, 917891, 65152, 719, 120044,
- 78623, 120042, 6713, 4532, 65412, 69822, 10868, 4717, 2349, 5902, 66450,
- 4712, 917902, 917899, 917900, 65416, 8155, 4718, 3942, 4714, 9625, 0,
- 6383, 194744, 12006, 128565, 0, 0, 0, 0, 65414, 6454, 1229, 126606,
- 66437, 66025, 78699, 0, 42500, 120508, 4809, 9623, 917874, 78694, 917880,
- 917877, 917878, 65405, 68159, 12893, 917882, 5365, 4545, 8901, 92421,
- 119555, 4813, 128262, 0, 5925, 4808, 64330, 0, 65475, 118940, 195028,
- 4814, 0, 4810, 0, 0, 64928, 10543, 0, 3522, 71335, 414, 65404, 0, 195027,
- 6456, 73820, 0, 6691, 42193, 92225, 128171, 0, 74495, 0, 0, 0, 118820,
- 9751, 65407, 128085, 11770, 3919, 0, 0, 65061, 0, 0, 0, 12235, 0, 0,
- 127233, 64092, 983470, 64080, 0, 64090, 0, 69913, 10162, 10310, 0, 8454,
- 127888, 42038, 387, 41363, 12737, 0, 4780, 43368, 0, 64310, 64621, 6732,
- 78116, 0, 983139, 0, 983074, 8896, 0, 375, 6976, 66582, 119005, 983874,
- 0, 983434, 119202, 119203, 12526, 43120, 2315, 0, 1938, 119197, 0, 4529,
- 119200, 119201, 119198, 119199, 69692, 983432, 69698, 13150, 64492, 0, 0,
- 2291, 12902, 0, 42891, 66327, 74298, 917857, 10799, 69690, 2587, 66372,
- 0, 4193, 92250, 4241, 983057, 7998, 0, 0, 0, 126640, 2316, 118821, 0, 0,
- 0, 64297, 74799, 92442, 74140, 0, 5373, 0, 983886, 3762, 10015, 120672,
- 119232, 0, 41590, 0, 70098, 3780, 7485, 5779, 0, 42037, 0, 3906, 12349,
- 0, 8326, 0, 65498, 3763, 6983, 5618, 0, 3779, 0, 43613, 0, 0, 0, 0, 0, 0,
- 280, 74558, 127332, 68138, 13072, 1894, 0, 0, 65478, 43310, 7231, 0,
- 11773, 0, 0, 0, 0, 2551, 0, 6453, 10200, 6235, 983752, 119237, 0, 128805,
- 4470, 11826, 917557, 7780, 5369, 118958, 5249, 0, 5367, 8756, 127143, 0,
- 5377, 120585, 68143, 1688, 78245, 983356, 69685, 983756, 0, 0, 44020,
- 6808, 41319, 1300, 10650, 41692, 64505, 2290, 0, 119624, 1465, 10850,
- 3943, 0, 41205, 41315, 118961, 0, 0, 5352, 0, 0, 8839, 41314, 7384, 7785,
- 41204, 127322, 41209, 69637, 92241, 43607, 0, 0, 5420, 3897, 10134, 0,
- 74417, 4018, 7150, 68127, 0, 0, 0, 0, 127526, 2561, 68621, 3542, 7148,
- 12076, 7951, 68152, 118857, 5303, 6276, 1706, 0, 78751, 7146, 0, 65150,
- 41819, 0, 73951, 10847, 41822, 9985, 860, 0, 10506, 983435, 69641, 10753,
- 10830, 0, 615, 64490, 7574, 92617, 77922, 0, 12909, 43016, 64559, 127028,
- 0, 0, 67996, 2020, 0, 4022, 128783, 0, 77923, 126593, 41691, 0, 0, 74329,
- 0, 64622, 9070, 0, 68411, 3911, 42829, 43122, 1033, 74440, 0, 7000, 3904,
- 0, 128198, 0, 118931, 119630, 13123, 10846, 3450, 127360, 7397, 118807,
- 0, 42778, 10000, 41088, 449, 0, 3777, 68458, 0, 9636, 0, 10738, 69634,
- 9367, 593, 41085, 3999, 65226, 41713, 12764, 0, 64409, 3596, 0, 0, 9763,
- 120280, 92192, 12347, 124, 12981, 41127, 2092, 92687, 0, 0, 0, 10820,
- 43987, 0, 0, 1769, 41715, 2463, 78489, 0, 12770, 126500, 1538, 0, 43124,
- 0, 195058, 7795, 120300, 0, 4828, 1258, 127802, 2006, 0, 0, 9498, 127032,
+ 12231, 42652, 64174, 64173, 78189, 846, 78186, 9965, 74495, 83492, 83493,
+ 83494, 2543, 12163, 3108, 9745, 64167, 64166, 64165, 64164, 2110, 92176,
+ 64169, 64168, 64949, 10972, 10251, 10247, 42768, 715, 2295, 43299, 9453,
+ 5348, 10943, 66390, 0, 11352, 550, 9910, 125127, 0, 66579, 11551, 128464,
+ 195080, 9504, 7187, 82957, 10373, 983418, 120375, 10261, 10253, 6404,
+ 10277, 78183, 11984, 1552, 65222, 6998, 78180, 71429, 3128, 4789, 5067,
+ 5066, 118849, 4784, 0, 8827, 1146, 5065, 69890, 78192, 68136, 78190,
+ 43412, 5064, 2431, 0, 9450, 1809, 0, 78200, 78201, 5062, 1264, 64817,
+ 13254, 11697, 126598, 9785, 64716, 0, 3933, 74559, 4740, 7954, 0, 125023,
+ 42609, 119855, 74175, 66912, 127016, 0, 121300, 42130, 121046, 5151,
+ 121346, 83488, 0, 93980, 917802, 7620, 3800, 65122, 83487, 83480, 8355,
+ 7854, 83483, 954, 64927, 4185, 41045, 127141, 41438, 41439, 68666, 10711,
+ 4593, 82993, 120584, 983410, 64774, 8053, 10532, 66727, 983414, 0, 78642,
+ 64759, 1325, 5166, 9888, 127800, 5148, 42834, 0, 78205, 78206, 43787,
+ 78204, 43913, 3119, 917814, 0, 3060, 64135, 9986, 74996, 77876, 636,
+ 11698, 83476, 82961, 9916, 11701, 7836, 42741, 64137, 8320, 78640, 8863,
+ 70201, 119960, 1477, 43289, 68492, 67164, 8618, 983404, 9908, 74972, 0,
+ 0, 3937, 12312, 0, 983405, 0, 64781, 912, 6349, 4536, 93954, 74532,
+ 126594, 6244, 92209, 71341, 3935, 120665, 128969, 0, 11950, 5392, 42248,
+ 65129, 68656, 5397, 128310, 12046, 12599, 67407, 128261, 5395, 0, 5393,
+ 354, 68615, 77853, 74366, 121404, 0, 42039, 113817, 0, 64142, 626, 0,
+ 5895, 0, 43910, 5780, 0, 10220, 121337, 43907, 71121, 43297, 70188, 4311,
+ 4644, 8818, 78158, 128186, 128869, 7145, 3918, 66452, 3797, 1644, 92346,
+ 9658, 4140, 11385, 65947, 6455, 9030, 813, 119945, 68131, 4146, 119957,
+ 5360, 2466, 0, 67669, 94020, 6249, 42117, 68828, 92206, 128023, 119255,
+ 74046, 43745, 4911, 988, 71180, 0, 983470, 43061, 7054, 64147, 983847,
+ 64920, 68195, 6698, 118933, 92506, 0, 70849, 11981, 12202, 195087, 11032,
+ 67654, 6093, 11608, 975, 66415, 65843, 170, 0, 67239, 4169, 0, 41859,
+ 6058, 120401, 13203, 120657, 70507, 125091, 68657, 9818, 10178, 10324,
+ 42106, 5898, 74540, 4738, 41856, 7062, 127120, 4737, 11779, 4742, 83425,
+ 68758, 68342, 83420, 9825, 6448, 6715, 127008, 4831, 83418, 83419, 67731,
+ 5300, 4741, 42108, 127057, 64159, 4736, 64148, 92634, 849, 92191, 78491,
+ 43288, 0, 66620, 127533, 127331, 65549, 9496, 64598, 118866, 983368,
+ 7876, 68132, 66280, 3928, 917870, 43378, 10706, 7198, 120890, 4842,
+ 12053, 128129, 68746, 4841, 0, 4171, 12008, 6251, 3923, 1490, 83411,
+ 83412, 126512, 40972, 5245, 70794, 10114, 42001, 41888, 4845, 8332,
+ 40974, 64347, 4840, 9077, 78346, 1747, 917849, 4825, 69240, 121443,
+ 68655, 0, 983390, 0, 0, 68628, 983349, 9850, 118937, 367, 1472, 917859,
+ 6687, 1274, 195022, 5905, 12339, 8919, 73953, 10907, 65261, 11023,
+ 119559, 4830, 9134, 78666, 64126, 43011, 83297, 78669, 64101, 0, 128434,
+ 4824, 10614, 119659, 126993, 1888, 1960, 7861, 83416, 78524, 41836,
+ 43012, 6052, 6064, 54, 43009, 12214, 83260, 6211, 120386, 358, 41997,
+ 41833, 11442, 10758, 65774, 113823, 120384, 64115, 92221, 70018, 983611,
+ 983708, 119053, 0, 12765, 64118, 126998, 12962, 0, 126580, 4017, 12827,
+ 5241, 120392, 0, 41118, 3924, 983894, 11366, 129084, 0, 0, 83401, 41116,
+ 83403, 83404, 83397, 11363, 12057, 11917, 1567, 74000, 4721, 83396,
+ 66202, 8957, 4139, 70512, 0, 983074, 0, 0, 12740, 121470, 4722, 6816,
+ 124974, 12759, 4725, 67099, 4726, 83467, 83468, 983622, 70029, 83463,
+ 74913, 12755, 12762, 4015, 67690, 8052, 476, 0, 74893, 128294, 64212,
+ 41020, 1382, 64209, 64216, 44002, 64214, 1656, 41831, 127553, 125121,
+ 41843, 8720, 3908, 1452, 13111, 983421, 64067, 92287, 8552, 64113, 41845,
+ 3849, 78732, 66232, 9778, 120066, 5891, 7064, 55, 9948, 119085, 83302,
+ 917610, 7935, 2420, 0, 1114, 78120, 67585, 70104, 70432, 83447, 74920,
+ 3938, 120057, 65417, 64717, 120060, 71920, 65415, 66884, 6292, 65303,
+ 7955, 6452, 4713, 128196, 66249, 917885, 194766, 129073, 65152, 719,
+ 120044, 78623, 120042, 6713, 4532, 65412, 69822, 10868, 4717, 2349, 5902,
+ 66450, 4712, 75055, 917899, 65400, 65416, 8155, 4718, 3942, 4714, 9625,
+ 0, 6383, 194744, 12006, 128565, 194789, 0, 113756, 0, 65414, 6454, 1229,
+ 83457, 66437, 66025, 78699, 83452, 42500, 120508, 4809, 9623, 129137,
+ 78694, 121173, 128777, 917858, 65405, 68159, 12893, 78617, 5365, 4545,
+ 8901, 92421, 119555, 4813, 128262, 194729, 5925, 4808, 64330, 128400,
+ 65475, 83432, 68244, 4814, 83427, 4810, 83429, 83430, 64928, 10543,
+ 71249, 3522, 71335, 414, 65404, 0, 83442, 6456, 73820, 83445, 6691,
+ 42193, 66284, 83441, 0, 68337, 0, 43858, 43832, 118820, 9751, 65407,
+ 128085, 11770, 3919, 120724, 0, 65061, 983945, 917894, 129142, 12235,
+ 128572, 92701, 121087, 64092, 68739, 64080, 129063, 64090, 983586, 69913,
+ 10162, 10310, 121210, 8454, 121387, 42038, 387, 41363, 12737, 0, 4780,
+ 43368, 0, 64310, 64621, 6732, 78116, 0, 121295, 195024, 92193, 8896, 0,
+ 375, 6976, 66582, 119005, 74997, 127325, 983436, 119202, 119203, 12526,
+ 43120, 2315, 0, 1938, 119197, 128452, 4529, 119200, 119201, 119198,
+ 119199, 69692, 129124, 69698, 13150, 64492, 128974, 78761, 2291, 12902,
+ 0, 42891, 66327, 70502, 917857, 10799, 69690, 2587, 66372, 128628, 4193,
+ 66823, 4241, 129195, 7998, 83276, 0, 127009, 126640, 2316, 118821, 0,
+ 983934, 0, 64297, 74799, 92442, 74140, 128148, 5373, 128798, 70370, 3762,
+ 10015, 120672, 119232, 125109, 41590, 0, 70098, 3780, 7485, 5779, 917898,
+ 42037, 0, 3906, 12349, 74793, 8326, 127333, 65498, 3763, 6983, 5618, 0,
+ 3779, 983194, 43613, 70132, 0, 83288, 78335, 83289, 0, 280, 74558,
+ 121353, 67396, 13072, 1894, 83291, 67735, 65478, 43310, 7231, 0, 11773,
+ 0, 119165, 11144, 917778, 2551, 0, 6453, 10200, 6235, 983752, 119237,
+ 71877, 128669, 4470, 11826, 917557, 7780, 5369, 118958, 5249, 983066,
+ 5367, 8756, 127143, 119183, 5377, 120585, 68143, 1688, 78245, 5218,
+ 69685, 983756, 0, 113794, 44020, 6808, 41319, 1300, 10650, 41692, 64505,
+ 2290, 71057, 119624, 1465, 10850, 3943, 0, 41205, 41315, 118961, 119333,
+ 67148, 5352, 113753, 0, 8839, 41314, 7384, 7785, 41204, 127322, 41209,
+ 69637, 92241, 43607, 71254, 0, 5420, 3897, 10134, 120381, 74417, 4018,
+ 7150, 68127, 71425, 0, 121427, 127864, 127526, 2561, 68621, 3542, 7148,
+ 12076, 7951, 68152, 118857, 5303, 6276, 1706, 120750, 78751, 7146,
+ 983682, 65150, 41819, 0, 73951, 10847, 41822, 9985, 860, 0, 10506,
+ 983437, 69641, 10753, 10830, 119339, 615, 64490, 7574, 74082, 77922, 0,
+ 12909, 43016, 64559, 127028, 0, 121231, 67996, 2020, 128790, 4022,
+ 128783, 120701, 77923, 126593, 41691, 0, 75060, 74329, 0, 64622, 9070, 0,
+ 68411, 3911, 42829, 43122, 1033, 74440, 983813, 7000, 3904, 983628,
+ 73737, 125105, 118931, 119630, 13123, 10846, 3450, 127360, 7397, 118807,
+ 917891, 42778, 10000, 41088, 449, 0, 3777, 68458, 113725, 9636, 0, 10738,
+ 69634, 9367, 593, 41085, 3999, 65226, 41713, 12764, 983723, 64409, 3596,
+ 129044, 128090, 9763, 120280, 74609, 12347, 124, 12981, 41127, 2092,
+ 92687, 0, 127555, 194632, 10820, 43987, 0, 128907, 1769, 41715, 2463,
+ 71214, 83070, 12770, 71222, 1538, 92617, 43124, 194614, 195058, 7795,
+ 120300, 129053, 4828, 1258, 127802, 2006, 0, 121130, 9498, 127032,
127033, 120289, 120288, 3939, 120290, 8846, 8943, 120287, 120286, 2650,
- 4491, 1961, 42602, 11525, 120292, 1959, 120294, 55228, 11774, 41016, 0,
- 68675, 128054, 1511, 9324, 78211, 10519, 66331, 3454, 19930, 0, 41019, 0,
- 0, 65292, 6822, 12862, 0, 0, 42143, 41828, 78207, 65531, 78208, 118879,
- 55223, 0, 128071, 41826, 8865, 6402, 0, 13279, 7917, 74755, 0, 7733, 0,
- 4998, 983896, 92332, 41950, 0, 4268, 0, 0, 70061, 4013, 0, 10881, 0, 0,
- 0, 74788, 2014, 0, 0, 9765, 0, 0, 0, 195059, 78357, 65281, 127825, 10949,
- 0, 0, 0, 2015, 0, 0, 0, 66318, 43233, 0, 42517, 0, 0, 0, 12698, 8094,
- 10135, 65909, 6474, 794, 0, 12656, 128122, 119353, 128270, 1665, 0, 4833,
- 983053, 119351, 127367, 0, 189, 12611, 0, 0, 2859, 4838, 0, 4834, 65078,
- 0, 0, 4837, 127061, 770, 0, 811, 0, 41042, 917551, 41318, 64427, 0,
- 128208, 78848, 3895, 0, 74341, 3976, 0, 42859, 10193, 3116, 7747, 0, 0,
- 0, 0, 0, 43686, 78846, 41877, 0, 2871, 64614, 128785, 999, 0, 6345,
- 41876, 2663, 2017, 0, 0, 11040, 10150, 0, 64308, 1522, 597, 4775, 12555,
- 12571, 12550, 12583, 12560, 2019, 12556, 12584, 3092, 0, 12562, 4783,
- 12566, 12569, 12554, 0, 10812, 78851, 0, 0, 3078, 1402, 0, 128275, 0, 0,
- 119248, 394, 3088, 0, 92172, 0, 3991, 64391, 0, 128524, 424, 66328, 1999,
- 69659, 73914, 0, 0, 0, 0, 42231, 8246, 0, 0, 0, 41840, 983609, 2377,
+ 4491, 1961, 42602, 11525, 120292, 1959, 120294, 55228, 11774, 41016,
+ 983262, 68675, 128054, 1511, 9324, 78211, 10519, 66331, 3454, 19930, 0,
+ 41019, 127944, 0, 65292, 6822, 12862, 0, 0, 42143, 41828, 78207, 65531,
+ 70864, 118879, 55223, 0, 128071, 41826, 8865, 6402, 113827, 13279, 7917,
+ 74755, 917948, 7733, 983408, 4998, 68493, 92332, 41950, 0, 4268, 194790,
+ 195056, 70061, 4013, 128718, 10881, 0, 983163, 0, 74788, 2014, 2432,
+ 71901, 9765, 195052, 0, 917854, 195059, 78357, 65281, 127825, 10949, 0,
+ 0, 119315, 2015, 121088, 92765, 71840, 66318, 43233, 917992, 42517,
+ 68060, 0, 0, 12698, 8094, 10135, 65909, 6474, 794, 43497, 12656, 66335,
+ 119353, 67279, 1665, 71853, 4833, 917985, 71188, 127367, 121464, 189,
+ 12611, 0, 983420, 2859, 4838, 983930, 4834, 65078, 0, 92991, 4837, 67413,
+ 770, 92671, 811, 70062, 41042, 83073, 41318, 64427, 73999, 67693, 78848,
+ 3895, 92615, 74341, 3976, 128466, 42859, 10193, 3116, 7747, 78488, 0,
+ 43496, 0, 121015, 43686, 78846, 41877, 983743, 2871, 64614, 68843, 999,
+ 983844, 6345, 41876, 2663, 2017, 121234, 67824, 11040, 10150, 120678,
+ 64308, 1522, 597, 4775, 12555, 12571, 12550, 12583, 12560, 2019, 12556,
+ 12584, 3092, 0, 12562, 4783, 12566, 12569, 12554, 83344, 10812, 78851, 0,
+ 83342, 3078, 1402, 0, 83348, 0, 125072, 119248, 394, 3088, 83347, 92172,
+ 917965, 3991, 64391, 83341, 128524, 424, 66328, 1999, 69659, 73914, 0,
+ 127534, 66903, 128468, 42231, 2209, 125103, 0, 0, 41840, 66913, 2377,
1298, 64011, 12572, 11318, 12557, 12559, 12570, 7479, 1003, 2373, 9446,
- 7481, 9448, 48, 0, 9480, 481, 0, 9438, 9439, 9440, 9441, 8465, 9443,
- 9444, 9445, 9430, 9431, 9432, 9433, 9434, 9435, 3984, 9437, 0, 0, 9424,
- 9425, 9426, 9427, 9428, 9429, 64758, 2362, 9655, 0, 2004, 9096, 9782,
- 128848, 9172, 128545, 19965, 0, 5955, 67666, 1108, 0, 74773, 0, 0, 64782,
- 3926, 92448, 65210, 8798, 0, 92165, 1392, 0, 0, 127364, 10606, 8065,
- 118805, 10353, 10417, 0, 0, 64524, 92418, 4019, 0, 983288, 43280, 8219,
- 68402, 1812, 119963, 983692, 0, 126488, 42410, 74448, 119132, 6054,
- 10697, 3169, 42297, 42322, 10642, 3909, 9950, 0, 128139, 983261, 68678,
- 0, 0, 1049, 0, 65707, 2304, 41806, 92326, 42336, 3921, 0, 11775, 64760,
+ 7481, 9448, 48, 983084, 9480, 481, 0, 9438, 9439, 9440, 9441, 8465, 9443,
+ 9444, 9445, 9430, 9431, 9432, 9433, 9434, 9435, 3984, 9437, 129135,
+ 92934, 9424, 9425, 9426, 9427, 9428, 9429, 64758, 2362, 9655, 128050,
+ 2004, 9096, 9782, 70842, 9172, 83071, 19965, 0, 5955, 67666, 1108, 0,
+ 74773, 78271, 128909, 64782, 3926, 92448, 65210, 8798, 0, 92165, 1392,
+ 983817, 120838, 127364, 10606, 8065, 118805, 10353, 10417, 127238,
+ 128739, 64524, 92418, 4019, 0, 125082, 43280, 8219, 68402, 1812, 119963,
+ 121067, 128430, 120939, 42410, 74448, 119132, 6054, 10697, 3169, 42297,
+ 42322, 10642, 3909, 9950, 128848, 128139, 983263, 68678, 74986, 983790,
+ 1049, 43517, 65707, 2304, 41806, 92326, 42336, 3921, 0, 11775, 64760,
11766, 1038, 42303, 9823, 127278, 69236, 4008, 64004, 8773, 10733, 36, 0,
- 5153, 41805, 0, 73735, 763, 41808, 64910, 983130, 2009, 0, 0, 127142,
- 9640, 119951, 0, 120695, 8621, 120523, 12852, 3031, 983050, 64361, 0,
- 182, 194718, 92716, 92598, 119950, 42613, 9058, 366, 0, 9892, 5969,
- 11754, 10848, 4570, 65301, 44013, 4255, 127889, 10102, 41189, 4003,
- 41026, 68109, 13293, 41192, 69635, 0, 42251, 0, 42534, 65179, 11287,
- 6128, 0, 11034, 10923, 64423, 0, 65506, 0, 65861, 74083, 92600, 9932, 0,
- 92423, 119955, 0, 9817, 0, 120140, 0, 12117, 66586, 4183, 10540, 66250,
- 9063, 127045, 0, 119954, 0, 12897, 3792, 2011, 0, 6065, 43160, 0, 194715,
- 8692, 41186, 41816, 41023, 41818, 41187, 11659, 7922, 12614, 2005, 8523,
- 78002, 0, 7513, 1863, 4710, 0, 5956, 7621, 78006, 92624, 4705, 716,
- 78004, 0, 4704, 120040, 120270, 42241, 161, 43977, 74546, 66214, 4706, 0,
- 69914, 42672, 4709, 10680, 119065, 43293, 119944, 0, 119164, 120328,
- 92467, 10187, 1700, 119223, 0, 0, 128119, 4004, 0, 10968, 43296, 983642,
- 8506, 0, 0, 126996, 1005, 937, 78216, 4734, 2870, 0, 78218, 983109, 7463,
- 4729, 0, 235, 1384, 4728, 0, 120420, 92490, 74449, 8109, 43105, 983174,
- 4730, 447, 13186, 1513, 4733, 120415, 0, 0, 42527, 12911, 43427, 1383,
- 8565, 2469, 120024, 6690, 6156, 68117, 43439, 7993, 4288, 120416, 2674,
- 13238, 11922, 0, 120330, 3510, 13234, 0, 120407, 5605, 42095, 11364, 0,
- 1380, 65617, 120253, 120261, 13196, 13197, 120309, 120682, 9495, 119346,
- 0, 5959, 67984, 73976, 120305, 43371, 6941, 119349, 13205, 13211, 5801,
- 12769, 65905, 41697, 1283, 120302, 4779, 0, 3719, 4006, 983569, 19957,
- 128773, 2021, 119332, 120699, 119150, 43028, 65493, 41838, 3875, 5962,
- 64341, 92616, 9814, 43457, 5827, 3314, 7787, 78234, 65494, 68153, 0, 0,
- 120636, 64531, 120692, 194626, 0, 0, 66316, 65467, 5771, 41298, 983794,
- 9742, 521, 0, 10800, 92222, 8404, 194625, 483, 7096, 7089, 66323, 928, 0,
- 0, 119018, 10599, 11586, 3989, 10971, 43748, 65782, 9841, 8843, 12145,
- 92470, 10074, 78548, 0, 3769, 0, 0, 0, 983107, 9573, 0, 65290, 8849, 0,
- 65855, 65112, 1796, 120505, 0, 69665, 8164, 41301, 3502, 0, 7388, 10621,
- 73838, 78553, 5825, 13007, 68165, 0, 120457, 12661, 7608, 10354, 10418,
- 42411, 2022, 0, 1409, 12195, 4001, 3112, 10824, 120639, 1390, 0, 0, 421,
- 43536, 5846, 120120, 4130, 127775, 7595, 42588, 7600, 120121, 66035,
- 983913, 0, 65851, 42607, 128190, 92403, 3168, 0, 42134, 11831, 2370,
- 2846, 92605, 0, 0, 120132, 0, 1836, 0, 0, 92558, 3740, 69843, 6290,
- 65374, 120451, 2390, 3944, 66628, 120434, 0, 6135, 3118, 74265, 119093,
- 120446, 0, 0, 8127, 8975, 64739, 7943, 983743, 0, 10618, 2584, 0, 0, 0,
- 9998, 128564, 0, 0, 0, 0, 6204, 0, 0, 8279, 8776, 64954, 4975, 70075,
- 120130, 4267, 1631, 42206, 77983, 0, 195046, 65700, 66562, 0, 64645, 0,
- 0, 126588, 12586, 0, 9242, 127922, 0, 4523, 5842, 10495, 3122, 983797,
- 7793, 78275, 9328, 119104, 78393, 12604, 0, 6615, 2285, 92344, 3986,
- 44025, 0, 8912, 64555, 7409, 0, 983358, 9541, 78276, 0, 11275, 8540,
- 11498, 0, 983357, 41040, 2459, 0, 13060, 41041, 74413, 983138, 0, 0,
- 68427, 10450, 12551, 41043, 7020, 120353, 3765, 983350, 0, 1606, 120348,
- 120351, 3093, 68436, 0, 983061, 119613, 0, 0, 4312, 74091, 120337,
- 120336, 11923, 4023, 120333, 5763, 94015, 4827, 10894, 12810, 64406,
- 118785, 4455, 74321, 433, 119620, 66660, 2499, 0, 0, 118837, 11973,
- 13089, 4293, 120329, 42224, 42758, 12196, 42837, 42226, 119319, 0,
- 119126, 5817, 127806, 55277, 3120, 9797, 0, 0, 0, 10389, 126485, 0, 4895,
- 65358, 0, 4359, 585, 2383, 3509, 70037, 486, 4290, 5758, 127546, 0, 0,
- 7004, 0, 65880, 127886, 119048, 2380, 11380, 0, 93996, 2376, 0, 119320,
- 0, 5197, 127046, 127047, 127048, 2366, 127050, 127051, 120554, 120045, 0,
- 0, 0, 983084, 0, 0, 0, 74188, 71342, 983086, 983573, 120047, 128575, 0,
- 0, 120049, 0, 1847, 0, 10339, 983365, 42384, 0, 4227, 74158, 0, 92501,
- 43032, 0, 42365, 0, 12671, 11384, 0, 983465, 0, 64797, 983345, 5820,
- 983344, 120052, 120065, 0, 120064, 120650, 42137, 9893, 2754, 12664,
- 120063, 0, 7377, 127867, 41799, 65530, 1711, 12984, 43039, 3114, 6255,
- 983340, 118938, 0, 10853, 926, 983369, 74184, 983368, 120055, 0, 43175,
- 0, 43037, 41798, 41035, 11583, 127769, 41801, 119088, 119605, 520, 4200,
- 12699, 8331, 0, 3091, 41034, 127353, 983681, 8360, 0, 78044, 321, 4229,
- 64543, 917946, 65563, 0, 917974, 2861, 43793, 10095, 0, 9195, 92386,
- 1861, 0, 73733, 0, 0, 43041, 0, 43794, 128530, 3859, 12181, 41660, 8209,
- 0, 73867, 12973, 0, 74757, 127514, 41658, 0, 0, 5760, 0, 743, 4414,
- 120766, 0, 42632, 917973, 65161, 73896, 128589, 0, 1405, 119063, 43220,
- 43341, 0, 19919, 0, 64532, 65367, 43710, 0, 0, 3513, 0, 118883, 43342,
- 119064, 65529, 65364, 128197, 0, 6485, 1397, 0, 41986, 92678, 0, 0,
- 74097, 0, 7471, 12079, 67997, 12682, 43287, 92317, 0, 983143, 983707, 0,
- 0, 1099, 10490, 0, 10501, 65181, 74463, 0, 464, 41624, 65283, 67663,
- 78222, 1346, 0, 917631, 64573, 64897, 423, 1818, 65144, 0, 8272, 127812,
- 19911, 4218, 3087, 64960, 127234, 43564, 0, 0, 9584, 10465, 983902,
- 74359, 12626, 9106, 0, 42642, 120230, 64750, 9390, 0, 41797, 0, 0, 265,
- 41795, 64666, 126508, 43530, 2752, 0, 0, 983493, 59, 0, 983593, 0, 92371,
- 77873, 41810, 0, 7010, 0, 41809, 41495, 119364, 0, 42252, 42213, 8009,
- 3305, 43033, 511, 92700, 66255, 13127, 120067, 0, 74397, 120235, 917977,
- 65915, 1400, 41812, 10685, 194870, 2103, 10387, 4453, 43276, 917783,
- 13159, 0, 6481, 41213, 0, 0, 0, 0, 41983, 74198, 6617, 9116, 119654, 0,
- 462, 68110, 10493, 0, 8129, 0, 0, 74471, 6644, 11658, 0, 128245, 3452,
- 11906, 9581, 1385, 3098, 0, 119013, 43340, 0, 41033, 6493, 42626, 0, 0,
- 11426, 77887, 1681, 118789, 1204, 3755, 64661, 7235, 10170, 3966, 8911,
- 0, 41841, 43338, 0, 0, 5726, 64915, 42175, 0, 0, 41497, 65044, 120109,
- 2851, 43017, 983589, 0, 4373, 78058, 0, 9587, 1789, 6671, 128840, 3100,
- 0, 65360, 0, 92365, 917789, 64922, 0, 8190, 12083, 0, 0, 6506, 64312,
- 74374, 2368, 0, 4419, 983847, 119125, 3439, 1825, 1192, 120106, 8891,
- 3080, 120228, 2347, 5430, 0, 8990, 2848, 0, 128223, 92528, 249, 0, 0, 0,
- 120658, 0, 0, 8883, 917802, 728, 68178, 995, 0, 0, 64826, 0, 917798,
- 128348, 0, 19945, 8091, 558, 0, 12273, 194814, 983850, 12112, 69912, 0,
- 0, 74419, 12335, 120104, 917795, 3443, 3129, 0, 2102, 65445, 78258,
- 64891, 0, 7725, 65108, 78255, 0, 8624, 69246, 12446, 43295, 0, 41894, 0,
- 6277, 41672, 41893, 10010, 128678, 3540, 128649, 835, 71340, 69816,
- 119868, 74408, 0, 73959, 5426, 4258, 0, 0, 5424, 128127, 8283, 0, 5434,
- 983590, 0, 19917, 11408, 0, 11947, 0, 1404, 3095, 11432, 128307, 3464,
- 6486, 4819, 128233, 0, 570, 8095, 3672, 119864, 1498, 67866, 0, 128539,
- 431, 0, 0, 128182, 128096, 68167, 983663, 13096, 128643, 0, 43408, 9516,
- 128538, 5268, 42230, 42220, 0, 4450, 120511, 11547, 43417, 128542, 356,
- 3477, 227, 10488, 68203, 382, 11418, 0, 195066, 0, 0, 0, 0, 6484, 2541,
- 66039, 0, 78718, 92723, 3549, 0, 9110, 119665, 2743, 0, 43290, 194812,
- 9097, 0, 43015, 8782, 0, 776, 2524, 42707, 8573, 0, 126494, 0, 0, 42694,
- 64944, 8952, 3856, 118818, 0, 5872, 6495, 0, 0, 0, 92543, 0, 120733,
- 12849, 3953, 1897, 0, 65094, 11994, 4339, 74556, 92654, 67843, 0, 0, 0,
- 68473, 74104, 5228, 128804, 7868, 43184, 0, 0, 73986, 43438, 0, 43022, 0,
- 1162, 917847, 2671, 0, 0, 92632, 92631, 118865, 4553, 73811, 0, 195005,
- 0, 0, 19921, 74331, 11424, 195006, 4567, 41891, 0, 983788, 55249, 4820,
- 65239, 194662, 0, 194665, 43042, 119212, 1377, 12869, 4897, 42821, 9250,
- 0, 4438, 64385, 0, 1753, 11331, 6147, 194941, 43282, 8833, 0, 0, 6504,
- 78408, 126979, 10719, 0, 1898, 1413, 42443, 0, 802, 12141, 0, 194671,
- 6648, 10671, 2528, 0, 64789, 9169, 838, 120087, 120697, 844, 5014, 0,
- 256, 0, 9990, 0, 42739, 917851, 7542, 65464, 9726, 0, 6489, 10048, 74326,
- 78719, 66573, 0, 78724, 78712, 11761, 194655, 0, 41094, 0, 0, 194893, 0,
- 92689, 6196, 6945, 93969, 194890, 128184, 120491, 11816, 194943, 5733,
- 2930, 0, 0, 41098, 0, 41093, 0, 66626, 588, 9760, 0, 194717, 1238, 200,
- 983207, 1660, 73916, 0, 118905, 74362, 0, 92485, 194651, 0, 983706, 3394,
- 194894, 120668, 0, 0, 127358, 66219, 127183, 43284, 194656, 7817, 1841,
- 11055, 120533, 194979, 194982, 1669, 10776, 194981, 7701, 194980, 0,
- 194995, 1732, 4030, 0, 3963, 66611, 127530, 41768, 6491, 0, 65324, 914,
- 65323, 8071, 3538, 0, 2287, 65328, 92441, 74367, 7614, 0, 11819, 0,
- 12009, 12399, 0, 67852, 65537, 0, 10841, 43430, 5301, 0, 92618, 5734,
- 8960, 0, 92527, 65317, 77880, 0, 0, 0, 12304, 0, 0, 65315, 92670, 128511,
- 0, 0, 0, 119621, 92529, 74536, 12447, 64486, 127374, 126562, 983129, 0,
- 0, 983802, 42767, 10915, 0, 12007, 43695, 120520, 11975, 194878, 0,
- 92604, 2555, 8629, 128640, 43168, 41872, 43706, 4496, 194879, 128148,
- 120241, 0, 0, 0, 0, 64730, 70041, 66714, 68222, 0, 70076, 65596, 92306,
- 11416, 4280, 67655, 8765, 12784, 7792, 1393, 126473, 67871, 74386, 0,
- 8233, 12820, 0, 6683, 194876, 3442, 12144, 2841, 12543, 0, 1473, 42820,
- 64329, 127832, 0, 68642, 6488, 357, 1048, 41100, 0, 41104, 94003, 3406,
- 1054, 71320, 1040, 65450, 0, 4434, 1069, 0, 118862, 65737, 917765,
- 128705, 0, 983693, 9693, 41943, 126564, 41931, 41759, 12757, 4353, 0,
- 1059, 9790, 8995, 119974, 983696, 65937, 0, 41764, 10646, 0, 118833,
- 92372, 0, 74830, 78569, 12743, 983689, 6480, 917761, 41779, 42580, 66601,
- 12207, 119619, 6335, 66602, 11312, 64807, 0, 0, 41767, 119629, 983764,
- 43020, 128271, 3955, 74254, 0, 983754, 917861, 0, 77926, 9770, 9246,
- 12230, 0, 0, 0, 10448, 41783, 41786, 127093, 12797, 2755, 64571, 78578,
- 194927, 4857, 0, 4428, 12794, 73755, 128061, 78574, 0, 74284, 0, 5747,
- 78825, 0, 7978, 41092, 74571, 0, 11924, 43812, 42144, 65015, 0, 563, 0,
- 983691, 12798, 11271, 57, 0, 0, 917860, 119043, 0, 94051, 43137, 694, 0,
- 9876, 0, 119168, 0, 78822, 64537, 0, 277, 74385, 7229, 12761, 0, 0,
- 13025, 64811, 8757, 78824, 126478, 1574, 7381, 0, 2525, 4852, 5749,
- 68465, 13027, 42824, 120574, 1039, 7151, 10155, 5745, 188, 41858, 11592,
- 0, 74015, 9055, 41853, 4858, 917780, 0, 436, 4771, 0, 2786, 0, 4856,
- 8051, 0, 119609, 71327, 9644, 0, 0, 0, 194916, 120732, 66710, 118834,
- 983359, 73906, 128680, 127114, 0, 10234, 5843, 11939, 0, 42157, 0, 3157,
- 194918, 68393, 0, 3504, 119178, 0, 10822, 5149, 66029, 10226, 65142,
- 128025, 3594, 42424, 194959, 40, 12657, 983665, 0, 386, 0, 8834, 0,
- 12815, 43574, 0, 73907, 0, 74196, 7220, 74504, 0, 74316, 0, 65322, 4304,
- 74503, 8160, 78707, 194753, 0, 0, 128526, 1348, 92349, 78597, 126539,
- 13303, 0, 92392, 194755, 7599, 1278, 43616, 13269, 0, 0, 74387, 78179,
- 78598, 74492, 6097, 7568, 8780, 4982, 127464, 74501, 194763, 78592,
- 194762, 2672, 3735, 127470, 13138, 42266, 9484, 10724, 41202, 71364, 0,
- 43742, 0, 9487, 119959, 119117, 3842, 128768, 78668, 12442, 6193, 9791,
- 127976, 0, 42516, 7228, 7559, 74803, 78468, 7873, 11399, 119219, 194691,
- 194855, 194690, 194857, 3604, 120683, 119188, 128877, 78540, 78541,
- 42507, 1962, 43305, 78476, 42505, 11660, 0, 2072, 92312, 6995, 74173,
- 5437, 74174, 10669, 8702, 7964, 92352, 0, 199, 194843, 4105, 194845,
- 194699, 194847, 194710, 119875, 13148, 7560, 78479, 9226, 78480, 195070,
- 6472, 65814, 73954, 0, 4724, 0, 0, 9191, 0, 64432, 983817, 983247,
- 195024, 10196, 7886, 0, 6585, 0, 6680, 195042, 0, 195051, 6679, 74412,
- 92251, 194866, 74421, 11382, 983631, 983637, 127891, 127484, 194833,
- 194832, 6681, 127482, 12693, 194836, 42727, 78196, 128252, 78195, 65442,
- 119610, 69733, 9989, 43248, 66248, 194816, 0, 11321, 128845, 194820,
- 194819, 5297, 7042, 13284, 6112, 7968, 194825, 73927, 92444, 194736,
- 65746, 127476, 69889, 74389, 128696, 4342, 42839, 194831, 1677, 0, 0,
- 126590, 917855, 11091, 11011, 2719, 0, 0, 119595, 10160, 0, 0, 7585,
- 65169, 2052, 4308, 92174, 43000, 7505, 543, 64916, 64736, 0, 0, 64655, 0,
- 118922, 2064, 0, 43158, 7902, 0, 65265, 194639, 0, 127170, 0, 983625, 0,
- 0, 12994, 92728, 10828, 983943, 6228, 4307, 3482, 128527, 0, 0, 0, 506,
- 74573, 41194, 65735, 2055, 43255, 41195, 0, 8169, 983680, 8841, 0, 516,
- 93974, 2063, 119051, 34, 128850, 120186, 11504, 1612, 74333, 120182,
- 11827, 74308, 12001, 120178, 10242, 64564, 120179, 67986, 6584, 7749,
- 11037, 0, 1758, 127092, 10667, 10560, 120197, 92593, 1935, 11517, 120193,
- 120196, 120195, 1931, 120189, 74839, 120191, 1217, 64702, 12643, 825,
- 127838, 194905, 12294, 92428, 78834, 9138, 78831, 78833, 12631, 78829,
- 11080, 74554, 64000, 5591, 1239, 0, 11313, 0, 3403, 0, 0, 64364, 92269,
- 0, 74582, 8998, 12988, 0, 9152, 983849, 0, 126484, 67589, 41850, 64290,
- 3433, 92393, 12615, 1594, 42192, 6914, 67603, 0, 119569, 74565, 41353,
- 67602, 67611, 4337, 0, 127296, 918, 65035, 41351, 7681, 194900, 42577,
- 41393, 12668, 194904, 2477, 127285, 0, 127301, 0, 67604, 194880, 127235,
- 573, 127282, 194884, 11417, 194886, 119814, 194888, 67599, 0, 194889,
- 67607, 11482, 0, 3981, 3357, 0, 42223, 4207, 1288, 78842, 78839, 68419,
- 78837, 11589, 42195, 194872, 194599, 127263, 64602, 67618, 92539, 0,
- 42788, 68416, 64480, 194875, 8423, 3348, 448, 68476, 9717, 0, 0, 997, 0,
- 0, 92577, 0, 11440, 11379, 42000, 13139, 42221, 65013, 126999, 127760,
- 73796, 0, 119228, 12035, 0, 2818, 0, 74411, 73793, 0, 4172, 0, 0, 8373,
- 10873, 12197, 0, 0, 92265, 69706, 0, 78210, 0, 128110, 194865, 126982,
- 74563, 64828, 11419, 194868, 766, 1257, 0, 118845, 11381, 3265, 66617,
- 3274, 127365, 126523, 94042, 983950, 74522, 41989, 0, 0, 128798, 3263, 0,
- 65672, 0, 3270, 64539, 11489, 0, 0, 0, 0, 9505, 65518, 194776, 756,
- 194605, 0, 0, 0, 7261, 0, 186, 0, 119156, 5770, 13179, 65830, 12612,
- 12949, 64856, 12800, 983901, 74203, 64718, 11507, 0, 92434, 118929, 0,
- 11578, 0, 119296, 0, 0, 0, 0, 74568, 9254, 0, 1794, 120217, 64521, 5624,
- 120220, 120221, 119958, 120223, 3617, 66636, 64886, 94061, 120212,
- 120213, 120214, 1872, 66508, 120467, 41079, 10748, 5502, 119330, 4452, 0,
- 983771, 92526, 4511, 0, 983877, 64678, 11425, 0, 43245, 1231, 194783,
- 69903, 0, 9003, 8192, 0, 5305, 9653, 10616, 8694, 9546, 0, 0, 120478,
- 120200, 65205, 120202, 64063, 9878, 74780, 119626, 78202, 64058, 8799,
- 42131, 0, 64062, 1028, 64060, 64059, 837, 10567, 0, 43103, 0, 120754,
- 11427, 2902, 64043, 64042, 43749, 10756, 64047, 42606, 64045, 64044,
- 43979, 10076, 64040, 43060, 194942, 1034, 3392, 127771, 43091, 64033,
- 64032, 42735, 64038, 64037, 64036, 64035, 4291, 194928, 64015, 64014,
- 64681, 194930, 0, 78145, 0, 43090, 0, 3476, 8973, 64012, 42473, 64010,
- 64008, 64007, 2003, 7706, 64517, 78153, 2538, 64009, 204, 0, 4802, 4111,
- 8239, 9098, 4805, 64001, 64057, 7885, 7247, 64054, 983266, 0, 4767, 9343,
- 64049, 64048, 120034, 1133, 64053, 64052, 43453, 64050, 41340, 118975,
- 194835, 10005, 12329, 41333, 0, 8489, 1942, 0, 194834, 42520, 128249, 0,
- 0, 10760, 64023, 64022, 64021, 6582, 43670, 0, 64025, 9167, 42151, 78244,
- 983232, 2026, 64019, 64018, 64017, 64016, 12768, 0, 7582, 78252, 78248,
- 77914, 78246, 78247, 0, 77915, 78766, 6788, 13094, 77920, 7532, 41414,
- 78520, 3179, 78518, 64769, 78514, 78517, 11461, 74454, 10751, 9051,
- 120720, 6708, 10535, 983627, 68218, 55274, 2008, 64031, 64030, 294,
- 41874, 0, 126991, 65929, 0, 0, 0, 0, 64028, 8146, 64026, 41788, 194844,
- 0, 4351, 6343, 43247, 119888, 0, 119886, 119891, 119892, 119889, 11433,
- 119895, 119896, 0, 7801, 65578, 194839, 12915, 43968, 3297, 9699, 194955,
- 1135, 0, 0, 128525, 1995, 6722, 983925, 0, 2552, 41546, 60, 68394, 8649,
- 41549, 78496, 983327, 0, 6682, 0, 78679, 64710, 41547, 983630, 2013,
- 128291, 78530, 78532, 78528, 78529, 12832, 78493, 8081, 8362, 3537,
- 119908, 9137, 7155, 8999, 0, 78533, 3466, 0, 0, 1996, 0, 3453, 6282, 0,
- 2002, 2000, 120175, 537, 0, 4179, 65119, 1998, 0, 1842, 0, 92674, 9628,
- 68446, 12081, 9826, 64502, 1767, 0, 0, 0, 120201, 983646, 0, 0, 3059,
- 44024, 120204, 119953, 92693, 0, 0, 92452, 4100, 920, 1811, 1355, 0, 0,
- 3592, 10078, 0, 0, 0, 8592, 65870, 68164, 128792, 10742, 0, 42918, 1994,
- 9281, 3296, 12865, 1997, 1895,
+ 5153, 41805, 0, 73735, 763, 41808, 64910, 121389, 2009, 0, 127985, 74245,
+ 9640, 119951, 0, 69895, 8621, 120523, 12852, 3031, 983050, 64361, 129088,
+ 182, 66414, 92716, 92598, 119950, 42613, 9058, 366, 0, 9892, 5969, 11754,
+ 10848, 4570, 65301, 44013, 4255, 127889, 10102, 41189, 4003, 41026,
+ 68109, 13293, 41192, 69635, 124977, 42251, 0, 42534, 65179, 11287, 6128,
+ 113811, 11034, 10923, 64423, 125058, 65506, 983912, 65861, 74083, 66872,
+ 9932, 43516, 83063, 83065, 83064, 9817, 0, 71234, 0, 12117, 66586, 4183,
+ 10540, 66250, 9063, 127045, 128547, 119954, 113685, 12897, 3792, 2011,
+ 121418, 6065, 43160, 128379, 120595, 8692, 41186, 41816, 41023, 41818,
+ 41187, 11659, 7922, 12614, 2005, 8523, 78002, 120035, 7513, 1863, 4710,
+ 0, 5956, 7621, 78005, 92624, 4705, 716, 74918, 0, 4704, 120040, 93024,
+ 42241, 161, 43977, 74546, 66214, 4706, 74077, 69914, 42672, 4709, 10680,
+ 119065, 43293, 68771, 983190, 119164, 120328, 83319, 10187, 1700, 119223,
+ 83315, 0, 74980, 4004, 917595, 10968, 43296, 128331, 8506, 113744,
+ 194812, 126996, 1005, 937, 78216, 4734, 2870, 121350, 78218, 983109,
+ 7463, 4729, 0, 235, 1384, 4728, 74887, 70494, 92490, 74449, 8109, 43105,
+ 128623, 4730, 447, 13186, 1513, 4733, 120415, 92548, 0, 42527, 12911,
+ 43427, 1383, 8565, 2469, 120024, 6690, 6156, 68117, 43439, 7993, 4288,
+ 120416, 2674, 13238, 11922, 0, 92529, 3510, 13234, 983832, 120407, 5605,
+ 42095, 11364, 92286, 1380, 65617, 11162, 120261, 13196, 13197, 120309,
+ 67708, 9495, 119346, 127154, 5959, 67984, 73976, 66275, 43371, 6941,
+ 119349, 13205, 13211, 5801, 12769, 65905, 41697, 1283, 82952, 4779,
+ 983922, 3719, 4006, 983569, 19957, 71186, 2021, 119332, 43877, 83140,
+ 43028, 65493, 41838, 3875, 5962, 64341, 92616, 9814, 43457, 5827, 3314,
+ 7787, 71189, 65494, 68153, 126991, 194697, 120636, 64531, 120692, 194626,
+ 128753, 983958, 66316, 65467, 5771, 41298, 983794, 9742, 521, 0, 10800,
+ 92222, 8404, 194625, 483, 7096, 7089, 66323, 928, 0, 0, 119018, 10599,
+ 11586, 3989, 10971, 43748, 65782, 9841, 8843, 12145, 67261, 10074, 78548,
+ 93999, 3769, 0, 0, 128703, 983107, 9573, 917998, 65290, 8849, 119254,
+ 65855, 65112, 1796, 71046, 0, 69665, 8164, 41301, 3502, 83135, 7388,
+ 10621, 73838, 78553, 5825, 13007, 68165, 92203, 92915, 12661, 7608,
+ 10354, 10418, 42411, 2022, 0, 1409, 12195, 4001, 3112, 10824, 120639,
+ 1390, 70184, 194704, 421, 43536, 5846, 120120, 4130, 127775, 7595, 42588,
+ 7600, 74400, 66035, 195091, 0, 65851, 42607, 124955, 92403, 3168, 67733,
+ 42134, 11831, 2370, 2846, 92605, 128084, 0, 120132, 127745, 1836, 0,
+ 121207, 92558, 3740, 69843, 6290, 65374, 120451, 2390, 3944, 66628,
+ 119006, 0, 6135, 3118, 74265, 119093, 83310, 77975, 0, 8127, 8975, 64739,
+ 7943, 124968, 119234, 10618, 2584, 0, 0, 128225, 9998, 120573, 83306, 0,
+ 127750, 43508, 6204, 127044, 121374, 8279, 8776, 64954, 4975, 70075,
+ 120130, 4267, 1631, 42206, 77983, 128015, 195046, 65700, 66386, 0, 64645,
+ 0, 92887, 126588, 12586, 0, 9242, 120100, 0, 4523, 5842, 10495, 3122,
+ 983797, 7793, 78275, 9328, 119104, 78393, 12604, 92885, 6615, 2285,
+ 92344, 3986, 44025, 0, 8912, 64555, 7409, 92247, 983360, 9541, 78276,
+ 113669, 11275, 8540, 11498, 120868, 983359, 41040, 2459, 127302, 13060,
+ 41041, 74413, 983138, 0, 77931, 68427, 10450, 12551, 41043, 7020, 120353,
+ 3765, 92881, 917612, 1606, 120348, 92299, 3093, 68436, 128040, 983061,
+ 119613, 0, 0, 4312, 74091, 120337, 74983, 11923, 4023, 68399, 5763,
+ 94015, 4827, 10894, 12810, 64406, 118785, 4455, 74321, 433, 119620,
+ 66660, 2499, 67167, 67166, 118837, 11973, 13089, 4293, 120329, 42224,
+ 42758, 12196, 42837, 42226, 119319, 127992, 119126, 5817, 127806, 55277,
+ 3120, 9797, 0, 0, 11086, 10389, 126485, 128784, 4895, 65358, 124941,
+ 4359, 585, 2383, 3509, 70037, 486, 4290, 5758, 127546, 121160, 983106,
+ 7004, 113667, 65880, 126514, 119048, 2380, 11380, 983863, 93996, 2376,
+ 78841, 83402, 0, 5197, 70839, 127047, 127048, 2366, 127050, 119604,
+ 70837, 120045, 0, 128554, 0, 917846, 0, 0, 0, 74188, 71342, 78455, 75048,
+ 113675, 74900, 120046, 127542, 120049, 983366, 1847, 120978, 10339,
+ 983367, 42384, 121379, 4227, 74158, 0, 74498, 43032, 121124, 42365, 0,
+ 12671, 11384, 120059, 74264, 120058, 64797, 983347, 5820, 983346, 120052,
+ 120065, 128825, 120064, 120053, 42137, 9893, 2754, 12664, 120063, 121286,
+ 7377, 120051, 41799, 65530, 1711, 12984, 43039, 3114, 6255, 121132,
+ 68660, 0, 10853, 926, 983371, 74184, 120915, 120055, 119301, 43175, 0,
+ 43037, 41798, 41035, 11583, 127769, 41801, 119088, 119605, 520, 4200,
+ 12699, 8331, 70118, 3091, 41034, 66298, 70293, 8360, 983445, 78044, 321,
+ 4229, 64543, 128470, 65563, 194873, 917974, 2861, 43793, 10095, 121428,
+ 9195, 92386, 1861, 0, 73733, 917780, 68839, 43041, 0, 43794, 128530,
+ 3859, 12181, 41660, 8209, 70793, 73867, 12973, 75014, 74757, 127514,
+ 41658, 128376, 121235, 5760, 113699, 743, 4414, 120766, 0, 42632, 127236,
+ 65161, 73896, 128589, 0, 1405, 119063, 43220, 43341, 0, 19919, 70278,
+ 64532, 65367, 43710, 11199, 125077, 3513, 71115, 70341, 43342, 119064,
+ 65529, 65364, 83208, 83170, 6485, 1397, 194781, 41986, 92678, 83204,
+ 83212, 74097, 83213, 7471, 12079, 67997, 6843, 43287, 92317, 0, 67406,
+ 120239, 194678, 71914, 1099, 10490, 83201, 10501, 65181, 74463, 128952,
+ 464, 41624, 65283, 67663, 78222, 1346, 194609, 65679, 64573, 64897, 423,
+ 1818, 65144, 82963, 8272, 127812, 19911, 4218, 3087, 64960, 121447,
+ 43564, 0, 983182, 9584, 10465, 983902, 74359, 12626, 9106, 0, 42642,
+ 71235, 64750, 9390, 0, 41797, 194730, 128333, 265, 41795, 64666, 74628,
+ 43530, 2752, 127365, 128459, 126482, 59, 983671, 121410, 11149, 78074,
+ 77873, 41810, 83162, 7010, 0, 41809, 41495, 119364, 5877, 42252, 42213,
+ 8009, 3305, 43033, 511, 92700, 43848, 13127, 120067, 983946, 74397,
+ 120235, 128641, 65915, 1400, 41812, 10685, 75017, 2103, 10387, 4453,
+ 43276, 917783, 11169, 128939, 6481, 41213, 0, 0, 129133, 119929, 41983,
+ 74198, 6617, 9116, 119654, 92995, 462, 68110, 10493, 121449, 8129, 92994,
+ 128365, 74471, 6644, 11658, 0, 128245, 3452, 11906, 9581, 1385, 3098, 0,
+ 119013, 43340, 11123, 41033, 6493, 42626, 0, 129051, 11426, 77887, 1681,
+ 118789, 1204, 3755, 64661, 7235, 10170, 3966, 8911, 0, 41841, 43338, 0,
+ 119323, 5726, 64915, 42175, 983913, 0, 41497, 65044, 120109, 2851, 43017,
+ 983589, 120896, 4373, 78058, 0, 9587, 1789, 6671, 128840, 3100, 0, 65360,
+ 917589, 92365, 128202, 64922, 0, 8190, 12083, 0, 83141, 6506, 64312,
+ 74374, 2368, 983187, 4419, 121259, 119125, 3439, 1825, 1192, 120106,
+ 8891, 3080, 120228, 2347, 5430, 120107, 8990, 2848, 92981, 121372, 73942,
+ 249, 0, 0, 0, 120658, 119324, 128712, 8883, 119860, 728, 11173, 995, 0,
+ 121047, 64826, 124931, 917798, 128348, 0, 19945, 8091, 558, 0, 12273,
+ 194814, 67714, 12112, 67272, 67265, 67273, 67274, 12335, 120104, 68019,
+ 3443, 3129, 67267, 2102, 65445, 78258, 64891, 0, 7725, 65108, 11120,
+ 9205, 8624, 69246, 12446, 43295, 128519, 41894, 0, 6277, 41672, 41893,
+ 10010, 127381, 3540, 121450, 835, 71340, 69816, 119854, 74408, 0, 67108,
+ 5426, 4258, 83188, 120858, 5424, 92306, 8283, 127978, 5434, 83196,
+ 129027, 19917, 11408, 0, 11947, 128330, 1404, 3095, 11432, 121122, 3464,
+ 6486, 4819, 128233, 129123, 570, 8095, 3672, 119864, 1498, 67866, 0,
+ 128539, 431, 67820, 0, 128182, 128096, 68167, 983663, 13096, 128643,
+ 121018, 43408, 9516, 128538, 5268, 42230, 42220, 0, 4450, 120511, 11547,
+ 43417, 128542, 356, 3477, 227, 10488, 68203, 382, 11418, 0, 5878, 983799,
+ 0, 0, 0, 6484, 2541, 66039, 113777, 78157, 92723, 3549, 195067, 9110,
+ 119665, 2743, 0, 43290, 128585, 9097, 195026, 43015, 8782, 0, 776, 2524,
+ 42707, 8573, 120903, 126494, 0, 71102, 42694, 64944, 8952, 3856, 118818,
+ 125111, 5872, 6495, 129125, 0, 0, 92543, 67173, 67172, 12849, 3953, 1897,
+ 93071, 65094, 11994, 4339, 74556, 92654, 67843, 0, 0, 119087, 68473,
+ 74104, 5228, 119835, 7868, 43184, 0, 120955, 73986, 43438, 0, 43022,
+ 917553, 1162, 74995, 2671, 128567, 127198, 92632, 92631, 118865, 4553,
+ 73811, 983573, 195005, 118928, 68085, 19921, 73821, 11424, 195002, 4567,
+ 41891, 0, 983788, 55249, 4820, 65239, 194662, 0, 194665, 43042, 119212,
+ 1377, 12869, 4897, 42821, 9250, 70272, 4438, 64385, 0, 1753, 11331, 6147,
+ 194941, 43282, 8833, 69998, 0, 6504, 78408, 121166, 10719, 70275, 1898,
+ 1413, 42443, 0, 802, 12141, 121138, 83097, 6648, 10671, 2528, 0, 64789,
+ 9169, 838, 68819, 68807, 844, 5014, 66297, 256, 68818, 9990, 128398,
+ 42739, 917851, 7542, 65464, 9726, 83224, 6489, 10048, 74326, 78719,
+ 66573, 0, 78724, 78712, 11761, 121314, 83226, 41094, 0, 77958, 194893,
+ 78403, 92689, 6196, 6945, 93969, 120942, 67095, 120491, 11816, 68846,
+ 5733, 2930, 70274, 127179, 41098, 92771, 41093, 68834, 66626, 588, 9760,
+ 125099, 194717, 1238, 200, 983207, 1660, 73916, 0, 67141, 74362, 0,
+ 92485, 124930, 0, 74999, 3394, 194894, 120668, 0, 69996, 127358, 66219,
+ 72425, 43284, 68072, 7817, 1841, 11055, 66835, 194979, 74607, 1669,
+ 10776, 74534, 7701, 194980, 983450, 74992, 1732, 4030, 983442, 3963,
+ 65335, 127530, 41768, 6491, 65333, 65324, 914, 65323, 8071, 3538, 983845,
+ 2287, 65328, 92441, 74367, 7614, 0, 11819, 71908, 12009, 12399, 121217,
+ 67852, 65537, 0, 10841, 43430, 5301, 0, 92618, 5734, 8960, 0, 70123,
+ 65317, 77880, 0, 5876, 70374, 12304, 0, 0, 65315, 92670, 128511, 71862,
+ 0, 127957, 119621, 11114, 71909, 12447, 64486, 121236, 126562, 983129, 0,
+ 121393, 983802, 42767, 10915, 983174, 12007, 43695, 68033, 11975, 194878,
+ 0, 92604, 2555, 8629, 128640, 41133, 41872, 43706, 4496, 194879, 83108,
+ 120241, 128164, 0, 0, 983553, 64730, 70041, 66714, 68222, 0, 70076,
+ 65596, 67837, 11416, 4280, 67655, 8765, 12784, 7792, 1393, 78191, 11157,
+ 74386, 127274, 8233, 12820, 983730, 6683, 125112, 3442, 12144, 2841,
+ 12543, 0, 1473, 42820, 64329, 120880, 67243, 68642, 6488, 357, 1048,
+ 41100, 72417, 41104, 94003, 3406, 1054, 71320, 1040, 65450, 983385, 4434,
+ 1069, 194784, 118862, 65737, 121202, 128705, 0, 83211, 9693, 41943,
+ 68305, 41931, 41759, 12757, 4353, 983353, 1059, 9790, 8995, 119974,
+ 917770, 65937, 78572, 41758, 10646, 121159, 118833, 92372, 70424, 74830,
+ 78569, 12743, 983689, 6480, 917761, 41779, 42580, 66601, 12207, 77895,
+ 6335, 43919, 11312, 64807, 92962, 69989, 41767, 119629, 983764, 43020,
+ 74974, 3955, 74254, 120632, 983754, 917861, 70187, 69975, 9770, 9246,
+ 12230, 125047, 129105, 78580, 10448, 41783, 41786, 127093, 12797, 2755,
+ 64571, 78578, 194927, 4857, 983577, 4428, 12794, 73755, 128061, 78574, 0,
+ 11116, 43842, 5747, 78825, 70471, 7978, 41092, 74571, 0, 11924, 43812,
+ 42144, 65015, 0, 563, 0, 129412, 12798, 11271, 57, 92717, 83495, 917860,
+ 119043, 917618, 94051, 43137, 694, 983719, 9876, 0, 119168, 0, 70392,
+ 64537, 127914, 277, 74385, 7229, 12761, 983145, 74466, 13025, 64811,
+ 8757, 78824, 78188, 1574, 7381, 0, 2525, 4852, 5749, 68465, 13027, 42824,
+ 120574, 1039, 7151, 10155, 5745, 188, 41858, 11592, 129156, 69725, 9055,
+ 41853, 4858, 75000, 917990, 436, 4771, 917936, 2786, 93028, 4856, 8051,
+ 92500, 119609, 71327, 9644, 71133, 125009, 128873, 194916, 120732, 66710,
+ 68084, 983361, 73906, 67409, 127114, 917916, 10234, 5843, 11939, 70346,
+ 42157, 0, 3157, 194659, 68393, 75035, 3504, 70422, 0, 10822, 5149, 66029,
+ 10226, 65142, 128025, 3594, 42424, 124993, 40, 12657, 983665, 0, 386,
+ 121467, 8834, 120974, 12815, 43574, 121430, 73907, 127792, 70113, 7220,
+ 11839, 121143, 74316, 194752, 65322, 4304, 74503, 8160, 74314, 194753,
+ 121276, 0, 128526, 1348, 92349, 78597, 121139, 13303, 70406, 92392,
+ 128474, 7599, 1278, 43616, 13269, 127805, 127110, 74387, 78179, 78598,
+ 74492, 6097, 7568, 8780, 4982, 127464, 74501, 194763, 78592, 68745, 2672,
+ 3735, 127470, 13138, 42266, 9484, 10724, 41202, 71364, 128370, 43742,
+ 128373, 9487, 119959, 68785, 3842, 71911, 78668, 12442, 6193, 9791,
+ 119344, 0, 42516, 7228, 7559, 74803, 66721, 7873, 11399, 119219, 194691,
+ 70006, 194690, 127537, 3604, 120683, 119188, 128877, 78540, 78541, 42507,
+ 1962, 43305, 78476, 42505, 11660, 121021, 2072, 92312, 6995, 74173, 5437,
+ 74174, 10669, 8702, 7964, 92352, 983776, 199, 68075, 4105, 194845,
+ 127942, 75006, 194710, 67818, 13148, 7560, 78479, 9226, 78478, 195070,
+ 6472, 65814, 71919, 121218, 4724, 128491, 195041, 9191, 194645, 64432,
+ 120270, 82987, 119190, 10196, 7886, 0, 6585, 0, 6680, 195042, 983425,
+ 71872, 6679, 74412, 92251, 194866, 74421, 11382, 128254, 43862, 78591,
+ 113733, 194679, 194832, 6681, 127482, 12693, 194836, 42727, 78196,
+ 128252, 43874, 65442, 68047, 69733, 9989, 43248, 66248, 194816, 0, 11321,
+ 128845, 120809, 194819, 5297, 7042, 13284, 6112, 7968, 93010, 73927,
+ 92444, 127336, 65746, 118796, 69889, 74389, 128696, 4342, 42839, 121339,
+ 1677, 917592, 82989, 126590, 83415, 11091, 11011, 2719, 0, 0, 119595,
+ 10160, 0, 129150, 7585, 65169, 2052, 4308, 83414, 43000, 7505, 543,
+ 64916, 64736, 118835, 0, 64655, 983053, 118922, 2064, 0, 43158, 7902,
+ 983231, 65265, 194639, 121080, 127170, 127041, 128006, 92550, 983186,
+ 12994, 92728, 10828, 74378, 6228, 4307, 3482, 128527, 83231, 72389,
+ 83079, 506, 74573, 41194, 65735, 2055, 43255, 41195, 0, 8169, 121407,
+ 8841, 983747, 516, 93974, 2063, 119051, 34, 128850, 120186, 11504, 1612,
+ 74333, 120182, 11827, 67165, 12001, 120178, 10242, 64564, 120179, 67986,
+ 6584, 7749, 11037, 128743, 1758, 119074, 10667, 10560, 120197, 92593,
+ 1935, 11517, 120193, 120196, 83082, 1931, 120189, 74839, 120191, 1217,
+ 64702, 12643, 825, 127838, 194905, 12294, 92428, 78834, 9138, 78831,
+ 78833, 12631, 71871, 11080, 74554, 64000, 5591, 1239, 127199, 11313,
+ 194803, 3403, 983655, 120271, 64364, 92269, 121282, 72431, 8998, 12988,
+ 119983, 9152, 92161, 0, 126484, 67589, 41850, 64290, 3433, 92393, 12615,
+ 1594, 42192, 6914, 66392, 0, 119569, 74565, 41353, 67602, 67611, 4337, 0,
+ 127296, 918, 65035, 41351, 7681, 194900, 42577, 41393, 12668, 72395,
+ 2477, 127285, 121249, 118880, 0, 67604, 67683, 127235, 573, 127282,
+ 120543, 11417, 92661, 119814, 119309, 67599, 0, 72410, 67607, 11482, 0,
+ 3981, 3357, 0, 42223, 4207, 1288, 78503, 78839, 67728, 77907, 11589,
+ 42195, 74477, 119997, 127178, 64602, 67618, 92539, 121366, 42788, 68416,
+ 64480, 194875, 8423, 3348, 448, 66907, 9717, 119311, 0, 997, 0, 0, 92577,
+ 0, 11440, 11379, 42000, 13139, 42221, 65013, 126999, 127760, 72390, 0,
+ 119228, 12035, 0, 2818, 0, 74411, 73793, 983278, 4172, 71252, 119992,
+ 8373, 10873, 12197, 125074, 195014, 92265, 69706, 128540, 6834, 74347,
+ 74958, 129033, 126982, 74563, 64828, 11419, 194868, 766, 1257, 194598,
+ 118845, 11381, 3265, 66617, 3274, 126629, 83254, 71861, 983950, 74522,
+ 41989, 121317, 0, 113769, 3263, 917922, 65672, 69243, 3270, 64539, 11489,
+ 917911, 0, 0, 71127, 9505, 65518, 128498, 756, 194605, 0, 0, 194621,
+ 7261, 92547, 186, 0, 119156, 5770, 13179, 65830, 12612, 12949, 64856,
+ 12800, 983901, 74203, 64718, 11507, 78673, 92434, 74626, 113760, 11578,
+ 983837, 119296, 120970, 121127, 125101, 0, 70083, 9254, 66877, 1794,
+ 68310, 64521, 5624, 120220, 120221, 119958, 120223, 3617, 66636, 64886,
+ 94061, 68659, 120213, 120214, 1872, 66508, 120467, 41079, 10748, 5502,
+ 119330, 4452, 128088, 983771, 92526, 4511, 120958, 983877, 64678, 11425,
+ 0, 43245, 1231, 68861, 69903, 0, 9003, 8192, 0, 5305, 9653, 10616, 8694,
+ 9546, 0, 128332, 70421, 120200, 65205, 120202, 64063, 9878, 74780,
+ 119626, 78202, 64058, 8799, 42131, 128662, 64062, 1028, 64060, 64059,
+ 837, 10567, 72384, 43103, 0, 120754, 11427, 2902, 64043, 64042, 43749,
+ 10756, 64047, 42606, 64045, 64044, 43979, 10076, 64040, 43060, 194942,
+ 1034, 3392, 83336, 43091, 64033, 64032, 42735, 43498, 64037, 64036,
+ 64035, 4291, 129157, 64015, 64014, 64681, 83394, 83395, 78145, 71898,
+ 43090, 83391, 3476, 8973, 64012, 42473, 64010, 64008, 64007, 2003, 7706,
+ 64517, 78153, 2538, 64009, 204, 0, 4802, 4111, 8239, 9098, 4805, 64001,
+ 64057, 7885, 7247, 64054, 983268, 0, 4767, 9343, 64049, 64048, 120034,
+ 1133, 64053, 64052, 43453, 64050, 41340, 118975, 83261, 10005, 12329,
+ 41333, 83259, 8489, 1942, 917921, 194834, 42520, 65510, 125044, 68291,
+ 10760, 64023, 64022, 64021, 6582, 43670, 127798, 64025, 9167, 42151,
+ 78244, 983232, 2026, 64019, 64018, 64017, 64016, 12768, 121361, 7582,
+ 78252, 78248, 77914, 78246, 78247, 120791, 77915, 78766, 6788, 13094,
+ 77920, 7532, 41414, 78520, 3179, 78518, 64769, 78514, 78517, 11461,
+ 74454, 10751, 9051, 120720, 6708, 10535, 118955, 68218, 55274, 2008,
+ 64031, 64030, 294, 41874, 83383, 64790, 65929, 83376, 83337, 83379,
+ 83380, 64028, 8146, 64026, 41788, 194844, 0, 4351, 6343, 43247, 119888,
+ 70153, 119886, 119891, 72387, 119889, 11433, 119895, 119896, 194655,
+ 7801, 65578, 83361, 12915, 43968, 3297, 9699, 83357, 1135, 83350, 83351,
+ 83352, 1995, 6722, 983925, 128815, 2552, 41546, 60, 68394, 8649, 41549,
+ 78496, 72386, 83371, 6682, 83365, 78679, 43833, 41547, 983630, 2013,
+ 83362, 78530, 78532, 78528, 78529, 12832, 78493, 8081, 8362, 3537,
+ 119908, 9137, 7155, 8999, 917901, 78533, 3466, 0, 121466, 1996, 0, 3453,
+ 6282, 0, 2002, 2000, 120175, 537, 92976, 4179, 65119, 1998, 120746, 1842,
+ 0, 92674, 9628, 68446, 12081, 9826, 64502, 1767, 0, 983248, 120001,
+ 120201, 983646, 124975, 127952, 3059, 44024, 120204, 43491, 92693, 0,
+ 121472, 92452, 4100, 920, 1811, 1355, 43189, 0, 3592, 10078, 0, 78162,
+ 119558, 8592, 65870, 66417, 74504, 10742, 72400, 42918, 1994, 9281, 3296,
+ 12865, 1997, 1895,
};
#define code_magic 47
@@ -19839,7 +23265,7 @@ static unsigned int code_hash[] = {
#define code_poly 32771
static const unsigned int aliases_start = 0xf0000;
-static const unsigned int aliases_end = 0xf01c9;
+static const unsigned int aliases_end = 0xf01cb;
static const unsigned int name_aliases[] = {
0x0000,
0x0000,
@@ -20034,6 +23460,8 @@ static const unsigned int name_aliases[] = {
0x2118,
0x2448,
0x2449,
+ 0x2B7A,
+ 0x2B7C,
0xA015,
0xFE18,
0xFE00,
diff --git a/Modules/winreparse.h b/Modules/winreparse.h
new file mode 100644
index 0000000000..66f7775dd2
--- /dev/null
+++ b/Modules/winreparse.h
@@ -0,0 +1,53 @@
+#ifndef Py_WINREPARSE_H
+#define Py_WINREPARSE_H
+
+#ifdef MS_WINDOWS
+#include <Windows.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* The following structure was copied from
+ http://msdn.microsoft.com/en-us/library/ff552012.aspx as the required
+ include doesn't seem to be present in the Windows SDK (at least as included
+ with Visual Studio Express). */
+typedef struct _REPARSE_DATA_BUFFER {
+ ULONG ReparseTag;
+ USHORT ReparseDataLength;
+ USHORT Reserved;
+ union {
+ struct {
+ USHORT SubstituteNameOffset;
+ USHORT SubstituteNameLength;
+ USHORT PrintNameOffset;
+ USHORT PrintNameLength;
+ ULONG Flags;
+ WCHAR PathBuffer[1];
+ } SymbolicLinkReparseBuffer;
+
+ struct {
+ USHORT SubstituteNameOffset;
+ USHORT SubstituteNameLength;
+ USHORT PrintNameOffset;
+ USHORT PrintNameLength;
+ WCHAR PathBuffer[1];
+ } MountPointReparseBuffer;
+
+ struct {
+ UCHAR DataBuffer[1];
+ } GenericReparseBuffer;
+ };
+} REPARSE_DATA_BUFFER, *PREPARSE_DATA_BUFFER;
+
+#define REPARSE_DATA_BUFFER_HEADER_SIZE FIELD_OFFSET(REPARSE_DATA_BUFFER,\
+ GenericReparseBuffer)
+#define MAXIMUM_REPARSE_DATA_BUFFER_SIZE ( 16 * 1024 )
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* MS_WINDOWS */
+
+#endif /* !Py_WINREPARSE_H */
diff --git a/Modules/xxlimited.c b/Modules/xxlimited.c
index eecdab9697..40c176063d 100644
--- a/Modules/xxlimited.c
+++ b/Modules/xxlimited.c
@@ -40,11 +40,18 @@ newXxoObject(PyObject *arg)
/* Xxo methods */
-static void
-Xxo_dealloc(XxoObject *self)
+static int
+Xxo_traverse(XxoObject *self, visitproc visit, void *arg)
+{
+ Py_VISIT(self->x_attr);
+ return 0;
+}
+
+static int
+Xxo_finalize(XxoObject *self)
{
- Py_XDECREF(self->x_attr);
- ((freefunc)PyType_GetSlot(Py_TYPE(self), Py_tp_free))(self);
+ Py_CLEAR(self->x_attr);
+ return 0;
}
static PyObject *
@@ -102,7 +109,8 @@ Xxo_setattr(XxoObject *self, char *name, PyObject *v)
static PyType_Slot Xxo_Type_slots[] = {
{Py_tp_doc, "The Xxo type"},
- {Py_tp_dealloc, Xxo_dealloc},
+ {Py_tp_traverse, Xxo_traverse},
+ {Py_tp_finalize, Xxo_finalize},
{Py_tp_getattro, Xxo_getattro},
{Py_tp_setattr, Xxo_setattr},
{Py_tp_methods, Xxo_methods},
@@ -113,7 +121,7 @@ static PyType_Spec Xxo_Type_spec = {
"xxlimited.Xxo",
sizeof(XxoObject),
0,
- Py_TPFLAGS_DEFAULT,
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_HAVE_FINALIZE,
Xxo_Type_slots
};
@@ -169,7 +177,7 @@ xx_roj(PyObject *self, PyObject *args)
/* ---------- */
-static PyType_Slot Str_Type_slots[] = {
+static PyType_Slot Str_Type_slots[] = {
{Py_tp_base, NULL}, /* filled out in module init function */
{0, 0},
};
@@ -222,25 +230,9 @@ static PyMethodDef xx_methods[] = {
PyDoc_STRVAR(module_doc,
"This is a template module just for instruction.");
-/* Initialization function for the module (*must* be called PyInit_xx) */
-
-
-static struct PyModuleDef xxmodule = {
- PyModuleDef_HEAD_INIT,
- "xxlimited",
- module_doc,
- -1,
- xx_methods,
- NULL,
- NULL,
- NULL,
- NULL
-};
-
-PyMODINIT_FUNC
-PyInit_xxlimited(void)
+static int
+xx_modexec(PyObject *m)
{
- PyObject *m = NULL;
PyObject *o;
/* Due to cross platform compiler issues the slots must be filled
@@ -254,11 +246,6 @@ PyInit_xxlimited(void)
if (Xxo_Type == NULL)
goto fail;
- /* Create the module and add the functions */
- m = PyModule_Create(&xxmodule);
- if (m == NULL)
- goto fail;
-
/* Add some symbolic constants to the module */
if (ErrorObject == NULL) {
ErrorObject = PyErr_NewException("xxlimited.error", NULL, NULL);
@@ -268,6 +255,12 @@ PyInit_xxlimited(void)
Py_INCREF(ErrorObject);
PyModule_AddObject(m, "error", ErrorObject);
+ /* Add Xxo */
+ o = PyType_FromSpec(&Xxo_Type_spec);
+ if (o == NULL)
+ goto fail;
+ PyModule_AddObject(m, "Xxo", o);
+
/* Add Str */
o = PyType_FromSpec(&Str_Type_spec);
if (o == NULL)
@@ -279,8 +272,34 @@ PyInit_xxlimited(void)
if (o == NULL)
goto fail;
PyModule_AddObject(m, "Null", o);
- return m;
+ return 0;
fail:
Py_XDECREF(m);
- return NULL;
+ return -1;
+}
+
+
+static PyModuleDef_Slot xx_slots[] = {
+ {Py_mod_exec, xx_modexec},
+ {0, NULL}
+};
+
+static struct PyModuleDef xxmodule = {
+ PyModuleDef_HEAD_INIT,
+ "xxlimited",
+ module_doc,
+ 0,
+ xx_methods,
+ xx_slots,
+ NULL,
+ NULL,
+ NULL
+};
+
+/* Export function for the module (*must* be called PyInit_xx) */
+
+PyMODINIT_FUNC
+PyInit_xxlimited(void)
+{
+ return PyModuleDef_Init(&xxmodule);
}
diff --git a/Modules/xxmodule.c b/Modules/xxmodule.c
index 0feff662d5..85230d9c97 100644
--- a/Modules/xxmodule.c
+++ b/Modules/xxmodule.c
@@ -334,26 +334,10 @@ static PyMethodDef xx_methods[] = {
PyDoc_STRVAR(module_doc,
"This is a template module just for instruction.");
-/* Initialization function for the module (*must* be called PyInit_xx) */
-
-static struct PyModuleDef xxmodule = {
- PyModuleDef_HEAD_INIT,
- "xx",
- module_doc,
- -1,
- xx_methods,
- NULL,
- NULL,
- NULL,
- NULL
-};
-
-PyMODINIT_FUNC
-PyInit_xx(void)
+static int
+xx_exec(PyObject *m)
{
- PyObject *m = NULL;
-
/* Due to cross platform compiler issues the slots must be filled
* here. It's required for portability to Windows without requiring
* C++. */
@@ -366,11 +350,6 @@ PyInit_xx(void)
if (PyType_Ready(&Xxo_Type) < 0)
goto fail;
- /* Create the module and add the functions */
- m = PyModule_Create(&xxmodule);
- if (m == NULL)
- goto fail;
-
/* Add some symbolic constants to the module */
if (ErrorObject == NULL) {
ErrorObject = PyErr_NewException("xx.error", NULL, NULL);
@@ -389,8 +368,33 @@ PyInit_xx(void)
if (PyType_Ready(&Null_Type) < 0)
goto fail;
PyModule_AddObject(m, "Null", (PyObject *)&Null_Type);
- return m;
+ return 0;
fail:
Py_XDECREF(m);
- return NULL;
+ return -1;
+}
+
+static struct PyModuleDef_Slot xx_slots[] = {
+ {Py_mod_exec, xx_exec},
+ {0, NULL},
+};
+
+static struct PyModuleDef xxmodule = {
+ PyModuleDef_HEAD_INIT,
+ "xx",
+ module_doc,
+ 0,
+ xx_methods,
+ xx_slots,
+ NULL,
+ NULL,
+ NULL
+};
+
+/* Export function for the module (*must* be called PyInit_xx) */
+
+PyMODINIT_FUNC
+PyInit_xx(void)
+{
+ return PyModuleDef_Init(&xxmodule);
}
diff --git a/Modules/xxsubtype.c b/Modules/xxsubtype.c
index 6944e37703..8d0d6ae814 100644
--- a/Modules/xxsubtype.c
+++ b/Modules/xxsubtype.c
@@ -257,53 +257,58 @@ static PyMethodDef xxsubtype_functions[] = {
{NULL, NULL} /* sentinel */
};
-static struct PyModuleDef xxsubtypemodule = {
- PyModuleDef_HEAD_INIT,
- "xxsubtype",
- xxsubtype__doc__,
- -1,
- xxsubtype_functions,
- NULL,
- NULL,
- NULL,
- NULL
-};
-
-
-PyMODINIT_FUNC
-PyInit_xxsubtype(void)
+static int
+xxsubtype_exec(PyObject* m)
{
- PyObject *m;
-
/* Fill in deferred data addresses. This must be done before
PyType_Ready() is called. Note that PyType_Ready() automatically
initializes the ob.ob_type field to &PyType_Type if it's NULL,
so it's not necessary to fill in ob_type first. */
spamdict_type.tp_base = &PyDict_Type;
if (PyType_Ready(&spamdict_type) < 0)
- return NULL;
+ return -1;
spamlist_type.tp_base = &PyList_Type;
if (PyType_Ready(&spamlist_type) < 0)
- return NULL;
-
- m = PyModule_Create(&xxsubtypemodule);
- if (m == NULL)
- return NULL;
+ return -1;
if (PyType_Ready(&spamlist_type) < 0)
- return NULL;
+ return -1;
if (PyType_Ready(&spamdict_type) < 0)
- return NULL;
+ return -1;
Py_INCREF(&spamlist_type);
if (PyModule_AddObject(m, "spamlist",
(PyObject *) &spamlist_type) < 0)
- return NULL;
+ return -1;
Py_INCREF(&spamdict_type);
if (PyModule_AddObject(m, "spamdict",
(PyObject *) &spamdict_type) < 0)
- return NULL;
- return m;
+ return -1;
+ return 0;
+}
+
+static struct PyModuleDef_Slot xxsubtype_slots[] = {
+ {Py_mod_exec, xxsubtype_exec},
+ {0, NULL},
+};
+
+static struct PyModuleDef xxsubtypemodule = {
+ PyModuleDef_HEAD_INIT,
+ "xxsubtype",
+ xxsubtype__doc__,
+ 0,
+ xxsubtype_functions,
+ xxsubtype_slots,
+ NULL,
+ NULL,
+ NULL
+};
+
+
+PyMODINIT_FUNC
+PyInit_xxsubtype(void)
+{
+ return PyModuleDef_Init(&xxsubtypemodule);
}
diff --git a/Modules/zipimport.c b/Modules/zipimport.c
index f2cc245b7d..06abb312b3 100644
--- a/Modules/zipimport.c
+++ b/Modules/zipimport.c
@@ -20,15 +20,13 @@ _Py_IDENTIFIER(replace);
/* zip_searchorder defines how we search for a module in the Zip
archive: we first search for a package __init__, then for
- non-package .pyc, .pyo and .py entries. The .pyc and .pyo entries
+ non-package .pyc, and .py entries. The .pyc entries
are swapped by initzipimport() if we run in optimized mode. Also,
'/' is replaced by SEP there. */
static struct st_zip_searchorder zip_searchorder[] = {
{"/__init__.pyc", IS_PACKAGE | IS_BYTECODE},
- {"/__init__.pyo", IS_PACKAGE | IS_BYTECODE},
{"/__init__.py", IS_PACKAGE | IS_SOURCE},
{".pyc", IS_BYTECODE},
- {".pyo", IS_BYTECODE},
{".py", IS_SOURCE},
{"", 0}
};
@@ -875,8 +873,12 @@ read_directory(PyObject *archive)
fp = _Py_fopen_obj(archive, "rb");
if (fp == NULL) {
- if (!PyErr_Occurred())
+ if (PyErr_ExceptionMatches(PyExc_OSError)) {
+ PyObject *exc, *val, *tb;
+ PyErr_Fetch(&exc, &val, &tb);
PyErr_Format(ZipImportError, "can't open Zip file: %R", archive);
+ _PyErr_ChainExceptions(exc, val, tb);
+ }
return NULL;
}
@@ -939,6 +941,9 @@ read_directory(PyObject *archive)
header_size = name_size +
PyMarshal_ReadShortFromFile(fp) +
PyMarshal_ReadShortFromFile(fp);
+ if (PyErr_Occurred())
+ goto error;
+
if (fread(dummy, 1, 8, fp) != 8) /* Skip unused fields, avoid fseek */
goto file_error;
file_offset = PyMarshal_ReadLongFromFile(fp) + arc_offset;
@@ -1073,12 +1078,8 @@ get_data(PyObject *archive, PyObject *toc_entry)
}
fp = _Py_fopen_obj(archive, "rb");
- if (!fp) {
- if (!PyErr_Occurred())
- PyErr_Format(PyExc_IOError,
- "zipimport: can not open file %U", archive);
+ if (!fp)
return NULL;
- }
/* Check to make sure the local file header is correct */
if (fseek(fp, file_offset, 0) == -1) {
@@ -1315,7 +1316,7 @@ parse_dostime(int dostime, int dosdate)
return mktime(&stm);
}
-/* Given a path to a .pyc or .pyo file in the archive, return the
+/* Given a path to a .pyc file in the archive, return the
modification time of the matching .py file, or 0 if no source
is available. */
static time_t
@@ -1478,17 +1479,6 @@ PyInit_zipimport(void)
/* Correct directory separator */
zip_searchorder[0].suffix[0] = SEP;
zip_searchorder[1].suffix[0] = SEP;
- zip_searchorder[2].suffix[0] = SEP;
- if (Py_OptimizeFlag) {
- /* Reverse *.pyc and *.pyo */
- struct st_zip_searchorder tmp;
- tmp = zip_searchorder[0];
- zip_searchorder[0] = zip_searchorder[1];
- zip_searchorder[1] = tmp;
- tmp = zip_searchorder[3];
- zip_searchorder[3] = zip_searchorder[4];
- zip_searchorder[4] = tmp;
- }
mod = PyModule_Create(&zipimportmodule);
if (mod == NULL)
diff --git a/Modules/zlibmodule.c b/Modules/zlibmodule.c
index 0d2e188b43..1997b40d18 100644
--- a/Modules/zlibmodule.c
+++ b/Modules/zlibmodule.c
@@ -82,12 +82,11 @@ zlib_error(z_stream zst, int err, char *msg)
}
/*[clinic input]
-output preset file
module zlib
class zlib.Compress "compobject *" "&Comptype"
class zlib.Decompress "compobject *" "&Decomptype"
[clinic start generated code]*/
-/*[clinic end generated code: output=da39a3ee5e6b4b0d input=bfd4c340573ba91d]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=093935115c3e3158]*/
static compobject *
newcompobject(PyTypeObject *type)
@@ -281,8 +280,9 @@ Returns a bytes object containing the uncompressed data.
[clinic start generated code]*/
static PyObject *
-zlib_decompress_impl(PyModuleDef *module, Py_buffer *data, int wbits, unsigned int bufsize)
-/*[clinic end generated code: output=9e5464e72df9cb5f input=0f4b9abb7103f50e]*/
+zlib_decompress_impl(PyModuleDef *module, Py_buffer *data, int wbits,
+ unsigned int bufsize)
+/*[clinic end generated code: output=444d0987f3429574 input=0f4b9abb7103f50e]*/
{
PyObject *result_str = NULL;
Byte *input;
@@ -411,8 +411,9 @@ Return a compressor object.
[clinic start generated code]*/
static PyObject *
-zlib_compressobj_impl(PyModuleDef *module, int level, int method, int wbits, int memLevel, int strategy, Py_buffer *zdict)
-/*[clinic end generated code: output=89e5a6c1449caa9e input=b034847f8821f6af]*/
+zlib_compressobj_impl(PyModuleDef *module, int level, int method, int wbits,
+ int memLevel, int strategy, Py_buffer *zdict)
+/*[clinic end generated code: output=2949bbb9a5723ccd input=b034847f8821f6af]*/
{
compobject *self = NULL;
int err;
@@ -704,8 +705,9 @@ Call the flush() method to clear these buffers.
[clinic start generated code]*/
static PyObject *
-zlib_Decompress_decompress_impl(compobject *self, Py_buffer *data, unsigned int max_length)
-/*[clinic end generated code: output=755cccc9087bfe55 input=02cfc047377cec86]*/
+zlib_Decompress_decompress_impl(compobject *self, Py_buffer *data,
+ unsigned int max_length)
+/*[clinic end generated code: output=b82e2a2c19f5fe7b input=02cfc047377cec86]*/
{
int err;
unsigned int old_length, length = DEF_BUF_SIZE;