From 49da56d37f86bc034956c320f1c8701a72ed94b6 Mon Sep 17 00:00:00 2001 From: Bogdan Pintea Date: Mon, 30 Mar 2020 20:18:15 +0200 Subject: [PATCH 1/5] add support for chunked strings ES will split the large string values in chunks (of ~4KiB), even though the entire set of chunks is contained within the answer (and thus needless). This commit: - introduces a new CBOR utility function that will fail to get string references, if the value is chunked; this is mostly useful for fetching object key names, which are part of the protocol and short; - will now allow the cursor string to be chunked, in which case it'll be allocated by the tinycbor library. --- driver/connect.c | 3 ++- driver/handles.h | 3 ++- driver/queries.c | 28 +++++++++++++++++++++++++--- driver/tinycbor.c | 1 - driver/tinycbor.h | 11 +++++++++++ 5 files changed, 40 insertions(+), 6 deletions(-) diff --git a/driver/connect.c b/driver/connect.c index 0ccc6495..7ee7fc93 100644 --- a/driver/connect.c +++ b/driver/connect.c @@ -1626,7 +1626,8 @@ static BOOL parse_es_version_cbor(esodbc_dbc_st *dbc, cstr_st *rsp_body, } /* fetch `version` value */ - res = cbor_value_get_string_chunk(&iter_ver, &version->str, &version->cnt); + res = cbor_value_get_unchunked_string(&iter_ver, &version->str, + &version->cnt); CHK_RES("failed to fetch " ESINFO_KEY_NUMBER " value"); /* Note: containers must be "left" (cbor_value_leave_container()) if ever diff --git a/driver/handles.h b/driver/handles.h index 6956b800..98789927 100644 --- a/driver/handles.h +++ b/driver/handles.h @@ -314,7 +314,8 @@ typedef struct struct_desc { assert(DESC_TYPE_IS_IMPLEMENTATION(_rec->desc->type) && _rec->es_type) struct resultset_cbor { - cstr_st curs; /* ES'es cursor; refs req's body */ + cstr_st curs; /* ES'es cursor */ + BOOL curs_allocd; /* curs.str is allocated (and reassembled) */ CborValue rows_obj; /* top object rows container (EsSQLRowCount()) */ CborValue rows_iter; /* iterator over received rows; refs req's body */ wstr_st cols_buff /* columns descriptions; refs allocated chunk */; diff --git a/driver/queries.c b/driver/queries.c index 21978280..00baa524 100644 --- a/driver/queries.c +++ b/driver/queries.c @@ -179,6 +179,17 @@ void clear_resultset(esodbc_stmt_st *stmt, BOOL on_close) } else { assert(! stmt->rset.pack.cbor.cols_buff.str); } + if (stmt->rset.pack.cbor.curs_allocd) { + free(stmt->rset.pack.cbor.curs.str); + stmt->rset.pack.cbor.curs.str = NULL; + stmt->rset.pack.cbor.curs_allocd = false; + } else if (stmt->rset.pack.cbor.curs.str) { + /* the cursor is contained entirely in the received body */ + assert(stmt->rset.body.str < stmt->rset.pack.cbor.curs.str); // && + assert(stmt->rset.pack.cbor.curs.str + + stmt->rset.pack.cbor.curs.cnt < + stmt->rset.body.str + stmt->rset.body.cnt); + } } memset(&stmt->rset, 0, sizeof(stmt->rset)); @@ -521,7 +532,7 @@ static BOOL iterate_on_columns(esodbc_stmt_st *stmt, CborValue columns) ERRH(stmt, "invalid non-text element '" PACK_PARAM_COL_NAME "'."); return FALSE; } - res = cbor_value_get_string_chunk(&name_obj, &name_cstr.str, + res = cbor_value_get_unchunked_string(&name_obj, &name_cstr.str, &name_cstr.cnt); CHK_RES(stmt, "can't fetch value of '" PACK_PARAM_COL_NAME "' elem"); @@ -553,7 +564,7 @@ static BOOL iterate_on_columns(esodbc_stmt_st *stmt, CborValue columns) ERRH(stmt, "invalid non-text element '" PACK_PARAM_COL_TYPE "'."); return FALSE; } - res = cbor_value_get_string_chunk(&type_obj, &type_cstr.str, + res = cbor_value_get_unchunked_string(&type_obj, &type_cstr.str, &type_cstr.cnt); CHK_RES(stmt, "can't fetch value of '" PACK_PARAM_COL_TYPE "' elem"); /* U8MB_TO_U16WC fails with 0-len source */ @@ -727,9 +738,20 @@ static SQLRETURN attach_answer_cbor(esodbc_stmt_st *stmt) } /* should have been cleared by now */ assert(! stmt->rset.pack.cbor.curs.cnt); - res = cbor_value_get_string_chunk(&curs_obj, + res = cbor_value_get_unchunked_string(&curs_obj, &stmt->rset.pack.cbor.curs.str, &stmt->rset.pack.cbor.curs.cnt); + if (res == CborErrorUnknownLength) { + assert(stmt->rset.pack.cbor.curs_allocd == false); + /* cursor is in chunked string; get it assembled in one chunk */ + res = cbor_value_dup_text_string(&curs_obj, + &stmt->rset.pack.cbor.curs.str, + &stmt->rset.pack.cbor.curs.cnt, + &curs_obj); + if (res == CborNoError) { + stmt->rset.pack.cbor.curs_allocd = true; + } + } CHK_RES(stmt, "failed to read '" PACK_PARAM_CURSOR "' value"); DBGH(stmt, "new paginating cursor: [%zd] `" LCPDL "`.", stmt->rset.pack.cbor.curs.cnt, LWSTR(&stmt->rset.pack.cbor.curs)); diff --git a/driver/tinycbor.c b/driver/tinycbor.c index 43b8e082..0652040d 100644 --- a/driver/tinycbor.c +++ b/driver/tinycbor.c @@ -264,7 +264,6 @@ CborError cbor_value_get_utf16_wstr(CborValue *it, wstr_st *utf16) } /* else: buffer hasn't yet been allocated or is too small */ /* what's the minimum space needed? */ if ((n = U8MB_TO_U16WC(mb_str.str, mb_str.cnt, NULL, 0)) < 0) { - TRACE; return CborErrorInvalidUtf8TextString; } } else { diff --git a/driver/tinycbor.h b/driver/tinycbor.h index d7210564..6768d9e7 100644 --- a/driver/tinycbor.h +++ b/driver/tinycbor.h @@ -95,4 +95,15 @@ void tinycbor_cleanup(); CborError cbor_value_get_string_chunk(CborValue *it, const char **bufferptr, size_t *len); +static inline CborError cbor_value_get_unchunked_string(CborValue *it, + const char **bufferptr, size_t *len) +{ + return cbor_value_is_length_known(it) + /* string is all in one chunk */ + ? cbor_value_get_string_chunk(it, bufferptr, len) + /* if the string is chunked, fail the call */ + : CborErrorUnknownLength; +} + + #endif /* __TINYCBOR_H__ */ From f1c29980a9dd101f774c5a115e2b798943018a9f Mon Sep 17 00:00:00 2001 From: Bogdan Pintea Date: Tue, 31 Mar 2020 14:55:52 +0200 Subject: [PATCH 2/5] cbor: support row string values received chunked This commit adds support for reading row string values when these are spread over multiple chunks. --- CMakeLists.txt | 1 + driver/tinycbor.c | 121 ++++++++++++++++++++++++++++++---------------- 2 files changed, 79 insertions(+), 43 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fdbe089b..8b8dd991 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -342,6 +342,7 @@ list(APPEND DRV_SRC ${CMAKE_BINARY_DIR}/cborparser.c) list(APPEND DRV_SRC ${TINYCBOR_PATH_SRC}/src/cborvalidation.c) list(APPEND DRV_SRC ${TINYCBOR_PATH_SRC}/src/cborerrorstrings.c) list(APPEND DRV_SRC ${TINYCBOR_PATH_SRC}/src/cborencoder.c) +list(APPEND DRV_SRC ${TINYCBOR_PATH_SRC}/src/cborparser_dup_string.c) list(APPEND DRV_SRC ${TINYCBOR_PATH_SRC}/src/cborencoder_close_container_checked.c) set(TINYCBOR_INC ${TINYCBOR_PATH_SRC}/src) diff --git a/driver/tinycbor.c b/driver/tinycbor.c index 0652040d..d29b69c9 100644 --- a/driver/tinycbor.c +++ b/driver/tinycbor.c @@ -12,9 +12,9 @@ * Note: these can't be freed per thread, since * DllMain(DLL_THREAD_ATTACH/DLL_THREAD_DETACH) is optional (and apps are * inconsistent even calling attach-detach for same thread). */ -static wchar_t **u16buffs = NULL; -static size_t u16buff_cnt = 0; -static esodbc_mutex_lt u16buff_mux = ESODBC_MUX_SINIT; +static void **utf_buffs = NULL; +static size_t utf_buff_cnt = 0; +static esodbc_mutex_lt utf_buff_mux = ESODBC_MUX_SINIT; /* advance an iterator of an "entered" JSON-sytle map to the value for the * given key, if that exists */ @@ -189,31 +189,30 @@ CborError cbor_container_is_empty(CborValue cont, BOOL *empty) return CborNoError; } -static BOOL enlist_utf16_buffer(wchar_t *old, wchar_t *new) +static BOOL enlist_utf_buffer(void *old, void *new) { - wchar_t **r; + void **r; size_t i; - if (! old) { - /* new entry must be inserted into list */ - ESODBC_MUX_LOCK(&u16buff_mux); - r = realloc(u16buffs, (u16buff_cnt + 1) * sizeof(wchar_t *)); + if (! old) { /* new entry must be inserted into list */ + ESODBC_MUX_LOCK(&utf_buff_mux); + r = realloc(utf_buffs, (utf_buff_cnt + 1) * sizeof(void *)); if (r) { - u16buffs = r; - u16buffs[u16buff_cnt ++] = new; + utf_buffs = r; + utf_buffs[utf_buff_cnt ++] = new; } - ESODBC_MUX_UNLOCK(&u16buff_mux); - } else { - ESODBC_MUX_LOCK(&u16buff_mux); + ESODBC_MUX_UNLOCK(&utf_buff_mux); + } else { /* old entry has be reallocated, store its updated ref */ + ESODBC_MUX_LOCK(&utf_buff_mux); r = NULL; - for (i = 0; i < u16buff_cnt; i ++) { - if (u16buffs[i] == old) { - r = &u16buffs[i]; - u16buffs[i] = new; + for (i = 0; i < utf_buff_cnt; i ++) { + if (utf_buffs[i] == old) { + r = &utf_buffs[i]; + utf_buffs[i] = new; break; } } - ESODBC_MUX_UNLOCK(&u16buff_mux); + ESODBC_MUX_UNLOCK(&utf_buff_mux); } return !!r; @@ -222,31 +221,82 @@ static BOOL enlist_utf16_buffer(wchar_t *old, wchar_t *new) void tinycbor_cleanup() { size_t i; - for (i = 0; i < u16buff_cnt; i ++) { - free(u16buffs[i]); + for (i = 0; i < utf_buff_cnt; i ++) { + free(utf_buffs[i]); } if (i) { - free(u16buffs); + free(utf_buffs); } } +static BOOL enlarge_buffer(void *str_ptr, size_t new_cnt, size_t usize) +{ + wstr_st r; /* reallocated */ + wstr_st *wbuff = (wstr_st *)str_ptr; + /* the two string struct types should remain identical (ptr, size_t), + * for the above cast to work also for cstr_st inputs */ + assert(sizeof(cstr_st) == sizeof(wstr_st)); + assert((void *)wbuff->str == (void *)((cstr_st *)str_ptr)->str); + assert(wbuff->cnt == ((cstr_st *)str_ptr)->cnt); + + /* double scratchpad size until exceeding min needed space. + * condition on equality, to allow for a 0-term */ + for (r.cnt = (0 < wbuff->cnt && wbuff->cnt < (size_t)-1) ? wbuff->cnt : + ESODBC_BODY_BUF_START_SIZE; r.cnt <= new_cnt; r.cnt *= 2) { + ; + } + if (! (r.str = realloc(wbuff->str, r.cnt * usize))) { + return false; + } + if (! enlist_utf_buffer(wbuff->str, r.str)) { + /* it should only possibly fail on 1st allocation per-thread (since + * the rest of invocations are to swap the pointers) */ + assert(! wbuff->str); + free(r.str); + return false; + } else { + *wbuff = r; + } + DBG("new UTF conv. buffer @0x%p, size %zu, usize: %zu.", wbuff->str, + wbuff->cnt, usize); + return true; +} + /* Fetches and converts a(n always UTF8) text string to UTF16 wide char. * Uses a dynamically allocated thread-local buffer. * 0-terminates the string */ CborError cbor_value_get_utf16_wstr(CborValue *it, wstr_st *utf16) { + /* .cnt needs to be non-zero, for U8MB_TO_U16WC() to fail on 1st invoc. */ static thread_local wstr_st wbuff = {.str = NULL, .cnt = (size_t)-1}; - wstr_st r; /* reallocated */ + static thread_local cstr_st cbuff = {0}; cstr_st mb_str; /* multibyte string */ CborError res; int n; + size_t len; assert(cbor_value_is_text_string(it)); /* get the multibyte string to convert */ - res = cbor_value_get_string_chunk(it, &mb_str.str, &mb_str.cnt); - if (res != CborNoError) { - return res; + if (cbor_value_is_length_known(it)) { /* str contained in single chunk? */ + res = cbor_value_get_string_chunk(it, &mb_str.str, &mb_str.cnt); + if (res != CborNoError) { + return res; + } + } else { /* string is spread across multiple chunks */ + res = cbor_value_calculate_string_length(it, &len); + if (res != CborNoError) { + return res; + } + if (cbuff.cnt <= len && !enlarge_buffer(&cbuff, len, sizeof(char))) { + return CborErrorOutOfMemory; + } + mb_str = cbuff; + res = cbor_value_copy_text_string(it, mb_str.str, &mb_str.cnt, it); + if (res != CborNoError) { + return res; + } } + /* attempt string conversion */ while ((n = U8MB_TO_U16WC(mb_str.str, mb_str.cnt, wbuff.str, wbuff.cnt)) <= 0) { @@ -272,28 +322,13 @@ CborError cbor_value_get_utf16_wstr(CborValue *it, wstr_st *utf16) break; } } - /* double scratchpad size until exceeding min needed space. - * condition on equality, to allow for a 0-term */ - for (r.cnt = wbuff.cnt < (size_t)-1 ? wbuff.cnt : - ESODBC_BODY_BUF_START_SIZE; r.cnt <= (size_t)n; r.cnt *= 2) { - ; - } - if (! (r.str = realloc(wbuff.str, r.cnt))) { + if (! enlarge_buffer(&wbuff, (size_t)n, sizeof(wchar_t))) { return CborErrorOutOfMemory; } - if (! enlist_utf16_buffer(wbuff.str, r.str)) { - /* it should only fail on 1st allocation per-thread */ - assert(! wbuff.str); - free(r.str); - return CborErrorOutOfMemory; - } else { - wbuff = r; - } - DBG("new UTF8/16 conv. buffer @0x%p, size %zu.", wbuff.str, wbuff.cnt); } /* U8MB_TO_U16WC() will only convert the 0-term if counted in input*/ - wbuff.str[n] = '\0'; /* set, but not counted */ + wbuff.str[n] = L'\0'; /* set, but not counted */ utf16->str = wbuff.str; utf16->cnt = n; return CborNoError; From a042178b8668d3cb398a5abc8335c695e2967173 Mon Sep 17 00:00:00 2001 From: Bogdan Pintea Date: Tue, 31 Mar 2020 18:06:45 +0200 Subject: [PATCH 3/5] Add unit test for cbor chunked strings Adds a unit test for processing cbor chunked string values. --- test/bodies.h | 1357 +++++++++++++++++++++++++++++++++++++++ test/test_sqlgetdata.cc | 34 +- 2 files changed, 1389 insertions(+), 2 deletions(-) create mode 100644 test/bodies.h diff --git a/test/bodies.h b/test/bodies.h new file mode 100644 index 00000000..0a9c9a84 --- /dev/null +++ b/test/bodies.h @@ -0,0 +1,1357 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +#ifndef __BODIES_H__ +#define __BODIES_H__ + +/* lenghts of objects of interest for the test */ +#define CBOR_ANSWER_STRING_CHUNKED_CURS_LEN 5624 +#define CBOR_ANSWER_STRING_CHUNKED_STRVAL_LEN 6041 +#define CBOR_ANSWER_STRING_CHUNKED_STRVAL_COL 36 +/* CBOR answer containing a chunked string column value and one chunked + * cursor; both need to be over 3996, the chunking limit of ES */ +const static unsigned char cbor_answer_string_chunked[] = { + 0xbf, 0x67, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x9f, 0xbf, 0x64, + 0x6e, 0x61, 0x6d, 0x65, 0x6a, 0x40, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x64, 0x74, 0x79, 0x70, 0x65, 0x68, 0x64, 0x61, 0x74, + 0x65, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x1d, 0xff, 0xbf, 0x64, 0x6e, + 0x61, 0x6d, 0x65, 0x65, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x64, 0x74, 0x79, + 0x70, 0x65, 0x64, 0x74, 0x65, 0x78, 0x74, 0x6c, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, 0x7f, 0xff, 0xff, + 0xff, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x6d, 0x61, 0x72, 0x63, + 0x68, 0x69, 0x76, 0x65, 0x2e, 0x6b, 0x65, 0x79, 0x5f, 0x31, 0x64, 0x74, + 0x79, 0x70, 0x65, 0x64, 0x74, 0x65, 0x78, 0x74, 0x6c, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, 0x7f, 0xff, + 0xff, 0xff, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x6d, 0x61, 0x72, + 0x63, 0x68, 0x69, 0x76, 0x65, 0x2e, 0x6b, 0x65, 0x79, 0x5f, 0x32, 0x64, + 0x74, 0x79, 0x70, 0x65, 0x64, 0x74, 0x65, 0x78, 0x74, 0x6c, 0x64, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, 0x7f, + 0xff, 0xff, 0xff, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x71, 0x61, + 0x75, 0x74, 0x6f, 0x5f, 0x64, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x74, 0x79, 0x70, 0x65, 0x64, 0x74, 0x65, + 0x78, 0x74, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x1a, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xbf, 0x64, 0x6e, + 0x61, 0x6d, 0x65, 0x6b, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x5f, 0x66, + 0x6c, 0x61, 0x67, 0x64, 0x74, 0x79, 0x70, 0x65, 0x67, 0x6b, 0x65, 0x79, + 0x77, 0x6f, 0x72, 0x64, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x19, 0x7f, 0xfe, 0xff, 0xbf, 0x64, 0x6e, + 0x61, 0x6d, 0x65, 0x6b, 0x63, 0x61, 0x75, 0x73, 0x65, 0x2e, 0x67, 0x75, + 0x65, 0x73, 0x73, 0x64, 0x74, 0x79, 0x70, 0x65, 0x67, 0x6b, 0x65, 0x79, + 0x77, 0x6f, 0x72, 0x64, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x19, 0x7f, 0xfe, 0xff, 0xbf, 0x64, 0x6e, + 0x61, 0x6d, 0x65, 0x74, 0x63, 0x61, 0x75, 0x73, 0x65, 0x2e, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x64, 0x74, 0x79, 0x70, 0x65, 0x67, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, + 0x64, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x19, 0x7f, 0xfe, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, + 0x66, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x64, 0x74, 0x79, 0x70, 0x65, + 0x67, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x6c, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x19, 0x7f, 0xfe, + 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x75, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x2e, 0x69, 0x64, 0x6e, 0x72, 0x64, 0x74, 0x79, 0x70, 0x65, 0x64, 0x6c, + 0x6f, 0x6e, 0x67, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x14, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, + 0x74, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x77, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x6c, 0x6e, 0x72, 0x64, 0x74, 0x79, + 0x70, 0x65, 0x67, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x6c, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x0b, + 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x76, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x2e, 0x6f, 0x74, 0x79, 0x70, 0x65, 0x64, 0x74, 0x79, 0x70, 0x65, 0x64, + 0x74, 0x65, 0x78, 0x74, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xbf, + 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x6f, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x74, 0x79, + 0x70, 0x65, 0x68, 0x64, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x6c, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0x1d, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x68, 0x64, 0x61, + 0x74, 0x65, 0x2e, 0x65, 0x6e, 0x64, 0x64, 0x74, 0x79, 0x70, 0x65, 0x68, + 0x64, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x1d, 0xff, + 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x6b, 0x64, 0x61, 0x74, 0x65, 0x2e, + 0x65, 0x6e, 0x64, 0x5f, 0x70, 0x70, 0x64, 0x74, 0x79, 0x70, 0x65, 0x68, + 0x64, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x1d, 0xff, + 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x6a, 0x64, 0x61, 0x74, 0x65, 0x2e, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x64, 0x74, 0x79, 0x70, 0x65, 0x68, 0x64, + 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x1d, 0xff, 0xbf, + 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x6b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x64, 0x74, 0x79, 0x70, 0x65, 0x65, 0x73, + 0x68, 0x6f, 0x72, 0x74, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x06, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, + 0x65, 0x70, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x68, 0x6f, 0x73, 0x74, 0x64, 0x74, 0x79, 0x70, 0x65, 0x64, + 0x74, 0x65, 0x78, 0x74, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xbf, + 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x71, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x64, + 0x74, 0x79, 0x70, 0x65, 0x64, 0x74, 0x65, 0x78, 0x74, 0x6c, 0x64, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, 0x7f, + 0xff, 0xff, 0xff, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x64, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x73, 0x71, 0x6c, 0x2e, 0x73, + 0x70, 0x64, 0x74, 0x79, 0x70, 0x65, 0x64, 0x74, 0x65, 0x78, 0x74, 0x6c, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x1a, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, + 0x78, 0x2d, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, + 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x6d, 0x69, 0x64, 0x6e, 0x69, + 0x67, 0x68, 0x74, 0x5f, 0x63, 0x65, 0x74, 0x5f, 0x63, 0x65, 0x73, 0x74, + 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, + 0x74, 0x79, 0x70, 0x65, 0x67, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, + 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x0b, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x78, 0x26, 0x64, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x75, + 0x74, 0x65, 0x73, 0x2e, 0x6d, 0x69, 0x64, 0x6e, 0x69, 0x67, 0x68, 0x74, + 0x5f, 0x63, 0x65, 0x74, 0x5f, 0x63, 0x65, 0x73, 0x74, 0x2e, 0x65, 0x6e, + 0x64, 0x64, 0x74, 0x79, 0x70, 0x65, 0x67, 0x69, 0x6e, 0x74, 0x65, 0x67, + 0x65, 0x72, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x0b, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x78, + 0x29, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x69, + 0x6e, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x6d, 0x69, 0x64, 0x6e, 0x69, 0x67, + 0x68, 0x74, 0x5f, 0x63, 0x65, 0x74, 0x5f, 0x63, 0x65, 0x73, 0x74, 0x2e, + 0x65, 0x6e, 0x64, 0x5f, 0x70, 0x70, 0x64, 0x74, 0x79, 0x70, 0x65, 0x67, + 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x6c, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x0b, 0xff, 0xbf, 0x64, + 0x6e, 0x61, 0x6d, 0x65, 0x78, 0x28, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x6d, + 0x69, 0x64, 0x6e, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x63, 0x65, 0x74, 0x5f, + 0x63, 0x65, 0x73, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x64, 0x74, + 0x79, 0x70, 0x65, 0x67, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x6c, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x0b, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x78, 0x28, 0x64, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, + 0x65, 0x73, 0x2e, 0x6d, 0x69, 0x64, 0x6e, 0x69, 0x67, 0x68, 0x74, 0x5f, + 0x75, 0x74, 0x63, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x64, 0x74, 0x79, 0x70, 0x65, 0x67, 0x69, 0x6e, 0x74, 0x65, + 0x67, 0x65, 0x72, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x0b, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, + 0x78, 0x21, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, + 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x6d, 0x69, 0x64, 0x6e, 0x69, + 0x67, 0x68, 0x74, 0x5f, 0x75, 0x74, 0x63, 0x2e, 0x65, 0x6e, 0x64, 0x64, + 0x74, 0x79, 0x70, 0x65, 0x67, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, + 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x0b, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x78, 0x24, 0x64, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x75, + 0x74, 0x65, 0x73, 0x2e, 0x6d, 0x69, 0x64, 0x6e, 0x69, 0x67, 0x68, 0x74, + 0x5f, 0x75, 0x74, 0x63, 0x2e, 0x65, 0x6e, 0x64, 0x5f, 0x70, 0x70, 0x64, + 0x74, 0x79, 0x70, 0x65, 0x67, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, + 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x0b, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x78, 0x23, 0x64, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x75, + 0x74, 0x65, 0x73, 0x2e, 0x6d, 0x69, 0x64, 0x6e, 0x69, 0x67, 0x68, 0x74, + 0x5f, 0x75, 0x74, 0x63, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x64, 0x74, + 0x79, 0x70, 0x65, 0x67, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x6c, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x0b, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x78, 0x1f, 0x64, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x73, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x65, 0x6e, 0x64, 0x64, 0x74, 0x79, 0x70, 0x65, 0x67, 0x69, + 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x0b, 0xff, 0xbf, 0x64, 0x6e, + 0x61, 0x6d, 0x65, 0x78, 0x22, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x2e, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x65, 0x6e, 0x64, + 0x5f, 0x70, 0x70, 0x64, 0x74, 0x79, 0x70, 0x65, 0x67, 0x69, 0x6e, 0x74, + 0x65, 0x67, 0x65, 0x72, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x0b, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, + 0x65, 0x78, 0x21, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x2e, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x64, 0x74, 0x79, 0x70, 0x65, 0x67, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, + 0x72, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x0b, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x78, 0x1b, + 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x63, + 0x6f, 0x6e, 0x64, 0x73, 0x2e, 0x65, 0x6e, 0x64, 0x2e, 0x65, 0x6e, 0x64, + 0x5f, 0x70, 0x70, 0x64, 0x74, 0x79, 0x70, 0x65, 0x67, 0x69, 0x6e, 0x74, + 0x65, 0x67, 0x65, 0x72, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x0b, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, + 0x65, 0x78, 0x22, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x2e, 0x65, 0x73, 0x74, 0x69, + 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, + 0x65, 0x64, 0x74, 0x79, 0x70, 0x65, 0x67, 0x69, 0x6e, 0x74, 0x65, 0x67, + 0x65, 0x72, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x0b, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x78, + 0x1a, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x2e, + 0x65, 0x6e, 0x64, 0x64, 0x74, 0x79, 0x70, 0x65, 0x67, 0x69, 0x6e, 0x74, + 0x65, 0x67, 0x65, 0x72, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x0b, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, + 0x65, 0x78, 0x1d, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x2e, 0x65, 0x6e, 0x64, 0x5f, 0x70, 0x70, 0x64, 0x74, 0x79, 0x70, + 0x65, 0x67, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x6c, 0x64, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x0b, 0xff, + 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x69, 0x65, 0x68, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x64, 0x74, 0x79, 0x70, 0x65, 0x64, 0x74, 0x65, + 0x78, 0x74, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x1a, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xbf, 0x64, 0x6e, + 0x61, 0x6d, 0x65, 0x64, 0x69, 0x64, 0x6e, 0x72, 0x64, 0x74, 0x79, 0x70, + 0x65, 0x64, 0x6c, 0x6f, 0x6e, 0x67, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x14, 0xff, 0xbf, 0x64, 0x6e, + 0x61, 0x6d, 0x65, 0x66, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x74, + 0x79, 0x70, 0x65, 0x67, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x6c, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x01, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x68, 0x69, 0x73, 0x5f, + 0x69, 0x6e, 0x5f, 0x65, 0x68, 0x64, 0x74, 0x79, 0x70, 0x65, 0x67, 0x62, + 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x01, 0xff, 0xbf, 0x64, 0x6e, + 0x61, 0x6d, 0x65, 0x6e, 0x6a, 0x69, 0x72, 0x61, 0x2e, 0x69, 0x73, 0x73, + 0x75, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x64, 0x74, 0x79, 0x70, 0x65, 0x67, + 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x6c, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x19, 0x7f, 0xfe, 0xff, + 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x71, 0x6a, 0x69, 0x72, 0x61, 0x2e, + 0x69, 0x73, 0x73, 0x75, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x64, 0x74, 0x79, 0x70, 0x65, 0x67, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, + 0x64, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x19, 0x7f, 0xfe, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, + 0x6e, 0x6a, 0x69, 0x72, 0x61, 0x2e, 0x69, 0x73, 0x73, 0x75, 0x65, 0x5f, + 0x75, 0x72, 0x6c, 0x64, 0x74, 0x79, 0x70, 0x65, 0x64, 0x74, 0x65, 0x78, + 0x74, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x1a, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xbf, 0x64, 0x6e, 0x61, + 0x6d, 0x65, 0x68, 0x6a, 0x6f, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x64, + 0x74, 0x79, 0x70, 0x65, 0x64, 0x74, 0x65, 0x78, 0x74, 0x6c, 0x64, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, 0x7f, + 0xff, 0xff, 0xff, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x78, 0x19, + 0x6d, 0x64, 0x65, 0x2e, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x72, 0x75, 0x6e, 0x2e, 0x69, + 0x64, 0x64, 0x74, 0x79, 0x70, 0x65, 0x67, 0x6b, 0x65, 0x79, 0x77, 0x6f, + 0x72, 0x64, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x19, 0x7f, 0xfe, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, + 0x65, 0x78, 0x20, 0x6d, 0x64, 0x65, 0x2e, 0x6c, 0x61, 0x73, 0x74, 0x5f, + 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x72, 0x75, + 0x6e, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x64, + 0x74, 0x79, 0x70, 0x65, 0x68, 0x64, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, + 0x65, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x18, 0x1d, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x78, + 0x1a, 0x6d, 0x64, 0x65, 0x2e, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x65, + 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x72, 0x75, 0x6e, + 0x2e, 0x69, 0x64, 0x64, 0x74, 0x79, 0x70, 0x65, 0x67, 0x6b, 0x65, 0x79, + 0x77, 0x6f, 0x72, 0x64, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x19, 0x7f, 0xfe, 0xff, 0xbf, 0x64, 0x6e, + 0x61, 0x6d, 0x65, 0x78, 0x21, 0x6d, 0x64, 0x65, 0x2e, 0x6c, 0x61, 0x73, + 0x74, 0x5f, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, + 0x5f, 0x72, 0x75, 0x6e, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x64, 0x74, 0x79, 0x70, 0x65, 0x68, 0x64, 0x61, 0x74, 0x65, + 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x1d, 0xff, 0xbf, 0x64, 0x6e, 0x61, + 0x6d, 0x65, 0x76, 0x6d, 0x64, 0x65, 0x2e, 0x6c, 0x61, 0x73, 0x74, 0x5f, + 0x65, 0x68, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x72, 0x75, 0x6e, 0x2e, 0x69, + 0x64, 0x64, 0x74, 0x79, 0x70, 0x65, 0x67, 0x6b, 0x65, 0x79, 0x77, 0x6f, + 0x72, 0x64, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x19, 0x7f, 0xfe, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, + 0x65, 0x78, 0x1d, 0x6d, 0x64, 0x65, 0x2e, 0x6c, 0x61, 0x73, 0x74, 0x5f, + 0x65, 0x68, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x72, 0x75, 0x6e, 0x2e, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x64, 0x74, 0x79, 0x70, + 0x65, 0x68, 0x64, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, + 0x1d, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x6e, 0x61, 0x6d, + 0x65, 0x64, 0x74, 0x79, 0x70, 0x65, 0x64, 0x74, 0x65, 0x78, 0x74, 0x6c, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x1a, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, + 0x67, 0x6f, 0x68, 0x5f, 0x69, 0x64, 0x6e, 0x72, 0x64, 0x74, 0x79, 0x70, + 0x65, 0x64, 0x6c, 0x6f, 0x6e, 0x67, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x14, 0xff, 0xbf, 0x64, 0x6e, + 0x61, 0x6d, 0x65, 0x65, 0x6f, 0x74, 0x79, 0x70, 0x65, 0x64, 0x74, 0x79, + 0x70, 0x65, 0x67, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x6c, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x19, + 0x7f, 0xfe, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x6f, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x6e, + 0x72, 0x64, 0x74, 0x79, 0x70, 0x65, 0x64, 0x6c, 0x6f, 0x6e, 0x67, 0x6c, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x14, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x6f, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x2e, 0x68, 0x69, 0x72, 0x5f, 0x69, 0x64, 0x6e, 0x72, + 0x64, 0x74, 0x79, 0x70, 0x65, 0x64, 0x6c, 0x6f, 0x6e, 0x67, 0x6c, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x14, + 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x6f, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x63, 0x5f, 0x69, 0x64, 0x6e, 0x72, 0x64, + 0x74, 0x79, 0x70, 0x65, 0x64, 0x6c, 0x6f, 0x6e, 0x67, 0x6c, 0x64, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x14, 0xff, + 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x74, 0x70, 0x65, 0x72, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x63, 0x70, 0x75, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x64, 0x74, 0x79, 0x70, 0x65, 0x64, 0x6c, 0x6f, 0x6e, + 0x67, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x14, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x74, 0x70, + 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x69, + 0x6f, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x64, 0x74, 0x79, 0x70, 0x65, + 0x64, 0x6c, 0x6f, 0x6e, 0x67, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x14, 0xff, 0xbf, 0x64, 0x6e, 0x61, + 0x6d, 0x65, 0x77, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, + 0x63, 0x65, 0x2e, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x64, 0x74, 0x79, 0x70, 0x65, 0x64, 0x6c, 0x6f, 0x6e, 0x67, + 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x14, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x75, 0x70, 0x65, + 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x64, 0x74, 0x79, 0x70, 0x65, + 0x64, 0x6c, 0x6f, 0x6e, 0x67, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x14, 0xff, 0xbf, 0x64, 0x6e, 0x61, + 0x6d, 0x65, 0x68, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x64, + 0x74, 0x79, 0x70, 0x65, 0x67, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, + 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x0b, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x6a, 0x70, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x64, 0x74, 0x79, 0x70, + 0x65, 0x67, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x6c, 0x64, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x0b, 0xff, + 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x65, 0x71, 0x75, 0x65, 0x75, 0x65, + 0x64, 0x74, 0x79, 0x70, 0x65, 0x64, 0x74, 0x65, 0x78, 0x74, 0x6c, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, + 0x7f, 0xff, 0xff, 0xff, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x68, + 0x72, 0x65, 0x66, 0x5f, 0x69, 0x64, 0x6e, 0x72, 0x64, 0x74, 0x79, 0x70, + 0x65, 0x64, 0x6c, 0x6f, 0x6e, 0x67, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x14, 0xff, 0xbf, 0x64, 0x6e, + 0x61, 0x6d, 0x65, 0x6c, 0x72, 0x65, 0x66, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, + 0x69, 0x64, 0x6e, 0x72, 0x64, 0x74, 0x79, 0x70, 0x65, 0x64, 0x6c, 0x6f, + 0x6e, 0x67, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x14, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x6a, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x61, 0x63, 0x74, 0x64, 0x74, + 0x79, 0x70, 0x65, 0x64, 0x74, 0x65, 0x78, 0x74, 0x6c, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, 0x7f, 0xff, + 0xff, 0xff, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x6a, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x6f, 0x67, 0x64, 0x74, 0x79, 0x70, + 0x65, 0x64, 0x74, 0x65, 0x78, 0x74, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, 0x7f, 0xff, 0xff, 0xff, + 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x6b, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x2e, 0x6f, 0x72, 0x65, 0x70, 0x64, 0x74, 0x79, 0x70, 0x65, + 0x64, 0x74, 0x65, 0x78, 0x74, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, 0x7f, 0xff, 0xff, 0xff, 0xff, + 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x6b, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x2e, 0x70, 0x6c, 0x6f, 0x67, 0x64, 0x74, 0x79, 0x70, 0x65, 0x64, + 0x74, 0x65, 0x78, 0x74, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xbf, + 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x6b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x2e, 0x70, 0x6f, 0x63, 0x6f, 0x64, 0x74, 0x79, 0x70, 0x65, 0x64, 0x74, + 0x65, 0x78, 0x74, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x1a, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xbf, 0x64, + 0x6e, 0x61, 0x6d, 0x65, 0x6b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, + 0x70, 0x6f, 0x73, 0x74, 0x64, 0x74, 0x79, 0x70, 0x65, 0x64, 0x74, 0x65, + 0x78, 0x74, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x1a, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xbf, 0x64, 0x6e, + 0x61, 0x6d, 0x65, 0x6b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x70, + 0x72, 0x63, 0x6f, 0x64, 0x74, 0x79, 0x70, 0x65, 0x64, 0x74, 0x65, 0x78, + 0x74, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x1a, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xbf, 0x64, 0x6e, 0x61, + 0x6d, 0x65, 0x6a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x72, 0x65, + 0x70, 0x64, 0x74, 0x79, 0x70, 0x65, 0x64, 0x74, 0x65, 0x78, 0x74, 0x6c, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x1a, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, + 0x6b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x72, 0x65, 0x76, 0x30, + 0x64, 0x74, 0x79, 0x70, 0x65, 0x64, 0x74, 0x65, 0x78, 0x74, 0x6c, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, + 0x7f, 0xff, 0xff, 0xff, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x6b, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x72, 0x65, 0x76, 0x32, 0x64, + 0x74, 0x79, 0x70, 0x65, 0x64, 0x74, 0x65, 0x78, 0x74, 0x6c, 0x64, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, 0x7f, + 0xff, 0xff, 0xff, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x6d, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x64, 0x74, 0x79, 0x70, 0x65, 0x67, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, + 0x72, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x0b, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x67, 0x72, + 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x64, 0x74, 0x79, 0x70, 0x65, 0x65, + 0x73, 0x68, 0x6f, 0x72, 0x74, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x06, 0xff, 0xbf, 0x64, 0x6e, 0x61, + 0x6d, 0x65, 0x6b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x63, 0x6f, + 0x64, 0x65, 0x64, 0x74, 0x79, 0x70, 0x65, 0x67, 0x69, 0x6e, 0x74, 0x65, + 0x67, 0x65, 0x72, 0x6c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x0b, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, + 0x6b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x68, 0x6f, 0x73, 0x74, + 0x64, 0x74, 0x79, 0x70, 0x65, 0x64, 0x74, 0x65, 0x78, 0x74, 0x6c, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, + 0x7f, 0xff, 0xff, 0xff, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x6c, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x6c, 0x6f, 0x67, 0x69, 0x6e, + 0x64, 0x74, 0x79, 0x70, 0x65, 0x64, 0x74, 0x65, 0x78, 0x74, 0x6c, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, + 0x7f, 0xff, 0xff, 0xff, 0xff, 0xbf, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x66, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x64, 0x74, 0x79, 0x70, 0x65, 0x67, + 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x6c, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x0b, 0xff, 0xbf, 0x64, + 0x6e, 0x61, 0x6d, 0x65, 0x65, 0x73, 0x74, 0x79, 0x70, 0x65, 0x64, 0x74, + 0x79, 0x70, 0x65, 0x67, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x6c, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x19, 0x7f, 0xfe, 0xff, 0xff, 0x64, 0x72, 0x6f, 0x77, 0x73, 0x9f, 0x9f, + 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, + 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, + 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0x7f, + 0x79, 0x0f, 0x9c, 0x42, 0x46, 0x36, 0x37, 0x36, 0x33, 0x36, 0x46, 0x36, + 0x43, 0x37, 0x35, 0x36, 0x44, 0x36, 0x45, 0x37, 0x33, 0x39, 0x46, 0x42, + 0x46, 0x36, 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, 0x36, + 0x41, 0x34, 0x30, 0x37, 0x34, 0x36, 0x39, 0x36, 0x44, 0x36, 0x35, 0x37, + 0x33, 0x37, 0x34, 0x36, 0x31, 0x36, 0x44, 0x37, 0x30, 0x36, 0x34, 0x37, + 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, 0x36, 0x38, 0x36, 0x34, 0x36, + 0x31, 0x37, 0x34, 0x36, 0x35, 0x37, 0x34, 0x36, 0x39, 0x36, 0x44, 0x36, + 0x35, 0x36, 0x43, 0x36, 0x34, 0x36, 0x39, 0x37, 0x33, 0x37, 0x30, 0x36, + 0x43, 0x36, 0x31, 0x37, 0x39, 0x35, 0x46, 0x37, 0x33, 0x36, 0x39, 0x37, + 0x41, 0x36, 0x35, 0x31, 0x38, 0x31, 0x44, 0x46, 0x46, 0x42, 0x46, 0x36, + 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, 0x36, 0x35, 0x36, + 0x31, 0x36, 0x43, 0x36, 0x39, 0x36, 0x31, 0x37, 0x33, 0x36, 0x34, 0x37, + 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, 0x36, 0x34, 0x37, 0x34, 0x36, + 0x35, 0x37, 0x38, 0x37, 0x34, 0x36, 0x43, 0x36, 0x34, 0x36, 0x39, 0x37, + 0x33, 0x37, 0x30, 0x36, 0x43, 0x36, 0x31, 0x37, 0x39, 0x35, 0x46, 0x37, + 0x33, 0x36, 0x39, 0x37, 0x41, 0x36, 0x35, 0x31, 0x41, 0x37, 0x46, 0x46, + 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x42, 0x46, 0x36, 0x34, 0x36, + 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, 0x36, 0x44, 0x36, 0x31, 0x37, + 0x32, 0x36, 0x33, 0x36, 0x38, 0x36, 0x39, 0x37, 0x36, 0x36, 0x35, 0x32, + 0x45, 0x36, 0x42, 0x36, 0x35, 0x37, 0x39, 0x35, 0x46, 0x33, 0x31, 0x36, + 0x34, 0x37, 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, 0x36, 0x34, 0x37, + 0x34, 0x36, 0x35, 0x37, 0x38, 0x37, 0x34, 0x36, 0x43, 0x36, 0x34, 0x36, + 0x39, 0x37, 0x33, 0x37, 0x30, 0x36, 0x43, 0x36, 0x31, 0x37, 0x39, 0x35, + 0x46, 0x37, 0x33, 0x36, 0x39, 0x37, 0x41, 0x36, 0x35, 0x31, 0x41, 0x37, + 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x42, 0x46, 0x36, + 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, 0x36, 0x44, 0x36, + 0x31, 0x37, 0x32, 0x36, 0x33, 0x36, 0x38, 0x36, 0x39, 0x37, 0x36, 0x36, + 0x35, 0x32, 0x45, 0x36, 0x42, 0x36, 0x35, 0x37, 0x39, 0x35, 0x46, 0x33, + 0x32, 0x36, 0x34, 0x37, 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, 0x36, + 0x34, 0x37, 0x34, 0x36, 0x35, 0x37, 0x38, 0x37, 0x34, 0x36, 0x43, 0x36, + 0x34, 0x36, 0x39, 0x37, 0x33, 0x37, 0x30, 0x36, 0x43, 0x36, 0x31, 0x37, + 0x39, 0x35, 0x46, 0x37, 0x33, 0x36, 0x39, 0x37, 0x41, 0x36, 0x35, 0x31, + 0x41, 0x37, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x42, + 0x46, 0x36, 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, 0x37, + 0x31, 0x36, 0x31, 0x37, 0x35, 0x37, 0x34, 0x36, 0x46, 0x35, 0x46, 0x36, + 0x34, 0x36, 0x35, 0x36, 0x31, 0x36, 0x33, 0x37, 0x34, 0x36, 0x39, 0x37, + 0x36, 0x36, 0x31, 0x37, 0x34, 0x36, 0x39, 0x36, 0x46, 0x36, 0x45, 0x36, + 0x34, 0x37, 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, 0x36, 0x34, 0x37, + 0x34, 0x36, 0x35, 0x37, 0x38, 0x37, 0x34, 0x36, 0x43, 0x36, 0x34, 0x36, + 0x39, 0x37, 0x33, 0x37, 0x30, 0x36, 0x43, 0x36, 0x31, 0x37, 0x39, 0x35, + 0x46, 0x37, 0x33, 0x36, 0x39, 0x37, 0x41, 0x36, 0x35, 0x31, 0x41, 0x37, + 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x42, 0x46, 0x36, + 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, 0x36, 0x42, 0x36, + 0x33, 0x36, 0x31, 0x36, 0x45, 0x36, 0x33, 0x36, 0x35, 0x36, 0x43, 0x35, + 0x46, 0x36, 0x36, 0x36, 0x43, 0x36, 0x31, 0x36, 0x37, 0x36, 0x34, 0x37, + 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, 0x36, 0x37, 0x36, 0x42, 0x36, + 0x35, 0x37, 0x39, 0x37, 0x37, 0x36, 0x46, 0x37, 0x32, 0x36, 0x34, 0x36, + 0x43, 0x36, 0x34, 0x36, 0x39, 0x37, 0x33, 0x37, 0x30, 0x36, 0x43, 0x36, + 0x31, 0x37, 0x39, 0x35, 0x46, 0x37, 0x33, 0x36, 0x39, 0x37, 0x41, 0x36, + 0x35, 0x31, 0x39, 0x37, 0x46, 0x46, 0x45, 0x46, 0x46, 0x42, 0x46, 0x36, + 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, 0x36, 0x42, 0x36, + 0x33, 0x36, 0x31, 0x37, 0x35, 0x37, 0x33, 0x36, 0x35, 0x32, 0x45, 0x36, + 0x37, 0x37, 0x35, 0x36, 0x35, 0x37, 0x33, 0x37, 0x33, 0x36, 0x34, 0x37, + 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, 0x36, 0x37, 0x36, 0x42, 0x36, + 0x35, 0x37, 0x39, 0x37, 0x37, 0x36, 0x46, 0x37, 0x32, 0x36, 0x34, 0x36, + 0x43, 0x36, 0x34, 0x36, 0x39, 0x37, 0x33, 0x37, 0x30, 0x36, 0x43, 0x36, + 0x31, 0x37, 0x39, 0x35, 0x46, 0x37, 0x33, 0x36, 0x39, 0x37, 0x41, 0x36, + 0x35, 0x31, 0x39, 0x37, 0x46, 0x46, 0x45, 0x46, 0x46, 0x42, 0x46, 0x36, + 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, 0x37, 0x34, 0x36, + 0x33, 0x36, 0x31, 0x37, 0x35, 0x37, 0x33, 0x36, 0x35, 0x32, 0x45, 0x37, + 0x32, 0x36, 0x35, 0x37, 0x33, 0x37, 0x30, 0x36, 0x46, 0x36, 0x45, 0x37, + 0x33, 0x36, 0x39, 0x36, 0x32, 0x36, 0x39, 0x36, 0x43, 0x36, 0x39, 0x37, + 0x34, 0x37, 0x39, 0x36, 0x34, 0x37, 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, + 0x35, 0x36, 0x37, 0x36, 0x42, 0x36, 0x35, 0x37, 0x39, 0x37, 0x37, 0x36, + 0x46, 0x37, 0x32, 0x36, 0x34, 0x36, 0x43, 0x36, 0x34, 0x36, 0x39, 0x37, + 0x33, 0x37, 0x30, 0x36, 0x43, 0x36, 0x31, 0x37, 0x39, 0x35, 0x46, 0x37, + 0x33, 0x36, 0x39, 0x37, 0x41, 0x36, 0x35, 0x31, 0x39, 0x37, 0x46, 0x46, + 0x45, 0x46, 0x46, 0x42, 0x46, 0x36, 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, + 0x44, 0x36, 0x35, 0x36, 0x36, 0x36, 0x33, 0x36, 0x43, 0x36, 0x39, 0x36, + 0x35, 0x36, 0x45, 0x37, 0x34, 0x36, 0x34, 0x37, 0x34, 0x37, 0x39, 0x37, + 0x30, 0x36, 0x35, 0x36, 0x37, 0x36, 0x42, 0x36, 0x35, 0x37, 0x39, 0x37, + 0x37, 0x36, 0x46, 0x37, 0x32, 0x36, 0x34, 0x36, 0x43, 0x36, 0x34, 0x36, + 0x39, 0x37, 0x33, 0x37, 0x30, 0x36, 0x43, 0x36, 0x31, 0x37, 0x39, 0x35, + 0x46, 0x37, 0x33, 0x36, 0x39, 0x37, 0x41, 0x36, 0x35, 0x31, 0x39, 0x37, + 0x46, 0x46, 0x45, 0x46, 0x46, 0x42, 0x46, 0x36, 0x34, 0x36, 0x45, 0x36, + 0x31, 0x36, 0x44, 0x36, 0x35, 0x37, 0x35, 0x36, 0x33, 0x36, 0x46, 0x36, + 0x45, 0x37, 0x34, 0x36, 0x35, 0x37, 0x38, 0x37, 0x34, 0x32, 0x45, 0x37, + 0x37, 0x36, 0x46, 0x37, 0x32, 0x36, 0x42, 0x36, 0x36, 0x36, 0x43, 0x36, + 0x46, 0x37, 0x37, 0x32, 0x45, 0x36, 0x39, 0x36, 0x34, 0x36, 0x45, 0x37, + 0x32, 0x36, 0x34, 0x37, 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, 0x36, + 0x34, 0x36, 0x43, 0x36, 0x46, 0x36, 0x45, 0x36, 0x37, 0x36, 0x43, 0x36, + 0x34, 0x36, 0x39, 0x37, 0x33, 0x37, 0x30, 0x36, 0x43, 0x36, 0x31, 0x37, + 0x39, 0x35, 0x46, 0x37, 0x33, 0x36, 0x39, 0x37, 0x41, 0x36, 0x35, 0x31, + 0x34, 0x46, 0x46, 0x42, 0x46, 0x36, 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, + 0x44, 0x36, 0x35, 0x37, 0x34, 0x36, 0x33, 0x36, 0x46, 0x36, 0x45, 0x37, + 0x34, 0x36, 0x35, 0x37, 0x38, 0x37, 0x34, 0x32, 0x45, 0x37, 0x37, 0x36, + 0x46, 0x37, 0x32, 0x36, 0x42, 0x36, 0x36, 0x36, 0x43, 0x36, 0x46, 0x37, + 0x37, 0x32, 0x45, 0x36, 0x43, 0x36, 0x45, 0x37, 0x32, 0x36, 0x34, 0x37, + 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, 0x36, 0x37, 0x36, 0x39, 0x36, + 0x45, 0x37, 0x34, 0x36, 0x35, 0x36, 0x37, 0x36, 0x35, 0x37, 0x32, 0x36, + 0x43, 0x36, 0x34, 0x36, 0x39, 0x37, 0x33, 0x37, 0x30, 0x36, 0x43, 0x36, + 0x31, 0x37, 0x39, 0x35, 0x46, 0x37, 0x33, 0x36, 0x39, 0x37, 0x41, 0x36, + 0x35, 0x30, 0x42, 0x46, 0x46, 0x42, 0x46, 0x36, 0x34, 0x36, 0x45, 0x36, + 0x31, 0x36, 0x44, 0x36, 0x35, 0x37, 0x36, 0x36, 0x33, 0x36, 0x46, 0x36, + 0x45, 0x37, 0x34, 0x36, 0x35, 0x37, 0x38, 0x37, 0x34, 0x32, 0x45, 0x37, + 0x37, 0x36, 0x46, 0x37, 0x32, 0x36, 0x42, 0x36, 0x36, 0x36, 0x43, 0x36, + 0x46, 0x37, 0x37, 0x32, 0x45, 0x36, 0x46, 0x37, 0x34, 0x37, 0x39, 0x37, + 0x30, 0x36, 0x35, 0x36, 0x34, 0x37, 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, + 0x35, 0x36, 0x34, 0x37, 0x34, 0x36, 0x35, 0x37, 0x38, 0x37, 0x34, 0x36, + 0x43, 0x36, 0x34, 0x36, 0x39, 0x37, 0x33, 0x37, 0x30, 0x36, 0x43, 0x36, + 0x31, 0x37, 0x39, 0x35, 0x46, 0x37, 0x33, 0x36, 0x39, 0x37, 0x41, 0x36, + 0x35, 0x31, 0x41, 0x37, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, + 0x46, 0x42, 0x46, 0x36, 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, + 0x35, 0x36, 0x46, 0x36, 0x34, 0x36, 0x31, 0x37, 0x34, 0x36, 0x35, 0x32, + 0x45, 0x36, 0x31, 0x36, 0x33, 0x37, 0x34, 0x36, 0x39, 0x37, 0x36, 0x36, + 0x31, 0x37, 0x34, 0x36, 0x39, 0x36, 0x46, 0x36, 0x45, 0x36, 0x34, 0x37, + 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, 0x36, 0x38, 0x36, 0x34, 0x36, + 0x31, 0x37, 0x34, 0x36, 0x35, 0x37, 0x34, 0x36, 0x39, 0x36, 0x44, 0x36, + 0x35, 0x36, 0x43, 0x36, 0x34, 0x36, 0x39, 0x37, 0x33, 0x37, 0x30, 0x36, + 0x43, 0x36, 0x31, 0x37, 0x39, 0x35, 0x46, 0x37, 0x33, 0x36, 0x39, 0x37, + 0x41, 0x36, 0x35, 0x31, 0x38, 0x31, 0x44, 0x46, 0x46, 0x42, 0x46, 0x36, + 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, 0x36, 0x38, 0x36, + 0x34, 0x36, 0x31, 0x37, 0x34, 0x36, 0x35, 0x32, 0x45, 0x36, 0x35, 0x36, + 0x45, 0x36, 0x34, 0x36, 0x34, 0x37, 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, + 0x35, 0x36, 0x38, 0x36, 0x34, 0x36, 0x31, 0x37, 0x34, 0x36, 0x35, 0x37, + 0x34, 0x36, 0x39, 0x36, 0x44, 0x36, 0x35, 0x36, 0x43, 0x36, 0x34, 0x36, + 0x39, 0x37, 0x33, 0x37, 0x30, 0x36, 0x43, 0x36, 0x31, 0x37, 0x39, 0x35, + 0x46, 0x37, 0x33, 0x36, 0x39, 0x37, 0x41, 0x36, 0x35, 0x31, 0x38, 0x31, + 0x44, 0x46, 0x46, 0x42, 0x46, 0x36, 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, + 0x44, 0x36, 0x35, 0x36, 0x42, 0x36, 0x34, 0x36, 0x31, 0x37, 0x34, 0x36, + 0x35, 0x32, 0x45, 0x36, 0x35, 0x36, 0x45, 0x36, 0x34, 0x35, 0x46, 0x37, + 0x30, 0x37, 0x30, 0x36, 0x34, 0x37, 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, + 0x35, 0x36, 0x38, 0x36, 0x34, 0x36, 0x31, 0x37, 0x34, 0x36, 0x35, 0x37, + 0x34, 0x36, 0x39, 0x36, 0x44, 0x36, 0x35, 0x36, 0x43, 0x36, 0x34, 0x36, + 0x39, 0x37, 0x33, 0x37, 0x30, 0x36, 0x43, 0x36, 0x31, 0x37, 0x39, 0x35, + 0x46, 0x37, 0x33, 0x36, 0x39, 0x37, 0x41, 0x36, 0x35, 0x31, 0x38, 0x31, + 0x44, 0x46, 0x46, 0x42, 0x46, 0x36, 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, + 0x44, 0x36, 0x35, 0x36, 0x41, 0x36, 0x34, 0x36, 0x31, 0x37, 0x34, 0x36, + 0x35, 0x32, 0x45, 0x37, 0x33, 0x37, 0x34, 0x36, 0x31, 0x37, 0x32, 0x37, + 0x34, 0x36, 0x34, 0x37, 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, 0x36, + 0x38, 0x36, 0x34, 0x36, 0x31, 0x37, 0x34, 0x36, 0x35, 0x37, 0x34, 0x36, + 0x39, 0x36, 0x44, 0x36, 0x35, 0x36, 0x43, 0x36, 0x34, 0x36, 0x39, 0x37, + 0x33, 0x37, 0x30, 0x36, 0x43, 0x36, 0x31, 0x37, 0x39, 0x35, 0x46, 0x37, + 0x33, 0x36, 0x39, 0x37, 0x41, 0x36, 0x35, 0x31, 0x38, 0x31, 0x44, 0x46, + 0x46, 0x42, 0x46, 0x36, 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, + 0x35, 0x36, 0x42, 0x36, 0x34, 0x36, 0x35, 0x36, 0x43, 0x36, 0x35, 0x37, + 0x34, 0x36, 0x35, 0x35, 0x46, 0x36, 0x36, 0x36, 0x43, 0x36, 0x31, 0x36, + 0x37, 0x36, 0x34, 0x37, 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, 0x36, + 0x35, 0x37, 0x33, 0x36, 0x38, 0x36, 0x46, 0x37, 0x32, 0x37, 0x34, 0x36, + 0x43, 0x36, 0x34, 0x36, 0x39, 0x37, 0x33, 0x37, 0x30, 0x36, 0x43, 0x36, + 0x31, 0x37, 0x39, 0x35, 0x46, 0x37, 0x33, 0x36, 0x39, 0x37, 0x41, 0x36, + 0x35, 0x30, 0x36, 0x46, 0x46, 0x42, 0x46, 0x36, 0x34, 0x36, 0x45, 0x36, + 0x31, 0x36, 0x44, 0x36, 0x35, 0x37, 0x30, 0x36, 0x34, 0x36, 0x35, 0x37, + 0x33, 0x37, 0x34, 0x36, 0x39, 0x36, 0x45, 0x36, 0x31, 0x37, 0x34, 0x36, + 0x39, 0x36, 0x46, 0x36, 0x45, 0x32, 0x45, 0x36, 0x38, 0x36, 0x46, 0x37, + 0x33, 0x37, 0x34, 0x36, 0x34, 0x37, 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, + 0x35, 0x36, 0x34, 0x37, 0x34, 0x36, 0x35, 0x37, 0x38, 0x37, 0x34, 0x36, + 0x43, 0x36, 0x34, 0x36, 0x39, 0x37, 0x33, 0x37, 0x30, 0x36, 0x43, 0x36, + 0x31, 0x37, 0x39, 0x35, 0x46, 0x37, 0x33, 0x36, 0x39, 0x37, 0x41, 0x36, + 0x35, 0x31, 0x41, 0x37, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, + 0x46, 0x42, 0x46, 0x36, 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, + 0x35, 0x37, 0x31, 0x36, 0x34, 0x36, 0x35, 0x37, 0x33, 0x37, 0x34, 0x36, + 0x39, 0x36, 0x45, 0x36, 0x31, 0x37, 0x34, 0x36, 0x39, 0x36, 0x46, 0x36, + 0x45, 0x32, 0x45, 0x36, 0x43, 0x36, 0x46, 0x36, 0x37, 0x36, 0x39, 0x36, + 0x45, 0x36, 0x34, 0x37, 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, 0x36, + 0x34, 0x37, 0x34, 0x36, 0x35, 0x37, 0x38, 0x37, 0x34, 0x36, 0x43, 0x36, + 0x34, 0x36, 0x39, 0x37, 0x33, 0x37, 0x30, 0x36, 0x43, 0x36, 0x31, 0x37, + 0x39, 0x35, 0x46, 0x37, 0x33, 0x36, 0x39, 0x37, 0x41, 0x36, 0x35, 0x31, + 0x41, 0x37, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x42, + 0x46, 0x36, 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, 0x36, + 0x45, 0x36, 0x34, 0x36, 0x35, 0x37, 0x34, 0x36, 0x31, 0x36, 0x39, 0x36, + 0x43, 0x37, 0x33, 0x32, 0x45, 0x37, 0x33, 0x37, 0x31, 0x36, 0x43, 0x32, + 0x45, 0x37, 0x33, 0x37, 0x30, 0x36, 0x34, 0x37, 0x34, 0x37, 0x39, 0x37, + 0x30, 0x36, 0x35, 0x36, 0x34, 0x37, 0x34, 0x36, 0x35, 0x37, 0x38, 0x37, + 0x34, 0x36, 0x43, 0x36, 0x34, 0x36, 0x39, 0x37, 0x33, 0x37, 0x30, 0x36, + 0x43, 0x36, 0x31, 0x37, 0x39, 0x35, 0x46, 0x37, 0x33, 0x36, 0x39, 0x37, + 0x41, 0x36, 0x35, 0x31, 0x41, 0x37, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, + 0x46, 0x46, 0x46, 0x42, 0x46, 0x36, 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, + 0x44, 0x36, 0x35, 0x37, 0x38, 0x32, 0x44, 0x36, 0x34, 0x37, 0x35, 0x37, + 0x32, 0x36, 0x31, 0x37, 0x34, 0x36, 0x39, 0x36, 0x46, 0x36, 0x45, 0x35, + 0x46, 0x36, 0x44, 0x36, 0x39, 0x36, 0x45, 0x37, 0x35, 0x37, 0x34, 0x36, + 0x35, 0x37, 0x33, 0x32, 0x45, 0x36, 0x44, 0x36, 0x39, 0x36, 0x34, 0x36, + 0x45, 0x36, 0x39, 0x36, 0x37, 0x36, 0x38, 0x37, 0x34, 0x35, 0x46, 0x36, + 0x33, 0x36, 0x35, 0x37, 0x34, 0x35, 0x46, 0x36, 0x33, 0x36, 0x35, 0x37, + 0x33, 0x37, 0x34, 0x32, 0x45, 0x36, 0x31, 0x36, 0x33, 0x37, 0x34, 0x36, + 0x39, 0x37, 0x36, 0x36, 0x31, 0x37, 0x34, 0x36, 0x39, 0x36, 0x46, 0x36, + 0x45, 0x36, 0x34, 0x37, 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, 0x36, + 0x37, 0x36, 0x39, 0x36, 0x45, 0x37, 0x34, 0x36, 0x35, 0x36, 0x37, 0x36, + 0x35, 0x37, 0x32, 0x36, 0x43, 0x36, 0x34, 0x36, 0x39, 0x37, 0x33, 0x37, + 0x30, 0x36, 0x43, 0x36, 0x31, 0x37, 0x39, 0x35, 0x46, 0x37, 0x33, 0x36, + 0x39, 0x37, 0x41, 0x36, 0x35, 0x30, 0x42, 0x46, 0x46, 0x42, 0x46, 0x36, + 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, 0x37, 0x38, 0x32, + 0x36, 0x36, 0x34, 0x37, 0x35, 0x37, 0x32, 0x36, 0x31, 0x37, 0x34, 0x36, + 0x39, 0x36, 0x46, 0x36, 0x45, 0x35, 0x46, 0x36, 0x44, 0x36, 0x39, 0x36, + 0x45, 0x37, 0x35, 0x37, 0x34, 0x36, 0x35, 0x37, 0x33, 0x32, 0x45, 0x36, + 0x44, 0x36, 0x39, 0x36, 0x34, 0x36, 0x45, 0x36, 0x39, 0x36, 0x37, 0x36, + 0x38, 0x37, 0x34, 0x35, 0x46, 0x36, 0x33, 0x36, 0x35, 0x37, 0x34, 0x35, + 0x46, 0x36, 0x33, 0x36, 0x35, 0x37, 0x33, 0x37, 0x34, 0x32, 0x45, 0x36, + 0x35, 0x36, 0x45, 0x36, 0x34, 0x36, 0x34, 0x37, 0x34, 0x37, 0x39, 0x37, + 0x30, 0x36, 0x35, 0x36, 0x37, 0x36, 0x39, 0x36, 0x45, 0x37, 0x34, 0x36, + 0x35, 0x36, 0x37, 0x36, 0x35, 0x37, 0x32, 0x36, 0x43, 0x36, 0x34, 0x36, + 0x39, 0x37, 0x33, 0x37, 0x30, 0x36, 0x43, 0x36, 0x31, 0x37, 0x39, 0x35, + 0x46, 0x37, 0x33, 0x36, 0x39, 0x37, 0x41, 0x36, 0x35, 0x30, 0x42, 0x46, + 0x46, 0x42, 0x46, 0x36, 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, + 0x35, 0x37, 0x38, 0x32, 0x39, 0x36, 0x34, 0x37, 0x35, 0x37, 0x32, 0x36, + 0x31, 0x37, 0x34, 0x36, 0x39, 0x36, 0x46, 0x36, 0x45, 0x35, 0x46, 0x36, + 0x44, 0x36, 0x39, 0x36, 0x45, 0x37, 0x35, 0x37, 0x34, 0x36, 0x35, 0x37, + 0x33, 0x32, 0x45, 0x36, 0x44, 0x36, 0x39, 0x36, 0x34, 0x36, 0x45, 0x36, + 0x39, 0x36, 0x37, 0x36, 0x38, 0x37, 0x34, 0x35, 0x46, 0x36, 0x33, 0x36, + 0x35, 0x37, 0x34, 0x35, 0x46, 0x36, 0x33, 0x36, 0x35, 0x37, 0x33, 0x37, + 0x34, 0x32, 0x45, 0x36, 0x35, 0x36, 0x45, 0x36, 0x34, 0x35, 0x46, 0x37, + 0x30, 0x37, 0x30, 0x36, 0x34, 0x37, 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, + 0x35, 0x36, 0x37, 0x36, 0x39, 0x36, 0x45, 0x37, 0x34, 0x36, 0x35, 0x36, + 0x37, 0x36, 0x35, 0x37, 0x32, 0x36, 0x43, 0x36, 0x34, 0x36, 0x39, 0x37, + 0x33, 0x37, 0x30, 0x36, 0x43, 0x36, 0x31, 0x37, 0x39, 0x35, 0x46, 0x37, + 0x33, 0x36, 0x39, 0x37, 0x41, 0x36, 0x35, 0x30, 0x42, 0x46, 0x46, 0x42, + 0x46, 0x36, 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, 0x37, + 0x38, 0x32, 0x38, 0x36, 0x34, 0x37, 0x35, 0x37, 0x32, 0x36, 0x31, 0x37, + 0x34, 0x36, 0x39, 0x36, 0x46, 0x36, 0x45, 0x35, 0x46, 0x36, 0x44, 0x36, + 0x39, 0x36, 0x45, 0x37, 0x35, 0x37, 0x34, 0x36, 0x35, 0x37, 0x33, 0x32, + 0x45, 0x36, 0x44, 0x36, 0x39, 0x36, 0x34, 0x36, 0x45, 0x36, 0x39, 0x36, + 0x37, 0x36, 0x38, 0x37, 0x34, 0x35, 0x46, 0x36, 0x33, 0x36, 0x35, 0x37, + 0x34, 0x35, 0x46, 0x36, 0x33, 0x36, 0x35, 0x37, 0x33, 0x37, 0x34, 0x32, + 0x45, 0x37, 0x33, 0x37, 0x34, 0x36, 0x31, 0x37, 0x32, 0x37, 0x34, 0x36, + 0x34, 0x37, 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, 0x36, 0x37, 0x36, + 0x39, 0x36, 0x45, 0x37, 0x34, 0x36, 0x35, 0x36, 0x37, 0x36, 0x35, 0x37, + 0x32, 0x36, 0x43, 0x36, 0x34, 0x36, 0x39, 0x37, 0x33, 0x37, 0x30, 0x36, + 0x43, 0x36, 0x31, 0x37, 0x39, 0x35, 0x46, 0x37, 0x33, 0x36, 0x39, 0x37, + 0x41, 0x36, 0x35, 0x30, 0x42, 0x46, 0x46, 0x42, 0x46, 0x36, 0x34, 0x36, + 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, 0x37, 0x38, 0x32, 0x38, 0x36, + 0x34, 0x37, 0x35, 0x37, 0x32, 0x36, 0x31, 0x37, 0x34, 0x36, 0x39, 0x36, + 0x46, 0x36, 0x45, 0x35, 0x46, 0x36, 0x44, 0x36, 0x39, 0x36, 0x45, 0x37, + 0x35, 0x37, 0x34, 0x36, 0x35, 0x37, 0x33, 0x32, 0x45, 0x36, 0x44, 0x36, + 0x39, 0x36, 0x34, 0x36, 0x45, 0x36, 0x39, 0x36, 0x37, 0x36, 0x38, 0x37, + 0x34, 0x35, 0x46, 0x37, 0x35, 0x37, 0x34, 0x36, 0x33, 0x32, 0x45, 0x36, + 0x31, 0x36, 0x33, 0x37, 0x34, 0x36, 0x39, 0x37, 0x36, 0x36, 0x31, 0x37, + 0x34, 0x36, 0x39, 0x36, 0x46, 0x36, 0x45, 0x36, 0x34, 0x37, 0x34, 0x37, + 0x39, 0x37, 0x30, 0x36, 0x35, 0x36, 0x37, 0x36, 0x39, 0x36, 0x45, 0x37, + 0x34, 0x36, 0x35, 0x36, 0x37, 0x36, 0x35, 0x37, 0x32, 0x36, 0x43, 0x36, + 0x34, 0x36, 0x39, 0x37, 0x33, 0x37, 0x30, 0x36, 0x43, 0x36, 0x31, 0x37, + 0x39, 0x35, 0x46, 0x37, 0x33, 0x36, 0x39, 0x37, 0x41, 0x36, 0x35, 0x30, + 0x42, 0x46, 0x46, 0x42, 0x46, 0x36, 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, + 0x44, 0x36, 0x35, 0x37, 0x38, 0x32, 0x31, 0x36, 0x34, 0x37, 0x35, 0x37, + 0x32, 0x36, 0x31, 0x37, 0x34, 0x36, 0x39, 0x36, 0x46, 0x36, 0x45, 0x35, + 0x46, 0x36, 0x44, 0x36, 0x39, 0x36, 0x45, 0x37, 0x35, 0x37, 0x34, 0x36, + 0x35, 0x37, 0x33, 0x32, 0x45, 0x36, 0x44, 0x36, 0x39, 0x36, 0x34, 0x36, + 0x45, 0x36, 0x39, 0x36, 0x37, 0x36, 0x38, 0x37, 0x34, 0x35, 0x46, 0x37, + 0x35, 0x37, 0x34, 0x36, 0x33, 0x32, 0x45, 0x36, 0x35, 0x36, 0x45, 0x36, + 0x34, 0x36, 0x34, 0x37, 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, 0x36, + 0x37, 0x36, 0x39, 0x36, 0x45, 0x37, 0x34, 0x36, 0x35, 0x36, 0x37, 0x36, + 0x35, 0x37, 0x32, 0x36, 0x43, 0x36, 0x34, 0x36, 0x39, 0x37, 0x33, 0x37, + 0x30, 0x36, 0x43, 0x36, 0x31, 0x37, 0x39, 0x35, 0x46, 0x37, 0x33, 0x36, + 0x39, 0x37, 0x41, 0x36, 0x35, 0x30, 0x42, 0x46, 0x46, 0x42, 0x46, 0x36, + 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, 0x37, 0x38, 0x32, + 0x34, 0x36, 0x34, 0x37, 0x35, 0x37, 0x32, 0x36, 0x31, 0x37, 0x34, 0x36, + 0x39, 0x36, 0x46, 0x36, 0x45, 0x35, 0x46, 0x36, 0x44, 0x36, 0x39, 0x36, + 0x45, 0x37, 0x35, 0x37, 0x34, 0x36, 0x35, 0x37, 0x33, 0x32, 0x45, 0x36, + 0x44, 0x36, 0x39, 0x36, 0x34, 0x36, 0x45, 0x36, 0x39, 0x36, 0x37, 0x36, + 0x38, 0x37, 0x34, 0x35, 0x46, 0x37, 0x35, 0x37, 0x34, 0x36, 0x33, 0x32, + 0x45, 0x36, 0x35, 0x36, 0x45, 0x36, 0x34, 0x35, 0x46, 0x37, 0x30, 0x37, + 0x30, 0x36, 0x34, 0x37, 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, 0x36, + 0x37, 0x36, 0x39, 0x36, 0x45, 0x37, 0x34, 0x36, 0x35, 0x36, 0x37, 0x36, + 0x35, 0x37, 0x32, 0x36, 0x43, 0x36, 0x34, 0x36, 0x39, 0x37, 0x33, 0x37, + 0x30, 0x36, 0x43, 0x36, 0x31, 0x37, 0x39, 0x35, 0x46, 0x37, 0x33, 0x36, + 0x39, 0x37, 0x41, 0x36, 0x35, 0x30, 0x42, 0x46, 0x46, 0x42, 0x46, 0x36, + 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, 0x37, 0x38, 0x32, + 0x33, 0x36, 0x34, 0x37, 0x35, 0x37, 0x32, 0x36, 0x31, 0x37, 0x34, 0x36, + 0x39, 0x36, 0x46, 0x36, 0x45, 0x35, 0x46, 0x36, 0x44, 0x36, 0x39, 0x36, + 0x45, 0x37, 0x35, 0x37, 0x34, 0x36, 0x35, 0x37, 0x33, 0x32, 0x45, 0x36, + 0x44, 0x36, 0x39, 0x36, 0x34, 0x36, 0x45, 0x36, 0x39, 0x36, 0x37, 0x36, + 0x38, 0x37, 0x34, 0x35, 0x46, 0x37, 0x35, 0x37, 0x34, 0x36, 0x33, 0x32, + 0x45, 0x37, 0x33, 0x37, 0x34, 0x36, 0x31, 0x37, 0x32, 0x37, 0x34, 0x36, + 0x34, 0x37, 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, 0x36, 0x37, 0x36, + 0x39, 0x36, 0x45, 0x37, 0x34, 0x36, 0x35, 0x36, 0x37, 0x36, 0x35, 0x37, + 0x32, 0x36, 0x43, 0x36, 0x34, 0x36, 0x39, 0x37, 0x33, 0x37, 0x30, 0x36, + 0x43, 0x36, 0x31, 0x37, 0x39, 0x35, 0x46, 0x37, 0x33, 0x36, 0x39, 0x37, + 0x41, 0x36, 0x35, 0x30, 0x42, 0x46, 0x46, 0x42, 0x46, 0x36, 0x34, 0x36, + 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, 0x37, 0x38, 0x31, 0x46, 0x36, + 0x34, 0x37, 0x35, 0x37, 0x32, 0x36, 0x31, 0x37, 0x34, 0x36, 0x39, 0x36, + 0x46, 0x36, 0x45, 0x35, 0x46, 0x37, 0x33, 0x36, 0x35, 0x36, 0x33, 0x36, + 0x46, 0x36, 0x45, 0x36, 0x34, 0x37, 0x33, 0x32, 0x45, 0x36, 0x31, 0x36, + 0x33, 0x37, 0x34, 0x36, 0x39, 0x37, 0x36, 0x36, 0x31, 0x37, 0x34, 0x36, + 0x39, 0x36, 0x46, 0x36, 0x45, 0x32, 0x45, 0x36, 0x35, 0x36, 0x45, 0x36, + 0x34, 0x36, 0x34, 0x37, 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, 0x36, + 0x37, 0x36, 0x39, 0x36, 0x45, 0x37, 0x34, 0x36, 0x35, 0x36, 0x37, 0x36, + 0x35, 0x37, 0x32, 0x36, 0x43, 0x36, 0x34, 0x36, 0x39, 0x37, 0x33, 0x37, + 0x30, 0x36, 0x43, 0x36, 0x31, 0x37, 0x39, 0x35, 0x46, 0x37, 0x33, 0x36, + 0x39, 0x37, 0x41, 0x36, 0x35, 0x30, 0x42, 0x46, 0x46, 0x42, 0x46, 0x36, + 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, 0x37, 0x38, 0x32, + 0x32, 0x36, 0x34, 0x37, 0x35, 0x37, 0x32, 0x36, 0x31, 0x37, 0x34, 0x36, + 0x39, 0x36, 0x46, 0x36, 0x45, 0x35, 0x46, 0x37, 0x33, 0x36, 0x35, 0x36, + 0x33, 0x36, 0x46, 0x36, 0x45, 0x36, 0x34, 0x37, 0x33, 0x32, 0x45, 0x36, + 0x31, 0x36, 0x33, 0x37, 0x34, 0x36, 0x39, 0x37, 0x36, 0x36, 0x31, 0x37, + 0x34, 0x36, 0x39, 0x36, 0x46, 0x36, 0x45, 0x32, 0x45, 0x36, 0x35, 0x36, + 0x45, 0x36, 0x34, 0x35, 0x46, 0x37, 0x30, 0x37, 0x30, 0x36, 0x34, 0x37, + 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, 0x36, 0x37, 0x36, 0x39, 0x36, + 0x45, 0x37, 0x34, 0x36, 0x35, 0x36, 0x37, 0x36, 0x35, 0x37, 0x32, 0x36, + 0x43, 0x36, 0x34, 0x36, 0x39, 0x37, 0x33, 0x37, 0x30, 0x36, 0x43, 0x36, + 0x31, 0x37, 0x39, 0x35, 0x46, 0x37, 0x33, 0x36, 0x39, 0x37, 0x41, 0x36, + 0x35, 0x30, 0x42, 0x46, 0x46, 0x42, 0x46, 0x36, 0x34, 0x36, 0x45, 0x36, + 0x31, 0x36, 0x44, 0x36, 0x35, 0x37, 0x38, 0x32, 0x31, 0x36, 0x34, 0x37, + 0x35, 0x37, 0x32, 0x36, 0x31, 0x37, 0x34, 0x36, 0x39, 0x36, 0x46, 0x36, + 0x45, 0x35, 0x46, 0x37, 0x33, 0x36, 0x35, 0x36, 0x33, 0x36, 0x46, 0x36, + 0x45, 0x36, 0x34, 0x37, 0x33, 0x32, 0x45, 0x36, 0x31, 0x36, 0x33, 0x37, + 0x34, 0x36, 0x39, 0x37, 0x36, 0x36, 0x31, 0x37, 0x34, 0x36, 0x39, 0x36, + 0x46, 0x36, 0x45, 0x32, 0x45, 0x37, 0x33, 0x37, 0x34, 0x36, 0x31, 0x37, + 0x32, 0x37, 0x34, 0x36, 0x34, 0x37, 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, + 0x35, 0x36, 0x37, 0x36, 0x39, 0x36, 0x45, 0x37, 0x34, 0x36, 0x35, 0x36, + 0x37, 0x36, 0x35, 0x37, 0x32, 0x36, 0x43, 0x36, 0x34, 0x36, 0x39, 0x37, + 0x33, 0x37, 0x30, 0x36, 0x43, 0x36, 0x31, 0x37, 0x39, 0x35, 0x46, 0x37, + 0x33, 0x36, 0x39, 0x37, 0x41, 0x36, 0x35, 0x30, 0x42, 0x46, 0x46, 0x42, + 0x46, 0x36, 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, 0x37, + 0x38, 0x31, 0x42, 0x36, 0x34, 0x37, 0x35, 0x37, 0x32, 0x36, 0x31, 0x37, + 0x34, 0x36, 0x39, 0x36, 0x46, 0x36, 0x45, 0x35, 0x46, 0x37, 0x33, 0x36, + 0x35, 0x36, 0x33, 0x36, 0x46, 0x36, 0x45, 0x36, 0x34, 0x37, 0x33, 0x32, + 0x45, 0x36, 0x35, 0x36, 0x45, 0x36, 0x34, 0x32, 0x45, 0x36, 0x35, 0x36, + 0x45, 0x36, 0x34, 0x35, 0x46, 0x37, 0x30, 0x37, 0x30, 0x36, 0x34, 0x37, + 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, 0x36, 0x37, 0x36, 0x39, 0x36, + 0x45, 0x37, 0x34, 0x36, 0x35, 0x36, 0x37, 0x36, 0x35, 0x37, 0x32, 0x36, + 0x43, 0x36, 0x34, 0x36, 0x39, 0x37, 0x33, 0x37, 0x30, 0x36, 0x43, 0x36, + 0x31, 0x37, 0x39, 0x35, 0x46, 0x37, 0x33, 0x36, 0x39, 0x37, 0x41, 0x36, + 0x35, 0x30, 0x42, 0x46, 0x46, 0x42, 0x46, 0x36, 0x34, 0x36, 0x45, 0x36, + 0x31, 0x36, 0x44, 0x36, 0x35, 0x37, 0x38, 0x32, 0x32, 0x36, 0x34, 0x37, + 0x35, 0x37, 0x32, 0x36, 0x31, 0x37, 0x34, 0x36, 0x39, 0x36, 0x46, 0x36, + 0x45, 0x35, 0x46, 0x37, 0x33, 0x36, 0x35, 0x36, 0x33, 0x36, 0x46, 0x36, + 0x45, 0x36, 0x34, 0x37, 0x33, 0x32, 0x45, 0x36, 0x35, 0x37, 0x33, 0x37, + 0x34, 0x36, 0x39, 0x36, 0x44, 0x36, 0x31, 0x37, 0x34, 0x36, 0x35, 0x36, + 0x34, 0x35, 0x46, 0x37, 0x32, 0x37, 0x35, 0x36, 0x45, 0x37, 0x34, 0x36, + 0x39, 0x36, 0x44, 0x36, 0x35, 0x36, 0x34, 0x37, 0x34, 0x37, 0x39, 0x37, + 0x30, 0x36, 0x35, 0x36, 0x37, 0x36, 0x39, 0x36, 0x45, 0x37, 0x34, 0x36, + 0x35, 0x36, 0x37, 0x36, 0x35, 0x37, 0x32, 0x36, 0x43, 0x36, 0x34, 0x36, + 0x39, 0x37, 0x33, 0x37, 0x30, 0x36, 0x43, 0x36, 0x31, 0x37, 0x39, 0x35, + 0x46, 0x37, 0x33, 0x36, 0x39, 0x37, 0x41, 0x36, 0x35, 0x30, 0x42, 0x46, + 0x46, 0x42, 0x46, 0x36, 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, + 0x35, 0x37, 0x38, 0x31, 0x41, 0x36, 0x34, 0x37, 0x35, 0x37, 0x32, 0x36, + 0x31, 0x37, 0x34, 0x36, 0x39, 0x36, 0x46, 0x36, 0x45, 0x35, 0x46, 0x37, + 0x33, 0x36, 0x35, 0x36, 0x33, 0x36, 0x46, 0x36, 0x45, 0x36, 0x34, 0x37, + 0x33, 0x32, 0x45, 0x37, 0x33, 0x37, 0x34, 0x36, 0x31, 0x37, 0x32, 0x37, + 0x34, 0x32, 0x45, 0x36, 0x35, 0x36, 0x45, 0x36, 0x34, 0x36, 0x34, 0x37, + 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, 0x36, 0x37, 0x36, 0x39, 0x36, + 0x45, 0x37, 0x34, 0x36, 0x35, 0x36, 0x37, 0x36, 0x35, 0x37, 0x32, 0x36, + 0x43, 0x36, 0x34, 0x36, 0x39, 0x37, 0x33, 0x37, 0x30, 0x36, 0x43, 0x36, + 0x31, 0x37, 0x39, 0x35, 0x46, 0x37, 0x33, 0x36, 0x39, 0x37, 0x41, 0x36, + 0x35, 0x30, 0x42, 0x79, 0x07, 0xfd, 0x46, 0x46, 0x42, 0x46, 0x36, 0x34, + 0x36, 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, 0x37, 0x38, 0x31, 0x44, + 0x36, 0x34, 0x37, 0x35, 0x37, 0x32, 0x36, 0x31, 0x37, 0x34, 0x36, 0x39, + 0x36, 0x46, 0x36, 0x45, 0x35, 0x46, 0x37, 0x33, 0x36, 0x35, 0x36, 0x33, + 0x36, 0x46, 0x36, 0x45, 0x36, 0x34, 0x37, 0x33, 0x32, 0x45, 0x37, 0x33, + 0x37, 0x34, 0x36, 0x31, 0x37, 0x32, 0x37, 0x34, 0x32, 0x45, 0x36, 0x35, + 0x36, 0x45, 0x36, 0x34, 0x35, 0x46, 0x37, 0x30, 0x37, 0x30, 0x36, 0x34, + 0x37, 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, 0x36, 0x37, 0x36, 0x39, + 0x36, 0x45, 0x37, 0x34, 0x36, 0x35, 0x36, 0x37, 0x36, 0x35, 0x37, 0x32, + 0x36, 0x43, 0x36, 0x34, 0x36, 0x39, 0x37, 0x33, 0x37, 0x30, 0x36, 0x43, + 0x36, 0x31, 0x37, 0x39, 0x35, 0x46, 0x37, 0x33, 0x36, 0x39, 0x37, 0x41, + 0x36, 0x35, 0x30, 0x42, 0x46, 0x46, 0x42, 0x46, 0x36, 0x34, 0x36, 0x45, + 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, 0x36, 0x39, 0x36, 0x35, 0x36, 0x38, + 0x35, 0x46, 0x37, 0x33, 0x37, 0x34, 0x36, 0x31, 0x37, 0x34, 0x37, 0x35, + 0x37, 0x33, 0x36, 0x34, 0x37, 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, + 0x36, 0x34, 0x37, 0x34, 0x36, 0x35, 0x37, 0x38, 0x37, 0x34, 0x36, 0x43, + 0x36, 0x34, 0x36, 0x39, 0x37, 0x33, 0x37, 0x30, 0x36, 0x43, 0x36, 0x31, + 0x37, 0x39, 0x35, 0x46, 0x37, 0x33, 0x36, 0x39, 0x37, 0x41, 0x36, 0x35, + 0x31, 0x41, 0x37, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, + 0x42, 0x46, 0x36, 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, + 0x36, 0x34, 0x36, 0x39, 0x36, 0x34, 0x36, 0x45, 0x37, 0x32, 0x36, 0x34, + 0x37, 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, 0x36, 0x34, 0x36, 0x43, + 0x36, 0x46, 0x36, 0x45, 0x36, 0x37, 0x36, 0x43, 0x36, 0x34, 0x36, 0x39, + 0x37, 0x33, 0x37, 0x30, 0x36, 0x43, 0x36, 0x31, 0x37, 0x39, 0x35, 0x46, + 0x37, 0x33, 0x36, 0x39, 0x37, 0x41, 0x36, 0x35, 0x31, 0x34, 0x46, 0x46, + 0x42, 0x46, 0x36, 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, + 0x36, 0x36, 0x36, 0x39, 0x36, 0x37, 0x36, 0x45, 0x36, 0x46, 0x37, 0x32, + 0x36, 0x35, 0x36, 0x34, 0x37, 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, + 0x36, 0x37, 0x36, 0x32, 0x36, 0x46, 0x36, 0x46, 0x36, 0x43, 0x36, 0x35, + 0x36, 0x31, 0x36, 0x45, 0x36, 0x43, 0x36, 0x34, 0x36, 0x39, 0x37, 0x33, + 0x37, 0x30, 0x36, 0x43, 0x36, 0x31, 0x37, 0x39, 0x35, 0x46, 0x37, 0x33, + 0x36, 0x39, 0x37, 0x41, 0x36, 0x35, 0x30, 0x31, 0x46, 0x46, 0x42, 0x46, + 0x36, 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, 0x36, 0x38, + 0x36, 0x39, 0x37, 0x33, 0x35, 0x46, 0x36, 0x39, 0x36, 0x45, 0x35, 0x46, + 0x36, 0x35, 0x36, 0x38, 0x36, 0x34, 0x37, 0x34, 0x37, 0x39, 0x37, 0x30, + 0x36, 0x35, 0x36, 0x37, 0x36, 0x32, 0x36, 0x46, 0x36, 0x46, 0x36, 0x43, + 0x36, 0x35, 0x36, 0x31, 0x36, 0x45, 0x36, 0x43, 0x36, 0x34, 0x36, 0x39, + 0x37, 0x33, 0x37, 0x30, 0x36, 0x43, 0x36, 0x31, 0x37, 0x39, 0x35, 0x46, + 0x37, 0x33, 0x36, 0x39, 0x37, 0x41, 0x36, 0x35, 0x30, 0x31, 0x46, 0x46, + 0x42, 0x46, 0x36, 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, + 0x36, 0x45, 0x36, 0x41, 0x36, 0x39, 0x37, 0x32, 0x36, 0x31, 0x32, 0x45, + 0x36, 0x39, 0x37, 0x33, 0x37, 0x33, 0x37, 0x35, 0x36, 0x35, 0x35, 0x46, + 0x36, 0x42, 0x36, 0x35, 0x37, 0x39, 0x36, 0x34, 0x37, 0x34, 0x37, 0x39, + 0x37, 0x30, 0x36, 0x35, 0x36, 0x37, 0x36, 0x42, 0x36, 0x35, 0x37, 0x39, + 0x37, 0x37, 0x36, 0x46, 0x37, 0x32, 0x36, 0x34, 0x36, 0x43, 0x36, 0x34, + 0x36, 0x39, 0x37, 0x33, 0x37, 0x30, 0x36, 0x43, 0x36, 0x31, 0x37, 0x39, + 0x35, 0x46, 0x37, 0x33, 0x36, 0x39, 0x37, 0x41, 0x36, 0x35, 0x31, 0x39, + 0x37, 0x46, 0x46, 0x45, 0x46, 0x46, 0x42, 0x46, 0x36, 0x34, 0x36, 0x45, + 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, 0x37, 0x31, 0x36, 0x41, 0x36, 0x39, + 0x37, 0x32, 0x36, 0x31, 0x32, 0x45, 0x36, 0x39, 0x37, 0x33, 0x37, 0x33, + 0x37, 0x35, 0x36, 0x35, 0x35, 0x46, 0x37, 0x33, 0x37, 0x34, 0x36, 0x31, + 0x37, 0x34, 0x37, 0x35, 0x37, 0x33, 0x36, 0x34, 0x37, 0x34, 0x37, 0x39, + 0x37, 0x30, 0x36, 0x35, 0x36, 0x37, 0x36, 0x42, 0x36, 0x35, 0x37, 0x39, + 0x37, 0x37, 0x36, 0x46, 0x37, 0x32, 0x36, 0x34, 0x36, 0x43, 0x36, 0x34, + 0x36, 0x39, 0x37, 0x33, 0x37, 0x30, 0x36, 0x43, 0x36, 0x31, 0x37, 0x39, + 0x35, 0x46, 0x37, 0x33, 0x36, 0x39, 0x37, 0x41, 0x36, 0x35, 0x31, 0x39, + 0x37, 0x46, 0x46, 0x45, 0x46, 0x46, 0x42, 0x46, 0x36, 0x34, 0x36, 0x45, + 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, 0x36, 0x45, 0x36, 0x41, 0x36, 0x39, + 0x37, 0x32, 0x36, 0x31, 0x32, 0x45, 0x36, 0x39, 0x37, 0x33, 0x37, 0x33, + 0x37, 0x35, 0x36, 0x35, 0x35, 0x46, 0x37, 0x35, 0x37, 0x32, 0x36, 0x43, + 0x36, 0x34, 0x37, 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, 0x36, 0x34, + 0x37, 0x34, 0x36, 0x35, 0x37, 0x38, 0x37, 0x34, 0x36, 0x43, 0x36, 0x34, + 0x36, 0x39, 0x37, 0x33, 0x37, 0x30, 0x36, 0x43, 0x36, 0x31, 0x37, 0x39, + 0x35, 0x46, 0x37, 0x33, 0x36, 0x39, 0x37, 0x41, 0x36, 0x35, 0x31, 0x41, + 0x37, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x42, 0x46, + 0x36, 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, 0x36, 0x38, + 0x36, 0x41, 0x36, 0x46, 0x36, 0x32, 0x35, 0x46, 0x37, 0x34, 0x37, 0x39, + 0x37, 0x30, 0x36, 0x35, 0x36, 0x34, 0x37, 0x34, 0x37, 0x39, 0x37, 0x30, + 0x36, 0x35, 0x36, 0x34, 0x37, 0x34, 0x36, 0x35, 0x37, 0x38, 0x37, 0x34, + 0x36, 0x43, 0x36, 0x34, 0x36, 0x39, 0x37, 0x33, 0x37, 0x30, 0x36, 0x43, + 0x36, 0x31, 0x37, 0x39, 0x35, 0x46, 0x37, 0x33, 0x36, 0x39, 0x37, 0x41, + 0x36, 0x35, 0x31, 0x41, 0x37, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, + 0x46, 0x46, 0x42, 0x46, 0x36, 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, 0x44, + 0x36, 0x35, 0x37, 0x38, 0x31, 0x39, 0x36, 0x44, 0x36, 0x34, 0x36, 0x35, + 0x32, 0x45, 0x36, 0x43, 0x36, 0x31, 0x37, 0x33, 0x37, 0x34, 0x35, 0x46, + 0x36, 0x33, 0x36, 0x46, 0x36, 0x43, 0x36, 0x43, 0x36, 0x35, 0x36, 0x33, + 0x37, 0x34, 0x36, 0x46, 0x37, 0x32, 0x35, 0x46, 0x37, 0x32, 0x37, 0x35, + 0x36, 0x45, 0x32, 0x45, 0x36, 0x39, 0x36, 0x34, 0x36, 0x34, 0x37, 0x34, + 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, 0x36, 0x37, 0x36, 0x42, 0x36, 0x35, + 0x37, 0x39, 0x37, 0x37, 0x36, 0x46, 0x37, 0x32, 0x36, 0x34, 0x36, 0x43, + 0x36, 0x34, 0x36, 0x39, 0x37, 0x33, 0x37, 0x30, 0x36, 0x43, 0x36, 0x31, + 0x37, 0x39, 0x35, 0x46, 0x37, 0x33, 0x36, 0x39, 0x37, 0x41, 0x36, 0x35, + 0x31, 0x39, 0x37, 0x46, 0x46, 0x45, 0x46, 0x46, 0x42, 0x46, 0x36, 0x34, + 0x36, 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, 0x37, 0x38, 0x32, 0x30, + 0x36, 0x44, 0x36, 0x34, 0x36, 0x35, 0x32, 0x45, 0x36, 0x43, 0x36, 0x31, + 0x37, 0x33, 0x37, 0x34, 0x35, 0x46, 0x36, 0x33, 0x36, 0x46, 0x36, 0x43, + 0x36, 0x43, 0x36, 0x35, 0x36, 0x33, 0x37, 0x34, 0x36, 0x46, 0x37, 0x32, + 0x35, 0x46, 0x37, 0x32, 0x37, 0x35, 0x36, 0x45, 0x32, 0x45, 0x37, 0x34, + 0x36, 0x39, 0x36, 0x44, 0x36, 0x35, 0x37, 0x33, 0x37, 0x34, 0x36, 0x31, + 0x36, 0x44, 0x37, 0x30, 0x36, 0x34, 0x37, 0x34, 0x37, 0x39, 0x37, 0x30, + 0x36, 0x35, 0x36, 0x38, 0x36, 0x34, 0x36, 0x31, 0x37, 0x34, 0x36, 0x35, + 0x37, 0x34, 0x36, 0x39, 0x36, 0x44, 0x36, 0x35, 0x36, 0x43, 0x36, 0x34, + 0x36, 0x39, 0x37, 0x33, 0x37, 0x30, 0x36, 0x43, 0x36, 0x31, 0x37, 0x39, + 0x35, 0x46, 0x37, 0x33, 0x36, 0x39, 0x37, 0x41, 0x36, 0x35, 0x31, 0x38, + 0x31, 0x44, 0x46, 0x46, 0x42, 0x46, 0x36, 0x34, 0x36, 0x45, 0x36, 0x31, + 0x36, 0x44, 0x36, 0x35, 0x37, 0x38, 0x31, 0x41, 0x36, 0x44, 0x36, 0x34, + 0x36, 0x35, 0x32, 0x45, 0x36, 0x43, 0x36, 0x31, 0x37, 0x33, 0x37, 0x34, + 0x35, 0x46, 0x36, 0x34, 0x36, 0x35, 0x37, 0x30, 0x36, 0x35, 0x36, 0x45, + 0x36, 0x34, 0x36, 0x35, 0x36, 0x45, 0x36, 0x33, 0x37, 0x39, 0x35, 0x46, + 0x37, 0x32, 0x37, 0x35, 0x36, 0x45, 0x32, 0x45, 0x36, 0x39, 0x36, 0x34, + 0x36, 0x34, 0x37, 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, 0x36, 0x37, + 0x36, 0x42, 0x36, 0x35, 0x37, 0x39, 0x37, 0x37, 0x36, 0x46, 0x37, 0x32, + 0x36, 0x34, 0x36, 0x43, 0x36, 0x34, 0x36, 0x39, 0x37, 0x33, 0x37, 0x30, + 0x36, 0x43, 0x36, 0x31, 0x37, 0x39, 0x35, 0x46, 0x37, 0x33, 0x36, 0x39, + 0x37, 0x41, 0x36, 0x35, 0x31, 0x39, 0x37, 0x46, 0x46, 0x45, 0x46, 0x46, + 0x42, 0x46, 0x36, 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, + 0x37, 0x38, 0x32, 0x31, 0x36, 0x44, 0x36, 0x34, 0x36, 0x35, 0x32, 0x45, + 0x36, 0x43, 0x36, 0x31, 0x37, 0x33, 0x37, 0x34, 0x35, 0x46, 0x36, 0x34, + 0x36, 0x35, 0x37, 0x30, 0x36, 0x35, 0x36, 0x45, 0x36, 0x34, 0x36, 0x35, + 0x36, 0x45, 0x36, 0x33, 0x37, 0x39, 0x35, 0x46, 0x37, 0x32, 0x37, 0x35, + 0x36, 0x45, 0x32, 0x45, 0x37, 0x34, 0x36, 0x39, 0x36, 0x44, 0x36, 0x35, + 0x37, 0x33, 0x37, 0x34, 0x36, 0x31, 0x36, 0x44, 0x37, 0x30, 0x36, 0x34, + 0x37, 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, 0x36, 0x38, 0x36, 0x34, + 0x36, 0x31, 0x37, 0x34, 0x36, 0x35, 0x37, 0x34, 0x36, 0x39, 0x36, 0x44, + 0x36, 0x35, 0x36, 0x43, 0x36, 0x34, 0x36, 0x39, 0x37, 0x33, 0x37, 0x30, + 0x36, 0x43, 0x36, 0x31, 0x37, 0x39, 0x35, 0x46, 0x37, 0x33, 0x36, 0x39, + 0x37, 0x41, 0x36, 0x35, 0x31, 0x38, 0x31, 0x44, 0x46, 0x46, 0x42, 0x46, + 0x36, 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, 0x37, 0x36, + 0x36, 0x44, 0x36, 0x34, 0x36, 0x35, 0x32, 0x45, 0x36, 0x43, 0x36, 0x31, + 0x37, 0x33, 0x37, 0x34, 0x35, 0x46, 0x36, 0x35, 0x36, 0x38, 0x37, 0x33, + 0x37, 0x39, 0x36, 0x45, 0x36, 0x33, 0x35, 0x46, 0x37, 0x32, 0x37, 0x35, + 0x36, 0x45, 0x32, 0x45, 0x36, 0x39, 0x36, 0x34, 0x36, 0x34, 0x37, 0x34, + 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, 0x36, 0x37, 0x36, 0x42, 0x36, 0x35, + 0x37, 0x39, 0x37, 0x37, 0x36, 0x46, 0x37, 0x32, 0x36, 0x34, 0x36, 0x43, + 0x36, 0x34, 0x36, 0x39, 0x37, 0x33, 0x37, 0x30, 0x36, 0x43, 0x36, 0x31, + 0x37, 0x39, 0x35, 0x46, 0x37, 0x33, 0x36, 0x39, 0x37, 0x41, 0x36, 0x35, + 0x31, 0x39, 0x37, 0x46, 0x46, 0x45, 0x46, 0x46, 0x42, 0x46, 0x36, 0x34, + 0x36, 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, 0x37, 0x38, 0x31, 0x44, + 0x36, 0x44, 0x36, 0x34, 0x36, 0x35, 0x32, 0x45, 0x36, 0x43, 0x36, 0x31, + 0x37, 0x33, 0x37, 0x34, 0x35, 0x46, 0x36, 0x35, 0x36, 0x38, 0x37, 0x33, + 0x37, 0x39, 0x36, 0x45, 0x36, 0x33, 0x35, 0x46, 0x37, 0x32, 0x37, 0x35, + 0x36, 0x45, 0x32, 0x45, 0x37, 0x34, 0x36, 0x39, 0x36, 0x44, 0x36, 0x35, + 0x37, 0x33, 0x37, 0x34, 0x36, 0x31, 0x36, 0x44, 0x37, 0x30, 0x36, 0x34, + 0x37, 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, 0x36, 0x38, 0x36, 0x34, + 0x36, 0x31, 0x37, 0x34, 0x36, 0x35, 0x37, 0x34, 0x36, 0x39, 0x36, 0x44, + 0x36, 0x35, 0x36, 0x43, 0x36, 0x34, 0x36, 0x39, 0x37, 0x33, 0x37, 0x30, + 0x36, 0x43, 0x36, 0x31, 0x37, 0x39, 0x35, 0x46, 0x37, 0x33, 0x36, 0x39, + 0x37, 0x41, 0x36, 0x35, 0x31, 0x38, 0x31, 0x44, 0x46, 0x46, 0x42, 0x46, + 0x36, 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, 0x36, 0x34, + 0x36, 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, 0x36, 0x34, 0x37, 0x34, + 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, 0x36, 0x34, 0x37, 0x34, 0x36, 0x35, + 0x37, 0x38, 0x37, 0x34, 0x36, 0x43, 0x36, 0x34, 0x36, 0x39, 0x37, 0x33, + 0x37, 0x30, 0x36, 0x43, 0x36, 0x31, 0x37, 0x39, 0x35, 0x46, 0x37, 0x33, + 0x36, 0x39, 0x37, 0x41, 0x36, 0x35, 0x31, 0x41, 0x37, 0x46, 0x46, 0x46, + 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x42, 0x46, 0x36, 0x34, 0x36, 0x45, + 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, 0x36, 0x37, 0x36, 0x46, 0x36, 0x38, + 0x35, 0x46, 0x36, 0x39, 0x36, 0x34, 0x36, 0x45, 0x37, 0x32, 0x36, 0x34, + 0x37, 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, 0x36, 0x34, 0x36, 0x43, + 0x36, 0x46, 0x36, 0x45, 0x36, 0x37, 0x36, 0x43, 0x36, 0x34, 0x36, 0x39, + 0x37, 0x33, 0x37, 0x30, 0x36, 0x43, 0x36, 0x31, 0x37, 0x39, 0x35, 0x46, + 0x37, 0x33, 0x36, 0x39, 0x37, 0x41, 0x36, 0x35, 0x31, 0x34, 0x46, 0x46, + 0x42, 0x46, 0x36, 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, + 0x36, 0x35, 0x36, 0x46, 0x37, 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, + 0x36, 0x34, 0x37, 0x34, 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, 0x36, 0x37, + 0x36, 0x42, 0x36, 0x35, 0x37, 0x39, 0x37, 0x37, 0x36, 0x46, 0x37, 0x32, + 0x36, 0x34, 0x36, 0x43, 0x36, 0x34, 0x36, 0x39, 0x37, 0x33, 0x37, 0x30, + 0x36, 0x43, 0x36, 0x31, 0x37, 0x39, 0x35, 0x46, 0x37, 0x33, 0x36, 0x39, + 0x37, 0x41, 0x36, 0x35, 0x31, 0x39, 0x37, 0x46, 0x46, 0x45, 0x46, 0x46, + 0x42, 0x46, 0x36, 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, + 0x36, 0x46, 0x37, 0x30, 0x36, 0x31, 0x37, 0x32, 0x36, 0x35, 0x36, 0x45, + 0x37, 0x34, 0x32, 0x45, 0x36, 0x31, 0x36, 0x33, 0x37, 0x34, 0x35, 0x46, + 0x36, 0x39, 0x36, 0x34, 0x36, 0x45, 0x37, 0x32, 0x36, 0x34, 0x37, 0x34, + 0x37, 0x39, 0x37, 0x30, 0x36, 0x35, 0x36, 0x34, 0x36, 0x43, 0x36, 0x46, + 0x36, 0x45, 0x36, 0x37, 0x36, 0x43, 0x36, 0x34, 0x36, 0x39, 0x37, 0x33, + 0x37, 0x30, 0x36, 0x43, 0x36, 0x31, 0x37, 0x39, 0x35, 0x46, 0x37, 0x33, + 0x36, 0x39, 0x37, 0x41, 0x36, 0x35, 0x31, 0x34, 0x46, 0x46, 0x42, 0x46, + 0x36, 0x34, 0x36, 0x45, 0x36, 0x31, 0x36, 0x44, 0x36, 0x35, 0x36, 0x46, + 0x37, 0x30, 0x36, 0x31, 0x37, 0x32, 0x36, 0x35, 0x36, 0x45, 0x37, 0x34, + 0x32, 0x45, 0x36, 0x38, 0x36, 0x39, 0x37, 0x32, 0x35, 0x46, 0x36, 0x39, + 0x36, 0x34, 0x36, 0x45, 0x37, 0x32, 0x36, 0x34, 0x37, 0x34, 0x37, 0x39, + 0x37, 0x30, 0x36, 0x35, 0x36, 0x34, 0x36, 0x43, 0x36, 0x46, 0x36, 0xff, + 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, + 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, + 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, + 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xff, 0xff, 0x66, + 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x7f, 0x79, 0x0f, 0x9c, 0x34, 0x36, + 0x54, 0x6f, 0x41, 0x77, 0x46, 0x61, 0x41, 0x58, 0x4e, 0x34, 0x52, 0x6b, + 0x64, 0x73, 0x64, 0x56, 0x6b, 0x79, 0x65, 0x44, 0x46, 0x61, 0x52, 0x31, + 0x5a, 0x6d, 0x57, 0x54, 0x49, 0x35, 0x64, 0x57, 0x52, 0x48, 0x56, 0x6a, + 0x52, 0x6b, 0x52, 0x6a, 0x6b, 0x78, 0x5a, 0x46, 0x64, 0x73, 0x61, 0x30, + 0x52, 0x59, 0x52, 0x6a, 0x46, 0x61, 0x57, 0x45, 0x6f, 0x31, 0x55, 0x56, + 0x63, 0x31, 0x61, 0x31, 0x4a, 0x74, 0x56, 0x6a, 0x42, 0x5a, 0x4d, 0x6d, + 0x64, 0x43, 0x52, 0x6b, 0x68, 0x6f, 0x54, 0x30, 0x35, 0x48, 0x54, 0x6b, + 0x35, 0x58, 0x52, 0x56, 0x5a, 0x44, 0x55, 0x31, 0x5a, 0x43, 0x54, 0x56, + 0x5a, 0x49, 0x51, 0x6c, 0x46, 0x52, 0x4d, 0x55, 0x5a, 0x48, 0x5a, 0x44, + 0x42, 0x34, 0x56, 0x30, 0x46, 0x42, 0x51, 0x55, 0x46, 0x42, 0x51, 0x55, + 0x46, 0x42, 0x61, 0x30, 0x68, 0x76, 0x56, 0x31, 0x5a, 0x47, 0x59, 0x7a, + 0x46, 0x4f, 0x56, 0x55, 0x70, 0x50, 0x59, 0x54, 0x41, 0x31, 0x56, 0x55, + 0x31, 0x46, 0x5a, 0x48, 0x68, 0x56, 0x62, 0x57, 0x68, 0x34, 0x56, 0x57, + 0x70, 0x6f, 0x4d, 0x45, 0x35, 0x71, 0x56, 0x6b, 0x4a, 0x56, 0x55, 0x54, + 0x30, 0x39, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x77, 0x39, 0x52, 0x41, 0x57, + 0x59, 0x4b, 0x51, 0x48, 0x52, 0x70, 0x62, 0x57, 0x56, 0x7a, 0x64, 0x47, + 0x46, 0x74, 0x63, 0x41, 0x45, 0x4b, 0x51, 0x48, 0x52, 0x70, 0x62, 0x57, + 0x56, 0x7a, 0x64, 0x47, 0x46, 0x74, 0x63, 0x41, 0x45, 0x49, 0x5a, 0x47, + 0x46, 0x30, 0x5a, 0x58, 0x52, 0x70, 0x62, 0x57, 0x55, 0x42, 0x41, 0x41, + 0x45, 0x42, 0x5a, 0x67, 0x56, 0x68, 0x62, 0x47, 0x6c, 0x68, 0x63, 0x77, + 0x45, 0x46, 0x59, 0x57, 0x78, 0x70, 0x59, 0x58, 0x4d, 0x42, 0x42, 0x48, + 0x52, 0x6c, 0x65, 0x48, 0x51, 0x41, 0x41, 0x41, 0x45, 0x42, 0x5a, 0x67, + 0x31, 0x68, 0x63, 0x6d, 0x4e, 0x6f, 0x61, 0x58, 0x5a, 0x6c, 0x4c, 0x6d, + 0x74, 0x6c, 0x65, 0x56, 0x38, 0x78, 0x41, 0x51, 0x31, 0x68, 0x63, 0x6d, + 0x4e, 0x6f, 0x61, 0x58, 0x5a, 0x6c, 0x4c, 0x6d, 0x74, 0x6c, 0x65, 0x56, + 0x38, 0x78, 0x41, 0x51, 0x52, 0x30, 0x5a, 0x58, 0x68, 0x30, 0x41, 0x41, + 0x41, 0x42, 0x41, 0x57, 0x59, 0x4e, 0x59, 0x58, 0x4a, 0x6a, 0x61, 0x47, + 0x6c, 0x32, 0x5a, 0x53, 0x35, 0x72, 0x5a, 0x58, 0x6c, 0x66, 0x4d, 0x67, + 0x45, 0x4e, 0x59, 0x58, 0x4a, 0x6a, 0x61, 0x47, 0x6c, 0x32, 0x5a, 0x53, + 0x35, 0x72, 0x5a, 0x58, 0x6c, 0x66, 0x4d, 0x67, 0x45, 0x45, 0x64, 0x47, + 0x56, 0x34, 0x64, 0x41, 0x41, 0x41, 0x41, 0x51, 0x46, 0x6d, 0x45, 0x57, + 0x46, 0x31, 0x64, 0x47, 0x39, 0x66, 0x5a, 0x47, 0x56, 0x68, 0x59, 0x33, + 0x52, 0x70, 0x64, 0x6d, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x41, 0x52, + 0x46, 0x68, 0x64, 0x58, 0x52, 0x76, 0x58, 0x32, 0x52, 0x6c, 0x59, 0x57, + 0x4e, 0x30, 0x61, 0x58, 0x5a, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x67, + 0x45, 0x45, 0x64, 0x47, 0x56, 0x34, 0x64, 0x41, 0x41, 0x41, 0x41, 0x51, + 0x46, 0x6d, 0x43, 0x32, 0x4e, 0x68, 0x62, 0x6d, 0x4e, 0x6c, 0x62, 0x46, + 0x39, 0x6d, 0x62, 0x47, 0x46, 0x6e, 0x41, 0x51, 0x74, 0x6a, 0x59, 0x57, + 0x35, 0x6a, 0x5a, 0x57, 0x78, 0x66, 0x5a, 0x6d, 0x78, 0x68, 0x5a, 0x77, + 0x45, 0x48, 0x61, 0x32, 0x56, 0x35, 0x64, 0x32, 0x39, 0x79, 0x5a, 0x41, + 0x45, 0x41, 0x41, 0x51, 0x46, 0x6d, 0x43, 0x32, 0x4e, 0x68, 0x64, 0x58, + 0x4e, 0x6c, 0x4c, 0x6d, 0x64, 0x31, 0x5a, 0x58, 0x4e, 0x7a, 0x41, 0x51, + 0x74, 0x6a, 0x59, 0x58, 0x56, 0x7a, 0x5a, 0x53, 0x35, 0x6e, 0x64, 0x57, + 0x56, 0x7a, 0x63, 0x77, 0x45, 0x48, 0x61, 0x32, 0x56, 0x35, 0x64, 0x32, + 0x39, 0x79, 0x5a, 0x41, 0x45, 0x41, 0x41, 0x51, 0x46, 0x6d, 0x46, 0x47, + 0x4e, 0x68, 0x64, 0x58, 0x4e, 0x6c, 0x4c, 0x6e, 0x4a, 0x6c, 0x63, 0x33, + 0x42, 0x76, 0x62, 0x6e, 0x4e, 0x70, 0x59, 0x6d, 0x6c, 0x73, 0x61, 0x58, + 0x52, 0x35, 0x41, 0x52, 0x52, 0x6a, 0x59, 0x58, 0x56, 0x7a, 0x5a, 0x53, + 0x35, 0x79, 0x5a, 0x58, 0x4e, 0x77, 0x62, 0x32, 0x35, 0x7a, 0x61, 0x57, + 0x4a, 0x70, 0x62, 0x47, 0x6c, 0x30, 0x65, 0x51, 0x45, 0x48, 0x61, 0x32, + 0x56, 0x35, 0x64, 0x32, 0x39, 0x79, 0x5a, 0x41, 0x45, 0x41, 0x41, 0x51, + 0x46, 0x6d, 0x42, 0x6d, 0x4e, 0x73, 0x61, 0x57, 0x56, 0x75, 0x64, 0x41, + 0x45, 0x47, 0x59, 0x32, 0x78, 0x70, 0x5a, 0x57, 0x35, 0x30, 0x41, 0x51, + 0x64, 0x72, 0x5a, 0x58, 0x6c, 0x33, 0x62, 0x33, 0x4a, 0x6b, 0x41, 0x51, + 0x41, 0x42, 0x41, 0x57, 0x59, 0x56, 0x59, 0x32, 0x39, 0x75, 0x64, 0x47, + 0x56, 0x34, 0x64, 0x43, 0x35, 0x33, 0x62, 0x33, 0x4a, 0x72, 0x5a, 0x6d, + 0x78, 0x76, 0x64, 0x79, 0x35, 0x70, 0x5a, 0x47, 0x35, 0x79, 0x41, 0x52, + 0x56, 0x6a, 0x62, 0x32, 0x35, 0x30, 0x5a, 0x58, 0x68, 0x30, 0x4c, 0x6e, + 0x64, 0x76, 0x63, 0x6d, 0x74, 0x6d, 0x62, 0x47, 0x39, 0x33, 0x4c, 0x6d, + 0x6c, 0x6b, 0x62, 0x6e, 0x49, 0x42, 0x42, 0x47, 0x78, 0x76, 0x62, 0x6d, + 0x63, 0x41, 0x41, 0x41, 0x45, 0x42, 0x5a, 0x68, 0x52, 0x6a, 0x62, 0x32, + 0x35, 0x30, 0x5a, 0x58, 0x68, 0x30, 0x4c, 0x6e, 0x64, 0x76, 0x63, 0x6d, + 0x74, 0x6d, 0x62, 0x47, 0x39, 0x33, 0x4c, 0x6d, 0x78, 0x75, 0x63, 0x67, + 0x45, 0x55, 0x59, 0x32, 0x39, 0x75, 0x64, 0x47, 0x56, 0x34, 0x64, 0x43, + 0x35, 0x33, 0x62, 0x33, 0x4a, 0x72, 0x5a, 0x6d, 0x78, 0x76, 0x64, 0x79, + 0x35, 0x73, 0x62, 0x6e, 0x49, 0x42, 0x42, 0x32, 0x6c, 0x75, 0x64, 0x47, + 0x56, 0x6e, 0x5a, 0x58, 0x49, 0x41, 0x41, 0x41, 0x45, 0x42, 0x5a, 0x68, + 0x5a, 0x6a, 0x62, 0x32, 0x35, 0x30, 0x5a, 0x58, 0x68, 0x30, 0x4c, 0x6e, + 0x64, 0x76, 0x63, 0x6d, 0x74, 0x6d, 0x62, 0x47, 0x39, 0x33, 0x4c, 0x6d, + 0x39, 0x30, 0x65, 0x58, 0x42, 0x6c, 0x41, 0x52, 0x5a, 0x6a, 0x62, 0x32, + 0x35, 0x30, 0x5a, 0x58, 0x68, 0x30, 0x4c, 0x6e, 0x64, 0x76, 0x63, 0x6d, + 0x74, 0x6d, 0x62, 0x47, 0x39, 0x33, 0x4c, 0x6d, 0x39, 0x30, 0x65, 0x58, + 0x42, 0x6c, 0x41, 0x51, 0x52, 0x30, 0x5a, 0x58, 0x68, 0x30, 0x41, 0x41, + 0x41, 0x42, 0x41, 0x57, 0x59, 0x50, 0x5a, 0x47, 0x46, 0x30, 0x5a, 0x53, + 0x35, 0x68, 0x59, 0x33, 0x52, 0x70, 0x64, 0x6d, 0x46, 0x30, 0x61, 0x57, + 0x39, 0x75, 0x41, 0x51, 0x39, 0x6b, 0x59, 0x58, 0x52, 0x6c, 0x4c, 0x6d, + 0x46, 0x6a, 0x64, 0x47, 0x6c, 0x32, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, + 0x34, 0x42, 0x43, 0x47, 0x52, 0x68, 0x64, 0x47, 0x56, 0x30, 0x61, 0x57, + 0x31, 0x6c, 0x41, 0x51, 0x41, 0x42, 0x41, 0x57, 0x59, 0x49, 0x5a, 0x47, + 0x46, 0x30, 0x5a, 0x53, 0x35, 0x6c, 0x62, 0x6d, 0x51, 0x42, 0x43, 0x47, + 0x52, 0x68, 0x64, 0x47, 0x55, 0x75, 0x5a, 0x57, 0x35, 0x6b, 0x41, 0x51, + 0x68, 0x6b, 0x59, 0x58, 0x52, 0x6c, 0x64, 0x47, 0x6c, 0x74, 0x5a, 0x51, + 0x45, 0x41, 0x41, 0x51, 0x46, 0x6d, 0x43, 0x32, 0x52, 0x68, 0x64, 0x47, + 0x55, 0x75, 0x5a, 0x57, 0x35, 0x6b, 0x58, 0x33, 0x42, 0x77, 0x41, 0x51, + 0x74, 0x6b, 0x59, 0x58, 0x52, 0x6c, 0x4c, 0x6d, 0x56, 0x75, 0x5a, 0x46, + 0x39, 0x77, 0x63, 0x41, 0x45, 0x49, 0x5a, 0x47, 0x46, 0x30, 0x5a, 0x58, + 0x52, 0x70, 0x62, 0x57, 0x55, 0x42, 0x41, 0x41, 0x45, 0x42, 0x5a, 0x67, + 0x70, 0x6b, 0x59, 0x58, 0x52, 0x6c, 0x4c, 0x6e, 0x4e, 0x30, 0x59, 0x58, + 0x4a, 0x30, 0x41, 0x51, 0x70, 0x6b, 0x59, 0x58, 0x52, 0x6c, 0x4c, 0x6e, + 0x4e, 0x30, 0x59, 0x58, 0x4a, 0x30, 0x41, 0x51, 0x68, 0x6b, 0x59, 0x58, + 0x52, 0x6c, 0x64, 0x47, 0x6c, 0x74, 0x5a, 0x51, 0x45, 0x41, 0x41, 0x51, + 0x46, 0x6d, 0x43, 0x32, 0x52, 0x6c, 0x62, 0x47, 0x56, 0x30, 0x5a, 0x56, + 0x39, 0x6d, 0x62, 0x47, 0x46, 0x6e, 0x41, 0x51, 0x74, 0x6b, 0x5a, 0x57, + 0x78, 0x6c, 0x64, 0x47, 0x56, 0x66, 0x5a, 0x6d, 0x78, 0x68, 0x5a, 0x77, + 0x45, 0x46, 0x63, 0x32, 0x68, 0x76, 0x63, 0x6e, 0x51, 0x41, 0x41, 0x41, + 0x45, 0x42, 0x5a, 0x68, 0x42, 0x6b, 0x5a, 0x58, 0x4e, 0x30, 0x61, 0x57, + 0x35, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x69, 0x35, 0x6f, 0x62, 0x33, + 0x4e, 0x30, 0x41, 0x52, 0x42, 0x6b, 0x5a, 0x58, 0x4e, 0x30, 0x61, 0x57, + 0x35, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x69, 0x35, 0x6f, 0x62, 0x33, + 0x4e, 0x30, 0x41, 0x51, 0x52, 0x30, 0x5a, 0x58, 0x68, 0x30, 0x41, 0x41, + 0x41, 0x42, 0x41, 0x57, 0x59, 0x52, 0x5a, 0x47, 0x56, 0x7a, 0x64, 0x47, + 0x6c, 0x75, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x34, 0x75, 0x62, 0x47, + 0x39, 0x6e, 0x61, 0x57, 0x34, 0x42, 0x45, 0x57, 0x52, 0x6c, 0x63, 0x33, + 0x52, 0x70, 0x62, 0x6d, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x4c, 0x6d, + 0x78, 0x76, 0x5a, 0x32, 0x6c, 0x75, 0x41, 0x51, 0x52, 0x30, 0x5a, 0x58, + 0x68, 0x30, 0x41, 0x41, 0x41, 0x42, 0x41, 0x57, 0x59, 0x4f, 0x5a, 0x47, + 0x56, 0x30, 0x59, 0x57, 0x6c, 0x73, 0x63, 0x79, 0x35, 0x7a, 0x63, 0x57, + 0x77, 0x75, 0x63, 0x33, 0x41, 0x42, 0x44, 0x6d, 0x52, 0x6c, 0x64, 0x47, + 0x46, 0x70, 0x62, 0x48, 0x4d, 0x75, 0x63, 0x33, 0x46, 0x73, 0x4c, 0x6e, + 0x4e, 0x77, 0x41, 0x51, 0x52, 0x30, 0x5a, 0x58, 0x68, 0x30, 0x41, 0x41, + 0x41, 0x42, 0x41, 0x57, 0x59, 0x74, 0x5a, 0x48, 0x56, 0x79, 0x59, 0x58, + 0x52, 0x70, 0x62, 0x32, 0x35, 0x66, 0x62, 0x57, 0x6c, 0x75, 0x64, 0x58, + 0x52, 0x6c, 0x63, 0x79, 0x35, 0x74, 0x61, 0x57, 0x52, 0x75, 0x61, 0x57, + 0x64, 0x6f, 0x64, 0x46, 0x39, 0x6a, 0x5a, 0x58, 0x52, 0x66, 0x59, 0x32, + 0x56, 0x7a, 0x64, 0x43, 0x35, 0x68, 0x59, 0x33, 0x52, 0x70, 0x64, 0x6d, + 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x41, 0x53, 0x31, 0x6b, 0x64, 0x58, + 0x4a, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x6c, 0x39, 0x74, 0x61, 0x57, + 0x35, 0x31, 0x64, 0x47, 0x56, 0x7a, 0x4c, 0x6d, 0x31, 0x70, 0x5a, 0x47, + 0x35, 0x70, 0x5a, 0x32, 0x68, 0x30, 0x58, 0x32, 0x4e, 0x6c, 0x64, 0x46, + 0x39, 0x6a, 0x5a, 0x58, 0x4e, 0x30, 0x4c, 0x6d, 0x46, 0x6a, 0x64, 0x47, + 0x6c, 0x32, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x34, 0x42, 0x42, 0x32, + 0x6c, 0x75, 0x64, 0x47, 0x56, 0x6e, 0x5a, 0x58, 0x49, 0x41, 0x41, 0x41, + 0x45, 0x42, 0x5a, 0x69, 0x5a, 0x6b, 0x64, 0x58, 0x4a, 0x68, 0x64, 0x47, + 0x6c, 0x76, 0x62, 0x6c, 0x39, 0x74, 0x61, 0x57, 0x35, 0x31, 0x64, 0x47, + 0x56, 0x7a, 0x4c, 0x6d, 0x31, 0x70, 0x5a, 0x47, 0x35, 0x70, 0x5a, 0x32, + 0x68, 0x30, 0x58, 0x32, 0x4e, 0x6c, 0x64, 0x46, 0x39, 0x6a, 0x5a, 0x58, + 0x4e, 0x30, 0x4c, 0x6d, 0x56, 0x75, 0x5a, 0x41, 0x45, 0x6d, 0x5a, 0x48, + 0x56, 0x79, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x35, 0x66, 0x62, 0x57, + 0x6c, 0x75, 0x64, 0x58, 0x52, 0x6c, 0x63, 0x79, 0x35, 0x74, 0x61, 0x57, + 0x52, 0x75, 0x61, 0x57, 0x64, 0x6f, 0x64, 0x46, 0x39, 0x6a, 0x5a, 0x58, + 0x52, 0x66, 0x59, 0x32, 0x56, 0x7a, 0x64, 0x43, 0x35, 0x6c, 0x62, 0x6d, + 0x51, 0x42, 0x42, 0x32, 0x6c, 0x75, 0x64, 0x47, 0x56, 0x6e, 0x5a, 0x58, + 0x49, 0x41, 0x41, 0x41, 0x45, 0x42, 0x5a, 0x69, 0x6c, 0x6b, 0x64, 0x58, + 0x4a, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x6c, 0x39, 0x74, 0x61, 0x57, + 0x35, 0x31, 0x64, 0x47, 0x56, 0x7a, 0x4c, 0x6d, 0x31, 0x70, 0x5a, 0x47, + 0x35, 0x70, 0x5a, 0x32, 0x68, 0x30, 0x58, 0x32, 0x4e, 0x6c, 0x64, 0x46, + 0x39, 0x6a, 0x5a, 0x58, 0x4e, 0x30, 0x4c, 0x6d, 0x56, 0x75, 0x5a, 0x46, + 0x39, 0x77, 0x63, 0x41, 0x45, 0x70, 0x5a, 0x48, 0x56, 0x79, 0x59, 0x58, + 0x52, 0x70, 0x62, 0x32, 0x35, 0x66, 0x62, 0x57, 0x6c, 0x75, 0x64, 0x58, + 0x52, 0x6c, 0x63, 0x79, 0x35, 0x74, 0x61, 0x57, 0x52, 0x75, 0x61, 0x57, + 0x64, 0x6f, 0x64, 0x46, 0x39, 0x6a, 0x5a, 0x58, 0x52, 0x66, 0x59, 0x32, + 0x56, 0x7a, 0x64, 0x43, 0x35, 0x6c, 0x62, 0x6d, 0x52, 0x66, 0x63, 0x48, + 0x41, 0x42, 0x42, 0x32, 0x6c, 0x75, 0x64, 0x47, 0x56, 0x6e, 0x5a, 0x58, + 0x49, 0x41, 0x41, 0x41, 0x45, 0x42, 0x5a, 0x69, 0x68, 0x6b, 0x64, 0x58, + 0x4a, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x6c, 0x39, 0x74, 0x61, 0x57, + 0x35, 0x31, 0x64, 0x47, 0x56, 0x7a, 0x4c, 0x6d, 0x31, 0x70, 0x5a, 0x47, + 0x35, 0x70, 0x5a, 0x32, 0x68, 0x30, 0x58, 0x32, 0x4e, 0x6c, 0x64, 0x46, + 0x39, 0x6a, 0x5a, 0x58, 0x4e, 0x30, 0x4c, 0x6e, 0x4e, 0x30, 0x59, 0x58, + 0x4a, 0x30, 0x41, 0x53, 0x68, 0x6b, 0x64, 0x58, 0x4a, 0x68, 0x64, 0x47, + 0x6c, 0x76, 0x62, 0x6c, 0x39, 0x74, 0x61, 0x57, 0x35, 0x31, 0x64, 0x47, + 0x56, 0x7a, 0x4c, 0x6d, 0x31, 0x70, 0x5a, 0x47, 0x35, 0x70, 0x5a, 0x32, + 0x68, 0x30, 0x58, 0x32, 0x4e, 0x6c, 0x64, 0x46, 0x39, 0x6a, 0x5a, 0x58, + 0x4e, 0x30, 0x4c, 0x6e, 0x4e, 0x30, 0x59, 0x58, 0x4a, 0x30, 0x41, 0x51, + 0x64, 0x70, 0x62, 0x6e, 0x52, 0x6c, 0x5a, 0x32, 0x56, 0x79, 0x41, 0x41, + 0x41, 0x42, 0x41, 0x57, 0x59, 0x6f, 0x5a, 0x48, 0x56, 0x79, 0x59, 0x58, + 0x52, 0x70, 0x62, 0x32, 0x35, 0x66, 0x62, 0x57, 0x6c, 0x75, 0x64, 0x58, + 0x52, 0x6c, 0x63, 0x79, 0x35, 0x74, 0x61, 0x57, 0x52, 0x75, 0x61, 0x57, + 0x64, 0x6f, 0x64, 0x46, 0x39, 0x31, 0x64, 0x47, 0x4d, 0x75, 0x59, 0x57, + 0x4e, 0x30, 0x61, 0x58, 0x5a, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x67, + 0x45, 0x6f, 0x5a, 0x48, 0x56, 0x79, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, + 0x35, 0x66, 0x62, 0x57, 0x6c, 0x75, 0x64, 0x58, 0x52, 0x6c, 0x63, 0x79, + 0x35, 0x74, 0x61, 0x57, 0x52, 0x75, 0x61, 0x57, 0x64, 0x6f, 0x64, 0x46, + 0x39, 0x31, 0x64, 0x47, 0x4d, 0x75, 0x59, 0x57, 0x4e, 0x30, 0x61, 0x58, + 0x5a, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x67, 0x45, 0x48, 0x61, 0x57, + 0x35, 0x30, 0x5a, 0x57, 0x64, 0x6c, 0x63, 0x67, 0x41, 0x41, 0x41, 0x51, + 0x46, 0x6d, 0x49, 0x57, 0x52, 0x31, 0x63, 0x6d, 0x46, 0x30, 0x61, 0x57, + 0x39, 0x75, 0x58, 0x32, 0x31, 0x70, 0x62, 0x6e, 0x56, 0x30, 0x5a, 0x58, + 0x4d, 0x75, 0x62, 0x57, 0x6c, 0x6b, 0x62, 0x6d, 0x6c, 0x6e, 0x61, 0x48, + 0x52, 0x66, 0x64, 0x58, 0x52, 0x6a, 0x4c, 0x6d, 0x56, 0x75, 0x5a, 0x41, + 0x45, 0x68, 0x5a, 0x48, 0x56, 0x79, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, + 0x35, 0x66, 0x62, 0x57, 0x6c, 0x75, 0x64, 0x58, 0x52, 0x6c, 0x63, 0x79, + 0x35, 0x74, 0x61, 0x57, 0x52, 0x75, 0x61, 0x57, 0x64, 0x6f, 0x64, 0x46, + 0x39, 0x31, 0x64, 0x47, 0x4d, 0x75, 0x5a, 0x57, 0x35, 0x6b, 0x41, 0x51, + 0x64, 0x70, 0x62, 0x6e, 0x52, 0x6c, 0x5a, 0x32, 0x56, 0x79, 0x41, 0x41, + 0x41, 0x42, 0x41, 0x57, 0x59, 0x6b, 0x5a, 0x48, 0x56, 0x79, 0x59, 0x58, + 0x52, 0x70, 0x62, 0x32, 0x35, 0x66, 0x62, 0x57, 0x6c, 0x75, 0x64, 0x58, + 0x52, 0x6c, 0x63, 0x79, 0x35, 0x74, 0x61, 0x57, 0x52, 0x75, 0x61, 0x57, + 0x64, 0x6f, 0x64, 0x46, 0x39, 0x31, 0x64, 0x47, 0x4d, 0x75, 0x5a, 0x57, + 0x35, 0x6b, 0x58, 0x33, 0x42, 0x77, 0x41, 0x53, 0x52, 0x6b, 0x64, 0x58, + 0x4a, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x6c, 0x39, 0x74, 0x61, 0x57, + 0x35, 0x31, 0x64, 0x47, 0x56, 0x7a, 0x4c, 0x6d, 0x31, 0x70, 0x5a, 0x47, + 0x35, 0x70, 0x5a, 0x32, 0x68, 0x30, 0x58, 0x33, 0x56, 0x30, 0x59, 0x79, + 0x35, 0x6c, 0x62, 0x6d, 0x52, 0x66, 0x63, 0x48, 0x41, 0x42, 0x42, 0x32, + 0x6c, 0x75, 0x64, 0x47, 0x56, 0x6e, 0x5a, 0x58, 0x49, 0x41, 0x41, 0x41, + 0x45, 0x42, 0x5a, 0x69, 0x4e, 0x6b, 0x64, 0x58, 0x4a, 0x68, 0x64, 0x47, + 0x6c, 0x76, 0x62, 0x6c, 0x39, 0x74, 0x61, 0x57, 0x35, 0x31, 0x64, 0x47, + 0x56, 0x7a, 0x4c, 0x6d, 0x31, 0x70, 0x5a, 0x47, 0x35, 0x70, 0x5a, 0x32, + 0x68, 0x30, 0x58, 0x33, 0x56, 0x30, 0x59, 0x79, 0x35, 0x7a, 0x64, 0x47, + 0x46, 0x79, 0x64, 0x41, 0x45, 0x6a, 0x5a, 0x48, 0x56, 0x79, 0x59, 0x58, + 0x52, 0x70, 0x62, 0x32, 0x35, 0x66, 0x62, 0x57, 0x6c, 0x75, 0x64, 0x58, + 0x52, 0x6c, 0x63, 0x79, 0x35, 0x74, 0x61, 0x57, 0x52, 0x75, 0x61, 0x57, + 0x64, 0x6f, 0x64, 0x46, 0x39, 0x31, 0x64, 0x47, 0x4d, 0x75, 0x63, 0x33, + 0x52, 0x68, 0x63, 0x6e, 0x51, 0x42, 0x42, 0x32, 0x6c, 0x75, 0x64, 0x47, + 0x56, 0x6e, 0x5a, 0x58, 0x49, 0x41, 0x41, 0x41, 0x45, 0x42, 0x5a, 0x68, + 0x39, 0x6b, 0x64, 0x58, 0x4a, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x6c, + 0x39, 0x7a, 0x5a, 0x57, 0x4e, 0x76, 0x62, 0x6d, 0x52, 0x7a, 0x4c, 0x6d, + 0x46, 0x6a, 0x64, 0x47, 0x6c, 0x32, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, + 0x34, 0x75, 0x5a, 0x57, 0x35, 0x6b, 0x41, 0x52, 0x39, 0x6b, 0x64, 0x58, + 0x4a, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x6c, 0x39, 0x7a, 0x5a, 0x57, + 0x4e, 0x76, 0x62, 0x6d, 0x52, 0x7a, 0x4c, 0x6d, 0x46, 0x6a, 0x64, 0x47, + 0x6c, 0x32, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x34, 0x75, 0x5a, 0x57, + 0x35, 0x6b, 0x41, 0x51, 0x64, 0x70, 0x62, 0x6e, 0x52, 0x6c, 0x5a, 0x32, + 0x56, 0x79, 0x41, 0x41, 0x41, 0x42, 0x41, 0x57, 0x59, 0x69, 0x5a, 0x48, + 0x56, 0x79, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x35, 0x66, 0x63, 0x32, + 0x56, 0x6a, 0x62, 0x32, 0x35, 0x6b, 0x63, 0x79, 0x35, 0x68, 0x59, 0x33, + 0x52, 0x70, 0x64, 0x6d, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x4c, 0x6d, + 0x56, 0x75, 0x5a, 0x46, 0x39, 0x77, 0x63, 0x41, 0x45, 0x69, 0x5a, 0x48, + 0x56, 0x79, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x35, 0x66, 0x63, 0x32, + 0x56, 0x6a, 0x62, 0x32, 0x35, 0x6b, 0x63, 0x79, 0x35, 0x68, 0x59, 0x33, + 0x52, 0x70, 0x64, 0x6d, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x4c, 0x6d, + 0x56, 0x75, 0x5a, 0x46, 0x39, 0x77, 0x63, 0x41, 0x45, 0x48, 0x61, 0x57, + 0x35, 0x30, 0x5a, 0x57, 0x64, 0x6c, 0x63, 0x67, 0x41, 0x41, 0x41, 0x51, + 0x46, 0x6d, 0x49, 0x57, 0x52, 0x31, 0x63, 0x6d, 0x46, 0x30, 0x61, 0x57, + 0x39, 0x75, 0x58, 0x33, 0x4e, 0x6c, 0x59, 0x32, 0x39, 0x75, 0x5a, 0x48, + 0x4d, 0x75, 0x59, 0x57, 0x4e, 0x30, 0x61, 0x58, 0x5a, 0x68, 0x64, 0x47, + 0x6c, 0x76, 0x62, 0x69, 0x35, 0x7a, 0x64, 0x47, 0x46, 0x79, 0x64, 0x41, + 0x45, 0x68, 0x5a, 0x48, 0x56, 0x79, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, + 0x35, 0x66, 0x63, 0x32, 0x56, 0x6a, 0x62, 0x32, 0x35, 0x6b, 0x63, 0x79, + 0x35, 0x68, 0x59, 0x33, 0x52, 0x70, 0x64, 0x6d, 0x46, 0x30, 0x61, 0x57, + 0x39, 0x75, 0x4c, 0x6e, 0x4e, 0x30, 0x59, 0x58, 0x4a, 0x30, 0x41, 0x51, + 0x64, 0x70, 0x62, 0x6e, 0x52, 0x6c, 0x5a, 0x32, 0x56, 0x79, 0x41, 0x41, + 0x41, 0x42, 0x41, 0x57, 0x59, 0x62, 0x5a, 0x48, 0x56, 0x79, 0x59, 0x58, + 0x52, 0x70, 0x62, 0x32, 0x35, 0x66, 0x63, 0x32, 0x56, 0x6a, 0x62, 0x32, + 0x35, 0x6b, 0x63, 0x79, 0x35, 0x6c, 0x62, 0x6d, 0x51, 0x75, 0x5a, 0x57, + 0x35, 0x6b, 0x58, 0x33, 0x42, 0x77, 0x41, 0x52, 0x74, 0x6b, 0x64, 0x58, + 0x4a, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x6c, 0x39, 0x7a, 0x5a, 0x57, + 0x4e, 0x76, 0x62, 0x6d, 0x52, 0x7a, 0x4c, 0x6d, 0x56, 0x75, 0x5a, 0x43, + 0x35, 0x6c, 0x62, 0x6d, 0x52, 0x66, 0x63, 0x48, 0x41, 0x42, 0x42, 0x32, + 0x6c, 0x75, 0x64, 0x47, 0x56, 0x6e, 0x5a, 0x58, 0x49, 0x41, 0x41, 0x41, + 0x45, 0x42, 0x5a, 0x69, 0x4a, 0x6b, 0x64, 0x58, 0x4a, 0x68, 0x64, 0x47, + 0x6c, 0x76, 0x62, 0x6c, 0x39, 0x7a, 0x5a, 0x57, 0x4e, 0x76, 0x62, 0x6d, + 0x52, 0x7a, 0x4c, 0x6d, 0x56, 0x7a, 0x64, 0x47, 0x6c, 0x74, 0x59, 0x58, + 0x52, 0x6c, 0x5a, 0x46, 0x39, 0x79, 0x64, 0x57, 0x35, 0x30, 0x61, 0x57, + 0x31, 0x6c, 0x41, 0x53, 0x4a, 0x6b, 0x64, 0x58, 0x4a, 0x68, 0x64, 0x47, + 0x6c, 0x76, 0x62, 0x6c, 0x39, 0x7a, 0x5a, 0x57, 0x4e, 0x76, 0x62, 0x6d, + 0x52, 0x7a, 0x4c, 0x6d, 0x56, 0x7a, 0x64, 0x47, 0x6c, 0x74, 0x59, 0x58, + 0x52, 0x6c, 0x5a, 0x46, 0x39, 0x79, 0x64, 0x57, 0x35, 0x30, 0x61, 0x57, + 0x31, 0x6c, 0x41, 0x51, 0x64, 0x70, 0x62, 0x6e, 0x52, 0x6c, 0x5a, 0x32, + 0x56, 0x79, 0x41, 0x41, 0x41, 0x42, 0x41, 0x57, 0x59, 0x61, 0x5a, 0x48, + 0x56, 0x79, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x35, 0x66, 0x63, 0x32, + 0x56, 0x6a, 0x62, 0x32, 0x35, 0x6b, 0x63, 0x79, 0x35, 0x7a, 0x64, 0x47, + 0x46, 0x79, 0x64, 0x43, 0x35, 0x6c, 0x62, 0x6d, 0x51, 0x42, 0x47, 0x6d, + 0x52, 0x31, 0x63, 0x6d, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x58, 0x33, + 0x4e, 0x6c, 0x59, 0x32, 0x39, 0x75, 0x5a, 0x48, 0x4d, 0x75, 0x63, 0x33, + 0x52, 0x68, 0x63, 0x6e, 0x51, 0x75, 0x5a, 0x57, 0x35, 0x6b, 0x41, 0x51, + 0x64, 0x70, 0x62, 0x6e, 0x52, 0x6c, 0x5a, 0x32, 0x56, 0x79, 0x41, 0x41, + 0x41, 0x42, 0x41, 0x57, 0x59, 0x64, 0x5a, 0x48, 0x56, 0x79, 0x59, 0x58, + 0x52, 0x70, 0x62, 0x32, 0x35, 0x66, 0x63, 0x32, 0x56, 0x6a, 0x62, 0x32, + 0x35, 0x6b, 0x63, 0x79, 0x35, 0x7a, 0x64, 0x47, 0x46, 0x79, 0x64, 0x43, + 0x35, 0x6c, 0x62, 0x6d, 0x52, 0x66, 0x63, 0x48, 0x41, 0x42, 0x48, 0x57, + 0x52, 0x31, 0x63, 0x6d, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x58, 0x33, + 0x4e, 0x6c, 0x59, 0x32, 0x39, 0x75, 0x5a, 0x48, 0x4d, 0x75, 0x63, 0x33, + 0x52, 0x68, 0x63, 0x6e, 0x51, 0x75, 0x5a, 0x57, 0x35, 0x6b, 0x58, 0x33, + 0x42, 0x77, 0x41, 0x51, 0x64, 0x70, 0x62, 0x6e, 0x52, 0x6c, 0x5a, 0x32, + 0x56, 0x79, 0x41, 0x41, 0x41, 0x42, 0x41, 0x57, 0x59, 0x4a, 0x5a, 0x57, + 0x68, 0x66, 0x63, 0x33, 0x52, 0x68, 0x64, 0x48, 0x56, 0x7a, 0x41, 0x51, + 0x6c, 0x6c, 0x61, 0x46, 0x39, 0x7a, 0x64, 0x47, 0x46, 0x30, 0x64, 0x58, + 0x4d, 0x42, 0x42, 0x48, 0x52, 0x6c, 0x65, 0x48, 0x51, 0x41, 0x41, 0x41, + 0x45, 0x42, 0x5a, 0x67, 0x52, 0x70, 0x5a, 0x47, 0x35, 0x79, 0x41, 0x51, + 0x52, 0x70, 0x5a, 0x47, 0x35, 0x79, 0x41, 0x51, 0x52, 0x73, 0x62, 0x32, + 0x35, 0x6e, 0x41, 0x41, 0x41, 0x42, 0x41, 0x57, 0x59, 0x47, 0x61, 0x57, + 0x64, 0x75, 0x62, 0x33, 0x4a, 0x6c, 0x41, 0x51, 0x5a, 0x70, 0x5a, 0x32, + 0x35, 0x76, 0x63, 0x6d, 0x55, 0x42, 0x42, 0x32, 0x4a, 0x76, 0x62, 0x32, + 0x78, 0x6c, 0x59, 0x57, 0x34, 0x41, 0x41, 0x41, 0x45, 0x42, 0x5a, 0x67, + 0x68, 0x70, 0x63, 0x31, 0x39, 0x70, 0x62, 0x6c, 0x39, 0x6c, 0x61, 0x41, + 0x45, 0x49, 0x61, 0x58, 0x4e, 0x66, 0x61, 0x57, 0x35, 0x66, 0x5a, 0x57, + 0x67, 0x42, 0x42, 0x32, 0x4a, 0x76, 0x62, 0x32, 0x78, 0x6c, 0x59, 0x57, + 0x34, 0x41, 0x41, 0x41, 0x45, 0x42, 0x5a, 0x67, 0x35, 0x71, 0x61, 0x58, + 0x4a, 0x68, 0x4c, 0x6d, 0x6c, 0x7a, 0x63, 0x33, 0x56, 0x6c, 0x58, 0x32, + 0x74, 0x6c, 0x65, 0x51, 0x45, 0x4f, 0x61, 0x6d, 0x6c, 0x79, 0x59, 0x53, + 0x35, 0x70, 0x63, 0x33, 0x4e, 0x31, 0x5a, 0x56, 0x39, 0x72, 0x5a, 0x58, + 0x6b, 0x42, 0x42, 0x32, 0x74, 0x6c, 0x65, 0x58, 0x64, 0x76, 0x63, 0x6d, + 0x51, 0x42, 0x41, 0x41, 0x45, 0x42, 0x5a, 0x68, 0x46, 0x71, 0x61, 0x58, + 0x4a, 0x68, 0x4c, 0x6d, 0x6c, 0x7a, 0x63, 0x33, 0x56, 0x6c, 0x58, 0x33, + 0x4e, 0x30, 0x59, 0x58, 0x52, 0x31, 0x63, 0x77, 0x45, 0x52, 0x61, 0x6d, + 0x6c, 0x79, 0x59, 0x53, 0x35, 0x70, 0x63, 0x33, 0x4e, 0x31, 0x5a, 0x56, + 0x39, 0x7a, 0x64, 0x47, 0x46, 0x30, 0x64, 0x58, 0x4d, 0x42, 0x42, 0x32, + 0x74, 0x6c, 0x65, 0x58, 0x64, 0x76, 0x63, 0x6d, 0x51, 0x42, 0x41, 0x41, + 0x45, 0x42, 0x5a, 0x67, 0x35, 0x71, 0x61, 0x58, 0x4a, 0x68, 0x4c, 0x6d, + 0x6c, 0x7a, 0x63, 0x33, 0x56, 0x6c, 0x58, 0x33, 0x56, 0x79, 0x62, 0x41, + 0x45, 0x4f, 0x61, 0x6d, 0x6c, 0x79, 0x59, 0x53, 0x35, 0x70, 0x63, 0x33, + 0x4e, 0x31, 0x5a, 0x56, 0x39, 0x31, 0x63, 0x6d, 0x77, 0x42, 0x42, 0x48, + 0x52, 0x6c, 0x65, 0x48, 0x51, 0x41, 0x41, 0x41, 0x45, 0x42, 0x5a, 0x67, + 0x68, 0x71, 0x62, 0x32, 0x4a, 0x66, 0x64, 0x48, 0x6c, 0x77, 0x5a, 0x51, + 0x45, 0x49, 0x61, 0x6d, 0x39, 0x69, 0x58, 0x33, 0x52, 0x35, 0x63, 0x47, + 0x55, 0x42, 0x42, 0x48, 0x52, 0x6c, 0x65, 0x48, 0x51, 0x41, 0x41, 0x41, + 0x45, 0x42, 0x5a, 0x68, 0x6c, 0x74, 0x5a, 0x47, 0x55, 0x75, 0x62, 0x47, + 0x46, 0x7a, 0x64, 0x46, 0x39, 0x6a, 0x62, 0x32, 0x78, 0x73, 0x5a, 0x57, + 0x4e, 0x30, 0x62, 0x33, 0x4a, 0x66, 0x63, 0x6e, 0x56, 0x75, 0x4c, 0x6d, + 0x6c, 0x6b, 0x41, 0x52, 0x6c, 0x74, 0x5a, 0x47, 0x55, 0x75, 0x62, 0x47, + 0x46, 0x7a, 0x64, 0x46, 0x39, 0x6a, 0x62, 0x32, 0x78, 0x73, 0x5a, 0x57, + 0x4e, 0x30, 0x62, 0x33, 0x4a, 0x66, 0x63, 0x6e, 0x56, 0x75, 0x4c, 0x6d, + 0x6c, 0x6b, 0x41, 0x51, 0x64, 0x72, 0x5a, 0x58, 0x6c, 0x33, 0x62, 0x33, + 0x4a, 0x6b, 0x41, 0x51, 0x41, 0x42, 0x41, 0x57, 0x59, 0x67, 0x62, 0x57, + 0x52, 0x6c, 0x4c, 0x6d, 0x78, 0x68, 0x63, 0x33, 0x52, 0x66, 0x59, 0x32, + 0x39, 0x73, 0x62, 0x47, 0x56, 0x6a, 0x64, 0x47, 0x39, 0x79, 0x58, 0x33, + 0x4a, 0x31, 0x62, 0x69, 0x35, 0x30, 0x61, 0x57, 0x31, 0x6c, 0x63, 0x33, + 0x52, 0x68, 0x62, 0x58, 0x41, 0x42, 0x49, 0x47, 0x31, 0x6b, 0x5a, 0x53, + 0x35, 0x73, 0x59, 0x58, 0x4e, 0x30, 0x58, 0x32, 0x4e, 0x76, 0x62, 0x47, + 0x78, 0x6c, 0x59, 0x33, 0x52, 0x76, 0x63, 0x6c, 0x39, 0x79, 0x64, 0x57, + 0x34, 0x75, 0x64, 0x47, 0x6c, 0x74, 0x5a, 0x58, 0x4e, 0x30, 0x59, 0x57, + 0x31, 0x77, 0x41, 0x51, 0x68, 0x6b, 0x59, 0x58, 0x52, 0x6c, 0x64, 0x47, + 0x6c, 0x74, 0x5a, 0x51, 0x45, 0x41, 0x41, 0x51, 0x46, 0x6d, 0x47, 0x6d, + 0x31, 0x6b, 0x5a, 0x53, 0x35, 0x73, 0x59, 0x58, 0x4e, 0x30, 0x58, 0x32, + 0x52, 0x6c, 0x63, 0x47, 0x56, 0x75, 0x5a, 0x47, 0x56, 0x75, 0x59, 0x33, + 0x6c, 0x66, 0x63, 0x6e, 0x56, 0x75, 0x4c, 0x6d, 0x6c, 0x6b, 0x41, 0x52, + 0x70, 0x74, 0x5a, 0x47, 0x55, 0x75, 0x62, 0x47, 0x46, 0x7a, 0x64, 0x46, + 0x39, 0x6b, 0x5a, 0x58, 0x42, 0x6c, 0x62, 0x6d, 0x52, 0x6c, 0x62, 0x6d, + 0x4e, 0x35, 0x58, 0x33, 0x4a, 0x31, 0x62, 0x69, 0x35, 0x70, 0x5a, 0x41, + 0x45, 0x48, 0x61, 0x32, 0x56, 0x35, 0x64, 0x32, 0x39, 0x79, 0x5a, 0x41, + 0x45, 0x41, 0x41, 0x51, 0x46, 0x6d, 0x49, 0x57, 0x31, 0x6b, 0x5a, 0x53, + 0x35, 0x73, 0x59, 0x58, 0x4e, 0x30, 0x58, 0x32, 0x52, 0x6c, 0x63, 0x47, + 0x56, 0x75, 0x5a, 0x47, 0x56, 0x75, 0x59, 0x33, 0x6c, 0x66, 0x63, 0x6e, + 0x56, 0x75, 0x4c, 0x6e, 0x52, 0x70, 0x62, 0x57, 0x56, 0x7a, 0x64, 0x47, + 0x46, 0x74, 0x63, 0x41, 0x45, 0x68, 0x62, 0x57, 0x52, 0x6c, 0x4c, 0x6d, + 0x78, 0x68, 0x63, 0x33, 0x52, 0x66, 0x5a, 0x47, 0x56, 0x77, 0x5a, 0x57, + 0x35, 0x6b, 0x5a, 0x57, 0x35, 0x6a, 0x65, 0x56, 0x39, 0x79, 0x64, 0x57, + 0x34, 0x75, 0x64, 0x47, 0x6c, 0x74, 0x5a, 0x58, 0x4e, 0x30, 0x59, 0x57, + 0x31, 0x77, 0x41, 0x51, 0x68, 0x6b, 0x59, 0x58, 0x52, 0x6c, 0x64, 0x47, + 0x6c, 0x74, 0x5a, 0x51, 0x45, 0x41, 0x41, 0x51, 0x46, 0x6d, 0x46, 0x6d, + 0x31, 0x6b, 0x5a, 0x53, 0x35, 0x73, 0x59, 0x58, 0x4e, 0x30, 0x58, 0x32, + 0x56, 0x6f, 0x63, 0x33, 0x6c, 0x75, 0x59, 0x31, 0x39, 0x79, 0x64, 0x57, + 0x34, 0x75, 0x61, 0x57, 0x51, 0x42, 0x46, 0x6d, 0x31, 0x6b, 0x5a, 0x53, + 0x35, 0x73, 0x59, 0x58, 0x4e, 0x30, 0x58, 0x32, 0x56, 0x6f, 0x63, 0x33, + 0x6c, 0x75, 0x59, 0x31, 0x39, 0x79, 0x64, 0x57, 0x34, 0x75, 0x61, 0x57, + 0x51, 0x42, 0x42, 0x32, 0x74, 0x6c, 0x65, 0x58, 0x64, 0x76, 0x63, 0x6d, + 0x51, 0x42, 0x41, 0x41, 0x45, 0x42, 0x5a, 0x68, 0x31, 0x74, 0x5a, 0x47, + 0x55, 0x75, 0x62, 0x47, 0x46, 0x7a, 0x64, 0x46, 0x39, 0x6c, 0x61, 0x48, + 0x4e, 0x35, 0x62, 0x6d, 0x4e, 0x66, 0x63, 0x6e, 0x56, 0x75, 0x4c, 0x6e, + 0x52, 0x70, 0x62, 0x57, 0x56, 0x7a, 0x64, 0x47, 0x46, 0x74, 0x63, 0x41, + 0x45, 0x64, 0x62, 0x57, 0x52, 0x6c, 0x4c, 0x6d, 0x78, 0x68, 0x63, 0x33, + 0x52, 0x66, 0x5a, 0x57, 0x68, 0x7a, 0x65, 0x57, 0x35, 0x6a, 0x58, 0x33, + 0x4a, 0x31, 0x62, 0x69, 0x35, 0x30, 0x61, 0x57, 0x31, 0x6c, 0x79, 0x06, + 0x5c, 0x63, 0x33, 0x52, 0x68, 0x62, 0x58, 0x41, 0x42, 0x43, 0x47, 0x52, + 0x68, 0x64, 0x47, 0x56, 0x30, 0x61, 0x57, 0x31, 0x6c, 0x41, 0x51, 0x41, + 0x42, 0x41, 0x57, 0x59, 0x45, 0x62, 0x6d, 0x46, 0x74, 0x5a, 0x51, 0x45, + 0x45, 0x62, 0x6d, 0x46, 0x74, 0x5a, 0x51, 0x45, 0x45, 0x64, 0x47, 0x56, + 0x34, 0x64, 0x41, 0x41, 0x41, 0x41, 0x51, 0x46, 0x6d, 0x42, 0x32, 0x39, + 0x6f, 0x58, 0x32, 0x6c, 0x6b, 0x62, 0x6e, 0x49, 0x42, 0x42, 0x32, 0x39, + 0x6f, 0x58, 0x32, 0x6c, 0x6b, 0x62, 0x6e, 0x49, 0x42, 0x42, 0x47, 0x78, + 0x76, 0x62, 0x6d, 0x63, 0x41, 0x41, 0x41, 0x45, 0x42, 0x5a, 0x67, 0x56, + 0x76, 0x64, 0x48, 0x6c, 0x77, 0x5a, 0x51, 0x45, 0x46, 0x62, 0x33, 0x52, + 0x35, 0x63, 0x47, 0x55, 0x42, 0x42, 0x32, 0x74, 0x6c, 0x65, 0x58, 0x64, + 0x76, 0x63, 0x6d, 0x51, 0x42, 0x41, 0x41, 0x45, 0x42, 0x5a, 0x67, 0x39, + 0x77, 0x59, 0x58, 0x4a, 0x6c, 0x62, 0x6e, 0x51, 0x75, 0x59, 0x57, 0x4e, + 0x30, 0x58, 0x32, 0x6c, 0x6b, 0x62, 0x6e, 0x49, 0x42, 0x44, 0x33, 0x42, + 0x68, 0x63, 0x6d, 0x56, 0x75, 0x64, 0x43, 0x35, 0x68, 0x59, 0x33, 0x52, + 0x66, 0x61, 0x57, 0x52, 0x75, 0x63, 0x67, 0x45, 0x45, 0x62, 0x47, 0x39, + 0x75, 0x5a, 0x77, 0x41, 0x41, 0x41, 0x51, 0x46, 0x6d, 0x44, 0x33, 0x42, + 0x68, 0x63, 0x6d, 0x56, 0x75, 0x64, 0x43, 0x35, 0x6f, 0x61, 0x58, 0x4a, + 0x66, 0x61, 0x57, 0x52, 0x75, 0x63, 0x67, 0x45, 0x50, 0x63, 0x47, 0x46, + 0x79, 0x5a, 0x57, 0x35, 0x30, 0x4c, 0x6d, 0x68, 0x70, 0x63, 0x6c, 0x39, + 0x70, 0x5a, 0x47, 0x35, 0x79, 0x41, 0x51, 0x52, 0x73, 0x62, 0x32, 0x35, + 0x6e, 0x41, 0x41, 0x41, 0x42, 0x41, 0x57, 0x59, 0x50, 0x63, 0x47, 0x46, + 0x79, 0x5a, 0x57, 0x35, 0x30, 0x4c, 0x6e, 0x42, 0x79, 0x59, 0x31, 0x39, + 0x70, 0x5a, 0x47, 0x35, 0x79, 0x41, 0x51, 0x39, 0x77, 0x59, 0x58, 0x4a, + 0x6c, 0x62, 0x6e, 0x51, 0x75, 0x63, 0x48, 0x4a, 0x6a, 0x58, 0x32, 0x6c, + 0x6b, 0x62, 0x6e, 0x49, 0x42, 0x42, 0x47, 0x78, 0x76, 0x62, 0x6d, 0x63, + 0x41, 0x41, 0x41, 0x45, 0x42, 0x5a, 0x68, 0x52, 0x77, 0x5a, 0x58, 0x4a, + 0x6d, 0x62, 0x33, 0x4a, 0x74, 0x59, 0x57, 0x35, 0x6a, 0x5a, 0x53, 0x35, + 0x6a, 0x63, 0x48, 0x56, 0x66, 0x64, 0x47, 0x6c, 0x74, 0x5a, 0x51, 0x45, + 0x55, 0x63, 0x47, 0x56, 0x79, 0x5a, 0x6d, 0x39, 0x79, 0x62, 0x57, 0x46, + 0x75, 0x59, 0x32, 0x55, 0x75, 0x59, 0x33, 0x42, 0x31, 0x58, 0x33, 0x52, + 0x70, 0x62, 0x57, 0x55, 0x42, 0x42, 0x47, 0x78, 0x76, 0x62, 0x6d, 0x63, + 0x41, 0x41, 0x41, 0x45, 0x42, 0x5a, 0x68, 0x52, 0x77, 0x5a, 0x58, 0x4a, + 0x6d, 0x62, 0x33, 0x4a, 0x74, 0x59, 0x57, 0x35, 0x6a, 0x5a, 0x53, 0x35, + 0x70, 0x62, 0x31, 0x39, 0x6a, 0x62, 0x33, 0x56, 0x75, 0x64, 0x41, 0x45, + 0x55, 0x63, 0x47, 0x56, 0x79, 0x5a, 0x6d, 0x39, 0x79, 0x62, 0x57, 0x46, + 0x75, 0x59, 0x32, 0x55, 0x75, 0x61, 0x57, 0x39, 0x66, 0x59, 0x32, 0x39, + 0x31, 0x62, 0x6e, 0x51, 0x42, 0x42, 0x47, 0x78, 0x76, 0x62, 0x6d, 0x63, + 0x41, 0x41, 0x41, 0x45, 0x42, 0x5a, 0x68, 0x64, 0x77, 0x5a, 0x58, 0x4a, + 0x6d, 0x62, 0x33, 0x4a, 0x74, 0x59, 0x57, 0x35, 0x6a, 0x5a, 0x53, 0x35, + 0x72, 0x5a, 0x58, 0x4a, 0x75, 0x5a, 0x57, 0x78, 0x66, 0x64, 0x47, 0x6c, + 0x74, 0x5a, 0x51, 0x45, 0x58, 0x63, 0x47, 0x56, 0x79, 0x5a, 0x6d, 0x39, + 0x79, 0x62, 0x57, 0x46, 0x75, 0x59, 0x32, 0x55, 0x75, 0x61, 0x32, 0x56, + 0x79, 0x62, 0x6d, 0x56, 0x73, 0x58, 0x33, 0x52, 0x70, 0x62, 0x57, 0x55, + 0x42, 0x42, 0x47, 0x78, 0x76, 0x62, 0x6d, 0x63, 0x41, 0x41, 0x41, 0x45, + 0x42, 0x5a, 0x68, 0x56, 0x77, 0x5a, 0x58, 0x4a, 0x6d, 0x62, 0x33, 0x4a, + 0x74, 0x59, 0x57, 0x35, 0x6a, 0x5a, 0x53, 0x35, 0x31, 0x63, 0x32, 0x56, + 0x79, 0x58, 0x33, 0x52, 0x70, 0x62, 0x57, 0x55, 0x42, 0x46, 0x58, 0x42, + 0x6c, 0x63, 0x6d, 0x5a, 0x76, 0x63, 0x6d, 0x31, 0x68, 0x62, 0x6d, 0x4e, + 0x6c, 0x4c, 0x6e, 0x56, 0x7a, 0x5a, 0x58, 0x4a, 0x66, 0x64, 0x47, 0x6c, + 0x74, 0x5a, 0x51, 0x45, 0x45, 0x62, 0x47, 0x39, 0x75, 0x5a, 0x77, 0x41, + 0x41, 0x41, 0x51, 0x46, 0x6d, 0x43, 0x48, 0x42, 0x79, 0x61, 0x57, 0x39, + 0x79, 0x61, 0x58, 0x52, 0x35, 0x41, 0x51, 0x68, 0x77, 0x63, 0x6d, 0x6c, + 0x76, 0x63, 0x6d, 0x6c, 0x30, 0x65, 0x51, 0x45, 0x48, 0x61, 0x57, 0x35, + 0x30, 0x5a, 0x57, 0x64, 0x6c, 0x63, 0x67, 0x41, 0x41, 0x41, 0x51, 0x46, + 0x6d, 0x43, 0x6e, 0x42, 0x79, 0x62, 0x32, 0x4e, 0x6c, 0x63, 0x33, 0x4e, + 0x66, 0x61, 0x57, 0x51, 0x42, 0x43, 0x6e, 0x42, 0x79, 0x62, 0x32, 0x4e, + 0x6c, 0x63, 0x33, 0x4e, 0x66, 0x61, 0x57, 0x51, 0x42, 0x42, 0x32, 0x6c, + 0x75, 0x64, 0x47, 0x56, 0x6e, 0x5a, 0x58, 0x49, 0x41, 0x41, 0x41, 0x45, + 0x42, 0x5a, 0x67, 0x56, 0x78, 0x64, 0x57, 0x56, 0x31, 0x5a, 0x51, 0x45, + 0x46, 0x63, 0x58, 0x56, 0x6c, 0x64, 0x57, 0x55, 0x42, 0x42, 0x48, 0x52, + 0x6c, 0x65, 0x48, 0x51, 0x41, 0x41, 0x41, 0x45, 0x42, 0x5a, 0x67, 0x68, + 0x79, 0x5a, 0x57, 0x5a, 0x66, 0x61, 0x57, 0x52, 0x75, 0x63, 0x67, 0x45, + 0x49, 0x63, 0x6d, 0x56, 0x6d, 0x58, 0x32, 0x6c, 0x6b, 0x62, 0x6e, 0x49, + 0x42, 0x42, 0x47, 0x78, 0x76, 0x62, 0x6d, 0x63, 0x41, 0x41, 0x41, 0x45, + 0x42, 0x5a, 0x67, 0x78, 0x79, 0x5a, 0x57, 0x5a, 0x66, 0x61, 0x6d, 0x39, + 0x69, 0x58, 0x32, 0x6c, 0x6b, 0x62, 0x6e, 0x49, 0x42, 0x44, 0x48, 0x4a, + 0x6c, 0x5a, 0x6c, 0x39, 0x71, 0x62, 0x32, 0x4a, 0x66, 0x61, 0x57, 0x52, + 0x75, 0x63, 0x67, 0x45, 0x45, 0x62, 0x47, 0x39, 0x75, 0x5a, 0x77, 0x41, + 0x41, 0x41, 0x51, 0x46, 0x6d, 0x43, 0x6e, 0x4a, 0x6c, 0x63, 0x47, 0x39, + 0x79, 0x64, 0x43, 0x35, 0x68, 0x59, 0x33, 0x51, 0x42, 0x43, 0x6e, 0x4a, + 0x6c, 0x63, 0x47, 0x39, 0x79, 0x64, 0x43, 0x35, 0x68, 0x59, 0x33, 0x51, + 0x42, 0x42, 0x48, 0x52, 0x6c, 0x65, 0x48, 0x51, 0x41, 0x41, 0x41, 0x45, + 0x42, 0x5a, 0x67, 0x70, 0x79, 0x5a, 0x58, 0x42, 0x76, 0x63, 0x6e, 0x51, + 0x75, 0x62, 0x47, 0x39, 0x6e, 0x41, 0x51, 0x70, 0x79, 0x5a, 0x58, 0x42, + 0x76, 0x63, 0x6e, 0x51, 0x75, 0x62, 0x47, 0x39, 0x6e, 0x41, 0x51, 0x52, + 0x30, 0x5a, 0x58, 0x68, 0x30, 0x41, 0x41, 0x41, 0x42, 0x41, 0x57, 0x59, + 0x4c, 0x63, 0x6d, 0x56, 0x77, 0x62, 0x33, 0x4a, 0x30, 0x4c, 0x6d, 0x39, + 0x79, 0x5a, 0x58, 0x41, 0x42, 0x43, 0x33, 0x4a, 0x6c, 0x63, 0x47, 0x39, + 0x79, 0x64, 0x43, 0x35, 0x76, 0x63, 0x6d, 0x56, 0x77, 0x41, 0x51, 0x52, + 0x30, 0x5a, 0x58, 0x68, 0x30, 0x41, 0x41, 0x41, 0x42, 0x41, 0x57, 0x59, + 0x4c, 0x63, 0x6d, 0x56, 0x77, 0x62, 0x33, 0x4a, 0x30, 0x4c, 0x6e, 0x42, + 0x73, 0x62, 0x32, 0x63, 0x42, 0x43, 0x33, 0x4a, 0x6c, 0x63, 0x47, 0x39, + 0x79, 0x64, 0x43, 0x35, 0x77, 0x62, 0x47, 0x39, 0x6e, 0x41, 0x51, 0x52, + 0x30, 0x5a, 0x58, 0x68, 0x30, 0x41, 0x41, 0x41, 0x42, 0x41, 0x57, 0x59, + 0x4c, 0x63, 0x6d, 0x56, 0x77, 0x62, 0x33, 0x4a, 0x30, 0x4c, 0x6e, 0x42, + 0x76, 0x59, 0x32, 0x38, 0x42, 0x43, 0x33, 0x4a, 0x6c, 0x63, 0x47, 0x39, + 0x79, 0x64, 0x43, 0x35, 0x77, 0x62, 0x32, 0x4e, 0x76, 0x41, 0x51, 0x52, + 0x30, 0x5a, 0x58, 0x68, 0x30, 0x41, 0x41, 0x41, 0x42, 0x41, 0x57, 0x59, + 0x4c, 0x63, 0x6d, 0x56, 0x77, 0x62, 0x33, 0x4a, 0x30, 0x4c, 0x6e, 0x42, + 0x76, 0x63, 0x33, 0x51, 0x42, 0x43, 0x33, 0x4a, 0x6c, 0x63, 0x47, 0x39, + 0x79, 0x64, 0x43, 0x35, 0x77, 0x62, 0x33, 0x4e, 0x30, 0x41, 0x51, 0x52, + 0x30, 0x5a, 0x58, 0x68, 0x30, 0x41, 0x41, 0x41, 0x42, 0x41, 0x57, 0x59, + 0x4c, 0x63, 0x6d, 0x56, 0x77, 0x62, 0x33, 0x4a, 0x30, 0x4c, 0x6e, 0x42, + 0x79, 0x59, 0x32, 0x38, 0x42, 0x43, 0x33, 0x4a, 0x6c, 0x63, 0x47, 0x39, + 0x79, 0x64, 0x43, 0x35, 0x77, 0x63, 0x6d, 0x4e, 0x76, 0x41, 0x51, 0x52, + 0x30, 0x5a, 0x58, 0x68, 0x30, 0x41, 0x41, 0x41, 0x42, 0x41, 0x57, 0x59, + 0x4b, 0x63, 0x6d, 0x56, 0x77, 0x62, 0x33, 0x4a, 0x30, 0x4c, 0x6e, 0x4a, + 0x6c, 0x63, 0x41, 0x45, 0x4b, 0x63, 0x6d, 0x56, 0x77, 0x62, 0x33, 0x4a, + 0x30, 0x4c, 0x6e, 0x4a, 0x6c, 0x63, 0x41, 0x45, 0x45, 0x64, 0x47, 0x56, + 0x34, 0x64, 0x41, 0x41, 0x41, 0x41, 0x51, 0x46, 0x6d, 0x43, 0x33, 0x4a, + 0x6c, 0x63, 0x47, 0x39, 0x79, 0x64, 0x43, 0x35, 0x79, 0x5a, 0x58, 0x59, + 0x77, 0x41, 0x51, 0x74, 0x79, 0x5a, 0x58, 0x42, 0x76, 0x63, 0x6e, 0x51, + 0x75, 0x63, 0x6d, 0x56, 0x32, 0x4d, 0x41, 0x45, 0x45, 0x64, 0x47, 0x56, + 0x34, 0x64, 0x41, 0x41, 0x41, 0x41, 0x51, 0x46, 0x6d, 0x43, 0x33, 0x4a, + 0x6c, 0x63, 0x47, 0x39, 0x79, 0x64, 0x43, 0x35, 0x79, 0x5a, 0x58, 0x59, + 0x79, 0x41, 0x51, 0x74, 0x79, 0x5a, 0x58, 0x42, 0x76, 0x63, 0x6e, 0x51, + 0x75, 0x63, 0x6d, 0x56, 0x32, 0x4d, 0x67, 0x45, 0x45, 0x64, 0x47, 0x56, + 0x34, 0x64, 0x41, 0x41, 0x41, 0x41, 0x51, 0x46, 0x6d, 0x44, 0x58, 0x4a, + 0x6c, 0x63, 0x47, 0x39, 0x79, 0x64, 0x46, 0x39, 0x73, 0x5a, 0x57, 0x35, + 0x6e, 0x64, 0x47, 0x67, 0x42, 0x44, 0x58, 0x4a, 0x6c, 0x63, 0x47, 0x39, + 0x79, 0x64, 0x46, 0x39, 0x73, 0x5a, 0x57, 0x35, 0x6e, 0x64, 0x47, 0x67, + 0x42, 0x42, 0x32, 0x6c, 0x75, 0x64, 0x47, 0x56, 0x6e, 0x5a, 0x58, 0x49, + 0x41, 0x41, 0x41, 0x45, 0x42, 0x5a, 0x67, 0x64, 0x79, 0x5a, 0x58, 0x4e, + 0x30, 0x59, 0x58, 0x4a, 0x30, 0x41, 0x51, 0x64, 0x79, 0x5a, 0x58, 0x4e, + 0x30, 0x59, 0x58, 0x4a, 0x30, 0x41, 0x51, 0x56, 0x7a, 0x61, 0x47, 0x39, + 0x79, 0x64, 0x41, 0x41, 0x41, 0x41, 0x51, 0x46, 0x6d, 0x43, 0x33, 0x4a, + 0x6c, 0x64, 0x48, 0x56, 0x79, 0x62, 0x6c, 0x39, 0x6a, 0x62, 0x32, 0x52, + 0x6c, 0x41, 0x51, 0x74, 0x79, 0x5a, 0x58, 0x52, 0x31, 0x63, 0x6d, 0x35, + 0x66, 0x59, 0x32, 0x39, 0x6b, 0x5a, 0x51, 0x45, 0x48, 0x61, 0x57, 0x35, + 0x30, 0x5a, 0x57, 0x64, 0x6c, 0x63, 0x67, 0x41, 0x41, 0x41, 0x51, 0x46, + 0x6d, 0x43, 0x33, 0x4e, 0x76, 0x64, 0x58, 0x4a, 0x6a, 0x5a, 0x53, 0x35, + 0x6f, 0x62, 0x33, 0x4e, 0x30, 0x41, 0x51, 0x74, 0x7a, 0x62, 0x33, 0x56, + 0x79, 0x59, 0x32, 0x55, 0x75, 0x61, 0x47, 0x39, 0x7a, 0x64, 0x41, 0x45, + 0x45, 0x64, 0x47, 0x56, 0x34, 0x64, 0x41, 0x41, 0x41, 0x41, 0x51, 0x46, + 0x6d, 0x44, 0x48, 0x4e, 0x76, 0x64, 0x58, 0x4a, 0x6a, 0x5a, 0x53, 0x35, + 0x73, 0x62, 0x32, 0x64, 0x70, 0x62, 0x67, 0x45, 0x4d, 0x63, 0x32, 0x39, + 0x31, 0x63, 0x6d, 0x4e, 0x6c, 0x4c, 0x6d, 0x78, 0x76, 0x5a, 0x32, 0x6c, + 0x75, 0x41, 0x51, 0x52, 0x30, 0x5a, 0x58, 0x68, 0x30, 0x41, 0x41, 0x41, + 0x42, 0x41, 0x57, 0x59, 0x47, 0x63, 0x33, 0x52, 0x68, 0x64, 0x48, 0x56, + 0x7a, 0x41, 0x51, 0x5a, 0x7a, 0x64, 0x47, 0x46, 0x30, 0x64, 0x58, 0x4d, + 0x42, 0x42, 0x32, 0x6c, 0x75, 0x64, 0x47, 0x56, 0x6e, 0x5a, 0x58, 0x49, + 0x41, 0x41, 0x41, 0x45, 0x42, 0x5a, 0x67, 0x56, 0x7a, 0x64, 0x48, 0x6c, + 0x77, 0x5a, 0x51, 0x45, 0x46, 0x63, 0x33, 0x52, 0x35, 0x63, 0x47, 0x55, + 0x42, 0x42, 0x32, 0x74, 0x6c, 0x65, 0x58, 0x64, 0x76, 0x63, 0x6d, 0x51, + 0x42, 0x41, 0x41, 0x45, 0x4c, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x77, 0x45, 0x3d, 0xff, 0xff, 0xff}; + +#endif /* __BODIES_H__ */ diff --git a/test/test_sqlgetdata.cc b/test/test_sqlgetdata.cc index 9a734275..9f322abd 100644 --- a/test/test_sqlgetdata.cc +++ b/test/test_sqlgetdata.cc @@ -4,10 +4,10 @@ * you may not use this file except in compliance with the Elastic License. */ +#include #include #include "connected_dbc.h" - -#include +#include "bodies.h" /* placeholders; will be undef'd and redef'd */ #define SQL_RAW @@ -703,6 +703,36 @@ TEST_F(GetData, TrimOnVarcharLimit_chunked) { EXPECT_STREQ((wchar_t *)buff[chunk_sz], L'\0'); } +TEST_F(GetData, CborChunkedStrings) { + cstr_st answer; + answer.cnt = sizeof(cbor_answer_string_chunked) - 1; + answer.str = (SQLCHAR *)malloc(answer.cnt); + assert(answer.str); + memcpy(answer.str, cbor_answer_string_chunked, answer.cnt); + DBCH(dbc)->pack_json = false; + ret = attach_answer(STMH(stmt), &answer, false); + ASSERT_TRUE(SQL_SUCCEEDED(ret)); + + /* check reassembled value lenght */ + ret = SQLFetch(stmt); + ASSERT_TRUE(SQL_SUCCEEDED(ret)); + ret = SQLGetData(stmt, CBOR_ANSWER_STRING_CHUNKED_STRVAL_COL, SQL_C_CHAR, + /* buff: can't be NULL */(SQLPOINTER)0x1, /* buff size */0, &ind_len); + assertState(SQL_HANDLE_STMT, L"01004"); + EXPECT_EQ(ind_len, CBOR_ANSWER_STRING_CHUNKED_STRVAL_LEN); + + ASSERT_FALSE(STMH(stmt)->rset.pack_json); + ASSERT_TRUE(STMH(stmt)->rset.pack.cbor.curs_allocd); + ASSERT_NE(STMH(stmt)->rset.pack.cbor.curs.str, (SQLCHAR *)NULL); + ASSERT_EQ(STMH(stmt)->rset.pack.cbor.curs.cnt, + CBOR_ANSWER_STRING_CHUNKED_CURS_LEN); + /* "manually" free the cursor, so that the driver won't attempt to send a + * closing request when deleting the statement */ + free(STMH(stmt)->rset.pack.cbor.curs.str); + STMH(stmt)->rset.pack.cbor.curs.str = NULL; + STMH(stmt)->rset.pack.cbor.curs.cnt = 0; +} + } // test namespace /* vim: set noet fenc=utf-8 ff=dos sts=0 sw=4 ts=4 : */ From 15434d641010dc2411449e05cdcb5806528f6808 Mon Sep 17 00:00:00 2001 From: Bogdan Pintea Date: Tue, 31 Mar 2020 18:42:02 +0200 Subject: [PATCH 4/5] null-terminate the test cbor body - not required by the test, but easier for troubleshooting. --- test/bodies.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/bodies.h b/test/bodies.h index 0a9c9a84..d5914858 100644 --- a/test/bodies.h +++ b/test/bodies.h @@ -1352,6 +1352,6 @@ const static unsigned char cbor_answer_string_chunked[] = { 0x77, 0x5a, 0x51, 0x45, 0x46, 0x63, 0x33, 0x52, 0x35, 0x63, 0x47, 0x55, 0x42, 0x42, 0x32, 0x74, 0x6c, 0x65, 0x58, 0x64, 0x76, 0x63, 0x6d, 0x51, 0x42, 0x41, 0x41, 0x45, 0x4c, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, - 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x77, 0x45, 0x3d, 0xff, 0xff, 0xff}; + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x77, 0x45, 0x3d, 0xff, 0xff, 0x00}; #endif /* __BODIES_H__ */ From 0977aec811cc6e9e2a2b9d4819bc4aff461c94f0 Mon Sep 17 00:00:00 2001 From: Bogdan Pintea Date: Tue, 31 Mar 2020 18:47:50 +0200 Subject: [PATCH 5/5] s/lenght/length/ Fix misspelling. --- test/bodies.h | 2 +- test/test_sqlgetdata.cc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/bodies.h b/test/bodies.h index d5914858..fba493b4 100644 --- a/test/bodies.h +++ b/test/bodies.h @@ -7,7 +7,7 @@ #ifndef __BODIES_H__ #define __BODIES_H__ -/* lenghts of objects of interest for the test */ +/* lengths of objects of interest for the test */ #define CBOR_ANSWER_STRING_CHUNKED_CURS_LEN 5624 #define CBOR_ANSWER_STRING_CHUNKED_STRVAL_LEN 6041 #define CBOR_ANSWER_STRING_CHUNKED_STRVAL_COL 36 diff --git a/test/test_sqlgetdata.cc b/test/test_sqlgetdata.cc index 9f322abd..b16d6749 100644 --- a/test/test_sqlgetdata.cc +++ b/test/test_sqlgetdata.cc @@ -713,7 +713,7 @@ TEST_F(GetData, CborChunkedStrings) { ret = attach_answer(STMH(stmt), &answer, false); ASSERT_TRUE(SQL_SUCCEEDED(ret)); - /* check reassembled value lenght */ + /* check reassembled value length */ ret = SQLFetch(stmt); ASSERT_TRUE(SQL_SUCCEEDED(ret)); ret = SQLGetData(stmt, CBOR_ANSWER_STRING_CHUNKED_STRVAL_COL, SQL_C_CHAR,