aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2018-04-27 16:19:43 -0700
committerElliott Hughes <enh@google.com>2018-05-29 13:40:19 -0700
commitcac3980d6d12690fe9c8aa2ca6bae981c8abb508 (patch)
tree9e228338321c29a79ed20af99d3b2eda7e84f984
parent3685a4d3467796179daa96d4c9950b4d2cc34c2e (diff)
downloadexternal_curl-cac3980d6d12690fe9c8aa2ca6bae981c8abb508.tar.gz
external_curl-cac3980d6d12690fe9c8aa2ca6bae981c8abb508.tar.bz2
external_curl-cac3980d6d12690fe9c8aa2ca6bae981c8abb508.zip
Update to 7.59.0 - March 14 2018.
Changes: curl: add --proxy-pinnedpubkey added: CURLOPT_TIMEVALUE_LARGE and CURLINFO_FILETIME_T CURLOPT_RESOLVE: Add support for multiple IP addresses per entry Add option CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS Add new tool option --happy-eyeballs-timeout-ms Add CURLOPT_RESOLVER_START_FUNCTION and CURLOPT_RESOLVER_START_DATA Bugfixes: openldap: check ldap_get_attribute_ber() results for NULL before using FTP: reject path components with control codes readwrite: make sure excess reads don't go beyond buffer end lib555: drop text conversion and encode data as ascii codes lib517: make variable static to avoid compiler warning lib544: sync ascii code data with textual data GSKit: restore pinnedpubkey functionality darwinssl: Don't import client certificates into Keychain on macOS parsedate: fix date parsing for systems with 32 bit long openssl: fix pinned public key build error in FIPS mode SChannel/WinSSL: Implement public key pinning cookies: remove verbose "cookie size:" output progress-bar: don't use stderr explicitly, use bar->out Fixes for MSDOS build: open VC15 projects with VS 2017 curl_ctype: private is*() type macros and functions configure: set PATH_SEPARATOR to colon for PATH w/o separator winbuild: make linker generate proper PDB curl_easy_reset: clear digest auth state curl/curl.h: fix comment typo for CURLOPT_DNS_LOCAL_IP6 range: commonize FTP and FILE range handling progress-bar docs: update to match implementation fnmatch: do not match the empty string with a character set fnmatch: accept an alphanum to be followed by a non-alphanum in char set build: fix termios issue on android cross-compile getdate: return -1 for out of range formdata: use the mime-content type function time-cond: fix reading the file modification time on Windows build-openssl.bat: Extend VC15 support to include Enterprise and Professional build-wolfssl.bat: Extend VC15 support to include Enterprise and Professional openssl: Don't add verify locations when verifypeer==0 fnmatch: optimize processing of consecutive *s and ?s pattern characters schannel: fix compiler warnings content_encoding: Add "none" alias to "identity" get_posix_time: only check for overflows if they can happen http_chunks: don't write chunks twice with CURLOPT_HTTP_TRANSFER_DECODING README: language fix sha256: build with OpenSSL < 0.9.8 smtp: fix processing of initial dot in data --tlsauthtype: works only if libcurl is built with TLS-SRP support tests: new tests for http raw mode libcurl-security.3: man page discussion security concerns when using libcurl curl_gssapi: make sure this file too uses our *printf() BINDINGS: fix curb link (and remove ruby-curl-multi) nss: use PK11_CreateManagedGenericObject() if available travis: add build with iconv enabled ssh: add two missing state names CURLOPT_HEADERFUNCTION.3: mention folded headers http: fix the max header length detection logic header callback: don't chop headers into smaller pieces CURLOPT_HEADER.3: clarify problems with different data sizes curl --version: show PSL if the run-time lib has it enabled examples/sftpuploadresume: resume upload via CURLOPT_APPEND Return error if called recursively from within callbacks sasl: prefer PLAIN mechanism over LOGIN winbuild: Use CALL to run batch scripts curl_share_setopt.3: connection cache is shared within multi handles winbuild: Use macros for the names of some build utilities projects/README: remove reference to dead IDN link/package lib655: silence compiler warning configure: Fix version check for OpenSSL 1.1.1 docs/MANUAL: formfind.pl is not accessible on the site anymore unit1309: fix warning on Windows x64 unit1307: proper cleanup on OOM to fix torture tests curl_ctype: fix macro redefinition warnings build: get CFLAGS (including -werror) used for examples and tests NO_PROXY: fix for IPv6 numericals in the URL krb5: use nondeprecated functions winbuild: prefer documented zlib library names http2: mark the connection for close on GOAWAY limit-rate: kick in even before "limit" data has been received HTTP: allow "header;" to replace an internal header with a blank one http2: verbose output new MAX_CONCURRENT_STREAMS values SECURITY: distros' max embargo time is 14 days curl tool: accept --compressed also if Brotli is enabled and zlib is not WolfSSL: adding TLSv1.3 checksrc.pl: add -i and -m options CURLOPT_COOKIEFILE.3: "-" as file name means stdin Bug: http://b/78771319 Test: builds, boots, `vendor/google/tools/fake-ota on streaming` works Change-Id: I18731dd7c91df36ca92a5dffc8631dee22785e34
-rw-r--r--.gitignore1
-rw-r--r--Android.bp4
-rw-r--r--CHANGES1841
-rw-r--r--CMake/Utilities.cmake2
-rw-r--r--README.version4
-rw-r--r--RELEASE-NOTES316
-rwxr-xr-xconfig.guess113
-rwxr-xr-xconfig.sub69
-rwxr-xr-xconfigure92
-rwxr-xr-xconfigure.ac28
-rw-r--r--docs/BINDINGS.md4
-rw-r--r--docs/BUGS2
-rw-r--r--docs/FAQ6
-rw-r--r--docs/KNOWN_BUGS11
-rw-r--r--docs/MAIL-ETIQUETTE2
-rw-r--r--docs/MANUAL3
-rw-r--r--docs/Makefile.am4
-rw-r--r--docs/SECURITY-PROCESS.md116
-rw-r--r--docs/THANKS24
-rw-r--r--docs/TODO108
-rw-r--r--docs/cmdline-opts/Makefile.inc6
-rw-r--r--docs/cmdline-opts/form.d42
-rw-r--r--docs/cmdline-opts/happy-eyeballs-timeout-ms.d17
-rw-r--r--docs/cmdline-opts/page-footer9
-rw-r--r--docs/cmdline-opts/progress-bar.d5
-rw-r--r--docs/cmdline-opts/proxy-pinnedpubkey.d16
-rw-r--r--docs/cmdline-opts/resolve.d4
-rw-r--r--docs/cmdline-opts/tlsauthtype.d4
-rw-r--r--docs/curl-config.12
-rw-r--r--docs/curl.191
-rw-r--r--docs/examples/Makefile.am5
-rw-r--r--docs/examples/Makefile.inc4
-rw-r--r--docs/examples/ftpupload.c2
-rw-r--r--docs/examples/sftpuploadresume.c130
-rw-r--r--docs/libcurl/Makefile.inc3
-rw-r--r--docs/libcurl/curl_easy_cleanup.32
-rw-r--r--docs/libcurl/curl_easy_duphandle.32
-rw-r--r--docs/libcurl/curl_easy_escape.32
-rw-r--r--docs/libcurl/curl_easy_getinfo.39
-rw-r--r--docs/libcurl/curl_easy_init.32
-rw-r--r--docs/libcurl/curl_easy_pause.32
-rw-r--r--docs/libcurl/curl_easy_perform.32
-rw-r--r--docs/libcurl/curl_easy_recv.32
-rw-r--r--docs/libcurl/curl_easy_reset.32
-rw-r--r--docs/libcurl/curl_easy_send.32
-rw-r--r--docs/libcurl/curl_easy_setopt.312
-rw-r--r--docs/libcurl/curl_easy_strerror.32
-rw-r--r--docs/libcurl/curl_easy_unescape.32
-rw-r--r--docs/libcurl/curl_escape.32
-rw-r--r--docs/libcurl/curl_formadd.32
-rw-r--r--docs/libcurl/curl_formfree.32
-rw-r--r--docs/libcurl/curl_formget.32
-rw-r--r--docs/libcurl/curl_free.32
-rw-r--r--docs/libcurl/curl_getdate.318
-rw-r--r--docs/libcurl/curl_getenv.32
-rw-r--r--docs/libcurl/curl_global_cleanup.32
-rw-r--r--docs/libcurl/curl_global_init.34
-rw-r--r--docs/libcurl/curl_global_init_mem.32
-rw-r--r--docs/libcurl/curl_global_sslset.32
-rw-r--r--docs/libcurl/curl_mime_addpart.32
-rw-r--r--docs/libcurl/curl_mime_data.32
-rw-r--r--docs/libcurl/curl_mime_data_cb.32
-rw-r--r--docs/libcurl/curl_mime_encoder.32
-rw-r--r--docs/libcurl/curl_mime_filedata.32
-rw-r--r--docs/libcurl/curl_mime_filename.32
-rw-r--r--docs/libcurl/curl_mime_free.32
-rw-r--r--docs/libcurl/curl_mime_headers.32
-rw-r--r--docs/libcurl/curl_mime_init.32
-rw-r--r--docs/libcurl/curl_mime_name.32
-rw-r--r--docs/libcurl/curl_mime_subparts.32
-rw-r--r--docs/libcurl/curl_mime_type.32
-rw-r--r--docs/libcurl/curl_mprintf.32
-rw-r--r--docs/libcurl/curl_multi_add_handle.32
-rw-r--r--docs/libcurl/curl_multi_assign.32
-rw-r--r--docs/libcurl/curl_multi_cleanup.32
-rw-r--r--docs/libcurl/curl_multi_fdset.32
-rw-r--r--docs/libcurl/curl_multi_info_read.32
-rw-r--r--docs/libcurl/curl_multi_init.32
-rw-r--r--docs/libcurl/curl_multi_perform.32
-rw-r--r--docs/libcurl/curl_multi_remove_handle.32
-rw-r--r--docs/libcurl/curl_multi_setopt.32
-rw-r--r--docs/libcurl/curl_multi_socket.32
-rw-r--r--docs/libcurl/curl_multi_socket_action.32
-rw-r--r--docs/libcurl/curl_multi_strerror.32
-rw-r--r--docs/libcurl/curl_multi_timeout.32
-rw-r--r--docs/libcurl/curl_multi_wait.32
-rw-r--r--docs/libcurl/curl_share_cleanup.32
-rw-r--r--docs/libcurl/curl_share_init.32
-rw-r--r--docs/libcurl/curl_share_setopt.311
-rw-r--r--docs/libcurl/curl_share_strerror.32
-rw-r--r--docs/libcurl/curl_slist_append.32
-rw-r--r--docs/libcurl/curl_slist_free_all.32
-rw-r--r--docs/libcurl/curl_strequal.32
-rw-r--r--docs/libcurl/curl_unescape.32
-rw-r--r--docs/libcurl/curl_version.32
-rw-r--r--docs/libcurl/curl_version_info.32
-rw-r--r--docs/libcurl/libcurl-easy.32
-rw-r--r--docs/libcurl/libcurl-env.36
-rw-r--r--docs/libcurl/libcurl-errors.36
-rw-r--r--docs/libcurl/libcurl-multi.32
-rw-r--r--docs/libcurl/libcurl-security.3339
-rw-r--r--docs/libcurl/libcurl-share.32
-rw-r--r--docs/libcurl/libcurl-symbols.318
-rw-r--r--docs/libcurl/libcurl-thread.32
-rw-r--r--docs/libcurl/libcurl-tutorial.3235
-rw-r--r--docs/libcurl/libcurl.32
-rw-r--r--docs/libcurl/opts/CURLINFO_ACTIVESOCKET.32
-rw-r--r--docs/libcurl/opts/CURLINFO_APPCONNECT_TIME.32
-rw-r--r--docs/libcurl/opts/CURLINFO_CERTINFO.32
-rw-r--r--docs/libcurl/opts/CURLINFO_CONDITION_UNMET.34
-rw-r--r--docs/libcurl/opts/CURLINFO_CONNECT_TIME.32
-rw-r--r--docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD.32
-rw-r--r--docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD_T.32
-rw-r--r--docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD.32
-rw-r--r--docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD_T.32
-rw-r--r--docs/libcurl/opts/CURLINFO_CONTENT_TYPE.32
-rw-r--r--docs/libcurl/opts/CURLINFO_COOKIELIST.32
-rw-r--r--docs/libcurl/opts/CURLINFO_EFFECTIVE_URL.32
-rw-r--r--docs/libcurl/opts/CURLINFO_FILETIME.313
-rw-r--r--docs/libcurl/opts/CURLINFO_FILETIME_T.372
-rw-r--r--docs/libcurl/opts/CURLINFO_FTP_ENTRY_PATH.32
-rw-r--r--docs/libcurl/opts/CURLINFO_HEADER_SIZE.32
-rw-r--r--docs/libcurl/opts/CURLINFO_HTTPAUTH_AVAIL.32
-rw-r--r--docs/libcurl/opts/CURLINFO_HTTP_CONNECTCODE.32
-rw-r--r--docs/libcurl/opts/CURLINFO_HTTP_VERSION.32
-rw-r--r--docs/libcurl/opts/CURLINFO_LASTSOCKET.32
-rw-r--r--docs/libcurl/opts/CURLINFO_LOCAL_IP.32
-rw-r--r--docs/libcurl/opts/CURLINFO_LOCAL_PORT.32
-rw-r--r--docs/libcurl/opts/CURLINFO_NAMELOOKUP_TIME.32
-rw-r--r--docs/libcurl/opts/CURLINFO_NUM_CONNECTS.32
-rw-r--r--docs/libcurl/opts/CURLINFO_OS_ERRNO.32
-rw-r--r--docs/libcurl/opts/CURLINFO_PRETRANSFER_TIME.32
-rw-r--r--docs/libcurl/opts/CURLINFO_PRIMARY_IP.32
-rw-r--r--docs/libcurl/opts/CURLINFO_PRIMARY_PORT.32
-rw-r--r--docs/libcurl/opts/CURLINFO_PRIVATE.32
-rw-r--r--docs/libcurl/opts/CURLINFO_PROTOCOL.32
-rw-r--r--docs/libcurl/opts/CURLINFO_PROXYAUTH_AVAIL.32
-rw-r--r--docs/libcurl/opts/CURLINFO_PROXY_SSL_VERIFYRESULT.32
-rw-r--r--docs/libcurl/opts/CURLINFO_REDIRECT_COUNT.32
-rw-r--r--docs/libcurl/opts/CURLINFO_REDIRECT_TIME.32
-rw-r--r--docs/libcurl/opts/CURLINFO_REDIRECT_URL.32
-rw-r--r--docs/libcurl/opts/CURLINFO_REQUEST_SIZE.32
-rw-r--r--docs/libcurl/opts/CURLINFO_RESPONSE_CODE.32
-rw-r--r--docs/libcurl/opts/CURLINFO_RTSP_CLIENT_CSEQ.32
-rw-r--r--docs/libcurl/opts/CURLINFO_RTSP_CSEQ_RECV.32
-rw-r--r--docs/libcurl/opts/CURLINFO_RTSP_SERVER_CSEQ.32
-rw-r--r--docs/libcurl/opts/CURLINFO_RTSP_SESSION_ID.32
-rw-r--r--docs/libcurl/opts/CURLINFO_SCHEME.32
-rw-r--r--docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD.32
-rw-r--r--docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD_T.32
-rw-r--r--docs/libcurl/opts/CURLINFO_SIZE_UPLOAD.32
-rw-r--r--docs/libcurl/opts/CURLINFO_SIZE_UPLOAD_T.32
-rw-r--r--docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD.32
-rw-r--r--docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD_T.32
-rw-r--r--docs/libcurl/opts/CURLINFO_SPEED_UPLOAD.32
-rw-r--r--docs/libcurl/opts/CURLINFO_SPEED_UPLOAD_T.32
-rw-r--r--docs/libcurl/opts/CURLINFO_SSL_ENGINES.32
-rw-r--r--docs/libcurl/opts/CURLINFO_SSL_VERIFYRESULT.32
-rw-r--r--docs/libcurl/opts/CURLINFO_STARTTRANSFER_TIME.32
-rw-r--r--docs/libcurl/opts/CURLINFO_TLS_SESSION.32
-rw-r--r--docs/libcurl/opts/CURLINFO_TLS_SSL_PTR.32
-rw-r--r--docs/libcurl/opts/CURLINFO_TOTAL_TIME.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_MAXCONNECTS.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_MAX_HOST_CONNECTIONS.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_MAX_PIPELINE_LENGTH.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_MAX_TOTAL_CONNECTIONS.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_PIPELINING.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_PIPELINING_SERVER_BL.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_PIPELINING_SITE_BL.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_PUSHDATA.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_PUSHFUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_SOCKETDATA.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_SOCKETFUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_TIMERDATA.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_TIMERFUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_ABSTRACT_UNIX_SOCKET.32
-rw-r--r--docs/libcurl/opts/CURLOPT_ACCEPTTIMEOUT_MS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_ACCEPT_ENCODING.32
-rw-r--r--docs/libcurl/opts/CURLOPT_ADDRESS_SCOPE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_APPEND.32
-rw-r--r--docs/libcurl/opts/CURLOPT_AUTOREFERER.32
-rw-r--r--docs/libcurl/opts/CURLOPT_BUFFERSIZE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CAINFO.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CAPATH.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CERTINFO.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CHUNK_BGN_FUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CHUNK_DATA.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CHUNK_END_FUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CLOSESOCKETDATA.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CLOSESOCKETFUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT_MS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CONNECT_ONLY.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CONNECT_TO.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CONV_FROM_NETWORK_FUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CONV_FROM_UTF8_FUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CONV_TO_NETWORK_FUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_COOKIE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_COOKIEFILE.37
-rw-r--r--docs/libcurl/opts/CURLOPT_COOKIEJAR.32
-rw-r--r--docs/libcurl/opts/CURLOPT_COOKIELIST.32
-rw-r--r--docs/libcurl/opts/CURLOPT_COOKIESESSION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_COPYPOSTFIELDS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CRLF.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CRLFILE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CUSTOMREQUEST.32
-rw-r--r--docs/libcurl/opts/CURLOPT_DEBUGDATA.32
-rw-r--r--docs/libcurl/opts/CURLOPT_DEBUGFUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_DEFAULT_PROTOCOL.32
-rw-r--r--docs/libcurl/opts/CURLOPT_DIRLISTONLY.32
-rw-r--r--docs/libcurl/opts/CURLOPT_DNS_CACHE_TIMEOUT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_DNS_INTERFACE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP4.32
-rw-r--r--docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP6.32
-rw-r--r--docs/libcurl/opts/CURLOPT_DNS_SERVERS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_DNS_USE_GLOBAL_CACHE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_EGDSOCKET.32
-rw-r--r--docs/libcurl/opts/CURLOPT_ERRORBUFFER.32
-rw-r--r--docs/libcurl/opts/CURLOPT_EXPECT_100_TIMEOUT_MS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FAILONERROR.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FILETIME.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FNMATCH_DATA.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FNMATCH_FUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FOLLOWLOCATION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FORBID_REUSE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FRESH_CONNECT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FTPPORT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FTPSSLAUTH.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_ACCOUNT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_ALTERNATIVE_TO_USER.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_CREATE_MISSING_DIRS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_FILEMETHOD.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_RESPONSE_TIMEOUT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_SKIP_PASV_IP.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_SSL_CCC.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_USE_EPRT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_USE_EPSV.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_USE_PRET.32
-rw-r--r--docs/libcurl/opts/CURLOPT_GSSAPI_DELEGATION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.360
-rw-r--r--docs/libcurl/opts/CURLOPT_HEADER.320
-rw-r--r--docs/libcurl/opts/CURLOPT_HEADERDATA.32
-rw-r--r--docs/libcurl/opts/CURLOPT_HEADERFUNCTION.39
-rw-r--r--docs/libcurl/opts/CURLOPT_HEADEROPT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTP200ALIASES.32
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTPAUTH.32
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTPGET.32
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTPHEADER.32
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTPPOST.32
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTPPROXYTUNNEL.32
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTP_CONTENT_DECODING.32
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTP_TRANSFER_DECODING.32
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTP_VERSION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_IGNORE_CONTENT_LENGTH.32
-rw-r--r--docs/libcurl/opts/CURLOPT_INFILESIZE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_INFILESIZE_LARGE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_INTERFACE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_INTERLEAVEDATA.32
-rw-r--r--docs/libcurl/opts/CURLOPT_INTERLEAVEFUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_IOCTLDATA.32
-rw-r--r--docs/libcurl/opts/CURLOPT_IOCTLFUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_IPRESOLVE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_ISSUERCERT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_KEEP_SENDING_ON_ERROR.32
-rw-r--r--docs/libcurl/opts/CURLOPT_KEYPASSWD.32
-rw-r--r--docs/libcurl/opts/CURLOPT_KRBLEVEL.32
-rw-r--r--docs/libcurl/opts/CURLOPT_LOCALPORT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_LOCALPORTRANGE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_LOGIN_OPTIONS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_LOW_SPEED_LIMIT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_LOW_SPEED_TIME.32
-rw-r--r--docs/libcurl/opts/CURLOPT_MAIL_AUTH.32
-rw-r--r--docs/libcurl/opts/CURLOPT_MAIL_FROM.32
-rw-r--r--docs/libcurl/opts/CURLOPT_MAIL_RCPT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_MAXCONNECTS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_MAXFILESIZE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_MAXFILESIZE_LARGE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_MAXREDIRS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_MAX_RECV_SPEED_LARGE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_MAX_SEND_SPEED_LARGE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_MIMEPOST.32
-rw-r--r--docs/libcurl/opts/CURLOPT_NETRC.32
-rw-r--r--docs/libcurl/opts/CURLOPT_NETRC_FILE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_NEW_DIRECTORY_PERMS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_NEW_FILE_PERMS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_NOBODY.32
-rw-r--r--docs/libcurl/opts/CURLOPT_NOPROGRESS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_NOPROXY.39
-rw-r--r--docs/libcurl/opts/CURLOPT_NOSIGNAL.32
-rw-r--r--docs/libcurl/opts/CURLOPT_OPENSOCKETDATA.32
-rw-r--r--docs/libcurl/opts/CURLOPT_OPENSOCKETFUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PASSWORD.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PATH_AS_IS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY.312
-rw-r--r--docs/libcurl/opts/CURLOPT_PIPEWAIT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PORT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_POST.32
-rw-r--r--docs/libcurl/opts/CURLOPT_POSTFIELDS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_POSTFIELDSIZE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_POSTFIELDSIZE_LARGE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_POSTQUOTE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_POSTREDIR.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PREQUOTE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PRE_PROXY.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PRIVATE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROGRESSDATA.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROGRESSFUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROTOCOLS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXYAUTH.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXYHEADER.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXYPASSWORD.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXYPORT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXYTYPE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXYUSERNAME.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXYUSERPWD.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_CAINFO.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_CAPATH.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_CRLFILE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_KEYPASSWD.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_PINNEDPUBLICKEY.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_SERVICE_NAME.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_SSLCERT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_SSLCERTTYPE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_SSLKEY.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_SSLKEYTYPE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_SSLVERSION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_SSL_CIPHER_LIST.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_SSL_OPTIONS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_SSL_VERIFYHOST.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_SSL_VERIFYPEER.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_PASSWORD.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_TYPE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_USERNAME.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_TRANSFER_MODE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PUT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_QUOTE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_RANDOM_FILE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_RANGE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_READDATA.32
-rw-r--r--docs/libcurl/opts/CURLOPT_READFUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_REFERER.32
-rw-r--r--docs/libcurl/opts/CURLOPT_REQUEST_TARGET.32
-rw-r--r--docs/libcurl/opts/CURLOPT_RESOLVE.314
-rw-r--r--docs/libcurl/opts/CURLOPT_RESOLVER_START_DATA.364
-rw-r--r--docs/libcurl/opts/CURLOPT_RESOLVER_START_FUNCTION.384
-rw-r--r--docs/libcurl/opts/CURLOPT_RESUME_FROM.32
-rw-r--r--docs/libcurl/opts/CURLOPT_RESUME_FROM_LARGE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_RTSP_CLIENT_CSEQ.32
-rw-r--r--docs/libcurl/opts/CURLOPT_RTSP_REQUEST.32
-rw-r--r--docs/libcurl/opts/CURLOPT_RTSP_SERVER_CSEQ.32
-rw-r--r--docs/libcurl/opts/CURLOPT_RTSP_SESSION_ID.32
-rw-r--r--docs/libcurl/opts/CURLOPT_RTSP_STREAM_URI.32
-rw-r--r--docs/libcurl/opts/CURLOPT_RTSP_TRANSPORT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SASL_IR.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SEEKDATA.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SEEKFUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SERVICE_NAME.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SHARE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SOCKOPTDATA.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SOCKOPTFUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SOCKS5_AUTH.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_NEC.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_SERVICE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSH_AUTH_TYPES.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSH_COMPRESSION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSH_KEYDATA.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSH_KEYFUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSH_KNOWNHOSTS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSH_PRIVATE_KEYFILE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSH_PUBLIC_KEYFILE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSLCERT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSLCERTTYPE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSLENGINE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSLENGINE_DEFAULT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSLKEY.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSLKEYTYPE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSLVERSION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_CIPHER_LIST.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_CTX_DATA.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_CTX_FUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_ENABLE_ALPN.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_ENABLE_NPN.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_FALSESTART.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_OPTIONS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_SESSIONID_CACHE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_VERIFYHOST.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_VERIFYPEER.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_VERIFYSTATUS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_STDERR.32
-rw-r--r--docs/libcurl/opts/CURLOPT_STREAM_DEPENDS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_STREAM_DEPENDS_E.32
-rw-r--r--docs/libcurl/opts/CURLOPT_STREAM_WEIGHT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SUPPRESS_CONNECT_HEADERS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TCP_FASTOPEN.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TCP_KEEPALIVE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TCP_KEEPIDLE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TCP_KEEPINTVL.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TCP_NODELAY.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TELNETOPTIONS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TFTP_BLKSIZE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TFTP_NO_OPTIONS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TIMECONDITION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TIMEOUT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TIMEOUT_MS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TIMEVALUE.37
-rw-r--r--docs/libcurl/opts/CURLOPT_TIMEVALUE_LARGE.365
-rw-r--r--docs/libcurl/opts/CURLOPT_TLSAUTH_PASSWORD.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TLSAUTH_TYPE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TLSAUTH_USERNAME.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TRANSFERTEXT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TRANSFER_ENCODING.32
-rw-r--r--docs/libcurl/opts/CURLOPT_UNIX_SOCKET_PATH.32
-rw-r--r--docs/libcurl/opts/CURLOPT_UNRESTRICTED_AUTH.32
-rw-r--r--docs/libcurl/opts/CURLOPT_UPLOAD.32
-rw-r--r--docs/libcurl/opts/CURLOPT_URL.32
-rw-r--r--docs/libcurl/opts/CURLOPT_USERAGENT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_USERNAME.32
-rw-r--r--docs/libcurl/opts/CURLOPT_USERPWD.32
-rw-r--r--docs/libcurl/opts/CURLOPT_USE_SSL.32
-rw-r--r--docs/libcurl/opts/CURLOPT_VERBOSE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_WILDCARDMATCH.32
-rw-r--r--docs/libcurl/opts/CURLOPT_WRITEDATA.32
-rw-r--r--docs/libcurl/opts/CURLOPT_WRITEFUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_XFERINFODATA.32
-rw-r--r--docs/libcurl/opts/CURLOPT_XFERINFOFUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_XOAUTH2_BEARER.32
-rw-r--r--docs/libcurl/opts/Makefile.inc5
-rw-r--r--docs/libcurl/symbols-in-versions8
-rw-r--r--include/curl/curl.h29
-rw-r--r--include/curl/curlver.h12
-rw-r--r--include/curl/multi.h6
-rw-r--r--include/curl/typecheck-gcc.h13
-rw-r--r--lib/Makefile.inc8
-rwxr-xr-xlib/checksrc.pl34
-rw-r--r--lib/config-win32.h7
-rw-r--r--lib/connect.c35
-rw-r--r--lib/connect.h7
-rw-r--r--lib/content_encoding.c2
-rw-r--r--lib/cookie.c5
-rw-r--r--lib/curl_addrinfo.c6
-rw-r--r--lib/curl_config.h15
-rw-r--r--lib/curl_config.h.in6
-rw-r--r--lib/curl_ctype.c122
-rw-r--r--lib/curl_ctype.h48
-rw-r--r--lib/curl_fnmatch.c327
-rw-r--r--lib/curl_gssapi.c7
-rw-r--r--lib/curl_ntlm_wb.c2
-rw-r--r--lib/curl_range.c95
-rw-r--r--lib/curl_range.h30
-rw-r--r--lib/curl_sasl.c20
-rw-r--r--lib/curl_setup.h32
-rw-r--r--lib/curl_setup_once.h23
-rw-r--r--lib/easy.c21
-rw-r--r--lib/file.c70
-rw-r--r--lib/formdata.c64
-rw-r--r--lib/ftp.c97
-rw-r--r--lib/ftplistparser.c3
-rw-r--r--lib/getinfo.c12
-rw-r--r--lib/hostip.c128
-rw-r--r--lib/http.c159
-rw-r--r--lib/http.h5
-rw-r--r--lib/http2.c164
-rw-r--r--lib/http_chunks.c25
-rw-r--r--lib/http_proxy.c8
-rw-r--r--lib/krb5.c6
-rw-r--r--lib/libcurl.plist6
-rw-r--r--lib/mime.c13
-rw-r--r--lib/mime.h5
-rwxr-xr-xlib/mk-ca-bundle.vbs2
-rw-r--r--lib/multi.c74
-rw-r--r--lib/multihandle.h1
-rw-r--r--lib/multiif.h2
-rw-r--r--lib/non-ascii.c16
-rw-r--r--lib/objnames.inc2
-rw-r--r--lib/openldap.c45
-rw-r--r--lib/parsedate.c100
-rw-r--r--lib/progress.c45
-rw-r--r--lib/progress.h12
-rw-r--r--lib/rtsp.c30
-rw-r--r--lib/sendf.c65
-rw-r--r--lib/sendf.h4
-rw-r--r--lib/setopt.c33
-rw-r--r--lib/sha256.c12
-rw-r--r--lib/smb.c15
-rw-r--r--lib/smtp.c5
-rw-r--r--lib/ssh-libssh.c8
-rw-r--r--lib/ssh.c22
-rw-r--r--lib/strerror.c6
-rw-r--r--lib/telnet.c3
-rw-r--r--lib/transfer.c22
-rw-r--r--lib/transfer.h3
-rw-r--r--lib/url.c13
-rw-r--r--lib/urldata.h13
-rw-r--r--lib/vtls/cyassl.c12
-rw-r--r--lib/vtls/darwinssl.c73
-rw-r--r--lib/vtls/gskit.c2
-rw-r--r--lib/vtls/gtls.c15
-rw-r--r--lib/vtls/nss.c12
-rw-r--r--lib/vtls/openssl.c57
-rw-r--r--lib/vtls/schannel.c157
-rw-r--r--lib/warnless.h5
-rw-r--r--local-configure.patch31
-rw-r--r--m4/curl-openssl.m413
-rw-r--r--m4/zz40-xc-ovr.m412
-rw-r--r--packages/OS400/README.OS4006
-rw-r--r--packages/OS400/curl.inc.in11
-rw-r--r--packages/Symbian/group/libcurl.mmp4
-rw-r--r--packages/vms/config_h.com2
-rw-r--r--projects/README11
-rw-r--r--projects/Windows/VC10/lib/libcurl.vcxproj4
-rw-r--r--projects/Windows/VC10/src/curl.vcxproj4
-rw-r--r--projects/Windows/VC11/lib/libcurl.vcxproj4
-rw-r--r--projects/Windows/VC11/src/curl.vcxproj4
-rw-r--r--projects/Windows/VC12/lib/libcurl.vcxproj4
-rw-r--r--projects/Windows/VC12/src/curl.vcxproj4
-rw-r--r--projects/Windows/VC14/lib/libcurl.vcxproj4
-rw-r--r--projects/Windows/VC14/src/curl.vcxproj4
-rw-r--r--projects/Windows/VC15/curl-all.sln2
-rw-r--r--projects/Windows/VC15/lib/libcurl.sln2
-rw-r--r--projects/Windows/VC15/lib/libcurl.vcxproj4
-rw-r--r--projects/Windows/VC15/src/curl.sln2
-rw-r--r--projects/Windows/VC15/src/curl.vcxproj4
-rw-r--r--projects/Windows/VC6/lib/libcurl.dsp16
-rw-r--r--projects/Windows/VC6/src/curl.dsp16
-rw-r--r--projects/Windows/VC7.1/lib/libcurl.vcproj12
-rw-r--r--projects/Windows/VC7.1/src/curl.vcproj12
-rw-r--r--projects/Windows/VC7/lib/libcurl.vcproj12
-rw-r--r--projects/Windows/VC7/src/curl.vcproj12
-rw-r--r--projects/Windows/VC8/lib/libcurl.vcproj16
-rw-r--r--projects/Windows/VC8/src/curl.vcproj16
-rw-r--r--projects/Windows/VC9/lib/libcurl.vcproj16
-rw-r--r--projects/Windows/VC9/src/curl.vcproj16
-rw-r--r--projects/build-openssl.bat114
-rw-r--r--projects/build-wolfssl.bat38
-rw-r--r--projects/generate.bat2
-rw-r--r--src/Makefile.inc8
-rw-r--r--src/Makefile.netware6
-rw-r--r--src/tool_cb_prg.c8
-rw-r--r--src/tool_cfgable.c4
-rw-r--r--src/tool_cfgable.h7
-rw-r--r--src/tool_dirhie.c8
-rw-r--r--src/tool_filetime.c154
-rw-r--r--src/tool_filetime.h38
-rw-r--r--src/tool_getparam.c34
-rw-r--r--src/tool_help.c12
-rw-r--r--src/tool_hugehelp.c10395
-rw-r--r--src/tool_operate.c100
-rw-r--r--src/tool_version.h2
-rw-r--r--tests/data/Makefile.inc22
-rw-r--r--tests/data/test115457
-rw-r--r--tests/data/test117070
-rw-r--r--tests/data/test117170
-rw-r--r--tests/data/test126553
-rw-r--r--tests/data/test129250
-rw-r--r--tests/data/test15386
-rw-r--r--tests/data/test155550
-rw-r--r--tests/data/test155663
-rw-r--r--tests/data/test160726
-rw-r--r--tests/data/test31957
-rw-r--r--tests/data/test32666
-rw-r--r--tests/data/test34040
-rw-r--r--tests/data/test51790
-rw-r--r--tests/data/test5554
-rw-r--r--tests/data/test65550
-rw-r--r--tests/data/test9111
-rw-r--r--tests/data/test95145
-rw-r--r--tests/data/test95245
-rwxr-xr-xtests/ftpserver.pl8
-rw-r--r--tests/libtest/Makefile.am4
-rw-r--r--tests/libtest/Makefile.inc15
-rw-r--r--tests/libtest/lib1521.c40
-rw-r--r--tests/libtest/lib1555.c77
-rw-r--r--tests/libtest/lib1556.c78
-rw-r--r--tests/libtest/lib517.c228
-rw-r--r--tests/libtest/lib544.c11
-rw-r--r--tests/libtest/lib555.c24
-rw-r--r--tests/libtest/lib560.c2
-rw-r--r--tests/libtest/lib655.c112
-rw-r--r--tests/libtest/mk-lib1521.pl3
-rw-r--r--tests/nroff-scan.pl4
-rw-r--r--tests/pathhelp.pm2
-rw-r--r--tests/python_dependencies/impacket/spnego.py2
-rw-r--r--tests/runtests.12
-rwxr-xr-xtests/runtests.pl1
-rw-r--r--tests/server/CMakeLists.txt2
-rw-r--r--tests/server/Makefile.inc6
-rw-r--r--tests/server/sockfilt.c2
-rw-r--r--tests/server/sws.c8
-rw-r--r--tests/testcurl.12
-rw-r--r--tests/unit/Makefile.am4
-rw-r--r--tests/unit/Makefile.inc5
-rw-r--r--tests/unit/unit1307.c18
-rw-r--r--tests/unit/unit1309.c14
-rw-r--r--tests/unit/unit1607.c213
-rw-r--r--winbuild/Makefile.vc4
-rw-r--r--winbuild/MakefileBuild.vc30
601 files changed, 12088 insertions, 8416 deletions
diff --git a/.gitignore b/.gitignore
index 3926ddfa..3b509b43 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,4 +14,5 @@ Makefile.in
/libtool
curl*.spec
curl*.list
+/packages/Android/Android.mk
/tests/configurehelp.pm
diff --git a/Android.bp b/Android.bp
index b639598f..06237dac 100644
--- a/Android.bp
+++ b/Android.bp
@@ -60,6 +60,8 @@ cc_library {
"-DBUILDING_LIBCURL",
],
srcs:[
+ "lib/curl_ctype.c",
+ "lib/curl_range.c",
"lib/rand.c",
"lib/file.c",
"lib/timeval.c",
@@ -185,7 +187,6 @@ cc_library {
"lib/vtls/axtls.c",
"lib/vtls/cyassl.c",
"lib/vtls/schannel.c",
- "lib/vtls/darwinssl.c",
"lib/vtls/gskit.c",
"lib/vtls/mbedtls.c",
],
@@ -224,6 +225,7 @@ cc_binary {
"src/tool_doswin.c",
"src/tool_easysrc.c",
"src/tool_formparse.c",
+ "src/tool_filetime.c",
"src/tool_getparam.c",
"src/tool_getpass.c",
"src/tool_help.c",
diff --git a/CHANGES b/CHANGES
index 9bc3b76c..dce9c177 100644
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,970 @@
Changelog
+Version 7.59.0 (13 Mar 2018)
+
+Daniel Stenberg (13 Mar 2018)
+- release: 7.59.0
+
+Kamil Dudka (13 Mar 2018)
+- tests/.../spnego.py: fix identifier typo
+
+ Detected by Coverity Analysis:
+
+ Error: IDENTIFIER_TYPO:
+ curl-7.58.0/tests/python_dependencies/impacket/spnego.py:229: identifier_typo: Using "SuportedMech" appears to be a typo:
+ * Identifier "SuportedMech" is only known to be referenced here, or in copies of this code.
+ * Identifier "SupportedMech" is referenced elsewhere at least 4 times.
+ curl-7.58.0/tests/python_dependencies/impacket/smbserver.py:2651: identifier_use: Example 1: Using identifier "SupportedMech".
+ curl-7.58.0/tests/python_dependencies/impacket/smbserver.py:2308: identifier_use: Example 2: Using identifier "SupportedMech".
+ curl-7.58.0/tests/python_dependencies/impacket/spnego.py:252: identifier_use: Example 3: Using identifier "SupportedMech" (2 total uses in this function).
+ curl-7.58.0/tests/python_dependencies/impacket/spnego.py:229: remediation: Should identifier "SuportedMech" be replaced by "SupportedMech"?
+
+ Closes #2379
+
+Daniel Stenberg (13 Mar 2018)
+- CURLOPT_COOKIEFILE.3: "-" as file name means stdin
+
+ Reported-by: Aron Bergman
+ Bug: https://curl.haxx.se/mail/lib-2018-03/0049.html
+
+ [ci skip]
+
+- Revert "hostip: fix compiler warning: 'variable set but not used'"
+
+ This reverts commit a577059f92fc65bd6b81717f0737f897a5b34248.
+
+ The assignment really needs to be there or we risk working with an
+ uninitialized pointer.
+
+Michael Kaufmann (12 Mar 2018)
+- limit-rate: fix compiler warning
+
+ follow-up to 72a0f62
+
+Viktor Szakats (12 Mar 2018)
+- checksrc.pl: add -i and -m options
+
+ To sync it with changes made for the libssh2 project.
+ Also cleanup some whitespace.
+
+- curl-openssl.m4: fix spelling [ci skip]
+
+- FAQ: fix a broken URL [ci skip]
+
+Daniel Stenberg (12 Mar 2018)
+- http2: mark the connection for close on GOAWAY
+
+ ... don't consider it an error!
+
+ Assisted-by: Jay Satiro
+ Reported-by: Łukasz Domeradzki
+ Fixes #2365
+ Closes #2375
+
+- credits: Viktor prefers without accent
+
+- openldap: white space changes, fixed up the copyright years
+
+- openldap: check ldap_get_attribute_ber() results for NULL before using
+
+ CVE-2018-1000121
+ Reported-by: Dario Weisser
+ Bug: https://curl.haxx.se/docs/adv_2018-97a2.html
+
+- FTP: reject path components with control codes
+
+ Refuse to operate when given path components featuring byte values lower
+ than 32.
+
+ Previously, inserting a %00 sequence early in the directory part when
+ using the 'singlecwd' ftp method could make curl write a zero byte
+ outside of the allocated buffer.
+
+ Test case 340 verifies.
+
+ CVE-2018-1000120
+ Reported-by: Duy Phan Thanh
+ Bug: https://curl.haxx.se/docs/adv_2018-9cd6.html
+
+- readwrite: make sure excess reads don't go beyond buffer end
+
+ CVE-2018-1000122
+ Bug: https://curl.haxx.se/docs/adv_2018-b047.html
+
+ Detected by OSS-fuzz
+
+- BUGS: updated link to security process
+
+- limit-rate: kick in even before "limit" data has been received
+
+ ... and make sure to avoid integer overflows with really large values.
+
+ Reported-by: 刘佩东
+ Fixes #2371
+ Closes #2373
+
+- docs/SECURITY.md -> docs/SECURITY-PROCESS.md
+
+- SECURITY.md: call it the security process
+
+Michael Kaufmann (11 Mar 2018)
+- Curl_range: fix FTP-only and FILE-only builds
+
+ follow-up to e04417d
+
+- hostip: fix compiler warning: 'variable set but not used'
+
+Daniel Stenberg (11 Mar 2018)
+- HTTP: allow "header;" to replace an internal header with a blank one
+
+ Reported-by: Michael Kaufmann
+ Fixes #2357
+ Closes #2362
+
+- http2: verbose output new MAX_CONCURRENT_STREAMS values
+
+ ... as it is interesting for many users.
+
+- SECURITY: distros' max embargo time is 14 days now
+
+Patrick Monnerat (8 Mar 2018)
+- curl tool: accept --compressed also if Brotli is enabled and zlib is not.
+
+Daniel Stenberg (5 Mar 2018)
+- THANKS + mailmap: remove duplicates, fixup full names
+
+- [sergii.kavunenko brought this change]
+
+ WolfSSL: adding TLSv1.3
+
+ Closes #2349
+
+- RELEASE-NOTES/THANKS: synced with cc1d4c505
+
+- [Richard Alcock brought this change]
+
+ winbuild: prefer documented zlib library names
+
+ Check for existence of import and static libraries with documented names
+ and use them if they do. Fallback to previous names.
+
+ According to
+ https://github.com/madler/zlib/blob/master/win32/README-WIN32.txt on
+ Windows, the names of the import library is "zdll.lib" and static
+ library is "zlib.lib".
+
+ closes #2354
+
+Marcel Raad (4 Mar 2018)
+- krb5: use nondeprecated functions
+
+ gss_seal/gss_unseal have been deprecated in favor of
+ gss_wrap/gss_unwrap with GSS-API v2 from January 1997 [1]. The first
+ version of "The Kerberos Version 5 GSS-API Mechanism" [2] from June
+ 1996 already says "GSS_Wrap() (formerly GSS_Seal())" and
+ "GSS_Unwrap() (formerly GSS_Unseal())".
+
+ Use the nondeprecated functions to avoid deprecation warnings.
+
+ [1] https://tools.ietf.org/html/rfc2078
+ [2] https://tools.ietf.org/html/rfc1964
+
+ Closes https://github.com/curl/curl/pull/2356
+
+Daniel Stenberg (4 Mar 2018)
+- curl.1: mention how to add numerical IP addresses in NO_PROXY
+
+- CURLOPT_NOPROXY.3: mention how to list numerical IPv6 addresses
+
+- NO_PROXY: fix for IPv6 numericals in the URL
+
+ Added test 1265 that verifies.
+
+ Reported-by: steelman on github
+ Fixes #2353
+ Closes #2355
+
+- build: get CFLAGS (including -werror) used for examples and tests
+
+ ... so that the CI and more detects compiler warnings/errors properly!
+
+ Closes #2337
+
+Marcel Raad (3 Mar 2018)
+- curl_ctype: fix macro redefinition warnings
+
+ On MinGW and Cygwin, GCC and clang have been complaining about macro
+ redefinitions since 4272a0b0fc49a1ac0ceab5c4a365c9f6ab8bf8e2. Fix this
+ by undefining the macros before redefining them as suggested in
+ https://github.com/curl/curl/pull/2269.
+
+ Suggested-by: Daniel Stenberg
+
+Dan Fandrich (2 Mar 2018)
+- unit1307: proper cleanup on OOM to fix torture tests
+
+Marcel Raad (28 Feb 2018)
+- unit1309: fix warning on Windows x64
+
+ When targeting x64, MinGW-w64 complains about conversions between
+ 32-bit long and 64-bit pointers. Fix this by reusing the
+ GNUTLS_POINTER_TO_SOCKET_CAST / GNUTLS_SOCKET_TO_POINTER_CAST logic
+ from gtls.c, moving it to warnless.h as CURLX_POINTER_TO_INTEGER_CAST /
+ CURLX_INTEGER_TO_POINTER_CAST.
+
+ Closes https://github.com/curl/curl/pull/2341
+
+- travis: update compiler versions
+
+ Update clang to version 3.9 and GCC to version 6.
+
+ Closes https://github.com/curl/curl/pull/2345
+
+Daniel Stenberg (26 Feb 2018)
+- docs/MANUAL: formfind.pl is not accessible on the site anymore
+
+ Fixes #2342
+
+Jay Satiro (24 Feb 2018)
+- curl-openssl.m4: Fix version check for OpenSSL 1.1.1
+
+ - Add OpenSSL 1.1.1 to the header/library version lists.
+
+ - Detect OpenSSL 1.1.1 library using its function ERR_clear_last_mark,
+ which was added in that version.
+
+ Prior to this change an erroneous header/library mismatch was caused by
+ lack of OpenSSL 1.1.1 detection. I tested using openssl-1.1.1-pre1.
+
+Viktor Szakats (23 Feb 2018)
+- lib655: silence compiler warning
+
+ Closes https://github.com/curl/curl/pull/2335
+
+- spelling fixes
+
+ Detected using the `codespell` tool.
+
+ Also contains one URL protocol upgrade.
+
+ Closes https://github.com/curl/curl/pull/2334
+
+Daniel Stenberg (24 Feb 2018)
+- projects/README: remove reference to dead IDN link/package
+
+ Reported-by: Stefan Kanthak and Rod Widdowson
+
+ Fixes #2325
+
+Jay Satiro (23 Feb 2018)
+- [Rod Widdowson brought this change]
+
+ winbuild: Use macros for the names of some build utilities
+
+ - Add macros to the top of the makefile for rc and mt utilities so that
+ it is easier to change their locations.
+
+ Bug: https://curl.haxx.se/mail/lib-2018-02/0075.html
+ Reported-by: Stefan Kanthak
+
+ Closes https://github.com/curl/curl/issues/2329
+
+Daniel Stenberg (23 Feb 2018)
+- TODO: remove "sha-256 digest", added in 2b5b37cb9109e7c2
+
+- curl_share_setopt.3: connection cache is shared within multi handles
+
+Jay Satiro (22 Feb 2018)
+- [Rod Widdowson brought this change]
+
+ winbuild: Use CALL to run batch scripts
+
+ Co-authored-by: Stefan Kanthak
+
+ Closes https://github.com/curl/curl/issues/2330
+ Closes https://github.com/curl/curl/pull/2331
+
+Patrick Monnerat (22 Feb 2018)
+- os400: add curl_resolver_start_callback type to ILE/RPG binding
+
+Daniel Stenberg (22 Feb 2018)
+- form.d: rephrased somewhat, added two example command lines
+
+Jay Satiro (21 Feb 2018)
+- [Francisco Sedano brought this change]
+
+ url: Add option CURLOPT_RESOLVER_START_FUNCTION
+
+ - Add new option CURLOPT_RESOLVER_START_FUNCTION to set a callback that
+ will be called every time before a new resolve request is started
+ (ie before a host is resolved) with a pointer to backend-specific
+ resolver data. Currently this is only useful for ares.
+
+ - Add new option CURLOPT_RESOLVER_START_DATA to set a user pointer to
+ pass to the resolver start callback.
+
+ Closes https://github.com/curl/curl/pull/2311
+
+- lib: CURLOPT_HAPPY_EYEBALLS_TIMEOUT => CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS
+
+ - In keeping with the naming of our other connect timeout options rename
+ CURLOPT_HAPPY_EYEBALLS_TIMEOUT to CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.
+
+ This change adds the _MS suffix since the option expects milliseconds.
+ This is more intuitive for our users since other connect timeout options
+ that expect milliseconds use _MS such as CURLOPT_TIMEOUT_MS,
+ CURLOPT_CONNECTTIMEOUT_MS, CURLOPT_ACCEPTTIMEOUT_MS.
+
+ The tool option already uses an -ms suffix, --happy-eyeballs-timeout-ms.
+
+ Follow-up to 2427d94 which added the lib and tool option yesterday.
+
+ Ref: https://github.com/curl/curl/pull/2260
+
+Patrick Monnerat (21 Feb 2018)
+- sasl: prefer PLAIN mechanism over LOGIN
+
+ SASL PLAIN is a standard, LOGIN only a draft. The LOGIN draft says
+ PLAIN should be used instead if available.
+
+Daniel Stenberg (21 Feb 2018)
+- RELEASE-NOTES: synced with 2427d94c6
+
+Jay Satiro (20 Feb 2018)
+- [Anders Bakken brought this change]
+
+ url: Add option CURLOPT_HAPPY_EYEBALLS_TIMEOUT
+
+ - Add new option CURLOPT_HAPPY_EYEBALLS_TIMEOUT to set libcurl's happy
+ eyeball timeout value.
+
+ - Add new optval macro CURL_HET_DEFAULT to represent the default happy
+ eyeballs timeout value (currently 200 ms).
+
+ - Add new tool option --happy-eyeballs-timeout-ms to expose
+ CURLOPT_HAPPY_EYEBALLS_TIMEOUT. The -ms suffix is used because the
+ other -timeout options in the tool expect seconds not milliseconds.
+
+ Closes https://github.com/curl/curl/pull/2260
+
+- hostip: fix 'potentially uninitialized variable' warning
+
+ Follow-up to 50d1b33.
+
+ Caught by AppVeyor.
+
+Daniel Stenberg (20 Feb 2018)
+- TODO: warning if curl version is not in sync with libcurl version
+
+Jay Satiro (20 Feb 2018)
+- [Anders Bakken brought this change]
+
+ CURLOPT_RESOLVE: Add support for multiple IP addresses per entry
+
+ This enables users to preresolve but still take advantage of happy
+ eyeballs and trying multiple addresses if some are not connecting.
+
+ Ref: https://github.com/curl/curl/pull/2260
+
+Daniel Stenberg (20 Feb 2018)
+- [Sergio Borghese brought this change]
+
+ examples/sftpuploadresume: resume upload via CURLOPT_APPEND
+
+ URL: https://curl.haxx.se/mail/lib-2018-02/0072.html
+
+- curl --version: show PSL if the run-time lib has it enabled
+
+ ... not of the #define was set at build-time!
+
+- TODO: "Support in-memory certs/ca certs/keys"
+
+ removed SSLKEYLOGFILE support (fixed)
+
+ removed "consider SSL patches" (outdated)
+
+ Closes #2310
+
+- CURLOPT_HEADER.3: clarify problems with different data sizes
+
+- test1556: verify >16KB headers to the header callback
+
+- header callback: don't chop headers into smaller pieces
+
+ Reported-by: Guido Berhoerster
+ Fixes #2314
+ Closes #2316
+
+- test1154: verify that long HTTP headers get rejected
+
+- http: fix the max header length detection logic
+
+ Previously, it would only check for max length if the existing alloc
+ buffer was to small to fit it, which often would make the header still
+ get used.
+
+ Reported-by: Guido Berhoerster
+ Bug: https://curl.haxx.se/mail/lib-2018-02/0056.html
+
+ Closes #2315
+
+- CURLOPT_HEADERFUNCTION.3: fix typo from d939226813
+
+ Reported-by: Erik Johansson
+ Bug: https://github.com/curl/curl/commit/d9392268131c1b8d18dec3fa30e0bded833a5db7#commitcomment-27607495
+
+- CURLOPT_HEADERFUNCTION.3: mention folded headers
+
+- TODO: 1.1 Option to refuse usernames in URLs
+
+ Also expanded the CURL_REFUSE_CLEARTEXT section with more ideas.
+
+- TODO: 1.7 Support HTTP/2 for HTTP(S) proxies
+
+- ssh: add two missing state names
+
+ The list of state names (used in debug builds) was out of sync in
+ relation to the list of states (used in all builds).
+
+ I now added an assert to make sure the sizes of the two lists match, to
+ aid in detecting this mistake better in the future.
+
+ Regression since c92d2e14cf, shipped in 7.58.0.
+
+ Reported-by: Somnath Kundu
+
+ Fixes #2312
+ Closes #2313
+
+- Revert "KNOWN_BUGS: 2.5 curl should not offer "ALPN: h2" when using https-proxy"
+
+ This reverts commit de9fac00c40db321d44fa6fbab6eb62ec4c83998.
+
+ Reported-by: Jay Satiro
+
+Jay Satiro (15 Feb 2018)
+- non-ascii: fix implicit declaration warning
+
+ Follow-up to b46cfbc.
+
+ Caught by Travis CI.
+
+Daniel Stenberg (15 Feb 2018)
+- travis: add build with iconv enabled
+
+ ... to verify it builds and works fine.
+
+ Ref: https://curl.haxx.se/mail/lib-2017-09/0031.html
+
+ Closes #1872
+
+- TODO: 18.18 retry on network is unreachable
+
+ Closes #1603
+
+- KNOWN_BUGS: 2.5 curl should not offer "ALPN: h2" when using https-proxy
+
+ Closes #1254
+
+Kamil Dudka (15 Feb 2018)
+- nss: use PK11_CreateManagedGenericObject() if available
+
+ ... so that the memory allocated by applications using libcurl does not
+ grow per each TLS connection.
+
+ Bug: https://bugzilla.redhat.com/1510247
+
+ Closes #2297
+
+Daniel Stenberg (15 Feb 2018)
+- [BjΓΆrn Stenberg brought this change]
+
+ TODO fixed: Detect when called from within callbacks
+
+ Closes #2302
+
+- BINDINGS: fix curb link (and remove ruby-curl-multi)
+
+ Reported-by: Klaus Stein
+
+- curl_gssapi: make sure this file too uses our *printf()
+
+- libcurl-security.3: separate file:// section
+
+ ... just to make it more apparent. Even if it repeats
+ some pieces of information.
+
+- libcurl-security.3: the http://192.168.0.1/my_router_config case
+
+ Mentioned-By: Rich Moore
+
+- libcurl-security.3: mention the URL standards problems too
+
+- libcurl-security.3: split out from libcurl-tutorial.3
+
+ To make more accessible.
+
+ Merged in some new language from "URLs are dangerous things" as discussed on
+ the mailing list a few days ago:
+
+ Bug: https://curl.haxx.se/mail/lib-2018-02/0013.html
+
+- RELEASE-NOTES: synced with e551910f8
+
+Patrick Monnerat (13 Feb 2018)
+- tests: new tests for http raw mode
+
+ Test 319 checks proper raw mode data with non-chunked gzip
+ transfer-encoded server data.
+ Test 326 checks raw mode with chunked server data.
+
+ Bug: #2303
+ Closes #2308
+
+Kamil Dudka (12 Feb 2018)
+- tlsauthtype.d: works only if libcurl is built with TLS-SRP support
+
+ Bug: https://bugzilla.redhat.com/1542256
+
+ Closes #2306
+
+Patrick Monnerat (12 Feb 2018)
+- smtp: fix processing of initial dot in data
+
+ RFC 5321 4.1.1.4 specifies the CRLF terminating the DATA command
+ should be taken into account when chasing the <CRLF>.<CRLF> end marker.
+ Thus a leading dot character in data is also subject to escaping.
+
+ Tests 911 and test server are adapted to this situation.
+ New tests 951 and 952 check proper handling of initial dot in data.
+
+ Closes #2304
+
+Daniel Stenberg (12 Feb 2018)
+- sha256: avoid redefine
+
+- [Douglas Mencken brought this change]
+
+ sha256: build with OpenSSL < 0.9.8 too
+
+ support for SHA-2 was introduced in OpenSSL 0.9.8
+
+ Closes #2305
+
+- [Bruno Grasselli brought this change]
+
+ README: language fix
+
+ s/off/from
+
+ Closes #2300
+
+Patrick Monnerat (12 Feb 2018)
+- http_chunks: don't write chunks twice with CURLOPT_HTTP_TRANSFER_DECODING on
+
+ Bug: #2303
+ Reported-By: Henry Roeland
+
+Daniel Stenberg (9 Feb 2018)
+- get_posix_time: only check for overflows if they can happen!
+
+Michael Kaufmann (9 Feb 2018)
+- schannel: fix "no previous prototype" compiler warning
+
+Jay Satiro (9 Feb 2018)
+- [Mohammad AlSaleh brought this change]
+
+ content_encoding: Add "none" alias to "identity"
+
+ Some servers return a "content-encoding" header with a non-standard
+ "none" value.
+
+ Add "none" as an alias to "identity" as a work-around, to avoid
+ unrecognised content encoding type errors.
+
+ Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
+
+ Closes https://github.com/curl/curl/pull/2298
+
+Steve Holme (8 Feb 2018)
+- build-openssl.bat: Follow up to 648679ab8e to suppress copy/move output
+
+- build-openssl.bat: Fixed incorrect move if destination build folder exists
+
+Michael Kaufmann (8 Feb 2018)
+- schannel: fix compiler warnings
+
+ Closes #2296
+
+Steve Holme (7 Feb 2018)
+- curl_addrinfo.c: Allow Unix Domain Sockets to compile under Windows
+
+ Windows 10.0.17061 SDK introduces support for Unix Domain Sockets.
+ Added the necessary include file to curl_addrinfo.c.
+
+ Note: The SDK (which is considered beta) has to be installed, VS 2017
+ project file has to be re-targeted for Windows 10.0.17061 and #define
+ enabled in config-win32.h.
+
+Patrick Monnerat (7 Feb 2018)
+- fnmatch: optimize processing of consecutive *s and ?s pattern characters
+
+ Reported-By: Daniel Stenberg
+ Fixes #2291
+ Closes #2293
+
+Steve Holme (6 Feb 2018)
+- build-openssl.bat/build-wolfssl.bat: Build platform is optional
+
+ Whilst the compiler parameter is mandatory, platform is optional as it
+ is automatically calculated by the :configure section.
+
+ This partially reverts commit 6d62d2c55d.
+
+Daniel Stenberg (6 Feb 2018)
+- [Patrick Schlangen brought this change]
+
+ openssl: Don't add verify locations when verifypeer==0
+
+ When peer verification is disabled, calling
+ SSL_CTX_load_verify_locations is not necessary. Only call it when
+ verification is enabled to save resources and increase performance.
+
+ Closes #2290
+
+Steve Holme (5 Feb 2018)
+- build-wolfssl.bat: Extend VC15 support to include Enterprise and Professional
+
+ ...and not just the Community Edition.
+
+- build-openssl.bat: Extend VC15 support to include Enterprise and Professional
+
+ ...and not just the Community Edition.
+
+Michael Kaufmann (5 Feb 2018)
+- time-cond: fix reading the file modification time on Windows
+
+ On Windows, stat() may adjust the unix file time by a daylight saving time
+ offset. Avoid this by calling GetFileTime() instead.
+
+ Fixes #2164
+ Closes #2204
+
+Daniel Stenberg (5 Feb 2018)
+- formdata: use the mime-content type function
+
+ Reduce code duplication by making Curl_mime_contenttype available and
+ used by the formdata function. This also makes the formdata function
+ recognize a set of more file extensions by default.
+
+ PR #2280 brought this to my attention.
+
+ Closes #2282
+
+- getdate: return -1 for out of range
+
+ ...as that's how the function is documented to work.
+
+ Reported-by: Michael Kaufmann
+ Bug found in an autobuild with 32 bit time_t
+
+ Closes #2278
+
+- [Ben Greear brought this change]
+
+ build: fix termios issue on android cross-compile
+
+ Bug: https://curl.haxx.se/mail/lib-2018-01/0122.html
+ Signed-off-by: Ben Greear <greearb@candelatech.com>
+
+- time_t-fixes: remove typecasts to 'long' for info.filetime
+
+ They're now wrong.
+
+ Reported-by: Michael Kaufmann
+
+ Closes #2277
+
+- curl_setup: move the precautionary define of SIZEOF_TIME_T
+
+ ... up to before it may be used for the TIME_T_MAX/MIN logic.
+
+ Reported-by: Michael Kaufmann
+
+- parsedate: s/#if/#ifdef
+
+ Reported-by: Michael Kaufmann
+ Bug: https://github.com/curl/curl/commit/1c39128d974666107fc6d9ea15f294036851f224#commitcomment-27246479
+
+Patrick Monnerat (31 Jan 2018)
+- fnmatch: pattern syntax can no longer fail
+
+ Whenever an expected pattern syntax rule cannot be matched, the
+ character starting the rule loses its special meaning and the parsing
+ is resumed:
+ - backslash at the end of pattern string matches itself.
+ - Error in [:keyword:] results in set containing :\[dekorwy.
+
+ Unit test 1307 updated for this new situation.
+
+ Closes #2273
+
+- fnmatch: accept an alphanum to be followed by a non-alphanum in char set
+
+ Also be more tolerant about set pattern syntax.
+ Update unit test 1307 accordingly.
+
+ Bug: https://curl.haxx.se/mail/lib-2018-01/0114.html
+
+- fnmatch: do not match the empty string with a character set
+
+Jay Satiro (30 Jan 2018)
+- build: fix windows build methods for curl_ctype.c
+
+ - Fix winbuild and the VS project generator to treat curl_ctype.{c,h} as
+ curlx files since they are required by both src and lib.
+
+ Follow-up to 4272a0b which added curl_ctype.
+
+Daniel Stenberg (30 Jan 2018)
+- progress-bar.d: update to match implementation
+
+ ... since commit 993dd5651a6
+
+ Reported-by: Martin Dreher
+ Bug: https://github.com/curl/curl/pull/2242#issuecomment-361059228
+
+ Closes #2271
+
+- http2: set DEBUG_HTTP2 to enable more HTTP/2 logging
+
+ ... instead of doing it unconditionally in debug builds. It cluttered up
+ the output a little too much.
+
+- [Max Dymond brought this change]
+
+ file: Check the return code from Curl_range and bail out on error
+
+- [Max Dymond brought this change]
+
+ Curl_range: add check to ensure "from <= to"
+
+- [Max Dymond brought this change]
+
+ Curl_range: commonize FTP and FILE range handling
+
+ Closes #2205
+
+- RELEASE-NOTES: synced with 811beab9f
+
+- curlver: next release will be 7.59.0
+
+- [MichaΕ‚ Janiszewski brought this change]
+
+ curl/curl.h: fix comment typo for CURLOPT_DNS_LOCAL_IP6
+
+ Closes #2275
+
+- time: support > year 2038 time stamps for system with 32bit long
+
+ ... with the introduction of CURLOPT_TIMEVALUE_LARGE and
+ CURLINFO_FILETIME_T.
+
+ Fixes #2238
+ Closes #2264
+
+- curl_easy_reset: clear digest auth state
+
+ Bug: https://curl.haxx.se/mail/lib-2018-01/0074.html
+ Reported-by: Ruurd Beerstra
+ Fixes #2255
+ Closes #2272
+
+- [Adam Marcionek brought this change]
+
+ winbuild: make linker generate proper PDB
+
+ Link.exe requires /DEBUG to properly generate a full pdb file on release
+ builds.
+
+ Closes #2274
+
+- curl: add --proxy-pinnedpubkey
+
+ To verify a proxy's public key. For when using HTTPS proxies.
+
+ Fixes #2192
+ Closes #2268
+
+- configure: set PATH_SEPARATOR to colon for PATH w/o separator
+
+ The logic tries to figure out what the path separator in the $PATH
+ variable is, but if there's only one directory in the $PATH it
+ fails. This change make configure *guess* on colon instead of erroring
+ out, simply because that is probably the more common character.
+
+ PATH_SEPARATOR can always be set by the user to override the guessing.
+
+ (tricky bug to reproduce, as in my case for example the configure script
+ requires binaries in more than one directory so passing in a PATH with a
+ single dir fails.)
+
+ Reported-by: Earnestly on github
+ Fixes #2202
+ Closes #2265
+
+- curl_ctype: private is*() type macros and functions
+
+ ... since the libc provided one are locale dependent in a way we don't
+ want. Also, the "native" isalnum() (for example) works differently on
+ different platforms which caused test 1307 failures on macos only.
+
+ Closes #2269
+
+Marcel Raad (29 Jan 2018)
+- build: open VC15 projects with VS 2017
+
+ Previously, they were opened with Visual Studio 2015 by default, which
+ cannot build them.
+
+Daniel Stenberg (29 Jan 2018)
+- RELEASE-NOTES: synced with 094647fca
+
+- TODO: UTF-8 filenames in Content-Disposition
+
+ Closes #1888
+
+- KNOWN_BUGS: DICT responses show the underlying protocol
+
+ Closes #1809
+
+Jay Satiro (27 Jan 2018)
+- [Alessandro Ghedini brought this change]
+
+ docs: fix typos in man pages
+
+ Closes https://github.com/curl/curl/pull/2266
+
+Patrick Monnerat (26 Jan 2018)
+- lib555: drop text conversion and encode data as ascii codes
+
+ If CURL_DOES_CONVERSION is enabled, uploaded LFs are mapped to CRLFs,
+ giving a result that is different from what is expected.
+ This commit avoids using CURLOPT_TRANSFERTEXT and directly encodes data
+ to upload in ascii.
+
+ Bug: https://github.com/curl/curl/pull/1872
+
+Daniel Stenberg (26 Jan 2018)
+- lib517: make variable static to avoid compiler warning
+
+ ... with clang on macos
+
+Patrick Monnerat (26 Jan 2018)
+- lib544: sync ascii code data with textual data
+
+ Data mismatch caused test 545 to fail when character encoding
+ conversion is enabled.
+
+ Bug: https://github.com/curl/curl/pull/1872
+
+Daniel Stenberg (25 Jan 2018)
+- [Travis Burtrum brought this change]
+
+ GSKit: restore pinnedpubkey functionality
+
+ inadvertently removed in 283babfaf8d8f3bab9d3c63cea94eb0b84e79c37
+
+ Closes #2263
+
+- [Dair Grant brought this change]
+
+ darwinssl: Don't import client certificates into Keychain on macOS
+
+ Closes #2085
+
+- configure: fix the check for unsigned time_t
+
+ Assign the time_t variable negative value and then check if it is
+ greater than zero, which will evaluate true for unsigned time_t but
+ false for signed time_t.
+
+- parsedate: fix date parsing for systems with 32 bit long
+
+ Make curl_getdate() handle dates before 1970 as well (returning negative
+ values).
+
+ Make test 517 test dates for 64 bit time_t.
+
+ This fixes bug (3) mentioned in #2238
+
+ Closes #2250
+
+- [McDonough, Tim brought this change]
+
+ openssl: fix pinned public key build error in FIPS mode
+
+ Here is a version that should work with all versions of openssl 0.9.7
+ through 1.1.0.
+
+ Links to the docs:
+ https://www.openssl.org/docs/man1.0.2/crypto/EVP_DigestInit.html
+ https://www.openssl.org/docs/man1.1.0/crypto/EVP_DigestInit.html
+
+ At the very bottom of the 1.1.0 documentation there is a history section
+ that states, " stack allocated EVP_MD_CTXs are no longer supported."
+
+ If EVP_MD_CTX_create and EVP_MD_CTX_destroy are not defined, then a
+ simple mapping can be used as described here:
+ https://wiki.openssl.org/index.php/Talk:OpenSSL_1.1.0_Changes
+
+ Closes #2258
+
+- [Travis Burtrum brought this change]
+
+ SChannel/WinSSL: Replace Curl_none_md5sum with Curl_schannel_md5sum
+
+- [Travis Burtrum brought this change]
+
+ SChannel/WinSSL: Implement public key pinning
+
+ Closes #1429
+
+- bump: towards 7.58.1
+
+- cookies: remove verbose "cookie size:" output
+
+ It was once used for some debugging/verifying logic but should never have
+ ended up in git!
+
+- TODO: hardcode the "localhost" addresses
+
+- TODO: CURL_REFUSE_CLEARTEXT
+
+ An idea that popped up in discussions on twitter.
+
+- progress-bar: don't use stderr explicitly, use bar->out
+
+ Reported-By: Gisle Vanem
+ Bug: https://github.com/curl/curl/commit/993dd5651a6c853bfe3870f6a69c7b329fa4e8ce#commitcomment-27070080
+
+GitHub (24 Jan 2018)
+- [Gisle Vanem brought this change]
+
+ Fixes for MSDOS etc.
+
+ djgpp do have 'mkdir(dir, mode)'. Other DOS-compilers does not
+ But djgpp seems the only choice for MSDOS anyway.
+
+ PellesC do have a 'F_OK' defined in it's <unistd.h>.
+
+ Update year in Copyright.
+
+- [Gisle Vanem brought this change]
+
+ Fix small typo.
+
Version 7.58.0 (23 Jan 2018)
Daniel Stenberg (23 Jan 2018)
@@ -1330,7 +2294,7 @@ Daniel Stenberg (6 Nov 2017)
Coverity CID 1420610
-Viktor SzakΓ‘ts (6 Nov 2017)
+Viktor Szakats (6 Nov 2017)
- src/Makefile.m32: fix typo in brotli lib customization
Ref cc1f4436099decb9d1a7034b2bb773a9f8379d31
@@ -1344,7 +2308,7 @@ Viktor SzakΓ‘ts (6 Nov 2017)
Patrick Monnerat (5 Nov 2017)
- travis: add a job with brotli enabled
-- [Viktor SzakΓ‘ts brought this change]
+- [Viktor Szakats brought this change]
Makefile.m32: add brotli support
@@ -1842,7 +2806,7 @@ Daniel Stenberg (16 Oct 2017)
Closes #1938
-Viktor SzakΓ‘ts (15 Oct 2017)
+Viktor Szakats (15 Oct 2017)
- makefile.m32: allow to override gcc, ar and ranlib
Allow to ovverride certain build tools, making it possible to
@@ -2120,7 +3084,7 @@ Daniel Stenberg (6 Oct 2017)
Fixes #1955
Closes #1956
-Viktor SzakΓ‘ts (6 Oct 2017)
+Viktor Szakats (6 Oct 2017)
- lib/config-win32.h: let SMB/SMBS be enabled with OpenSSL/NSS
The source code is now prepared to handle the case when both
@@ -2159,7 +3123,7 @@ Daniel Stenberg (4 Oct 2017)
Closes #1946
-Viktor SzakΓ‘ts (4 Oct 2017)
+Viktor Szakats (4 Oct 2017)
- lib/Makefile.m32: allow customizing dll suffixes
- New `CURL_DLL_SUFFIX` envvar will add a suffix to the generated
@@ -2406,7 +3370,7 @@ Jay Satiro (23 Sep 2017)
Follow up to 7c52b12 which added the entry. The entry had used tabs but
the symbol-scan parser doesn't recognize tabs and would fail the symbol.
-Viktor SzakΓ‘ts (22 Sep 2017)
+Viktor Szakats (22 Sep 2017)
- metalink: fix NSS issue in MultiSSL builds
In MultiSSL mode (i.e. when more than one SSL backend is compiled
@@ -2969,7 +3933,7 @@ Kamil Dudka (5 Sep 2017)
Closes #1846
-Viktor SzakΓ‘ts (5 Sep 2017)
+Viktor Szakats (5 Sep 2017)
- examples/mime: minor example code fixes
Daniel Stenberg (5 Sep 2017)
@@ -2993,7 +3957,7 @@ Daniel Stenberg (5 Sep 2017)
... to a README file that doesn't exist anymore
-Viktor SzakΓ‘ts (4 Sep 2017)
+Viktor Szakats (4 Sep 2017)
- docs: Update to secure URL versions
- mime: use CURL_ZERO_TERMINATED in examples
@@ -3220,7 +4184,7 @@ Kamil Dudka (30 Aug 2017)
} else
^
-Viktor SzakΓ‘ts (30 Aug 2017)
+Viktor Szakats (30 Aug 2017)
- makefile.m32: add multissl support
Closes https://github.com/curl/curl/pull/1840
@@ -3867,7 +4831,7 @@ Marcel Raad (22 Aug 2017)
Fixes https://github.com/curl/curl/issues/1751
Closes https://github.com/curl/curl/pull/1813
-Viktor SzakΓ‘ts (22 Aug 2017)
+Viktor Szakats (22 Aug 2017)
- makefile.m32: add support for libidn2
libidn was replaced with libidn2 last year in configure.
@@ -3877,7 +4841,7 @@ Viktor SzakΓ‘ts (22 Aug 2017)
Closes https://github.com/curl/curl/pull/1815
Jay Satiro (22 Aug 2017)
-- [Viktor SzakΓ‘ts brought this change]
+- [Viktor Szakats brought this change]
config-win32: define SIZEOF_LONG
@@ -4021,7 +4985,7 @@ Daniel Stenberg (18 Aug 2017)
- curl/system.h: checksrc compliance
Jay Satiro (17 Aug 2017)
-- [Viktor SzakΓ‘ts brought this change]
+- [Viktor Szakats brought this change]
ssh: add the ability to enable compression (for SCP/SFTP)
@@ -4432,7 +5396,7 @@ Daniel Stenberg (9 Aug 2017)
- THANKS: 20 new contributors in 7.55.0
-- [Viktor SzakΓ‘ts brought this change]
+- [Viktor Szakats brought this change]
docs/comments: Update to secure URL versions
@@ -6004,854 +6968,3 @@ Marcel Raad (5 Jun 2017)
Daniel Stenberg (4 Jun 2017)
- RELEASE-NOTES: synced with 65ba92650
-
-Marcel Raad (4 Jun 2017)
-- curl_ntlm_core: pass unsigned char to toupper
-
- Otherwise, clang on Cygwin64 warns:
- curl_ntlm_core.c:525:35: error: array subscript is of type 'char'
- [-Werror,-Wchar-subscripts]
- dest[2 * i] = (unsigned char)(toupper(src[i]));
- ^~~~~~~~~~~~~~~
- /usr/include/ctype.h:152:25: note: expanded from macro 'toupper'
- (void) __CTYPE_PTR[__x]; (toupper) (__x);})
- ^~~~
-
-Jay Satiro (3 Jun 2017)
-- [Mahmoud Samir Fayed brought this change]
-
- BINDINGS: add Ring binding
-
- Closes https://github.com/curl/curl/pull/1539
-
-Daniel Stenberg (4 Jun 2017)
-- CONTRIBUTE.md: mention tests done on pull requests
-
-- travis: add coverage, distcheck and cmake builds
-
- Closes #1534
-
-Marcel Raad (3 Jun 2017)
-- libtest: fix int-in-bool-context warnings
-
- GCC 7 complained:
- β€˜*’ in boolean context, suggest β€˜&&’ instead [-Wint-in-bool-context]
-
-- libtest: fix implicit-fallthrough warnings with GCC 7
-
-- x509asn1: fix implicit-fallthrough warning with GCC 7
-
-- curl_sasl: fix unused-variable warning
-
- This fixes the following warning with CURL_DISABLE_CRYPTO_AUTH,
- as seen in the autobuilds:
-
- curl_sasl.c:417:9: warning: unused variable 'serverdata'
- [-Wunused-variable]
-
-Daniel Stenberg (3 Jun 2017)
-- updatemanpages.pl: error out on too old git version
-
-Marcel Raad (3 Jun 2017)
-- cyassl: define build macros before including ssl.h
-
- cyassl/ssl.h needs the macros from cyassl/options.h, so define them
- before including cyassl/ssl.h the first time, which happens in
- urldata.h.
- This broke the build on Ubuntu Xenial, which comes with WolfSSL 3.4.8
- and therefore redefines the symbols from cyassl/options.h instead of
- including the header.
-
- Closes https://github.com/curl/curl/pull/1536
-
-Daniel Stenberg (3 Jun 2017)
-- tool_util: remove unused tvdiff_secs and remove tool_ prefix
-
- Closes #1532
-
-- dedotdot: fixed output for ".." and "." only input
-
- Found when updating test 1395, which I did to increase test coverage of
- this source file...
-
- Closes #1535
-
-Marcel Raad (2 Jun 2017)
-- mbedtls: make TU-local variable static
-
- mbedtls_x509_crt_profile_fr is only used locally.
- This fixes a missing-variable-declarations warning with clang.
-
-- MD(4|5): silence cast-align clang warning
-
- Unaligned access is on purpose here and the warning is harmless on
- affected architectures. GCC knows that, while clang warns on all
- architectures.
-
-Daniel Stenberg (2 Jun 2017)
-- test1538: fix typo
-
-- test1538: verify the libcurl strerror API calls
-
-- curl_endian: remove unused functions
-
- Closes #1529
-
-- test1537: dedicated tests of the URL (un)escape API calls
-
- Closes #1530
-
-- coverage: run event tests too
-
- ... the torture ones are commented out only because they are slooooow.
-
-- build: provide easy code coverage measuring
-
- Closes #1528
-
-- typecheck-gcc.h: check CURLINFO_CERTINFO
-
- ... and update the certinfo.c example accordingly.
-
- Fixes https://github.com/curl/curl/issues/846
-
-- typecheck-gcc.h: check CURLINFO_TLS_SSL_PTR and CURLINFO_TLS_SESSION
-
- ... so that they get the required "struct curl_tlssessioninfo **"
- arguments.
-
-- typecheck-gcc.h: separate getinfo slist checks from other pointers
-
- Fixes #1524
-
-Marcel Raad (1 Jun 2017)
-- curl-compilers.m4: escape square brackets in regex
-
- Otherwise, they are removed in the final configure file.
- Also changed sed to "$SED" like in most other calls in this file.
-
-- curl-compilers.m4: fix compiler_num for clang
-
- "clang -dumpversion" always returns "4.2.1", the GCC version that clang
- was initially compatible to. Use "clang -v" instead, which returns the
- actual clang version.
-
- Fixes https://github.com/curl/curl/issues/1522
- Closes https://github.com/curl/curl/pull/1523
-
-Daniel Stenberg (31 May 2017)
-- examples/externalsocket.c: s/closesocket/closecb
-
- ... since closesocket is a function in WinSock.
-
- Reported-by: Marcel Raad
- Bug: https://github.com/curl/curl/commit/55fcb8485914700132fd1854c9509b66c955efbe#co
- mmitcomment-22347818
-
-Marcel Raad (31 May 2017)
-- lib583: fix compiler warning
-
- Use CURLMcode for variable 'res' and cast to int where necessary
- instead of the other way around. Other tests do the same.
-
- This fixes the following clang warning:
- lib583.c:68:15: warning: cast from function call of type 'CURLMcode' to
- non-matching type 'int' [-Wbad-function-cast]
-
-Daniel Stenberg (31 May 2017)
-- CURLOPT_SSH_KEY*.3: typos
-
- Reported-by: Gisle Vanem
-
-- CURLOPT_STREAM_DEPENDS.3: typo
-
-- CURLOPT_FNMATCH_FUNCTION.3: also modified example to avoid fcpp issues
-
-- CURLOPT_FNMATCH_DATA.3: modified example to avoid fcpp issues
-
-- opts: more than 100 more examples for man pages...
-
-- libtest/lib574.c: use correct callback proto
-
-- examples/sampleconv.c: indent changes, made callbacks static
-
-- example/externalsocket.c: make it use CLOSESOCKETFUNCTION too
-
-Marcel Raad (31 May 2017)
-- curl-compilers.m4: enable -Wshift-sign-overflow for clang
-
- clang 2.9+ supports -Wshift-sign-overflow, which warns about undefined
- behavior on signed left shifts when shifting by too many places.
-
- Ref: https://github.com/curl/curl/issues/1516
- Closes https://github.com/curl/curl/pull/1517
-
-Daniel Stenberg (31 May 2017)
-- CURLOPT_PROXY.3: fix test 1140 breakage
-
-Jay Satiro (31 May 2017)
-- build-wolfssl: Sync config with wolfSSL 3.11
-
- wolfSSL configure script relevant changes from 3.10 to 3.11:
-
- - Async threading support added; disabled by default without async
- crypto, which continues to be disabled by default.
-
- wolfSSL configure script relevant changes from 3.11 to 3.11.1 (beta):
-
- - TLS 1.3 beta support added; disabled by default.
-
- For experimenting I put in a comment block the defines needed to enable
- TLS 1.3 support (ie the equivalent of --enable-tls13).
-
-Daniel Stenberg (30 May 2017)
-- opts: more examples added to man pages
-
-- docs: clarify NO_PROXY further
-
- Fixes #1208
-
-- CURLOPT_PROXY.3: describe the environment variables more
-
-- transfer: init the infilesize from the postfields...
-
- ... with a strlen() if no size was set, and do this in the pretransfer
- function so that the info is set early. Otherwise, the default strlen()
- done on the POSTFIELDS data never sets state.infilesize.
-
- Reported-by: Vincas Razma
- Bug: #1294
-
-Jay Satiro (29 May 2017)
-- test557: fix ubsan runtime error due to int left shift
-
- - Test curl_msnprintf negative int width arg using INT_MIN instead of
- 1 << 31 which is undefined behavior.
-
- Closes https://github.com/curl/curl/issues/1516
-
-- mbedtls: fix variable shadow warning
-
- vtls/mbedtls.c:804:69: warning: declaration of 'entropy' shadows a global declaration [-Wshadow]
- CURLcode Curl_mbedtls_random(struct Curl_easy *data, unsigned char *entropy,
- ^~~~~~~
-
-Daniel Stenberg (29 May 2017)
-- RELEASE-NOTES: synced with 3aaac8c2f
-
-Dan Fandrich (28 May 2017)
-- tests: removed some redundant empty <stdout> sections
-
-- runtests.pl: removed <precommand> feature
-
- This hasn't been used in over a decade. <precheck> can still be used to
- run commands before the main test.
-
-Daniel Stenberg (27 May 2017)
-- opts: more examples added in option man pages
-
-Dan Fandrich (27 May 2017)
-- runtests.pl: removed unused arguments to valgrindparse
-
-Daniel Stenberg (25 May 2017)
-- TODO: 6.4 is done, send telnet data in chunks
-
-- [Phil Crump brought this change]
-
- docs/CURLOPT_SSLVERSION.3: Correct define name in example
-
- Closes #1509
-
-- ssh: fix 'left' may be used uninitialized
-
- follow-up to f31760e63b4e
-
- Reported-by: Michael Kaufmann
- Bug: https://github.com/curl/curl/pull/1495#issuecomment-303982793
-
-Michael Kaufmann (24 May 2017)
-- time: fix type conversions and compiler warnings
-
- Fix bugs and compiler warnings on systems with 32-bit long and
- 64-bit time_t.
-
- Reviewed-by: Daniel Stenberg
-
- Closes #1499
-
-Marcel Raad (24 May 2017)
-- examples: fix Wimplicit-fallthrough warnings
-
- This is contained in -Wextra with GCC 7.
-
-Daniel Stenberg (24 May 2017)
-- [Anatol Belski brought this change]
-
- winbuild: fix the nghttp2 build
-
- Closes #1321
-
-GitHub (24 May 2017)
-- [Sergei Nikulov brought this change]
-
- LDAP: documentation update per #878 changes (#1506)
-
-Daniel Stenberg (23 May 2017)
-- redirect: store the "would redirect to" URL when max redirs is reached
-
- Test 1261 added to verify.
-
- Reported-by: Lloyd Fournier
-
- Fixes #1489
- Closes #1497
-
-GitHub (24 May 2017)
-- [Sergei Nikulov brought this change]
-
- LDAP: fixed checksrc issue
-
-- [Sergei Nikulov brought this change]
-
- LDAP: using ldap_bind_s on Windows with methods (#878)
-
- * LDAP: using ldap_bind_s on Windows with methods(BASIC/DIGEST/NTLM/AUTONEG)
-
- * ldap: updated per build options handling
-
- * ldap: fixed logic for auth selection
-
-Daniel Stenberg (23 May 2017)
-- [Akhil Kedia brought this change]
-
- cmake: fix build on Ubuntu 14.04
-
- Fixed a syntax error with setting cache variables (The type and
- docstring were missing), resulting in build errors. Quoted the
- CURL_CA_PATH and CURL_CA_BUNDLE otherwise the path was written without
- quotes in C code, resulting in build errors.
-
- Closes #1503
-
- Signed-off-by: Akhil <akhil.kedia@samsung.com>
-
-- url: fix declaration of 'pipe' shadows a global declaration
-
- follow-up to 4cdb1be8246c
-
-Kamil Dudka (22 May 2017)
-- memdebug: fix compilation failure
-
- .... caused by a typo in the last commit (fixing issue #1504):
-
- memdebug.c: In function β€˜curl_fclose’:
- memdebug.c:444:3: error: implicit declaration of function
- β€˜DEBUGDEBUGASSERT’ [-Werror=implicit-function-declaration]
-
-Daniel Stenberg (22 May 2017)
-- assert: avoid, use DEBUGASSERT instead!
-
- ... as it does extra checks to actually work.
-
- Reported-by: jonrumsey at github
- Fixes #1504
-
-- [Simon Warta brought this change]
-
- cmake: remove unused variables: GNUTLS_ENABLED, NSS_ENABLED
-
-- [Simon Warta brought this change]
-
- cmake: remove CURL_CA_BUNDLE from cmake TODO
-
-- [Simon Warta brought this change]
-
- cmake: auto detection of CURL_CA_BUNDLE/CURL_CA_PATH
-
- Closes #1461
-
-- [Simon Warta brought this change]
-
- cmake: add CURL_CA_BUNDLE/CURL_CA_FALLBACK/CURL_CA_PATH options
-
-- [Simon Warta brought this change]
-
- cmake: Add CURL_CA_FALLBACK to curl_config.h.cmake
-
- This is for symmetry with the autoconf generated curl_config.h.in
-
-- RELEASE-NOTES: synced with 052a14e3c
-
-Michael Kaufmann (20 May 2017)
-- tests: stabilize test 1034
-
- Pass the invalid domain name on stdin. On some systems, the test
- framework cannot pass invalid UTF-8 sequences on the command line.
-
- Closes #1488
-
-Daniel Stenberg (20 May 2017)
-- ssh: ignore timeouts during disconnect
-
- ... as otherwise it risks not cleaning up the libssh2 handle properly
- which leads to memory leak!
-
- Assisted-by: Joel Depooter
-
- Closes #1495
- Closes #1479
-
- Bug: https://curl.haxx.se/mail/lib-2017-04/0024.html
-
-- ghiper.c/hiperfifo.c: add comment about missing timer functionality
-
- It takes someone to read up on the APIs of these libraries to figure out
- how to do this correctly.
-
- Reported-by: Michael Kaufmann
-
- Closes #1253
-
-- asiohiper.cpp / evhiperfifo.c: deal with negative timerfunction input
-
- That means delete the timer.
-
- Reported-by: Michael Kaufmann
- Ref: #1253
-
-- cmdline-opts/write-out.d: s/-L/--location
-
- Since the man page generator wants the long option name version to
- generate the proper output.
-
-- [Bernhard M. Wiedemann brought this change]
-
- mkhelp.pl: do not add current time into curl binary
-
- ... as part of hugehelpgz rodata to make build reproducible.
-
- See https://reproducible-builds.org/ for why this is good
-
- Closes #1490
-
-- oauth2-bearer.d: mention the <token> argument
-
-Nick Zitzmann (16 May 2017)
-- darwinssl: Fix exception when processing a client-side certificate file
- if no error was raised by the API but the SecIdentityRef was null
-
- Fixes #1450
-
-Daniel Stenberg (16 May 2017)
-- curl_sasl: fix build error with CURL_DISABLE_CRYPTO_AUTH + USE_NTLM
-
- Reported-by: wyattoday at github
- Fixes #1487
-
-- docs/cmdline-opts/config.d: edit for language
-
-- RELEASE-NOTES: synced with eb16305e6
-
-- [Travis Burtrum brought this change]
-
- SecureTransport/DarwinSSL: Implement public key pinning
-
- Closes #1400
-
-- man pages: fix example syntax errors
-
- follow-up to 5ddad099b42b50
-
-- docs/libcurl/opts: added more examples in man pages
-
-- CURLOPT_HTTPPROXYTUNNEL: clarify, add example
-
-- curl: show the libcurl release date in --version output
-
- ... and support and additional "security patched" date for those who
- enhance older versions that way. Pass on the define CURL_PATCHSTAMP with
- a date for that.
-
- Building with non-release headers shows the date as [unreleased].
-
- Also: this changes the date format generated in the curlver.h file to be
- "YYYY-MM-DD" (no name of the day or month, no time, no time zone) to
- make it easier on the eye and easier to parse. Example (new) date
- string: 2017-05-09
-
- Suggested-by: Brian Childs
-
- Closes #1474
-
-Dan Fandrich (13 May 2017)
-- url.c: add a compile-time check that CURL_MAX_WRITE_SIZE is large enough
-
- Some code (e.g. Curl_fillreadbuffer) assumes that this buffer is not
- exceedingly tiny and will break if it is. This same check is already
- done at run time in the CURLOPT_BUFFERSIZE option.
-
-- lib510: don't write past the end of the buffer if it's too small
-
-- tests: added missing keywords "chunked Transfer-Encoding"
-
-Daniel Stenberg (13 May 2017)
-- THANKS: add a few missing names
-
- ... I found them in the commit logs from the early years
-
-Dan Fandrich (13 May 2017)
-- tests: made a couple of prechecks consistent with others
-
- Also removed a TODO suggesting caching the precheck results. Tests
- showed this would save about 0.1 sec on the total test run time on a
- relatively modern system, an unnoticeable gain at the cost of longer and
- more complicated code. There would also be a danger that a cached test
- result would be inappropriately returned, such as when other test
- dependencies (like environment variables) are different or when the
- precheck causes side effects (like filesystem changes).
-
-Daniel Stenberg (12 May 2017)
-- FAQ: add 7.4 to toc
-
- ... and delete trailing whitespace
-
- Fixes #1484
-
-- multi: remove leftover debug infof() calls from e9fd794a6
-
-- pipeline: fix mistakenly trying to pipeline POSTs
-
- The function IsPipeliningPossible() would return TRUE if either
- pipelining OR HTTP/2 were possible on a connection, which would lead to
- it returning TRUE even for POSTs on HTTP/1 connections.
-
- It now returns a bitmask so that the caller can differentiate which kind
- the connection allows.
-
- Fixes #1481
- Closes #1483
- Reported-by: stootill at github
-
-Jay Satiro (12 May 2017)
-- [Ron Eldor brought this change]
-
- mbedtls: Support server renegotiation request
-
- Tested with servers: IIS 7.5; OpenSSL 1.0.2.
-
- Closes https://github.com/curl/curl/pull/1475
-
-Marcel Raad (11 May 2017)
-- cookie_interface: fix -Wcomma warning
-
- clang 5.0 complains:
- possible misuse of comma operator here [-Wcomma]
-
-- formdata: fix -Wcomma warning
-
- clang 5.0 complains:
- possible misuse of comma operator here [-Wcomma]
-
- Change the comma to a semicolon to fix that.
-
-Daniel Stenberg (10 May 2017)
-- multi: use a fixed array of timers instead of malloc
-
- ... since the total amount is low this is faster, easier and reduces
- memory overhead.
-
- Also, Curl_expire_done() can now mark an expire timeout as done so that
- it never times out.
-
- Closes #1472
-
-- multi: assign IDs to all timers and make each timer singleton
-
- A) reduces the timeout lists drastically
-
- B) prevents a lot of superfluous loops for timers that expires "in vain"
- when it has actually already been extended to fire later on
-
-- [Richard Hsu brought this change]
-
- tests: remove superfluous test 1399
-
- @MarcelRaad noted that `test1399` causes infinite loop on MinGW.
- Looking into this, seems like it is related to how Windows handles
- CRLF. See https://github.com/curl/curl/commit/9e093f by @mback2k.
- Removing `test1399` as it's identical to `test1326` then with such a
- fix.
-
- Test 1399 was broughy by commit 862b02f8947039e
-
- Closes #1478
-
-Dan Fandrich (9 May 2017)
-- tests: make test file names more unique
-
- Include the test number in the names of files written out by tests to
- reduce the chance of accidental duplication and to make it more clear
- which test is associated with which file.
-
-- tests: removed redundant --trace-ascii arguments
-
- This is already added by the test suite; it's not clear why all these
- tests had it, unless it's cargo-culting.
-
-Marcel Raad (9 May 2017)
-- tool: fix remaining -Wcast-qual warnings
-
- Avoid casting away low-level const.
-
-Daniel Stenberg (9 May 2017)
-- formboundary: convert assert into run-time check
-
- ... to really make sure the boundary fits in the target buffer.
-
- Fixes unused parameter 'buflen' warning.
-
- Reported-by: Michael Kaufmann
- Bug: https://github.com/curl/curl/pull/1468#issuecomment-300078754
-
-Dan Fandrich (9 May 2017)
-- tests: list the primary server first in the server section
-
-Daniel Stenberg (8 May 2017)
-- curl: generate the --help output
-
- ... using the docs/cmdline-opts/gen.pl script, so that we get all the
- command line option documentation from the same source.
-
- The generation of the list has to be done manually and pasted into the
- source code.
-
- Closes #1465
-
-- tests: updated for modified fake random
-
-- [Jay Satiro brought this change]
-
- rand: treat fake entropy the same regardless of endianness
-
- When the random seed is purposely made predictable for testing purposes
- by using the CURL_ENTROPY environment variable, process that data in an
- endian agnostic way so the the initial random seed is the same
- regardless of endianness.
-
- - Change Curl_rand to write to a char array instead of int array.
-
- - Add Curl_rand_hex to write random hex characters to a buffer.
-
- Fixes #1315
- Closes #1468
-
- Co-authored-by: Daniel Stenberg
- Reported-by: Michael Kaufmann
-
-Dan Fandrich (8 May 2017)
-- tests: give each stunnel.conf file a unique name
-
- Otherwise, subsequent uses of stunnel overwrite the configuration file
- of previous invocations so they can no longer be inspected.
-
-Marcel Raad (8 May 2017)
-- tool_msgs: remove wrong cast
-
- Commit 481e0de00a9003b9c5220b120e3fc302d9b0932d changed the variable
- type from int to size_t, so don't cast the result of strlen to int
- anymore.
-
-- tftpd: fix signed/unsigned mismatch warnings
-
- alarm's argument is unsigned.
-
-- libtest: fix MinGW-w64 warnings
-
- long is 32 bits while size_t is 64 bits on MinGW-w64, so
- typecheck-gcc.h complains when using size_t for a long option.
- Also, curl_socket_t is unsigned long long rather than int.
-
-Daniel Stenberg (8 May 2017)
-- curl.1: depend the build on the Makefile.inc too
-
- ... to also make it update when we remove files, like we did for
- --environment in commit a8e388dd1095.
-
-- RELEASE-NOTES: synced with e3f84efc32d6b01a
-
-- runtests: fix "use of undefined value" warning in -R handling
-
-Marcel Raad (8 May 2017)
-- test537: use correct variable type
-
- Avoids narrowing conversion warnings because rlim_t is usually
- unsigned long.
-
- Closes https://github.com/curl/curl/pull/1469
-
-- sendrecv: fix MinGW-w64 warning
-
- The first argument to select is an int, while curl_socket_t is
- unsigned long long when using WinSock. It's ignored anyway [1].
-
- [1] https://msdn.microsoft.com/en-us/library/windows/desktop/ms740141.aspx
-
-- tool_parsecfg: fix -Wcast-qual warning
-
- Don't convert string literal to char * before assigning it to
- const char *.
-
-- asyn-thread: fix unused macro warnings
-
- Don't do anything in this file if CURLRES_THREADED is not defined.
-
-- tftp: silence bad-function-cast warning
-
- The cases this warns about are handled elsewhere, so just use an
- intermediate variable to silence the warning.
-
-Daniel Stenberg (7 May 2017)
-- [canavan at github brought this change]
-
- buildconf: fix hang on IRIX
-
- Apparently, /usr/bin/m4 ignores the --version parameter and waits for
- input from stdin.
-
- Fixes #1471
-
-- opts: fix bad example formatting \n => \\n
-
- ...to render properly nroff.
-
-- opts: examples added to 8 more libcurl option man pages
-
-- curl: remove tool_writeenv.[ch]
-
- ... and USE_ENVIRONMENT and --environment. It was once added for RISC OS
- support and its platform specific behavior has been annoying ever
- since. Added in commit c3c8bbd3b2688da8e, mostly unchanged since
- then. Most probably not actually used for years.
-
- Closes #1463
-
-Dan Fandrich (6 May 2017)
-- runtests.pl: simplify the datacheck read section
-
- Also, document that numbered datacheck sections are possible.
-
-Marcel Raad (5 May 2017)
-- tests: fix -Wcast-qual warnings
-
- Avoid casting string literals to non-const char *.
-
-Daniel Stenberg (5 May 2017)
-- docs/opts: 24 more man pages now have examples
-
-- docs/opts: 23 more man pages now have examples
-
-- tests/server: run checksrc by default in debug-builds
-
-- curl_slist_append.3: clarify a NULL input creates a new list
-
-Marcel Raad (5 May 2017)
-- unit1305: fix compiler warning
-
- calloc and ai_addrlen expect different (usually unsigned) types.
-
-Daniel Stenberg (5 May 2017)
-- runtests: use -R for random order
-
- Suggested-by: Dan Fandrich
-
-- runtests: add -o to run test cases in scrambled order
-
- ... instead of numerical order.
-
- Closes #1466
-
-Dan Fandrich (4 May 2017)
-- sockfilt.c: shortened too long line
-
-Marcel Raad (4 May 2017)
-- tests/server: make string literals const
-
- assign string literals to const char * instead of char * in order to
- avoid a lot of these warnings:
- cast from 'const char *' to 'char *' drops const qualifier
- [-Wcast-qual]
-
-Dan Fandrich (4 May 2017)
-- schannel: return a more specific error code for SEC_E_UNTRUSTED_ROOT
-
-- test557: set a known good numeric locale
-
- Windows does not allow setting the locale with environment variables (as
- the test attempted to do), so the test failed when run with a user
- locale that has a comma as radixchar. Changed the test to call
- setlocale() explicitly to ensure that a known working locale is set even
- on Windows.
-
-Daniel Stenberg (4 May 2017)
-- curl: fix warning "comma at end of enumerator list"
-
-- test559: verify use of minimum CURLOPT_BUFFERSIZE
-
-Marcel Raad (4 May 2017)
-- curl_setup_once: use SEND_QUAL_ARG2 for swrite
-
- SEND_QUAL_ARG2 had to be set, but was never used. Use it in swrite to
- avoid warnings about casting away low-level const.
-
- Closes https://github.com/curl/curl/pull/1464
-
-Daniel Stenberg (4 May 2017)
-- CURLINFO_REDIRECT_URL.3: add example
-
-- CURLINFO_EFFECTIVE_URL.3: add example
-
-Marcel Raad (3 May 2017)
-- lib: fix compiler warnings
-
- Fix the following warnings when building the tests by using the correct
- types:
- cast from 'const char *' to 'void *' drops const qualifier
- [-Wcast-qual]
- implicit conversion changes signedness [-Wsign-conversion]
-
-- typecheck-gcc: add support for CURLINFO_SOCKET
-
- Closes https://github.com/curl/curl/pull/1452
-
-- typecheck-gcc: add missing string options
-
- Closes https://github.com/curl/curl/pull/1452
-
-Daniel Stenberg (3 May 2017)
-- abstract-unix-socket.d: shorten the help text to fit within 79 cols
-
-- RELEASE-NOTES: synced with 862b02f89
-
-- [Richard Hsu brought this change]
-
- Telnet: Write full buffer instead of byte-by-byte
-
- Previous TODO wanting to write in chunks. We should support writing more
- at once since some TELNET servers may respond immediately upon first
- byte written such as WHOIS servers.
-
- Closes #1389
-
-- curl: non-boolean command line args reject --no- prefixes
-
- ... and instead properly respond with an error message to the user
- instead of silently ignoring.
-
- Fixes #1453
- Closes #1458
-
-Marcel Raad (2 May 2017)
-- testpart: remove _MPRINTF_REPLACE
-
- Support for _MPRINTF_REPLACE in mprintf.h was removed in
- 55452ebdff47f98bf3cc383f1dfc3623fcaefefd, replaced with curl_printf.h.
diff --git a/CMake/Utilities.cmake b/CMake/Utilities.cmake
index 8b6276df..005b166f 100644
--- a/CMake/Utilities.cmake
+++ b/CMake/Utilities.cmake
@@ -19,7 +19,7 @@ function(LIST_SPACES_APPEND_ONCE LIST_NAME)
set(${LIST_NAME} "${NEW_LIST_SPACE}" PARENT_SCOPE)
endfunction()
-# Convinience function that does the same as LIST(FIND ...) but with a TRUE/FALSE return value.
+# Convenience function that does the same as LIST(FIND ...) but with a TRUE/FALSE return value.
# Ex: IN_STR_LIST(MY_LIST "Searched item" WAS_FOUND)
function(IN_STR_LIST LIST_NAME ITEM_SEARCHED RETVAL)
list(FIND ${LIST_NAME} ${ITEM_SEARCHED} FIND_POS)
diff --git a/README.version b/README.version
index e54612c3..a8d18524 100644
--- a/README.version
+++ b/README.version
@@ -1,5 +1,5 @@
-URL: https://curl.haxx.se/download/curl-7.57.0.tar.gz
-Version: 7.57.0
+URL: https://curl.haxx.se/download/curl-7.59.0.tar.gz
+Version: 7.59.0
License: MIT
License File: NOTICE
BugComponent: 31714
diff --git a/RELEASE-NOTES b/RELEASE-NOTES
index eefd0c35..6cbfe48e 100644
--- a/RELEASE-NOTES
+++ b/RELEASE-NOTES
@@ -1,100 +1,100 @@
-Curl and libcurl 7.58.0
+Curl and libcurl 7.59.0
- Public curl releases: 172
- Command line options: 211
- curl_easy_setopt() options: 249
+ Public curl releases: 173
+ Command line options: 213
+ curl_easy_setopt() options: 253
Public functions in libcurl: 74
- Contributors: 1685
+ Contributors: 1705
This release includes the following changes:
- o new libssh-powered SSH SCP/SFTP back-end
- o curl-config: add --ssl-backends [10]
+ o curl: add --proxy-pinnedpubkey [10]
+ o added: CURLOPT_TIMEVALUE_LARGE and CURLINFO_FILETIME_T [13]
+ o CURLOPT_RESOLVE: Add support for multiple IP addresses per entry [37]
+ o Add option CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS [37]
+ o Add new tool option --happy-eyeballs-timeout-ms [37]
+ o Add CURLOPT_RESOLVER_START_FUNCTION and CURLOPT_RESOLVER_START_DATA [39]
This release includes the following bugfixes:
- o http2: fix incorrect trailer buffer size [40]
- o http: prevent custom Authorization headers in redirects [55]
- o travis: add boringssl build [1]
- o examples/xmlstream.c: don't switch off CURL_GLOBAL_SSL [2]
- o SSL: Avoid magic allocation of SSL backend specific data [3]
- o lib: don't export all symbols, just everything curl_* [4]
- o libssh2: send the correct CURLE error code on scp file not found
- o libssh2: return CURLE_UPLOAD_FAILED on failure to upload
- o openssl: enable pkcs12 in boringssl builds [5]
- o libssh2: remove dead code from SSH_SFTP_QUOTE [6]
- o sasl_getmesssage: make sure we have a long enough string to pass [7]
- o conncache: fix several lock issues [8]
- o threaded-shared-conn.c: new example
- o conncache: only allow multiplexing within same multi handle [9]
- o configure: check for netinet/in6.h [11]
- o URL: tolerate backslash after drive letter for FILE: [12]
- o openldap: add commented out debug possibilities [13]
- o include: get netinet/in.h before linux/tcp.h [14]
- o CONNECT: keep close connection flag in http_connect_state struct [15]
- o BINDINGS: another PostgreSQL client
- o curl: limit -# update frequency for unknown total size [16]
- o configure: add AX_CODE_COVERAGE only if using gcc [17]
- o curl.h: remove incorrect comment about ERRORBUFFER
- o openssl: improve data-pending check for https proxy [18]
- o curl: remove __EMX__ #ifdefs [19]
- o CURLOPT_PRIVATE.3: fix grammar [20]
- o sftp: allow quoted commands to use relative paths [21]
- o CURLOPT_DNS_CACHE_TIMEOUT.3: see also CURLOPT_RESOLVE
- o RESOLVE: output verbose text when trying to set a duplicate name
- o openssl: Disable file buffering for Win32 SSLKEYLOGFILE [22]
- o multi_done: prune DNS cache [23]
- o tests: update .gitignore for libtests
- o tests: mark data files as non-executable in git
- o CURLOPT_DNS_LOCAL_IP4.3: fixed the "SEE ALSO" to not self-reference
- o curl.1: documented two missing valid exit codes
- o curl.1: mention http:// and https:// as valid proxy prefixes
- o vtls: replaced getenv() with curl_getenv() [24]
- o setopt: less *or equal* than INT_MAX/1000 should be fine [25]
- o examples/smtp-mail.c: use separate defines for options and mail
- o curl: support >256 bytes warning messsages [26]
- o conncache: fix a return code
- o krb5: fix a potential access of uninitialized memory
- o rand: add a clang-analyzer work-around
- o CURLOPT_READFUNCTION.3: refer to argument with correct name [27]
- o brotli: allow compiling with version 0.6.0
- o content_encoding: rework zlib_inflate [28]
- o curl_easy_reset: release mime-related data [29]
- o examples/rtsp: fix error handling macros [30]
- o build-openssl.bat: Added support for VC15
- o build-wolfssl.bat: Added support for VC15
- o build: Added Visual Studio 2017 project files
- o winbuild: Added support for VC15
- o curl: Support size modifiers for --max-filesize [32]
- o examples/cacertinmem: ignore cert-already-exists error [33]
- o brotli: data at the end of content can be lost [34]
- o curl_version_info.3: call the argument 'age' [35]
- o openssl: fix memory leak of SSLKEYLOGFILE filename
- o build: remove HAVE_LIMITS_H check [36]
- o --mail-rcpt: fix short-text description
- o scripts: allow all perl scripts to be run directly [37]
- o progress: calculate transfer speed on milliseconds if possible [38]
- o system.h: check __LONG_MAX__ for defining curl_off_t [31]
- o easy: fix connection ownership in curl_easy_pause [39]
- o setopt: reintroduce non-static Curl_vsetopt() for OS400 support [41]
- o setopt: fix SSLVERSION to allow CURL_SSLVERSION_MAX_ values [42]
- o configure.ac: append extra linker flags instead of prepending them [43]
- o HTTP: bail out on negative Content-Length: values [44]
- o docs: comment about CURLE_READ_ERROR returned by curl_mime_filedata
- o mime: clone mime tree upon easy handle duplication [45]
- o openssl: enable SSLKEYLOGFILE support by default [46]
- o smtp/pop3/imap_get_message: decrease the data length too... [47]
- o CURLOPT_TCP_NODELAY.3: fix typo [48]
- o SMB: fix numeric constant suffix and variable types [49]
- o ftp-wildcard: fix matching an empty string with "*[^a]" [50]
- o curl_fnmatch: only allow 5 '*' sections in a single pattern
- o openssl: fix potential memory leak in SSLKEYLOGFILE logic
- o SSH: Fix state machine for ssh-agent authentication [51]
- o examples/url2file.c: add missing curl_global_cleanup() call [52]
- o http2: don't close connection when single transfer is stopped [53]
- o libcurl-env.3: first version
- o curl: progress bar refresh, get width using ioctl() [54]
- o CONNECT_TO: fail attempt to set an IPv6 numerical without IPv6 support [56]
+ o openldap: check ldap_get_attribute_ber() results for NULL before using [50]
+ o FTP: reject path components with control codes [51]
+ o readwrite: make sure excess reads don't go beyond buffer end [52]
+ o lib555: drop text conversion and encode data as ascii codes [1]
+ o lib517: make variable static to avoid compiler warning
+ o lib544: sync ascii code data with textual data [1]
+ o GSKit: restore pinnedpubkey functionality [2]
+ o darwinssl: Don't import client certificates into Keychain on macOS [3]
+ o parsedate: fix date parsing for systems with 32 bit long [4]
+ o openssl: fix pinned public key build error in FIPS mode [5]
+ o SChannel/WinSSL: Implement public key pinning [6]
+ o cookies: remove verbose "cookie size:" output
+ o progress-bar: don't use stderr explicitly, use bar->out [7]
+ o Fixes for MSDOS
+ o build: open VC15 projects with VS 2017
+ o curl_ctype: private is*() type macros and functions [8]
+ o configure: set PATH_SEPARATOR to colon for PATH w/o separator [9]
+ o winbuild: make linker generate proper PDB [11]
+ o curl_easy_reset: clear digest auth state [12]
+ o curl/curl.h: fix comment typo for CURLOPT_DNS_LOCAL_IP6 [14]
+ o range: commonize FTP and FILE range handling [15]
+ o progress-bar docs: update to match implementation [16]
+ o fnmatch: do not match the empty string with a character set
+ o fnmatch: accept an alphanum to be followed by a non-alphanum in char set [17]
+ o build: fix termios issue on android cross-compile [18]
+ o getdate: return -1 for out of range [19]
+ o formdata: use the mime-content type function [20]
+ o time-cond: fix reading the file modification time on Windows [21]
+ o build-openssl.bat: Extend VC15 support to include Enterprise and Professional
+ o build-wolfssl.bat: Extend VC15 support to include Enterprise and Professional
+ o openssl: Don't add verify locations when verifypeer==0
+ o fnmatch: optimize processing of consecutive *s and ?s pattern characters [22]
+ o schannel: fix compiler warnings [23]
+ o content_encoding: Add "none" alias to "identity" [24]
+ o get_posix_time: only check for overflows if they can happen
+ o http_chunks: don't write chunks twice with CURLOPT_HTTP_TRANSFER_DECODING [25]
+ o README: language fix [26]
+ o sha256: build with OpenSSL < 0.9.8 [27]
+ o smtp: fix processing of initial dot in data [28]
+ o --tlsauthtype: works only if libcurl is built with TLS-SRP support [29]
+ o tests: new tests for http raw mode [30]
+ o libcurl-security.3: man page discussion security concerns when using libcurl
+ o curl_gssapi: make sure this file too uses our *printf()
+ o BINDINGS: fix curb link (and remove ruby-curl-multi)
+ o nss: use PK11_CreateManagedGenericObject() if available [31]
+ o travis: add build with iconv enabled [32]
+ o ssh: add two missing state names [33]
+ o CURLOPT_HEADERFUNCTION.3: mention folded headers
+ o http: fix the max header length detection logic [34]
+ o header callback: don't chop headers into smaller pieces [35]
+ o CURLOPT_HEADER.3: clarify problems with different data sizes
+ o curl --version: show PSL if the run-time lib has it enabled
+ o examples/sftpuploadresume: resume upload via CURLOPT_APPEND [36]
+ o Return error if called recursively from within callbacks [38]
+ o sasl: prefer PLAIN mechanism over LOGIN
+ o winbuild: Use CALL to run batch scripts [40]
+ o curl_share_setopt.3: connection cache is shared within multi handles
+ o winbuild: Use macros for the names of some build utilities [41]
+ o projects/README: remove reference to dead IDN link/package [42]
+ o lib655: silence compiler warning [43]
+ o configure: Fix version check for OpenSSL 1.1.1
+ o docs/MANUAL: formfind.pl is not accessible on the site anymore [44]
+ o unit1309: fix warning on Windows x64 [45]
+ o unit1307: proper cleanup on OOM to fix torture tests
+ o curl_ctype: fix macro redefinition warnings
+ o build: get CFLAGS (including -werror) used for examples and tests [46]
+ o NO_PROXY: fix for IPv6 numericals in the URL [47]
+ o krb5: use nondeprecated functions [48]
+ o winbuild: prefer documented zlib library names [49]
+ o http2: mark the connection for close on GOAWAY [53]
+ o limit-rate: kick in even before "limit" data has been received [54]
+ o HTTP: allow "header;" to replace an internal header with a blank one [55]
+ o http2: verbose output new MAX_CONCURRENT_STREAMS values
+ o SECURITY: distros' max embargo time is 14 days
+ o curl tool: accept --compressed also if Brotli is enabled and zlib is not
+ o WolfSSL: adding TLSv1.3 [56]
+ o checksrc.pl: add -i and -m options
+ o CURLOPT_COOKIEFILE.3: "-" as file name means stdin
This release includes the following known bugs:
@@ -103,78 +103,76 @@ This release includes the following known bugs:
This release would not have looked like this without help, code, reports and
advice from friends like these:
- ahodesuka on github, Andreas Schneider, Basuke Suzuki, Brad Spencer,
- Chester Liu, cmfrolick on github, Craig de Stigter, Daniel Stenberg,
- Dan Johnson, David Benjamin, Dima Tisnek, Dimitrios Apostolou,
- Dmitry Kostjuchenko, Dominik HΓΆlzl, Elliot Saba, Frank Gevaerts, Gisle Vanem,
- guitared on github, Jan Ehrhardt, Johannes Schindelin, John DeHelian,
- John Hascall, jonrumsey on github, jungle-boogie on github, Kartik Mahajan,
- Martin Galvan, Matthew Kerwin, Mattias Fornander, Max Dymond, Michael Felt,
- Michael Gmelin, Michael Kaufmann, Mikalai Ananenka, Nikos Mavrogiannopoulos,
- Oleg Pudeyev, Patrick Dawson, Patrick Monnerat, Per Malmberg, Pete Lomax,
- Rainer Canavan, Randall S. Becker, Ray Satiro, Richard Alcock, Robert Kolcun,
- Sean MacLennan, Stanislav Zidek, Stepan Broz, Steve Holme,
- Thomas van Hesteren, Tomas Mraz, W. Mark Kubacki, XhstormR on github,
- Zachary Seguin, Zhouyihai Ding,
- (54 contributors)
+ Adam Marcionek, Alessandro Ghedini, Anders Bakken, Aron Bergman, Ben Greear,
+ BjΓΆrn Stenberg, Bruno Grasselli, Dair Grant, Dan Fandrich, Daniel Stenberg,
+ Dario Weisser, Douglas Mencken, Duy Phan Thanh, Earnestly on github,
+ Erik Johansson, Francisco Sedano, Gisle Vanem, Guido Berhoerster,
+ Henry Roeland, Kamil Dudka, Klaus Stein, Łukasz Domeradzki, Marcel Raad,
+ Martin Dreher, Max Dymond, Michael Kaufmann, MichaΕ‚ Janiszewski,
+ Mohammad AlSaleh, Patrick Monnerat, Patrick Schlangen, Ray Satiro,
+ Richard Alcock, Richard Moore, Rod Widdowson, Ruurd Beerstra,
+ Sergii Kavunenko, Sergio Borghese, Somnath Kundu, steelman on github,
+ Stefan Kanthak, Steve Holme, Tim Mcdonough, Travis Burtrum, Viktor Szakats,
+ 刘佩东,
+ (45 contributors)
Thanks! (and sorry if I forgot to mention someone)
References to bug reports and discussions on issues:
- [1] = https://curl.haxx.se/bug/?i=2118
- [2] = https://curl.haxx.se/mail/lib-2017-12/0000.html
- [3] = https://curl.haxx.se/bug/?i=2119
- [4] = https://curl.haxx.se/bug/?i=2127
- [5] = https://curl.haxx.se/bug/?i=2134
- [6] = https://curl.haxx.se/bug/?i=2143
- [7] = https://curl.haxx.se/bug/?i=2150
- [8] = https://curl.haxx.se/bug/?i=2132
- [9] = https://curl.haxx.se/bug/?i=2152
- [10] = https://curl.haxx.se/bug/?i=2128
- [11] = https://curl.haxx.se/bug/?i=2146
- [12] = https://curl.haxx.se/bug/?i=2154
- [13] = https://curl.haxx.se/bug/?i=2159
- [14] = https://curl.haxx.se/bug/?i=2160
- [15] = https://curl.haxx.se/bug/?i=2088
- [16] = https://curl.haxx.se/bug/?i=2158
- [17] = https://curl.haxx.se/bug/?i=2076
- [18] = https://curl.haxx.se/bug/?i=1916
- [19] = https://curl.haxx.se/bug/?i=2166
- [20] = https://curl.haxx.se/bug/?i=2168
- [21] = https://curl.haxx.se/bug/?i=1900
- [22] = https://github.com/curl/curl/pull/1346#issuecomment-350530901
- [23] = https://curl.haxx.se/bug/?i=2169
- [24] = https://curl.haxx.se/bug/?i=2171
- [25] = https://curl.haxx.se/bug/?i=2173
- [26] = https://curl.haxx.se/bug/?i=2174
- [27] = https://curl.haxx.se/bug/?i=2175
- [28] = https://curl.haxx.se/bug/?i=2068
- [29] = https://curl.haxx.se/mail/lib-2017-12/0060.html
- [30] = https://curl.haxx.se/bug/?i=2185
- [31] = https://curl.haxx.se/bug/?i=2216
- [32] = https://curl.haxx.se/bug/?i=2179
- [33] = https://curl.haxx.se/mail/lib-2017-12/0057.html
- [34] = https://curl.haxx.se/bug/?i=2194
- [35] = https://curl.haxx.se/mail/lib-2017-12/0074.html
- [36] = https://curl.haxx.se/bug/?i=2215
- [37] = https://curl.haxx.se/bug/?i=2222
- [38] = https://curl.haxx.se/bug/?i=2200
- [39] = https://curl.haxx.se/bug/?i=2217
- [40] = https://curl.haxx.se/docs/adv_2018-824a.html
- [41] = https://curl.haxx.se/bug/?i=2230
- [42] = https://curl.haxx.se/bug/?i=2225
- [43] = https://curl.haxx.se/bug/?i=2234
- [44] = https://curl.haxx.se/bug/?i=2212
- [45] = https://curl.haxx.se/bug/?i=2235
- [46] = https://curl.haxx.se/bug/?i=2210
- [47] = https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5206
- [48] = https://curl.haxx.se/bug/?i=2239
- [49] = https://curl.haxx.se/bug/?i=2211
- [50] = https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5251
- [51] = https://curl.haxx.se/bug/?i=2248
- [52] = https://curl.haxx.se/bug/?i=2245
- [53] = https://curl.haxx.se/bug/?i=2237
- [54] = https://curl.haxx.se/bug/?i=2242
- [55] = https://curl.haxx.se/docs/adv_2018-b3bf.html
- [56] = https://curl.haxx.se/mail/lib-2018-01/0087.html
+ [1] = https://curl.haxx.se/bug/?i=1872
+ [2] = https://curl.haxx.se/bug/?i=2263
+ [3] = https://curl.haxx.se/bug/?i=2085
+ [4] = https://curl.haxx.se/bug/?i=2250
+ [5] = https://curl.haxx.se/bug/?i=2258
+ [6] = https://curl.haxx.se/bug/?i=1429
+ [7] = https://github.com/curl/curl/commit/993dd5651a6c853bfe3870f6a69c7b329fa4e8ce#commitcomment-27070080
+ [8] = https://curl.haxx.se/bug/?i=2269
+ [9] = https://curl.haxx.se/bug/?i=2202
+ [10] = https://curl.haxx.se/bug/?i=2268
+ [11] = https://curl.haxx.se/bug/?i=2274
+ [12] = https://curl.haxx.se/mail/lib-2018-01/0074.html
+ [13] = https://curl.haxx.se/bug/?i=2238
+ [14] = https://curl.haxx.se/bug/?i=2275
+ [15] = https://curl.haxx.se/bug/?i=2205
+ [16] = https://curl.haxx.se/bug/?i=2271
+ [17] = https://curl.haxx.se/mail/lib-2018-01/0114.html
+ [18] = https://curl.haxx.se/mail/lib-2018-01/0122.html
+ [19] = https://curl.haxx.se/bug/?i=2278
+ [20] = https://curl.haxx.se/bug/?i=2282
+ [21] = https://curl.haxx.se/bug/?i=2164
+ [22] = https://curl.haxx.se/bug/?i=2291
+ [23] = https://curl.haxx.se/bug/?i=2296
+ [24] = https://curl.haxx.se/bug/?i=2298
+ [25] = https://curl.haxx.se/bug/?i=2303
+ [26] = https://curl.haxx.se/bug/?i=2300
+ [27] = https://curl.haxx.se/bug/?i=2305
+ [28] = https://curl.haxx.se/bug/?i=2304
+ [29] = https://bugzilla.redhat.com/1542256
+ [30] = https://curl.haxx.se/bug/?i=2303
+ [31] = https://bugzilla.redhat.com/1510247
+ [32] = https://curl.haxx.se/bug/?i=1872
+ [33] = https://curl.haxx.se/bug/?i=2312
+ [34] = https://curl.haxx.se/mail/lib-2018-02/0056.html
+ [35] = https://curl.haxx.se/bug/?i=2314
+ [36] = https://curl.haxx.se/mail/lib-2018-02/0072.html
+ [37] = https://curl.haxx.se/bug/?i=2260
+ [38] = https://curl.haxx.se/bug/?i=2302
+ [39] = https://curl.haxx.se/bug/?i=2311
+ [40] = https://curl.haxx.se/bug/?i=2330
+ [41] = https://curl.haxx.se/bug/?i=2329
+ [42] = https://curl.haxx.se/bug/?i=2325
+ [43] = https://curl.haxx.se/bug/?i=2335
+ [44] = https://curl.haxx.se/bug/?i=2342
+ [45] = https://curl.haxx.se/bug/?i=2341
+ [46] = https://curl.haxx.se/bug/?i=2337
+ [47] = https://curl.haxx.se/bug/?i=2353
+ [48] = https://curl.haxx.se/bug/?i=2356
+ [49] = https://curl.haxx.se/bug/?i=2354
+ [50] = https://curl.haxx.se/docs/adv_2018-97a2.html
+ [51] = https://curl.haxx.se/docs/adv_2018-9cd6.html
+ [52] = https://curl.haxx.se/docs/adv_2018-b047.html
+ [53] = https://curl.haxx.se/bug/?i=2365
+ [54] = https://curl.haxx.se/bug/?i=2371
+ [55] = https://curl.haxx.se/bug/?i=2357
+ [56] = https://curl.haxx.se/bug/?i=2349
diff --git a/config.guess b/config.guess
index 2e9ad7fe..31e01efe 100755
--- a/config.guess
+++ b/config.guess
@@ -1,8 +1,8 @@
#! /bin/sh
# Attempt to guess a canonical system name.
-# Copyright 1992-2016 Free Software Foundation, Inc.
+# Copyright 1992-2017 Free Software Foundation, Inc.
-timestamp='2016-10-02'
+timestamp='2017-11-07'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -15,7 +15,7 @@ timestamp='2016-10-02'
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
@@ -27,7 +27,7 @@ timestamp='2016-10-02'
# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
#
# You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
+# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
#
# Please send patches to <config-patches@gnu.org>.
@@ -39,7 +39,7 @@ Usage: $0 [OPTION]
Output the configuration name of the system \`$me' is run on.
-Operation modes:
+Options:
-h, --help print this help, then exit
-t, --time-stamp print date of last modification, then exit
-v, --version print version number, then exit
@@ -50,7 +50,7 @@ version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright 1992-2016 Free Software Foundation, Inc.
+Copyright 1992-2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -244,6 +244,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE}
exit ;;
+ *:MidnightBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-midnightbsd${UNAME_RELEASE}
+ exit ;;
*:ekkoBSD:*:*)
echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
exit ;;
@@ -259,6 +262,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
*:Sortix:*:*)
echo ${UNAME_MACHINE}-unknown-sortix
exit ;;
+ *:Redox:*:*)
+ echo ${UNAME_MACHINE}-unknown-redox
+ exit ;;
alpha:OSF1:*:*)
case $UNAME_RELEASE in
*4.0)
@@ -315,15 +321,6 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
exitcode=$?
trap '' 0
exit $exitcode ;;
- Alpha\ *:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # Should we change UNAME_MACHINE based on the output of uname instead
- # of the specific Alpha model?
- echo alpha-pc-interix
- exit ;;
- 21064:Windows_NT:50:3)
- echo alpha-dec-winnt3.5
- exit ;;
Amiga*:UNIX_System_V:4.0:*)
echo m68k-unknown-sysv4
exit ;;
@@ -485,13 +482,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
#endif
#if defined (host_mips) && defined (MIPSEB)
#if defined (SYSTYPE_SYSV)
- printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+ printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0);
#endif
#if defined (SYSTYPE_SVR4)
- printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+ printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0);
#endif
#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
- printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+ printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0);
#endif
#endif
exit (-1);
@@ -614,7 +611,7 @@ EOF
*:AIX:*:*)
echo rs6000-ibm-aix
exit ;;
- ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+ ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
echo romp-ibm-bsd4.4
exit ;;
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
@@ -635,8 +632,8 @@ EOF
9000/[34678]??:HP-UX:*:*)
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
case "${UNAME_MACHINE}" in
- 9000/31? ) HP_ARCH=m68000 ;;
- 9000/[34]?? ) HP_ARCH=m68k ;;
+ 9000/31?) HP_ARCH=m68000 ;;
+ 9000/[34]??) HP_ARCH=m68k ;;
9000/[678][0-9][0-9])
if [ -x /usr/bin/getconf ]; then
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
@@ -749,7 +746,7 @@ EOF
{ echo "$SYSTEM_NAME"; exit; }
echo unknown-hitachi-hiuxwe2
exit ;;
- 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
echo hppa1.1-hp-bsd
exit ;;
9000/8??:4.3bsd:*:*)
@@ -758,7 +755,7 @@ EOF
*9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
echo hppa1.0-hp-mpeix
exit ;;
- hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
echo hppa1.1-hp-osf
exit ;;
hp8??:OSF1:*:*)
@@ -837,10 +834,11 @@ EOF
UNAME_PROCESSOR=`/usr/bin/uname -p`
case ${UNAME_PROCESSOR} in
amd64)
- echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
- *)
- echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ UNAME_PROCESSOR=x86_64 ;;
+ i386)
+ UNAME_PROCESSOR=i586 ;;
esac
+ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
exit ;;
i*:CYGWIN*:*)
echo ${UNAME_MACHINE}-pc-cygwin
@@ -854,10 +852,6 @@ EOF
*:MSYS*:*)
echo ${UNAME_MACHINE}-pc-msys
exit ;;
- i*:windows32*:*)
- # uname -m includes "-pc" on this system.
- echo ${UNAME_MACHINE}-mingw32
- exit ;;
i*:PW*:*)
echo ${UNAME_MACHINE}-pc-pw32
exit ;;
@@ -873,27 +867,12 @@ EOF
echo ia64-unknown-interix${UNAME_RELEASE}
exit ;;
esac ;;
- [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
- echo i${UNAME_MACHINE}-pc-mks
- exit ;;
- 8664:Windows_NT:*)
- echo x86_64-pc-mks
- exit ;;
- i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
- # UNAME_MACHINE based on the output of uname instead of i386?
- echo i586-pc-interix
- exit ;;
i*:UWIN*:*)
echo ${UNAME_MACHINE}-pc-uwin
exit ;;
amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
echo x86_64-unknown-cygwin
exit ;;
- p*:CYGWIN*:*)
- echo powerpcle-unknown-cygwin
- exit ;;
prep*:SunOS:5.*:*)
echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
@@ -1096,7 +1075,7 @@ EOF
i*86:*DOS:*:*)
echo ${UNAME_MACHINE}-pc-msdosdjgpp
exit ;;
- i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+ i*86:*:4.*:*)
UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
@@ -1303,14 +1282,21 @@ EOF
if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_64BIT_ARCH >/dev/null
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
then
case $UNAME_PROCESSOR in
i386) UNAME_PROCESSOR=x86_64 ;;
powerpc) UNAME_PROCESSOR=powerpc64 ;;
esac
fi
+ # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
+ if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_PPC >/dev/null
+ then
+ UNAME_PROCESSOR=powerpc
+ fi
fi
elif test "$UNAME_PROCESSOR" = i386 ; then
# Avoid executing cc on OS X 10.9, as it ships with a stub
@@ -1334,15 +1320,18 @@ EOF
*:QNX:*:4*)
echo i386-pc-qnx
exit ;;
- NEO-?:NONSTOP_KERNEL:*:*)
+ NEO-*:NONSTOP_KERNEL:*:*)
echo neo-tandem-nsk${UNAME_RELEASE}
exit ;;
NSE-*:NONSTOP_KERNEL:*:*)
echo nse-tandem-nsk${UNAME_RELEASE}
exit ;;
- NSR-?:NONSTOP_KERNEL:*:*)
+ NSR-*:NONSTOP_KERNEL:*:*)
echo nsr-tandem-nsk${UNAME_RELEASE}
exit ;;
+ NSX-*:NONSTOP_KERNEL:*:*)
+ echo nsx-tandem-nsk${UNAME_RELEASE}
+ exit ;;
*:NonStop-UX:*:*)
echo mips-compaq-nonstopux
exit ;;
@@ -1414,16 +1403,28 @@ EOF
exit ;;
esac
+echo "$0: unable to guess system type" >&2
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}" in
+ mips:Linux | mips64:Linux)
+ # If we got here on MIPS GNU/Linux, output extra information.
+ cat >&2 <<EOF
+
+NOTE: MIPS GNU/Linux systems require a C compiler to fully recognize
+the system type. Please install a C compiler and try again.
+EOF
+ ;;
+esac
+
cat >&2 <<EOF
-$0: unable to guess system type
This script (version $timestamp), has failed to recognize the
-operating system you are using. If your script is old, overwrite
-config.guess and config.sub with the latest versions from:
+operating system you are using. If your script is old, overwrite *all*
+copies of config.guess and config.sub with the latest versions from:
- http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
+ https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
and
- http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
+ https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
If $0 has already been updated, send the following data and any
information you think might be pertinent to config-patches@gnu.org to
@@ -1455,7 +1456,7 @@ EOF
exit 1
# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'write-file-functions 'time-stamp)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "'"
diff --git a/config.sub b/config.sub
index dd2ca93c..00f68b8e 100755
--- a/config.sub
+++ b/config.sub
@@ -1,8 +1,8 @@
#! /bin/sh
# Configuration validation subroutine script.
-# Copyright 1992-2016 Free Software Foundation, Inc.
+# Copyright 1992-2017 Free Software Foundation, Inc.
-timestamp='2016-11-04'
+timestamp='2017-11-23'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -15,7 +15,7 @@ timestamp='2016-11-04'
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
@@ -33,7 +33,7 @@ timestamp='2016-11-04'
# Otherwise, we print the canonical config type on stdout and succeed.
# You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
+# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
# This file is supposed to be the same for all GNU packages
# and recognize all the CPU types, system types and aliases
@@ -57,7 +57,7 @@ Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
Canonicalize a configuration name.
-Operation modes:
+Options:
-h, --help print this help, then exit
-t, --time-stamp print date of last modification, then exit
-v, --version print version number, then exit
@@ -67,7 +67,7 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.sub ($timestamp)
-Copyright 1992-2016 Free Software Foundation, Inc.
+Copyright 1992-2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -229,9 +229,6 @@ case $os in
-ptx*)
basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
;;
- -windowsnt*)
- os=`echo $os | sed -e 's/windowsnt/winnt/'`
- ;;
-psos*)
os=-psos
;;
@@ -263,7 +260,7 @@ case $basic_machine in
| fido | fr30 | frv | ft32 \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| hexagon \
- | i370 | i860 | i960 | ia64 \
+ | i370 | i860 | i960 | ia16 | ia64 \
| ip2k | iq2000 \
| k1om \
| le32 | le64 \
@@ -315,7 +312,7 @@ case $basic_machine in
| ubicom32 \
| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
| visium \
- | we32k \
+ | wasm32 \
| x86 | xc16x | xstormy16 | xtensa \
| z8k | z80)
basic_machine=$basic_machine-unknown
@@ -388,7 +385,7 @@ case $basic_machine in
| h8300-* | h8500-* \
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
| hexagon-* \
- | i*86-* | i860-* | i960-* | ia64-* \
+ | i*86-* | i860-* | i960-* | ia16-* | ia64-* \
| ip2k-* | iq2000-* \
| k1om-* \
| le32-* | le64-* \
@@ -446,6 +443,7 @@ case $basic_machine in
| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
| vax-* \
| visium-* \
+ | wasm32-* \
| we32k-* \
| x86-* | x86_64-* | xc16x-* | xps100-* \
| xstormy16-* | xtensa*-* \
@@ -641,7 +639,7 @@ case $basic_machine in
basic_machine=rs6000-bull
os=-bosx
;;
- dpx2* | dpx2*-bull)
+ dpx2*)
basic_machine=m68k-bull
os=-sysv3
;;
@@ -903,7 +901,7 @@ case $basic_machine in
basic_machine=v70-nec
os=-sysv
;;
- next | m*-next )
+ next | m*-next)
basic_machine=m68k-next
case $os in
-nextstep* )
@@ -948,6 +946,9 @@ case $basic_machine in
nsr-tandem)
basic_machine=nsr-tandem
;;
+ nsx-tandem)
+ basic_machine=nsx-tandem
+ ;;
op50n-* | op60c-*)
basic_machine=hppa1.1-oki
os=-proelf
@@ -1243,6 +1244,9 @@ case $basic_machine in
basic_machine=a29k-wrs
os=-vxworks
;;
+ wasm32)
+ basic_machine=wasm32-unknown
+ ;;
w65*)
basic_machine=w65-wdc
os=-none
@@ -1251,6 +1255,9 @@ case $basic_machine in
basic_machine=hppa1.1-winbond
os=-proelf
;;
+ x64)
+ basic_machine=x86_64-pc
+ ;;
xbox)
basic_machine=i686-pc
os=-mingw32
@@ -1358,8 +1365,8 @@ esac
if [ x"$os" != x"" ]
then
case $os in
- # First match some system type aliases
- # that might get confused with valid system types.
+ # First match some system type aliases that might get confused
+ # with valid system types.
# -solaris* is a basic system type, with this one exception.
-auroraux)
os=-auroraux
@@ -1379,9 +1386,9 @@ case $os in
-gnu/linux*)
os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
;;
- # First accept the basic system types.
+ # Now accept the basic system types.
# The portable systems comes first.
- # Each alternative MUST END IN A *, to match a version number.
+ # Each alternative MUST end in a * to match a version number.
# -sysv* is not here because it comes later, after sysvr4.
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
| -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
@@ -1397,7 +1404,7 @@ case $os in
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
- | -chorusos* | -chorusrdb* | -cegcc* \
+ | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
| -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
| -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
| -linux-newlib* | -linux-musl* | -linux-uclibc* \
@@ -1409,7 +1416,7 @@ case $os in
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
| -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
- | -onefs* | -tirtos* | -phoenix* | -fuchsia*)
+ | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
@@ -1484,7 +1491,7 @@ case $os in
-nova*)
os=-rtmk-nova
;;
- -ns2 )
+ -ns2)
os=-nextstep2
;;
-nsk*)
@@ -1539,6 +1546,19 @@ case $os in
-dicos*)
os=-dicos
;;
+ -pikeos*)
+ # Until real need of OS specific support for
+ # particular features comes up, bare metal
+ # configurations are quite functional.
+ case $basic_machine in
+ arm*)
+ os=-eabi
+ ;;
+ *)
+ os=-elf
+ ;;
+ esac
+ ;;
-nacl*)
;;
-ios)
@@ -1638,6 +1658,9 @@ case $basic_machine in
sparc-* | *-sun)
os=-sunos4.1.1
;;
+ pru-*)
+ os=-elf
+ ;;
*-be)
os=-beos
;;
@@ -1683,7 +1706,7 @@ case $basic_machine in
m88k-omron*)
os=-luna
;;
- *-next )
+ *-next)
os=-nextstep
;;
*-sequent)
@@ -1818,7 +1841,7 @@ echo $basic_machine$os
exit
# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'write-file-functions 'time-stamp)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "'"
diff --git a/configure b/configure
index cb90f424..9d38b941 100755
--- a/configure
+++ b/configure
@@ -233,9 +233,10 @@ if test $xc_tst_dirs_sem -eq $xc_tst_dirs_col; then
# When both counting methods give the same result we do not want to
# chose one over the other, and consider auto-detection not possible.
if test -z "$PATH_SEPARATOR"; then
- # Stop dead until user provides 'PATH_SEPARATOR' definition.
- echo "$xc_msg_err 'PATH_SEPARATOR' variable not set. $xc_msg_abrt" >&2
- exit 1
+ # User should provide the correct 'PATH_SEPARATOR' definition.
+ # Until then, guess that it is colon!
+ echo "$xc_msg_warn path separator not determined, guessing colon" >&2
+ PATH_SEPARATOR=':'
fi
else
# Separator with the greater directory count is the auto-detected one.
@@ -23142,6 +23143,7 @@ rm -f conftest.err conftest.i conftest.$ac_ext
;;
esac
case $tst_api in
+ 0x111) tst_show="1.1.1" ;;
0x110) tst_show="1.1.0" ;;
0x102) tst_show="1.0.2" ;;
0x101) tst_show="1.0.1" ;;
@@ -23173,6 +23175,42 @@ $as_echo "$tst_show" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenSSL library version" >&5
$as_echo_n "checking for OpenSSL library version... " >&6; }
if test "$tst_api" = "unknown"; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+
+#define ERR_clear_last_mark innocuous_ERR_clear_last_mark
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+#undef ERR_clear_last_mark
+#ifdef __cplusplus
+extern "C"
+#endif
+char ERR_clear_last_mark ();
+#if defined __stub_ERR_clear_last_mark || defined __stub___ERR_clear_last_mark
+choke me
+#endif
+
+int main (void)
+{
+return ERR_clear_last_mark ();
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ tst_api="0x111"
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ fi
+ if test "$tst_api" = "unknown"; then
case $host in
*-*-vms*)
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -23645,6 +23683,7 @@ rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
fi
case $tst_api in
+ 0x111) tst_show="1.1.1" ;;
0x110) tst_show="1.1.0" ;;
0x102) tst_show="1.0.2" ;;
0x101) tst_show="1.0.1" ;;
@@ -25361,6 +25400,16 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: detected NSS version $version" >&5
$as_echo "$as_me: detected NSS version $version" >&6;}
+ ac_fn_c_check_func "$LINENO" "PK11_CreateManagedGenericObject" "ac_cv_func_PK11_CreateManagedGenericObject"
+if test "x$ac_cv_func_PK11_CreateManagedGenericObject" = xyes; then :
+
+
+$as_echo "#define HAVE_PK11_CREATEMANAGEDGENERICOBJECT 1" >>confdefs.h
+
+
+fi
+
+
NSS_LIBS=$addlib
@@ -28843,6 +28892,43 @@ $as_echo "#define HAVE_BOOL_T 1" >>confdefs.h
fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if time_t is unsigned" >&5
+$as_echo_n "checking if time_t is unsigned... " >&6; }
+if test "$cross_compiling" = yes; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+
+ #include <time.h>
+ #include <limits.h>
+ time_t t = -1;
+ return (t > 0);
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+$as_echo "#define HAVE_TIME_T_UNSIGNED 1" >>confdefs.h
+
+
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
curl_includes_ws2tcpip="\
/* includes start */
diff --git a/configure.ac b/configure.ac
index c223a043..798fa5f1 100755
--- a/configure.ac
+++ b/configure.ac
@@ -5,7 +5,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
@@ -2483,6 +2483,15 @@ if test -z "$ssl_backends" -o "x$OPT_NSS" != xno; then
if test "x$USE_NSS" = "xyes"; then
AC_MSG_NOTICE([detected NSS version $version])
+ dnl PK11_CreateManagedGenericObject() was introduced in NSS 3.34 because
+ dnl PK11_DestroyGenericObject() does not release resources allocated by
+ dnl PK11_CreateGenericObject() early enough.
+ AC_CHECK_FUNC(PK11_CreateManagedGenericObject,
+ [
+ AC_DEFINE(HAVE_PK11_CREATEMANAGEDGENERICOBJECT, 1,
+ [if you have the PK11_CreateManagedGenericObject function])
+ ])
+
dnl needed when linking the curl tool without USE_EXPLICIT_LIB_DEPS
NSS_LIBS=$addlib
AC_SUBST([NSS_LIBS])
@@ -3483,6 +3492,23 @@ AC_CHECK_TYPE([bool],[
#endif
])
+AC_MSG_CHECKING([if time_t is unsigned])
+AC_RUN_IFELSE([
+ AC_LANG_SOURCE([[
+ #include <time.h>
+ #include <limits.h>
+ time_t t = -1;
+ return (t > 0);
+ ]])] ,[
+ AC_MSG_RESULT([yes])
+ AC_DEFINE(HAVE_TIME_T_UNSIGNED, 1, [Define this if time_t is unsigned])
+],[
+ AC_MSG_RESULT([no])
+],[
+ dnl cross-compiling, most systems are unsigned
+ AC_MSG_RESULT([no])
+])
+
CURL_CONFIGURE_CURL_SOCKLEN_T
CURL_CONFIGURE_PULL_SYS_POLL
diff --git a/docs/BINDINGS.md b/docs/BINDINGS.md
index b2d50fb3..024f169e 100644
--- a/docs/BINDINGS.md
+++ b/docs/BINDINGS.md
@@ -87,7 +87,7 @@ Bailiff and BΓ‘lint Szilakszi,
RPG, support for ILE/RPG on OS/400 is included in source distribution
-Ruby: [curb](http://curb.rubyforge.org/) written by Ross Bamford, [ruby-curl-multi](http://curl-multi.rubyforge.org/) written by Kristjan Petursson and Keith Rarick
+Ruby: [curb](https://github.com/taf2/curb) written by Ross Bamford
[Rust](https://github.com/carllerche/curl-rust) curl-rust - by Carl Lerche
@@ -95,7 +95,7 @@ Ruby: [curb](http://curb.rubyforge.org/) written by Ross Bamford, [ruby-curl-mul
[Scilab](https://help.scilab.org/docs/current/fr_FR/getURL.html) binding by Sylvestre Ledru
-[S-Lang](http://www.jedsoft.org/slang/modules/curl.html) by John E Davis
+[S-Lang](https://www.jedsoft.org/slang/modules/curl.html) by John E Davis
[Smalltalk](http://www.squeaksource.com/CurlPlugin/) Written by Danil Osipchuk
diff --git a/docs/BUGS b/docs/BUGS
index 33f06ced..7322d9b2 100644
--- a/docs/BUGS
+++ b/docs/BUGS
@@ -68,7 +68,7 @@ BUGS
The curl project's process for handling security related issues is
documented here:
- https://curl.haxx.se/dev/security.html
+ https://curl.haxx.se/dev/secprocess.html
1.4 What to report
diff --git a/docs/FAQ b/docs/FAQ
index 7ed5fa0c..cb28c2a5 100644
--- a/docs/FAQ
+++ b/docs/FAQ
@@ -218,9 +218,9 @@ FAQ
very well at the side. Curl's output can be piped into another program or
redirected to another file for the next program to interpret.
- We focus on protocol related issues and improvements. If you wanna do more
+ We focus on protocol related issues and improvements. If you want to do more
magic with the supported protocols than curl currently does, chances are good
- we will agree. If you wanna add more protocols, we may very well agree.
+ we will agree. If you want to add more protocols, we may very well agree.
If you want someone else to do all the work while you wait for us to
implement it for you, that is not a very friendly attitude. We spend a
@@ -998,7 +998,7 @@ FAQ
compilers or prior curl versions it may set a time that appears one hour off.
This happens due to a flaw in how Windows stores and uses file modification
times and it is not easily worked around. For more details read this:
- http://www.codeproject.com/datetime/dstbugs.asp
+ https://www.codeproject.com/Articles/1144/Beating-the-Daylight-Savings-Time-bug-and-getting
4.14 Redirects work in browser but not with curl!
diff --git a/docs/KNOWN_BUGS b/docs/KNOWN_BUGS
index 961a6281..280edd0e 100644
--- a/docs/KNOWN_BUGS
+++ b/docs/KNOWN_BUGS
@@ -90,6 +90,8 @@ problems may have been fixed or changed somewhat since this was written!
13. TCP/IP
13.1 --interface for ipv6 binds to unusable IP address
+ 14 DICT
+ 14.1 DICT responses show the underlying protocol
==============================================================================
@@ -591,3 +593,12 @@ problems may have been fixed or changed somewhat since this was written!
locally scoped address as that is bound to fail.
https://github.com/curl/curl/issues/686
+
+14. DICT
+
+14.1 DICT responses show the underlying protocol
+
+ When getting a DICT response, the protocol parts of DICT aren't stripped off
+ from the output.
+
+ https://github.com/curl/curl/issues/1809
diff --git a/docs/MAIL-ETIQUETTE b/docs/MAIL-ETIQUETTE
index 54f1090b..effdcce2 100644
--- a/docs/MAIL-ETIQUETTE
+++ b/docs/MAIL-ETIQUETTE
@@ -179,7 +179,7 @@ MAIL ETIQUETTE
or just remove them completely from the mail. Note that this includes base64
encoded HTTP Basic auth headers.
- This public nature of the curl mailing lists makes automaticly inserted mail
+ This public nature of the curl mailing lists makes automatically inserted mail
footers about mails being "private" or "only meant for the receipient" or
similar even more silly than usual. Because they are absolutely not private
when sent to a public mailing list.
diff --git a/docs/MANUAL b/docs/MANUAL
index 0e3db0ff..5df37e44 100644
--- a/docs/MANUAL
+++ b/docs/MANUAL
@@ -298,8 +298,7 @@ POST (HTTP)
How to post a form with curl, lesson #1:
- Dig out all the <input> tags in the form that you want to fill in. (There's
- a perl program called formfind.pl on the curl site that helps with this).
+ Dig out all the <input> tags in the form that you want to fill in.
If there's a "normal" post, you use -d to post. -d takes a full "post
string", which is in the format
diff --git a/docs/Makefile.am b/docs/Makefile.am
index ae5ceeca..1cad0624 100644
--- a/docs/Makefile.am
+++ b/docs/Makefile.am
@@ -5,7 +5,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
@@ -43,7 +43,7 @@ CLEANFILES = $(GENHTMLPAGES) $(PDFPAGES) $(MANDISTPAGES) curl.1
EXTRA_DIST = MANUAL BUGS CONTRIBUTE.md FAQ FEATURES INTERNALS.md SSLCERTS.md \
README.win32 RESOURCES TODO TheArtOfHttpScripting THANKS VERSIONS KNOWN_BUGS \
BINDINGS.md HISTORY.md INSTALL INSTALL.md LICENSE-MIXING.md \
- README.netware MAIL-ETIQUETTE HTTP-COOKIES.md SECURITY.md RELEASE-PROCEDURE \
+ README.netware MAIL-ETIQUETTE HTTP-COOKIES.md SECURITY-PROCESS.md RELEASE-PROCEDURE \
SSL-PROBLEMS.md HTTP2.md ROADMAP.md CODE_OF_CONDUCT.md CODE_STYLE.md \
CHECKSRC.md CMakeLists.txt README.md CIPHERS.md INSTALL.cmake README.cmake \
$(noinst_man_MANS) HELP-US.md
diff --git a/docs/SECURITY-PROCESS.md b/docs/SECURITY-PROCESS.md
new file mode 100644
index 00000000..d39c5a1f
--- /dev/null
+++ b/docs/SECURITY-PROCESS.md
@@ -0,0 +1,116 @@
+curl security process
+=====================
+
+This document describes how security vulnerabilities should be handled in the
+curl project.
+
+Publishing Information
+----------------------
+
+All known and public curl or libcurl related vulnerabilities are listed on
+[the curl web site security page](https://curl.haxx.se/docs/security.html).
+
+Security vulnerabilities should not be entered in the project's public bug
+tracker unless the necessary configuration is in place to limit access to the
+issue to only the reporter and the project's security team.
+
+Vulnerability Handling
+----------------------
+
+The typical process for handling a new security vulnerability is as follows.
+
+No information should be made public about a vulnerability until it is
+formally announced at the end of this process. That means, for example that a
+bug tracker entry must NOT be created to track the issue since that will make
+the issue public and it should not be discussed on any of the project's public
+mailing lists. Also messages associated with any commits should not make
+any reference to the security nature of the commit if done prior to the public
+announcement.
+
+- The person discovering the issue, the reporter, reports the vulnerability
+ privately to `curl-security@haxx.se`. That's an email alias that reaches a
+ handful of selected and trusted people.
+
+- Messages that do not relate to the reporting or managing of an undisclosed
+ security vulnerability in curl or libcurl are ignored and no further action
+ is required.
+
+- A person in the security team sends an e-mail to the original reporter to
+ acknowledge the report.
+
+- The security team investigates the report and either rejects it or accepts
+ it.
+
+- If the report is rejected, the team writes to the reporter to explain why.
+
+- If the report is accepted, the team writes to the reporter to let him/her
+ know it is accepted and that they are working on a fix.
+
+- The security team discusses the problem, works out a fix, considers the
+ impact of the problem and suggests a release schedule. This discussion
+ should involve the reporter as much as possible.
+
+- The release of the information should be "as soon as possible" and is most
+ often synced with an upcoming release that contains the fix. If the
+ reporter, or anyone else, thinks the next planned release is too far away
+ then a separate earlier release for security reasons should be considered.
+
+- Write a security advisory draft about the problem that explains what the
+ problem is, its impact, which versions it affects, solutions or
+ workarounds, when the release is out and make sure to credit all
+ contributors properly.
+
+- Request a CVE number from
+ [distros@openwall](http://oss-security.openwall.org/wiki/mailing-lists/distros)
+ when also informing and preparing them for the upcoming public security
+ vulnerability announcement - attach the advisory draft for information. Note
+ that 'distros' won't accept an embargo longer than 14 days and they do not
+ care for Windows-specific flaws. For windows-specific flaws, request CVE
+ directly from MITRE.
+
+- Update the "security advisory" with the CVE number.
+
+- The security team commits the fix in a private branch. The commit message
+ should ideally contain the CVE number. This fix is usually also distributed
+ to the 'distros' mailing list to allow them to use the fix prior to the
+ public announcement.
+
+- No more than 48 hours before the release, the private branch is merged into
+ the master branch and pushed. Once pushed, the information is accessible to
+ the public and the actual release should follow suit immediately afterwards.
+ The time between the push and the release is used for final tests and
+ reviews.
+
+- The project team creates a release that includes the fix.
+
+- The project team announces the release and the vulnerability to the world in
+ the same manner we always announce releases. It gets sent to the
+ curl-announce, curl-library and curl-users mailing lists.
+
+- The security web page on the web site should get the new vulnerability
+ mentioned.
+
+Pre-notification
+----------------
+
+If you think you are or should be eligible for a pre-notification about
+upcoming security announcements for curl, we urge OS distros and similar
+vendors to primarily join the distros@openwall list as that is one of the
+purposes of that list - and not just for curl of course.
+
+If you are not a distro or otherwise not suitable for distros@openwall and yet
+want pre-notifications from us, contact the curl security team with a detailed
+and clear explanation why this is the case.
+
+curl-security (at haxx dot se)
+------------------------------
+
+Who is on this list? There are a couple of criteria you must meet, and then we
+might ask you to join the list or you can ask to join it. It really isn't very
+formal. We basically only require that you have a long-term presence in the
+curl project and you have shown an understanding for the project and its way
+of working. You must've been around for a good while and you should have no
+plans in vanishing in the near future.
+
+We do not make the list of participants public mostly because it tends to vary
+somewhat over time and a list somewhere will only risk getting outdated.
diff --git a/docs/THANKS b/docs/THANKS
index 7d5cf079..f51c9f78 100644
--- a/docs/THANKS
+++ b/docs/THANKS
@@ -13,6 +13,7 @@ Abram Pousada
Adam D. Moss
Adam Langley
Adam Light
+Adam Marcionek
Adam Piggott
Adam Sampson
Adam Tkac
@@ -137,6 +138,7 @@ Arkadiusz Miskiewicz
Armel Asselin
Arnaud Compan
Arnaud Ebalard
+Aron Bergman
Artak Galoyan
Arthur Murray
Arve Knudsen
@@ -216,6 +218,7 @@ Brock Noland
Bru Rom
Bruce Mitchener
Bruce Stephens
+Bruno Grasselli
Bruno Thomsen
Bruno de Carvalho
Bryan Henderson
@@ -299,6 +302,7 @@ D. Flinkmann
Da-Yoon Chung
Dag Ekengren
Dagobert Michelsen
+Dair Grant
Dambaev Alexander
Damian Dixon
Damien Adant
@@ -337,6 +341,7 @@ Daniel Stenberg
Daniel Theron
Daniel at touchtunes
Daphne Luong
+Dario Weisser
Darryl House
Darshan Mody
DarΓ­o HereΓ±ΓΊ
@@ -423,6 +428,7 @@ Doug Porter
Douglas Creager
Douglas E. Wegscheid
Douglas Kilpatrick
+Douglas Mencken
Douglas R. Horner
Douglas Steinwand
Dov Murik
@@ -431,11 +437,13 @@ Duane Cathey
Duncan Mac-Vicar Prett
Dustin Boswell
Dusty Mabe
+Duy Phan Thanh
Dwarakanath Yadavalli
Dylan Ellicott
Dylan Salisbury
DΓ‘niel Bakai
Early Ehlinger
+Earnestly on github
Ebenezer Ikonne
Ed Morley
Edin Kadribasic
@@ -507,6 +515,7 @@ Florian Weimer
Florin Petriuc
Forrest Cahoon
Francisco Moraes
+Francisco Sedano
Francois Petitjean
Frank Denis
Frank Gevaerts
@@ -608,6 +617,7 @@ Hendrik Visage
Henrik Gaßmann
Henrik Storner
Henry Ludemann
+Henry Roeland
Herve Amblard
Hidemoto Nakada
Ho-chi Chen
@@ -860,6 +870,7 @@ Kim Vandry
Kimmo Kinnunen
Kjell Ericson
Kjetil Jacobsen
+Klaus Stein
Klevtsov Vadim
Konstantin Isakov
Kris Kennaway
@@ -986,6 +997,7 @@ Marquis de Muesli
Martijn Koster
Martin C. Martin
Martin Drasar
+Martin Dreher
Martin Frodl
Martin Galvan
Martin Hager
@@ -1056,6 +1068,7 @@ Michal Bonino
Michal Marek
MichaΕ‚ Fita
MichaΕ‚ GΓ³rny
+MichaΕ‚ Janiszewski
MichaΕ‚ Kowalczyk
MichaΕ‚ Piechowski
Michel Promonet
@@ -1166,6 +1179,7 @@ Patrick Dawson
Patrick McManus
Patrick Monnerat
Patrick Rapin
+Patrick Schlangen
Patrick Scott
Patrick Smith
Patrick Watson
@@ -1354,6 +1368,7 @@ Roy Shan
Rune Kleveland
Ruslan Gazizov
Rutger Hofman
+Ruurd Beerstra
Ryan Braud
Ryan Chan
Ryan Nelson
@@ -1399,8 +1414,10 @@ Senthil Raja Velu
Sergei Kuzmin
Sergei Nikulov
Sergey Tatarincev
+Sergii Kavunenko
Sergii Pylypenko
Sergio Ballestrero
+Sergio Borghese
Serj Kalichev
Seshubabu Pasam
Seth Mos
@@ -1421,6 +1438,7 @@ Simon H.
Simon Josefsson
Simon Liu
Simon Warta
+Somnath Kundu
Song Ma
Sonia Subramanian
Spacen Jasset
@@ -1505,6 +1523,7 @@ Tim Chen
Tim Costello
Tim Harder
Tim Heckman
+Tim Mcdonough
Tim Newsome
Tim RΓΌhsen
Tim Sneddon
@@ -1575,7 +1594,7 @@ Venkataramana Mokkapati
Victor Snezhko
Vijay Panghal
Vikram Saxena
-Viktor SzakΓ‘ts
+Viktor Szakats
Ville SkyttΓ€
Vilmos Nebehaj
Vincas Razma
@@ -1644,7 +1663,6 @@ arainchik on github
asavah on github
baumanj on github
bsammon on github
-canavan on github
cbartl on github
cmfrolick on github
destman on github
@@ -1677,6 +1695,7 @@ omau on github
ovidiu-benea on github
paulharris on github
silveja1 on github
+steelman on github
stootill on github
swalkaus at yahoo.com
tarek112 on github
@@ -1687,5 +1706,6 @@ wyattoday on github
youngchopin on github
zelinchen on github
Δ°smail DΓΆnmez
+Łukasz Domeradzki
Štefan Kremeň
Никита Π”ΠΎΡ€ΠΎΡ…ΠΈΠ½
diff --git a/docs/TODO b/docs/TODO
index 25f860b4..ea78d9f1 100644
--- a/docs/TODO
+++ b/docs/TODO
@@ -17,12 +17,13 @@
All bugs documented in the KNOWN_BUGS document are subject for fixing!
1. libcurl
+ 1.1 Option to refuse usernames in URLs
1.2 More data sharing
1.3 struct lifreq
1.4 signal-based resolver timeouts
1.5 get rid of PATH_MAX
1.6 Modified buffer size approach
- 1.7 Detect when called from within callbacks
+ 1.7 Support HTTP/2 for HTTP(S) proxies
1.8 CURLOPT_RESOLVE for any port number
1.9 Cache negative name resolves
1.10 auto-detect proxy
@@ -40,6 +41,8 @@
1.23 Offer API to flush the connection pool
1.24 TCP Fast Open for windows
1.25 Expose tried IP addresses that failed
+ 1.26 CURL_REFUSE_CLEARTEXT
+ 1.27 hardcode the "localhost" addresses
2. libcurl - multi interface
2.1 More non-blocking
@@ -65,7 +68,6 @@
5.1 Better persistency for HTTP 1.0
5.2 support FF3 sqlite cookie files
5.3 Rearrange request header order
- 5.4 HTTP Digest using SHA-256
5.5 auth= in URLs
5.6 Refuse "downgrade" redirects
5.7 QUIC
@@ -103,13 +105,12 @@
13. SSL
13.1 Disable specific versions
13.2 Provide mutex locking API
- 13.3 Evaluate SSL patches
+ 13.3 Support in-memory certs/ca certs/keys
13.4 Cache/share OpenSSL contexts
13.5 Export session ids
13.6 Provide callback for cert verification
13.7 improve configure --with-ssl
13.8 Support DANE
- 13.10 Support SSLKEYLOGFILE
13.11 Support intermediate & root pinning for PINNEDPUBLICKEY
13.12 Support HSTS
13.13 Support HPKP
@@ -139,7 +140,9 @@
18.2 glob posts
18.3 prevent file overwriting
18.4 simultaneous parallel transfers
+ 18.5 UTF-8 filenames in Content-Disposition
18.6 warning when setting an option
+ 18.7 warning if curl version is not in sync with libcurl version
18.8 offer color-coded HTTP header output
18.9 Choose the name of file in braces for complex URLs
18.10 improve how curl works in a windows console window
@@ -150,6 +153,7 @@
18.15 --retry should resume
18.16 send only part of --data
18.17 consider file name from the redirected URL with -O ?
+ 18.18 retry on network is unreachable
19. Build
19.1 roffit
@@ -182,6 +186,16 @@
1. libcurl
+1.1 Option to refuse usernames in URLs
+
+ There's a certain risk for application in allowing user names in URLs. For
+ example: if the wrong person gets to set the URL and manages to set a user
+ name in there when .netrc is used, the application may send along a password
+ that otherwise the person couldn't provide.
+
+ A new libcurl option could be added to allow applications to switch off this
+ feature and thus avoid a potential risk.
+
1.2 More data sharing
curl_share_* functions already exist and work, and they can be extended to
@@ -236,11 +250,9 @@
Dynamically allocate buffer size depending on protocol in use in combination
with freeing it after each individual transfer? Other suggestions?
-1.7 Detect when called from within callbacks
+1.7 Support HTTP/2 for HTTP(S) proxies
- We should set a state variable before calling callbacks, so that we
- subsequently can add code within libcurl that returns error if called within
- callbacks for when that's not supported.
+ Support for doing HTTP/2 to HTTP and HTTPS proxies is still missing.
1.8 CURLOPT_RESOLVE for any port number
@@ -393,6 +405,32 @@
https://github.com/curl/curl/issues/2126
+1.26 CURL_REFUSE_CLEARTEXT
+
+ An environment variable that when set will make libcurl refuse to use any
+ cleartext network protocol. That's all non-encrypted ones (FTP, HTTP, Gopher,
+ etc). By adding the check to libcurl and not just curl, this environment
+ variable can then help users to block all libcurl-using programs from
+ accessing the network using unsafe protocols.
+
+ The variable could be given some sort of syntax or different levels and be
+ used to also allow for example users to refuse libcurl to do transfers with
+ HTTPS certificate checks disabled.
+
+ It could also offer to refuse usernames in URLs (see TODO 1.1)
+
+1.27 hardcode the "localhost" addresses
+
+ There's this new spec getting adopted that says "localhost" should always and
+ unconditionally be a local address and not get resolved by a DNS server. A
+ fine way for curl to fix this would be to simply hard-code the response to
+ 127.0.0.1 and/or ::1 (depending on what IP versions that are requested). This
+ is what the browsers probably will do with this hostname.
+
+ https://bugzilla.mozilla.org/show_bug.cgi?id=1220810
+
+ https://tools.ietf.org/html/draft-ietf-dnsop-let-localhost-be-localhost-02
+
2. libcurl - multi interface
2.1 More non-blocking
@@ -521,15 +559,6 @@
headers use a default value so only headers that need to be moved have to be
specified.
-5.4 HTTP Digest using SHA-256
-
- RFC 7616 introduces an update to the HTTP Digest authentication
- specification, which amongst other thing defines how new digest algorithms
- can be used instead of MD5 which is considered old and not recommended.
-
- See https://tools.ietf.org/html/rfc7616 and
- https://github.com/curl/curl/issues/1018
-
5.5 auth= in URLs
Add the ability to specify the preferred authentication mechanism to use by
@@ -676,10 +705,13 @@ that doesn't exist on the server, just like --ftp-create-dirs.
library, so that the same application code can use mutex-locking
independently of OpenSSL or GnutTLS being used.
-13.3 Evaluate SSL patches
+13.3 Support in-memory certs/ca certs/keys
- Evaluate/apply Gertjan van Wingerde's SSL patches:
- https://curl.haxx.se/mail/lib-2004-03/0087.html
+ You can specify the private and public keys for SSH/SSL as file paths. Some
+ programs want to avoid using files and instead just pass them as in-memory
+ data blobs. There's probably a challenge to make this work across the
+ plethory of different TLS and SSH backends that curl suppports.
+ https://github.com/curl/curl/issues/2310
13.4 Cache/share OpenSSL contexts
@@ -731,16 +763,6 @@ that doesn't exist on the server, just like --ftp-create-dirs.
BjΓΆrn Stenberg wrote a separate initial take on DANE that was never
completed.
-13.10 Support SSLKEYLOGFILE
-
- When used, Firefox and Chrome dumps their master TLS keys to the file name
- this environment variable specifies. This allows tools like for example
- Wireshark to capture and decipher TLS traffic to/from those clients. libcurl
- could be made to support this more widely (presumably this already works when
- built with NSS). Peter Wu made a OpenSSL preload to make possible that can be
- used as inspiration and guidance
- https://git.lekensteyn.nl/peter/wireshark-notes/tree/src/sslkeylog.c
-
13.11 Support intermediate & root pinning for PINNEDPUBLICKEY
CURLOPT_PINNEDPUBLICKEY does not consider the hashes of intermediate & root
@@ -908,12 +930,26 @@ that doesn't exist on the server, just like --ftp-create-dirs.
Using the multi interface would also allow properly using parallel transfers
with HTTP/2 and supporting HTTP/2 server push from the command line.
+18.5 UTF-8 filenames in Content-Disposition
+
+ RFC 6266 documents how UTF-8 names can be passed to a client in the
+ Content-Disposition header, and curl does not support this.
+
+ https://github.com/curl/curl/issues/1888
+
18.6 warning when setting an option
Display a warning when libcurl returns an error when setting an option.
This can be useful to tell when support for a particular feature hasn't been
compiled into the library.
+18.7 warning if curl version is not in sync with libcurl version
+
+ This is usually a sign of a funny, weird or unexpected install situations
+ that aren't always quickly nor easily detected by users. curl and libcurl are
+ always released in sync and should use the same version numbers unless very
+ special situations.
+
18.8 offer color-coded HTTP header output
By offering different color output on the header name and the header
@@ -1015,6 +1051,18 @@ that doesn't exist on the server, just like --ftp-create-dirs.
See https://github.com/curl/curl/issues/1241
+18.18 retry on network is unreachable
+
+ The --retry option retries transfers on "transient failures". We later added
+ --retry-connrefused to also retry for "connection refused" errors.
+
+ Suggestions have been brought to also allow retry on "network is unreachable"
+ errors and while totally reasonable, maybe we should consider a way to make
+ this more configurable than to add a new option for every new error people
+ want to retry for?
+
+ https://github.com/curl/curl/issues/1603
+
19. Build
19.1 roffit
diff --git a/docs/cmdline-opts/Makefile.inc b/docs/cmdline-opts/Makefile.inc
index e8f46410..778149ca 100644
--- a/docs/cmdline-opts/Makefile.inc
+++ b/docs/cmdline-opts/Makefile.inc
@@ -12,7 +12,9 @@ DPAGES = abstract-unix-socket.d anyauth.d append.d basic.d cacert.d capath.d cer
form.d form-string.d ftp-account.d ftp-alternative-to-user.d \
ftp-create-dirs.d ftp-method.d ftp-pasv.d ftp-port.d ftp-pret.d \
ftp-skip-pasv-ip.d ftp-ssl-ccc.d ftp-ssl-ccc-mode.d ftp-ssl-control.d \
- get.d globoff.d head.d header.d help.d hostpubmd5.d http1.0.d \
+ get.d globoff.d \
+ happy-eyeballs-timeout-ms.d \
+ head.d header.d help.d hostpubmd5.d http1.0.d \
http1.1.d http2.d http2-prior-knowledge.d ignore-content-length.d \
include.d insecure.d interface.d ipv4.d ipv6.d junk-session-cookies.d \
keepalive-time.d key.d key-type.d krb.d libcurl.d limit-rate.d \
@@ -34,7 +36,7 @@ DPAGES = abstract-unix-socket.d anyauth.d append.d basic.d cacert.d capath.d cer
remote-name-all.d remote-name.d remote-time.d request.d resolve.d \
retry-connrefused.d retry.d retry-delay.d retry-max-time.d sasl-ir.d \
service-name.d show-error.d silent.d socks4a.d socks4.d socks5.d \
- socks5-basic.d socks5-gssapi.d \
+ socks5-basic.d socks5-gssapi.d proxy-pinnedpubkey.d \
socks5-gssapi-nec.d socks5-gssapi-service.d socks5-hostname.d \
speed-limit.d speed-time.d ssl-allow-beast.d ssl.d ssl-no-revoke.d \
ssl-reqd.d sslv2.d sslv3.d stderr.d suppress-connect-headers.d \
diff --git a/docs/cmdline-opts/form.d b/docs/cmdline-opts/form.d
index d95d0cc3..8d04d419 100644
--- a/docs/cmdline-opts/form.d
+++ b/docs/cmdline-opts/form.d
@@ -12,25 +12,35 @@ Content-Type multipart/form-data according to RFC 2388.
For SMTP and IMAP protocols, this is the mean to compose a multipart mail
message to transmit.
-This enables uploading of binary
-files etc. To force the 'content' part to be a file, prefix the file name with
-an @ sign. To just get the content part from a file, prefix the file name with
-the symbol <. The difference between @ and < is then that @ makes a file get
-attached in the post as a file upload, while the < makes a text field and just
-get the contents for that text field from a file.
-
-Example: to send an image to an HTTP server, where \&'profile' is the name of
-the form-field to which portrait.jpg will be the input:
+This enables uploading of binary files etc. To force the 'content' part to be
+a file, prefix the file name with an @ sign. To just get the content part from
+a file, prefix the file name with the symbol <. The difference between @ and <
+is then that @ makes a file get attached in the post as a file upload, while
+the < makes a text field and just get the contents for that text field from a
+file.
+
+Tell curl to read content from stdin instead of a file by using - as
+filename. This goes for both @ and < constructs. When stdin is used, the
+contents is buffered in memory first by curl to determine its size and allow a
+possible resend. Defining a part's data from a named non-regular file (such
+as a named pipe or similar) is unfortunately not subject to buffering and will
+be effectively read at transmission time; since the full size is unknown
+before the transfer starts, such data is sent as chunks by HTTP and rejected
+by IMAP.
+
+Example: send an image to an HTTP server, where \&'profile' is the name of the
+form-field to which the file portrait.jpg will be the input:
curl -F profile=@portrait.jpg https://example.com/upload.cgi
-To read content from stdin instead of a file, use - as the filename. This goes
-for both @ and < constructs. If stdin is not attached to a regular file, it is
-buffered first to determine its size and allow a possible resend. Defining a
-part's data from a named non-regular file (such as a named pipe or similar) is
-unfortunately not subject to buffering and will be effectively read at
-transmission time; since the full size is unknown before the transfer starts,
-data is sent as chunks by HTTP and rejected by IMAP.
+Example: send a your name and shoe size in two text fields to the server:
+
+ curl -F name=John -F shoesize=11 https://example.com/
+
+Example: send a your essay in a text field to the server. Send it as a plain
+text field, but get the contents for it from a local file:
+
+ curl -F "story=<hugefile.txt" https://example.com/
You can also tell curl what Content-Type to use by using 'type=', in a manner
similar to:
diff --git a/docs/cmdline-opts/happy-eyeballs-timeout-ms.d b/docs/cmdline-opts/happy-eyeballs-timeout-ms.d
new file mode 100644
index 00000000..ec9a8c22
--- /dev/null
+++ b/docs/cmdline-opts/happy-eyeballs-timeout-ms.d
@@ -0,0 +1,17 @@
+Long: happy-eyeballs-timeout-ms
+Arg: <milliseconds>
+Help: How long to wait in milliseconds for IPv6 before trying IPv4
+Added: 7.59.0
+---
+Happy eyeballs is an algorithm that attempts to connect to both IPv4 and IPv6
+addresses for dual-stack hosts, preferring IPv6 first for the number of
+milliseconds. If the IPv6 address cannot be connected to within that time then
+a connection attempt is made to the IPv4 address in parallel. The first
+connection to be established is the one that is used.
+
+The range of suggested useful values is limited. Happy Eyeballs RFC 6555 says
+"It is RECOMMENDED that connection attempts be paced 150-250 ms apart to
+balance human factors against network load." libcurl currently defaults to
+200 ms. Firefox and Chrome currently default to 300 ms.
+
+If this option is used several times, the last one will be used.
diff --git a/docs/cmdline-opts/page-footer b/docs/cmdline-opts/page-footer
index 6006f464..1ca47ae0 100644
--- a/docs/cmdline-opts/page-footer
+++ b/docs/cmdline-opts/page-footer
@@ -24,14 +24,17 @@ Sets the proxy server to use if no protocol-specific proxy is set.
list of host names that shouldn't go through any proxy. If set to a asterisk
\&'*' only, it matches all hosts.
-Since 7.53.0, this environment variable disable the proxy even if specify
---proxy option. That is
+This environment variable disables use of the proxy even when specified with
+the --proxy option. That is
.B NO_PROXY=direct.example.com curl -x http://proxy.example.com
.B http://direct.example.com
accesses the target URL directly, and
.B NO_PROXY=direct.example.com curl -x http://proxy.example.com
.B http://somewhere.example.com
-accesses the target URL through proxy.
+accesses the target URL through the proxy.
+
+The list of host names can also be include numerical IP addresses, and IPv6
+versions should then be given without enclosing brackets.
.SH "PROXY PROTOCOL PREFIXES"
Since curl version 7.21.7, the proxy string may be specified with a
diff --git a/docs/cmdline-opts/progress-bar.d b/docs/cmdline-opts/progress-bar.d
index 11e95b45..f27de2d9 100644
--- a/docs/cmdline-opts/progress-bar.d
+++ b/docs/cmdline-opts/progress-bar.d
@@ -7,5 +7,6 @@ standard, more informational, meter.
This progress bar draws a single line of '#' characters across the screen and
shows a percentage if the transfer size is known. For transfers without a
-known size, it will instead output one '#' character for every 1024 bytes
-transferred.
+known size, there will be space ship (-=o=-) that moves back and forth but
+only while data is being transferred, with a set of flying hash sign symbols on
+top.
diff --git a/docs/cmdline-opts/proxy-pinnedpubkey.d b/docs/cmdline-opts/proxy-pinnedpubkey.d
new file mode 100644
index 00000000..abd6dc4a
--- /dev/null
+++ b/docs/cmdline-opts/proxy-pinnedpubkey.d
@@ -0,0 +1,16 @@
+Long: proxy-pinnedpubkey
+Arg: <hashes>
+Help: FILE/HASHES public key to verify proxy with
+Protocols: TLS
+---
+Tells curl to use the specified public key file (or hashes) to verify the
+proxy. This can be a path to a file which contains a single public key in PEM
+or DER format, or any number of base64 encoded sha256 hashes preceded by
+\'sha256//\' and separated by \';\'
+
+When negotiating a TLS or SSL connection, the server sends a certificate
+indicating its identity. A public key is extracted from this certificate and
+if it does not exactly match the public key provided to this option, curl will
+abort the connection before sending or receiving any data.
+
+If this option is used several times, the last one will be used.
diff --git a/docs/cmdline-opts/resolve.d b/docs/cmdline-opts/resolve.d
index 91539b8e..9e1457b5 100644
--- a/docs/cmdline-opts/resolve.d
+++ b/docs/cmdline-opts/resolve.d
@@ -1,5 +1,5 @@
Long: resolve
-Arg: <host:port:address>
+Arg: <host:port:address[,address]...>
Help: Resolve the host+port to this address
Added: 7.21.3
---
@@ -16,4 +16,6 @@ is set to make curl use another IP version.
Support for providing the IP address within [brackets] was added in 7.57.0.
+Support for providing multiple IP addresses per entry was added in 7.59.0.
+
This option can be used many times to add many host names to resolve.
diff --git a/docs/cmdline-opts/tlsauthtype.d b/docs/cmdline-opts/tlsauthtype.d
index 1b1481ff..ede21c2f 100644
--- a/docs/cmdline-opts/tlsauthtype.d
+++ b/docs/cmdline-opts/tlsauthtype.d
@@ -5,4 +5,6 @@ Added: 7.21.4
---
Set TLS authentication type. Currently, the only supported option is "SRP",
for TLS-SRP (RFC 5054). If --tlsuser and --tlspassword are specified but
---tlsauthtype is not, then this option defaults to "SRP".
+--tlsauthtype is not, then this option defaults to "SRP". This option works
+only if the underlying libcurl is built with TLS-SRP support, which requires
+OpenSSL or GnuTLS with TLS-SRP support.
diff --git a/docs/curl-config.1 b/docs/curl-config.1
index a9ac5157..becb1caf 100644
--- a/docs/curl-config.1
+++ b/docs/curl-config.1
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH curl-config 1 "November 30, 2017" "Curl 7.58.0" "curl-config manual"
+.TH curl-config 1 "November 30, 2017" "Curl 7.59.0" "curl-config manual"
.SH NAME
curl-config \- Get information about a libcurl installation
diff --git a/docs/curl.1 b/docs/curl.1
index f03ad9dc..f2ce1425 100644
--- a/docs/curl.1
+++ b/docs/curl.1
@@ -22,7 +22,7 @@
.\"
.\" DO NOT EDIT. Generated by the curl project gen.pl man page generator.
.\"
-.TH curl 1 "November 16, 2016" "Curl 7.58.0" "Curl Manual"
+.TH curl 1 "November 16, 2016" "Curl 7.59.0" "Curl Manual"
.SH NAME
curl \- transfer a URL
@@ -669,25 +669,35 @@ Content-Type multipart/form-data according to RFC 2388.
For SMTP and IMAP protocols, this is the mean to compose a multipart mail
message to transmit.
-This enables uploading of binary
-files etc. To force the 'content' part to be a file, prefix the file name with
-an @ sign. To just get the content part from a file, prefix the file name with
-the symbol <. The difference between @ and < is then that @ makes a file get
-attached in the post as a file upload, while the < makes a text field and just
-get the contents for that text field from a file.
+This enables uploading of binary files etc. To force the 'content' part to be
+a file, prefix the file name with an @ sign. To just get the content part from
+a file, prefix the file name with the symbol <. The difference between @ and <
+is then that @ makes a file get attached in the post as a file upload, while
+the < makes a text field and just get the contents for that text field from a
+file.
+
+Tell curl to read content from stdin instead of a file by using - as
+filename. This goes for both @ and < constructs. When stdin is used, the
+contents is buffered in memory first by curl to determine its size and allow a
+possible resend. Defining a part's data from a named non-regular file (such
+as a named pipe or similar) is unfortunately not subject to buffering and will
+be effectively read at transmission time; since the full size is unknown
+before the transfer starts, such data is sent as chunks by HTTP and rejected
+by IMAP.
-Example: to send an image to an HTTP server, where \&'profile' is the name of
-the form-field to which portrait.jpg will be the input:
+Example: send an image to an HTTP server, where \&'profile' is the name of the
+form-field to which the file portrait.jpg will be the input:
curl -F profile=@portrait.jpg https://example.com/upload.cgi
-To read content from stdin instead of a file, use - as the filename. This goes
-for both @ and < constructs. If stdin is not attached to a regular file, it is
-buffered first to determine its size and allow a possible resend. Defining a
-part's data from a named non-regular file (such as a named pipe or similar) is
-unfortunately not subject to buffering and will be effectively read at
-transmission time; since the full size is unknown before the transfer starts,
-data is sent as chunks by HTTP and rejected by IMAP.
+Example: send a your name and shoe size in two text fields to the server:
+
+ curl -F name=John -F shoesize=11 https://example.com/
+
+Example: send a your essay in a text field to the server. Send it as a plain
+text field, but get the contents for it from a local file:
+
+ curl -F "story=<hugefile.txt" https://example.com/
You can also tell curl what Content-Type to use by using 'type=', in a manner
similar to:
@@ -916,6 +926,21 @@ This option switches off the "URL globbing parser". When you set this option,
you can specify URLs that contain the letters {}[] without having them being
interpreted by curl itself. Note that these letters are not normal legal URL
contents but they should be encoded according to the URI standard.
+.IP "--happy-eyeballs-timeout-ms <milliseconds>"
+Happy eyeballs is an algorithm that attempts to connect to both IPv4 and IPv6
+addresses for dual-stack hosts, preferring IPv6 first for the number of
+milliseconds. If the IPv6 address cannot be connected to within that time then
+a connection attempt is made to the IPv4 address in parallel. The first
+connection to be established is the one that is used.
+
+The range of suggested useful values is limited. Happy Eyeballs RFC 6555 says
+"It is RECOMMENDED that connection attempts be paced 150-250 ms apart to
+balance human factors against network load." libcurl currently defaults to
+200 ms. Firefox and Chrome currently default to 300 ms.
+
+If this option is used several times, the last one will be used.
+
+Added in 7.59.0.
.IP "-I, --head"
(HTTP FTP FILE) Fetch the headers only! HTTP-servers feature the command HEAD which this uses
to get nothing but the header of a document. When used on an FTP or FILE file,
@@ -1492,8 +1517,9 @@ standard, more informational, meter.
This progress bar draws a single line of '#' characters across the screen and
shows a percentage if the transfer size is known. For transfers without a
-known size, it will instead output one '#' character for every 1024 bytes
-transferred.
+known size, there will be space ship (-=o=-) that moves back and forth but
+only while data is being transferred, with a set of flying hash sign symbols on
+top.
.IP "--proto-default <protocol>"
Tells curl to use \fIprotocol\fP for any URL missing a scheme name.
@@ -1651,6 +1677,18 @@ See also \fI--proxy-negotiate\fP and \fI--proxy-anyauth\fP.
Same as \fI--pass\fP but used in HTTPS proxy context.
Added in 7.52.0.
+.IP "--proxy-pinnedpubkey <hashes>"
+(TLS) Tells curl to use the specified public key file (or hashes) to verify the
+proxy. This can be a path to a file which contains a single public key in PEM
+or DER format, or any number of base64 encoded sha256 hashes preceded by
+\'sha256//\' and separated by \';\'
+
+When negotiating a TLS or SSL connection, the server sends a certificate
+indicating its identity. A public key is extracted from this certificate and
+if it does not exactly match the public key provided to this option, curl will
+abort the connection before sending or receiving any data.
+
+If this option is used several times, the last one will be used.
.IP "--proxy-service-name <name>"
This option allows you to change the service name for proxy negotiation.
@@ -1944,7 +1982,7 @@ Specifies a custom IMAP command to use instead of LIST. (Added in 7.30.0)
Specifies a custom SMTP command to use instead of HELP or VRFY. (Added in 7.34.0)
If this option is used several times, the last one will be used.
-.IP "--resolve <host:port:address>"
+.IP "--resolve <host:port:address[,address]...>"
Provide a custom address for a specific host and port pair. Using this, you
can make the curl requests(s) use a specified address and prevent the
otherwise normally resolved address to be used. Consider it a sort of
@@ -1958,6 +1996,8 @@ is set to make curl use another IP version.
Support for providing the IP address within [brackets] was added in 7.57.0.
+Support for providing multiple IP addresses per entry was added in 7.59.0.
+
This option can be used many times to add many host names to resolve.
Added in 7.21.3.
@@ -2263,7 +2303,9 @@ See also \fI--tlsv1.0\fP and \fI--tlsv1.1\fP and \fI--tlsv1.2\fP. \fI--tls-max\f
.IP "--tlsauthtype <type>"
Set TLS authentication type. Currently, the only supported option is "SRP",
for TLS-SRP (RFC 5054). If \fI--tlsuser\fP and \fI--tlspassword\fP are specified but
-\fI--tlsauthtype\fP is not, then this option defaults to "SRP".
+\fI--tlsauthtype\fP is not, then this option defaults to "SRP". This option works
+only if the underlying libcurl is built with TLS-SRP support, which requires
+OpenSSL or GnuTLS with TLS-SRP support.
Added in 7.21.4.
.IP "--tlspassword"
@@ -2657,14 +2699,17 @@ Sets the proxy server to use if no protocol-specific proxy is set.
list of host names that shouldn't go through any proxy. If set to a asterisk
\&'*' only, it matches all hosts.
-Since 7.53.0, this environment variable disable the proxy even if specify
-\fI-x, --proxy\fP option. That is
+This environment variable disables use of the proxy even when specified with
+the \fI-x, --proxy\fP option. That is
.B NO_PROXY=direct.example.com curl -x http://proxy.example.com
.B http://direct.example.com
accesses the target URL directly, and
.B NO_PROXY=direct.example.com curl -x http://proxy.example.com
.B http://somewhere.example.com
-accesses the target URL through proxy.
+accesses the target URL through the proxy.
+
+The list of host names can also be include numerical IP addresses, and IPv6
+versions should then be given without enclosing brackets.
.SH "PROXY PROTOCOL PREFIXES"
Since curl version 7.21.7, the proxy string may be specified with a
diff --git a/docs/examples/Makefile.am b/docs/examples/Makefile.am
index afd35c20..e5ed222e 100644
--- a/docs/examples/Makefile.am
+++ b/docs/examples/Makefile.am
@@ -5,7 +5,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
@@ -53,6 +53,9 @@ else
LDADD = $(LIBDIR)/libcurl.la
endif
+# This might hold -Werror
+CFLAGS += @CURL_CFLAG_EXTRAS@
+
# Makefile.inc provides the check_PROGRAMS and COMPLICATED_EXAMPLES defines
include Makefile.inc
diff --git a/docs/examples/Makefile.inc b/docs/examples/Makefile.inc
index 9e4e1ffa..e8aa9fa6 100644
--- a/docs/examples/Makefile.inc
+++ b/docs/examples/Makefile.inc
@@ -5,7 +5,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
@@ -34,7 +34,7 @@ check_PROGRAMS = 10-at-a-time anyauthput cookie_interface debug fileupload \
imap-tls imap-multi url2file sftpget ftpsget postinmemory http2-download \
http2-upload http2-serverpush getredirect ftpuploadfrommem \
ftpuploadresume sslbackend postit2-formadd multi-formadd \
- shared-connection-cache
+ shared-connection-cache sftpuploadresume
# These examples require external dependencies that may not be commonly
# available on POSIX systems, so don't bother attempting to compile them here.
diff --git a/docs/examples/ftpupload.c b/docs/examples/ftpupload.c
index 5fc41ef8..bd77bb1f 100644
--- a/docs/examples/ftpupload.c
+++ b/docs/examples/ftpupload.c
@@ -77,7 +77,7 @@ int main(void)
/* get the file size of the local file */
if(stat(LOCAL_FILE, &file_info)) {
- printf("Couldnt open '%s': %s\n", LOCAL_FILE, strerror(errno));
+ printf("Couldn't open '%s': %s\n", LOCAL_FILE, strerror(errno));
return 1;
}
fsize = (curl_off_t)file_info.st_size;
diff --git a/docs/examples/sftpuploadresume.c b/docs/examples/sftpuploadresume.c
new file mode 100644
index 00000000..032bcaff
--- /dev/null
+++ b/docs/examples/sftpuploadresume.c
@@ -0,0 +1,130 @@
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+/* <DESC>
+ * Upload to SFTP, resuming a previously aborted transfer.
+ * </DESC>
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <curl/curl.h>
+
+/* read data to upload */
+static size_t readfunc(void *ptr, size_t size, size_t nmemb, void *stream)
+{
+ FILE *f = (FILE *)stream;
+ size_t n;
+
+ if(ferror(f))
+ return CURL_READFUNC_ABORT;
+
+ n = fread(ptr, size, nmemb, f) * size;
+
+ return n;
+}
+
+/*
+ * sftpGetRemoteFileSize returns the remote file size in byte; -1 on error
+ */
+static curl_off_t sftpGetRemoteFileSize(const char *i_remoteFile)
+{
+ CURLcode result = CURLE_GOT_NOTHING;
+ curl_off_t remoteFileSizeByte = -1;
+ CURL *curlHandlePtr = NULL;
+
+ curlHandlePtr = curl_easy_init();
+ curl_easy_setopt(curlHandlePtr, CURLOPT_VERBOSE, 1L);
+
+ curl_easy_setopt(curlHandlePtr, CURLOPT_URL, i_remoteFile);
+ curl_easy_setopt(curlHandlePtr, CURLOPT_NOPROGRESS, 1);
+ curl_easy_setopt(curlHandlePtr, CURLOPT_NOBODY, 1);
+ curl_easy_setopt(curlHandlePtr, CURLOPT_HEADER, 1);
+ curl_easy_setopt(curlHandlePtr, CURLOPT_FILETIME, 1);
+
+ result = curl_easy_perform(curlHandlePtr);
+ if(CURLE_OK == result) {
+ result = curl_easy_getinfo(curlHandlePtr,
+ CURLINFO_CONTENT_LENGTH_DOWNLOAD_T,
+ &remoteFileSizeByte);
+ printf("filesize: %ld \n", remoteFileSizeByte);
+ }
+ curl_easy_cleanup(curlHandlePtr);
+
+ return remoteFileSizeByte;
+}
+
+
+static int sftpResumeUpload(CURL *curlhandle, const char *remotepath,
+ const char *localpath)
+{
+ FILE *f = NULL;
+ CURLcode result = CURLE_GOT_NOTHING;
+
+ curl_off_t remoteFileSizeByte = sftpGetRemoteFileSize(remotepath);
+ if(-1 == remoteFileSizeByte) {
+ printf("Error reading the remote file size: unable to resume upload\n");
+ return -1;
+ }
+
+ f = fopen(localpath, "rb");
+ if(!f) {
+ perror(NULL);
+ return 0;
+ }
+
+ curl_easy_setopt(curlhandle, CURLOPT_UPLOAD, 1L);
+ curl_easy_setopt(curlhandle, CURLOPT_URL, remotepath);
+ curl_easy_setopt(curlhandle, CURLOPT_READFUNCTION, readfunc);
+ curl_easy_setopt(curlhandle, CURLOPT_READDATA, f);
+
+ fseek(f, remoteFileSizeByte, SEEK_SET);
+ curl_easy_setopt(curlhandle, CURLOPT_APPEND, 1L);
+ result = curl_easy_perform(curlhandle);
+
+ fclose(f);
+
+ if(result == CURLE_OK)
+ return 1;
+ else {
+ fprintf(stderr, "%s\n", curl_easy_strerror(result));
+ return 0;
+ }
+}
+
+int main(void)
+{
+ const char *remote = "sftp://user:pass@example.com/path/filename";
+ const char *filename = "filename";
+ CURL *curlhandle = NULL;
+
+ curl_global_init(CURL_GLOBAL_ALL);
+ curlhandle = curl_easy_init();
+
+ if(!sftpResumeUpload(curlhandle, remote, filename)) {
+ printf("resumed upload using curl %s failed\n", curl_version());
+ }
+
+ curl_easy_cleanup(curlhandle);
+ curl_global_cleanup();
+
+ return 0;
+}
diff --git a/docs/libcurl/Makefile.inc b/docs/libcurl/Makefile.inc
index 3ac5036e..eea48c41 100644
--- a/docs/libcurl/Makefile.inc
+++ b/docs/libcurl/Makefile.inc
@@ -21,4 +21,5 @@ man_MANS = curl_easy_cleanup.3 curl_easy_getinfo.3 curl_easy_init.3 \
curl_mime_init.3 curl_mime_free.3 curl_mime_addpart.3 curl_mime_name.3 \
curl_mime_data.3 curl_mime_data_cb.3 curl_mime_filedata.3 \
curl_mime_filename.3 curl_mime_subparts.3 \
- curl_mime_type.3 curl_mime_headers.3 curl_mime_encoder.3 libcurl-env.3
+ curl_mime_type.3 curl_mime_headers.3 curl_mime_encoder.3 libcurl-env.3 \
+ libcurl-security.3
diff --git a/docs/libcurl/curl_easy_cleanup.3 b/docs/libcurl/curl_easy_cleanup.3
index 09d9f674..eaffb087 100644
--- a/docs/libcurl/curl_easy_cleanup.3
+++ b/docs/libcurl/curl_easy_cleanup.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH curl_easy_cleanup 3 "February 03, 2016" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_easy_cleanup 3 "February 03, 2016" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_easy_cleanup - End a libcurl easy handle
diff --git a/docs/libcurl/curl_easy_duphandle.3 b/docs/libcurl/curl_easy_duphandle.3
index 04791795..1832db8a 100644
--- a/docs/libcurl/curl_easy_duphandle.3
+++ b/docs/libcurl/curl_easy_duphandle.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_easy_duphandle 3 "February 03, 2016" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_easy_duphandle 3 "February 03, 2016" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_easy_duphandle - Clone a libcurl session handle
diff --git a/docs/libcurl/curl_easy_escape.3 b/docs/libcurl/curl_easy_escape.3
index 7d853eef..bd995a8f 100644
--- a/docs/libcurl/curl_easy_escape.3
+++ b/docs/libcurl/curl_easy_escape.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH curl_easy_escape 3 "August 12, 2017" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_easy_escape 3 "August 12, 2017" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_easy_escape - URL encodes the given string
diff --git a/docs/libcurl/curl_easy_getinfo.3 b/docs/libcurl/curl_easy_getinfo.3
index 62ebe461..049233a0 100644
--- a/docs/libcurl/curl_easy_getinfo.3
+++ b/docs/libcurl/curl_easy_getinfo.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
.\" *
.\" * This software is licensed as described in the file COPYING, which
.\" * you should have received as part of this distribution. The terms
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH curl_easy_getinfo 3 "June 15, 2017" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_easy_getinfo 3 "January 25, 2018" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_easy_getinfo - extract information from a curl handle
@@ -55,8 +55,9 @@ See \fICURLINFO_HTTP_CONNECTCODE(3)\fP
The http version used in the connection.
See \fICURLINFO_HTTP_VERSION(3)\fP
.IP CURLINFO_FILETIME
-Remote time of the retrieved document.
-See \fICURLINFO_FILETIME(3)\fP
+Remote time of the retrieved document. See \fICURLINFO_FILETIME(3)\fP
+.IP CURLINFO_FILETIME_T
+Remote time of the retrieved document. See \fICURLINFO_FILETIME_T(3)\fP
.IP CURLINFO_TOTAL_TIME
Total time of previous transfer.
See \fICURLINFO_TOTAL_TIME(3)\fP
diff --git a/docs/libcurl/curl_easy_init.3 b/docs/libcurl/curl_easy_init.3
index eb2716b3..c37cc53e 100644
--- a/docs/libcurl/curl_easy_init.3
+++ b/docs/libcurl/curl_easy_init.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_easy_init 3 "February 03, 2016" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_easy_init 3 "February 03, 2016" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_easy_init - Start a libcurl easy session
diff --git a/docs/libcurl/curl_easy_pause.3 b/docs/libcurl/curl_easy_pause.3
index 64bf5feb..867cbbae 100644
--- a/docs/libcurl/curl_easy_pause.3
+++ b/docs/libcurl/curl_easy_pause.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_easy_pause 3 "May 01, 2016" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_easy_pause 3 "May 01, 2016" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_easy_pause - pause and unpause a connection
diff --git a/docs/libcurl/curl_easy_perform.3 b/docs/libcurl/curl_easy_perform.3
index 12f718ac..9a46f531 100644
--- a/docs/libcurl/curl_easy_perform.3
+++ b/docs/libcurl/curl_easy_perform.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_easy_perform 3 "May 02, 2016" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_easy_perform 3 "May 02, 2016" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_easy_perform - perform a blocking file transfer
diff --git a/docs/libcurl/curl_easy_recv.3 b/docs/libcurl/curl_easy_recv.3
index 1cb5325b..8a002ea3 100644
--- a/docs/libcurl/curl_easy_recv.3
+++ b/docs/libcurl/curl_easy_recv.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH curl_easy_recv 3 "December 18, 2016" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_easy_recv 3 "December 18, 2016" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_easy_recv - receives raw data on an "easy" connection
diff --git a/docs/libcurl/curl_easy_reset.3 b/docs/libcurl/curl_easy_reset.3
index 7fb41d85..41c96d18 100644
--- a/docs/libcurl/curl_easy_reset.3
+++ b/docs/libcurl/curl_easy_reset.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_easy_reset 3 "February 03, 2016" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_easy_reset 3 "February 03, 2016" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_easy_reset - reset all options of a libcurl session handle
diff --git a/docs/libcurl/curl_easy_send.3 b/docs/libcurl/curl_easy_send.3
index 5809723c..7e16c9c0 100644
--- a/docs/libcurl/curl_easy_send.3
+++ b/docs/libcurl/curl_easy_send.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH curl_easy_send 3 "December 18, 2016" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_easy_send 3 "December 18, 2016" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_easy_send - sends raw data over an "easy" connection
diff --git a/docs/libcurl/curl_easy_setopt.3 b/docs/libcurl/curl_easy_setopt.3
index 3d8039af..a141f0f4 100644
--- a/docs/libcurl/curl_easy_setopt.3
+++ b/docs/libcurl/curl_easy_setopt.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
.\" *
.\" * This software is licensed as described in the file COPYING, which
.\" * you should have received as part of this distribution. The terms
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH curl_easy_setopt 3 "September 02, 2017" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_easy_setopt 3 "February 14, 2018" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_easy_setopt \- set options for a curl easy handle
@@ -140,6 +140,10 @@ Callback for wildcard matching. See \fICURLOPT_FNMATCH_FUNCTION(3)\fP
Data pointer to pass to the wildcard matching callback. See \fICURLOPT_FNMATCH_DATA(3)\fP
.IP CURLOPT_SUPPRESS_CONNECT_HEADERS
Suppress proxy CONNECT response headers from user callbacks. See \fICURLOPT_SUPPRESS_CONNECT_HEADERS(3)\fP
+.IP CURLOPT_RESOLVER_START_FUNCTION
+Callback to be called before a new resolve request is started. See \fICURLOPT_RESOLVER_START_FUNCTION(3)\fP
+.IP CURLOPT_RESOLVER_START_DATA
+Data pointer to pass to resolver start callback. See \fICURLOPT_RESOLVER_START_DATA(3)\fP
.SH ERROR OPTIONS
.IP CURLOPT_ERRORBUFFER
Error message buffer. See \fICURLOPT_ERRORBUFFER(3)\fP
@@ -422,6 +426,8 @@ Maximum file size to get. See \fICURLOPT_MAXFILESIZE_LARGE(3)\fP
Make a time conditional request. See \fICURLOPT_TIMECONDITION(3)\fP
.IP CURLOPT_TIMEVALUE
Time value for the time conditional request. See \fICURLOPT_TIMEVALUE(3)\fP
+.IP CURLOPT_TIMEVALUE_LARGE
+Time value for the time conditional request. See \fICURLOPT_TIMEVALUE_LARGE(3)\fP
.SH CONNECTION OPTIONS
.IP CURLOPT_TIMEOUT
Timeout for the entire request. See \fICURLOPT_TIMEOUT(3)\fP
@@ -463,6 +469,8 @@ Bind name resolves to this IP6 address. See \fICURLOPT_DNS_LOCAL_IP6(3)\fP
Preferred DNS servers. See \fICURLOPT_DNS_SERVERS(3)\fP
.IP CURLOPT_ACCEPTTIMEOUT_MS
Timeout for waiting for the server's connect back to be accepted. See \fICURLOPT_ACCEPTTIMEOUT_MS(3)\fP
+.IP CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS
+Timeout for happy eyeballs. See \fICURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS(3)\fP
.SH SSL and SECURITY OPTIONS
.IP CURLOPT_SSLCERT
Client cert. See \fICURLOPT_SSLCERT(3)\fP
diff --git a/docs/libcurl/curl_easy_strerror.3 b/docs/libcurl/curl_easy_strerror.3
index e3505b47..562f8b29 100644
--- a/docs/libcurl/curl_easy_strerror.3
+++ b/docs/libcurl/curl_easy_strerror.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_easy_strerror 3 "February 03, 2016" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_easy_strerror 3 "February 03, 2016" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_easy_strerror - return string describing error code
diff --git a/docs/libcurl/curl_easy_unescape.3 b/docs/libcurl/curl_easy_unescape.3
index 5b6520e3..99b35a07 100644
--- a/docs/libcurl/curl_easy_unescape.3
+++ b/docs/libcurl/curl_easy_unescape.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH curl_easy_unescape 3 "October 04, 2016" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_easy_unescape 3 "October 04, 2016" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_easy_unescape - URL decodes the given string
diff --git a/docs/libcurl/curl_escape.3 b/docs/libcurl/curl_escape.3
index 6fee63da..69e2b9ff 100644
--- a/docs/libcurl/curl_escape.3
+++ b/docs/libcurl/curl_escape.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_escape 3 "February 03, 2016" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_escape 3 "February 03, 2016" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_escape - URL encodes the given string
diff --git a/docs/libcurl/curl_formadd.3 b/docs/libcurl/curl_formadd.3
index 5bd91e46..441edd26 100644
--- a/docs/libcurl/curl_formadd.3
+++ b/docs/libcurl/curl_formadd.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_formadd 3 "October 08, 2017" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_formadd 3 "October 08, 2017" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_formadd - add a section to a multipart/formdata HTTP POST
diff --git a/docs/libcurl/curl_formfree.3 b/docs/libcurl/curl_formfree.3
index 9de81a29..7d1d804c 100644
--- a/docs/libcurl/curl_formfree.3
+++ b/docs/libcurl/curl_formfree.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_formfree 3 "September 02, 2017" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_formfree 3 "September 02, 2017" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_formfree - free a previously build multipart/formdata HTTP POST chain
diff --git a/docs/libcurl/curl_formget.3 b/docs/libcurl/curl_formget.3
index 5aaf0754..69dc9925 100644
--- a/docs/libcurl/curl_formget.3
+++ b/docs/libcurl/curl_formget.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_formget 3 "September 02, 2017" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_formget 3 "September 02, 2017" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_formget - serialize a previously built multipart/formdata HTTP POST chain
diff --git a/docs/libcurl/curl_free.3 b/docs/libcurl/curl_free.3
index 69fed2cc..32e5cf20 100644
--- a/docs/libcurl/curl_free.3
+++ b/docs/libcurl/curl_free.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_free 3 "February 03, 2016" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_free 3 "February 03, 2016" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_free - reclaim memory that has been obtained through a libcurl call
diff --git a/docs/libcurl/curl_getdate.3 b/docs/libcurl/curl_getdate.3
index 9fe12bb6..9c0aa1a3 100644
--- a/docs/libcurl/curl_getdate.3
+++ b/docs/libcurl/curl_getdate.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
.\" *
.\" * This software is licensed as described in the file COPYING, which
.\" * you should have received as part of this distribution. The terms
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_getdate 3 "February 03, 2016" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_getdate 3 "January 18, 2018" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_getdate - Convert a date string to number of seconds
@@ -97,13 +97,15 @@ only ones RFC 7231 says HTTP applications may use.
This function returns -1 when it fails to parse the date string. Otherwise it
returns the number of seconds as described.
-If the year is larger than 2037 on systems with 32 bit time_t, this function
-will return 0x7fffffff (since that is the largest possible signed 32 bit
-number).
+On systems with a signed 32 bit time_t: if the year is larger than 2037 or
+less than 1903, this function will return -1.
-Having a 64 bit time_t is not a guarantee that dates beyond 03:14:07 UTC,
-January 19, 2038 will work fine. On systems with a 64 bit time_t but with a
-crippled mktime(), \fIcurl_getdate(3)\fP will return -1 in this case.
+On systems with an unsigned 32 bit time_t: if the year is larger than 2106 or
+less than 1970, this function will return -1.
+
+On systems with 64 bit time_t: if the year is less than 1583, this function
+will return -1. (The Gregorian calendar was first introduced 1582 so no "real"
+dates in this way of doing dates existed before then.)
.SH "SEE ALSO"
.BR curl_easy_escape "(3), " curl_easy_unescape "(3), "
.BR CURLOPT_TIMECONDITION "(3), " CURLOPT_TIMEVALUE "(3) "
diff --git a/docs/libcurl/curl_getenv.3 b/docs/libcurl/curl_getenv.3
index cfff00c8..0ddb9e83 100644
--- a/docs/libcurl/curl_getenv.3
+++ b/docs/libcurl/curl_getenv.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_getenv 3 "February 03, 2016" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_getenv 3 "February 03, 2016" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_getenv - return value for environment name
diff --git a/docs/libcurl/curl_global_cleanup.3 b/docs/libcurl/curl_global_cleanup.3
index 2e2f4893..b0e4bc0f 100644
--- a/docs/libcurl/curl_global_cleanup.3
+++ b/docs/libcurl/curl_global_cleanup.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_global_cleanup 3 "September 20, 2016" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_global_cleanup 3 "September 20, 2016" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_global_cleanup - global libcurl cleanup
diff --git a/docs/libcurl/curl_global_init.3 b/docs/libcurl/curl_global_init.3
index 55486409..324c7bec 100644
--- a/docs/libcurl/curl_global_init.3
+++ b/docs/libcurl/curl_global_init.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_global_init 3 "November 23, 2017" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_global_init 3 "January 24, 2018" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_global_init - Global libcurl initialisation
@@ -63,7 +63,7 @@ Initialize everything possible. This sets all known bits except
\fBCURL_GLOBAL_ACK_EINTR\fP.
.IP CURL_GLOBAL_SSL
-(This flag's presence or absense serves no meaning since 7.57.0. The
+(This flag's presence or absence serves no meaning since 7.57.0. The
description below is for older libcurl versions.)
Initialize SSL.
diff --git a/docs/libcurl/curl_global_init_mem.3 b/docs/libcurl/curl_global_init_mem.3
index bb320f8e..55901331 100644
--- a/docs/libcurl/curl_global_init_mem.3
+++ b/docs/libcurl/curl_global_init_mem.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_global_init_mem 3 "February 03, 2016" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_global_init_mem 3 "February 03, 2016" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_global_init_mem - Global libcurl initialisation with memory callbacks
diff --git a/docs/libcurl/curl_global_sslset.3 b/docs/libcurl/curl_global_sslset.3
index 42b3fbf3..03b74cdd 100644
--- a/docs/libcurl/curl_global_sslset.3
+++ b/docs/libcurl/curl_global_sslset.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_global_sslset 3 "September 21, 2017" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_global_sslset 3 "September 21, 2017" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_global_sslset - Select SSL backend to use with libcurl
diff --git a/docs/libcurl/curl_mime_addpart.3 b/docs/libcurl/curl_mime_addpart.3
index 7e85e32d..fb4acd86 100644
--- a/docs/libcurl/curl_mime_addpart.3
+++ b/docs/libcurl/curl_mime_addpart.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_mime_addpart 3 "September 22, 2017" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_mime_addpart 3 "September 22, 2017" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_mime_addpart - append a new empty part to a mime structure
diff --git a/docs/libcurl/curl_mime_data.3 b/docs/libcurl/curl_mime_data.3
index 6426d6f3..437ab1ea 100644
--- a/docs/libcurl/curl_mime_data.3
+++ b/docs/libcurl/curl_mime_data.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_mime_data 3 "September 22, 2017" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_mime_data 3 "September 22, 2017" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_mime_data - set a mime part's body data from memory
diff --git a/docs/libcurl/curl_mime_data_cb.3 b/docs/libcurl/curl_mime_data_cb.3
index fee806b1..21fb5d45 100644
--- a/docs/libcurl/curl_mime_data_cb.3
+++ b/docs/libcurl/curl_mime_data_cb.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_mime_data_cb 3 "January 14, 2018" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_mime_data_cb 3 "January 14, 2018" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_mime_data_cb - set a callback-based data source for a mime part's body
diff --git a/docs/libcurl/curl_mime_encoder.3 b/docs/libcurl/curl_mime_encoder.3
index 410e5c26..bceaeb22 100644
--- a/docs/libcurl/curl_mime_encoder.3
+++ b/docs/libcurl/curl_mime_encoder.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_mime_encoder 3 "September 05, 2017" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_mime_encoder 3 "September 05, 2017" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_mime_encoder - set a mime part's encoder and content transfer encoding
diff --git a/docs/libcurl/curl_mime_filedata.3 b/docs/libcurl/curl_mime_filedata.3
index f1853dae..bff6b29a 100644
--- a/docs/libcurl/curl_mime_filedata.3
+++ b/docs/libcurl/curl_mime_filedata.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_mime_filedata 3 "January 14, 2018" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_mime_filedata 3 "January 14, 2018" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_mime_filedata - set a mime part's body data from a file contents
diff --git a/docs/libcurl/curl_mime_filename.3 b/docs/libcurl/curl_mime_filename.3
index 0f384d90..1027b21c 100644
--- a/docs/libcurl/curl_mime_filename.3
+++ b/docs/libcurl/curl_mime_filename.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_mime_filename 3 "September 22, 2017" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_mime_filename 3 "September 22, 2017" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_mime_filename - set a mime part's remote file name
diff --git a/docs/libcurl/curl_mime_free.3 b/docs/libcurl/curl_mime_free.3
index e89edec0..55993dea 100644
--- a/docs/libcurl/curl_mime_free.3
+++ b/docs/libcurl/curl_mime_free.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_mime_free 3 "September 04, 2017" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_mime_free 3 "September 04, 2017" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_mime_free - free a previously built mime structure
diff --git a/docs/libcurl/curl_mime_headers.3 b/docs/libcurl/curl_mime_headers.3
index 13e09215..b48ea7a7 100644
--- a/docs/libcurl/curl_mime_headers.3
+++ b/docs/libcurl/curl_mime_headers.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_mime_headers 3 "September 22, 2017" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_mime_headers 3 "September 22, 2017" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_mime_headers - set a mime part's custom headers
diff --git a/docs/libcurl/curl_mime_init.3 b/docs/libcurl/curl_mime_init.3
index fb11dfc0..7017da06 100644
--- a/docs/libcurl/curl_mime_init.3
+++ b/docs/libcurl/curl_mime_init.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_mime_init 3 "September 22, 2017" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_mime_init 3 "September 22, 2017" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_mime_init - create a mime handle
diff --git a/docs/libcurl/curl_mime_name.3 b/docs/libcurl/curl_mime_name.3
index df746796..19e8d7f8 100644
--- a/docs/libcurl/curl_mime_name.3
+++ b/docs/libcurl/curl_mime_name.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_mime_name 3 "September 22, 2017" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_mime_name 3 "September 22, 2017" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_mime_name - set a mime part's name
diff --git a/docs/libcurl/curl_mime_subparts.3 b/docs/libcurl/curl_mime_subparts.3
index a06b4dc9..36923930 100644
--- a/docs/libcurl/curl_mime_subparts.3
+++ b/docs/libcurl/curl_mime_subparts.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_mime_subparts 3 "September 05, 2017" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_mime_subparts 3 "September 05, 2017" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_mime_subparts - set subparts of a multipart mime part
diff --git a/docs/libcurl/curl_mime_type.3 b/docs/libcurl/curl_mime_type.3
index 4227d399..ceb60c74 100644
--- a/docs/libcurl/curl_mime_type.3
+++ b/docs/libcurl/curl_mime_type.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_mime_type 3 "September 22, 2017" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_mime_type 3 "September 22, 2017" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_mime_type - set a mime part's content type
diff --git a/docs/libcurl/curl_mprintf.3 b/docs/libcurl/curl_mprintf.3
index 6b1e7356..24880a11 100644
--- a/docs/libcurl/curl_mprintf.3
+++ b/docs/libcurl/curl_mprintf.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_printf 3 "April 01, 2016" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_printf 3 "April 01, 2016" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_maprintf, curl_mfprintf, curl_mprintf, curl_msnprintf, curl_msprintf
diff --git a/docs/libcurl/curl_multi_add_handle.3 b/docs/libcurl/curl_multi_add_handle.3
index b0e5b2a5..4c2b32cb 100644
--- a/docs/libcurl/curl_multi_add_handle.3
+++ b/docs/libcurl/curl_multi_add_handle.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_add_handle 3 "February 03, 2016" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_multi_add_handle 3 "February 03, 2016" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_multi_add_handle - add an easy handle to a multi session
diff --git a/docs/libcurl/curl_multi_assign.3 b/docs/libcurl/curl_multi_assign.3
index 4fe296e8..3a126c0f 100644
--- a/docs/libcurl/curl_multi_assign.3
+++ b/docs/libcurl/curl_multi_assign.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_assign 3 "February 03, 2016" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_multi_assign 3 "February 03, 2016" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_multi_assign \- set data to associate with an internal socket
diff --git a/docs/libcurl/curl_multi_cleanup.3 b/docs/libcurl/curl_multi_cleanup.3
index d36a52d3..9053af09 100644
--- a/docs/libcurl/curl_multi_cleanup.3
+++ b/docs/libcurl/curl_multi_cleanup.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_cleanup 3 "February 03, 2016" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_multi_cleanup 3 "February 03, 2016" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_multi_cleanup - close down a multi session
diff --git a/docs/libcurl/curl_multi_fdset.3 b/docs/libcurl/curl_multi_fdset.3
index efca9fe8..d4a2dd99 100644
--- a/docs/libcurl/curl_multi_fdset.3
+++ b/docs/libcurl/curl_multi_fdset.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_fdset 3 "November 09, 2017" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_multi_fdset 3 "November 09, 2017" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_multi_fdset - extracts file descriptor information from a multi handle
diff --git a/docs/libcurl/curl_multi_info_read.3 b/docs/libcurl/curl_multi_info_read.3
index b71a72c5..a8871e9e 100644
--- a/docs/libcurl/curl_multi_info_read.3
+++ b/docs/libcurl/curl_multi_info_read.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_info_read 3 "February 03, 2016" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_multi_info_read 3 "February 03, 2016" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_multi_info_read - read multi stack informationals
diff --git a/docs/libcurl/curl_multi_init.3 b/docs/libcurl/curl_multi_init.3
index 10bddca7..6f4f2b83 100644
--- a/docs/libcurl/curl_multi_init.3
+++ b/docs/libcurl/curl_multi_init.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_init 3 "February 03, 2016" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_multi_init 3 "February 03, 2016" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_multi_init - create a multi handle
diff --git a/docs/libcurl/curl_multi_perform.3 b/docs/libcurl/curl_multi_perform.3
index 38409604..b254b5d1 100644
--- a/docs/libcurl/curl_multi_perform.3
+++ b/docs/libcurl/curl_multi_perform.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_perform 3 "February 03, 2016" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_multi_perform 3 "February 03, 2016" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_multi_perform - reads/writes available data from each easy handle
diff --git a/docs/libcurl/curl_multi_remove_handle.3 b/docs/libcurl/curl_multi_remove_handle.3
index 11763d38..b7b6cb57 100644
--- a/docs/libcurl/curl_multi_remove_handle.3
+++ b/docs/libcurl/curl_multi_remove_handle.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_remove_handle 3 "February 03, 2016" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_multi_remove_handle 3 "February 03, 2016" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_multi_remove_handle - remove an easy handle from a multi session
diff --git a/docs/libcurl/curl_multi_setopt.3 b/docs/libcurl/curl_multi_setopt.3
index fd0cab77..5546e287 100644
--- a/docs/libcurl/curl_multi_setopt.3
+++ b/docs/libcurl/curl_multi_setopt.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_setopt 3 "February 03, 2016" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_multi_setopt 3 "February 03, 2016" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_multi_setopt \- set options for a curl multi handle
diff --git a/docs/libcurl/curl_multi_socket.3 b/docs/libcurl/curl_multi_socket.3
index fd51957c..65d89141 100644
--- a/docs/libcurl/curl_multi_socket.3
+++ b/docs/libcurl/curl_multi_socket.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_socket 3 "December 15, 2016" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_multi_socket 3 "December 15, 2016" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_multi_socket \- reads/writes available data
diff --git a/docs/libcurl/curl_multi_socket_action.3 b/docs/libcurl/curl_multi_socket_action.3
index c6491e64..0f1e8d64 100644
--- a/docs/libcurl/curl_multi_socket_action.3
+++ b/docs/libcurl/curl_multi_socket_action.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_socket_action 3 "June 07, 2016" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_multi_socket_action 3 "June 07, 2016" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_multi_socket_action \- reads/writes available data given an action
diff --git a/docs/libcurl/curl_multi_strerror.3 b/docs/libcurl/curl_multi_strerror.3
index f115e6e8..7ea6b20c 100644
--- a/docs/libcurl/curl_multi_strerror.3
+++ b/docs/libcurl/curl_multi_strerror.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_strerror 3 "February 03, 2016" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_multi_strerror 3 "February 03, 2016" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_multi_strerror - return string describing error code
diff --git a/docs/libcurl/curl_multi_timeout.3 b/docs/libcurl/curl_multi_timeout.3
index 5ddf8967..ce89899d 100644
--- a/docs/libcurl/curl_multi_timeout.3
+++ b/docs/libcurl/curl_multi_timeout.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_timeout 3 "May 02, 2016" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_multi_timeout 3 "May 02, 2016" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_multi_timeout \- how long to wait for action before proceeding
diff --git a/docs/libcurl/curl_multi_wait.3 b/docs/libcurl/curl_multi_wait.3
index 8d7b112a..cf843303 100644
--- a/docs/libcurl/curl_multi_wait.3
+++ b/docs/libcurl/curl_multi_wait.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_wait 3 "March 09, 2016" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_multi_wait 3 "March 09, 2016" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_multi_wait - polls on all easy handles in a multi handle
diff --git a/docs/libcurl/curl_share_cleanup.3 b/docs/libcurl/curl_share_cleanup.3
index 9f81f665..2b0d2e1c 100644
--- a/docs/libcurl/curl_share_cleanup.3
+++ b/docs/libcurl/curl_share_cleanup.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_share_cleanup 3 "February 03, 2016" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_share_cleanup 3 "February 03, 2016" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_share_cleanup - Clean up a shared object
diff --git a/docs/libcurl/curl_share_init.3 b/docs/libcurl/curl_share_init.3
index 05a6bd21..edcce88a 100644
--- a/docs/libcurl/curl_share_init.3
+++ b/docs/libcurl/curl_share_init.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_share_init 3 "February 03, 2016" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_share_init 3 "February 03, 2016" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_share_init - Create a shared object
diff --git a/docs/libcurl/curl_share_setopt.3 b/docs/libcurl/curl_share_setopt.3
index 4ed695d3..e92435f1 100644
--- a/docs/libcurl/curl_share_setopt.3
+++ b/docs/libcurl/curl_share_setopt.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
.\" *
.\" * This software is licensed as described in the file COPYING, which
.\" * you should have received as part of this distribution. The terms
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_share_setopt 3 "December 05, 2017" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_share_setopt 3 "February 23, 2018" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_share_setopt - Set options for a shared object
@@ -63,8 +63,8 @@ Cookie data will be shared across the easy handles using this shared object.
.IP CURL_LOCK_DATA_DNS
Cached DNS hosts will be shared across the easy handles using this shared
object. Note that when you use the multi interface, all easy handles added to
-the same multi handle will share DNS cache by default without this having to
-be used!
+the same multi handle will share DNS cache by default without using this
+option.
.IP CURL_LOCK_DATA_SSL_SESSION
SSL session IDs will be shared across the easy handles using this shared
object. This will reduce the time spent in the SSL handshake when reconnecting
@@ -85,6 +85,9 @@ in different threads using a shared connection.
Support for \fBCURL_LOCK_DATA_CONNECT\fP was added in 7.57.0, but the symbol
existed before this.
+
+Note that when you use the multi interface, all easy handles added to the same
+multi handle will share connection cache by default without using this option.
.RE
.IP CURLSHOPT_UNSHARE
This option does the opposite of \fICURLSHOPT_SHARE\fP. It specifies that
diff --git a/docs/libcurl/curl_share_strerror.3 b/docs/libcurl/curl_share_strerror.3
index 4cfbdbe6..0d92c3e8 100644
--- a/docs/libcurl/curl_share_strerror.3
+++ b/docs/libcurl/curl_share_strerror.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_share_strerror 3 "February 03, 2016" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_share_strerror 3 "February 03, 2016" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_share_strerror - return string describing error code
diff --git a/docs/libcurl/curl_slist_append.3 b/docs/libcurl/curl_slist_append.3
index d242ebb0..6f944f1f 100644
--- a/docs/libcurl/curl_slist_append.3
+++ b/docs/libcurl/curl_slist_append.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_slist_append 3 "May 05, 2017" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_slist_append 3 "May 05, 2017" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_slist_append - add a string to an slist
diff --git a/docs/libcurl/curl_slist_free_all.3 b/docs/libcurl/curl_slist_free_all.3
index d5edb1bb..2f3afedc 100644
--- a/docs/libcurl/curl_slist_free_all.3
+++ b/docs/libcurl/curl_slist_free_all.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_slist_free_all 3 "May 05, 2017" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_slist_free_all 3 "May 05, 2017" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_slist_free_all - free an entire curl_slist list
diff --git a/docs/libcurl/curl_strequal.3 b/docs/libcurl/curl_strequal.3
index 0b53ef71..a442c7f7 100644
--- a/docs/libcurl/curl_strequal.3
+++ b/docs/libcurl/curl_strequal.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_strequal 3 "June 29, 2017" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_strequal 3 "June 29, 2017" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_strequal, curl_strnequal - case insensitive string comparisons
diff --git a/docs/libcurl/curl_unescape.3 b/docs/libcurl/curl_unescape.3
index 6f853d71..66193178 100644
--- a/docs/libcurl/curl_unescape.3
+++ b/docs/libcurl/curl_unescape.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_unescape 3 "February 03, 2016" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_unescape 3 "February 03, 2016" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_unescape - URL decodes the given string
diff --git a/docs/libcurl/curl_version.3 b/docs/libcurl/curl_version.3
index f2c3ea08..88a85443 100644
--- a/docs/libcurl/curl_version.3
+++ b/docs/libcurl/curl_version.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_version 3 "February 03, 2016" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_version 3 "February 03, 2016" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_version - returns the libcurl version string
diff --git a/docs/libcurl/curl_version_info.3 b/docs/libcurl/curl_version_info.3
index 69ab4085..5b2899f1 100644
--- a/docs/libcurl/curl_version_info.3
+++ b/docs/libcurl/curl_version_info.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH curl_version_info 3 "December 29, 2017" "libcurl 7.58.0" "libcurl Manual"
+.TH curl_version_info 3 "December 29, 2017" "libcurl 7.59.0" "libcurl Manual"
.SH NAME
curl_version_info - returns run-time libcurl version info
diff --git a/docs/libcurl/libcurl-easy.3 b/docs/libcurl/libcurl-easy.3
index c3a764d7..792f71b8 100644
--- a/docs/libcurl/libcurl-easy.3
+++ b/docs/libcurl/libcurl-easy.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH libcurl 3 "February 03, 2016" "libcurl 7.58.0" "libcurl easy interface"
+.TH libcurl 3 "February 03, 2016" "libcurl 7.59.0" "libcurl easy interface"
.SH NAME
libcurl-easy \- easy interface overview
diff --git a/docs/libcurl/libcurl-env.3 b/docs/libcurl/libcurl-env.3
index 3e5c19ee..feeacec1 100644
--- a/docs/libcurl/libcurl-env.3
+++ b/docs/libcurl/libcurl-env.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH libcurl-env 3 "January 23, 2018" "libcurl 7.58.0" "libcurl environment variables"
+.TH libcurl-env 3 "January 24, 2018" "libcurl 7.59.0" "libcurl environment variables"
.SH NAME
libcurl-env \- environment variables libcurl understands
@@ -37,7 +37,7 @@ will use the "ftp_proxy" variable.
These proxy variables are also checked for in their uppercase versions, except
the "http_proxy" one which is only used lowercase. Note also that some systems
-actually have a case insensitve handling of environment variables and then of
+actually have a case insensitive handling of environment variables and then of
course "HTTP_PROXY" will still work...
.IP ALL_PROXY
This is a setting to set proxy for all URLs, independently of what scheme is
@@ -47,7 +47,7 @@ set.
When libcurl is built to support multiple SSL backends, it will select a
specific backend at first use. If no selection is done by the program using
libcurl, this variable's selection will be used. It should be set to the full
-SSL backend name to use (case insensitve).
+SSL backend name to use (case insensitive).
.IP HOME
When the netrc feature is used (\fICURLOPT_NETRC(3)\fP), this variable is
checked as the primary way to find the "current" home directory in which
diff --git a/docs/libcurl/libcurl-errors.3 b/docs/libcurl/libcurl-errors.3
index c8f44e37..8aa7b97c 100644
--- a/docs/libcurl/libcurl-errors.3
+++ b/docs/libcurl/libcurl-errors.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH libcurl-errors 3 "August 22, 2016" "libcurl 7.58.0" "libcurl errors"
+.TH libcurl-errors 3 "February 10, 2018" "libcurl 7.59.0" "libcurl errors"
.SH NAME
libcurl-errors \- error codes in libcurl
@@ -253,6 +253,8 @@ Failed to match the pinned key specified with \fICURLOPT_PINNEDPUBLICKEY(3)\fP.
Status returned failure when asked with \fICURLOPT_SSL_VERIFYSTATUS(3)\fP.
.IP "CURLE_HTTP2_STREAM (92)"
Stream error in the HTTP/2 framing layer.
+.IP "CURLE_RECURSIVE_API_CALL (93)"
+An API function was called from inside a callback.
.IP "CURLE_OBSOLETE*"
These error codes will never be returned. They were used in an old libcurl
version and are currently unused.
@@ -286,6 +288,8 @@ curl_multi_setopt() with unsupported option
.IP "CURLM_ADDED_ALREADY (7)"
An easy handle already added to a multi handle was attempted to get added a
second time. (Added in 7.32.1)
+.IP "CURLM_RECURSIVE_API_CALL (8)"
+An API function was called from inside a callback.
.SH "CURLSHcode"
The "share" interface will return a CURLSHcode to indicate when an error has
occurred. Also consider \fIcurl_share_strerror(3)\fP.
diff --git a/docs/libcurl/libcurl-multi.3 b/docs/libcurl/libcurl-multi.3
index c391cf10..1fd23666 100644
--- a/docs/libcurl/libcurl-multi.3
+++ b/docs/libcurl/libcurl-multi.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH libcurl-multi 3 "June 07, 2017" "libcurl 7.58.0" "libcurl multi interface"
+.TH libcurl-multi 3 "June 07, 2017" "libcurl 7.59.0" "libcurl multi interface"
.SH NAME
libcurl-multi \- how to use the multi interface
diff --git a/docs/libcurl/libcurl-security.3 b/docs/libcurl/libcurl-security.3
new file mode 100644
index 00000000..e8037c39
--- /dev/null
+++ b/docs/libcurl/libcurl-security.3
@@ -0,0 +1,339 @@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
+.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" *
+.\" * This software is licensed as described in the file COPYING, which
+.\" * you should have received as part of this distribution. The terms
+.\" * are also available at https://curl.haxx.se/docs/copyright.html.
+.\" *
+.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+.\" * copies of the Software, and permit persons to whom the Software is
+.\" * furnished to do so, under the terms of the COPYING file.
+.\" *
+.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+.\" * KIND, either express or implied.
+.\" *
+.\" **************************************************************************
+.\"
+.TH libcurl-security 3 "February 13, 2018" "libcurl 7.59.0" "libcurl security"
+
+.SH NAME
+libcurl-security \- security considerations when using libcurl
+.SH "Security"
+The libcurl project takes security seriously. The library is written with
+caution and precautions are taken to mitigate many kinds of risks encountered
+while operating with potentially malicious servers on the Internet. It is a
+powerful library, however, which allows application writers to make trade-offs
+between ease of writing and exposure to potential risky operations. If used
+the right way, you can use libcurl to transfer data pretty safely.
+
+Many applications are used in closed networks where users and servers can
+(possibly) be trusted, but many others are used on arbitrary servers and are
+fed input from potentially untrusted users. Following is a discussion about
+some risks in the ways in which applications commonly use libcurl and
+potential mitigations of those risks. It is by no means comprehensive, but
+shows classes of attacks that robust applications should consider. The Common
+Weakness Enumeration project at https://cwe.mitre.org/ is a good reference for
+many of these and similar types of weaknesses of which application writers
+should be aware.
+.SH "Command Lines"
+If you use a command line tool (such as curl) that uses libcurl, and you give
+options to the tool on the command line those options can very likely get read
+by other users of your system when they use 'ps' or other tools to list
+currently running processes.
+
+To avoid these problems, never feed sensitive things to programs using command
+line options. Write them to a protected file and use the \-K option to avoid
+this.
+.SH ".netrc"
+\&.netrc is a pretty handy file/feature that allows you to login quickly and
+automatically to frequently visited sites. The file contains passwords in
+clear text and is a real security risk. In some cases, your .netrc is also
+stored in a home directory that is NFS mounted or used on another network
+based file system, so the clear text password will fly through your network
+every time anyone reads that file!
+
+For applications that enable .netrc use, a user who manage to set the right
+URL might then be possible to pass on passwords.
+
+To avoid these problems, don't use .netrc files and never store passwords in
+plain text anywhere.
+.SH "Clear Text Passwords"
+Many of the protocols libcurl supports send name and password unencrypted as
+clear text (HTTP Basic authentication, FTP, TELNET etc). It is very easy for
+anyone on your network or a network nearby yours to just fire up a network
+analyzer tool and eavesdrop on your passwords. Don't let the fact that HTTP
+Basic uses base64 encoded passwords fool you. They may not look readable at a
+first glance, but they very easily "deciphered" by anyone within seconds.
+
+To avoid this problem, use an authentication mechanism or other protocol that
+doesn't let snoopers see your password: Digest, CRAM-MD5, Kerberos, SPNEGO or
+NTLM authentication. Or even better: use authenticated protocols that protect
+the entire connection and everything sent over it.
+.SH "Un-authenticated Connections"
+Protocols that don't have any form of cryptographic authentication can not
+with any certainty know that they communicate with the right remote server.
+
+If your application is using a fixed scheme or fixed host name, it is not safe
+as long as the connection is un-authenticated. There can be a
+man-in-the-middle or in fact the whole server might have been replaced by an
+evil actor.
+
+Un-authenticated protocols are unsafe. The data that comes back to curl may
+have been injected by an attacker. The data that curl sends might be modified
+before it reaches the intended server. If it even reaches the intended server
+at all.
+
+Remedies include:
+ - Restrict operations to authenticated transfers
+ - Make sure the server's certificate etc is verified
+.SH "Redirects"
+The \fICURLOPT_FOLLOWLOCATION(3)\fP option automatically follows HTTP
+redirects sent by a remote server. These redirects can refer to any kind of
+URL, not just HTTP. libcurl restricts the protocols allowed to be used in
+redirects for security reasons: FILE, SCP, SMB and SMBS are disabled by
+default. Applications are encouraged to restrict that set further.
+
+A redirect to a file: URL would cause the libcurl to read (or write) arbitrary
+files from the local filesystem. If the application returns the data back to
+the user (as would happen in some kinds of CGI scripts), an attacker could
+leverage this to read otherwise forbidden data (e.g.
+file://localhost/etc/passwd).
+
+If authentication credentials are stored in the ~/.netrc file, or Kerberos
+is in use, any other URL type (not just file:) that requires
+authentication is also at risk. A redirect such as
+ftp://some-internal-server/private-file would then return data even when
+the server is password protected.
+
+In the same way, if an unencrypted SSH private key has been configured for the
+user running the libcurl application, SCP: or SFTP: URLs could access password
+or private-key protected resources,
+e.g. sftp://user@some-internal-server/etc/passwd
+
+The \fICURLOPT_REDIR_PROTOCOLS(3)\fP and \fICURLOPT_NETRC(3)\fP options can be
+used to mitigate against this kind of attack.
+
+A redirect can also specify a location available only on the machine running
+libcurl, including servers hidden behind a firewall from the attacker.
+e.g. http://127.0.0.1/ or http://intranet/delete-stuff.cgi?delete=all or
+tftp://bootp-server/pc-config-data
+
+Applications can mitigate against this by disabling
+\fICURLOPT_FOLLOWLOCATION(3)\fP and handling redirects itself, sanitizing URLs
+as necessary. Alternately, an app could leave \fICURLOPT_FOLLOWLOCATION(3)\fP
+enabled but set \fICURLOPT_REDIR_PROTOCOLS(3)\fP and install a
+\fICURLOPT_OPENSOCKETFUNCTION(3)\fP callback function in which addresses are
+sanitized before use.
+.SH "Local Resources"
+A user who can control the DNS server of a domain being passed in within a URL
+can change the address of the host to a local, private address which a
+server-side libcurl-using application could then use. e.g. the innocuous URL
+http://fuzzybunnies.example.com/ could actually resolve to the IP address of a
+server behind a firewall, such as 127.0.0.1 or 10.1.2.3. Applications can
+mitigate against this by setting a \fICURLOPT_OPENSOCKETFUNCTION(3)\fP and
+checking the address before a connection.
+
+All the malicious scenarios regarding redirected URLs apply just as well to
+non-redirected URLs, if the user is allowed to specify an arbitrary URL that
+could point to a private resource. For example, a web app providing a
+translation service might happily translate file://localhost/etc/passwd and
+display the result. Applications can mitigate against this with the
+\fICURLOPT_PROTOCOLS(3)\fP option as well as by similar mitigation techniques
+for redirections.
+
+A malicious FTP server could in response to the PASV command return an IP
+address and port number for a server local to the app running libcurl but
+behind a firewall. Applications can mitigate against this by using the
+\fICURLOPT_FTP_SKIP_PASV_IP(3)\fP option or \fICURLOPT_FTPPORT(3)\fP.
+
+Local servers sometimes assume local access comes from friends and trusted
+users. An application that expects http://example.com/file_to_read that and
+instead gets http://192.168.0.1/my_router_config might print a file that would
+otherwise be protected by the firewall.
+
+Allowing your application to connect to local hosts, be it the same machine
+that runs the application or a machine on the same local network, might be
+possible to exploit by an attacker who then perhaps can "port-scan" the
+particular hosts - depending on how the application and servers acts.
+.SH "IPv6 Addresses"
+libcurl will normally handle IPv6 addresses transparently and just as easily
+as IPv4 addresses. That means that a sanitizing function that filters out
+addresses like 127.0.0.1 isn't sufficient--the equivalent IPv6 addresses ::1,
+::, 0:00::0:1, ::127.0.0.1 and ::ffff:7f00:1 supplied somehow by an attacker
+would all bypass a naive filter and could allow access to undesired local
+resources. IPv6 also has special address blocks like link-local and
+site-local that generally shouldn't be accessed by a server-side libcurl-using
+application. A poorly-configured firewall installed in a data center,
+organization or server may also be configured to limit IPv4 connections but
+leave IPv6 connections wide open. In some cases, setting
+\fICURLOPT_IPRESOLVE(3)\fP to CURL_IPRESOLVE_V4 can be used to limit resolved
+addresses to IPv4 only and bypass these issues.
+.SH Uploads
+When uploading, a redirect can cause a local (or remote) file to be
+overwritten. Applications must not allow any unsanitized URL to be passed in
+for uploads. Also, \fICURLOPT_FOLLOWLOCATION(3)\fP should not be used on
+uploads. Instead, the applications should consider handling redirects itself,
+sanitizing each URL first.
+.SH Authentication
+Use of \fICURLOPT_UNRESTRICTED_AUTH(3)\fP could cause authentication
+information to be sent to an unknown second server. Applications can mitigate
+against this by disabling \fICURLOPT_FOLLOWLOCATION(3)\fP and handling
+redirects itself, sanitizing where necessary.
+
+Use of the CURLAUTH_ANY option to \fICURLOPT_HTTPAUTH(3)\fP could result in
+user name and password being sent in clear text to an HTTP server. Instead,
+use CURLAUTH_ANYSAFE which ensures that the password is encrypted over the
+network, or else fail the request.
+
+Use of the CURLUSESSL_TRY option to \fICURLOPT_USE_SSL(3)\fP could result in
+user name and password being sent in clear text to an FTP server. Instead,
+use CURLUSESSL_CONTROL to ensure that an encrypted connection is used or else
+fail the request.
+.SH Cookies
+If cookies are enabled and cached, then a user could craft a URL which
+performs some malicious action to a site whose authentication is already
+stored in a cookie. e.g. http://mail.example.com/delete-stuff.cgi?delete=all
+Applications can mitigate against this by disabling cookies or clearing them
+between requests.
+.SH "Dangerous SCP URLs"
+SCP URLs can contain raw commands within the scp: URL, which is a side effect
+of how the SCP protocol is designed. e.g.
+
+ scp://user:pass@host/a;date >/tmp/test;
+
+Applications must not allow unsanitized SCP: URLs to be passed in for
+downloads.
+.SH "file://"
+By default curl and libcurl support file:// URLs. Such a URL is always an
+access, or attempted access, to a local resource. If your application wants to
+avoid that, keep control of what URLs to use and/or prevent curl/libcurl from
+using the protocol.
+
+By default, libcurl prohibits redirects to file:// URLs.
+.SH "What if the user can set the URL"
+Applications may find it tempting to let users set the URL that it can work
+on. That's probably fine, but opens up for mischief and trickery that you as
+an application author may want to address or take precautions against.
+
+If your curl-using script allow a custom URL do you also, perhaps
+unintentionally, allow the user to pass other options to the curl command line
+if creative use of special characters are applied?
+
+If the user can set the URL, the user can also specify the scheme part to
+other protocols that you didn't intend for users to use and perhaps didn't
+consider. curl supports over 20 different URL schemes. "http://" might be what
+you thought, "ftp://" or "imap://" might be what the user gives your
+application. Also, cross-protocol operations might be done by using a
+particular scheme in the URL but point to a server doing a different protocol
+on a non-standard port.
+
+Remedies:
+
+ - curl command lines can use \fI--proto\fP to limit what schemes it accepts
+ - libcurl programs can use \fICURLOPT_PROTOCOLS(3)\fP
+ - consider not allowing the user to set the full URL
+ - consider strictly filtering input to only allow specific choices
+.SH "RFC 3986 vs WHATWG URL"
+curl supports URLs mostly according to how they are defined in RFC 3986, and
+has done so since the beginning.
+
+Web browsers mostly adhere to the WHATWG URL Specification.
+
+This deviance makes some URLs copied between browsers (or returned over HTTP
+for redirection) and curl not work the same way. This can mislead users into
+getting the wrong thing, connecting to the wrong host or otherwise not work
+identically.
+.SH "FTP uses two connections"
+When performing an FTP transfer, two TCP connections are used: one for setting
+up the transfer and one for the actual data.
+
+FTP is not only un-authenticated, but the setting up of the second transfer is
+also a weak spot. The second connection to use for data, is either setup with
+the PORT/EPRT command that makes the server connect back to the client on the
+given IP+PORT, or with PASV/EPSV that makes the server setup a port to listen
+to and tells the client to connect to a given IP+PORT.
+
+Again, un-authenticated means that the connection might be meddled with by a
+man-in-the-middle or that there's a malicious server pretending to be the
+right one.
+
+A malicious FTP server can respond to PASV commands with the IP+PORT of a
+totally different machine. Perhaps even a third party host, and when there are
+many clients trying to connect to that third party, it could create a
+Distributed Denial-Of-Service attack out of it! If the client makes an upload
+operation, it can make the client send the data to another site. If the
+attacker can affect what data the client uploads, it can be made to work as a
+HTTP request and then the client could be made to issue HTTP requests to third
+party hosts.
+
+An attacker that manages to control curl's command line options can tell curl
+to send an FTP PORT command to ask the server to connect to a third party host
+instead of back to curl.
+
+The fact that FTP uses two connections makes it vulnerable in a way that is
+hard to avoid.
+.SH "Denial of Service"
+A malicious server could cause libcurl to effectively hang by sending data
+very slowly, or even no data at all but just keeping the TCP connection open.
+This could effectively result in a denial-of-service attack. The
+\fICURLOPT_TIMEOUT(3)\fP and/or \fICURLOPT_LOW_SPEED_LIMIT(3)\fP options can
+be used to mitigate against this.
+
+A malicious server could cause libcurl to download an infinite amount of data,
+potentially causing all of memory or disk to be filled. Setting the
+\fICURLOPT_MAXFILESIZE_LARGE(3)\fP option is not sufficient to guard against
+this. Instead, applications should monitor the amount of data received within
+the write or progress callback and abort once the limit is reached.
+
+A malicious HTTP server could cause an infinite redirection loop, causing a
+denial-of-service. This can be mitigated by using the
+\fICURLOPT_MAXREDIRS(3)\fP option.
+.SH "Arbitrary Headers"
+User-supplied data must be sanitized when used in options like
+\fICURLOPT_USERAGENT(3)\fP, \fICURLOPT_HTTPHEADER(3)\fP,
+\fICURLOPT_POSTFIELDS(3)\fP and others that are used to generate structured
+data. Characters like embedded carriage returns or ampersands could allow the
+user to create additional headers or fields that could cause malicious
+transactions.
+.SH "Server-supplied Names"
+A server can supply data which the application may, in some cases, use as a
+file name. The curl command-line tool does this with
+\fI--remote-header-name\fP, using the Content-disposition: header to generate
+a file name. An application could also use \fICURLINFO_EFFECTIVE_URL(3)\fP to
+generate a file name from a server-supplied redirect URL. Special care must be
+taken to sanitize such names to avoid the possibility of a malicious server
+supplying one like "/etc/passwd", "\\autoexec.bat", "prn:" or even ".bashrc".
+.SH "Server Certificates"
+A secure application should never use the \fICURLOPT_SSL_VERIFYPEER(3)\fP
+option to disable certificate validation. There are numerous attacks that are
+enabled by applications that fail to properly validate server TLS/SSL
+certificates, thus enabling a malicious server to spoof a legitimate
+one. HTTPS without validated certificates is potentially as insecure as a
+plain HTTP connection.
+.SH "Report Security Problems"
+Should you detect or just suspect a security problem in libcurl or curl,
+contact the project curl security team immediately. See the separate
+SECURITY.md document for details.
+.SH "Showing What You Do"
+Relatedly, be aware that in situations when you have problems with libcurl and
+ask someone for help, everything you reveal in order to get best possible help
+might also impose certain security related risks. Host names, user names,
+paths, operating system specifics, etc. (not to mention passwords of course)
+may in fact be used by intruders to gain additional information of a potential
+target.
+
+Be sure to limit access to application logs if they could hold private or
+security-related data. Besides the obvious candidates like user names and
+passwords, things like URLs, cookies or even file names could also hold
+sensitive data.
+
+To avoid this problem, you must of course use your common sense. Often, you
+can just edit out the sensitive data or just search/replace your true
+information with faked data.
+
diff --git a/docs/libcurl/libcurl-share.3 b/docs/libcurl/libcurl-share.3
index bd82ece9..b1d6a330 100644
--- a/docs/libcurl/libcurl-share.3
+++ b/docs/libcurl/libcurl-share.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH libcurl-share 3 "November 27, 2017" "libcurl 7.58.0" "libcurl share interface"
+.TH libcurl-share 3 "November 27, 2017" "libcurl 7.59.0" "libcurl share interface"
.SH NAME
libcurl-share \- how to use the share interface
diff --git a/docs/libcurl/libcurl-symbols.3 b/docs/libcurl/libcurl-symbols.3
index 955bf389..20d90695 100644
--- a/docs/libcurl/libcurl-symbols.3
+++ b/docs/libcurl/libcurl-symbols.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH libcurl-symbols 3 "jan 24, 2018" "libcurl 7.41.0" "libcurl symbols"
+.TH libcurl-symbols 3 "mar 14, 2018" "libcurl 7.41.0" "libcurl symbols"
.SH NAME
libcurl-symbols \- libcurl symbol version information
.SH "libcurl symbols"
@@ -232,6 +232,8 @@ Introduced in 7.17.0
Introduced in 7.1
.IP CURLE_RECV_ERROR
Introduced in 7.10
+.IP CURLE_RECURSIVE_API_CALL
+Introduced in 7.59.0
.IP CURLE_REMOTE_ACCESS_DENIED
Introduced in 7.17.0
.IP CURLE_REMOTE_DISK_FULL
@@ -502,6 +504,8 @@ Introduced in 7.4
Introduced in 7.9.6
.IP CURLINFO_FILETIME
Introduced in 7.5
+.IP CURLINFO_FILETIME_T
+Introduced in 7.59.0
.IP CURLINFO_FTP_ENTRY_PATH
Introduced in 7.15.4
.IP CURLINFO_HEADER_IN
@@ -708,6 +712,8 @@ Introduced in 7.9.6
Introduced in 7.9.6
.IP CURLM_OUT_OF_MEMORY
Introduced in 7.9.6
+.IP CURLM_RECURSIVE_API_CALL
+Introduced in 7.59.0
.IP CURLM_UNKNOWN_OPTION
Introduced in 7.15.4
.IP CURLOPTTYPE_FUNCTIONPOINT
@@ -874,6 +880,8 @@ Introduced in 7.9.2
Introduced in 7.20.0
.IP CURLOPT_GSSAPI_DELEGATION
Introduced in 7.22.0
+.IP CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS
+Introduced in 7.59.0
.IP CURLOPT_HEADER
Introduced in 7.1
.IP CURLOPT_HEADERDATA
@@ -1266,6 +1274,8 @@ Introduced in 7.1
Introduced in 7.16.2
.IP CURLOPT_TIMEVALUE
Introduced in 7.1
+.IP CURLOPT_TIMEVALUE_LARGE
+Introduced in 7.59.0
.IP CURLOPT_TLSAUTH_PASSWORD
Introduced in 7.21.4
.IP CURLOPT_TLSAUTH_TYPE
@@ -1276,6 +1286,10 @@ Introduced in 7.21.4
Introduced in 7.1.1
.IP CURLOPT_TRANSFER_ENCODING
Introduced in 7.21.6
+.IP CURLOPT_RESOLVER_START_FUNCTION
+Introduced in 7.59.0
+.IP CURLOPT_RESOLVER_START_DATA
+Introduced in 7.59.0
.IP CURLOPT_UNIX_SOCKET_PATH
Introduced in 7.40.0
.IP CURLOPT_UNRESTRICTED_AUTH
@@ -1574,6 +1588,8 @@ Introduced in 7.8
Introduced in 7.8
.IP CURL_GLOBAL_WIN32
Introduced in 7.8.1
+.IP CURL_HET_DEFAULT
+Introduced in 7.59.0
.IP CURL_HTTPPOST_BUFFER
Introduced in 7.46.0
.IP CURL_HTTPPOST_CALLBACK
diff --git a/docs/libcurl/libcurl-thread.3 b/docs/libcurl/libcurl-thread.3
index 9fdcfdd9..56a736d2 100644
--- a/docs/libcurl/libcurl-thread.3
+++ b/docs/libcurl/libcurl-thread.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH libcurl-thread 3 "August 08, 2017" "libcurl 7.58.0" "libcurl thread safety"
+.TH libcurl-thread 3 "August 08, 2017" "libcurl 7.59.0" "libcurl thread safety"
.SH NAME
libcurl-thread \- libcurl thread safety
diff --git a/docs/libcurl/libcurl-tutorial.3 b/docs/libcurl/libcurl-tutorial.3
index 4af73e1d..b88ef06a 100644
--- a/docs/libcurl/libcurl-tutorial.3
+++ b/docs/libcurl/libcurl-tutorial.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
.\" *
.\" * This software is licensed as described in the file COPYING, which
.\" * you should have received as part of this distribution. The terms
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH libcurl-tutorial 3 "October 23, 2017" "libcurl 7.58.0" "libcurl programming"
+.TH libcurl-tutorial 3 "February 23, 2018" "libcurl 7.59.0" "libcurl programming"
.SH NAME
libcurl-tutorial \- libcurl programming tutorial
@@ -857,7 +857,7 @@ discussed. Instead, the only way to have SSL work over a HTTP proxy is to ask
the proxy to tunnel trough everything without being able to check or fiddle
with the traffic.
-Opening an SSL connection over a HTTP proxy is therefor a matter of asking the
+Opening an SSL connection over a HTTP proxy is therefore a matter of asking the
proxy for a straight connection to the target host on a specified port. This
is made with the HTTP request CONNECT. ("please mr proxy, connect me to that
remote host").
@@ -1287,234 +1287,7 @@ etc.
actually true headers, but in this case we pretend they are! ;-)
.SH "Post Transfer Information"
-
- [ curl_easy_getinfo ]
-
-.SH "Security Considerations"
-
-The libcurl project takes security seriously. The library is written with
-caution and precautions are taken to mitigate many kinds of risks encountered
-while operating with potentially malicious servers on the Internet. It is a
-powerful library, however, which allows application writers to make trade offs
-between ease of writing and exposure to potential risky operations. If
-used the right way, you can use libcurl to transfer data pretty safely.
-
-Many applications are used in closed networks where users and servers
-can be trusted, but many others are used on arbitrary servers and are fed
-input from potentially untrusted users. Following is a discussion about
-some risks in the ways in which applications commonly use libcurl and
-potential mitigations of those risks. It is by no means comprehensive, but
-shows classes of attacks that robust applications should consider. The
-Common Weakness Enumeration project at https://cwe.mitre.org/ is a good
-reference for many of these and similar types of weaknesses of which
-application writers should be aware.
-
-.IP "Command Lines"
-If you use a command line tool (such as curl) that uses libcurl, and you give
-options to the tool on the command line those options can very likely get read
-by other users of your system when they use 'ps' or other tools to list
-currently running processes.
-
-To avoid this problem, never feed sensitive things to programs using command
-line options. Write them to a protected file and use the \-K option to
-avoid this.
-
-.IP ".netrc"
-\&.netrc is a pretty handy file/feature that allows you to login quickly and
-automatically to frequently visited sites. The file contains passwords in
-clear text and is a real security risk. In some cases, your .netrc is also
-stored in a home directory that is NFS mounted or used on another network
-based file system, so the clear text password will fly through your network
-every time anyone reads that file!
-
-To avoid this problem, don't use .netrc files and never store passwords in
-plain text anywhere.
-
-.IP "Clear Text Passwords"
-Many of the protocols libcurl supports send name and password unencrypted as
-clear text (HTTP Basic authentication, FTP, TELNET etc). It is very easy for
-anyone on your network or a network nearby yours to just fire up a network
-analyzer tool and eavesdrop on your passwords. Don't let the fact that HTTP
-Basic uses base64 encoded passwords fool you. They may not look readable at a
-first glance, but they very easily "deciphered" by anyone within seconds.
-
-To avoid this problem, use an authentication mechanism or other protocol that
-doesn't let snoopers see your password: Digest, CRAM-MD5, Kerberos, SPNEGO or
-NTLM authentication, HTTPS, FTPS, SCP and SFTP are a few examples.
-
-.IP "Redirects"
-The \fICURLOPT_FOLLOWLOCATION(3)\fP option automatically follows HTTP
-redirects sent by a remote server. These redirects can refer to any kind of
-URL, not just HTTP. By default libcurl will allow all protocols on redirect
-except several disabled for security reasons: Since 7.19.4 FILE and SCP are
-disabled, and since 7.40.0 SMB and SMBS are also disabled.
-
-A redirect to a file: URL would cause the libcurl to read (or write) arbitrary
-files from the local filesystem. If the application returns the data back to
-the user (as would happen in some kinds of CGI scripts), an attacker could
-leverage this to read otherwise forbidden data (e.g.
-file://localhost/etc/passwd).
-
-If authentication credentials are stored in the ~/.netrc file, or Kerberos
-is in use, any other URL type (not just file:) that requires
-authentication is also at risk. A redirect such as
-ftp://some-internal-server/private-file would then return data even when
-the server is password protected.
-
-In the same way, if an unencrypted SSH private key has been configured for
-the user running the libcurl application, SCP: or SFTP: URLs could access
-password or private-key protected resources,
-e.g. sftp://user@some-internal-server/etc/passwd
-
-The \fICURLOPT_REDIR_PROTOCOLS(3)\fP and \fICURLOPT_NETRC(3)\fP options can be
-used to mitigate against this kind of attack.
-
-A redirect can also specify a location available only on the machine running
-libcurl, including servers hidden behind a firewall from the attacker.
-e.g. http://127.0.0.1/ or http://intranet/delete-stuff.cgi?delete=all or
-tftp://bootp-server/pc-config-data
-
-Apps can mitigate against this by disabling \fICURLOPT_FOLLOWLOCATION(3)\fP
-and handling redirects itself, sanitizing URLs as necessary. Alternately, an
-app could leave \fICURLOPT_FOLLOWLOCATION(3)\fP enabled but set
-\fICURLOPT_REDIR_PROTOCOLS(3)\fP and install a
-\fICURLOPT_OPENSOCKETFUNCTION(3)\fP callback function in which addresses are
-sanitized before use.
-
-.IP "Private Resources"
-A user who can control the DNS server of a domain being passed in within a URL
-can change the address of the host to a local, private address which a
-server-side libcurl-using application could then use. e.g. the innocuous URL
-http://fuzzybunnies.example.com/ could actually resolve to the IP address of a
-server behind a firewall, such as 127.0.0.1 or 10.1.2.3. Apps can mitigate
-against this by setting a \fICURLOPT_OPENSOCKETFUNCTION(3)\fP and checking the
-address before a connection.
-
-All the malicious scenarios regarding redirected URLs apply just as well to
-non-redirected URLs, if the user is allowed to specify an arbitrary URL that
-could point to a private resource. For example, a web app providing a
-translation service might happily translate file://localhost/etc/passwd and
-display the result. Apps can mitigate against this with the
-\fICURLOPT_PROTOCOLS(3)\fP option as well as by similar mitigation techniques
-for redirections.
-
-A malicious FTP server could in response to the PASV command return an IP
-address and port number for a server local to the app running libcurl but
-behind a firewall. Apps can mitigate against this by using the
-\fICURLOPT_FTP_SKIP_PASV_IP(3)\fP option or \fICURLOPT_FTPPORT(3)\fP.
-
-.IP "IPv6 Addresses"
-libcurl will normally handle IPv6 addresses transparently and just as easily
-as IPv4 addresses. That means that a sanitizing function that filters out
-addresses like 127.0.0.1 isn't sufficient--the equivalent IPv6 addresses ::1,
-::, 0:00::0:1, ::127.0.0.1 and ::ffff:7f00:1 supplied somehow by an attacker
-would all bypass a naive filter and could allow access to undesired local
-resources. IPv6 also has special address blocks like link-local and site-local
-that generally shouldn't be accessed by a server-side libcurl-using
-application. A poorly-configured firewall installed in a data center,
-organization or server may also be configured to limit IPv4 connections but
-leave IPv6 connections wide open. In some cases, the CURL_IPRESOLVE_V4 option
-can be used to limit resolved addresses to IPv4 only and bypass these issues.
-
-.IP Uploads
-When uploading, a redirect can cause a local (or remote) file to be
-overwritten. Apps must not allow any unsanitized URL to be passed in for
-uploads. Also, \fICURLOPT_FOLLOWLOCATION(3)\fP should not be used on uploads.
-Instead, the app should handle redirects itself, sanitizing each URL first.
-
-.IP Authentication
-Use of \fICURLOPT_UNRESTRICTED_AUTH(3)\fP could cause authentication
-information to be sent to an unknown second server. Apps can mitigate against
-this by disabling \fICURLOPT_FOLLOWLOCATION(3)\fP and handling redirects
-itself, sanitizing where necessary.
-
-Use of the CURLAUTH_ANY option to \fICURLOPT_HTTPAUTH(3)\fP could result in
-user name and password being sent in clear text to an HTTP server. Instead,
-use CURLAUTH_ANYSAFE which ensures that the password is encrypted over the
-network, or else fail the request.
-
-Use of the CURLUSESSL_TRY option to \fICURLOPT_USE_SSL(3)\fP could result in
-user name and password being sent in clear text to an FTP server. Instead,
-use CURLUSESSL_CONTROL to ensure that an encrypted connection is used or else
-fail the request.
-
-.IP Cookies
-If cookies are enabled and cached, then a user could craft a URL which
-performs some malicious action to a site whose authentication is already
-stored in a cookie. e.g. http://mail.example.com/delete-stuff.cgi?delete=all
-Apps can mitigate against this by disabling cookies or clearing them
-between requests.
-
-.IP "Dangerous URLs"
-SCP URLs can contain raw commands within the scp: URL, which is a side effect
-of how the SCP protocol is designed. e.g.
-scp://user:pass@host/a;date >/tmp/test;
-Apps must not allow unsanitized SCP: URLs to be passed in for downloads.
-
-.IP "Denial of Service"
-A malicious server could cause libcurl to effectively hang by sending a
-trickle of data through, or even no data at all but just keeping the TCP
-connection open. This could result in a denial-of-service attack. The
-\fICURLOPT_TIMEOUT(3)\fP and/or \fICURLOPT_LOW_SPEED_LIMIT(3)\fP options can
-be used to mitigate against this.
-
-A malicious server could cause libcurl to effectively hang by starting to send
-data, then severing the connection without cleanly closing the TCP connection.
-The app could install a \fICURLOPT_SOCKOPTFUNCTION(3)\fP callback function and
-set the TCP SO_KEEPALIVE option to mitigate against this. Setting one of the
-timeout options would also work against this attack.
-
-A malicious server could cause libcurl to download an infinite amount of data,
-potentially causing all of memory or disk to be filled. Setting the
-\fICURLOPT_MAXFILESIZE_LARGE(3)\fP option is not sufficient to guard against
-this. Instead, the app should monitor the amount of data received within the
-write or progress callback and abort once the limit is reached.
-
-A malicious HTTP server could cause an infinite redirection loop, causing a
-denial-of-service. This can be mitigated by using the
-\fICURLOPT_MAXREDIRS(3)\fP option.
-
-.IP "Arbitrary Headers"
-User-supplied data must be sanitized when used in options like
-\fICURLOPT_USERAGENT(3)\fP, \fICURLOPT_HTTPHEADER(3)\fP,
-\fICURLOPT_POSTFIELDS(3)\fP and others that are used to generate structured
-data. Characters like embedded carriage returns or ampersands could allow the
-user to create additional headers or fields that could cause malicious
-transactions.
-
-.IP "Server-supplied Names"
-A server can supply data which the application may, in some cases, use as
-a file name. The curl command-line tool does this with --remote-header-name,
-using the Content-disposition: header to generate a file name. An application
-could also use CURLINFO_EFFECTIVE_URL to generate a file name from a
-server-supplied redirect URL. Special care must be taken to sanitize such
-names to avoid the possibility of a malicious server supplying one like
-"/etc/passwd", "\\autoexec.bat", "prn:" or even ".bashrc".
-
-.IP "Server Certificates"
-A secure application should never use the \fICURLOPT_SSL_VERIFYPEER(3)\fP
-option to disable certificate validation. There are numerous attacks that are
-enabled by apps that fail to properly validate server TLS/SSL certificates,
-thus enabling a malicious server to spoof a legitimate one. HTTPS without
-validated certificates is potentially as insecure as a plain HTTP connection.
-
-.IP "Showing What You Do"
-On a related issue, be aware that even in situations like when you have
-problems with libcurl and ask someone for help, everything you reveal in order
-to get best possible help might also impose certain security related
-risks. Host names, user names, paths, operating system specifics, etc. (not to
-mention passwords of course) may in fact be used by intruders to gain
-additional information of a potential target.
-
-Be sure to limit access to application logs if they could hold private or
-security-related data. Besides the obvious candidates like user names and
-passwords, things like URLs, cookies or even file names could also hold
-sensitive data.
-
-To avoid this problem, you must of course use your common sense. Often, you
-can just edit out the sensitive data or just search/replace your true
-information with faked data.
-
+See \fIcurl_easy_getinfo(3)\fP.
.SH "The multi Interface"
The easy interface as described in detail in this document is a synchronous
interface that transfers one file at a time and doesn't return until it is
diff --git a/docs/libcurl/libcurl.3 b/docs/libcurl/libcurl.3
index 86bfbcf1..6026f10e 100644
--- a/docs/libcurl/libcurl.3
+++ b/docs/libcurl/libcurl.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH libcurl 3 "July 15, 2017" "libcurl 7.58.0" "libcurl overview"
+.TH libcurl 3 "July 15, 2017" "libcurl 7.59.0" "libcurl overview"
.SH NAME
libcurl \- client-side URL transfers
diff --git a/docs/libcurl/opts/CURLINFO_ACTIVESOCKET.3 b/docs/libcurl/opts/CURLINFO_ACTIVESOCKET.3
index 38c3f8d6..6cac17f8 100644
--- a/docs/libcurl/opts/CURLINFO_ACTIVESOCKET.3
+++ b/docs/libcurl/opts/CURLINFO_ACTIVESOCKET.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_ACTIVESOCKET 3 "May 06, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_ACTIVESOCKET 3 "May 06, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_ACTIVESOCKET \- get the active socket
diff --git a/docs/libcurl/opts/CURLINFO_APPCONNECT_TIME.3 b/docs/libcurl/opts/CURLINFO_APPCONNECT_TIME.3
index 445e8ec0..7a8d7e09 100644
--- a/docs/libcurl/opts/CURLINFO_APPCONNECT_TIME.3
+++ b/docs/libcurl/opts/CURLINFO_APPCONNECT_TIME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_APPCONNECT_TIME 3 "May 05, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_APPCONNECT_TIME 3 "May 05, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_APPCONNECT_TIME \- get the time until the SSL/SSH handshake is completed
diff --git a/docs/libcurl/opts/CURLINFO_CERTINFO.3 b/docs/libcurl/opts/CURLINFO_CERTINFO.3
index ebb94e76..83a30bb6 100644
--- a/docs/libcurl/opts/CURLINFO_CERTINFO.3
+++ b/docs/libcurl/opts/CURLINFO_CERTINFO.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_CERTINFO 3 "May 06, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_CERTINFO 3 "May 06, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_CERTINFO \- get the TLS certificate chain
diff --git a/docs/libcurl/opts/CURLINFO_CONDITION_UNMET.3 b/docs/libcurl/opts/CURLINFO_CONDITION_UNMET.3
index 6d7a3b49..3caf5661 100644
--- a/docs/libcurl/opts/CURLINFO_CONDITION_UNMET.3
+++ b/docs/libcurl/opts/CURLINFO_CONDITION_UNMET.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_CONDITION_UNMET 3 "May 06, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_CONDITION_UNMET 3 "February 23, 2018" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_CONDITION_UNMET \- get info on unmet time conditional
@@ -32,7 +32,7 @@ CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONDITION_UNMET, long *unmet);
Pass a pointer to a long to receive the number 1 if the condition provided in
the previous request didn't match (see \fICURLOPT_TIMECONDITION(3)\fP). Alas,
if this returns a 1 you know that the reason you didn't get data in return is
-because it didn't fulfill the condition. The long ths argument points to will
+because it didn't fulfill the condition. The long this argument points to will
get a zero stored if the condition instead was met.
.SH PROTOCOLS
HTTP and some
diff --git a/docs/libcurl/opts/CURLINFO_CONNECT_TIME.3 b/docs/libcurl/opts/CURLINFO_CONNECT_TIME.3
index 7be728da..90f9d084 100644
--- a/docs/libcurl/opts/CURLINFO_CONNECT_TIME.3
+++ b/docs/libcurl/opts/CURLINFO_CONNECT_TIME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_CONNECT_TIME 3 "May 05, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_CONNECT_TIME 3 "May 05, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_CONNECT_TIME \- get the time until connect
diff --git a/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD.3 b/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD.3
index cbe85c84..dedd7726 100644
--- a/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD.3
+++ b/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_CONTENT_LENGTH_DOWNLOAD 3 "June 15, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_CONTENT_LENGTH_DOWNLOAD 3 "June 15, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_CONTENT_LENGTH_DOWNLOAD \- get content-length of download
diff --git a/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD_T.3 b/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD_T.3
index 556aee5e..24456d12 100644
--- a/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD_T.3
+++ b/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD_T.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_CONTENT_LENGTH_DOWNLOAD_T 3 "June 15, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_CONTENT_LENGTH_DOWNLOAD_T 3 "June 15, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_CONTENT_LENGTH_DOWNLOAD_T \- get content-length of download
diff --git a/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD.3 b/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD.3
index c60893a2..9f345ef0 100644
--- a/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD.3
+++ b/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_CONTENT_LENGTH_UPLOAD 3 "June 15, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_CONTENT_LENGTH_UPLOAD 3 "June 15, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_CONTENT_LENGTH_UPLOAD \- get the specified size of the upload
diff --git a/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD_T.3 b/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD_T.3
index bdd3c7f9..ab7d938b 100644
--- a/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD_T.3
+++ b/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD_T.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_CONTENT_LENGTH_UPLOAD_T 3 "June 15, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_CONTENT_LENGTH_UPLOAD_T 3 "June 15, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_CONTENT_LENGTH_UPLOAD_T \- get the specified size of the upload
diff --git a/docs/libcurl/opts/CURLINFO_CONTENT_TYPE.3 b/docs/libcurl/opts/CURLINFO_CONTENT_TYPE.3
index c6c95360..9db14141 100644
--- a/docs/libcurl/opts/CURLINFO_CONTENT_TYPE.3
+++ b/docs/libcurl/opts/CURLINFO_CONTENT_TYPE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_CONTENT_TYPE 3 "May 06, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_CONTENT_TYPE 3 "May 06, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_CONTENT_TYPE \- get Content-Type
diff --git a/docs/libcurl/opts/CURLINFO_COOKIELIST.3 b/docs/libcurl/opts/CURLINFO_COOKIELIST.3
index 55931fbc..62039add 100644
--- a/docs/libcurl/opts/CURLINFO_COOKIELIST.3
+++ b/docs/libcurl/opts/CURLINFO_COOKIELIST.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_COOKIELIST 3 "May 06, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_COOKIELIST 3 "May 06, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_COOKIELIST \- get all known cookies
diff --git a/docs/libcurl/opts/CURLINFO_EFFECTIVE_URL.3 b/docs/libcurl/opts/CURLINFO_EFFECTIVE_URL.3
index 054f3698..ec79319e 100644
--- a/docs/libcurl/opts/CURLINFO_EFFECTIVE_URL.3
+++ b/docs/libcurl/opts/CURLINFO_EFFECTIVE_URL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_EFFECTIVE_URL 3 "May 04, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_EFFECTIVE_URL 3 "May 04, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_EFFECTIVE_URL \- get the last used URL
diff --git a/docs/libcurl/opts/CURLINFO_FILETIME.3 b/docs/libcurl/opts/CURLINFO_FILETIME.3
index f6298c3b..0b77214c 100644
--- a/docs/libcurl/opts/CURLINFO_FILETIME.3
+++ b/docs/libcurl/opts/CURLINFO_FILETIME.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
.\" *
.\" * This software is licensed as described in the file COPYING, which
.\" * you should have received as part of this distribution. The terms
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_FILETIME 3 "April 03, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_FILETIME 3 "January 25, 2018" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_FILETIME \- get the remote time of the retrieved document
@@ -35,9 +35,12 @@ Pass a pointer to a long to receive the remote time of the retrieved document
hide it or the server doesn't support the command that tells document time
etc) and the time of the document is unknown.
-Note that you must tell the server to collect this information before the
-transfer is made, by using the \fICURLOPT_FILETIME(3)\fP option to
-\fIcurl_easy_setopt(3)\fP or you will unconditionally get a -1 back.
+You must tell libcurl to collect this information before the transfer is made,
+by using the \fICURLOPT_FILETIME(3)\fP option to \fIcurl_easy_setopt(3)\fP or
+you will unconditionally get a -1 back.
+
+Consider using \fICURLINFO_FILETIME_T(3)\fP to be able to extract dates beyond
+the year 2038 on systems using 32 bit longs.
.SH PROTOCOLS
HTTP(S), FTP(S), SFTP
.SH EXAMPLE
diff --git a/docs/libcurl/opts/CURLINFO_FILETIME_T.3 b/docs/libcurl/opts/CURLINFO_FILETIME_T.3
new file mode 100644
index 00000000..e9a9867a
--- /dev/null
+++ b/docs/libcurl/opts/CURLINFO_FILETIME_T.3
@@ -0,0 +1,72 @@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
+.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" *
+.\" * This software is licensed as described in the file COPYING, which
+.\" * you should have received as part of this distribution. The terms
+.\" * are also available at https://curl.haxx.se/docs/copyright.html.
+.\" *
+.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+.\" * copies of the Software, and permit persons to whom the Software is
+.\" * furnished to do so, under the terms of the COPYING file.
+.\" *
+.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+.\" * KIND, either express or implied.
+.\" *
+.\" **************************************************************************
+.\"
+.TH CURLINFO_FILETIME 3 "January 25, 2018" "libcurl 7.59.0" "curl_easy_getinfo options"
+
+.SH NAME
+CURLINFO_FILETIME_T \- get the remote time of the retrieved document
+.SH SYNOPSIS
+#include <curl/curl.h>
+
+CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_FILETIME_T, curl_off_t *timep);
+.SH DESCRIPTION
+Pass a pointer to a curl_off_t to receive the remote time of the retrieved
+document (in number of seconds since 1 jan 1970 in the GMT/UTC time zone). If
+you get -1, it can be because of many reasons (it might be unknown, the server
+might hide it or the server doesn't support the command that tells document
+time etc) and the time of the document is unknown.
+
+You must ask libcurl to collect this information before the transfer is made,
+by using the \fICURLOPT_FILETIME(3)\fP option to \fIcurl_easy_setopt(3)\fP or
+you will unconditionally get a -1 back.
+
+This option is an alternative to \fICURLINFO_FILETIME(3)\fP to allow systems
+with 32 bit long variables to extract dates outside of the 32bit timestamp
+range.
+.SH PROTOCOLS
+HTTP(S), FTP(S), SFTP
+.SH EXAMPLE
+.nf
+curl = curl_easy_init();
+if(curl) {
+ curl_easy_setopt(curl, CURLOPT_URL, url);
+ /* Ask for filetime */
+ curl_easy_setopt(curl, CURLOPT_FILETIME, 1L);
+ res = curl_easy_perform(curl);
+ if(CURLE_OK == res) {
+ curl_off_t filetime;
+ res = curl_easy_getinfo(curl, CURLINFO_FILETIME_T, &filetime);
+ if((CURLE_OK == res) && (filetime >= 0)) {
+ time_t file_time = (time_t)filetime;
+ printf("filetime %s: %s", filename, ctime(&file_time));
+ }
+ }
+ /* always cleanup */
+ curl_easy_cleanup(curl);
+}
+.fi
+.SH AVAILABILITY
+Added in 7.59.0
+.SH RETURN VALUE
+Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
+.SH "SEE ALSO"
+.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
diff --git a/docs/libcurl/opts/CURLINFO_FTP_ENTRY_PATH.3 b/docs/libcurl/opts/CURLINFO_FTP_ENTRY_PATH.3
index 50c3fcc6..039cf66a 100644
--- a/docs/libcurl/opts/CURLINFO_FTP_ENTRY_PATH.3
+++ b/docs/libcurl/opts/CURLINFO_FTP_ENTRY_PATH.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_FTP_ENTRY_PATH 3 "May 06, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_FTP_ENTRY_PATH 3 "May 06, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_FTP_ENTRY_PATH \- get entry path in FTP server
diff --git a/docs/libcurl/opts/CURLINFO_HEADER_SIZE.3 b/docs/libcurl/opts/CURLINFO_HEADER_SIZE.3
index 8cdee660..eee5d000 100644
--- a/docs/libcurl/opts/CURLINFO_HEADER_SIZE.3
+++ b/docs/libcurl/opts/CURLINFO_HEADER_SIZE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_HEADER_SIZE 3 "May 06, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_HEADER_SIZE 3 "May 06, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_HEADER_SIZE \- get size of retrieved headers
diff --git a/docs/libcurl/opts/CURLINFO_HTTPAUTH_AVAIL.3 b/docs/libcurl/opts/CURLINFO_HTTPAUTH_AVAIL.3
index 9b478f25..dad576a7 100644
--- a/docs/libcurl/opts/CURLINFO_HTTPAUTH_AVAIL.3
+++ b/docs/libcurl/opts/CURLINFO_HTTPAUTH_AVAIL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_HTTPAUTH_AVAIL 3 "October 07, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_HTTPAUTH_AVAIL 3 "October 07, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_HTTPAUTH_AVAIL \- get available HTTP authentication methods
diff --git a/docs/libcurl/opts/CURLINFO_HTTP_CONNECTCODE.3 b/docs/libcurl/opts/CURLINFO_HTTP_CONNECTCODE.3
index dca26525..4ada67e8 100644
--- a/docs/libcurl/opts/CURLINFO_HTTP_CONNECTCODE.3
+++ b/docs/libcurl/opts/CURLINFO_HTTP_CONNECTCODE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_HTTP_CONNECTCODE 3 "May 06, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_HTTP_CONNECTCODE 3 "May 06, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_HTTP_CONNECTCODE \- get the CONNECT response code
diff --git a/docs/libcurl/opts/CURLINFO_HTTP_VERSION.3 b/docs/libcurl/opts/CURLINFO_HTTP_VERSION.3
index 05ea0efc..b6aa769a 100644
--- a/docs/libcurl/opts/CURLINFO_HTTP_VERSION.3
+++ b/docs/libcurl/opts/CURLINFO_HTTP_VERSION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_HTTP_VERSION 3 "May 11, 2016" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_HTTP_VERSION 3 "May 11, 2016" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_HTTP_VERSION \- get the http version used in the connection
diff --git a/docs/libcurl/opts/CURLINFO_LASTSOCKET.3 b/docs/libcurl/opts/CURLINFO_LASTSOCKET.3
index 6e971a71..0fa45e5b 100644
--- a/docs/libcurl/opts/CURLINFO_LASTSOCKET.3
+++ b/docs/libcurl/opts/CURLINFO_LASTSOCKET.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_LASTSOCKET 3 "May 06, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_LASTSOCKET 3 "May 06, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_LASTSOCKET \- get the last socket used
diff --git a/docs/libcurl/opts/CURLINFO_LOCAL_IP.3 b/docs/libcurl/opts/CURLINFO_LOCAL_IP.3
index 6bb0e3a6..10643d28 100644
--- a/docs/libcurl/opts/CURLINFO_LOCAL_IP.3
+++ b/docs/libcurl/opts/CURLINFO_LOCAL_IP.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_LOCAL_IP 3 "May 05, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_LOCAL_IP 3 "May 05, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_LOCAL_IP \- get local IP address of last connection
diff --git a/docs/libcurl/opts/CURLINFO_LOCAL_PORT.3 b/docs/libcurl/opts/CURLINFO_LOCAL_PORT.3
index 3b3db085..91a3bb6c 100644
--- a/docs/libcurl/opts/CURLINFO_LOCAL_PORT.3
+++ b/docs/libcurl/opts/CURLINFO_LOCAL_PORT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_LOCAL_PORT 3 "March 16, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_LOCAL_PORT 3 "March 16, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_LOCAL_PORT \- get the latest local port number
diff --git a/docs/libcurl/opts/CURLINFO_NAMELOOKUP_TIME.3 b/docs/libcurl/opts/CURLINFO_NAMELOOKUP_TIME.3
index e7d74405..fba0972a 100644
--- a/docs/libcurl/opts/CURLINFO_NAMELOOKUP_TIME.3
+++ b/docs/libcurl/opts/CURLINFO_NAMELOOKUP_TIME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_NAMELOOKUP_TIME 3 "May 05, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_NAMELOOKUP_TIME 3 "May 05, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_NAMELOOKUP_TIME \- get the name lookup time
diff --git a/docs/libcurl/opts/CURLINFO_NUM_CONNECTS.3 b/docs/libcurl/opts/CURLINFO_NUM_CONNECTS.3
index 52791bcd..35389e1d 100644
--- a/docs/libcurl/opts/CURLINFO_NUM_CONNECTS.3
+++ b/docs/libcurl/opts/CURLINFO_NUM_CONNECTS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_NUM_CONNECTS 3 "May 06, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_NUM_CONNECTS 3 "May 06, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_NUM_CONNECTS \- get number of created connections
diff --git a/docs/libcurl/opts/CURLINFO_OS_ERRNO.3 b/docs/libcurl/opts/CURLINFO_OS_ERRNO.3
index e0e20f19..e9b4ad06 100644
--- a/docs/libcurl/opts/CURLINFO_OS_ERRNO.3
+++ b/docs/libcurl/opts/CURLINFO_OS_ERRNO.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_OS_ERRNO 3 "May 15, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_OS_ERRNO 3 "May 15, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_OS_ERRNO \- get errno number from last connect failure
diff --git a/docs/libcurl/opts/CURLINFO_PRETRANSFER_TIME.3 b/docs/libcurl/opts/CURLINFO_PRETRANSFER_TIME.3
index fd66724c..debef223 100644
--- a/docs/libcurl/opts/CURLINFO_PRETRANSFER_TIME.3
+++ b/docs/libcurl/opts/CURLINFO_PRETRANSFER_TIME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_PRETRANSFER_TIME 3 "May 05, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_PRETRANSFER_TIME 3 "May 05, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_PRETRANSFER_TIME \- get the time until the file transfer start
diff --git a/docs/libcurl/opts/CURLINFO_PRIMARY_IP.3 b/docs/libcurl/opts/CURLINFO_PRIMARY_IP.3
index 524111db..ca3e2b12 100644
--- a/docs/libcurl/opts/CURLINFO_PRIMARY_IP.3
+++ b/docs/libcurl/opts/CURLINFO_PRIMARY_IP.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_PRIMARY_IP 3 "March 22, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_PRIMARY_IP 3 "March 22, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_PRIMARY_IP \- get IP address of last connection
diff --git a/docs/libcurl/opts/CURLINFO_PRIMARY_PORT.3 b/docs/libcurl/opts/CURLINFO_PRIMARY_PORT.3
index 72e19058..f8124f2c 100644
--- a/docs/libcurl/opts/CURLINFO_PRIMARY_PORT.3
+++ b/docs/libcurl/opts/CURLINFO_PRIMARY_PORT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_PRIMARY_PORT 3 "May 06, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_PRIMARY_PORT 3 "May 06, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_PRIMARY_PORT \- get the latest destination port number
diff --git a/docs/libcurl/opts/CURLINFO_PRIVATE.3 b/docs/libcurl/opts/CURLINFO_PRIVATE.3
index 366803e7..647460f1 100644
--- a/docs/libcurl/opts/CURLINFO_PRIVATE.3
+++ b/docs/libcurl/opts/CURLINFO_PRIVATE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_PRIVATE 3 "May 05, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_PRIVATE 3 "May 05, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_PRIVATE \- get the private pointer
diff --git a/docs/libcurl/opts/CURLINFO_PROTOCOL.3 b/docs/libcurl/opts/CURLINFO_PROTOCOL.3
index 07cfec91..61aacf5b 100644
--- a/docs/libcurl/opts/CURLINFO_PROTOCOL.3
+++ b/docs/libcurl/opts/CURLINFO_PROTOCOL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_PROTOCOL 3 "November 23, 2016" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_PROTOCOL 3 "November 23, 2016" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_PROTOCOL \- get the protocol used in the connection
diff --git a/docs/libcurl/opts/CURLINFO_PROXYAUTH_AVAIL.3 b/docs/libcurl/opts/CURLINFO_PROXYAUTH_AVAIL.3
index 4edb9f5d..df4577b6 100644
--- a/docs/libcurl/opts/CURLINFO_PROXYAUTH_AVAIL.3
+++ b/docs/libcurl/opts/CURLINFO_PROXYAUTH_AVAIL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_PROXYAUTH_AVAIL 3 "October 07, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_PROXYAUTH_AVAIL 3 "October 07, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_PROXYAUTH_AVAIL \- get available HTTP proxy authentication methods
diff --git a/docs/libcurl/opts/CURLINFO_PROXY_SSL_VERIFYRESULT.3 b/docs/libcurl/opts/CURLINFO_PROXY_SSL_VERIFYRESULT.3
index b317171b..93057fc5 100644
--- a/docs/libcurl/opts/CURLINFO_PROXY_SSL_VERIFYRESULT.3
+++ b/docs/libcurl/opts/CURLINFO_PROXY_SSL_VERIFYRESULT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_PROXY_SSL_VERIFYRESULT 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_PROXY_SSL_VERIFYRESULT 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_PROXY_SSL_VERIFYRESULT \- get the result of the proxy certificate verification
diff --git a/docs/libcurl/opts/CURLINFO_REDIRECT_COUNT.3 b/docs/libcurl/opts/CURLINFO_REDIRECT_COUNT.3
index 4d3ea1d4..88ac2ef9 100644
--- a/docs/libcurl/opts/CURLINFO_REDIRECT_COUNT.3
+++ b/docs/libcurl/opts/CURLINFO_REDIRECT_COUNT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_REDIRECT_COUNT 3 "May 05, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_REDIRECT_COUNT 3 "May 05, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_REDIRECT_COUNT \- get the number of redirects
diff --git a/docs/libcurl/opts/CURLINFO_REDIRECT_TIME.3 b/docs/libcurl/opts/CURLINFO_REDIRECT_TIME.3
index 1061e31f..8008a8e9 100644
--- a/docs/libcurl/opts/CURLINFO_REDIRECT_TIME.3
+++ b/docs/libcurl/opts/CURLINFO_REDIRECT_TIME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_REDIRECT_TIME 3 "May 05, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_REDIRECT_TIME 3 "May 05, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_REDIRECT_TIME \- get the time for all redirection steps
diff --git a/docs/libcurl/opts/CURLINFO_REDIRECT_URL.3 b/docs/libcurl/opts/CURLINFO_REDIRECT_URL.3
index 4430e27a..01db5751 100644
--- a/docs/libcurl/opts/CURLINFO_REDIRECT_URL.3
+++ b/docs/libcurl/opts/CURLINFO_REDIRECT_URL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_REDIRECT_URL 3 "June 24, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_REDIRECT_URL 3 "June 24, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_REDIRECT_URL \- get the URL a redirect would go to
diff --git a/docs/libcurl/opts/CURLINFO_REQUEST_SIZE.3 b/docs/libcurl/opts/CURLINFO_REQUEST_SIZE.3
index 5bd4f8f3..62c835fa 100644
--- a/docs/libcurl/opts/CURLINFO_REQUEST_SIZE.3
+++ b/docs/libcurl/opts/CURLINFO_REQUEST_SIZE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_REQUEST_SIZE 3 "May 06, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_REQUEST_SIZE 3 "May 06, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_REQUEST_SIZE \- get size of sent request
diff --git a/docs/libcurl/opts/CURLINFO_RESPONSE_CODE.3 b/docs/libcurl/opts/CURLINFO_RESPONSE_CODE.3
index c0d2acd2..c44b64a4 100644
--- a/docs/libcurl/opts/CURLINFO_RESPONSE_CODE.3
+++ b/docs/libcurl/opts/CURLINFO_RESPONSE_CODE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_RESPONSE_CODE 3 "February 03, 2016" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_RESPONSE_CODE 3 "February 03, 2016" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_RESPONSE_CODE \- get the last response code
diff --git a/docs/libcurl/opts/CURLINFO_RTSP_CLIENT_CSEQ.3 b/docs/libcurl/opts/CURLINFO_RTSP_CLIENT_CSEQ.3
index 31cd7c3c..d4f4a4e4 100644
--- a/docs/libcurl/opts/CURLINFO_RTSP_CLIENT_CSEQ.3
+++ b/docs/libcurl/opts/CURLINFO_RTSP_CLIENT_CSEQ.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_RTSP_CLIENT_CSEQ 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_RTSP_CLIENT_CSEQ 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_RTSP_CLIENT_CSEQ \- get the next RTSP client CSeq
diff --git a/docs/libcurl/opts/CURLINFO_RTSP_CSEQ_RECV.3 b/docs/libcurl/opts/CURLINFO_RTSP_CSEQ_RECV.3
index 8a7eb49d..6b2197d5 100644
--- a/docs/libcurl/opts/CURLINFO_RTSP_CSEQ_RECV.3
+++ b/docs/libcurl/opts/CURLINFO_RTSP_CSEQ_RECV.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_RTSP_CSEQ_RECV 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_RTSP_CSEQ_RECV 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_RTSP_CSEQ_RECV \- get the recently received CSeq
diff --git a/docs/libcurl/opts/CURLINFO_RTSP_SERVER_CSEQ.3 b/docs/libcurl/opts/CURLINFO_RTSP_SERVER_CSEQ.3
index 6f28a3a2..38546016 100644
--- a/docs/libcurl/opts/CURLINFO_RTSP_SERVER_CSEQ.3
+++ b/docs/libcurl/opts/CURLINFO_RTSP_SERVER_CSEQ.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_RTSP_SERVER_CSEQ 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_RTSP_SERVER_CSEQ 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_RTSP_SERVER_CSEQ \- get the next RTSP server CSeq
diff --git a/docs/libcurl/opts/CURLINFO_RTSP_SESSION_ID.3 b/docs/libcurl/opts/CURLINFO_RTSP_SESSION_ID.3
index 41a58a48..28ef058f 100644
--- a/docs/libcurl/opts/CURLINFO_RTSP_SESSION_ID.3
+++ b/docs/libcurl/opts/CURLINFO_RTSP_SESSION_ID.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_RTSP_SESSION_ID 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_RTSP_SESSION_ID 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_RTSP_SESSION_ID \- get RTSP session ID
diff --git a/docs/libcurl/opts/CURLINFO_SCHEME.3 b/docs/libcurl/opts/CURLINFO_SCHEME.3
index 897ba7d1..bdbfbf5c 100644
--- a/docs/libcurl/opts/CURLINFO_SCHEME.3
+++ b/docs/libcurl/opts/CURLINFO_SCHEME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_SCHEME 3 "April 08, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_SCHEME 3 "April 08, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_SCHEME \- get the URL scheme (sometimes called protocol) used in the connection
diff --git a/docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD.3 b/docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD.3
index 4c3724fc..baf96ded 100644
--- a/docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD.3
+++ b/docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_SIZE_DOWNLOAD 3 "June 15, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_SIZE_DOWNLOAD 3 "June 15, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_SIZE_DOWNLOAD \- get the number of downloaded bytes
diff --git a/docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD_T.3 b/docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD_T.3
index 514de89b..c0e8723a 100644
--- a/docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD_T.3
+++ b/docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD_T.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_SIZE_DOWNLOAD_T 3 "June 15, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_SIZE_DOWNLOAD_T 3 "June 15, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_SIZE_DOWNLOAD_T \- get the number of downloaded bytes
diff --git a/docs/libcurl/opts/CURLINFO_SIZE_UPLOAD.3 b/docs/libcurl/opts/CURLINFO_SIZE_UPLOAD.3
index 7b8431b6..55363c4a 100644
--- a/docs/libcurl/opts/CURLINFO_SIZE_UPLOAD.3
+++ b/docs/libcurl/opts/CURLINFO_SIZE_UPLOAD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_SIZE_UPLOAD 3 "June 15, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_SIZE_UPLOAD 3 "June 15, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_SIZE_UPLOAD \- get the number of uploaded bytes
diff --git a/docs/libcurl/opts/CURLINFO_SIZE_UPLOAD_T.3 b/docs/libcurl/opts/CURLINFO_SIZE_UPLOAD_T.3
index f3428289..67d8e594 100644
--- a/docs/libcurl/opts/CURLINFO_SIZE_UPLOAD_T.3
+++ b/docs/libcurl/opts/CURLINFO_SIZE_UPLOAD_T.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_SIZE_UPLOAD_T 3 "June 15, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_SIZE_UPLOAD_T 3 "June 15, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_SIZE_UPLOAD_T \- get the number of uploaded bytes
diff --git a/docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD.3 b/docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD.3
index 111f006b..78ce1d0d 100644
--- a/docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD.3
+++ b/docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_SPEED_DOWNLOAD 3 "June 15, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_SPEED_DOWNLOAD 3 "June 15, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_SPEED_DOWNLOAD \- get download speed
diff --git a/docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD_T.3 b/docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD_T.3
index dcbf9045..4286fd6a 100644
--- a/docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD_T.3
+++ b/docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD_T.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_SPEED_DOWNLOAD_T 3 "June 15, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_SPEED_DOWNLOAD_T 3 "June 15, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_SPEED_DOWNLOAD_T \- get download speed
diff --git a/docs/libcurl/opts/CURLINFO_SPEED_UPLOAD.3 b/docs/libcurl/opts/CURLINFO_SPEED_UPLOAD.3
index 0b6cbefe..40075271 100644
--- a/docs/libcurl/opts/CURLINFO_SPEED_UPLOAD.3
+++ b/docs/libcurl/opts/CURLINFO_SPEED_UPLOAD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_SPEED_UPLOAD 3 "June 15, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_SPEED_UPLOAD 3 "June 15, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_SPEED_UPLOAD \- get upload speed
diff --git a/docs/libcurl/opts/CURLINFO_SPEED_UPLOAD_T.3 b/docs/libcurl/opts/CURLINFO_SPEED_UPLOAD_T.3
index b16c8174..c18f2719 100644
--- a/docs/libcurl/opts/CURLINFO_SPEED_UPLOAD_T.3
+++ b/docs/libcurl/opts/CURLINFO_SPEED_UPLOAD_T.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_SPEED_UPLOAD_T 3 "June 15, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_SPEED_UPLOAD_T 3 "June 15, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_SPEED_UPLOAD_T \- get upload speed
diff --git a/docs/libcurl/opts/CURLINFO_SSL_ENGINES.3 b/docs/libcurl/opts/CURLINFO_SSL_ENGINES.3
index 831044a0..56583744 100644
--- a/docs/libcurl/opts/CURLINFO_SSL_ENGINES.3
+++ b/docs/libcurl/opts/CURLINFO_SSL_ENGINES.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_SSL_ENGINES 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_SSL_ENGINES 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_SSL_ENGINES \- get an slist of OpenSSL crypto-engines
diff --git a/docs/libcurl/opts/CURLINFO_SSL_VERIFYRESULT.3 b/docs/libcurl/opts/CURLINFO_SSL_VERIFYRESULT.3
index 0937d2f0..d287ab8c 100644
--- a/docs/libcurl/opts/CURLINFO_SSL_VERIFYRESULT.3
+++ b/docs/libcurl/opts/CURLINFO_SSL_VERIFYRESULT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_SSL_VERIFYRESULT 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_SSL_VERIFYRESULT 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_SSL_VERIFYRESULT \- get the result of the certificate verification
diff --git a/docs/libcurl/opts/CURLINFO_STARTTRANSFER_TIME.3 b/docs/libcurl/opts/CURLINFO_STARTTRANSFER_TIME.3
index 1f470f8b..dc9e6ab6 100644
--- a/docs/libcurl/opts/CURLINFO_STARTTRANSFER_TIME.3
+++ b/docs/libcurl/opts/CURLINFO_STARTTRANSFER_TIME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_STARTTRANSFER_TIME 3 "May 05, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_STARTTRANSFER_TIME 3 "May 05, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_STARTTRANSFER_TIME \- get the time until the first byte is received
diff --git a/docs/libcurl/opts/CURLINFO_TLS_SESSION.3 b/docs/libcurl/opts/CURLINFO_TLS_SESSION.3
index 040c3039..b2017371 100644
--- a/docs/libcurl/opts/CURLINFO_TLS_SESSION.3
+++ b/docs/libcurl/opts/CURLINFO_TLS_SESSION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_TLS_SESSION 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_TLS_SESSION 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_TLS_SESSION \- get TLS session info
diff --git a/docs/libcurl/opts/CURLINFO_TLS_SSL_PTR.3 b/docs/libcurl/opts/CURLINFO_TLS_SSL_PTR.3
index 6290619d..4c792a80 100644
--- a/docs/libcurl/opts/CURLINFO_TLS_SSL_PTR.3
+++ b/docs/libcurl/opts/CURLINFO_TLS_SSL_PTR.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_TLS_SSL_PTR 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_TLS_SSL_PTR 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_TLS_SESSION, CURLINFO_TLS_SSL_PTR \- get TLS session info
diff --git a/docs/libcurl/opts/CURLINFO_TOTAL_TIME.3 b/docs/libcurl/opts/CURLINFO_TOTAL_TIME.3
index bcee5c01..c8979aae 100644
--- a/docs/libcurl/opts/CURLINFO_TOTAL_TIME.3
+++ b/docs/libcurl/opts/CURLINFO_TOTAL_TIME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_TOTAL_TIME 3 "May 05, 2017" "libcurl 7.58.0" "curl_easy_getinfo options"
+.TH CURLINFO_TOTAL_TIME 3 "May 05, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_TOTAL_TIME \- get total time of previous transfer
diff --git a/docs/libcurl/opts/CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.3 b/docs/libcurl/opts/CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.3
index c104fc3d..8beb3ebe 100644
--- a/docs/libcurl/opts/CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.3
+++ b/docs/libcurl/opts/CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE 3 "May 27, 2017" "libcurl 7.58.0" "curl_multi_setopt options"
+.TH CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE 3 "May 27, 2017" "libcurl 7.59.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE \- chunk length threshold for pipelining
diff --git a/docs/libcurl/opts/CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.3 b/docs/libcurl/opts/CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.3
index bb06a27d..9336de1d 100644
--- a/docs/libcurl/opts/CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.3
+++ b/docs/libcurl/opts/CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE 3 "May 27, 2017" "libcurl 7.58.0" "curl_multi_setopt options"
+.TH CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE 3 "May 27, 2017" "libcurl 7.59.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE \- size threshold for pipelining penalty
diff --git a/docs/libcurl/opts/CURLMOPT_MAXCONNECTS.3 b/docs/libcurl/opts/CURLMOPT_MAXCONNECTS.3
index 1e3c4d59..6795c8b6 100644
--- a/docs/libcurl/opts/CURLMOPT_MAXCONNECTS.3
+++ b/docs/libcurl/opts/CURLMOPT_MAXCONNECTS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_MAXCONNECTS 3 "May 27, 2017" "libcurl 7.58.0" "curl_multi_setopt options"
+.TH CURLMOPT_MAXCONNECTS 3 "May 27, 2017" "libcurl 7.59.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_MAXCONNECTS \- set size of connection cache
diff --git a/docs/libcurl/opts/CURLMOPT_MAX_HOST_CONNECTIONS.3 b/docs/libcurl/opts/CURLMOPT_MAX_HOST_CONNECTIONS.3
index 5a8eb343..ebc84c81 100644
--- a/docs/libcurl/opts/CURLMOPT_MAX_HOST_CONNECTIONS.3
+++ b/docs/libcurl/opts/CURLMOPT_MAX_HOST_CONNECTIONS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_MAX_HOST_CONNECTIONS 3 "May 27, 2017" "libcurl 7.58.0" "curl_multi_setopt options"
+.TH CURLMOPT_MAX_HOST_CONNECTIONS 3 "May 27, 2017" "libcurl 7.59.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_MAX_HOST_CONNECTIONS \- set max number of connections to a single host
diff --git a/docs/libcurl/opts/CURLMOPT_MAX_PIPELINE_LENGTH.3 b/docs/libcurl/opts/CURLMOPT_MAX_PIPELINE_LENGTH.3
index c1300459..aedcefc1 100644
--- a/docs/libcurl/opts/CURLMOPT_MAX_PIPELINE_LENGTH.3
+++ b/docs/libcurl/opts/CURLMOPT_MAX_PIPELINE_LENGTH.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_MAX_PIPELINE_LENGTH 3 "May 27, 2017" "libcurl 7.58.0" "curl_multi_setopt options"
+.TH CURLMOPT_MAX_PIPELINE_LENGTH 3 "May 27, 2017" "libcurl 7.59.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_MAX_PIPELINE_LENGTH \- maximum number of requests in a pipeline
diff --git a/docs/libcurl/opts/CURLMOPT_MAX_TOTAL_CONNECTIONS.3 b/docs/libcurl/opts/CURLMOPT_MAX_TOTAL_CONNECTIONS.3
index ad3afa1b..8fe2dfbd 100644
--- a/docs/libcurl/opts/CURLMOPT_MAX_TOTAL_CONNECTIONS.3
+++ b/docs/libcurl/opts/CURLMOPT_MAX_TOTAL_CONNECTIONS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_MAX_TOTAL_CONNECTIONS 3 "May 27, 2017" "libcurl 7.58.0" "curl_multi_setopt options"
+.TH CURLMOPT_MAX_TOTAL_CONNECTIONS 3 "May 27, 2017" "libcurl 7.59.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_MAX_TOTAL_CONNECTIONS \- max simultaneously open connections
diff --git a/docs/libcurl/opts/CURLMOPT_PIPELINING.3 b/docs/libcurl/opts/CURLMOPT_PIPELINING.3
index 79eea408..6f236dd4 100644
--- a/docs/libcurl/opts/CURLMOPT_PIPELINING.3
+++ b/docs/libcurl/opts/CURLMOPT_PIPELINING.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_PIPELINING 3 "May 27, 2017" "libcurl 7.58.0" "curl_multi_setopt options"
+.TH CURLMOPT_PIPELINING 3 "May 27, 2017" "libcurl 7.59.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_PIPELINING \- enable HTTP pipelining and multiplexing
diff --git a/docs/libcurl/opts/CURLMOPT_PIPELINING_SERVER_BL.3 b/docs/libcurl/opts/CURLMOPT_PIPELINING_SERVER_BL.3
index 96d53364..7d4918e8 100644
--- a/docs/libcurl/opts/CURLMOPT_PIPELINING_SERVER_BL.3
+++ b/docs/libcurl/opts/CURLMOPT_PIPELINING_SERVER_BL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_PIPELINING_SERVER_BL 3 "February 03, 2016" "libcurl 7.58.0" "curl_multi_setopt options"
+.TH CURLMOPT_PIPELINING_SERVER_BL 3 "February 03, 2016" "libcurl 7.59.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_PIPELINING_SERVER_BL \- pipelining server blacklist
diff --git a/docs/libcurl/opts/CURLMOPT_PIPELINING_SITE_BL.3 b/docs/libcurl/opts/CURLMOPT_PIPELINING_SITE_BL.3
index 94072186..990924c5 100644
--- a/docs/libcurl/opts/CURLMOPT_PIPELINING_SITE_BL.3
+++ b/docs/libcurl/opts/CURLMOPT_PIPELINING_SITE_BL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_PIPELINING_SITE_BL 3 "February 03, 2016" "libcurl 7.58.0" "curl_multi_setopt options"
+.TH CURLMOPT_PIPELINING_SITE_BL 3 "February 03, 2016" "libcurl 7.59.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_PIPELINING_SITE_BL \- pipelining host blacklist
diff --git a/docs/libcurl/opts/CURLMOPT_PUSHDATA.3 b/docs/libcurl/opts/CURLMOPT_PUSHDATA.3
index f69afa27..fa14fb1f 100644
--- a/docs/libcurl/opts/CURLMOPT_PUSHDATA.3
+++ b/docs/libcurl/opts/CURLMOPT_PUSHDATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_PUSHDATA 3 "May 27, 2017" "libcurl 7.58.0" "curl_multi_setopt options"
+.TH CURLMOPT_PUSHDATA 3 "May 27, 2017" "libcurl 7.59.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_PUSHDATA \- pointer to pass to push callback
diff --git a/docs/libcurl/opts/CURLMOPT_PUSHFUNCTION.3 b/docs/libcurl/opts/CURLMOPT_PUSHFUNCTION.3
index 13272dde..c7bb3925 100644
--- a/docs/libcurl/opts/CURLMOPT_PUSHFUNCTION.3
+++ b/docs/libcurl/opts/CURLMOPT_PUSHFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_PUSHFUNCTION 3 "February 03, 2016" "libcurl 7.58.0" "curl_multi_setopt options"
+.TH CURLMOPT_PUSHFUNCTION 3 "February 03, 2016" "libcurl 7.59.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_PUSHFUNCTION \- callback that approves or denies server pushes
diff --git a/docs/libcurl/opts/CURLMOPT_SOCKETDATA.3 b/docs/libcurl/opts/CURLMOPT_SOCKETDATA.3
index f5b56901..fb058826 100644
--- a/docs/libcurl/opts/CURLMOPT_SOCKETDATA.3
+++ b/docs/libcurl/opts/CURLMOPT_SOCKETDATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_SOCKETDATA 3 "May 31, 2017" "libcurl 7.58.0" "curl_multi_setopt options"
+.TH CURLMOPT_SOCKETDATA 3 "May 31, 2017" "libcurl 7.59.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_SOCKETDATA \- custom pointer passed to the socket callback
diff --git a/docs/libcurl/opts/CURLMOPT_SOCKETFUNCTION.3 b/docs/libcurl/opts/CURLMOPT_SOCKETFUNCTION.3
index 249a201e..3e4ea8ff 100644
--- a/docs/libcurl/opts/CURLMOPT_SOCKETFUNCTION.3
+++ b/docs/libcurl/opts/CURLMOPT_SOCKETFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_SOCKETFUNCTION 3 "May 31, 2017" "libcurl 7.58.0" "curl_multi_setopt options"
+.TH CURLMOPT_SOCKETFUNCTION 3 "May 31, 2017" "libcurl 7.59.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_SOCKETFUNCTION \- callback informed about what to wait for
diff --git a/docs/libcurl/opts/CURLMOPT_TIMERDATA.3 b/docs/libcurl/opts/CURLMOPT_TIMERDATA.3
index 2555c0d2..cc9ed5a5 100644
--- a/docs/libcurl/opts/CURLMOPT_TIMERDATA.3
+++ b/docs/libcurl/opts/CURLMOPT_TIMERDATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_TIMERDATA 3 "May 27, 2017" "libcurl 7.58.0" "curl_multi_setopt options"
+.TH CURLMOPT_TIMERDATA 3 "May 27, 2017" "libcurl 7.59.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_TIMERDATA \- custom pointer to pass to timer callback
diff --git a/docs/libcurl/opts/CURLMOPT_TIMERFUNCTION.3 b/docs/libcurl/opts/CURLMOPT_TIMERFUNCTION.3
index 32ca1927..b5120984 100644
--- a/docs/libcurl/opts/CURLMOPT_TIMERFUNCTION.3
+++ b/docs/libcurl/opts/CURLMOPT_TIMERFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_TIMERFUNCTION 3 "May 27, 2017" "libcurl 7.58.0" "curl_multi_setopt options"
+.TH CURLMOPT_TIMERFUNCTION 3 "May 27, 2017" "libcurl 7.59.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_TIMERFUNCTION \- set callback to receive timeout values
diff --git a/docs/libcurl/opts/CURLOPT_ABSTRACT_UNIX_SOCKET.3 b/docs/libcurl/opts/CURLOPT_ABSTRACT_UNIX_SOCKET.3
index 63259c6e..b5976a0c 100644
--- a/docs/libcurl/opts/CURLOPT_ABSTRACT_UNIX_SOCKET.3
+++ b/docs/libcurl/opts/CURLOPT_ABSTRACT_UNIX_SOCKET.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_ABSTRACT_UNIX_SOCKET 3 "January 09, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_ABSTRACT_UNIX_SOCKET 3 "January 09, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_ABSTRACT_UNIX_SOCKET \- set an abstract Unix domain socket
diff --git a/docs/libcurl/opts/CURLOPT_ACCEPTTIMEOUT_MS.3 b/docs/libcurl/opts/CURLOPT_ACCEPTTIMEOUT_MS.3
index 8384c713..836a5e5a 100644
--- a/docs/libcurl/opts/CURLOPT_ACCEPTTIMEOUT_MS.3
+++ b/docs/libcurl/opts/CURLOPT_ACCEPTTIMEOUT_MS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_ACCEPTTIMEOUT_MS 3 "March 06, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_ACCEPTTIMEOUT_MS 3 "March 06, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_ACCEPTTIMEOUT_MS \- timeout waiting for FTP server to connect back
diff --git a/docs/libcurl/opts/CURLOPT_ACCEPT_ENCODING.3 b/docs/libcurl/opts/CURLOPT_ACCEPT_ENCODING.3
index 733f6fb6..682e2507 100644
--- a/docs/libcurl/opts/CURLOPT_ACCEPT_ENCODING.3
+++ b/docs/libcurl/opts/CURLOPT_ACCEPT_ENCODING.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_ACCEPT_ENCODING 3 "December 21, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_ACCEPT_ENCODING 3 "December 21, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_ACCEPT_ENCODING \- enables automatic decompression of HTTP downloads
diff --git a/docs/libcurl/opts/CURLOPT_ADDRESS_SCOPE.3 b/docs/libcurl/opts/CURLOPT_ADDRESS_SCOPE.3
index 60ccdeb8..30d08341 100644
--- a/docs/libcurl/opts/CURLOPT_ADDRESS_SCOPE.3
+++ b/docs/libcurl/opts/CURLOPT_ADDRESS_SCOPE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_ADDRESS_SCOPE 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_ADDRESS_SCOPE 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_ADDRESS_SCOPE \- set scope for local IPv6 addresses
diff --git a/docs/libcurl/opts/CURLOPT_APPEND.3 b/docs/libcurl/opts/CURLOPT_APPEND.3
index 0a60ef6f..7f8ab631 100644
--- a/docs/libcurl/opts/CURLOPT_APPEND.3
+++ b/docs/libcurl/opts/CURLOPT_APPEND.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_APPEND 3 "March 06, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_APPEND 3 "March 06, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_APPEND \- enable appending to the remote file
diff --git a/docs/libcurl/opts/CURLOPT_AUTOREFERER.3 b/docs/libcurl/opts/CURLOPT_AUTOREFERER.3
index 88c22fab..8e01d65a 100644
--- a/docs/libcurl/opts/CURLOPT_AUTOREFERER.3
+++ b/docs/libcurl/opts/CURLOPT_AUTOREFERER.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_AUTOREFERER 3 "May 05, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_AUTOREFERER 3 "May 05, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_AUTOREFERER \- automatically update the referer header
diff --git a/docs/libcurl/opts/CURLOPT_BUFFERSIZE.3 b/docs/libcurl/opts/CURLOPT_BUFFERSIZE.3
index cf8a7819..3be6aaf9 100644
--- a/docs/libcurl/opts/CURLOPT_BUFFERSIZE.3
+++ b/docs/libcurl/opts/CURLOPT_BUFFERSIZE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_BUFFERSIZE 3 "May 13, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_BUFFERSIZE 3 "May 13, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_BUFFERSIZE \- set preferred receive buffer size
diff --git a/docs/libcurl/opts/CURLOPT_CAINFO.3 b/docs/libcurl/opts/CURLOPT_CAINFO.3
index b73d1295..9e159ebf 100644
--- a/docs/libcurl/opts/CURLOPT_CAINFO.3
+++ b/docs/libcurl/opts/CURLOPT_CAINFO.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CAINFO 3 "May 27, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_CAINFO 3 "May 27, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CAINFO \- path to Certificate Authority (CA) bundle
diff --git a/docs/libcurl/opts/CURLOPT_CAPATH.3 b/docs/libcurl/opts/CURLOPT_CAPATH.3
index 1c4da8b9..dd85be5a 100644
--- a/docs/libcurl/opts/CURLOPT_CAPATH.3
+++ b/docs/libcurl/opts/CURLOPT_CAPATH.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CAPATH 3 "September 10, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_CAPATH 3 "September 10, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CAPATH \- specify directory holding CA certificates
diff --git a/docs/libcurl/opts/CURLOPT_CERTINFO.3 b/docs/libcurl/opts/CURLOPT_CERTINFO.3
index 5b439a23..2333d9ae 100644
--- a/docs/libcurl/opts/CURLOPT_CERTINFO.3
+++ b/docs/libcurl/opts/CURLOPT_CERTINFO.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CERTINFO 3 "May 27, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_CERTINFO 3 "May 27, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CERTINFO \- request SSL certificate information
diff --git a/docs/libcurl/opts/CURLOPT_CHUNK_BGN_FUNCTION.3 b/docs/libcurl/opts/CURLOPT_CHUNK_BGN_FUNCTION.3
index a7f4fce2..19c6c2a4 100644
--- a/docs/libcurl/opts/CURLOPT_CHUNK_BGN_FUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_CHUNK_BGN_FUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CHUNK_BGN_FUNCTION 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_CHUNK_BGN_FUNCTION 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CHUNK_BGN_FUNCTION \- callback before a transfer with FTP wildcardmatch
diff --git a/docs/libcurl/opts/CURLOPT_CHUNK_DATA.3 b/docs/libcurl/opts/CURLOPT_CHUNK_DATA.3
index 43f1317f..9636a11c 100644
--- a/docs/libcurl/opts/CURLOPT_CHUNK_DATA.3
+++ b/docs/libcurl/opts/CURLOPT_CHUNK_DATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CHUNK_DATA 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_CHUNK_DATA 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CHUNK_DATA \- custom pointer to the FTP chunk callbacks
diff --git a/docs/libcurl/opts/CURLOPT_CHUNK_END_FUNCTION.3 b/docs/libcurl/opts/CURLOPT_CHUNK_END_FUNCTION.3
index 888eb2c4..d1621e45 100644
--- a/docs/libcurl/opts/CURLOPT_CHUNK_END_FUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_CHUNK_END_FUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CHUNK_END_FUNCTION 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_CHUNK_END_FUNCTION 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CHUNK_END_FUNCTION \- callback after a transfer with FTP wildcardmatch
diff --git a/docs/libcurl/opts/CURLOPT_CLOSESOCKETDATA.3 b/docs/libcurl/opts/CURLOPT_CLOSESOCKETDATA.3
index 862bd2e2..019a2597 100644
--- a/docs/libcurl/opts/CURLOPT_CLOSESOCKETDATA.3
+++ b/docs/libcurl/opts/CURLOPT_CLOSESOCKETDATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CLOSESOCKETDATA 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_CLOSESOCKETDATA 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CLOSESOCKETDATA \- pointer passed to the socket close callback
diff --git a/docs/libcurl/opts/CURLOPT_CLOSESOCKETFUNCTION.3 b/docs/libcurl/opts/CURLOPT_CLOSESOCKETFUNCTION.3
index 41ca8a1f..4bf2b7f5 100644
--- a/docs/libcurl/opts/CURLOPT_CLOSESOCKETFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_CLOSESOCKETFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CLOSESOCKETFUNCTION 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_CLOSESOCKETFUNCTION 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CLOSESOCKETFUNCTION \- callback to socket close replacement function
diff --git a/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT.3 b/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT.3
index 3abc5472..3d54b272 100644
--- a/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT.3
+++ b/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CONNECTTIMEOUT 3 "October 03, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_CONNECTTIMEOUT 3 "October 03, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CONNECTTIMEOUT \- timeout for the connect phase
diff --git a/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT_MS.3 b/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT_MS.3
index f2a2872e..f6c82557 100644
--- a/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT_MS.3
+++ b/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT_MS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CONNECTTIMEOUT_MS 3 "September 24, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_CONNECTTIMEOUT_MS 3 "September 24, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CONNECTTIMEOUT_MS \- timeout for the connect phase
diff --git a/docs/libcurl/opts/CURLOPT_CONNECT_ONLY.3 b/docs/libcurl/opts/CURLOPT_CONNECT_ONLY.3
index aa4b01ba..0cf889a2 100644
--- a/docs/libcurl/opts/CURLOPT_CONNECT_ONLY.3
+++ b/docs/libcurl/opts/CURLOPT_CONNECT_ONLY.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CONNECT_ONLY 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_CONNECT_ONLY 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CONNECT_ONLY \- stop when connected to target server
diff --git a/docs/libcurl/opts/CURLOPT_CONNECT_TO.3 b/docs/libcurl/opts/CURLOPT_CONNECT_TO.3
index 37478714..bfab71c3 100644
--- a/docs/libcurl/opts/CURLOPT_CONNECT_TO.3
+++ b/docs/libcurl/opts/CURLOPT_CONNECT_TO.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CONNECT_TO 3 "May 20, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_CONNECT_TO 3 "May 20, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CONNECT_TO \- Connect to a specific host and port instead of the URL's host and port
diff --git a/docs/libcurl/opts/CURLOPT_CONV_FROM_NETWORK_FUNCTION.3 b/docs/libcurl/opts/CURLOPT_CONV_FROM_NETWORK_FUNCTION.3
index 7e7d456a..94dc6b8d 100644
--- a/docs/libcurl/opts/CURLOPT_CONV_FROM_NETWORK_FUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_CONV_FROM_NETWORK_FUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CONV_FROM_NETWORK_FUNCTION 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_CONV_FROM_NETWORK_FUNCTION 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CONV_FROM_NETWORK_FUNCTION \- convert data from network to host encoding
diff --git a/docs/libcurl/opts/CURLOPT_CONV_FROM_UTF8_FUNCTION.3 b/docs/libcurl/opts/CURLOPT_CONV_FROM_UTF8_FUNCTION.3
index 14b89a07..66dd8ae1 100644
--- a/docs/libcurl/opts/CURLOPT_CONV_FROM_UTF8_FUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_CONV_FROM_UTF8_FUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CONV_FROM_UTF8_FUNCTION 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_CONV_FROM_UTF8_FUNCTION 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CONV_FROM_UTF8_FUNCTION \- convert data from UTF8 to host encoding
diff --git a/docs/libcurl/opts/CURLOPT_CONV_TO_NETWORK_FUNCTION.3 b/docs/libcurl/opts/CURLOPT_CONV_TO_NETWORK_FUNCTION.3
index 462a0356..2ab76478 100644
--- a/docs/libcurl/opts/CURLOPT_CONV_TO_NETWORK_FUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_CONV_TO_NETWORK_FUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CONV_TO_NETWORK_FUNCTION 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_CONV_TO_NETWORK_FUNCTION 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CONV_TO_NETWORK_FUNCTION \- convert data to network from host encoding
diff --git a/docs/libcurl/opts/CURLOPT_COOKIE.3 b/docs/libcurl/opts/CURLOPT_COOKIE.3
index 621ed493..b76ac252 100644
--- a/docs/libcurl/opts/CURLOPT_COOKIE.3
+++ b/docs/libcurl/opts/CURLOPT_COOKIE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_COOKIE 3 "December 21, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_COOKIE 3 "December 21, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_COOKIE \- set contents of HTTP Cookie header
diff --git a/docs/libcurl/opts/CURLOPT_COOKIEFILE.3 b/docs/libcurl/opts/CURLOPT_COOKIEFILE.3
index 9ee6f66e..a2981966 100644
--- a/docs/libcurl/opts/CURLOPT_COOKIEFILE.3
+++ b/docs/libcurl/opts/CURLOPT_COOKIEFILE.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
.\" *
.\" * This software is licensed as described in the file COPYING, which
.\" * you should have received as part of this distribution. The terms
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_COOKIEFILE 3 "May 05, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_COOKIEFILE 3 "March 13, 2018" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_COOKIEFILE \- file name to read cookies from
@@ -39,7 +39,8 @@ subsequent requests with this handle.
Given an empty or non-existing file or by passing the empty string ("") to
this option, you can enable the cookie engine without reading any initial
-cookies.
+cookies. If you tell libcurl the file name is "-" (just a single minus sign),
+libcurl will instead read from stdin.
This option only \fBreads\fP cookies. To make libcurl write cookies to file,
see \fICURLOPT_COOKIEJAR(3)\fP.
diff --git a/docs/libcurl/opts/CURLOPT_COOKIEJAR.3 b/docs/libcurl/opts/CURLOPT_COOKIEJAR.3
index c6649de9..16036cb1 100644
--- a/docs/libcurl/opts/CURLOPT_COOKIEJAR.3
+++ b/docs/libcurl/opts/CURLOPT_COOKIEJAR.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_COOKIEJAR 3 "May 05, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_COOKIEJAR 3 "May 05, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_COOKIEJAR \- file name to store cookies to
diff --git a/docs/libcurl/opts/CURLOPT_COOKIELIST.3 b/docs/libcurl/opts/CURLOPT_COOKIELIST.3
index 8cadbd35..402b7430 100644
--- a/docs/libcurl/opts/CURLOPT_COOKIELIST.3
+++ b/docs/libcurl/opts/CURLOPT_COOKIELIST.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_COOKIELIST 3 "April 26, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_COOKIELIST 3 "April 26, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_COOKIELIST \- add to or manipulate cookies held in memory
diff --git a/docs/libcurl/opts/CURLOPT_COOKIESESSION.3 b/docs/libcurl/opts/CURLOPT_COOKIESESSION.3
index 6c8bf037..cb49baed 100644
--- a/docs/libcurl/opts/CURLOPT_COOKIESESSION.3
+++ b/docs/libcurl/opts/CURLOPT_COOKIESESSION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_COOKIESESSION 3 "May 05, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_COOKIESESSION 3 "May 05, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_COOKIESESSION \- start a new cookie session
diff --git a/docs/libcurl/opts/CURLOPT_COPYPOSTFIELDS.3 b/docs/libcurl/opts/CURLOPT_COPYPOSTFIELDS.3
index 46fead38..07ecad1e 100644
--- a/docs/libcurl/opts/CURLOPT_COPYPOSTFIELDS.3
+++ b/docs/libcurl/opts/CURLOPT_COPYPOSTFIELDS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_COPYPOSTFIELDS 3 "February 03, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_COPYPOSTFIELDS 3 "February 03, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_COPYPOSTFIELDS \- have libcurl copy data to POST
diff --git a/docs/libcurl/opts/CURLOPT_CRLF.3 b/docs/libcurl/opts/CURLOPT_CRLF.3
index 917095a9..56d71bfa 100644
--- a/docs/libcurl/opts/CURLOPT_CRLF.3
+++ b/docs/libcurl/opts/CURLOPT_CRLF.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CRLF 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_CRLF 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CRLF \- enable/disable CRLF conversion
diff --git a/docs/libcurl/opts/CURLOPT_CRLFILE.3 b/docs/libcurl/opts/CURLOPT_CRLFILE.3
index 8980823f..3e3d5ced 100644
--- a/docs/libcurl/opts/CURLOPT_CRLFILE.3
+++ b/docs/libcurl/opts/CURLOPT_CRLFILE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CRLFILE 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_CRLFILE 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CRLFILE \- specify a Certificate Revocation List file
diff --git a/docs/libcurl/opts/CURLOPT_CUSTOMREQUEST.3 b/docs/libcurl/opts/CURLOPT_CUSTOMREQUEST.3
index 9e9a4d42..16e413ef 100644
--- a/docs/libcurl/opts/CURLOPT_CUSTOMREQUEST.3
+++ b/docs/libcurl/opts/CURLOPT_CUSTOMREQUEST.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CUSTOMREQUEST 3 "June 21, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_CUSTOMREQUEST 3 "June 21, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CUSTOMREQUEST \- custom string for request
diff --git a/docs/libcurl/opts/CURLOPT_DEBUGDATA.3 b/docs/libcurl/opts/CURLOPT_DEBUGDATA.3
index e229ec85..62533026 100644
--- a/docs/libcurl/opts/CURLOPT_DEBUGDATA.3
+++ b/docs/libcurl/opts/CURLOPT_DEBUGDATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DEBUGDATA 3 "February 03, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_DEBUGDATA 3 "February 03, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_DEBUGDATA \- custom pointer for debug callback
diff --git a/docs/libcurl/opts/CURLOPT_DEBUGFUNCTION.3 b/docs/libcurl/opts/CURLOPT_DEBUGFUNCTION.3
index e3c74a14..b491c1cb 100644
--- a/docs/libcurl/opts/CURLOPT_DEBUGFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_DEBUGFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DEBUGFUNCTION 3 "October 06, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_DEBUGFUNCTION 3 "October 06, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_DEBUGFUNCTION \- debug callback
diff --git a/docs/libcurl/opts/CURLOPT_DEFAULT_PROTOCOL.3 b/docs/libcurl/opts/CURLOPT_DEFAULT_PROTOCOL.3
index 0e50e489..20ba393d 100644
--- a/docs/libcurl/opts/CURLOPT_DEFAULT_PROTOCOL.3
+++ b/docs/libcurl/opts/CURLOPT_DEFAULT_PROTOCOL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DEFAULT_PROTOCOL 3 "December 21, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_DEFAULT_PROTOCOL 3 "December 21, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_DEFAULT_PROTOCOL \- default protocol to use if the URL is missing a
diff --git a/docs/libcurl/opts/CURLOPT_DIRLISTONLY.3 b/docs/libcurl/opts/CURLOPT_DIRLISTONLY.3
index db312c4e..26c3a5a1 100644
--- a/docs/libcurl/opts/CURLOPT_DIRLISTONLY.3
+++ b/docs/libcurl/opts/CURLOPT_DIRLISTONLY.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DIRLISTONLY 3 "May 05, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_DIRLISTONLY 3 "May 05, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_DIRLISTONLY \- ask for names only in a directory listing
diff --git a/docs/libcurl/opts/CURLOPT_DNS_CACHE_TIMEOUT.3 b/docs/libcurl/opts/CURLOPT_DNS_CACHE_TIMEOUT.3
index 8eff4743..4dc77317 100644
--- a/docs/libcurl/opts/CURLOPT_DNS_CACHE_TIMEOUT.3
+++ b/docs/libcurl/opts/CURLOPT_DNS_CACHE_TIMEOUT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DNS_CACHE_TIMEOUT 3 "December 09, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_DNS_CACHE_TIMEOUT 3 "December 09, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_DNS_CACHE_TIMEOUT \- set life-time for DNS cache entries
diff --git a/docs/libcurl/opts/CURLOPT_DNS_INTERFACE.3 b/docs/libcurl/opts/CURLOPT_DNS_INTERFACE.3
index 3feaf054..81054516 100644
--- a/docs/libcurl/opts/CURLOPT_DNS_INTERFACE.3
+++ b/docs/libcurl/opts/CURLOPT_DNS_INTERFACE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DNS_INTERFACE 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_DNS_INTERFACE 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_DNS_INTERFACE \- set interface to speak DNS over
diff --git a/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP4.3 b/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP4.3
index dc309cb3..c995ef57 100644
--- a/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP4.3
+++ b/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP4.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DNS_LOCAL_IP4 3 "December 10, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_DNS_LOCAL_IP4 3 "December 10, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_DNS_LOCAL_IP4 \- IPv4 address to bind DNS resolves to
diff --git a/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP6.3 b/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP6.3
index 5430258f..17c32c2c 100644
--- a/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP6.3
+++ b/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP6.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DNS_LOCAL_IP6 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_DNS_LOCAL_IP6 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_DNS_LOCAL_IP6 \- IPv6 address to bind DNS resolves to
diff --git a/docs/libcurl/opts/CURLOPT_DNS_SERVERS.3 b/docs/libcurl/opts/CURLOPT_DNS_SERVERS.3
index bbe3842f..94c8505f 100644
--- a/docs/libcurl/opts/CURLOPT_DNS_SERVERS.3
+++ b/docs/libcurl/opts/CURLOPT_DNS_SERVERS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DNS_SERVERS 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_DNS_SERVERS 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_DNS_SERVERS \- set preferred DNS servers
diff --git a/docs/libcurl/opts/CURLOPT_DNS_USE_GLOBAL_CACHE.3 b/docs/libcurl/opts/CURLOPT_DNS_USE_GLOBAL_CACHE.3
index bb35dfc2..4c881276 100644
--- a/docs/libcurl/opts/CURLOPT_DNS_USE_GLOBAL_CACHE.3
+++ b/docs/libcurl/opts/CURLOPT_DNS_USE_GLOBAL_CACHE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DNS_USE_GLOBAL_CACHE 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_DNS_USE_GLOBAL_CACHE 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_DNS_USE_GLOBAL_CACHE \- enable/disable global DNS cache
diff --git a/docs/libcurl/opts/CURLOPT_EGDSOCKET.3 b/docs/libcurl/opts/CURLOPT_EGDSOCKET.3
index 1686b469..3e4797f0 100644
--- a/docs/libcurl/opts/CURLOPT_EGDSOCKET.3
+++ b/docs/libcurl/opts/CURLOPT_EGDSOCKET.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_EGDSOCKET 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_EGDSOCKET 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_EGDSOCKET \- set EGD socket path
diff --git a/docs/libcurl/opts/CURLOPT_ERRORBUFFER.3 b/docs/libcurl/opts/CURLOPT_ERRORBUFFER.3
index c0290f83..2e7efa8c 100644
--- a/docs/libcurl/opts/CURLOPT_ERRORBUFFER.3
+++ b/docs/libcurl/opts/CURLOPT_ERRORBUFFER.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_ERRORBUFFER 3 "February 03, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_ERRORBUFFER 3 "February 03, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_ERRORBUFFER \- set error buffer for error messages
diff --git a/docs/libcurl/opts/CURLOPT_EXPECT_100_TIMEOUT_MS.3 b/docs/libcurl/opts/CURLOPT_EXPECT_100_TIMEOUT_MS.3
index 67e963dc..e74f42ff 100644
--- a/docs/libcurl/opts/CURLOPT_EXPECT_100_TIMEOUT_MS.3
+++ b/docs/libcurl/opts/CURLOPT_EXPECT_100_TIMEOUT_MS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_EXPECT_100_TIMEOUT_MS 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_EXPECT_100_TIMEOUT_MS 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_EXPECT_100_TIMEOUT_MS \- timeout for Expect: 100-continue response
diff --git a/docs/libcurl/opts/CURLOPT_FAILONERROR.3 b/docs/libcurl/opts/CURLOPT_FAILONERROR.3
index e8be62cf..8f57c99a 100644
--- a/docs/libcurl/opts/CURLOPT_FAILONERROR.3
+++ b/docs/libcurl/opts/CURLOPT_FAILONERROR.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FAILONERROR 3 "May 30, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_FAILONERROR 3 "May 30, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FAILONERROR \- request failure on HTTP response >= 400
diff --git a/docs/libcurl/opts/CURLOPT_FILETIME.3 b/docs/libcurl/opts/CURLOPT_FILETIME.3
index 16ba6cb1..df5773c5 100644
--- a/docs/libcurl/opts/CURLOPT_FILETIME.3
+++ b/docs/libcurl/opts/CURLOPT_FILETIME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FILETIME 3 "April 03, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_FILETIME 3 "April 03, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FILETIME \- get the modification time of the remote resource
diff --git a/docs/libcurl/opts/CURLOPT_FNMATCH_DATA.3 b/docs/libcurl/opts/CURLOPT_FNMATCH_DATA.3
index 3e73d6b7..537d4c50 100644
--- a/docs/libcurl/opts/CURLOPT_FNMATCH_DATA.3
+++ b/docs/libcurl/opts/CURLOPT_FNMATCH_DATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FNMATCH_DATA 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_FNMATCH_DATA 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FNMATCH_DATA \- custom pointer to fnmatch callback
diff --git a/docs/libcurl/opts/CURLOPT_FNMATCH_FUNCTION.3 b/docs/libcurl/opts/CURLOPT_FNMATCH_FUNCTION.3
index 34a9e819..43f256a1 100644
--- a/docs/libcurl/opts/CURLOPT_FNMATCH_FUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_FNMATCH_FUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FNMATCH_FUNCTION 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_FNMATCH_FUNCTION 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FNMATCH_FUNCTION \- wildcard matching function callback
diff --git a/docs/libcurl/opts/CURLOPT_FOLLOWLOCATION.3 b/docs/libcurl/opts/CURLOPT_FOLLOWLOCATION.3
index 9cd49481..5422beaa 100644
--- a/docs/libcurl/opts/CURLOPT_FOLLOWLOCATION.3
+++ b/docs/libcurl/opts/CURLOPT_FOLLOWLOCATION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FOLLOWLOCATION 3 "February 03, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_FOLLOWLOCATION 3 "February 03, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FOLLOWLOCATION \- follow HTTP 3xx redirects
diff --git a/docs/libcurl/opts/CURLOPT_FORBID_REUSE.3 b/docs/libcurl/opts/CURLOPT_FORBID_REUSE.3
index ea8fe103..48e5c7c9 100644
--- a/docs/libcurl/opts/CURLOPT_FORBID_REUSE.3
+++ b/docs/libcurl/opts/CURLOPT_FORBID_REUSE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FORBID_REUSE 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_FORBID_REUSE 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FORBID_REUSE \- make connection get closed at once after use
diff --git a/docs/libcurl/opts/CURLOPT_FRESH_CONNECT.3 b/docs/libcurl/opts/CURLOPT_FRESH_CONNECT.3
index ae312c66..9760c9a6 100644
--- a/docs/libcurl/opts/CURLOPT_FRESH_CONNECT.3
+++ b/docs/libcurl/opts/CURLOPT_FRESH_CONNECT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FRESH_CONNECT 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_FRESH_CONNECT 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FRESH_CONNECT \- force a new connection to be used
diff --git a/docs/libcurl/opts/CURLOPT_FTPPORT.3 b/docs/libcurl/opts/CURLOPT_FTPPORT.3
index a06cd318..8251a0c5 100644
--- a/docs/libcurl/opts/CURLOPT_FTPPORT.3
+++ b/docs/libcurl/opts/CURLOPT_FTPPORT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FTPPORT 3 "May 30, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_FTPPORT 3 "May 30, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FTPPORT \- make FTP transfer active
diff --git a/docs/libcurl/opts/CURLOPT_FTPSSLAUTH.3 b/docs/libcurl/opts/CURLOPT_FTPSSLAUTH.3
index 802936ca..c199bd9b 100644
--- a/docs/libcurl/opts/CURLOPT_FTPSSLAUTH.3
+++ b/docs/libcurl/opts/CURLOPT_FTPSSLAUTH.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FTPSSLAUTH 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_FTPSSLAUTH 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FTPSSLAUTH \- set order in which to attempt TLS vs SSL when using FTP
diff --git a/docs/libcurl/opts/CURLOPT_FTP_ACCOUNT.3 b/docs/libcurl/opts/CURLOPT_FTP_ACCOUNT.3
index 3dd7812f..efc0c70e 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_ACCOUNT.3
+++ b/docs/libcurl/opts/CURLOPT_FTP_ACCOUNT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FTP_ACCOUNT 3 "May 05, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_FTP_ACCOUNT 3 "May 05, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FTP_ACCOUNT \- set account info for FTP
diff --git a/docs/libcurl/opts/CURLOPT_FTP_ALTERNATIVE_TO_USER.3 b/docs/libcurl/opts/CURLOPT_FTP_ALTERNATIVE_TO_USER.3
index a737389c..4b6415de 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_ALTERNATIVE_TO_USER.3
+++ b/docs/libcurl/opts/CURLOPT_FTP_ALTERNATIVE_TO_USER.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FTP_ALTERNATIVE_TO_USER 3 "May 05, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_FTP_ALTERNATIVE_TO_USER 3 "May 05, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FTP_ALTERNATIVE_TO_USER \- command to use instead of USER with FTP
diff --git a/docs/libcurl/opts/CURLOPT_FTP_CREATE_MISSING_DIRS.3 b/docs/libcurl/opts/CURLOPT_FTP_CREATE_MISSING_DIRS.3
index 92135046..6a5c8422 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_CREATE_MISSING_DIRS.3
+++ b/docs/libcurl/opts/CURLOPT_FTP_CREATE_MISSING_DIRS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FTP_CREATE_MISSING_DIRS 3 "May 05, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_FTP_CREATE_MISSING_DIRS 3 "May 05, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FTP_CREATE_MISSING_DIRS \- create missing dirs for FTP and SFTP
diff --git a/docs/libcurl/opts/CURLOPT_FTP_FILEMETHOD.3 b/docs/libcurl/opts/CURLOPT_FTP_FILEMETHOD.3
index e25c16d2..4ec634a9 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_FILEMETHOD.3
+++ b/docs/libcurl/opts/CURLOPT_FTP_FILEMETHOD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FTP_FILEMETHOD 3 "May 05, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_FTP_FILEMETHOD 3 "May 05, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FTP_FILEMETHOD \- select directory traversing method for FTP
diff --git a/docs/libcurl/opts/CURLOPT_FTP_RESPONSE_TIMEOUT.3 b/docs/libcurl/opts/CURLOPT_FTP_RESPONSE_TIMEOUT.3
index bc670250..eea39bb1 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_RESPONSE_TIMEOUT.3
+++ b/docs/libcurl/opts/CURLOPT_FTP_RESPONSE_TIMEOUT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FTP_RESPONSE_TIMEOUT 3 "October 03, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_FTP_RESPONSE_TIMEOUT 3 "October 03, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FTP_RESPONSE_TIMEOUT \- time allowed to wait for FTP response
diff --git a/docs/libcurl/opts/CURLOPT_FTP_SKIP_PASV_IP.3 b/docs/libcurl/opts/CURLOPT_FTP_SKIP_PASV_IP.3
index 91b0273c..46e630d3 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_SKIP_PASV_IP.3
+++ b/docs/libcurl/opts/CURLOPT_FTP_SKIP_PASV_IP.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FTP_SKIP_PASV_IP 3 "May 05, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_FTP_SKIP_PASV_IP 3 "May 05, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FTP_SKIP_PASV_IP \- ignore the IP address in the PASV response
diff --git a/docs/libcurl/opts/CURLOPT_FTP_SSL_CCC.3 b/docs/libcurl/opts/CURLOPT_FTP_SSL_CCC.3
index 800f7396..488a02fc 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_SSL_CCC.3
+++ b/docs/libcurl/opts/CURLOPT_FTP_SSL_CCC.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FTP_SSL_CCC 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_FTP_SSL_CCC 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FTP_SSL_CCC \- switch off SSL again with FTP after auth
diff --git a/docs/libcurl/opts/CURLOPT_FTP_USE_EPRT.3 b/docs/libcurl/opts/CURLOPT_FTP_USE_EPRT.3
index d8bd173c..feee2c5b 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_USE_EPRT.3
+++ b/docs/libcurl/opts/CURLOPT_FTP_USE_EPRT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FTP_USE_EPRT 3 "February 03, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_FTP_USE_EPRT 3 "February 03, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FTP_USE_EPRT \- enable/disable use of EPRT with FTP
diff --git a/docs/libcurl/opts/CURLOPT_FTP_USE_EPSV.3 b/docs/libcurl/opts/CURLOPT_FTP_USE_EPSV.3
index 77c50c49..0ad62d05 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_USE_EPSV.3
+++ b/docs/libcurl/opts/CURLOPT_FTP_USE_EPSV.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FTP_USE_EPSV 3 "May 05, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_FTP_USE_EPSV 3 "May 05, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FTP_USE_EPSV \- enable/disable use of EPSV
diff --git a/docs/libcurl/opts/CURLOPT_FTP_USE_PRET.3 b/docs/libcurl/opts/CURLOPT_FTP_USE_PRET.3
index a03374ed..f2e2ab42 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_USE_PRET.3
+++ b/docs/libcurl/opts/CURLOPT_FTP_USE_PRET.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FTP_USE_PRET 3 "May 05, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_FTP_USE_PRET 3 "May 05, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FTP_USE_PRET \- enable the PRET command
diff --git a/docs/libcurl/opts/CURLOPT_GSSAPI_DELEGATION.3 b/docs/libcurl/opts/CURLOPT_GSSAPI_DELEGATION.3
index 57c2d51c..44d19284 100644
--- a/docs/libcurl/opts/CURLOPT_GSSAPI_DELEGATION.3
+++ b/docs/libcurl/opts/CURLOPT_GSSAPI_DELEGATION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_GSSAPI_DELEGATION 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_GSSAPI_DELEGATION 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_GSSAPI_DELEGATION \- set allowed GSS-API delegation
diff --git a/docs/libcurl/opts/CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.3 b/docs/libcurl/opts/CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.3
new file mode 100644
index 00000000..8510d3e9
--- /dev/null
+++ b/docs/libcurl/opts/CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.3
@@ -0,0 +1,60 @@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
+.\" * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" *
+.\" * This software is licensed as described in the file COPYING, which
+.\" * you should have received as part of this distribution. The terms
+.\" * are also available at https://curl.haxx.se/docs/copyright.html.
+.\" *
+.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+.\" * copies of the Software, and permit persons to whom the Software is
+.\" * furnished to do so, under the terms of the COPYING file.
+.\" *
+.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+.\" * KIND, either express or implied.
+.\" *
+.\" **************************************************************************
+.\"
+.TH CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS 3 "February 21, 2018" "libcurl 7.59.0" "curl_easy_setopt options"
+
+.SH NAME
+CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS \- head start for ipv6 for happy eyeballs
+.SH SYNOPSIS
+#include <curl/curl.h>
+
+CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS, long timeout);
+.SH DESCRIPTION
+Happy eyeballs is an algorithm that attempts to connect to both IPv4 and IPv6
+addresses for dual-stack hosts, preferring IPv6 first for \fItimeout\fP
+milliseconds. If the IPv6 address cannot be connected to within that time then
+a connection attempt is made to the IPv4 address in parallel. The first
+connection to be established is the one that is used.
+
+The range of suggested useful values for \fItimeout\fP is limited. Happy
+Eyeballs RFC 6555 says "It is RECOMMENDED that connection attempts be paced
+150-250 ms apart to balance human factors against network load." libcurl
+currently defaults to 200 ms. Firefox and Chrome currently default to 300 ms.
+.SH DEFAULT
+CURL_HET_DEFAULT (currently defined as 200L)
+.SH EXAMPLE
+.nf
+CURL *curl = curl_easy_init();
+if(curl) {
+ curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
+ curl_easy_setopt(curl, CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS, 300L);
+
+ curl_easy_perform(curl);
+
+ /* always cleanup */
+ curl_easy_cleanup(curl);
+}
+.fi
+.SH AVAILABILITY
+Added in 7.59.0
+.SH RETURN VALUE
+Returns CURLE_OK
diff --git a/docs/libcurl/opts/CURLOPT_HEADER.3 b/docs/libcurl/opts/CURLOPT_HEADER.3
index d9414481..7d352d5f 100644
--- a/docs/libcurl/opts/CURLOPT_HEADER.3
+++ b/docs/libcurl/opts/CURLOPT_HEADER.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
.\" *
.\" * This software is licensed as described in the file COPYING, which
.\" * you should have received as part of this distribution. The terms
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HEADER 3 "February 03, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_HEADER 3 "February 16, 2018" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HEADER \- pass headers to the data stream
@@ -29,14 +29,20 @@ CURLOPT_HEADER \- pass headers to the data stream
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HEADER, long onoff);
.SH DESCRIPTION
-Pass in \fIonoff\fP set to 1 to tell the library to include the header in the
-body output for requests with this \fIhandle\fP. This option is relevant for
-protocols that actually have headers or other meta-data (like HTTP and FTP).
+Pass the long value \fIonoff\fP set to 1 to ask libcurl to include the headers
+in the write callback (\fICURLOPT_WRITEFUNCTION(3)\fP). This option is
+relevant for protocols that actually have headers or other meta-data (like
+HTTP and FTP).
-When asking to get the header info passed to the same callback as the body, it
-is not possible to accurately separate them again without detailed knowledge
+When asking to get the headers passed to the same callback as the body, it is
+not possible to accurately separate them again without detailed knowledge
about the protocol in use.
+Further: the \fCURLOPT_WRITEFUNCTION(3)\fP callback is limited to only ever
+get a maximum of \fICURL_MAX_WRITE_SIZE\fP bytes passed to it (16KB), while a
+header can be longer and the \fICURLOPT_HEADERFUNCTION(3)\fP supports getting
+called with headers up to \fICURL_MAX_HTTP_HEADER\fP bytes big (100KB).
+
It is often better to use \fICURLOPT_HEADERFUNCTION(3)\fP to get the header
data separately.
diff --git a/docs/libcurl/opts/CURLOPT_HEADERDATA.3 b/docs/libcurl/opts/CURLOPT_HEADERDATA.3
index 5cf72d3c..014e323e 100644
--- a/docs/libcurl/opts/CURLOPT_HEADERDATA.3
+++ b/docs/libcurl/opts/CURLOPT_HEADERDATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HEADERDATA 3 "May 05, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_HEADERDATA 3 "May 05, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HEADERDATA \- pointer to pass to header callback
diff --git a/docs/libcurl/opts/CURLOPT_HEADERFUNCTION.3 b/docs/libcurl/opts/CURLOPT_HEADERFUNCTION.3
index 88be0982..fe7febce 100644
--- a/docs/libcurl/opts/CURLOPT_HEADERFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_HEADERFUNCTION.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
.\" *
.\" * This software is licensed as described in the file COPYING, which
.\" * you should have received as part of this distribution. The terms
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HEADERFUNCTION 3 "February 03, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_HEADERFUNCTION 3 "February 16, 2018" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HEADERFUNCTION \- callback that receives header data
@@ -75,6 +75,11 @@ the trailer.
For non-HTTP protocols like FTP, POP3, IMAP and SMTP this function will get
called with the server responses to the commands that libcurl sends.
+.SH LIMITATIONS
+libcurl does not unfold HTTP "folded headers" (deprecated since RFC 7230). A
+folded header is a header that continues on a subsequent line and starts with
+a whitespace. Such folds will be passed to the header callback as a separate
+one, although strictly it is just a continuation of the previous line.
.SH DEFAULT
Nothing.
.SH PROTOCOLS
diff --git a/docs/libcurl/opts/CURLOPT_HEADEROPT.3 b/docs/libcurl/opts/CURLOPT_HEADEROPT.3
index e255c982..79ba6d0a 100644
--- a/docs/libcurl/opts/CURLOPT_HEADEROPT.3
+++ b/docs/libcurl/opts/CURLOPT_HEADEROPT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HEADEROPT 3 "May 30, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_HEADEROPT 3 "May 30, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HEADEROPT \- set how to send HTTP headers
diff --git a/docs/libcurl/opts/CURLOPT_HTTP200ALIASES.3 b/docs/libcurl/opts/CURLOPT_HTTP200ALIASES.3
index 64d8c21f..6ee762f8 100644
--- a/docs/libcurl/opts/CURLOPT_HTTP200ALIASES.3
+++ b/docs/libcurl/opts/CURLOPT_HTTP200ALIASES.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HTTP200ALIASES 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_HTTP200ALIASES 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HTTP200ALIASES \- specify alternative matches for HTTP 200 OK
diff --git a/docs/libcurl/opts/CURLOPT_HTTPAUTH.3 b/docs/libcurl/opts/CURLOPT_HTTPAUTH.3
index 2bc354d2..ac7eca22 100644
--- a/docs/libcurl/opts/CURLOPT_HTTPAUTH.3
+++ b/docs/libcurl/opts/CURLOPT_HTTPAUTH.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HTTPAUTH 3 "May 30, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_HTTPAUTH 3 "May 30, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HTTPAUTH \- set HTTP server authentication methods to try
diff --git a/docs/libcurl/opts/CURLOPT_HTTPGET.3 b/docs/libcurl/opts/CURLOPT_HTTPGET.3
index 4111932b..e9d9c40f 100644
--- a/docs/libcurl/opts/CURLOPT_HTTPGET.3
+++ b/docs/libcurl/opts/CURLOPT_HTTPGET.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HTTPGET 3 "February 03, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_HTTPGET 3 "February 03, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HTTPGET \- ask for a HTTP GET request
diff --git a/docs/libcurl/opts/CURLOPT_HTTPHEADER.3 b/docs/libcurl/opts/CURLOPT_HTTPHEADER.3
index 1a08ea14..37081442 100644
--- a/docs/libcurl/opts/CURLOPT_HTTPHEADER.3
+++ b/docs/libcurl/opts/CURLOPT_HTTPHEADER.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HTTPHEADER 3 "January 23, 2018" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_HTTPHEADER 3 "January 23, 2018" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HTTPHEADER \- set custom HTTP headers
diff --git a/docs/libcurl/opts/CURLOPT_HTTPPOST.3 b/docs/libcurl/opts/CURLOPT_HTTPPOST.3
index 9a358f1b..7957820d 100644
--- a/docs/libcurl/opts/CURLOPT_HTTPPOST.3
+++ b/docs/libcurl/opts/CURLOPT_HTTPPOST.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HTTPPOST 3 "September 02, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_HTTPPOST 3 "September 02, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HTTPPOST \- specify the multipart formpost content
diff --git a/docs/libcurl/opts/CURLOPT_HTTPPROXYTUNNEL.3 b/docs/libcurl/opts/CURLOPT_HTTPPROXYTUNNEL.3
index 6e853da3..8c3a2885 100644
--- a/docs/libcurl/opts/CURLOPT_HTTPPROXYTUNNEL.3
+++ b/docs/libcurl/opts/CURLOPT_HTTPPROXYTUNNEL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HTTPPROXYTUNNEL 3 "May 15, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_HTTPPROXYTUNNEL 3 "May 15, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HTTPPROXYTUNNEL \- tunnel through HTTP proxy
diff --git a/docs/libcurl/opts/CURLOPT_HTTP_CONTENT_DECODING.3 b/docs/libcurl/opts/CURLOPT_HTTP_CONTENT_DECODING.3
index f3fb434f..56dc5478 100644
--- a/docs/libcurl/opts/CURLOPT_HTTP_CONTENT_DECODING.3
+++ b/docs/libcurl/opts/CURLOPT_HTTP_CONTENT_DECODING.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HTTP_CONTENT_DECODING 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_HTTP_CONTENT_DECODING 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HTTP_CONTENT_DECODING \- enable/disable HTTP content decoding
diff --git a/docs/libcurl/opts/CURLOPT_HTTP_TRANSFER_DECODING.3 b/docs/libcurl/opts/CURLOPT_HTTP_TRANSFER_DECODING.3
index ad1b0b2b..4766056f 100644
--- a/docs/libcurl/opts/CURLOPT_HTTP_TRANSFER_DECODING.3
+++ b/docs/libcurl/opts/CURLOPT_HTTP_TRANSFER_DECODING.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HTTP_TRANSFER_DECODING 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_HTTP_TRANSFER_DECODING 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HTTP_TRANSFER_DECODING \- enable/disable HTTP transfer decoding
diff --git a/docs/libcurl/opts/CURLOPT_HTTP_VERSION.3 b/docs/libcurl/opts/CURLOPT_HTTP_VERSION.3
index 8884c7c0..c1de4ff5 100644
--- a/docs/libcurl/opts/CURLOPT_HTTP_VERSION.3
+++ b/docs/libcurl/opts/CURLOPT_HTTP_VERSION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HTTP_VERSION 3 "May 30, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_HTTP_VERSION 3 "May 30, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HTTP_VERSION \- specify HTTP protocol version to use
diff --git a/docs/libcurl/opts/CURLOPT_IGNORE_CONTENT_LENGTH.3 b/docs/libcurl/opts/CURLOPT_IGNORE_CONTENT_LENGTH.3
index 47167b0c..f027243b 100644
--- a/docs/libcurl/opts/CURLOPT_IGNORE_CONTENT_LENGTH.3
+++ b/docs/libcurl/opts/CURLOPT_IGNORE_CONTENT_LENGTH.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_IGNORE_CONTENT_LENGTH 3 "February 03, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_IGNORE_CONTENT_LENGTH 3 "February 03, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_IGNORE_CONTENT_LENGTH \- ignore content length
diff --git a/docs/libcurl/opts/CURLOPT_INFILESIZE.3 b/docs/libcurl/opts/CURLOPT_INFILESIZE.3
index 9a7c6a63..6ab20076 100644
--- a/docs/libcurl/opts/CURLOPT_INFILESIZE.3
+++ b/docs/libcurl/opts/CURLOPT_INFILESIZE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_INFILESIZE 3 "February 03, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_INFILESIZE 3 "February 03, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_INFILESIZE \- set size of the input file to send off
diff --git a/docs/libcurl/opts/CURLOPT_INFILESIZE_LARGE.3 b/docs/libcurl/opts/CURLOPT_INFILESIZE_LARGE.3
index cebdffcf..c988e587 100644
--- a/docs/libcurl/opts/CURLOPT_INFILESIZE_LARGE.3
+++ b/docs/libcurl/opts/CURLOPT_INFILESIZE_LARGE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_INFILESIZE_LARGE 3 "February 03, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_INFILESIZE_LARGE 3 "February 03, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_INFILESIZE_LARGE \- set size of the input file to send off
diff --git a/docs/libcurl/opts/CURLOPT_INTERFACE.3 b/docs/libcurl/opts/CURLOPT_INTERFACE.3
index 0d783350..9b1dfabc 100644
--- a/docs/libcurl/opts/CURLOPT_INTERFACE.3
+++ b/docs/libcurl/opts/CURLOPT_INTERFACE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_INTERFACE 3 "May 05, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_INTERFACE 3 "May 05, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_INTERFACE \- source interface for outgoing traffic
diff --git a/docs/libcurl/opts/CURLOPT_INTERLEAVEDATA.3 b/docs/libcurl/opts/CURLOPT_INTERLEAVEDATA.3
index 4b655533..272c28fe 100644
--- a/docs/libcurl/opts/CURLOPT_INTERLEAVEDATA.3
+++ b/docs/libcurl/opts/CURLOPT_INTERLEAVEDATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_INTERLEAVEDATA 3 "September 15, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_INTERLEAVEDATA 3 "September 15, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_INTERLEAVEDATA \- custom pointer passed to RTSP interleave callback
diff --git a/docs/libcurl/opts/CURLOPT_INTERLEAVEFUNCTION.3 b/docs/libcurl/opts/CURLOPT_INTERLEAVEFUNCTION.3
index b9a5c897..e0364789 100644
--- a/docs/libcurl/opts/CURLOPT_INTERLEAVEFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_INTERLEAVEFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_INTERLEAVEFUNCTION 3 "September 15, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_INTERLEAVEFUNCTION 3 "September 15, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_INTERLEAVEFUNCTION \- callback function for RTSP interleaved data
diff --git a/docs/libcurl/opts/CURLOPT_IOCTLDATA.3 b/docs/libcurl/opts/CURLOPT_IOCTLDATA.3
index def24fff..2c9948c1 100644
--- a/docs/libcurl/opts/CURLOPT_IOCTLDATA.3
+++ b/docs/libcurl/opts/CURLOPT_IOCTLDATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_IOCTLDATA 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_IOCTLDATA 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_IOCTLDATA \- custom pointer passed to I/O callback
diff --git a/docs/libcurl/opts/CURLOPT_IOCTLFUNCTION.3 b/docs/libcurl/opts/CURLOPT_IOCTLFUNCTION.3
index 683fea83..eba85e16 100644
--- a/docs/libcurl/opts/CURLOPT_IOCTLFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_IOCTLFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_IOCTLFUNCTION 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_IOCTLFUNCTION 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_IOCTLFUNCTION \- callback for I/O operations
diff --git a/docs/libcurl/opts/CURLOPT_IPRESOLVE.3 b/docs/libcurl/opts/CURLOPT_IPRESOLVE.3
index 954f48c4..bb2bc5a3 100644
--- a/docs/libcurl/opts/CURLOPT_IPRESOLVE.3
+++ b/docs/libcurl/opts/CURLOPT_IPRESOLVE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_IPRESOLVE 3 "May 05, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_IPRESOLVE 3 "May 05, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_IPRESOLVE \- specify which IP protocol version to use
diff --git a/docs/libcurl/opts/CURLOPT_ISSUERCERT.3 b/docs/libcurl/opts/CURLOPT_ISSUERCERT.3
index fd52be21..cf936cd6 100644
--- a/docs/libcurl/opts/CURLOPT_ISSUERCERT.3
+++ b/docs/libcurl/opts/CURLOPT_ISSUERCERT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_ISSUERCERT 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_ISSUERCERT 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_ISSUERCERT \- issuer SSL certificate filename
diff --git a/docs/libcurl/opts/CURLOPT_KEEP_SENDING_ON_ERROR.3 b/docs/libcurl/opts/CURLOPT_KEEP_SENDING_ON_ERROR.3
index 6d5544b9..2c74ff0d 100644
--- a/docs/libcurl/opts/CURLOPT_KEEP_SENDING_ON_ERROR.3
+++ b/docs/libcurl/opts/CURLOPT_KEEP_SENDING_ON_ERROR.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_KEEP_SENDING_ON_ERROR 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_KEEP_SENDING_ON_ERROR 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_KEEP_SENDING_ON_ERROR \- keep sending on early HTTP response >= 300
diff --git a/docs/libcurl/opts/CURLOPT_KEYPASSWD.3 b/docs/libcurl/opts/CURLOPT_KEYPASSWD.3
index 6677edbf..2f0b872a 100644
--- a/docs/libcurl/opts/CURLOPT_KEYPASSWD.3
+++ b/docs/libcurl/opts/CURLOPT_KEYPASSWD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_KEYPASSWD 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_KEYPASSWD 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_KEYPASSWD \- set passphrase to private key
diff --git a/docs/libcurl/opts/CURLOPT_KRBLEVEL.3 b/docs/libcurl/opts/CURLOPT_KRBLEVEL.3
index 4f44f36c..a276a55d 100644
--- a/docs/libcurl/opts/CURLOPT_KRBLEVEL.3
+++ b/docs/libcurl/opts/CURLOPT_KRBLEVEL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_KRBLEVEL 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_KRBLEVEL 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_KRBLEVEL \- set FTP kerberos security level
diff --git a/docs/libcurl/opts/CURLOPT_LOCALPORT.3 b/docs/libcurl/opts/CURLOPT_LOCALPORT.3
index 02d9bf67..4707b224 100644
--- a/docs/libcurl/opts/CURLOPT_LOCALPORT.3
+++ b/docs/libcurl/opts/CURLOPT_LOCALPORT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_LOCALPORT 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_LOCALPORT 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_LOCALPORT \- set local port number to use for socket
diff --git a/docs/libcurl/opts/CURLOPT_LOCALPORTRANGE.3 b/docs/libcurl/opts/CURLOPT_LOCALPORTRANGE.3
index b1296bc5..3a8d3b8f 100644
--- a/docs/libcurl/opts/CURLOPT_LOCALPORTRANGE.3
+++ b/docs/libcurl/opts/CURLOPT_LOCALPORTRANGE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_LOCALPORTRANGE 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_LOCALPORTRANGE 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_LOCALPORTRANGE \- number of additional local ports to try
diff --git a/docs/libcurl/opts/CURLOPT_LOGIN_OPTIONS.3 b/docs/libcurl/opts/CURLOPT_LOGIN_OPTIONS.3
index 35b5634e..8a240d3a 100644
--- a/docs/libcurl/opts/CURLOPT_LOGIN_OPTIONS.3
+++ b/docs/libcurl/opts/CURLOPT_LOGIN_OPTIONS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_LOGIN_OPTIONS 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_LOGIN_OPTIONS 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_LOGIN_OPTIONS \- set login options
diff --git a/docs/libcurl/opts/CURLOPT_LOW_SPEED_LIMIT.3 b/docs/libcurl/opts/CURLOPT_LOW_SPEED_LIMIT.3
index 4a00f4b1..aac176ba 100644
--- a/docs/libcurl/opts/CURLOPT_LOW_SPEED_LIMIT.3
+++ b/docs/libcurl/opts/CURLOPT_LOW_SPEED_LIMIT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_LOW_SPEED_LIMIT 3 "May 06, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_LOW_SPEED_LIMIT 3 "May 06, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_LOW_SPEED_LIMIT \- set low speed limit in bytes per second
diff --git a/docs/libcurl/opts/CURLOPT_LOW_SPEED_TIME.3 b/docs/libcurl/opts/CURLOPT_LOW_SPEED_TIME.3
index bde312d5..c5b7ddf5 100644
--- a/docs/libcurl/opts/CURLOPT_LOW_SPEED_TIME.3
+++ b/docs/libcurl/opts/CURLOPT_LOW_SPEED_TIME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_LOW_SPEED_TIME 3 "May 06, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_LOW_SPEED_TIME 3 "May 06, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_LOW_SPEED_TIME \- set low speed limit time period
diff --git a/docs/libcurl/opts/CURLOPT_MAIL_AUTH.3 b/docs/libcurl/opts/CURLOPT_MAIL_AUTH.3
index 01dce886..184883d4 100644
--- a/docs/libcurl/opts/CURLOPT_MAIL_AUTH.3
+++ b/docs/libcurl/opts/CURLOPT_MAIL_AUTH.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_MAIL_AUTH 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_MAIL_AUTH 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_MAIL_AUTH \- SMTP authentication address
diff --git a/docs/libcurl/opts/CURLOPT_MAIL_FROM.3 b/docs/libcurl/opts/CURLOPT_MAIL_FROM.3
index 1ede9270..096bbd29 100644
--- a/docs/libcurl/opts/CURLOPT_MAIL_FROM.3
+++ b/docs/libcurl/opts/CURLOPT_MAIL_FROM.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_MAIL_FROM 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_MAIL_FROM 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_MAIL_FROM \- SMTP sender address
diff --git a/docs/libcurl/opts/CURLOPT_MAIL_RCPT.3 b/docs/libcurl/opts/CURLOPT_MAIL_RCPT.3
index d0f93ae8..ca43f555 100644
--- a/docs/libcurl/opts/CURLOPT_MAIL_RCPT.3
+++ b/docs/libcurl/opts/CURLOPT_MAIL_RCPT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_MAIL_RCPT 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_MAIL_RCPT 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_MAIL_RCPT \- list of SMTP mail recipients
diff --git a/docs/libcurl/opts/CURLOPT_MAXCONNECTS.3 b/docs/libcurl/opts/CURLOPT_MAXCONNECTS.3
index d2e428d3..66231fd4 100644
--- a/docs/libcurl/opts/CURLOPT_MAXCONNECTS.3
+++ b/docs/libcurl/opts/CURLOPT_MAXCONNECTS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_MAXCONNECTS 3 "May 30, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_MAXCONNECTS 3 "May 30, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_MAXCONNECTS \- maximum connection cache size
diff --git a/docs/libcurl/opts/CURLOPT_MAXFILESIZE.3 b/docs/libcurl/opts/CURLOPT_MAXFILESIZE.3
index d1445ff6..202fb41f 100644
--- a/docs/libcurl/opts/CURLOPT_MAXFILESIZE.3
+++ b/docs/libcurl/opts/CURLOPT_MAXFILESIZE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_MAXFILESIZE 3 "May 30, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_MAXFILESIZE 3 "May 30, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_MAXFILESIZE \- maximum file size allowed to download
diff --git a/docs/libcurl/opts/CURLOPT_MAXFILESIZE_LARGE.3 b/docs/libcurl/opts/CURLOPT_MAXFILESIZE_LARGE.3
index 25dd587f..b81a6ee9 100644
--- a/docs/libcurl/opts/CURLOPT_MAXFILESIZE_LARGE.3
+++ b/docs/libcurl/opts/CURLOPT_MAXFILESIZE_LARGE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_MAXFILESIZE_LARGE 3 "May 30, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_MAXFILESIZE_LARGE 3 "May 30, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_MAXFILESIZE_LARGE \- maximum file size allowed to download
diff --git a/docs/libcurl/opts/CURLOPT_MAXREDIRS.3 b/docs/libcurl/opts/CURLOPT_MAXREDIRS.3
index b98e79fe..c4c59bc7 100644
--- a/docs/libcurl/opts/CURLOPT_MAXREDIRS.3
+++ b/docs/libcurl/opts/CURLOPT_MAXREDIRS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_MAXREDIRS 3 "February 03, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_MAXREDIRS 3 "February 03, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_MAXREDIRS \- maximum number of redirects allowed
diff --git a/docs/libcurl/opts/CURLOPT_MAX_RECV_SPEED_LARGE.3 b/docs/libcurl/opts/CURLOPT_MAX_RECV_SPEED_LARGE.3
index 03a1cfa5..3ff0bd66 100644
--- a/docs/libcurl/opts/CURLOPT_MAX_RECV_SPEED_LARGE.3
+++ b/docs/libcurl/opts/CURLOPT_MAX_RECV_SPEED_LARGE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_MAX_RECV_SPEED_LARGE 3 "May 30, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_MAX_RECV_SPEED_LARGE 3 "May 30, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_MAX_RECV_SPEED_LARGE \- rate limit data download speed
diff --git a/docs/libcurl/opts/CURLOPT_MAX_SEND_SPEED_LARGE.3 b/docs/libcurl/opts/CURLOPT_MAX_SEND_SPEED_LARGE.3
index 6ebfb3e2..ae26aafe 100644
--- a/docs/libcurl/opts/CURLOPT_MAX_SEND_SPEED_LARGE.3
+++ b/docs/libcurl/opts/CURLOPT_MAX_SEND_SPEED_LARGE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_MAX_SEND_SPEED_LARGE 3 "May 30, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_MAX_SEND_SPEED_LARGE 3 "May 30, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_MAX_SEND_SPEED_LARGE \- rate limit data upload speed
diff --git a/docs/libcurl/opts/CURLOPT_MIMEPOST.3 b/docs/libcurl/opts/CURLOPT_MIMEPOST.3
index 4b54c5fa..fbc42c72 100644
--- a/docs/libcurl/opts/CURLOPT_MIMEPOST.3
+++ b/docs/libcurl/opts/CURLOPT_MIMEPOST.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_MIMEPOST 3 "September 04, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_MIMEPOST 3 "September 04, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_MIMEPOST \- set post/send data from mime structure
diff --git a/docs/libcurl/opts/CURLOPT_NETRC.3 b/docs/libcurl/opts/CURLOPT_NETRC.3
index b3fb955f..7723d6b8 100644
--- a/docs/libcurl/opts/CURLOPT_NETRC.3
+++ b/docs/libcurl/opts/CURLOPT_NETRC.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_NETRC 3 "August 02, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_NETRC 3 "August 02, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_NETRC \- request that .netrc is used
diff --git a/docs/libcurl/opts/CURLOPT_NETRC_FILE.3 b/docs/libcurl/opts/CURLOPT_NETRC_FILE.3
index fd3a2736..32d4896e 100644
--- a/docs/libcurl/opts/CURLOPT_NETRC_FILE.3
+++ b/docs/libcurl/opts/CURLOPT_NETRC_FILE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_NETRC_FILE 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_NETRC_FILE 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_NETRC_FILE \- file name to read .netrc info from
diff --git a/docs/libcurl/opts/CURLOPT_NEW_DIRECTORY_PERMS.3 b/docs/libcurl/opts/CURLOPT_NEW_DIRECTORY_PERMS.3
index f7f3acaa..c885ab8c 100644
--- a/docs/libcurl/opts/CURLOPT_NEW_DIRECTORY_PERMS.3
+++ b/docs/libcurl/opts/CURLOPT_NEW_DIRECTORY_PERMS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_NEW_DIRECTORY_PERMS 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_NEW_DIRECTORY_PERMS 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_NEW_DIRECTORY_PERMS \- permissions for remotely created directories
diff --git a/docs/libcurl/opts/CURLOPT_NEW_FILE_PERMS.3 b/docs/libcurl/opts/CURLOPT_NEW_FILE_PERMS.3
index a5064b38..6283b2f8 100644
--- a/docs/libcurl/opts/CURLOPT_NEW_FILE_PERMS.3
+++ b/docs/libcurl/opts/CURLOPT_NEW_FILE_PERMS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_NEW_FILE_PERMS 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_NEW_FILE_PERMS 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_NEW_FILE_PERMS \- permissions for remotely created files
diff --git a/docs/libcurl/opts/CURLOPT_NOBODY.3 b/docs/libcurl/opts/CURLOPT_NOBODY.3
index b2b7a2ca..9f072d35 100644
--- a/docs/libcurl/opts/CURLOPT_NOBODY.3
+++ b/docs/libcurl/opts/CURLOPT_NOBODY.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_NOBODY 3 "June 21, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_NOBODY 3 "June 21, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_NOBODY \- do the download request without getting the body
diff --git a/docs/libcurl/opts/CURLOPT_NOPROGRESS.3 b/docs/libcurl/opts/CURLOPT_NOPROGRESS.3
index 0bfe9a5e..95858e06 100644
--- a/docs/libcurl/opts/CURLOPT_NOPROGRESS.3
+++ b/docs/libcurl/opts/CURLOPT_NOPROGRESS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_NOPROGRESS 3 "October 09, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_NOPROGRESS 3 "October 09, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_NOPROGRESS \- switch off the progress meter
diff --git a/docs/libcurl/opts/CURLOPT_NOPROXY.3 b/docs/libcurl/opts/CURLOPT_NOPROXY.3
index b7a3cf36..f69eee22 100644
--- a/docs/libcurl/opts/CURLOPT_NOPROXY.3
+++ b/docs/libcurl/opts/CURLOPT_NOPROXY.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
.\" *
.\" * This software is licensed as described in the file COPYING, which
.\" * you should have received as part of this distribution. The terms
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_NOPROXY 3 "September 24, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_NOPROXY 3 "March 03, 2018" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_NOPROXY \- disable proxy use for specific hosts
@@ -45,6 +45,11 @@ use for both "www.example.com" as well as for "foo.example.com".
Setting the noproxy string to "" (an empty string) will explicitly enable the
proxy for all host names, even if there is an environment variable set for it.
+Enter IPv6 numerical addresses in the list of host names without enclosing
+brackets:
+
+ "example.com,::1,localhost"
+
The application does not have to keep the string around after setting this
option.
.SH "Environment variables"
diff --git a/docs/libcurl/opts/CURLOPT_NOSIGNAL.3 b/docs/libcurl/opts/CURLOPT_NOSIGNAL.3
index efcc22c7..4afaf888 100644
--- a/docs/libcurl/opts/CURLOPT_NOSIGNAL.3
+++ b/docs/libcurl/opts/CURLOPT_NOSIGNAL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_NOSIGNAL 3 "February 03, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_NOSIGNAL 3 "February 03, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_NOSIGNAL \- skip all signal handling
diff --git a/docs/libcurl/opts/CURLOPT_OPENSOCKETDATA.3 b/docs/libcurl/opts/CURLOPT_OPENSOCKETDATA.3
index 5e8d8f2e..c4e2c2a2 100644
--- a/docs/libcurl/opts/CURLOPT_OPENSOCKETDATA.3
+++ b/docs/libcurl/opts/CURLOPT_OPENSOCKETDATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_OPENSOCKETDATA 3 "May 15, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_OPENSOCKETDATA 3 "May 15, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_OPENSOCKETDATA \- custom pointer passed to open socket callback
diff --git a/docs/libcurl/opts/CURLOPT_OPENSOCKETFUNCTION.3 b/docs/libcurl/opts/CURLOPT_OPENSOCKETFUNCTION.3
index 6401eabc..6f912a56 100644
--- a/docs/libcurl/opts/CURLOPT_OPENSOCKETFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_OPENSOCKETFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_OPENSOCKETFUNCTION 3 "May 15, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_OPENSOCKETFUNCTION 3 "May 15, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_OPENSOCKETFUNCTION \- set callback for opening sockets
diff --git a/docs/libcurl/opts/CURLOPT_PASSWORD.3 b/docs/libcurl/opts/CURLOPT_PASSWORD.3
index e243edb1..a13374e6 100644
--- a/docs/libcurl/opts/CURLOPT_PASSWORD.3
+++ b/docs/libcurl/opts/CURLOPT_PASSWORD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PASSWORD 3 "May 05, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PASSWORD 3 "May 05, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PASSWORD \- password to use in authentication
diff --git a/docs/libcurl/opts/CURLOPT_PATH_AS_IS.3 b/docs/libcurl/opts/CURLOPT_PATH_AS_IS.3
index 3596616e..f666a794 100644
--- a/docs/libcurl/opts/CURLOPT_PATH_AS_IS.3
+++ b/docs/libcurl/opts/CURLOPT_PATH_AS_IS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PATH_AS_IS 3 "February 14, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PATH_AS_IS 3 "February 14, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PATH_AS_IS \- do not handle dot dot sequences
diff --git a/docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY.3 b/docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY.3
index a525c146..cb08cd49 100644
--- a/docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY.3
+++ b/docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
.\" *
.\" * This software is licensed as described in the file COPYING, which
.\" * you should have received as part of this distribution. The terms
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PINNEDPUBLICKEY 3 "April 17, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PINNEDPUBLICKEY 3 "January 25, 2018" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PINNEDPUBLICKEY \- set pinned public key
@@ -96,7 +96,9 @@ footer:
.SH AVAILABILITY
PEM/DER support:
- 7.39.0: OpenSSL, GnuTLS and GSKit
+ 7.39.0: OpenSSL, GnuTLS
+
+ 7.39.0-7.48.0,7.58.1+: GSKit
7.43.0: NSS and wolfSSL/CyaSSL
@@ -106,6 +108,8 @@ PEM/DER support:
7.54.1: SecureTransport/DarwinSSL on macOS 10.7+/iOS 10+
+ 7.58.1: SChannel/WinSSL
+
sha256 support:
7.44.0: OpenSSL, GnuTLS, NSS and wolfSSL/CyaSSL
@@ -116,6 +120,8 @@ sha256 support:
7.54.1: SecureTransport/DarwinSSL on macOS 10.7+/iOS 10+
+ 7.58.1: SChannel/WinSSL Windows XP SP3+
+
Other SSL backends not supported.
.SH RETURN VALUE
Returns CURLE_OK if TLS enabled, CURLE_UNKNOWN_OPTION if not, or
diff --git a/docs/libcurl/opts/CURLOPT_PIPEWAIT.3 b/docs/libcurl/opts/CURLOPT_PIPEWAIT.3
index 087a89b8..e5e03f57 100644
--- a/docs/libcurl/opts/CURLOPT_PIPEWAIT.3
+++ b/docs/libcurl/opts/CURLOPT_PIPEWAIT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PIPEWAIT 3 "May 01, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PIPEWAIT 3 "May 01, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PIPEWAIT \- wait for pipelining/multiplexing
diff --git a/docs/libcurl/opts/CURLOPT_PORT.3 b/docs/libcurl/opts/CURLOPT_PORT.3
index 08aa4b46..2c84f832 100644
--- a/docs/libcurl/opts/CURLOPT_PORT.3
+++ b/docs/libcurl/opts/CURLOPT_PORT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PORT 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PORT 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PORT \- set remote port number to work with
diff --git a/docs/libcurl/opts/CURLOPT_POST.3 b/docs/libcurl/opts/CURLOPT_POST.3
index 2a95881b..84a33d35 100644
--- a/docs/libcurl/opts/CURLOPT_POST.3
+++ b/docs/libcurl/opts/CURLOPT_POST.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_POST 3 "May 05, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_POST 3 "May 05, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_POST \- request a HTTP POST
diff --git a/docs/libcurl/opts/CURLOPT_POSTFIELDS.3 b/docs/libcurl/opts/CURLOPT_POSTFIELDS.3
index b290d2b6..d52a4f09 100644
--- a/docs/libcurl/opts/CURLOPT_POSTFIELDS.3
+++ b/docs/libcurl/opts/CURLOPT_POSTFIELDS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_POSTFIELDS 3 "July 07, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_POSTFIELDS 3 "July 07, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_POSTFIELDS \- specify data to POST to server
diff --git a/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE.3 b/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE.3
index 235f7a17..4b557626 100644
--- a/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE.3
+++ b/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_POSTFIELDSIZE 3 "February 03, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_POSTFIELDSIZE 3 "February 03, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_POSTFIELDSIZE \- size of POST data pointed to
diff --git a/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE_LARGE.3 b/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE_LARGE.3
index 3e68afe4..7725c601 100644
--- a/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE_LARGE.3
+++ b/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE_LARGE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_POSTFIELDSIZE_LARGE 3 "February 03, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_POSTFIELDSIZE_LARGE 3 "February 03, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_POSTFIELDSIZE_LARGE \- size of POST data pointed to
diff --git a/docs/libcurl/opts/CURLOPT_POSTQUOTE.3 b/docs/libcurl/opts/CURLOPT_POSTQUOTE.3
index 2bb557e9..75e2c62a 100644
--- a/docs/libcurl/opts/CURLOPT_POSTQUOTE.3
+++ b/docs/libcurl/opts/CURLOPT_POSTQUOTE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_POSTQUOTE 3 "May 05, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_POSTQUOTE 3 "May 05, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_POSTQUOTE \- (S)FTP commands to run after the transfer
diff --git a/docs/libcurl/opts/CURLOPT_POSTREDIR.3 b/docs/libcurl/opts/CURLOPT_POSTREDIR.3
index 2455e677..7be09530 100644
--- a/docs/libcurl/opts/CURLOPT_POSTREDIR.3
+++ b/docs/libcurl/opts/CURLOPT_POSTREDIR.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_POSTREDIR 3 "February 03, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_POSTREDIR 3 "February 03, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_POSTREDIR \- how to act on a HTTP POST redirect
diff --git a/docs/libcurl/opts/CURLOPT_PREQUOTE.3 b/docs/libcurl/opts/CURLOPT_PREQUOTE.3
index 22da38ae..ac1cadcc 100644
--- a/docs/libcurl/opts/CURLOPT_PREQUOTE.3
+++ b/docs/libcurl/opts/CURLOPT_PREQUOTE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PREQUOTE 3 "June 18, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PREQUOTE 3 "June 18, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PREQUOTE \- commands to run before an FTP transfer
diff --git a/docs/libcurl/opts/CURLOPT_PRE_PROXY.3 b/docs/libcurl/opts/CURLOPT_PRE_PROXY.3
index 83329aeb..287dcf35 100644
--- a/docs/libcurl/opts/CURLOPT_PRE_PROXY.3
+++ b/docs/libcurl/opts/CURLOPT_PRE_PROXY.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PRE_PROXY 3 "May 15, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PRE_PROXY 3 "May 15, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PRE_PROXY \- set pre-proxy to use
diff --git a/docs/libcurl/opts/CURLOPT_PRIVATE.3 b/docs/libcurl/opts/CURLOPT_PRIVATE.3
index 5acf9936..5a31e3d3 100644
--- a/docs/libcurl/opts/CURLOPT_PRIVATE.3
+++ b/docs/libcurl/opts/CURLOPT_PRIVATE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PRIVATE 3 "December 08, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PRIVATE 3 "December 08, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PRIVATE \- store a private pointer
diff --git a/docs/libcurl/opts/CURLOPT_PROGRESSDATA.3 b/docs/libcurl/opts/CURLOPT_PROGRESSDATA.3
index ae01402c..12fba233 100644
--- a/docs/libcurl/opts/CURLOPT_PROGRESSDATA.3
+++ b/docs/libcurl/opts/CURLOPT_PROGRESSDATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROGRESSDATA 3 "February 03, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PROGRESSDATA 3 "February 03, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROGRESSDATA \- custom pointer passed to the progress callback
diff --git a/docs/libcurl/opts/CURLOPT_PROGRESSFUNCTION.3 b/docs/libcurl/opts/CURLOPT_PROGRESSFUNCTION.3
index 85571170..2b38fada 100644
--- a/docs/libcurl/opts/CURLOPT_PROGRESSFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_PROGRESSFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROGRESSFUNCTION 3 "February 03, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PROGRESSFUNCTION 3 "February 03, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROGRESSFUNCTION \- callback to progress meter function
diff --git a/docs/libcurl/opts/CURLOPT_PROTOCOLS.3 b/docs/libcurl/opts/CURLOPT_PROTOCOLS.3
index 02febae4..8bf93a6c 100644
--- a/docs/libcurl/opts/CURLOPT_PROTOCOLS.3
+++ b/docs/libcurl/opts/CURLOPT_PROTOCOLS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROTOCOLS 3 "February 03, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PROTOCOLS 3 "February 03, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROTOCOLS \- set allowed protocols
diff --git a/docs/libcurl/opts/CURLOPT_PROXY.3 b/docs/libcurl/opts/CURLOPT_PROXY.3
index 687c88db..6d125335 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY 3 "September 24, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY 3 "September 24, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY \- set proxy to use
diff --git a/docs/libcurl/opts/CURLOPT_PROXYAUTH.3 b/docs/libcurl/opts/CURLOPT_PROXYAUTH.3
index ad8d9af9..e626191d 100644
--- a/docs/libcurl/opts/CURLOPT_PROXYAUTH.3
+++ b/docs/libcurl/opts/CURLOPT_PROXYAUTH.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXYAUTH 3 "May 30, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXYAUTH 3 "May 30, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXYAUTH \- set HTTP proxy authentication methods to try
diff --git a/docs/libcurl/opts/CURLOPT_PROXYHEADER.3 b/docs/libcurl/opts/CURLOPT_PROXYHEADER.3
index e69e5946..4cf770be 100644
--- a/docs/libcurl/opts/CURLOPT_PROXYHEADER.3
+++ b/docs/libcurl/opts/CURLOPT_PROXYHEADER.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXYHEADER 3 "May 30, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXYHEADER 3 "May 30, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXYHEADER \- custom HTTP headers to pass to proxy
diff --git a/docs/libcurl/opts/CURLOPT_PROXYPASSWORD.3 b/docs/libcurl/opts/CURLOPT_PROXYPASSWORD.3
index 7750d7ce..456bac35 100644
--- a/docs/libcurl/opts/CURLOPT_PROXYPASSWORD.3
+++ b/docs/libcurl/opts/CURLOPT_PROXYPASSWORD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXYPASSWORD 3 "May 30, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXYPASSWORD 3 "May 30, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXYPASSWORD \- password to use with proxy authentication
diff --git a/docs/libcurl/opts/CURLOPT_PROXYPORT.3 b/docs/libcurl/opts/CURLOPT_PROXYPORT.3
index 15088c57..cfd6610e 100644
--- a/docs/libcurl/opts/CURLOPT_PROXYPORT.3
+++ b/docs/libcurl/opts/CURLOPT_PROXYPORT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXYPORT 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXYPORT 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXYPORT \- port number the proxy listens on
diff --git a/docs/libcurl/opts/CURLOPT_PROXYTYPE.3 b/docs/libcurl/opts/CURLOPT_PROXYTYPE.3
index 9a7e7dab..33aa01ca 100644
--- a/docs/libcurl/opts/CURLOPT_PROXYTYPE.3
+++ b/docs/libcurl/opts/CURLOPT_PROXYTYPE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXYTYPE 3 "May 30, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXYTYPE 3 "May 30, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXYTYPE \- proxy protocol type
diff --git a/docs/libcurl/opts/CURLOPT_PROXYUSERNAME.3 b/docs/libcurl/opts/CURLOPT_PROXYUSERNAME.3
index d451553c..a8ae3b41 100644
--- a/docs/libcurl/opts/CURLOPT_PROXYUSERNAME.3
+++ b/docs/libcurl/opts/CURLOPT_PROXYUSERNAME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXYUSERNAME 3 "May 30, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXYUSERNAME 3 "May 30, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXYUSERNAME \- user name to use for proxy authentication
diff --git a/docs/libcurl/opts/CURLOPT_PROXYUSERPWD.3 b/docs/libcurl/opts/CURLOPT_PROXYUSERPWD.3
index e610aa84..26de3265 100644
--- a/docs/libcurl/opts/CURLOPT_PROXYUSERPWD.3
+++ b/docs/libcurl/opts/CURLOPT_PROXYUSERPWD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXYUSERPWD 3 "May 30, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXYUSERPWD 3 "May 30, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXYUSERPWD \- user name and password to use for proxy authentication
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_CAINFO.3 b/docs/libcurl/opts/CURLOPT_PROXY_CAINFO.3
index 4bb98ded..f19e2e15 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_CAINFO.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_CAINFO.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_CAINFO 3 "May 30, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_CAINFO 3 "May 30, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_CAINFO \- path to proxy Certificate Authority (CA) bundle
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_CAPATH.3 b/docs/libcurl/opts/CURLOPT_PROXY_CAPATH.3
index 6753c176..d8dc42b5 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_CAPATH.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_CAPATH.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_CAPATH 3 "September 10, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_CAPATH 3 "September 10, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_CAPATH \- specify directory holding proxy CA certificates
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_CRLFILE.3 b/docs/libcurl/opts/CURLOPT_PROXY_CRLFILE.3
index a8877443..76a44e1e 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_CRLFILE.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_CRLFILE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_CRLFILE 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_CRLFILE 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_CRLFILE \- specify a proxy Certificate Revocation List file
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_KEYPASSWD.3 b/docs/libcurl/opts/CURLOPT_PROXY_KEYPASSWD.3
index 36b58d1b..885016e3 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_KEYPASSWD.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_KEYPASSWD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_KEYPASSWD 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_KEYPASSWD 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_KEYPASSWD \- set passphrase to proxy private key
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_PINNEDPUBLICKEY.3 b/docs/libcurl/opts/CURLOPT_PROXY_PINNEDPUBLICKEY.3
index dc8b0006..bbbb06e6 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_PINNEDPUBLICKEY.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_PINNEDPUBLICKEY.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_PINNEDPUBLICKEY 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_PINNEDPUBLICKEY 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_PINNEDPUBLICKEY \- set pinned public key for https proxy
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_SERVICE_NAME.3 b/docs/libcurl/opts/CURLOPT_PROXY_SERVICE_NAME.3
index 63033451..102df165 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_SERVICE_NAME.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_SERVICE_NAME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_SERVICE_NAME 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_SERVICE_NAME 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_SERVICE_NAME \- proxy authentication service name
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_SSLCERT.3 b/docs/libcurl/opts/CURLOPT_PROXY_SSLCERT.3
index eecfee46..67936bf6 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_SSLCERT.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_SSLCERT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_SSLCERT 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_SSLCERT 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_SSLCERT \- set SSL proxy client certificate
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_SSLCERTTYPE.3 b/docs/libcurl/opts/CURLOPT_PROXY_SSLCERTTYPE.3
index 8cd10494..2e85d629 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_SSLCERTTYPE.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_SSLCERTTYPE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_SSLCERTTYPE 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_SSLCERTTYPE 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_SSLCERTTYPE \- specify type of the proxy client SSL certificate
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_SSLKEY.3 b/docs/libcurl/opts/CURLOPT_PROXY_SSLKEY.3
index 502338ab..3c6cbb4a 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_SSLKEY.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_SSLKEY.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_SSLKEY 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_SSLKEY 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_SSLKEY \- specify private keyfile for TLS and SSL proxy client cert
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_SSLKEYTYPE.3 b/docs/libcurl/opts/CURLOPT_PROXY_SSLKEYTYPE.3
index 3eba850e..673b29dd 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_SSLKEYTYPE.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_SSLKEYTYPE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_SSLKEYTYPE 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_SSLKEYTYPE 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_SSLKEYTYPE \- set type of the proxy private key file
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_SSLVERSION.3 b/docs/libcurl/opts/CURLOPT_PROXY_SSLVERSION.3
index 4b170266..5c34eef9 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_SSLVERSION.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_SSLVERSION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_SSLVERSION 3 "January 10, 2018" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_SSLVERSION 3 "January 10, 2018" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_SSLVERSION \- set preferred proxy TLS/SSL version
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_SSL_CIPHER_LIST.3 b/docs/libcurl/opts/CURLOPT_PROXY_SSL_CIPHER_LIST.3
index d9dd67a1..48b7b65d 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_SSL_CIPHER_LIST.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_SSL_CIPHER_LIST.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_SSL_CIPHER_LIST 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_SSL_CIPHER_LIST 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_SSL_CIPHER_LIST \- specify ciphers to use for proxy TLS
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_SSL_OPTIONS.3 b/docs/libcurl/opts/CURLOPT_PROXY_SSL_OPTIONS.3
index 35e87b69..3d9de261 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_SSL_OPTIONS.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_SSL_OPTIONS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_SSL_OPTIONS 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_SSL_OPTIONS 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_SSL_OPTIONS \- set proxy SSL behavior options
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_SSL_VERIFYHOST.3 b/docs/libcurl/opts/CURLOPT_PROXY_SSL_VERIFYHOST.3
index 635c1fac..476438c0 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_SSL_VERIFYHOST.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_SSL_VERIFYHOST.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_SSL_VERIFYHOST 3 "December 16, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_SSL_VERIFYHOST 3 "December 16, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_SSL_VERIFYHOST \- verify the proxy certificate's name against host
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_SSL_VERIFYPEER.3 b/docs/libcurl/opts/CURLOPT_PROXY_SSL_VERIFYPEER.3
index faeb5447..82fae8b1 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_SSL_VERIFYPEER.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_SSL_VERIFYPEER.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_SSL_VERIFYPEER 3 "December 16, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_SSL_VERIFYPEER 3 "December 16, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_SSL_VERIFYPEER \- verify the proxy's SSL certificate
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_PASSWORD.3 b/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_PASSWORD.3
index 41283f42..711224d8 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_PASSWORD.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_PASSWORD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_TLSAUTH_PASSWORD 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_TLSAUTH_PASSWORD 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_TLSAUTH_PASSWORD \- password to use for proxy TLS authentication
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_TYPE.3 b/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_TYPE.3
index 3a88bbfe..d1bd6dbf 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_TYPE.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_TYPE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_TLSAUTH_TYPE 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_TLSAUTH_TYPE 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_TLSAUTH_TYPE \- set proxy TLS authentication methods
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_USERNAME.3 b/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_USERNAME.3
index f1c14b23..2c20d078 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_USERNAME.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_USERNAME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_TLSAUTH_USERNAME 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_TLSAUTH_USERNAME 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_TLSAUTH_USERNAME \- user name to use for proxy TLS authentication
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_TRANSFER_MODE.3 b/docs/libcurl/opts/CURLOPT_PROXY_TRANSFER_MODE.3
index a7d379fd..2e4435c5 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_TRANSFER_MODE.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_TRANSFER_MODE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_TRANSFER_MODE 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_TRANSFER_MODE 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_TRANSFER_MODE \- append FTP transfer mode to URL for proxy
diff --git a/docs/libcurl/opts/CURLOPT_PUT.3 b/docs/libcurl/opts/CURLOPT_PUT.3
index 8129f0f9..36525ed6 100644
--- a/docs/libcurl/opts/CURLOPT_PUT.3
+++ b/docs/libcurl/opts/CURLOPT_PUT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PUT 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_PUT 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PUT \- make a HTTP PUT request
diff --git a/docs/libcurl/opts/CURLOPT_QUOTE.3 b/docs/libcurl/opts/CURLOPT_QUOTE.3
index 5fc87747..30bd461f 100644
--- a/docs/libcurl/opts/CURLOPT_QUOTE.3
+++ b/docs/libcurl/opts/CURLOPT_QUOTE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_QUOTE 3 "May 05, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_QUOTE 3 "May 05, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_QUOTE \- (S)FTP commands to run before transfer
diff --git a/docs/libcurl/opts/CURLOPT_RANDOM_FILE.3 b/docs/libcurl/opts/CURLOPT_RANDOM_FILE.3
index 3eed82a5..de08059c 100644
--- a/docs/libcurl/opts/CURLOPT_RANDOM_FILE.3
+++ b/docs/libcurl/opts/CURLOPT_RANDOM_FILE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RANDOM_FILE 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_RANDOM_FILE 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_RANDOM_FILE \- specify a source for random data
diff --git a/docs/libcurl/opts/CURLOPT_RANGE.3 b/docs/libcurl/opts/CURLOPT_RANGE.3
index 4940bb13..1cdb170c 100644
--- a/docs/libcurl/opts/CURLOPT_RANGE.3
+++ b/docs/libcurl/opts/CURLOPT_RANGE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RANGE 3 "December 21, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_RANGE 3 "December 21, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_RANGE \- set byte range to request
diff --git a/docs/libcurl/opts/CURLOPT_READDATA.3 b/docs/libcurl/opts/CURLOPT_READDATA.3
index ef966893..5e26ffb1 100644
--- a/docs/libcurl/opts/CURLOPT_READDATA.3
+++ b/docs/libcurl/opts/CURLOPT_READDATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_READDATA 3 "May 01, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_READDATA 3 "May 01, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_READDATA \- custom pointer passed to the read callback
diff --git a/docs/libcurl/opts/CURLOPT_READFUNCTION.3 b/docs/libcurl/opts/CURLOPT_READFUNCTION.3
index 618a2050..85a87410 100644
--- a/docs/libcurl/opts/CURLOPT_READFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_READFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_READFUNCTION 3 "December 13, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_READFUNCTION 3 "December 13, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_READFUNCTION \- read callback for data uploads
diff --git a/docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS.3 b/docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS.3
index 3e85f0b1..ed4ba3bb 100644
--- a/docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS.3
+++ b/docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_REDIR_PROTOCOLS 3 "September 21, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_REDIR_PROTOCOLS 3 "September 21, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_REDIR_PROTOCOLS \- set protocols allowed to redirect to
diff --git a/docs/libcurl/opts/CURLOPT_REFERER.3 b/docs/libcurl/opts/CURLOPT_REFERER.3
index 80dd3b0c..d056aaec 100644
--- a/docs/libcurl/opts/CURLOPT_REFERER.3
+++ b/docs/libcurl/opts/CURLOPT_REFERER.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_REFERER 3 "December 21, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_REFERER 3 "December 21, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_REFERER \- set the HTTP referer header
diff --git a/docs/libcurl/opts/CURLOPT_REQUEST_TARGET.3 b/docs/libcurl/opts/CURLOPT_REQUEST_TARGET.3
index 8ad9de86..4cfe9f22 100644
--- a/docs/libcurl/opts/CURLOPT_REQUEST_TARGET.3
+++ b/docs/libcurl/opts/CURLOPT_REQUEST_TARGET.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_REQUEST_TARGET 3 "June 21, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_REQUEST_TARGET 3 "June 21, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_REQUEST_TARGET \- specify an alternative target for this request
diff --git a/docs/libcurl/opts/CURLOPT_RESOLVE.3 b/docs/libcurl/opts/CURLOPT_RESOLVE.3
index d1be30ac..59d3c8cd 100644
--- a/docs/libcurl/opts/CURLOPT_RESOLVE.3
+++ b/docs/libcurl/opts/CURLOPT_RESOLVE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RESOLVE 3 "November 17, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_RESOLVE 3 "January 30, 2018" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_RESOLVE \- provide custom host name to IP address resolves
@@ -38,10 +38,12 @@ list of \fBstruct curl_slist\fP structs properly filled in. Use
to clean up an entire list.
Each single name resolve string should be written using the format
-HOST:PORT:ADDRESS where HOST is the name libcurl will try to resolve, PORT is
-the port number of the service where libcurl wants to connect to the HOST and
-ADDRESS is the numerical IP address. If libcurl is built to support IPv6,
-ADDRESS can of course be either IPv4 or IPv6 style addressing.
+HOST:PORT:ADDRESS[,ADDRESS]... where HOST is the name libcurl will try
+to resolve, PORT is the port number of the service where libcurl wants
+to connect to the HOST and ADDRESS is one or more numerical IP
+addresses. If you specify multiple ip addresses they need to be
+separated by comma. If libcurl is built to support IPv6, each of the
+ADDRESS entries can of course be either IPv4 or IPv6 style addressing.
This option effectively pre-populates the DNS cache with entries for the
host+port pair so redirects and everything that operations against the
@@ -58,6 +60,8 @@ by including a string in the linked list that uses the format
and port number must exactly match what was already added previously.
Support for providing the ADDRESS within [brackets] was added in 7.57.0.
+
+Support for providing multiple IP addresses per entry was added in 7.59.0.
.SH DEFAULT
NULL
.SH PROTOCOLS
diff --git a/docs/libcurl/opts/CURLOPT_RESOLVER_START_DATA.3 b/docs/libcurl/opts/CURLOPT_RESOLVER_START_DATA.3
new file mode 100644
index 00000000..e8dd3cf3
--- /dev/null
+++ b/docs/libcurl/opts/CURLOPT_RESOLVER_START_DATA.3
@@ -0,0 +1,64 @@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
+.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" *
+.\" * This software is licensed as described in the file COPYING, which
+.\" * you should have received as part of this distribution. The terms
+.\" * are also available at https://curl.haxx.se/docs/copyright.html.
+.\" *
+.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+.\" * copies of the Software, and permit persons to whom the Software is
+.\" * furnished to do so, under the terms of the COPYING file.
+.\" *
+.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+.\" * KIND, either express or implied.
+.\" *
+.\" **************************************************************************
+.\"
+.TH CURLOPT_RESOLVER_START_DATA 3 "February 14, 2018" "libcurl 7.59.0" "curl_easy_setopt options"
+
+.SH NAME
+CURLOPT_RESOLVER_START_DATA \- custom pointer passed to the resolver start callback
+.SH SYNOPSIS
+#include <curl/curl.h>
+
+CURLcode curl_easy_setopt(CURL *handle, CURLOPT_RESOLVER_START_DATA, void *pointer);
+.SH DESCRIPTION
+Pass a \fIpointer\fP that will be untouched by libcurl and passed as the third
+argument in the resolver start callback set with
+\fICURLOPT_RESOLVER_START_FUNCTION(3)\fP.
+.SH DEFAULT
+NULL
+.SH PROTOCOLS
+All
+.SH EXAMPLE
+.nf
+static int resolver_start_cb(void *resolver_state, void *reserved,
+ void *userdata)
+{
+ (void)reserved;
+ printf("Received resolver_state=%p userdata=%p\\n",
+ resolver_state, userdata);
+ return 0;
+}
+
+CURL *curl = curl_easy_init();
+if(curl) {
+ curl_easy_setopt(curl, CURLOPT_RESOLVER_START_FUNCTION, resolver_start_cb);
+ curl_easy_setopt(curl, CURLOPT_RESOLVER_START_DATA, curl);
+ curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
+ curl_easy_perform(curl);
+ curl_easy_cleanup(curl);
+}
+.fi
+.SH AVAILABILITY
+Added in 7.59.0
+.SH RETURN VALUE
+Returns CURLE_OK
+.SH "SEE ALSO"
+.BR CURLOPT_RESOLVER_START_FUNCTION "(3) "
diff --git a/docs/libcurl/opts/CURLOPT_RESOLVER_START_FUNCTION.3 b/docs/libcurl/opts/CURLOPT_RESOLVER_START_FUNCTION.3
new file mode 100644
index 00000000..468e2169
--- /dev/null
+++ b/docs/libcurl/opts/CURLOPT_RESOLVER_START_FUNCTION.3
@@ -0,0 +1,84 @@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
+.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" *
+.\" * This software is licensed as described in the file COPYING, which
+.\" * you should have received as part of this distribution. The terms
+.\" * are also available at https://curl.haxx.se/docs/copyright.html.
+.\" *
+.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+.\" * copies of the Software, and permit persons to whom the Software is
+.\" * furnished to do so, under the terms of the COPYING file.
+.\" *
+.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+.\" * KIND, either express or implied.
+.\" *
+.\" **************************************************************************
+.\"
+.TH CURLOPT_RESOLVER_START_FUNCTION 3 "February 14, 2018" "libcurl 7.59.0" "curl_easy_setopt options"
+
+.SH NAME
+CURLOPT_RESOLVER_START_FUNCTION \- set callback to be called before a new resolve request is started
+.SH SYNOPSIS
+.nf
+#include <curl/curl.h>
+
+int resolver_start_cb(void *resolver_state, void *reserved, void *userdata);
+
+CURLcode curl_easy_setopt(CURL *handle,
+ CURLOPT_RESOLVER_START_FUNCTION,
+ resolver_start_cb);
+.SH DESCRIPTION
+Pass a pointer to your callback function, which should match the prototype
+shown above.
+
+This callback function gets called by libcurl every time before a new resolve
+request is started.
+
+\fIresolver_state\fP points to a backend-specific resolver state. Currently
+only the ares resolver backend has a resolver state. It can be used to set up
+any desired option on the ares channel before it's used, for example setting up
+socket callback options.
+
+\fIreserved\fP is reserved.
+
+\fIuserdata\fP is the user pointer set with the
+\fICURLOPT_RESOLVER_START_DATA(3)\fP option.
+
+The callback must return 0 on success. Returning a non-zero value will cause
+the resolve to fail.
+.SH DEFAULT
+NULL (No callback)
+.SH PROTOCOLS
+All
+.SH EXAMPLE
+.nf
+static int resolver_start_cb(void *resolver_state, void *reserved,
+ void *userdata)
+{
+ (void)reserved;
+ printf("Received resolver_state=%p userdata=%p\\n",
+ resolver_state, userdata);
+ return 0;
+}
+
+CURL *curl = curl_easy_init();
+if(curl) {
+ curl_easy_setopt(curl, CURLOPT_RESOLVER_START_FUNCTION, resolver_start_cb);
+ curl_easy_setopt(curl, CURLOPT_RESOLVER_START_DATA, curl);
+ curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
+ curl_easy_perform(curl);
+ curl_easy_cleanup(curl);
+}
+.fi
+.SH AVAILABILITY
+Added in 7.59.0
+.SH RETURN VALUE
+Returns CURLE_OK
+.SH "SEE ALSO"
+.BR CURLOPT_RESOLVER_START_DATA "(3) "
diff --git a/docs/libcurl/opts/CURLOPT_RESUME_FROM.3 b/docs/libcurl/opts/CURLOPT_RESUME_FROM.3
index 6c0355ec..076a80ad 100644
--- a/docs/libcurl/opts/CURLOPT_RESUME_FROM.3
+++ b/docs/libcurl/opts/CURLOPT_RESUME_FROM.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RESUME_FROM 3 "February 03, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_RESUME_FROM 3 "February 03, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_RESUME_FROM \- set a point to resume transfer from
diff --git a/docs/libcurl/opts/CURLOPT_RESUME_FROM_LARGE.3 b/docs/libcurl/opts/CURLOPT_RESUME_FROM_LARGE.3
index b71cbb9e..8140fe66 100644
--- a/docs/libcurl/opts/CURLOPT_RESUME_FROM_LARGE.3
+++ b/docs/libcurl/opts/CURLOPT_RESUME_FROM_LARGE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RESUME_FROM_LARGE 3 "February 03, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_RESUME_FROM_LARGE 3 "February 03, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_RESUME_FROM_LARGE \- set a point to resume transfer from
diff --git a/docs/libcurl/opts/CURLOPT_RTSP_CLIENT_CSEQ.3 b/docs/libcurl/opts/CURLOPT_RTSP_CLIENT_CSEQ.3
index 51eff783..36727037 100644
--- a/docs/libcurl/opts/CURLOPT_RTSP_CLIENT_CSEQ.3
+++ b/docs/libcurl/opts/CURLOPT_RTSP_CLIENT_CSEQ.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RTSP_CLIENT_CSEQ 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_RTSP_CLIENT_CSEQ 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_RTSP_CLIENT_CSEQ \- set the RTSP client CSEQ number
diff --git a/docs/libcurl/opts/CURLOPT_RTSP_REQUEST.3 b/docs/libcurl/opts/CURLOPT_RTSP_REQUEST.3
index f0aa924f..aeeeea07 100644
--- a/docs/libcurl/opts/CURLOPT_RTSP_REQUEST.3
+++ b/docs/libcurl/opts/CURLOPT_RTSP_REQUEST.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RTSP_REQUEST 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_RTSP_REQUEST 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_RTSP_REQUEST \- specify RTSP request
diff --git a/docs/libcurl/opts/CURLOPT_RTSP_SERVER_CSEQ.3 b/docs/libcurl/opts/CURLOPT_RTSP_SERVER_CSEQ.3
index f0ec2a99..1d587112 100644
--- a/docs/libcurl/opts/CURLOPT_RTSP_SERVER_CSEQ.3
+++ b/docs/libcurl/opts/CURLOPT_RTSP_SERVER_CSEQ.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RTSP_SERVER_CSEQ 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_RTSP_SERVER_CSEQ 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_RTSP_SERVER_CSEQ \- set the RTSP server CSEQ number
diff --git a/docs/libcurl/opts/CURLOPT_RTSP_SESSION_ID.3 b/docs/libcurl/opts/CURLOPT_RTSP_SESSION_ID.3
index dd41d436..cd31b6e5 100644
--- a/docs/libcurl/opts/CURLOPT_RTSP_SESSION_ID.3
+++ b/docs/libcurl/opts/CURLOPT_RTSP_SESSION_ID.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RTSP_SESSION_ID 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_RTSP_SESSION_ID 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_RTSP_SESSION_ID \- set RTSP session ID
diff --git a/docs/libcurl/opts/CURLOPT_RTSP_STREAM_URI.3 b/docs/libcurl/opts/CURLOPT_RTSP_STREAM_URI.3
index 8a05150c..d7168f14 100644
--- a/docs/libcurl/opts/CURLOPT_RTSP_STREAM_URI.3
+++ b/docs/libcurl/opts/CURLOPT_RTSP_STREAM_URI.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RTSP_STREAM_URI 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_RTSP_STREAM_URI 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_RTSP_STREAM_URI \- set RTSP stream URI
diff --git a/docs/libcurl/opts/CURLOPT_RTSP_TRANSPORT.3 b/docs/libcurl/opts/CURLOPT_RTSP_TRANSPORT.3
index 2d26db57..74fde2f2 100644
--- a/docs/libcurl/opts/CURLOPT_RTSP_TRANSPORT.3
+++ b/docs/libcurl/opts/CURLOPT_RTSP_TRANSPORT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RTSP_TRANSPORT 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_RTSP_TRANSPORT 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_RTSP_TRANSPORT \- set RTSP Transport: header
diff --git a/docs/libcurl/opts/CURLOPT_SASL_IR.3 b/docs/libcurl/opts/CURLOPT_SASL_IR.3
index dd91f4ce..76a669fe 100644
--- a/docs/libcurl/opts/CURLOPT_SASL_IR.3
+++ b/docs/libcurl/opts/CURLOPT_SASL_IR.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SASL_IR 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SASL_IR 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SASL_IR \- enable sending initial response in first packet
diff --git a/docs/libcurl/opts/CURLOPT_SEEKDATA.3 b/docs/libcurl/opts/CURLOPT_SEEKDATA.3
index a42aabb6..d1ce5003 100644
--- a/docs/libcurl/opts/CURLOPT_SEEKDATA.3
+++ b/docs/libcurl/opts/CURLOPT_SEEKDATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SEEKDATA 3 "August 12, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SEEKDATA 3 "August 12, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SEEKDATA \- custom pointer passed to the seek callback
diff --git a/docs/libcurl/opts/CURLOPT_SEEKFUNCTION.3 b/docs/libcurl/opts/CURLOPT_SEEKFUNCTION.3
index 6d90bace..653403c1 100644
--- a/docs/libcurl/opts/CURLOPT_SEEKFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_SEEKFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SEEKFUNCTION 3 "August 12, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SEEKFUNCTION 3 "August 12, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SEEKFUNCTION \- user callback for seeking in input stream
diff --git a/docs/libcurl/opts/CURLOPT_SERVICE_NAME.3 b/docs/libcurl/opts/CURLOPT_SERVICE_NAME.3
index 2094d982..de2f2e1b 100644
--- a/docs/libcurl/opts/CURLOPT_SERVICE_NAME.3
+++ b/docs/libcurl/opts/CURLOPT_SERVICE_NAME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SERVICE_NAME 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SERVICE_NAME 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SERVICE_NAME \- authentication service name
diff --git a/docs/libcurl/opts/CURLOPT_SHARE.3 b/docs/libcurl/opts/CURLOPT_SHARE.3
index 81914456..d326b4ad 100644
--- a/docs/libcurl/opts/CURLOPT_SHARE.3
+++ b/docs/libcurl/opts/CURLOPT_SHARE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SHARE 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SHARE 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SHARE \- specify share handle to use
diff --git a/docs/libcurl/opts/CURLOPT_SOCKOPTDATA.3 b/docs/libcurl/opts/CURLOPT_SOCKOPTDATA.3
index 7d00ab48..0dbe8b91 100644
--- a/docs/libcurl/opts/CURLOPT_SOCKOPTDATA.3
+++ b/docs/libcurl/opts/CURLOPT_SOCKOPTDATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SOCKOPTDATA 3 "May 15, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SOCKOPTDATA 3 "May 15, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SOCKOPTDATA \- custom pointer to pass to sockopt callback
diff --git a/docs/libcurl/opts/CURLOPT_SOCKOPTFUNCTION.3 b/docs/libcurl/opts/CURLOPT_SOCKOPTFUNCTION.3
index 43f3b7ea..effb19da 100644
--- a/docs/libcurl/opts/CURLOPT_SOCKOPTFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_SOCKOPTFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SOCKOPTFUNCTION 3 "May 15, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SOCKOPTFUNCTION 3 "May 15, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SOCKOPTFUNCTION \- set callback for setting socket options
diff --git a/docs/libcurl/opts/CURLOPT_SOCKS5_AUTH.3 b/docs/libcurl/opts/CURLOPT_SOCKS5_AUTH.3
index 114d847e..681d9e5e 100644
--- a/docs/libcurl/opts/CURLOPT_SOCKS5_AUTH.3
+++ b/docs/libcurl/opts/CURLOPT_SOCKS5_AUTH.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SOCKS5_AUTH 3 "April 27, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SOCKS5_AUTH 3 "April 27, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SOCKS5_AUTH \- set allowed methods for SOCKS5 proxy authentication
diff --git a/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_NEC.3 b/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_NEC.3
index 015869d1..448146a7 100644
--- a/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_NEC.3
+++ b/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_NEC.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SOCKS5_GSSAPI_NEC 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SOCKS5_GSSAPI_NEC 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SOCKS5_GSSAPI_NEC \- set socks proxy gssapi negotiation protection
diff --git a/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_SERVICE.3 b/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_SERVICE.3
index 1e2cd2c4..5ea52dbb 100644
--- a/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_SERVICE.3
+++ b/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_SERVICE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SOCKS5_GSSAPI_SERVICE 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SOCKS5_GSSAPI_SERVICE 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SOCKS5_GSSAPI_SERVICE \- SOCKS5 proxy authentication service name
diff --git a/docs/libcurl/opts/CURLOPT_SSH_AUTH_TYPES.3 b/docs/libcurl/opts/CURLOPT_SSH_AUTH_TYPES.3
index 81b7b760..c6b66774 100644
--- a/docs/libcurl/opts/CURLOPT_SSH_AUTH_TYPES.3
+++ b/docs/libcurl/opts/CURLOPT_SSH_AUTH_TYPES.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSH_AUTH_TYPES 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SSH_AUTH_TYPES 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSH_AUTH_TYPES \- set desired auth types for SFTP and SCP
diff --git a/docs/libcurl/opts/CURLOPT_SSH_COMPRESSION.3 b/docs/libcurl/opts/CURLOPT_SSH_COMPRESSION.3
index d69023fd..196211d7 100644
--- a/docs/libcurl/opts/CURLOPT_SSH_COMPRESSION.3
+++ b/docs/libcurl/opts/CURLOPT_SSH_COMPRESSION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSH_COMPRESSION 3 "August 17, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SSH_COMPRESSION 3 "August 17, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSH_COMPRESSION \- enables automatic decompression of HTTP downloads
diff --git a/docs/libcurl/opts/CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.3 b/docs/libcurl/opts/CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.3
index 8b12f0ff..c44fb490 100644
--- a/docs/libcurl/opts/CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.3
+++ b/docs/libcurl/opts/CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 \- checksum of SSH server public key
diff --git a/docs/libcurl/opts/CURLOPT_SSH_KEYDATA.3 b/docs/libcurl/opts/CURLOPT_SSH_KEYDATA.3
index 12b8e3de..a68ff1ed 100644
--- a/docs/libcurl/opts/CURLOPT_SSH_KEYDATA.3
+++ b/docs/libcurl/opts/CURLOPT_SSH_KEYDATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSH_KEYDATA 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SSH_KEYDATA 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSH_KEYDATA \- pointer to pass to the SSH key callback
diff --git a/docs/libcurl/opts/CURLOPT_SSH_KEYFUNCTION.3 b/docs/libcurl/opts/CURLOPT_SSH_KEYFUNCTION.3
index fbfacb87..67ae3645 100644
--- a/docs/libcurl/opts/CURLOPT_SSH_KEYFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_SSH_KEYFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSH_KEYFUNCTION 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SSH_KEYFUNCTION 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSH_KEYFUNCTION \- callback for known host matching logic
diff --git a/docs/libcurl/opts/CURLOPT_SSH_KNOWNHOSTS.3 b/docs/libcurl/opts/CURLOPT_SSH_KNOWNHOSTS.3
index 48a9297b..c1478f99 100644
--- a/docs/libcurl/opts/CURLOPT_SSH_KNOWNHOSTS.3
+++ b/docs/libcurl/opts/CURLOPT_SSH_KNOWNHOSTS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSH_KNOWNHOSTS 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SSH_KNOWNHOSTS 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSH_KNOWNHOSTS \- file name holding the SSH known hosts
diff --git a/docs/libcurl/opts/CURLOPT_SSH_PRIVATE_KEYFILE.3 b/docs/libcurl/opts/CURLOPT_SSH_PRIVATE_KEYFILE.3
index 45001409..a5ced5ee 100644
--- a/docs/libcurl/opts/CURLOPT_SSH_PRIVATE_KEYFILE.3
+++ b/docs/libcurl/opts/CURLOPT_SSH_PRIVATE_KEYFILE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSH_PRIVATE_KEYFILE 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SSH_PRIVATE_KEYFILE 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSH_PRIVATE_KEYFILE \- set private key file for SSH auth
diff --git a/docs/libcurl/opts/CURLOPT_SSH_PUBLIC_KEYFILE.3 b/docs/libcurl/opts/CURLOPT_SSH_PUBLIC_KEYFILE.3
index 0e298fd8..f9579655 100644
--- a/docs/libcurl/opts/CURLOPT_SSH_PUBLIC_KEYFILE.3
+++ b/docs/libcurl/opts/CURLOPT_SSH_PUBLIC_KEYFILE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSH_PUBLIC_KEYFILE 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SSH_PUBLIC_KEYFILE 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSH_PUBLIC_KEYFILE \- set public key file for SSH auth
diff --git a/docs/libcurl/opts/CURLOPT_SSLCERT.3 b/docs/libcurl/opts/CURLOPT_SSLCERT.3
index 4236cdee..c3d80968 100644
--- a/docs/libcurl/opts/CURLOPT_SSLCERT.3
+++ b/docs/libcurl/opts/CURLOPT_SSLCERT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSLCERT 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SSLCERT 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSLCERT \- set SSL client certificate
diff --git a/docs/libcurl/opts/CURLOPT_SSLCERTTYPE.3 b/docs/libcurl/opts/CURLOPT_SSLCERTTYPE.3
index c882d334..d99921e4 100644
--- a/docs/libcurl/opts/CURLOPT_SSLCERTTYPE.3
+++ b/docs/libcurl/opts/CURLOPT_SSLCERTTYPE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSLCERTTYPE 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SSLCERTTYPE 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSLCERTTYPE \- specify type of the client SSL certificate
diff --git a/docs/libcurl/opts/CURLOPT_SSLENGINE.3 b/docs/libcurl/opts/CURLOPT_SSLENGINE.3
index 4defaf13..267b63fc 100644
--- a/docs/libcurl/opts/CURLOPT_SSLENGINE.3
+++ b/docs/libcurl/opts/CURLOPT_SSLENGINE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSLENGINE 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SSLENGINE 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSLENGINE \- set SSL engine identifier
diff --git a/docs/libcurl/opts/CURLOPT_SSLENGINE_DEFAULT.3 b/docs/libcurl/opts/CURLOPT_SSLENGINE_DEFAULT.3
index 4de68b53..cd84614c 100644
--- a/docs/libcurl/opts/CURLOPT_SSLENGINE_DEFAULT.3
+++ b/docs/libcurl/opts/CURLOPT_SSLENGINE_DEFAULT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSLENGINE_DEFAULT 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SSLENGINE_DEFAULT 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSLENGINE_DEFAULT \- make SSL engine default
diff --git a/docs/libcurl/opts/CURLOPT_SSLKEY.3 b/docs/libcurl/opts/CURLOPT_SSLKEY.3
index 750ae10a..c91837ec 100644
--- a/docs/libcurl/opts/CURLOPT_SSLKEY.3
+++ b/docs/libcurl/opts/CURLOPT_SSLKEY.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSLKEY 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SSLKEY 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSLKEY \- specify private keyfile for TLS and SSL client cert
diff --git a/docs/libcurl/opts/CURLOPT_SSLKEYTYPE.3 b/docs/libcurl/opts/CURLOPT_SSLKEYTYPE.3
index 72402fb3..b7dcfe19 100644
--- a/docs/libcurl/opts/CURLOPT_SSLKEYTYPE.3
+++ b/docs/libcurl/opts/CURLOPT_SSLKEYTYPE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSLKEYTYPE 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SSLKEYTYPE 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSLKEYTYPE \- set type of the private key file
diff --git a/docs/libcurl/opts/CURLOPT_SSLVERSION.3 b/docs/libcurl/opts/CURLOPT_SSLVERSION.3
index c9f89a11..b92871ae 100644
--- a/docs/libcurl/opts/CURLOPT_SSLVERSION.3
+++ b/docs/libcurl/opts/CURLOPT_SSLVERSION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSLVERSION 3 "January 10, 2018" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SSLVERSION 3 "January 10, 2018" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSLVERSION \- set preferred TLS/SSL version
diff --git a/docs/libcurl/opts/CURLOPT_SSL_CIPHER_LIST.3 b/docs/libcurl/opts/CURLOPT_SSL_CIPHER_LIST.3
index 26ad3756..6666fae1 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_CIPHER_LIST.3
+++ b/docs/libcurl/opts/CURLOPT_SSL_CIPHER_LIST.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSL_CIPHER_LIST 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SSL_CIPHER_LIST 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSL_CIPHER_LIST \- specify ciphers to use for TLS
diff --git a/docs/libcurl/opts/CURLOPT_SSL_CTX_DATA.3 b/docs/libcurl/opts/CURLOPT_SSL_CTX_DATA.3
index 2eaaa39c..0a678b52 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_CTX_DATA.3
+++ b/docs/libcurl/opts/CURLOPT_SSL_CTX_DATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSL_CTX_DATA 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SSL_CTX_DATA 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSL_CTX_DATA \- custom pointer passed to ssl_ctx callback
diff --git a/docs/libcurl/opts/CURLOPT_SSL_CTX_FUNCTION.3 b/docs/libcurl/opts/CURLOPT_SSL_CTX_FUNCTION.3
index 821cf2d2..716a9b47 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_CTX_FUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_SSL_CTX_FUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSL_CTX_FUNCTION 3 "December 19, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SSL_CTX_FUNCTION 3 "December 19, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSL_CTX_FUNCTION \- SSL context callback for OpenSSL, wolfSSL/CyaSSL or mbedTLS
diff --git a/docs/libcurl/opts/CURLOPT_SSL_ENABLE_ALPN.3 b/docs/libcurl/opts/CURLOPT_SSL_ENABLE_ALPN.3
index 8cb1ae80..ddad4568 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_ENABLE_ALPN.3
+++ b/docs/libcurl/opts/CURLOPT_SSL_ENABLE_ALPN.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSL_ENABLE_ALPN 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SSL_ENABLE_ALPN 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSL_ENABLE_ALPN \- enable ALPN
diff --git a/docs/libcurl/opts/CURLOPT_SSL_ENABLE_NPN.3 b/docs/libcurl/opts/CURLOPT_SSL_ENABLE_NPN.3
index a71a2d2c..4f7aa29d 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_ENABLE_NPN.3
+++ b/docs/libcurl/opts/CURLOPT_SSL_ENABLE_NPN.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSL_ENABLE_NPN 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SSL_ENABLE_NPN 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSL_ENABLE_NPN \- enable NPN
diff --git a/docs/libcurl/opts/CURLOPT_SSL_FALSESTART.3 b/docs/libcurl/opts/CURLOPT_SSL_FALSESTART.3
index 817dfe10..dd11cd31 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_FALSESTART.3
+++ b/docs/libcurl/opts/CURLOPT_SSL_FALSESTART.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSL_FALSESTART 3 "May 15, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SSL_FALSESTART 3 "May 15, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSL_FALSESTART \- enable TLS false start
diff --git a/docs/libcurl/opts/CURLOPT_SSL_OPTIONS.3 b/docs/libcurl/opts/CURLOPT_SSL_OPTIONS.3
index 14ab34ec..30e30a30 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_OPTIONS.3
+++ b/docs/libcurl/opts/CURLOPT_SSL_OPTIONS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSL_OPTIONS 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SSL_OPTIONS 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSL_OPTIONS \- set SSL behavior options
diff --git a/docs/libcurl/opts/CURLOPT_SSL_SESSIONID_CACHE.3 b/docs/libcurl/opts/CURLOPT_SSL_SESSIONID_CACHE.3
index e48b84b1..89adb48e 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_SESSIONID_CACHE.3
+++ b/docs/libcurl/opts/CURLOPT_SSL_SESSIONID_CACHE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSL_SESSIONID_CACHE 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SSL_SESSIONID_CACHE 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSL_SESSIONID_CACHE \- enable/disable use of the SSL session-ID cache
diff --git a/docs/libcurl/opts/CURLOPT_SSL_VERIFYHOST.3 b/docs/libcurl/opts/CURLOPT_SSL_VERIFYHOST.3
index 8b08e5d3..07b28548 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_VERIFYHOST.3
+++ b/docs/libcurl/opts/CURLOPT_SSL_VERIFYHOST.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSL_VERIFYHOST 3 "February 02, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SSL_VERIFYHOST 3 "February 02, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSL_VERIFYHOST \- verify the certificate's name against host
diff --git a/docs/libcurl/opts/CURLOPT_SSL_VERIFYPEER.3 b/docs/libcurl/opts/CURLOPT_SSL_VERIFYPEER.3
index e48c2204..269d8f01 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_VERIFYPEER.3
+++ b/docs/libcurl/opts/CURLOPT_SSL_VERIFYPEER.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSL_VERIFYPEER 3 "February 09, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SSL_VERIFYPEER 3 "February 09, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSL_VERIFYPEER \- verify the peer's SSL certificate
diff --git a/docs/libcurl/opts/CURLOPT_SSL_VERIFYSTATUS.3 b/docs/libcurl/opts/CURLOPT_SSL_VERIFYSTATUS.3
index a748666c..017e0a38 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_VERIFYSTATUS.3
+++ b/docs/libcurl/opts/CURLOPT_SSL_VERIFYSTATUS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSL_VERIFYSTATUS 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SSL_VERIFYSTATUS 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSL_VERIFYSTATUS \- verify the certificate's status
diff --git a/docs/libcurl/opts/CURLOPT_STDERR.3 b/docs/libcurl/opts/CURLOPT_STDERR.3
index fb60bd8f..b7894b72 100644
--- a/docs/libcurl/opts/CURLOPT_STDERR.3
+++ b/docs/libcurl/opts/CURLOPT_STDERR.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_STDERR 3 "February 03, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_STDERR 3 "February 03, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_STDERR \- redirect stderr to another stream
diff --git a/docs/libcurl/opts/CURLOPT_STREAM_DEPENDS.3 b/docs/libcurl/opts/CURLOPT_STREAM_DEPENDS.3
index 22b32b01..77463ef1 100644
--- a/docs/libcurl/opts/CURLOPT_STREAM_DEPENDS.3
+++ b/docs/libcurl/opts/CURLOPT_STREAM_DEPENDS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_STREAM_DEPENDS 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_STREAM_DEPENDS 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_STREAM_DEPENDS \- set stream this transfer depends on
diff --git a/docs/libcurl/opts/CURLOPT_STREAM_DEPENDS_E.3 b/docs/libcurl/opts/CURLOPT_STREAM_DEPENDS_E.3
index 5390e548..e9593f54 100644
--- a/docs/libcurl/opts/CURLOPT_STREAM_DEPENDS_E.3
+++ b/docs/libcurl/opts/CURLOPT_STREAM_DEPENDS_E.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_STREAM_DEPENDS_E 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_STREAM_DEPENDS_E 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_STREAM_DEPENDS_E \- set stream this transfer depends on execlusively
diff --git a/docs/libcurl/opts/CURLOPT_STREAM_WEIGHT.3 b/docs/libcurl/opts/CURLOPT_STREAM_WEIGHT.3
index 9b1da586..6808a7de 100644
--- a/docs/libcurl/opts/CURLOPT_STREAM_WEIGHT.3
+++ b/docs/libcurl/opts/CURLOPT_STREAM_WEIGHT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_STREAM_WEIGHT 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_STREAM_WEIGHT 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_STREAM_WEIGHT \- set numerical stream weight
diff --git a/docs/libcurl/opts/CURLOPT_SUPPRESS_CONNECT_HEADERS.3 b/docs/libcurl/opts/CURLOPT_SUPPRESS_CONNECT_HEADERS.3
index 6cc174d0..bd4d7df3 100644
--- a/docs/libcurl/opts/CURLOPT_SUPPRESS_CONNECT_HEADERS.3
+++ b/docs/libcurl/opts/CURLOPT_SUPPRESS_CONNECT_HEADERS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SUPPRESS_CONNECT_HEADERS 3 "April 28, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_SUPPRESS_CONNECT_HEADERS 3 "April 28, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SUPPRESS_CONNECT_HEADERS \- Suppress proxy CONNECT response headers from user callbacks
diff --git a/docs/libcurl/opts/CURLOPT_TCP_FASTOPEN.3 b/docs/libcurl/opts/CURLOPT_TCP_FASTOPEN.3
index a9db1064..4e9df6c5 100644
--- a/docs/libcurl/opts/CURLOPT_TCP_FASTOPEN.3
+++ b/docs/libcurl/opts/CURLOPT_TCP_FASTOPEN.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TCP_FASTOPEN 3 "May 15, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_TCP_FASTOPEN 3 "May 15, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TCP_FASTOPEN \- enable TCP Fast Open
diff --git a/docs/libcurl/opts/CURLOPT_TCP_KEEPALIVE.3 b/docs/libcurl/opts/CURLOPT_TCP_KEEPALIVE.3
index ddc4d3f0..405a9f62 100644
--- a/docs/libcurl/opts/CURLOPT_TCP_KEEPALIVE.3
+++ b/docs/libcurl/opts/CURLOPT_TCP_KEEPALIVE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TCP_KEEPALIVE 3 "February 03, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_TCP_KEEPALIVE 3 "February 03, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TCP_KEEPALIVE \- enable TCP keep-alive probing
diff --git a/docs/libcurl/opts/CURLOPT_TCP_KEEPIDLE.3 b/docs/libcurl/opts/CURLOPT_TCP_KEEPIDLE.3
index 50345e67..97ed6556 100644
--- a/docs/libcurl/opts/CURLOPT_TCP_KEEPIDLE.3
+++ b/docs/libcurl/opts/CURLOPT_TCP_KEEPIDLE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TCP_KEEPIDLE 3 "January 02, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_TCP_KEEPIDLE 3 "January 02, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TCP_KEEPIDLE \- set TCP keep-alive idle time wait
diff --git a/docs/libcurl/opts/CURLOPT_TCP_KEEPINTVL.3 b/docs/libcurl/opts/CURLOPT_TCP_KEEPINTVL.3
index a00234ed..19613de1 100644
--- a/docs/libcurl/opts/CURLOPT_TCP_KEEPINTVL.3
+++ b/docs/libcurl/opts/CURLOPT_TCP_KEEPINTVL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TCP_KEEPINTVL 3 "January 02, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_TCP_KEEPINTVL 3 "January 02, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TCP_KEEPINTVL \- set TCP keep-alive interval
diff --git a/docs/libcurl/opts/CURLOPT_TCP_NODELAY.3 b/docs/libcurl/opts/CURLOPT_TCP_NODELAY.3
index 32f54658..521ca10e 100644
--- a/docs/libcurl/opts/CURLOPT_TCP_NODELAY.3
+++ b/docs/libcurl/opts/CURLOPT_TCP_NODELAY.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TCP_NODELAY 3 "January 15, 2018" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_TCP_NODELAY 3 "January 15, 2018" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TCP_NODELAY \- set the TCP_NODELAY option
diff --git a/docs/libcurl/opts/CURLOPT_TELNETOPTIONS.3 b/docs/libcurl/opts/CURLOPT_TELNETOPTIONS.3
index 9d2b8ae5..f20a04c5 100644
--- a/docs/libcurl/opts/CURLOPT_TELNETOPTIONS.3
+++ b/docs/libcurl/opts/CURLOPT_TELNETOPTIONS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TELNETOPTIONS 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_TELNETOPTIONS 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TELNETOPTIONS \- custom telnet options
diff --git a/docs/libcurl/opts/CURLOPT_TFTP_BLKSIZE.3 b/docs/libcurl/opts/CURLOPT_TFTP_BLKSIZE.3
index a669d202..3c37b7fb 100644
--- a/docs/libcurl/opts/CURLOPT_TFTP_BLKSIZE.3
+++ b/docs/libcurl/opts/CURLOPT_TFTP_BLKSIZE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TFTP_BLKSIZE 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_TFTP_BLKSIZE 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TFTP_BLKSIZE \- TFTP block size
diff --git a/docs/libcurl/opts/CURLOPT_TFTP_NO_OPTIONS.3 b/docs/libcurl/opts/CURLOPT_TFTP_NO_OPTIONS.3
index 8d8c6a71..1b76e34f 100644
--- a/docs/libcurl/opts/CURLOPT_TFTP_NO_OPTIONS.3
+++ b/docs/libcurl/opts/CURLOPT_TFTP_NO_OPTIONS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TFTP_NO_OPTIONS 3 "April 06, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_TFTP_NO_OPTIONS 3 "April 06, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TFTP_NO_OPTIONS \- Do not send TFTP options requests.
diff --git a/docs/libcurl/opts/CURLOPT_TIMECONDITION.3 b/docs/libcurl/opts/CURLOPT_TIMECONDITION.3
index 7a25421c..b98647e1 100644
--- a/docs/libcurl/opts/CURLOPT_TIMECONDITION.3
+++ b/docs/libcurl/opts/CURLOPT_TIMECONDITION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TIMECONDITION 3 "April 03, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_TIMECONDITION 3 "April 03, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TIMECONDITION \- select condition for a time request
diff --git a/docs/libcurl/opts/CURLOPT_TIMEOUT.3 b/docs/libcurl/opts/CURLOPT_TIMEOUT.3
index 5253b0dd..4ebe37ae 100644
--- a/docs/libcurl/opts/CURLOPT_TIMEOUT.3
+++ b/docs/libcurl/opts/CURLOPT_TIMEOUT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TIMEOUT 3 "October 03, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_TIMEOUT 3 "October 03, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TIMEOUT \- set maximum time the request is allowed to take
diff --git a/docs/libcurl/opts/CURLOPT_TIMEOUT_MS.3 b/docs/libcurl/opts/CURLOPT_TIMEOUT_MS.3
index a9fb9637..4cfd6564 100644
--- a/docs/libcurl/opts/CURLOPT_TIMEOUT_MS.3
+++ b/docs/libcurl/opts/CURLOPT_TIMEOUT_MS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TIMEOUT_MS 3 "February 03, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_TIMEOUT_MS 3 "February 03, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TIMEOUT_MS \- set maximum time the request is allowed to take
diff --git a/docs/libcurl/opts/CURLOPT_TIMEVALUE.3 b/docs/libcurl/opts/CURLOPT_TIMEVALUE.3
index c4192a07..e1a2e9db 100644
--- a/docs/libcurl/opts/CURLOPT_TIMEVALUE.3
+++ b/docs/libcurl/opts/CURLOPT_TIMEVALUE.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
.\" *
.\" * This software is licensed as described in the file COPYING, which
.\" * you should have received as part of this distribution. The terms
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TIMEVALUE 3 "April 03, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_TIMEVALUE 3 "January 25, 2018" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TIMEVALUE \- set time value for conditional
@@ -32,6 +32,9 @@ CURLcode curl_easy_setopt(CURL *handle, CURLOPT_TIMEVALUE, long val);
Pass a long \fIval\fP as parameter. This should be the time counted as seconds
since 1 Jan 1970, and the time will be used in a condition as specified with
\fICURLOPT_TIMECONDITION(3)\fP.
+
+On systems with 32 bit 'long' variables, this option cannot set dates beyond
+the year 2038. Consider \fICURLOPT_TIMEVALUE_LARGE(3)\fP instead.
.SH DEFAULT
0
.SH PROTOCOLS
diff --git a/docs/libcurl/opts/CURLOPT_TIMEVALUE_LARGE.3 b/docs/libcurl/opts/CURLOPT_TIMEVALUE_LARGE.3
new file mode 100644
index 00000000..5dbbedd5
--- /dev/null
+++ b/docs/libcurl/opts/CURLOPT_TIMEVALUE_LARGE.3
@@ -0,0 +1,65 @@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
+.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" *
+.\" * This software is licensed as described in the file COPYING, which
+.\" * you should have received as part of this distribution. The terms
+.\" * are also available at https://curl.haxx.se/docs/copyright.html.
+.\" *
+.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+.\" * copies of the Software, and permit persons to whom the Software is
+.\" * furnished to do so, under the terms of the COPYING file.
+.\" *
+.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+.\" * KIND, either express or implied.
+.\" *
+.\" **************************************************************************
+.\"
+.TH CURLOPT_TIMEVALUE_LARGE 3 "January 25, 2018" "libcurl 7.59.0" "curl_easy_setopt options"
+
+.SH NAME
+CURLOPT_TIMEVALUE_LARGE \- set time value for conditional
+.SH SYNOPSIS
+#include <curl/curl.h>
+
+CURLcode curl_easy_setopt(CURL *handle, CURLOPT_TIMEVALUE_LARGE, curl_off_t val);
+.SH DESCRIPTION
+Pass a curl_off_t \fIval\fP as parameter. This should be the time counted as
+seconds since 1 Jan 1970, and the time will be used in a condition as
+specified with \fICURLOPT_TIMECONDITION(3)\fP.
+
+The difference between this option and \fICURLOPT_TIMEVALUE(3)\fP is the type
+of the argument. On systems where 'long' is only 32 bit wide, this option has
+to be used to set dates beyond the year 2038.
+.SH DEFAULT
+0
+.SH PROTOCOLS
+HTTP, FTP, RTSP, and FILE
+.SH EXAMPLE
+.nf
+CURL *curl = curl_easy_init();
+if(curl) {
+ curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
+
+ /* January 1, 2020 is 1577833200 */
+ curl_easy_setopt(curl, CURLOPT_TIMEVALUE_LARGE, (curl_off_t)1577833200);
+
+ /* If-Modified-Since the above time stamp */
+ curl_easy_setopt(curl, CURLOPT_TIMECONDITION, CURL_TIMECOND_IFMODSINCE);
+
+ /* Perform the request */
+ curl_easy_perform(curl);
+}
+.fi
+.SH AVAILABILITY
+Added in 7.59.0.
+.SH RETURN VALUE
+Returns CURLE_OK
+.SH "SEE ALSO"
+.BR CURLOPT_TIMECONDITION "(3), "
+.BR CURLOPT_TIMEVALUE_LARGE "(3), "
diff --git a/docs/libcurl/opts/CURLOPT_TLSAUTH_PASSWORD.3 b/docs/libcurl/opts/CURLOPT_TLSAUTH_PASSWORD.3
index b38dcfbb..2b74c037 100644
--- a/docs/libcurl/opts/CURLOPT_TLSAUTH_PASSWORD.3
+++ b/docs/libcurl/opts/CURLOPT_TLSAUTH_PASSWORD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TLSAUTH_PASSWORD 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_TLSAUTH_PASSWORD 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TLSAUTH_PASSWORD \- password to use for TLS authentication
diff --git a/docs/libcurl/opts/CURLOPT_TLSAUTH_TYPE.3 b/docs/libcurl/opts/CURLOPT_TLSAUTH_TYPE.3
index 8fc43bca..4138c7d1 100644
--- a/docs/libcurl/opts/CURLOPT_TLSAUTH_TYPE.3
+++ b/docs/libcurl/opts/CURLOPT_TLSAUTH_TYPE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TLSAUTH_TYPE 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_TLSAUTH_TYPE 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TLSAUTH_TYPE \- set TLS authentication methods
diff --git a/docs/libcurl/opts/CURLOPT_TLSAUTH_USERNAME.3 b/docs/libcurl/opts/CURLOPT_TLSAUTH_USERNAME.3
index 4dc8c30d..e270a446 100644
--- a/docs/libcurl/opts/CURLOPT_TLSAUTH_USERNAME.3
+++ b/docs/libcurl/opts/CURLOPT_TLSAUTH_USERNAME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TLSAUTH_USERNAME 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_TLSAUTH_USERNAME 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TLSAUTH_USERNAME \- user name to use for TLS authentication
diff --git a/docs/libcurl/opts/CURLOPT_TRANSFERTEXT.3 b/docs/libcurl/opts/CURLOPT_TRANSFERTEXT.3
index 233e51cf..06552db5 100644
--- a/docs/libcurl/opts/CURLOPT_TRANSFERTEXT.3
+++ b/docs/libcurl/opts/CURLOPT_TRANSFERTEXT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TRANSFERTEXT 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_TRANSFERTEXT 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TRANSFERTEXT \- request a text based transfer for FTP
diff --git a/docs/libcurl/opts/CURLOPT_TRANSFER_ENCODING.3 b/docs/libcurl/opts/CURLOPT_TRANSFER_ENCODING.3
index ec6101eb..58ad727e 100644
--- a/docs/libcurl/opts/CURLOPT_TRANSFER_ENCODING.3
+++ b/docs/libcurl/opts/CURLOPT_TRANSFER_ENCODING.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TRANSFER_ENCODING 3 "May 15, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_TRANSFER_ENCODING 3 "May 15, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TRANSFER_ENCODING \- ask for HTTP Transfer Encoding
diff --git a/docs/libcurl/opts/CURLOPT_UNIX_SOCKET_PATH.3 b/docs/libcurl/opts/CURLOPT_UNIX_SOCKET_PATH.3
index 1955832f..00ab6092 100644
--- a/docs/libcurl/opts/CURLOPT_UNIX_SOCKET_PATH.3
+++ b/docs/libcurl/opts/CURLOPT_UNIX_SOCKET_PATH.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_UNIX_SOCKET_PATH 3 "December 21, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_UNIX_SOCKET_PATH 3 "December 21, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_UNIX_SOCKET_PATH \- set Unix domain socket
diff --git a/docs/libcurl/opts/CURLOPT_UNRESTRICTED_AUTH.3 b/docs/libcurl/opts/CURLOPT_UNRESTRICTED_AUTH.3
index a3cb4cba..994cfc6b 100644
--- a/docs/libcurl/opts/CURLOPT_UNRESTRICTED_AUTH.3
+++ b/docs/libcurl/opts/CURLOPT_UNRESTRICTED_AUTH.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_UNRESTRICTED_AUTH 3 "May 15, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_UNRESTRICTED_AUTH 3 "May 15, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_UNRESTRICTED_AUTH \- send credentials to other hosts too
diff --git a/docs/libcurl/opts/CURLOPT_UPLOAD.3 b/docs/libcurl/opts/CURLOPT_UPLOAD.3
index da7ac910..34b45b03 100644
--- a/docs/libcurl/opts/CURLOPT_UPLOAD.3
+++ b/docs/libcurl/opts/CURLOPT_UPLOAD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_UPLOAD 3 "February 03, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_UPLOAD 3 "February 03, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_UPLOAD \- enable data upload
diff --git a/docs/libcurl/opts/CURLOPT_URL.3 b/docs/libcurl/opts/CURLOPT_URL.3
index 1071a45e..84a2a7a2 100644
--- a/docs/libcurl/opts/CURLOPT_URL.3
+++ b/docs/libcurl/opts/CURLOPT_URL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_URL 3 "December 21, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_URL 3 "December 21, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_URL \- provide the URL to use in the request
diff --git a/docs/libcurl/opts/CURLOPT_USERAGENT.3 b/docs/libcurl/opts/CURLOPT_USERAGENT.3
index bc7b3805..e21818fd 100644
--- a/docs/libcurl/opts/CURLOPT_USERAGENT.3
+++ b/docs/libcurl/opts/CURLOPT_USERAGENT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_USERAGENT 3 "December 21, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_USERAGENT 3 "December 21, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_USERAGENT \- set HTTP user-agent header
diff --git a/docs/libcurl/opts/CURLOPT_USERNAME.3 b/docs/libcurl/opts/CURLOPT_USERNAME.3
index be5dfb6e..3e8b7f95 100644
--- a/docs/libcurl/opts/CURLOPT_USERNAME.3
+++ b/docs/libcurl/opts/CURLOPT_USERNAME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_USERNAME 3 "May 05, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_USERNAME 3 "May 05, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_USERNAME \- user name to use in authentication
diff --git a/docs/libcurl/opts/CURLOPT_USERPWD.3 b/docs/libcurl/opts/CURLOPT_USERPWD.3
index dcbb1597..c59ca34c 100644
--- a/docs/libcurl/opts/CURLOPT_USERPWD.3
+++ b/docs/libcurl/opts/CURLOPT_USERPWD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_USERPWD 3 "August 24, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_USERPWD 3 "August 24, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_USERPWD \- user name and password to use in authentication
diff --git a/docs/libcurl/opts/CURLOPT_USE_SSL.3 b/docs/libcurl/opts/CURLOPT_USE_SSL.3
index 7d709c67..5d2e7963 100644
--- a/docs/libcurl/opts/CURLOPT_USE_SSL.3
+++ b/docs/libcurl/opts/CURLOPT_USE_SSL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_USE_SSL 3 "February 03, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_USE_SSL 3 "February 03, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_USE_SSL \- request using SSL / TLS for the transfer
diff --git a/docs/libcurl/opts/CURLOPT_VERBOSE.3 b/docs/libcurl/opts/CURLOPT_VERBOSE.3
index 56c9ffd0..aaf91287 100644
--- a/docs/libcurl/opts/CURLOPT_VERBOSE.3
+++ b/docs/libcurl/opts/CURLOPT_VERBOSE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_VERBOSE 3 "February 03, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_VERBOSE 3 "February 03, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_VERBOSE \- set verbose mode on/off
diff --git a/docs/libcurl/opts/CURLOPT_WILDCARDMATCH.3 b/docs/libcurl/opts/CURLOPT_WILDCARDMATCH.3
index a2b43559..c796a5e0 100644
--- a/docs/libcurl/opts/CURLOPT_WILDCARDMATCH.3
+++ b/docs/libcurl/opts/CURLOPT_WILDCARDMATCH.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_WILDCARDMATCH 3 "February 03, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_WILDCARDMATCH 3 "February 03, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_WILDCARDMATCH \- enable directory wildcard transfers
diff --git a/docs/libcurl/opts/CURLOPT_WRITEDATA.3 b/docs/libcurl/opts/CURLOPT_WRITEDATA.3
index af3caa57..19992618 100644
--- a/docs/libcurl/opts/CURLOPT_WRITEDATA.3
+++ b/docs/libcurl/opts/CURLOPT_WRITEDATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_WRITEDATA 3 "February 03, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_WRITEDATA 3 "February 03, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_WRITEDATA \- custom pointer passed to the write callback
diff --git a/docs/libcurl/opts/CURLOPT_WRITEFUNCTION.3 b/docs/libcurl/opts/CURLOPT_WRITEFUNCTION.3
index 47cab25c..defd98fd 100644
--- a/docs/libcurl/opts/CURLOPT_WRITEFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_WRITEFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_WRITEFUNCTION 3 "February 03, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_WRITEFUNCTION 3 "February 03, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_WRITEFUNCTION \- set callback for writing received data
diff --git a/docs/libcurl/opts/CURLOPT_XFERINFODATA.3 b/docs/libcurl/opts/CURLOPT_XFERINFODATA.3
index 936617dd..174f8ce6 100644
--- a/docs/libcurl/opts/CURLOPT_XFERINFODATA.3
+++ b/docs/libcurl/opts/CURLOPT_XFERINFODATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_XFERINFODATA 3 "October 09, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_XFERINFODATA 3 "October 09, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_XFERINFODATA \- custom pointer passed to the progress callback
diff --git a/docs/libcurl/opts/CURLOPT_XFERINFOFUNCTION.3 b/docs/libcurl/opts/CURLOPT_XFERINFOFUNCTION.3
index a6712e54..31679579 100644
--- a/docs/libcurl/opts/CURLOPT_XFERINFOFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_XFERINFOFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_XFERINFOFUNCTION 3 "February 03, 2016" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_XFERINFOFUNCTION 3 "February 03, 2016" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_XFERINFOFUNCTION \- callback to progress meter function
diff --git a/docs/libcurl/opts/CURLOPT_XOAUTH2_BEARER.3 b/docs/libcurl/opts/CURLOPT_XOAUTH2_BEARER.3
index 7d4e65f2..daf2634a 100644
--- a/docs/libcurl/opts/CURLOPT_XOAUTH2_BEARER.3
+++ b/docs/libcurl/opts/CURLOPT_XOAUTH2_BEARER.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_XOAUTH2_BEARER 3 "May 31, 2017" "libcurl 7.58.0" "curl_easy_setopt options"
+.TH CURLOPT_XOAUTH2_BEARER 3 "May 31, 2017" "libcurl 7.59.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_XOAUTH2_BEARER \- specify OAuth 2.0 access token
diff --git a/docs/libcurl/opts/Makefile.inc b/docs/libcurl/opts/Makefile.inc
index f710b5eb..2aa1acf3 100644
--- a/docs/libcurl/opts/Makefile.inc
+++ b/docs/libcurl/opts/Makefile.inc
@@ -14,6 +14,7 @@ man_MANS = \
CURLINFO_COOKIELIST.3 \
CURLINFO_EFFECTIVE_URL.3 \
CURLINFO_FILETIME.3 \
+ CURLINFO_FILETIME_T.3 \
CURLINFO_FTP_ENTRY_PATH.3 \
CURLINFO_HEADER_SIZE.3 \
CURLINFO_HTTPAUTH_AVAIL.3 \
@@ -135,6 +136,7 @@ man_MANS = \
CURLOPT_FTP_USE_EPSV.3 \
CURLOPT_FTP_USE_PRET.3 \
CURLOPT_GSSAPI_DELEGATION.3 \
+ CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.3 \
CURLOPT_HEADER.3 \
CURLOPT_HEADERDATA.3 \
CURLOPT_HEADERFUNCTION.3 \
@@ -240,6 +242,8 @@ man_MANS = \
CURLOPT_REFERER.3 \
CURLOPT_REQUEST_TARGET.3 \
CURLOPT_RESOLVE.3 \
+ CURLOPT_RESOLVER_START_DATA.3 \
+ CURLOPT_RESOLVER_START_FUNCTION.3 \
CURLOPT_RESUME_FROM.3 \
CURLOPT_RESUME_FROM_LARGE.3 \
CURLOPT_RTSP_CLIENT_CSEQ.3 \
@@ -301,6 +305,7 @@ man_MANS = \
CURLOPT_TIMEOUT.3 \
CURLOPT_TIMEOUT_MS.3 \
CURLOPT_TIMEVALUE.3 \
+ CURLOPT_TIMEVALUE_LARGE.3 \
CURLOPT_TLSAUTH_PASSWORD.3 \
CURLOPT_TLSAUTH_TYPE.3 \
CURLOPT_TLSAUTH_USERNAME.3 \
diff --git a/docs/libcurl/symbols-in-versions b/docs/libcurl/symbols-in-versions
index ab899b9b..c58086fb 100644
--- a/docs/libcurl/symbols-in-versions
+++ b/docs/libcurl/symbols-in-versions
@@ -101,6 +101,7 @@ CURLE_QUOTE_ERROR 7.17.0
CURLE_RANGE_ERROR 7.17.0
CURLE_READ_ERROR 7.1
CURLE_RECV_ERROR 7.10
+CURLE_RECURSIVE_API_CALL 7.59.0
CURLE_REMOTE_ACCESS_DENIED 7.17.0
CURLE_REMOTE_DISK_FULL 7.17.0
CURLE_REMOTE_FILE_EXISTS 7.17.0
@@ -220,6 +221,7 @@ CURLINFO_DOUBLE 7.4.1
CURLINFO_EFFECTIVE_URL 7.4
CURLINFO_END 7.9.6
CURLINFO_FILETIME 7.5
+CURLINFO_FILETIME_T 7.59.0
CURLINFO_FTP_ENTRY_PATH 7.15.4
CURLINFO_HEADER_IN 7.9.6
CURLINFO_HEADER_OUT 7.9.6
@@ -322,6 +324,7 @@ CURLM_CALL_MULTI_SOCKET 7.15.5
CURLM_INTERNAL_ERROR 7.9.6
CURLM_OK 7.9.6
CURLM_OUT_OF_MEMORY 7.9.6
+CURLM_RECURSIVE_API_CALL 7.59.0
CURLM_UNKNOWN_OPTION 7.15.4
CURLOPTTYPE_FUNCTIONPOINT 7.1
CURLOPTTYPE_LONG 7.1
@@ -400,6 +403,7 @@ CURLOPT_FTP_USE_EPRT 7.10.5
CURLOPT_FTP_USE_EPSV 7.9.2
CURLOPT_FTP_USE_PRET 7.20.0
CURLOPT_GSSAPI_DELEGATION 7.22.0
+CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS 7.59.0
CURLOPT_HEADER 7.1
CURLOPT_HEADERDATA 7.10
CURLOPT_HEADERFUNCTION 7.7.2
@@ -587,11 +591,14 @@ CURLOPT_TIMECONDITION 7.1
CURLOPT_TIMEOUT 7.1
CURLOPT_TIMEOUT_MS 7.16.2
CURLOPT_TIMEVALUE 7.1
+CURLOPT_TIMEVALUE_LARGE 7.59.0
CURLOPT_TLSAUTH_PASSWORD 7.21.4
CURLOPT_TLSAUTH_TYPE 7.21.4
CURLOPT_TLSAUTH_USERNAME 7.21.4
CURLOPT_TRANSFERTEXT 7.1.1
CURLOPT_TRANSFER_ENCODING 7.21.6
+CURLOPT_RESOLVER_START_FUNCTION 7.59.0
+CURLOPT_RESOLVER_START_DATA 7.59.0
CURLOPT_UNIX_SOCKET_PATH 7.40.0
CURLOPT_UNRESTRICTED_AUTH 7.10.4
CURLOPT_UPLOAD 7.1
@@ -737,6 +744,7 @@ CURL_GLOBAL_DEFAULT 7.8
CURL_GLOBAL_NOTHING 7.8
CURL_GLOBAL_SSL 7.8
CURL_GLOBAL_WIN32 7.8.1
+CURL_HET_DEFAULT 7.59.0
CURL_HTTPPOST_BUFFER 7.46.0
CURL_HTTPPOST_CALLBACK 7.46.0
CURL_HTTPPOST_FILENAME 7.46.0
diff --git a/include/curl/curl.h b/include/curl/curl.h
index 7680acd1..fa019eca 100644
--- a/include/curl/curl.h
+++ b/include/curl/curl.h
@@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -245,7 +245,9 @@ typedef size_t (*curl_write_callback)(char *buffer,
size_t nitems,
void *outstream);
-
+/* This callback will be called when a new resolver request is made */
+typedef int (*curl_resolver_start_callback)(void *resolver_state,
+ void *reserved, void *userdata);
/* enumeration of file types */
typedef enum {
@@ -577,6 +579,8 @@ typedef enum {
CURLE_SSL_INVALIDCERTSTATUS, /* 91 - invalid certificate status */
CURLE_HTTP2_STREAM, /* 92 - stream error in HTTP/2 framing layer
*/
+ CURLE_RECURSIVE_API_CALL, /* 93 - an api function was called from
+ inside a callback */
CURL_LAST /* never use! */
} CURLcode;
@@ -789,6 +793,11 @@ typedef enum {
SSL backends where such behavior is present. */
#define CURLSSLOPT_NO_REVOKE (1<<1)
+/* The default connection attempt delay in milliseconds for happy eyeballs.
+ CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.3 and happy-eyeballs-timeout-ms.d document
+ this value, keep them in sync. */
+#define CURL_HET_DEFAULT 200L
+
#ifndef CURL_NO_OLDIES /* define this to test if your app builds with all
the obsolete stuff removed! */
@@ -1662,7 +1671,7 @@ typedef enum {
* Only supported by the c-ares DNS backend */
CINIT(DNS_LOCAL_IP4, STRINGPOINT, 222),
- /* Set the local IPv4 address to use for outgoing DNS requests.
+ /* Set the local IPv6 address to use for outgoing DNS requests.
* Only supported by the c-ares DNS backend */
CINIT(DNS_LOCAL_IP6, STRINGPOINT, 223),
@@ -1819,6 +1828,19 @@ typedef enum {
/* Post MIME data. */
CINIT(MIMEPOST, OBJECTPOINT, 269),
+ /* Time to use with the CURLOPT_TIMECONDITION. Specified in number of
+ seconds since 1 Jan 1970. */
+ CINIT(TIMEVALUE_LARGE, OFF_T, 270),
+
+ /* Head start in milliseconds to give happy eyeballs. */
+ CINIT(HAPPY_EYEBALLS_TIMEOUT_MS, LONG, 271),
+
+ /* Function that will be called before a resolver request is made */
+ CINIT(RESOLVER_START_FUNCTION, FUNCTIONPOINT, 272),
+
+ /* User data to pass to the resolver start callback. */
+ CINIT(RESOLVER_START_DATA, OBJECTPOINT, 273),
+
CURLOPT_LASTENTRY /* the last unused */
} CURLoption;
@@ -2459,6 +2481,7 @@ typedef enum {
CURLINFO_REQUEST_SIZE = CURLINFO_LONG + 12,
CURLINFO_SSL_VERIFYRESULT = CURLINFO_LONG + 13,
CURLINFO_FILETIME = CURLINFO_LONG + 14,
+ CURLINFO_FILETIME_T = CURLINFO_OFF_T + 14,
CURLINFO_CONTENT_LENGTH_DOWNLOAD = CURLINFO_DOUBLE + 15,
CURLINFO_CONTENT_LENGTH_DOWNLOAD_T = CURLINFO_OFF_T + 15,
CURLINFO_CONTENT_LENGTH_UPLOAD = CURLINFO_DOUBLE + 16,
diff --git a/include/curl/curlver.h b/include/curl/curlver.h
index 6d93cc11..225f9356 100644
--- a/include/curl/curlver.h
+++ b/include/curl/curlver.h
@@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -26,16 +26,16 @@
a script at release-time. This was made its own header file in 7.11.2 */
/* This is the global package copyright */
-#define LIBCURL_COPYRIGHT "1996 - 2017 Daniel Stenberg, <daniel@haxx.se>."
+#define LIBCURL_COPYRIGHT "1996 - 2018 Daniel Stenberg, <daniel@haxx.se>."
/* This is the version number of the libcurl package from which this header
file origins: */
-#define LIBCURL_VERSION "7.58.0"
+#define LIBCURL_VERSION "7.59.0"
/* The numeric version number is also available "in parts" by using these
defines: */
#define LIBCURL_VERSION_MAJOR 7
-#define LIBCURL_VERSION_MINOR 58
+#define LIBCURL_VERSION_MINOR 59
#define LIBCURL_VERSION_PATCH 0
/* This is the numeric version of the libcurl version number, meant for easier
@@ -57,7 +57,7 @@
CURL_VERSION_BITS() macro since curl's own configure script greps for it
and needs it to contain the full number.
*/
-#define LIBCURL_VERSION_NUM 0x073a00
+#define LIBCURL_VERSION_NUM 0x073b00
/*
* This is the date and time when the full source package was created. The
@@ -68,7 +68,7 @@
*
* "2007-11-23"
*/
-#define LIBCURL_TIMESTAMP "2018-01-24"
+#define LIBCURL_TIMESTAMP "2018-03-14"
#define CURL_VERSION_BITS(x,y,z) ((x)<<16|(y)<<8|z)
#define CURL_AT_LEAST_VERSION(x,y,z) \
diff --git a/include/curl/multi.h b/include/curl/multi.h
index 911c91dd..b19dbaf7 100644
--- a/include/curl/multi.h
+++ b/include/curl/multi.h
@@ -70,6 +70,8 @@ typedef enum {
CURLM_UNKNOWN_OPTION, /* curl_multi_setopt() with unsupported option */
CURLM_ADDED_ALREADY, /* an easy handle already added to a multi handle was
attempted to get added - again */
+ CURLM_RECURSIVE_API_CALL, /* an api function was called from inside a
+ callback */
CURLM_LAST
} CURLMcode;
@@ -184,8 +186,8 @@ CURL_EXTERN CURLMcode curl_multi_wait(CURLM *multi_handle,
*
* Returns: CURLMcode type, general multi error code. *NOTE* that this only
* returns errors etc regarding the whole multi stack. There might
- * still have occurred problems on invidual transfers even when this
- * returns OK.
+ * still have occurred problems on individual transfers even when
+ * this returns OK.
*/
CURL_EXTERN CURLMcode curl_multi_perform(CURLM *multi_handle,
int *running_handles);
diff --git a/include/curl/typecheck-gcc.h b/include/curl/typecheck-gcc.h
index 10c74c76..3a0f253f 100644
--- a/include/curl/typecheck-gcc.h
+++ b/include/curl/typecheck-gcc.h
@@ -54,6 +54,9 @@ __extension__ ({ \
if(_curl_is_write_cb_option(_curl_opt)) \
if(!_curl_is_write_cb(value)) \
_curl_easy_setopt_err_write_callback(); \
+ if((_curl_opt) == CURLOPT_RESOLVER_START_FUNCTION) \
+ if(!_curl_is_resolver_start_callback(value)) \
+ _curl_easy_setopt_err_resolver_start_callback(); \
if((_curl_opt) == CURLOPT_READFUNCTION) \
if(!_curl_is_read_cb(value)) \
_curl_easy_setopt_err_read_cb(); \
@@ -170,6 +173,10 @@ _CURL_WARNING(_curl_easy_setopt_err_string,
)
_CURL_WARNING(_curl_easy_setopt_err_write_callback,
"curl_easy_setopt expects a curl_write_callback argument for this option")
+_CURL_WARNING(_curl_easy_setopt_err_resolver_start_callback,
+ "curl_easy_setopt expects a "
+ "curl_resolver_start_callback argument for this option"
+ )
_CURL_WARNING(_curl_easy_setopt_err_read_cb,
"curl_easy_setopt expects a curl_read_callback argument for this option")
_CURL_WARNING(_curl_easy_setopt_err_ioctl_cb,
@@ -354,6 +361,7 @@ _CURL_WARNING(_curl_easy_getinfo_err_curl_off_t,
(option) == CURLOPT_SSH_KEYDATA || \
(option) == CURLOPT_SSL_CTX_DATA || \
(option) == CURLOPT_WRITEDATA || \
+ (option) == CURLOPT_RESOLVER_START_DATA || \
0)
/* evaluates to true if option takes a POST data argument (void* or char*) */
@@ -504,6 +512,11 @@ _CURL_WARNING(_curl_easy_getinfo_err_curl_off_t,
(__builtin_types_compatible_p(__typeof__(func), type) || \
__builtin_types_compatible_p(__typeof__(func) *, type))
+/* evaluates to true if expr is of type curl_resolver_start_callback */
+#define _curl_is_resolver_start_callback(expr) \
+ (_curl_is_NULL(expr) || \
+ _curl_callback_compatible((expr), curl_resolver_start_callback))
+
/* evaluates to true if expr is of type curl_read_callback or "similar" */
#define _curl_is_read_cb(expr) \
(_curl_is_NULL(expr) || \
diff --git a/lib/Makefile.inc b/lib/Makefile.inc
index 61e80cf5..69f9b403 100644
--- a/lib/Makefile.inc
+++ b/lib/Makefile.inc
@@ -5,7 +5,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
@@ -46,7 +46,7 @@ LIB_CFILES = file.c timeval.c base64.c hostip.c progress.c formdata.c \
http_digest.c md4.c md5.c http_negotiate.c inet_pton.c strtoofft.c \
strerror.c amigaos.c hostasyn.c hostip4.c hostip6.c hostsyn.c \
inet_ntop.c parsedate.c select.c tftp.c splay.c strdup.c socks.c \
- ssh.c ssh-libssh.c curl_addrinfo.c socks_gssapi.c socks_sspi.c \
+ ssh.c ssh-libssh.c curl_addrinfo.c socks_gssapi.c socks_sspi.c \
curl_sspi.c slist.c nonblock.c curl_memrchr.c imap.c pop3.c smtp.c \
pingpong.c rtsp.c curl_threads.c warnless.c hmac.c curl_rtmp.c \
openldap.c curl_gethostname.c gopher.c idn_win32.c \
@@ -54,7 +54,7 @@ LIB_CFILES = file.c timeval.c base64.c hostip.c progress.c formdata.c \
http_ntlm.c curl_ntlm_wb.c curl_ntlm_core.c curl_sasl.c rand.c \
curl_multibyte.c hostcheck.c conncache.c pipeline.c dotdot.c \
x509asn1.c http2.c smb.c curl_endian.c curl_des.c system_win32.c \
- mime.c sha256.c setopt.c curl_path.c
+ mime.c sha256.c setopt.c curl_path.c curl_ctype.c curl_range.c
LIB_HFILES = arpa_telnet.h netrc.h file.h timeval.h hostip.h progress.h \
formdata.h cookie.h http.h sendf.h ftp.h url.h dict.h if2ip.h \
@@ -74,7 +74,7 @@ LIB_HFILES = arpa_telnet.h netrc.h file.h timeval.h hostip.h progress.h \
curl_setup_once.h multihandle.h setup-vms.h pipeline.h dotdot.h \
x509asn1.h http2.h sigpipe.h smb.h curl_endian.h curl_des.h \
curl_printf.h system_win32.h rand.h mime.h curl_sha256.h setopt.h \
- curl_path.h
+ curl_path.h curl_ctype.h curl_range.h
LIB_RCFILES = libcurl.rc
diff --git a/lib/checksrc.pl b/lib/checksrc.pl
index 92af9000..c86222b2 100755
--- a/lib/checksrc.pl
+++ b/lib/checksrc.pl
@@ -6,7 +6,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 2011 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 2011 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
@@ -26,7 +26,7 @@ my $indent = 2;
my $warnings;
my $errors;
-my $supressed; # whitelisted problems
+my $suppressed; # whitelisted problems
my $file;
my $dir=".";
my $wlist;
@@ -35,10 +35,10 @@ my $verbose;
my %whitelist;
my %warnings = (
- 'LONGLINE' => "Line longer than $max_column",
- 'TABS' => 'TAB characters not allowed',
- 'TRAILINGSPACE' => 'Trailing white space on the line',
- 'CPPCOMMENTS' => '// comment detected',
+ 'LONGLINE' => "Line longer than $max_column",
+ 'TABS' => 'TAB characters not allowed',
+ 'TRAILINGSPACE' => 'Trailing white space on the line',
+ 'CPPCOMMENTS' => '// comment detected',
'SPACEBEFOREPAREN' => 'space before an open parenthesis',
'SPACEAFTERPAREN' => 'space after open parenthesis',
'SPACEBEFORECLOSE' => 'space before a close parenthesis',
@@ -58,9 +58,9 @@ my %warnings = (
'OPENCOMMENT' => 'file ended with a /* comment still "open"',
'ASTERISKSPACE' => 'pointer declared with space after asterisk',
'ASTERISKNOSPACE' => 'pointer declared without space before asterisk',
- 'ASSIGNWITHINCONDITION' => 'assignment within conditional expression',
+ 'ASSIGNWITHINCONDITION' => 'assignment within conditional expression',
'EQUALSNOSPACE' => 'equals sign without following space',
- 'NOSPACEEQUALS' => 'equals sign without preceeding space',
+ 'NOSPACEEQUALS' => 'equals sign without preceding space',
'SEMINOSPACE' => 'semicolon without following space',
'MULTISPACE' => 'multiple spaces used when not suitable',
);
@@ -101,7 +101,7 @@ sub checkwarn {
}
if($nowarn) {
- $supressed++;
+ $suppressed++;
if($w) {
$swarnings++;
}
@@ -142,6 +142,16 @@ while(1) {
$file = shift @ARGV;
next;
}
+ elsif($file =~ /-i([1-9])/) {
+ $indent = $1 + 0;
+ $file = shift @ARGV;
+ next;
+ }
+ elsif($file =~ /-m([0-9]+)/) {
+ $max_column = $1 + 0;
+ $file = shift @ARGV;
+ next;
+ }
elsif($file =~ /^(-h|--help)/) {
undef $file;
last;
@@ -156,6 +166,8 @@ if(!$file) {
print " -D[DIR] Directory to prepend file names\n";
print " -h Show help output\n";
print " -W[file] Whitelist the given file - ignore all its flaws\n";
+ print " -i<n> Indent spaces. Default: 2\n";
+ print " -m<n> Maximum line length. Default: 79\n";
print "\nDetects and warns for these problems:\n";
for(sort keys %warnings) {
printf (" %-18s: %s\n", $_, $warnings{$_});
@@ -422,7 +434,7 @@ sub scanfile {
# There is a quote here, figure out whether the comma is
# within a string or '' or not.
if($pref =~ /\"/) {
- # withing a string
+ # within a string
}
elsif($pref =~ /\'$/) {
# a single letter
@@ -596,7 +608,7 @@ sub scanfile {
if($errors || $warnings || $verbose) {
printf "checksrc: %d errors and %d warnings\n", $errors, $warnings;
- if($supressed) {
+ if($suppressed) {
printf "checksrc: %d errors and %d warnings suppressed\n",
$serrors,
$swarnings;
diff --git a/lib/config-win32.h b/lib/config-win32.h
index 3e5567df..fdac6f9a 100644
--- a/lib/config-win32.h
+++ b/lib/config-win32.h
@@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -708,6 +708,11 @@ Vista
/* Define to use the Windows crypto library. */
#define USE_WIN32_CRYPTO
+/* Define to use Unix sockets. */
+#if defined(_MSC_VER) && _MSC_VER >= 1900
+/* #define USE_UNIX_SOCKETS */
+#endif
+
/* ---------------------------------------------------------------- */
/* ADDITIONAL DEFINITIONS */
/* ---------------------------------------------------------------- */
diff --git a/lib/connect.c b/lib/connect.c
index 3edb71eb..1a27ae13 100644
--- a/lib/connect.c
+++ b/lib/connect.c
@@ -619,8 +619,8 @@ void Curl_persistconninfo(struct connectdata *conn)
/* retrieves ip address and port from a sockaddr structure.
note it calls Curl_inet_ntop which sets errno on fail, not SOCKERRNO. */
-static bool getaddressinfo(struct sockaddr *sa, char *addr,
- long *port)
+bool Curl_getaddressinfo(struct sockaddr *sa, char *addr,
+ long *port)
{
unsigned short us_port;
struct sockaddr_in *si = NULL;
@@ -700,16 +700,16 @@ void Curl_updateconninfo(struct connectdata *conn, curl_socket_t sockfd)
return;
}
- if(!getaddressinfo((struct sockaddr*)&ssrem,
- conn->primary_ip, &conn->primary_port)) {
+ if(!Curl_getaddressinfo((struct sockaddr*)&ssrem,
+ conn->primary_ip, &conn->primary_port)) {
failf(data, "ssrem inet_ntop() failed with errno %d: %s",
errno, Curl_strerror(conn, errno));
return;
}
memcpy(conn->ip_addr_str, conn->primary_ip, MAX_IPADR_LEN);
- if(!getaddressinfo((struct sockaddr*)&ssloc,
- conn->local_ip, &conn->local_port)) {
+ if(!Curl_getaddressinfo((struct sockaddr*)&ssloc,
+ conn->local_ip, &conn->local_port)) {
failf(data, "ssloc inet_ntop() failed with errno %d: %s",
errno, Curl_strerror(conn, errno));
return;
@@ -783,7 +783,8 @@ CURLcode Curl_is_connected(struct connectdata *conn,
/* should we try another protocol family? */
if(i == 0 && conn->tempaddr[1] == NULL &&
- Curl_timediff(now, conn->connecttime) >= HAPPY_EYEBALLS_TIMEOUT) {
+ (Curl_timediff(now, conn->connecttime) >=
+ data->set.happy_eyeballs_timeout)) {
trynextip(conn, sockindex, 1);
}
}
@@ -1005,8 +1006,8 @@ static CURLcode singleipconnect(struct connectdata *conn,
return CURLE_OK;
/* store remote address and port used in this connection attempt */
- if(!getaddressinfo((struct sockaddr*)&addr.sa_addr,
- ipaddress, &port)) {
+ if(!Curl_getaddressinfo((struct sockaddr*)&addr.sa_addr,
+ ipaddress, &port)) {
/* malformed address or bug in inet_ntop, try next address */
failf(data, "sa_addr inet_ntop() failed with errno %d: %s",
errno, Curl_strerror(conn, errno));
@@ -1033,9 +1034,11 @@ static CURLcode singleipconnect(struct connectdata *conn,
if(data->set.fsockopt) {
/* activate callback for setting socket options */
+ Curl_set_in_callback(data, true);
error = data->set.fsockopt(data->set.sockopt_client,
sockfd,
CURLSOCKTYPE_IPCXN);
+ Curl_set_in_callback(data, false);
if(error == CURL_SOCKOPT_ALREADY_CONNECTED)
isconnected = TRUE;
@@ -1204,7 +1207,8 @@ CURLcode Curl_connecthost(struct connectdata *conn, /* context */
}
data->info.numconnects++; /* to track the number of connections made */
- Curl_expire(conn->data, HAPPY_EYEBALLS_TIMEOUT, EXPIRE_HAPPY_EYEBALLS);
+ Curl_expire(conn->data, data->set.happy_eyeballs_timeout,
+ EXPIRE_HAPPY_EYEBALLS);
return CURLE_OK;
}
@@ -1311,8 +1315,12 @@ int Curl_closesocket(struct connectdata *conn,
status */
conn->sock_accepted[SECONDARYSOCKET] = FALSE;
else {
+ int rc;
Curl_multi_closed(conn, sock);
- return conn->fclosesocket(conn->closesocket_client, sock);
+ Curl_set_in_callback(conn->data, true);
+ rc = conn->fclosesocket(conn->closesocket_client, sock);
+ Curl_set_in_callback(conn->data, false);
+ return rc;
}
}
@@ -1363,7 +1371,7 @@ CURLcode Curl_socket(struct connectdata *conn,
addr->addrlen = sizeof(struct Curl_sockaddr_storage);
memcpy(&addr->sa_addr, ai->ai_addr, addr->addrlen);
- if(data->set.fopensocket)
+ if(data->set.fopensocket) {
/*
* If the opensocket callback is set, all the destination address
* information is passed to the callback. Depending on this information the
@@ -1373,9 +1381,12 @@ CURLcode Curl_socket(struct connectdata *conn,
* might have been changed and this 'new' address will actually be used
* here to connect.
*/
+ Curl_set_in_callback(data, true);
*sockfd = data->set.fopensocket(data->set.opensocket_client,
CURLSOCKTYPE_IPCXN,
(struct curl_sockaddr *)addr);
+ Curl_set_in_callback(data, false);
+ }
else
/* opensocket callback not set, so simply create the socket now */
*sockfd = socket(addr->family, addr->socktype, addr->protocol);
diff --git a/lib/connect.h b/lib/connect.h
index 39744863..193dc639 100644
--- a/lib/connect.h
+++ b/lib/connect.h
@@ -41,8 +41,6 @@ timediff_t Curl_timeleft(struct Curl_easy *data,
bool duringconnect);
#define DEFAULT_CONNECT_TIMEOUT 300000 /* milliseconds == five minutes */
-#define HAPPY_EYEBALLS_TIMEOUT 200 /* milliseconds to wait between
- IPv4/IPv6 connection attempts */
/*
* Used to extract socket and connectdata struct for the most recent
@@ -78,6 +76,11 @@ void Curl_persistconninfo(struct connectdata *conn);
int Curl_closesocket(struct connectdata *conn, curl_socket_t sock);
/*
+ * Get presentation format IP address and port from a sockaddr.
+ */
+bool Curl_getaddressinfo(struct sockaddr *sa, char *addr, long *port);
+
+/*
* The Curl_sockaddr_ex structure is basically libcurl's external API
* curl_sockaddr structure with enough space available to directly hold any
* protocol-specific address structures. The variable declared here will be
diff --git a/lib/content_encoding.c b/lib/content_encoding.c
index 46bef0ca..2b2188b7 100644
--- a/lib/content_encoding.c
+++ b/lib/content_encoding.c
@@ -726,7 +726,7 @@ static void identity_close_writer(struct connectdata *conn,
static const content_encoding identity_encoding = {
"identity",
- NULL,
+ "none",
identity_init_writer,
identity_unencode_write,
identity_close_writer,
diff --git a/lib/cookie.c b/lib/cookie.c
index c7afc7ae..63deee16 100644
--- a/lib/cookie.c
+++ b/lib/cookie.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -430,9 +430,6 @@ Curl_cookie_add(struct Curl_easy *data,
size_t nlen = strlen(name);
const char *endofn = &ptr[ nlen ];
- infof(data, "cookie size: name/val %d + %d bytes\n",
- nlen, len);
-
if(nlen >= (MAX_NAME-1) || len >= (MAX_NAME-1) ||
((nlen + len) > MAX_NAME)) {
/* too long individual name or contents, or too long combination of
diff --git a/lib/curl_addrinfo.c b/lib/curl_addrinfo.c
index ec76f754..95a3f105 100644
--- a/lib/curl_addrinfo.c
+++ b/lib/curl_addrinfo.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -50,6 +50,10 @@
# define in_addr_t unsigned long
#endif
+#if defined(WIN32) && defined(USE_UNIX_SOCKETS)
+#include <afunix.h>
+#endif
+
#include <stddef.h>
#include "curl_addrinfo.h"
diff --git a/lib/curl_config.h b/lib/curl_config.h
index 90a2a586..e8d34704 100644
--- a/lib/curl_config.h
+++ b/lib/curl_config.h
@@ -143,10 +143,7 @@
/* #undef HAVE_BUILTIN_AVAILABLE */
/* Define to 1 if you have the clock_gettime function and monotonic timer. */
-#if !defined(__APPLE__)
-/* CLOCK_MONOTONIC is not defined in mac when building for the host. */
#define HAVE_CLOCK_GETTIME_MONOTONIC 1
-#endif
/* Define to 1 if you have the closesocket function. */
/* #undef HAVE_CLOSESOCKET */
@@ -436,9 +433,7 @@
#define HAVE_LIBZ 1
/* Define to 1 if you have the <linux/tcp.h> header file. */
-#if !defined(__APPLE__)
#define HAVE_LINUX_TCP_H 1
-#endif
/* if your compiler supports LL */
#define HAVE_LL 1
@@ -462,14 +457,10 @@
#define HAVE_MEMORY_H 1
/* Define to 1 if you have the memrchr function or macro. */
-#if !defined(__APPLE__)
#define HAVE_MEMRCHR 1
-#endif
/* Define to 1 if you have the MSG_NOSIGNAL flag. */
-#if !defined(__APPLE__)
#define HAVE_MSG_NOSIGNAL 1
-#endif
/* Define to 1 if you have the <netdb.h> header file. */
#define HAVE_NETDB_H 1
@@ -526,6 +517,9 @@
/* Define to 1 if you have the `pipe' function. */
#define HAVE_PIPE 1
+/* if you have the PK11_CreateManagedGenericObject function */
+/* #undef HAVE_PK11_CREATEMANAGEDGENERICOBJECT */
+
/* Define to 1 if you have a working poll function. */
#define HAVE_POLL 1
@@ -739,6 +733,9 @@
/* Define to 1 if you have the <time.h> header file. */
#define HAVE_TIME_H 1
+/* Define this if time_t is unsigned */
+/* #undef HAVE_TIME_T_UNSIGNED */
+
/* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1
diff --git a/lib/curl_config.h.in b/lib/curl_config.h.in
index d7ed28de..0f2a8040 100644
--- a/lib/curl_config.h.in
+++ b/lib/curl_config.h.in
@@ -516,6 +516,9 @@
/* Define to 1 if you have the `pipe' function. */
#undef HAVE_PIPE
+/* if you have the PK11_CreateManagedGenericObject function */
+#undef HAVE_PK11_CREATEMANAGEDGENERICOBJECT
+
/* Define to 1 if you have a working poll function. */
#undef HAVE_POLL
@@ -729,6 +732,9 @@
/* Define to 1 if you have the <time.h> header file. */
#undef HAVE_TIME_H
+/* Define this if time_t is unsigned */
+#undef HAVE_TIME_T_UNSIGNED
+
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
diff --git a/lib/curl_ctype.c b/lib/curl_ctype.c
new file mode 100644
index 00000000..4f5abc20
--- /dev/null
+++ b/lib/curl_ctype.c
@@ -0,0 +1,122 @@
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+
+#include "curl_setup.h"
+
+#undef _U
+#define _U (1<<0) /* upper case */
+#undef _L
+#define _L (1<<1) /* lower case */
+#undef _N
+#define _N (1<<2) /* decimal numerical digit */
+#undef _S
+#define _S (1<<3) /* space */
+#undef _P
+#define _P (1<<4) /* punctuation */
+#undef _C
+#define _C (1<<5) /* control */
+#undef _X
+#define _X (1<<6) /* hexadecimal letter */
+#undef _B
+#define _B (1<<7) /* blank */
+
+static const unsigned char ascii[128] = {
+ _C, _C, _C, _C, _C, _C, _C, _C,
+ _C, _C|_S, _C|_S, _C|_S, _C|_S, _C|_S, _C, _C,
+ _C, _C, _C, _C, _C, _C, _C, _C,
+ _C, _C, _C, _C, _C, _C, _C, _C,
+ _S|_B, _P, _P, _P, _P, _P, _P, _P,
+ _P, _P, _P, _P, _P, _P, _P, _P,
+ _N, _N, _N, _N, _N, _N, _N, _N,
+ _N, _N, _P, _P, _P, _P, _P, _P,
+ _P, _U|_X, _U|_X, _U|_X, _U|_X, _U|_X, _U|_X, _U,
+ _U, _U, _U, _U, _U, _U, _U, _U,
+ _U, _U, _U, _U, _U, _U, _U, _U,
+ _U, _U, _U, _P, _P, _P, _P, _P,
+ _P, _L|_X, _L|_X, _L|_X, _L|_X, _L|_X, _L|_X, _L,
+ _L, _L, _L, _L, _L, _L, _L, _L,
+ _L, _L, _L, _L, _L, _L, _L, _L,
+ _L, _L, _L, _P, _P, _P, _P, _C
+};
+
+int Curl_isspace(int c)
+{
+ if((c < 0) || (c >= 0x80))
+ return FALSE;
+ return (ascii[c] & _S);
+}
+
+int Curl_isdigit(int c)
+{
+ if((c < 0) || (c >= 0x80))
+ return FALSE;
+ return (ascii[c] & _N);
+}
+
+int Curl_isalnum(int c)
+{
+ if((c < 0) || (c >= 0x80))
+ return FALSE;
+ return (ascii[c] & (_N|_U|_L));
+}
+
+int Curl_isxdigit(int c)
+{
+ if((c < 0) || (c >= 0x80))
+ return FALSE;
+ return (ascii[c] & (_N|_X));
+}
+
+int Curl_isgraph(int c)
+{
+ if((c < 0) || (c >= 0x80) || (c == ' '))
+ return FALSE;
+ return (ascii[c] & (_N|_X|_U|_L|_P|_S));
+}
+
+int Curl_isprint(int c)
+{
+ if((c < 0) || (c >= 0x80))
+ return FALSE;
+ return (ascii[c] & (_N|_X|_U|_L|_P|_S));
+}
+
+int Curl_isalpha(int c)
+{
+ if((c < 0) || (c >= 0x80))
+ return FALSE;
+ return (ascii[c] & (_U|_L));
+}
+
+int Curl_isupper(int c)
+{
+ if((c < 0) || (c >= 0x80))
+ return FALSE;
+ return (ascii[c] & (_U));
+}
+
+int Curl_islower(int c)
+{
+ if((c < 0) || (c >= 0x80))
+ return FALSE;
+ return (ascii[c] & (_L));
+}
diff --git a/lib/curl_ctype.h b/lib/curl_ctype.h
new file mode 100644
index 00000000..da3bd95a
--- /dev/null
+++ b/lib/curl_ctype.h
@@ -0,0 +1,48 @@
+#ifndef HEADER_CURL_CTYPE_H
+#define HEADER_CURL_CTYPE_H
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+
+int Curl_isspace(int c);
+int Curl_isdigit(int c);
+int Curl_isalnum(int c);
+int Curl_isxdigit(int c);
+int Curl_isgraph(int c);
+int Curl_isprint(int c);
+int Curl_isalpha(int c);
+int Curl_isupper(int c);
+int Curl_islower(int c);
+
+#define ISSPACE(x) (Curl_isspace((int) ((unsigned char)x)))
+#define ISDIGIT(x) (Curl_isdigit((int) ((unsigned char)x)))
+#define ISALNUM(x) (Curl_isalnum((int) ((unsigned char)x)))
+#define ISXDIGIT(x) (Curl_isxdigit((int) ((unsigned char)x)))
+#define ISGRAPH(x) (Curl_isgraph((int) ((unsigned char)x)))
+#define ISALPHA(x) (Curl_isalpha((int) ((unsigned char)x)))
+#define ISPRINT(x) (Curl_isprint((int) ((unsigned char)x)))
+#define ISUPPER(x) (Curl_isupper((int) ((unsigned char)x)))
+#define ISLOWER(x) (Curl_islower((int) ((unsigned char)x)))
+#define ISASCII(x) (((x) >= 0) && ((x) <= 0x80))
+#define ISBLANK(x) (int)((((unsigned char)x) == ' ') || \
+ (((unsigned char)x) == '\t'))
+
+#endif /* HEADER_CURL_CTYPE_H */
diff --git a/lib/curl_fnmatch.c b/lib/curl_fnmatch.c
index f33bba1f..0179a4f7 100644
--- a/lib/curl_fnmatch.c
+++ b/lib/curl_fnmatch.c
@@ -47,14 +47,7 @@
#define CURLFNM_UPPER (CURLFNM_CHARSET_LEN + 10)
typedef enum {
- CURLFNM_LOOP_DEFAULT = 0,
- CURLFNM_LOOP_BACKSLASH
-} loop_state;
-
-typedef enum {
CURLFNM_SCHS_DEFAULT = 0,
- CURLFNM_SCHS_MAYRANGE,
- CURLFNM_SCHS_MAYRANGE2,
CURLFNM_SCHS_RIGHTBR,
CURLFNM_SCHS_RIGHTBRLEFTBR
} setcharset_state;
@@ -64,6 +57,13 @@ typedef enum {
CURLFNM_PKW_DDOT
} parsekey_state;
+typedef enum {
+ CCLASS_OTHER = 0,
+ CCLASS_DIGIT,
+ CCLASS_UPPER,
+ CCLASS_LOWER
+} char_class;
+
#define SETCHARSET_OK 1
#define SETCHARSET_FAIL 0
@@ -81,12 +81,12 @@ static int parsekeyword(unsigned char **pattern, unsigned char *charset)
return SETCHARSET_FAIL;
switch(state) {
case CURLFNM_PKW_INIT:
- if(ISALPHA(c) && ISLOWER(c))
+ if(ISLOWER(c))
keyword[i] = c;
else if(c == ':')
state = CURLFNM_PKW_DDOT;
else
- return 0;
+ return SETCHARSET_FAIL;
break;
case CURLFNM_PKW_DDOT:
if(c == ']')
@@ -123,14 +123,48 @@ static int parsekeyword(unsigned char **pattern, unsigned char *charset)
return SETCHARSET_OK;
}
+/* Return the character class. */
+static char_class charclass(unsigned char c)
+{
+ if(ISUPPER(c))
+ return CCLASS_UPPER;
+ if(ISLOWER(c))
+ return CCLASS_LOWER;
+ if(ISDIGIT(c))
+ return CCLASS_DIGIT;
+ return CCLASS_OTHER;
+}
+
+/* Include a character or a range in set. */
+static void setcharorrange(unsigned char **pp, unsigned char *charset)
+{
+ unsigned char *p = (*pp)++;
+ unsigned char c = *p++;
+
+ charset[c] = 1;
+ if(ISALNUM(c) && *p++ == '-') {
+ char_class cc = charclass(c);
+ unsigned char endrange = *p++;
+
+ if(endrange == '\\')
+ endrange = *p++;
+ if(endrange >= c && charclass(endrange) == cc) {
+ while(c++ != endrange)
+ if(charclass(c) == cc) /* Chars in class may be not consecutive. */
+ charset[c] = 1;
+ *pp = p;
+ }
+ }
+}
+
/* returns 1 (true) if pattern is OK, 0 if is bad ("p" is pattern pointer) */
static int setcharset(unsigned char **p, unsigned char *charset)
{
setcharset_state state = CURLFNM_SCHS_DEFAULT;
- unsigned char rangestart = 0;
- unsigned char lastchar = 0;
bool something_found = FALSE;
unsigned char c;
+
+ memset(charset, 0, CURLFNM_CHSET_SIZE);
for(;;) {
c = **p;
if(!c)
@@ -138,14 +172,7 @@ static int setcharset(unsigned char **p, unsigned char *charset)
switch(state) {
case CURLFNM_SCHS_DEFAULT:
- if(ISALNUM(c)) { /* ASCII value */
- rangestart = c;
- charset[c] = 1;
- (*p)++;
- state = CURLFNM_SCHS_MAYRANGE;
- something_found = TRUE;
- }
- else if(c == ']') {
+ if(c == ']') {
if(something_found)
return SETCHARSET_OK;
something_found = TRUE;
@@ -154,26 +181,16 @@ static int setcharset(unsigned char **p, unsigned char *charset)
(*p)++;
}
else if(c == '[') {
- char c2 = *((*p) + 1);
- if(c2 == ':') { /* there has to be a keyword */
- (*p) += 2;
- if(parsekeyword(p, charset)) {
- state = CURLFNM_SCHS_DEFAULT;
- }
- else
- return SETCHARSET_FAIL;
- }
+ unsigned char *pp = *p + 1;
+
+ if(*pp++ == ':' && parsekeyword(&pp, charset))
+ *p = pp;
else {
charset[c] = 1;
(*p)++;
}
something_found = TRUE;
}
- else if(c == '?' || c == '*') {
- something_found = TRUE;
- charset[c] = 1;
- (*p)++;
- }
else if(c == '^' || c == '!') {
if(!something_found) {
if(charset[CURLFNM_NEGATE]) {
@@ -189,82 +206,17 @@ static int setcharset(unsigned char **p, unsigned char *charset)
}
else if(c == '\\') {
c = *(++(*p));
- if(ISPRINT((c))) {
- something_found = TRUE;
- state = CURLFNM_SCHS_MAYRANGE;
- charset[c] = 1;
- rangestart = c;
- (*p)++;
- }
+ if(c)
+ setcharorrange(p, charset);
else
- return SETCHARSET_FAIL;
+ charset['\\'] = 1;
+ something_found = TRUE;
}
else {
- charset[c] = 1;
- (*p)++;
+ setcharorrange(p, charset);
something_found = TRUE;
}
break;
- case CURLFNM_SCHS_MAYRANGE:
- if(c == '-') {
- charset[c] = 1;
- (*p)++;
- lastchar = '-';
- state = CURLFNM_SCHS_MAYRANGE2;
- }
- else if(c == '[') {
- state = CURLFNM_SCHS_DEFAULT;
- }
- else if(ISALNUM(c)) {
- charset[c] = 1;
- (*p)++;
- }
- else if(c == '\\') {
- c = *(++(*p));
- if(ISPRINT(c)) {
- charset[c] = 1;
- (*p)++;
- }
- else
- return SETCHARSET_FAIL;
- }
- else if(c == ']') {
- return SETCHARSET_OK;
- }
- else
- return SETCHARSET_FAIL;
- break;
- case CURLFNM_SCHS_MAYRANGE2:
- if(c == ']') {
- return SETCHARSET_OK;
- }
- else if(c == '\\') {
- c = *(++(*p));
- if(ISPRINT(c)) {
- charset[c] = 1;
- state = CURLFNM_SCHS_DEFAULT;
- (*p)++;
- }
- else
- return SETCHARSET_FAIL;
- }
- else if(c >= rangestart) {
- if((ISLOWER(c) && ISLOWER(rangestart)) ||
- (ISDIGIT(c) && ISDIGIT(rangestart)) ||
- (ISUPPER(c) && ISUPPER(rangestart))) {
- charset[lastchar] = 0;
- rangestart++;
- while(rangestart++ <= c)
- charset[rangestart-1] = 1;
- (*p)++;
- state = CURLFNM_SCHS_DEFAULT;
- }
- else
- return SETCHARSET_FAIL;
- }
- else
- return SETCHARSET_FAIL;
- break;
case CURLFNM_SCHS_RIGHTBR:
if(c == '[') {
state = CURLFNM_SCHS_RIGHTBRLEFTBR;
@@ -286,14 +238,11 @@ static int setcharset(unsigned char **p, unsigned char *charset)
goto fail;
break;
case CURLFNM_SCHS_RIGHTBRLEFTBR:
- if(c == ']') {
+ if(c == ']')
return SETCHARSET_OK;
- }
- else {
- state = CURLFNM_SCHS_DEFAULT;
- charset[c] = 1;
- (*p)++;
- }
+ state = CURLFNM_SCHS_DEFAULT;
+ charset[c] = 1;
+ (*p)++;
break;
}
}
@@ -304,107 +253,93 @@ fail:
static int loop(const unsigned char *pattern, const unsigned char *string,
int maxstars)
{
- loop_state state = CURLFNM_LOOP_DEFAULT;
unsigned char *p = (unsigned char *)pattern;
unsigned char *s = (unsigned char *)string;
unsigned char charset[CURLFNM_CHSET_SIZE] = { 0 };
- int rc = 0;
for(;;) {
- switch(state) {
- case CURLFNM_LOOP_DEFAULT:
- if(*p == '*') {
- if(!maxstars)
- return CURL_FNMATCH_NOMATCH;
- while(*(p + 1) == '*') /* eliminate multiple stars */
- p++;
- if(*s == '\0' && *(p + 1) == '\0')
- return CURL_FNMATCH_MATCH;
- rc = loop(p + 1, s, maxstars - 1); /* *.txt matches .txt <=>
- .txt matches .txt */
- if(rc == CURL_FNMATCH_MATCH)
+ unsigned char *pp;
+
+ switch(*p) {
+ case '*':
+ if(!maxstars)
+ return CURL_FNMATCH_NOMATCH;
+ /* Regroup consecutive stars and question marks. This can be done because
+ '*?*?*' can be expressed as '??*'. */
+ for(;;) {
+ if(*++p == '\0')
return CURL_FNMATCH_MATCH;
- if(*s) /* let the star eat up one character */
- s++;
- else
- return CURL_FNMATCH_NOMATCH;
- }
- else if(*p == '?') {
- if(ISPRINT(*s)) {
- s++;
- p++;
+ if(*p == '?') {
+ if(!*s++)
+ return CURL_FNMATCH_NOMATCH;
}
- else if(*s == '\0')
- return CURL_FNMATCH_NOMATCH;
- else
- return CURL_FNMATCH_FAIL; /* cannot deal with other character */
+ else if(*p != '*')
+ break;
}
- else if(*p == '\0') {
- if(*s == '\0')
+ /* Skip string characters until we find a match with pattern suffix. */
+ for(maxstars--; *s; s++) {
+ if(loop(p, s, maxstars) == CURL_FNMATCH_MATCH)
return CURL_FNMATCH_MATCH;
- return CURL_FNMATCH_NOMATCH;
}
- else if(*p == '\\') {
- state = CURLFNM_LOOP_BACKSLASH;
+ return CURL_FNMATCH_NOMATCH;
+ case '?':
+ if(!*s)
+ return CURL_FNMATCH_NOMATCH;
+ s++;
+ p++;
+ break;
+ case '\0':
+ return *s? CURL_FNMATCH_NOMATCH: CURL_FNMATCH_MATCH;
+ case '\\':
+ if(p[1])
p++;
- }
- else if(*p == '[') {
- unsigned char *pp = p + 1; /* cannot handle with pointer to register */
- if(setcharset(&pp, charset)) {
- int found = FALSE;
- if(charset[(unsigned int)*s])
- found = TRUE;
- else if(charset[CURLFNM_ALNUM])
- found = ISALNUM(*s);
- else if(charset[CURLFNM_ALPHA])
- found = ISALPHA(*s);
- else if(charset[CURLFNM_DIGIT])
- found = ISDIGIT(*s);
- else if(charset[CURLFNM_XDIGIT])
- found = ISXDIGIT(*s);
- else if(charset[CURLFNM_PRINT])
- found = ISPRINT(*s);
- else if(charset[CURLFNM_SPACE])
- found = ISSPACE(*s);
- else if(charset[CURLFNM_UPPER])
- found = ISUPPER(*s);
- else if(charset[CURLFNM_LOWER])
- found = ISLOWER(*s);
- else if(charset[CURLFNM_BLANK])
- found = ISBLANK(*s);
- else if(charset[CURLFNM_GRAPH])
- found = ISGRAPH(*s);
+ if(*s++ != *p++)
+ return CURL_FNMATCH_NOMATCH;
+ break;
+ case '[':
+ pp = p + 1; /* Copy in case of syntax error in set. */
+ if(setcharset(&pp, charset)) {
+ int found = FALSE;
+ if(!*s)
+ return CURL_FNMATCH_NOMATCH;
+ if(charset[(unsigned int)*s])
+ found = TRUE;
+ else if(charset[CURLFNM_ALNUM])
+ found = ISALNUM(*s);
+ else if(charset[CURLFNM_ALPHA])
+ found = ISALPHA(*s);
+ else if(charset[CURLFNM_DIGIT])
+ found = ISDIGIT(*s);
+ else if(charset[CURLFNM_XDIGIT])
+ found = ISXDIGIT(*s);
+ else if(charset[CURLFNM_PRINT])
+ found = ISPRINT(*s);
+ else if(charset[CURLFNM_SPACE])
+ found = ISSPACE(*s);
+ else if(charset[CURLFNM_UPPER])
+ found = ISUPPER(*s);
+ else if(charset[CURLFNM_LOWER])
+ found = ISLOWER(*s);
+ else if(charset[CURLFNM_BLANK])
+ found = ISBLANK(*s);
+ else if(charset[CURLFNM_GRAPH])
+ found = ISGRAPH(*s);
- if(charset[CURLFNM_NEGATE])
- found = !found;
+ if(charset[CURLFNM_NEGATE])
+ found = !found;
- if(found) {
- p = pp + 1;
- if(*s)
- /* don't advance if we're matching on an empty string */
- s++;
- memset(charset, 0, CURLFNM_CHSET_SIZE);
- }
- else
- return CURL_FNMATCH_NOMATCH;
- }
- else
- return CURL_FNMATCH_FAIL;
- }
- else {
- if(*p++ != *s++)
+ if(!found)
return CURL_FNMATCH_NOMATCH;
+ p = pp + 1;
+ s++;
+ break;
}
- break;
- case CURLFNM_LOOP_BACKSLASH:
- if(ISPRINT(*p)) {
- if(*p++ == *s++)
- state = CURLFNM_LOOP_DEFAULT;
- else
- return CURL_FNMATCH_NOMATCH;
- }
- else
- return CURL_FNMATCH_FAIL;
+
+ /* Syntax error in set: this must be taken as a regular character. */
+ /* FALLTHROUGH */
+ default:
+ if(*p++ != *s++)
+ return CURL_FNMATCH_NOMATCH;
break;
}
}
diff --git a/lib/curl_gssapi.c b/lib/curl_gssapi.c
index 83f3fa0c..f007986c 100644
--- a/lib/curl_gssapi.c
+++ b/lib/curl_gssapi.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 2011 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 2011 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -27,6 +27,11 @@
#include "curl_gssapi.h"
#include "sendf.h"
+/* The last 3 #include files should be in this order */
+#include "curl_printf.h"
+#include "curl_memory.h"
+#include "memdebug.h"
+
static char spnego_oid_bytes[] = "\x2b\x06\x01\x05\x05\x02";
gss_OID_desc Curl_spnego_mech_oid = { 6, &spnego_oid_bytes };
static char krb5_oid_bytes[] = "\x2a\x86\x48\x86\xf7\x12\x01\x02\x02";
diff --git a/lib/curl_ntlm_wb.c b/lib/curl_ntlm_wb.c
index 03f47a3a..353a6564 100644
--- a/lib/curl_ntlm_wb.c
+++ b/lib/curl_ntlm_wb.c
@@ -364,7 +364,7 @@ CURLcode Curl_output_ntlm_wb(struct connectdata *conn,
case NTLMSTATE_TYPE1:
default:
/* Use Samba's 'winbind' daemon to support NTLM authentication,
- * by delegating the NTLM challenge/response protocal to a helper
+ * by delegating the NTLM challenge/response protocol to a helper
* in ntlm_auth.
* http://devel.squid-cache.org/ntlm/squid_helper_protocol.html
* https://www.samba.org/samba/docs/man/manpages-3/winbindd.8.html
diff --git a/lib/curl_range.c b/lib/curl_range.c
new file mode 100644
index 00000000..aa3c4933
--- /dev/null
+++ b/lib/curl_range.c
@@ -0,0 +1,95 @@
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+
+#include "curl_setup.h"
+#include <curl/curl.h>
+#include "curl_range.h"
+#include "sendf.h"
+#include "strtoofft.h"
+
+/* Only include this function if one or more of FTP, FILE are enabled. */
+#if !defined(CURL_DISABLE_FTP) || !defined(CURL_DISABLE_FILE)
+
+ /*
+ Check if this is a range download, and if so, set the internal variables
+ properly.
+ */
+CURLcode Curl_range(struct connectdata *conn)
+{
+ curl_off_t from, to;
+ char *ptr;
+ char *ptr2;
+ struct Curl_easy *data = conn->data;
+
+ if(data->state.use_range && data->state.range) {
+ CURLofft from_t;
+ CURLofft to_t;
+ from_t = curlx_strtoofft(data->state.range, &ptr, 0, &from);
+ if(from_t == CURL_OFFT_FLOW)
+ return CURLE_RANGE_ERROR;
+ while(*ptr && (ISSPACE(*ptr) || (*ptr == '-')))
+ ptr++;
+ to_t = curlx_strtoofft(ptr, &ptr2, 0, &to);
+ if(to_t == CURL_OFFT_FLOW)
+ return CURLE_RANGE_ERROR;
+ if((to_t == CURL_OFFT_INVAL) && !from_t) {
+ /* X - */
+ data->state.resume_from = from;
+ DEBUGF(infof(data, "RANGE %" CURL_FORMAT_CURL_OFF_T " to end of file\n",
+ from));
+ }
+ else if((from_t == CURL_OFFT_INVAL) && !to_t) {
+ /* -Y */
+ data->req.maxdownload = to;
+ data->state.resume_from = -to;
+ DEBUGF(infof(data, "RANGE the last %" CURL_FORMAT_CURL_OFF_T " bytes\n",
+ to));
+ }
+ else {
+ /* X-Y */
+ curl_off_t totalsize;
+
+ /* Ensure the range is sensible - to should follow from. */
+ if(from > to)
+ return CURLE_RANGE_ERROR;
+
+ totalsize = to - from;
+ if(totalsize == CURL_OFF_T_MAX)
+ return CURLE_RANGE_ERROR;
+
+ data->req.maxdownload = totalsize + 1; /* include last byte */
+ data->state.resume_from = from;
+ DEBUGF(infof(data, "RANGE from %" CURL_FORMAT_CURL_OFF_T
+ " getting %" CURL_FORMAT_CURL_OFF_T " bytes\n",
+ from, data->req.maxdownload));
+ }
+ DEBUGF(infof(data, "range-download from %" CURL_FORMAT_CURL_OFF_T
+ " to %" CURL_FORMAT_CURL_OFF_T ", totally %"
+ CURL_FORMAT_CURL_OFF_T " bytes\n",
+ from, to, data->req.maxdownload));
+ }
+ else
+ data->req.maxdownload = -1;
+ return CURLE_OK;
+}
+
+#endif
diff --git a/lib/curl_range.h b/lib/curl_range.h
new file mode 100644
index 00000000..2350df99
--- /dev/null
+++ b/lib/curl_range.h
@@ -0,0 +1,30 @@
+#ifndef HEADER_CURL_RANGE_H
+#define HEADER_CURL_RANGE_H
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+
+#include "curl_setup.h"
+#include "urldata.h"
+
+CURLcode Curl_range(struct connectdata *conn);
+
+#endif /* HEADER_CURL_RANGE_H */
diff --git a/lib/curl_sasl.c b/lib/curl_sasl.c
index 550433d6..7052bd91 100644
--- a/lib/curl_sasl.c
+++ b/lib/curl_sasl.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 2012 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 2012 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -361,15 +361,6 @@ CURLcode Curl_sasl_start(struct SASL *sasl, struct connectdata *conn,
conn->oauth_bearer,
&resp, &len);
}
- else if(enabledmechs & SASL_MECH_LOGIN) {
- mech = SASL_MECH_STRING_LOGIN;
- state1 = SASL_LOGIN;
- state2 = SASL_LOGIN_PASSWD;
- sasl->authused = SASL_MECH_LOGIN;
-
- if(force_ir || data->set.sasl_ir)
- result = Curl_auth_create_login_message(data, conn->user, &resp, &len);
- }
else if(enabledmechs & SASL_MECH_PLAIN) {
mech = SASL_MECH_STRING_PLAIN;
state1 = SASL_PLAIN;
@@ -379,6 +370,15 @@ CURLcode Curl_sasl_start(struct SASL *sasl, struct connectdata *conn,
result = Curl_auth_create_plain_message(data, conn->user, conn->passwd,
&resp, &len);
}
+ else if(enabledmechs & SASL_MECH_LOGIN) {
+ mech = SASL_MECH_STRING_LOGIN;
+ state1 = SASL_LOGIN;
+ state2 = SASL_LOGIN_PASSWD;
+ sasl->authused = SASL_MECH_LOGIN;
+
+ if(force_ir || data->set.sasl_ir)
+ result = Curl_auth_create_login_message(data, conn->user, &resp, &len);
+ }
}
if(!result && mech) {
diff --git a/lib/curl_setup.h b/lib/curl_setup.h
index 609ee9ea..f128696e 100644
--- a/lib/curl_setup.h
+++ b/lib/curl_setup.h
@@ -389,6 +389,11 @@
# define LSEEK_ERROR (off_t)-1
#endif
+#ifndef SIZEOF_TIME_T
+/* assume default size of time_t to be 32 bit */
+#define SIZEOF_TIME_T 4
+#endif
+
/*
* Default sizeof(off_t) in case it hasn't been defined in config file.
*/
@@ -424,6 +429,24 @@
#endif
#define CURL_OFF_T_MIN (-CURL_OFF_T_MAX - CURL_OFF_T_C(1))
+#if (SIZEOF_TIME_T == 4)
+# ifdef HAVE_TIME_T_UNSIGNED
+# define TIME_T_MAX UINT_MAX
+# define TIME_T_MIN 0
+# else
+# define TIME_T_MAX INT_MAX
+# define TIME_T_MIN INT_MIN
+# endif
+#else
+# ifdef HAVE_TIME_T_UNSIGNED
+# define TIME_T_MAX 0xFFFFFFFFFFFFFFFF
+# define TIME_T_MIN 0
+# else
+# define TIME_T_MAX 0x7FFFFFFFFFFFFFFF
+# define TIME_T_MIN (-TIME_T_MAX - 1)
+# endif
+#endif
+
/*
* Arg 2 type for gethostname in case it hasn't been defined in config file.
*/
@@ -607,11 +630,6 @@ int netware_init(void);
#error "Both libidn2 and WinIDN are enabled, choose one."
#endif
-#ifndef SIZEOF_TIME_T
-/* assume default size of time_t to be 32 bit */
-#define SIZEOF_TIME_T 4
-#endif
-
#define LIBIDN_REQUIRED_VERSION "0.4.1"
#if defined(USE_GNUTLS) || defined(USE_OPENSSL) || defined(USE_NSS) || \
@@ -751,11 +769,11 @@ endings either CRLF or LF so 't' is appropriate.
# if defined(WIN32) || defined(__CYGWIN__)
# define USE_RECV_BEFORE_SEND_WORKAROUND
# endif
-#else /* DONT_USE_RECV_BEFORE_SEND_WORKAROUNDS */
+#else /* DONT_USE_RECV_BEFORE_SEND_WORKAROUND */
# ifdef USE_RECV_BEFORE_SEND_WORKAROUND
# undef USE_RECV_BEFORE_SEND_WORKAROUND
# endif
-#endif /* DONT_USE_RECV_BEFORE_SEND_WORKAROUNDS */
+#endif /* DONT_USE_RECV_BEFORE_SEND_WORKAROUND */
/* Detect Windows App environment which has a restricted access
* to the Win32 APIs. */
diff --git a/lib/curl_setup_once.h b/lib/curl_setup_once.h
index a5b542c6..6d01ea15 100644
--- a/lib/curl_setup_once.h
+++ b/lib/curl_setup_once.h
@@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2013, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -101,7 +101,6 @@
# endif
#endif
-
/*
* Definition of timeval struct for platforms that don't have it.
*/
@@ -274,25 +273,6 @@ struct timeval {
# define sfcntl fcntl
#endif
-/*
- * Uppercase macro versions of ANSI/ISO is*() functions/macros which
- * avoid negative number inputs with argument byte codes > 127.
- */
-
-#define ISSPACE(x) (isspace((int) ((unsigned char)x)))
-#define ISDIGIT(x) (isdigit((int) ((unsigned char)x)))
-#define ISALNUM(x) (isalnum((int) ((unsigned char)x)))
-#define ISXDIGIT(x) (isxdigit((int) ((unsigned char)x)))
-#define ISGRAPH(x) (isgraph((int) ((unsigned char)x)))
-#define ISALPHA(x) (isalpha((int) ((unsigned char)x)))
-#define ISPRINT(x) (isprint((int) ((unsigned char)x)))
-#define ISUPPER(x) (isupper((int) ((unsigned char)x)))
-#define ISLOWER(x) (islower((int) ((unsigned char)x)))
-#define ISASCII(x) (isascii((int) ((unsigned char)x)))
-
-#define ISBLANK(x) (int)((((unsigned char)x) == ' ') || \
- (((unsigned char)x) == '\t'))
-
#define TOLOWER(x) (tolower((int) ((unsigned char)x)))
@@ -347,6 +327,7 @@ struct timeval {
#define FALSE false
#endif
+#include "curl_ctype.h"
/*
* Macro WHILE_FALSE may be used to build single-iteration do-while loops,
diff --git a/lib/easy.c b/lib/easy.c
index edc716d0..64c647be 100644
--- a/lib/easy.c
+++ b/lib/easy.c
@@ -61,6 +61,7 @@
#include "strdup.h"
#include "progress.h"
#include "easyif.h"
+#include "multiif.h"
#include "select.h"
#include "sendf.h" /* for failf function prototype */
#include "connect.h" /* for Curl_getconnectinfo */
@@ -73,6 +74,7 @@
#include "sigpipe.h"
#include "ssh.h"
#include "setopt.h"
+#include "http_digest.h"
/* The last 3 #include files should be in this order */
#include "curl_printf.h"
@@ -760,6 +762,9 @@ static CURLcode easy_perform(struct Curl_easy *data, bool events)
data->multi_easy = multi;
}
+ if(multi->in_callback)
+ return CURLE_RECURSIVE_API_CALL;
+
/* Copy the MAXCONNECTS option to the multi handle */
curl_multi_setopt(multi, CURLMOPT_MAXCONNECTS, data->set.maxconnects);
@@ -1017,6 +1022,7 @@ void curl_easy_reset(struct Curl_easy *data)
/* zero out authentication data: */
memset(&data->state.authhost, 0, sizeof(struct auth));
memset(&data->state.authproxy, 0, sizeof(struct auth));
+ Curl_digest_cleanup(data);
}
/*
@@ -1028,6 +1034,9 @@ void curl_easy_reset(struct Curl_easy *data)
* the pausing, you may get your write callback called at this point.
*
* Action is a bitmask consisting of CURLPAUSE_* bits in curl/curl.h
+ *
+ * NOTE: This is one of few API functions that are allowed to be called from
+ * within a callback.
*/
CURLcode curl_easy_pause(struct Curl_easy *data, int action)
{
@@ -1070,10 +1079,8 @@ CURLcode curl_easy_pause(struct Curl_easy *data, int action)
/* even if one function returns error, this loops through and frees all
buffers */
if(!result)
- result = Curl_client_chop_write(conn,
- writebuf[i].type,
- writebuf[i].buf,
- writebuf[i].len);
+ result = Curl_client_write(conn, writebuf[i].type, writebuf[i].buf,
+ writebuf[i].len);
free(writebuf[i].buf);
}
@@ -1132,6 +1139,9 @@ CURLcode curl_easy_recv(struct Curl_easy *data, void *buffer, size_t buflen,
ssize_t n1;
struct connectdata *c;
+ if(Curl_is_in_callback(data))
+ return CURLE_RECURSIVE_API_CALL;
+
result = easy_connection(data, &sfd, &c);
if(result)
return result;
@@ -1159,6 +1169,9 @@ CURLcode curl_easy_send(struct Curl_easy *data, const void *buffer,
ssize_t n1;
struct connectdata *c = NULL;
+ if(Curl_is_in_callback(data))
+ return CURLE_RECURSIVE_API_CALL;
+
result = easy_connection(data, &sfd, &c);
if(result)
return result;
diff --git a/lib/file.c b/lib/file.c
index 0bbc0e18..db04cc2d 100644
--- a/lib/file.c
+++ b/lib/file.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -61,6 +61,7 @@
#include "url.h"
#include "parsedate.h" /* for the week day and month names */
#include "warnless.h"
+#include "curl_range.h"
/* The last 3 #include files should be in this order */
#include "curl_printf.h"
#include "curl_memory.h"
@@ -125,65 +126,6 @@ static CURLcode file_setup_connection(struct connectdata *conn)
return CURLE_OK;
}
- /*
- Check if this is a range download, and if so, set the internal variables
- properly. This code is copied from the FTP implementation and might as
- well be factored out.
- */
-static CURLcode file_range(struct connectdata *conn)
-{
- curl_off_t from, to;
- curl_off_t totalsize = -1;
- char *ptr;
- char *ptr2;
- struct Curl_easy *data = conn->data;
-
- if(data->state.use_range && data->state.range) {
- CURLofft from_t;
- CURLofft to_t;
- from_t = curlx_strtoofft(data->state.range, &ptr, 0, &from);
- if(from_t == CURL_OFFT_FLOW)
- return CURLE_RANGE_ERROR;
- while(*ptr && (ISSPACE(*ptr) || (*ptr == '-')))
- ptr++;
- to_t = curlx_strtoofft(ptr, &ptr2, 0, &to);
- if(to_t == CURL_OFFT_FLOW)
- return CURLE_RANGE_ERROR;
- if((to_t == CURL_OFFT_INVAL) && !from_t) {
- /* X - */
- data->state.resume_from = from;
- DEBUGF(infof(data, "RANGE %" CURL_FORMAT_CURL_OFF_T " to end of file\n",
- from));
- }
- else if((from_t == CURL_OFFT_INVAL) && !to_t) {
- /* -Y */
- data->req.maxdownload = to;
- data->state.resume_from = -to;
- DEBUGF(infof(data, "RANGE the last %" CURL_FORMAT_CURL_OFF_T " bytes\n",
- to));
- }
- else {
- /* X-Y */
- totalsize = to-from;
- if(totalsize == CURL_OFF_T_MAX)
- /* this is too big to increase, so bail out */
- return CURLE_RANGE_ERROR;
- data->req.maxdownload = totalsize + 1; /* include last byte */
- data->state.resume_from = from;
- DEBUGF(infof(data, "RANGE from %" CURL_FORMAT_CURL_OFF_T
- " getting %" CURL_FORMAT_CURL_OFF_T " bytes\n",
- from, data->req.maxdownload));
- }
- DEBUGF(infof(data, "range-download from %" CURL_FORMAT_CURL_OFF_T
- " to %" CURL_FORMAT_CURL_OFF_T ", totally %"
- CURL_FORMAT_CURL_OFF_T " bytes\n",
- from, to, data->req.maxdownload));
- }
- else
- data->req.maxdownload = -1;
- return CURLE_OK;
-}
-
/*
* file_connect() gets called from Curl_protocol_connect() to allow us to
* do protocol-specific actions at connect-time. We emulate a
@@ -461,12 +403,12 @@ static CURLcode file_do(struct connectdata *conn, bool *done)
/* we could stat it, then read out the size */
expected_size = statbuf.st_size;
/* and store the modification time */
- data->info.filetime = (long)statbuf.st_mtime;
+ data->info.filetime = statbuf.st_mtime;
fstated = TRUE;
}
if(fstated && !data->state.range && data->set.timecondition) {
- if(!Curl_meets_timecondition(data, (time_t)data->info.filetime)) {
+ if(!Curl_meets_timecondition(data, data->info.filetime)) {
*done = TRUE;
return CURLE_OK;
}
@@ -514,7 +456,9 @@ static CURLcode file_do(struct connectdata *conn, bool *done)
}
/* Check whether file range has been specified */
- file_range(conn);
+ result = Curl_range(conn);
+ if(result)
+ return result;
/* Adjust the start offset in case we want to get the N last bytes
* of the stream iff the filesize could be determined */
diff --git a/lib/formdata.c b/lib/formdata.c
index d0579c52..f9124105 100644
--- a/lib/formdata.c
+++ b/lib/formdata.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -155,60 +155,6 @@ static FormInfo * AddFormInfo(char *value,
/***************************************************************************
*
- * ContentTypeForFilename()
- *
- * Provides content type for filename if one of the known types (else
- * (either the prevtype or the default is returned).
- *
- * Returns some valid contenttype for filename.
- *
- ***************************************************************************/
-static const char *ContentTypeForFilename(const char *filename,
- const char *prevtype)
-{
- const char *contenttype = NULL;
- unsigned int i;
- /*
- * No type was specified, we scan through a few well-known
- * extensions and pick the first we match!
- */
- struct ContentType {
- const char *extension;
- const char *type;
- };
- static const struct ContentType ctts[]={
- {".gif", "image/gif"},
- {".jpg", "image/jpeg"},
- {".jpeg", "image/jpeg"},
- {".txt", "text/plain"},
- {".html", "text/html"},
- {".xml", "application/xml"}
- };
-
- if(prevtype)
- /* default to the previously set/used! */
- contenttype = prevtype;
- else
- contenttype = HTTPPOST_CONTENTTYPE_DEFAULT;
-
- if(filename) { /* in case a NULL was passed in */
- for(i = 0; i<sizeof(ctts)/sizeof(ctts[0]); i++) {
- if(strlen(filename) >= strlen(ctts[i].extension)) {
- if(strcasecompare(filename +
- strlen(filename) - strlen(ctts[i].extension),
- ctts[i].extension)) {
- contenttype = ctts[i].type;
- break;
- }
- }
- }
- }
- /* we have a contenttype by now */
- return contenttype;
-}
-
-/***************************************************************************
- *
* FormAdd()
*
* Stores a formpost parameter and builds the appropriate linked list.
@@ -627,9 +573,15 @@ CURLFORMcode FormAdd(struct curl_httppost **httppost,
!form->contenttype) {
char *f = form->flags & HTTPPOST_BUFFER?
form->showfilename : form->value;
+ char const *type;
+ type = Curl_mime_contenttype(f);
+ if(!type)
+ type = prevtype;
+ if(!type)
+ type = FILE_CONTENTTYPE_DEFAULT;
/* our contenttype is missing */
- form->contenttype = strdup(ContentTypeForFilename(f, prevtype));
+ form->contenttype = strdup(type);
if(!form->contenttype) {
return_value = CURL_FORMADD_MEMORY;
break;
diff --git a/lib/ftp.c b/lib/ftp.c
index 8042edf4..e2cc38b6 100644
--- a/lib/ftp.c
+++ b/lib/ftp.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -59,6 +59,7 @@
#include "ftp.h"
#include "fileinfo.h"
#include "ftplistparser.h"
+#include "curl_range.h"
#include "curl_sec.h"
#include "strtoofft.h"
#include "strcase.h"
@@ -310,9 +311,11 @@ static CURLcode AcceptServerConnect(struct connectdata *conn)
int error = 0;
/* activate callback for setting socket options */
+ Curl_set_in_callback(data, true);
error = data->set.fsockopt(data->set.sockopt_client,
s,
CURLSOCKTYPE_ACCEPT);
+ Curl_set_in_callback(data, false);
if(error) {
close_secondarysocket(conn);
@@ -1471,7 +1474,7 @@ static CURLcode ftp_state_list(struct connectdata *conn)
slashPos = strrchr(inpath, '/');
n = slashPos - inpath;
}
- result = Curl_urldecode(data, inpath, n, &lstArg, NULL, FALSE);
+ result = Curl_urldecode(data, inpath, n, &lstArg, NULL, TRUE);
if(result)
return result;
}
@@ -1535,7 +1538,7 @@ static CURLcode ftp_state_type(struct connectdata *conn)
date. */
if(data->set.opt_no_body && ftpc->file &&
ftp_need_type(conn, data->set.prefer_ascii)) {
- /* The SIZE command is _not_ RFC 959 specified, and therefor many servers
+ /* The SIZE command is _not_ RFC 959 specified, and therefore many servers
may not support it! It is however the only way we have to get a file's
size! */
@@ -1615,8 +1618,10 @@ static CURLcode ftp_state_ul_setup(struct connectdata *conn,
/* Let's read off the proper amount of bytes from the input. */
if(conn->seek_func) {
+ Curl_set_in_callback(data, true);
seekerr = conn->seek_func(conn->seek_client, data->state.resume_from,
SEEK_SET);
+ Curl_set_in_callback(data, true);
}
if(seekerr != CURL_SEEKFUNC_OK) {
@@ -2060,7 +2065,7 @@ static CURLcode ftp_state_mdtm_resp(struct connectdata *conn,
"%04d%02d%02d %02d:%02d:%02d GMT",
year, month, day, hour, minute, second);
/* now, convert this into a time() value: */
- data->info.filetime = (long)curl_getdate(timebuf, &secs);
+ data->info.filetime = curl_getdate(timebuf, &secs);
}
#ifdef CURL_FTP_HTTPSTYLE_HEAD
@@ -2072,7 +2077,7 @@ static CURLcode ftp_state_mdtm_resp(struct connectdata *conn,
data->set.get_filetime &&
(data->info.filetime >= 0) ) {
char headerbuf[128];
- time_t filetime = (time_t)data->info.filetime;
+ time_t filetime = data->info.filetime;
struct tm buffer;
const struct tm *tm = &buffer;
@@ -3180,14 +3185,16 @@ static CURLcode ftp_done(struct connectdata *conn, CURLcode status,
if(data->state.wildcardmatch) {
if(data->set.chunk_end && ftpc->file) {
+ Curl_set_in_callback(data, true);
data->set.chunk_end(data->wildcard.customptr);
+ Curl_set_in_callback(data, false);
}
ftpc->known_filesize = -1;
}
if(!result)
/* get the "raw" path */
- result = Curl_urldecode(data, path_to_use, 0, &path, NULL, FALSE);
+ result = Curl_urldecode(data, path_to_use, 0, &path, NULL, TRUE);
if(result) {
/* We can limp along anyway (and should try to since we may already be in
* the error path) */
@@ -3463,62 +3470,6 @@ ftp_pasv_verbose(struct connectdata *conn,
#endif
/*
- Check if this is a range download, and if so, set the internal variables
- properly.
- */
-
-static CURLcode ftp_range(struct connectdata *conn)
-{
- curl_off_t from, to;
- char *ptr;
- struct Curl_easy *data = conn->data;
- struct ftp_conn *ftpc = &conn->proto.ftpc;
-
- if(data->state.use_range && data->state.range) {
- CURLofft from_t;
- CURLofft to_t;
- from_t = curlx_strtoofft(data->state.range, &ptr, 0, &from);
- if(from_t == CURL_OFFT_FLOW)
- return CURLE_RANGE_ERROR;
- while(*ptr && (ISSPACE(*ptr) || (*ptr == '-')))
- ptr++;
- to_t = curlx_strtoofft(ptr, NULL, 0, &to);
- if(to_t == CURL_OFFT_FLOW)
- return CURLE_RANGE_ERROR;
- if((to_t == CURL_OFFT_INVAL) && !from_t) {
- /* X - */
- data->state.resume_from = from;
- DEBUGF(infof(conn->data, "FTP RANGE %" CURL_FORMAT_CURL_OFF_T
- " to end of file\n", from));
- }
- else if(!to_t && (from_t == CURL_OFFT_INVAL)) {
- /* -Y */
- data->req.maxdownload = to;
- data->state.resume_from = -to;
- DEBUGF(infof(conn->data, "FTP RANGE the last %" CURL_FORMAT_CURL_OFF_T
- " bytes\n", to));
- }
- else {
- /* X-Y */
- data->req.maxdownload = (to - from) + 1; /* include last byte */
- data->state.resume_from = from;
- DEBUGF(infof(conn->data, "FTP RANGE from %" CURL_FORMAT_CURL_OFF_T
- " getting %" CURL_FORMAT_CURL_OFF_T " bytes\n",
- from, data->req.maxdownload));
- }
- DEBUGF(infof(conn->data, "range-download from %" CURL_FORMAT_CURL_OFF_T
- " to %" CURL_FORMAT_CURL_OFF_T ", totally %"
- CURL_FORMAT_CURL_OFF_T " bytes\n",
- from, to, data->req.maxdownload));
- ftpc->dont_check = TRUE; /* don't check for successful transfer */
- }
- else
- data->req.maxdownload = -1;
- return CURLE_OK;
-}
-
-
-/*
* ftp_do_more()
*
* This function shall be called when the second FTP (data) connection is
@@ -3640,7 +3591,13 @@ static CURLcode ftp_do_more(struct connectdata *conn, int *completep)
/* download */
ftp->downloadsize = -1; /* unknown as of yet */
- result = ftp_range(conn);
+ result = Curl_range(conn);
+
+ if(result == CURLE_OK && data->req.maxdownload >= 0) {
+ /* Don't check for successful transfer */
+ ftpc->dont_check = TRUE;
+ }
+
if(result)
;
else if(data->set.ftp_list_only || !ftpc->file) {
@@ -3883,8 +3840,11 @@ static CURLcode wc_statemach(struct connectdata *conn)
infof(conn->data, "Wildcard - START of \"%s\"\n", finfo->filename);
if(conn->data->set.chunk_bgn) {
- long userresponse = conn->data->set.chunk_bgn(
+ long userresponse;
+ Curl_set_in_callback(conn->data, true);
+ userresponse = conn->data->set.chunk_bgn(
finfo, wildcard->customptr, (int)wildcard->filelist.size);
+ Curl_set_in_callback(conn->data, false);
switch(userresponse) {
case CURL_CHUNK_BGN_FUNC_SKIP:
infof(conn->data, "Wildcard - \"%s\" skipped by user\n",
@@ -3920,8 +3880,11 @@ static CURLcode wc_statemach(struct connectdata *conn)
} break;
case CURLWC_SKIP: {
- if(conn->data->set.chunk_end)
+ if(conn->data->set.chunk_end) {
+ Curl_set_in_callback(conn->data, true);
conn->data->set.chunk_end(conn->data->wildcard.customptr);
+ Curl_set_in_callback(conn->data, false);
+ }
Curl_llist_remove(&wildcard->filelist, wildcard->filelist.head, NULL);
wildcard->state = (wildcard->filelist.size == 0) ?
CURLWC_CLEAN : CURLWC_DOWNLOADING;
@@ -4192,7 +4155,7 @@ CURLcode ftp_parse_url_path(struct connectdata *conn)
result = Curl_urldecode(conn->data, slash_pos ? cur_pos : "/",
slash_pos ? dirlen : 1,
&ftpc->dirs[0], NULL,
- FALSE);
+ TRUE);
if(result) {
freedirs(ftpc);
return result;
@@ -4299,7 +4262,7 @@ CURLcode ftp_parse_url_path(struct connectdata *conn)
size_t dlen;
char *path;
CURLcode result =
- Curl_urldecode(conn->data, data->state.path, 0, &path, &dlen, FALSE);
+ Curl_urldecode(conn->data, data->state.path, 0, &path, &dlen, TRUE);
if(result) {
freedirs(ftpc);
return result;
diff --git a/lib/ftplistparser.c b/lib/ftplistparser.c
index 262ac030..7668ea8c 100644
--- a/lib/ftplistparser.c
+++ b/lib/ftplistparser.c
@@ -49,6 +49,7 @@
#include "ftplistparser.h"
#include "curl_fnmatch.h"
#include "curl_memory.h"
+#include "multiif.h"
/* The last #include file should be: */
#include "memdebug.h"
@@ -294,6 +295,7 @@ static CURLcode ftp_pl_insert_finfo(struct connectdata *conn,
compare = Curl_fnmatch;
/* filter pattern-corresponding filenames */
+ Curl_set_in_callback(conn->data, true);
if(compare(conn->data->set.fnmatch_data, wc->pattern,
finfo->filename) == 0) {
/* discard symlink which is containing multiple " -> " */
@@ -305,6 +307,7 @@ static CURLcode ftp_pl_insert_finfo(struct connectdata *conn,
else {
add = FALSE;
}
+ Curl_set_in_callback(conn->data, false);
if(add) {
Curl_llist_insert_next(llist, llist->tail, finfo, &infop->list);
diff --git a/lib/getinfo.c b/lib/getinfo.c
index 862ced01..d280eebf 100644
--- a/lib/getinfo.c
+++ b/lib/getinfo.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -156,7 +156,12 @@ static CURLcode getinfo_long(struct Curl_easy *data, CURLINFO info,
*param_longp = data->info.httpproxycode;
break;
case CURLINFO_FILETIME:
- *param_longp = data->info.filetime;
+ if(data->info.filetime > LONG_MAX)
+ *param_longp = LONG_MAX;
+ else if(data->info.filetime < LONG_MIN)
+ *param_longp = LONG_MIN;
+ else
+ *param_longp = (long)data->info.filetime;
break;
case CURLINFO_HEADER_SIZE:
*param_longp = data->info.header_size;
@@ -253,6 +258,9 @@ static CURLcode getinfo_offt(struct Curl_easy *data, CURLINFO info,
curl_off_t *param_offt)
{
switch(info) {
+ case CURLINFO_FILETIME_T:
+ *param_offt = (curl_off_t)data->info.filetime;
+ break;
case CURLINFO_SIZE_UPLOAD_T:
*param_offt = data->progress.uploaded;
break;
diff --git a/lib/hostip.c b/lib/hostip.c
index 886aeec4..8554d39d 100644
--- a/lib/hostip.c
+++ b/lib/hostip.c
@@ -58,6 +58,7 @@
#include "strerror.h"
#include "url.h"
#include "inet_ntop.h"
+#include "multiif.h"
#include "warnless.h"
/* The last 3 #include files should be in this order */
#include "curl_printf.h"
@@ -481,6 +482,17 @@ int Curl_resolv(struct connectdata *conn,
if(!Curl_ipvalid(conn))
return CURLRESOLV_ERROR;
+ /* notify the resolver start callback */
+ if(data->set.resolver_start) {
+ int st;
+ Curl_set_in_callback(data, true);
+ st = data->set.resolver_start(data->state.resolver, NULL,
+ data->set.resolver_start_client);
+ Curl_set_in_callback(data, false);
+ if(st)
+ return CURLRESOLV_ERROR;
+ }
+
/* If Curl_getaddrinfo() returns NULL, 'respwait' might be set to a
non-zero value indicating that we need to wait for the response to the
resolve call */
@@ -781,7 +793,7 @@ CURLcode Curl_loadhostpairs(struct Curl_easy *data)
{
struct curl_slist *hostp;
char hostname[256];
- int port;
+ int port = 0;
for(hostp = data->change.resolve; hostp; hostp = hostp->next) {
if(!hostp->data)
@@ -819,32 +831,95 @@ CURLcode Curl_loadhostpairs(struct Curl_easy *data)
}
else {
struct Curl_dns_entry *dns;
- Curl_addrinfo *addr;
+ Curl_addrinfo *head = NULL, *tail = NULL;
char *entry_id;
size_t entry_len;
- char buffer[256];
- char *address = &buffer[0];
+ char address[64];
+ char *addresses = NULL;
+ char *addr_begin;
+ char *addr_end;
+ char *port_ptr;
+ char *end_ptr;
+ char *host_end;
+ unsigned long tmp_port;
+ bool error = true;
+
+ host_end = strchr(hostp->data, ':');
+ if(!host_end ||
+ ((host_end - hostp->data) >= (ptrdiff_t)sizeof(hostname)))
+ goto err;
+
+ memcpy(hostname, hostp->data, host_end - hostp->data);
+ hostname[host_end - hostp->data] = '\0';
+
+ port_ptr = host_end + 1;
+ tmp_port = strtoul(port_ptr, &end_ptr, 10);
+ if(tmp_port > USHRT_MAX || end_ptr == port_ptr || *end_ptr != ':')
+ goto err;
+
+ port = (int)tmp_port;
+ addresses = end_ptr + 1;
+
+ while(*end_ptr) {
+ size_t alen;
+ Curl_addrinfo *ai;
+
+ addr_begin = end_ptr + 1;
+ addr_end = strchr(addr_begin, ',');
+ if(!addr_end)
+ addr_end = addr_begin + strlen(addr_begin);
+ end_ptr = addr_end;
+
+ /* allow IP(v6) address within [brackets] */
+ if(*addr_begin == '[') {
+ if(addr_end == addr_begin || *(addr_end - 1) != ']')
+ goto err;
+ ++addr_begin;
+ --addr_end;
+ }
- if(3 != sscanf(hostp->data, "%255[^:]:%d:%255s", hostname, &port,
- address)) {
- infof(data, "Couldn't parse CURLOPT_RESOLVE entry '%s'!\n",
- hostp->data);
- continue;
- }
+ alen = addr_end - addr_begin;
+ if(!alen)
+ continue;
+
+ if(alen >= sizeof(address))
+ goto err;
- /* allow IP(v6) address within [brackets] */
- if(address[0] == '[') {
- size_t alen = strlen(address);
- if(address[alen-1] != ']')
- /* it needs to also end with ] to be valid */
+ memcpy(address, addr_begin, alen);
+ address[alen] = '\0';
+
+#ifndef ENABLE_IPV6
+ if(strchr(address, ':')) {
+ infof(data, "Ignoring resolve address '%s', missing IPv6 support.\n",
+ address);
continue;
- address[alen-1] = 0; /* zero terminate there */
- address++; /* pass the open bracket */
+ }
+#endif
+
+ ai = Curl_str2addr(address, port);
+ if(!ai) {
+ infof(data, "Resolve address '%s' found illegal!\n", address);
+ goto err;
+ }
+
+ if(tail) {
+ tail->ai_next = ai;
+ tail = tail->ai_next;
+ }
+ else {
+ head = tail = ai;
+ }
}
- addr = Curl_str2addr(address, port);
- if(!addr) {
- infof(data, "Address in '%s' found illegal!\n", hostp->data);
+ if(!head)
+ goto err;
+
+ error = false;
+ err:
+ if(error) {
+ infof(data, "Couldn't parse CURLOPT_RESOLVE entry '%s'!\n",
+ hostp->data);
+ Curl_freeaddrinfo(head);
continue;
}
@@ -852,10 +927,9 @@ CURLcode Curl_loadhostpairs(struct Curl_easy *data)
entry_id = create_hostcache_id(hostname, port);
/* If we can't create the entry id, fail */
if(!entry_id) {
- Curl_freeaddrinfo(addr);
+ Curl_freeaddrinfo(head);
return CURLE_OUT_OF_MEMORY;
}
-
entry_len = strlen(entry_id);
if(data->share)
@@ -869,7 +943,7 @@ CURLcode Curl_loadhostpairs(struct Curl_easy *data)
if(!dns) {
/* if not in the cache already, put this host in the cache */
- dns = Curl_cache_addr(data, addr, hostname, port);
+ dns = Curl_cache_addr(data, head, hostname, port);
if(dns) {
dns->timestamp = 0; /* mark as added by CURLOPT_RESOLVE */
/* release the returned reference; the cache itself will keep the
@@ -880,19 +954,19 @@ CURLcode Curl_loadhostpairs(struct Curl_easy *data)
else {
/* this is a duplicate, free it again */
infof(data, "RESOLVE %s:%d is already cached, %s not stored!\n",
- hostname, port, address);
- Curl_freeaddrinfo(addr);
+ hostname, port, addresses);
+ Curl_freeaddrinfo(head);
}
if(data->share)
Curl_share_unlock(data, CURL_LOCK_DATA_DNS);
if(!dns) {
- Curl_freeaddrinfo(addr);
+ Curl_freeaddrinfo(head);
return CURLE_OUT_OF_MEMORY;
}
infof(data, "Added %s:%d:%s to DNS cache\n",
- hostname, port, address);
+ hostname, port, addresses);
}
}
data->change.resolve = NULL; /* dealt with now */
diff --git a/lib/http.c b/lib/http.c
index a5007670..841f6cc0 100644
--- a/lib/http.c
+++ b/lib/http.c
@@ -177,9 +177,9 @@ CURLcode Curl_http_setup_conn(struct connectdata *conn)
* if proxy headers are not available, then it will lookup into http header
* link list
*
- * It takes a connectdata struct as input instead of the Curl_easy simply
- * to know if this is a proxy request or not, as it then might check a
- * different header list.
+ * It takes a connectdata struct as input instead of the Curl_easy simply to
+ * know if this is a proxy request or not, as it then might check a different
+ * header list. Provide the header prefix without colon!.
*/
char *Curl_checkProxyheaders(const struct connectdata *conn,
const char *thisheader)
@@ -191,7 +191,8 @@ char *Curl_checkProxyheaders(const struct connectdata *conn,
for(head = (conn->bits.proxy && data->set.sep_headers) ?
data->set.proxyheaders : data->set.headers;
head; head = head->next) {
- if(strncasecompare(head->data, thisheader, thislen))
+ if(strncasecompare(head->data, thisheader, thislen) &&
+ Curl_headersep(head->data[thislen]))
return head->data;
}
@@ -614,9 +615,9 @@ output_auth_headers(struct connectdata *conn,
if(authstatus->picked == CURLAUTH_BASIC) {
/* Basic */
if((proxy && conn->bits.proxy_user_passwd &&
- !Curl_checkProxyheaders(conn, "Proxy-authorization:")) ||
+ !Curl_checkProxyheaders(conn, "Proxy-authorization")) ||
(!proxy && conn->bits.user_passwd &&
- !Curl_checkheaders(conn, "Authorization:"))) {
+ !Curl_checkheaders(conn, "Authorization"))) {
auth = "Basic";
result = http_output_basic(conn, proxy);
if(result)
@@ -1533,7 +1534,7 @@ static CURLcode expect100(struct Curl_easy *data,
/* if not doing HTTP 1.0 or version 2, or disabled explicitly, we add an
Expect: 100-continue to the headers which actually speeds up post
operations (as there is one packet coming back from the web server) */
- ptr = Curl_checkheaders(conn, "Expect:");
+ ptr = Curl_checkheaders(conn, "Expect");
if(ptr) {
data->state.expect100header =
Curl_compareheader(ptr, "Expect:", "100-continue");
@@ -1598,7 +1599,32 @@ CURLcode Curl_add_custom_headers(struct connectdata *conn,
headers = h[i];
while(headers) {
+ char *semicolonp = NULL;
ptr = strchr(headers->data, ':');
+ if(!ptr) {
+ char *optr;
+ /* no colon, semicolon? */
+ ptr = strchr(headers->data, ';');
+ if(ptr) {
+ optr = ptr;
+ ptr++; /* pass the semicolon */
+ while(*ptr && ISSPACE(*ptr))
+ ptr++;
+
+ if(*ptr) {
+ /* this may be used for something else in the future */
+ optr = NULL;
+ }
+ else {
+ if(*(--ptr) == ';') {
+ /* send no-value custom header if terminated by semicolon */
+ *ptr = ':';
+ semicolonp = ptr;
+ }
+ }
+ ptr = optr;
+ }
+ }
if(ptr) {
/* we require a colon for this to be a true header */
@@ -1606,8 +1632,9 @@ CURLcode Curl_add_custom_headers(struct connectdata *conn,
while(*ptr && ISSPACE(*ptr))
ptr++;
- if(*ptr) {
- /* only send this if the contents was non-blank */
+ if(*ptr || semicolonp) {
+ /* only send this if the contents was non-blank or done special */
+ CURLcode result = CURLE_OK;
if(conn->allocptr.host &&
/* a Host: header was sent already, don't pass on any custom Host:
@@ -1645,40 +1672,12 @@ CURLcode Curl_add_custom_headers(struct connectdata *conn,
!strcasecompare(data->state.first_host, conn->host.name)))
;
else {
- CURLcode result = Curl_add_bufferf(req_buffer, "%s\r\n",
- headers->data);
- if(result)
- return result;
- }
- }
- }
- else {
- ptr = strchr(headers->data, ';');
- if(ptr) {
-
- ptr++; /* pass the semicolon */
- while(*ptr && ISSPACE(*ptr))
- ptr++;
-
- if(*ptr) {
- /* this may be used for something else in the future */
- }
- else {
- if(*(--ptr) == ';') {
- CURLcode result;
-
- /* send no-value custom header if terminated by semicolon */
- *ptr = ':';
- result = Curl_add_bufferf(req_buffer, "%s\r\n",
- headers->data);
-
- /* restore the previous value */
- *ptr = ';';
-
- if(result)
- return result;
- }
+ result = Curl_add_bufferf(req_buffer, "%s\r\n", headers->data);
}
+ if(semicolonp)
+ *semicolonp = ';'; /* put back the semicolon */
+ if(result)
+ return result;
}
}
headers = headers->next;
@@ -1869,7 +1868,7 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
it might have been used in the proxy connect, but if we have got a header
with the user-agent string specified, we erase the previously made string
here. */
- if(Curl_checkheaders(conn, "User-Agent:")) {
+ if(Curl_checkheaders(conn, "User-Agent")) {
free(conn->allocptr.uagent);
conn->allocptr.uagent = NULL;
}
@@ -1890,7 +1889,7 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
conn->bits.authneg = FALSE;
Curl_safefree(conn->allocptr.ref);
- if(data->change.referer && !Curl_checkheaders(conn, "Referer:")) {
+ if(data->change.referer && !Curl_checkheaders(conn, "Referer")) {
conn->allocptr.ref = aprintf("Referer: %s\r\n", data->change.referer);
if(!conn->allocptr.ref)
return CURLE_OUT_OF_MEMORY;
@@ -1899,11 +1898,11 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
conn->allocptr.ref = NULL;
#if !defined(CURL_DISABLE_COOKIES)
- if(data->set.str[STRING_COOKIE] && !Curl_checkheaders(conn, "Cookie:"))
+ if(data->set.str[STRING_COOKIE] && !Curl_checkheaders(conn, "Cookie"))
addcookies = data->set.str[STRING_COOKIE];
#endif
- if(!Curl_checkheaders(conn, "Accept-Encoding:") &&
+ if(!Curl_checkheaders(conn, "Accept-Encoding") &&
data->set.str[STRING_ENCODING]) {
Curl_safefree(conn->allocptr.accept_encoding);
conn->allocptr.accept_encoding =
@@ -1919,22 +1918,29 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
#ifdef HAVE_LIBZ
/* we only consider transfer-encoding magic if libz support is built-in */
- if(!Curl_checkheaders(conn, "TE:") &&
+ if(!Curl_checkheaders(conn, "TE") &&
data->set.http_transfer_encoding) {
/* When we are to insert a TE: header in the request, we must also insert
TE in a Connection: header, so we need to merge the custom provided
Connection: header and prevent the original to get sent. Note that if
the user has inserted his/hers own TE: header we don't do this magic
but then assume that the user will handle it all! */
- char *cptr = Curl_checkheaders(conn, "Connection:");
+ char *cptr = Curl_checkheaders(conn, "Connection");
#define TE_HEADER "TE: gzip\r\n"
Curl_safefree(conn->allocptr.te);
+ if(cptr) {
+ cptr = Curl_copy_header_value(cptr);
+ if(!cptr)
+ return CURLE_OUT_OF_MEMORY;
+ }
+
/* Create the (updated) Connection: header */
- conn->allocptr.te = cptr? aprintf("%s, TE\r\n" TE_HEADER, cptr):
- strdup("Connection: TE\r\n" TE_HEADER);
+ conn->allocptr.te = aprintf("Connection: %s%sTE\r\n" TE_HEADER,
+ cptr ? cptr : "", (cptr && *cptr) ? ", ":"");
+ free(cptr);
if(!conn->allocptr.te)
return CURLE_OUT_OF_MEMORY;
}
@@ -1958,7 +1964,7 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
}
if(http->sendit) {
- const char *cthdr = Curl_checkheaders(conn, "Content-Type:");
+ const char *cthdr = Curl_checkheaders(conn, "Content-Type");
/* Read and seek body only. */
http->sendit->flags |= MIME_BODY_ONLY;
@@ -1982,7 +1988,7 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
http->postsize = Curl_mime_size(http->sendit);
}
- ptr = Curl_checkheaders(conn, "Transfer-Encoding:");
+ ptr = Curl_checkheaders(conn, "Transfer-Encoding");
if(ptr) {
/* Some kind of TE is requested, check if 'chunked' is chosen */
data->req.upload_chunky =
@@ -2016,7 +2022,7 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
Curl_safefree(conn->allocptr.host);
- ptr = Curl_checkheaders(conn, "Host:");
+ ptr = Curl_checkheaders(conn, "Host");
if(ptr && (!data->state.this_is_a_follow ||
strcasecompare(data->state.first_host, conn->host.name))) {
#if !defined(CURL_DISABLE_COOKIES)
@@ -2055,7 +2061,7 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
#endif
if(strcmp("Host:", ptr)) {
- conn->allocptr.host = aprintf("%s\r\n", ptr);
+ conn->allocptr.host = aprintf("Host:%s\r\n", &ptr[5]);
if(!conn->allocptr.host)
return CURLE_OUT_OF_MEMORY;
}
@@ -2164,7 +2170,7 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
}
#endif /* CURL_DISABLE_PROXY */
- http->p_accept = Curl_checkheaders(conn, "Accept:")?NULL:"Accept: */*\r\n";
+ http->p_accept = Curl_checkheaders(conn, "Accept")?NULL:"Accept: */*\r\n";
if((HTTPREQ_POST == httpreq || HTTPREQ_PUT == httpreq) &&
data->state.resume_from) {
@@ -2191,8 +2197,10 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
/* Now, let's read off the proper amount of bytes from the
input. */
if(conn->seek_func) {
+ Curl_set_in_callback(data, true);
seekerr = conn->seek_func(conn->seek_client, data->state.resume_from,
SEEK_SET);
+ Curl_set_in_callback(data, false);
}
if(seekerr != CURL_SEEKFUNC_OK) {
@@ -2243,14 +2251,14 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
* ones if any such are specified.
*/
if(((httpreq == HTTPREQ_GET) || (httpreq == HTTPREQ_HEAD)) &&
- !Curl_checkheaders(conn, "Range:")) {
+ !Curl_checkheaders(conn, "Range")) {
/* if a line like this was already allocated, free the previous one */
free(conn->allocptr.rangeline);
conn->allocptr.rangeline = aprintf("Range: bytes=%s\r\n",
data->state.range);
}
else if((httpreq == HTTPREQ_POST || httpreq == HTTPREQ_PUT) &&
- !Curl_checkheaders(conn, "Content-Range:")) {
+ !Curl_checkheaders(conn, "Content-Range")) {
/* if a line like this was already allocated, free the previous one */
free(conn->allocptr.rangeline);
@@ -2352,7 +2360,7 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
conn->allocptr.ref:"" /* Referer: <data> */,
(conn->bits.httpproxy &&
!conn->bits.tunnel_proxy &&
- !Curl_checkProxyheaders(conn, "Proxy-Connection:"))?
+ !Curl_checkProxyheaders(conn, "Proxy-Connection"))?
"Proxy-Connection: Keep-Alive\r\n":"",
te
);
@@ -2453,7 +2461,7 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
postsize = data->state.infilesize;
if((postsize != -1) && !data->req.upload_chunky &&
- (conn->bits.authneg || !Curl_checkheaders(conn, "Content-Length:"))) {
+ (conn->bits.authneg || !Curl_checkheaders(conn, "Content-Length"))) {
/* only add Content-Length if not uploading chunked */
result = Curl_add_bufferf(req_buffer,
"Content-Length: %" CURL_FORMAT_CURL_OFF_T
@@ -2515,7 +2523,7 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
we don't upload data chunked, as RFC2616 forbids us to set both
kinds of headers (Transfer-Encoding: chunked and Content-Length) */
if(postsize != -1 && !data->req.upload_chunky &&
- (conn->bits.authneg || !Curl_checkheaders(conn, "Content-Length:"))) {
+ (conn->bits.authneg || !Curl_checkheaders(conn, "Content-Length"))) {
/* we allow replacing this header if not during auth negotiation,
although it isn't very wise to actually set your own */
result = Curl_add_bufferf(req_buffer,
@@ -2540,7 +2548,7 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
the somewhat bigger ones we allow the app to disable it. Just make
sure that the expect100header is always set to the preferred value
here. */
- ptr = Curl_checkheaders(conn, "Expect:");
+ ptr = Curl_checkheaders(conn, "Expect");
if(ptr) {
data->state.expect100header =
Curl_compareheader(ptr, "Expect:", "100-continue");
@@ -2594,7 +2602,7 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
we don't upload data chunked, as RFC2616 forbids us to set both
kinds of headers (Transfer-Encoding: chunked and Content-Length) */
if((postsize != -1) && !data->req.upload_chunky &&
- (conn->bits.authneg || !Curl_checkheaders(conn, "Content-Length:"))) {
+ (conn->bits.authneg || !Curl_checkheaders(conn, "Content-Length"))) {
/* we allow replacing this header if not during auth negotiation,
although it isn't very wise to actually set your own */
result = Curl_add_bufferf(req_buffer,
@@ -2604,7 +2612,7 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
return result;
}
- if(!Curl_checkheaders(conn, "Content-Type:")) {
+ if(!Curl_checkheaders(conn, "Content-Type")) {
result = Curl_add_bufferf(req_buffer,
"Content-Type: application/"
"x-www-form-urlencoded\r\n");
@@ -2616,7 +2624,7 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
the somewhat bigger ones we allow the app to disable it. Just make
sure that the expect100header is always set to the preferred value
here. */
- ptr = Curl_checkheaders(conn, "Expect:");
+ ptr = Curl_checkheaders(conn, "Expect");
if(ptr) {
data->state.expect100header =
Curl_compareheader(ptr, "Expect:", "100-continue");
@@ -2878,20 +2886,19 @@ static CURLcode header_append(struct Curl_easy *data,
struct SingleRequest *k,
size_t length)
{
- if(k->hbuflen + length >= data->state.headersize) {
+ size_t newsize = k->hbuflen + length;
+ if(newsize > CURL_MAX_HTTP_HEADER) {
+ /* The reason to have a max limit for this is to avoid the risk of a bad
+ server feeding libcurl with a never-ending header that will cause
+ reallocs infinitely */
+ failf(data, "Rejected %zd bytes header (max is %d)!", newsize,
+ CURL_MAX_HTTP_HEADER);
+ return CURLE_OUT_OF_MEMORY;
+ }
+ if(newsize >= data->state.headersize) {
/* We enlarge the header buffer as it is too small */
char *newbuff;
size_t hbufp_index;
- size_t newsize;
-
- if(k->hbuflen + length > CURL_MAX_HTTP_HEADER) {
- /* The reason to have a max limit for this is to avoid the risk of a bad
- server feeding libcurl with a never-ending header that will cause
- reallocs infinitely */
- failf(data, "Avoided giant realloc for header (max is %d)!",
- CURL_MAX_HTTP_HEADER);
- return CURLE_OUT_OF_MEMORY;
- }
newsize = CURLMAX((k->hbuflen + length) * 3 / 2, data->state.headersize*2);
hbufp_index = k->hbufp - data->state.headerbuff;
@@ -3692,7 +3699,7 @@ CURLcode Curl_http_readwrite_headers(struct Curl_easy *data,
k->timeofdoc = curl_getdate(k->p + strlen("Last-Modified:"),
&secs);
if(data->set.get_filetime)
- data->info.filetime = (long)k->timeofdoc;
+ data->info.filetime = k->timeofdoc;
}
else if((checkprefix("WWW-Authenticate:", k->p) &&
(401 == k->httpcode)) ||
diff --git a/lib/http.h b/lib/http.h
index d2781bc0..2ce44bbf 100644
--- a/lib/http.h
+++ b/lib/http.h
@@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -172,8 +172,6 @@ struct HTTP {
size_t pauselen; /* the number of bytes left in data */
bool closed; /* TRUE on HTTP2 stream close */
bool close_handled; /* TRUE if stream closure is handled by libcurl */
- uint32_t error_code; /* HTTP/2 error code */
-
char *mem; /* points to a buffer in memory to store received data */
size_t len; /* size of the buffer 'mem' points to */
size_t memlen; /* size of data copied to mem */
@@ -226,6 +224,7 @@ struct http_conn {
/* list of settings that will be sent */
nghttp2_settings_entry local_settings[3];
size_t local_settings_num;
+ uint32_t error_code; /* HTTP/2 error code */
#else
int unused; /* prevent a compiler warning */
#endif
diff --git a/lib/http2.c b/lib/http2.c
index 69928794..b2c34e94 100644
--- a/lib/http2.c
+++ b/lib/http2.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -65,6 +65,12 @@
#define HTTP2_HUGE_WINDOW_SIZE (1 << 30)
+#ifdef DEBUG_HTTP2
+#define H2BUGF(x) x
+#else
+#define H2BUGF(x) do { } WHILE_FALSE
+#endif
+
/*
* Curl_http2_init_state() is called when the easy handle is created and
* allows for HTTP/2 specific init of state.
@@ -140,13 +146,13 @@ static CURLcode http2_disconnect(struct connectdata *conn,
struct http_conn *c = &conn->proto.httpc;
(void)dead_connection;
- DEBUGF(infof(conn->data, "HTTP/2 DISCONNECT starts now\n"));
+ H2BUGF(infof(conn->data, "HTTP/2 DISCONNECT starts now\n"));
nghttp2_session_del(c->h2);
Curl_safefree(c->inbuf);
http2_stream_free(conn->data->req.protop);
- DEBUGF(infof(conn->data, "HTTP/2 DISCONNECT done\n"));
+ H2BUGF(infof(conn->data, "HTTP/2 DISCONNECT done\n"));
return CURLE_OK;
}
@@ -204,7 +210,6 @@ void Curl_http2_setup_req(struct Curl_easy *data)
http->status_code = -1;
http->pausedata = NULL;
http->pauselen = 0;
- http->error_code = NGHTTP2_NO_ERROR;
http->closed = FALSE;
http->close_handled = FALSE;
http->mem = data->state.buffer;
@@ -217,6 +222,7 @@ void Curl_http2_setup_conn(struct connectdata *conn)
{
conn->proto.httpc.settings.max_concurrent_streams =
DEFAULT_MAX_CONCURRENT_STREAMS;
+ conn->proto.httpc.error_code = NGHTTP2_NO_ERROR;
}
/*
@@ -428,7 +434,7 @@ static int push_promise(struct Curl_easy *data,
const nghttp2_push_promise *frame)
{
int rv;
- DEBUGF(infof(data, "PUSH_PROMISE received, stream %u!\n",
+ H2BUGF(infof(data, "PUSH_PROMISE received, stream %u!\n",
frame->promised_stream_id));
if(data->multi->push_cb) {
struct HTTP *stream;
@@ -448,7 +454,7 @@ static int push_promise(struct Curl_easy *data,
heads.data = data;
heads.frame = frame;
/* ask the application */
- DEBUGF(infof(data, "Got PUSH_PROMISE, ask application!\n"));
+ H2BUGF(infof(data, "Got PUSH_PROMISE, ask application!\n"));
stream = data->req.protop;
if(!stream) {
@@ -458,9 +464,11 @@ static int push_promise(struct Curl_easy *data,
goto fail;
}
+ Curl_set_in_callback(data, true);
rv = data->multi->push_cb(data, newhandle,
stream->push_headers_used, &heads,
data->multi->push_userp);
+ Curl_set_in_callback(data, false);
/* free the headers again */
for(i = 0; i<stream->push_headers_used; i++)
@@ -497,7 +505,7 @@ static int push_promise(struct Curl_easy *data,
frame->promised_stream_id, newhandle);
}
else {
- DEBUGF(infof(data, "Got PUSH_PROMISE, ignore it!\n"));
+ H2BUGF(infof(data, "Got PUSH_PROMISE, ignore it!\n"));
rv = 1;
}
fail:
@@ -520,21 +528,22 @@ static int on_frame_recv(nghttp2_session *session, const nghttp2_frame *frame,
/* stream ID zero is for connection-oriented stuff */
if(frame->hd.type == NGHTTP2_SETTINGS) {
uint32_t max_conn = httpc->settings.max_concurrent_streams;
- DEBUGF(infof(conn->data, "Got SETTINGS\n"));
+ H2BUGF(infof(conn->data, "Got SETTINGS\n"));
httpc->settings.max_concurrent_streams =
nghttp2_session_get_remote_settings(
session, NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS);
httpc->settings.enable_push =
nghttp2_session_get_remote_settings(
session, NGHTTP2_SETTINGS_ENABLE_PUSH);
- DEBUGF(infof(conn->data, "MAX_CONCURRENT_STREAMS == %d\n",
+ H2BUGF(infof(conn->data, "MAX_CONCURRENT_STREAMS == %d\n",
httpc->settings.max_concurrent_streams));
- DEBUGF(infof(conn->data, "ENABLE_PUSH == %s\n",
+ H2BUGF(infof(conn->data, "ENABLE_PUSH == %s\n",
httpc->settings.enable_push?"TRUE":"false"));
if(max_conn != httpc->settings.max_concurrent_streams) {
/* only signal change if the value actually changed */
infof(conn->data,
- "Connection state changed (MAX_CONCURRENT_STREAMS updated)!\n");
+ "Connection state changed (MAX_CONCURRENT_STREAMS == %d)!\n",
+ httpc->settings.max_concurrent_streams);
Curl_multi_connchanged(conn->data->multi);
}
}
@@ -545,7 +554,7 @@ static int on_frame_recv(nghttp2_session *session, const nghttp2_frame *frame,
lastStream = stream_id;
}
if(!data_s) {
- DEBUGF(infof(conn->data,
+ H2BUGF(infof(conn->data,
"No Curl_easy associated with stream: %x\n",
stream_id));
return 0;
@@ -553,12 +562,12 @@ static int on_frame_recv(nghttp2_session *session, const nghttp2_frame *frame,
stream = data_s->req.protop;
if(!stream) {
- DEBUGF(infof(conn->data, "No proto pointer for stream: %x\n",
+ H2BUGF(infof(conn->data, "No proto pointer for stream: %x\n",
stream_id));
return NGHTTP2_ERR_CALLBACK_FAILURE;
}
- DEBUGF(infof(data_s, "on_frame_recv() header %x stream %x\n",
+ H2BUGF(infof(data_s, "on_frame_recv() header %x stream %x\n",
frame->hd.type, stream_id));
switch(frame->hd.type) {
@@ -600,7 +609,7 @@ static int on_frame_recv(nghttp2_session *session, const nghttp2_frame *frame,
ncopy);
stream->nread_header_recvbuf += ncopy;
- DEBUGF(infof(data_s, "Store %zu bytes headers from stream %u at %p\n",
+ H2BUGF(infof(data_s, "Store %zu bytes headers from stream %u at %p\n",
ncopy, stream_id, stream->mem));
stream->len -= ncopy;
@@ -629,7 +638,7 @@ static int on_frame_recv(nghttp2_session *session, const nghttp2_frame *frame,
}
break;
default:
- DEBUGF(infof(conn->data, "Got frame type %x for stream %u!\n",
+ H2BUGF(infof(conn->data, "Got frame type %x for stream %u!\n",
frame->hd.type, stream_id));
break;
}
@@ -642,13 +651,13 @@ static int on_invalid_frame_recv(nghttp2_session *session,
{
struct Curl_easy *data_s = NULL;
(void)userp;
-#if !defined(DEBUGBUILD) || defined(CURL_DISABLE_VERBOSE_STRINGS)
+#if !defined(DEBUG_HTTP2) || defined(CURL_DISABLE_VERBOSE_STRINGS)
(void)lib_error_code;
#endif
data_s = nghttp2_session_get_stream_user_data(session, frame->hd.stream_id);
if(data_s) {
- DEBUGF(infof(data_s,
+ H2BUGF(infof(data_s,
"on_invalid_frame_recv() was called, error=%d:%s\n",
lib_error_code, nghttp2_strerror(lib_error_code)));
}
@@ -693,7 +702,7 @@ static int on_data_chunk_recv(nghttp2_session *session, uint8_t flags,
if(conn->data != data_s)
Curl_expire(data_s, 0, EXPIRE_RUN_NOW);
- DEBUGF(infof(data_s, "%zu data received for stream %u "
+ H2BUGF(infof(data_s, "%zu data received for stream %u "
"(%zu left in buffer %p, total %zu)\n",
nread, stream_id,
stream->len, stream->mem,
@@ -702,7 +711,7 @@ static int on_data_chunk_recv(nghttp2_session *session, uint8_t flags,
if(nread < len) {
stream->pausedata = data + nread;
stream->pauselen = len - nread;
- DEBUGF(infof(data_s, "NGHTTP2_ERR_PAUSE - %zu bytes out of buffer"
+ H2BUGF(infof(data_s, "NGHTTP2_ERR_PAUSE - %zu bytes out of buffer"
", stream %u\n",
len - nread, stream_id));
data_s->easy_conn->proto.httpc.pause_stream_id = stream_id;
@@ -730,7 +739,7 @@ static int before_frame_send(nghttp2_session *session,
data_s = nghttp2_session_get_stream_user_data(session, frame->hd.stream_id);
if(data_s) {
- DEBUGF(infof(data_s, "before_frame_send() was called\n"));
+ H2BUGF(infof(data_s, "before_frame_send() was called\n"));
}
return 0;
@@ -744,7 +753,7 @@ static int on_frame_send(nghttp2_session *session,
data_s = nghttp2_session_get_stream_user_data(session, frame->hd.stream_id);
if(data_s) {
- DEBUGF(infof(data_s, "on_frame_send() was called, length = %zd\n",
+ H2BUGF(infof(data_s, "on_frame_send() was called, length = %zd\n",
frame->hd.length));
}
return 0;
@@ -755,13 +764,13 @@ static int on_frame_not_send(nghttp2_session *session,
{
struct Curl_easy *data_s;
(void)userp;
-#if !defined(DEBUGBUILD) || defined(CURL_DISABLE_VERBOSE_STRINGS)
+#if !defined(DEBUG_HTTP2) || defined(CURL_DISABLE_VERBOSE_STRINGS)
(void)lib_error_code;
#endif
data_s = nghttp2_session_get_stream_user_data(session, frame->hd.stream_id);
if(data_s) {
- DEBUGF(infof(data_s,
+ H2BUGF(infof(data_s,
"on_frame_not_send() was called, lib_error_code = %d\n",
lib_error_code));
}
@@ -777,6 +786,7 @@ static int on_stream_close(nghttp2_session *session, int32_t stream_id,
(void)stream_id;
if(stream_id) {
+ struct http_conn *httpc;
/* get the stream from the hash based on Stream ID, stream ID zero is for
connection-oriented stuff */
data_s = nghttp2_session_get_stream_user_data(session, stream_id);
@@ -785,20 +795,21 @@ static int on_stream_close(nghttp2_session *session, int32_t stream_id,
decided to reject stream (e.g., PUSH_PROMISE). */
return 0;
}
- DEBUGF(infof(data_s, "on_stream_close(), %s (err %d), stream %u\n",
+ H2BUGF(infof(data_s, "on_stream_close(), %s (err %d), stream %u\n",
Curl_http2_strerror(error_code), error_code, stream_id));
stream = data_s->req.protop;
if(!stream)
return NGHTTP2_ERR_CALLBACK_FAILURE;
- stream->error_code = error_code;
stream->closed = TRUE;
data_s->state.drain++;
- conn->proto.httpc.drain_total++;
+ httpc = &conn->proto.httpc;
+ httpc->drain_total++;
+ httpc->error_code = error_code;
/* remove the entry from the hash as the stream is now gone */
nghttp2_session_set_stream_user_data(session, stream_id, 0);
- DEBUGF(infof(data_s, "Removed stream %u hash!\n", stream_id));
+ H2BUGF(infof(data_s, "Removed stream %u hash!\n", stream_id));
}
return 0;
}
@@ -815,7 +826,7 @@ static int on_begin_headers(nghttp2_session *session,
return 0;
}
- DEBUGF(infof(data_s, "on_begin_headers() was called\n"));
+ H2BUGF(infof(data_s, "on_begin_headers() was called\n"));
if(frame->hd.type != NGHTTP2_HEADERS) {
return 0;
@@ -827,7 +838,7 @@ static int on_begin_headers(nghttp2_session *session,
}
/* This is trailer HEADERS started. Allocate buffer for them. */
- DEBUGF(infof(data_s, "trailer field started\n"));
+ H2BUGF(infof(data_s, "trailer field started\n"));
DEBUGASSERT(stream->trailer_recvbuf == NULL);
@@ -928,7 +939,7 @@ static int on_header(nghttp2_session *session, const nghttp2_frame *frame,
/* 4 is for ": " and "\r\n". */
uint32_t n = (uint32_t)(namelen + valuelen + 4);
- DEBUGF(infof(data_s, "h2 trailer: %.*s: %.*s\n", namelen, name, valuelen,
+ H2BUGF(infof(data_s, "h2 trailer: %.*s: %.*s\n", namelen, name, valuelen,
value));
Curl_add_buffer(stream->trailer_recvbuf, &n, sizeof(n));
@@ -956,7 +967,7 @@ static int on_header(nghttp2_session *session, const nghttp2_frame *frame,
if(conn->data != data_s)
Curl_expire(data_s, 0, EXPIRE_RUN_NOW);
- DEBUGF(infof(data_s, "h2 status: HTTP/2 %03d (easy %p)\n",
+ H2BUGF(infof(data_s, "h2 status: HTTP/2 %03d (easy %p)\n",
stream->status_code, data_s));
return 0;
}
@@ -972,7 +983,7 @@ static int on_header(nghttp2_session *session, const nghttp2_frame *frame,
if(conn->data != data_s)
Curl_expire(data_s, 0, EXPIRE_RUN_NOW);
- DEBUGF(infof(data_s, "h2 header: %.*s: %.*s\n", namelen, name, valuelen,
+ H2BUGF(infof(data_s, "h2 header: %.*s: %.*s\n", namelen, name, valuelen,
value));
return 0; /* 0 is successful */
@@ -1021,7 +1032,7 @@ static ssize_t data_source_read_callback(nghttp2_session *session,
else if(nread == 0)
return NGHTTP2_ERR_DEFERRED;
- DEBUGF(infof(data_s, "data_source_read_callback: "
+ H2BUGF(infof(data_s, "data_source_read_callback: "
"returns %zu bytes stream %u\n",
nread, stream_id));
@@ -1067,7 +1078,7 @@ void Curl_http2_done(struct connectdata *conn, bool premature)
struct http_conn *httpc = &conn->proto.httpc;
if(http->header_recvbuf) {
- DEBUGF(infof(data, "free header_recvbuf!!\n"));
+ H2BUGF(infof(data, "free header_recvbuf!!\n"));
Curl_add_buffer_free(http->header_recvbuf);
http->header_recvbuf = NULL; /* clear the pointer */
Curl_add_buffer_free(http->trailer_recvbuf);
@@ -1225,13 +1236,14 @@ static int h2_session_send(struct Curl_easy *data,
* This function returns 0 if it succeeds, or -1 and error code will
* be assigned to *err.
*/
-static int h2_process_pending_input(struct Curl_easy *data,
+static int h2_process_pending_input(struct connectdata *conn,
struct http_conn *httpc,
CURLcode *err)
{
ssize_t nread;
char *inbuf;
ssize_t rv;
+ struct Curl_easy *data = conn->data;
nread = httpc->inbuflen - httpc->nread_inbuf;
inbuf = httpc->inbuf + httpc->nread_inbuf;
@@ -1246,7 +1258,7 @@ static int h2_process_pending_input(struct Curl_easy *data,
}
if(nread == rv) {
- DEBUGF(infof(data,
+ H2BUGF(infof(data,
"h2_process_pending_input: All data in connection buffer "
"processed\n"));
httpc->inbuflen = 0;
@@ -1254,7 +1266,7 @@ static int h2_process_pending_input(struct Curl_easy *data,
}
else {
httpc->nread_inbuf += rv;
- DEBUGF(infof(data,
+ H2BUGF(infof(data,
"h2_process_pending_input: %zu bytes left in connection "
"buffer\n",
httpc->inbuflen - httpc->nread_inbuf));
@@ -1267,9 +1279,15 @@ static int h2_process_pending_input(struct Curl_easy *data,
}
if(should_close_session(httpc)) {
- DEBUGF(infof(data,
+ H2BUGF(infof(data,
"h2_process_pending_input: nothing to do in this session\n"));
- *err = CURLE_HTTP2;
+ if(httpc->error_code)
+ *err = CURLE_HTTP2;
+ else {
+ /* not an error per se, but should still close the connection */
+ connclose(conn, "GOAWAY received");
+ *err = CURLE_OK;
+ }
return -1;
}
@@ -1300,7 +1318,7 @@ CURLcode Curl_http2_done_sending(struct connectdata *conn)
that it can signal EOF to nghttp2 */
(void)nghttp2_session_resume_data(h2, stream->stream_id);
- (void)h2_process_pending_input(conn->data, httpc, &result);
+ (void)h2_process_pending_input(conn, httpc, &result);
}
}
return result;
@@ -1324,7 +1342,7 @@ static ssize_t http2_handle_stream_close(struct connectdata *conn,
data->state.drain = 0;
if(httpc->pause_stream_id == 0) {
- if(h2_process_pending_input(data, httpc, err) != 0) {
+ if(h2_process_pending_input(conn, httpc, err) != 0) {
return -1;
}
}
@@ -1333,10 +1351,10 @@ static ssize_t http2_handle_stream_close(struct connectdata *conn,
/* Reset to FALSE to prevent infinite loop in readwrite_data function. */
stream->closed = FALSE;
- if(stream->error_code != NGHTTP2_NO_ERROR) {
+ if(httpc->error_code != NGHTTP2_NO_ERROR) {
failf(data, "HTTP/2 stream %u was not closed cleanly: %s (err %d)",
- stream->stream_id, Curl_http2_strerror(stream->error_code),
- stream->error_code);
+ stream->stream_id, Curl_http2_strerror(httpc->error_code),
+ httpc->error_code);
*err = CURLE_HTTP2_STREAM;
return -1;
}
@@ -1370,7 +1388,7 @@ static ssize_t http2_handle_stream_close(struct connectdata *conn,
stream->close_handled = TRUE;
- DEBUGF(infof(data, "http2_recv returns 0, http2_handle_stream_close\n"));
+ H2BUGF(infof(data, "http2_recv returns 0, http2_handle_stream_close\n"));
return 0;
}
@@ -1411,7 +1429,7 @@ static int h2_session_send(struct Curl_easy *data,
h2_pri_spec(data, &pri_spec);
- DEBUGF(infof(data, "Queuing PRIORITY on stream %u (easy %p)\n",
+ H2BUGF(infof(data, "Queuing PRIORITY on stream %u (easy %p)\n",
stream->stream_id, data));
rv = nghttp2_submit_priority(h2, NGHTTP2_FLAG_NONE, stream->stream_id,
&pri_spec);
@@ -1435,7 +1453,7 @@ static ssize_t http2_recv(struct connectdata *conn, int sockindex,
(void)sockindex; /* we always do HTTP2 on sockindex 0 */
if(should_close_session(httpc)) {
- DEBUGF(infof(data,
+ H2BUGF(infof(data,
"http2_recv: nothing to do in this session\n"));
*err = CURLE_HTTP2;
return -1;
@@ -1461,16 +1479,16 @@ static ssize_t http2_recv(struct connectdata *conn, int sockindex,
ncopy);
stream->nread_header_recvbuf += ncopy;
- DEBUGF(infof(data, "http2_recv: Got %d bytes from header_recvbuf\n",
+ H2BUGF(infof(data, "http2_recv: Got %d bytes from header_recvbuf\n",
(int)ncopy));
return ncopy;
}
- DEBUGF(infof(data, "http2_recv: easy %p (stream %u)\n",
+ H2BUGF(infof(data, "http2_recv: easy %p (stream %u)\n",
data, stream->stream_id));
if((data->state.drain) && stream->memlen) {
- DEBUGF(infof(data, "http2_recv: DRAIN %zu bytes stream %u!! (%p => %p)\n",
+ H2BUGF(infof(data, "http2_recv: DRAIN %zu bytes stream %u!! (%p => %p)\n",
stream->memlen, stream->stream_id,
stream->mem, mem));
if(mem != stream->mem) {
@@ -1484,7 +1502,7 @@ static ssize_t http2_recv(struct connectdata *conn, int sockindex,
/* We have paused nghttp2, but we have no pause data (see
on_data_chunk_recv). */
httpc->pause_stream_id = 0;
- if(h2_process_pending_input(data, httpc, &result) != 0) {
+ if(h2_process_pending_input(conn, httpc, &result) != 0) {
*err = result;
return -1;
}
@@ -1500,7 +1518,7 @@ static ssize_t http2_recv(struct connectdata *conn, int sockindex,
infof(data, "%zu data bytes written\n", nread);
if(stream->pauselen == 0) {
- DEBUGF(infof(data, "Unpaused by stream %u\n", stream->stream_id));
+ H2BUGF(infof(data, "Unpaused by stream %u\n", stream->stream_id));
DEBUGASSERT(httpc->pause_stream_id == stream->stream_id);
httpc->pause_stream_id = 0;
@@ -1514,12 +1532,12 @@ static ssize_t http2_recv(struct connectdata *conn, int sockindex,
frames, then we have to call it again with 0-length data.
Without this, on_stream_close callback will not be called,
and stream could be hanged. */
- if(h2_process_pending_input(data, httpc, &result) != 0) {
+ if(h2_process_pending_input(conn, httpc, &result) != 0) {
*err = result;
return -1;
}
}
- DEBUGF(infof(data, "http2_recv: returns unpaused %zd bytes on stream %u\n",
+ H2BUGF(infof(data, "http2_recv: returns unpaused %zd bytes on stream %u\n",
nread, stream->stream_id));
return nread;
}
@@ -1532,7 +1550,7 @@ static ssize_t http2_recv(struct connectdata *conn, int sockindex,
socket is not read. But it seems that usually streams are
notified with its drain property, and socket is read again
quickly. */
- DEBUGF(infof(data, "stream %x is paused, pause id: %x\n",
+ H2BUGF(infof(data, "stream %x is paused, pause id: %x\n",
stream->stream_id, httpc->pause_stream_id));
*err = CURLE_AGAIN;
return -1;
@@ -1566,7 +1584,7 @@ static ssize_t http2_recv(struct connectdata *conn, int sockindex,
return -1;
}
- DEBUGF(infof(data, "nread=%zd\n", nread));
+ H2BUGF(infof(data, "nread=%zd\n", nread));
httpc->inbuflen = nread;
inbuf = httpc->inbuf;
@@ -1575,7 +1593,7 @@ static ssize_t http2_recv(struct connectdata *conn, int sockindex,
nread = httpc->inbuflen - httpc->nread_inbuf;
inbuf = httpc->inbuf + httpc->nread_inbuf;
- DEBUGF(infof(data, "Use data left in connection buffer, nread=%zd\n",
+ H2BUGF(infof(data, "Use data left in connection buffer, nread=%zd\n",
nread));
}
rv = nghttp2_session_mem_recv(httpc->h2, (const uint8_t *)inbuf, nread);
@@ -1586,15 +1604,15 @@ static ssize_t http2_recv(struct connectdata *conn, int sockindex,
*err = CURLE_RECV_ERROR;
return -1;
}
- DEBUGF(infof(data, "nghttp2_session_mem_recv() returns %zd\n", rv));
+ H2BUGF(infof(data, "nghttp2_session_mem_recv() returns %zd\n", rv));
if(nread == rv) {
- DEBUGF(infof(data, "All data in connection buffer processed\n"));
+ H2BUGF(infof(data, "All data in connection buffer processed\n"));
httpc->inbuflen = 0;
httpc->nread_inbuf = 0;
}
else {
httpc->nread_inbuf += rv;
- DEBUGF(infof(data, "%zu bytes left in connection buffer\n",
+ H2BUGF(infof(data, "%zu bytes left in connection buffer\n",
httpc->inbuflen - httpc->nread_inbuf));
}
/* Always send pending frames in nghttp2 session, because
@@ -1606,21 +1624,21 @@ static ssize_t http2_recv(struct connectdata *conn, int sockindex,
}
if(should_close_session(httpc)) {
- DEBUGF(infof(data, "http2_recv: nothing to do in this session\n"));
+ H2BUGF(infof(data, "http2_recv: nothing to do in this session\n"));
*err = CURLE_HTTP2;
return -1;
}
}
if(stream->memlen) {
ssize_t retlen = stream->memlen;
- DEBUGF(infof(data, "http2_recv: returns %zd for stream %u\n",
+ H2BUGF(infof(data, "http2_recv: returns %zd for stream %u\n",
retlen, stream->stream_id));
stream->memlen = 0;
if(httpc->pause_stream_id == stream->stream_id) {
/* data for this stream is returned now, but this stream caused a pause
already so we need it called again asap */
- DEBUGF(infof(data, "Data returned for PAUSED stream %u\n",
+ H2BUGF(infof(data, "Data returned for PAUSED stream %u\n",
stream->stream_id));
}
else if(!stream->closed) {
@@ -1637,7 +1655,7 @@ static ssize_t http2_recv(struct connectdata *conn, int sockindex,
return http2_handle_stream_close(conn, data, stream, err);
}
*err = CURLE_AGAIN;
- DEBUGF(infof(data, "http2_recv returns AGAIN for stream %u\n",
+ H2BUGF(infof(data, "http2_recv returns AGAIN for stream %u\n",
stream->stream_id));
return -1;
}
@@ -1739,7 +1757,7 @@ static ssize_t http2_send(struct connectdata *conn, int sockindex,
(void)sockindex;
- DEBUGF(infof(conn->data, "http2_send len=%zu\n", len));
+ H2BUGF(infof(conn->data, "http2_send len=%zu\n", len));
if(stream->stream_id != -1) {
if(stream->close_handled) {
@@ -1768,7 +1786,7 @@ static ssize_t http2_send(struct connectdata *conn, int sockindex,
stream->upload_len = 0;
if(should_close_session(httpc)) {
- DEBUGF(infof(conn->data, "http2_send: nothing to do in this session\n"));
+ H2BUGF(infof(conn->data, "http2_send: nothing to do in this session\n"));
*err = CURLE_HTTP2;
return -1;
}
@@ -1781,7 +1799,7 @@ static ssize_t http2_send(struct connectdata *conn, int sockindex,
nghttp2_session_resume_data(h2, stream->stream_id);
}
- DEBUGF(infof(conn->data, "http2_send returns %zu for stream %u\n", len,
+ H2BUGF(infof(conn->data, "http2_send returns %zu for stream %u\n", len,
stream->stream_id));
return len;
}
@@ -1937,7 +1955,7 @@ static ssize_t http2_send(struct connectdata *conn, int sockindex,
for(i = 0; i < nheader; ++i) {
acc += nva[i].namelen + nva[i].valuelen;
- DEBUGF(infof(conn->data, "h2 header: %.*s:%.*s\n",
+ H2BUGF(infof(conn->data, "h2 header: %.*s:%.*s\n",
nva[i].namelen, nva[i].name,
nva[i].valuelen, nva[i].value));
}
@@ -1975,7 +1993,7 @@ static ssize_t http2_send(struct connectdata *conn, int sockindex,
Curl_safefree(nva);
if(stream_id < 0) {
- DEBUGF(infof(conn->data, "http2_send() send error\n"));
+ H2BUGF(infof(conn->data, "http2_send() send error\n"));
*err = CURLE_SEND_ERROR;
return -1;
}
@@ -1994,7 +2012,7 @@ static ssize_t http2_send(struct connectdata *conn, int sockindex,
}
if(should_close_session(httpc)) {
- DEBUGF(infof(conn->data, "http2_send: nothing to do in this session\n"));
+ H2BUGF(infof(conn->data, "http2_send: nothing to do in this session\n"));
*err = CURLE_HTTP2;
return -1;
}
@@ -2152,7 +2170,7 @@ CURLcode Curl_http2_switched(struct connectdata *conn,
return CURLE_HTTP2;
}
- DEBUGF(infof(data, "nghttp2_session_mem_recv() returns %zd\n", nproc));
+ H2BUGF(infof(data, "nghttp2_session_mem_recv() returns %zd\n", nproc));
if((ssize_t)nread == nproc) {
httpc->inbuflen = 0;
@@ -2172,7 +2190,7 @@ CURLcode Curl_http2_switched(struct connectdata *conn,
}
if(should_close_session(httpc)) {
- DEBUGF(infof(data,
+ H2BUGF(infof(data,
"nghttp2_session_send(): nothing to do in this session\n"));
return CURLE_HTTP2;
}
diff --git a/lib/http_chunks.c b/lib/http_chunks.c
index 16164296..8368eeca 100644
--- a/lib/http_chunks.c
+++ b/lib/http_chunks.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -74,15 +74,6 @@
*/
-/* Check for an ASCII hex digit.
- We avoid the use of isxdigit to accommodate non-ASCII hosts. */
-static bool Curl_isxdigit(char digit)
-{
- return ( (digit >= 0x30 && digit <= 0x39) /* 0-9 */
- || (digit >= 0x41 && digit <= 0x46) /* A-F */
- || (digit >= 0x61 && digit <= 0x66) /* a-f */) ? TRUE : FALSE;
-}
-
void Curl_httpchunk_init(struct connectdata *conn)
{
struct Curl_chunker *chunk = &conn->chunk;
@@ -187,15 +178,15 @@ CHUNKcode Curl_httpchunk_read(struct connectdata *conn,
piece = curlx_sotouz((ch->datasize >= length)?length:ch->datasize);
/* Write the data portion available */
- if(conn->data->set.http_ce_skip || !k->writer_stack) {
- if(!k->ignorebody)
+ if(!conn->data->set.http_te_skip && !k->ignorebody) {
+ if(!conn->data->set.http_ce_skip && k->writer_stack)
+ result = Curl_unencode_write(conn, k->writer_stack, datap, piece);
+ else
result = Curl_client_write(conn, CLIENTWRITE_BODY, datap, piece);
- }
- else
- result = Curl_unencode_write(conn, k->writer_stack, datap, piece);
- if(result)
- return CHUNKE_WRITE_ERROR;
+ if(result)
+ return CHUNKE_WRITE_ERROR;
+ }
*wrote += piece;
ch->datasize -= piece; /* decrease amount left to expect */
diff --git a/lib/http_proxy.c b/lib/http_proxy.c
index 7f504054..c1eb177d 100644
--- a/lib/http_proxy.c
+++ b/lib/http_proxy.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -252,7 +252,7 @@ static CURLcode CONNECT(struct connectdata *conn,
return CURLE_OUT_OF_MEMORY;
}
- if(!Curl_checkProxyheaders(conn, "Host:")) {
+ if(!Curl_checkProxyheaders(conn, "Host")) {
host = aprintf("Host: %s\r\n", hostheader);
if(!host) {
free(hostheader);
@@ -260,10 +260,10 @@ static CURLcode CONNECT(struct connectdata *conn,
return CURLE_OUT_OF_MEMORY;
}
}
- if(!Curl_checkProxyheaders(conn, "Proxy-Connection:"))
+ if(!Curl_checkProxyheaders(conn, "Proxy-Connection"))
proxyconn = "Proxy-Connection: Keep-Alive\r\n";
- if(!Curl_checkProxyheaders(conn, "User-Agent:") &&
+ if(!Curl_checkProxyheaders(conn, "User-Agent") &&
data->set.str[STRING_USERAGENT])
useragent = conn->allocptr.uagent;
diff --git a/lib/krb5.c b/lib/krb5.c
index 35a4ca0c..8b5a2472 100644
--- a/lib/krb5.c
+++ b/lib/krb5.c
@@ -85,7 +85,7 @@ krb5_decode(void *app_data, void *buf, int len,
enc.value = buf;
enc.length = len;
- maj = gss_unseal(&min, *context, &enc, &dec, NULL, NULL);
+ maj = gss_unwrap(&min, *context, &enc, &dec, NULL, NULL);
if(maj != GSS_S_COMPLETE) {
if(len >= 4)
strcpy(buf, "599 ");
@@ -119,11 +119,11 @@ krb5_encode(void *app_data, const void *from, int length, int level, void **to)
int len;
/* NOTE that the cast is safe, neither of the krb5, gnu gss and heimdal
- * libraries modify the input buffer in gss_seal()
+ * libraries modify the input buffer in gss_wrap()
*/
dec.value = (void *)from;
dec.length = length;
- maj = gss_seal(&min, *context,
+ maj = gss_wrap(&min, *context,
level == PROT_PRIVATE,
GSS_C_QOP_DEFAULT,
&dec, &state, &enc);
diff --git a/lib/libcurl.plist b/lib/libcurl.plist
index 5b02d28b..da7037d5 100644
--- a/lib/libcurl.plist
+++ b/lib/libcurl.plist
@@ -15,7 +15,7 @@
<string>se.haxx.curl.libcurl</string>
<key>CFBundleVersion</key>
- <string>7.58.0</string>
+ <string>7.59.0</string>
<key>CFBundleName</key>
<string>libcurl</string>
@@ -27,9 +27,9 @@
<string>????</string>
<key>CFBundleShortVersionString</key>
- <string>libcurl 7.58.0</string>
+ <string>libcurl 7.59.0</string>
<key>CFBundleGetInfoString</key>
- <string>libcurl.plist 7.58.0</string>
+ <string>libcurl.plist 7.59.0</string>
</dict>
</plist>
diff --git a/lib/mime.c b/lib/mime.c
index e0853a9e..0ccb346e 100644
--- a/lib/mime.c
+++ b/lib/mime.c
@@ -51,10 +51,6 @@
#endif
-#define FILE_CONTENTTYPE_DEFAULT "application/octet-stream"
-#define MULTIPART_CONTENTTYPE_DEFAULT "multipart/mixed"
-#define DISPOSITION_DEFAULT "attachment"
-
#define READ_ERROR ((size_t) -1)
/* Encoders. */
@@ -1642,8 +1638,7 @@ static CURLcode add_content_type(struct curl_slist **slp,
boundary? boundary: "");
}
-
-static const char *ContentTypeForFilename(const char *filename)
+const char *Curl_mime_contenttype(const char *filename)
{
unsigned int i;
@@ -1715,14 +1710,14 @@ CURLcode Curl_mime_prepare_headers(curl_mimepart *part,
contenttype = MULTIPART_CONTENTTYPE_DEFAULT;
break;
case MIMEKIND_FILE:
- contenttype = ContentTypeForFilename(part->filename);
+ contenttype = Curl_mime_contenttype(part->filename);
if(!contenttype)
- contenttype = ContentTypeForFilename(part->data);
+ contenttype = Curl_mime_contenttype(part->data);
if(!contenttype && part->filename)
contenttype = FILE_CONTENTTYPE_DEFAULT;
break;
default:
- contenttype = ContentTypeForFilename(part->filename);
+ contenttype = Curl_mime_contenttype(part->filename);
break;
}
}
diff --git a/lib/mime.h b/lib/mime.h
index 920a8a77..4d5c7040 100644
--- a/lib/mime.h
+++ b/lib/mime.h
@@ -30,6 +30,10 @@
#define MIME_USERHEADERS_OWNER (1 << 0)
#define MIME_BODY_ONLY (1 << 1)
+#define FILE_CONTENTTYPE_DEFAULT "application/octet-stream"
+#define MULTIPART_CONTENTTYPE_DEFAULT "multipart/mixed"
+#define DISPOSITION_DEFAULT "attachment"
+
/* Part source kinds. */
enum mimekind {
MIMEKIND_NONE = 0, /* Part not set. */
@@ -134,5 +138,6 @@ size_t Curl_mime_read(char *buffer, size_t size, size_t nitems,
void *instream);
CURLcode Curl_mime_rewind(curl_mimepart *part);
CURLcode Curl_mime_add_header(struct curl_slist **slp, const char *fmt, ...);
+const char *Curl_mime_contenttype(const char *filename);
#endif /* HEADER_CURL_MIME_H */
diff --git a/lib/mk-ca-bundle.vbs b/lib/mk-ca-bundle.vbs
index a9b983e9..8da27926 100755
--- a/lib/mk-ca-bundle.vbs
+++ b/lib/mk-ca-bundle.vbs
@@ -314,7 +314,7 @@ Function RegExprFirst(SearchPattern, TheString)
Set objRegExp = New RegExp ' create a regular expression.
objRegExp.Pattern = SearchPattern ' sets the search pattern.
objRegExp.IgnoreCase = TRUE ' set to ignores case.
- objRegExp.Global = TRUE ' set to gloabal search.
+ objRegExp.Global = TRUE ' set to global search.
Set Matches = objRegExp.Execute(TheString) ' do the search.
If (Matches.Count) Then
RegExprFirst = Matches(0).SubMatches(0) ' return first match.
diff --git a/lib/multi.c b/lib/multi.c
index 43823cc9..98e5fca2 100644
--- a/lib/multi.c
+++ b/lib/multi.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -366,6 +366,9 @@ CURLMcode curl_multi_add_handle(struct Curl_multi *multi,
if(data->multi)
return CURLM_ADDED_ALREADY;
+ if(multi->in_callback)
+ return CURLM_RECURSIVE_API_CALL;
+
/* Initialize timeout list for this handle */
Curl_llist_init(&data->state.timeoutlist, NULL);
@@ -535,11 +538,8 @@ static CURLcode multi_done(struct connectdata **connp,
result = CURLE_ABORTED_BY_CALLBACK;
}
- if(conn->send_pipe.size + conn->recv_pipe.size != 0 &&
- !data->set.reuse_forbid &&
- !conn->bits.close) {
- /* Stop if pipeline is not empty and we do not have to close
- connection. */
+ if(conn->send_pipe.size || conn->recv_pipe.size) {
+ /* Stop if pipeline is not empty . */
data->easy_conn = NULL;
DEBUGF(infof(data, "Connection still in use, no more multi_done now!\n"));
return CURLE_OK;
@@ -640,6 +640,9 @@ CURLMcode curl_multi_remove_handle(struct Curl_multi *multi,
if(!data->multi)
return CURLM_OK; /* it is already removed so let's say it is fine! */
+ if(multi->in_callback)
+ return CURLM_RECURSIVE_API_CALL;
+
premature = (data->mstate < CURLM_STATE_COMPLETED) ? TRUE : FALSE;
easy_owns_conn = (data->easy_conn && (data->easy_conn->data == easy)) ?
TRUE : FALSE;
@@ -903,6 +906,9 @@ CURLMcode curl_multi_fdset(struct Curl_multi *multi,
if(!GOOD_MULTI_HANDLE(multi))
return CURLM_BAD_HANDLE;
+ if(multi->in_callback)
+ return CURLM_RECURSIVE_API_CALL;
+
data = multi->easyp;
while(data) {
bitmap = multi_getsock(data, sockbunch, MAX_SOCKSPEREASYHANDLE);
@@ -956,6 +962,9 @@ CURLMcode curl_multi_wait(struct Curl_multi *multi,
if(!GOOD_MULTI_HANDLE(multi))
return CURLM_BAD_HANDLE;
+ if(multi->in_callback)
+ return CURLM_RECURSIVE_API_CALL;
+
/* If the internally desired timeout is actually shorter than requested from
the outside, then use the shorter time! But only if the internal timer
is actually larger than -1! */
@@ -1121,6 +1130,9 @@ CURLMcode Curl_multi_add_perform(struct Curl_multi *multi,
{
CURLMcode rc;
+ if(multi->in_callback)
+ return CURLM_RECURSIVE_API_CALL;
+
rc = curl_multi_add_handle(multi, data);
if(!rc) {
struct SingleRequest *k = &data->req;
@@ -2127,6 +2139,9 @@ CURLMcode curl_multi_perform(struct Curl_multi *multi, int *running_handles)
if(!GOOD_MULTI_HANDLE(multi))
return CURLM_BAD_HANDLE;
+ if(multi->in_callback)
+ return CURLM_RECURSIVE_API_CALL;
+
data = multi->easyp;
while(data) {
CURLMcode result;
@@ -2174,6 +2189,9 @@ CURLMcode curl_multi_cleanup(struct Curl_multi *multi)
struct Curl_easy *nextdata;
if(GOOD_MULTI_HANDLE(multi)) {
+ if(multi->in_callback)
+ return CURLM_RECURSIVE_API_CALL;
+
multi->type = 0; /* not good anymore */
/* Firsrt remove all remaining easy handles */
@@ -2234,7 +2252,9 @@ CURLMsg *curl_multi_info_read(struct Curl_multi *multi, int *msgs_in_queue)
*msgs_in_queue = 0; /* default to none */
- if(GOOD_MULTI_HANDLE(multi) && Curl_llist_count(&multi->msglist)) {
+ if(GOOD_MULTI_HANDLE(multi) &&
+ !multi->in_callback &&
+ Curl_llist_count(&multi->msglist)) {
/* there is one or more messages in the list */
struct curl_llist_element *e;
@@ -2624,6 +2644,9 @@ CURLMcode curl_multi_setopt(struct Curl_multi *multi,
if(!GOOD_MULTI_HANDLE(multi))
return CURLM_BAD_HANDLE;
+ if(multi->in_callback)
+ return CURLM_RECURSIVE_API_CALL;
+
va_start(param, option);
switch(option) {
@@ -2688,7 +2711,10 @@ CURLMcode curl_multi_setopt(struct Curl_multi *multi,
CURLMcode curl_multi_socket(struct Curl_multi *multi, curl_socket_t s,
int *running_handles)
{
- CURLMcode result = multi_socket(multi, FALSE, s, 0, running_handles);
+ CURLMcode result;
+ if(multi->in_callback)
+ return CURLM_RECURSIVE_API_CALL;
+ result = multi_socket(multi, FALSE, s, 0, running_handles);
if(CURLM_OK >= result)
update_timer(multi);
return result;
@@ -2697,8 +2723,10 @@ CURLMcode curl_multi_socket(struct Curl_multi *multi, curl_socket_t s,
CURLMcode curl_multi_socket_action(struct Curl_multi *multi, curl_socket_t s,
int ev_bitmask, int *running_handles)
{
- CURLMcode result = multi_socket(multi, FALSE, s,
- ev_bitmask, running_handles);
+ CURLMcode result;
+ if(multi->in_callback)
+ return CURLM_RECURSIVE_API_CALL;
+ result = multi_socket(multi, FALSE, s, ev_bitmask, running_handles);
if(CURLM_OK >= result)
update_timer(multi);
return result;
@@ -2707,8 +2735,10 @@ CURLMcode curl_multi_socket_action(struct Curl_multi *multi, curl_socket_t s,
CURLMcode curl_multi_socket_all(struct Curl_multi *multi, int *running_handles)
{
- CURLMcode result = multi_socket(multi, TRUE, CURL_SOCKET_BAD, 0,
- running_handles);
+ CURLMcode result;
+ if(multi->in_callback)
+ return CURLM_RECURSIVE_API_CALL;
+ result = multi_socket(multi, TRUE, CURL_SOCKET_BAD, 0, running_handles);
if(CURLM_OK >= result)
update_timer(multi);
return result;
@@ -2760,6 +2790,9 @@ CURLMcode curl_multi_timeout(struct Curl_multi *multi,
if(!GOOD_MULTI_HANDLE(multi))
return CURLM_BAD_HANDLE;
+ if(multi->in_callback)
+ return CURLM_RECURSIVE_API_CALL;
+
return multi_timeout(multi, timeout_ms);
}
@@ -2992,6 +3025,9 @@ CURLMcode curl_multi_assign(struct Curl_multi *multi, curl_socket_t s,
{
struct Curl_sh_entry *there = NULL;
+ if(multi->in_callback)
+ return CURLM_RECURSIVE_API_CALL;
+
there = sh_getentry(&multi->sockhash, s);
if(!there)
@@ -3054,6 +3090,20 @@ void Curl_multi_process_pending_handles(struct Curl_multi *multi)
}
}
+void Curl_set_in_callback(struct Curl_easy *easy, bool value)
+{
+ if(easy->multi_easy)
+ easy->multi_easy->in_callback = value;
+ else if(easy->multi)
+ easy->multi->in_callback = value;
+}
+
+bool Curl_is_in_callback(struct Curl_easy *easy)
+{
+ return ((easy->multi && easy->multi->in_callback) ||
+ (easy->multi_easy && easy->multi_easy->in_callback));
+}
+
#ifdef DEBUGBUILD
void Curl_multi_dump(struct Curl_multi *multi)
{
diff --git a/lib/multihandle.h b/lib/multihandle.h
index de9a7cf5..1a5017f4 100644
--- a/lib/multihandle.h
+++ b/lib/multihandle.h
@@ -146,6 +146,7 @@ struct Curl_multi {
void *timer_userp;
struct curltime timer_lastcall; /* the fixed time for the timeout for the
previous callback */
+ bool in_callback; /* true while executing a callback */
};
#endif /* HEADER_CURL_MULTIHANDLE_H */
diff --git a/lib/multiif.h b/lib/multiif.h
index a877571a..a988bfd4 100644
--- a/lib/multiif.h
+++ b/lib/multiif.h
@@ -31,6 +31,8 @@ void Curl_expire_clear(struct Curl_easy *data);
void Curl_expire_done(struct Curl_easy *data, expire_id id);
bool Curl_pipeline_wanted(const struct Curl_multi* multi, int bits);
void Curl_multi_handlePipeBreak(struct Curl_easy *data);
+void Curl_set_in_callback(struct Curl_easy *data, bool value);
+bool Curl_is_in_callback(struct Curl_easy *easy);
/* Internal version of curl_multi_init() accepts size parameters for the
socket and connection hashes */
diff --git a/lib/non-ascii.c b/lib/non-ascii.c
index 92b2f8d7..14143248 100644
--- a/lib/non-ascii.c
+++ b/lib/non-ascii.c
@@ -30,6 +30,7 @@
#include "formdata.h"
#include "sendf.h"
#include "urldata.h"
+#include "multiif.h"
#include "curl_memory.h"
/* The last #include file should be: */
@@ -84,7 +85,10 @@ CURLcode Curl_convert_to_network(struct Curl_easy *data,
{
if(data && data->set.convtonetwork) {
/* use translation callback */
- CURLcode result = data->set.convtonetwork(buffer, length);
+ CURLcode result;
+ Curl_set_in_callback(data, true);
+ result = data->set.convtonetwork(buffer, length);
+ Curl_set_in_callback(data, false);
if(result) {
failf(data,
"CURLOPT_CONV_TO_NETWORK_FUNCTION callback returned %d: %s",
@@ -147,7 +151,10 @@ CURLcode Curl_convert_from_network(struct Curl_easy *data,
{
if(data && data->set.convfromnetwork) {
/* use translation callback */
- CURLcode result = data->set.convfromnetwork(buffer, length);
+ CURLcode result;
+ Curl_set_in_callback(data, true);
+ result = data->set.convfromnetwork(buffer, length);
+ Curl_set_in_callback(data, false);
if(result) {
failf(data,
"CURLOPT_CONV_FROM_NETWORK_FUNCTION callback returned %d: %s",
@@ -210,7 +217,10 @@ CURLcode Curl_convert_from_utf8(struct Curl_easy *data,
{
if(data && data->set.convfromutf8) {
/* use translation callback */
- CURLcode result = data->set.convfromutf8(buffer, length);
+ CURLcode result;
+ Curl_set_in_callback(data, true);
+ result = data->set.convfromutf8(buffer, length);
+ Curl_set_in_callback(data, false);
if(result) {
failf(data,
"CURLOPT_CONV_FROM_UTF8_FUNCTION callback returned %d: %s",
diff --git a/lib/objnames.inc b/lib/objnames.inc
index 6a5b2a83..e362f6e8 100644
--- a/lib/objnames.inc
+++ b/lib/objnames.inc
@@ -86,7 +86,7 @@ curl_10char_object_name() {
# curl_8char_object_name
#
# Same as curl_10char_object_name() description and details above, except
-# that object name is limited to 8 charcters maximum.
+# that object name is limited to 8 characters maximum.
#
curl_8char_object_name() {
diff --git a/lib/openldap.c b/lib/openldap.c
index f2ffdfe6..187c8999 100644
--- a/lib/openldap.c
+++ b/lib/openldap.c
@@ -5,8 +5,8 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 2010, 2017, Howard Chu, <hyc@openldap.org>
- * Copyright (C) 2011 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 2010, Howard Chu, <hyc@openldap.org>
+ * Copyright (C) 2011 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -221,7 +221,7 @@ static CURLcode ldap_connect(struct connectdata *conn, bool *done)
if(conn->handler->flags & PROTOPT_SSL)
*ptr++ = 's';
snprintf(ptr, sizeof(hosturl)-(ptr-hosturl), "://%s:%d",
- conn->host.name, conn->remote_port);
+ conn->host.name, conn->remote_port);
#ifdef CURL_OPENLDAP_DEBUG
static int do_trace = 0;
@@ -286,7 +286,7 @@ static CURLcode ldap_connecting(struct connectdata *conn, bool *done)
tvp = &tv;
-retry:
+ retry:
if(!li->didbind) {
char *binddn;
struct berval passwd;
@@ -472,8 +472,8 @@ static ssize_t ldap_recv(struct connectdata *conn, int sockindex, char *buf,
return ret;
for(ent = ldap_first_message(li->ld, msg); ent;
- ent = ldap_next_message(li->ld, ent)) {
- struct berval bv, *bvals, **bvp = &bvals;
+ ent = ldap_next_message(li->ld, ent)) {
+ struct berval bv, *bvals;
int binary = 0, msgtype;
CURLcode writeerr;
@@ -535,12 +535,13 @@ static ssize_t ldap_recv(struct connectdata *conn, int sockindex, char *buf,
}
data->req.bytecount += bv.bv_len + 5;
- for(rc = ldap_get_attribute_ber(li->ld, ent, ber, &bv, bvp);
- rc == LDAP_SUCCESS;
- rc = ldap_get_attribute_ber(li->ld, ent, ber, &bv, bvp)) {
+ for(rc = ldap_get_attribute_ber(li->ld, ent, ber, &bv, &bvals);
+ (rc == LDAP_SUCCESS) && bvals;
+ rc = ldap_get_attribute_ber(li->ld, ent, ber, &bv, &bvals)) {
int i;
- if(bv.bv_val == NULL) break;
+ if(bv.bv_val == NULL)
+ break;
if(bv.bv_len > 7 && !strncmp(bv.bv_val + bv.bv_len - 7, ";binary", 7))
binary = 1;
@@ -555,24 +556,24 @@ static ssize_t ldap_recv(struct connectdata *conn, int sockindex, char *buf,
return -1;
}
- writeerr = Curl_client_write(conn, CLIENTWRITE_BODY, (char *)bv.bv_val,
- bv.bv_len);
- if(writeerr) {
- *err = writeerr;
- return -1;
- }
+ writeerr = Curl_client_write(conn, CLIENTWRITE_BODY, (char *)bv.bv_val,
+ bv.bv_len);
+ if(writeerr) {
+ *err = writeerr;
+ return -1;
+ }
writeerr = Curl_client_write(conn, CLIENTWRITE_BODY, (char *)":", 1);
- if(writeerr) {
- *err = writeerr;
- return -1;
- }
+ if(writeerr) {
+ *err = writeerr;
+ return -1;
+ }
data->req.bytecount += bv.bv_len + 2;
if(!binary) {
/* check for leading or trailing whitespace */
if(ISSPACE(bvals[i].bv_val[0]) ||
- ISSPACE(bvals[i].bv_val[bvals[i].bv_len-1]))
+ ISSPACE(bvals[i].bv_val[bvals[i].bv_len-1]))
binval = 1;
else {
/* check for unprintable characters */
@@ -610,7 +611,7 @@ static ssize_t ldap_recv(struct connectdata *conn, int sockindex, char *buf,
data->req.bytecount += 2;
if(val_b64_sz > 0) {
writeerr = Curl_client_write(conn, CLIENTWRITE_BODY, val_b64,
- val_b64_sz);
+ val_b64_sz);
if(writeerr) {
*err = writeerr;
return -1;
diff --git a/lib/parsedate.c b/lib/parsedate.c
index 0fabbd26..aa27303f 100644
--- a/lib/parsedate.c
+++ b/lib/parsedate.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -276,26 +276,23 @@ struct my_tm {
int tm_hour;
int tm_mday;
int tm_mon;
- int tm_year;
+ int tm_year; /* full year */
};
/* struct tm to time since epoch in GMT time zone.
* This is similar to the standard mktime function but for GMT only, and
* doesn't suffer from the various bugs and portability problems that
* some systems' implementations have.
+ *
+ * Returns 0 on success, otherwise non-zero.
*/
-static time_t my_timegm(struct my_tm *tm)
+static void my_timegm(struct my_tm *tm, time_t *t)
{
static const int month_days_cumulative [12] =
{ 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 };
int month, year, leap_days;
- if(tm->tm_year < 70)
- /* we don't support years before 1970 as they will cause this function
- to return a negative value */
- return -1;
-
- year = tm->tm_year + 1900;
+ year = tm->tm_year;
month = tm->tm_mon;
if(month < 0) {
year += (11 - month) / 12;
@@ -310,9 +307,9 @@ static time_t my_timegm(struct my_tm *tm)
leap_days = ((leap_days / 4) - (leap_days / 100) + (leap_days / 400)
- (1969 / 4) + (1969 / 100) - (1969 / 400));
- return ((((time_t) (year - 1970) * 365
- + leap_days + month_days_cumulative [month] + tm->tm_mday - 1) * 24
- + tm->tm_hour) * 60 + tm->tm_min) * 60 + tm->tm_sec;
+ *t = ((((time_t) (year - 1970) * 365
+ + leap_days + month_days_cumulative[month] + tm->tm_mday - 1) * 24
+ + tm->tm_hour) * 60 + tm->tm_min) * 60 + tm->tm_sec;
}
/*
@@ -436,7 +433,7 @@ static int parsedate(const char *date, time_t *output)
tzoff = (val/100 * 60 + val%100)*60;
/* the + and - prefix indicates the local time compared to GMT,
- this we need ther reversed math to get what we want */
+ this we need their reversed math to get what we want */
tzoff = date[-1]=='+'?-tzoff:tzoff;
}
@@ -462,7 +459,7 @@ static int parsedate(const char *date, time_t *output)
if(!found && (dignext == DATE_YEAR) && (yearnum == -1)) {
yearnum = val;
found = TRUE;
- if(yearnum < 1900) {
+ if(yearnum < 100) {
if(yearnum > 70)
yearnum += 1900;
else
@@ -491,18 +488,39 @@ static int parsedate(const char *date, time_t *output)
/* lacks vital info, fail */
return PARSEDATE_FAIL;
-#if SIZEOF_TIME_T < 5
- /* 32 bit time_t can only hold dates to the beginning of 2038 */
- if(yearnum > 2037) {
- *output = 0x7fffffff;
- return PARSEDATE_LATER;
+#ifdef HAVE_TIME_T_UNSIGNED
+ if(yearnum < 1970) {
+ /* only positive numbers cannot return earlier */
+ *output = TIME_T_MIN;
+ return PARSEDATE_SOONER;
}
#endif
- if(yearnum < 1970) {
- *output = 0;
+#if (SIZEOF_TIME_T < 5)
+
+#ifdef HAVE_TIME_T_UNSIGNED
+ /* an unsigned 32 bit time_t can only hold dates to 2106 */
+ if(yearnum > 2105) {
+ *output = TIME_T_MAX;
+ return PARSEDATE_LATER;
+ }
+#else
+ /* a signed 32 bit time_t can only hold dates to the beginning of 2038 */
+ if(yearnum > 2037) {
+ *output = TIME_T_MAX;
+ return PARSEDATE_LATER;
+ }
+ if(yearnum < 1903) {
+ *output = TIME_T_MIN;
return PARSEDATE_SOONER;
}
+#endif
+
+#else
+ /* The Gregorian calendar was introduced 1582 */
+ if(yearnum < 1583)
+ return PARSEDATE_FAIL;
+#endif
if((mdaynum > 31) || (monnum > 11) ||
(hournum > 23) || (minnum > 59) || (secnum > 60))
@@ -513,31 +531,25 @@ static int parsedate(const char *date, time_t *output)
tm.tm_hour = hournum;
tm.tm_mday = mdaynum;
tm.tm_mon = monnum;
- tm.tm_year = yearnum - 1900;
-
- /* my_timegm() returns a time_t. time_t is often 32 bits, even on many
- architectures that feature 64 bit 'long'.
+ tm.tm_year = yearnum;
- Some systems have 64 bit time_t and deal with years beyond 2038. However,
- even on some of the systems with 64 bit time_t mktime() returns -1 for
- dates beyond 03:14:07 UTC, January 19, 2038. (Such as AIX 5100-06)
+ /* my_timegm() returns a time_t. time_t is often 32 bits, sometimes even on
+ architectures that feature 64 bit 'long' but ultimately time_t is the
+ correct data type to use.
*/
- t = my_timegm(&tm);
-
- /* time zone adjust (cast t to int to compare to negative one) */
- if(-1 != (int)t) {
+ my_timegm(&tm, &t);
- /* Add the time zone diff between local time zone and GMT. */
- long delta = (long)(tzoff!=-1?tzoff:0);
+ /* Add the time zone diff between local time zone and GMT. */
+ if(tzoff == -1)
+ tzoff = 0;
- if((delta>0) && (t > LONG_MAX - delta)) {
- *output = 0x7fffffff;
- return PARSEDATE_LATER; /* time_t overflow */
- }
-
- t += delta;
+ if((tzoff > 0) && (t > TIME_T_MAX - tzoff)) {
+ *output = TIME_T_MAX;
+ return PARSEDATE_LATER; /* time_t overflow */
}
+ t += tzoff;
+
*output = t;
return PARSEDATE_OK;
@@ -549,10 +561,10 @@ time_t curl_getdate(const char *p, const time_t *now)
int rc = parsedate(p, &parsed);
(void)now; /* legacy argument from the past that we ignore */
- switch(rc) {
- case PARSEDATE_OK:
- case PARSEDATE_LATER:
- case PARSEDATE_SOONER:
+ if(rc == PARSEDATE_OK) {
+ if(parsed == -1)
+ /* avoid returning -1 for a working scenario */
+ parsed++;
return parsed;
}
/* everything else is fail */
diff --git a/lib/progress.c b/lib/progress.c
index cc5e8be7..ce8be7ff 100644
--- a/lib/progress.c
+++ b/lib/progress.c
@@ -24,6 +24,7 @@
#include "urldata.h"
#include "sendf.h"
+#include "multiif.h"
#include "progress.h"
#include "curl_printf.h"
@@ -237,8 +238,8 @@ void Curl_pgrsStartNow(struct Curl_easy *data)
}
/*
- * This is used to handle speed limits, calculating how much milliseconds we
- * need to wait until we're back under the speed limit, if needed.
+ * This is used to handle speed limits, calculating how many milliseconds to
+ * wait until we're back under the speed limit, if needed.
*
* The way it works is by having a "starting point" (time & amount of data
* transferred by then) used in the speed computation, to be used instead of
@@ -250,16 +251,15 @@ void Curl_pgrsStartNow(struct Curl_easy *data)
* the starting point, the limit (in bytes/s), the time of the starting point
* and the current time.
*
- * Returns -1 if no waiting is needed (not enough data transferred since
- * starting point yet), 0 when no waiting is needed but the starting point
- * should be reset (to current), or the number of milliseconds to wait to get
- * back under the speed limit.
+ * Returns 0 if no waiting is needed or when no waiting is needed but the
+ * starting point should be reset (to current); or the number of milliseconds
+ * to wait to get back under the speed limit.
*/
-long Curl_pgrsLimitWaitTime(curl_off_t cursize,
- curl_off_t startsize,
- curl_off_t limit,
- struct curltime start,
- struct curltime now)
+timediff_t Curl_pgrsLimitWaitTime(curl_off_t cursize,
+ curl_off_t startsize,
+ curl_off_t limit,
+ struct curltime start,
+ struct curltime now)
{
curl_off_t size = cursize - startsize;
time_t minimum;
@@ -269,16 +269,23 @@ long Curl_pgrsLimitWaitTime(curl_off_t cursize,
if(start.tv_sec == 0 && start.tv_usec == 0)
return 0;
- /* not enough data yet */
- if(size < limit)
- return -1;
+ if(!limit)
+ return 0;
+
+ if(size < CURL_OFF_T_MAX/1000)
+ minimum = (time_t) (CURL_OFF_T_C(1000) * size / limit);
+ else {
+ minimum = (time_t) (size / limit);
+ if(minimum < TIME_T_MAX/1000)
+ minimum *= 1000;
+ else
+ minimum = TIME_T_MAX;
+ }
- minimum = (time_t) (CURL_OFF_T_C(1000) * size / limit);
actual = Curl_timediff(now, start);
if(actual < minimum)
- /* this is a conversion on some systems (64bit time_t => 32bit long) */
- return (long)(minimum - actual);
+ return (minimum - actual);
return 0;
}
@@ -461,22 +468,26 @@ int Curl_pgrsUpdate(struct connectdata *conn)
if(data->set.fxferinfo) {
/* There's a callback set, call that */
+ Curl_set_in_callback(data, true);
result = data->set.fxferinfo(data->set.progress_client,
data->progress.size_dl,
data->progress.downloaded,
data->progress.size_ul,
data->progress.uploaded);
+ Curl_set_in_callback(data, false);
if(result)
failf(data, "Callback aborted");
return result;
}
if(data->set.fprogress) {
/* The older deprecated callback is set, call that */
+ Curl_set_in_callback(data, true);
result = data->set.fprogress(data->set.progress_client,
(double)data->progress.size_dl,
(double)data->progress.downloaded,
(double)data->progress.size_ul,
(double)data->progress.uploaded);
+ Curl_set_in_callback(data, false);
if(result)
failf(data, "Callback aborted");
return result;
diff --git a/lib/progress.h b/lib/progress.h
index 9333ab25..3c2231cb 100644
--- a/lib/progress.h
+++ b/lib/progress.h
@@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -49,11 +49,11 @@ void Curl_pgrsSetUploadCounter(struct Curl_easy *data, curl_off_t size);
int Curl_pgrsUpdate(struct connectdata *);
void Curl_pgrsResetTransferSizes(struct Curl_easy *data);
void Curl_pgrsTime(struct Curl_easy *data, timerid timer);
-long Curl_pgrsLimitWaitTime(curl_off_t cursize,
- curl_off_t startsize,
- curl_off_t limit,
- struct curltime start,
- struct curltime now);
+timediff_t Curl_pgrsLimitWaitTime(curl_off_t cursize,
+ curl_off_t startsize,
+ curl_off_t limit,
+ struct curltime start,
+ struct curltime now);
/* Don't show progress for sizes smaller than: */
#define LEAST_SIZE_PROGRESS BUFSIZE
diff --git a/lib/rtsp.c b/lib/rtsp.c
index 925da2c1..194bc949 100644
--- a/lib/rtsp.c
+++ b/lib/rtsp.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -47,7 +47,7 @@
* -incoming server requests
* -server CSeq counter
* -digest authentication
- * -connect thru proxy
+ * -connect through proxy
* -pipelining?
*/
@@ -357,7 +357,7 @@ static CURLcode rtsp_do(struct connectdata *conn, bool *done)
}
/* Transport Header for SETUP requests */
- p_transport = Curl_checkheaders(conn, "Transport:");
+ p_transport = Curl_checkheaders(conn, "Transport");
if(rtspreq == RTSPREQ_SETUP && !p_transport) {
/* New Transport: setting? */
if(data->set.str[STRING_RTSP_TRANSPORT]) {
@@ -381,11 +381,11 @@ static CURLcode rtsp_do(struct connectdata *conn, bool *done)
/* Accept Headers for DESCRIBE requests */
if(rtspreq == RTSPREQ_DESCRIBE) {
/* Accept Header */
- p_accept = Curl_checkheaders(conn, "Accept:")?
+ p_accept = Curl_checkheaders(conn, "Accept")?
NULL:"Accept: application/sdp\r\n";
/* Accept-Encoding header */
- if(!Curl_checkheaders(conn, "Accept-Encoding:") &&
+ if(!Curl_checkheaders(conn, "Accept-Encoding") &&
data->set.str[STRING_ENCODING]) {
Curl_safefree(conn->allocptr.accept_encoding);
conn->allocptr.accept_encoding =
@@ -402,11 +402,11 @@ static CURLcode rtsp_do(struct connectdata *conn, bool *done)
it might have been used in the proxy connect, but if we have got a header
with the user-agent string specified, we erase the previously made string
here. */
- if(Curl_checkheaders(conn, "User-Agent:") && conn->allocptr.uagent) {
+ if(Curl_checkheaders(conn, "User-Agent") && conn->allocptr.uagent) {
Curl_safefree(conn->allocptr.uagent);
conn->allocptr.uagent = NULL;
}
- else if(!Curl_checkheaders(conn, "User-Agent:") &&
+ else if(!Curl_checkheaders(conn, "User-Agent") &&
data->set.str[STRING_USERAGENT]) {
p_uagent = conn->allocptr.uagent;
}
@@ -421,7 +421,7 @@ static CURLcode rtsp_do(struct connectdata *conn, bool *done)
/* Referrer */
Curl_safefree(conn->allocptr.ref);
- if(data->change.referer && !Curl_checkheaders(conn, "Referer:"))
+ if(data->change.referer && !Curl_checkheaders(conn, "Referer"))
conn->allocptr.ref = aprintf("Referer: %s\r\n", data->change.referer);
else
conn->allocptr.ref = NULL;
@@ -438,7 +438,7 @@ static CURLcode rtsp_do(struct connectdata *conn, bool *done)
(rtspreq & (RTSPREQ_PLAY | RTSPREQ_PAUSE | RTSPREQ_RECORD))) {
/* Check to see if there is a range set in the custom headers */
- if(!Curl_checkheaders(conn, "Range:") && data->state.range) {
+ if(!Curl_checkheaders(conn, "Range") && data->state.range) {
Curl_safefree(conn->allocptr.rangeline);
conn->allocptr.rangeline = aprintf("Range: %s\r\n", data->state.range);
p_range = conn->allocptr.rangeline;
@@ -448,11 +448,11 @@ static CURLcode rtsp_do(struct connectdata *conn, bool *done)
/*
* Sanity check the custom headers
*/
- if(Curl_checkheaders(conn, "CSeq:")) {
+ if(Curl_checkheaders(conn, "CSeq")) {
failf(data, "CSeq cannot be set as a custom header.");
return CURLE_RTSP_CSEQ_ERROR;
}
- if(Curl_checkheaders(conn, "Session:")) {
+ if(Curl_checkheaders(conn, "Session")) {
failf(data, "Session ID cannot be set as a custom header.");
return CURLE_BAD_FUNCTION_ARGUMENT;
}
@@ -542,7 +542,7 @@ static CURLcode rtsp_do(struct connectdata *conn, bool *done)
if(putsize > 0 || postsize > 0) {
/* As stated in the http comments, it is probably not wise to
* actually set a custom Content-Length in the headers */
- if(!Curl_checkheaders(conn, "Content-Length:")) {
+ if(!Curl_checkheaders(conn, "Content-Length")) {
result = Curl_add_bufferf(req_buffer,
"Content-Length: %" CURL_FORMAT_CURL_OFF_T"\r\n",
(data->set.upload ? putsize : postsize));
@@ -552,7 +552,7 @@ static CURLcode rtsp_do(struct connectdata *conn, bool *done)
if(rtspreq == RTSPREQ_SET_PARAMETER ||
rtspreq == RTSPREQ_GET_PARAMETER) {
- if(!Curl_checkheaders(conn, "Content-Type:")) {
+ if(!Curl_checkheaders(conn, "Content-Type")) {
result = Curl_add_bufferf(req_buffer,
"Content-Type: text/parameters\r\n");
if(result)
@@ -561,7 +561,7 @@ static CURLcode rtsp_do(struct connectdata *conn, bool *done)
}
if(rtspreq == RTSPREQ_ANNOUNCE) {
- if(!Curl_checkheaders(conn, "Content-Type:")) {
+ if(!Curl_checkheaders(conn, "Content-Type")) {
result = Curl_add_bufferf(req_buffer,
"Content-Type: application/sdp\r\n");
if(result)
@@ -770,7 +770,9 @@ CURLcode rtp_client_write(struct connectdata *conn, char *ptr, size_t len)
user_ptr = data->set.out;
}
+ Curl_set_in_callback(data, true);
wrote = writeit(ptr, 1, len, user_ptr);
+ Curl_set_in_callback(data, false);
if(CURL_WRITEFUNC_PAUSE == wrote) {
failf(data, "Cannot pause RTP");
diff --git a/lib/sendf.c b/lib/sendf.c
index 027f97c4..27c0ccc7 100644
--- a/lib/sendf.c
+++ b/lib/sendf.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -37,6 +37,7 @@
#include "connect.h"
#include "vtls/vtls.h"
#include "ssh.h"
+#include "easyif.h"
#include "multiif.h"
#include "non-ascii.h"
#include "strerror.h"
@@ -388,7 +389,7 @@ ssize_t Curl_send_plain(struct connectdata *conn, int num,
(WSAEWOULDBLOCK == err)
#else
/* errno may be EWOULDBLOCK or on some systems EAGAIN when it returned
- due to its inability to send off data without blocking. We therefor
+ due to its inability to send off data without blocking. We therefore
treat both error codes the same here */
(EWOULDBLOCK == err) || (EAGAIN == err) || (EINTR == err) ||
(EINPROGRESS == err)
@@ -455,7 +456,7 @@ ssize_t Curl_recv_plain(struct connectdata *conn, int num, char *buf,
(WSAEWOULDBLOCK == err)
#else
/* errno may be EWOULDBLOCK or on some systems EAGAIN when it returned
- due to its inability to send off data without blocking. We therefor
+ due to its inability to send off data without blocking. We therefore
treat both error codes the same here */
(EWOULDBLOCK == err) || (EAGAIN == err) || (EINTR == err)
#endif
@@ -540,18 +541,20 @@ static CURLcode pausewrite(struct Curl_easy *data,
}
-/* Curl_client_chop_write() writes chunks of data not larger than
- * CURL_MAX_WRITE_SIZE via client write callback(s) and
- * takes care of pause requests from the callbacks.
+/* chop_write() writes chunks of data not larger than CURL_MAX_WRITE_SIZE via
+ * client write callback(s) and takes care of pause requests from the
+ * callbacks.
*/
-CURLcode Curl_client_chop_write(struct connectdata *conn,
- int type,
- char *ptr,
- size_t len)
+static CURLcode chop_write(struct connectdata *conn,
+ int type,
+ char *optr,
+ size_t olen)
{
struct Curl_easy *data = conn->data;
curl_write_callback writeheader = NULL;
curl_write_callback writebody = NULL;
+ char *ptr = optr;
+ size_t len = olen;
if(!len)
return CURLE_OK;
@@ -597,25 +600,30 @@ CURLcode Curl_client_chop_write(struct connectdata *conn,
}
}
- if(writeheader) {
- size_t wrote = writeheader(ptr, 1, chunklen, data->set.writeheader);
-
- if(CURL_WRITEFUNC_PAUSE == wrote)
- /* here we pass in the HEADER bit only since if this was body as well
- then it was passed already and clearly that didn't trigger the
- pause, so this is saved for later with the HEADER bit only */
- return pausewrite(data, CLIENTWRITE_HEADER, ptr, len);
-
- if(wrote != chunklen) {
- failf(data, "Failed writing header");
- return CURLE_WRITE_ERROR;
- }
- }
-
ptr += chunklen;
len -= chunklen;
}
+ if(writeheader) {
+ size_t wrote;
+ ptr = optr;
+ len = olen;
+ Curl_set_in_callback(data, true);
+ wrote = writeheader(ptr, 1, len, data->set.writeheader);
+ Curl_set_in_callback(data, false);
+
+ if(CURL_WRITEFUNC_PAUSE == wrote)
+ /* here we pass in the HEADER bit only since if this was body as well
+ then it was passed already and clearly that didn't trigger the
+ pause, so this is saved for later with the HEADER bit only */
+ return pausewrite(data, CLIENTWRITE_HEADER, ptr, len);
+
+ if(wrote != len) {
+ failf(data, "Failed writing header");
+ return CURLE_WRITE_ERROR;
+ }
+ }
+
return CURLE_OK;
}
@@ -657,7 +665,7 @@ CURLcode Curl_client_write(struct connectdata *conn,
#endif /* CURL_DO_LINEEND_CONV */
}
- return Curl_client_chop_write(conn, type, ptr, len);
+ return chop_write(conn, type, ptr, len);
}
CURLcode Curl_read_plain(curl_socket_t sockfd,
@@ -798,8 +806,11 @@ static int showit(struct Curl_easy *data, curl_infotype type,
}
#endif /* CURL_DOES_CONVERSIONS */
- if(data->set.fdebug)
+ if(data->set.fdebug) {
+ Curl_set_in_callback(data, true);
rc = (*data->set.fdebug)(data, type, ptr, size, data->set.debugdata);
+ Curl_set_in_callback(data, false);
+ }
else {
switch(type) {
case CURLINFO_TEXT:
diff --git a/lib/sendf.h b/lib/sendf.h
index fbe4f99c..7c9134de 100644
--- a/lib/sendf.h
+++ b/lib/sendf.h
@@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -51,8 +51,6 @@ void Curl_failf(struct Curl_easy *, const char *fmt, ...);
#define CLIENTWRITE_HEADER (1<<1)
#define CLIENTWRITE_BOTH (CLIENTWRITE_BODY|CLIENTWRITE_HEADER)
-CURLcode Curl_client_chop_write(struct connectdata *conn, int type, char *ptr,
- size_t len) WARN_UNUSED_RESULT;
CURLcode Curl_client_write(struct connectdata *conn, int type, char *ptr,
size_t len) WARN_UNUSED_RESULT;
diff --git a/lib/setopt.c b/lib/setopt.c
index a5ef75c7..9c96eb35 100644
--- a/lib/setopt.c
+++ b/lib/setopt.c
@@ -43,6 +43,7 @@
#include "sendf.h"
#include "http2.h"
#include "setopt.h"
+#include "multiif.h"
/* The last 3 #include files should be in this order */
#include "curl_printf.h"
@@ -361,6 +362,14 @@ CURLcode Curl_vsetopt(struct Curl_easy *data, CURLoption option,
data->set.timevalue = (time_t)va_arg(param, long);
break;
+ case CURLOPT_TIMEVALUE_LARGE:
+ /*
+ * This is the value to compare with the remote document with the
+ * method set with CURLOPT_TIMECONDITION
+ */
+ data->set.timevalue = (time_t)va_arg(param, curl_off_t);
+ break;
+
case CURLOPT_SSLVERSION:
case CURLOPT_PROXY_SSLVERSION:
/*
@@ -2101,6 +2110,21 @@ CURLcode Curl_vsetopt(struct Curl_easy *data, CURLoption option,
data->set.fclosesocket = va_arg(param, curl_closesocket_callback);
break;
+ case CURLOPT_RESOLVER_START_FUNCTION:
+ /*
+ * resolver start callback function: called before a new resolver request
+ * is started
+ */
+ data->set.resolver_start = va_arg(param, curl_resolver_start_callback);
+ break;
+
+ case CURLOPT_RESOLVER_START_DATA:
+ /*
+ * resolver start callback data pointer. Might be NULL.
+ */
+ data->set.resolver_start_client = va_arg(param, void *);
+ break;
+
case CURLOPT_CLOSESOCKETDATA:
/*
* socket callback data pointer. Might be NULL.
@@ -2524,6 +2548,12 @@ CURLcode Curl_vsetopt(struct Curl_easy *data, CURLoption option,
case CURLOPT_SSH_COMPRESSION:
data->set.ssh_compression = (0 != va_arg(param, long))?TRUE:FALSE;
break;
+ case CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS:
+ arg = va_arg(param, long);
+ if(arg < 0)
+ return CURLE_BAD_FUNCTION_ARGUMENT;
+ data->set.happy_eyeballs_timeout = arg;
+ break;
default:
/* unknown tag and its companion, just ignore: */
result = CURLE_UNKNOWN_OPTION;
@@ -2536,6 +2566,9 @@ CURLcode Curl_vsetopt(struct Curl_easy *data, CURLoption option,
/*
* curl_easy_setopt() is the external interface for setting options on an
* easy handle.
+ *
+ * NOTE: This is one of few API functions that are allowed to be called from
+ * within a callback.
*/
#undef curl_easy_setopt
diff --git a/lib/sha256.c b/lib/sha256.c
index cd81c025..55716c63 100644
--- a/lib/sha256.c
+++ b/lib/sha256.c
@@ -29,9 +29,17 @@
#if defined(USE_OPENSSL)
+#include <openssl/opensslv.h>
+
+#if (OPENSSL_VERSION_NUMBER >= 0x0090800fL)
+#define USE_OPENSSL_SHA256
+#endif
+
+#endif
+
+#ifdef USE_OPENSSL_SHA256
/* When OpenSSL is available we use the SHA256-function from OpenSSL */
#include <openssl/sha.h>
-
#else
/* When no other crypto library is available we use this code segment */
@@ -234,7 +242,7 @@ static int SHA256_Final(unsigned char *out,
sha256_compress(md, md->buf);
md->curlen = 0;
}
- /* pad upto 56 bytes of zeroes */
+ /* pad up to 56 bytes of zeroes */
while(md->curlen < 56) {
md->buf[md->curlen++] = (unsigned char)0;
}
diff --git a/lib/smb.c b/lib/smb.c
index 6cb4083b..b4326341 100644
--- a/lib/smb.c
+++ b/lib/smb.c
@@ -709,14 +709,21 @@ static CURLcode smb_connection_state(struct connectdata *conn, bool *done)
}
/*
- * Convert a timestamp from the Windows world (100 nsec units from
- * 1 Jan 1601) to Posix time.
+ * Convert a timestamp from the Windows world (100 nsec units from 1 Jan 1601)
+ * to Posix time. Cap the output to fit within a time_t.
*/
-static void get_posix_time(long *out, curl_off_t timestamp)
+static void get_posix_time(time_t *out, curl_off_t timestamp)
{
timestamp -= 116444736000000000;
timestamp /= 10000000;
- *out = (long) timestamp;
+#if SIZEOF_TIME_T < SIZEOF_CURL_OFF_T
+ if(timestamp > TIME_T_MAX)
+ *out = TIME_T_MAX;
+ else if(timestamp < TIME_T_MIN)
+ *out = TIME_T_MIN;
+ else
+#endif
+ *out = (time_t) timestamp;
}
static CURLcode smb_request_state(struct connectdata *conn, bool *done)
diff --git a/lib/smtp.c b/lib/smtp.c
index d9f1a854..3f3b45a9 100644
--- a/lib/smtp.c
+++ b/lib/smtp.c
@@ -1289,6 +1289,11 @@ static CURLcode smtp_perform(struct connectdata *conn, bool *connected,
/* Store the first recipient (or NULL if not specified) */
smtp->rcpt = data->set.mail_rcpt;
+ /* Initial data character is the first character in line: it is implicitly
+ preceded by a virtual CRLF. */
+ smtp->trailing_crlf = TRUE;
+ smtp->eob = 2;
+
/* Start the first command in the DO phase */
if((data->set.upload || data->set.mimepost.kind) && data->set.mail_rcpt)
/* MAIL transfer */
diff --git a/lib/ssh-libssh.c b/lib/ssh-libssh.c
index 56775d70..9e666729 100644
--- a/lib/ssh-libssh.c
+++ b/lib/ssh-libssh.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 2017 Red Hat, Inc.
+ * Copyright (C) 2017 - 2018 Red Hat, Inc.
*
* Authors: Nikos Mavrogiannopoulos, Tomas Mraz, Stanislav Zidek,
* Robert Kolcun, Andreas Schneider
@@ -383,8 +383,10 @@ static int myssh_is_known(struct connectdata *conn)
}
/* we don't have anything equivalent to knownkey. Always NULL */
+ Curl_set_in_callback(data, true);
rc = func(data, NULL, &foundkey, /* from the remote host */
keymatch, data->set.ssh_keyfunc_userp);
+ Curl_set_in_callback(data, false);
switch(rc) {
case CURLKHSTAT_FINE_ADD_TO_FILE:
@@ -1046,7 +1048,7 @@ static CURLcode myssh_statemach_act(struct connectdata *conn, bool *block)
attrs = sftp_stat(sshc->sftp_session, protop->path);
if(attrs != 0) {
- data->info.filetime = (long)attrs->mtime;
+ data->info.filetime = attrs->mtime;
sftp_attributes_free(attrs);
}
@@ -1128,8 +1130,10 @@ static CURLcode myssh_statemach_act(struct connectdata *conn, bool *block)
if(data->state.resume_from > 0) {
/* Let's read off the proper amount of bytes from the input. */
if(conn->seek_func) {
+ Curl_set_in_callback(data, true);
seekerr = conn->seek_func(conn->seek_client, data->state.resume_from,
SEEK_SET);
+ Curl_set_in_callback(data, false);
}
if(seekerr != CURL_SEEKFUNC_OK) {
diff --git a/lib/ssh.c b/lib/ssh.c
index a86ed706..d3b5cac6 100644
--- a/lib/ssh.c
+++ b/lib/ssh.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -342,6 +342,7 @@ static void state(struct connectdata *conn, sshstate nowstate)
"SSH_AUTH_HOST",
"SSH_AUTH_KEY_INIT",
"SSH_AUTH_KEY",
+ "SSH_AUTH_GSSAPI",
"SSH_AUTH_DONE",
"SSH_SFTP_INIT",
"SSH_SFTP_REALPATH",
@@ -376,6 +377,7 @@ static void state(struct connectdata *conn, sshstate nowstate)
"SSH_SCP_TRANS_INIT",
"SSH_SCP_UPLOAD_INIT",
"SSH_SCP_DOWNLOAD_INIT",
+ "SSH_SCP_DOWNLOAD",
"SSH_SCP_DONE",
"SSH_SCP_SEND_EOF",
"SSH_SCP_WAIT_EOF",
@@ -386,6 +388,9 @@ static void state(struct connectdata *conn, sshstate nowstate)
"QUIT"
};
+ /* a precaution to make sure the lists are in sync */
+ DEBUGASSERT(sizeof(names)/sizeof(names[0]) == SSH_LAST);
+
if(sshc->state != nowstate) {
infof(conn->data, "SFTP %p state change from %s to %s\n",
(void *)sshc, names[sshc->state], names[nowstate]);
@@ -523,9 +528,11 @@ static CURLcode ssh_knownhost(struct connectdata *conn)
keymatch = (enum curl_khmatch)keycheck;
/* Ask the callback how to behave */
+ Curl_set_in_callback(data, true);
rc = func(data, knownkeyp, /* from the knownhosts file */
&foundkey, /* from the remote host */
keymatch, data->set.ssh_keyfunc_userp);
+ Curl_set_in_callback(data, false);
}
else
/* no remotekey means failure! */
@@ -1627,7 +1634,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block)
break;
}
if(rc == 0) {
- data->info.filetime = (long)attrs.mtime;
+ data->info.filetime = attrs.mtime;
}
state(conn, SSH_SFTP_TRANS_INIT);
@@ -1747,8 +1754,10 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block)
if(data->state.resume_from > 0) {
/* Let's read off the proper amount of bytes from the input. */
if(conn->seek_func) {
+ Curl_set_in_callback(data, true);
seekerr = conn->seek_func(conn->seek_client, data->state.resume_from,
SEEK_SET);
+ Curl_set_in_callback(data, false);
}
if(seekerr != CURL_SEEKFUNC_OK) {
@@ -1765,9 +1774,12 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block)
(size_t)data->set.buffer_size :
curlx_sotouz(data->state.resume_from - passed);
- size_t actuallyread =
- data->state.fread_func(data->state.buffer, 1,
- readthisamountnow, data->state.in);
+ size_t actuallyread;
+ Curl_set_in_callback(data, true);
+ actuallyread = data->state.fread_func(data->state.buffer, 1,
+ readthisamountnow,
+ data->state.in);
+ Curl_set_in_callback(data, false);
passed += actuallyread;
if((actuallyread == 0) || (actuallyread > readthisamountnow)) {
diff --git a/lib/strerror.c b/lib/strerror.c
index 83a96dda..0295d6c2 100644
--- a/lib/strerror.c
+++ b/lib/strerror.c
@@ -312,6 +312,9 @@ curl_easy_strerror(CURLcode error)
case CURLE_HTTP2_STREAM:
return "Stream error in the HTTP/2 framing layer";
+ case CURLE_RECURSIVE_API_CALL:
+ return "API function called from within callback";
+
/* error codes not used by current libcurl */
case CURLE_OBSOLETE20:
case CURLE_OBSOLETE24:
@@ -380,6 +383,9 @@ curl_multi_strerror(CURLMcode error)
case CURLM_ADDED_ALREADY:
return "The easy handle is already added to a multi handle";
+ case CURLM_RECURSIVE_API_CALL:
+ return "API function called from within callback";
+
case CURLM_LAST:
break;
}
diff --git a/lib/telnet.c b/lib/telnet.c
index 48b134ee..78d3a853 100644
--- a/lib/telnet.c
+++ b/lib/telnet.c
@@ -1460,7 +1460,8 @@ static CURLcode telnet_do(struct connectdata *conn, bool *done)
if(n == 0) /* no bytes */
break;
- readfile_read = (DWORD)n; /* fall thru with number of bytes read */
+ /* fall through with number of bytes read */
+ readfile_read = (DWORD)n;
}
else {
/* read from stdin */
diff --git a/lib/transfer.c b/lib/transfer.c
index 8f15b1a1..fd9af315 100644
--- a/lib/transfer.c
+++ b/lib/transfer.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -85,7 +85,7 @@
!defined(CURL_DISABLE_IMAP)
/*
* checkheaders() checks the linked list of custom headers for a
- * particular header (prefix).
+ * particular header (prefix). Provide the prefix without colon!
*
* Returns a pointer to the first matching header or NULL if none matched.
*/
@@ -97,7 +97,8 @@ char *Curl_checkheaders(const struct connectdata *conn,
struct Curl_easy *data = conn->data;
for(head = data->set.headers; head; head = head->next) {
- if(strncasecompare(head->data, thisheader, thislen))
+ if(strncasecompare(head->data, thisheader, thislen) &&
+ Curl_headersep(head->data[thislen]) )
return head->data;
}
@@ -135,8 +136,10 @@ CURLcode Curl_fillreadbuffer(struct connectdata *conn, int bytes, int *nreadp)
/* this function returns a size_t, so we typecast to int to prevent warnings
with picky compilers */
+ Curl_set_in_callback(data, true);
nread = (int)data->state.fread_func(data->req.upload_fromhere, 1,
buffersize, data->state.in);
+ Curl_set_in_callback(data, false);
if(nread == CURL_READFUNC_ABORT) {
failf(data, "operation aborted by callback");
@@ -302,7 +305,9 @@ CURLcode Curl_readrewind(struct connectdata *conn)
if(data->set.seek_func) {
int err;
+ Curl_set_in_callback(data, true);
err = (data->set.seek_func)(data->set.seek_client, 0, SEEK_SET);
+ Curl_set_in_callback(data, false);
if(err) {
failf(data, "seek callback returned error %d", (int)err);
return CURLE_SEND_FAIL_REWIND;
@@ -311,8 +316,10 @@ CURLcode Curl_readrewind(struct connectdata *conn)
else if(data->set.ioctl_func) {
curlioerr err;
+ Curl_set_in_callback(data, true);
err = (data->set.ioctl_func)(data, CURLIOCMD_RESTARTREAD,
data->set.ioctl_client);
+ Curl_set_in_callback(data, false);
infof(data, "the ioctl callback returned %d\n", (int)err);
if(err) {
@@ -801,10 +808,15 @@ static CURLcode readwrite_data(struct Curl_easy *data,
} /* if(!header and data to read) */
- if(conn->handler->readwrite &&
- (excess > 0 && !conn->bits.stream_was_rewound)) {
+ if(conn->handler->readwrite && excess && !conn->bits.stream_was_rewound) {
/* Parse the excess data */
k->str += nread;
+
+ if(&k->str[excess] > &k->buf[data->set.buffer_size]) {
+ /* the excess amount was too excessive(!), make sure
+ it doesn't read out of buffer */
+ excess = &k->buf[data->set.buffer_size] - k->str;
+ }
nread = (ssize_t)excess;
result = conn->handler->readwrite(data, conn, &nread, &readmore);
diff --git a/lib/transfer.h b/lib/transfer.h
index 72526a83..9ba398d2 100644
--- a/lib/transfer.h
+++ b/lib/transfer.h
@@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -22,6 +22,7 @@
*
***************************************************************************/
+#define Curl_headersep(x) ((((x)==':') || ((x)==';')))
char *Curl_checkheaders(const struct connectdata *conn,
const char *thisheader);
diff --git a/lib/url.c b/lib/url.c
index 74813e87..945d4e32 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -527,6 +527,7 @@ CURLcode Curl_init_userdefined(struct Curl_easy *data)
set->expect_100_timeout = 1000L; /* Wait for a second by default. */
set->sep_headers = TRUE; /* separated header lists by default */
set->buffer_size = READBUFFER_SIZE;
+ set->happy_eyeballs_timeout = CURL_HET_DEFAULT;
Curl_http2_init_userset(set);
return result;
@@ -2573,7 +2574,15 @@ static bool check_noproxy(const char *name, const char *no_proxy)
/* NO_PROXY was specified and it wasn't just an asterisk */
no_proxy_len = strlen(no_proxy);
- endptr = strchr(name, ':');
+ if(name[0] == '[') {
+ /* IPv6 numerical address */
+ endptr = strchr(name, ']');
+ if(!endptr)
+ return FALSE;
+ name++;
+ }
+ else
+ endptr = strchr(name, ':');
if(endptr)
namelen = endptr - name;
else
@@ -4116,7 +4125,7 @@ static CURLcode create_conn(struct Curl_easy *data,
*************************************************************/
if(prot_missing) {
/* We're guessing prefixes here and if we're told to use a proxy or if
- we're gonna follow a Location: later or... then we need the protocol
+ we're going to follow a Location: later or... then we need the protocol
part added so that we have a valid URL. */
char *reurl;
char *ch_lower;
diff --git a/lib/urldata.h b/lib/urldata.h
index 5c04ad17..3d7b9e5a 100644
--- a/lib/urldata.h
+++ b/lib/urldata.h
@@ -1024,10 +1024,8 @@ struct PureInfo {
int httpcode; /* Recent HTTP, FTP, RTSP or SMTP response code */
int httpproxycode; /* response code from proxy when received separate */
int httpversion; /* the http version number X.Y = X*10+Y */
- long filetime; /* If requested, this is might get set. Set to -1 if the time
- was unretrievable. We cannot have this of type time_t,
- since time_t is unsigned on several platforms such as
- OpenVMS. */
+ time_t filetime; /* If requested, this is might get set. Set to -1 if the
+ time was unretrievable. */
bool timecond; /* set to TRUE if the time condition didn't match, which
thus made the document NOT get fetched */
long header_size; /* size of read header(s) in bytes */
@@ -1168,7 +1166,7 @@ struct Curl_http2_dep {
};
/*
- * This struct is for holding data that was attemped to get sent to the user's
+ * This struct is for holding data that was attempted to get sent to the user's
* callback but is held due to pausing. One instance per type (BOTH, HEADER,
* BODY).
*/
@@ -1522,6 +1520,7 @@ struct UserDefined {
long timeout; /* in milliseconds, 0 means no timeout */
long connecttimeout; /* in milliseconds, 0 means no timeout */
long accepttimeout; /* in milliseconds, 0 means no timeout */
+ long happy_eyeballs_timeout; /* in milliseconds, 0 is a valid value */
long server_response_timeout; /* in milliseconds, 0 means no timeout */
long tftp_blksize; /* in bytes, 0 means use default */
bool tftp_no_options; /* do not send TFTP options requests */
@@ -1682,6 +1681,10 @@ struct UserDefined {
struct Curl_http2_dep *stream_dependents;
bool abstract_unix_socket;
+
+ curl_resolver_start_callback resolver_start; /* optional callback called
+ before resolver start */
+ void *resolver_start_client; /* pointer to pass to resolver start callback */
};
struct Names {
diff --git a/lib/vtls/cyassl.c b/lib/vtls/cyassl.c
index 46b71bfd..1bd42d2c 100644
--- a/lib/vtls/cyassl.c
+++ b/lib/vtls/cyassl.c
@@ -199,8 +199,14 @@ cyassl_connect_step1(struct connectdata *conn,
use_sni(TRUE);
break;
case CURL_SSLVERSION_TLSv1_3:
+#ifdef WOLFSSL_TLS13
+ req_method = wolfTLSv1_3_client_method();
+ use_sni(TRUE);
+ break;
+#else
failf(data, "CyaSSL: TLS 1.3 is not yet supported");
return CURLE_SSL_CONNECT_ERROR;
+#endif
case CURL_SSLVERSION_SSLv3:
#ifdef WOLFSSL_ALLOW_SSLV3
req_method = SSLv3_client_method();
@@ -245,7 +251,11 @@ cyassl_connect_step1(struct connectdata *conn,
*/
if((wolfSSL_CTX_SetMinVersion(BACKEND->ctx, WOLFSSL_TLSV1) != 1) &&
(wolfSSL_CTX_SetMinVersion(BACKEND->ctx, WOLFSSL_TLSV1_1) != 1) &&
- (wolfSSL_CTX_SetMinVersion(BACKEND->ctx, WOLFSSL_TLSV1_2) != 1)) {
+ (wolfSSL_CTX_SetMinVersion(BACKEND->ctx, WOLFSSL_TLSV1_2) != 1)
+#ifdef WOLFSSL_TLS13
+ && (wolfSSL_CTX_SetMinVersion(BACKEND->ctx, WOLFSSL_TLSV1_3) != 1)
+#endif
+ ) {
failf(data, "SSL: couldn't set the minimum protocol version");
return CURLE_SSL_CONNECT_ERROR;
}
diff --git a/lib/vtls/darwinssl.c b/lib/vtls/darwinssl.c
index 53a7ec37..694ac572 100644
--- a/lib/vtls/darwinssl.c
+++ b/lib/vtls/darwinssl.c
@@ -1135,28 +1135,77 @@ static OSStatus CopyIdentityFromPKCS12File(const char *cPath,
raise linker errors when used on that cat for some reason. */
#if CURL_BUILD_MAC_10_7 || CURL_BUILD_IOS
if(CFURLCreateDataAndPropertiesFromResource(NULL, pkcs_url, &pkcs_data,
- NULL, NULL, &status)) {
+ NULL, NULL, &status)) {
+ CFArrayRef items = NULL;
+
+ /* On iOS SecPKCS12Import will never add the client certificate to the
+ * Keychain.
+ *
+ * It gives us back a SecIdentityRef that we can use directly. */
+#if CURL_BUILD_IOS
const void *cKeys[] = {kSecImportExportPassphrase};
const void *cValues[] = {password};
CFDictionaryRef options = CFDictionaryCreate(NULL, cKeys, cValues,
password ? 1L : 0L, NULL, NULL);
- CFArrayRef items = NULL;
- /* Here we go: */
- status = SecPKCS12Import(pkcs_data, options, &items);
- if(status == errSecSuccess && items && CFArrayGetCount(items)) {
- CFDictionaryRef identity_and_trust = CFArrayGetValueAtIndex(items, 0L);
- const void *temp_identity = CFDictionaryGetValue(identity_and_trust,
- kSecImportItemIdentity);
+ if(options != NULL) {
+ status = SecPKCS12Import(pkcs_data, options, &items);
+ CFRelease(options);
+ }
+
- /* Retain the identity; we don't care about any other data... */
- CFRetain(temp_identity);
- *out_cert_and_key = (SecIdentityRef)temp_identity;
+ /* On macOS SecPKCS12Import will always add the client certificate to
+ * the Keychain.
+ *
+ * As this doesn't match iOS, and apps may not want to see their client
+ * certificate saved in the the user's keychain, we use SecItemImport
+ * with a NULL keychain to avoid importing it.
+ *
+ * This returns a SecCertificateRef from which we can construct a
+ * SecIdentityRef.
+ */
+#elif CURL_BUILD_MAC_10_7
+ SecItemImportExportKeyParameters keyParams;
+ SecExternalFormat inputFormat = kSecFormatPKCS12;
+ SecExternalItemType inputType = kSecItemTypeCertificate;
+
+ memset(&keyParams, 0x00, sizeof(keyParams));
+ keyParams.version = SEC_KEY_IMPORT_EXPORT_PARAMS_VERSION;
+ keyParams.passphrase = password;
+
+ status = SecItemImport(pkcs_data, NULL, &inputFormat, &inputType,
+ 0, &keyParams, NULL, &items);
+#endif
+
+
+ /* Extract the SecIdentityRef */
+ if(status == errSecSuccess && items && CFArrayGetCount(items)) {
+ CFIndex i, count;
+ count = CFArrayGetCount(items);
+
+ for(i = 0; i < count; i++) {
+ CFTypeRef item = (CFTypeRef) CFArrayGetValueAtIndex(items, i);
+ CFTypeID itemID = CFGetTypeID(item);
+
+ if(itemID == CFDictionaryGetTypeID()) {
+ CFTypeRef identity = (CFTypeRef) CFDictionaryGetValue(
+ (CFDictionaryRef) item,
+ kSecImportItemIdentity);
+ CFRetain(identity);
+ *out_cert_and_key = (SecIdentityRef) identity;
+ break;
+ }
+ else if(itemID == SecCertificateGetTypeID()) {
+ status = SecIdentityCreateWithCertificate(NULL,
+ (SecCertificateRef) item,
+ out_cert_and_key);
+ break;
+ }
+ }
}
if(items)
CFRelease(items);
- CFRelease(options);
CFRelease(pkcs_data);
}
#endif /* CURL_BUILD_MAC_10_7 || CURL_BUILD_IOS */
diff --git a/lib/vtls/gskit.c b/lib/vtls/gskit.c
index 8f0cc0bb..afc90a85 100644
--- a/lib/vtls/gskit.c
+++ b/lib/vtls/gskit.c
@@ -1355,7 +1355,7 @@ const struct Curl_ssl Curl_ssl_gskit = {
0, /* have_ca_path */
1, /* have_certinfo */
- 0, /* have_pinnedpubkey */
+ 1, /* have_pinnedpubkey */
0, /* have_ssl_ctx */
/* TODO: convert to 1 and fix test #1014 (if need) */
0, /* support_https_proxy */
diff --git a/lib/vtls/gtls.c b/lib/vtls/gtls.c
index 30b255b8..07887410 100644
--- a/lib/vtls/gtls.c
+++ b/lib/vtls/gtls.c
@@ -60,15 +60,6 @@
/* The last #include file should be: */
#include "memdebug.h"
-#ifndef GNUTLS_POINTER_TO_SOCKET_CAST
-#define GNUTLS_POINTER_TO_SOCKET_CAST(p) \
- ((curl_socket_t) ((char *)(p) - (char *)NULL))
-#endif
-#ifndef GNUTLS_SOCKET_TO_POINTER_CAST
-#define GNUTLS_SOCKET_TO_POINTER_CAST(s) \
- ((void *) ((char *)NULL + (s)))
-#endif
-
/* Enable GnuTLS debugging by defining GTLSDEBUG */
/*#define GTLSDEBUG */
@@ -161,7 +152,7 @@ static int gtls_mapped_sockerrno(void)
static ssize_t Curl_gtls_push(void *s, const void *buf, size_t len)
{
- ssize_t ret = swrite(GNUTLS_POINTER_TO_SOCKET_CAST(s), buf, len);
+ ssize_t ret = swrite(CURLX_POINTER_TO_INTEGER_CAST(s), buf, len);
#if defined(USE_WINSOCK) && !defined(GNUTLS_MAPS_WINSOCK_ERRORS)
if(ret < 0)
gnutls_transport_set_global_errno(gtls_mapped_sockerrno());
@@ -171,7 +162,7 @@ static ssize_t Curl_gtls_push(void *s, const void *buf, size_t len)
static ssize_t Curl_gtls_pull(void *s, void *buf, size_t len)
{
- ssize_t ret = sread(GNUTLS_POINTER_TO_SOCKET_CAST(s), buf, len);
+ ssize_t ret = sread(CURLX_POINTER_TO_INTEGER_CAST(s), buf, len);
#if defined(USE_WINSOCK) && !defined(GNUTLS_MAPS_WINSOCK_ERRORS)
if(ret < 0)
gnutls_transport_set_global_errno(gtls_mapped_sockerrno());
@@ -857,7 +848,7 @@ gtls_connect_step1(struct connectdata *conn,
}
else {
/* file descriptor for the socket */
- transport_ptr = GNUTLS_SOCKET_TO_POINTER_CAST(conn->sock[sockindex]);
+ transport_ptr = CURLX_INTEGER_TO_POINTER_CAST(conn->sock[sockindex]);
gnutls_transport_push = Curl_gtls_push;
gnutls_transport_pull = Curl_gtls_pull;
}
diff --git a/lib/vtls/nss.c b/lib/vtls/nss.c
index a3ef37a1..458f9d81 100644
--- a/lib/vtls/nss.c
+++ b/lib/vtls/nss.c
@@ -440,7 +440,17 @@ static CURLcode nss_create_object(struct ssl_connect_data *connssl,
PK11_SETATTRS(attrs, attr_cnt, CKA_TRUST, pval, sizeof(*pval));
}
- obj = PK11_CreateGenericObject(slot, attrs, attr_cnt, PR_FALSE);
+ /* PK11_CreateManagedGenericObject() was introduced in NSS 3.34 because
+ * PK11_DestroyGenericObject() does not release resources allocated by
+ * PK11_CreateGenericObject() early enough. */
+ obj =
+#ifdef HAVE_PK11_CREATEMANAGEDGENERICOBJECT
+ PK11_CreateManagedGenericObject
+#else
+ PK11_CreateGenericObject
+#endif
+ (slot, attrs, attr_cnt, PR_FALSE);
+
PK11_FreeSlot(slot);
if(!obj)
return result;
diff --git a/lib/vtls/openssl.c b/lib/vtls/openssl.c
index 93faa6fa..2a6b3cfa 100644
--- a/lib/vtls/openssl.c
+++ b/lib/vtls/openssl.c
@@ -2338,10 +2338,11 @@ static CURLcode ossl_connect_step1(struct connectdata *conn, int sockindex)
#endif
if(ssl_cafile || ssl_capath) {
- /* tell SSL where to find CA certificates that are used to verify
- the servers certificate. */
- if(!SSL_CTX_load_verify_locations(BACKEND->ctx, ssl_cafile, ssl_capath)) {
- if(verifypeer) {
+ if(verifypeer) {
+ /* tell SSL where to find CA certificates that are used to verify
+ the servers certificate. */
+ if(!SSL_CTX_load_verify_locations(BACKEND->ctx,
+ ssl_cafile, ssl_capath)) {
/* Fail if we insist on successfully verifying the server. */
failf(data, "error setting certificate verify locations:\n"
" CAfile: %s\n CApath: %s",
@@ -2349,20 +2350,18 @@ static CURLcode ossl_connect_step1(struct connectdata *conn, int sockindex)
ssl_capath ? ssl_capath : "none");
return CURLE_SSL_CACERT_BADFILE;
}
- /* Just continue with a warning if no strict certificate verification
- is required. */
- infof(data, "error setting certificate verify locations,"
- " continuing anyway:\n");
+ else {
+ /* Everything is fine. */
+ infof(data, "successfully set certificate verify locations:\n"
+ " CAfile: %s\n CApath: %s\n",
+ ssl_cafile ? ssl_cafile : "none",
+ ssl_capath ? ssl_capath : "none");
+ }
}
else {
- /* Everything is fine. */
- infof(data, "successfully set certificate verify locations:\n");
+ infof(data, "ignoring certificate verify locations due to "
+ "disabled peer verification\n");
}
- infof(data,
- " CAfile: %s\n"
- " CApath: %s\n",
- ssl_cafile ? ssl_cafile : "none",
- ssl_capath ? ssl_capath : "none");
}
#ifdef CURL_CA_FALLBACK
else if(verifypeer) {
@@ -3580,11 +3579,15 @@ static CURLcode Curl_ossl_md5sum(unsigned char *tmp, /* input */
unsigned char *md5sum /* output */,
size_t unused)
{
- MD5_CTX MD5pw;
- (void)unused;
- MD5_Init(&MD5pw);
- MD5_Update(&MD5pw, tmp, tmplen);
- MD5_Final(md5sum, &MD5pw);
+ EVP_MD_CTX *mdctx;
+ unsigned int len = 0;
+ (void) unused;
+
+ mdctx = EVP_MD_CTX_create();
+ EVP_DigestInit_ex(mdctx, EVP_md5(), NULL);
+ EVP_DigestUpdate(mdctx, tmp, tmplen);
+ EVP_DigestFinal_ex(mdctx, md5sum, &len);
+ EVP_MD_CTX_destroy(mdctx);
return CURLE_OK;
}
@@ -3594,11 +3597,15 @@ static void Curl_ossl_sha256sum(const unsigned char *tmp, /* input */
unsigned char *sha256sum /* output */,
size_t unused)
{
- SHA256_CTX SHA256pw;
- (void)unused;
- SHA256_Init(&SHA256pw);
- SHA256_Update(&SHA256pw, tmp, tmplen);
- SHA256_Final(sha256sum, &SHA256pw);
+ EVP_MD_CTX *mdctx;
+ unsigned int len = 0;
+ (void) unused;
+
+ mdctx = EVP_MD_CTX_create();
+ EVP_DigestInit_ex(mdctx, EVP_sha256(), NULL);
+ EVP_DigestUpdate(mdctx, tmp, tmplen);
+ EVP_DigestFinal_ex(mdctx, sha256sum, &len);
+ EVP_MD_CTX_destroy(mdctx);
}
#endif
diff --git a/lib/vtls/schannel.c b/lib/vtls/schannel.c
index 85c64cf4..b8afe46f 100644
--- a/lib/vtls/schannel.c
+++ b/lib/vtls/schannel.c
@@ -7,7 +7,7 @@
*
* Copyright (C) 2012 - 2016, Marc Hoersken, <info@marc-hoersken.de>
* Copyright (C) 2012, Mark Salisbury, <mark.salisbury@hp.com>
- * Copyright (C) 2012 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 2012 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -129,6 +129,10 @@
* #define failf(x, y, ...) printf(y, __VA_ARGS__)
*/
+#ifndef CALG_SHA_256
+# define CALG_SHA_256 0x0000800c
+#endif
+
/* Structs to store Schannel handles */
struct curl_schannel_cred {
CredHandle cred_handle;
@@ -165,6 +169,9 @@ struct ssl_backend_data {
static Curl_recv schannel_recv;
static Curl_send schannel_send;
+static CURLcode pkp_pin_peer_pubkey(struct connectdata *conn, int sockindex,
+ const char *pinnedpubkey);
+
#ifdef _WIN32_WCE
static CURLcode verify_certificate(struct connectdata *conn, int sockindex);
#endif
@@ -542,6 +549,7 @@ schannel_connect_step2(struct connectdata *conn, int sockindex)
bool doread;
char * const hostname = SSL_IS_PROXY() ? conn->http_proxy.host.name :
conn->host.name;
+ const char *pubkey_ptr;
doread = (connssl->connecting_state != ssl_connect_2_writing) ? TRUE : FALSE;
@@ -761,6 +769,17 @@ schannel_connect_step2(struct connectdata *conn, int sockindex)
infof(data, "schannel: SSL/TLS handshake complete\n");
}
+ pubkey_ptr = SSL_IS_PROXY() ?
+ data->set.str[STRING_SSL_PINNEDPUBLICKEY_PROXY] :
+ data->set.str[STRING_SSL_PINNEDPUBLICKEY_ORIG];
+ if(pubkey_ptr) {
+ result = pkp_pin_peer_pubkey(conn, sockindex, pubkey_ptr);
+ if(result) {
+ failf(data, "SSL: public key does not match pinned public key!");
+ return result;
+ }
+ }
+
#ifdef _WIN32_WCE
/* Windows CE doesn't do any server certificate validation.
We have to do it manually. */
@@ -1669,6 +1688,68 @@ static CURLcode Curl_schannel_random(struct Curl_easy *data UNUSED_PARAM,
return CURLE_OK;
}
+static CURLcode pkp_pin_peer_pubkey(struct connectdata *conn, int sockindex,
+ const char *pinnedpubkey)
+{
+ SECURITY_STATUS status;
+ struct Curl_easy *data = conn->data;
+ struct ssl_connect_data *connssl = &conn->ssl[sockindex];
+ CERT_CONTEXT *pCertContextServer = NULL;
+ const char *x509_der;
+ DWORD x509_der_len;
+ curl_X509certificate x509_parsed;
+ curl_asn1Element *pubkey;
+
+ /* Result is returned to caller */
+ CURLcode result = CURLE_SSL_PINNEDPUBKEYNOTMATCH;
+
+ /* if a path wasn't specified, don't pin */
+ if(!pinnedpubkey)
+ return CURLE_OK;
+
+ do {
+ status = s_pSecFn->QueryContextAttributes(&BACKEND->ctxt->ctxt_handle,
+ SECPKG_ATTR_REMOTE_CERT_CONTEXT,
+ &pCertContextServer);
+
+ if((status != SEC_E_OK) || (pCertContextServer == NULL)) {
+ failf(data, "schannel: Failed to read remote certificate context: %s",
+ Curl_sspi_strerror(conn, status));
+ break; /* failed */
+ }
+
+
+ if(!(((pCertContextServer->dwCertEncodingType & X509_ASN_ENCODING) != 0) &&
+ (pCertContextServer->cbCertEncoded > 0)))
+ break;
+
+ x509_der = (const char *)pCertContextServer->pbCertEncoded;
+ x509_der_len = pCertContextServer->cbCertEncoded;
+ memset(&x509_parsed, 0, sizeof x509_parsed);
+ if(Curl_parseX509(&x509_parsed, x509_der, x509_der + x509_der_len))
+ break;
+
+ pubkey = &x509_parsed.subjectPublicKeyInfo;
+ if(!pubkey->header || pubkey->end <= pubkey->header) {
+ failf(data, "SSL: failed retrieving public key from server certificate");
+ break;
+ }
+
+ result = Curl_pin_peer_pubkey(data,
+ pinnedpubkey,
+ (const unsigned char *)pubkey->header,
+ (size_t)(pubkey->end - pubkey->header));
+ if(result) {
+ failf(data, "SSL: public key does not match pinned public key!");
+ }
+ } while(0);
+
+ if(pCertContextServer)
+ CertFreeCertificateContext(pCertContextServer);
+
+ return result;
+}
+
#ifdef _WIN32_WCE
static CURLcode verify_certificate(struct connectdata *conn, int sockindex)
{
@@ -1809,6 +1890,74 @@ static CURLcode verify_certificate(struct connectdata *conn, int sockindex)
}
#endif /* _WIN32_WCE */
+static void Curl_schannel_checksum(const unsigned char *input,
+ size_t inputlen,
+ unsigned char *checksum,
+ size_t checksumlen,
+ DWORD provType,
+ const unsigned int algId)
+{
+ HCRYPTPROV hProv = 0;
+ HCRYPTHASH hHash = 0;
+ DWORD cbHashSize = 0;
+ DWORD dwHashSizeLen = (DWORD)sizeof(cbHashSize);
+ DWORD dwChecksumLen = (DWORD)checksumlen;
+
+ /* since this can fail in multiple ways, zero memory first so we never
+ * return old data
+ */
+ memset(checksum, 0, checksumlen);
+
+ if(!CryptAcquireContext(&hProv, NULL, NULL, provType,
+ CRYPT_VERIFYCONTEXT))
+ return; /* failed */
+
+ do {
+ if(!CryptCreateHash(hProv, algId, 0, 0, &hHash))
+ break; /* failed */
+
+ if(!CryptHashData(hHash, (const BYTE*)input, (DWORD)inputlen, 0))
+ break; /* failed */
+
+ /* get hash size */
+ if(!CryptGetHashParam(hHash, HP_HASHSIZE, (BYTE *)&cbHashSize,
+ &dwHashSizeLen, 0))
+ break; /* failed */
+
+ /* check hash size */
+ if(checksumlen < cbHashSize)
+ break; /* failed */
+
+ if(CryptGetHashParam(hHash, HP_HASHVAL, checksum, &dwChecksumLen, 0))
+ break; /* failed */
+ } while(0);
+
+ if(hHash)
+ CryptDestroyHash(hHash);
+
+ if(hProv)
+ CryptReleaseContext(hProv, 0);
+}
+
+static CURLcode Curl_schannel_md5sum(unsigned char *input,
+ size_t inputlen,
+ unsigned char *md5sum,
+ size_t md5len)
+{
+ Curl_schannel_checksum(input, inputlen, md5sum, md5len,
+ PROV_RSA_FULL, CALG_MD5);
+ return CURLE_OK;
+}
+
+static void Curl_schannel_sha256sum(const unsigned char *input,
+ size_t inputlen,
+ unsigned char *sha256sum,
+ size_t sha256len)
+{
+ Curl_schannel_checksum(input, inputlen, sha256sum, sha256len,
+ PROV_RSA_AES, CALG_SHA_256);
+}
+
static void *Curl_schannel_get_internals(struct ssl_connect_data *connssl,
CURLINFO info UNUSED_PARAM)
{
@@ -1821,7 +1970,7 @@ const struct Curl_ssl Curl_ssl_schannel = {
0, /* have_ca_path */
1, /* have_certinfo */
- 0, /* have_pinnedpubkey */
+ 1, /* have_pinnedpubkey */
0, /* have_ssl_ctx */
0, /* support_https_proxy */
@@ -1845,8 +1994,8 @@ const struct Curl_ssl Curl_ssl_schannel = {
Curl_none_set_engine_default, /* set_engine_default */
Curl_none_engines_list, /* engines_list */
Curl_none_false_start, /* false_start */
- Curl_none_md5sum, /* md5sum */
- NULL /* sha256sum */
+ Curl_schannel_md5sum, /* md5sum */
+ Curl_schannel_sha256sum /* sha256sum */
};
#endif /* USE_SCHANNEL */
diff --git a/lib/warnless.h b/lib/warnless.h
index ab6d2999..efd552a6 100644
--- a/lib/warnless.h
+++ b/lib/warnless.h
@@ -26,6 +26,11 @@
#include <curl/curl.h> /* for curl_socket_t */
#endif
+#define CURLX_POINTER_TO_INTEGER_CAST(p) \
+ ((char *)(p) - (char *)NULL)
+#define CURLX_INTEGER_TO_POINTER_CAST(i) \
+ ((void *)((char *)NULL + (i)))
+
unsigned short curlx_ultous(unsigned long ulnum);
unsigned char curlx_ultouc(unsigned long ulnum);
diff --git a/local-configure.patch b/local-configure.patch
index ddeab806..68ad1c64 100644
--- a/local-configure.patch
+++ b/local-configure.patch
@@ -2,32 +2,15 @@ diff --git a/lib/curl_config.h b/lib/curl_config.h
index f9aef69e2..f5ba92735 100644
--- a/lib/curl_config.h
+++ b/lib/curl_config.h
-@@ -143,7 +143,10 @@
- /* #undef HAVE_BUILTIN_AVAILABLE */
-
- /* Define to 1 if you have the clock_gettime function and monotonic timer. */
-+#if !defined(__APPLE__)
-+/* CLOCK_MONOTONIC is not defined in mac when building for the host. */
- #define HAVE_CLOCK_GETTIME_MONOTONIC 1
-+#endif
-
- /* Define to 1 if you have the closesocket function. */
- /* #undef HAVE_CLOSESOCKET */
-@@ -454,10 +457,14 @@
- #define HAVE_MEMORY_H 1
-
- /* Define to 1 if you have the memrchr function or macro. */
-+#if !defined(__APPLE__)
- #define HAVE_MEMRCHR 1
-+#endif
+@@ -473,7 +473,7 @@
+ #define HAVE_NETDB_H 1
- /* Define to 1 if you have the MSG_NOSIGNAL flag. */
-+#if !defined(__APPLE__)
- #define HAVE_MSG_NOSIGNAL 1
-+#endif
+ /* Define to 1 if you have the <netinet/in6.h> header file. */
+-#define HAVE_NETINET_IN6_H 1
++/* #undef HAVE_NETINET_IN6_H */
- /* Define to 1 if you have the <netdb.h> header file. */
- #define HAVE_NETDB_H 1
+ /* Define to 1 if you have the <netinet/in.h> header file. */
+ #define HAVE_NETINET_IN_H 1
@@ -808,9 +815,6 @@
/* Define absolute filename for winbind's ntlm_auth helper. */
/* #undef NTLM_WB_FILE */
diff --git a/m4/curl-openssl.m4 b/m4/curl-openssl.m4
index 20c31265..d5582786 100644
--- a/m4/curl-openssl.m4
+++ b/m4/curl-openssl.m4
@@ -29,7 +29,7 @@ dnl -------------------------------------------------
dnl Find out OpenSSL headers API version, as reported
dnl by OPENSSL_VERSION_NUMBER. No runtime checks
dnl allowed here for cross-compilation support.
-dnl HAVE_OPENSSL_API_HEADERS is defined as apprpriate
+dnl HAVE_OPENSSL_API_HEADERS is defined as appropriate
dnl only for systems which actually run the configure
dnl script. Config files generated manually or in any
dnl other way shall not define this.
@@ -66,6 +66,7 @@ AC_DEFUN([CURL_CHECK_OPENSSL_API_HEADERS], [
;;
esac
case $tst_api in
+ 0x111) tst_show="1.1.1" ;;
0x110) tst_show="1.1.0" ;;
0x102) tst_show="1.0.2" ;;
0x101) tst_show="1.0.1" ;;
@@ -102,7 +103,7 @@ dnl Find out OpenSSL library API version, performing
dnl only link tests in order to avoid getting fooled
dnl by mismatched OpenSSL headers. No runtime checks
dnl allowed here for cross-compilation support.
-dnl HAVE_OPENSSL_API_LIBRARY is defined as apprpriate
+dnl HAVE_OPENSSL_API_LIBRARY is defined as appropriate
dnl only for systems which actually run the configure
dnl script. Config files generated manually or in any
dnl other way shall not define this.
@@ -122,6 +123,13 @@ AC_DEFUN([CURL_CHECK_OPENSSL_API_LIBRARY], [
#
AC_MSG_CHECKING([for OpenSSL library version])
if test "$tst_api" = "unknown"; then
+ AC_LINK_IFELSE([
+ AC_LANG_FUNC_LINK_TRY([ERR_clear_last_mark])
+ ],[
+ tst_api="0x111"
+ ])
+ fi
+ if test "$tst_api" = "unknown"; then
case $host in
*-*-vms*)
AC_LINK_IFELSE([
@@ -217,6 +225,7 @@ AC_DEFUN([CURL_CHECK_OPENSSL_API_LIBRARY], [
])
fi
case $tst_api in
+ 0x111) tst_show="1.1.1" ;;
0x110) tst_show="1.1.0" ;;
0x102) tst_show="1.0.2" ;;
0x101) tst_show="1.0.1" ;;
diff --git a/m4/zz40-xc-ovr.m4 b/m4/zz40-xc-ovr.m4
index 0e3b1cba..3d6e695f 100644
--- a/m4/zz40-xc-ovr.m4
+++ b/m4/zz40-xc-ovr.m4
@@ -2,7 +2,7 @@
#
# zz40-xc-ovr.m4
#
-# Copyright (c) 2013 Daniel Stenberg <daniel@haxx.se>
+# Copyright (c) 2013 - 2018 Daniel Stenberg <daniel@haxx.se>
#
# Permission to use, copy, modify, and distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
@@ -18,9 +18,6 @@
#
#---------------------------------------------------------------------------
-# serial 1
-
-
dnl The funny name of this file is intentional in order to make it
dnl sort alphabetically after any libtool, autoconf or automake
dnl provided .m4 macro file that might get copied into this same
@@ -398,9 +395,10 @@ if test $xc_tst_dirs_sem -eq $xc_tst_dirs_col; then
# When both counting methods give the same result we do not want to
# chose one over the other, and consider auto-detection not possible.
if test -z "$PATH_SEPARATOR"; then
- # Stop dead until user provides 'PATH_SEPARATOR' definition.
- echo "$xc_msg_err 'PATH_SEPARATOR' variable not set. $xc_msg_abrt" >&2
- exit 1
+ # User should provide the correct 'PATH_SEPARATOR' definition.
+ # Until then, guess that it is colon!
+ echo "$xc_msg_warn path separator not determined, guessing colon" >&2
+ PATH_SEPARATOR=':'
fi
else
# Separator with the greater directory count is the auto-detected one.
diff --git a/packages/OS400/README.OS400 b/packages/OS400/README.OS400
index f9817b4e..c766a1f6 100644
--- a/packages/OS400/README.OS400
+++ b/packages/OS400/README.OS400
@@ -183,8 +183,8 @@ CCSID.
CURLINFO_COOKIELIST
Lists returned should be released with curl_slist_free_all() after use.
Option CURLINFO_CERTINFO is followed by a struct curl_certinfo * * and a
-CCSID. Returned structures sould be free'ed using curl_certinfo_free_all() after
-use.
+CCSID. Returned structures should be free'ed using curl_certinfo_free_all()
+after use.
Other options are processed like in curl_easy_getinfo().
_ curl_pushheader_bynum_cssid() and curl_pushheader_byname_ccsid()
@@ -243,7 +243,7 @@ _ If data compression has to be supported, ZLIB development environment must
_ Likewise, if SCP and SFTP protocols have to be compiled in, LIBSSH2
developent environment must be installed.
_ Install the curl source directory in IFS. Do NOT install it in the
- installation target directory (wich defaults to /curl).
+ installation target directory (which defaults to /curl).
_ Enter shell (QSH)
_ Change current directory to the curl installation directory
_ Change current directory to ./packages/OS400
diff --git a/packages/OS400/curl.inc.in b/packages/OS400/curl.inc.in
index 03603e29..a21ee9bb 100644
--- a/packages/OS400/curl.inc.in
+++ b/packages/OS400/curl.inc.in
@@ -1322,6 +1322,14 @@
d c 00268
d CURLOPT_MIMEPOST...
d c 10269
+ d CURLOPT_TIMEVALUE_LARGE...
+ d c 30270
+ d CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS...
+ d c 00271
+ d CURLOPT_RESOLVER_START_FUNCTION...
+ d c 20272
+ d CURLOPT_RESOLVER_START_DATA...
+ d c 10273
*
/if not defined(CURL_NO_OLDIES)
d CURLOPT_FILE c 10001
@@ -1960,6 +1968,9 @@
d curl_closesocket_callback...
d s * based(######ptr######) procptr
*
+ d curl_resolver_start_callback...
+ d s * based(######ptr######) procptr
+ *
**************************************************************************
* Prototypes
**************************************************************************
diff --git a/packages/Symbian/group/libcurl.mmp b/packages/Symbian/group/libcurl.mmp
index 942e23f7..ba70de31 100644
--- a/packages/Symbian/group/libcurl.mmp
+++ b/packages/Symbian/group/libcurl.mmp
@@ -31,7 +31,7 @@ SOURCE \
http_negotiate.c inet_pton.c strtoofft.c strerror.c amigaos.c \
hostasyn.c hostip4.c hostip6.c hostsyn.c inet_ntop.c parsedate.c \
select.c vtls/gtls.c vtls/vtls.c tftp.c splay.c strdup.c socks.c \
- ssh.c vtls/nss.c strcase.c curl_addrinfo.c socks_gssapi.c \
+ ssh.c vtls/nss.c strcase.c curl_addrinfo.c socks_gssapi.c \
socks_sspi.c curl_sspi.c slist.c nonblock.c curl_memrchr.c imap.c \
pop3.c smtp.c pingpong.c rtsp.c curl_threads.c warnless.c hmac.c \
vtls/polarssl.c curl_rtmp.c openldap.c curl_gethostname.c gopher.c \
@@ -39,7 +39,7 @@ SOURCE \
asyn-ares.c asyn-thread.c curl_gssapi.c http_ntlm.c curl_ntlm_wb.c \
curl_ntlm_core.c curl_sasl.c vtls/schannel.c curl_multibyte.c \
vtls/darwinssl.c conncache.c curl_sasl_sspi.c smb.c curl_endian.c \
- curl_des.c system_win32.c sha256.c \
+ curl_des.c curl_range.c system_win32.c sha256.c \
vauth/vauth.c vauth/cleartext.c vauth/cram.c vauth/digest.c \
vauth/digest_sspi.c vauth/krb5_gssapi.c vauth/krb5_sspi.c \
vauth/ntlm.c vauth/ntlm_sspi.c vauth/oauth2.c vauth/spnego_gssapi.c \
diff --git a/packages/vms/config_h.com b/packages/vms/config_h.com
index 2a5503f7..0f1fa0f6 100644
--- a/packages/vms/config_h.com
+++ b/packages/vms/config_h.com
@@ -1382,7 +1382,7 @@ $! search/out 'tfile1' "$_''keyterm'"
$ severity = '$severity'
$ endif
$!
-$! Unix compatability routines
+$! Unix compatibility routines
$!---------------------------------------------
$ if severity .ne. 1
$ then
diff --git a/projects/README b/projects/README
index 60b8c874..99b1d7a2 100644
--- a/projects/README
+++ b/projects/README
@@ -74,9 +74,6 @@ Building with Visual C++
If you require support for Internationalized Domain Names via Windows IDN
then you will need either:
- * Microsoft Internationalized Domain Name (IDN) Mitigation APIs:
- https://www.microsoft.com/en-us/download/details.aspx?id=734
-
* Microsoft Windows SDK Update for Windows Vista:
https://www.microsoft.com/en-us/download/details.aspx?id=23719
@@ -108,7 +105,7 @@ Running DLL based configurations
... where 'Path to DLL` is the configuration specific path. For example the
following configurations in Visual Studio 2010 might be:
-
+
DLL Debug - DLL OpenSSL (Win32):
PATH=..\..\..\..\..\openssl\build\Win32\VC10\DLL Debug;C:\Windows\system32;
C:\Windows;C:\Windows\System32\Wbem
@@ -133,7 +130,7 @@ Notes
=====
The following keywords have been used in the directory hierarchy:
-
+
<platform> - The platform (For example: Windows)
<ide> - The IDE (For example: VC6, VC10, BCC5)
<architecture> - The platform architecture (For example: Win32, Win64)
@@ -142,12 +139,12 @@ Notes
If you are using the source code from the git repository, rather than a
release archive or nightly build, you will need to generate the project
- files. Please run "generate -help" for usage details.
+ files. Please run "generate -help" for usage details.
Should you wish to help out with some of the items on the TODO list, or
find bugs in the project files that need correcting, and would like to
submit updated files back then please note that, whilst the solution files
- can be edited directly, the templates for the project files (which are
+ can be edited directly, the templates for the project files (which are
stored in the git repositoty) will need to be modified rather than the
generated project files that Visual Studio uses.
diff --git a/projects/Windows/VC10/lib/libcurl.vcxproj b/projects/Windows/VC10/lib/libcurl.vcxproj
index c966c06a..c3800347 100644
--- a/projects/Windows/VC10/lib/libcurl.vcxproj
+++ b/projects/Windows/VC10/lib/libcurl.vcxproj
@@ -2332,6 +2332,7 @@
<ClCompile Include="..\..\..\..\lib\content_encoding.c" />
<ClCompile Include="..\..\..\..\lib\cookie.c" />
<ClCompile Include="..\..\..\..\lib\curl_addrinfo.c" />
+ <ClCompile Include="..\..\..\..\lib\curl_ctype.c" />
<ClCompile Include="..\..\..\..\lib\curl_des.c" />
<ClCompile Include="..\..\..\..\lib\curl_endian.c" />
<ClCompile Include="..\..\..\..\lib\curl_fnmatch.c" />
@@ -2342,6 +2343,7 @@
<ClCompile Include="..\..\..\..\lib\curl_ntlm_core.c" />
<ClCompile Include="..\..\..\..\lib\curl_ntlm_wb.c" />
<ClCompile Include="..\..\..\..\lib\curl_path.c" />
+ <ClCompile Include="..\..\..\..\lib\curl_range.c" />
<ClCompile Include="..\..\..\..\lib\curl_rtmp.c" />
<ClCompile Include="..\..\..\..\lib\curl_sasl.c" />
<ClCompile Include="..\..\..\..\lib\curl_sspi.c" />
@@ -2465,6 +2467,7 @@
<ClInclude Include="..\..\..\..\lib\cookie.h" />
<ClInclude Include="..\..\..\..\lib\curl_addrinfo.h" />
<ClInclude Include="..\..\..\..\lib\curl_base64.h" />
+ <ClInclude Include="..\..\..\..\lib\curl_ctype.h" />
<ClInclude Include="..\..\..\..\lib\curl_des.h" />
<ClInclude Include="..\..\..\..\lib\curl_endian.h" />
<ClInclude Include="..\..\..\..\lib\curl_fnmatch.h" />
@@ -2481,6 +2484,7 @@
<ClInclude Include="..\..\..\..\lib\curl_ntlm_wb.h" />
<ClInclude Include="..\..\..\..\lib\curl_path.h" />
<ClInclude Include="..\..\..\..\lib\curl_printf.h" />
+ <ClInclude Include="..\..\..\..\lib\curl_range.h" />
<ClInclude Include="..\..\..\..\lib\curl_rtmp.h" />
<ClInclude Include="..\..\..\..\lib\curl_sasl.h" />
<ClInclude Include="..\..\..\..\lib\curl_sec.h" />
diff --git a/projects/Windows/VC10/src/curl.vcxproj b/projects/Windows/VC10/src/curl.vcxproj
index 7f80d2f3..c4082ad7 100644
--- a/projects/Windows/VC10/src/curl.vcxproj
+++ b/projects/Windows/VC10/src/curl.vcxproj
@@ -2627,6 +2627,7 @@
</Link>
</ItemDefinitionGroup>
<ItemGroup>
+ <ClCompile Include="..\..\..\..\lib\curl_ctype.c" />
<ClCompile Include="..\..\..\..\lib\nonblock.c" />
<ClCompile Include="..\..\..\..\lib\strtoofft.c" />
<ClCompile Include="..\..\..\..\lib\warnless.c" />
@@ -2644,6 +2645,7 @@
<ClCompile Include="..\..\..\..\src\tool_dirhie.c" />
<ClCompile Include="..\..\..\..\src\tool_doswin.c" />
<ClCompile Include="..\..\..\..\src\tool_easysrc.c" />
+ <ClCompile Include="..\..\..\..\src\tool_filetime.c" />
<ClCompile Include="..\..\..\..\src\tool_formparse.c" />
<ClCompile Include="..\..\..\..\src\tool_getparam.c" />
<ClCompile Include="..\..\..\..\src\tool_getpass.c" />
@@ -2671,6 +2673,7 @@
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\..\lib\config-win32.h" />
+ <ClInclude Include="..\..\..\..\lib\curl_ctype.h" />
<ClInclude Include="..\..\..\..\lib\curl_setup.h" />
<ClInclude Include="..\..\..\..\lib\nonblock.h" />
<ClInclude Include="..\..\..\..\lib\strtoofft.h" />
@@ -2689,6 +2692,7 @@
<ClInclude Include="..\..\..\..\src\tool_dirhie.h" />
<ClInclude Include="..\..\..\..\src\tool_doswin.h" />
<ClInclude Include="..\..\..\..\src\tool_easysrc.h" />
+ <ClInclude Include="..\..\..\..\src\tool_filetime.h" />
<ClInclude Include="..\..\..\..\src\tool_formparse.h" />
<ClInclude Include="..\..\..\..\src\tool_getparam.h" />
<ClInclude Include="..\..\..\..\src\tool_getpass.h" />
diff --git a/projects/Windows/VC11/lib/libcurl.vcxproj b/projects/Windows/VC11/lib/libcurl.vcxproj
index 88609a0b..78446445 100644
--- a/projects/Windows/VC11/lib/libcurl.vcxproj
+++ b/projects/Windows/VC11/lib/libcurl.vcxproj
@@ -2388,6 +2388,7 @@
<ClCompile Include="..\..\..\..\lib\content_encoding.c" />
<ClCompile Include="..\..\..\..\lib\cookie.c" />
<ClCompile Include="..\..\..\..\lib\curl_addrinfo.c" />
+ <ClCompile Include="..\..\..\..\lib\curl_ctype.c" />
<ClCompile Include="..\..\..\..\lib\curl_des.c" />
<ClCompile Include="..\..\..\..\lib\curl_endian.c" />
<ClCompile Include="..\..\..\..\lib\curl_fnmatch.c" />
@@ -2398,6 +2399,7 @@
<ClCompile Include="..\..\..\..\lib\curl_ntlm_core.c" />
<ClCompile Include="..\..\..\..\lib\curl_ntlm_wb.c" />
<ClCompile Include="..\..\..\..\lib\curl_path.c" />
+ <ClCompile Include="..\..\..\..\lib\curl_range.c" />
<ClCompile Include="..\..\..\..\lib\curl_rtmp.c" />
<ClCompile Include="..\..\..\..\lib\curl_sasl.c" />
<ClCompile Include="..\..\..\..\lib\curl_sspi.c" />
@@ -2521,6 +2523,7 @@
<ClInclude Include="..\..\..\..\lib\cookie.h" />
<ClInclude Include="..\..\..\..\lib\curl_addrinfo.h" />
<ClInclude Include="..\..\..\..\lib\curl_base64.h" />
+ <ClInclude Include="..\..\..\..\lib\curl_ctype.h" />
<ClInclude Include="..\..\..\..\lib\curl_des.h" />
<ClInclude Include="..\..\..\..\lib\curl_endian.h" />
<ClInclude Include="..\..\..\..\lib\curl_fnmatch.h" />
@@ -2537,6 +2540,7 @@
<ClInclude Include="..\..\..\..\lib\curl_ntlm_wb.h" />
<ClInclude Include="..\..\..\..\lib\curl_path.h" />
<ClInclude Include="..\..\..\..\lib\curl_printf.h" />
+ <ClInclude Include="..\..\..\..\lib\curl_range.h" />
<ClInclude Include="..\..\..\..\lib\curl_rtmp.h" />
<ClInclude Include="..\..\..\..\lib\curl_sasl.h" />
<ClInclude Include="..\..\..\..\lib\curl_sec.h" />
diff --git a/projects/Windows/VC11/src/curl.vcxproj b/projects/Windows/VC11/src/curl.vcxproj
index 9387617a..1682373d 100644
--- a/projects/Windows/VC11/src/curl.vcxproj
+++ b/projects/Windows/VC11/src/curl.vcxproj
@@ -2683,6 +2683,7 @@
</Link>
</ItemDefinitionGroup>
<ItemGroup>
+ <ClCompile Include="..\..\..\..\lib\curl_ctype.c" />
<ClCompile Include="..\..\..\..\lib\nonblock.c" />
<ClCompile Include="..\..\..\..\lib\strtoofft.c" />
<ClCompile Include="..\..\..\..\lib\warnless.c" />
@@ -2700,6 +2701,7 @@
<ClCompile Include="..\..\..\..\src\tool_dirhie.c" />
<ClCompile Include="..\..\..\..\src\tool_doswin.c" />
<ClCompile Include="..\..\..\..\src\tool_easysrc.c" />
+ <ClCompile Include="..\..\..\..\src\tool_filetime.c" />
<ClCompile Include="..\..\..\..\src\tool_formparse.c" />
<ClCompile Include="..\..\..\..\src\tool_getparam.c" />
<ClCompile Include="..\..\..\..\src\tool_getpass.c" />
@@ -2727,6 +2729,7 @@
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\..\lib\config-win32.h" />
+ <ClInclude Include="..\..\..\..\lib\curl_ctype.h" />
<ClInclude Include="..\..\..\..\lib\curl_setup.h" />
<ClInclude Include="..\..\..\..\lib\nonblock.h" />
<ClInclude Include="..\..\..\..\lib\strtoofft.h" />
@@ -2745,6 +2748,7 @@
<ClInclude Include="..\..\..\..\src\tool_dirhie.h" />
<ClInclude Include="..\..\..\..\src\tool_doswin.h" />
<ClInclude Include="..\..\..\..\src\tool_easysrc.h" />
+ <ClInclude Include="..\..\..\..\src\tool_filetime.h" />
<ClInclude Include="..\..\..\..\src\tool_formparse.h" />
<ClInclude Include="..\..\..\..\src\tool_getparam.h" />
<ClInclude Include="..\..\..\..\src\tool_getpass.h" />
diff --git a/projects/Windows/VC12/lib/libcurl.vcxproj b/projects/Windows/VC12/lib/libcurl.vcxproj
index eaa54c12..712d2cd3 100644
--- a/projects/Windows/VC12/lib/libcurl.vcxproj
+++ b/projects/Windows/VC12/lib/libcurl.vcxproj
@@ -2388,6 +2388,7 @@
<ClCompile Include="..\..\..\..\lib\content_encoding.c" />
<ClCompile Include="..\..\..\..\lib\cookie.c" />
<ClCompile Include="..\..\..\..\lib\curl_addrinfo.c" />
+ <ClCompile Include="..\..\..\..\lib\curl_ctype.c" />
<ClCompile Include="..\..\..\..\lib\curl_des.c" />
<ClCompile Include="..\..\..\..\lib\curl_endian.c" />
<ClCompile Include="..\..\..\..\lib\curl_fnmatch.c" />
@@ -2398,6 +2399,7 @@
<ClCompile Include="..\..\..\..\lib\curl_ntlm_core.c" />
<ClCompile Include="..\..\..\..\lib\curl_ntlm_wb.c" />
<ClCompile Include="..\..\..\..\lib\curl_path.c" />
+ <ClCompile Include="..\..\..\..\lib\curl_range.c" />
<ClCompile Include="..\..\..\..\lib\curl_rtmp.c" />
<ClCompile Include="..\..\..\..\lib\curl_sasl.c" />
<ClCompile Include="..\..\..\..\lib\curl_sspi.c" />
@@ -2521,6 +2523,7 @@
<ClInclude Include="..\..\..\..\lib\cookie.h" />
<ClInclude Include="..\..\..\..\lib\curl_addrinfo.h" />
<ClInclude Include="..\..\..\..\lib\curl_base64.h" />
+ <ClInclude Include="..\..\..\..\lib\curl_ctype.h" />
<ClInclude Include="..\..\..\..\lib\curl_des.h" />
<ClInclude Include="..\..\..\..\lib\curl_endian.h" />
<ClInclude Include="..\..\..\..\lib\curl_fnmatch.h" />
@@ -2537,6 +2540,7 @@
<ClInclude Include="..\..\..\..\lib\curl_ntlm_wb.h" />
<ClInclude Include="..\..\..\..\lib\curl_path.h" />
<ClInclude Include="..\..\..\..\lib\curl_printf.h" />
+ <ClInclude Include="..\..\..\..\lib\curl_range.h" />
<ClInclude Include="..\..\..\..\lib\curl_rtmp.h" />
<ClInclude Include="..\..\..\..\lib\curl_sasl.h" />
<ClInclude Include="..\..\..\..\lib\curl_sec.h" />
diff --git a/projects/Windows/VC12/src/curl.vcxproj b/projects/Windows/VC12/src/curl.vcxproj
index ae41b39f..8a865033 100644
--- a/projects/Windows/VC12/src/curl.vcxproj
+++ b/projects/Windows/VC12/src/curl.vcxproj
@@ -2683,6 +2683,7 @@
</Link>
</ItemDefinitionGroup>
<ItemGroup>
+ <ClCompile Include="..\..\..\..\lib\curl_ctype.c" />
<ClCompile Include="..\..\..\..\lib\nonblock.c" />
<ClCompile Include="..\..\..\..\lib\strtoofft.c" />
<ClCompile Include="..\..\..\..\lib\warnless.c" />
@@ -2700,6 +2701,7 @@
<ClCompile Include="..\..\..\..\src\tool_dirhie.c" />
<ClCompile Include="..\..\..\..\src\tool_doswin.c" />
<ClCompile Include="..\..\..\..\src\tool_easysrc.c" />
+ <ClCompile Include="..\..\..\..\src\tool_filetime.c" />
<ClCompile Include="..\..\..\..\src\tool_formparse.c" />
<ClCompile Include="..\..\..\..\src\tool_getparam.c" />
<ClCompile Include="..\..\..\..\src\tool_getpass.c" />
@@ -2727,6 +2729,7 @@
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\..\lib\config-win32.h" />
+ <ClInclude Include="..\..\..\..\lib\curl_ctype.h" />
<ClInclude Include="..\..\..\..\lib\curl_setup.h" />
<ClInclude Include="..\..\..\..\lib\nonblock.h" />
<ClInclude Include="..\..\..\..\lib\strtoofft.h" />
@@ -2745,6 +2748,7 @@
<ClInclude Include="..\..\..\..\src\tool_dirhie.h" />
<ClInclude Include="..\..\..\..\src\tool_doswin.h" />
<ClInclude Include="..\..\..\..\src\tool_easysrc.h" />
+ <ClInclude Include="..\..\..\..\src\tool_filetime.h" />
<ClInclude Include="..\..\..\..\src\tool_formparse.h" />
<ClInclude Include="..\..\..\..\src\tool_getparam.h" />
<ClInclude Include="..\..\..\..\src\tool_getpass.h" />
diff --git a/projects/Windows/VC14/lib/libcurl.vcxproj b/projects/Windows/VC14/lib/libcurl.vcxproj
index e83c10a2..300d115a 100644
--- a/projects/Windows/VC14/lib/libcurl.vcxproj
+++ b/projects/Windows/VC14/lib/libcurl.vcxproj
@@ -2388,6 +2388,7 @@
<ClCompile Include="..\..\..\..\lib\content_encoding.c" />
<ClCompile Include="..\..\..\..\lib\cookie.c" />
<ClCompile Include="..\..\..\..\lib\curl_addrinfo.c" />
+ <ClCompile Include="..\..\..\..\lib\curl_ctype.c" />
<ClCompile Include="..\..\..\..\lib\curl_des.c" />
<ClCompile Include="..\..\..\..\lib\curl_endian.c" />
<ClCompile Include="..\..\..\..\lib\curl_fnmatch.c" />
@@ -2398,6 +2399,7 @@
<ClCompile Include="..\..\..\..\lib\curl_ntlm_core.c" />
<ClCompile Include="..\..\..\..\lib\curl_ntlm_wb.c" />
<ClCompile Include="..\..\..\..\lib\curl_path.c" />
+ <ClCompile Include="..\..\..\..\lib\curl_range.c" />
<ClCompile Include="..\..\..\..\lib\curl_rtmp.c" />
<ClCompile Include="..\..\..\..\lib\curl_sasl.c" />
<ClCompile Include="..\..\..\..\lib\curl_sspi.c" />
@@ -2521,6 +2523,7 @@
<ClInclude Include="..\..\..\..\lib\cookie.h" />
<ClInclude Include="..\..\..\..\lib\curl_addrinfo.h" />
<ClInclude Include="..\..\..\..\lib\curl_base64.h" />
+ <ClInclude Include="..\..\..\..\lib\curl_ctype.h" />
<ClInclude Include="..\..\..\..\lib\curl_des.h" />
<ClInclude Include="..\..\..\..\lib\curl_endian.h" />
<ClInclude Include="..\..\..\..\lib\curl_fnmatch.h" />
@@ -2537,6 +2540,7 @@
<ClInclude Include="..\..\..\..\lib\curl_ntlm_wb.h" />
<ClInclude Include="..\..\..\..\lib\curl_path.h" />
<ClInclude Include="..\..\..\..\lib\curl_printf.h" />
+ <ClInclude Include="..\..\..\..\lib\curl_range.h" />
<ClInclude Include="..\..\..\..\lib\curl_rtmp.h" />
<ClInclude Include="..\..\..\..\lib\curl_sasl.h" />
<ClInclude Include="..\..\..\..\lib\curl_sec.h" />
diff --git a/projects/Windows/VC14/src/curl.vcxproj b/projects/Windows/VC14/src/curl.vcxproj
index 869a1b96..481e0be5 100644
--- a/projects/Windows/VC14/src/curl.vcxproj
+++ b/projects/Windows/VC14/src/curl.vcxproj
@@ -2683,6 +2683,7 @@
</Link>
</ItemDefinitionGroup>
<ItemGroup>
+ <ClCompile Include="..\..\..\..\lib\curl_ctype.c" />
<ClCompile Include="..\..\..\..\lib\nonblock.c" />
<ClCompile Include="..\..\..\..\lib\strtoofft.c" />
<ClCompile Include="..\..\..\..\lib\warnless.c" />
@@ -2700,6 +2701,7 @@
<ClCompile Include="..\..\..\..\src\tool_dirhie.c" />
<ClCompile Include="..\..\..\..\src\tool_doswin.c" />
<ClCompile Include="..\..\..\..\src\tool_easysrc.c" />
+ <ClCompile Include="..\..\..\..\src\tool_filetime.c" />
<ClCompile Include="..\..\..\..\src\tool_formparse.c" />
<ClCompile Include="..\..\..\..\src\tool_getparam.c" />
<ClCompile Include="..\..\..\..\src\tool_getpass.c" />
@@ -2727,6 +2729,7 @@
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\..\lib\config-win32.h" />
+ <ClInclude Include="..\..\..\..\lib\curl_ctype.h" />
<ClInclude Include="..\..\..\..\lib\curl_setup.h" />
<ClInclude Include="..\..\..\..\lib\nonblock.h" />
<ClInclude Include="..\..\..\..\lib\strtoofft.h" />
@@ -2745,6 +2748,7 @@
<ClInclude Include="..\..\..\..\src\tool_dirhie.h" />
<ClInclude Include="..\..\..\..\src\tool_doswin.h" />
<ClInclude Include="..\..\..\..\src\tool_easysrc.h" />
+ <ClInclude Include="..\..\..\..\src\tool_filetime.h" />
<ClInclude Include="..\..\..\..\src\tool_formparse.h" />
<ClInclude Include="..\..\..\..\src\tool_getparam.h" />
<ClInclude Include="..\..\..\..\src\tool_getpass.h" />
diff --git a/projects/Windows/VC15/curl-all.sln b/projects/Windows/VC15/curl-all.sln
index 02bccc52..d4576a1c 100644
--- a/projects/Windows/VC15/curl-all.sln
+++ b/projects/Windows/VC15/curl-all.sln
@@ -1,5 +1,5 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2015
+# Visual Studio 15
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "curl", "src\curl.vcxproj", "{5228E9CE-A216-422F-A5E6-58E95E2DD71D}"
ProjectSection(ProjectDependencies) = postProject
{DA6F56B4-06A4-441D-AD70-AC5A7D51FADB} = {DA6F56B4-06A4-441D-AD70-AC5A7D51FADB}
diff --git a/projects/Windows/VC15/lib/libcurl.sln b/projects/Windows/VC15/lib/libcurl.sln
index f768b6d3..4de796ce 100644
--- a/projects/Windows/VC15/lib/libcurl.sln
+++ b/projects/Windows/VC15/lib/libcurl.sln
@@ -1,5 +1,5 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2015
+# Visual Studio 15
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcurl", "libcurl.vcxproj", "{DA6F56B4-06A4-441D-AD70-AC5A7D51FADB}"
EndProject
Global
diff --git a/projects/Windows/VC15/lib/libcurl.vcxproj b/projects/Windows/VC15/lib/libcurl.vcxproj
index 2dcab418..1a9ad577 100644
--- a/projects/Windows/VC15/lib/libcurl.vcxproj
+++ b/projects/Windows/VC15/lib/libcurl.vcxproj
@@ -2388,6 +2388,7 @@
<ClCompile Include="..\..\..\..\lib\content_encoding.c" />
<ClCompile Include="..\..\..\..\lib\cookie.c" />
<ClCompile Include="..\..\..\..\lib\curl_addrinfo.c" />
+ <ClCompile Include="..\..\..\..\lib\curl_ctype.c" />
<ClCompile Include="..\..\..\..\lib\curl_des.c" />
<ClCompile Include="..\..\..\..\lib\curl_endian.c" />
<ClCompile Include="..\..\..\..\lib\curl_fnmatch.c" />
@@ -2398,6 +2399,7 @@
<ClCompile Include="..\..\..\..\lib\curl_ntlm_core.c" />
<ClCompile Include="..\..\..\..\lib\curl_ntlm_wb.c" />
<ClCompile Include="..\..\..\..\lib\curl_path.c" />
+ <ClCompile Include="..\..\..\..\lib\curl_range.c" />
<ClCompile Include="..\..\..\..\lib\curl_rtmp.c" />
<ClCompile Include="..\..\..\..\lib\curl_sasl.c" />
<ClCompile Include="..\..\..\..\lib\curl_sspi.c" />
@@ -2521,6 +2523,7 @@
<ClInclude Include="..\..\..\..\lib\cookie.h" />
<ClInclude Include="..\..\..\..\lib\curl_addrinfo.h" />
<ClInclude Include="..\..\..\..\lib\curl_base64.h" />
+ <ClInclude Include="..\..\..\..\lib\curl_ctype.h" />
<ClInclude Include="..\..\..\..\lib\curl_des.h" />
<ClInclude Include="..\..\..\..\lib\curl_endian.h" />
<ClInclude Include="..\..\..\..\lib\curl_fnmatch.h" />
@@ -2537,6 +2540,7 @@
<ClInclude Include="..\..\..\..\lib\curl_ntlm_wb.h" />
<ClInclude Include="..\..\..\..\lib\curl_path.h" />
<ClInclude Include="..\..\..\..\lib\curl_printf.h" />
+ <ClInclude Include="..\..\..\..\lib\curl_range.h" />
<ClInclude Include="..\..\..\..\lib\curl_rtmp.h" />
<ClInclude Include="..\..\..\..\lib\curl_sasl.h" />
<ClInclude Include="..\..\..\..\lib\curl_sec.h" />
diff --git a/projects/Windows/VC15/src/curl.sln b/projects/Windows/VC15/src/curl.sln
index ca123edf..16d22965 100644
--- a/projects/Windows/VC15/src/curl.sln
+++ b/projects/Windows/VC15/src/curl.sln
@@ -1,5 +1,5 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2015
+# Visual Studio 15
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "curl", "curl.vcxproj", "{5228E9CE-A216-422F-A5E6-58E95E2DD71D}"
EndProject
Global
diff --git a/projects/Windows/VC15/src/curl.vcxproj b/projects/Windows/VC15/src/curl.vcxproj
index 9c79dd63..92043d4d 100644
--- a/projects/Windows/VC15/src/curl.vcxproj
+++ b/projects/Windows/VC15/src/curl.vcxproj
@@ -2683,6 +2683,7 @@
</Link>
</ItemDefinitionGroup>
<ItemGroup>
+ <ClCompile Include="..\..\..\..\lib\curl_ctype.c" />
<ClCompile Include="..\..\..\..\lib\nonblock.c" />
<ClCompile Include="..\..\..\..\lib\strtoofft.c" />
<ClCompile Include="..\..\..\..\lib\warnless.c" />
@@ -2700,6 +2701,7 @@
<ClCompile Include="..\..\..\..\src\tool_dirhie.c" />
<ClCompile Include="..\..\..\..\src\tool_doswin.c" />
<ClCompile Include="..\..\..\..\src\tool_easysrc.c" />
+ <ClCompile Include="..\..\..\..\src\tool_filetime.c" />
<ClCompile Include="..\..\..\..\src\tool_formparse.c" />
<ClCompile Include="..\..\..\..\src\tool_getparam.c" />
<ClCompile Include="..\..\..\..\src\tool_getpass.c" />
@@ -2727,6 +2729,7 @@
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\..\lib\config-win32.h" />
+ <ClInclude Include="..\..\..\..\lib\curl_ctype.h" />
<ClInclude Include="..\..\..\..\lib\curl_setup.h" />
<ClInclude Include="..\..\..\..\lib\nonblock.h" />
<ClInclude Include="..\..\..\..\lib\strtoofft.h" />
@@ -2745,6 +2748,7 @@
<ClInclude Include="..\..\..\..\src\tool_dirhie.h" />
<ClInclude Include="..\..\..\..\src\tool_doswin.h" />
<ClInclude Include="..\..\..\..\src\tool_easysrc.h" />
+ <ClInclude Include="..\..\..\..\src\tool_filetime.h" />
<ClInclude Include="..\..\..\..\src\tool_formparse.h" />
<ClInclude Include="..\..\..\..\src\tool_getparam.h" />
<ClInclude Include="..\..\..\..\src\tool_getpass.h" />
diff --git a/projects/Windows/VC6/lib/libcurl.dsp b/projects/Windows/VC6/lib/libcurl.dsp
index 8814cb7e..977c5d2b 100644
--- a/projects/Windows/VC6/lib/libcurl.dsp
+++ b/projects/Windows/VC6/lib/libcurl.dsp
@@ -766,6 +766,10 @@ SOURCE=..\..\..\..\lib\curl_addrinfo.c
# End Source File
# Begin Source File
+SOURCE=..\..\..\..\lib\curl_ctype.c
+# End Source File
+# Begin Source File
+
SOURCE=..\..\..\..\lib\curl_des.c
# End Source File
# Begin Source File
@@ -806,6 +810,10 @@ SOURCE=..\..\..\..\lib\curl_path.c
# End Source File
# Begin Source File
+SOURCE=..\..\..\..\lib\curl_range.c
+# End Source File
+# Begin Source File
+
SOURCE=..\..\..\..\lib\curl_rtmp.c
# End Source File
# Begin Source File
@@ -1294,6 +1302,10 @@ SOURCE=..\..\..\..\lib\curl_base64.h
# End Source File
# Begin Source File
+SOURCE=..\..\..\..\lib\curl_ctype.h
+# End Source File
+# Begin Source File
+
SOURCE=..\..\..\..\lib\curl_des.h
# End Source File
# Begin Source File
@@ -1358,6 +1370,10 @@ SOURCE=..\..\..\..\lib\curl_printf.h
# End Source File
# Begin Source File
+SOURCE=..\..\..\..\lib\curl_range.h
+# End Source File
+# Begin Source File
+
SOURCE=..\..\..\..\lib\curl_rtmp.h
# End Source File
# Begin Source File
diff --git a/projects/Windows/VC6/src/curl.dsp b/projects/Windows/VC6/src/curl.dsp
index b276b1ad..05dd73c7 100644
--- a/projects/Windows/VC6/src/curl.dsp
+++ b/projects/Windows/VC6/src/curl.dsp
@@ -679,6 +679,10 @@ LINK32=link.exe
# PROP Default_Filter ""
# Begin Source File
+SOURCE=..\..\..\..\lib\curl_ctype.c
+# End Source File
+# Begin Source File
+
SOURCE=..\..\..\..\lib\nonblock.c
# End Source File
# Begin Source File
@@ -747,6 +751,10 @@ SOURCE=..\..\..\..\src\tool_easysrc.c
# End Source File
# Begin Source File
+SOURCE=..\..\..\..\src\tool_filetime.c
+# End Source File
+# Begin Source File
+
SOURCE=..\..\..\..\src\tool_formparse.c
# End Source File
# Begin Source File
@@ -851,6 +859,10 @@ SOURCE=..\..\..\..\lib\config-win32.h
# End Source File
# Begin Source File
+SOURCE=..\..\..\..\lib\curl_ctype.h
+# End Source File
+# Begin Source File
+
SOURCE=..\..\..\..\lib\curl_setup.h
# End Source File
# Begin Source File
@@ -923,6 +935,10 @@ SOURCE=..\..\..\..\src\tool_easysrc.h
# End Source File
# Begin Source File
+SOURCE=..\..\..\..\src\tool_filetime.h
+# End Source File
+# Begin Source File
+
SOURCE=..\..\..\..\src\tool_formparse.h
# End Source File
# Begin Source File
diff --git a/projects/Windows/VC7.1/lib/libcurl.vcproj b/projects/Windows/VC7.1/lib/libcurl.vcproj
index 3423bb48..d71d75fa 100644
--- a/projects/Windows/VC7.1/lib/libcurl.vcproj
+++ b/projects/Windows/VC7.1/lib/libcurl.vcproj
@@ -1283,6 +1283,9 @@
RelativePath="..\..\..\..\lib\curl_addrinfo.c">
</File>
<File
+ RelativePath="..\..\..\..\lib\curl_ctype.c">
+ </File>
+ <File
RelativePath="..\..\..\..\lib\curl_des.c">
</File>
<File
@@ -1313,6 +1316,9 @@
RelativePath="..\..\..\..\lib\curl_path.c">
</File>
<File
+ RelativePath="..\..\..\..\lib\curl_range.c">
+ </File>
+ <File
RelativePath="..\..\..\..\lib\curl_rtmp.c">
</File>
<File
@@ -1608,6 +1614,9 @@
RelativePath="..\..\..\..\lib\curl_base64.h">
</File>
<File
+ RelativePath="..\..\..\..\lib\curl_ctype.h">
+ </File>
+ <File
RelativePath="..\..\..\..\lib\curl_des.h">
</File>
<File
@@ -1656,6 +1665,9 @@
RelativePath="..\..\..\..\lib\curl_printf.h">
</File>
<File
+ RelativePath="..\..\..\..\lib\curl_range.h">
+ </File>
+ <File
RelativePath="..\..\..\..\lib\curl_rtmp.h">
</File>
<File
diff --git a/projects/Windows/VC7.1/src/curl.vcproj b/projects/Windows/VC7.1/src/curl.vcproj
index baedf5e5..8fecea6b 100644
--- a/projects/Windows/VC7.1/src/curl.vcproj
+++ b/projects/Windows/VC7.1/src/curl.vcproj
@@ -1362,6 +1362,9 @@
Name="Source Files"
Filter="">
<File
+ RelativePath="..\..\..\..\lib\curl_ctype.c">
+ </File>
+ <File
RelativePath="..\..\..\..\lib\nonblock.c">
</File>
<File
@@ -1413,6 +1416,9 @@
RelativePath="..\..\..\..\src\tool_easysrc.c">
</File>
<File
+ RelativePath="..\..\..\..\src\tool_filetime.c">
+ </File>
+ <File
RelativePath="..\..\..\..\src\tool_formparse.c">
</File>
<File
@@ -1492,6 +1498,9 @@
RelativePath="..\..\..\..\lib\config-win32.h">
</File>
<File
+ RelativePath="..\..\..\..\lib\curl_ctype.h">
+ </File>
+ <File
RelativePath="..\..\..\..\lib\curl_setup.h">
</File>
<File
@@ -1546,6 +1555,9 @@
RelativePath="..\..\..\..\src\tool_easysrc.h">
</File>
<File
+ RelativePath="..\..\..\..\src\tool_filetime.h">
+ </File>
+ <File
RelativePath="..\..\..\..\src\tool_formparse.h">
</File>
<File
diff --git a/projects/Windows/VC7/lib/libcurl.vcproj b/projects/Windows/VC7/lib/libcurl.vcproj
index 5023f5d9..69bd9383 100644
--- a/projects/Windows/VC7/lib/libcurl.vcproj
+++ b/projects/Windows/VC7/lib/libcurl.vcproj
@@ -1137,6 +1137,9 @@
RelativePath="..\..\..\..\lib\curl_addrinfo.c">
</File>
<File
+ RelativePath="..\..\..\..\lib\curl_ctype.c">
+ </File>
+ <File
RelativePath="..\..\..\..\lib\curl_des.c">
</File>
<File
@@ -1167,6 +1170,9 @@
RelativePath="..\..\..\..\lib\curl_path.c">
</File>
<File
+ RelativePath="..\..\..\..\lib\curl_range.c">
+ </File>
+ <File
RelativePath="..\..\..\..\lib\curl_rtmp.c">
</File>
<File
@@ -1462,6 +1468,9 @@
RelativePath="..\..\..\..\lib\curl_base64.h">
</File>
<File
+ RelativePath="..\..\..\..\lib\curl_ctype.h">
+ </File>
+ <File
RelativePath="..\..\..\..\lib\curl_des.h">
</File>
<File
@@ -1510,6 +1519,9 @@
RelativePath="..\..\..\..\lib\curl_printf.h">
</File>
<File
+ RelativePath="..\..\..\..\lib\curl_range.h">
+ </File>
+ <File
RelativePath="..\..\..\..\lib\curl_rtmp.h">
</File>
<File
diff --git a/projects/Windows/VC7/src/curl.vcproj b/projects/Windows/VC7/src/curl.vcproj
index 3de1b94a..821aebc3 100644
--- a/projects/Windows/VC7/src/curl.vcproj
+++ b/projects/Windows/VC7/src/curl.vcproj
@@ -1216,6 +1216,9 @@
Name="Source Files"
Filter="">
<File
+ RelativePath="..\..\..\..\lib\curl_ctype.c">
+ </File>
+ <File
RelativePath="..\..\..\..\lib\nonblock.c">
</File>
<File
@@ -1267,6 +1270,9 @@
RelativePath="..\..\..\..\src\tool_easysrc.c">
</File>
<File
+ RelativePath="..\..\..\..\src\tool_filetime.c">
+ </File>
+ <File
RelativePath="..\..\..\..\src\tool_formparse.c">
</File>
<File
@@ -1346,6 +1352,9 @@
RelativePath="..\..\..\..\lib\config-win32.h">
</File>
<File
+ RelativePath="..\..\..\..\lib\curl_ctype.h">
+ </File>
+ <File
RelativePath="..\..\..\..\lib\curl_setup.h">
</File>
<File
@@ -1400,6 +1409,9 @@
RelativePath="..\..\..\..\src\tool_easysrc.h">
</File>
<File
+ RelativePath="..\..\..\..\src\tool_filetime.h">
+ </File>
+ <File
RelativePath="..\..\..\..\src\tool_formparse.h">
</File>
<File
diff --git a/projects/Windows/VC8/lib/libcurl.vcproj b/projects/Windows/VC8/lib/libcurl.vcproj
index 92c96870..dac78487 100644
--- a/projects/Windows/VC8/lib/libcurl.vcproj
+++ b/projects/Windows/VC8/lib/libcurl.vcproj
@@ -3653,6 +3653,10 @@
>
</File>
<File
+ RelativePath="..\..\..\..\lib\curl_ctype.c"
+ >
+ </File>
+ <File
RelativePath="..\..\..\..\lib\curl_des.c"
>
</File>
@@ -3693,6 +3697,10 @@
>
</File>
<File
+ RelativePath="..\..\..\..\lib\curl_range.c"
+ >
+ </File>
+ <File
RelativePath="..\..\..\..\lib\curl_rtmp.c"
>
</File>
@@ -4085,6 +4093,10 @@
>
</File>
<File
+ RelativePath="..\..\..\..\lib\curl_ctype.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\..\lib\curl_des.h"
>
</File>
@@ -4149,6 +4161,10 @@
>
</File>
<File
+ RelativePath="..\..\..\..\lib\curl_range.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\..\lib\curl_rtmp.h"
>
</File>
diff --git a/projects/Windows/VC8/src/curl.vcproj b/projects/Windows/VC8/src/curl.vcproj
index 4e4c6c3b..fb031cf1 100644
--- a/projects/Windows/VC8/src/curl.vcproj
+++ b/projects/Windows/VC8/src/curl.vcproj
@@ -4081,6 +4081,10 @@
Name="Source Files"
>
<File
+ RelativePath="..\..\..\..\lib\curl_ctype.c"
+ >
+ </File>
+ <File
RelativePath="..\..\..\..\lib\nonblock.c"
>
</File>
@@ -4149,6 +4153,10 @@
>
</File>
<File
+ RelativePath="..\..\..\..\src\tool_filetime.c"
+ >
+ </File>
+ <File
RelativePath="..\..\..\..\src\tool_formparse.c"
>
</File>
@@ -4253,6 +4261,10 @@
>
</File>
<File
+ RelativePath="..\..\..\..\lib\curl_ctype.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\..\lib\curl_setup.h"
>
</File>
@@ -4325,6 +4337,10 @@
>
</File>
<File
+ RelativePath="..\..\..\..\src\tool_filetime.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\..\src\tool_formparse.h"
>
</File>
diff --git a/projects/Windows/VC9/lib/libcurl.vcproj b/projects/Windows/VC9/lib/libcurl.vcproj
index d4cb3619..03e16258 100644
--- a/projects/Windows/VC9/lib/libcurl.vcproj
+++ b/projects/Windows/VC9/lib/libcurl.vcproj
@@ -3594,6 +3594,10 @@
>
</File>
<File
+ RelativePath="..\..\..\..\lib\curl_ctype.c"
+ >
+ </File>
+ <File
RelativePath="..\..\..\..\lib\curl_des.c"
>
</File>
@@ -3634,6 +3638,10 @@
>
</File>
<File
+ RelativePath="..\..\..\..\lib\curl_range.c"
+ >
+ </File>
+ <File
RelativePath="..\..\..\..\lib\curl_rtmp.c"
>
</File>
@@ -4026,6 +4034,10 @@
>
</File>
<File
+ RelativePath="..\..\..\..\lib\curl_ctype.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\..\lib\curl_des.h"
>
</File>
@@ -4090,6 +4102,10 @@
>
</File>
<File
+ RelativePath="..\..\..\..\lib\curl_range.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\..\lib\curl_rtmp.h"
>
</File>
diff --git a/projects/Windows/VC9/src/curl.vcproj b/projects/Windows/VC9/src/curl.vcproj
index 56ba9dee..1d0ae65e 100644
--- a/projects/Windows/VC9/src/curl.vcproj
+++ b/projects/Windows/VC9/src/curl.vcproj
@@ -3938,6 +3938,10 @@
Name="Source Files"
>
<File
+ RelativePath="..\..\..\..\lib\curl_ctype.c"
+ >
+ </File>
+ <File
RelativePath="..\..\..\..\lib\nonblock.c"
>
</File>
@@ -4006,6 +4010,10 @@
>
</File>
<File
+ RelativePath="..\..\..\..\src\tool_filetime.c"
+ >
+ </File>
+ <File
RelativePath="..\..\..\..\src\tool_formparse.c"
>
</File>
@@ -4110,6 +4118,10 @@
>
</File>
<File
+ RelativePath="..\..\..\..\lib\curl_ctype.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\..\lib\curl_setup.h"
>
</File>
@@ -4182,6 +4194,10 @@
>
</File>
<File
+ RelativePath="..\..\..\..\src\tool_filetime.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\..\src\tool_formparse.h"
>
</File>
diff --git a/projects/build-openssl.bat b/projects/build-openssl.bat
index 2a135b91..21709b76 100644
--- a/projects/build-openssl.bat
+++ b/projects/build-openssl.bat
@@ -6,7 +6,7 @@ rem * / __| | | | |_) | |
rem * | (__| |_| | _ <| |___
rem * \___|\___/|_| \_\_____|
rem *
-rem * Copyright (C) 2012 - 2017, Steve Holme, <steve_holme@hotmail.com>.
+rem * Copyright (C) 2012 - 2018, Steve Holme, <steve_holme@hotmail.com>.
rem *
rem * This software is licensed as described in the file COPYING, which
rem * you should have received as part of this distribution. The terms
@@ -33,6 +33,16 @@ rem ***************************************************************************
rem Ensure we have the required arguments
if /i "%~1" == "" goto syntax
+ rem Calculate the program files directory
+ if defined PROGRAMFILES (
+ set "PF=%PROGRAMFILES%"
+ set OS_PLATFORM=x86
+ )
+ if defined PROGRAMFILES(x86) (
+ set "PF=%PROGRAMFILES(x86)%"
+ set OS_PLATFORM=x64
+ )
+
:parseArgs
if "%~1" == "" goto prerequisites
@@ -75,7 +85,16 @@ rem ***************************************************************************
) else if /i "%~1" == "vc15" (
set VC_VER=15.0
set VC_DESC=VC15
- set "VC_PATH=Microsoft Visual Studio\2017\Community\VC"
+
+ rem Determine the VC15 path based on the installed edition in decending
+ rem order (Enterprise, then Professional and finally Community)
+ if exist "%PF%\Microsoft Visual Studio\2017\Enterprise\VC" (
+ set "VC_PATH=Microsoft Visual Studio\2017\Enterprise\VC"
+ ) else if exist "%PF%\Microsoft Visual Studio\2017\Professional\VC" (
+ set "VC_PATH=Microsoft Visual Studio\2017\Professional\VC"
+ ) else (
+ set "VC_PATH=Microsoft Visual Studio\2017\Community\VC"
+ )
) else if /i "%~1%" == "x86" (
set BUILD_PLATFORM=x86
) else if /i "%~1%" == "x64" (
@@ -101,23 +120,12 @@ rem ***************************************************************************
shift & goto parseArgs
:prerequisites
- rem Compiler and platform are required parameters.
+ rem Compiler is a required parameter
if not defined VC_VER goto syntax
- if not defined BUILD_PLATFORM goto syntax
rem Default the start directory if one isn't specified
if not defined START_DIR set START_DIR=..\..\openssl
- rem Calculate the program files directory
- if defined PROGRAMFILES (
- set "PF=%PROGRAMFILES%"
- set OS_PLATFORM=x86
- )
- if defined PROGRAMFILES(x86) (
- set "PF=%PROGRAMFILES(x86)%"
- set OS_PLATFORM=x64
- )
-
rem Check we have a program files directory
if not defined PF goto nopf
@@ -211,12 +219,22 @@ rem ***************************************************************************
nmake -f ms\ntdll.mak
rem Move the output directories
- move out32.dbg "%OUTDIR%\LIB Debug"
- move out32dll.dbg "%OUTDIR%\DLL Debug"
+ if exist "%OUTDIR%\LIB Debug" (
+ copy /y out32.dbg\* "%OUTDIR%\LIB Debug" 1>nul
+ rd out32.dbg /s /q
+ ) else (
+ move out32.dbg "%OUTDIR%\LIB Debug" 1>nul
+ )
+ if exist "%OUTDIR%\DLL Debug" (
+ copy /y out32dll.dbg\* "%OUTDIR%\DLL Debug" 1>nul
+ rd out32dll.dbg /s /q
+ ) else (
+ move out32dll.dbg "%OUTDIR%\DLL Debug" 1>nul
+ )
rem Move the PDB files
- move tmp32.dbg\lib.pdb "%OUTDIR%\LIB Debug"
- move tmp32dll.dbg\lib.pdb "%OUTDIR%\DLL Debug"
+ move tmp32.dbg\lib.pdb "%OUTDIR%\LIB Debug" 1>nul
+ move tmp32dll.dbg\lib.pdb "%OUTDIR%\DLL Debug" 1>nul
rem Remove the intermediate directories
rd tmp32.dbg /s /q
@@ -232,14 +250,24 @@ rem ***************************************************************************
call ms\do_win64a
nmake -f ms\nt.mak
nmake -f ms\ntdll.mak
-
+
rem Move the output directories
- move out32 "%OUTDIR%\LIB Release"
- move out32dll "%OUTDIR%\DLL Release"
+ if exist "%OUTDIR%\LIB Release" (
+ copy /y out32\* "%OUTDIR%\LIB Release" 1>nul
+ rd out32 /s /q
+ ) else (
+ move out32 "%OUTDIR%\LIB Release" 1>nul
+ )
+ if exist "%OUTDIR%\DLL Release" (
+ copy /y out32dll\* "%OUTDIR%\DLL Release" 1>nul
+ rd out32dll /s /q
+ ) else (
+ move out32dll "%OUTDIR%\DLL Release" 1>nul
+ )
rem Move the PDB files
- move tmp32\lib.pdb "%OUTDIR%\LIB Release"
- move tmp32dll\lib.pdb "%OUTDIR%\DLL Release"
+ move tmp32\lib.pdb "%OUTDIR%\LIB Release" 1>nul
+ move tmp32dll\lib.pdb "%OUTDIR%\DLL Release" 1>nul
rem Remove the intermediate directories
rd tmp32 /s /q
@@ -264,12 +292,22 @@ rem ***************************************************************************
nmake -f ms\ntdll.mak
rem Move the output directories
- move out32.dbg "%OUTDIR%\LIB Debug"
- move out32dll.dbg "%OUTDIR%\DLL Debug"
+ if exist "%OUTDIR%\LIB Debug" (
+ copy /y out32.dbg\* "%OUTDIR%\LIB Debug" 1>nul
+ rd out32.dbg /s /q
+ ) else (
+ move out32.dbg "%OUTDIR%\LIB Debug" 1>nul
+ )
+ if exist "%OUTDIR%\DLL Debug" (
+ copy /y out32dll.dbg\* "%OUTDIR%\DLL Debug" 1>nul
+ rd out32dll.dbg /s /q
+ ) else (
+ move out32dll.dbg "%OUTDIR%\DLL Debug" 1>nul
+ )
rem Move the PDB files
- move tmp32.dbg\lib.pdb "%OUTDIR%\LIB Debug"
- move tmp32dll.dbg\lib.pdb "%OUTDIR%\DLL Debug"
+ move tmp32.dbg\lib.pdb "%OUTDIR%\LIB Debug" 1>nul
+ move tmp32dll.dbg\lib.pdb "%OUTDIR%\DLL Debug" 1>nul
rem Remove the intermediate directories
rd tmp32.dbg /s /q
@@ -285,14 +323,24 @@ rem ***************************************************************************
call ms\do_ms
nmake -f ms\nt.mak
nmake -f ms\ntdll.mak
-
+
rem Move the output directories
- move out32 "%OUTDIR%\LIB Release"
- move out32dll "%OUTDIR%\DLL Release"
+ if exist "%OUTDIR%\LIB Release" (
+ copy /y out32\* "%OUTDIR%\LIB Release" 1>nul
+ rd out32 /s /q
+ ) else (
+ move out32 "%OUTDIR%\LIB Release" 1>nul
+ )
+ if exist "%OUTDIR%\DLL Release" (
+ copy /y out32dll\* "%OUTDIR%\DLL Release" 1>nul
+ rd out32dll /s /q
+ ) else (
+ move out32dll "%OUTDIR%\DLL Release" 1>nul
+ )
rem Move the PDB files
- move tmp32\lib.pdb "%OUTDIR%\LIB Release"
- move tmp32dll\lib.pdb "%OUTDIR%\DLL Release"
+ move tmp32\lib.pdb "%OUTDIR%\LIB Release" 1>nul
+ move tmp32dll\lib.pdb "%OUTDIR%\DLL Release" 1>nul
rem Remove the intermediate directories
rd tmp32 /s /q
@@ -303,7 +351,7 @@ rem ***************************************************************************
:syntax
rem Display the help
echo.
- echo Usage: build-openssl ^<compiler^> ^<platform^> [configuration] [directory]
+ echo Usage: build-openssl ^<compiler^> [platform] [configuration] [directory]
echo.
echo Compiler:
echo.
diff --git a/projects/build-wolfssl.bat b/projects/build-wolfssl.bat
index 875d6fd8..e5cf1536 100644
--- a/projects/build-wolfssl.bat
+++ b/projects/build-wolfssl.bat
@@ -6,7 +6,7 @@ rem * / __| | | | |_) | |
rem * | (__| |_| | _ <| |___
rem * \___|\___/|_| \_\_____|
rem *
-rem * Copyright (C) 2012 - 2017, Steve Holme, <steve_holme@hotmail.com>.
+rem * Copyright (C) 2012 - 2018, Steve Holme, <steve_holme@hotmail.com>.
rem * Copyright (C) 2015, Jay Satiro, <raysatiro@yahoo.com>.
rem *
rem * This software is licensed as described in the file COPYING, which
@@ -35,6 +35,16 @@ rem ***************************************************************************
rem Ensure we have the required arguments
if /i "%~1" == "" goto syntax
+ rem Calculate the program files directory
+ if defined PROGRAMFILES (
+ set "PF=%PROGRAMFILES%"
+ set OS_PLATFORM=x86
+ )
+ if defined PROGRAMFILES(x86) (
+ set "PF=%PROGRAMFILES(x86)%"
+ set OS_PLATFORM=x64
+ )
+
:parseArgs
if "%~1" == "" goto prerequisites
@@ -62,7 +72,16 @@ rem ***************************************************************************
set VC_VER=15.0
set VC_DESC=VC15
set VC_TOOLSET=v141
- set "VC_PATH=Microsoft Visual Studio\2017\Community\VC"
+
+ rem Determine the VC15 path based on the installed edition in decending
+ rem order (Enterprise, then Professional and finally Community)
+ if exist "%PF%\Microsoft Visual Studio\2017\Enterprise\VC" (
+ set "VC_PATH=Microsoft Visual Studio\2017\Enterprise\VC"
+ ) else if exist "%PF%\Microsoft Visual Studio\2017\Professional\VC" (
+ set "VC_PATH=Microsoft Visual Studio\2017\Professional\VC"
+ ) else (
+ set "VC_PATH=Microsoft Visual Studio\2017\Community\VC"
+ )
) else if /i "%~1" == "x86" (
set BUILD_PLATFORM=x86
) else if /i "%~1" == "x64" (
@@ -88,23 +107,12 @@ rem ***************************************************************************
shift & goto parseArgs
:prerequisites
- rem Compiler and platform are required parameters.
+ rem Compiler is a required parameter
if not defined VC_VER goto syntax
- if not defined BUILD_PLATFORM goto syntax
rem Default the start directory if one isn't specified
if not defined START_DIR set START_DIR=..\..\wolfssl
- rem Calculate the program files directory
- if defined PROGRAMFILES (
- set "PF=%PROGRAMFILES%"
- set OS_PLATFORM=x86
- )
- if defined PROGRAMFILES(x86) (
- set "PF=%PROGRAMFILES(x86)%"
- set OS_PLATFORM=x64
- )
-
rem Check we have a program files directory
if not defined PF goto nopf
@@ -291,7 +299,7 @@ rem ***************************************************************************
:syntax
rem Display the help
echo.
- echo Usage: build-wolfssl ^<compiler^> ^<platform^> [configuration] [directory]
+ echo Usage: build-wolfssl ^<compiler^> [platform] [configuration] [directory]
echo.
echo Compiler:
echo.
diff --git a/projects/generate.bat b/projects/generate.bat
index f8fb81fe..d1fc6088 100644
--- a/projects/generate.bat
+++ b/projects/generate.bat
@@ -284,12 +284,14 @@ rem
call :element %1 lib "strtoofft.c" %3
call :element %1 lib "nonblock.c" %3
call :element %1 lib "warnless.c" %3
+ call :element %1 lib "curl_ctype.c" %3
) else if "!var!" == "CURL_SRC_X_H_FILES" (
call :element %1 lib "config-win32.h" %3
call :element %1 lib "curl_setup.h" %3
call :element %1 lib "strtoofft.h" %3
call :element %1 lib "nonblock.h" %3
call :element %1 lib "warnless.h" %3
+ call :element %1 lib "curl_ctype.h" %3
) else if "!var!" == "CURL_LIB_C_FILES" (
for /f "delims=" %%c in ('dir /b ..\lib\*.c') do call :element %1 lib "%%c" %3
) else if "!var!" == "CURL_LIB_H_FILES" (
diff --git a/src/Makefile.inc b/src/Makefile.inc
index 45b4967f..e0506c7f 100644
--- a/src/Makefile.inc
+++ b/src/Makefile.inc
@@ -12,13 +12,15 @@
CURLX_CFILES = \
../lib/strtoofft.c \
../lib/nonblock.c \
- ../lib/warnless.c
+ ../lib/warnless.c \
+ ../lib/curl_ctype.c
CURLX_HFILES = \
../lib/curl_setup.h \
../lib/strtoofft.h \
../lib/nonblock.h \
- ../lib/warnless.h
+ ../lib/warnless.h \
+ ../lib/curl_ctype.h
CURL_CFILES = \
slist_wc.c \
@@ -35,6 +37,7 @@ CURL_CFILES = \
tool_dirhie.c \
tool_doswin.c \
tool_easysrc.c \
+ tool_filetime.c \
tool_formparse.c \
tool_getparam.c \
tool_getpass.c \
@@ -75,6 +78,7 @@ CURL_HFILES = \
tool_dirhie.h \
tool_doswin.h \
tool_easysrc.h \
+ tool_filetime.h \
tool_formparse.h \
tool_getparam.h \
tool_getpass.h \
diff --git a/src/Makefile.netware b/src/Makefile.netware
index a927da59..ebe6500e 100644
--- a/src/Makefile.netware
+++ b/src/Makefile.netware
@@ -106,7 +106,7 @@ DESCR = curl $(LIBCURL_VERSION_STR) ($(LIBARCH)) - https://curl.haxx.se
MTSAFE = YES
STACK = 64000
SCREEN = $(TARGET) commandline utility
-# Comment the line below if you dont want to load protected automatically.
+# Comment the line below if you don't want to load protected automatically.
# LDRING = 3
# Uncomment the next line to enable linking with POSIX semantics.
@@ -178,7 +178,7 @@ endif
CFLAGS += -align 4
else
# PRELUDE = $(NDK_CLIB)/imports/clibpre.o
- # to avoid the __init_* / __deinit_* whoes dont use prelude from NDK
+ # to avoid the __init_* / __deinit_* whoes don't use prelude from NDK
PRELUDE = "$(MWCW_PATH)/libraries/runtime/prelude.obj"
# CFLAGS += -include "$(MWCW_PATH)/headers/nlm_clib_prefix.h"
CFLAGS += -align 1
@@ -201,7 +201,7 @@ else
endif
else
# PRELUDE = $(NDK_CLIB)/imports/clibpre.gcc.o
- # to avoid the __init_* / __deinit_* whoes dont use prelude from NDK
+ # to avoid the __init_* / __deinit_* whoes don't use prelude from NDK
# http://www.gknw.net/development/mk_nlm/gcc_pre.zip
PRELUDE = $(NDK_ROOT)/pre/prelude.o
CFLAGS += -include $(NDKBASE)/nlmconv/genlm.h
diff --git a/src/tool_cb_prg.c b/src/tool_cb_prg.c
index cf3251b2..60a3804f 100644
--- a/src/tool_cb_prg.c
+++ b/src/tool_cb_prg.c
@@ -35,6 +35,12 @@
#include "memdebug.h" /* keep this as LAST include */
+#ifdef HAVE_TERMIOS_H
+# include <termios.h>
+#elif defined(HAVE_TERMIO_H)
+# include <termio.h>
+#endif
+
/* 200 values generated by this perl code:
my $pi = 3.1415;
@@ -78,7 +84,7 @@ static void fly(struct ProgressData *bar, bool moved)
pos = sinus[(bar->tick + 15)%200] / (10000 / check);
buf[pos] = '#';
- fputs(buf, stderr);
+ fputs(buf, bar->out);
bar->tick += 2;
if(bar->tick >= 200)
bar->tick -= 200;
diff --git a/src/tool_cfgable.c b/src/tool_cfgable.c
index 755195ce..81e16c1c 100644
--- a/src/tool_cfgable.c
+++ b/src/tool_cfgable.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -42,6 +42,7 @@ void config_init(struct OperationConfig* config)
config->proto_redir_present = FALSE;
config->proto_default = NULL;
config->tcp_nodelay = TRUE; /* enabled by default */
+ config->happy_eyeballs_timeout_ms = CURL_HET_DEFAULT;
}
static void free_config_fields(struct OperationConfig *config)
@@ -113,6 +114,7 @@ static void free_config_fields(struct OperationConfig *config)
Curl_safefree(config->proxy_capath);
Curl_safefree(config->crlfile);
Curl_safefree(config->pinnedpubkey);
+ Curl_safefree(config->proxy_pinnedpubkey);
Curl_safefree(config->proxy_crlfile);
Curl_safefree(config->key);
Curl_safefree(config->proxy_key);
diff --git a/src/tool_cfgable.h b/src/tool_cfgable.h
index ddfc9bfc..743ce725 100644
--- a/src/tool_cfgable.h
+++ b/src/tool_cfgable.h
@@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -128,6 +128,7 @@ struct OperationConfig {
char *crlfile;
char *proxy_crlfile;
char *pinnedpubkey;
+ char *proxy_pinnedpubkey;
char *key;
char *proxy_key;
char *key_type;
@@ -168,7 +169,7 @@ struct OperationConfig {
long proxy_ssl_version;
long ip_version;
curl_TimeCond timecond;
- time_t condtime;
+ curl_off_t condtime;
struct curl_slist *headers;
struct curl_slist *proxyheaders;
curl_mime *mimepost;
@@ -249,6 +250,8 @@ struct OperationConfig {
curl_error synthetic_error; /* if non-zero, it overrides any libcurl
error */
bool ssh_compression; /* enable/disable SSH compression */
+ long happy_eyeballs_timeout_ms; /* happy eyeballs timeout in milliseconds.
+ 0 is valid. default: CURL_HET_DEFAULT. */
struct GlobalConfig *global;
struct OperationConfig *prev;
struct OperationConfig *next; /* Always last in the struct */
diff --git a/src/tool_dirhie.c b/src/tool_dirhie.c
index 1d735920..a01f9dc5 100644
--- a/src/tool_dirhie.c
+++ b/src/tool_dirhie.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -41,9 +41,9 @@
# endif
#endif
-#ifdef WIN32
+#if defined(WIN32) || (defined(MSDOS) && !defined(__DJGPP__))
# define mkdir(x,y) (mkdir)((x))
-# ifndef __POCC__
+# ifndef F_OK
# define F_OK 0
# endif
#endif
@@ -91,7 +91,7 @@ static void show_dir_errno(FILE *errors, const char *name)
* should create all the dir* automagically
*/
-#ifdef WIN32
+#if defined(WIN32) || defined(__DJGPP__)
/* systems that may use either or when specifying a path */
#define PATH_DELIMITERS "\\/"
#else
diff --git a/src/tool_filetime.c b/src/tool_filetime.c
new file mode 100644
index 00000000..6071e44d
--- /dev/null
+++ b/src/tool_filetime.c
@@ -0,0 +1,154 @@
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_filetime.h"
+
+#ifdef HAVE_UTIME_H
+# include <utime.h>
+#elif defined(HAVE_SYS_UTIME_H)
+# include <sys/utime.h>
+#endif
+
+curl_off_t getfiletime(const char *filename, FILE *error_stream)
+{
+ curl_off_t result = -1;
+
+/* Windows stat() may attempt to adjust the unix GMT file time by a daylight
+ saving time offset and since it's GMT that is bad behavior. When we have
+ access to a 64-bit type we can bypass stat and get the times directly. */
+#if defined(WIN32) && (SIZEOF_CURL_OFF_T >= 8)
+ HANDLE hfile;
+
+ hfile = CreateFileA(filename, FILE_READ_ATTRIBUTES,
+ (FILE_SHARE_READ | FILE_SHARE_WRITE |
+ FILE_SHARE_DELETE),
+ NULL, OPEN_EXISTING, 0, NULL);
+ if(hfile != INVALID_HANDLE_VALUE) {
+ FILETIME ft;
+ if(GetFileTime(hfile, NULL, NULL, &ft)) {
+ curl_off_t converted = (curl_off_t)ft.dwLowDateTime
+ | ((curl_off_t)ft.dwHighDateTime) << 32;
+
+ if(converted < CURL_OFF_T_C(116444736000000000)) {
+ fprintf(error_stream,
+ "Failed to get filetime: underflow\n");
+ }
+ else {
+ result = (converted - CURL_OFF_T_C(116444736000000000)) / 10000000;
+ }
+ }
+ else {
+ fprintf(error_stream,
+ "Failed to get filetime: "
+ "GetFileTime failed: GetLastError %u\n",
+ (unsigned int)GetLastError());
+ }
+ CloseHandle(hfile);
+ }
+ else if(GetLastError() != ERROR_FILE_NOT_FOUND) {
+ fprintf(error_stream,
+ "Failed to get filetime: "
+ "CreateFile failed: GetLastError %u\n",
+ (unsigned int)GetLastError());
+ }
+#else
+ struct_stat statbuf;
+ if(-1 != stat(filename, &statbuf)) {
+ result = (curl_off_t)statbuf.st_mtime;
+ }
+ else if(errno != ENOENT) {
+ fprintf(error_stream,
+ "Failed to get filetime: %s\n", strerror(errno));
+ }
+#endif
+ return result;
+}
+
+#if defined(HAVE_UTIME) || defined(HAVE_UTIMES) || \
+ (defined(WIN32) && (SIZEOF_CURL_OFF_T >= 8))
+void setfiletime(curl_off_t filetime, const char *filename,
+ FILE *error_stream)
+{
+ if(filetime >= 0) {
+/* Windows utime() may attempt to adjust the unix GMT file time by a daylight
+ saving time offset and since it's GMT that is bad behavior. When we have
+ access to a 64-bit type we can bypass utime and set the times directly. */
+#if defined(WIN32) && (SIZEOF_CURL_OFF_T >= 8)
+ HANDLE hfile;
+
+ /* 910670515199 is the maximum unix filetime that can be used as a
+ Windows FILETIME without overflow: 30827-12-31T23:59:59. */
+ if(filetime > CURL_OFF_T_C(910670515199)) {
+ fprintf(error_stream,
+ "Failed to set filetime %" CURL_FORMAT_CURL_OFF_T
+ " on outfile: overflow\n", filetime);
+ return;
+ }
+
+ hfile = CreateFileA(filename, FILE_WRITE_ATTRIBUTES,
+ (FILE_SHARE_READ | FILE_SHARE_WRITE |
+ FILE_SHARE_DELETE),
+ NULL, OPEN_EXISTING, 0, NULL);
+ if(hfile != INVALID_HANDLE_VALUE) {
+ curl_off_t converted = ((curl_off_t)filetime * 10000000) +
+ CURL_OFF_T_C(116444736000000000);
+ FILETIME ft;
+ ft.dwLowDateTime = (DWORD)(converted & 0xFFFFFFFF);
+ ft.dwHighDateTime = (DWORD)(converted >> 32);
+ if(!SetFileTime(hfile, NULL, &ft, &ft)) {
+ fprintf(error_stream,
+ "Failed to set filetime %" CURL_FORMAT_CURL_OFF_T
+ " on outfile: SetFileTime failed: GetLastError %u\n",
+ filetime, (unsigned int)GetLastError());
+ }
+ CloseHandle(hfile);
+ }
+ else {
+ fprintf(error_stream,
+ "Failed to set filetime %" CURL_FORMAT_CURL_OFF_T
+ " on outfile: CreateFile failed: GetLastError %u\n",
+ filetime, (unsigned int)GetLastError());
+ }
+
+#elif defined(HAVE_UTIMES)
+ struct timeval times[2];
+ times[0].tv_sec = times[1].tv_sec = (time_t)filetime;
+ times[0].tv_usec = times[1].tv_usec = 0;
+ if(utimes(filename, times)) {
+ fprintf(error_stream,
+ "Failed to set filetime %" CURL_FORMAT_CURL_OFF_T
+ " on outfile: %s\n", filetime, strerror(errno));
+ }
+
+#elif defined(HAVE_UTIME)
+ struct utimbuf times;
+ times.actime = (time_t)filetime;
+ times.modtime = (time_t)filetime;
+ if(utime(filename, &times)) {
+ fprintf(error_stream,
+ "Failed to set filetime %" CURL_FORMAT_CURL_OFF_T
+ " on outfile: %s\n", filetime, strerror(errno));
+ }
+#endif
+ }
+}
+#endif /* defined(HAVE_UTIME) || defined(HAVE_UTIMES) || \
+ (defined(WIN32) && (SIZEOF_CURL_OFF_T >= 8)) */
diff --git a/src/tool_filetime.h b/src/tool_filetime.h
new file mode 100644
index 00000000..966a70b4
--- /dev/null
+++ b/src/tool_filetime.h
@@ -0,0 +1,38 @@
+#ifndef HEADER_CURL_TOOL_FILETIME_H
+#define HEADER_CURL_TOOL_FILETIME_H
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+curl_off_t getfiletime(const char *filename, FILE *error_stream);
+
+#if defined(HAVE_UTIME) || defined(HAVE_UTIMES) || \
+ (defined(WIN32) && (SIZEOF_CURL_OFF_T >= 8))
+void setfiletime(curl_off_t filetime, const char *filename,
+ FILE *error_stream);
+#else
+#define setfiletime(a,b,c) Curl_nop_stmt
+#endif /* defined(HAVE_UTIME) || defined(HAVE_UTIMES) || \
+ (defined(WIN32) && (SIZEOF_CURL_OFF_T >= 8)) */
+
+#endif /* HEADER_CURL_TOOL_FILETIME_H */
+
diff --git a/src/tool_getparam.c b/src/tool_getparam.c
index 3f404641..7ce9c28c 100644
--- a/src/tool_getparam.c
+++ b/src/tool_getparam.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -31,6 +31,7 @@
#include "tool_cfgable.h"
#include "tool_cb_prg.h"
#include "tool_convert.h"
+#include "tool_filetime.h"
#include "tool_formparse.h"
#include "tool_getparam.h"
#include "tool_helpers.h"
@@ -189,6 +190,7 @@ static const struct LongShort aliases[]= {
{"$X", "tls-max", ARG_STRING},
{"$Y", "suppress-connect-headers", ARG_BOOL},
{"$Z", "compressed-ssh", ARG_BOOL},
+ {"$~", "happy-eyeballs-timeout-ms", ARG_STRING},
{"0", "http1.0", ARG_NONE},
{"01", "http1.1", ARG_NONE},
{"02", "http2", ARG_NONE},
@@ -232,6 +234,7 @@ static const struct LongShort aliases[]= {
{"En", "ssl-allow-beast", ARG_BOOL},
{"Eo", "login-options", ARG_STRING},
{"Ep", "pinnedpubkey", ARG_STRING},
+ {"EP", "proxy-pinnedpubkey", ARG_STRING},
{"Eq", "cert-status", ARG_BOOL},
{"Er", "false-start", ARG_BOOL},
{"Es", "ssl-no-revoke", ARG_BOOL},
@@ -652,7 +655,8 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
break;
case 'j': /* --compressed */
- if(toggle && !(curlinfo->features & CURL_VERSION_LIBZ))
+ if(toggle &&
+ !(curlinfo->features & (CURL_VERSION_LIBZ | CURL_VERSION_BROTLI)))
return PARAM_LIBCURL_DOESNT_SUPPORT;
config->encoding = toggle;
break;
@@ -1109,6 +1113,12 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
case 'Z': /* --compressed-ssh */
config->ssh_compression = toggle;
break;
+ case '~': /* --happy-eyeballs-timeout-ms */
+ err = str2unum(&config->happy_eyeballs_timeout_ms, nextarg);
+ if(err)
+ return err;
+ /* 0 is a valid value for this timeout */
+ break;
}
break;
case '#': /* --progress-bar */
@@ -1500,6 +1510,10 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
GetStr(&config->pinnedpubkey, nextarg);
break;
+ case 'P': /* proxy pinned public key */
+ GetStr(&config->proxy_pinnedpubkey, nextarg);
+ break;
+
case 'q': /* --cert-status */
config->verifystatus = TRUE;
break;
@@ -2082,11 +2096,15 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
break;
}
now = time(NULL);
- config->condtime = curl_getdate(nextarg, &now);
- if(-1 == (int)config->condtime) {
+ config->condtime = (curl_off_t)curl_getdate(nextarg, &now);
+ if(-1 == config->condtime) {
/* now let's see if it is a file name to get the time from instead! */
- struct_stat statbuf;
- if(-1 == stat(nextarg, &statbuf)) {
+ curl_off_t filetime = getfiletime(nextarg, config->global->errors);
+ if(filetime >= 0) {
+ /* pull the time out from the file */
+ config->condtime = filetime;
+ }
+ else {
/* failed, remove time condition */
config->timecond = CURL_TIMECOND_NONE;
warnf(global,
@@ -2094,10 +2112,6 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
"a file name). Disabling time condition. "
"See curl_getdate(3) for valid date syntax.\n");
}
- else {
- /* pull the time out from the file */
- config->condtime = statbuf.st_mtime;
- }
}
break;
default: /* unknown flag */
diff --git a/src/tool_help.c b/src/tool_help.c
index 9dc59cb3..9796b7e8 100644
--- a/src/tool_help.c
+++ b/src/tool_help.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -160,6 +160,8 @@ static const struct helptxt helptext[] = {
"Put the post data in the URL and use GET"},
{"-g, --globoff",
"Disable URL sequences and ranges using {} and []"},
+ {" --happy-eyeballs-timeout-ms",
+ "How long to wait in milliseconds for IPv6 before trying IPv4"},
{"-I, --head",
"Show document info only"},
{"-H, --header <header/@file>",
@@ -314,6 +316,8 @@ static const struct helptxt helptext[] = {
"Use NTLM authentication on the proxy"},
{" --proxy-pass <phrase>",
"Pass phrase for the private key for HTTPS proxy"},
+ {" --proxy-pinnedpubkey <hashes>",
+ "FILE/HASHES public key to verify proxy with"},
{" --proxy-service-name <name>",
"SPNEGO proxy service name"},
{" --proxy-ssl-allow-beast",
@@ -505,7 +509,8 @@ static const struct feat feats[] = {
{"HTTP2", CURL_VERSION_HTTP2},
{"UnixSockets", CURL_VERSION_UNIX_SOCKETS},
{"HTTPS-proxy", CURL_VERSION_HTTPS_PROXY},
- {"MultiSSL", CURL_VERSION_MULTI_SSL}
+ {"MultiSSL", CURL_VERSION_MULTI_SSL},
+ {"PSL", CURL_VERSION_PSL},
};
void tool_help(void)
@@ -549,9 +554,6 @@ void tool_version_info(void)
#ifdef USE_METALINK
printf("Metalink ");
#endif
-#ifdef USE_LIBPSL
- printf("PSL ");
-#endif
puts(""); /* newline */
}
}
diff --git a/src/tool_hugehelp.c b/src/tool_hugehelp.c
index be8a4926..bc468ec8 100644
--- a/src/tool_hugehelp.c
+++ b/src/tool_hugehelp.c
@@ -956,27 +956,40 @@ void hugehelp(void)
" the < makes a text field and just get the contents for that text\n"
" field from a file.\n"
"\n"
-" Example: to send an image to an HTTP server, where 'profile' is\n"
+" Tell curl to read content from stdin instead of a file by using\n"
, stdout);
fputs(
-" the name of the form-field to which portrait.jpg will be the\n"
-" input:\n"
+" - as filename. This goes for both @ and < constructs. When stdin\n"
+" is used, the contents is buffered in memory first by curl to\n"
+" determine its size and allow a possible resend. Defining a\n"
+" part's data from a named non-regular file (such as a named pipe\n"
+" or similar) is unfortunately not subject to buffering and will\n"
+" be effectively read at transmission time; since the full size is\n"
+, stdout);
+ fputs(
+" unknown before the transfer starts, such data is sent as chunks\n"
+" by HTTP and rejected by IMAP.\n"
+"\n"
+" Example: send an image to an HTTP server, where 'profile' is the\n"
+" name of the form-field to which the file portrait.jpg will be\n"
+" the input:\n"
"\n"
" curl -F profile=@portrait.jpg https://example.com/upload.cgi\n"
"\n"
-" To read content from stdin instead of a file, use - as the file-\n"
-" name. This goes for both @ and < constructs. If stdin is not\n"
-" attached to a regular file, it is buffered first to determine\n"
-" its size and allow a possible resend. Defining a part's data\n"
+" Example: send a your name and shoe size in two text fields to\n"
+" the server:\n"
+"\n"
, stdout);
fputs(
-" from a named non-regular file (such as a named pipe or similar)\n"
-" is unfortunately not subject to buffering and will be effec-\n"
-" tively read at transmission time; since the full size is unknown\n"
-" before the transfer starts, data is sent as chunks by HTTP and\n"
-" rejected by IMAP.\n"
+" curl -F name=John -F shoesize=11 https://example.com/\n"
+"\n"
+" Example: send a your essay in a text field to the server. Send\n"
+" it as a plain text field, but get the contents for it from a\n"
+" local file:\n"
+"\n"
+" curl -F \"story=<hugefile.txt\" https://example.com/\n"
"\n"
-" You can also tell curl what Content-Type to use by using\n"
+" You can also tell curl what Content-Type to use by using\n"
" 'type=', in a manner similar to:\n"
"\n"
, stdout);
@@ -987,36 +1000,36 @@ void hugehelp(void)
"\n"
" curl -F \"name=daniel;type=text/foo\" example.com\n"
"\n"
-" You can also explicitly change the name field of a file upload\n"
+" You can also explicitly change the name field of a file upload\n"
" part by setting filename=, like this:\n"
"\n"
" curl -F \"file=@localfile;filename=nameinpost\" example.com\n"
"\n"
-" If filename/path contains ',' or ';', it must be quoted by dou-\n"
+" If filename/path contains ',' or ';', it must be quoted by dou-\n"
" ble-quotes like:\n"
"\n"
, stdout);
fputs(
-" curl -F \"file=@\\\"localfile\\\";filename=\\\"nameinpost\\\"\" exam-\n"
+" curl -F \"file=@\\\"localfile\\\";filename=\\\"nameinpost\\\"\" exam-\n"
" ple.com\n"
"\n"
" or\n"
"\n"
" curl -F 'file=@\"localfile\";filename=\"nameinpost\"' example.com\n"
"\n"
-" Note that if a filename/path is quoted by double-quotes, any\n"
+" Note that if a filename/path is quoted by double-quotes, any\n"
" double-quote or backslash within the filename must be escaped by\n"
" backslash.\n"
"\n"
-" Quoting must also be applied to non-file data if it contains\n"
+" Quoting must also be applied to non-file data if it contains\n"
, stdout);
fputs(
" semicolons, leading/trailing spaces or leading double quotes:\n"
"\n"
-" curl -F 'colors=\"red; green; blue\";type=text/x-myapp' exam-\n"
+" curl -F 'colors=\"red; green; blue\";type=text/x-myapp' exam-\n"
" ple.com\n"
"\n"
-" You can add custom headers to the field by setting headers=,\n"
+" You can add custom headers to the field by setting headers=,\n"
" like\n"
"\n"
" curl -F \"submit=OK;headers=\\\"X-submit-type: OK\\\"\" example.com\n"
@@ -1027,12 +1040,12 @@ void hugehelp(void)
"\n"
, stdout);
fputs(
-" The headers= keyword may appear more that once and above notes\n"
-" about quoting apply. When headers are read from a file, Empty\n"
+" The headers= keyword may appear more that once and above notes\n"
+" about quoting apply. When headers are read from a file, Empty\n"
" lines and lines starting with '#' are comments and ignored; each\n"
" header can be folded by splitting between two words and starting\n"
-" the continuation line with a space; embedded carriage-returns\n"
-" and trailing spaces are stripped. Here is an example of a\n"
+" the continuation line with a space; embedded carriage-returns\n"
+" and trailing spaces are stripped. Here is an example of a\n"
, stdout);
fputs(
" header file contents:\n"
@@ -1044,17 +1057,17 @@ void hugehelp(void)
" X-header-2: this is\n"
" another header\n"
"\n"
-" To support sending multipart mail messages, the syntax is\n"
+" To support sending multipart mail messages, the syntax is\n"
" extended as follows:\n"
-" - name can be omitted: the equal sign is the first character of\n"
+" - name can be omitted: the equal sign is the first character of\n"
" the argument,\n"
, stdout);
fputs(
-" - if data starts with '(', this signals to start a new multi-\n"
+" - if data starts with '(', this signals to start a new multi-\n"
" part: it can be followed by a content type specification.\n"
" - a multipart can be terminated with a '=)' argument.\n"
"\n"
-" Example: the following command sends an SMTP mime e-mail con-\n"
+" Example: the following command sends an SMTP mime e-mail con-\n"
" sisting in an inline part in two alternative formats: plain text\n"
" and HTML. It attaches a text file:\n"
"\n"
@@ -1065,16 +1078,16 @@ void hugehelp(void)
" -F '= <body>HTML message</body>;type=text/html' \\\n"
" -F '=)' -F '=@textfile.txt' ... smtp://example.com\n"
"\n"
-" Data can be encoded for transfer using encoder=. Available\n"
-" encodings are binary and 8bit that do nothing else than adding\n"
-" the corresponding Content-Transfer-Encoding header, 7bit that\n"
+" Data can be encoded for transfer using encoder=. Available\n"
+" encodings are binary and 8bit that do nothing else than adding\n"
+" the corresponding Content-Transfer-Encoding header, 7bit that\n"
, stdout);
fputs(
-" only rejects 8-bit characters with a transfer error, quoted-\n"
-" printable and base64 that encodes data according to the corre-\n"
+" only rejects 8-bit characters with a transfer error, quoted-\n"
+" printable and base64 that encodes data according to the corre-\n"
" sponding schemes, limiting lines length to 76 characters.\n"
"\n"
-" Example: send multipart mail with a quoted-printable text mes-\n"
+" Example: send multipart mail with a quoted-printable text mes-\n"
" sage and a base64 attached file:\n"
"\n"
" curl -F '=text message;encoder=quoted-printable' \\\n"
@@ -1090,7 +1103,7 @@ void hugehelp(void)
"\n"
" --ftp-account <data>\n"
" (FTP) When an FTP server asks for \"account data\" after user name\n"
-" and password has been provided, this data is sent off using the\n"
+" and password has been provided, this data is sent off using the\n"
" ACCT command.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
@@ -1100,46 +1113,46 @@ void hugehelp(void)
" Added in 7.13.0.\n"
"\n"
" --ftp-alternative-to-user <command>\n"
-" (FTP) If authenticating with the USER and PASS commands fails,\n"
-" send this command. When connecting to Tumbleweed's Secure\n"
-" Transport server over FTPS using a client certificate, using\n"
-" \"SITE AUTH\" will tell the server to retrieve the username from\n"
+" (FTP) If authenticating with the USER and PASS commands fails,\n"
+" send this command. When connecting to Tumbleweed's Secure\n"
+" Transport server over FTPS using a client certificate, using\n"
+" \"SITE AUTH\" will tell the server to retrieve the username from\n"
" the certificate.\n"
" Added in 7.15.5.\n"
"\n"
" --ftp-create-dirs\n"
, stdout);
fputs(
-" (FTP SFTP) When an FTP or SFTP URL/operation uses a path that\n"
-" doesn't currently exist on the server, the standard behavior of\n"
+" (FTP SFTP) When an FTP or SFTP URL/operation uses a path that\n"
+" doesn't currently exist on the server, the standard behavior of\n"
" curl is to fail. Using this option, curl will instead attempt to\n"
" create missing directories.\n"
"\n"
" See also --create-dirs.\n"
"\n"
" --ftp-method <method>\n"
-" (FTP) Control what method curl should use to reach a file on an\n"
+" (FTP) Control what method curl should use to reach a file on an\n"
, stdout);
fputs(
-" FTP(S) server. The method argument should be one of the follow-\n"
+" FTP(S) server. The method argument should be one of the follow-\n"
" ing alternatives:\n"
"\n"
" multicwd\n"
-" curl does a single CWD operation for each path part in\n"
-" the given URL. For deep hierarchies this means very many\n"
-" commands. This is how RFC 1738 says it should be done.\n"
+" curl does a single CWD operation for each path part in\n"
+" the given URL. For deep hierarchies this means very many\n"
+" commands. This is how RFC 1738 says it should be done.\n"
" This is the default but the slowest behavior.\n"
"\n"
, stdout);
fputs(
-" nocwd curl does no CWD at all. curl will do SIZE, RETR, STOR\n"
+" nocwd curl does no CWD at all. curl will do SIZE, RETR, STOR\n"
" etc and give a full path to the server for all these com-\n"
" mands. This is the fastest behavior.\n"
"\n"
" singlecwd\n"
" curl does one CWD with the full target directory and then\n"
-" operates on the file \"normally\" (like in the multicwd\n"
-" case). This is somewhat more standards compliant than\n"
+" operates on the file \"normally\" (like in the multicwd\n"
+" case). This is somewhat more standards compliant than\n"
, stdout);
fputs(
" 'nocwd' but without the full penalty of 'multicwd'.\n"
@@ -1147,12 +1160,12 @@ void hugehelp(void)
" Added in 7.15.1.\n"
"\n"
" --ftp-pasv\n"
-" (FTP) Use passive mode for the data connection. Passive is the\n"
-" internal default behavior, but using this option can be used to\n"
+" (FTP) Use passive mode for the data connection. Passive is the\n"
+" internal default behavior, but using this option can be used to\n"
" override a previous -P, --ftp-port option.\n"
"\n"
-" If this option is used several times, only the first one is\n"
-" used. Undoing an enforced passive really isn't doable but you\n"
+" If this option is used several times, only the first one is\n"
+" used. Undoing an enforced passive really isn't doable but you\n"
, stdout);
fputs(
" must then instead enforce the correct -P, --ftp-port again.\n"
@@ -1162,17 +1175,17 @@ void hugehelp(void)
" See also --disable-epsv. Added in 7.11.0.\n"
"\n"
" -P, --ftp-port <address>\n"
-" (FTP) Reverses the default initiator/listener roles when con-\n"
-" necting with FTP. This option makes curl use active mode. curl\n"
+" (FTP) Reverses the default initiator/listener roles when con-\n"
+" necting with FTP. This option makes curl use active mode. curl\n"
, stdout);
fputs(
-" then tells the server to connect back to the client's specified\n"
+" then tells the server to connect back to the client's specified\n"
" address and port, while passive mode asks the server to setup an\n"
-" IP address and port for it to connect to. <address> should be\n"
+" IP address and port for it to connect to. <address> should be\n"
" one of:\n"
"\n"
" interface\n"
-" i.e \"eth0\" to specify which interface's IP address you\n"
+" i.e \"eth0\" to specify which interface's IP address you\n"
" want to use (Unix only)\n"
"\n"
" IP address\n"
@@ -1183,20 +1196,20 @@ void hugehelp(void)
" host name\n"
" i.e \"my.host.domain\" to specify the machine\n"
"\n"
-" - make curl pick the same IP address that is already used\n"
+" - make curl pick the same IP address that is already used\n"
" for the control connection\n"
"\n"
-" If this option is used several times, the last one will be used. Dis-\n"
-" able the use of PORT with --ftp-pasv. Disable the attempt to use the\n"
+" If this option is used several times, the last one will be used. Dis-\n"
+" able the use of PORT with --ftp-pasv. Disable the attempt to use the\n"
, stdout);
fputs(
-" EPRT command instead of PORT by using --disable-eprt. EPRT is really\n"
+" EPRT command instead of PORT by using --disable-eprt. EPRT is really\n"
" PORT++.\n"
"\n"
-" Since 7.19.5, you can append \":[start]-[end]\" to the right of the\n"
-" address, to tell curl what TCP port range to use. That means you spec-\n"
-" ify a port range, from a lower to a higher number. A single number\n"
-" works as well, but do note that it increases the risk of failure since\n"
+" Since 7.19.5, you can append \":[start]-[end]\" to the right of the\n"
+" address, to tell curl what TCP port range to use. That means you spec-\n"
+" ify a port range, from a lower to a higher number. A single number\n"
+" works as well, but do note that it increases the risk of failure since\n"
" the port may not be available.\n"
"\n"
" See also --ftp-pasv and --disable-eprt.\n"
@@ -1204,28 +1217,28 @@ void hugehelp(void)
, stdout);
fputs(
" --ftp-pret\n"
-" (FTP) Tell curl to send a PRET command before PASV (and EPSV).\n"
-" Certain FTP servers, mainly drftpd, require this non-standard\n"
-" command for directory listings as well as up and downloads in\n"
+" (FTP) Tell curl to send a PRET command before PASV (and EPSV).\n"
+" Certain FTP servers, mainly drftpd, require this non-standard\n"
+" command for directory listings as well as up and downloads in\n"
" PASV mode.\n"
"\n"
" Added in 7.20.0.\n"
"\n"
" --ftp-skip-pasv-ip\n"
" (FTP) Tell curl to not use the IP address the server suggests in\n"
-" its response to curl's PASV command when curl connects the data\n"
+" its response to curl's PASV command when curl connects the data\n"
, stdout);
fputs(
-" connection. Instead curl will re-use the same IP address it\n"
+" connection. Instead curl will re-use the same IP address it\n"
" already uses for the control connection.\n"
"\n"
-" This option has no effect if PORT, EPRT or EPSV is used instead\n"
+" This option has no effect if PORT, EPRT or EPSV is used instead\n"
" of PASV.\n"
"\n"
" See also --ftp-pasv. Added in 7.14.2.\n"
"\n"
" --ftp-ssl-ccc-mode <active/passive>\n"
-" (FTP) Sets the CCC mode. The passive mode will not initiate the\n"
+" (FTP) Sets the CCC mode. The passive mode will not initiate the\n"
" shutdown, but instead wait for the server to do it, and will not\n"
, stdout);
fputs(
@@ -1235,9 +1248,9 @@ void hugehelp(void)
" See also --ftp-ssl-ccc. Added in 7.16.2.\n"
"\n"
" --ftp-ssl-ccc\n"
-" (FTP) Use CCC (Clear Command Channel) Shuts down the SSL/TLS\n"
+" (FTP) Use CCC (Clear Command Channel) Shuts down the SSL/TLS\n"
" layer after authenticating. The rest of the control channel com-\n"
-" munication will be unencrypted. This allows NAT routers to fol-\n"
+" munication will be unencrypted. This allows NAT routers to fol-\n"
, stdout);
fputs(
" low the FTP transaction. The default mode is passive.\n"
@@ -1245,9 +1258,9 @@ void hugehelp(void)
" See also --ssl and --ftp-ssl-ccc-mode. Added in 7.16.1.\n"
"\n"
" --ftp-ssl-control\n"
-" (FTP) Require SSL/TLS for the FTP login, clear for transfer.\n"
-" Allows secure authentication, but non-encrypted data transfers\n"
-" for efficiency. Fails the transfer if the server doesn't sup-\n"
+" (FTP) Require SSL/TLS for the FTP login, clear for transfer.\n"
+" Allows secure authentication, but non-encrypted data transfers\n"
+" for efficiency. Fails the transfer if the server doesn't sup-\n"
" port SSL/TLS.\n"
"\n"
" Added in 7.16.0.\n"
@@ -1255,63 +1268,85 @@ void hugehelp(void)
" -G, --get\n"
, stdout);
fputs(
-" When used, this option will make all data specified with -d,\n"
-" --data, --data-binary or --data-urlencode to be used in an HTTP\n"
-" GET request instead of the POST request that otherwise would be\n"
+" When used, this option will make all data specified with -d,\n"
+" --data, --data-binary or --data-urlencode to be used in an HTTP\n"
+" GET request instead of the POST request that otherwise would be\n"
" used. The data will be appended to the URL with a '?' separator.\n"
-" If used in combination with -I, --head, the POST data will\n"
+" If used in combination with -I, --head, the POST data will\n"
" instead be appended to the URL with a HEAD request.\n"
"\n"
, stdout);
fputs(
-" If this option is used several times, only the first one is\n"
-" used. This is because undoing a GET doesn't make sense, but you\n"
+" If this option is used several times, only the first one is\n"
+" used. This is because undoing a GET doesn't make sense, but you\n"
" should then instead enforce the alternative method you prefer.\n"
"\n"
" -g, --globoff\n"
" This option switches off the \"URL globbing parser\". When you set\n"
-" this option, you can specify URLs that contain the letters {}[]\n"
-" without having them being interpreted by curl itself. Note that\n"
+" this option, you can specify URLs that contain the letters {}[]\n"
+" without having them being interpreted by curl itself. Note that\n"
, stdout);
fputs(
-" these letters are not normal legal URL contents but they should\n"
+" these letters are not normal legal URL contents but they should\n"
" be encoded according to the URI standard.\n"
"\n"
+" --happy-eyeballs-timeout-ms <milliseconds>\n"
+" Happy eyeballs is an algorithm that attempts to connect to both\n"
+" IPv4 and IPv6 addresses for dual-stack hosts, preferring IPv6\n"
+" first for the number of milliseconds. If the IPv6 address cannot\n"
+, stdout);
+ fputs(
+" be connected to within that time then a connection attempt is\n"
+" made to the IPv4 address in parallel. The first connection to be\n"
+" established is the one that is used.\n"
+"\n"
+" The range of suggested useful values is limited. Happy Eyeballs\n"
+" RFC 6555 says \"It is RECOMMENDED that connection attempts be\n"
+" paced 150-250 ms apart to balance human factors against network\n"
+, stdout);
+ fputs(
+" load.\" libcurl currently defaults to 200 ms. Firefox and Chrome\n"
+" currently default to 300 ms.\n"
+"\n"
+" If this option is used several times, the last one will be used.\n"
+"\n"
+" Added in 7.59.0.\n"
+"\n"
" -I, --head\n"
" (HTTP FTP FILE) Fetch the headers only! HTTP-servers feature the\n"
" command HEAD which this uses to get nothing but the header of a\n"
" document. When used on an FTP or FILE file, curl displays the\n"
+, stdout);
+ fputs(
" file size and last modification time only.\n"
"\n"
" -H, --header <header/@file>\n"
-, stdout);
- fputs(
" (HTTP) Extra header to include in the request when sending HTTP\n"
" to a server. You may specify any number of extra headers. Note\n"
" that if you should add a custom header that has the same name as\n"
" one of the internal ones curl would use, your externally set\n"
" header will be used instead of the internal one. This allows you\n"
-" to make even trickier stuff than curl would normally do. You\n"
, stdout);
fputs(
+" to make even trickier stuff than curl would normally do. You\n"
" should not replace internally set headers without knowing per-\n"
" fectly well what you're doing. Remove an internal header by giv-\n"
" ing a replacement without content on the right side of the\n"
" colon, as in: -H \"Host:\". If you send the custom header with no-\n"
" value then its header must be terminated with a semicolon, such\n"
-" as -H \"X-Custom-Header;\" to send \"X-Custom-Header:\".\n"
-"\n"
, stdout);
fputs(
+" as -H \"X-Custom-Header;\" to send \"X-Custom-Header:\".\n"
+"\n"
" curl will make sure that each header you add/replace is sent\n"
" with the proper end-of-line marker, you should thus not add that\n"
" as a part of the header content: do not add newlines or carriage\n"
" returns, they will only mess things up for you.\n"
"\n"
" Starting in 7.55.0, this option can take an argument in @file-\n"
-" name style, which then adds a header for each line in the input\n"
, stdout);
fputs(
+" name style, which then adds a header for each line in the input\n"
" file. Using @- will make curl read the header file from stdin.\n"
"\n"
" See also the -A, --user-agent and -e, --referer options.\n"
@@ -1323,9 +1358,9 @@ void hugehelp(void)
"\n"
" curl -H \"X-First-Name: Joe\" http://example.com/\n"
"\n"
-" WARNING: headers set with this option will be set in all\n"
, stdout);
fputs(
+" WARNING: headers set with this option will be set in all\n"
" requests - even after redirects are followed, like when told\n"
" with -L, --location. This can lead to the header being sent to\n"
" other hosts than the original host, so sensitive headers should\n"
@@ -1334,9 +1369,9 @@ void hugehelp(void)
" This option can be used multiple times to add/replace/remove\n"
" multiple headers.\n"
"\n"
-" -h, --help\n"
, stdout);
fputs(
+" -h, --help\n"
" Usage help. This lists all current command line options with a\n"
" short description.\n"
" --hostpubmd5 <md5>\n"
@@ -2116,33 +2151,34 @@ void hugehelp(void)
"\n"
" This progress bar draws a single line of '#' characters across\n"
" the screen and shows a percentage if the transfer size is known.\n"
-" For transfers without a known size, it will instead output one\n"
-" '#' character for every 1024 bytes transferred.\n"
+" For transfers without a known size, there will be space ship\n"
+" (-=o=-) that moves back and forth but only while data is being\n"
+" transferred, with a set of flying hash sign symbols on top.\n"
"\n"
" --proto-default <protocol>\n"
-" Tells curl to use protocol for any URL missing a scheme name.\n"
-"\n"
, stdout);
fputs(
+" Tells curl to use protocol for any URL missing a scheme name.\n"
+"\n"
" Example:\n"
"\n"
" curl --proto-default https ftp.mozilla.org\n"
"\n"
-" An unknown or unsupported protocol causes error CURLE_UNSUP-\n"
+" An unknown or unsupported protocol causes error CURLE_UNSUP-\n"
" PORTED_PROTOCOL (1).\n"
"\n"
" This option does not change the default proxy protocol (http).\n"
"\n"
-" Without this option curl would make a guess based on the host,\n"
+" Without this option curl would make a guess based on the host,\n"
" see --url for details.\n"
"\n"
+, stdout);
+ fputs(
" Added in 7.45.0.\n"
"\n"
" --proto-redir <protocols>\n"
-, stdout);
- fputs(
-" Tells curl to limit what protocols it may use on redirect. Pro-\n"
-" tocols denied by --proto are not overridden by this option. See\n"
+" Tells curl to limit what protocols it may use on redirect. Pro-\n"
+" tocols denied by --proto are not overridden by this option. See\n"
" --proto for how protocols are represented.\n"
"\n"
" Example, allow only HTTP and HTTPS on redirect:\n"
@@ -2152,30 +2188,30 @@ void hugehelp(void)
" By default curl will allow all protocols on redirect except sev-\n"
, stdout);
fputs(
-" eral disabled for security reasons: Since 7.19.4 FILE and SCP\n"
-" are disabled, and since 7.40.0 SMB and SMBS are also disabled.\n"
-" Specifying all or +all enables all protocols on redirect,\n"
+" eral disabled for security reasons: Since 7.19.4 FILE and SCP\n"
+" are disabled, and since 7.40.0 SMB and SMBS are also disabled.\n"
+" Specifying all or +all enables all protocols on redirect,\n"
" including those disabled for security.\n"
"\n"
" Added in 7.20.2.\n"
"\n"
" --proto <protocols>\n"
-" Tells curl to limit what protocols it may use in the transfer.\n"
+" Tells curl to limit what protocols it may use in the transfer.\n"
, stdout);
fputs(
-" Protocols are evaluated left to right, are comma separated, and\n"
+" Protocols are evaluated left to right, are comma separated, and\n"
" are each a protocol name or\n"
"\n"
" + Permit this protocol in addition to protocols already permit-\n"
" ted (this is the default if no modifier is used).\n"
"\n"
-" - Deny this protocol, removing it from the list of protocols\n"
+" - Deny this protocol, removing it from the list of protocols\n"
" already permitted.\n"
"\n"
-" = Permit only this protocol (ignoring the list already permit-\n"
+" = Permit only this protocol (ignoring the list already permit-\n"
, stdout);
fputs(
-" ted), though subject to later modification by subsequent\n"
+" ted), though subject to later modification by subsequent\n"
" entries in the comma separated list.\n"
"\n"
" For example:\n"
@@ -2192,7 +2228,7 @@ void hugehelp(void)
fputs(
" Unknown protocols produce a warning. This allows scripts to safely rely\n"
" on being able to disable potentially dangerous protocols, without rely-\n"
-" ing upon support for that protocol being built into curl to avoid an\n"
+" ing upon support for that protocol being built into curl to avoid an\n"
" error.\n"
"\n"
" This option can be used multiple times, in which case the effect is the\n"
@@ -2203,19 +2239,19 @@ void hugehelp(void)
" --proxy-anyauth\n"
, stdout);
fputs(
-" Tells curl to pick a suitable authentication method when commu-\n"
-" nicating with the given HTTP proxy. This might cause an extra\n"
+" Tells curl to pick a suitable authentication method when commu-\n"
+" nicating with the given HTTP proxy. This might cause an extra\n"
" request/response round-trip.\n"
"\n"
" See also -x, --proxy and --proxy-basic and --proxy-digest. Added\n"
" in 7.13.2.\n"
"\n"
" --proxy-basic\n"
-" Tells curl to use HTTP Basic authentication when communicating\n"
+" Tells curl to use HTTP Basic authentication when communicating\n"
" with the given proxy. Use --basic for enabling HTTP Basic with a\n"
, stdout);
fputs(
-" remote host. Basic is the default authentication method curl\n"
+" remote host. Basic is the default authentication method curl\n"
" uses with proxies.\n"
"\n"
" See also -x, --proxy and --proxy-anyauth and --proxy-digest.\n"
@@ -2223,7 +2259,7 @@ void hugehelp(void)
" --proxy-cacert <file>\n"
" Same as --cacert but used in HTTPS proxy context.\n"
"\n"
-" See also --proxy-capath and --cacert and --capath and -x,\n"
+" See also --proxy-capath and --cacert and --capath and -x,\n"
" --proxy. Added in 7.52.0.\n"
"\n"
" --proxy-capath <dir>\n"
@@ -2231,7 +2267,7 @@ void hugehelp(void)
"\n"
, stdout);
fputs(
-" See also --proxy-cacert and -x, --proxy and --capath. Added in\n"
+" See also --proxy-cacert and -x, --proxy and --capath. Added in\n"
" 7.52.0.\n"
"\n"
" --proxy-cert-type <type>\n"
@@ -2257,7 +2293,7 @@ void hugehelp(void)
" Added in 7.52.0.\n"
"\n"
" --proxy-digest\n"
-" Tells curl to use HTTP Digest authentication when communicating\n"
+" Tells curl to use HTTP Digest authentication when communicating\n"
" with the given proxy. Use --digest for enabling HTTP Digest with\n"
" a remote host.\n"
"\n"
@@ -2266,30 +2302,30 @@ void hugehelp(void)
" --proxy-header <header/@file>\n"
, stdout);
fputs(
-" (HTTP) Extra header to include in the request when sending HTTP\n"
+" (HTTP) Extra header to include in the request when sending HTTP\n"
" to a proxy. You may specify any number of extra headers. This is\n"
-" the equivalent option to -H, --header but is for proxy communi-\n"
-" cation only like in CONNECT requests when you want a separate\n"
-" header sent to the proxy to what is sent to the actual remote\n"
+" the equivalent option to -H, --header but is for proxy communi-\n"
+" cation only like in CONNECT requests when you want a separate\n"
+" header sent to the proxy to what is sent to the actual remote\n"
" host.\n"
"\n"
-" curl will make sure that each header you add/replace is sent\n"
+" curl will make sure that each header you add/replace is sent\n"
, stdout);
fputs(
" with the proper end-of-line marker, you should thus not add that\n"
" as a part of the header content: do not add newlines or carriage\n"
" returns, they will only mess things up for you.\n"
"\n"
-" Headers specified with this option will not be included in\n"
+" Headers specified with this option will not be included in\n"
" requests that curl knows will not be sent to a proxy.\n"
"\n"
-" Starting in 7.55.0, this option can take an argument in @file-\n"
+" Starting in 7.55.0, this option can take an argument in @file-\n"
, stdout);
fputs(
-" name style, which then adds a header for each line in the input\n"
+" name style, which then adds a header for each line in the input\n"
" file. Using @- will make curl read the header file from stdin.\n"
"\n"
-" This option can be used multiple times to add/replace/remove\n"
+" This option can be used multiple times to add/replace/remove\n"
" multiple headers.\n"
"\n"
" Added in 7.37.0.\n"
@@ -2309,7 +2345,7 @@ void hugehelp(void)
" Same as --key but used in HTTPS proxy context.\n"
"\n"
" --proxy-negotiate\n"
-" Tells curl to use HTTP Negotiate (SPNEGO) authentication when\n"
+" Tells curl to use HTTP Negotiate (SPNEGO) authentication when\n"
" communicating with the given proxy. Use --negotiate for enabling\n"
" HTTP Negotiate (SPNEGO) with a remote host.\n"
"\n"
@@ -2318,7 +2354,7 @@ void hugehelp(void)
" See also --proxy-anyauth and --proxy-basic. Added in 7.17.1.\n"
"\n"
" --proxy-ntlm\n"
-" Tells curl to use HTTP NTLM authentication when communicating\n"
+" Tells curl to use HTTP NTLM authentication when communicating\n"
" with the given proxy. Use --ntlm for enabling NTLM with a remote\n"
" host.\n"
"\n"
@@ -2329,10 +2365,29 @@ void hugehelp(void)
"\n"
" Added in 7.52.0.\n"
"\n"
+" --proxy-pinnedpubkey <hashes>\n"
+, stdout);
+ fputs(
+" (TLS) Tells curl to use the specified public key file (or\n"
+" hashes) to verify the proxy. This can be a path to a file which\n"
+" contains a single public key in PEM or DER format, or any number\n"
+" of base64 encoded sha256 hashes preceded by 'sha256//' and sepa-\n"
+" rated by ';'\n"
+"\n"
+" When negotiating a TLS or SSL connection, the server sends a\n"
+, stdout);
+ fputs(
+" certificate indicating its identity. A public key is extracted\n"
+" from this certificate and if it does not exactly match the pub-\n"
+" lic key provided to this option, curl will abort the connection\n"
+" before sending or receiving any data.\n"
+"\n"
+" If this option is used several times, the last one will be used.\n"
+"\n"
" --proxy-service-name <name>\n"
+" This option allows you to change the service name for proxy\n"
, stdout);
fputs(
-" This option allows you to change the service name for proxy\n"
" negotiation.\n"
"\n"
" Added in 7.43.0.\n"
@@ -2348,12 +2403,12 @@ void hugehelp(void)
" Added in 7.52.0.\n"
"\n"
" --proxy-tlspassword <string>\n"
-, stdout);
- fputs(
" Same as --tlspassword but used in HTTPS proxy context.\n"
"\n"
" Added in 7.52.0.\n"
"\n"
+, stdout);
+ fputs(
" --proxy-tlsuser <name>\n"
" Same as --tlsuser but used in HTTPS proxy context.\n"
"\n"
@@ -2365,13 +2420,13 @@ void hugehelp(void)
" Added in 7.52.0.\n"
"\n"
" -U, --proxy-user <user:password>\n"
-" Specify the user name and password to use for proxy authentica-\n"
+" Specify the user name and password to use for proxy authentica-\n"
" tion.\n"
"\n"
+" If you use a Windows SSPI-enabled curl binary and do either\n"
, stdout);
fputs(
-" If you use a Windows SSPI-enabled curl binary and do either\n"
-" Negotiate or NTLM authentication then you can tell curl to\n"
+" Negotiate or NTLM authentication then you can tell curl to\n"
" select the user name and password from your environment by spec-\n"
" ifying a single colon with this option: \"-U :\".\n"
"\n"
@@ -2380,34 +2435,34 @@ void hugehelp(void)
" -x, --proxy [protocol://]host[:port]\n"
" Use the specified proxy.\n"
"\n"
+" The proxy string can be specified with a protocol:// prefix. No\n"
, stdout);
fputs(
-" The proxy string can be specified with a protocol:// prefix. No\n"
" protocol specified or http:// will be treated as HTTP proxy. Use\n"
" socks4://, socks4a://, socks5:// or socks5h:// to request a spe-\n"
" cific SOCKS version to be used. (The protocol support was added\n"
" in curl 7.21.7)\n"
"\n"
-" HTTPS proxy support via https:// protocol prefix was added in\n"
+" HTTPS proxy support via https:// protocol prefix was added in\n"
" 7.52.0 for OpenSSL, GnuTLS and NSS.\n"
"\n"
+" Unrecognized and unsupported proxy protocols cause an error\n"
, stdout);
fputs(
-" Unrecognized and unsupported proxy protocols cause an error\n"
-" since 7.52.0. Prior versions may ignore the protocol and use\n"
+" since 7.52.0. Prior versions may ignore the protocol and use\n"
" http:// instead.\n"
"\n"
-" If the port number is not specified in the proxy string, it is\n"
+" If the port number is not specified in the proxy string, it is\n"
" assumed to be 1080.\n"
"\n"
-" This option overrides existing environment variables that set\n"
-" the proxy to use. If there's an environment variable setting a\n"
-, stdout);
- fputs(
+" This option overrides existing environment variables that set\n"
+" the proxy to use. If there's an environment variable setting a\n"
" proxy, you can set proxy to \"\" to override it.\n"
"\n"
+, stdout);
+ fputs(
" All operations that are performed over an HTTP proxy will trans-\n"
-" parently be converted to HTTP. It means that certain protocol\n"
+" parently be converted to HTTP. It means that certain protocol\n"
" specific operations might not be available. This is not the case\n"
" if you can tunnel through the proxy, as one with the -p, --prox-\n"
" ytunnel option.\n"
@@ -2415,11 +2470,11 @@ void hugehelp(void)
" User and password that might be provided in the proxy string are\n"
, stdout);
fputs(
-" URL decoded by curl. This allows you to pass in special charac-\n"
+" URL decoded by curl. This allows you to pass in special charac-\n"
" ters such as @ by using %40 or pass in a colon with %3a.\n"
"\n"
-" The proxy host can be specified the exact same way as the proxy\n"
-" environment variables, including the protocol prefix (http://)\n"
+" The proxy host can be specified the exact same way as the proxy\n"
+" environment variables, including the protocol prefix (http://)\n"
" and the embedded user + password.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
@@ -2427,24 +2482,24 @@ void hugehelp(void)
" --proxy1.0 <host[:port]>\n"
, stdout);
fputs(
-" Use the specified HTTP 1.0 proxy. If the port number is not\n"
+" Use the specified HTTP 1.0 proxy. If the port number is not\n"
" specified, it is assumed at port 1080.\n"
"\n"
-" The only difference between this and the HTTP proxy option -x,\n"
-" --proxy, is that attempts to use CONNECT through the proxy will\n"
+" The only difference between this and the HTTP proxy option -x,\n"
+" --proxy, is that attempts to use CONNECT through the proxy will\n"
" specify an HTTP 1.0 protocol instead of the default HTTP 1.1.\n"
"\n"
" -p, --proxytunnel\n"
-" When an HTTP proxy is used -x, --proxy, this option will cause\n"
+" When an HTTP proxy is used -x, --proxy, this option will cause\n"
, stdout);
fputs(
-" non-HTTP protocols to attempt to tunnel through the proxy\n"
-" instead of merely using it to do HTTP-like operations. The tun-\n"
-" nel approach is made with the HTTP proxy CONNECT request and\n"
+" non-HTTP protocols to attempt to tunnel through the proxy\n"
+" instead of merely using it to do HTTP-like operations. The tun-\n"
+" nel approach is made with the HTTP proxy CONNECT request and\n"
" requires that the proxy allows direct connect to the remote port\n"
" number curl wants to tunnel through to.\n"
"\n"
-" To suppress proxy CONNECT response headers when curl is set to\n"
+" To suppress proxy CONNECT response headers when curl is set to\n"
, stdout);
fputs(
" output headers use --suppress-connect-headers.\n"
@@ -2457,54 +2512,54 @@ void hugehelp(void)
"\n"
" If this option is used several times, the last one will be used.\n"
" (As of 7.39.0, curl attempts to automatically extract the public\n"
-" key from the private key file, so passing this option is gener-\n"
+" key from the private key file, so passing this option is gener-\n"
, stdout);
fputs(
" ally not required. Note that this public key extraction requires\n"
-" libcurl to be linked against a copy of libssh2 1.2.8 or higher\n"
+" libcurl to be linked against a copy of libssh2 1.2.8 or higher\n"
" that is itself linked against OpenSSL.)\n"
"\n"
" -Q, --quote\n"
-" (FTP SFTP) Send an arbitrary command to the remote FTP or SFTP\n"
-" server. Quote commands are sent BEFORE the transfer takes place\n"
-" (just after the initial PWD command in an FTP transfer, to be\n"
+" (FTP SFTP) Send an arbitrary command to the remote FTP or SFTP\n"
+" server. Quote commands are sent BEFORE the transfer takes place\n"
+" (just after the initial PWD command in an FTP transfer, to be\n"
, stdout);
fputs(
" exact). To make commands take place after a successful transfer,\n"
-" prefix them with a dash '-'. To make commands be sent after\n"
+" prefix them with a dash '-'. To make commands be sent after\n"
" curl has changed the working directory, just before the transfer\n"
-" command(s), prefix the command with a '+' (this is only sup-\n"
+" command(s), prefix the command with a '+' (this is only sup-\n"
" ported for FTP). You may specify any number of commands.\n"
"\n"
-" If the server returns failure for one of the commands, the\n"
+" If the server returns failure for one of the commands, the\n"
, stdout);
fputs(
-" entire operation will be aborted. You must send syntactically\n"
-" correct FTP commands as RFC 959 defines to FTP servers, or one\n"
+" entire operation will be aborted. You must send syntactically\n"
+" correct FTP commands as RFC 959 defines to FTP servers, or one\n"
" of the commands listed below to SFTP servers.\n"
"\n"
-" This option can be used multiple times. When speaking to an FTP\n"
-" server, prefix the command with an asterisk (*) to make curl\n"
-" continue even if the command fails as by default curl will stop\n"
+" This option can be used multiple times. When speaking to an FTP\n"
+" server, prefix the command with an asterisk (*) to make curl\n"
+" continue even if the command fails as by default curl will stop\n"
" at first failure.\n"
"\n"
, stdout);
fputs(
-" SFTP is a binary protocol. Unlike for FTP, curl interprets SFTP\n"
-" quote commands itself before sending them to the server. File\n"
+" SFTP is a binary protocol. Unlike for FTP, curl interprets SFTP\n"
+" quote commands itself before sending them to the server. File\n"
" names may be quoted shell-style to embed spaces or special char-\n"
-" acters. Following is the list of all supported SFTP quote com-\n"
+" acters. Following is the list of all supported SFTP quote com-\n"
" mands:\n"
"\n"
" chgrp group file\n"
-" The chgrp command sets the group ID of the file named by\n"
+" The chgrp command sets the group ID of the file named by\n"
, stdout);
fputs(
-" the file operand to the group ID specified by the group\n"
+" the file operand to the group ID specified by the group\n"
" operand. The group operand is a decimal integer group ID.\n"
"\n"
" chmod mode file\n"
-" The chmod command modifies the file mode bits of the\n"
+" The chmod command modifies the file mode bits of the\n"
" specified file. The mode operand is an octal integer mode\n"
" number.\n"
"\n"
@@ -2512,16 +2567,16 @@ void hugehelp(void)
" The chown command sets the owner of the file named by the\n"
, stdout);
fputs(
-" file operand to the user ID specified by the user oper-\n"
+" file operand to the user ID specified by the user oper-\n"
" and. The user operand is a decimal integer user ID.\n"
"\n"
" ln source_file target_file\n"
" The ln and symlink commands create a symbolic link at the\n"
-" target_file location pointing to the source_file loca-\n"
+" target_file location pointing to the source_file loca-\n"
" tion.\n"
"\n"
" mkdir directory_name\n"
-" The mkdir command creates the directory named by the\n"
+" The mkdir command creates the directory named by the\n"
, stdout);
fputs(
" directory_name operand.\n"
@@ -2531,7 +2586,7 @@ void hugehelp(void)
"\n"
" rename source target\n"
" The rename command renames the file or directory named by\n"
-" the source operand to the destination path named by the\n"
+" the source operand to the destination path named by the\n"
" target operand.\n"
"\n"
" rm file\n"
@@ -2541,7 +2596,7 @@ void hugehelp(void)
" erand.\n"
"\n"
" rmdir directory\n"
-" The rmdir command removes the directory entry specified\n"
+" The rmdir command removes the directory entry specified\n"
" by the directory operand, provided it is empty.\n"
"\n"
" symlink source_file target_file\n"
@@ -2551,12 +2606,12 @@ void hugehelp(void)
" Specify the path name to file containing what will be considered\n"
, stdout);
fputs(
-" as random data. The data may be used to seed the random engine\n"
+" as random data. The data may be used to seed the random engine\n"
" for SSL connections. See also the --egd-file option.\n"
"\n"
" -r, --range <range>\n"
-" (HTTP FTP SFTP FILE) Retrieve a byte range (i.e a partial docu-\n"
-" ment) from a HTTP/1.1, FTP or SFTP server or a local FILE.\n"
+" (HTTP FTP SFTP FILE) Retrieve a byte range (i.e a partial docu-\n"
+" ment) from a HTTP/1.1, FTP or SFTP server or a local FILE.\n"
" Ranges can be specified in a number of ways.\n"
"\n"
" 0-499 specifies the first 500 bytes\n"
@@ -2574,24 +2629,24 @@ void hugehelp(void)
" 100-199,500-599\n"
" specifies two separate 100-byte ranges(*) (HTTP)\n"
"\n"
-" (*) = NOTE that this will cause the server to reply with a mul-\n"
+" (*) = NOTE that this will cause the server to reply with a mul-\n"
" tipart response!\n"
"\n"
, stdout);
fputs(
-" Only digit characters (0-9) are valid in the 'start' and 'stop'\n"
-" fields of the 'start-stop' range syntax. If a non-digit charac-\n"
+" Only digit characters (0-9) are valid in the 'start' and 'stop'\n"
+" fields of the 'start-stop' range syntax. If a non-digit charac-\n"
" ter is given in the range, the server's response will be unspec-\n"
" ified, depending on the server's configuration.\n"
"\n"
-" You should also be aware that many HTTP/1.1 servers do not have\n"
-" this feature enabled, so that when you attempt to get a range,\n"
+" You should also be aware that many HTTP/1.1 servers do not have\n"
+" this feature enabled, so that when you attempt to get a range,\n"
, stdout);
fputs(
" you'll instead get the whole document.\n"
"\n"
-" FTP and SFTP range downloads only support the simple 'start-\n"
-" stop' syntax (optionally with one of the numbers omitted). FTP\n"
+" FTP and SFTP range downloads only support the simple 'start-\n"
+" stop' syntax (optionally with one of the numbers omitted). FTP\n"
" use depends on the extended FTP command SIZE.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
@@ -2599,7 +2654,7 @@ void hugehelp(void)
" --raw (HTTP) When used, it disables all internal HTTP decoding of con-\n"
, stdout);
fputs(
-" tent or transfer encodings and instead makes them passed on\n"
+" tent or transfer encodings and instead makes them passed on\n"
" unaltered, raw.\n"
"\n"
" Added in 7.16.2.\n"
@@ -2607,11 +2662,11 @@ void hugehelp(void)
" -e, --referer <URL>\n"
" (HTTP) Sends the \"Referrer Page\" information to the HTTP server.\n"
" This can also be set with the -H, --header flag of course. When\n"
-" used with -L, --location you can append \";auto\" to the -e,\n"
-" --referer URL to make curl automatically set the previous URL\n"
+" used with -L, --location you can append \";auto\" to the -e,\n"
+" --referer URL to make curl automatically set the previous URL\n"
, stdout);
fputs(
-" when it follows a Location: header. The \";auto\" string can be\n"
+" when it follows a Location: header. The \";auto\" string can be\n"
" used alone, even if you don't set an initial -e, --referer.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
@@ -2625,24 +2680,24 @@ void hugehelp(void)
fputs(
" extracting a filename from the URL.\n"
"\n"
-" If the server specifies a file name and a file with that name\n"
-" already exists in the current working directory it will not be\n"
+" If the server specifies a file name and a file with that name\n"
+" already exists in the current working directory it will not be\n"
" overwritten and an error will occur. If the server doesn't spec-\n"
" ify a file name then this option has no effect.\n"
"\n"
-" There's no attempt to decode %-sequences (yet) in the provided\n"
+" There's no attempt to decode %-sequences (yet) in the provided\n"
, stdout);
fputs(
" file name, so this option may provide you with rather unexpected\n"
" file names.\n"
"\n"
-" WARNING: Exercise judicious use of this option, especially on\n"
-" Windows. A rogue server could send you the name of a DLL or\n"
-" other file that could possibly be loaded automatically by Win-\n"
+" WARNING: Exercise judicious use of this option, especially on\n"
+" Windows. A rogue server could send you the name of a DLL or\n"
+" other file that could possibly be loaded automatically by Win-\n"
" dows or some third party software.\n"
"\n"
" --remote-name-all\n"
-" This option changes the default action for all given URLs to be\n"
+" This option changes the default action for all given URLs to be\n"
, stdout);
fputs(
" dealt with as if -O, --remote-name were used for each one. So if\n"
@@ -2652,78 +2707,78 @@ void hugehelp(void)
" Added in 7.19.0.\n"
"\n"
" -O, --remote-name\n"
-" Write output to a local file named like the remote file we get.\n"
-" (Only the file part of the remote file is used, the path is cut\n"
+" Write output to a local file named like the remote file we get.\n"
+" (Only the file part of the remote file is used, the path is cut\n"
" off.)\n"
"\n"
, stdout);
fputs(
-" The file will be saved in the current working directory. If you\n"
-" want the file saved in a different directory, make sure you\n"
-" change the current working directory before invoking curl with\n"
+" The file will be saved in the current working directory. If you\n"
+" want the file saved in a different directory, make sure you\n"
+" change the current working directory before invoking curl with\n"
" this option.\n"
"\n"
-" The remote file name to use for saving is extracted from the\n"
-" given URL, nothing else, and if it already exists it will be\n"
+" The remote file name to use for saving is extracted from the\n"
+" given URL, nothing else, and if it already exists it will be\n"
, stdout);
fputs(
-" overwritten. If you want the server to be able to choose the\n"
+" overwritten. If you want the server to be able to choose the\n"
" file name refer to -J, --remote-header-name which can be used in\n"
-" addition to this option. If the server chooses a file name and\n"
+" addition to this option. If the server chooses a file name and\n"
" that name already exists it will not be overwritten.\n"
"\n"
" There is no URL decoding done on the file name. If it has %20 or\n"
-" other URL encoded parts of the name, they will end up as-is as\n"
+" other URL encoded parts of the name, they will end up as-is as\n"
" file name.\n"
"\n"
, stdout);
fputs(
-" You may use this option as many times as the number of URLs you\n"
+" You may use this option as many times as the number of URLs you\n"
" have.\n"
"\n"
" -R, --remote-time\n"
-" When used, this will make curl attempt to figure out the time-\n"
-" stamp of the remote file, and if that is available make the\n"
+" When used, this will make curl attempt to figure out the time-\n"
+" stamp of the remote file, and if that is available make the\n"
" local file get that same timestamp.\n"
"\n"
" --request-target\n"
-" (HTTP) Tells curl to use an alternative \"target\" (path) instead\n"
+" (HTTP) Tells curl to use an alternative \"target\" (path) instead\n"
, stdout);
fputs(
-" of using the path as provided in the URL. Particularly useful\n"
-" when wanting to issue HTTP requests without leading slash or\n"
-" other data that doesn't follow the regular URL pattern, like\n"
+" of using the path as provided in the URL. Particularly useful\n"
+" when wanting to issue HTTP requests without leading slash or\n"
+" other data that doesn't follow the regular URL pattern, like\n"
" \"OPTIONS *\".\n"
"\n"
" Added in 7.55.0.\n"
"\n"
" -X, --request <command>\n"
" (HTTP) Specifies a custom request method to use when communicat-\n"
-" ing with the HTTP server. The specified request method will be\n"
+" ing with the HTTP server. The specified request method will be\n"
, stdout);
fputs(
-" used instead of the method otherwise used (which defaults to\n"
-" GET). Read the HTTP 1.1 specification for details and explana-\n"
-" tions. Common additional HTTP requests include PUT and DELETE,\n"
+" used instead of the method otherwise used (which defaults to\n"
+" GET). Read the HTTP 1.1 specification for details and explana-\n"
+" tions. Common additional HTTP requests include PUT and DELETE,\n"
" but related technologies like WebDAV offers PROPFIND, COPY, MOVE\n"
" and more.\n"
"\n"
-" Normally you don't need this option. All sorts of GET, HEAD,\n"
+" Normally you don't need this option. All sorts of GET, HEAD,\n"
" POST and PUT requests are rather invoked by using dedicated com-\n"
, stdout);
fputs(
" mand line options.\n"
"\n"
-" This option only changes the actual word used in the HTTP\n"
-" request, it does not alter the way curl behaves. So for example\n"
-" if you want to make a proper HEAD request, using -X HEAD will\n"
+" This option only changes the actual word used in the HTTP\n"
+" request, it does not alter the way curl behaves. So for example\n"
+" if you want to make a proper HEAD request, using -X HEAD will\n"
" not suffice. You need to use the -I, --head option.\n"
"\n"
-" The method string you set with -X, --request will be used for\n"
-" all requests, which if you for example use -L, --location may\n"
+" The method string you set with -X, --request will be used for\n"
+" all requests, which if you for example use -L, --location may\n"
, stdout);
fputs(
-" cause unintended side-effects when curl doesn't change request\n"
+" cause unintended side-effects when curl doesn't change request\n"
" method according to the HTTP 30x response codes - and similar.\n"
"\n"
" (FTP) Specifies a custom FTP command to use instead of LIST when\n"
@@ -2732,7 +2787,7 @@ void hugehelp(void)
" (POP3) Specifies a custom POP3 command to use instead of LIST or\n"
" RETR. (Added in 7.26.0)\n"
"\n"
-" (IMAP) Specifies a custom IMAP command to use instead of LIST.\n"
+" (IMAP) Specifies a custom IMAP command to use instead of LIST.\n"
, stdout);
fputs(
" (Added in 7.30.0)\n"
@@ -2742,16 +2797,16 @@ void hugehelp(void)
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
-" --resolve <host:port:address>\n"
-" Provide a custom address for a specific host and port pair.\n"
-" Using this, you can make the curl requests(s) use a specified\n"
+" --resolve <host:port:address[,address]...>\n"
+" Provide a custom address for a specific host and port pair.\n"
+" Using this, you can make the curl requests(s) use a specified\n"
, stdout);
fputs(
-" address and prevent the otherwise normally resolved address to\n"
-" be used. Consider it a sort of /etc/hosts alternative provided\n"
-" on the command line. The port number should be the number used\n"
-" for the specific protocol the host will be used for. It means\n"
-" you need several entries if you want to provide address for the\n"
+" address and prevent the otherwise normally resolved address to\n"
+" be used. Consider it a sort of /etc/hosts alternative provided\n"
+" on the command line. The port number should be the number used\n"
+" for the specific protocol the host will be used for. It means\n"
+" you need several entries if you want to provide address for the\n"
" same host but different ports.\n"
"\n"
, stdout);
@@ -2761,14 +2816,17 @@ void hugehelp(void)
" Support for providing the IP address within [brackets] was added\n"
" in 7.57.0.\n"
"\n"
+" Support for providing multiple IP addresses per entry was added\n"
+" in 7.59.0.\n"
+"\n"
" This option can be used many times to add many host names to\n"
" resolve.\n"
"\n"
+, stdout);
+ fputs(
" Added in 7.21.3.\n"
"\n"
" --retry-connrefused\n"
-, stdout);
- fputs(
" In addition to the other conditions, consider ECONNREFUSED as a\n"
" transient error too for --retry. This option is used together\n"
" with --retry.\n"
@@ -2778,9 +2836,9 @@ void hugehelp(void)
" --retry-delay <seconds>\n"
" Make curl sleep this amount of time before each retry when a\n"
" transfer has failed with a transient error (it changes the\n"
-" default backoff time algorithm between retries). This option is\n"
, stdout);
fputs(
+" default backoff time algorithm between retries). This option is\n"
" only interesting if --retry is also used. Setting this delay to\n"
" zero will make curl use the default backoff time.\n"
"\n"
@@ -2790,41 +2848,41 @@ void hugehelp(void)
"\n"
" --retry-max-time <seconds>\n"
" The retry timer is reset before the first transfer attempt.\n"
-" Retries will be done as usual (see --retry) as long as the timer\n"
, stdout);
fputs(
+" Retries will be done as usual (see --retry) as long as the timer\n"
" hasn't reached this given limit. Notice that if the timer hasn't\n"
" reached the limit, the request will be made and while perform-\n"
" ing, it may take longer than this given time period. To limit a\n"
" single request's maximum time, use -m, --max-time. Set this\n"
" option to zero to not timeout retries.\n"
"\n"
+, stdout);
+ fputs(
" If this option is used several times, the last one will be used.\n"
"\n"
" Added in 7.12.3.\n"
"\n"
-, stdout);
- fputs(
" --retry <num>\n"
" If a transient error is returned when curl tries to perform a\n"
" transfer, it will retry this number of times before giving up.\n"
" Setting the number to 0 makes curl do no retries (which is the\n"
" default). Transient error means either: a timeout, an FTP 4xx\n"
+, stdout);
+ fputs(
" response code or an HTTP 5xx response code.\n"
"\n"
" When curl is about to retry a transfer, it will first wait one\n"
-, stdout);
- fputs(
" second and then for all forthcoming retries it will double the\n"
" waiting time until it reaches 10 minutes which then will be the\n"
" delay between the rest of the retries. By using --retry-delay\n"
" you disable this exponential backoff algorithm. See also\n"
+, stdout);
+ fputs(
" --retry-max-time to limit the total time allowed for retries.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
-, stdout);
- fputs(
" Added in 7.12.3.\n"
"\n"
" --sasl-ir\n"
@@ -2836,13 +2894,13 @@ void hugehelp(void)
" This option allows you to change the service name for SPNEGO.\n"
"\n"
" Examples: --negotiate --service-name sockd would use\n"
+, stdout);
+ fputs(
" sockd/server-name.\n"
"\n"
" Added in 7.43.0.\n"
" -S, --show-error\n"
" When used with -s, --silent, it makes curl show an error message\n"
-, stdout);
- fputs(
" if it fails.\n"
" -s, --silent\n"
" Silent or quiet mode. Don't show progress meter or error mes-\n"
@@ -2850,13 +2908,13 @@ void hugehelp(void)
" for, potentially even to the terminal/stdout unless you redirect\n"
" it.\n"
"\n"
+, stdout);
+ fputs(
" Use -S, --show-error in addition to this option to disable\n"
" progress meter but still show error messages.\n"
"\n"
" See also -v, --verbose and --stderr.\n"
"\n"
-, stdout);
- fputs(
" --socks4 <host[:port]>\n"
" Use the specified SOCKS4 proxy. If the port number is not speci-\n"
" fied, it is assumed at port 1080.\n"
@@ -2864,22 +2922,22 @@ void hugehelp(void)
" This option overrides any previous use of -x, --proxy, as they\n"
" are mutually exclusive.\n"
"\n"
-" Since 7.21.7, this option is superfluous since you can specify a\n"
-" socks4 proxy with -x, --proxy using a socks4:// protocol prefix.\n"
, stdout);
fputs(
+" Since 7.21.7, this option is superfluous since you can specify a\n"
+" socks4 proxy with -x, --proxy using a socks4:// protocol prefix.\n"
" Since 7.52.0, --preproxy can be used to specify a SOCKS proxy at\n"
" the same time -x, --proxy is used with an HTTP/HTTPS proxy. In\n"
" such a case curl first connects to the SOCKS proxy and then con-\n"
" nects (through SOCKS) to the HTTP or HTTPS proxy.\n"
"\n"
+, stdout);
+ fputs(
" If this option is used several times, the last one will be used.\n"
"\n"
" Added in 7.15.2.\n"
"\n"
" --socks4a <host[:port]>\n"
-, stdout);
- fputs(
" Use the specified SOCKS4a proxy. If the port number is not spec-\n"
" ified, it is assumed at port 1080.\n"
"\n"
@@ -2887,11 +2945,11 @@ void hugehelp(void)
" are mutually exclusive.\n"
"\n"
" Since 7.21.7, this option is superfluous since you can specify a\n"
+, stdout);
+ fputs(
" socks4a proxy with -x, --proxy using a socks4a:// protocol pre-\n"
" fix.\n"
"\n"
-, stdout);
- fputs(
" Since 7.52.0, --preproxy can be used to specify a SOCKS proxy at\n"
" the same time -x, --proxy is used with an HTTP/HTTPS proxy. In\n"
" such a case curl first connects to the SOCKS proxy and then con-\n"
@@ -2899,11 +2957,11 @@ void hugehelp(void)
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
+, stdout);
+ fputs(
" Added in 7.18.0.\n"
"\n"
" --socks5-basic\n"
-, stdout);
- fputs(
" Tells curl to use username/password authentication when connect-\n"
" ing to a SOCKS5 proxy. The username/password authentication is\n"
" enabled by default. Use --socks5-gssapi to force GSS-API\n"
@@ -3194,19 +3252,21 @@ void hugehelp(void)
, stdout);
fputs(
" --tlspassword are specified but --tlsauthtype is not, then this\n"
-" option defaults to \"SRP\".\n"
+" option defaults to \"SRP\". This option works only if the under-\n"
+" lying libcurl is built with TLS-SRP support, which requires\n"
+" OpenSSL or GnuTLS with TLS-SRP support.\n"
"\n"
" Added in 7.21.4.\n"
"\n"
" --tlspassword\n"
" Set password for use with the TLS authentication method speci-\n"
" fied with --tlsauthtype. Requires that --tlsuser also be set.\n"
+, stdout);
+ fputs(
"\n"
" Added in 7.21.4.\n"
" --tlsuser <name>\n"
" Set username for use with the TLS authentication method speci-\n"
-, stdout);
- fputs(
" fied with --tlsauthtype. Requires that --tlspassword also is\n"
" set.\n"
"\n"
@@ -3219,14 +3279,14 @@ void hugehelp(void)
" Added in 7.34.0.\n"
"\n"
" --tlsv1.1\n"
+, stdout);
+ fputs(
" (TLS) Forces curl to use TLS version 1.1 when connecting to a\n"
" remote TLS server.\n"
"\n"
" Added in 7.34.0.\n"
"\n"
" --tlsv1.2\n"
-, stdout);
- fputs(
" (TLS) Forces curl to use TLS version 1.2 when connecting to a\n"
" remote TLS server.\n"
"\n"
@@ -3236,10 +3296,10 @@ void hugehelp(void)
" (TLS) Forces curl to use TLS version 1.3 when connecting to a\n"
" remote TLS server.\n"
"\n"
-" Note that TLS 1.3 is only supported by a subset of TLS backends.\n"
-" At the time of this writing, they are BoringSSL, NSS, and Secure\n"
, stdout);
fputs(
+" Note that TLS 1.3 is only supported by a subset of TLS backends.\n"
+" At the time of this writing, they are BoringSSL, NSS, and Secure\n"
" Transport (on iOS 11 or later, and macOS 10.13 or later).\n"
"\n"
" Added in 7.52.0.\n"
@@ -3248,12 +3308,12 @@ void hugehelp(void)
" (SSL) Tells curl to use TLS version 1.x when negotiating with a\n"
" remote TLS server. That means TLS version 1.0, 1.1 or 1.2.\n"
"\n"
+, stdout);
+ fputs(
" See also --http1.1 and --http2. -1, --tlsv1 requires that the\n"
" underlying libcurl was built to support TLS. This option over-\n"
" rides --tlsv1.1 and --tlsv1.2 and --tlsv1.3.\n"
"\n"
-, stdout);
- fputs(
" --tr-encoding\n"
" (HTTP) Request a compressed Transfer-Encoding response using one\n"
" of the algorithms curl supports, and uncompress the data while\n"
@@ -3262,16 +3322,18 @@ void hugehelp(void)
" Added in 7.21.6.\n"
"\n"
" --trace-ascii <file>\n"
+, stdout);
+ fputs(
" Enables a full trace dump of all incoming and outgoing data,\n"
" including descriptive information, to the given output file. Use\n"
" \"-\" as filename to have the output sent to stdout.\n"
"\n"
-, stdout);
- fputs(
" This is very similar to --trace, but leaves out the hex part and\n"
" only shows the ASCII part of the dump. It makes smaller output\n"
" that might be easier to read for untrained humans.\n"
"\n"
+, stdout);
+ fputs(
" If this option is used several times, the last one will be used.\n"
"\n"
" This option overrides --trace and -v, --verbose.\n"
@@ -3280,13 +3342,13 @@ void hugehelp(void)
" Prepends a time stamp to each trace or verbose line that curl\n"
" displays.\n"
"\n"
-, stdout);
- fputs(
" Added in 7.14.0.\n"
"\n"
" --trace <file>\n"
" Enables a full trace dump of all incoming and outgoing data,\n"
" including descriptive information, to the given output file. Use\n"
+, stdout);
+ fputs(
" \"-\" as filename to have the output sent to stdout. Use \"%\" as\n"
" filename to have the output sent to stderr.\n"
"\n"
@@ -3294,8 +3356,6 @@ void hugehelp(void)
"\n"
" This option overrides -v, --verbose and --trace-ascii.\n"
"\n"
-, stdout);
- fputs(
" --unix-socket <path>\n"
" (HTTP) Connect through this Unix domain socket, instead of using\n"
" the network.\n"
@@ -3303,34 +3363,36 @@ void hugehelp(void)
" Added in 7.40.0.\n"
"\n"
" -T, --upload-file <file>\n"
+, stdout);
+ fputs(
" This transfers the specified local file to the remote URL. If\n"
" there is no file part in the specified URL, curl will append the\n"
" local file name. NOTE that you must use a trailing / on the last\n"
-, stdout);
- fputs(
" directory to really prove to Curl that there is no file name or\n"
" curl will think that your last directory name is the remote file\n"
" name to use. That will most likely cause the upload operation to\n"
+, stdout);
+ fputs(
" fail. If this is used on an HTTP(S) server, the PUT command will\n"
" be used.\n"
"\n"
" Use the file name \"-\" (a single dash) to use stdin instead of a\n"
" given file. Alternately, the file name \".\" (a single period)\n"
-, stdout);
- fputs(
" may be specified instead of \"-\" to use stdin in non-blocking\n"
" mode to allow reading server output while stdin is being\n"
" uploaded.\n"
"\n"
+, stdout);
+ fputs(
" You can specify one -T, --upload-file for each URL on the com-\n"
" mand line. Each -T, --upload-file + URL pair specifies what to\n"
" upload and to where. curl also supports \"globbing\" of the -T,\n"
-, stdout);
- fputs(
" --upload-file argument, meaning that you can upload multiple\n"
" files to a single URL by using the same URL globbing style sup-\n"
" ported in the URL, like this:\n"
"\n"
+, stdout);
+ fputs(
" curl --upload-file \"{file1,file2}\" http://www.example.com\n"
"\n"
" or even\n"
@@ -3338,98 +3400,98 @@ void hugehelp(void)
" curl -T \"img[1-1000].png\" ftp://ftp.example.com/upload/\n"
"\n"
" When uploading to an SMTP server: the uploaded data is assumed\n"
-, stdout);
- fputs(
" to be RFC 5322 formatted. It has to feature the necessary set of\n"
" headers and mail body formatted correctly by the user as curl\n"
" will not transcode nor encode it further in any way.\n"
"\n"
" --url <url>\n"
+, stdout);
+ fputs(
" Specify a URL to fetch. This option is mostly handy when you\n"
" want to specify URL(s) in a config file.\n"
"\n"
" If the given URL is missing a scheme name (such as \"http://\" or\n"
-, stdout);
- fputs(
" \"ftp://\" etc) then curl will make a guess based on the host. If\n"
" the outermost sub-domain name matches DICT, FTP, IMAP, LDAP,\n"
" POP3 or SMTP then that protocol will be used, otherwise HTTP\n"
+, stdout);
+ fputs(
" will be used. Since 7.45.0 guessing can be disabled by setting a\n"
" default protocol, see --proto-default for details.\n"
"\n"
" This option may be used any number of times. To control where\n"
-, stdout);
- fputs(
" this URL is written, use the -o, --output or the -O, --remote-\n"
" name options.\n"
"\n"
" -B, --use-ascii\n"
" (FTP LDAP) Enable ASCII transfer. For FTP, this can also be\n"
+, stdout);
+ fputs(
" enforced by using a URL that ends with \";type=A\". This option\n"
" causes data sent to stdout to be in text mode for win32 systems.\n"
"\n"
" -A, --user-agent <name>\n"
" (HTTP) Specify the User-Agent string to send to the HTTP server.\n"
-, stdout);
- fputs(
" To encode blanks in the string, surround the string with single\n"
" quote marks. This can also be set with the -H, --header option\n"
" of course.\n"
"\n"
+, stdout);
+ fputs(
" If this option is used several times, the last one will be used.\n"
"\n"
" -u, --user <user:password>\n"
" Specify the user name and password to use for server authentica-\n"
" tion. Overrides -n, --netrc and --netrc-optional.\n"
"\n"
-, stdout);
- fputs(
" If you simply specify the user name, curl will prompt for a\n"
" password.\n"
"\n"
" The user name and passwords are split up on the first colon,\n"
+, stdout);
+ fputs(
" which makes it impossible to use a colon in the user name with\n"
" this option. The password can, still.\n"
"\n"
" When using Kerberos V5 with a Windows based server you should\n"
" include the Windows domain name in the user name, in order for\n"
-, stdout);
- fputs(
" the server to successfully obtain a Kerberos Ticket. If you\n"
" don't then the initial authentication handshake may fail.\n"
"\n"
+, stdout);
+ fputs(
" When using NTLM, the user name can be specified simply as the\n"
" user name, without the domain, if there is a single domain and\n"
" forest in your setup for example.\n"
"\n"
" To specify the domain name use either Down-Level Logon Name or\n"
-, stdout);
- fputs(
" UPN (User Principal Name) formats. For example, EXAMPLE\\user and\n"
" user@example.com respectively.\n"
"\n"
" If you use a Windows SSPI-enabled curl binary and perform Ker-\n"
+, stdout);
+ fputs(
" beros V5, Negotiate, NTLM or Digest authentication then you can\n"
" tell curl to select the user name and password from your envi-\n"
" ronment by specifying a single colon with this option: \"-u :\".\n"
"\n"
-, stdout);
- fputs(
" If this option is used several times, the last one will be used.\n"
"\n"
" -v, --verbose\n"
" Makes curl verbose during the operation. Useful for debugging\n"
" and seeing what's going on \"under the hood\". A line starting\n"
+, stdout);
+ fputs(
" with '>' means \"header data\" sent by curl, '<' means \"header\n"
" data\" received by curl that is hidden in normal cases, and a\n"
" line starting with '*' means additional info provided by curl.\n"
"\n"
-, stdout);
- fputs(
" If you only want HTTP headers in the output, -i, --include might\n"
" be the option you're looking for.\n"
"\n"
" If you think this option still doesn't give you enough details,\n"
+, stdout);
+ fputs(
" consider using --trace or --trace-ascii instead.\n"
"\n"
" Use -s, --silent to make curl really quiet.\n"
@@ -3438,18 +3500,16 @@ void hugehelp(void)
" --trace-ascii.\n"
"\n"
" -V, --version\n"
-, stdout);
- fputs(
" Displays information about curl and the libcurl version it uses.\n"
" The first line includes the full version of curl, libcurl and\n"
" other 3rd party libraries linked with the executable.\n"
"\n"
+, stdout);
+ fputs(
" The second line (starts with \"Protocols:\") shows all protocols\n"
" that libcurl reports to support.\n"
"\n"
" The third line (starts with \"Features:\") shows specific features\n"
-, stdout);
- fputs(
" libcurl reports to offer. Available features include:\n"
"\n"
" IPv6 You can use IPv6 with this.\n"
@@ -3457,6 +3517,8 @@ void hugehelp(void)
" krb4 Krb4 for FTP is supported.\n"
"\n"
" SSL SSL versions of various protocols are supported, such as\n"
+, stdout);
+ fputs(
" HTTPS, FTPS, POP3S and so on.\n"
"\n"
" libz Automatic decompression of compressed files over HTTP is\n"
@@ -3464,21 +3526,19 @@ void hugehelp(void)
"\n"
" NTLM NTLM authentication is supported.\n"
"\n"
-, stdout);
- fputs(
" Debug This curl uses a libcurl built with Debug. This enables\n"
" more error-tracking and memory debugging etc. For curl-\n"
" developers only!\n"
"\n"
" AsynchDNS\n"
+, stdout);
+ fputs(
" This curl uses asynchronous name resolves. Asynchronous\n"
" name resolves can be done using either the c-ares or the\n"
" threaded resolver backends.\n"
"\n"
" SPNEGO SPNEGO authentication is supported.\n"
"\n"
-, stdout);
- fputs(
" Largefile\n"
" This curl supports transfers of large files, files larger\n"
" than 2GB.\n"
@@ -3486,6 +3546,8 @@ void hugehelp(void)
" IDN This curl supports IDN - international domain names.\n"
"\n"
" GSS-API\n"
+, stdout);
+ fputs(
" GSS-API is supported.\n"
"\n"
" SSPI SSPI is supported.\n"
@@ -3494,8 +3556,6 @@ void hugehelp(void)
" SRP (Secure Remote Password) authentication is supported\n"
" for TLS.\n"
"\n"
-, stdout);
- fputs(
" HTTP2 HTTP/2 support has been built-in.\n"
"\n"
" UnixSockets\n"
@@ -3505,63 +3565,63 @@ void hugehelp(void)
" This curl is built to support HTTPS proxy.\n"
"\n"
" Metalink\n"
+, stdout);
+ fputs(
" This curl supports Metalink (both version 3 and 4 (RFC\n"
" 5854)), which describes mirrors and hashes. curl will\n"
" use mirrors for failover if there are errors (such as the\n"
-, stdout);
- fputs(
" file or server not being available).\n"
"\n"
" PSL PSL is short for Public Suffix List and means that this\n"
" curl has been built with knowledge about \"public suf-\n"
" fixes\".\n"
"\n"
+, stdout);
+ fputs(
" -w, --write-out <format>\n"
" Make curl display information on stdout after a completed trans-\n"
" fer. The format is a string that may contain plain text mixed\n"
-, stdout);
- fputs(
" with any number of variables. The format can be specified as a\n"
" literal \"string\", or you can have curl read the format from a\n"
" file with \"@filename\" and to tell curl to read the format from\n"
" stdin you write \"@-\".\n"
"\n"
-" The variables present in the output format will be substituted\n"
-" by the value or text that curl thinks fit, as described below.\n"
, stdout);
fputs(
+" The variables present in the output format will be substituted\n"
+" by the value or text that curl thinks fit, as described below.\n"
" All variables are specified as %{variable_name} and to output a\n"
" normal % you just write them as %%. You can output a newline by\n"
" using \\n, a carriage return with \\r and a tab space with \\t.\n"
"\n"
" NOTE: The %-symbol is a special symbol in the win32-environment,\n"
+, stdout);
+ fputs(
" where all occurrences of % must be doubled when using this\n"
" option.\n"
"\n"
" The variables available are:\n"
"\n"
-, stdout);
- fputs(
" content_type The Content-Type of the requested document, if\n"
" there was any.\n"
"\n"
" filename_effective\n"
" The ultimate filename that curl writes out to.\n"
" This is only meaningful if curl is told to write\n"
-" to a file with the -O, --remote-name or -o,\n"
-" --output option. It's most useful in combination\n"
, stdout);
fputs(
+" to a file with the -O, --remote-name or -o,\n"
+" --output option. It's most useful in combination\n"
" with the -J, --remote-header-name option. (Added\n"
" in 7.26.0)\n"
"\n"
" ftp_entry_path The initial path curl ended up in when logging on\n"
" to the remote FTP server. (Added in 7.15.4)\n"
"\n"
-" http_code The numerical response code that was found in the\n"
-" last retrieved HTTP(S) or FTP(s) transfer. In\n"
, stdout);
fputs(
+" http_code The numerical response code that was found in the\n"
+" last retrieved HTTP(S) or FTP(s) transfer. In\n"
" 7.18.2 the alias response_code was added to show\n"
" the same info.\n"
"\n"
@@ -3569,11 +3629,11 @@ void hugehelp(void)
" response (from a proxy) to a curl CONNECT\n"
" request. (Added in 7.12.4)\n"
"\n"
+, stdout);
+ fputs(
" http_version The http version that was effectively used.\n"
" (Added in 7.50.0)\n"
"\n"
-, stdout);
- fputs(
" local_ip The IP address of the local end of the most\n"
" recently done connection - can be either IPv4 or\n"
" IPv6 (Added in 7.29.0)\n"
@@ -3581,32 +3641,32 @@ void hugehelp(void)
" local_port The local port number of the most recently done\n"
" connection (Added in 7.29.0)\n"
"\n"
+, stdout);
+ fputs(
" num_connects Number of new connects made in the recent trans-\n"
" fer. (Added in 7.12.3)\n"
"\n"
-, stdout);
- fputs(
" num_redirects Number of redirects that were followed in the\n"
" request. (Added in 7.12.3)\n"
"\n"
" proxy_ssl_verify_result\n"
" The result of the HTTPS proxy's SSL peer certifi-\n"
" cate verification that was requested. 0 means the\n"
+, stdout);
+ fputs(
" verification was successful. (Added in 7.52.0)\n"
"\n"
" redirect_url When an HTTP request was made without -L, --loca-\n"
-, stdout);
- fputs(
" tion to follow redirects (or when --max-redir is\n"
" met), this variable will show the actual URL a\n"
" redirect would have gone to. (Added in 7.18.2)\n"
"\n"
" remote_ip The remote IP address of the most recently done\n"
+, stdout);
+ fputs(
" connection - can be either IPv4 or IPv6 (Added in\n"
" 7.29.0)\n"
"\n"
-, stdout);
- fputs(
" remote_port The remote port number of the most recently done\n"
" connection (Added in 7.29.0)\n"
"\n"
@@ -3615,11 +3675,11 @@ void hugehelp(void)
"\n"
" size_download The total amount of bytes that were downloaded.\n"
"\n"
+, stdout);
+ fputs(
" size_header The total amount of bytes of the downloaded head-\n"
" ers.\n"
"\n"
-, stdout);
- fputs(
" size_request The total amount of bytes that were sent in the\n"
" HTTP request.\n"
"\n"
@@ -3628,21 +3688,21 @@ void hugehelp(void)
" speed_download The average download speed that curl measured for\n"
" the complete download. Bytes per second.\n"
"\n"
+, stdout);
+ fputs(
" speed_upload The average upload speed that curl measured for\n"
" the complete upload. Bytes per second.\n"
"\n"
-, stdout);
- fputs(
" ssl_verify_result\n"
" The result of the SSL peer certificate verifica-\n"
" tion that was requested. 0 means the verification\n"
" was successful. (Added in 7.19.0)\n"
"\n"
" time_appconnect\n"
-" The time, in seconds, it took from the start\n"
-" until the SSL/SSH/etc connect/handshake to the\n"
, stdout);
fputs(
+" The time, in seconds, it took from the start\n"
+" until the SSL/SSH/etc connect/handshake to the\n"
" remote host was completed. (Added in 7.19.0)\n"
"\n"
" time_connect The time, in seconds, it took from the start\n"
@@ -3650,42 +3710,42 @@ void hugehelp(void)
" proxy) was completed.\n"
"\n"
" time_namelookup\n"
+, stdout);
+ fputs(
" The time, in seconds, it took from the start\n"
" until the name resolving was completed.\n"
"\n"
" time_pretransfer\n"
-, stdout);
- fputs(
" The time, in seconds, it took from the start\n"
" until the file transfer was just about to begin.\n"
" This includes all pre-transfer commands and nego-\n"
" tiations that are specific to the particular pro-\n"
+, stdout);
+ fputs(
" tocol(s) involved.\n"
"\n"
" time_redirect The time, in seconds, it took for all redirection\n"
-, stdout);
- fputs(
" steps including name lookup, connect, pretransfer\n"
" and transfer before the final transaction was\n"
" started. time_redirect shows the complete execu-\n"
" tion time for multiple redirections. (Added in\n"
" 7.12.3)\n"
"\n"
-" time_starttransfer\n"
-" The time, in seconds, it took from the start\n"
, stdout);
fputs(
+" time_starttransfer\n"
+" The time, in seconds, it took from the start\n"
" until the first byte was just about to be trans-\n"
" ferred. This includes time_pretransfer and also\n"
" the time the server needed to calculate the\n"
" result.\n"
"\n"
" time_total The total time, in seconds, that the full opera-\n"
+, stdout);
+ fputs(
" tion lasted.\n"
"\n"
" url_effective The URL that was fetched last. This is most mean-\n"
-, stdout);
- fputs(
" ingful if you've told curl to follow location:\n"
" headers.\n"
"\n"
@@ -3694,9 +3754,9 @@ void hugehelp(void)
" --xattr\n"
" When saving output to a file, this option tells curl to store\n"
" certain file metadata in extended file attributes. Currently,\n"
-" the URL is stored in the xdg.origin.url attribute and, for HTTP,\n"
, stdout);
fputs(
+" the URL is stored in the xdg.origin.url attribute and, for HTTP,\n"
" the content type is stored in the mime_type attribute. If the\n"
" file system does not support extended attributes, a warning is\n"
" issued.\n"
@@ -3707,11 +3767,11 @@ void hugehelp(void)
"\n"
"ENVIRONMENT\n"
" The environment variables can be specified in lower case or upper case.\n"
+, stdout);
+ fputs(
" The lower case version has precedence. http_proxy is an exception as it\n"
" is only available in lower case.\n"
"\n"
-, stdout);
- fputs(
" Using an environment variable to set the proxy has the same effect as\n"
" using the -x, --proxy option.\n"
"\n"
@@ -3721,9 +3781,9 @@ void hugehelp(void)
" Sets the proxy server to use for HTTPS.\n"
"\n"
" [url-protocol]_PROXY [protocol://]<host>[:port]\n"
-" Sets the proxy server to use for [url-protocol], where the pro-\n"
, stdout);
fputs(
+" Sets the proxy server to use for [url-protocol], where the pro-\n"
" tocol is a protocol that curl supports and as specified in a\n"
" URL. FTP, FTPS, POP3, IMAP, SMTP, LDAP etc.\n"
"\n"
@@ -3733,24 +3793,30 @@ void hugehelp(void)
"\n"
" NO_PROXY <comma-separated list of hosts>\n"
" list of host names that shouldn't go through any proxy. If set\n"
+, stdout);
+ fputs(
" to a asterisk '*' only, it matches all hosts.\n"
"\n"
+" This environment variable disables use of the proxy even when\n"
+" specified with the -x, --proxy option. That is\n"
+" NO_PROXY=direct.example.com curl -x http://proxy.example.com\n"
+" http://direct.example.com accesses the target URL directly, and\n"
+" NO_PROXY=direct.example.com curl -x http://proxy.example.com\n"
, stdout);
fputs(
-" Since 7.53.0, this environment variable disable the proxy even\n"
-" if specify -x, --proxy option. That is NO_PROXY=direct.exam-\n"
-" ple.com curl -x http://proxy.example.com http://direct.exam-\n"
-" ple.com accesses the target URL directly, and\n"
-" NO_PROXY=direct.example.com curl -x http://proxy.example.com\n"
-" http://somewhere.example.com accesses the target URL through\n"
+" http://somewhere.example.com accesses the target URL through the\n"
" proxy.\n"
"\n"
-, stdout);
- fputs(
+" The list of host names can also be include numerical IP\n"
+" addresses, and IPv6 versions should then be given without\n"
+" enclosing brackets.\n"
+"\n"
"PROXY PROTOCOL PREFIXES\n"
" Since curl version 7.21.7, the proxy string may be specified with a\n"
" protocol:// prefix to specify alternative proxy protocols.\n"
"\n"
+, stdout);
+ fputs(
" If no protocol is specified in the proxy string or if the string\n"
" doesn't match a supported one, the proxy will be treated as an HTTP\n"
" proxy.\n"
@@ -3759,8 +3825,6 @@ void hugehelp(void)
"\n"
" http://\n"
" Makes it use it as a HTTP proxy. The default if no scheme prefix\n"
-, stdout);
- fputs(
" is used.\n"
" https://\n"
" Makes it treated as a HTTPS proxy.\n"
@@ -3768,6 +3832,8 @@ void hugehelp(void)
" socks4://\n"
" Makes it the equivalent of --socks4\n"
"\n"
+, stdout);
+ fputs(
" socks4a://\n"
" Makes it the equivalent of --socks4a\n"
"\n"
@@ -3779,11 +3845,11 @@ void hugehelp(void)
"\n"
"EXIT CODES\n"
" There are a bunch of different error codes and their corresponding\n"
-, stdout);
- fputs(
" error messages that may appear during bad conditions. At the time of\n"
" this writing, the exit codes are:\n"
"\n"
+, stdout);
+ fputs(
" 1 Unsupported protocol. This build of curl has no support for this\n"
" protocol.\n"
"\n"
@@ -3793,11 +3859,11 @@ void hugehelp(void)
"\n"
" 4 A feature or option that was needed to perform the desired\n"
" request was not enabled or was explicitly disabled at build-\n"
-, stdout);
- fputs(
" time. To make curl able to do this, you probably need another\n"
" build of libcurl!\n"
"\n"
+, stdout);
+ fputs(
" 5 Couldn't resolve proxy. The given proxy host could not be\n"
" resolved.\n"
"\n"
@@ -3808,9 +3874,9 @@ void hugehelp(void)
" 8 Weird server reply. The server sent data curl couldn't parse.\n"
"\n"
" 9 FTP access denied. The server denied login or denied access to\n"
+" the particular resource or directory you wanted to reach. Most\n"
, stdout);
fputs(
-" the particular resource or directory you wanted to reach. Most\n"
" often you tried to change to a directory that doesn't exist on\n"
" the server.\n"
"\n"
@@ -3820,9 +3886,9 @@ void hugehelp(void)
"\n"
" 11 FTP weird PASS reply. Curl couldn't parse the reply sent to the\n"
" PASS request.\n"
+"\n"
, stdout);
fputs(
-"\n"
" 12 During an active FTP session while waiting for the server to\n"
" connect back to curl, the timeout expired.\n"
"\n"
@@ -4369,17 +4435,16 @@ void hugehelp(void)
"\n"
" How to post a form with curl, lesson #1:\n"
"\n"
-" Dig out all the <input> tags in the form that you want to fill in. (There's\n"
-" a perl program called formfind.pl on the curl site that helps with this).\n"
+" Dig out all the <input> tags in the form that you want to fill in.\n"
"\n"
" If there's a \"normal\" post, you use -d to post. -d takes a full \"post\n"
" string\", which is in the format\n"
"\n"
" <variable1>=<data1>&<variable2>=<data2>&...\n"
"\n"
+" The 'variable' names are the names set with \"name=\" in the <input> tags, and\n"
, stdout);
fputs(
-" The 'variable' names are the names set with \"name=\" in the <input> tags, and\n"
" the data is the contents you want to fill in for the inputs. The data *must*\n"
" be properly URL encoded. That means you replace space with + and that you\n"
" replace weird letters with %XX where XX is the hexadecimal representation of\n"
@@ -4391,9 +4456,9 @@ void hugehelp(void)
"\n"
" <form action=\"post.cgi\" method=\"post\">\n"
" <input name=user size=10>\n"
+" <input name=pass type=password size=10>\n"
, stdout);
fputs(
-" <input name=pass type=password size=10>\n"
" <input name=id type=hidden value=\"blablabla\">\n"
" <input name=ding value=\"submit\">\n"
" </form>\n"
@@ -5275,13 +5340,13 @@ void hugehelp(void) {}
#include "memdebug.h" /* keep this as LAST include */
static const unsigned char hugehelpgz[] = {
/* This mumbo-jumbo is the huge help text compressed with gzip.
- Thanks to this operation, the size of this data shrank from 195210
- to 57485 bytes. You can disable the use of compressed help
+ Thanks to this operation, the size of this data shrank from 197942
+ to 58137 bytes. You can disable the use of compressed help
texts by NOT passing -c to the mkhelp.pl tool. */
0x1f, 0x8b, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0xed, 0xfd,
0x6b, 0x7b, 0xdc, 0x46, 0x92, 0x26, 0x80, 0x7e, 0xe7, 0xaf, 0xc0, 0x54,
- 0x9f, 0x1e, 0x92, 0xd3, 0x55, 0xc5, 0x8b, 0x2e, 0xb6, 0x68, 0xc9, 0x63,
- 0x9a, 0xa2, 0x6c, 0x8e, 0x29, 0x91, 0xcb, 0xa2, 0x6c, 0xf7, 0xb6, 0xfd,
+ 0x9f, 0x1e, 0x92, 0xd3, 0x55, 0xc5, 0x8b, 0x2e, 0xb6, 0x68, 0xc9, 0xd3,
+ 0x34, 0x45, 0xd9, 0x1c, 0x53, 0x22, 0x97, 0x45, 0xd9, 0xee, 0xb5, 0xfd,
0xe8, 0x41, 0x55, 0x81, 0x24, 0x5a, 0x55, 0x40, 0x35, 0x80, 0x22, 0xc5,
0x9e, 0x9d, 0xfd, 0xed, 0x27, 0xe3, 0x8d, 0x88, 0xcc, 0x04, 0x32, 0xab,
0x48, 0xbb, 0xed, 0xde, 0x39, 0x67, 0xb7, 0x77, 0xc7, 0x92, 0x48, 0x20,
@@ -5294,4781 +5359,4835 @@ static const unsigned char hugehelpgz[] = {
0x44, 0xbd, 0xa2, 0xff, 0xec, 0xd0, 0x7b, 0x3f, 0x7d, 0xa0, 0xbf, 0x9a,
0x9f, 0x6c, 0x6c, 0xbc, 0x3b, 0x7c, 0x7b, 0xac, 0xaf, 0x4e, 0x96, 0xd5,
0x2c, 0x19, 0x24, 0x4d, 0x95, 0x16, 0xf5, 0x55, 0x56, 0x25, 0x69, 0xf2,
- 0xfe, 0xe2, 0x74, 0x63, 0x63, 0xf4, 0xe7, 0x77, 0x67, 0xe7, 0xa3, 0x93,
- 0x51, 0xeb, 0xb1, 0xbf, 0x94, 0x8b, 0x26, 0x2f, 0x8b, 0xfa, 0xe7, 0xe4,
- 0x2f, 0xe6, 0xa1, 0xe1, 0x70, 0xf8, 0xf3, 0xc6, 0xc6, 0xeb, 0xe3, 0xd1,
- 0xd1, 0xc5, 0xc9, 0xf9, 0xe5, 0xc9, 0xd9, 0xbb, 0xd6, 0xb3, 0x49, 0x5e,
- 0x27, 0xa6, 0xb1, 0xa6, 0x2c, 0x67, 0xe6, 0x3f, 0xae, 0xfd, 0x69, 0xda,
- 0xa4, 0xc9, 0x55, 0x55, 0xce, 0x93, 0xb2, 0xa2, 0x5f, 0xa4, 0x49, 0x9d,
- 0x55, 0xb7, 0x59, 0xd5, 0x4f, 0x96, 0x75, 0x5e, 0x5c, 0x27, 0x65, 0x91,
- 0x25, 0xe5, 0x55, 0xd2, 0xdc, 0x64, 0xda, 0x5c, 0xbd, 0x5c, 0x2c, 0xca,
- 0xaa, 0xc9, 0xa6, 0xc9, 0xa2, 0x2a, 0x9b, 0x72, 0x52, 0xce, 0xea, 0x64,
- 0xeb, 0xf5, 0xc9, 0xd1, 0x65, 0x3f, 0x79, 0x73, 0x72, 0x7a, 0x6c, 0xfe,
- 0x7b, 0x79, 0x8e, 0xff, 0x8c, 0xfa, 0xc9, 0x37, 0x67, 0xe7, 0xdf, 0x1e,
- 0x5f, 0xf4, 0x93, 0x6f, 0x2f, 0xe9, 0x67, 0xf4, 0x5f, 0xf3, 0xc3, 0xe4,
- 0xe4, 0xed, 0xe1, 0x79, 0x5f, 0x9b, 0xa3, 0x7f, 0xd0, 0x0f, 0x4f, 0x5f,
- 0x9b, 0x1f, 0xf2, 0x1f, 0xf4, 0xcf, 0xf3, 0xb3, 0xf3, 0x27, 0xf2, 0x07,
- 0xfd, 0xf3, 0xe2, 0xf2, 0xad, 0xf9, 0xed, 0xc5, 0xe5, 0xc8, 0xfc, 0x77,
- 0x74, 0x44, 0xff, 0xc1, 0x57, 0x46, 0x6f, 0xbf, 0xc6, 0x7f, 0x46, 0xb6,
- 0xb9, 0xd1, 0x5b, 0xfe, 0x39, 0xbe, 0x74, 0x79, 0x7c, 0xfa, 0xee, 0xf8,
- 0x32, 0x49, 0x8b, 0x69, 0x72, 0x69, 0x9e, 0xdf, 0x1e, 0x26, 0x97, 0x37,
- 0x59, 0x32, 0x29, 0xe7, 0x73, 0xfa, 0x91, 0x99, 0x91, 0x69, 0x56, 0xe7,
- 0xd7, 0x85, 0x19, 0x8a, 0x19, 0xf9, 0x5d, 0x59, 0x7d, 0x4c, 0x92, 0xbb,
- 0xbc, 0xb9, 0x29, 0x97, 0x8d, 0x36, 0xb7, 0x34, 0xb3, 0x91, 0xe4, 0x45,
- 0x93, 0x55, 0xe9, 0x84, 0xe6, 0x7a, 0xb8, 0xd1, 0x9a, 0xd5, 0xf2, 0xca,
- 0xcc, 0x61, 0x6d, 0x26, 0x6d, 0xbc, 0xac, 0x67, 0x65, 0x3a, 0xa5, 0xa9,
- 0x32, 0xaf, 0x5c, 0x2d, 0xcd, 0x24, 0x57, 0xf9, 0xe4, 0x63, 0x9d, 0xcc,
- 0xf2, 0x8f, 0x19, 0x4d, 0xd4, 0xa7, 0x7b, 0x9d, 0xb8, 0x3e, 0x37, 0x9a,
- 0x2e, 0xcd, 0x9c, 0x16, 0x03, 0x6d, 0xae, 0xc9, 0x27, 0x29, 0x7d, 0x00,
- 0x33, 0x97, 0x2c, 0x17, 0xd4, 0x1a, 0xcf, 0x58, 0xb2, 0x28, 0x6b, 0xf3,
- 0xd2, 0x68, 0x74, 0x6a, 0x7a, 0x5e, 0x14, 0x19, 0xfa, 0x51, 0xf7, 0xcd,
- 0x3f, 0xca, 0x8f, 0x79, 0x66, 0xfe, 0x72, 0x95, 0xcf, 0xb2, 0x84, 0x57,
- 0xd4, 0x36, 0x47, 0x4b, 0x9b, 0x54, 0x59, 0xbd, 0x9c, 0x67, 0x66, 0xf6,
- 0xde, 0x66, 0x4d, 0x3a, 0xcb, 0x8b, 0x8f, 0xe6, 0xaf, 0x34, 0xf0, 0x79,
- 0x59, 0x65, 0xc3, 0xe4, 0xb0, 0x4e, 0xee, 0xcb, 0xa5, 0x19, 0xf0, 0x6c,
- 0x66, 0xd6, 0x3c, 0x4b, 0xc6, 0xd9, 0xac, 0xbc, 0xeb, 0xd3, 0x4a, 0x27,
- 0xc5, 0x72, 0x3e, 0x36, 0x0d, 0x94, 0x57, 0xae, 0xb9, 0xb4, 0x59, 0x9a,
- 0xe6, 0xf8, 0xe9, 0x79, 0x6a, 0xc6, 0x64, 0xde, 0xad, 0x92, 0x9b, 0xcc,
- 0x8c, 0xb9, 0x5e, 0xe4, 0xc5, 0xbf, 0xb4, 0xe7, 0xc5, 0x4c, 0xed, 0xa2,
- 0xbc, 0xcb, 0x2a, 0x33, 0xb3, 0xe3, 0xfb, 0xc4, 0x4c, 0xc2, 0x98, 0x37,
- 0xe1, 0x95, 0xd9, 0x64, 0x49, 0x6a, 0x9a, 0xb0, 0x1b, 0x70, 0x50, 0x65,
- 0xb3, 0x94, 0x36, 0x93, 0xfd, 0xc6, 0xd0, 0x2c, 0x62, 0x66, 0x77, 0x9b,
- 0xbc, 0xba, 0xf5, 0x64, 0x1b, 0x2f, 0x4f, 0xcd, 0x48, 0xf2, 0x59, 0x6d,
- 0x96, 0x81, 0x8e, 0x85, 0x3c, 0x43, 0x8b, 0x4a, 0xc7, 0xc4, 0xec, 0xcd,
- 0xfb, 0xa2, 0x49, 0x3f, 0xe1, 0xf3, 0xb2, 0x37, 0x07, 0xd3, 0x6c, 0x91,
- 0x15, 0xd3, 0xac, 0x68, 0x86, 0xc9, 0x9f, 0xcb, 0xe5, 0xa6, 0xf9, 0xf6,
- 0x55, 0x6e, 0xe6, 0x20, 0x95, 0xa6, 0xcc, 0x97, 0xcd, 0x26, 0x98, 0x54,
- 0xf9, 0xc2, 0x5b, 0x8a, 0xb2, 0x30, 0x6b, 0x9e, 0x5c, 0xbc, 0x39, 0x4a,
- 0x9e, 0xbc, 0xf8, 0xfc, 0xb9, 0x5b, 0x73, 0xd3, 0x40, 0x32, 0x49, 0x0b,
- 0x33, 0xe2, 0x6c, 0x92, 0x5f, 0xdd, 0x27, 0xf3, 0xe5, 0xac, 0xc9, 0x17,
- 0x66, 0xf6, 0xcd, 0xc7, 0x6b, 0x3a, 0x40, 0x8b, 0xb4, 0x6a, 0x6a, 0xda,
- 0x04, 0xf8, 0x01, 0xc6, 0x7e, 0x57, 0xe5, 0x0d, 0x1d, 0x24, 0xfc, 0xce,
- 0xf4, 0x30, 0x6b, 0x6a, 0x6d, 0x8e, 0xf6, 0x9a, 0xf9, 0xce, 0xd8, 0xec,
- 0x2d, 0x33, 0xb5, 0x69, 0x6d, 0x3e, 0x7a, 0xb0, 0xe1, 0x64, 0xc8, 0x4d,
- 0xd3, 0x2c, 0x0e, 0x76, 0x76, 0xea, 0xbc, 0xc9, 0x86, 0xff, 0x69, 0xce,
- 0x61, 0xbf, 0xb9, 0x2b, 0xfb, 0xcd, 0x4d, 0x95, 0x65, 0xff, 0x35, 0x34,
- 0x7b, 0xd8, 0x3e, 0x69, 0xbe, 0x7b, 0x2f, 0x1d, 0xbb, 0xce, 0x1a, 0xf3,
- 0x85, 0xbf, 0x2d, 0xb3, 0x82, 0x5a, 0x34, 0xfd, 0x48, 0x67, 0x8b, 0x9b,
- 0xd4, 0x2c, 0x67, 0x66, 0x76, 0x23, 0x9d, 0x6c, 0xb3, 0x61, 0xa8, 0x57,
- 0x7c, 0xb6, 0xff, 0xf2, 0x73, 0xf8, 0xd1, 0x2b, 0x7c, 0xd3, 0xfc, 0x77,
- 0x98, 0x7d, 0x4a, 0xe7, 0x66, 0x6c, 0xf4, 0xa9, 0x1d, 0xda, 0x62, 0x7f,
- 0xd9, 0x1b, 0xec, 0xed, 0xee, 0xfe, 0x3c, 0x6c, 0x3e, 0x35, 0x8f, 0x7b,
- 0x7e, 0x77, 0xd7, 0xbd, 0x41, 0x8f, 0x6e, 0xd1, 0x78, 0x93, 0x99, 0xd9,
- 0x32, 0xf4, 0xf1, 0xbf, 0x67, 0x55, 0x59, 0x6f, 0x3f, 0xae, 0xa5, 0x74,
- 0xf0, 0xf7, 0xf6, 0x77, 0xdf, 0x65, 0x35, 0xf6, 0x8c, 0x1b, 0x6b, 0x92,
- 0x56, 0x66, 0xdf, 0x96, 0x8d, 0x13, 0x4f, 0x7d, 0x73, 0x28, 0x1b, 0x3b,
- 0x33, 0xe6, 0xcc, 0x99, 0xa7, 0x8d, 0x60, 0x4b, 0x67, 0x24, 0xd3, 0xea,
- 0xa4, 0xc8, 0x3e, 0xd9, 0x53, 0x6e, 0x4e, 0x7f, 0x96, 0x4e, 0x6e, 0x92,
- 0xd2, 0x6c, 0xfe, 0x2a, 0xb2, 0x04, 0x7e, 0x87, 0xd2, 0x6a, 0x72, 0x93,
- 0xdf, 0x9a, 0xd9, 0x78, 0xf1, 0xe2, 0xf9, 0xc0, 0xfc, 0xe7, 0xc5, 0xcf,
- 0x3b, 0xb7, 0xe5, 0xcc, 0x4c, 0xce, 0xd3, 0x9f, 0x77, 0x68, 0x89, 0xff,
- 0x33, 0xed, 0x8f, 0xfb, 0x93, 0xff, 0x1a, 0xde, 0x34, 0xf3, 0xd9, 0xca,
- 0x8d, 0x93, 0x16, 0xe6, 0xff, 0xe6, 0xe5, 0xb2, 0x68, 0xec, 0x66, 0x31,
- 0x7b, 0xae, 0xf1, 0x84, 0x93, 0x39, 0xae, 0xe6, 0x8c, 0xd2, 0xd6, 0xa6,
- 0x3d, 0x44, 0xa7, 0xce, 0x1c, 0x50, 0x77, 0x1c, 0x9b, 0xc9, 0x8d, 0x19,
- 0xbf, 0xd9, 0x3c, 0xa9, 0xcc, 0x41, 0x93, 0xa7, 0x74, 0x30, 0x8d, 0x7c,
- 0x20, 0x79, 0x85, 0xa6, 0xf8, 0x63, 0xb9, 0x79, 0xae, 0xac, 0xa6, 0x59,
- 0xd5, 0xde, 0xc6, 0xe8, 0x8e, 0xeb, 0x4f, 0x62, 0xe6, 0x73, 0x61, 0x3e,
- 0xbe, 0x24, 0x51, 0x87, 0x93, 0x46, 0x2d, 0x98, 0x33, 0x7a, 0x6d, 0xa6,
- 0xca, 0x4c, 0x0f, 0x6d, 0x2c, 0x9a, 0xbd, 0xfb, 0xe4, 0x9d, 0x59, 0x43,
- 0x96, 0x0f, 0xde, 0xfe, 0x9b, 0x65, 0x4d, 0xf3, 0xe0, 0xcc, 0xb9, 0x4d,
- 0x74, 0xb0, 0x17, 0xec, 0xa3, 0x55, 0xcf, 0x9b, 0xa5, 0x3f, 0xd8, 0x6f,
- 0x3f, 0xfc, 0x83, 0x91, 0x9b, 0x6e, 0x07, 0x9b, 0xaf, 0xff, 0xe7, 0x7f,
- 0x79, 0x1b, 0xe1, 0x8e, 0x7e, 0x9b, 0x17, 0xb7, 0xe5, 0x47, 0x33, 0x70,
- 0x5c, 0x6c, 0x69, 0x6b, 0x52, 0x13, 0x12, 0x0d, 0xf3, 0x45, 0x63, 0x6f,
- 0x0c, 0xda, 0x21, 0xe6, 0x47, 0xe3, 0x74, 0x3c, 0xbb, 0x4f, 0x6e, 0xd2,
- 0xdb, 0x8c, 0xc6, 0xbb, 0x30, 0x5b, 0x87, 0x66, 0xc0, 0x48, 0xf2, 0x19,
- 0x44, 0x8b, 0x9c, 0xd5, 0x69, 0xb9, 0x1c, 0x9b, 0xf3, 0xfe, 0xb7, 0x65,
- 0xd9, 0xf0, 0xc4, 0xa4, 0xb7, 0x65, 0x3e, 0x6d, 0x5d, 0x8f, 0x37, 0x19,
- 0xc9, 0x18, 0xfa, 0x30, 0xee, 0x0d, 0x23, 0xe3, 0xa8, 0xa7, 0xd8, 0xfb,
- 0x79, 0x43, 0x37, 0x90, 0x91, 0x4e, 0xe9, 0xac, 0x2e, 0x93, 0xe4, 0xba,
- 0xa4, 0x8d, 0x0b, 0x99, 0x88, 0x9d, 0x67, 0x16, 0xe5, 0x26, 0xa5, 0x8b,
- 0xc6, 0xdc, 0x29, 0x76, 0x6b, 0x56, 0x19, 0xc4, 0x23, 0x56, 0x2a, 0x9d,
- 0xf5, 0xf9, 0x42, 0xa1, 0x77, 0x64, 0xaa, 0x92, 0xcd, 0x7f, 0xdd, 0xec,
- 0x27, 0x9b, 0xff, 0xbe, 0x09, 0xd1, 0xbe, 0xf9, 0x6f, 0x9b, 0x6e, 0x9d,
- 0x8d, 0x86, 0x74, 0x9b, 0x4f, 0xe9, 0x6e, 0x30, 0x23, 0x39, 0x39, 0xbf,
- 0x7d, 0x9e, 0xfc, 0x9d, 0xae, 0x73, 0x23, 0xfe, 0xb2, 0x4f, 0xba, 0x49,
- 0x74, 0x6c, 0xe6, 0xed, 0xc4, 0xc8, 0xc1, 0x74, 0x41, 0xf7, 0x7a, 0x56,
- 0x4d, 0xcc, 0x8e, 0x4a, 0xaf, 0xcd, 0x1e, 0x32, 0xd7, 0xa3, 0x36, 0x47,
- 0xed, 0xd3, 0x2b, 0x3c, 0x2c, 0x23, 0xb3, 0x92, 0x22, 0x9d, 0x9b, 0x4d,
- 0x7a, 0x4a, 0x3d, 0xca, 0x8b, 0x70, 0x31, 0xff, 0x72, 0x95, 0x7d, 0xbe,
- 0x7b, 0x70, 0xf0, 0xe4, 0x8f, 0xfb, 0xcf, 0xb2, 0xe6, 0x66, 0xf7, 0xe7,
- 0x1d, 0xfb, 0xc8, 0xc9, 0x15, 0xa6, 0x5d, 0xb7, 0x9f, 0x76, 0xc2, 0x5c,
- 0xbc, 0x56, 0x70, 0x9b, 0xf7, 0xcd, 0xdf, 0xb3, 0xab, 0xfc, 0x53, 0x5f,
- 0x55, 0x18, 0x3e, 0x06, 0xa9, 0xd9, 0x6a, 0x66, 0xfd, 0xe8, 0xd4, 0x6a,
- 0x73, 0xd7, 0xcb, 0xac, 0x36, 0x33, 0x79, 0x77, 0x93, 0x36, 0x89, 0x6d,
- 0x80, 0x57, 0x76, 0x9e, 0x5f, 0xdf, 0x34, 0xc9, 0x5d, 0x4a, 0xf2, 0xff,
- 0xa4, 0xe1, 0x26, 0xe8, 0xe2, 0x35, 0x52, 0xff, 0x2a, 0x35, 0xe2, 0x9b,
- 0xd6, 0x10, 0xb7, 0xec, 0xd8, 0x5d, 0xfa, 0x8d, 0xd9, 0xe6, 0xbc, 0x20,
- 0x4e, 0xc3, 0x19, 0xa7, 0x35, 0x1d, 0xa4, 0xc2, 0x9c, 0xd7, 0xc6, 0x5c,
- 0xdb, 0x4b, 0xfa, 0xd7, 0x8d, 0xb9, 0x98, 0x31, 0x07, 0xd2, 0x51, 0xdc,
- 0x5d, 0x6f, 0x68, 0x39, 0x69, 0x6d, 0xec, 0x7d, 0x62, 0x16, 0xa9, 0x2f,
- 0xcb, 0x6c, 0xdf, 0xa8, 0xcd, 0x81, 0x33, 0xc2, 0xc2, 0xee, 0x8c, 0x1e,
- 0xc9, 0xbd, 0x1e, 0x8f, 0x13, 0x7d, 0x4c, 0x6b, 0xba, 0xbb, 0xf9, 0x86,
- 0x36, 0x9d, 0xf7, 0x06, 0x6b, 0x26, 0x2d, 0xfd, 0x48, 0x5a, 0x42, 0x47,
- 0x17, 0xc1, 0x6b, 0xd3, 0xd2, 0x6c, 0x32, 0xd3, 0x5b, 0x23, 0x1f, 0x69,
- 0x64, 0x24, 0xf5, 0x30, 0x2b, 0xd8, 0xe4, 0xa6, 0x4d, 0xfa, 0x61, 0xde,
- 0x90, 0xd8, 0x87, 0x62, 0x69, 0xfa, 0x6b, 0x26, 0x05, 0xba, 0xa1, 0x91,
- 0x9d, 0xde, 0xf8, 0x71, 0x63, 0x99, 0x67, 0x93, 0x5b, 0xa3, 0x38, 0x18,
- 0x1d, 0x31, 0xb3, 0x6f, 0xe1, 0x8a, 0x9d, 0x90, 0xba, 0x32, 0x33, 0xe7,
- 0x65, 0x52, 0x56, 0x15, 0x29, 0xe1, 0xb4, 0x82, 0x63, 0x96, 0x6b, 0xf3,
- 0xcc, 0xdc, 0xec, 0xfe, 0x74, 0xe6, 0x74, 0xc7, 0x18, 0xf9, 0x62, 0x54,
- 0x05, 0x48, 0x10, 0x73, 0xa5, 0x43, 0x0c, 0x63, 0xe0, 0xe8, 0x1d, 0xb5,
- 0x3d, 0x99, 0x64, 0x8b, 0xa6, 0x8e, 0x8d, 0x49, 0x17, 0xdc, 0x74, 0xa7,
- 0xca, 0x68, 0xe6, 0x7d, 0x3d, 0x08, 0xf3, 0x6a, 0xef, 0x61, 0xa8, 0x42,
- 0xaa, 0x5a, 0x18, 0xd5, 0xa8, 0xb6, 0xb3, 0xd6, 0x60, 0x6f, 0x18, 0x31,
- 0x86, 0x39, 0x9f, 0x53, 0x47, 0xe9, 0xe1, 0x9a, 0x4f, 0x2a, 0xc4, 0x25,
- 0x2d, 0x24, 0x2b, 0xbf, 0xfc, 0x5d, 0xba, 0x4d, 0xcc, 0x7c, 0xda, 0xc6,
- 0xcd, 0x57, 0xed, 0x9a, 0xd2, 0xe7, 0x6b, 0x63, 0x36, 0x98, 0xcb, 0x75,
- 0x5a, 0xdf, 0x18, 0x7d, 0xa8, 0x96, 0x93, 0x9d, 0xcf, 0xcd, 0x9e, 0xb9,
- 0xa5, 0xf5, 0x5d, 0x64, 0xd9, 0x74, 0x98, 0x9c, 0x5d, 0x91, 0x54, 0xad,
- 0x4c, 0xa7, 0x1b, 0xfc, 0x9a, 0x04, 0xbd, 0x99, 0xb7, 0x29, 0xf4, 0x6a,
- 0x7b, 0xb4, 0xb8, 0x2b, 0x9e, 0xc4, 0xa6, 0x9d, 0x66, 0x26, 0x3b, 0x21,
- 0x29, 0x37, 0x6b, 0xdf, 0x0a, 0x38, 0x87, 0x46, 0x7a, 0x53, 0xf7, 0xc6,
- 0x59, 0x82, 0x9d, 0x38, 0xce, 0x9a, 0xbb, 0x2c, 0xb3, 0xcd, 0xd5, 0x99,
- 0xb9, 0x89, 0x68, 0xd1, 0x58, 0x19, 0x83, 0x30, 0xa4, 0xa9, 0x3d, 0xbf,
- 0x38, 0xfb, 0xe6, 0xe2, 0x78, 0x34, 0x4a, 0xde, 0x1e, 0x5f, 0x1e, 0x5f,
- 0xb4, 0x66, 0xba, 0x28, 0xab, 0x39, 0x56, 0x74, 0x9a, 0xd7, 0x8b, 0x59,
- 0x7a, 0x4f, 0x4b, 0x6d, 0x46, 0x72, 0x5d, 0xd1, 0xc9, 0x9a, 0x67, 0x74,
- 0x2b, 0x4c, 0x97, 0x90, 0x64, 0x49, 0x69, 0xe4, 0x43, 0x2a, 0x4a, 0x28,
- 0x09, 0x13, 0x68, 0xae, 0xc5, 0xb5, 0x9b, 0x69, 0x23, 0x71, 0xe4, 0x72,
- 0xa3, 0xdb, 0xcd, 0xae, 0x07, 0x69, 0x83, 0xb0, 0x37, 0xfa, 0xee, 0x67,
- 0x3c, 0x4d, 0x35, 0xc6, 0x64, 0xf6, 0x6c, 0x3e, 0x87, 0xb0, 0x33, 0x7f,
- 0x3a, 0x05, 0x30, 0xbb, 0x32, 0xda, 0xaf, 0xb9, 0xf0, 0x58, 0x79, 0xef,
- 0xf6, 0x49, 0x7b, 0x6b, 0x55, 0x56, 0xb3, 0x0d, 0x49, 0x34, 0x53, 0x83,
- 0xdc, 0x15, 0xfe, 0x82, 0x15, 0x62, 0x46, 0x4d, 0x20, 0xd9, 0x27, 0x8f,
- 0x2d, 0xa8, 0x0b, 0x99, 0x59, 0xd9, 0x29, 0x37, 0x5f, 0x2f, 0xaf, 0x70,
- 0x90, 0x93, 0x2d, 0xa3, 0x2c, 0xbf, 0x35, 0x06, 0x8c, 0x31, 0x22, 0xfa,
- 0xc9, 0xf9, 0x36, 0xde, 0xdb, 0xdb, 0xdd, 0x7f, 0xca, 0x82, 0x60, 0xa8,
- 0xcd, 0xbd, 0xf1, 0x04, 0xf1, 0xde, 0x47, 0x5a, 0x5e, 0x7e, 0x88, 0x1a,
- 0x1f, 0x26, 0x7b, 0x6f, 0xf9, 0x27, 0x4f, 0x3f, 0x7f, 0xf6, 0xd9, 0x73,
- 0xf9, 0x61, 0x7b, 0x83, 0xdb, 0xfe, 0x63, 0x77, 0xc0, 0x18, 0x23, 0xeb,
- 0xcc, 0xf4, 0xc4, 0x8c, 0x6e, 0x9e, 0x17, 0xe6, 0x98, 0x98, 0x63, 0x25,
- 0xb2, 0x8a, 0xf6, 0xb3, 0xe9, 0xfc, 0x15, 0x4b, 0x36, 0x59, 0xd7, 0xb6,
- 0x95, 0x67, 0x5e, 0x36, 0x5b, 0xd6, 0xc8, 0x72, 0xbb, 0x48, 0x98, 0x09,
- 0x73, 0xc0, 0xe8, 0xd6, 0x19, 0x93, 0x80, 0x25, 0x53, 0xc7, 0xe8, 0xa4,
- 0x59, 0xf4, 0x6b, 0xf6, 0x56, 0x34, 0x6f, 0x98, 0xbe, 0x99, 0x3b, 0x91,
- 0xae, 0xb9, 0x70, 0xde, 0x8d, 0x28, 0x80, 0x84, 0xbc, 0xcb, 0x6b, 0x88,
- 0x86, 0xbb, 0x72, 0x39, 0x33, 0x86, 0x05, 0x3d, 0xb0, 0x5c, 0xe0, 0x05,
- 0xf3, 0xa9, 0x85, 0x93, 0x01, 0xf3, 0xfc, 0x13, 0xed, 0x9d, 0x6e, 0x2b,
- 0xa6, 0x6b, 0xe6, 0x9f, 0x0b, 0xb3, 0x95, 0xb8, 0x3b, 0xc3, 0xee, 0x0d,
- 0x01, 0xd9, 0x17, 0xec, 0x44, 0x3a, 0xf3, 0x10, 0xda, 0xe7, 0x67, 0xa3,
- 0x4b, 0xd2, 0x00, 0xce, 0xdf, 0x5f, 0x9a, 0x86, 0x8c, 0x0a, 0x50, 0x37,
- 0x66, 0x53, 0xd2, 0x8b, 0x45, 0x06, 0xab, 0x4e, 0x9b, 0x33, 0x7b, 0x2f,
- 0x87, 0xa0, 0x82, 0x5a, 0xa3, 0x9f, 0xe4, 0x3e, 0xb2, 0xd9, 0x4b, 0x47,
- 0x50, 0x8d, 0x5e, 0xbe, 0xc3, 0xed, 0x3b, 0xc9, 0xd6, 0x97, 0xdb, 0x66,
- 0xcf, 0x0e, 0x4a, 0x3b, 0x3b, 0x83, 0x81, 0xbc, 0x6a, 0xbe, 0x5d, 0xe7,
- 0xf3, 0x7c, 0x96, 0x7a, 0xea, 0x95, 0x48, 0x54, 0x3a, 0x9f, 0x56, 0xae,
- 0x4c, 0xcc, 0xae, 0x41, 0xb7, 0x9d, 0x75, 0x47, 0x73, 0x08, 0xa9, 0xe4,
- 0x96, 0x6a, 0x4a, 0x0a, 0x01, 0x94, 0xd8, 0x45, 0x6e, 0xa7, 0x8e, 0xd6,
- 0x8c, 0xc4, 0x55, 0x6b, 0xa2, 0xba, 0xeb, 0x16, 0x4c, 0x1c, 0xdd, 0x48,
- 0x70, 0x1f, 0xd8, 0xa9, 0x4b, 0x7a, 0xe3, 0xb4, 0xea, 0x25, 0x56, 0x16,
- 0xf3, 0xd9, 0xa4, 0x13, 0x52, 0x65, 0xd7, 0x4b, 0x33, 0x82, 0x84, 0x67,
- 0x97, 0x46, 0xfa, 0x07, 0x6f, 0xa4, 0xda, 0xc0, 0x60, 0x4c, 0x8f, 0xe4,
- 0x35, 0x5b, 0x7e, 0x57, 0xc6, 0x94, 0xa0, 0x43, 0xa3, 0x9a, 0x2d, 0x34,
- 0x1a, 0xd9, 0x31, 0x91, 0x0d, 0x63, 0x77, 0x69, 0x49, 0x47, 0xa5, 0xc9,
- 0x8c, 0xa0, 0x81, 0xf8, 0xa7, 0x27, 0x07, 0x66, 0xc9, 0x06, 0x83, 0xda,
- 0xcc, 0x3f, 0xa9, 0xc3, 0x0b, 0x31, 0xb3, 0xcf, 0xe0, 0xc3, 0xb0, 0x0e,
- 0x8f, 0x33, 0x76, 0x75, 0xf0, 0xb5, 0xc9, 0xef, 0x42, 0x84, 0x1a, 0x45,
- 0xf5, 0xce, 0x7c, 0x38, 0x35, 0x4b, 0x66, 0x0e, 0xdc, 0x5b, 0x9a, 0x28,
- 0x76, 0x57, 0x24, 0xd2, 0x54, 0x9d, 0x60, 0x67, 0xe4, 0x74, 0xee, 0x53,
- 0xa7, 0xcb, 0x4c, 0xa7, 0x39, 0xfd, 0xd6, 0x9c, 0x2f, 0x73, 0xc3, 0x2d,
- 0x33, 0x98, 0x03, 0x32, 0xa9, 0x73, 0x37, 0x99, 0xb0, 0x2c, 0xeb, 0x9b,
- 0x92, 0x2c, 0xb7, 0x1e, 0xcb, 0xe2, 0x01, 0x7d, 0xab, 0x87, 0xfb, 0x7c,
- 0x9e, 0xe8, 0xb7, 0xe4, 0x53, 0x66, 0x1c, 0x53, 0x5f, 0x37, 0xeb, 0x9b,
- 0x8b, 0xe6, 0xde, 0xd3, 0xdb, 0x21, 0xab, 0xb9, 0xef, 0x95, 0x55, 0x78,
- 0xcc, 0x95, 0xba, 0x20, 0x65, 0x4a, 0x64, 0x38, 0x2e, 0x43, 0x1c, 0xd9,
- 0x9a, 0xbb, 0xd6, 0x37, 0x73, 0x4b, 0x4f, 0x5e, 0xdf, 0xe8, 0xa3, 0xde,
- 0xc5, 0x9a, 0x9a, 0xc1, 0xd1, 0xe5, 0x40, 0x26, 0xee, 0x54, 0xe5, 0x7e,
- 0x59, 0xb1, 0x30, 0x9b, 0x95, 0x66, 0x2f, 0xf7, 0x58, 0x65, 0x95, 0x6e,
- 0x53, 0xaf, 0xa9, 0x97, 0x34, 0xe3, 0xec, 0xfa, 0x29, 0xed, 0xda, 0xd8,
- 0x4e, 0xcb, 0x7c, 0xd5, 0x0f, 0x76, 0xcd, 0x4d, 0xd4, 0x08, 0x73, 0x64,
- 0xae, 0xce, 0x9a, 0xf6, 0xb1, 0xce, 0x3c, 0xb6, 0xb7, 0xb9, 0xea, 0x36,
- 0x1b, 0x3e, 0x8f, 0x30, 0x7b, 0x3a, 0x33, 0x5f, 0x63, 0xfb, 0xc8, 0x45,
- 0x66, 0x47, 0x66, 0x46, 0x34, 0xcd, 0x53, 0xec, 0x13, 0x5e, 0x1a, 0x28,
- 0x23, 0xce, 0x48, 0x8b, 0xe8, 0xc1, 0xf7, 0x5d, 0x1b, 0x6b, 0x36, 0xf3,
- 0xaf, 0x24, 0xed, 0xd3, 0xe0, 0xcc, 0x8c, 0xfd, 0x14, 0xe3, 0x18, 0xdc,
- 0x26, 0x74, 0xfc, 0x8c, 0xd9, 0x40, 0x67, 0x71, 0x70, 0x76, 0x7a, 0xeb,
- 0x1d, 0x23, 0x32, 0xa6, 0x0b, 0xd2, 0x53, 0xfa, 0x70, 0x58, 0x8c, 0xcb,
- 0xd2, 0x58, 0xae, 0x6e, 0x68, 0x74, 0x1f, 0x64, 0x05, 0xed, 0x76, 0x59,
- 0x51, 0x23, 0x12, 0x16, 0x56, 0xde, 0xde, 0x1b, 0x73, 0x29, 0xbd, 0x4e,
- 0x73, 0xbb, 0xdf, 0xe4, 0x64, 0x4c, 0x13, 0x7d, 0xb8, 0x28, 0xe5, 0x79,
- 0x5a, 0x2a, 0x52, 0x81, 0x44, 0x6e, 0x2d, 0x6b, 0x3e, 0x3e, 0x66, 0x54,
- 0x46, 0xf2, 0x40, 0x76, 0x48, 0xbb, 0xa4, 0x36, 0x6a, 0x73, 0x63, 0x28,
- 0xca, 0xa4, 0x73, 0x42, 0xf8, 0x42, 0x83, 0x34, 0x2d, 0xf6, 0x86, 0xc9,
- 0xb7, 0xe5, 0x5d, 0x06, 0xf7, 0x1d, 0xf4, 0xfb, 0x9c, 0x1c, 0x50, 0x46,
- 0x15, 0xbc, 0xcb, 0x92, 0xb9, 0x51, 0x3d, 0xcd, 0x6c, 0x42, 0xfb, 0xc0,
- 0xcf, 0x4c, 0x3f, 0x9d, 0xcd, 0x52, 0xde, 0xf1, 0x2c, 0xd9, 0x51, 0xd8,
- 0xa5, 0xbc, 0xe2, 0x23, 0x91, 0x6c, 0x41, 0xbd, 0x99, 0xd0, 0x6c, 0x2d,
- 0x1a, 0x37, 0x0a, 0x3b, 0x21, 0x77, 0x69, 0xed, 0x1d, 0x2e, 0x36, 0x4e,
- 0x93, 0xcf, 0x86, 0x7b, 0x2f, 0x86, 0xbb, 0x43, 0x32, 0x45, 0xb2, 0xdb,
- 0xbc, 0x5c, 0xd6, 0xb4, 0x9e, 0xd4, 0x13, 0xef, 0x74, 0x92, 0x9b, 0x88,
- 0x96, 0xf7, 0xfa, 0x7a, 0xc6, 0x8a, 0xcf, 0x4e, 0x79, 0x75, 0x95, 0x78,
- 0xca, 0x51, 0x95, 0x2d, 0xd8, 0x06, 0xa2, 0xb9, 0x91, 0x03, 0xc7, 0x42,
- 0xd5, 0xd7, 0x8a, 0x64, 0x36, 0x9d, 0x47, 0x61, 0x30, 0x48, 0xc7, 0x75,
- 0x43, 0xe6, 0xd4, 0x60, 0x59, 0xe4, 0x9f, 0x06, 0x75, 0x39, 0xf9, 0x68,
- 0x96, 0xe5, 0xe5, 0x22, 0x6d, 0x6e, 0xbe, 0xec, 0x78, 0x6a, 0xb7, 0xe8,
- 0x36, 0xd9, 0x4e, 0x92, 0x23, 0x56, 0x2c, 0x69, 0x2e, 0x2a, 0x3e, 0x71,
- 0x66, 0x3d, 0xa5, 0x95, 0xe4, 0xbd, 0x69, 0xc5, 0xec, 0xe6, 0xb9, 0x59,
- 0xd6, 0x84, 0x1b, 0xeb, 0xab, 0x30, 0xed, 0x34, 0x07, 0x2f, 0x20, 0x5d,
- 0x24, 0x70, 0xa6, 0x99, 0xc3, 0x53, 0x56, 0x1f, 0x87, 0xe4, 0xb6, 0x30,
- 0x56, 0xe3, 0x01, 0x6d, 0xe8, 0xc6, 0x88, 0xb1, 0x86, 0xe7, 0xbd, 0x16,
- 0x21, 0x4c, 0xdd, 0x62, 0x99, 0xec, 0xa4, 0x94, 0xce, 0xa7, 0xf6, 0x40,
- 0x3e, 0x9b, 0xa8, 0xbd, 0x21, 0x5b, 0x6f, 0xf3, 0x2b, 0x63, 0x01, 0xde,
- 0xf0, 0xc2, 0xa3, 0x31, 0x1e, 0xa3, 0xd9, 0xa3, 0xd7, 0xc6, 0x86, 0x28,
- 0x9a, 0x4e, 0x73, 0xe6, 0xab, 0x74, 0x59, 0xd3, 0x3d, 0xc3, 0xe6, 0x2e,
- 0xb6, 0x89, 0xb8, 0x65, 0xac, 0x05, 0x3a, 0xdc, 0xe8, 0xbc, 0x76, 0xa8,
- 0xab, 0xfa, 0xd9, 0xf0, 0xd9, 0x13, 0xb3, 0xa8, 0xfe, 0x44, 0x17, 0xf7,
- 0xe4, 0xce, 0x8c, 0x4f, 0xea, 0xa5, 0xb9, 0x4b, 0x6b, 0x56, 0x4f, 0xcc,
- 0x19, 0xbe, 0xca, 0xaf, 0x97, 0x55, 0xc6, 0x97, 0x1a, 0x3c, 0xa0, 0xea,
- 0xf8, 0xa4, 0x7b, 0xe2, 0xa6, 0x84, 0xbf, 0xd0, 0xc8, 0x97, 0x6c, 0x76,
- 0xd5, 0xef, 0xce, 0x02, 0x69, 0x74, 0xb4, 0x05, 0x30, 0x44, 0x6c, 0x22,
- 0xa3, 0xb9, 0xa1, 0xb1, 0x22, 0x93, 0x7b, 0x7d, 0x6e, 0x26, 0x38, 0x21,
- 0x87, 0x59, 0x32, 0x99, 0xa5, 0xf9, 0x1c, 0xe6, 0x8e, 0x38, 0x84, 0x86,
- 0x9d, 0xe6, 0x2e, 0x45, 0x1d, 0x87, 0x26, 0x3e, 0x26, 0x6b, 0xa0, 0xaa,
- 0x49, 0x58, 0xd1, 0x24, 0xa4, 0xaa, 0x4c, 0xb0, 0xae, 0x7d, 0x93, 0x4d,
- 0x3e, 0xea, 0x6a, 0xea, 0x2d, 0x3c, 0xe8, 0x34, 0x47, 0x9e, 0x50, 0x98,
- 0x1c, 0xe6, 0xa9, 0xa5, 0x59, 0xd3, 0x45, 0x59, 0xd7, 0x39, 0x79, 0x14,
- 0x48, 0x43, 0x5e, 0x4e, 0xa0, 0x38, 0x93, 0x89, 0xfd, 0xc9, 0xac, 0xa4,
- 0x6e, 0x89, 0xc4, 0xec, 0xb1, 0x62, 0x3a, 0x68, 0xaa, 0x7c, 0xb1, 0xaa,
- 0x77, 0x7c, 0x65, 0xb4, 0xef, 0xec, 0x5a, 0x8c, 0x18, 0xd8, 0x07, 0x6c,
- 0x31, 0x4c, 0x92, 0xce, 0x6c, 0x76, 0x9a, 0xe3, 0xb9, 0xed, 0x93, 0x89,
- 0x9c, 0x1b, 0x11, 0xca, 0xfa, 0x23, 0x3c, 0x40, 0x46, 0x5b, 0x94, 0xb3,
- 0x6c, 0x14, 0xdb, 0x7c, 0x82, 0x7b, 0x21, 0xbf, 0xce, 0xc8, 0xe3, 0x6c,
- 0x8e, 0x77, 0x33, 0x33, 0xb7, 0x85, 0x27, 0x28, 0xec, 0x8a, 0x17, 0xd9,
- 0x75, 0xd9, 0x90, 0x80, 0x0e, 0xb6, 0xc9, 0x7b, 0x6c, 0x7c, 0xbb, 0x27,
- 0x54, 0x13, 0xf2, 0xaf, 0xa9, 0x9c, 0x55, 0x14, 0xf3, 0x69, 0xd6, 0x84,
- 0xc4, 0x08, 0xab, 0x1b, 0xb3, 0x03, 0xbb, 0xab, 0x6e, 0x5a, 0x9b, 0x64,
- 0x50, 0x47, 0x71, 0x97, 0xea, 0x55, 0xae, 0x3a, 0xd0, 0x98, 0x4c, 0x36,
- 0x32, 0x8f, 0xef, 0xf2, 0x49, 0xa6, 0x1e, 0x0a, 0xf1, 0xa4, 0xcd, 0xf2,
- 0x70, 0xef, 0xcf, 0x97, 0x35, 0xac, 0x26, 0x56, 0x53, 0xc8, 0xa0, 0xbc,
- 0xcb, 0x49, 0x8d, 0x39, 0xb9, 0x92, 0xb3, 0x4a, 0xb7, 0x28, 0x9f, 0x8f,
- 0xb4, 0xca, 0x61, 0x3d, 0x9b, 0xe6, 0xa4, 0x9f, 0x9e, 0x91, 0xa3, 0x76,
- 0x9b, 0xeb, 0x37, 0xde, 0x17, 0xcd, 0xce, 0x69, 0x74, 0x30, 0x24, 0xaf,
- 0xd2, 0x7c, 0x16, 0x99, 0x27, 0x28, 0xa8, 0xc6, 0x22, 0xbd, 0xc9, 0x2a,
- 0x59, 0x83, 0x25, 0x4d, 0x3a, 0x45, 0x07, 0x82, 0xa7, 0x47, 0x59, 0xc6,
- 0x2a, 0x16, 0xf4, 0xb1, 0x4f, 0xf7, 0x76, 0x7a, 0x71, 0x8f, 0xf1, 0xda,
- 0xc9, 0xdf, 0x79, 0xf9, 0xbc, 0xe3, 0x99, 0x52, 0xab, 0xe9, 0x82, 0xdc,
- 0xe0, 0xdd, 0x13, 0x4a, 0xda, 0x28, 0x45, 0x52, 0xb6, 0xd5, 0xa9, 0x26,
- 0x4e, 0xc5, 0xc2, 0x46, 0x20, 0x20, 0x1c, 0xc8, 0xe1, 0x2f, 0x47, 0x98,
- 0xdb, 0x11, 0x4d, 0xa9, 0xd3, 0x9c, 0x51, 0xcd, 0xc8, 0x4f, 0x08, 0x23,
- 0xbc, 0xb5, 0x63, 0x8d, 0x41, 0x5c, 0x59, 0x3f, 0x38, 0x39, 0xc1, 0x68,
- 0xbe, 0x55, 0xf7, 0xc4, 0x99, 0xc5, 0x4b, 0x9d, 0xe6, 0x48, 0x1b, 0x26,
- 0xd5, 0xc1, 0x1c, 0x9a, 0x9c, 0xf6, 0x23, 0x36, 0x81, 0xba, 0x42, 0xcd,
- 0xf6, 0x65, 0xcf, 0x98, 0xca, 0x55, 0x56, 0x36, 0xd0, 0xdd, 0xab, 0x59,
- 0x7a, 0x6d, 0xf6, 0x5d, 0xa7, 0xb9, 0xfc, 0xda, 0xd8, 0xb8, 0x1c, 0x90,
- 0xa8, 0x4b, 0x73, 0x7b, 0xd0, 0xb8, 0xc5, 0xde, 0x37, 0xe6, 0x9e, 0xd9,
- 0x66, 0xb3, 0x25, 0x24, 0xe0, 0x99, 0x19, 0xe0, 0x68, 0xf4, 0xed, 0xb6,
- 0x2f, 0xe0, 0x30, 0xbf, 0x8f, 0x11, 0x6f, 0x90, 0x4f, 0x30, 0x4d, 0x92,
- 0xaf, 0xb1, 0x26, 0x5d, 0x29, 0xc7, 0x2b, 0x1d, 0x99, 0x3c, 0x9d, 0x08,
- 0x72, 0x11, 0x0d, 0x45, 0x00, 0x40, 0x02, 0x60, 0x9a, 0xd4, 0x5b, 0xc5,
- 0x3b, 0x9c, 0xbc, 0x08, 0x7c, 0x4d, 0x9b, 0xbf, 0x2d, 0xeb, 0x25, 0x19,
- 0xee, 0x9d, 0xe6, 0x16, 0x46, 0x90, 0x35, 0xc6, 0x78, 0x33, 0x12, 0x69,
- 0x59, 0xd0, 0x9f, 0x56, 0xbb, 0xc8, 0xa1, 0xe7, 0xd2, 0x92, 0x54, 0xe4,
- 0x1c, 0x24, 0x0b, 0xc1, 0xde, 0xcd, 0x46, 0xb4, 0x48, 0xcb, 0xdd, 0xa5,
- 0x85, 0xfb, 0x84, 0x82, 0x17, 0x10, 0x3b, 0xd3, 0x9c, 0x02, 0x5f, 0x74,
- 0xf0, 0x56, 0x48, 0xf1, 0xad, 0x7a, 0x69, 0xe4, 0x0c, 0x69, 0x55, 0x2c,
- 0x44, 0x02, 0x01, 0xa2, 0x42, 0xc6, 0x28, 0x70, 0x9e, 0x34, 0xd9, 0xfe,
- 0xad, 0x8f, 0x09, 0x16, 0xce, 0x5f, 0xc9, 0x89, 0xd1, 0x67, 0x8d, 0xa6,
- 0xfa, 0x92, 0xf6, 0x5b, 0xa0, 0x05, 0x5c, 0x9e, 0x8e, 0x62, 0x0b, 0xda,
- 0x76, 0xa6, 0xd3, 0xfb, 0x24, 0x72, 0xc9, 0xbf, 0xc2, 0xfe, 0xa6, 0x92,
- 0xb4, 0x25, 0xa3, 0x72, 0x06, 0x73, 0x46, 0xd7, 0x7a, 0x66, 0xba, 0x29,
- 0x86, 0x04, 0x07, 0xea, 0x48, 0x8c, 0x19, 0x35, 0xaa, 0x21, 0x35, 0xc2,
- 0xfa, 0x96, 0x8e, 0x0e, 0xfd, 0x76, 0xe1, 0x4c, 0xea, 0x6e, 0x10, 0xef,
- 0xf7, 0x5b, 0xf5, 0xb6, 0x95, 0x64, 0xa6, 0x95, 0xf3, 0xe3, 0xb7, 0x50,
- 0xec, 0x53, 0xb3, 0x71, 0xde, 0xa9, 0x1f, 0x47, 0xe3, 0x70, 0xe3, 0x65,
- 0x3e, 0x6b, 0x39, 0x4b, 0x9d, 0x2d, 0x82, 0x20, 0x18, 0xef, 0x2b, 0x74,
- 0x8d, 0xdd, 0xfe, 0x39, 0xfc, 0x66, 0xdd, 0x5d, 0xd6, 0xdc, 0x2f, 0xc4,
- 0xe5, 0xb7, 0xac, 0x5b, 0x96, 0xb5, 0xde, 0xce, 0xb3, 0x06, 0xca, 0x07,
- 0x29, 0xfc, 0x5e, 0x9b, 0xc1, 0x0a, 0xa1, 0x5b, 0x74, 0x19, 0x5c, 0x17,
- 0xf9, 0xdf, 0xc5, 0xb7, 0x90, 0x15, 0xb7, 0x79, 0x55, 0x16, 0xa4, 0xaa,
- 0x18, 0x9b, 0xa0, 0xca, 0x21, 0x9c, 0x49, 0xdd, 0x35, 0xe2, 0x63, 0xf3,
- 0xe8, 0xfd, 0xc5, 0xe9, 0x87, 0xa3, 0xc3, 0x0f, 0x5f, 0xbf, 0x7f, 0xf7,
- 0xfa, 0xf4, 0x78, 0xb3, 0x7b, 0xa8, 0xaf, 0x58, 0x2c, 0xd0, 0x41, 0xa9,
- 0x49, 0x21, 0xc3, 0x09, 0x31, 0x5d, 0xe4, 0x96, 0xaf, 0xf3, 0x5b, 0x23,
- 0xd6, 0xa0, 0x5a, 0xc1, 0x79, 0x89, 0xbf, 0xc1, 0xdc, 0x97, 0x09, 0xef,
- 0x34, 0x37, 0x36, 0xf7, 0xb1, 0xe9, 0x34, 0x9f, 0x3e, 0x19, 0xbc, 0x9e,
- 0x14, 0x31, 0x67, 0xb4, 0x83, 0xc1, 0xc8, 0x68, 0x89, 0xe9, 0x32, 0x21,
- 0x95, 0xce, 0xd3, 0x9e, 0x3d, 0x3f, 0xe6, 0xb2, 0x31, 0xca, 0xa3, 0x7a,
- 0x4e, 0x8d, 0x75, 0x56, 0x7e, 0xd4, 0x88, 0xa8, 0xd1, 0x3c, 0x0f, 0x23,
- 0xcb, 0x5d, 0xf3, 0xba, 0xf0, 0x54, 0x6c, 0x52, 0x4b, 0x66, 0xff, 0x0e,
- 0xa4, 0x93, 0x93, 0xaa, 0x31, 0x6a, 0x5f, 0x96, 0xe3, 0x60, 0x68, 0xc8,
- 0x87, 0xd4, 0x62, 0x78, 0x2d, 0xba, 0xfa, 0x89, 0x31, 0x0a, 0xef, 0x69,
- 0x0e, 0xa8, 0x91, 0x61, 0xf6, 0x29, 0xc3, 0xc9, 0x93, 0xb7, 0x8e, 0x96,
- 0x15, 0xce, 0xf2, 0x0f, 0x46, 0x27, 0x21, 0x09, 0xf8, 0x1a, 0x6e, 0x0f,
- 0xf3, 0x82, 0x3e, 0x64, 0x2e, 0x9b, 0xee, 0xc5, 0x57, 0xce, 0xa6, 0xe4,
- 0x5e, 0x80, 0x89, 0x09, 0x87, 0xc0, 0xf9, 0xe1, 0xe5, 0xb7, 0xc1, 0x9c,
- 0x90, 0x98, 0x77, 0xf0, 0x03, 0xd9, 0x8a, 0x30, 0x8c, 0xea, 0x46, 0x0e,
- 0xc8, 0xbb, 0xd1, 0x28, 0x41, 0x70, 0x7b, 0x96, 0x8f, 0xab, 0x94, 0xbe,
- 0x49, 0x3f, 0xa6, 0x9f, 0x9a, 0x6d, 0xdd, 0x69, 0xee, 0xfc, 0xbb, 0xa3,
- 0xd1, 0x1f, 0xf6, 0xf6, 0x8c, 0xf2, 0x37, 0x5d, 0x9a, 0x79, 0xd9, 0x32,
- 0xaf, 0x14, 0xb5, 0x39, 0x99, 0xf3, 0x61, 0x5d, 0x6e, 0xe3, 0xf2, 0x86,
- 0xc6, 0x87, 0xeb, 0x21, 0xbd, 0x35, 0xb7, 0x2e, 0x76, 0x12, 0xcf, 0x31,
- 0xed, 0xe7, 0xae, 0x9a, 0xce, 0x0b, 0xac, 0xb1, 0x7f, 0x23, 0x31, 0xcc,
- 0xbd, 0x3d, 0xbb, 0x0f, 0x46, 0xb1, 0x95, 0x9f, 0x8d, 0x24, 0x72, 0x9e,
- 0x4e, 0xcc, 0x5f, 0xc9, 0x86, 0xda, 0xa6, 0xb1, 0xb5, 0xcf, 0x98, 0x8e,
- 0x6b, 0xc4, 0x5a, 0xe9, 0x25, 0xb9, 0x38, 0x11, 0xf0, 0x0f, 0xe5, 0x42,
- 0xd1, 0x3d, 0x5e, 0x0e, 0x54, 0x81, 0xce, 0x8e, 0xd3, 0xc9, 0xc7, 0xbb,
- 0xb4, 0x9a, 0xb2, 0xc3, 0xc4, 0xec, 0x99, 0x71, 0x3e, 0xcb, 0x9b, 0x7b,
- 0xbe, 0x3d, 0xba, 0xa3, 0xe0, 0xd0, 0x11, 0x4d, 0xa1, 0x39, 0x49, 0xd7,
- 0xc6, 0x16, 0x22, 0x2d, 0x94, 0x2c, 0x44, 0x73, 0x30, 0x3c, 0x5d, 0x1f,
- 0xaa, 0x52, 0x63, 0x55, 0x1d, 0xfb, 0xed, 0x4e, 0x73, 0x70, 0x3f, 0xd1,
- 0x49, 0x42, 0x37, 0xdd, 0xee, 0x55, 0x41, 0xe8, 0x8b, 0x29, 0xdd, 0x40,
- 0x49, 0x7d, 0x6f, 0x6e, 0xfb, 0x79, 0x12, 0x51, 0x15, 0x81, 0x75, 0x48,
- 0xbe, 0xcb, 0xee, 0x8d, 0x61, 0x91, 0x17, 0x4e, 0x56, 0xb2, 0x8f, 0x28,
- 0x23, 0x4b, 0x95, 0x75, 0xd2, 0x5c, 0xfd, 0x8c, 0x99, 0xb8, 0x8a, 0xf9,
- 0x26, 0x09, 0x2d, 0x2b, 0x7e, 0x5f, 0xf5, 0x71, 0x6a, 0x62, 0xb3, 0x6e,
- 0x09, 0x65, 0x7c, 0x29, 0xb6, 0x15, 0x83, 0x8b, 0x13, 0x2e, 0x13, 0x8e,
- 0x09, 0x93, 0xcb, 0xb9, 0xe6, 0xbd, 0x37, 0x4b, 0xeb, 0x06, 0x36, 0x05,
- 0xc6, 0x2d, 0x9e, 0x89, 0xf6, 0x1d, 0x02, 0x39, 0xf2, 0xd2, 0x1c, 0xb4,
- 0x7f, 0xfc, 0x0a, 0xe1, 0xe3, 0x8a, 0xe3, 0x19, 0x4a, 0x55, 0x99, 0xab,
- 0xd6, 0x55, 0xf2, 0x56, 0xef, 0x0c, 0xea, 0x84, 0xf5, 0x9e, 0x2c, 0x38,
- 0xd6, 0xc7, 0xea, 0x0d, 0xbb, 0x81, 0x42, 0x75, 0x95, 0x2c, 0x79, 0xf1,
- 0x16, 0x1c, 0xf4, 0x92, 0xad, 0x6c, 0x78, 0x6d, 0xda, 0xeb, 0x51, 0x3b,
- 0x7b, 0x07, 0xf4, 0xdf, 0x7d, 0xfc, 0xf7, 0x49, 0x4f, 0x81, 0x32, 0xfe,
- 0x52, 0xd3, 0x7d, 0xd3, 0x95, 0x96, 0xe2, 0x4a, 0xa7, 0xfb, 0x47, 0x2e,
- 0x20, 0x11, 0xc0, 0x24, 0x97, 0xe3, 0x87, 0x83, 0xb5, 0xab, 0xd3, 0x7e,
- 0x44, 0x03, 0x72, 0x13, 0x81, 0xbb, 0x0d, 0xb6, 0xe9, 0x98, 0xdc, 0x4e,
- 0x66, 0x6c, 0x13, 0xa3, 0xc1, 0xc0, 0x03, 0xc0, 0x81, 0x29, 0x9a, 0x8e,
- 0xc9, 0x87, 0x2a, 0xbb, 0x49, 0x6b, 0xa3, 0x4c, 0x2d, 0x1b, 0x9c, 0x8e,
- 0xae, 0xe5, 0x60, 0x8e, 0xd4, 0x2c, 0xb7, 0x2e, 0x17, 0xf9, 0xf0, 0xd0,
- 0x1a, 0x28, 0xb2, 0x8a, 0xec, 0xbc, 0x9c, 0x95, 0x77, 0xfa, 0xc4, 0x40,
- 0x90, 0x2b, 0xb1, 0x8b, 0xcb, 0xac, 0x26, 0xc0, 0x2f, 0xf4, 0x98, 0x1f,
- 0x84, 0x9a, 0x93, 0xb6, 0x43, 0xb0, 0x1a, 0x73, 0x04, 0xaf, 0xcc, 0x8c,
- 0x91, 0xe5, 0x31, 0xc3, 0xba, 0x91, 0x8d, 0x85, 0x5e, 0x07, 0x1a, 0x90,
- 0x68, 0x22, 0xf9, 0x95, 0x38, 0x5e, 0xe4, 0xdf, 0x90, 0xf8, 0xa2, 0x1f,
- 0xd4, 0x1c, 0xa8, 0xea, 0x2a, 0x07, 0x0f, 0x6f, 0x6d, 0x3d, 0xc0, 0xf6,
- 0x2e, 0x96, 0xc1, 0xb2, 0xaf, 0x53, 0xf7, 0xb5, 0x68, 0xc4, 0x31, 0x43,
- 0xdb, 0xf4, 0x8a, 0x63, 0x06, 0xbf, 0xfe, 0x90, 0x98, 0x1e, 0x0f, 0xc8,
- 0xcd, 0xb1, 0xac, 0x1f, 0x71, 0x46, 0x3c, 0xa1, 0xc0, 0xef, 0x58, 0x47,
- 0x0f, 0x07, 0xe4, 0xfc, 0x09, 0xe8, 0xee, 0xc2, 0x7b, 0xcf, 0xd9, 0x72,
- 0xe4, 0x9d, 0xac, 0x11, 0x37, 0x74, 0x21, 0xa6, 0xfc, 0x56, 0xfa, 0x31,
- 0x1d, 0x26, 0x67, 0x47, 0xa3, 0x73, 0xfa, 0x84, 0xd9, 0x1a, 0xc5, 0xb5,
- 0xe9, 0xc5, 0xe9, 0xa8, 0xd3, 0x9c, 0xb1, 0xd0, 0xb3, 0xa2, 0x6e, 0x41,
- 0xbd, 0x56, 0x4e, 0xb3, 0x3a, 0x00, 0x35, 0x32, 0x2e, 0x9d, 0x35, 0x16,
- 0x29, 0x42, 0x5a, 0x14, 0xa1, 0xa1, 0xf0, 0x69, 0xc2, 0x47, 0x2d, 0xf8,
- 0xd0, 0xc2, 0x6c, 0xf8, 0xe9, 0xb6, 0x75, 0x29, 0xf4, 0x75, 0x2f, 0x58,
- 0x4f, 0x7f, 0xbd, 0xbc, 0x26, 0x2d, 0xb9, 0x56, 0xdb, 0xc6, 0x7e, 0xc1,
- 0xcc, 0x46, 0x70, 0xc1, 0xeb, 0xb0, 0xcd, 0x99, 0xe0, 0x63, 0x63, 0xd4,
- 0x7a, 0x02, 0x41, 0xe0, 0x12, 0x2f, 0x4a, 0xd7, 0x2a, 0x69, 0xf2, 0xc0,
- 0x60, 0xe5, 0xf0, 0x8d, 0x4f, 0x32, 0xa3, 0x24, 0x4d, 0x23, 0x97, 0x14,
- 0x2f, 0x8a, 0x2a, 0xf6, 0x57, 0x82, 0xbb, 0x8a, 0xf8, 0x29, 0xd0, 0xd0,
- 0x84, 0x95, 0x08, 0xda, 0xf5, 0xf0, 0x31, 0xe6, 0xe4, 0x94, 0x25, 0x95,
- 0x8e, 0x4d, 0x4a, 0x6a, 0xcf, 0x9e, 0xfd, 0x6f, 0x8a, 0xa5, 0x99, 0xf8,
- 0xc8, 0x6d, 0x41, 0xd7, 0x3e, 0xdd, 0x7d, 0x34, 0x81, 0xeb, 0x1c, 0x50,
- 0x4f, 0xf7, 0xda, 0x0e, 0x28, 0x6c, 0x36, 0xa3, 0xa2, 0x66, 0xc9, 0x4b,
- 0xfa, 0xef, 0x83, 0x52, 0x19, 0x51, 0x67, 0x5f, 0x0a, 0xe3, 0x5d, 0x09,
- 0x5b, 0xb0, 0x1c, 0x5d, 0xb3, 0xe3, 0x10, 0xd0, 0x1e, 0x92, 0xd8, 0xeb,
- 0x27, 0xaf, 0x8f, 0x2f, 0xb0, 0xfc, 0xc7, 0xef, 0xbe, 0x81, 0x4f, 0xd8,
- 0xaa, 0xb6, 0x53, 0xb4, 0x59, 0xb3, 0xad, 0xcb, 0x31, 0x1d, 0x11, 0xff,
- 0xdd, 0xa9, 0x26, 0xf1, 0x49, 0xae, 0x7c, 0x44, 0xfc, 0xa7, 0xbf, 0xdf,
- 0xc5, 0x15, 0xd8, 0x48, 0xc7, 0x7d, 0x99, 0x3a, 0xf1, 0x1c, 0x7c, 0xcc,
- 0xee, 0xdd, 0xdf, 0x30, 0x9d, 0xde, 0x1c, 0xbb, 0x87, 0x5f, 0x7a, 0x33,
- 0xf3, 0x97, 0x03, 0x42, 0x15, 0x18, 0xf5, 0x69, 0xfa, 0xf3, 0xaf, 0xbb,
- 0x0a, 0xc5, 0x4d, 0x93, 0xb4, 0xef, 0xc4, 0x88, 0x37, 0x00, 0x8e, 0x18,
- 0x8d, 0xdf, 0x73, 0xb8, 0x8e, 0x05, 0xbb, 0xa0, 0x4a, 0x09, 0x70, 0x4a,
- 0x3b, 0x3d, 0x2d, 0x58, 0x21, 0x22, 0x11, 0xcd, 0xa0, 0x0d, 0x80, 0x38,
- 0xba, 0xc7, 0x65, 0x52, 0xce, 0x82, 0x4b, 0xae, 0x65, 0x53, 0x41, 0xd5,
- 0xdc, 0x97, 0x6b, 0x0d, 0x76, 0x86, 0x5c, 0x3e, 0xac, 0xde, 0x75, 0xcf,
- 0x81, 0x55, 0xf6, 0x80, 0x87, 0xf2, 0xaf, 0xc4, 0xc4, 0x7b, 0x19, 0xe1,
- 0x29, 0x74, 0x8f, 0x35, 0xb5, 0xa1, 0x2c, 0x6f, 0x16, 0xd5, 0x4c, 0xcd,
- 0xea, 0xea, 0xec, 0x9a, 0x65, 0x27, 0x57, 0x88, 0xdb, 0x43, 0xec, 0xf7,
- 0xe7, 0x65, 0x36, 0xf2, 0xad, 0xca, 0x45, 0x75, 0x64, 0x18, 0x59, 0xf7,
- 0x30, 0x6b, 0x94, 0x50, 0x5c, 0x25, 0x62, 0xce, 0x63, 0x5b, 0xe9, 0xbe,
- 0xe2, 0xed, 0x47, 0x46, 0x52, 0xcf, 0x9b, 0x92, 0x5e, 0x6c, 0x29, 0x1a,
- 0x0e, 0x58, 0xc8, 0x79, 0xc9, 0x6f, 0x69, 0xea, 0x74, 0xef, 0x38, 0xcf,
- 0x5b, 0x5b, 0x27, 0x2b, 0x0b, 0xfa, 0xb3, 0x20, 0x8f, 0xcd, 0xbf, 0x44,
- 0x36, 0x64, 0x74, 0x2f, 0x92, 0xf3, 0x56, 0x82, 0x39, 0xd0, 0x5c, 0x08,
- 0xb8, 0x24, 0x60, 0xce, 0x88, 0x96, 0x1e, 0xb3, 0x35, 0x54, 0xeb, 0x50,
- 0x93, 0xc2, 0xb3, 0x33, 0x02, 0x35, 0xbc, 0xbb, 0x41, 0x8c, 0xfc, 0x6e,
- 0x28, 0x0c, 0xcc, 0x7b, 0x97, 0x9c, 0x83, 0xf9, 0xe4, 0x23, 0xd0, 0x3e,
- 0x72, 0x35, 0xb5, 0xe4, 0x87, 0x60, 0x6d, 0x18, 0x25, 0x16, 0x59, 0x02,
- 0x98, 0x39, 0xe4, 0xb5, 0xa4, 0x3d, 0x49, 0xd7, 0x72, 0x5e, 0xb0, 0xb2,
- 0xb6, 0xd2, 0x00, 0x36, 0x7d, 0xfd, 0xf0, 0xfa, 0xe4, 0x22, 0xd9, 0x32,
- 0xab, 0x3a, 0xee, 0x2a, 0x37, 0x7a, 0xaf, 0xef, 0x64, 0xcd, 0x64, 0x67,
- 0xf1, 0x31, 0xdf, 0x31, 0x76, 0xd0, 0x74, 0xbc, 0x6d, 0xb5, 0x7b, 0x7c,
- 0x0e, 0x9b, 0x50, 0x6d, 0x26, 0x35, 0x9a, 0x60, 0x35, 0x75, 0x4f, 0x83,
- 0x67, 0x45, 0x31, 0x50, 0xdc, 0x19, 0x4f, 0x98, 0x26, 0x76, 0x31, 0x00,
- 0xa4, 0xc2, 0x11, 0xcd, 0x84, 0xbc, 0x83, 0x19, 0x3b, 0x4e, 0x8d, 0xf9,
- 0xd7, 0x3d, 0xab, 0x8c, 0x58, 0x12, 0x1f, 0x03, 0xfb, 0x16, 0x14, 0x66,
- 0x23, 0xf7, 0x84, 0xd3, 0xf6, 0xfa, 0x04, 0x90, 0xa2, 0x49, 0x59, 0xd0,
- 0x5d, 0x34, 0x25, 0x07, 0x55, 0xb7, 0x39, 0xb8, 0xcc, 0x7a, 0xc3, 0x9d,
- 0x5e, 0x62, 0x21, 0x61, 0x66, 0x96, 0x81, 0x6a, 0x74, 0x18, 0x3c, 0xb3,
- 0xc5, 0xae, 0x96, 0x35, 0x3b, 0x5d, 0xc9, 0xde, 0xb7, 0xeb, 0x35, 0x8c,
- 0x09, 0x54, 0x6f, 0x39, 0xad, 0xb2, 0x65, 0x94, 0x62, 0x9c, 0x2b, 0x6b,
- 0x48, 0x8e, 0x6d, 0xa7, 0xb0, 0x54, 0xbd, 0x9f, 0x7a, 0x89, 0x07, 0x29,
- 0x6a, 0xb9, 0xc6, 0x72, 0x17, 0xf4, 0xf7, 0xae, 0x00, 0x73, 0x15, 0xdb,
- 0x13, 0x3c, 0xcd, 0x66, 0xf9, 0x3c, 0x6f, 0xa0, 0xc3, 0x7b, 0x5d, 0x08,
- 0x96, 0xa2, 0xdd, 0xa5, 0x9f, 0xc2, 0x2e, 0x29, 0x4c, 0x2f, 0xa5, 0x5f,
- 0x9b, 0x2e, 0xc1, 0x59, 0xc3, 0x28, 0xaa, 0xb8, 0x39, 0xd7, 0xee, 0x90,
- 0x05, 0xfa, 0xad, 0x89, 0xf5, 0xfc, 0x3e, 0x16, 0x6f, 0xfb, 0xc8, 0xd4,
- 0x0d, 0xe0, 0x44, 0x74, 0xce, 0xc4, 0x89, 0x31, 0xe6, 0xcb, 0x41, 0xcf,
- 0x58, 0xaa, 0x8f, 0x07, 0xb2, 0xdb, 0xbc, 0xbe, 0xa3, 0x82, 0x07, 0x92,
- 0x47, 0xdd, 0x1f, 0x6c, 0x86, 0x9a, 0x03, 0x03, 0xb3, 0xf3, 0xa3, 0x58,
- 0x9d, 0xd0, 0x80, 0x20, 0xac, 0xd8, 0xfd, 0xd3, 0xd5, 0x77, 0x55, 0xd8,
- 0x0f, 0xb2, 0x62, 0x52, 0x4e, 0x3b, 0xf6, 0x19, 0x4d, 0x82, 0x27, 0xe4,
- 0xb0, 0xe3, 0x39, 0x7e, 0x82, 0x5d, 0x1e, 0x77, 0xac, 0x91, 0x47, 0x87,
- 0xbd, 0x7d, 0xbf, 0x68, 0xdf, 0xc7, 0xcc, 0x7b, 0x6c, 0xfb, 0x5f, 0xb5,
- 0xeb, 0xff, 0x69, 0x7a, 0x84, 0xa7, 0x7e, 0x3d, 0x42, 0x91, 0x18, 0x4c,
- 0xf2, 0xc5, 0x0d, 0xf9, 0xdc, 0x5f, 0x22, 0x0c, 0x4d, 0x2e, 0x32, 0xfe,
- 0x41, 0x5c, 0x81, 0x18, 0xc9, 0x95, 0x57, 0x8b, 0x9f, 0x40, 0xdf, 0x16,
- 0xf1, 0x92, 0x2b, 0x6c, 0x5a, 0x8d, 0x31, 0x81, 0x3e, 0xe4, 0x81, 0xb5,
- 0x4a, 0x81, 0x08, 0x7d, 0x99, 0x6f, 0x7a, 0x7b, 0xbb, 0x30, 0xca, 0x51,
- 0x7f, 0x3b, 0x34, 0x26, 0x43, 0x3a, 0x25, 0x1c, 0x93, 0x99, 0x26, 0xa4,
- 0x5d, 0xe0, 0xe7, 0x9d, 0xe6, 0xd0, 0x79, 0x49, 0x47, 0xe0, 0x5b, 0xd7,
- 0xcc, 0xe8, 0xfb, 0x8b, 0xd3, 0x83, 0xee, 0x3c, 0x01, 0x0d, 0x5b, 0x1f,
- 0xec, 0xec, 0xc0, 0xf5, 0x76, 0x93, 0x7e, 0xfa, 0x34, 0xac, 0xb3, 0x9d,
- 0x69, 0x39, 0xa9, 0x77, 0xea, 0x7a, 0xa6, 0xb3, 0xd1, 0xc6, 0x8b, 0xff,
- 0x0e, 0x3e, 0x8b, 0x72, 0xbe, 0xa8, 0x60, 0x44, 0x0f, 0xea, 0x3a, 0x88,
- 0xd4, 0x8e, 0x8e, 0x34, 0x0e, 0x74, 0x5c, 0x30, 0xe6, 0x0b, 0x07, 0x7c,
- 0x90, 0xd3, 0x04, 0x7c, 0x9b, 0xe8, 0xcb, 0x98, 0x5e, 0x1b, 0x9b, 0xb4,
- 0x51, 0xd2, 0x7e, 0x44, 0xe6, 0xa4, 0xb2, 0x53, 0xbf, 0xf0, 0xcd, 0x16,
- 0xba, 0x3b, 0x4a, 0xfe, 0x43, 0xc0, 0x95, 0x79, 0xb3, 0x36, 0xce, 0xfc,
- 0xbc, 0xa3, 0xe6, 0xdb, 0x41, 0xc4, 0x63, 0x31, 0x6a, 0xea, 0xa5, 0x89,
- 0x7b, 0xd2, 0xd9, 0x3d, 0xdd, 0x84, 0x26, 0xb3, 0x7b, 0xaf, 0xcb, 0xca,
- 0x9c, 0x9a, 0x79, 0x1d, 0xb3, 0xf5, 0xc5, 0x25, 0x57, 0x23, 0x00, 0x9a,
- 0xd4, 0xe4, 0x8d, 0x60, 0xc7, 0xc3, 0xb2, 0xf0, 0x5a, 0x37, 0x83, 0x98,
- 0x20, 0xc8, 0x3e, 0x4c, 0x34, 0xaa, 0xb5, 0xca, 0xcf, 0xe8, 0xc5, 0x73,
- 0x2d, 0x3a, 0xb1, 0x6b, 0x31, 0x2e, 0x0b, 0xe7, 0x09, 0x84, 0x34, 0x32,
- 0x5d, 0xee, 0xc7, 0x7a, 0x87, 0x75, 0xae, 0x32, 0x7a, 0x14, 0x12, 0xbd,
- 0xaa, 0x4a, 0x4f, 0x8c, 0x0f, 0xbe, 0x83, 0x3a, 0x65, 0x64, 0x43, 0x7e,
- 0xad, 0xb1, 0x8e, 0xee, 0xf1, 0xb5, 0xd0, 0xff, 0x86, 0xf0, 0x35, 0x1a,
- 0xc9, 0xa8, 0x68, 0xeb, 0xb3, 0x1a, 0xa5, 0xf0, 0x81, 0x9a, 0xa5, 0x98,
- 0x46, 0x31, 0x04, 0x75, 0x11, 0x1c, 0x07, 0x82, 0xd6, 0xfb, 0xaf, 0x50,
- 0x6c, 0x3b, 0xd1, 0xf3, 0xe9, 0xbe, 0xe1, 0x6f, 0x50, 0xa4, 0x9f, 0x60,
- 0x2d, 0xba, 0xfa, 0x0d, 0x40, 0x21, 0xd6, 0x16, 0x8b, 0xe5, 0x46, 0x74,
- 0xc7, 0xa3, 0x00, 0x31, 0x51, 0x42, 0x73, 0x24, 0xe3, 0xa4, 0x00, 0x9f,
- 0xd5, 0x56, 0xb1, 0xf7, 0x52, 0x22, 0x3c, 0x87, 0x39, 0x1a, 0xec, 0xda,
- 0x78, 0xfc, 0x7b, 0x46, 0x05, 0x2a, 0x9e, 0x16, 0x5a, 0x80, 0x11, 0x43,
- 0x4d, 0x06, 0x5c, 0x14, 0xe5, 0x60, 0xcd, 0x4a, 0x77, 0xbd, 0x98, 0xdd,
- 0x67, 0x04, 0x22, 0x30, 0xf3, 0x5d, 0x9d, 0xe3, 0x94, 0xfc, 0xe4, 0x1e,
- 0x90, 0x87, 0xfd, 0x76, 0xaa, 0xe6, 0xcf, 0xa0, 0x52, 0x71, 0xb0, 0x22,
- 0x11, 0xfd, 0x31, 0x49, 0x64, 0xf9, 0xa2, 0xc6, 0x90, 0x60, 0xc7, 0x18,
- 0x8e, 0x9f, 0x23, 0xf9, 0x43, 0x52, 0x13, 0x18, 0x0a, 0xa7, 0x4e, 0x9c,
- 0xba, 0xec, 0xcb, 0xd4, 0xcd, 0x28, 0x1c, 0x51, 0x49, 0x1f, 0xbb, 0x3b,
- 0xca, 0xa6, 0x1d, 0xf8, 0x60, 0x2c, 0x5a, 0x1d, 0x8b, 0x28, 0xab, 0x43,
- 0xc7, 0xb1, 0x9b, 0xcd, 0xa8, 0xbe, 0x16, 0xc0, 0xf3, 0xd0, 0x93, 0x2a,
- 0xd3, 0x4f, 0x14, 0x65, 0xb7, 0x57, 0xd2, 0x8f, 0x41, 0x68, 0xbd, 0x58,
- 0x04, 0x9a, 0xd7, 0x01, 0x45, 0xa2, 0xd9, 0x65, 0x8e, 0xdf, 0x78, 0x99,
- 0x7b, 0x00, 0x36, 0x4b, 0x69, 0x83, 0x6f, 0xfe, 0x42, 0xb6, 0x9f, 0x93,
- 0xed, 0xd2, 0x75, 0xd8, 0x14, 0x93, 0x59, 0x59, 0xab, 0x43, 0x91, 0x96,
- 0x89, 0xd3, 0x40, 0xcc, 0xc1, 0xf8, 0x41, 0x7e, 0x20, 0x6b, 0x20, 0xbf,
- 0xe0, 0x66, 0xaf, 0x4a, 0xf2, 0x2e, 0x86, 0x1e, 0x40, 0x51, 0xc2, 0x5c,
- 0xe6, 0x0a, 0xb9, 0x0f, 0xac, 0xe2, 0x7d, 0x90, 0xfc, 0xf4, 0x53, 0x3f,
- 0x21, 0xed, 0xef, 0x27, 0x63, 0x53, 0xfe, 0x64, 0x36, 0x59, 0xf2, 0x53,
- 0x25, 0x82, 0xe3, 0xa7, 0x5b, 0xf3, 0xc9, 0x6e, 0xbc, 0x88, 0xdc, 0x26,
- 0xf5, 0x0c, 0xfe, 0x50, 0x56, 0x28, 0x04, 0x72, 0x72, 0xaf, 0x11, 0x02,
- 0xce, 0xd1, 0x81, 0xf3, 0x82, 0xfd, 0x7e, 0x76, 0x45, 0x01, 0x7d, 0x09,
- 0xed, 0xe3, 0xe5, 0xbc, 0x10, 0x35, 0x8c, 0x37, 0x22, 0x8e, 0x38, 0xe4,
- 0xfe, 0xe6, 0x1f, 0x36, 0xdd, 0x9e, 0xe9, 0xab, 0xcf, 0xaa, 0x51, 0xb9,
- 0x1a, 0x39, 0x4e, 0x7a, 0xea, 0x35, 0x9d, 0x05, 0xd1, 0x38, 0x46, 0x84,
- 0x18, 0xc9, 0x79, 0x46, 0x0e, 0x23, 0x06, 0x25, 0x97, 0x16, 0xca, 0x05,
- 0x6c, 0xf6, 0xe2, 0xe6, 0xbe, 0xa6, 0x80, 0x59, 0x4c, 0xda, 0xb8, 0xab,
- 0x9f, 0x7a, 0x17, 0x8d, 0x36, 0x8e, 0x9c, 0xf9, 0x88, 0x07, 0xa0, 0x5a,
- 0x9a, 0x2d, 0xd0, 0x92, 0x8f, 0xa6, 0x2f, 0x9b, 0x83, 0x4d, 0x04, 0x8e,
- 0xe0, 0xdc, 0x15, 0xf1, 0x57, 0x85, 0xb8, 0x2e, 0x6d, 0xc6, 0xc3, 0x7d,
- 0x04, 0x9f, 0x6c, 0x19, 0xd8, 0x1c, 0x8b, 0x52, 0xb0, 0x89, 0xcb, 0xb6,
- 0xa2, 0x74, 0x89, 0xb0, 0xfb, 0xfd, 0x88, 0x29, 0x25, 0x38, 0x66, 0xfb,
- 0xae, 0x51, 0x12, 0x9d, 0xb7, 0x73, 0x30, 0x40, 0x12, 0xea, 0x82, 0x13,
- 0x47, 0x79, 0x73, 0xd0, 0xc5, 0x8a, 0xc4, 0xc3, 0x9a, 0x3c, 0x70, 0x81,
- 0x5c, 0x55, 0x14, 0x46, 0x63, 0x73, 0x26, 0xe9, 0x2c, 0x53, 0xd2, 0xe2,
- 0x5d, 0x21, 0x49, 0x67, 0xa3, 0x12, 0x26, 0xc7, 0x04, 0x91, 0x23, 0x44,
- 0x29, 0x05, 0xe2, 0x1c, 0xea, 0xba, 0x74, 0xd9, 0x05, 0x0a, 0x0f, 0xf5,
- 0xe9, 0x55, 0xd2, 0x5b, 0xad, 0xf6, 0xf4, 0xba, 0x6f, 0xfc, 0x60, 0x43,
- 0x4d, 0x70, 0xad, 0x89, 0xdb, 0xd2, 0xf4, 0x61, 0x4b, 0xb0, 0x0b, 0x83,
- 0xbf, 0x31, 0x30, 0x89, 0xe1, 0xc5, 0x7a, 0x8f, 0x6e, 0x27, 0x8c, 0xcd,
- 0xaa, 0x83, 0xe0, 0x64, 0xe5, 0x85, 0xb6, 0xbd, 0x09, 0x76, 0xc1, 0xe1,
- 0x1c, 0x2e, 0x1d, 0xdc, 0x51, 0xac, 0x30, 0x7a, 0x4f, 0x77, 0xe5, 0x8f,
- 0x7d, 0x9b, 0xf0, 0x8f, 0xf4, 0x3d, 0x71, 0xb5, 0xe8, 0x15, 0xa1, 0xe7,
- 0xdb, 0xe8, 0xf3, 0x48, 0xe4, 0x54, 0xe4, 0x25, 0xf4, 0x9f, 0x60, 0x76,
- 0xf6, 0xb6, 0xc5, 0xa3, 0x80, 0x5c, 0x4c, 0x20, 0xe2, 0xc4, 0x6d, 0xd2,
- 0xbb, 0x29, 0x39, 0x7a, 0xdb, 0x3b, 0x20, 0x0c, 0x39, 0x03, 0xd2, 0x64,
- 0x84, 0x36, 0x88, 0xd9, 0x3d, 0x58, 0x08, 0x8f, 0x7f, 0x7b, 0xf6, 0xf6,
- 0xb8, 0x0d, 0x7e, 0xc2, 0x4f, 0x62, 0x6e, 0x05, 0x23, 0xad, 0xde, 0x18,
- 0x11, 0xc3, 0x3b, 0x28, 0x0d, 0x54, 0x37, 0x6c, 0x2f, 0xd3, 0xaf, 0xeb,
- 0xac, 0x59, 0xdc, 0x2d, 0xf3, 0xe9, 0xd6, 0x36, 0xed, 0x0f, 0x42, 0x3e,
- 0x0e, 0x00, 0xb8, 0x65, 0x0b, 0xab, 0x4e, 0xb6, 0x58, 0x19, 0xaf, 0xb2,
- 0x66, 0x59, 0x15, 0xec, 0x09, 0x4a, 0xa8, 0xfb, 0x61, 0x48, 0x27, 0x91,
- 0x7b, 0xcd, 0xb7, 0x81, 0x24, 0xab, 0x9a, 0x03, 0xc7, 0xdc, 0xe4, 0x36,
- 0x49, 0x01, 0x23, 0x47, 0x11, 0x3f, 0xc7, 0xda, 0xd3, 0x58, 0x82, 0x7b,
- 0x0a, 0x73, 0xa1, 0xe9, 0x89, 0x87, 0xe7, 0xe7, 0xaf, 0x0f, 0x2f, 0x0f,
- 0xed, 0xd8, 0x70, 0x11, 0x43, 0xb2, 0x40, 0x1d, 0x36, 0x22, 0x89, 0xb4,
- 0x23, 0x7a, 0x72, 0xf3, 0x8f, 0xef, 0x47, 0xc7, 0x17, 0xdd, 0x85, 0x3d,
- 0xbf, 0x38, 0xa3, 0x8c, 0xf5, 0x3f, 0xfe, 0x74, 0x48, 0x91, 0x22, 0xf1,
- 0x73, 0xbf, 0x4e, 0x9b, 0x74, 0x33, 0x38, 0xd5, 0xfb, 0x66, 0xaf, 0x9d,
- 0x01, 0xbd, 0xa3, 0x1d, 0xbc, 0x92, 0xdb, 0x0c, 0x46, 0x7f, 0xf2, 0x81,
- 0xd6, 0xb4, 0x9a, 0x28, 0xf6, 0x09, 0x1f, 0xd5, 0xe5, 0xec, 0x87, 0x1e,
- 0x0d, 0x6f, 0x20, 0xa5, 0x93, 0x64, 0x1a, 0xbd, 0xd7, 0xb9, 0x9a, 0x25,
- 0xd9, 0x27, 0x63, 0x59, 0x37, 0xba, 0xe9, 0xb1, 0xbf, 0x28, 0xa7, 0xa8,
- 0x3b, 0x2f, 0x6e, 0x7d, 0x74, 0x81, 0x18, 0x2d, 0xc5, 0xb9, 0xdd, 0x90,
- 0x03, 0x48, 0x6a, 0x33, 0xbb, 0x0d, 0xf8, 0xb4, 0xa1, 0xf6, 0x56, 0x8c,
- 0xd3, 0xc0, 0xb9, 0xc4, 0x0e, 0x43, 0xa4, 0xb8, 0x71, 0x97, 0x82, 0x09,
- 0xf9, 0x83, 0x39, 0x8f, 0x83, 0xe4, 0x58, 0xb0, 0xd7, 0x18, 0xb6, 0xf9,
- 0x41, 0xf0, 0x50, 0x63, 0x6d, 0x05, 0x11, 0xf6, 0x71, 0x59, 0xe1, 0xa5,
- 0x7d, 0xf6, 0xba, 0xca, 0x33, 0x27, 0x5a, 0x98, 0x87, 0xa8, 0xd3, 0x34,
- 0xe5, 0x30, 0x95, 0x7a, 0x91, 0x38, 0xf3, 0x20, 0xbd, 0xa6, 0xdd, 0x65,
- 0x1e, 0x35, 0x4a, 0xb4, 0xb1, 0x90, 0xe8, 0x5f, 0x3b, 0x7b, 0xc3, 0xdd,
- 0x5e, 0xd8, 0x79, 0x3a, 0x2c, 0xc8, 0xa2, 0xb5, 0xfe, 0x62, 0x92, 0x85,
- 0x4d, 0x59, 0x3e, 0xd8, 0x3f, 0x16, 0x61, 0x46, 0x0f, 0x5d, 0x98, 0xf6,
- 0xa3, 0x5d, 0x19, 0x9c, 0x05, 0xd0, 0x2e, 0x02, 0x4b, 0x55, 0x2a, 0x14,
- 0x8d, 0x4c, 0x2c, 0xca, 0x3b, 0x1a, 0x89, 0xd9, 0x6a, 0xb3, 0x59, 0x2b,
- 0xdd, 0xb9, 0x17, 0x9f, 0xe6, 0x02, 0xcc, 0x02, 0x59, 0x77, 0xb6, 0x63,
- 0xc1, 0x18, 0xb9, 0x3c, 0x7d, 0x3d, 0xce, 0xa2, 0x8c, 0x60, 0x30, 0xda,
- 0x5d, 0xe0, 0x7e, 0x2e, 0x32, 0x32, 0x90, 0x7b, 0x33, 0x3f, 0xd8, 0x38,
- 0xd0, 0x88, 0xe7, 0x80, 0x9a, 0x21, 0xed, 0xf3, 0x25, 0x67, 0x4e, 0x05,
- 0x86, 0xfb, 0xdb, 0xf4, 0x53, 0x3e, 0x5f, 0xce, 0x13, 0x7c, 0x8f, 0x15,
- 0x5a, 0x79, 0x52, 0x2f, 0x46, 0xf2, 0x9f, 0x70, 0xd0, 0x95, 0x16, 0x75,
- 0xb3, 0xf6, 0xec, 0xf7, 0xc8, 0x25, 0x63, 0x2e, 0x65, 0x35, 0x3b, 0x05,
- 0xbe, 0x3e, 0xcf, 0x9b, 0xba, 0x63, 0xf7, 0x1b, 0x55, 0x21, 0xa5, 0x18,
- 0x9a, 0xa6, 0x48, 0xf1, 0x25, 0x1e, 0x11, 0xe7, 0x9c, 0xba, 0xa7, 0x3a,
- 0x9c, 0x87, 0x12, 0xca, 0xaa, 0xbc, 0x9c, 0xda, 0x63, 0x43, 0x5a, 0x62,
- 0x5e, 0x2c, 0xcd, 0x44, 0x53, 0x73, 0x74, 0xab, 0xca, 0x6f, 0x82, 0x30,
- 0x1e, 0x00, 0x8d, 0x23, 0xe0, 0x54, 0x15, 0xf7, 0xf3, 0xd9, 0xf0, 0xc9,
- 0xfe, 0x70, 0xb7, 0xdf, 0xb2, 0xde, 0x25, 0xc3, 0xd1, 0x9c, 0xae, 0x49,
- 0x3e, 0xb7, 0xd9, 0x0f, 0xc3, 0x7f, 0x9a, 0x97, 0x86, 0xf2, 0x3e, 0x06,
- 0xf3, 0xf4, 0x13, 0x96, 0x2f, 0xba, 0xac, 0x65, 0xf2, 0xf2, 0xdb, 0xb3,
- 0xd1, 0xe5, 0xde, 0xc1, 0xf9, 0xd9, 0x85, 0xf9, 0x2f, 0xfd, 0x7d, 0x1f,
- 0x7f, 0xdf, 0x0f, 0xac, 0xc7, 0x37, 0x02, 0x5b, 0x52, 0x9c, 0x34, 0x54,
- 0x1d, 0xdc, 0x02, 0x62, 0xc5, 0x78, 0x0d, 0x11, 0xb6, 0x9d, 0xa4, 0xa0,
- 0x2e, 0x56, 0xc4, 0x67, 0xe6, 0x7d, 0x4a, 0x91, 0xa3, 0xc3, 0xf6, 0x7e,
- 0x06, 0x46, 0x26, 0x6f, 0x54, 0x95, 0x92, 0xcc, 0x2c, 0xcd, 0xf9, 0xea,
- 0x7a, 0xf4, 0x38, 0xab, 0x46, 0xa0, 0xd1, 0x4a, 0x68, 0x02, 0xb8, 0x43,
- 0xfb, 0x57, 0x93, 0x99, 0xd1, 0xf4, 0x33, 0x0a, 0x8f, 0x4e, 0x33, 0xce,
- 0xa6, 0xa7, 0x9f, 0xc4, 0x0c, 0x10, 0x41, 0x5e, 0x03, 0x2d, 0x3a, 0xec,
- 0xf6, 0x0c, 0xbb, 0x52, 0x70, 0x71, 0x94, 0xc6, 0x68, 0x7a, 0x99, 0xd7,
- 0x37, 0x8a, 0xfe, 0xef, 0x36, 0x07, 0xb0, 0x91, 0xef, 0xb0, 0x3a, 0x69,
- 0x38, 0xf3, 0xeb, 0xdd, 0xd9, 0x65, 0x92, 0x5e, 0x5d, 0x69, 0x9a, 0x1a,
- 0xa0, 0xa0, 0xa4, 0xb1, 0xee, 0xc0, 0xca, 0x57, 0x47, 0x73, 0x1d, 0x4a,
- 0x3e, 0xd6, 0x47, 0x2e, 0x4f, 0x47, 0x3b, 0xe4, 0xae, 0x62, 0x5c, 0xc7,
- 0xe8, 0xdd, 0x49, 0xbf, 0xe5, 0xc8, 0xf4, 0xa3, 0xb9, 0xdb, 0x74, 0x53,
- 0xca, 0x35, 0xda, 0x9d, 0x3b, 0xef, 0x2e, 0xb4, 0xe9, 0xcf, 0xc3, 0xa4,
- 0x87, 0x05, 0xed, 0xb1, 0x8e, 0xd9, 0xc3, 0xba, 0xf6, 0x18, 0xcb, 0x08,
- 0x18, 0x08, 0xfa, 0x4b, 0x59, 0xba, 0x01, 0x0a, 0x03, 0x5e, 0xde, 0x3e,
- 0xb2, 0x82, 0x49, 0xe9, 0xe8, 0x91, 0x45, 0x42, 0x03, 0xc3, 0xa0, 0x7a,
- 0xd2, 0xf0, 0x3e, 0x37, 0x8c, 0x76, 0xcd, 0xdf, 0xa9, 0x59, 0x6c, 0xda,
- 0x71, 0x16, 0xc3, 0x54, 0xe2, 0x3b, 0xae, 0x69, 0xdb, 0xb6, 0xe9, 0x18,
- 0x9c, 0xaf, 0xfc, 0x94, 0x6e, 0x0e, 0x23, 0x5d, 0x28, 0x26, 0x97, 0x5f,
- 0x53, 0x04, 0xac, 0x8b, 0xda, 0x77, 0x1d, 0x09, 0xdc, 0x50, 0xa4, 0x8f,
- 0xd5, 0x4d, 0xcf, 0xf3, 0x19, 0x34, 0x01, 0x2a, 0x12, 0xe8, 0xac, 0x4a,
- 0xed, 0x19, 0xed, 0x50, 0x5d, 0x86, 0x37, 0xbe, 0x75, 0xe0, 0xcf, 0x53,
- 0xba, 0x75, 0xac, 0x9f, 0x5b, 0x21, 0xd7, 0x7a, 0x90, 0x90, 0x94, 0x4d,
- 0x19, 0x84, 0x40, 0xe7, 0xd3, 0xd4, 0xb2, 0x73, 0xbc, 0xdb, 0x1c, 0x53,
- 0x7a, 0x18, 0x89, 0x90, 0x00, 0x69, 0x4b, 0x1d, 0x48, 0x7a, 0x7b, 0xfb,
- 0x9f, 0x0d, 0x77, 0xcd, 0xff, 0xa3, 0xa5, 0x11, 0x75, 0x91, 0x19, 0x0c,
- 0x5c, 0xa6, 0xba, 0xe0, 0x72, 0xbb, 0x4e, 0x66, 0xbd, 0x83, 0xca, 0xea,
- 0xba, 0x37, 0x7c, 0xf4, 0xbd, 0x42, 0x6b, 0x69, 0xef, 0x94, 0x74, 0x2a,
- 0x3f, 0xd1, 0x63, 0x5e, 0x2d, 0x67, 0x11, 0xb0, 0x8a, 0xe7, 0x36, 0x26,
- 0x05, 0x6d, 0x76, 0x2b, 0x4e, 0xe3, 0x6f, 0x49, 0x3c, 0x71, 0x16, 0xc5,
- 0xb0, 0x15, 0xea, 0x7f, 0xd1, 0xf2, 0x01, 0x1e, 0x89, 0xe1, 0x06, 0xd9,
- 0x3c, 0x30, 0x07, 0xe2, 0x65, 0x79, 0x75, 0x55, 0x67, 0x4d, 0xf7, 0x0e,
- 0x3a, 0x92, 0x47, 0x76, 0x2e, 0x40, 0x82, 0xe3, 0xc1, 0x9c, 0xdb, 0x49,
- 0xe2, 0x49, 0xda, 0xb4, 0x05, 0x17, 0x37, 0x37, 0x8c, 0x80, 0x3b, 0xdb,
- 0x4f, 0x78, 0xe0, 0x6c, 0xce, 0xd5, 0x0a, 0x52, 0x90, 0x71, 0x5e, 0x45,
- 0x38, 0x77, 0x4f, 0xc5, 0xc7, 0x7c, 0xb1, 0x20, 0x1b, 0x07, 0x8c, 0x1b,
- 0xb4, 0x77, 0x6d, 0x9c, 0x60, 0x9c, 0x99, 0x8d, 0x8a, 0xed, 0xac, 0x08,
- 0x18, 0xa3, 0x24, 0x4f, 0x2c, 0x7a, 0x78, 0x9c, 0x99, 0x63, 0x9b, 0x85,
- 0x5a, 0x3b, 0xb9, 0x36, 0xbc, 0x3c, 0x6b, 0x49, 0x0f, 0x9d, 0x52, 0x4e,
- 0x75, 0x91, 0xb2, 0x98, 0xa1, 0xbb, 0xc5, 0x65, 0x20, 0x4a, 0xea, 0x45,
- 0x0c, 0x88, 0xe5, 0x80, 0xf1, 0xd6, 0xe5, 0x36, 0x3a, 0xf9, 0x9f, 0xc7,
- 0x2e, 0x2b, 0xde, 0xa6, 0x9d, 0x33, 0xcc, 0x38, 0x06, 0xda, 0x4e, 0x7a,
- 0x83, 0xa3, 0x64, 0xd0, 0x43, 0x47, 0x5c, 0x14, 0xb5, 0xec, 0x80, 0x60,
- 0x61, 0xfb, 0x90, 0x2a, 0x91, 0x40, 0x1f, 0xda, 0xe1, 0x3c, 0xb4, 0x32,
- 0xd0, 0x9f, 0xb0, 0x84, 0x3c, 0xd9, 0x3a, 0x4a, 0x9c, 0x92, 0x46, 0xb2,
- 0x16, 0x7c, 0xb4, 0x2f, 0x2b, 0x8c, 0x3b, 0x79, 0x41, 0x6a, 0x23, 0x74,
- 0x98, 0x00, 0x0a, 0xab, 0x59, 0x48, 0x9c, 0x7e, 0xbb, 0x6c, 0xfe, 0x89,
- 0xb1, 0x92, 0x8a, 0xf6, 0x2f, 0x78, 0x55, 0xbc, 0x4d, 0x3d, 0xe1, 0x4d,
- 0x4d, 0x7c, 0x4e, 0x83, 0xbf, 0x1a, 0x3b, 0xfb, 0xa5, 0xfa, 0x2a, 0x56,
- 0xe4, 0xa9, 0x59, 0xb7, 0x46, 0x29, 0x41, 0x11, 0xec, 0x0d, 0x9b, 0x2f,
- 0xad, 0x73, 0xcd, 0x1e, 0x15, 0x40, 0x7d, 0x84, 0x2c, 0xaa, 0x2b, 0xeb,
- 0xaf, 0x70, 0xb5, 0xa5, 0x2e, 0x2f, 0x77, 0xea, 0xa5, 0xf7, 0x0f, 0x09,
- 0x18, 0x3c, 0xe3, 0x56, 0x6a, 0x34, 0x23, 0xad, 0x08, 0xbb, 0x49, 0x70,
- 0xed, 0xe6, 0xc5, 0x60, 0x9e, 0xcd, 0x09, 0xc0, 0xc7, 0x0f, 0x1a, 0x81,
- 0x58, 0x92, 0x16, 0xae, 0xbb, 0x91, 0xd7, 0x87, 0x0d, 0xf1, 0x46, 0x02,
- 0xdf, 0x53, 0x4e, 0x10, 0xa1, 0x6f, 0x86, 0x88, 0xa6, 0xb2, 0x10, 0xfc,
- 0x0c, 0x99, 0x58, 0xf6, 0xeb, 0x70, 0x94, 0x7d, 0x34, 0x2a, 0x74, 0xd1,
- 0xa7, 0x9f, 0x23, 0x15, 0x48, 0x67, 0x9f, 0x3a, 0xdb, 0x64, 0x45, 0x0c,
- 0x3f, 0xdf, 0xf2, 0x3e, 0xcb, 0x73, 0x9e, 0x2f, 0xe5, 0x5d, 0xd6, 0x48,
- 0x54, 0x94, 0xfb, 0x2e, 0xe1, 0x3b, 0x81, 0xd5, 0x9b, 0x4e, 0x74, 0x9a,
- 0x03, 0x7f, 0x49, 0xd6, 0x38, 0x9f, 0x90, 0xfa, 0x96, 0x52, 0x25, 0x6d,
- 0x20, 0xaf, 0x67, 0xdf, 0x9c, 0x83, 0x9e, 0xba, 0x60, 0xb9, 0xfb, 0x71,
- 0x89, 0xa0, 0x1d, 0x22, 0x57, 0x4f, 0x33, 0x8d, 0xed, 0x49, 0xc9, 0xbf,
- 0x0c, 0x52, 0x1e, 0x05, 0x5c, 0x6e, 0x74, 0x09, 0xc4, 0x28, 0xc5, 0x75,
- 0x8c, 0x31, 0x08, 0xca, 0x84, 0x55, 0x87, 0x6e, 0x26, 0x94, 0xcb, 0xe9,
- 0xa1, 0xf8, 0x70, 0x35, 0x55, 0xe7, 0x88, 0x76, 0xd4, 0x48, 0x61, 0x31,
- 0x8d, 0xee, 0x52, 0x6c, 0x35, 0xfb, 0x09, 0x88, 0x9b, 0xf0, 0x50, 0x29,
- 0xb8, 0x67, 0x30, 0x76, 0xdb, 0xd9, 0xe5, 0x73, 0x47, 0x5d, 0xb3, 0xf2,
- 0x10, 0xed, 0x79, 0x73, 0xb1, 0x6c, 0x42, 0xb2, 0x48, 0x5e, 0x0f, 0x52,
- 0xa4, 0xed, 0xa4, 0xf0, 0x14, 0xde, 0xdd, 0x94, 0x33, 0xb6, 0x8c, 0x83,
- 0x08, 0x8b, 0x26, 0x5c, 0x19, 0xed, 0x8a, 0xda, 0x21, 0xb4, 0x1a, 0x1c,
- 0xcb, 0xb7, 0x00, 0xc2, 0xb5, 0xc2, 0x24, 0x46, 0xc7, 0xcb, 0x52, 0xc2,
- 0x79, 0x2b, 0x14, 0xf4, 0x36, 0x4c, 0x4f, 0x31, 0xe7, 0x7c, 0x5c, 0xd6,
- 0xb2, 0x5f, 0x28, 0xa9, 0xc9, 0x6c, 0xb1, 0xb4, 0x82, 0x58, 0x16, 0xca,
- 0x06, 0x25, 0x98, 0xb2, 0x6a, 0x99, 0xc8, 0x27, 0xd2, 0x05, 0xbb, 0x28,
- 0xde, 0x9c, 0x52, 0x01, 0xcd, 0x36, 0x31, 0x3a, 0x00, 0xb9, 0x69, 0xb1,
- 0x77, 0xd0, 0x28, 0x13, 0x32, 0xdc, 0x80, 0x2e, 0x4d, 0xf2, 0x05, 0xcd,
- 0x29, 0xbc, 0x49, 0xc9, 0x6a, 0x6f, 0x96, 0xe9, 0xaa, 0xa9, 0x6b, 0x23,
- 0x77, 0x1e, 0x14, 0x4f, 0x4e, 0x83, 0x89, 0x84, 0x12, 0xb0, 0x6d, 0x57,
- 0x44, 0x0d, 0xfd, 0x85, 0x7c, 0x49, 0xe7, 0x6c, 0x85, 0x3c, 0x3a, 0x07,
- 0xb3, 0xcc, 0x4d, 0x9b, 0x9a, 0x00, 0x59, 0x50, 0x72, 0x8d, 0x68, 0xa2,
- 0x01, 0x37, 0xa5, 0xb7, 0xfc, 0x49, 0x13, 0x02, 0xeb, 0x38, 0xec, 0x66,
- 0xba, 0x31, 0xbb, 0x77, 0x2d, 0x7a, 0x19, 0x4a, 0x8a, 0x57, 0xf4, 0x78,
- 0x5b, 0xec, 0x27, 0xd2, 0xae, 0x56, 0x33, 0x32, 0xca, 0x37, 0x7f, 0xf3,
- 0xa0, 0x97, 0x28, 0xa5, 0x16, 0xdf, 0xe5, 0x68, 0x57, 0xe1, 0xf1, 0xd0,
- 0xb3, 0x60, 0xa7, 0x8a, 0xea, 0xc8, 0xc7, 0xbe, 0xdb, 0x1c, 0xf1, 0x34,
- 0xee, 0xbd, 0xfa, 0xfe, 0xf0, 0xf4, 0xfd, 0xf1, 0xde, 0x17, 0x09, 0xfd,
- 0x6b, 0x9f, 0xff, 0xb5, 0xdf, 0x8b, 0xae, 0x92, 0x11, 0x4e, 0x9b, 0xaf,
- 0x36, 0x93, 0xfa, 0x7e, 0x3e, 0x2e, 0x67, 0x76, 0x95, 0x64, 0x2e, 0x34,
- 0x54, 0xd6, 0x97, 0xdb, 0x5b, 0x13, 0xe6, 0xc4, 0x43, 0xde, 0x95, 0xd4,
- 0xb5, 0x00, 0x69, 0x54, 0xca, 0x20, 0x4e, 0xe7, 0x67, 0x6e, 0x35, 0x48,
- 0x6e, 0x53, 0xe1, 0x85, 0x78, 0xdd, 0xe5, 0x4a, 0x70, 0x13, 0xf3, 0x4f,
- 0xe9, 0x81, 0xae, 0x93, 0xa8, 0xd4, 0xe0, 0xab, 0xc5, 0x31, 0xfe, 0x79,
- 0xb2, 0x22, 0x10, 0xfc, 0x46, 0x2e, 0x01, 0xcc, 0xa1, 0x9c, 0x84, 0xfc,
- 0xae, 0x60, 0x85, 0x88, 0x24, 0xe7, 0x5e, 0x79, 0x4b, 0x36, 0x09, 0x24,
- 0x6d, 0x71, 0xdc, 0x40, 0x8f, 0x06, 0x6e, 0xbe, 0x72, 0x3e, 0x16, 0xad,
- 0xc5, 0xcb, 0x97, 0x33, 0xfb, 0xf1, 0x94, 0xf6, 0xe3, 0xac, 0x14, 0xeb,
- 0x44, 0xf3, 0x73, 0xaa, 0x16, 0x4b, 0x8f, 0xc7, 0x0b, 0x68, 0xe9, 0x8c,
- 0x84, 0x0f, 0xa8, 0x15, 0xf4, 0x63, 0x37, 0x73, 0x34, 0x8b, 0x47, 0x93,
- 0xa1, 0x08, 0xbc, 0x57, 0x5e, 0x39, 0x09, 0x6f, 0xc3, 0xa3, 0xfe, 0x35,
- 0x28, 0x5b, 0x88, 0xa0, 0x42, 0xb3, 0x34, 0x18, 0x0a, 0xa7, 0x02, 0x4a,
- 0x72, 0x30, 0x05, 0xda, 0xed, 0x8e, 0x34, 0x2b, 0x76, 0x3f, 0xcb, 0xb6,
- 0x35, 0x76, 0xa8, 0xd7, 0xcf, 0xce, 0xdb, 0xf2, 0xef, 0x66, 0xc6, 0x53,
- 0xf9, 0x48, 0xec, 0x0e, 0x93, 0x3b, 0x69, 0x65, 0xcf, 0xdd, 0x71, 0xe7,
- 0x74, 0x39, 0xff, 0x14, 0xb7, 0x8c, 0xd5, 0x14, 0x93, 0x6f, 0xd4, 0x24,
- 0xe0, 0x02, 0x83, 0x45, 0x90, 0xdb, 0xd6, 0x66, 0x5c, 0x7a, 0x57, 0x94,
- 0x4e, 0x89, 0xd9, 0x63, 0x25, 0x6f, 0x3d, 0xb7, 0xf4, 0x72, 0x0d, 0x74,
- 0x45, 0x6a, 0x57, 0xc7, 0x59, 0x71, 0x31, 0x1c, 0x7f, 0xca, 0xaa, 0x09,
- 0x25, 0xde, 0x4e, 0x8c, 0xa6, 0x08, 0xdd, 0x8b, 0x93, 0x85, 0x99, 0xb8,
- 0xa7, 0xb5, 0x6f, 0x54, 0xfc, 0xc1, 0x24, 0xd5, 0xf5, 0x5f, 0xb9, 0xf6,
- 0xc0, 0x1e, 0x4c, 0xcc, 0x1e, 0x1e, 0x5a, 0x8e, 0x14, 0xbd, 0xb0, 0xda,
- 0xe7, 0x5a, 0x13, 0x19, 0xe0, 0xe1, 0x0f, 0xa0, 0x42, 0x98, 0x61, 0x7d,
- 0xd1, 0x5b, 0x4d, 0xd9, 0x2e, 0xe8, 0x0b, 0x33, 0x5e, 0x38, 0x74, 0x09,
- 0x25, 0x4c, 0x82, 0x36, 0x60, 0x35, 0x2e, 0xca, 0xae, 0x0e, 0xb2, 0x99,
- 0x11, 0xc0, 0x28, 0xee, 0x95, 0x6c, 0x60, 0x0b, 0xb7, 0x18, 0x2b, 0x6b,
- 0x4a, 0x4a, 0x83, 0x70, 0x61, 0x98, 0x94, 0x35, 0x2b, 0xef, 0x28, 0x2e,
- 0xd2, 0xa6, 0x88, 0x9a, 0x97, 0x53, 0xde, 0x0f, 0xe3, 0x7b, 0xcb, 0xef,
- 0x3a, 0x20, 0xdd, 0x85, 0x3f, 0x3b, 0xd4, 0x6c, 0xdc, 0xe8, 0x0e, 0xb0,
- 0xe2, 0xa0, 0x83, 0x77, 0x4f, 0x1d, 0x76, 0xa1, 0x61, 0xff, 0x2e, 0xdf,
- 0xf7, 0x8e, 0x9f, 0x21, 0x76, 0xd1, 0x60, 0xc4, 0xe3, 0xb2, 0xb9, 0xb1,
- 0x57, 0x0e, 0x06, 0x4c, 0xee, 0x31, 0x63, 0xa9, 0x36, 0x50, 0xca, 0xd5,
- 0x32, 0x6b, 0x04, 0xd7, 0x26, 0xfe, 0x9b, 0x20, 0x04, 0xf8, 0x91, 0xd9,
- 0x41, 0xca, 0x46, 0x99, 0xdf, 0x84, 0x15, 0xa9, 0x41, 0x96, 0x39, 0xf9,
- 0x8f, 0x60, 0x94, 0x82, 0x84, 0xc6, 0x7c, 0x97, 0xc0, 0x42, 0x75, 0x4d,
- 0x84, 0x23, 0x34, 0xf4, 0x34, 0x48, 0x36, 0xc6, 0x54, 0x13, 0xe0, 0xc5,
- 0x2d, 0xea, 0x16, 0xd3, 0x01, 0x38, 0x43, 0x8e, 0xb3, 0x84, 0xc9, 0xcd,
- 0xbe, 0x1c, 0xeb, 0x3b, 0xf5, 0x36, 0x19, 0xdb, 0x11, 0x10, 0x58, 0x4b,
- 0xab, 0x5c, 0x71, 0x68, 0xff, 0x61, 0x43, 0x23, 0x30, 0xbc, 0xaa, 0x9a,
- 0x59, 0xd6, 0xc0, 0x53, 0x67, 0x91, 0x98, 0x98, 0xf2, 0x50, 0x78, 0xa5,
- 0x2e, 0x2c, 0x06, 0x35, 0xbf, 0x3b, 0x8a, 0xc5, 0x14, 0xaa, 0x98, 0xbe,
- 0x03, 0xe5, 0xc5, 0x63, 0x4b, 0xaa, 0x4b, 0x39, 0x91, 0x68, 0x9e, 0x04,
- 0x8d, 0x93, 0x34, 0x31, 0xda, 0x80, 0xae, 0x0c, 0xf0, 0xe3, 0x1e, 0x2d,
- 0xcd, 0x56, 0x34, 0x5d, 0x5f, 0x3e, 0x98, 0x17, 0x71, 0x33, 0x0e, 0xcc,
- 0xfe, 0xaf, 0x63, 0xf1, 0x43, 0xbd, 0x5c, 0x27, 0x65, 0xf1, 0xd7, 0x65,
- 0x31, 0x69, 0x2c, 0x26, 0x0e, 0x3a, 0x69, 0xd9, 0xf7, 0x48, 0x9b, 0x24,
- 0x60, 0x6a, 0x81, 0x34, 0xdd, 0x8d, 0x8f, 0x0f, 0x89, 0xfb, 0x8e, 0x32,
- 0x8f, 0x08, 0x2e, 0x4c, 0xd7, 0xce, 0xcc, 0xcb, 0x51, 0xba, 0xc9, 0xcd,
- 0x0a, 0x55, 0x93, 0x1b, 0x64, 0x55, 0xc2, 0xbd, 0x93, 0xa9, 0xcf, 0x72,
- 0x05, 0xfc, 0x87, 0x9b, 0x15, 0x45, 0x29, 0x27, 0x91, 0x44, 0x79, 0xd3,
- 0x65, 0xa1, 0x82, 0x7a, 0x55, 0x3f, 0x43, 0x74, 0xd5, 0x0d, 0xcd, 0x79,
- 0x36, 0xab, 0x33, 0x1b, 0xc2, 0xb7, 0xef, 0x38, 0x53, 0x04, 0x66, 0x71,
- 0x51, 0x72, 0x0c, 0x8e, 0xbc, 0x41, 0x79, 0xf4, 0x94, 0xa3, 0x27, 0x46,
- 0x05, 0x91, 0xce, 0x90, 0xa1, 0x47, 0xfb, 0xe4, 0x5e, 0xb3, 0xee, 0xa5,
- 0x05, 0xdd, 0x75, 0x9a, 0x75, 0x1f, 0xdc, 0x3e, 0xa5, 0x9d, 0x37, 0xc9,
- 0x64, 0xd7, 0xa9, 0xca, 0x95, 0x94, 0x93, 0xb7, 0x0a, 0x39, 0x17, 0x4c,
- 0x6f, 0x98, 0xbf, 0x99, 0x82, 0x52, 0x83, 0xc1, 0x55, 0xb3, 0x18, 0x44,
- 0x97, 0x00, 0x6b, 0xdd, 0xde, 0x02, 0xb3, 0x2b, 0x61, 0x2d, 0x78, 0xab,
- 0x84, 0x2d, 0xb7, 0x04, 0x1a, 0x4f, 0x4e, 0xdf, 0xb0, 0x0f, 0xfa, 0xe8,
- 0x82, 0xfe, 0x96, 0x5b, 0xce, 0x86, 0x21, 0x0e, 0x05, 0x11, 0x32, 0x73,
- 0x04, 0xf5, 0xed, 0xf7, 0xdd, 0x84, 0x9f, 0xad, 0xb3, 0xd1, 0xce, 0x93,
- 0x17, 0xbb, 0x61, 0xea, 0xf9, 0x16, 0x7d, 0xc3, 0x91, 0xd9, 0x7c, 0x36,
- 0x7c, 0xba, 0x3b, 0xdc, 0xdd, 0xee, 0xf4, 0x86, 0xa6, 0x7b, 0x4d, 0x32,
- 0xb9, 0x52, 0x70, 0xda, 0x8b, 0x83, 0xa6, 0xc0, 0xe5, 0x6b, 0x2b, 0x68,
- 0xd3, 0x4f, 0x5b, 0xba, 0xc8, 0x6e, 0xcd, 0x56, 0x8b, 0x19, 0xc3, 0xc9,
- 0x69, 0x0e, 0x2c, 0xbb, 0x79, 0x8f, 0x6e, 0x33, 0xbd, 0x5f, 0x28, 0x2f,
- 0xb0, 0x9d, 0xab, 0x87, 0x47, 0xe8, 0xc2, 0x64, 0xc0, 0x70, 0x24, 0x08,
- 0x52, 0x9b, 0x4e, 0x55, 0x00, 0xc7, 0x21, 0xd8, 0xfe, 0xbb, 0x3b, 0x40,
- 0x3c, 0x87, 0xde, 0xde, 0x8b, 0xe1, 0x67, 0xfe, 0x9a, 0x92, 0x26, 0x3e,
- 0x48, 0xeb, 0x49, 0x9e, 0xaf, 0xb5, 0x31, 0x14, 0x75, 0xf8, 0xd7, 0x25,
- 0x68, 0x59, 0xcc, 0x36, 0xcd, 0x53, 0x8e, 0xa0, 0x3a, 0x36, 0xab, 0xa0,
- 0x59, 0x52, 0x23, 0xcd, 0x16, 0x5b, 0xd7, 0xae, 0xa4, 0x30, 0x11, 0xc9,
- 0xb6, 0x10, 0xf0, 0xc1, 0x9d, 0x37, 0xc3, 0xb9, 0xee, 0xa8, 0x52, 0xe6,
- 0x2c, 0x30, 0x81, 0xcb, 0xa2, 0x0a, 0x13, 0x4a, 0x08, 0x1f, 0x49, 0x74,
- 0x9e, 0x66, 0xee, 0xeb, 0x92, 0xe6, 0x29, 0x36, 0xa9, 0xf0, 0x1a, 0x80,
- 0xc2, 0xcc, 0x1a, 0x37, 0xf6, 0xec, 0x0b, 0x40, 0xe7, 0x2b, 0x0f, 0x50,
- 0xd3, 0x32, 0x50, 0xd2, 0x88, 0x32, 0xc8, 0x0c, 0xac, 0x09, 0xa2, 0xd6,
- 0x6c, 0x3f, 0xd1, 0x40, 0x98, 0x32, 0x26, 0x81, 0x2b, 0x82, 0x91, 0x1b,
- 0xc2, 0x0c, 0x4c, 0x84, 0x0c, 0x76, 0xb6, 0x22, 0x74, 0x1b, 0x7d, 0x33,
- 0x3e, 0xf0, 0x3b, 0x61, 0x07, 0x15, 0xd9, 0x1d, 0x49, 0xe3, 0x5a, 0xd4,
- 0x89, 0xaa, 0xca, 0xc9, 0x99, 0x63, 0x83, 0xfe, 0xac, 0x92, 0x11, 0x10,
- 0x92, 0x2e, 0xe8, 0x69, 0x24, 0x8b, 0x70, 0x82, 0xd3, 0x59, 0x5b, 0xc2,
- 0xac, 0x02, 0x0c, 0x45, 0xc4, 0xb8, 0xf3, 0x38, 0xab, 0x76, 0xe5, 0xa6,
- 0x03, 0x83, 0xb3, 0x03, 0x5e, 0x34, 0x11, 0x67, 0x0f, 0x81, 0x27, 0xd8,
- 0x33, 0xc2, 0x8c, 0x25, 0x98, 0xeb, 0xb4, 0x16, 0xb6, 0xef, 0x31, 0xef,
- 0xc6, 0x35, 0x5b, 0xa7, 0x4a, 0xef, 0x1e, 0xde, 0x8f, 0xde, 0xae, 0x91,
- 0x99, 0x9e, 0xc1, 0x55, 0xe2, 0x11, 0xac, 0xc1, 0x47, 0xa0, 0x78, 0xbd,
- 0x48, 0x4f, 0x85, 0xd8, 0x97, 0x59, 0x75, 0xcd, 0x64, 0x36, 0x62, 0xdc,
- 0xb0, 0x5c, 0xff, 0x6a, 0x0d, 0x48, 0xdf, 0x39, 0x15, 0xdd, 0x28, 0x5a,
- 0x9e, 0xf3, 0x0e, 0x4b, 0x13, 0x86, 0x65, 0xae, 0x3c, 0x46, 0xb9, 0x3f,
- 0xe2, 0x50, 0xb8, 0xd1, 0xf5, 0x3d, 0x08, 0x10, 0x2f, 0x00, 0x1c, 0x43,
- 0xde, 0x30, 0x85, 0xce, 0x2b, 0x86, 0x04, 0x64, 0x3a, 0x33, 0xda, 0x56,
- 0x08, 0xef, 0x5a, 0x9a, 0x96, 0x45, 0x56, 0x91, 0x14, 0x04, 0x6a, 0x7a,
- 0xa0, 0x60, 0xd7, 0xd8, 0xc5, 0x62, 0x36, 0xff, 0xd1, 0x37, 0x27, 0x40,
- 0xff, 0x9a, 0x43, 0x5f, 0x48, 0x6a, 0x2b, 0xf7, 0x9f, 0x69, 0xd5, 0xad,
- 0x11, 0x76, 0x9d, 0x5b, 0x93, 0x31, 0x4d, 0x5a, 0x94, 0x69, 0x1d, 0x1d,
- 0x39, 0x51, 0x65, 0x58, 0xf0, 0x8d, 0xa2, 0xd3, 0x52, 0x64, 0x81, 0x14,
- 0x52, 0x8d, 0x10, 0xa6, 0x0e, 0x52, 0x1e, 0x9d, 0x2f, 0x7c, 0x5d, 0x53,
- 0xb0, 0xd3, 0x5a, 0x42, 0x80, 0x50, 0x2c, 0x02, 0xb8, 0xb1, 0xdb, 0xaf,
- 0x4c, 0x53, 0x9f, 0x85, 0xd0, 0x29, 0xf9, 0x7c, 0xbc, 0x8e, 0x04, 0xd6,
- 0xa4, 0x63, 0x8e, 0xdb, 0xa9, 0xcb, 0x34, 0x1c, 0x8e, 0xee, 0x23, 0x69,
- 0x81, 0x9c, 0x32, 0x31, 0xcf, 0x9f, 0xaa, 0x25, 0x14, 0x12, 0xf8, 0x0f,
- 0xe0, 0xe0, 0xe9, 0x8e, 0x30, 0xe7, 0x93, 0x6e, 0x49, 0x4d, 0x26, 0xf1,
- 0x5b, 0x53, 0x22, 0x1e, 0x01, 0x4e, 0xc6, 0x9b, 0x23, 0x7b, 0xe5, 0x15,
- 0xdd, 0xec, 0x5f, 0x89, 0xc3, 0x83, 0x80, 0xd3, 0x7e, 0x10, 0x44, 0x32,
- 0x89, 0x18, 0x62, 0x27, 0xac, 0x01, 0x34, 0x0d, 0xf1, 0xe6, 0x38, 0x4c,
- 0xe6, 0xcd, 0x1e, 0xef, 0x38, 0xe2, 0xd1, 0xac, 0xb9, 0x54, 0xc1, 0xbf,
- 0x74, 0x27, 0xef, 0xd5, 0xc3, 0xb3, 0xf7, 0x4b, 0xa7, 0x6f, 0xfd, 0xec,
- 0x31, 0x1f, 0xad, 0x62, 0x2d, 0x5f, 0x79, 0x8e, 0x1e, 0xc0, 0x05, 0xd8,
- 0x56, 0xb0, 0x0e, 0x9f, 0xb6, 0x94, 0xf1, 0x8c, 0xa2, 0x57, 0xbf, 0xd5,
- 0xaa, 0x63, 0x33, 0xc2, 0x02, 0xa5, 0xce, 0xc7, 0x9b, 0x63, 0x6f, 0x25,
- 0xd6, 0xde, 0x67, 0x4d, 0x12, 0x9d, 0x11, 0x2d, 0x90, 0xa1, 0xf7, 0xc9,
- 0xec, 0xff, 0x86, 0x37, 0xf3, 0x18, 0x3e, 0x95, 0x41, 0xbc, 0x39, 0xcd,
- 0x98, 0x11, 0xa5, 0x31, 0x18, 0xdf, 0x57, 0x7a, 0x49, 0x3d, 0x34, 0xb8,
- 0x16, 0xf4, 0x92, 0xe1, 0x29, 0xec, 0xa2, 0x83, 0x9d, 0xd2, 0x8a, 0xd0,
- 0x45, 0x9c, 0x98, 0x36, 0x6d, 0xc9, 0xb2, 0x38, 0x31, 0xf2, 0x55, 0x6f,
- 0xb0, 0xed, 0x7e, 0x7b, 0xce, 0x88, 0xa5, 0x06, 0xf7, 0x81, 0x2c, 0x74,
- 0xbc, 0xb9, 0x1c, 0x86, 0xa9, 0x2c, 0x1f, 0x51, 0xcd, 0x46, 0x97, 0xef,
- 0xff, 0xcf, 0x86, 0xc8, 0xee, 0x51, 0xec, 0x06, 0x29, 0x59, 0x71, 0xcd,
- 0xac, 0x4f, 0xa6, 0x5b, 0x80, 0x69, 0x27, 0x2d, 0x52, 0xf8, 0x00, 0x3c,
- 0x00, 0xe3, 0xbb, 0x8f, 0x98, 0xdd, 0x0c, 0x91, 0xcd, 0x9c, 0x11, 0xef,
- 0xaf, 0xec, 0xcd, 0x33, 0x1d, 0xd0, 0xf0, 0x06, 0xb2, 0x6b, 0x87, 0xd8,
- 0x87, 0x6b, 0x36, 0xab, 0xdd, 0x9c, 0xf1, 0x7d, 0x19, 0xec, 0xc0, 0xd5,
- 0xb7, 0xa3, 0x12, 0xa4, 0xc9, 0xf5, 0xde, 0xba, 0x2c, 0xf7, 0x3e, 0x6f,
- 0x5d, 0x96, 0xee, 0x9d, 0x75, 0xd7, 0xe4, 0x08, 0x69, 0x1b, 0xed, 0x84,
- 0x66, 0xbc, 0x04, 0x28, 0x09, 0xc8, 0x89, 0x43, 0x80, 0x0c, 0xbd, 0xda,
- 0xd5, 0x01, 0x04, 0xa1, 0xe2, 0xb0, 0xff, 0x9c, 0x97, 0x40, 0x81, 0x17,
- 0x51, 0xe6, 0x93, 0x71, 0x55, 0xde, 0xd5, 0xd0, 0x9e, 0xd4, 0x9e, 0x4a,
- 0x19, 0x47, 0x79, 0x13, 0x44, 0xf3, 0xcd, 0xf4, 0xce, 0x2c, 0x91, 0xdb,
- 0xb7, 0x97, 0x6f, 0x4f, 0x99, 0xac, 0x96, 0x33, 0xd9, 0x28, 0x6d, 0x45,
- 0xfa, 0xbc, 0x1c, 0xcf, 0xcd, 0xfa, 0x1b, 0x05, 0xa5, 0x61, 0x69, 0xa6,
- 0x02, 0x32, 0x48, 0xb7, 0x43, 0x54, 0x48, 0x82, 0x8a, 0x8b, 0x98, 0xaf,
- 0x5f, 0x5c, 0x41, 0x2e, 0x9a, 0x26, 0x8b, 0x8b, 0xdc, 0xaf, 0xd5, 0x00,
- 0x93, 0x9d, 0x4f, 0x83, 0xbb, 0xbb, 0xbb, 0x01, 0xf5, 0xce, 0x29, 0x26,
- 0x64, 0xb2, 0x1d, 0x31, 0xae, 0x02, 0xaa, 0xd4, 0x1b, 0x5a, 0x0a, 0x7a,
- 0x24, 0x38, 0x7d, 0x9e, 0xa6, 0x86, 0x9a, 0x0a, 0xe0, 0x84, 0xb4, 0x0e,
- 0x05, 0x52, 0xbc, 0x2c, 0xa1, 0x32, 0xc8, 0x44, 0xd2, 0xb6, 0xb2, 0xd5,
- 0x15, 0x69, 0x4e, 0xf9, 0x72, 0xd4, 0xc8, 0xbe, 0xfe, 0x45, 0xaa, 0x08,
- 0xa9, 0x44, 0x12, 0x93, 0x58, 0x56, 0xe4, 0x7f, 0x62, 0x0b, 0x23, 0x86,
- 0xdc, 0x16, 0x9d, 0x44, 0xfd, 0xfa, 0x36, 0x3a, 0xd6, 0xb2, 0x4c, 0x94,
- 0x03, 0x96, 0xda, 0xf6, 0x8e, 0x6f, 0x44, 0x4f, 0x64, 0xea, 0x0e, 0xe0,
- 0xf1, 0xb1, 0x9a, 0x66, 0xb3, 0x99, 0xd6, 0x51, 0xe2, 0x20, 0x85, 0x3f,
- 0x37, 0xd0, 0xf0, 0xa2, 0x3a, 0xb6, 0x23, 0x48, 0xae, 0x1d, 0x27, 0xae,
- 0x9a, 0x77, 0x60, 0x30, 0x01, 0x67, 0x09, 0x48, 0x71, 0xcb, 0xb6, 0x7b,
- 0x66, 0x10, 0x44, 0x10, 0xc5, 0x5d, 0xd3, 0xf7, 0x22, 0x35, 0x39, 0x39,
- 0x4c, 0xfc, 0xfc, 0x7e, 0x47, 0xd8, 0x37, 0xcf, 0xaa, 0x6b, 0xfa, 0x89,
- 0xb2, 0xb9, 0x45, 0xb3, 0x46, 0xd2, 0xc4, 0xa3, 0xaf, 0x49, 0x92, 0x7f,
- 0x1d, 0xf0, 0xa5, 0x0a, 0xcf, 0xca, 0x92, 0x60, 0xad, 0xe2, 0x02, 0xde,
- 0x1c, 0x4c, 0x59, 0xac, 0x4c, 0xd3, 0xc2, 0xcc, 0x84, 0x39, 0xb1, 0x21,
- 0xc4, 0x62, 0x36, 0x7b, 0x35, 0x2b, 0x97, 0xf5, 0xfd, 0x66, 0x22, 0xfc,
- 0xe4, 0x42, 0xe9, 0xdb, 0x70, 0x82, 0x26, 0xd6, 0xd2, 0xac, 0xef, 0xb2,
- 0xf8, 0xa8, 0xf7, 0x22, 0xa1, 0xdd, 0x6b, 0xf6, 0x2d, 0x76, 0x9a, 0xdb,
- 0xf4, 0x3e, 0xf6, 0xaf, 0x7e, 0xdb, 0xd1, 0x59, 0x86, 0x27, 0x92, 0xed,
- 0xbc, 0xc7, 0x19, 0x7a, 0x2e, 0x8a, 0x10, 0xb3, 0xf2, 0x92, 0x56, 0xd4,
- 0xc7, 0x36, 0x48, 0xf7, 0x06, 0x33, 0xe8, 0xa9, 0x97, 0xdc, 0x85, 0xff,
- 0x21, 0x6f, 0x56, 0xa4, 0x30, 0xb8, 0x9a, 0x5f, 0x9c, 0xc2, 0xe0, 0x28,
- 0x85, 0x38, 0xc5, 0xdb, 0xf2, 0x79, 0xfb, 0x19, 0x53, 0xc3, 0xe4, 0xdc,
- 0xcc, 0xd7, 0x20, 0x88, 0xfc, 0x5c, 0x7b, 0xcd, 0xa5, 0x3e, 0x5f, 0x99,
- 0x5c, 0x6b, 0x36, 0x13, 0x96, 0xf1, 0xc9, 0x00, 0x9d, 0x27, 0xd6, 0x9a,
- 0x0c, 0x90, 0x1e, 0x6c, 0x5a, 0xd2, 0xce, 0xb2, 0xd6, 0xa7, 0xf5, 0x14,
- 0x13, 0x51, 0x2a, 0x25, 0x3e, 0x53, 0x74, 0x5c, 0x8d, 0x69, 0xf6, 0xb5,
- 0xb3, 0x9b, 0x33, 0x38, 0x33, 0xde, 0xe9, 0xa5, 0xf9, 0x80, 0x10, 0xb0,
- 0xac, 0xa9, 0x74, 0x93, 0x75, 0x8c, 0x2e, 0xce, 0xdd, 0x75, 0x62, 0x25,
- 0x18, 0x2c, 0x23, 0x13, 0xd7, 0x40, 0x9a, 0xfc, 0xb3, 0xed, 0xdd, 0x36,
- 0xce, 0xea, 0xea, 0x5e, 0x41, 0xab, 0xfd, 0x85, 0x8e, 0x77, 0xce, 0x89,
- 0x40, 0x7e, 0xfd, 0x44, 0xa1, 0x52, 0xd2, 0x9a, 0x78, 0xba, 0x7c, 0x53,
- 0x2f, 0x9b, 0x65, 0xd7, 0x3c, 0xa6, 0x97, 0xa7, 0xc7, 0xdf, 0x1f, 0x9f,
- 0x06, 0x17, 0xd8, 0x37, 0xa3, 0xd1, 0xce, 0xc7, 0xac, 0x1a, 0xa3, 0x0a,
- 0x13, 0xf9, 0xbc, 0x13, 0x3c, 0x67, 0xf1, 0x3a, 0x9e, 0x54, 0xbf, 0x73,
- 0xc9, 0xe5, 0x09, 0xa3, 0x76, 0x03, 0x63, 0x9f, 0x10, 0x99, 0xfc, 0x49,
- 0x61, 0x4c, 0x45, 0xfe, 0x88, 0x00, 0xc3, 0x70, 0x4b, 0x4d, 0xaa, 0x6c,
- 0xca, 0x55, 0x8a, 0x42, 0x48, 0x58, 0x41, 0x6a, 0x7e, 0x92, 0xbc, 0xc6,
- 0x52, 0x32, 0x2c, 0x18, 0xd1, 0x0f, 0x3b, 0x88, 0xe0, 0x8d, 0x45, 0x69,
- 0xae, 0x90, 0xfb, 0xe4, 0xb5, 0x7c, 0xb3, 0x66, 0xe7, 0x26, 0xcd, 0x06,
- 0x73, 0xcf, 0xb0, 0xc9, 0x70, 0xf6, 0xdd, 0xe0, 0x70, 0x34, 0x78, 0x7d,
- 0x7c, 0x7a, 0xfc, 0xcd, 0xe1, 0xe5, 0xb1, 0xd2, 0x82, 0x92, 0xfb, 0x7f,
- 0x85, 0x32, 0xc4, 0xf2, 0xee, 0x3b, 0x99, 0x16, 0x8c, 0x9f, 0x68, 0x65,
- 0x9b, 0x9c, 0xc9, 0x9e, 0x95, 0x3d, 0x97, 0x4b, 0xe9, 0x91, 0x89, 0x22,
- 0xc8, 0xd0, 0x78, 0x73, 0xe6, 0xf4, 0xcd, 0xe6, 0xd2, 0xd5, 0x60, 0x04,
- 0xe9, 0xec, 0x8e, 0xca, 0x3e, 0xbc, 0x2f, 0x08, 0x17, 0x9d, 0xdb, 0x34,
- 0x40, 0x1e, 0xbd, 0x37, 0xf9, 0xde, 0xcc, 0xb6, 0x16, 0x18, 0xf4, 0x99,
- 0x2b, 0x8c, 0x77, 0xcd, 0xe1, 0x45, 0xf0, 0xf1, 0x35, 0x9e, 0xec, 0xd0,
- 0x74, 0x0e, 0x5d, 0x12, 0x6f, 0x61, 0x7f, 0x15, 0x49, 0xb3, 0xa7, 0x0d,
- 0x54, 0x4f, 0x6e, 0xb2, 0xb9, 0x68, 0x94, 0x14, 0x70, 0x46, 0x7a, 0x27,
- 0xe7, 0xcb, 0x09, 0xb3, 0x01, 0x1f, 0xf4, 0x71, 0x06, 0xc1, 0x8c, 0x78,
- 0x0e, 0x36, 0x6f, 0x0c, 0xba, 0x79, 0x47, 0xe4, 0xbd, 0xe4, 0xa4, 0x27,
- 0x08, 0x06, 0xb2, 0x42, 0x87, 0x40, 0x8b, 0x71, 0x9e, 0x40, 0xd1, 0x0a,
- 0xfd, 0x5a, 0x79, 0xc9, 0xb5, 0x49, 0xba, 0x97, 0xbf, 0x65, 0x01, 0xf5,
- 0x78, 0xfc, 0x28, 0xb2, 0x83, 0x1f, 0x41, 0x60, 0xaa, 0xea, 0x4b, 0x9d,
- 0xfc, 0x95, 0x1e, 0x4e, 0xde, 0x4f, 0xdc, 0x77, 0x49, 0xc8, 0xc1, 0x66,
- 0x8d, 0xa2, 0x70, 0xa3, 0x82, 0x41, 0x62, 0xed, 0xd4, 0x5d, 0xed, 0x2f,
- 0xdb, 0x68, 0x4a, 0x51, 0xca, 0x4b, 0x99, 0xc8, 0x59, 0x16, 0x5e, 0xdf,
- 0x47, 0x0a, 0x86, 0x16, 0xf1, 0x2f, 0x11, 0xad, 0xea, 0x5f, 0x43, 0x7a,
- 0x66, 0x9b, 0x3e, 0x35, 0xc8, 0x16, 0x01, 0xef, 0xe5, 0xd6, 0x1b, 0xa5,
- 0xb2, 0xb5, 0x7a, 0x9e, 0x5f, 0xcb, 0xc1, 0x23, 0x5e, 0x3f, 0x3e, 0xbf,
- 0xe0, 0x82, 0x8a, 0xa7, 0xf4, 0x17, 0x09, 0xda, 0xd4, 0x31, 0xae, 0x1e,
- 0xa1, 0xd2, 0x26, 0x8c, 0x41, 0x06, 0xaf, 0xbf, 0x8d, 0xc5, 0x2a, 0xb0,
- 0x8c, 0xe1, 0x84, 0xc2, 0x57, 0x2a, 0x07, 0x22, 0x96, 0x8b, 0xe8, 0x15,
- 0x00, 0xa2, 0x9e, 0x50, 0x17, 0x84, 0x9e, 0x10, 0x9d, 0x60, 0x48, 0xa4,
- 0xfa, 0xd6, 0xcf, 0xe8, 0x97, 0xa4, 0xfb, 0x29, 0x70, 0x60, 0xc5, 0x34,
- 0xb6, 0xf8, 0x84, 0xa9, 0x59, 0x7a, 0x33, 0xa9, 0x50, 0x2e, 0x2a, 0x35,
- 0x5d, 0x19, 0x76, 0x86, 0x0a, 0xc2, 0x7f, 0xe2, 0x06, 0x0b, 0x5d, 0xe9,
- 0x28, 0x75, 0x20, 0x7e, 0x31, 0xc1, 0x19, 0x63, 0xc0, 0x0a, 0x9f, 0xee,
- 0x4b, 0x88, 0x3a, 0xb5, 0xe1, 0x4a, 0x94, 0x9a, 0x44, 0xec, 0x3a, 0xd0,
- 0xb6, 0x05, 0x63, 0xce, 0x63, 0xa0, 0xcc, 0x68, 0x89, 0xba, 0xb2, 0x72,
- 0x76, 0x25, 0x91, 0xad, 0x14, 0x74, 0x90, 0x30, 0x33, 0xc6, 0xac, 0x4d,
- 0x00, 0xa4, 0x75, 0x93, 0x16, 0x91, 0x53, 0x67, 0x26, 0xde, 0xd6, 0x5c,
- 0xc0, 0x28, 0x65, 0xd9, 0x22, 0x0a, 0x35, 0xed, 0x8d, 0x16, 0xc6, 0x97,
- 0x00, 0xed, 0x9f, 0x48, 0x61, 0xcf, 0xc9, 0x25, 0x2e, 0x5d, 0xe1, 0x99,
- 0x21, 0xf2, 0x0f, 0xdd, 0x6f, 0x65, 0x6c, 0x57, 0x89, 0x78, 0x71, 0x8e,
- 0xfa, 0xd6, 0x16, 0x5c, 0xe1, 0x02, 0xce, 0x12, 0x8b, 0xe8, 0xa9, 0x91,
- 0x33, 0xe1, 0x11, 0xff, 0x51, 0x0d, 0xb3, 0x76, 0x52, 0x05, 0x96, 0x0f,
- 0xf7, 0x7a, 0xd1, 0x05, 0x30, 0x64, 0x8c, 0xa4, 0x37, 0xdf, 0x46, 0x77,
- 0xc9, 0x2b, 0x63, 0x83, 0x79, 0xb4, 0x79, 0x82, 0xef, 0xbf, 0x46, 0xe7,
- 0xe8, 0x3b, 0x78, 0x01, 0x27, 0xdf, 0xe8, 0x0f, 0x5c, 0x02, 0x8f, 0x10,
- 0x3b, 0xbc, 0x95, 0xc7, 0x99, 0xf9, 0x5e, 0x4e, 0x35, 0x36, 0xfc, 0x1a,
- 0x35, 0x21, 0x6a, 0xb5, 0x36, 0x1b, 0x90, 0x6e, 0x0b, 0x52, 0xc4, 0x48,
- 0x0a, 0xd1, 0xbb, 0x14, 0x8a, 0xcf, 0x12, 0xbf, 0x40, 0x0d, 0x36, 0x04,
- 0xb4, 0xf7, 0xf3, 0xbe, 0x84, 0xc2, 0x00, 0x56, 0x0b, 0x22, 0xca, 0x66,
- 0x02, 0x27, 0x96, 0x23, 0x44, 0x9f, 0x4c, 0xeb, 0xdb, 0xf8, 0x09, 0xaf,
- 0x6f, 0xa3, 0x27, 0xfc, 0x11, 0xe7, 0xdc, 0xd9, 0x3e, 0xc7, 0xe7, 0xa3,
- 0xef, 0x57, 0xa5, 0xfb, 0x33, 0x2d, 0x3a, 0x1f, 0x71, 0x37, 0x3a, 0xda,
- 0xf4, 0xfe, 0x31, 0x5f, 0x7d, 0xce, 0xa3, 0xee, 0xfa, 0xe0, 0x9c, 0x9b,
- 0xef, 0xcb, 0xe1, 0x3e, 0x3f, 0x1c, 0x7d, 0xef, 0x1d, 0x6b, 0x6f, 0x0b,
- 0xe0, 0x1c, 0xc7, 0xb2, 0x8d, 0x51, 0x7f, 0xa7, 0x52, 0x72, 0x40, 0x6a,
- 0x2c, 0xba, 0xdf, 0xeb, 0xdb, 0xc7, 0xec, 0x77, 0xd3, 0x93, 0x60, 0xbf,
- 0x07, 0x73, 0xbc, 0x6e, 0xbf, 0xfb, 0x0b, 0xd5, 0xc6, 0x40, 0x7a, 0xbb,
- 0xbd, 0xe0, 0x2a, 0x7d, 0x37, 0x28, 0xf8, 0x1a, 0xdf, 0xe6, 0x40, 0xc2,
- 0xf2, 0xd6, 0x0e, 0x21, 0x62, 0xe8, 0xe7, 0x2f, 0xdb, 0xe8, 0xe6, 0x85,
- 0x60, 0xa3, 0xeb, 0x7a, 0xc6, 0x77, 0xfa, 0xaa, 0x8d, 0xae, 0x08, 0xd1,
- 0x8c, 0x37, 0xb9, 0xbf, 0xc7, 0xc3, 0xfd, 0xed, 0xed, 0x5a, 0x3f, 0xb5,
- 0x37, 0x9c, 0x21, 0x05, 0x2a, 0xd9, 0x3c, 0x75, 0x2f, 0x4d, 0x3f, 0x42,
- 0x0b, 0xd1, 0x57, 0x28, 0x1b, 0x12, 0x1c, 0x43, 0xef, 0xba, 0x25, 0x54,
- 0x68, 0x81, 0xd9, 0x2b, 0xd5, 0xa5, 0x71, 0x8b, 0xe3, 0xda, 0x86, 0xa9,
- 0xee, 0x67, 0x89, 0x5f, 0x05, 0x27, 0xb2, 0x45, 0xfe, 0x92, 0x45, 0xf3,
- 0x8d, 0xeb, 0x8c, 0x20, 0x02, 0xe0, 0x1d, 0x6a, 0x9d, 0xd3, 0xa2, 0x1e,
- 0xb8, 0x2a, 0x8a, 0x2f, 0xed, 0x5f, 0x03, 0x2d, 0xfd, 0xf5, 0xbb, 0x51,
- 0xe7, 0xb8, 0xd6, 0x19, 0x23, 0xe6, 0xaf, 0x71, 0xf4, 0xcc, 0xef, 0x6d,
- 0x9e, 0x4b, 0xed, 0xaa, 0x96, 0x48, 0x93, 0x41, 0x22, 0x33, 0x7d, 0xc2,
- 0x72, 0xcb, 0x3b, 0xc5, 0x27, 0xd5, 0xc2, 0x9f, 0xf0, 0xf7, 0x91, 0xcf,
- 0xc5, 0xeb, 0x9d, 0x64, 0xfa, 0x92, 0x27, 0x25, 0x46, 0xf3, 0xc2, 0x42,
- 0x96, 0xfa, 0xa9, 0x05, 0xd4, 0x84, 0x75, 0x55, 0xe8, 0x9d, 0x6c, 0xc1,
- 0x85, 0x22, 0xf1, 0x0a, 0x47, 0xc6, 0x22, 0x33, 0x5b, 0x42, 0x1b, 0x23,
- 0x90, 0x9d, 0xed, 0xb5, 0xda, 0x14, 0x4f, 0xe1, 0xe2, 0xf6, 0xe9, 0x80,
- 0x1e, 0x57, 0xe5, 0x49, 0x7e, 0xf8, 0x1c, 0x3f, 0x1c, 0x76, 0x27, 0x3a,
- 0xb0, 0x35, 0xa5, 0xca, 0x91, 0xf5, 0x32, 0x2e, 0x8b, 0x29, 0xf1, 0x3f,
- 0x53, 0xb7, 0xb5, 0x62, 0xf1, 0x5d, 0xea, 0x78, 0xab, 0x49, 0x90, 0x0b,
- 0x3b, 0x8b, 0xd9, 0x4b, 0xdd, 0xc9, 0x4d, 0x51, 0xba, 0xd8, 0xf3, 0x28,
- 0x3e, 0xe9, 0x86, 0xdf, 0x5a, 0x3d, 0x7e, 0x29, 0xc3, 0x8c, 0x2f, 0x39,
- 0xaf, 0xb9, 0x67, 0xc9, 0x8f, 0x73, 0x2e, 0xba, 0xf0, 0x32, 0x5f, 0x0c,
- 0xf4, 0x4d, 0x16, 0xc2, 0xf3, 0xf4, 0xa3, 0x5c, 0x8d, 0x4f, 0x69, 0x19,
- 0x22, 0x83, 0xe4, 0xa2, 0x68, 0x7e, 0x60, 0x87, 0xb6, 0x8d, 0xdd, 0x35,
- 0xa2, 0xb2, 0x34, 0x96, 0xa3, 0x0d, 0xe6, 0x0d, 0x7f, 0x23, 0x96, 0x06,
- 0xa3, 0xc0, 0x55, 0xdf, 0x67, 0xa1, 0x90, 0x77, 0xf4, 0xc2, 0xbe, 0xfb,
- 0xe0, 0xfa, 0xb9, 0xfd, 0xb0, 0x6e, 0xfd, 0x74, 0xce, 0xfe, 0x7b, 0xac,
- 0xdf, 0xf3, 0xdf, 0x6d, 0xfd, 0x9e, 0xff, 0xb7, 0x58, 0xbf, 0xe7, 0xff,
- 0xf8, 0xfa, 0x3d, 0xed, 0xae, 0xdf, 0xf3, 0xff, 0x2e, 0xeb, 0xa7, 0xe5,
- 0x3e, 0x74, 0xf5, 0xb2, 0x60, 0xfd, 0xc8, 0x13, 0xc2, 0x57, 0x08, 0x08,
- 0xbe, 0xa0, 0x0d, 0xd1, 0x74, 0xeb, 0x9b, 0x1c, 0x78, 0x10, 0xac, 0x19,
- 0x7b, 0x76, 0x15, 0xf2, 0x88, 0xcc, 0xfb, 0x38, 0x4f, 0xa3, 0x70, 0x27,
- 0x29, 0xe1, 0xd9, 0xc9, 0x79, 0x62, 0x3b, 0xe0, 0x2d, 0x83, 0xa3, 0x19,
- 0x82, 0x92, 0x13, 0x75, 0xb9, 0xd6, 0xe4, 0x87, 0x33, 0x13, 0xc0, 0xc9,
- 0x66, 0xb5, 0x4b, 0x95, 0x8c, 0x71, 0x09, 0x99, 0xc9, 0x3b, 0x78, 0x49,
- 0xf3, 0x35, 0xe0, 0xc7, 0xbf, 0x8c, 0xe6, 0xff, 0xa0, 0xaa, 0x9a, 0xeb,
- 0x52, 0xcc, 0xcd, 0xee, 0x4d, 0xdd, 0xa3, 0x97, 0x6d, 0x55, 0xe1, 0x09,
- 0x5d, 0xc2, 0xc9, 0xe0, 0xa1, 0x25, 0x7b, 0x0d, 0xcd, 0x60, 0x39, 0x5f,
- 0x48, 0x5e, 0xe0, 0x03, 0x79, 0x51, 0xd0, 0x3f, 0xb7, 0x93, 0x1f, 0x90,
- 0xf5, 0xc4, 0x9e, 0x55, 0xc9, 0x15, 0xb0, 0x25, 0x81, 0x15, 0x88, 0xad,
- 0x61, 0x8b, 0x15, 0x04, 0x46, 0x51, 0x2e, 0x99, 0x4e, 0xce, 0x2f, 0x83,
- 0xda, 0x6d, 0x8d, 0xdd, 0xac, 0xf0, 0x35, 0x24, 0xc1, 0x44, 0x4b, 0x1a,
- 0x2f, 0x7f, 0x34, 0x4a, 0x1b, 0x49, 0xd7, 0x22, 0x27, 0x4a, 0x50, 0xa7,
- 0x99, 0x06, 0xcc, 0xbc, 0x6e, 0x9a, 0x1a, 0x4a, 0xb6, 0x84, 0x57, 0xa1,
- 0x56, 0x7b, 0x0f, 0x66, 0x96, 0x18, 0x94, 0x58, 0x55, 0x19, 0xd8, 0x85,
- 0x92, 0x73, 0x6f, 0x49, 0x51, 0x8b, 0x5b, 0x05, 0xce, 0x83, 0x1e, 0xc6,
- 0xa7, 0x52, 0x1f, 0x8c, 0xc3, 0x0c, 0x18, 0x85, 0x71, 0xf2, 0x88, 0xff,
- 0x05, 0xfb, 0x77, 0x05, 0x88, 0x9b, 0x75, 0x08, 0xdf, 0x0e, 0x0d, 0xd6,
- 0xdc, 0x87, 0x88, 0x0f, 0x37, 0xd6, 0xc1, 0x37, 0x19, 0x17, 0x78, 0x93,
- 0xf9, 0x59, 0x88, 0x96, 0xc2, 0x8d, 0x1d, 0xc2, 0x0c, 0x3c, 0x32, 0x83,
- 0x13, 0x14, 0x5b, 0x40, 0x4b, 0x8f, 0x44, 0x63, 0x99, 0xad, 0x9e, 0x10,
- 0xa3, 0x2c, 0x19, 0x82, 0x44, 0x3c, 0x6e, 0x53, 0xa6, 0xee, 0xf8, 0x27,
- 0x66, 0xfd, 0x79, 0xa8, 0x4e, 0x5f, 0x24, 0x65, 0xd7, 0x1c, 0x0b, 0x5d,
- 0x87, 0x20, 0xb4, 0xc9, 0x7e, 0x7e, 0x99, 0x38, 0x0e, 0xcf, 0xca, 0x2e,
- 0x3e, 0x2e, 0x9a, 0xaa, 0x5c, 0xdc, 0x27, 0xdf, 0xa4, 0x34, 0x2c, 0xa8,
- 0x85, 0x69, 0x36, 0x0f, 0x72, 0x3e, 0xb8, 0x76, 0x9c, 0x68, 0x69, 0x5c,
- 0x47, 0x4e, 0x47, 0x08, 0xbd, 0x92, 0xa7, 0x25, 0xa1, 0xa2, 0xef, 0x53,
- 0xf2, 0xe7, 0x69, 0xee, 0x18, 0x60, 0x93, 0xa3, 0xd1, 0x69, 0xa8, 0x4c,
- 0x2b, 0xfd, 0xfd, 0xda, 0x1c, 0x5f, 0xb4, 0x36, 0x68, 0x9f, 0x28, 0x33,
- 0x72, 0x6e, 0xfc, 0x65, 0xf4, 0x30, 0xcb, 0xb8, 0xb3, 0x99, 0x66, 0xc2,
- 0x0b, 0x71, 0x78, 0x32, 0xa9, 0xee, 0x17, 0x64, 0xa0, 0xf1, 0xcb, 0x72,
- 0xf6, 0xa8, 0x7f, 0x4c, 0xa2, 0xb8, 0x36, 0x8d, 0xf0, 0x3d, 0x22, 0x64,
- 0xf2, 0x2a, 0x04, 0x31, 0x05, 0x33, 0xcd, 0x74, 0x51, 0x70, 0x55, 0x05,
- 0x33, 0xc9, 0xac, 0x29, 0x08, 0x12, 0x5c, 0x45, 0x8e, 0x80, 0x05, 0x0c,
- 0x25, 0x36, 0x3a, 0x54, 0xca, 0x70, 0xeb, 0x20, 0xd3, 0x92, 0xe8, 0x7a,
- 0xe1, 0xd1, 0xde, 0xd6, 0x8b, 0x41, 0xde, 0xe8, 0xd4, 0x02, 0x55, 0x11,
- 0x6c, 0x99, 0x76, 0x53, 0xca, 0x98, 0x2e, 0x02, 0x76, 0x06, 0x0e, 0x79,
- 0xef, 0xed, 0xee, 0x3e, 0x48, 0xbb, 0x21, 0xee, 0x5f, 0x65, 0xdf, 0xc0,
- 0x28, 0xa8, 0x54, 0xa1, 0x50, 0x6f, 0x34, 0x5a, 0x07, 0xdc, 0x11, 0x6f,
- 0x20, 0x49, 0x34, 0xcd, 0x25, 0xe1, 0xa0, 0x4b, 0x54, 0x64, 0x3e, 0x69,
- 0x49, 0x30, 0xdc, 0x11, 0x64, 0x59, 0xc7, 0xec, 0x34, 0xa0, 0xe1, 0x30,
- 0x22, 0xec, 0x18, 0x7d, 0xac, 0x0f, 0x5a, 0xef, 0x44, 0x0b, 0xe4, 0x51,
- 0x87, 0xe8, 0x25, 0xd1, 0x5e, 0x86, 0xc9, 0xd7, 0xf7, 0xce, 0x70, 0xf2,
- 0x8a, 0xbc, 0xa3, 0x57, 0xec, 0x6a, 0x95, 0xf2, 0xcc, 0x51, 0xe2, 0xf9,
- 0xb5, 0xd4, 0x1a, 0xff, 0xe2, 0xf1, 0x4a, 0x19, 0x01, 0xb4, 0xa8, 0xd1,
- 0x2a, 0x32, 0xf4, 0xe3, 0x1e, 0x03, 0x3b, 0x5a, 0x4b, 0x4b, 0xe8, 0x86,
- 0xed, 0xb1, 0xea, 0xf3, 0xa5, 0xb2, 0x96, 0x0f, 0xb5, 0x4d, 0x94, 0xd2,
- 0x46, 0xe5, 0x7d, 0xd6, 0x56, 0x4b, 0x28, 0x53, 0x71, 0x80, 0x7c, 0xc4,
- 0x6e, 0x16, 0x36, 0xa5, 0x30, 0xa2, 0x2e, 0xf6, 0x27, 0x46, 0x69, 0x38,
- 0x13, 0x98, 0x08, 0x7a, 0x18, 0x06, 0xa1, 0xb9, 0x12, 0x1d, 0xfe, 0xc7,
- 0x18, 0xaf, 0x96, 0x9e, 0x74, 0x3f, 0x59, 0x2a, 0x48, 0x8d, 0x52, 0x5b,
- 0x9a, 0x8d, 0xe9, 0x30, 0xcd, 0x5c, 0x96, 0x47, 0x3d, 0x35, 0xd0, 0xc9,
- 0x38, 0xf9, 0x12, 0xe1, 0x62, 0xa8, 0x12, 0xac, 0x7b, 0xbc, 0xbf, 0x38,
- 0xed, 0x27, 0x52, 0x5b, 0x91, 0x00, 0x9f, 0x66, 0xa5, 0xe3, 0xba, 0x91,
- 0xa3, 0x32, 0x67, 0x5e, 0x3a, 0x1e, 0x4b, 0xed, 0x18, 0x96, 0x48, 0x6c,
- 0xc3, 0xf9, 0x69, 0x9a, 0xac, 0x15, 0x21, 0x13, 0xba, 0xa4, 0x58, 0x69,
- 0x23, 0xc1, 0x4c, 0x0f, 0x6e, 0x22, 0x95, 0x10, 0xee, 0x43, 0xed, 0xb4,
- 0xa5, 0x35, 0xd2, 0xb4, 0x7d, 0x4e, 0x06, 0x25, 0x67, 0x45, 0x24, 0xa5,
- 0x54, 0x42, 0x91, 0x44, 0x87, 0x96, 0x60, 0x79, 0x90, 0x53, 0xba, 0xac,
- 0xbc, 0x80, 0x64, 0xef, 0x26, 0x37, 0xeb, 0x5a, 0xf4, 0x98, 0x6e, 0x6d,
- 0x39, 0x66, 0x2a, 0xbf, 0x06, 0x1f, 0x8e, 0xc1, 0x83, 0x09, 0x5f, 0xe7,
- 0xbc, 0x63, 0xf1, 0xc2, 0x89, 0x2d, 0x10, 0x6c, 0x3f, 0x69, 0x1d, 0x0a,
- 0x55, 0x38, 0xb9, 0x6b, 0x2e, 0x9f, 0x35, 0xca, 0xf9, 0xce, 0x3b, 0xc5,
- 0x25, 0xd3, 0xd0, 0xe9, 0x47, 0x0d, 0x87, 0xbe, 0xcf, 0xa3, 0xee, 0xbc,
- 0x7d, 0x7e, 0xc5, 0x76, 0x9a, 0xe8, 0xb8, 0xba, 0x52, 0xd9, 0x2c, 0xfb,
- 0x08, 0x25, 0xa7, 0x60, 0x9d, 0xd2, 0x7b, 0x64, 0x0d, 0xd8, 0x4f, 0x63,
- 0x87, 0x07, 0xbc, 0x4a, 0x44, 0x32, 0x56, 0x42, 0x77, 0x94, 0xbd, 0x4c,
- 0x85, 0x6b, 0x26, 0x55, 0xbe, 0x68, 0x38, 0xfc, 0x1b, 0x94, 0xd5, 0x8e,
- 0xab, 0x61, 0xd7, 0xb3, 0x72, 0x9c, 0xf2, 0x39, 0xb1, 0x60, 0x0f, 0x75,
- 0x3b, 0xb5, 0x08, 0x3f, 0x51, 0x2a, 0xd8, 0x6c, 0xcf, 0x48, 0xa2, 0x8e,
- 0x19, 0xf2, 0xe0, 0x00, 0xf5, 0x2e, 0x29, 0x1e, 0xb5, 0xee, 0x83, 0xf6,
- 0x13, 0xcc, 0xa9, 0x35, 0xb8, 0xea, 0xcb, 0x09, 0xd6, 0x8c, 0x47, 0x60,
- 0x65, 0x6a, 0xef, 0x5c, 0x05, 0xaa, 0x10, 0x32, 0x93, 0xa7, 0xcb, 0xac,
- 0x0d, 0x9d, 0xd9, 0x94, 0x68, 0x9d, 0x14, 0x3f, 0x01, 0x7c, 0xc3, 0xd6,
- 0xd6, 0x96, 0xa8, 0x58, 0x14, 0x16, 0x42, 0xf4, 0x9a, 0xb6, 0xfa, 0xb4,
- 0xd6, 0x80, 0x2d, 0xe8, 0x66, 0x72, 0x9d, 0x53, 0x44, 0xa2, 0x37, 0x57,
- 0xcc, 0xde, 0x5f, 0x05, 0x65, 0x4c, 0xaf, 0x58, 0x4f, 0x03, 0xce, 0x93,
- 0xd7, 0x64, 0xcd, 0xcc, 0xf8, 0x4c, 0xbd, 0xfb, 0x2d, 0xa9, 0x66, 0x3f,
- 0x1d, 0xbf, 0xa2, 0x20, 0xda, 0xb8, 0xe0, 0xb7, 0x99, 0xc5, 0x2d, 0xaa,
- 0x22, 0xcc, 0xd9, 0x2b, 0x29, 0xe2, 0xbf, 0xe0, 0x9c, 0xd3, 0xc2, 0x2f,
- 0x2c, 0x0d, 0xe2, 0x99, 0x35, 0x74, 0x52, 0xa4, 0xae, 0x31, 0xca, 0xb8,
- 0x62, 0xcd, 0xa1, 0x85, 0x8a, 0xe3, 0x56, 0x37, 0x54, 0xd6, 0x4c, 0xbc,
- 0x5f, 0x4e, 0xb3, 0x74, 0x16, 0xa3, 0xda, 0xa6, 0x0e, 0x93, 0xb7, 0x91,
- 0x85, 0x1b, 0x31, 0x9e, 0x16, 0xe2, 0xb7, 0x16, 0xdc, 0x29, 0xc3, 0xae,
- 0x0a, 0xc9, 0xea, 0xd4, 0x1e, 0xe2, 0x54, 0x45, 0x0c, 0x1d, 0x22, 0x7c,
- 0xbf, 0x15, 0x7e, 0x05, 0x65, 0x09, 0x96, 0xa8, 0x93, 0x83, 0xd0, 0x43,
- 0xff, 0x7f, 0x7b, 0x6a, 0x1f, 0xc0, 0x0e, 0x00, 0x46, 0xb8, 0xdb, 0x9c,
- 0x38, 0xe2, 0x38, 0xaf, 0x8b, 0xcb, 0xad, 0x0b, 0x94, 0x9d, 0x3a, 0xc6,
- 0x70, 0x03, 0x12, 0x93, 0xdb, 0x72, 0x0e, 0x11, 0xee, 0x16, 0xc9, 0xb1,
- 0x08, 0x57, 0xfa, 0x36, 0x53, 0xa8, 0x08, 0xec, 0x0b, 0x5e, 0x80, 0xc6,
- 0xa6, 0xbb, 0x51, 0x6b, 0x22, 0x67, 0x58, 0xc8, 0xec, 0xef, 0xaf, 0x28,
- 0xfe, 0x22, 0x15, 0x1f, 0x65, 0x8f, 0xe1, 0xb0, 0xd7, 0xe9, 0x95, 0x2d,
- 0xc6, 0x2a, 0x02, 0xbc, 0x9c, 0x98, 0x29, 0xe4, 0x42, 0xd1, 0xf8, 0x59,
- 0x11, 0xc9, 0x49, 0x61, 0x71, 0x4d, 0x52, 0xd2, 0x5e, 0xbb, 0x74, 0x10,
- 0x14, 0x3e, 0x59, 0xcf, 0xf2, 0x85, 0xf5, 0x71, 0xf6, 0x89, 0x40, 0x95,
- 0x61, 0x1c, 0x14, 0xa0, 0xbd, 0x0b, 0xc9, 0x02, 0x3b, 0x85, 0x29, 0x85,
- 0x59, 0x72, 0x46, 0xea, 0xff, 0x56, 0xa7, 0xfd, 0xa7, 0xbb, 0x7b, 0xe8,
- 0xee, 0xd3, 0xdd, 0xcf, 0xb6, 0xdb, 0x77, 0xf3, 0xac, 0xce, 0x06, 0xc0,
- 0xf1, 0xc4, 0x75, 0x54, 0xae, 0x6e, 0xe2, 0xfc, 0x3c, 0xd0, 0x47, 0xe9,
- 0x25, 0x01, 0xff, 0x4c, 0x97, 0x95, 0x22, 0xe2, 0xa8, 0xe0, 0x0d, 0xd9,
- 0x8c, 0xf5, 0x0d, 0xd1, 0x99, 0x05, 0x77, 0xbd, 0x7b, 0x07, 0xc6, 0x14,
- 0x5c, 0xe8, 0x3c, 0x53, 0x66, 0xf7, 0xd0, 0xbb, 0xb6, 0x50, 0x8a, 0x4c,
- 0x06, 0x83, 0x8b, 0xc8, 0x62, 0x0c, 0xa9, 0x65, 0x7d, 0x0e, 0x27, 0x4e,
- 0x42, 0xe0, 0x28, 0x4a, 0xbb, 0x74, 0x9a, 0x95, 0x3c, 0x6f, 0xf2, 0x22,
- 0xaf, 0x6f, 0x50, 0x72, 0xad, 0xae, 0xd3, 0xeb, 0x2c, 0x4c, 0x53, 0x35,
- 0x22, 0xc9, 0x18, 0x4e, 0x52, 0x1a, 0x19, 0xc4, 0xce, 0x84, 0xc5, 0xe1,
- 0xf3, 0x20, 0x30, 0x7e, 0x29, 0xcb, 0x02, 0xb6, 0x21, 0x37, 0xcc, 0x15,
- 0x65, 0x8d, 0x5d, 0xb1, 0xa0, 0x55, 0xb5, 0x82, 0xa8, 0x80, 0x05, 0x88,
- 0x67, 0xb8, 0xb4, 0x00, 0xd7, 0x16, 0x08, 0x10, 0x7b, 0xe4, 0x47, 0xd8,
- 0xa2, 0xc5, 0x3d, 0x1b, 0x19, 0x21, 0xb4, 0x4b, 0x58, 0xa8, 0x59, 0x0a,
- 0x4e, 0x5a, 0xf3, 0x37, 0xf3, 0xb3, 0x1f, 0x8d, 0x46, 0x3a, 0x7c, 0x61,
- 0x7f, 0xbc, 0xfd, 0xb8, 0xe2, 0x42, 0xfb, 0x1d, 0x0d, 0x8d, 0xe0, 0x89,
- 0xe2, 0xce, 0x86, 0xc1, 0xf2, 0x8a, 0xff, 0xb1, 0xc2, 0x09, 0x81, 0xac,
- 0xb1, 0xe4, 0xe4, 0xed, 0x21, 0x41, 0x31, 0x46, 0x92, 0x36, 0xd1, 0x46,
- 0x32, 0xb6, 0xb2, 0x6c, 0x50, 0x69, 0x89, 0x14, 0xd6, 0x28, 0x73, 0x96,
- 0x25, 0xbb, 0x64, 0x50, 0x55, 0x8b, 0xcb, 0x98, 0xb9, 0xc4, 0x67, 0x54,
- 0x53, 0x82, 0x4e, 0x81, 0x91, 0x91, 0xa7, 0x52, 0xc5, 0x9b, 0x4a, 0x82,
- 0x47, 0xf2, 0x71, 0x36, 0x5f, 0x7a, 0xbc, 0xbd, 0x42, 0x6c, 0x0e, 0x7a,
- 0xcc, 0x2f, 0x08, 0xa7, 0x49, 0x54, 0x05, 0xfc, 0x4d, 0x59, 0x03, 0x86,
- 0x1c, 0xc6, 0xa3, 0xab, 0x0a, 0xa1, 0x12, 0xee, 0xad, 0x36, 0x8a, 0x83,
- 0x8b, 0xf8, 0x11, 0xab, 0x71, 0x67, 0xdc, 0xaa, 0xd3, 0x6d, 0x06, 0x4c,
- 0x34, 0x04, 0x65, 0x66, 0x0e, 0x0c, 0xa9, 0x74, 0xe8, 0x4a, 0x5e, 0x71,
- 0x9f, 0xb8, 0x33, 0x70, 0x77, 0x4d, 0x26, 0x39, 0xe9, 0x2e, 0x38, 0xf9,
- 0xe6, 0x97, 0xd7, 0xd7, 0x51, 0xac, 0x89, 0x99, 0x02, 0x5a, 0x78, 0x1a,
- 0xf3, 0x55, 0x96, 0x36, 0xd0, 0x38, 0xe8, 0xa6, 0x5f, 0x8d, 0x27, 0x75,
- 0x1a, 0x7c, 0xe4, 0x19, 0x6f, 0x14, 0x2f, 0x7d, 0xd4, 0x7e, 0x7c, 0x17,
- 0x60, 0x13, 0xf0, 0x1e, 0x20, 0xaa, 0x3c, 0xfc, 0xcc, 0x7a, 0xa1, 0xae,
- 0x52, 0xb3, 0x29, 0xee, 0xfb, 0x5a, 0x78, 0xbd, 0xb1, 0x12, 0x24, 0x9b,
- 0x2f, 0xbb, 0x5b, 0x7c, 0xa6, 0x68, 0x45, 0x06, 0xf5, 0x12, 0x23, 0x3f,
- 0xe3, 0x3f, 0x13, 0x66, 0xb0, 0x26, 0x36, 0x2f, 0x8b, 0x03, 0x4e, 0x94,
- 0x95, 0xde, 0xc1, 0x7b, 0x83, 0x02, 0xa7, 0x1e, 0xd8, 0x57, 0x94, 0x15,
- 0xb5, 0x04, 0x81, 0x57, 0x16, 0x48, 0xba, 0xef, 0x1d, 0x3a, 0x12, 0x2c,
- 0xef, 0x65, 0x88, 0xe5, 0x65, 0x43, 0xc2, 0x48, 0xa2, 0x1d, 0x1c, 0x12,
- 0x06, 0x59, 0x4f, 0x88, 0x21, 0x02, 0x42, 0xa6, 0x4c, 0x2e, 0xde, 0x1c,
- 0x25, 0xfb, 0x4f, 0x3e, 0xff, 0x7c, 0x18, 0x25, 0x10, 0xe4, 0x04, 0x4b,
- 0xb3, 0x09, 0x69, 0xa6, 0x1c, 0xdb, 0x5c, 0xdf, 0xd2, 0x86, 0xa2, 0xd2,
- 0x7b, 0x96, 0x16, 0x4c, 0xdb, 0x3d, 0x27, 0x62, 0x10, 0x12, 0x8e, 0xcb,
- 0x59, 0x68, 0xe4, 0x23, 0x76, 0x35, 0x27, 0xc5, 0x42, 0xa4, 0x18, 0x14,
- 0x2c, 0x92, 0x1a, 0xf3, 0x7c, 0x85, 0x52, 0x97, 0x09, 0x4e, 0xca, 0x56,
- 0xf7, 0x86, 0x0b, 0x80, 0xc1, 0x7b, 0x8c, 0x84, 0x34, 0x7a, 0x03, 0x60,
- 0xbf, 0x1c, 0x7c, 0xe7, 0xe9, 0xd8, 0x8c, 0xa4, 0x53, 0xd2, 0xfc, 0x6c,
- 0x26, 0x1a, 0x3e, 0x1b, 0x67, 0x36, 0x43, 0x9a, 0x0b, 0x77, 0x74, 0x48,
- 0x82, 0x38, 0xe9, 0xb3, 0xa0, 0x4c, 0x19, 0xa2, 0x8a, 0x37, 0x1f, 0xe8,
- 0x34, 0x87, 0x1c, 0xc7, 0xeb, 0xac, 0x09, 0xb3, 0x3b, 0x3c, 0x98, 0xe5,
- 0x9a, 0xc6, 0x63, 0x96, 0x91, 0x24, 0xa7, 0x24, 0x2f, 0x95, 0xc7, 0x5f,
- 0x6b, 0x38, 0x4f, 0xc0, 0x2a, 0xc6, 0xf4, 0xea, 0x5f, 0x61, 0x35, 0x5e,
- 0xca, 0xd4, 0x4b, 0xb2, 0xd6, 0x57, 0x51, 0xe6, 0x20, 0xc1, 0x7a, 0x82,
- 0xc6, 0xa6, 0x69, 0x8c, 0x62, 0xed, 0x64, 0x37, 0x80, 0xb5, 0x60, 0x2c,
- 0x11, 0xe8, 0xa7, 0x16, 0x13, 0xa7, 0x0d, 0x3b, 0x8b, 0x51, 0xfa, 0xbd,
- 0xb4, 0x8d, 0x4a, 0xa1, 0x00, 0xc2, 0x36, 0x53, 0x57, 0x62, 0x33, 0xa1,
- 0x04, 0xc0, 0x24, 0x1f, 0xcc, 0xd3, 0x81, 0xdd, 0x43, 0xef, 0x7a, 0xf3,
- 0x14, 0xa1, 0x98, 0x00, 0xd7, 0xdd, 0x81, 0x0d, 0xa7, 0x52, 0xa5, 0xbe,
- 0xb9, 0xec, 0x18, 0xd5, 0xee, 0x14, 0x92, 0xcf, 0x77, 0xf0, 0xa6, 0xd9,
- 0x9b, 0xd4, 0xd6, 0x66, 0x04, 0xf9, 0xd5, 0xb8, 0x7c, 0x09, 0x6b, 0x4c,
- 0xe1, 0x34, 0x70, 0x4f, 0x2c, 0x47, 0x17, 0x5d, 0x56, 0x55, 0x6a, 0xf6,
- 0xe2, 0x5f, 0x17, 0xd7, 0x8e, 0x0f, 0xfd, 0x26, 0x2c, 0x3c, 0x60, 0xf4,
- 0xb0, 0xb0, 0x88, 0x08, 0x0e, 0xe9, 0xe0, 0x4d, 0x22, 0x1d, 0x79, 0xf5,
- 0x55, 0xab, 0x39, 0xe5, 0xda, 0xf6, 0xa9, 0x64, 0x05, 0x15, 0x3a, 0xb9,
- 0xce, 0x23, 0x29, 0x75, 0x42, 0x05, 0xc0, 0x3b, 0xcb, 0x41, 0x81, 0xfd,
- 0x98, 0x86, 0xee, 0x32, 0x04, 0xef, 0x5d, 0x08, 0x7e, 0x96, 0xc5, 0x2a,
- 0x16, 0xd9, 0xa8, 0xf2, 0x35, 0x59, 0x48, 0x52, 0xc4, 0x96, 0x48, 0x01,
- 0x74, 0x47, 0x91, 0xb7, 0xb6, 0xa9, 0x96, 0x93, 0x86, 0x0b, 0x09, 0xc8,
- 0xd7, 0xa0, 0x33, 0x86, 0x68, 0x2f, 0xde, 0x4d, 0x20, 0x1a, 0xa8, 0xb2,
- 0xeb, 0x25, 0x5d, 0xa0, 0xdc, 0x17, 0xa6, 0xca, 0x19, 0x2f, 0xb1, 0x73,
- 0xa7, 0x16, 0x92, 0x47, 0x5e, 0x08, 0x6b, 0xdd, 0x07, 0x4e, 0x0b, 0xf2,
- 0x04, 0xe4, 0x7f, 0x97, 0x20, 0x95, 0x78, 0xbf, 0x88, 0x0f, 0x90, 0x19,
- 0x97, 0xe0, 0xe3, 0xc9, 0x88, 0x06, 0xfc, 0x35, 0x15, 0xe5, 0x62, 0x35,
- 0x86, 0xce, 0xda, 0x26, 0xa7, 0x3e, 0x76, 0xb7, 0x17, 0x6f, 0x2c, 0xbe,
- 0x8d, 0x49, 0x89, 0xf5, 0x3b, 0xe8, 0xca, 0x9e, 0xeb, 0x13, 0x8b, 0x7c,
- 0x81, 0x2a, 0x08, 0x6a, 0xce, 0x6e, 0x47, 0x2c, 0x98, 0x65, 0x61, 0xa6,
- 0xab, 0x59, 0x52, 0x08, 0xcf, 0x12, 0x5a, 0x18, 0xe1, 0xfd, 0x57, 0xa1,
- 0x4a, 0x95, 0xe1, 0x72, 0xf9, 0xb8, 0xa9, 0xdd, 0x39, 0xc0, 0x80, 0x84,
- 0x62, 0xf0, 0x36, 0x03, 0x49, 0x12, 0xe1, 0x19, 0x1a, 0x15, 0x7f, 0x28,
- 0xdc, 0x02, 0x7f, 0xe0, 0x17, 0x14, 0xe8, 0x9b, 0x64, 0x8e, 0x18, 0x12,
- 0x13, 0x43, 0xaa, 0x44, 0x01, 0x42, 0xb5, 0xc0, 0x93, 0x7e, 0xe5, 0xc2,
- 0x18, 0xd6, 0x9e, 0x87, 0xea, 0x69, 0x84, 0x34, 0x67, 0xba, 0x08, 0x65,
- 0x09, 0x95, 0x96, 0x26, 0x24, 0x7d, 0x4d, 0x36, 0x23, 0x4e, 0x50, 0xe8,
- 0xa1, 0xa9, 0xb2, 0xbf, 0x5a, 0x53, 0x9f, 0x24, 0x7e, 0x70, 0x32, 0xd5,
- 0xe0, 0xe5, 0x20, 0x63, 0xe3, 0xc5, 0x50, 0x99, 0xe0, 0xc3, 0xbf, 0x89,
- 0x78, 0xd5, 0x81, 0x58, 0xb2, 0xe1, 0x8c, 0x2e, 0x66, 0x9f, 0xb5, 0x9a,
- 0x3e, 0xc7, 0x43, 0x24, 0x05, 0xda, 0x25, 0xb2, 0xae, 0x3e, 0x64, 0xbd,
- 0xbb, 0x6c, 0xfc, 0xea, 0x2b, 0x72, 0x93, 0x7c, 0x02, 0xc3, 0x33, 0xab,
- 0x47, 0x24, 0x6c, 0x76, 0x40, 0xf8, 0x9c, 0x78, 0xe7, 0xac, 0xdb, 0x48,
- 0x59, 0xad, 0x6e, 0xd6, 0xcb, 0x21, 0xf0, 0x9a, 0xbc, 0x2a, 0xcb, 0xb5,
- 0x2d, 0xd2, 0xac, 0xb0, 0x1f, 0x00, 0xf3, 0xe2, 0xc1, 0x93, 0x18, 0xb4,
- 0xe3, 0x32, 0xa4, 0x58, 0xe2, 0xd8, 0xb3, 0x2b, 0x72, 0x37, 0x96, 0xb2,
- 0x8a, 0x2a, 0xc1, 0x6c, 0xee, 0x69, 0x4c, 0xed, 0x55, 0x9f, 0x21, 0xfa,
- 0x51, 0x4e, 0x7f, 0x37, 0x06, 0x96, 0x3e, 0x60, 0xc3, 0xa0, 0xbf, 0x7e,
- 0x61, 0x5f, 0xa7, 0xff, 0x18, 0xe1, 0x05, 0xce, 0xd4, 0x35, 0xa3, 0x31,
- 0x87, 0x5f, 0x5f, 0xd9, 0xe1, 0x02, 0xbc, 0x5a, 0xeb, 0x6c, 0xb3, 0xcf,
- 0x0a, 0xdb, 0x17, 0x9b, 0x38, 0xe8, 0x8a, 0x1c, 0x41, 0x2d, 0x0d, 0xec,
- 0x19, 0x2a, 0xaf, 0xd1, 0xdd, 0xf1, 0x84, 0xae, 0xe2, 0x6a, 0x1b, 0xe8,
- 0xfd, 0x8a, 0x8e, 0x93, 0xfa, 0x96, 0x68, 0xdf, 0x7f, 0xea, 0xd9, 0xde,
- 0xff, 0xd4, 0x73, 0xfd, 0xff, 0xa9, 0xe7, 0x46, 0xf0, 0x53, 0xaf, 0x07,
- 0x5a, 0xcf, 0x20, 0x00, 0xfb, 0xcb, 0x17, 0x7d, 0x93, 0x3f, 0xea, 0xbe,
- 0xe9, 0x7d, 0xd2, 0xfb, 0x62, 0x6f, 0x73, 0xdd, 0xa4, 0xb9, 0x54, 0xcd,
- 0xfc, 0xca, 0x23, 0x02, 0xe3, 0x09, 0x24, 0x19, 0x22, 0x93, 0xa4, 0xb3,
- 0xe4, 0x66, 0x05, 0x65, 0x21, 0x02, 0xcf, 0xab, 0xf7, 0x04, 0x4d, 0xb9,
- 0xab, 0x1d, 0xe2, 0xb1, 0x62, 0x5b, 0xb6, 0x31, 0x5d, 0x08, 0xad, 0x3b,
- 0x17, 0x14, 0x23, 0xb4, 0xaf, 0x07, 0x07, 0xfa, 0x7f, 0x98, 0x2f, 0x58,
- 0x14, 0x90, 0xa6, 0x94, 0xa4, 0x82, 0x10, 0x02, 0xf8, 0xb1, 0xe0, 0x00,
- 0x98, 0xa8, 0x9d, 0x84, 0xe2, 0x27, 0xff, 0x88, 0xee, 0x89, 0x00, 0x1b,
- 0x3b, 0xcf, 0x51, 0x33, 0xc6, 0x0c, 0x6b, 0xc6, 0xa6, 0xce, 0x0e, 0x5d,
- 0x82, 0xc0, 0xb2, 0xa1, 0x92, 0x4b, 0x0d, 0x5b, 0x4f, 0xac, 0x20, 0xa9,
- 0xc6, 0xc2, 0x13, 0xb1, 0x6a, 0x67, 0xd0, 0xc6, 0xd8, 0xa4, 0x46, 0xab,
- 0xfa, 0x55, 0xcf, 0x5c, 0x2a, 0x5f, 0x98, 0x3b, 0xac, 0x32, 0xba, 0xd0,
- 0x17, 0xb4, 0xb7, 0x96, 0x66, 0xb5, 0xdc, 0x41, 0xfd, 0x34, 0x98, 0xdf,
- 0x9b, 0xce, 0x6f, 0xfe, 0x92, 0x9d, 0x61, 0x45, 0xda, 0x94, 0xca, 0x2a,
- 0xd5, 0x8d, 0xb9, 0x3d, 0x3a, 0x41, 0x68, 0x39, 0xb5, 0xec, 0x44, 0x96,
- 0x33, 0xa9, 0xcf, 0xbc, 0x8a, 0xb1, 0x1e, 0x05, 0x03, 0x71, 0x87, 0x93,
- 0x75, 0xfe, 0x57, 0x67, 0xdf, 0x7d, 0xa1, 0x0d, 0xfc, 0xd4, 0xfb, 0x71,
- 0xc0, 0x3f, 0x45, 0x2e, 0xde, 0x41, 0x72, 0xf6, 0x1d, 0x6d, 0xee, 0x5f,
- 0x26, 0xc0, 0xd6, 0x7d, 0xe0, 0x2b, 0xfe, 0x0b, 0x76, 0xf6, 0xba, 0x66,
- 0x2f, 0xbd, 0x50, 0xf8, 0x2b, 0x54, 0xed, 0x43, 0xee, 0x00, 0x0c, 0xba,
- 0xc5, 0x82, 0xb2, 0x01, 0x34, 0xfb, 0xac, 0xe1, 0xec, 0x33, 0x24, 0xe4,
- 0x8f, 0x4b, 0x18, 0x9f, 0x4d, 0x48, 0x5d, 0x0a, 0xea, 0xc4, 0xbf, 0xc9,
- 0xfe, 0xa2, 0x2d, 0x65, 0xec, 0x5f, 0xc4, 0x3b, 0x74, 0x7a, 0xb9, 0x1a,
- 0x6f, 0x3a, 0x6d, 0xe7, 0x21, 0x99, 0xf3, 0x70, 0x1c, 0xa1, 0xa9, 0x76,
- 0x3c, 0x17, 0xfc, 0x37, 0xdc, 0x71, 0xa0, 0xf3, 0x20, 0x5d, 0x9d, 0xea,
- 0xdd, 0xa4, 0x55, 0xa6, 0x35, 0x0c, 0xa4, 0xba, 0x12, 0x57, 0xd1, 0xf9,
- 0x22, 0xe6, 0x55, 0x96, 0x60, 0x97, 0x00, 0x4b, 0xaf, 0xca, 0x99, 0x56,
- 0x66, 0x37, 0x3b, 0x9f, 0x57, 0xd8, 0x16, 0x34, 0xba, 0x2b, 0x09, 0x0e,
- 0x3e, 0x15, 0xa7, 0xb7, 0x7c, 0x36, 0xa6, 0x62, 0x4a, 0x74, 0x4a, 0x42,
- 0xf8, 0x5c, 0x6f, 0x4b, 0xe8, 0x63, 0xb0, 0xf5, 0x4d, 0x47, 0xe6, 0xe3,
- 0x0c, 0x6e, 0x0c, 0xcd, 0xae, 0x1a, 0x88, 0x9f, 0x31, 0xe2, 0x0a, 0xe8,
- 0x1e, 0x1b, 0xc4, 0xc6, 0x25, 0xc1, 0x8a, 0x08, 0x45, 0xbe, 0x25, 0xb5,
- 0x97, 0x33, 0x5d, 0x8a, 0xc4, 0x56, 0x1e, 0x80, 0x86, 0x9b, 0xc6, 0x07,
- 0x6b, 0x0b, 0x97, 0xd3, 0x0c, 0x85, 0xa7, 0x2d, 0xf9, 0x83, 0xb8, 0x25,
- 0xbd, 0xfa, 0xe6, 0x18, 0xbd, 0xac, 0xd7, 0x30, 0x78, 0xe1, 0x47, 0x81,
- 0x7d, 0x0c, 0xf6, 0x0e, 0xbc, 0x3a, 0x12, 0xfc, 0xb3, 0x78, 0xf3, 0x3e,
- 0xc7, 0x82, 0xc6, 0x1b, 0x6b, 0x99, 0xfe, 0x35, 0xed, 0xef, 0xdb, 0xf6,
- 0x37, 0x22, 0xb4, 0x06, 0x4c, 0x3c, 0x10, 0xff, 0xec, 0xa5, 0x0f, 0x49,
- 0x12, 0x5f, 0x9c, 0x67, 0x15, 0x27, 0x6c, 0x90, 0xaa, 0x45, 0x5a, 0xf7,
- 0x5b, 0xc4, 0x07, 0xe1, 0xf7, 0x90, 0x5f, 0x30, 0x65, 0xc0, 0x2b, 0x8f,
- 0xc4, 0x4c, 0x64, 0x07, 0x98, 0x21, 0x05, 0x42, 0x79, 0x67, 0x95, 0x73,
- 0xa2, 0xe4, 0x9b, 0x1e, 0xb8, 0xf2, 0x63, 0x30, 0x29, 0xd5, 0x74, 0x66,
- 0xf5, 0xd8, 0xe5, 0xc0, 0x85, 0xa9, 0x4a, 0x2d, 0x26, 0xca, 0xe0, 0x53,
- 0x90, 0xc7, 0xc2, 0x94, 0x09, 0xa5, 0x4f, 0x8e, 0xc3, 0xd6, 0xa6, 0x98,
- 0xe8, 0xf4, 0x31, 0x2a, 0xdc, 0x05, 0xc4, 0x0b, 0xd8, 0x07, 0x28, 0x6d,
- 0x8f, 0x27, 0x60, 0x10, 0xd1, 0x3b, 0x0e, 0x90, 0x18, 0x66, 0x4f, 0x05,
- 0x33, 0x71, 0x80, 0x88, 0x43, 0x6d, 0x11, 0x54, 0x91, 0x6c, 0xb3, 0x6f,
- 0x04, 0xdd, 0x4a, 0xbd, 0x19, 0x96, 0xc6, 0xa4, 0xc2, 0xb1, 0xc5, 0x4e,
- 0xa5, 0xc9, 0xe6, 0xab, 0xed, 0x4d, 0x3b, 0xb4, 0x35, 0x36, 0x60, 0x6b,
- 0xd3, 0x68, 0x38, 0xcb, 0xd6, 0xe3, 0x63, 0x67, 0xde, 0x1c, 0x75, 0x2c,
- 0xb2, 0x01, 0xaf, 0x66, 0x94, 0x4e, 0xa9, 0xd6, 0x5c, 0x77, 0x94, 0x7d,
- 0xc7, 0xe9, 0x64, 0x32, 0x05, 0xde, 0xe4, 0xe9, 0xcc, 0xf4, 0x90, 0xf2,
- 0x9a, 0x6e, 0x95, 0x0a, 0xae, 0x3e, 0x60, 0xc2, 0xc8, 0x98, 0x0d, 0x4b,
- 0x5d, 0xa0, 0xa8, 0x00, 0x38, 0xae, 0xc5, 0x1e, 0xaa, 0xfd, 0x4a, 0x7d,
- 0xab, 0xf5, 0xb3, 0xcd, 0x57, 0x5b, 0x7c, 0x63, 0x39, 0xd7, 0x8c, 0xf7,
- 0xed, 0xcd, 0xe4, 0xa7, 0x78, 0xae, 0x5a, 0xc2, 0xef, 0xba, 0x1e, 0xe9,
- 0x9e, 0x7d, 0xe8, 0x8d, 0xe4, 0xe5, 0xb8, 0x9c, 0xde, 0x7f, 0x89, 0x18,
- 0x86, 0xbc, 0xf2, 0x72, 0x07, 0x3f, 0xea, 0x28, 0xcd, 0xab, 0x1a, 0x42,
- 0x2b, 0x66, 0xa9, 0xf0, 0xe7, 0x57, 0xf4, 0x38, 0x8c, 0xf6, 0xe6, 0x53,
- 0xb3, 0x99, 0x0c, 0x87, 0x46, 0x14, 0xd5, 0x73, 0x94, 0x4c, 0x59, 0x73,
- 0xb5, 0x80, 0xfc, 0x48, 0x36, 0x82, 0x65, 0xa4, 0x90, 0x82, 0x49, 0x6a,
- 0xb4, 0xa8, 0x47, 0x8b, 0x7f, 0x5d, 0xbd, 0xa2, 0x0a, 0x6a, 0x0a, 0xbd,
- 0xd8, 0x88, 0x70, 0x5a, 0x98, 0x87, 0x15, 0x68, 0xe4, 0xa5, 0x73, 0x7e,
- 0x3e, 0xce, 0xc5, 0x6b, 0x3b, 0x2d, 0x5b, 0x44, 0x6c, 0x9c, 0x35, 0x6d,
- 0x2e, 0xf9, 0xb8, 0xf0, 0x9e, 0x94, 0x15, 0x87, 0x1c, 0x20, 0x20, 0xac,
- 0x19, 0x23, 0x9d, 0x1b, 0x1c, 0xcb, 0x17, 0x55, 0x96, 0x1a, 0x39, 0xf1,
- 0x19, 0x7d, 0x29, 0xc6, 0x3f, 0xc2, 0x09, 0x69, 0x6c, 0x4a, 0x99, 0x1e,
- 0x7e, 0x3e, 0xc0, 0x83, 0x5e, 0x05, 0x3f, 0x3d, 0x00, 0x6d, 0x6c, 0x40,
- 0x5f, 0x54, 0xc4, 0x30, 0xe9, 0x3d, 0x2f, 0xb8, 0xaa, 0x06, 0x8d, 0x8f,
- 0x8a, 0x53, 0x3f, 0x7f, 0xca, 0x23, 0xe4, 0x99, 0x12, 0x76, 0xa3, 0x96,
- 0x53, 0x4f, 0xef, 0xa3, 0x2a, 0x8c, 0x2a, 0xd9, 0x31, 0x72, 0xd6, 0x20,
- 0xe9, 0x69, 0x54, 0xac, 0x85, 0xb1, 0x81, 0x74, 0xb1, 0x1a, 0x9d, 0xf2,
- 0x1a, 0x45, 0x78, 0x93, 0xcf, 0x9e, 0x7b, 0xbd, 0x5e, 0x7d, 0x40, 0xd9,
- 0x45, 0xe3, 0x9d, 0x78, 0x1c, 0x42, 0x19, 0xa3, 0x8c, 0xc9, 0x0d, 0x42,
- 0xb7, 0x6e, 0xd0, 0x2f, 0x72, 0xef, 0x30, 0xc5, 0x8f, 0x8c, 0xd1, 0xba,
- 0x19, 0x1e, 0x3a, 0x4f, 0xfe, 0x69, 0xf8, 0x42, 0xb7, 0x4f, 0xf7, 0xc3,
- 0x6b, 0x77, 0xb7, 0x67, 0x2d, 0xe9, 0xfb, 0xdc, 0x09, 0xde, 0xe1, 0x0f,
- 0x6f, 0x70, 0x72, 0x4c, 0x5f, 0x2d, 0x2b, 0x2e, 0x1c, 0xcf, 0x8f, 0xb1,
- 0xbe, 0xa0, 0x29, 0x08, 0xa2, 0xb2, 0xbf, 0x3d, 0x7c, 0xf7, 0xfe, 0xf0,
- 0x74, 0xf8, 0xeb, 0xea, 0x02, 0xad, 0x7d, 0xcd, 0xcb, 0x39, 0xec, 0xd0,
- 0x69, 0x3c, 0x9c, 0x8c, 0x4c, 0x39, 0x1f, 0xb4, 0x7f, 0x08, 0x5e, 0x10,
- 0x67, 0xd3, 0x60, 0xdc, 0xa6, 0x04, 0x57, 0x3d, 0xdc, 0x5f, 0x5a, 0x4b,
- 0x91, 0xac, 0x9e, 0xbe, 0x4f, 0xaf, 0xf7, 0x04, 0xb7, 0x6a, 0x13, 0x3d,
- 0x23, 0xd2, 0xd3, 0x25, 0xa7, 0x5a, 0xe0, 0x8e, 0x56, 0x13, 0x95, 0xab,
- 0xab, 0xe5, 0xbd, 0x28, 0xaf, 0xae, 0x1c, 0x79, 0x45, 0x37, 0x32, 0x74,
- 0x74, 0xb4, 0x3a, 0x63, 0xee, 0xf7, 0xe4, 0xc9, 0xeb, 0xe0, 0x97, 0x31,
- 0x8d, 0x4e, 0x94, 0x0f, 0x9a, 0x92, 0xb3, 0x49, 0x5f, 0x4a, 0xdf, 0xe2,
- 0xb3, 0x6a, 0x3a, 0xe8, 0x07, 0x42, 0x55, 0xa3, 0xa5, 0x1e, 0x51, 0x49,
- 0x34, 0x4c, 0xd6, 0xf9, 0x21, 0x55, 0x8b, 0xd7, 0x5c, 0x4e, 0x09, 0x68,
- 0xf7, 0x03, 0xdb, 0x8b, 0x6b, 0xd6, 0x92, 0x4a, 0xa8, 0xb3, 0xa1, 0x10,
- 0x23, 0x0b, 0x06, 0x44, 0xcc, 0xc0, 0x08, 0x88, 0xcb, 0xe5, 0xdc, 0x1c,
- 0x0a, 0xa3, 0xe0, 0x4e, 0x37, 0x6b, 0x09, 0xe1, 0x75, 0x37, 0x97, 0xd6,
- 0x0a, 0xd7, 0xb5, 0xa6, 0x1d, 0x46, 0x6b, 0x3f, 0x52, 0x49, 0x9d, 0xba,
- 0x90, 0xa7, 0x47, 0x6e, 0xd8, 0x8f, 0xbb, 0x7a, 0x7a, 0xa3, 0x93, 0xcb,
- 0x63, 0x33, 0x7d, 0xef, 0x2f, 0xbf, 0xed, 0x49, 0x88, 0xb4, 0x9b, 0xc6,
- 0x0e, 0xfa, 0x04, 0xaa, 0xba, 0x77, 0x6b, 0x93, 0xdd, 0x2a, 0xf6, 0x9a,
- 0x18, 0xfb, 0x20, 0x26, 0xb3, 0xdd, 0x47, 0x87, 0x6b, 0x56, 0xe9, 0xd9,
- 0xf0, 0x59, 0x77, 0x95, 0x56, 0x13, 0x95, 0x32, 0x75, 0x65, 0xb0, 0xdd,
- 0x85, 0x0f, 0x93, 0x70, 0x37, 0x3b, 0x8e, 0xca, 0x1e, 0xc1, 0x19, 0x10,
- 0x55, 0xa4, 0x9c, 0xc9, 0x1a, 0xdc, 0x05, 0x4a, 0xcc, 0xe5, 0xc5, 0x53,
- 0xc1, 0xda, 0x69, 0x99, 0x3b, 0xc4, 0x89, 0xcd, 0x61, 0x34, 0xb3, 0x62,
- 0x69, 0x35, 0xb5, 0x59, 0x5d, 0xa1, 0x32, 0xa8, 0x48, 0x31, 0x2a, 0x90,
- 0x61, 0xb6, 0x80, 0xf2, 0xe3, 0xb7, 0x92, 0xed, 0x5c, 0xf1, 0x61, 0x75,
- 0x15, 0xbb, 0xac, 0xbd, 0x38, 0x8d, 0x2a, 0xfc, 0x8f, 0xe0, 0xcd, 0xb7,
- 0x7c, 0xa0, 0x6b, 0xb1, 0x73, 0x71, 0xe6, 0x4f, 0x9a, 0x57, 0x41, 0x1a,
- 0xbc, 0xe4, 0x3f, 0xe3, 0xfb, 0x1d, 0x97, 0x6b, 0x55, 0xce, 0xd8, 0x63,
- 0x28, 0x6f, 0x30, 0x04, 0x90, 0x71, 0xf6, 0xe0, 0x61, 0x81, 0x03, 0x1c,
- 0xa1, 0x33, 0x98, 0x23, 0xa8, 0x26, 0x1b, 0x16, 0x41, 0xd9, 0x1a, 0x6d,
- 0xcb, 0x14, 0x32, 0x6a, 0x56, 0x5a, 0x8b, 0x24, 0x50, 0x78, 0x3c, 0x65,
- 0xa2, 0x4d, 0xc6, 0x88, 0x32, 0xbc, 0xd3, 0x1b, 0x1a, 0x48, 0x10, 0xc6,
- 0x93, 0xbb, 0x69, 0x5c, 0xdb, 0x62, 0x5f, 0x05, 0xe0, 0x47, 0x80, 0x76,
- 0x73, 0xba, 0xc6, 0xd1, 0x0f, 0xaf, 0xbd, 0xd2, 0x07, 0x8a, 0x70, 0xe2,
- 0xfd, 0x22, 0xda, 0xe7, 0x2a, 0x62, 0xa5, 0xcc, 0xc1, 0xf4, 0x86, 0x08,
- 0xc6, 0x4d, 0xb3, 0x6c, 0x61, 0x49, 0x6d, 0x51, 0x9a, 0x92, 0x96, 0x9d,
- 0x82, 0x6f, 0x42, 0x28, 0x8c, 0xe2, 0x3e, 0x2b, 0x7a, 0x27, 0xa2, 0xc3,
- 0x46, 0x01, 0xe8, 0xff, 0xa8, 0x96, 0x0b, 0x85, 0xff, 0xf6, 0x3e, 0x7b,
- 0xf2, 0xb9, 0xb9, 0x7f, 0xef, 0xc1, 0x32, 0xeb, 0xa6, 0x8c, 0x59, 0x20,
- 0x57, 0x53, 0x66, 0x89, 0x09, 0xa3, 0xe0, 0x50, 0xc9, 0x86, 0x4e, 0x6a,
- 0xb2, 0x19, 0xe0, 0x8f, 0x92, 0xdc, 0xc4, 0x90, 0x4c, 0xc2, 0x4c, 0xa2,
- 0x4c, 0x98, 0xc0, 0xb5, 0x30, 0x4f, 0x0c, 0x2d, 0x1a, 0x7a, 0x1b, 0xd8,
- 0xa8, 0x70, 0xa8, 0x6b, 0x63, 0x44, 0xca, 0xc5, 0xf1, 0xe5, 0x85, 0xf9,
- 0x63, 0x74, 0x79, 0x76, 0xb1, 0x82, 0xe7, 0xac, 0xe1, 0x2c, 0x7b, 0x9a,
- 0x34, 0x85, 0x39, 0x60, 0x9a, 0xdb, 0x04, 0x48, 0xc0, 0xd1, 0xb2, 0xd8,
- 0xa9, 0xa3, 0x9c, 0x39, 0x1e, 0x75, 0x4e, 0x3d, 0x6c, 0x0d, 0xf4, 0xca,
- 0xdc, 0x0f, 0x6b, 0x07, 0xc6, 0x6b, 0xbe, 0x7e, 0x87, 0x60, 0xc0, 0xb4,
- 0x19, 0x69, 0xc4, 0x56, 0xd0, 0xa3, 0xb7, 0xc6, 0x3c, 0xa3, 0x38, 0x9a,
- 0x23, 0x30, 0xd6, 0x7a, 0xa1, 0x2b, 0xf8, 0xed, 0x18, 0xd4, 0x59, 0x73,
- 0x9a, 0xba, 0xf8, 0xa9, 0xc8, 0x03, 0xd0, 0xd3, 0x4c, 0xde, 0x5e, 0xb2,
- 0x05, 0x7f, 0xb1, 0xe8, 0x1e, 0x0f, 0xec, 0x5f, 0xa3, 0xef, 0x6c, 0xbb,
- 0x01, 0xd7, 0xe5, 0x3c, 0x63, 0x97, 0x3e, 0x9c, 0x3e, 0x56, 0x38, 0xd5,
- 0x52, 0x89, 0x26, 0xe7, 0x94, 0xea, 0x30, 0x9d, 0xdd, 0xb2, 0xf1, 0xd0,
- 0x2a, 0x6f, 0xda, 0x84, 0x60, 0xad, 0x85, 0xcd, 0xeb, 0x92, 0x19, 0x9b,
- 0xb4, 0x01, 0xcd, 0xd1, 0xa6, 0xf6, 0xca, 0xa3, 0xe9, 0x69, 0x0b, 0xef,
- 0xbd, 0xae, 0x90, 0xa1, 0x9c, 0xea, 0xb8, 0x64, 0x21, 0x84, 0x83, 0xcd,
- 0x8d, 0x05, 0x40, 0x47, 0xb1, 0x19, 0xd0, 0x25, 0xfc, 0x8a, 0x6e, 0xe7,
- 0xf2, 0x14, 0xaf, 0x6d, 0x20, 0x0a, 0x20, 0x06, 0x66, 0x6e, 0x6f, 0xcb,
- 0x92, 0x73, 0x82, 0xf3, 0xb2, 0x2b, 0x74, 0x5b, 0x3a, 0x5b, 0x28, 0x66,
- 0x55, 0x35, 0xf3, 0x4b, 0x5c, 0x75, 0x93, 0xc9, 0x17, 0x8f, 0xaf, 0x24,
- 0x22, 0x9f, 0xe9, 0x68, 0x30, 0xb0, 0x3a, 0x9c, 0x4b, 0x01, 0x45, 0x4b,
- 0xa3, 0x14, 0x18, 0xc9, 0xfb, 0x42, 0x88, 0x1f, 0x0a, 0x63, 0x41, 0x20,
- 0x6e, 0x3e, 0xb5, 0x93, 0x46, 0x8c, 0x28, 0x04, 0xf7, 0xe1, 0x4b, 0x6b,
- 0x5a, 0x42, 0x65, 0x67, 0x86, 0xd4, 0x90, 0x3f, 0x0b, 0x3e, 0x63, 0x44,
- 0xa1, 0xf5, 0xa6, 0x91, 0xf6, 0x9c, 0x45, 0x35, 0x69, 0xba, 0x23, 0x45,
- 0x92, 0x76, 0x30, 0xd0, 0x73, 0x7f, 0xd1, 0x58, 0xa4, 0xc1, 0xc4, 0x71,
- 0xb2, 0xa0, 0xe1, 0x5c, 0x69, 0x4e, 0x88, 0x56, 0x2f, 0x80, 0x64, 0xa5,
- 0x17, 0xd1, 0x5c, 0x1b, 0xce, 0x48, 0xd7, 0xfa, 0xc4, 0xad, 0x4c, 0x6f,
- 0x55, 0x03, 0x87, 0x6b, 0x78, 0x82, 0xfc, 0xc4, 0xf0, 0xd6, 0x96, 0xdc,
- 0x6b, 0x69, 0x7d, 0xed, 0xd1, 0xad, 0x4c, 0x3a, 0xc4, 0x06, 0xbd, 0xa0,
- 0x25, 0x53, 0x72, 0x37, 0xdd, 0x5b, 0x5c, 0x1d, 0xde, 0x1c, 0xf8, 0x1d,
- 0xca, 0x71, 0x20, 0xfa, 0x2b, 0x63, 0x3c, 0x96, 0x33, 0x14, 0x76, 0x50,
- 0xd5, 0x2d, 0x56, 0x21, 0x13, 0x2a, 0x18, 0x53, 0x68, 0x98, 0xc6, 0xdb,
- 0x15, 0x0f, 0xbd, 0xd2, 0x41, 0x74, 0x9b, 0x7a, 0x59, 0xdf, 0xc3, 0x18,
- 0x92, 0x9a, 0x91, 0x04, 0x40, 0xca, 0xb5, 0xd5, 0x31, 0x2d, 0x14, 0xa7,
- 0xb4, 0xf2, 0x58, 0x57, 0xa8, 0x7c, 0x40, 0x6f, 0xaf, 0x48, 0xce, 0x52,
- 0x4a, 0x7f, 0xb0, 0xbb, 0x98, 0x59, 0xe9, 0x33, 0xaa, 0xa0, 0x7d, 0x32,
- 0x61, 0x39, 0xb4, 0xbf, 0x56, 0x67, 0xcd, 0x72, 0x11, 0xde, 0xf3, 0x2e,
- 0xf1, 0xcd, 0xb6, 0xc8, 0xd5, 0x9d, 0x1b, 0xbf, 0x8b, 0x4d, 0x69, 0xee,
- 0x36, 0x3b, 0xfd, 0x3e, 0x2f, 0x73, 0x60, 0x9e, 0x93, 0x26, 0x10, 0xdc,
- 0xee, 0xab, 0x92, 0x90, 0xf5, 0xd7, 0x43, 0x92, 0xac, 0x46, 0xbd, 0xd8,
- 0xed, 0x49, 0x9e, 0xa3, 0x24, 0xfd, 0x30, 0x74, 0xc0, 0xbe, 0x6d, 0xe6,
- 0xc5, 0xeb, 0x6f, 0x78, 0x66, 0x34, 0x9b, 0x41, 0xb2, 0xd0, 0x68, 0x75,
- 0xb6, 0xa8, 0x38, 0x30, 0xce, 0xef, 0xf6, 0xc6, 0xca, 0xa1, 0xaf, 0xee,
- 0x55, 0x6f, 0xef, 0xc5, 0xfe, 0x70, 0xef, 0xf9, 0xe7, 0xc3, 0x3d, 0x94,
- 0x15, 0xf4, 0x2a, 0x91, 0x33, 0xad, 0x2f, 0x55, 0xbe, 0xf3, 0xda, 0x89,
- 0xd4, 0x57, 0x4c, 0x56, 0x73, 0x63, 0xe2, 0x03, 0xf3, 0xfb, 0x21, 0x3d,
- 0x36, 0xe4, 0x6a, 0x0a, 0xc1, 0x27, 0xe6, 0x46, 0xa3, 0xa1, 0xa8, 0x7e,
- 0xe8, 0x9c, 0x54, 0x2c, 0x0a, 0xef, 0xc4, 0x45, 0x4e, 0x9b, 0x48, 0xe9,
- 0xea, 0xbc, 0x59, 0xe2, 0xb0, 0x19, 0xa8, 0xab, 0x98, 0xd8, 0x1e, 0x67,
- 0x33, 0xde, 0x21, 0x15, 0xe8, 0x13, 0x51, 0x22, 0x9d, 0x4c, 0xb7, 0xdf,
- 0x0f, 0x84, 0xe6, 0x2f, 0xb6, 0xf9, 0x88, 0x7f, 0xc1, 0x1e, 0xb9, 0x2e,
- 0xc7, 0x0e, 0xf8, 0x59, 0xba, 0x14, 0x1f, 0xc2, 0xd8, 0xc0, 0x0f, 0xb6,
- 0x72, 0x2f, 0x10, 0xff, 0xf6, 0xae, 0x18, 0x30, 0x97, 0xb8, 0x2c, 0x0e,
- 0x95, 0x9c, 0xb6, 0xe5, 0xb1, 0xf2, 0x61, 0x74, 0xb8, 0x58, 0x2c, 0x47,
- 0x0a, 0x8b, 0x68, 0x6d, 0x8e, 0xde, 0xf9, 0xd3, 0x9f, 0x9c, 0x3c, 0xe2,
- 0x2a, 0xb7, 0xe0, 0x70, 0x7f, 0x06, 0xce, 0x43, 0x8e, 0x6d, 0x31, 0xc3,
- 0x76, 0xd2, 0x3b, 0xf8, 0x0b, 0xbc, 0xc0, 0x3f, 0x0f, 0xfe, 0x62, 0xfe,
- 0xfd, 0x73, 0xcf, 0x23, 0xbd, 0x64, 0x5e, 0x1d, 0x05, 0xc8, 0x6c, 0xb4,
- 0x8f, 0x72, 0x3f, 0x69, 0x97, 0x09, 0x84, 0x66, 0x70, 0x79, 0x74, 0xce,
- 0x87, 0xb1, 0xe2, 0x18, 0x37, 0x76, 0x33, 0xc9, 0x21, 0xa8, 0xf5, 0x24,
- 0xc2, 0xc1, 0xa5, 0xbe, 0xf0, 0x40, 0x10, 0xb4, 0x65, 0x52, 0xef, 0xa5,
- 0xbe, 0xa2, 0x35, 0x48, 0x67, 0xac, 0x18, 0x4f, 0x62, 0x54, 0xdc, 0x6b,
- 0x72, 0xa3, 0x48, 0x02, 0x2d, 0xb9, 0x01, 0xad, 0x3a, 0x2d, 0x3f, 0xd3,
- 0xe6, 0x88, 0xa5, 0xa7, 0x06, 0xaf, 0xc6, 0x9d, 0xe9, 0x5a, 0x5f, 0x08,
- 0x25, 0x19, 0x5c, 0xdf, 0x08, 0x27, 0x9a, 0x99, 0x0f, 0x33, 0x63, 0x2a,
- 0x74, 0xab, 0xbc, 0xfe, 0x48, 0x63, 0x94, 0x4c, 0x11, 0x06, 0x5b, 0x6c,
- 0x78, 0x3a, 0x37, 0xfa, 0x46, 0x21, 0x2f, 0x21, 0x9e, 0xb0, 0xd9, 0x5f,
- 0xde, 0x14, 0xbb, 0x4b, 0x42, 0xd7, 0x5f, 0xb3, 0xab, 0xa3, 0xe4, 0x39,
- 0xf2, 0x58, 0x95, 0x3d, 0x82, 0xd3, 0x89, 0xd1, 0x4e, 0xc9, 0xb9, 0x51,
- 0x77, 0xed, 0x1e, 0xf1, 0x08, 0x56, 0xcc, 0x3b, 0xd8, 0x35, 0x74, 0x09,
- 0x6e, 0x77, 0x2f, 0x2f, 0x2a, 0x51, 0x40, 0xce, 0x61, 0x26, 0x79, 0xb1,
- 0x2c, 0x45, 0xe4, 0x8e, 0x23, 0xdd, 0x60, 0x5a, 0x99, 0x6e, 0x80, 0xf7,
- 0x15, 0xe9, 0xc1, 0x7c, 0x44, 0x28, 0xbc, 0xab, 0xaa, 0xdd, 0x46, 0xd4,
- 0x64, 0xc0, 0x89, 0x73, 0x3a, 0xe9, 0x8c, 0xfd, 0xe8, 0xb5, 0x4e, 0x3a,
- 0xfd, 0x69, 0x84, 0xb6, 0x96, 0xd5, 0xb9, 0x2b, 0x50, 0xb3, 0x32, 0x52,
- 0x32, 0x0a, 0xdd, 0x9f, 0xc7, 0x48, 0x2f, 0xbd, 0xbb, 0x75, 0x7f, 0x37,
- 0xf4, 0xa8, 0x50, 0x25, 0x4e, 0x4c, 0xf2, 0x20, 0x5f, 0x3c, 0x3c, 0x81,
- 0x4a, 0xd6, 0x43, 0x6b, 0xd9, 0x12, 0x31, 0xf6, 0xa2, 0xa9, 0x97, 0xd7,
- 0xd7, 0x48, 0xcb, 0x0f, 0xba, 0xc8, 0x69, 0x6f, 0x82, 0x3b, 0x17, 0x92,
- 0x70, 0x23, 0xcf, 0xd1, 0x73, 0x9d, 0x0d, 0x97, 0x5b, 0x27, 0x92, 0x87,
- 0xdb, 0x8e, 0x01, 0x91, 0x7c, 0x75, 0x33, 0x39, 0xd1, 0x73, 0xee, 0xa7,
- 0x0b, 0x55, 0xd9, 0x40, 0xc5, 0x43, 0x20, 0x14, 0x03, 0x60, 0xa8, 0x0a,
- 0x47, 0x38, 0x1d, 0x56, 0x8b, 0xc1, 0xb5, 0x4e, 0x42, 0x72, 0xb5, 0x51,
- 0x89, 0x04, 0xe6, 0x04, 0xc9, 0xaf, 0x84, 0x8c, 0x8b, 0xd9, 0x94, 0x2a,
- 0xcb, 0x4e, 0xc3, 0x0a, 0xa6, 0x88, 0xa6, 0xee, 0xf5, 0x79, 0x85, 0x09,
- 0x59, 0xe7, 0x20, 0x70, 0x52, 0xd1, 0x57, 0x9b, 0x9e, 0x0e, 0xf7, 0x83,
- 0xa5, 0xad, 0x67, 0x83, 0xc9, 0x64, 0x32, 0x80, 0x42, 0xf0, 0x92, 0xb5,
- 0x94, 0x1d, 0xd1, 0x12, 0x56, 0x38, 0x0f, 0x46, 0x99, 0xcc, 0xf8, 0xd1,
- 0xd1, 0x91, 0x28, 0x34, 0x97, 0x37, 0x1d, 0xd5, 0xc2, 0x12, 0xc7, 0x88,
- 0x6a, 0x15, 0x03, 0xf1, 0xd5, 0x37, 0xcb, 0x66, 0x8a, 0x02, 0x95, 0x24,
- 0x34, 0x54, 0x0a, 0xdb, 0x54, 0xcb, 0x0e, 0xbf, 0x1f, 0x95, 0x0b, 0xee,
- 0x3b, 0x70, 0x57, 0x08, 0x89, 0xab, 0xb2, 0x05, 0xd7, 0x15, 0xc0, 0x8b,
- 0xd2, 0x76, 0xb7, 0x02, 0x1e, 0x77, 0xd5, 0xa7, 0xe0, 0xd1, 0x0e, 0xc6,
- 0x10, 0x8b, 0xb6, 0x15, 0x7c, 0x36, 0xcd, 0x05, 0x55, 0x99, 0xca, 0xb7,
- 0xba, 0x6d, 0x3f, 0xb0, 0x1e, 0x32, 0xd5, 0xed, 0x25, 0x79, 0xbe, 0x72,
- 0x49, 0xa2, 0x93, 0x4f, 0xe6, 0x15, 0x4d, 0xfb, 0xd6, 0x11, 0xb8, 0x01,
- 0x8f, 0xe4, 0x48, 0x1c, 0xdd, 0x10, 0x6e, 0x6b, 0x46, 0x8b, 0x63, 0xba,
- 0x5c, 0xb3, 0x18, 0x90, 0x5b, 0x65, 0x34, 0x3a, 0xdd, 0xb9, 0x3c, 0x1d,
- 0x05, 0x90, 0xe9, 0x7b, 0xf2, 0x1d, 0xc3, 0x47, 0xdc, 0xf6, 0x7d, 0xf2,
- 0x14, 0x81, 0x70, 0xb5, 0xbc, 0x6a, 0xef, 0x70, 0xfe, 0x4a, 0x94, 0x73,
- 0x61, 0x59, 0x68, 0x2e, 0x85, 0xbd, 0xc6, 0x8b, 0xac, 0x40, 0x2e, 0x32,
- 0xdd, 0xe6, 0x38, 0x01, 0x40, 0x15, 0xd6, 0xc9, 0xbb, 0xc3, 0x4b, 0xca,
- 0x8f, 0x68, 0x04, 0xde, 0x41, 0xbe, 0xa0, 0x00, 0xd0, 0x2d, 0xfc, 0x8e,
- 0x96, 0x11, 0x2f, 0x9d, 0xb8, 0x1a, 0x03, 0xaa, 0xb5, 0xf3, 0xf2, 0xd5,
- 0xba, 0xf1, 0xd6, 0x4d, 0xbf, 0x99, 0x52, 0xb9, 0x1f, 0xba, 0x7b, 0xbe,
- 0xbb, 0x1a, 0x7b, 0xd1, 0xd5, 0xe0, 0x09, 0x88, 0x1f, 0x87, 0x0b, 0x11,
- 0xe6, 0x3a, 0xd1, 0x1a, 0x54, 0x93, 0xee, 0xcf, 0xca, 0xeb, 0x9c, 0x5c,
- 0x82, 0x58, 0x2f, 0xec, 0x6b, 0xad, 0xcd, 0xdb, 0x95, 0xc1, 0x3c, 0x3b,
- 0x35, 0xe7, 0x72, 0xb4, 0x13, 0x73, 0xf8, 0x88, 0xd0, 0x4d, 0x61, 0xe7,
- 0x54, 0x63, 0xce, 0x36, 0x8b, 0x2e, 0x4c, 0x52, 0x03, 0x07, 0x56, 0x3e,
- 0x31, 0xb6, 0xc2, 0x84, 0xf2, 0x1e, 0x90, 0x51, 0x56, 0x2b, 0xd9, 0x1d,
- 0x87, 0xbd, 0xf2, 0x16, 0xbd, 0x96, 0xba, 0x4a, 0xeb, 0xe5, 0x22, 0x9a,
- 0x45, 0x22, 0x23, 0x5c, 0xeb, 0x90, 0x7f, 0xde, 0xba, 0x3e, 0xbe, 0x21,
- 0xd3, 0xec, 0x3a, 0xb8, 0x76, 0x2d, 0x99, 0x41, 0x84, 0xc1, 0x0b, 0xda,
- 0x2a, 0xb2, 0xc4, 0x25, 0xa8, 0xee, 0xd3, 0x24, 0x93, 0xa9, 0x35, 0x98,
- 0xf6, 0xa3, 0x1c, 0xd7, 0xfd, 0x6e, 0x45, 0x1b, 0x66, 0x17, 0x6b, 0x53,
- 0xcb, 0xb6, 0xa8, 0x49, 0x14, 0xc8, 0xdc, 0x69, 0xee, 0x9b, 0x63, 0x47,
- 0x49, 0xde, 0xe1, 0x2f, 0x69, 0xd1, 0x95, 0x33, 0x0c, 0x87, 0x02, 0x4e,
- 0x77, 0x54, 0x8c, 0xef, 0x6e, 0x85, 0xb5, 0xc3, 0xfa, 0xec, 0xa5, 0x63,
- 0x38, 0xe6, 0xf3, 0xa1, 0x34, 0xf0, 0x2a, 0xb2, 0xde, 0x5f, 0x9c, 0xda,
- 0xb0, 0xfc, 0xbf, 0x6f, 0xba, 0xa2, 0x1b, 0xc3, 0x88, 0x43, 0x42, 0x6f,
- 0x87, 0x68, 0x19, 0x48, 0x8a, 0x36, 0x49, 0xb8, 0xa9, 0xef, 0x3a, 0x6d,
- 0xbf, 0x1d, 0xe7, 0xeb, 0x7d, 0xa0, 0x47, 0xdf, 0x1e, 0x1f, 0xbe, 0xb6,
- 0xf9, 0xe8, 0xff, 0x0c, 0x96, 0x50, 0xe7, 0xe0, 0x1c, 0x67, 0xcc, 0xad,
- 0xbe, 0x54, 0x9f, 0x09, 0xd6, 0x47, 0xb7, 0x2a, 0x76, 0x8b, 0x51, 0xd9,
- 0xea, 0x8c, 0xcf, 0xc8, 0x4a, 0x8a, 0xf1, 0x95, 0x4e, 0x12, 0x1f, 0x75,
- 0x20, 0xce, 0x6b, 0x52, 0x9a, 0x39, 0x3d, 0xc7, 0xdb, 0xca, 0xd7, 0xd8,
- 0xca, 0xb3, 0x72, 0x5c, 0x5e, 0x5d, 0xad, 0xb9, 0xdf, 0x99, 0xe8, 0x0d,
- 0x69, 0x34, 0xbc, 0x65, 0x7a, 0x34, 0x8d, 0xf4, 0xde, 0x98, 0x7a, 0x6f,
- 0x16, 0xd5, 0x1c, 0xb6, 0x9e, 0xc0, 0xb0, 0xa4, 0x3e, 0x72, 0x70, 0xf5,
- 0xf8, 0xd9, 0xcd, 0x6a, 0x40, 0xa8, 0xbd, 0x87, 0x04, 0x6f, 0xf6, 0xcc,
- 0x28, 0x40, 0xc8, 0xd2, 0x65, 0xd7, 0xc9, 0x7f, 0xfe, 0xd7, 0x5f, 0x7e,
- 0x8e, 0x70, 0x86, 0x93, 0xef, 0xef, 0x86, 0x93, 0xd3, 0xcc, 0xd3, 0x73,
- 0xa1, 0xff, 0xb0, 0xcc, 0xce, 0xae, 0x4c, 0x39, 0x69, 0x60, 0xd9, 0xec,
- 0x6a, 0xe8, 0x11, 0x37, 0x84, 0x17, 0x23, 0x29, 0x4c, 0xfa, 0x41, 0x94,
- 0x2c, 0xa2, 0x7c, 0x62, 0xce, 0x01, 0x25, 0x16, 0x5e, 0xd4, 0xde, 0x70,
- 0x89, 0x08, 0x96, 0xa3, 0x93, 0x57, 0x22, 0x80, 0x4f, 0xbb, 0xfa, 0x18,
- 0x7e, 0xfc, 0x9c, 0x37, 0xe0, 0x89, 0xf5, 0x7a, 0x7a, 0x2b, 0x61, 0xa3,
- 0xa9, 0xd1, 0xac, 0x22, 0x12, 0xba, 0x6f, 0x4e, 0x4e, 0x8f, 0xb7, 0x93,
- 0x37, 0x19, 0x28, 0xf7, 0x3c, 0x52, 0x18, 0xda, 0x82, 0xff, 0x82, 0x23,
- 0x6f, 0xa9, 0x7a, 0x24, 0xed, 0x29, 0x5a, 0xda, 0x51, 0x0c, 0x44, 0x6c,
- 0x7e, 0x76, 0x32, 0x60, 0x69, 0x38, 0x7b, 0xb9, 0x44, 0xca, 0x85, 0xe2,
- 0x1b, 0xd4, 0xf5, 0x2e, 0x88, 0x2a, 0x82, 0x17, 0x07, 0x71, 0x28, 0x4e,
- 0x5e, 0x1d, 0x7a, 0x54, 0x2e, 0xa5, 0x1f, 0xdd, 0xa2, 0x4e, 0x2b, 0xfc,
- 0x4e, 0x42, 0x19, 0x5c, 0x45, 0xb9, 0x4e, 0xa2, 0xa9, 0xeb, 0x94, 0xba,
- 0x4b, 0xc8, 0x74, 0x00, 0xf2, 0xc8, 0x88, 0xe6, 0x12, 0x96, 0x72, 0x0d,
- 0x83, 0xd9, 0x82, 0xc6, 0xeb, 0x4d, 0xdc, 0xb7, 0x3a, 0x71, 0x14, 0x11,
- 0xe5, 0x3f, 0x77, 0xbe, 0x8a, 0xb2, 0xaa, 0x28, 0x49, 0x32, 0x0a, 0x79,
- 0xc9, 0x1b, 0x66, 0xc4, 0x5a, 0xda, 0x51, 0x36, 0x9d, 0x0a, 0x42, 0x68,
- 0xe4, 0x8a, 0xec, 0x8a, 0x08, 0x54, 0x2e, 0xf8, 0x2d, 0x0a, 0xd8, 0x9f,
- 0x85, 0x8d, 0x5f, 0xf7, 0x33, 0x65, 0xb5, 0xb1, 0x4d, 0x49, 0xb3, 0xc6,
- 0xa5, 0xc3, 0x2c, 0xde, 0x2d, 0x89, 0x15, 0xbe, 0x50, 0x8c, 0x2f, 0x4e,
- 0x0f, 0x9f, 0x6e, 0x42, 0x8e, 0xa6, 0x6d, 0xec, 0x28, 0x3f, 0x76, 0x23,
- 0x39, 0x19, 0xd0, 0xed, 0x99, 0xf0, 0xb8, 0x8e, 0x7a, 0xa3, 0xf0, 0x94,
- 0xf5, 0x3a, 0xa3, 0x76, 0x16, 0xdb, 0xd9, 0x2c, 0xd5, 0x97, 0x24, 0x60,
- 0xe8, 0x8b, 0x15, 0x23, 0xd0, 0x2a, 0x66, 0x91, 0x8a, 0x9c, 0x5e, 0xf9,
- 0xba, 0xef, 0xcd, 0xe8, 0xde, 0x22, 0xfe, 0x67, 0xda, 0xba, 0x51, 0x28,
- 0xbe, 0xcc, 0xdc, 0x41, 0xc6, 0xa1, 0xbc, 0x69, 0x53, 0xe5, 0x93, 0x8f,
- 0x39, 0xd2, 0x0b, 0x96, 0x10, 0x2f, 0x69, 0xa1, 0xd6, 0x0c, 0x77, 0xd3,
- 0x32, 0x88, 0x9a, 0xed, 0x36, 0x04, 0xb0, 0x36, 0x2e, 0x0d, 0x39, 0x81,
- 0x82, 0xd4, 0x58, 0x62, 0x26, 0xd3, 0xfe, 0xcc, 0x00, 0x78, 0xb7, 0xa7,
- 0x45, 0x05, 0x07, 0x65, 0x3d, 0x40, 0x76, 0x45, 0xd8, 0x12, 0x33, 0x54,
- 0x81, 0x83, 0x19, 0x7a, 0x27, 0xdc, 0x29, 0x54, 0xbc, 0x18, 0xa2, 0x7a,
- 0x68, 0x74, 0xa3, 0x39, 0x61, 0x53, 0x01, 0xf7, 0x92, 0x21, 0xcb, 0xf4,
- 0x18, 0x71, 0x73, 0x9d, 0xdf, 0xc6, 0x02, 0x80, 0xe4, 0x7f, 0x90, 0x8e,
- 0xcd, 0x25, 0x97, 0x57, 0xea, 0x82, 0x29, 0xfc, 0xcd, 0x46, 0x5b, 0xd8,
- 0x61, 0x42, 0x04, 0x47, 0x32, 0xb3, 0xc1, 0x09, 0x9e, 0x91, 0x04, 0x25,
- 0xa6, 0x92, 0xe2, 0xc0, 0x6c, 0xff, 0xa4, 0xf7, 0x6d, 0x59, 0x37, 0x07,
- 0x3d, 0xcb, 0xd5, 0x09, 0x5b, 0x1f, 0x2a, 0x6e, 0x6b, 0xe7, 0x48, 0x1d,
- 0xbb, 0x41, 0xb4, 0xba, 0x84, 0xdc, 0x24, 0x46, 0xb0, 0xc9, 0xd3, 0x0a,
- 0xfd, 0x0e, 0xe1, 0x75, 0x16, 0x8a, 0xdd, 0xa7, 0xbc, 0xed, 0x9b, 0x90,
- 0x8b, 0x94, 0xba, 0xf4, 0xe3, 0xe0, 0x08, 0x1f, 0x1f, 0x7c, 0x8b, 0xe6,
- 0xbe, 0xe8, 0x59, 0x27, 0x44, 0xf7, 0x57, 0x07, 0x61, 0x05, 0x6d, 0xe7,
- 0x9c, 0xe7, 0x8b, 0x70, 0xa9, 0xe8, 0x60, 0xc4, 0x38, 0xa5, 0x83, 0x52,
- 0x1b, 0x78, 0x3a, 0xdd, 0xd1, 0x05, 0xe7, 0x22, 0xe2, 0x61, 0x39, 0x25,
- 0x1b, 0x0d, 0x5b, 0x54, 0x14, 0xdb, 0x32, 0x92, 0x79, 0x3a, 0x28, 0xaf,
- 0x06, 0x40, 0xea, 0xcd, 0xd3, 0xea, 0x23, 0xc5, 0xc9, 0xbd, 0x53, 0x87,
- 0x9c, 0x67, 0x30, 0x52, 0x4e, 0xa7, 0xb1, 0xab, 0x02, 0x39, 0x3e, 0x88,
- 0xb1, 0xca, 0xc6, 0x57, 0xc8, 0x2f, 0x2f, 0xe4, 0x81, 0x78, 0x8a, 0xf0,
- 0xba, 0xad, 0x64, 0x40, 0x74, 0x23, 0x6b, 0x0b, 0x1f, 0xf4, 0xf9, 0x36,
- 0xc1, 0xa8, 0xa1, 0x53, 0xcc, 0xd9, 0xbd, 0x00, 0x9f, 0xc8, 0x72, 0x01,
- 0xcd, 0x97, 0xb8, 0xc1, 0x02, 0x7b, 0x40, 0xe1, 0xca, 0x50, 0x9c, 0x3e,
- 0x1b, 0x3e, 0x7b, 0x36, 0xdc, 0xed, 0x07, 0x31, 0xa4, 0x06, 0xea, 0x67,
- 0xe1, 0x02, 0xd8, 0xe6, 0xe1, 0xaf, 0x56, 0x65, 0x74, 0x71, 0x7d, 0xea,
- 0xbe, 0xbd, 0x1c, 0x32, 0xc0, 0xdb, 0x1c, 0x02, 0xd7, 0x85, 0x9b, 0xb9,
- 0x62, 0x2b, 0x8b, 0x4d, 0x4e, 0x5f, 0x8b, 0xd1, 0xa9, 0x09, 0x98, 0xe0,
- 0xab, 0x41, 0x58, 0x51, 0x5c, 0x6a, 0x5a, 0xf8, 0x38, 0x62, 0xaf, 0x3a,
- 0xc5, 0x4a, 0xdb, 0x07, 0x14, 0xad, 0x87, 0xca, 0x02, 0x3f, 0x30, 0x93,
- 0x2a, 0xa5, 0xbb, 0x06, 0x19, 0xfd, 0x90, 0x73, 0x90, 0x95, 0xa3, 0xac,
- 0x5e, 0x3d, 0x67, 0x4c, 0x3d, 0xf7, 0x19, 0xcd, 0x98, 0x25, 0xad, 0x55,
- 0x72, 0x76, 0x77, 0x3f, 0x60, 0xdb, 0x7a, 0x67, 0xa9, 0x3b, 0x67, 0x24,
- 0x55, 0xb4, 0xf6, 0xb0, 0x98, 0xd2, 0x68, 0x62, 0x25, 0xb2, 0x6d, 0x05,
- 0xe4, 0x0c, 0xc7, 0xe6, 0x0d, 0x29, 0x91, 0x83, 0x77, 0x66, 0x19, 0x0e,
- 0x92, 0xff, 0x28, 0xb3, 0x1e, 0x12, 0xfc, 0x3a, 0xf9, 0x7d, 0x01, 0xd9,
- 0xcf, 0xe1, 0xc5, 0xbb, 0x93, 0x77, 0xdf, 0x1c, 0x58, 0x19, 0x47, 0xf2,
- 0xce, 0x63, 0x41, 0x77, 0x51, 0x3e, 0x57, 0x92, 0x05, 0x8f, 0xe4, 0x51,
- 0x1e, 0x72, 0xc7, 0x2a, 0x3b, 0x48, 0x58, 0x42, 0x8b, 0x49, 0xdd, 0x2e,
- 0x41, 0x6d, 0x61, 0xbc, 0x92, 0x3d, 0x84, 0xfb, 0xb2, 0x29, 0x03, 0x5d,
- 0x88, 0x5d, 0xda, 0xad, 0x02, 0xee, 0x36, 0x0b, 0xb9, 0x40, 0xc6, 0x86,
- 0x6a, 0x46, 0x2a, 0x45, 0xfd, 0x72, 0x02, 0x61, 0xd0, 0x13, 0x58, 0x38,
- 0xc4, 0x17, 0x6a, 0xbe, 0x2b, 0x5a, 0xec, 0xeb, 0xcc, 0xa0, 0x5c, 0x63,
- 0xd5, 0xea, 0x1c, 0xfa, 0xaf, 0x9d, 0x95, 0x15, 0x9a, 0x1a, 0x2e, 0x33,
- 0xe6, 0x5d, 0x94, 0xca, 0xe3, 0xc2, 0xba, 0x22, 0x3f, 0x75, 0x20, 0x61,
- 0x3b, 0xfe, 0x47, 0x03, 0xed, 0x1c, 0xd2, 0x8e, 0x2d, 0x06, 0x76, 0x8c,
- 0x7b, 0x52, 0x6b, 0xa7, 0xc2, 0x6d, 0x12, 0xcd, 0xae, 0x9e, 0x65, 0x0e,
- 0x22, 0x6f, 0xd5, 0x9d, 0x1b, 0x56, 0x77, 0x66, 0x8b, 0x80, 0x44, 0x08,
- 0x25, 0x3a, 0xe9, 0x37, 0x6a, 0x67, 0x90, 0x4f, 0x15, 0x97, 0xb0, 0xa2,
- 0x84, 0xda, 0xa5, 0x96, 0xb5, 0x06, 0x10, 0xcb, 0xf5, 0xf0, 0x4a, 0x25,
- 0x16, 0x8b, 0x8c, 0x79, 0x54, 0x7c, 0x30, 0xb6, 0xf9, 0xba, 0x99, 0xe3,
- 0xc5, 0x72, 0x3c, 0x9f, 0x3e, 0x4b, 0x5e, 0x9a, 0xff, 0x04, 0x7a, 0x16,
- 0x10, 0x4d, 0xa3, 0x23, 0xa3, 0x6b, 0x51, 0xf8, 0x95, 0xae, 0x0c, 0x4e,
- 0xe4, 0x17, 0xd5, 0x9e, 0xfe, 0xfa, 0x64, 0xdf, 0xf4, 0xf4, 0x53, 0xaa,
- 0xb4, 0x5d, 0x46, 0x29, 0xbc, 0xce, 0x1b, 0x46, 0x91, 0xac, 0x60, 0x43,
- 0xf0, 0x0b, 0xa2, 0xd2, 0x8a, 0xef, 0xed, 0x7f, 0x9e, 0x10, 0x00, 0xf6,
- 0xed, 0xeb, 0x67, 0x89, 0x31, 0x4d, 0x26, 0x1f, 0xeb, 0xe5, 0x5c, 0x25,
- 0xb2, 0xd4, 0x21, 0xa6, 0x7e, 0x06, 0x7c, 0x03, 0xa6, 0xe3, 0xb3, 0x7c,
- 0x42, 0x59, 0x28, 0x3e, 0xa4, 0x89, 0x4a, 0x20, 0xd6, 0xb6, 0xa6, 0x9e,
- 0xb8, 0x3c, 0xdd, 0xcd, 0x81, 0x68, 0x16, 0x47, 0x7c, 0x23, 0x1e, 0x35,
- 0x33, 0x07, 0xe6, 0xe3, 0x35, 0x57, 0x2e, 0x5c, 0xeb, 0x47, 0xf8, 0xac,
- 0xe5, 0x8a, 0xd9, 0xc5, 0x52, 0x9a, 0xf3, 0xbd, 0x37, 0xdc, 0x5d, 0x55,
- 0x8d, 0xd3, 0xa3, 0x19, 0x91, 0xb0, 0x1e, 0xec, 0x01, 0x29, 0xae, 0x9a,
- 0x98, 0x37, 0x7d, 0x3d, 0x8c, 0x23, 0x3c, 0x66, 0x26, 0x57, 0x00, 0x0f,
- 0xcc, 0xbd, 0xc2, 0x26, 0x20, 0xe5, 0xd0, 0xfa, 0x0d, 0x3d, 0x16, 0x02,
- 0x2a, 0xdd, 0xdd, 0x13, 0xc7, 0x13, 0xfd, 0xab, 0xe5, 0xea, 0x93, 0x5f,
- 0xaf, 0x28, 0x9c, 0x8a, 0xc1, 0xac, 0x19, 0xcb, 0xde, 0xda, 0x6e, 0x78,
- 0xfd, 0xc0, 0xdc, 0xb9, 0xc9, 0xb3, 0x75, 0x35, 0xb8, 0x3f, 0x3a, 0xe7,
- 0xa1, 0x27, 0x3e, 0xe4, 0x86, 0xc5, 0x1b, 0x84, 0xe6, 0x2d, 0xab, 0x01,
- 0xa9, 0x84, 0xb3, 0x6c, 0x1a, 0x5c, 0xd1, 0xb1, 0xc5, 0xc0, 0x39, 0x46,
- 0x55, 0x79, 0x49, 0x34, 0x26, 0x3f, 0x16, 0x39, 0xca, 0x30, 0x24, 0x2b,
- 0x42, 0x63, 0x88, 0x45, 0x7a, 0x62, 0x67, 0xdf, 0x6a, 0x80, 0xf8, 0x27,
- 0x4d, 0xe9, 0xfb, 0xc5, 0x75, 0x95, 0x92, 0xf3, 0x8e, 0xb0, 0xff, 0x8e,
- 0x6d, 0x35, 0x41, 0xe7, 0x92, 0x64, 0x55, 0xef, 0x98, 0x9f, 0xcb, 0x2f,
- 0x9f, 0xa0, 0x89, 0x29, 0xb5, 0x7e, 0xaa, 0xa6, 0x9c, 0x1f, 0x57, 0xde,
- 0x82, 0x7e, 0xea, 0x68, 0x84, 0x63, 0x7c, 0x78, 0x75, 0x23, 0x30, 0x29,
- 0x69, 0xa0, 0x05, 0x23, 0x24, 0x9e, 0x4f, 0xbe, 0x5c, 0x6c, 0xb1, 0x11,
- 0x82, 0xdd, 0x0a, 0x87, 0x43, 0x40, 0x36, 0xc4, 0x8b, 0x2b, 0x5a, 0x42,
- 0x87, 0x0b, 0x27, 0x70, 0x79, 0x45, 0x97, 0xe3, 0xd1, 0xcc, 0xb3, 0x01,
- 0xe5, 0x05, 0xf1, 0xd0, 0xd2, 0x0d, 0x2e, 0x89, 0x3a, 0x3c, 0x9a, 0xe1,
- 0xe3, 0x36, 0xf7, 0x6e, 0x3f, 0xda, 0x3b, 0xda, 0x6e, 0xfe, 0xe6, 0x6f,
- 0xf1, 0xc7, 0xbc, 0x88, 0x6c, 0xae, 0x5f, 0x75, 0x16, 0xf6, 0xd7, 0x39,
- 0x7e, 0x8d, 0x12, 0x9f, 0xce, 0x16, 0xc5, 0x50, 0xbf, 0xf0, 0xa8, 0xf9,
- 0xe9, 0x2e, 0xb3, 0xe5, 0xe9, 0xfd, 0x75, 0xf3, 0xd3, 0x9d, 0x1b, 0x5f,
- 0x96, 0xf9, 0xf3, 0xd3, 0x5d, 0xcb, 0xb5, 0x44, 0xcd, 0x9c, 0x58, 0xa7,
- 0xf5, 0x21, 0x07, 0x9c, 0x31, 0x10, 0x03, 0xd2, 0x26, 0x72, 0x22, 0x95,
- 0x61, 0xa5, 0x9f, 0x9c, 0x30, 0x83, 0x20, 0x22, 0x38, 0xf2, 0xfa, 0x29,
- 0x27, 0x1c, 0xf0, 0x15, 0x6a, 0x11, 0x68, 0x91, 0xdc, 0xa4, 0x7c, 0xb2,
- 0xe4, 0xfa, 0xcd, 0x4b, 0xae, 0x17, 0x4f, 0x3a, 0x9c, 0x25, 0x3d, 0x5e,
- 0x16, 0xb8, 0xb0, 0x0e, 0x17, 0x94, 0x33, 0x60, 0x64, 0xd4, 0x27, 0x57,
- 0x0d, 0x2a, 0xe2, 0x78, 0x34, 0xb7, 0x3a, 0x32, 0xc2, 0xf2, 0x42, 0x61,
- 0x4a, 0xdd, 0xee, 0xa0, 0x75, 0xe6, 0x18, 0x99, 0x11, 0x30, 0xaf, 0x62,
- 0x25, 0x66, 0xdf, 0x58, 0x8e, 0xd7, 0x01, 0x83, 0xe9, 0xf8, 0xbe, 0x89,
- 0x60, 0x66, 0x69, 0xd4, 0x34, 0x0b, 0x5b, 0xb5, 0x04, 0xe5, 0x9f, 0x3e,
- 0x1f, 0xee, 0x6e, 0xf7, 0xa9, 0xf0, 0xdd, 0x02, 0x33, 0x40, 0xa0, 0x46,
- 0x7b, 0xd7, 0x13, 0xa6, 0x37, 0xbf, 0x26, 0x1b, 0x6a, 0x55, 0x1d, 0x6a,
- 0xf2, 0xb7, 0x48, 0x30, 0x58, 0x23, 0xad, 0xc2, 0xe9, 0xd4, 0xe6, 0x6e,
- 0xcd, 0xfb, 0xa8, 0x0f, 0x00, 0x6f, 0x49, 0xd7, 0x5b, 0x2a, 0x3e, 0x14,
- 0x57, 0xe8, 0xd2, 0x27, 0x0e, 0x55, 0x0d, 0xcc, 0x55, 0xb9, 0x14, 0x46,
- 0x5c, 0x38, 0x90, 0x23, 0xbe, 0x15, 0x47, 0xbe, 0xa9, 0xc4, 0xc7, 0xb0,
- 0xb6, 0xf9, 0x1b, 0x62, 0x14, 0x41, 0xe9, 0x54, 0x89, 0x47, 0x76, 0x0b,
- 0x79, 0x98, 0x98, 0x67, 0xb8, 0x7b, 0x72, 0xa7, 0x20, 0xa9, 0x64, 0xdd,
- 0xc0, 0xf1, 0xb1, 0xb5, 0x0e, 0x9c, 0x72, 0xa8, 0x0d, 0x87, 0xb1, 0x3a,
- 0xd4, 0xb7, 0x79, 0x76, 0xd7, 0x72, 0x0e, 0x49, 0xbf, 0xfa, 0x96, 0x8b,
- 0x98, 0x6d, 0x92, 0x5b, 0x9a, 0x21, 0xd3, 0xe4, 0xb8, 0xb4, 0x35, 0x16,
- 0xd7, 0x1c, 0x64, 0xff, 0x69, 0x6f, 0x9a, 0x3f, 0xf2, 0x34, 0xd7, 0x31,
- 0xf0, 0x3c, 0xb3, 0x8f, 0x39, 0xea, 0xd4, 0x3e, 0x29, 0xe8, 0xd5, 0x7d,
- 0x02, 0x8e, 0x5c, 0xa7, 0xb8, 0x40, 0xae, 0x30, 0x58, 0x2b, 0xaf, 0x99,
- 0xfc, 0x8b, 0xf3, 0xae, 0x43, 0xed, 0x97, 0x3f, 0xd3, 0x3e, 0xf3, 0xe2,
- 0xb7, 0xb1, 0x85, 0x3f, 0xab, 0x72, 0x42, 0xa6, 0x11, 0x2e, 0x59, 0xe5,
- 0xfc, 0x84, 0x65, 0x10, 0x09, 0xcf, 0xc8, 0x8a, 0x78, 0x24, 0xc1, 0x5e,
- 0x34, 0xc1, 0x31, 0x37, 0x27, 0x3a, 0xc0, 0x61, 0x34, 0x5d, 0x58, 0xd7,
- 0xd5, 0x1b, 0x53, 0x6b, 0x24, 0xe3, 0x7b, 0xa5, 0xcf, 0x17, 0xef, 0x80,
- 0x23, 0x35, 0x0b, 0xe8, 0x37, 0x2d, 0x98, 0xdf, 0x11, 0x0e, 0x38, 0x3f,
- 0x0b, 0xd3, 0xb7, 0x60, 0x64, 0xd2, 0x78, 0xed, 0xf3, 0xd1, 0x05, 0xdc,
- 0xac, 0x5e, 0xa1, 0xd3, 0x8c, 0x52, 0x18, 0x88, 0xde, 0x3a, 0xba, 0xc4,
- 0x6c, 0x82, 0x73, 0x3e, 0xa0, 0xd9, 0xce, 0xe5, 0x92, 0x5c, 0xf3, 0x38,
- 0xfb, 0x92, 0xce, 0x23, 0x19, 0x3c, 0xdd, 0x34, 0x4f, 0xcb, 0xe8, 0x42,
- 0xb3, 0x3f, 0xbc, 0x49, 0x3f, 0x7d, 0x1a, 0xd6, 0xd9, 0x8e, 0xd9, 0xb5,
- 0xf5, 0x4e, 0x5d, 0xcf, 0xe8, 0xa3, 0x35, 0x98, 0x29, 0x56, 0x5f, 0x0f,
- 0x6c, 0xbf, 0xea, 0xfc, 0x8a, 0x30, 0x9e, 0xa4, 0xf4, 0x6a, 0x4b, 0xd8,
- 0xba, 0x32, 0x24, 0xcc, 0xc5, 0xdc, 0x05, 0x56, 0x30, 0xbb, 0x1b, 0xd2,
- 0x80, 0xfd, 0xd4, 0x04, 0x16, 0x0d, 0x2e, 0x80, 0x65, 0xdb, 0x71, 0xb4,
- 0x95, 0xc4, 0xe7, 0x56, 0xad, 0xc2, 0xc1, 0xc9, 0x59, 0xf5, 0x20, 0x09,
- 0x66, 0x52, 0x2c, 0x5c, 0xcc, 0xdc, 0x0f, 0x85, 0x4b, 0x3a, 0x9e, 0xb0,
- 0xca, 0x4f, 0xc5, 0x39, 0x23, 0xe9, 0xf0, 0xab, 0x0c, 0x69, 0x6f, 0x68,
- 0x04, 0xac, 0x3b, 0xd8, 0xb3, 0x73, 0x7a, 0x77, 0x77, 0x37, 0x5c, 0x67,
- 0x49, 0xff, 0xc3, 0x49, 0x3d, 0xed, 0xe6, 0xce, 0xcc, 0xae, 0x3d, 0xcd,
- 0x8b, 0xe5, 0xa7, 0xc4, 0xcb, 0x7e, 0xb5, 0xbc, 0xdb, 0xea, 0x2a, 0x4e,
- 0xbe, 0xbf, 0x78, 0x63, 0x8b, 0x7e, 0x69, 0xce, 0x21, 0xf9, 0x22, 0xea,
- 0xd0, 0x6b, 0x9a, 0xe5, 0x9c, 0x93, 0x4c, 0xcc, 0x6c, 0x47, 0x87, 0xe7,
- 0x1f, 0xde, 0x1d, 0x5f, 0x7e, 0xb8, 0x38, 0xfc, 0x81, 0xa6, 0x90, 0x83,
- 0x80, 0x55, 0x0a, 0xf2, 0xff, 0xaa, 0x2c, 0xa9, 0xf4, 0xc0, 0x5b, 0x60,
- 0xac, 0xf3, 0x02, 0x89, 0xa7, 0x31, 0x7a, 0x6c, 0x9b, 0x4f, 0xaf, 0xfd,
- 0x34, 0x7d, 0x39, 0x48, 0x5a, 0xf3, 0xf5, 0xd1, 0x58, 0x0e, 0xd9, 0x6c,
- 0x58, 0x56, 0xd7, 0xb4, 0x0b, 0x77, 0x5e, 0x8b, 0xfc, 0x8c, 0x36, 0xb7,
- 0x53, 0x64, 0x0d, 0x81, 0xa7, 0x88, 0x9e, 0xe1, 0xb6, 0xba, 0xa2, 0x5c,
- 0xce, 0x75, 0x25, 0x33, 0xfd, 0x4a, 0x12, 0xde, 0xd6, 0x7c, 0x0a, 0x01,
- 0xb8, 0xb8, 0x7d, 0xba, 0xc6, 0x18, 0x68, 0x5a, 0xfa, 0x13, 0x1d, 0xb0,
- 0xd9, 0x2d, 0x6f, 0x2d, 0x44, 0x31, 0xfc, 0x72, 0x24, 0x0c, 0x65, 0x9f,
- 0xdd, 0xf7, 0x23, 0xd9, 0x62, 0x20, 0xae, 0x2c, 0x6d, 0x6e, 0x1d, 0xd0,
- 0xc0, 0x54, 0x0a, 0x63, 0x7d, 0x09, 0x0c, 0xd5, 0x83, 0xba, 0x66, 0x47,
- 0x8b, 0x9a, 0xda, 0xd7, 0x9c, 0x9e, 0x87, 0xba, 0x24, 0x15, 0xc7, 0xf0,
- 0xc6, 0xfc, 0x5c, 0xc6, 0xfc, 0xfc, 0x1f, 0x1a, 0xf3, 0xf3, 0x7f, 0x60,
- 0xcc, 0x4f, 0xff, 0xe9, 0x63, 0xfe, 0x2b, 0x8d, 0xf9, 0xaf, 0xcb, 0xe2,
- 0xe3, 0xc0, 0xf4, 0x97, 0x6e, 0x61, 0x29, 0x30, 0x50, 0xc7, 0x55, 0xe6,
- 0x16, 0xa7, 0x35, 0x39, 0x9a, 0x6c, 0x5d, 0xdc, 0x89, 0x5f, 0x2f, 0x21,
- 0x95, 0xfc, 0x16, 0x0e, 0x3a, 0xad, 0xac, 0x02, 0x98, 0xb4, 0x4a, 0xb3,
- 0x53, 0x26, 0xed, 0x34, 0xaf, 0x27, 0x64, 0xdf, 0x90, 0xc3, 0xa4, 0x27,
- 0x3d, 0xd2, 0xa6, 0x7b, 0x43, 0x57, 0xce, 0x3d, 0xe0, 0x40, 0xa9, 0xcd,
- 0xed, 0x42, 0xa6, 0x35, 0x4e, 0xa5, 0x8d, 0xcb, 0xb8, 0x2a, 0x74, 0x60,
- 0x6e, 0xa1, 0xec, 0x78, 0x6d, 0x94, 0x3d, 0xd5, 0xe4, 0x85, 0x0c, 0x65,
- 0xc6, 0xe5, 0xfd, 0x82, 0x9a, 0x4b, 0xb4, 0xec, 0x77, 0x6d, 0x2b, 0x86,
- 0xda, 0x0e, 0x26, 0x9d, 0xce, 0x89, 0xeb, 0xed, 0x26, 0xbb, 0xdf, 0x0c,
- 0x14, 0x86, 0xc9, 0xac, 0x24, 0x79, 0x43, 0x7a, 0xdd, 0x1a, 0x4d, 0x64,
- 0xec, 0xaa, 0x3b, 0xf0, 0x7d, 0xd1, 0x29, 0xf7, 0xe0, 0xdf, 0x1b, 0x1f,
- 0xb3, 0x6c, 0x91, 0xce, 0x90, 0x87, 0x48, 0xd1, 0xb8, 0x55, 0x9c, 0xf4,
- 0xad, 0xf0, 0xb1, 0x82, 0xab, 0xf0, 0x46, 0xda, 0xbe, 0xd6, 0x21, 0xe9,
- 0xb4, 0x6a, 0xf1, 0x1c, 0x40, 0xc3, 0x7c, 0x1a, 0xa4, 0x66, 0x2b, 0x21,
- 0x95, 0x06, 0xe4, 0x6c, 0x2f, 0x48, 0x3b, 0x19, 0x4b, 0x52, 0xac, 0xfd,
- 0x84, 0x72, 0x6c, 0xe4, 0xe6, 0xe1, 0xdb, 0x7c, 0xba, 0x0c, 0x6a, 0x88,
- 0x76, 0x5f, 0x47, 0xbe, 0x7d, 0x8b, 0x9e, 0x94, 0x97, 0x8f, 0x9e, 0x28,
- 0xed, 0xfd, 0x47, 0xea, 0x06, 0x6a, 0xbd, 0x04, 0x5b, 0x4a, 0x79, 0xba,
- 0x58, 0xbb, 0xbd, 0x3c, 0x3a, 0xff, 0xf0, 0xdd, 0xf1, 0xf1, 0xf9, 0xc9,
- 0xeb, 0xd3, 0x63, 0x39, 0x30, 0xf6, 0x47, 0xef, 0x2e, 0xbf, 0x3f, 0xd5,
- 0x92, 0x0c, 0xba, 0x17, 0x83, 0x0d, 0x2f, 0xdc, 0x9a, 0x2c, 0x94, 0xfb,
- 0x60, 0x9e, 0x2f, 0x9a, 0xe4, 0xf0, 0xe4, 0x47, 0xa3, 0xb5, 0x9e, 0x0f,
- 0xde, 0xff, 0x18, 0x50, 0xfe, 0x7a, 0x38, 0xbc, 0x95, 0xf5, 0x10, 0xcd,
- 0x36, 0x84, 0xed, 0xe8, 0xc6, 0x6e, 0xb3, 0x15, 0x7e, 0xdf, 0x6b, 0x90,
- 0x8a, 0xb9, 0x15, 0x56, 0x61, 0xe0, 0x17, 0x95, 0x56, 0x9b, 0xd5, 0x58,
- 0xc8, 0xaf, 0xe7, 0xbb, 0x5a, 0xb1, 0x60, 0xad, 0x0f, 0xed, 0xf3, 0xb6,
- 0xcd, 0xf8, 0x31, 0xbb, 0x07, 0xbf, 0x4d, 0xf2, 0x92, 0xfe, 0x1b, 0xaf,
- 0x28, 0x71, 0x5e, 0xe5, 0xb7, 0xa4, 0xff, 0x99, 0x67, 0x39, 0xc8, 0x40,
- 0x8f, 0x0e, 0x6d, 0x7d, 0x0d, 0x09, 0x74, 0x50, 0x23, 0x88, 0x85, 0xa2,
- 0x51, 0x78, 0x34, 0x82, 0x60, 0x59, 0x3e, 0x65, 0x5f, 0x07, 0xb7, 0x87,
- 0x06, 0xcd, 0xf4, 0x0c, 0x93, 0xd7, 0xc7, 0x17, 0xfd, 0xe4, 0xfc, 0xf8,
- 0x2d, 0x83, 0xf9, 0x8e, 0xdf, 0x7d, 0xc3, 0xb4, 0x2a, 0x5a, 0x49, 0x02,
- 0xb1, 0xb9, 0x10, 0xdd, 0xe7, 0xcd, 0x89, 0x79, 0x17, 0x2c, 0x27, 0x75,
- 0x6d, 0x6e, 0xd7, 0xdf, 0x31, 0xdb, 0x98, 0xc7, 0xf6, 0xd2, 0xfc, 0x27,
- 0x36, 0x55, 0xc6, 0x8e, 0xf8, 0x36, 0x32, 0x5d, 0xa2, 0x98, 0xd9, 0x68,
- 0xae, 0x18, 0x05, 0x34, 0x1b, 0x3c, 0x63, 0x66, 0x42, 0xc2, 0xb8, 0xa2,
- 0x4e, 0x10, 0x5c, 0x3f, 0xc8, 0xb7, 0xe6, 0x22, 0x47, 0x12, 0x15, 0x22,
- 0x2b, 0xd6, 0x7c, 0xae, 0x4f, 0xfb, 0x92, 0xae, 0x24, 0x6f, 0x32, 0x62,
- 0xa9, 0x24, 0x55, 0x2e, 0x50, 0x6b, 0x8f, 0xb3, 0xc3, 0xcc, 0x75, 0x3e,
- 0x45, 0xae, 0x9a, 0xf9, 0x46, 0x59, 0x51, 0x34, 0xf1, 0xf7, 0x9c, 0xb8,
- 0x6a, 0x9c, 0xbc, 0x9c, 0x99, 0x17, 0x67, 0x71, 0x0c, 0x29, 0x17, 0x5f,
- 0x76, 0x45, 0xa4, 0x3b, 0x34, 0xd4, 0x52, 0x65, 0x90, 0x6d, 0x5e, 0x34,
- 0xc3, 0x41, 0xd6, 0x10, 0x5b, 0x05, 0xf5, 0x59, 0xec, 0xad, 0x20, 0xd3,
- 0x74, 0x13, 0xa0, 0xbb, 0xcd, 0x7e, 0xb2, 0x49, 0x5c, 0xdb, 0xf4, 0x27,
- 0xca, 0x0e, 0x4a, 0x89, 0xed, 0xcd, 0x7e, 0x58, 0x3f, 0x74, 0x53, 0xb6,
- 0xeb, 0xa6, 0xd9, 0xf1, 0xdc, 0x1a, 0x2d, 0x21, 0xf2, 0x77, 0xa4, 0x1f,
- 0xec, 0x42, 0xcc, 0x6b, 0x89, 0xa0, 0x03, 0xc1, 0x24, 0x80, 0xfd, 0x3a,
- 0xe0, 0x84, 0xb6, 0xcd, 0xb5, 0x93, 0x81, 0x57, 0xe5, 0xb5, 0xff, 0xc6,
- 0xb2, 0x84, 0x97, 0xe1, 0x97, 0xd6, 0xa2, 0x72, 0x3e, 0xae, 0x4e, 0x73,
- 0xba, 0x58, 0xfe, 0x3a, 0xeb, 0xeb, 0xd1, 0xd2, 0x3c, 0x87, 0x9c, 0xf1,
- 0xe0, 0x0f, 0x09, 0xdc, 0xa1, 0x04, 0xcc, 0x9b, 0xb2, 0xea, 0x2e, 0x28,
- 0x6e, 0xbf, 0x9c, 0x86, 0x5c, 0x02, 0x21, 0x10, 0x82, 0x75, 0x10, 0x50,
- 0xa9, 0x6a, 0xb7, 0x07, 0x6c, 0x62, 0x1d, 0x25, 0x62, 0x33, 0x02, 0xe1,
- 0x77, 0x57, 0x11, 0xdd, 0x4f, 0xa1, 0x91, 0x32, 0x16, 0x62, 0xf1, 0xb4,
- 0x70, 0x65, 0x04, 0x32, 0x8b, 0x34, 0x93, 0x3a, 0x0f, 0x0a, 0x62, 0xa8,
- 0xb4, 0x5b, 0x03, 0x09, 0x00, 0xa9, 0x55, 0x47, 0xef, 0xfd, 0xcb, 0x3f,
- 0xb8, 0x72, 0x52, 0x9e, 0x83, 0x73, 0x45, 0x23, 0x99, 0x3f, 0x8f, 0x66,
- 0x3f, 0xe8, 0xe0, 0x55, 0x41, 0x23, 0x32, 0x80, 0xe0, 0x78, 0x69, 0x64,
- 0x44, 0x16, 0xa4, 0x7f, 0xb7, 0xcb, 0x24, 0xcd, 0xa5, 0x08, 0x8e, 0x47,
- 0x00, 0x83, 0x77, 0x6d, 0x8d, 0x2e, 0xdf, 0xe7, 0x3a, 0x88, 0x14, 0xf7,
- 0x04, 0x79, 0xa9, 0xcb, 0x38, 0xc0, 0xb1, 0x05, 0xb3, 0x85, 0xa6, 0xed,
- 0x2a, 0xb8, 0x8a, 0x27, 0x84, 0x1c, 0x86, 0x02, 0xdb, 0x81, 0xfe, 0x97,
- 0x06, 0x86, 0xaa, 0xe9, 0xbe, 0xf2, 0x81, 0x52, 0x63, 0x04, 0x26, 0x99,
- 0xb2, 0xf7, 0x0a, 0x4b, 0x62, 0xfb, 0x89, 0xb2, 0xb5, 0xdc, 0x2f, 0xfc,
- 0x82, 0x4e, 0x74, 0xa0, 0xcf, 0x8d, 0x4d, 0x13, 0x77, 0xf9, 0x14, 0x75,
- 0xc2, 0x05, 0x44, 0x43, 0xc9, 0xd5, 0x92, 0xe7, 0x42, 0x9e, 0xc4, 0x3c,
- 0x84, 0x6f, 0x8e, 0xe3, 0x5e, 0x16, 0x5e, 0x31, 0xcc, 0x69, 0xc2, 0x19,
- 0xdf, 0xe4, 0x4c, 0xc1, 0x32, 0xc0, 0xf1, 0xb8, 0xc3, 0xd7, 0xb1, 0xcd,
- 0x75, 0x34, 0x56, 0xff, 0xf2, 0x8a, 0x78, 0x87, 0x43, 0x37, 0xaa, 0xa2,
- 0x2c, 0x87, 0xf6, 0x88, 0x30, 0x19, 0xf9, 0x47, 0x26, 0x76, 0xfc, 0x6e,
- 0x53, 0xeb, 0xec, 0x10, 0x95, 0x07, 0x58, 0x2b, 0x19, 0x1c, 0x65, 0x4e,
- 0xe8, 0xc7, 0x7c, 0x56, 0x46, 0xfd, 0x9e, 0x46, 0xb4, 0xcd, 0xf9, 0xf5,
- 0xb7, 0x9b, 0xea, 0xcc, 0xa2, 0x0c, 0xa0, 0xeb, 0x54, 0x7e, 0xcd, 0xd9,
- 0x7f, 0x9b, 0xd7, 0xfc, 0xd0, 0x37, 0xfa, 0x50, 0x98, 0xe2, 0x40, 0xae,
- 0x55, 0x76, 0xa5, 0x6a, 0x0c, 0xbe, 0x3e, 0x48, 0xf6, 0x77, 0x77, 0xbf,
- 0xeb, 0x27, 0x4f, 0xb8, 0x70, 0xfa, 0xde, 0x37, 0xd1, 0x1c, 0x59, 0xc6,
- 0x98, 0x90, 0x8a, 0xac, 0xd1, 0xc1, 0xc1, 0x9f, 0x49, 0x33, 0xc6, 0x9c,
- 0xf1, 0xce, 0xb4, 0x90, 0x46, 0x06, 0xce, 0x3a, 0xcc, 0x6f, 0xf7, 0x02,
- 0xa3, 0xa5, 0x5a, 0x90, 0x26, 0x37, 0xcd, 0x94, 0xe4, 0x6e, 0x0e, 0x17,
- 0x14, 0x45, 0x58, 0x17, 0x92, 0xe2, 0x45, 0x5b, 0x75, 0x60, 0x89, 0x73,
- 0xea, 0x19, 0x3d, 0x00, 0xc2, 0xf0, 0x32, 0x00, 0x64, 0xcd, 0x16, 0xd0,
- 0x62, 0x2d, 0xa7, 0xbf, 0xd7, 0x25, 0x82, 0x67, 0x4f, 0x12, 0x31, 0xc4,
+ 0xfe, 0xe2, 0x74, 0x63, 0x63, 0xf4, 0x97, 0x77, 0x67, 0xe7, 0xa3, 0x93,
+ 0x51, 0xeb, 0xb1, 0x1f, 0xcb, 0x45, 0x93, 0x97, 0x45, 0xfd, 0x73, 0xf2,
+ 0xa3, 0x79, 0x68, 0x38, 0x1c, 0xfe, 0xbc, 0xb1, 0xf1, 0xfa, 0x78, 0x74,
+ 0x74, 0x71, 0x72, 0x7e, 0x79, 0x72, 0xf6, 0xae, 0xf5, 0x6c, 0x92, 0xd7,
+ 0x89, 0x69, 0xac, 0x29, 0xcb, 0x99, 0xf9, 0x8f, 0x6b, 0x7f, 0x9a, 0x36,
+ 0x69, 0x72, 0x55, 0x95, 0xf3, 0xa4, 0xac, 0xe8, 0x17, 0x69, 0x52, 0x67,
+ 0xd5, 0x6d, 0x56, 0xf5, 0x93, 0x65, 0x9d, 0x17, 0xd7, 0x49, 0x59, 0x64,
+ 0x49, 0x79, 0x95, 0x34, 0x37, 0x99, 0x36, 0x57, 0x2f, 0x17, 0x8b, 0xb2,
+ 0x6a, 0xb2, 0x69, 0xb2, 0xa8, 0xca, 0xa6, 0x9c, 0x94, 0xb3, 0x3a, 0xd9,
+ 0x7a, 0x7d, 0x72, 0x74, 0xd9, 0x4f, 0xde, 0x9c, 0x9c, 0x1e, 0x9b, 0xff,
+ 0x5e, 0x9e, 0xe3, 0x3f, 0xa3, 0x7e, 0xf2, 0xf5, 0xd9, 0xf9, 0x37, 0xc7,
+ 0x17, 0xfd, 0xe4, 0x9b, 0x4b, 0xfa, 0x19, 0xfd, 0xd7, 0xfc, 0x30, 0x39,
+ 0x79, 0x7b, 0x78, 0xde, 0xd7, 0xe6, 0xe8, 0x1f, 0xf4, 0xc3, 0xd3, 0xd7,
+ 0xe6, 0x87, 0xfc, 0x07, 0xfd, 0xf3, 0xfc, 0xec, 0xfc, 0x89, 0xfc, 0x41,
+ 0xff, 0xbc, 0xb8, 0x7c, 0x6b, 0x7e, 0x7b, 0x71, 0x39, 0x32, 0xff, 0x1d,
+ 0x1d, 0xd1, 0x7f, 0xf0, 0x95, 0xd1, 0xdb, 0xaf, 0xf0, 0x9f, 0x91, 0x6d,
+ 0x6e, 0xf4, 0x96, 0x7f, 0x8e, 0x2f, 0x5d, 0x1e, 0x9f, 0xbe, 0x3b, 0xbe,
+ 0x4c, 0xd2, 0x62, 0x9a, 0x5c, 0x9a, 0xe7, 0xb7, 0x87, 0xc9, 0xe5, 0x4d,
+ 0x96, 0x4c, 0xca, 0xf9, 0x9c, 0x7e, 0x64, 0x66, 0x64, 0x9a, 0xd5, 0xf9,
+ 0x75, 0x61, 0x86, 0x62, 0x46, 0x7e, 0x57, 0x56, 0x1f, 0x93, 0xe4, 0x2e,
+ 0x6f, 0x6e, 0xca, 0x65, 0xa3, 0xcd, 0x2d, 0xcd, 0x6c, 0x24, 0x79, 0xd1,
+ 0x64, 0x55, 0x3a, 0xa1, 0xb9, 0x1e, 0x6e, 0xb4, 0x66, 0xb5, 0xbc, 0x32,
+ 0x73, 0x58, 0x9b, 0x49, 0x1b, 0x2f, 0xeb, 0x59, 0x99, 0x4e, 0x69, 0xaa,
+ 0xcc, 0x2b, 0x57, 0x4b, 0x33, 0xc9, 0x55, 0x3e, 0xf9, 0x58, 0x27, 0xb3,
+ 0xfc, 0x63, 0x46, 0x13, 0xf5, 0xe9, 0x5e, 0x27, 0xae, 0xcf, 0x8d, 0xa6,
+ 0x4b, 0x33, 0xa7, 0xc5, 0x40, 0x9b, 0x6b, 0xf2, 0x49, 0x4a, 0x1f, 0xc0,
+ 0xcc, 0x25, 0xcb, 0x05, 0xb5, 0xc6, 0x33, 0x96, 0x2c, 0xca, 0xda, 0xbc,
+ 0x34, 0x1a, 0x9d, 0x9a, 0x9e, 0x17, 0x45, 0x86, 0x7e, 0xd4, 0x7d, 0xf3,
+ 0x8f, 0xf2, 0x63, 0x9e, 0x99, 0xbf, 0x5c, 0xe5, 0xb3, 0x2c, 0xe1, 0x15,
+ 0xb5, 0xcd, 0xd1, 0xd2, 0x26, 0x55, 0x56, 0x2f, 0xe7, 0x99, 0x99, 0xbd,
+ 0xb7, 0x59, 0x93, 0xce, 0xf2, 0xe2, 0xa3, 0xf9, 0x2b, 0x0d, 0x7c, 0x5e,
+ 0x56, 0xd9, 0x30, 0x39, 0xac, 0x93, 0xfb, 0x72, 0x69, 0x06, 0x3c, 0x9b,
+ 0x99, 0x35, 0xcf, 0x92, 0x71, 0x36, 0x2b, 0xef, 0xfa, 0xb4, 0xd2, 0x49,
+ 0xb1, 0x9c, 0x8f, 0x4d, 0x03, 0xe5, 0x95, 0x6b, 0x2e, 0x6d, 0x96, 0xa6,
+ 0x39, 0x7e, 0x7a, 0x9e, 0x9a, 0x31, 0x99, 0x77, 0xab, 0xe4, 0x26, 0x33,
+ 0x63, 0xae, 0x17, 0x79, 0xf1, 0x2f, 0xed, 0x79, 0x31, 0x53, 0xbb, 0x28,
+ 0xef, 0xb2, 0xca, 0xcc, 0xec, 0xf8, 0x3e, 0x31, 0x93, 0x30, 0xe6, 0x4d,
+ 0x78, 0x65, 0x36, 0x59, 0x92, 0x9a, 0x26, 0xec, 0x06, 0x1c, 0x54, 0xd9,
+ 0x2c, 0xa5, 0xcd, 0x64, 0xbf, 0x31, 0x34, 0x8b, 0x98, 0xd9, 0xdd, 0x26,
+ 0xaf, 0x6e, 0x3d, 0xd9, 0xc6, 0xcb, 0x53, 0x33, 0x92, 0x7c, 0x56, 0x9b,
+ 0x65, 0xa0, 0x63, 0x21, 0xcf, 0xd0, 0xa2, 0xd2, 0x31, 0x31, 0x7b, 0xf3,
+ 0xbe, 0x68, 0xd2, 0x4f, 0xf8, 0xbc, 0xec, 0xcd, 0xc1, 0x34, 0x5b, 0x64,
+ 0xc5, 0x34, 0x2b, 0x9a, 0x61, 0xf2, 0x97, 0x72, 0xb9, 0x69, 0xbe, 0x7d,
+ 0x95, 0x9b, 0x39, 0x48, 0xa5, 0x29, 0xf3, 0x65, 0xb3, 0x09, 0x26, 0x55,
+ 0xbe, 0xf0, 0x96, 0xa2, 0x2c, 0xcc, 0x9a, 0x27, 0x17, 0x6f, 0x8e, 0x92,
+ 0x27, 0x2f, 0x3e, 0x7f, 0xee, 0xd6, 0xdc, 0x34, 0x90, 0x4c, 0xd2, 0xc2,
+ 0x8c, 0x38, 0x9b, 0xe4, 0x57, 0xf7, 0xc9, 0x7c, 0x39, 0x6b, 0xf2, 0x85,
+ 0x99, 0x7d, 0xf3, 0xf1, 0x9a, 0x0e, 0xd0, 0x22, 0xad, 0x9a, 0x9a, 0x36,
+ 0x01, 0x7e, 0x80, 0xb1, 0xdf, 0x55, 0x79, 0x43, 0x07, 0x09, 0xbf, 0x33,
+ 0x3d, 0xcc, 0x9a, 0x5a, 0x9b, 0xa3, 0xbd, 0x66, 0xbe, 0x33, 0x36, 0x7b,
+ 0xcb, 0x4c, 0x6d, 0x5a, 0x9b, 0x8f, 0x1e, 0x6c, 0x38, 0x19, 0x72, 0xd3,
+ 0x34, 0x8b, 0x83, 0x9d, 0x9d, 0x3a, 0x6f, 0xb2, 0xe1, 0x7f, 0x9a, 0x73,
+ 0xd8, 0x6f, 0xee, 0xca, 0x7e, 0x73, 0x53, 0x65, 0xd9, 0x7f, 0x0d, 0xcd,
+ 0x1e, 0xb6, 0x4f, 0x9a, 0xef, 0xde, 0x4b, 0xc7, 0xae, 0xb3, 0xc6, 0x7c,
+ 0xe1, 0x6f, 0xcb, 0xac, 0xa0, 0x16, 0x4d, 0x3f, 0xd2, 0xd9, 0xe2, 0x26,
+ 0x35, 0xcb, 0x99, 0x99, 0xdd, 0x48, 0x27, 0xdb, 0x6c, 0x18, 0xea, 0x15,
+ 0x9f, 0xed, 0x1f, 0x7f, 0x0e, 0x3f, 0x7a, 0x85, 0x6f, 0x9a, 0xff, 0x0e,
+ 0xb3, 0x4f, 0xe9, 0xdc, 0x8c, 0x8d, 0x3e, 0xb5, 0x43, 0x5b, 0xec, 0xc7,
+ 0xbd, 0xc1, 0xde, 0xee, 0xee, 0xcf, 0xc3, 0xe6, 0x53, 0xf3, 0xb8, 0xe7,
+ 0x77, 0x77, 0xdd, 0x1b, 0xf4, 0xe8, 0x16, 0x8d, 0x37, 0x99, 0x99, 0x2d,
+ 0x43, 0x1f, 0xff, 0x7b, 0x56, 0x95, 0xf5, 0xf6, 0xe3, 0x5a, 0x4a, 0x07,
+ 0x7f, 0x6f, 0x7f, 0xf7, 0x5d, 0x56, 0x63, 0xcf, 0xb8, 0xb1, 0x26, 0x69,
+ 0x65, 0xf6, 0x6d, 0xd9, 0x38, 0xf1, 0xd4, 0x37, 0x87, 0xb2, 0xb1, 0x33,
+ 0x63, 0xce, 0x9c, 0x79, 0xda, 0x08, 0xb6, 0x74, 0x46, 0x32, 0xad, 0x4e,
+ 0x8a, 0xec, 0x93, 0x3d, 0xe5, 0xe6, 0xf4, 0x67, 0xe9, 0xe4, 0x26, 0x29,
+ 0xcd, 0xe6, 0xaf, 0x22, 0x4b, 0xe0, 0x77, 0x28, 0xad, 0x26, 0x37, 0xf9,
+ 0xad, 0x99, 0x8d, 0x17, 0x2f, 0x9e, 0x0f, 0xcc, 0x7f, 0x5e, 0xfc, 0xbc,
+ 0x73, 0x5b, 0xce, 0xcc, 0xe4, 0x3c, 0xfd, 0x79, 0x87, 0x96, 0xf8, 0x3f,
+ 0xd3, 0xfe, 0xb8, 0x3f, 0xf9, 0xaf, 0xe1, 0x4d, 0x33, 0x9f, 0xad, 0xdc,
+ 0x38, 0x69, 0x61, 0xfe, 0x6f, 0x5e, 0x2e, 0x8b, 0xc6, 0x6e, 0x16, 0xb3,
+ 0xe7, 0x1a, 0x4f, 0x38, 0x99, 0xe3, 0x6a, 0xce, 0x28, 0x6d, 0x6d, 0xda,
+ 0x43, 0x74, 0xea, 0xcc, 0x01, 0x75, 0xc7, 0xb1, 0x99, 0xdc, 0x98, 0xf1,
+ 0x9b, 0xcd, 0x93, 0xca, 0x1c, 0x34, 0x79, 0x4a, 0x07, 0xd3, 0xc8, 0x07,
+ 0x92, 0x57, 0x68, 0x8a, 0x3f, 0x96, 0x9b, 0xe7, 0xca, 0x6a, 0x9a, 0x55,
+ 0xed, 0x6d, 0x8c, 0xee, 0xb8, 0xfe, 0x24, 0x66, 0x3e, 0x17, 0xe6, 0xe3,
+ 0x4b, 0x12, 0x75, 0x38, 0x69, 0xd4, 0x82, 0x39, 0xa3, 0xd7, 0x66, 0xaa,
+ 0xcc, 0xf4, 0xd0, 0xc6, 0xa2, 0xd9, 0xbb, 0x4f, 0xde, 0x99, 0x35, 0x64,
+ 0xf9, 0xe0, 0xed, 0xbf, 0x59, 0xd6, 0x34, 0x0f, 0xce, 0x9c, 0xdb, 0x44,
+ 0x07, 0x7b, 0xc1, 0x3e, 0x5a, 0xf5, 0xbc, 0x59, 0xfa, 0x83, 0xfd, 0xf6,
+ 0xc3, 0xdf, 0x1b, 0xb9, 0xe9, 0x76, 0xb0, 0xf9, 0xfa, 0x7f, 0xfe, 0x97,
+ 0xb7, 0x11, 0xee, 0xe8, 0xb7, 0x79, 0x71, 0x5b, 0x7e, 0x34, 0x03, 0xc7,
+ 0xc5, 0x96, 0xb6, 0x26, 0x35, 0x21, 0xd1, 0x30, 0x5f, 0x34, 0xf6, 0xc6,
+ 0xa0, 0x1d, 0x62, 0x7e, 0x34, 0x4e, 0xc7, 0xb3, 0xfb, 0xe4, 0x26, 0xbd,
+ 0xcd, 0x68, 0xbc, 0x0b, 0xb3, 0x75, 0x68, 0x06, 0x8c, 0x24, 0x9f, 0x41,
+ 0xb4, 0xc8, 0x59, 0x9d, 0x96, 0xcb, 0xb1, 0x39, 0xef, 0x7f, 0x5b, 0x96,
+ 0x0d, 0x4f, 0x4c, 0x7a, 0x5b, 0xe6, 0xd3, 0xd6, 0xf5, 0x78, 0x93, 0x91,
+ 0x8c, 0xa1, 0x0f, 0xe3, 0xde, 0x30, 0x32, 0x8e, 0x7a, 0x8a, 0xbd, 0x9f,
+ 0x37, 0x74, 0x03, 0x19, 0xe9, 0x94, 0xce, 0xea, 0x32, 0x49, 0xae, 0x4b,
+ 0xda, 0xb8, 0x90, 0x89, 0xd8, 0x79, 0x66, 0x51, 0x6e, 0x52, 0xba, 0x68,
+ 0xcc, 0x9d, 0x62, 0xb7, 0x66, 0x95, 0x41, 0x3c, 0x62, 0xa5, 0xd2, 0x59,
+ 0x9f, 0x2f, 0x14, 0x7a, 0x47, 0xa6, 0x2a, 0xd9, 0xfc, 0xd7, 0xcd, 0x7e,
+ 0xb2, 0xf9, 0xef, 0x9b, 0x10, 0xed, 0x9b, 0xff, 0xb6, 0xe9, 0xd6, 0xd9,
+ 0x68, 0x48, 0xb7, 0xf9, 0x94, 0xee, 0x06, 0x33, 0x92, 0x93, 0xf3, 0xdb,
+ 0xe7, 0xc9, 0xdf, 0xe9, 0x3a, 0x37, 0xe2, 0x2f, 0xfb, 0xa4, 0x9b, 0x44,
+ 0xc7, 0x66, 0xde, 0x4e, 0x8c, 0x1c, 0x4c, 0x17, 0x74, 0xaf, 0x67, 0xd5,
+ 0xc4, 0xec, 0xa8, 0xf4, 0xda, 0xec, 0x21, 0x73, 0x3d, 0x6a, 0x73, 0xd4,
+ 0x3e, 0xbd, 0xc2, 0xc3, 0x32, 0x32, 0x2b, 0x29, 0xd2, 0xb9, 0xd9, 0xa4,
+ 0xa7, 0xd4, 0xa3, 0xbc, 0x08, 0x17, 0xf3, 0xc7, 0xab, 0xec, 0xf3, 0xdd,
+ 0x83, 0x83, 0x27, 0x7f, 0xdc, 0x7f, 0x96, 0x35, 0x37, 0xbb, 0x3f, 0xef,
+ 0xd8, 0x47, 0x4e, 0xae, 0x30, 0xed, 0xba, 0xfd, 0xb4, 0x13, 0xe6, 0xe2,
+ 0xb5, 0x82, 0xdb, 0xbc, 0x6f, 0xfe, 0x9e, 0x5d, 0xe5, 0x9f, 0xfa, 0xaa,
+ 0xc2, 0xf0, 0x31, 0x48, 0xcd, 0x56, 0x33, 0xeb, 0x47, 0xa7, 0x56, 0x9b,
+ 0xbb, 0x5e, 0x66, 0xb5, 0x99, 0xc9, 0xbb, 0x9b, 0xb4, 0x49, 0x6c, 0x03,
+ 0xbc, 0xb2, 0xf3, 0xfc, 0xfa, 0xa6, 0x49, 0xee, 0x52, 0x92, 0xff, 0x27,
+ 0x0d, 0x37, 0x41, 0x17, 0xaf, 0x91, 0xfa, 0x57, 0xa9, 0x11, 0xdf, 0xb4,
+ 0x86, 0xb8, 0x65, 0xc7, 0xee, 0xd2, 0x6f, 0xcc, 0x36, 0xe7, 0x05, 0x71,
+ 0x1a, 0xce, 0x38, 0xad, 0xe9, 0x20, 0x15, 0xe6, 0xbc, 0x36, 0xe6, 0xda,
+ 0x5e, 0xd2, 0xbf, 0x6e, 0xcc, 0xc5, 0x8c, 0x39, 0x90, 0x8e, 0xe2, 0xee,
+ 0x7a, 0x43, 0xcb, 0x49, 0x6b, 0x63, 0xef, 0x13, 0xb3, 0x48, 0x7d, 0x59,
+ 0x66, 0xfb, 0x46, 0x6d, 0x0e, 0x9c, 0x11, 0x16, 0x76, 0x67, 0xf4, 0x48,
+ 0xee, 0xf5, 0x78, 0x9c, 0xe8, 0x63, 0x5a, 0xd3, 0xdd, 0xcd, 0x37, 0xb4,
+ 0xe9, 0xbc, 0x37, 0x58, 0x33, 0x69, 0xe9, 0x47, 0xd2, 0x12, 0x3a, 0xba,
+ 0x08, 0x5e, 0x9b, 0x96, 0x66, 0x93, 0x99, 0xde, 0x1a, 0xf9, 0x48, 0x23,
+ 0x23, 0xa9, 0x87, 0x59, 0xc1, 0x26, 0x37, 0x6d, 0xd2, 0x0f, 0xf3, 0x86,
+ 0xc4, 0x3e, 0x14, 0x4b, 0xd3, 0x5f, 0x33, 0x29, 0xd0, 0x0d, 0x8d, 0xec,
+ 0xf4, 0xc6, 0x8f, 0x1b, 0xcb, 0x3c, 0x9b, 0xdc, 0x1a, 0xc5, 0xc1, 0xe8,
+ 0x88, 0x99, 0x7d, 0x0b, 0x57, 0xec, 0x84, 0xd4, 0x95, 0x99, 0x39, 0x2f,
+ 0x93, 0xb2, 0xaa, 0x48, 0x09, 0xa7, 0x15, 0x1c, 0xb3, 0x5c, 0x9b, 0x67,
+ 0xe6, 0x66, 0xf7, 0xa7, 0x33, 0xa7, 0x3b, 0xc6, 0xc8, 0x17, 0xa3, 0x2a,
+ 0x40, 0x82, 0x98, 0x2b, 0x1d, 0x62, 0x18, 0x03, 0x47, 0xef, 0xa8, 0xed,
+ 0xc9, 0x24, 0x5b, 0x34, 0x75, 0x6c, 0x4c, 0xba, 0xe0, 0xa6, 0x3b, 0x55,
+ 0x46, 0x33, 0xef, 0xeb, 0x41, 0x98, 0x57, 0x7b, 0x0f, 0x43, 0x15, 0x52,
+ 0xd5, 0xc2, 0xa8, 0x46, 0xb5, 0x9d, 0xb5, 0x06, 0x7b, 0xc3, 0x88, 0x31,
+ 0xcc, 0xf9, 0x9c, 0x3a, 0x4a, 0x0f, 0xd7, 0x7c, 0x52, 0x21, 0x2e, 0x69,
+ 0x21, 0x59, 0xf9, 0xe5, 0xef, 0xd2, 0x6d, 0x62, 0xe6, 0xd3, 0x36, 0x6e,
+ 0xbe, 0x6a, 0xd7, 0x94, 0x3e, 0x5f, 0x1b, 0xb3, 0xc1, 0x5c, 0xae, 0xd3,
+ 0xfa, 0xc6, 0xe8, 0x43, 0xb5, 0x9c, 0xec, 0x7c, 0x6e, 0xf6, 0xcc, 0x2d,
+ 0xad, 0xef, 0x22, 0xcb, 0xa6, 0xc3, 0xe4, 0xec, 0x8a, 0xa4, 0x6a, 0x65,
+ 0x3a, 0xdd, 0xe0, 0xd7, 0x24, 0xe8, 0xcd, 0xbc, 0x4d, 0xa1, 0x57, 0xdb,
+ 0xa3, 0xc5, 0x5d, 0xf1, 0x24, 0x36, 0xed, 0x34, 0x33, 0xd9, 0x09, 0x49,
+ 0xb9, 0x59, 0xfb, 0x56, 0xc0, 0x39, 0x34, 0xd2, 0x9b, 0xba, 0x37, 0xce,
+ 0x12, 0xec, 0xc4, 0x71, 0xd6, 0xdc, 0x65, 0x99, 0x6d, 0xae, 0xce, 0xcc,
+ 0x4d, 0x44, 0x8b, 0xc6, 0xca, 0x18, 0x84, 0x21, 0x4d, 0xed, 0xf9, 0xc5,
+ 0xd9, 0xd7, 0x17, 0xc7, 0xa3, 0x51, 0xf2, 0xf6, 0xf8, 0xf2, 0xf8, 0xa2,
+ 0x35, 0xd3, 0x45, 0x59, 0xcd, 0xb1, 0xa2, 0xd3, 0xbc, 0x5e, 0xcc, 0xd2,
+ 0x7b, 0x5a, 0x6a, 0x33, 0x92, 0xeb, 0x8a, 0x4e, 0xd6, 0x3c, 0xa3, 0x5b,
+ 0x61, 0xba, 0x84, 0x24, 0x4b, 0x4a, 0x23, 0x1f, 0x52, 0x51, 0x42, 0x49,
+ 0x98, 0x40, 0x73, 0x2d, 0xae, 0xdd, 0x4c, 0x1b, 0x89, 0x23, 0x97, 0x1b,
+ 0xdd, 0x6e, 0x76, 0x3d, 0x48, 0x1b, 0x84, 0xbd, 0xd1, 0x77, 0x3f, 0xe3,
+ 0x69, 0xaa, 0x31, 0x26, 0xb3, 0x67, 0xf3, 0x39, 0x84, 0x9d, 0xf9, 0xd3,
+ 0x29, 0x80, 0xd9, 0x95, 0xd1, 0x7e, 0xcd, 0x85, 0xc7, 0xca, 0x7b, 0xb7,
+ 0x4f, 0xda, 0x5b, 0xab, 0xb2, 0x9a, 0x6d, 0x48, 0xa2, 0x99, 0x1a, 0xe4,
+ 0xae, 0xf0, 0x17, 0xac, 0x10, 0x33, 0x6a, 0x02, 0xc9, 0x3e, 0x79, 0x6c,
+ 0x41, 0x5d, 0xc8, 0xcc, 0xca, 0x4e, 0xb9, 0xf9, 0x7a, 0x79, 0x85, 0x83,
+ 0x9c, 0x6c, 0x19, 0x65, 0xf9, 0xad, 0x31, 0x60, 0x8c, 0x11, 0xd1, 0x4f,
+ 0xce, 0xb7, 0xf1, 0xde, 0xde, 0xee, 0xfe, 0x53, 0x16, 0x04, 0x43, 0x6d,
+ 0xee, 0x8d, 0x27, 0x88, 0xf7, 0x3e, 0xd2, 0xf2, 0xf2, 0x43, 0xd4, 0xf8,
+ 0x30, 0xd9, 0x7b, 0xcb, 0x3f, 0x79, 0xfa, 0xf9, 0xb3, 0xcf, 0x9e, 0xcb,
+ 0x0f, 0xdb, 0x1b, 0xdc, 0xf6, 0x1f, 0xbb, 0x03, 0xc6, 0x18, 0x59, 0x67,
+ 0xa6, 0x27, 0x66, 0x74, 0xf3, 0xbc, 0x30, 0xc7, 0xc4, 0x1c, 0x2b, 0x91,
+ 0x55, 0xb4, 0x9f, 0x4d, 0xe7, 0xaf, 0x58, 0xb2, 0xc9, 0xba, 0xb6, 0xad,
+ 0x3c, 0xf3, 0xb2, 0xd9, 0xb2, 0x46, 0x96, 0xdb, 0x45, 0xc2, 0x4c, 0x98,
+ 0x03, 0x46, 0xb7, 0xce, 0x98, 0x04, 0x2c, 0x99, 0x3a, 0x46, 0x27, 0xcd,
+ 0xa2, 0x5f, 0xb3, 0xb7, 0xa2, 0x79, 0xc3, 0xf4, 0xcd, 0xdc, 0x89, 0x74,
+ 0xcd, 0x85, 0xf3, 0x6e, 0x44, 0x01, 0x24, 0xe4, 0x5d, 0x5e, 0x43, 0x34,
+ 0xdc, 0x95, 0xcb, 0x99, 0x31, 0x2c, 0xe8, 0x81, 0xe5, 0x02, 0x2f, 0x98,
+ 0x4f, 0x2d, 0x9c, 0x0c, 0x98, 0xe7, 0x9f, 0x68, 0xef, 0x74, 0x5b, 0x31,
+ 0x5d, 0x33, 0xff, 0x5c, 0x98, 0xad, 0xc4, 0xdd, 0x19, 0x76, 0x6f, 0x08,
+ 0xc8, 0xbe, 0x60, 0x27, 0xd2, 0x99, 0x87, 0xd0, 0x3e, 0x3f, 0x1b, 0x5d,
+ 0x92, 0x06, 0x70, 0xfe, 0xfe, 0xd2, 0x34, 0x64, 0x54, 0x80, 0xba, 0x31,
+ 0x9b, 0x92, 0x5e, 0x2c, 0x32, 0x58, 0x75, 0xda, 0x9c, 0xd9, 0x7b, 0x39,
+ 0x04, 0x15, 0xd4, 0x1a, 0xfd, 0x24, 0xf7, 0x91, 0xcd, 0x5e, 0x3a, 0x82,
+ 0x6a, 0xf4, 0xf2, 0x1d, 0x6e, 0xdf, 0x49, 0xb6, 0xbe, 0xdc, 0x36, 0x7b,
+ 0x76, 0x50, 0xda, 0xd9, 0x19, 0x0c, 0xe4, 0x55, 0xf3, 0xed, 0x3a, 0x9f,
+ 0xe7, 0xb3, 0xd4, 0x53, 0xaf, 0x44, 0xa2, 0xd2, 0xf9, 0xb4, 0x72, 0x65,
+ 0x62, 0x76, 0x0d, 0xba, 0xed, 0xac, 0x3b, 0x9a, 0x43, 0x48, 0x25, 0xb7,
+ 0x54, 0x53, 0x52, 0x08, 0xa0, 0xc4, 0x2e, 0x72, 0x3b, 0x75, 0xb4, 0x66,
+ 0x24, 0xae, 0x5a, 0x13, 0xd5, 0x5d, 0xb7, 0x60, 0xe2, 0xe8, 0x46, 0x82,
+ 0xfb, 0xc0, 0x4e, 0x5d, 0xd2, 0x1b, 0xa7, 0x55, 0x2f, 0xb1, 0xb2, 0x98,
+ 0xcf, 0x26, 0x9d, 0x90, 0x2a, 0xbb, 0x5e, 0x9a, 0x11, 0x24, 0x3c, 0xbb,
+ 0x34, 0xd2, 0x3f, 0x78, 0x23, 0xd5, 0x06, 0x06, 0x63, 0x7a, 0x24, 0xaf,
+ 0xd9, 0xf2, 0xbb, 0x32, 0xa6, 0x04, 0x1d, 0x1a, 0xd5, 0x6c, 0xa1, 0xd1,
+ 0xc8, 0x8e, 0x89, 0x6c, 0x18, 0xbb, 0x4b, 0x4b, 0x3a, 0x2a, 0x4d, 0x66,
+ 0x04, 0x0d, 0xc4, 0x3f, 0x3d, 0x39, 0x30, 0x4b, 0x36, 0x18, 0xd4, 0x66,
+ 0xfe, 0x49, 0x1d, 0x5e, 0x88, 0x99, 0x7d, 0x06, 0x1f, 0x86, 0x75, 0x78,
+ 0x9c, 0xb1, 0xab, 0x83, 0xaf, 0x4d, 0x7e, 0x17, 0x22, 0xd4, 0x28, 0xaa,
+ 0x77, 0xe6, 0xc3, 0xa9, 0x59, 0x32, 0x73, 0xe0, 0xde, 0xd2, 0x44, 0xb1,
+ 0xbb, 0x22, 0x91, 0xa6, 0xea, 0x04, 0x3b, 0x23, 0xa7, 0x73, 0x9f, 0x3a,
+ 0x5d, 0x66, 0x3a, 0xcd, 0xe9, 0xb7, 0xe6, 0x7c, 0x99, 0x1b, 0x6e, 0x99,
+ 0xc1, 0x1c, 0x90, 0x49, 0x9d, 0xbb, 0xc9, 0x84, 0x65, 0x59, 0xdf, 0x94,
+ 0x64, 0xb9, 0xf5, 0x58, 0x16, 0x0f, 0xe8, 0x5b, 0x3d, 0xdc, 0xe7, 0xf3,
+ 0x44, 0xbf, 0x25, 0x9f, 0x32, 0xe3, 0x98, 0xfa, 0xba, 0x59, 0xdf, 0x5c,
+ 0x34, 0xf7, 0x9e, 0xde, 0x0e, 0x59, 0xcd, 0x7d, 0xaf, 0xac, 0xc2, 0x63,
+ 0xae, 0xd4, 0x05, 0x29, 0x53, 0x22, 0xc3, 0x71, 0x19, 0xe2, 0xc8, 0xd6,
+ 0xdc, 0xb5, 0xbe, 0x99, 0x5b, 0x7a, 0xf2, 0xfa, 0x46, 0x1f, 0xf5, 0x2e,
+ 0xd6, 0xd4, 0x0c, 0x8e, 0x2e, 0x07, 0x32, 0x71, 0xa7, 0x2a, 0xf7, 0xcb,
+ 0x8a, 0x85, 0xd9, 0xac, 0x34, 0x7b, 0xb9, 0xc7, 0x2a, 0xab, 0x74, 0x9b,
+ 0x7a, 0x4d, 0xbd, 0xa4, 0x19, 0x67, 0xd7, 0x4f, 0x69, 0xd7, 0xc6, 0x76,
+ 0x5a, 0xe6, 0xab, 0x7e, 0xb0, 0x6b, 0x6e, 0xa2, 0x46, 0x98, 0x23, 0x73,
+ 0x75, 0xd6, 0xb4, 0x8f, 0x75, 0xe6, 0xb1, 0xbd, 0xcd, 0x55, 0xb7, 0xd9,
+ 0xf0, 0x79, 0x84, 0xd9, 0xd3, 0x99, 0xf9, 0x1a, 0xdb, 0x47, 0x2e, 0x32,
+ 0x3b, 0x32, 0x33, 0xa2, 0x69, 0x9e, 0x62, 0x9f, 0xf0, 0xd2, 0x40, 0x19,
+ 0x71, 0x46, 0x5a, 0x44, 0x0f, 0xbe, 0xef, 0xda, 0x58, 0xb3, 0x99, 0x7f,
+ 0x25, 0x69, 0x9f, 0x06, 0x67, 0x66, 0xec, 0xa7, 0x18, 0xc7, 0xe0, 0x36,
+ 0xa1, 0xe3, 0x67, 0xcc, 0x06, 0x3a, 0x8b, 0x83, 0xb3, 0xd3, 0x5b, 0xef,
+ 0x18, 0x91, 0x31, 0x5d, 0x90, 0x9e, 0xd2, 0x87, 0xc3, 0x62, 0x5c, 0x96,
+ 0xc6, 0x72, 0x75, 0x43, 0xa3, 0xfb, 0x20, 0x2b, 0x68, 0xb7, 0xcb, 0x8a,
+ 0x1a, 0x91, 0xb0, 0xb0, 0xf2, 0xf6, 0xde, 0x98, 0x4b, 0xe9, 0x75, 0x9a,
+ 0xdb, 0xfd, 0x26, 0x27, 0x63, 0x9a, 0xe8, 0xc3, 0x45, 0x29, 0xcf, 0xd3,
+ 0x52, 0x91, 0x0a, 0x24, 0x72, 0x6b, 0x59, 0xf3, 0xf1, 0x31, 0xa3, 0x32,
+ 0x92, 0x07, 0xb2, 0x43, 0xda, 0x25, 0xb5, 0x51, 0x9b, 0x1b, 0x43, 0x51,
+ 0x26, 0x9d, 0x13, 0xc2, 0x17, 0x1a, 0xa4, 0x69, 0xb1, 0x37, 0x4c, 0xbe,
+ 0x29, 0xef, 0x32, 0xb8, 0xef, 0xa0, 0xdf, 0xe7, 0xe4, 0x80, 0x32, 0xaa,
+ 0xe0, 0x5d, 0x96, 0xcc, 0x8d, 0xea, 0x69, 0x66, 0x13, 0xda, 0x07, 0x7e,
+ 0x66, 0xfa, 0xe9, 0x6c, 0x96, 0xf2, 0x8e, 0x67, 0xc9, 0x8e, 0xc2, 0x2e,
+ 0xe5, 0x15, 0x1f, 0x89, 0x64, 0x0b, 0xea, 0xcd, 0x84, 0x66, 0x6b, 0xd1,
+ 0xb8, 0x51, 0xd8, 0x09, 0xb9, 0x4b, 0x6b, 0xef, 0x70, 0xb1, 0x71, 0x9a,
+ 0x7c, 0x36, 0xdc, 0x7b, 0x31, 0xdc, 0x1d, 0x92, 0x29, 0x92, 0xdd, 0xe6,
+ 0xe5, 0xb2, 0xa6, 0xf5, 0xa4, 0x9e, 0x78, 0xa7, 0x93, 0xdc, 0x44, 0xb4,
+ 0xbc, 0xd7, 0xd7, 0x33, 0x56, 0x7c, 0x76, 0xca, 0xab, 0xab, 0xc4, 0x53,
+ 0x8e, 0xaa, 0x6c, 0xc1, 0x36, 0x10, 0xcd, 0x8d, 0x1c, 0x38, 0x16, 0xaa,
+ 0xbe, 0x56, 0x24, 0xb3, 0xe9, 0x3c, 0x0a, 0x83, 0x41, 0x3a, 0xae, 0x1b,
+ 0x32, 0xa7, 0x06, 0xcb, 0x22, 0xff, 0x34, 0xa8, 0xcb, 0xc9, 0x47, 0xb3,
+ 0x2c, 0x2f, 0x17, 0x69, 0x73, 0xf3, 0x65, 0xc7, 0x53, 0xbb, 0x45, 0xb7,
+ 0xc9, 0x76, 0x92, 0x1c, 0xb1, 0x62, 0x49, 0x73, 0x51, 0xf1, 0x89, 0x33,
+ 0xeb, 0x29, 0xad, 0x24, 0xef, 0x4d, 0x2b, 0x66, 0x37, 0xcf, 0xcd, 0xb2,
+ 0x26, 0xdc, 0x58, 0x5f, 0x85, 0x69, 0xa7, 0x39, 0x78, 0x01, 0xe9, 0x22,
+ 0x81, 0x33, 0xcd, 0x1c, 0x9e, 0xb2, 0xfa, 0x38, 0x24, 0xb7, 0x85, 0xb1,
+ 0x1a, 0x0f, 0x68, 0x43, 0x37, 0x46, 0x8c, 0x35, 0x3c, 0xef, 0xb5, 0x08,
+ 0x61, 0xea, 0x16, 0xcb, 0x64, 0x27, 0xa5, 0x74, 0x3e, 0xb5, 0x07, 0xf2,
+ 0xd9, 0x44, 0xed, 0x0d, 0xd9, 0x7a, 0x9b, 0x7f, 0x36, 0x16, 0xe0, 0x0d,
+ 0x2f, 0x3c, 0x1a, 0xe3, 0x31, 0x9a, 0x3d, 0x7a, 0x6d, 0x6c, 0x88, 0xa2,
+ 0xe9, 0x34, 0x67, 0xbe, 0x4a, 0x97, 0x35, 0xdd, 0x33, 0x6c, 0xee, 0x62,
+ 0x9b, 0x88, 0x5b, 0xc6, 0x5a, 0xa0, 0xc3, 0x8d, 0xce, 0x6b, 0x87, 0xba,
+ 0xaa, 0x9f, 0x0d, 0x9f, 0x3d, 0x31, 0x8b, 0xea, 0x4f, 0x74, 0x71, 0x4f,
+ 0xee, 0xcc, 0xf8, 0xa4, 0x5e, 0x9a, 0xbb, 0xb4, 0x66, 0xf5, 0xc4, 0x9c,
+ 0xe1, 0xab, 0xfc, 0x7a, 0x59, 0x65, 0x7c, 0xa9, 0xc1, 0x03, 0xaa, 0x8e,
+ 0x4f, 0xba, 0x27, 0x6e, 0x4a, 0xf8, 0x0b, 0x8d, 0x7c, 0xc9, 0x66, 0x57,
+ 0xfd, 0xee, 0x2c, 0x90, 0x46, 0x47, 0x5b, 0x00, 0x43, 0xc4, 0x26, 0x32,
+ 0x9a, 0x1b, 0x1a, 0x2b, 0x32, 0xb9, 0xd7, 0xe7, 0x66, 0x82, 0x13, 0x72,
+ 0x98, 0x25, 0x93, 0x59, 0x9a, 0xcf, 0x61, 0xee, 0x88, 0x43, 0x68, 0xd8,
+ 0x69, 0xee, 0x52, 0xd4, 0x71, 0x68, 0xe2, 0x63, 0xb2, 0x06, 0xaa, 0x9a,
+ 0x84, 0x15, 0x4d, 0x42, 0xaa, 0xca, 0x04, 0xeb, 0xda, 0x37, 0xd9, 0xe4,
+ 0xa3, 0xae, 0xa6, 0xde, 0xc2, 0x83, 0x4e, 0x73, 0xe4, 0x09, 0x85, 0xc9,
+ 0x61, 0x9e, 0x5a, 0x9a, 0x35, 0x5d, 0x94, 0x75, 0x9d, 0x93, 0x47, 0x81,
+ 0x34, 0xe4, 0xe5, 0x04, 0x8a, 0x33, 0x99, 0xd8, 0x9f, 0xcc, 0x4a, 0xea,
+ 0x96, 0x48, 0xcc, 0x1e, 0x2b, 0xa6, 0x83, 0xa6, 0xca, 0x17, 0xab, 0x7a,
+ 0xc7, 0x57, 0x46, 0xfb, 0xce, 0xae, 0xc5, 0x88, 0x81, 0x7d, 0xc0, 0x16,
+ 0xc3, 0x24, 0xe9, 0xcc, 0x66, 0xa7, 0x39, 0x9e, 0xdb, 0x3e, 0x99, 0xc8,
+ 0xb9, 0x11, 0xa1, 0xac, 0x3f, 0xc2, 0x03, 0x64, 0xb4, 0x45, 0x39, 0xcb,
+ 0x46, 0xb1, 0xcd, 0x27, 0xb8, 0x17, 0xf2, 0xeb, 0x8c, 0x3c, 0xce, 0xe6,
+ 0x78, 0x37, 0x33, 0x73, 0x5b, 0x78, 0x82, 0xc2, 0xae, 0x78, 0x91, 0x5d,
+ 0x97, 0x0d, 0x09, 0xe8, 0x60, 0x9b, 0xbc, 0xc7, 0xc6, 0xb7, 0x7b, 0x42,
+ 0x35, 0x21, 0xff, 0x9a, 0xca, 0x59, 0x45, 0x31, 0x9f, 0x66, 0x4d, 0x48,
+ 0x8c, 0xb0, 0xba, 0x31, 0x3b, 0xb0, 0xbb, 0xea, 0xa6, 0xb5, 0x49, 0x06,
+ 0x75, 0x14, 0x77, 0xa9, 0x5e, 0xe5, 0xaa, 0x03, 0x8d, 0xc9, 0x64, 0x23,
+ 0xf3, 0xf8, 0x2e, 0x9f, 0x64, 0xea, 0xa1, 0x10, 0x4f, 0xda, 0x2c, 0x0f,
+ 0xf7, 0xfe, 0x7c, 0x59, 0xc3, 0x6a, 0x62, 0x35, 0x85, 0x0c, 0xca, 0xbb,
+ 0x9c, 0xd4, 0x98, 0x93, 0x2b, 0x39, 0xab, 0x74, 0x8b, 0xf2, 0xf9, 0x48,
+ 0xab, 0x1c, 0xd6, 0xb3, 0x69, 0x4e, 0xfa, 0xe9, 0x19, 0x39, 0x6a, 0xb7,
+ 0xb9, 0x7e, 0xe3, 0x7d, 0xd1, 0xec, 0x9c, 0x46, 0x07, 0x43, 0xf2, 0x2a,
+ 0xcd, 0x67, 0x91, 0x79, 0x82, 0x82, 0x6a, 0x2c, 0xd2, 0x9b, 0xac, 0x92,
+ 0x35, 0x58, 0xd2, 0xa4, 0x53, 0x74, 0x20, 0x78, 0x7a, 0x94, 0x65, 0xac,
+ 0x62, 0x41, 0x1f, 0xfb, 0x74, 0x6f, 0xa7, 0x17, 0xf7, 0x18, 0xaf, 0x9d,
+ 0xfc, 0x9d, 0x97, 0xcf, 0x3b, 0x9e, 0x29, 0xb5, 0x9a, 0x2e, 0xc8, 0x0d,
+ 0xde, 0x3d, 0xa1, 0xa4, 0x8d, 0x52, 0x24, 0x65, 0x5b, 0x9d, 0x6a, 0xe2,
+ 0x54, 0x2c, 0x6c, 0x04, 0x02, 0xc2, 0x81, 0x1c, 0xfe, 0x72, 0x84, 0xb9,
+ 0x1d, 0xd1, 0x94, 0x3a, 0xcd, 0x19, 0xd5, 0x8c, 0xfc, 0x84, 0x30, 0xc2,
+ 0x5b, 0x3b, 0xd6, 0x18, 0xc4, 0x95, 0xf5, 0x83, 0x93, 0x13, 0x8c, 0xe6,
+ 0x5b, 0x75, 0x4f, 0x9c, 0x59, 0xbc, 0xd4, 0x69, 0x8e, 0xb4, 0x61, 0x52,
+ 0x1d, 0xcc, 0xa1, 0xc9, 0x69, 0x3f, 0x62, 0x13, 0xa8, 0x2b, 0xd4, 0x6c,
+ 0x5f, 0xf6, 0x8c, 0xa9, 0x5c, 0x65, 0x65, 0x03, 0xdd, 0xbd, 0x9a, 0xa5,
+ 0xd7, 0x66, 0xdf, 0x75, 0x9a, 0xcb, 0xaf, 0x8d, 0x8d, 0xcb, 0x01, 0x89,
+ 0xba, 0x34, 0xb7, 0x07, 0x8d, 0x5b, 0xec, 0x7d, 0x63, 0xee, 0x99, 0x6d,
+ 0x36, 0x5b, 0x42, 0x02, 0x9e, 0x99, 0x01, 0x8e, 0x46, 0xdf, 0x6c, 0xfb,
+ 0x02, 0x0e, 0xf3, 0xfb, 0x18, 0xf1, 0x06, 0xf9, 0x04, 0xd3, 0x24, 0xf9,
+ 0x0a, 0x6b, 0xd2, 0x95, 0x72, 0xbc, 0xd2, 0x91, 0xc9, 0xd3, 0x89, 0x20,
+ 0x17, 0xd1, 0x50, 0x04, 0x00, 0x24, 0x00, 0xa6, 0x49, 0xbd, 0x55, 0xbc,
+ 0xc3, 0xc9, 0x8b, 0xc0, 0xd7, 0xb4, 0xf9, 0xdb, 0xb2, 0x5e, 0x92, 0xe1,
+ 0xde, 0x69, 0x6e, 0x61, 0x04, 0x59, 0x63, 0x8c, 0x37, 0x23, 0x91, 0x96,
+ 0x05, 0xfd, 0x69, 0xb5, 0x8b, 0x1c, 0x7a, 0x2e, 0x2d, 0x49, 0x45, 0xce,
+ 0x41, 0xb2, 0x10, 0xec, 0xdd, 0x6c, 0x44, 0x8b, 0xb4, 0xdc, 0x5d, 0x5a,
+ 0xb8, 0x4f, 0x28, 0x78, 0x01, 0xb1, 0x33, 0xcd, 0x29, 0xf0, 0x45, 0x07,
+ 0x6f, 0x85, 0x14, 0xdf, 0xaa, 0x97, 0x46, 0xce, 0x90, 0x56, 0xc5, 0x42,
+ 0x24, 0x10, 0x20, 0x2a, 0x64, 0x8c, 0x02, 0xe7, 0x49, 0x93, 0xed, 0xdf,
+ 0xfa, 0x98, 0x60, 0xe1, 0xfc, 0x95, 0x9c, 0x18, 0x7d, 0xd6, 0x68, 0xaa,
+ 0x2f, 0x69, 0xbf, 0x05, 0x5a, 0xc0, 0xe5, 0xe9, 0x28, 0xb6, 0xa0, 0x6d,
+ 0x67, 0x3a, 0xbd, 0x4f, 0x22, 0x97, 0xfc, 0x2b, 0xec, 0x6f, 0x2a, 0x49,
+ 0x5b, 0x32, 0x2a, 0x67, 0x30, 0x67, 0x74, 0xad, 0x67, 0xa6, 0x9b, 0x62,
+ 0x48, 0x70, 0xa0, 0x8e, 0xc4, 0x98, 0x51, 0xa3, 0x1a, 0x52, 0x23, 0xac,
+ 0x6f, 0xe9, 0xe8, 0xd0, 0x6f, 0x17, 0xce, 0xa4, 0xee, 0x06, 0xf1, 0x7e,
+ 0xbf, 0x55, 0x6f, 0x5b, 0x49, 0x66, 0x5a, 0x39, 0x3f, 0x7e, 0x0b, 0xc5,
+ 0x3e, 0x35, 0x1b, 0xe7, 0x9d, 0xfa, 0x71, 0x34, 0x0e, 0x37, 0x5e, 0xe6,
+ 0xb3, 0x96, 0xb3, 0xd4, 0xd9, 0x22, 0x08, 0x82, 0xf1, 0xbe, 0x42, 0xd7,
+ 0xd8, 0xed, 0x9f, 0xc3, 0x6f, 0xd6, 0xdd, 0x65, 0xcd, 0xfd, 0x42, 0x5c,
+ 0x7e, 0xcb, 0xba, 0x65, 0x59, 0xeb, 0xed, 0x3c, 0x6b, 0xa0, 0x7c, 0x90,
+ 0xc2, 0xef, 0xb5, 0x19, 0xac, 0x10, 0xba, 0x45, 0x97, 0xc1, 0x75, 0x91,
+ 0xff, 0x5d, 0x7c, 0x0b, 0x59, 0x71, 0x9b, 0x57, 0x65, 0x41, 0xaa, 0x8a,
+ 0xb1, 0x09, 0xaa, 0x1c, 0xc2, 0x99, 0xd4, 0x5d, 0x23, 0x3e, 0x36, 0x8f,
+ 0xde, 0x5f, 0x9c, 0x7e, 0x38, 0x3a, 0xfc, 0xf0, 0xd5, 0xfb, 0x77, 0xaf,
+ 0x4f, 0x8f, 0x37, 0xbb, 0x87, 0xfa, 0x8a, 0xc5, 0x02, 0x1d, 0x94, 0x9a,
+ 0x14, 0x32, 0x9c, 0x10, 0xd3, 0x45, 0x6e, 0xf9, 0x3a, 0xbf, 0x35, 0x62,
+ 0x0d, 0xaa, 0x15, 0x9c, 0x97, 0xf8, 0x1b, 0xcc, 0x7d, 0x99, 0xf0, 0x4e,
+ 0x73, 0x63, 0x73, 0x1f, 0x9b, 0x4e, 0xf3, 0xe9, 0x93, 0xc1, 0xeb, 0x49,
+ 0x11, 0x73, 0x46, 0x3b, 0x18, 0x8c, 0x8c, 0x96, 0x98, 0x2e, 0x13, 0x52,
+ 0xe9, 0x3c, 0xed, 0xd9, 0xf3, 0x63, 0x2e, 0x1b, 0xa3, 0x3c, 0xaa, 0xe7,
+ 0xd4, 0x58, 0x67, 0xe5, 0x47, 0x8d, 0x88, 0x1a, 0xcd, 0xf3, 0x30, 0xb2,
+ 0xdc, 0x35, 0xaf, 0x0b, 0x4f, 0xc5, 0x26, 0xb5, 0x64, 0xf6, 0xef, 0x40,
+ 0x3a, 0x39, 0xa9, 0x1a, 0xa3, 0xf6, 0x65, 0x39, 0x0e, 0x86, 0x86, 0x7c,
+ 0x48, 0x2d, 0x86, 0xd7, 0xa2, 0xab, 0x9f, 0x18, 0xa3, 0xf0, 0x9e, 0xe6,
+ 0x80, 0x1a, 0x19, 0x66, 0x9f, 0x32, 0x9c, 0x3c, 0x79, 0xeb, 0x68, 0x59,
+ 0xe1, 0x2c, 0x7f, 0x6f, 0x74, 0x12, 0x92, 0x80, 0xaf, 0xe1, 0xf6, 0x30,
+ 0x2f, 0xe8, 0x43, 0xe6, 0xb2, 0xe9, 0x5e, 0x7c, 0xe5, 0x6c, 0x4a, 0xee,
+ 0x05, 0x98, 0x98, 0x70, 0x08, 0x9c, 0x1f, 0x5e, 0x7e, 0x13, 0xcc, 0x09,
+ 0x89, 0x79, 0x07, 0x3f, 0x90, 0xad, 0x08, 0xc3, 0xa8, 0x6e, 0xe4, 0x80,
+ 0xbc, 0x1b, 0x8d, 0x12, 0x04, 0xb7, 0x67, 0xf9, 0xb8, 0x4a, 0xe9, 0x9b,
+ 0xf4, 0x63, 0xfa, 0xa9, 0xd9, 0xd6, 0x9d, 0xe6, 0xce, 0xbf, 0x3d, 0x1a,
+ 0xfd, 0x61, 0x6f, 0xcf, 0x28, 0x7f, 0xd3, 0xa5, 0x99, 0x97, 0x2d, 0xf3,
+ 0x4a, 0x51, 0x9b, 0x93, 0x39, 0x1f, 0xd6, 0xe5, 0x36, 0x2e, 0x6f, 0x68,
+ 0x7c, 0xb8, 0x1e, 0xd2, 0x5b, 0x73, 0xeb, 0x62, 0x27, 0xf1, 0x1c, 0xd3,
+ 0x7e, 0xee, 0xaa, 0xe9, 0xbc, 0xc0, 0x1a, 0xfb, 0x37, 0x12, 0xc3, 0xdc,
+ 0xdb, 0xb3, 0xfb, 0x60, 0x14, 0x5b, 0xf9, 0xd9, 0x48, 0x22, 0xe7, 0xe9,
+ 0xc4, 0xfc, 0x95, 0x6c, 0xa8, 0x6d, 0x1a, 0x5b, 0xfb, 0x8c, 0xe9, 0xb8,
+ 0x46, 0xac, 0x95, 0x5e, 0x92, 0x8b, 0x13, 0x01, 0xff, 0x50, 0x2e, 0x14,
+ 0xdd, 0xe3, 0xe5, 0x40, 0x15, 0xe8, 0xec, 0x38, 0x9d, 0x7c, 0xbc, 0x4b,
+ 0xab, 0x29, 0x3b, 0x4c, 0xcc, 0x9e, 0x19, 0xe7, 0xb3, 0xbc, 0xb9, 0xe7,
+ 0xdb, 0xa3, 0x3b, 0x0a, 0x0e, 0x1d, 0xd1, 0x14, 0x9a, 0x93, 0x74, 0x6d,
+ 0x6c, 0x21, 0xd2, 0x42, 0xc9, 0x42, 0x34, 0x07, 0xc3, 0xd3, 0xf5, 0xa1,
+ 0x2a, 0x35, 0x56, 0xd5, 0xb1, 0xdf, 0xee, 0x34, 0x07, 0xf7, 0x13, 0x9d,
+ 0x24, 0x74, 0xd3, 0xed, 0x5e, 0x15, 0x84, 0xbe, 0x98, 0xd2, 0x0d, 0x94,
+ 0xd4, 0xf7, 0xe6, 0xb6, 0x9f, 0x27, 0x11, 0x55, 0x11, 0x58, 0x87, 0xe4,
+ 0xdb, 0xec, 0xde, 0x18, 0x16, 0x79, 0xe1, 0x64, 0x25, 0xfb, 0x88, 0x32,
+ 0xb2, 0x54, 0x59, 0x27, 0xcd, 0xd5, 0xcf, 0x98, 0x89, 0xab, 0x98, 0x6f,
+ 0x92, 0xd0, 0xb2, 0xe2, 0xf7, 0x55, 0x1f, 0xa7, 0x26, 0x36, 0xeb, 0x96,
+ 0x50, 0xc6, 0x97, 0x62, 0x5b, 0x31, 0xb8, 0x38, 0xe1, 0x32, 0xe1, 0x98,
+ 0x30, 0xb9, 0x9c, 0x6b, 0xde, 0x7b, 0xb3, 0xb4, 0x6e, 0x60, 0x53, 0x60,
+ 0xdc, 0xe2, 0x99, 0x68, 0xdf, 0x21, 0x90, 0x23, 0x2f, 0xcd, 0x41, 0xfb,
+ 0xc7, 0xaf, 0x10, 0x3e, 0xae, 0x38, 0x9e, 0xa1, 0x54, 0x95, 0xb9, 0x6a,
+ 0x5d, 0x25, 0x6f, 0xf5, 0xce, 0xa0, 0x4e, 0x58, 0xef, 0xc9, 0x82, 0x63,
+ 0x7d, 0xac, 0xde, 0xb0, 0x1b, 0x28, 0x54, 0x57, 0xc9, 0x92, 0x17, 0x6f,
+ 0xc1, 0x41, 0x2f, 0xd9, 0xca, 0x86, 0xd7, 0xa6, 0xbd, 0x1e, 0xb5, 0xb3,
+ 0x77, 0x40, 0xff, 0xdd, 0xc7, 0x7f, 0x9f, 0xf4, 0x14, 0x28, 0xe3, 0x2f,
+ 0x35, 0xdd, 0x37, 0x5d, 0x69, 0x29, 0xae, 0x74, 0xba, 0x7f, 0xe4, 0x02,
+ 0x12, 0x01, 0x4c, 0x72, 0x39, 0x7e, 0x38, 0x58, 0xbb, 0x3a, 0xed, 0x47,
+ 0x34, 0x20, 0x37, 0x11, 0xb8, 0xdb, 0x60, 0x9b, 0x8e, 0xc9, 0xed, 0x64,
+ 0xc6, 0x36, 0x31, 0x1a, 0x0c, 0x3c, 0x00, 0x1c, 0x98, 0xa2, 0xe9, 0x98,
+ 0x7c, 0xa8, 0xb2, 0x9b, 0xb4, 0x36, 0xca, 0xd4, 0xb2, 0xc1, 0xe9, 0xe8,
+ 0x5a, 0x0e, 0xe6, 0x48, 0xcd, 0x72, 0xeb, 0x72, 0x91, 0x0f, 0x0f, 0xad,
+ 0x81, 0x22, 0xab, 0xc8, 0xce, 0xcb, 0x59, 0x79, 0xa7, 0x4f, 0x0c, 0x04,
+ 0xb9, 0x12, 0xbb, 0xb8, 0xcc, 0x6a, 0x02, 0xfc, 0x42, 0x8f, 0xf9, 0x41,
+ 0xa8, 0x39, 0x69, 0x3b, 0x04, 0xab, 0x31, 0x47, 0xf0, 0xca, 0xcc, 0x18,
+ 0x59, 0x1e, 0x33, 0xac, 0x1b, 0xd9, 0x58, 0xe8, 0x75, 0xa0, 0x01, 0x89,
+ 0x26, 0x92, 0x5f, 0x89, 0xe3, 0x45, 0xfe, 0x0d, 0x89, 0x2f, 0xfa, 0x41,
+ 0xcd, 0x81, 0xaa, 0xae, 0x72, 0xf0, 0xf0, 0xd6, 0xd6, 0x03, 0x6c, 0xef,
+ 0x62, 0x19, 0x2c, 0xfb, 0x3a, 0x75, 0x5f, 0x8b, 0x46, 0x1c, 0x33, 0xb4,
+ 0x4d, 0xaf, 0x38, 0x66, 0xf0, 0xeb, 0x0f, 0x89, 0xe9, 0xf1, 0x80, 0xdc,
+ 0x1c, 0xcb, 0xfa, 0x11, 0x67, 0xc4, 0x13, 0x0a, 0xfc, 0x8e, 0x75, 0xf4,
+ 0x70, 0x40, 0xce, 0x9f, 0x80, 0xee, 0x2e, 0xbc, 0xf7, 0x9c, 0x2d, 0x47,
+ 0xde, 0xc9, 0x1a, 0x71, 0x43, 0x17, 0x62, 0xca, 0x6f, 0xa5, 0x1f, 0xd3,
+ 0x61, 0x72, 0x76, 0x34, 0x3a, 0xa7, 0x4f, 0x98, 0xad, 0x51, 0x5c, 0x9b,
+ 0x5e, 0x9c, 0x8e, 0x3a, 0xcd, 0x19, 0x0b, 0x3d, 0x2b, 0xea, 0x16, 0xd4,
+ 0x6b, 0xe5, 0x34, 0xab, 0x03, 0x50, 0x23, 0xe3, 0xd2, 0x59, 0x63, 0x91,
+ 0x22, 0xa4, 0x45, 0x11, 0x1a, 0x0a, 0x9f, 0x26, 0x7c, 0xd4, 0x82, 0x0f,
+ 0x2d, 0xcc, 0x86, 0x9f, 0x6e, 0x5b, 0x97, 0x42, 0x5f, 0xf7, 0x82, 0xf5,
+ 0xf4, 0xd7, 0xcb, 0x6b, 0xd2, 0x92, 0x6b, 0xb5, 0x6d, 0xec, 0x17, 0xcc,
+ 0x6c, 0x04, 0x17, 0xbc, 0x0e, 0xdb, 0x9c, 0x09, 0x3e, 0x36, 0x46, 0xad,
+ 0x27, 0x10, 0x04, 0x2e, 0xf1, 0xa2, 0x74, 0xad, 0x92, 0x26, 0x0f, 0x0c,
+ 0x56, 0x0e, 0xdf, 0xf8, 0x24, 0x33, 0x4a, 0xd2, 0x34, 0x72, 0x49, 0xf1,
+ 0xa2, 0xa8, 0x62, 0x7f, 0x25, 0xb8, 0xab, 0x88, 0x9f, 0x02, 0x0d, 0x4d,
+ 0x58, 0x89, 0xa0, 0x5d, 0x0f, 0x1f, 0x63, 0x4e, 0x4e, 0x59, 0x52, 0xe9,
+ 0xd8, 0xa4, 0xa4, 0xf6, 0xec, 0xd9, 0xff, 0xba, 0x58, 0x9a, 0x89, 0x8f,
+ 0xdc, 0x16, 0x74, 0xed, 0xd3, 0xdd, 0x47, 0x13, 0xb8, 0xce, 0x01, 0xf5,
+ 0x74, 0xaf, 0xed, 0x80, 0xc2, 0x66, 0x33, 0x2a, 0x6a, 0x96, 0xbc, 0xa4,
+ 0xff, 0x3e, 0x28, 0x95, 0x11, 0x75, 0xf6, 0xa5, 0x30, 0xde, 0x95, 0xb0,
+ 0x05, 0xcb, 0xd1, 0x35, 0x3b, 0x0e, 0x01, 0xed, 0x21, 0x89, 0xbd, 0x7e,
+ 0xf2, 0xfa, 0xf8, 0x02, 0xcb, 0x7f, 0xfc, 0xee, 0x6b, 0xf8, 0x84, 0xad,
+ 0x6a, 0x3b, 0x45, 0x9b, 0x35, 0xdb, 0xba, 0x1c, 0xd3, 0x11, 0xf1, 0xdf,
+ 0x9d, 0x6a, 0x12, 0x9f, 0xe4, 0xca, 0x47, 0xc4, 0x7f, 0xfa, 0xfb, 0x5d,
+ 0x5c, 0x81, 0x8d, 0x74, 0xdc, 0x97, 0xa9, 0x13, 0xcf, 0xc1, 0xc7, 0xec,
+ 0xde, 0xfd, 0x0d, 0xd3, 0xe9, 0xcd, 0xb1, 0x7b, 0xf8, 0xa5, 0x37, 0x33,
+ 0x3f, 0x1e, 0x10, 0xaa, 0xc0, 0xa8, 0x4f, 0xd3, 0x9f, 0x7f, 0xdd, 0x55,
+ 0x28, 0x6e, 0x9a, 0xa4, 0x7d, 0x27, 0x46, 0xbc, 0x01, 0x70, 0xc4, 0x68,
+ 0xfc, 0x9e, 0xc3, 0x75, 0x2c, 0xd8, 0x05, 0x55, 0x4a, 0x80, 0x53, 0xda,
+ 0xe9, 0x69, 0xc1, 0x0a, 0x11, 0x89, 0x68, 0x06, 0x6d, 0x00, 0xc4, 0xd1,
+ 0x3d, 0x2e, 0x93, 0x72, 0x16, 0x5c, 0x72, 0x2d, 0x9b, 0x0a, 0xaa, 0xe6,
+ 0xbe, 0x5c, 0x6b, 0xb0, 0x33, 0xe4, 0xf2, 0x61, 0xf5, 0xae, 0x7b, 0x0e,
+ 0xac, 0xb2, 0x07, 0x3c, 0x94, 0x7f, 0x25, 0x26, 0xde, 0xcb, 0x08, 0x4f,
+ 0xa1, 0x7b, 0xac, 0xa9, 0x0d, 0x65, 0x79, 0xb3, 0xa8, 0x66, 0x6a, 0x56,
+ 0x57, 0x67, 0xd7, 0x2c, 0x3b, 0xb9, 0x42, 0xdc, 0x1e, 0x62, 0xbf, 0x3f,
+ 0x2f, 0xb3, 0x91, 0x6f, 0x55, 0x2e, 0xaa, 0x23, 0xc3, 0xc8, 0xba, 0x87,
+ 0x59, 0xa3, 0x84, 0xe2, 0x2a, 0x11, 0x73, 0x1e, 0xdb, 0x4a, 0xf7, 0x15,
+ 0x6f, 0x3f, 0x32, 0x92, 0x7a, 0xde, 0x94, 0xf4, 0x62, 0x4b, 0xd1, 0x70,
+ 0xc0, 0x42, 0xce, 0x4b, 0x7e, 0x4b, 0x53, 0xa7, 0x7b, 0xc7, 0x79, 0xde,
+ 0xda, 0x3a, 0x59, 0x59, 0xd0, 0x9f, 0x05, 0x79, 0x6c, 0xfe, 0x25, 0xb2,
+ 0x21, 0xa3, 0x7b, 0x91, 0x9c, 0xb7, 0x12, 0xcc, 0x81, 0xe6, 0x42, 0xc0,
+ 0x25, 0x01, 0x73, 0x46, 0xb4, 0xf4, 0x98, 0xad, 0xa1, 0x5a, 0x87, 0x9a,
+ 0x14, 0x9e, 0x9d, 0x11, 0xa8, 0xe1, 0xdd, 0x0d, 0x62, 0xe4, 0x77, 0x43,
+ 0x61, 0x60, 0xde, 0xbb, 0xe4, 0x1c, 0xcc, 0x27, 0x1f, 0x81, 0xf6, 0x91,
+ 0xab, 0xa9, 0x25, 0x3f, 0x04, 0x6b, 0xc3, 0x28, 0xb1, 0xc8, 0x12, 0xc0,
+ 0xcc, 0x21, 0xaf, 0x25, 0xed, 0x49, 0xba, 0x96, 0xf3, 0x82, 0x95, 0xb5,
+ 0x95, 0x06, 0xb0, 0xe9, 0xeb, 0x87, 0xd7, 0x27, 0x17, 0xc9, 0x96, 0x59,
+ 0xd5, 0x71, 0x57, 0xb9, 0xd1, 0x7b, 0x7d, 0x27, 0x6b, 0x26, 0x3b, 0x8b,
+ 0x8f, 0xf9, 0x8e, 0xb1, 0x83, 0xa6, 0xe3, 0x6d, 0xab, 0xdd, 0xe3, 0x73,
+ 0xd8, 0x84, 0x6a, 0x33, 0xa9, 0xd1, 0x04, 0xab, 0xa9, 0x7b, 0x1a, 0x3c,
+ 0x2b, 0x8a, 0x81, 0xe2, 0xce, 0x78, 0xc2, 0x34, 0xb1, 0x8b, 0x01, 0x20,
+ 0x15, 0x8e, 0x68, 0x26, 0xe4, 0x1d, 0xcc, 0xd8, 0x71, 0x6a, 0xcc, 0xbf,
+ 0xee, 0x59, 0x65, 0xc4, 0x92, 0xf8, 0x18, 0xd8, 0xb7, 0xa0, 0x30, 0x1b,
+ 0xb9, 0x27, 0x9c, 0xb6, 0xd7, 0x27, 0x80, 0x14, 0x4d, 0xca, 0x82, 0xee,
+ 0xa2, 0x29, 0x39, 0xa8, 0xba, 0xcd, 0xc1, 0x65, 0xd6, 0x1b, 0xee, 0xf4,
+ 0x12, 0x0b, 0x09, 0x33, 0xb3, 0x0c, 0x54, 0xa3, 0xc3, 0xe0, 0x99, 0x2d,
+ 0x76, 0xb5, 0xac, 0xd9, 0xe9, 0x4a, 0xf6, 0xbe, 0x5d, 0xaf, 0x61, 0x4c,
+ 0xa0, 0x7a, 0xcb, 0x69, 0x95, 0x2d, 0xa3, 0x14, 0xe3, 0x5c, 0x59, 0x43,
+ 0x72, 0x6c, 0x3b, 0x85, 0xa5, 0xea, 0xfd, 0xd4, 0x4b, 0x3c, 0x48, 0x51,
+ 0xcb, 0x35, 0x96, 0xbb, 0xa0, 0xbf, 0x77, 0x05, 0x98, 0xab, 0xd8, 0x9e,
+ 0xe0, 0x69, 0x36, 0xcb, 0xe7, 0x79, 0x03, 0x1d, 0xde, 0xeb, 0x42, 0xb0,
+ 0x14, 0xed, 0x2e, 0xfd, 0x14, 0x76, 0x49, 0x61, 0x7a, 0x29, 0xfd, 0xda,
+ 0x74, 0x09, 0xce, 0x1a, 0x46, 0x51, 0xc5, 0xcd, 0xb9, 0x76, 0x87, 0x2c,
+ 0xd0, 0x6f, 0x4d, 0xac, 0xe7, 0xf7, 0xb1, 0x78, 0xdb, 0x47, 0xa6, 0x6e,
+ 0x00, 0x27, 0xa2, 0x73, 0x26, 0x4e, 0x8c, 0x31, 0x5f, 0x0e, 0x7a, 0xc6,
+ 0x52, 0x7d, 0x3c, 0x90, 0xdd, 0xe6, 0xf5, 0x1d, 0x15, 0x3c, 0x90, 0x3c,
+ 0xea, 0xfe, 0x60, 0x33, 0xd4, 0x1c, 0x18, 0x98, 0x9d, 0x1f, 0xc5, 0xea,
+ 0x84, 0x06, 0x04, 0x61, 0xc5, 0xee, 0x9f, 0xae, 0xbe, 0xab, 0xc2, 0x7e,
+ 0x90, 0x15, 0x93, 0x72, 0xda, 0xb1, 0xcf, 0x68, 0x12, 0x3c, 0x21, 0x87,
+ 0x1d, 0xcf, 0xf1, 0x13, 0xec, 0xf2, 0xb8, 0x63, 0x8d, 0x3c, 0x3a, 0xec,
+ 0xed, 0xfb, 0x45, 0xfb, 0x3e, 0x66, 0xde, 0x63, 0xdb, 0xff, 0xaa, 0x5d,
+ 0xff, 0x4f, 0xd3, 0x23, 0x3c, 0xf5, 0xeb, 0x11, 0x8a, 0xc4, 0x60, 0x92,
+ 0x2f, 0x6e, 0xc8, 0xe7, 0xfe, 0x12, 0x61, 0x68, 0x72, 0x91, 0xf1, 0x0f,
+ 0xe2, 0x0a, 0xc4, 0x48, 0xae, 0xbc, 0x5a, 0xfc, 0x04, 0xfa, 0xb6, 0x88,
+ 0x97, 0x5c, 0x61, 0xd3, 0x6a, 0x8c, 0x09, 0xf4, 0x21, 0x0f, 0xac, 0x55,
+ 0x0a, 0x44, 0xe8, 0xcb, 0x7c, 0xd3, 0xdb, 0xdb, 0x85, 0x51, 0x8e, 0xfa,
+ 0xdb, 0xa1, 0x31, 0x19, 0xd2, 0x29, 0xe1, 0x98, 0xcc, 0x34, 0x21, 0xed,
+ 0x02, 0x3f, 0xef, 0x34, 0x87, 0xce, 0x4b, 0x3a, 0x02, 0xdf, 0xba, 0x66,
+ 0x46, 0xdf, 0x5f, 0x9c, 0x1e, 0x74, 0xe7, 0x09, 0x68, 0xd8, 0xfa, 0x60,
+ 0x67, 0x07, 0xae, 0xb7, 0x9b, 0xf4, 0xd3, 0xa7, 0x61, 0x9d, 0xed, 0x4c,
+ 0xcb, 0x49, 0xbd, 0x53, 0xd7, 0x33, 0x9d, 0x8d, 0x36, 0x5e, 0xfc, 0x77,
+ 0xf0, 0x59, 0x94, 0xf3, 0x45, 0x05, 0x23, 0x7a, 0x50, 0xd7, 0x41, 0xa4,
+ 0x76, 0x74, 0xa4, 0x71, 0xa0, 0xe3, 0x82, 0x31, 0x5f, 0x38, 0xe0, 0x83,
+ 0x9c, 0x26, 0xe0, 0x9b, 0x44, 0x5f, 0xc6, 0xf4, 0xda, 0xd8, 0xa4, 0x8d,
+ 0x92, 0xf6, 0x23, 0x32, 0x27, 0x95, 0x9d, 0xfa, 0x85, 0x6f, 0xb6, 0xd0,
+ 0xdd, 0x51, 0xf2, 0x1f, 0x02, 0xae, 0xcc, 0x9b, 0xb5, 0x71, 0xe6, 0xe7,
+ 0x1d, 0x35, 0xdf, 0x0e, 0x22, 0x1e, 0x8b, 0x51, 0x53, 0x2f, 0x4d, 0xdc,
+ 0x93, 0xce, 0xee, 0xe9, 0x26, 0x34, 0x99, 0xdd, 0x7b, 0x5d, 0x56, 0xe6,
+ 0xd4, 0xcc, 0xeb, 0x98, 0xad, 0x2f, 0x2e, 0xb9, 0x1a, 0x01, 0xd0, 0xa4,
+ 0x26, 0x6f, 0x04, 0x3b, 0x1e, 0x96, 0x85, 0xd7, 0xba, 0x19, 0xc4, 0x04,
+ 0x41, 0xf6, 0x61, 0xa2, 0x51, 0xad, 0x55, 0x7e, 0x46, 0x2f, 0x9e, 0x6b,
+ 0xd1, 0x89, 0x5d, 0x8b, 0x71, 0x59, 0x38, 0x4f, 0x20, 0xa4, 0x91, 0xe9,
+ 0x72, 0x3f, 0xd6, 0x3b, 0xac, 0x73, 0x95, 0xd1, 0xa3, 0x90, 0xe8, 0x55,
+ 0x55, 0x7a, 0x62, 0x7c, 0xf0, 0x2d, 0xd4, 0x29, 0x23, 0x1b, 0xf2, 0x6b,
+ 0x8d, 0x75, 0x74, 0x8f, 0xaf, 0x85, 0xfe, 0x37, 0x84, 0xaf, 0xd1, 0x48,
+ 0x46, 0x45, 0x5b, 0x9f, 0xd5, 0x28, 0x85, 0x0f, 0xd4, 0x2c, 0xc5, 0x34,
+ 0x8a, 0x21, 0xa8, 0x8b, 0xe0, 0x38, 0x10, 0xb4, 0xde, 0x7f, 0x85, 0x62,
+ 0xdb, 0x89, 0x9e, 0x4f, 0xf7, 0x0d, 0x7f, 0x83, 0x22, 0xfd, 0x04, 0x6b,
+ 0xd1, 0xd5, 0x6f, 0x00, 0x0a, 0xb1, 0xb6, 0x58, 0x2c, 0x37, 0xa2, 0x3b,
+ 0x1e, 0x05, 0x88, 0x89, 0x12, 0x9a, 0x23, 0x19, 0x27, 0x05, 0xf8, 0xac,
+ 0xb6, 0x8a, 0xbd, 0x97, 0x12, 0xe1, 0x39, 0xcc, 0xd1, 0x60, 0xd7, 0xc6,
+ 0xe3, 0xdf, 0x33, 0x2a, 0x50, 0xf1, 0xb4, 0xd0, 0x02, 0x8c, 0x18, 0x6a,
+ 0x32, 0xe0, 0xa2, 0x28, 0x07, 0x6b, 0x56, 0xba, 0xeb, 0xc5, 0xec, 0x3e,
+ 0x23, 0x10, 0x81, 0x99, 0xef, 0xea, 0x1c, 0xa7, 0xe4, 0x27, 0xf7, 0x80,
+ 0x3c, 0xec, 0xb7, 0x53, 0x35, 0x7f, 0x06, 0x95, 0x8a, 0x83, 0x15, 0x89,
+ 0xe8, 0x8f, 0x49, 0x22, 0xcb, 0x17, 0x35, 0x86, 0x04, 0x3b, 0xc6, 0x70,
+ 0xfc, 0x1c, 0xc9, 0x1f, 0x92, 0x9a, 0xc0, 0x50, 0x38, 0x75, 0xe2, 0xd4,
+ 0x65, 0x5f, 0xa6, 0x6e, 0x46, 0xe1, 0x88, 0x4a, 0xfa, 0xd8, 0xdd, 0x51,
+ 0x36, 0xed, 0xc0, 0x07, 0x63, 0xd1, 0xea, 0x58, 0x44, 0x59, 0x1d, 0x3a,
+ 0x8e, 0xdd, 0x6c, 0x46, 0xf5, 0xb5, 0x00, 0x9e, 0x87, 0x9e, 0x54, 0x99,
+ 0x7e, 0xa2, 0x28, 0xbb, 0xbd, 0x92, 0x7e, 0x0c, 0x42, 0xeb, 0xc5, 0x22,
+ 0xd0, 0xbc, 0x0e, 0x28, 0x12, 0xcd, 0x2e, 0x73, 0xfc, 0xc6, 0xcb, 0xdc,
+ 0x03, 0xb0, 0x59, 0x4a, 0x1b, 0x7c, 0xf3, 0x17, 0xb2, 0xfd, 0x9c, 0x6c,
+ 0x97, 0xae, 0xc3, 0xa6, 0x98, 0xcc, 0xca, 0x5a, 0x1d, 0x8a, 0xb4, 0x4c,
+ 0x9c, 0x06, 0x62, 0x0e, 0xc6, 0xf7, 0xf2, 0x03, 0x59, 0x03, 0xf9, 0x05,
+ 0x37, 0x7b, 0x55, 0x92, 0x77, 0x31, 0xf4, 0x00, 0x8a, 0x12, 0xe6, 0x32,
+ 0x57, 0xc8, 0x7d, 0x60, 0x15, 0xef, 0x83, 0xe4, 0xa7, 0x9f, 0xfa, 0x09,
+ 0x69, 0x7f, 0x3f, 0x19, 0x9b, 0xf2, 0x27, 0xb3, 0xc9, 0x92, 0x9f, 0x2a,
+ 0x11, 0x1c, 0x3f, 0xdd, 0x9a, 0x4f, 0x76, 0xe3, 0x45, 0xe4, 0x36, 0xa9,
+ 0x67, 0xf0, 0x87, 0xb2, 0x42, 0x21, 0x90, 0x93, 0x7b, 0x8d, 0x10, 0x70,
+ 0x8e, 0x0e, 0x9c, 0x17, 0xec, 0xf7, 0xb3, 0x2b, 0x0a, 0xe8, 0x4b, 0x68,
+ 0x1f, 0x2f, 0xe7, 0x85, 0xa8, 0x61, 0xbc, 0x11, 0x71, 0xc4, 0x21, 0xf7,
+ 0x37, 0xff, 0xb0, 0xe9, 0xf6, 0x4c, 0x5f, 0x7d, 0x56, 0x8d, 0xca, 0xd5,
+ 0xc8, 0x71, 0xd2, 0x53, 0xaf, 0xe9, 0x2c, 0x88, 0xc6, 0x31, 0x22, 0xc4,
+ 0x48, 0xce, 0x33, 0x72, 0x18, 0x31, 0x28, 0xb9, 0xb4, 0x50, 0x2e, 0x60,
+ 0xb3, 0x17, 0x37, 0xf7, 0x35, 0x05, 0xcc, 0x62, 0xd2, 0xc6, 0x5d, 0xfd,
+ 0xd4, 0xbb, 0x68, 0xb4, 0x71, 0xe4, 0xcc, 0x47, 0x3c, 0x00, 0xd5, 0xd2,
+ 0x6c, 0x81, 0x96, 0x7c, 0x34, 0x7d, 0xd9, 0x1c, 0x6c, 0x22, 0x70, 0x04,
+ 0xe7, 0xae, 0x88, 0xbf, 0x2a, 0xc4, 0x75, 0x69, 0x33, 0x1e, 0xee, 0x23,
+ 0xf8, 0x64, 0xcb, 0xc0, 0xe6, 0x58, 0x94, 0x82, 0x4d, 0x5c, 0xb6, 0x15,
+ 0xa5, 0x4b, 0x84, 0xdd, 0xef, 0x47, 0x4c, 0x29, 0xc1, 0x31, 0xdb, 0x77,
+ 0x8d, 0x92, 0xe8, 0xbc, 0x9d, 0x83, 0x01, 0x92, 0x50, 0x17, 0x9c, 0x38,
+ 0xca, 0x9b, 0x83, 0x2e, 0x56, 0x24, 0x1e, 0xd6, 0xe4, 0x81, 0x0b, 0xe4,
+ 0xaa, 0xa2, 0x30, 0x1a, 0x9b, 0x33, 0x49, 0x67, 0x99, 0x92, 0x16, 0xef,
+ 0x0a, 0x49, 0x3a, 0x1b, 0x95, 0x30, 0x39, 0x26, 0x88, 0x1c, 0x21, 0x4a,
+ 0x29, 0x10, 0xe7, 0x50, 0xd7, 0xa5, 0xcb, 0x2e, 0x50, 0x78, 0xa8, 0x4f,
+ 0xaf, 0x92, 0xde, 0x6a, 0xb5, 0xa7, 0xd7, 0x7d, 0xe3, 0x7b, 0x1b, 0x6a,
+ 0x82, 0x6b, 0x4d, 0xdc, 0x96, 0xa6, 0x0f, 0x5b, 0x82, 0x5d, 0x18, 0xfc,
+ 0x8d, 0x81, 0x49, 0x0c, 0x2f, 0xd6, 0x7b, 0x74, 0x3b, 0x61, 0x6c, 0x56,
+ 0x1d, 0x04, 0x27, 0x2b, 0x2f, 0xb4, 0xed, 0x4d, 0xb0, 0x0b, 0x0e, 0xe7,
+ 0x70, 0xe9, 0xe0, 0x8e, 0x62, 0x85, 0xd1, 0x7b, 0xba, 0x2b, 0x7f, 0xec,
+ 0xdb, 0x84, 0x7f, 0xa4, 0xef, 0x89, 0xab, 0x45, 0xaf, 0x08, 0x3d, 0xdf,
+ 0x46, 0x9f, 0x47, 0x22, 0xa7, 0x22, 0x2f, 0xa1, 0xff, 0x04, 0xb3, 0xb3,
+ 0xb7, 0x2d, 0x1e, 0x05, 0xe4, 0x62, 0x02, 0x11, 0x27, 0x6e, 0x93, 0xde,
+ 0x4d, 0xc9, 0xd1, 0xdb, 0xde, 0x01, 0x61, 0xc8, 0x19, 0x90, 0x26, 0x23,
+ 0xb4, 0x41, 0xcc, 0xee, 0xc1, 0x42, 0x78, 0xfc, 0x9b, 0xb3, 0xb7, 0xc7,
+ 0x6d, 0xf0, 0x13, 0x7e, 0x12, 0x73, 0x2b, 0x18, 0x69, 0xf5, 0xc6, 0x88,
+ 0x18, 0xde, 0x41, 0x69, 0xa0, 0xba, 0x61, 0x7b, 0x99, 0x7e, 0x5d, 0x67,
+ 0xcd, 0xe2, 0x6e, 0x99, 0x4f, 0xb7, 0xb6, 0x69, 0x7f, 0x10, 0xf2, 0x71,
+ 0x00, 0xc0, 0x2d, 0x5b, 0x58, 0x75, 0xb2, 0xc5, 0xca, 0x78, 0x95, 0x35,
+ 0xcb, 0xaa, 0x60, 0x4f, 0x50, 0x42, 0xdd, 0x0f, 0x43, 0x3a, 0x89, 0xdc,
+ 0x6b, 0xbe, 0x0d, 0x24, 0x59, 0xd5, 0x1c, 0x38, 0xe6, 0x26, 0xb7, 0x49,
+ 0x0a, 0x18, 0x39, 0x8a, 0xf8, 0x39, 0xd6, 0x9e, 0xc6, 0x12, 0xdc, 0x53,
+ 0x98, 0x0b, 0x4d, 0x4f, 0x3c, 0x3c, 0x3f, 0x7f, 0x7d, 0x78, 0x79, 0x68,
+ 0xc7, 0x86, 0x8b, 0x18, 0x92, 0x05, 0xea, 0xb0, 0x11, 0x49, 0xa4, 0x1d,
+ 0xd1, 0x93, 0x9b, 0x7f, 0x7c, 0x3f, 0x3a, 0xbe, 0xe8, 0x2e, 0xec, 0xf9,
+ 0xc5, 0x19, 0x65, 0xac, 0xff, 0xf1, 0xa7, 0x43, 0x8a, 0x14, 0x89, 0x9f,
+ 0xfb, 0x75, 0xda, 0xa4, 0x9b, 0xc1, 0xa9, 0xde, 0x37, 0x7b, 0xed, 0x0c,
+ 0xe8, 0x1d, 0xed, 0xe0, 0x95, 0xdc, 0x66, 0x30, 0xfa, 0x93, 0x0f, 0xb4,
+ 0xa6, 0xd5, 0x44, 0xb1, 0x4f, 0xf8, 0xa8, 0x2e, 0x67, 0x3f, 0xf4, 0x68,
+ 0x78, 0x03, 0x29, 0x9d, 0x24, 0xd3, 0xe8, 0xbd, 0xce, 0xd5, 0x2c, 0xc9,
+ 0x3e, 0x19, 0xcb, 0xba, 0xd1, 0x4d, 0x8f, 0xfd, 0x45, 0x39, 0x45, 0xdd,
+ 0x79, 0x71, 0xeb, 0xa3, 0x0b, 0xc4, 0x68, 0x29, 0xce, 0xed, 0x86, 0x1c,
+ 0x40, 0x52, 0x9b, 0xd9, 0x6d, 0xc0, 0xa7, 0x0d, 0xb5, 0xb7, 0x62, 0x9c,
+ 0x06, 0xce, 0x25, 0x76, 0x18, 0x22, 0xc5, 0x8d, 0xbb, 0x14, 0x4c, 0xc8,
+ 0x1f, 0xcc, 0x79, 0x1c, 0x24, 0xc7, 0x82, 0xbd, 0xc6, 0xb0, 0xcd, 0x0f,
+ 0x82, 0x87, 0x1a, 0x6b, 0x2b, 0x88, 0xb0, 0x8f, 0xcb, 0x0a, 0x2f, 0xed,
+ 0xb3, 0xd7, 0x55, 0x9e, 0x39, 0xd1, 0xc2, 0x3c, 0x44, 0x9d, 0xa6, 0x29,
+ 0x87, 0xa9, 0xd4, 0x8b, 0xc4, 0x99, 0x07, 0xe9, 0x35, 0xed, 0x2e, 0xf3,
+ 0xa8, 0x51, 0xa2, 0x8d, 0x85, 0x44, 0xff, 0xda, 0xd9, 0x1b, 0xee, 0xf6,
+ 0xc2, 0xce, 0xd3, 0x61, 0x41, 0x16, 0xad, 0xf5, 0x17, 0x93, 0x2c, 0x6c,
+ 0xca, 0xf2, 0xc1, 0xfe, 0xb1, 0x08, 0x33, 0x7a, 0xe8, 0xc2, 0xb4, 0x1f,
+ 0xed, 0xca, 0xe0, 0x2c, 0x80, 0x76, 0x11, 0x58, 0xaa, 0x52, 0xa1, 0x68,
+ 0x64, 0x62, 0x51, 0xde, 0xd1, 0x48, 0xcc, 0x56, 0x9b, 0xcd, 0x5a, 0xe9,
+ 0xce, 0xbd, 0xf8, 0x34, 0x17, 0x60, 0x16, 0xc8, 0xba, 0xb3, 0x1d, 0x0b,
+ 0xc6, 0xc8, 0xe5, 0xe9, 0xeb, 0x71, 0x16, 0x65, 0x04, 0x83, 0xd1, 0xee,
+ 0x02, 0xf7, 0x73, 0x91, 0x91, 0x81, 0xdc, 0x9b, 0xf9, 0xc1, 0xc6, 0x81,
+ 0x46, 0x3c, 0x07, 0xd4, 0x0c, 0x69, 0x9f, 0x2f, 0x39, 0x73, 0x2a, 0x30,
+ 0xdc, 0xdf, 0xa6, 0x9f, 0xf2, 0xf9, 0x72, 0x9e, 0xe0, 0x7b, 0xac, 0xd0,
+ 0xca, 0x93, 0x7a, 0x31, 0x92, 0xff, 0x84, 0x83, 0xae, 0xb4, 0xa8, 0x9b,
+ 0xb5, 0x67, 0xbf, 0x47, 0x2e, 0x19, 0x73, 0x29, 0xab, 0xd9, 0x29, 0xf0,
+ 0xf5, 0x79, 0xde, 0xd4, 0x1d, 0xbb, 0xdf, 0xa8, 0x0a, 0x29, 0xc5, 0xd0,
+ 0x34, 0x45, 0x8a, 0x2f, 0xf1, 0x88, 0x38, 0xe7, 0xd4, 0x3d, 0xd5, 0xe1,
+ 0x3c, 0x94, 0x50, 0x56, 0xe5, 0xe5, 0xd4, 0x1e, 0x1b, 0xd2, 0x12, 0xf3,
+ 0x62, 0x69, 0x26, 0x9a, 0x9a, 0xa3, 0x5b, 0x55, 0x7e, 0x13, 0x84, 0xf1,
+ 0x00, 0x68, 0x1c, 0x01, 0xa7, 0xaa, 0xb8, 0x9f, 0xcf, 0x86, 0x4f, 0xf6,
+ 0x87, 0xbb, 0xfd, 0x96, 0xf5, 0x2e, 0x19, 0x8e, 0xe6, 0x74, 0x4d, 0xf2,
+ 0xb9, 0xcd, 0x7e, 0x18, 0xfe, 0xd3, 0xbc, 0x34, 0x94, 0xf7, 0x31, 0x98,
+ 0xa7, 0x9f, 0xb0, 0x7c, 0xd1, 0x65, 0x2d, 0x93, 0x97, 0xdf, 0x9c, 0x8d,
+ 0x2e, 0xf7, 0x0e, 0xce, 0xcf, 0x2e, 0xcc, 0x7f, 0xe9, 0xef, 0xfb, 0xf8,
+ 0xfb, 0x7e, 0x60, 0x3d, 0xbe, 0x11, 0xd8, 0x92, 0xe2, 0xa4, 0xa1, 0xea,
+ 0xe0, 0x16, 0x10, 0x2b, 0xc6, 0x6b, 0x88, 0xb0, 0xed, 0x24, 0x05, 0x75,
+ 0xb1, 0x22, 0x3e, 0x33, 0xef, 0x53, 0x8a, 0x1c, 0x1d, 0xb6, 0xf7, 0x33,
+ 0x30, 0x32, 0x79, 0xa3, 0xaa, 0x94, 0x64, 0x66, 0x69, 0xce, 0x57, 0xd7,
+ 0xa3, 0xc7, 0x59, 0x35, 0x02, 0x8d, 0x56, 0x42, 0x13, 0xc0, 0x1d, 0xda,
+ 0xbf, 0x9a, 0xcc, 0x8c, 0xa6, 0x9f, 0x51, 0x78, 0x74, 0x9a, 0x71, 0x36,
+ 0x3d, 0xfd, 0x24, 0x66, 0x80, 0x08, 0xf2, 0x1a, 0x68, 0xd1, 0x61, 0xb7,
+ 0x67, 0xd8, 0x95, 0x82, 0x8b, 0xa3, 0x34, 0x46, 0xd3, 0xcb, 0xbc, 0xbe,
+ 0x51, 0xf4, 0x7f, 0xb7, 0x39, 0x80, 0x8d, 0x7c, 0x87, 0xd5, 0x49, 0xc3,
+ 0x99, 0x5f, 0xef, 0xce, 0x2e, 0x93, 0xf4, 0xea, 0x4a, 0xd3, 0xd4, 0x00,
+ 0x05, 0x25, 0x8d, 0x75, 0x07, 0x56, 0xbe, 0x3a, 0x9a, 0xeb, 0x50, 0xf2,
+ 0xb1, 0x3e, 0x72, 0x79, 0x3a, 0xda, 0x21, 0x77, 0x15, 0xe3, 0x3a, 0x46,
+ 0xef, 0x4e, 0xfa, 0x2d, 0x47, 0xa6, 0x1f, 0xcd, 0xdd, 0xa6, 0x9b, 0x52,
+ 0xae, 0xd1, 0xee, 0xdc, 0x79, 0x77, 0xa1, 0x4d, 0x7f, 0x1e, 0x26, 0x3d,
+ 0x2c, 0x68, 0x8f, 0x75, 0xcc, 0x1e, 0xd6, 0xb5, 0xc7, 0x58, 0x46, 0xc0,
+ 0x40, 0xd0, 0x5f, 0xca, 0xd2, 0x0d, 0x50, 0x18, 0xf0, 0xf2, 0xf6, 0x91,
+ 0x15, 0x4c, 0x4a, 0x47, 0x8f, 0x2c, 0x12, 0x1a, 0x18, 0x06, 0xd5, 0x93,
+ 0x86, 0xf7, 0xb9, 0x61, 0xb4, 0x6b, 0xfe, 0x4e, 0xcd, 0x62, 0xd3, 0x8e,
+ 0xb3, 0x18, 0xa6, 0x12, 0xdf, 0x71, 0x4d, 0xdb, 0xb6, 0x4d, 0xc7, 0xe0,
+ 0x7c, 0xe5, 0xa7, 0x74, 0x73, 0x18, 0xe9, 0x42, 0x31, 0xb9, 0xfc, 0x9a,
+ 0x22, 0x60, 0x5d, 0xd4, 0xbe, 0xeb, 0x48, 0xe0, 0x86, 0x22, 0x7d, 0xac,
+ 0x6e, 0x7a, 0x9e, 0xcf, 0xa0, 0x09, 0x50, 0x91, 0x40, 0x67, 0x55, 0x6a,
+ 0xcf, 0x68, 0x87, 0xea, 0x32, 0xbc, 0xf1, 0xad, 0x03, 0x7f, 0x9e, 0xd2,
+ 0xad, 0x63, 0xfd, 0xdc, 0x0a, 0xb9, 0xd6, 0x83, 0x84, 0xa4, 0x6c, 0xca,
+ 0x20, 0x04, 0x3a, 0x9f, 0xa6, 0x96, 0x9d, 0xe3, 0xdd, 0xe6, 0x98, 0xd2,
+ 0xc3, 0x48, 0x84, 0x04, 0x48, 0x5b, 0xea, 0x40, 0xd2, 0xdb, 0xdb, 0xff,
+ 0x6c, 0xb8, 0x6b, 0xfe, 0x1f, 0x2d, 0x8d, 0xa8, 0x8b, 0xcc, 0x60, 0xe0,
+ 0x32, 0xd5, 0x05, 0x97, 0xdb, 0x75, 0x32, 0xeb, 0x1d, 0x54, 0x56, 0xd7,
+ 0xbd, 0xe1, 0xa3, 0xef, 0x15, 0x5a, 0x4b, 0x7b, 0xa7, 0xa4, 0x53, 0xf9,
+ 0x89, 0x1e, 0xf3, 0x6a, 0x39, 0x8b, 0x80, 0x55, 0x3c, 0xb7, 0x31, 0x29,
+ 0x68, 0xb3, 0x5b, 0x71, 0x1a, 0x7f, 0x43, 0xe2, 0x89, 0xb3, 0x28, 0x86,
+ 0xad, 0x50, 0xff, 0x8b, 0x96, 0x0f, 0xf0, 0x48, 0x0c, 0x37, 0xc8, 0xe6,
+ 0x81, 0x39, 0x10, 0x2f, 0xcb, 0xab, 0xab, 0x3a, 0x6b, 0xba, 0x77, 0xd0,
+ 0x91, 0x3c, 0xb2, 0x73, 0x01, 0x12, 0x1c, 0x0f, 0xe6, 0xdc, 0x4e, 0x12,
+ 0x4f, 0xd2, 0xa6, 0x2d, 0xb8, 0xb8, 0xb9, 0x61, 0x04, 0xdc, 0xd9, 0x7e,
+ 0xc2, 0x03, 0x67, 0x73, 0xae, 0x56, 0x90, 0x82, 0x8c, 0xf3, 0x2a, 0xc2,
+ 0xb9, 0x7b, 0x2a, 0x3e, 0xe6, 0x8b, 0x05, 0xd9, 0x38, 0x60, 0xdc, 0xa0,
+ 0xbd, 0x6b, 0xe3, 0x04, 0xe3, 0xcc, 0x6c, 0x54, 0x6c, 0x67, 0x45, 0xc0,
+ 0x18, 0x25, 0x79, 0x62, 0xd1, 0xc3, 0xe3, 0xcc, 0x1c, 0xdb, 0x2c, 0xd4,
+ 0xda, 0xc9, 0xb5, 0xe1, 0xe5, 0x59, 0x4b, 0x7a, 0xe8, 0x94, 0x72, 0xaa,
+ 0x8b, 0x94, 0xc5, 0x0c, 0xdd, 0x2d, 0x2e, 0x03, 0x51, 0x52, 0x2f, 0x62,
+ 0x40, 0x2c, 0x07, 0x8c, 0xb7, 0x2e, 0xb7, 0xd1, 0xc9, 0xff, 0x3c, 0x76,
+ 0x59, 0xf1, 0x36, 0xed, 0x9c, 0x61, 0xc6, 0x31, 0xd0, 0x76, 0xd2, 0x1b,
+ 0x1c, 0x25, 0x83, 0x1e, 0x3a, 0xe2, 0xa2, 0xa8, 0x65, 0x07, 0x04, 0x0b,
+ 0xdb, 0x87, 0x54, 0x89, 0x04, 0xfa, 0xd0, 0x0e, 0xe7, 0xa1, 0x95, 0x81,
+ 0xfe, 0x84, 0x25, 0xe4, 0xc9, 0xd6, 0x51, 0xe2, 0x94, 0x34, 0x92, 0xb5,
+ 0xe0, 0xa3, 0x7d, 0x59, 0x61, 0xdc, 0xc9, 0x0b, 0x52, 0x1b, 0xa1, 0xc3,
+ 0x04, 0x50, 0x58, 0xcd, 0x42, 0xe2, 0xf4, 0xdb, 0x65, 0xf3, 0x4f, 0x8c,
+ 0x95, 0x54, 0xb4, 0x7f, 0xc1, 0xab, 0xe2, 0x6d, 0xea, 0x09, 0x6f, 0x6a,
+ 0xe2, 0x73, 0x1a, 0xfc, 0xd5, 0xd8, 0xd9, 0x2f, 0xd5, 0x57, 0xb1, 0x22,
+ 0x4f, 0xcd, 0xba, 0x35, 0x4a, 0x09, 0x8a, 0x60, 0x6f, 0xd8, 0x7c, 0x69,
+ 0x9d, 0x6b, 0xf6, 0xa8, 0x00, 0xea, 0x23, 0x64, 0x51, 0x5d, 0x59, 0x7f,
+ 0x85, 0xab, 0x2d, 0x75, 0x79, 0xb9, 0x53, 0x2f, 0xbd, 0x7f, 0x48, 0xc0,
+ 0xe0, 0x19, 0xb7, 0x52, 0xa3, 0x19, 0x69, 0x45, 0xd8, 0x4d, 0x82, 0x6b,
+ 0x37, 0x2f, 0x06, 0xf3, 0x6c, 0x4e, 0x00, 0x3e, 0x7e, 0xd0, 0x08, 0xc4,
+ 0x92, 0xb4, 0x70, 0xdd, 0x8d, 0xbc, 0x3e, 0x6c, 0x88, 0x37, 0x12, 0xf8,
+ 0x9e, 0x72, 0x82, 0x08, 0x7d, 0x33, 0x44, 0x34, 0x95, 0x85, 0xe0, 0x67,
+ 0xc8, 0xc4, 0xb2, 0x5f, 0x87, 0xa3, 0xec, 0xa3, 0x51, 0xa1, 0x8b, 0x3e,
+ 0xfd, 0x1c, 0xa9, 0x40, 0x3a, 0xfb, 0xd4, 0xd9, 0x26, 0x2b, 0x62, 0xf8,
+ 0xf9, 0x96, 0xf7, 0x59, 0x9e, 0xf3, 0x7c, 0x29, 0xef, 0xb2, 0x46, 0xa2,
+ 0xa2, 0xdc, 0x77, 0x09, 0xdf, 0x09, 0xac, 0xde, 0x74, 0xa2, 0xd3, 0x1c,
+ 0xf8, 0x4b, 0xb2, 0xc6, 0xf9, 0x84, 0xd4, 0xb7, 0x94, 0x2a, 0x69, 0x03,
+ 0x79, 0x3d, 0xfb, 0xe6, 0x1c, 0xf4, 0xd4, 0x05, 0xcb, 0xdd, 0x8f, 0x4b,
+ 0x04, 0xed, 0x10, 0xb9, 0x7a, 0x9a, 0x69, 0x6c, 0x4f, 0x4a, 0xfe, 0x65,
+ 0x90, 0xf2, 0x28, 0xe0, 0x72, 0xa3, 0x4b, 0x20, 0x46, 0x29, 0xae, 0x63,
+ 0x8c, 0x41, 0x50, 0x26, 0xac, 0x3a, 0x74, 0x33, 0xa1, 0x5c, 0x4e, 0x0f,
+ 0xc5, 0x87, 0xab, 0xa9, 0x3a, 0x47, 0xb4, 0xa3, 0x46, 0x0a, 0x8b, 0x69,
+ 0x74, 0x97, 0x62, 0xab, 0xd9, 0x4f, 0x40, 0xdc, 0x84, 0x87, 0x4a, 0xc1,
+ 0x3d, 0x83, 0xb1, 0xdb, 0xce, 0x2e, 0x9f, 0x3b, 0xea, 0x9a, 0x95, 0x87,
+ 0x68, 0xcf, 0x9b, 0x8b, 0x65, 0x13, 0x92, 0x45, 0xf2, 0x7a, 0x90, 0x22,
+ 0x6d, 0x27, 0x85, 0xa7, 0xf0, 0xee, 0xa6, 0x9c, 0xb1, 0x65, 0x1c, 0x44,
+ 0x58, 0x34, 0xe1, 0xca, 0x68, 0x57, 0xd4, 0x0e, 0xa1, 0xd5, 0xe0, 0x58,
+ 0xbe, 0x05, 0x10, 0xae, 0x15, 0x26, 0x31, 0x3a, 0x5e, 0x96, 0x12, 0xce,
+ 0x5b, 0xa1, 0xa0, 0xb7, 0x61, 0x7a, 0x8a, 0x39, 0xe7, 0xe3, 0xb2, 0x96,
+ 0xfd, 0x42, 0x49, 0x4d, 0x66, 0x8b, 0xa5, 0x15, 0xc4, 0xb2, 0x50, 0x36,
+ 0x28, 0xc1, 0x94, 0x55, 0xcb, 0x44, 0x3e, 0x91, 0x2e, 0xd8, 0x45, 0xf1,
+ 0xe6, 0x94, 0x0a, 0x68, 0xb6, 0x89, 0xd1, 0x01, 0xc8, 0x4d, 0x8b, 0xbd,
+ 0x83, 0x46, 0x99, 0x90, 0xe1, 0x06, 0x74, 0x69, 0x92, 0x2f, 0x68, 0x4e,
+ 0xe1, 0x4d, 0x4a, 0x56, 0x7b, 0xb3, 0x4c, 0x57, 0x4d, 0x5d, 0x1b, 0xb9,
+ 0xf3, 0xa0, 0x78, 0x72, 0x1a, 0x4c, 0x24, 0x94, 0x80, 0x6d, 0xbb, 0x22,
+ 0x6a, 0xe8, 0x2f, 0xe4, 0x4b, 0x3a, 0x67, 0x2b, 0xe4, 0xd1, 0x39, 0x98,
+ 0x65, 0x6e, 0xda, 0xd4, 0x04, 0xc8, 0x82, 0x92, 0x6b, 0x44, 0x13, 0x0d,
+ 0xb8, 0x29, 0xbd, 0xe5, 0x4f, 0x9a, 0x10, 0x58, 0xc7, 0x61, 0x37, 0xd3,
+ 0x8d, 0xd9, 0xbd, 0x6b, 0xd1, 0xcb, 0x50, 0x52, 0xbc, 0xa2, 0xc7, 0xdb,
+ 0x62, 0x3f, 0x91, 0x76, 0xb5, 0x9a, 0x91, 0x51, 0xbe, 0xf9, 0x9b, 0x07,
+ 0xbd, 0x44, 0x29, 0xb5, 0xf8, 0x2e, 0x47, 0xbb, 0x0a, 0x8f, 0x87, 0x9e,
+ 0x05, 0x3b, 0x55, 0x54, 0x47, 0x3e, 0xf6, 0xdd, 0xe6, 0x88, 0xa7, 0x71,
+ 0xef, 0xd5, 0x77, 0x87, 0xa7, 0xef, 0x8f, 0xf7, 0xbe, 0x48, 0xe8, 0x5f,
+ 0xfb, 0xfc, 0xaf, 0xfd, 0x5e, 0x74, 0x95, 0x8c, 0x70, 0xda, 0x7c, 0xb5,
+ 0x99, 0xd4, 0xf7, 0xf3, 0x71, 0x39, 0xb3, 0xab, 0x24, 0x73, 0xa1, 0xa1,
+ 0xb2, 0xbe, 0xdc, 0xde, 0x9a, 0x30, 0x27, 0x1e, 0xf2, 0xae, 0xa4, 0xae,
+ 0x05, 0x48, 0xa3, 0x52, 0x06, 0x71, 0x3a, 0x3f, 0x73, 0xab, 0x41, 0x72,
+ 0x9b, 0x0a, 0x2f, 0xc4, 0xeb, 0x2e, 0x57, 0x82, 0x9b, 0x98, 0x7f, 0x4a,
+ 0x0f, 0x74, 0x9d, 0x44, 0xa5, 0x06, 0x5f, 0x2d, 0x8e, 0xf1, 0xcf, 0x93,
+ 0x15, 0x81, 0xe0, 0x37, 0x72, 0x09, 0x60, 0x0e, 0xe5, 0x24, 0xe4, 0x77,
+ 0x05, 0x2b, 0x44, 0x24, 0x39, 0xf7, 0xca, 0x5b, 0xb2, 0x49, 0x20, 0x69,
+ 0x8b, 0xe3, 0x06, 0x7a, 0x34, 0x70, 0xf3, 0x95, 0xf3, 0xb1, 0x68, 0x2d,
+ 0x5e, 0xbe, 0x9c, 0xd9, 0x8f, 0xa7, 0xb4, 0x1f, 0x67, 0xa5, 0x58, 0x27,
+ 0x9a, 0x9f, 0x53, 0xb5, 0x58, 0x7a, 0x3c, 0x5e, 0x40, 0x4b, 0x67, 0x24,
+ 0x7c, 0x40, 0xad, 0xa0, 0x1f, 0xbb, 0x99, 0xa3, 0x59, 0x3c, 0x9a, 0x0c,
+ 0x45, 0xe0, 0xbd, 0xf2, 0xca, 0x49, 0x78, 0x1b, 0x1e, 0xf5, 0xaf, 0x41,
+ 0xd9, 0x42, 0x04, 0x15, 0x9a, 0xa5, 0xc1, 0x50, 0x38, 0x15, 0x50, 0x92,
+ 0x83, 0x29, 0xd0, 0x6e, 0x77, 0xa4, 0x59, 0xb1, 0xfb, 0x59, 0xb6, 0xad,
+ 0xb1, 0x43, 0xbd, 0x7e, 0x76, 0xde, 0x96, 0x7f, 0x37, 0x33, 0x9e, 0xca,
+ 0x47, 0x62, 0x77, 0x98, 0xdc, 0x49, 0x2b, 0x7b, 0xee, 0x8e, 0x3b, 0xa7,
+ 0xcb, 0xf9, 0xa7, 0xb8, 0x65, 0xac, 0xa6, 0x98, 0x7c, 0xa3, 0x26, 0x01,
+ 0x17, 0x18, 0x2c, 0x82, 0xdc, 0xb6, 0x36, 0xe3, 0xd2, 0xbb, 0xa2, 0x74,
+ 0x4a, 0xcc, 0x1e, 0x2b, 0x79, 0xeb, 0xb9, 0xa5, 0x97, 0x6b, 0xa0, 0x2b,
+ 0x52, 0xbb, 0x3a, 0xce, 0x8a, 0x8b, 0xe1, 0xf8, 0x53, 0x56, 0x4d, 0x28,
+ 0xf1, 0x76, 0x62, 0x34, 0x45, 0xe8, 0x5e, 0x9c, 0x2c, 0xcc, 0xc4, 0x3d,
+ 0xad, 0x7d, 0xa3, 0xe2, 0x0f, 0x26, 0xa9, 0xae, 0xff, 0xca, 0xb5, 0x07,
+ 0xf6, 0x60, 0x62, 0xf6, 0xf0, 0xd0, 0x72, 0xa4, 0xe8, 0x85, 0xd5, 0x3e,
+ 0xd7, 0x9a, 0xc8, 0x00, 0x0f, 0x7f, 0x00, 0x15, 0xc2, 0x0c, 0xeb, 0x8b,
+ 0xde, 0x6a, 0xca, 0x76, 0x41, 0x5f, 0x98, 0xf1, 0xc2, 0xa1, 0x4b, 0x28,
+ 0x61, 0x12, 0xb4, 0x01, 0xab, 0x71, 0x51, 0x76, 0x75, 0x90, 0xcd, 0x8c,
+ 0x00, 0x46, 0x71, 0xaf, 0x64, 0x03, 0x5b, 0xb8, 0xc5, 0x58, 0x59, 0x53,
+ 0x52, 0x1a, 0x84, 0x0b, 0xc3, 0xa4, 0xac, 0x59, 0x79, 0x47, 0x71, 0x91,
+ 0x36, 0x45, 0xd4, 0xbc, 0x9c, 0xf2, 0x7e, 0x18, 0xdf, 0x5b, 0x7e, 0xd7,
+ 0x01, 0xe9, 0x2e, 0xfc, 0xd9, 0xa1, 0x66, 0xe3, 0x46, 0x77, 0x80, 0x15,
+ 0x07, 0x1d, 0xbc, 0x7b, 0xea, 0xb0, 0x0b, 0x0d, 0xfb, 0x77, 0xf9, 0xbe,
+ 0x77, 0xfc, 0x0c, 0xb1, 0x8b, 0x06, 0x23, 0x1e, 0x97, 0xcd, 0x8d, 0xbd,
+ 0x72, 0x30, 0x60, 0x72, 0x8f, 0x19, 0x4b, 0xb5, 0x81, 0x52, 0xae, 0x96,
+ 0x59, 0x23, 0xb8, 0x36, 0xf1, 0xdf, 0x04, 0x21, 0xc0, 0x8f, 0xcc, 0x0e,
+ 0x52, 0x36, 0xca, 0xfc, 0x26, 0xac, 0x48, 0x0d, 0xb2, 0xcc, 0xc9, 0x7f,
+ 0x04, 0xa3, 0x14, 0x24, 0x34, 0xe6, 0xbb, 0x04, 0x16, 0xaa, 0x6b, 0x22,
+ 0x1c, 0xa1, 0xa1, 0xa7, 0x41, 0xb2, 0x31, 0xa6, 0x9a, 0x00, 0x2f, 0x6e,
+ 0x51, 0xb7, 0x98, 0x0e, 0xc0, 0x19, 0x72, 0x9c, 0x25, 0x4c, 0x6e, 0xf6,
+ 0xe5, 0x58, 0xdf, 0xa9, 0xb7, 0xc9, 0xd8, 0x8e, 0x80, 0xc0, 0x5a, 0x5a,
+ 0xe5, 0x8a, 0x43, 0xfb, 0x0f, 0x1b, 0x1a, 0x81, 0xe1, 0x55, 0xd5, 0xcc,
+ 0xb2, 0x06, 0x9e, 0x3a, 0x8b, 0xc4, 0xc4, 0x94, 0x87, 0xc2, 0x2b, 0x75,
+ 0x61, 0x31, 0xa8, 0xf9, 0xdd, 0x51, 0x2c, 0xa6, 0x50, 0xc5, 0xf4, 0x1d,
+ 0x28, 0x2f, 0x1e, 0x5b, 0x52, 0x5d, 0xca, 0x89, 0x44, 0xf3, 0x24, 0x68,
+ 0x9c, 0xa4, 0x89, 0xd1, 0x06, 0x74, 0x65, 0x80, 0x1f, 0xf7, 0x68, 0x69,
+ 0xb6, 0xa2, 0xe9, 0xfa, 0xf2, 0xc1, 0xbc, 0x88, 0x9b, 0x71, 0x60, 0xf6,
+ 0x7f, 0x1d, 0x8b, 0x1f, 0xea, 0xe5, 0x3a, 0x29, 0x8b, 0xbf, 0x2e, 0x8b,
+ 0x49, 0x63, 0x31, 0x71, 0xd0, 0x49, 0xcb, 0xbe, 0x47, 0xda, 0x24, 0x01,
+ 0x53, 0x0b, 0xa4, 0xe9, 0x6e, 0x7c, 0x7c, 0x48, 0xdc, 0x77, 0x94, 0x79,
+ 0x44, 0x70, 0x61, 0xba, 0x76, 0x66, 0x5e, 0x8e, 0xd2, 0x4d, 0x6e, 0x56,
+ 0xa8, 0x9a, 0xdc, 0x20, 0xab, 0x12, 0xee, 0x9d, 0x4c, 0x7d, 0x96, 0x2b,
+ 0xe0, 0x3f, 0xdc, 0xac, 0x28, 0x4a, 0x39, 0x89, 0x24, 0xca, 0x9b, 0x2e,
+ 0x0b, 0x15, 0xd4, 0xab, 0xfa, 0x19, 0xa2, 0xab, 0x6e, 0x68, 0xce, 0xb3,
+ 0x59, 0x9d, 0xd9, 0x10, 0xbe, 0x7d, 0xc7, 0x99, 0x22, 0x30, 0x8b, 0x8b,
+ 0x92, 0x63, 0x70, 0xe4, 0x0d, 0xca, 0xa3, 0xa7, 0x1c, 0x3d, 0x31, 0x2a,
+ 0x88, 0x74, 0x86, 0x0c, 0x3d, 0xda, 0x27, 0xf7, 0x9a, 0x75, 0x2f, 0x2d,
+ 0xe8, 0xae, 0xd3, 0xac, 0xfb, 0xe0, 0xf6, 0x29, 0xed, 0xbc, 0x49, 0x26,
+ 0xbb, 0x4e, 0x55, 0xae, 0xa4, 0x9c, 0xbc, 0x55, 0xc8, 0xb9, 0x60, 0x7a,
+ 0xc3, 0xfc, 0xcd, 0x14, 0x94, 0x1a, 0x0c, 0xae, 0x9a, 0xc5, 0x20, 0xba,
+ 0x04, 0x58, 0xeb, 0xf6, 0x16, 0x98, 0x5d, 0x09, 0x6b, 0xc1, 0x5b, 0x25,
+ 0x6c, 0xb9, 0x25, 0xd0, 0x78, 0x72, 0xfa, 0x86, 0x7d, 0xd0, 0x47, 0x17,
+ 0xf4, 0xb7, 0xdc, 0x72, 0x36, 0x0c, 0x71, 0x28, 0x88, 0x90, 0x99, 0x23,
+ 0xa8, 0x6f, 0xbf, 0xeb, 0x26, 0xfc, 0x6c, 0x9d, 0x8d, 0x76, 0x9e, 0xbc,
+ 0xd8, 0x0d, 0x53, 0xcf, 0xb7, 0xe8, 0x1b, 0x8e, 0xcc, 0xe6, 0xb3, 0xe1,
+ 0xd3, 0xdd, 0xe1, 0xee, 0x76, 0xa7, 0x37, 0x34, 0xdd, 0x6b, 0x92, 0xc9,
+ 0x95, 0x82, 0xd3, 0x5e, 0x1c, 0x34, 0x05, 0x2e, 0x5f, 0x5b, 0x41, 0x9b,
+ 0x7e, 0xda, 0xd2, 0x45, 0x76, 0x6b, 0xb6, 0x5a, 0xcc, 0x18, 0x4e, 0x4e,
+ 0x73, 0x60, 0xd9, 0xcd, 0x7b, 0x74, 0x9b, 0xe9, 0xfd, 0x42, 0x79, 0x81,
+ 0xed, 0x5c, 0x3d, 0x3c, 0x42, 0x17, 0x26, 0x03, 0x86, 0x23, 0x41, 0x90,
+ 0xda, 0x74, 0xaa, 0x02, 0x38, 0x0e, 0xc1, 0xf6, 0xdf, 0xdd, 0x01, 0xe2,
+ 0x39, 0xf4, 0xf6, 0x5e, 0x0c, 0x3f, 0xf3, 0xd7, 0x94, 0x34, 0xf1, 0x41,
+ 0x5a, 0x4f, 0xf2, 0x7c, 0xad, 0x8d, 0xa1, 0xa8, 0xc3, 0xbf, 0x2e, 0x41,
+ 0xcb, 0x62, 0xb6, 0x69, 0x9e, 0x72, 0x04, 0xd5, 0xb1, 0x59, 0x05, 0xcd,
+ 0x92, 0x1a, 0x69, 0xb6, 0xd8, 0xba, 0x76, 0x25, 0x85, 0x89, 0x48, 0xb6,
+ 0x85, 0x80, 0x0f, 0xee, 0xbc, 0x19, 0xce, 0x75, 0x47, 0x95, 0x32, 0x67,
+ 0x81, 0x09, 0x5c, 0x16, 0x55, 0x98, 0x50, 0x42, 0xf8, 0x48, 0xa2, 0xf3,
+ 0x34, 0x73, 0x5f, 0x97, 0x34, 0x4f, 0xb1, 0x49, 0x85, 0xd7, 0x00, 0x14,
+ 0x66, 0xd6, 0xb8, 0xb1, 0x67, 0x5f, 0x00, 0x3a, 0x7f, 0xf6, 0x00, 0x35,
+ 0x2d, 0x03, 0x25, 0x8d, 0x28, 0x83, 0xcc, 0xc0, 0x9a, 0x20, 0x6a, 0xcd,
+ 0xf6, 0x13, 0x0d, 0x84, 0x29, 0x63, 0x12, 0xb8, 0x22, 0x18, 0xb9, 0x21,
+ 0xcc, 0xc0, 0x44, 0xc8, 0x60, 0x67, 0x2b, 0x42, 0xb7, 0xd1, 0x37, 0xe3,
+ 0x03, 0xbf, 0x13, 0x76, 0x50, 0x91, 0xdd, 0x91, 0x34, 0xae, 0x45, 0x9d,
+ 0xa8, 0xaa, 0x9c, 0x9c, 0x39, 0x36, 0xe8, 0xcf, 0x2a, 0x19, 0x01, 0x21,
+ 0xe9, 0x82, 0x9e, 0x46, 0xb2, 0x08, 0x27, 0x38, 0x9d, 0xb5, 0x25, 0xcc,
+ 0x2a, 0xc0, 0x50, 0x44, 0x8c, 0x3b, 0x8f, 0xb3, 0x6a, 0x57, 0x6e, 0x3a,
+ 0x30, 0x38, 0x3b, 0xe0, 0x45, 0x13, 0x71, 0xf6, 0x10, 0x78, 0x82, 0x3d,
+ 0x23, 0xcc, 0x58, 0x82, 0xb9, 0x4e, 0x6b, 0x61, 0xfb, 0x1e, 0xf3, 0x6e,
+ 0x5c, 0xb3, 0x75, 0xaa, 0xf4, 0xee, 0xe1, 0xfd, 0xe8, 0xed, 0x1a, 0x99,
+ 0xe9, 0x19, 0x5c, 0x25, 0x1e, 0xc1, 0x1a, 0x7c, 0x04, 0x8a, 0xd7, 0x8b,
+ 0xf4, 0x54, 0x88, 0x7d, 0x99, 0x55, 0xd7, 0x4c, 0x66, 0x23, 0xc6, 0x0d,
+ 0xcb, 0xf5, 0x3f, 0xaf, 0x01, 0xe9, 0x3b, 0xa7, 0xa2, 0x1b, 0x45, 0xcb,
+ 0x73, 0xde, 0x61, 0x69, 0xc2, 0xb0, 0xcc, 0x95, 0xc7, 0x28, 0xf7, 0x47,
+ 0x1c, 0x0a, 0x37, 0xba, 0xbe, 0x07, 0x01, 0xe2, 0x05, 0x80, 0x63, 0xc8,
+ 0x1b, 0xa6, 0xd0, 0x79, 0xc5, 0x90, 0x80, 0x4c, 0x67, 0x46, 0xdb, 0x0a,
+ 0xe1, 0x5d, 0x4b, 0xd3, 0xb2, 0xc8, 0x2a, 0x92, 0x82, 0x40, 0x4d, 0x0f,
+ 0x14, 0xec, 0x1a, 0xbb, 0x58, 0xcc, 0xe6, 0x3f, 0xfa, 0xfa, 0x04, 0xe8,
+ 0x5f, 0x73, 0xe8, 0x0b, 0x49, 0x6d, 0xe5, 0xfe, 0x33, 0xad, 0xba, 0x35,
+ 0xc2, 0xae, 0x73, 0x6b, 0x32, 0xa6, 0x49, 0x8b, 0x32, 0xad, 0xa3, 0x23,
+ 0x27, 0xaa, 0x0c, 0x0b, 0xbe, 0x51, 0x74, 0x5a, 0x8a, 0x2c, 0x90, 0x42,
+ 0xaa, 0x11, 0xc2, 0xd4, 0x41, 0xca, 0xa3, 0xf3, 0x85, 0xaf, 0x6b, 0x0a,
+ 0x76, 0x5a, 0x4b, 0x08, 0x10, 0x8a, 0x45, 0x00, 0x37, 0x76, 0xfb, 0x95,
+ 0x69, 0xea, 0xb3, 0x10, 0x3a, 0x25, 0x9f, 0x8f, 0xd7, 0x91, 0xc0, 0x9a,
+ 0x74, 0xcc, 0x71, 0x3b, 0x75, 0x99, 0x86, 0xc3, 0xd1, 0x7d, 0x24, 0x2d,
+ 0x90, 0x53, 0x26, 0xe6, 0xf9, 0x53, 0xb5, 0x84, 0x42, 0x02, 0xff, 0x01,
+ 0x1c, 0x3c, 0xdd, 0x11, 0xe6, 0x7c, 0xd2, 0x2d, 0xa9, 0xc9, 0x24, 0x7e,
+ 0x6b, 0x4a, 0xc4, 0x23, 0xc0, 0xc9, 0x78, 0x73, 0x64, 0xaf, 0xbc, 0xa2,
+ 0x9b, 0xfd, 0xcf, 0xe2, 0xf0, 0x20, 0xe0, 0xb4, 0x1f, 0x04, 0x91, 0x4c,
+ 0x22, 0x86, 0xd8, 0x09, 0x6b, 0x00, 0x4d, 0x43, 0xbc, 0x39, 0x0e, 0x93,
+ 0x79, 0xb3, 0xc7, 0x3b, 0x8e, 0x78, 0x34, 0x6b, 0x2e, 0x55, 0xf0, 0x2f,
+ 0xdd, 0xc9, 0x7b, 0xf5, 0xf0, 0xec, 0xfd, 0xd2, 0xe9, 0x5b, 0x3f, 0x7b,
+ 0xcc, 0x47, 0xab, 0x58, 0xcb, 0x57, 0x9e, 0xa3, 0x07, 0x70, 0x01, 0xb6,
+ 0x15, 0xac, 0xc3, 0xa7, 0x2d, 0x65, 0x3c, 0xa3, 0xe8, 0xd5, 0x6f, 0xb5,
+ 0xea, 0xd8, 0x8c, 0xb0, 0x40, 0xa9, 0xf3, 0xf1, 0xe6, 0xd8, 0x5b, 0x89,
+ 0xb5, 0xf7, 0x59, 0x93, 0x44, 0x67, 0x44, 0x0b, 0x64, 0xe8, 0x7d, 0x32,
+ 0xfb, 0xbf, 0xe1, 0xcd, 0x3c, 0x86, 0x4f, 0x65, 0x10, 0x6f, 0x4e, 0x33,
+ 0x66, 0x44, 0x69, 0x0c, 0xc6, 0xf7, 0x67, 0xbd, 0xa4, 0x1e, 0x1a, 0x5c,
+ 0x0b, 0x7a, 0xc9, 0xf0, 0x14, 0x76, 0xd1, 0xc1, 0x4e, 0x69, 0x45, 0xe8,
+ 0x22, 0x4e, 0x4c, 0x9b, 0xb6, 0x64, 0x59, 0x9c, 0x18, 0xf9, 0xaa, 0x37,
+ 0xd8, 0x76, 0xbf, 0x3d, 0x67, 0xc4, 0x52, 0x83, 0xfb, 0x40, 0x16, 0x3a,
+ 0xde, 0x5c, 0x0e, 0xc3, 0x54, 0x96, 0x8f, 0xa8, 0x66, 0xa3, 0xcb, 0xf7,
+ 0xff, 0x67, 0x43, 0x64, 0xf7, 0x28, 0x76, 0x83, 0x94, 0xac, 0xb8, 0x66,
+ 0xd6, 0x27, 0xd3, 0x2d, 0xc0, 0xb4, 0x93, 0x16, 0x29, 0x7c, 0x00, 0x1e,
+ 0x80, 0xf1, 0xdd, 0x47, 0xcc, 0x6e, 0x86, 0xc8, 0x66, 0xce, 0x88, 0xf7,
+ 0x57, 0xf6, 0xe6, 0x99, 0x0e, 0x68, 0x78, 0x03, 0xd9, 0xb5, 0x43, 0xec,
+ 0xc3, 0x35, 0x9b, 0xd5, 0x6e, 0xce, 0xf8, 0xbe, 0x0c, 0x76, 0xe0, 0xea,
+ 0xdb, 0x51, 0x09, 0xd2, 0xe4, 0x7a, 0x6f, 0x5d, 0x96, 0x7b, 0x9f, 0xb7,
+ 0x2e, 0x4b, 0xf7, 0xce, 0xba, 0x6b, 0x72, 0x84, 0xb4, 0x8d, 0x76, 0x42,
+ 0x33, 0x5e, 0x02, 0x94, 0x04, 0xe4, 0xc4, 0x21, 0x40, 0x86, 0x5e, 0xed,
+ 0xea, 0x00, 0x82, 0x50, 0x71, 0xd8, 0x7f, 0xce, 0x4b, 0xa0, 0xc0, 0x8b,
+ 0x28, 0xf3, 0xc9, 0xb8, 0x2a, 0xef, 0x6a, 0x68, 0x4f, 0x6a, 0x4f, 0xa5,
+ 0x8c, 0xa3, 0xbc, 0x09, 0xa2, 0xf9, 0x66, 0x7a, 0x67, 0x96, 0xc8, 0xed,
+ 0x9b, 0xcb, 0xb7, 0xa7, 0x4c, 0x56, 0xcb, 0x99, 0x6c, 0x94, 0xb6, 0x22,
+ 0x7d, 0x5e, 0x8e, 0xe7, 0x66, 0xfd, 0x8d, 0x82, 0xd2, 0xb0, 0x34, 0x53,
+ 0x01, 0x19, 0xa4, 0xdb, 0x21, 0x2a, 0x24, 0x41, 0xc5, 0x45, 0xcc, 0xd7,
+ 0x2f, 0xae, 0x20, 0x17, 0x4d, 0x93, 0xc5, 0x45, 0xee, 0xd7, 0x6a, 0x80,
+ 0xc9, 0xce, 0xa7, 0xc1, 0xdd, 0xdd, 0xdd, 0x80, 0x7a, 0xe7, 0x14, 0x13,
+ 0x32, 0xd9, 0x8e, 0x18, 0x57, 0x01, 0x55, 0xea, 0x0d, 0x2d, 0x05, 0x3d,
+ 0x12, 0x9c, 0x3e, 0x4f, 0x53, 0x43, 0x4d, 0x05, 0x70, 0x42, 0x5a, 0x87,
+ 0x02, 0x29, 0x5e, 0x96, 0x50, 0x19, 0x64, 0x22, 0x69, 0x5b, 0xd9, 0xea,
+ 0x8a, 0x34, 0xa7, 0x7c, 0x39, 0x6a, 0x64, 0x5f, 0xff, 0x22, 0x55, 0x84,
+ 0x54, 0x22, 0x89, 0x49, 0x2c, 0x2b, 0xf2, 0x3f, 0xb1, 0x85, 0x11, 0x43,
+ 0x6e, 0x8b, 0x4e, 0xa2, 0x7e, 0x7d, 0x1b, 0x1d, 0x6b, 0x59, 0x26, 0xca,
+ 0x01, 0x4b, 0x6d, 0x7b, 0xc7, 0x37, 0xa2, 0x27, 0x32, 0x75, 0x07, 0xf0,
+ 0xf8, 0x58, 0x4d, 0xb3, 0xd9, 0x4c, 0xeb, 0x28, 0x71, 0x90, 0xc2, 0x9f,
+ 0x1b, 0x68, 0x78, 0x51, 0x1d, 0xdb, 0x11, 0x24, 0xd7, 0x8e, 0x13, 0x57,
+ 0xcd, 0x3b, 0x30, 0x98, 0x80, 0xb3, 0x04, 0xa4, 0xb8, 0x65, 0xdb, 0x3d,
+ 0x33, 0x08, 0x22, 0x88, 0xe2, 0xae, 0xe9, 0x7b, 0x91, 0x9a, 0x9c, 0x1c,
+ 0x26, 0x7e, 0x7e, 0xbf, 0x23, 0xec, 0x9b, 0x67, 0xd5, 0x35, 0xfd, 0x44,
+ 0xd9, 0xdc, 0xa2, 0x59, 0x23, 0x69, 0xe2, 0xd1, 0xd7, 0x24, 0xc9, 0xbf,
+ 0x0e, 0xf8, 0x52, 0x85, 0x67, 0x65, 0x49, 0xb0, 0x56, 0x71, 0x01, 0x6f,
+ 0x0e, 0xa6, 0x2c, 0x56, 0xa6, 0x69, 0x61, 0x66, 0xc2, 0x9c, 0xd8, 0x10,
+ 0x62, 0x31, 0x9b, 0xbd, 0x9a, 0x95, 0xcb, 0xfa, 0x7e, 0x33, 0x11, 0x7e,
+ 0x72, 0xa1, 0xf4, 0x6d, 0x38, 0x41, 0x13, 0x6b, 0x69, 0xd6, 0x77, 0x59,
+ 0x7c, 0xd4, 0x7b, 0x91, 0xd0, 0xee, 0x35, 0xfb, 0x16, 0x3b, 0xcd, 0x6d,
+ 0x7a, 0x1f, 0xfb, 0x57, 0xbf, 0xed, 0xe8, 0x2c, 0xc3, 0x13, 0xc9, 0x76,
+ 0xde, 0xe3, 0x0c, 0x3d, 0x17, 0x45, 0x88, 0x59, 0x79, 0x49, 0x2b, 0xea,
+ 0x63, 0x1b, 0xa4, 0x7b, 0x83, 0x19, 0xf4, 0xd4, 0x4b, 0xee, 0xc2, 0xff,
+ 0x90, 0x37, 0x2b, 0x52, 0x18, 0x5c, 0xcd, 0x2f, 0x4e, 0x61, 0x70, 0x94,
+ 0x42, 0x9c, 0xe2, 0x6d, 0xf9, 0xbc, 0xfd, 0x8c, 0xa9, 0x61, 0x72, 0x6e,
+ 0xe6, 0x6b, 0x10, 0x44, 0x7e, 0xae, 0xbd, 0xe6, 0x52, 0x9f, 0xaf, 0x4c,
+ 0xae, 0x35, 0x9b, 0x09, 0xcb, 0xf8, 0x64, 0x80, 0xce, 0x13, 0x6b, 0x4d,
+ 0x06, 0x48, 0x0f, 0x36, 0x2d, 0x69, 0x67, 0x59, 0xeb, 0xd3, 0x7a, 0x8a,
+ 0x89, 0x28, 0x95, 0x12, 0x9f, 0x29, 0x3a, 0xae, 0xc6, 0x34, 0xfb, 0xda,
+ 0xd9, 0xcd, 0x19, 0x9c, 0x19, 0xef, 0xf4, 0xd2, 0x7c, 0x40, 0x08, 0x58,
+ 0xd6, 0x54, 0xba, 0xc9, 0x3a, 0x46, 0x17, 0xe7, 0xee, 0x3a, 0xb1, 0x12,
+ 0x0c, 0x96, 0x91, 0x89, 0x6b, 0x20, 0x4d, 0xfe, 0xd9, 0xf6, 0x6e, 0x1b,
+ 0x67, 0x75, 0x75, 0xaf, 0xa0, 0xd5, 0xfe, 0x42, 0xc7, 0x3b, 0xe7, 0x44,
+ 0x20, 0xbf, 0x7e, 0xa2, 0x50, 0x29, 0x69, 0x4d, 0x3c, 0x5d, 0xbe, 0xa9,
+ 0x97, 0xcd, 0xb2, 0x6b, 0x1e, 0xd3, 0xcb, 0xd3, 0xe3, 0xef, 0x8e, 0x4f,
+ 0x83, 0x0b, 0xec, 0xeb, 0xd1, 0x68, 0xe7, 0x63, 0x56, 0x8d, 0x51, 0x85,
+ 0x89, 0x7c, 0xde, 0x09, 0x9e, 0xb3, 0x78, 0x1d, 0x4f, 0xaa, 0xdf, 0xb9,
+ 0xe4, 0xf2, 0x84, 0x51, 0xbb, 0x81, 0xb1, 0x4f, 0x88, 0x4c, 0xfe, 0xa4,
+ 0x30, 0xa6, 0x22, 0x7f, 0x44, 0x80, 0x61, 0xb8, 0xa5, 0x26, 0x55, 0x36,
+ 0xe5, 0x2a, 0x45, 0x21, 0x24, 0xac, 0x20, 0x35, 0x3f, 0x49, 0x5e, 0x63,
+ 0x29, 0x19, 0x16, 0x8c, 0xe8, 0x87, 0x1d, 0x44, 0xf0, 0xc6, 0xa2, 0x34,
+ 0x57, 0xc8, 0x7d, 0xf2, 0x5a, 0xbe, 0x59, 0xb3, 0x73, 0x93, 0x66, 0x83,
+ 0xb9, 0x67, 0xd8, 0x64, 0x38, 0xfb, 0x76, 0x70, 0x38, 0x1a, 0xbc, 0x3e,
+ 0x3e, 0x3d, 0xfe, 0xfa, 0xf0, 0xf2, 0x58, 0x69, 0x41, 0xc9, 0xfd, 0xbf,
+ 0x42, 0x19, 0x62, 0x79, 0xf7, 0xad, 0x4c, 0x0b, 0xc6, 0x4f, 0xb4, 0xb2,
+ 0x4d, 0xce, 0x64, 0xcf, 0xca, 0x9e, 0xcb, 0xa5, 0xf4, 0xc8, 0x44, 0x11,
+ 0x64, 0x68, 0xbc, 0x39, 0x73, 0xfa, 0x66, 0x73, 0xe9, 0x6a, 0x30, 0x82,
+ 0x74, 0x76, 0x47, 0x65, 0x1f, 0xde, 0x17, 0x84, 0x8b, 0xce, 0x6d, 0x1a,
+ 0x20, 0x8f, 0xde, 0x9b, 0x7c, 0x6f, 0x66, 0x5b, 0x0b, 0x0c, 0xfa, 0xcc,
+ 0x15, 0xc6, 0xbb, 0xe6, 0xf0, 0x22, 0xf8, 0xf8, 0x1a, 0x4f, 0x76, 0x68,
+ 0x3a, 0x87, 0x2e, 0x89, 0xb7, 0xb0, 0xbf, 0x8a, 0xa4, 0xd9, 0xd3, 0x06,
+ 0xaa, 0x27, 0x37, 0xd9, 0x5c, 0x34, 0x4a, 0x0a, 0x38, 0x23, 0xbd, 0x93,
+ 0xf3, 0xe5, 0x84, 0xd9, 0x80, 0x0f, 0xfa, 0x38, 0x83, 0x60, 0x46, 0x3c,
+ 0x07, 0x9b, 0x37, 0x06, 0xdd, 0xbc, 0x23, 0xf2, 0x5e, 0x72, 0xd2, 0x13,
+ 0x04, 0x03, 0x59, 0xa1, 0x43, 0xa0, 0xc5, 0x38, 0x4f, 0xa0, 0x68, 0x85,
+ 0x7e, 0xad, 0xbc, 0xe4, 0xda, 0x24, 0xdd, 0xcb, 0xdf, 0xb2, 0x80, 0x7a,
+ 0x3c, 0x7e, 0x14, 0xd9, 0xc1, 0x8f, 0x20, 0x30, 0x55, 0xf5, 0xa5, 0x4e,
+ 0xfe, 0x4a, 0x0f, 0x27, 0xef, 0x27, 0xee, 0xbb, 0x24, 0xe4, 0x60, 0xb3,
+ 0x46, 0x51, 0xb8, 0x51, 0xc1, 0x20, 0xb1, 0x76, 0xea, 0xae, 0xf6, 0x97,
+ 0x6d, 0x34, 0xa5, 0x28, 0xe5, 0xa5, 0x4c, 0xe4, 0x2c, 0x0b, 0xaf, 0xef,
+ 0x23, 0x05, 0x43, 0x8b, 0xf8, 0x97, 0x88, 0x56, 0xf5, 0xaf, 0x21, 0x3d,
+ 0xb3, 0x4d, 0x9f, 0x1a, 0x64, 0x8b, 0x80, 0xf7, 0x72, 0xeb, 0x8d, 0x52,
+ 0xd9, 0x5a, 0x3d, 0xcf, 0xaf, 0xe5, 0xe0, 0x11, 0xaf, 0x1f, 0x9f, 0x5f,
+ 0x70, 0x41, 0xc5, 0x53, 0xfa, 0x8b, 0x04, 0x6d, 0xea, 0x18, 0x57, 0x8f,
+ 0x50, 0x69, 0x13, 0xc6, 0x20, 0x83, 0xd7, 0xdf, 0xc6, 0x62, 0x15, 0x58,
+ 0xc6, 0x70, 0x42, 0xe1, 0x2b, 0x95, 0x03, 0x11, 0xcb, 0x45, 0xf4, 0x0a,
+ 0x00, 0x51, 0x4f, 0xa8, 0x0b, 0x42, 0x4f, 0x88, 0x4e, 0x30, 0x24, 0x52,
+ 0x7d, 0xeb, 0x67, 0xf4, 0x4b, 0xd2, 0xfd, 0x14, 0x38, 0xb0, 0x62, 0x1a,
+ 0x5b, 0x7c, 0xc2, 0xd4, 0x2c, 0xbd, 0x99, 0x54, 0x28, 0x17, 0x95, 0x9a,
+ 0xae, 0x0c, 0x3b, 0x43, 0x05, 0xe1, 0x3f, 0x71, 0x83, 0x85, 0xae, 0x74,
+ 0x94, 0x3a, 0x10, 0xbf, 0x98, 0xe0, 0x8c, 0x31, 0x60, 0x85, 0x4f, 0xf7,
+ 0x25, 0x44, 0x9d, 0xda, 0x70, 0x25, 0x4a, 0x4d, 0x22, 0x76, 0x1d, 0x68,
+ 0xdb, 0x82, 0x31, 0xe7, 0x31, 0x50, 0x66, 0xb4, 0x44, 0x5d, 0x59, 0x39,
+ 0xbb, 0x92, 0xc8, 0x56, 0x0a, 0x3a, 0x48, 0x98, 0x19, 0x63, 0xd6, 0x26,
+ 0x00, 0xd2, 0xba, 0x49, 0x8b, 0xc8, 0xa9, 0x33, 0x13, 0x6f, 0x6b, 0x2e,
+ 0x60, 0x94, 0xb2, 0x6c, 0x11, 0x85, 0x9a, 0xf6, 0x46, 0x0b, 0xe3, 0x4b,
+ 0x80, 0xf6, 0x4f, 0xa4, 0xb0, 0xe7, 0xe4, 0x12, 0x97, 0xae, 0xf0, 0xcc,
+ 0x10, 0xf9, 0x87, 0xee, 0xb7, 0x32, 0xb6, 0xab, 0x44, 0xbc, 0x38, 0x47,
+ 0x7d, 0x6b, 0x0b, 0xae, 0x70, 0x01, 0x67, 0x89, 0x45, 0xf4, 0xd4, 0xc8,
+ 0x99, 0xf0, 0x88, 0xff, 0xa8, 0x86, 0x59, 0x3b, 0xa9, 0x02, 0xcb, 0x87,
+ 0x7b, 0xbd, 0xe8, 0x02, 0x18, 0x32, 0x46, 0xd2, 0x9b, 0x6f, 0xa3, 0xbb,
+ 0xe4, 0x95, 0xb1, 0xc1, 0x3c, 0xda, 0x3c, 0xc1, 0xf7, 0x5f, 0xa3, 0x73,
+ 0xf4, 0x1d, 0xbc, 0x80, 0x93, 0x6f, 0xf4, 0x07, 0x2e, 0x81, 0x47, 0x88,
+ 0x1d, 0xde, 0xca, 0xe3, 0xcc, 0x7c, 0x2f, 0xa7, 0x1a, 0x1b, 0x7e, 0x8d,
+ 0x9a, 0x10, 0xb5, 0x5a, 0x9b, 0x0d, 0x48, 0xb7, 0x05, 0x29, 0x62, 0x24,
+ 0x85, 0xe8, 0x5d, 0x0a, 0xc5, 0x67, 0x89, 0x5f, 0xa0, 0x06, 0x1b, 0x02,
+ 0xda, 0xfb, 0x79, 0x5f, 0x42, 0x61, 0x00, 0xab, 0x05, 0x11, 0x65, 0x33,
+ 0x81, 0x13, 0xcb, 0x11, 0xa2, 0x4f, 0xa6, 0xf5, 0x6d, 0xfc, 0x84, 0xd7,
+ 0xb7, 0xd1, 0x13, 0xfe, 0x88, 0x73, 0xee, 0x6c, 0x9f, 0xe3, 0xf3, 0xd1,
+ 0x77, 0xab, 0xd2, 0xfd, 0x99, 0x16, 0x9d, 0x8f, 0xb8, 0x1b, 0x1d, 0x6d,
+ 0x7a, 0xff, 0x98, 0xaf, 0x3e, 0xe7, 0x51, 0x77, 0x7d, 0x70, 0xce, 0xcd,
+ 0xf7, 0xe5, 0x70, 0x9f, 0x1f, 0x8e, 0xbe, 0xf3, 0x8e, 0xb5, 0xb7, 0x05,
+ 0x70, 0x8e, 0x63, 0xd9, 0xc6, 0xa8, 0xbf, 0x53, 0x29, 0x39, 0x20, 0x35,
+ 0x16, 0xdd, 0xef, 0xf5, 0xed, 0x63, 0xf6, 0xbb, 0xe9, 0x49, 0xb0, 0xdf,
+ 0x83, 0x39, 0x5e, 0xb7, 0xdf, 0xfd, 0x85, 0x6a, 0x63, 0x20, 0xbd, 0xdd,
+ 0x5e, 0x70, 0x95, 0xbe, 0x1b, 0x14, 0x7c, 0x8d, 0x6f, 0x73, 0x20, 0x61,
+ 0x79, 0x6b, 0x87, 0x10, 0x31, 0xf4, 0xf3, 0x97, 0x6d, 0x74, 0xf3, 0x42,
+ 0xb0, 0xd1, 0x75, 0x3d, 0xe3, 0x3b, 0x7d, 0xd5, 0x46, 0x57, 0x84, 0x68,
+ 0xc6, 0x9b, 0xdc, 0xdf, 0xe3, 0xe1, 0xfe, 0xf6, 0x76, 0xad, 0x9f, 0xda,
+ 0x1b, 0xce, 0x90, 0x02, 0x95, 0x6c, 0x9e, 0xba, 0x97, 0xa6, 0x1f, 0xa1,
+ 0x85, 0xe8, 0x2b, 0x94, 0x0d, 0x09, 0x8e, 0xa1, 0x77, 0xdd, 0x12, 0x2a,
+ 0xb4, 0xc0, 0xec, 0x95, 0xea, 0xd2, 0xb8, 0xc5, 0x71, 0x6d, 0xc3, 0x54,
+ 0xf7, 0xb3, 0xc4, 0xaf, 0x82, 0x13, 0xd9, 0x22, 0x7f, 0xc9, 0xa2, 0xf9,
+ 0xc6, 0x75, 0x46, 0x10, 0x01, 0xf0, 0x0e, 0xb5, 0xce, 0x69, 0x51, 0x0f,
+ 0x5c, 0x15, 0xc5, 0x97, 0xf6, 0xaf, 0x81, 0x96, 0xfe, 0xfa, 0xdd, 0xa8,
+ 0x73, 0x5c, 0xeb, 0x8c, 0x11, 0xf3, 0xd7, 0x38, 0x7a, 0xe6, 0xf7, 0x36,
+ 0xcf, 0xa5, 0x76, 0x55, 0x4b, 0xa4, 0xc9, 0x20, 0x91, 0x99, 0x3e, 0x61,
+ 0xb9, 0xe5, 0x9d, 0xe2, 0x93, 0x6a, 0xe1, 0x4f, 0xf8, 0xfb, 0xc8, 0xe7,
+ 0xe2, 0xf5, 0x4e, 0x32, 0x7d, 0xc9, 0x93, 0x12, 0xa3, 0x79, 0x61, 0x21,
+ 0x4b, 0xfd, 0xd4, 0x02, 0x6a, 0xc2, 0xba, 0x2a, 0xf4, 0x4e, 0xb6, 0xe0,
+ 0x42, 0x91, 0x78, 0x85, 0x23, 0x63, 0x91, 0x99, 0x2d, 0xa1, 0x8d, 0x11,
+ 0xc8, 0xce, 0xf6, 0x5a, 0x6d, 0x8a, 0xa7, 0x70, 0x71, 0xfb, 0x74, 0x40,
+ 0x8f, 0xab, 0xf2, 0x24, 0x3f, 0x7c, 0x8e, 0x1f, 0x0e, 0xbb, 0x13, 0x1d,
+ 0xd8, 0x9a, 0x52, 0xe5, 0xc8, 0x7a, 0x19, 0x97, 0xc5, 0x94, 0xf8, 0x9f,
+ 0xa9, 0xdb, 0x5a, 0xb1, 0xf8, 0x2e, 0x75, 0xbc, 0xd5, 0x24, 0xc8, 0x85,
+ 0x9d, 0xc5, 0xec, 0xa5, 0xee, 0xe4, 0xa6, 0x28, 0x5d, 0xec, 0x79, 0x14,
+ 0x9f, 0x74, 0xc3, 0x6f, 0xad, 0x1e, 0xbf, 0x94, 0x61, 0xc6, 0x97, 0x9c,
+ 0xd7, 0xdc, 0xb3, 0xe4, 0xc7, 0x39, 0x17, 0x5d, 0x78, 0x99, 0x2f, 0x06,
+ 0xfa, 0x26, 0x0b, 0xe1, 0x79, 0xfa, 0x51, 0xae, 0xc6, 0xa7, 0xb4, 0x0c,
+ 0x91, 0x41, 0x72, 0x51, 0x34, 0x3f, 0xb0, 0x43, 0xdb, 0xc6, 0xee, 0x1a,
+ 0x51, 0x59, 0x1a, 0xcb, 0xd1, 0x06, 0xf3, 0x86, 0xbf, 0x11, 0x4b, 0x83,
+ 0x51, 0xe0, 0xaa, 0xef, 0xb3, 0x50, 0xc8, 0x3b, 0x7a, 0x61, 0xdf, 0x7d,
+ 0x70, 0xfd, 0xdc, 0x7e, 0x58, 0xb7, 0x7e, 0x3a, 0x67, 0xff, 0x3d, 0xd6,
+ 0xef, 0xf9, 0xef, 0xb6, 0x7e, 0xcf, 0xff, 0x5b, 0xac, 0xdf, 0xf3, 0x7f,
+ 0x7c, 0xfd, 0x9e, 0x76, 0xd7, 0xef, 0xf9, 0x7f, 0x97, 0xf5, 0xd3, 0x72,
+ 0x1f, 0xba, 0x7a, 0x59, 0xb0, 0x7e, 0xe4, 0x09, 0xe1, 0x2b, 0x04, 0x04,
+ 0x5f, 0xd0, 0x86, 0x68, 0xba, 0xf5, 0x4d, 0x0e, 0x3c, 0x08, 0xd6, 0x8c,
+ 0x3d, 0xbb, 0x0a, 0x79, 0x44, 0xe6, 0x7d, 0x9c, 0xa7, 0x51, 0xb8, 0x93,
+ 0x94, 0xf0, 0xec, 0xe4, 0x3c, 0xb1, 0x1d, 0xf0, 0x96, 0xc1, 0xd1, 0x0c,
+ 0x41, 0xc9, 0x89, 0xba, 0x5c, 0x6b, 0xf2, 0xc3, 0x99, 0x09, 0xe0, 0x64,
+ 0xb3, 0xda, 0xa5, 0x4a, 0xc6, 0xb8, 0x84, 0xcc, 0xe4, 0x1d, 0xbc, 0xa4,
+ 0xf9, 0x1a, 0xf0, 0xe3, 0x5f, 0x46, 0xf3, 0x7f, 0x50, 0x55, 0xcd, 0x75,
+ 0x29, 0xe6, 0x66, 0xf7, 0xa6, 0xee, 0xd1, 0xcb, 0xb6, 0xaa, 0xf0, 0x84,
+ 0x2e, 0xe1, 0x64, 0xf0, 0xd0, 0x92, 0xbd, 0x86, 0x66, 0xb0, 0x9c, 0x2f,
+ 0x24, 0x2f, 0xf0, 0x81, 0xbc, 0x28, 0xe8, 0x9f, 0xdb, 0xc9, 0xf7, 0xc8,
+ 0x7a, 0x62, 0xcf, 0xaa, 0xe4, 0x0a, 0xd8, 0x92, 0xc0, 0x0a, 0xc4, 0xd6,
+ 0xb0, 0xc5, 0x0a, 0x02, 0xa3, 0x28, 0x97, 0x4c, 0x27, 0xe7, 0x97, 0x41,
+ 0xed, 0xb6, 0xc6, 0x6e, 0x56, 0xf8, 0x1a, 0x92, 0x60, 0xa2, 0x25, 0x8d,
+ 0x97, 0x3f, 0x1a, 0xa5, 0x8d, 0xa4, 0x6b, 0x91, 0x13, 0x25, 0xa8, 0xd3,
+ 0x4c, 0x03, 0x66, 0x5e, 0x37, 0x4d, 0x0d, 0x25, 0x5b, 0xc2, 0xab, 0x50,
+ 0xab, 0xbd, 0x07, 0x33, 0x4b, 0x0c, 0x4a, 0xac, 0xaa, 0x0c, 0xec, 0x42,
+ 0xc9, 0xb9, 0xb7, 0xa4, 0xa8, 0xc5, 0xad, 0x02, 0xe7, 0x41, 0x0f, 0xe3,
+ 0x53, 0xa9, 0x0f, 0xc6, 0x61, 0x06, 0x8c, 0xc2, 0x38, 0x79, 0xc4, 0xff,
+ 0x82, 0xfd, 0xbb, 0x02, 0xc4, 0xcd, 0x3a, 0x84, 0x6f, 0x87, 0x06, 0x6b,
+ 0xee, 0x43, 0xc4, 0x87, 0x1b, 0xeb, 0xe0, 0x9b, 0x8c, 0x0b, 0xbc, 0xc9,
+ 0xfc, 0x2c, 0x44, 0x4b, 0xe1, 0xc6, 0x0e, 0x61, 0x06, 0x1e, 0x99, 0xc1,
+ 0x09, 0x8a, 0x2d, 0xa0, 0xa5, 0x47, 0xa2, 0xb1, 0xcc, 0x56, 0x4f, 0x88,
+ 0x51, 0x96, 0x0c, 0x41, 0x22, 0x1e, 0xb7, 0x29, 0x53, 0x77, 0xfc, 0x13,
+ 0xb3, 0xfe, 0x3c, 0x54, 0xa7, 0x2f, 0x92, 0xb2, 0x6b, 0x8e, 0x85, 0xae,
+ 0x43, 0x10, 0xda, 0x64, 0x3f, 0xbf, 0x4c, 0x1c, 0x87, 0x67, 0x65, 0x17,
+ 0x1f, 0x17, 0x4d, 0x55, 0x2e, 0xee, 0x93, 0xaf, 0x53, 0x1a, 0x16, 0xd4,
+ 0xc2, 0x34, 0x9b, 0x07, 0x39, 0x1f, 0x5c, 0x3b, 0x4e, 0xb4, 0x34, 0xae,
+ 0x23, 0xa7, 0x23, 0x84, 0x5e, 0xc9, 0xd3, 0x92, 0x50, 0xd1, 0xf7, 0x29,
+ 0xf9, 0xf3, 0x34, 0x77, 0x0c, 0xb0, 0xc9, 0xd1, 0xe8, 0x34, 0x54, 0xa6,
+ 0x95, 0xfe, 0x7e, 0x6d, 0x8e, 0x2f, 0x5a, 0x1b, 0xb4, 0x4f, 0x94, 0x19,
+ 0x39, 0x37, 0xfe, 0x32, 0x7a, 0x98, 0x65, 0xdc, 0xd9, 0x4c, 0x33, 0xe1,
+ 0x85, 0x38, 0x3c, 0x99, 0x54, 0xf7, 0x0b, 0x32, 0xd0, 0xf8, 0x65, 0x39,
+ 0x7b, 0xd4, 0x3f, 0x26, 0x51, 0x5c, 0x9b, 0x46, 0xf8, 0x1e, 0x11, 0x32,
+ 0x79, 0x15, 0x82, 0x98, 0x82, 0x99, 0x66, 0xba, 0x28, 0xb8, 0xaa, 0x82,
+ 0x99, 0x64, 0xd6, 0x14, 0x04, 0x09, 0xae, 0x22, 0x47, 0xc0, 0x02, 0x86,
+ 0x12, 0x1b, 0x1d, 0x2a, 0x65, 0xb8, 0x75, 0x90, 0x69, 0x49, 0x74, 0xbd,
+ 0xf0, 0x68, 0x6f, 0xeb, 0xc5, 0x20, 0x6f, 0x74, 0x6a, 0x81, 0xaa, 0x08,
+ 0xb6, 0x4c, 0xbb, 0x29, 0x65, 0x4c, 0x17, 0x01, 0x3b, 0x03, 0x87, 0xbc,
+ 0xf7, 0x76, 0x77, 0x1f, 0xa4, 0xdd, 0x10, 0xf7, 0xaf, 0xb2, 0x6f, 0x60,
+ 0x14, 0x54, 0xaa, 0x50, 0xa8, 0x37, 0x1a, 0xad, 0x03, 0xee, 0x88, 0x37,
+ 0x90, 0x24, 0x9a, 0xe6, 0x92, 0x70, 0xd0, 0x25, 0x2a, 0x32, 0x9f, 0xb4,
+ 0x24, 0x18, 0xee, 0x08, 0xb2, 0xac, 0x63, 0x76, 0x1a, 0xd0, 0x70, 0x18,
+ 0x11, 0x76, 0x8c, 0x3e, 0xd6, 0x07, 0xad, 0x77, 0xa2, 0x05, 0xf2, 0xa8,
+ 0x43, 0xf4, 0x92, 0x68, 0x2f, 0xc3, 0xe4, 0xab, 0x7b, 0x67, 0x38, 0x79,
+ 0x45, 0xde, 0xd1, 0x2b, 0x76, 0xb5, 0x4a, 0x79, 0xe6, 0x28, 0xf1, 0xfc,
+ 0x5a, 0x6a, 0x8d, 0x7f, 0xf1, 0x78, 0xa5, 0x8c, 0x00, 0x5a, 0xd4, 0x68,
+ 0x15, 0x19, 0xfa, 0x71, 0x8f, 0x81, 0x1d, 0xad, 0xa5, 0x25, 0x74, 0xc3,
+ 0xf6, 0x58, 0xf5, 0xf9, 0x52, 0x59, 0xcb, 0x87, 0xda, 0x26, 0x4a, 0x69,
+ 0xa3, 0xf2, 0x3e, 0x6b, 0xab, 0x25, 0x94, 0xa9, 0x38, 0x40, 0x3e, 0x62,
+ 0x37, 0x0b, 0x9b, 0x52, 0x18, 0x51, 0x17, 0xfb, 0x13, 0xa3, 0x34, 0x9c,
+ 0x09, 0x4c, 0x04, 0x3d, 0x0c, 0x83, 0xd0, 0x5c, 0x89, 0x0e, 0xff, 0x63,
+ 0x8c, 0x57, 0x4b, 0x4f, 0xba, 0x9f, 0x2c, 0x15, 0xa4, 0x46, 0xa9, 0x2d,
+ 0xcd, 0xc6, 0x74, 0x98, 0x66, 0x2e, 0xcb, 0xa3, 0x9e, 0x1a, 0xe8, 0x64,
+ 0x9c, 0x7c, 0x89, 0x70, 0x31, 0x54, 0x09, 0xd6, 0x3d, 0xde, 0x5f, 0x9c,
+ 0xf6, 0x13, 0xa9, 0xad, 0x48, 0x80, 0x4f, 0xb3, 0xd2, 0x71, 0xdd, 0xc8,
+ 0x51, 0x99, 0x33, 0x2f, 0x1d, 0x8f, 0xa5, 0x76, 0x0c, 0x4b, 0x24, 0xb6,
+ 0xe1, 0xfc, 0x34, 0x4d, 0xd6, 0x8a, 0x90, 0x09, 0x5d, 0x52, 0xac, 0xb4,
+ 0x91, 0x60, 0xa6, 0x07, 0x37, 0x91, 0x4a, 0x08, 0xf7, 0xa1, 0x76, 0xda,
+ 0xd2, 0x1a, 0x69, 0xda, 0x3e, 0x27, 0x83, 0x92, 0xb3, 0x22, 0x92, 0x52,
+ 0x2a, 0xa1, 0x48, 0xa2, 0x43, 0x4b, 0xb0, 0x3c, 0xc8, 0x29, 0x5d, 0x56,
+ 0x5e, 0x40, 0xb2, 0x77, 0x93, 0x9b, 0x75, 0x2d, 0x7a, 0x4c, 0xb7, 0xb6,
+ 0x1c, 0x33, 0x95, 0x5f, 0x83, 0x0f, 0xc7, 0xe0, 0xc1, 0x84, 0xaf, 0x73,
+ 0xde, 0xb1, 0x78, 0xe1, 0xc4, 0x16, 0x08, 0xb6, 0x9f, 0xb4, 0x0e, 0x85,
+ 0x2a, 0x9c, 0xdc, 0x35, 0x97, 0xcf, 0x1a, 0xe5, 0x7c, 0xe7, 0x9d, 0xe2,
+ 0x92, 0x69, 0xe8, 0xf4, 0xa3, 0x86, 0x43, 0xdf, 0xe7, 0x51, 0x77, 0xde,
+ 0x3e, 0xbf, 0x62, 0x3b, 0x4d, 0x74, 0x5c, 0x5d, 0xa9, 0x6c, 0x96, 0x7d,
+ 0x84, 0x92, 0x53, 0xb0, 0x4e, 0xe9, 0x3d, 0xb2, 0x06, 0xec, 0xa7, 0xb1,
+ 0xc3, 0x03, 0x5e, 0x25, 0x22, 0x19, 0x2b, 0xa1, 0x3b, 0xca, 0x5e, 0xa6,
+ 0xc2, 0x35, 0x93, 0x2a, 0x5f, 0x34, 0x1c, 0xfe, 0x0d, 0xca, 0x6a, 0xc7,
+ 0xd5, 0xb0, 0xeb, 0x59, 0x39, 0x4e, 0xf9, 0x9c, 0x58, 0xb0, 0x87, 0xba,
+ 0x9d, 0x5a, 0x84, 0x9f, 0x28, 0x15, 0x6c, 0xb6, 0x67, 0x24, 0x51, 0xc7,
+ 0x0c, 0x79, 0x70, 0x80, 0x7a, 0x97, 0x14, 0x8f, 0x5a, 0xf7, 0x41, 0xfb,
+ 0x09, 0xe6, 0xd4, 0x1a, 0x5c, 0xf5, 0xe5, 0x04, 0x6b, 0xc6, 0x23, 0xb0,
+ 0x32, 0xb5, 0x77, 0xae, 0x02, 0x55, 0x08, 0x99, 0xc9, 0xd3, 0x65, 0xd6,
+ 0x86, 0xce, 0x6c, 0x4a, 0xb4, 0x4e, 0x8a, 0x9f, 0x00, 0xbe, 0x61, 0x6b,
+ 0x6b, 0x4b, 0x54, 0x2c, 0x0a, 0x0b, 0x21, 0x7a, 0x4d, 0x5b, 0x7d, 0x5a,
+ 0x6b, 0xc0, 0x16, 0x74, 0x33, 0xb9, 0xce, 0x29, 0x22, 0xd1, 0x9b, 0x2b,
+ 0x66, 0xef, 0xaf, 0x82, 0x32, 0xa6, 0x57, 0xac, 0xa7, 0x01, 0xe7, 0xc9,
+ 0x6b, 0xb2, 0x66, 0x66, 0x7c, 0xa6, 0xde, 0xfd, 0x96, 0x54, 0xb3, 0x9f,
+ 0x8e, 0x5f, 0x51, 0x10, 0x6d, 0x5c, 0xf0, 0xdb, 0xcc, 0xe2, 0x16, 0x55,
+ 0x11, 0xe6, 0xec, 0x95, 0x14, 0xf1, 0x5f, 0x70, 0xce, 0x69, 0xe1, 0x17,
+ 0x96, 0x06, 0xf1, 0xcc, 0x1a, 0x3a, 0x29, 0x52, 0xd7, 0x18, 0x65, 0x5c,
+ 0xb1, 0xe6, 0xd0, 0x42, 0xc5, 0x71, 0xab, 0x1b, 0x2a, 0x6b, 0x26, 0xde,
+ 0x2f, 0xa7, 0x59, 0x3a, 0x8b, 0x51, 0x6d, 0x53, 0x87, 0xc9, 0xdb, 0xc8,
+ 0xc2, 0x8d, 0x18, 0x4f, 0x0b, 0xf1, 0x5b, 0x0b, 0xee, 0x94, 0x61, 0x57,
+ 0x85, 0x64, 0x75, 0x6a, 0x0f, 0x71, 0xaa, 0x22, 0x86, 0x0e, 0x11, 0xbe,
+ 0xdf, 0x0a, 0xbf, 0x82, 0xb2, 0x04, 0x4b, 0xd4, 0xc9, 0x41, 0xe8, 0xa1,
+ 0xff, 0xbf, 0x3d, 0xb5, 0x0f, 0x60, 0x07, 0x00, 0x23, 0xdc, 0x6d, 0x4e,
+ 0x1c, 0x71, 0x9c, 0xd7, 0xc5, 0xe5, 0xd6, 0x05, 0xca, 0x4e, 0x1d, 0x63,
+ 0xb8, 0x01, 0x89, 0xc9, 0x6d, 0x39, 0x87, 0x08, 0x77, 0x8b, 0xe4, 0x58,
+ 0x84, 0x2b, 0x7d, 0x9b, 0x29, 0x54, 0x04, 0xf6, 0x05, 0x2f, 0x40, 0x63,
+ 0xd3, 0xdd, 0xa8, 0x35, 0x91, 0x33, 0x2c, 0x64, 0xf6, 0xf7, 0x57, 0x14,
+ 0x7f, 0x91, 0x8a, 0x8f, 0xb2, 0xc7, 0x70, 0xd8, 0xeb, 0xf4, 0xca, 0x16,
+ 0x63, 0x15, 0x01, 0x5e, 0x4e, 0xcc, 0x14, 0x72, 0xa1, 0x68, 0xfc, 0xac,
+ 0x88, 0xe4, 0xa4, 0xb0, 0xb8, 0x26, 0x29, 0x69, 0xaf, 0x5d, 0x3a, 0x08,
+ 0x0a, 0x9f, 0xac, 0x67, 0xf9, 0xc2, 0xfa, 0x38, 0xfb, 0x44, 0xa0, 0xca,
+ 0x30, 0x0e, 0x0a, 0xd0, 0xde, 0x85, 0x64, 0x81, 0x9d, 0xc2, 0x94, 0xc2,
+ 0x2c, 0x39, 0x23, 0xf5, 0x7f, 0xab, 0xd3, 0xfe, 0xd3, 0xdd, 0x3d, 0x74,
+ 0xf7, 0xe9, 0xee, 0x67, 0xdb, 0xed, 0xbb, 0x79, 0x56, 0x67, 0x03, 0xe0,
+ 0x78, 0xe2, 0x3a, 0x2a, 0x57, 0x37, 0x71, 0x7e, 0x1e, 0xe8, 0xa3, 0xf4,
+ 0x92, 0x80, 0x7f, 0xa6, 0xcb, 0x4a, 0x11, 0x71, 0x54, 0xf0, 0x86, 0x6c,
+ 0xc6, 0xfa, 0x86, 0xe8, 0xcc, 0x82, 0xbb, 0xde, 0xbd, 0x03, 0x63, 0x0a,
+ 0x2e, 0x74, 0x9e, 0x29, 0xb3, 0x7b, 0xe8, 0x5d, 0x5b, 0x28, 0x45, 0x26,
+ 0x83, 0xc1, 0x45, 0x64, 0x31, 0x86, 0xd4, 0xb2, 0x3e, 0x87, 0x13, 0x27,
+ 0x21, 0x70, 0x14, 0xa5, 0x5d, 0x3a, 0xcd, 0x4a, 0x9e, 0x37, 0x79, 0x91,
+ 0xd7, 0x37, 0x28, 0xb9, 0x56, 0xd7, 0xe9, 0x75, 0x16, 0xa6, 0xa9, 0x1a,
+ 0x91, 0x64, 0x0c, 0x27, 0x29, 0x8d, 0x0c, 0x62, 0x67, 0xc2, 0xe2, 0xf0,
+ 0x79, 0x10, 0x18, 0xbf, 0x94, 0x65, 0x01, 0xdb, 0x90, 0x1b, 0xe6, 0x8a,
+ 0xb2, 0xc6, 0xae, 0x58, 0xd0, 0xaa, 0x5a, 0x41, 0x54, 0xc0, 0x02, 0xc4,
+ 0x33, 0x5c, 0x5a, 0x80, 0x6b, 0x0b, 0x04, 0x88, 0x3d, 0xf2, 0x23, 0x6c,
+ 0xd1, 0xe2, 0x9e, 0x8d, 0x8c, 0x10, 0xda, 0x25, 0x2c, 0xd4, 0x2c, 0x05,
+ 0x27, 0xad, 0xf9, 0x9b, 0xf9, 0xd9, 0x0f, 0x46, 0x23, 0x1d, 0xbe, 0xb0,
+ 0x3f, 0xde, 0x7e, 0x5c, 0x71, 0xa1, 0xfd, 0x8e, 0x86, 0x46, 0xf0, 0x44,
+ 0x71, 0x67, 0xc3, 0x60, 0x79, 0xc5, 0xff, 0x58, 0xe1, 0x84, 0x40, 0xd6,
+ 0x58, 0x72, 0xf2, 0xf6, 0x90, 0xa0, 0x18, 0x23, 0x49, 0x9b, 0x68, 0x23,
+ 0x19, 0x5b, 0x59, 0x36, 0xa8, 0xb4, 0x44, 0x0a, 0x6b, 0x94, 0x39, 0xcb,
+ 0x92, 0x5d, 0x32, 0xa8, 0xaa, 0xc5, 0x65, 0xcc, 0x5c, 0xe2, 0x33, 0xaa,
+ 0x29, 0x41, 0xa7, 0xc0, 0xc8, 0xc8, 0x53, 0xa9, 0xe2, 0x4d, 0x25, 0xc1,
+ 0x23, 0xf9, 0x38, 0x9b, 0x2f, 0x3d, 0xde, 0x5e, 0x21, 0x36, 0x07, 0x3d,
+ 0xe6, 0x17, 0x84, 0xd3, 0x24, 0xaa, 0x02, 0xfe, 0xa6, 0xac, 0x01, 0x43,
+ 0x0e, 0xe3, 0xd1, 0x55, 0x85, 0x50, 0x09, 0xf7, 0x56, 0x1b, 0xc5, 0xc1,
+ 0x45, 0xfc, 0x88, 0xd5, 0xb8, 0x33, 0x6e, 0xd5, 0xe9, 0x36, 0x03, 0x26,
+ 0x1a, 0x82, 0x32, 0x33, 0x07, 0x86, 0x54, 0x3a, 0x74, 0x25, 0xaf, 0xb8,
+ 0x4f, 0xdc, 0x19, 0xb8, 0xbb, 0x26, 0x93, 0x9c, 0x74, 0x17, 0x9c, 0x7c,
+ 0xf3, 0xcb, 0xeb, 0xeb, 0x28, 0xd6, 0xc4, 0x4c, 0x01, 0x2d, 0x3c, 0x8d,
+ 0xf9, 0x2a, 0x4b, 0x1b, 0x68, 0x1c, 0x74, 0xd3, 0xaf, 0xc6, 0x93, 0x3a,
+ 0x0d, 0x3e, 0xf2, 0x8c, 0x37, 0x8a, 0x97, 0x3e, 0x6a, 0x3f, 0xbe, 0x0b,
+ 0xb0, 0x09, 0x78, 0x0f, 0x10, 0x55, 0x1e, 0x7e, 0x66, 0xbd, 0x50, 0x57,
+ 0xa9, 0xd9, 0x14, 0xf7, 0x7d, 0x2d, 0xbc, 0xde, 0x58, 0x09, 0x92, 0xcd,
+ 0x97, 0xdd, 0x2d, 0x3e, 0x53, 0xb4, 0x22, 0x83, 0x7a, 0x89, 0x91, 0x9f,
+ 0xf1, 0x9f, 0x09, 0x33, 0x58, 0x13, 0x9b, 0x97, 0xc5, 0x01, 0x27, 0xca,
+ 0x4a, 0xef, 0xe0, 0xbd, 0x41, 0x81, 0x53, 0x0f, 0xec, 0x2b, 0xca, 0x8a,
+ 0x5a, 0x82, 0xc0, 0x2b, 0x0b, 0x24, 0xdd, 0xf7, 0x0e, 0x1d, 0x09, 0x96,
+ 0xf7, 0x32, 0xc4, 0xf2, 0xb2, 0x21, 0x61, 0x24, 0xd1, 0x0e, 0x0e, 0x09,
+ 0x83, 0xac, 0x27, 0xc4, 0x10, 0x01, 0x21, 0x53, 0x26, 0x17, 0x6f, 0x8e,
+ 0x92, 0xfd, 0x27, 0x9f, 0x7f, 0x3e, 0x8c, 0x12, 0x08, 0x72, 0x82, 0xa5,
+ 0xd9, 0x84, 0x34, 0x53, 0x8e, 0x6d, 0xae, 0x6f, 0x69, 0x43, 0x51, 0xe9,
+ 0x3d, 0x4b, 0x0b, 0xa6, 0xed, 0x9e, 0x13, 0x31, 0x08, 0x09, 0xc7, 0xe5,
+ 0x2c, 0x34, 0xf2, 0x11, 0xbb, 0x9a, 0x93, 0x62, 0x21, 0x52, 0x0c, 0x0a,
+ 0x16, 0x49, 0x8d, 0x79, 0xbe, 0x42, 0xa9, 0xcb, 0x04, 0x27, 0x65, 0xab,
+ 0x7b, 0xc3, 0x05, 0xc0, 0xe0, 0x3d, 0x46, 0x42, 0x1a, 0xbd, 0x01, 0xb0,
+ 0x5f, 0x0e, 0xbe, 0xf3, 0x74, 0x6c, 0x46, 0xd2, 0x29, 0x69, 0x7e, 0x36,
+ 0x13, 0x0d, 0x9f, 0x8d, 0x33, 0x9b, 0x21, 0xcd, 0x85, 0x3b, 0x3a, 0x24,
+ 0x41, 0x9c, 0xf4, 0x59, 0x50, 0xa6, 0x0c, 0x51, 0xc5, 0x9b, 0x0f, 0x74,
+ 0x9a, 0x43, 0x8e, 0xe3, 0x75, 0xd6, 0x84, 0xd9, 0x1d, 0x1e, 0xcc, 0x72,
+ 0x4d, 0xe3, 0x31, 0xcb, 0x48, 0x92, 0x53, 0x92, 0x97, 0xca, 0xe3, 0xaf,
+ 0x35, 0x9c, 0x27, 0x60, 0x15, 0x63, 0x7a, 0xf5, 0x3f, 0x63, 0x35, 0x5e,
+ 0xca, 0xd4, 0x4b, 0xb2, 0xd6, 0x9f, 0xa3, 0xcc, 0x41, 0x82, 0xf5, 0x04,
+ 0x8d, 0x4d, 0xd3, 0x18, 0xc5, 0xda, 0xc9, 0x6e, 0x00, 0x6b, 0xc1, 0x58,
+ 0x22, 0xd0, 0x4f, 0x2d, 0x26, 0x4e, 0x1b, 0x76, 0x16, 0xa3, 0xf4, 0x7b,
+ 0x69, 0x1b, 0x95, 0x42, 0x01, 0x84, 0x6d, 0xa6, 0xae, 0xc4, 0x66, 0x42,
+ 0x09, 0x80, 0x49, 0x3e, 0x98, 0xa7, 0x03, 0xbb, 0x87, 0xde, 0xf5, 0xe6,
+ 0x29, 0x5c, 0x7b, 0x3f, 0x9e, 0x2a, 0x39, 0xf1, 0x3c, 0xc5, 0x0e, 0x13,
+ 0xeb, 0x3b, 0xf7, 0x65, 0xa4, 0xd6, 0x69, 0xda, 0x75, 0x95, 0xd2, 0x50,
+ 0x5d, 0x2e, 0x26, 0x76, 0xd6, 0x75, 0x99, 0x71, 0x2f, 0x91, 0x18, 0xaf,
+ 0xb3, 0x4a, 0x1e, 0xcb, 0xa6, 0x5a, 0x4e, 0x48, 0xb5, 0x84, 0x69, 0x8e,
+ 0x4f, 0x85, 0x3a, 0x2d, 0xc9, 0xf5, 0x7e, 0x7b, 0xc4, 0x28, 0xb9, 0x83,
+ 0xf5, 0xc2, 0x2c, 0x0b, 0xcd, 0x96, 0x42, 0xd2, 0xa8, 0x6b, 0xaa, 0x83,
+ 0xac, 0xe2, 0xf2, 0x4d, 0xe0, 0x77, 0x31, 0x3b, 0xee, 0xef, 0x12, 0xae,
+ 0x11, 0x3f, 0x10, 0x31, 0xe3, 0x31, 0xf7, 0x10, 0xbc, 0x1d, 0x19, 0x11,
+ 0x62, 0x27, 0xaf, 0xa9, 0x3e, 0x15, 0x6e, 0xf4, 0x48, 0xbe, 0xdb, 0x66,
+ 0xdd, 0x82, 0xfc, 0xf2, 0xc5, 0x44, 0xfa, 0x5c, 0x95, 0x5d, 0x2f, 0xe9,
+ 0xb2, 0xc3, 0x74, 0xd9, 0x0a, 0xe0, 0xfa, 0x44, 0xb2, 0xc8, 0x03, 0xf9,
+ 0x41, 0x42, 0x40, 0x0c, 0x3d, 0xae, 0x3c, 0xb5, 0x2c, 0xcc, 0xac, 0x35,
+ 0x4b, 0x0a, 0x67, 0xcd, 0xb8, 0x48, 0x88, 0x11, 0x63, 0x7f, 0x85, 0x1f,
+ 0xb0, 0x94, 0x19, 0xe0, 0x3a, 0x6a, 0xd3, 0x58, 0xa6, 0x02, 0x15, 0x47,
+ 0x42, 0x40, 0xda, 0xe8, 0xdd, 0xe0, 0x0a, 0xa2, 0xb0, 0x7e, 0xa3, 0x52,
+ 0x00, 0xf5, 0x4b, 0xe0, 0x16, 0xfb, 0x82, 0xe2, 0x5d, 0x93, 0xcc, 0xf1,
+ 0x23, 0x62, 0x56, 0x42, 0x4c, 0x5f, 0x01, 0x96, 0x31, 0x25, 0xdd, 0x53,
+ 0x2c, 0x15, 0x5b, 0xb5, 0x50, 0xc0, 0x28, 0x2e, 0x47, 0xc3, 0xe4, 0xa4,
+ 0x0f, 0x61, 0xef, 0xa0, 0x2a, 0xcb, 0x04, 0x2a, 0xaf, 0xc3, 0x42, 0x95,
+ 0xb8, 0x07, 0x58, 0xb5, 0xfe, 0xab, 0xb5, 0x7a, 0x49, 0xf8, 0x45, 0x78,
+ 0x50, 0x40, 0xc8, 0x78, 0xc0, 0x01, 0x7f, 0xaa, 0x25, 0x39, 0x17, 0x99,
+ 0xa6, 0xf6, 0x87, 0x26, 0x8d, 0xb0, 0x96, 0xb8, 0x69, 0xa4, 0x27, 0xcd,
+ 0xfb, 0xa6, 0x9c, 0xdd, 0x18, 0xf9, 0x86, 0x33, 0xf6, 0x21, 0xad, 0xf9,
+ 0xa4, 0x58, 0x0e, 0x39, 0x2b, 0x46, 0x48, 0xab, 0xaa, 0x52, 0x23, 0x34,
+ 0xff, 0xba, 0xb8, 0x5e, 0xc1, 0x56, 0xc6, 0x75, 0x27, 0x8c, 0xc1, 0x10,
+ 0x56, 0xbb, 0xc1, 0x3e, 0x1c, 0xbc, 0x49, 0xa4, 0x3f, 0xaf, 0xfe, 0xdc,
+ 0x6a, 0x4e, 0x49, 0xe1, 0x7d, 0xce, 0x63, 0x81, 0x2f, 0x4f, 0xae, 0xf3,
+ 0x07, 0x26, 0x81, 0xf9, 0xc2, 0x2d, 0xb4, 0xb3, 0xbe, 0x29, 0x33, 0x59,
+ 0xb9, 0x02, 0x76, 0x30, 0x0b, 0x0f, 0x96, 0x00, 0x31, 0x83, 0xcc, 0x29,
+ 0xbd, 0xab, 0xbb, 0x8d, 0xab, 0xfd, 0x3f, 0xca, 0x9b, 0x82, 0xfe, 0x41,
+ 0x5f, 0xa0, 0x0f, 0xbc, 0xda, 0xdb, 0x8b, 0xf6, 0x7c, 0x65, 0x7f, 0xb9,
+ 0xc3, 0xda, 0x63, 0xba, 0x8f, 0x04, 0xac, 0xe7, 0x89, 0xb7, 0x96, 0xfd,
+ 0x3f, 0x44, 0x2e, 0x51, 0xe8, 0x6f, 0xe3, 0xaa, 0xe5, 0x33, 0x94, 0x4e,
+ 0xb6, 0xaf, 0x32, 0x10, 0x2a, 0x90, 0x8a, 0xec, 0xa9, 0x27, 0xf3, 0x52,
+ 0x90, 0xf7, 0x5d, 0x55, 0x02, 0x0c, 0x16, 0xb4, 0x28, 0xab, 0x87, 0xdf,
+ 0xa3, 0x48, 0xcd, 0xfd, 0xab, 0x97, 0x37, 0xcb, 0xeb, 0x0c, 0xc2, 0xb3,
+ 0xf9, 0xd4, 0xf4, 0x1e, 0x35, 0x76, 0x72, 0x56, 0xb0, 0xb7, 0x82, 0x43,
+ 0xc4, 0x8d, 0x17, 0x01, 0x67, 0x7a, 0x16, 0x5f, 0x8f, 0x60, 0xcf, 0x21,
+ 0x99, 0x4b, 0x5a, 0xbe, 0xb5, 0x9b, 0x6f, 0xc1, 0x1a, 0x69, 0x9f, 0xa7,
+ 0x4d, 0xd2, 0xd7, 0x5d, 0x12, 0xf2, 0x9a, 0x11, 0xdc, 0x65, 0xe3, 0x57,
+ 0x7f, 0x26, 0x17, 0xd7, 0x27, 0xb0, 0x73, 0xb3, 0x6a, 0x4b, 0x93, 0xb7,
+ 0x03, 0xb2, 0xee, 0xc4, 0x1b, 0xc4, 0x46, 0x20, 0x8e, 0x56, 0x37, 0xeb,
+ 0xe5, 0x7f, 0x78, 0x4d, 0x5e, 0x95, 0xe5, 0xda, 0x16, 0xd5, 0x85, 0x83,
+ 0x39, 0xf1, 0x80, 0x65, 0x0c, 0xb7, 0x72, 0xb9, 0x6d, 0xbc, 0x25, 0x70,
+ 0xd9, 0xb4, 0xee, 0xcc, 0x58, 0xba, 0x31, 0x2a, 0x3c, 0xb3, 0xa9, 0xae,
+ 0xd7, 0xce, 0xab, 0x3e, 0xa7, 0x57, 0x44, 0xeb, 0x31, 0xb8, 0x31, 0xf0,
+ 0x81, 0xc4, 0x3e, 0xa0, 0xbf, 0x7e, 0x61, 0x5f, 0xa7, 0xff, 0x98, 0xf3,
+ 0x0c, 0xbe, 0xdb, 0x35, 0xa3, 0x21, 0x84, 0xa6, 0xbe, 0xb3, 0xc3, 0xd5,
+ 0x93, 0xb5, 0x50, 0xdd, 0x66, 0x9f, 0xb5, 0xed, 0x2f, 0x36, 0xe1, 0xcf,
+ 0x55, 0xd8, 0x0f, 0x0a, 0xa1, 0x40, 0xca, 0x4d, 0xcb, 0x40, 0xb7, 0x25,
+ 0x64, 0x1c, 0x57, 0x4a, 0x41, 0xef, 0x57, 0x74, 0x9c, 0x7a, 0xae, 0x5d,
+ 0xff, 0xa9, 0x67, 0x3b, 0xff, 0x53, 0xcf, 0x75, 0xff, 0xa7, 0x9e, 0x1b,
+ 0xc0, 0x4f, 0xbd, 0x5e, 0x02, 0x4a, 0xd6, 0x20, 0x78, 0xfe, 0xcb, 0x17,
+ 0x7d, 0x93, 0xbf, 0xea, 0x3e, 0xea, 0x7d, 0xd3, 0xfb, 0x64, 0x6f, 0x73,
+ 0xdd, 0xa4, 0xf9, 0x61, 0x22, 0x64, 0x29, 0x74, 0xe7, 0xd0, 0x08, 0xec,
+ 0xd6, 0x34, 0xb9, 0x69, 0x21, 0x0b, 0x2d, 0xf0, 0x9a, 0x7b, 0x0f, 0xd0,
+ 0x8c, 0xbb, 0xba, 0x2f, 0x1e, 0xa3, 0xb9, 0x65, 0x8a, 0xd3, 0x75, 0xd0,
+ 0x9a, 0x81, 0x41, 0x21, 0x49, 0xfb, 0x7a, 0x70, 0x03, 0xfd, 0x0f, 0xf3,
+ 0x05, 0x18, 0x01, 0x5c, 0x2b, 0x8d, 0x4f, 0x35, 0x78, 0x28, 0x04, 0xe1,
+ 0x05, 0xf0, 0x6a, 0xc1, 0x01, 0x4c, 0xbe, 0x00, 0xaf, 0x38, 0xef, 0x83,
+ 0xb7, 0x44, 0x80, 0x6b, 0x9e, 0xe7, 0xa8, 0xf7, 0x63, 0x46, 0x35, 0x63,
+ 0x33, 0x75, 0x87, 0xee, 0x05, 0xe0, 0x10, 0x51, 0x85, 0xa7, 0x86, 0x9d,
+ 0x2e, 0x16, 0xac, 0x54, 0xd2, 0xe1, 0x79, 0x58, 0xbd, 0xa5, 0x49, 0x1b,
+ 0x9f, 0x95, 0x55, 0xfd, 0xaa, 0x67, 0x34, 0xa3, 0x2f, 0x92, 0xe4, 0xba,
+ 0x32, 0x6a, 0xec, 0x17, 0xb4, 0xb5, 0x96, 0x66, 0xb1, 0xdc, 0x39, 0xfd,
+ 0x34, 0x98, 0xdf, 0x9b, 0x7e, 0x6f, 0xfe, 0xa2, 0x9d, 0xe1, 0x89, 0xb4,
+ 0x29, 0xe2, 0xe8, 0x46, 0x38, 0xce, 0x93, 0x2e, 0x88, 0x80, 0x8f, 0xae,
+ 0x77, 0x28, 0xe5, 0xf7, 0xaf, 0x62, 0x8c, 0x55, 0xc1, 0x40, 0x3c, 0xc9,
+ 0x0b, 0x7b, 0xed, 0xd5, 0xd9, 0xb7, 0x5f, 0x68, 0x03, 0x3f, 0xf5, 0x7e,
+ 0x18, 0xf0, 0x4f, 0x91, 0x47, 0x79, 0x90, 0x9c, 0x7d, 0x4b, 0xbb, 0xfb,
+ 0x97, 0x09, 0xb0, 0x75, 0x1f, 0xf8, 0x33, 0xff, 0x05, 0x3b, 0x7b, 0x5d,
+ 0xb3, 0x97, 0x0e, 0x7c, 0xf0, 0x8a, 0x8a, 0x20, 0x22, 0xeb, 0x03, 0xa6,
+ 0xf8, 0x62, 0x41, 0x79, 0x1c, 0x9a, 0x37, 0xd8, 0x70, 0xde, 0x20, 0x6b,
+ 0x97, 0xe3, 0x92, 0xe1, 0xaa, 0x4d, 0x48, 0x3b, 0x0b, 0xda, 0x4b, 0xac,
+ 0x2d, 0xe7, 0x31, 0x9b, 0x0d, 0x45, 0xde, 0x0b, 0xe8, 0xc4, 0x3a, 0xbb,
+ 0x5c, 0x4c, 0x39, 0x9d, 0xb6, 0x4d, 0x9e, 0xe3, 0x08, 0xc5, 0xb8, 0xe3,
+ 0x28, 0xe1, 0xbf, 0x41, 0x33, 0x03, 0x15, 0x0b, 0xd9, 0x59, 0x54, 0xab,
+ 0x28, 0xad, 0x32, 0xad, 0x3f, 0x21, 0x95, 0xb1, 0xb8, 0x02, 0xd2, 0x17,
+ 0xb1, 0x88, 0x80, 0x04, 0x2a, 0x05, 0x14, 0x7c, 0x55, 0xce, 0xa4, 0xfa,
+ 0x67, 0x6d, 0x76, 0x3d, 0x2f, 0xb0, 0x2d, 0x46, 0x65, 0x74, 0x0e, 0x9a,
+ 0x0a, 0x09, 0x58, 0xc8, 0x67, 0x23, 0x4a, 0x87, 0x04, 0x16, 0xd9, 0x21,
+ 0x07, 0x82, 0x2b, 0xe1, 0xfd, 0xe1, 0x8d, 0xff, 0x05, 0x59, 0xfe, 0xe3,
+ 0x6c, 0xca, 0x65, 0xa7, 0x25, 0x33, 0x6e, 0x20, 0x3e, 0xe2, 0x88, 0x1b,
+ 0x27, 0xb1, 0xe7, 0x46, 0x0f, 0x0e, 0x23, 0x22, 0x34, 0x41, 0x8e, 0x08,
+ 0x61, 0xbe, 0x21, 0xa5, 0x50, 0x40, 0xc5, 0x5a, 0x37, 0x82, 0xae, 0x97,
+ 0xf8, 0x60, 0x6d, 0xd1, 0x79, 0x9a, 0xa1, 0xf0, 0xb4, 0x25, 0x7f, 0x10,
+ 0x97, 0xb2, 0x57, 0x9b, 0x1e, 0xa3, 0x97, 0xc5, 0x1a, 0x06, 0x2f, 0xfc,
+ 0x20, 0x90, 0x9d, 0xc1, 0xde, 0x81, 0x57, 0x03, 0x84, 0x7f, 0x16, 0x6f,
+ 0xde, 0xe7, 0xc7, 0xd0, 0x58, 0x71, 0x2d, 0xd3, 0xbf, 0xa6, 0xfd, 0x7d,
+ 0xdb, 0xfe, 0x46, 0x84, 0x92, 0x82, 0x49, 0x23, 0xe2, 0x9f, 0x25, 0xe6,
+ 0x42, 0x45, 0x93, 0x89, 0x1b, 0xd5, 0x73, 0x68, 0x24, 0xec, 0x4b, 0x50,
+ 0x67, 0x42, 0xdd, 0x6f, 0x71, 0x56, 0x44, 0x12, 0x80, 0x90, 0x1b, 0x32,
+ 0x65, 0xb0, 0x32, 0x8f, 0xc4, 0x4c, 0x64, 0xd7, 0x52, 0x94, 0xea, 0xae,
+ 0xbc, 0xb5, 0xca, 0x39, 0xf1, 0x29, 0x4e, 0x0f, 0x5c, 0xed, 0x38, 0xf8,
+ 0x03, 0xd4, 0xef, 0xc1, 0xb6, 0x9d, 0x4b, 0x60, 0x0c, 0xd2, 0xcc, 0x5a,
+ 0x2c, 0xa2, 0xc1, 0xa7, 0x8c, 0x30, 0x66, 0x5e, 0x1a, 0xd8, 0x29, 0x72,
+ 0x16, 0xb6, 0x36, 0xc5, 0xb7, 0x42, 0x1f, 0xa2, 0x8a, 0x6b, 0x80, 0x2a,
+ 0x61, 0xb8, 0x29, 0xa8, 0x04, 0x64, 0x06, 0x06, 0x11, 0xbd, 0xe3, 0x00,
+ 0xc2, 0xdd, 0x9e, 0x0a, 0x66, 0x51, 0x01, 0x89, 0x8a, 0x9a, 0xcf, 0xa8,
+ 0x00, 0xda, 0x66, 0x4e, 0x09, 0x6d, 0x65, 0x6f, 0x8a, 0xa5, 0x31, 0xa9,
+ 0x4e, 0x6d, 0x71, 0x6f, 0x69, 0xb2, 0xf9, 0x6a, 0x7b, 0xd3, 0x0e, 0x6d,
+ 0xb5, 0x69, 0xa4, 0xb6, 0x8c, 0x6e, 0x1b, 0x1b, 0x8d, 0xb4, 0xe5, 0x14,
+ 0xe1, 0x60, 0x9a, 0x13, 0x10, 0x22, 0x1b, 0x60, 0x3d, 0xa3, 0x54, 0x58,
+ 0xb5, 0xf2, 0x14, 0x90, 0x99, 0x55, 0xe0, 0x7c, 0x32, 0x11, 0x06, 0x6f,
+ 0xf2, 0x74, 0x66, 0x7a, 0x48, 0x39, 0x69, 0xb7, 0x4a, 0xe3, 0x57, 0x1f,
+ 0x78, 0x3a, 0x79, 0xe4, 0x80, 0x52, 0x44, 0x07, 0xfc, 0xe4, 0xe2, 0x19,
+ 0xa9, 0xfd, 0x2a, 0x8b, 0xab, 0x2f, 0xb3, 0xcd, 0x57, 0x5b, 0x7c, 0x65,
+ 0x39, 0xb7, 0x9a, 0xf7, 0xed, 0xcd, 0xe4, 0xa7, 0x78, 0x9e, 0x61, 0xc2,
+ 0xef, 0x7a, 0x56, 0x82, 0x6c, 0xda, 0x87, 0xde, 0x48, 0x5e, 0x8e, 0xcb,
+ 0xe9, 0xfd, 0x97, 0x88, 0x3f, 0xc9, 0x2b, 0x2f, 0x77, 0xf0, 0xa3, 0x8e,
+ 0xd2, 0xbc, 0xaa, 0x21, 0xb4, 0x62, 0x96, 0x0a, 0x7f, 0xfe, 0x99, 0x1e,
+ 0x57, 0x9b, 0x61, 0x33, 0x19, 0x0e, 0x8d, 0x18, 0xaa, 0xe7, 0x28, 0x77,
+ 0xb3, 0xe6, 0x6a, 0x61, 0xe2, 0x2a, 0x57, 0xec, 0x40, 0xd8, 0x1c, 0xa4,
+ 0xdc, 0x95, 0x1a, 0xdb, 0xe2, 0x8f, 0xe4, 0xdf, 0x56, 0xaf, 0x86, 0xc9,
+ 0xa1, 0xc2, 0x66, 0x36, 0x22, 0x7c, 0x24, 0xe6, 0x51, 0xbe, 0x3f, 0xbc,
+ 0x44, 0xdc, 0xcf, 0xc7, 0xb9, 0xf8, 0xdb, 0xa7, 0x65, 0x8b, 0x42, 0x2f,
+ 0xe1, 0x84, 0x77, 0xba, 0xe2, 0xe3, 0xc2, 0xdb, 0xec, 0x99, 0x8a, 0xe3,
+ 0x45, 0x2c, 0x22, 0xac, 0x19, 0x23, 0x9d, 0x1b, 0x1c, 0xcb, 0x37, 0x55,
+ 0x9a, 0xf6, 0x93, 0xcf, 0xf4, 0x63, 0xdd, 0xeb, 0xb9, 0x80, 0x57, 0xe2,
+ 0xaf, 0xe0, 0xef, 0xfc, 0x7c, 0x40, 0x4f, 0x79, 0xa5, 0x17, 0x6d, 0x02,
+ 0xbc, 0x1b, 0x36, 0x42, 0x6f, 0x7d, 0xa9, 0x27, 0x38, 0x0d, 0x09, 0x0b,
+ 0xf2, 0x82, 0x2b, 0xa2, 0xf0, 0xb5, 0x40, 0xa5, 0xc5, 0x9f, 0x3f, 0xe5,
+ 0x51, 0xf2, 0x54, 0x89, 0xa7, 0xa6, 0xe5, 0x92, 0xe5, 0x0b, 0xa9, 0x0a,
+ 0x23, 0x82, 0x76, 0x88, 0x9c, 0xf1, 0x49, 0x7a, 0x1a, 0x15, 0xda, 0x61,
+ 0x5c, 0x27, 0x5d, 0xac, 0x46, 0xa7, 0xbc, 0x46, 0x01, 0xe5, 0xe4, 0xb3,
+ 0xe7, 0x5e, 0xc7, 0x1f, 0xf0, 0x5d, 0xb8, 0xf3, 0x8e, 0x13, 0x28, 0x47,
+ 0x5c, 0x46, 0xe4, 0x0d, 0x81, 0x8d, 0x77, 0xf3, 0xdd, 0xa0, 0x5f, 0xe4,
+ 0xf8, 0x60, 0x7a, 0x26, 0x19, 0xa1, 0x75, 0x38, 0x3e, 0x74, 0x9e, 0xfc,
+ 0xd3, 0xf0, 0x85, 0xee, 0x9e, 0xee, 0xa7, 0xd7, 0xee, 0x6e, 0xcf, 0x5a,
+ 0xd2, 0xf7, 0xb9, 0x13, 0xbc, 0xc3, 0x1f, 0xde, 0xe0, 0x14, 0x54, 0xb8,
+ 0x5a, 0x56, 0xb8, 0x88, 0xe4, 0x31, 0xd6, 0x17, 0x34, 0x7d, 0x44, 0x54,
+ 0xf6, 0xb7, 0x87, 0xef, 0xde, 0x1f, 0x9e, 0x0e, 0x7f, 0x5d, 0x4d, 0xa7,
+ 0xb5, 0xaf, 0x79, 0xf9, 0xa2, 0x1d, 0x2a, 0x94, 0x87, 0x13, 0xc9, 0x29,
+ 0x5f, 0x87, 0x76, 0x0f, 0x41, 0x43, 0xe2, 0x4c, 0x28, 0x8c, 0xb9, 0x95,
+ 0xc0, 0xb8, 0x87, 0xd9, 0x4c, 0x6b, 0x29, 0x70, 0xd6, 0xd3, 0xf7, 0xe9,
+ 0xf5, 0x9e, 0x60, 0x8e, 0x6d, 0x92, 0x6e, 0x44, 0x7a, 0xda, 0xbc, 0x62,
+ 0x8b, 0xb9, 0xd2, 0x42, 0xb0, 0x72, 0x79, 0xb5, 0xbc, 0x6d, 0xe5, 0xd5,
+ 0x95, 0x17, 0xad, 0xe8, 0x46, 0xf5, 0x8e, 0x8e, 0x56, 0x67, 0x3b, 0xfe,
+ 0x9e, 0x1c, 0x87, 0x1d, 0xec, 0x39, 0xa6, 0xd1, 0x89, 0xf2, 0x41, 0x53,
+ 0x72, 0x26, 0xf0, 0x4b, 0xe9, 0x5b, 0x7c, 0x56, 0x99, 0xb0, 0xc3, 0x0b,
+ 0x63, 0xab, 0x4e, 0x4b, 0x7d, 0xa2, 0x82, 0x76, 0x98, 0xae, 0xf3, 0xc3,
+ 0xd1, 0xc8, 0x26, 0xe2, 0x0a, 0xc4, 0x27, 0xb0, 0xbd, 0x10, 0xe8, 0xa3,
+ 0x68, 0xbd, 0x4e, 0x86, 0xa2, 0xc3, 0x2c, 0x8e, 0x13, 0x13, 0x68, 0x2c,
+ 0xbc, 0xcb, 0xe5, 0xdc, 0x9c, 0x09, 0xa3, 0xdf, 0x4e, 0x09, 0x42, 0xc5,
+ 0xe1, 0xd7, 0xee, 0xe6, 0xd2, 0x3a, 0xef, 0x0e, 0x03, 0x51, 0xe2, 0xbf,
+ 0xa6, 0xd7, 0x23, 0x95, 0xd5, 0xa9, 0x06, 0xac, 0x3d, 0x66, 0xca, 0x7e,
+ 0xd4, 0xd5, 0xd3, 0x1b, 0x9d, 0x5c, 0x1e, 0x27, 0x87, 0xef, 0x2f, 0xbf,
+ 0xe9, 0xf1, 0x04, 0x77, 0x09, 0x08, 0xe0, 0xa6, 0xa7, 0x7a, 0x89, 0xb7,
+ 0x52, 0xde, 0x80, 0xe6, 0x8e, 0x3d, 0x9a, 0x64, 0x1c, 0xc4, 0x14, 0x6e,
+ 0xf7, 0xcd, 0xe1, 0x9a, 0x55, 0x7a, 0x36, 0x7c, 0xd6, 0x5d, 0xa5, 0xd5,
+ 0x24, 0xb3, 0xa0, 0x1d, 0x95, 0x2a, 0xd9, 0x32, 0x77, 0xb2, 0xe3, 0x85,
+ 0xce, 0x94, 0x60, 0x53, 0x3b, 0xae, 0x12, 0x01, 0x62, 0x6b, 0xa9, 0xd4,
+ 0x9c, 0x0f, 0xef, 0x02, 0x4b, 0xaa, 0x66, 0x43, 0xe1, 0x20, 0x5c, 0xb5,
+ 0xa4, 0x2b, 0xe2, 0xdd, 0xe5, 0x08, 0xa8, 0x59, 0xb1, 0xb4, 0x9a, 0xda,
+ 0x84, 0xbc, 0x08, 0xe7, 0x80, 0xa2, 0xfc, 0xa8, 0xb8, 0x89, 0xd9, 0x02,
+ 0x5a, 0xdb, 0xa0, 0x95, 0x28, 0xe9, 0x0a, 0x47, 0x6b, 0x74, 0xc3, 0x65,
+ 0x5c, 0xc6, 0x29, 0x70, 0xe1, 0x34, 0x47, 0xcd, 0x03, 0xcb, 0xe5, 0xba,
+ 0x16, 0xf7, 0x18, 0x67, 0x6d, 0xa5, 0x79, 0x15, 0x94, 0xc8, 0x4b, 0xfe,
+ 0x33, 0xbe, 0xdf, 0xe9, 0x66, 0xad, 0xca, 0x19, 0xbb, 0x0b, 0xe5, 0x05,
+ 0x46, 0x6f, 0x72, 0x8a, 0x04, 0x28, 0x74, 0x10, 0xb2, 0x41, 0xd4, 0x13,
+ 0xd6, 0x08, 0x13, 0x80, 0x87, 0x05, 0x6c, 0xb6, 0x08, 0x9e, 0xa1, 0xbe,
+ 0xd5, 0x4b, 0x84, 0x11, 0xd1, 0x5e, 0x24, 0xfb, 0x25, 0xa0, 0xe8, 0x8b,
+ 0x91, 0x9c, 0x78, 0xa7, 0x37, 0x34, 0x90, 0x20, 0x8c, 0x27, 0x77, 0xd3,
+ 0xb8, 0xb6, 0x85, 0x21, 0x00, 0x39, 0x66, 0xf3, 0x6c, 0x8e, 0xbe, 0x7f,
+ 0xed, 0xd5, 0xac, 0x50, 0x68, 0x9a, 0xa2, 0xbb, 0xd9, 0xfe, 0x58, 0x45,
+ 0xb4, 0xe7, 0xf1, 0x84, 0xa1, 0x58, 0x14, 0x45, 0x52, 0xa7, 0x59, 0xb6,
+ 0xb0, 0x8c, 0xc4, 0xa8, 0x2b, 0x4a, 0xeb, 0x4e, 0x91, 0x53, 0x61, 0x83,
+ 0x9e, 0x87, 0x8e, 0x24, 0x8b, 0xe3, 0x66, 0xc9, 0xe1, 0x28, 0x21, 0xa8,
+ 0x08, 0x0f, 0xc5, 0x6d, 0xf7, 0x3e, 0x7b, 0xf2, 0xb9, 0xb9, 0x7c, 0xef,
+ 0x41, 0x0f, 0xdc, 0x62, 0x22, 0x65, 0x06, 0xcf, 0xd5, 0x74, 0x67, 0x62,
+ 0xc1, 0x28, 0xb0, 0x57, 0x32, 0xd9, 0x93, 0x9a, 0x6c, 0x06, 0xf8, 0xa3,
+ 0x24, 0xaf, 0x34, 0x24, 0x02, 0x31, 0x93, 0xa8, 0x6e, 0x3f, 0xcc, 0x18,
+ 0xd2, 0x5d, 0x69, 0xb6, 0x18, 0x19, 0x36, 0xf4, 0xf6, 0xb0, 0xd1, 0xe3,
+ 0xa8, 0x2a, 0x51, 0x3f, 0xb9, 0x38, 0xbe, 0xbc, 0xe8, 0x27, 0xa3, 0xcb,
+ 0xb3, 0x8b, 0x15, 0x1c, 0x75, 0x0d, 0x33, 0x24, 0xd0, 0x9c, 0x29, 0x44,
+ 0x85, 0x4f, 0x65, 0x8b, 0xbc, 0x0a, 0x18, 0x68, 0x16, 0x3c, 0x75, 0x94,
+ 0xef, 0xc8, 0xa3, 0x3d, 0xf2, 0x66, 0x0b, 0xdb, 0xc6, 0xdc, 0x0f, 0x6b,
+ 0x07, 0xc6, 0xcb, 0xfe, 0x88, 0x1d, 0x42, 0x7b, 0x91, 0x86, 0x6b, 0xc5,
+ 0x3c, 0x7a, 0x6b, 0x2c, 0x34, 0xf2, 0xf6, 0x3b, 0xf2, 0x69, 0xad, 0xf5,
+ 0xba, 0x82, 0x9b, 0x90, 0x01, 0xb9, 0xb5, 0x03, 0x0d, 0x9b, 0x2d, 0xd7,
+ 0xd3, 0x0c, 0xec, 0x9e, 0x39, 0x6e, 0xcc, 0xc5, 0x63, 0xd9, 0xc6, 0x1e,
+ 0xd8, 0xbf, 0x46, 0xdf, 0xd9, 0xb6, 0x69, 0xa3, 0xa8, 0xd1, 0x51, 0xce,
+ 0x33, 0xf6, 0xe9, 0xc3, 0xf3, 0xa3, 0xf2, 0x89, 0xeb, 0xa1, 0x81, 0xa2,
+ 0x33, 0x46, 0x45, 0x60, 0x99, 0x94, 0x68, 0x95, 0x37, 0x6d, 0x32, 0xb7,
+ 0xd6, 0x31, 0xe7, 0x75, 0xc9, 0x8c, 0x59, 0xda, 0x80, 0xa2, 0x6a, 0x53,
+ 0x7b, 0xe5, 0x51, 0x2c, 0xb5, 0x85, 0xf7, 0x5e, 0x57, 0xc8, 0x50, 0x3e,
+ 0x7c, 0x54, 0xb2, 0x10, 0x38, 0x45, 0xb3, 0x9a, 0x01, 0xad, 0x52, 0x54,
+ 0x0d, 0x54, 0x09, 0xbf, 0x16, 0xdf, 0xb9, 0xe6, 0xb2, 0x4b, 0x41, 0x97,
+ 0x40, 0x14, 0x40, 0x0c, 0xcc, 0x12, 0xb7, 0xb9, 0x65, 0xcd, 0x39, 0x28,
+ 0xb3, 0xec, 0x4a, 0xdd, 0x4e, 0x72, 0x79, 0xd7, 0x20, 0x10, 0xd5, 0xcc,
+ 0x2f, 0x4f, 0xd6, 0x25, 0x02, 0x58, 0x53, 0x40, 0xe7, 0x37, 0xa6, 0x2f,
+ 0xa1, 0x42, 0xb2, 0x92, 0xd2, 0x0f, 0xb6, 0xbf, 0x02, 0xb0, 0x87, 0xa9,
+ 0x9d, 0x39, 0x22, 0xb4, 0x21, 0xb4, 0x16, 0xee, 0xad, 0x69, 0x09, 0xb5,
+ 0x9d, 0x06, 0x1d, 0x72, 0x9f, 0xc1, 0x65, 0x0c, 0x04, 0x81, 0xde, 0x34,
+ 0xd2, 0x98, 0xb3, 0x3e, 0x26, 0x4d, 0x77, 0xa4, 0x48, 0xb0, 0x0f, 0x06,
+ 0x7a, 0xee, 0x2f, 0x1b, 0x4b, 0x34, 0x18, 0x38, 0x4e, 0x10, 0x34, 0x9c,
+ 0xe7, 0xce, 0xc9, 0xec, 0xea, 0x02, 0x10, 0x46, 0x81, 0x22, 0x9a, 0x27,
+ 0xc5, 0x6c, 0x02, 0x5a, 0x5b, 0xba, 0x95, 0xa5, 0xaf, 0x33, 0x39, 0x5c,
+ 0xc3, 0xf1, 0xe4, 0x27, 0xf5, 0xb7, 0xb6, 0xe4, 0x5e, 0x4b, 0xeb, 0x6b,
+ 0x8f, 0x6e, 0x65, 0xc2, 0x28, 0x2b, 0x14, 0x17, 0xb4, 0x70, 0xb5, 0x2d,
+ 0xc5, 0xa2, 0xbb, 0x2b, 0x2f, 0x72, 0xe2, 0x71, 0x29, 0xab, 0x1d, 0x4a,
+ 0x51, 0x21, 0xf6, 0xb2, 0xc4, 0xdc, 0x90, 0x0a, 0x45, 0x5d, 0x51, 0xdd,
+ 0xd4, 0xea, 0x89, 0xa6, 0xe9, 0x76, 0xad, 0x4a, 0xaf, 0xe8, 0x13, 0x5d,
+ 0xa6, 0x92, 0xaf, 0x8f, 0xb9, 0x1d, 0x26, 0x31, 0x14, 0x3c, 0x73, 0xb6,
+ 0x36, 0x80, 0x39, 0xb6, 0x35, 0x32, 0xad, 0xf2, 0xa7, 0x35, 0x01, 0xb0,
+ 0xb0, 0xd0, 0xf8, 0x36, 0xeb, 0x95, 0x89, 0x75, 0x5a, 0x8e, 0x01, 0x6a,
+ 0xbe, 0x99, 0x95, 0x3e, 0x23, 0x42, 0xda, 0x67, 0x13, 0x96, 0x43, 0xfb,
+ 0x63, 0x75, 0xd6, 0x2c, 0x17, 0xe1, 0x3d, 0x7f, 0x72, 0xee, 0x9a, 0x14,
+ 0xe2, 0x53, 0x9a, 0x6a, 0x14, 0xe7, 0x6e, 0xfc, 0x4e, 0x36, 0xe5, 0xd0,
+ 0x2d, 0x80, 0xbb, 0xfa, 0x03, 0xf3, 0x9c, 0x14, 0x81, 0xe0, 0x76, 0x5f,
+ 0x95, 0x40, 0xae, 0xbf, 0x1e, 0x1a, 0xe1, 0x6a, 0x94, 0x8b, 0xdd, 0x9e,
+ 0x5f, 0xa7, 0x9d, 0x63, 0xea, 0xf6, 0x55, 0xd2, 0xa5, 0x5b, 0xbd, 0x0d,
+ 0xcf, 0x8c, 0x66, 0xa2, 0x48, 0x06, 0x21, 0xad, 0xcf, 0x16, 0x15, 0x76,
+ 0xc6, 0x19, 0xde, 0xde, 0x08, 0x87, 0x2e, 0x6d, 0xad, 0xe9, 0xd5, 0xde,
+ 0x8b, 0xfd, 0xe1, 0xde, 0xf3, 0xcf, 0x87, 0x7b, 0x28, 0x09, 0xe9, 0xf5,
+ 0x8e, 0x29, 0x99, 0xa9, 0x6a, 0xa1, 0xd7, 0x4e, 0xa4, 0x36, 0x66, 0xb2,
+ 0x9a, 0xd7, 0x14, 0x1f, 0x98, 0xdf, 0x0f, 0xe9, 0xb1, 0x21, 0x57, 0xc2,
+ 0x08, 0x3e, 0x31, 0x37, 0x4a, 0x4d, 0x5e, 0x04, 0x41, 0x8f, 0x81, 0xc3,
+ 0x11, 0xe9, 0x65, 0xbf, 0xc8, 0x69, 0x17, 0x29, 0xd9, 0xa0, 0xeb, 0x14,
+ 0x9f, 0xf5, 0xdc, 0x55, 0x25, 0xa0, 0xb3, 0x19, 0xef, 0x90, 0x8a, 0xf4,
+ 0x89, 0x68, 0x91, 0x4e, 0xaa, 0xdb, 0xef, 0xff, 0x03, 0x16, 0x9f, 0x4a,
+ 0xc8, 0xd7, 0xb9, 0xf3, 0x4f, 0x88, 0xdf, 0x42, 0x2c, 0x12, 0xc0, 0x2b,
+ 0x40, 0xaf, 0xd3, 0x65, 0x68, 0x11, 0xc2, 0x0d, 0x16, 0x7e, 0x1d, 0x92,
+ 0x13, 0xef, 0x8a, 0x39, 0xf6, 0x18, 0x95, 0x7c, 0xfc, 0x11, 0xda, 0xd4,
+ 0x30, 0x79, 0x97, 0x44, 0x47, 0x5e, 0xc3, 0x75, 0xc5, 0xf2, 0x59, 0x9b,
+ 0xa3, 0xd7, 0xfe, 0xf4, 0x27, 0x27, 0x8f, 0xb8, 0x42, 0x31, 0x13, 0xf0,
+ 0x3f, 0xeb, 0x0b, 0x47, 0x21, 0x47, 0xb7, 0x98, 0x21, 0x3d, 0xe9, 0x1d,
+ 0xfc, 0x08, 0x67, 0xf0, 0xcf, 0x83, 0x1f, 0xcd, 0xbf, 0x7f, 0xee, 0xd9,
+ 0x0c, 0x43, 0x66, 0x45, 0x62, 0x1d, 0x79, 0xa3, 0x7d, 0x94, 0xfb, 0xed,
+ 0x0a, 0x8f, 0xd0, 0x0a, 0x2e, 0x8f, 0xce, 0xf9, 0x20, 0x56, 0x1c, 0xe4,
+ 0xc6, 0x48, 0x49, 0x10, 0x41, 0xad, 0x27, 0x09, 0xce, 0xfc, 0x88, 0x66,
+ 0xa7, 0xd8, 0xb9, 0xd4, 0x42, 0x39, 0x6c, 0x56, 0xe2, 0xc5, 0xbe, 0xa3,
+ 0x10, 0x24, 0xc5, 0xb1, 0xe2, 0xca, 0x23, 0x37, 0xa6, 0x2f, 0xe4, 0x3b,
+ 0x40, 0x42, 0xb3, 0x11, 0xbf, 0xaa, 0x52, 0xf3, 0x0f, 0xb4, 0x39, 0x62,
+ 0x58, 0xaa, 0xc9, 0x15, 0x7f, 0x67, 0xba, 0xd6, 0x17, 0x2e, 0x50, 0xce,
+ 0x8b, 0x68, 0x84, 0xce, 0xce, 0x4c, 0x87, 0x99, 0x30, 0x25, 0x43, 0xad,
+ 0xf2, 0xfa, 0x23, 0x8d, 0x50, 0x92, 0x7c, 0x12, 0x46, 0x08, 0x6d, 0x78,
+ 0x3a, 0x37, 0x7a, 0x46, 0x41, 0x2f, 0x21, 0x0d, 0xb1, 0x99, 0x7b, 0xde,
+ 0x14, 0xbb, 0x4b, 0x42, 0x17, 0x5f, 0x33, 0xe3, 0xa3, 0xc4, 0x47, 0xf2,
+ 0x58, 0x95, 0xc5, 0xf9, 0xb8, 0x7c, 0x16, 0x01, 0xa5, 0xfe, 0x48, 0x93,
+ 0x73, 0xa3, 0xef, 0xda, 0x6d, 0xe2, 0xd1, 0xe3, 0x24, 0x5b, 0xf4, 0x03,
+ 0xba, 0x04, 0xb7, 0xbb, 0x97, 0x17, 0x95, 0x97, 0x48, 0x73, 0xdf, 0x3d,
+ 0x63, 0xd6, 0x8d, 0x4e, 0x2c, 0x25, 0x4e, 0x54, 0xa6, 0x0f, 0x84, 0xcd,
+ 0x93, 0xc4, 0x6e, 0xcd, 0x40, 0xa2, 0xd0, 0xae, 0x2a, 0x76, 0x1b, 0x51,
+ 0x93, 0x41, 0x9c, 0xb4, 0x4e, 0x2b, 0x45, 0x1a, 0x25, 0x3b, 0x5f, 0x79,
+ 0xe2, 0xe9, 0x4f, 0xc8, 0x6d, 0x4a, 0xce, 0xb9, 0x2b, 0x50, 0x70, 0x34,
+ 0xb4, 0x6b, 0xd0, 0xf9, 0x79, 0x8c, 0xb0, 0xd4, 0xbb, 0x5b, 0xf7, 0x77,
+ 0x43, 0x8f, 0x0a, 0x55, 0x51, 0xc5, 0x24, 0x0f, 0xf2, 0xc5, 0xc3, 0x84,
+ 0x66, 0x4a, 0xb4, 0x44, 0x6b, 0xd9, 0x12, 0x30, 0xf6, 0xa2, 0xa9, 0x97,
+ 0xd7, 0xd7, 0xa0, 0x54, 0x08, 0x41, 0x79, 0x4d, 0xed, 0xa5, 0x40, 0x0a,
+ 0xc3, 0xbb, 0x91, 0xe9, 0xe8, 0xba, 0x4e, 0x87, 0x4b, 0x8c, 0x14, 0xd1,
+ 0xe3, 0x78, 0x72, 0x57, 0xe6, 0xce, 0x52, 0x8e, 0x09, 0x1f, 0x74, 0xa7,
+ 0xcf, 0x54, 0xd9, 0x60, 0x59, 0x67, 0x2d, 0x22, 0xe0, 0xd6, 0xd5, 0x11,
+ 0x80, 0x7a, 0x3d, 0xd9, 0x58, 0xaf, 0x11, 0x83, 0x2b, 0xf2, 0x37, 0x44,
+ 0x18, 0x92, 0xb3, 0x8d, 0xea, 0x5b, 0x30, 0xa1, 0x4b, 0x7e, 0x25, 0x4c,
+ 0x6a, 0x4c, 0x85, 0x55, 0x59, 0x6a, 0x21, 0x9f, 0xf9, 0xa0, 0x7b, 0x7d,
+ 0x5e, 0x61, 0x3e, 0xd6, 0x39, 0x08, 0x9c, 0x48, 0xf4, 0xd5, 0xa6, 0xa7,
+ 0xc3, 0xfd, 0x60, 0x69, 0xeb, 0xd9, 0x60, 0x32, 0x99, 0x0c, 0xa0, 0x10,
+ 0xbc, 0x64, 0x3d, 0x65, 0x47, 0xb4, 0x84, 0xb8, 0x06, 0x35, 0xca, 0x64,
+ 0xbe, 0x8f, 0x8e, 0x8e, 0x44, 0xa1, 0xb9, 0xbc, 0xe9, 0x68, 0x16, 0x96,
+ 0xf3, 0x47, 0xd4, 0xaa, 0x68, 0x46, 0x55, 0x7d, 0xb3, 0x6c, 0xa6, 0x28,
+ 0x2e, 0x4a, 0x52, 0x43, 0xe5, 0xb0, 0x4d, 0x93, 0xed, 0x70, 0x33, 0x52,
+ 0xa9, 0xe7, 0xbe, 0xc5, 0x23, 0x52, 0xe3, 0x41, 0x1e, 0xe1, 0x82, 0x6b,
+ 0x42, 0xe0, 0x45, 0x69, 0xbb, 0x5b, 0xbd, 0x90, 0xfb, 0xea, 0xd3, 0x27,
+ 0x69, 0x0f, 0xeb, 0x18, 0x86, 0x4d, 0x5b, 0xc1, 0x67, 0xd3, 0x5c, 0x10,
+ 0xb1, 0xa9, 0x7c, 0xab, 0xdb, 0xf6, 0x03, 0xeb, 0x21, 0x53, 0xdd, 0x5e,
+ 0x92, 0xe7, 0x2b, 0x97, 0x24, 0x2e, 0xa9, 0xc8, 0xc0, 0xc2, 0xcc, 0x27,
+ 0x5b, 0x47, 0xa0, 0x76, 0x24, 0x0a, 0x67, 0x9c, 0x8a, 0xa3, 0x1b, 0xc2,
+ 0x6e, 0xcd, 0xcc, 0x02, 0x99, 0x5e, 0xd7, 0x90, 0x03, 0x5c, 0x3b, 0x6d,
+ 0x74, 0xba, 0x73, 0x79, 0x3a, 0x0a, 0xe0, 0xee, 0xf7, 0xe4, 0x3b, 0x86,
+ 0x8f, 0xb8, 0xed, 0xf9, 0xe4, 0x29, 0x02, 0x59, 0x6e, 0x79, 0xd5, 0xde,
+ 0xe1, 0xfc, 0x85, 0x28, 0x5f, 0xc6, 0xb2, 0xd0, 0x3c, 0x18, 0xe7, 0xbb,
+ 0x2d, 0xb2, 0x02, 0x89, 0xe4, 0x74, 0x9f, 0xe3, 0x08, 0x00, 0x08, 0x5b,
+ 0x27, 0xef, 0x0e, 0x2f, 0x29, 0xb9, 0xa5, 0x11, 0x6c, 0xc7, 0x55, 0x19,
+ 0xa0, 0xcc, 0x95, 0x9b, 0xd3, 0xb2, 0x19, 0xa6, 0x13, 0x57, 0x1f, 0x42,
+ 0x55, 0x76, 0x5e, 0xbe, 0x5a, 0x77, 0xde, 0xba, 0xe9, 0x37, 0x53, 0x2a,
+ 0xf7, 0x43, 0x77, 0xcf, 0x77, 0x57, 0x63, 0x2f, 0xba, 0x1a, 0x3c, 0x01,
+ 0xd1, 0x15, 0xb9, 0x10, 0x69, 0x2e, 0xd3, 0x6c, 0xb7, 0x2e, 0x9c, 0x98,
+ 0xb3, 0xf2, 0x3a, 0x47, 0x72, 0x29, 0x2f, 0x55, 0x2b, 0xd6, 0x16, 0xf8,
+ 0x4b, 0x79, 0x72, 0x28, 0x0d, 0x1b, 0xf7, 0x62, 0x3b, 0xad, 0x8a, 0x0f,
+ 0x09, 0xdd, 0x15, 0x76, 0x52, 0x85, 0x18, 0x5c, 0x33, 0x20, 0xc3, 0x04,
+ 0x43, 0x92, 0x31, 0xf9, 0xc4, 0x58, 0x0a, 0x13, 0x02, 0x7d, 0xbc, 0x41,
+ 0x10, 0xa4, 0x05, 0xad, 0xcd, 0x5b, 0xc4, 0x68, 0xd6, 0x53, 0x4a, 0xe1,
+ 0xfa, 0x68, 0x06, 0x90, 0x8c, 0x71, 0xad, 0x43, 0xfe, 0x79, 0xeb, 0xfa,
+ 0xf8, 0x9a, 0x4c, 0xb3, 0xeb, 0xe0, 0xda, 0x65, 0xaf, 0x2e, 0xc3, 0xaf,
+ 0x3b, 0xd5, 0x68, 0x5c, 0x05, 0x06, 0xf2, 0x11, 0x71, 0x64, 0xbd, 0x53,
+ 0x67, 0x71, 0xda, 0x8f, 0xf2, 0x93, 0xf7, 0xbb, 0x94, 0xdf, 0x55, 0xc8,
+ 0x0a, 0xdc, 0x62, 0x95, 0xb1, 0xa4, 0x20, 0x9d, 0xe6, 0xbe, 0x36, 0xf7,
+ 0xbe, 0xe5, 0x93, 0xef, 0x90, 0xcf, 0xb4, 0xb8, 0xe6, 0x19, 0x89, 0x43,
+ 0x11, 0xa7, 0x3b, 0xaa, 0xa4, 0x78, 0x17, 0xb7, 0x76, 0x58, 0xa1, 0xbd,
+ 0x74, 0xec, 0xd4, 0x7c, 0x3c, 0x94, 0xc2, 0x5f, 0x45, 0xd6, 0xfb, 0x8b,
+ 0x53, 0x1b, 0x96, 0xff, 0xf7, 0x4d, 0x57, 0x30, 0x65, 0xb8, 0x82, 0xab,
+ 0x2d, 0x46, 0xe2, 0x8a, 0x48, 0x93, 0x84, 0x9a, 0x14, 0x48, 0xe1, 0x67,
+ 0x9b, 0x44, 0xa0, 0xdc, 0x3a, 0xbe, 0xf5, 0x3d, 0xfa, 0xe6, 0xf8, 0xf0,
+ 0xb5, 0xe5, 0x12, 0xf8, 0x05, 0x25, 0x85, 0xba, 0x2a, 0x3f, 0xdc, 0x24,
+ 0x0e, 0x74, 0x51, 0x16, 0xd9, 0x2a, 0x17, 0x89, 0xba, 0xfd, 0xc6, 0x19,
+ 0xd3, 0xe2, 0x2f, 0xc5, 0x63, 0x92, 0x62, 0x79, 0x74, 0xab, 0x62, 0xa3,
+ 0x18, 0x7d, 0xad, 0xce, 0xa4, 0x48, 0xf0, 0x4a, 0x7a, 0xf8, 0x95, 0x4e,
+ 0x12, 0x1f, 0x75, 0x20, 0xbe, 0x6b, 0xd2, 0x9a, 0x39, 0xb5, 0xca, 0xdb,
+ 0xca, 0xd7, 0xd8, 0xca, 0xb3, 0x72, 0x5c, 0x5e, 0x5d, 0xad, 0x09, 0x02,
+ 0x32, 0x49, 0x1f, 0x52, 0xa0, 0x78, 0xc7, 0xf4, 0x68, 0x1a, 0xe9, 0xbd,
+ 0x31, 0x75, 0xdf, 0x2c, 0xaa, 0x39, 0x6e, 0x3d, 0xc9, 0x4b, 0x90, 0xda,
+ 0xd6, 0xc1, 0xd5, 0xe3, 0xc5, 0x12, 0xee, 0x05, 0xd8, 0xaa, 0xe6, 0x1e,
+ 0x72, 0xf3, 0xd9, 0x31, 0xa3, 0xf8, 0x20, 0xcb, 0x74, 0x6e, 0x66, 0xfd,
+ 0x3f, 0xff, 0xeb, 0xc7, 0x9f, 0x23, 0x7c, 0xef, 0xc0, 0x81, 0xdd, 0x70,
+ 0x66, 0xa1, 0x79, 0x7e, 0x2e, 0xdc, 0x2d, 0x96, 0x96, 0xdb, 0xd5, 0x98,
+ 0x27, 0x15, 0x2c, 0x9b, 0x5d, 0x0d, 0x5d, 0xd5, 0x92, 0xf0, 0x62, 0xac,
+ 0xdd, 0x07, 0x51, 0x6d, 0x8a, 0x52, 0xc1, 0x39, 0x7d, 0x97, 0x08, 0x94,
+ 0x51, 0x36, 0xc5, 0xa1, 0xa5, 0x2d, 0xbd, 0xaa, 0xac, 0x44, 0x24, 0x95,
+ 0x40, 0x2b, 0x4b, 0x74, 0xa3, 0xe7, 0xef, 0x2f, 0x4e, 0xac, 0xcf, 0xd3,
+ 0x97, 0xcb, 0x37, 0x66, 0xa7, 0xde, 0x0f, 0xb2, 0xfb, 0x6c, 0x6c, 0x64,
+ 0x44, 0xad, 0xec, 0x0f, 0x83, 0x79, 0x9d, 0xbc, 0x9c, 0x9b, 0x1d, 0x9e,
+ 0xaf, 0xe0, 0xed, 0xf8, 0x86, 0x5e, 0x4b, 0x12, 0x7d, 0xcf, 0xd2, 0x48,
+ 0x5e, 0x97, 0x95, 0x99, 0xa2, 0xb9, 0xe4, 0xe3, 0x4a, 0x52, 0x72, 0xdb,
+ 0xab, 0x81, 0xfc, 0x92, 0xc0, 0x33, 0x40, 0x1c, 0x6c, 0x94, 0x54, 0xe5,
+ 0x91, 0x79, 0x89, 0x62, 0x38, 0x5d, 0xa6, 0x33, 0xd2, 0xea, 0x8d, 0xb1,
+ 0x0d, 0xfb, 0x9e, 0x5c, 0x84, 0xbc, 0xa3, 0x90, 0x56, 0x81, 0x57, 0xa2,
+ 0x3c, 0x02, 0x36, 0x0b, 0x11, 0x56, 0x16, 0x49, 0x1d, 0x7f, 0x44, 0xb6,
+ 0x0c, 0xa1, 0xff, 0x49, 0x29, 0x40, 0x1a, 0xce, 0xab, 0x74, 0x9f, 0x0f,
+ 0xb4, 0x05, 0xad, 0x52, 0x9e, 0x46, 0xae, 0x15, 0x42, 0x53, 0x5f, 0x47,
+ 0xf6, 0xe8, 0x26, 0x82, 0x43, 0x39, 0x4f, 0xa7, 0x36, 0x93, 0xde, 0x27,
+ 0x9f, 0x43, 0x16, 0x62, 0x4a, 0x69, 0x91, 0xd9, 0x6c, 0x28, 0xa5, 0x71,
+ 0x01, 0xa7, 0x72, 0xad, 0x42, 0xe6, 0x76, 0xe1, 0x23, 0x35, 0x21, 0x02,
+ 0x38, 0x19, 0x56, 0x7c, 0xfb, 0xc8, 0x2b, 0x17, 0x27, 0x44, 0x34, 0xec,
+ 0x0b, 0xb5, 0x04, 0x86, 0xae, 0x99, 0x15, 0x31, 0x21, 0xc0, 0x58, 0x8b,
+ 0x7a, 0x4a, 0x4c, 0x45, 0x42, 0x2f, 0x03, 0x4c, 0x41, 0x22, 0x44, 0xd6,
+ 0xfb, 0x58, 0xd6, 0xbb, 0xd3, 0x1c, 0x45, 0x5e, 0x92, 0xe7, 0xcf, 0x9e,
+ 0x3d, 0x4b, 0x38, 0xf6, 0x92, 0xf4, 0x4e, 0x98, 0x7a, 0xfd, 0xe2, 0xf8,
+ 0xe8, 0xec, 0xed, 0xdb, 0xe3, 0x77, 0xaf, 0x8f, 0x5f, 0xdb, 0x83, 0xa6,
+ 0x63, 0xb1, 0xbb, 0x23, 0x18, 0x11, 0xe1, 0x03, 0xa7, 0xc9, 0xde, 0xb3,
+ 0xdd, 0xc1, 0xfe, 0xb3, 0xdd, 0xc4, 0x6c, 0xc5, 0xd4, 0x66, 0xa9, 0xa5,
+ 0xb3, 0x94, 0x3c, 0x02, 0x37, 0x4b, 0xa3, 0xa7, 0x11, 0x37, 0x64, 0x43,
+ 0xac, 0x1b, 0x70, 0xc2, 0x92, 0x9f, 0xb8, 0xc8, 0x1a, 0x32, 0xa2, 0x03,
+ 0x0d, 0x28, 0x9d, 0x0e, 0x51, 0x4b, 0x9b, 0x89, 0xbe, 0x5c, 0xf4, 0x52,
+ 0xd4, 0x1f, 0x6c, 0xd0, 0xfd, 0x5d, 0xfa, 0xd4, 0x30, 0x79, 0x63, 0x34,
+ 0x90, 0xab, 0xf2, 0x53, 0xc2, 0x7a, 0xa0, 0x51, 0x4b, 0xb3, 0x30, 0x6a,
+ 0xd9, 0x7e, 0x9d, 0xde, 0x7e, 0xc2, 0x6f, 0xff, 0x13, 0xc3, 0xf5, 0xcf,
+ 0x5e, 0xb4, 0xb4, 0x03, 0x0b, 0x8b, 0x88, 0xa6, 0x76, 0x92, 0x06, 0xf5,
+ 0xe6, 0xe4, 0xf4, 0x78, 0x3b, 0x79, 0x93, 0x35, 0x92, 0x37, 0xa3, 0xa0,
+ 0x55, 0xba, 0x47, 0xfe, 0x05, 0x77, 0xb7, 0xe5, 0x4b, 0x93, 0xdc, 0xd3,
+ 0x68, 0x7d, 0x5d, 0x31, 0xa3, 0x71, 0x8b, 0x69, 0x12, 0x0e, 0x8f, 0x0b,
+ 0xd3, 0x48, 0x31, 0x1f, 0x85, 0x2a, 0x69, 0x0c, 0x4d, 0xa0, 0x91, 0x11,
+ 0x28, 0xa7, 0x32, 0x08, 0x0c, 0x3d, 0x3e, 0xad, 0xb2, 0xf0, 0x62, 0xd4,
+ 0xd4, 0x69, 0x81, 0xd1, 0x6a, 0x88, 0x8d, 0x4b, 0xd9, 0x47, 0x23, 0x1d,
+ 0xcc, 0x5f, 0x4a, 0xd9, 0x35, 0x40, 0xd6, 0xd2, 0x94, 0x72, 0x1d, 0x61,
+ 0xd1, 0xa7, 0x71, 0x58, 0x69, 0xbc, 0xde, 0xc4, 0x7d, 0xa3, 0x13, 0x47,
+ 0xd0, 0x06, 0xfe, 0x73, 0xe7, 0xcf, 0x51, 0x6a, 0x2b, 0x65, 0xaa, 0x47,
+ 0x35, 0x45, 0x79, 0xc3, 0x8c, 0x58, 0xeb, 0xeb, 0xca, 0xf5, 0xa1, 0x0a,
+ 0x0d, 0x2c, 0x6b, 0xc5, 0x68, 0x46, 0x34, 0x23, 0x38, 0x86, 0xd4, 0x92,
+ 0xfa, 0x8b, 0x94, 0x44, 0xd1, 0x9b, 0x89, 0x52, 0x8b, 0x9d, 0xd8, 0xe2,
+ 0xfa, 0x8d, 0x16, 0xb8, 0x9a, 0xc4, 0xaa, 0x0f, 0xf1, 0x71, 0x97, 0x62,
+ 0x8d, 0x7c, 0x4d, 0x13, 0x00, 0x3c, 0x55, 0x04, 0xb8, 0xf6, 0x97, 0x1e,
+ 0xbb, 0x11, 0x6e, 0x5a, 0xd8, 0xe9, 0x9c, 0x9a, 0x54, 0x47, 0xdd, 0xca,
+ 0x92, 0x33, 0x25, 0xe1, 0x23, 0x14, 0x30, 0x64, 0x93, 0x9f, 0xc3, 0xaa,
+ 0x4b, 0x52, 0x15, 0x38, 0x5d, 0x08, 0x50, 0xd2, 0x8a, 0xa9, 0xfc, 0x22,
+ 0xd7, 0xb0, 0x7c, 0xdd, 0xdf, 0xdb, 0x5d, 0x6d, 0xd0, 0xff, 0x4c, 0xdb,
+ 0xc6, 0x09, 0xf5, 0x10, 0x33, 0x77, 0xd0, 0x56, 0x50, 0x63, 0xba, 0xa9,
+ 0xf2, 0xc9, 0xc7, 0x1c, 0xd9, 0x6d, 0x4b, 0xe8, 0x09, 0x69, 0xa1, 0x29,
+ 0x3c, 0xdc, 0x4d, 0x4b, 0xe3, 0x6c, 0xb6, 0xdb, 0x10, 0x08, 0xf9, 0xb8,
+ 0x5a, 0xc3, 0x84, 0x58, 0x64, 0x8f, 0x12, 0x3d, 0xa4, 0xf6, 0x67, 0x06,
+ 0x90, 0xbc, 0x3d, 0x2d, 0xaa, 0x01, 0x50, 0x96, 0x1d, 0x94, 0x90, 0x08,
+ 0x65, 0x6d, 0x86, 0x52, 0x9c, 0x70, 0x26, 0xdd, 0x09, 0x81, 0x15, 0x55,
+ 0x90, 0x87, 0xd2, 0x35, 0x34, 0x56, 0xce, 0x9c, 0x50, 0xe6, 0xc0, 0x6d,
+ 0xca, 0x90, 0x65, 0x7a, 0x8c, 0xda, 0x70, 0x9d, 0xdf, 0xc6, 0x22, 0xf9,
+ 0x74, 0xb9, 0x48, 0xc7, 0xe6, 0x42, 0xa8, 0x20, 0x8a, 0x88, 0xe2, 0x58,
+ 0x01, 0x2a, 0x70, 0x7e, 0x4f, 0x62, 0x99, 0xeb, 0x38, 0x3f, 0xed, 0x09,
+ 0x9e, 0x91, 0x2e, 0x44, 0x74, 0x51, 0xc5, 0x81, 0xd9, 0xfe, 0x49, 0xef,
+ 0x1b, 0x73, 0xa9, 0x1e, 0xf4, 0x2c, 0x61, 0xb2, 0x00, 0x6f, 0xb2, 0xce,
+ 0xce, 0x91, 0x62, 0xa2, 0x83, 0x68, 0x89, 0x1f, 0x51, 0x09, 0x8d, 0x24,
+ 0x95, 0xa7, 0x35, 0x87, 0x23, 0xc4, 0xc9, 0xda, 0x9c, 0x0a, 0x4e, 0x43,
+ 0x0c, 0x09, 0xa1, 0xa9, 0x4b, 0x3f, 0x0c, 0x8e, 0xf0, 0xf1, 0xc1, 0x37,
+ 0x68, 0xee, 0x8b, 0x9e, 0xf5, 0x25, 0x76, 0x7f, 0x65, 0x3a, 0xbe, 0x11,
+ 0x83, 0x95, 0x38, 0xdb, 0xa7, 0x5e, 0x2a, 0xd0, 0x1f, 0x78, 0x05, 0xe9,
+ 0xa0, 0x14, 0x68, 0x9f, 0x4e, 0x77, 0x74, 0xc1, 0x39, 0x4a, 0x1c, 0xd6,
+ 0xb4, 0xb3, 0x61, 0xed, 0x45, 0x45, 0x41, 0x6a, 0xa3, 0x62, 0x4d, 0x07,
+ 0xe5, 0xd5, 0x00, 0x90, 0xdb, 0x79, 0x5a, 0x7d, 0x24, 0xc4, 0x8b, 0x77,
+ 0xea, 0x40, 0x3c, 0x01, 0x5a, 0xe0, 0xe9, 0x34, 0xa6, 0xf3, 0x71, 0x76,
+ 0x1c, 0xdd, 0x67, 0xb2, 0xf1, 0x15, 0xbb, 0xcf, 0x0b, 0x79, 0x20, 0x3e,
+ 0x5f, 0xbc, 0x6e, 0xcb, 0xc9, 0x10, 0xe7, 0xd3, 0xda, 0xea, 0x33, 0x7d,
+ 0xd6, 0x0b, 0x31, 0x6a, 0x18, 0x06, 0x73, 0xf6, 0x13, 0xc2, 0xb3, 0xb9,
+ 0x5c, 0x40, 0x17, 0x22, 0x82, 0xc6, 0xc0, 0xb0, 0xd7, 0xbc, 0x03, 0x04,
+ 0xd6, 0xcd, 0xad, 0xf2, 0x6c, 0xb8, 0xdb, 0x0f, 0x62, 0xc1, 0x0d, 0x6c,
+ 0xc8, 0xc2, 0x01, 0x51, 0xcc, 0xc3, 0x90, 0x91, 0x83, 0x58, 0xca, 0x66,
+ 0xdd, 0xdc, 0x93, 0xbc, 0xb6, 0x19, 0x9a, 0xa0, 0x47, 0x76, 0x50, 0x7a,
+ 0x07, 0x1d, 0xe1, 0xb2, 0xd9, 0x2c, 0x36, 0x39, 0x35, 0x33, 0xc6, 0x69,
+ 0x29, 0xa8, 0xa0, 0x3f, 0x0f, 0xba, 0x15, 0x05, 0x6d, 0x61, 0x21, 0x3f,
+ 0x21, 0xc0, 0x2b, 0x11, 0xb4, 0xd2, 0x89, 0x01, 0x9e, 0xec, 0x43, 0x2d,
+ 0xc5, 0x31, 0x30, 0x93, 0x2a, 0xf5, 0x13, 0x07, 0x19, 0xfd, 0x90, 0x89,
+ 0x20, 0x94, 0x28, 0xb2, 0x5e, 0x3d, 0x67, 0xcc, 0xff, 0xf9, 0x19, 0xcd,
+ 0x98, 0x65, 0x0e, 0xd7, 0x0a, 0x19, 0xee, 0x7e, 0xc0, 0xb6, 0xf5, 0xce,
+ 0x52, 0x77, 0xce, 0x48, 0xaa, 0x68, 0x01, 0x78, 0xf1, 0x89, 0xa1, 0x89,
+ 0x95, 0x10, 0xd5, 0x15, 0xd8, 0x51, 0x1c, 0x9b, 0x37, 0xa4, 0x31, 0x0e,
+ 0xde, 0x99, 0x65, 0x38, 0x48, 0xfe, 0xa3, 0xcc, 0x38, 0x0d, 0xf2, 0x81,
+ 0x2c, 0xc8, 0xef, 0x0f, 0x2f, 0xde, 0x9d, 0xbc, 0xfb, 0xfa, 0xc0, 0xca,
+ 0x38, 0x92, 0x77, 0x5e, 0x29, 0x8a, 0x8e, 0x43, 0x01, 0x91, 0x25, 0x3c,
+ 0x92, 0x47, 0x8b, 0x41, 0x38, 0x6a, 0xef, 0x41, 0xc2, 0x12, 0x5a, 0x7c,
+ 0x63, 0xe6, 0x37, 0xec, 0x77, 0x67, 0x53, 0x47, 0xf1, 0xf8, 0x92, 0x06,
+ 0x88, 0xfb, 0xb2, 0x29, 0x03, 0xa3, 0x86, 0xfd, 0x14, 0xa7, 0xb4, 0x30,
+ 0xb3, 0xb2, 0x55, 0x09, 0x86, 0x76, 0xe6, 0x0c, 0x7b, 0xa0, 0xf4, 0xb7,
+ 0x41, 0xab, 0xa6, 0x4b, 0x88, 0x5e, 0x00, 0xa8, 0x95, 0x0d, 0x09, 0xbe,
+ 0x2b, 0x5a, 0x25, 0x30, 0x98, 0xc6, 0xbe, 0xc6, 0xaa, 0xd5, 0x39, 0x0c,
+ 0x59, 0x3b, 0x2b, 0x2b, 0x4c, 0x2e, 0x5c, 0x66, 0x4c, 0x7e, 0x9b, 0x2e,
+ 0xf9, 0xc8, 0x30, 0xf5, 0x95, 0xfc, 0xd4, 0x61, 0xfd, 0xed, 0xf8, 0x1f,
+ 0x8d, 0x98, 0x75, 0x90, 0x59, 0xd6, 0x15, 0x19, 0xee, 0xe8, 0x49, 0xad,
+ 0x9d, 0x0a, 0xb7, 0x49, 0x94, 0xe2, 0x62, 0x96, 0xb9, 0x5c, 0x17, 0xab,
+ 0xee, 0xdc, 0xb0, 0xba, 0x33, 0x5b, 0x04, 0x4c, 0x6e, 0xa8, 0x93, 0x4c,
+ 0xbf, 0x51, 0xd8, 0x0c, 0x45, 0x46, 0x70, 0x09, 0xab, 0xca, 0xdb, 0xae,
+ 0x77, 0xaf, 0x85, 0xd8, 0x58, 0xae, 0x87, 0x57, 0x2a, 0x51, 0x09, 0x65,
+ 0x4c, 0x66, 0xe5, 0x67, 0x55, 0x98, 0xaf, 0x9b, 0x39, 0x5e, 0x2c, 0xc7,
+ 0xf3, 0xe9, 0x33, 0x63, 0x63, 0x4e, 0x9f, 0x05, 0x7a, 0x16, 0x70, 0x89,
+ 0xa3, 0x23, 0xa3, 0x6b, 0x11, 0x8e, 0x82, 0xae, 0x0c, 0x66, 0x53, 0x11,
+ 0x23, 0x9d, 0xfe, 0xfa, 0x64, 0xdf, 0xf4, 0xf4, 0x53, 0xaa, 0xdc, 0x89,
+ 0x46, 0x29, 0xbc, 0xce, 0x1b, 0x26, 0xdc, 0x5a, 0x41, 0x49, 0xe3, 0x63,
+ 0xc1, 0x68, 0xc5, 0xf7, 0xf6, 0x3f, 0x4f, 0x08, 0xcb, 0xfe, 0xf6, 0xf5,
+ 0xb3, 0x64, 0x72, 0x93, 0x4d, 0x3e, 0xd6, 0xcb, 0xb9, 0x4a, 0x64, 0x29,
+ 0x06, 0x4f, 0xfd, 0x0c, 0x48, 0x5f, 0x4c, 0xc7, 0x67, 0xf9, 0x84, 0x12,
+ 0xca, 0xfa, 0xad, 0xf0, 0xc7, 0x95, 0x86, 0x69, 0x3c, 0x0b, 0xc7, 0xde,
+ 0x1c, 0x08, 0x4b, 0x33, 0x74, 0x23, 0xe2, 0x1a, 0x37, 0x73, 0x60, 0x3e,
+ 0x5e, 0x73, 0xf9, 0xd8, 0xb5, 0x0e, 0xc1, 0xcf, 0x5a, 0x3e, 0xd5, 0x5d,
+ 0x2c, 0xa5, 0x39, 0xdf, 0x7b, 0xc3, 0xdd, 0x55, 0x25, 0x91, 0x3d, 0xae,
+ 0x27, 0x09, 0xde, 0xc2, 0x1e, 0x90, 0x0a, 0xd7, 0x89, 0x79, 0xd3, 0xd7,
+ 0xc3, 0x38, 0x5a, 0x6b, 0x66, 0x72, 0x05, 0x82, 0xc8, 0xdc, 0x2b, 0x62,
+ 0x79, 0x67, 0xd3, 0x56, 0x43, 0x8f, 0xc5, 0x72, 0x4b, 0x77, 0xf7, 0xc4,
+ 0x83, 0x4c, 0xff, 0x6a, 0xf9, 0xec, 0xe5, 0xd7, 0x2b, 0xaa, 0x57, 0x63,
+ 0x30, 0x6b, 0xc6, 0xb2, 0xb7, 0xb6, 0x1b, 0x5e, 0x3f, 0x30, 0x77, 0x6e,
+ 0xf2, 0x6c, 0x71, 0x23, 0xee, 0x8f, 0xce, 0x79, 0x18, 0x52, 0x0b, 0x09,
+ 0xba, 0xf1, 0x06, 0xc1, 0xf2, 0xcb, 0x6a, 0x40, 0x2a, 0xe1, 0x2c, 0x9b,
+ 0x06, 0x57, 0x74, 0x6c, 0x31, 0x70, 0x8e, 0xf3, 0xba, 0x5e, 0x2a, 0xc7,
+ 0x05, 0xb9, 0xa3, 0xc9, 0xe7, 0x8d, 0x21, 0x59, 0x11, 0x1a, 0x83, 0x1e,
+ 0xd3, 0x13, 0x3b, 0xfb, 0x56, 0x03, 0xc4, 0x3f, 0x69, 0x4a, 0xdf, 0x2f,
+ 0xae, 0xab, 0x14, 0x98, 0x98, 0x93, 0xc6, 0x63, 0x2a, 0x4f, 0xd0, 0xb9,
+ 0x24, 0x59, 0xd5, 0x3b, 0x4e, 0xf2, 0xf5, 0x6b, 0xd8, 0x68, 0x8a, 0x59,
+ 0xad, 0x9f, 0xaa, 0x29, 0x77, 0xcf, 0xd5, 0x18, 0xa2, 0x9f, 0x3a, 0x2e,
+ 0xf7, 0x18, 0x29, 0x69, 0xdd, 0x08, 0xd8, 0x51, 0x1a, 0x68, 0x01, 0x82,
+ 0x89, 0x6c, 0x99, 0x2f, 0x17, 0x5b, 0xf1, 0x89, 0x40, 0x30, 0x42, 0xa4,
+ 0x13, 0x30, 0xbe, 0xf1, 0xe2, 0x8a, 0x96, 0xd0, 0x21, 0x24, 0x0b, 0x7c,
+ 0xd7, 0xd1, 0xe5, 0x78, 0x34, 0xfd, 0x77, 0xc0, 0x3b, 0x94, 0xb3, 0x71,
+ 0xaf, 0x29, 0x77, 0x3c, 0x9a, 0xe1, 0xe3, 0x36, 0xf7, 0x6e, 0x3f, 0xda,
+ 0x3b, 0xda, 0x6e, 0xfe, 0xe6, 0x6f, 0x91, 0x78, 0xbd, 0x88, 0x6c, 0xae,
+ 0x5f, 0x75, 0x16, 0xf6, 0xd7, 0x45, 0x70, 0x8c, 0x12, 0x9f, 0xce, 0x16,
+ 0xc5, 0x50, 0xbf, 0xf0, 0xa8, 0xf9, 0xe9, 0x2e, 0xb3, 0x25, 0x4b, 0xff,
+ 0x75, 0xf3, 0xd3, 0x9d, 0x1b, 0x5f, 0x96, 0xf9, 0xf3, 0xd3, 0x5d, 0xcb,
+ 0xb5, 0x6c, 0xf9, 0x9c, 0x21, 0xab, 0x45, 0x7a, 0x07, 0x9c, 0xfa, 0x13,
+ 0x45, 0xc4, 0xcb, 0x89, 0x54, 0x9a, 0xab, 0x7e, 0x72, 0xc2, 0x34, 0xae,
+ 0x88, 0xc5, 0xca, 0xeb, 0xa7, 0x9c, 0x39, 0xc4, 0x57, 0xa8, 0x75, 0xa2,
+ 0x47, 0x92, 0x0c, 0xf3, 0x09, 0x31, 0xc8, 0xcc, 0xee, 0xd5, 0x7d, 0x46,
+ 0x3a, 0x9c, 0x65, 0x9e, 0x5f, 0x16, 0xb8, 0xb0, 0x0e, 0x17, 0x94, 0xfc,
+ 0x63, 0x64, 0xd4, 0x27, 0x57, 0x92, 0x2f, 0x12, 0x41, 0x30, 0xb7, 0x7a,
+ 0xc9, 0x38, 0x6a, 0xc5, 0x1b, 0x76, 0xbb, 0x83, 0xd6, 0x99, 0xe8, 0x69,
+ 0x46, 0x08, 0xdb, 0x8a, 0x95, 0x98, 0x7d, 0x63, 0x39, 0x5e, 0x07, 0x34,
+ 0xd2, 0xe3, 0xfb, 0x26, 0x02, 0x7e, 0xa7, 0x51, 0xd3, 0x2c, 0x6c, 0x31,
+ 0xa1, 0x8c, 0xd9, 0x77, 0xcf, 0x87, 0xbb, 0xdb, 0x7d, 0xaa, 0x3e, 0xba,
+ 0xc0, 0x0c, 0x10, 0x38, 0xd9, 0xde, 0xf5, 0x14, 0x55, 0xcc, 0xaf, 0xc9,
+ 0x86, 0x82, 0xbd, 0x19, 0x89, 0x3d, 0x93, 0xbf, 0x45, 0x30, 0x1d, 0x8a,
+ 0x98, 0x10, 0x62, 0xbd, 0x36, 0x81, 0x76, 0xde, 0x47, 0x91, 0x16, 0x78,
+ 0x4b, 0xba, 0x7e, 0x32, 0xf1, 0xa1, 0xb8, 0x6a, 0xc3, 0x3e, 0x7b, 0xb3,
+ 0x6a, 0x60, 0x0e, 0xfc, 0x2b, 0xb4, 0xe4, 0xf0, 0x63, 0x46, 0x7c, 0x2b,
+ 0x8e, 0x01, 0x59, 0xd9, 0xe7, 0x61, 0x6d, 0xf3, 0x37, 0xc4, 0x28, 0x82,
+ 0xd2, 0xa9, 0x12, 0x8f, 0xec, 0x16, 0xf2, 0x30, 0x31, 0xd9, 0x7b, 0xf7,
+ 0xe4, 0x4e, 0xc1, 0x14, 0xcc, 0xba, 0x81, 0x23, 0xc5, 0x6c, 0x1d, 0x38,
+ 0x25, 0xb2, 0x1c, 0x0e, 0x87, 0x91, 0x9c, 0xdd, 0xdb, 0x3c, 0xbb, 0x6b,
+ 0x39, 0x87, 0xa4, 0x5f, 0x7d, 0x4b, 0x08, 0xcf, 0x36, 0xc9, 0x2d, 0xcd,
+ 0x90, 0x69, 0x72, 0x5c, 0xda, 0x42, 0xb7, 0x6b, 0x0e, 0xb2, 0xff, 0xb4,
+ 0x37, 0xcd, 0x1f, 0x79, 0x9a, 0xeb, 0x58, 0x16, 0x0c, 0x53, 0x40, 0x3a,
+ 0xfe, 0xea, 0x3e, 0x29, 0xe8, 0xd5, 0x7d, 0x02, 0xa2, 0x72, 0xa7, 0xb8,
+ 0x40, 0xae, 0x30, 0xee, 0x32, 0xaf, 0x99, 0x81, 0x31, 0x8f, 0x41, 0x81,
+ 0x51, 0xff, 0x81, 0x3e, 0xd3, 0x3e, 0xf3, 0xe2, 0xb7, 0xb1, 0xd5, 0x97,
+ 0xab, 0x72, 0x42, 0xa6, 0x11, 0x2e, 0x59, 0x25, 0x5e, 0x86, 0x65, 0x10,
+ 0x89, 0xb3, 0xca, 0x8a, 0x78, 0x4c, 0xed, 0x5e, 0x54, 0xd0, 0xd1, 0xe7,
+ 0x27, 0x3a, 0xc0, 0xa8, 0x6b, 0xdb, 0xae, 0xab, 0xef, 0x90, 0xf7, 0x47,
+ 0x32, 0xbe, 0xd7, 0x1a, 0x26, 0xe2, 0x1d, 0x70, 0xcc, 0x92, 0x01, 0x07,
+ 0xb2, 0xcd, 0xca, 0x71, 0xc4, 0x21, 0xce, 0xcf, 0xc2, 0x19, 0x3d, 0x18,
+ 0x99, 0x34, 0x5e, 0xfb, 0xa4, 0xa0, 0x01, 0x41, 0xb6, 0x57, 0x6d, 0xda,
+ 0x34, 0xcc, 0x35, 0x06, 0xa2, 0x4b, 0xcc, 0x26, 0x38, 0x27, 0xf6, 0x9a,
+ 0xed, 0x5c, 0x2e, 0x29, 0xc6, 0x86, 0xb3, 0x2f, 0x79, 0x79, 0x92, 0x8a,
+ 0xd7, 0xcd, 0xd7, 0xb6, 0xbc, 0x37, 0x34, 0xfb, 0xc3, 0x9b, 0xf4, 0xd3,
+ 0xa7, 0x61, 0x9d, 0xed, 0x98, 0x5d, 0x5b, 0xef, 0xd4, 0xf5, 0x8c, 0x3e,
+ 0x5a, 0x83, 0x62, 0x66, 0xf5, 0xf5, 0xc0, 0xf6, 0xab, 0xce, 0xaf, 0x08,
+ 0xe3, 0x49, 0x4a, 0xaf, 0xb6, 0x84, 0xad, 0xab, 0x05, 0xc5, 0x84, 0xf8,
+ 0x5d, 0x84, 0x14, 0x53, 0x6c, 0x02, 0x96, 0xed, 0x27, 0x18, 0xb1, 0x68,
+ 0x70, 0x71, 0x68, 0xdb, 0x8e, 0xe3, 0x0e, 0x26, 0x52, 0xcd, 0x6a, 0x15,
+ 0xa0, 0x55, 0xce, 0xaa, 0x87, 0x86, 0x32, 0x93, 0x62, 0x71, 0x9f, 0xe6,
+ 0x7e, 0x70, 0xdc, 0x01, 0x5c, 0x74, 0x82, 0x2b, 0x24, 0x47, 0x78, 0x2d,
+ 0x56, 0x19, 0xd2, 0xde, 0xd0, 0x08, 0x22, 0x7b, 0xe0, 0x78, 0x94, 0xee,
+ 0xee, 0xee, 0x86, 0xeb, 0x2c, 0xe9, 0x7f, 0xd8, 0xdd, 0xdf, 0x6e, 0xee,
+ 0xcc, 0xec, 0xda, 0xd3, 0xbc, 0x58, 0x7e, 0x4a, 0xbc, 0x34, 0x76, 0x5b,
+ 0xfc, 0x40, 0x5d, 0xc5, 0xc9, 0x77, 0x17, 0x6f, 0x6c, 0xe5, 0x45, 0x4d,
+ 0x1f, 0x26, 0x5f, 0x44, 0x1d, 0x7a, 0x4d, 0xb3, 0x9c, 0xc9, 0x05, 0x88,
+ 0x1e, 0xf3, 0xe8, 0xf0, 0xfc, 0xc3, 0xbb, 0xe3, 0xcb, 0x0f, 0x17, 0x87,
+ 0xdf, 0xd3, 0x14, 0x72, 0x38, 0xbf, 0x4a, 0x51, 0x81, 0xa5, 0x2a, 0x4b,
+ 0x82, 0x69, 0xbe, 0x45, 0x41, 0x90, 0xbc, 0x40, 0x06, 0x79, 0xac, 0x46,
+ 0x81, 0x23, 0xc6, 0x90, 0x7e, 0x9a, 0xbe, 0x1c, 0x24, 0xad, 0xf9, 0xfa,
+ 0x68, 0x2c, 0x87, 0x6c, 0x36, 0x2c, 0xab, 0x6b, 0xda, 0x85, 0x3b, 0xaf,
+ 0x45, 0x7e, 0x46, 0x9b, 0xdb, 0x91, 0x00, 0x0e, 0xf1, 0xac, 0xdc, 0x56,
+ 0x57, 0x94, 0x94, 0xbd, 0xae, 0x6e, 0xb1, 0x5f, 0xce, 0xc7, 0xdb, 0x9a,
+ 0x4f, 0x21, 0x00, 0x17, 0xb7, 0x4f, 0xd7, 0x18, 0x03, 0x4d, 0x4b, 0x7f,
+ 0xa2, 0x03, 0x36, 0xbb, 0xe5, 0xad, 0x85, 0x28, 0x86, 0x1f, 0x96, 0xa3,
+ 0x13, 0x4d, 0x2e, 0xb5, 0x7e, 0x24, 0xed, 0x13, 0xec, 0xc1, 0xa5, 0x4d,
+ 0x92, 0x05, 0xac, 0x9f, 0xe2, 0x89, 0xeb, 0xeb, 0x10, 0xa9, 0x1e, 0xd4,
+ 0x35, 0x3b, 0x5a, 0xd8, 0x36, 0x5f, 0x73, 0x7a, 0x1e, 0xea, 0x92, 0x54,
+ 0xa1, 0xc8, 0x1b, 0xf3, 0x73, 0x19, 0xf3, 0xf3, 0x7f, 0x68, 0xcc, 0xcf,
+ 0xff, 0x81, 0x31, 0x3f, 0xfd, 0xa7, 0x8f, 0xf9, 0xaf, 0x34, 0xe6, 0xbf,
+ 0x2e, 0x8b, 0x8f, 0x03, 0xd3, 0x5f, 0xba, 0x85, 0xa5, 0xca, 0x4b, 0x1d,
+ 0x57, 0x99, 0x5b, 0x85, 0x05, 0xc8, 0xd1, 0xe4, 0x51, 0x29, 0x7a, 0x45,
+ 0x6b, 0x52, 0xc9, 0x53, 0xe3, 0xa0, 0xd3, 0xca, 0x52, 0xac, 0xea, 0x0c,
+ 0x63, 0x40, 0x38, 0x25, 0x9b, 0x4d, 0xf3, 0x7a, 0x42, 0xf6, 0x0d, 0x39,
+ 0x4c, 0x7a, 0xd2, 0x23, 0x6d, 0xba, 0xa7, 0x3c, 0xf3, 0x11, 0xfe, 0x3f,
+ 0xaa, 0x86, 0x0b, 0xd3, 0x1a, 0xa7, 0xd2, 0xc6, 0x65, 0x5c, 0x29, 0xd0,
+ 0x9c, 0x18, 0xb6, 0x88, 0xe7, 0x42, 0x1b, 0x65, 0x4f, 0x35, 0x79, 0x21,
+ 0x43, 0x99, 0x71, 0x79, 0xbf, 0xa0, 0xe6, 0x4c, 0xbb, 0x95, 0xb9, 0x83,
+ 0xa1, 0x35, 0x49, 0x95, 0x5a, 0xdb, 0xc1, 0xa4, 0xd3, 0x39, 0x71, 0xbd,
+ 0xdd, 0x64, 0xf7, 0x9b, 0x81, 0xc2, 0x30, 0x99, 0x95, 0x24, 0x6f, 0x48,
+ 0xaf, 0x5b, 0xa3, 0x89, 0x8c, 0x5d, 0x89, 0x1d, 0xbe, 0x2f, 0x3a, 0x35,
+ 0x77, 0xfc, 0x7b, 0xe3, 0x63, 0x96, 0x2d, 0xd2, 0x19, 0x12, 0x8a, 0x29,
+ 0x1a, 0xb7, 0xaa, 0x30, 0x48, 0x0b, 0x07, 0xa2, 0x30, 0x49, 0xbc, 0xd1,
+ 0x89, 0xb3, 0x43, 0xd2, 0x69, 0xe9, 0x78, 0xc2, 0x07, 0x9b, 0xe9, 0x99,
+ 0x06, 0x1c, 0x0b, 0xa2, 0x9f, 0xda, 0x80, 0x9c, 0xed, 0x05, 0x69, 0x27,
+ 0x63, 0xc9, 0x6e, 0xb7, 0x9f, 0x50, 0xb2, 0x9c, 0xdc, 0x3c, 0x7c, 0x9b,
+ 0x13, 0x00, 0xa1, 0xd3, 0x5c, 0xf7, 0x75, 0x10, 0x67, 0xb4, 0x38, 0xa2,
+ 0x2d, 0xa7, 0x23, 0x05, 0x66, 0xe4, 0xfe, 0x23, 0x75, 0x03, 0x05, 0xb7,
+ 0x82, 0x2d, 0xa5, 0x1c, 0x91, 0xac, 0xdd, 0x5e, 0x1e, 0x9d, 0x7f, 0xf8,
+ 0xf6, 0xf8, 0xf8, 0xfc, 0xe4, 0xf5, 0xe9, 0xb1, 0x1c, 0x18, 0xfb, 0xa3,
+ 0x77, 0x97, 0xdf, 0x9d, 0x6a, 0x5d, 0x1c, 0xdd, 0x8b, 0xc1, 0x86, 0x17,
+ 0x82, 0x63, 0x16, 0xca, 0x7d, 0x94, 0xff, 0x28, 0x9a, 0xe4, 0xf0, 0xe4,
+ 0x07, 0xa3, 0xb5, 0x9e, 0x0f, 0xde, 0xff, 0x10, 0xf0, 0xae, 0x7b, 0x78,
+ 0xda, 0x95, 0x45, 0x69, 0xcd, 0x36, 0x84, 0xed, 0xe8, 0xc6, 0xbe, 0x0a,
+ 0x5d, 0xf0, 0x1b, 0x5f, 0x83, 0x84, 0xd2, 0x2a, 0xac, 0xc2, 0xc0, 0x2f,
+ 0x6a, 0x6d, 0x03, 0x2f, 0x80, 0xff, 0x7c, 0x57, 0xcb, 0xc6, 0xac, 0xf5,
+ 0xa1, 0x7d, 0xde, 0xb6, 0x19, 0x3f, 0x66, 0xf7, 0x20, 0xaa, 0x4a, 0x5e,
+ 0xd2, 0x7f, 0xe3, 0x65, 0x7d, 0xce, 0xab, 0xfc, 0x96, 0xf4, 0x3f, 0xf3,
+ 0x2c, 0x07, 0x19, 0xe8, 0xd1, 0xa1, 0x2d, 0x72, 0x24, 0x81, 0x0e, 0x6a,
+ 0x04, 0xb1, 0x50, 0x34, 0x0a, 0x8f, 0x46, 0x10, 0x2c, 0xcb, 0xa7, 0xec,
+ 0xeb, 0xe0, 0xf6, 0xd0, 0xa0, 0x99, 0x9e, 0x61, 0xf2, 0xfa, 0xf8, 0xa2,
+ 0x9f, 0x9c, 0x1f, 0xbf, 0x65, 0x54, 0xee, 0xf1, 0xbb, 0xaf, 0xb9, 0xee,
+ 0x93, 0x96, 0xf3, 0x41, 0x6c, 0x2e, 0xc4, 0xa5, 0x78, 0x73, 0x62, 0xde,
+ 0x05, 0x06, 0xa7, 0xae, 0xcd, 0xed, 0xfa, 0x3b, 0xd2, 0x06, 0xf0, 0xd8,
+ 0x5e, 0x9a, 0xff, 0xc4, 0xa6, 0xca, 0xd8, 0x11, 0xdf, 0x44, 0xa6, 0x4b,
+ 0x14, 0x33, 0x1b, 0xcd, 0x15, 0xa3, 0x80, 0x66, 0x83, 0x67, 0xcc, 0x4c,
+ 0x48, 0x18, 0x57, 0xd4, 0x09, 0x82, 0xeb, 0x07, 0xcc, 0x09, 0x5c, 0x69,
+ 0x4e, 0xa2, 0x42, 0x64, 0xc5, 0x9a, 0xcf, 0xf5, 0x69, 0x5f, 0x82, 0x73,
+ 0xd5, 0x4d, 0x46, 0x2c, 0x27, 0xac, 0xca, 0x25, 0x69, 0xc2, 0xb9, 0xe3,
+ 0x8d, 0x42, 0x35, 0xcd, 0xa7, 0x48, 0x3a, 0x35, 0xdf, 0x28, 0xab, 0x69,
+ 0x84, 0x63, 0xf3, 0xb7, 0x9c, 0xb8, 0x6a, 0x9c, 0xbc, 0x9c, 0x99, 0x17,
+ 0x67, 0x71, 0x30, 0xf8, 0x31, 0x97, 0x7f, 0xf8, 0xd6, 0x18, 0x74, 0x59,
+ 0x55, 0xd6, 0xdd, 0x5a, 0x00, 0x52, 0xea, 0x95, 0x6d, 0x5e, 0x34, 0x23,
+ 0x24, 0x77, 0x21, 0x20, 0x88, 0x74, 0x22, 0xb1, 0xb7, 0x82, 0x8c, 0xf1,
+ 0x4d, 0xe0, 0x67, 0x37, 0xfb, 0xc9, 0x26, 0x15, 0x3c, 0xa0, 0x3f, 0x51,
+ 0xfb, 0x95, 0xb8, 0xc9, 0xf3, 0x74, 0xb6, 0xd9, 0x0f, 0x8b, 0x38, 0x6f,
+ 0xca, 0x76, 0xdd, 0x34, 0x3b, 0x9e, 0x5b, 0xa3, 0x25, 0x44, 0x2a, 0x9e,
+ 0xf4, 0x43, 0x78, 0x02, 0x6b, 0x89, 0xa0, 0x23, 0x5b, 0x53, 0x68, 0x5b,
+ 0xeb, 0x80, 0x98, 0xdf, 0x36, 0xd7, 0xce, 0xea, 0x5f, 0x85, 0x78, 0xf9,
+ 0x8d, 0x65, 0x09, 0x2f, 0xc3, 0x2f, 0x2d, 0x08, 0xe8, 0x7c, 0x5c, 0x9d,
+ 0xe6, 0x74, 0xb1, 0xfc, 0x75, 0xd6, 0xd7, 0xa3, 0xf5, 0xd1, 0x0e, 0x39,
+ 0x6d, 0xc9, 0x1f, 0x12, 0xe8, 0x71, 0x09, 0x62, 0x3b, 0x65, 0xd5, 0x5d,
+ 0xb2, 0x31, 0xfc, 0x9a, 0x46, 0x72, 0x09, 0x84, 0x40, 0x08, 0xd6, 0x41,
+ 0xc0, 0x67, 0xad, 0xdd, 0x1e, 0xb0, 0x89, 0x75, 0x94, 0x88, 0xcd, 0x08,
+ 0xac, 0xee, 0x5d, 0x45, 0xb4, 0x5d, 0x85, 0xa3, 0xff, 0x9b, 0x65, 0xab,
+ 0xf8, 0x1d, 0x94, 0xd9, 0xcb, 0x2c, 0xd2, 0x4c, 0x8a, 0xed, 0x28, 0x88,
+ 0xa1, 0xd2, 0x6e, 0x0d, 0x24, 0x00, 0xa4, 0x56, 0x1d, 0xbd, 0xf7, 0x2f,
+ 0xff, 0xe0, 0xca, 0x49, 0x8d, 0x24, 0x26, 0x12, 0x8d, 0xa4, 0xf0, 0x3d,
+ 0x9a, 0xc6, 0xa4, 0x03, 0x3c, 0x07, 0x84, 0x6d, 0x00, 0xc1, 0xf1, 0xd2,
+ 0xc8, 0x88, 0x2c, 0xe0, 0x71, 0x68, 0xd7, 0xaa, 0x9b, 0x4b, 0x25, 0x32,
+ 0x8f, 0xd0, 0x08, 0xef, 0xda, 0x42, 0x89, 0xbe, 0xcf, 0x75, 0x10, 0xa9,
+ 0xb0, 0x0c, 0xf6, 0x6c, 0x97, 0x39, 0x84, 0x63, 0x0b, 0x8a, 0x1a, 0xcd,
+ 0xbf, 0x57, 0x70, 0x15, 0x4f, 0x08, 0x39, 0x0c, 0x05, 0xb6, 0x03, 0xfd,
+ 0x2f, 0x20, 0xc0, 0x65, 0x04, 0x1e, 0x88, 0xa8, 0xd1, 0x18, 0x81, 0x49,
+ 0xa6, 0xec, 0xbd, 0xc2, 0x92, 0xd8, 0x7e, 0xa2, 0x76, 0x38, 0xf7, 0x8b,
+ 0x19, 0x7c, 0xcd, 0x89, 0x0e, 0xf4, 0xb9, 0xb1, 0x69, 0xe2, 0x2e, 0x9f,
+ 0x36, 0x37, 0xa0, 0x88, 0x87, 0xf2, 0x6a, 0x74, 0xd7, 0x5a, 0x72, 0xd5,
+ 0xc8, 0x93, 0x98, 0xc7, 0x60, 0xd8, 0x51, 0x2f, 0x0b, 0xaf, 0x18, 0xe6,
+ 0x34, 0x61, 0xe6, 0x06, 0x72, 0xa6, 0x60, 0x19, 0xe0, 0x78, 0xdc, 0xe1,
+ 0xeb, 0xd8, 0x26, 0x2d, 0x1b, 0xab, 0x7f, 0x79, 0x45, 0xe4, 0xef, 0xa1,
+ 0x1b, 0x55, 0xe1, 0xd2, 0x43, 0x7b, 0x44, 0xb8, 0x22, 0xc4, 0x47, 0x26,
+ 0x68, 0xfd, 0x76, 0x53, 0x8b, 0x9d, 0x2d, 0x8b, 0xc6, 0xc7, 0x74, 0x9a,
+ 0x13, 0xfa, 0x31, 0x9f, 0x95, 0x51, 0xbf, 0xa7, 0x11, 0x6d, 0x73, 0x7e,
+ 0xfd, 0xed, 0xa6, 0x3a, 0xb3, 0x28, 0x97, 0xef, 0x3a, 0x95, 0x5f, 0x73,
+ 0x1a, 0xef, 0xe6, 0x35, 0x3f, 0xf4, 0xb5, 0x3e, 0x14, 0xe6, 0x2a, 0x91,
+ 0x6b, 0x95, 0x5d, 0xa9, 0x1a, 0x83, 0xaf, 0x0f, 0x08, 0x2f, 0xf8, 0x6d,
+ 0x3f, 0x79, 0x32, 0xc7, 0xa2, 0xec, 0x7d, 0x1d, 0x45, 0x72, 0x33, 0xc6,
+ 0x84, 0x54, 0x64, 0x8d, 0x0e, 0x0e, 0xfe, 0x42, 0x9a, 0x31, 0xe6, 0x8c,
+ 0x77, 0xa6, 0x05, 0x27, 0x33, 0x00, 0xde, 0x95, 0x4e, 0xef, 0x5e, 0x60,
+ 0xb4, 0x54, 0x0b, 0xd2, 0xe4, 0xa6, 0x99, 0xf2, 0x55, 0xce, 0xe1, 0x82,
+ 0xa2, 0x08, 0xeb, 0x42, 0x12, 0x35, 0x69, 0xab, 0x0e, 0x2c, 0x03, 0x56,
+ 0x3d, 0xa3, 0x07, 0x50, 0xb5, 0xa1, 0x0c, 0x00, 0x59, 0xb3, 0x05, 0xb4,
+ 0x58, 0x5b, 0x58, 0xc5, 0xeb, 0x12, 0xa5, 0x5a, 0x4c, 0x12, 0x31, 0xc4,
0x7f, 0x47, 0x5d, 0x62, 0x86, 0xa0, 0x7e, 0x5e, 0x37, 0x03, 0xb2, 0x35,
- 0xa3, 0x8e, 0xfa, 0xf3, 0xb3, 0xf3, 0x27, 0xdb, 0x16, 0x56, 0xce, 0x9c,
- 0x21, 0x92, 0xeb, 0x93, 0x28, 0x4c, 0xd0, 0x66, 0x01, 0x29, 0xb7, 0x18,
- 0xd0, 0xa6, 0xb1, 0x2a, 0xd8, 0x4a, 0xaf, 0x8b, 0xef, 0xc1, 0x2b, 0xeb,
- 0x32, 0xcb, 0xbd, 0xa2, 0x10, 0xee, 0x58, 0xb2, 0x4c, 0x20, 0x94, 0xc8,
- 0x46, 0x98, 0x28, 0x29, 0x56, 0x87, 0xe4, 0x19, 0x0e, 0x80, 0x62, 0x4d,
- 0xda, 0x7c, 0xd3, 0x04, 0x79, 0xec, 0x74, 0xb2, 0x9d, 0xdb, 0xe5, 0x85,
- 0x81, 0x05, 0x2c, 0xea, 0x1e, 0x84, 0xd7, 0x58, 0x31, 0xbd, 0x7c, 0xdf,
- 0xda, 0x20, 0x1a, 0xb9, 0xb4, 0x68, 0xdb, 0x32, 0x25, 0xd8, 0x70, 0x65,
- 0x5d, 0x3c, 0x4b, 0xcc, 0xda, 0x52, 0x9b, 0x85, 0xbf, 0x3d, 0x4d, 0xde,
- 0x9d, 0x8e, 0x2e, 0x7d, 0x4f, 0x3f, 0x1c, 0xba, 0x01, 0x02, 0xaa, 0x4d,
- 0x55, 0xe0, 0xc5, 0x8b, 0x4f, 0x4f, 0x46, 0x97, 0xc3, 0x18, 0xe5, 0xe8,
- 0x41, 0x32, 0x2a, 0xe7, 0x7e, 0x25, 0xbe, 0x5a, 0x2a, 0xa5, 0x01, 0xee,
- 0xcc, 0xe1, 0x0b, 0xf5, 0xe6, 0xe7, 0x95, 0xef, 0xeb, 0x0f, 0x76, 0x2a,
- 0x75, 0xf1, 0x0b, 0x46, 0x37, 0x09, 0x32, 0x4a, 0x1d, 0xf9, 0xf5, 0x72,
- 0x3c, 0xf0, 0xb8, 0x41, 0x58, 0xdf, 0x01, 0x59, 0xb9, 0xd9, 0xbd, 0xe6,
- 0x86, 0xfa, 0x18, 0x1a, 0x02, 0x5b, 0xb2, 0x9f, 0x78, 0x23, 0x09, 0xab,
- 0x4b, 0xcb, 0x23, 0x39, 0x49, 0x32, 0xf0, 0x44, 0xc1, 0x17, 0x40, 0x4f,
- 0x3f, 0x6a, 0x53, 0xd1, 0x44, 0x74, 0xe6, 0x51, 0xaa, 0x5b, 0xb4, 0x81,
- 0x8e, 0x14, 0x59, 0xf1, 0xb8, 0x2e, 0xd6, 0x05, 0x93, 0xbc, 0x5d, 0xa8,
- 0xa4, 0x33, 0xb2, 0xeb, 0xb8, 0xe8, 0x1e, 0xbb, 0x05, 0x6c, 0xaf, 0x57,
- 0x51, 0x57, 0xe5, 0x53, 0x66, 0x76, 0xa9, 0xdb, 0xd4, 0x2e, 0x9c, 0xbd,
- 0x43, 0x22, 0x87, 0x89, 0x9c, 0xc9, 0x7a, 0x5d, 0xb1, 0x92, 0xec, 0x37,
- 0x69, 0x41, 0x5a, 0x06, 0x3f, 0x32, 0x4e, 0x0a, 0xc1, 0x8c, 0x7e, 0x8c,
- 0x72, 0x20, 0x96, 0x2a, 0xeb, 0xb1, 0xa6, 0xbf, 0x37, 0xa6, 0xad, 0x9d,
- 0x2f, 0x99, 0x1f, 0xa9, 0x54, 0x2b, 0x43, 0x25, 0x34, 0xac, 0x0a, 0x4d,
- 0xac, 0x48, 0xe0, 0x99, 0x5f, 0x16, 0xb9, 0xf9, 0x7e, 0xc2, 0xaa, 0xeb,
- 0x15, 0x01, 0x40, 0xab, 0x94, 0xc1, 0x3d, 0xb8, 0xc7, 0xcc, 0x98, 0x36,
- 0x6b, 0xcb, 0xa0, 0x48, 0x4e, 0x01, 0x3d, 0xae, 0x1f, 0xa3, 0xf5, 0x90,
- 0x56, 0x01, 0xf9, 0xfd, 0x34, 0xc0, 0xbd, 0x36, 0x65, 0x0f, 0xd8, 0xb9,
- 0x24, 0xc1, 0xde, 0x5c, 0x48, 0x3b, 0xc8, 0x1d, 0x8d, 0xd6, 0x85, 0x4d,
- 0x13, 0x0f, 0x38, 0x21, 0x49, 0xa3, 0x8a, 0xef, 0xad, 0x24, 0x51, 0x75,
- 0xeb, 0xcd, 0xc5, 0xd9, 0xdb, 0xc1, 0xe5, 0x19, 0xca, 0xff, 0xa1, 0xe9,
- 0x24, 0xa2, 0x71, 0x6a, 0xf9, 0x56, 0xaf, 0x86, 0x61, 0x1b, 0x75, 0xb2,
- 0x55, 0x6f, 0x0f, 0x7d, 0xde, 0xdf, 0x85, 0x5f, 0xf4, 0x35, 0x60, 0xe0,
- 0x2d, 0x58, 0x17, 0x81, 0xb9, 0x69, 0x76, 0xd3, 0x24, 0x25, 0x95, 0xd1,
- 0xc6, 0x1b, 0xd0, 0x80, 0x0a, 0xef, 0xf1, 0xb2, 0xbe, 0x07, 0x37, 0x38,
- 0x80, 0x48, 0x80, 0x48, 0x35, 0xa1, 0x13, 0x57, 0x19, 0x28, 0x6c, 0xf2,
- 0x2d, 0x31, 0x76, 0x30, 0x1c, 0xbc, 0x29, 0xcd, 0xf9, 0x4d, 0xab, 0xaa,
- 0xbc, 0xd3, 0x9b, 0x0b, 0x39, 0x0c, 0x66, 0x21, 0x6d, 0xd9, 0xf9, 0x95,
- 0xa9, 0x8a, 0x92, 0x84, 0xaf, 0x95, 0xd4, 0xd6, 0x2a, 0x80, 0xcf, 0xda,
- 0xe9, 0x63, 0x8a, 0x1a, 0x1b, 0x34, 0x95, 0xb1, 0x97, 0xb2, 0xe9, 0x0a,
- 0x74, 0xc6, 0x29, 0x49, 0x4a, 0x00, 0xcd, 0xbc, 0x77, 0xfa, 0x42, 0x14,
- 0x42, 0x09, 0xa5, 0xa0, 0x7f, 0x57, 0xff, 0x91, 0x65, 0xce, 0xfe, 0x53,
- 0x70, 0x86, 0x85, 0x3e, 0x8c, 0xd4, 0xfa, 0xd9, 0xcc, 0x01, 0xcd, 0x84,
- 0x85, 0x86, 0xaa, 0xb5, 0xd2, 0xde, 0x56, 0x2c, 0x18, 0x08, 0x02, 0x20,
- 0x0f, 0xe8, 0xa7, 0x81, 0x36, 0xa9, 0x29, 0xbf, 0x39, 0x25, 0x5b, 0x4d,
- 0x97, 0x13, 0xac, 0x12, 0x05, 0x66, 0xa8, 0xd4, 0xc9, 0x98, 0xb9, 0x88,
- 0x34, 0x5f, 0x89, 0x9a, 0x76, 0x10, 0x3b, 0xb6, 0xb3, 0xbb, 0x7a, 0x16,
- 0x3f, 0x65, 0x4b, 0x0b, 0x90, 0x32, 0x49, 0x78, 0x8d, 0x8c, 0x15, 0xcb,
- 0x2a, 0xa8, 0x7d, 0x54, 0x5c, 0x95, 0xb6, 0x80, 0x54, 0x44, 0x60, 0x11,
- 0xeb, 0x23, 0x68, 0xee, 0x04, 0x9f, 0x41, 0x6c, 0x2d, 0xb4, 0x7d, 0x11,
- 0x1b, 0xfd, 0x9a, 0x3c, 0x9b, 0x9d, 0x16, 0xb7, 0xd7, 0x78, 0x11, 0x97,
- 0x8a, 0xc8, 0xf4, 0x56, 0xaf, 0x85, 0xfb, 0x5b, 0xb1, 0x72, 0x27, 0x72,
- 0x4f, 0xdb, 0x9a, 0xaf, 0x0c, 0x5e, 0xb1, 0x73, 0x2e, 0x27, 0x1b, 0x74,
- 0x22, 0xd7, 0x5c, 0x90, 0x91, 0x30, 0x73, 0xd3, 0x18, 0x20, 0x5f, 0x6b,
- 0x5b, 0x34, 0x89, 0x7e, 0x34, 0xd9, 0x22, 0x2f, 0xe0, 0xc4, 0x87, 0x30,
- 0x9f, 0xca, 0xaf, 0x14, 0x31, 0xc9, 0xfc, 0x80, 0x9d, 0xe6, 0x9e, 0xfc,
- 0xf8, 0x63, 0xd2, 0x2e, 0x47, 0xb5, 0xbd, 0x2a, 0xb1, 0x4b, 0xd0, 0xac,
- 0xd3, 0xd2, 0xef, 0x6e, 0x00, 0xc8, 0xe7, 0x3d, 0x67, 0x54, 0x02, 0x00,
- 0xff, 0xe0, 0x12, 0x92, 0x58, 0x90, 0xb1, 0xff, 0x6e, 0x14, 0xa1, 0x8d,
- 0x30, 0xbb, 0x8b, 0xb3, 0x27, 0xa8, 0x21, 0x30, 0x38, 0x89, 0x80, 0x51,
- 0x20, 0x72, 0x5d, 0x6c, 0x5d, 0xc8, 0x8e, 0x39, 0xff, 0xd7, 0x9f, 0x30,
- 0x57, 0xb6, 0xb0, 0xbe, 0x21, 0x37, 0x30, 0x2e, 0x84, 0x07, 0x4b, 0x66,
- 0x71, 0x22, 0x1b, 0x46, 0x86, 0x4b, 0x9f, 0x89, 0x51, 0x09, 0xea, 0x34,
- 0xa9, 0x32, 0xf1, 0x36, 0xd4, 0x36, 0xcf, 0x3f, 0x08, 0xf6, 0x51, 0xfe,
- 0xe9, 0x8c, 0x61, 0x9a, 0x43, 0xac, 0x70, 0xea, 0x9d, 0x18, 0xc7, 0x22,
- 0xd2, 0x59, 0x33, 0x46, 0x6f, 0x86, 0x35, 0x3a, 0x4b, 0xd2, 0xa0, 0x28,
- 0x99, 0x0b, 0x54, 0x08, 0x25, 0x07, 0x13, 0xa5, 0x90, 0x12, 0xdf, 0x37,
- 0x7f, 0xd2, 0x73, 0x3b, 0x6c, 0x87, 0x2d, 0x68, 0x17, 0xc4, 0x22, 0x55,
- 0x2a, 0x4c, 0xb0, 0x30, 0x44, 0x58, 0x45, 0x79, 0xd9, 0x4a, 0xaa, 0x4f,
- 0x1e, 0x3d, 0x8d, 0x65, 0xb2, 0x46, 0x8d, 0x9c, 0x2a, 0xae, 0x93, 0x18,
- 0x90, 0xa7, 0xb9, 0x23, 0x4b, 0x50, 0x0b, 0x78, 0xa7, 0x1c, 0xdb, 0x02,
- 0x6c, 0x86, 0x81, 0x31, 0x4a, 0x07, 0x78, 0xac, 0x5e, 0x85, 0x0a, 0x70,
- 0xc1, 0x0d, 0xa1, 0xff, 0xf5, 0x27, 0x4c, 0x7d, 0xdb, 0x36, 0x7f, 0x4f,
- 0x00, 0xea, 0xc2, 0x23, 0x4b, 0xb9, 0x63, 0xdd, 0xa3, 0xe5, 0x07, 0x78,
- 0x90, 0x2a, 0x67, 0xfe, 0x7d, 0xfe, 0xfe, 0x72, 0xdb, 0xd5, 0xdc, 0x94,
- 0xdd, 0xea, 0xa3, 0x5b, 0x25, 0xf1, 0x25, 0xac, 0x23, 0xc3, 0xe9, 0x69,
- 0x22, 0xa7, 0x04, 0xe1, 0x26, 0x07, 0x83, 0x9c, 0x2c, 0x4f, 0x76, 0xf7,
- 0x8c, 0x25, 0xb5, 0xbb, 0x8f, 0xe2, 0x5b, 0x4f, 0x76, 0x9f, 0x0c, 0xd9,
- 0xc6, 0x70, 0x45, 0x54, 0x83, 0x6b, 0x81, 0x36, 0x36, 0x2a, 0xbc, 0xa3,
- 0xfc, 0x93, 0x60, 0x7a, 0x9f, 0x7c, 0xfa, 0x84, 0x5f, 0xb5, 0x81, 0x99,
- 0x03, 0x9b, 0xcf, 0x60, 0xbb, 0x1a, 0xbf, 0xf9, 0xbd, 0x19, 0x47, 0x00,
- 0x66, 0x59, 0x70, 0xee, 0x10, 0xca, 0x9b, 0x51, 0x0a, 0xdc, 0xca, 0xaa,
- 0x13, 0x4d, 0x37, 0xd3, 0xdf, 0x2f, 0xaf, 0x60, 0xf6, 0x0a, 0x0d, 0xde,
- 0x7e, 0x45, 0xf3, 0xe9, 0x42, 0xe1, 0x8c, 0xc7, 0x04, 0x2a, 0x6d, 0x14,
- 0x86, 0x27, 0xbb, 0x9f, 0x7c, 0xc5, 0xb8, 0xb5, 0x25, 0xcc, 0x65, 0x27,
- 0x22, 0x49, 0x51, 0xb8, 0xa1, 0x23, 0x82, 0xe4, 0xdf, 0x01, 0xc5, 0xf3,
- 0xcd, 0xa1, 0xc0, 0x0c, 0xeb, 0x5f, 0xf7, 0x25, 0xa6, 0xcf, 0xff, 0x7a,
- 0xd2, 0xbe, 0x2b, 0xaf, 0xf3, 0x62, 0xa0, 0x6d, 0xbe, 0x94, 0xbf, 0x04,
- 0xfe, 0x4a, 0x54, 0x5d, 0x22, 0xe5, 0x18, 0x34, 0xc7, 0xdb, 0xd6, 0x85,
- 0x02, 0xa3, 0x8f, 0x9a, 0xb0, 0xdd, 0x12, 0x35, 0x45, 0xca, 0xd9, 0x89,
- 0x88, 0x5e, 0x2b, 0x3c, 0x86, 0xab, 0xab, 0x58, 0x58, 0x52, 0x02, 0xf9,
- 0x88, 0xfd, 0x8a, 0x1f, 0x0f, 0xb7, 0xc5, 0xb2, 0x54, 0x35, 0x8e, 0x86,
- 0xef, 0xe4, 0x7a, 0xe0, 0xca, 0xca, 0x2c, 0x47, 0xa5, 0x8f, 0x9d, 0xde,
- 0x24, 0x87, 0x0d, 0x8a, 0x63, 0x49, 0x8e, 0x4d, 0x60, 0xa6, 0xd2, 0x54,
- 0xf4, 0xd9, 0x4e, 0xe5, 0xb2, 0x73, 0xc4, 0xfb, 0xac, 0x80, 0xb8, 0xd6,
- 0x5c, 0xb0, 0xcb, 0x1a, 0xb4, 0x65, 0x12, 0x51, 0x8f, 0xdc, 0x69, 0x1c,
- 0x4d, 0x0f, 0xe7, 0xd1, 0x9c, 0x43, 0xba, 0x5a, 0x49, 0xef, 0x97, 0xca,
- 0x58, 0x4f, 0xfb, 0xf8, 0xdb, 0xb3, 0xdd, 0x17, 0xfb, 0xe2, 0x1e, 0x3c,
- 0x39, 0xbe, 0x7c, 0xd3, 0x75, 0xe8, 0x55, 0x66, 0x3f, 0xf1, 0x7f, 0xa9,
- 0x54, 0xf0, 0x8d, 0x31, 0x30, 0x28, 0xef, 0x77, 0x40, 0xcc, 0xb1, 0x83,
- 0xdd, 0xdd, 0x58, 0x80, 0xfd, 0x77, 0x24, 0x26, 0x7d, 0xf2, 0xb4, 0x1d,
- 0x7b, 0x21, 0xb5, 0x7e, 0x40, 0xf3, 0xbd, 0x9a, 0x9f, 0x8a, 0xf7, 0x97,
- 0xf3, 0xd1, 0x39, 0x0a, 0x43, 0x79, 0xc3, 0x0b, 0xac, 0x46, 0xd0, 0x11,
- 0x31, 0xd2, 0xf2, 0x8e, 0x5b, 0x5d, 0x40, 0x24, 0x5b, 0x6c, 0x47, 0x34,
- 0xf7, 0xdb, 0xc2, 0x55, 0x9f, 0x48, 0x1d, 0x34, 0x08, 0x79, 0xb1, 0x22,
- 0xa2, 0x39, 0x77, 0xb5, 0x64, 0x1c, 0x54, 0x19, 0xf1, 0x07, 0xb0, 0xe2,
- 0x27, 0xdc, 0xef, 0x0f, 0x73, 0x20, 0x60, 0x0a, 0xaa, 0xc9, 0x42, 0xf2,
- 0x4f, 0xf8, 0xdf, 0x74, 0x15, 0xb7, 0x80, 0x8e, 0xfb, 0xcf, 0x22, 0x13,
- 0x87, 0x0b, 0xfb, 0x17, 0x4c, 0x5c, 0x7b, 0xde, 0x9c, 0x7a, 0xc4, 0x6e,
- 0x3c, 0x18, 0xbd, 0x12, 0x2d, 0x08, 0x73, 0xd3, 0x6b, 0xad, 0xf6, 0xf4,
- 0x8b, 0xc7, 0x42, 0xd3, 0x3d, 0x5c, 0xc7, 0xa5, 0xe2, 0xde, 0x7a, 0x60,
- 0x2c, 0x23, 0x0b, 0x78, 0x69, 0x8f, 0xa4, 0xef, 0xf8, 0x7c, 0xe9, 0xfe,
- 0x98, 0x4b, 0x79, 0x02, 0xf8, 0x1b, 0x10, 0x79, 0xea, 0x34, 0x77, 0x91,
- 0x2d, 0x32, 0x0c, 0xdd, 0x0f, 0x30, 0x7b, 0x9b, 0xdb, 0xda, 0xa9, 0x8d,
- 0x57, 0xef, 0xda, 0xdc, 0xa3, 0xf9, 0x82, 0x08, 0xc6, 0xea, 0xa8, 0xaf,
- 0xa5, 0x5d, 0xcb, 0x12, 0x73, 0xa9, 0x7e, 0xd9, 0xbe, 0xdc, 0x64, 0xf2,
- 0xbe, 0xce, 0xb1, 0x85, 0xef, 0x84, 0xf9, 0x74, 0x64, 0xb2, 0xa3, 0x09,
- 0xbb, 0x54, 0xa5, 0x4b, 0xca, 0xe3, 0xb6, 0xcb, 0xb8, 0x02, 0xe0, 0xf7,
- 0xa2, 0x70, 0x84, 0x67, 0x02, 0x4d, 0x93, 0x1d, 0x9f, 0x6c, 0x7d, 0x7f,
- 0xf1, 0xe6, 0xcf, 0x36, 0x95, 0x77, 0xbb, 0x1f, 0xb7, 0x86, 0xb5, 0xbf,
- 0x5e, 0x08, 0xc9, 0x81, 0xb6, 0x24, 0x81, 0xb4, 0x35, 0xf1, 0xee, 0x1f,
- 0x21, 0xbe, 0x97, 0x29, 0xba, 0x92, 0x2d, 0xaa, 0x34, 0x68, 0x9e, 0x1a,
- 0x89, 0x51, 0xf7, 0x64, 0xf8, 0x0c, 0x5e, 0x91, 0x37, 0x47, 0xcf, 0x9e,
- 0xec, 0xef, 0x19, 0xbb, 0x75, 0xab, 0x23, 0x2d, 0xb6, 0x1f, 0x1c, 0x66,
- 0x7b, 0xbd, 0xb3, 0x4f, 0x0b, 0xda, 0x7b, 0x5b, 0xc7, 0x3f, 0x9e, 0xbf,
- 0xf3, 0x06, 0x68, 0x57, 0x20, 0xc8, 0xad, 0xf4, 0x47, 0xc8, 0x89, 0x4d,
- 0x76, 0x8c, 0xee, 0xb6, 0x0d, 0xb6, 0x14, 0xa7, 0x2e, 0x86, 0x59, 0xb3,
- 0xbd, 0x37, 0x55, 0x4e, 0x7a, 0x6e, 0x8f, 0xe6, 0xa3, 0x77, 0x5a, 0x16,
- 0x53, 0x73, 0xfb, 0x9f, 0x11, 0xdf, 0x44, 0xd6, 0x33, 0x6a, 0xec, 0x83,
- 0xa3, 0x5b, 0x7d, 0x4c, 0xde, 0xf6, 0x71, 0x54, 0x8a, 0x10, 0x8a, 0xf0,
- 0x16, 0x3f, 0x04, 0xd3, 0x17, 0xe5, 0x45, 0x73, 0xbe, 0xc9, 0x92, 0xec,
- 0x1c, 0x72, 0xf1, 0x36, 0xad, 0xf2, 0xcb, 0xac, 0x49, 0xc2, 0xfd, 0x46,
- 0x5e, 0x9f, 0x97, 0x70, 0x6a, 0xaf, 0x8a, 0x87, 0xf0, 0xc8, 0x39, 0x1a,
- 0x82, 0xc7, 0xb7, 0xd4, 0xb1, 0xbf, 0xed, 0x55, 0x8a, 0xe2, 0x12, 0x6a,
- 0x12, 0xee, 0x80, 0xaa, 0x1e, 0x2b, 0x41, 0x82, 0x47, 0x9d, 0x59, 0x91,
- 0xb7, 0xc1, 0xcb, 0x38, 0x8a, 0x48, 0x24, 0xed, 0xb7, 0x99, 0x38, 0x22,
- 0x7e, 0x70, 0x84, 0x7a, 0xb9, 0x62, 0x44, 0x31, 0x6d, 0x29, 0x7a, 0x28,
- 0x39, 0x0c, 0x1b, 0x08, 0x75, 0xef, 0xa1, 0x24, 0x3e, 0x7f, 0x12, 0xde,
- 0x47, 0x3c, 0x18, 0xd1, 0xed, 0x2a, 0x5f, 0x05, 0xe0, 0x1b, 0x5a, 0xd4,
- 0xde, 0xbe, 0x17, 0x88, 0xa0, 0x38, 0x04, 0x0c, 0xa9, 0xcd, 0xef, 0x36,
- 0xa3, 0x11, 0x38, 0x0e, 0x4c, 0x48, 0x45, 0x3f, 0xf6, 0xeb, 0xd0, 0x19,
- 0x41, 0x70, 0x42, 0xa2, 0x0d, 0x88, 0x46, 0x70, 0x23, 0x6f, 0x37, 0x13,
- 0x1b, 0x90, 0xe8, 0xda, 0xfb, 0x0f, 0x86, 0x27, 0xf2, 0x26, 0x1e, 0x8f,
- 0xe0, 0x80, 0x44, 0xd7, 0x08, 0xb5, 0xe1, 0x89, 0xd6, 0xe6, 0x7b, 0xf6,
- 0x79, 0x64, 0xf3, 0xbd, 0x3b, 0xbb, 0x3c, 0x3e, 0x10, 0xfc, 0xac, 0x4b,
- 0xa4, 0x57, 0x5b, 0x81, 0x31, 0x44, 0xa8, 0xf5, 0x26, 0x19, 0x25, 0x20,
- 0x20, 0xe2, 0x75, 0xef, 0x47, 0x8e, 0x3c, 0xc0, 0xbc, 0x74, 0x4a, 0xd8,
- 0xdb, 0xdb, 0xac, 0xa4, 0x7b, 0x42, 0x8a, 0xa0, 0xd8, 0x06, 0x1c, 0x98,
- 0x8c, 0x55, 0xec, 0x45, 0x24, 0x0e, 0x36, 0x24, 0x78, 0xbd, 0xf8, 0xca,
- 0x0d, 0x36, 0x11, 0xdf, 0x65, 0xb0, 0xb9, 0x34, 0x49, 0x90, 0x4a, 0x02,
- 0x85, 0x95, 0x6c, 0x10, 0xa5, 0x7b, 0x23, 0x45, 0x44, 0x61, 0x91, 0x58,
- 0xce, 0x98, 0x75, 0x57, 0x9c, 0x0b, 0x26, 0x76, 0x0f, 0x95, 0x98, 0x67,
- 0xe4, 0x07, 0x5c, 0x41, 0x1c, 0x40, 0x8e, 0x40, 0x1b, 0x5d, 0xd4, 0x4d,
- 0x42, 0xaa, 0x86, 0xda, 0x69, 0x64, 0x56, 0x5a, 0x1b, 0xa5, 0x96, 0x82,
- 0x83, 0x61, 0x08, 0x9b, 0x2f, 0x9c, 0x8e, 0xa3, 0xca, 0x99, 0xdc, 0xaa,
- 0xb0, 0x01, 0x63, 0x91, 0x75, 0x8a, 0x75, 0xc7, 0x69, 0x85, 0xfc, 0xdc,
- 0x44, 0x68, 0x9b, 0x3d, 0xa2, 0x81, 0x19, 0xd7, 0xcb, 0x6a, 0xba, 0x9c,
- 0x1b, 0xc1, 0xe5, 0xe3, 0xc5, 0xa1, 0xf8, 0xc1, 0xa6, 0xe5, 0x74, 0xe9,
- 0x48, 0xac, 0xe0, 0xd9, 0x6e, 0xab, 0xb5, 0x21, 0x46, 0xde, 0x89, 0x78,
- 0x0f, 0xf6, 0x6c, 0x12, 0x7f, 0x8e, 0xd4, 0x38, 0x0e, 0x73, 0xfe, 0x8e,
- 0xc1, 0xa6, 0x79, 0x5f, 0x56, 0x8a, 0x61, 0x67, 0xf4, 0xdf, 0x2f, 0x03,
- 0x51, 0xaa, 0xb1, 0x5f, 0x94, 0x6d, 0x21, 0x0b, 0x43, 0x10, 0x45, 0xac,
- 0x2d, 0x91, 0x4b, 0x8d, 0xdd, 0x80, 0xf4, 0xc1, 0xbb, 0x9b, 0x72, 0xe6,
- 0x07, 0xc1, 0x03, 0x7b, 0x8e, 0xfc, 0x14, 0x1e, 0x67, 0x8b, 0x97, 0x1d,
- 0x22, 0x0b, 0x43, 0xf3, 0x0e, 0xaf, 0xdb, 0x98, 0x32, 0xff, 0x92, 0xbf,
- 0x96, 0x63, 0xc1, 0x20, 0x52, 0x8e, 0xd3, 0x75, 0x94, 0x07, 0x00, 0x0c,
- 0x46, 0xe6, 0xba, 0x32, 0x5b, 0x6d, 0xba, 0x64, 0xff, 0x2a, 0xf5, 0x47,
- 0x70, 0xb3, 0x5c, 0xc4, 0x8c, 0x22, 0x1f, 0xc9, 0x75, 0xc9, 0x85, 0xcc,
- 0xc8, 0x61, 0xc3, 0xec, 0x8b, 0x61, 0x2e, 0xdb, 0x7e, 0x37, 0xd7, 0x3b,
- 0x9d, 0x90, 0x53, 0xc4, 0x34, 0x2d, 0x79, 0x95, 0x90, 0xc9, 0xb5, 0x03,
- 0x17, 0xa7, 0x93, 0x66, 0x29, 0xb3, 0xde, 0xed, 0x5d, 0xa9, 0x7e, 0x52,
- 0xf3, 0x2e, 0x88, 0x0d, 0x41, 0x25, 0x34, 0x31, 0x5b, 0x2f, 0x9d, 0xdc,
- 0xab, 0xbe, 0xe0, 0x2e, 0x57, 0x6a, 0xa2, 0x5c, 0x7a, 0x34, 0x88, 0xc1,
- 0x60, 0x6d, 0x27, 0x28, 0xe8, 0x99, 0xd7, 0x2b, 0x68, 0x88, 0x7f, 0x53,
- 0x53, 0xc5, 0x27, 0x93, 0x67, 0xcf, 0xf3, 0x40, 0xfa, 0xd9, 0x3a, 0xed,
- 0x59, 0x93, 0xd2, 0x1c, 0x3f, 0x90, 0xc2, 0xdb, 0x72, 0x0a, 0x70, 0x6c,
- 0x10, 0x34, 0xb1, 0x94, 0x0c, 0x81, 0x60, 0xb8, 0x22, 0x1e, 0x88, 0xd0,
- 0x25, 0x54, 0x25, 0xde, 0xca, 0x57, 0x14, 0x11, 0xb1, 0x05, 0x89, 0x65,
- 0xf3, 0x4d, 0xd8, 0xd8, 0x7c, 0x9a, 0x6c, 0xc1, 0x06, 0xfc, 0xfc, 0xd9,
- 0xd3, 0xed, 0x36, 0x62, 0x6c, 0x3b, 0x02, 0xdc, 0xc5, 0x69, 0x13, 0xb6,
- 0x50, 0x5c, 0xee, 0x39, 0xd5, 0x77, 0xe1, 0xc8, 0x9c, 0x38, 0x37, 0x73,
- 0x26, 0x83, 0x27, 0x37, 0x3b, 0xca, 0x2a, 0x48, 0x08, 0x34, 0x80, 0x11,
- 0xa0, 0xbc, 0x4d, 0xc6, 0xaf, 0xdb, 0xd2, 0xa5, 0x56, 0x80, 0xbb, 0x34,
- 0x0e, 0x66, 0xab, 0x84, 0xa2, 0xa6, 0x84, 0x95, 0xdb, 0x84, 0x95, 0x8c,
- 0x5d, 0xa2, 0x98, 0x79, 0x2e, 0x34, 0xcf, 0x4a, 0x0c, 0x95, 0x15, 0x2c,
- 0xbd, 0x7b, 0x41, 0x5c, 0x23, 0xcc, 0x6b, 0x28, 0x37, 0x4f, 0x12, 0x23,
- 0x5e, 0x33, 0x17, 0x22, 0x2e, 0x47, 0xdc, 0x65, 0x76, 0x22, 0xd1, 0x06,
- 0x33, 0xf9, 0xd0, 0x56, 0xd1, 0x16, 0x04, 0x28, 0x25, 0xeb, 0x82, 0x1b,
- 0x32, 0xb8, 0x93, 0xe7, 0x4a, 0x7b, 0xce, 0xda, 0x47, 0x59, 0xb9, 0x92,
- 0xc5, 0x1c, 0xa8, 0xe1, 0xfb, 0x12, 0xd8, 0xce, 0x55, 0x69, 0xfb, 0xea,
- 0x0a, 0x49, 0x35, 0xbd, 0xb8, 0xd5, 0xb1, 0x95, 0xb9, 0x08, 0xba, 0xdb,
- 0x34, 0x91, 0xbf, 0x9b, 0x82, 0xa0, 0x7f, 0xb7, 0xbb, 0x32, 0xcc, 0x3e,
- 0xe2, 0xaf, 0x76, 0xe6, 0x61, 0x45, 0xef, 0xb9, 0x6a, 0x2f, 0x58, 0x77,
- 0xe0, 0x48, 0x19, 0x84, 0xec, 0x21, 0xc9, 0x16, 0x3a, 0xbc, 0xb3, 0xb3,
- 0xfd, 0x70, 0xa7, 0xe5, 0xc9, 0x87, 0x3a, 0x79, 0xce, 0xde, 0x0d, 0x66,
- 0x48, 0xb5, 0x54, 0x36, 0xae, 0x17, 0xf4, 0x55, 0x5a, 0x32, 0xe6, 0x31,
- 0x65, 0x08, 0x68, 0x25, 0xba, 0x09, 0xe5, 0x93, 0x86, 0x77, 0x90, 0xc0,
- 0xd3, 0x30, 0xbc, 0xf6, 0xc8, 0xc5, 0xea, 0x65, 0x2a, 0x20, 0x11, 0x20,
- 0xc0, 0x47, 0x81, 0x9c, 0x25, 0x39, 0x34, 0xbb, 0x30, 0x54, 0x39, 0xb5,
- 0x57, 0x38, 0x10, 0xde, 0xf8, 0xd8, 0xd2, 0xf5, 0x13, 0xdb, 0x70, 0x34,
- 0x5a, 0x7e, 0xf9, 0x08, 0x8e, 0x5d, 0x1e, 0x55, 0x61, 0x24, 0x05, 0x01,
- 0x87, 0x01, 0xbd, 0x17, 0x3f, 0xe8, 0x8a, 0xd2, 0xc5, 0x08, 0x4c, 0x99,
- 0x25, 0xd7, 0xba, 0x09, 0xb9, 0x4d, 0x23, 0x53, 0x3f, 0xba, 0x71, 0x33,
- 0xbf, 0x16, 0xd7, 0x1e, 0xbc, 0x6a, 0x71, 0x3f, 0xa5, 0x55, 0xe8, 0x7a,
- 0x47, 0xdf, 0xec, 0xfe, 0xc6, 0x9c, 0x71, 0x1e, 0xff, 0x98, 0x7f, 0xda,
- 0x9a, 0xce, 0x3e, 0x1f, 0x53, 0x64, 0xd0, 0xc7, 0xd4, 0x75, 0x94, 0x03,
- 0x09, 0xf3, 0x74, 0xdd, 0x04, 0xba, 0x3c, 0x65, 0x2f, 0x11, 0xf9, 0x01,
- 0x30, 0x5e, 0xd7, 0x39, 0x21, 0xde, 0x36, 0x6d, 0xb4, 0xed, 0x6e, 0xf8,
- 0xac, 0xed, 0x6e, 0xb0, 0x39, 0xc7, 0x71, 0x25, 0xed, 0x58, 0x2a, 0xbb,
- 0xbf, 0xd3, 0xc7, 0x92, 0xad, 0xd1, 0xf9, 0xbb, 0xe3, 0x6f, 0xce, 0xb6,
- 0x1f, 0x72, 0x53, 0xfa, 0xf2, 0xdf, 0x0e, 0x0a, 0xa8, 0xbc, 0x8a, 0x50,
- 0x7d, 0xdc, 0x77, 0x98, 0x27, 0xdf, 0x8c, 0x46, 0x83, 0xc3, 0xf3, 0x13,
- 0xd8, 0x02, 0xa3, 0x91, 0xf9, 0xcb, 0x2a, 0x6e, 0xc1, 0xa1, 0x94, 0x0e,
- 0x18, 0x7c, 0x0f, 0x5d, 0x4f, 0x65, 0x3f, 0xf3, 0x7c, 0x53, 0x94, 0x22,
- 0xbf, 0x12, 0xfa, 0x25, 0xae, 0x53, 0xa2, 0x69, 0xdb, 0xf4, 0x81, 0xae,
- 0xd5, 0x73, 0x7e, 0xb2, 0x83, 0x6f, 0x11, 0x6a, 0x16, 0x03, 0x8a, 0x7b,
- 0x10, 0x96, 0x61, 0xe1, 0x16, 0xd2, 0x7a, 0x5c, 0x19, 0x56, 0xc5, 0xed,
- 0x1a, 0xf3, 0x8f, 0xae, 0x13, 0x0a, 0xda, 0x49, 0xd4, 0x6e, 0x45, 0x9a,
- 0x04, 0x08, 0x2b, 0x08, 0x09, 0x2f, 0x84, 0xa7, 0x5d, 0x07, 0x1c, 0xec,
- 0x34, 0xa6, 0xd6, 0xa1, 0x4a, 0x9c, 0x23, 0x31, 0xb9, 0xba, 0x7e, 0x91,
- 0xcd, 0xc1, 0x32, 0x39, 0xd8, 0x04, 0x50, 0xa7, 0x28, 0x97, 0xd7, 0x37,
- 0xa1, 0x0b, 0xa2, 0x53, 0xbe, 0x49, 0x34, 0x29, 0xec, 0x27, 0xd3, 0xcb,
- 0x60, 0x0b, 0xe2, 0x45, 0xd5, 0x7b, 0xaa, 0x8c, 0x22, 0x44, 0xac, 0xde,
- 0x30, 0x00, 0x68, 0xfa, 0x4f, 0x29, 0x7a, 0xb0, 0x46, 0x03, 0x19, 0x73,
- 0xf4, 0x14, 0x9e, 0xb4, 0xa2, 0x99, 0xcd, 0xe5, 0xaf, 0x69, 0x71, 0x0f,
- 0x8f, 0xa9, 0xb8, 0xf0, 0x91, 0xab, 0x67, 0xf7, 0x74, 0x7b, 0xa3, 0x37,
- 0xd5, 0x84, 0x6b, 0xe4, 0xbe, 0xd4, 0x8a, 0xbc, 0xeb, 0x92, 0x2c, 0x50,
- 0x94, 0x51, 0x2b, 0x5c, 0x27, 0x83, 0xa2, 0xaf, 0x6d, 0xf4, 0x8d, 0x45,
- 0x2c, 0xb1, 0xb2, 0xb4, 0x11, 0x4c, 0x9b, 0xec, 0x82, 0x98, 0x28, 0xe2,
- 0x9a, 0x43, 0x5b, 0xc6, 0x7c, 0x28, 0x67, 0xcb, 0x46, 0x02, 0x90, 0xe4,
- 0x1b, 0xa5, 0x64, 0x88, 0x6d, 0x0b, 0x26, 0x42, 0xd3, 0x0e, 0x88, 0x9a,
- 0x1c, 0x85, 0x98, 0x6d, 0x57, 0x77, 0x67, 0xe8, 0x62, 0x2d, 0x1c, 0x4c,
- 0x14, 0x17, 0x05, 0x4d, 0xac, 0xd7, 0xd0, 0x02, 0xe8, 0xa4, 0xdb, 0x32,
- 0x5e, 0xfe, 0x91, 0xd6, 0x4f, 0xd7, 0xa9, 0x35, 0x3d, 0xea, 0x63, 0x27,
- 0xc9, 0xed, 0xd7, 0xfa, 0xea, 0xa8, 0x8d, 0x71, 0xe6, 0x97, 0x70, 0x9b,
- 0x28, 0x5e, 0x60, 0x4c, 0xc7, 0x64, 0x7c, 0x6f, 0xbf, 0xc5, 0x9f, 0x49,
- 0x81, 0xe8, 0xb1, 0x8a, 0xf0, 0x63, 0x89, 0x33, 0xdc, 0x72, 0x0c, 0xd7,
- 0x21, 0x52, 0xda, 0x5f, 0xea, 0x34, 0xfd, 0x7d, 0x06, 0xf4, 0x59, 0x7c,
- 0x8d, 0x59, 0xc5, 0xf7, 0xd8, 0x32, 0x04, 0x0c, 0x89, 0x35, 0x1d, 0xe2,
- 0xa1, 0x60, 0x03, 0x53, 0x34, 0xdd, 0x8e, 0x4a, 0xd5, 0x23, 0x72, 0xb9,
- 0xa5, 0x5c, 0x27, 0x86, 0x4f, 0xa8, 0xf7, 0x19, 0x9b, 0xb6, 0x51, 0xae,
- 0x2f, 0xe5, 0xe4, 0x16, 0x67, 0xf8, 0x88, 0x09, 0x71, 0xe3, 0x77, 0x3f,
- 0x0c, 0x2c, 0x3b, 0x0c, 0x86, 0xa9, 0x37, 0x6a, 0x04, 0x93, 0xbc, 0x81,
- 0x99, 0xed, 0xfa, 0x41, 0xfe, 0x62, 0x3e, 0xf2, 0x43, 0x5e, 0x18, 0xdd,
- 0xb0, 0xde, 0xf6, 0x15, 0xa5, 0xf0, 0xec, 0x56, 0x9b, 0xb5, 0xb1, 0xc3,
- 0x8c, 0xd8, 0x71, 0x78, 0x3d, 0xd2, 0x9c, 0x39, 0x6a, 0xa3, 0x5e, 0xd0,
- 0xc4, 0x45, 0x95, 0x6d, 0xc5, 0x9e, 0xfb, 0x45, 0x90, 0xeb, 0xc0, 0xe9,
- 0x5f, 0x2c, 0x4a, 0xae, 0x24, 0x39, 0xdf, 0x74, 0x84, 0xea, 0x2f, 0xb8,
- 0x30, 0x3f, 0xae, 0x0e, 0x26, 0x2b, 0x70, 0x5e, 0xaf, 0xac, 0x88, 0x94,
- 0xa1, 0x84, 0x64, 0xeb, 0x86, 0xb1, 0x68, 0x76, 0x31, 0xc6, 0xad, 0x67,
- 0x66, 0x64, 0xcd, 0x62, 0x6b, 0x6f, 0x9b, 0x29, 0xd4, 0xa5, 0x10, 0x60,
- 0xe9, 0xae, 0xfb, 0xd0, 0x91, 0x43, 0x10, 0xc3, 0x04, 0x47, 0x54, 0x1d,
- 0x5e, 0x00, 0xfa, 0xa3, 0xe2, 0x0e, 0xf9, 0x75, 0xa1, 0x55, 0xa4, 0x8d,
- 0x28, 0x0b, 0x82, 0x58, 0xd4, 0x74, 0xb6, 0xae, 0x67, 0x19, 0xd0, 0x9f,
- 0x05, 0xf1, 0xc2, 0x21, 0x0b, 0x8d, 0x42, 0x2f, 0xd6, 0x2b, 0x2e, 0xec,
- 0xf6, 0x92, 0xa6, 0x6a, 0x66, 0x6e, 0x36, 0x1d, 0x90, 0x00, 0xb9, 0xae,
- 0x4a, 0x73, 0x45, 0x56, 0x11, 0xf6, 0x2c, 0x31, 0x29, 0xa0, 0xea, 0x67,
- 0xc5, 0x6d, 0x5e, 0x95, 0x05, 0x18, 0xca, 0x6e, 0xd3, 0x2a, 0x47, 0xb8,
- 0xbf, 0xf7, 0xed, 0xd9, 0xdb, 0xe3, 0x9e, 0xef, 0x16, 0xb9, 0xca, 0xc5,
- 0x97, 0x4e, 0xeb, 0xd7, 0x75, 0x54, 0xeb, 0x6a, 0x46, 0xfc, 0x86, 0xe6,
- 0x4e, 0x37, 0x4a, 0x0e, 0x2d, 0xeb, 0xad, 0x9c, 0x24, 0x52, 0xeb, 0x35,
- 0x4a, 0x6e, 0x74, 0x49, 0xc2, 0x01, 0xc8, 0xe5, 0xdc, 0x80, 0x7c, 0xde,
- 0x6d, 0xb0, 0x10, 0x89, 0x03, 0x3f, 0x82, 0x35, 0x10, 0x41, 0xea, 0x5c,
- 0xfa, 0x75, 0x2b, 0x12, 0xaf, 0xb6, 0x05, 0x69, 0xfa, 0xbc, 0x01, 0x56,
- 0x95, 0x2e, 0xdc, 0x9c, 0xdf, 0x93, 0x61, 0xb3, 0xd9, 0xda, 0x75, 0xc9,
- 0x66, 0x4d, 0xc6, 0x78, 0xb3, 0xa9, 0xd3, 0x0b, 0xd4, 0xa8, 0x93, 0x00,
- 0x61, 0x29, 0xb1, 0x15, 0x9f, 0xe6, 0x5d, 0xcd, 0x9f, 0x70, 0xad, 0x73,
- 0xe3, 0xee, 0xf4, 0x1d, 0xf0, 0xe9, 0x0b, 0x8a, 0xd2, 0x86, 0x5c, 0x25,
- 0xa9, 0x4b, 0xe6, 0x69, 0x57, 0x21, 0x6b, 0x23, 0x0a, 0x88, 0x31, 0x35,
- 0x74, 0x2c, 0x9a, 0xcf, 0x97, 0x13, 0x61, 0x8d, 0x71, 0xb1, 0x55, 0xc1,
- 0x54, 0x0a, 0xf5, 0x00, 0xdf, 0x52, 0xbc, 0x14, 0x85, 0x77, 0x3f, 0x53,
- 0x93, 0x2b, 0xe8, 0xca, 0xfa, 0xcc, 0x49, 0xa7, 0x9c, 0x4d, 0xb9, 0x51,
- 0x0e, 0x88, 0x2e, 0xdc, 0x02, 0x2c, 0xf5, 0x53, 0x7d, 0xa5, 0x91, 0x16,
- 0x37, 0x71, 0xa0, 0x8c, 0xb2, 0x31, 0xec, 0x40, 0x29, 0x76, 0xc9, 0x98,
- 0xc6, 0x8f, 0x89, 0xe0, 0x2c, 0xc3, 0x8f, 0x92, 0xe1, 0x85, 0x4a, 0xf2,
- 0x41, 0x3f, 0x91, 0xf9, 0x74, 0xbc, 0xfc, 0xa0, 0x5d, 0x23, 0x8c, 0x0e,
- 0x5b, 0x36, 0xf6, 0xe6, 0x2a, 0xa6, 0x7c, 0x31, 0x12, 0xa5, 0xae, 0x30,
- 0x75, 0xc6, 0x4c, 0x6c, 0x3d, 0x92, 0x66, 0x70, 0xec, 0xda, 0x21, 0xfa,
- 0x83, 0x5b, 0x24, 0x29, 0x0a, 0xa5, 0x3c, 0xb3, 0x6b, 0xd8, 0x35, 0x59,
- 0x89, 0x99, 0x60, 0xb5, 0xca, 0xef, 0x22, 0xa1, 0x38, 0xab, 0xa5, 0x50,
- 0x92, 0x7f, 0x23, 0xfd, 0x90, 0xfe, 0xa9, 0xc1, 0x63, 0x29, 0x2b, 0x02,
- 0xc0, 0x7e, 0x59, 0x83, 0x7a, 0xaf, 0xa9, 0xd2, 0x89, 0xfb, 0xcb, 0x20,
- 0xad, 0x27, 0x79, 0xae, 0x24, 0xe5, 0x14, 0x27, 0xcc, 0x08, 0x1a, 0x1b,
- 0x25, 0x34, 0xb1, 0x5e, 0x7b, 0xa5, 0x06, 0x9e, 0x96, 0xec, 0xe4, 0x65,
- 0xec, 0x09, 0x57, 0x70, 0x05, 0x92, 0x85, 0xfc, 0x52, 0xae, 0x72, 0x47,
- 0x8c, 0xb7, 0x5d, 0x29, 0xce, 0x56, 0xd8, 0xb7, 0xc6, 0x04, 0xdf, 0xf3,
- 0x6d, 0x70, 0x9d, 0x82, 0x01, 0x15, 0x01, 0xaa, 0x1b, 0xdc, 0xa2, 0xe6,
- 0x99, 0xfd, 0xe1, 0x9a, 0xc2, 0xac, 0x7e, 0x24, 0xe8, 0x79, 0xc7, 0x42,
- 0x61, 0x7a, 0x9e, 0x98, 0x7d, 0x32, 0x32, 0xfa, 0x93, 0x56, 0x74, 0xe1,
- 0x25, 0x38, 0x3c, 0x3d, 0x7f, 0x97, 0x80, 0x16, 0x89, 0x6b, 0x80, 0xd7,
- 0x5c, 0xd6, 0x01, 0x3f, 0x86, 0xae, 0x0c, 0x83, 0x39, 0xc4, 0x7d, 0xda,
- 0x2a, 0x4f, 0x57, 0x11, 0x0b, 0x8b, 0x61, 0x6e, 0x05, 0x58, 0x41, 0xd4,
- 0x7e, 0x11, 0xed, 0x4f, 0x6d, 0x8c, 0xee, 0x70, 0xcc, 0xf7, 0xbc, 0xcf,
- 0x42, 0xd2, 0xa2, 0x3a, 0xb7, 0x36, 0x8e, 0xb7, 0xbb, 0xbc, 0x52, 0x84,
- 0x96, 0x81, 0xea, 0x1a, 0x08, 0xf5, 0x26, 0xb3, 0xdc, 0x53, 0x62, 0xdc,
- 0x59, 0x2e, 0x35, 0xa5, 0x65, 0x67, 0xb4, 0x06, 0x98, 0x06, 0x34, 0xa1,
- 0xb9, 0x7e, 0x80, 0xf5, 0xa8, 0x58, 0x14, 0x41, 0xfe, 0xb9, 0x9d, 0xef,
- 0xa8, 0x29, 0x1a, 0x40, 0x8e, 0x1f, 0x95, 0x24, 0x46, 0xeb, 0x31, 0x5c,
- 0xb3, 0xc4, 0xef, 0xfa, 0xfc, 0xd9, 0xf1, 0x92, 0x64, 0x44, 0xb7, 0x26,
- 0x35, 0xaf, 0x2f, 0xeb, 0x4e, 0xfc, 0x04, 0x7d, 0x4f, 0x1c, 0x61, 0x4c,
- 0x7c, 0x43, 0x8c, 0x5c, 0x59, 0x3a, 0x37, 0xca, 0x41, 0xa1, 0x69, 0x03,
- 0xe4, 0xfe, 0x25, 0x70, 0x67, 0x77, 0x2a, 0x97, 0xa9, 0x48, 0x2d, 0xa7,
- 0x34, 0x74, 0x52, 0x09, 0xf8, 0x1b, 0x80, 0xb2, 0x71, 0xe3, 0xd2, 0x7a,
- 0x94, 0xe8, 0xba, 0x25, 0x46, 0x34, 0x82, 0xa3, 0x35, 0x6d, 0x98, 0x7d,
- 0x94, 0x1b, 0xb1, 0xd5, 0xed, 0xcc, 0x04, 0x4c, 0x6e, 0x96, 0xc5, 0x47,
- 0xd3, 0x85, 0x30, 0x83, 0x55, 0x81, 0xbf, 0x39, 0x0a, 0x90, 0xa6, 0xcc,
- 0x9b, 0x2b, 0xd9, 0xe8, 0x52, 0x3f, 0xda, 0x28, 0x7c, 0xb7, 0x70, 0xe6,
- 0x09, 0x0f, 0x68, 0xcb, 0x06, 0x8b, 0xf5, 0x6e, 0x6a, 0x4b, 0x1e, 0xa5,
- 0x8d, 0x9b, 0xc0, 0x28, 0xb8, 0xdd, 0xad, 0xb4, 0xd4, 0x9e, 0x64, 0xcb,
- 0xe4, 0xda, 0x43, 0x56, 0xb1, 0x2e, 0xa7, 0xac, 0x3f, 0xe4, 0xa4, 0x11,
- 0x4b, 0x24, 0x10, 0x88, 0xcb, 0x9a, 0x73, 0xc2, 0x64, 0x59, 0x41, 0xb7,
- 0xe1, 0x51, 0xaa, 0x47, 0x7a, 0xd2, 0x4e, 0xa7, 0x5e, 0xb7, 0x0f, 0xc4,
- 0x6b, 0xeb, 0x52, 0xaf, 0x05, 0x90, 0x52, 0xbb, 0x22, 0x8b, 0x54, 0xf6,
- 0xa8, 0x55, 0x6f, 0x25, 0x22, 0xb9, 0x5c, 0x62, 0x57, 0x56, 0xd8, 0xc6,
- 0xe7, 0x74, 0x52, 0x45, 0x1e, 0xfc, 0x13, 0x67, 0xc9, 0x8d, 0xc5, 0x9b,
- 0x28, 0xfb, 0xc3, 0xce, 0x24, 0x15, 0x2b, 0xe5, 0xa1, 0x5f, 0xe0, 0xea,
- 0x9d, 0x91, 0x3e, 0x24, 0x0a, 0x3d, 0x49, 0xf8, 0xae, 0x2b, 0x07, 0x75,
- 0xa4, 0x5d, 0xb7, 0xd7, 0x55, 0xf2, 0x48, 0x41, 0xd8, 0x96, 0x64, 0xef,
- 0x48, 0xee, 0x99, 0xff, 0x74, 0x9b, 0x7b, 0xb4, 0x0c, 0x84, 0x92, 0x62,
- 0x0d, 0x78, 0x65, 0xf7, 0x5b, 0xe1, 0xe1, 0xfa, 0xf5, 0x42, 0xd0, 0x02,
- 0x5a, 0xad, 0xb4, 0x8b, 0xc9, 0xc1, 0xa2, 0x25, 0x06, 0x15, 0x21, 0xf4,
- 0xfb, 0x08, 0x41, 0xfa, 0x9e, 0x74, 0x39, 0x9f, 0x46, 0xd3, 0xee, 0x75,
- 0x69, 0xa5, 0xde, 0x91, 0x9c, 0x01, 0x5a, 0x0b, 0xe5, 0xfb, 0x38, 0x79,
- 0x6d, 0xf6, 0x18, 0xa9, 0xac, 0xe4, 0xb9, 0xfd, 0xfa, 0x3e, 0x59, 0xb1,
- 0xb8, 0x00, 0x35, 0xdb, 0xf8, 0x2e, 0xec, 0x7c, 0x2a, 0x22, 0xeb, 0x93,
- 0x31, 0x11, 0x3b, 0xdb, 0xd0, 0xcb, 0x9a, 0xe0, 0xe0, 0xbb, 0x10, 0xd9,
- 0xc7, 0xfd, 0x12, 0xa4, 0x52, 0x22, 0xf5, 0xf6, 0x66, 0x69, 0x46, 0x4b,
- 0x2b, 0xcd, 0xf5, 0xd5, 0x6c, 0x2d, 0xeb, 0x2a, 0x03, 0x60, 0x91, 0x3a,
- 0xec, 0xf5, 0x38, 0x60, 0x17, 0x63, 0x5f, 0x76, 0x9d, 0x99, 0x83, 0xc8,
- 0x99, 0x43, 0xe3, 0xaa, 0xfc, 0x98, 0xf1, 0xa6, 0x83, 0x89, 0x01, 0xba,
- 0x1c, 0x55, 0xa4, 0x38, 0xf4, 0x98, 0xcf, 0xa6, 0x16, 0xc0, 0x18, 0xd1,
- 0x67, 0xa9, 0xf4, 0x8a, 0xe4, 0xd9, 0x3b, 0x69, 0x98, 0xbb, 0x34, 0x77,
- 0xa5, 0x83, 0xe6, 0xe5, 0x9a, 0x10, 0x3b, 0x57, 0xfc, 0xe4, 0xcb, 0x16,
- 0x70, 0xc5, 0x66, 0x63, 0xc7, 0xbe, 0x75, 0xee, 0x2d, 0x5c, 0x73, 0xf5,
- 0xc9, 0xb7, 0xab, 0xee, 0x9f, 0xfc, 0xc8, 0x92, 0x3e, 0xbe, 0xa2, 0x8a,
- 0xd9, 0x4b, 0xf0, 0x84, 0x25, 0x2f, 0xcd, 0xa6, 0x62, 0x9f, 0x18, 0x05,
- 0xb5, 0xba, 0xee, 0x2e, 0x54, 0x06, 0x1a, 0xa8, 0xe9, 0x31, 0xe5, 0x4c,
- 0xc2, 0x84, 0x2d, 0x37, 0xd2, 0xc5, 0x39, 0xcd, 0x61, 0xea, 0xaa, 0x75,
- 0x09, 0x13, 0x33, 0x38, 0x06, 0xcc, 0x86, 0x09, 0x0f, 0xb9, 0xf3, 0xe3,
- 0xb0, 0x05, 0x0a, 0x25, 0x9c, 0x56, 0x07, 0x44, 0x2b, 0x79, 0xed, 0xc0,
- 0x6a, 0xff, 0x46, 0xa0, 0x60, 0xa3, 0xd4, 0x36, 0x84, 0x08, 0xe3, 0x2f,
- 0x05, 0x6a, 0x27, 0xd7, 0xc8, 0xb0, 0x59, 0x23, 0x4c, 0x06, 0x61, 0x89,
- 0x44, 0xa8, 0x56, 0x9a, 0x7f, 0x27, 0x30, 0x49, 0x74, 0x72, 0x4c, 0x56,
- 0x4b, 0xc4, 0x22, 0x54, 0xda, 0x04, 0x8c, 0x31, 0x17, 0x76, 0x59, 0x86,
- 0x6e, 0x89, 0x79, 0x9d, 0x2a, 0x2c, 0x4b, 0x09, 0x09, 0x2d, 0xbf, 0x59,
- 0xe4, 0xd4, 0x53, 0x8f, 0x84, 0x25, 0x4f, 0x2b, 0xf9, 0xe8, 0x8f, 0x6c,
- 0x79, 0x8c, 0x96, 0x1e, 0x0e, 0x0b, 0x85, 0x0d, 0xd7, 0x08, 0x6f, 0x32,
- 0x7a, 0x93, 0xb8, 0x87, 0xfa, 0xde, 0xdf, 0x0f, 0x3e, 0xdf, 0xd5, 0x8c,
- 0x77, 0x8a, 0x76, 0xf9, 0xcf, 0xa0, 0xe2, 0x6b, 0x44, 0x8f, 0xa0, 0xe7,
- 0xcc, 0x4f, 0xed, 0xa3, 0xa1, 0x0c, 0x04, 0xd5, 0x21, 0x41, 0x5f, 0x9e,
- 0x50, 0xd0, 0xbb, 0x4d, 0x3b, 0xe4, 0xdc, 0x4a, 0xcd, 0x0a, 0x2f, 0x42,
- 0x1d, 0x43, 0x7e, 0x4e, 0xbd, 0xab, 0x47, 0x16, 0x83, 0x71, 0xeb, 0x15,
- 0x95, 0xdb, 0x04, 0x8f, 0x59, 0xc4, 0x1f, 0x41, 0xaf, 0x45, 0x9c, 0x18,
- 0x0c, 0x66, 0x93, 0xed, 0x66, 0xcb, 0x9b, 0xa0, 0x98, 0x06, 0x6f, 0x6d,
- 0xac, 0xa3, 0x39, 0x30, 0x3d, 0x70, 0xe1, 0xdb, 0xda, 0xbd, 0xf9, 0xda,
- 0x8c, 0xb5, 0xbd, 0x17, 0xc3, 0xa7, 0xad, 0x73, 0xd2, 0xcc, 0xe6, 0x83,
- 0xbb, 0xf1, 0x03, 0xb1, 0x8f, 0xcb, 0xd3, 0xb7, 0xc9, 0x7c, 0x89, 0xf2,
- 0xa1, 0x42, 0xdd, 0x7a, 0x3f, 0xcb, 0xd4, 0x0d, 0x4d, 0xee, 0x1d, 0x76,
- 0x17, 0xde, 0xc0, 0xec, 0x0c, 0xf1, 0xdc, 0x11, 0x27, 0xbf, 0xcd, 0x20,
- 0x15, 0xab, 0x5f, 0x58, 0xca, 0x12, 0x6a, 0x11, 0xee, 0x6c, 0xca, 0x00,
- 0x9f, 0xe5, 0xd1, 0x34, 0x1f, 0x45, 0xd9, 0x66, 0x9f, 0xb2, 0xc9, 0x12,
- 0x81, 0x6a, 0x52, 0x10, 0x89, 0xf6, 0x67, 0xbd, 0x03, 0xdd, 0x73, 0x9a,
- 0x8b, 0x9b, 0xdc, 0xfc, 0xa0, 0x3b, 0x19, 0xae, 0xaa, 0x87, 0x0c, 0x9e,
- 0x47, 0x1f, 0xb8, 0xcf, 0x18, 0x16, 0x85, 0xdf, 0xb5, 0x7f, 0x15, 0xc4,
- 0x8a, 0x01, 0xee, 0xa7, 0x0b, 0xd1, 0xec, 0xa7, 0xfc, 0xba, 0x60, 0x25,
- 0xe0, 0x6d, 0x3e, 0xa9, 0xca, 0xba, 0xbc, 0x62, 0xd4, 0x9a, 0xa7, 0x1d,
- 0x9c, 0x9c, 0x8c, 0x92, 0xbb, 0x6c, 0xac, 0x59, 0xb2, 0xc3, 0xd0, 0x99,
- 0xcc, 0x52, 0x84, 0x02, 0x24, 0x55, 0x9e, 0x35, 0x34, 0x6b, 0x1a, 0x12,
- 0x25, 0x62, 0x1f, 0x14, 0xee, 0x1d, 0x64, 0xc5, 0xb5, 0x31, 0x57, 0xa1,
- 0xc4, 0x53, 0xc9, 0x9a, 0x19, 0xae, 0xa6, 0x45, 0x56, 0x46, 0x02, 0xe3,
- 0xdc, 0x01, 0xbd, 0x56, 0x78, 0x9f, 0xe0, 0x0e, 0x1f, 0xa7, 0x52, 0x7c,
- 0x85, 0xfd, 0x03, 0x46, 0xec, 0x90, 0x9a, 0x22, 0x8e, 0xcb, 0x8f, 0xe4,
- 0x32, 0x0b, 0x32, 0x57, 0xb4, 0xfc, 0x74, 0xbb, 0x82, 0x06, 0x8a, 0xd7,
- 0x4c, 0xcb, 0x0a, 0x68, 0x24, 0xaf, 0x30, 0x02, 0x55, 0xb4, 0x59, 0x56,
- 0xe4, 0x33, 0x06, 0xe7, 0x64, 0x28, 0x4f, 0xef, 0x6e, 0x4a, 0x2e, 0x23,
- 0x83, 0x69, 0xa6, 0xab, 0x09, 0x39, 0xb7, 0x9c, 0xe4, 0x23, 0xbc, 0xdb,
- 0x52, 0xcf, 0x51, 0xef, 0x1b, 0x7f, 0xa1, 0xa2, 0xfc, 0x74, 0xb2, 0x1e,
- 0x2e, 0xc5, 0x54, 0xdc, 0x33, 0xaf, 0xf3, 0xeb, 0x15, 0x55, 0x9b, 0xd8,
- 0x75, 0xa4, 0x85, 0x70, 0x59, 0x71, 0xe4, 0x1e, 0xc9, 0xa5, 0x59, 0xf1,
- 0x29, 0x0d, 0xaa, 0x91, 0x45, 0x4a, 0xa2, 0xf3, 0x7d, 0x17, 0xdb, 0x7d,
- 0xbf, 0x08, 0xc1, 0xf2, 0xcb, 0xaa, 0x44, 0xad, 0x55, 0xff, 0xbc, 0xbe,
- 0xd8, 0x23, 0x10, 0x8d, 0xc1, 0x3a, 0x2d, 0x2f, 0x20, 0xa4, 0x78, 0x48,
- 0xe7, 0x8b, 0x7b, 0xec, 0x35, 0xa4, 0x15, 0x01, 0xa6, 0x78, 0x51, 0xd9,
- 0xa9, 0x2d, 0x59, 0x4a, 0xeb, 0xd3, 0x8e, 0x79, 0xf9, 0x67, 0xb7, 0xa4,
- 0x1f, 0xec, 0x0f, 0xc6, 0x59, 0x4a, 0x95, 0x1a, 0x5e, 0x36, 0xa4, 0x31,
- 0xc5, 0xd3, 0x54, 0x38, 0x35, 0x23, 0x92, 0xa8, 0xf2, 0x35, 0xbf, 0x7b,
- 0x09, 0x65, 0x8b, 0xd6, 0xf6, 0xec, 0xf0, 0xfd, 0xe5, 0xb7, 0xc9, 0xfe,
- 0x70, 0xf7, 0x51, 0x69, 0x2a, 0x90, 0x08, 0xad, 0x36, 0x74, 0xf5, 0xe8,
- 0x44, 0x95, 0xc5, 0x5f, 0x97, 0x45, 0x9b, 0x05, 0x3e, 0xe6, 0xa5, 0x17,
- 0x05, 0x4a, 0xef, 0x5f, 0x8a, 0x4b, 0x74, 0x71, 0xd6, 0x7e, 0xa9, 0x90,
- 0xc1, 0x00, 0x56, 0x5c, 0xf5, 0x50, 0x40, 0xb3, 0x8e, 0xf2, 0x75, 0xb4,
- 0x3a, 0x2b, 0x74, 0x42, 0x8a, 0xd8, 0x46, 0x3d, 0x06, 0xf2, 0xf3, 0xf3,
- 0xa1, 0xb2, 0x45, 0xa7, 0xa0, 0xc8, 0x5e, 0xbc, 0x39, 0xea, 0x34, 0xf7,
- 0xfc, 0xb3, 0x67, 0xbb, 0xbf, 0x23, 0x56, 0xaf, 0x24, 0x07, 0x89, 0x38,
- 0x12, 0xa2, 0x34, 0x3a, 0x3f, 0x54, 0x94, 0xc6, 0xaa, 0xae, 0x86, 0x52,
- 0x1e, 0xf2, 0x33, 0xed, 0xeb, 0x66, 0x4a, 0xb8, 0x2d, 0x2d, 0x6a, 0xc3,
- 0xa8, 0x0c, 0x1a, 0xd1, 0x7f, 0xfe, 0x57, 0x98, 0x65, 0xfb, 0x97, 0x9f,
- 0x11, 0x17, 0x40, 0x69, 0x2c, 0x0b, 0xf9, 0x57, 0x29, 0x53, 0xbb, 0xfb,
- 0x98, 0xce, 0xf3, 0xe6, 0x1f, 0x36, 0x13, 0x5b, 0xbb, 0x02, 0x69, 0x59,
- 0x41, 0xac, 0x5a, 0xc1, 0x9d, 0x4a, 0x57, 0x2c, 0xbd, 0xd3, 0x65, 0xad,
- 0xa4, 0x18, 0xb1, 0x55, 0x09, 0x74, 0x16, 0xa4, 0xa6, 0xc3, 0x74, 0x55,
- 0x01, 0x1a, 0x2d, 0xc3, 0x20, 0x25, 0x0d, 0xd4, 0x61, 0x4e, 0x6e, 0x72,
- 0x06, 0x59, 0x61, 0x04, 0xa4, 0x8c, 0x22, 0x99, 0x39, 0x2f, 0x56, 0x38,
- 0x30, 0x05, 0x4a, 0xf4, 0x9f, 0x66, 0x05, 0xfa, 0xcd, 0x5d, 0xf9, 0x5f,
- 0x6d, 0x67, 0xa6, 0x51, 0x31, 0xa8, 0xbf, 0x1f, 0xfe, 0xb0, 0x47, 0xe9,
- 0x41, 0xbd, 0x6e, 0x13, 0x8c, 0xf4, 0xb7, 0xab, 0x6a, 0x35, 0xa4, 0x75,
- 0x94, 0xaa, 0xfa, 0x41, 0x4a, 0x3e, 0xee, 0x93, 0xda, 0xf8, 0x5f, 0xa8,
- 0xdc, 0xfd, 0x97, 0xbd, 0xc1, 0xb3, 0x9f, 0xed, 0x47, 0xff, 0xb0, 0xf7,
- 0xe1, 0x0f, 0xfb, 0xbd, 0x58, 0xf6, 0x97, 0xe3, 0x02, 0xf0, 0xa0, 0x8a,
- 0xa4, 0xd1, 0x16, 0xf7, 0x92, 0xb2, 0x21, 0xa1, 0x46, 0x57, 0x32, 0x0b,
- 0x05, 0xe1, 0x22, 0x84, 0x49, 0xe4, 0xba, 0x1a, 0xb2, 0xc7, 0xd8, 0xa9,
- 0xaa, 0x5a, 0x36, 0x4b, 0x85, 0xc3, 0x5d, 0xc9, 0xef, 0x2b, 0x63, 0x02,
- 0x9d, 0x10, 0x49, 0x26, 0x08, 0x84, 0x61, 0x91, 0xb5, 0xb7, 0x07, 0xd1,
- 0xa7, 0x28, 0xe7, 0x46, 0x38, 0x1b, 0x02, 0x90, 0x32, 0x17, 0x5a, 0x9a,
- 0x74, 0x26, 0x7d, 0x3c, 0xb6, 0x3f, 0x29, 0xb2, 0x20, 0x2b, 0x4b, 0x53,
- 0x38, 0xd9, 0x7c, 0x53, 0x71, 0x50, 0xb6, 0x22, 0x00, 0x7c, 0x41, 0xf0,
- 0xc8, 0x35, 0x08, 0x97, 0xe0, 0x48, 0x07, 0x18, 0xa4, 0xbf, 0x82, 0x39,
- 0xcc, 0x43, 0xdc, 0xf0, 0xb5, 0x62, 0x1a, 0xcc, 0x5d, 0x11, 0x5f, 0xfe,
- 0x99, 0x04, 0x61, 0x28, 0xe1, 0x1f, 0x35, 0x9b, 0xca, 0x88, 0x2c, 0x4b,
- 0xc7, 0x54, 0xd1, 0xaa, 0x55, 0x1d, 0x04, 0xe5, 0xbd, 0xe9, 0xd2, 0x19,
- 0x3b, 0xf6, 0xa9, 0xb4, 0x5e, 0x31, 0x21, 0xfe, 0x54, 0x78, 0x93, 0x20,
- 0x13, 0x85, 0xc9, 0x59, 0x5f, 0xcc, 0x67, 0x40, 0x28, 0xd2, 0x26, 0x1b,
- 0x78, 0x29, 0xb2, 0xc8, 0xc8, 0xc5, 0x4f, 0x35, 0x65, 0x70, 0xc2, 0x95,
- 0x42, 0x10, 0xe0, 0x1b, 0x04, 0x51, 0x49, 0xba, 0xa2, 0xa6, 0xf7, 0x46,
- 0x1a, 0x32, 0x1b, 0xe7, 0xd0, 0x26, 0x42, 0xa8, 0x8f, 0x40, 0xa4, 0x8d,
- 0xd9, 0x6a, 0x9b, 0x83, 0xcd, 0x64, 0xcb, 0x5a, 0x76, 0xd3, 0xb4, 0xbe,
- 0xd9, 0x8e, 0x39, 0x22, 0x9d, 0xef, 0xcf, 0x09, 0xaa, 0xb1, 0xb8, 0x1e,
- 0xe8, 0xce, 0x64, 0x09, 0xb5, 0xee, 0xba, 0x3e, 0x43, 0x7c, 0x85, 0xf1,
- 0x82, 0x03, 0x0f, 0xe4, 0xd2, 0xfa, 0xd9, 0x00, 0xee, 0x0d, 0xfc, 0x3c,
- 0x19, 0xfc, 0x47, 0x78, 0x2f, 0xc8, 0xa3, 0x0c, 0xf9, 0x1a, 0x70, 0x46,
- 0x94, 0xbb, 0x48, 0x29, 0x9a, 0x97, 0xbc, 0x5c, 0xdc, 0x54, 0x46, 0xfd,
- 0x0b, 0x13, 0xaf, 0x46, 0xdf, 0x26, 0xcc, 0x80, 0x68, 0x9e, 0xe2, 0x67,
- 0xec, 0xee, 0x58, 0x38, 0x96, 0xbf, 0xdf, 0x91, 0x34, 0x8f, 0xd0, 0x24,
- 0x83, 0xb4, 0x1e, 0x04, 0xaa, 0x0e, 0xaa, 0x6b, 0x7b, 0xb5, 0x34, 0x48,
- 0xf3, 0x24, 0x83, 0x84, 0x90, 0x8c, 0x14, 0x5b, 0x2b, 0x26, 0x28, 0x37,
- 0x99, 0xec, 0x0c, 0x87, 0x3b, 0x24, 0xb3, 0x76, 0xcc, 0x1f, 0x62, 0xce,
- 0x00, 0x77, 0xdb, 0x2d, 0x7f, 0x63, 0x76, 0x39, 0x7d, 0x8b, 0x7c, 0x40,
- 0x52, 0x2d, 0xce, 0x39, 0xcc, 0xeb, 0xbf, 0x2d, 0x81, 0x45, 0xad, 0x8c,
- 0x3a, 0x59, 0x71, 0x5e, 0xef, 0xbc, 0x73, 0x49, 0x06, 0x45, 0x67, 0xd8,
- 0xb9, 0x5e, 0x0b, 0x7f, 0x44, 0x73, 0xd3, 0xc9, 0x37, 0x63, 0x30, 0x39,
- 0x30, 0xc2, 0x79, 0xa3, 0xd4, 0x5d, 0x48, 0xa9, 0x4e, 0xd7, 0x1a, 0x74,
- 0x4f, 0xf7, 0xdb, 0x8e, 0x8f, 0x45, 0x5e, 0x18, 0x13, 0xc3, 0x28, 0xc7,
- 0xa0, 0x65, 0x24, 0x2c, 0x5e, 0x98, 0xd0, 0xc3, 0xde, 0xb4, 0xb0, 0xfc,
- 0x88, 0x4b, 0xa7, 0xf5, 0xca, 0xc9, 0xba, 0xfa, 0x36, 0x1c, 0xcd, 0xdf,
- 0x0a, 0x2e, 0x4b, 0xfe, 0xc8, 0x36, 0x35, 0xe1, 0xa1, 0x75, 0x17, 0x99,
- 0x2d, 0x92, 0x20, 0x14, 0x30, 0x29, 0x43, 0x81, 0xa0, 0xbd, 0x0b, 0x88,
- 0x39, 0xe6, 0xf6, 0xb0, 0x4e, 0x07, 0x7b, 0xa0, 0xbc, 0x2e, 0x98, 0x31,
- 0x13, 0xb3, 0xa5, 0x99, 0xf9, 0xd7, 0xc7, 0x17, 0xa2, 0xa1, 0x20, 0x4b,
- 0xdc, 0x15, 0x48, 0x0c, 0xeb, 0x80, 0x93, 0x25, 0xf3, 0xfc, 0xa9, 0xad,
- 0xa0, 0x59, 0xdf, 0xa4, 0xfb, 0xcf, 0x9e, 0x4b, 0xb7, 0x95, 0x42, 0x0b,
- 0x86, 0xd2, 0x26, 0xff, 0x6a, 0x67, 0x87, 0xc3, 0xe6, 0x64, 0x9d, 0x06,
- 0x72, 0x21, 0x95, 0x3a, 0xa0, 0x9b, 0x5f, 0x6c, 0x46, 0x01, 0x73, 0xd6,
- 0x77, 0xab, 0x65, 0xfa, 0x10, 0x8b, 0x03, 0x37, 0xa5, 0x4f, 0xa9, 0xdf,
- 0x6f, 0x95, 0x7a, 0x47, 0x1e, 0x4b, 0xba, 0x86, 0x69, 0x5e, 0x28, 0x27,
- 0xa4, 0x1a, 0x4f, 0xa2, 0xb9, 0xa9, 0xc3, 0xe4, 0xd0, 0x9f, 0x1d, 0x00,
- 0xd0, 0x50, 0x1c, 0x72, 0x12, 0xf2, 0x9a, 0x28, 0xfc, 0x8d, 0x16, 0xc4,
- 0x6b, 0x59, 0x40, 0xa0, 0x66, 0xd3, 0x81, 0xec, 0x8f, 0x76, 0x9e, 0x06,
- 0x5e, 0xd8, 0x27, 0x83, 0xc5, 0x5c, 0x8e, 0x83, 0x34, 0x11, 0xf9, 0xa6,
- 0x02, 0xa4, 0xd8, 0xa4, 0xf7, 0x60, 0x82, 0xee, 0xb8, 0x98, 0xdb, 0xa0,
- 0xe2, 0x00, 0x90, 0x37, 0x01, 0x71, 0x3e, 0x5e, 0xa5, 0x53, 0x21, 0x12,
- 0x1c, 0xb3, 0x2e, 0x39, 0x73, 0x31, 0x99, 0xb5, 0xa5, 0xd8, 0x4f, 0x70,
- 0x0e, 0xcc, 0x56, 0xd8, 0xa1, 0x7d, 0x20, 0xd6, 0x46, 0x40, 0x7d, 0x4f,
- 0x4e, 0xe6, 0x17, 0xc3, 0xdd, 0x83, 0xe4, 0x6c, 0x91, 0x15, 0x66, 0xfe,
- 0xfb, 0xc9, 0x37, 0xc5, 0x92, 0xd6, 0x83, 0x06, 0xfd, 0xcd, 0xe8, 0xbb,
- 0x20, 0xdb, 0x8a, 0xde, 0x78, 0xfa, 0x84, 0xde, 0x78, 0x37, 0xe2, 0xa7,
- 0xee, 0xca, 0xd9, 0x15, 0x55, 0x74, 0x3e, 0xba, 0x4f, 0xcd, 0x1f, 0xb1,
- 0xc7, 0x3f, 0xa3, 0xc7, 0xcd, 0xc6, 0x9b, 0x36, 0xb3, 0x3a, 0xf6, 0x7b,
- 0x74, 0xe0, 0xbc, 0x9c, 0xa5, 0x15, 0x3c, 0xd5, 0xbc, 0xf9, 0xd6, 0xf4,
- 0xf8, 0xe9, 0xd3, 0x48, 0x8f, 0xfb, 0x2b, 0x3a, 0x34, 0xfc, 0xc7, 0x7b,
- 0x74, 0x06, 0xdf, 0x1f, 0xfd, 0x6d, 0x9c, 0x4e, 0x3e, 0x62, 0x27, 0x02,
- 0xd5, 0x6e, 0xb9, 0x66, 0x7f, 0x4f, 0x69, 0xce, 0x54, 0x04, 0x8f, 0x29,
- 0x69, 0x53, 0x81, 0x8f, 0xad, 0x41, 0x8e, 0xfb, 0x67, 0xfb, 0x4f, 0xf6,
- 0x76, 0x9e, 0x0f, 0x9f, 0x0e, 0xf7, 0x2d, 0xca, 0xcc, 0x6c, 0xac, 0x5b,
- 0x2a, 0xa0, 0x40, 0x11, 0xfd, 0x55, 0xf5, 0xe7, 0xf2, 0xc2, 0xb4, 0xe3,
- 0xd5, 0xad, 0x16, 0xa2, 0x6b, 0x87, 0x2f, 0x49, 0x89, 0x79, 0xc2, 0xcf,
- 0x55, 0x1a, 0x46, 0xea, 0x87, 0x11, 0x81, 0x03, 0x75, 0x42, 0xbd, 0x1d,
- 0x54, 0xec, 0x14, 0xc0, 0xcf, 0x71, 0x6e, 0xac, 0xe6, 0xa6, 0x5c, 0xc2,
- 0xad, 0x4e, 0x3e, 0x1c, 0x65, 0xdc, 0x86, 0x92, 0x84, 0x71, 0xd0, 0x11,
- 0x8b, 0x38, 0xc7, 0xb8, 0xf3, 0xc0, 0xf2, 0xba, 0x80, 0x14, 0xe7, 0x43,
- 0xe5, 0x5c, 0xbd, 0x98, 0x2b, 0x5d, 0x18, 0x63, 0x86, 0xab, 0x94, 0x7f,
- 0x6b, 0x6c, 0x8d, 0x5b, 0x38, 0x8e, 0x83, 0x3a, 0x6b, 0x52, 0xe8, 0x82,
- 0x54, 0x64, 0xeb, 0xfa, 0x57, 0xa4, 0x03, 0xa6, 0x11, 0x1e, 0x5e, 0xf9,
- 0x01, 0x67, 0x50, 0xb0, 0x0f, 0x04, 0xe3, 0x1e, 0x84, 0x69, 0xbf, 0x5e,
- 0x81, 0x3d, 0xb7, 0xe2, 0x42, 0x28, 0x4d, 0xf9, 0x4b, 0xec, 0xe2, 0x76,
- 0x58, 0x61, 0x3f, 0x13, 0x2d, 0xe6, 0x82, 0x79, 0xc0, 0x1f, 0x21, 0x8c,
- 0x14, 0x6d, 0x4a, 0x0a, 0xfe, 0x57, 0xa7, 0xe6, 0x9f, 0xde, 0x82, 0x41,
- 0x1e, 0x53, 0xa7, 0x2c, 0x9a, 0xb6, 0xf9, 0xab, 0x77, 0xd9, 0x93, 0xdf,
- 0x7e, 0x97, 0xed, 0x3f, 0x76, 0x97, 0xb9, 0x4d, 0x46, 0xe7, 0x6c, 0xcd,
- 0x16, 0xa3, 0x3d, 0xa6, 0x15, 0x91, 0xe3, 0xbb, 0xcc, 0xdf, 0x66, 0x30,
- 0x53, 0x63, 0x1b, 0xad, 0xb5, 0xcf, 0xec, 0x36, 0x5b, 0xb1, 0xcb, 0x98,
- 0xb7, 0x8a, 0xf7, 0xd8, 0xfa, 0x2d, 0xc6, 0x7b, 0x8c, 0xab, 0xd6, 0xae,
- 0xd9, 0x65, 0x6d, 0x37, 0xfc, 0xfa, 0x7d, 0xe6, 0xb6, 0xc3, 0xa3, 0x77,
- 0x99, 0x16, 0x34, 0x61, 0xa9, 0xb3, 0x62, 0x8b, 0xb5, 0xf6, 0xd8, 0x9a,
- 0xca, 0x6f, 0x7b, 0x2f, 0x62, 0xbb, 0xec, 0xc9, 0xaf, 0xde, 0x65, 0x4f,
- 0x7f, 0xfb, 0x5d, 0xf6, 0xe4, 0xff, 0xc9, 0xb2, 0xff, 0x76, 0xb2, 0x6c,
- 0xef, 0x97, 0xc9, 0xb2, 0xfd, 0x4e, 0x60, 0xd3, 0xa8, 0xab, 0xec, 0x6d,
- 0xfe, 0x8b, 0x7a, 0xfd, 0x0f, 0x76, 0x76, 0x7e, 0x86, 0xf3, 0xe4, 0x80,
- 0xee, 0xeb, 0x9f, 0x83, 0x32, 0x9e, 0x59, 0x27, 0xd3, 0x72, 0x74, 0x76,
- 0xf4, 0xdd, 0x48, 0x5c, 0xd6, 0xa2, 0x75, 0xa9, 0x56, 0xc6, 0x45, 0xe5,
- 0x41, 0x15, 0xc1, 0x25, 0xb7, 0x02, 0x5d, 0x9f, 0x4b, 0xfd, 0x25, 0x83,
- 0x4f, 0x7d, 0xeb, 0x3c, 0xa6, 0x1c, 0xff, 0x42, 0x71, 0x8e, 0x4c, 0xf8,
- 0xc6, 0xf9, 0xc5, 0xf0, 0x16, 0x48, 0xd3, 0xb5, 0x44, 0x7c, 0xba, 0xd3,
- 0xe5, 0xf5, 0x45, 0x3c, 0x1a, 0x85, 0x7b, 0x65, 0xab, 0xb9, 0xa9, 0x90,
- 0xda, 0x81, 0xc7, 0xb6, 0x2d, 0x39, 0xd8, 0x03, 0xbd, 0x93, 0x5e, 0x7d,
- 0x0b, 0x5a, 0xdc, 0x45, 0x95, 0xad, 0xa8, 0x9e, 0x7b, 0x79, 0xe3, 0xfd,
- 0x56, 0x5d, 0x68, 0x31, 0x6e, 0x0b, 0x21, 0x79, 0xf3, 0xe6, 0x9b, 0xde,
- 0x0b, 0xf2, 0xd1, 0xf3, 0x4f, 0x8c, 0x2f, 0xb5, 0x04, 0x2b, 0x33, 0xd4,
- 0xc8, 0x44, 0xc9, 0x07, 0xf9, 0x88, 0x6d, 0xa3, 0xd6, 0x4c, 0x1e, 0xaa,
- 0xdb, 0x50, 0x3f, 0x35, 0x4d, 0x06, 0xb0, 0x51, 0xfc, 0x22, 0xa5, 0xdf,
- 0xc8, 0x3f, 0x9e, 0xd1, 0x87, 0x11, 0x6b, 0xe5, 0x7f, 0xde, 0xe0, 0xdf,
- 0x8c, 0x2b, 0x60, 0x26, 0x29, 0x6f, 0x9d, 0x27, 0xd1, 0x89, 0xd6, 0x83,
- 0xc9, 0x7e, 0x07, 0x66, 0x38, 0x78, 0x57, 0x06, 0x0c, 0x49, 0x18, 0xb3,
- 0xab, 0x65, 0x12, 0x61, 0xcf, 0xf7, 0x8e, 0x35, 0x5a, 0x7e, 0xba, 0x22,
- 0x39, 0x26, 0x4b, 0x7c, 0xba, 0x49, 0xe5, 0x0e, 0xf0, 0x6b, 0x3d, 0xb9,
- 0x60, 0xa9, 0x2c, 0x41, 0x9f, 0xb9, 0x47, 0x43, 0x8c, 0x2f, 0xd5, 0x31,
- 0x90, 0x9e, 0xef, 0xed, 0x7e, 0x1e, 0x7a, 0x9b, 0xdf, 0x6b, 0x4a, 0x9b,
- 0x63, 0x5c, 0x04, 0x20, 0x02, 0xf0, 0xf2, 0xb1, 0xcb, 0xe4, 0x88, 0x7d,
- 0x34, 0x92, 0xf7, 0x46, 0x0e, 0x00, 0x4a, 0x39, 0x2e, 0xc5, 0x36, 0x44,
- 0xf9, 0xac, 0x6e, 0x19, 0x7a, 0x4e, 0xe5, 0xad, 0x21, 0x25, 0x85, 0x2e,
- 0x58, 0xc2, 0xfa, 0x81, 0xb4, 0x40, 0xc5, 0x60, 0x09, 0x36, 0x7d, 0xe5,
- 0xc8, 0xbb, 0xfe, 0xf8, 0x74, 0x97, 0xd6, 0x54, 0x1b, 0x49, 0xb9, 0x1c,
- 0x3b, 0xef, 0xb9, 0x3f, 0x3e, 0x49, 0x87, 0xff, 0x44, 0x36, 0xa6, 0x67,
- 0x6d, 0x57, 0xc2, 0x1f, 0xfa, 0x7c, 0xc2, 0xaf, 0x89, 0x32, 0x66, 0x30,
- 0x4e, 0xab, 0x48, 0x0a, 0x85, 0xdc, 0x04, 0xca, 0x34, 0xa2, 0x34, 0x1d,
- 0xfa, 0x16, 0x28, 0x2f, 0x80, 0xad, 0xe5, 0xf2, 0x5b, 0xf6, 0xe7, 0x49,
- 0xd8, 0x9c, 0xe7, 0xaa, 0xf7, 0xab, 0x83, 0xf6, 0x03, 0x82, 0xac, 0x74,
- 0xd6, 0xa7, 0x28, 0x5e, 0x84, 0x46, 0x89, 0x95, 0x87, 0xd6, 0x47, 0x88,
- 0xea, 0xea, 0xce, 0x73, 0x25, 0x30, 0x4f, 0xfd, 0x15, 0x9c, 0xf6, 0x16,
- 0x7f, 0x61, 0x7e, 0x4f, 0xd1, 0xd8, 0xd8, 0x6d, 0x56, 0x4f, 0xaa, 0x4c,
- 0x82, 0x23, 0x44, 0x76, 0x88, 0xc8, 0x2b, 0x31, 0x05, 0x9a, 0x9b, 0xec,
- 0x3a, 0xd3, 0xe4, 0x49, 0x3b, 0x6e, 0x25, 0xc8, 0x00, 0x2b, 0xc6, 0x30,
- 0x02, 0x4a, 0xf6, 0x40, 0x47, 0xb6, 0x5e, 0x6b, 0x2a, 0x24, 0x1a, 0xf4,
- 0xb2, 0x63, 0xd3, 0xb3, 0xd3, 0xc1, 0x9e, 0xc2, 0x30, 0x38, 0xda, 0x1a,
- 0x01, 0xa3, 0xc6, 0x91, 0x85, 0xb0, 0xb7, 0xbb, 0xff, 0x94, 0x59, 0x59,
- 0xec, 0xc7, 0xaa, 0x8e, 0xd1, 0x85, 0x3c, 0x5e, 0x3d, 0xc2, 0x2f, 0xf5,
- 0xf4, 0x7f, 0xf9, 0x20, 0x4a, 0xdf, 0xca, 0x89, 0x2b, 0x71, 0xb8, 0xd0,
- 0x19, 0x41, 0xd6, 0x06, 0x13, 0x26, 0x4f, 0x6e, 0xb2, 0xb9, 0x14, 0xf7,
- 0xf8, 0x85, 0xa5, 0xca, 0x3b, 0x7d, 0x62, 0xfc, 0xda, 0x55, 0xb3, 0x18,
- 0xce, 0xcb, 0xbf, 0x9b, 0xd9, 0x48, 0xa9, 0x5a, 0x58, 0xb0, 0x73, 0xcd,
- 0x25, 0x5d, 0xf0, 0xd4, 0x51, 0x08, 0xa2, 0xb0, 0x06, 0xab, 0x13, 0xb3,
- 0x89, 0x12, 0x5b, 0x73, 0x6a, 0x7a, 0x92, 0x1c, 0x99, 0x1e, 0x1f, 0x7f,
- 0x78, 0xff, 0x6e, 0xf4, 0xfe, 0xbc, 0x7b, 0x40, 0xcf, 0xcf, 0x2e, 0x2e,
- 0x8f, 0x5f, 0x7f, 0x38, 0xbf, 0x38, 0xbb, 0x3c, 0x3b, 0x3a, 0x3b, 0x4d,
- 0xb6, 0xf6, 0xb6, 0xd7, 0xe6, 0x62, 0x59, 0x6f, 0x89, 0xc7, 0xed, 0xa7,
- 0xfd, 0x67, 0xd1, 0x62, 0x7b, 0xb1, 0x45, 0xe3, 0x09, 0x5b, 0xfb, 0x41,
- 0x36, 0x40, 0x3b, 0x89, 0x90, 0xdd, 0x26, 0xb8, 0x85, 0x20, 0x7e, 0xd3,
- 0xe4, 0x7a, 0x49, 0xbb, 0xd9, 0x0f, 0xc7, 0x33, 0xaf, 0x65, 0xa0, 0x2d,
- 0x69, 0x3c, 0xd0, 0x4b, 0xe3, 0x59, 0xeb, 0x3a, 0x7c, 0xd6, 0x55, 0x2d,
- 0x68, 0x0d, 0xa0, 0x31, 0xba, 0x5d, 0x51, 0xaf, 0xdf, 0x16, 0xcc, 0xfc,
- 0x01, 0xde, 0x68, 0xfb, 0x06, 0x58, 0xf5, 0x25, 0x42, 0x83, 0xdc, 0x57,
- 0x56, 0x41, 0xcd, 0x95, 0x77, 0x1e, 0x56, 0xc0, 0x91, 0x57, 0x4c, 0x7f,
- 0x0b, 0xa9, 0xc3, 0x28, 0x1d, 0x41, 0x84, 0x8e, 0xe6, 0x57, 0x22, 0xc6,
- 0xe6, 0x01, 0xfa, 0xad, 0x27, 0xfc, 0x90, 0xc3, 0x14, 0x78, 0xb7, 0xf9,
- 0xe5, 0x2b, 0xd4, 0x00, 0xbc, 0xf3, 0x3a, 0x45, 0xcd, 0x91, 0xee, 0x04,
- 0xe6, 0xbe, 0x88, 0x20, 0x3c, 0xd6, 0xe0, 0x0f, 0x27, 0xe2, 0x40, 0x13,
- 0x84, 0x9a, 0xa1, 0x84, 0x30, 0x23, 0x7f, 0x30, 0x0f, 0x6c, 0x64, 0x9e,
- 0x44, 0x72, 0xc4, 0xf7, 0x69, 0xed, 0xfb, 0xbc, 0xa1, 0x25, 0xea, 0xb5,
- 0x26, 0x0b, 0xc0, 0x11, 0xab, 0xf8, 0xee, 0x33, 0x74, 0x88, 0x9c, 0xfa,
- 0x6e, 0x34, 0x5e, 0x57, 0x34, 0x1b, 0xd3, 0x5c, 0x01, 0xdd, 0xc9, 0xe5,
- 0x14, 0x17, 0xcd, 0x92, 0x97, 0x3c, 0x15, 0xcb, 0x16, 0x4c, 0x3c, 0x1b,
- 0x46, 0x13, 0x3f, 0x10, 0x2c, 0x14, 0x83, 0x83, 0x38, 0xc9, 0x1e, 0xc4,
- 0x85, 0x47, 0xe7, 0x11, 0x92, 0x07, 0x97, 0x72, 0x0f, 0x99, 0xa8, 0x05,
- 0x63, 0x77, 0x87, 0xbb, 0xc9, 0xe8, 0xed, 0xd7, 0xc2, 0x78, 0xf8, 0xf5,
- 0x88, 0x09, 0x21, 0x58, 0x11, 0xd6, 0x57, 0x86, 0x71, 0x5e, 0x29, 0xf6,
- 0x93, 0x92, 0xba, 0x41, 0xbd, 0xfb, 0x13, 0xfe, 0xa6, 0x68, 0x64, 0xfe,
- 0xb9, 0x1b, 0xb6, 0x3f, 0xee, 0x7e, 0x34, 0x51, 0x9d, 0x83, 0x33, 0x54,
- 0x2e, 0xd5, 0x0e, 0x9b, 0xab, 0x88, 0xf2, 0xa0, 0x87, 0xeb, 0x19, 0xb6,
- 0xf6, 0x83, 0xf3, 0xf0, 0x9b, 0x9d, 0x04, 0x5b, 0xaa, 0x56, 0xa5, 0x72,
- 0x77, 0x3a, 0xce, 0xdd, 0x28, 0x69, 0xf2, 0x32, 0x4a, 0xc8, 0x81, 0xb3,
- 0x79, 0x96, 0x5d, 0x41, 0xd3, 0x42, 0xa2, 0x5c, 0x1f, 0xbf, 0x44, 0x64,
- 0xcd, 0xa2, 0xa7, 0xa2, 0x74, 0x4b, 0x68, 0x23, 0x9d, 0xf8, 0x9a, 0xab,
- 0x32, 0xb3, 0x75, 0xe7, 0xe0, 0x4f, 0x28, 0xce, 0xc9, 0xb4, 0xb4, 0x79,
- 0xed, 0x31, 0x2c, 0x80, 0x0d, 0x31, 0xd7, 0xe0, 0x99, 0x77, 0x96, 0x66,
- 0x94, 0x79, 0x77, 0xcf, 0x49, 0x7b, 0x41, 0x86, 0x01, 0xb4, 0x9d, 0x29,
- 0x69, 0xef, 0x0e, 0x26, 0xea, 0xa5, 0x97, 0x14, 0xa5, 0xe3, 0xda, 0x12,
- 0xf5, 0x25, 0x94, 0x8d, 0x83, 0x24, 0x79, 0x9d, 0x15, 0xf7, 0x2a, 0x1b,
- 0x1d, 0xc2, 0x09, 0x64, 0x19, 0xb7, 0xec, 0x07, 0x67, 0x97, 0x36, 0x13,
- 0x10, 0xd5, 0xc0, 0x44, 0xd8, 0x2e, 0x86, 0x5d, 0x6a, 0xf7, 0x39, 0x26,
- 0x01, 0x5e, 0xd9, 0x69, 0x90, 0x74, 0x6d, 0x7f, 0x2e, 0xb6, 0xc0, 0xc9,
- 0xa0, 0xa1, 0x3f, 0x7c, 0x4f, 0x5b, 0x5c, 0x3b, 0x0d, 0xcc, 0xa6, 0x07,
- 0x2b, 0x86, 0xf8, 0x23, 0xff, 0x8a, 0x12, 0xce, 0xa4, 0xb4, 0xcf, 0x52,
- 0xf8, 0x45, 0x78, 0x2a, 0x04, 0x15, 0x67, 0xe4, 0x9b, 0x79, 0x86, 0xc3,
- 0x55, 0xa1, 0x6b, 0x9a, 0x0a, 0xb8, 0x20, 0x2c, 0xa9, 0xdc, 0xda, 0xed,
- 0x4d, 0x80, 0x4e, 0xad, 0x4b, 0x85, 0x3a, 0xd8, 0x58, 0x21, 0x2c, 0x07,
- 0x57, 0x24, 0x9d, 0x18, 0x6a, 0xd5, 0xb9, 0xc6, 0x78, 0x36, 0x19, 0xde,
- 0x67, 0xc1, 0xa6, 0xf4, 0xf8, 0xca, 0xb6, 0x54, 0xe6, 0xd5, 0xfd, 0x3f,
- 0xd1, 0x1f, 0xe1, 0x28, 0x5a, 0xc1, 0x19, 0x9a, 0x68, 0x3d, 0xec, 0xf4,
- 0x38, 0x04, 0x08, 0x5e, 0x5f, 0xf5, 0x81, 0x57, 0x4e, 0xa0, 0xae, 0x6f,
- 0x1b, 0xc2, 0xe7, 0x31, 0x1f, 0x78, 0x5f, 0x28, 0x8b, 0x99, 0xee, 0xef,
- 0x85, 0xa5, 0x56, 0xbf, 0x4b, 0xab, 0x02, 0x68, 0x72, 0x5f, 0xf1, 0x27,
- 0xee, 0x8b, 0x85, 0xd4, 0x5d, 0x48, 0xaf, 0x08, 0x87, 0x5b, 0x65, 0x8e,
- 0x07, 0x96, 0xd6, 0x91, 0x19, 0x6e, 0x84, 0x5c, 0x5a, 0x61, 0xa1, 0x8b,
- 0xb2, 0x61, 0x9a, 0x6b, 0x02, 0xee, 0x92, 0xce, 0x50, 0x91, 0x7f, 0xc5,
- 0x9b, 0x64, 0xd5, 0x08, 0xa9, 0x35, 0xbb, 0x9b, 0xa8, 0xa5, 0xe5, 0x82,
- 0x62, 0x84, 0x02, 0xa9, 0xe2, 0x78, 0xab, 0x27, 0x66, 0xe4, 0x73, 0x8c,
- 0xbd, 0x82, 0x5f, 0xc8, 0x85, 0xf4, 0xd2, 0xdb, 0x92, 0xea, 0x1c, 0x38,
- 0xf4, 0x35, 0x14, 0x21, 0xb7, 0x4b, 0x2e, 0xc3, 0x4a, 0x0d, 0xb0, 0x27,
- 0x2c, 0xe8, 0x45, 0x0c, 0x0a, 0xf2, 0x02, 0x01, 0x93, 0x04, 0xfb, 0xde,
- 0x4b, 0xf5, 0xe1, 0xf3, 0xad, 0xcd, 0x01, 0x19, 0x91, 0x32, 0xc9, 0x9a,
- 0xd9, 0x93, 0x45, 0xda, 0xe8, 0x89, 0xf1, 0x64, 0x22, 0xf5, 0x10, 0x0c,
- 0x08, 0x05, 0x29, 0xf9, 0x13, 0x4b, 0x3f, 0xd4, 0x65, 0xb2, 0x6e, 0x97,
- 0x20, 0xb6, 0xb7, 0xaa, 0x45, 0x70, 0x3a, 0x85, 0x71, 0xf8, 0x80, 0x18,
- 0xff, 0x74, 0xaf, 0x90, 0xb1, 0xb5, 0x22, 0x7c, 0x81, 0x74, 0x5e, 0x33,
- 0xd1, 0x79, 0x83, 0x05, 0xeb, 0x60, 0x56, 0x15, 0xca, 0x89, 0x28, 0x1f,
- 0x1d, 0xbe, 0x65, 0xf7, 0xc8, 0x17, 0x1a, 0xa3, 0x13, 0xea, 0x75, 0xc8,
- 0x7b, 0x66, 0x75, 0x82, 0x2a, 0x21, 0x9e, 0x09, 0x66, 0xf7, 0xf7, 0x2a,
- 0x1e, 0x10, 0x34, 0x98, 0xa2, 0x76, 0x71, 0x67, 0xdf, 0x8e, 0x25, 0x73,
- 0x31, 0x1b, 0xa6, 0x98, 0x0e, 0x8c, 0x10, 0x58, 0xac, 0x71, 0x6f, 0x7e,
- 0xea, 0xeb, 0xa0, 0x5b, 0x60, 0x57, 0x9f, 0x3e, 0x82, 0x7f, 0xc2, 0x90,
- 0x3a, 0x99, 0xbb, 0x10, 0x2c, 0x6e, 0xf4, 0x81, 0x27, 0xb1, 0x99, 0x8c,
- 0x81, 0xf6, 0xba, 0xa1, 0x64, 0x1a, 0xd4, 0x4a, 0xca, 0x7f, 0x9e, 0x41,
- 0x4c, 0xa0, 0x4e, 0xd8, 0x2a, 0x80, 0x13, 0xcf, 0x9d, 0x4c, 0xdb, 0x7b,
- 0x4e, 0xa6, 0x42, 0x8b, 0xb0, 0x77, 0x0a, 0x81, 0x49, 0x7b, 0x5f, 0x62,
- 0x5f, 0x4d, 0x30, 0x8f, 0xe0, 0x57, 0x52, 0xf2, 0x78, 0x7e, 0x12, 0x7e,
- 0x4e, 0x5f, 0xda, 0xc5, 0x57, 0x3b, 0xe2, 0xfc, 0x80, 0x9c, 0xc4, 0x87,
- 0xa8, 0x63, 0xf9, 0x5a, 0xe6, 0x82, 0x15, 0x8b, 0x11, 0x23, 0xed, 0x98,
- 0x76, 0x10, 0xa8, 0xfa, 0x73, 0xae, 0xb4, 0x1d, 0x87, 0xbd, 0x8d, 0xe4,
- 0xbc, 0x69, 0x3d, 0x6e, 0xc8, 0x69, 0xc5, 0x1c, 0x7a, 0xde, 0x30, 0x2e,
- 0x40, 0xf4, 0xa9, 0x59, 0xdd, 0x53, 0xef, 0x73, 0x4c, 0xd8, 0x21, 0xb8,
- 0x12, 0x69, 0xd7, 0xfd, 0xd3, 0xff, 0xed, 0xa7, 0x7e, 0x4c, 0x48, 0xd3,
- 0x5a, 0xad, 0x76, 0x2b, 0xb4, 0x3f, 0xf3, 0xd2, 0x9c, 0xe8, 0x75, 0x83,
- 0xc2, 0x43, 0xbf, 0x66, 0x50, 0xc1, 0xa8, 0x30, 0x0c, 0xcc, 0x77, 0xb0,
- 0x26, 0xfc, 0x99, 0x35, 0x4e, 0xd8, 0x15, 0x43, 0x30, 0x2d, 0xae, 0x29,
- 0x15, 0xea, 0x0d, 0xc3, 0x3e, 0xf8, 0x4b, 0x47, 0xf2, 0xf0, 0x34, 0x62,
- 0x6b, 0xd0, 0x7f, 0xff, 0x72, 0x00, 0xbf, 0xd7, 0xf4, 0xe7, 0x95, 0xfd,
- 0x38, 0xee, 0x4b, 0x5f, 0x7e, 0x87, 0x6e, 0xe4, 0x8b, 0x1b, 0x72, 0x6a,
- 0xbc, 0x8c, 0x65, 0xd9, 0x78, 0x13, 0x21, 0x8f, 0xfd, 0xf6, 0xdf, 0xaf,
- 0x66, 0x8e, 0xd8, 0x66, 0xcd, 0xf7, 0xe5, 0xb1, 0xdf, 0xfc, 0xfb, 0x7c,
- 0x76, 0x1f, 0x74, 0xa0, 0x40, 0x50, 0xbd, 0x16, 0x24, 0x73, 0x44, 0x26,
- 0xfe, 0x6a, 0xa1, 0x28, 0xe8, 0xe8, 0x50, 0x2a, 0xca, 0xc7, 0xa2, 0x25,
- 0x18, 0x44, 0x2c, 0x42, 0x2a, 0xfe, 0x26, 0x12, 0x0c, 0xa2, 0x39, 0x9c,
- 0x1c, 0xa9, 0x89, 0xf2, 0x92, 0xff, 0xdc, 0xf9, 0x2a, 0xb6, 0x46, 0x9a,
- 0x71, 0x42, 0xb7, 0xa0, 0x16, 0x51, 0x41, 0x5d, 0x0e, 0xe6, 0x09, 0x10,
- 0x8d, 0xd7, 0x56, 0x94, 0xa0, 0xc9, 0x52, 0xa8, 0x08, 0x06, 0x1a, 0x2b,
- 0xdd, 0x22, 0x33, 0xa4, 0x80, 0x51, 0x4b, 0xb0, 0x6d, 0x91, 0x42, 0xa4,
- 0x78, 0x64, 0xde, 0x17, 0x6b, 0xcb, 0xca, 0x12, 0xf1, 0x04, 0xfa, 0x15,
- 0x30, 0x1d, 0x6b, 0xe9, 0xb7, 0x7d, 0xa9, 0x9c, 0x62, 0x5a, 0xa3, 0x5d,
- 0x25, 0x68, 0x49, 0x71, 0xf7, 0xcb, 0x72, 0x86, 0xf4, 0x2e, 0x52, 0xdc,
- 0x1c, 0x28, 0x7e, 0xa0, 0x43, 0x69, 0x84, 0x47, 0x67, 0xef, 0xde, 0x1d,
- 0x1f, 0x75, 0x23, 0x7a, 0xb6, 0xce, 0xa4, 0x53, 0xf5, 0x83, 0xd2, 0x7d,
- 0xf8, 0x3c, 0x28, 0xd9, 0x25, 0xaf, 0x86, 0xbf, 0x8f, 0xaa, 0x3e, 0x9c,
- 0x2b, 0xa3, 0xbf, 0x64, 0x95, 0x44, 0x68, 0x3b, 0x65, 0x07, 0x44, 0x12,
- 0xbb, 0x82, 0xfd, 0x30, 0xf1, 0xa8, 0x5e, 0x38, 0x2a, 0x50, 0xa3, 0x4c,
- 0x14, 0x14, 0x51, 0x98, 0x99, 0xd2, 0x0b, 0x60, 0xab, 0xa7, 0xd3, 0x1d,
- 0x81, 0x2e, 0xeb, 0xb7, 0x57, 0xed, 0x65, 0xe6, 0xf9, 0xa2, 0xfc, 0x90,
- 0x41, 0x79, 0xc5, 0x55, 0x44, 0xe7, 0x69, 0xf5, 0x91, 0xc2, 0x81, 0x5e,
- 0xa6, 0x08, 0x72, 0x05, 0xc1, 0x3a, 0x3c, 0x9d, 0xc6, 0x92, 0xd0, 0x53,
- 0xf8, 0x65, 0x3d, 0x5c, 0xbc, 0x74, 0x46, 0xca, 0xee, 0x1d, 0x68, 0x0a,
- 0x1f, 0xbd, 0x5e, 0x64, 0x77, 0xf4, 0x19, 0xe6, 0xde, 0xa0, 0x64, 0xf2,
- 0x90, 0xc6, 0x9f, 0xa9, 0xa3, 0xd9, 0x8d, 0x7e, 0x2f, 0x49, 0xec, 0xb4,
- 0x54, 0x73, 0xa6, 0xc9, 0x07, 0x19, 0x2f, 0xd5, 0x9e, 0xe2, 0xf4, 0x8f,
- 0x60, 0xae, 0xbe, 0x15, 0x2e, 0xbd, 0x4e, 0x04, 0xa9, 0x4d, 0x15, 0xe6,
- 0xb1, 0xe6, 0x8c, 0x33, 0x8f, 0x65, 0x2f, 0xbc, 0x7e, 0xec, 0x76, 0xc0,
- 0x5c, 0x63, 0x21, 0xc8, 0x5e, 0x91, 0x12, 0x07, 0x92, 0x60, 0xa3, 0xeb,
- 0x9b, 0xae, 0x08, 0x76, 0x8d, 0x88, 0x21, 0x1b, 0xa7, 0x85, 0xfc, 0x10,
- 0x46, 0x8c, 0x3d, 0xeb, 0x52, 0xbd, 0x82, 0xa2, 0x14, 0x0e, 0x47, 0xa2,
- 0x3f, 0xbb, 0x06, 0xd2, 0x9d, 0x1e, 0xc6, 0x71, 0x0d, 0x14, 0x5d, 0x12,
- 0xa9, 0xc8, 0x02, 0xeb, 0x6b, 0xb5, 0x6b, 0xda, 0xab, 0x66, 0x7e, 0x69,
- 0x25, 0x64, 0xf6, 0x95, 0xc9, 0x84, 0x9d, 0xee, 0x72, 0x84, 0xcd, 0x9f,
- 0x8b, 0x65, 0x13, 0xc4, 0xce, 0x88, 0xd8, 0x89, 0xd3, 0xf9, 0xbf, 0x1a,
- 0x84, 0x85, 0x90, 0xd2, 0xa9, 0xbf, 0xaa, 0x10, 0xe1, 0x30, 0xfd, 0xeb,
- 0xc6, 0x48, 0x80, 0x15, 0x61, 0x00, 0x9d, 0x68, 0xcd, 0xa1, 0x88, 0xd9,
- 0x35, 0x98, 0x31, 0xb7, 0x59, 0x77, 0xe0, 0x5b, 0xe8, 0xee, 0x06, 0xfb,
- 0x8a, 0x0a, 0x89, 0x75, 0xd4, 0x1d, 0x20, 0x17, 0xec, 0xc8, 0x3f, 0x63,
- 0xe7, 0x90, 0xf7, 0x29, 0x5b, 0x75, 0x2d, 0x7d, 0x64, 0xb6, 0x48, 0x7e,
- 0xe8, 0xb7, 0xbf, 0x9b, 0xd6, 0x17, 0x34, 0x77, 0x97, 0xa3, 0x7d, 0xee,
- 0xf7, 0xe8, 0x41, 0xb4, 0x42, 0x78, 0xeb, 0xdb, 0x8f, 0xff, 0x6c, 0xc0,
- 0x72, 0xf7, 0xb8, 0x7b, 0xd7, 0x31, 0x38, 0x3a, 0x0a, 0xc7, 0xee, 0x2d,
- 0x0c, 0x91, 0x1b, 0xe0, 0x51, 0xbd, 0x3b, 0x79, 0xed, 0x2d, 0xec, 0xb2,
- 0xf6, 0xfd, 0x8b, 0x38, 0x12, 0xa3, 0x8e, 0xb1, 0x49, 0x4a, 0x94, 0xf9,
- 0x71, 0x97, 0xf2, 0x83, 0x97, 0x70, 0x2b, 0xe7, 0xb3, 0x0b, 0x87, 0xb2,
- 0x29, 0x5f, 0x8f, 0x9c, 0xb8, 0x48, 0x02, 0x64, 0xf2, 0x0f, 0x2a, 0x2c,
- 0xc8, 0x33, 0x6b, 0xa9, 0x2b, 0xf8, 0x4a, 0x6b, 0x12, 0x1e, 0x73, 0x2f,
- 0x05, 0x53, 0xe2, 0xd6, 0x20, 0xa2, 0xad, 0x84, 0xb3, 0xb0, 0x0e, 0xed,
- 0xee, 0xb6, 0x27, 0x9e, 0xfa, 0xcd, 0x8f, 0x05, 0xc1, 0x5b, 0xf2, 0x89,
- 0xe0, 0xf8, 0x5f, 0x3e, 0x44, 0xc7, 0xd8, 0x0e, 0x3a, 0x4b, 0xd0, 0x49,
- 0xd0, 0xda, 0xdc, 0x90, 0x26, 0x8f, 0xc1, 0xcb, 0x8f, 0x4f, 0x04, 0xe4,
- 0x2a, 0x82, 0x4c, 0x8e, 0x00, 0x57, 0xfc, 0xb8, 0xd0, 0x93, 0x68, 0x6f,
- 0xeb, 0xd9, 0x00, 0x7d, 0xa0, 0x1c, 0xbb, 0x40, 0xd7, 0x75, 0x73, 0xd5,
- 0x79, 0xee, 0xb7, 0x9f, 0xb6, 0x66, 0x56, 0xd3, 0x5a, 0x3e, 0x46, 0xa4,
- 0xf9, 0x8f, 0xfe, 0x1e, 0xfd, 0xb0, 0x48, 0x83, 0x97, 0x0c, 0x23, 0x58,
- 0xdb, 0x13, 0xfb, 0xf0, 0xef, 0xd1, 0x13, 0x64, 0xee, 0x45, 0xf7, 0x50,
- 0xab, 0x0f, 0x78, 0xec, 0xf7, 0xf8, 0xfe, 0xed, 0xde, 0xaa, 0xcf, 0xa2,
- 0xce, 0x18, 0x9e, 0xf8, 0x0d, 0x3f, 0xfc, 0xde, 0x1a, 0x25, 0x9c, 0xe5,
- 0xf8, 0x92, 0xfe, 0x7b, 0xa0, 0x33, 0xbc, 0xb6, 0xa0, 0x7b, 0xab, 0x2a,
- 0x4d, 0xab, 0x3a, 0xa7, 0x96, 0x4f, 0xed, 0x66, 0xf3, 0x3e, 0x0a, 0xf8,
- 0x25, 0x69, 0x85, 0x4c, 0x12, 0x21, 0x8c, 0x91, 0x20, 0xf3, 0x1d, 0x28,
- 0xd5, 0x8c, 0xe8, 0xd0, 0x9a, 0xe9, 0x2e, 0x89, 0xcb, 0x89, 0x90, 0x2f,
- 0x74, 0xc9, 0x36, 0xdc, 0x65, 0x45, 0xa7, 0x39, 0x2e, 0x82, 0xa1, 0x73,
- 0x71, 0x7a, 0x72, 0x97, 0x60, 0x3e, 0x88, 0x0d, 0xcf, 0x98, 0x97, 0x69,
- 0xe5, 0xf8, 0xa1, 0x4f, 0x49, 0x99, 0x78, 0x47, 0x52, 0x30, 0x66, 0xb3,
- 0x29, 0xa8, 0x3c, 0xc0, 0x51, 0x3b, 0x8b, 0xaa, 0xf0, 0x30, 0x2b, 0x9e,
- 0x4a, 0x79, 0x90, 0xf4, 0x06, 0xef, 0x93, 0x83, 0xde, 0xef, 0x08, 0x20,
- 0xf7, 0x8c, 0xd3, 0x5f, 0x8d, 0x87, 0x5b, 0x8d, 0x0e, 0x6b, 0x43, 0x84,
- 0xc4, 0x3d, 0xfe, 0x10, 0x2e, 0xec, 0x8a, 0x38, 0x3a, 0xdf, 0x75, 0x17,
- 0x20, 0x02, 0xb1, 0xa2, 0x08, 0x35, 0x07, 0x84, 0xed, 0xe8, 0x1a, 0xa4,
- 0xa7, 0x21, 0xcb, 0xd7, 0xf7, 0x17, 0xbf, 0x0f, 0x0a, 0x1e, 0x3a, 0xd8,
- 0x58, 0x0b, 0x28, 0xe6, 0x70, 0x62, 0x14, 0xf2, 0x74, 0x28, 0x31, 0x60,
- 0x25, 0xd9, 0x74, 0x46, 0x85, 0xe8, 0xc0, 0x20, 0x05, 0xa1, 0xe1, 0x6a,
- 0x8c, 0x58, 0xb2, 0x75, 0xe9, 0xb9, 0xf0, 0x1d, 0xfb, 0x10, 0xd9, 0x5d,
- 0x71, 0xe7, 0x31, 0xb6, 0x21, 0xe8, 0x68, 0x3f, 0x0b, 0xea, 0xca, 0x08,
- 0x86, 0x50, 0x6c, 0x64, 0x6d, 0x2c, 0xb9, 0xcd, 0x53, 0x0e, 0xcc, 0xf0,
- 0x44, 0xca, 0xb7, 0x78, 0x46, 0xdd, 0xa7, 0x56, 0xb9, 0xe7, 0x38, 0x61,
- 0x3b, 0x92, 0xe6, 0xf1, 0x6e, 0x34, 0x0a, 0xa1, 0x62, 0x45, 0x95, 0x4d,
- 0xca, 0xeb, 0x22, 0xff, 0xbb, 0xe4, 0x97, 0x77, 0xd1, 0x23, 0x2d, 0xac,
- 0x5e, 0xa2, 0x75, 0x89, 0xc9, 0x92, 0x40, 0xfc, 0xa4, 0xbb, 0x1a, 0x96,
- 0x4b, 0x84, 0xa4, 0x14, 0x42, 0xb9, 0x20, 0x41, 0x90, 0xa9, 0xe4, 0x4a,
- 0xbe, 0xcc, 0xe9, 0xde, 0x8a, 0x85, 0x68, 0xce, 0x75, 0x57, 0xd1, 0x91,
- 0x5d, 0x21, 0x10, 0xa0, 0xf8, 0xf1, 0xc9, 0x7e, 0x05, 0xb0, 0x8e, 0x42,
- 0xa6, 0xbf, 0x0a, 0x5a, 0xd7, 0xb6, 0xa8, 0xbc, 0x14, 0x7e, 0x54, 0x12,
- 0xa7, 0xc3, 0x11, 0xe5, 0x48, 0x11, 0x82, 0xab, 0xb0, 0x24, 0x8c, 0xef,
- 0xa1, 0x00, 0x9b, 0xf3, 0x63, 0x68, 0x52, 0x4c, 0x3b, 0x92, 0x53, 0x15,
- 0x9e, 0xad, 0x2e, 0x47, 0x8a, 0x6d, 0xfd, 0x11, 0xe4, 0x28, 0x64, 0xdd,
- 0x2b, 0xbf, 0xa5, 0x74, 0x19, 0xc4, 0xcf, 0xb6, 0x5c, 0x7b, 0xc9, 0xe5,
- 0xd1, 0xbd, 0x23, 0xc9, 0x07, 0x36, 0x5a, 0x96, 0x68, 0x41, 0xd4, 0xe1,
- 0x94, 0x3c, 0x35, 0x56, 0x28, 0x74, 0xc3, 0x73, 0x4b, 0x6f, 0x53, 0xa5,
- 0x0b, 0xc0, 0x8d, 0x2d, 0xb3, 0x02, 0xb9, 0x63, 0x81, 0x89, 0xd6, 0x3d,
- 0xd1, 0xdd, 0x5a, 0xca, 0x36, 0xea, 0x75, 0x91, 0x23, 0x47, 0x62, 0xf8,
- 0xdb, 0x32, 0x1a, 0x8e, 0x51, 0x18, 0xc9, 0x83, 0x52, 0x7b, 0x39, 0x64,
- 0x35, 0xd3, 0x69, 0x6a, 0xa8, 0xca, 0x36, 0x71, 0x90, 0x31, 0xc4, 0xd6,
- 0xae, 0x49, 0x9f, 0xa4, 0x0f, 0x8b, 0x5c, 0x51, 0xdf, 0x07, 0x0b, 0x95,
- 0xb2, 0xdd, 0xc1, 0xde, 0x4b, 0x23, 0x2b, 0x6a, 0xd0, 0xfe, 0x0e, 0x88,
- 0xcc, 0x5f, 0x03, 0xc8, 0xfc, 0x9d, 0x11, 0x99, 0xde, 0x4d, 0x41, 0xd7,
- 0x4e, 0x78, 0x4f, 0xc0, 0x7b, 0x48, 0x29, 0x75, 0x1c, 0x1e, 0xbd, 0x4b,
- 0x2d, 0x13, 0x76, 0x4c, 0x49, 0x8f, 0x9e, 0xa4, 0x7e, 0x0b, 0xdd, 0xe2,
- 0x49, 0x10, 0x95, 0x8f, 0x8c, 0x31, 0xa3, 0x1a, 0x1c, 0x2b, 0xf2, 0xc4,
- 0x33, 0xca, 0x07, 0x9b, 0x66, 0xc2, 0xf1, 0xf0, 0x27, 0x47, 0x44, 0xfd,
- 0x7b, 0x66, 0x77, 0xd1, 0xf0, 0xf6, 0x8c, 0x6c, 0x7e, 0xe9, 0xdd, 0xc7,
- 0x5f, 0x46, 0x2e, 0xe4, 0x20, 0xe9, 0x94, 0xf1, 0xdd, 0xf4, 0x6a, 0x9b,
- 0x48, 0x29, 0x22, 0xf4, 0xe2, 0x07, 0x06, 0x85, 0xaf, 0xe0, 0xf9, 0x54,
- 0xf1, 0x46, 0x01, 0x73, 0x7a, 0x79, 0x85, 0x80, 0x13, 0xaa, 0x2e, 0x65,
- 0xe9, 0x35, 0xf2, 0x7c, 0x9c, 0x35, 0x77, 0x59, 0x26, 0xa4, 0x59, 0x3a,
- 0x8d, 0x9e, 0x0c, 0xb0, 0xf2, 0x70, 0x65, 0x18, 0xac, 0x2f, 0xe4, 0x88,
- 0x24, 0x51, 0x98, 0x0a, 0xce, 0xd6, 0xbf, 0x55, 0x5f, 0x6f, 0x70, 0xfc,
- 0x62, 0xcc, 0xf2, 0xce, 0x73, 0xcd, 0xdf, 0xa7, 0x79, 0xf1, 0x40, 0x3a,
- 0x2d, 0xdc, 0xac, 0x46, 0x33, 0xe5, 0x41, 0xdf, 0xf0, 0xb7, 0xc7, 0x58,
- 0x8e, 0x6d, 0x2c, 0x7b, 0xb5, 0x2d, 0xe6, 0x74, 0xf1, 0x3d, 0x3d, 0xab,
- 0xed, 0x34, 0xd4, 0x6a, 0x77, 0x69, 0x78, 0x8b, 0x51, 0x6a, 0x09, 0x2f,
- 0xa3, 0x77, 0x91, 0x02, 0x92, 0xc0, 0x53, 0x21, 0x68, 0x7e, 0x16, 0x20,
- 0x76, 0x1e, 0x56, 0x1e, 0x0b, 0x6f, 0x98, 0xf3, 0x8c, 0x00, 0x12, 0x72,
- 0x5a, 0x73, 0x4d, 0x94, 0xa6, 0x6f, 0x0d, 0xe0, 0x4b, 0x77, 0xa2, 0x92,
- 0x39, 0x59, 0xe8, 0x23, 0x81, 0x03, 0x93, 0x3e, 0x9a, 0x2e, 0xcc, 0x97,
- 0x52, 0x2e, 0x64, 0x4f, 0x6e, 0x6d, 0x14, 0x91, 0x56, 0xa9, 0xe7, 0x4d,
- 0x43, 0xc7, 0x31, 0x1f, 0x01, 0x5b, 0x05, 0x14, 0x89, 0x6a, 0x44, 0xb0,
- 0x60, 0x12, 0xa0, 0x9e, 0x24, 0x36, 0xa8, 0x93, 0x5e, 0x5c, 0x3d, 0xb4,
- 0x2b, 0xe3, 0x7c, 0x21, 0x42, 0xab, 0x53, 0x48, 0xf6, 0x44, 0x47, 0x60,
- 0x87, 0x25, 0x3f, 0x2f, 0x4b, 0x56, 0xa7, 0x18, 0xfd, 0xdc, 0xed, 0xbb,
- 0x60, 0x08, 0xb4, 0xd2, 0xcb, 0x9d, 0x2d, 0x10, 0x0e, 0x17, 0x7d, 0xa4,
- 0x8c, 0x8a, 0x40, 0x8f, 0xf5, 0x05, 0xe1, 0xea, 0x93, 0xf6, 0x6d, 0x41,
- 0xac, 0x55, 0x5e, 0xd1, 0x58, 0x04, 0xa9, 0x25, 0x1c, 0x24, 0x45, 0x3d,
- 0xe2, 0x17, 0xdc, 0x1a, 0x11, 0xfb, 0xf9, 0xe8, 0xe8, 0x7c, 0x3b, 0x39,
- 0xef, 0x64, 0x9f, 0x03, 0x5c, 0x4c, 0x77, 0xb6, 0x2f, 0xef, 0xa5, 0x02,
- 0x09, 0x53, 0x31, 0xad, 0xce, 0x54, 0x56, 0x02, 0x3c, 0x4b, 0x3a, 0x06,
- 0xb7, 0xf3, 0x6f, 0x2e, 0xff, 0x3a, 0x63, 0x39, 0x04, 0xeb, 0x00, 0x27,
- 0x22, 0x4b, 0x52, 0xb4, 0x2f, 0x0c, 0x8c, 0x4d, 0x57, 0x12, 0xae, 0x9d,
- 0x29, 0xff, 0x25, 0x77, 0x5b, 0x73, 0xae, 0x67, 0x01, 0xd0, 0x02, 0x13,
- 0xa1, 0xa8, 0x37, 0x8f, 0x71, 0x41, 0x6a, 0xef, 0xd4, 0x7c, 0xfb, 0x75,
- 0x4a, 0xb6, 0x60, 0x7b, 0x5f, 0x67, 0x45, 0x48, 0xb3, 0x8d, 0x8f, 0x92,
- 0xbe, 0x20, 0x1b, 0x78, 0x3a, 0xec, 0xd2, 0x3c, 0x7a, 0xd9, 0xe5, 0xd2,
- 0x39, 0xbf, 0x9e, 0xcd, 0x0a, 0x2a, 0x28, 0x56, 0x25, 0xa9, 0xf4, 0x0e,
- 0x09, 0xde, 0x6b, 0xca, 0xe6, 0x6f, 0x70, 0x91, 0x2e, 0xee, 0x69, 0x32,
- 0xcc, 0x63, 0x75, 0x7d, 0xb3, 0x6f, 0xc4, 0xd3, 0xfe, 0xf0, 0x73, 0x36,
- 0x70, 0x6f, 0x8c, 0x4e, 0x90, 0x55, 0x2b, 0x88, 0xde, 0xa4, 0x46, 0x57,
- 0xa7, 0x3d, 0x51, 0xf6, 0x87, 0xce, 0xbe, 0x18, 0xfc, 0x0f, 0xda, 0x69,
- 0x7f, 0x5b, 0x86, 0xbe, 0xc3, 0x2d, 0xda, 0x50, 0x09, 0x6d, 0x2b, 0x2a,
- 0x81, 0x4c, 0x0c, 0xf0, 0x88, 0x72, 0x8c, 0xf3, 0x06, 0x14, 0xae, 0x4a,
- 0x54, 0xd2, 0x3e, 0x98, 0xa8, 0xba, 0x50, 0xe1, 0xad, 0x68, 0x62, 0xda,
- 0x30, 0xf9, 0x1f, 0xf4, 0x29, 0x7d, 0x9b, 0x21, 0xc6, 0x08, 0xc4, 0x7c,
- 0x7d, 0xfc, 0xe6, 0xec, 0xe2, 0xb8, 0x9d, 0x1b, 0xd0, 0x70, 0xc5, 0x09,
- 0x04, 0x1a, 0xba, 0xbd, 0x63, 0xf6, 0x15, 0xbf, 0x9c, 0x59, 0x5e, 0xe4,
- 0x84, 0x14, 0x4b, 0xce, 0x7f, 0x78, 0x6d, 0x7b, 0x97, 0x43, 0x3c, 0xbf,
- 0xf1, 0x4a, 0x53, 0xf6, 0x79, 0xa6, 0xbb, 0x1a, 0x04, 0xe9, 0x1a, 0xdb,
- 0x43, 0x12, 0x07, 0x1c, 0x44, 0xd1, 0xfe, 0x21, 0xbc, 0xc3, 0x61, 0x39,
- 0xfe, 0x56, 0xca, 0x64, 0x9f, 0x75, 0x4d, 0xb9, 0x6f, 0xb6, 0xd1, 0x40,
- 0xbd, 0x66, 0x0d, 0x83, 0x49, 0x2e, 0x18, 0xd8, 0x94, 0x26, 0x60, 0x39,
- 0x21, 0xe2, 0x93, 0x61, 0x12, 0x7e, 0x48, 0x03, 0x52, 0xf8, 0x4a, 0x2c,
- 0x92, 0x48, 0x05, 0x3f, 0xd9, 0x85, 0xc9, 0xd7, 0x2a, 0x91, 0x55, 0xa3,
- 0x3c, 0xa1, 0x56, 0x5b, 0xe8, 0x33, 0x23, 0x8d, 0xe4, 0xa7, 0xf9, 0x13,
- 0x19, 0xf1, 0xce, 0x9b, 0x6f, 0x6e, 0xd5, 0x04, 0xb4, 0xf4, 0xba, 0x6a,
- 0x7f, 0x93, 0xa8, 0x9d, 0xbe, 0xf9, 0xa7, 0x4d, 0x87, 0x49, 0xe5, 0xaa,
- 0x31, 0xf1, 0x2a, 0x4b, 0xae, 0xe8, 0xc6, 0xf6, 0x43, 0xd1, 0x63, 0x1d,
- 0xf1, 0x2a, 0x1b, 0x4d, 0x32, 0x18, 0x25, 0xa0, 0x88, 0xe2, 0x57, 0x08,
- 0x9b, 0xc2, 0x45, 0x0b, 0xca, 0xb6, 0xf2, 0xaa, 0xdd, 0xdd, 0x3a, 0x5a,
- 0x7d, 0x99, 0xbc, 0x3e, 0x55, 0x9b, 0x88, 0x9f, 0x6f, 0x5e, 0xb2, 0x00,
- 0xc6, 0x9c, 0xa6, 0xcf, 0x5d, 0xa5, 0x59, 0x43, 0x89, 0x83, 0xfa, 0xbe,
- 0x68, 0xe8, 0xb4, 0x42, 0xb0, 0x04, 0x93, 0x56, 0xe1, 0x42, 0xa2, 0xbd,
- 0xe4, 0x76, 0x6f, 0x8d, 0x7c, 0xd4, 0x17, 0xcf, 0x5e, 0x90, 0x12, 0x81,
- 0x10, 0xa9, 0xd4, 0xa1, 0x10, 0x2e, 0x42, 0x61, 0xfa, 0x0c, 0x53, 0x51,
- 0x44, 0xf5, 0xb0, 0x2d, 0x49, 0xfd, 0xc0, 0x71, 0x86, 0xca, 0x98, 0x25,
- 0x4e, 0x90, 0x23, 0x34, 0x5c, 0x67, 0x5b, 0xae, 0x86, 0x20, 0x0e, 0x59,
- 0x3f, 0x31, 0xcb, 0x90, 0x7e, 0x94, 0x3c, 0x45, 0x3e, 0x0c, 0xd1, 0xa3,
- 0xd9, 0xd7, 0xad, 0xe0, 0xf5, 0xcb, 0x92, 0x37, 0x1b, 0xb1, 0x9d, 0x55,
- 0x79, 0xfd, 0xd1, 0x1c, 0xbc, 0x7f, 0x93, 0xa4, 0xc2, 0x95, 0x89, 0x6e,
- 0xe4, 0x9a, 0xcc, 0x8b, 0x25, 0x15, 0x37, 0xf4, 0xaa, 0xd2, 0x6a, 0x8b,
- 0x57, 0xa8, 0x94, 0x42, 0xbc, 0x77, 0x31, 0xdc, 0x7e, 0xdd, 0x94, 0x8b,
- 0x80, 0xc7, 0x5e, 0xd2, 0x22, 0x65, 0x27, 0x84, 0xb7, 0x26, 0x4d, 0x15,
- 0x08, 0x1e, 0xc5, 0x4f, 0xa8, 0xca, 0xd3, 0x30, 0x79, 0x5f, 0x40, 0xbb,
- 0x91, 0xad, 0x29, 0x57, 0x49, 0x5e, 0x98, 0xb1, 0x98, 0xb1, 0x9a, 0xcb,
- 0x24, 0x26, 0xa8, 0x20, 0x0b, 0xdd, 0xde, 0x4a, 0x54, 0x94, 0x76, 0xd8,
- 0x36, 0x70, 0xb4, 0x2d, 0x25, 0x27, 0xcb, 0xb6, 0xe4, 0x4d, 0x58, 0xf9,
- 0x85, 0x8b, 0x56, 0x48, 0x81, 0x64, 0xb4, 0x4d, 0x69, 0x51, 0xd9, 0x6c,
- 0x36, 0x60, 0x46, 0x50, 0xe2, 0x47, 0x24, 0x3b, 0xc3, 0x2c, 0x53, 0x3a,
- 0xe1, 0x10, 0xbb, 0x9f, 0x15, 0x17, 0xdc, 0x3e, 0x48, 0xbe, 0x1a, 0x02,
- 0xa5, 0xac, 0x69, 0xcb, 0x82, 0x17, 0x57, 0x40, 0x37, 0xe1, 0xff, 0x9d,
- 0x6b, 0x06, 0xb3, 0xf3, 0x37, 0x15, 0xba, 0xb1, 0x32, 0x0d, 0x21, 0xc5,
- 0xd6, 0xe4, 0xe6, 0xba, 0x5a, 0x70, 0xbd, 0x98, 0x58, 0x31, 0x1b, 0xcf,
- 0x00, 0xe0, 0x27, 0x75, 0x6d, 0xeb, 0xac, 0xe1, 0xae, 0xf0, 0xab, 0x27,
- 0xaf, 0x5b, 0xa5, 0x27, 0x69, 0x26, 0x40, 0xf6, 0x16, 0x6f, 0xce, 0xd5,
- 0xb8, 0xe6, 0x23, 0xeb, 0xee, 0x16, 0xdb, 0x9a, 0xb3, 0x76, 0xc6, 0xf7,
- 0xee, 0x37, 0xf1, 0xe6, 0xa4, 0x0d, 0x56, 0x67, 0xb9, 0x05, 0x6d, 0x16,
- 0x7b, 0x45, 0x2b, 0xa3, 0xd2, 0x6e, 0xa0, 0xfa, 0xc7, 0xfa, 0x91, 0x10,
- 0xc6, 0x71, 0x33, 0x2f, 0xa7, 0x84, 0x39, 0xcf, 0x1e, 0x9c, 0x0b, 0x7a,
- 0x50, 0xe7, 0x42, 0xf0, 0xfa, 0xb5, 0x3f, 0x2e, 0x34, 0x62, 0x76, 0x29,
- 0xed, 0x3c, 0x11, 0x62, 0xf1, 0xe6, 0xdc, 0x40, 0xb5, 0x7e, 0x53, 0xc6,
- 0x2f, 0xfb, 0x43, 0x28, 0x92, 0x72, 0xd2, 0x78, 0x23, 0xa0, 0x07, 0xe2,
- 0xcd, 0xb1, 0xf0, 0x8d, 0x8c, 0x8c, 0x20, 0xdc, 0x30, 0x6e, 0x1f, 0x1a,
- 0x19, 0x3d, 0x18, 0xac, 0xb2, 0xf9, 0xa1, 0xe3, 0x51, 0xf3, 0x96, 0x98,
- 0x17, 0x27, 0xde, 0x5c, 0x7b, 0x81, 0x75, 0x85, 0xd1, 0x87, 0xd8, 0x02,
- 0x0b, 0x1f, 0x63, 0xa8, 0x85, 0x39, 0x53, 0x9d, 0x67, 0xc7, 0x3e, 0xb8,
- 0x72, 0x81, 0xe5, 0x1b, 0xc1, 0x2c, 0xcc, 0x8c, 0x84, 0x34, 0x5a, 0xf0,
- 0x24, 0xfb, 0xc0, 0x85, 0xd4, 0xa8, 0x1c, 0x76, 0xf3, 0x61, 0xfd, 0x84,
- 0xcc, 0x24, 0xbd, 0xf1, 0x7e, 0x8e, 0x02, 0x8c, 0x56, 0x56, 0x08, 0x57,
- 0x5a, 0x4a, 0xbf, 0x19, 0x97, 0xa4, 0x04, 0xe2, 0xf7, 0x51, 0x0a, 0x78,
- 0xdd, 0xf6, 0xee, 0x7b, 0xcc, 0xaf, 0xc6, 0x57, 0xd5, 0xa2, 0xcc, 0x0b,
- 0xcb, 0x82, 0x0e, 0x19, 0xe3, 0xf5, 0x31, 0x96, 0x5a, 0xbf, 0x2e, 0xd0,
- 0x32, 0xff, 0x48, 0x20, 0x70, 0xab, 0x28, 0x7c, 0x88, 0x30, 0x5d, 0x7b,
- 0x83, 0xe3, 0xa7, 0x75, 0xb5, 0x79, 0x48, 0x5a, 0xc4, 0xcc, 0x15, 0xea,
- 0x72, 0xc7, 0x79, 0xcd, 0x3e, 0x6e, 0x7f, 0xd2, 0x9e, 0xc9, 0x6e, 0xff,
- 0x16, 0x77, 0x53, 0x9b, 0x5d, 0x7e, 0xe7, 0x8e, 0x90, 0xaa, 0x00, 0xe0,
- 0x42, 0xd6, 0x52, 0x78, 0x04, 0x3b, 0xe5, 0xc6, 0xae, 0x94, 0xcf, 0x71,
- 0xc5, 0x54, 0x80, 0xe6, 0x31, 0xd0, 0x92, 0x82, 0x8f, 0x57, 0x19, 0x23,
- 0x73, 0x30, 0xbf, 0xb2, 0x1c, 0xab, 0x27, 0x47, 0x9e, 0x76, 0x5d, 0x64,
- 0xf9, 0xee, 0x97, 0xed, 0x75, 0x73, 0xa4, 0xc7, 0x61, 0x8d, 0xc0, 0x93,
- 0xcf, 0x76, 0x45, 0xde, 0x34, 0x23, 0x1f, 0x31, 0xef, 0x05, 0xe0, 0x79,
- 0x1f, 0x3e, 0x59, 0xdc, 0xf3, 0x95, 0x73, 0x5c, 0xcd, 0x1f, 0x38, 0xe4,
- 0xe6, 0x01, 0x37, 0x2a, 0xc2, 0xf4, 0x78, 0xa3, 0x0a, 0xce, 0xa5, 0xd4,
- 0xfc, 0x5b, 0x31, 0xf3, 0xab, 0x7a, 0xd0, 0xda, 0x85, 0xab, 0x7b, 0x22,
- 0x4f, 0x46, 0xbb, 0xe3, 0x26, 0x97, 0x32, 0x7b, 0xee, 0x5d, 0xcf, 0xe2,
- 0xcd, 0x49, 0x77, 0xdd, 0x5b, 0x32, 0x3d, 0x7d, 0xcf, 0x91, 0xca, 0xc4,
- 0xd8, 0xc6, 0xb8, 0x0c, 0xf7, 0x86, 0x1e, 0xf0, 0x5f, 0x24, 0x20, 0xc8,
- 0x8a, 0x9f, 0x15, 0xbe, 0xdd, 0x4e, 0x5f, 0x34, 0x77, 0xef, 0x1a, 0xb8,
- 0xad, 0x47, 0xa9, 0x6b, 0x97, 0x9b, 0xcb, 0xac, 0x21, 0x54, 0x08, 0x12,
- 0x10, 0x40, 0x69, 0x50, 0x57, 0x41, 0x6c, 0x67, 0x70, 0x82, 0x4c, 0x89,
- 0xb1, 0x3a, 0xc4, 0xf6, 0x25, 0xfc, 0xcd, 0x84, 0x49, 0xc0, 0x30, 0xad,
- 0x28, 0x05, 0x23, 0x8a, 0x88, 0x96, 0x71, 0xab, 0x33, 0xb1, 0x26, 0xe4,
- 0x71, 0x26, 0xc1, 0x0e, 0x8b, 0xd7, 0x75, 0x98, 0xd8, 0x48, 0x01, 0xe9,
- 0x90, 0x47, 0x66, 0xd7, 0x53, 0xbf, 0x12, 0xa4, 0x37, 0xfc, 0xaa, 0xcf,
- 0x53, 0x70, 0x6d, 0x06, 0x8f, 0x3f, 0xa2, 0x40, 0x56, 0x68, 0xcd, 0x50,
- 0x56, 0x28, 0x9b, 0x72, 0x3b, 0xb9, 0xc8, 0x28, 0x71, 0xeb, 0x96, 0x84,
- 0x29, 0x65, 0x66, 0x27, 0xdc, 0xc0, 0x56, 0x3e, 0xcc, 0x04, 0xb7, 0x08,
- 0x37, 0x35, 0xf1, 0xcb, 0x06, 0x3a, 0x8d, 0xd9, 0x19, 0xdb, 0xca, 0xdd,
- 0x96, 0x4a, 0x35, 0x90, 0xbd, 0xe1, 0x9e, 0xd1, 0xc5, 0xdf, 0x30, 0x05,
- 0x46, 0xe2, 0xab, 0xd7, 0x60, 0xc2, 0x13, 0x66, 0x4b, 0xfa, 0x74, 0xd7,
- 0x1b, 0x71, 0x41, 0x1f, 0xae, 0x43, 0x17, 0x35, 0xfc, 0xdc, 0xce, 0xac,
- 0xb9, 0x4b, 0xef, 0x43, 0x45, 0x7d, 0x77, 0xf0, 0xf4, 0xc5, 0x8b, 0xd6,
- 0x8d, 0x5e, 0x7b, 0xac, 0xa0, 0xcf, 0x76, 0x77, 0x39, 0xeb, 0xbc, 0xfb,
- 0x9a, 0xf9, 0xc5, 0xe0, 0x05, 0x5e, 0x6c, 0xbf, 0x56, 0x67, 0x66, 0x09,
- 0xa6, 0xab, 0xdf, 0x1b, 0xd0, 0x6f, 0x22, 0x9f, 0x83, 0xd7, 0x65, 0xe5,
- 0x5b, 0x2f, 0xe8, 0x73, 0x91, 0xb7, 0x38, 0x21, 0x1e, 0xd3, 0x58, 0x5e,
- 0x5d, 0x91, 0xbb, 0x8b, 0x9e, 0xc4, 0xc5, 0x67, 0x76, 0xc4, 0x5d, 0x5a,
- 0x4d, 0xc3, 0xe1, 0xee, 0xf6, 0x07, 0x7b, 0xab, 0x86, 0x0b, 0x5a, 0x53,
- 0xc0, 0x5b, 0x68, 0x3d, 0xc9, 0x9a, 0x34, 0xb6, 0x04, 0x83, 0x98, 0xbb,
- 0x0d, 0xed, 0x99, 0x1e, 0xed, 0xbd, 0x78, 0xd1, 0xa7, 0x9e, 0x3d, 0x7b,
- 0xf1, 0x62, 0x65, 0xd2, 0x9a, 0xf7, 0x99, 0xbb, 0xd2, 0x39, 0xa9, 0xe8,
- 0x75, 0xb7, 0x69, 0x6a, 0x32, 0x59, 0xe2, 0xdf, 0xa1, 0xdf, 0xbc, 0x4a,
- 0xde, 0x9d, 0x5d, 0x1e, 0x7b, 0xee, 0x1b, 0x1c, 0x2f, 0x0e, 0x5f, 0x7a,
- 0xf6, 0x28, 0xe2, 0xc1, 0x0b, 0x54, 0xa6, 0x80, 0x69, 0x4c, 0xb6, 0x56,
- 0x88, 0x72, 0x00, 0xa0, 0x56, 0xfd, 0x86, 0xff, 0xd2, 0xfd, 0xdc, 0x19,
- 0xc0, 0xcb, 0xd3, 0xfc, 0x3a, 0x6f, 0x7c, 0x26, 0x85, 0x2d, 0xb3, 0xda,
- 0x5c, 0x7a, 0xfe, 0x36, 0x9d, 0xe5, 0x36, 0xb4, 0xb3, 0x59, 0x13, 0x00,
- 0x95, 0x69, 0x15, 0x37, 0xc9, 0x30, 0xda, 0x0c, 0x20, 0xa0, 0xd9, 0x6c,
- 0x5a, 0xeb, 0x45, 0xc8, 0x8f, 0x0f, 0xf0, 0xa0, 0x9c, 0x16, 0xd8, 0xb3,
- 0x5c, 0xfe, 0x32, 0x85, 0x73, 0x99, 0x3f, 0xbd, 0x3a, 0xb8, 0x43, 0x92,
- 0x90, 0x91, 0x67, 0x8a, 0x1e, 0xa7, 0x76, 0x7c, 0xde, 0xc5, 0xcd, 0xda,
- 0xb9, 0x45, 0xad, 0x0f, 0xaf, 0x88, 0x03, 0x1e, 0x10, 0x51, 0x98, 0x66,
- 0x0b, 0xe5, 0x27, 0x2c, 0xda, 0xed, 0x98, 0xbd, 0x7c, 0x95, 0x5f, 0x2f,
- 0xab, 0x38, 0xb8, 0xea, 0xcf, 0x0e, 0xca, 0xac, 0x14, 0xb8, 0xe9, 0x5d,
- 0x5a, 0x65, 0x5a, 0xb2, 0xa5, 0xb8, 0xb7, 0x07, 0x5b, 0xed, 0x64, 0x85,
- 0x2c, 0x83, 0xa0, 0x38, 0xf0, 0x8b, 0x91, 0xc9, 0x7c, 0x65, 0x74, 0x19,
- 0x38, 0x13, 0x04, 0x60, 0x22, 0x54, 0xbc, 0x69, 0xe3, 0x70, 0xe3, 0xea,
- 0x6a, 0x37, 0xeb, 0x4d, 0xd7, 0x69, 0x2a, 0x53, 0xd0, 0x8d, 0xe2, 0x95,
- 0xcb, 0x4d, 0x8f, 0x71, 0x82, 0x9e, 0x84, 0x4f, 0xe6, 0xa6, 0xf4, 0x48,
- 0xaf, 0xc3, 0xc4, 0x52, 0x49, 0x8d, 0x87, 0xf4, 0xe1, 0x25, 0x9a, 0x1a,
- 0x25, 0x7a, 0x56, 0xa6, 0x53, 0x71, 0xaf, 0xb8, 0xd0, 0x3e, 0x6b, 0x07,
- 0x42, 0x02, 0x22, 0x6b, 0x1b, 0x10, 0xa4, 0xd2, 0x52, 0xcb, 0x2a, 0x9b,
- 0xcd, 0xac, 0x65, 0x64, 0x75, 0x93, 0x96, 0x85, 0xd5, 0x92, 0x58, 0x4e,
- 0x99, 0x8f, 0x70, 0x1e, 0xef, 0xf6, 0x30, 0xe2, 0x06, 0xa0, 0x0d, 0xcf,
- 0xab, 0x65, 0x59, 0x9b, 0x51, 0x04, 0x8a, 0x2e, 0x49, 0xcf, 0xeb, 0x91,
- 0x8c, 0x4e, 0xfe, 0xe7, 0xf1, 0xef, 0x19, 0x02, 0xab, 0xd2, 0x3b, 0x9b,
- 0xdc, 0x20, 0xf5, 0xb4, 0x25, 0x34, 0x65, 0xb3, 0x69, 0xd3, 0x99, 0x98,
- 0xf1, 0x54, 0x34, 0x17, 0xb7, 0x07, 0x82, 0x9c, 0x52, 0xe3, 0xcd, 0x6c,
- 0xac, 0x70, 0x6f, 0x17, 0x8d, 0x14, 0x5d, 0x51, 0xe7, 0x22, 0x73, 0x9b,
- 0x02, 0x98, 0xce, 0xc0, 0x22, 0x5d, 0x4c, 0x2e, 0xda, 0x0b, 0xfb, 0x9e,
- 0x1c, 0xc3, 0x60, 0x90, 0x08, 0xca, 0x37, 0x81, 0xa9, 0x88, 0xba, 0x65,
- 0x7a, 0xfb, 0x40, 0x91, 0x1d, 0x3f, 0x1f, 0x10, 0x75, 0x19, 0xab, 0x8c,
- 0xe2, 0x65, 0x55, 0xf2, 0xf2, 0xfd, 0xc5, 0xe9, 0x8a, 0xa4, 0x8e, 0x11,
- 0x56, 0x81, 0xa6, 0xab, 0x77, 0x91, 0x81, 0x8e, 0xa4, 0x4a, 0xce, 0xd3,
- 0xeb, 0xac, 0xe7, 0xb3, 0xba, 0xa8, 0xb2, 0x88, 0x09, 0x10, 0x1f, 0x44,
- 0xcc, 0x53, 0xe4, 0xd3, 0x48, 0x93, 0x18, 0x77, 0x51, 0x6a, 0x3f, 0x15,
- 0xe3, 0x6a, 0x96, 0xca, 0xec, 0x2d, 0x2b, 0x54, 0x8b, 0xfe, 0x21, 0x5a,
- 0x8b, 0x41, 0x7c, 0x42, 0x6d, 0x32, 0x2e, 0x07, 0xa8, 0xa2, 0x00, 0x11,
- 0xaa, 0x85, 0xf6, 0xbe, 0x20, 0x37, 0x7d, 0xcf, 0x23, 0xa0, 0x1a, 0x64,
- 0x31, 0x5e, 0x65, 0x9e, 0x0a, 0xa6, 0x0e, 0xb2, 0x6e, 0x25, 0x76, 0xf9,
- 0xb7, 0xdc, 0xfc, 0x75, 0xa6, 0x41, 0xa2, 0x8c, 0x48, 0xd7, 0xea, 0x48,
- 0x15, 0x52, 0x9c, 0x61, 0x4a, 0x71, 0x2f, 0x39, 0xd6, 0x91, 0x26, 0xa7,
- 0xd2, 0xbf, 0x03, 0x89, 0xc8, 0xb0, 0x22, 0x64, 0xbb, 0x26, 0x61, 0x73,
- 0xc5, 0xbb, 0xc7, 0x06, 0x9b, 0xce, 0x88, 0xe0, 0xdd, 0x7a, 0xb2, 0x68,
- 0x9c, 0xd3, 0x92, 0x48, 0xc1, 0xa9, 0x3f, 0x69, 0x61, 0x9d, 0xce, 0xad,
- 0x95, 0xfd, 0xdd, 0x19, 0x88, 0x5c, 0xa0, 0xe8, 0xb0, 0x2f, 0x55, 0x0b,
- 0x06, 0x66, 0x77, 0x14, 0x92, 0xad, 0xe7, 0x2d, 0xab, 0xb7, 0xf7, 0xfe,
- 0xa3, 0x1f, 0x25, 0xb2, 0x5e, 0x41, 0xbe, 0xe7, 0x75, 0xb7, 0x01, 0xc6,
- 0x19, 0x1b, 0xe6, 0xac, 0xdf, 0xe1, 0xd2, 0x76, 0x79, 0x3d, 0x72, 0x5f,
- 0x46, 0x7d, 0x8b, 0x03, 0x2f, 0x4e, 0x9d, 0x1c, 0x71, 0x86, 0xc9, 0xe0,
- 0x75, 0x6e, 0xee, 0x91, 0x9a, 0xa9, 0x12, 0xd8, 0x31, 0xc0, 0x58, 0x5c,
- 0x7b, 0x10, 0x93, 0xb0, 0x5a, 0x8a, 0xc6, 0x53, 0x80, 0xa4, 0xb3, 0xaf,
- 0xd8, 0xe8, 0x8e, 0xd9, 0x13, 0xab, 0x59, 0xb5, 0x94, 0x1a, 0xcf, 0x29,
- 0x0d, 0xa9, 0xf3, 0x5a, 0x48, 0x71, 0x53, 0xfc, 0x5b, 0xce, 0x87, 0xb9,
- 0x15, 0x22, 0xf3, 0xa3, 0x0c, 0x06, 0x80, 0xf1, 0x38, 0x5e, 0x01, 0xa9,
- 0x2a, 0x10, 0x98, 0x9b, 0x96, 0x9c, 0x48, 0xf3, 0x56, 0xba, 0x7e, 0x60,
- 0xd3, 0x25, 0x4b, 0xed, 0xce, 0x31, 0x16, 0xe6, 0xdd, 0xe1, 0x14, 0x9a,
- 0x89, 0x69, 0x78, 0xd8, 0xf1, 0x8c, 0x2b, 0x2d, 0xfd, 0x0a, 0x94, 0x61,
- 0x6b, 0x54, 0xcd, 0x8d, 0x46, 0xe3, 0x65, 0xa1, 0x28, 0x8a, 0x50, 0x94,
- 0x92, 0x89, 0x1e, 0x8b, 0xe9, 0x03, 0x50, 0x64, 0x9e, 0xf0, 0xee, 0x41,
- 0x06, 0x90, 0x24, 0x7f, 0x1c, 0x38, 0x52, 0xf0, 0xad, 0xfb, 0xcc, 0xe8,
- 0xd8, 0x96, 0x9f, 0x43, 0x8d, 0xa9, 0x48, 0x8e, 0x4a, 0xc2, 0x05, 0xaf,
- 0xea, 0x16, 0xd3, 0x31, 0xcc, 0x10, 0x2f, 0x06, 0xc9, 0x53, 0x6e, 0x34,
- 0x01, 0xa2, 0xd5, 0x5d, 0x16, 0xd9, 0x27, 0xa2, 0x7a, 0x5c, 0xdd, 0x5c,
- 0xa8, 0x68, 0xff, 0x70, 0x78, 0xf1, 0xee, 0xe4, 0xdd, 0x37, 0x07, 0xc9,
- 0xf1, 0xa7, 0xac, 0x9a, 0x50, 0x71, 0xc6, 0xbf, 0x2e, 0xa7, 0xf9, 0x04,
- 0x82, 0x42, 0x6a, 0xde, 0xf9, 0xb9, 0x44, 0xc6, 0x14, 0xc8, 0xc4, 0xcb,
- 0x4a, 0x97, 0x6e, 0x20, 0xdf, 0x05, 0x8c, 0x4a, 0x5c, 0x96, 0xc6, 0x92,
- 0x2a, 0xaf, 0x97, 0xde, 0xf6, 0x99, 0x70, 0x95, 0x1e, 0x04, 0x0c, 0x10,
- 0x4d, 0xbd, 0x91, 0xb9, 0x26, 0xd7, 0x6b, 0xf2, 0xfa, 0xf4, 0x34, 0xe4,
- 0xd8, 0x43, 0xc9, 0x48, 0xee, 0x3e, 0x27, 0x24, 0xa1, 0x09, 0xb3, 0xf9,
- 0xeb, 0x7c, 0xcc, 0xb0, 0x27, 0x52, 0x01, 0x48, 0xda, 0xb4, 0x44, 0x1e,
- 0x7c, 0x2b, 0xa6, 0x2b, 0xdd, 0x45, 0x06, 0x4e, 0x16, 0x68, 0x45, 0xac,
- 0x70, 0x5e, 0x4d, 0x61, 0x10, 0x19, 0x19, 0x59, 0x5e, 0x35, 0xa4, 0x23,
- 0xb5, 0x6e, 0xd3, 0x36, 0xc9, 0xfd, 0xda, 0x48, 0xc2, 0x0d, 0x9b, 0x3a,
- 0xad, 0x0c, 0xef, 0x89, 0xad, 0x2b, 0x4d, 0x97, 0x2e, 0x2b, 0x87, 0x28,
- 0x8f, 0x10, 0x0b, 0xa3, 0x4d, 0xb3, 0xd4, 0x56, 0x7c, 0xac, 0x49, 0x5e,
- 0x86, 0x02, 0xe3, 0x2e, 0xab, 0x32, 0x57, 0xa5, 0x1d, 0xb9, 0x4e, 0x46,
- 0xdc, 0x0d, 0x93, 0x51, 0x69, 0x9e, 0x0f, 0xb5, 0x2c, 0x5b, 0x44, 0xa8,
- 0x55, 0x91, 0x14, 0xdd, 0x71, 0x40, 0x2f, 0x94, 0x57, 0x40, 0x74, 0xae,
- 0x3d, 0xde, 0x48, 0x09, 0x43, 0xda, 0xff, 0xe3, 0xcc, 0x2a, 0x15, 0xf7,
- 0x1a, 0xff, 0xa1, 0x4d, 0xd2, 0x1b, 0x18, 0x81, 0xda, 0x43, 0x69, 0x18,
- 0x2a, 0xac, 0xe8, 0xb5, 0xf4, 0x40, 0x79, 0x30, 0x1f, 0x66, 0xdd, 0x1d,
- 0xf0, 0x03, 0x45, 0x57, 0xd4, 0xf2, 0xf4, 0xdc, 0xa7, 0x52, 0xfa, 0xc2,
- 0xc6, 0x54, 0x59, 0x26, 0x11, 0x2b, 0x42, 0xd6, 0x04, 0xa1, 0xf2, 0x33,
- 0x5b, 0xd5, 0x08, 0x8f, 0xf9, 0x09, 0x7d, 0xfe, 0xeb, 0x72, 0xe3, 0xf4,
- 0x9d, 0x87, 0x81, 0xf4, 0x82, 0x20, 0xa9, 0xcc, 0xd8, 0x79, 0xc3, 0xed,
- 0x18, 0xd0, 0x47, 0xe4, 0x22, 0x5f, 0x49, 0xb5, 0x51, 0xaf, 0xa7, 0x0f,
- 0x4a, 0xbe, 0xa1, 0x16, 0x82, 0xea, 0xde, 0xd2, 0xb4, 0xa0, 0xbe, 0x57,
- 0x9c, 0x9b, 0x83, 0x30, 0x49, 0xbd, 0x92, 0xdf, 0x5e, 0x5c, 0x13, 0x3a,
- 0x01, 0x92, 0x27, 0xc3, 0xe6, 0x3c, 0x2a, 0xb1, 0xd5, 0x42, 0x58, 0x62,
- 0x37, 0x79, 0x71, 0x5b, 0x7e, 0xe4, 0x1b, 0x5f, 0x72, 0x33, 0x83, 0x14,
- 0x5f, 0x9f, 0x2b, 0x2b, 0x8a, 0x5a, 0x53, 0x62, 0x04, 0xee, 0x3b, 0xdf,
- 0x58, 0x1e, 0x10, 0xde, 0x0c, 0x46, 0x42, 0x32, 0x96, 0x53, 0xde, 0x5e,
- 0x4f, 0x9d, 0xe6, 0xec, 0x59, 0xea, 0x6b, 0x8d, 0xcc, 0x24, 0x9b, 0x51,
- 0x09, 0x6f, 0x47, 0x2f, 0x6f, 0xe9, 0x72, 0xe4, 0xb6, 0x01, 0x1a, 0x55,
- 0xa3, 0x98, 0xab, 0x6f, 0x92, 0x61, 0xb7, 0x08, 0x57, 0xc7, 0x90, 0x45,
- 0x04, 0x94, 0x63, 0x4f, 0x93, 0x9b, 0xb2, 0x8c, 0x5e, 0xdc, 0xee, 0x0e,
- 0x81, 0x52, 0x83, 0xcc, 0xdd, 0x15, 0x1a, 0x84, 0xa5, 0x39, 0x71, 0x81,
- 0xc8, 0x00, 0x71, 0x6c, 0x49, 0x91, 0x44, 0x1f, 0xf4, 0x18, 0xc9, 0xda,
- 0xb7, 0x1b, 0x77, 0x28, 0xb8, 0x9b, 0x63, 0x30, 0x07, 0xfe, 0x5d, 0xe7,
- 0x3e, 0x6e, 0x5a, 0x39, 0x9e, 0xfe, 0xa4, 0x44, 0x2f, 0x3b, 0x46, 0xc4,
- 0x39, 0x9c, 0x24, 0xf6, 0x0d, 0x0c, 0xa7, 0xa2, 0x1d, 0xd6, 0x40, 0x3f,
- 0xf3, 0x06, 0x02, 0xe4, 0x8f, 0xfb, 0xbb, 0xab, 0x84, 0x3c, 0x2b, 0xb2,
- 0x5a, 0x36, 0x81, 0x8e, 0xa3, 0x35, 0xd0, 0xf9, 0x22, 0x74, 0xf9, 0xb1,
- 0x74, 0x81, 0x2c, 0x17, 0x09, 0x0a, 0x73, 0x50, 0x59, 0x97, 0x15, 0xf3,
- 0x3f, 0xfc, 0x67, 0x54, 0xf3, 0x71, 0xf2, 0xeb, 0xc2, 0x5b, 0x63, 0x6a,
- 0x29, 0x5a, 0xaf, 0x81, 0x65, 0x89, 0xe7, 0x2e, 0xf1, 0xb4, 0x76, 0xa7,
- 0x37, 0xc0, 0xba, 0x87, 0xb0, 0x63, 0x34, 0x42, 0x1e, 0x8a, 0x64, 0x63,
- 0xd7, 0xce, 0x17, 0x11, 0x81, 0x65, 0x0f, 0x81, 0x60, 0x7e, 0xe9, 0x96,
- 0xb2, 0xb0, 0x5d, 0x8d, 0x3d, 0x87, 0x9b, 0xd6, 0x93, 0xa5, 0x6c, 0x92,
- 0xa7, 0x02, 0x20, 0xc5, 0x9c, 0xd0, 0xb7, 0xda, 0x57, 0x23, 0xb0, 0x69,
- 0x83, 0xa8, 0xcf, 0x5f, 0x6b, 0x1a, 0x86, 0x09, 0x7e, 0xb0, 0xa6, 0x1c,
- 0x4f, 0x6d, 0x8f, 0x5f, 0xef, 0x25, 0x5b, 0x24, 0x57, 0xb7, 0x55, 0x7b,
- 0x0d, 0xe3, 0xfd, 0xae, 0x52, 0x2e, 0x04, 0x70, 0x5a, 0x07, 0x60, 0x5e,
- 0xe8, 0xaf, 0x89, 0x31, 0xf4, 0x2a, 0xa3, 0x02, 0x2c, 0x67, 0x69, 0x45,
- 0xb2, 0xdd, 0x7c, 0xf2, 0x6a, 0x39, 0x8b, 0x99, 0x3a, 0x38, 0xdb, 0xb6,
- 0xc0, 0x58, 0x5e, 0xd7, 0x4b, 0xa5, 0xf9, 0x75, 0xe9, 0xf0, 0x42, 0x8f,
- 0x34, 0x33, 0x3d, 0x02, 0x57, 0xef, 0x8c, 0x8b, 0xb0, 0x44, 0xf7, 0x2e,
- 0x1c, 0xc4, 0x5c, 0x95, 0x53, 0x54, 0x4c, 0xb6, 0xa4, 0xb8, 0x6f, 0x55,
- 0x76, 0x4d, 0x5d, 0x92, 0x1d, 0xbe, 0x40, 0x49, 0x24, 0x52, 0xa4, 0xe8,
- 0xba, 0xea, 0x34, 0xd7, 0x3b, 0x3b, 0xbf, 0x3c, 0x39, 0x7b, 0x37, 0x4a,
- 0xfe, 0xad, 0xb7, 0x36, 0x41, 0xa9, 0x4d, 0xa6, 0xf8, 0x63, 0xdf, 0xad,
- 0x49, 0xf2, 0x52, 0xbc, 0x0d, 0xab, 0xec, 0x63, 0x4f, 0x87, 0x9f, 0x98,
- 0xfb, 0xdb, 0x08, 0x58, 0x7d, 0x53, 0x48, 0x68, 0x64, 0xb1, 0x3a, 0xbc,
- 0x39, 0x81, 0xbe, 0xec, 0xa7, 0xa7, 0xfa, 0x76, 0x34, 0x4b, 0x7b, 0x67,
- 0xb6, 0x74, 0x5a, 0x5f, 0x21, 0x83, 0x21, 0xfb, 0x9c, 0xfd, 0x62, 0x81,
- 0x2a, 0xf2, 0x96, 0x2b, 0x1d, 0x8e, 0x07, 0xb7, 0xa4, 0x56, 0x2e, 0xab,
- 0x5a, 0x75, 0x88, 0x26, 0xfc, 0xe6, 0xf8, 0x72, 0x7b, 0x98, 0x5c, 0x68,
- 0x2e, 0xb7, 0xe2, 0x53, 0xad, 0xe2, 0x93, 0x5a, 0xdd, 0x4c, 0xa8, 0x2b,
- 0xc5, 0x93, 0x61, 0xf4, 0xe7, 0x59, 0x5a, 0x44, 0x93, 0xb0, 0x48, 0xa7,
- 0xa5, 0x12, 0xbe, 0x24, 0x89, 0x55, 0x26, 0xab, 0x0f, 0xc5, 0x23, 0x4a,
- 0x67, 0x0a, 0x89, 0xf3, 0xf7, 0x97, 0x68, 0xf0, 0xf5, 0xf1, 0xe9, 0xf1,
- 0xe5, 0x71, 0xd7, 0x7a, 0x1f, 0x33, 0xed, 0x16, 0xb2, 0x6f, 0x9a, 0x6c,
- 0x72, 0x53, 0x94, 0xb3, 0xf2, 0x3a, 0x97, 0x22, 0x66, 0xc9, 0x0f, 0xd9,
- 0xf8, 0xf5, 0xe1, 0xf7, 0xa4, 0x51, 0x90, 0xdf, 0xe9, 0xfc, 0xe2, 0xec,
- 0xfc, 0xcd, 0xc9, 0xbb, 0xd7, 0xfd, 0xe4, 0xe8, 0xec, 0xfc, 0xcf, 0xfd,
- 0xe4, 0xed, 0xd9, 0xf7, 0xc7, 0x11, 0xd4, 0x35, 0xf1, 0xd6, 0x46, 0x8a,
- 0x28, 0x4b, 0x31, 0x21, 0xbe, 0xd0, 0xd8, 0xfc, 0x46, 0xed, 0xd2, 0xce,
- 0x45, 0x42, 0x69, 0x09, 0x75, 0x29, 0x12, 0xd7, 0xcc, 0x5d, 0x3f, 0xf9,
- 0xf6, 0xf8, 0xf0, 0x75, 0x3f, 0x20, 0x2d, 0x1d, 0xf1, 0xa8, 0x68, 0x74,
- 0x76, 0xc8, 0xa0, 0xba, 0x64, 0xfb, 0x03, 0x5a, 0x02, 0x87, 0xba, 0xf8,
- 0xc8, 0x9a, 0x0d, 0x8b, 0xba, 0x2f, 0xd3, 0x55, 0x08, 0x0a, 0xa1, 0xc8,
- 0x5d, 0x59, 0x36, 0xb0, 0x95, 0x09, 0x02, 0x85, 0x4d, 0x55, 0xed, 0x36,
- 0xb7, 0x04, 0xf0, 0xfe, 0x36, 0xdd, 0x4f, 0x97, 0x3c, 0xce, 0x6d, 0xd0,
- 0x6f, 0x95, 0x9f, 0x81, 0x40, 0x62, 0x17, 0x64, 0x2a, 0x55, 0x97, 0x40,
- 0x4f, 0x4f, 0x20, 0xa0, 0x11, 0x53, 0x7b, 0x2a, 0xa5, 0x5d, 0xa4, 0x68,
- 0xbb, 0xaf, 0x28, 0x94, 0x4a, 0xa1, 0x2a, 0x34, 0x13, 0x34, 0x85, 0xee,
- 0x9b, 0x52, 0x46, 0xe0, 0x47, 0xfe, 0x71, 0x04, 0x77, 0xcd, 0x65, 0x50,
- 0xae, 0xcc, 0xe6, 0xcc, 0x18, 0x5d, 0x85, 0x75, 0x72, 0xee, 0x81, 0x64,
- 0x70, 0xa2, 0xce, 0x89, 0x75, 0x6a, 0x96, 0x1c, 0x18, 0x71, 0xd0, 0x80,
- 0xd6, 0x42, 0x1d, 0x57, 0x6d, 0x39, 0x61, 0x21, 0x5d, 0x72, 0xf6, 0xae,
- 0x02, 0xd9, 0x06, 0x3a, 0x4c, 0x5d, 0xe7, 0xbe, 0xad, 0x13, 0x29, 0xce,
- 0x9c, 0x2b, 0xc7, 0xf5, 0xc7, 0x68, 0xdd, 0xb6, 0x5f, 0x2b, 0x2c, 0x0d,
- 0xce, 0x81, 0x01, 0x23, 0x4d, 0x0a, 0x71, 0x8d, 0x52, 0x08, 0x6e, 0xc0,
- 0xf6, 0xb4, 0x8f, 0x10, 0xb6, 0xc5, 0xe3, 0x34, 0xed, 0x58, 0xba, 0x10,
- 0xaf, 0x75, 0xeb, 0xea, 0x60, 0xf9, 0x3e, 0xbd, 0x27, 0xbb, 0x9f, 0x9c,
- 0xb7, 0x9d, 0x34, 0x8a, 0x3a, 0x19, 0x08, 0x87, 0xe8, 0xdc, 0x5c, 0x85,
- 0xa1, 0x9f, 0x69, 0xeb, 0xcd, 0x0a, 0xe1, 0xe8, 0xfb, 0x6f, 0x65, 0x31,
- 0x3c, 0x74, 0xf8, 0xe9, 0x89, 0x39, 0x12, 0x91, 0x34, 0xfe, 0x69, 0x89,
- 0x82, 0x88, 0x80, 0x1c, 0xe4, 0x7a, 0x9d, 0x50, 0x5b, 0xe1, 0x87, 0xa9,
- 0x40, 0x68, 0xf4, 0xcb, 0xa8, 0x1c, 0xfa, 0xc0, 0xa7, 0x83, 0x35, 0xbb,
- 0x38, 0xbe, 0xbc, 0x18, 0x26, 0x5b, 0x3e, 0x43, 0xdd, 0xf3, 0xe1, 0x6e,
- 0x18, 0xbe, 0xa1, 0xe2, 0xa4, 0xdb, 0x89, 0xf7, 0x59, 0xf7, 0x5d, 0xd4,
- 0x2d, 0x5d, 0xff, 0xdd, 0x10, 0x77, 0xec, 0xb1, 0x52, 0xec, 0xc6, 0xbe,
- 0xe7, 0x17, 0x40, 0x6d, 0x8d, 0x92, 0x7e, 0xb1, 0xe6, 0x6b, 0xdf, 0x1e,
- 0x9f, 0x9e, 0x87, 0xa3, 0xfc, 0xfe, 0xe2, 0xcd, 0x9f, 0xdb, 0xa3, 0x7c,
- 0xf2, 0x34, 0xf2, 0xd5, 0xdf, 0xd2, 0xb5, 0x9e, 0xd5, 0xe5, 0xcc, 0xe8,
- 0x2c, 0x48, 0x2e, 0x41, 0x6e, 0xc9, 0x81, 0xb9, 0x04, 0x08, 0x9b, 0xfe,
- 0x65, 0xc8, 0xac, 0x0a, 0xe7, 0x0c, 0x45, 0xba, 0x64, 0x8c, 0x89, 0x3c,
- 0x2a, 0x50, 0x4c, 0xcf, 0xfe, 0x46, 0x0e, 0x0f, 0x92, 0x96, 0x28, 0x74,
- 0xb1, 0x48, 0xf3, 0xc0, 0x0f, 0xfd, 0xde, 0xe2, 0xab, 0x5d, 0xd2, 0x19,
- 0xe4, 0x8c, 0xd8, 0x6d, 0x33, 0x7b, 0x42, 0xb7, 0xea, 0x6d, 0xa9, 0xaa,
- 0x96, 0x26, 0x2b, 0xa3, 0xfb, 0xb6, 0x27, 0xb8, 0xee, 0xc8, 0x25, 0x0c,
- 0x2e, 0x17, 0xc2, 0x24, 0xd9, 0x2b, 0xb6, 0xd0, 0x6b, 0x43, 0x06, 0x3d,
- 0xb5, 0x6f, 0x05, 0xf7, 0xac, 0x4d, 0xda, 0x3c, 0x92, 0x88, 0x3a, 0x6c,
- 0x2f, 0xdc, 0x25, 0x28, 0x7f, 0x97, 0x35, 0x93, 0x1d, 0xae, 0x6e, 0x1f,
- 0x54, 0x28, 0x88, 0xb9, 0xbd, 0xca, 0xa2, 0x03, 0xa7, 0xa5, 0xeb, 0x81,
- 0x5d, 0xcf, 0x7e, 0x2e, 0x8e, 0xab, 0x9b, 0xe0, 0x29, 0xea, 0xd4, 0x8f,
- 0x48, 0xf8, 0xdd, 0x2f, 0x53, 0xe0, 0xf2, 0x58, 0x94, 0xd6, 0xba, 0xb5,
- 0xde, 0x78, 0x61, 0xc8, 0x65, 0xaf, 0x91, 0x37, 0x17, 0x71, 0xaa, 0xb0,
- 0x54, 0xd6, 0x1d, 0x64, 0x39, 0x52, 0xaf, 0x5a, 0x1e, 0x17, 0xf5, 0xcf,
- 0xe9, 0xb4, 0x49, 0x3f, 0xba, 0x1a, 0x3c, 0xa9, 0xd7, 0xe8, 0x04, 0xf3,
- 0x9d, 0xaa, 0xf9, 0xbe, 0x40, 0xe5, 0xeb, 0x78, 0x01, 0x09, 0xd1, 0x7a,
- 0xb5, 0x61, 0x12, 0xed, 0x6d, 0x9a, 0xea, 0xf6, 0x80, 0xd4, 0xf9, 0x3e,
- 0x78, 0x1a, 0x06, 0x10, 0xf2, 0xc5, 0xed, 0x53, 0x78, 0x6c, 0x9e, 0xf7,
- 0xf9, 0x5f, 0xcf, 0x5d, 0x6e, 0x86, 0x67, 0x95, 0xb0, 0xde, 0xce, 0x6a,
- 0xee, 0xc9, 0xb9, 0x66, 0x99, 0x06, 0xec, 0xca, 0x1e, 0x5d, 0x28, 0xf7,
- 0x52, 0x35, 0x76, 0xf3, 0x8e, 0xf6, 0x96, 0x64, 0xa0, 0x39, 0xac, 0x7f,
- 0x19, 0x57, 0x54, 0xfa, 0xab, 0xa9, 0x7f, 0x5e, 0x97, 0xd3, 0x6b, 0x94,
- 0xdc, 0xcf, 0x86, 0xbb, 0x6b, 0x49, 0xd1, 0x5b, 0xf8, 0x5d, 0x67, 0xbf,
- 0x31, 0xcd, 0x4e, 0xc2, 0x3f, 0xe2, 0x09, 0x16, 0x2c, 0x69, 0xb8, 0x7f,
- 0x65, 0x87, 0xaf, 0x25, 0x6a, 0xde, 0x1b, 0x3e, 0x69, 0x4b, 0x82, 0xa6,
- 0xba, 0x47, 0x42, 0x8a, 0x31, 0xef, 0x23, 0x9b, 0xee, 0xc4, 0xd3, 0x0f,
- 0xf5, 0x4e, 0xe2, 0xe9, 0x23, 0x08, 0x02, 0x7e, 0x6c, 0x8e, 0xb2, 0x22,
- 0x50, 0x92, 0x63, 0xca, 0x99, 0xb9, 0x38, 0x7e, 0xf3, 0x7e, 0x74, 0xfc,
- 0x1a, 0xd4, 0x52, 0x5d, 0xd5, 0x93, 0xa2, 0x6e, 0x39, 0xed, 0x0b, 0xf6,
- 0x6e, 0x37, 0x25, 0x2b, 0x25, 0xd2, 0x91, 0x76, 0x7d, 0x19, 0x2e, 0xa7,
- 0x83, 0xad, 0xdc, 0x94, 0xc6, 0xb4, 0x0a, 0xb3, 0x1c, 0x58, 0x11, 0x90,
- 0x77, 0x7f, 0x01, 0xf7, 0x02, 0x8f, 0x7a, 0x9a, 0x51, 0xe5, 0x85, 0x97,
- 0x8c, 0xa6, 0x08, 0x24, 0xdf, 0x5b, 0x8b, 0x6b, 0x36, 0x9b, 0x7b, 0x96,
- 0x65, 0x0b, 0x0d, 0x1e, 0xa7, 0xf3, 0x72, 0x59, 0xb0, 0x77, 0xcd, 0xac,
- 0x90, 0xfa, 0x94, 0xe0, 0xc1, 0x44, 0xbb, 0x7c, 0xf9, 0x47, 0x47, 0x4e,
- 0x0e, 0x14, 0x72, 0x1c, 0x10, 0x84, 0x59, 0x23, 0x68, 0x24, 0xdf, 0xdc,
- 0xb4, 0x28, 0xdb, 0xfe, 0x56, 0xde, 0xb4, 0xb5, 0xc3, 0x15, 0x55, 0x44,
- 0x50, 0x78, 0xce, 0x28, 0xd7, 0xdc, 0x97, 0x74, 0x76, 0x5d, 0x56, 0xa6,
- 0xd1, 0xb9, 0xcd, 0xc0, 0xab, 0x00, 0x9f, 0xa9, 0xb7, 0xbb, 0x95, 0x7b,
- 0x02, 0x51, 0x35, 0xbb, 0xe7, 0x48, 0x6a, 0xc6, 0x49, 0xc9, 0x74, 0xcc,
- 0x78, 0x9a, 0x80, 0xa2, 0xa4, 0x18, 0x13, 0x8b, 0xc6, 0x91, 0xa4, 0x12,
- 0x63, 0x2e, 0x78, 0x06, 0xc3, 0x8d, 0xf8, 0xf7, 0xac, 0x2a, 0xbb, 0x0e,
- 0x01, 0x55, 0xfc, 0xb4, 0xe7, 0x7e, 0xc7, 0xff, 0x99, 0xa5, 0x3a, 0xf6,
- 0xf6, 0x63, 0x27, 0x60, 0x9e, 0x7e, 0x82, 0x9b, 0x63, 0xe5, 0x76, 0x10,
- 0xa7, 0x1f, 0x4d, 0x08, 0x3e, 0x2f, 0xd5, 0x9e, 0x88, 0x13, 0xbf, 0x49,
- 0xfc, 0x64, 0x0b, 0x06, 0xb9, 0xd8, 0xe5, 0x16, 0x3f, 0x48, 0x80, 0x26,
- 0xe2, 0x75, 0xb1, 0xbd, 0x86, 0xaf, 0x29, 0xa5, 0x61, 0x92, 0x05, 0xb0,
- 0xc5, 0x05, 0x09, 0xf0, 0xb9, 0x6d, 0xfa, 0xf1, 0xac, 0xa4, 0x48, 0x57,
- 0x6d, 0xfd, 0x27, 0x91, 0x3a, 0xa2, 0xa4, 0x64, 0x56, 0xb4, 0x0b, 0x81,
- 0xe4, 0xb2, 0x00, 0x0e, 0x70, 0xab, 0x23, 0x35, 0x29, 0x9f, 0x88, 0xd7,
- 0x5c, 0x4b, 0x6f, 0x60, 0x14, 0xfc, 0x66, 0x20, 0x48, 0xb4, 0x9d, 0x8c,
- 0x1b, 0xe8, 0xb7, 0x39, 0x04, 0xa5, 0xd3, 0x48, 0xfb, 0xe3, 0x3c, 0x91,
- 0x1b, 0xb8, 0x41, 0x25, 0xf1, 0x3b, 0x62, 0x5d, 0x73, 0x06, 0x3d, 0xb9,
- 0xab, 0x90, 0x49, 0x43, 0xe3, 0x81, 0xa1, 0x92, 0x16, 0x7e, 0x67, 0xb1,
- 0x02, 0xa6, 0x91, 0xbc, 0x9c, 0x22, 0x07, 0x87, 0x89, 0xe1, 0xd3, 0x90,
- 0x33, 0x80, 0x98, 0x33, 0xa4, 0x37, 0x9b, 0xe4, 0xee, 0xfa, 0x94, 0xcf,
- 0x97, 0x73, 0xbc, 0xde, 0x67, 0xa5, 0x61, 0x30, 0x47, 0x95, 0x25, 0x5d,
- 0xd6, 0x21, 0x82, 0xa5, 0x52, 0x2f, 0xa2, 0xbb, 0xf7, 0x6d, 0xe8, 0x12,
- 0xdb, 0xb6, 0x61, 0xf0, 0x08, 0xbd, 0xc5, 0x84, 0xd2, 0x58, 0xa8, 0xff,
- 0xe3, 0x3b, 0x34, 0x79, 0x69, 0x34, 0x83, 0x2f, 0x23, 0x31, 0xcd, 0x98,
- 0xf8, 0xc8, 0x6b, 0x01, 0xcd, 0x66, 0x53, 0xcf, 0x14, 0xe1, 0x1d, 0x47,
- 0x37, 0x3a, 0x2f, 0xd3, 0x4a, 0x19, 0xe5, 0x4a, 0xa9, 0xf0, 0xa7, 0x31,
- 0x50, 0xe7, 0x41, 0xe4, 0x8b, 0x49, 0xb6, 0x3c, 0xad, 0x1c, 0x7c, 0x4f,
- 0xcb, 0x45, 0x70, 0x8d, 0x2a, 0xeb, 0x00, 0x94, 0x20, 0x79, 0xdf, 0x7c,
- 0x7e, 0x57, 0xa0, 0x15, 0x62, 0x1f, 0x91, 0xdf, 0x55, 0x66, 0x59, 0x5d,
- 0x21, 0x6d, 0x66, 0xec, 0xb6, 0xc8, 0x23, 0x51, 0xd6, 0xb9, 0x45, 0x98,
- 0x16, 0x80, 0xc9, 0x60, 0x0e, 0xcc, 0x84, 0xc8, 0xda, 0xf5, 0x99, 0x76,
- 0x02, 0x60, 0xbf, 0xa7, 0x9f, 0x3e, 0x85, 0x97, 0xa5, 0x33, 0xa8, 0xb8,
- 0x0c, 0x2e, 0x5b, 0x5b, 0xcf, 0x3e, 0x75, 0xac, 0xad, 0x61, 0xbc, 0x58,
- 0x2d, 0x5f, 0x0d, 0x24, 0x1d, 0xc7, 0x25, 0x07, 0x71, 0x78, 0xb6, 0xd2,
- 0xc8, 0x3c, 0xb2, 0x50, 0xb8, 0x4b, 0xf3, 0x58, 0x39, 0x1a, 0x81, 0xf3,
- 0xd9, 0x22, 0x5e, 0x1a, 0x64, 0x33, 0x7f, 0x36, 0x37, 0x46, 0x77, 0xa4,
- 0x39, 0xd4, 0x09, 0xb2, 0x61, 0xe4, 0x69, 0xb9, 0x84, 0x0b, 0x34, 0x9c,
- 0x27, 0xfa, 0x0a, 0x4f, 0x3b, 0x9d, 0x26, 0x73, 0x55, 0xe5, 0xa8, 0x8b,
- 0xcc, 0x67, 0xba, 0x4e, 0xf6, 0xcc, 0xf4, 0xe7, 0xc5, 0x92, 0x30, 0x7d,
- 0x1e, 0xfd, 0xa0, 0xa5, 0x51, 0x89, 0x4c, 0xfb, 0x0c, 0x58, 0x51, 0xcd,
- 0xe8, 0xa6, 0x83, 0x57, 0x7b, 0xc1, 0x25, 0x3e, 0x1e, 0xa8, 0xbf, 0x61,
- 0x2b, 0xbf, 0xf9, 0x17, 0x6c, 0x4c, 0xed, 0xb4, 0x51, 0x3c, 0xb9, 0x52,
- 0xb3, 0x4f, 0x66, 0xb6, 0x99, 0xe0, 0xdd, 0xdd, 0x68, 0xee, 0x36, 0x1b,
- 0x7a, 0xbc, 0xc4, 0x11, 0xe8, 0x48, 0x4b, 0x7e, 0xdb, 0x72, 0x12, 0x10,
- 0x71, 0x65, 0x23, 0x67, 0x91, 0xd3, 0x89, 0x25, 0xda, 0xf8, 0xdf, 0xe0,
- 0x4c, 0xd7, 0x69, 0x3d, 0x1b, 0xe4, 0x5d, 0x31, 0x7e, 0x0c, 0x38, 0x9a,
- 0x05, 0x93, 0xd8, 0x5d, 0x68, 0x9a, 0x18, 0x1d, 0x8e, 0x4e, 0x3b, 0x2c,
- 0x46, 0x6b, 0xd9, 0x14, 0xf7, 0xda, 0x1a, 0xcf, 0x6f, 0x40, 0x98, 0xa6,
- 0xc1, 0x19, 0xba, 0x47, 0x18, 0x6e, 0x41, 0x78, 0x60, 0x50, 0xf0, 0xad,
- 0xaa, 0x08, 0x53, 0x1f, 0xe0, 0xe3, 0x8e, 0x58, 0x2e, 0xe8, 0x0a, 0xf3,
- 0xf1, 0x00, 0xf6, 0xcf, 0x85, 0x7b, 0xd8, 0x7b, 0x1a, 0xe1, 0xec, 0x99,
- 0xee, 0x08, 0x86, 0xe4, 0xa1, 0x40, 0x2c, 0x73, 0xb0, 0xe9, 0xc8, 0x47,
- 0x64, 0x0f, 0x50, 0xfd, 0xa9, 0x41, 0x8c, 0x7e, 0xc6, 0xe2, 0xca, 0x44,
- 0x95, 0xac, 0xf1, 0x34, 0xe1, 0x49, 0xd8, 0xb1, 0xe6, 0x09, 0x2a, 0x6a,
- 0xc3, 0xc1, 0x32, 0x88, 0xcf, 0x34, 0x64, 0x3f, 0xe5, 0x68, 0xdd, 0x15,
- 0x57, 0x0f, 0xd2, 0x1e, 0x78, 0x6d, 0x76, 0x05, 0x64, 0xce, 0x9c, 0xb8,
- 0x55, 0xf2, 0xb7, 0x65, 0x6e, 0x6e, 0x27, 0xca, 0xdc, 0x19, 0x26, 0xaf,
- 0x19, 0x57, 0x24, 0x25, 0x78, 0xb8, 0x1e, 0x17, 0x8a, 0x76, 0x31, 0x70,
- 0x4d, 0x14, 0x44, 0xd3, 0x81, 0x20, 0x88, 0x62, 0x3a, 0x84, 0x94, 0xb0,
- 0xb7, 0x9c, 0x2f, 0x7b, 0x44, 0xdd, 0x9e, 0x9b, 0x93, 0x0e, 0xee, 0x14,
- 0xc9, 0xab, 0x03, 0x9c, 0x44, 0xc2, 0xce, 0x0a, 0x06, 0x07, 0xde, 0xb1,
- 0xfe, 0x18, 0xda, 0x9b, 0xfd, 0x56, 0xe1, 0x05, 0xd8, 0x5f, 0x62, 0x03,
- 0x34, 0x54, 0xb7, 0xa3, 0x48, 0x67, 0x3b, 0x75, 0x33, 0x25, 0xe9, 0xb7,
- 0x2c, 0x66, 0xd4, 0x4f, 0x6a, 0x49, 0x8b, 0xcc, 0x74, 0xe7, 0xa6, 0x89,
- 0x91, 0x9c, 0xf0, 0x0a, 0xb5, 0x96, 0x48, 0x42, 0xc0, 0xab, 0x02, 0x85,
- 0x1e, 0x08, 0x20, 0x24, 0xb3, 0xf1, 0x67, 0x8b, 0xec, 0x50, 0x1e, 0x2f,
- 0xe6, 0xb2, 0xb5, 0x6e, 0xeb, 0x72, 0xee, 0x6f, 0x69, 0xbd, 0xcc, 0x46,
- 0x1b, 0x97, 0xb5, 0x32, 0x21, 0x9a, 0x41, 0x9a, 0xd7, 0x5b, 0xe7, 0x09,
- 0xd4, 0x51, 0x0f, 0xb2, 0x73, 0x44, 0xca, 0x47, 0x3e, 0x7d, 0x90, 0x96,
- 0x83, 0xdf, 0x08, 0x8b, 0x24, 0xfe, 0x62, 0x62, 0x8e, 0x38, 0xf3, 0x10,
- 0x19, 0x92, 0x16, 0x3d, 0x27, 0xa0, 0x98, 0x16, 0x4b, 0x05, 0xeb, 0x99,
- 0xf7, 0x91, 0xa2, 0x38, 0x66, 0x33, 0x2d, 0x25, 0xd9, 0x7e, 0x32, 0x33,
- 0xc2, 0x3e, 0x62, 0x6b, 0x6a, 0x41, 0x24, 0xa2, 0xaf, 0xea, 0x77, 0xc5,
- 0x69, 0xbd, 0x24, 0xd5, 0x63, 0xb6, 0xa4, 0x2f, 0x33, 0xf3, 0x93, 0x65,
- 0x1e, 0xd2, 0x1c, 0xe1, 0x28, 0x5b, 0x97, 0xe5, 0xf7, 0xa0, 0x33, 0xea,
- 0x11, 0x97, 0x2d, 0xb5, 0x7c, 0x9a, 0x72, 0x7a, 0x75, 0xc9, 0xaf, 0x86,
- 0x2b, 0x7a, 0x47, 0x06, 0x61, 0xdf, 0x2f, 0x09, 0xea, 0x5b, 0xdf, 0x94,
- 0x0f, 0xa1, 0xdd, 0x69, 0x97, 0xd9, 0x8c, 0xb1, 0x31, 0xd9, 0xb8, 0x62,
- 0xab, 0x67, 0x7a, 0x77, 0x68, 0xe2, 0x2c, 0x30, 0xca, 0x3e, 0x7b, 0x17,
- 0x4a, 0x7f, 0x76, 0x07, 0xfb, 0xa8, 0x3a, 0xa0, 0x2b, 0x2b, 0x7f, 0x86,
- 0x44, 0x1d, 0xb1, 0x4a, 0xa0, 0xbe, 0x63, 0xd9, 0x1c, 0x08, 0xbf, 0xee,
- 0xe7, 0x3f, 0xf3, 0x3e, 0x7c, 0xd6, 0xae, 0x8f, 0x21, 0x54, 0x6c, 0xbf,
- 0xea, 0x40, 0xa5, 0x8f, 0x3b, 0x51, 0x2b, 0x80, 0xe9, 0xff, 0x77, 0x9e,
- 0xa8, 0x34, 0x79, 0xdc, 0x99, 0x4a, 0xbb, 0x87, 0x2a, 0x52, 0xbb, 0x75,
+ 0xa3, 0x8e, 0xfa, 0xf3, 0xb3, 0xf3, 0x27, 0xdb, 0x36, 0x63, 0x87, 0x73,
+ 0x1d, 0x24, 0x63, 0xcf, 0x52, 0xd9, 0xd8, 0x64, 0x3e, 0xe5, 0x09, 0x04,
+ 0x6c, 0x3c, 0xf4, 0x2d, 0x4e, 0x32, 0x25, 0x76, 0xc7, 0xf7, 0xe0, 0x95,
+ 0x75, 0xe0, 0x78, 0xaf, 0x32, 0x8f, 0x3b, 0x96, 0x8e, 0xba, 0x67, 0x23,
+ 0xcc, 0x78, 0x16, 0xab, 0x43, 0x12, 0x86, 0x07, 0x80, 0xa3, 0x27, 0x6d,
+ 0x7a, 0x6b, 0x82, 0x3c, 0x76, 0x3a, 0xd9, 0x4e, 0xd2, 0xf4, 0xc2, 0xc0,
+ 0x02, 0xfb, 0x76, 0x0f, 0xc2, 0x6b, 0xac, 0xe8, 0x7c, 0xbe, 0x6f, 0x6d,
+ 0x10, 0x8d, 0x5c, 0x5a, 0xb4, 0x6d, 0x99, 0xdb, 0x6f, 0xb8, 0xb2, 0x38,
+ 0xa9, 0x65, 0x58, 0x6e, 0xa9, 0xcd, 0x52, 0x44, 0x23, 0x4d, 0xde, 0x9d,
+ 0x8e, 0x2e, 0x7d, 0x4f, 0x3f, 0x1c, 0xba, 0x01, 0x02, 0xaa, 0xcd, 0x39,
+ 0xe2, 0xc5, 0x8b, 0x4f, 0x4f, 0x46, 0x97, 0xc3, 0x18, 0x77, 0xf0, 0x41,
+ 0x32, 0x2a, 0xe7, 0x7e, 0x39, 0xd4, 0x5a, 0xca, 0x55, 0x82, 0xda, 0x81,
+ 0xc3, 0x17, 0xea, 0xcd, 0xcf, 0x2b, 0xdf, 0xd7, 0x1f, 0xec, 0x54, 0xea,
+ 0xe2, 0x17, 0x8c, 0x6e, 0x12, 0x64, 0x94, 0x3a, 0xf2, 0xeb, 0xe5, 0x78,
+ 0xe0, 0x91, 0xfc, 0xb0, 0xbe, 0x83, 0x8a, 0x11, 0x66, 0xf7, 0x9a, 0x1b,
+ 0xea, 0x63, 0x68, 0x08, 0x6c, 0xc9, 0x7e, 0xe2, 0x8d, 0x24, 0x04, 0x4d,
+ 0x2d, 0x8f, 0xe4, 0x24, 0xc9, 0x40, 0xf9, 0x06, 0x5f, 0x00, 0x3d, 0xfd,
+ 0xa8, 0x4d, 0x45, 0x13, 0xd1, 0x99, 0x47, 0x29, 0x31, 0xd4, 0x06, 0x3a,
+ 0x52, 0x64, 0xc5, 0x63, 0x25, 0x59, 0x17, 0x4c, 0xf2, 0x76, 0x21, 0xf4,
+ 0x93, 0x1a, 0x75, 0x6a, 0x0b, 0xb6, 0x75, 0x6a, 0x63, 0x7a, 0xc3, 0x2d,
+ 0x60, 0x7b, 0xbd, 0x8a, 0x83, 0x2e, 0x9f, 0x32, 0x47, 0x53, 0xdd, 0x26,
+ 0x69, 0xe2, 0x34, 0x3c, 0x12, 0x39, 0x4c, 0x46, 0x4f, 0xd6, 0xeb, 0x8a,
+ 0x95, 0x64, 0xbf, 0x49, 0x0b, 0xd2, 0x32, 0xf8, 0x81, 0x71, 0x52, 0x08,
+ 0x66, 0xf4, 0x63, 0xd4, 0x21, 0xb1, 0x9c, 0x77, 0x9b, 0x0e, 0x5c, 0x24,
+ 0xef, 0x8d, 0x69, 0xdb, 0x4d, 0x1b, 0x97, 0x72, 0xe1, 0x32, 0x54, 0x42,
+ 0xc3, 0xaa, 0xd0, 0xc4, 0x8a, 0x6c, 0x86, 0x95, 0x0e, 0x72, 0xf3, 0xfd,
+ 0x84, 0x55, 0xd7, 0x2b, 0x02, 0x80, 0x56, 0x29, 0x83, 0x7b, 0x98, 0x1c,
+ 0x31, 0x27, 0x52, 0x07, 0x5b, 0x58, 0x85, 0x26, 0x42, 0x8e, 0xeb, 0xc7,
+ 0x68, 0x0a, 0xe5, 0xaa, 0x8c, 0x1c, 0x3f, 0x9f, 0x77, 0xaf, 0xcd, 0xbd,
+ 0x05, 0x9a, 0x3d, 0x61, 0xca, 0x30, 0x17, 0xd2, 0x0e, 0x10, 0xf5, 0xd1,
+ 0xe2, 0xdc, 0x69, 0xe2, 0x01, 0x27, 0x5a, 0xc9, 0xdf, 0x74, 0x88, 0x19,
+ 0x89, 0xbf, 0xf5, 0xe6, 0xe2, 0xec, 0xed, 0xe0, 0xf2, 0x0c, 0x35, 0x58,
+ 0x99, 0xf7, 0x3e, 0xa2, 0x71, 0x6a, 0x0d, 0x6d, 0xaf, 0x90, 0x6c, 0x1b,
+ 0x75, 0xb2, 0x55, 0x6f, 0x6b, 0x9d, 0x57, 0x5c, 0x29, 0x0b, 0xbf, 0xf2,
+ 0x76, 0x40, 0xa5, 0x5d, 0xb0, 0x2e, 0x02, 0x73, 0xd3, 0xec, 0xa6, 0x49,
+ 0x4a, 0x2a, 0xa3, 0x8d, 0x37, 0xa0, 0x01, 0x15, 0xde, 0xe3, 0x65, 0x7d,
+ 0x9f, 0x48, 0xc6, 0x43, 0xcd, 0x10, 0xa9, 0x26, 0x74, 0xe2, 0x2a, 0x93,
+ 0x8c, 0x4d, 0xa3, 0x27, 0xde, 0x1d, 0x86, 0x83, 0x37, 0xa5, 0x39, 0xbf,
+ 0x69, 0x55, 0x95, 0x77, 0x7a, 0x73, 0x21, 0x1b, 0xc9, 0x2c, 0xa4, 0xe9,
+ 0x3a, 0x2d, 0x53, 0x75, 0xbf, 0x32, 0xe7, 0x58, 0xd8, 0x34, 0xb4, 0x9c,
+ 0xe5, 0x5a, 0x05, 0xf0, 0x59, 0x3b, 0x0f, 0x54, 0x51, 0x63, 0x83, 0xa6,
+ 0x5a, 0xd6, 0x61, 0x6d, 0x5c, 0x45, 0x67, 0x9c, 0x82, 0x5e, 0x88, 0x80,
+ 0x66, 0xde, 0x3b, 0x7d, 0x61, 0xfc, 0xa1, 0xb4, 0x70, 0x54, 0x1e, 0x51,
+ 0xff, 0x91, 0x25, 0xc1, 0xff, 0x53, 0x70, 0x86, 0x85, 0x08, 0x90, 0xd4,
+ 0xfa, 0xd9, 0xcc, 0x01, 0xcd, 0x84, 0x4e, 0x8a, 0x4a, 0x66, 0xd3, 0xde,
+ 0x56, 0x2c, 0x18, 0x68, 0x3e, 0x20, 0x0f, 0xe8, 0xa7, 0x81, 0x36, 0xa9,
+ 0xb9, 0xfb, 0x39, 0x65, 0x4d, 0x4e, 0x97, 0x13, 0xac, 0x12, 0x05, 0x66,
+ 0xa8, 0xde, 0xd4, 0x98, 0x59, 0xc5, 0x34, 0xf5, 0x90, 0x9a, 0x76, 0x10,
+ 0x3b, 0xb6, 0xb3, 0xbb, 0x7a, 0x16, 0x3f, 0x65, 0xeb, 0x67, 0x90, 0x32,
+ 0x49, 0x78, 0x8d, 0x8c, 0x15, 0xcb, 0x2a, 0x28, 0x40, 0x57, 0x5c, 0x95,
+ 0xb6, 0x8a, 0x5f, 0x44, 0x60, 0x11, 0x7d, 0x2b, 0xf8, 0x2a, 0x05, 0x9f,
+ 0x41, 0xb4, 0x4b, 0xb4, 0x7d, 0x11, 0x1b, 0xfd, 0x8a, 0x3c, 0x9b, 0x9d,
+ 0x16, 0xb7, 0xd7, 0x78, 0x11, 0x97, 0x8a, 0xc8, 0xf4, 0x56, 0xaf, 0x85,
+ 0xfb, 0x5b, 0xb1, 0x72, 0x27, 0x57, 0x7e, 0x99, 0x0c, 0x89, 0xa1, 0x7b,
+ 0x73, 0x2e, 0x27, 0x1b, 0xa4, 0x40, 0xd7, 0x5c, 0x15, 0x97, 0x30, 0x73,
+ 0xd3, 0x18, 0x20, 0x5f, 0x0b, 0x0c, 0x35, 0x89, 0x7e, 0x34, 0xd9, 0x22,
+ 0x2f, 0xe0, 0xc4, 0x87, 0x30, 0x9f, 0xca, 0xaf, 0x14, 0x31, 0xc9, 0x44,
+ 0x9f, 0x9d, 0xe6, 0x9e, 0xfc, 0xf0, 0x43, 0xd2, 0xae, 0x09, 0xb8, 0xdd,
+ 0x96, 0x94, 0x01, 0x9a, 0x75, 0x5a, 0xfa, 0xdd, 0x0d, 0x00, 0xf9, 0xbc,
+ 0xe7, 0x8c, 0x4a, 0x00, 0xe0, 0xdf, 0xd0, 0x26, 0x2f, 0x36, 0xa5, 0xb1,
+ 0xff, 0x6e, 0x14, 0xa1, 0x8d, 0x30, 0xbb, 0x8b, 0xb3, 0x73, 0xb9, 0x9a,
+ 0xc1, 0x49, 0x04, 0x8c, 0xc2, 0x79, 0x8d, 0x36, 0xb6, 0x2e, 0xb4, 0x15,
+ 0x64, 0x4f, 0xb6, 0x27, 0xcc, 0xd5, 0x8e, 0xad, 0x6f, 0xc8, 0x0d, 0x8c,
+ 0x0b, 0xe1, 0xc1, 0xba, 0x85, 0x9c, 0x90, 0x8a, 0x91, 0xe1, 0xd2, 0x67,
+ 0x7a, 0x63, 0x82, 0x3a, 0x4d, 0xaa, 0x4c, 0xbc, 0x0d, 0xa2, 0x40, 0xc5,
+ 0x18, 0xab, 0x28, 0x91, 0x7c, 0xc6, 0x30, 0xcd, 0x21, 0x56, 0x38, 0xf5,
+ 0x4e, 0x8c, 0x23, 0x04, 0xea, 0xac, 0x19, 0xa3, 0x37, 0xc3, 0x42, 0xc9,
+ 0x25, 0x69, 0x50, 0x94, 0x95, 0x09, 0x42, 0x93, 0x92, 0x83, 0x89, 0x52,
+ 0xcd, 0x8e, 0xef, 0x9b, 0x3f, 0xe9, 0xb9, 0x1d, 0xb6, 0xc3, 0x16, 0xb4,
+ 0x0b, 0x62, 0x91, 0x2a, 0x15, 0x26, 0x58, 0x18, 0x22, 0x9f, 0xa3, 0x14,
+ 0x37, 0xad, 0x8f, 0x41, 0x1e, 0x3d, 0x8d, 0x65, 0xb2, 0x46, 0x8d, 0xe4,
+ 0x48, 0x2e, 0x56, 0x1b, 0xb0, 0x20, 0xba, 0x23, 0xcb, 0x09, 0xdc, 0x24,
+ 0x66, 0x2c, 0x73, 0x0a, 0x6c, 0x86, 0x81, 0x31, 0x4a, 0x07, 0x78, 0xac,
+ 0x5e, 0x85, 0x0a, 0x70, 0xc1, 0x0d, 0xe1, 0xf1, 0xf6, 0x27, 0x4c, 0x7d,
+ 0xdb, 0x36, 0x0f, 0x57, 0x00, 0xea, 0x42, 0x08, 0x4d, 0x59, 0xa0, 0xdd,
+ 0xa3, 0xe5, 0x07, 0x78, 0x90, 0xf5, 0x6a, 0xfe, 0x7d, 0xfe, 0xfe, 0x72,
+ 0xdb, 0x15, 0x3e, 0x96, 0xdd, 0xea, 0xa3, 0x5b, 0x25, 0xf1, 0x25, 0x2c,
+ 0xe6, 0xc5, 0x89, 0xa6, 0x22, 0xa7, 0x04, 0xe1, 0x26, 0x07, 0x83, 0x9c,
+ 0x2c, 0x4f, 0x76, 0xf7, 0x8c, 0x25, 0xb5, 0xbb, 0x8f, 0x0a, 0x88, 0x4f,
+ 0x76, 0x9f, 0xd8, 0xd4, 0x3c, 0x7d, 0x2a, 0xb8, 0x16, 0x68, 0x63, 0xd3,
+ 0x9b, 0x5c, 0x83, 0x4f, 0x30, 0xbd, 0x4f, 0x3e, 0x7d, 0xc2, 0xaf, 0xda,
+ 0xc0, 0xcc, 0x81, 0xcd, 0x67, 0xb0, 0x5d, 0x8d, 0xdf, 0xfc, 0xde, 0x8c,
+ 0x23, 0x00, 0xb3, 0x2c, 0x38, 0x77, 0x08, 0x35, 0x26, 0x29, 0x97, 0x75,
+ 0xb8, 0xaa, 0x50, 0x4a, 0xd3, 0xa5, 0xec, 0xf0, 0x2b, 0xa5, 0x98, 0xbd,
+ 0xd2, 0x4a, 0x82, 0xd6, 0xc4, 0xd8, 0x50, 0x38, 0xe3, 0x31, 0x81, 0x4a,
+ 0x1b, 0x85, 0xe1, 0xc9, 0xee, 0x27, 0x5f, 0x31, 0x6e, 0x6d, 0x09, 0x73,
+ 0xd9, 0x89, 0x48, 0x52, 0x14, 0x6e, 0xe8, 0x88, 0x20, 0xf9, 0x77, 0x40,
+ 0xf1, 0x7c, 0x73, 0x28, 0x30, 0xc3, 0xfa, 0xd7, 0x7d, 0x89, 0xe9, 0xf3,
+ 0xbf, 0x9e, 0xb4, 0xef, 0xca, 0xeb, 0xbc, 0x18, 0x68, 0x9b, 0x2f, 0xe5,
+ 0x2f, 0x81, 0xbf, 0x12, 0xa5, 0xef, 0x48, 0x39, 0x06, 0x59, 0xf9, 0xb6,
+ 0x75, 0xa1, 0xc0, 0xe8, 0xa3, 0x26, 0x6c, 0xb7, 0x44, 0x4d, 0x91, 0x9a,
+ 0xa2, 0x22, 0xa2, 0xd7, 0x0a, 0x8f, 0xe1, 0xea, 0x8a, 0x16, 0x8e, 0x61,
+ 0x84, 0x3f, 0x62, 0xbf, 0xe2, 0xc7, 0xc3, 0x6d, 0xc5, 0x42, 0x55, 0x8d,
+ 0xa3, 0xe1, 0x3b, 0xb9, 0x1e, 0xb8, 0xbc, 0x3d, 0xcb, 0x51, 0xe9, 0x63,
+ 0xa7, 0x37, 0xc9, 0x61, 0x83, 0x0a, 0x85, 0x92, 0x63, 0x13, 0x98, 0xa9,
+ 0x34, 0x15, 0x7d, 0xb6, 0x53, 0xb9, 0xf6, 0x27, 0xb1, 0xb7, 0x2b, 0x20,
+ 0xae, 0x35, 0x17, 0xec, 0xb2, 0x06, 0xf9, 0xa0, 0x44, 0xd4, 0x23, 0x77,
+ 0x1a, 0x47, 0xd3, 0xc3, 0x79, 0x34, 0xe7, 0x90, 0xae, 0x56, 0xd2, 0xfb,
+ 0xa5, 0x3c, 0xe1, 0xd3, 0x3e, 0xfe, 0xf6, 0x6c, 0xf7, 0xc5, 0xbe, 0xb8,
+ 0x07, 0x4f, 0x8e, 0x2f, 0xdf, 0x74, 0x1d, 0x7a, 0x95, 0xd9, 0x4f, 0xfc,
+ 0x5f, 0xaa, 0xd7, 0x7e, 0x63, 0x0c, 0x0c, 0xca, 0xe0, 0x1f, 0x10, 0x05,
+ 0xf4, 0x60, 0x77, 0x37, 0x16, 0x60, 0xff, 0x1d, 0x53, 0x16, 0x9f, 0x3c,
+ 0x6d, 0xc7, 0x5e, 0x48, 0xad, 0x1f, 0xd0, 0x7c, 0xaf, 0x26, 0x9a, 0xe3,
+ 0xfd, 0xe5, 0x7c, 0x74, 0xa9, 0xf2, 0x52, 0x6a, 0xa4, 0xda, 0x0b, 0xac,
+ 0x46, 0xd0, 0x11, 0xb1, 0xea, 0x03, 0x1d, 0xb7, 0xba, 0x80, 0x48, 0xb6,
+ 0xd8, 0x8e, 0x68, 0xee, 0xb7, 0xd9, 0x77, 0x9d, 0x26, 0x52, 0x8c, 0x12,
+ 0x42, 0x5e, 0xac, 0x88, 0x68, 0xce, 0x5d, 0x2d, 0x19, 0x07, 0x55, 0x46,
+ 0x44, 0x20, 0xac, 0xf8, 0x49, 0x11, 0x87, 0x87, 0xc9, 0x4c, 0x30, 0x05,
+ 0xd5, 0x64, 0x21, 0xf9, 0x27, 0xfc, 0x6f, 0xba, 0x8a, 0x5b, 0x40, 0xc7,
+ 0xfd, 0x67, 0x91, 0x89, 0xc3, 0x85, 0xfd, 0x0b, 0x26, 0xae, 0x3d, 0x6f,
+ 0x4e, 0x3d, 0x62, 0x37, 0x1e, 0x8c, 0x5e, 0x89, 0x16, 0x84, 0x24, 0x13,
+ 0xb5, 0x56, 0x1a, 0xfc, 0xc5, 0x63, 0xa1, 0xe9, 0x1e, 0xae, 0x23, 0x45,
+ 0x72, 0x6f, 0x3d, 0x30, 0x96, 0x91, 0x05, 0xbc, 0xb4, 0x47, 0xd2, 0x77,
+ 0xc4, 0xdc, 0x74, 0x7f, 0xcc, 0xa5, 0xcc, 0x08, 0xfc, 0x0d, 0x88, 0x3c,
+ 0x75, 0x93, 0x95, 0xb3, 0x45, 0x86, 0xa1, 0xfb, 0x01, 0x66, 0x6f, 0x73,
+ 0x5b, 0x3b, 0x95, 0xb2, 0x0c, 0x35, 0x91, 0xc2, 0xdc, 0xa3, 0xf9, 0x82,
+ 0x88, 0x02, 0xeb, 0xa8, 0xaf, 0xa5, 0x5d, 0x50, 0x18, 0x73, 0xa9, 0x7e,
+ 0xd9, 0xbe, 0xdc, 0x64, 0xf2, 0xbe, 0xce, 0xb1, 0x85, 0xef, 0x84, 0xf9,
+ 0x74, 0x64, 0xb2, 0xa3, 0x09, 0xbb, 0x54, 0xa5, 0x4b, 0xca, 0xe3, 0xb6,
+ 0xcb, 0xb8, 0x02, 0xe0, 0xf7, 0xa2, 0xf0, 0xd8, 0x97, 0x18, 0x9a, 0xa6,
+ 0xa4, 0x32, 0x5b, 0xdf, 0x5d, 0xbc, 0xf9, 0x8b, 0x4d, 0xe5, 0xdd, 0xee,
+ 0xc7, 0xad, 0x61, 0xed, 0xaf, 0x17, 0x42, 0x72, 0xa0, 0x2d, 0x49, 0x20,
+ 0x6d, 0x4d, 0xbc, 0xfb, 0x47, 0x88, 0xef, 0x65, 0xae, 0xbd, 0x64, 0x8b,
+ 0xca, 0xbd, 0x9a, 0xa7, 0x46, 0x62, 0xd4, 0x3d, 0x19, 0x3e, 0x83, 0x57,
+ 0xe4, 0xcd, 0xd1, 0xb3, 0x27, 0xfb, 0x7b, 0xc6, 0x6e, 0xdd, 0xea, 0x48,
+ 0x8b, 0xed, 0x07, 0x87, 0xd9, 0x5e, 0xef, 0xec, 0xd3, 0x82, 0xf6, 0xde,
+ 0xd6, 0xf1, 0x0f, 0xe7, 0xef, 0xbc, 0x01, 0xda, 0x15, 0x08, 0x72, 0x2b,
+ 0xfd, 0x11, 0x72, 0x62, 0x93, 0x1d, 0xa3, 0xbb, 0x6d, 0x83, 0x2d, 0x25,
+ 0x15, 0x14, 0x03, 0xc4, 0x78, 0xef, 0x4d, 0x95, 0x93, 0x9e, 0xdb, 0xa3,
+ 0xf9, 0xe8, 0x9d, 0x96, 0xc5, 0xd4, 0xdc, 0xfe, 0x67, 0xc4, 0x1c, 0x93,
+ 0xf5, 0x8c, 0x1a, 0xfb, 0xe0, 0xe8, 0x56, 0x1f, 0x93, 0xb7, 0x7d, 0x1c,
+ 0x95, 0x22, 0x84, 0x22, 0xbc, 0xc5, 0x0f, 0xc1, 0xd7, 0x47, 0x79, 0xd1,
+ 0x9c, 0x6f, 0xb2, 0x24, 0x3b, 0x87, 0x5c, 0xbc, 0x64, 0x9c, 0xb5, 0x4f,
+ 0xdb, 0x27, 0x14, 0xbf, 0x82, 0xd7, 0xe7, 0x25, 0x9c, 0xda, 0xab, 0xe2,
+ 0x21, 0x3c, 0x72, 0x8e, 0x86, 0xe0, 0xf1, 0x2d, 0x75, 0xec, 0x6f, 0x7b,
+ 0x15, 0x46, 0xa1, 0xc1, 0x6b, 0xb8, 0x03, 0xaa, 0x7a, 0xac, 0x1c, 0x05,
+ 0x1e, 0x75, 0x66, 0x45, 0xde, 0x06, 0x2f, 0xe3, 0x28, 0x22, 0x91, 0xb4,
+ 0xdf, 0x26, 0xd5, 0x89, 0xf8, 0xc1, 0x11, 0xea, 0x45, 0xf5, 0x97, 0xb4,
+ 0x68, 0x13, 0x90, 0xa1, 0xee, 0x3b, 0x6c, 0xa0, 0xec, 0x13, 0x4a, 0x7a,
+ 0x19, 0x25, 0xf1, 0xf9, 0x93, 0xf0, 0x3e, 0xe2, 0xc1, 0x88, 0x6e, 0x57,
+ 0xf9, 0x2a, 0x00, 0xdf, 0xd0, 0xa2, 0xf6, 0xf6, 0xbd, 0x40, 0x04, 0xc5,
+ 0x21, 0x60, 0x48, 0x6d, 0x7e, 0xbb, 0x19, 0x8d, 0xc0, 0x71, 0x60, 0x82,
+ 0xc7, 0x2a, 0x7e, 0x1d, 0x3a, 0x23, 0x08, 0x4e, 0x48, 0xb4, 0x01, 0xd1,
+ 0x08, 0x6e, 0xe4, 0xed, 0x66, 0x62, 0x03, 0x12, 0x5d, 0x7b, 0xff, 0xc1,
+ 0xf0, 0x44, 0xde, 0xc4, 0xe3, 0x11, 0x1c, 0x90, 0xe8, 0x1a, 0xa1, 0x36,
+ 0x3c, 0xd1, 0xda, 0x7c, 0xcf, 0x3e, 0x8f, 0x6c, 0xbe, 0x77, 0x67, 0x97,
+ 0xc7, 0x07, 0x82, 0x9f, 0x75, 0x89, 0xf4, 0x6a, 0x2b, 0x30, 0x86, 0x88,
+ 0x6b, 0x8b, 0x72, 0x46, 0x09, 0x98, 0xc4, 0x78, 0xdd, 0xfb, 0x91, 0x23,
+ 0x0f, 0x30, 0x2f, 0x9d, 0x12, 0xf6, 0xf6, 0x36, 0x1d, 0x98, 0x89, 0xa3,
+ 0x6d, 0x43, 0x8a, 0xa0, 0xd8, 0x06, 0x1c, 0x98, 0x8c, 0x95, 0x4d, 0xe7,
+ 0xd2, 0x22, 0x64, 0x43, 0x52, 0x3a, 0xab, 0x5c, 0xb9, 0xc1, 0x26, 0xe2,
+ 0xbb, 0x0c, 0x36, 0x97, 0x26, 0x09, 0x52, 0x75, 0xaf, 0xb0, 0x24, 0x15,
+ 0xa2, 0x74, 0x6f, 0xa4, 0xb0, 0x29, 0x2c, 0x12, 0x4b, 0xfe, 0xb4, 0xee,
+ 0x8a, 0x73, 0xc1, 0xc4, 0xee, 0xa1, 0x12, 0xf3, 0x8c, 0xfc, 0x80, 0x2b,
+ 0x88, 0x03, 0xc8, 0x11, 0x68, 0xa3, 0x8b, 0xba, 0x49, 0x48, 0xd5, 0x50,
+ 0x3b, 0x8d, 0xcc, 0x4a, 0x6b, 0xa3, 0xd4, 0x52, 0xeb, 0x36, 0x0c, 0x61,
+ 0xf3, 0x85, 0xd3, 0x71, 0x54, 0x39, 0x93, 0x5b, 0x15, 0x36, 0x60, 0x2c,
+ 0x68, 0x6e, 0x25, 0x64, 0x09, 0x75, 0x21, 0xce, 0x0f, 0xe6, 0xe7, 0x26,
+ 0x42, 0xdb, 0xec, 0x11, 0xa1, 0xd3, 0xb8, 0x5e, 0x56, 0xd3, 0xe5, 0xdc,
+ 0x08, 0x2e, 0x1f, 0x2f, 0x0e, 0xc5, 0x0f, 0x36, 0x2d, 0xa7, 0x4b, 0x47,
+ 0x62, 0x05, 0xcf, 0x76, 0x5b, 0xad, 0x0d, 0x31, 0xf2, 0x4e, 0xc4, 0x7b,
+ 0xb0, 0x67, 0x93, 0xf8, 0x73, 0xa4, 0xc6, 0x09, 0xd1, 0xc8, 0xef, 0x17,
+ 0x6c, 0x9a, 0xf7, 0x65, 0xa5, 0x18, 0x76, 0x46, 0xff, 0xfd, 0x32, 0x10,
+ 0xa5, 0x1a, 0xfb, 0xa5, 0x47, 0x10, 0x9f, 0x10, 0x44, 0x11, 0x6b, 0x4b,
+ 0xe4, 0x52, 0x63, 0x37, 0x20, 0x7d, 0xf0, 0xee, 0xa6, 0x9c, 0xf9, 0x41,
+ 0xf0, 0xb0, 0x74, 0x2b, 0xe5, 0x28, 0x39, 0x76, 0x79, 0x2f, 0x3b, 0x44,
+ 0x16, 0x86, 0xe6, 0x1d, 0x5e, 0xb7, 0x31, 0x65, 0xfe, 0x25, 0x7f, 0x2d,
+ 0xc7, 0x82, 0x41, 0xa4, 0x1c, 0xa7, 0xeb, 0x28, 0x0f, 0x00, 0x68, 0xcf,
+ 0xcc, 0x75, 0x65, 0xb6, 0xda, 0x74, 0xc9, 0xfe, 0x55, 0xea, 0x8f, 0xe0,
+ 0x66, 0xb9, 0x1a, 0x21, 0x45, 0x3e, 0x92, 0xeb, 0x92, 0x2b, 0x12, 0x92,
+ 0xc3, 0x86, 0x69, 0x54, 0xc3, 0x5c, 0xb6, 0xfd, 0x6e, 0xae, 0x77, 0x3a,
+ 0x21, 0xa7, 0x88, 0x69, 0x5a, 0xf2, 0x2a, 0x99, 0x08, 0xc6, 0x81, 0x8b,
+ 0xd3, 0x49, 0xb3, 0x94, 0x59, 0xef, 0xf6, 0xae, 0x54, 0x3f, 0xa9, 0x79,
+ 0x17, 0x14, 0xa5, 0x20, 0x05, 0x9b, 0x98, 0xad, 0x97, 0x4e, 0xee, 0x55,
+ 0x5f, 0x70, 0x97, 0xab, 0xf0, 0x0c, 0x39, 0x42, 0xd3, 0x60, 0xb0, 0xb6,
+ 0x13, 0x14, 0xf4, 0xcc, 0xeb, 0x5f, 0xcf, 0x27, 0xfe, 0x78, 0x53, 0xc5,
+ 0xaf, 0x0a, 0xc1, 0x9e, 0x67, 0xe5, 0x43, 0x6a, 0x9d, 0xf6, 0xac, 0x49,
+ 0x69, 0x8e, 0x1f, 0x48, 0xe1, 0x6d, 0x39, 0x05, 0x38, 0x36, 0x08, 0x06,
+ 0x69, 0x4a, 0x86, 0x40, 0x30, 0x5c, 0x11, 0x0f, 0xc4, 0xcc, 0x14, 0xaa,
+ 0x12, 0x6f, 0xe5, 0x2b, 0x8a, 0x88, 0xd8, 0x82, 0xc4, 0xb2, 0xf9, 0x26,
+ 0x6c, 0x6c, 0x3e, 0x4d, 0xb6, 0x60, 0x03, 0x7e, 0xfe, 0xec, 0xe9, 0x76,
+ 0x1b, 0x31, 0xb6, 0x1d, 0x01, 0xee, 0xe2, 0xb4, 0x2d, 0x6b, 0x9b, 0xca,
+ 0x32, 0xcf, 0xa9, 0x52, 0x13, 0x47, 0xe6, 0xc4, 0xb9, 0x99, 0x73, 0x61,
+ 0x07, 0x72, 0xb3, 0xa3, 0x3a, 0x8a, 0x84, 0x40, 0x03, 0x18, 0x01, 0x4a,
+ 0xf7, 0x65, 0xfc, 0xba, 0x2d, 0x9a, 0x6d, 0x05, 0xb8, 0x4b, 0xe3, 0x60,
+ 0xda, 0x59, 0x28, 0x6a, 0xca, 0x3c, 0xbb, 0x4d, 0x58, 0xc9, 0xd8, 0x25,
+ 0x8a, 0x99, 0x87, 0xa6, 0x2a, 0x4a, 0x0c, 0xd5, 0x07, 0x2d, 0xbd, 0x7b,
+ 0x41, 0x5c, 0x23, 0xcc, 0x35, 0x2e, 0x37, 0x4f, 0x12, 0x63, 0x50, 0x34,
+ 0x17, 0x22, 0x2e, 0x47, 0xdc, 0x65, 0x76, 0x22, 0xd1, 0x06, 0x33, 0x72,
+ 0xd1, 0x56, 0xd1, 0x16, 0x04, 0x28, 0x25, 0xeb, 0x82, 0x1b, 0x32, 0xb8,
+ 0x93, 0xe7, 0x5a, 0xbf, 0x80, 0xb5, 0x8f, 0xb2, 0x72, 0x75, 0xe3, 0x5d,
+ 0x81, 0x62, 0xc1, 0x76, 0xae, 0x4a, 0xdb, 0x57, 0x57, 0x48, 0xaa, 0xe9,
+ 0xc5, 0xad, 0x8e, 0xad, 0xcc, 0x45, 0xd0, 0xdd, 0xa6, 0x89, 0xfc, 0xdd,
+ 0x14, 0x04, 0xfd, 0xbb, 0xdd, 0x95, 0x61, 0xf6, 0x11, 0x7f, 0xb5, 0x33,
+ 0x0f, 0x2b, 0x7a, 0x0f, 0x63, 0x8a, 0x59, 0x77, 0xe0, 0x48, 0x19, 0x84,
+ 0xec, 0x21, 0xc9, 0x16, 0x3a, 0xbc, 0xb3, 0xb3, 0xfd, 0x70, 0xa7, 0xe5,
+ 0xc9, 0x87, 0x3a, 0x79, 0xce, 0xde, 0x0d, 0xe6, 0x3a, 0xb6, 0x54, 0x36,
+ 0xae, 0x17, 0xf4, 0x55, 0x5a, 0x32, 0x26, 0x24, 0x66, 0x08, 0x68, 0x25,
+ 0xba, 0x09, 0xe5, 0x93, 0x86, 0x77, 0x90, 0xc0, 0xd3, 0x30, 0xbc, 0xf6,
+ 0xc8, 0xc5, 0xea, 0x65, 0x2a, 0x20, 0x11, 0x20, 0xc0, 0x47, 0x81, 0x9c,
+ 0x25, 0x39, 0x34, 0xbb, 0x30, 0x54, 0x39, 0x5b, 0xc5, 0x70, 0xbd, 0xf1,
+ 0xb1, 0xa5, 0xeb, 0x27, 0xb6, 0xe1, 0x68, 0xb4, 0xfc, 0xf2, 0x11, 0x1c,
+ 0xbb, 0x3c, 0xaa, 0xc2, 0x48, 0x2a, 0x7b, 0x86, 0x44, 0x7d, 0xfc, 0xa0,
+ 0x57, 0x9f, 0x35, 0x92, 0x93, 0x8c, 0xe3, 0xe0, 0xdc, 0x84, 0xdc, 0xa6,
+ 0x91, 0xa9, 0x1f, 0xdd, 0xb8, 0x99, 0x28, 0x8f, 0x8b, 0x88, 0x5e, 0xb5,
+ 0xb8, 0x9f, 0xd2, 0x2a, 0x74, 0xbd, 0xa3, 0x6f, 0x76, 0x7f, 0x73, 0xa5,
+ 0x5c, 0xe4, 0xf1, 0x8f, 0xf9, 0xa7, 0xad, 0xe9, 0xec, 0xf3, 0x31, 0x45,
+ 0x06, 0x7d, 0x4c, 0x5d, 0x47, 0x5d, 0x9f, 0x30, 0x4f, 0xd7, 0x4d, 0xa0,
+ 0xcb, 0x53, 0xf6, 0x12, 0x91, 0x1f, 0x00, 0xe3, 0x75, 0x9d, 0x13, 0xe2,
+ 0x6d, 0xd3, 0x46, 0xdb, 0xee, 0x86, 0xcf, 0xda, 0xee, 0x06, 0x9b, 0x73,
+ 0x1c, 0x57, 0xd2, 0x18, 0x84, 0x59, 0x27, 0xef, 0xf4, 0xb1, 0x64, 0x6b,
+ 0x74, 0xfe, 0xee, 0xf8, 0xeb, 0xb3, 0xed, 0x87, 0xdc, 0x94, 0xbe, 0xfc,
+ 0xb7, 0x83, 0x02, 0x2a, 0xaf, 0x22, 0x54, 0x1f, 0xf7, 0x1d, 0xe6, 0xc9,
+ 0xd7, 0xa3, 0xd1, 0xe0, 0xf0, 0xfc, 0x04, 0xb6, 0xc0, 0x68, 0x64, 0xfe,
+ 0xb2, 0x8a, 0x24, 0x74, 0x28, 0x1c, 0xb5, 0x83, 0xef, 0xa0, 0xeb, 0xa9,
+ 0xec, 0x87, 0xc9, 0x45, 0x9e, 0x40, 0xec, 0x46, 0xc6, 0xe5, 0xa1, 0xe2,
+ 0x90, 0xa6, 0x6d, 0xd3, 0x07, 0xba, 0x56, 0xcf, 0xf9, 0xc9, 0x0e, 0xbe,
+ 0x45, 0xa8, 0x59, 0x0c, 0x28, 0xee, 0x41, 0x58, 0x86, 0x15, 0x98, 0x48,
+ 0xeb, 0x01, 0xd2, 0x14, 0x02, 0x5a, 0x71, 0xbb, 0xc6, 0xfc, 0xa3, 0xeb,
+ 0x84, 0x82, 0x76, 0x12, 0xb5, 0x5b, 0x91, 0x26, 0x01, 0xc2, 0x0a, 0x42,
+ 0xc2, 0xa7, 0x4d, 0x16, 0x73, 0xc0, 0xc1, 0x4e, 0x63, 0x6a, 0x1d, 0x2a,
+ 0xa8, 0x3b, 0x12, 0x93, 0xab, 0xeb, 0x17, 0xd9, 0x1c, 0x2c, 0x93, 0x83,
+ 0x4d, 0x00, 0x75, 0x8a, 0x72, 0x79, 0x7d, 0x13, 0xba, 0x20, 0xa4, 0x98,
+ 0x82, 0xc6, 0x5f, 0x45, 0x93, 0xc2, 0x7e, 0x32, 0xbd, 0x0c, 0xb6, 0x20,
+ 0x5e, 0x54, 0xbd, 0xa7, 0xca, 0x28, 0x42, 0xc4, 0xea, 0x0d, 0x03, 0x80,
+ 0xa6, 0xff, 0x14, 0x6a, 0xce, 0x35, 0x1a, 0xc8, 0x98, 0xa3, 0xa7, 0xf0,
+ 0xa4, 0x15, 0xcd, 0x6c, 0x2e, 0x7f, 0x4d, 0x8b, 0x7b, 0x78, 0x4c, 0xc5,
+ 0x85, 0x8f, 0x5c, 0x3d, 0xbb, 0xa7, 0xdb, 0x1b, 0xbd, 0xa9, 0x26, 0x5c,
+ 0xe8, 0xfa, 0xa5, 0x96, 0xd6, 0x5e, 0x97, 0x64, 0x81, 0x02, 0xab, 0x5a,
+ 0xaa, 0x3e, 0x19, 0x14, 0x7d, 0x6d, 0xa3, 0x6f, 0x2c, 0x62, 0x89, 0x95,
+ 0xa5, 0x8d, 0x60, 0xda, 0x64, 0x17, 0xc4, 0x44, 0x11, 0x97, 0x83, 0xda,
+ 0x32, 0xe6, 0x43, 0x39, 0x5b, 0x36, 0x12, 0x80, 0x24, 0xdf, 0x28, 0x25,
+ 0x43, 0x6c, 0x5b, 0x30, 0x11, 0x9a, 0x76, 0x40, 0xd4, 0xe4, 0x28, 0xc4,
+ 0x6c, 0xbb, 0x0a, 0x5a, 0x43, 0x17, 0x6b, 0xe1, 0x60, 0xa2, 0xb8, 0x28,
+ 0x68, 0x62, 0xbd, 0x86, 0x16, 0x40, 0x27, 0xdd, 0x96, 0xf1, 0x3a, 0xae,
+ 0xb4, 0x7e, 0xba, 0x4e, 0xad, 0xe9, 0x51, 0x1f, 0x3b, 0x49, 0x6e, 0xbf,
+ 0x6a, 0x5f, 0x47, 0x6d, 0x8c, 0x33, 0xbf, 0x84, 0xdb, 0x44, 0xf1, 0x02,
+ 0x63, 0x3a, 0x26, 0xe3, 0x7b, 0xfb, 0x2d, 0xfe, 0x4c, 0x0a, 0x44, 0x8f,
+ 0x55, 0x84, 0x1f, 0x4b, 0x9c, 0xe1, 0x96, 0x63, 0xb8, 0x0e, 0x91, 0xd2,
+ 0xfe, 0x52, 0xa7, 0xe9, 0xef, 0x32, 0xa0, 0xcf, 0xe2, 0x6b, 0xcc, 0x2a,
+ 0xbe, 0xc7, 0x96, 0x21, 0x60, 0x48, 0xac, 0xe9, 0x10, 0x0f, 0x05, 0x1b,
+ 0x98, 0xa2, 0xe9, 0x76, 0x54, 0xaa, 0x1e, 0x91, 0xcb, 0x2d, 0xe5, 0x82,
+ 0x4f, 0x7c, 0x42, 0xbd, 0xcf, 0xd8, 0xb4, 0x8d, 0x72, 0x7d, 0x4d, 0x36,
+ 0xb7, 0x38, 0xc3, 0x47, 0x4c, 0x88, 0x1b, 0xbf, 0xfb, 0x61, 0x60, 0xd9,
+ 0x61, 0x30, 0x4c, 0xbd, 0x51, 0x23, 0x98, 0xe4, 0x0d, 0xcc, 0x6c, 0xd7,
+ 0x0f, 0xf2, 0x17, 0xf3, 0x91, 0xef, 0xf3, 0xc2, 0xe8, 0x86, 0xf5, 0xb6,
+ 0xaf, 0x28, 0x85, 0x67, 0xb7, 0xda, 0xa4, 0xa2, 0x63, 0x46, 0xec, 0x38,
+ 0xbc, 0x1e, 0x69, 0xce, 0x1c, 0xb5, 0x51, 0x2f, 0x68, 0xe2, 0xa2, 0xca,
+ 0xb6, 0xf4, 0xd6, 0xfd, 0x22, 0xc8, 0x75, 0xe0, 0xf4, 0x2f, 0x16, 0x25,
+ 0x57, 0x92, 0x9c, 0x6f, 0x3a, 0x42, 0x85, 0x54, 0x5c, 0x98, 0x1f, 0x57,
+ 0x07, 0x93, 0x15, 0x38, 0xaf, 0x57, 0x56, 0x44, 0xea, 0xc9, 0x42, 0xb2,
+ 0x75, 0xc3, 0x58, 0x34, 0xbb, 0x18, 0xe3, 0xd6, 0x33, 0x33, 0xb2, 0x66,
+ 0xb1, 0xb5, 0xb7, 0xcd, 0xec, 0xaa, 0x52, 0xd1, 0xd3, 0x2b, 0xbb, 0x15,
+ 0x3a, 0x72, 0x08, 0x62, 0x98, 0xe0, 0x88, 0xaa, 0xc3, 0x0b, 0x40, 0x7f,
+ 0x54, 0xce, 0x22, 0xbf, 0x2e, 0xb4, 0x8a, 0xb4, 0x11, 0x65, 0x41, 0x10,
+ 0x8b, 0x9a, 0xce, 0xd6, 0xf5, 0x2c, 0x03, 0xfa, 0xb3, 0x20, 0x5e, 0x38,
+ 0x64, 0xa1, 0x51, 0xe8, 0xc5, 0x7a, 0xc5, 0xa5, 0x4c, 0x85, 0xa4, 0xa9,
+ 0x9a, 0x99, 0x9b, 0x4d, 0x07, 0x24, 0x40, 0xae, 0xab, 0xd2, 0x5c, 0x91,
+ 0x55, 0x84, 0x3d, 0x4b, 0x4c, 0x0a, 0xa8, 0xfa, 0x59, 0x71, 0x9b, 0x57,
+ 0x65, 0x01, 0x86, 0xb2, 0xdb, 0xb4, 0xca, 0x11, 0xee, 0xef, 0x7d, 0x73,
+ 0xf6, 0xf6, 0xb8, 0xe7, 0xbb, 0x45, 0xae, 0x72, 0xf1, 0xa5, 0xdf, 0x84,
+ 0xe4, 0x9e, 0x76, 0x35, 0x23, 0x7e, 0x43, 0x73, 0xa7, 0x1b, 0x25, 0x87,
+ 0x96, 0xf5, 0x56, 0x4e, 0x12, 0xa9, 0xf5, 0x5e, 0xa1, 0x72, 0xc2, 0x01,
+ 0xc8, 0xe5, 0x4c, 0x60, 0x25, 0xb2, 0xf1, 0x74, 0x83, 0x85, 0x48, 0x1c,
+ 0xf8, 0x11, 0xac, 0x81, 0x08, 0x76, 0xf6, 0xd2, 0x2f, 0x40, 0x93, 0x78,
+ 0x45, 0x6a, 0x48, 0xd3, 0xe7, 0x0d, 0xb0, 0xaa, 0x06, 0xe9, 0xe6, 0xfc,
+ 0x9e, 0x0c, 0x9b, 0xcd, 0x76, 0x31, 0xd2, 0xcd, 0x9a, 0x8c, 0xf1, 0x66,
+ 0x53, 0xa7, 0x17, 0xa8, 0x51, 0x27, 0x01, 0xc2, 0x9a, 0x80, 0x2b, 0x3e,
+ 0xcd, 0xbb, 0x9a, 0x3f, 0xe1, 0x5a, 0xe7, 0xc6, 0xdd, 0xe9, 0x3b, 0xe0,
+ 0xd3, 0x17, 0x54, 0x97, 0x0e, 0xb9, 0x4a, 0x52, 0x97, 0xcc, 0xd3, 0xae,
+ 0x28, 0xd8, 0x46, 0x14, 0x10, 0xf7, 0x71, 0xe8, 0x58, 0x34, 0x9f, 0x2f,
+ 0x27, 0xc2, 0x1a, 0xe3, 0x62, 0xab, 0x82, 0xa9, 0x14, 0xea, 0x01, 0xbe,
+ 0xa5, 0x78, 0x29, 0x0a, 0xef, 0x7e, 0xa6, 0x26, 0x57, 0xd0, 0x95, 0xf5,
+ 0x99, 0x93, 0x4e, 0x39, 0x9b, 0x72, 0xa3, 0x1c, 0xdc, 0x15, 0x89, 0x03,
+ 0x58, 0xea, 0xa7, 0xfa, 0xe2, 0x84, 0x51, 0x37, 0x71, 0xa0, 0x8c, 0xb2,
+ 0x31, 0xec, 0x40, 0x29, 0x76, 0xc9, 0x98, 0xc6, 0x8f, 0x89, 0xe0, 0x2c,
+ 0xc3, 0x8f, 0x92, 0xe1, 0x85, 0x4a, 0xf2, 0x41, 0x3f, 0x91, 0xf9, 0xd4,
+ 0x43, 0x47, 0x61, 0xe8, 0x86, 0x31, 0x3a, 0x6c, 0xd9, 0xd8, 0x9b, 0xab,
+ 0x98, 0xf2, 0xc5, 0x48, 0xdc, 0xd8, 0xc2, 0xd4, 0x19, 0x33, 0xb1, 0xf5,
+ 0x48, 0x9a, 0xc1, 0x09, 0xc7, 0x6f, 0xbd, 0xac, 0x6e, 0x91, 0xa4, 0x28,
+ 0xb5, 0x21, 0x98, 0x5d, 0xc3, 0xae, 0xc9, 0x4a, 0xcc, 0x04, 0xab, 0x55,
+ 0x7e, 0x17, 0x09, 0xc5, 0x59, 0x2d, 0xa5, 0xb6, 0xc0, 0xd7, 0xd2, 0x0f,
+ 0xe9, 0x9f, 0x1a, 0x3c, 0x96, 0xb2, 0x22, 0x00, 0xec, 0x97, 0x35, 0xa8,
+ 0xf7, 0x9a, 0x2a, 0x9d, 0xb8, 0xbf, 0x0c, 0xd2, 0x7a, 0x92, 0xe7, 0x5a,
+ 0x6d, 0x80, 0xe2, 0x84, 0x19, 0x41, 0x63, 0xa3, 0x84, 0x26, 0xd6, 0x6b,
+ 0xaf, 0x24, 0xdf, 0x53, 0x26, 0x9a, 0x16, 0xec, 0x09, 0x97, 0x62, 0x06,
+ 0x92, 0x25, 0x2f, 0xbc, 0x28, 0x72, 0xb4, 0x00, 0x83, 0x52, 0x9c, 0xad,
+ 0xb0, 0x6f, 0x8d, 0x09, 0xbe, 0xe7, 0xdb, 0xe0, 0x3a, 0x05, 0x03, 0xaa,
+ 0x0f, 0x56, 0x37, 0xb8, 0x45, 0xcd, 0x33, 0xfb, 0xc3, 0x35, 0x15, 0x96,
+ 0xfd, 0x48, 0xd0, 0xf3, 0x8e, 0x85, 0xc2, 0xf4, 0x3c, 0x31, 0xfb, 0x84,
+ 0xea, 0x83, 0x6a, 0x5d, 0x26, 0x5e, 0x82, 0xc3, 0xd3, 0xf3, 0x77, 0x09,
+ 0x68, 0x91, 0xc0, 0xc0, 0x5a, 0xc0, 0x4f, 0x26, 0x3f, 0x86, 0xae, 0x0c,
+ 0x83, 0x39, 0xc4, 0x7d, 0xda, 0x5a, 0x6d, 0x57, 0x11, 0x0b, 0x8b, 0x61,
+ 0x6e, 0x05, 0x58, 0x41, 0xd4, 0x7e, 0x11, 0xed, 0x4f, 0x6d, 0x8c, 0xee,
+ 0x70, 0xcc, 0xf7, 0xbc, 0xcf, 0x42, 0xd2, 0x8e, 0xef, 0x5d, 0x52, 0x12,
+ 0xbf, 0xdd, 0xe5, 0x95, 0x22, 0xb4, 0x0c, 0x54, 0xd7, 0x40, 0xa8, 0x37,
+ 0x99, 0xe5, 0x9e, 0x12, 0xe3, 0xce, 0x72, 0xa9, 0x89, 0x67, 0x49, 0xd0,
+ 0x1a, 0x60, 0x1a, 0xd0, 0x84, 0xe6, 0xfa, 0x01, 0xd6, 0xa3, 0x62, 0x51,
+ 0x04, 0xf9, 0xe7, 0x76, 0xbe, 0xa3, 0xa6, 0x68, 0x00, 0x39, 0x7e, 0x54,
+ 0x92, 0x18, 0xad, 0xc7, 0x70, 0xcd, 0x12, 0xbf, 0xeb, 0xf3, 0x67, 0xc7,
+ 0x4b, 0x92, 0x11, 0xdd, 0xe2, 0xf2, 0xbc, 0xbe, 0xac, 0x3b, 0xf1, 0x13,
+ 0xf4, 0x3d, 0x71, 0x84, 0x31, 0xf1, 0x0d, 0x31, 0x72, 0x65, 0xe9, 0x9c,
+ 0x0a, 0xf1, 0x68, 0xda, 0x00, 0xb9, 0x7f, 0x09, 0xdc, 0xd9, 0x9d, 0xca,
+ 0x65, 0x2a, 0x52, 0xcb, 0x29, 0x0d, 0x9d, 0x54, 0x02, 0xfe, 0x06, 0xa0,
+ 0x6c, 0xdc, 0xb8, 0xb4, 0x9e, 0xc4, 0x32, 0xc4, 0x5a, 0x62, 0x44, 0x23,
+ 0x38, 0x5a, 0x9d, 0x8a, 0xd9, 0x47, 0xb9, 0x11, 0x5b, 0xa8, 0x92, 0x6a,
+ 0x2b, 0xdc, 0x2c, 0x8b, 0x8f, 0xa6, 0x0b, 0x61, 0x06, 0xab, 0x02, 0x7f,
+ 0x73, 0x94, 0x12, 0x4e, 0x99, 0x37, 0x57, 0xb2, 0xd1, 0xa5, 0x0c, 0xbc,
+ 0x51, 0xf8, 0x6e, 0xe1, 0xcc, 0x13, 0x1e, 0xd0, 0x96, 0x0d, 0x16, 0xeb,
+ 0xdd, 0xd4, 0x16, 0x2e, 0x4b, 0x1b, 0x37, 0x81, 0x51, 0x70, 0xbb, 0x5b,
+ 0x69, 0xa9, 0x12, 0xca, 0x96, 0xc9, 0xb5, 0x87, 0xac, 0x62, 0x5d, 0x4e,
+ 0x59, 0x7f, 0xc8, 0x49, 0x23, 0x96, 0x48, 0x20, 0x10, 0x97, 0x35, 0xe7,
+ 0x84, 0xc9, 0xb2, 0x82, 0x6e, 0xc3, 0xab, 0x8d, 0x10, 0xe9, 0x49, 0x3b,
+ 0x9d, 0x7a, 0xdd, 0x3e, 0x10, 0xaf, 0xad, 0x4b, 0xbd, 0x16, 0x40, 0x4a,
+ 0x6d, 0x69, 0x7f, 0x51, 0xc0, 0xac, 0x55, 0x38, 0x29, 0x22, 0xb9, 0x5c,
+ 0x62, 0x57, 0x56, 0xd8, 0xc6, 0xe7, 0x74, 0x52, 0x45, 0x1e, 0xfc, 0x13,
+ 0x67, 0xc9, 0x8d, 0xc5, 0x9b, 0x28, 0xfb, 0xc3, 0xce, 0x24, 0x15, 0x2b,
+ 0xe5, 0xa1, 0x5f, 0xa6, 0xee, 0x9d, 0x91, 0x3e, 0x24, 0x0a, 0x3d, 0x49,
+ 0xf8, 0xae, 0x2b, 0x07, 0x75, 0xa4, 0x5d, 0xb7, 0xd7, 0x55, 0xf2, 0x48,
+ 0x41, 0xd8, 0x96, 0x64, 0xef, 0x48, 0xee, 0x99, 0xff, 0x74, 0x9b, 0x7b,
+ 0xb4, 0x0c, 0x84, 0x92, 0x62, 0x0d, 0x78, 0x65, 0xf7, 0x5b, 0xe1, 0xe1,
+ 0xfa, 0xf5, 0x42, 0xd0, 0x02, 0x5a, 0xad, 0xb4, 0x8b, 0xc9, 0xc1, 0xa2,
+ 0x25, 0x06, 0x15, 0x21, 0xf4, 0xfb, 0x08, 0x41, 0xfa, 0x9e, 0x74, 0x39,
+ 0x9f, 0x46, 0xd3, 0xee, 0x75, 0x69, 0xa5, 0x6e, 0x99, 0x9c, 0x01, 0x5a,
+ 0x0b, 0xe5, 0xfb, 0x38, 0x79, 0x6d, 0xf6, 0x18, 0xa9, 0xac, 0xe4, 0xb9,
+ 0xfd, 0xea, 0x3e, 0x59, 0xb1, 0xb8, 0x00, 0x35, 0xdb, 0xf8, 0x2e, 0xec,
+ 0x7c, 0xaa, 0x06, 0xed, 0x93, 0x31, 0x11, 0x3b, 0x9b, 0x57, 0xa7, 0x43,
+ 0x82, 0xef, 0x42, 0x64, 0x1f, 0xf7, 0x4b, 0x90, 0x4a, 0x89, 0xd4, 0xdb,
+ 0x9b, 0xa5, 0x19, 0x2d, 0xad, 0x34, 0x17, 0x34, 0xb0, 0x55, 0xe9, 0xab,
+ 0x0c, 0x80, 0x45, 0xea, 0xb0, 0xd7, 0xe3, 0x80, 0x5d, 0x8c, 0x7d, 0xd9,
+ 0x75, 0x66, 0x0e, 0x22, 0x67, 0x0e, 0x8d, 0xab, 0xf2, 0x63, 0xc6, 0x9b,
+ 0x0e, 0x26, 0x06, 0xe8, 0x72, 0x54, 0x91, 0xe2, 0xd0, 0x63, 0x3e, 0x9b,
+ 0x5a, 0x00, 0x63, 0x44, 0x9f, 0xa5, 0x22, 0x4a, 0x92, 0x67, 0xef, 0xa4,
+ 0x61, 0xee, 0xd2, 0xdc, 0x95, 0x0e, 0x9a, 0x97, 0x6b, 0x42, 0xec, 0x5c,
+ 0xf1, 0x93, 0x2f, 0x5b, 0xc0, 0x55, 0x8d, 0x8e, 0x1d, 0xfb, 0xd6, 0xb9,
+ 0xb7, 0x70, 0xcd, 0xd5, 0x27, 0xdf, 0xae, 0xba, 0x7f, 0xf2, 0x23, 0x4b,
+ 0xfa, 0xf8, 0xd2, 0x48, 0x66, 0x2f, 0xc1, 0x13, 0x96, 0xbc, 0x34, 0x9b,
+ 0x8a, 0x7d, 0x62, 0x14, 0xd4, 0xea, 0xba, 0xbb, 0x50, 0xde, 0x6b, 0xa0,
+ 0xa6, 0xc7, 0x94, 0x33, 0x09, 0x13, 0xb6, 0xdc, 0x48, 0x17, 0xe7, 0x34,
+ 0x87, 0xa9, 0x2b, 0xbb, 0x27, 0x4c, 0xcc, 0xe0, 0x18, 0x30, 0x1b, 0x26,
+ 0x3c, 0xe4, 0xce, 0x8f, 0xc3, 0x16, 0x28, 0x94, 0x70, 0x5a, 0x1d, 0x10,
+ 0xad, 0xe4, 0x5e, 0xf5, 0xf4, 0x7f, 0x23, 0x50, 0xb0, 0x51, 0x6a, 0x1b,
+ 0x42, 0x84, 0xf1, 0x97, 0x02, 0xb5, 0x93, 0x8b, 0xdd, 0xd8, 0xac, 0x11,
+ 0x26, 0x83, 0xb0, 0x44, 0x22, 0x54, 0x70, 0xc2, 0xbf, 0x13, 0x98, 0x24,
+ 0x3a, 0x39, 0x26, 0xab, 0x25, 0x62, 0x11, 0x2a, 0x6d, 0x02, 0xc6, 0x98,
+ 0x0b, 0xbb, 0x2c, 0x43, 0xb7, 0xc4, 0xbc, 0x4e, 0x15, 0x96, 0xa5, 0x84,
+ 0x84, 0x96, 0xdf, 0x2c, 0x72, 0xea, 0xa9, 0x47, 0xc2, 0x92, 0x57, 0x4a,
+ 0x10, 0x4e, 0x7f, 0x64, 0xcb, 0xdc, 0xb4, 0xf4, 0x70, 0x58, 0x28, 0x6c,
+ 0xb8, 0x46, 0x78, 0x93, 0xd1, 0x9b, 0xc4, 0x3d, 0xd4, 0xf7, 0xfe, 0x7e,
+ 0xf0, 0xf9, 0xae, 0x66, 0xbc, 0x53, 0xb4, 0xcb, 0x7f, 0x06, 0x75, 0x89,
+ 0x22, 0x7a, 0x04, 0x3d, 0x67, 0x7e, 0x6a, 0x1f, 0x0d, 0x65, 0xa0, 0x16,
+ 0x12, 0x7d, 0xf6, 0x84, 0x82, 0xde, 0x6d, 0xda, 0x21, 0xe7, 0x56, 0x6a,
+ 0x56, 0x78, 0x11, 0xea, 0x18, 0xf2, 0x73, 0xea, 0x5d, 0x3d, 0xb2, 0x18,
+ 0x8c, 0x5b, 0xaf, 0xa8, 0x74, 0x2e, 0x78, 0xcc, 0x22, 0xfe, 0x08, 0x7a,
+ 0x2d, 0xe2, 0xc4, 0x60, 0x30, 0x9b, 0x6c, 0x37, 0x5b, 0xa8, 0x08, 0xc5,
+ 0x34, 0x78, 0x6b, 0x63, 0x1d, 0xcd, 0x81, 0xe9, 0x81, 0x0b, 0xdf, 0x16,
+ 0xe1, 0xce, 0xd7, 0x66, 0xac, 0xed, 0xbd, 0x18, 0x3e, 0x6d, 0x9d, 0x93,
+ 0x66, 0x36, 0x1f, 0xdc, 0x8d, 0x1f, 0x88, 0x7d, 0x5c, 0x9e, 0xbe, 0x4d,
+ 0xe6, 0x4b, 0x94, 0x02, 0x16, 0xea, 0xd6, 0xfb, 0x59, 0xa6, 0x6e, 0x68,
+ 0x72, 0xef, 0xb0, 0xbb, 0xf0, 0x06, 0x66, 0x67, 0x88, 0xe7, 0x8e, 0x38,
+ 0xf9, 0x6d, 0x06, 0xa9, 0x58, 0xfd, 0xc2, 0x52, 0x96, 0x50, 0x8b, 0x70,
+ 0x67, 0x53, 0x06, 0xf8, 0x2c, 0x8f, 0xa6, 0xf9, 0x28, 0xca, 0x36, 0xfb,
+ 0x94, 0x4d, 0x96, 0x08, 0x54, 0x93, 0x82, 0x48, 0xb4, 0x3f, 0xeb, 0x1d,
+ 0xe8, 0x9e, 0xd3, 0x5c, 0xdc, 0xe4, 0xe6, 0x07, 0xdd, 0xc9, 0x70, 0x55,
+ 0x3d, 0x64, 0xf0, 0x3c, 0xfa, 0xc0, 0x7d, 0xc6, 0xb0, 0x28, 0xfc, 0xae,
+ 0xfd, 0xab, 0x20, 0x56, 0x0c, 0x70, 0x3f, 0x5d, 0x88, 0x66, 0x3f, 0xe5,
+ 0xd7, 0x05, 0x2b, 0x01, 0x6f, 0xf3, 0x49, 0x55, 0xd6, 0xe5, 0x15, 0xa3,
+ 0xd6, 0x3c, 0xed, 0xe0, 0xe4, 0x64, 0x94, 0xdc, 0x65, 0x63, 0xcd, 0x92,
+ 0x1d, 0x86, 0xce, 0x64, 0x96, 0x22, 0x14, 0x20, 0xa9, 0xf2, 0xac, 0xa1,
+ 0x59, 0xd3, 0x90, 0x28, 0x11, 0xfb, 0xa0, 0x00, 0xf7, 0x20, 0x2b, 0xae,
+ 0x8d, 0xb9, 0x0a, 0x25, 0x9e, 0x4a, 0x4f, 0xcd, 0x70, 0x35, 0x2d, 0xb2,
+ 0x32, 0x12, 0x18, 0xe7, 0x0e, 0xe8, 0xb5, 0x22, 0xb5, 0xcf, 0xe8, 0x0e,
+ 0x1f, 0xa7, 0x52, 0x7c, 0x85, 0xfd, 0x03, 0x46, 0xec, 0x90, 0x9a, 0x22,
+ 0x8e, 0xcb, 0x8f, 0xe4, 0x32, 0x0b, 0x32, 0x57, 0xb4, 0x8c, 0x7c, 0xbb,
+ 0x82, 0x06, 0xaa, 0x50, 0x4d, 0xcb, 0x0a, 0x68, 0x24, 0xaf, 0x30, 0x02,
+ 0x95, 0xa6, 0x5a, 0x56, 0xe4, 0x33, 0x06, 0xe7, 0x64, 0x28, 0x4f, 0xef,
+ 0x6e, 0x4a, 0x2e, 0x23, 0x83, 0x69, 0xa6, 0xab, 0x09, 0x39, 0xb7, 0x9c,
+ 0xe4, 0x23, 0xbc, 0xdb, 0x90, 0x0a, 0xee, 0xbe, 0xf1, 0x17, 0x2a, 0xca,
+ 0x4f, 0x27, 0xeb, 0xe1, 0x52, 0x4c, 0xc5, 0x3d, 0xf3, 0x3a, 0xbf, 0x5e,
+ 0x55, 0x7e, 0x0d, 0xae, 0x23, 0xad, 0x68, 0xcd, 0x8a, 0x23, 0xf7, 0x48,
+ 0x2e, 0xcd, 0x8a, 0x4f, 0x69, 0x50, 0x54, 0xb0, 0x09, 0xd3, 0xa2, 0xf8,
+ 0xbe, 0x8b, 0xed, 0xbe, 0x5f, 0x84, 0x60, 0x91, 0xb4, 0x69, 0x41, 0x52,
+ 0x56, 0xb5, 0x72, 0xac, 0x3c, 0x3e, 0xa6, 0x64, 0xd5, 0x3f, 0xaf, 0x2f,
+ 0xf6, 0x08, 0x44, 0x63, 0xb0, 0x4e, 0xcb, 0x0b, 0x08, 0x29, 0x1e, 0xd2,
+ 0xf9, 0xe2, 0x1e, 0x7b, 0x0d, 0x69, 0x45, 0x80, 0x29, 0x5e, 0x54, 0x76,
+ 0x6a, 0x6b, 0x0f, 0xd3, 0xfa, 0xb4, 0x63, 0x5e, 0xfe, 0xd9, 0x2d, 0xe9,
+ 0x07, 0xfb, 0x83, 0x71, 0x96, 0x52, 0xa5, 0x86, 0x97, 0x0d, 0x69, 0x4c,
+ 0xf1, 0x34, 0x15, 0x4e, 0xcd, 0x88, 0x24, 0xaa, 0x7c, 0xc5, 0xef, 0x5e,
+ 0x42, 0xd9, 0xa2, 0xb5, 0x3d, 0x3b, 0x7c, 0x7f, 0xf9, 0x4d, 0xb2, 0x3f,
+ 0xdc, 0x7d, 0x54, 0x9a, 0x0a, 0x24, 0x42, 0xab, 0x0d, 0x57, 0x69, 0x96,
+ 0x6e, 0xd2, 0xbf, 0x2e, 0x8b, 0x36, 0x0b, 0x7c, 0xcc, 0x4b, 0x2f, 0x0a,
+ 0x94, 0xde, 0xbf, 0x14, 0x97, 0xe8, 0xe2, 0xac, 0xfd, 0x52, 0x21, 0x83,
+ 0x01, 0xac, 0xb8, 0xea, 0xa1, 0x80, 0x66, 0x1d, 0xe5, 0xeb, 0x68, 0x75,
+ 0x56, 0xe8, 0x84, 0x14, 0xb1, 0x8d, 0x7a, 0x0c, 0xe4, 0xe7, 0xe7, 0x43,
+ 0x65, 0xab, 0xc7, 0x41, 0x91, 0xbd, 0x78, 0x73, 0xd4, 0x69, 0xee, 0xf9,
+ 0x67, 0xcf, 0x76, 0x7f, 0x47, 0xac, 0x5e, 0x49, 0x0e, 0x12, 0x71, 0x24,
+ 0x44, 0x69, 0x74, 0xbe, 0xaf, 0x28, 0x8d, 0x55, 0x5d, 0x0d, 0xa5, 0x3c,
+ 0xe4, 0x67, 0xda, 0xd7, 0xcd, 0x94, 0x70, 0x5b, 0x5a, 0xd4, 0x86, 0x51,
+ 0x19, 0x34, 0xa2, 0xff, 0xfc, 0xaf, 0x30, 0xcb, 0xf6, 0xc7, 0x9f, 0x11,
+ 0x17, 0x40, 0x69, 0x2c, 0x0b, 0xf9, 0x57, 0x29, 0x53, 0xbb, 0xfb, 0x98,
+ 0xce, 0xf3, 0xe6, 0x1f, 0x36, 0x13, 0x5b, 0xbb, 0x02, 0x69, 0x59, 0x41,
+ 0xac, 0x5a, 0xc1, 0x9d, 0x4a, 0x57, 0x2c, 0xbd, 0xd3, 0x65, 0xad, 0xa4,
+ 0xac, 0xb8, 0x55, 0x09, 0x74, 0x16, 0xa4, 0xa6, 0xc3, 0x74, 0x55, 0x01,
+ 0x1a, 0x2d, 0xc3, 0x20, 0x25, 0x0d, 0xd4, 0x61, 0x4e, 0x6e, 0x72, 0x06,
+ 0x59, 0x61, 0x04, 0xa4, 0x8c, 0x22, 0x99, 0x39, 0x2f, 0x56, 0x38, 0x30,
+ 0x05, 0x4a, 0xf4, 0x9f, 0x66, 0x05, 0xfa, 0xcd, 0x5d, 0xf9, 0x5f, 0x6d,
+ 0x67, 0xa6, 0x51, 0x31, 0xa8, 0xbf, 0x1f, 0xfe, 0xb0, 0x47, 0xe9, 0x41,
+ 0xbd, 0x6e, 0x13, 0x8c, 0xf4, 0xb7, 0xab, 0x6a, 0x35, 0xa4, 0x75, 0x94,
+ 0xaa, 0xfa, 0x41, 0x4a, 0x3e, 0xee, 0x93, 0xda, 0xf8, 0x5f, 0x43, 0xfa,
+ 0xef, 0x8f, 0x7b, 0x83, 0x67, 0x3f, 0xdb, 0x8f, 0xfe, 0x61, 0xef, 0xc3,
+ 0x1f, 0xf6, 0x7b, 0xb1, 0xec, 0x2f, 0xc7, 0x05, 0xe0, 0x41, 0x15, 0x49,
+ 0xa3, 0x2d, 0xee, 0x25, 0x65, 0x43, 0x42, 0x8d, 0xae, 0x64, 0x16, 0x4a,
+ 0x3b, 0x46, 0x08, 0x93, 0xc8, 0x75, 0x35, 0x64, 0x8f, 0xb1, 0x53, 0x55,
+ 0xb5, 0x6c, 0x96, 0x0a, 0x87, 0xbb, 0x92, 0xdf, 0x57, 0xc6, 0x04, 0x3a,
+ 0x21, 0x92, 0x4c, 0x10, 0x08, 0xc3, 0x22, 0x6b, 0x6f, 0x0f, 0xa2, 0x4f,
+ 0x51, 0xce, 0x8d, 0x70, 0x36, 0x04, 0x20, 0x65, 0x2e, 0xb4, 0x34, 0xe9,
+ 0x4c, 0xfa, 0x78, 0x6c, 0x7f, 0x52, 0x64, 0x41, 0x56, 0x96, 0xa6, 0x70,
+ 0xb2, 0xf9, 0xa6, 0xe2, 0xa0, 0x6c, 0x45, 0x00, 0xf8, 0x82, 0xe0, 0x91,
+ 0xdb, 0xfa, 0xb3, 0x38, 0xd2, 0x01, 0x06, 0xe9, 0xaf, 0x60, 0x0e, 0xf3,
+ 0x10, 0x37, 0x7c, 0xad, 0x98, 0x06, 0x73, 0x57, 0x8d, 0x9b, 0x7f, 0x26,
+ 0x41, 0x18, 0x4a, 0xf8, 0x47, 0xcd, 0xa6, 0x32, 0x22, 0xcb, 0xd2, 0x31,
+ 0x55, 0xb4, 0x6a, 0x55, 0x07, 0x99, 0xa0, 0x1c, 0x64, 0x0d, 0x83, 0x56,
+ 0xd9, 0xa7, 0xd2, 0x7a, 0xc5, 0x84, 0xf8, 0x53, 0xe1, 0x4d, 0x82, 0x4c,
+ 0x14, 0x26, 0x67, 0x7d, 0x31, 0x9f, 0x01, 0xa1, 0x48, 0x9b, 0x6c, 0xe0,
+ 0xa5, 0xc8, 0x22, 0x23, 0x17, 0x3f, 0xd5, 0x94, 0xc1, 0x09, 0x57, 0x0a,
+ 0x41, 0x80, 0x6f, 0x10, 0x44, 0x25, 0xe9, 0x8a, 0x9a, 0xde, 0x1b, 0x69,
+ 0xc8, 0x6c, 0x9c, 0x43, 0x9b, 0x08, 0xa1, 0x3e, 0x02, 0x91, 0x36, 0x66,
+ 0xab, 0x6d, 0x0e, 0x36, 0x93, 0x2d, 0x6b, 0xd9, 0x4d, 0xd3, 0xfa, 0x66,
+ 0x3b, 0xe6, 0x88, 0x74, 0xbe, 0x3f, 0x27, 0xa8, 0xc6, 0xe2, 0x7a, 0xa0,
+ 0x3b, 0x93, 0x25, 0xd4, 0xba, 0xeb, 0xfa, 0x0c, 0xf1, 0x15, 0xc6, 0x0b,
+ 0x0e, 0x3c, 0x90, 0x4b, 0xeb, 0x67, 0x03, 0xb8, 0x37, 0xf0, 0xf3, 0x64,
+ 0xf0, 0x1f, 0xe1, 0xbd, 0x20, 0x8f, 0x32, 0xe4, 0x6b, 0xc0, 0x19, 0x51,
+ 0xee, 0x22, 0xa5, 0x68, 0x5e, 0xf2, 0x72, 0x71, 0x53, 0x19, 0xf5, 0x2f,
+ 0x4c, 0xbc, 0x1a, 0x7d, 0x93, 0x30, 0x03, 0xa2, 0x79, 0x8a, 0x9f, 0xb1,
+ 0xbb, 0x63, 0xe1, 0x58, 0xfe, 0x7e, 0x47, 0xd2, 0x3c, 0x42, 0x93, 0x0c,
+ 0xd2, 0x7a, 0x10, 0xa8, 0x3a, 0x14, 0x54, 0xf4, 0x6b, 0x69, 0x90, 0xe6,
+ 0x49, 0x06, 0x09, 0x21, 0x19, 0x29, 0xb6, 0x56, 0x4c, 0x50, 0x37, 0x36,
+ 0xd9, 0x19, 0x0e, 0x77, 0x48, 0x66, 0xed, 0x98, 0x3f, 0xc4, 0x9c, 0x01,
+ 0xee, 0xb6, 0x5b, 0xfe, 0xc6, 0xec, 0x72, 0xfa, 0x16, 0xf9, 0x80, 0xa4,
+ 0x5a, 0x9c, 0x73, 0x98, 0xd7, 0x7f, 0x5b, 0x02, 0x8b, 0x5a, 0x19, 0x75,
+ 0xb2, 0xe2, 0xbc, 0xde, 0x79, 0xe7, 0x92, 0x0c, 0x8a, 0xce, 0xb0, 0x73,
+ 0xbd, 0x16, 0xfe, 0x88, 0xe6, 0xa6, 0x93, 0x6f, 0xc6, 0x60, 0x72, 0x60,
+ 0x84, 0xf3, 0x46, 0xa9, 0xbb, 0x90, 0x52, 0x9d, 0xae, 0x35, 0xe8, 0x9e,
+ 0xee, 0xb7, 0x1d, 0x1f, 0x8b, 0xbc, 0x30, 0x26, 0x86, 0x51, 0x8e, 0x41,
+ 0xcb, 0x48, 0x58, 0xbc, 0x30, 0xa1, 0x87, 0xbd, 0x69, 0x61, 0xf9, 0x11,
+ 0x97, 0x4e, 0xeb, 0x14, 0x0e, 0xaf, 0xbe, 0x0d, 0x47, 0xf3, 0xb7, 0x82,
+ 0xcb, 0x92, 0x3f, 0xb2, 0x4d, 0x4d, 0x78, 0x68, 0xdd, 0x45, 0x66, 0x8b,
+ 0x24, 0x08, 0x05, 0x4c, 0xca, 0x50, 0x20, 0x68, 0xef, 0x02, 0x62, 0x8e,
+ 0xb9, 0x3d, 0xac, 0xd3, 0xc1, 0x1e, 0x28, 0xaf, 0x0b, 0x66, 0xcc, 0xc4,
+ 0x6c, 0x69, 0x66, 0xfe, 0xf5, 0xf1, 0x85, 0x68, 0x28, 0xc8, 0x12, 0x77,
+ 0x05, 0x12, 0x03, 0x2a, 0x55, 0x58, 0x32, 0xcf, 0x9f, 0xda, 0x52, 0xb8,
+ 0xf5, 0x4d, 0xba, 0xff, 0xec, 0xb9, 0x74, 0x5b, 0x29, 0xb4, 0x60, 0x28,
+ 0x6d, 0xf2, 0xaf, 0x76, 0x76, 0x38, 0x6c, 0x4e, 0xd6, 0x69, 0x20, 0x17,
+ 0x52, 0xa9, 0xe7, 0xbb, 0xf9, 0xc5, 0x66, 0x14, 0x30, 0x67, 0x7d, 0xb7,
+ 0x5a, 0xa6, 0x0f, 0xb1, 0x38, 0x70, 0x53, 0xfa, 0x94, 0xfa, 0x7d, 0xdf,
+ 0x6d, 0xcb, 0x5c, 0x08, 0xe9, 0x1a, 0xa6, 0x79, 0xa1, 0x9c, 0x90, 0x6a,
+ 0x3c, 0x89, 0xe6, 0xa6, 0x0e, 0x93, 0x43, 0x7f, 0x76, 0x00, 0x40, 0x43,
+ 0x71, 0xc8, 0x49, 0xc8, 0x6b, 0xa2, 0xf0, 0x37, 0x5a, 0x10, 0xaf, 0x65,
+ 0x01, 0x81, 0x9a, 0x4d, 0x07, 0xb2, 0x3f, 0xda, 0x79, 0x1a, 0x78, 0x61,
+ 0x9f, 0x0c, 0x16, 0x73, 0x39, 0x0e, 0xd2, 0x44, 0xe4, 0x9b, 0x0a, 0x90,
+ 0x62, 0x93, 0xde, 0x83, 0x09, 0xba, 0xe3, 0x62, 0x6e, 0x83, 0x8a, 0x03,
+ 0x40, 0xde, 0x04, 0xc4, 0xf9, 0x78, 0x95, 0x4e, 0x85, 0x48, 0x70, 0xcc,
+ 0xba, 0xe4, 0xcc, 0xc5, 0x64, 0xd6, 0x96, 0x62, 0x3f, 0xc1, 0x39, 0x30,
+ 0x5b, 0x61, 0x87, 0xf6, 0x81, 0x58, 0x1b, 0x01, 0xf5, 0x3d, 0x39, 0x99,
+ 0x5f, 0x0c, 0x77, 0x0f, 0x92, 0xb3, 0x45, 0x56, 0x98, 0xf9, 0xef, 0x27,
+ 0x5f, 0x17, 0x4b, 0x5a, 0x0f, 0x1a, 0xf4, 0xd7, 0xa3, 0x6f, 0x83, 0x6c,
+ 0x2b, 0x7a, 0xe3, 0xe9, 0x13, 0x7a, 0xe3, 0xdd, 0x88, 0x9f, 0xba, 0x2b,
+ 0x67, 0x57, 0x54, 0x9a, 0xfd, 0xe8, 0x3e, 0x35, 0x7f, 0xc4, 0x1e, 0xff,
+ 0x8c, 0x1e, 0x37, 0x1b, 0x6f, 0xda, 0x04, 0x65, 0x70, 0x13, 0xa9, 0xe1,
+ 0x72, 0x90, 0x9c, 0x97, 0xb3, 0xb4, 0x82, 0xa7, 0x9a, 0x37, 0xdf, 0x9a,
+ 0x1e, 0x3f, 0x7d, 0x1a, 0xe9, 0x71, 0x7f, 0x45, 0x87, 0x86, 0xff, 0x78,
+ 0x8f, 0xce, 0xe0, 0xfb, 0xa3, 0xbf, 0x8d, 0xd3, 0xc9, 0x47, 0xec, 0x44,
+ 0xa0, 0xda, 0x2d, 0xd7, 0xec, 0xef, 0x29, 0xcd, 0x99, 0x8a, 0xe0, 0x31,
+ 0x25, 0x6d, 0x2a, 0xf0, 0xb1, 0x35, 0xc8, 0x71, 0xff, 0x6c, 0xff, 0xc9,
+ 0xde, 0xce, 0xf3, 0xe1, 0xd3, 0xe1, 0xbe, 0x45, 0x99, 0x99, 0x8d, 0x75,
+ 0x4b, 0x05, 0x14, 0x28, 0xa2, 0xbf, 0xaa, 0xfe, 0x5c, 0x5e, 0x98, 0x76,
+ 0x28, 0xf8, 0x6f, 0x7f, 0x02, 0xcf, 0x91, 0xc3, 0x97, 0xa4, 0xc4, 0x3c,
+ 0xe1, 0xe7, 0x2a, 0x0d, 0x23, 0xf5, 0xc3, 0x88, 0xc0, 0x01, 0xf5, 0x8d,
+ 0xc5, 0xdb, 0x41, 0xc5, 0x4e, 0x01, 0xfc, 0x1c, 0xe7, 0xc6, 0x6a, 0x6e,
+ 0xca, 0x25, 0xdc, 0xea, 0xe4, 0xc3, 0x51, 0xc6, 0x6d, 0x28, 0x49, 0x18,
+ 0x07, 0x1d, 0xb1, 0x88, 0x73, 0x8c, 0x3b, 0x0f, 0x2c, 0xef, 0xb8, 0x55,
+ 0x45, 0x98, 0xbc, 0xb1, 0xa8, 0x43, 0xce, 0x95, 0x2e, 0x8c, 0x31, 0x53,
+ 0x4c, 0x48, 0x13, 0xf9, 0xc6, 0xd8, 0x1a, 0xb7, 0x70, 0x1c, 0x07, 0x75,
+ 0xd6, 0xa4, 0xd0, 0x05, 0xa9, 0xc8, 0xd6, 0xf5, 0xaf, 0x48, 0x07, 0x4c,
+ 0x23, 0x3c, 0xbc, 0xf2, 0x03, 0xce, 0xa0, 0x60, 0x1f, 0x08, 0xc6, 0x3d,
+ 0x08, 0xd3, 0x7e, 0xbd, 0x02, 0x7b, 0x6e, 0xc5, 0x85, 0x50, 0x9a, 0xf2,
+ 0x97, 0xd8, 0xc5, 0xed, 0xb0, 0xc2, 0x7e, 0x26, 0x5a, 0xcc, 0x05, 0xf3,
+ 0x80, 0x3f, 0x42, 0x18, 0x29, 0xda, 0x94, 0x14, 0xfc, 0xaf, 0x4e, 0xcd,
+ 0x3f, 0xbd, 0x05, 0x83, 0x3c, 0xa6, 0x4e, 0x59, 0x34, 0x6d, 0xf3, 0x57,
+ 0xef, 0xb2, 0x27, 0xbf, 0xfd, 0x2e, 0xdb, 0x7f, 0xec, 0x2e, 0x73, 0x9b,
+ 0x8c, 0xce, 0xd9, 0x9a, 0x2d, 0x46, 0x7b, 0x4c, 0x2b, 0x22, 0xc7, 0x77,
+ 0x99, 0xbf, 0xcd, 0x60, 0xa6, 0xc6, 0x36, 0x5a, 0x6b, 0x9f, 0xd9, 0x6d,
+ 0xb6, 0x62, 0x97, 0x31, 0x6f, 0x15, 0xef, 0xb1, 0xf5, 0x5b, 0x8c, 0xf7,
+ 0x18, 0x57, 0xad, 0x5d, 0xb3, 0xcb, 0xda, 0x6e, 0xf8, 0xf5, 0xfb, 0xcc,
+ 0x6d, 0x87, 0x47, 0xef, 0x32, 0x2d, 0x68, 0xc2, 0x52, 0x67, 0xc5, 0x16,
+ 0x6b, 0xed, 0xb1, 0x35, 0x95, 0xdf, 0xf6, 0x5e, 0xc4, 0x76, 0xd9, 0x93,
+ 0x5f, 0xbd, 0xcb, 0x9e, 0xfe, 0xf6, 0xbb, 0xec, 0xc9, 0xff, 0x93, 0x65,
+ 0xff, 0xed, 0x64, 0xd9, 0xde, 0x2f, 0x93, 0x65, 0xfb, 0x9d, 0xc0, 0xa6,
+ 0x51, 0x57, 0xd9, 0xdb, 0xfc, 0xa3, 0x7a, 0xfd, 0x0f, 0x76, 0x76, 0x7e,
+ 0x86, 0xf3, 0xe4, 0x80, 0xee, 0xeb, 0x9f, 0x83, 0x32, 0x9e, 0x59, 0x27,
+ 0xd3, 0x72, 0x74, 0x76, 0xf4, 0xed, 0x48, 0x5c, 0xd6, 0xa2, 0x75, 0xa9,
+ 0x56, 0x06, 0x4e, 0x3e, 0xd0, 0xa8, 0x4a, 0xc9, 0xad, 0x40, 0xd7, 0xe7,
+ 0x52, 0x7f, 0xc9, 0xe0, 0x53, 0xdf, 0x3a, 0x8f, 0x29, 0xc7, 0xbf, 0x50,
+ 0x9c, 0x23, 0x13, 0xbe, 0x71, 0x7e, 0x31, 0xbc, 0x05, 0xd2, 0x74, 0x2d,
+ 0x11, 0x9f, 0xee, 0x74, 0x79, 0x7d, 0x11, 0x8f, 0x46, 0xe1, 0x5e, 0xd9,
+ 0x6a, 0x6e, 0x2a, 0xa4, 0x76, 0xe0, 0xb1, 0x6d, 0x4b, 0x0e, 0xf6, 0x40,
+ 0xef, 0xa4, 0x57, 0xdf, 0x80, 0x16, 0x77, 0x51, 0x65, 0x2b, 0xaa, 0xe7,
+ 0x5e, 0xde, 0x78, 0xbf, 0x55, 0x17, 0x5a, 0x8c, 0xdb, 0x42, 0x48, 0xde,
+ 0xbc, 0xf9, 0xa6, 0xf7, 0x82, 0x7c, 0xf4, 0xfc, 0x13, 0xe3, 0x4b, 0x2d,
+ 0xc1, 0xca, 0x0c, 0x35, 0x32, 0x51, 0xf2, 0x41, 0x3e, 0x62, 0xdb, 0xa8,
+ 0x35, 0x93, 0x87, 0xea, 0x36, 0xd4, 0x4f, 0x4d, 0x93, 0x01, 0x6c, 0x14,
+ 0xbf, 0x48, 0xe9, 0x37, 0xf2, 0x8f, 0x67, 0xf4, 0x61, 0xc4, 0x5a, 0xf9,
+ 0x9f, 0x37, 0xf8, 0x37, 0xe3, 0x0a, 0x98, 0x49, 0xca, 0x5b, 0xe7, 0x49,
+ 0x74, 0xa2, 0xf5, 0x60, 0xb2, 0xdf, 0x81, 0x19, 0x0e, 0xde, 0x95, 0x01,
+ 0x43, 0x12, 0xc6, 0xec, 0x6a, 0x99, 0x44, 0xd8, 0xf3, 0xbd, 0x63, 0x8d,
+ 0x96, 0x9f, 0xae, 0x48, 0x8e, 0xc9, 0x12, 0x9f, 0x6e, 0x52, 0xb9, 0x03,
+ 0xfc, 0x5a, 0x4f, 0x2e, 0x58, 0x2a, 0x4b, 0xd0, 0x67, 0xee, 0xd1, 0x10,
+ 0xe3, 0x4b, 0x75, 0x0c, 0xa4, 0xe7, 0x7b, 0xbb, 0x9f, 0x87, 0xde, 0xe6,
+ 0xf7, 0x9a, 0xd2, 0xe6, 0x18, 0x17, 0x01, 0x88, 0x00, 0xbc, 0x7c, 0xec,
+ 0x32, 0x39, 0x62, 0x1f, 0x8d, 0xe4, 0xbd, 0x91, 0x03, 0x80, 0x52, 0x8e,
+ 0x4b, 0xb1, 0x0d, 0x51, 0x3e, 0xab, 0x5b, 0x86, 0x9e, 0x53, 0x79, 0x6b,
+ 0x48, 0x49, 0xa1, 0x0b, 0x96, 0xb0, 0x7e, 0x20, 0x2d, 0x50, 0x31, 0x58,
+ 0x82, 0x4d, 0x7f, 0x76, 0xe4, 0x5d, 0x7f, 0x7c, 0xba, 0x4b, 0x6b, 0xaa,
+ 0x8d, 0xa4, 0x5c, 0x8e, 0x9d, 0xf7, 0xdc, 0x1f, 0x9f, 0xa4, 0xc3, 0x7f,
+ 0x22, 0x1b, 0xd3, 0xb3, 0xb6, 0x2b, 0xe1, 0x0f, 0x7d, 0x3e, 0xe1, 0xd7,
+ 0x44, 0x19, 0x33, 0x18, 0xa7, 0x55, 0x24, 0x85, 0x42, 0x6e, 0x02, 0x65,
+ 0x1a, 0x51, 0x9a, 0x0e, 0x7d, 0x0b, 0x94, 0x17, 0xc0, 0xd6, 0x72, 0xf9,
+ 0x2d, 0xfb, 0xf3, 0x24, 0x6c, 0xce, 0x73, 0xd5, 0xfb, 0xd5, 0x41, 0xfb,
+ 0x01, 0x41, 0x56, 0x3a, 0xeb, 0x53, 0x14, 0x2f, 0x42, 0xa3, 0xc4, 0xca,
+ 0x43, 0xeb, 0x23, 0x44, 0x75, 0x75, 0xe7, 0xb9, 0x12, 0x98, 0xa7, 0xfe,
+ 0x0a, 0x4e, 0x7b, 0x8b, 0xbf, 0x30, 0xbf, 0xa7, 0x68, 0x6c, 0xec, 0x36,
+ 0xab, 0x27, 0x55, 0x26, 0xc1, 0x11, 0x22, 0x3b, 0x44, 0xe4, 0x95, 0x98,
+ 0x02, 0xcd, 0x4d, 0x76, 0x9d, 0x69, 0xf2, 0xa4, 0x1d, 0xb7, 0x12, 0x64,
+ 0x80, 0x15, 0x63, 0x18, 0x01, 0x25, 0x7b, 0xa0, 0x23, 0x5b, 0xaf, 0x95,
+ 0x26, 0x88, 0x69, 0x34, 0xe8, 0x75, 0x4d, 0x65, 0xb5, 0x14, 0x8b, 0x0b,
+ 0x2a, 0x3b, 0x56, 0xdf, 0xe4, 0xdd, 0xfa, 0xcc, 0x5b, 0x83, 0x57, 0xe5,
+ 0xab, 0xc1, 0xb6, 0x6c, 0xf2, 0xf2, 0xd6, 0xd8, 0xee, 0x64, 0xbf, 0xa1,
+ 0xab, 0x14, 0xa9, 0xbd, 0x81, 0xa7, 0x49, 0x2e, 0x34, 0xa4, 0x61, 0x10,
+ 0x7a, 0x12, 0xb7, 0x3b, 0x62, 0x03, 0x41, 0x3d, 0x0c, 0xee, 0x58, 0x45,
+ 0x41, 0x5a, 0x91, 0x78, 0xe4, 0x95, 0x32, 0x73, 0x75, 0xc5, 0xd8, 0x2e,
+ 0xe4, 0x75, 0x52, 0x04, 0x5b, 0x38, 0x95, 0xd9, 0x1d, 0x5e, 0x2e, 0xda,
+ 0xb7, 0x13, 0xa5, 0x08, 0xab, 0x74, 0x78, 0xa9, 0x82, 0xe5, 0xcb, 0x07,
+ 0x13, 0x00, 0xac, 0x08, 0xba, 0x12, 0x5f, 0x0e, 0x1d, 0x3f, 0x24, 0x84,
+ 0x30, 0x17, 0xf3, 0xe4, 0x26, 0x9b, 0x4b, 0xdd, 0x90, 0x5f, 0x58, 0x05,
+ 0xbd, 0xd3, 0x27, 0x86, 0xc6, 0x5d, 0x35, 0x8b, 0xe1, 0xbc, 0xfc, 0xbb,
+ 0x99, 0xe3, 0x94, 0x0a, 0x91, 0x05, 0x87, 0x82, 0xb8, 0xe5, 0x0a, 0x5e,
+ 0x14, 0x48, 0xdc, 0x65, 0x61, 0xcd, 0x61, 0x27, 0xc4, 0x95, 0x35, 0x1b,
+ 0x69, 0xef, 0xc9, 0x91, 0xe9, 0xf1, 0xf1, 0x87, 0xf7, 0xef, 0x46, 0xef,
+ 0xcf, 0xbb, 0x67, 0xff, 0xfc, 0xec, 0xe2, 0xf2, 0xf8, 0xf5, 0x87, 0xf3,
+ 0x8b, 0xb3, 0xcb, 0xb3, 0xa3, 0xb3, 0xd3, 0x64, 0x6b, 0x6f, 0x7b, 0x6d,
+ 0x9a, 0x97, 0x75, 0xc4, 0x78, 0xb4, 0x81, 0xda, 0x7f, 0x96, 0x5a, 0xb6,
+ 0x0b, 0x5b, 0x34, 0x9e, 0xb0, 0xb5, 0xef, 0x65, 0x6f, 0xb5, 0x88, 0x98,
+ 0xe1, 0x8f, 0xc1, 0xf5, 0x06, 0xb9, 0x9e, 0x26, 0xd7, 0x4b, 0x3a, 0x26,
+ 0x36, 0xce, 0xcf, 0xf2, 0x1a, 0x94, 0x99, 0x81, 0x22, 0xa6, 0xa1, 0x46,
+ 0x2f, 0x43, 0x68, 0xad, 0x57, 0xf2, 0x59, 0x57, 0x6b, 0xa1, 0x35, 0x80,
+ 0x32, 0xea, 0x76, 0x45, 0x1d, 0xdf, 0x16, 0x76, 0x5f, 0x30, 0xab, 0x08,
+ 0x38, 0xa9, 0xed, 0x2b, 0x60, 0xec, 0x97, 0xe8, 0x0f, 0xf2, 0x6a, 0x59,
+ 0xbd, 0x1d, 0x26, 0xe7, 0x61, 0x71, 0x1d, 0x79, 0x63, 0x9a, 0x15, 0x52,
+ 0xe1, 0x51, 0xfa, 0x81, 0xd8, 0x1f, 0x4d, 0xaf, 0xc4, 0xa2, 0xcd, 0x03,
+ 0xf4, 0x5b, 0x6f, 0xae, 0x86, 0x50, 0xe4, 0x02, 0xc7, 0x39, 0xbf, 0x7d,
+ 0x85, 0xf2, 0x82, 0x77, 0x5e, 0x9f, 0xa8, 0x3d, 0x52, 0xcb, 0x40, 0x0a,
+ 0x18, 0x91, 0xb1, 0xc7, 0x1a, 0x57, 0xe2, 0x1c, 0x1f, 0x9c, 0x49, 0x68,
+ 0x30, 0xca, 0x35, 0x33, 0xf2, 0xc7, 0xf2, 0xc0, 0x46, 0xe6, 0x49, 0x24,
+ 0x1f, 0x7f, 0x9f, 0xd6, 0xbe, 0xcf, 0x1b, 0x5a, 0x02, 0x6a, 0x6b, 0x12,
+ 0x0c, 0x1c, 0x67, 0x8b, 0xef, 0x99, 0x43, 0x87, 0x28, 0x5e, 0xe0, 0x46,
+ 0xe3, 0x75, 0x45, 0x13, 0x3d, 0xcd, 0xed, 0xd2, 0x9d, 0x5c, 0xdc, 0x36,
+ 0x9a, 0x7f, 0x2f, 0x85, 0x3a, 0x85, 0x85, 0x98, 0xf8, 0x3b, 0x8c, 0x86,
+ 0x7f, 0x20, 0x18, 0x2b, 0x06, 0x1d, 0x25, 0x9c, 0xbd, 0xcf, 0x61, 0x89,
+ 0xd1, 0xd1, 0x79, 0x8c, 0x3f, 0xc2, 0xa5, 0xf3, 0xb3, 0xc0, 0xd5, 0x6a,
+ 0xb4, 0xbb, 0xc3, 0xdd, 0x64, 0xf4, 0xf6, 0x2b, 0xa1, 0x53, 0xfc, 0x6a,
+ 0xc4, 0xe4, 0xd4, 0xa4, 0x64, 0xeb, 0x1b, 0xc3, 0x38, 0x65, 0x15, 0x84,
+ 0x07, 0x29, 0x32, 0x74, 0x86, 0xff, 0x84, 0xbf, 0x29, 0xce, 0x99, 0x7f,
+ 0xee, 0x46, 0x8d, 0x03, 0xa0, 0xe3, 0xee, 0x47, 0x73, 0xe0, 0x39, 0xee,
+ 0x43, 0x95, 0x58, 0xa3, 0xe3, 0x1e, 0xae, 0x27, 0xef, 0xda, 0x0f, 0xce,
+ 0xc3, 0x23, 0x4f, 0xc2, 0x63, 0x8e, 0x82, 0xa8, 0x34, 0x2a, 0xc4, 0xbb,
+ 0xd3, 0x71, 0xde, 0xda, 0xaa, 0x19, 0xa5, 0xfa, 0xc0, 0x8d, 0x3d, 0xcb,
+ 0xae, 0xa0, 0xc3, 0x21, 0x05, 0xaf, 0x8f, 0x5f, 0x22, 0x66, 0x67, 0x71,
+ 0x59, 0xb2, 0x14, 0x91, 0xc5, 0x42, 0x6e, 0x94, 0x53, 0x8a, 0x95, 0xf4,
+ 0xad, 0x3b, 0x07, 0x7f, 0x42, 0xdd, 0x4f, 0x66, 0xbc, 0xcd, 0x6b, 0x8f,
+ 0xbc, 0x01, 0x44, 0x8b, 0xb9, 0xc6, 0xe5, 0xbc, 0xb3, 0x34, 0xa3, 0xa4,
+ 0xbe, 0x7b, 0xce, 0x07, 0x0c, 0x92, 0x17, 0xa0, 0x48, 0x4d, 0xc9, 0x30,
+ 0x70, 0x08, 0x54, 0x2f, 0x73, 0xa5, 0x28, 0x1d, 0x8d, 0x97, 0x68, 0x46,
+ 0xa1, 0x6c, 0x1c, 0x24, 0xc9, 0xeb, 0xac, 0xb8, 0x6f, 0x77, 0xa8, 0x0f,
+ 0x12, 0x8e, 0x5b, 0xf6, 0xaf, 0xb3, 0xab, 0x9c, 0x83, 0x84, 0x0a, 0x08,
+ 0x75, 0x5d, 0x0c, 0xbb, 0xd4, 0xee, 0x73, 0x4c, 0x02, 0xbc, 0xb2, 0xd3,
+ 0xa0, 0xa9, 0xe0, 0xfe, 0x64, 0x6c, 0x81, 0xef, 0x41, 0xc3, 0x8a, 0xf8,
+ 0xe4, 0x63, 0xa6, 0x01, 0x3c, 0x76, 0xb0, 0x8f, 0xea, 0xe5, 0xf8, 0xaf,
+ 0xa8, 0x0d, 0x4d, 0xd6, 0xc0, 0x2c, 0x85, 0xc3, 0x85, 0x27, 0x42, 0x29,
+ 0xfe, 0xc8, 0xdd, 0x63, 0x9e, 0xe2, 0x48, 0x58, 0xe8, 0xf5, 0xa6, 0xda,
+ 0x30, 0x88, 0x78, 0x2a, 0x6d, 0x77, 0x7b, 0x17, 0xa0, 0x4f, 0xeb, 0xb2,
+ 0xac, 0x0e, 0x36, 0x56, 0x08, 0xcb, 0xc1, 0x15, 0x49, 0x27, 0x46, 0x71,
+ 0x75, 0xae, 0x31, 0x9e, 0x4d, 0x46, 0x0e, 0x5a, 0x1c, 0x2b, 0x3d, 0xbe,
+ 0xb2, 0x2d, 0x95, 0x79, 0x75, 0xff, 0x4f, 0xf4, 0x47, 0x38, 0x8a, 0x56,
+ 0xdc, 0x87, 0xe6, 0x59, 0x4f, 0x3b, 0x3d, 0x0e, 0xf1, 0x81, 0xd7, 0x57,
+ 0x7d, 0xe0, 0x95, 0x13, 0xa8, 0xeb, 0xdb, 0x86, 0xec, 0x79, 0xcc, 0x07,
+ 0xde, 0x17, 0x4a, 0x90, 0xa6, 0xfb, 0x7b, 0x61, 0x59, 0xdb, 0xef, 0xd2,
+ 0xaa, 0x00, 0x50, 0xdd, 0xb7, 0x29, 0x88, 0x56, 0x63, 0x21, 0x25, 0x1d,
+ 0xd2, 0x2b, 0x82, 0xf8, 0x56, 0x99, 0xa3, 0x98, 0x25, 0x9f, 0x0a, 0x93,
+ 0xe7, 0x08, 0x6f, 0xb5, 0x22, 0x4e, 0x17, 0x65, 0xc3, 0x0c, 0xda, 0x84,
+ 0x09, 0x26, 0x9d, 0xa1, 0x22, 0xd7, 0x8d, 0x37, 0xc9, 0xaa, 0x6c, 0x52,
+ 0x6b, 0x76, 0x37, 0xc1, 0xc3, 0xb1, 0x5c, 0x94, 0x85, 0x4b, 0x28, 0x90,
+ 0x68, 0xae, 0x27, 0x67, 0xe4, 0x8b, 0x8c, 0xec, 0x82, 0xd7, 0xc9, 0x12,
+ 0x6d, 0xdf, 0x96, 0x39, 0xc1, 0xb3, 0x36, 0xec, 0x95, 0x60, 0xf4, 0x20,
+ 0xb7, 0x4b, 0x2e, 0xc3, 0x22, 0x10, 0x30, 0x55, 0x2c, 0x9e, 0x46, 0x6c,
+ 0x15, 0x72, 0x30, 0x01, 0xee, 0x04, 0xd7, 0x81, 0x97, 0x45, 0xc4, 0xe7,
+ 0x5b, 0x9b, 0x03, 0xe8, 0x22, 0x65, 0xfe, 0x36, 0xb3, 0x27, 0x8b, 0xb4,
+ 0xd1, 0x03, 0xe3, 0x49, 0x44, 0xea, 0x1e, 0xc8, 0x15, 0x0a, 0xb2, 0x1f,
+ 0x26, 0x96, 0xd9, 0xa8, 0x4b, 0x92, 0xdd, 0xae, 0x6e, 0x6c, 0x6f, 0x55,
+ 0x0b, 0x0e, 0x75, 0x0a, 0xe3, 0xf0, 0x01, 0x31, 0xfe, 0xe9, 0x5e, 0xd1,
+ 0x68, 0xeb, 0x95, 0x99, 0x05, 0x52, 0x85, 0xcd, 0x3c, 0xe7, 0x0d, 0x56,
+ 0xac, 0x83, 0x87, 0x55, 0x98, 0xa8, 0x94, 0xd6, 0x98, 0x2f, 0xbb, 0x47,
+ 0xbe, 0xd0, 0xf0, 0x9f, 0x05, 0xff, 0x30, 0x5b, 0x14, 0xf4, 0x08, 0xf1,
+ 0x78, 0x70, 0xd5, 0x00, 0xd8, 0xbb, 0x5a, 0x4a, 0x81, 0x5c, 0x39, 0x08,
+ 0x08, 0xc6, 0xfd, 0x88, 0x3b, 0x96, 0x27, 0xc6, 0x6c, 0x98, 0x62, 0x3a,
+ 0x30, 0x42, 0x60, 0xb1, 0xc6, 0x73, 0xfa, 0xa9, 0xaf, 0x83, 0x6e, 0xe1,
+ 0x68, 0x7d, 0x66, 0x0a, 0xfe, 0x09, 0xa3, 0xf5, 0x64, 0xee, 0x42, 0x1c,
+ 0xba, 0x51, 0x09, 0x9e, 0xc4, 0x66, 0x32, 0x86, 0x07, 0x0c, 0x6d, 0x85,
+ 0x95, 0xb5, 0x04, 0x12, 0x9e, 0x3f, 0x9e, 0x40, 0x9d, 0xb0, 0x55, 0xd8,
+ 0x29, 0x9e, 0x3e, 0x99, 0xb9, 0xf7, 0x9c, 0xa7, 0x85, 0x36, 0x91, 0x80,
+ 0x5b, 0x08, 0x02, 0xdb, 0xfb, 0x16, 0x1b, 0x45, 0xc1, 0x3c, 0x82, 0xba,
+ 0x89, 0x69, 0xe9, 0xf9, 0x39, 0xb9, 0x96, 0xac, 0xa8, 0x0b, 0x3a, 0xa9,
+ 0x7c, 0xdf, 0x11, 0xbf, 0x0a, 0xe4, 0x24, 0x3e, 0x44, 0x1d, 0xcb, 0xd7,
+ 0x92, 0x22, 0xac, 0x58, 0x8c, 0x18, 0x1f, 0xc8, 0xb4, 0x03, 0x6e, 0xd5,
+ 0x9f, 0x73, 0x11, 0xef, 0x38, 0xa2, 0x6e, 0x24, 0xe7, 0x4d, 0x4b, 0x7d,
+ 0x43, 0x4e, 0x2b, 0x9c, 0xd1, 0x73, 0xb4, 0x71, 0x6d, 0xa3, 0x4f, 0xcd,
+ 0x63, 0x60, 0xa6, 0x93, 0x94, 0xc9, 0x40, 0x04, 0xb3, 0x22, 0x0d, 0xbb,
+ 0x7f, 0xba, 0xdf, 0x9a, 0xd1, 0xc5, 0x84, 0x34, 0xad, 0xd5, 0x6a, 0x8f,
+ 0x45, 0xfb, 0x2b, 0x2f, 0xcd, 0x89, 0x5e, 0x37, 0x28, 0x3c, 0xf4, 0x6b,
+ 0x06, 0xd5, 0x2a, 0x8b, 0x2e, 0x63, 0x90, 0x3e, 0x77, 0x56, 0x84, 0x3f,
+ 0xb2, 0x36, 0x8a, 0xb0, 0x62, 0x08, 0xa6, 0xcd, 0x35, 0x55, 0x48, 0xbd,
+ 0x61, 0xd8, 0x07, 0x7f, 0xe9, 0x48, 0x1e, 0x9e, 0x46, 0x6c, 0x0d, 0xfa,
+ 0xef, 0x8f, 0x07, 0x70, 0xa9, 0x4d, 0x7f, 0x5e, 0xd9, 0x8f, 0xe3, 0xbe,
+ 0xf4, 0xe5, 0x77, 0xe8, 0x46, 0xbe, 0xb8, 0x21, 0x7f, 0xc9, 0xcb, 0x58,
+ 0x02, 0x8f, 0x37, 0x11, 0xf2, 0xd8, 0x6f, 0xff, 0xfd, 0x6a, 0xe6, 0x38,
+ 0x73, 0xd6, 0x7c, 0x5f, 0x1e, 0xfb, 0xcd, 0xbf, 0xcf, 0x67, 0x77, 0xfd,
+ 0xe5, 0x62, 0xa5, 0xe2, 0x6b, 0x41, 0x49, 0xb7, 0x25, 0x8e, 0xbb, 0x55,
+ 0x7e, 0x85, 0x50, 0x14, 0xe0, 0x75, 0x28, 0x15, 0xe5, 0x5b, 0xd1, 0xea,
+ 0x0e, 0xbe, 0x58, 0xfc, 0x4d, 0x24, 0x18, 0x44, 0x73, 0x38, 0x39, 0x52,
+ 0x6e, 0xe5, 0x25, 0xff, 0xb9, 0xf3, 0xe7, 0xd8, 0x1a, 0xd9, 0x84, 0x0e,
+ 0xba, 0x06, 0xb5, 0x40, 0x0b, 0x6a, 0x7e, 0x30, 0x07, 0x81, 0xa8, 0xbc,
+ 0xb6, 0x5a, 0x05, 0x4d, 0x96, 0xc2, 0x50, 0xe8, 0xd5, 0x58, 0x55, 0x18,
+ 0x99, 0x21, 0xc5, 0xa2, 0x5a, 0xee, 0x6e, 0x0b, 0x42, 0x22, 0xc5, 0x23,
+ 0xf3, 0x3e, 0x58, 0x5b, 0xc2, 0x97, 0x58, 0x60, 0xd6, 0xaf, 0xae, 0xe9,
+ 0x18, 0x51, 0xbf, 0xe9, 0x4b, 0x55, 0x16, 0xd3, 0x1c, 0x6d, 0x2b, 0x41,
+ 0x62, 0xea, 0x7e, 0xc2, 0x72, 0x86, 0xcc, 0x31, 0x8c, 0xb2, 0x27, 0xdd,
+ 0x74, 0xc6, 0x98, 0xdf, 0xe4, 0xe8, 0xec, 0xdd, 0xbb, 0xe3, 0xa3, 0x6e,
+ 0xa4, 0xd0, 0x65, 0x35, 0xc0, 0x43, 0x2b, 0xaa, 0x7e, 0x50, 0x15, 0x10,
+ 0x5f, 0x67, 0xba, 0x77, 0x1b, 0x7e, 0xe1, 0x1e, 0xa0, 0x66, 0x10, 0x67,
+ 0xe2, 0xe0, 0xd7, 0x92, 0xd2, 0x23, 0x94, 0xa0, 0xbc, 0x03, 0x22, 0x39,
+ 0x63, 0xc1, 0x7e, 0x70, 0xde, 0x08, 0xb8, 0xa5, 0xa8, 0x64, 0x24, 0x6b,
+ 0xa0, 0x30, 0x31, 0xb5, 0x07, 0x5c, 0x39, 0x71, 0x3a, 0xdd, 0x11, 0x4c,
+ 0xb4, 0xd4, 0x3c, 0x0f, 0x8d, 0x19, 0xbb, 0x97, 0x99, 0x42, 0x8c, 0x52,
+ 0x4f, 0x06, 0xe5, 0x15, 0x17, 0x28, 0x9d, 0xa7, 0xd5, 0x47, 0x8a, 0x34,
+ 0x7a, 0x49, 0x28, 0x48, 0x43, 0x04, 0xa1, 0xf1, 0x74, 0x1a, 0xcb, 0x6f,
+ 0x4f, 0xe1, 0xf2, 0xf5, 0x20, 0xf7, 0xd2, 0x21, 0xa9, 0xe8, 0x77, 0xa0,
+ 0xd9, 0x81, 0xf4, 0x7a, 0x91, 0xdd, 0xd1, 0x67, 0x98, 0xd6, 0x83, 0xf2,
+ 0xd4, 0xc3, 0x0a, 0x01, 0xcc, 0x4a, 0xcd, 0x1e, 0xfa, 0x7b, 0xc9, 0x8f,
+ 0xa7, 0xb5, 0x9a, 0x33, 0x03, 0x3f, 0x78, 0x7e, 0xa9, 0xac, 0x15, 0x67,
+ 0x96, 0x04, 0x73, 0xf5, 0x8d, 0xb2, 0xfe, 0x79, 0x00, 0x3d, 0xae, 0xf2,
+ 0xd3, 0x26, 0x22, 0x73, 0x9c, 0x3c, 0xe3, 0xcc, 0x67, 0xf0, 0x5b, 0x15,
+ 0x4d, 0xc6, 0x7c, 0x63, 0x21, 0xc8, 0x5e, 0x91, 0xea, 0x09, 0xf2, 0xba,
+ 0x2e, 0x6e, 0xba, 0x22, 0x8e, 0x36, 0x22, 0xf2, 0x6d, 0x18, 0xce, 0x10,
+ 0x62, 0xcf, 0xba, 0x1c, 0xb2, 0xe0, 0x3e, 0x85, 0xc3, 0x91, 0x78, 0xd5,
+ 0xae, 0x01, 0xa1, 0x67, 0x28, 0x3c, 0x8e, 0x6b, 0xa0, 0xe8, 0x02, 0xd5,
+ 0x8a, 0x0c, 0xb3, 0xbe, 0x56, 0xd2, 0xa6, 0xfd, 0x6a, 0x26, 0x98, 0x96,
+ 0x42, 0xa6, 0x5f, 0x59, 0x52, 0xd8, 0xa1, 0x2f, 0x47, 0x38, 0x2f, 0x16,
+ 0xcb, 0x26, 0x08, 0xcb, 0x11, 0x67, 0x14, 0x33, 0x05, 0xfc, 0x79, 0x10,
+ 0xd6, 0x58, 0x4a, 0xa7, 0xfe, 0xaa, 0x42, 0x84, 0xc3, 0xfa, 0xaf, 0x1b,
+ 0x23, 0x00, 0xd6, 0x7a, 0x69, 0x7d, 0x9b, 0xc6, 0x19, 0x35, 0x82, 0x3f,
+ 0xe7, 0x38, 0xaa, 0xdb, 0xae, 0x3b, 0x70, 0x2f, 0x74, 0x77, 0x83, 0x7d,
+ 0x4b, 0x85, 0xc4, 0x3a, 0x56, 0x10, 0xf0, 0x16, 0x76, 0xe4, 0x9f, 0xb1,
+ 0x73, 0xc8, 0xfb, 0x94, 0xad, 0xba, 0x96, 0x3e, 0x32, 0x11, 0x25, 0x3f,
+ 0xf4, 0xdb, 0xdf, 0x4d, 0xeb, 0x6b, 0xa5, 0xbb, 0xcb, 0xd1, 0x3e, 0xf7,
+ 0x7b, 0xf4, 0x20, 0x5a, 0x7c, 0xbc, 0xf5, 0xed, 0xc7, 0x7f, 0x36, 0x20,
+ 0xd0, 0x7b, 0xc0, 0x2f, 0xe7, 0x6e, 0xde, 0x07, 0xf9, 0x21, 0x21, 0x75,
+ 0x03, 0xa8, 0xab, 0x77, 0x27, 0xaf, 0xbd, 0x85, 0x1d, 0x21, 0x80, 0x7f,
+ 0x11, 0x47, 0xc2, 0xdf, 0xb1, 0x8e, 0x48, 0x38, 0xe7, 0x71, 0x97, 0xf2,
+ 0x83, 0x97, 0x70, 0x2b, 0x9d, 0xb4, 0x8b, 0xb4, 0xb2, 0xd9, 0x64, 0x8f,
+ 0x9f, 0xb8, 0x30, 0x85, 0xf2, 0x1f, 0x53, 0x58, 0x90, 0xc2, 0xd6, 0x52,
+ 0x57, 0xf0, 0x89, 0xd6, 0x24, 0x3c, 0xe6, 0x5e, 0x0a, 0xa6, 0xc4, 0xad,
+ 0x41, 0x44, 0x5b, 0x09, 0x67, 0x61, 0x1d, 0x90, 0xde, 0x6d, 0x4f, 0x3c,
+ 0xf5, 0x9b, 0x1f, 0x8b, 0xff, 0x3e, 0x28, 0x70, 0xcf, 0x33, 0x11, 0x81,
+ 0x81, 0xff, 0x3f, 0x14, 0xf8, 0xff, 0x43, 0x81, 0xff, 0xc3, 0x28, 0xf0,
+ 0xdf, 0x12, 0x8f, 0x8c, 0xd3, 0x43, 0xeb, 0x91, 0x4f, 0x24, 0xc1, 0xe6,
+ 0xe5, 0x4a, 0x9e, 0x54, 0xab, 0x6d, 0x05, 0x1c, 0x73, 0x5e, 0xdc, 0x56,
+ 0xda, 0x62, 0xb5, 0xc6, 0xaa, 0xef, 0x01, 0xeb, 0x91, 0x6c, 0x96, 0x08,
+ 0xa2, 0xcc, 0x8f, 0xaa, 0x3e, 0x89, 0x9d, 0xf5, 0xba, 0x9e, 0x0d, 0xd0,
+ 0x03, 0x4a, 0x7e, 0x0d, 0x2c, 0x45, 0x27, 0x69, 0x3a, 0xcf, 0xfd, 0xf6,
+ 0x42, 0xa7, 0x99, 0xd5, 0x24, 0x09, 0x1f, 0xa3, 0x10, 0xf8, 0x8f, 0xfe,
+ 0x1e, 0xfd, 0xb0, 0x10, 0xa0, 0x97, 0x8c, 0xef, 0x59, 0xdb, 0x13, 0xfb,
+ 0xf0, 0xef, 0xd1, 0x13, 0xa4, 0xd4, 0x46, 0xf7, 0x50, 0xab, 0x0f, 0x78,
+ 0xec, 0xf7, 0xf8, 0xfe, 0xed, 0xde, 0xaa, 0xcf, 0xa2, 0x00, 0x20, 0x9e,
+ 0xf8, 0x0d, 0x3f, 0xfc, 0xde, 0x9a, 0xf4, 0x9c, 0x7e, 0xfc, 0x92, 0xfe,
+ 0x7b, 0xa0, 0x33, 0xbc, 0xae, 0xb2, 0x50, 0xab, 0x5a, 0x54, 0xab, 0x6a,
+ 0xae, 0x96, 0x35, 0x16, 0x0c, 0xdd, 0xfa, 0x04, 0xff, 0xd5, 0x19, 0xfc,
+ 0xec, 0x0f, 0x4f, 0x94, 0xce, 0x95, 0xa9, 0xb6, 0x07, 0x4a, 0x04, 0xc5,
+ 0x94, 0x07, 0xcc, 0x42, 0x41, 0x1d, 0x30, 0x66, 0x1d, 0xb3, 0xa2, 0x74,
+ 0x59, 0x70, 0xac, 0x12, 0x60, 0x7a, 0x14, 0xd3, 0x5d, 0xd8, 0x5a, 0xe1,
+ 0x4f, 0x32, 0xaf, 0x6c, 0x2b, 0x31, 0x2d, 0x40, 0x56, 0xcc, 0x98, 0x30,
+ 0x6d, 0xe5, 0x04, 0x40, 0x60, 0x83, 0x65, 0xc0, 0x67, 0x0f, 0x19, 0xb3,
+ 0xd3, 0x21, 0x28, 0x09, 0x22, 0x31, 0x6f, 0xbd, 0x33, 0x3d, 0x30, 0x99,
+ 0x27, 0x22, 0x0f, 0x92, 0xde, 0xe0, 0x7d, 0x72, 0xd0, 0xfb, 0x1d, 0x25,
+ 0xa9, 0xe7, 0xda, 0xf9, 0xd5, 0x40, 0xd5, 0x75, 0xb0, 0x4d, 0x0f, 0xba,
+ 0x27, 0x6a, 0xc5, 0x43, 0x78, 0xcd, 0x2b, 0xe2, 0xce, 0x4d, 0xde, 0x75,
+ 0x17, 0x20, 0x82, 0x7d, 0x24, 0x7c, 0x07, 0xc3, 0x29, 0xec, 0xe8, 0x1a,
+ 0xe4, 0x8d, 0x22, 0xfd, 0xde, 0x0f, 0xb8, 0xbc, 0x0f, 0x2a, 0x91, 0x3a,
+ 0x3c, 0x67, 0x0b, 0xc1, 0xe9, 0x00, 0x9c, 0x04, 0x18, 0x70, 0xf0, 0x4d,
+ 0x80, 0x98, 0xd9, 0xef, 0x84, 0xd2, 0xed, 0x81, 0x3b, 0x07, 0x4c, 0xa3,
+ 0xab, 0xc1, 0x9b, 0x46, 0x89, 0xf3, 0x02, 0x60, 0x8e, 0x16, 0x8c, 0xbc,
+ 0x16, 0xf1, 0xd0, 0x0b, 0xf6, 0x21, 0x78, 0xa2, 0x3f, 0x0b, 0x0a, 0x3e,
+ 0xf9, 0x47, 0x5f, 0x9b, 0xba, 0xcd, 0x53, 0x8e, 0x69, 0xf2, 0x34, 0xca,
+ 0x87, 0x78, 0x3e, 0xb5, 0xe4, 0xea, 0x5a, 0xe7, 0x36, 0x33, 0x29, 0x44,
+ 0xf2, 0xaf, 0xde, 0x8d, 0x46, 0x21, 0x86, 0xb3, 0x30, 0xf7, 0x7d, 0x79,
+ 0x5d, 0xe4, 0x7f, 0x07, 0xeb, 0x00, 0xc5, 0x05, 0xba, 0xd0, 0xab, 0x16,
+ 0x8c, 0x56, 0xe3, 0x5c, 0xc4, 0xad, 0x43, 0xd1, 0xc7, 0xee, 0x6a, 0x08,
+ 0x82, 0x04, 0x42, 0x8a, 0x60, 0x10, 0xc4, 0x4d, 0x22, 0xf3, 0xc8, 0xf5,
+ 0xb5, 0xb9, 0xd2, 0x82, 0x20, 0x55, 0x75, 0x74, 0xf2, 0xe1, 0x60, 0x71,
+ 0x75, 0x57, 0x08, 0x54, 0xf1, 0xbf, 0x01, 0xe6, 0x35, 0xce, 0xac, 0x91,
+ 0x7d, 0xca, 0x6b, 0x28, 0x89, 0xbe, 0xc4, 0xf0, 0x12, 0xf3, 0x95, 0xba,
+ 0x33, 0xac, 0xd5, 0x74, 0xe3, 0xa0, 0xca, 0x2c, 0x78, 0x1f, 0xc5, 0x60,
+ 0x64, 0x1a, 0x6a, 0x62, 0x14, 0xfd, 0x11, 0xf2, 0x22, 0xeb, 0x3a, 0x7c,
+ 0x04, 0x6b, 0x11, 0xf9, 0xc6, 0x94, 0x78, 0x56, 0x5c, 0x54, 0x60, 0x64,
+ 0xe7, 0x62, 0x7f, 0x19, 0x53, 0x0d, 0x51, 0xa7, 0xdc, 0x91, 0xe4, 0x03,
+ 0x1b, 0xad, 0x17, 0xb6, 0x20, 0x4e, 0x7f, 0xd2, 0x67, 0x51, 0xd5, 0x4f,
+ 0x52, 0x2c, 0x32, 0x94, 0xdd, 0x45, 0x03, 0x54, 0x85, 0x06, 0xa9, 0x00,
+ 0xea, 0x0d, 0x33, 0xbf, 0xa6, 0xec, 0x02, 0xdd, 0x15, 0xdd, 0xad, 0xa5,
+ 0x34, 0xc0, 0x5e, 0x17, 0x39, 0xf4, 0x2a, 0x6e, 0x33, 0x5b, 0xdf, 0xc6,
+ 0x51, 0x7d, 0x23, 0xab, 0x57, 0x8a, 0xa2, 0x87, 0x74, 0x83, 0x3a, 0x4d,
+ 0xcd, 0xd2, 0x28, 0xc7, 0x44, 0x0e, 0xc8, 0xd8, 0x77, 0xbb, 0x57, 0xfa,
+ 0x24, 0x7d, 0x58, 0xe4, 0x8a, 0xf1, 0x3b, 0x58, 0xa8, 0x94, 0xed, 0x0e,
+ 0xf6, 0x5e, 0x1a, 0x59, 0x51, 0x1c, 0xfa, 0xff, 0x0e, 0xa8, 0xb4, 0xbb,
+ 0x29, 0xe8, 0xd6, 0x09, 0xef, 0x09, 0x40, 0x0d, 0xc8, 0xc8, 0x61, 0x6c,
+ 0xc1, 0x5d, 0x6a, 0x19, 0xea, 0xa3, 0x4a, 0x7a, 0xfc, 0x30, 0xf5, 0xdb,
+ 0xe8, 0xb0, 0x2c, 0x90, 0x91, 0x5b, 0x22, 0x35, 0xb6, 0x57, 0x10, 0x38,
+ 0x64, 0x94, 0xa8, 0x39, 0xcd, 0x84, 0x7c, 0xe5, 0x4f, 0x8e, 0x21, 0xfe,
+ 0xf7, 0x36, 0x73, 0xf6, 0x8c, 0x6c, 0x7e, 0xe9, 0xdd, 0xc7, 0x5f, 0x3e,
+ 0x78, 0x21, 0xe3, 0x9c, 0xd1, 0x6b, 0x8e, 0xdc, 0xcc, 0x93, 0x77, 0x8e,
+ 0xe5, 0xa4, 0x8e, 0x31, 0xb2, 0xd9, 0x66, 0x44, 0xd8, 0x59, 0xf1, 0x46,
+ 0x58, 0x13, 0x7a, 0x7f, 0x85, 0x80, 0xcb, 0x94, 0xed, 0x48, 0x09, 0xb4,
+ 0x8d, 0x44, 0x1f, 0x67, 0xcd, 0x5d, 0x96, 0x09, 0x9f, 0x9d, 0x4e, 0xa4,
+ 0x27, 0x05, 0x64, 0x8a, 0x56, 0x06, 0x91, 0xfb, 0x1c, 0xa4, 0x27, 0x81,
+ 0xc2, 0x14, 0x8d, 0xb6, 0x2e, 0xb5, 0xc6, 0x4a, 0x82, 0xd3, 0x97, 0xc4,
+ 0x4a, 0x3e, 0xb8, 0xb8, 0x4f, 0x6b, 0x6e, 0x14, 0xe2, 0xd6, 0x02, 0xb4,
+ 0x2b, 0x1c, 0x40, 0x1e, 0xf4, 0xdd, 0x66, 0xf6, 0x18, 0xcb, 0xb1, 0x8d,
+ 0x3a, 0x14, 0x6c, 0x52, 0x0e, 0x77, 0x47, 0x97, 0xdf, 0xd3, 0xb4, 0xda,
+ 0x6e, 0x77, 0xac, 0x3d, 0x6e, 0xc7, 0x48, 0xce, 0x97, 0x36, 0xa4, 0xb7,
+ 0x28, 0xbc, 0xd5, 0x3c, 0x15, 0x12, 0xe6, 0x61, 0xf9, 0x61, 0xe7, 0x61,
+ 0xf5, 0xb1, 0xd0, 0x61, 0xd2, 0x38, 0xe7, 0x19, 0xe1, 0x8b, 0xe4, 0xb8,
+ 0xe6, 0x4a, 0x61, 0x40, 0x1f, 0x1b, 0x20, 0x18, 0xe5, 0x64, 0x25, 0xb3,
+ 0x25, 0x99, 0xaf, 0x04, 0xee, 0x7f, 0xf3, 0xd5, 0x74, 0x61, 0x3e, 0x44,
+ 0xce, 0x7d, 0xb0, 0x14, 0x4e, 0x3d, 0x89, 0xc7, 0x79, 0x3f, 0xb2, 0x20,
+ 0xba, 0x56, 0xae, 0x92, 0x7a, 0x08, 0x55, 0x0c, 0xb8, 0x4b, 0x35, 0xd9,
+ 0x88, 0xe5, 0x92, 0xc0, 0x5c, 0xc5, 0x1f, 0xa1, 0x21, 0x2c, 0x71, 0x94,
+ 0xd2, 0xae, 0x8c, 0x13, 0xf9, 0x08, 0xdf, 0x55, 0x21, 0x69, 0x4d, 0x1d,
+ 0x81, 0x1d, 0xd6, 0xe2, 0xbd, 0x64, 0x42, 0x2c, 0x64, 0x25, 0xf0, 0xf7,
+ 0x5d, 0x4c, 0x4e, 0xf0, 0x37, 0x5a, 0x80, 0x89, 0x5d, 0x9f, 0xd4, 0xbe,
+ 0x94, 0x53, 0x8c, 0x18, 0x0d, 0xc2, 0x1e, 0xa2, 0xaf, 0x08, 0x89, 0xa6,
+ 0x7c, 0xc0, 0x56, 0xaa, 0x5b, 0x15, 0x53, 0x88, 0xc5, 0x5f, 0x5b, 0xc2,
+ 0x41, 0xbc, 0x86, 0x11, 0xaf, 0xfa, 0xd6, 0x88, 0xca, 0x12, 0x8c, 0x8e,
+ 0xce, 0xb7, 0x93, 0xf3, 0x8e, 0x43, 0x10, 0xd0, 0x7c, 0xba, 0xb3, 0x7d,
+ 0x71, 0x2f, 0xa5, 0x81, 0x98, 0x23, 0x6d, 0xb5, 0xf3, 0x48, 0x99, 0x29,
+ 0x2d, 0x1b, 0x20, 0x82, 0x36, 0xbf, 0xb9, 0xfc, 0xeb, 0x8c, 0xe5, 0x10,
+ 0x74, 0x20, 0xcc, 0x10, 0x20, 0x7e, 0x2a, 0x5f, 0x1a, 0x18, 0xb3, 0xae,
+ 0xa4, 0x84, 0x13, 0xae, 0xc5, 0x21, 0xee, 0x34, 0x75, 0x83, 0xcd, 0x02,
+ 0x98, 0x12, 0x1c, 0x6f, 0x16, 0x37, 0xea, 0x71, 0xa1, 0x48, 0x55, 0xac,
+ 0x9a, 0x6f, 0xbf, 0x4e, 0x31, 0x25, 0x1a, 0xc5, 0x75, 0x56, 0x84, 0xfc,
+ 0xf7, 0xf8, 0x28, 0xe9, 0x0b, 0xb2, 0x81, 0xa7, 0xc3, 0x2e, 0xff, 0xaa,
+ 0xe7, 0xf0, 0x93, 0xce, 0xf9, 0x85, 0xa6, 0x56, 0x70, 0xb4, 0xe1, 0x6c,
+ 0x8f, 0x91, 0x06, 0xf3, 0x91, 0x44, 0xef, 0x35, 0xb9, 0x58, 0x1b, 0x5c,
+ 0xa5, 0x8b, 0x7b, 0x9a, 0x0e, 0xf3, 0x60, 0x5d, 0xdf, 0xec, 0x1b, 0x01,
+ 0xb5, 0x3f, 0xfc, 0x1c, 0x96, 0x90, 0xd1, 0x09, 0x22, 0x84, 0x8e, 0x1c,
+ 0xf7, 0x95, 0xe2, 0x79, 0x9d, 0xd6, 0x44, 0xd9, 0x1f, 0x3a, 0xfb, 0x62,
+ 0xf0, 0x3f, 0x68, 0xa7, 0xfd, 0x6d, 0x19, 0x7a, 0xde, 0xb7, 0xb0, 0xa1,
+ 0xde, 0x70, 0x39, 0x54, 0xa2, 0xe4, 0xa7, 0x18, 0xe1, 0x38, 0x6f, 0xc0,
+ 0xac, 0xac, 0xfc, 0x41, 0xed, 0x63, 0xf9, 0x86, 0x53, 0xff, 0x12, 0xbc,
+ 0x16, 0xcd, 0x18, 0x35, 0xaa, 0xfe, 0xff, 0xa0, 0x6f, 0x69, 0x03, 0x0c,
+ 0x7b, 0x46, 0x1c, 0xf3, 0xab, 0xe3, 0x37, 0x67, 0x17, 0xc7, 0xed, 0xac,
+ 0x9d, 0x06, 0xb5, 0x60, 0x10, 0xa6, 0xeb, 0xf6, 0x0e, 0xb4, 0x48, 0x9c,
+ 0x58, 0xca, 0x01, 0xc6, 0x9c, 0x40, 0x96, 0xc9, 0xf9, 0xf7, 0xaf, 0x6d,
+ 0xe7, 0x48, 0x13, 0x29, 0xb8, 0x53, 0xae, 0xc2, 0xb7, 0xcc, 0x73, 0x57,
+ 0x83, 0x20, 0x65, 0x63, 0x7b, 0x48, 0xe2, 0x80, 0x43, 0x90, 0xda, 0x3d,
+ 0x84, 0x47, 0x39, 0xac, 0xcd, 0x1f, 0x4b, 0x99, 0x85, 0xb7, 0xae, 0x29,
+ 0x29, 0xd5, 0x36, 0x1b, 0xa8, 0xd7, 0x50, 0x30, 0x40, 0x3e, 0x23, 0x36,
+ 0x2f, 0x51, 0x0f, 0x11, 0x1b, 0xd1, 0x30, 0xb1, 0x1f, 0x71, 0x5f, 0xe1,
+ 0x72, 0xd6, 0x50, 0x5f, 0xf0, 0x95, 0x58, 0x1c, 0x9e, 0x2a, 0xf1, 0xb2,
+ 0xf7, 0x92, 0x2f, 0x55, 0x62, 0x91, 0x47, 0xdd, 0x50, 0x2d, 0x83, 0xd2,
+ 0x67, 0xaa, 0x28, 0x71, 0xd4, 0xfa, 0xf3, 0x18, 0x89, 0x6d, 0x99, 0xcf,
+ 0x6e, 0xd5, 0xdb, 0x7d, 0xaf, 0xa7, 0x76, 0xda, 0xa4, 0xc3, 0x9b, 0x7f,
+ 0xda, 0x4c, 0x04, 0xce, 0x0d, 0x81, 0xc7, 0x57, 0xfd, 0x8a, 0xf2, 0x67,
+ 0xae, 0x1a, 0xce, 0xf6, 0x43, 0xd8, 0x0b, 0x1d, 0xf4, 0x6a, 0x1b, 0x4d,
+ 0x93, 0x8b, 0x25, 0x22, 0xcf, 0x95, 0xe9, 0x28, 0x4a, 0xca, 0xd5, 0x3c,
+ 0xca, 0xc2, 0x82, 0x47, 0xb5, 0xad, 0x7e, 0x24, 0x81, 0x95, 0x1c, 0x3f,
+ 0x95, 0x5f, 0xb4, 0x44, 0x45, 0x0e, 0xbc, 0xdd, 0xca, 0x7b, 0xce, 0xe5,
+ 0xd2, 0xb4, 0xf4, 0xc8, 0x7d, 0xd1, 0xd0, 0x69, 0x85, 0x60, 0x09, 0x26,
+ 0xad, 0xc2, 0x85, 0xc4, 0xfb, 0xc9, 0x6d, 0xdf, 0x1a, 0xa9, 0xe2, 0x2f,
+ 0x9e, 0xbd, 0x20, 0x35, 0x02, 0x10, 0x03, 0x29, 0x11, 0x23, 0x34, 0xa1,
+ 0x08, 0x7e, 0x84, 0x04, 0x9a, 0x9d, 0x01, 0x68, 0x61, 0xcf, 0x71, 0x86,
+ 0x92, 0xb5, 0x25, 0x4e, 0x90, 0x63, 0x1a, 0x7d, 0x64, 0xac, 0xbb, 0x8d,
+ 0xdf, 0x1d, 0xb2, 0x7a, 0x62, 0x56, 0x21, 0xfd, 0x28, 0xf9, 0xc3, 0xa4,
+ 0xa9, 0xac, 0x3a, 0x9a, 0x7d, 0xbb, 0x6d, 0x35, 0x12, 0xc0, 0xdb, 0xc1,
+ 0x32, 0xab, 0x1b, 0xd1, 0x9d, 0x55, 0x79, 0xfd, 0x31, 0xd9, 0xfa, 0xb7,
+ 0x6d, 0x5b, 0x11, 0x38, 0x82, 0x94, 0x24, 0xd7, 0x64, 0x5e, 0x2c, 0xb3,
+ 0x56, 0xb5, 0x68, 0x6d, 0xed, 0x0a, 0x15, 0x8c, 0x88, 0x8f, 0x32, 0x96,
+ 0xf4, 0x42, 0x05, 0x3b, 0x17, 0x41, 0x81, 0x09, 0xc9, 0x57, 0x96, 0x5d,
+ 0x10, 0xde, 0x9a, 0x58, 0x11, 0x50, 0xaf, 0x8a, 0x97, 0x50, 0xd5, 0xa7,
+ 0x61, 0xf2, 0xbe, 0x80, 0x76, 0x23, 0x7b, 0x53, 0xee, 0x92, 0xbc, 0x30,
+ 0x03, 0x31, 0x63, 0x35, 0xb7, 0x49, 0x44, 0x50, 0xfd, 0xad, 0x2d, 0x9f,
+ 0x44, 0x90, 0x76, 0xc2, 0x1f, 0x38, 0xd9, 0x5a, 0x83, 0xc5, 0x8a, 0xb6,
+ 0xe4, 0x4d, 0x58, 0x92, 0x89, 0xab, 0xc9, 0x48, 0xe5, 0x72, 0xb4, 0x4d,
+ 0x01, 0xae, 0x6c, 0x36, 0x1b, 0x30, 0x55, 0x2f, 0x11, 0x97, 0x92, 0x9d,
+ 0xc1, 0xe9, 0x84, 0x00, 0xa8, 0xf8, 0x36, 0x58, 0x70, 0xfb, 0x20, 0x2b,
+ 0x12, 0xb4, 0x78, 0x4a, 0x27, 0x20, 0xa8, 0x56, 0x24, 0x27, 0x50, 0xb1,
+ 0xf7, 0xd9, 0xcc, 0x31, 0xc4, 0xf0, 0xe4, 0xf0, 0x90, 0x56, 0xd5, 0x4f,
+ 0x09, 0xb9, 0xef, 0x26, 0x37, 0xd7, 0xd5, 0x82, 0x0b, 0x39, 0xc5, 0xaa,
+ 0x4c, 0xf9, 0x06, 0x00, 0x3f, 0xaa, 0xab, 0x5b, 0x67, 0x0d, 0x77, 0x86,
+ 0xdf, 0x3d, 0x79, 0xdd, 0x2a, 0x0a, 0x4b, 0x53, 0x11, 0xa9, 0x6f, 0xe2,
+ 0x79, 0x38, 0xa4, 0xc6, 0x9b, 0x39, 0xb1, 0xee, 0x6e, 0xb1, 0x4d, 0x39,
+ 0x6b, 0x67, 0xac, 0x0c, 0xab, 0xf8, 0x5d, 0xbc, 0x39, 0x69, 0x85, 0xb5,
+ 0x59, 0x6e, 0x43, 0x1b, 0xc6, 0x56, 0xd1, 0x92, 0xc5, 0xb4, 0x19, 0xa8,
+ 0x30, 0xb9, 0x7e, 0x26, 0x04, 0x41, 0xdd, 0xcc, 0xcb, 0x29, 0xe5, 0x6c,
+ 0x64, 0x0f, 0xcf, 0xc5, 0xbc, 0x9c, 0x7a, 0x07, 0x47, 0x12, 0x5e, 0x6a,
+ 0xcb, 0xdb, 0x37, 0xcb, 0xb8, 0x9d, 0x31, 0x85, 0x08, 0x79, 0x66, 0xe2,
+ 0xcd, 0xb9, 0xa1, 0x6a, 0x61, 0x35, 0x79, 0xd3, 0x1f, 0x42, 0x91, 0x94,
+ 0x93, 0xc6, 0x1b, 0x01, 0x3d, 0x10, 0x6f, 0x8e, 0x85, 0x6f, 0x64, 0x64,
+ 0x94, 0x00, 0x01, 0xe3, 0x76, 0xfd, 0xc8, 0xf8, 0xc1, 0x60, 0x91, 0xcd,
+ 0x0f, 0x1d, 0xc1, 0x61, 0x6b, 0x85, 0x57, 0x8f, 0x2c, 0xb6, 0xc2, 0xe8,
+ 0x41, 0x77, 0x81, 0xb9, 0xb8, 0x28, 0x88, 0x57, 0xe9, 0xf1, 0x41, 0xbc,
+ 0x39, 0xbb, 0xc2, 0xc2, 0xa8, 0xba, 0x66, 0x81, 0xe5, 0x2b, 0xc1, 0x2c,
+ 0xcc, 0x8c, 0x88, 0x34, 0x5a, 0xf0, 0x24, 0xfb, 0xc0, 0x15, 0x0e, 0xa9,
+ 0x4e, 0x7d, 0xf3, 0x61, 0xfd, 0x84, 0xcc, 0x24, 0xef, 0xf8, 0x7e, 0x8e,
+ 0xca, 0xa8, 0x56, 0x58, 0x08, 0x89, 0x61, 0x2a, 0x79, 0xb8, 0x46, 0x09,
+ 0xc4, 0xef, 0xa3, 0xb5, 0x19, 0x74, 0xdb, 0xbb, 0xef, 0x25, 0xb6, 0x42,
+ 0xfc, 0xa2, 0xcc, 0x0b, 0xcb, 0xf9, 0xc0, 0x32, 0xc6, 0xeb, 0x62, 0x12,
+ 0xe3, 0xbc, 0x58, 0x17, 0x68, 0x99, 0x7f, 0xa4, 0x14, 0x0a, 0xab, 0x28,
+ 0x7c, 0x88, 0x50, 0xd0, 0xfb, 0xfb, 0x98, 0x1f, 0x77, 0xfb, 0x98, 0x47,
+ 0xa5, 0xdb, 0xd8, 0x15, 0xd1, 0x7b, 0x78, 0xb5, 0xdb, 0x9f, 0xb4, 0x67,
+ 0xb2, 0xdb, 0xbf, 0xc5, 0xdd, 0xd4, 0x7a, 0x85, 0xcc, 0x5f, 0xf5, 0xc3,
+ 0x7a, 0xff, 0x03, 0xbb, 0xa8, 0x35, 0x2a, 0x09, 0xa1, 0xc0, 0x8d, 0x5d,
+ 0x29, 0xd1, 0xea, 0x8a, 0xa9, 0x00, 0xff, 0x6a, 0xa0, 0x25, 0x05, 0x1f,
+ 0xaf, 0x50, 0x6e, 0x53, 0x26, 0x58, 0x96, 0x63, 0xf5, 0xe4, 0xc8, 0xd3,
+ 0xae, 0x8b, 0x2c, 0xdf, 0xfd, 0x7a, 0xda, 0xe1, 0x04, 0xad, 0x16, 0x78,
+ 0xf2, 0xd5, 0xce, 0x81, 0x98, 0x66, 0xe4, 0x24, 0x96, 0xad, 0x40, 0x88,
+ 0x0c, 0x6e, 0x48, 0xe5, 0xde, 0xba, 0x8d, 0xb4, 0x72, 0x8e, 0xab, 0xf9,
+ 0x03, 0x87, 0xdc, 0x3c, 0xe0, 0x46, 0xc5, 0x59, 0xeb, 0x76, 0x54, 0xc1,
+ 0xc9, 0x94, 0x63, 0xbc, 0x62, 0xe6, 0x57, 0xf5, 0xa0, 0xb5, 0x0b, 0xd7,
+ 0xf5, 0x84, 0x1e, 0x8c, 0x75, 0xc6, 0x4d, 0x2d, 0xd2, 0xe2, 0xee, 0x3d,
+ 0x49, 0x19, 0x6f, 0x4e, 0xba, 0xeb, 0xde, 0x93, 0xe9, 0xe9, 0x7b, 0x8e,
+ 0x54, 0x66, 0xac, 0x37, 0xc6, 0x65, 0xb8, 0x37, 0xf4, 0x80, 0xff, 0x22,
+ 0x01, 0x41, 0x56, 0xfc, 0xac, 0xf0, 0xed, 0x76, 0xfa, 0xa2, 0xb9, 0x7b,
+ 0xd7, 0x80, 0xd5, 0xbd, 0x68, 0xab, 0x5d, 0x70, 0xae, 0x7f, 0x88, 0x50,
+ 0x21, 0x00, 0x37, 0x00, 0xa2, 0xa1, 0xe0, 0x89, 0x28, 0xb2, 0x20, 0xeb,
+ 0x99, 0x12, 0x95, 0x7c, 0x88, 0x8c, 0xe5, 0x4f, 0x32, 0x2a, 0x03, 0x93,
+ 0x0a, 0x8e, 0x01, 0x51, 0x43, 0xb4, 0xba, 0x62, 0x9d, 0x89, 0x2d, 0xa1,
+ 0x8f, 0x27, 0xcc, 0x4e, 0x1f, 0x56, 0x95, 0xec, 0x80, 0x63, 0xea, 0x61,
+ 0xc0, 0xea, 0x9a, 0x5d, 0x4f, 0xfd, 0x12, 0xad, 0xde, 0xf0, 0xab, 0x3e,
+ 0x4f, 0xc1, 0xb5, 0x19, 0x3c, 0xfe, 0x88, 0xc2, 0xc0, 0x59, 0xb1, 0x86,
+ 0xba, 0x42, 0xe9, 0xc8, 0xdb, 0xc9, 0x45, 0x46, 0x79, 0x8f, 0xb7, 0x24,
+ 0x4d, 0xc7, 0xf7, 0xe6, 0xe0, 0x73, 0x0b, 0x5b, 0xf9, 0x30, 0x13, 0xd8,
+ 0x2f, 0xa9, 0x48, 0x44, 0xfc, 0x1c, 0xe8, 0x34, 0x66, 0x6b, 0x6c, 0xb3,
+ 0xc1, 0x9f, 0x72, 0x8d, 0x9e, 0xbd, 0xe1, 0x5e, 0x9f, 0x2b, 0x75, 0x56,
+ 0xaa, 0x2e, 0xaa, 0x8d, 0x41, 0x3f, 0x49, 0x2d, 0xe3, 0x2c, 0x7d, 0xb9,
+ 0xeb, 0x8d, 0xb8, 0xa0, 0xef, 0xd6, 0xa1, 0x8f, 0x1a, 0x7e, 0x6e, 0x67,
+ 0xd6, 0xdc, 0xa5, 0xf7, 0xa1, 0xa2, 0xbe, 0x3b, 0x78, 0xfa, 0xe2, 0x45,
+ 0xeb, 0x46, 0xaf, 0x3d, 0xba, 0xde, 0x67, 0xbb, 0xbb, 0x18, 0x5a, 0x90,
+ 0xf5, 0x68, 0x7e, 0x31, 0x78, 0x81, 0x17, 0xdb, 0xaf, 0xd5, 0x99, 0x59,
+ 0x82, 0xe9, 0xea, 0xf7, 0x06, 0xf4, 0x9b, 0xc8, 0xe7, 0xe0, 0x75, 0x59,
+ 0xf9, 0xd6, 0x0b, 0xfa, 0x5c, 0xe4, 0x2d, 0x3c, 0xcc, 0xf3, 0x58, 0x5e,
+ 0x5d, 0x91, 0xbf, 0x8b, 0x9e, 0x54, 0x16, 0x8b, 0xbb, 0xb4, 0x9a, 0x86,
+ 0xc3, 0xdd, 0xed, 0x0f, 0xf6, 0x56, 0x0d, 0x17, 0x7c, 0xc3, 0x80, 0xb7,
+ 0xd0, 0x72, 0x92, 0x39, 0x69, 0x0c, 0x09, 0x4e, 0x01, 0xe8, 0x36, 0xb4,
+ 0x67, 0x7a, 0xb4, 0xf7, 0xe2, 0x45, 0x9f, 0x7a, 0xf6, 0xec, 0xc5, 0x8b,
+ 0x95, 0x29, 0x9f, 0xde, 0x67, 0xee, 0x4a, 0xe7, 0xa4, 0xa2, 0xd7, 0xdd,
+ 0x9e, 0xa9, 0xc9, 0x5e, 0x89, 0x7f, 0x87, 0x7e, 0x93, 0xbc, 0x4a, 0xde,
+ 0x9d, 0x5d, 0x1e, 0x7b, 0xfe, 0x1b, 0xe7, 0x9f, 0xf5, 0x31, 0x60, 0x08,
+ 0x08, 0x2f, 0x50, 0x33, 0x06, 0xf6, 0xb1, 0x31, 0xb6, 0x42, 0x94, 0x03,
+ 0xe0, 0xe8, 0xea, 0x39, 0xfc, 0x97, 0xee, 0xe7, 0xce, 0x0a, 0x14, 0x86,
+ 0xb9, 0xce, 0x1b, 0x9f, 0xe1, 0x64, 0xcb, 0x2c, 0xf6, 0x36, 0xfc, 0x20,
+ 0xb7, 0xe9, 0x2c, 0xb7, 0x91, 0x9d, 0xcd, 0x9a, 0xd0, 0xdb, 0x0c, 0x74,
+ 0xa3, 0x7f, 0x94, 0x8b, 0xcd, 0x00, 0x40, 0x9d, 0xcd, 0xc8, 0x79, 0x20,
+ 0x37, 0x21, 0xbf, 0x30, 0xc0, 0x93, 0x72, 0x5a, 0x60, 0xd0, 0x72, 0x61,
+ 0xda, 0x14, 0xde, 0x65, 0xff, 0xe3, 0x91, 0xe0, 0x0e, 0x9c, 0x5e, 0xc0,
+ 0x6d, 0x6a, 0xea, 0x05, 0x35, 0xe3, 0x43, 0xe1, 0x36, 0x6b, 0xe7, 0x18,
+ 0xb5, 0x3e, 0xbc, 0x22, 0x0e, 0x78, 0x40, 0x44, 0x61, 0x9a, 0x2d, 0x14,
+ 0x32, 0x56, 0xb4, 0xdb, 0x31, 0x7b, 0xf9, 0x2a, 0xbf, 0x5e, 0x56, 0x71,
+ 0x70, 0x15, 0x8c, 0x73, 0xc9, 0x04, 0x50, 0x72, 0xea, 0xf4, 0x2e, 0xd5,
+ 0x0c, 0x04, 0x10, 0x8a, 0xeb, 0xe1, 0x56, 0x43, 0x59, 0x11, 0xff, 0xc4,
+ 0x1c, 0x1e, 0xf8, 0xc5, 0x28, 0x47, 0xc3, 0xe8, 0x31, 0xe4, 0x47, 0x10,
+ 0x64, 0x89, 0x30, 0x64, 0xa7, 0x8d, 0x4b, 0xbb, 0x50, 0x4f, 0xbb, 0x59,
+ 0xec, 0xeb, 0x8c, 0xf3, 0x2f, 0x78, 0x0a, 0xba, 0x51, 0xbc, 0x72, 0xb9,
+ 0x39, 0x73, 0x81, 0x04, 0x7a, 0x16, 0x3e, 0x99, 0x9b, 0xd2, 0x63, 0xa3,
+ 0x0f, 0xd3, 0xb2, 0x49, 0xf2, 0x30, 0xcd, 0x02, 0xfe, 0xca, 0x8b, 0x64,
+ 0x9e, 0xbf, 0x2b, 0x66, 0x65, 0x3a, 0xad, 0xa5, 0x62, 0xb6, 0xc4, 0xf7,
+ 0x31, 0x59, 0x4c, 0xcf, 0x23, 0x4b, 0x1b, 0x30, 0x17, 0xd3, 0x4a, 0xf3,
+ 0x1a, 0x27, 0x5b, 0x5a, 0xdd, 0x59, 0x77, 0xa8, 0xe7, 0x26, 0x61, 0x29,
+ 0x45, 0x3b, 0x85, 0x93, 0xe0, 0xa9, 0x08, 0x6f, 0x68, 0xf8, 0xd2, 0x7e,
+ 0xe7, 0xd5, 0xb2, 0x74, 0xea, 0xa8, 0xce, 0x46, 0x97, 0x24, 0x75, 0x57,
+ 0x2f, 0xe4, 0xd1, 0xc9, 0xff, 0x3c, 0xfe, 0x3d, 0x43, 0x60, 0x55, 0x7a,
+ 0x67, 0x53, 0x83, 0xa4, 0xd0, 0xbd, 0x84, 0xa6, 0x6c, 0x2e, 0x7a, 0x3a,
+ 0x13, 0x2b, 0x9e, 0xaa, 0x59, 0xe3, 0xf6, 0x40, 0x8c, 0x53, 0x8a, 0x2f,
+ 0x9a, 0x8d, 0x15, 0xee, 0x6d, 0x4a, 0xe0, 0xa9, 0x9c, 0x67, 0x11, 0x58,
+ 0x53, 0xe4, 0x74, 0x60, 0x3d, 0x6c, 0xa8, 0xc4, 0x95, 0xd2, 0x9e, 0x73,
+ 0x81, 0x7a, 0x14, 0x5b, 0x0c, 0x8a, 0x85, 0x14, 0xa0, 0x10, 0xa3, 0x6e,
+ 0x99, 0xde, 0x3e, 0x50, 0xfd, 0xca, 0xcf, 0xa6, 0x45, 0xc1, 0xd4, 0x2a,
+ 0xa3, 0x68, 0x59, 0x95, 0xbc, 0x7c, 0x7f, 0x71, 0xba, 0x22, 0x25, 0x6a,
+ 0x84, 0x55, 0xa0, 0xe9, 0xea, 0x5d, 0x64, 0xe0, 0xfe, 0xa9, 0x92, 0xf3,
+ 0xf4, 0x3a, 0xeb, 0xf9, 0x74, 0x4b, 0xaa, 0x2e, 0x62, 0x02, 0xc4, 0x09,
+ 0x11, 0xf3, 0x14, 0xf9, 0xfc, 0xee, 0x24, 0xc6, 0x5d, 0x94, 0xda, 0xcf,
+ 0x63, 0xba, 0x9a, 0xa5, 0x32, 0x7b, 0xcb, 0x0a, 0x65, 0xdc, 0xbf, 0x8f,
+ 0x16, 0x49, 0xb1, 0x69, 0x2d, 0x1d, 0x42, 0x46, 0x1f, 0x57, 0x95, 0x2e,
+ 0x68, 0x17, 0x25, 0xbd, 0x2f, 0xc8, 0x53, 0xdf, 0xd3, 0x6e, 0x0e, 0xb2,
+ 0x18, 0xe1, 0x39, 0x4f, 0x05, 0xc5, 0xa9, 0x7d, 0x97, 0x52, 0xc7, 0xc7,
+ 0xcf, 0xc1, 0x16, 0x8e, 0x73, 0x65, 0x44, 0x86, 0x58, 0xc7, 0xca, 0x03,
+ 0x73, 0x8a, 0x71, 0xde, 0x68, 0xcd, 0x07, 0x30, 0x5c, 0x9d, 0x4a, 0xff,
+ 0x0e, 0x24, 0x28, 0xc3, 0xda, 0x90, 0x76, 0xad, 0x05, 0x54, 0x8a, 0x0d,
+ 0x36, 0x9d, 0x51, 0xe5, 0x05, 0xeb, 0xca, 0xa2, 0x31, 0x4e, 0x4b, 0x62,
+ 0xeb, 0xa7, 0x2e, 0xa5, 0x85, 0xf5, 0x3b, 0xb7, 0x56, 0xf6, 0x77, 0xa7,
+ 0x06, 0x73, 0x81, 0xa2, 0xc3, 0xbe, 0x94, 0x13, 0x19, 0x98, 0xdd, 0x51,
+ 0x48, 0xb6, 0xab, 0xb7, 0xac, 0xde, 0xde, 0xfb, 0x8f, 0x7e, 0x94, 0x61,
+ 0x7e, 0x05, 0x2b, 0xa6, 0xd7, 0xdd, 0x06, 0x38, 0x74, 0x2c, 0xe1, 0x59,
+ 0xbf, 0x43, 0x72, 0xef, 0x92, 0xe2, 0xe4, 0xba, 0x8c, 0xfa, 0x16, 0x07,
+ 0x1e, 0x5e, 0x3d, 0x39, 0xe2, 0xfc, 0xac, 0xc1, 0xeb, 0xdc, 0xdc, 0x23,
+ 0x35, 0x13, 0x8d, 0xb0, 0x63, 0x80, 0x13, 0x8c, 0xdc, 0x61, 0x0c, 0xcb,
+ 0x18, 0x69, 0x3c, 0x05, 0x48, 0x3a, 0xfb, 0x8a, 0x0d, 0xee, 0x98, 0x3d,
+ 0x11, 0x9f, 0x7b, 0x87, 0xe4, 0xb6, 0x1a, 0x43, 0xea, 0x5c, 0x16, 0x52,
+ 0x72, 0x58, 0x20, 0xef, 0x92, 0xb4, 0x45, 0x38, 0x9c, 0xc8, 0xfc, 0x28,
+ 0xfd, 0x07, 0x43, 0x79, 0xea, 0xc4, 0xf2, 0x72, 0x48, 0xc1, 0x8f, 0xc0,
+ 0xe0, 0xb4, 0xd5, 0x56, 0x19, 0x7d, 0xd2, 0xf5, 0x03, 0x9b, 0x4e, 0xd9,
+ 0x9a, 0x0b, 0x1c, 0x65, 0x61, 0xd2, 0x2a, 0x4e, 0x40, 0x9b, 0x98, 0x66,
+ 0x87, 0x9d, 0x21, 0x68, 0xbd, 0x88, 0x15, 0x28, 0xc3, 0xd6, 0xc0, 0x9a,
+ 0x1b, 0x8d, 0xc5, 0xcb, 0x42, 0x51, 0x14, 0xa1, 0x28, 0x85, 0xc7, 0x21,
+ 0x16, 0xd3, 0x07, 0x9c, 0x88, 0x1e, 0xf1, 0xef, 0x42, 0x46, 0x90, 0x24,
+ 0x7f, 0x1c, 0x38, 0xbe, 0xfe, 0xad, 0xfb, 0xcc, 0x68, 0xd9, 0x0e, 0x85,
+ 0x02, 0x63, 0x2a, 0x92, 0xe1, 0x95, 0x70, 0x25, 0xba, 0xba, 0x05, 0x3e,
+ 0x87, 0x21, 0xe2, 0xc5, 0x20, 0x79, 0xd2, 0x8d, 0x26, 0x40, 0x7c, 0xd7,
+ 0xcb, 0x22, 0xfb, 0x44, 0x1c, 0xac, 0xab, 0x9b, 0x0b, 0x15, 0xed, 0xef,
+ 0x0f, 0x2f, 0xde, 0x9d, 0xbc, 0xfb, 0xfa, 0x80, 0x72, 0x49, 0xb3, 0x6a,
+ 0x42, 0x65, 0x53, 0x93, 0xbf, 0x2e, 0xa7, 0xf9, 0x84, 0x65, 0x85, 0xd4,
+ 0xa3, 0x6c, 0xc1, 0xdf, 0x33, 0x71, 0xb3, 0x1a, 0xf1, 0x12, 0xc8, 0x77,
+ 0x01, 0xa2, 0x12, 0x7a, 0xbf, 0x2a, 0xaf, 0x97, 0x76, 0xea, 0x27, 0x50,
+ 0x47, 0x10, 0x2c, 0x40, 0x20, 0x95, 0x24, 0x12, 0x6f, 0x5a, 0xe2, 0xa1,
+ 0x31, 0xca, 0xc2, 0xeb, 0xd3, 0xd3, 0x08, 0xf9, 0x25, 0x6a, 0xb9, 0x2a,
+ 0xb1, 0x3e, 0x43, 0x98, 0xd0, 0x90, 0xd9, 0xfe, 0x75, 0x3e, 0x9e, 0xc1,
+ 0x26, 0x23, 0x05, 0x80, 0xe4, 0x4d, 0x4b, 0xee, 0x19, 0xf3, 0xd5, 0x74,
+ 0xa5, 0xbb, 0xc8, 0xc0, 0xc8, 0x02, 0xad, 0x88, 0x15, 0xce, 0xab, 0x29,
+ 0xec, 0x21, 0x23, 0x26, 0xcb, 0xab, 0x86, 0x54, 0xa4, 0xd6, 0x6d, 0xda,
+ 0xae, 0x3e, 0xb1, 0x2e, 0x92, 0x70, 0xc3, 0x96, 0x8e, 0x0f, 0x89, 0x90,
+ 0xd8, 0x25, 0xa8, 0xdf, 0xcc, 0x7e, 0x64, 0xdd, 0x10, 0x65, 0x4b, 0xa2,
+ 0x61, 0xb4, 0x69, 0x96, 0xda, 0x52, 0xac, 0x35, 0xc9, 0xcb, 0x50, 0x60,
+ 0xdc, 0x65, 0x95, 0x18, 0xa0, 0x36, 0x51, 0xd0, 0x88, 0xbb, 0x61, 0x32,
+ 0x2a, 0xcd, 0xf3, 0xa1, 0x96, 0x65, 0xab, 0x7b, 0xb5, 0x4a, 0x05, 0xa3,
+ 0x3f, 0x0e, 0xe8, 0x85, 0xba, 0x27, 0x88, 0xce, 0xb5, 0xc7, 0x1b, 0xa9,
+ 0x2d, 0x4a, 0xfb, 0x7f, 0x9c, 0x59, 0xa5, 0x82, 0xbe, 0x80, 0x08, 0x10,
+ 0xed, 0x90, 0xde, 0xc0, 0x08, 0xd4, 0x1e, 0x6a, 0x36, 0x51, 0xc5, 0x53,
+ 0xaf, 0xa5, 0x07, 0xea, 0xf6, 0xf9, 0x30, 0xeb, 0xee, 0x80, 0xa3, 0xd5,
+ 0x90, 0xbc, 0x2a, 0x23, 0xa9, 0xd8, 0x9e, 0x9e, 0xff, 0x54, 0x8a, 0xd2,
+ 0xd8, 0xb0, 0x2a, 0x7e, 0x75, 0x97, 0x91, 0x96, 0x19, 0x84, 0xca, 0xcf,
+ 0x98, 0xb3, 0x48, 0x1e, 0xf2, 0xb3, 0x61, 0xfd, 0x97, 0xe5, 0xc2, 0xe9,
+ 0x3b, 0x07, 0x43, 0x8e, 0xc4, 0xa2, 0x26, 0x88, 0x4a, 0x5d, 0x0d, 0xb7,
+ 0xa3, 0x40, 0x1f, 0xee, 0x83, 0x32, 0x1f, 0x1a, 0xfd, 0x7a, 0xfa, 0xa0,
+ 0xe0, 0xd3, 0x82, 0x4e, 0xdd, 0x5b, 0x1a, 0x0b, 0x6a, 0x3d, 0x4b, 0xda,
+ 0x54, 0xea, 0x60, 0x44, 0x4d, 0xe2, 0x07, 0x35, 0x25, 0x56, 0x8a, 0xe4,
+ 0xe3, 0x48, 0x73, 0x92, 0xd0, 0x21, 0x31, 0xab, 0x95, 0x42, 0x58, 0xe2,
+ 0x37, 0x79, 0x71, 0x5b, 0xe2, 0x37, 0x12, 0x73, 0x0a, 0x12, 0xe4, 0x7d,
+ 0xaa, 0xb9, 0xd8, 0x44, 0xf8, 0xb3, 0xaa, 0x4e, 0x1a, 0x45, 0xc1, 0x9b,
+ 0xb1, 0x20, 0xa7, 0xa8, 0x95, 0xe4, 0xe3, 0xf2, 0x7a, 0xba, 0x5b, 0x81,
+ 0x0f, 0x13, 0x6d, 0xde, 0x7e, 0xa2, 0xe5, 0x6b, 0xcd, 0x8b, 0xb3, 0x3a,
+ 0x13, 0x96, 0x35, 0xce, 0xfa, 0xd1, 0x0b, 0x47, 0xee, 0x9b, 0xdc, 0xfa,
+ 0x7f, 0x56, 0xdf, 0x24, 0xb6, 0x94, 0x96, 0x9d, 0x6b, 0x67, 0xc3, 0x52,
+ 0xa4, 0x59, 0x8a, 0xd2, 0x23, 0x1d, 0xa6, 0x2c, 0x25, 0xa9, 0x6c, 0x95,
+ 0xb0, 0x4d, 0xa0, 0xd4, 0x20, 0xed, 0x7d, 0x85, 0x06, 0x61, 0x49, 0x82,
+ 0x5c, 0x24, 0x32, 0x40, 0x1c, 0xfb, 0x94, 0x62, 0x2d, 0x3a, 0xbf, 0xf6,
+ 0xdd, 0xc6, 0xfd, 0xb1, 0x97, 0x73, 0x62, 0x0b, 0xe9, 0xc4, 0x60, 0x0e,
+ 0x7c, 0x75, 0xc7, 0xa7, 0x47, 0xa0, 0x9e, 0xfe, 0xa4, 0x44, 0x2f, 0x3b,
+ 0x06, 0x7f, 0x42, 0x82, 0x58, 0x13, 0x02, 0x55, 0x7f, 0xc4, 0x02, 0xf2,
+ 0x10, 0x34, 0x27, 0x58, 0x0e, 0x12, 0x20, 0x7f, 0xdc, 0xdf, 0x5d, 0x25,
+ 0xe4, 0xa9, 0x21, 0xcd, 0x63, 0xa3, 0xd3, 0x58, 0x5b, 0x1b, 0x0c, 0xd7,
+ 0xa0, 0xcb, 0x2d, 0xa7, 0x3b, 0x64, 0xb9, 0x20, 0x5f, 0xdd, 0x80, 0xf6,
+ 0x4b, 0x5a, 0xaf, 0x9a, 0xff, 0xb8, 0x65, 0xfc, 0x6b, 0xeb, 0x6c, 0xad,
+ 0x28, 0xb3, 0xe5, 0xe4, 0xd7, 0x85, 0xb7, 0xc6, 0xd4, 0x50, 0x0c, 0xf1,
+ 0xa6, 0xb2, 0x44, 0x7d, 0x25, 0x9e, 0xda, 0xee, 0x74, 0x06, 0xd8, 0xf6,
+ 0xa8, 0xa7, 0x24, 0x87, 0x93, 0x5a, 0x0b, 0x4d, 0xd8, 0x74, 0xbe, 0xe0,
+ 0xdb, 0x93, 0xfd, 0x90, 0x7c, 0xbc, 0x04, 0x99, 0xa3, 0xa7, 0x40, 0x41,
+ 0x2d, 0x16, 0xb8, 0xcb, 0x5f, 0x0c, 0x37, 0xad, 0x27, 0x4a, 0xd9, 0x24,
+ 0x4f, 0x05, 0x41, 0x8a, 0x29, 0xa1, 0x6f, 0xb5, 0xaf, 0x46, 0x80, 0xd3,
+ 0x06, 0x51, 0x9f, 0x7f, 0x94, 0x1d, 0x5e, 0x00, 0xed, 0x3e, 0x7f, 0x74,
+ 0x8f, 0xdf, 0xee, 0x25, 0x5b, 0x24, 0x57, 0xb7, 0xad, 0xf6, 0x1a, 0xc6,
+ 0xfb, 0x95, 0xb8, 0x9c, 0xed, 0x98, 0x94, 0xef, 0xc8, 0x2e, 0x9e, 0x97,
+ 0x34, 0x58, 0x63, 0xe9, 0x55, 0x46, 0x03, 0x58, 0xce, 0xd2, 0x0a, 0x90,
+ 0xbd, 0xec, 0x6a, 0x39, 0x8b, 0x99, 0x3a, 0x74, 0xba, 0x25, 0x48, 0x94,
+ 0xd7, 0xf5, 0x52, 0x0c, 0x41, 0xcb, 0x1c, 0xe0, 0x68, 0x6c, 0x67, 0xa6,
+ 0x3f, 0xf8, 0x74, 0x3d, 0x23, 0x14, 0xca, 0x4a, 0x05, 0x85, 0x79, 0x68,
+ 0x59, 0xf5, 0xb5, 0x55, 0xc9, 0xd8, 0x96, 0x92, 0x2b, 0xe5, 0x9a, 0x3a,
+ 0xa5, 0x15, 0x98, 0x68, 0x12, 0xfa, 0xb8, 0xad, 0x3a, 0xcd, 0xf5, 0xce,
+ 0xce, 0x2f, 0x4f, 0xce, 0xde, 0x8d, 0x92, 0x7f, 0xeb, 0xad, 0x4d, 0x50,
+ 0x6a, 0x53, 0x91, 0xfe, 0xd0, 0x77, 0x6b, 0x92, 0xbc, 0x14, 0x6f, 0xc3,
+ 0x2a, 0xfb, 0xd8, 0x53, 0xe3, 0x27, 0xe6, 0xfe, 0x36, 0x12, 0x56, 0xdf,
+ 0x14, 0x0e, 0x27, 0x59, 0xad, 0x4e, 0xbe, 0x72, 0xa0, 0x2f, 0xd3, 0xac,
+ 0xb4, 0x31, 0x8c, 0x36, 0x9a, 0x7f, 0xd9, 0x42, 0xd8, 0x76, 0x9a, 0x8f,
+ 0xcb, 0x60, 0x91, 0x7d, 0x2d, 0x74, 0xa9, 0xbc, 0x80, 0x29, 0xbe, 0x83,
+ 0x62, 0xca, 0x56, 0xf4, 0x96, 0x54, 0x92, 0x14, 0x55, 0xab, 0x8e, 0xa0,
+ 0x09, 0xbf, 0x3e, 0xbe, 0x24, 0x57, 0xcd, 0x05, 0x8c, 0x21, 0xdb, 0x41,
+ 0x38, 0xbc, 0x44, 0xf5, 0x49, 0xad, 0x7a, 0x26, 0xd4, 0xaf, 0x5c, 0x87,
+ 0xfa, 0xd3, 0x62, 0x96, 0x16, 0xd1, 0x24, 0x2c, 0xa3, 0xd3, 0x52, 0x69,
+ 0xed, 0xd2, 0x91, 0x3c, 0xaa, 0x07, 0xc5, 0xab, 0x5f, 0xc0, 0xec, 0x2b,
+ 0xe7, 0xef, 0x2f, 0xc5, 0x5b, 0xf5, 0xfa, 0xf8, 0xf4, 0xf8, 0xf2, 0xb8,
+ 0x6b, 0xbd, 0x8f, 0x99, 0xb4, 0x0e, 0xd9, 0x37, 0x4d, 0x36, 0xb9, 0x29,
+ 0xca, 0x59, 0x79, 0x9d, 0x4b, 0x75, 0xc1, 0xe4, 0xfb, 0x6c, 0xfc, 0xfa,
+ 0xf0, 0x3b, 0xd2, 0x28, 0xc8, 0xf3, 0x74, 0x7e, 0x71, 0x76, 0xfe, 0xe6,
+ 0xe4, 0xdd, 0xeb, 0x7e, 0x72, 0x74, 0x76, 0xfe, 0x97, 0x7e, 0xf2, 0xf6,
+ 0xec, 0xbb, 0xe3, 0x08, 0xea, 0x9a, 0x08, 0xa5, 0x23, 0xd5, 0xcd, 0xa5,
+ 0xca, 0x97, 0x33, 0xbe, 0x0b, 0x0e, 0x5c, 0x78, 0xd7, 0xc8, 0x21, 0xd0,
+ 0x23, 0x54, 0x06, 0x97, 0xcf, 0x9a, 0x99, 0x3a, 0x23, 0x3f, 0xbe, 0x39,
+ 0x3e, 0x7c, 0xdd, 0x0f, 0x28, 0x7f, 0xa9, 0x22, 0x81, 0xf9, 0x18, 0x8d,
+ 0xcf, 0x0e, 0x1a, 0x44, 0xb1, 0x6c, 0x7f, 0x40, 0x47, 0xe0, 0x50, 0x17,
+ 0x9f, 0x58, 0xb3, 0x61, 0x91, 0x8a, 0x3b, 0x5d, 0x85, 0xa0, 0x10, 0xee,
+ 0xea, 0x95, 0xf5, 0x3c, 0xbd, 0x4c, 0x10, 0x52, 0xd7, 0x54, 0xd1, 0x66,
+ 0x49, 0x20, 0xac, 0x2c, 0x09, 0xc0, 0xfe, 0xb2, 0x37, 0xb4, 0x1a, 0x65,
+ 0x8c, 0xe5, 0x46, 0xba, 0xdc, 0x4f, 0x5a, 0x29, 0xc1, 0x10, 0x49, 0xec,
+ 0x83, 0x4c, 0xa5, 0x1e, 0x1a, 0x0a, 0x47, 0x10, 0x0c, 0x68, 0xc4, 0xcc,
+ 0xb8, 0x42, 0x08, 0x19, 0x4f, 0x6f, 0x50, 0x35, 0x5b, 0xf8, 0x87, 0x85,
+ 0xa1, 0x85, 0xe6, 0xcf, 0x7d, 0x50, 0x0b, 0x2f, 0xfc, 0xc0, 0x13, 0x1b,
+ 0xc5, 0x5d, 0x73, 0x7d, 0xa2, 0x2b, 0xb3, 0x35, 0x33, 0x06, 0x58, 0xf1,
+ 0x52, 0x59, 0xf7, 0x40, 0x32, 0x38, 0x51, 0xe7, 0xc4, 0x3a, 0x35, 0xcb,
+ 0x32, 0xb1, 0x89, 0x83, 0x86, 0x79, 0x61, 0xd4, 0x77, 0xd5, 0x16, 0x15,
+ 0xbe, 0xa7, 0x84, 0x06, 0x1a, 0xd1, 0xfa, 0x75, 0x99, 0x95, 0xb6, 0x44,
+ 0x06, 0xed, 0xcd, 0x0a, 0xe7, 0x20, 0x06, 0x3e, 0x2d, 0x73, 0xcd, 0x06,
+ 0x34, 0x3e, 0x78, 0xd2, 0x88, 0x93, 0x42, 0x7c, 0xa3, 0x09, 0x05, 0xe1,
+ 0x06, 0x6c, 0x51, 0xfb, 0x28, 0x61, 0x95, 0xa0, 0xa2, 0xa1, 0x4a, 0x1f,
+ 0xe2, 0x45, 0xa8, 0x5d, 0x81, 0x3a, 0xdf, 0xa7, 0xf7, 0x64, 0xf7, 0x93,
+ 0xf3, 0xb6, 0x93, 0x4e, 0x51, 0x27, 0x03, 0xe1, 0xdf, 0x9d, 0x9b, 0x8b,
+ 0x30, 0xf4, 0x33, 0x6d, 0xbd, 0x59, 0x21, 0x1c, 0x7d, 0xff, 0xad, 0x2c,
+ 0x86, 0x27, 0xa6, 0x4e, 0x4f, 0xcc, 0x91, 0x88, 0x90, 0x60, 0x4c, 0x4b,
+ 0x54, 0x2a, 0x05, 0x34, 0x01, 0xda, 0x15, 0x66, 0xdf, 0xb4, 0x15, 0x7e,
+ 0x98, 0x2a, 0xf7, 0x46, 0xbf, 0x8c, 0x92, 0xbe, 0x0f, 0x7c, 0x3a, 0x58,
+ 0xb3, 0x8b, 0xe3, 0xcb, 0x8b, 0x61, 0xb2, 0xe5, 0xf3, 0x3b, 0x3e, 0x1f,
+ 0xee, 0x86, 0xe1, 0x1b, 0xaa, 0x1a, 0x1c, 0xfd, 0x2a, 0xca, 0x09, 0xaf,
+ 0xf8, 0x2a, 0xe4, 0x03, 0x7d, 0x37, 0xc4, 0x1d, 0x7b, 0x9c, 0x2e, 0xbb,
+ 0xb1, 0xef, 0xf9, 0x95, 0x89, 0x5b, 0xdf, 0xa3, 0x5f, 0xac, 0x19, 0xe5,
+ 0x37, 0xc7, 0xa7, 0xe7, 0xe1, 0x28, 0xbf, 0xbb, 0x78, 0xf3, 0x97, 0xf6,
+ 0x28, 0x9f, 0x3c, 0x8d, 0x7c, 0xf5, 0xb7, 0x74, 0xad, 0x67, 0x75, 0x39,
+ 0x33, 0x4a, 0x0b, 0x92, 0x4b, 0x90, 0x5b, 0x72, 0x60, 0xae, 0x01, 0xc2,
+ 0xa6, 0xff, 0xd8, 0x97, 0xbf, 0xfc, 0x3c, 0x1c, 0x0e, 0xbf, 0x0c, 0x49,
+ 0x8a, 0xe1, 0xa9, 0xb1, 0xc3, 0x95, 0x67, 0xc5, 0x0e, 0x77, 0x86, 0x38,
+ 0xa7, 0xf3, 0xf0, 0xa5, 0xc1, 0x99, 0x27, 0x8b, 0x34, 0x0f, 0x9c, 0xd2,
+ 0xef, 0x55, 0x0f, 0xca, 0x29, 0x47, 0xc7, 0xba, 0x8d, 0x55, 0xa7, 0x53,
+ 0xfe, 0x1f, 0x3e, 0xb2, 0x5b, 0xf5, 0x36, 0xab, 0x5d, 0x2b, 0x43, 0xfd,
+ 0xda, 0x19, 0x64, 0x4d, 0x51, 0x99, 0x75, 0xb1, 0x79, 0xdc, 0x8d, 0x5b,
+ 0xe8, 0x0d, 0x22, 0xe3, 0x9f, 0xba, 0x97, 0xc2, 0x4b, 0x77, 0x2c, 0x37,
+ 0xf4, 0x10, 0x9e, 0x4a, 0x04, 0xd8, 0x61, 0x86, 0xe1, 0x76, 0x41, 0x99,
+ 0xca, 0xac, 0x99, 0xec, 0xd0, 0x40, 0xeb, 0x96, 0x22, 0xb8, 0xc2, 0x07,
+ 0x56, 0x16, 0x2d, 0xfc, 0x23, 0xdd, 0x14, 0xec, 0x82, 0xf6, 0x33, 0x11,
+ 0x5d, 0x6d, 0x13, 0x76, 0x29, 0x49, 0xba, 0x0e, 0x75, 0x23, 0x12, 0x8b,
+ 0x6f, 0x51, 0x80, 0x4c, 0xbc, 0xec, 0x48, 0xd0, 0x25, 0x95, 0x11, 0x91,
+ 0xe8, 0x32, 0xe8, 0x22, 0x1e, 0x16, 0x48, 0x68, 0xdd, 0x4d, 0x96, 0x6d,
+ 0xb8, 0x7d, 0x2d, 0xa8, 0xaf, 0xce, 0x5f, 0xf8, 0x98, 0xb7, 0x97, 0x74,
+ 0x6d, 0xf4, 0x80, 0xa9, 0x83, 0xd5, 0x9e, 0x5f, 0xa0, 0x3e, 0xfd, 0x8a,
+ 0x2c, 0x30, 0xd6, 0x7f, 0xb5, 0x65, 0x12, 0xf2, 0x6d, 0xca, 0xf7, 0xf6,
+ 0x68, 0xd4, 0x13, 0x3f, 0x78, 0x1a, 0x46, 0x13, 0xf2, 0xc5, 0xed, 0x53,
+ 0xb8, 0x6f, 0x9e, 0xf7, 0xf9, 0x5f, 0xcf, 0x99, 0x02, 0xad, 0x69, 0xc7,
+ 0x16, 0x58, 0x8b, 0x67, 0x9d, 0xf7, 0xe4, 0x5c, 0xb3, 0x4e, 0x03, 0xa2,
+ 0x72, 0x09, 0xc3, 0x49, 0x7e, 0xbb, 0xe9, 0xa5, 0xe6, 0x91, 0x99, 0x77,
+ 0xb4, 0xb7, 0x24, 0x10, 0xcd, 0xc9, 0xfd, 0x71, 0x5c, 0x51, 0x81, 0xbe,
+ 0xa6, 0xfe, 0x79, 0x5d, 0x82, 0xaf, 0xd1, 0x78, 0x3f, 0x1b, 0x86, 0x89,
+ 0x54, 0x23, 0x9f, 0xe0, 0xd7, 0x7d, 0xc9, 0x82, 0x79, 0xdd, 0xe7, 0x08,
+ 0x0b, 0x8f, 0xd8, 0x15, 0x41, 0x5f, 0xd6, 0x7f, 0xe8, 0xc5, 0x70, 0xf7,
+ 0xf1, 0xb0, 0x61, 0x67, 0x34, 0x92, 0x43, 0x6a, 0x8a, 0x30, 0x98, 0xf9,
+ 0x91, 0x9c, 0x66, 0x46, 0x38, 0x85, 0x07, 0x45, 0x0e, 0xd3, 0x5a, 0x72,
+ 0xf5, 0xbd, 0xe1, 0x93, 0xb6, 0xfc, 0x31, 0x3d, 0x47, 0x1a, 0x4c, 0x65,
+ 0x8c, 0x9a, 0x70, 0x77, 0x53, 0xb5, 0xa2, 0xb6, 0xa7, 0x40, 0x8e, 0x31,
+ 0xc5, 0xf4, 0xf8, 0xc7, 0x46, 0x64, 0x28, 0xee, 0x25, 0x39, 0xa6, 0x5c,
+ 0x9d, 0x8b, 0xe3, 0x37, 0xef, 0x47, 0xc7, 0xaf, 0x41, 0x07, 0x17, 0xab,
+ 0x9c, 0x91, 0xd3, 0x06, 0x64, 0x9f, 0x7a, 0x53, 0xb2, 0x26, 0x24, 0x1d,
+ 0x69, 0x97, 0x9b, 0xe2, 0xea, 0x5a, 0x35, 0xe7, 0x9d, 0x1a, 0x8b, 0x2e,
+ 0xcc, 0xad, 0x60, 0xdd, 0x43, 0xde, 0xfd, 0x05, 0x8c, 0x0f, 0x3c, 0xea,
+ 0x69, 0x46, 0x85, 0x58, 0x5e, 0x32, 0x86, 0x23, 0xa0, 0xfc, 0x79, 0x6b,
+ 0xeb, 0xf9, 0x90, 0x95, 0x96, 0x65, 0x0b, 0xe5, 0x8d, 0x4b, 0xe7, 0xe5,
+ 0xb2, 0x60, 0xa7, 0x9e, 0x59, 0x21, 0xf5, 0x63, 0xc1, 0x6f, 0x8a, 0x76,
+ 0x59, 0xe1, 0x48, 0x57, 0xd4, 0x0c, 0x81, 0xbb, 0x82, 0x80, 0xd3, 0x9a,
+ 0x7c, 0x4f, 0xe2, 0xda, 0x4d, 0x8b, 0xcc, 0x4b, 0xb2, 0x45, 0x41, 0x33,
+ 0x5f, 0x2d, 0x5d, 0x51, 0x54, 0x08, 0x75, 0x4c, 0x8c, 0x4a, 0xcf, 0x7d,
+ 0x49, 0x67, 0xd7, 0x65, 0x65, 0x1a, 0x9d, 0xdb, 0xac, 0xbf, 0x0a, 0x98,
+ 0x9d, 0x7a, 0xbb, 0x5b, 0xc8, 0x2b, 0x90, 0x89, 0xb3, 0x7b, 0x8e, 0xdf,
+ 0x66, 0x9c, 0x0d, 0x4d, 0xe7, 0x99, 0xa7, 0x09, 0x66, 0x3e, 0x45, 0xb6,
+ 0x58, 0x04, 0x8f, 0x24, 0x7f, 0x19, 0x73, 0xc1, 0x33, 0x18, 0x6e, 0xc4,
+ 0xbf, 0x67, 0x55, 0xd9, 0x75, 0x44, 0xa8, 0xba, 0xa9, 0x3d, 0xf7, 0x3b,
+ 0xfe, 0xcf, 0xac, 0xdc, 0xb3, 0xb7, 0x1f, 0x3b, 0x01, 0xf3, 0xf4, 0x13,
+ 0x9c, 0x2b, 0x2b, 0xb7, 0xc3, 0x25, 0x3b, 0x43, 0x00, 0x71, 0xa3, 0x07,
+ 0x25, 0x77, 0x93, 0xea, 0x58, 0x34, 0x89, 0x9f, 0xe2, 0xc1, 0xd0, 0x1a,
+ 0xbb, 0xdc, 0xe2, 0x7f, 0x09, 0x30, 0x4c, 0xbc, 0x2e, 0xb6, 0xd7, 0xf0,
+ 0x70, 0xa5, 0x34, 0x4c, 0x32, 0x3d, 0xb6, 0xb8, 0x88, 0x08, 0x3e, 0xb7,
+ 0x4d, 0x3f, 0x9e, 0x95, 0x14, 0x5f, 0x63, 0xff, 0x11, 0xbe, 0x1e, 0x12,
+ 0x4a, 0x91, 0x62, 0x5b, 0xd1, 0x2e, 0x54, 0x43, 0x8c, 0xbd, 0x99, 0xa8,
+ 0x86, 0x80, 0x84, 0xa8, 0x7c, 0x22, 0xbe, 0x7a, 0xad, 0xc4, 0x83, 0x51,
+ 0xf0, 0x9b, 0x81, 0x20, 0xd1, 0x76, 0x32, 0x6e, 0xa0, 0xdf, 0xa6, 0xfd,
+ 0x94, 0x4e, 0x23, 0xdf, 0x90, 0x33, 0x12, 0x50, 0x35, 0x47, 0xd3, 0xcd,
+ 0x23, 0x36, 0x3d, 0x1b, 0x47, 0xe4, 0x23, 0x43, 0xfe, 0x0e, 0x8d, 0x07,
+ 0xd6, 0x51, 0x5a, 0xf8, 0x9d, 0xc5, 0x0a, 0x98, 0x46, 0xf2, 0x72, 0x8a,
+ 0xcc, 0x1f, 0x2e, 0xe5, 0x90, 0x86, 0x4c, 0x05, 0xc4, 0xd7, 0x21, 0xbd,
+ 0xd9, 0x24, 0x1f, 0xdb, 0xa7, 0x7c, 0xbe, 0x9c, 0xe3, 0xf5, 0xbe, 0xd8,
+ 0x0d, 0x73, 0xd8, 0x0d, 0xba, 0xac, 0x43, 0x84, 0x68, 0x1b, 0x3e, 0xc2,
+ 0xdd, 0xbd, 0x6f, 0x03, 0xa6, 0xd8, 0xb6, 0x0d, 0x23, 0x56, 0xe8, 0x2d,
+ 0x26, 0x81, 0xc7, 0x42, 0xfd, 0x1f, 0xdf, 0xa1, 0xc9, 0x4b, 0xa3, 0x83,
+ 0x7c, 0x19, 0x49, 0xd0, 0x89, 0x89, 0x8f, 0xbc, 0x16, 0xa8, 0x6e, 0x36,
+ 0xf5, 0xcc, 0x1f, 0xde, 0x71, 0xa4, 0x3b, 0xf0, 0x32, 0xad, 0x94, 0x51,
+ 0x7d, 0xeb, 0xb4, 0xe5, 0x4f, 0x63, 0xa0, 0xce, 0x6d, 0xc9, 0x17, 0x93,
+ 0x6c, 0x79, 0x5a, 0x39, 0xe1, 0xc6, 0x0f, 0xee, 0x6b, 0x11, 0x15, 0x2d,
+ 0x15, 0xca, 0x7c, 0x7e, 0x57, 0x30, 0x1d, 0x62, 0x93, 0x91, 0xb7, 0x57,
+ 0x66, 0x59, 0x5d, 0x30, 0x6d, 0x36, 0xfb, 0xb6, 0xc8, 0x23, 0x51, 0xd6,
+ 0xb9, 0x45, 0x98, 0x89, 0x80, 0x29, 0x68, 0x0e, 0xcc, 0x84, 0xc8, 0xda,
+ 0xf5, 0x13, 0x4d, 0xaf, 0x49, 0x92, 0xa7, 0x9f, 0x3e, 0x85, 0x97, 0xa5,
+ 0x33, 0xe3, 0x98, 0x0f, 0x8d, 0x6d, 0xbc, 0x67, 0x9f, 0x3a, 0x36, 0xde,
+ 0x30, 0xce, 0x5a, 0xc6, 0x57, 0x03, 0x49, 0xc7, 0x71, 0xc9, 0x91, 0x23,
+ 0x9e, 0xad, 0x34, 0x32, 0x8f, 0x2c, 0x14, 0xee, 0xd2, 0xbc, 0x89, 0x64,
+ 0x1e, 0x09, 0x88, 0xd0, 0xd6, 0xf4, 0xd3, 0xd8, 0x1e, 0x2a, 0x53, 0x19,
+ 0x35, 0x95, 0xe6, 0x50, 0x27, 0x48, 0x1b, 0x34, 0xf3, 0xb6, 0xe4, 0x98,
+ 0x41, 0x30, 0x4f, 0xf4, 0x15, 0x9e, 0x76, 0x3a, 0x4d, 0xe6, 0xaa, 0xca,
+ 0x51, 0x26, 0x9d, 0xcf, 0x74, 0x9d, 0xec, 0x99, 0xe9, 0xcf, 0x8b, 0x25,
+ 0x21, 0x09, 0x3d, 0xc6, 0x50, 0x4b, 0xde, 0x12, 0x99, 0xf6, 0x19, 0x30,
+ 0xaa, 0x9a, 0x45, 0x4e, 0x07, 0xaf, 0xf6, 0x62, 0x5a, 0x7c, 0x3c, 0x50,
+ 0x33, 0xc7, 0xfa, 0x23, 0xfc, 0x0b, 0x36, 0xa2, 0xdf, 0xda, 0xea, 0x35,
+ 0x7a, 0xa5, 0x66, 0x9f, 0xcc, 0x6c, 0x73, 0x51, 0x06, 0x77, 0xa3, 0xb9,
+ 0xdb, 0x6c, 0xe8, 0x11, 0xa4, 0x47, 0x00, 0x2b, 0x2d, 0xf9, 0x6d, 0x0b,
+ 0xc0, 0x40, 0xc4, 0x95, 0x8d, 0x9c, 0x45, 0x4e, 0x62, 0x96, 0x18, 0xe7,
+ 0x7f, 0x83, 0x33, 0x5d, 0xa7, 0xf5, 0x6c, 0x90, 0x77, 0xc5, 0xf8, 0x31,
+ 0x60, 0x70, 0x16, 0xc2, 0x62, 0x77, 0xa1, 0x69, 0x62, 0x74, 0x38, 0x3a,
+ 0xed, 0xd0, 0x27, 0xad, 0x65, 0x40, 0xdd, 0x6b, 0x6b, 0x3c, 0x8f, 0xa4,
+ 0x69, 0xd3, 0xb8, 0x45, 0x2b, 0x35, 0x79, 0x1d, 0x43, 0x1b, 0xd3, 0x66,
+ 0xae, 0xaa, 0xe2, 0x54, 0x1f, 0xe0, 0xe3, 0x8e, 0x0c, 0x32, 0xe8, 0x0a,
+ 0xb3, 0x00, 0x21, 0xd9, 0x80, 0xcb, 0x6d, 0x25, 0x31, 0x32, 0x19, 0x3c,
+ 0xb3, 0x23, 0xc8, 0x95, 0x87, 0xc2, 0xbf, 0xcc, 0xfc, 0xa6, 0x23, 0x1f,
+ 0x91, 0xe1, 0x41, 0xe5, 0xe8, 0x06, 0x31, 0xd2, 0x1b, 0x1b, 0x3c, 0x11,
+ 0x55, 0xb2, 0xc6, 0xd3, 0x84, 0x62, 0x69, 0xfa, 0x7c, 0x61, 0x59, 0x41,
+ 0x45, 0x6d, 0x38, 0x30, 0x08, 0x71, 0x10, 0x87, 0x8c, 0xc5, 0x1c, 0x1f,
+ 0xbc, 0xe2, 0x8a, 0x5f, 0xda, 0x03, 0xaf, 0xcd, 0xae, 0x80, 0xcc, 0x67,
+ 0x82, 0x82, 0xfb, 0xdb, 0x32, 0xcf, 0x1a, 0xe4, 0x0b, 0x0d, 0x93, 0xd7,
+ 0x8c, 0x66, 0x92, 0xb2, 0x59, 0x5c, 0x9e, 0x0f, 0x35, 0xfc, 0x18, 0x1b,
+ 0x2d, 0x0a, 0xa2, 0xe9, 0x40, 0x10, 0xba, 0x31, 0x1d, 0xa2, 0x93, 0x08,
+ 0xd5, 0xd5, 0x9c, 0xaa, 0x23, 0xea, 0xf6, 0xdc, 0x9c, 0x74, 0x18, 0x9b,
+ 0xd8, 0xa9, 0x46, 0xb9, 0x23, 0x10, 0x8b, 0xc4, 0xba, 0x15, 0x84, 0x0e,
+ 0x9c, 0x65, 0xfd, 0x31, 0x34, 0x6c, 0xfb, 0xad, 0x62, 0x29, 0x30, 0xf4,
+ 0xc4, 0x06, 0x68, 0xa8, 0xd6, 0x4e, 0x91, 0xce, 0x76, 0xea, 0x66, 0x4a,
+ 0xd2, 0x6f, 0x59, 0xcc, 0xa8, 0x9f, 0xd4, 0x92, 0x16, 0x86, 0xea, 0xce,
+ 0x4d, 0x13, 0xa3, 0x56, 0xe1, 0x15, 0x6a, 0x2d, 0x11, 0x3b, 0x5b, 0xad,
+ 0xd1, 0x21, 0x19, 0x37, 0x1e, 0xf8, 0xc9, 0x42, 0x0f, 0x42, 0x0a, 0x1d,
+ 0x7f, 0xb6, 0xc8, 0xe0, 0xe5, 0xf1, 0x62, 0x2e, 0x5b, 0xeb, 0xb6, 0x2e,
+ 0xd3, 0xff, 0x96, 0xd6, 0xcb, 0x6c, 0xb4, 0x71, 0x59, 0x2b, 0x7b, 0xa9,
+ 0x19, 0xa4, 0x79, 0xbd, 0x75, 0x9e, 0x40, 0x58, 0xf5, 0x0b, 0x39, 0x41,
+ 0xb8, 0xfc, 0xa7, 0xc7, 0x08, 0xd2, 0x74, 0xbc, 0x0e, 0x3e, 0xff, 0x51,
+ 0x58, 0x33, 0xf5, 0x17, 0xd3, 0x81, 0xf8, 0xbc, 0x8b, 0x8e, 0xf1, 0x88,
+ 0x0c, 0x49, 0x0b, 0xda, 0x13, 0x1c, 0x4e, 0x8b, 0x19, 0x83, 0xf5, 0xcc,
+ 0xfb, 0x48, 0x21, 0x2b, 0xb3, 0x99, 0x96, 0x92, 0xe2, 0x3f, 0x99, 0x19,
+ 0x61, 0x1f, 0xb1, 0x35, 0xb5, 0x8e, 0x19, 0x91, 0x66, 0xf5, 0xbb, 0xe2,
+ 0xb4, 0x5e, 0x92, 0xea, 0x31, 0x5b, 0xd2, 0x97, 0x99, 0x6f, 0xca, 0xf2,
+ 0x1d, 0x69, 0x66, 0x72, 0x94, 0x23, 0xcc, 0x12, 0x16, 0xd1, 0x19, 0xf5,
+ 0xe8, 0xd2, 0x96, 0x5a, 0xf2, 0x50, 0x99, 0xc4, 0xba, 0x8c, 0x32, 0xc3,
+ 0x15, 0xbd, 0x23, 0x83, 0xb0, 0xef, 0x57, 0x08, 0xf6, 0xad, 0x6f, 0xca,
+ 0xc3, 0xd0, 0xee, 0xb4, 0xab, 0xee, 0xc6, 0x38, 0xa0, 0x6c, 0x34, 0xb3,
+ 0xd5, 0x33, 0xbd, 0x3b, 0x34, 0x55, 0x17, 0xc0, 0x68, 0x29, 0x08, 0xec,
+ 0x2a, 0x01, 0x77, 0x07, 0xfb, 0xa8, 0xb2, 0xc0, 0x2b, 0x0b, 0x01, 0x87,
+ 0xf4, 0x20, 0xb1, 0xc2, 0xc0, 0xbe, 0x3b, 0xdb, 0x1c, 0x08, 0xbf, 0x0c,
+ 0xf0, 0x3f, 0xf3, 0x3e, 0x7c, 0xd6, 0xae, 0x69, 0x23, 0x04, 0x70, 0xbf,
+ 0xea, 0x40, 0xa5, 0x8f, 0x3b, 0x51, 0x2b, 0xe0, 0xf0, 0xff, 0x77, 0x9e,
+ 0xa8, 0x34, 0x79, 0xdc, 0x99, 0x4a, 0xbb, 0x87, 0x2a, 0x52, 0xca, 0x79,
0x65, 0x8f, 0x7f, 0xc3, 0x53, 0xc6, 0xc7, 0xec, 0x17, 0x9d, 0x33, 0xdd,
- 0x14, 0xff, 0x37, 0x9f, 0xb2, 0xcf, 0x3b, 0x5a, 0x20, 0x78, 0x0d, 0xd7,
- 0x94, 0xa1, 0xf1, 0xf1, 0x0d, 0x84, 0x26, 0x26, 0x5d, 0x6b, 0xc7, 0x52,
- 0x90, 0xc5, 0x6b, 0xd1, 0x30, 0x97, 0x4d, 0x24, 0xa0, 0x0e, 0x58, 0x1b,
- 0xe6, 0xe3, 0x99, 0x95, 0x79, 0x9a, 0xa3, 0xbb, 0xb6, 0xe1, 0xd0, 0x3f,
- 0x65, 0x89, 0x40, 0xbd, 0xda, 0xeb, 0x43, 0xab, 0x41, 0xe8, 0xb8, 0xae,
- 0xcd, 0xdd, 0xbe, 0xc8, 0x59, 0x63, 0x30, 0xda, 0x0b, 0xe5, 0x53, 0x7e,
- 0x33, 0x1a, 0x0d, 0x0e, 0xcf, 0x4f, 0xba, 0x27, 0xaf, 0xfd, 0x3d, 0x2d,
- 0xc5, 0xfb, 0x6c, 0x65, 0x55, 0x9a, 0xd5, 0x68, 0x85, 0xf6, 0xb7, 0x8d,
- 0xaa, 0xdb, 0x9d, 0xd8, 0xc3, 0xba, 0x85, 0xc6, 0x93, 0x0e, 0xf9, 0x84,
- 0xc2, 0x42, 0x84, 0xc9, 0x29, 0x75, 0x9c, 0xdf, 0x4d, 0x72, 0x86, 0x9f,
- 0x08, 0xc0, 0x8b, 0xe0, 0xab, 0x00, 0xdd, 0x44, 0xb2, 0xf7, 0xe2, 0xf9,
- 0x9e, 0x39, 0x18, 0xf7, 0x4c, 0xd9, 0x26, 0xef, 0x3f, 0x1d, 0x3e, 0xd9,
- 0xa1, 0x8a, 0xe8, 0x79, 0xe3, 0x45, 0x16, 0xa4, 0x7d, 0x23, 0xef, 0x22,
- 0xc1, 0x7b, 0xea, 0xd6, 0xbb, 0xe3, 0xa3, 0x84, 0x11, 0x5e, 0x20, 0xf0,
- 0x4a, 0x90, 0x70, 0x42, 0xc9, 0x2b, 0xb2, 0x22, 0x88, 0x30, 0x93, 0x28,
- 0x1d, 0xaa, 0x2f, 0x8c, 0xb7, 0x6b, 0x60, 0x8e, 0x05, 0xd3, 0x91, 0xa8,
- 0x35, 0x81, 0x3c, 0xee, 0xc2, 0xf6, 0x84, 0x24, 0x1e, 0x1b, 0x16, 0x32,
- 0x33, 0x8b, 0x48, 0x85, 0x4b, 0x7f, 0x4e, 0x1e, 0x49, 0xc1, 0x4c, 0x95,
- 0x18, 0x57, 0xaf, 0x8f, 0x1a, 0x30, 0x2b, 0x4c, 0x20, 0xe7, 0x9e, 0x0c,
- 0x2c, 0x1d, 0x91, 0x88, 0x8a, 0x4f, 0x23, 0x17, 0xcb, 0x64, 0x6e, 0x8d,
- 0x92, 0xab, 0xbf, 0x4d, 0x8b, 0xe1, 0x2f, 0xb5, 0xa8, 0x22, 0x2a, 0x71,
- 0xdb, 0x70, 0xe2, 0xbe, 0x8b, 0xa8, 0x16, 0x83, 0x69, 0xd5, 0x88, 0xd8,
- 0x48, 0xea, 0xfa, 0x02, 0xb0, 0x01, 0xe8, 0x34, 0xb3, 0x09, 0xe5, 0x35,
- 0x64, 0x5b, 0x5f, 0xd7, 0x78, 0x04, 0xc5, 0xef, 0xbe, 0xb5, 0x53, 0x65,
- 0xe9, 0x4c, 0x5e, 0x14, 0xe3, 0x6d, 0x59, 0xc7, 0x7e, 0x79, 0x85, 0x7a,
- 0x11, 0x75, 0xc0, 0x79, 0x74, 0x07, 0xe4, 0x9d, 0xa5, 0xfc, 0xe2, 0xa7,
- 0x2d, 0x96, 0x61, 0x9e, 0x36, 0x13, 0x65, 0x77, 0x33, 0x17, 0x4a, 0xbe,
- 0x48, 0x67, 0xc9, 0x23, 0x40, 0xb8, 0xab, 0x17, 0xff, 0x41, 0x89, 0xa7,
- 0x67, 0x73, 0x45, 0x7d, 0x19, 0x5b, 0xe8, 0x9d, 0xb9, 0xd8, 0x62, 0x65,
- 0xc2, 0x9f, 0x25, 0x2d, 0x49, 0xb7, 0xa2, 0x41, 0x42, 0x85, 0x8a, 0x40,
- 0x73, 0xec, 0x27, 0xdd, 0x18, 0xb3, 0xb1, 0x25, 0x95, 0x62, 0x6c, 0x52,
- 0xce, 0x17, 0x2e, 0x60, 0xa0, 0x8d, 0x4a, 0x8a, 0xd8, 0xf6, 0xb0, 0x2b,
- 0x06, 0x63, 0xe2, 0x9d, 0xeb, 0xba, 0x4e, 0x1e, 0x21, 0x7c, 0x7f, 0x0b,
- 0x61, 0x48, 0x4a, 0x1c, 0x7b, 0x1a, 0x7e, 0x29, 0x7b, 0xa1, 0x7f, 0x5d,
- 0x24, 0x5b, 0x08, 0x9a, 0x66, 0x3e, 0x2b, 0x9c, 0x46, 0xae, 0x43, 0x3f,
- 0x15, 0x42, 0x63, 0xf4, 0xd1, 0xed, 0xe1, 0x63, 0x68, 0x5e, 0xfb, 0xc2,
- 0xe8, 0x6a, 0x49, 0x5c, 0x43, 0xba, 0x99, 0xff, 0x1b, 0x14, 0xc1, 0x67,
- 0x89, 0x5d, 0xab, 0xc7, 0xe8, 0x83, 0xcc, 0x89, 0xcc, 0x05, 0x04, 0x03,
- 0xba, 0x1f, 0x67, 0x74, 0xfd, 0x3f, 0x7d, 0xf0, 0xff, 0x97, 0xf4, 0xc1,
- 0x5f, 0x7d, 0x4a, 0x95, 0xcd, 0x73, 0xa0, 0x20, 0x40, 0x7b, 0x36, 0xdd,
- 0x69, 0x8c, 0x21, 0x73, 0x67, 0xf7, 0x8f, 0x3f, 0xa2, 0xde, 0x09, 0x4d,
- 0xc2, 0xad, 0xf0, 0x7f, 0xc7, 0x11, 0x7d, 0xd4, 0xc9, 0xfc, 0x7f, 0xde,
- 0x8f, 0xff, 0x6e, 0xe7, 0x70, 0xb5, 0x36, 0xb8, 0x65, 0x36, 0xd9, 0x1d,
- 0x95, 0x1c, 0xe0, 0xb2, 0x1f, 0xb0, 0xb4, 0xb7, 0x9d, 0xe6, 0x43, 0x89,
- 0x2b, 0x3c, 0x77, 0x27, 0xe7, 0xdf, 0x3f, 0x67, 0xbe, 0x8a, 0x51, 0x37,
- 0x6a, 0x59, 0x25, 0xa7, 0xaf, 0x0f, 0xcf, 0x7f, 0xc1, 0x69, 0xff, 0x33,
- 0xfc, 0xd0, 0x8b, 0x2c, 0x9b, 0x0e, 0x38, 0x42, 0xf2, 0x12, 0xff, 0x88,
- 0xc4, 0x14, 0x53, 0x9b, 0x8e, 0x8e, 0x6d, 0x4b, 0x81, 0x93, 0x30, 0x56,
- 0x8b, 0x97, 0x8d, 0x9a, 0x52, 0x08, 0x41, 0xc4, 0x02, 0x75, 0xd4, 0x02,
- 0x2f, 0x4b, 0x59, 0x4c, 0xb7, 0x39, 0x23, 0x06, 0x5f, 0xc6, 0x56, 0x91,
- 0x10, 0x3b, 0x1d, 0xef, 0x6b, 0x22, 0x91, 0xb2, 0x34, 0x7c, 0xde, 0x33,
- 0x38, 0xf8, 0x21, 0xff, 0x39, 0x1f, 0x82, 0x7b, 0x37, 0x14, 0x0e, 0xee,
- 0x30, 0xd9, 0xd3, 0x93, 0x5d, 0x2e, 0x92, 0x8d, 0xac, 0xdc, 0xdf, 0x31,
- 0x35, 0xbd, 0xfb, 0xf9, 0x55, 0x98, 0x81, 0xb5, 0x53, 0xe9, 0xaf, 0x44,
- 0x6b, 0x06, 0x29, 0x16, 0x38, 0x5d, 0x56, 0x61, 0x51, 0xa0, 0xd4, 0x9f,
- 0x1f, 0x8e, 0x92, 0x73, 0x7f, 0xed, 0x27, 0xda, 0xb3, 0x69, 0x3e, 0xef,
- 0xbd, 0x10, 0xd8, 0xd4, 0x36, 0x79, 0x23, 0xf3, 0xe0, 0x24, 0x7e, 0xaf,
- 0x1c, 0xa8, 0x76, 0x4f, 0xfd, 0xfb, 0x0e, 0x7d, 0xfb, 0xe7, 0x10, 0x83,
- 0xe5, 0xbd, 0xbb, 0x1e, 0xe9, 0x54, 0x16, 0x4d, 0x45, 0x9c, 0xc6, 0x1a,
- 0x27, 0x55, 0x8e, 0x68, 0x23, 0x17, 0xfd, 0x24, 0xd9, 0x94, 0xcb, 0x24,
- 0x63, 0xd6, 0x42, 0x6e, 0x41, 0x3e, 0xdf, 0x49, 0xd6, 0x4c, 0x86, 0x6e,
- 0x6d, 0xc1, 0xf8, 0x45, 0x15, 0x94, 0x8d, 0x92, 0xab, 0x45, 0xe6, 0xcc,
- 0x1c, 0x55, 0xf7, 0xc2, 0x4e, 0xb3, 0xc2, 0x5b, 0xa1, 0xc1, 0xfe, 0x15,
- 0x48, 0xe4, 0xdf, 0x10, 0x79, 0xb9, 0xbe, 0x14, 0x50, 0x98, 0x6d, 0xad,
- 0xe6, 0x89, 0x15, 0x0b, 0x29, 0x0a, 0x19, 0xa3, 0xa2, 0xa1, 0xf9, 0x5d,
- 0xde, 0xdc, 0x53, 0xc2, 0xfe, 0x9d, 0xe0, 0xc4, 0xbb, 0xf2, 0x7e, 0x74,
- 0xfa, 0x84, 0xb1, 0x91, 0x97, 0xa7, 0x23, 0x9f, 0xf9, 0xba, 0x4e, 0xb8,
- 0x6c, 0xb7, 0x11, 0x3f, 0x5f, 0x1f, 0x1f, 0x8e, 0x2e, 0x87, 0x91, 0x31,
- 0x86, 0xa8, 0x10, 0x97, 0x39, 0x48, 0x2c, 0x40, 0xb3, 0xf4, 0x9e, 0xc8,
- 0xe6, 0x24, 0x01, 0x89, 0xfa, 0xc6, 0x5d, 0xd3, 0xb6, 0xc9, 0xcc, 0xe5,
- 0xda, 0x0f, 0xc0, 0x15, 0x85, 0x24, 0x51, 0x66, 0xee, 0xc6, 0xf9, 0x8c,
- 0x46, 0x60, 0xba, 0x65, 0x8c, 0xa1, 0xb9, 0xe0, 0x8a, 0x91, 0xce, 0x5a,
- 0xce, 0x08, 0x4e, 0x46, 0xdf, 0x69, 0x7b, 0x22, 0x88, 0xcc, 0x52, 0x72,
- 0x7c, 0x57, 0x67, 0xec, 0x19, 0x2d, 0xa3, 0xac, 0x33, 0x61, 0x0c, 0xa3,
- 0x36, 0x74, 0xae, 0x38, 0x9d, 0xc8, 0x02, 0xfa, 0xf1, 0x0a, 0xf8, 0x0e,
- 0xc2, 0x74, 0xa8, 0xb4, 0xfe, 0xa8, 0xa0, 0xf0, 0x49, 0x83, 0x92, 0xf6,
- 0xe9, 0xda, 0x2a, 0x3b, 0xfb, 0x5d, 0x4b, 0xc8, 0x2c, 0x34, 0x92, 0x47,
- 0x29, 0x89, 0xa0, 0x6b, 0xdb, 0xfd, 0x90, 0x13, 0xfd, 0xee, 0x76, 0x47,
- 0x4b, 0x69, 0xaf, 0xb8, 0x86, 0xc8, 0xa9, 0xcc, 0x01, 0x27, 0x79, 0x50,
- 0xb4, 0xfd, 0xb6, 0x8c, 0x17, 0xd5, 0x49, 0x26, 0x37, 0x99, 0xb9, 0x45,
- 0x86, 0x5e, 0x0a, 0xf4, 0xa3, 0x27, 0x64, 0x23, 0xe0, 0xca, 0x8a, 0x4c,
- 0xcf, 0x2f, 0x9e, 0x90, 0xa7, 0x4f, 0xc3, 0x09, 0xa9, 0xb2, 0xbf, 0x4d,
- 0x63, 0xf4, 0xc2, 0x00, 0x69, 0x03, 0x21, 0xce, 0xc8, 0xea, 0x0b, 0xe6,
- 0x48, 0xa6, 0xae, 0xee, 0x50, 0x31, 0x12, 0x85, 0xbe, 0x3a, 0xe6, 0x29,
- 0x32, 0xb0, 0x29, 0x04, 0x19, 0x56, 0x57, 0x6c, 0x24, 0x73, 0xd9, 0x3d,
- 0xab, 0x80, 0xa7, 0x6e, 0xde, 0xbc, 0xa0, 0x3c, 0xe5, 0x23, 0x6b, 0x45,
- 0x16, 0x41, 0x3b, 0x51, 0xd2, 0x82, 0x52, 0xb1, 0xec, 0xd9, 0x19, 0x0c,
- 0xae, 0x9a, 0x85, 0x1d, 0xd8, 0xda, 0xdd, 0xb1, 0x1b, 0x4c, 0xc6, 0x8a,
- 0xa1, 0x5f, 0x56, 0x28, 0xbe, 0xc1, 0x9e, 0x14, 0x1d, 0x3f, 0x23, 0xad,
- 0x05, 0x4b, 0x6c, 0xa7, 0x20, 0x80, 0x94, 0x51, 0xc5, 0x0c, 0x46, 0x8c,
- 0x82, 0xe5, 0x47, 0xaa, 0x22, 0x3e, 0x76, 0x22, 0x42, 0xe1, 0x81, 0x69,
- 0x69, 0x15, 0x8a, 0xd3, 0xf1, 0x8a, 0x08, 0xd7, 0xf0, 0xa8, 0xcc, 0x00,
- 0x77, 0x93, 0xb1, 0xbf, 0x83, 0x90, 0x86, 0xd7, 0x98, 0xf2, 0xb7, 0xd9,
- 0x0c, 0x59, 0x39, 0x59, 0x31, 0xa9, 0xee, 0x17, 0x3e, 0x1f, 0xf6, 0xf4,
- 0x01, 0x0d, 0xfe, 0x81, 0x15, 0x68, 0xc1, 0xe7, 0xf7, 0x8c, 0xac, 0xdb,
- 0x0e, 0xf5, 0xaf, 0xd4, 0x96, 0x9f, 0x65, 0xee, 0x3e, 0xba, 0x84, 0x1b,
- 0x1f, 0x60, 0x4c, 0x46, 0x8c, 0x97, 0x49, 0xc2, 0x7c, 0x73, 0x9a, 0x92,
- 0xdc, 0x8d, 0x7b, 0x2c, 0xc1, 0x20, 0x64, 0x11, 0xc4, 0x8f, 0x5e, 0xfb,
- 0xfd, 0x3e, 0xcf, 0xd8, 0xed, 0x7e, 0x90, 0x55, 0x00, 0x91, 0xf0, 0x86,
- 0xdc, 0x34, 0x5a, 0x10, 0x5e, 0x1c, 0x53, 0x74, 0x64, 0xb5, 0xb8, 0xd0,
- 0x3e, 0xfb, 0xa3, 0xac, 0x37, 0x54, 0x33, 0xd7, 0x56, 0x54, 0x6e, 0xe7,
- 0xd3, 0xce, 0xb9, 0x6c, 0x23, 0x23, 0x59, 0x19, 0xbc, 0xa5, 0x9e, 0xa5,
- 0xf1, 0x32, 0x9f, 0x35, 0x89, 0x4d, 0x0f, 0xa4, 0xa7, 0x6f, 0xf7, 0x93,
- 0x55, 0xec, 0xce, 0x43, 0xf9, 0x3d, 0xb2, 0x3d, 0xa7, 0x54, 0x48, 0xc0,
- 0x51, 0xcf, 0x25, 0xb6, 0x0a, 0x27, 0xc0, 0x8b, 0xe4, 0x9f, 0x7e, 0xbe,
- 0xf7, 0xd9, 0xf3, 0xed, 0xf5, 0x15, 0xc6, 0xa9, 0xf2, 0x06, 0x65, 0xb2,
- 0xc9, 0x46, 0xa2, 0x7f, 0xee, 0x0f, 0xfd, 0x39, 0x0a, 0xcb, 0x03, 0x04,
- 0x14, 0x3c, 0x53, 0xda, 0x12, 0x34, 0x0d, 0x4a, 0xa1, 0x4e, 0x5b, 0x85,
- 0x07, 0x46, 0xb6, 0x8c, 0x9c, 0x72, 0x6c, 0xe5, 0xd0, 0x28, 0xec, 0x0e,
- 0x93, 0x8d, 0xc4, 0xc1, 0x13, 0xed, 0xc0, 0x13, 0xee, 0x99, 0x57, 0x89,
- 0x8d, 0x7b, 0x8a, 0xbf, 0x0f, 0xdb, 0xff, 0xf2, 0x03, 0x9a, 0xae, 0x81,
- 0x5f, 0xb7, 0xca, 0x4f, 0x7e, 0xef, 0x55, 0x7e, 0xf2, 0xc0, 0x2a, 0x3f,
- 0x79, 0xec, 0x2a, 0x7f, 0xf6, 0xec, 0xf9, 0xe7, 0xbf, 0x6e, 0x95, 0xbd,
- 0x49, 0xfe, 0x3f, 0xb3, 0xca, 0xde, 0x36, 0xfb, 0x75, 0xab, 0x2c, 0xc0,
- 0x90, 0x40, 0x10, 0x4b, 0xd1, 0x0a, 0xa0, 0xf8, 0x28, 0xed, 0x9c, 0x61,
- 0x97, 0xfc, 0xb0, 0x25, 0x72, 0x6d, 0x71, 0xfb, 0xda, 0x8a, 0x55, 0x46,
- 0x11, 0x8b, 0x98, 0xd9, 0x2e, 0x07, 0x1e, 0x1a, 0xee, 0x62, 0x46, 0x85,
- 0x8f, 0x36, 0x07, 0x9b, 0xea, 0x22, 0xd1, 0x1c, 0x23, 0xa5, 0x90, 0xe1,
- 0xaf, 0x99, 0xc5, 0xfe, 0x27, 0x52, 0x10, 0x85, 0xb8, 0x19, 0x0f, 0xf9,
- 0xd4, 0x9a, 0xb4, 0x15, 0x75, 0x30, 0x62, 0xd8, 0xac, 0xa0, 0xf2, 0x8a,
- 0xed, 0x31, 0x13, 0xf5, 0xd8, 0x22, 0x1d, 0x16, 0x9c, 0x6c, 0x0b, 0x92,
- 0x04, 0x49, 0x6c, 0x48, 0xc3, 0x13, 0xec, 0x93, 0xba, 0xae, 0xbc, 0xd7,
- 0x05, 0x6b, 0xd7, 0x29, 0x68, 0xbe, 0x0a, 0x31, 0x4f, 0x98, 0xd3, 0xc6,
- 0xab, 0xf4, 0x26, 0x66, 0xd1, 0x6b, 0xea, 0xee, 0x74, 0x39, 0x5f, 0x28,
- 0x9d, 0x16, 0x25, 0x37, 0xe4, 0x40, 0x38, 0x69, 0x36, 0x2d, 0xc3, 0x2e,
- 0x23, 0xfe, 0x25, 0x9b, 0xeb, 0x90, 0x30, 0x62, 0xc9, 0x2b, 0x55, 0xa4,
- 0x85, 0x44, 0x34, 0x1f, 0x94, 0x47, 0x01, 0x5c, 0x17, 0x33, 0xf9, 0x74,
- 0x6f, 0x5b, 0x36, 0x9d, 0x4c, 0xc7, 0xa7, 0xd9, 0x78, 0x79, 0xad, 0x39,
- 0xa9, 0xb6, 0x66, 0x53, 0x7b, 0xb1, 0x90, 0x80, 0x41, 0x2c, 0x15, 0x59,
- 0x9f, 0x81, 0xb0, 0xf7, 0x61, 0x7a, 0x7e, 0x43, 0xd5, 0xca, 0x26, 0xeb,
- 0x70, 0x53, 0xc1, 0xd0, 0xb1, 0x07, 0xf2, 0xbe, 0x37, 0x74, 0xfc, 0xa4,
- 0xb5, 0xa2, 0x91, 0xe2, 0x32, 0xfe, 0x56, 0x69, 0x26, 0x8b, 0xc1, 0x55,
- 0x4a, 0x04, 0x77, 0x41, 0x52, 0xa2, 0x60, 0x25, 0xc5, 0x85, 0x77, 0x79,
- 0x74, 0x9e, 0xbc, 0x49, 0xa5, 0xb4, 0x45, 0xb2, 0x65, 0x04, 0xd3, 0x67,
- 0x4f, 0xf7, 0x9e, 0x6c, 0xaf, 0x55, 0x50, 0xdb, 0x84, 0x2d, 0xf8, 0x56,
- 0x51, 0xc6, 0x30, 0xab, 0x97, 0x4b, 0x63, 0x4d, 0x0a, 0x11, 0x84, 0xf9,
- 0xd0, 0x87, 0x77, 0x67, 0xaf, 0x8f, 0x4f, 0x0f, 0xff, 0x6c, 0x13, 0x8e,
- 0x69, 0x0e, 0x34, 0x81, 0xed, 0x83, 0x31, 0xeb, 0xee, 0x3f, 0x18, 0x3b,
- 0xd9, 0xfc, 0x72, 0xeb, 0xc9, 0x36, 0x12, 0x77, 0x82, 0x3a, 0x67, 0xd7,
- 0x59, 0x2b, 0x5b, 0x5b, 0x00, 0xc4, 0x6b, 0x28, 0x47, 0x46, 0xb6, 0x4c,
- 0xde, 0xee, 0xd0, 0x48, 0x2d, 0x41, 0x24, 0x32, 0x01, 0xb7, 0xdb, 0xa4,
- 0x1e, 0x95, 0x7e, 0x2a, 0xac, 0x44, 0x92, 0x76, 0x1b, 0xd0, 0x67, 0x2d,
- 0x66, 0xf9, 0x24, 0x27, 0x35, 0xbe, 0x36, 0xfb, 0x96, 0x10, 0xd7, 0x14,
- 0xa0, 0xbe, 0x6a, 0x53, 0x9b, 0x21, 0x01, 0x0c, 0x88, 0xe5, 0xb5, 0x5e,
- 0xa6, 0xb6, 0x48, 0x6c, 0x20, 0x43, 0xb3, 0x59, 0x91, 0x35, 0x03, 0xe9,
- 0xd6, 0x4b, 0xf3, 0xe7, 0xab, 0xdb, 0x74, 0x16, 0xe4, 0x16, 0x52, 0x99,
- 0x30, 0xdd, 0x99, 0x16, 0x57, 0x48, 0x6f, 0x7a, 0xd4, 0xfd, 0x23, 0xcb,
- 0x60, 0xaf, 0x4f, 0x9a, 0xa3, 0x12, 0x30, 0xd5, 0x5f, 0x5e, 0xfe, 0xf9,
- 0xfc, 0xf8, 0xd5, 0x4b, 0x42, 0x25, 0x7e, 0x49, 0xb8, 0xf3, 0xba, 0x05,
- 0x52, 0x4c, 0xa8, 0x8a, 0x6d, 0x30, 0x86, 0x1f, 0x5f, 0x9f, 0x8c, 0xce,
- 0x4f, 0xcf, 0x8e, 0x5e, 0xbd, 0xfc, 0x91, 0x8c, 0x2d, 0x23, 0x53, 0xef,
- 0xbd, 0x77, 0xed, 0xcf, 0x2c, 0x19, 0x77, 0x98, 0x90, 0x7e, 0xfc, 0xc3,
- 0x87, 0xe3, 0x77, 0xdf, 0xbf, 0x7a, 0x79, 0x9b, 0x56, 0x7d, 0x1a, 0x1f,
- 0xbf, 0xbd, 0xa2, 0x0a, 0x5f, 0x6b, 0xab, 0x91, 0xd6, 0x3a, 0x9e, 0x7d,
- 0xac, 0xf3, 0xbf, 0x67, 0x89, 0x79, 0x7d, 0xb6, 0x0c, 0xc9, 0x70, 0x2f,
- 0x39, 0x87, 0xd7, 0x4c, 0x06, 0xfd, 0x2d, 0xf9, 0xfa, 0xf4, 0x3b, 0x22,
- 0x5c, 0xb4, 0x1e, 0xc4, 0x39, 0xd7, 0xf8, 0x48, 0xbe, 0x7c, 0xb6, 0xb7,
- 0xbf, 0xed, 0x0a, 0xd8, 0x81, 0xb0, 0xd5, 0xf4, 0xf8, 0x63, 0x90, 0x33,
- 0xf1, 0x77, 0x25, 0x9d, 0xb2, 0x45, 0x16, 0x9a, 0xea, 0xbe, 0x45, 0x8f,
- 0xa0, 0xee, 0x18, 0xe4, 0x5a, 0x33, 0x09, 0x44, 0x49, 0xf2, 0x80, 0x78,
- 0x6b, 0x02, 0x57, 0xd4, 0xe5, 0x1b, 0x8f, 0x24, 0xe1, 0x6b, 0xb7, 0xf1,
- 0x4c, 0x77, 0xc4, 0x9d, 0xb5, 0xf6, 0xda, 0xf8, 0x1d, 0x83, 0x1c, 0x5d,
- 0x5b, 0x0b, 0x93, 0x6d, 0x4c, 0x71, 0xd9, 0x3f, 0xf1, 0x79, 0xf6, 0x82,
- 0xc1, 0xc8, 0xfe, 0x28, 0x99, 0xd8, 0x0b, 0xa3, 0xd4, 0x8d, 0xa7, 0xa9,
- 0xa9, 0x6b, 0x2d, 0xc5, 0x7c, 0x4e, 0x19, 0x83, 0x84, 0xd4, 0x67, 0xaf,
- 0x87, 0xe7, 0xd3, 0x98, 0x65, 0xd7, 0xe9, 0xe4, 0x3e, 0xb1, 0x34, 0xa5,
- 0xc2, 0x69, 0x32, 0x2d, 0x23, 0xb9, 0xf3, 0x49, 0x3a, 0x21, 0x23, 0x67,
- 0x96, 0x4d, 0xaf, 0xa5, 0x8e, 0x2d, 0xe7, 0xe1, 0x53, 0x9a, 0x96, 0x3a,
- 0x44, 0x5a, 0xbd, 0x93, 0x22, 0x1f, 0xab, 0xf3, 0x5b, 0x6c, 0x41, 0xb2,
- 0xf6, 0xee, 0xa3, 0x6d, 0x83, 0xf2, 0x9a, 0x6b, 0xe7, 0xf4, 0x69, 0xdb,
- 0x95, 0xfc, 0x77, 0x1c, 0x72, 0xe2, 0x71, 0x81, 0xb7, 0xf2, 0x25, 0xfd,
- 0x75, 0x25, 0x9b, 0x33, 0x9b, 0xf3, 0x5c, 0x40, 0xd5, 0x71, 0x9f, 0x59,
- 0x02, 0x2e, 0x29, 0x90, 0x40, 0x9c, 0xc0, 0x8d, 0xfa, 0x46, 0x57, 0xb2,
- 0x24, 0x71, 0xa8, 0x01, 0xd2, 0xcd, 0x6c, 0x50, 0xbe, 0xae, 0x68, 0x6f,
- 0xac, 0x68, 0xd2, 0xa6, 0x65, 0x85, 0xb1, 0x0b, 0x24, 0x05, 0x51, 0x8c,
- 0xfe, 0x25, 0x35, 0x44, 0x12, 0x91, 0x54, 0x12, 0x33, 0x51, 0x5f, 0x6a,
- 0x34, 0x24, 0xf5, 0x69, 0x24, 0xf0, 0x10, 0xd3, 0x10, 0x90, 0x6e, 0x59,
- 0x45, 0x81, 0xdf, 0x6a, 0x50, 0x33, 0x72, 0x81, 0x22, 0x4d, 0x96, 0x9c,
- 0xd4, 0x74, 0xb2, 0x56, 0x65, 0x8d, 0x32, 0xa0, 0x60, 0xbd, 0x3a, 0xea,
- 0xc2, 0x58, 0xe5, 0x41, 0xcd, 0xd6, 0xb9, 0xce, 0x94, 0x27, 0x8b, 0xc7,
- 0xa5, 0x20, 0x29, 0x74, 0xc9, 0x08, 0x02, 0x1a, 0x8a, 0xe5, 0xb9, 0x8e,
- 0xd2, 0x8a, 0x5b, 0xdd, 0x92, 0xd5, 0x72, 0x7b, 0x55, 0x99, 0x96, 0xa9,
- 0x11, 0xba, 0xa6, 0xcc, 0x2d, 0x85, 0x7b, 0x89, 0xd3, 0x7b, 0x3b, 0x53,
- 0x12, 0x64, 0x84, 0x34, 0x8c, 0x70, 0xef, 0x5e, 0x52, 0x44, 0x4e, 0xab,
- 0xa8, 0x72, 0xff, 0x7d, 0xe5, 0x4a, 0x46, 0xdd, 0xa3, 0xad, 0xc1, 0xb6,
- 0xcd, 0xc9, 0xcd, 0x1b, 0xab, 0xb6, 0x45, 0x08, 0x1b, 0x12, 0xcb, 0xa0,
- 0x6b, 0xcb, 0x59, 0xb1, 0x5b, 0x50, 0x42, 0x11, 0x99, 0x6c, 0x0a, 0xfa,
- 0xda, 0x0e, 0xe7, 0x7e, 0xa9, 0x14, 0xca, 0xc3, 0xd4, 0xd3, 0xa0, 0xad,
- 0x22, 0xbb, 0xf3, 0xdb, 0x72, 0xfa, 0xb8, 0x6d, 0xef, 0xf7, 0x74, 0x04,
- 0x1b, 0x63, 0x82, 0x92, 0x56, 0x92, 0x97, 0xdf, 0x1f, 0x5f, 0x8c, 0x4e,
- 0xce, 0xde, 0x7d, 0x19, 0xb5, 0x13, 0xe5, 0x97, 0xb6, 0xaa, 0x90, 0x66,
- 0xba, 0xb9, 0xba, 0x2e, 0xe4, 0x1e, 0x52, 0x27, 0x04, 0x68, 0x0a, 0xcd,
- 0x8d, 0x47, 0x8f, 0x74, 0xb7, 0x40, 0x2d, 0x6d, 0xc0, 0xfd, 0x99, 0x56,
- 0xd7, 0x98, 0x0b, 0xb3, 0xbf, 0x60, 0xd3, 0xa0, 0x6a, 0xa7, 0x1a, 0x3b,
- 0xf6, 0xaf, 0xfb, 0xc1, 0xf8, 0xe3, 0x50, 0x15, 0x2f, 0x52, 0xbc, 0x5c,
- 0x70, 0x1e, 0x14, 0x65, 0xbc, 0x33, 0x2d, 0x86, 0xdf, 0xbf, 0x80, 0xde,
- 0x9b, 0x8a, 0x54, 0xfa, 0x2f, 0x9a, 0x87, 0x6f, 0xf7, 0xbc, 0xec, 0x0d,
- 0xfb, 0xdc, 0x5e, 0xec, 0xb9, 0xbd, 0xf0, 0xb9, 0xfd, 0xd8, 0x73, 0xfb,
- 0xe1, 0x73, 0x4f, 0x62, 0xcf, 0x79, 0x09, 0x3a, 0x9e, 0xcb, 0x4b, 0x67,
- 0x68, 0x9d, 0x45, 0xe8, 0xad, 0x67, 0xcb, 0x92, 0xdd, 0xf0, 0x4c, 0xb8,
- 0x5f, 0x64, 0xc2, 0xfa, 0x10, 0x9b, 0x8e, 0x1f, 0xd5, 0x7c, 0x88, 0x10,
- 0x3b, 0xa4, 0xd2, 0x18, 0xc1, 0x6b, 0xfe, 0xfb, 0x65, 0x98, 0x76, 0x87,
- 0x59, 0x0f, 0x6b, 0x9e, 0x93, 0x16, 0x84, 0xb4, 0x10, 0xae, 0xb3, 0xab,
- 0xc1, 0x9f, 0x16, 0xe3, 0x74, 0xc8, 0x62, 0xe0, 0x25, 0x63, 0xf7, 0x46,
- 0x17, 0xe7, 0xbd, 0xbe, 0xb8, 0x23, 0xcd, 0x37, 0x06, 0xe6, 0xdf, 0x09,
- 0xb4, 0x6d, 0x22, 0xab, 0x7f, 0xf6, 0x74, 0x9b, 0x03, 0x09, 0xe8, 0xe4,
- 0x52, 0x2a, 0xd8, 0x06, 0x61, 0x22, 0xf3, 0x3b, 0x87, 0x3d, 0xaa, 0x5a,
- 0x45, 0x25, 0x8c, 0x16, 0xdc, 0x1e, 0x20, 0x43, 0x02, 0xfa, 0x52, 0xae,
- 0x7d, 0xf5, 0xe5, 0xe6, 0x71, 0x27, 0x71, 0x27, 0x1f, 0xc8, 0x81, 0x7f,
- 0xda, 0x99, 0x51, 0xed, 0x50, 0x64, 0x2a, 0x5d, 0x05, 0x5e, 0x0c, 0x1b,
- 0xda, 0x92, 0x32, 0x45, 0xa1, 0x50, 0x76, 0x7b, 0x96, 0x95, 0xb1, 0x66,
- 0x55, 0x0a, 0x87, 0xe6, 0xac, 0x7b, 0xa3, 0x1c, 0xaa, 0xbf, 0x5b, 0xdc,
- 0x1f, 0xde, 0xf4, 0x39, 0xb6, 0xe6, 0x87, 0x07, 0xe4, 0x8f, 0x07, 0x6f,
- 0x47, 0x31, 0x8e, 0x34, 0x24, 0xc5, 0x80, 0x3d, 0x6a, 0x40, 0x3a, 0xa2,
- 0x35, 0x43, 0x92, 0x44, 0xf6, 0xce, 0xa0, 0xdc, 0xa8, 0xbc, 0x61, 0xb9,
- 0x95, 0xa7, 0xa1, 0x05, 0xcb, 0xf9, 0xa8, 0x81, 0xb6, 0x46, 0x4a, 0x67,
- 0x33, 0x50, 0xe9, 0x4e, 0x47, 0xdb, 0xea, 0x61, 0xf3, 0x1d, 0x6c, 0x9e,
- 0x2c, 0x82, 0xec, 0x79, 0x1c, 0xb0, 0x4f, 0x5c, 0x6c, 0xf4, 0xb2, 0x92,
- 0x6b, 0xaf, 0xc9, 0xbb, 0x0b, 0x4f, 0x2b, 0xc9, 0x8b, 0x68, 0x0f, 0xdb,
- 0x4e, 0xc0, 0x78, 0x27, 0xf7, 0x5a, 0x28, 0x6b, 0x45, 0x55, 0xff, 0xf6,
- 0x3d, 0xdc, 0xff, 0x75, 0x73, 0xb8, 0xff, 0xcf, 0x9b, 0xc3, 0x27, 0xbf,
- 0x7a, 0x0e, 0x9f, 0xfc, 0x36, 0x73, 0xe8, 0xaa, 0x7b, 0xd2, 0x43, 0xd4,
- 0xac, 0x57, 0x0c, 0x51, 0x6e, 0x63, 0xba, 0x5b, 0xcd, 0x3f, 0xc7, 0x14,
- 0x27, 0x27, 0xaf, 0x84, 0x79, 0x90, 0xd2, 0x59, 0x33, 0xd4, 0x39, 0xec,
- 0x0c, 0xd8, 0xb1, 0x21, 0x5a, 0x5a, 0x62, 0x72, 0xdf, 0x21, 0x59, 0x1e,
- 0xec, 0x90, 0x24, 0x1c, 0xbf, 0x2e, 0x49, 0xe5, 0x34, 0xba, 0x40, 0x3f,
- 0x79, 0x37, 0x1a, 0x71, 0xfc, 0x72, 0x04, 0x0f, 0x6c, 0xd7, 0x06, 0x21,
- 0xe3, 0x0d, 0x17, 0xc8, 0x16, 0x69, 0x26, 0x67, 0xa6, 0x87, 0xb8, 0xca,
- 0xa1, 0x55, 0xf3, 0x7b, 0xf3, 0x74, 0x42, 0x3f, 0xde, 0x1d, 0xee, 0x3d,
- 0xb1, 0xbf, 0xd9, 0xfe, 0x05, 0xb4, 0x19, 0xce, 0x3d, 0x1a, 0xd5, 0x55,
- 0x42, 0x3c, 0x6d, 0x7b, 0x19, 0x3e, 0xad, 0x70, 0x69, 0x3f, 0x62, 0x29,
- 0x38, 0x78, 0xc3, 0x69, 0xde, 0x9d, 0x43, 0xdc, 0x4f, 0x44, 0x67, 0x89,
- 0xe9, 0x2b, 0x8f, 0xf1, 0x42, 0x7b, 0x4e, 0xdf, 0xff, 0x33, 0x5e, 0xe8,
- 0xb8, 0x4e, 0xd1, 0xfa, 0x57, 0x2b, 0x75, 0xb8, 0xa9, 0x06, 0x5a, 0xb2,
- 0x20, 0x4e, 0x8a, 0xe8, 0xcc, 0x2d, 0x02, 0x0e, 0x93, 0x0e, 0x4e, 0x7a,
- 0x98, 0x18, 0xf7, 0x83, 0x63, 0x79, 0xd7, 0x79, 0x3c, 0x39, 0xda, 0xbb,
- 0xb2, 0x36, 0xa5, 0x4d, 0xc3, 0xd6, 0x44, 0x58, 0x1e, 0x65, 0xcd, 0x9b,
- 0x6a, 0x59, 0xe8, 0x47, 0x04, 0x49, 0x42, 0x7e, 0x03, 0xe6, 0x83, 0x08,
- 0x96, 0x75, 0x92, 0x31, 0x57, 0x40, 0xfe, 0x90, 0x90, 0x7f, 0xde, 0x1e,
- 0x6f, 0x3a, 0xc9, 0x06, 0x69, 0x3d, 0xc9, 0xf3, 0xb8, 0x79, 0xc3, 0x9e,
- 0x40, 0x90, 0x7e, 0x25, 0x57, 0x4b, 0x8a, 0xde, 0xe1, 0x15, 0xd3, 0x97,
- 0x25, 0x93, 0x8a, 0x72, 0x99, 0x08, 0xc9, 0xa4, 0xa7, 0x4e, 0x97, 0xcb,
- 0xe6, 0xba, 0x54, 0x2f, 0x47, 0x3f, 0xb0, 0x96, 0xb4, 0x5c, 0xbc, 0x59,
- 0x9e, 0x49, 0x95, 0x2f, 0x40, 0xf2, 0xe4, 0xd5, 0x5b, 0xe8, 0xdb, 0x82,
- 0x84, 0x30, 0x3f, 0xc4, 0xa3, 0xcc, 0x15, 0xfa, 0xde, 0x07, 0xb9, 0xcb,
- 0xbd, 0x41, 0x8f, 0x6c, 0x3d, 0x4b, 0x52, 0x6f, 0xde, 0x25, 0x42, 0x3e,
- 0xcf, 0x8d, 0xcb, 0x05, 0x5f, 0x57, 0xbb, 0xec, 0xd5, 0xb7, 0x63, 0xb6,
- 0xd0, 0xbd, 0x52, 0xbe, 0x81, 0x87, 0x57, 0x7d, 0xb6, 0x63, 0x66, 0xf6,
- 0x24, 0xaf, 0x83, 0x92, 0xac, 0xde, 0x64, 0x9f, 0x38, 0xed, 0x24, 0xd4,
- 0xc0, 0x58, 0x64, 0xdd, 0x68, 0x4a, 0xc6, 0xe1, 0xe8, 0xe8, 0xe4, 0xa4,
- 0x95, 0xa2, 0x42, 0xd3, 0x06, 0xd7, 0x32, 0x67, 0x3f, 0x27, 0x35, 0xf1,
- 0x67, 0x21, 0xfd, 0x18, 0xdd, 0x8d, 0x51, 0xf0, 0xce, 0xf3, 0xeb, 0x1b,
- 0xb8, 0xa3, 0xb2, 0xb4, 0xce, 0xb5, 0x4a, 0x4e, 0xca, 0x01, 0xe1, 0x65,
- 0x61, 0xba, 0x09, 0xcb, 0xe3, 0x66, 0x69, 0xcc, 0xcc, 0xdf, 0x3f, 0xed,
- 0xde, 0x77, 0xc7, 0x38, 0xe0, 0xa7, 0xcc, 0x16, 0x9f, 0x2b, 0xdf, 0xfd,
- 0x1d, 0xee, 0xb5, 0x08, 0xdf, 0xed, 0x79, 0x25, 0x15, 0x51, 0xc0, 0xb7,
- 0x01, 0x27, 0x04, 0x73, 0xd6, 0x52, 0xdd, 0x4e, 0xa2, 0xfe, 0xe1, 0xc6,
- 0xcd, 0x70, 0xd5, 0xa9, 0x0e, 0x2e, 0x48, 0xeb, 0x71, 0xeb, 0x1a, 0x52,
- 0xec, 0x5b, 0x5c, 0x8b, 0xad, 0xdf, 0xeb, 0x5e, 0x83, 0xf8, 0xc2, 0xda,
- 0x13, 0x90, 0xf2, 0xfe, 0xe7, 0x27, 0xfd, 0xdd, 0xef, 0xb6, 0x3f, 0xf3,
- 0xb5, 0xd8, 0x03, 0xf0, 0xdf, 0xf3, 0x04, 0x08, 0xec, 0xb8, 0xf7, 0xc7,
- 0x5e, 0x12, 0x67, 0x44, 0x7e, 0x44, 0x3b, 0xad, 0x84, 0xed, 0x7f, 0xee,
- 0x4e, 0x8b, 0x64, 0x90, 0x7b, 0x42, 0xcc, 0x5f, 0xd3, 0x65, 0x91, 0x7f,
- 0x02, 0xfe, 0xd3, 0xe8, 0x0b, 0x2f, 0x89, 0x0e, 0x78, 0x05, 0xcf, 0xed,
- 0x11, 0xeb, 0x2e, 0xae, 0x82, 0x3d, 0x7d, 0xf8, 0xbd, 0x79, 0x39, 0x99,
- 0x96, 0x73, 0x8a, 0x05, 0x72, 0x1b, 0x7d, 0x9f, 0x6c, 0x10, 0x62, 0x3d,
- 0x12, 0x4b, 0x2c, 0xb2, 0x86, 0xd0, 0x5a, 0x6b, 0xdd, 0x7d, 0x6d, 0x17,
- 0xea, 0x25, 0x8a, 0x8b, 0x2c, 0x08, 0x62, 0xb8, 0xa6, 0x78, 0x1d, 0x26,
- 0xc3, 0x41, 0xfa, 0xda, 0x3e, 0x15, 0x8f, 0x91, 0x59, 0xb6, 0x8e, 0x65,
- 0x50, 0x67, 0xb2, 0xe3, 0x58, 0xd8, 0xd3, 0xd2, 0x72, 0x3b, 0x4e, 0xfb,
- 0xbc, 0xeb, 0xac, 0x01, 0x6f, 0xba, 0xf3, 0x69, 0x4b, 0xd9, 0x99, 0xb5,
- 0x94, 0xd0, 0x4c, 0xe3, 0xed, 0xaa, 0x7d, 0xb5, 0xc8, 0xff, 0xc1, 0xde,
- 0x92, 0xcf, 0x68, 0xf3, 0xef, 0x68, 0xcc, 0x67, 0x16, 0x22, 0xf5, 0xbc,
- 0x02, 0x98, 0x2c, 0xeb, 0x08, 0x17, 0x0e, 0xcf, 0x2f, 0xfd, 0x1b, 0xcc,
- 0x0b, 0xaa, 0x44, 0xb4, 0x47, 0xc1, 0x25, 0x22, 0xa2, 0x95, 0xbd, 0xd9,
- 0x29, 0x7f, 0x43, 0x85, 0x06, 0xb5, 0x5f, 0x15, 0x6f, 0xc4, 0x76, 0x29,
- 0x49, 0xf5, 0xf3, 0x7b, 0x3c, 0xd9, 0x91, 0x62, 0xc3, 0xa2, 0x84, 0x89,
- 0xee, 0xc4, 0x64, 0x5c, 0x04, 0xca, 0x27, 0x56, 0x5e, 0x8a, 0xe9, 0xdb,
- 0xc2, 0x66, 0xbc, 0xb0, 0x5e, 0x7d, 0xec, 0x20, 0x5c, 0x44, 0x84, 0x16,
- 0x43, 0x1f, 0x63, 0xb9, 0xe4, 0x6a, 0x48, 0x0a, 0xed, 0xde, 0x32, 0x8a,
- 0xb8, 0x16, 0x8f, 0xa6, 0x16, 0x89, 0x51, 0xd7, 0x55, 0x8e, 0x0e, 0xb8,
- 0x61, 0x57, 0x9d, 0x26, 0x9b, 0x6a, 0xe0, 0x26, 0x8a, 0x44, 0xc7, 0x56,
- 0xaa, 0x8c, 0x4f, 0xe4, 0x3f, 0xdc, 0x56, 0xe5, 0xd2, 0x1c, 0xf1, 0xbc,
- 0xf0, 0xf7, 0x7b, 0x1a, 0xf5, 0x18, 0xb3, 0x50, 0x4a, 0x0e, 0x85, 0xaf,
- 0x31, 0x23, 0xb7, 0x47, 0xe7, 0x1b, 0x43, 0x23, 0x65, 0xb6, 0x52, 0xcb,
- 0x2b, 0x25, 0xd0, 0xda, 0xed, 0x80, 0xe0, 0xf7, 0x9e, 0x61, 0x41, 0x5e,
- 0x1e, 0x84, 0xcf, 0xf0, 0x4c, 0x5d, 0xed, 0x74, 0x0d, 0x28, 0x2c, 0x44,
- 0x63, 0xc2, 0x93, 0x88, 0x94, 0x46, 0x98, 0x4a, 0xa0, 0xd6, 0xc6, 0x75,
- 0x09, 0x81, 0xac, 0xf5, 0x45, 0x34, 0x50, 0x2d, 0xd4, 0x5a, 0xdc, 0x26,
- 0xbc, 0x30, 0xe3, 0x2c, 0x6c, 0x8e, 0x17, 0x31, 0x32, 0xa9, 0x7f, 0xb6,
- 0x15, 0x99, 0x14, 0xd5, 0x4f, 0x52, 0x2d, 0x3c, 0xd2, 0xb6, 0x0a, 0x07,
- 0xd1, 0x7a, 0xcb, 0xbe, 0x5f, 0x47, 0x73, 0x3c, 0x4c, 0x8e, 0xe9, 0xe9,
- 0xb0, 0xa1, 0x3f, 0xa1, 0x05, 0x22, 0xff, 0xf4, 0x2a, 0xec, 0x70, 0xc1,
- 0xca, 0x70, 0x67, 0xc9, 0xde, 0x4b, 0xb4, 0x08, 0x30, 0xa7, 0x04, 0x0e,
- 0x85, 0x42, 0x9e, 0x14, 0x77, 0xd5, 0x36, 0x93, 0xde, 0xf5, 0xac, 0x1c,
- 0x8f, 0xcd, 0xc8, 0x7b, 0xaa, 0xa7, 0x98, 0x6f, 0x07, 0xce, 0x25, 0xbf,
- 0x27, 0xea, 0xe5, 0xec, 0xc3, 0x72, 0x60, 0x44, 0x23, 0xf5, 0xc2, 0x15,
- 0xa9, 0xd2, 0xcf, 0x6b, 0xbd, 0xf4, 0xc8, 0x4d, 0x03, 0x9e, 0xc5, 0xc4,
- 0x6e, 0x41, 0x1a, 0x9b, 0x07, 0x90, 0x94, 0x04, 0x08, 0xfa, 0xa9, 0x76,
- 0x2f, 0xe1, 0x7a, 0xde, 0x2b, 0xc0, 0x35, 0x8e, 0xd2, 0x19, 0x82, 0x4b,
- 0x6a, 0x7c, 0xe4, 0x61, 0xed, 0x6d, 0x9e, 0x82, 0xf6, 0x80, 0x7a, 0xff,
- 0x49, 0x7f, 0xec, 0xf5, 0xe9, 0xbf, 0xfb, 0xff, 0xd5, 0x4b, 0xc8, 0x84,
- 0x39, 0xd8, 0xd9, 0xb9, 0xbb, 0xbb, 0x1b, 0x0a, 0x77, 0xf1, 0xd0, 0x2c,
- 0xd9, 0x46, 0x98, 0x29, 0x40, 0xcc, 0x2d, 0x2b, 0x3e, 0x70, 0x99, 0xf4,
- 0xf2, 0xf9, 0xf5, 0x5f, 0xf6, 0x06, 0x7b, 0xbb, 0xbb, 0xbb, 0x3f, 0x0f,
- 0x17, 0x34, 0xbf, 0x57, 0x68, 0xd6, 0xfc, 0xd7, 0x6f, 0x76, 0x87, 0x7b,
- 0xb2, 0x13, 0x25, 0xc3, 0xe2, 0xdf, 0xb9, 0xe2, 0xf2, 0xe0, 0xc1, 0xe5,
- 0x9d, 0x7c, 0xe0, 0x09, 0x19, 0x76, 0xae, 0xa7, 0xeb, 0xf2, 0xee, 0x18,
- 0x51, 0x41, 0x1e, 0xc5, 0x67, 0x4f, 0xf6, 0xf7, 0x13, 0x56, 0x39, 0x18,
- 0xce, 0xce, 0x11, 0x1e, 0xca, 0x64, 0x94, 0xf2, 0x7d, 0x7c, 0x9b, 0x4d,
- 0x88, 0xd2, 0xa5, 0xe2, 0xca, 0x60, 0x41, 0xa1, 0x28, 0x05, 0x4e, 0xb0,
- 0xfd, 0x9b, 0x9b, 0xab, 0xbc, 0x9c, 0xde, 0xbb, 0x56, 0xcd, 0x16, 0xaf,
- 0x48, 0xb4, 0x52, 0xf5, 0x1d, 0xc6, 0x88, 0x73, 0x7d, 0x68, 0x94, 0x4e,
- 0x8d, 0xe8, 0x6d, 0xb6, 0xa6, 0x04, 0xee, 0x39, 0x30, 0x87, 0x15, 0x34,
- 0xbf, 0xa8, 0xf3, 0x00, 0xee, 0x9f, 0x65, 0x25, 0xe4, 0xe1, 0x88, 0xff,
- 0xdc, 0xa5, 0xf7, 0xad, 0xeb, 0xde, 0xcc, 0xf8, 0x4b, 0xf3, 0x9f, 0x55,
- 0x75, 0x5f, 0x49, 0xb9, 0xb4, 0x15, 0xd0, 0xae, 0xb2, 0x66, 0x72, 0xd3,
- 0x45, 0xa1, 0x40, 0x86, 0x9b, 0xde, 0xde, 0x98, 0x01, 0xdd, 0xdb, 0x6a,
- 0x85, 0xb1, 0xd2, 0x2a, 0x5e, 0x1e, 0x8f, 0x69, 0x92, 0xe8, 0x74, 0x51,
- 0xa9, 0x94, 0xab, 0x2d, 0xb2, 0x58, 0x8c, 0xaa, 0x47, 0x99, 0x2b, 0x48,
- 0x82, 0xef, 0xe5, 0xb5, 0xa6, 0x19, 0x4d, 0x6e, 0xb2, 0xb9, 0xc8, 0xcc,
- 0x2d, 0x05, 0x92, 0xf4, 0x64, 0x0f, 0xf6, 0x22, 0x41, 0xb1, 0xde, 0x95,
- 0xfe, 0xca, 0x8c, 0x64, 0x5b, 0x12, 0x75, 0xec, 0x45, 0x27, 0xf4, 0xe2,
- 0xd7, 0x4b, 0x32, 0x1d, 0xc7, 0xa9, 0xdc, 0x28, 0x9a, 0x3b, 0xb6, 0x02,
- 0x07, 0x65, 0x84, 0x62, 0x56, 0xe1, 0x1a, 0xab, 0x97, 0xe3, 0x81, 0xe8,
- 0x3e, 0xe8, 0x11, 0x62, 0x6e, 0x74, 0x5a, 0x5f, 0x9f, 0x1c, 0x5d, 0x72,
- 0xca, 0x8c, 0xf9, 0x2f, 0xa1, 0x6b, 0xcd, 0x1f, 0x94, 0x29, 0x13, 0xf2,
- 0xbf, 0x9f, 0x3f, 0x91, 0x22, 0xb0, 0xb4, 0x59, 0xad, 0x8b, 0x39, 0x75,
- 0xe8, 0x83, 0x96, 0xf2, 0xd7, 0xf7, 0x38, 0x85, 0x23, 0x74, 0xec, 0x2d,
- 0x3d, 0xd1, 0x66, 0x5a, 0x3d, 0x7d, 0x36, 0xdc, 0xe5, 0x21, 0xd2, 0x1c,
- 0x4a, 0x60, 0x51, 0x90, 0xdd, 0xf0, 0x16, 0xd5, 0xc2, 0x91, 0x97, 0xae,
- 0xe0, 0xf7, 0xd4, 0xae, 0xf4, 0x13, 0xa6, 0x84, 0xe4, 0xd4, 0x4b, 0xfd,
- 0xad, 0x07, 0x22, 0x79, 0x00, 0x3e, 0xab, 0xb7, 0x97, 0x40, 0xa7, 0xee,
- 0xbb, 0x74, 0x7e, 0xa0, 0x5b, 0x54, 0x54, 0x2f, 0x84, 0x70, 0x0c, 0x5e,
- 0x2f, 0x7b, 0x42, 0x50, 0x66, 0x7d, 0x47, 0xe6, 0x5e, 0xd2, 0x2d, 0x20,
- 0x37, 0x96, 0x60, 0xb5, 0x51, 0x02, 0xc9, 0xd5, 0x10, 0x89, 0x69, 0x28,
- 0x01, 0x53, 0xfe, 0xe0, 0x6b, 0x29, 0x63, 0xc7, 0x9a, 0x72, 0x0c, 0x2a,
- 0x8e, 0xb5, 0xdc, 0xb6, 0xf0, 0x1f, 0x31, 0x5f, 0xad, 0xde, 0x39, 0x84,
- 0x47, 0x90, 0x57, 0xbf, 0xe9, 0x14, 0x3d, 0x0c, 0x10, 0xc9, 0xc8, 0x88,
- 0xf6, 0xf2, 0x01, 0x52, 0x0c, 0x10, 0x5b, 0x00, 0xb6, 0x1e, 0xbb, 0xa7,
- 0x7a, 0x5f, 0x90, 0x3f, 0xfb, 0xd5, 0x61, 0x6f, 0xd8, 0x9e, 0xd4, 0x18,
- 0x21, 0x7c, 0xcd, 0xf2, 0xad, 0x6d, 0xce, 0x88, 0x4c, 0x23, 0xb9, 0x9f,
- 0x7d, 0x62, 0x96, 0x2f, 0xac, 0xdc, 0x5d, 0x5e, 0x3c, 0xd9, 0x4f, 0xea,
- 0x7b, 0xa3, 0x43, 0xcc, 0xfd, 0x49, 0xe8, 0xd6, 0xf2, 0x8b, 0xfa, 0xf1,
- 0x5b, 0x05, 0x30, 0x58, 0x74, 0xbd, 0xa7, 0x57, 0x0e, 0xf1, 0x8a, 0x10,
- 0xe6, 0x2b, 0x8c, 0xe1, 0x11, 0x05, 0x22, 0x4b, 0x15, 0x62, 0xe3, 0x59,
- 0x5a, 0x7c, 0xb4, 0x05, 0xed, 0xb8, 0xa1, 0x3e, 0x55, 0x5d, 0xe2, 0xc4,
- 0x13, 0xf7, 0x43, 0x99, 0x1e, 0xbe, 0x18, 0x3b, 0xcd, 0xfd, 0x6d, 0x09,
- 0xd5, 0x7e, 0x9e, 0x56, 0xc8, 0x49, 0xf8, 0x05, 0xe5, 0x27, 0xa3, 0x73,
- 0xeb, 0xca, 0x51, 0xfe, 0x7e, 0x11, 0xd9, 0xa5, 0xce, 0xba, 0x91, 0xd0,
- 0xe6, 0xbf, 0x07, 0x1a, 0xa9, 0x58, 0x57, 0xa3, 0x1b, 0x8f, 0xdb, 0xb2,
- 0x81, 0x36, 0xb6, 0xe1, 0xd7, 0x81, 0x62, 0x6d, 0xce, 0xc5, 0x54, 0x62,
- 0xc9, 0x1b, 0xc3, 0xe4, 0xcc, 0x19, 0x8f, 0x45, 0x1f, 0x8c, 0x79, 0x4d,
- 0x35, 0x11, 0xd3, 0x11, 0x7f, 0x1f, 0x68, 0x51, 0xd7, 0x68, 0x5d, 0x43,
- 0x68, 0x34, 0x28, 0x12, 0x7b, 0xef, 0xf4, 0x3c, 0xef, 0x3a, 0xe3, 0x92,
- 0x43, 0x4e, 0xf6, 0x1a, 0x29, 0x42, 0xb5, 0x79, 0x40, 0x6b, 0x11, 0x80,
- 0xd3, 0x78, 0x10, 0x51, 0xca, 0xee, 0xf8, 0x78, 0x6b, 0x09, 0xe3, 0xcd,
- 0xcc, 0xfd, 0xb7, 0x5c, 0x78, 0xbc, 0xe7, 0x9c, 0xc0, 0x49, 0x99, 0xe1,
- 0x65, 0xd1, 0x0f, 0xb8, 0x1f, 0x50, 0x7e, 0x41, 0x5c, 0x4c, 0x04, 0x8c,
- 0x98, 0x4b, 0x21, 0xbc, 0xcc, 0x16, 0xd8, 0xe1, 0x37, 0x75, 0x2b, 0xba,
- 0x8f, 0x3f, 0x50, 0xaf, 0x8b, 0xd9, 0xc5, 0x75, 0x31, 0xcc, 0xb6, 0xeb,
- 0x33, 0xce, 0x3f, 0xce, 0xe3, 0xc9, 0x47, 0xff, 0x3b, 0x63, 0xad, 0x67,
- 0x55, 0x59, 0x27, 0xdf, 0x3f, 0x53, 0xb4, 0x82, 0x14, 0xff, 0x93, 0xbb,
- 0xc9, 0xea, 0xe5, 0x3c, 0xd7, 0x60, 0x56, 0x89, 0xba, 0x4d, 0x34, 0x5d,
- 0x5a, 0x5f, 0xf7, 0x2f, 0xa9, 0xee, 0x48, 0xc8, 0x5e, 0x37, 0xf2, 0x12,
- 0x65, 0x57, 0x83, 0xeb, 0xb3, 0x5d, 0xab, 0xcb, 0x5c, 0xb8, 0xa4, 0xe8,
- 0x90, 0x7f, 0xc7, 0xa8, 0xf0, 0x63, 0x2a, 0x04, 0x0f, 0x75, 0xc1, 0x76,
- 0x3c, 0xb9, 0xcc, 0xc9, 0x05, 0xe0, 0x6a, 0x7e, 0x45, 0xf1, 0xaf, 0x52,
- 0x08, 0xd2, 0x71, 0x4c, 0x76, 0xa2, 0x7d, 0xa4, 0x57, 0xd4, 0x37, 0x74,
- 0x35, 0xd3, 0x8d, 0x01, 0xc3, 0x6f, 0x63, 0x45, 0xe9, 0x27, 0x58, 0x2b,
- 0xef, 0x2e, 0x4f, 0xdf, 0x4a, 0x1c, 0xd9, 0xad, 0x4f, 0x50, 0x23, 0x5d,
- 0xb6, 0x66, 0x1a, 0xa3, 0x75, 0xf5, 0x26, 0x43, 0x01, 0xea, 0x9c, 0xd3,
- 0x48, 0xd3, 0xd6, 0x97, 0x94, 0x95, 0x4a, 0x80, 0xcf, 0x6a, 0xa2, 0xc9,
- 0xa4, 0x46, 0xbc, 0x9b, 0x04, 0xf8, 0xa9, 0xe1, 0x27, 0x80, 0xf9, 0x6c,
- 0x04, 0x8d, 0xd9, 0x92, 0x5e, 0x75, 0x8f, 0x70, 0x5f, 0x97, 0x9d, 0x23,
- 0xe3, 0x2f, 0x18, 0x6d, 0x43, 0xe6, 0x95, 0x4d, 0x5e, 0x97, 0x77, 0xc5,
- 0xe0, 0x94, 0x32, 0x58, 0x92, 0xd3, 0xf2, 0xda, 0x4c, 0xd5, 0xbb, 0xa8,
- 0x25, 0xff, 0xfe, 0xfc, 0x5d, 0xb2, 0x45, 0x92, 0x38, 0x39, 0xb7, 0xac,
- 0x25, 0xf4, 0xe4, 0xb6, 0x28, 0x9d, 0x46, 0x1c, 0xbe, 0x71, 0xbd, 0xe9,
- 0x27, 0xc7, 0x3f, 0x1e, 0xbe, 0x3d, 0x3f, 0x3d, 0xfe, 0x69, 0x45, 0xb8,
- 0x9c, 0x7e, 0xfc, 0x95, 0xa7, 0x85, 0xc3, 0x6b, 0x4f, 0x51, 0x2c, 0xd3,
- 0x8f, 0xfb, 0xd5, 0xb2, 0x80, 0x8f, 0x8f, 0x6e, 0xc1, 0xd1, 0xe8, 0xfc,
- 0x64, 0xa0, 0x8c, 0x23, 0x5c, 0x14, 0x26, 0x2f, 0x48, 0x65, 0xc6, 0x29,
- 0x16, 0x32, 0xe0, 0xef, 0xc2, 0x00, 0x85, 0x9e, 0x88, 0x7e, 0xf2, 0x4e,
- 0x19, 0x3c, 0xfb, 0x58, 0x71, 0xba, 0xe3, 0x5f, 0xe7, 0xd7, 0x08, 0x32,
- 0x74, 0xd8, 0x43, 0xb4, 0x7e, 0x36, 0x6d, 0x82, 0x80, 0xcd, 0x87, 0x3c,
- 0x91, 0x36, 0x50, 0x57, 0x67, 0x33, 0x76, 0x69, 0xad, 0x94, 0xa3, 0x80,
- 0x34, 0x61, 0x19, 0x09, 0x50, 0x19, 0x84, 0x4f, 0x04, 0x60, 0x49, 0x5a,
- 0x14, 0xaf, 0x9f, 0xe8, 0xa9, 0xbc, 0x47, 0x58, 0x76, 0xc8, 0x25, 0x63,
- 0x85, 0xc3, 0x81, 0xb1, 0xd3, 0x97, 0xc9, 0x41, 0xef, 0x77, 0xbc, 0x48,
- 0x7c, 0xef, 0x5f, 0x84, 0x53, 0x5e, 0xa2, 0x28, 0xea, 0x1e, 0xe4, 0x4c,
- 0x5f, 0x56, 0x6e, 0xd5, 0x03, 0xc3, 0xfe, 0x4f, 0x73, 0xd4, 0x05, 0x69,
- 0x01, 0x0c, 0xf7, 0x75, 0x24, 0x21, 0xb8, 0x80, 0x5c, 0xca, 0x70, 0x12,
- 0xc9, 0xc2, 0xde, 0x34, 0x62, 0x40, 0xfc, 0xba, 0x66, 0x0c, 0x3d, 0xc4,
- 0xab, 0x44, 0xa5, 0x2e, 0xa7, 0x46, 0x7f, 0x39, 0x64, 0xaf, 0x34, 0xaa,
- 0x88, 0x87, 0xcd, 0x61, 0xae, 0x36, 0xbf, 0xdc, 0x94, 0x40, 0x5b, 0x4f,
- 0x6e, 0x64, 0xd2, 0x68, 0x7a, 0xac, 0xd2, 0x10, 0xfb, 0x16, 0xf5, 0xde,
- 0x9c, 0xf8, 0xcd, 0x97, 0x9b, 0x52, 0x57, 0x22, 0xd1, 0x27, 0xbb, 0x02,
- 0x07, 0xef, 0x49, 0xd8, 0x47, 0xb9, 0xbb, 0x64, 0xf5, 0x05, 0x82, 0x75,
- 0x93, 0x4f, 0xa7, 0x99, 0x78, 0x4a, 0xa8, 0x4a, 0x07, 0xb3, 0x04, 0x71,
- 0x60, 0xa9, 0x7b, 0x31, 0xb5, 0x7a, 0x2e, 0x7d, 0xfd, 0x37, 0xed, 0xab,
- 0x57, 0xc2, 0x8a, 0xdc, 0xd4, 0xae, 0xb6, 0xc4, 0x98, 0xab, 0x20, 0xc5,
- 0x96, 0x9b, 0x76, 0x29, 0x62, 0x21, 0x30, 0x97, 0xa0, 0x1b, 0xa9, 0xb5,
- 0xd8, 0x42, 0xd9, 0xf7, 0x3b, 0x20, 0x76, 0xc4, 0x3a, 0x42, 0x97, 0x16,
- 0xaf, 0xa0, 0x56, 0xc1, 0xde, 0xac, 0x88, 0xe4, 0x9c, 0xab, 0x4c, 0x52,
- 0x1d, 0x8e, 0x55, 0x27, 0x55, 0xdd, 0x7d, 0x6e, 0xe7, 0x71, 0x4a, 0x9a,
- 0x42, 0x09, 0xc9, 0x16, 0xc3, 0x83, 0x59, 0x01, 0xc7, 0xaf, 0x68, 0xfb,
- 0xfd, 0x30, 0x1f, 0x9a, 0x0b, 0x30, 0x48, 0x61, 0xa6, 0x81, 0x0d, 0x47,
- 0xb4, 0xe3, 0x67, 0x8a, 0x04, 0x8c, 0xb9, 0xde, 0xfc, 0x74, 0x8d, 0x76,
- 0xd5, 0x0c, 0x71, 0x6f, 0x82, 0xa4, 0x76, 0x75, 0x02, 0x40, 0x27, 0xcf,
- 0x61, 0xb8, 0x9a, 0x83, 0xc3, 0xf6, 0x2f, 0x8e, 0x0f, 0x8a, 0xba, 0xca,
- 0xbf, 0x97, 0x53, 0x15, 0xc1, 0x23, 0xbe, 0x96, 0x60, 0x4a, 0xab, 0x26,
- 0x3a, 0x63, 0xea, 0xd9, 0x8f, 0x54, 0x28, 0x93, 0xfd, 0x58, 0x8f, 0x1e,
- 0xa2, 0xc7, 0x39, 0x3c, 0xbe, 0xf5, 0x30, 0xc6, 0xf4, 0x2f, 0xaa, 0x0b,
- 0x36, 0x9d, 0x5e, 0xec, 0xec, 0x75, 0x45, 0x84, 0x45, 0x9b, 0x28, 0xaf,
- 0xe4, 0x3c, 0x68, 0xdb, 0x91, 0x70, 0x1b, 0x6e, 0x8f, 0x27, 0xb6, 0x38,
- 0xaf, 0x79, 0xb2, 0x4a, 0x2b, 0xae, 0x8f, 0x56, 0x7c, 0x54, 0x40, 0x10,
- 0xb5, 0x9c, 0x7d, 0xca, 0x26, 0xcb, 0xa6, 0x8d, 0x15, 0xf7, 0xfa, 0x24,
- 0xd4, 0x00, 0xe8, 0xd2, 0x16, 0x0e, 0x82, 0x58, 0x28, 0xbd, 0x73, 0x4d,
- 0xeb, 0x3e, 0xe8, 0x6d, 0x4b, 0x64, 0x8f, 0xa3, 0x3e, 0x36, 0xdf, 0x3b,
- 0x16, 0xb3, 0xd3, 0x2e, 0x57, 0x19, 0x3b, 0xd8, 0x5c, 0x00, 0x3b, 0xfa,
- 0x79, 0x2e, 0x30, 0x1c, 0xf9, 0xfa, 0x1b, 0xf6, 0xc6, 0x78, 0x1f, 0xb7,
- 0x15, 0x6a, 0xc4, 0x51, 0x53, 0x07, 0x47, 0x39, 0xf8, 0x32, 0xea, 0xc3,
- 0x19, 0x01, 0x65, 0x6b, 0x3b, 0xea, 0xab, 0x3a, 0xf9, 0x81, 0x83, 0xec,
- 0xe4, 0xfc, 0xf6, 0xb9, 0xf8, 0x37, 0x49, 0xdf, 0xa0, 0x1b, 0x0f, 0x3f,
- 0xb2, 0x12, 0x3f, 0x18, 0xc5, 0xc7, 0x6a, 0xfc, 0xd4, 0xfc, 0xf1, 0x1d,
- 0xfd, 0x71, 0xc5, 0x46, 0xa2, 0xd0, 0xb2, 0xb0, 0x67, 0x2e, 0xdc, 0xda,
- 0xa3, 0x53, 0xfd, 0x43, 0x16, 0x1c, 0x58, 0x60, 0x42, 0xf4, 0x13, 0x87,
- 0x8b, 0xcb, 0xa6, 0x87, 0xfe, 0xab, 0xcd, 0xf4, 0x39, 0xcb, 0x26, 0x0c,
- 0x5c, 0xc9, 0xff, 0xc0, 0x39, 0xd2, 0x07, 0xa7, 0x47, 0x1f, 0x5e, 0x88,
- 0x11, 0xd7, 0xf2, 0x2a, 0x63, 0x89, 0x16, 0x66, 0xaa, 0xfe, 0x4e, 0xb1,
- 0x19, 0x2d, 0x08, 0x9d, 0xa0, 0x3c, 0xe9, 0xdc, 0x22, 0x6b, 0x61, 0x19,
- 0xd9, 0x20, 0x3f, 0x3b, 0x2c, 0xe9, 0xa0, 0xb1, 0x3c, 0xcb, 0x57, 0x74,
- 0x61, 0xf5, 0x90, 0x71, 0xbb, 0xcb, 0x1f, 0x21, 0x6b, 0xd9, 0xea, 0xf7,
- 0x5e, 0x23, 0xcd, 0x48, 0x0c, 0x3d, 0x29, 0xf7, 0x41, 0x0a, 0x9b, 0x2e,
- 0x35, 0x63, 0x24, 0xb0, 0x36, 0x78, 0xd4, 0x4a, 0x07, 0x56, 0x4b, 0x56,
- 0xf4, 0x73, 0x8e, 0x0a, 0x03, 0x60, 0x6e, 0x86, 0x58, 0xf8, 0x68, 0x23,
- 0x98, 0xf3, 0x6c, 0x4e, 0xe1, 0x10, 0x7b, 0x33, 0x32, 0x0f, 0x04, 0x69,
- 0x56, 0xf4, 0xb9, 0x41, 0xbc, 0xb9, 0x29, 0x69, 0x6f, 0x74, 0xcb, 0x32,
- 0x6e, 0xe7, 0x5f, 0x82, 0x08, 0x58, 0x7d, 0x5f, 0x4c, 0x6e, 0x5e, 0xbf,
- 0x1b, 0xc5, 0x5f, 0xef, 0x0e, 0x0e, 0x4f, 0x1b, 0x2d, 0x84, 0xf6, 0x02,
- 0x13, 0xdd, 0x09, 0x03, 0x12, 0x0a, 0x86, 0x7b, 0xbf, 0x8d, 0x37, 0xd7,
- 0x7e, 0xc5, 0x3a, 0x87, 0x48, 0xb3, 0x60, 0x29, 0x2e, 0x8a, 0x27, 0x3c,
- 0xf1, 0x83, 0x94, 0xce, 0x42, 0xb4, 0xf2, 0x92, 0x3d, 0xd3, 0x14, 0x42,
- 0x40, 0x89, 0x4a, 0xb4, 0x58, 0x79, 0xc8, 0xa3, 0xee, 0xbe, 0x06, 0x69,
- 0xbb, 0xfe, 0xf1, 0x4b, 0x96, 0xf9, 0x94, 0x6a, 0x9c, 0x46, 0x02, 0x4e,
- 0xc1, 0x0c, 0x59, 0xb7, 0xbd, 0x0b, 0x08, 0x9a, 0xad, 0x3a, 0xa3, 0xd7,
- 0x79, 0x97, 0xf6, 0x65, 0xb3, 0xe2, 0x47, 0xd5, 0xaa, 0x21, 0x99, 0x39,
- 0xd9, 0xff, 0xe6, 0xeb, 0xf0, 0xf6, 0x7c, 0xfd, 0x6e, 0xc5, 0xe7, 0xe8,
- 0x37, 0x03, 0x85, 0xdd, 0x8b, 0x46, 0xe0, 0x29, 0xf4, 0xe1, 0x5c, 0xc4,
- 0x09, 0x42, 0xdb, 0xbf, 0x7c, 0x48, 0x4a, 0x98, 0x27, 0xe4, 0x8f, 0xb5,
- 0x0f, 0x0a, 0x60, 0x36, 0xfe, 0x29, 0x46, 0xd2, 0x32, 0xb4, 0x2b, 0xb9,
- 0xe0, 0xc8, 0xde, 0xb9, 0x28, 0xc2, 0xdb, 0xeb, 0xd6, 0x28, 0xde, 0x1c,
- 0xc9, 0xb7, 0x18, 0xa9, 0x01, 0x89, 0x85, 0x7d, 0xfe, 0x63, 0x67, 0xdf,
- 0x02, 0x96, 0x6c, 0xe6, 0x04, 0x8e, 0xa9, 0xb9, 0xc1, 0x43, 0x05, 0xa1,
- 0xc8, 0x3f, 0x8d, 0x10, 0x63, 0x5e, 0xb1, 0x9b, 0x11, 0x8c, 0xe6, 0x28,
- 0xb4, 0xed, 0x1c, 0xf5, 0x53, 0x35, 0xb1, 0x68, 0x4f, 0x46, 0x9c, 0x07,
- 0xf8, 0xd0, 0x66, 0xca, 0x23, 0x18, 0xab, 0x75, 0xcc, 0x4d, 0x6f, 0x8d,
- 0x92, 0x44, 0x97, 0xeb, 0xa3, 0x37, 0xa9, 0xbe, 0x90, 0x6c, 0x8d, 0xcd,
- 0x75, 0xed, 0x25, 0x61, 0xb3, 0x8a, 0xfd, 0x94, 0x31, 0xce, 0xf1, 0xe6,
- 0x9e, 0x7d, 0xfe, 0xec, 0xe9, 0xf6, 0xb6, 0x2b, 0x28, 0xc9, 0x90, 0x89,
- 0x31, 0xa9, 0x39, 0xf3, 0x9c, 0x24, 0x17, 0x07, 0x1f, 0xcc, 0x14, 0xdf,
- 0x40, 0x30, 0x58, 0x2f, 0x4c, 0xbc, 0x39, 0xba, 0xc7, 0xf4, 0x3d, 0x5a,
- 0x44, 0x32, 0xc1, 0x21, 0xd0, 0xad, 0x21, 0x4c, 0x97, 0x4d, 0xc6, 0x0f,
- 0x58, 0x37, 0xfc, 0x4a, 0xa9, 0x80, 0xb8, 0x91, 0xf3, 0x43, 0x71, 0x39,
- 0x6c, 0xd8, 0x49, 0x7a, 0xd3, 0x86, 0x08, 0xc0, 0x73, 0xbe, 0xf6, 0xf0,
- 0x07, 0x58, 0x98, 0x6e, 0xb4, 0x18, 0xda, 0xf9, 0x72, 0x3c, 0x33, 0x77,
- 0xd0, 0x88, 0x0a, 0x7b, 0x7e, 0x4a, 0x4e, 0x73, 0x29, 0xf7, 0xc7, 0x3a,
- 0xb8, 0xc4, 0xbb, 0x57, 0xdd, 0x39, 0x18, 0x77, 0x7b, 0xa3, 0x89, 0x07,
- 0xd1, 0x4b, 0x74, 0x62, 0xad, 0x2d, 0xe9, 0x2d, 0xf8, 0x43, 0x54, 0x42,
- 0x74, 0xb0, 0x6a, 0x60, 0x9f, 0xb2, 0xda, 0x33, 0xe3, 0x06, 0x77, 0xa4,
- 0x20, 0x22, 0xd9, 0x9a, 0x1c, 0xd1, 0xc9, 0x4b, 0x56, 0x05, 0xa3, 0x55,
- 0xbd, 0xb8, 0xf0, 0x8c, 0xa4, 0xf7, 0xf9, 0x4a, 0x23, 0xd4, 0x6f, 0xb8,
- 0x6c, 0xd3, 0x2b, 0x4a, 0x46, 0x62, 0x04, 0xdd, 0x2c, 0x43, 0x69, 0x5b,
- 0x12, 0x64, 0x01, 0xfc, 0x99, 0xc1, 0x89, 0x99, 0x18, 0xf7, 0xe2, 0xa4,
- 0x10, 0xe7, 0x2b, 0x80, 0x51, 0x29, 0xd2, 0xe7, 0xd9, 0x5d, 0xc3, 0x69,
- 0xdb, 0xec, 0x05, 0x36, 0x8b, 0xfc, 0x29, 0x38, 0xbc, 0x82, 0x87, 0xa4,
- 0x4a, 0x6f, 0xce, 0x3f, 0xaf, 0x09, 0x84, 0x75, 0xeb, 0x4b, 0x81, 0x8f,
- 0x25, 0x52, 0x6d, 0x6d, 0x66, 0x26, 0x83, 0x8c, 0xd7, 0x1e, 0xf7, 0xa8,
- 0x87, 0x74, 0x29, 0xe5, 0x9c, 0x03, 0x74, 0x46, 0xd5, 0xfb, 0xa9, 0x38,
- 0xec, 0xb8, 0x6d, 0xc9, 0x25, 0x4a, 0x63, 0xa5, 0xc8, 0xd5, 0x29, 0xfe,
- 0x95, 0xc2, 0x70, 0x7a, 0x89, 0xd4, 0xba, 0x84, 0x79, 0xaf, 0xf0, 0x4f,
- 0xdb, 0xa6, 0x34, 0x19, 0xc9, 0x21, 0xe4, 0x88, 0x36, 0x2a, 0x0d, 0xd2,
- 0xaa, 0x99, 0x26, 0x07, 0xbd, 0xa8, 0xe6, 0x69, 0x27, 0x80, 0x68, 0xed,
- 0x60, 0x87, 0xb6, 0xec, 0x33, 0xfd, 0x84, 0x23, 0xee, 0x20, 0x00, 0x6e,
- 0x93, 0x37, 0xcb, 0x50, 0x3a, 0x8e, 0xd5, 0x2d, 0x8a, 0x9c, 0x4b, 0xdc,
- 0xa7, 0xb4, 0x18, 0x2e, 0x31, 0x12, 0xf6, 0x18, 0x61, 0x95, 0x1a, 0x30,
- 0x01, 0xea, 0x61, 0xa6, 0x54, 0xb2, 0x59, 0x79, 0x17, 0x60, 0x78, 0xc9,
- 0x14, 0xb0, 0xbd, 0x6b, 0x27, 0x33, 0x50, 0x7d, 0xf8, 0xff, 0xd4, 0x5f,
- 0x7e, 0xa0, 0x99, 0xfa, 0x2f, 0x9d, 0x29, 0x0d, 0xed, 0xa7, 0x41, 0xe2,
- 0x1f, 0x8c, 0xe0, 0xe4, 0x8f, 0x98, 0x95, 0xbf, 0x12, 0x24, 0x85, 0xa7,
- 0xc6, 0x74, 0x79, 0x8e, 0x06, 0xff, 0x38, 0xb4, 0x0a, 0xaf, 0x34, 0x92,
- 0x52, 0x1e, 0x13, 0xb4, 0xf2, 0xf1, 0x7d, 0xe0, 0x3b, 0xa2, 0x6d, 0xf8,
- 0x53, 0xd1, 0x07, 0xab, 0x9e, 0xb1, 0xbd, 0x28, 0xef, 0x98, 0xeb, 0x42,
- 0xf1, 0x2a, 0xfe, 0x54, 0x49, 0x16, 0xbd, 0x31, 0x3a, 0x4c, 0xcf, 0xc9,
- 0x22, 0xe3, 0x9f, 0x87, 0x16, 0x00, 0xa1, 0x65, 0x0e, 0xb0, 0x1a, 0x7f,
- 0x1c, 0xd4, 0xf7, 0xf3, 0x71, 0x39, 0x93, 0xbd, 0x4e, 0xe3, 0x35, 0x7d,
- 0xd6, 0x9f, 0xf1, 0xc2, 0x20, 0xb2, 0x31, 0xf0, 0xb2, 0x60, 0xfb, 0x51,
- 0xe6, 0x5f, 0x36, 0x52, 0xca, 0xc9, 0x04, 0x19, 0x29, 0x80, 0x71, 0x53,
- 0xa9, 0xec, 0x3f, 0x26, 0x0c, 0xc7, 0x61, 0x75, 0x68, 0x09, 0xaf, 0xd5,
- 0x9d, 0x73, 0xd5, 0xae, 0xcc, 0x02, 0x79, 0x60, 0xf3, 0xb8, 0xba, 0xf1,
- 0xb1, 0x0c, 0x62, 0x3a, 0xa4, 0xa6, 0xa3, 0x1f, 0x90, 0x76, 0xc2, 0xaf,
- 0x1e, 0xf1, 0x8f, 0x06, 0x97, 0xf4, 0x23, 0xc1, 0x1c, 0x68, 0xbe, 0x1a,
- 0xf9, 0x33, 0x34, 0xa3, 0x8c, 0x6a, 0x9b, 0x5d, 0xc5, 0xa5, 0x54, 0x1b,
- 0xcc, 0x84, 0x02, 0x91, 0x45, 0x78, 0x5f, 0xe9, 0x51, 0xfa, 0xc0, 0x69,
- 0xfb, 0xc6, 0xe4, 0x5f, 0xdf, 0x1a, 0x2c, 0x54, 0x82, 0x2c, 0xcc, 0x91,
- 0x02, 0x68, 0x01, 0x71, 0x7e, 0x82, 0x2f, 0xb3, 0x4e, 0x70, 0xf4, 0x69,
- 0xf8, 0x50, 0x73, 0x8c, 0xea, 0x81, 0x33, 0x44, 0xa0, 0x12, 0xe4, 0x7c,
- 0xf2, 0x18, 0x88, 0x9b, 0x72, 0x36, 0x65, 0x7c, 0x06, 0xb5, 0xfb, 0xc0,
- 0x58, 0x4b, 0x46, 0xe2, 0x7a, 0xd2, 0x22, 0x12, 0x0f, 0x14, 0x1c, 0x14,
- 0x85, 0x0e, 0xd7, 0x37, 0xe7, 0xe2, 0x8a, 0xe2, 0xdd, 0x3f, 0x41, 0xc9,
- 0xb7, 0x92, 0xf1, 0x5a, 0xe8, 0x27, 0x12, 0x10, 0xe6, 0xe4, 0xd3, 0x8c,
- 0xc4, 0x8e, 0x92, 0x98, 0x88, 0x45, 0xd8, 0xe9, 0x3f, 0xfa, 0xae, 0x3b,
- 0xec, 0xf9, 0x19, 0x78, 0x61, 0x49, 0xad, 0xc8, 0xbb, 0xbe, 0xb9, 0xd5,
- 0x45, 0x89, 0xaf, 0x9a, 0xc5, 0x07, 0xaa, 0xa8, 0x7a, 0xff, 0x81, 0x70,
- 0x7d, 0x58, 0x33, 0xf5, 0xb9, 0xe3, 0x07, 0x98, 0x5a, 0xce, 0x91, 0x5b,
- 0x2e, 0xa8, 0x1d, 0x6c, 0xf1, 0x59, 0xc9, 0xe6, 0xcc, 0x43, 0xc3, 0x90,
- 0x88, 0x9e, 0x40, 0xc0, 0xfc, 0x5c, 0xec, 0xad, 0x76, 0x95, 0x8d, 0xa7,
- 0x41, 0xc7, 0x28, 0x62, 0xff, 0x01, 0xa1, 0x3e, 0xbb, 0x99, 0xcc, 0x65,
- 0x93, 0x55, 0xf9, 0xc4, 0x2f, 0x39, 0x85, 0x07, 0xb0, 0x9f, 0x98, 0x79,
- 0x89, 0x62, 0x7f, 0x51, 0x92, 0xb9, 0xce, 0xff, 0xe0, 0x1d, 0xe5, 0x02,
- 0x5b, 0xe4, 0xf4, 0x53, 0x78, 0x18, 0x02, 0xed, 0xa6, 0x9b, 0x28, 0xeb,
- 0xeb, 0x05, 0x6b, 0x4f, 0x1e, 0x18, 0x27, 0x58, 0x2c, 0xf7, 0x13, 0x01,
- 0xa2, 0xe7, 0x69, 0x6d, 0x7b, 0xc8, 0x43, 0xb0, 0x35, 0x57, 0xa1, 0x1b,
- 0xde, 0x04, 0x44, 0x81, 0x49, 0x24, 0xa6, 0xc2, 0x91, 0x98, 0xab, 0x72,
- 0xb8, 0x62, 0x66, 0x18, 0x6a, 0xd9, 0x9d, 0x99, 0xf6, 0x84, 0xc8, 0x8c,
- 0x60, 0xef, 0x61, 0x77, 0x47, 0x30, 0x82, 0x49, 0x17, 0xff, 0xae, 0x0c,
- 0x23, 0xc9, 0x96, 0x5c, 0xb0, 0x42, 0x43, 0xb2, 0x6d, 0x0f, 0x0d, 0xbb,
- 0x47, 0x85, 0x94, 0xe4, 0xa1, 0xe6, 0x20, 0x88, 0x3a, 0x0b, 0xbe, 0xbf,
- 0x6a, 0xc1, 0x55, 0xa7, 0x15, 0xe9, 0x41, 0x3f, 0x4b, 0xac, 0xa2, 0x2b,
- 0xc0, 0x28, 0x0c, 0xcc, 0xca, 0xa0, 0xd9, 0x7d, 0x12, 0x25, 0x32, 0xed,
- 0xfc, 0xcf, 0xff, 0xfc, 0xb3, 0x58, 0xb5, 0x6c, 0x20, 0x2f, 0x3f, 0xe4,
- 0x0b, 0x5f, 0x78, 0x9d, 0x9c, 0x7b, 0xc5, 0x9b, 0x49, 0xe6, 0xf3, 0x1c,
- 0x02, 0xa3, 0x49, 0x87, 0x42, 0xc5, 0x2d, 0x1d, 0xf3, 0x87, 0xa6, 0x61,
- 0x82, 0x64, 0x46, 0x36, 0x9c, 0x3d, 0xae, 0xb3, 0x81, 0xaa, 0x48, 0x62,
- 0x46, 0x9f, 0x9c, 0xdf, 0x3e, 0x8d, 0x80, 0x54, 0x92, 0x88, 0x57, 0xa9,
- 0x55, 0x70, 0xfc, 0xc5, 0xca, 0x21, 0xc1, 0x0e, 0xb1, 0x43, 0x92, 0xce,
- 0xfb, 0x84, 0xc6, 0xde, 0x20, 0xda, 0xfd, 0x5c, 0xdf, 0x07, 0x6f, 0x10,
- 0x0f, 0xf6, 0xc4, 0x7c, 0xe9, 0x83, 0x23, 0xc3, 0x4c, 0xde, 0xd9, 0x0f,
- 0x1b, 0xad, 0xc0, 0xb1, 0x64, 0xa2, 0x50, 0x67, 0xae, 0xd5, 0xfb, 0x26,
- 0xa8, 0x14, 0x19, 0xd5, 0x67, 0x93, 0x88, 0x7a, 0xdb, 0xd9, 0x5f, 0x4f,
- 0xa2, 0x7d, 0xd0, 0xa2, 0x5f, 0xb5, 0xed, 0x03, 0x96, 0xd5, 0xfb, 0xb1,
- 0x6c, 0x31, 0xba, 0x07, 0xaf, 0x4a, 0x29, 0xc6, 0xf7, 0x18, 0x81, 0xb2,
- 0x6a, 0x9f, 0x87, 0xfd, 0xc0, 0x59, 0xfa, 0x50, 0xd7, 0x33, 0xda, 0xec,
- 0xf9, 0xd5, 0xbd, 0xe9, 0x54, 0xbd, 0x32, 0x5b, 0xd9, 0xbf, 0x4b, 0xf9,
- 0x39, 0x5d, 0x2e, 0xcf, 0xb2, 0xdc, 0xac, 0xe1, 0xfc, 0x5b, 0x64, 0x54,
- 0xef, 0x98, 0x79, 0x18, 0x1f, 0x98, 0x31, 0xd0, 0x34, 0xe2, 0xf3, 0x2e,
- 0x22, 0x26, 0x22, 0xc3, 0x6a, 0x0e, 0x43, 0xaa, 0x80, 0x29, 0x26, 0xd3,
- 0x03, 0x83, 0x6f, 0xb5, 0x44, 0x8d, 0xb8, 0x30, 0x70, 0x7b, 0x42, 0x28,
- 0x55, 0x2b, 0x98, 0x10, 0x9d, 0xfd, 0x0f, 0x90, 0x2a, 0x1c, 0xb8, 0xd5,
- 0x2a, 0x97, 0xb6, 0x96, 0x6b, 0x2a, 0xdb, 0x43, 0x83, 0xaf, 0x83, 0x53,
- 0xba, 0x16, 0x67, 0x11, 0x9e, 0xc9, 0x24, 0x44, 0x2e, 0x48, 0x61, 0x01,
- 0x40, 0x58, 0xdd, 0x5a, 0x6f, 0x11, 0xb8, 0x05, 0xec, 0x4d, 0xa8, 0xcb,
- 0x88, 0x5f, 0xac, 0xf4, 0x45, 0x3a, 0x42, 0xa5, 0x66, 0x5b, 0x30, 0x3b,
- 0xaa, 0xb3, 0x49, 0xcd, 0x3a, 0xe2, 0x42, 0x82, 0x7c, 0x48, 0x27, 0x44,
- 0xc0, 0x2d, 0x10, 0xb9, 0xf4, 0xa1, 0x6d, 0x23, 0x24, 0x5c, 0x5c, 0x99,
- 0x02, 0xd6, 0xce, 0x35, 0xa8, 0x22, 0xca, 0xce, 0x56, 0x32, 0xf7, 0x4b,
- 0x64, 0xe6, 0xe8, 0x5e, 0xb5, 0x42, 0xeb, 0xd2, 0xc7, 0xab, 0x7b, 0x35,
- 0xc0, 0xff, 0xf1, 0x03, 0x1e, 0x95, 0x52, 0x65, 0xd5, 0x91, 0x43, 0x0f,
- 0xdd, 0x91, 0x51, 0xd1, 0x20, 0x63, 0x50, 0x29, 0xe5, 0x8f, 0xe1, 0x9f,
- 0x2c, 0xa4, 0x04, 0x39, 0xe8, 0x1f, 0x39, 0x5a, 0x42, 0xf9, 0xf1, 0x56,
- 0xed, 0x08, 0xeb, 0x28, 0xd1, 0x68, 0xea, 0xe2, 0x16, 0xdb, 0x49, 0x8c,
- 0xbb, 0xa3, 0xab, 0xd1, 0x99, 0x1d, 0xec, 0x5f, 0x5a, 0x88, 0xdb, 0x3e,
- 0x78, 0x36, 0x88, 0xfc, 0xe4, 0x83, 0x25, 0x4e, 0xe6, 0x08, 0x07, 0xaa,
- 0x85, 0xba, 0xf2, 0xde, 0x4c, 0x63, 0xc3, 0xe7, 0x97, 0xc4, 0x96, 0x3e,
- 0x1d, 0x71, 0x66, 0xa1, 0x35, 0x89, 0x97, 0x26, 0xeb, 0x5a, 0xd3, 0x14,
- 0x2b, 0xdb, 0x14, 0x62, 0x8e, 0x0f, 0x9c, 0x34, 0x62, 0x23, 0x8b, 0x7e,
- 0xd1, 0x72, 0x9e, 0x3d, 0xaa, 0xff, 0x30, 0x9d, 0x55, 0x63, 0x59, 0xff,
- 0x45, 0x5f, 0x44, 0xc4, 0x3f, 0xad, 0xd0, 0xe9, 0xc7, 0x7d, 0x7a, 0x25,
- 0x3c, 0x1d, 0x9c, 0xd1, 0x6e, 0x1d, 0xa8, 0xad, 0x94, 0x22, 0xee, 0xd7,
- 0x1e, 0xab, 0x35, 0x33, 0x8d, 0x3b, 0xdb, 0xc6, 0xc8, 0xce, 0x7a, 0x59,
- 0x71, 0x2d, 0xd7, 0x87, 0xd5, 0x3d, 0xf5, 0xe0, 0xd8, 0xf6, 0x88, 0xae,
- 0xa8, 0x4d, 0xb7, 0xbd, 0xa2, 0x57, 0x76, 0x88, 0x7e, 0xaf, 0xe4, 0x87,
- 0xdd, 0x3e, 0xb9, 0x4e, 0xfd, 0xc2, 0x5e, 0x71, 0x7b, 0x8f, 0xe9, 0xd3,
- 0x2f, 0xbf, 0xd7, 0x3a, 0x17, 0x5b, 0xf7, 0x2a, 0x6b, 0xdd, 0x55, 0x8f,
- 0x11, 0xf6, 0x0f, 0x5c, 0x65, 0xad, 0xdb, 0xea, 0xe1, 0x33, 0xbb, 0xea,
- 0x2a, 0xdb, 0x8b, 0x89, 0x10, 0x92, 0x0f, 0x1f, 0xd2, 0xc5, 0x42, 0xc4,
- 0xce, 0x23, 0xc6, 0xce, 0x84, 0x30, 0xd8, 0xee, 0x42, 0xcf, 0xce, 0x35,
- 0xc8, 0xcd, 0x5e, 0x2d, 0x3f, 0xb2, 0x87, 0x8b, 0xb1, 0x8c, 0x69, 0xf5,
- 0x40, 0x73, 0x5c, 0x42, 0x59, 0x66, 0x70, 0x67, 0x34, 0xfa, 0x76, 0x27,
- 0x6b, 0x26, 0x56, 0x02, 0xee, 0x38, 0xc8, 0x94, 0x94, 0x2a, 0x7d, 0x50,
- 0xa1, 0x81, 0x0c, 0x46, 0x85, 0x0c, 0x9a, 0x07, 0xeb, 0x62, 0x7c, 0xec,
- 0x34, 0xb4, 0x2d, 0x94, 0xdf, 0x65, 0xa0, 0x44, 0xa7, 0x67, 0x3f, 0x23,
- 0xa3, 0x72, 0x37, 0x20, 0xba, 0x4e, 0xb7, 0xfc, 0xfa, 0xe6, 0xc4, 0xb6,
- 0x69, 0x8f, 0x31, 0x3a, 0x22, 0x32, 0xbb, 0x09, 0x2d, 0xb1, 0x5c, 0xfc,
- 0x1f, 0x5a, 0x58, 0xd8, 0xfd, 0x1c, 0x38, 0x03, 0xba, 0xe4, 0xe1, 0x2e,
- 0x2f, 0xc8, 0xc6, 0x65, 0x33, 0xf6, 0xe1, 0x3e, 0x73, 0x97, 0xb9, 0x48,
- 0x5b, 0xb7, 0xc3, 0xe2, 0x6c, 0xe5, 0x12, 0x2b, 0x8f, 0xed, 0xb3, 0x4b,
- 0x61, 0xd2, 0x4e, 0xa0, 0xcf, 0x70, 0x19, 0xda, 0x72, 0xe4, 0xe3, 0xec,
- 0x3a, 0x2f, 0x1e, 0xe5, 0xfb, 0x51, 0x7c, 0x43, 0x3a, 0xe3, 0x1a, 0x8f,
- 0xb6, 0x51, 0xc9, 0xe2, 0xe2, 0x10, 0x06, 0x65, 0xee, 0x3f, 0x28, 0x26,
- 0x52, 0xa1, 0xf3, 0x23, 0x51, 0xe1, 0x39, 0x44, 0x27, 0xea, 0xb1, 0x20,
- 0x10, 0x44, 0x3e, 0x59, 0x52, 0x0a, 0x73, 0xa4, 0xe0, 0x5b, 0xe0, 0xe5,
- 0x30, 0x4a, 0x00, 0xa7, 0x2e, 0xdc, 0x52, 0x4c, 0x73, 0xc5, 0x5a, 0x58,
- 0x5d, 0x6f, 0xc5, 0x64, 0x53, 0x35, 0x70, 0xec, 0x0d, 0x29, 0xac, 0xae,
- 0xcf, 0x3f, 0x28, 0xa6, 0x8c, 0x88, 0x5b, 0xd4, 0x5e, 0x3a, 0x2c, 0xb6,
- 0x09, 0x6f, 0xd4, 0xbe, 0x9e, 0x8f, 0x7e, 0xf2, 0xe8, 0xad, 0xc0, 0xb4,
- 0x5e, 0x32, 0xb5, 0xc2, 0x4d, 0xa6, 0x48, 0x59, 0x0a, 0x54, 0xf2, 0x2f,
- 0xd3, 0x89, 0x65, 0xbc, 0x7e, 0xa8, 0x77, 0x29, 0x17, 0x7a, 0xe8, 0xcc,
- 0x82, 0xcb, 0xed, 0xb6, 0xb7, 0x0c, 0xa0, 0x25, 0x8f, 0x12, 0xf1, 0xb9,
- 0xd0, 0xc2, 0x68, 0x4a, 0x54, 0xe2, 0xcf, 0x16, 0xc5, 0xaf, 0x44, 0x46,
- 0x3d, 0x42, 0x2b, 0x8d, 0x1a, 0x69, 0xe8, 0x2a, 0x7a, 0xfe, 0xf8, 0xe3,
- 0xf3, 0xbb, 0x1c, 0x79, 0x46, 0xf8, 0x90, 0xa2, 0x12, 0x3d, 0x3a, 0x8f,
- 0x36, 0x90, 0x2b, 0xac, 0x00, 0x83, 0x19, 0x1c, 0x50, 0xa8, 0x23, 0x22,
- 0xd8, 0xcf, 0x1e, 0x96, 0xaf, 0x8f, 0x68, 0x06, 0x9c, 0x5c, 0xce, 0xe2,
- 0x40, 0x20, 0xc7, 0x44, 0xe2, 0xa9, 0xcc, 0xb0, 0x46, 0x45, 0xa6, 0xd3,
- 0xd3, 0x64, 0x8f, 0xba, 0x69, 0xe8, 0xfa, 0x8f, 0x9f, 0x19, 0xd6, 0xd8,
- 0xdc, 0x0c, 0xe3, 0x9f, 0xe1, 0xd1, 0xd1, 0x24, 0x56, 0x86, 0x3d, 0x01,
- 0xa1, 0xf8, 0x98, 0x6d, 0x44, 0xde, 0xb0, 0xc8, 0x69, 0x05, 0x3f, 0xaa,
- 0xaa, 0xea, 0xce, 0x10, 0x70, 0x6e, 0x46, 0x4a, 0x79, 0x02, 0x15, 0x20,
- 0x19, 0xfc, 0xea, 0x97, 0x86, 0x69, 0x42, 0x5a, 0xc6, 0xe0, 0x21, 0x5f,
- 0x2c, 0xdc, 0xd6, 0xe4, 0xb7, 0x06, 0x04, 0xef, 0x16, 0xe3, 0x9a, 0x4d,
- 0x6d, 0x50, 0x4a, 0x0c, 0x55, 0x25, 0xf4, 0x3c, 0x58, 0xdf, 0x9c, 0xf2,
- 0x00, 0xff, 0x8e, 0x24, 0x70, 0x9f, 0x52, 0x73, 0x0a, 0x62, 0xf0, 0xea,
- 0x3a, 0xc5, 0x3d, 0xa4, 0x85, 0xda, 0x4b, 0xa1, 0x0a, 0x6c, 0x97, 0x94,
- 0xe2, 0x7a, 0x11, 0x0e, 0x50, 0x6b, 0xf6, 0x7f, 0x19, 0xe4, 0xed, 0x90,
- 0xae, 0x87, 0xa8, 0x23, 0xfb, 0xe3, 0x8d, 0xa5, 0x95, 0x4a, 0x0a, 0x5e,
- 0x61, 0xa4, 0x42, 0xc3, 0x0e, 0x68, 0x4e, 0x97, 0x34, 0x7d, 0xc9, 0xc7,
- 0xcb, 0x86, 0x02, 0x8d, 0x8e, 0x23, 0x2c, 0x02, 0x4a, 0x97, 0x2c, 0x20,
- 0x7c, 0xcd, 0xa6, 0x33, 0x7e, 0x9a, 0x5e, 0x0f, 0xcb, 0x2a, 0xa7, 0x1b,
- 0x07, 0x38, 0x38, 0x6d, 0x8c, 0x76, 0x7e, 0x1f, 0x12, 0x85, 0x6c, 0x8a,
- 0x58, 0x73, 0x1a, 0x7a, 0x61, 0x82, 0xb2, 0x24, 0x6c, 0x7a, 0x8e, 0xfd,
- 0x4a, 0xbf, 0xb3, 0xad, 0x6a, 0xfd, 0xb0, 0x58, 0x84, 0x92, 0x13, 0x6a,
- 0x5c, 0x35, 0x25, 0x45, 0x0c, 0xd8, 0xd1, 0xba, 0x81, 0x52, 0x64, 0xcc,
- 0x6c, 0xbc, 0x0a, 0xc9, 0xa1, 0xa1, 0x87, 0x22, 0xaf, 0xeb, 0x25, 0x16,
- 0xec, 0xcd, 0xc9, 0xe9, 0xb1, 0x05, 0x05, 0xfd, 0xef, 0x9d, 0x21, 0x4d,
- 0x79, 0x35, 0x09, 0x20, 0x50, 0x9c, 0x94, 0xe5, 0x65, 0xd8, 0x49, 0xd6,
- 0xd6, 0x77, 0x7d, 0x2e, 0x3d, 0x83, 0x1f, 0xb7, 0x52, 0xb6, 0x8e, 0xdf,
- 0x7d, 0x7f, 0x72, 0x71, 0xf6, 0xee, 0xed, 0xf1, 0x3b, 0xeb, 0xed, 0xa5,
- 0x43, 0x11, 0xe3, 0x8f, 0xad, 0xc3, 0x90, 0x6f, 0x4e, 0xf1, 0x02, 0x22,
- 0x31, 0x44, 0xcd, 0x2c, 0xa2, 0xda, 0x58, 0x2c, 0xe4, 0x5f, 0x43, 0xbf,
- 0x39, 0xef, 0x21, 0xf5, 0xf8, 0x52, 0x20, 0x7e, 0x41, 0xe6, 0xfe, 0x94,
- 0x02, 0x6f, 0x43, 0xf6, 0x11, 0xdb, 0xe2, 0x5d, 0x44, 0x61, 0xfb, 0x69,
- 0x92, 0x49, 0xe9, 0x52, 0x2a, 0xd4, 0xb4, 0x61, 0xa7, 0x84, 0xc3, 0x44,
- 0x2e, 0x98, 0xd6, 0xea, 0x84, 0xdb, 0xdc, 0xef, 0x6b, 0xc1, 0x6a, 0x25,
- 0xd1, 0xd1, 0x30, 0x00, 0xdc, 0xaf, 0xec, 0x78, 0x93, 0xd6, 0xce, 0x3d,
- 0x2f, 0xfc, 0xd5, 0xee, 0x06, 0x74, 0x09, 0xb7, 0x7e, 0x9d, 0xb1, 0x6e,
- 0xdc, 0xcf, 0x1b, 0xc5, 0x5f, 0xd4, 0x87, 0x70, 0xb0, 0xb3, 0xf3, 0x33,
- 0x0a, 0xdc, 0x7d, 0x29, 0x15, 0xee, 0x42, 0x42, 0xb4, 0xda, 0xeb, 0x86,
- 0xcb, 0xb8, 0xd0, 0x14, 0x1e, 0xda, 0xb7, 0x76, 0x3a, 0xe1, 0x1c, 0xfc,
- 0x70, 0x7e, 0x71, 0xf6, 0xe3, 0x9f, 0x7f, 0xe3, 0x4f, 0x78, 0x58, 0x9d,
- 0xbf, 0x10, 0x84, 0x4d, 0x1b, 0xff, 0xf9, 0x37, 0xff, 0x5a, 0xbb, 0xf9,
- 0xbe, 0x57, 0x86, 0x35, 0x5a, 0x83, 0x97, 0x19, 0xc8, 0xf3, 0x5a, 0xe3,
- 0x15, 0xf2, 0x03, 0x67, 0xfb, 0x5a, 0x18, 0x0d, 0x2e, 0xb9, 0xba, 0xbd,
- 0x41, 0xbb, 0x6e, 0x3a, 0xb0, 0x3d, 0x20, 0x3d, 0xcf, 0x01, 0x20, 0xfb,
- 0x92, 0xa7, 0x49, 0x89, 0x98, 0x7d, 0x24, 0xf8, 0x01, 0xce, 0x67, 0xe7,
- 0xe3, 0xf0, 0xf4, 0xf4, 0x37, 0x9d, 0x04, 0x14, 0x09, 0x73, 0x63, 0x19,
- 0x58, 0x1d, 0x55, 0x59, 0xe1, 0xd7, 0xf3, 0xd2, 0xbd, 0x3b, 0x93, 0xde,
- 0xbc, 0x84, 0x7a, 0x3c, 0xa8, 0x33, 0xa3, 0xd4, 0x52, 0x5d, 0xe6, 0x64,
- 0x46, 0x88, 0x18, 0x63, 0x6d, 0x53, 0xc7, 0x82, 0x6a, 0x60, 0xf8, 0x25,
- 0xbc, 0xe2, 0xb6, 0x38, 0xa2, 0xe8, 0xc9, 0x9c, 0x4d, 0x04, 0xb8, 0x77,
- 0x69, 0x29, 0x3e, 0xb8, 0x50, 0xa1, 0xd6, 0xb5, 0x0f, 0x2b, 0xa1, 0xe1,
- 0x52, 0xa0, 0x6b, 0xb6, 0xca, 0xeb, 0x8f, 0x80, 0xc2, 0xd3, 0xc1, 0x84,
- 0xb2, 0xab, 0xb9, 0xb0, 0xa4, 0xeb, 0xa2, 0x2b, 0xab, 0x2b, 0x72, 0x3e,
- 0x21, 0x06, 0x2d, 0x5c, 0x2a, 0xd1, 0x53, 0xaa, 0x45, 0x88, 0x74, 0x73,
- 0xd0, 0xe4, 0x20, 0x99, 0xbc, 0x23, 0x28, 0xaf, 0xbc, 0x1c, 0x1a, 0x3a,
- 0xa0, 0xf6, 0x84, 0x7a, 0x39, 0x59, 0x0c, 0x8f, 0xd1, 0xc9, 0x7b, 0xc5,
- 0x4a, 0x25, 0x32, 0xcc, 0x83, 0x44, 0x79, 0xc9, 0x75, 0x91, 0xab, 0x6d,
- 0xf0, 0x29, 0xd1, 0x54, 0x77, 0x9e, 0x10, 0x3f, 0x1f, 0x46, 0x7f, 0xf3,
- 0x98, 0xe6, 0x48, 0x05, 0x87, 0xcf, 0x81, 0x90, 0x06, 0x72, 0xf9, 0x98,
- 0x3f, 0x08, 0x81, 0xd8, 0xc8, 0xde, 0x04, 0x4c, 0x34, 0xe7, 0x94, 0xf0,
- 0xbe, 0xe8, 0xec, 0x01, 0x14, 0x22, 0x1c, 0x41, 0xa4, 0xc7, 0x2b, 0xbb,
- 0x1c, 0x89, 0xce, 0x99, 0xc7, 0xc8, 0x09, 0xca, 0xe4, 0x07, 0xad, 0xf6,
- 0x5c, 0x7f, 0xd1, 0x5b, 0xed, 0x2b, 0x6b, 0x4d, 0xd8, 0x28, 0xb1, 0x20,
- 0x88, 0x59, 0x6f, 0xde, 0xa1, 0xe6, 0xbf, 0x97, 0x67, 0x47, 0x67, 0xa7,
- 0xe6, 0x2f, 0xc7, 0x6f, 0x4e, 0x7e, 0x74, 0x97, 0x18, 0x6f, 0x80, 0x16,
- 0x1c, 0xde, 0x55, 0xad, 0xb4, 0xa7, 0x86, 0x81, 0x4c, 0x31, 0xe6, 0x8b,
- 0x0e, 0x73, 0x9b, 0x77, 0x2c, 0xa5, 0xf6, 0x64, 0xab, 0x8e, 0xa4, 0x90,
- 0x6f, 0x90, 0xd2, 0xc7, 0x2d, 0x5b, 0xe8, 0xb4, 0xdb, 0x99, 0x94, 0x11,
- 0xe1, 0x9f, 0x4a, 0xc1, 0x9e, 0xf9, 0x64, 0x1b, 0x89, 0xbf, 0x0f, 0xa5,
- 0x73, 0x65, 0x65, 0xab, 0x1a, 0x35, 0x7e, 0xcd, 0xbc, 0x0e, 0x17, 0xb3,
- 0xc7, 0xd1, 0x67, 0x14, 0x32, 0x7f, 0x90, 0xaa, 0x9b, 0x19, 0x7d, 0x3f,
- 0xc3, 0x21, 0x46, 0xee, 0x3f, 0xdd, 0x5b, 0x7e, 0x96, 0x77, 0x07, 0x68,
- 0x08, 0x3c, 0xbe, 0x6d, 0xb1, 0x3d, 0x26, 0x99, 0x00, 0x01, 0x04, 0x21,
- 0x78, 0x8e, 0xe2, 0xdf, 0x07, 0xad, 0x6b, 0xca, 0xcc, 0x54, 0x34, 0x39,
- 0x88, 0x93, 0x12, 0xe8, 0x0f, 0x10, 0x44, 0xc3, 0x11, 0x2b, 0x62, 0xc0,
- 0x2f, 0x4f, 0xce, 0x22, 0x4c, 0x3c, 0xe8, 0xfc, 0xc1, 0x90, 0xf1, 0xb7,
- 0x15, 0xbd, 0xa5, 0x8f, 0xd6, 0x6b, 0xbe, 0xaa, 0xc3, 0xb7, 0x9f, 0x0d,
- 0xd0, 0x95, 0x5c, 0xa7, 0x72, 0x5d, 0x13, 0xa4, 0xba, 0xfc, 0x6d, 0x99,
- 0xdf, 0xa6, 0xc8, 0x21, 0xa1, 0xca, 0xaa, 0x52, 0xdc, 0xb2, 0xd3, 0x46,
- 0xfa, 0xab, 0x1a, 0x49, 0xdb, 0xad, 0x3c, 0xfb, 0x35, 0x8d, 0x3c, 0xeb,
- 0xb4, 0x71, 0xf3, 0xab, 0x1a, 0xb1, 0x05, 0xae, 0x8d, 0x06, 0xf7, 0xe3,
- 0xc9, 0x65, 0x72, 0x74, 0xf6, 0xda, 0x1d, 0xad, 0x4b, 0x8b, 0xd2, 0x4c,
- 0x93, 0xf1, 0xb2, 0x30, 0xbb, 0x8f, 0xf8, 0xc3, 0x51, 0x14, 0x0b, 0x5a,
- 0x2e, 0xb0, 0x9b, 0x09, 0xf0, 0x04, 0xb5, 0x32, 0x9f, 0xdc, 0x64, 0x39,
- 0x7e, 0x54, 0x31, 0x48, 0xc0, 0xe7, 0xf6, 0x93, 0xc7, 0xe7, 0xc4, 0x72,
- 0x71, 0x6d, 0xc9, 0x54, 0x71, 0x28, 0x89, 0xec, 0x28, 0xad, 0x34, 0x85,
- 0x6c, 0x9c, 0x12, 0x9d, 0x45, 0xc1, 0x89, 0x50, 0x46, 0x87, 0x6f, 0x13,
- 0x4c, 0x6e, 0xf8, 0x89, 0xb2, 0x3e, 0xcf, 0xa4, 0xd1, 0xf4, 0xf2, 0x46,
- 0x7a, 0xd3, 0x02, 0x46, 0xed, 0x29, 0xb0, 0xb7, 0xb5, 0xd1, 0xa5, 0x2c,
- 0x03, 0x6c, 0x33, 0x02, 0x71, 0x4e, 0x35, 0x07, 0x46, 0x0a, 0x91, 0x58,
- 0x75, 0x9b, 0x6b, 0xb6, 0x05, 0x37, 0xa9, 0x6d, 0xc2, 0x7e, 0x67, 0x9f,
- 0xff, 0x78, 0x93, 0xa2, 0xc4, 0xb9, 0x11, 0x1b, 0x02, 0x93, 0xc9, 0xff,
- 0xee, 0xa9, 0x93, 0x4f, 0xac, 0xf6, 0x60, 0x46, 0x3e, 0x43, 0x21, 0xb0,
- 0x29, 0x9f, 0x88, 0xfa, 0xbe, 0x68, 0xd2, 0x4f, 0x30, 0x1f, 0x49, 0xdb,
- 0x17, 0x42, 0x0f, 0xf7, 0xe6, 0x53, 0xd1, 0x21, 0x12, 0x4b, 0x1b, 0x02,
- 0x2c, 0x8a, 0x66, 0x25, 0x79, 0xc8, 0x07, 0x31, 0xb3, 0x4d, 0x0f, 0x34,
- 0x27, 0x12, 0xa1, 0x9a, 0xac, 0xa6, 0xf2, 0x64, 0x1b, 0xd1, 0xa8, 0xb4,
- 0xfd, 0xac, 0x66, 0x57, 0x96, 0x95, 0xa0, 0x28, 0x5c, 0x85, 0x0d, 0xc7,
- 0xf7, 0x40, 0x45, 0xc5, 0x79, 0xd2, 0x06, 0x51, 0x3a, 0x7a, 0xe4, 0xa2,
- 0x22, 0xed, 0x4a, 0x12, 0x97, 0x44, 0x51, 0x9e, 0x96, 0x98, 0xc9, 0x3e,
- 0x60, 0x81, 0x54, 0x2c, 0xd1, 0xfc, 0xe2, 0x9e, 0x4b, 0x7b, 0xa4, 0x05,
- 0xf2, 0x8b, 0xba, 0x30, 0x47, 0x5d, 0x18, 0x49, 0xbf, 0x70, 0x99, 0x0e,
- 0xcf, 0xf8, 0x8f, 0x23, 0x55, 0x38, 0xb4, 0x66, 0xb3, 0x5f, 0xb5, 0x5e,
- 0xb9, 0xf6, 0xe5, 0x06, 0x67, 0x6f, 0xef, 0x04, 0x61, 0x54, 0xae, 0x4d,
- 0x30, 0x0e, 0xa9, 0x1d, 0xeb, 0x8e, 0x7b, 0xee, 0xf9, 0x8a, 0xef, 0x30,
- 0xb7, 0xc7, 0xa5, 0x65, 0x19, 0xe9, 0x3a, 0xc3, 0xa9, 0xfd, 0xb0, 0xb5,
- 0xcf, 0xba, 0x5b, 0x44, 0x7d, 0xd3, 0x44, 0x01, 0x57, 0xfa, 0x21, 0xaa,
- 0xcf, 0xc5, 0x88, 0xce, 0x28, 0x59, 0x49, 0xb4, 0xbe, 0x2a, 0x5b, 0xcc,
- 0x44, 0x7c, 0xca, 0x4f, 0x10, 0x09, 0x83, 0x19, 0x8c, 0x79, 0x9e, 0x68,
- 0x2f, 0x8d, 0x1e, 0xe7, 0xdb, 0x30, 0x2f, 0xe4, 0xb3, 0x44, 0x3b, 0xc1,
- 0x17, 0x31, 0xc1, 0xbb, 0x8b, 0xdc, 0x6e, 0x3d, 0xa9, 0xa3, 0x87, 0x1f,
- 0x11, 0x74, 0x0b, 0xd9, 0xdc, 0xfa, 0x6f, 0x79, 0x23, 0xe0, 0x3c, 0xea,
- 0x78, 0x41, 0x69, 0xb4, 0xcb, 0x8a, 0x93, 0xf5, 0x1c, 0xcf, 0x17, 0x60,
- 0xb1, 0x69, 0xd1, 0xf0, 0x70, 0x09, 0x4e, 0x4b, 0x5c, 0x30, 0xc9, 0xdb,
- 0x10, 0x0f, 0x53, 0x5e, 0x51, 0xc1, 0x27, 0xce, 0xb9, 0x25, 0xd4, 0x15,
- 0xcf, 0xcf, 0x4d, 0x5a, 0x5c, 0x67, 0xac, 0x23, 0xba, 0x46, 0xb1, 0xd7,
- 0xf5, 0x62, 0x34, 0xc7, 0x1e, 0xde, 0x89, 0x95, 0x59, 0xe7, 0x6e, 0x1e,
- 0xf6, 0x76, 0xed, 0x3c, 0xd0, 0xa0, 0x88, 0x39, 0x00, 0x2b, 0x41, 0x35,
- 0x27, 0xc8, 0xe2, 0xbe, 0x4b, 0x21, 0x4e, 0x6c, 0x99, 0x46, 0xa7, 0x6d,
- 0xdb, 0x18, 0x02, 0xe5, 0xa2, 0x84, 0x18, 0x50, 0x64, 0x70, 0x53, 0x58,
- 0x9f, 0x34, 0x03, 0x06, 0xb1, 0x71, 0x5a, 0x93, 0x5c, 0x5e, 0x7d, 0x58,
- 0xa2, 0x10, 0x80, 0x16, 0xed, 0x85, 0xb5, 0x23, 0x44, 0xfc, 0x46, 0x2c,
- 0xaa, 0xc6, 0x04, 0x26, 0x5e, 0x70, 0x9a, 0xb0, 0xef, 0x4c, 0x99, 0xe9,
- 0x8d, 0x67, 0xcf, 0x8e, 0xe7, 0x0e, 0x1b, 0xe5, 0xfc, 0x70, 0x34, 0xd2,
- 0x6d, 0x72, 0x14, 0xee, 0x08, 0xc1, 0xcd, 0x50, 0x0a, 0xbb, 0x32, 0x7b,
- 0x44, 0x9c, 0x0f, 0xd2, 0x48, 0x27, 0x66, 0xba, 0xc7, 0xe2, 0xed, 0x35,
- 0xcb, 0x68, 0xe8, 0x15, 0x32, 0x5e, 0xde, 0x57, 0x3a, 0xe2, 0xbb, 0xf5,
- 0x33, 0x19, 0xaf, 0x7f, 0x8b, 0x69, 0xc5, 0x3c, 0x23, 0x09, 0x51, 0xc5,
- 0x3d, 0x39, 0x31, 0x8d, 0x00, 0x6a, 0x57, 0x55, 0xdc, 0x7b, 0x12, 0x0e,
- 0xfa, 0x7b, 0x1e, 0x55, 0xff, 0x1f, 0x1a, 0xf4, 0xf7, 0x91, 0x41, 0x3f,
- 0x75, 0x07, 0x87, 0x3f, 0x96, 0xec, 0xef, 0x7f, 0xa6, 0xf8, 0x72, 0xe6,
- 0xa0, 0x9f, 0x25, 0xee, 0x83, 0xde, 0x17, 0xcd, 0x73, 0x03, 0xa1, 0xce,
- 0xcc, 0x02, 0x23, 0xcc, 0x1e, 0x5e, 0xef, 0x53, 0xcf, 0xec, 0xa7, 0x26,
- 0x29, 0x4c, 0x28, 0xa3, 0x1f, 0xb3, 0x94, 0x09, 0x84, 0x8f, 0x2d, 0x4c,
- 0x7f, 0x42, 0x73, 0x60, 0x8c, 0xad, 0x95, 0xe1, 0x70, 0xed, 0x85, 0xf7,
- 0x9d, 0xe7, 0xd6, 0xfe, 0xdf, 0xd9, 0xe7, 0x3d, 0x49, 0xf9, 0xd4, 0x52,
- 0xba, 0x16, 0x3b, 0x73, 0x9a, 0x35, 0x66, 0x4d, 0x9c, 0xdf, 0x8a, 0x73,
- 0x6d, 0xae, 0xaa, 0x14, 0xc4, 0x9b, 0xa8, 0x97, 0x3b, 0x5c, 0x41, 0xed,
- 0xca, 0xda, 0x7f, 0x4a, 0xbd, 0x2f, 0x08, 0x6f, 0x08, 0xb5, 0x40, 0xfc,
- 0x3d, 0xe4, 0x40, 0x44, 0x71, 0xe2, 0x2b, 0xeb, 0x63, 0xd4, 0x82, 0xb9,
- 0xfd, 0x60, 0x86, 0x78, 0x90, 0x7c, 0x64, 0x44, 0x65, 0x88, 0xb3, 0x04,
- 0xed, 0x7d, 0xe6, 0x96, 0xc8, 0xad, 0x03, 0xb9, 0x64, 0x84, 0x1c, 0x60,
- 0xe8, 0x49, 0x6f, 0x2b, 0x4f, 0xd4, 0x9d, 0x2d, 0x9c, 0xf0, 0xc1, 0xbe,
- 0x94, 0x57, 0xdd, 0x57, 0x58, 0x1e, 0x9f, 0x93, 0xb8, 0x13, 0xfa, 0xc5,
- 0x61, 0x72, 0x06, 0x07, 0x52, 0x8b, 0x72, 0xf6, 0x8a, 0x37, 0xbf, 0x4b,
- 0x17, 0x6b, 0x6f, 0xdd, 0x17, 0x6e, 0x8d, 0xb5, 0x4b, 0x1a, 0xcd, 0xdf,
- 0x51, 0x31, 0x6b, 0xaf, 0x14, 0x75, 0x94, 0x66, 0xc9, 0xc5, 0xf1, 0xe5,
- 0x05, 0xc0, 0x48, 0x10, 0x01, 0xdd, 0x3b, 0xd7, 0x88, 0x84, 0x6d, 0x4b,
- 0x53, 0x28, 0x02, 0xcd, 0x29, 0x25, 0x4e, 0x44, 0x30, 0x97, 0x8d, 0x5d,
- 0x71, 0xfe, 0xa7, 0xbe, 0xc7, 0x70, 0x7a, 0xb3, 0xe6, 0x3c, 0xe5, 0x2e,
- 0x14, 0xd1, 0x66, 0xd9, 0xd9, 0xdf, 0x77, 0xb0, 0x0a, 0xae, 0xff, 0xc5,
- 0x37, 0xa9, 0x05, 0xca, 0x0e, 0x6d, 0xc4, 0x5e, 0xe1, 0xe5, 0xca, 0x2e,
- 0x4d, 0xcf, 0x31, 0xd8, 0x34, 0x88, 0xb7, 0xda, 0x8f, 0x8b, 0x16, 0x20,
- 0x9d, 0xb0, 0x09, 0xc5, 0xf8, 0x9c, 0xa7, 0x6e, 0x0a, 0x75, 0xa0, 0xd1,
- 0x89, 0x76, 0x77, 0x23, 0x50, 0xc8, 0x74, 0x6c, 0xc4, 0xaa, 0xa8, 0x76,
- 0x92, 0x26, 0x80, 0xb7, 0xd8, 0xe1, 0x07, 0x5d, 0xb3, 0x26, 0xc3, 0x63,
- 0x70, 0x45, 0x1e, 0x38, 0x9a, 0x31, 0x67, 0x64, 0xd8, 0x81, 0xb2, 0x94,
- 0xf9, 0x01, 0x69, 0x0b, 0x3a, 0x69, 0x1d, 0xf1, 0xc2, 0x39, 0x0d, 0x5a,
- 0x60, 0x2a, 0xf5, 0xa8, 0x39, 0xc5, 0x75, 0x1b, 0xf4, 0x2c, 0x90, 0xe0,
- 0xfb, 0xcf, 0xc2, 0x1d, 0x31, 0xba, 0x3c, 0xbb, 0x90, 0x1d, 0x16, 0x5e,
- 0xce, 0x6c, 0x39, 0xe2, 0x11, 0xc7, 0xb3, 0xd0, 0x8f, 0x14, 0xb8, 0xb6,
- 0x99, 0xc1, 0x96, 0xd2, 0xce, 0xfb, 0x2a, 0xcb, 0x80, 0x0b, 0xca, 0x6d,
- 0x91, 0xa1, 0x7d, 0x2f, 0xb9, 0xc0, 0x4a, 0xdf, 0xa8, 0x27, 0xd3, 0x7b,
- 0x89, 0x0f, 0xda, 0x19, 0x9f, 0x60, 0xce, 0x5b, 0xa5, 0x7d, 0x24, 0x19,
- 0xac, 0x44, 0xff, 0x28, 0xf8, 0x3e, 0x5b, 0x0a, 0xa7, 0xbb, 0x17, 0xf9,
- 0x10, 0x9d, 0x59, 0x82, 0x4e, 0x15, 0xf2, 0xba, 0x69, 0x3c, 0x23, 0x19,
- 0x45, 0x99, 0x48, 0x5a, 0x30, 0x89, 0xa5, 0xa0, 0x35, 0x52, 0x8a, 0xaa,
- 0x74, 0x57, 0x7b, 0x62, 0x54, 0x65, 0xa5, 0xec, 0x93, 0xcb, 0x53, 0x6d,
- 0x07, 0xa7, 0x76, 0xbb, 0x9b, 0xff, 0xfc, 0xec, 0xe2, 0xd2, 0xde, 0xfb,
- 0xf4, 0x59, 0xfc, 0xa0, 0x73, 0x7e, 0x88, 0x24, 0x5f, 0xd2, 0x3a, 0xe4,
- 0x76, 0x43, 0xa9, 0xab, 0x8d, 0x68, 0xfa, 0xb1, 0x2c, 0x0a, 0xda, 0xd1,
- 0x86, 0x88, 0x4b, 0x86, 0x48, 0x55, 0xa7, 0xcc, 0x62, 0x91, 0x3a, 0xb0,
- 0xb8, 0xb8, 0x80, 0xe9, 0xc2, 0x89, 0x97, 0x37, 0x72, 0x4a, 0xee, 0x93,
- 0xbd, 0x70, 0x77, 0x90, 0x51, 0x7d, 0x71, 0x4c, 0xa5, 0xce, 0x2f, 0x6f,
- 0xf8, 0x6f, 0x41, 0xdf, 0x39, 0x31, 0x50, 0x7e, 0x18, 0xfa, 0x00, 0xed,
- 0xee, 0xa0, 0xb0, 0x9a, 0x31, 0x3f, 0xd0, 0xbe, 0x4d, 0x6f, 0xf5, 0xe6,
- 0xec, 0x89, 0x07, 0xa1, 0x82, 0xd8, 0x94, 0xbd, 0x02, 0xa8, 0x29, 0x7e,
- 0xd0, 0x93, 0xaf, 0xf4, 0x8c, 0x72, 0xc6, 0x47, 0xa2, 0x45, 0xc8, 0xfb,
- 0xe4, 0xa9, 0x6b, 0x61, 0x41, 0xf7, 0x95, 0x34, 0x70, 0xa2, 0xd5, 0xa4,
- 0xe8, 0x87, 0x03, 0xdd, 0x2e, 0xb8, 0x32, 0x78, 0x63, 0xf0, 0x73, 0xae,
- 0x9d, 0x67, 0x36, 0x8d, 0x5d, 0x15, 0x06, 0xaf, 0x2b, 0xf4, 0x63, 0xc5,
- 0xae, 0x40, 0xe7, 0xe8, 0x6c, 0xbb, 0x27, 0xbc, 0xdb, 0xbf, 0x4e, 0x91,
- 0xea, 0x22, 0x58, 0x2c, 0x1e, 0xbb, 0x77, 0xb7, 0x92, 0xca, 0x95, 0x17,
- 0xcb, 0x0c, 0x9a, 0x5a, 0x5a, 0xcd, 0x88, 0xfd, 0xdb, 0x08, 0x12, 0x98,
- 0x8b, 0xf4, 0x56, 0x20, 0x75, 0x4b, 0x9f, 0x7e, 0xe2, 0x89, 0xdc, 0x42,
- 0x27, 0xa7, 0xc7, 0x6e, 0xa9, 0x98, 0x39, 0x1c, 0x07, 0xd9, 0x69, 0xfc,
- 0x54, 0x01, 0xd2, 0x5e, 0x15, 0xc3, 0xe4, 0x9c, 0x4a, 0xfb, 0x41, 0x73,
- 0xaa, 0xff, 0xdd, 0xb5, 0xc6, 0x07, 0x05, 0x0e, 0x64, 0x73, 0x79, 0x22,
- 0xd9, 0x31, 0x2f, 0xcc, 0xca, 0xe2, 0x27, 0xf4, 0x57, 0x8f, 0xe5, 0x36,
- 0x18, 0xee, 0x0b, 0xf7, 0x72, 0x6d, 0x46, 0x62, 0xec, 0xf6, 0xee, 0x23,
- 0x4f, 0x65, 0x5f, 0x19, 0xa3, 0x9e, 0xcb, 0x48, 0xab, 0x68, 0xa6, 0xf3,
- 0xac, 0x75, 0xac, 0xb9, 0x85, 0x2b, 0x7d, 0xa6, 0x25, 0xc2, 0xbd, 0xa6,
- 0xf8, 0x42, 0x38, 0x1c, 0xdb, 0xba, 0x11, 0x84, 0x7d, 0x24, 0x75, 0xce,
- 0xb4, 0x55, 0x90, 0xb4, 0x9d, 0x59, 0x00, 0xb1, 0x1f, 0xc2, 0xc4, 0xd4,
- 0x5a, 0xb6, 0x98, 0xee, 0xe4, 0x76, 0xea, 0x14, 0x3e, 0xe5, 0x9d, 0x68,
- 0xb7, 0x8d, 0xbd, 0xc3, 0x5a, 0xbd, 0x13, 0xd0, 0xa5, 0xb0, 0x5e, 0x91,
- 0x17, 0x81, 0xdc, 0xd9, 0xe6, 0x86, 0xf7, 0x4d, 0x80, 0xa7, 0xcf, 0x5c,
- 0x53, 0x57, 0xa0, 0xee, 0x50, 0xd9, 0x7e, 0xd8, 0x92, 0x3f, 0x96, 0x58,
- 0x3c, 0xb7, 0x4f, 0xb2, 0xe5, 0xc8, 0x99, 0xa7, 0x91, 0x23, 0xe5, 0x7d,
- 0x83, 0x37, 0xc3, 0x65, 0x49, 0xdc, 0x23, 0xc5, 0xbd, 0x03, 0x14, 0x4b,
- 0x6d, 0x3b, 0xf6, 0xa3, 0x71, 0xe9, 0x02, 0xf9, 0x8d, 0x90, 0x9a, 0xdd,
- 0x88, 0xb7, 0x86, 0xca, 0x63, 0x05, 0x8c, 0xb5, 0xcb, 0xb9, 0x00, 0x13,
- 0xbd, 0x2f, 0x7d, 0x2e, 0xae, 0x0d, 0x2e, 0x24, 0x6e, 0x9d, 0x01, 0xbe,
- 0x20, 0x2d, 0x2d, 0x4f, 0x85, 0x46, 0xa2, 0x8d, 0x78, 0x9c, 0xa4, 0x16,
- 0xd7, 0x18, 0x32, 0x6c, 0x11, 0x6f, 0x11, 0x5d, 0xc6, 0xa2, 0xf2, 0x6a,
- 0x94, 0xb6, 0xd4, 0xcc, 0x42, 0x09, 0x72, 0xcb, 0x63, 0xfc, 0x2b, 0xe5,
- 0x47, 0x88, 0xf8, 0x99, 0xab, 0xec, 0xaf, 0x50, 0x27, 0x87, 0x7c, 0xe1,
- 0x70, 0x92, 0x10, 0x8f, 0xb2, 0x58, 0xa6, 0x9e, 0x4d, 0xff, 0xf4, 0x85,
- 0xf8, 0xad, 0xc4, 0x2f, 0xa2, 0x45, 0x34, 0xbb, 0xd1, 0xb1, 0x67, 0x7b,
- 0xd6, 0x77, 0x49, 0x30, 0x40, 0x01, 0xb7, 0xfb, 0x60, 0x40, 0x23, 0xdc,
- 0x46, 0xa3, 0x6f, 0x93, 0xb7, 0xaf, 0x9f, 0x11, 0x22, 0xe5, 0x3a, 0xab,
- 0x16, 0xc6, 0x6a, 0x71, 0x86, 0xf9, 0xd9, 0x77, 0x5e, 0x63, 0xfb, 0x0e,
- 0x3c, 0xa0, 0x38, 0x05, 0x11, 0x66, 0x62, 0x35, 0x98, 0x25, 0xa4, 0x6c,
- 0xca, 0xeb, 0xbe, 0x64, 0x46, 0x2b, 0x8b, 0x97, 0x57, 0x4d, 0x3a, 0xa0,
- 0x88, 0xea, 0x08, 0xb0, 0x67, 0x4f, 0x9c, 0x00, 0xa3, 0x7a, 0xf1, 0x44,
- 0x52, 0x78, 0x4d, 0xc6, 0x41, 0xe4, 0x44, 0x3d, 0x63, 0xa1, 0x79, 0xc4,
- 0xe7, 0x9e, 0x14, 0xd9, 0xf0, 0x35, 0x28, 0xe9, 0x70, 0xa0, 0x7a, 0xef,
- 0x3d, 0xf3, 0x7d, 0x0b, 0x44, 0x97, 0x08, 0xa4, 0x0f, 0x93, 0xa4, 0x43,
- 0x4b, 0xf1, 0x9e, 0x7d, 0x6e, 0x9f, 0x25, 0x47, 0x52, 0x5e, 0x78, 0x45,
- 0x2d, 0x56, 0xbc, 0x21, 0x0a, 0xb0, 0x9a, 0x09, 0xaa, 0x9a, 0xb1, 0xce,
- 0xe3, 0xcd, 0xbd, 0xf7, 0xca, 0x8b, 0xb6, 0xeb, 0x04, 0x8c, 0xd2, 0x76,
- 0x63, 0x62, 0x50, 0xf9, 0xe2, 0xc6, 0x3f, 0x9c, 0xcf, 0xf9, 0x96, 0x3e,
- 0xef, 0x62, 0x3b, 0x55, 0x06, 0x66, 0x3e, 0x7f, 0x80, 0x1e, 0x75, 0xde,
- 0xfa, 0x47, 0x87, 0xc9, 0xaa, 0xcc, 0x06, 0xec, 0x75, 0xef, 0x23, 0x7b,
- 0x72, 0x66, 0xa8, 0xba, 0xdb, 0x75, 0x91, 0xff, 0x3d, 0xf3, 0xc0, 0x4c,
- 0x5a, 0x90, 0xc4, 0x7b, 0x7c, 0x5f, 0x04, 0xc6, 0x6d, 0x3a, 0xcb, 0x45,
- 0x28, 0x52, 0xec, 0xcf, 0x3d, 0xf0, 0x44, 0x76, 0x2d, 0x57, 0xb4, 0xe3,
- 0xd0, 0x3d, 0x55, 0xa4, 0xa4, 0xc8, 0x73, 0xd6, 0xc2, 0x0a, 0x3f, 0x7f,
- 0x2a, 0x7a, 0x97, 0xea, 0xc6, 0x74, 0xf3, 0xd2, 0x44, 0xcc, 0x40, 0xc7,
- 0xd6, 0x15, 0xd3, 0xcf, 0xe5, 0xda, 0x93, 0xa5, 0x94, 0x82, 0x84, 0xa9,
- 0x2b, 0xef, 0x42, 0x7f, 0xbd, 0xcb, 0x0b, 0xc1, 0xef, 0x06, 0xaf, 0x3f,
- 0x5f, 0xe1, 0x8f, 0x94, 0x12, 0xed, 0xc7, 0xd8, 0x4b, 0xde, 0xf3, 0x9f,
- 0x79, 0x49, 0x99, 0x20, 0x0f, 0x66, 0x36, 0x3b, 0xcb, 0x63, 0xd6, 0xf7,
- 0x9c, 0x10, 0xf6, 0x2c, 0xb1, 0x23, 0x45, 0xea, 0x58, 0x47, 0x98, 0x86,
- 0xaf, 0xec, 0xe7, 0x67, 0x25, 0x49, 0x53, 0xef, 0x7b, 0xbc, 0xa5, 0xde,
- 0x80, 0xc0, 0xdc, 0x19, 0x07, 0x45, 0xab, 0x24, 0xab, 0x7b, 0xfa, 0x85,
- 0xec, 0x0d, 0xbd, 0x2f, 0xad, 0xc9, 0xba, 0xea, 0x8d, 0xcf, 0x76, 0x7d,
- 0x85, 0x75, 0x4a, 0xd1, 0x45, 0xce, 0x0d, 0x5e, 0xf9, 0x02, 0xef, 0x8c,
- 0x93, 0x19, 0x15, 0x38, 0x9d, 0x69, 0x55, 0x52, 0xe5, 0x32, 0x73, 0x8f,
- 0xed, 0xb7, 0x84, 0xee, 0xa5, 0xaf, 0x3e, 0x25, 0x27, 0xaf, 0xbd, 0x07,
- 0x9f, 0xb8, 0x01, 0xa6, 0x33, 0xd2, 0x06, 0xee, 0xd9, 0x5b, 0x55, 0x4b,
- 0xb5, 0x56, 0xef, 0x51, 0xde, 0x19, 0xef, 0x4a, 0xe6, 0xdc, 0xc1, 0xf4,
- 0x07, 0xcf, 0xf0, 0x76, 0x38, 0xba, 0x31, 0xb7, 0xda, 0xa4, 0x01, 0xa8,
- 0xb1, 0xd0, 0x98, 0x57, 0x77, 0xed, 0x3f, 0x7b, 0xbe, 0xe6, 0x59, 0xb9,
- 0x34, 0x6b, 0x7b, 0xd5, 0x7b, 0xef, 0x7d, 0x16, 0x1e, 0x73, 0x35, 0x09,
- 0x14, 0x7a, 0x6d, 0x8e, 0x1a, 0x9d, 0xb4, 0x64, 0x8b, 0xd2, 0x3f, 0xff,
- 0x5d, 0xdd, 0x83, 0x15, 0xb1, 0x89, 0xd5, 0xff, 0xee, 0xf7, 0xf7, 0x73,
- 0x3f, 0x31, 0x89, 0x7d, 0x83, 0x55, 0x86, 0xe8, 0xc1, 0xa4, 0x45, 0x1f,
- 0xee, 0x20, 0x2e, 0x98, 0x1d, 0xaf, 0x05, 0x5e, 0x73, 0xa3, 0x47, 0x2c,
- 0x0b, 0x27, 0x39, 0xd8, 0x10, 0x94, 0x6c, 0xeb, 0xa9, 0x4f, 0x3c, 0x47,
- 0x32, 0x5f, 0xfc, 0x50, 0x9e, 0x27, 0x75, 0xb7, 0x73, 0x0c, 0xea, 0x9b,
- 0x25, 0x9b, 0xdd, 0x76, 0x44, 0xce, 0xcd, 0xe6, 0xbd, 0xb6, 0xef, 0xa4,
- 0x17, 0xfa, 0x06, 0xb5, 0xf1, 0xc8, 0xf4, 0x96, 0xed, 0x72, 0x4b, 0x28,
- 0x0d, 0x2f, 0xfc, 0x5d, 0x55, 0xd2, 0x5f, 0x95, 0x77, 0x60, 0x2b, 0x5d,
- 0x81, 0x2d, 0x14, 0x38, 0xb4, 0xf7, 0x19, 0x51, 0x6d, 0x08, 0xa1, 0x63,
- 0x56, 0xe9, 0x26, 0x9b, 0x7c, 0xd4, 0x23, 0x23, 0x8d, 0x38, 0x10, 0xb5,
- 0xf7, 0xd6, 0x53, 0x3b, 0xb5, 0x30, 0x69, 0x2e, 0x8e, 0xbb, 0x56, 0x80,
- 0x7b, 0x94, 0x77, 0xcd, 0xc5, 0xe5, 0xe8, 0xfc, 0x80, 0xfa, 0xcc, 0x71,
- 0x44, 0x73, 0x20, 0x8e, 0x46, 0xd9, 0xdf, 0x24, 0x77, 0xa6, 0x76, 0x4f,
- 0x3f, 0x5f, 0xf1, 0xf4, 0x48, 0xdc, 0x7b, 0x27, 0x53, 0x12, 0xbf, 0x66,
- 0x1d, 0xfc, 0x97, 0x3e, 0x13, 0x48, 0xa2, 0xfa, 0xf9, 0xd9, 0x0b, 0x46,
- 0x3d, 0x83, 0x34, 0x24, 0xc0, 0x80, 0x7b, 0xf8, 0x73, 0x67, 0xd3, 0xdc,
- 0x2c, 0x8b, 0x8f, 0x56, 0x5f, 0x14, 0x16, 0x2d, 0x5d, 0x60, 0xf7, 0xc2,
- 0x0b, 0x3d, 0x1a, 0x9e, 0x37, 0xd4, 0xc2, 0x76, 0xfa, 0xe2, 0xa5, 0xd0,
- 0xfa, 0xac, 0x1c, 0x03, 0x35, 0xf2, 0x75, 0xe9, 0xcd, 0xc1, 0x8b, 0x5d,
- 0x7b, 0xfd, 0x0a, 0x21, 0xc7, 0xc7, 0xec, 0xde, 0xed, 0x3a, 0x86, 0x19,
- 0x18, 0x75, 0x31, 0x2f, 0xc8, 0x09, 0xe1, 0x1e, 0x71, 0x0d, 0xec, 0xb5,
- 0x2e, 0x81, 0xae, 0xba, 0x41, 0x65, 0xe5, 0x97, 0xde, 0x15, 0xf3, 0x82,
- 0xf7, 0xce, 0x88, 0x42, 0x91, 0x73, 0xd9, 0xaf, 0x79, 0xa1, 0x3e, 0xb7,
- 0x8e, 0x23, 0x4d, 0x5f, 0xfa, 0xf1, 0x47, 0xbe, 0x47, 0x4a, 0xa5, 0x45,
- 0x91, 0x58, 0x96, 0x2d, 0x07, 0x62, 0x84, 0x2e, 0xab, 0x1e, 0x74, 0x84,
- 0x11, 0x00, 0xaa, 0xb2, 0x59, 0x46, 0x44, 0x83, 0x6c, 0x07, 0xe1, 0xf0,
- 0x0c, 0x02, 0x9b, 0x12, 0x15, 0xb1, 0x38, 0x86, 0x4b, 0xd8, 0x43, 0x38,
- 0x40, 0x0b, 0xf2, 0xbf, 0x89, 0x33, 0xcc, 0xf4, 0xe0, 0xf0, 0xfd, 0xe5,
- 0xb7, 0x67, 0x17, 0xa3, 0x64, 0x87, 0x32, 0x76, 0x2f, 0x2f, 0x4e, 0xbe,
- 0x7e, 0x7f, 0x69, 0xfe, 0xa9, 0x2d, 0xbd, 0x4e, 0x8b, 0xdc, 0xdc, 0x4e,
- 0xa3, 0x26, 0x2b, 0xcc, 0x5e, 0xb9, 0xd6, 0xaa, 0x1d, 0xe0, 0x22, 0xa2,
- 0xfb, 0xb8, 0xac, 0xb8, 0x72, 0x13, 0x08, 0x13, 0x6e, 0x4a, 0x59, 0x70,
- 0x00, 0x44, 0xe0, 0xc7, 0x26, 0x88, 0x5a, 0xe9, 0x6c, 0xe7, 0xbc, 0x9d,
- 0x85, 0x9d, 0x28, 0xea, 0x24, 0xb9, 0xfc, 0xf6, 0xf0, 0xdd, 0x77, 0x23,
- 0x65, 0x74, 0xff, 0xe1, 0x87, 0x1f, 0xba, 0x11, 0x5f, 0xe8, 0xb0, 0x37,
- 0xe9, 0xa7, 0x4f, 0xc3, 0x3a, 0xdb, 0xd8, 0x18, 0x1d, 0x1f, 0x27, 0x87,
- 0xa7, 0xa3, 0xb3, 0x0d, 0x97, 0xa7, 0xbe, 0xb5, 0xb7, 0x6d, 0x94, 0xb4,
- 0xeb, 0xac, 0x31, 0x7f, 0xd9, 0xd8, 0x38, 0x3d, 0xbc, 0x24, 0xeb, 0x58,
- 0x4a, 0xcf, 0xd2, 0x3c, 0x13, 0xe5, 0x44, 0x3a, 0xbb, 0x23, 0x8a, 0xbd,
- 0xab, 0x1c, 0x40, 0xf0, 0x3b, 0x2d, 0x5a, 0x2f, 0xac, 0x93, 0xac, 0xf3,
- 0x33, 0x58, 0xec, 0x8e, 0x78, 0x40, 0x04, 0xcc, 0x45, 0x40, 0x55, 0x33,
- 0x26, 0x65, 0x4f, 0xdb, 0x48, 0x9c, 0x87, 0x8c, 0x69, 0x0a, 0xb2, 0x31,
- 0x97, 0x1d, 0xee, 0x33, 0x2a, 0x13, 0xe8, 0x3c, 0x8f, 0x9b, 0x61, 0xc5,
- 0x10, 0x4e, 0x88, 0x32, 0x35, 0x79, 0x3f, 0x3a, 0xfc, 0xe6, 0x98, 0x9e,
- 0xfd, 0x26, 0x6b, 0xdc, 0xd4, 0xc2, 0xbb, 0x86, 0xaf, 0xbc, 0xcb, 0x9a,
- 0x7a, 0x92, 0x2e, 0xb2, 0x4d, 0xea, 0xd3, 0x78, 0x20, 0xe5, 0x08, 0x5c,
- 0xe3, 0x6c, 0x3a, 0xb8, 0x1a, 0x0a, 0x85, 0x3c, 0x8f, 0x6a, 0x07, 0x7e,
- 0xbb, 0x17, 0xc7, 0x87, 0xaf, 0xdf, 0x1e, 0x6b, 0xf1, 0x6a, 0xa6, 0x2b,
- 0x35, 0x8d, 0xde, 0x50, 0x51, 0x6f, 0x17, 0x5d, 0x21, 0x55, 0x62, 0x69,
- 0xda, 0x30, 0xbf, 0xa1, 0x02, 0xdb, 0xf1, 0xcf, 0xb9, 0xd2, 0x0a, 0x78,
- 0x76, 0x78, 0x95, 0xef, 0x70, 0xeb, 0xfa, 0xbd, 0xd4, 0xce, 0x09, 0x0f,
- 0x22, 0x55, 0xed, 0x9a, 0xdd, 0x1f, 0xf0, 0x9b, 0x7c, 0xbe, 0xbb, 0xbb,
- 0xbb, 0x66, 0x1c, 0x30, 0x3f, 0xe4, 0x92, 0x36, 0x43, 0x39, 0xa0, 0xc7,
- 0x77, 0x5c, 0xfb, 0xae, 0xc7, 0xb4, 0xdf, 0xb0, 0x6e, 0x57, 0x64, 0xbd,
- 0xe3, 0x6a, 0xcf, 0x9b, 0x2c, 0xde, 0xe5, 0x49, 0x59, 0xda, 0x15, 0x68,
- 0x4d, 0x0e, 0xca, 0x0a, 0xe7, 0x8d, 0xc7, 0x86, 0xa8, 0x1d, 0x37, 0xe6,
- 0x12, 0x18, 0xb8, 0xaa, 0xfb, 0x6e, 0x93, 0xf4, 0x1b, 0x60, 0x76, 0x26,
- 0xcd, 0xb0, 0xac, 0xae, 0x77, 0xe6, 0x07, 0xd0, 0x80, 0xcc, 0x43, 0x6f,
- 0x08, 0x01, 0x9c, 0x18, 0x4d, 0xda, 0xb2, 0x6b, 0xd4, 0x34, 0xb1, 0xa5,
- 0xb9, 0xfa, 0x1e, 0xd1, 0xaf, 0x5f, 0x30, 0x0b, 0x4c, 0x8c, 0x74, 0xa5,
- 0x23, 0xd7, 0x52, 0x83, 0x91, 0x8f, 0xd0, 0xfe, 0x83, 0x73, 0x72, 0x68,
- 0x64, 0x81, 0xf9, 0x0a, 0x31, 0x74, 0x61, 0x8b, 0x98, 0xbf, 0x56, 0x66,
- 0xcb, 0x0c, 0x9b, 0x4f, 0x10, 0xd3, 0x52, 0x4b, 0x95, 0x93, 0x29, 0x29,
- 0xfa, 0xbf, 0xa0, 0x92, 0xed, 0x15, 0xb1, 0xe6, 0xf2, 0x17, 0xcc, 0x01,
- 0xd2, 0x7a, 0xde, 0x16, 0xe8, 0x48, 0x0d, 0x77, 0xbf, 0x39, 0x18, 0x60,
- 0xff, 0xd4, 0x76, 0xb7, 0x3c, 0xe2, 0xe3, 0xde, 0xa0, 0x78, 0xf6, 0x0b,
- 0xb9, 0xd5, 0xbd, 0xbd, 0x33, 0x32, 0xbd, 0x08, 0xbe, 0xb5, 0x74, 0xd5,
- 0x60, 0x6b, 0xfe, 0x9c, 0x5f, 0xf3, 0xc3, 0xac, 0xc6, 0x0e, 0x50, 0xb0,
- 0x8f, 0xfe, 0xc6, 0xd1, 0xb9, 0x25, 0xd3, 0x37, 0x63, 0xbf, 0xa5, 0xc1,
- 0xd3, 0x8d, 0x60, 0xee, 0x76, 0xba, 0x32, 0x54, 0x25, 0x06, 0xfc, 0x10,
- 0xd6, 0x2d, 0xea, 0xf9, 0xf8, 0xe6, 0xc9, 0x9a, 0x1e, 0x1e, 0x98, 0xa9,
+ 0x14, 0xff, 0x37, 0x9f, 0xb2, 0xcf, 0x3b, 0x5a, 0x20, 0xd8, 0x14, 0x1f,
+ 0x59, 0x3a, 0x8a, 0x30, 0xcc, 0xa4, 0x6b, 0xed, 0x58, 0xe2, 0xb3, 0x38,
+ 0xf3, 0x38, 0x33, 0xe8, 0x44, 0xc2, 0xf8, 0xc0, 0xd2, 0x61, 0x3e, 0x9e,
+ 0x59, 0x99, 0xa7, 0x99, 0xc1, 0x6b, 0x1b, 0x0e, 0xfd, 0x53, 0xca, 0x3c,
+ 0x8a, 0x84, 0x4b, 0x5b, 0x6d, 0x4c, 0x35, 0x08, 0x1d, 0xd7, 0xb5, 0xb9,
+ 0xdb, 0x17, 0x39, 0x6b, 0x0c, 0x46, 0x7b, 0xa1, 0xc2, 0x17, 0x5f, 0x8f,
+ 0x46, 0x83, 0xc3, 0xf3, 0x93, 0xee, 0xc9, 0x6b, 0x7f, 0x4f, 0x2b, 0x73,
+ 0x3f, 0x5b, 0x59, 0x49, 0x6a, 0x35, 0x46, 0xa2, 0xfd, 0x6d, 0xa3, 0xea,
+ 0x76, 0x27, 0xf6, 0xb0, 0x6e, 0x81, 0x00, 0xa5, 0x43, 0x3e, 0x8d, 0xb1,
+ 0xf0, 0x6f, 0x72, 0x22, 0x1f, 0x67, 0x95, 0x83, 0x16, 0x0c, 0x4f, 0x04,
+ 0x90, 0x49, 0x10, 0x65, 0x80, 0xe2, 0x22, 0xd9, 0x7b, 0xf1, 0x7c, 0xcf,
+ 0x1c, 0x8c, 0x7b, 0xe6, 0x89, 0x93, 0xf7, 0x9f, 0x0e, 0x9f, 0xec, 0x3c,
+ 0x1d, 0x3e, 0x25, 0xb9, 0xe6, 0x82, 0x18, 0xd2, 0xbe, 0x91, 0x77, 0x11,
+ 0xc8, 0x00, 0x75, 0xeb, 0xdd, 0xf1, 0x51, 0xc2, 0xb8, 0x32, 0x90, 0x86,
+ 0x25, 0xc8, 0x72, 0xa1, 0x94, 0x19, 0x59, 0x11, 0x84, 0xb5, 0x49, 0x94,
+ 0x0e, 0x2d, 0xd1, 0xd8, 0x22, 0xc2, 0x49, 0x1d, 0x99, 0x0e, 0x4b, 0xf9,
+ 0x8c, 0xc4, 0xf2, 0xc2, 0xf6, 0x84, 0x24, 0x1e, 0x1b, 0x16, 0x32, 0x33,
+ 0x8b, 0x48, 0x55, 0x5a, 0x7f, 0x4e, 0x1e, 0x49, 0xfc, 0x4c, 0x05, 0x54,
+ 0x57, 0xaf, 0x8f, 0x1a, 0x30, 0x2b, 0x4c, 0x20, 0xe7, 0x9e, 0x0c, 0x2c,
+ 0x1d, 0x91, 0x88, 0x8a, 0x8b, 0x23, 0x17, 0xcb, 0x64, 0x6e, 0x8d, 0x92,
+ 0xab, 0xbf, 0x4d, 0x8b, 0xe1, 0x2f, 0xb5, 0xa8, 0x22, 0x2a, 0x71, 0xdb,
+ 0x70, 0xe2, 0xbe, 0x8b, 0xa8, 0x16, 0x83, 0x69, 0xd5, 0x88, 0xd8, 0x48,
+ 0xea, 0xfa, 0x02, 0xb0, 0x01, 0xe8, 0x34, 0xb3, 0x09, 0xe5, 0x35, 0x64,
+ 0x5b, 0x5f, 0xd7, 0x78, 0x24, 0x77, 0xc0, 0x7d, 0x6b, 0xa7, 0xca, 0xd2,
+ 0x99, 0xbc, 0x28, 0xc6, 0x1b, 0x7c, 0x6f, 0xc1, 0x2f, 0xaf, 0x50, 0xe3,
+ 0xa5, 0x0e, 0x98, 0x96, 0xee, 0x80, 0xf7, 0xb3, 0x44, 0x63, 0xfc, 0xb4,
+ 0x05, 0x50, 0x78, 0x5c, 0xea, 0x95, 0xb9, 0x50, 0xf2, 0x45, 0x3a, 0x4b,
+ 0x1e, 0x01, 0xfd, 0x5d, 0xbd, 0xf8, 0x0f, 0x4a, 0x3c, 0x3d, 0x9b, 0x31,
+ 0x39, 0x67, 0x73, 0x6d, 0xe1, 0x59, 0x21, 0x30, 0x7e, 0xf7, 0xd2, 0x63,
+ 0x09, 0xd2, 0x92, 0x74, 0x2b, 0x1a, 0xa4, 0xec, 0x66, 0x11, 0x68, 0x8e,
+ 0x74, 0xa5, 0x1b, 0xd9, 0x36, 0xb6, 0xa4, 0x52, 0x9b, 0x4d, 0xca, 0xf9,
+ 0xc2, 0x05, 0x0c, 0xb4, 0x51, 0xc9, 0x4a, 0x23, 0x3c, 0x52, 0x5b, 0x0c,
+ 0xc6, 0xc4, 0x3b, 0xd7, 0x62, 0x9e, 0x3c, 0x42, 0xf8, 0xfe, 0x16, 0xc2,
+ 0x90, 0x94, 0x38, 0xf6, 0x34, 0x3c, 0xa0, 0xce, 0x05, 0xb5, 0x13, 0xfc,
+ 0xeb, 0x22, 0xd9, 0x42, 0x7c, 0x36, 0xf3, 0xb9, 0xe8, 0x34, 0x5e, 0x1e,
+ 0xfa, 0xa9, 0x10, 0x1a, 0xa3, 0x8f, 0x6e, 0x3f, 0x68, 0x5a, 0x59, 0xc5,
+ 0x2f, 0x61, 0xa0, 0x27, 0x54, 0xbf, 0x90, 0xe4, 0xe6, 0xff, 0x06, 0x45,
+ 0xf0, 0x59, 0x62, 0xd7, 0xea, 0x31, 0xfa, 0x20, 0x33, 0x31, 0x73, 0xd1,
+ 0xcf, 0x80, 0x64, 0xc8, 0x19, 0x5d, 0xff, 0x4f, 0x1f, 0xfc, 0xff, 0x25,
+ 0x7d, 0xf0, 0x57, 0x9f, 0x52, 0x25, 0x97, 0x1c, 0x28, 0xf4, 0xd0, 0x9e,
+ 0x4d, 0x77, 0x1a, 0x63, 0x78, 0xe0, 0xd9, 0xfd, 0xe3, 0x8f, 0xa8, 0x77,
+ 0x42, 0x93, 0x70, 0x2b, 0xfc, 0xdf, 0x71, 0x44, 0x1f, 0x75, 0x32, 0xff,
+ 0x9f, 0xf7, 0xe3, 0xbf, 0xdb, 0x39, 0x5c, 0xad, 0x0d, 0x6e, 0x99, 0x4d,
+ 0x76, 0x47, 0xa5, 0x0e, 0xb8, 0xd8, 0x08, 0x2c, 0xed, 0x6d, 0xa7, 0xf9,
+ 0x50, 0xb2, 0x0c, 0xcf, 0xdd, 0xc9, 0xf9, 0x77, 0xcf, 0xfb, 0x08, 0x61,
+ 0x8d, 0xba, 0x51, 0xcb, 0x2a, 0x39, 0x7d, 0x7d, 0x78, 0xfe, 0x0b, 0x4e,
+ 0xfb, 0x5f, 0xe0, 0x87, 0x5e, 0x64, 0xd9, 0x74, 0xc0, 0x11, 0x92, 0x97,
+ 0xf8, 0x47, 0x24, 0xa6, 0x98, 0xda, 0x04, 0x78, 0x6c, 0x5b, 0x0a, 0x9c,
+ 0x84, 0xb1, 0x5a, 0xbc, 0x6c, 0xd4, 0x94, 0x42, 0x68, 0x29, 0x16, 0xa8,
+ 0xca, 0x13, 0x78, 0x59, 0xca, 0x62, 0xba, 0xcd, 0xb9, 0x38, 0xf8, 0x32,
+ 0xb6, 0x8a, 0x84, 0xd8, 0xe9, 0x78, 0x5f, 0x13, 0x75, 0x95, 0xe5, 0xff,
+ 0xf3, 0x9e, 0x51, 0x4a, 0xd7, 0x28, 0xe2, 0xe3, 0xde, 0x0d, 0x85, 0x83,
+ 0x3b, 0x4c, 0x31, 0xf5, 0x64, 0x97, 0x0b, 0xdb, 0x23, 0x17, 0xf8, 0x77,
+ 0x4c, 0x88, 0xef, 0x7e, 0x7e, 0x15, 0x66, 0x60, 0xed, 0x54, 0xfa, 0x2b,
+ 0xd1, 0x9a, 0x41, 0x8a, 0x05, 0x4e, 0x97, 0x55, 0x58, 0xc8, 0x2b, 0xf5,
+ 0xe7, 0x87, 0xa3, 0xe4, 0xdc, 0x5f, 0xfb, 0x89, 0xf6, 0x6c, 0x9a, 0xcf,
+ 0x7b, 0x2f, 0x04, 0x36, 0x35, 0xe7, 0x8c, 0x74, 0xea, 0x2f, 0xfb, 0xbd,
+ 0x92, 0x48, 0x23, 0xf1, 0xe9, 0xab, 0x7f, 0xdf, 0x01, 0x7e, 0xff, 0x12,
+ 0x82, 0xbd, 0xbc, 0x77, 0xd7, 0x23, 0x9d, 0xca, 0xa2, 0xa9, 0x88, 0x4a,
+ 0x59, 0xe3, 0xa4, 0xca, 0x4b, 0xbd, 0xac, 0xfd, 0x6a, 0x8c, 0x49, 0xca,
+ 0xa5, 0xcd, 0x31, 0x6b, 0x21, 0xa3, 0x21, 0x9f, 0xef, 0x24, 0x6b, 0x26,
+ 0x43, 0xb7, 0xb6, 0xe0, 0x19, 0xa3, 0xaa, 0xe7, 0x46, 0xc9, 0xd5, 0xc2,
+ 0x90, 0x66, 0x8e, 0xaa, 0x7b, 0xe1, 0xc4, 0x59, 0xe1, 0xad, 0xd0, 0x60,
+ 0xff, 0x0a, 0xfc, 0xf3, 0x6f, 0x88, 0xf7, 0x5c, 0x5f, 0x80, 0x28, 0xcc,
+ 0xf1, 0x56, 0xf3, 0xc4, 0x8a, 0x85, 0x14, 0xc5, 0xc7, 0x69, 0x2f, 0x50,
+ 0x9d, 0xc2, 0xbc, 0xb9, 0x27, 0x9a, 0x80, 0x3b, 0x49, 0x56, 0xe9, 0xca,
+ 0xfb, 0xd1, 0xe9, 0x13, 0xc6, 0x7e, 0x5e, 0x9e, 0x8e, 0x7c, 0xbe, 0xed,
+ 0x1a, 0xa5, 0x2b, 0x91, 0x9f, 0xf4, 0xd5, 0xf1, 0xe1, 0xe8, 0x72, 0x18,
+ 0x19, 0x63, 0x88, 0x0a, 0x71, 0x09, 0x8b, 0xc4, 0x3d, 0x34, 0x4b, 0xef,
+ 0x89, 0xe2, 0x4e, 0xb2, 0x9e, 0xa8, 0x6f, 0xdc, 0x35, 0x6d, 0x9b, 0xcc,
+ 0x5c, 0x46, 0x66, 0x03, 0x57, 0x14, 0x52, 0x53, 0x99, 0xb9, 0x1b, 0xe7,
+ 0x33, 0x1a, 0x81, 0xe9, 0x96, 0x31, 0x86, 0xe6, 0x82, 0x66, 0x46, 0x12,
+ 0x6d, 0x39, 0x23, 0x38, 0x19, 0x7d, 0xa7, 0xed, 0x89, 0x20, 0x0e, 0x4d,
+ 0xc9, 0x2c, 0x5e, 0x9d, 0x27, 0x68, 0xb4, 0x8c, 0xb2, 0xce, 0x84, 0xa7,
+ 0x8c, 0xda, 0xd0, 0xb9, 0xea, 0x63, 0x32, 0x6c, 0x1a, 0x01, 0x53, 0x90,
+ 0x10, 0xcb, 0x42, 0x98, 0x84, 0x95, 0xd6, 0x1f, 0x15, 0x8d, 0x8e, 0xca,
+ 0x5e, 0x84, 0x9c, 0x59, 0x0b, 0xac, 0xeb, 0x5a, 0x42, 0x66, 0xa1, 0x91,
+ 0xb2, 0x4a, 0xa9, 0x0b, 0x5d, 0xdb, 0xee, 0xfb, 0x9c, 0x48, 0x7f, 0xb7,
+ 0x3b, 0x5a, 0x4a, 0x7b, 0xc5, 0x35, 0x44, 0xee, 0x57, 0x1e, 0xa3, 0xd6,
+ 0xe2, 0xa5, 0x7c, 0x92, 0xc9, 0x4d, 0x66, 0x6e, 0x91, 0xa1, 0x97, 0x78,
+ 0xfd, 0xe8, 0x09, 0xd9, 0x08, 0x18, 0xba, 0x22, 0xd3, 0xf3, 0x8b, 0x27,
+ 0xe4, 0xe9, 0xd3, 0x70, 0x42, 0xaa, 0xec, 0x6f, 0xd3, 0x18, 0xa9, 0x31,
+ 0xc0, 0xe1, 0xc0, 0xa5, 0x33, 0x9e, 0xfb, 0x82, 0x99, 0x99, 0xa9, 0xab,
+ 0x3b, 0x54, 0x02, 0x85, 0xbe, 0xcb, 0x98, 0x5d, 0xe5, 0xbb, 0x22, 0x03,
+ 0x9b, 0x42, 0x90, 0x61, 0x45, 0xd4, 0x46, 0x12, 0xa6, 0xdd, 0xb3, 0x0a,
+ 0x78, 0xea, 0x66, 0xeb, 0x0b, 0xca, 0x53, 0x3e, 0xb2, 0x56, 0x64, 0x11,
+ 0xb4, 0x13, 0x85, 0x34, 0x28, 0xff, 0xcb, 0x9e, 0x9d, 0xc1, 0xe0, 0xaa,
+ 0x59, 0xd8, 0x81, 0xad, 0xdd, 0x1d, 0xbb, 0xc1, 0x64, 0xac, 0x18, 0xfa,
+ 0x65, 0x75, 0xef, 0x2a, 0x0b, 0xea, 0xf8, 0x3d, 0x90, 0xb1, 0x37, 0x05,
+ 0x01, 0xa4, 0x8c, 0xaa, 0x74, 0x30, 0x62, 0x14, 0xd4, 0x42, 0x52, 0xc9,
+ 0xf4, 0xb1, 0x13, 0x11, 0x0a, 0x0f, 0x4c, 0x4b, 0xab, 0xb8, 0xa3, 0x8e,
+ 0x57, 0x44, 0xb8, 0x86, 0x47, 0x65, 0x06, 0xb8, 0x9b, 0x0c, 0x32, 0x1e,
+ 0x84, 0xe4, 0xbf, 0xc6, 0x94, 0xbf, 0xcd, 0x66, 0xc8, 0xbf, 0xcc, 0x8a,
+ 0x49, 0x75, 0xbf, 0xf0, 0x59, 0xb8, 0xa7, 0x0f, 0x68, 0xf0, 0x0f, 0xac,
+ 0x40, 0x0b, 0xb4, 0xbf, 0x67, 0x64, 0xdd, 0x76, 0xa8, 0x7f, 0xa5, 0xb6,
+ 0x62, 0x34, 0x33, 0x06, 0xd2, 0x25, 0xdc, 0xf8, 0x48, 0x66, 0x32, 0x62,
+ 0xdc, 0xa5, 0x27, 0x3c, 0x77, 0x92, 0xfc, 0xd3, 0x55, 0xcd, 0xaf, 0x96,
+ 0x20, 0x2e, 0xb2, 0x50, 0xe5, 0x47, 0xaf, 0xfd, 0x7e, 0x9f, 0x67, 0xec,
+ 0x76, 0x3f, 0xc8, 0x65, 0x80, 0x48, 0x78, 0x43, 0x6e, 0x9a, 0x4e, 0xbd,
+ 0x72, 0x3a, 0xb2, 0x5a, 0xd2, 0x68, 0x9f, 0xfd, 0x51, 0x7e, 0xcd, 0x44,
+ 0x56, 0xb3, 0x03, 0x7c, 0x13, 0x12, 0x37, 0xf9, 0xb4, 0x73, 0x02, 0xdd,
+ 0xc8, 0x48, 0x56, 0x06, 0x6f, 0xa9, 0x67, 0x69, 0xbc, 0xcc, 0x67, 0x8d,
+ 0x97, 0x97, 0x68, 0x9e, 0xbe, 0xdd, 0x5f, 0xc9, 0x29, 0x3d, 0x94, 0xdf,
+ 0x23, 0xcb, 0x74, 0x4a, 0xd5, 0x0b, 0x1c, 0xe1, 0x5d, 0x62, 0x2b, 0xe7,
+ 0x02, 0xbc, 0x48, 0xfe, 0xe9, 0xe7, 0x7b, 0x9f, 0x3d, 0xdf, 0x8e, 0x06,
+ 0xda, 0x79, 0x3b, 0x51, 0xd6, 0x51, 0xd3, 0x2c, 0x28, 0x7b, 0x4e, 0x36,
+ 0x12, 0xfd, 0x73, 0x7f, 0xe8, 0xcf, 0x51, 0x58, 0x94, 0x20, 0x20, 0xfe,
+ 0x99, 0xd2, 0x96, 0xa0, 0x69, 0x50, 0xe2, 0x76, 0xda, 0x2a, 0x3c, 0xb0,
+ 0xa6, 0xb4, 0xa7, 0x1c, 0x5b, 0x39, 0x34, 0x0a, 0x83, 0x62, 0x95, 0x30,
+ 0x12, 0x07, 0x4f, 0xb4, 0x03, 0x4f, 0xb8, 0x67, 0x5e, 0xfd, 0x37, 0xee,
+ 0x29, 0xfe, 0x3e, 0x6c, 0xff, 0xcb, 0x0f, 0x68, 0xba, 0x06, 0x7e, 0xdd,
+ 0x2a, 0x3f, 0xf9, 0xbd, 0x57, 0xf9, 0xc9, 0x03, 0xab, 0xfc, 0xe4, 0xb1,
+ 0xab, 0xfc, 0xd9, 0xb3, 0xe7, 0x9f, 0xff, 0xba, 0x55, 0xf6, 0x26, 0xf9,
+ 0xff, 0xcc, 0x2a, 0x7b, 0xdb, 0xec, 0xd7, 0xad, 0xb2, 0x00, 0x43, 0x02,
+ 0x41, 0x2c, 0xa5, 0x32, 0x80, 0xe2, 0xa3, 0x64, 0x77, 0x86, 0x5d, 0xf2,
+ 0xc3, 0x6a, 0x82, 0xb6, 0x19, 0x85, 0x6d, 0x9d, 0x2c, 0xa3, 0x88, 0x45,
+ 0xcc, 0x6c, 0x97, 0xfb, 0x0f, 0x0d, 0x77, 0x31, 0xa3, 0x6a, 0x4b, 0x9b,
+ 0x83, 0x4d, 0x75, 0x91, 0x68, 0x66, 0x93, 0x12, 0xd7, 0xf0, 0xd7, 0xcc,
+ 0x62, 0xff, 0x13, 0x89, 0x8f, 0x42, 0xdc, 0x8c, 0x87, 0x7c, 0x6a, 0x4d,
+ 0xda, 0x8a, 0xea, 0x1b, 0x31, 0x6c, 0x56, 0x50, 0xef, 0xc5, 0xf6, 0x98,
+ 0x19, 0x82, 0x22, 0x85, 0x4d, 0x68, 0xf1, 0x09, 0x99, 0x1c, 0xa4, 0xce,
+ 0x21, 0x79, 0x5a, 0xb0, 0x4f, 0x91, 0xba, 0x28, 0x82, 0xb5, 0xb3, 0xf5,
+ 0xc5, 0xd7, 0x23, 0xe6, 0x09, 0x73, 0xda, 0x78, 0xf5, 0xe5, 0xc4, 0x2c,
+ 0x7a, 0x4d, 0xdd, 0x9d, 0x2e, 0xe7, 0x0b, 0x25, 0xf1, 0xa2, 0xe4, 0x86,
+ 0x1c, 0x08, 0x27, 0xcd, 0xe2, 0x8d, 0x96, 0xf0, 0x25, 0xff, 0x92, 0xcd,
+ 0x75, 0x48, 0x18, 0xb1, 0xe4, 0x15, 0x59, 0xd3, 0xf2, 0x25, 0x9a, 0x94,
+ 0xce, 0xa3, 0x00, 0xae, 0x8b, 0xf9, 0x83, 0xba, 0xb7, 0x2d, 0x9b, 0x4e,
+ 0xa6, 0xe3, 0xd3, 0x6c, 0xbc, 0xbc, 0xd6, 0x4c, 0x58, 0x5b, 0x29, 0xaa,
+ 0xbd, 0x58, 0x48, 0xc0, 0x20, 0x76, 0x8c, 0x4c, 0x0b, 0x03, 0x87, 0xa4,
+ 0x00, 0x0d, 0x95, 0x49, 0x9b, 0xac, 0xc3, 0x4d, 0x05, 0x43, 0xc7, 0x1e,
+ 0xc8, 0xfb, 0xde, 0xd0, 0xf1, 0x93, 0xd6, 0x8a, 0x46, 0x4a, 0xda, 0xf8,
+ 0x5b, 0xa5, 0x99, 0x2c, 0x06, 0x57, 0x29, 0xd1, 0xea, 0x05, 0xa9, 0x90,
+ 0x82, 0x95, 0x14, 0x17, 0xde, 0xe5, 0xd1, 0x79, 0xf2, 0x26, 0x95, 0x82,
+ 0x1a, 0xc9, 0x96, 0x11, 0x4c, 0x9f, 0x3d, 0xdd, 0x7b, 0xb2, 0xbd, 0x56,
+ 0x41, 0x6d, 0xd3, 0xc4, 0xe0, 0x5b, 0x45, 0x19, 0xc3, 0xac, 0x5e, 0x2e,
+ 0xab, 0x42, 0xd3, 0xc6, 0xcc, 0x87, 0x3e, 0xbc, 0x3b, 0x7b, 0x7d, 0x7c,
+ 0x7a, 0xf8, 0x17, 0x9b, 0xea, 0x4c, 0x73, 0xa0, 0x69, 0x72, 0x1f, 0x8c,
+ 0x59, 0x77, 0xff, 0xc1, 0xd8, 0xc9, 0xe6, 0x97, 0x5b, 0x4f, 0xb6, 0x91,
+ 0xb8, 0x13, 0x54, 0x57, 0xbb, 0xce, 0xda, 0x19, 0xe2, 0x0c, 0x20, 0x5e,
+ 0x43, 0x74, 0xc2, 0x9e, 0x3b, 0x72, 0xdd, 0xed, 0x0e, 0x8d, 0xd4, 0x12,
+ 0x44, 0x22, 0xd3, 0x7e, 0xbb, 0x4d, 0xea, 0x31, 0xf8, 0xa7, 0x42, 0x88,
+ 0x24, 0xc9, 0xbe, 0x01, 0x69, 0xd7, 0x62, 0x96, 0x4f, 0x72, 0x52, 0xe3,
+ 0x6b, 0xb3, 0x6f, 0x09, 0x71, 0x4d, 0x01, 0xea, 0xab, 0x36, 0xa1, 0x1a,
+ 0x52, 0xcd, 0x80, 0x58, 0x5e, 0xeb, 0x65, 0x6a, 0x8b, 0xc4, 0x06, 0x32,
+ 0x34, 0x9b, 0x15, 0x59, 0x33, 0x90, 0x6e, 0xbd, 0x34, 0x7f, 0xbe, 0xba,
+ 0x4d, 0x67, 0x41, 0x12, 0x23, 0x15, 0x27, 0xd3, 0x9d, 0x69, 0x71, 0x85,
+ 0xf4, 0xa6, 0x57, 0x2f, 0x60, 0x64, 0x89, 0xf3, 0xf5, 0x49, 0x73, 0x54,
+ 0x02, 0x7e, 0xfc, 0xcb, 0xcb, 0xbf, 0x9c, 0x1f, 0xbf, 0x7a, 0x49, 0xa8,
+ 0xc4, 0x2f, 0x09, 0x77, 0x5e, 0xb7, 0x40, 0x8a, 0x09, 0xd5, 0xce, 0x0d,
+ 0xc6, 0xf0, 0xc3, 0xeb, 0x93, 0xd1, 0xf9, 0xe9, 0xd9, 0xd1, 0xab, 0x97,
+ 0x3f, 0x90, 0xb1, 0x65, 0x64, 0xea, 0xbd, 0xf7, 0xae, 0xfd, 0x99, 0xe5,
+ 0x00, 0x0f, 0xd3, 0xe0, 0x8f, 0xbf, 0xff, 0x70, 0xfc, 0xee, 0xbb, 0x57,
+ 0x2f, 0x6f, 0xd3, 0xaa, 0x4f, 0xe3, 0xe3, 0xb7, 0x57, 0x54, 0xfe, 0x6b,
+ 0x6d, 0x35, 0xd2, 0x5a, 0xc7, 0xb3, 0x8f, 0x75, 0xfe, 0xf7, 0x2c, 0x31,
+ 0xaf, 0xcf, 0x96, 0x21, 0x05, 0xef, 0xa5, 0x14, 0x7a, 0x31, 0x97, 0x1a,
+ 0xd9, 0x09, 0x5f, 0x9d, 0x7e, 0x4b, 0x34, 0x8f, 0xd6, 0x83, 0x38, 0xe7,
+ 0xca, 0x22, 0xc9, 0x97, 0xcf, 0xf6, 0xf6, 0xb7, 0x5d, 0xd9, 0x3c, 0xd0,
+ 0xc4, 0x9a, 0x1e, 0x7f, 0x0c, 0x72, 0x26, 0xfe, 0x2e, 0xd9, 0x1f, 0xae,
+ 0xb6, 0x43, 0xc3, 0xa6, 0x86, 0x25, 0x65, 0x50, 0x77, 0x0c, 0xf2, 0xbb,
+ 0x01, 0x0c, 0xa5, 0xaa, 0x83, 0x15, 0xe8, 0x72, 0x02, 0x57, 0xd4, 0xe5,
+ 0x1b, 0x8f, 0x99, 0xe1, 0x2b, 0xb7, 0xf1, 0x4c, 0x77, 0xc4, 0x9d, 0xb5,
+ 0xf6, 0xda, 0xf8, 0x1d, 0x83, 0x1c, 0x5d, 0x5b, 0x0b, 0x93, 0x6d, 0x4c,
+ 0x71, 0xd9, 0x3f, 0xf1, 0x79, 0xf6, 0x82, 0xc1, 0xc8, 0xfe, 0x28, 0x99,
+ 0x53, 0x0c, 0xa3, 0xd4, 0x8d, 0xa7, 0x09, 0xb0, 0x6b, 0x2d, 0xc5, 0x7c,
+ 0x4e, 0x09, 0x83, 0x84, 0xd4, 0x67, 0xaf, 0x87, 0xe7, 0xd3, 0x98, 0x65,
+ 0xd7, 0xe9, 0xe4, 0x3e, 0xb1, 0xdc, 0xa8, 0x96, 0xd7, 0x23, 0x92, 0xb1,
+ 0x9f, 0xa4, 0x13, 0x32, 0x72, 0x66, 0xd9, 0x94, 0xa8, 0x94, 0xc8, 0xac,
+ 0x62, 0x02, 0x00, 0x4a, 0xd3, 0x52, 0x87, 0x48, 0xab, 0x77, 0x52, 0x5b,
+ 0x64, 0x75, 0x7e, 0x8b, 0x2d, 0x82, 0xd6, 0xde, 0x7d, 0xb4, 0x6d, 0x50,
+ 0xd7, 0x73, 0xed, 0x9c, 0x3e, 0x6d, 0xbb, 0x92, 0xff, 0x8e, 0x43, 0x4e,
+ 0xec, 0x31, 0xf0, 0x56, 0xbe, 0xa4, 0xbf, 0xc6, 0x39, 0xa4, 0xdf, 0xa8,
+ 0x39, 0xcf, 0x65, 0x5b, 0x99, 0xaf, 0x9b, 0x86, 0x6d, 0x69, 0xbf, 0xa4,
+ 0x26, 0x03, 0x31, 0x11, 0x37, 0xea, 0x1b, 0x5d, 0xcd, 0xcd, 0xc4, 0xbe,
+ 0x61, 0x14, 0x1d, 0x36, 0x8f, 0x6b, 0x29, 0x97, 0x55, 0x4d, 0xda, 0xb4,
+ 0xac, 0x30, 0x76, 0x81, 0xa4, 0x20, 0x8a, 0xd1, 0xbf, 0xa4, 0x86, 0x48,
+ 0x22, 0x92, 0x4a, 0x62, 0x26, 0xea, 0x4b, 0x8d, 0x86, 0xa0, 0x6c, 0x47,
+ 0x29, 0x84, 0x41, 0x78, 0x88, 0xa9, 0x0f, 0xea, 0x08, 0x5d, 0x8b, 0x2b,
+ 0x07, 0x4f, 0x82, 0x93, 0x91, 0x0b, 0x14, 0x69, 0xb2, 0x94, 0xa8, 0xa6,
+ 0x93, 0xb5, 0x2a, 0x6b, 0x94, 0x01, 0x05, 0xeb, 0xd5, 0x11, 0x26, 0xc6,
+ 0xea, 0x1d, 0x6a, 0xb6, 0xce, 0xb5, 0xa5, 0xda, 0xe4, 0x71, 0x29, 0x48,
+ 0x0a, 0x5d, 0x32, 0x82, 0x80, 0x86, 0xb2, 0xad, 0xa4, 0x56, 0x51, 0x32,
+ 0x73, 0xab, 0x5b, 0xb2, 0x5a, 0x6e, 0xaf, 0x2a, 0xd3, 0x32, 0x35, 0x42,
+ 0xd7, 0x94, 0xb9, 0xa5, 0x70, 0x2f, 0x71, 0x22, 0x71, 0x67, 0x4a, 0x82,
+ 0x8c, 0x90, 0x86, 0x11, 0xee, 0xdd, 0x4b, 0x8a, 0x28, 0x71, 0x15, 0x55,
+ 0xee, 0xbf, 0xdf, 0xaa, 0xb8, 0xb4, 0x35, 0x70, 0xb5, 0x6a, 0xf2, 0xc6,
+ 0xaa, 0x6d, 0x11, 0x9a, 0x88, 0xc4, 0xf2, 0xf6, 0x5a, 0xbe, 0x21, 0x76,
+ 0x0b, 0x4a, 0x28, 0x22, 0x93, 0x4d, 0x41, 0x5f, 0xdb, 0xe1, 0xdc, 0x2f,
+ 0x95, 0x42, 0x79, 0x98, 0x7a, 0x1a, 0xb4, 0x55, 0x64, 0x77, 0x7e, 0x5b,
+ 0x4e, 0x1f, 0xb7, 0xed, 0xfd, 0x9e, 0x8e, 0x60, 0x63, 0x4c, 0x50, 0xd2,
+ 0x4a, 0xf2, 0xf2, 0xbb, 0xe3, 0x8b, 0xd1, 0xc9, 0xd9, 0xbb, 0x2f, 0xa3,
+ 0x76, 0xa2, 0xfc, 0xd2, 0x56, 0x32, 0xd2, 0x4c, 0x37, 0x57, 0x4e, 0x86,
+ 0xdc, 0x43, 0xea, 0x84, 0x30, 0x47, 0x36, 0xa1, 0xe4, 0x1e, 0x7a, 0xa4,
+ 0xbb, 0x05, 0x6a, 0x69, 0x03, 0xee, 0xcf, 0xb4, 0xba, 0xc6, 0x5c, 0x98,
+ 0xfd, 0x05, 0x9b, 0x06, 0xb5, 0x42, 0xd5, 0xd8, 0xb1, 0x7f, 0xdd, 0x0f,
+ 0xc6, 0x1f, 0x87, 0xaa, 0x78, 0x91, 0xe2, 0xe5, 0x82, 0xf3, 0xa0, 0x28,
+ 0xb9, 0x9e, 0xb9, 0x38, 0xfc, 0xfe, 0x05, 0xa4, 0xe2, 0xe6, 0xc3, 0xad,
+ 0x17, 0xcd, 0xc3, 0xb7, 0x7b, 0x5e, 0xf6, 0x86, 0x7d, 0x6e, 0x2f, 0xf6,
+ 0xdc, 0x5e, 0xf8, 0xdc, 0x7e, 0xec, 0xb9, 0xfd, 0xf0, 0xb9, 0x27, 0xb1,
+ 0xe7, 0xbc, 0x04, 0x1d, 0xcf, 0xe5, 0xa5, 0x33, 0xb4, 0xce, 0x22, 0xf4,
+ 0xd6, 0xb3, 0x65, 0xc9, 0x6e, 0x78, 0x26, 0xdc, 0x2f, 0x32, 0x61, 0x7d,
+ 0x88, 0x4d, 0xc7, 0x8f, 0x6a, 0x3e, 0x44, 0x88, 0x1d, 0x52, 0x69, 0x8c,
+ 0xe0, 0x35, 0xff, 0xfd, 0x32, 0x4c, 0xbb, 0xc3, 0xac, 0x87, 0xc5, 0xd6,
+ 0x49, 0x0b, 0x42, 0x5a, 0x08, 0x57, 0xf7, 0xd5, 0xe0, 0x8f, 0xad, 0x23,
+ 0xc6, 0x5b, 0x2a, 0x7e, 0x7d, 0xc0, 0xac, 0xea, 0x8d, 0x2e, 0xce, 0x7b,
+ 0x7d, 0x71, 0x47, 0x9a, 0x6f, 0x0c, 0xcc, 0xbf, 0x13, 0x68, 0xdb, 0x44,
+ 0x91, 0xff, 0xec, 0xe9, 0x36, 0x07, 0x12, 0xd0, 0xc9, 0xa5, 0xd4, 0xcd,
+ 0x0d, 0xc2, 0x44, 0xe6, 0x77, 0x0e, 0x7b, 0x54, 0xb5, 0x4a, 0x59, 0x18,
+ 0x2d, 0xb8, 0x3d, 0x40, 0x86, 0x04, 0xf4, 0xa5, 0x4e, 0xfc, 0xea, 0xcb,
+ 0xcd, 0x71, 0x36, 0x51, 0xb9, 0x64, 0xea, 0xe5, 0xb0, 0xe3, 0xc0, 0x2d,
+ 0xab, 0x8f, 0xc2, 0xe6, 0x2d, 0x4e, 0x50, 0xac, 0x47, 0x50, 0x65, 0xb1,
+ 0xb5, 0x3e, 0x6d, 0xd7, 0x89, 0x37, 0x62, 0x99, 0xab, 0xbe, 0xd8, 0x72,
+ 0xc9, 0xaa, 0x52, 0x82, 0x52, 0xdd, 0x8f, 0x8e, 0x94, 0x14, 0xf3, 0x46,
+ 0x43, 0xda, 0x8e, 0x34, 0xf3, 0x40, 0xbe, 0xfe, 0xd3, 0xce, 0xea, 0xeb,
+ 0xe4, 0x45, 0x96, 0xdd, 0xd5, 0x28, 0xc6, 0x12, 0x41, 0xb3, 0x53, 0x2a,
+ 0x2d, 0x94, 0x12, 0x6f, 0xef, 0x08, 0xa1, 0xba, 0x59, 0x99, 0x6e, 0xa2,
+ 0xf9, 0xf5, 0xde, 0x8a, 0x0c, 0xd5, 0x37, 0x2f, 0xae, 0x1a, 0x6f, 0xa9,
+ 0x1d, 0x9f, 0xf5, 0xc3, 0x03, 0xf2, 0xc7, 0x83, 0xb7, 0xa3, 0x78, 0x4c,
+ 0x1a, 0x92, 0xe2, 0xd5, 0x1e, 0x35, 0x20, 0x47, 0x52, 0xb4, 0x72, 0x48,
+ 0xca, 0x95, 0xdd, 0x1e, 0x94, 0x1b, 0x95, 0x37, 0x2c, 0xb7, 0x4b, 0x69,
+ 0x68, 0xc1, 0xd6, 0x7b, 0xd4, 0x40, 0x5b, 0x23, 0x25, 0x39, 0x12, 0xa8,
+ 0x9f, 0xa7, 0xa3, 0x6d, 0xf5, 0x06, 0xfa, 0xce, 0x40, 0x4f, 0x6e, 0x42,
+ 0x4e, 0x3e, 0x0e, 0x84, 0x28, 0xee, 0x40, 0x7a, 0x59, 0xe9, 0xc7, 0xd7,
+ 0xe4, 0x08, 0x86, 0x92, 0x85, 0x64, 0x5b, 0xb4, 0x87, 0x6d, 0x87, 0x65,
+ 0xbc, 0x93, 0x7b, 0x2d, 0x44, 0xb8, 0x22, 0xc0, 0x7f, 0xfb, 0x1e, 0xee,
+ 0xff, 0xba, 0x39, 0xdc, 0xff, 0xe7, 0xcd, 0xe1, 0x93, 0x5f, 0x3d, 0x87,
+ 0x4f, 0x7e, 0x9b, 0x39, 0x74, 0xf5, 0x4f, 0xe9, 0x21, 0x6a, 0x36, 0x6f,
+ 0xd7, 0x32, 0x10, 0x3d, 0xc0, 0xfc, 0x73, 0x4c, 0x31, 0x7d, 0xf2, 0xa0,
+ 0x98, 0x07, 0x29, 0xf5, 0x36, 0x43, 0x25, 0xc8, 0xce, 0x80, 0x1b, 0xcb,
+ 0x18, 0x60, 0x59, 0x9b, 0xc9, 0xd5, 0x88, 0xc4, 0x7e, 0x30, 0x68, 0x92,
+ 0x20, 0xff, 0xaa, 0x24, 0xf5, 0xd8, 0xc8, 0xbb, 0x7e, 0xf2, 0x6e, 0x34,
+ 0xe2, 0x58, 0xeb, 0x08, 0xde, 0xe2, 0xae, 0xbd, 0x44, 0x86, 0x26, 0x2e,
+ 0xbb, 0x2d, 0xd2, 0xa2, 0xce, 0x4c, 0x0f, 0xa1, 0x76, 0xc0, 0x02, 0xe0,
+ 0xf7, 0xe6, 0xe9, 0x84, 0x7e, 0xbc, 0x3b, 0xdc, 0x7b, 0x62, 0x7f, 0xb3,
+ 0xfd, 0x0b, 0x28, 0x3e, 0x9c, 0x2b, 0x37, 0xaa, 0x57, 0x85, 0xd8, 0xdf,
+ 0xf6, 0x32, 0x7c, 0x5a, 0xe1, 0x7e, 0x7f, 0xc4, 0x52, 0x70, 0xa0, 0x89,
+ 0x53, 0xd2, 0x3b, 0x87, 0xb8, 0x9f, 0x88, 0x7e, 0x15, 0xd3, 0xad, 0x1e,
+ 0xe3, 0x31, 0xf7, 0x1c, 0xd4, 0xff, 0x67, 0x3c, 0xe6, 0x71, 0xfd, 0xa7,
+ 0xf5, 0xaf, 0x56, 0x9a, 0x73, 0x53, 0x0d, 0xb4, 0xae, 0x43, 0x9c, 0x36,
+ 0xd2, 0x99, 0x86, 0x04, 0x72, 0x06, 0xa5, 0xce, 0x94, 0xf7, 0x07, 0xc5,
+ 0x10, 0x8f, 0xe5, 0x5d, 0xe7, 0x9d, 0xe5, 0xc8, 0xf4, 0xca, 0xea, 0x9d,
+ 0x36, 0x65, 0x5c, 0x93, 0x76, 0x79, 0x94, 0x35, 0x6f, 0xaa, 0x65, 0xa1,
+ 0x1f, 0x11, 0xd4, 0x0b, 0xd8, 0x35, 0xc1, 0x5d, 0x11, 0x2c, 0xeb, 0x24,
+ 0x63, 0x5e, 0x83, 0xfc, 0x21, 0x21, 0xff, 0xbc, 0x3d, 0xde, 0x74, 0x92,
+ 0x0d, 0xd2, 0x7a, 0x92, 0xe7, 0x71, 0x53, 0x8c, 0xbd, 0x96, 0xa8, 0x83,
+ 0x90, 0x5c, 0x2d, 0x29, 0xd2, 0x88, 0x57, 0x4c, 0x5f, 0x96, 0xf3, 0x85,
+ 0x16, 0x8b, 0xcc, 0x0b, 0xc9, 0xfa, 0xa7, 0x4e, 0x97, 0xcb, 0xe6, 0xba,
+ 0x54, 0x8f, 0x4c, 0x3f, 0xb0, 0xec, 0xc8, 0xb1, 0xca, 0x94, 0x88, 0xf5,
+ 0xa4, 0xca, 0x17, 0x20, 0xbe, 0xf2, 0x2a, 0x52, 0xf4, 0x6d, 0xd1, 0x46,
+ 0x98, 0x4a, 0xe2, 0xfd, 0xe6, 0x1a, 0x86, 0xef, 0x83, 0x3c, 0xeb, 0xde,
+ 0xa0, 0x47, 0x76, 0xa9, 0xa5, 0xf1, 0x37, 0xef, 0x12, 0x63, 0xa1, 0xe7,
+ 0x72, 0xe6, 0x9a, 0xb8, 0xab, 0xc3, 0x0b, 0xea, 0x87, 0x32, 0x5b, 0xe8,
+ 0x5e, 0x49, 0xf1, 0xc0, 0x54, 0xac, 0xfe, 0x65, 0xd2, 0xf1, 0x66, 0x19,
+ 0xd1, 0x20, 0x26, 0xa5, 0xe4, 0x9e, 0xdc, 0x64, 0x9f, 0x38, 0x45, 0x26,
+ 0xd4, 0x16, 0x59, 0x64, 0xdd, 0x68, 0xfa, 0xc8, 0xe1, 0xe8, 0xe8, 0xe4,
+ 0xa4, 0x95, 0x4e, 0x43, 0xd3, 0xc6, 0x5c, 0x5a, 0x9c, 0xf3, 0x5c, 0x13,
+ 0xad, 0x18, 0x52, 0xa5, 0xd1, 0xdd, 0x18, 0x49, 0xf1, 0x3c, 0xbf, 0xbe,
+ 0x81, 0xeb, 0x2c, 0x4b, 0xeb, 0x5c, 0xcb, 0x08, 0xa5, 0x1c, 0xbc, 0x5e,
+ 0x16, 0xa6, 0x9b, 0xb0, 0x92, 0x6e, 0x96, 0xc6, 0x24, 0xfe, 0xfd, 0x29,
+ 0x02, 0x5a, 0x54, 0x94, 0x16, 0xa4, 0x2a, 0xb3, 0xc5, 0xe7, 0xca, 0x77,
+ 0xd5, 0x87, 0x7b, 0x2d, 0xc2, 0x08, 0x7c, 0x5e, 0x49, 0xcd, 0x18, 0x70,
+ 0x83, 0xc0, 0x61, 0xc2, 0xac, 0xbe, 0x54, 0xd9, 0x94, 0x68, 0x8a, 0xb8,
+ 0x71, 0x33, 0x5c, 0x0d, 0x00, 0x80, 0x2d, 0xd3, 0x7a, 0x07, 0xbb, 0x46,
+ 0x1f, 0xfb, 0x41, 0xd7, 0xe6, 0x01, 0xec, 0x75, 0xaf, 0x41, 0x7c, 0x61,
+ 0xed, 0x09, 0x48, 0x79, 0xff, 0xf3, 0x93, 0xfe, 0xee, 0x77, 0xdb, 0x9f,
+ 0xb9, 0x65, 0xec, 0x01, 0xf8, 0xef, 0x79, 0x02, 0x04, 0x22, 0xdd, 0xfb,
+ 0x63, 0x6f, 0x05, 0x67, 0xf4, 0x23, 0xda, 0x69, 0x25, 0x97, 0xff, 0x73,
+ 0x77, 0x5a, 0x24, 0xdb, 0xdd, 0x13, 0x62, 0xfe, 0x9a, 0x2e, 0x8b, 0xfc,
+ 0x13, 0xb0, 0xaa, 0x46, 0x5f, 0x78, 0x49, 0x6c, 0xc9, 0x2b, 0x98, 0x80,
+ 0x8f, 0x58, 0x77, 0x49, 0x14, 0x79, 0x8b, 0x51, 0xbc, 0x37, 0x2f, 0x27,
+ 0xd3, 0x72, 0x4e, 0x71, 0x4b, 0x6e, 0xa3, 0xef, 0xd3, 0x31, 0x42, 0xac,
+ 0x47, 0xe2, 0x9e, 0x45, 0xd6, 0x90, 0xe5, 0xb6, 0xd6, 0x35, 0xd9, 0x76,
+ 0xf7, 0x5e, 0xa2, 0xfc, 0xca, 0x82, 0xe0, 0x90, 0x6b, 0xca, 0xfb, 0x61,
+ 0x32, 0x1c, 0xfc, 0xb0, 0xed, 0xff, 0xf1, 0x38, 0xab, 0xb5, 0xa0, 0xb0,
+ 0xb2, 0x60, 0x83, 0x0c, 0x3a, 0x1a, 0xa2, 0xb5, 0xc4, 0xe5, 0x8e, 0xf6,
+ 0x3f, 0xef, 0x3a, 0x96, 0x40, 0x2c, 0xef, 0xfc, 0xef, 0x52, 0x94, 0x67,
+ 0x2d, 0x69, 0x36, 0x13, 0x9d, 0xbb, 0x72, 0x68, 0xad, 0xf2, 0x08, 0x60,
+ 0x9a, 0xc9, 0x67, 0xb4, 0xf9, 0x77, 0x34, 0x3e, 0x35, 0x0b, 0x51, 0x85,
+ 0x5e, 0x8d, 0x46, 0x96, 0x75, 0x84, 0x61, 0x87, 0x97, 0x9a, 0xfe, 0x0d,
+ 0x96, 0x08, 0x55, 0x22, 0xda, 0xa3, 0xe0, 0x7a, 0x32, 0xd1, 0xda, 0xe7,
+ 0x1c, 0x40, 0xb8, 0xa1, 0x52, 0x8c, 0xda, 0xaf, 0x8a, 0x37, 0x62, 0xbb,
+ 0xd8, 0xa6, 0xc6, 0x24, 0x3c, 0x96, 0xfe, 0x48, 0x39, 0x66, 0x51, 0xc2,
+ 0x44, 0x77, 0x62, 0xe2, 0x30, 0x4a, 0x20, 0x20, 0xde, 0x62, 0xc2, 0x1f,
+ 0xd8, 0xca, 0x6f, 0xbc, 0xb0, 0x5e, 0x09, 0xf1, 0x20, 0xb4, 0x45, 0xe4,
+ 0x1b, 0x43, 0x1f, 0x0f, 0x8a, 0x53, 0x53, 0x16, 0x0a, 0x43, 0xdf, 0x32,
+ 0x8a, 0xb8, 0x96, 0xd7, 0xa6, 0x16, 0x89, 0x73, 0xd8, 0xd5, 0x59, 0x0f,
+ 0xd8, 0x73, 0x57, 0x9d, 0x26, 0x9b, 0x16, 0xe1, 0x26, 0x8a, 0x44, 0xc7,
+ 0x56, 0xaa, 0xec, 0x54, 0xe4, 0xeb, 0xdc, 0x56, 0xe5, 0xd2, 0x1c, 0xf1,
+ 0xbc, 0xf0, 0xf7, 0x7b, 0x1a, 0xf5, 0x6e, 0xb3, 0x50, 0x4a, 0x0e, 0x85,
+ 0xc3, 0x32, 0x23, 0x17, 0x4d, 0xe7, 0x1b, 0x43, 0x23, 0x65, 0xb6, 0x52,
+ 0xcb, 0x81, 0x25, 0x30, 0xe0, 0xed, 0x80, 0x02, 0xf9, 0x5e, 0x2a, 0xd8,
+ 0xbb, 0x9c, 0x0d, 0x9f, 0x6c, 0x95, 0xba, 0xda, 0xe9, 0x1a, 0x10, 0x63,
+ 0x88, 0x1c, 0x85, 0x27, 0x11, 0xe9, 0x97, 0x30, 0x95, 0x40, 0x3c, 0x8e,
+ 0xeb, 0x92, 0xd9, 0xcb, 0xb5, 0x66, 0xa3, 0x04, 0xd5, 0x85, 0x06, 0x8c,
+ 0xdb, 0x84, 0xc7, 0x68, 0x9c, 0x85, 0xcd, 0xf1, 0x22, 0x46, 0x26, 0xf5,
+ 0x2f, 0xb6, 0x5e, 0x95, 0x66, 0x20, 0x90, 0x54, 0x0b, 0x8f, 0xb4, 0xad,
+ 0x53, 0x42, 0xb4, 0xe7, 0x8e, 0xce, 0x73, 0x25, 0x11, 0xf4, 0x30, 0x39,
+ 0xa6, 0xa7, 0xc3, 0x86, 0xfe, 0x24, 0xc4, 0xe9, 0xb9, 0x5f, 0x86, 0x88,
+ 0x4b, 0x7a, 0x86, 0x3b, 0x4b, 0xf6, 0x1e, 0x5f, 0x4a, 0x34, 0x1b, 0x48,
+ 0x5f, 0x1c, 0x0a, 0xcd, 0x3e, 0x29, 0xee, 0xaa, 0x6d, 0x26, 0xbd, 0xeb,
+ 0x59, 0x39, 0x1e, 0x9b, 0x91, 0xf7, 0x54, 0x4f, 0x31, 0xdf, 0x0e, 0x1c,
+ 0x61, 0x7e, 0x4f, 0xd4, 0x23, 0xdb, 0x87, 0xe5, 0xc0, 0xe8, 0x4b, 0xea,
+ 0x85, 0x2b, 0xe1, 0xa5, 0x9f, 0x57, 0x16, 0xca, 0xc8, 0x4d, 0x03, 0x4e,
+ 0xc8, 0xc4, 0x6e, 0x41, 0x1a, 0x9b, 0x07, 0xe6, 0x94, 0x64, 0x0d, 0xfa,
+ 0xa9, 0x76, 0x2f, 0xe1, 0x8a, 0xe7, 0x2b, 0x80, 0x40, 0x2d, 0x0e, 0xfc,
+ 0xbe, 0x16, 0x41, 0xc9, 0xc3, 0xea, 0xe4, 0x3c, 0x05, 0xed, 0x01, 0xf5,
+ 0xfe, 0x93, 0xfe, 0xd8, 0xeb, 0xd3, 0x7f, 0xf7, 0xff, 0xab, 0x97, 0x90,
+ 0x09, 0x73, 0xb0, 0xb3, 0x73, 0x77, 0x77, 0x37, 0x14, 0x82, 0xe7, 0xa1,
+ 0x59, 0xb2, 0x8d, 0x30, 0xab, 0x81, 0x58, 0x66, 0x56, 0x7c, 0xe0, 0x32,
+ 0xe9, 0xe5, 0xf3, 0xeb, 0x1f, 0xf7, 0x06, 0x7b, 0xbb, 0xbb, 0xbb, 0x3f,
+ 0x0f, 0x17, 0x34, 0xbf, 0x57, 0x68, 0xd6, 0xfc, 0xd7, 0x6f, 0x76, 0x87,
+ 0x7b, 0xb2, 0x13, 0x25, 0xee, 0xe2, 0xdf, 0xa9, 0x69, 0x5d, 0x30, 0x53,
+ 0x30, 0xef, 0xe4, 0x03, 0x4f, 0xc8, 0x70, 0x20, 0x20, 0x5d, 0x97, 0x23,
+ 0xc8, 0xe8, 0x0f, 0xf2, 0x7e, 0x3e, 0x7b, 0xb2, 0xbf, 0x9f, 0xb0, 0xca,
+ 0xc1, 0xd0, 0x7b, 0x8e, 0x46, 0x51, 0xd6, 0xa5, 0x54, 0x38, 0xe4, 0xdb,
+ 0x6c, 0x42, 0xf4, 0x33, 0x15, 0x97, 0x4f, 0x0b, 0x4a, 0x69, 0x29, 0xc8,
+ 0x83, 0xed, 0xdf, 0xdc, 0x5c, 0xe5, 0xe5, 0xf4, 0xde, 0xb5, 0x6a, 0xb6,
+ 0x78, 0x45, 0xa2, 0x95, 0xab, 0x10, 0x79, 0xd5, 0xb8, 0x53, 0x71, 0x29,
+ 0x04, 0xa9, 0x12, 0x52, 0x75, 0x03, 0xf7, 0x1c, 0x58, 0xce, 0x8a, 0x52,
+ 0xea, 0xec, 0x21, 0xf4, 0x72, 0xb5, 0xac, 0x84, 0x5e, 0x1d, 0xb1, 0xaa,
+ 0xbb, 0xf4, 0xbe, 0x75, 0xdd, 0x9b, 0x19, 0x7f, 0x69, 0xfe, 0xb3, 0xaa,
+ 0x32, 0x2e, 0x29, 0x97, 0xb4, 0x97, 0x38, 0xdb, 0x3e, 0x6b, 0x26, 0x37,
+ 0x5d, 0xc4, 0x0c, 0x64, 0xb8, 0xe9, 0xed, 0x8d, 0x19, 0xd0, 0xbd, 0xad,
+ 0xe8, 0x18, 0x2d, 0x3e, 0xe3, 0x72, 0x8e, 0x4c, 0x93, 0x44, 0x30, 0x8c,
+ 0xfa, 0x33, 0x5c, 0x8f, 0x92, 0xc5, 0xe2, 0x8a, 0x22, 0x62, 0xb6, 0xfe,
+ 0x11, 0xbe, 0x97, 0xd7, 0x9a, 0x12, 0x35, 0xb9, 0xc9, 0xe6, 0x22, 0x33,
+ 0xb7, 0x14, 0xf4, 0xd2, 0x93, 0x3d, 0xd8, 0x8b, 0x04, 0xf0, 0x7a, 0x57,
+ 0xfa, 0x2b, 0x33, 0x92, 0x6d, 0x49, 0x2a, 0xb2, 0x17, 0x9d, 0x70, 0xb0,
+ 0x5f, 0x2f, 0xc9, 0x74, 0x1c, 0xa7, 0x72, 0xa3, 0x68, 0x9e, 0xdb, 0x0a,
+ 0xcc, 0x96, 0x11, 0x8a, 0x59, 0x85, 0x6b, 0xac, 0x5e, 0x8e, 0x07, 0xa2,
+ 0xfb, 0xa0, 0x47, 0x88, 0x0f, 0xd2, 0x69, 0x7d, 0x7d, 0x72, 0x74, 0xc9,
+ 0xe9, 0x3d, 0xe6, 0xbf, 0x84, 0x04, 0x36, 0x7f, 0x50, 0x56, 0x4f, 0xc8,
+ 0x90, 0x7f, 0xfe, 0x84, 0xa3, 0xc0, 0xd8, 0xac, 0xd6, 0x1d, 0x9e, 0x3a,
+ 0xa4, 0x44, 0x4b, 0xf9, 0xeb, 0x7b, 0x54, 0xcb, 0x11, 0xc2, 0xfa, 0x96,
+ 0x9e, 0x68, 0xb3, 0xc2, 0x9e, 0x3e, 0x1b, 0xee, 0xf2, 0x10, 0x5d, 0x01,
+ 0x3e, 0x45, 0xa1, 0xc3, 0x5b, 0x54, 0x0b, 0x9f, 0x5f, 0xba, 0x82, 0x8b,
+ 0x54, 0xbb, 0xd2, 0x4f, 0x98, 0xbe, 0x92, 0xd3, 0x44, 0xf5, 0xb7, 0x1e,
+ 0xe0, 0xe5, 0x01, 0xa8, 0xaf, 0xde, 0x5e, 0x02, 0xf3, 0xba, 0xef, 0x52,
+ 0x0f, 0x82, 0x1a, 0x52, 0x11, 0xc8, 0x10, 0xc2, 0xb1, 0x54, 0x00, 0xd9,
+ 0x13, 0x82, 0x88, 0xeb, 0x3b, 0xba, 0xfb, 0x92, 0x6e, 0x01, 0xb9, 0xb1,
+ 0x04, 0x57, 0x8e, 0x22, 0x51, 0xae, 0xca, 0x4a, 0x4c, 0x43, 0x09, 0x6a,
+ 0x09, 0x0c, 0xbe, 0x92, 0x42, 0x7f, 0xac, 0x29, 0xc7, 0x60, 0xed, 0x58,
+ 0xcb, 0x6d, 0x0b, 0x55, 0x12, 0xf3, 0xd5, 0xea, 0x9d, 0x43, 0x78, 0x04,
+ 0x79, 0xf5, 0x9b, 0x4e, 0x59, 0xc8, 0x00, 0x3d, 0x8d, 0xec, 0x6d, 0x2f,
+ 0x77, 0x21, 0xe5, 0x0a, 0x8d, 0xb4, 0x05, 0x60, 0xeb, 0xb1, 0x7b, 0xaa,
+ 0xf7, 0x05, 0xf9, 0xb3, 0x5f, 0x1d, 0xda, 0xf0, 0x47, 0x9c, 0xa6, 0x01,
+ 0x0a, 0x55, 0xcd, 0xf2, 0xad, 0x6d, 0xce, 0x88, 0x4c, 0x23, 0xb9, 0x9f,
+ 0x7d, 0x62, 0x46, 0x32, 0xac, 0xdc, 0x5d, 0x5e, 0x3c, 0xd9, 0x4f, 0xea,
+ 0x7b, 0xa3, 0x43, 0xcc, 0xfd, 0x49, 0xe8, 0x56, 0x3b, 0x8c, 0xfa, 0xf1,
+ 0x5b, 0x25, 0x42, 0x58, 0x74, 0xbd, 0xa7, 0x57, 0x0e, 0xf1, 0x8a, 0x14,
+ 0x14, 0x50, 0xc8, 0xc5, 0x23, 0x4a, 0x68, 0x96, 0x2a, 0xc4, 0xc6, 0xb3,
+ 0xb4, 0xf8, 0x58, 0x5b, 0x45, 0x1b, 0x0d, 0xf5, 0xa9, 0x30, 0x15, 0x27,
+ 0xc9, 0xb8, 0x1f, 0xca, 0xf4, 0xf0, 0xc5, 0xd8, 0x69, 0xee, 0x6f, 0x4b,
+ 0xa8, 0xf6, 0xf3, 0xb4, 0x42, 0xfe, 0xc4, 0x2f, 0x28, 0xd0, 0x19, 0x9d,
+ 0x5b, 0x57, 0xb0, 0xf3, 0xf7, 0x8b, 0x1e, 0x2f, 0x75, 0xd6, 0x8d, 0x84,
+ 0x36, 0xff, 0x3d, 0xd0, 0x48, 0xc5, 0xba, 0x2a, 0xe6, 0x78, 0xdc, 0xd6,
+ 0x56, 0xb4, 0xb1, 0x0d, 0xbf, 0x5a, 0x16, 0x6b, 0x73, 0x2e, 0xa6, 0x12,
+ 0x4b, 0x34, 0x19, 0x26, 0x67, 0xce, 0x78, 0x2c, 0xfa, 0x60, 0xf7, 0x6b,
+ 0xaa, 0x89, 0x98, 0x8e, 0xf8, 0xfb, 0x40, 0x0b, 0xdf, 0xc6, 0x66, 0x80,
+ 0x35, 0x1a, 0x54, 0xd1, 0xbd, 0x77, 0x7a, 0x9e, 0x77, 0x9d, 0x71, 0x59,
+ 0x26, 0x27, 0x7b, 0x8d, 0x14, 0xa1, 0xfa, 0x45, 0xa0, 0xe0, 0x08, 0x80,
+ 0x74, 0x3c, 0x88, 0x28, 0x8f, 0x79, 0x7c, 0xbc, 0xb5, 0x84, 0x1c, 0x67,
+ 0xe6, 0xfe, 0xa3, 0x62, 0x4f, 0xa5, 0xd6, 0xf5, 0xe0, 0x64, 0x53, 0xca,
+ 0x62, 0x2f, 0x8b, 0x7e, 0xc0, 0x53, 0x81, 0x20, 0x9f, 0xb8, 0x98, 0x08,
+ 0xc4, 0x31, 0x97, 0x42, 0x81, 0xb6, 0xda, 0x58, 0xca, 0x6f, 0xea, 0x56,
+ 0x74, 0x1f, 0x7f, 0xa0, 0xa2, 0x19, 0x53, 0xae, 0xeb, 0x62, 0x98, 0x6d,
+ 0xd7, 0xe7, 0x9c, 0x84, 0x38, 0xe7, 0x28, 0x1f, 0xfd, 0x6f, 0x8d, 0xb5,
+ 0x9e, 0x55, 0x65, 0x9d, 0x7c, 0xf7, 0x4c, 0x91, 0x15, 0x52, 0x1e, 0x51,
+ 0xee, 0x26, 0xab, 0x97, 0xdf, 0xbb, 0x92, 0xcd, 0x51, 0xb7, 0x89, 0xa6,
+ 0x76, 0xeb, 0xeb, 0xfe, 0x25, 0xd5, 0x1d, 0x09, 0xd9, 0xeb, 0x46, 0x5e,
+ 0xa2, 0x30, 0x6d, 0x70, 0x7d, 0xb6, 0x2b, 0x9a, 0x99, 0x0b, 0x97, 0x14,
+ 0x1d, 0xf2, 0xef, 0x18, 0x15, 0x7e, 0xdc, 0xa4, 0x48, 0xa0, 0x48, 0x5c,
+ 0xc7, 0x93, 0xcb, 0x9c, 0x5c, 0x00, 0x43, 0xbb, 0x23, 0xa2, 0x58, 0x5d,
+ 0x29, 0x95, 0xe9, 0xf8, 0x30, 0x3b, 0xd1, 0x3e, 0xd2, 0x2b, 0xea, 0x1b,
+ 0xba, 0x9a, 0xe9, 0xc6, 0x80, 0xe1, 0x17, 0x67, 0x6a, 0x15, 0x5a, 0xd2,
+ 0x77, 0x97, 0xa7, 0x6f, 0x25, 0xe6, 0xed, 0xd6, 0x27, 0xa8, 0x22, 0x2f,
+ 0x5b, 0x33, 0x8d, 0x51, 0xd0, 0x7a, 0x93, 0xa1, 0x60, 0x7a, 0xce, 0xbf,
+ 0xa4, 0x69, 0xeb, 0x4b, 0x64, 0xb9, 0x12, 0x90, 0xb6, 0x9a, 0x68, 0x32,
+ 0xa9, 0x11, 0xef, 0x26, 0x81, 0x93, 0x6a, 0xf8, 0x09, 0x60, 0x3e, 0x1b,
+ 0x41, 0x63, 0xb6, 0xa4, 0x57, 0x02, 0x25, 0xdc, 0xd7, 0x65, 0xe7, 0xc8,
+ 0xf8, 0x0b, 0x46, 0xdb, 0x90, 0x39, 0x70, 0x93, 0xd7, 0xe5, 0x5d, 0x31,
+ 0x38, 0xa5, 0x6c, 0x9b, 0xe4, 0xb4, 0xbc, 0x36, 0x53, 0xf5, 0x2e, 0x6a,
+ 0xc9, 0xbf, 0x3f, 0x7f, 0x97, 0x6c, 0x91, 0x24, 0x4e, 0xce, 0x2d, 0xc3,
+ 0x0a, 0x3d, 0xb9, 0x2d, 0x4a, 0xa7, 0x11, 0x87, 0x6f, 0x5c, 0x6f, 0xfa,
+ 0xc9, 0xf1, 0x0f, 0x87, 0x6f, 0xcf, 0x4f, 0x8f, 0x7f, 0x5a, 0x11, 0xda,
+ 0xa7, 0x1f, 0xff, 0xd9, 0xd3, 0xc2, 0xe1, 0xb5, 0xa7, 0x28, 0x96, 0xe9,
+ 0xc7, 0xfd, 0x6a, 0x59, 0xc0, 0xc7, 0x47, 0xb7, 0xe0, 0x68, 0x74, 0x7e,
+ 0x32, 0x50, 0x76, 0x14, 0xae, 0x9a, 0x93, 0x17, 0xa4, 0x32, 0xe3, 0x14,
+ 0x0b, 0x71, 0xf1, 0xb7, 0x61, 0x80, 0x42, 0x4f, 0x44, 0x3f, 0x79, 0xa7,
+ 0x6c, 0xa3, 0x7d, 0xac, 0x38, 0xdd, 0xf1, 0xaf, 0xf3, 0x6b, 0x04, 0x19,
+ 0x3a, 0x4c, 0x27, 0x5a, 0x63, 0x9c, 0x36, 0x41, 0xc0, 0x3c, 0x44, 0x9e,
+ 0x48, 0x1b, 0xa8, 0xab, 0xb3, 0x19, 0xbb, 0xb4, 0x56, 0xca, 0x51, 0xc0,
+ 0xaf, 0xb0, 0x8c, 0x04, 0xfe, 0x0c, 0xc2, 0x27, 0x02, 0x06, 0x25, 0x2d,
+ 0x8a, 0xd7, 0x4f, 0xf4, 0x54, 0xde, 0x23, 0x2c, 0x3b, 0xe4, 0x92, 0xb1,
+ 0xc2, 0xe1, 0xc0, 0xd8, 0xe9, 0xcb, 0xe4, 0xa0, 0xf7, 0x3b, 0x5e, 0x24,
+ 0xbe, 0xf7, 0x2f, 0xc2, 0x7f, 0x2f, 0x51, 0x14, 0x75, 0x0f, 0x72, 0x56,
+ 0x32, 0x2b, 0xb7, 0xea, 0x81, 0x61, 0xff, 0xa7, 0x39, 0xea, 0x82, 0x0a,
+ 0x01, 0xde, 0xfc, 0x3a, 0x92, 0xbc, 0x5c, 0x40, 0x2e, 0x65, 0x5c, 0xdf,
+ 0xcb, 0xa8, 0x2d, 0x54, 0xd4, 0x56, 0xfc, 0xba, 0x66, 0x0c, 0x3d, 0xc4,
+ 0xab, 0x44, 0xa5, 0x2e, 0xa7, 0x3d, 0x2a, 0xf4, 0x0a, 0xaf, 0x34, 0xea,
+ 0xac, 0x87, 0xcd, 0x61, 0xae, 0x36, 0xbf, 0xdc, 0x94, 0x40, 0x5b, 0x4f,
+ 0x6e, 0x64, 0xd2, 0x68, 0x7a, 0xac, 0xd2, 0x10, 0x53, 0x18, 0xf5, 0xde,
+ 0x9c, 0xf8, 0xcd, 0x97, 0x9b, 0x89, 0x3c, 0xa8, 0x4f, 0x76, 0x05, 0x0e,
+ 0xde, 0x93, 0xb0, 0x8f, 0xf2, 0x8c, 0xc9, 0xea, 0x0b, 0x5c, 0xec, 0x26,
+ 0x9f, 0x4e, 0x33, 0xf1, 0x94, 0x50, 0xf1, 0x12, 0x66, 0x34, 0xe2, 0xc0,
+ 0x52, 0xf7, 0x62, 0x6a, 0xf5, 0x5c, 0xfa, 0xfa, 0x6f, 0xda, 0x57, 0xaf,
+ 0xcc, 0x17, 0xb9, 0xa9, 0x5d, 0xc1, 0x8d, 0x31, 0x97, 0x89, 0x8a, 0x2d,
+ 0x37, 0xed, 0x52, 0xc4, 0x42, 0x60, 0x2e, 0x41, 0x37, 0x52, 0x6b, 0xb1,
+ 0x95, 0x11, 0xd0, 0xef, 0x00, 0xee, 0x11, 0xeb, 0x08, 0x5d, 0x5a, 0xbc,
+ 0x82, 0xd8, 0x3c, 0xa6, 0xe5, 0xcd, 0x8a, 0x08, 0xd9, 0xb9, 0x0a, 0x27,
+ 0x95, 0x26, 0x59, 0x75, 0x52, 0xd5, 0xdd, 0xe7, 0x76, 0x1e, 0xa7, 0xcf,
+ 0x29, 0xec, 0x91, 0x6c, 0x31, 0x3c, 0x98, 0x15, 0x70, 0xfc, 0x8a, 0xb6,
+ 0xdf, 0x0f, 0x73, 0xb7, 0xb9, 0x58, 0x04, 0x8b, 0x65, 0x0d, 0x16, 0xb8,
+ 0x24, 0x04, 0x89, 0x9f, 0x29, 0x6a, 0x31, 0xe6, 0x7a, 0xf3, 0x53, 0x4b,
+ 0xda, 0xa5, 0x44, 0xc4, 0xbd, 0x09, 0x42, 0xdd, 0xd5, 0xc9, 0x0a, 0x9d,
+ 0x9c, 0x8c, 0xe1, 0x6a, 0xbe, 0x10, 0xdb, 0xbf, 0x38, 0x96, 0x29, 0xea,
+ 0x2a, 0xff, 0x4e, 0x4e, 0x55, 0x04, 0x3b, 0xf9, 0x5a, 0x82, 0x29, 0xad,
+ 0xaa, 0xf1, 0x8c, 0xff, 0x67, 0x3f, 0x52, 0xa1, 0xac, 0xfb, 0x63, 0x3d,
+ 0x7a, 0x88, 0x1e, 0xe7, 0xf0, 0xf8, 0xd6, 0xc3, 0x78, 0x25, 0x58, 0xa8,
+ 0x2e, 0xd8, 0x74, 0x7a, 0xb1, 0xb3, 0xd7, 0x15, 0x11, 0x16, 0x6d, 0xa2,
+ 0xbc, 0x92, 0xf3, 0xa0, 0x6d, 0x47, 0xc2, 0x6d, 0xb8, 0x3d, 0x9e, 0xd8,
+ 0xf2, 0xc5, 0xe6, 0xc9, 0x2a, 0xad, 0xb8, 0x82, 0x5c, 0xf1, 0x51, 0x01,
+ 0x41, 0xd4, 0x72, 0xf6, 0x29, 0x9b, 0x2c, 0x9b, 0x36, 0xae, 0xdd, 0xeb,
+ 0x93, 0xd0, 0x18, 0xa0, 0x4b, 0x5b, 0x38, 0x08, 0x62, 0xa1, 0xf4, 0xce,
+ 0x35, 0x05, 0xfd, 0xa0, 0xb7, 0x2d, 0x91, 0x3d, 0x8e, 0xfa, 0xd8, 0xdc,
+ 0xf4, 0x58, 0xcc, 0x4e, 0xbb, 0x5c, 0x65, 0xec, 0x60, 0x73, 0x01, 0xec,
+ 0xe8, 0xe7, 0xb9, 0x04, 0x73, 0xe4, 0xeb, 0x6f, 0xd8, 0x1b, 0xe3, 0x7d,
+ 0xdc, 0x16, 0xed, 0x11, 0x47, 0x4d, 0x1d, 0x1c, 0xe5, 0xe0, 0xcb, 0xa8,
+ 0xa0, 0x67, 0x04, 0x94, 0xad, 0x7d, 0xa9, 0xaf, 0xea, 0xe4, 0x07, 0x0e,
+ 0xb2, 0x93, 0xf3, 0xdb, 0xe7, 0xe2, 0xdf, 0x24, 0x7d, 0x83, 0x6e, 0x3c,
+ 0xfc, 0xc8, 0x4a, 0xfc, 0x60, 0x14, 0x1f, 0xab, 0xf1, 0x53, 0xf3, 0xc7,
+ 0xb7, 0xf4, 0xc7, 0x15, 0x1b, 0x89, 0x42, 0x21, 0xc3, 0x9e, 0xb9, 0x70,
+ 0x6b, 0x8f, 0x4e, 0xf5, 0x0f, 0x59, 0x70, 0xe0, 0x96, 0x29, 0xfb, 0x80,
+ 0xf8, 0x66, 0x5c, 0xe6, 0x3f, 0xf4, 0x5f, 0x6d, 0xa6, 0xcf, 0x19, 0x41,
+ 0x61, 0xe0, 0x4a, 0xfe, 0x07, 0x7e, 0x94, 0x3e, 0xf8, 0x47, 0xfa, 0xf0,
+ 0x42, 0x8c, 0xb8, 0xda, 0x59, 0x19, 0x4b, 0x0a, 0x31, 0x53, 0xf5, 0x77,
+ 0x8a, 0xcd, 0x68, 0xc1, 0xec, 0x04, 0x05, 0x5c, 0xe7, 0x16, 0x05, 0x0c,
+ 0xcb, 0xc8, 0x06, 0xf9, 0xd9, 0x61, 0x49, 0x07, 0x8d, 0xe5, 0x59, 0xbe,
+ 0xa2, 0x0b, 0xab, 0x87, 0x8c, 0xdb, 0x5d, 0xfe, 0x08, 0x19, 0xd6, 0x56,
+ 0xbf, 0xf7, 0x1a, 0x29, 0x51, 0x62, 0xe8, 0x49, 0x69, 0x12, 0x52, 0xd8,
+ 0x74, 0xa9, 0x19, 0x23, 0x81, 0xb5, 0xc1, 0xa3, 0x56, 0x3a, 0xb0, 0x5a,
+ 0xb2, 0xa2, 0x9f, 0x73, 0x54, 0x43, 0x00, 0xcb, 0x34, 0xc4, 0xc2, 0x47,
+ 0x1b, 0xc1, 0x9c, 0x67, 0x73, 0x0a, 0x87, 0xd8, 0x9b, 0x91, 0x39, 0x2b,
+ 0x48, 0xb3, 0xa2, 0xcf, 0x0d, 0xe2, 0xcd, 0x4d, 0x49, 0x7b, 0xa3, 0x5b,
+ 0x96, 0x71, 0x3b, 0xff, 0x12, 0x44, 0xc0, 0xea, 0xfb, 0x62, 0x72, 0xf3,
+ 0xfa, 0xdd, 0x28, 0xfe, 0x7a, 0x77, 0x70, 0x78, 0xda, 0x68, 0x21, 0xb4,
+ 0x17, 0x98, 0x94, 0x4f, 0xd8, 0x9a, 0xc8, 0xe4, 0x3d, 0xf4, 0x7e, 0x1b,
+ 0x6f, 0xae, 0xfd, 0x8a, 0x75, 0x0e, 0x91, 0x66, 0xc1, 0x52, 0x5c, 0x14,
+ 0x4f, 0x78, 0xe2, 0x07, 0x29, 0x9d, 0x05, 0x76, 0xad, 0xc4, 0x9b, 0x6b,
+ 0x6e, 0x28, 0x84, 0x80, 0x1a, 0x9e, 0x68, 0xb1, 0xf2, 0x90, 0x47, 0xdd,
+ 0x7d, 0x0d, 0x82, 0x79, 0xfd, 0xe3, 0x97, 0x2c, 0xf3, 0x29, 0x95, 0x81,
+ 0x8d, 0x04, 0x9c, 0x82, 0x19, 0xb2, 0x6e, 0x7b, 0x17, 0x10, 0x34, 0x5b,
+ 0x75, 0x46, 0xaf, 0xf3, 0x2e, 0xed, 0xcb, 0x66, 0xc5, 0x8f, 0xaa, 0x55,
+ 0x43, 0x32, 0x73, 0xb2, 0xff, 0xf5, 0x57, 0xe1, 0xed, 0xf9, 0xfa, 0xdd,
+ 0x8a, 0xcf, 0xd1, 0x6f, 0x06, 0x9a, 0x22, 0x20, 0x1a, 0x81, 0xa7, 0xd0,
+ 0x87, 0x73, 0x11, 0x27, 0x33, 0x6d, 0xff, 0xf2, 0x21, 0x29, 0x61, 0x9e,
+ 0x90, 0x3f, 0xd6, 0x3e, 0x28, 0x10, 0xd5, 0xf8, 0xa7, 0x18, 0xf5, 0xcb,
+ 0xd0, 0xae, 0xe4, 0x82, 0x23, 0x7b, 0xe7, 0xa2, 0x08, 0x6f, 0xaf, 0x5b,
+ 0xa3, 0x78, 0x73, 0x24, 0xdf, 0x62, 0x04, 0x0c, 0x24, 0x16, 0xf6, 0xf9,
+ 0x8f, 0x9d, 0x7d, 0x0b, 0x58, 0xb2, 0x59, 0x1e, 0x38, 0xa6, 0xe6, 0x06,
+ 0x0f, 0x15, 0x84, 0x22, 0xff, 0x34, 0x42, 0x8c, 0x79, 0xc5, 0x6e, 0x46,
+ 0x30, 0x9a, 0xa3, 0xd0, 0xb6, 0x73, 0xd4, 0x4f, 0xd5, 0xc4, 0xa2, 0x3d,
+ 0x19, 0x71, 0xce, 0xe2, 0x43, 0x9b, 0x29, 0x8f, 0x60, 0xac, 0xd6, 0xb1,
+ 0x4c, 0xbd, 0x35, 0x4a, 0x12, 0x5d, 0xae, 0x8f, 0xde, 0xa4, 0xfa, 0x42,
+ 0xb2, 0x35, 0x36, 0xd7, 0xb5, 0x97, 0x30, 0xce, 0x2a, 0xf6, 0x53, 0xc6,
+ 0x63, 0xc7, 0x9b, 0x7b, 0xf6, 0xf9, 0xb3, 0xa7, 0xdb, 0xdb, 0x0e, 0xb6,
+ 0xcc, 0x90, 0x89, 0x31, 0xa9, 0x39, 0xf3, 0x9c, 0x24, 0x17, 0x07, 0x1f,
+ 0xcc, 0x14, 0xdf, 0x40, 0x30, 0x58, 0x2f, 0x4c, 0xbc, 0x39, 0xba, 0xc7,
+ 0xf4, 0x3d, 0x5a, 0x44, 0x32, 0xc1, 0x21, 0xd0, 0xad, 0x21, 0x4c, 0x97,
+ 0x4d, 0xc6, 0x0f, 0x58, 0x37, 0xfc, 0x4a, 0xa9, 0x80, 0xb8, 0x91, 0xf3,
+ 0x43, 0x71, 0xc1, 0x70, 0xd8, 0x49, 0x7a, 0xd3, 0x86, 0x08, 0xc0, 0x73,
+ 0xbe, 0xf6, 0xf0, 0x07, 0x18, 0xa3, 0x6e, 0xb4, 0x42, 0xdc, 0xf9, 0x72,
+ 0x3c, 0x33, 0x77, 0xd0, 0x88, 0x4a, 0x9f, 0x7e, 0x4a, 0x4e, 0xf3, 0xba,
+ 0x11, 0x61, 0x9c, 0x16, 0x16, 0x34, 0xb7, 0xea, 0xce, 0xc1, 0xb8, 0xdb,
+ 0x1b, 0x4d, 0x3c, 0x88, 0x5e, 0x52, 0x16, 0x6b, 0x6d, 0x49, 0x6f, 0xc1,
+ 0x1f, 0xa2, 0x22, 0xab, 0x83, 0x55, 0x03, 0xfb, 0x94, 0xd5, 0x9e, 0x19,
+ 0x37, 0xb8, 0x23, 0x05, 0x11, 0x89, 0xe1, 0xe4, 0x88, 0x4e, 0x5e, 0xb2,
+ 0x2a, 0x18, 0xad, 0x40, 0xc6, 0x45, 0x72, 0x24, 0x15, 0xd1, 0x57, 0x1a,
+ 0xa1, 0x7e, 0xc3, 0x65, 0x9b, 0x5e, 0x51, 0xe2, 0x14, 0x23, 0xe8, 0x66,
+ 0x19, 0x8a, 0xff, 0x92, 0x20, 0x0b, 0xe0, 0xcf, 0x0c, 0x4e, 0xcc, 0xc4,
+ 0xb8, 0x17, 0x27, 0x85, 0x38, 0x5f, 0x01, 0x8c, 0x4a, 0x91, 0xea, 0xcf,
+ 0xee, 0x1a, 0x4e, 0x31, 0x67, 0x2f, 0xb0, 0x59, 0xe4, 0x4f, 0xc1, 0xe1,
+ 0x15, 0x3c, 0x24, 0x55, 0xa5, 0x73, 0xfe, 0x79, 0x4d, 0x76, 0xac, 0x5b,
+ 0x5f, 0x0a, 0x7c, 0x2c, 0x91, 0xca, 0x70, 0x33, 0x33, 0x19, 0x64, 0xbc,
+ 0xf6, 0xb8, 0x47, 0x3d, 0xa4, 0x76, 0x29, 0x3f, 0x1e, 0xa0, 0x33, 0xaa,
+ 0xde, 0x4f, 0xc5, 0x61, 0xc7, 0x6d, 0x4b, 0xde, 0x53, 0x1a, 0x2b, 0xd6,
+ 0xae, 0x4e, 0xf1, 0x3f, 0x2b, 0x0c, 0xa7, 0x97, 0x48, 0x35, 0x50, 0x98,
+ 0xf7, 0x0a, 0xff, 0xb4, 0x6d, 0x4a, 0x93, 0x91, 0x7c, 0x47, 0x8e, 0x68,
+ 0xa3, 0xfe, 0x22, 0xad, 0x9a, 0x69, 0x72, 0xd0, 0x8b, 0x6a, 0x9e, 0x76,
+ 0x02, 0x88, 0x82, 0x0f, 0x76, 0x68, 0xcb, 0x3e, 0xd3, 0x4f, 0x38, 0x92,
+ 0x11, 0x02, 0xe0, 0x36, 0x79, 0xb3, 0x0c, 0xa5, 0xe3, 0x58, 0xdd, 0xa2,
+ 0xc8, 0x0f, 0xc5, 0x7d, 0x4a, 0x8b, 0xe1, 0x92, 0x38, 0x61, 0x8f, 0x11,
+ 0x56, 0xa9, 0x01, 0x6b, 0xa1, 0x1e, 0x66, 0x4a, 0x7b, 0x9b, 0x95, 0x77,
+ 0x01, 0x86, 0x97, 0x4c, 0x01, 0xdb, 0xbb, 0x76, 0xe2, 0x85, 0x79, 0xfb,
+ 0x8f, 0xff, 0xa9, 0xbf, 0xfc, 0x40, 0x33, 0xf5, 0x5f, 0x3a, 0x53, 0x1a,
+ 0xda, 0x4f, 0x83, 0x24, 0x45, 0x18, 0xc1, 0xc9, 0x1f, 0x31, 0x2b, 0x7f,
+ 0x25, 0x48, 0x0a, 0x4f, 0x8d, 0xe9, 0xf2, 0x1c, 0x0d, 0xfe, 0x71, 0x68,
+ 0x15, 0x5e, 0x69, 0x24, 0xa5, 0x9c, 0x2b, 0x68, 0xe5, 0xe3, 0xfb, 0xc0,
+ 0x77, 0x44, 0xdb, 0xf0, 0xa7, 0xa2, 0x0f, 0x06, 0x40, 0x63, 0x7b, 0xa5,
+ 0x28, 0xd0, 0x4b, 0x35, 0xac, 0x78, 0x15, 0x7f, 0xaa, 0x24, 0xe3, 0xdf,
+ 0x18, 0x1d, 0xa6, 0xe7, 0x64, 0x91, 0xf1, 0xcf, 0x43, 0x0b, 0x80, 0xd0,
+ 0x32, 0x07, 0x58, 0x8d, 0x3f, 0x0e, 0xea, 0xfb, 0xf9, 0xb8, 0x9c, 0xc9,
+ 0x5e, 0xa7, 0xf1, 0x9a, 0x3e, 0xeb, 0xcf, 0x78, 0x61, 0x10, 0xd9, 0x18,
+ 0x78, 0x19, 0xbb, 0xfd, 0x28, 0x4b, 0x31, 0x1b, 0x29, 0xe5, 0x64, 0x82,
+ 0xec, 0x19, 0xc0, 0xb8, 0xa9, 0x6a, 0xed, 0x1f, 0x13, 0x86, 0xe3, 0xb0,
+ 0x3a, 0xb4, 0x84, 0xd7, 0xea, 0xce, 0xb9, 0x6a, 0x57, 0x66, 0xac, 0x3c,
+ 0xb0, 0x79, 0xac, 0xc4, 0x8b, 0x66, 0x3b, 0xd3, 0x21, 0x35, 0x1d, 0xfd,
+ 0x80, 0x14, 0x19, 0x7e, 0xf5, 0x88, 0x7f, 0x34, 0xb8, 0xa4, 0x1f, 0x09,
+ 0xe6, 0x40, 0x73, 0xeb, 0xc8, 0x9f, 0xa1, 0xd9, 0x6f, 0x54, 0x87, 0xed,
+ 0x2a, 0x2e, 0xa5, 0xda, 0x60, 0x26, 0x14, 0xb3, 0x2c, 0xc2, 0xfb, 0x4a,
+ 0x8f, 0xd2, 0x07, 0xa6, 0x18, 0x30, 0x26, 0xff, 0xfa, 0xd6, 0x60, 0xa1,
+ 0x12, 0x64, 0x61, 0x8e, 0x74, 0x45, 0x0b, 0x88, 0xf3, 0x93, 0x91, 0x99,
+ 0x21, 0x83, 0xa3, 0x4f, 0xc3, 0x87, 0x9a, 0x63, 0x54, 0x0f, 0x9c, 0x21,
+ 0x02, 0x95, 0x20, 0xe7, 0x93, 0xc7, 0x96, 0xdc, 0x94, 0xb3, 0x29, 0xe3,
+ 0x33, 0xa8, 0xdd, 0x07, 0xc6, 0x5a, 0x32, 0x12, 0xd7, 0x93, 0x16, 0x91,
+ 0x78, 0xa0, 0xe0, 0xa0, 0x28, 0x74, 0xb8, 0xbe, 0x39, 0x17, 0x57, 0x14,
+ 0xef, 0xfe, 0x09, 0xca, 0xd3, 0x95, 0x8c, 0xd7, 0x42, 0x3f, 0x91, 0x80,
+ 0x30, 0x27, 0x9f, 0x66, 0x24, 0x76, 0x94, 0xc4, 0x44, 0x2c, 0xc2, 0x4e,
+ 0xff, 0xd1, 0x77, 0xdd, 0x61, 0xcf, 0xcf, 0xc0, 0x0b, 0x4b, 0x6a, 0xcd,
+ 0xe2, 0xf5, 0xcd, 0xad, 0x2e, 0xdb, 0x7c, 0xd5, 0x2c, 0x3e, 0xa0, 0x86,
+ 0xe9, 0x07, 0xc2, 0xf5, 0x61, 0xcd, 0xd4, 0xe7, 0x8e, 0x1f, 0x60, 0x6a,
+ 0x39, 0x9f, 0x6f, 0xb9, 0xa0, 0x76, 0xb0, 0xc5, 0x67, 0x25, 0x9b, 0x33,
+ 0x0f, 0x0d, 0x43, 0x22, 0x7a, 0x02, 0x01, 0xf3, 0xf3, 0xc6, 0xb7, 0xda,
+ 0x15, 0x41, 0x9e, 0x06, 0x1d, 0xa3, 0x88, 0xfd, 0x07, 0x84, 0xfa, 0xec,
+ 0x66, 0x32, 0x97, 0x4d, 0x56, 0xe5, 0x13, 0xbf, 0x3c, 0x16, 0x1e, 0xc0,
+ 0x7e, 0x62, 0x96, 0x28, 0x8a, 0xfd, 0x45, 0x09, 0xf1, 0x3a, 0xff, 0x83,
+ 0x77, 0x94, 0x8b, 0x81, 0x91, 0xd3, 0x4f, 0xe1, 0x61, 0x08, 0xb4, 0x9b,
+ 0x6e, 0x12, 0x0e, 0xc1, 0x0f, 0xd6, 0x9e, 0x3c, 0x30, 0x4e, 0x30, 0x6e,
+ 0xee, 0x27, 0x02, 0x44, 0xcf, 0xd3, 0xda, 0xf6, 0x90, 0x87, 0x60, 0xeb,
+ 0xc3, 0x42, 0x37, 0xbc, 0x09, 0x48, 0x0d, 0x93, 0x48, 0x4c, 0x85, 0x23,
+ 0x31, 0x57, 0xe5, 0x70, 0xc5, 0xcc, 0x30, 0xd4, 0xb2, 0x3b, 0x33, 0xed,
+ 0x09, 0x91, 0x19, 0x71, 0x35, 0xec, 0x23, 0x18, 0xc1, 0xa4, 0x8b, 0x7f,
+ 0x57, 0x36, 0x94, 0x64, 0x4b, 0x2e, 0x58, 0xa1, 0x4c, 0xd9, 0xb6, 0x87,
+ 0x86, 0xdd, 0xa3, 0x42, 0xa0, 0xf2, 0x50, 0x73, 0x10, 0x44, 0x9d, 0x05,
+ 0xdf, 0x5f, 0xb5, 0xe0, 0xaa, 0xd3, 0x8a, 0xf4, 0xa0, 0x9f, 0x25, 0x56,
+ 0xd1, 0x15, 0x60, 0x14, 0x06, 0x66, 0x65, 0xd0, 0xec, 0x3e, 0x89, 0x92,
+ 0xae, 0x76, 0xfe, 0xe7, 0x7f, 0xfe, 0x59, 0xac, 0x9e, 0x38, 0x90, 0x97,
+ 0x1f, 0xf2, 0x85, 0x2f, 0xbc, 0x4e, 0xce, 0xbd, 0xe2, 0xd4, 0x24, 0xf3,
+ 0x79, 0x0e, 0x81, 0xd1, 0xa4, 0x43, 0xa1, 0xe2, 0x96, 0x8e, 0xf9, 0x43,
+ 0xd3, 0x30, 0x41, 0xe2, 0x25, 0x1b, 0xce, 0x1e, 0x2f, 0xdb, 0x40, 0x55,
+ 0x24, 0x31, 0xa3, 0x4f, 0xce, 0x6f, 0x9f, 0x46, 0x40, 0x2a, 0x49, 0xc4,
+ 0xab, 0xd4, 0x2a, 0xc9, 0xfe, 0x62, 0xe5, 0x90, 0xb8, 0x9e, 0xb1, 0x0e,
+ 0x49, 0x3a, 0xef, 0x93, 0x2f, 0x7b, 0x83, 0x68, 0xf7, 0x73, 0x7d, 0x1f,
+ 0xbc, 0x41, 0x3c, 0xd8, 0x13, 0xf3, 0xa5, 0x0f, 0x8e, 0xb8, 0x33, 0x79,
+ 0x67, 0x3f, 0x6c, 0xb4, 0x02, 0xc7, 0xe8, 0x89, 0xa2, 0xa2, 0xb9, 0x56,
+ 0x1a, 0x9c, 0xa0, 0xaa, 0x65, 0x54, 0x9f, 0x4d, 0x22, 0xea, 0x6d, 0x67,
+ 0x7f, 0x3d, 0x89, 0xf6, 0x41, 0x0b, 0x94, 0xd5, 0xb6, 0x0f, 0x58, 0x56,
+ 0xef, 0xc7, 0xb2, 0xc5, 0xe8, 0x1e, 0xbc, 0x2a, 0xa5, 0x70, 0xe0, 0x63,
+ 0x04, 0xca, 0xaa, 0x7d, 0x1e, 0xf6, 0x03, 0x67, 0xe9, 0x43, 0x5d, 0xcf,
+ 0x68, 0xb3, 0xe7, 0x57, 0xf7, 0xa6, 0x53, 0xf5, 0xca, 0xcc, 0x6a, 0xff,
+ 0x2e, 0xe5, 0xe7, 0x74, 0xb9, 0x3c, 0xcb, 0x72, 0xb3, 0x86, 0xf3, 0x6f,
+ 0x91, 0x51, 0x6d, 0x66, 0xe6, 0x8c, 0x7c, 0x60, 0xc6, 0x40, 0x29, 0x89,
+ 0xcf, 0xbb, 0x88, 0x98, 0x88, 0x0c, 0xab, 0x39, 0x0c, 0xa9, 0x5a, 0xa7,
+ 0x98, 0x4c, 0x0f, 0x0c, 0xbe, 0xd5, 0x12, 0x35, 0xe2, 0xc2, 0xc0, 0xed,
+ 0x09, 0xa1, 0x54, 0xad, 0x60, 0x42, 0x74, 0xf6, 0x3f, 0x40, 0xaa, 0x70,
+ 0xe0, 0x56, 0x2b, 0x72, 0xda, 0xba, 0xb3, 0xa9, 0x6c, 0x0f, 0x0d, 0xbe,
+ 0x0e, 0x4e, 0xe9, 0x5a, 0x9c, 0x45, 0x38, 0x31, 0x93, 0x10, 0xb9, 0x20,
+ 0x45, 0x10, 0x00, 0x61, 0x75, 0x6b, 0xbd, 0x45, 0xe0, 0x16, 0x30, 0x4d,
+ 0xa1, 0x86, 0x24, 0x7e, 0xb1, 0xd2, 0x17, 0xe9, 0xc8, 0x9f, 0x9a, 0x6d,
+ 0xc1, 0xec, 0xa8, 0xce, 0x26, 0xf5, 0xf5, 0x88, 0xb7, 0x09, 0xf2, 0x21,
+ 0x9d, 0x10, 0x59, 0xb8, 0x40, 0xe4, 0xd2, 0x87, 0xb6, 0x8d, 0x10, 0x86,
+ 0x71, 0x15, 0x0d, 0x58, 0x3b, 0xd7, 0xa0, 0xb5, 0x28, 0x3b, 0x5b, 0xc9,
+ 0xdc, 0x2f, 0x91, 0x99, 0xa3, 0x7b, 0xd5, 0x0a, 0xad, 0x4b, 0x1f, 0xaf,
+ 0xee, 0x15, 0x46, 0xff, 0xc7, 0x0f, 0x78, 0x54, 0x4a, 0x95, 0x55, 0x47,
+ 0x0e, 0x3d, 0x74, 0x47, 0x46, 0x45, 0x83, 0x8c, 0x41, 0xa5, 0x94, 0x3f,
+ 0x86, 0x7f, 0xb2, 0x90, 0x12, 0xe4, 0xa0, 0x7f, 0xe4, 0x68, 0x09, 0xe5,
+ 0xc7, 0x5b, 0xb5, 0x23, 0xd7, 0xa3, 0x44, 0xa3, 0xa9, 0x8b, 0x5b, 0x6c,
+ 0x27, 0x31, 0x9e, 0x91, 0xae, 0x46, 0x67, 0x76, 0xb0, 0x7f, 0x69, 0x21,
+ 0x6e, 0xfb, 0xe0, 0xd9, 0x20, 0xa2, 0x96, 0x0f, 0x96, 0xe4, 0x99, 0x23,
+ 0x1c, 0xa8, 0x6c, 0xea, 0x4a, 0x91, 0x33, 0xe5, 0x0e, 0x9f, 0x5f, 0x12,
+ 0x5b, 0xfa, 0x74, 0xc4, 0x99, 0x85, 0xd6, 0x24, 0x5e, 0x9a, 0xac, 0x6b,
+ 0x4d, 0x53, 0xac, 0x6c, 0x53, 0x88, 0x39, 0x3e, 0x70, 0xd2, 0x88, 0x39,
+ 0x2d, 0xfa, 0x45, 0xcb, 0xcf, 0xf6, 0xa8, 0xfe, 0xc3, 0x74, 0x56, 0x8d,
+ 0x65, 0xfd, 0x17, 0x7d, 0x11, 0x11, 0xff, 0xb4, 0x42, 0xa7, 0x1f, 0xf7,
+ 0xe9, 0x95, 0xf0, 0x74, 0xf0, 0x5b, 0xbb, 0x75, 0xa0, 0xb6, 0x52, 0x8a,
+ 0xb8, 0x5f, 0x7b, 0x0c, 0xdc, 0xcc, 0x8a, 0xee, 0x6c, 0x1b, 0x23, 0x3b,
+ 0xeb, 0x65, 0xc5, 0x75, 0x67, 0x1f, 0x56, 0xf7, 0xd4, 0x83, 0x63, 0xdb,
+ 0x23, 0x6a, 0xa5, 0x36, 0x35, 0xf8, 0x8a, 0x5e, 0xd9, 0x21, 0xfa, 0xbd,
+ 0x92, 0x1f, 0x76, 0xfb, 0xe4, 0x3a, 0xf5, 0x0b, 0x7b, 0xc5, 0xed, 0x3d,
+ 0xa6, 0x4f, 0xbf, 0xfc, 0x5e, 0xeb, 0x5c, 0x6c, 0xdd, 0xab, 0xac, 0x75,
+ 0x57, 0x3d, 0x46, 0xd8, 0x3f, 0x70, 0x95, 0xb5, 0x6e, 0xab, 0x87, 0xcf,
+ 0xec, 0xaa, 0xab, 0x6c, 0x2f, 0x26, 0x42, 0x48, 0x3e, 0x7c, 0x48, 0x17,
+ 0x0b, 0x11, 0x3b, 0x8f, 0x18, 0x3b, 0x93, 0xd7, 0x60, 0xbb, 0x0b, 0x95,
+ 0x3c, 0xd7, 0x4b, 0x37, 0x7b, 0xb5, 0xfc, 0xc8, 0x1e, 0x2e, 0xc6, 0x32,
+ 0xa6, 0xd5, 0x03, 0xcd, 0x71, 0xb9, 0x67, 0x99, 0xc1, 0x9d, 0xd1, 0xe8,
+ 0x9b, 0x9d, 0xac, 0x99, 0x58, 0x09, 0xb8, 0xe3, 0x20, 0x53, 0x52, 0x56,
+ 0xf5, 0x41, 0x85, 0x06, 0x32, 0x18, 0xd5, 0x3c, 0x68, 0x1e, 0xac, 0x8b,
+ 0xf1, 0xb1, 0xd3, 0xd0, 0xb6, 0x50, 0x7e, 0x97, 0x81, 0x12, 0xf5, 0x9f,
+ 0xfd, 0x8c, 0x8c, 0xca, 0xdd, 0x80, 0xe8, 0x3a, 0xdd, 0xf2, 0xeb, 0x9b,
+ 0x13, 0xdb, 0xa6, 0x3d, 0xc6, 0xe8, 0x88, 0xc8, 0xec, 0x26, 0xb4, 0xc4,
+ 0x72, 0xf1, 0x7f, 0x68, 0x61, 0x61, 0xf7, 0x73, 0xe0, 0x0c, 0xe8, 0x92,
+ 0x87, 0xbb, 0xbc, 0x20, 0x1b, 0x97, 0xcd, 0xd8, 0x87, 0xfb, 0xcc, 0x5d,
+ 0xe6, 0x82, 0x72, 0xdd, 0x0e, 0x8b, 0xb3, 0x95, 0xcb, 0xc1, 0x3c, 0xb6,
+ 0xcf, 0x2e, 0x85, 0x49, 0x3b, 0x81, 0x3e, 0xc3, 0x65, 0x68, 0x4b, 0xa7,
+ 0x8f, 0xb3, 0xeb, 0xbc, 0x78, 0x94, 0xef, 0x47, 0xf1, 0x0d, 0xe9, 0x8c,
+ 0xeb, 0x51, 0xda, 0x46, 0x25, 0x8b, 0x8b, 0x43, 0x18, 0x94, 0xb9, 0xff,
+ 0xa0, 0x98, 0x48, 0x85, 0x7a, 0x90, 0x44, 0x85, 0xe7, 0x10, 0x9d, 0xa8,
+ 0xc7, 0x82, 0x40, 0x10, 0xf9, 0x64, 0x49, 0x29, 0xcc, 0x91, 0xe2, 0x74,
+ 0x81, 0x97, 0xc3, 0x28, 0x01, 0x9c, 0xba, 0x70, 0x4b, 0x31, 0xcd, 0x15,
+ 0x6b, 0x61, 0x75, 0xbd, 0x15, 0x93, 0x4d, 0x95, 0xcb, 0xb1, 0x37, 0xa4,
+ 0x08, 0xbc, 0x3e, 0xff, 0xa0, 0x98, 0x32, 0x22, 0x6e, 0x51, 0x7b, 0xe9,
+ 0xb0, 0xd8, 0x26, 0xbc, 0x51, 0xfb, 0x7a, 0x3e, 0xfa, 0xc9, 0xa3, 0xb7,
+ 0x02, 0x53, 0x90, 0xc9, 0xd4, 0x0a, 0x8f, 0x9a, 0x22, 0x65, 0x29, 0x50,
+ 0xc9, 0xbf, 0x4c, 0x27, 0x96, 0x9d, 0xfb, 0xa1, 0xde, 0xa5, 0x5c, 0x94,
+ 0xa2, 0x33, 0x0b, 0x2e, 0xb7, 0xdb, 0xde, 0x32, 0x80, 0x96, 0x3c, 0x4a,
+ 0xc4, 0xe7, 0x42, 0x0b, 0xa3, 0x29, 0x51, 0x89, 0x3f, 0x5b, 0x14, 0xbf,
+ 0x12, 0x19, 0xf5, 0x08, 0xad, 0x34, 0x6a, 0xa4, 0xa1, 0xab, 0xe8, 0xf9,
+ 0xe3, 0x8f, 0xcf, 0xef, 0x72, 0xe4, 0x19, 0xe1, 0x43, 0x8a, 0x4a, 0xf4,
+ 0xe8, 0x3c, 0xda, 0x40, 0xae, 0xb0, 0x02, 0x0c, 0x66, 0x70, 0x40, 0xa1,
+ 0x8e, 0x88, 0x60, 0x3f, 0xfb, 0xac, 0x2e, 0x1f, 0xd6, 0x0c, 0x38, 0xb9,
+ 0x9c, 0xc5, 0x81, 0x40, 0x8e, 0x89, 0x70, 0x54, 0x59, 0x6c, 0x8d, 0x8a,
+ 0x4c, 0xa7, 0xa7, 0xc9, 0x1e, 0x75, 0xd3, 0xd0, 0xf5, 0x1f, 0x3f, 0x33,
+ 0xac, 0xb1, 0xb9, 0x19, 0xc6, 0x3f, 0xc3, 0xa3, 0xa3, 0x49, 0xac, 0x0c,
+ 0x7b, 0x02, 0x42, 0xf1, 0x31, 0xdb, 0x88, 0xbc, 0x61, 0x91, 0xd3, 0x0a,
+ 0x2e, 0x57, 0x55, 0xd5, 0x9d, 0x21, 0xe0, 0xdc, 0x8c, 0x94, 0xf2, 0x04,
+ 0xda, 0x42, 0x32, 0xf8, 0xd5, 0x2f, 0x0d, 0xd3, 0x84, 0xb4, 0x8c, 0xc1,
+ 0x43, 0xbe, 0x58, 0xb8, 0xad, 0xc9, 0x6f, 0x0d, 0x08, 0xde, 0x2d, 0xc6,
+ 0x35, 0x9b, 0xda, 0xa0, 0x94, 0x18, 0xaa, 0x4a, 0x3e, 0x7a, 0xb0, 0xbe,
+ 0x39, 0xe5, 0x2c, 0xfe, 0x1d, 0x09, 0xeb, 0x3e, 0xa5, 0xe6, 0x14, 0xc4,
+ 0xe0, 0xd5, 0x75, 0x8a, 0x7b, 0x48, 0x8b, 0xca, 0x97, 0x42, 0x6b, 0xd8,
+ 0x2e, 0x7f, 0xc5, 0xb5, 0x2d, 0x1c, 0xa0, 0xd6, 0xec, 0xff, 0x32, 0xc8,
+ 0xdb, 0x21, 0x5d, 0x0f, 0x51, 0x47, 0xf6, 0xc7, 0x1b, 0x4b, 0x2b, 0x95,
+ 0x14, 0xbc, 0xc2, 0x48, 0x85, 0x86, 0x1d, 0xd0, 0x9c, 0x2e, 0x69, 0xfa,
+ 0x92, 0x8f, 0x97, 0x0d, 0x05, 0x1a, 0x1d, 0x9f, 0x59, 0x04, 0x94, 0x2e,
+ 0x59, 0x40, 0xf8, 0x9a, 0x4d, 0x67, 0xfc, 0x34, 0xbd, 0x1e, 0x96, 0x55,
+ 0x4e, 0x37, 0x0e, 0x70, 0x70, 0xda, 0x18, 0xed, 0xfc, 0x3e, 0x24, 0x0a,
+ 0xd9, 0x14, 0xb1, 0xe6, 0x34, 0xf4, 0xc2, 0x64, 0x6a, 0x49, 0xd8, 0xf4,
+ 0x1c, 0xfb, 0x95, 0x7e, 0x67, 0x5b, 0xd5, 0x5a, 0x67, 0xb1, 0x08, 0x25,
+ 0x27, 0xd4, 0xb8, 0xca, 0x4f, 0x8a, 0x18, 0xb0, 0xa3, 0x75, 0x03, 0xa5,
+ 0xc8, 0x98, 0xd9, 0x78, 0x15, 0x92, 0x43, 0x43, 0x0f, 0x45, 0x5e, 0xd7,
+ 0x4b, 0x2c, 0xd8, 0x9b, 0x93, 0xd3, 0x63, 0x0b, 0x0a, 0xfa, 0xdf, 0x3b,
+ 0x43, 0x9a, 0xf2, 0x6a, 0x12, 0x40, 0xa0, 0x38, 0x29, 0xcb, 0xcb, 0xb0,
+ 0x93, 0xac, 0xad, 0x6f, 0xfb, 0x5c, 0x26, 0x07, 0x3f, 0x6e, 0xa5, 0x6c,
+ 0x1d, 0xbf, 0xfb, 0xee, 0xe4, 0xe2, 0xec, 0xdd, 0xdb, 0xe3, 0x77, 0xd6,
+ 0xdb, 0x4b, 0x87, 0x22, 0xc6, 0x75, 0x5b, 0x87, 0x21, 0xdf, 0x9c, 0xe2,
+ 0x05, 0x44, 0xb8, 0x88, 0xfa, 0x5e, 0x44, 0xb5, 0xb1, 0x58, 0xc8, 0xbf,
+ 0x86, 0x7e, 0x73, 0xde, 0x43, 0xea, 0xf1, 0xa5, 0x40, 0xfc, 0x82, 0xcc,
+ 0xfd, 0x29, 0x05, 0xde, 0x86, 0xec, 0x23, 0xb6, 0x85, 0xc6, 0x88, 0x6e,
+ 0xf7, 0xd3, 0x24, 0x93, 0x32, 0xab, 0x54, 0x54, 0x6a, 0xc3, 0x4e, 0x09,
+ 0x87, 0x89, 0x5c, 0x30, 0xad, 0xd5, 0x09, 0xb7, 0xb9, 0xdf, 0xd7, 0x82,
+ 0xd5, 0x4a, 0xa2, 0xa3, 0x61, 0x00, 0xb8, 0x5f, 0x85, 0xf2, 0x26, 0xad,
+ 0x9d, 0x7b, 0x5e, 0xb8, 0xb6, 0xdd, 0x0d, 0xe8, 0x12, 0x6e, 0xfd, 0x9a,
+ 0x68, 0xdd, 0xb8, 0x9f, 0x37, 0x8a, 0x1f, 0xd5, 0x87, 0x70, 0xb0, 0xb3,
+ 0xf3, 0x33, 0x8a, 0xf1, 0x7d, 0x29, 0xd5, 0xf8, 0x42, 0x42, 0xb4, 0xda,
+ 0xeb, 0x86, 0xcb, 0xb8, 0xd0, 0x14, 0x1e, 0xda, 0xb7, 0x76, 0x3a, 0xe1,
+ 0x1c, 0xfc, 0x70, 0x7e, 0x71, 0xf6, 0xc3, 0x5f, 0x7e, 0xe3, 0x4f, 0x78,
+ 0x58, 0x9d, 0x1f, 0x09, 0xc2, 0xa6, 0x8d, 0xff, 0xfc, 0x9b, 0x7f, 0xad,
+ 0xdd, 0x7c, 0xdf, 0x2b, 0x19, 0x1b, 0xad, 0x17, 0xcc, 0x6c, 0xe9, 0x79,
+ 0xad, 0xf1, 0x0a, 0xf9, 0x81, 0xb3, 0x7d, 0x2d, 0x8c, 0x06, 0x97, 0x5c,
+ 0xdd, 0xde, 0xa0, 0x5d, 0x37, 0x1d, 0xd8, 0x1e, 0x90, 0x9e, 0xe7, 0x00,
+ 0x90, 0x7d, 0xc9, 0xd3, 0xa4, 0x44, 0xcc, 0x3e, 0x12, 0xfc, 0x00, 0xe7,
+ 0xb3, 0xf3, 0x71, 0x78, 0x7a, 0xfa, 0x9b, 0x4e, 0x02, 0x0a, 0x9a, 0xb9,
+ 0xb1, 0x0c, 0xac, 0x8e, 0xaa, 0x0c, 0xf6, 0xeb, 0x79, 0xe9, 0xde, 0x9d,
+ 0x49, 0x6f, 0x5e, 0x42, 0x3d, 0x1e, 0xd4, 0x99, 0x51, 0x6a, 0xa9, 0x86,
+ 0x74, 0x32, 0x23, 0x44, 0x8c, 0xb1, 0xb6, 0xa9, 0x63, 0x41, 0xe5, 0x32,
+ 0xfc, 0x12, 0x5e, 0x71, 0x5b, 0xc8, 0x51, 0xf4, 0x64, 0xce, 0x26, 0x02,
+ 0xdc, 0xbb, 0xb4, 0x14, 0x1f, 0x5c, 0x54, 0x91, 0xcb, 0x6b, 0x5e, 0x45,
+ 0xaa, 0xb6, 0xe1, 0x52, 0xa0, 0x6b, 0xb6, 0xca, 0xeb, 0x8f, 0x80, 0xc2,
+ 0xd3, 0xc1, 0x84, 0xb2, 0xab, 0xb9, 0xb0, 0xa4, 0xeb, 0xa2, 0x2b, 0xf1,
+ 0xe4, 0xd0, 0xe8, 0xb9, 0x94, 0xe4, 0x54, 0x5b, 0xc7, 0x51, 0xb7, 0x05,
+ 0x4d, 0x4b, 0x06, 0xba, 0x60, 0xf2, 0xec, 0x86, 0xfe, 0x12, 0xa5, 0x44,
+ 0xd0, 0x08, 0xab, 0xc8, 0xf6, 0x04, 0xe7, 0x15, 0x97, 0x9d, 0x34, 0x62,
+ 0xc3, 0xab, 0x52, 0x3e, 0x26, 0x32, 0xdb, 0x3a, 0xc1, 0xaf, 0x58, 0xf1,
+ 0xf4, 0xb3, 0xd0, 0xf5, 0xba, 0x1b, 0x7c, 0x92, 0xe3, 0x6e, 0x36, 0x02,
+ 0xcf, 0x92, 0x9f, 0x01, 0x1f, 0xc6, 0xbf, 0xcc, 0x63, 0xb1, 0xc6, 0x52,
+ 0xb8, 0x20, 0x04, 0xd9, 0xdd, 0x10, 0x14, 0xb1, 0xc1, 0xf5, 0xc6, 0xcf,
+ 0xce, 0xa2, 0xb5, 0x9c, 0x7e, 0x9f, 0xde, 0x91, 0x13, 0x94, 0xc9, 0x0f,
+ 0xfc, 0xf6, 0x56, 0xf5, 0xcf, 0xf1, 0xc0, 0x64, 0xb1, 0x20, 0x48, 0x14,
+ 0x09, 0xd1, 0xd9, 0x7f, 0xb2, 0x01, 0x99, 0x08, 0x81, 0x01, 0xfc, 0xe3,
+ 0xcc, 0x4b, 0x62, 0x73, 0x91, 0xcf, 0xe4, 0xa4, 0x8b, 0x59, 0x14, 0xff,
+ 0x37, 0x5d, 0xa0, 0x8c, 0x90, 0x63, 0x30, 0xb6, 0x05, 0x49, 0x6b, 0x95,
+ 0x74, 0x49, 0xaa, 0xa6, 0x76, 0x39, 0xa9, 0x5c, 0x82, 0x0c, 0x41, 0x26,
+ 0xee, 0x64, 0x56, 0x42, 0xc0, 0x8f, 0x09, 0xe4, 0x9b, 0x61, 0xc3, 0xf2,
+ 0x11, 0x33, 0xff, 0xbd, 0x3c, 0x3b, 0x3a, 0x3b, 0x35, 0x7f, 0x39, 0x7e,
+ 0x73, 0xf2, 0x83, 0xbb, 0x85, 0x39, 0xc3, 0xba, 0x85, 0xe7, 0x77, 0x25,
+ 0x42, 0xed, 0xb1, 0x67, 0x24, 0x56, 0x8c, 0xba, 0xa3, 0x43, 0x3d, 0xe7,
+ 0xc9, 0x15, 0x29, 0xf4, 0xd9, 0x2a, 0xda, 0x29, 0xec, 0x21, 0xa4, 0xb5,
+ 0x72, 0xcb, 0x16, 0xfb, 0xed, 0xa6, 0x9a, 0x52, 0x3a, 0x7c, 0xb1, 0x22,
+ 0xe0, 0x39, 0x9f, 0x2d, 0x24, 0xf1, 0x8f, 0x93, 0x74, 0xae, 0xac, 0x6c,
+ 0x09, 0xa9, 0xc6, 0x2f, 0x50, 0xd8, 0x21, 0xbe, 0xf6, 0x48, 0x06, 0x8d,
+ 0x46, 0xe9, 0x0f, 0x52, 0x95, 0x4b, 0x63, 0xb0, 0x64, 0x90, 0x42, 0x20,
+ 0x2f, 0xa0, 0x55, 0xf5, 0xd3, 0xd4, 0x3b, 0xfb, 0x02, 0x09, 0x05, 0xb6,
+ 0xc5, 0xf6, 0x98, 0x64, 0x02, 0x04, 0xd1, 0x84, 0xe8, 0x3f, 0x2a, 0xad,
+ 0x1f, 0xb4, 0xee, 0x59, 0x33, 0x53, 0xd1, 0xec, 0x26, 0xce, 0xaa, 0xa0,
+ 0x3f, 0xc0, 0xc6, 0x0d, 0x4f, 0xb2, 0xc8, 0x31, 0xbf, 0x16, 0x3c, 0xcb,
+ 0x60, 0x09, 0x01, 0xf0, 0x07, 0x43, 0x7a, 0xe5, 0x56, 0xf8, 0x99, 0x3e,
+ 0x5a, 0xaf, 0xf9, 0xaa, 0x0e, 0xdf, 0x7e, 0x36, 0x80, 0x87, 0x72, 0x51,
+ 0xd0, 0x75, 0x4d, 0x90, 0xee, 0xf5, 0xb7, 0x65, 0x7e, 0x9b, 0x22, 0x09,
+ 0x86, 0xca, 0xd8, 0x4a, 0x25, 0xd1, 0x4e, 0x1b, 0xe9, 0xaf, 0x6a, 0x24,
+ 0x6d, 0xb7, 0xf2, 0xec, 0xd7, 0x34, 0xf2, 0xac, 0xd3, 0xc6, 0xcd, 0xaf,
+ 0x6a, 0xc4, 0x56, 0x13, 0x37, 0x2a, 0xe8, 0x0f, 0x27, 0x97, 0xc9, 0xd1,
+ 0xd9, 0x6b, 0x77, 0xb4, 0x2e, 0x2d, 0xcc, 0x34, 0x4d, 0xc6, 0xcb, 0xc2,
+ 0xec, 0x3e, 0x22, 0x6b, 0x47, 0x05, 0x32, 0xa8, 0xe9, 0x00, 0x9f, 0x26,
+ 0x00, 0x44, 0xd4, 0x4a, 0xdd, 0x72, 0x93, 0xe5, 0xf8, 0x51, 0xc5, 0x28,
+ 0x07, 0x9f, 0x9c, 0x50, 0x1e, 0x9f, 0x13, 0x4d, 0xc7, 0xb5, 0x65, 0x83,
+ 0xc5, 0xa1, 0x24, 0xb6, 0xa6, 0xb4, 0xd2, 0x1c, 0xb8, 0x71, 0x4a, 0x7c,
+ 0x1c, 0x05, 0x67, 0x72, 0x19, 0x23, 0xa4, 0xcd, 0x90, 0xb9, 0xe1, 0x67,
+ 0xfa, 0xfa, 0x44, 0x99, 0x46, 0x55, 0xcd, 0x1b, 0xe9, 0x4d, 0x0b, 0xd9,
+ 0xb5, 0xa7, 0xc8, 0xe4, 0xd6, 0x46, 0x97, 0x1a, 0x18, 0xb8, 0x01, 0x09,
+ 0x85, 0x3a, 0xd5, 0x24, 0x1e, 0xa9, 0xfa, 0x62, 0xed, 0x05, 0x2e, 0x90,
+ 0x17, 0x5c, 0x4e, 0xb6, 0x09, 0xfb, 0x9d, 0x7d, 0xfe, 0xe3, 0x4d, 0x8a,
+ 0x7a, 0xf2, 0x46, 0x6c, 0x08, 0xce, 0x27, 0xff, 0xbb, 0xa7, 0x0f, 0x3f,
+ 0xb1, 0xea, 0x8f, 0x19, 0xf9, 0x0c, 0x55, 0xd7, 0xa6, 0x7c, 0x22, 0xea,
+ 0xfb, 0xa2, 0x49, 0x3f, 0xc1, 0xfe, 0x25, 0x73, 0x45, 0x18, 0x49, 0xdc,
+ 0x9b, 0x4f, 0x45, 0x09, 0x4a, 0x2c, 0xef, 0x09, 0xc0, 0x34, 0x9a, 0x56,
+ 0xe5, 0x41, 0x37, 0xc4, 0x4f, 0x60, 0x7a, 0xa0, 0x49, 0x9d, 0x88, 0x35,
+ 0x65, 0x35, 0xd5, 0x82, 0xdb, 0x88, 0x86, 0xd5, 0xed, 0x67, 0x35, 0x3d,
+ 0xb4, 0xac, 0x04, 0x06, 0xe2, 0xca, 0x99, 0x38, 0xc2, 0x0a, 0xaa, 0xe0,
+ 0xce, 0x93, 0x36, 0x88, 0x72, 0xff, 0x23, 0x99, 0x16, 0x79, 0x63, 0x92,
+ 0x79, 0x25, 0x9a, 0xfe, 0xb4, 0xc4, 0x4c, 0xf6, 0x81, 0x6b, 0xa4, 0xca,
+ 0x94, 0xe6, 0x17, 0xf7, 0x5c, 0x47, 0x25, 0x2d, 0x90, 0x20, 0xd5, 0xc5,
+ 0x69, 0xea, 0xc2, 0x48, 0xfe, 0x88, 0x4b, 0xd5, 0x78, 0xc6, 0x7f, 0x1c,
+ 0xa9, 0xc6, 0xa4, 0x05, 0xb2, 0xb5, 0x04, 0x32, 0xbc, 0x19, 0x52, 0xd8,
+ 0x40, 0x34, 0x0e, 0xbe, 0xee, 0x26, 0x7c, 0x23, 0xa1, 0x10, 0xc4, 0x38,
+ 0xe4, 0xa6, 0xac, 0x3b, 0xfe, 0xc5, 0xe7, 0x2b, 0xbe, 0xc3, 0xe4, 0x24,
+ 0x97, 0x96, 0x26, 0xa5, 0xeb, 0xcd, 0xa7, 0xf6, 0xc3, 0xd6, 0x3e, 0xeb,
+ 0x6e, 0x11, 0x75, 0xae, 0x13, 0x87, 0x5d, 0xe9, 0xc7, 0xd8, 0x3e, 0x17,
+ 0x2f, 0x40, 0x46, 0xd9, 0x56, 0xa2, 0xb6, 0x56, 0xd9, 0x62, 0x26, 0xe2,
+ 0x53, 0x7e, 0x82, 0x50, 0x1e, 0xec, 0x78, 0xcc, 0xf3, 0x44, 0x7b, 0x69,
+ 0x14, 0x51, 0xdf, 0x08, 0x7b, 0x21, 0x9f, 0x25, 0xde, 0x0c, 0x56, 0x25,
+ 0x08, 0x9f, 0x5e, 0xe4, 0x76, 0xeb, 0x49, 0xd1, 0x42, 0xfc, 0x88, 0xb0,
+ 0x67, 0x48, 0x47, 0xd7, 0x7f, 0xcb, 0x1b, 0x01, 0x69, 0x53, 0xc7, 0x8d,
+ 0x4b, 0xa3, 0x5d, 0x56, 0x9c, 0x6d, 0xe8, 0x88, 0xca, 0x80, 0xeb, 0x4d,
+ 0x8b, 0x86, 0x87, 0x4b, 0x78, 0x60, 0x22, 0xb3, 0x49, 0xde, 0x86, 0x80,
+ 0x9e, 0xf2, 0x8a, 0xaa, 0x6b, 0x71, 0xd2, 0x30, 0xc1, 0xc6, 0x78, 0x7e,
+ 0x6e, 0xd2, 0xe2, 0x3a, 0x63, 0x25, 0xd7, 0x35, 0x8a, 0xbd, 0xae, 0x17,
+ 0xa3, 0x39, 0xf6, 0x70, 0xaf, 0xac, 0x4c, 0x9b, 0x77, 0xf3, 0xb0, 0xb7,
+ 0x6b, 0xe7, 0x81, 0x06, 0x45, 0xd4, 0x07, 0x58, 0x09, 0x2a, 0xf0, 0x41,
+ 0x2e, 0x83, 0xbb, 0x14, 0xe2, 0xc4, 0xd6, 0xc4, 0x74, 0xe6, 0x82, 0x0d,
+ 0x82, 0x50, 0x32, 0x4d, 0x08, 0x62, 0x45, 0x0a, 0x3a, 0xe1, 0x12, 0x48,
+ 0x33, 0x60, 0x14, 0x1e, 0xe7, 0x65, 0xc9, 0xe5, 0xd5, 0x87, 0x29, 0x0d,
+ 0x01, 0x68, 0xe1, 0x6a, 0x58, 0x3b, 0x82, 0xf4, 0x6f, 0xc4, 0xc2, 0x82,
+ 0xcc, 0xc0, 0xe2, 0x45, 0xd7, 0x09, 0xbc, 0xcf, 0x9c, 0x9f, 0xde, 0x78,
+ 0xf6, 0xec, 0x78, 0xee, 0xb0, 0x51, 0xce, 0x0f, 0x47, 0x23, 0xdd, 0x26,
+ 0x47, 0xe1, 0x8e, 0x10, 0xe0, 0x0f, 0xe5, 0xe0, 0x2b, 0x35, 0x49, 0x44,
+ 0x75, 0x94, 0x46, 0x3a, 0x41, 0xdf, 0x3d, 0x16, 0x6f, 0xaf, 0x59, 0x46,
+ 0x43, 0xaf, 0x90, 0xf1, 0xf2, 0xbe, 0xd2, 0x11, 0xdf, 0xad, 0x9f, 0xc9,
+ 0x78, 0xb1, 0x61, 0x4c, 0x2b, 0xe6, 0x19, 0x59, 0x94, 0x2a, 0xee, 0xc9,
+ 0x0b, 0x6b, 0x04, 0x50, 0xbb, 0x84, 0xe5, 0xde, 0x93, 0x70, 0xd0, 0xdf,
+ 0xf1, 0xa8, 0xfa, 0xff, 0xd0, 0xa0, 0xbf, 0x8b, 0x0c, 0xfa, 0xa9, 0x3b,
+ 0x38, 0xfc, 0xb1, 0x64, 0x7f, 0xff, 0x33, 0x05, 0xc8, 0x33, 0xe1, 0xff,
+ 0x2c, 0x71, 0x1f, 0xf4, 0xbe, 0x68, 0x9e, 0x1b, 0x08, 0xf7, 0x67, 0x16,
+ 0x58, 0x91, 0xf6, 0xf0, 0x7a, 0x9f, 0x7a, 0x66, 0x3f, 0x65, 0x54, 0xf1,
+ 0x4d, 0x94, 0xef, 0x16, 0x29, 0x13, 0x08, 0x1f, 0x65, 0x47, 0x22, 0x0c,
+ 0xca, 0x1d, 0xe1, 0x59, 0x56, 0xc6, 0xf3, 0xb5, 0x17, 0xde, 0x77, 0x9e,
+ 0x5b, 0x07, 0xc6, 0xce, 0x3e, 0xef, 0x49, 0x4a, 0x08, 0x97, 0x3a, 0xc1,
+ 0xd8, 0x99, 0xd3, 0xac, 0x31, 0x6b, 0xe2, 0x1c, 0x6f, 0x9c, 0x2c, 0x74,
+ 0x55, 0xa5, 0x60, 0x0e, 0x45, 0x71, 0xe2, 0xe1, 0x0a, 0x6e, 0x5a, 0x36,
+ 0x5f, 0x52, 0xea, 0x7d, 0x41, 0x66, 0x03, 0xd4, 0x02, 0x71, 0x58, 0x91,
+ 0x07, 0x14, 0x95, 0xa0, 0xaf, 0xac, 0x93, 0x54, 0xab, 0x13, 0xf7, 0x83,
+ 0x19, 0xe2, 0x41, 0xf2, 0x91, 0x11, 0x95, 0x21, 0x4e, 0x73, 0xb4, 0xf7,
+ 0x99, 0x5b, 0x22, 0xb7, 0x0e, 0xe4, 0x53, 0x12, 0x76, 0x83, 0xa1, 0x27,
+ 0xbd, 0xad, 0x3c, 0x51, 0x7f, 0xbc, 0x90, 0xda, 0x07, 0xfb, 0x52, 0x5e,
+ 0x75, 0x5f, 0x61, 0x79, 0x7c, 0x4e, 0xe2, 0x4e, 0xf8, 0x23, 0x87, 0xc9,
+ 0x19, 0x3c, 0x60, 0x2d, 0xce, 0xdc, 0x2b, 0xde, 0xfc, 0x2e, 0xdf, 0xad,
+ 0xbd, 0x75, 0x5f, 0xb8, 0x35, 0xd6, 0x2e, 0x29, 0x1c, 0x61, 0x47, 0xc5,
+ 0xac, 0xbd, 0x52, 0xd4, 0xd3, 0x9b, 0x25, 0x17, 0xc7, 0x97, 0x17, 0x40,
+ 0x53, 0x41, 0x04, 0x04, 0x85, 0x15, 0xd2, 0x6a, 0xdb, 0xf2, 0x2c, 0x8a,
+ 0x40, 0x73, 0x4a, 0x89, 0x13, 0x11, 0x4c, 0xc6, 0x63, 0x57, 0x9c, 0xff,
+ 0xa9, 0xef, 0x71, 0x3e, 0x80, 0x59, 0x73, 0x9e, 0x72, 0x17, 0x4b, 0x69,
+ 0xd3, 0x04, 0xed, 0xef, 0x3b, 0x5c, 0x08, 0x17, 0x5b, 0xe3, 0x9b, 0xd4,
+ 0x22, 0x7d, 0x87, 0x16, 0x72, 0xa0, 0xf8, 0x78, 0xa5, 0xc7, 0xa6, 0xe7,
+ 0x18, 0x2d, 0x1b, 0x04, 0x8c, 0xed, 0xc7, 0x45, 0x0b, 0x90, 0x4e, 0xd8,
+ 0x8c, 0x68, 0x7c, 0xce, 0x53, 0x37, 0x85, 0xfb, 0xd0, 0xe8, 0x44, 0xbb,
+ 0xbb, 0x11, 0x2c, 0x67, 0x3a, 0x36, 0x62, 0x55, 0x54, 0x3b, 0xc9, 0x73,
+ 0xc0, 0x5b, 0xec, 0xb1, 0x84, 0xae, 0x59, 0x93, 0xe1, 0x31, 0xb8, 0x22,
+ 0x17, 0x22, 0xcd, 0x98, 0x33, 0x32, 0xec, 0x40, 0x59, 0xca, 0x7c, 0x8f,
+ 0xbc, 0x0b, 0x9d, 0xb4, 0x8e, 0x78, 0xe1, 0xa4, 0x0c, 0xad, 0xe6, 0x95,
+ 0x7a, 0xdc, 0xa2, 0xe2, 0x7b, 0x0e, 0x7a, 0x16, 0x48, 0xf0, 0xfd, 0x67,
+ 0xe1, 0x8e, 0x18, 0x5d, 0x9e, 0x5d, 0xc8, 0x0e, 0x0b, 0x2f, 0x67, 0xb6,
+ 0x1c, 0xf1, 0x88, 0x23, 0x8a, 0xe8, 0x47, 0xaa, 0x89, 0xdb, 0xd4, 0x66,
+ 0xcb, 0xc9, 0xe7, 0x7d, 0x95, 0x65, 0xc0, 0x05, 0x25, 0xe7, 0xc8, 0xd0,
+ 0xbe, 0x93, 0x64, 0x66, 0xe5, 0x9f, 0xd4, 0x93, 0xe9, 0xbd, 0xc4, 0x07,
+ 0xed, 0x8c, 0x4f, 0x30, 0x27, 0xde, 0xd2, 0x3e, 0x92, 0x14, 0x5c, 0xe2,
+ 0xaf, 0x14, 0x80, 0xa2, 0xad, 0x3b, 0xd4, 0xdd, 0x8b, 0x7c, 0x88, 0xce,
+ 0x2c, 0xc3, 0xa8, 0x0a, 0x79, 0xdd, 0x34, 0x9e, 0x91, 0x8c, 0x0a, 0x58,
+ 0x24, 0x2d, 0x98, 0x85, 0x53, 0xe0, 0x26, 0x29, 0x85, 0x85, 0xba, 0xab,
+ 0x3d, 0x31, 0xaa, 0xb2, 0x72, 0x0e, 0xca, 0xe5, 0xa9, 0xb6, 0x83, 0x53,
+ 0xbb, 0xdd, 0xcd, 0x7f, 0x7e, 0x76, 0x71, 0x69, 0xef, 0x7d, 0xfa, 0x2c,
+ 0x7e, 0xd0, 0x39, 0x3f, 0xc4, 0xf2, 0x2f, 0x79, 0x29, 0x72, 0xbb, 0xa1,
+ 0xae, 0xd8, 0x46, 0x34, 0x7f, 0x5a, 0x16, 0x05, 0xed, 0x68, 0x43, 0x44,
+ 0x86, 0x43, 0xac, 0xb0, 0x53, 0xa6, 0xe1, 0x48, 0x1d, 0xda, 0x5d, 0x7c,
+ 0xd8, 0x74, 0xe1, 0xc4, 0x6b, 0x49, 0x39, 0x25, 0xf7, 0xc9, 0x5e, 0xb8,
+ 0x3b, 0xc8, 0xa8, 0xbe, 0x38, 0xa6, 0xba, 0xf2, 0x97, 0x37, 0xfc, 0xb7,
+ 0xa0, 0xef, 0x9c, 0xd9, 0x28, 0x3f, 0x0c, 0xdd, 0x6a, 0x76, 0x77, 0x50,
+ 0x5c, 0xd0, 0x98, 0x1f, 0x68, 0xdf, 0xe6, 0xe7, 0x7a, 0x73, 0xf6, 0xc4,
+ 0xc3, 0x80, 0x41, 0x6c, 0xca, 0x5e, 0x01, 0x56, 0x16, 0x3f, 0xe8, 0xc9,
+ 0x57, 0x7a, 0x46, 0x39, 0xe3, 0x23, 0xd1, 0x62, 0x14, 0x7e, 0xf2, 0xd4,
+ 0xb5, 0xb0, 0xa0, 0xfb, 0x4a, 0x1a, 0x38, 0xd1, 0xd2, 0x5d, 0xf4, 0xc3,
+ 0x81, 0x6e, 0x17, 0x5c, 0x19, 0xbc, 0x31, 0xf8, 0x39, 0xd7, 0xce, 0x33,
+ 0x9b, 0x87, 0xaf, 0x0a, 0x83, 0xd7, 0x15, 0xfa, 0xb1, 0x82, 0x6f, 0xa0,
+ 0x73, 0x74, 0xb6, 0xdd, 0x13, 0xde, 0xed, 0x5f, 0xa5, 0xc8, 0xd5, 0x11,
+ 0x30, 0x19, 0x8f, 0xdd, 0xbb, 0x5b, 0x49, 0xe5, 0xca, 0x8b, 0x65, 0x06,
+ 0x4d, 0x2d, 0xad, 0x66, 0x44, 0x5f, 0x6e, 0x04, 0x09, 0xcc, 0x45, 0x7a,
+ 0x2b, 0x90, 0xba, 0xa5, 0xcf, 0x9f, 0xf1, 0x44, 0x6e, 0xa1, 0x93, 0xd3,
+ 0x63, 0xb7, 0x54, 0x4c, 0x7d, 0x8e, 0x83, 0xec, 0x34, 0x7e, 0x2a, 0xb7,
+ 0x69, 0xaf, 0x8a, 0x61, 0x72, 0x4e, 0x75, 0x14, 0xa1, 0x39, 0xd5, 0xff,
+ 0xee, 0x5a, 0xe3, 0x83, 0x02, 0x0f, 0xb8, 0xb9, 0x3c, 0x91, 0xad, 0x99,
+ 0x17, 0x66, 0x65, 0xf1, 0x13, 0xfa, 0xab, 0x47, 0xd3, 0x1b, 0x0c, 0xf7,
+ 0x85, 0x7b, 0xb9, 0x36, 0x23, 0x31, 0x76, 0x7b, 0xf7, 0x91, 0xa7, 0xb2,
+ 0xaf, 0x8c, 0x51, 0xcf, 0x35, 0xbb, 0x55, 0x34, 0xd3, 0x79, 0xd6, 0xa2,
+ 0xe1, 0xdc, 0xc2, 0x95, 0x3e, 0xd3, 0x12, 0xe1, 0x5e, 0x53, 0x7c, 0x21,
+ 0x1c, 0x8e, 0x6d, 0xe1, 0x0b, 0x02, 0x6f, 0x92, 0x3a, 0x67, 0xda, 0x2a,
+ 0x48, 0xda, 0xce, 0x2c, 0x02, 0xda, 0x8f, 0xc1, 0x62, 0x6a, 0x2d, 0xdd,
+ 0x4d, 0x77, 0x72, 0x3b, 0x45, 0x21, 0x9f, 0xf2, 0x4e, 0xb4, 0xdb, 0xc6,
+ 0xde, 0x61, 0xad, 0xde, 0x09, 0x6a, 0x54, 0x68, 0xbb, 0xc8, 0x8b, 0x40,
+ 0xfe, 0x78, 0x73, 0xc3, 0xfb, 0x26, 0xc0, 0xd3, 0x67, 0xae, 0xa9, 0x2b,
+ 0x70, 0x8f, 0xa8, 0x6c, 0x3f, 0x6c, 0xc9, 0x1f, 0xcb, 0x8c, 0x9e, 0xdb,
+ 0x27, 0xd9, 0x72, 0xe4, 0xd4, 0xd9, 0xc8, 0x91, 0xf2, 0xbe, 0xc1, 0x9b,
+ 0xe1, 0xb2, 0x24, 0xf2, 0x94, 0xe2, 0xde, 0x21, 0xa2, 0xa5, 0x90, 0x20,
+ 0xfb, 0xd1, 0xb8, 0xf6, 0x82, 0xfc, 0x46, 0x58, 0xd9, 0x6e, 0xc4, 0x5b,
+ 0x43, 0xb5, 0xc8, 0x02, 0xca, 0xdd, 0xe5, 0x5c, 0x90, 0x95, 0xde, 0x97,
+ 0x3e, 0x17, 0xd7, 0x06, 0x57, 0x6d, 0xb7, 0xce, 0x00, 0x5f, 0x90, 0x96,
+ 0x96, 0x68, 0x43, 0x43, 0xe9, 0x46, 0x3c, 0x12, 0xe6, 0xaf, 0xb6, 0xf4,
+ 0xd2, 0x11, 0xee, 0x37, 0xba, 0x8c, 0x45, 0xe5, 0xd5, 0x30, 0x73, 0xa9,
+ 0xa9, 0x91, 0x12, 0xa5, 0x97, 0xc7, 0xf8, 0x57, 0x4a, 0xf0, 0x10, 0x71,
+ 0x94, 0x57, 0xd9, 0x5f, 0xa1, 0x4e, 0x0e, 0xf9, 0xc2, 0xe1, 0x2c, 0x27,
+ 0x1e, 0x65, 0xb1, 0x4c, 0x3d, 0x9b, 0xfe, 0xe9, 0x0b, 0xf1, 0x5b, 0x89,
+ 0x5f, 0x44, 0x2b, 0x96, 0x76, 0xc3, 0x7b, 0xcf, 0xf6, 0xac, 0xef, 0x92,
+ 0x70, 0x8c, 0x82, 0xce, 0xf7, 0xd1, 0x8c, 0x46, 0xb8, 0x8d, 0x46, 0xdf,
+ 0x24, 0x6f, 0x5f, 0x3f, 0x23, 0x48, 0xcd, 0x75, 0x56, 0x2d, 0x8c, 0xd5,
+ 0xe2, 0x0c, 0xf3, 0xb3, 0x6f, 0xbd, 0xc6, 0xf6, 0x1d, 0xfa, 0x41, 0x81,
+ 0x16, 0x22, 0xcc, 0xc4, 0x6a, 0x30, 0x4b, 0x48, 0xe9, 0xa0, 0xd7, 0x7d,
+ 0x49, 0xed, 0x56, 0x1a, 0x32, 0xaf, 0x74, 0x77, 0xc0, 0x71, 0xd5, 0x11,
+ 0x60, 0xcf, 0x9e, 0x38, 0x01, 0x56, 0xdd, 0x2f, 0xa8, 0x58, 0x40, 0x71,
+ 0x4d, 0xc6, 0x41, 0xe4, 0x44, 0x3d, 0x63, 0xa1, 0x79, 0xc4, 0xe7, 0x9e,
+ 0x14, 0xd9, 0xf0, 0x35, 0x28, 0xe9, 0x70, 0xa0, 0x7a, 0xef, 0x3d, 0xf3,
+ 0x7d, 0x0b, 0xc4, 0xf7, 0x08, 0xa8, 0x12, 0xb3, 0xbc, 0x43, 0x4b, 0xf1,
+ 0x9e, 0x7d, 0x6e, 0x9f, 0x25, 0x47, 0x52, 0x5e, 0x78, 0x55, 0x39, 0x56,
+ 0xbc, 0x21, 0x0a, 0xb0, 0x9a, 0x09, 0xaa, 0x9a, 0xb1, 0xce, 0xe3, 0xcd,
+ 0xbd, 0xf7, 0xca, 0x8b, 0xb6, 0xeb, 0x04, 0x94, 0xd8, 0x76, 0x63, 0x62,
+ 0x50, 0xf9, 0xe2, 0xc6, 0x3f, 0x9c, 0xcf, 0xf9, 0x96, 0x3e, 0xef, 0x82,
+ 0x53, 0x55, 0x06, 0x66, 0x3e, 0x01, 0x82, 0x1e, 0x75, 0xde, 0xfa, 0x47,
+ 0x87, 0xc9, 0xaa, 0xd4, 0x0c, 0xec, 0x75, 0xef, 0x23, 0x7b, 0x72, 0x66,
+ 0xa8, 0x94, 0xde, 0x75, 0x91, 0xff, 0x3d, 0xf3, 0xd0, 0x58, 0x5a, 0x51,
+ 0xc5, 0x7b, 0x7c, 0x5f, 0x04, 0xc6, 0x6d, 0x3a, 0xcb, 0x45, 0x28, 0x52,
+ 0xf0, 0xd2, 0x3d, 0xf0, 0x44, 0x76, 0x2d, 0x97, 0x0f, 0x64, 0xec, 0x01,
+ 0x95, 0xff, 0xa4, 0xd0, 0x79, 0xd6, 0x02, 0x3b, 0x3f, 0x7f, 0x2a, 0x7a,
+ 0x97, 0xea, 0xc6, 0x74, 0xf3, 0xd2, 0x44, 0xcc, 0xc0, 0x27, 0xd7, 0x15,
+ 0xd3, 0xcf, 0xe5, 0xda, 0x93, 0xa5, 0x94, 0xea, 0x8f, 0xa9, 0xab, 0x4f,
+ 0x43, 0x7f, 0xbd, 0xcb, 0x0b, 0x01, 0x20, 0x07, 0xaf, 0x3f, 0x5f, 0xe1,
+ 0x8f, 0xac, 0xf9, 0xce, 0x3c, 0xc6, 0x5e, 0xf2, 0x9e, 0xff, 0xcc, 0xcb,
+ 0x2a, 0x05, 0xfb, 0x31, 0xd3, 0xf1, 0x59, 0x22, 0xb6, 0xbe, 0xe7, 0x84,
+ 0xb0, 0x67, 0x89, 0x1d, 0x29, 0x52, 0x34, 0x3c, 0x42, 0x95, 0x7c, 0x65,
+ 0x3f, 0x3f, 0x2b, 0x49, 0x9a, 0x7a, 0xdf, 0xe3, 0x2d, 0xf5, 0x06, 0x0c,
+ 0xec, 0xce, 0x38, 0x28, 0x5a, 0xf5, 0x6f, 0xdd, 0xd3, 0x2f, 0x64, 0x6f,
+ 0xe8, 0x7d, 0x69, 0x4d, 0xd6, 0x55, 0x6f, 0x7c, 0xb6, 0xeb, 0x2b, 0xac,
+ 0x53, 0x0a, 0x8f, 0x72, 0x72, 0xf3, 0xca, 0x17, 0x78, 0x67, 0x9c, 0xcc,
+ 0xa8, 0x9a, 0xec, 0x4c, 0x4b, 0xc0, 0x2a, 0x19, 0x9b, 0x7b, 0x6c, 0xbf,
+ 0x25, 0x74, 0x2f, 0x7d, 0xf5, 0x29, 0x39, 0x79, 0xed, 0x3d, 0xf8, 0xc4,
+ 0x0d, 0x30, 0x9d, 0x91, 0x36, 0x70, 0xcf, 0xde, 0xaa, 0x5a, 0x4a, 0xe3,
+ 0x7a, 0x8f, 0xf2, 0xce, 0x78, 0x57, 0x32, 0x69, 0x10, 0xa6, 0x3f, 0x78,
+ 0x86, 0xb7, 0xc3, 0xd1, 0x8d, 0xb9, 0xd5, 0x26, 0x0d, 0x50, 0x99, 0x85,
+ 0xc6, 0xbc, 0xba, 0x6b, 0xff, 0xd9, 0xf3, 0x35, 0xcf, 0xca, 0xa5, 0x59,
+ 0xdb, 0xab, 0xde, 0x7b, 0xef, 0xb3, 0xf0, 0x98, 0xab, 0x49, 0xa0, 0xd8,
+ 0x71, 0x73, 0xd4, 0xe8, 0xa4, 0x25, 0x5b, 0x94, 0xbf, 0xfa, 0xef, 0xea,
+ 0x1e, 0xac, 0x88, 0x0e, 0xad, 0xfe, 0x77, 0xbf, 0xbf, 0x9f, 0xfb, 0x99,
+ 0x55, 0xec, 0x1b, 0xac, 0x32, 0x44, 0x0f, 0x26, 0x2d, 0xfe, 0x73, 0x87,
+ 0xd1, 0xc1, 0xec, 0x78, 0x2d, 0xf0, 0x9a, 0x1b, 0x3d, 0x62, 0x59, 0x38,
+ 0xc9, 0xc1, 0x86, 0xa0, 0xa4, 0x8b, 0x4f, 0x7d, 0xe6, 0x3c, 0x92, 0xf9,
+ 0xe2, 0x87, 0xf2, 0x3c, 0xa9, 0xbb, 0x9d, 0x63, 0x50, 0xdf, 0x2c, 0xd9,
+ 0xec, 0xb6, 0x23, 0x72, 0x6e, 0x36, 0xef, 0xb5, 0x7d, 0x27, 0xbd, 0xd0,
+ 0x37, 0xa8, 0x8d, 0x47, 0xa6, 0xb7, 0x6c, 0x97, 0x5b, 0x46, 0x6c, 0x78,
+ 0xe1, 0xef, 0xaa, 0x92, 0xfe, 0xaa, 0xc4, 0x09, 0x5b, 0xe9, 0x0a, 0x70,
+ 0xa4, 0xe0, 0xb9, 0xbd, 0xcf, 0x88, 0x6a, 0x43, 0x10, 0x23, 0xb3, 0x4a,
+ 0x37, 0xd9, 0xe4, 0xa3, 0x1e, 0x19, 0x69, 0xc4, 0xa1, 0xc0, 0xbd, 0xb7,
+ 0x9e, 0xda, 0xa9, 0x85, 0x49, 0x73, 0x71, 0xdc, 0xb5, 0x02, 0xdc, 0xa3,
+ 0xbc, 0x6b, 0x2e, 0x2e, 0x47, 0xe7, 0x07, 0xd4, 0x67, 0x8e, 0x23, 0x9a,
+ 0x03, 0x71, 0x34, 0xca, 0xfe, 0x26, 0xc9, 0x3f, 0xb5, 0x7b, 0xfa, 0xf9,
+ 0x8a, 0xa7, 0x47, 0xe2, 0xde, 0x3b, 0x99, 0x92, 0xf8, 0x35, 0xeb, 0xe0,
+ 0xbf, 0xf4, 0x99, 0x60, 0x2a, 0xd5, 0xcf, 0xcf, 0x5e, 0x30, 0xea, 0x19,
+ 0xa4, 0x21, 0x45, 0x9c, 0xdd, 0xc3, 0x9f, 0x3b, 0x9b, 0xe6, 0x66, 0x59,
+ 0x7c, 0xb4, 0xfa, 0xa2, 0xd0, 0x80, 0xe9, 0x02, 0xbb, 0x17, 0x5e, 0xe8,
+ 0xd1, 0xf0, 0xbc, 0xa1, 0x16, 0x77, 0xd4, 0x17, 0x2f, 0x85, 0x16, 0xc3,
+ 0xe5, 0x18, 0xa8, 0x91, 0xaf, 0x4b, 0x6f, 0x0e, 0x5e, 0xec, 0xda, 0xeb,
+ 0x57, 0x18, 0x45, 0x3e, 0x66, 0xf7, 0x6e, 0xd7, 0x31, 0x4e, 0xc2, 0xa8,
+ 0x8b, 0x79, 0x41, 0x4e, 0x08, 0xf7, 0x88, 0x6b, 0x60, 0xaf, 0x75, 0x09,
+ 0x74, 0xd5, 0x8d, 0xba, 0x49, 0x9b, 0xa5, 0x77, 0xc5, 0xbc, 0xe0, 0xbd,
+ 0x33, 0xa2, 0x50, 0xe4, 0x5c, 0xf6, 0x6b, 0x5e, 0xa8, 0xcf, 0xad, 0xe3,
+ 0x48, 0xd3, 0x97, 0x7e, 0xf8, 0x81, 0xef, 0x91, 0x52, 0x79, 0x5d, 0x24,
+ 0x96, 0x65, 0xeb, 0x99, 0x18, 0xa1, 0xcb, 0xaa, 0x07, 0x1d, 0x61, 0x04,
+ 0x80, 0xaa, 0x6c, 0x96, 0x11, 0x53, 0x22, 0xdb, 0x41, 0x38, 0x3c, 0x83,
+ 0xc0, 0xa6, 0x44, 0x49, 0x2f, 0x8e, 0xe1, 0x12, 0x78, 0x12, 0x0e, 0xd0,
+ 0x82, 0xfc, 0x6f, 0xe2, 0x0c, 0x33, 0x3d, 0x38, 0x7c, 0x7f, 0xf9, 0xcd,
+ 0xd9, 0xc5, 0x28, 0xd9, 0xa1, 0x94, 0xe3, 0xcb, 0x8b, 0x93, 0xaf, 0xde,
+ 0x5f, 0x9a, 0x7f, 0x6a, 0x4b, 0xaf, 0xd3, 0x22, 0x37, 0xb7, 0xd3, 0xa8,
+ 0xc9, 0x0a, 0xb3, 0x57, 0xae, 0xb5, 0xec, 0x08, 0xc8, 0x94, 0xe8, 0x3e,
+ 0x2e, 0x2b, 0x2e, 0x3d, 0x05, 0xc6, 0x87, 0x9b, 0x52, 0x16, 0x1c, 0x08,
+ 0x03, 0xf8, 0xb1, 0x09, 0x63, 0x57, 0x3a, 0xdb, 0x39, 0x6f, 0xa7, 0x91,
+ 0x27, 0x0a, 0x9b, 0x49, 0x2e, 0xbf, 0x39, 0x7c, 0xf7, 0xed, 0x48, 0x29,
+ 0xe9, 0xbf, 0xff, 0xfe, 0xfb, 0x6e, 0xc4, 0x17, 0x3a, 0xec, 0x4d, 0xfa,
+ 0xe9, 0xd3, 0xb0, 0xce, 0x36, 0x36, 0x46, 0xc7, 0xc7, 0xc9, 0xe1, 0xe9,
+ 0xe8, 0x6c, 0xc3, 0x25, 0xda, 0x6f, 0xed, 0x6d, 0x1b, 0x25, 0xed, 0x3a,
+ 0x6b, 0xcc, 0x5f, 0x36, 0x36, 0x4e, 0x0f, 0x2f, 0xc9, 0x3a, 0x96, 0x3a,
+ 0xbf, 0x34, 0xcf, 0xc4, 0x99, 0x91, 0xce, 0xee, 0x88, 0x23, 0xf0, 0x2a,
+ 0x07, 0x92, 0xfd, 0xae, 0x16, 0xb0, 0xaf, 0xd0, 0x66, 0xb2, 0xce, 0xcf,
+ 0x68, 0xb7, 0x3b, 0x22, 0x32, 0x11, 0x34, 0x1a, 0x21, 0x6d, 0xcd, 0x98,
+ 0x14, 0xd9, 0xb0, 0x91, 0x38, 0x0f, 0x19, 0xf3, 0x2c, 0x64, 0x63, 0xae,
+ 0xf1, 0xdc, 0x67, 0x58, 0x29, 0xe0, 0x85, 0x1e, 0xb9, 0xc4, 0x8a, 0x21,
+ 0x9c, 0x10, 0xe7, 0x6b, 0xf2, 0x7e, 0x74, 0xf8, 0xf5, 0x31, 0x3d, 0xfb,
+ 0x75, 0xd6, 0xb8, 0xa9, 0x85, 0x77, 0x0d, 0x5f, 0x79, 0x97, 0x35, 0xf5,
+ 0x24, 0x5d, 0x64, 0x9b, 0xd4, 0xa7, 0xf1, 0x40, 0xea, 0x29, 0xb8, 0xc6,
+ 0xd9, 0x74, 0x70, 0x45, 0x20, 0x0a, 0x79, 0x1e, 0xe5, 0x1a, 0xfc, 0x76,
+ 0x2f, 0x8e, 0x0f, 0x5f, 0xbf, 0x3d, 0xd6, 0x4a, 0xe1, 0xcc, 0xb7, 0x6a,
+ 0x1a, 0xbd, 0xa1, 0x0a, 0xea, 0x2e, 0xba, 0x42, 0xaa, 0xc4, 0xd2, 0xb4,
+ 0x61, 0x7e, 0x43, 0xd5, 0xcc, 0xe3, 0x9f, 0x73, 0xb5, 0x21, 0xf0, 0xec,
+ 0xf0, 0x2a, 0xdf, 0xe1, 0xd6, 0xf5, 0x7b, 0xa9, 0x9d, 0x13, 0x1e, 0x44,
+ 0xaa, 0xda, 0x35, 0xbb, 0x3f, 0xe0, 0x37, 0xf9, 0x7c, 0x77, 0x77, 0x77,
+ 0xcd, 0x38, 0x60, 0x7e, 0xc8, 0x25, 0x6d, 0x86, 0x72, 0x40, 0x8f, 0xef,
+ 0xb8, 0xf6, 0x5d, 0x8f, 0x69, 0xbf, 0x61, 0xdd, 0xae, 0xc8, 0x7a, 0xc7,
+ 0xd5, 0x9e, 0x37, 0x59, 0xbc, 0xcb, 0x93, 0xb2, 0xb4, 0x2b, 0xd0, 0x9a,
+ 0x1c, 0xd4, 0x70, 0xce, 0x1b, 0x8f, 0xce, 0x51, 0x3b, 0x6e, 0xcc, 0x25,
+ 0x50, 0x88, 0x55, 0xf7, 0xdd, 0x26, 0xe9, 0x37, 0x80, 0x14, 0x4d, 0x9a,
+ 0x61, 0x59, 0x5d, 0xef, 0xcc, 0x0f, 0xa0, 0x01, 0x99, 0x87, 0xde, 0x10,
+ 0x84, 0x39, 0x31, 0x9a, 0xb4, 0xa5, 0x07, 0xa9, 0x69, 0x62, 0x4b, 0x73,
+ 0xf5, 0x3d, 0xa2, 0x5f, 0xbf, 0x60, 0x16, 0x98, 0xd9, 0xe9, 0x4a, 0x47,
+ 0xae, 0xb5, 0x12, 0x23, 0x1f, 0xa1, 0xfd, 0x07, 0xe7, 0xe4, 0xd0, 0xc8,
+ 0x02, 0xf3, 0x15, 0xa2, 0x18, 0xc3, 0x16, 0x31, 0x7f, 0xad, 0x08, 0x6c,
+ 0xd3, 0x7c, 0x82, 0x98, 0x96, 0x62, 0xb0, 0x9c, 0x0d, 0x4a, 0xd1, 0xff,
+ 0x85, 0xd1, 0xb4, 0x8c, 0x01, 0x95, 0x32, 0xc3, 0xc4, 0x88, 0xaa, 0x59,
+ 0x68, 0xf1, 0x74, 0x8b, 0xd4, 0xa4, 0x86, 0xbb, 0xdf, 0x1c, 0x0c, 0xb0,
+ 0x7f, 0x6a, 0xbb, 0x5b, 0x1e, 0xf1, 0x71, 0x6f, 0x50, 0x3c, 0xfb, 0x85,
+ 0xdc, 0xea, 0xde, 0xde, 0x19, 0x99, 0x5e, 0x04, 0xdf, 0x5a, 0xba, 0x72,
+ 0xb6, 0x35, 0x7f, 0xce, 0x2f, 0x5a, 0x62, 0x56, 0x63, 0x07, 0x30, 0xde,
+ 0x47, 0x7f, 0xe3, 0xe8, 0xdc, 0x56, 0x03, 0x30, 0x63, 0xbf, 0xa5, 0xc1,
+ 0xd3, 0x8d, 0x60, 0xee, 0x76, 0xba, 0x32, 0x54, 0x25, 0x06, 0x7e, 0x12,
+ 0xd6, 0x2d, 0x0a, 0x12, 0xf9, 0xe6, 0xc9, 0x9a, 0x1e, 0x1e, 0x98, 0xa9,
0xa1, 0x1b, 0xe8, 0x7f, 0xef, 0x0c, 0xeb, 0xfa, 0x66, 0x27, 0x9f, 0x7e,
- 0xa8, 0xea, 0x34, 0xf9, 0x69, 0xa3, 0x93, 0x6c, 0xda, 0x1d, 0xc4, 0xff,
+ 0xa8, 0xea, 0x34, 0xf9, 0x69, 0xa3, 0x93, 0x2d, 0xdb, 0x1d, 0xc4, 0xff,
0xc6, 0x0c, 0xfe, 0xa2, 0x99, 0x5a, 0x3d, 0x8a, 0xdf, 0x63, 0x04, 0x83,
- 0x01, 0xb5, 0xaa, 0x5f, 0xfa, 0x60, 0x1e, 0xf8, 0x60, 0x39, 0x90, 0x7f,
- 0xc5, 0xe8, 0x22, 0xa2, 0xd0, 0x0c, 0x92, 0xc9, 0x31, 0x8d, 0x6c, 0x89,
- 0x6f, 0x74, 0x2d, 0xe4, 0xf1, 0x97, 0xfd, 0xdd, 0xdd, 0xbd, 0x83, 0xbd,
- 0xcf, 0x5f, 0xec, 0x1e, 0xec, 0xed, 0xed, 0xed, 0x1f, 0xec, 0x1d, 0x1c,
- 0xec, 0xef, 0xfe, 0xbc, 0xd3, 0x5b, 0x35, 0x75, 0x6f, 0xbf, 0x5e, 0xd1,
- 0xa0, 0x19, 0x75, 0x8f, 0x99, 0xf7, 0x7e, 0xb2, 0xa3, 0xc7, 0xa8, 0xa6,
- 0xbd, 0xa4, 0x9e, 0x8f, 0x09, 0xf2, 0xc6, 0x87, 0xd3, 0x1f, 0x4c, 0x6d,
- 0x14, 0xef, 0xcc, 0x1b, 0xd0, 0xeb, 0xb3, 0x1f, 0xde, 0x9d, 0x9e, 0x1d,
- 0xbe, 0x4e, 0x2e, 0xcf, 0x92, 0x43, 0xb8, 0x09, 0x23, 0x72, 0x12, 0xec,
- 0x99, 0x84, 0x18, 0xe7, 0x0a, 0x27, 0x5e, 0xa5, 0x2f, 0xf1, 0x69, 0x59,
- 0x7c, 0x27, 0x3a, 0xd1, 0xed, 0x67, 0x09, 0x33, 0x90, 0x5a, 0x1a, 0xde,
- 0x34, 0xf3, 0x87, 0x6f, 0x84, 0xc7, 0x7c, 0xb9, 0xcf, 0x30, 0x0e, 0x67,
- 0xe9, 0xa3, 0x3b, 0x7a, 0xf2, 0x81, 0x1c, 0xb2, 0xf5, 0x35, 0x05, 0x02,
- 0x61, 0xeb, 0xd3, 0x6f, 0x31, 0xb6, 0xcb, 0x15, 0xa8, 0xe2, 0xc2, 0x67,
- 0x1d, 0x5c, 0xad, 0x2d, 0x21, 0x24, 0x18, 0x1b, 0xa8, 0x3b, 0xa4, 0xc3,
+ 0x01, 0xb5, 0xaa, 0x5f, 0xfa, 0x60, 0x1e, 0xf8, 0x60, 0x49, 0x9c, 0x7f,
+ 0xc5, 0xe8, 0x22, 0xa2, 0xd0, 0x0c, 0x92, 0xd9, 0x3d, 0x8d, 0x6c, 0x89,
+ 0x6f, 0x74, 0xad, 0x44, 0xf2, 0xe3, 0xfe, 0xee, 0xee, 0xde, 0xc1, 0xde,
+ 0xe7, 0x2f, 0x76, 0x0f, 0xf6, 0xf6, 0xf6, 0xf6, 0x0f, 0xf6, 0x0e, 0x0e,
+ 0xf6, 0x77, 0x7f, 0xde, 0xe9, 0xad, 0x9a, 0xba, 0xb7, 0x5f, 0xad, 0x68,
+ 0xd0, 0x8c, 0xba, 0xc7, 0xd4, 0x81, 0x3f, 0xd9, 0xd1, 0x63, 0x54, 0xd3,
+ 0x5e, 0x52, 0xcf, 0xc7, 0x84, 0xd9, 0xe3, 0xc3, 0xe9, 0x0f, 0xa6, 0x36,
+ 0x8a, 0x77, 0xe6, 0x0d, 0xe8, 0xf5, 0xd9, 0xf7, 0xef, 0x4e, 0xcf, 0x0e,
+ 0x5f, 0x27, 0x97, 0x67, 0xc9, 0x21, 0xdc, 0x84, 0x11, 0x39, 0x09, 0xfa,
+ 0x4f, 0x82, 0xbc, 0x73, 0x89, 0x16, 0xaf, 0x54, 0x99, 0xf8, 0xb4, 0x2c,
+ 0x40, 0x15, 0x9d, 0xe8, 0xf6, 0xb3, 0x84, 0x19, 0x48, 0x2d, 0x0d, 0x6f,
+ 0x9a, 0xf9, 0xc3, 0x37, 0xc2, 0x63, 0xbe, 0xdc, 0x67, 0x18, 0x87, 0xb3,
+ 0xf4, 0xd1, 0x1d, 0x3d, 0xf9, 0x40, 0x0e, 0xd9, 0x02, 0xa1, 0x02, 0x81,
+ 0x50, 0x79, 0x97, 0x6c, 0x31, 0xb6, 0xcb, 0x55, 0xd8, 0xe2, 0xca, 0x6d,
+ 0x1d, 0x60, 0xb0, 0xad, 0x81, 0x24, 0x18, 0x1b, 0xa8, 0x3b, 0xa4, 0xc3,
0x6e, 0x07, 0x03, 0x3c, 0x5b, 0x39, 0x24, 0x73, 0x99, 0x67, 0x9f, 0x30,
- 0xea, 0xb6, 0xec, 0x65, 0x6a, 0x46, 0x37, 0x3a, 0xf0, 0x4f, 0xa9, 0xef,
- 0x22, 0xaf, 0xb4, 0xcb, 0x80, 0xb0, 0x46, 0x3e, 0x47, 0xdf, 0x51, 0x91,
- 0xec, 0x3e, 0x41, 0xbf, 0xf1, 0xef, 0xf1, 0x1d, 0x9b, 0x90, 0xcb, 0x1d,
- 0x78, 0x3f, 0x3a, 0x79, 0xf7, 0x0d, 0xa2, 0xe8, 0x3f, 0x9c, 0x5d, 0xbc,
+ 0xea, 0xb6, 0xec, 0x65, 0x6e, 0x49, 0x37, 0x3a, 0x10, 0x68, 0xa9, 0xef,
+ 0x22, 0xaf, 0xb4, 0xcb, 0x80, 0x40, 0x46, 0x3e, 0x47, 0xdf, 0x51, 0x91,
+ 0xec, 0x3e, 0x41, 0xbf, 0xf1, 0xef, 0xf1, 0x1d, 0x9b, 0x51, 0xcc, 0x1d,
+ 0x78, 0x3f, 0x3a, 0x79, 0xf7, 0x35, 0xa2, 0xe8, 0xdf, 0x9f, 0x5d, 0xbc,
0x1e, 0x99, 0x66, 0x8d, 0xbc, 0x42, 0xe3, 0x97, 0x25, 0x49, 0x42, 0xe9,
- 0x15, 0x9f, 0x4b, 0xfa, 0xf4, 0x9f, 0x78, 0x3b, 0xf5, 0x2d, 0xf1, 0x3e,
- 0xba, 0xe9, 0xd9, 0x47, 0x54, 0x5d, 0x29, 0x7e, 0x6b, 0x78, 0xbb, 0xf1,
- 0xab, 0x79, 0x3a, 0xb9, 0x21, 0x83, 0x9e, 0x37, 0x2b, 0xd0, 0xc4, 0x3b,
- 0x94, 0xed, 0xb2, 0x43, 0x76, 0xda, 0x4e, 0x53, 0x62, 0x3b, 0xa2, 0x95,
+ 0x15, 0x9f, 0x4b, 0xfa, 0xf4, 0x9f, 0x78, 0x3b, 0xf5, 0x2d, 0xe8, 0x12,
+ 0xdd, 0xf4, 0xec, 0x23, 0x2a, 0x0f, 0x15, 0xbf, 0x35, 0xbc, 0xdd, 0xf8,
+ 0xe7, 0x79, 0x3a, 0xb9, 0x21, 0x83, 0x9e, 0x37, 0x2b, 0xe0, 0xd0, 0x3b,
+ 0x94, 0xae, 0xb3, 0x43, 0x76, 0xda, 0x4e, 0x53, 0x62, 0x3b, 0xa2, 0x95,
0xb2, 0xb2, 0x90, 0xc6, 0xd6, 0x8c, 0xd0, 0x5e, 0xbf, 0x9a, 0xa5, 0xd7,
0xf8, 0x60, 0x78, 0x0c, 0xbc, 0x8f, 0xc9, 0xe7, 0x1f, 0xfb, 0x49, 0xba,
- 0x36, 0xd0, 0xde, 0x09, 0x36, 0x00, 0x72, 0x94, 0x50, 0x32, 0xea, 0x4a,
- 0x6b, 0x9c, 0x90, 0x02, 0x89, 0xfa, 0x75, 0x04, 0x07, 0x23, 0x16, 0xe6,
- 0x6e, 0xed, 0x1f, 0xd4, 0x68, 0x65, 0x22, 0x72, 0xa3, 0x7e, 0x3b, 0xa8,
- 0xb3, 0xd4, 0x5e, 0x41, 0x4b, 0x9e, 0x4e, 0x5e, 0x3b, 0xe4, 0xb5, 0xab,
- 0x77, 0xcc, 0x53, 0x4e, 0x9d, 0x21, 0x7c, 0x27, 0x67, 0x0e, 0x10, 0xc4,
- 0x53, 0x34, 0xda, 0x1e, 0xb1, 0xfb, 0x13, 0xd8, 0xa9, 0x87, 0x2b, 0xae,
- 0x45, 0x9b, 0xe6, 0x18, 0x3e, 0x8c, 0xb2, 0x5f, 0x4c, 0x53, 0xaa, 0x16,
- 0xc1, 0x50, 0x07, 0xe1, 0x22, 0x31, 0xd6, 0x17, 0x67, 0x65, 0xf4, 0x14,
- 0x32, 0xc5, 0xad, 0xe4, 0x35, 0x33, 0xba, 0xd8, 0xe2, 0x2c, 0x74, 0x79,
+ 0x36, 0xd0, 0xde, 0x09, 0x36, 0x00, 0x92, 0xac, 0x50, 0xf3, 0xea, 0x4a,
+ 0x8b, 0xb4, 0x90, 0x02, 0x89, 0x02, 0x7c, 0x04, 0x07, 0x23, 0x14, 0x6a,
+ 0xb7, 0x78, 0x11, 0x8a, 0xcc, 0x32, 0x93, 0xba, 0x51, 0xbf, 0x1d, 0x56,
+ 0x5b, 0x8a, 0xc7, 0xa0, 0x25, 0x4f, 0x27, 0xaf, 0x1d, 0x74, 0xdc, 0x15,
+ 0x6c, 0xe6, 0x29, 0xa7, 0xce, 0x10, 0xbe, 0x93, 0x53, 0x1f, 0x08, 0xe2,
+ 0x29, 0x1a, 0x6d, 0x8f, 0xca, 0x13, 0x10, 0xd8, 0xa9, 0x87, 0x2b, 0xae,
+ 0xc5, 0xfb, 0xe6, 0x28, 0x4a, 0x8c, 0xb2, 0x5f, 0x4c, 0x53, 0x2a, 0x77,
+ 0xc1, 0x50, 0x07, 0x21, 0x53, 0x31, 0xd6, 0x17, 0xa7, 0x95, 0xf4, 0x14,
+ 0x32, 0xc5, 0xad, 0xe4, 0x35, 0x53, 0xd2, 0xd8, 0xea, 0x32, 0x74, 0x79,
0xd1, 0xd7, 0xd9, 0x4f, 0x8a, 0x59, 0xb7, 0xf7, 0xa4, 0xf3, 0x74, 0xd2,
- 0x1d, 0x67, 0xf4, 0x71, 0x23, 0xc0, 0x79, 0xe7, 0x68, 0x7c, 0xdd, 0x55,
- 0x4d, 0x6d, 0x4d, 0x9b, 0x32, 0x07, 0x73, 0x73, 0x24, 0x99, 0x9d, 0xd7,
- 0xd6, 0xce, 0xe0, 0x06, 0x60, 0x6b, 0xf6, 0x16, 0xb0, 0x28, 0x72, 0xaf,
- 0xf4, 0x9c, 0x2b, 0x9b, 0xe1, 0x4d, 0x1b, 0x63, 0x4c, 0xdd, 0x7b, 0x66,
+ 0x1d, 0x67, 0xf4, 0x71, 0x23, 0xc0, 0x79, 0xe7, 0x68, 0x7c, 0xdd, 0x95,
+ 0x7d, 0x6d, 0x4d, 0x9b, 0x52, 0x1f, 0x73, 0x73, 0x24, 0x99, 0x9d, 0xd7,
+ 0xd6, 0xce, 0xe0, 0x06, 0x60, 0x6b, 0xf6, 0x16, 0xb0, 0x30, 0x78, 0xaf,
+ 0x76, 0x9e, 0xab, 0xfb, 0xe1, 0x4d, 0x1b, 0x63, 0x4c, 0xdd, 0x7b, 0x66,
0x8d, 0xa8, 0xa9, 0xbc, 0xa9, 0xb3, 0xd9, 0x15, 0x99, 0x5b, 0xf6, 0x0a,
- 0xe1, 0xba, 0xd1, 0xae, 0x7e, 0x88, 0x60, 0xa5, 0x97, 0x85, 0xb1, 0x54,
- 0x52, 0xc1, 0x00, 0xb1, 0x2c, 0xb9, 0x86, 0x58, 0x77, 0xc5, 0xea, 0xdb,
- 0x32, 0x84, 0xe3, 0xa7, 0x5f, 0x30, 0xc8, 0xcf, 0x36, 0xd7, 0x12, 0x1d,
- 0x5e, 0x22, 0x05, 0xdf, 0x3a, 0x3a, 0x77, 0x34, 0x5b, 0xf7, 0x0b, 0xa2,
- 0x3a, 0x22, 0x40, 0x88, 0x57, 0x51, 0x51, 0xa9, 0x87, 0xc1, 0x01, 0x9e,
- 0x7d, 0x22, 0x1e, 0x5e, 0x19, 0x9b, 0xb3, 0x09, 0xad, 0x56, 0x2f, 0xe3,
- 0xa5, 0xd6, 0xf0, 0x73, 0xc8, 0x42, 0x9a, 0x6d, 0xd3, 0x6f, 0x90, 0xbb,
- 0x4b, 0xb6, 0x01, 0xab, 0x81, 0x6a, 0x49, 0xda, 0x32, 0x9e, 0xa4, 0x31,
- 0x99, 0x5b, 0x98, 0x39, 0xb2, 0x6d, 0x61, 0x6d, 0xc4, 0x69, 0x53, 0xb6,
- 0x37, 0xa1, 0x04, 0x7b, 0x1f, 0xa6, 0xad, 0x04, 0xb6, 0xb8, 0x56, 0x66,
- 0x4c, 0x6b, 0x94, 0xcb, 0xb1, 0x5b, 0x58, 0xda, 0x23, 0xc0, 0xf5, 0x52,
- 0x93, 0x47, 0x61, 0x95, 0x39, 0x2d, 0xc3, 0xe0, 0xcd, 0x9e, 0x10, 0xa6,
- 0x18, 0x81, 0x82, 0xb4, 0xae, 0x65, 0x6d, 0x77, 0x8e, 0x99, 0xad, 0x8f,
- 0x72, 0x21, 0x6e, 0x00, 0xe0, 0x1f, 0x8a, 0x1b, 0x91, 0xbc, 0xab, 0xe5,
- 0xcd, 0xc3, 0xa2, 0x26, 0xec, 0x92, 0x9a, 0x7e, 0xb3, 0x7b, 0x96, 0x06,
- 0x79, 0xb1, 0x5e, 0xe8, 0x48, 0x27, 0x1e, 0xf5, 0x61, 0x8c, 0x15, 0x6c,
- 0xdc, 0x35, 0x47, 0x61, 0x1c, 0x72, 0x95, 0x41, 0x1f, 0xe0, 0xb0, 0xe8,
- 0xf0, 0xd1, 0xaa, 0x0f, 0xd3, 0xce, 0x23, 0x0e, 0x3c, 0x83, 0x55, 0x0e,
- 0x92, 0xaf, 0xd3, 0x3a, 0x9f, 0xf4, 0xa5, 0x60, 0x84, 0x14, 0x90, 0xa0,
- 0x37, 0x6c, 0x51, 0x89, 0x64, 0x8b, 0xa9, 0x88, 0xb7, 0x87, 0xc9, 0x0f,
- 0x5a, 0x02, 0xc4, 0x18, 0x91, 0xc8, 0xc4, 0xa6, 0xd0, 0xc1, 0x06, 0xd3,
- 0xc3, 0x30, 0xe2, 0x84, 0xe6, 0x43, 0xf6, 0xa7, 0xf8, 0xf2, 0x41, 0x20,
- 0x8e, 0x8f, 0x38, 0x76, 0x44, 0xac, 0x6a, 0x5a, 0x7f, 0xb4, 0x81, 0x33,
- 0xac, 0x95, 0x88, 0x22, 0x2e, 0x20, 0xc6, 0x54, 0xbb, 0x30, 0xf2, 0x05,
- 0x5e, 0x83, 0xb0, 0x5a, 0xe1, 0xd5, 0xff, 0xb6, 0xe5, 0x7b, 0xe0, 0xac,
- 0xad, 0x2d, 0x2c, 0xcb, 0x56, 0x48, 0xc3, 0xce, 0xb4, 0x22, 0x6a, 0x30,
- 0x30, 0x13, 0x46, 0x53, 0x23, 0x02, 0xf4, 0xec, 0xf2, 0xf8, 0x5f, 0x92,
- 0xc3, 0x6e, 0x9c, 0x1d, 0xd4, 0x27, 0x22, 0x86, 0xa5, 0x9a, 0xae, 0xdd,
- 0x60, 0xe8, 0x3b, 0xc3, 0x58, 0x99, 0x33, 0x34, 0xc5, 0xf2, 0x6f, 0x48,
- 0xf2, 0xb0, 0xf3, 0x28, 0xd7, 0xa5, 0xa4, 0x8e, 0xa0, 0xd8, 0xa0, 0x2d,
- 0x4b, 0x87, 0x08, 0x84, 0xc7, 0x95, 0xc8, 0x00, 0xff, 0x3c, 0x85, 0x1e,
- 0x5b, 0x7e, 0x32, 0x07, 0x5b, 0xb3, 0x37, 0x68, 0x9a, 0xaf, 0x6f, 0xb4,
- 0xd0, 0x22, 0xe1, 0xd3, 0x81, 0x39, 0x6f, 0x84, 0xaf, 0x5e, 0x8a, 0x82,
- 0x79, 0x15, 0x72, 0x6c, 0x0b, 0xb4, 0xfb, 0x3f, 0xd0, 0x91, 0xfb, 0xa0,
- 0x17, 0x8b, 0x5c, 0x81, 0xdc, 0x97, 0x2b, 0xb6, 0x83, 0xda, 0x5b, 0x56,
- 0x8f, 0x1d, 0xdf, 0x66, 0xe7, 0x0a, 0x61, 0xc5, 0x42, 0xd0, 0x15, 0x00,
- 0x88, 0x09, 0x02, 0xec, 0xb8, 0x53, 0x55, 0x6a, 0xfa, 0x17, 0x13, 0xf8,
- 0x38, 0xe9, 0x8e, 0xe0, 0x5a, 0xd2, 0xc2, 0xc7, 0xc9, 0x79, 0x0e, 0xa6,
- 0xd5, 0x76, 0x26, 0x12, 0x68, 0x7c, 0x31, 0xab, 0xd4, 0x8b, 0xd1, 0xd9,
- 0xd1, 0x77, 0xa3, 0x56, 0x26, 0x50, 0xcd, 0xc5, 0x66, 0x12, 0xad, 0xaa,
- 0xd4, 0xd9, 0xd0, 0x46, 0x1a, 0x9e, 0x34, 0x1d, 0xf1, 0x64, 0x99, 0x2e,
- 0x3d, 0x7c, 0xf3, 0x1b, 0x05, 0xe7, 0x6b, 0xb3, 0x54, 0x7c, 0x64, 0x92,
- 0x79, 0x44, 0xbd, 0x45, 0xb9, 0xe1, 0xdd, 0x7c, 0xbc, 0x7f, 0xca, 0x5a,
- 0x65, 0x22, 0xd3, 0xb8, 0x72, 0xc5, 0x87, 0x71, 0xc6, 0x3c, 0x4c, 0x66,
- 0x97, 0xf0, 0x2a, 0x52, 0xff, 0x70, 0x02, 0x79, 0x67, 0xce, 0xb1, 0xb9,
- 0x37, 0xdc, 0xee, 0xa6, 0x3b, 0x68, 0xd5, 0x38, 0xa9, 0xbc, 0x00, 0x6d,
- 0x37, 0x75, 0xaf, 0xb3, 0xea, 0x84, 0xda, 0x8c, 0x52, 0x56, 0x85, 0x74,
- 0x2b, 0xed, 0x35, 0xad, 0x0e, 0x34, 0xdb, 0xc2, 0xea, 0x59, 0xba, 0xe8,
- 0x85, 0x97, 0x81, 0x00, 0x99, 0x32, 0x4d, 0xe6, 0xf7, 0x92, 0xdb, 0x23,
- 0xba, 0x01, 0xd1, 0x96, 0xc0, 0x2b, 0xf1, 0xf9, 0xe7, 0x81, 0x2e, 0xf8,
- 0xc9, 0x3e, 0x7d, 0x60, 0x7e, 0xed, 0x79, 0x3f, 0x66, 0x84, 0x49, 0x21,
- 0x6f, 0x03, 0xf4, 0x50, 0xeb, 0x02, 0x89, 0x58, 0x18, 0x5e, 0xd1, 0x32,
- 0xfe, 0xa2, 0x0d, 0xe3, 0x04, 0xbb, 0xac, 0xef, 0xe4, 0xfe, 0x06, 0x9b,
- 0xd7, 0xdc, 0xd1, 0xb4, 0x66, 0x6c, 0xd3, 0x0a, 0xc3, 0x4c, 0xc5, 0x64,
- 0xb7, 0xb7, 0x9e, 0xd6, 0x6c, 0x34, 0xf7, 0x21, 0x5d, 0xaa, 0x64, 0x04,
- 0x8c, 0x4a, 0x69, 0x98, 0x26, 0x59, 0x3a, 0x63, 0x77, 0x47, 0x67, 0x1f,
- 0xd9, 0x6a, 0x61, 0x4e, 0x46, 0xbc, 0x5f, 0xdd, 0x9d, 0xf7, 0xbf, 0xa6,
- 0x3b, 0x87, 0xc9, 0xda, 0x2c, 0x34, 0x4c, 0x10, 0x4b, 0xfc, 0x5a, 0x02,
- 0xb1, 0xd3, 0x12, 0xbb, 0x5a, 0xf5, 0x1e, 0x9e, 0x23, 0x94, 0xeb, 0xe9,
- 0x10, 0x0a, 0x87, 0x8e, 0x89, 0xa2, 0xe4, 0xa7, 0x61, 0xd4, 0x50, 0xfb,
- 0x7d, 0xed, 0xca, 0x63, 0xbb, 0x2b, 0x35, 0x26, 0x6d, 0xaa, 0xa9, 0xfb,
- 0x1e, 0x36, 0xbc, 0xe4, 0x8d, 0xed, 0x0d, 0x77, 0x7d, 0xfd, 0xca, 0xe6,
- 0x7b, 0x56, 0xc8, 0x2e, 0xa3, 0x29, 0xde, 0xf0, 0x54, 0x94, 0xa5, 0x94,
- 0x64, 0xdc, 0xe9, 0xbc, 0x26, 0x3f, 0xdb, 0x63, 0xe2, 0x07, 0x73, 0x92,
- 0x84, 0x58, 0x91, 0x32, 0x80, 0xb3, 0xf9, 0x82, 0xf3, 0xe2, 0x22, 0xa5,
- 0x66, 0x71, 0x8e, 0x9e, 0xba, 0x23, 0xf5, 0xcc, 0x2e, 0xb7, 0xf4, 0x91,
- 0xf3, 0x51, 0xa4, 0x3e, 0x1b, 0xa7, 0x84, 0x40, 0xf9, 0xd4, 0x52, 0x28,
- 0xcd, 0xca, 0x1c, 0xde, 0xa3, 0x36, 0x39, 0x3e, 0xed, 0x67, 0x5c, 0xb6,
- 0xb6, 0x70, 0xa8, 0x10, 0xa2, 0x0b, 0x92, 0x99, 0x5a, 0x25, 0xcc, 0x77,
- 0x44, 0xd2, 0x80, 0x5c, 0x23, 0x43, 0xc5, 0x35, 0x3a, 0xd7, 0xec, 0xe8,
- 0x46, 0xf2, 0x8e, 0xd0, 0x08, 0xbb, 0x50, 0x9d, 0x55, 0xcf, 0x4c, 0xbb,
- 0xb3, 0xdc, 0x74, 0x68, 0x13, 0x4c, 0x43, 0x5a, 0x48, 0x4a, 0x64, 0xa1,
- 0x6e, 0x61, 0xcb, 0xf9, 0xd1, 0xae, 0xd1, 0x14, 0x52, 0x8d, 0x76, 0x85,
- 0x2e, 0x5f, 0x03, 0xfd, 0x64, 0xf0, 0x3f, 0x64, 0x66, 0x48, 0x3d, 0x27,
- 0x98, 0x19, 0x48, 0xa1, 0x16, 0x1e, 0x31, 0x88, 0x20, 0x5b, 0x21, 0xf0,
- 0x09, 0x43, 0xaa, 0xe3, 0xf0, 0x8a, 0x87, 0x73, 0x12, 0x24, 0xe4, 0x9f,
- 0x8e, 0x3d, 0xcf, 0xba, 0xc5, 0xb3, 0x44, 0x54, 0x70, 0x73, 0x1b, 0xae,
- 0xc8, 0x2c, 0x60, 0x85, 0x41, 0x87, 0xed, 0x45, 0xf6, 0x35, 0x71, 0x3f,
- 0x1f, 0x95, 0xa9, 0x3f, 0xad, 0x6a, 0xcb, 0x6d, 0x68, 0x4f, 0x79, 0xf3,
- 0x5b, 0x57, 0x06, 0x53, 0xf2, 0x0f, 0xcc, 0x0b, 0x83, 0xf7, 0xe2, 0xce,
- 0xf8, 0x8a, 0xbf, 0x30, 0x24, 0x79, 0x26, 0x5f, 0x38, 0xa7, 0xb6, 0xec,
- 0x03, 0x07, 0xf2, 0x12, 0xf1, 0xf8, 0xf7, 0xc4, 0x93, 0xd3, 0x9e, 0x15,
- 0x7e, 0x5e, 0x79, 0xfe, 0x3b, 0xe5, 0x7e, 0x71, 0xc8, 0xf8, 0xaf, 0xfc,
- 0xae, 0x18, 0x8f, 0xf7, 0xd4, 0xc4, 0x90, 0x33, 0x36, 0xc4, 0xf7, 0xb2,
- 0xbf, 0xb7, 0xc3, 0x9d, 0xd1, 0x2a, 0xbd, 0xd0, 0xeb, 0x64, 0x4b, 0x3a,
- 0xcc, 0x08, 0x0e, 0x02, 0x0a, 0x6a, 0xb9, 0x81, 0x53, 0x7e, 0x09, 0x61,
- 0x7d, 0xe6, 0x02, 0xba, 0x46, 0x30, 0x8e, 0xae, 0x26, 0x73, 0xd7, 0x82,
- 0xcd, 0x4f, 0x32, 0xb5, 0x89, 0x9b, 0xc7, 0x2e, 0x50, 0xdf, 0xaa, 0x7c,
- 0x9b, 0x54, 0xef, 0xde, 0xb7, 0x9a, 0x32, 0x8a, 0xa8, 0xa4, 0x28, 0xa9,
- 0x7b, 0x67, 0x53, 0x84, 0xf3, 0x5a, 0x91, 0x15, 0x66, 0x47, 0x5f, 0x1c,
- 0xbe, 0xfb, 0xe6, 0x18, 0x9a, 0x00, 0x64, 0x3b, 0x1d, 0xd0, 0x9c, 0x76,
- 0xfb, 0x74, 0xc9, 0xd5, 0x38, 0xcd, 0x8c, 0x01, 0x26, 0x67, 0x56, 0xfb,
- 0xbd, 0x65, 0x7c, 0x06, 0x89, 0x35, 0x36, 0x2f, 0x96, 0x5b, 0xc0, 0x6f,
- 0x1b, 0x89, 0x7a, 0x54, 0xa1, 0x41, 0x00, 0x2a, 0x5d, 0xb1, 0xfb, 0xb5,
- 0x5e, 0x8e, 0x17, 0xa8, 0x52, 0x03, 0xfb, 0xcc, 0x89, 0x19, 0xf5, 0xb3,
- 0x0c, 0xdb, 0x67, 0x71, 0x43, 0x53, 0xa3, 0xac, 0x4d, 0x5f, 0xc1, 0xa6,
- 0x1f, 0xfa, 0x5e, 0x35, 0xe6, 0x0c, 0xd9, 0xdb, 0xdd, 0x75, 0x6c, 0x6e,
- 0xa9, 0x6d, 0x30, 0x90, 0x96, 0x55, 0xb2, 0x3b, 0x78, 0xf1, 0x62, 0x95,
- 0x20, 0xb4, 0x8d, 0x82, 0x25, 0xe2, 0xd9, 0xa3, 0xdb, 0x1c, 0xd0, 0xa3,
- 0xab, 0xda, 0x8c, 0x58, 0x34, 0xa8, 0xbd, 0x27, 0xc0, 0xc3, 0xda, 0x6a,
- 0x2d, 0xe2, 0xe1, 0xe1, 0x68, 0x0d, 0xe2, 0x60, 0x85, 0x35, 0x6b, 0x68,
- 0x2a, 0x37, 0x5c, 0x42, 0x2f, 0x58, 0x55, 0xd4, 0x19, 0xb4, 0x20, 0xec,
- 0x61, 0x6e, 0x43, 0xbe, 0x8f, 0x9a, 0x18, 0xcf, 0x80, 0x5f, 0x31, 0x45,
- 0x57, 0xe1, 0x68, 0x54, 0x25, 0x78, 0x7f, 0x4e, 0xfe, 0xbf, 0x93, 0x77,
- 0xdf, 0xb0, 0x3b, 0xc4, 0xd8, 0xf6, 0xf0, 0xa5, 0xef, 0x74, 0x2c, 0xfd,
- 0xf7, 0x4c, 0xcb, 0x46, 0xc8, 0x53, 0x60, 0x3d, 0x98, 0xc9, 0x3f, 0x2f,
- 0xa4, 0x78, 0xb7, 0xab, 0x44, 0x18, 0xf7, 0x55, 0x5e, 0x26, 0x03, 0x4f,
- 0x39, 0x11, 0x4e, 0x36, 0xd2, 0x4c, 0xe6, 0xf7, 0x6a, 0x19, 0xc9, 0x17,
- 0xd0, 0xba, 0x46, 0x66, 0x6c, 0xb3, 0x6c, 0xe7, 0xb2, 0x79, 0x8e, 0x1d,
- 0x14, 0xe8, 0x26, 0x91, 0x4f, 0xf2, 0x67, 0x70, 0xbe, 0x3b, 0x9a, 0xc8,
- 0xe3, 0xba, 0xd2, 0x72, 0x75, 0xb6, 0x09, 0xa1, 0x49, 0xb3, 0xea, 0xab,
- 0xef, 0xa7, 0xeb, 0x86, 0xe4, 0x42, 0x7b, 0xbe, 0x54, 0xa7, 0xd5, 0x06,
- 0xcf, 0x7c, 0x59, 0xfe, 0xe3, 0xfd, 0x5c, 0xd3, 0x43, 0x3a, 0xa8, 0x74,
- 0x53, 0x15, 0x53, 0xe7, 0xd3, 0x90, 0x1e, 0x47, 0x03, 0x21, 0x97, 0xfc,
- 0x3e, 0x7f, 0x3a, 0x8d, 0x7f, 0x8e, 0xdf, 0xd7, 0xa9, 0x89, 0x1c, 0x00,
- 0x52, 0x69, 0x85, 0xb5, 0xcf, 0xe6, 0xd6, 0xab, 0x2d, 0x43, 0x5a, 0x38,
- 0x24, 0x47, 0xde, 0x56, 0x4b, 0x36, 0x12, 0xa1, 0xf1, 0x00, 0xa5, 0x1f,
- 0xed, 0x21, 0x30, 0xc7, 0xe0, 0xf2, 0xfa, 0x98, 0x0b, 0x3f, 0xf1, 0xb2,
- 0x28, 0x32, 0x32, 0x52, 0x91, 0xa0, 0x9f, 0xb3, 0xbd, 0xd0, 0xb7, 0xa7,
- 0xa8, 0x5a, 0x4a, 0xb5, 0x6b, 0x80, 0x19, 0x4c, 0xe7, 0xd3, 0xfa, 0x06,
- 0xf5, 0xdd, 0xac, 0x2b, 0x2a, 0x54, 0xaf, 0xf0, 0x79, 0x6e, 0x97, 0xf4,
- 0x29, 0x56, 0xa6, 0xa0, 0x5c, 0xb7, 0xa6, 0xa2, 0x3d, 0x03, 0x1b, 0x1b,
- 0xe4, 0x84, 0xdf, 0x21, 0x57, 0xfc, 0x28, 0x9c, 0x40, 0xf5, 0xa5, 0xaf,
- 0xf5, 0xc7, 0xbb, 0x18, 0xc3, 0x03, 0x9e, 0x79, 0xcf, 0x7b, 0xf2, 0xd8,
- 0x13, 0xc7, 0xfa, 0x7b, 0x24, 0xae, 0x88, 0x43, 0xe7, 0x09, 0xb2, 0xe8,
- 0x56, 0x6f, 0x7b, 0xd3, 0x7c, 0x5b, 0x00, 0x4e, 0x1f, 0x58, 0x66, 0x28,
- 0x28, 0xd2, 0x59, 0x2e, 0x4e, 0x53, 0x3b, 0x7f, 0x7f, 0x29, 0x3c, 0x5b,
- 0x2a, 0xde, 0xfd, 0x2a, 0x4b, 0x7e, 0x49, 0x55, 0x48, 0x33, 0xd2, 0x2d,
- 0xd8, 0xfc, 0x45, 0xac, 0x9b, 0x33, 0x2f, 0xf1, 0x4d, 0x8c, 0x90, 0x3b,
- 0xd8, 0xb7, 0x59, 0x36, 0xe7, 0x67, 0xa3, 0x4b, 0x72, 0x23, 0xe0, 0xea,
- 0x53, 0x7b, 0xf4, 0xfb, 0xe3, 0x8b, 0xaf, 0xcf, 0x46, 0xc7, 0x66, 0x3d,
- 0x5e, 0x1f, 0x7f, 0xfd, 0x9e, 0xa4, 0x16, 0xed, 0x0e, 0x76, 0x3d, 0x53,
- 0x06, 0x8e, 0xf8, 0xbf, 0xa8, 0xe0, 0x2d, 0xd2, 0xf0, 0xb0, 0x4d, 0x59,
- 0x0f, 0xea, 0xdb, 0x4c, 0x76, 0x51, 0xf1, 0xb8, 0x64, 0xeb, 0x2c, 0x63,
- 0x5f, 0x65, 0x8e, 0x7c, 0x85, 0xfc, 0x4a, 0x77, 0x18, 0x41, 0x03, 0xa9,
- 0xc0, 0x23, 0xcc, 0x4b, 0x39, 0x4a, 0xcc, 0x30, 0x5e, 0x1f, 0x38, 0xa7,
- 0xe6, 0x2d, 0x7b, 0xa6, 0xe5, 0xf0, 0xb9, 0xb2, 0x94, 0xa0, 0x5a, 0xc2,
- 0xe6, 0x3d, 0xb2, 0x7a, 0xb4, 0xd0, 0x0d, 0xcd, 0x4a, 0xbe, 0x35, 0x51,
- 0x49, 0x91, 0xda, 0xc6, 0x3d, 0x9e, 0x37, 0xb8, 0xc2, 0xd9, 0xa0, 0x90,
- 0xa2, 0x8e, 0x35, 0x6f, 0x6e, 0xae, 0x60, 0x4b, 0x50, 0xb5, 0xcc, 0xab,
- 0xe7, 0x59, 0x43, 0x1b, 0x9e, 0xc9, 0xad, 0x2d, 0xf1, 0x70, 0xc6, 0x05,
- 0x0b, 0xc5, 0xd9, 0x96, 0x18, 0xc1, 0x77, 0x18, 0xa7, 0xb0, 0xb7, 0x73,
- 0x55, 0xc4, 0x4c, 0xc9, 0x7e, 0x69, 0xe6, 0xfd, 0x12, 0x35, 0xbc, 0x75,
- 0x6e, 0x57, 0x8b, 0x9e, 0x4b, 0x1e, 0x29, 0xf9, 0x39, 0x58, 0x11, 0x90,
- 0xd4, 0x27, 0xf4, 0xbb, 0x53, 0xec, 0xc5, 0x29, 0x28, 0x7c, 0x76, 0x29,
- 0xf5, 0xc0, 0x33, 0x21, 0x57, 0xd7, 0x51, 0x54, 0x6d, 0x56, 0x02, 0x4c,
- 0x2e, 0xf1, 0x88, 0x85, 0xab, 0xa0, 0xf6, 0x68, 0x49, 0x11, 0x12, 0xe0,
- 0xcd, 0x17, 0x9e, 0x77, 0x6e, 0x1d, 0xff, 0xc5, 0x19, 0xf5, 0x02, 0x27,
- 0x1b, 0x1b, 0x1b, 0xaf, 0x8f, 0x2f, 0x0f, 0x4f, 0x4e, 0x8f, 0x5f, 0x27,
- 0x27, 0xef, 0xde, 0x9c, 0x5d, 0xbc, 0x3d, 0xbc, 0x14, 0x38, 0xc6, 0x6b,
- 0xeb, 0x91, 0x73, 0x15, 0xe8, 0xa4, 0xcc, 0x92, 0xe7, 0xad, 0xc3, 0x16,
- 0x36, 0xab, 0x78, 0x2d, 0x15, 0xe6, 0x79, 0x1a, 0xb2, 0xd6, 0x1c, 0x6c,
- 0x68, 0xc5, 0x1d, 0x57, 0xb1, 0x8f, 0xf4, 0x82, 0x1d, 0x1b, 0x7b, 0x1f,
- 0xea, 0x74, 0xaa, 0x1b, 0x0d, 0x64, 0xcc, 0x6b, 0x9b, 0xb2, 0x05, 0x58,
- 0xf9, 0x4e, 0xa4, 0xe5, 0x64, 0x7e, 0x13, 0xec, 0xc9, 0xc1, 0xc9, 0x0e,
- 0x97, 0xfa, 0xf6, 0xca, 0x39, 0x68, 0x29, 0x1e, 0x10, 0x96, 0x50, 0x3b,
- 0x1e, 0xb7, 0xd0, 0x55, 0x09, 0x54, 0x89, 0xdf, 0xa6, 0x65, 0xcc, 0xc1,
- 0x8a, 0x1a, 0x2d, 0x80, 0x61, 0x3c, 0x5c, 0xf0, 0xce, 0x5b, 0xdf, 0x9c,
- 0x0b, 0xe2, 0xcc, 0x08, 0xa9, 0x04, 0x70, 0x10, 0xf1, 0x3f, 0xd5, 0x66,
- 0xa5, 0xec, 0x59, 0x07, 0x23, 0x95, 0x15, 0xd8, 0x1a, 0x9d, 0x13, 0x1a,
- 0x5f, 0xbf, 0xa9, 0x2d, 0x1b, 0xaf, 0x37, 0x1a, 0xd3, 0xe0, 0x44, 0x38,
- 0xa5, 0x69, 0x2e, 0xb6, 0x37, 0x50, 0x1f, 0xe9, 0xae, 0x50, 0x3e, 0x3f,
- 0x8b, 0x36, 0x75, 0x16, 0x7f, 0xbe, 0xe3, 0x15, 0xc5, 0xc4, 0x69, 0x73,
- 0xe7, 0x56, 0x39, 0xc0, 0x07, 0xaf, 0xcd, 0x43, 0xd3, 0xe5, 0x7c, 0xd1,
- 0xae, 0x83, 0xce, 0xbe, 0x3c, 0x5d, 0x42, 0x56, 0xda, 0xa0, 0x7c, 0xc0,
- 0xf1, 0xf3, 0x46, 0xe6, 0x80, 0xc7, 0x81, 0xfd, 0xdd, 0x68, 0x28, 0x10,
- 0x85, 0x78, 0x6d, 0xf4, 0xae, 0x5b, 0xd9, 0xb4, 0xad, 0xb9, 0x60, 0x42,
- 0x46, 0xf6, 0xd9, 0x6e, 0x29, 0xd4, 0xd4, 0x61, 0x8d, 0x30, 0xff, 0x5b,
- 0xca, 0x8c, 0x46, 0x5b, 0x56, 0x1a, 0x94, 0xab, 0x22, 0x0c, 0x3e, 0xb6,
- 0x06, 0xe5, 0xbf, 0xd8, 0x86, 0xf4, 0xf8, 0x92, 0x5e, 0x3f, 0xed, 0x58,
- 0xc0, 0xba, 0x3d, 0x10, 0x29, 0x6e, 0xe4, 0xc9, 0xbd, 0x16, 0x01, 0x21,
- 0xba, 0x49, 0xc0, 0x8d, 0xc8, 0x59, 0x0a, 0xce, 0x03, 0x91, 0x94, 0x08,
- 0x88, 0xe9, 0xf6, 0x5d, 0xa2, 0xb2, 0x45, 0xf9, 0x91, 0x6c, 0x79, 0xad,
- 0x68, 0xeb, 0xa5, 0xeb, 0x31, 0x8a, 0x4c, 0x58, 0x00, 0x21, 0xf4, 0x8a,
- 0x0d, 0xcd, 0x2c, 0xd6, 0x97, 0x14, 0xef, 0x08, 0xe9, 0xbf, 0x45, 0x73,
- 0x05, 0x8e, 0x43, 0x54, 0x25, 0xc9, 0xd2, 0x1a, 0x06, 0x15, 0x92, 0x76,
- 0xf8, 0xce, 0xb0, 0x6e, 0x58, 0xc7, 0x67, 0xe7, 0x95, 0xf8, 0x83, 0x88,
- 0x9e, 0x26, 0x2f, 0xe9, 0x59, 0xe2, 0x0b, 0xd2, 0x43, 0xc1, 0x20, 0x7d,
- 0xdb, 0x8a, 0x06, 0x38, 0x4c, 0x33, 0x40, 0x5a, 0x0b, 0xf4, 0xf4, 0x9c,
- 0x1e, 0x48, 0x55, 0xc3, 0xef, 0xb9, 0x6a, 0x4c, 0xbd, 0xc5, 0x8d, 0xf9,
- 0x46, 0x2f, 0xb9, 0x26, 0x1b, 0x69, 0x6c, 0xba, 0x1e, 0x08, 0xd0, 0x29,
- 0x3f, 0xfe, 0xea, 0x22, 0xbd, 0x4a, 0xb3, 0xd9, 0x1f, 0xf7, 0x77, 0x47,
- 0xe9, 0xf5, 0x72, 0x96, 0xfe, 0x2b, 0x5e, 0x7c, 0xf5, 0xe4, 0xc9, 0xfe,
- 0xee, 0x67, 0x9f, 0xef, 0xf6, 0xba, 0xe8, 0x03, 0xc7, 0x5d, 0x02, 0x84,
- 0x0d, 0xe8, 0x6a, 0x48, 0xee, 0xe2, 0x3b, 0xc3, 0xc9, 0x75, 0x0e, 0xa3,
- 0x8e, 0x14, 0x25, 0x99, 0x83, 0x94, 0xad, 0x49, 0x88, 0x49, 0x29, 0x94,
- 0x6a, 0x6e, 0x5c, 0xb3, 0xaf, 0xff, 0xb0, 0x77, 0xc0, 0xa2, 0x0c, 0x24,
- 0x77, 0xb8, 0x27, 0x68, 0x2e, 0x5e, 0xe6, 0x85, 0xb9, 0x81, 0xbe, 0x4c,
- 0x9a, 0xf4, 0xda, 0xee, 0x55, 0x61, 0x62, 0xe0, 0x94, 0x0b, 0x1b, 0xdf,
- 0xbc, 0xa2, 0x4d, 0x9e, 0x53, 0x95, 0x16, 0xf0, 0x6d, 0x6c, 0xd6, 0x50,
- 0xb2, 0x16, 0x59, 0x85, 0xec, 0xd8, 0xeb, 0x2a, 0x9d, 0x6b, 0x62, 0x0b,
- 0xbd, 0x4f, 0xb0, 0xb5, 0xe1, 0x62, 0x96, 0x70, 0x85, 0x6a, 0xf1, 0x5b,
- 0xe4, 0x6e, 0xc3, 0xcd, 0x16, 0xb5, 0x2b, 0x1c, 0xca, 0xd7, 0xcd, 0x89,
- 0xd4, 0x5b, 0xdb, 0x24, 0x97, 0x4a, 0x8f, 0x7d, 0x2a, 0x3d, 0x8c, 0x8a,
- 0x45, 0x06, 0xa4, 0xd9, 0x54, 0x47, 0x3a, 0xc4, 0xdf, 0xc1, 0x1c, 0x92,
- 0x32, 0x57, 0x62, 0x6f, 0xc1, 0xb9, 0xfa, 0xb6, 0xf6, 0x16, 0x3b, 0xdf,
- 0xf2, 0xd6, 0xb8, 0x52, 0x07, 0xf0, 0x4c, 0x5e, 0xaa, 0x97, 0x68, 0xef,
- 0xcb, 0x57, 0xd8, 0x10, 0x7b, 0x5f, 0xfe, 0xab, 0xfd, 0xd9, 0xbe, 0xfc,
- 0x6c, 0xff, 0xcb, 0x7f, 0x1d, 0x0e, 0xd1, 0x3f, 0xda, 0x21, 0x9b, 0xfa,
- 0xeb, 0x4d, 0xa1, 0x93, 0x4a, 0xe5, 0x08, 0xf3, 0xbf, 0xc8, 0x6c, 0xe7,
- 0x1a, 0xad, 0x58, 0xeb, 0x9e, 0x7e, 0xd9, 0x9f, 0xe5, 0xbe, 0x44, 0x54,
- 0xad, 0xdc, 0xca, 0x6b, 0x9b, 0x4a, 0x0f, 0xf4, 0x55, 0x64, 0xd2, 0x6d,
- 0x1c, 0x04, 0xed, 0x08, 0x8c, 0x12, 0x2f, 0xff, 0x1b, 0xed, 0xd4, 0x7f,
- 0xdb, 0x48, 0x24, 0xba, 0x49, 0xcb, 0x71, 0x8f, 0x80, 0x87, 0x6e, 0x5b,
- 0xe6, 0x81, 0x62, 0xca, 0x68, 0x6a, 0x99, 0x52, 0x45, 0xe8, 0x0e, 0xf4,
- 0xaa, 0x4f, 0xfd, 0x49, 0x0a, 0xf6, 0xda, 0x1c, 0x1b, 0x7d, 0x86, 0xd3,
- 0x6a, 0x8c, 0x8e, 0xd1, 0x90, 0x74, 0xc0, 0xb3, 0x7f, 0xfc, 0xf1, 0x47,
- 0x51, 0xa8, 0xcc, 0x5f, 0xa4, 0xe7, 0x37, 0x46, 0x16, 0x4d, 0x8d, 0x78,
- 0x9b, 0xa3, 0x9c, 0x8d, 0x94, 0x0c, 0x93, 0x2b, 0xff, 0x4a, 0x46, 0xca,
- 0x8d, 0x98, 0xa5, 0x3d, 0x1c, 0x1d, 0x9d, 0x9c, 0x00, 0x31, 0x8a, 0x49,
- 0x3d, 0x66, 0x31, 0x86, 0xbd, 0xb9, 0x05, 0x88, 0x87, 0x83, 0x25, 0xfa,
- 0x5b, 0x9f, 0xd6, 0x0e, 0xcb, 0x8e, 0xdd, 0x6f, 0x1a, 0x53, 0x03, 0x5c,
- 0x96, 0x12, 0x7b, 0x96, 0xb5, 0x9c, 0x57, 0x3d, 0x7e, 0xf0, 0x3a, 0xef,
- 0x49, 0x10, 0x8b, 0x7f, 0xd2, 0x73, 0xfc, 0x60, 0xbc, 0x1e, 0x58, 0xb4,
- 0x57, 0xac, 0x3a, 0xe5, 0x7f, 0xcf, 0x5e, 0xed, 0xed, 0xc6, 0x9f, 0x40,
- 0xd4, 0x96, 0xe8, 0x10, 0x5f, 0xb9, 0x80, 0xe0, 0xba, 0xe7, 0xf3, 0x29,
- 0x3f, 0x2d, 0xc5, 0xb6, 0x51, 0xf9, 0xec, 0x55, 0x6f, 0x4c, 0x37, 0x2c,
- 0xfd, 0xff, 0x15, 0xfd, 0x40, 0xc4, 0x4a, 0x9e, 0xad, 0x97, 0xe3, 0x79,
- 0xde, 0xea, 0xf0, 0x0e, 0x0d, 0xf0, 0x4b, 0x1a, 0xf0, 0x0f, 0x99, 0xdd,
- 0x1d, 0x19, 0xa9, 0x76, 0xac, 0xfb, 0x6d, 0x5e, 0x95, 0xe5, 0x38, 0xad,
- 0x36, 0x25, 0x9c, 0xa3, 0xfd, 0xdc, 0xdc, 0xdb, 0x7f, 0xf2, 0xf4, 0xd9,
- 0xe6, 0x50, 0xf4, 0x34, 0x88, 0x88, 0xc6, 0x27, 0x37, 0xe1, 0x26, 0x2c,
- 0x2d, 0x07, 0x23, 0xb3, 0x41, 0x07, 0x10, 0x0b, 0xae, 0x92, 0x14, 0xa3,
- 0xcf, 0xbd, 0xe2, 0xaf, 0xfd, 0x2b, 0x7d, 0xe7, 0x15, 0x3e, 0xf1, 0xaf,
- 0xf9, 0xf4, 0x95, 0x1d, 0xe1, 0xbf, 0xd2, 0x58, 0x5e, 0xc9, 0x20, 0xcc,
- 0xba, 0x6a, 0xca, 0x62, 0xbd, 0xbd, 0x11, 0x95, 0x6b, 0xd1, 0xc5, 0xd5,
- 0x45, 0xdc, 0xc0, 0xa0, 0x81, 0x60, 0x18, 0x4c, 0x39, 0xfa, 0x01, 0x6d,
- 0xd5, 0x25, 0xec, 0xed, 0x7c, 0x1a, 0x98, 0x56, 0x06, 0xd4, 0xca, 0xc0,
- 0x09, 0x6c, 0xb0, 0x58, 0x0e, 0x68, 0x21, 0xfa, 0x92, 0xb1, 0x39, 0x83,
- 0x97, 0x45, 0x54, 0x81, 0xb2, 0x04, 0x08, 0xe0, 0xe8, 0x9b, 0x93, 0x4d,
- 0x01, 0xde, 0xb0, 0x99, 0xd8, 0x8f, 0xf9, 0xa7, 0x2d, 0xc4, 0x70, 0x92,
- 0x2e, 0xe8, 0xf4, 0x6f, 0x24, 0x42, 0xd7, 0x9b, 0x12, 0x8e, 0x84, 0xbe,
- 0xcb, 0xc9, 0xd5, 0xe6, 0x63, 0x72, 0xeb, 0xcc, 0xc8, 0xe3, 0x5d, 0x31,
- 0xc1, 0xa6, 0xd7, 0x8c, 0x99, 0x97, 0x5a, 0x00, 0x25, 0x88, 0xf9, 0x2c,
- 0x6c, 0x76, 0xe6, 0xe0, 0x8d, 0x0d, 0x7a, 0xda, 0x6c, 0x40, 0x79, 0xd4,
- 0xfc, 0x8a, 0xe5, 0x89, 0x8a, 0x88, 0xde, 0x50, 0xcb, 0xa9, 0xf3, 0x4e,
- 0xf0, 0xa5, 0x07, 0x18, 0x02, 0xc6, 0x99, 0xe4, 0x74, 0xb2, 0xdb, 0x84,
- 0x15, 0x43, 0x92, 0x9f, 0x2f, 0x6d, 0x15, 0xc1, 0x2f, 0x13, 0x50, 0x6e,
- 0xf3, 0x5b, 0x12, 0x77, 0x14, 0x07, 0x14, 0xfb, 0x6c, 0xf1, 0x92, 0x98,
- 0x07, 0x36, 0x04, 0xe6, 0xa1, 0x71, 0x44, 0x31, 0x10, 0x2a, 0x51, 0x0c,
- 0x74, 0x7c, 0x2f, 0xce, 0x06, 0x6a, 0x61, 0xf3, 0x0b, 0x1c, 0x82, 0x97,
- 0xb4, 0x0c, 0xf8, 0xf5, 0x97, 0x9b, 0x1b, 0xb6, 0x8c, 0x96, 0xd5, 0xdc,
- 0x3b, 0x01, 0x64, 0xde, 0xa0, 0xfe, 0x78, 0x3c, 0x12, 0x06, 0xd6, 0xc6,
- 0x88, 0xf2, 0x05, 0xb5, 0x32, 0x8c, 0x36, 0x35, 0xa3, 0x34, 0xfe, 0x96,
- 0x83, 0x9a, 0x1b, 0xcf, 0x28, 0x15, 0x82, 0xb4, 0xc7, 0x4d, 0x42, 0xab,
- 0xe2, 0xbd, 0x4d, 0xcb, 0x1b, 0x0b, 0x9f, 0x29, 0x04, 0x5e, 0x95, 0x69,
- 0x6d, 0xdc, 0x0d, 0x21, 0x58, 0x73, 0xda, 0xbc, 0x3f, 0xb0, 0xda, 0x53,
- 0x1e, 0x5c, 0x4e, 0x24, 0xf3, 0x20, 0x05, 0x47, 0xe4, 0x0d, 0x25, 0x1b,
- 0xcb, 0x47, 0x5f, 0xd1, 0x74, 0xef, 0x0d, 0xaf, 0xf3, 0x2b, 0x9e, 0x0c,
- 0x23, 0x22, 0xaf, 0xb3, 0x1d, 0xf3, 0xcf, 0xbe, 0xf9, 0xf9, 0x3e, 0x69,
- 0x65, 0xf4, 0x97, 0x27, 0xc0, 0x63, 0xf9, 0x77, 0xbf, 0x77, 0x36, 0xec,
- 0xb9, 0xa0, 0xbf, 0xe4, 0xf6, 0xce, 0x97, 0xa8, 0x8e, 0xf4, 0x12, 0xdb,
- 0x9c, 0x06, 0x88, 0x4c, 0x3c, 0x55, 0x35, 0x7d, 0x50, 0x09, 0x19, 0x5a,
- 0x64, 0x92, 0x2e, 0x29, 0x05, 0xc6, 0x82, 0x47, 0x04, 0x48, 0x21, 0x8a,
- 0x3a, 0xe9, 0xdd, 0xb9, 0xb8, 0x67, 0x28, 0x65, 0x08, 0x37, 0x6b, 0x76,
- 0xb7, 0xdd, 0xf7, 0x91, 0xb6, 0x46, 0xbc, 0xdf, 0x52, 0x02, 0x3e, 0xb1,
- 0x94, 0x58, 0x9d, 0x16, 0x9f, 0xdf, 0x92, 0x92, 0x93, 0x5e, 0x5e, 0x32,
- 0x96, 0x39, 0xef, 0xae, 0x60, 0xbb, 0x6c, 0x23, 0x03, 0xf9, 0xf2, 0xba,
- 0xd9, 0xa6, 0xcf, 0x64, 0x33, 0xe6, 0x62, 0x93, 0x7a, 0xad, 0xfa, 0x55,
- 0x65, 0x61, 0xc3, 0x87, 0x36, 0xfd, 0xb3, 0x5f, 0x4e, 0x9a, 0xcc, 0xd8,
- 0xba, 0xc8, 0x60, 0x60, 0x39, 0x77, 0x3c, 0x67, 0xba, 0x66, 0x6c, 0xe1,
- 0xd9, 0x80, 0x6f, 0x4f, 0x51, 0x89, 0x06, 0x6f, 0x86, 0xc9, 0x29, 0x10,
- 0xe3, 0x75, 0xca, 0x9c, 0x3f, 0x7a, 0xc3, 0xea, 0x6e, 0x30, 0x5b, 0xa7,
- 0x56, 0x1a, 0x4d, 0x7a, 0x8f, 0xd8, 0x33, 0x74, 0x4b, 0xa1, 0x00, 0xa3,
- 0x33, 0x3a, 0x59, 0xbf, 0x10, 0x7d, 0xa4, 0x0f, 0x5f, 0xb8, 0x7d, 0x0e,
- 0x3e, 0x7f, 0xf6, 0xfb, 0x21, 0x57, 0xcc, 0x6e, 0x58, 0xaf, 0x11, 0x06,
- 0x6d, 0x89, 0x02, 0xea, 0x89, 0x75, 0x7b, 0x08, 0x18, 0x52, 0x99, 0xb1,
- 0xd3, 0x85, 0x48, 0x1c, 0x88, 0x78, 0x08, 0x31, 0x61, 0xd3, 0x1a, 0x76,
- 0x19, 0x15, 0xd3, 0xa4, 0x6d, 0xd4, 0x83, 0xdd, 0x38, 0xcb, 0xac, 0x71,
- 0xcd, 0x6b, 0x55, 0x5a, 0xb8, 0x39, 0x7c, 0x31, 0xac, 0x6e, 0xb8, 0x70,
- 0x1d, 0x75, 0x92, 0xfa, 0x95, 0xde, 0x9a, 0xbf, 0x90, 0x72, 0x36, 0xae,
- 0xcc, 0xaa, 0x67, 0x15, 0x5f, 0x0d, 0x8c, 0x11, 0xf2, 0x2a, 0x8b, 0x7e,
- 0x7b, 0xf9, 0xf6, 0x34, 0x51, 0xee, 0xa4, 0x2b, 0xa7, 0x2a, 0x2a, 0x32,
- 0x13, 0x43, 0x14, 0xcf, 0x08, 0xeb, 0x43, 0xf2, 0x14, 0xdf, 0x72, 0x3c,
- 0xb7, 0x94, 0x54, 0x9f, 0xd0, 0xe4, 0xb4, 0x8e, 0xac, 0xf7, 0x04, 0xbf,
- 0x4a, 0xfb, 0xc8, 0x6c, 0x93, 0x4d, 0x9a, 0x82, 0xcd, 0x7e, 0xb2, 0x49,
- 0x5d, 0xa5, 0x5f, 0x6c, 0x62, 0x3e, 0xf1, 0x63, 0x6f, 0xfa, 0x36, 0x87,
- 0x91, 0x53, 0x48, 0xcf, 0xbc, 0xfa, 0xaa, 0x35, 0x4b, 0xf8, 0xb9, 0x36,
- 0xf5, 0x8a, 0xf3, 0x45, 0x02, 0x9d, 0x5b, 0xdf, 0xf5, 0xda, 0x7f, 0x75,
- 0x64, 0x5a, 0xe1, 0xca, 0xa5, 0x0e, 0xe6, 0x3a, 0xb1, 0x3f, 0xcb, 0x91,
- 0x5f, 0x1b, 0x34, 0xf4, 0xf0, 0x29, 0xbe, 0x54, 0x51, 0x64, 0x21, 0xa0,
- 0x2c, 0xdd, 0x78, 0x0b, 0xa8, 0xe4, 0x35, 0xab, 0x99, 0xb3, 0xdd, 0x77,
- 0x57, 0xc2, 0xcb, 0x00, 0x99, 0xb3, 0x37, 0x44, 0xc2, 0xa5, 0xe3, 0x8d,
- 0xb7, 0x0d, 0x58, 0xe3, 0xbd, 0x87, 0x09, 0xed, 0x59, 0x54, 0xae, 0x9a,
- 0xf4, 0x3a, 0xcb, 0x31, 0xd9, 0xb5, 0xc8, 0x27, 0x94, 0xb2, 0x63, 0x44,
- 0xd7, 0xb4, 0xbc, 0x26, 0xc9, 0xd5, 0x37, 0x07, 0x8d, 0xfe, 0x04, 0x20,
- 0x79, 0x5f, 0x3e, 0xca, 0x1d, 0xc6, 0x59, 0x61, 0x2d, 0x5e, 0xff, 0xbd,
- 0x02, 0xa2, 0xfa, 0x86, 0x5c, 0xa1, 0x13, 0x69, 0xdb, 0x36, 0xcd, 0xeb,
+ 0xe1, 0xc2, 0xd7, 0xae, 0x00, 0x8a, 0xf0, 0xbb, 0x2f, 0x0b, 0x63, 0xa9,
+ 0xa4, 0x82, 0x01, 0x62, 0x59, 0x72, 0x0d, 0xb1, 0xce, 0xcf, 0x61, 0x4b,
+ 0xb6, 0x64, 0x08, 0xc7, 0x4f, 0xbf, 0x60, 0x90, 0x9f, 0x6d, 0xae, 0x25,
+ 0x3a, 0xbc, 0x4c, 0x10, 0xbe, 0x75, 0x74, 0xee, 0x68, 0xb6, 0xee, 0x17,
+ 0x84, 0x58, 0x26, 0x40, 0x88, 0x57, 0x12, 0x52, 0xb9, 0x93, 0x41, 0x62,
+ 0x9e, 0x7d, 0x22, 0x22, 0x61, 0x19, 0x9b, 0xb3, 0x09, 0xad, 0x56, 0x2f,
+ 0xe3, 0xa5, 0xd6, 0xf0, 0x73, 0xc8, 0x42, 0x9a, 0x6d, 0xd3, 0x6f, 0xb0,
+ 0xd3, 0x4b, 0xba, 0x04, 0xab, 0x81, 0x6a, 0x49, 0xda, 0x3a, 0xa4, 0xa4,
+ 0x31, 0x99, 0x5b, 0x98, 0x49, 0xbe, 0x6d, 0x65, 0x70, 0xc4, 0x69, 0x53,
+ 0xb6, 0x37, 0xa1, 0x04, 0x7b, 0x1f, 0xa6, 0xad, 0x04, 0xba, 0xbb, 0x56,
+ 0x6a, 0x4f, 0x6b, 0x94, 0xcb, 0xb1, 0x5b, 0x58, 0xda, 0x23, 0xc0, 0xf5,
+ 0x52, 0x93, 0x47, 0x61, 0x99, 0x3c, 0xad, 0x23, 0xe1, 0xcd, 0x9e, 0x30,
+ 0xbe, 0x18, 0x81, 0x82, 0xbc, 0xb4, 0x65, 0x6d, 0x77, 0x8e, 0x99, 0xad,
+ 0x8f, 0x72, 0x21, 0x6e, 0x20, 0x43, 0x21, 0x14, 0x37, 0x22, 0x79, 0x57,
+ 0xcb, 0x9b, 0x87, 0x45, 0x4d, 0xd8, 0x25, 0x35, 0xfd, 0x66, 0xf7, 0x2c,
+ 0x0d, 0xf2, 0x62, 0xbd, 0xd0, 0x91, 0x4e, 0x3c, 0xea, 0xc3, 0x18, 0x2b,
+ 0xe8, 0xc4, 0x6b, 0x8e, 0xc2, 0x38, 0xe4, 0x2a, 0x83, 0x3e, 0x40, 0xc2,
+ 0xd1, 0x21, 0xd4, 0x55, 0x1f, 0xa6, 0x9d, 0x47, 0x1c, 0x78, 0x06, 0xab,
+ 0x1c, 0x24, 0x5f, 0xa5, 0x75, 0x3e, 0xe9, 0x4b, 0xc5, 0x0b, 0xa9, 0x80,
+ 0x41, 0x6f, 0xd8, 0xaa, 0x18, 0xc9, 0x16, 0x73, 0x29, 0x6f, 0x0f, 0x93,
+ 0xef, 0xb5, 0x86, 0x89, 0x31, 0x22, 0x91, 0x4a, 0x4e, 0xa1, 0x83, 0x0d,
+ 0xe6, 0xb7, 0x61, 0xc4, 0x09, 0xcd, 0x87, 0xec, 0x4f, 0xf1, 0xe5, 0x83,
+ 0x01, 0x1d, 0x1f, 0x71, 0xf4, 0x8e, 0x58, 0xd5, 0xb4, 0xfe, 0x68, 0x03,
+ 0x67, 0x58, 0x2b, 0x11, 0x45, 0x5c, 0x01, 0x8d, 0xb9, 0x82, 0x61, 0xe4,
+ 0x0b, 0xbc, 0x06, 0x61, 0xb5, 0xc2, 0x2b, 0x60, 0x6e, 0xeb, 0x0f, 0xc1,
+ 0x59, 0x5b, 0x5b, 0x58, 0x96, 0x2d, 0xf1, 0x86, 0x9d, 0x69, 0x45, 0xd4,
+ 0x60, 0x60, 0x26, 0x8c, 0xa6, 0x46, 0x04, 0xe8, 0xd9, 0xe5, 0xf1, 0xbf,
+ 0x24, 0x87, 0xdd, 0x38, 0x3b, 0xb8, 0x5b, 0x44, 0x0c, 0x4b, 0x39, 0x60,
+ 0xbb, 0xc1, 0xd0, 0x77, 0x86, 0xb1, 0x32, 0xe9, 0x69, 0x8a, 0xe5, 0xdf,
+ 0x90, 0xec, 0x67, 0xe7, 0x51, 0xae, 0x4b, 0xc9, 0x7d, 0x41, 0xb5, 0x44,
+ 0x5b, 0x57, 0x0f, 0x11, 0x08, 0x8f, 0xec, 0x91, 0x01, 0xfe, 0x79, 0x0a,
+ 0x3d, 0xb6, 0xfc, 0x64, 0x0e, 0x36, 0x6a, 0x19, 0x42, 0x80, 0x22, 0x03,
+ 0x42, 0x2a, 0x45, 0x12, 0x3e, 0x1d, 0x98, 0xf3, 0x46, 0x08, 0xf7, 0xa5,
+ 0xaa, 0x99, 0x57, 0xe2, 0xc7, 0xb6, 0x40, 0xbb, 0xff, 0x03, 0x1d, 0xb9,
+ 0x0f, 0x7a, 0xb1, 0xc8, 0x15, 0xc8, 0x7d, 0xb9, 0x62, 0x3b, 0xa8, 0xbd,
+ 0x65, 0xf5, 0xd8, 0xf1, 0x6d, 0x76, 0xae, 0x10, 0x56, 0x2c, 0x04, 0x5d,
+ 0x01, 0x80, 0x98, 0x20, 0xc0, 0x8e, 0x3b, 0x55, 0xa5, 0xa6, 0x7f, 0x31,
+ 0x81, 0x50, 0x94, 0xee, 0x08, 0x2e, 0x86, 0x2d, 0x84, 0xa2, 0x9c, 0xe7,
+ 0x60, 0x5a, 0x6d, 0xa7, 0x52, 0x81, 0x87, 0x18, 0xb3, 0x4a, 0xbd, 0x18,
+ 0x9d, 0x1d, 0x7d, 0x3b, 0x6a, 0xa5, 0x32, 0xd5, 0x5c, 0x2d, 0x27, 0xd1,
+ 0xb2, 0x50, 0x9d, 0x0d, 0x6d, 0xa4, 0xe1, 0x49, 0xd3, 0x11, 0x4f, 0x96,
+ 0xaa, 0xd3, 0xc3, 0x37, 0xbf, 0x51, 0x70, 0xbe, 0x36, 0x4b, 0xd5, 0x53,
+ 0x26, 0x99, 0xc7, 0x34, 0x5c, 0x94, 0x1b, 0xde, 0xcd, 0xc7, 0xfb, 0xa7,
+ 0xac, 0x55, 0x26, 0x32, 0x0f, 0x2d, 0x97, 0xac, 0x18, 0x67, 0x4c, 0x24,
+ 0x65, 0x76, 0x09, 0xaf, 0x22, 0xf5, 0x0f, 0x27, 0x90, 0x77, 0xe6, 0x1c,
+ 0x9b, 0x7b, 0xc3, 0xed, 0x6e, 0xba, 0x83, 0x56, 0x8d, 0x93, 0xea, 0x23,
+ 0xd0, 0x76, 0x53, 0xf7, 0x3a, 0xab, 0x4e, 0x28, 0x2e, 0x29, 0x75, 0x61,
+ 0x48, 0xb7, 0xd2, 0x5e, 0xd3, 0xea, 0x40, 0xb3, 0x2d, 0xac, 0x9e, 0xa5,
+ 0x8b, 0x5e, 0x78, 0x19, 0x08, 0x90, 0x29, 0xd3, 0x64, 0x7e, 0x2f, 0xb9,
+ 0x48, 0xa2, 0x1b, 0x10, 0xef, 0x0a, 0xbc, 0x12, 0x9f, 0x7f, 0x1e, 0xe8,
+ 0x82, 0x9f, 0xec, 0xd3, 0x07, 0xe6, 0xd7, 0x9e, 0xf7, 0x63, 0x46, 0x98,
+ 0x14, 0xf2, 0x36, 0x40, 0x0f, 0xb5, 0x2e, 0x90, 0x88, 0x85, 0xe1, 0x55,
+ 0x5d, 0xe3, 0x2f, 0xda, 0x30, 0x4e, 0xb0, 0xcb, 0xfa, 0x4e, 0xee, 0x6f,
+ 0xb0, 0x79, 0xcd, 0x1d, 0x4d, 0x6b, 0xc6, 0x36, 0xad, 0x30, 0xcc, 0x54,
+ 0x4c, 0x76, 0x7b, 0xeb, 0x69, 0xcd, 0x46, 0x73, 0x1f, 0xd2, 0xa5, 0x4a,
+ 0x46, 0xc0, 0xa8, 0x94, 0x86, 0x69, 0x92, 0xa5, 0x33, 0x76, 0x77, 0x74,
+ 0xf6, 0x91, 0x2d, 0x77, 0xe6, 0x64, 0xc4, 0xfb, 0xd5, 0xdd, 0x79, 0xff,
+ 0x6b, 0xba, 0x73, 0x98, 0xac, 0x4d, 0xa3, 0xc3, 0x04, 0xb1, 0xc4, 0xaf,
+ 0x25, 0x10, 0x3b, 0x2d, 0xb1, 0xab, 0x55, 0xef, 0xe1, 0x39, 0x42, 0xbd,
+ 0xa1, 0x0e, 0x23, 0x72, 0xe8, 0x98, 0x28, 0x4a, 0x7e, 0x1a, 0x46, 0x0d,
+ 0xb5, 0xdf, 0xd7, 0xae, 0x3c, 0xb6, 0xbb, 0x52, 0x24, 0xd3, 0xe6, 0xca,
+ 0xba, 0xef, 0x61, 0xc3, 0x4b, 0x9e, 0xdb, 0xde, 0x70, 0xd7, 0xd7, 0xaf,
+ 0x6c, 0xc2, 0x6a, 0x85, 0x7c, 0xb8, 0x06, 0x29, 0x74, 0x4e, 0x45, 0x59,
+ 0x4a, 0x4d, 0xc9, 0x9d, 0xce, 0x6b, 0xf2, 0xb3, 0x3d, 0x66, 0xae, 0x30,
+ 0x27, 0x49, 0x98, 0x21, 0x29, 0x85, 0x39, 0x9b, 0x2f, 0x38, 0xb1, 0x2f,
+ 0x52, 0x2b, 0x17, 0xe7, 0xe8, 0xa9, 0x3b, 0x52, 0xcf, 0xec, 0x72, 0x4b,
+ 0x1f, 0x39, 0x1f, 0x45, 0x0a, 0xcc, 0x71, 0x4a, 0x08, 0x94, 0x4f, 0xad,
+ 0xe5, 0xd2, 0xac, 0x4c, 0x42, 0x3e, 0x6a, 0xb3, 0xfb, 0xd3, 0x7e, 0xc6,
+ 0x65, 0x6b, 0x2b, 0x9f, 0x0a, 0xa3, 0xbb, 0x20, 0x99, 0xa9, 0x55, 0xc2,
+ 0x7c, 0x47, 0x24, 0x0d, 0xd8, 0x41, 0x32, 0x94, 0x8c, 0xa3, 0x73, 0xcd,
+ 0x8e, 0x6e, 0x24, 0xef, 0x08, 0x0f, 0xb2, 0x0b, 0xd5, 0x59, 0xf5, 0xcc,
+ 0xb4, 0x3b, 0xcb, 0x4d, 0x87, 0x36, 0x41, 0x95, 0xa4, 0x95, 0xb0, 0x44,
+ 0x16, 0xea, 0x16, 0xb6, 0xa4, 0x25, 0xed, 0x22, 0x53, 0x21, 0x57, 0x6a,
+ 0x57, 0xe8, 0xf2, 0x35, 0xd0, 0x4f, 0x06, 0xff, 0x43, 0x66, 0x86, 0xd4,
+ 0x73, 0x82, 0x99, 0x81, 0xd5, 0x6a, 0xe1, 0x31, 0x9b, 0x08, 0xb2, 0x15,
+ 0x02, 0x9f, 0x30, 0xa4, 0x3a, 0x0e, 0xaf, 0xfa, 0x39, 0x27, 0xe8, 0x41,
+ 0xfe, 0xe9, 0xd8, 0xf3, 0xac, 0x5b, 0xfd, 0x4b, 0x44, 0x05, 0x37, 0xb7,
+ 0xe1, 0xaa, 0xe4, 0x02, 0x56, 0x18, 0x74, 0xd8, 0x5e, 0x64, 0x5f, 0x11,
+ 0x79, 0xf5, 0x51, 0x99, 0xfa, 0xd3, 0xaa, 0xb6, 0xdc, 0x86, 0xf6, 0x94,
+ 0x37, 0xbf, 0x75, 0x65, 0x70, 0x4d, 0x81, 0x81, 0x79, 0x61, 0xf0, 0x5e,
+ 0xdc, 0x19, 0x7f, 0xe6, 0x2f, 0x0c, 0x49, 0x9e, 0xc9, 0x17, 0xce, 0xa9,
+ 0x2d, 0xfb, 0xc0, 0x81, 0xbc, 0x44, 0x85, 0x08, 0x7a, 0xe2, 0xc9, 0x69,
+ 0xcf, 0x0a, 0x3f, 0xaf, 0x85, 0x0a, 0x3a, 0xf5, 0x8a, 0x71, 0xc8, 0xf8,
+ 0xaf, 0xfc, 0xae, 0x18, 0x8f, 0xf7, 0xd4, 0xc4, 0x90, 0x33, 0x36, 0xc4,
+ 0xf7, 0xb2, 0xbf, 0xb7, 0xc3, 0x9d, 0xd1, 0x32, 0xc3, 0xd0, 0xeb, 0x64,
+ 0x4b, 0x3a, 0xcc, 0x08, 0x0e, 0x02, 0x2a, 0x82, 0xb9, 0x81, 0x53, 0x7e,
+ 0x09, 0x61, 0x7d, 0xe6, 0x02, 0xba, 0x46, 0x30, 0x8e, 0xae, 0x26, 0x73,
+ 0xd7, 0x82, 0x8e, 0x50, 0x52, 0xcd, 0x89, 0x5c, 0xc8, 0x2e, 0x50, 0xdf,
+ 0xaa, 0x7c, 0x66, 0x2b, 0x0d, 0x6e, 0x7d, 0xab, 0x29, 0xa3, 0x88, 0x4a,
+ 0x8a, 0x9a, 0xc0, 0x77, 0x36, 0xc7, 0x39, 0xaf, 0x15, 0x59, 0x61, 0x76,
+ 0xf4, 0xc5, 0xe1, 0xbb, 0xaf, 0x8f, 0xa1, 0x09, 0x40, 0xb6, 0xd3, 0x01,
+ 0xcd, 0x69, 0xb7, 0x4f, 0x97, 0x5c, 0x4e, 0xd4, 0xcc, 0x18, 0x60, 0x72,
+ 0x66, 0xb5, 0xdf, 0x5b, 0xca, 0x6a, 0xb0, 0x70, 0x63, 0xf3, 0x62, 0xb9,
+ 0x05, 0xfc, 0xb6, 0x91, 0xa8, 0x47, 0x15, 0x1a, 0x04, 0xa0, 0xd2, 0x15,
+ 0xbb, 0x5f, 0xeb, 0xe5, 0x78, 0x81, 0x32, 0x3b, 0xb0, 0xcf, 0x9c, 0x98,
+ 0x51, 0x3f, 0xcb, 0xb0, 0x7d, 0x16, 0x37, 0x34, 0x35, 0xca, 0xda, 0xf4,
+ 0x15, 0x6c, 0xfa, 0xa1, 0xef, 0x55, 0x63, 0xd2, 0x93, 0xbd, 0xdd, 0x5d,
+ 0x47, 0x47, 0x97, 0xda, 0x06, 0x03, 0x69, 0x59, 0x25, 0xbb, 0x83, 0x17,
+ 0x2f, 0x56, 0x09, 0x42, 0xdb, 0x28, 0x68, 0x2e, 0x9e, 0x3d, 0xba, 0xcd,
+ 0x01, 0x3d, 0xba, 0xaa, 0xcd, 0x88, 0x45, 0x83, 0xe2, 0x81, 0x02, 0x3c,
+ 0xac, 0xad, 0xd6, 0x22, 0x1e, 0x1e, 0x8e, 0xd6, 0x20, 0x0e, 0x56, 0x58,
+ 0xb3, 0x86, 0xa6, 0x72, 0xc3, 0x55, 0xf5, 0x03, 0x2d, 0x8c, 0x3a, 0x83,
+ 0x16, 0x84, 0x3d, 0xcc, 0x6d, 0xc8, 0xf7, 0x51, 0x13, 0xe3, 0x19, 0xf0,
+ 0x2b, 0xa6, 0xe8, 0x2a, 0x1c, 0x8d, 0xaa, 0x04, 0xef, 0xcf, 0xc9, 0xff,
+ 0x77, 0xf2, 0xee, 0x6b, 0x76, 0x87, 0x18, 0xdb, 0x1e, 0xbe, 0xf4, 0x9d,
+ 0x8e, 0xa5, 0xff, 0x9e, 0x79, 0xe5, 0x08, 0x79, 0x0a, 0xac, 0x07, 0x97,
+ 0x22, 0xc8, 0x0b, 0xa9, 0x3e, 0xee, 0x4a, 0x29, 0xc6, 0x7d, 0x95, 0x97,
+ 0xc9, 0xc0, 0x53, 0x4e, 0x84, 0x54, 0x8e, 0x34, 0x93, 0xf9, 0xbd, 0x5a,
+ 0x46, 0xf2, 0x05, 0xb4, 0xae, 0x91, 0x19, 0xdb, 0x2c, 0xdb, 0xb9, 0x6c,
+ 0x9e, 0x63, 0x07, 0x05, 0xba, 0x49, 0xe4, 0x93, 0xfc, 0x19, 0x9c, 0xef,
+ 0x8e, 0x26, 0xf2, 0xb8, 0xae, 0xb4, 0x5c, 0x9d, 0x6d, 0x46, 0x6b, 0xd2,
+ 0xac, 0xfa, 0xea, 0xfb, 0xe9, 0xba, 0x21, 0xb9, 0x52, 0xa0, 0x2f, 0xd5,
+ 0x69, 0xb5, 0x41, 0x94, 0x5f, 0x96, 0xff, 0x78, 0x3f, 0xd7, 0xf4, 0x90,
+ 0x0e, 0x2a, 0xdd, 0x54, 0xc5, 0xd4, 0xf9, 0x34, 0xa4, 0xc7, 0xd1, 0x40,
+ 0xc8, 0x25, 0xbf, 0xcf, 0x9f, 0x4e, 0xe3, 0x9f, 0xe3, 0xf7, 0x75, 0x6a,
+ 0x22, 0x07, 0x80, 0x54, 0x5a, 0xa1, 0x1d, 0xb4, 0xe4, 0x00, 0x6a, 0xcb,
+ 0x90, 0x16, 0x0e, 0xc9, 0x91, 0xb7, 0xd5, 0x92, 0x8d, 0x44, 0x78, 0x48,
+ 0xc0, 0x49, 0x48, 0x7b, 0x08, 0xd4, 0x37, 0xb8, 0xbc, 0x3e, 0xe6, 0x42,
+ 0xb0, 0xbc, 0x2c, 0x8a, 0x8c, 0x8c, 0x54, 0x30, 0x0c, 0xe4, 0x6c, 0x2f,
+ 0xf4, 0xed, 0x29, 0xaa, 0x96, 0x52, 0xae, 0x1b, 0x60, 0x06, 0xd3, 0xf9,
+ 0xb4, 0xbe, 0x41, 0x81, 0x3a, 0xeb, 0x8a, 0x0a, 0xd5, 0x2b, 0x7c, 0x9e,
+ 0xdb, 0x25, 0x7d, 0x8a, 0x95, 0x29, 0x28, 0xd7, 0xad, 0xa9, 0x68, 0xcf,
+ 0xc0, 0xc6, 0x06, 0x39, 0xe1, 0x77, 0xc8, 0x15, 0x3f, 0x0a, 0x27, 0x50,
+ 0x7d, 0xe9, 0x6b, 0xfd, 0xf1, 0x2e, 0xc6, 0xf0, 0x80, 0x67, 0xde, 0xf3,
+ 0x9e, 0x3c, 0xf6, 0xc4, 0xb1, 0xfe, 0x1e, 0x89, 0x2b, 0xe2, 0xd0, 0x79,
+ 0x82, 0x2c, 0xba, 0xd5, 0xdb, 0xde, 0x34, 0xdf, 0x16, 0x80, 0xd3, 0x07,
+ 0x96, 0x19, 0x2a, 0xa2, 0x74, 0x96, 0x8b, 0xd3, 0xd4, 0xce, 0xdf, 0x5f,
+ 0x0a, 0x51, 0x98, 0x8a, 0x77, 0xbf, 0x4c, 0x94, 0x5f, 0x13, 0x16, 0xd2,
+ 0x8c, 0x74, 0x0b, 0x36, 0x7f, 0x11, 0xeb, 0xe6, 0xcc, 0x4b, 0x7c, 0x13,
+ 0x23, 0xe4, 0x0e, 0xf6, 0x6d, 0x96, 0xcd, 0xf9, 0xd9, 0xe8, 0x92, 0xdc,
+ 0x08, 0xb8, 0xfa, 0xd4, 0x1e, 0xfd, 0xee, 0xf8, 0xe2, 0xab, 0xb3, 0xd1,
+ 0xb1, 0x59, 0x8f, 0xd7, 0xc7, 0x5f, 0xbd, 0x27, 0xa9, 0x45, 0xbb, 0x83,
+ 0x5d, 0xcf, 0x94, 0x81, 0x23, 0xfe, 0x2f, 0xaa, 0xd8, 0x8b, 0x34, 0x3c,
+ 0x6c, 0x53, 0xd6, 0x83, 0xfa, 0x36, 0x93, 0x5d, 0x54, 0x3c, 0xae, 0x39,
+ 0x3b, 0xcb, 0xd8, 0x57, 0x99, 0x23, 0x5f, 0x21, 0xbf, 0xd2, 0x1d, 0x46,
+ 0xd0, 0x40, 0xaa, 0x50, 0x09, 0xf3, 0x52, 0x8e, 0x12, 0x53, 0xa4, 0xd7,
+ 0x07, 0xce, 0xa9, 0x79, 0xcb, 0x9e, 0x69, 0x39, 0x7c, 0xae, 0xae, 0x26,
+ 0xb8, 0xa2, 0xb0, 0x79, 0x8f, 0xac, 0x1e, 0x2d, 0x7c, 0x49, 0xb3, 0x92,
+ 0x6f, 0x4d, 0x94, 0x82, 0xa4, 0xb6, 0x71, 0x8f, 0xe7, 0x0d, 0xae, 0x70,
+ 0x36, 0x28, 0xa4, 0x2a, 0x65, 0xcd, 0x9b, 0x9b, 0x4b, 0xf0, 0x12, 0x54,
+ 0x2d, 0xf3, 0x0a, 0x92, 0xd6, 0xd0, 0x86, 0x67, 0x72, 0x6b, 0x4b, 0x3c,
+ 0x9c, 0x71, 0xc1, 0xc2, 0xd1, 0xb6, 0x25, 0x46, 0xf0, 0x1d, 0xc6, 0x29,
+ 0xf4, 0xf3, 0x5c, 0xd6, 0x31, 0x53, 0xb6, 0x62, 0x9a, 0x79, 0xbf, 0xc6,
+ 0x0e, 0x6f, 0x9d, 0xdb, 0xd5, 0xa2, 0xe7, 0x92, 0x47, 0x0a, 0xb2, 0x0d,
+ 0x28, 0x02, 0x92, 0xfa, 0x84, 0x7e, 0x77, 0xaa, 0xd5, 0x38, 0x05, 0x85,
+ 0xcf, 0x2e, 0xa5, 0x1e, 0x78, 0x26, 0xe4, 0xea, 0x42, 0x90, 0xaa, 0xcd,
+ 0x4a, 0x80, 0xc9, 0x25, 0x1e, 0xb1, 0x70, 0x15, 0xd4, 0x1e, 0x2d, 0x29,
+ 0x42, 0x02, 0xbc, 0xf9, 0xc2, 0xf3, 0xce, 0xad, 0xe3, 0xbf, 0x38, 0xa3,
+ 0x5e, 0xe0, 0x64, 0x63, 0x63, 0xe3, 0xf5, 0xf1, 0xe5, 0xe1, 0xc9, 0xe9,
+ 0xf1, 0xeb, 0xe4, 0xe4, 0xdd, 0x9b, 0xb3, 0x8b, 0xb7, 0x87, 0x97, 0x02,
+ 0xc7, 0x78, 0x6d, 0x3d, 0x72, 0xae, 0x84, 0x9e, 0xd4, 0x89, 0xf2, 0xbc,
+ 0x75, 0xd8, 0xc2, 0x66, 0x15, 0xcd, 0x64, 0x20, 0xc8, 0xcf, 0xd3, 0x90,
+ 0xb5, 0xe6, 0x60, 0x43, 0x4b, 0x06, 0xb9, 0x92, 0x83, 0xa4, 0x17, 0xec,
+ 0xd8, 0xd8, 0xfb, 0x50, 0xa7, 0x53, 0xdd, 0x68, 0x60, 0x93, 0x5e, 0xdb,
+ 0x94, 0xad, 0x20, 0xcb, 0x77, 0x22, 0x2d, 0xa7, 0xd0, 0x59, 0xd0, 0x9e,
+ 0x1c, 0x9c, 0xec, 0x70, 0xad, 0x72, 0xaf, 0x1e, 0x85, 0xd6, 0x12, 0x02,
+ 0xe3, 0x0a, 0xb5, 0xe3, 0x91, 0x23, 0x5d, 0x95, 0x40, 0x95, 0xf8, 0x6d,
+ 0x5a, 0xca, 0x1f, 0xac, 0xa8, 0xd1, 0x02, 0x18, 0xc6, 0xc3, 0x15, 0xfb,
+ 0xbc, 0xf5, 0xcd, 0xb9, 0xa2, 0xcf, 0x8c, 0x90, 0x4a, 0x00, 0x07, 0x11,
+ 0x81, 0x55, 0x6d, 0x56, 0xca, 0x9e, 0x75, 0x50, 0x6a, 0x59, 0x81, 0xad,
+ 0xd1, 0x39, 0xe1, 0x21, 0xf6, 0x9b, 0xda, 0xb2, 0xf1, 0x7a, 0xa3, 0x31,
+ 0x0d, 0x4e, 0x84, 0x14, 0x9b, 0xe6, 0x62, 0x7b, 0x03, 0x6c, 0x1d, 0x77,
+ 0x85, 0x12, 0x12, 0x5a, 0xb4, 0xa9, 0xb3, 0xf8, 0xf3, 0x1d, 0xaf, 0xaa,
+ 0x27, 0x4e, 0x9b, 0x3b, 0xb7, 0x4a, 0x62, 0x3e, 0x78, 0x6d, 0x1e, 0x9a,
+ 0x2e, 0xe7, 0x8b, 0x76, 0x21, 0x77, 0xf6, 0xe5, 0xe9, 0x12, 0xb2, 0xd2,
+ 0x06, 0xe5, 0x03, 0x8e, 0x9f, 0x37, 0x32, 0x07, 0x3c, 0x0e, 0xec, 0xef,
+ 0x46, 0x43, 0x81, 0xa0, 0x0e, 0xb1, 0xd1, 0xbb, 0x6e, 0x69, 0xd6, 0xb6,
+ 0xe6, 0x82, 0x09, 0x19, 0xd9, 0x67, 0xbb, 0xb5, 0x5c, 0x53, 0x87, 0x35,
+ 0xc2, 0xfc, 0x6f, 0x29, 0xb5, 0x1b, 0x6d, 0x59, 0x69, 0x50, 0xae, 0x8a,
+ 0x30, 0xf8, 0xd8, 0x1a, 0x94, 0xff, 0x62, 0x1b, 0xd2, 0xe3, 0x4b, 0x7a,
+ 0xfd, 0xb4, 0xa3, 0x31, 0xeb, 0xf6, 0x40, 0xa4, 0xb8, 0x91, 0x27, 0xf7,
+ 0x5a, 0xc5, 0x84, 0xf8, 0x32, 0x01, 0x37, 0x22, 0x67, 0x29, 0x38, 0x0f,
+ 0x44, 0x52, 0x22, 0x20, 0xa6, 0xdb, 0x77, 0x89, 0xd2, 0x1c, 0xe5, 0x47,
+ 0xb2, 0xe5, 0xb5, 0x24, 0xaf, 0x97, 0xae, 0xc7, 0x28, 0x32, 0xa1, 0x31,
+ 0x84, 0xd0, 0x2b, 0x36, 0x34, 0xb3, 0x58, 0x5f, 0x52, 0xbc, 0x23, 0xa4,
+ 0xff, 0x16, 0xcd, 0x15, 0x48, 0x1a, 0x51, 0x56, 0x25, 0x4b, 0x6b, 0x18,
+ 0x54, 0x48, 0xda, 0xe1, 0x3b, 0xc3, 0xba, 0x61, 0x1d, 0x21, 0x9f, 0x57,
+ 0xa3, 0x10, 0x22, 0x7a, 0x9a, 0xbc, 0xa4, 0x67, 0x89, 0xf0, 0xc8, 0x92,
+ 0xfb, 0x00, 0xa4, 0x6f, 0x5b, 0xd1, 0x00, 0x87, 0x69, 0x06, 0x48, 0x6b,
+ 0x81, 0x9e, 0x9e, 0xd3, 0x03, 0xa9, 0x6a, 0xf8, 0x3d, 0x57, 0x4e, 0xaa,
+ 0xb7, 0xb8, 0x31, 0xdf, 0xe8, 0x25, 0xd7, 0x64, 0x23, 0x8d, 0x4d, 0xd7,
+ 0x03, 0x01, 0x3a, 0xe5, 0xc7, 0x5f, 0x5d, 0xa4, 0x57, 0x69, 0x36, 0xfb,
+ 0xe3, 0xfe, 0xee, 0x28, 0xbd, 0x5e, 0xce, 0xd2, 0x7f, 0xc5, 0x8b, 0xaf,
+ 0x9e, 0x3c, 0xd9, 0xdf, 0xfd, 0xec, 0xf3, 0xdd, 0x5e, 0x17, 0x7d, 0xe0,
+ 0xb8, 0x4b, 0x80, 0xb0, 0x01, 0xdf, 0x0e, 0xc9, 0x5d, 0x7c, 0x67, 0x38,
+ 0xb9, 0xce, 0x61, 0xd4, 0x91, 0xa2, 0x24, 0x73, 0x90, 0xb2, 0x35, 0x09,
+ 0x31, 0x29, 0x95, 0x5e, 0xcd, 0x8d, 0x6b, 0xf6, 0xf5, 0x1f, 0xf6, 0x0e,
+ 0x58, 0x94, 0x81, 0xa5, 0x0f, 0xf7, 0x04, 0xcd, 0xc5, 0xcb, 0xbc, 0x30,
+ 0x37, 0xd0, 0x97, 0x49, 0x93, 0x5e, 0xdb, 0xbd, 0x2a, 0x4c, 0x0c, 0x9c,
+ 0x72, 0x61, 0xe3, 0x9b, 0x57, 0xb4, 0xc9, 0x05, 0x16, 0x7d, 0x22, 0xb5,
+ 0xdd, 0x36, 0xc9, 0xfb, 0xd1, 0x63, 0xf7, 0x47, 0x0f, 0x1d, 0xe0, 0xd3,
+ 0x0d, 0xc1, 0x33, 0xd5, 0x4e, 0x0d, 0xf1, 0x77, 0x90, 0x7c, 0xa4, 0xcc,
+ 0xcb, 0xd8, 0x5b, 0x70, 0x5a, 0xbd, 0xad, 0xf3, 0xc5, 0x7e, 0xb2, 0xbc,
+ 0xd5, 0x85, 0xd4, 0x61, 0x31, 0x93, 0x97, 0xea, 0xd0, 0xd9, 0xfb, 0xf2,
+ 0x15, 0xd6, 0x6e, 0xef, 0xcb, 0x7f, 0xb5, 0x3f, 0xdb, 0x97, 0x9f, 0xed,
+ 0x7f, 0xf9, 0xaf, 0xc3, 0x21, 0xfa, 0x47, 0x8b, 0xb9, 0xa9, 0xbf, 0xde,
+ 0x14, 0xe6, 0xa0, 0x54, 0x4e, 0x1b, 0xff, 0x8b, 0x2c, 0x6c, 0xae, 0x07,
+ 0x8b, 0x65, 0xe9, 0xe9, 0x97, 0xfd, 0x09, 0x51, 0x36, 0x25, 0x2b, 0x62,
+ 0xf2, 0xda, 0x66, 0xbd, 0x03, 0x28, 0x15, 0x99, 0x1f, 0x1b, 0xb2, 0x40,
+ 0x3b, 0x82, 0x78, 0xc4, 0xcb, 0xff, 0x46, 0x9b, 0xea, 0xdf, 0x36, 0x12,
+ 0x09, 0x44, 0x2e, 0xb2, 0xca, 0xa8, 0xc1, 0x14, 0x9b, 0xd0, 0x1d, 0xc6,
+ 0xfc, 0x52, 0x4c, 0x4f, 0x4d, 0x2d, 0x53, 0x56, 0x07, 0x5d, 0x57, 0x5e,
+ 0xa5, 0xab, 0x3f, 0x49, 0x71, 0x60, 0x9b, 0x0e, 0xa3, 0xcf, 0x70, 0x06,
+ 0x8c, 0x51, 0x07, 0x1a, 0x3a, 0xc8, 0x78, 0xf6, 0x8f, 0x3f, 0xfc, 0x20,
+ 0xba, 0x8f, 0xf9, 0x8b, 0xf4, 0xfc, 0xc6, 0x88, 0x8d, 0xa9, 0x91, 0x44,
+ 0x73, 0x94, 0xce, 0x91, 0xf2, 0x64, 0x72, 0x3b, 0x5f, 0xc9, 0x48, 0xb9,
+ 0x11, 0xb3, 0xb4, 0x87, 0xa3, 0xa3, 0x93, 0x13, 0x80, 0x3b, 0x31, 0xa9,
+ 0xc7, 0x2c, 0x71, 0xb0, 0x8d, 0xb6, 0x80, 0xc6, 0x70, 0x08, 0x42, 0x7f,
+ 0x97, 0xd2, 0xda, 0x61, 0xd9, 0xb1, 0x51, 0x4d, 0x63, 0x6a, 0x2b, 0xcb,
+ 0x52, 0x62, 0x7b, 0xb1, 0x42, 0xf2, 0xaa, 0xc7, 0x0f, 0x5e, 0xe7, 0x3d,
+ 0x89, 0x37, 0xf1, 0x4f, 0x7a, 0x8e, 0x8b, 0x8c, 0xd7, 0x03, 0x8b, 0xf6,
+ 0x8a, 0xb5, 0x9c, 0xfc, 0xef, 0xd9, 0xab, 0xbd, 0xdd, 0xf8, 0x13, 0x08,
+ 0xb0, 0x12, 0xf5, 0xe2, 0x2b, 0x17, 0xbb, 0x5b, 0xf7, 0x7c, 0x3e, 0xe5,
+ 0xa7, 0xa5, 0xb0, 0x37, 0xaa, 0xac, 0xbd, 0xea, 0x8d, 0xe9, 0x32, 0xa4,
+ 0xff, 0xbf, 0xa2, 0x1f, 0x08, 0x2e, 0xc9, 0xb3, 0xf5, 0x72, 0x3c, 0xcf,
+ 0x5b, 0x1d, 0xde, 0xa1, 0x01, 0x7e, 0x49, 0x03, 0xfe, 0x3e, 0xb3, 0xbb,
+ 0x23, 0x23, 0x2d, 0x8c, 0xd5, 0xb4, 0xcd, 0xab, 0xb2, 0x1c, 0xa7, 0xd5,
+ 0xa6, 0x44, 0x5e, 0xb4, 0x9f, 0x9b, 0x7b, 0xfb, 0x4f, 0x9e, 0x3e, 0xdb,
+ 0x1c, 0x8a, 0x4a, 0x85, 0xd3, 0xdc, 0xf8, 0x3c, 0x24, 0xdc, 0x84, 0x65,
+ 0xd0, 0x60, 0x10, 0x35, 0x32, 0xf7, 0x63, 0x71, 0x50, 0x12, 0x38, 0xf4,
+ 0xb9, 0x57, 0xfc, 0xb5, 0x7f, 0xa5, 0xef, 0xbc, 0xc2, 0x27, 0xfe, 0x35,
+ 0x9f, 0xbe, 0xb2, 0x23, 0xfc, 0x57, 0x1a, 0xcb, 0x2b, 0x19, 0x84, 0x59,
+ 0x57, 0xcd, 0x2e, 0xac, 0xb7, 0x37, 0xa2, 0x22, 0x28, 0xba, 0xb8, 0xba,
+ 0x88, 0x1b, 0x18, 0x34, 0xc0, 0x06, 0x83, 0x29, 0x07, 0x2a, 0xa0, 0x58,
+ 0xba, 0xdc, 0xba, 0x9d, 0x4f, 0x03, 0xd3, 0xca, 0x80, 0x5a, 0x19, 0x38,
+ 0xd9, 0x0a, 0xc6, 0xcc, 0x01, 0x2d, 0x44, 0x5f, 0x92, 0x2b, 0x67, 0x70,
+ 0x88, 0xc8, 0xad, 0x5d, 0x96, 0x88, 0xd7, 0x1f, 0x7d, 0x7d, 0xb2, 0x29,
+ 0x18, 0x19, 0xb6, 0xe8, 0xfa, 0x31, 0x57, 0xb2, 0x45, 0x03, 0x4e, 0xd2,
+ 0x05, 0x9d, 0xfe, 0x8d, 0x44, 0xa8, 0x81, 0x53, 0x82, 0x7c, 0xd0, 0x77,
+ 0x39, 0x0f, 0xda, 0x7c, 0x4c, 0x2e, 0x88, 0x19, 0x39, 0xa7, 0x2b, 0x26,
+ 0xf3, 0xf4, 0x9a, 0x31, 0xf3, 0x52, 0x0b, 0xf6, 0x03, 0xe1, 0x99, 0x85,
+ 0x4d, 0xa4, 0x1c, 0xbc, 0xb1, 0xf1, 0x49, 0x9b, 0xb8, 0x27, 0x8f, 0x9a,
+ 0x5f, 0xb1, 0x3c, 0x51, 0x11, 0xd1, 0x1b, 0x6a, 0xe9, 0x76, 0xde, 0x09,
+ 0xbe, 0xf4, 0x40, 0x32, 0xff, 0x38, 0x93, 0xf4, 0x4b, 0xf6, 0x70, 0xb0,
+ 0x0e, 0x47, 0xf2, 0xf3, 0xa5, 0xad, 0x58, 0xf8, 0x65, 0x02, 0x7a, 0x6f,
+ 0x7e, 0x4b, 0x42, 0x84, 0xe2, 0x2b, 0x62, 0xf7, 0x2a, 0x5e, 0x12, 0x4d,
+ 0xde, 0x46, 0xab, 0x3c, 0xe0, 0x8c, 0xdc, 0xe1, 0x42, 0x5b, 0x8a, 0x81,
+ 0x8e, 0xef, 0xc5, 0x2f, 0x40, 0x2d, 0x6c, 0x7e, 0x81, 0x43, 0xf0, 0x92,
+ 0x96, 0x01, 0xbf, 0xfe, 0x72, 0x73, 0xc3, 0x96, 0xec, 0xb2, 0x4a, 0x76,
+ 0x27, 0xd6, 0xcb, 0x1b, 0xd4, 0x1f, 0x8f, 0xc7, 0x97, 0xc0, 0x8a, 0x13,
+ 0xb1, 0xb3, 0xa0, 0x2e, 0x87, 0x51, 0x7c, 0x66, 0x94, 0x71, 0xdf, 0xf2,
+ 0x25, 0x73, 0xe3, 0x19, 0x65, 0x2d, 0x90, 0xa2, 0xb7, 0x49, 0xc0, 0x52,
+ 0xbc, 0xb7, 0x69, 0x39, 0x6a, 0xe1, 0xde, 0x84, 0xc0, 0xab, 0x32, 0xad,
+ 0xc3, 0xbb, 0x21, 0x5c, 0x68, 0x4e, 0xf1, 0xf6, 0x07, 0x56, 0x7b, 0xf7,
+ 0xbc, 0x4b, 0x5f, 0x64, 0xca, 0xa2, 0xe0, 0x88, 0xbc, 0xa1, 0xbc, 0x60,
+ 0xf9, 0xe8, 0x2b, 0x9a, 0xee, 0xbd, 0xe1, 0x75, 0x7e, 0xc5, 0x93, 0x61,
+ 0x44, 0xe4, 0x75, 0xb6, 0x63, 0xfe, 0xd9, 0x37, 0x3f, 0xdf, 0x27, 0x05,
+ 0x8a, 0xfe, 0xf2, 0x04, 0xd0, 0x29, 0xff, 0x9a, 0xf6, 0xce, 0x86, 0x3d,
+ 0x17, 0xf4, 0x97, 0xdc, 0x5e, 0xcf, 0x12, 0x80, 0x91, 0x5e, 0x62, 0x9b,
+ 0xd3, 0x00, 0x91, 0x34, 0xa7, 0x5a, 0xa1, 0x8f, 0xff, 0x20, 0x9b, 0x88,
+ 0xac, 0xc7, 0x25, 0x65, 0xab, 0x58, 0x9c, 0x87, 0x60, 0x1e, 0x44, 0xa7,
+ 0x26, 0x15, 0x39, 0x17, 0x4f, 0x0a, 0x65, 0xf7, 0xe0, 0x66, 0xcd, 0xee,
+ 0xb6, 0xfb, 0x3e, 0x28, 0xd6, 0x88, 0xf7, 0x5b, 0xca, 0x95, 0x27, 0x42,
+ 0x11, 0xab, 0x7e, 0xe2, 0xf3, 0x5b, 0x52, 0xde, 0xd2, 0x4b, 0x21, 0xc6,
+ 0x32, 0xe7, 0xdd, 0x15, 0x6c, 0x97, 0x88, 0x64, 0xcc, 0x5d, 0x5e, 0x37,
+ 0xdb, 0xf4, 0x99, 0x6c, 0xc6, 0xb4, 0x69, 0x52, 0x1b, 0x56, 0xbf, 0xaa,
+ 0x84, 0x69, 0xf8, 0xd0, 0xa6, 0x7f, 0xf6, 0xcb, 0x49, 0x93, 0x19, 0xb3,
+ 0x14, 0xc9, 0x06, 0x2c, 0xe7, 0x8e, 0xe7, 0x4c, 0x0d, 0x8d, 0x2d, 0x3c,
+ 0x1b, 0xf0, 0xed, 0x29, 0xda, 0xcb, 0xe0, 0xcd, 0x30, 0x39, 0x05, 0xb8,
+ 0xbb, 0x4e, 0x99, 0x9e, 0x47, 0x6f, 0x58, 0xdd, 0x0d, 0x66, 0xeb, 0xd4,
+ 0x4a, 0xd9, 0x49, 0xef, 0x11, 0xd1, 0x85, 0x6e, 0x29, 0x14, 0x7b, 0x74,
+ 0xf6, 0x21, 0xeb, 0x17, 0xa2, 0x8f, 0xf4, 0xe1, 0xb6, 0xb6, 0xcf, 0xc1,
+ 0x3d, 0xcf, 0x2e, 0x3a, 0xa4, 0x75, 0xd9, 0x0d, 0xeb, 0x35, 0xc2, 0xf8,
+ 0x2a, 0xd1, 0x15, 0x3d, 0xb1, 0x6e, 0x0f, 0x01, 0xa3, 0x1f, 0x33, 0xf6,
+ 0x8f, 0x10, 0xdf, 0x02, 0x71, 0x04, 0x21, 0x7c, 0x6b, 0x5a, 0xc3, 0x2e,
+ 0xa3, 0xc2, 0x9d, 0xb4, 0x8d, 0x7a, 0x30, 0xf1, 0x66, 0x99, 0xb5, 0x83,
+ 0x79, 0xad, 0x4a, 0x8b, 0x0c, 0x87, 0xdb, 0x84, 0xd5, 0x0d, 0x17, 0x59,
+ 0xa3, 0x4e, 0x52, 0xbf, 0xd2, 0x5b, 0xf3, 0x17, 0xf2, 0x1c, 0x8e, 0x2b,
+ 0xb3, 0xea, 0x59, 0xc5, 0x57, 0x03, 0xc3, 0x79, 0xbc, 0x2a, 0xa6, 0xdf,
+ 0x5c, 0xbe, 0x3d, 0x4d, 0x94, 0xe6, 0xe8, 0xca, 0x69, 0x75, 0x0a, 0xa2,
+ 0xc4, 0x10, 0xc5, 0x89, 0xc1, 0xfa, 0x90, 0x3c, 0xc5, 0xb7, 0x1c, 0xcf,
+ 0x2d, 0xe5, 0xbf, 0x27, 0x34, 0x39, 0xad, 0x23, 0xeb, 0x3d, 0xc1, 0xaf,
+ 0xd2, 0x3e, 0x32, 0xdb, 0x64, 0x93, 0xa6, 0x60, 0xb3, 0x9f, 0x6c, 0x52,
+ 0x57, 0xe9, 0x17, 0x9b, 0x98, 0x4f, 0xfc, 0xd8, 0x9b, 0xbe, 0xcd, 0x61,
+ 0xe4, 0x14, 0xd2, 0x33, 0xaf, 0xfe, 0xdc, 0x9a, 0x25, 0xfc, 0x5c, 0x9b,
+ 0x7a, 0xc5, 0xa9, 0x1d, 0x81, 0x7a, 0xac, 0xef, 0x7a, 0xed, 0xbf, 0x3a,
+ 0x32, 0xad, 0x70, 0x95, 0x54, 0x87, 0x48, 0x9d, 0xd8, 0x9f, 0xe5, 0x48,
+ 0x85, 0x0d, 0x1a, 0x7a, 0xf8, 0x14, 0x5f, 0xaa, 0x28, 0xb2, 0x68, 0x4d,
+ 0x96, 0x6e, 0xbc, 0x05, 0x54, 0xf2, 0x9a, 0xd5, 0xcc, 0xd9, 0x44, 0xbb,
+ 0x2b, 0xe1, 0x10, 0x80, 0xcc, 0xd9, 0x1b, 0x22, 0x37, 0xd2, 0x71, 0xd4,
+ 0xdb, 0x06, 0xac, 0x9d, 0xdd, 0xc3, 0x84, 0xf6, 0x2c, 0x80, 0x56, 0xad,
+ 0x6f, 0x9d, 0xe5, 0x98, 0xec, 0x5a, 0xe4, 0x13, 0xca, 0xae, 0x31, 0xa2,
+ 0x6b, 0x5a, 0x5e, 0x93, 0xe4, 0xea, 0x9b, 0x83, 0x46, 0x7f, 0x02, 0x3b,
+ 0xbc, 0x2f, 0x1f, 0xe5, 0x0e, 0xe3, 0xac, 0x70, 0xa8, 0x45, 0xff, 0xbd,
+ 0x02, 0x4d, 0xfa, 0x86, 0xbc, 0x96, 0x13, 0x69, 0xdb, 0x36, 0xcd, 0xeb,
0x61, 0xda, 0xb7, 0xbf, 0xf0, 0xbf, 0xa5, 0x93, 0x93, 0x4a, 0xcb, 0x5c,
- 0x41, 0x56, 0x4a, 0xec, 0xce, 0xee, 0x6d, 0xfd, 0x2c, 0x38, 0xb8, 0x88,
- 0xfa, 0x9d, 0xef, 0xad, 0x99, 0x64, 0x01, 0x6e, 0x7e, 0xb5, 0xc9, 0x39,
- 0x02, 0x9b, 0x2f, 0x37, 0x21, 0xc1, 0x48, 0x2e, 0xcd, 0xc7, 0x19, 0x72,
- 0xd5, 0xe4, 0x72, 0xda, 0xe4, 0x5b, 0x71, 0xc0, 0xba, 0x83, 0x10, 0x5c,
- 0xba, 0x03, 0x82, 0x6b, 0xd9, 0x99, 0x91, 0x3e, 0x78, 0x12, 0x6e, 0x02,
- 0x94, 0x60, 0x41, 0xaf, 0x88, 0xa5, 0x79, 0xdc, 0x30, 0x50, 0x46, 0x2e,
- 0x5d, 0xa8, 0x65, 0x20, 0x56, 0x21, 0xae, 0x21, 0x71, 0x73, 0x2e, 0x8b,
- 0x05, 0xa5, 0xd2, 0x4f, 0x1a, 0x78, 0x5b, 0xf8, 0x2c, 0x0d, 0x93, 0xf7,
- 0xc5, 0x94, 0xcb, 0xce, 0x93, 0xb1, 0x9c, 0x57, 0x93, 0xe5, 0x9c, 0x5c,
- 0x15, 0x13, 0x72, 0x90, 0xe1, 0xe2, 0x61, 0xf5, 0xa0, 0x15, 0x9e, 0xf7,
- 0x3b, 0xcc, 0xce, 0x11, 0x76, 0x98, 0xcb, 0x77, 0x01, 0x45, 0x21, 0x00,
- 0x96, 0x38, 0xc4, 0xa1, 0x15, 0x58, 0x82, 0x15, 0x11, 0x40, 0x14, 0x19,
- 0x3c, 0x7e, 0x73, 0x7c, 0x71, 0x71, 0x7c, 0x41, 0xf3, 0x7d, 0xd8, 0x29,
- 0x54, 0xa6, 0xfc, 0xd0, 0x2e, 0xd4, 0xa8, 0xb0, 0x5f, 0xdf, 0x53, 0xa3,
- 0x59, 0x49, 0x24, 0x0a, 0xa5, 0x4a, 0x17, 0x2c, 0x08, 0xa6, 0x14, 0xe2,
- 0x4a, 0x10, 0xbe, 0x7b, 0x11, 0xb0, 0x6f, 0x1b, 0x36, 0x00, 0x0c, 0x0a,
- 0x0e, 0xc8, 0x96, 0x6e, 0xe1, 0x5a, 0xa8, 0xa4, 0x38, 0xc0, 0x52, 0x33,
- 0xf8, 0x6f, 0xb2, 0x96, 0x9a, 0x3a, 0x14, 0xa4, 0x6e, 0x26, 0xc1, 0xf4,
- 0x99, 0xf5, 0x4f, 0x60, 0xc8, 0x57, 0x74, 0x46, 0xc9, 0x76, 0xc2, 0x64,
- 0xd4, 0xcd, 0x72, 0x91, 0x4f, 0xad, 0xb7, 0xd7, 0xfc, 0xdc, 0xa8, 0x7f,
- 0x09, 0x9f, 0xf2, 0x5a, 0xb1, 0x2e, 0x88, 0x6a, 0xaa, 0x33, 0xc2, 0xf7,
- 0xb6, 0x75, 0xca, 0x78, 0x27, 0x48, 0x7c, 0x63, 0xd0, 0x98, 0x72, 0xbe,
- 0xb7, 0x53, 0xd1, 0x65, 0xef, 0x67, 0xf0, 0x32, 0x92, 0xb4, 0x50, 0xf8,
- 0x8d, 0x2f, 0x19, 0xc8, 0x97, 0x35, 0x77, 0x78, 0x77, 0x57, 0xf6, 0xf7,
- 0x02, 0x19, 0xa8, 0xd5, 0x41, 0xf2, 0x97, 0x3a, 0x9f, 0xfc, 0xec, 0x2e,
- 0x0f, 0xa4, 0xff, 0xb4, 0x39, 0xaf, 0x30, 0x75, 0x32, 0x51, 0x62, 0x0c,
- 0x73, 0xe6, 0xf7, 0xfb, 0xd1, 0xf1, 0x45, 0x72, 0xf8, 0x0d, 0x91, 0x9d,
- 0xff, 0x83, 0x0b, 0x4c, 0xcf, 0xc9, 0xed, 0xb0, 0x21, 0x1c, 0x8e, 0x42,
- 0x83, 0x92, 0xa9, 0x2b, 0x5c, 0xaa, 0x06, 0x1e, 0xb5, 0x01, 0x6e, 0xdc,
- 0x2b, 0x77, 0xdd, 0xb7, 0xd7, 0x90, 0xdc, 0x85, 0x0f, 0xac, 0xe2, 0x63,
- 0xd6, 0x90, 0x0e, 0x99, 0xbf, 0x8a, 0x4c, 0xa0, 0xc4, 0x21, 0x09, 0x5d,
- 0x1b, 0xe9, 0x7d, 0x1d, 0x98, 0x9d, 0xbc, 0x4a, 0x87, 0xc9, 0xe6, 0xdb,
- 0xf2, 0xef, 0x46, 0x19, 0x48, 0x77, 0x9e, 0x0c, 0x77, 0x93, 0xad, 0x1f,
- 0xf2, 0xe2, 0xc5, 0xb3, 0x2f, 0x92, 0x93, 0xed, 0xcd, 0x16, 0x98, 0x9f,
- 0xab, 0xad, 0x8c, 0xd3, 0xe2, 0xa3, 0x5d, 0xb2, 0x33, 0x9c, 0x6c, 0x06,
- 0xd5, 0x89, 0xf3, 0xa1, 0xe6, 0x4a, 0x07, 0x2b, 0x5b, 0x44, 0x9e, 0xa8,
- 0xe4, 0x05, 0x24, 0xdf, 0x4b, 0xba, 0xf3, 0x13, 0x58, 0xf9, 0xe6, 0xa9,
- 0x29, 0x4d, 0xdd, 0x8b, 0x67, 0x41, 0x13, 0x4f, 0x6d, 0x1b, 0xef, 0xb9,
- 0x8d, 0x5f, 0xd8, 0xc4, 0xfe, 0x70, 0x77, 0x3f, 0xd9, 0x3a, 0x1b, 0xed,
- 0xec, 0xdb, 0x16, 0xc2, 0x26, 0xf6, 0xd1, 0x04, 0x3d, 0xd4, 0x7e, 0xf9,
- 0x29, 0x7d, 0xff, 0x2f, 0x59, 0xf1, 0x73, 0xb2, 0xf5, 0xe3, 0xde, 0x9e,
- 0x69, 0xe0, 0x8b, 0xe4, 0xf0, 0xe4, 0xc7, 0xe4, 0xe9, 0xd0, 0x34, 0xf6,
- 0x2e, 0xbd, 0x95, 0xe6, 0x84, 0xb0, 0x79, 0x84, 0x46, 0xcc, 0xef, 0x83,
- 0x36, 0x9e, 0x75, 0xda, 0x38, 0x35, 0x76, 0xe1, 0x27, 0x73, 0xad, 0xec,
- 0x0e, 0x9f, 0xec, 0x27, 0xf9, 0xb3, 0xcf, 0x9f, 0x6b, 0x43, 0xd2, 0x06,
- 0x7e, 0xdf, 0xf6, 0x56, 0x32, 0xbb, 0x8a, 0x51, 0x75, 0x8e, 0x3f, 0x19,
- 0x81, 0x06, 0x11, 0x51, 0x91, 0xa7, 0xf0, 0x26, 0xad, 0xa6, 0xb2, 0xdd,
- 0xa8, 0x0c, 0x8b, 0x59, 0x29, 0x61, 0xcb, 0xcf, 0xe0, 0xb6, 0x34, 0x17,
- 0xe7, 0x41, 0xd0, 0x1d, 0xb2, 0x4d, 0xf5, 0xd1, 0x2f, 0x92, 0xb7, 0xa3,
- 0x93, 0x63, 0x33, 0xa2, 0x5d, 0xd3, 0x35, 0x37, 0x87, 0xdc, 0x21, 0xfc,
- 0x0a, 0x93, 0xfb, 0x02, 0x8c, 0xb6, 0xd2, 0x86, 0xea, 0xdc, 0x0c, 0x64,
- 0x35, 0x9b, 0xce, 0x5c, 0xdc, 0x35, 0xbe, 0x4b, 0x90, 0x94, 0xc1, 0xe1,
- 0x35, 0x99, 0x10, 0x7c, 0xd5, 0xe2, 0xd3, 0xdf, 0x95, 0x85, 0x39, 0x26,
- 0x55, 0x59, 0x11, 0x72, 0x6a, 0xb3, 0xa5, 0x2d, 0x7c, 0xf7, 0xfa, 0x98,
- 0x33, 0xf0, 0xdf, 0xa6, 0x85, 0x91, 0x91, 0x44, 0xa4, 0x55, 0x7f, 0xa4,
- 0xf8, 0x3f, 0x87, 0x73, 0xf8, 0xfd, 0xd3, 0xfb, 0xe2, 0x93, 0x59, 0xc7,
- 0xcf, 0x86, 0x7b, 0x04, 0xd9, 0x26, 0xab, 0xf7, 0xcd, 0x5b, 0xf3, 0xef,
- 0xbd, 0xa7, 0x9b, 0x09, 0xfd, 0xaa, 0x6d, 0xc1, 0xeb, 0x79, 0xdd, 0x38,
- 0x3a, 0x3b, 0xfb, 0xee, 0x84, 0x01, 0x20, 0x47, 0xe2, 0x56, 0x25, 0xe5,
- 0xca, 0x5a, 0xc5, 0x2c, 0x5d, 0x8d, 0xf5, 0xe6, 0xb2, 0x95, 0x10, 0x8c,
- 0xfb, 0x98, 0x65, 0x0b, 0xe4, 0x0c, 0x77, 0x24, 0x42, 0x23, 0x32, 0xda,
- 0x62, 0x9b, 0x48, 0xfd, 0xe9, 0xf0, 0x7d, 0x36, 0xb5, 0x75, 0xe1, 0x8e,
- 0xef, 0x2d, 0xcb, 0x47, 0xea, 0x8a, 0xf2, 0xa2, 0x8b, 0x36, 0x5b, 0x41,
- 0x5d, 0xd0, 0x58, 0x61, 0x2a, 0xf8, 0x23, 0xb6, 0xef, 0xe6, 0xc8, 0x68,
- 0xf7, 0xdc, 0xe9, 0x03, 0xf1, 0xda, 0x6e, 0x7a, 0xfc, 0xf9, 0xd0, 0x68,
- 0x91, 0xae, 0xc3, 0x10, 0x35, 0x32, 0x10, 0x04, 0x38, 0x2f, 0xb2, 0x19,
- 0x35, 0xd3, 0x33, 0xc0, 0xf3, 0xde, 0x1d, 0xbe, 0x3d, 0x7e, 0xf5, 0xfd,
- 0xe1, 0xe9, 0xfb, 0x63, 0xf3, 0x4a, 0x6e, 0x3e, 0xb6, 0xe5, 0x20, 0x7c,
- 0xe8, 0xe3, 0x3c, 0x9f, 0x94, 0x33, 0x8a, 0x32, 0x6d, 0x7e, 0xb1, 0xb9,
- 0xc1, 0xf0, 0xf2, 0xa4, 0x47, 0x6f, 0xed, 0xf1, 0x6b, 0x66, 0x5f, 0xd0,
- 0xbf, 0xf6, 0xf9, 0x5f, 0xfb, 0x5f, 0xf4, 0xb6, 0x5b, 0x83, 0x0e, 0xac,
- 0xe4, 0x2b, 0x94, 0xe5, 0x44, 0x39, 0x45, 0x54, 0xa0, 0x46, 0xee, 0x06,
- 0xcf, 0x4a, 0x4f, 0x63, 0x34, 0x7a, 0xb7, 0xd1, 0xb3, 0x5b, 0xe3, 0x7b,
- 0xdf, 0x06, 0xef, 0xd1, 0x4b, 0xaf, 0xa0, 0x60, 0xf4, 0xb6, 0xfb, 0x56,
- 0xe5, 0x40, 0xa8, 0x9c, 0xda, 0xd0, 0x26, 0x98, 0x79, 0x32, 0xd9, 0xea,
- 0xf1, 0x5f, 0x5e, 0xbd, 0x3e, 0xbc, 0x3c, 0xa6, 0x17, 0xf4, 0xf3, 0x82,
- 0x46, 0xb4, 0x69, 0x14, 0xd4, 0x9f, 0x2d, 0x09, 0x4d, 0xbf, 0xa2, 0x01,
- 0xf5, 0xb6, 0x39, 0x96, 0x81, 0xa0, 0x7a, 0xa7, 0x5f, 0x65, 0xa1, 0xc0,
- 0x6d, 0x97, 0xd5, 0x5e, 0x2b, 0x62, 0x65, 0xab, 0xc7, 0xbf, 0xeb, 0x59,
- 0x0f, 0xae, 0x94, 0x81, 0x91, 0x70, 0xe5, 0x14, 0x49, 0x16, 0x41, 0x66,
- 0x2d, 0x43, 0xd2, 0xdc, 0xfa, 0x48, 0xb0, 0x82, 0x3d, 0x4e, 0x5e, 0x41,
- 0x01, 0xbb, 0xf0, 0x92, 0x36, 0x4f, 0x3e, 0xa6, 0xb2, 0xdc, 0xdb, 0x7f,
- 0xf2, 0x05, 0xe6, 0xf3, 0x55, 0x6f, 0xc7, 0xdc, 0x0d, 0xbd, 0x2f, 0xe8,
- 0xd3, 0x79, 0xe3, 0x95, 0xc5, 0x93, 0xcf, 0x90, 0x3d, 0x25, 0x3b, 0x8a,
- 0xe1, 0x32, 0xb4, 0xea, 0x1e, 0x1b, 0x10, 0x26, 0xf4, 0x8e, 0xb3, 0xc4,
- 0x94, 0x3b, 0x47, 0xc1, 0x03, 0x58, 0x2f, 0xd4, 0xf3, 0x42, 0xa9, 0x12,
- 0x76, 0xea, 0xe2, 0x73, 0xfe, 0xfd, 0xd1, 0xe7, 0x77, 0x79, 0x8c, 0xc2,
- 0x37, 0x44, 0xdf, 0x9c, 0xdf, 0x6b, 0x22, 0x19, 0xbe, 0x05, 0x9d, 0x9c,
- 0xd7, 0x2c, 0xd0, 0x8c, 0xc7, 0xe2, 0xdb, 0x51, 0x63, 0x04, 0x3a, 0x81,
- 0x11, 0x2d, 0xf7, 0x50, 0x94, 0x80, 0x36, 0xf0, 0x41, 0x16, 0x7a, 0x67,
- 0xa7, 0xe3, 0xdc, 0x68, 0xc2, 0x36, 0x35, 0xc6, 0xb3, 0xca, 0xed, 0xd4,
- 0xeb, 0xf1, 0xcb, 0x3d, 0x22, 0xa7, 0x0d, 0xcb, 0x7f, 0x5a, 0x5b, 0x1f,
- 0x12, 0xa2, 0x8d, 0xf2, 0x6c, 0x7b, 0x9d, 0x3a, 0xf9, 0x68, 0x18, 0x06,
- 0x9b, 0xf4, 0x6c, 0x1f, 0x1b, 0x51, 0x53, 0x64, 0xd5, 0x5a, 0x80, 0x45,
- 0x24, 0x18, 0x85, 0x21, 0xfa, 0xf4, 0xfc, 0xe6, 0x9d, 0xe1, 0x70, 0x68,
- 0xcd, 0x1d, 0x04, 0xd2, 0x24, 0x06, 0x45, 0x14, 0x79, 0x3e, 0xf7, 0x30,
- 0xe6, 0x78, 0x0b, 0xca, 0x3c, 0x14, 0xea, 0x6d, 0x01, 0xde, 0x88, 0x9f,
- 0xc0, 0x1e, 0x0d, 0xcf, 0xc7, 0xb1, 0x29, 0x9f, 0xdd, 0x54, 0x8e, 0x87,
- 0x8f, 0xb1, 0x45, 0x58, 0xd3, 0x37, 0xf6, 0x3d, 0x4a, 0x81, 0x20, 0x2b,
- 0xa7, 0x4a, 0x3b, 0x17, 0xb4, 0x83, 0x09, 0x40, 0xce, 0x75, 0xec, 0xb0,
- 0x24, 0x3c, 0x69, 0xd2, 0x95, 0x3e, 0x63, 0x0f, 0x48, 0xc8, 0x95, 0x77,
- 0xe0, 0x33, 0x00, 0x6b, 0x02, 0x61, 0x4f, 0x0a, 0x76, 0x0f, 0xe8, 0x0d,
- 0xb2, 0xb0, 0x6a, 0xb3, 0xb4, 0x23, 0x3c, 0xd4, 0x64, 0x33, 0x43, 0xf7,
- 0x97, 0x2c, 0x47, 0x61, 0xaf, 0xa9, 0x35, 0x89, 0xc7, 0xa8, 0x6d, 0x25,
- 0x98, 0x1a, 0x74, 0xf0, 0xce, 0x5d, 0x45, 0x68, 0xb3, 0x01, 0xf3, 0xbf,
- 0x68, 0x22, 0xa2, 0x4a, 0x0f, 0xe1, 0x00, 0x59, 0x17, 0x2f, 0x9f, 0x68,
- 0x8b, 0x36, 0x58, 0xde, 0x99, 0x1b, 0x77, 0x2b, 0xb7, 0x45, 0x97, 0x99,
- 0x51, 0xf6, 0x2e, 0xdb, 0x62, 0x16, 0x22, 0xf7, 0x92, 0xf4, 0xce, 0x5c,
- 0x3d, 0x45, 0x46, 0xf8, 0x4c, 0x20, 0x1d, 0xe0, 0x95, 0x39, 0xf5, 0xfc,
- 0x8c, 0x76, 0x84, 0x5a, 0x3d, 0x2a, 0x75, 0xf5, 0xa3, 0x92, 0x2d, 0x36,
- 0x34, 0x98, 0x82, 0x59, 0x1d, 0x7a, 0xa4, 0x80, 0x97, 0x73, 0x62, 0x42,
- 0x15, 0x4d, 0x5d, 0xcd, 0x73, 0xea, 0xb9, 0x11, 0xd1, 0x23, 0xd9, 0x37,
- 0x39, 0x70, 0x89, 0xe4, 0xe7, 0x60, 0x5c, 0x85, 0xce, 0x16, 0xaa, 0xa8,
- 0xd8, 0x8f, 0xd8, 0xf8, 0xb4, 0xb8, 0x9f, 0x08, 0xde, 0x5b, 0x0c, 0xc0,
- 0x59, 0xa1, 0x21, 0x61, 0x31, 0xaf, 0xae, 0xaf, 0xd9, 0x6a, 0x4b, 0xba,
- 0x43, 0x8b, 0x6f, 0xb2, 0x53, 0x9a, 0x15, 0x42, 0x41, 0xdf, 0xaf, 0x9a,
- 0xcd, 0x4b, 0x5b, 0x63, 0x50, 0xbc, 0x2e, 0xad, 0xcd, 0xac, 0x31, 0x49,
- 0x5e, 0xb7, 0xc6, 0x26, 0x5d, 0x21, 0x41, 0xa3, 0x1d, 0x43, 0x3e, 0xbb,
- 0xd8, 0x40, 0x55, 0x85, 0xc2, 0x11, 0x32, 0xe8, 0xa2, 0x83, 0xcc, 0xcf,
- 0x21, 0x50, 0x1c, 0x12, 0xf5, 0xce, 0x42, 0xad, 0xb0, 0x5d, 0x93, 0x71,
- 0xea, 0x4c, 0xae, 0x8d, 0xa4, 0xe5, 0xed, 0xa5, 0xaa, 0x74, 0x27, 0x85,
- 0xc8, 0xa1, 0xf2, 0x36, 0x73, 0x5c, 0x92, 0xce, 0xe1, 0xe8, 0x08, 0x86,
- 0xe5, 0xf4, 0x5b, 0x61, 0xd2, 0x09, 0xf0, 0x5a, 0x79, 0x85, 0x41, 0x76,
- 0x66, 0x65, 0x98, 0x78, 0x4d, 0xb2, 0xab, 0xa4, 0x6c, 0xf1, 0x34, 0xa3,
- 0x6f, 0x12, 0xb7, 0xd6, 0x16, 0x79, 0x8f, 0x30, 0x23, 0x8c, 0x67, 0x9a,
- 0x70, 0x5d, 0x25, 0x2d, 0x0e, 0x61, 0x31, 0x7a, 0x2e, 0xfe, 0xab, 0xa3,
- 0xec, 0xd9, 0x45, 0xea, 0x21, 0xcd, 0x73, 0x2c, 0x9b, 0x00, 0x7b, 0x80,
- 0x14, 0x3a, 0x1b, 0xc2, 0xbf, 0x94, 0x75, 0xc2, 0x4e, 0x86, 0x07, 0xad,
- 0x23, 0x48, 0x83, 0x33, 0x67, 0x21, 0x1a, 0xc8, 0x43, 0x31, 0x92, 0x17,
- 0xb8, 0x82, 0xc1, 0x78, 0x83, 0xf3, 0x8d, 0x06, 0x13, 0x95, 0xe8, 0xeb,
- 0x09, 0x0b, 0xc6, 0xad, 0x83, 0xf9, 0xd0, 0x39, 0x3d, 0xbf, 0x38, 0xfb,
- 0xe6, 0xe2, 0x78, 0x34, 0x4a, 0xde, 0x1e, 0x5f, 0xb2, 0xad, 0x7f, 0xc9,
- 0xd0, 0xbb, 0x6b, 0x14, 0xd5, 0x46, 0xac, 0x41, 0x09, 0x9f, 0x14, 0x72,
- 0xa2, 0x8e, 0x04, 0xe4, 0x3c, 0x51, 0xbd, 0x68, 0xdc, 0x8e, 0x6c, 0xc4,
- 0xcf, 0x04, 0xb1, 0x77, 0x03, 0x6f, 0x3f, 0x30, 0x4d, 0x08, 0x48, 0x5a,
- 0xe7, 0xb9, 0x73, 0xa3, 0x42, 0x31, 0x66, 0x94, 0x93, 0xcd, 0x39, 0x74,
- 0x2e, 0x74, 0xba, 0xb2, 0xcd, 0x9f, 0x18, 0xde, 0x1f, 0xcd, 0x6c, 0x4a,
- 0x85, 0xbc, 0x3f, 0x1a, 0xe3, 0x57, 0x36, 0xc5, 0x1f, 0x93, 0x1f, 0x4d,
- 0x9b, 0x53, 0x63, 0xbc, 0x4a, 0x39, 0xe0, 0x11, 0xea, 0x00, 0x3b, 0x3e,
- 0xe7, 0xdc, 0xab, 0x73, 0x9d, 0x70, 0x8a, 0x61, 0xf5, 0x40, 0x09, 0x4e,
- 0x70, 0xc5, 0x70, 0xa5, 0x61, 0xc1, 0xd4, 0xd9, 0x2f, 0x4b, 0x19, 0xb6,
- 0x24, 0x39, 0xcd, 0xae, 0x50, 0xa1, 0x06, 0x9f, 0x33, 0xcd, 0xed, 0x12,
- 0xf1, 0xf5, 0xde, 0x5b, 0xfa, 0xd1, 0x6e, 0xf2, 0xe4, 0xf3, 0xe7, 0xbb,
- 0x9f, 0xf3, 0x5f, 0xf5, 0xbf, 0x2f, 0x9e, 0xee, 0x0a, 0x03, 0xbf, 0xf9,
- 0xd7, 0xd3, 0x83, 0xa7, 0x7b, 0x07, 0xc4, 0x05, 0xb9, 0x7b, 0xb0, 0x6b,
- 0xfe, 0xff, 0x53, 0xf9, 0x09, 0x11, 0x5e, 0xbe, 0xd8, 0xff, 0xfc, 0x33,
- 0xa0, 0x61, 0x68, 0x7f, 0xcc, 0xcc, 0x47, 0x06, 0x4d, 0x39, 0x00, 0x25,
- 0x15, 0x34, 0x9f, 0x3f, 0xb6, 0x3d, 0x91, 0x14, 0x5e, 0xa7, 0x02, 0xe1,
- 0x34, 0x70, 0x5b, 0x1e, 0x55, 0xbd, 0xaa, 0x4c, 0x61, 0xe3, 0x17, 0x75,
- 0xb4, 0xc3, 0x90, 0xb7, 0xb9, 0xc6, 0x20, 0x38, 0xde, 0x5a, 0xef, 0x30,
- 0xd0, 0xdc, 0xa3, 0x93, 0xfb, 0xa5, 0x9f, 0xd6, 0x44, 0xf2, 0x0d, 0x90,
- 0xc4, 0xc9, 0x52, 0xc9, 0x7b, 0x13, 0xad, 0x64, 0xe7, 0xd7, 0xdc, 0xee,
- 0x14, 0xaa, 0xfe, 0xa5, 0xdf, 0x63, 0xcf, 0x15, 0xbd, 0x25, 0xbb, 0x21,
- 0x09, 0xbf, 0x66, 0x73, 0x11, 0x22, 0xdf, 0x6a, 0x6d, 0x9e, 0x0d, 0xb7,
- 0xfc, 0x6e, 0xa6, 0xbc, 0x82, 0xd3, 0x36, 0x87, 0x8b, 0x4b, 0x4e, 0x47,
- 0x86, 0x1c, 0x34, 0xf7, 0x7e, 0xe1, 0xb7, 0xf7, 0x98, 0xe6, 0xdc, 0x88,
- 0xb0, 0x83, 0xed, 0xca, 0x0d, 0xbc, 0xc5, 0xc9, 0x19, 0xd8, 0x66, 0x6b,
- 0x8a, 0x2a, 0x09, 0xa9, 0x2d, 0xf7, 0x8c, 0x57, 0xed, 0x96, 0x1d, 0xf0,
- 0x1b, 0xa2, 0x73, 0xda, 0xbc, 0x38, 0x94, 0x72, 0xc5, 0x15, 0xcf, 0xcf,
- 0xeb, 0xce, 0x0e, 0x3e, 0x45, 0xbb, 0xd1, 0xfb, 0x9e, 0x7c, 0x03, 0xe7,
- 0xc9, 0x1e, 0xba, 0xb5, 0x43, 0x73, 0xd8, 0x7a, 0x2d, 0x67, 0xc9, 0x38,
- 0x2e, 0x28, 0xdf, 0xb1, 0x23, 0xe9, 0x9e, 0x03, 0x7c, 0xdd, 0x36, 0xe7,
- 0xdf, 0x3e, 0x33, 0x70, 0x8d, 0x73, 0x49, 0x15, 0x62, 0x36, 0xa5, 0x7a,
- 0x11, 0xdb, 0x2a, 0xc2, 0x06, 0x7f, 0xb0, 0xb0, 0x2d, 0x5c, 0x66, 0x0c,
- 0x6b, 0xa3, 0xa6, 0x68, 0x3e, 0x67, 0x7e, 0x2e, 0xad, 0x95, 0x76, 0xe3,
- 0xb4, 0x6a, 0xd5, 0x65, 0xd8, 0xe0, 0x3a, 0x24, 0xe6, 0x7a, 0x35, 0xd7,
- 0x05, 0xd2, 0x1d, 0x59, 0x8f, 0xf8, 0x97, 0x8d, 0x8d, 0xd1, 0xf9, 0xf1,
- 0xf1, 0xeb, 0xe4, 0xf4, 0xe4, 0xed, 0xc9, 0xa5, 0xa7, 0x85, 0xdb, 0xdb,
- 0x43, 0x3d, 0xad, 0x5a, 0x56, 0xaf, 0x33, 0x1d, 0x8e, 0xde, 0x99, 0xbf,
- 0xa7, 0xf7, 0xf7, 0x3c, 0x93, 0x2c, 0x8a, 0x59, 0xf7, 0x3d, 0xd8, 0xdb,
- 0x60, 0x76, 0xa2, 0xf2, 0xe4, 0x9e, 0x16, 0x57, 0x1b, 0x8d, 0xc6, 0xf4,
- 0x6e, 0xc0, 0xec, 0x02, 0x83, 0x3f, 0x0b, 0x4e, 0xa3, 0xad, 0x2e, 0x09,
- 0x53, 0xad, 0x4d, 0xe9, 0x11, 0x6c, 0x6b, 0xa7, 0x57, 0x34, 0xb7, 0x19,
- 0x43, 0xab, 0x3d, 0xb7, 0x1c, 0x60, 0x7b, 0x77, 0x19, 0xd8, 0x0e, 0xe6,
- 0x39, 0xe7, 0x5a, 0xfa, 0x98, 0x62, 0x94, 0x4b, 0x91, 0x1b, 0x0f, 0x72,
- 0xdc, 0xff, 0xa2, 0x77, 0x3a, 0x2c, 0xa0, 0x56, 0xbf, 0x55, 0x73, 0xa9,
- 0x42, 0x33, 0x01, 0x45, 0xf2, 0x64, 0xd7, 0xa6, 0x2b, 0x2c, 0x20, 0x73,
- 0x44, 0xbf, 0xa7, 0x8f, 0xed, 0x25, 0x46, 0x09, 0x59, 0x92, 0x2a, 0x5f,
- 0x2d, 0x8b, 0xe0, 0xba, 0xfb, 0x33, 0xbf, 0x6b, 0xc6, 0xff, 0x7c, 0x17,
- 0xd7, 0xdb, 0x55, 0x5a, 0x0d, 0x8c, 0xba, 0x75, 0x3f, 0x50, 0x97, 0x2a,
- 0xef, 0x08, 0xc1, 0x1b, 0xb3, 0xbf, 0x27, 0x73, 0x25, 0x40, 0x3b, 0x2a,
- 0xa2, 0xcb, 0x39, 0x29, 0x11, 0x97, 0x9c, 0xc9, 0x01, 0xa0, 0xa1, 0x53,
- 0xa6, 0xaf, 0x7a, 0x38, 0x9d, 0x82, 0xe3, 0x58, 0x8c, 0x75, 0x15, 0x9d,
- 0x8c, 0xa2, 0x0c, 0x04, 0x88, 0x55, 0x6a, 0x35, 0xa7, 0x61, 0xca, 0x58,
- 0x42, 0x7d, 0x7a, 0x9e, 0xec, 0x7d, 0x4e, 0xe3, 0x78, 0xdc, 0x78, 0xde,
- 0x94, 0xd5, 0xc4, 0xe6, 0x14, 0xc3, 0x46, 0xf0, 0x12, 0x4c, 0x39, 0x2d,
- 0x02, 0xe5, 0xe8, 0x78, 0x76, 0x15, 0x14, 0x0b, 0xd0, 0x1e, 0x19, 0x25,
- 0x12, 0x4f, 0x87, 0x3b, 0x0a, 0x01, 0x6e, 0x56, 0x8b, 0xe8, 0xae, 0x91,
- 0x79, 0x21, 0x07, 0x2b, 0x83, 0xf6, 0x36, 0x2b, 0x9b, 0x80, 0xca, 0xd3,
- 0x40, 0x2e, 0x11, 0xb3, 0xd7, 0xee, 0xf2, 0x29, 0x54, 0x69, 0xc7, 0x67,
- 0x67, 0xd6, 0x8b, 0x37, 0x1f, 0x63, 0xa5, 0x11, 0xb3, 0x44, 0xb0, 0xd3,
- 0xf6, 0x4c, 0x14, 0x18, 0x9a, 0xd6, 0x12, 0x1e, 0x85, 0x2d, 0xe8, 0x0f,
- 0x94, 0xdf, 0xec, 0xe2, 0x02, 0x64, 0x3f, 0x91, 0x68, 0xee, 0xb9, 0xaf,
- 0x50, 0xae, 0x40, 0xd3, 0xcc, 0xd4, 0x99, 0xf0, 0xd6, 0x6e, 0xec, 0xf6,
- 0x98, 0x89, 0xa9, 0xc5, 0x1b, 0xf6, 0xde, 0xae, 0x51, 0x5a, 0x67, 0xa5,
- 0xdd, 0x56, 0xb2, 0xa9, 0x42, 0x4b, 0x14, 0xc3, 0x1a, 0x60, 0x76, 0xf6,
- 0x76, 0xbf, 0x5b, 0x3d, 0xeb, 0xe0, 0xe9, 0x5f, 0xfb, 0xf2, 0xfe, 0xd3,
- 0x35, 0x8b, 0x76, 0x56, 0xc1, 0x18, 0xcf, 0x14, 0x03, 0x09, 0x45, 0xd0,
- 0x45, 0x5e, 0x82, 0x65, 0x33, 0x1b, 0x3f, 0xbb, 0x4e, 0x51, 0x15, 0x79,
- 0x4d, 0xef, 0x35, 0x27, 0xa4, 0xd3, 0x95, 0xb7, 0x82, 0xca, 0xe6, 0x5f,
- 0xd6, 0xe4, 0x16, 0x5b, 0x80, 0x69, 0xcf, 0xd9, 0xae, 0x36, 0x9d, 0x9c,
- 0xb9, 0x19, 0xbc, 0xb7, 0x59, 0x72, 0xf6, 0xdb, 0x42, 0x42, 0x77, 0x4f,
- 0x95, 0x5d, 0x2f, 0x99, 0x09, 0xa3, 0x64, 0x5b, 0x9f, 0xc8, 0xaf, 0xe5,
- 0xbc, 0x1a, 0xd9, 0x4c, 0xf0, 0x21, 0xde, 0x4f, 0x10, 0xbc, 0x93, 0x54,
- 0x55, 0x56, 0x29, 0x6b, 0xdc, 0xb9, 0x18, 0xc8, 0x29, 0x3b, 0x29, 0xe7,
- 0x52, 0x18, 0x95, 0x8f, 0x57, 0xe1, 0x25, 0xf6, 0x33, 0xbb, 0xe3, 0x10,
- 0x99, 0xbe, 0xbc, 0x51, 0xac, 0xb0, 0xa7, 0xb4, 0x32, 0x8a, 0x86, 0x35,
- 0x1c, 0x16, 0x40, 0x03, 0x7d, 0xd9, 0xb5, 0x68, 0xc9, 0x7e, 0x8a, 0x24,
- 0x7e, 0xad, 0x2c, 0x9b, 0xcc, 0xc6, 0x4f, 0xce, 0xfe, 0xa3, 0xb3, 0x77,
- 0x6f, 0x4e, 0xbe, 0xb1, 0x54, 0x46, 0x2c, 0xc4, 0x5b, 0x14, 0x1b, 0xec,
- 0x3e, 0xf6, 0x23, 0xdd, 0x52, 0x6f, 0x56, 0xd0, 0xb7, 0x46, 0x3c, 0x7d,
- 0xf0, 0x7f, 0x00, 0x01, 0x52, 0x3c, 0x21, 0x07, 0x39, 0xf3, 0x7f, 0xd4,
- 0xdb, 0xce, 0xdd, 0xd0, 0xa1, 0xaa, 0xe3, 0x2c, 0x8d, 0xb4, 0x6a, 0x96,
- 0x0b, 0x0b, 0x22, 0xf4, 0xea, 0xd5, 0x0a, 0x57, 0xb7, 0xa6, 0xa2, 0x2f,
- 0x17, 0x2c, 0x9a, 0x24, 0xa1, 0xb4, 0xe5, 0xcd, 0xe5, 0x3b, 0x80, 0xdc,
- 0x09, 0xc2, 0xa5, 0x22, 0x17, 0x40, 0x80, 0xcb, 0x99, 0x11, 0xc3, 0xa7,
- 0x8f, 0x97, 0xd7, 0xf8, 0xcd, 0x34, 0xad, 0x6f, 0x78, 0xa0, 0xb8, 0x34,
- 0x72, 0x86, 0x69, 0x23, 0xd6, 0x96, 0x4e, 0xc9, 0x50, 0x77, 0x60, 0x1c,
- 0x8b, 0xfe, 0x75, 0xf1, 0xa1, 0x3a, 0xd1, 0xac, 0x07, 0x8b, 0x4f, 0xd2,
- 0x34, 0xd6, 0x14, 0xa1, 0x4a, 0xc4, 0x3a, 0xf1, 0x93, 0x57, 0x14, 0x96,
- 0x39, 0x20, 0xce, 0xfa, 0x39, 0x13, 0xca, 0xf9, 0xe9, 0xa7, 0x22, 0x25,
- 0x1d, 0xb3, 0xfc, 0xc9, 0x95, 0x97, 0xd1, 0xc6, 0x38, 0x41, 0xdd, 0x74,
- 0xec, 0x23, 0x26, 0x07, 0xcb, 0xe6, 0x1f, 0x36, 0x07, 0xf5, 0xfd, 0x7c,
- 0x5c, 0xce, 0x34, 0xf1, 0xc2, 0x12, 0x48, 0xe8, 0x43, 0xad, 0x7a, 0x7a,
- 0x1c, 0xa9, 0x6d, 0x3c, 0xb7, 0xa4, 0xc3, 0x4a, 0xb9, 0xfe, 0x73, 0xc1,
- 0x24, 0x84, 0x87, 0x74, 0x14, 0xe0, 0xf6, 0x21, 0x19, 0x9f, 0x15, 0x93,
- 0x59, 0x29, 0xbb, 0x9a, 0x12, 0xcc, 0x31, 0x53, 0xed, 0xa1, 0x53, 0xc4,
- 0xaf, 0x5c, 0x92, 0x87, 0x03, 0x35, 0x4a, 0x8c, 0xba, 0xd3, 0x13, 0x46,
- 0x0d, 0x0c, 0x90, 0xde, 0xe6, 0x5f, 0x08, 0x2a, 0xdf, 0xe3, 0xb7, 0xe1,
- 0xa2, 0x26, 0xa6, 0xab, 0x3f, 0xb1, 0x43, 0x91, 0xe3, 0x7e, 0x7f, 0xd6,
- 0x8f, 0xeb, 0xa3, 0x9d, 0xa9, 0x37, 0xfb, 0x29, 0xad, 0xae, 0x85, 0xa5,
- 0x4f, 0x22, 0x69, 0x30, 0x12, 0x6d, 0xe9, 0x1c, 0xeb, 0x98, 0x24, 0xa5,
- 0xc4, 0xa2, 0x66, 0xa0, 0x3e, 0x2d, 0x39, 0xa7, 0x50, 0x32, 0xae, 0xd8,
- 0x25, 0x69, 0x37, 0xa2, 0x27, 0x71, 0xfe, 0x60, 0xb1, 0x28, 0xa9, 0xbb,
- 0xcb, 0xb4, 0x02, 0x86, 0xf3, 0xcf, 0xca, 0x65, 0xe6, 0xbd, 0x46, 0x4e,
- 0x3c, 0x58, 0xc2, 0x99, 0x38, 0x4e, 0xf8, 0x53, 0xd0, 0x25, 0x88, 0xd7,
- 0x46, 0x2a, 0x6b, 0xba, 0x26, 0xf8, 0xf7, 0xaf, 0xa4, 0x16, 0x9a, 0x39,
- 0xcf, 0xc2, 0x94, 0x22, 0xf4, 0x81, 0x9f, 0xef, 0x8a, 0xfb, 0xad, 0x11,
- 0xb8, 0x6a, 0x9d, 0x1c, 0x5e, 0x1c, 0x1b, 0xcd, 0xf6, 0xba, 0x00, 0x47,
- 0x45, 0xd1, 0x68, 0x52, 0x5d, 0x56, 0x48, 0xf1, 0xb5, 0x42, 0xcf, 0x07,
- 0x7d, 0xf0, 0xce, 0x7b, 0x93, 0x36, 0x93, 0x00, 0x03, 0x38, 0x7f, 0xdb,
- 0x6d, 0xb9, 0x89, 0x72, 0x0f, 0x43, 0xea, 0x10, 0x4d, 0x02, 0x6f, 0x29,
- 0x0a, 0x91, 0x98, 0x4f, 0x95, 0xca, 0x3b, 0x7c, 0x1e, 0x88, 0x75, 0x9f,
- 0x70, 0x58, 0xe7, 0x1a, 0xa7, 0xda, 0xa5, 0x22, 0xfc, 0x4d, 0x89, 0x39,
- 0xe5, 0x5b, 0xad, 0xb0, 0xa7, 0xdb, 0x4e, 0xfd, 0xb8, 0xcb, 0xe8, 0x6f,
- 0xb8, 0x67, 0x48, 0x17, 0xe9, 0xea, 0x05, 0x99, 0x45, 0xd8, 0xb3, 0xf7,
- 0x7a, 0xea, 0x29, 0xbf, 0x9c, 0x02, 0x48, 0x18, 0x6b, 0x76, 0x4c, 0x0b,
- 0x13, 0x90, 0xf8, 0x75, 0xd8, 0x1c, 0x98, 0xca, 0x59, 0xa5, 0x5d, 0x41,
- 0x70, 0xe1, 0x31, 0xb1, 0x25, 0x7d, 0x64, 0x05, 0xc0, 0x97, 0x4f, 0x51,
- 0xdf, 0xee, 0x1f, 0xec, 0x68, 0x5d, 0x1f, 0x36, 0xbc, 0x92, 0xf3, 0x66,
- 0x49, 0x95, 0xdd, 0x8e, 0x7a, 0x31, 0xa4, 0x0f, 0x41, 0xa4, 0x22, 0x66,
- 0x4a, 0x7f, 0xc1, 0x8f, 0x81, 0x7a, 0x53, 0xba, 0x53, 0x48, 0x1d, 0x4b,
- 0xa1, 0x55, 0x4a, 0x4c, 0xd5, 0x75, 0x84, 0x03, 0x7b, 0x90, 0xd0, 0x63,
- 0x5f, 0x35, 0x1e, 0x7c, 0xb7, 0xa3, 0xa5, 0xbe, 0xc9, 0x7f, 0x43, 0x09,
- 0xc4, 0x7a, 0xe0, 0xeb, 0xac, 0x55, 0x1b, 0xdc, 0x66, 0x0a, 0xf5, 0x06,
- 0x3d, 0x33, 0x17, 0x9b, 0xb3, 0x99, 0x13, 0xf8, 0xfa, 0x18, 0xad, 0x2a,
- 0x92, 0xea, 0x9c, 0xc2, 0x24, 0xb2, 0x8b, 0x0a, 0x77, 0xdc, 0xb7, 0x52,
- 0x1c, 0xa8, 0x14, 0x1e, 0x65, 0x00, 0x59, 0x62, 0x2f, 0xa4, 0x89, 0x00,
- 0x24, 0x70, 0x9b, 0xd7, 0x1a, 0x7c, 0x34, 0x7b, 0x7b, 0xc2, 0x98, 0x88,
- 0x86, 0x09, 0x09, 0xb2, 0x66, 0xe2, 0x4d, 0x65, 0x36, 0xb9, 0x29, 0x19,
- 0x53, 0x6b, 0x26, 0xcd, 0xcb, 0xf4, 0xec, 0x25, 0xff, 0x4b, 0xf6, 0xc0,
- 0x77, 0x2e, 0x69, 0x8f, 0x36, 0xc2, 0x90, 0x79, 0x28, 0x87, 0x6e, 0x43,
- 0x1c, 0xff, 0x78, 0x79, 0x71, 0x98, 0x7c, 0x7b, 0x7c, 0xf8, 0xfa, 0xf8,
- 0x62, 0xd4, 0xb9, 0xf4, 0x05, 0xfe, 0xc1, 0x1a, 0x1a, 0x39, 0x81, 0xa1,
- 0x1a, 0x2b, 0xf1, 0x80, 0xe0, 0xf6, 0x55, 0xea, 0x99, 0xcd, 0x43, 0x07,
- 0xc9, 0x9c, 0x0f, 0x32, 0x88, 0x38, 0x5a, 0x00, 0x92, 0xe4, 0x1a, 0xc2,
- 0xc6, 0xb6, 0x31, 0x31, 0x12, 0x8a, 0x40, 0x0c, 0xea, 0x32, 0xf7, 0x33,
- 0x66, 0x1c, 0x57, 0x9f, 0xbb, 0x4c, 0xa6, 0xa5, 0x26, 0x03, 0xb6, 0x57,
- 0xee, 0x5b, 0x97, 0xef, 0xed, 0x89, 0x2d, 0xb9, 0x64, 0xc4, 0x6b, 0xd8,
- 0xfb, 0x71, 0x60, 0xbe, 0x3b, 0x30, 0x93, 0x3f, 0x20, 0x32, 0xc7, 0xfb,
- 0xac, 0xee, 0x75, 0x5c, 0x80, 0xed, 0xcf, 0x6f, 0x70, 0xb5, 0xa7, 0xe0,
- 0x24, 0x7d, 0x1b, 0x6d, 0x89, 0x4e, 0xd7, 0x8c, 0x6a, 0x30, 0x75, 0x2d,
- 0x08, 0x5c, 0xaa, 0x9e, 0x92, 0x2c, 0x27, 0x28, 0x48, 0x6f, 0x11, 0x80,
- 0x92, 0x33, 0x33, 0x05, 0x0f, 0x86, 0x8e, 0xc8, 0x10, 0xa0, 0xeb, 0x98,
- 0xb3, 0xc7, 0x97, 0xfa, 0x8c, 0xf9, 0x9c, 0xd9, 0x63, 0x66, 0xba, 0x25,
- 0x0f, 0xf9, 0xf7, 0x03, 0x02, 0x20, 0x82, 0xc1, 0xaf, 0x5b, 0xf1, 0x51,
- 0x71, 0x86, 0x0a, 0xd5, 0xb7, 0x34, 0x47, 0x7d, 0xb0, 0x7b, 0x5e, 0xa1,
- 0xfb, 0xf4, 0x49, 0xad, 0x42, 0x22, 0xef, 0x32, 0x0a, 0x8c, 0x8c, 0x7a,
- 0xf8, 0x37, 0xb9, 0x2c, 0x2f, 0x17, 0xb8, 0x64, 0xc1, 0xe6, 0xe5, 0x02,
- 0xf9, 0x9b, 0x19, 0xe5, 0xdf, 0x80, 0x1e, 0xb7, 0xcf, 0x65, 0xc9, 0xb7,
- 0x65, 0x8d, 0xbb, 0x20, 0x7c, 0x9c, 0x2e, 0xf9, 0xd8, 0xf4, 0xe3, 0x0d,
- 0x89, 0x6f, 0x59, 0x92, 0xd8, 0x8d, 0x0d, 0x4d, 0xa9, 0x3a, 0x3f, 0xbc,
- 0xfc, 0x16, 0xd1, 0x55, 0x6c, 0xe1, 0xd7, 0x60, 0x4c, 0xd1, 0x98, 0x5a,
- 0x98, 0x92, 0x65, 0x0d, 0x38, 0xd6, 0x7f, 0x95, 0x98, 0x51, 0xf5, 0x49,
- 0x44, 0xef, 0x72, 0x06, 0x22, 0xcd, 0xb8, 0x0c, 0x32, 0x64, 0x74, 0xab,
- 0xda, 0x23, 0xa0, 0xef, 0x36, 0xdf, 0xce, 0xe2, 0x2d, 0x37, 0x39, 0x11,
- 0x7e, 0x93, 0xc7, 0x84, 0x4d, 0x4f, 0xca, 0xdc, 0x46, 0xd2, 0x66, 0x1e,
- 0xc6, 0x2f, 0x28, 0xd3, 0x99, 0x03, 0x50, 0xd3, 0x32, 0xce, 0x7b, 0xe8,
- 0x1d, 0xe9, 0xaf, 0xe6, 0xf7, 0xc3, 0x90, 0x80, 0x27, 0xf9, 0x7a, 0xd9,
- 0xb4, 0xc5, 0x4a, 0x87, 0xff, 0xd8, 0x6a, 0x96, 0x55, 0x59, 0x36, 0x5e,
- 0x1f, 0xa0, 0xfd, 0xa4, 0x8d, 0x9c, 0x68, 0x26, 0xb8, 0xe4, 0xbe, 0x50,
- 0x53, 0x85, 0xe8, 0xdd, 0xbe, 0x62, 0x98, 0x8e, 0xeb, 0x72, 0xb6, 0x6c,
- 0x3c, 0xf4, 0xf5, 0x2f, 0xeb, 0xb3, 0xd7, 0xe9, 0xad, 0x93, 0xa1, 0x92,
- 0x7d, 0x16, 0x4c, 0x51, 0x67, 0x2c, 0x7d, 0xa3, 0x5e, 0x22, 0xd8, 0x58,
- 0x95, 0x45, 0xbb, 0xce, 0x1c, 0x80, 0xde, 0xdb, 0x1b, 0x1b, 0x23, 0x5d,
- 0x6c, 0xa2, 0x7b, 0x0d, 0x17, 0xfd, 0x07, 0x68, 0x93, 0xd4, 0x07, 0x0e,
- 0x16, 0x4c, 0xcc, 0x5f, 0x94, 0x04, 0x2e, 0xe3, 0x35, 0x85, 0x08, 0xe7,
- 0x35, 0xce, 0xeb, 0xf6, 0xa0, 0xf0, 0x2b, 0x1b, 0xae, 0xd0, 0xfc, 0xb2,
- 0xcb, 0x52, 0x79, 0xff, 0x25, 0x5c, 0xe7, 0x36, 0x44, 0x2b, 0x1b, 0x3e,
- 0xca, 0x30, 0x4d, 0x97, 0x80, 0x16, 0xd7, 0xb6, 0x70, 0x5c, 0xea, 0xe4,
- 0xce, 0xff, 0xde, 0x49, 0xfa, 0x5c, 0x01, 0x21, 0x42, 0xda, 0xb3, 0x4c,
- 0xfe, 0x3f, 0x00, 0x5e, 0x09, 0xbd, 0x2f, 0xb5, 0x39, 0x6c, 0x13, 0xc8,
- 0x0e, 0x8d, 0x09, 0x75, 0x53, 0x4d, 0xdc, 0xee, 0x37, 0xda, 0x41, 0x76,
- 0x47, 0xf6, 0x8b, 0xda, 0x08, 0x42, 0x17, 0xc2, 0xf5, 0xad, 0x2d, 0x01,
- 0x13, 0xe8, 0x36, 0xae, 0xac, 0x57, 0x8f, 0x6a, 0xb6, 0x72, 0x65, 0x53,
- 0x56, 0xeb, 0x51, 0xb2, 0x49, 0xc3, 0xa6, 0x1b, 0x49, 0xcb, 0x6e, 0xa7,
- 0x92, 0x87, 0xfc, 0xa7, 0x26, 0x1d, 0x09, 0xb0, 0x4b, 0xb6, 0xbf, 0x57,
- 0x06, 0xd0, 0x2b, 0xa8, 0xac, 0x88, 0x53, 0x46, 0xd3, 0x69, 0x38, 0x52,
- 0x3b, 0xa9, 0x5a, 0x00, 0x45, 0x2b, 0x41, 0x6b, 0x29, 0xcc, 0x23, 0x84,
- 0x24, 0x23, 0x0e, 0x63, 0x4e, 0xda, 0xa6, 0x82, 0x95, 0x6a, 0xc9, 0xe8,
- 0x95, 0xaa, 0x69, 0x1c, 0x76, 0xa5, 0x5c, 0xf7, 0xe5, 0xee, 0x47, 0x12,
- 0x3e, 0x22, 0x73, 0x54, 0xa2, 0xd3, 0x57, 0x09, 0x74, 0x48, 0x52, 0x33,
- 0x98, 0xc1, 0x1b, 0x3e, 0x20, 0xc5, 0x21, 0x36, 0xaf, 0x29, 0xcb, 0x43,
- 0x5c, 0x52, 0xc2, 0x65, 0x02, 0xff, 0xd7, 0x4d, 0x2e, 0xb8, 0x52, 0x9e,
- 0xf5, 0x76, 0x9d, 0x56, 0x78, 0xf8, 0x08, 0x52, 0xe0, 0xa2, 0xaa, 0x16,
- 0xf8, 0x30, 0x0c, 0x0f, 0xcc, 0xd0, 0xb2, 0xaa, 0xca, 0x25, 0x72, 0xe2,
- 0xe7, 0x94, 0x33, 0x0a, 0xc3, 0x62, 0x9d, 0x1f, 0xf9, 0x75, 0xff, 0x93,
- 0x04, 0x62, 0x2d, 0x12, 0x4e, 0x20, 0x11, 0xaa, 0x38, 0xba, 0x50, 0xf6,
- 0xf7, 0x60, 0x98, 0x32, 0x66, 0x03, 0x3c, 0xa5, 0xda, 0x82, 0xf2, 0xa5,
- 0x75, 0x27, 0x7f, 0xbb, 0x2f, 0xb3, 0x64, 0x33, 0xee, 0x25, 0xc4, 0xcc,
- 0x7a, 0xa1, 0x17, 0x77, 0x6a, 0x15, 0x9a, 0xe3, 0x2c, 0xee, 0xba, 0xa9,
- 0x96, 0x93, 0x26, 0x28, 0x91, 0xda, 0x0a, 0xcd, 0xdb, 0x39, 0x2e, 0x7d,
- 0xdb, 0xfe, 0xe4, 0x5c, 0xcc, 0x7b, 0xb6, 0x3e, 0xa8, 0x67, 0x5b, 0x69,
- 0x2b, 0xc9, 0x85, 0x5f, 0xde, 0x48, 0x5a, 0xdf, 0xdd, 0xb6, 0xbb, 0x6c,
- 0x70, 0x6e, 0x33, 0xea, 0xdb, 0xf4, 0x47, 0xc8, 0x4e, 0xf0, 0xee, 0x5e,
- 0x51, 0xc4, 0xa0, 0x78, 0x54, 0x89, 0x90, 0x2f, 0x42, 0xad, 0x21, 0x97,
- 0xe5, 0x86, 0x25, 0x48, 0x34, 0x5d, 0x1a, 0x08, 0x54, 0x95, 0xa3, 0xbf,
- 0x3b, 0x66, 0x22, 0xb5, 0x9a, 0x90, 0x2d, 0xa3, 0x55, 0x3b, 0x92, 0xc5,
- 0x0e, 0x4e, 0x15, 0x14, 0x4d, 0x56, 0x3f, 0x14, 0xb2, 0x38, 0x99, 0xbf,
- 0x61, 0xf2, 0x5a, 0x0e, 0x85, 0x7c, 0xa1, 0xab, 0x4e, 0x84, 0x77, 0xe3,
- 0x39, 0x53, 0xa1, 0x04, 0xfb, 0xe8, 0xb5, 0xfa, 0x54, 0x21, 0x72, 0x30,
- 0x37, 0x64, 0xd9, 0xe8, 0x22, 0x99, 0x79, 0xd5, 0x4f, 0x98, 0x2e, 0xd0,
- 0x88, 0x37, 0x67, 0xd9, 0xee, 0xa6, 0x57, 0x07, 0x6c, 0x8b, 0x41, 0xff,
- 0x25, 0xac, 0x1f, 0x4b, 0x56, 0xc8, 0xde, 0x0b, 0x02, 0xb7, 0x6d, 0x47,
- 0xba, 0x62, 0x9a, 0xf8, 0xa5, 0x9d, 0xd9, 0x7b, 0xb1, 0x3f, 0xdc, 0x7b,
- 0xfe, 0xf9, 0x70, 0x77, 0xb8, 0xb7, 0x4b, 0xf2, 0x85, 0xba, 0xe2, 0x75,
- 0x8e, 0xe7, 0x25, 0xf2, 0xa9, 0xd6, 0x7b, 0xe1, 0x37, 0xdf, 0x1d, 0x5f,
- 0xfe, 0x70, 0x76, 0xf1, 0x5d, 0x72, 0xf2, 0xee, 0xf2, 0xf8, 0xe2, 0xcd,
- 0xe1, 0xd1, 0x63, 0x09, 0xfb, 0x7d, 0xb7, 0xb5, 0x57, 0x17, 0x3d, 0x73,
- 0x13, 0x13, 0xfa, 0x06, 0xdd, 0x9c, 0x65, 0xcd, 0xcd, 0xee, 0xc1, 0xde,
- 0x5a, 0x4a, 0xea, 0x88, 0x7b, 0xd0, 0xbd, 0xaf, 0x83, 0xda, 0xa3, 0x41,
- 0xad, 0x6e, 0xc5, 0x52, 0x33, 0x8e, 0x18, 0x5b, 0x65, 0x71, 0xb9, 0x10,
- 0xf3, 0xa8, 0xb4, 0x04, 0x46, 0x56, 0x11, 0xec, 0x63, 0x26, 0xbf, 0xe5,
- 0xf4, 0x5a, 0x21, 0x99, 0x11, 0x0c, 0xba, 0xc8, 0xdc, 0x0d, 0xae, 0x41,
- 0xde, 0x88, 0x3b, 0x85, 0xe9, 0x6c, 0xa7, 0x50, 0xf1, 0x54, 0x2a, 0x4b,
- 0xee, 0x1a, 0xed, 0x16, 0xa9, 0x82, 0xca, 0x84, 0x83, 0x53, 0x9b, 0x27,
- 0x62, 0x59, 0x08, 0x00, 0x7d, 0x50, 0x3d, 0x1d, 0x7d, 0x6d, 0x97, 0x91,
- 0xf7, 0xe1, 0xb3, 0x1d, 0xee, 0xd5, 0x5a, 0x71, 0xcd, 0x18, 0x58, 0xcb,
- 0x35, 0x7a, 0x24, 0x1d, 0xc1, 0x69, 0xf0, 0x7a, 0xc3, 0x9f, 0x82, 0x42,
- 0x45, 0x24, 0x69, 0xa0, 0x87, 0x6c, 0x31, 0x24, 0xf3, 0x1d, 0x85, 0xdc,
- 0x09, 0xd6, 0xff, 0xb4, 0xac, 0x05, 0xb5, 0x5e, 0xb7, 0x48, 0x0a, 0x13,
- 0x2e, 0x7c, 0xe2, 0xbf, 0xce, 0xaa, 0x36, 0xd0, 0x99, 0xd3, 0x2a, 0xbd,
- 0x43, 0x09, 0x97, 0xdc, 0x51, 0x8e, 0x6e, 0x24, 0xad, 0x12, 0x29, 0xa4,
- 0x38, 0xb9, 0x39, 0x4f, 0xce, 0x8f, 0xdf, 0x0e, 0xb4, 0x88, 0xb2, 0xf9,
- 0x3b, 0x3b, 0xa3, 0x94, 0x5f, 0x92, 0x73, 0x7b, 0x16, 0x59, 0xa1, 0x58,
- 0x1a, 0xc8, 0x44, 0x01, 0xff, 0xf8, 0x03, 0xa0, 0x43, 0x63, 0x19, 0x28,
- 0x05, 0x32, 0xaa, 0x98, 0x4b, 0xce, 0x2d, 0xec, 0xd2, 0x72, 0xd2, 0x7a,
- 0x0a, 0x60, 0x39, 0xd9, 0xb2, 0x20, 0x5d, 0xfa, 0x1e, 0x90, 0xa8, 0x40,
- 0x0d, 0x58, 0x98, 0x40, 0xa9, 0x99, 0xd7, 0xe7, 0xdf, 0x1d, 0x8d, 0xfe,
- 0xb0, 0xb7, 0x2f, 0xdd, 0xd9, 0x56, 0xab, 0x80, 0x64, 0x55, 0x37, 0x29,
- 0x1f, 0xe2, 0xda, 0xef, 0xa3, 0xa6, 0x58, 0xe3, 0x80, 0x63, 0x31, 0xb6,
- 0x6c, 0x62, 0xd0, 0x76, 0x2b, 0x33, 0x08, 0xc8, 0xaf, 0x7b, 0xab, 0x62,
- 0xda, 0xc2, 0xc0, 0x14, 0x12, 0x41, 0x09, 0x29, 0x29, 0xe2, 0xd4, 0x58,
- 0xa8, 0x5f, 0x5a, 0xe8, 0x8f, 0xb8, 0x65, 0x69, 0x0d, 0x39, 0xe4, 0x0e,
- 0xce, 0xd2, 0x5d, 0x73, 0x9a, 0x6f, 0xf7, 0x5b, 0xe2, 0x89, 0x95, 0x9b,
- 0x5d, 0x09, 0x81, 0xdc, 0x67, 0x70, 0x00, 0x04, 0xbd, 0x3e, 0xd5, 0x32,
- 0x71, 0x85, 0xab, 0x83, 0x42, 0x4f, 0x9f, 0x99, 0x85, 0x32, 0x27, 0x8b,
- 0x79, 0x1b, 0x48, 0x28, 0x94, 0x33, 0x32, 0x5d, 0xec, 0x23, 0xaf, 0x2b,
- 0x2a, 0x1d, 0xb3, 0x60, 0x1c, 0xe9, 0xbb, 0x61, 0xf2, 0x6d, 0x56, 0x50,
- 0xe2, 0x3c, 0x21, 0xee, 0x34, 0xf7, 0x0a, 0xb8, 0x40, 0xaa, 0x53, 0x89,
- 0xba, 0x7d, 0xa7, 0x59, 0x2a, 0x9c, 0x9c, 0x46, 0xd6, 0xd5, 0x6c, 0xe1,
- 0x6a, 0xcd, 0xaa, 0x94, 0xd0, 0x79, 0x42, 0x20, 0x6a, 0xc9, 0x2e, 0x98,
- 0x24, 0x9a, 0x1a, 0xd8, 0x6a, 0x13, 0x6b, 0xa2, 0x24, 0x02, 0x9a, 0x93,
- 0x63, 0x8e, 0x58, 0x93, 0x78, 0x95, 0x6f, 0x40, 0xa7, 0x4d, 0xde, 0x42,
- 0xb6, 0xb8, 0x9c, 0x50, 0x99, 0x56, 0x37, 0xe4, 0xfa, 0xa8, 0xcd, 0x75,
- 0x93, 0x16, 0x93, 0xfb, 0xe1, 0xd4, 0xe8, 0xb2, 0xe4, 0x3c, 0x1b, 0x2e,
- 0x3f, 0xee, 0x78, 0xc7, 0x94, 0x44, 0xfe, 0x0d, 0x73, 0x04, 0xb4, 0x1d,
- 0xdf, 0x5a, 0x0c, 0x39, 0xa4, 0x0e, 0x4b, 0x5b, 0x67, 0x82, 0xb6, 0x84,
- 0x66, 0xfb, 0xf3, 0xf1, 0x5c, 0x49, 0xb2, 0x75, 0x9c, 0x58, 0x86, 0x63,
- 0x6a, 0x61, 0xb8, 0xc8, 0xe6, 0x07, 0x36, 0x1b, 0x59, 0xe5, 0x83, 0x54,
- 0xd5, 0xb0, 0x86, 0x85, 0xe7, 0xa4, 0x2d, 0xb2, 0xeb, 0x99, 0x28, 0x14,
- 0xbe, 0xe9, 0x62, 0x9b, 0x88, 0xa4, 0x80, 0xb0, 0xc1, 0x23, 0x15, 0x95,
- 0xa0, 0xb1, 0x9b, 0x7d, 0xd8, 0x08, 0xa4, 0x96, 0x1f, 0xae, 0x48, 0xa1,
- 0x77, 0x8d, 0x08, 0x73, 0x08, 0xc8, 0x96, 0x49, 0x19, 0x16, 0x17, 0x8f,
- 0x22, 0x91, 0x24, 0xfc, 0x44, 0x44, 0xb0, 0xd8, 0x21, 0xa0, 0x71, 0x17,
- 0x54, 0x34, 0x82, 0x9f, 0x5a, 0x73, 0x98, 0xcf, 0x8a, 0xf9, 0xf5, 0xed,
- 0x13, 0xf2, 0x78, 0x5f, 0x9e, 0x8e, 0x34, 0x2a, 0x52, 0x64, 0x77, 0xde,
- 0xd6, 0xe2, 0xd2, 0x03, 0xb2, 0xff, 0xc8, 0x01, 0xc4, 0x94, 0xca, 0x60,
- 0x3b, 0x40, 0x4f, 0x58, 0x2a, 0xb8, 0x30, 0x99, 0x4b, 0x7e, 0xd0, 0x49,
- 0x10, 0x18, 0x31, 0x75, 0x45, 0xcb, 0xa3, 0xb1, 0x32, 0x64, 0x99, 0x5e,
- 0x88, 0xbb, 0xcf, 0x28, 0x4b, 0x4f, 0xfa, 0xc9, 0x60, 0x1f, 0xfc, 0x39,
- 0x7b, 0xed, 0x49, 0x4c, 0x1b, 0xa6, 0x09, 0xa4, 0x36, 0x4c, 0x4b, 0xda,
- 0x8a, 0x88, 0x83, 0x2d, 0xd9, 0xd2, 0xb7, 0xe6, 0x7d, 0xfa, 0x63, 0x5f,
- 0x06, 0x74, 0xbb, 0x07, 0xc4, 0x36, 0xf3, 0x56, 0xce, 0xee, 0x43, 0x95,
- 0x61, 0x7f, 0xed, 0xaa, 0x22, 0x37, 0xe2, 0x2e, 0xb7, 0x04, 0xd2, 0x5c,
- 0x34, 0x01, 0xae, 0x50, 0xa1, 0x04, 0xd5, 0x0e, 0x98, 0x29, 0x14, 0x27,
- 0x77, 0x91, 0xdc, 0xee, 0x6b, 0xac, 0x99, 0x7e, 0xa3, 0xf3, 0xc6, 0xce,
- 0x7a, 0x27, 0x44, 0x82, 0xb4, 0x45, 0x42, 0xb9, 0x79, 0xbb, 0x96, 0xb2,
- 0x9e, 0xcc, 0x9e, 0x35, 0x52, 0xa4, 0x25, 0x65, 0xca, 0x42, 0xdc, 0x0a,
- 0x9c, 0xf2, 0xce, 0x7c, 0xf4, 0x64, 0xc0, 0x7b, 0x30, 0x27, 0x20, 0xbf,
- 0x3d, 0x44, 0xe4, 0x49, 0x61, 0x13, 0x25, 0xc4, 0x95, 0x0f, 0x8a, 0x3e,
- 0x2c, 0xff, 0x4d, 0xce, 0x8e, 0x09, 0x60, 0x4d, 0x71, 0x9d, 0x9b, 0x93,
- 0xbf, 0x99, 0x98, 0xc3, 0xb4, 0x24, 0x89, 0xdf, 0xd8, 0x5a, 0x6d, 0x23,
- 0xa6, 0xf6, 0xdc, 0xf4, 0xc5, 0xdc, 0xe0, 0x4b, 0x1a, 0x4a, 0xbd, 0xe9,
- 0xc6, 0x2e, 0x14, 0xe7, 0xed, 0x81, 0x48, 0x9c, 0x43, 0xab, 0x93, 0x9d,
- 0x57, 0x5a, 0x80, 0x7d, 0xf3, 0xf8, 0x13, 0xe9, 0x38, 0x9b, 0xf2, 0x25,
- 0xfe, 0x35, 0xe7, 0xf4, 0x63, 0x8e, 0xce, 0x4f, 0xde, 0x71, 0x49, 0x71,
- 0x7b, 0x16, 0x32, 0xa2, 0x5e, 0xdc, 0xe0, 0xda, 0xf5, 0xe8, 0x4f, 0xaa,
- 0x1c, 0xf0, 0xec, 0x38, 0xa2, 0x3d, 0x43, 0x7b, 0x3c, 0x97, 0x6f, 0x5d,
- 0x2c, 0xf9, 0xeb, 0x9b, 0x74, 0xcf, 0xd5, 0xf5, 0x6c, 0xb3, 0x53, 0x2a,
- 0xd7, 0xae, 0x49, 0xe7, 0x42, 0xb1, 0x1e, 0xa9, 0xc9, 0xd4, 0x29, 0xf8,
- 0x28, 0x05, 0x4e, 0xad, 0xb4, 0xe4, 0x5c, 0xbf, 0x93, 0xe9, 0xe8, 0xbb,
- 0xc2, 0xff, 0x90, 0x0c, 0x77, 0xcc, 0x07, 0xeb, 0x1d, 0x7d, 0x71, 0xf1,
- 0x71, 0x52, 0x9b, 0x1b, 0x8e, 0xd2, 0x7a, 0xff, 0x02, 0x83, 0x1c, 0xcb,
- 0x61, 0x7a, 0x3c, 0xfd, 0x39, 0x19, 0x4c, 0x66, 0x18, 0x5f, 0x82, 0x82,
- 0xdc, 0x7f, 0x31, 0x2b, 0x4f, 0x4f, 0xfc, 0x6c, 0xd7, 0xf0, 0x4d, 0x4e,
- 0xe7, 0xed, 0x53, 0x5f, 0x87, 0x7e, 0xc6, 0x06, 0x03, 0xf3, 0xdb, 0x26,
- 0x87, 0xd3, 0x5b, 0x4a, 0xba, 0x9b, 0xca, 0x3f, 0x69, 0x3c, 0xc7, 0x05,
- 0xca, 0x99, 0x62, 0xa4, 0xe9, 0x98, 0xab, 0x97, 0x7f, 0x9f, 0x1b, 0xa3,
- 0xe3, 0xa8, 0xa3, 0x5f, 0x50, 0xfe, 0x1f, 0x75, 0x10, 0x6f, 0x79, 0xbf,
- 0xd4, 0x64, 0x8e, 0xbe, 0xe4, 0x2c, 0x38, 0x68, 0x29, 0x49, 0x67, 0x5a,
- 0xba, 0x61, 0xf2, 0x35, 0xc5, 0x38, 0xab, 0xcc, 0x63, 0x7f, 0x95, 0x8b,
- 0x8f, 0xcb, 0xfe, 0xd1, 0x62, 0xa4, 0xcc, 0x3f, 0x31, 0xb4, 0x23, 0x09,
- 0x72, 0x60, 0xec, 0x98, 0xec, 0x6f, 0xda, 0x83, 0x43, 0xbf, 0x34, 0xa5,
- 0xdd, 0x0c, 0x45, 0xf3, 0x25, 0x92, 0x60, 0x28, 0x1e, 0x2f, 0x25, 0xf7,
- 0x90, 0x2f, 0xcc, 0x69, 0xa6, 0x89, 0xfd, 0xa5, 0xcf, 0xa6, 0xa2, 0x9e,
- 0x63, 0x34, 0xa5, 0x1a, 0x81, 0xdd, 0x12, 0xb8, 0xc3, 0x5d, 0xaf, 0x8f,
- 0x6e, 0x8c, 0x68, 0xce, 0x6c, 0x57, 0x47, 0xec, 0xd2, 0xd3, 0x2e, 0x8e,
- 0xe8, 0x8e, 0xd2, 0x45, 0xb0, 0xbf, 0xd4, 0xec, 0x48, 0x68, 0xa1, 0x3b,
- 0x2c, 0xbb, 0xec, 0xde, 0xe5, 0xd9, 0x6d, 0x0f, 0x81, 0x92, 0x1a, 0x47,
- 0xef, 0xdf, 0x52, 0x69, 0x13, 0x54, 0xb9, 0xbe, 0xbc, 0x38, 0x7c, 0x37,
- 0x7a, 0xc3, 0xae, 0xf1, 0xcb, 0xd2, 0x2b, 0x9f, 0x2d, 0x71, 0x05, 0x8d,
- 0x1f, 0x5b, 0x9a, 0xb8, 0x3b, 0xae, 0xb7, 0xa1, 0x78, 0x7a, 0xa9, 0xad,
- 0xdd, 0xef, 0xf2, 0xed, 0x73, 0x61, 0x6e, 0x9a, 0x0d, 0xea, 0xda, 0xd6,
- 0x68, 0xdb, 0x2a, 0x42, 0xb5, 0x5f, 0x94, 0xcd, 0x55, 0xb6, 0x57, 0x66,
- 0x68, 0x79, 0x88, 0xa6, 0xe5, 0x48, 0x3b, 0xa3, 0x3f, 0xe5, 0xbb, 0x77,
- 0x25, 0x19, 0xe9, 0x91, 0x31, 0x15, 0x07, 0x52, 0xa9, 0xc6, 0xf1, 0xb1,
- 0x39, 0x77, 0x2a, 0xdf, 0xbd, 0x42, 0xe5, 0x67, 0x1b, 0xf7, 0xf3, 0x3e,
- 0xb5, 0xe9, 0xad, 0x7f, 0xdb, 0xdb, 0x8e, 0x37, 0x7f, 0xf9, 0x4b, 0x9b,
- 0x8f, 0xf7, 0x5d, 0x6d, 0x33, 0x97, 0x52, 0xb4, 0xf5, 0x6f, 0xfb, 0xdb,
- 0x6b, 0x47, 0xe4, 0x67, 0x45, 0xba, 0x6f, 0x9a, 0x37, 0xa8, 0xb3, 0xc9,
- 0x2b, 0x3e, 0x66, 0x56, 0x67, 0xb2, 0x08, 0x1d, 0x8f, 0x6f, 0xb8, 0x45,
- 0xd8, 0x41, 0xb0, 0x6d, 0xab, 0xa9, 0xbb, 0xc0, 0x9b, 0x64, 0x97, 0x9c,
- 0xfc, 0xcf, 0x63, 0x9f, 0x46, 0xb2, 0xd8, 0x6c, 0xfc, 0x2b, 0x8a, 0xd8,
- 0x01, 0xea, 0x72, 0x88, 0x6f, 0xef, 0xaf, 0xf9, 0xb6, 0x1b, 0x9d, 0xe7,
- 0x96, 0xa0, 0x28, 0x36, 0xc1, 0xe0, 0x94, 0x0d, 0x5b, 0xbe, 0x63, 0xbf,
- 0xbd, 0xee, 0x7b, 0x97, 0x27, 0x6f, 0x8f, 0x89, 0x35, 0xfb, 0xf5, 0x09,
- 0x91, 0xcf, 0x8d, 0x84, 0xfe, 0x51, 0x3d, 0x10, 0x96, 0x91, 0xd7, 0xaf,
- 0x96, 0xc2, 0xe1, 0x5d, 0x8b, 0x36, 0xb3, 0x92, 0xc3, 0xae, 0x04, 0x7d,
- 0x5a, 0x30, 0xd0, 0xb5, 0x66, 0x5a, 0x9e, 0x5c, 0x0d, 0xde, 0x96, 0x53,
- 0x58, 0xc9, 0x83, 0x11, 0xa0, 0x82, 0xe6, 0x2d, 0xf3, 0xc3, 0xf7, 0xc5,
- 0xbc, 0xf5, 0xe3, 0x61, 0x24, 0x53, 0x77, 0x63, 0x55, 0x51, 0x9e, 0xbf,
- 0xef, 0x0c, 0x06, 0xd4, 0x99, 0x01, 0xc3, 0xba, 0x24, 0xb8, 0xd3, 0xe2,
- 0xe7, 0x50, 0xd1, 0x62, 0x26, 0x28, 0x9f, 0xdd, 0x33, 0x10, 0x21, 0x75,
- 0xf0, 0x31, 0x97, 0xbd, 0x79, 0x4d, 0x19, 0x64, 0xce, 0xc5, 0xc7, 0x4e,
- 0xbc, 0x0d, 0x9f, 0xbc, 0x14, 0x86, 0x54, 0x76, 0xe7, 0xf0, 0x4f, 0x52,
- 0xe2, 0xb9, 0x5c, 0xdc, 0x63, 0x94, 0x77, 0x2d, 0x68, 0x45, 0x34, 0xbe,
- 0xfa, 0x77, 0x7e, 0xa7, 0x55, 0x86, 0x4a, 0x38, 0xa6, 0xbd, 0x1d, 0x28,
- 0x3f, 0x91, 0xaa, 0x4d, 0x67, 0x95, 0x77, 0x5d, 0x49, 0xb7, 0xb5, 0xba,
- 0x9d, 0x47, 0x6c, 0xea, 0xf1, 0xb0, 0xb6, 0xfb, 0xe9, 0x93, 0xc0, 0x96,
- 0x94, 0xfa, 0xfa, 0xba, 0xb4, 0xc1, 0x31, 0x23, 0x76, 0x16, 0xed, 0x22,
- 0xca, 0x59, 0xa2, 0x49, 0xde, 0x9c, 0xc3, 0xbf, 0x39, 0xd8, 0x44, 0x5d,
- 0x86, 0xbc, 0x88, 0x0c, 0x66, 0xf0, 0xcb, 0x47, 0x13, 0x84, 0x5e, 0x93,
- 0xde, 0x15, 0x11, 0x61, 0x50, 0x1c, 0xab, 0xc7, 0x1d, 0x60, 0x9e, 0x18,
- 0xde, 0x5c, 0xe6, 0x82, 0x20, 0xb9, 0xa6, 0x86, 0x24, 0x1b, 0xd5, 0x16,
- 0x19, 0x6b, 0x9d, 0xe4, 0xec, 0x95, 0x24, 0x41, 0xba, 0x5c, 0x4c, 0x01,
- 0xca, 0x60, 0x38, 0xea, 0x7f, 0x10, 0x29, 0x76, 0x75, 0x9f, 0xec, 0xed,
- 0xf7, 0x93, 0xfd, 0xdd, 0xbd, 0xfd, 0xc8, 0x18, 0x7a, 0xff, 0x41, 0xa0,
- 0xa8, 0x7d, 0xfc, 0xba, 0xf7, 0xd8, 0x51, 0xb8, 0x7c, 0x06, 0xdc, 0x24,
- 0x92, 0xf9, 0x6b, 0x84, 0x0f, 0xc5, 0x67, 0x41, 0xc4, 0x8c, 0xca, 0xca,
- 0xa0, 0xb3, 0xc3, 0xb5, 0xc5, 0x4e, 0x42, 0xad, 0xb1, 0x69, 0x4b, 0x87,
- 0x4d, 0x51, 0x49, 0x87, 0x8b, 0xdb, 0x02, 0xf9, 0x62, 0x3d, 0xa5, 0x69,
- 0x85, 0x52, 0xa0, 0xed, 0x35, 0xca, 0x1b, 0x5d, 0x16, 0x82, 0xd6, 0xd0,
- 0xda, 0x98, 0xfd, 0xfe, 0xfa, 0xe4, 0xe8, 0x52, 0xf9, 0x0e, 0xaf, 0x48,
- 0x79, 0xaa, 0xee, 0x1f, 0x57, 0x8c, 0x71, 0xed, 0x33, 0xd3, 0x83, 0x9b,
- 0xcc, 0xa8, 0xd1, 0xc5, 0x78, 0x79, 0x7d, 0xf0, 0xd7, 0xb4, 0xba, 0x2e,
- 0x8b, 0x87, 0x9e, 0x9f, 0x22, 0xa1, 0xec, 0xc0, 0x48, 0xa8, 0xbd, 0x17,
- 0x7b, 0x4f, 0x90, 0xff, 0x3d, 0xcb, 0x51, 0x10, 0x88, 0x04, 0xc4, 0xe6,
- 0x7c, 0x93, 0x09, 0x36, 0x90, 0x26, 0x61, 0x59, 0x35, 0x8a, 0xe9, 0x26,
- 0x5f, 0xf7, 0xa9, 0xff, 0xec, 0x54, 0x9e, 0xe5, 0xd4, 0xf3, 0x4d, 0xc9,
- 0x55, 0xd8, 0xa4, 0x34, 0xcd, 0xe5, 0x62, 0xb3, 0x4d, 0x11, 0xff, 0xc0,
- 0x58, 0xe9, 0x13, 0xb6, 0xf6, 0xe4, 0x91, 0x25, 0xbe, 0x47, 0x06, 0x51,
- 0x95, 0xa5, 0x1f, 0x5d, 0xa9, 0x65, 0xc7, 0xbe, 0xa1, 0x21, 0x8f, 0x8b,
- 0x37, 0x47, 0xcc, 0x60, 0xaa, 0xf9, 0x52, 0x98, 0xea, 0xc4, 0xba, 0xa6,
- 0xb6, 0xa9, 0x97, 0x0f, 0x7c, 0x9f, 0x72, 0x1b, 0x0e, 0xa6, 0xe3, 0x47,
- 0x3c, 0x64, 0xce, 0x1d, 0x93, 0xc5, 0x1d, 0xb6, 0x4b, 0xef, 0x90, 0xa1,
- 0x86, 0xfa, 0x21, 0x5a, 0x57, 0x79, 0x8b, 0x6b, 0xca, 0x72, 0xc4, 0x81,
- 0xba, 0xa6, 0xd5, 0xaa, 0xd5, 0xbb, 0x63, 0xfa, 0x4d, 0x55, 0x5e, 0x5f,
- 0x1f, 0x9e, 0x7b, 0x86, 0x2e, 0x0c, 0x49, 0xe7, 0xd4, 0xa3, 0xe7, 0xc8,
- 0xd0, 0x41, 0xd9, 0x76, 0xa9, 0xc6, 0xd4, 0x77, 0x26, 0x4a, 0x03, 0x39,
- 0x49, 0xba, 0x11, 0x00, 0xf2, 0xa5, 0xdc, 0x27, 0xf0, 0x3f, 0xa1, 0x9a,
- 0xc1, 0x6c, 0x9a, 0x22, 0x10, 0x2a, 0xb7, 0x10, 0x65, 0x40, 0x9c, 0x15,
- 0x9a, 0xc5, 0xdc, 0xef, 0x94, 0x6e, 0x30, 0x3f, 0xc6, 0x77, 0x70, 0x45,
- 0x9f, 0x1b, 0x25, 0x1c, 0x34, 0x2e, 0xa3, 0xd7, 0xdf, 0x51, 0x8f, 0x25,
- 0xa8, 0x03, 0xad, 0x4d, 0x7d, 0xd9, 0x36, 0x12, 0xa5, 0x56, 0xa3, 0x3a,
- 0xaf, 0xd4, 0xb7, 0x48, 0xcd, 0xdd, 0x3e, 0x19, 0xf2, 0x9f, 0xfb, 0xb6,
- 0xbc, 0x31, 0x1e, 0x03, 0xce, 0xf3, 0x4a, 0x8b, 0x27, 0xcf, 0x33, 0xaa,
- 0xe6, 0x9b, 0xd7, 0x73, 0x07, 0x4b, 0xb9, 0x92, 0xd7, 0x5d, 0x49, 0x3d,
- 0x51, 0x22, 0x29, 0xb4, 0x80, 0x7e, 0xa0, 0xb7, 0xb9, 0xe0, 0xba, 0xcc,
- 0x2e, 0xfb, 0x94, 0x48, 0x3a, 0x8a, 0xe4, 0xdd, 0x48, 0xe5, 0x14, 0x3c,
- 0x46, 0xf9, 0xd5, 0xf7, 0xba, 0x14, 0x7c, 0xd3, 0x98, 0x65, 0x48, 0xeb,
- 0x8f, 0xe6, 0x52, 0x60, 0x28, 0x82, 0x99, 0xc7, 0x5c, 0x82, 0xf9, 0xe4,
- 0xbe, 0xca, 0x19, 0x12, 0x44, 0x8e, 0x34, 0x30, 0x3a, 0xb5, 0xb6, 0x1e,
- 0x5f, 0xa6, 0x64, 0x3b, 0xcf, 0xea, 0x8c, 0xf9, 0x17, 0x41, 0x08, 0x44,
- 0xb1, 0x3f, 0xda, 0x7a, 0xb0, 0x99, 0x14, 0x53, 0x0b, 0x71, 0x46, 0xbb,
- 0x74, 0x7f, 0xff, 0xd9, 0xb3, 0x7e, 0xd2, 0x23, 0xbf, 0x23, 0xfa, 0x44,
- 0x1b, 0xfa, 0x0d, 0x04, 0x4f, 0x2f, 0x5a, 0x61, 0x77, 0xa7, 0xba, 0x9a,
- 0xd0, 0xff, 0xd1, 0x7b, 0x5a, 0x58, 0xf2, 0x52, 0x12, 0x71, 0xa8, 0x9b,
- 0x08, 0xb2, 0x5a, 0xba, 0x1c, 0xde, 0x69, 0xf4, 0xbb, 0x13, 0xeb, 0x5a,
- 0xa2, 0x38, 0xd2, 0x22, 0x2b, 0x17, 0x1a, 0x30, 0x9e, 0x4b, 0xc9, 0x10,
- 0x7c, 0xdf, 0x8b, 0xb2, 0x21, 0xc4, 0xcf, 0x08, 0x39, 0xe1, 0x45, 0xa8,
- 0x97, 0xe3, 0x81, 0x24, 0x08, 0xb3, 0xa1, 0x99, 0x9b, 0xc3, 0x3c, 0xa7,
- 0x45, 0x10, 0x0f, 0x7e, 0x20, 0xa4, 0xbf, 0x4e, 0x7a, 0xb2, 0xdd, 0xe8,
- 0x8f, 0x21, 0xe2, 0xbd, 0xd9, 0x84, 0x86, 0x51, 0xbe, 0x92, 0x7f, 0xfc,
- 0xfb, 0xbf, 0x9b, 0x66, 0xff, 0x9d, 0x5a, 0x79, 0xf5, 0x6f, 0x75, 0x73,
- 0xe3, 0x3d, 0xd3, 0x93, 0x33, 0x70, 0xe2, 0xa2, 0xdd, 0x40, 0xb0, 0x81,
- 0x79, 0x16, 0x79, 0x6c, 0x6f, 0x4f, 0x45, 0x48, 0xf7, 0xbd, 0xf1, 0xe5,
- 0xc8, 0x30, 0x64, 0xbf, 0xa9, 0x05, 0x90, 0x7c, 0x4d, 0x91, 0xe8, 0x8c,
- 0x32, 0xd3, 0xcd, 0x22, 0x80, 0x58, 0x70, 0xdb, 0x41, 0x4a, 0x58, 0xbe,
- 0xc3, 0x37, 0xca, 0x25, 0xe7, 0x3a, 0x25, 0xb4, 0xee, 0xf4, 0xa6, 0xe0,
- 0x53, 0x8c, 0x75, 0x32, 0xbf, 0x4a, 0x67, 0xe5, 0xb5, 0x1d, 0x71, 0xac,
- 0x68, 0xcd, 0x2f, 0x1a, 0x7b, 0xcf, 0x6f, 0x48, 0xdf, 0xf4, 0xe3, 0xeb,
- 0x8f, 0x6c, 0x85, 0x70, 0x02, 0xf6, 0x68, 0x02, 0xfe, 0x1a, 0x16, 0x29,
- 0x13, 0x46, 0x62, 0x63, 0xa9, 0xa8, 0x20, 0xd9, 0xd1, 0x83, 0x6e, 0x4f,
- 0x3e, 0x41, 0x77, 0x27, 0x74, 0x04, 0x3a, 0x55, 0x73, 0x9c, 0xac, 0xb0,
- 0xca, 0x8d, 0x14, 0x44, 0x11, 0xdd, 0x24, 0x33, 0xf2, 0x2a, 0x37, 0x67,
- 0x01, 0x17, 0x20, 0x7d, 0x87, 0xe6, 0x0c, 0xa1, 0xc9, 0x8c, 0x09, 0x69,
- 0xc6, 0x5c, 0x73, 0x6c, 0x30, 0x28, 0x9a, 0xd9, 0x9c, 0xf9, 0x9b, 0xa7,
- 0xa8, 0x3f, 0xa6, 0x19, 0x1a, 0x79, 0x11, 0x92, 0x0c, 0xb6, 0xe7, 0x99,
- 0x5f, 0xfd, 0xc7, 0x66, 0xc9, 0x17, 0x7a, 0x5c, 0xd6, 0x93, 0xda, 0xd9,
- 0x71, 0xc4, 0x8d, 0x8e, 0x1c, 0x8d, 0x7c, 0xa1, 0x83, 0x42, 0x4a, 0xa2,
- 0x01, 0xda, 0x6f, 0x45, 0x93, 0xb0, 0x8f, 0xf9, 0x90, 0x55, 0xcd, 0x34,
- 0x22, 0x9e, 0x69, 0x72, 0xbe, 0x19, 0xf9, 0x9e, 0x01, 0x94, 0x5c, 0x27,
- 0x5b, 0xa3, 0xd1, 0xf9, 0xc9, 0x8e, 0x56, 0x54, 0xdb, 0xd8, 0x38, 0x7e,
- 0xf7, 0xfd, 0xc9, 0xc5, 0xd9, 0xbb, 0xb7, 0xc7, 0xef, 0x2e, 0x93, 0xef,
- 0x0f, 0x2f, 0x4e, 0x0e, 0xbf, 0x3e, 0x15, 0xf2, 0x05, 0x1a, 0x26, 0x61,
- 0xce, 0xd8, 0x14, 0xec, 0x90, 0x12, 0x7b, 0x79, 0x71, 0xd1, 0x52, 0x36,
- 0x9d, 0x2a, 0xdd, 0x1f, 0x84, 0x51, 0x1f, 0x86, 0xf1, 0x07, 0x54, 0xe5,
- 0xea, 0x93, 0x2d, 0xf4, 0x41, 0x0b, 0x74, 0x91, 0x2d, 0x7f, 0xef, 0xa5,
- 0xf3, 0x13, 0x1c, 0x8e, 0xc4, 0x99, 0x0a, 0x73, 0x57, 0x9a, 0xd2, 0xd6,
- 0x7a, 0xf9, 0x86, 0x19, 0x21, 0xb4, 0xf0, 0x8d, 0xbe, 0x0a, 0xf9, 0xc1,
- 0xba, 0x8e, 0xeb, 0xc3, 0xe1, 0xe9, 0xa9, 0xfb, 0xd4, 0xfa, 0x9a, 0x48,
- 0xc2, 0x06, 0xc6, 0xb9, 0x84, 0x68, 0x94, 0xe2, 0xd4, 0xd7, 0xa5, 0x2b,
- 0x0f, 0x50, 0xdc, 0xfb, 0x95, 0x00, 0xe8, 0x63, 0x66, 0xbb, 0x6c, 0x31,
- 0x8d, 0x0b, 0x81, 0x16, 0x9a, 0xac, 0xca, 0xeb, 0x8f, 0xfd, 0x64, 0xf3,
- 0xdf, 0x36, 0x39, 0xb1, 0x33, 0x03, 0x77, 0x35, 0x57, 0x5c, 0xda, 0x76,
- 0x9d, 0x7a, 0x77, 0xe6, 0xfa, 0x24, 0x71, 0x78, 0xdb, 0x01, 0xfb, 0xa2,
- 0x43, 0x51, 0xd4, 0xaa, 0x5e, 0x03, 0xbe, 0xec, 0x1e, 0x97, 0xb2, 0x24,
- 0x96, 0x9d, 0x42, 0xe4, 0x23, 0xc5, 0x59, 0xa3, 0xef, 0xc2, 0x89, 0x90,
- 0x4e, 0x3c, 0x8a, 0x72, 0x8c, 0xb5, 0x20, 0xcf, 0x9b, 0x2d, 0x15, 0xa7,
- 0xce, 0x69, 0x33, 0xd5, 0x53, 0x21, 0x5c, 0x4c, 0xb5, 0x65, 0x49, 0x65,
- 0x46, 0xaa, 0xb8, 0x8d, 0x40, 0x79, 0x4e, 0xc6, 0x54, 0x00, 0xed, 0x43,
- 0x33, 0xd3, 0x38, 0xf9, 0xec, 0x44, 0x6a, 0x79, 0x77, 0x11, 0x13, 0xea,
- 0xe4, 0x7e, 0x4a, 0xac, 0xa3, 0x6c, 0xfd, 0x4c, 0xd6, 0x55, 0x82, 0x50,
- 0x4c, 0xda, 0xcd, 0xb3, 0x0f, 0x16, 0x0c, 0x76, 0x67, 0xea, 0x4c, 0x02,
- 0x30, 0xe9, 0xbf, 0xde, 0x43, 0x6e, 0x12, 0xc7, 0x5a, 0x2c, 0x29, 0x22,
- 0x51, 0x0e, 0x61, 0x8e, 0x1d, 0x2e, 0x3d, 0xfb, 0xc4, 0x5c, 0x42, 0x76,
- 0x97, 0xb9, 0x9d, 0xc0, 0xd5, 0xf4, 0x04, 0x86, 0xde, 0xed, 0xb1, 0x56,
- 0xca, 0x4a, 0xb5, 0x32, 0x13, 0xe2, 0x66, 0xac, 0x72, 0x41, 0x69, 0xea,
- 0x0e, 0x07, 0x4e, 0x43, 0x06, 0x3c, 0xb7, 0x3a, 0xdd, 0x69, 0xb8, 0xa7,
- 0x78, 0x82, 0x65, 0x2d, 0x2a, 0x14, 0xee, 0x90, 0x4f, 0x3b, 0x5a, 0xeb,
- 0x0a, 0x20, 0x03, 0x4a, 0x08, 0xaa, 0x8c, 0x14, 0xad, 0x57, 0x97, 0x94,
- 0x1a, 0x22, 0x36, 0x7d, 0x71, 0x84, 0x9a, 0x0c, 0x05, 0x55, 0x65, 0x75,
- 0xb5, 0x74, 0x90, 0x3c, 0x50, 0x64, 0x4d, 0x45, 0x19, 0xb9, 0x85, 0x58,
- 0x21, 0x00, 0xe4, 0xc3, 0x48, 0x4f, 0xaf, 0x4b, 0x35, 0xc0, 0x53, 0x8b,
- 0x9a, 0xb1, 0x15, 0x07, 0x3d, 0xa3, 0xde, 0x32, 0x07, 0x5a, 0xc1, 0x05,
- 0x7c, 0x8d, 0x46, 0x08, 0x09, 0x5f, 0x4a, 0x87, 0x4c, 0x2b, 0xc8, 0xd7,
- 0x1e, 0x37, 0x83, 0x4b, 0x5f, 0x22, 0x49, 0xce, 0x59, 0x3a, 0x4a, 0xe5,
- 0x07, 0xfa, 0x44, 0xe5, 0x72, 0x00, 0xd2, 0x19, 0xdd, 0xa2, 0x07, 0xd1,
- 0xa4, 0x80, 0xd6, 0xd1, 0xa4, 0x06, 0xaf, 0x8c, 0xbc, 0x9a, 0x51, 0x06,
- 0xa9, 0xea, 0x1d, 0x69, 0x32, 0xce, 0xaf, 0x99, 0x13, 0x84, 0x08, 0x28,
- 0xe8, 0x5c, 0x82, 0xe2, 0xb1, 0x9c, 0x67, 0x74, 0x38, 0x40, 0xe0, 0x08,
- 0xe3, 0xfd, 0xa6, 0x9c, 0xf9, 0x2c, 0x83, 0x3a, 0x12, 0x59, 0x7d, 0x1b,
- 0xfb, 0x40, 0xec, 0x73, 0x49, 0xf3, 0xa8, 0x70, 0x54, 0x29, 0x4f, 0x20,
- 0xe0, 0x5c, 0x0a, 0xaa, 0x81, 0x2b, 0xb5, 0x40, 0x2a, 0xa0, 0x72, 0x29,
- 0x60, 0x1e, 0x34, 0x71, 0x81, 0x36, 0x2e, 0x1c, 0xe9, 0x54, 0xe7, 0x75,
- 0xcb, 0xd6, 0x17, 0xa0, 0x56, 0x26, 0xcc, 0xd0, 0x4c, 0x62, 0x86, 0x21,
- 0x25, 0xed, 0x82, 0x60, 0xb2, 0x58, 0xc2, 0x9d, 0x67, 0xf6, 0x04, 0x75,
- 0xda, 0xcc, 0xd4, 0x96, 0xa7, 0x66, 0x14, 0x66, 0x8b, 0xf0, 0x63, 0xec,
- 0x41, 0x92, 0x7f, 0x0d, 0x6c, 0x2d, 0x43, 0x01, 0x9e, 0x6c, 0x3b, 0xe0,
- 0x11, 0x9b, 0x01, 0x24, 0x1f, 0x26, 0x52, 0x4d, 0x16, 0x10, 0x1d, 0x2a,
- 0x85, 0x0b, 0x42, 0xb8, 0x56, 0xf0, 0x21, 0xd1, 0x84, 0xbb, 0xd9, 0xcc,
- 0x2b, 0x30, 0xc0, 0xfe, 0xc8, 0x34, 0x30, 0x3e, 0x48, 0x4e, 0x0c, 0x59,
- 0xe6, 0x32, 0xf4, 0x8f, 0xc9, 0xc8, 0xbd, 0x81, 0x48, 0x52, 0x09, 0x99,
- 0x67, 0x9d, 0x98, 0x86, 0x77, 0x85, 0x28, 0x3c, 0xc6, 0x57, 0x43, 0xa5,
- 0x9e, 0x4e, 0x9e, 0xce, 0xd9, 0x78, 0x74, 0xbb, 0x6f, 0x7e, 0xcf, 0xb0,
- 0xe3, 0x8d, 0x8d, 0xa3, 0xf7, 0xa3, 0xcb, 0xb3, 0xb7, 0xc9, 0xd9, 0xfb,
- 0xcb, 0xf3, 0xf7, 0x97, 0xa2, 0xa7, 0x8e, 0x39, 0x69, 0x83, 0xa1, 0x4b,
- 0xac, 0x3b, 0xeb, 0x62, 0xce, 0x05, 0xe0, 0x03, 0x8c, 0x59, 0x09, 0x5a,
- 0x51, 0x8f, 0x51, 0xcc, 0x26, 0x65, 0x82, 0x6b, 0x8f, 0xf9, 0xca, 0x31,
- 0xe5, 0x77, 0x66, 0xca, 0x91, 0x50, 0x0f, 0x4f, 0xbe, 0xe6, 0x78, 0xc2,
- 0xef, 0xa1, 0x67, 0xad, 0x5d, 0xab, 0xea, 0xbe, 0xed, 0xc7, 0x00, 0x3a,
- 0xa7, 0xcd, 0xe0, 0xe6, 0x97, 0xcc, 0x65, 0xe7, 0xae, 0xf3, 0xfd, 0xfa,
- 0x98, 0x6e, 0x29, 0xb8, 0xab, 0x11, 0x28, 0x85, 0xd5, 0x03, 0x6b, 0xd8,
- 0xce, 0x2c, 0xf6, 0x13, 0x9c, 0x9b, 0xd2, 0x8c, 0xf0, 0xc6, 0xa6, 0xc4,
- 0x10, 0x8c, 0x10, 0x50, 0x60, 0x46, 0x50, 0x11, 0xe6, 0x96, 0x5d, 0x06,
- 0x45, 0x76, 0x47, 0x8a, 0x4f, 0xa0, 0x53, 0xdf, 0x25, 0x9b, 0x3f, 0x64,
- 0x7e, 0x83, 0x7f, 0xfc, 0x4f, 0xca, 0xdb, 0xfe, 0xa0, 0x3f, 0xf9, 0x2f,
- 0xfe, 0xe4, 0x4f, 0xc5, 0x26, 0x04, 0x66, 0x1b, 0x2a, 0xf3, 0xdd, 0xf1,
- 0xc5, 0xd7, 0xc7, 0x17, 0x67, 0x23, 0xc8, 0x03, 0xf5, 0x77, 0x87, 0x7b,
- 0xfd, 0x63, 0x56, 0x8d, 0xb3, 0xaa, 0x94, 0x3a, 0x7a, 0xfa, 0xaf, 0x67,
- 0x3b, 0xdf, 0x8c, 0x46, 0x87, 0xe7, 0x27, 0xb6, 0x52, 0x95, 0xcd, 0x20,
- 0x65, 0x1f, 0x49, 0xc1, 0x39, 0xce, 0x34, 0x7e, 0x7d, 0xc5, 0xec, 0x8b,
- 0xc9, 0x47, 0xce, 0x2c, 0x08, 0x40, 0x29, 0x1a, 0x58, 0x23, 0x34, 0x8a,
- 0x24, 0x16, 0x53, 0xc3, 0xca, 0x04, 0xe7, 0x57, 0x9b, 0xe0, 0xb2, 0x10,
- 0x14, 0x0c, 0xec, 0x5b, 0x08, 0xee, 0xc7, 0x6a, 0x3c, 0x30, 0xbb, 0xfd,
- 0xa3, 0x16, 0x6e, 0xe7, 0x44, 0x28, 0x23, 0x2a, 0x39, 0x43, 0xc2, 0x39,
- 0x1b, 0x3f, 0xe6, 0x45, 0xde, 0xec, 0x7c, 0xa4, 0xf3, 0x41, 0x55, 0x94,
- 0x66, 0x43, 0x96, 0xee, 0x7c, 0xa0, 0x14, 0xf6, 0x4e, 0x22, 0x76, 0x1d,
- 0x3b, 0x8d, 0xf9, 0x9a, 0x2d, 0x7d, 0xca, 0x0e, 0x6f, 0xf3, 0x93, 0xa7,
- 0x96, 0xa6, 0x4f, 0x34, 0x7f, 0x20, 0x65, 0xaf, 0xcc, 0x5d, 0xb5, 0xb8,
- 0x9b, 0xca, 0x25, 0x02, 0x96, 0x7a, 0x56, 0x2e, 0x45, 0x86, 0x77, 0x23,
- 0xd4, 0x54, 0x9e, 0x15, 0x19, 0x5b, 0x92, 0x8f, 0x92, 0x8c, 0x67, 0x69,
- 0xf1, 0x11, 0xfa, 0x03, 0x34, 0x02, 0xba, 0xfb, 0x94, 0x7c, 0x8e, 0xca,
- 0xe6, 0x02, 0x90, 0x20, 0x7c, 0x30, 0x30, 0xf9, 0x66, 0x24, 0xdc, 0xee,
- 0x39, 0x98, 0x67, 0x39, 0xf6, 0xbc, 0xd0, 0x3b, 0x8e, 0x93, 0x9b, 0x04,
- 0xf2, 0x1d, 0x1f, 0x9f, 0x9a, 0x8b, 0xc9, 0x66, 0x99, 0xc1, 0x47, 0x97,
- 0xcd, 0x28, 0x16, 0xa4, 0x90, 0x40, 0x4e, 0xac, 0xce, 0x21, 0xc8, 0x58,
- 0x7a, 0x68, 0x01, 0x05, 0x04, 0x90, 0xb1, 0x5d, 0x90, 0x3f, 0x5e, 0xdb,
- 0x32, 0x43, 0x22, 0xb9, 0x59, 0x88, 0x81, 0x1d, 0xd8, 0x55, 0x1d, 0xf2,
- 0xeb, 0x5f, 0x09, 0xde, 0xf6, 0xc8, 0x01, 0x02, 0x6d, 0x41, 0x40, 0xee,
- 0x84, 0x33, 0x42, 0x2d, 0xc4, 0xa0, 0x95, 0xde, 0xb6, 0x72, 0x99, 0xf8,
- 0xf5, 0x98, 0x17, 0x90, 0x49, 0x0d, 0xa7, 0x12, 0xf0, 0xb4, 0x7c, 0x60,
- 0x9a, 0xb3, 0xd0, 0xce, 0x13, 0xd0, 0x8e, 0x33, 0x1c, 0x88, 0xa2, 0x37,
- 0xb3, 0xc6, 0x3a, 0x2a, 0x6a, 0x66, 0x58, 0x83, 0xd2, 0x35, 0x85, 0xc8,
- 0xa9, 0x5a, 0x54, 0xd5, 0x3e, 0x3c, 0x9f, 0x29, 0x6b, 0x4a, 0x6b, 0x64,
- 0xb2, 0xf5, 0x6f, 0xad, 0xd9, 0xc1, 0x3b, 0xba, 0x2e, 0xca, 0xc1, 0x78,
- 0x09, 0xc7, 0x8c, 0x57, 0xa8, 0x8f, 0x93, 0xb8, 0xcb, 0x2b, 0xd6, 0x3c,
- 0xf8, 0xf7, 0x14, 0x90, 0x06, 0x3d, 0x06, 0xc7, 0xa8, 0x91, 0x2f, 0xdd,
- 0x66, 0xda, 0xb2, 0xfc, 0x4a, 0x9c, 0x84, 0xe4, 0x2a, 0x88, 0xdb, 0x01,
- 0xca, 0x22, 0x5b, 0x27, 0x8d, 0x67, 0xd3, 0xf4, 0x3b, 0x29, 0x17, 0x8d,
- 0x2d, 0x78, 0x71, 0x09, 0x35, 0x21, 0x93, 0x32, 0x10, 0x9a, 0x4b, 0xa1,
- 0x99, 0x5b, 0xb7, 0x0d, 0x95, 0x96, 0x63, 0x6a, 0x98, 0x74, 0xc6, 0x75,
- 0x7a, 0x56, 0x5e, 0x25, 0x7c, 0x98, 0x9a, 0xcb, 0xcb, 0x3f, 0x9f, 0x1f,
- 0xbf, 0xd2, 0x37, 0xd7, 0xad, 0x19, 0x33, 0x26, 0x02, 0x34, 0x97, 0x09,
- 0x43, 0xb1, 0xe6, 0xd0, 0xb0, 0xa8, 0x18, 0x34, 0x0a, 0xe6, 0xe1, 0xcf,
- 0x0c, 0x92, 0x1f, 0x5f, 0x9f, 0x8c, 0xce, 0x4f, 0xcf, 0x8e, 0x5e, 0xbd,
- 0xfc, 0x51, 0x45, 0xf2, 0x97, 0x14, 0x23, 0x64, 0x3d, 0xcd, 0xfe, 0xcc,
- 0x31, 0xba, 0xc8, 0x7b, 0xef, 0x8e, 0x7f, 0xf8, 0x60, 0xec, 0xb1, 0x57,
- 0x54, 0xd7, 0xa1, 0x7f, 0x9b, 0xce, 0xe4, 0x25, 0xd2, 0x4f, 0x23, 0xba,
- 0xdd, 0xb0, 0x4d, 0xc1, 0xd9, 0x9d, 0x58, 0x5b, 0x9f, 0xd8, 0x25, 0x2a,
- 0xdd, 0x2b, 0x8e, 0xd6, 0x2b, 0x45, 0x97, 0xb6, 0xf2, 0xea, 0x23, 0xd5,
- 0xc4, 0xdd, 0xf5, 0xbf, 0xd9, 0x30, 0xa8, 0x9a, 0x30, 0x44, 0x3e, 0x34,
- 0x07, 0xc0, 0x75, 0xf9, 0x8d, 0x03, 0xf4, 0x0b, 0x7f, 0x7a, 0x45, 0x7e,
- 0x34, 0x4b, 0x40, 0x2b, 0x25, 0xea, 0x01, 0x7a, 0x11, 0x96, 0x5a, 0xa1,
- 0x5e, 0x23, 0x0c, 0xbd, 0xa6, 0xd3, 0xa8, 0x1c, 0x13, 0x15, 0xc6, 0xf6,
- 0x25, 0xd5, 0x62, 0xd9, 0xa8, 0xc8, 0x75, 0x7e, 0x7c, 0x31, 0x3a, 0x19,
- 0x5d, 0x92, 0xe1, 0x2a, 0x95, 0x5b, 0x25, 0x08, 0xa5, 0x65, 0x75, 0x41,
- 0xda, 0xd2, 0x26, 0x1c, 0xf6, 0xab, 0x05, 0xb5, 0x4e, 0xb4, 0x15, 0x73,
- 0xed, 0x2c, 0x6e, 0xba, 0x01, 0x38, 0x35, 0x9c, 0x14, 0x51, 0xa6, 0xcd,
- 0x4e, 0xaf, 0xf4, 0x00, 0x97, 0xb2, 0x35, 0x3a, 0x45, 0x73, 0x50, 0xf0,
- 0x0a, 0xab, 0x33, 0xcb, 0xc7, 0xce, 0x99, 0xd9, 0xc1, 0x90, 0x10, 0x3c,
- 0x49, 0x28, 0x7a, 0xfc, 0x23, 0xa4, 0x01, 0x31, 0x47, 0x8d, 0x20, 0xc5,
- 0xbc, 0xe5, 0x5a, 0x93, 0xb4, 0x66, 0x3f, 0x81, 0xdd, 0xba, 0xa5, 0x60,
- 0xb4, 0xa8, 0x9e, 0x66, 0x7f, 0xea, 0xa1, 0xd0, 0x85, 0xf5, 0x0d, 0x84,
- 0xd5, 0x22, 0xb2, 0x49, 0x28, 0xe7, 0x9c, 0x8a, 0x4a, 0xfe, 0x49, 0xa3,
- 0xb5, 0x80, 0x5a, 0x03, 0x40, 0x41, 0x19, 0x59, 0xa0, 0x82, 0x88, 0xea,
- 0x78, 0x4d, 0x39, 0xac, 0xa0, 0xd6, 0x9b, 0x92, 0xbe, 0x05, 0x17, 0xbc,
- 0xff, 0x31, 0xbd, 0x4e, 0x69, 0x06, 0xc7, 0x4b, 0xbf, 0x14, 0xa4, 0xed,
- 0x3d, 0x57, 0x25, 0xc2, 0xc4, 0x03, 0x22, 0x9d, 0x56, 0xf0, 0x64, 0x34,
- 0x52, 0x2a, 0x42, 0x0d, 0x1f, 0xc1, 0x3b, 0x0f, 0xdb, 0x2c, 0x5e, 0xba,
- 0x2f, 0xd5, 0x08, 0x5b, 0x37, 0xa3, 0x5e, 0xed, 0x58, 0xda, 0xbe, 0x55,
- 0xa6, 0xc0, 0x45, 0x76, 0x2a, 0xd6, 0x14, 0x71, 0x2c, 0x26, 0xf6, 0x32,
- 0xa6, 0xac, 0x43, 0x02, 0x18, 0x54, 0xc2, 0x90, 0x66, 0xc4, 0x1f, 0x85,
- 0x96, 0x50, 0x70, 0x16, 0x95, 0xd8, 0x29, 0xec, 0xae, 0xec, 0x99, 0x2e,
- 0x8f, 0x83, 0xa7, 0xdb, 0xdb, 0x56, 0x1c, 0x5f, 0xbb, 0x97, 0x0f, 0x5a,
- 0x86, 0x0c, 0x5d, 0xac, 0x3e, 0x27, 0x5c, 0xa6, 0xc8, 0xef, 0xd3, 0xc0,
- 0x8e, 0x97, 0x27, 0x5e, 0x4b, 0xf6, 0xbd, 0xc5, 0xa7, 0x40, 0xe0, 0xb5,
- 0xaa, 0x6e, 0xd3, 0xe8, 0x5a, 0xd8, 0x00, 0xa3, 0x5f, 0x2e, 0x50, 0x42,
- 0x6d, 0x22, 0x35, 0x24, 0x80, 0xda, 0xb7, 0x0d, 0xea, 0x25, 0xe2, 0x26,
- 0xcb, 0xcc, 0xea, 0xdb, 0xf7, 0xa7, 0x97, 0x27, 0xe7, 0x3e, 0xfe, 0x20,
- 0xf9, 0xe1, 0xe4, 0xf2, 0x5b, 0xa3, 0xb5, 0x8f, 0x4e, 0xde, 0x7d, 0x73,
- 0x4a, 0x41, 0xde, 0xb7, 0x6f, 0x0f, 0xdf, 0x11, 0xbd, 0xc8, 0x3b, 0x40,
- 0x9b, 0x0f, 0x61, 0x38, 0x90, 0x38, 0x32, 0x53, 0x4c, 0x7b, 0x87, 0x88,
- 0x27, 0xfa, 0x61, 0xac, 0xb1, 0x73, 0xfc, 0xb8, 0xaa, 0x7a, 0xd1, 0x9e,
- 0x24, 0x5a, 0x71, 0xb1, 0x0c, 0xee, 0xc9, 0x8d, 0x8b, 0x63, 0x4b, 0xc6,
- 0x16, 0x4d, 0x74, 0xb7, 0x78, 0x04, 0x92, 0x9c, 0x59, 0x43, 0x07, 0x8e,
- 0x86, 0xef, 0x6e, 0x17, 0xbf, 0xc4, 0x8a, 0x5a, 0xea, 0x69, 0xd8, 0x31,
- 0x46, 0x67, 0x2a, 0xc4, 0xae, 0xe1, 0xfb, 0xb2, 0x9d, 0x74, 0x64, 0xbe,
- 0x88, 0x2e, 0x01, 0x48, 0x54, 0x3a, 0x47, 0x3a, 0x59, 0x9c, 0x64, 0x34,
- 0x5f, 0x9c, 0xfa, 0x17, 0xea, 0xb0, 0x55, 0x73, 0x50, 0xf1, 0xc1, 0xd7,
- 0x65, 0xe6, 0x4e, 0xee, 0xe0, 0x4c, 0x9b, 0xd1, 0xf8, 0x0f, 0xcc, 0x30,
- 0xbe, 0x5c, 0x06, 0x24, 0xd7, 0x06, 0x66, 0x49, 0xb6, 0x6d, 0x9d, 0x31,
- 0x31, 0xfb, 0x0f, 0x58, 0xad, 0xb4, 0xe4, 0xea, 0x5a, 0x9e, 0xd3, 0x34,
- 0xa7, 0x2d, 0x0b, 0x16, 0x0d, 0x09, 0x19, 0x92, 0xd7, 0x28, 0x63, 0x86,
- 0xb4, 0xd4, 0xc7, 0x5a, 0xb4, 0x0c, 0x7c, 0xdf, 0x9d, 0x69, 0x70, 0x52,
- 0xf3, 0x5a, 0x6d, 0xe1, 0x47, 0x07, 0x9d, 0x40, 0x69, 0x45, 0xb8, 0x2b,
- 0x32, 0x42, 0x39, 0xd0, 0x5f, 0xff, 0xba, 0xb8, 0xf6, 0x53, 0x5e, 0xb9,
- 0xb0, 0xfc, 0x22, 0xb6, 0xb2, 0xc2, 0xe4, 0xce, 0x6a, 0x91, 0x14, 0xb3,
- 0x6c, 0xf5, 0x40, 0x2a, 0x54, 0xee, 0xad, 0xfa, 0xa0, 0xfc, 0x7e, 0x3f,
- 0xfc, 0xfd, 0x3e, 0x07, 0x19, 0x4e, 0xce, 0x6f, 0x9f, 0x5b, 0x06, 0x64,
- 0x26, 0x72, 0xf0, 0xd5, 0x37, 0x55, 0x0a, 0x68, 0x87, 0xd1, 0xa3, 0xe2,
- 0x32, 0x67, 0x99, 0xc8, 0xc1, 0x3f, 0x82, 0x90, 0x2e, 0x2b, 0x24, 0xa8,
- 0xe3, 0x11, 0x44, 0x57, 0x18, 0xf7, 0x0f, 0xcf, 0x13, 0xe4, 0x14, 0x5d,
- 0x57, 0xa6, 0x41, 0xf3, 0xfb, 0xa7, 0x36, 0x19, 0xc7, 0xc9, 0x34, 0x14,
- 0x69, 0x94, 0x74, 0xc8, 0x41, 0xbe, 0xb8, 0xd5, 0x2a, 0xdf, 0xe6, 0xaf,
- 0xcf, 0x6d, 0x81, 0xae, 0xba, 0x15, 0xa4, 0x6e, 0xb1, 0x8d, 0xab, 0xf0,
- 0x47, 0xe7, 0xe0, 0x03, 0x23, 0xc9, 0xe0, 0x8c, 0x8c, 0x4e, 0xbf, 0xb2,
- 0x76, 0x46, 0x86, 0x57, 0xa6, 0x18, 0x59, 0x5f, 0x33, 0xa4, 0xc6, 0x43,
- 0x1e, 0x79, 0xc2, 0xc5, 0xaf, 0xf4, 0x21, 0xab, 0xfe, 0x97, 0xfd, 0xdd,
- 0xdd, 0xbd, 0x83, 0xbd, 0xcf, 0x5f, 0xec, 0x1e, 0xec, 0xed, 0xed, 0xed,
- 0x1f, 0xec, 0x1d, 0x1c, 0xec, 0xef, 0xfe, 0xbc, 0x43, 0xfe, 0xa3, 0xdb,
- 0x3c, 0xbb, 0xd3, 0xc8, 0x34, 0xfb, 0xf9, 0xb0, 0xad, 0xeb, 0xe6, 0x9e,
- 0xc1, 0x00, 0xec, 0xe9, 0xc3, 0xbe, 0x56, 0xcd, 0xc7, 0xd2, 0xca, 0x70,
- 0xce, 0x0c, 0x53, 0x48, 0x2e, 0x5c, 0xaa, 0x39, 0xce, 0xa0, 0x47, 0x73,
- 0x8f, 0x5e, 0xfd, 0x6d, 0x49, 0x23, 0x1d, 0x93, 0x3a, 0x00, 0x9d, 0xa6,
- 0xb6, 0x89, 0xbd, 0xd7, 0xb3, 0x72, 0x3c, 0x46, 0xea, 0x92, 0xcd, 0x6d,
- 0x1f, 0x26, 0xc4, 0xa5, 0xfc, 0x91, 0xb7, 0x84, 0x84, 0x0e, 0x81, 0x2a,
- 0xe6, 0x83, 0xee, 0x66, 0xc7, 0x79, 0xf6, 0xcc, 0x0e, 0x98, 0x94, 0x54,
- 0x57, 0x04, 0x9e, 0x6e, 0x33, 0x49, 0x95, 0xcd, 0x79, 0x4b, 0xae, 0xb2,
- 0xcf, 0x77, 0x0f, 0x0e, 0xa8, 0xf4, 0xcf, 0x1f, 0xf7, 0xfa, 0x02, 0x08,
- 0xf7, 0xb3, 0x5c, 0xfa, 0xf6, 0x7a, 0xe2, 0x36, 0xc8, 0xfc, 0xf0, 0xc7,
- 0x59, 0x2c, 0xe7, 0x59, 0x65, 0x0c, 0x11, 0x2a, 0x1e, 0x0d, 0x44, 0x34,
- 0x3c, 0x86, 0xcc, 0xb1, 0x08, 0x46, 0xa6, 0x4e, 0x36, 0x0e, 0xdd, 0x08,
- 0xcc, 0x15, 0x6d, 0x59, 0x28, 0x98, 0x2f, 0xcc, 0x0d, 0xd1, 0xb6, 0x8d,
- 0xf2, 0x57, 0x00, 0x6b, 0x72, 0x2e, 0x1b, 0x67, 0xf1, 0xf1, 0x7d, 0x2b,
- 0x92, 0x01, 0x87, 0xab, 0xe0, 0x92, 0xc6, 0xf4, 0x38, 0xeb, 0xf0, 0xf0,
- 0x98, 0x78, 0xca, 0xad, 0x24, 0xf0, 0xfd, 0xc5, 0x1b, 0xec, 0xfe, 0xb3,
- 0xbd, 0x9f, 0x19, 0xaf, 0x4c, 0x07, 0xc2, 0xcd, 0x9a, 0x06, 0x5f, 0xfc,
- 0x14, 0x2d, 0xdd, 0x48, 0x5b, 0xd9, 0xf0, 0x7a, 0xa8, 0x5a, 0x85, 0x78,
- 0x1b, 0xfb, 0x7e, 0xd6, 0x08, 0xd7, 0x29, 0xe0, 0x42, 0xe5, 0xb0, 0xd3,
- 0xd4, 0xa1, 0xe4, 0xbb, 0x6a, 0x75, 0x60, 0xb6, 0x1c, 0xdd, 0xdb, 0xe3,
- 0xcb, 0x43, 0x73, 0x79, 0x7c, 0x17, 0x1a, 0xfa, 0x6f, 0x33, 0x63, 0x95,
- 0xd3, 0x62, 0x6f, 0xe1, 0x3c, 0xdc, 0x5a, 0x76, 0x70, 0x9a, 0xbb, 0xa7,
- 0xc9, 0x16, 0x85, 0x28, 0x9f, 0x7d, 0xfe, 0xec, 0xe9, 0x36, 0x97, 0x62,
- 0xe1, 0xd7, 0x32, 0x4a, 0x10, 0x83, 0x57, 0x52, 0xd8, 0xa9, 0xc8, 0x81,
- 0x6f, 0x45, 0xd2, 0xfb, 0x8b, 0x13, 0x3e, 0xd2, 0x37, 0x4c, 0x22, 0xc2,
- 0x46, 0x6f, 0x97, 0x4d, 0x12, 0xf7, 0xad, 0xa7, 0x64, 0xcc, 0x73, 0x62,
- 0x3a, 0x05, 0xf9, 0x02, 0x5d, 0x8c, 0x96, 0xfc, 0x03, 0x37, 0xac, 0x39,
- 0xa0, 0x25, 0x0a, 0x94, 0x4a, 0xdd, 0x37, 0x74, 0x06, 0xd4, 0xa8, 0xc4,
- 0xcc, 0x2c, 0xfb, 0xcc, 0x5a, 0x60, 0x64, 0x07, 0xb1, 0x3c, 0x62, 0xe9,
- 0xdf, 0x61, 0xe3, 0xdf, 0x66, 0xc8, 0x0f, 0x94, 0x42, 0xda, 0x86, 0xe6,
- 0x41, 0xc5, 0x8e, 0x53, 0x8f, 0x5b, 0xe9, 0xa8, 0x4e, 0xdb, 0xf4, 0x48,
- 0xdd, 0x94, 0xcf, 0x49, 0x44, 0x91, 0x9d, 0x42, 0xc6, 0xb3, 0x34, 0xf0,
- 0x2c, 0xe6, 0x2d, 0x97, 0x8f, 0x90, 0x69, 0x80, 0xd4, 0x02, 0x39, 0x07,
- 0x73, 0x73, 0x1d, 0x55, 0xf7, 0xa2, 0x61, 0xc3, 0x4c, 0xb0, 0xf5, 0x14,
- 0x3b, 0x88, 0x20, 0xa6, 0x8d, 0xf1, 0x53, 0x69, 0x2c, 0x6b, 0x92, 0x1a,
- 0xcd, 0xad, 0x0e, 0xb4, 0xc4, 0xfe, 0x60, 0xae, 0xbf, 0xf2, 0x00, 0x73,
- 0x7e, 0x7e, 0xa9, 0xfe, 0x5d, 0x9f, 0xf3, 0xb0, 0xd4, 0x69, 0x77, 0x60,
- 0x2b, 0xba, 0xc6, 0x8c, 0xba, 0xc0, 0x4f, 0x5a, 0xeb, 0x67, 0x0b, 0x3d,
- 0xd9, 0xd9, 0xd9, 0x5e, 0xd1, 0x1b, 0xf9, 0x75, 0xec, 0xeb, 0xe7, 0x20,
- 0x25, 0xf2, 0x52, 0xba, 0xcd, 0x9a, 0xb7, 0x1b, 0xa7, 0xa9, 0xcd, 0x6b,
- 0x5a, 0xc9, 0xa9, 0x00, 0xe3, 0xd9, 0x8d, 0xaa, 0xe6, 0x15, 0x77, 0x5e,
- 0x85, 0x57, 0x7b, 0x10, 0x82, 0xc5, 0x53, 0x92, 0x38, 0xae, 0x2a, 0xcf,
- 0xa8, 0x80, 0x61, 0x72, 0x48, 0xbb, 0xa1, 0xf5, 0x61, 0xaf, 0xcb, 0xea,
- 0xcf, 0xd5, 0xba, 0x07, 0xaa, 0xc4, 0x5a, 0x77, 0x5e, 0xdf, 0xfb, 0xa5,
- 0xaa, 0x79, 0xca, 0x09, 0x62, 0x9d, 0xbd, 0xe3, 0x8c, 0xf9, 0x8f, 0xac,
- 0xe4, 0xf4, 0xf8, 0xcc, 0xf3, 0xa2, 0x55, 0x28, 0x58, 0x1a, 0x01, 0xd2,
- 0xc5, 0x0e, 0x02, 0x54, 0xa9, 0x95, 0x52, 0x70, 0xfb, 0xc5, 0x43, 0x41,
- 0x41, 0x22, 0x59, 0x2d, 0xac, 0x58, 0xdb, 0x4d, 0xcc, 0x20, 0x85, 0x31,
- 0x6f, 0xaf, 0xd6, 0x7c, 0xf4, 0x79, 0xc7, 0x33, 0x8a, 0xc9, 0x42, 0x2a,
- 0x48, 0x60, 0x1c, 0x9e, 0x9c, 0x12, 0x2c, 0xf6, 0xd4, 0x98, 0x78, 0x23,
- 0x55, 0x95, 0x00, 0x13, 0x07, 0x60, 0xb7, 0xc8, 0x49, 0x5d, 0xef, 0xdb,
- 0x82, 0x43, 0x9a, 0x2d, 0x09, 0xbb, 0x85, 0x42, 0xac, 0x6c, 0xfa, 0x0b,
- 0x49, 0xa8, 0x59, 0x2d, 0xa3, 0x2f, 0xd5, 0xec, 0xb4, 0x05, 0x01, 0x37,
- 0x95, 0xa6, 0xb8, 0xcd, 0x66, 0xe5, 0x02, 0x26, 0x35, 0x8b, 0x69, 0xd4,
- 0x3b, 0xab, 0xb2, 0x59, 0x76, 0x2b, 0xde, 0x55, 0xa6, 0x33, 0xfe, 0x46,
- 0x10, 0x0b, 0x5c, 0xf0, 0xb8, 0x91, 0xac, 0x96, 0x00, 0x15, 0x41, 0x1f,
- 0xdd, 0x61, 0x56, 0x28, 0x47, 0xf6, 0x43, 0xdf, 0x77, 0x45, 0x38, 0xcc,
- 0x0c, 0xd9, 0x22, 0x0e, 0x03, 0x32, 0x72, 0x05, 0xdc, 0xfe, 0xbe, 0x16,
- 0x3e, 0x97, 0x6e, 0xb6, 0x08, 0x3b, 0x0b, 0xb5, 0x66, 0x26, 0x7b, 0xdf,
- 0xfb, 0x4a, 0x93, 0xce, 0x21, 0x03, 0xba, 0x79, 0xfa, 0xe4, 0xa9, 0x45,
- 0x4b, 0x57, 0xc6, 0x22, 0xa3, 0x82, 0x38, 0x7d, 0x4e, 0x1d, 0xc7, 0xe6,
- 0x28, 0x67, 0xe6, 0x9f, 0x00, 0x54, 0x32, 0xc4, 0xda, 0x3c, 0x4b, 0xf1,
- 0x66, 0x0f, 0xd3, 0x4e, 0x98, 0x1b, 0xa4, 0x43, 0xc9, 0xbf, 0xd0, 0x54,
- 0xb5, 0x04, 0x9b, 0x78, 0x9f, 0x6f, 0x43, 0x8a, 0xf3, 0x36, 0x93, 0xa1,
- 0xed, 0xbd, 0xa0, 0x7e, 0xb8, 0xff, 0xaf, 0x79, 0x2a, 0x69, 0x10, 0xac,
- 0x87, 0x94, 0x95, 0x4e, 0x2f, 0x2f, 0xc3, 0x98, 0x4b, 0x9c, 0x7e, 0xbd,
- 0xa4, 0xf8, 0xa3, 0x2d, 0xe0, 0x45, 0xbd, 0x98, 0xd3, 0x5d, 0x94, 0x71,
- 0x35, 0x61, 0xdb, 0x38, 0x99, 0x74, 0x4b, 0xb3, 0xbc, 0xdc, 0xfa, 0x69,
- 0x79, 0x47, 0xa5, 0x90, 0xaf, 0xae, 0xf2, 0x09, 0xc5, 0xfe, 0x1d, 0x6b,
- 0x38, 0xc9, 0x78, 0x7e, 0x70, 0xae, 0xd5, 0xd7, 0xcc, 0xd8, 0x92, 0xc5,
- 0x72, 0x3c, 0x33, 0x97, 0xb5, 0xe6, 0xb3, 0x98, 0x53, 0x85, 0x59, 0x32,
- 0xd6, 0x16, 0x9a, 0x63, 0x7a, 0x43, 0x18, 0x9c, 0x9d, 0x1c, 0x0a, 0x84,
- 0x4b, 0x2b, 0xa8, 0xe0, 0x73, 0xd4, 0x84, 0xa6, 0x44, 0x83, 0x79, 0x59,
- 0x68, 0x3a, 0xdc, 0xb2, 0x66, 0x3a, 0x59, 0x44, 0x73, 0xb8, 0x4a, 0x56,
- 0x82, 0x27, 0xa5, 0x68, 0x83, 0x98, 0xe6, 0x78, 0xc3, 0x1f, 0xcc, 0x74,
- 0xb0, 0xb8, 0x59, 0xe8, 0x4a, 0xab, 0x42, 0xc4, 0xda, 0x92, 0x24, 0x60,
- 0xe1, 0xe8, 0x9d, 0x7f, 0x7b, 0x3e, 0x4c, 0x8e, 0xa9, 0x25, 0xee, 0x93,
- 0x28, 0xba, 0xf0, 0xd1, 0x98, 0xdf, 0x99, 0xc1, 0x5e, 0xd3, 0x05, 0x76,
- 0x56, 0xd1, 0xbf, 0xd0, 0x9a, 0xfc, 0x92, 0xdd, 0xb2, 0xf8, 0x6d, 0xfb,
- 0xab, 0xa6, 0x21, 0x4d, 0xb3, 0x38, 0xc7, 0xdf, 0xcd, 0x59, 0x31, 0xea,
- 0x97, 0x5d, 0x26, 0xf7, 0x85, 0xb2, 0x6a, 0x91, 0x6f, 0xf1, 0x9b, 0x89,
- 0xd1, 0xca, 0xa0, 0x5b, 0x2d, 0xee, 0xb1, 0x7e, 0x9e, 0x70, 0x64, 0xfd,
- 0x93, 0x1b, 0xf0, 0xb6, 0x96, 0x6c, 0x3f, 0x0b, 0xe0, 0xe5, 0x83, 0x55,
- 0x31, 0xed, 0x54, 0x95, 0x09, 0xdc, 0xb9, 0x94, 0xc0, 0x34, 0x7b, 0x34,
- 0xea, 0xac, 0x73, 0x5e, 0x3d, 0xfb, 0x4d, 0x7f, 0x41, 0x66, 0x37, 0xf5,
- 0xc5, 0x68, 0x2d, 0x66, 0x09, 0x86, 0x1b, 0xff, 0x5f, 0x59, 0x1d, 0xb8,
- 0x57, 0x8a, 0xfa, 0x02, 0x00,
+ 0xad, 0x56, 0xca, 0xf9, 0xce, 0xee, 0x6d, 0xad, 0x2e, 0xf8, 0xa2, 0x88,
+ 0x66, 0x9e, 0xef, 0xad, 0x99, 0x24, 0xec, 0x6d, 0xfe, 0x79, 0x93, 0xe1,
+ 0xfc, 0x9b, 0x2f, 0x37, 0x21, 0xc1, 0x48, 0x2e, 0xcd, 0xc7, 0x19, 0xd2,
+ 0xca, 0xe4, 0x72, 0xda, 0xe4, 0x5b, 0x71, 0xc0, 0xba, 0x83, 0x70, 0x51,
+ 0xba, 0x03, 0x82, 0x6b, 0xd9, 0x59, 0x7c, 0x3e, 0xce, 0x11, 0x16, 0x3d,
+ 0xca, 0xbd, 0xa0, 0x57, 0xc4, 0x08, 0x3d, 0x6e, 0x18, 0xd3, 0x22, 0x97,
+ 0x2e, 0xd4, 0x32, 0x70, 0xa0, 0x10, 0x2d, 0x90, 0x78, 0x24, 0x97, 0xc5,
+ 0x82, 0xb2, 0xde, 0x27, 0x0d, 0x1c, 0x23, 0x7c, 0x96, 0x86, 0xc9, 0xfb,
+ 0x62, 0xca, 0x25, 0xee, 0xc9, 0xae, 0xcd, 0xab, 0xc9, 0x72, 0x4e, 0x5e,
+ 0x85, 0x09, 0xf9, 0xb2, 0x70, 0xf1, 0xb0, 0x7a, 0xd0, 0x8a, 0xa4, 0xfb,
+ 0x1d, 0x66, 0x3f, 0x06, 0xfb, 0xb6, 0xe5, 0xbb, 0x40, 0x8d, 0x10, 0x56,
+ 0x4a, 0x7c, 0xd7, 0xd0, 0x0a, 0x2c, 0x17, 0x8a, 0x08, 0x20, 0x0a, 0xe2,
+ 0x1d, 0xbf, 0x39, 0xbe, 0xb8, 0x38, 0xbe, 0xa0, 0xf9, 0x3e, 0xec, 0x14,
+ 0x45, 0x53, 0x2e, 0x6a, 0x17, 0x15, 0x54, 0x84, 0xae, 0xef, 0x54, 0xd1,
+ 0x04, 0x22, 0x12, 0x85, 0xc2, 0x88, 0x0a, 0x0b, 0x82, 0xd9, 0x7f, 0xb8,
+ 0xea, 0x84, 0xef, 0x09, 0x04, 0x42, 0xdb, 0x7a, 0xf8, 0x81, 0x58, 0x82,
+ 0xaf, 0xb0, 0xa5, 0x5b, 0xb8, 0x16, 0x2a, 0x29, 0x44, 0xb0, 0xd4, 0x64,
+ 0xfb, 0x9b, 0xac, 0xa5, 0xa6, 0x0e, 0x05, 0x54, 0x9b, 0x49, 0xdc, 0x7b,
+ 0x66, 0x5d, 0x09, 0x18, 0xf2, 0x15, 0x9d, 0x51, 0xb2, 0x9d, 0x30, 0x19,
+ 0x75, 0xb3, 0x5c, 0xe4, 0x53, 0xeb, 0x98, 0x35, 0x3f, 0x37, 0xea, 0x5f,
+ 0xc2, 0xa7, 0xbc, 0x56, 0x58, 0x0a, 0x02, 0x90, 0xea, 0x37, 0xf0, 0x1d,
+ 0x63, 0x9d, 0x92, 0xe1, 0x09, 0x72, 0xd4, 0x18, 0xdf, 0xa5, 0xfc, 0xf2,
+ 0xed, 0xac, 0x71, 0xd9, 0xfb, 0x19, 0x1c, 0x82, 0x24, 0x2d, 0x14, 0x29,
+ 0xe3, 0x4b, 0x06, 0x72, 0x3b, 0xcd, 0x1d, 0x34, 0xdd, 0x95, 0x18, 0xbe,
+ 0x40, 0xb2, 0x68, 0x75, 0x90, 0xfc, 0x58, 0xe7, 0x93, 0x9f, 0xdd, 0xe5,
+ 0x81, 0x4c, 0x9d, 0x36, 0x3d, 0x15, 0xa6, 0x4e, 0x26, 0x4a, 0x8c, 0x61,
+ 0x4e, 0xd2, 0x7e, 0x3f, 0x3a, 0xbe, 0x48, 0x0e, 0xbf, 0x26, 0x62, 0xf5,
+ 0x7f, 0x70, 0x81, 0xe9, 0x39, 0xb9, 0x1d, 0x36, 0x84, 0x6e, 0x51, 0x18,
+ 0x4b, 0x32, 0xf5, 0x5a, 0x4b, 0x85, 0xc2, 0xa3, 0x36, 0x16, 0x8d, 0x7b,
+ 0xe5, 0xae, 0xfb, 0xf6, 0x1a, 0x92, 0x67, 0xef, 0x81, 0x55, 0x7c, 0xcc,
+ 0x1a, 0xd2, 0x21, 0xf3, 0x57, 0x91, 0xb9, 0x8e, 0x38, 0x7a, 0xa0, 0x6b,
+ 0x23, 0xbd, 0xaf, 0x03, 0xb3, 0x93, 0x57, 0xe9, 0x30, 0xd9, 0x7c, 0x5b,
+ 0xfe, 0xdd, 0x28, 0x03, 0xe9, 0xce, 0x93, 0xe1, 0x6e, 0xb2, 0xf5, 0x7d,
+ 0x5e, 0xbc, 0x78, 0xf6, 0x45, 0x72, 0xb2, 0xbd, 0xd9, 0xc2, 0xdd, 0x73,
+ 0x65, 0x97, 0x71, 0x5a, 0x7c, 0xb4, 0x4b, 0x76, 0x86, 0x93, 0xcd, 0xf8,
+ 0x37, 0x71, 0x3e, 0xd4, 0x5c, 0x55, 0x61, 0x65, 0x8b, 0x48, 0xe9, 0x14,
+ 0x08, 0x7f, 0xf2, 0x9d, 0x64, 0x26, 0x3f, 0x81, 0x95, 0x6f, 0x9e, 0x9a,
+ 0xd2, 0xd4, 0xbd, 0x78, 0x16, 0x34, 0xf1, 0xd4, 0xb6, 0xf1, 0x9e, 0xdb,
+ 0xf8, 0x85, 0x4d, 0xec, 0x0f, 0x77, 0xf7, 0x93, 0xad, 0xb3, 0xd1, 0xce,
+ 0xbe, 0x6d, 0x21, 0x6c, 0x62, 0x1f, 0x4d, 0xd0, 0x43, 0xed, 0x97, 0x9f,
+ 0xd2, 0xf7, 0x7f, 0xcc, 0x8a, 0x9f, 0x93, 0xad, 0x1f, 0xf6, 0xf6, 0x4c,
+ 0x03, 0x5f, 0x24, 0x87, 0x27, 0x3f, 0x24, 0x4f, 0x87, 0xa6, 0xb1, 0x77,
+ 0xe9, 0xad, 0x34, 0x27, 0xe4, 0xd0, 0x23, 0x34, 0x62, 0x7e, 0x1f, 0xb4,
+ 0xf1, 0xac, 0xd3, 0xc6, 0xa9, 0xb1, 0x0b, 0x3f, 0x99, 0x6b, 0x65, 0x77,
+ 0xf8, 0x64, 0x3f, 0xc9, 0x9f, 0x7d, 0xfe, 0x5c, 0x1b, 0x92, 0x36, 0xf0,
+ 0xfb, 0xb6, 0x63, 0x91, 0x89, 0x50, 0x8c, 0xaa, 0x73, 0xfc, 0xc9, 0x08,
+ 0x34, 0x88, 0x88, 0x8a, 0x9c, 0x7a, 0x37, 0x69, 0x35, 0x95, 0xed, 0x46,
+ 0x25, 0x5f, 0xcc, 0x4a, 0x09, 0x33, 0x7f, 0x06, 0x0f, 0xa3, 0xb9, 0x38,
+ 0x0f, 0x82, 0xee, 0x90, 0x6d, 0xaa, 0x8f, 0x7e, 0x91, 0xbc, 0x1d, 0x9d,
+ 0x1c, 0x9b, 0x11, 0xed, 0x9a, 0xae, 0xb9, 0x39, 0xe4, 0x0e, 0xe1, 0x57,
+ 0x98, 0xdc, 0x17, 0x20, 0x9f, 0x95, 0x36, 0x54, 0xe7, 0x66, 0xcc, 0xa9,
+ 0xd9, 0x74, 0xe6, 0xe2, 0xae, 0xf1, 0x5d, 0x42, 0x8f, 0x0c, 0x0e, 0xaf,
+ 0xc9, 0x84, 0xe0, 0xab, 0x16, 0x9f, 0xfe, 0xb6, 0x2c, 0xcc, 0x31, 0xa9,
+ 0xca, 0x8a, 0x40, 0x4e, 0x9b, 0x2d, 0x6d, 0xe1, 0xdb, 0xd7, 0xc7, 0x9c,
+ 0x2c, 0xff, 0x36, 0x2d, 0x8c, 0x8c, 0x24, 0xce, 0xab, 0xfa, 0x23, 0x85,
+ 0xea, 0x39, 0xf2, 0xc2, 0xef, 0x9f, 0xde, 0x17, 0x9f, 0xcc, 0x3a, 0x7e,
+ 0x36, 0xdc, 0x23, 0x74, 0x35, 0x59, 0xbd, 0x6f, 0xde, 0x9a, 0x7f, 0xef,
+ 0x3d, 0xdd, 0x4c, 0xe8, 0x57, 0x6d, 0x0b, 0x5e, 0xcf, 0xeb, 0xc6, 0xd1,
+ 0xd9, 0xd9, 0xb7, 0x27, 0x8c, 0xd5, 0x38, 0x12, 0x0f, 0x28, 0x29, 0x57,
+ 0xd6, 0x2a, 0x66, 0xe9, 0x6a, 0xac, 0x37, 0x97, 0x58, 0x84, 0xb8, 0xd9,
+ 0xc7, 0x2c, 0x5b, 0x20, 0xbd, 0xb7, 0x23, 0x11, 0x1a, 0x91, 0xd1, 0x16,
+ 0x86, 0x44, 0xea, 0x4f, 0x87, 0x9a, 0xb3, 0xa9, 0xad, 0xb7, 0x75, 0x7c,
+ 0x6f, 0x09, 0x39, 0x52, 0x57, 0x00, 0x18, 0x5d, 0xb4, 0x89, 0x05, 0xea,
+ 0x2d, 0xc6, 0x0a, 0x53, 0x71, 0x21, 0xb1, 0x7d, 0x37, 0x47, 0x46, 0xbb,
+ 0xe7, 0x4e, 0x1f, 0x88, 0x83, 0x75, 0xd3, 0xe3, 0xea, 0x87, 0x46, 0x8b,
+ 0xcc, 0x1a, 0x46, 0x93, 0x91, 0x81, 0x20, 0x18, 0x77, 0x91, 0xcd, 0xa8,
+ 0xcf, 0x9e, 0x01, 0x49, 0xf7, 0xee, 0xf0, 0xed, 0xf1, 0xab, 0xef, 0x0e,
+ 0x4f, 0xdf, 0x1f, 0x9b, 0x57, 0x72, 0xf3, 0xb1, 0x2d, 0x87, 0xb6, 0x43,
+ 0x1f, 0xe7, 0xf9, 0xa4, 0x9c, 0x51, 0x40, 0x68, 0xf3, 0x8b, 0xcd, 0x0d,
+ 0x46, 0x82, 0x27, 0x3d, 0x7a, 0x6b, 0x8f, 0x5f, 0x33, 0xfb, 0x82, 0xfe,
+ 0xb5, 0xcf, 0xff, 0xda, 0xff, 0xa2, 0xb7, 0xdd, 0x1a, 0x74, 0x60, 0x25,
+ 0x5f, 0xa1, 0x04, 0x28, 0x4a, 0x37, 0xa2, 0xda, 0x35, 0xd2, 0x2c, 0x78,
+ 0x56, 0x7a, 0x1a, 0x4e, 0xd1, 0xbb, 0x8d, 0x9e, 0xdd, 0x1a, 0xdf, 0xfb,
+ 0x36, 0x78, 0x8f, 0x5e, 0x7a, 0x05, 0x05, 0xa3, 0xb7, 0xdd, 0xb7, 0x2a,
+ 0x07, 0xa2, 0xda, 0xd4, 0x86, 0x36, 0xc1, 0x24, 0x91, 0xc9, 0x56, 0x8f,
+ 0xff, 0xf2, 0xea, 0xf5, 0xe1, 0xe5, 0x31, 0xbd, 0xa0, 0x9f, 0x17, 0xe0,
+ 0xa0, 0xcd, 0x78, 0xa0, 0xfe, 0x6c, 0x49, 0x14, 0xf9, 0x15, 0x0d, 0xa8,
+ 0xb7, 0xcd, 0x61, 0x07, 0xc4, 0xbf, 0x3b, 0xfd, 0x2a, 0x0b, 0xc5, 0x58,
+ 0xbb, 0x04, 0xf4, 0x5a, 0xc1, 0x25, 0x5b, 0x3d, 0xfe, 0x5d, 0x6f, 0x5b,
+ 0x3d, 0xb8, 0x52, 0x72, 0x46, 0x22, 0x8b, 0x53, 0xe4, 0x43, 0x04, 0x49,
+ 0xb0, 0x8c, 0x1e, 0x73, 0xeb, 0x23, 0x71, 0x05, 0xf6, 0x38, 0x79, 0xc5,
+ 0x0b, 0xec, 0xc2, 0x4b, 0x86, 0x3b, 0xf9, 0x98, 0xca, 0x72, 0x6f, 0xff,
+ 0xc9, 0x17, 0x98, 0xcf, 0x57, 0xbd, 0x1d, 0x73, 0x37, 0xf4, 0xbe, 0xa0,
+ 0x4f, 0xe7, 0x8d, 0x57, 0x82, 0x4f, 0x3e, 0x43, 0xf6, 0x94, 0xec, 0x28,
+ 0x46, 0xb6, 0xd0, 0xaa, 0x7b, 0xc4, 0x3d, 0x98, 0xd0, 0x3b, 0x4e, 0xe8,
+ 0x52, 0x9a, 0x1b, 0x8d, 0xf3, 0x63, 0xbd, 0x50, 0x3b, 0x0c, 0x65, 0x51,
+ 0xd8, 0xa9, 0x8b, 0xcf, 0xf9, 0xf7, 0x47, 0x9f, 0xdf, 0xe5, 0x31, 0x0a,
+ 0x35, 0x10, 0x7d, 0x73, 0x7e, 0xaf, 0x39, 0x5f, 0xf8, 0x16, 0x74, 0x72,
+ 0x5e, 0xb3, 0x40, 0x33, 0x1e, 0x8b, 0x6f, 0x47, 0x8d, 0x11, 0xe8, 0x04,
+ 0x46, 0xb4, 0xdc, 0x43, 0x51, 0x02, 0x30, 0xc0, 0xc7, 0x43, 0xe8, 0x9d,
+ 0x9d, 0x8e, 0x73, 0xa3, 0x09, 0xdb, 0x2c, 0x16, 0xcf, 0x2a, 0xb7, 0x53,
+ 0xaf, 0xc7, 0x2f, 0xf7, 0x38, 0x97, 0x36, 0x2c, 0x55, 0x69, 0x6d, 0x7d,
+ 0x48, 0x08, 0x0c, 0xca, 0xb3, 0xed, 0x75, 0xea, 0xa4, 0x8e, 0x61, 0x18,
+ 0x6c, 0xd2, 0xb3, 0x7d, 0x6c, 0x44, 0x4d, 0x91, 0x55, 0x6b, 0xb1, 0x10,
+ 0x91, 0xb8, 0x11, 0x86, 0xe8, 0x97, 0x02, 0x30, 0xef, 0x0c, 0x87, 0x43,
+ 0x6b, 0xee, 0x20, 0xe6, 0x25, 0xe1, 0x22, 0x62, 0xb3, 0xf3, 0x69, 0x82,
+ 0x31, 0xc7, 0x5b, 0x50, 0xe6, 0xa1, 0x50, 0x6f, 0x0b, 0x46, 0x46, 0xfc,
+ 0x04, 0xf6, 0x68, 0x78, 0x3e, 0x8e, 0x4d, 0xf9, 0xec, 0xa6, 0xd2, 0x31,
+ 0x7c, 0x8c, 0x2d, 0xc2, 0x9a, 0xbe, 0xb1, 0xef, 0x51, 0x8a, 0x11, 0x59,
+ 0x39, 0x55, 0xda, 0xb9, 0xa0, 0x1d, 0x4c, 0x58, 0x6f, 0xae, 0x99, 0x87,
+ 0x25, 0xe1, 0x49, 0x93, 0xae, 0xf4, 0x19, 0x26, 0x40, 0x42, 0xae, 0xbc,
+ 0x03, 0xf5, 0x00, 0x08, 0x0e, 0x08, 0x26, 0x52, 0xb0, 0x7b, 0x40, 0x6f,
+ 0x90, 0x85, 0x55, 0x9b, 0xa5, 0x1d, 0xa1, 0x8c, 0x26, 0x9b, 0x19, 0xba,
+ 0xbf, 0x24, 0x24, 0x0a, 0xd1, 0x4c, 0xad, 0xf9, 0x36, 0x46, 0x6d, 0x2b,
+ 0x41, 0xaa, 0xa0, 0x83, 0x77, 0xee, 0x2a, 0x02, 0x86, 0x0d, 0x98, 0xaa,
+ 0x45, 0x73, 0x06, 0x55, 0x7a, 0x08, 0x5d, 0xc7, 0xba, 0xd0, 0xf6, 0x44,
+ 0x5b, 0xb4, 0x71, 0xed, 0xce, 0xdc, 0xb8, 0x5b, 0xb9, 0x2d, 0xba, 0xcc,
+ 0x8c, 0xb2, 0x77, 0x99, 0x49, 0x31, 0x9c, 0xdc, 0x4b, 0xd2, 0x3b, 0x73,
+ 0xf5, 0x14, 0x19, 0x41, 0x29, 0x01, 0x4a, 0x80, 0x57, 0xe6, 0xd4, 0xf3,
+ 0x33, 0xda, 0x11, 0x6a, 0xa5, 0xaa, 0xd4, 0xd5, 0xaa, 0x4a, 0xb6, 0xd8,
+ 0xd0, 0x60, 0xb6, 0x64, 0x75, 0xe8, 0x91, 0x02, 0x5e, 0xce, 0x89, 0xb4,
+ 0x54, 0x34, 0x75, 0x35, 0xcf, 0xa9, 0xe7, 0x46, 0x44, 0x8f, 0x64, 0xdf,
+ 0xe4, 0x80, 0x10, 0x92, 0x9f, 0x83, 0x21, 0x10, 0x3a, 0x5b, 0xa8, 0xd8,
+ 0x62, 0x3f, 0x62, 0x43, 0xc9, 0xe2, 0x7e, 0x22, 0x24, 0x6e, 0x31, 0x00,
+ 0xbd, 0x84, 0x46, 0x6f, 0xc5, 0xbc, 0xba, 0xbe, 0x66, 0xab, 0x2d, 0xe9,
+ 0x0e, 0x2d, 0xbe, 0xc9, 0x4e, 0x69, 0x56, 0x08, 0xb0, 0x7c, 0xbf, 0x6a,
+ 0x36, 0x2f, 0x6d, 0x3d, 0x43, 0xf1, 0xba, 0xb4, 0x36, 0xb3, 0x86, 0x0f,
+ 0x79, 0xdd, 0x1a, 0x9b, 0x1f, 0x85, 0x5c, 0x8a, 0x76, 0xb8, 0xf7, 0xec,
+ 0x62, 0x03, 0x05, 0x10, 0x0a, 0xc7, 0x9d, 0xa0, 0x8b, 0x0e, 0xde, 0x3d,
+ 0x07, 0x16, 0x71, 0xa0, 0xd1, 0x3b, 0x8b, 0x8a, 0xc2, 0x76, 0x4d, 0xc6,
+ 0xa9, 0x33, 0xb9, 0x36, 0x92, 0x96, 0xb7, 0x97, 0x2a, 0xe0, 0x9d, 0x14,
+ 0x22, 0x87, 0xca, 0xdb, 0xcc, 0xd1, 0x3e, 0x3a, 0x87, 0xa3, 0xe3, 0x02,
+ 0x96, 0xd3, 0x6f, 0x85, 0x49, 0x27, 0x16, 0x6b, 0xe5, 0x15, 0x06, 0xd9,
+ 0x99, 0x95, 0x61, 0xe2, 0x35, 0xc9, 0xae, 0x92, 0xb2, 0x45, 0xa9, 0x8c,
+ 0xbe, 0x49, 0x88, 0x59, 0x5b, 0xe4, 0x3d, 0xc2, 0xe4, 0x2d, 0x9e, 0x69,
+ 0xc2, 0x35, 0x9c, 0xb4, 0x8e, 0x83, 0x85, 0xd3, 0xb9, 0x50, 0xad, 0x8e,
+ 0xb2, 0x67, 0x17, 0xa9, 0x87, 0x8c, 0xcc, 0xb1, 0x6c, 0x02, 0xec, 0x01,
+ 0x52, 0xe8, 0x6c, 0xb4, 0xfd, 0x52, 0xd6, 0x09, 0x3b, 0x19, 0x1e, 0xb4,
+ 0x8e, 0x20, 0x0d, 0xce, 0x9c, 0x45, 0x53, 0x20, 0x65, 0xc4, 0x48, 0x5e,
+ 0x40, 0x00, 0x06, 0xe3, 0x0d, 0x4e, 0x0d, 0x1a, 0x4c, 0x54, 0xa2, 0xaf,
+ 0xe7, 0x16, 0x18, 0xb7, 0x0e, 0xe6, 0x43, 0xe7, 0xf4, 0xfc, 0xe2, 0xec,
+ 0xeb, 0x8b, 0xe3, 0xd1, 0x28, 0x79, 0x7b, 0x7c, 0xc9, 0xb6, 0xfe, 0x25,
+ 0xa3, 0xe4, 0xae, 0x51, 0xc0, 0x1b, 0xb1, 0x06, 0xe5, 0x66, 0x52, 0x74,
+ 0x88, 0x3a, 0x12, 0x90, 0x9e, 0x44, 0xb5, 0xa9, 0x71, 0x3b, 0xb2, 0x11,
+ 0x3f, 0x13, 0x70, 0xdd, 0x0d, 0xbc, 0xfd, 0x80, 0x1f, 0x21, 0x20, 0x69,
+ 0x9d, 0xe7, 0xce, 0x8d, 0x0a, 0xc5, 0x98, 0x01, 0x49, 0x36, 0x3d, 0xd0,
+ 0xb9, 0xd0, 0xe9, 0xca, 0x36, 0x7f, 0x62, 0x78, 0x7f, 0x34, 0xb3, 0x29,
+ 0xd5, 0xf8, 0xfe, 0x68, 0x8c, 0x5f, 0xd9, 0x14, 0x7f, 0x4c, 0x7e, 0x30,
+ 0x6d, 0x4e, 0x8d, 0xf1, 0x2a, 0xa5, 0x87, 0x47, 0xa8, 0x39, 0xec, 0xa8,
+ 0x97, 0x73, 0xaf, 0xa6, 0x76, 0xc2, 0xd9, 0x80, 0xd5, 0x03, 0xe5, 0x3e,
+ 0x41, 0xeb, 0xc2, 0x55, 0x8d, 0x05, 0xfe, 0x66, 0xbf, 0x2c, 0x25, 0xdf,
+ 0x92, 0xe4, 0x34, 0xbb, 0x42, 0xc1, 0x70, 0x7c, 0xce, 0x34, 0xb7, 0x4b,
+ 0x1c, 0xd5, 0x7b, 0x6f, 0xe9, 0x47, 0xbb, 0xc9, 0x93, 0xcf, 0x9f, 0xef,
+ 0x7e, 0xce, 0x7f, 0xd5, 0xff, 0xbe, 0x78, 0xba, 0x2b, 0x64, 0xf9, 0xe6,
+ 0x5f, 0x4f, 0x0f, 0x9e, 0xee, 0x1d, 0x10, 0x6d, 0xe3, 0xee, 0xc1, 0xae,
+ 0xf9, 0xff, 0x4f, 0xe5, 0x27, 0xc4, 0x4d, 0xf9, 0x62, 0xff, 0xf3, 0xcf,
+ 0x00, 0x5c, 0xa1, 0xfd, 0x31, 0x33, 0x1f, 0x19, 0x34, 0xe5, 0x00, 0xec,
+ 0x51, 0xd0, 0x7c, 0xfe, 0xd8, 0xf6, 0x44, 0x12, 0xbe, 0x9f, 0x8a, 0x91,
+ 0xd3, 0xc0, 0x6d, 0x29, 0x56, 0xf5, 0xaa, 0x32, 0xdb, 0x8c, 0x5f, 0x40,
+ 0xd2, 0x0e, 0x43, 0xde, 0xe6, 0x7a, 0x86, 0xa0, 0x63, 0x6b, 0xbd, 0xc3,
+ 0x98, 0x70, 0x8f, 0xf9, 0xed, 0x97, 0x7e, 0x5a, 0x73, 0xbe, 0x37, 0xc0,
+ 0xe7, 0x26, 0x4b, 0x25, 0xef, 0x4d, 0xb4, 0x6a, 0x9e, 0x5f, 0xdf, 0xbb,
+ 0x53, 0x14, 0xfb, 0x97, 0x7e, 0x8f, 0x3d, 0x57, 0xf4, 0x96, 0xec, 0x86,
+ 0x24, 0xfc, 0x9a, 0x4d, 0x1b, 0x88, 0x7c, 0xab, 0xb5, 0x79, 0x36, 0xdc,
+ 0xf2, 0xbb, 0x99, 0xf2, 0x8a, 0x5b, 0xdb, 0x74, 0x2b, 0x2e, 0x6f, 0x1d,
+ 0x19, 0x72, 0xd0, 0xdc, 0xfb, 0x85, 0xdf, 0xde, 0x63, 0x9a, 0x73, 0x23,
+ 0xc2, 0x0e, 0xb6, 0x2b, 0x37, 0xf0, 0x16, 0x27, 0x67, 0x0c, 0x9a, 0xad,
+ 0x5f, 0xaa, 0x7c, 0xa1, 0xb6, 0xb4, 0x34, 0x5e, 0xb5, 0x5b, 0x76, 0xc0,
+ 0x6f, 0x88, 0xce, 0x69, 0x53, 0xd8, 0x50, 0x36, 0x16, 0x57, 0x3c, 0x3f,
+ 0xaf, 0x3b, 0x3b, 0xf8, 0x14, 0xed, 0x46, 0xef, 0x7b, 0xf2, 0x0d, 0x9c,
+ 0x27, 0x7b, 0xe8, 0xd6, 0x0e, 0xcd, 0xc1, 0xe0, 0xb5, 0x74, 0x26, 0x43,
+ 0xae, 0xa0, 0x7c, 0xc7, 0x8e, 0xa4, 0x7b, 0x0e, 0x48, 0x73, 0xdb, 0x9c,
+ 0x7f, 0xfb, 0xcc, 0x40, 0x0b, 0xce, 0xd5, 0x4f, 0x88, 0x84, 0x94, 0x4a,
+ 0x3b, 0x6c, 0xab, 0x08, 0x1b, 0xfc, 0xc1, 0x22, 0xac, 0x70, 0x99, 0x31,
+ 0x02, 0x8d, 0x9a, 0xa2, 0xf9, 0x9c, 0xf9, 0x69, 0xaf, 0x56, 0xda, 0x8d,
+ 0xd3, 0xaa, 0x55, 0x42, 0x61, 0x83, 0x4b, 0x86, 0x98, 0xeb, 0xd5, 0x5c,
+ 0x17, 0xc8, 0x4c, 0x64, 0x3d, 0xe2, 0x5f, 0x36, 0x36, 0x46, 0xe7, 0xc7,
+ 0xc7, 0xaf, 0x93, 0xd3, 0x93, 0xb7, 0x27, 0x97, 0x9e, 0x16, 0x6e, 0x6f,
+ 0x0f, 0xf5, 0xb4, 0x6a, 0x09, 0xbf, 0xce, 0x74, 0x38, 0x26, 0x66, 0xfe,
+ 0x9e, 0xde, 0xdf, 0xf3, 0x4c, 0x12, 0x1e, 0x66, 0xdd, 0xf7, 0x60, 0x6f,
+ 0x83, 0x84, 0x89, 0x4a, 0xa1, 0x7b, 0x5a, 0x5c, 0x6d, 0x34, 0x1a, 0xd3,
+ 0xbb, 0x01, 0x13, 0x01, 0x0c, 0xfe, 0x22, 0x38, 0x8d, 0xb6, 0xba, 0x24,
+ 0xa4, 0xb2, 0x36, 0xfb, 0x46, 0x60, 0xa8, 0x9d, 0x5e, 0xd1, 0xdc, 0x66,
+ 0x8c, 0x82, 0xf6, 0xdc, 0x72, 0x40, 0xd8, 0xdd, 0x65, 0x20, 0x26, 0x98,
+ 0xe7, 0x9c, 0x16, 0xe9, 0xc3, 0x7f, 0x51, 0xd9, 0x44, 0x6e, 0x3c, 0xc8,
+ 0x71, 0xff, 0x8b, 0xde, 0xe9, 0xb0, 0xd8, 0x57, 0xfd, 0x56, 0xcd, 0x65,
+ 0x11, 0xcd, 0x04, 0x14, 0xc9, 0x93, 0x5d, 0x9b, 0x59, 0xb0, 0x80, 0xcc,
+ 0x11, 0xfd, 0x9e, 0x3e, 0xb6, 0x97, 0x18, 0x25, 0x64, 0x49, 0xaa, 0x7c,
+ 0xb5, 0x2c, 0x82, 0xeb, 0xee, 0x2f, 0xfc, 0xae, 0x19, 0xff, 0xf3, 0x5d,
+ 0x5c, 0x6f, 0x57, 0x69, 0x35, 0x30, 0xea, 0xd6, 0xfd, 0x40, 0x5d, 0xaa,
+ 0xbc, 0x23, 0x04, 0x1a, 0xcc, 0xfe, 0x9e, 0xcc, 0x95, 0x1b, 0xed, 0xa8,
+ 0x88, 0x2e, 0x3d, 0xa4, 0x44, 0x5c, 0x72, 0x26, 0x07, 0x80, 0x86, 0x4e,
+ 0x49, 0xb9, 0xea, 0xe1, 0x74, 0x0a, 0x8e, 0x23, 0x1c, 0xd6, 0x55, 0x74,
+ 0x32, 0x8a, 0x92, 0x05, 0x20, 0x56, 0xa9, 0xd5, 0x9c, 0x86, 0x29, 0x63,
+ 0x09, 0xf5, 0xe9, 0x79, 0xb2, 0xf7, 0x39, 0x8d, 0xe3, 0x71, 0xe3, 0x79,
+ 0x53, 0x56, 0x13, 0x9b, 0xfe, 0x0b, 0x1b, 0xc1, 0xcb, 0x05, 0xe5, 0x0c,
+ 0x06, 0x94, 0xbe, 0xe3, 0xd9, 0x55, 0xfc, 0x2a, 0xf0, 0x75, 0x64, 0x94,
+ 0x48, 0x3c, 0x1d, 0xee, 0x28, 0x04, 0xb8, 0x59, 0x2d, 0xa2, 0xbb, 0x46,
+ 0xe6, 0x85, 0x1c, 0xac, 0x8c, 0xaf, 0xdb, 0xac, 0x6c, 0xae, 0x28, 0x4f,
+ 0x03, 0xb9, 0x44, 0xcc, 0x5e, 0xbb, 0xcb, 0xa7, 0x50, 0xa5, 0x1d, 0xf5,
+ 0x9c, 0x59, 0x2f, 0xde, 0x7c, 0x0c, 0x6b, 0x46, 0xcc, 0x12, 0xc1, 0x4e,
+ 0xdb, 0x33, 0x51, 0x60, 0x68, 0x5a, 0x4b, 0x78, 0x14, 0xb6, 0xa0, 0x3f,
+ 0x50, 0x2a, 0xb2, 0x8b, 0x0b, 0x90, 0xfd, 0x44, 0xa2, 0xb9, 0xe7, 0xbe,
+ 0x42, 0xb0, 0xfe, 0xa6, 0x99, 0xa9, 0x33, 0xe1, 0xad, 0xdd, 0xd8, 0xed,
+ 0x31, 0x13, 0xa9, 0x8a, 0x37, 0xec, 0xbd, 0x5d, 0xa3, 0xb4, 0xce, 0x4a,
+ 0xbb, 0xad, 0x64, 0x53, 0x85, 0x96, 0x28, 0x86, 0x35, 0xc0, 0xec, 0xec,
+ 0xed, 0x7e, 0xbb, 0x7a, 0xd6, 0x41, 0xa9, 0xbf, 0xf6, 0xe5, 0xfd, 0xa7,
+ 0x6b, 0x16, 0xed, 0xac, 0x82, 0x31, 0x9e, 0x29, 0x5c, 0x11, 0x8a, 0xa0,
+ 0x8b, 0xbc, 0x04, 0xcb, 0x66, 0x36, 0x7e, 0x76, 0x9d, 0xa2, 0x02, 0xf3,
+ 0x9a, 0xde, 0x6b, 0xfa, 0x46, 0xa7, 0x2b, 0x6f, 0x05, 0x40, 0xcd, 0xbf,
+ 0xac, 0xc9, 0x2d, 0xb6, 0x00, 0x29, 0x9e, 0xb3, 0x5d, 0x6d, 0xe6, 0x37,
+ 0xd3, 0x28, 0x78, 0x6f, 0xb3, 0xe4, 0xec, 0xb7, 0x85, 0x84, 0xee, 0x9e,
+ 0x2a, 0xbb, 0x5e, 0x32, 0x69, 0x45, 0xc9, 0xb6, 0x3e, 0xf1, 0x54, 0xcb,
+ 0x79, 0x35, 0xb2, 0x99, 0xe0, 0x43, 0xbc, 0x9f, 0x20, 0x78, 0x27, 0xa9,
+ 0xaa, 0xac, 0x52, 0x42, 0xb9, 0x73, 0x31, 0x90, 0x53, 0x76, 0x52, 0xce,
+ 0xa5, 0x08, 0x2b, 0x1f, 0xaf, 0xc2, 0xcb, 0xc1, 0x67, 0x22, 0xc6, 0x21,
+ 0x92, 0x72, 0x79, 0xa3, 0x58, 0x61, 0x4f, 0x19, 0x60, 0x14, 0x0d, 0x6b,
+ 0x38, 0x2c, 0x80, 0x06, 0xfa, 0xb2, 0x6b, 0xd1, 0x92, 0xfd, 0x14, 0x49,
+ 0xfc, 0x5a, 0x09, 0x31, 0x99, 0x38, 0x9f, 0x9c, 0xfd, 0x47, 0x67, 0xef,
+ 0xde, 0x9c, 0x7c, 0x6d, 0x59, 0x87, 0x58, 0x88, 0xb7, 0xd8, 0x30, 0xd8,
+ 0x7d, 0xec, 0x47, 0xba, 0xa5, 0xb6, 0xad, 0x00, 0x65, 0x8d, 0x78, 0xfa,
+ 0xe0, 0xff, 0x00, 0x02, 0xa4, 0x78, 0x42, 0x0e, 0x72, 0xa6, 0xea, 0xa8,
+ 0xb7, 0x9d, 0xbb, 0xa1, 0xc3, 0x2a, 0xc7, 0x09, 0x15, 0x69, 0xd5, 0x2c,
+ 0x17, 0x16, 0x44, 0xe8, 0xd5, 0xc6, 0x15, 0x5a, 0x6d, 0xcd, 0x1a, 0x5f,
+ 0x2e, 0x58, 0x34, 0x49, 0xee, 0x67, 0xcb, 0x9b, 0xcb, 0x77, 0x00, 0xb9,
+ 0x13, 0x84, 0xf6, 0x44, 0x2e, 0x80, 0x00, 0x97, 0x33, 0x23, 0x32, 0x4e,
+ 0x1f, 0xda, 0xae, 0xf1, 0x9b, 0x69, 0x5a, 0xdf, 0xf0, 0x40, 0x71, 0x69,
+ 0xe4, 0x8c, 0xa8, 0x46, 0xac, 0x2d, 0x9d, 0x92, 0xa1, 0xee, 0xc0, 0x38,
+ 0x16, 0xa8, 0xeb, 0xe2, 0x43, 0x75, 0xa2, 0x09, 0x0a, 0x16, 0x9f, 0xa4,
+ 0x19, 0xa7, 0x29, 0x42, 0x95, 0x88, 0x75, 0xe2, 0x27, 0xaf, 0x28, 0x2c,
+ 0x73, 0x40, 0xf4, 0xf2, 0x73, 0xe6, 0x7e, 0xf3, 0x33, 0x45, 0x45, 0x4a,
+ 0x3a, 0x12, 0xf8, 0x93, 0x2b, 0x2f, 0xf9, 0x8c, 0x71, 0x82, 0xba, 0xe9,
+ 0xd8, 0x47, 0x4c, 0x0e, 0x96, 0xcd, 0x3f, 0x6c, 0x0e, 0xea, 0xfb, 0xf9,
+ 0xb8, 0x9c, 0x69, 0x8e, 0x84, 0xe5, 0x7a, 0xd0, 0x87, 0x5a, 0xa5, 0xef,
+ 0x38, 0x52, 0xdb, 0x78, 0x6e, 0x49, 0x87, 0x95, 0x72, 0xfd, 0xe7, 0xda,
+ 0x46, 0x08, 0x0f, 0xe9, 0x28, 0x40, 0xc3, 0x43, 0x32, 0x9e, 0xeb, 0x31,
+ 0x4a, 0x25, 0x16, 0xb3, 0xfd, 0x30, 0x53, 0xed, 0xa1, 0x53, 0xc4, 0xaf,
+ 0x5c, 0x92, 0x87, 0x03, 0xe5, 0x44, 0x8c, 0xba, 0xd3, 0x13, 0xf2, 0x0b,
+ 0x0c, 0x90, 0xde, 0xe6, 0x5f, 0x08, 0x80, 0xde, 0xa3, 0xa2, 0xe1, 0xfa,
+ 0x23, 0xa6, 0xab, 0x3f, 0xb1, 0x43, 0x91, 0xe3, 0x7e, 0x7f, 0xd1, 0x8f,
+ 0xeb, 0xa3, 0x9d, 0xa9, 0x37, 0xfb, 0x29, 0xad, 0xae, 0x85, 0x50, 0x4f,
+ 0x22, 0x69, 0x30, 0x12, 0x6d, 0x95, 0x1b, 0xeb, 0x98, 0x24, 0xa5, 0xc4,
+ 0xa2, 0x66, 0xa0, 0x3e, 0x2d, 0x39, 0xfd, 0x4f, 0x92, 0xa3, 0xd8, 0x25,
+ 0x69, 0x37, 0xa2, 0x27, 0x71, 0xfe, 0x60, 0xb1, 0x28, 0xa9, 0xbb, 0xcb,
+ 0xb4, 0x58, 0x85, 0xf3, 0xcf, 0xca, 0x65, 0xe6, 0xbd, 0x46, 0x4e, 0x3c,
+ 0x58, 0xc2, 0x99, 0x38, 0x4e, 0xf8, 0x53, 0xd0, 0x25, 0x88, 0x82, 0x46,
+ 0xca, 0x78, 0xba, 0x26, 0xf8, 0xf7, 0xaf, 0xa4, 0x6c, 0x99, 0x39, 0xcf,
+ 0x42, 0x6a, 0x22, 0x4c, 0x7f, 0x9f, 0xef, 0x8a, 0xfb, 0xad, 0x11, 0xb8,
+ 0x6a, 0x9d, 0x1c, 0x5e, 0x1c, 0x1b, 0xcd, 0xf6, 0xba, 0x00, 0x9d, 0x44,
+ 0xd1, 0x68, 0xfe, 0x5b, 0x56, 0x48, 0x9d, 0xb4, 0x42, 0xcf, 0x07, 0x7d,
+ 0xf0, 0xce, 0x7b, 0x93, 0x36, 0x93, 0x00, 0x03, 0x38, 0xd5, 0xda, 0x6d,
+ 0xb9, 0x89, 0xd2, 0x04, 0x43, 0xea, 0x10, 0xa3, 0x01, 0x6f, 0x29, 0x0a,
+ 0x91, 0x98, 0x4f, 0x95, 0x4a, 0x11, 0x7c, 0x1e, 0x88, 0x75, 0x9f, 0x1b,
+ 0x58, 0xe7, 0x1a, 0xa7, 0xda, 0x65, 0x0d, 0xfc, 0x4d, 0x39, 0x34, 0xe5,
+ 0x5b, 0xad, 0xb0, 0xa7, 0xdb, 0x4e, 0xfd, 0xb8, 0xcb, 0xe8, 0x6f, 0xb8,
+ 0x67, 0x48, 0x17, 0xe9, 0xea, 0x05, 0x99, 0x05, 0xc3, 0xb3, 0xf7, 0x7a,
+ 0xea, 0x29, 0xbf, 0x9c, 0xad, 0x77, 0x93, 0xcd, 0x16, 0xec, 0x98, 0x16,
+ 0xd2, 0x1e, 0xf1, 0xeb, 0xb0, 0x39, 0x30, 0x95, 0xb3, 0x4a, 0xbb, 0x82,
+ 0xe0, 0xc2, 0x63, 0x22, 0x36, 0xfa, 0xc8, 0x0a, 0x80, 0x2f, 0x9f, 0xa2,
+ 0xbe, 0xdd, 0x3f, 0xd8, 0xd1, 0xba, 0x3e, 0x6c, 0x78, 0xe5, 0xed, 0xcd,
+ 0x92, 0x2a, 0x11, 0x1d, 0xf5, 0x62, 0x48, 0x1f, 0x82, 0x48, 0x45, 0xcc,
+ 0x94, 0xfe, 0x82, 0x1f, 0x03, 0xf5, 0xa6, 0xcc, 0xa4, 0x90, 0x3a, 0x96,
+ 0xed, 0xaa, 0x94, 0x98, 0xaa, 0xeb, 0x08, 0x07, 0xf6, 0x20, 0xa1, 0xc7,
+ 0xbe, 0x6a, 0x3c, 0xf8, 0x76, 0x47, 0xcb, 0x8a, 0x93, 0xff, 0x86, 0x72,
+ 0x7d, 0xf5, 0xc0, 0xd7, 0x59, 0xab, 0x0e, 0xb9, 0x4d, 0xea, 0xe9, 0x0d,
+ 0x7a, 0x66, 0x2e, 0x36, 0x67, 0x33, 0x27, 0xf0, 0xf5, 0x31, 0x5a, 0x55,
+ 0xe4, 0xbf, 0x39, 0x85, 0x49, 0x64, 0x17, 0xd5, 0xd8, 0xb8, 0x6f, 0x65,
+ 0x23, 0x50, 0xd5, 0x3a, 0x4a, 0xd6, 0xb1, 0x1c, 0x5c, 0xc8, 0xe8, 0x00,
+ 0x48, 0xe0, 0x36, 0xaf, 0x35, 0xf8, 0x68, 0xf6, 0xf6, 0x84, 0x31, 0x11,
+ 0x0d, 0x73, 0x07, 0x64, 0xcd, 0xc4, 0x9b, 0xca, 0x6c, 0x72, 0x53, 0x32,
+ 0xa6, 0xd6, 0x4c, 0x9a, 0x97, 0x94, 0xd9, 0x4b, 0xfe, 0x97, 0xec, 0x81,
+ 0x6f, 0x5d, 0x7e, 0x1d, 0x6d, 0x84, 0x21, 0x53, 0x46, 0x0e, 0xdd, 0x86,
+ 0x38, 0xfe, 0xe1, 0xf2, 0xe2, 0x30, 0xf9, 0xe6, 0xf8, 0xf0, 0xf5, 0xf1,
+ 0xc5, 0xa8, 0x73, 0xe9, 0x0b, 0xfc, 0x83, 0x35, 0x34, 0x72, 0x02, 0x43,
+ 0x35, 0x56, 0x8e, 0x00, 0xd8, 0x44, 0xe9, 0x5c, 0xa5, 0x9e, 0xd9, 0x3c,
+ 0x74, 0x90, 0xcc, 0xf9, 0x20, 0x83, 0x88, 0xa3, 0x05, 0xe0, 0x33, 0xae,
+ 0x21, 0x6c, 0x6c, 0x1b, 0x13, 0x23, 0xa1, 0x08, 0xc4, 0xa0, 0x2e, 0x73,
+ 0x3f, 0xb9, 0xc5, 0xd1, 0xea, 0xb9, 0xcb, 0x64, 0x5a, 0x6a, 0xde, 0x5e,
+ 0x7b, 0xe5, 0xbe, 0x71, 0xa9, 0xd9, 0x9e, 0xd8, 0x92, 0x4b, 0x46, 0xbc,
+ 0x86, 0xbd, 0x1f, 0x06, 0xe6, 0xbb, 0x03, 0x33, 0xf9, 0x03, 0xe2, 0x5d,
+ 0xbc, 0xcf, 0xea, 0x5e, 0xc7, 0x05, 0xd8, 0xfe, 0xfc, 0x06, 0x17, 0x66,
+ 0x0a, 0x4e, 0xd2, 0x37, 0xd1, 0x96, 0xe8, 0x74, 0xcd, 0xa8, 0x5c, 0x52,
+ 0xd7, 0x82, 0xc0, 0xa5, 0xea, 0x29, 0xc9, 0x72, 0x82, 0x82, 0x4c, 0x14,
+ 0x01, 0x28, 0x39, 0x33, 0x53, 0xf0, 0x60, 0xe8, 0x88, 0x0c, 0x01, 0xba,
+ 0x8e, 0x39, 0x7b, 0x7c, 0xa9, 0xcf, 0x98, 0x7a, 0x99, 0x3d, 0x66, 0xa6,
+ 0x5b, 0xf2, 0x90, 0x7f, 0x3f, 0x20, 0x00, 0x22, 0x18, 0xfc, 0xba, 0x15,
+ 0x1f, 0x15, 0x67, 0xa8, 0xb0, 0x72, 0x4b, 0x73, 0xd4, 0x07, 0xbb, 0xe7,
+ 0x15, 0xba, 0x4f, 0x9f, 0xd4, 0x82, 0x21, 0xf2, 0x2e, 0xa3, 0xc0, 0xc8,
+ 0xa8, 0x87, 0x7f, 0x93, 0x2b, 0xe8, 0x72, 0x2d, 0x4a, 0x16, 0x6c, 0x5e,
+ 0xda, 0x8e, 0xbf, 0x99, 0x51, 0xa9, 0x0d, 0xe8, 0x71, 0xfb, 0x5c, 0x96,
+ 0x7c, 0x53, 0xd6, 0xb8, 0x0b, 0xc2, 0xc7, 0xe9, 0x92, 0x8f, 0x4d, 0x3f,
+ 0xde, 0x90, 0xf8, 0x96, 0xe5, 0x73, 0xdd, 0xd8, 0xd0, 0xec, 0xa7, 0xf3,
+ 0xc3, 0xcb, 0x6f, 0x10, 0x5d, 0xc5, 0x16, 0x7e, 0x0d, 0x72, 0x13, 0x8d,
+ 0xa9, 0x85, 0xd9, 0x53, 0xd6, 0x80, 0x63, 0xfd, 0x57, 0x39, 0x14, 0x55,
+ 0x9f, 0x44, 0xf4, 0x2e, 0x67, 0x20, 0xd2, 0x8c, 0x2b, 0x16, 0x43, 0x46,
+ 0xb7, 0x0a, 0x33, 0x02, 0xfa, 0x6e, 0x53, 0xe3, 0x2c, 0xde, 0x72, 0x93,
+ 0x73, 0xd6, 0x37, 0x79, 0x4c, 0xd8, 0xf4, 0xa4, 0xcc, 0x91, 0xc5, 0xe3,
+ 0x93, 0x04, 0xe3, 0x17, 0x94, 0x94, 0xcc, 0x01, 0xa8, 0x69, 0x19, 0xa7,
+ 0x28, 0xf4, 0x8e, 0xf4, 0x9f, 0xe7, 0xf7, 0xc3, 0x90, 0x2b, 0x27, 0xf9,
+ 0x6a, 0xd9, 0xb4, 0xc5, 0x4a, 0x87, 0xaa, 0xd8, 0x6a, 0x96, 0x55, 0x59,
+ 0x36, 0x5e, 0x1f, 0xa0, 0xfd, 0xa4, 0x8d, 0x9c, 0x68, 0xe6, 0xa2, 0xe4,
+ 0xbe, 0x50, 0x53, 0x85, 0xe8, 0xdd, 0xbe, 0x62, 0x98, 0x8e, 0xeb, 0x72,
+ 0xb6, 0x6c, 0x3c, 0xf4, 0xf5, 0x2f, 0xeb, 0xb3, 0xd7, 0xe9, 0xad, 0x93,
+ 0xa1, 0xf2, 0x72, 0x16, 0xcc, 0x26, 0x67, 0x2c, 0x7d, 0xa3, 0x5e, 0x22,
+ 0xd8, 0x58, 0x95, 0x45, 0xbb, 0x24, 0x1c, 0x80, 0xde, 0xdb, 0x1b, 0x1b,
+ 0x23, 0x5d, 0x6c, 0x62, 0x66, 0x0d, 0x17, 0xfd, 0x7b, 0x68, 0x93, 0xd4,
+ 0x07, 0x0e, 0x16, 0x4c, 0xcc, 0x5f, 0x94, 0xaf, 0x2d, 0xe3, 0x35, 0x85,
+ 0x08, 0xe7, 0x35, 0xce, 0xeb, 0xf6, 0xa0, 0xf0, 0x2b, 0x1b, 0xae, 0xd0,
+ 0x54, 0xb0, 0xcb, 0x52, 0x29, 0xfa, 0x25, 0x5c, 0xe7, 0x36, 0x44, 0x2b,
+ 0x71, 0x3d, 0x4a, 0x06, 0x4d, 0x97, 0x80, 0xd6, 0xc1, 0xb6, 0x70, 0x5c,
+ 0xea, 0xe4, 0xce, 0xff, 0xde, 0x49, 0xfa, 0x5c, 0xac, 0x20, 0xc2, 0xaf,
+ 0xb3, 0x4c, 0xfe, 0x3f, 0x00, 0x5e, 0x09, 0x13, 0x2f, 0xb5, 0x39, 0x6c,
+ 0x73, 0xbd, 0x0e, 0x8d, 0x09, 0x75, 0x53, 0x4d, 0xdc, 0xee, 0x37, 0xda,
+ 0x41, 0x76, 0x47, 0xf6, 0x8b, 0xda, 0x08, 0xc2, 0xec, 0xc1, 0xa5, 0xa8,
+ 0x2d, 0x57, 0x12, 0x98, 0x31, 0xae, 0xac, 0x57, 0x8f, 0xca, 0xab, 0x72,
+ 0x11, 0x52, 0x56, 0xeb, 0x51, 0x5d, 0x49, 0xc3, 0xa6, 0x1b, 0x49, 0xcb,
+ 0x6e, 0xa7, 0xea, 0x84, 0xfc, 0xa7, 0x26, 0x1d, 0x09, 0xb0, 0x4b, 0xb6,
+ 0xbf, 0x57, 0xb1, 0xcf, 0xab, 0x7d, 0xac, 0x88, 0x53, 0x46, 0xd3, 0x69,
+ 0x38, 0x52, 0x3b, 0xa9, 0x5a, 0x00, 0x45, 0x2b, 0xc1, 0x40, 0x29, 0x24,
+ 0x21, 0x84, 0x24, 0x23, 0xba, 0x61, 0xce, 0xaf, 0xa6, 0xda, 0x92, 0x6a,
+ 0xc9, 0xe8, 0x95, 0xaa, 0x69, 0x1c, 0x76, 0xa5, 0x5c, 0xf7, 0xe5, 0xee,
+ 0x47, 0xbe, 0x3c, 0x22, 0x73, 0x54, 0x4d, 0xd3, 0x57, 0x09, 0x74, 0x48,
+ 0x52, 0xde, 0x97, 0xc1, 0x1b, 0x3e, 0x20, 0xc5, 0x21, 0x36, 0xaf, 0x29,
+ 0xcb, 0x43, 0x5c, 0x52, 0x42, 0x3b, 0x02, 0xff, 0xd7, 0x4d, 0x2e, 0xb8,
+ 0x52, 0x9e, 0xf5, 0x76, 0x49, 0x55, 0x78, 0xf8, 0x36, 0x12, 0x3f, 0xaa,
+ 0x6a, 0x81, 0x0f, 0xc3, 0xf0, 0xc0, 0x0c, 0x2d, 0x01, 0xaa, 0x5c, 0x22,
+ 0x27, 0x7e, 0xfa, 0x37, 0xa3, 0x30, 0x2c, 0xd6, 0xf9, 0x91, 0x5f, 0xf7,
+ 0x3f, 0x49, 0x20, 0xd6, 0x22, 0xe1, 0x04, 0x12, 0x61, 0x75, 0xa3, 0x0b,
+ 0x65, 0x7f, 0x0f, 0x86, 0x29, 0x63, 0x36, 0x40, 0x29, 0xaa, 0x2d, 0x28,
+ 0xb5, 0x59, 0x77, 0xf2, 0xb7, 0xfb, 0x32, 0x4b, 0x36, 0x39, 0x5e, 0x42,
+ 0xcc, 0xac, 0x17, 0x7a, 0x71, 0xa7, 0x56, 0x4d, 0x38, 0x4e, 0xb8, 0xae,
+ 0x9b, 0x6a, 0x39, 0x69, 0x82, 0x6a, 0xa6, 0xad, 0xd0, 0xbc, 0x9d, 0xe3,
+ 0xd2, 0xb7, 0xed, 0x4f, 0xce, 0xc5, 0xbc, 0x67, 0xeb, 0x83, 0x7a, 0xb6,
+ 0x95, 0xb6, 0x92, 0x5c, 0xf8, 0xe5, 0x8d, 0xa4, 0xf5, 0xdd, 0x6d, 0xbb,
+ 0xcb, 0x06, 0xe7, 0x36, 0xf9, 0xbd, 0xcd, 0x54, 0x84, 0xec, 0x04, 0xef,
+ 0xee, 0x15, 0x45, 0x0c, 0x8a, 0x47, 0x95, 0x08, 0x4f, 0x22, 0xd4, 0x1a,
+ 0x72, 0x59, 0x6e, 0x58, 0x2e, 0x43, 0xd3, 0xa5, 0x81, 0x40, 0x55, 0x39,
+ 0xfa, 0xbb, 0x63, 0x26, 0x52, 0x0b, 0xff, 0xd8, 0x8a, 0x57, 0xb5, 0xe3,
+ 0x43, 0xec, 0xe0, 0x54, 0xc1, 0xa6, 0x64, 0xf5, 0x43, 0xe1, 0x75, 0x93,
+ 0xf9, 0x1b, 0x26, 0xaf, 0xe5, 0x50, 0xc8, 0x17, 0xba, 0xea, 0x44, 0x78,
+ 0x37, 0x9e, 0x33, 0x6b, 0x49, 0xb0, 0x8f, 0x5e, 0xab, 0x4f, 0x15, 0x22,
+ 0x07, 0x73, 0x43, 0x96, 0x8d, 0x2e, 0x92, 0x99, 0x57, 0xfd, 0x84, 0xe9,
+ 0x02, 0x8d, 0x78, 0x73, 0x96, 0xed, 0x6e, 0x7a, 0x25, 0xbb, 0xb6, 0x18,
+ 0xf4, 0x5f, 0xc2, 0xfa, 0xb1, 0xbc, 0x82, 0xec, 0xbd, 0x20, 0x70, 0xdb,
+ 0x76, 0xa4, 0x2b, 0xa6, 0x89, 0x5f, 0xda, 0x99, 0xbd, 0x17, 0xfb, 0xc3,
+ 0xbd, 0xe7, 0x9f, 0x0f, 0x77, 0x87, 0x7b, 0xbb, 0x24, 0x5f, 0xa8, 0x2b,
+ 0x5e, 0xe7, 0x78, 0x5e, 0x22, 0x9f, 0x6a, 0xbd, 0x17, 0x7e, 0xf3, 0xdd,
+ 0xf1, 0xe5, 0xf7, 0x67, 0x17, 0xdf, 0x26, 0x27, 0xef, 0x2e, 0x8f, 0x2f,
+ 0xde, 0x1c, 0x1e, 0x3d, 0x96, 0x5b, 0xdf, 0x77, 0x5b, 0x7b, 0x25, 0xcc,
+ 0x33, 0x37, 0x31, 0xa1, 0x6f, 0xd0, 0xcd, 0x59, 0xd6, 0xdc, 0xec, 0x1e,
+ 0xec, 0xad, 0x65, 0x8f, 0x8e, 0xb8, 0x07, 0xdd, 0xfb, 0x3a, 0xa8, 0x3d,
+ 0x1a, 0xd4, 0xea, 0x56, 0x2c, 0x8b, 0xe2, 0x88, 0xb1, 0x55, 0x16, 0x97,
+ 0x0b, 0x31, 0x8f, 0xa2, 0x48, 0x20, 0x4f, 0x15, 0xc1, 0x3e, 0x66, 0x9e,
+ 0x5a, 0x2e, 0xf1, 0x26, 0x7c, 0x30, 0x82, 0x41, 0x17, 0x99, 0xbb, 0xc1,
+ 0xe5, 0xc2, 0x1b, 0x71, 0xa7, 0x30, 0xf3, 0xec, 0x14, 0x2a, 0x9e, 0x4a,
+ 0x65, 0xc9, 0x5d, 0xa3, 0xdd, 0x22, 0x05, 0x4b, 0x99, 0x1b, 0x70, 0x6a,
+ 0xf3, 0x44, 0x2c, 0x61, 0x00, 0xa0, 0x0f, 0xaa, 0xa7, 0xa3, 0xaf, 0xed,
+ 0x8a, 0xef, 0x3e, 0x7c, 0xb6, 0x43, 0x93, 0x5a, 0x2b, 0xae, 0x19, 0x03,
+ 0x6b, 0xb9, 0x46, 0x8f, 0xa4, 0x23, 0x38, 0x0d, 0x5e, 0x6f, 0xf8, 0x53,
+ 0x50, 0xa8, 0x88, 0xcf, 0x0c, 0x4c, 0x8e, 0x2d, 0x32, 0x63, 0xbe, 0xa3,
+ 0x90, 0x3b, 0xc1, 0xfa, 0x9f, 0x56, 0xa0, 0xa0, 0xd6, 0xeb, 0x16, 0x9f,
+ 0x60, 0xc2, 0x35, 0x4a, 0xfc, 0xd7, 0x59, 0xd5, 0x06, 0x3a, 0x73, 0x5a,
+ 0xa5, 0x77, 0xa8, 0xb6, 0x92, 0x3b, 0x76, 0xd0, 0x8d, 0xa4, 0x55, 0xcd,
+ 0x84, 0x14, 0x27, 0x37, 0xe7, 0xc9, 0xf9, 0xf1, 0xdb, 0x81, 0xd6, 0x3b,
+ 0x36, 0x7f, 0x67, 0x67, 0x94, 0x52, 0x41, 0x72, 0x6e, 0xcf, 0x22, 0x2b,
+ 0x14, 0x4b, 0x03, 0x99, 0x28, 0xe0, 0x1f, 0x7f, 0x00, 0x74, 0x68, 0x2c,
+ 0x59, 0xa4, 0x40, 0x46, 0x15, 0x73, 0xc9, 0xb9, 0x85, 0x5d, 0x06, 0x4d,
+ 0x5a, 0x4f, 0x01, 0x2c, 0x27, 0x5b, 0x16, 0xa4, 0x4b, 0xdf, 0x03, 0x12,
+ 0x15, 0xa8, 0x01, 0x0b, 0x13, 0x28, 0xb5, 0xfa, 0xdf, 0xf9, 0xb7, 0x47,
+ 0xa3, 0x3f, 0xec, 0xed, 0x4b, 0x77, 0xb6, 0xd5, 0x2a, 0x20, 0x59, 0xd5,
+ 0xcd, 0x9f, 0x87, 0xb8, 0xf6, 0xfb, 0xa8, 0x29, 0xd6, 0x38, 0xe0, 0x58,
+ 0x8c, 0x2d, 0x9b, 0x18, 0xb4, 0xdd, 0xca, 0x0c, 0x02, 0xf2, 0xeb, 0xde,
+ 0xaa, 0x98, 0xb6, 0x86, 0x2f, 0x85, 0x44, 0x50, 0xed, 0x49, 0xea, 0x2d,
+ 0x35, 0x16, 0xea, 0x97, 0x16, 0xfa, 0x23, 0x6e, 0x59, 0x5a, 0xdb, 0xac,
+ 0x37, 0x12, 0x0f, 0xce, 0xd2, 0x5d, 0x73, 0x9a, 0x6f, 0xf7, 0x5b, 0xa2,
+ 0x74, 0x95, 0x9b, 0x5d, 0xb9, 0x7b, 0xdc, 0x67, 0x70, 0x00, 0x04, 0xbd,
+ 0x3e, 0xd5, 0x8a, 0x6e, 0x85, 0x2b, 0x59, 0x42, 0x4f, 0x9f, 0x99, 0x85,
+ 0x32, 0x27, 0x8b, 0x29, 0x16, 0x48, 0x28, 0x94, 0x33, 0x32, 0x5d, 0xec,
+ 0x23, 0xaf, 0x2b, 0xaa, 0xf2, 0xb2, 0x60, 0x1c, 0xe9, 0xbb, 0x61, 0xf2,
+ 0x4d, 0x56, 0x50, 0x8e, 0x3b, 0x21, 0xee, 0x34, 0xf7, 0x0a, 0xb8, 0x40,
+ 0x2a, 0x29, 0x89, 0x12, 0x7b, 0xa7, 0x59, 0x2a, 0xf4, 0x99, 0x46, 0xd6,
+ 0xd5, 0x6c, 0xe1, 0x6a, 0x79, 0xa9, 0x94, 0xd0, 0x79, 0xc2, 0xf5, 0x69,
+ 0x79, 0x29, 0x98, 0xcf, 0x99, 0x1a, 0xd8, 0x6a, 0x73, 0x60, 0xa2, 0x7a,
+ 0x01, 0x9a, 0x93, 0x63, 0x8e, 0x58, 0x93, 0x78, 0x95, 0x6f, 0xc0, 0x7c,
+ 0x4d, 0xde, 0x42, 0xb6, 0xb8, 0x9c, 0x50, 0x99, 0x56, 0x37, 0xe4, 0xfa,
+ 0xa8, 0xcd, 0x75, 0x93, 0x16, 0x93, 0xfb, 0xe1, 0xd4, 0xe8, 0xb2, 0xe4,
+ 0x3c, 0x1b, 0x2e, 0x3f, 0xee, 0x78, 0xc7, 0x94, 0x44, 0xfe, 0x0d, 0xa7,
+ 0xf3, 0xb7, 0x1d, 0xdf, 0x5a, 0xb7, 0x38, 0x64, 0xf9, 0x4a, 0x5b, 0x67,
+ 0x82, 0xb6, 0x04, 0xa3, 0x22, 0xf5, 0x78, 0xae, 0xe4, 0xc3, 0x3a, 0x4e,
+ 0x2c, 0x19, 0x31, 0xb5, 0x30, 0x5c, 0x64, 0xf3, 0x03, 0x9b, 0x8d, 0xac,
+ 0xf2, 0x41, 0x0a, 0x60, 0x58, 0xc3, 0xc2, 0x73, 0xd2, 0x16, 0xd9, 0xf5,
+ 0x4c, 0x14, 0x0a, 0xdf, 0x74, 0xb1, 0x4d, 0x44, 0x52, 0x40, 0xd8, 0xe0,
+ 0x91, 0xe2, 0x47, 0xd0, 0xd8, 0xcd, 0x3e, 0x6c, 0x04, 0x52, 0xcb, 0x0f,
+ 0x57, 0xa4, 0xd0, 0xbb, 0x46, 0x84, 0xe4, 0x03, 0xbc, 0xc8, 0xa4, 0x0c,
+ 0x8b, 0x8b, 0x47, 0x91, 0x48, 0x12, 0x7e, 0x22, 0xce, 0x56, 0xec, 0x10,
+ 0x30, 0xae, 0x0b, 0x2a, 0x1a, 0xc1, 0x4f, 0x2d, 0x0f, 0xcc, 0x67, 0xc5,
+ 0xfc, 0xfa, 0xf6, 0x09, 0x79, 0xbc, 0x2f, 0x4f, 0x47, 0x1a, 0x15, 0x29,
+ 0xb2, 0x3b, 0x6f, 0x6b, 0x71, 0x95, 0x00, 0xd9, 0x7f, 0xe4, 0x00, 0x62,
+ 0xf6, 0x63, 0xb0, 0x1d, 0xa0, 0x27, 0x2c, 0x15, 0x5c, 0x98, 0xcc, 0x25,
+ 0x3f, 0xe8, 0x24, 0x08, 0x8c, 0x98, 0xba, 0xa2, 0x95, 0xcc, 0x58, 0x19,
+ 0xb2, 0xa4, 0x2c, 0x44, 0xb3, 0x67, 0x94, 0xa5, 0x27, 0xfd, 0x64, 0xb0,
+ 0x0f, 0xaa, 0x9b, 0xbd, 0xf6, 0x24, 0xa6, 0x0d, 0x33, 0xfa, 0x51, 0x1b,
+ 0xa6, 0x25, 0x6d, 0x45, 0xc4, 0xc1, 0x96, 0x6c, 0xe9, 0x5b, 0xf3, 0x3e,
+ 0xfd, 0xb1, 0x2f, 0x03, 0xba, 0xdd, 0x03, 0x62, 0x9b, 0x29, 0x26, 0x67,
+ 0xf7, 0xa1, 0xca, 0xb0, 0xbf, 0x76, 0x55, 0x91, 0x1b, 0x71, 0x97, 0x5b,
+ 0xae, 0x67, 0xae, 0x6f, 0x00, 0x57, 0xa8, 0xb0, 0x77, 0x6a, 0x07, 0xcc,
+ 0x14, 0x8a, 0x93, 0xbb, 0x48, 0x6e, 0xf7, 0x35, 0xd6, 0x4c, 0xbf, 0xd1,
+ 0x79, 0x63, 0x67, 0xbd, 0x13, 0x22, 0x41, 0xda, 0x22, 0xa1, 0xdc, 0xbc,
+ 0x5d, 0x4b, 0x59, 0x4f, 0x66, 0xcf, 0x1a, 0x29, 0xd2, 0x92, 0x32, 0x65,
+ 0x21, 0x6e, 0x05, 0x4e, 0x79, 0x67, 0xea, 0x78, 0x32, 0xe0, 0x3d, 0x98,
+ 0x13, 0x90, 0xdf, 0x1e, 0x22, 0xf2, 0xa4, 0xb0, 0x89, 0x12, 0xe2, 0xca,
+ 0x07, 0x9b, 0x1e, 0x96, 0xff, 0x26, 0x67, 0xc7, 0x04, 0xb0, 0xa6, 0xb8,
+ 0xce, 0xcd, 0xc9, 0xdf, 0x4c, 0xcc, 0x61, 0x5a, 0x92, 0xc4, 0x6f, 0x6c,
+ 0x59, 0xb5, 0x11, 0xb3, 0x70, 0x6e, 0xfa, 0x62, 0x6e, 0xf0, 0x25, 0x0d,
+ 0xa5, 0xde, 0x74, 0x63, 0x17, 0x36, 0xf2, 0xf6, 0x40, 0x24, 0xce, 0xa1,
+ 0x85, 0xc4, 0xce, 0x2b, 0xad, 0x95, 0xbe, 0x79, 0xfc, 0x89, 0x74, 0x9c,
+ 0x4d, 0xf9, 0x12, 0xff, 0x9a, 0x73, 0xfa, 0x31, 0x47, 0xe7, 0x27, 0xef,
+ 0xb8, 0xfa, 0xb7, 0x3d, 0x0b, 0x19, 0xb1, 0x24, 0x6e, 0x70, 0x99, 0x79,
+ 0xf4, 0x27, 0x55, 0xba, 0x76, 0x76, 0x1c, 0xd1, 0x9e, 0xa1, 0x3d, 0x9e,
+ 0xcb, 0xb7, 0x2e, 0x96, 0xfc, 0xf5, 0x4d, 0xba, 0xe7, 0xea, 0x7a, 0xb6,
+ 0xd9, 0xa9, 0x6a, 0x6b, 0xd7, 0xa4, 0x73, 0xa1, 0x58, 0x8f, 0xd4, 0x64,
+ 0xea, 0x14, 0x7c, 0x54, 0xed, 0xa6, 0x56, 0x5a, 0x72, 0xae, 0xdf, 0xc9,
+ 0x74, 0xf4, 0x5d, 0xe1, 0x7f, 0x48, 0x86, 0x3b, 0xe6, 0x83, 0xf5, 0x8e,
+ 0xbe, 0xb8, 0xf8, 0x38, 0xa9, 0xcd, 0x0d, 0x47, 0x69, 0xbd, 0x3f, 0xc2,
+ 0x20, 0xc7, 0x72, 0x98, 0x1e, 0x4f, 0x7f, 0x4e, 0x06, 0x93, 0x19, 0xc6,
+ 0x97, 0xa0, 0x76, 0xf6, 0x8f, 0x66, 0xe5, 0xe9, 0x89, 0x9f, 0xed, 0x1a,
+ 0xbe, 0xc9, 0xe9, 0xbc, 0x7d, 0xea, 0xeb, 0xd0, 0xcf, 0xd8, 0x60, 0x60,
+ 0x2a, 0xda, 0xe4, 0x70, 0x7a, 0x4b, 0x49, 0x77, 0x53, 0xf9, 0x27, 0x8d,
+ 0xe7, 0xb8, 0x40, 0xe5, 0x51, 0x8c, 0x34, 0x1d, 0x73, 0xa1, 0xf1, 0xef,
+ 0x72, 0x63, 0x74, 0x1c, 0x75, 0xf4, 0x0b, 0xca, 0xff, 0xa3, 0x0e, 0xe2,
+ 0x2d, 0xef, 0x97, 0x9a, 0xcc, 0xd1, 0x97, 0x9c, 0x05, 0x07, 0x2d, 0x25,
+ 0xe9, 0x4c, 0x4b, 0x37, 0x4c, 0xbe, 0xa2, 0x18, 0x67, 0x95, 0x79, 0x44,
+ 0xad, 0x72, 0xf1, 0x71, 0x85, 0x3e, 0x5a, 0x8c, 0x94, 0xf9, 0x27, 0x86,
+ 0x76, 0x24, 0x41, 0x0e, 0x8c, 0x1d, 0x93, 0xfd, 0x4d, 0x7b, 0x70, 0xe8,
+ 0x97, 0xa6, 0xb4, 0x9b, 0xa1, 0x68, 0xbe, 0x44, 0x12, 0x0c, 0xc5, 0xa3,
+ 0x90, 0xe4, 0x1e, 0xf2, 0x85, 0x39, 0xcd, 0x34, 0xb1, 0xbf, 0xf4, 0xd9,
+ 0x54, 0xd4, 0x73, 0x8c, 0xa6, 0x54, 0x23, 0xb0, 0x5b, 0x02, 0x77, 0xb8,
+ 0xeb, 0xf5, 0xd1, 0x8d, 0x11, 0xcd, 0x99, 0xed, 0xea, 0x88, 0x5d, 0x7a,
+ 0xda, 0xc5, 0x11, 0xdd, 0x51, 0xba, 0x08, 0xf6, 0x97, 0x9a, 0x1d, 0x09,
+ 0x2d, 0x74, 0x87, 0x65, 0x97, 0xdd, 0xbb, 0x3c, 0xbb, 0xed, 0x21, 0x50,
+ 0x52, 0xe3, 0xe8, 0xfd, 0x5b, 0xaa, 0x42, 0x82, 0x82, 0xd4, 0x97, 0x17,
+ 0x87, 0xef, 0x46, 0x6f, 0xd8, 0x35, 0x7e, 0x59, 0x7a, 0x95, 0xae, 0x25,
+ 0xae, 0xa0, 0xf1, 0x63, 0xcb, 0xe8, 0x76, 0xc7, 0xa5, 0x31, 0x14, 0x4f,
+ 0x2f, 0x65, 0xb0, 0xfb, 0x5d, 0x6a, 0x7c, 0xae, 0xa1, 0x4d, 0xb3, 0x41,
+ 0x5d, 0xdb, 0x1a, 0x6d, 0x5b, 0x45, 0xa8, 0xf6, 0xeb, 0xa7, 0xb9, 0x22,
+ 0xf4, 0x4a, 0xe2, 0x2c, 0x0f, 0xd1, 0xb4, 0x1c, 0x69, 0x67, 0xf4, 0xa7,
+ 0x7c, 0xf7, 0xae, 0xe4, 0x0d, 0x3d, 0x32, 0xa6, 0xe2, 0x40, 0x8a, 0xca,
+ 0x38, 0xea, 0x34, 0xe7, 0x4e, 0xe5, 0xbb, 0x57, 0x58, 0xf7, 0x6c, 0xe3,
+ 0x7e, 0xde, 0xa7, 0x36, 0xbd, 0xf5, 0x6f, 0x7b, 0xdb, 0xf1, 0xe6, 0x2f,
+ 0x7f, 0x69, 0xf3, 0xf1, 0xbe, 0xab, 0x6d, 0xe6, 0x52, 0x8a, 0xb6, 0xfe,
+ 0x6d, 0x7f, 0x7b, 0xed, 0x88, 0xfc, 0xac, 0x48, 0xf7, 0x4d, 0xf3, 0x06,
+ 0x75, 0x36, 0x79, 0xc5, 0xc7, 0xcc, 0xea, 0x4c, 0x16, 0xa1, 0xe3, 0x51,
+ 0x03, 0xb7, 0x08, 0x3b, 0x08, 0xb6, 0x6d, 0x35, 0x75, 0x17, 0x78, 0x93,
+ 0xec, 0x92, 0x93, 0xff, 0x79, 0xec, 0x33, 0x3e, 0x16, 0x9b, 0x8d, 0x7f,
+ 0x45, 0x11, 0x3b, 0x40, 0x5d, 0x0e, 0xf1, 0xed, 0xfd, 0x35, 0xdf, 0x76,
+ 0xa3, 0xf3, 0xdc, 0x12, 0x14, 0xc5, 0x26, 0x18, 0x9c, 0x12, 0x57, 0xcb,
+ 0x77, 0xec, 0xb7, 0xd7, 0x7d, 0xef, 0xf2, 0xe4, 0xed, 0x31, 0x11, 0x5c,
+ 0xbf, 0x3e, 0x21, 0x9e, 0xb8, 0x91, 0x30, 0x35, 0xaa, 0x07, 0xc2, 0x92,
+ 0xe7, 0xfa, 0x85, 0x4d, 0x38, 0xbc, 0x6b, 0xd1, 0x66, 0x56, 0x72, 0xd8,
+ 0x95, 0xa0, 0x4f, 0x0b, 0x06, 0xba, 0xd6, 0x4c, 0xcb, 0x93, 0xab, 0xc1,
+ 0xdb, 0x72, 0x0a, 0x2b, 0x79, 0x30, 0x02, 0x54, 0xd0, 0xbc, 0x65, 0x7e,
+ 0xf8, 0xbe, 0x98, 0xb7, 0x7e, 0x3c, 0x8c, 0x64, 0xea, 0x6e, 0xac, 0xaa,
+ 0x9f, 0xf3, 0xf7, 0x9d, 0xc1, 0x80, 0x3a, 0x33, 0x60, 0x58, 0x97, 0x04,
+ 0x77, 0x5a, 0xfc, 0x1c, 0x2a, 0x5a, 0xcc, 0x04, 0xe5, 0xb3, 0x7b, 0x06,
+ 0x22, 0xa4, 0x0e, 0x3e, 0xe6, 0xb2, 0x37, 0xaf, 0x29, 0x83, 0xcc, 0xb9,
+ 0xf8, 0xd8, 0x89, 0xb7, 0xe1, 0xf3, 0x8c, 0xc2, 0x90, 0xca, 0xee, 0x1c,
+ 0xfe, 0x49, 0xaa, 0x31, 0x97, 0x8b, 0x7b, 0x8c, 0xf2, 0xae, 0x05, 0xad,
+ 0x88, 0xc6, 0x57, 0xff, 0xce, 0xef, 0xb4, 0x2a, 0x46, 0x09, 0x1d, 0xb4,
+ 0xb7, 0x03, 0xe5, 0x27, 0x52, 0x60, 0xe9, 0xac, 0xf2, 0xae, 0x2b, 0xe9,
+ 0xb6, 0x16, 0xa2, 0xf3, 0x38, 0x48, 0x3d, 0xca, 0xd4, 0x76, 0x3f, 0x7d,
+ 0xbe, 0xd6, 0x92, 0x52, 0x5f, 0x5f, 0x97, 0x36, 0x38, 0x66, 0xc4, 0xce,
+ 0xa2, 0x5d, 0xef, 0x38, 0x4b, 0x34, 0xc9, 0x9b, 0x73, 0xf8, 0x37, 0x07,
+ 0x9b, 0x28, 0xa1, 0x90, 0x17, 0x91, 0xc1, 0x0c, 0x7e, 0xf9, 0x68, 0x82,
+ 0xd0, 0x6b, 0xd2, 0xbb, 0x22, 0x22, 0x0c, 0x8a, 0x63, 0xf5, 0xb8, 0x03,
+ 0xcc, 0x13, 0xc3, 0x9b, 0xcb, 0x5c, 0x10, 0x24, 0xd7, 0xd4, 0x90, 0x64,
+ 0xa3, 0xda, 0x22, 0x63, 0xad, 0x93, 0x9c, 0xbd, 0x92, 0x24, 0x48, 0x97,
+ 0x8b, 0x29, 0x40, 0x19, 0x0c, 0x47, 0xfd, 0x0f, 0xe2, 0xaf, 0xae, 0xee,
+ 0x93, 0xbd, 0xfd, 0x7e, 0xb2, 0xbf, 0xbb, 0xb7, 0x1f, 0x19, 0x43, 0xef,
+ 0x3f, 0x08, 0x14, 0xb5, 0x8f, 0x5f, 0xf7, 0x1e, 0x3b, 0x0a, 0x97, 0xcf,
+ 0x80, 0x9b, 0x44, 0x32, 0x7f, 0x8d, 0xf0, 0xa1, 0xf8, 0x2c, 0x38, 0x93,
+ 0x51, 0x04, 0x19, 0xcc, 0x73, 0xb8, 0xb6, 0xd8, 0x49, 0xa8, 0xe5, 0x30,
+ 0x6d, 0x95, 0xaf, 0x29, 0x8a, 0xde, 0x70, 0x1d, 0x5a, 0x20, 0x5f, 0xac,
+ 0xa7, 0x34, 0xad, 0x50, 0xb5, 0xb3, 0xbd, 0x46, 0x79, 0xa3, 0xcb, 0x42,
+ 0xd0, 0x1a, 0x5a, 0x1b, 0xb3, 0xdf, 0x5f, 0x9f, 0x1c, 0x5d, 0x2a, 0x35,
+ 0xe1, 0x15, 0x29, 0x4f, 0xd5, 0xfd, 0xe3, 0xea, 0x26, 0xae, 0x7d, 0x66,
+ 0x7a, 0x70, 0x93, 0x19, 0x35, 0xba, 0x18, 0x2f, 0xaf, 0x0f, 0xfe, 0x9a,
+ 0x56, 0xd7, 0x65, 0xf1, 0xd0, 0xf3, 0x53, 0x24, 0x94, 0x1d, 0x18, 0x09,
+ 0xb5, 0xf7, 0x62, 0xef, 0x09, 0xf2, 0xbf, 0x67, 0x39, 0x6a, 0xf7, 0x90,
+ 0x80, 0xd8, 0x9c, 0x6f, 0x32, 0xc1, 0x06, 0xd2, 0x24, 0x2c, 0xab, 0x46,
+ 0x31, 0xdd, 0xe4, 0xeb, 0x3e, 0xf5, 0x9f, 0x9d, 0xca, 0xb3, 0x9c, 0x7a,
+ 0xbe, 0x29, 0xb9, 0x0a, 0x9b, 0x94, 0xa6, 0xb9, 0x5c, 0x6c, 0xb6, 0xd9,
+ 0xdc, 0x1f, 0x18, 0x2b, 0x7d, 0xc2, 0x96, 0x89, 0x3c, 0xb2, 0x1c, 0xf5,
+ 0xc8, 0x20, 0xaa, 0xb2, 0xf4, 0xa3, 0xab, 0x8a, 0xec, 0xd8, 0x37, 0x34,
+ 0xe4, 0x71, 0xf1, 0xe6, 0x88, 0xc9, 0x46, 0x35, 0x5f, 0x0a, 0x53, 0x9d,
+ 0x58, 0xd7, 0xd4, 0x36, 0xf5, 0xf2, 0x81, 0xef, 0x53, 0x6e, 0xc3, 0xc1,
+ 0x74, 0xfc, 0x88, 0x87, 0xcc, 0xb9, 0x63, 0xb2, 0xb8, 0xc3, 0x76, 0x95,
+ 0x1c, 0x32, 0xd4, 0x50, 0xea, 0x43, 0x4b, 0x20, 0x6f, 0x71, 0xf9, 0x57,
+ 0x8e, 0x38, 0x50, 0xd7, 0xb4, 0xb0, 0xb4, 0x7a, 0x77, 0x4c, 0xbf, 0xa9,
+ 0x20, 0xeb, 0xeb, 0xc3, 0x73, 0xcf, 0xd0, 0x85, 0x21, 0xe9, 0x9c, 0x7a,
+ 0xf4, 0x1c, 0x19, 0x3a, 0xa8, 0xb0, 0x2e, 0x85, 0x93, 0xfa, 0xce, 0x44,
+ 0x69, 0x20, 0x27, 0x49, 0x37, 0x02, 0x40, 0xbe, 0x94, 0xfb, 0x04, 0xfe,
+ 0x27, 0x14, 0x1e, 0x98, 0x4d, 0x53, 0x04, 0x42, 0xe5, 0x16, 0xa2, 0x0c,
+ 0x88, 0xb3, 0x42, 0xb3, 0x98, 0xfb, 0x9d, 0x2a, 0x0b, 0xe6, 0xc7, 0xf8,
+ 0x0e, 0xae, 0xe8, 0x73, 0xa3, 0x84, 0x83, 0xc6, 0x65, 0xf4, 0xfa, 0x5b,
+ 0xea, 0xb1, 0x04, 0x75, 0xa0, 0xb5, 0xa9, 0x2f, 0xdb, 0x46, 0xa2, 0xd4,
+ 0x6a, 0x54, 0xe7, 0x95, 0xfa, 0x16, 0xa9, 0xb9, 0xdb, 0x27, 0x43, 0xfe,
+ 0x73, 0xdf, 0x56, 0x22, 0xc6, 0x63, 0xc0, 0x79, 0x5e, 0x69, 0x9d, 0xe3,
+ 0x79, 0x46, 0x85, 0x77, 0xf3, 0x7a, 0xee, 0x60, 0x29, 0x57, 0xf2, 0xba,
+ 0xab, 0x7e, 0x27, 0x4a, 0x24, 0x85, 0x16, 0xd0, 0x0f, 0xf4, 0x36, 0x17,
+ 0x5c, 0x97, 0xd9, 0x65, 0x9f, 0x12, 0x49, 0x47, 0x91, 0xbc, 0x1b, 0x29,
+ 0x72, 0x82, 0xc7, 0x28, 0xbf, 0xfa, 0x5e, 0x97, 0x82, 0x6f, 0x1a, 0xb3,
+ 0x0c, 0x69, 0xfd, 0xd1, 0x5c, 0x0a, 0x0c, 0x45, 0x30, 0xf3, 0x98, 0x4b,
+ 0x30, 0x9f, 0xdc, 0x57, 0x39, 0x43, 0x82, 0xc8, 0x91, 0x06, 0x46, 0xa7,
+ 0xd6, 0xd6, 0xe3, 0xcb, 0x94, 0x6c, 0xe7, 0x59, 0x9d, 0x31, 0x55, 0x22,
+ 0x08, 0x81, 0x28, 0xf6, 0x47, 0x5b, 0x0f, 0x36, 0x93, 0x62, 0x6a, 0x21,
+ 0xce, 0x68, 0x97, 0xee, 0xef, 0x3f, 0x7b, 0xd6, 0x4f, 0x7a, 0xe4, 0x77,
+ 0x44, 0x9f, 0x68, 0x43, 0xbf, 0x81, 0xe0, 0xe9, 0x45, 0x8b, 0xe1, 0xee,
+ 0x54, 0x57, 0x13, 0xfa, 0x3f, 0x7a, 0x4f, 0x6b, 0x40, 0x5e, 0x4a, 0x22,
+ 0x0e, 0x75, 0x13, 0x41, 0x56, 0x4b, 0x97, 0xc3, 0x3b, 0x8d, 0x7e, 0x77,
+ 0x62, 0x5d, 0x4b, 0x14, 0x47, 0x5a, 0x64, 0xe5, 0x42, 0x03, 0xc6, 0x73,
+ 0xa9, 0xee, 0x81, 0xef, 0x7b, 0x51, 0x36, 0x84, 0xf8, 0x19, 0x21, 0x27,
+ 0xbc, 0x08, 0xf5, 0x72, 0x3c, 0x90, 0x04, 0x61, 0x36, 0x34, 0x73, 0x73,
+ 0x98, 0xe7, 0xb4, 0x08, 0xe2, 0xc1, 0x0f, 0x84, 0xf4, 0x57, 0x49, 0x4f,
+ 0xb6, 0x1b, 0xfd, 0x31, 0x44, 0xbc, 0x37, 0x9b, 0xd0, 0x30, 0xca, 0x57,
+ 0xf2, 0x8f, 0x7f, 0xff, 0x77, 0xd3, 0xec, 0xbf, 0x53, 0x2b, 0xaf, 0xfe,
+ 0xad, 0x6e, 0x6e, 0xbc, 0x67, 0x7a, 0x72, 0x06, 0x4e, 0x5c, 0xb4, 0x1b,
+ 0x08, 0x36, 0x90, 0xc4, 0x22, 0x8f, 0xed, 0xed, 0xa9, 0x08, 0xe9, 0xbe,
+ 0x37, 0xbe, 0x1c, 0x19, 0x86, 0xec, 0x37, 0xb5, 0x00, 0x92, 0xaf, 0x28,
+ 0x12, 0x9d, 0x51, 0x66, 0xba, 0x59, 0x04, 0x10, 0x0b, 0x6e, 0x3b, 0x48,
+ 0x09, 0xcb, 0x77, 0xf8, 0x46, 0xb9, 0x3a, 0x5c, 0xa7, 0xda, 0xd5, 0x9d,
+ 0xde, 0x14, 0x7c, 0x8a, 0xb1, 0x4e, 0xe6, 0x57, 0xe9, 0xac, 0xbc, 0xb6,
+ 0x23, 0x8e, 0xd5, 0x97, 0xf9, 0x45, 0x63, 0xef, 0xf9, 0x0d, 0xe9, 0x9b,
+ 0x7e, 0x7c, 0xfd, 0x91, 0xad, 0x10, 0x4e, 0xc0, 0x1e, 0x4d, 0xc0, 0x5f,
+ 0xc3, 0x7a, 0x62, 0x42, 0x1e, 0x6c, 0x2c, 0x15, 0x15, 0x24, 0x3b, 0x7a,
+ 0xd0, 0xed, 0xc9, 0x27, 0xe8, 0xee, 0x84, 0x8e, 0x40, 0xa7, 0xc0, 0x8d,
+ 0x93, 0x15, 0x56, 0xb9, 0x91, 0xda, 0x25, 0xa2, 0x9b, 0x64, 0x46, 0x5e,
+ 0xe5, 0xe6, 0x2c, 0xe0, 0x02, 0xa4, 0xef, 0xd0, 0x9c, 0x21, 0x34, 0x99,
+ 0x31, 0x21, 0xcd, 0x98, 0xcb, 0x83, 0x0d, 0x06, 0x45, 0x33, 0x9b, 0x33,
+ 0xd5, 0xf2, 0x14, 0xa5, 0xc2, 0x34, 0x43, 0x23, 0x2f, 0x42, 0x92, 0xc1,
+ 0xf6, 0x3c, 0xf3, 0xab, 0xff, 0xd8, 0x2c, 0xf9, 0x42, 0x8f, 0x2b, 0x70,
+ 0x52, 0x3b, 0x3b, 0x8e, 0xb8, 0xd1, 0x91, 0xa3, 0x91, 0x2f, 0x74, 0x50,
+ 0x48, 0xf5, 0x32, 0x40, 0xfb, 0xad, 0x68, 0x12, 0xf6, 0x31, 0x1f, 0xb2,
+ 0xaa, 0x99, 0x46, 0x44, 0x09, 0x4d, 0xce, 0x37, 0x23, 0xdf, 0x33, 0x80,
+ 0x92, 0xeb, 0x64, 0x6b, 0x34, 0x3a, 0x3f, 0xd9, 0xd1, 0xe2, 0x67, 0x1b,
+ 0x1b, 0xc7, 0xef, 0xbe, 0x3b, 0xb9, 0x38, 0x7b, 0xf7, 0xf6, 0xf8, 0xdd,
+ 0x65, 0xf2, 0xdd, 0xe1, 0xc5, 0xc9, 0xe1, 0x57, 0xa7, 0x42, 0xbe, 0x40,
+ 0xc3, 0x24, 0xcc, 0x19, 0x9b, 0x82, 0x1d, 0xfe, 0x60, 0x2f, 0x2f, 0x2e,
+ 0x5a, 0x75, 0xa6, 0x53, 0x50, 0xfb, 0x83, 0x90, 0xdf, 0xc3, 0x30, 0xfe,
+ 0x80, 0x02, 0x5a, 0x7d, 0xb2, 0x85, 0x3e, 0x68, 0x2d, 0x2d, 0xb2, 0xe5,
+ 0xef, 0xbd, 0x74, 0x7e, 0x82, 0xc3, 0x91, 0x38, 0x53, 0x61, 0xee, 0xaa,
+ 0x48, 0xda, 0xb2, 0x2c, 0x5f, 0x33, 0x23, 0x84, 0xd6, 0xa8, 0xd1, 0x57,
+ 0x21, 0x3f, 0x58, 0xd7, 0x71, 0x7d, 0x38, 0x3c, 0x3d, 0x75, 0x9f, 0x5a,
+ 0x5f, 0xbe, 0x48, 0xd8, 0xc0, 0x38, 0x97, 0x10, 0x8d, 0x52, 0x9c, 0xfa,
+ 0xba, 0x74, 0x4c, 0xfe, 0xc5, 0xbd, 0x4f, 0xda, 0x4f, 0x1f, 0x33, 0xdb,
+ 0x65, 0x8b, 0x69, 0x5c, 0x08, 0xb4, 0xd0, 0x64, 0x55, 0x5e, 0x7f, 0xec,
+ 0x27, 0x9b, 0xff, 0xb6, 0x29, 0x05, 0xeb, 0x41, 0x33, 0xcd, 0xc5, 0x91,
+ 0xb6, 0x5d, 0xa7, 0xde, 0x9d, 0xb9, 0x3e, 0x49, 0x1c, 0xde, 0x76, 0xc0,
+ 0xbe, 0xe8, 0x50, 0x14, 0xb5, 0xaa, 0xd7, 0x80, 0x2f, 0xbb, 0xc7, 0xa5,
+ 0x82, 0x88, 0x65, 0xa7, 0x10, 0xf9, 0x48, 0x71, 0xd6, 0xe8, 0xbb, 0x70,
+ 0x22, 0xa4, 0x13, 0x8f, 0x4d, 0x1c, 0x63, 0x2d, 0xc8, 0xf3, 0x66, 0xab,
+ 0xba, 0xa9, 0x73, 0xda, 0x4c, 0xf5, 0x54, 0x08, 0x17, 0x53, 0x6d, 0x59,
+ 0x52, 0x99, 0x91, 0x2a, 0x6e, 0x23, 0x50, 0x9e, 0x93, 0x31, 0x15, 0x40,
+ 0xfb, 0xd0, 0xcc, 0x34, 0x4e, 0x3e, 0x3b, 0x91, 0x5a, 0xde, 0x5d, 0xc4,
+ 0x84, 0x3a, 0xb9, 0x9f, 0x12, 0xeb, 0x28, 0x5b, 0x3f, 0x93, 0x75, 0x95,
+ 0x20, 0x14, 0xf3, 0x6b, 0xf3, 0xec, 0x83, 0x05, 0x83, 0xdd, 0x99, 0x3a,
+ 0x93, 0x00, 0x4c, 0xfa, 0xaf, 0xf7, 0x90, 0x9b, 0xc4, 0xb1, 0x16, 0x4b,
+ 0x8a, 0x48, 0x94, 0x43, 0x98, 0x63, 0x87, 0x4b, 0xcf, 0x3e, 0x31, 0x97,
+ 0x90, 0xdd, 0x65, 0x6e, 0x27, 0x70, 0xe1, 0x3b, 0x81, 0xa1, 0x77, 0x7b,
+ 0xac, 0x45, 0xad, 0x52, 0x2d, 0xa2, 0x84, 0xb8, 0x19, 0xab, 0x5c, 0x50,
+ 0x9a, 0xba, 0xc3, 0x81, 0xd3, 0x90, 0x01, 0xcf, 0xad, 0x4e, 0x77, 0x1a,
+ 0xee, 0x29, 0x9e, 0x60, 0x59, 0x8b, 0x0a, 0x85, 0x3b, 0xe4, 0xd3, 0x8e,
+ 0x96, 0xa5, 0x02, 0xc8, 0x80, 0x12, 0x82, 0x2a, 0x23, 0x45, 0xeb, 0xd5,
+ 0xd5, 0x9f, 0x86, 0x88, 0x4d, 0x5f, 0x1c, 0xa1, 0x7c, 0x42, 0x41, 0x05,
+ 0x54, 0x5d, 0xd9, 0x1b, 0x24, 0x0f, 0x14, 0x59, 0x53, 0x51, 0x46, 0x6e,
+ 0x21, 0x56, 0x08, 0x00, 0xf9, 0x30, 0xd2, 0xd3, 0xeb, 0x52, 0x0d, 0xf0,
+ 0xd4, 0xa2, 0x66, 0x6c, 0x71, 0x40, 0xcf, 0xa8, 0xb7, 0xcc, 0x81, 0x56,
+ 0x70, 0x01, 0x5f, 0xa3, 0x11, 0x42, 0xc2, 0x97, 0xd2, 0x21, 0xd3, 0x62,
+ 0xef, 0xb5, 0xc7, 0xcd, 0xe0, 0xd2, 0x97, 0x48, 0x92, 0x73, 0x96, 0x8e,
+ 0x52, 0xf9, 0x81, 0x3e, 0x51, 0xb9, 0x1c, 0x80, 0x74, 0x46, 0xb7, 0xe8,
+ 0x41, 0x34, 0x29, 0xa0, 0x75, 0x34, 0xa9, 0xc1, 0x2b, 0x23, 0xaf, 0x66,
+ 0x94, 0x41, 0xaa, 0x7a, 0x47, 0x9a, 0x8c, 0xf3, 0x6b, 0xe6, 0x04, 0x21,
+ 0x02, 0x0a, 0x3a, 0x97, 0xa0, 0x78, 0x2c, 0xe7, 0x19, 0x1d, 0x0e, 0x10,
+ 0x38, 0xc2, 0x78, 0xbf, 0x29, 0x67, 0x3e, 0xcb, 0xa0, 0x8e, 0x44, 0x56,
+ 0xdf, 0xc6, 0x3e, 0x10, 0xfb, 0x5c, 0xd2, 0x3c, 0x2a, 0x1c, 0x55, 0x2a,
+ 0x09, 0x08, 0x38, 0x97, 0x82, 0x6a, 0xe0, 0x4a, 0x2d, 0x90, 0x0a, 0xa8,
+ 0x5c, 0x0a, 0x98, 0x07, 0x4d, 0x5c, 0xa0, 0x8d, 0x0b, 0x47, 0x3a, 0x95,
+ 0x64, 0xdd, 0xb2, 0xa5, 0x00, 0xa8, 0x95, 0x09, 0x33, 0x34, 0x93, 0x98,
+ 0x61, 0x48, 0x49, 0xbb, 0x76, 0x97, 0x2c, 0x96, 0x70, 0xe7, 0x99, 0x3d,
+ 0x41, 0x9d, 0x36, 0x33, 0xb5, 0xe5, 0xa9, 0x19, 0x85, 0xd9, 0x22, 0xfc,
+ 0x18, 0x7b, 0x90, 0xe4, 0x5f, 0x03, 0x5b, 0x76, 0x50, 0x80, 0x27, 0xdb,
+ 0x0e, 0x78, 0xc4, 0x66, 0x00, 0xc9, 0x87, 0x89, 0x14, 0x7e, 0x05, 0x44,
+ 0x87, 0xaa, 0xd6, 0x82, 0x10, 0xae, 0x15, 0x7c, 0x48, 0x34, 0xe1, 0x6e,
+ 0x36, 0xf3, 0x6a, 0x01, 0xb0, 0x3f, 0x32, 0x0d, 0x8c, 0x0f, 0x92, 0x13,
+ 0x43, 0x96, 0xb9, 0x0c, 0xfd, 0x63, 0xde, 0x70, 0x6f, 0x20, 0x92, 0x54,
+ 0x42, 0xe6, 0x59, 0x27, 0xa6, 0xe1, 0x5d, 0x21, 0x0a, 0x8f, 0xf1, 0xd5,
+ 0x50, 0x29, 0x7d, 0x93, 0xa7, 0x73, 0x36, 0x1e, 0xdd, 0xee, 0x9b, 0xdf,
+ 0x33, 0xec, 0x78, 0x63, 0xe3, 0xe8, 0xfd, 0xe8, 0xf2, 0xec, 0x6d, 0x72,
+ 0xf6, 0xfe, 0xf2, 0xfc, 0xfd, 0xa5, 0xe8, 0xa9, 0x63, 0x4e, 0xda, 0x60,
+ 0xe8, 0x12, 0xeb, 0xce, 0xba, 0x98, 0x73, 0x01, 0xf8, 0x00, 0x63, 0x56,
+ 0x82, 0x56, 0xd4, 0x63, 0x14, 0xb3, 0x49, 0x99, 0xe0, 0xda, 0x63, 0x6a,
+ 0x71, 0x4c, 0xf9, 0x9d, 0x99, 0x72, 0x24, 0xd4, 0xc3, 0x93, 0xaf, 0x39,
+ 0x9e, 0xf0, 0x7b, 0xe8, 0x59, 0x6b, 0x97, 0x95, 0xba, 0x6f, 0xfb, 0x31,
+ 0x80, 0xce, 0x69, 0x33, 0xb8, 0xf9, 0xd5, 0x6d, 0xd9, 0xb9, 0xeb, 0x7c,
+ 0xbf, 0x3e, 0xa6, 0x5b, 0x6a, 0xe3, 0x6a, 0x04, 0x4a, 0x61, 0xf5, 0xc0,
+ 0x1a, 0xb6, 0x33, 0x8b, 0xfd, 0x04, 0xe7, 0xa6, 0x34, 0x23, 0xbc, 0xb1,
+ 0x29, 0x31, 0x04, 0x23, 0x04, 0x14, 0x98, 0x11, 0x54, 0x84, 0xb9, 0x65,
+ 0x97, 0x41, 0x91, 0xdd, 0x91, 0xe2, 0x13, 0xe8, 0xd4, 0x77, 0xc9, 0xe6,
+ 0xf7, 0x99, 0xdf, 0xe0, 0x1f, 0xff, 0x93, 0xf2, 0xb6, 0x3f, 0xe8, 0x4f,
+ 0xfe, 0x8b, 0x3f, 0xf9, 0x53, 0xb1, 0x09, 0x81, 0xd9, 0x86, 0xca, 0x7c,
+ 0x7b, 0x7c, 0xf1, 0xd5, 0xf1, 0xc5, 0xd9, 0x08, 0xf2, 0x40, 0xfd, 0xdd,
+ 0xe1, 0x5e, 0xff, 0x98, 0x55, 0xe3, 0xac, 0x2a, 0xa5, 0xe4, 0x9d, 0xfe,
+ 0xeb, 0xd9, 0xce, 0xd7, 0xa3, 0xd1, 0xe1, 0xf9, 0x89, 0x2d, 0x2a, 0x65,
+ 0x33, 0x48, 0xd9, 0x47, 0x52, 0x70, 0x8e, 0x33, 0x8d, 0x5f, 0x5f, 0x31,
+ 0xfb, 0x62, 0xf2, 0x91, 0x33, 0x0b, 0x02, 0x50, 0x8a, 0x06, 0xd6, 0x08,
+ 0x8d, 0x22, 0x89, 0xc5, 0xd4, 0xb0, 0x32, 0xc1, 0xf9, 0x85, 0x21, 0xb8,
+ 0x82, 0x03, 0x05, 0x03, 0xfb, 0x16, 0x82, 0xfb, 0xb1, 0x1a, 0x0f, 0xcc,
+ 0x6e, 0xff, 0xa8, 0x35, 0xd6, 0x39, 0x11, 0xca, 0x88, 0x4a, 0xce, 0x90,
+ 0x70, 0xce, 0xc6, 0x8f, 0x79, 0x91, 0x37, 0x3b, 0x1f, 0xe9, 0x7c, 0x50,
+ 0xc1, 0xa3, 0xd9, 0x90, 0xa5, 0x3b, 0x1f, 0x28, 0x85, 0xbd, 0x93, 0x88,
+ 0x5d, 0xc7, 0x4e, 0x63, 0xbe, 0x66, 0xab, 0x94, 0xb2, 0xc3, 0xdb, 0xfc,
+ 0xe4, 0xa9, 0xa5, 0xe9, 0x13, 0xcd, 0x1f, 0x48, 0xd9, 0x2b, 0x73, 0x57,
+ 0x2d, 0xee, 0xa6, 0x72, 0x89, 0x80, 0xa5, 0x9e, 0x95, 0x4b, 0x91, 0xe1,
+ 0xdd, 0x08, 0x35, 0x55, 0x52, 0x45, 0xc6, 0x96, 0xe4, 0xa3, 0x24, 0xe3,
+ 0x59, 0x5a, 0x7c, 0x84, 0xfe, 0x00, 0x8d, 0x80, 0xee, 0x3e, 0x25, 0x9f,
+ 0xa3, 0x0a, 0xb7, 0x00, 0x24, 0x08, 0x1f, 0x0c, 0x4c, 0xbe, 0x19, 0x09,
+ 0xb7, 0x7b, 0x0e, 0xe6, 0x59, 0x8e, 0x3d, 0x2f, 0xf4, 0x8e, 0xe3, 0xe4,
+ 0x26, 0x81, 0x7c, 0xc7, 0xc7, 0xa7, 0xe6, 0x62, 0xb2, 0x59, 0x66, 0xf0,
+ 0xd1, 0x65, 0x33, 0x8a, 0x05, 0x29, 0x24, 0x90, 0x13, 0xab, 0x73, 0x08,
+ 0x32, 0x96, 0x1e, 0x5a, 0xeb, 0x00, 0x01, 0x64, 0x6c, 0x17, 0xe4, 0x8f,
+ 0xd7, 0xb6, 0x22, 0x90, 0x48, 0x6e, 0x16, 0x62, 0x60, 0x07, 0x76, 0x05,
+ 0x82, 0xfc, 0x52, 0x55, 0x82, 0xb7, 0x3d, 0x72, 0x80, 0x40, 0x5b, 0xbb,
+ 0x8f, 0x3b, 0xe1, 0x8c, 0x50, 0x0b, 0x31, 0x68, 0xa5, 0xb7, 0xad, 0x5c,
+ 0x26, 0x7e, 0x3d, 0xe6, 0x05, 0x64, 0x52, 0xc3, 0xa9, 0x04, 0x3c, 0x2d,
+ 0x1f, 0x98, 0xe6, 0x2c, 0xb4, 0xf3, 0x04, 0xb4, 0xe3, 0x0c, 0x07, 0xa2,
+ 0xe8, 0xcd, 0xac, 0xb1, 0x8e, 0x8a, 0x9a, 0x19, 0xd6, 0xa0, 0x74, 0x4d,
+ 0x21, 0x72, 0xaa, 0x16, 0x55, 0xb5, 0x0f, 0xcf, 0x67, 0xca, 0x9a, 0xd2,
+ 0x1a, 0x99, 0x6c, 0xfd, 0x5b, 0x6b, 0x76, 0xf0, 0x8e, 0xae, 0x8b, 0x72,
+ 0x30, 0x5e, 0xc2, 0x31, 0xe3, 0xd5, 0xd4, 0xe3, 0x24, 0xee, 0xf2, 0x8a,
+ 0x35, 0x0f, 0xfe, 0x3d, 0x05, 0xa4, 0x41, 0x8f, 0xc1, 0x31, 0x6a, 0xe4,
+ 0x4b, 0xb7, 0x99, 0xb6, 0x2c, 0xbf, 0x12, 0x27, 0x21, 0xb9, 0x62, 0xdf,
+ 0x76, 0x80, 0xb2, 0xc8, 0xd6, 0x49, 0xe3, 0xd9, 0x34, 0xfd, 0x4e, 0xca,
+ 0x45, 0x63, 0x6b, 0x53, 0x5c, 0x42, 0x4d, 0xc8, 0xa4, 0x62, 0x83, 0xe6,
+ 0x52, 0x68, 0xe6, 0xd6, 0x6d, 0x43, 0x55, 0xe0, 0x98, 0x1a, 0x26, 0x9d,
+ 0x71, 0x49, 0x9d, 0x95, 0x57, 0x09, 0x1f, 0xa6, 0xe6, 0xf2, 0xf2, 0x2f,
+ 0xe7, 0xc7, 0xaf, 0xf4, 0xcd, 0x75, 0x6b, 0xc6, 0x8c, 0x89, 0x00, 0xcd,
+ 0x65, 0xc2, 0x50, 0xec, 0xd5, 0xb1, 0x37, 0x9b, 0x6c, 0xd0, 0x28, 0x98,
+ 0x87, 0x3f, 0x33, 0x48, 0x7e, 0x78, 0x7d, 0x32, 0x3a, 0x3f, 0x3d, 0x3b,
+ 0x7a, 0xf5, 0xf2, 0x07, 0x15, 0xc9, 0x5f, 0x52, 0x8c, 0x90, 0xf5, 0x34,
+ 0xfb, 0x33, 0xc7, 0xe8, 0x22, 0xef, 0xbd, 0x3b, 0xfe, 0xfe, 0x83, 0xb1,
+ 0xc7, 0x5e, 0x51, 0x5d, 0x87, 0xfe, 0x6d, 0x3a, 0x93, 0x97, 0x48, 0x3f,
+ 0x8d, 0xe8, 0x76, 0xc3, 0x36, 0x05, 0x67, 0x77, 0x62, 0x6d, 0x29, 0x61,
+ 0x97, 0xa8, 0x74, 0xaf, 0x38, 0x5a, 0xaf, 0x6a, 0x5c, 0xda, 0xca, 0xab,
+ 0x8f, 0x14, 0xfe, 0x76, 0xd7, 0xff, 0x66, 0xc3, 0xa0, 0x6a, 0xc2, 0x10,
+ 0xf9, 0xd0, 0x1c, 0x00, 0xd7, 0xe5, 0x37, 0x0e, 0xd0, 0x2f, 0xfc, 0xe9,
+ 0x15, 0xf9, 0xd1, 0x2c, 0x01, 0xad, 0x54, 0x93, 0x07, 0xe8, 0x45, 0x58,
+ 0x6a, 0x85, 0x7a, 0x8d, 0x30, 0xf4, 0x9a, 0x4e, 0xa3, 0x72, 0x4c, 0x54,
+ 0x18, 0xdb, 0x97, 0x54, 0xeb, 0x5a, 0xa3, 0x78, 0xd6, 0xf9, 0xf1, 0xc5,
+ 0xe8, 0x64, 0x74, 0x49, 0x86, 0xab, 0x14, 0x59, 0x95, 0x20, 0x94, 0x56,
+ 0xc0, 0x05, 0x69, 0x4b, 0x9b, 0x70, 0xd8, 0x2f, 0xec, 0xd3, 0x3a, 0xd1,
+ 0x56, 0xcc, 0xb5, 0xb3, 0xb8, 0xe9, 0x06, 0xe0, 0xd4, 0x70, 0x52, 0x44,
+ 0x99, 0x36, 0x3b, 0xbd, 0xd2, 0x03, 0x5c, 0xca, 0xd6, 0xe8, 0xd4, 0xb7,
+ 0x41, 0x6d, 0x2a, 0xac, 0xce, 0x2c, 0x1f, 0x7b, 0x55, 0xed, 0xdb, 0x18,
+ 0x12, 0x82, 0x27, 0x09, 0x45, 0x8f, 0x7f, 0x84, 0x34, 0x20, 0xe6, 0xa8,
+ 0x11, 0xa4, 0xee, 0xb6, 0x5c, 0x6b, 0x92, 0xd6, 0xec, 0x27, 0xb0, 0x5b,
+ 0xb7, 0x14, 0x8c, 0x16, 0xd5, 0xd3, 0xec, 0x4f, 0x3d, 0x14, 0xba, 0xb0,
+ 0xbe, 0x81, 0xb0, 0x5a, 0x44, 0x36, 0x09, 0xe5, 0x9c, 0x53, 0x51, 0xc9,
+ 0x3f, 0x69, 0xb4, 0x16, 0x50, 0x6b, 0x00, 0x28, 0x28, 0x23, 0x0b, 0x54,
+ 0x10, 0x51, 0x1d, 0xaf, 0x29, 0x87, 0x15, 0xd4, 0x7a, 0x53, 0xd2, 0xb7,
+ 0xe0, 0x82, 0xf7, 0x3f, 0xa6, 0xd7, 0x29, 0xcd, 0xe0, 0x78, 0xe9, 0x57,
+ 0x6d, 0xb4, 0xbd, 0xe7, 0x02, 0x42, 0x98, 0x78, 0x40, 0xa4, 0xd3, 0x0a,
+ 0x9e, 0x8c, 0x46, 0x4a, 0x45, 0xa8, 0xe1, 0x23, 0x78, 0xe7, 0x61, 0x9b,
+ 0xc5, 0x4b, 0xf7, 0xa5, 0x1a, 0x61, 0xeb, 0x66, 0xd4, 0x2b, 0xf3, 0x4a,
+ 0xdb, 0xb7, 0xca, 0x14, 0xb8, 0xc8, 0x4e, 0xc5, 0x9a, 0x22, 0x8e, 0xc5,
+ 0xc4, 0x5e, 0xc6, 0x94, 0x75, 0x48, 0x00, 0x83, 0x4a, 0x18, 0xd2, 0x8c,
+ 0xf8, 0xa3, 0xd0, 0x12, 0x6a, 0xc3, 0xa2, 0x68, 0x3a, 0x85, 0xdd, 0x95,
+ 0x3d, 0xd3, 0xe5, 0x71, 0xf0, 0x74, 0x7b, 0xdb, 0x8a, 0xe3, 0x6b, 0xf7,
+ 0xf2, 0x41, 0xcb, 0x90, 0xa1, 0x8b, 0xd5, 0xe7, 0x84, 0xcb, 0x14, 0xf9,
+ 0x7d, 0x1a, 0xd8, 0xf1, 0xf2, 0xc4, 0x6b, 0xc9, 0xbe, 0xb7, 0xf8, 0x14,
+ 0x08, 0xbc, 0x56, 0x81, 0x6c, 0x1a, 0x5d, 0x0b, 0x1b, 0x60, 0xf4, 0xcb,
+ 0x05, 0xaa, 0x9d, 0x4d, 0xa4, 0x86, 0x04, 0x50, 0xfb, 0xb6, 0x41, 0xbd,
+ 0x44, 0xdc, 0x64, 0x99, 0x59, 0x7d, 0xfb, 0xfe, 0xf4, 0xf2, 0xe4, 0xdc,
+ 0xc7, 0x1f, 0x24, 0xdf, 0x9f, 0x5c, 0x7e, 0x63, 0xb4, 0xf6, 0xd1, 0xc9,
+ 0xbb, 0xaf, 0x4f, 0x29, 0xc8, 0xfb, 0xf6, 0xed, 0xe1, 0x3b, 0xa2, 0x17,
+ 0x79, 0x07, 0x68, 0xf3, 0x21, 0x0c, 0x07, 0x12, 0x47, 0x66, 0x8a, 0x69,
+ 0xef, 0x10, 0xf1, 0x44, 0x3f, 0x8c, 0x35, 0x76, 0x8e, 0x1f, 0x17, 0x40,
+ 0x2f, 0xda, 0x93, 0xb4, 0x81, 0x72, 0xf6, 0xb0, 0x0c, 0xee, 0xc9, 0x8d,
+ 0x8b, 0x63, 0x4b, 0xc6, 0x16, 0x4d, 0x74, 0xb7, 0x78, 0x04, 0x92, 0x9c,
+ 0x59, 0x43, 0x07, 0x8e, 0x86, 0xef, 0x6e, 0x17, 0xbf, 0xc4, 0x8a, 0x5a,
+ 0xea, 0x69, 0xd8, 0x31, 0x46, 0x67, 0x2a, 0xc4, 0xae, 0xe1, 0xfb, 0xb2,
+ 0x9d, 0x74, 0x64, 0xbe, 0x88, 0x2e, 0x01, 0x48, 0x54, 0x3a, 0x47, 0x3a,
+ 0x59, 0x9c, 0x64, 0x34, 0x5f, 0x9c, 0xfa, 0x17, 0xea, 0xb0, 0x55, 0x1e,
+ 0x50, 0xf1, 0xc1, 0xd7, 0x65, 0xe6, 0x4e, 0xee, 0xe0, 0x4c, 0x9b, 0xd1,
+ 0xf8, 0x0f, 0xcc, 0x30, 0xbe, 0x5c, 0x06, 0x24, 0xd7, 0x06, 0x66, 0x49,
+ 0xb6, 0x6d, 0x49, 0x30, 0x31, 0xfb, 0x0f, 0x58, 0xad, 0xb4, 0xe4, 0xea,
+ 0x5a, 0x49, 0xd3, 0x34, 0xa7, 0x2d, 0x0b, 0x16, 0x0d, 0x09, 0x19, 0x92,
+ 0xd7, 0x28, 0x63, 0x86, 0xb4, 0xd4, 0xc7, 0x5a, 0xb4, 0x0c, 0x7c, 0xdf,
+ 0x9d, 0x69, 0x70, 0x52, 0xf3, 0x5a, 0x6d, 0x8d, 0x46, 0x07, 0x9d, 0x40,
+ 0x15, 0x44, 0xb8, 0x2b, 0x32, 0x42, 0x39, 0xd0, 0x5f, 0xff, 0xba, 0xb8,
+ 0xf6, 0x53, 0x5e, 0xb9, 0x06, 0xfc, 0x22, 0xb6, 0xb2, 0xc2, 0xe4, 0xce,
+ 0x6a, 0x91, 0xd4, 0x9d, 0x6c, 0xf5, 0x40, 0x8a, 0x49, 0xee, 0xad, 0xfa,
+ 0xa0, 0xfc, 0x7e, 0x3f, 0xfc, 0xfd, 0x3e, 0x07, 0x19, 0x4e, 0xce, 0x6f,
+ 0x9f, 0x5b, 0x06, 0x64, 0x26, 0x72, 0xf0, 0xd5, 0x37, 0x55, 0x0a, 0x68,
+ 0x87, 0xd1, 0xa3, 0xe2, 0x32, 0x67, 0x99, 0xc8, 0xc1, 0x3f, 0x82, 0x90,
+ 0x2e, 0x2b, 0x24, 0xa8, 0xe3, 0x11, 0x44, 0x57, 0x18, 0xf7, 0x0f, 0xcf,
+ 0x13, 0xe4, 0x14, 0x5d, 0x57, 0xa6, 0x41, 0xf3, 0xfb, 0xa7, 0x36, 0x19,
+ 0xc7, 0xc9, 0x34, 0xd4, 0x53, 0x94, 0x74, 0xc8, 0x41, 0xbe, 0xb8, 0xd5,
+ 0x82, 0xdc, 0xe6, 0xaf, 0xcf, 0x6d, 0x2d, 0xad, 0xba, 0x15, 0xa4, 0x6e,
+ 0xb1, 0x8d, 0xab, 0xf0, 0x47, 0xe7, 0xe0, 0x03, 0x23, 0xc9, 0xe0, 0x8c,
+ 0x8c, 0x4e, 0xbf, 0xb2, 0x76, 0x46, 0x86, 0x57, 0x51, 0x18, 0x59, 0x5f,
+ 0x33, 0xa4, 0xc6, 0x43, 0x1e, 0x79, 0xc2, 0xc5, 0xaf, 0xf4, 0x21, 0xab,
+ 0xfe, 0xe3, 0xfe, 0xee, 0xee, 0xde, 0xc1, 0xde, 0xe7, 0x2f, 0x76, 0x0f,
+ 0xf6, 0xf6, 0xf6, 0xf6, 0x0f, 0xf6, 0x0e, 0x0e, 0xf6, 0x77, 0x7f, 0xde,
+ 0x21, 0xff, 0xd1, 0x6d, 0x9e, 0xdd, 0x69, 0x64, 0x9a, 0xfd, 0x7c, 0xd8,
+ 0xd6, 0x75, 0x73, 0xcf, 0x60, 0x00, 0xf6, 0xf4, 0x61, 0x5f, 0xab, 0xe6,
+ 0x63, 0x69, 0x65, 0x38, 0x67, 0x86, 0x29, 0x24, 0x17, 0x2e, 0xd5, 0x1c,
+ 0x67, 0xd0, 0xa3, 0xb9, 0x47, 0xaf, 0xfe, 0xb6, 0xa4, 0x91, 0x8e, 0x49,
+ 0x1d, 0x80, 0x4e, 0x53, 0xdb, 0xc4, 0xde, 0xeb, 0x59, 0x39, 0x1e, 0x23,
+ 0x75, 0xc9, 0xe6, 0xb6, 0x0f, 0x13, 0xe2, 0x52, 0xfe, 0xc8, 0x5b, 0x42,
+ 0x42, 0x87, 0x40, 0x15, 0xf3, 0x41, 0x77, 0xb3, 0xe3, 0x3c, 0x7b, 0x66,
+ 0x07, 0x4c, 0x4a, 0xaa, 0x2b, 0x02, 0x4f, 0xb7, 0x99, 0xa4, 0xca, 0xe6,
+ 0xbc, 0x25, 0x57, 0xd9, 0xe7, 0xbb, 0x07, 0x07, 0x54, 0xfa, 0xe7, 0x8f,
+ 0x7b, 0x7d, 0x01, 0x84, 0xfb, 0x59, 0x2e, 0x7d, 0x7b, 0x3d, 0x71, 0x1b,
+ 0x64, 0x7e, 0xf8, 0xe3, 0x2c, 0x96, 0xf3, 0xac, 0x32, 0x86, 0x08, 0xd5,
+ 0x79, 0x06, 0x22, 0x1a, 0x1e, 0x43, 0xe6, 0x58, 0x04, 0x23, 0x53, 0x27,
+ 0x1b, 0x87, 0x6e, 0x04, 0xe6, 0x8a, 0xb6, 0x2c, 0x14, 0xcc, 0x17, 0xe6,
+ 0x86, 0x68, 0xdb, 0x46, 0xf9, 0x2b, 0x80, 0x35, 0x39, 0x97, 0x8d, 0xb3,
+ 0xf8, 0xf8, 0xbe, 0x15, 0xc9, 0x80, 0xc3, 0x55, 0x70, 0xf5, 0x61, 0x7a,
+ 0x9c, 0x75, 0x78, 0x78, 0x4c, 0x3c, 0xe5, 0x56, 0x12, 0xf8, 0x7e, 0xf4,
+ 0x06, 0xbb, 0xff, 0x6c, 0xef, 0x67, 0xc6, 0x2b, 0xd3, 0x81, 0x70, 0xb3,
+ 0xa6, 0xc1, 0x17, 0x3f, 0x45, 0x4b, 0x37, 0xd2, 0x56, 0x36, 0xbc, 0x1e,
+ 0xaa, 0x56, 0x21, 0xde, 0xc6, 0xbe, 0x9f, 0x35, 0xc2, 0x75, 0x0a, 0xb8,
+ 0xa6, 0x38, 0xec, 0x34, 0x75, 0x28, 0xf9, 0xae, 0x5a, 0x1d, 0x98, 0xad,
+ 0x1c, 0xf7, 0xf6, 0xf8, 0xf2, 0xd0, 0x5c, 0x1e, 0xdf, 0x86, 0x86, 0xfe,
+ 0xdb, 0xcc, 0x58, 0xe5, 0xb4, 0xd8, 0x5b, 0x38, 0x0f, 0xb7, 0x96, 0x1d,
+ 0x9c, 0xe6, 0xee, 0x69, 0xb2, 0x45, 0x21, 0xca, 0x67, 0x9f, 0x3f, 0x7b,
+ 0xba, 0xcd, 0xa5, 0x58, 0xf8, 0xb5, 0x8c, 0x12, 0xc4, 0xe0, 0x95, 0x14,
+ 0x76, 0x2a, 0x72, 0xe0, 0x5b, 0x91, 0xf4, 0xfe, 0xe2, 0x84, 0x8f, 0xf4,
+ 0x0d, 0x93, 0x88, 0xb0, 0xd1, 0xdb, 0x65, 0x93, 0xc4, 0x7d, 0xeb, 0x29,
+ 0x19, 0xf3, 0x9c, 0x98, 0x4e, 0x41, 0xbe, 0x40, 0x17, 0xa3, 0x25, 0xff,
+ 0xc0, 0x0d, 0x6b, 0x0e, 0x68, 0x89, 0x5a, 0xa2, 0x52, 0xf7, 0x0d, 0x9d,
+ 0x01, 0x35, 0x2a, 0x31, 0x33, 0xcb, 0x3e, 0xb3, 0x16, 0x18, 0xd9, 0x41,
+ 0x2c, 0x8f, 0x58, 0xfa, 0x77, 0xd8, 0xf8, 0xb7, 0x19, 0xf2, 0x03, 0xa5,
+ 0x90, 0xb6, 0xa1, 0x79, 0x50, 0xb1, 0xe3, 0xd4, 0xe3, 0x56, 0x3a, 0xaa,
+ 0xd3, 0x36, 0x3d, 0x52, 0x37, 0xe5, 0x73, 0x12, 0x51, 0x64, 0xa7, 0x90,
+ 0xf1, 0x2c, 0x0d, 0x3c, 0x8b, 0x79, 0xcb, 0xe5, 0x23, 0x64, 0x1a, 0x20,
+ 0xb5, 0x40, 0xce, 0xc1, 0xdc, 0x5c, 0x47, 0xd5, 0xbd, 0x68, 0xd8, 0x30,
+ 0x13, 0x6c, 0xe9, 0xc3, 0x0e, 0x22, 0x88, 0x69, 0x63, 0xfc, 0x54, 0x1a,
+ 0xcb, 0x9a, 0xa4, 0x46, 0x73, 0xab, 0x03, 0x2d, 0xb1, 0x3f, 0x98, 0xeb,
+ 0xaf, 0x3c, 0xc0, 0x9c, 0x9f, 0x5f, 0xaa, 0x7f, 0xd7, 0xe7, 0x3c, 0x2c,
+ 0x75, 0xda, 0x1d, 0xd8, 0x8a, 0xae, 0x31, 0xa3, 0x2e, 0xf0, 0x93, 0xd6,
+ 0xfa, 0xd9, 0x42, 0x4f, 0x76, 0x76, 0xb6, 0x57, 0xf4, 0x46, 0x7e, 0x1d,
+ 0xfb, 0xfa, 0x39, 0x48, 0x89, 0xbc, 0x94, 0x6e, 0xb3, 0xe6, 0xed, 0xc6,
+ 0x69, 0x6a, 0xf3, 0x9a, 0x56, 0x72, 0x2a, 0xc0, 0x78, 0x76, 0xa3, 0xaa,
+ 0x79, 0xc5, 0x9d, 0x57, 0xe1, 0xd5, 0x1e, 0x84, 0x60, 0xf1, 0x94, 0x24,
+ 0x8e, 0x0b, 0xc0, 0x33, 0x2a, 0x60, 0x98, 0x1c, 0xd2, 0x6e, 0x68, 0x7d,
+ 0xd8, 0xeb, 0xb2, 0xfa, 0x73, 0xb5, 0xee, 0x81, 0x2a, 0xb1, 0xd6, 0x9d,
+ 0xd7, 0xf7, 0x7e, 0xa9, 0x6a, 0x9e, 0x72, 0x82, 0x58, 0x67, 0xef, 0x38,
+ 0x63, 0xfe, 0x23, 0x2b, 0x39, 0x3d, 0x3e, 0xf3, 0xbc, 0x68, 0xd5, 0xf4,
+ 0x95, 0x46, 0x80, 0x74, 0xb1, 0x83, 0x00, 0x55, 0x6a, 0xa5, 0x14, 0xdc,
+ 0x7e, 0x9d, 0x4f, 0x50, 0x90, 0x48, 0x56, 0x0b, 0x2b, 0xd6, 0x76, 0x13,
+ 0x33, 0x48, 0x61, 0xcc, 0xdb, 0xab, 0x35, 0x1f, 0x7d, 0xde, 0xf1, 0x8c,
+ 0x62, 0xb2, 0x90, 0x0a, 0x12, 0x18, 0x87, 0x27, 0xa7, 0x04, 0x8b, 0x3d,
+ 0x35, 0x26, 0xde, 0x48, 0x55, 0x25, 0xc0, 0xc4, 0x01, 0xd8, 0x2d, 0x72,
+ 0x52, 0xd7, 0xfb, 0xb6, 0xe0, 0x90, 0x66, 0x4b, 0xc2, 0x6e, 0xa1, 0x10,
+ 0x2b, 0x9b, 0xfe, 0x42, 0x12, 0x6a, 0x56, 0xcb, 0xe8, 0x4b, 0x35, 0x3b,
+ 0x6d, 0x41, 0xc0, 0x4d, 0xa5, 0x29, 0x6e, 0xb3, 0x59, 0xb9, 0x80, 0x49,
+ 0xcd, 0x62, 0x1a, 0xf5, 0xce, 0xaa, 0x6c, 0x96, 0xdd, 0x8a, 0x77, 0x95,
+ 0xe9, 0x8c, 0xbf, 0x16, 0xc4, 0x02, 0xd7, 0x26, 0x6e, 0x24, 0xab, 0x25,
+ 0x40, 0x45, 0xd0, 0x47, 0x77, 0x98, 0x15, 0xca, 0x91, 0xfd, 0xd0, 0xf7,
+ 0x5d, 0x11, 0x0e, 0x33, 0x43, 0xb6, 0x88, 0xc3, 0x80, 0x8c, 0x5c, 0x01,
+ 0xb7, 0xbf, 0xaf, 0x85, 0xcf, 0xa5, 0x9b, 0x2d, 0xc2, 0xce, 0x42, 0x2d,
+ 0x6f, 0xc9, 0xde, 0xf7, 0xbe, 0xd2, 0xa4, 0x73, 0xc8, 0x80, 0x6e, 0x9e,
+ 0x3e, 0x79, 0x6a, 0xd1, 0xd2, 0x95, 0xb1, 0xc8, 0xa8, 0x20, 0x4e, 0x9f,
+ 0x53, 0xc7, 0xb1, 0x39, 0xca, 0x99, 0xf9, 0x27, 0x00, 0x95, 0x0c, 0xb1,
+ 0x36, 0xcf, 0x52, 0xbc, 0xd9, 0xc3, 0xb4, 0x13, 0xe6, 0x06, 0xe9, 0x50,
+ 0xf2, 0x2f, 0x34, 0x55, 0x2d, 0xc1, 0x26, 0xde, 0xe7, 0xdb, 0x90, 0xe2,
+ 0xbc, 0xcd, 0x64, 0x68, 0x7b, 0x2f, 0xa8, 0x1f, 0xee, 0xff, 0x6b, 0x9e,
+ 0x4a, 0x1a, 0x04, 0xeb, 0x21, 0x65, 0xa5, 0xd3, 0xcb, 0xcb, 0x30, 0xe6,
+ 0x6a, 0xa4, 0x5f, 0x2d, 0x29, 0xfe, 0x68, 0x0b, 0x78, 0x51, 0x2f, 0xe6,
+ 0x74, 0x17, 0x65, 0x5c, 0xf8, 0xd7, 0x36, 0x4e, 0x26, 0xdd, 0xd2, 0x2c,
+ 0x2f, 0xb7, 0x7e, 0x5a, 0xde, 0x51, 0xd5, 0xe2, 0xab, 0xab, 0x7c, 0x42,
+ 0xb1, 0x7f, 0xc7, 0x1a, 0x4e, 0x32, 0x9e, 0x1f, 0x9c, 0x6b, 0xf5, 0x35,
+ 0x33, 0xb6, 0x64, 0xb1, 0x1c, 0xcf, 0xcc, 0x65, 0xad, 0xf9, 0x2c, 0xe6,
+ 0x54, 0x61, 0x96, 0x8c, 0xb5, 0x85, 0xe6, 0x98, 0xde, 0x10, 0x06, 0x67,
+ 0x27, 0x87, 0x02, 0xe1, 0xd2, 0x0a, 0x2a, 0xf8, 0x1c, 0xe5, 0x9b, 0x29,
+ 0xd1, 0x60, 0x5e, 0x16, 0x9a, 0x0e, 0xb7, 0xac, 0x99, 0x4e, 0x16, 0xd1,
+ 0x1c, 0xae, 0x92, 0x95, 0xe0, 0x49, 0x29, 0xda, 0x20, 0xa6, 0x39, 0xde,
+ 0xf0, 0x07, 0x33, 0x1d, 0x2c, 0x6e, 0x16, 0xba, 0xd2, 0xaa, 0x10, 0xb1,
+ 0xb6, 0x24, 0x09, 0x58, 0x38, 0x7a, 0xe7, 0xdf, 0x9c, 0x0f, 0x93, 0x63,
+ 0x6a, 0x89, 0xfb, 0x24, 0x8a, 0x2e, 0x7c, 0x34, 0xe6, 0x77, 0x66, 0xb0,
+ 0xd7, 0x74, 0x81, 0x9d, 0x55, 0xf4, 0x2f, 0xb4, 0x26, 0xbf, 0x64, 0xb7,
+ 0x2c, 0x7e, 0xdb, 0xfe, 0xaa, 0x69, 0x48, 0xd3, 0x2c, 0xce, 0xf1, 0x77,
+ 0x73, 0x56, 0x8c, 0xfa, 0x65, 0x97, 0xc9, 0x7d, 0xa1, 0xac, 0x5a, 0xe4,
+ 0x5b, 0xfc, 0x66, 0x62, 0xb4, 0x32, 0xe8, 0x56, 0x8b, 0x7b, 0xac, 0x9f,
+ 0x27, 0x1c, 0x59, 0xff, 0xe4, 0x06, 0xbc, 0xad, 0x25, 0xdb, 0xcf, 0x02,
+ 0x78, 0xf9, 0x60, 0x55, 0x4c, 0x3b, 0x55, 0x65, 0x02, 0x77, 0x2e, 0x25,
+ 0x30, 0xcd, 0x1e, 0x8d, 0x3a, 0xeb, 0x9c, 0x57, 0xcf, 0x7e, 0xd3, 0x5f,
+ 0x90, 0xd9, 0x4d, 0x7d, 0x31, 0x5a, 0x8b, 0x59, 0x82, 0xe1, 0xc6, 0xff,
+ 0x17, 0xbd, 0x21, 0x92, 0x46, 0x36, 0x05, 0x03, 0x00,
};
#define BUF_SIZE 0x10000
static voidpf zalloc_func(voidpf opaque, unsigned int items, unsigned int size)
diff --git a/src/tool_operate.c b/src/tool_operate.c
index 5401955a..e8b434a5 100644
--- a/src/tool_operate.c
+++ b/src/tool_operate.c
@@ -25,12 +25,6 @@
# include <fcntl.h>
#endif
-#ifdef HAVE_UTIME_H
-# include <utime.h>
-#elif defined(HAVE_SYS_UTIME_H)
-# include <sys/utime.h>
-#endif
-
#ifdef HAVE_LOCALE_H
# include <locale.h>
#endif
@@ -56,6 +50,7 @@
#include "tool_dirhie.h"
#include "tool_doswin.h"
#include "tool_easysrc.h"
+#include "tool_filetime.h"
#include "tool_getparam.h"
#include "tool_helpers.h"
#include "tool_homedir.h"
@@ -174,79 +169,6 @@ static curl_off_t VmsSpecialSize(const char *name,
}
#endif /* __VMS */
-#if defined(HAVE_UTIME) || \
- (defined(WIN32) && (SIZEOF_CURL_OFF_T >= 8))
-static void setfiletime(long filetime, const char *filename,
- FILE *error_stream)
-{
- if(filetime >= 0) {
-/* Windows utime() may attempt to adjust our unix gmt 'filetime' by a daylight
- saving time offset and since it's GMT that is bad behavior. When we have
- access to a 64-bit type we can bypass utime and set the times directly. */
-#if defined(WIN32) && (SIZEOF_CURL_OFF_T >= 8)
- HANDLE hfile;
-
-#if (SIZEOF_LONG >= 8)
- /* 910670515199 is the maximum unix filetime that can be used as a
- Windows FILETIME without overflow: 30827-12-31T23:59:59. */
- if(filetime > CURL_OFF_T_C(910670515199)) {
- fprintf(error_stream,
- "Failed to set filetime %ld on outfile: overflow\n",
- filetime);
- return;
- }
-#endif /* SIZEOF_LONG >= 8 */
-
- hfile = CreateFileA(filename, FILE_WRITE_ATTRIBUTES,
- (FILE_SHARE_READ | FILE_SHARE_WRITE |
- FILE_SHARE_DELETE),
- NULL, OPEN_EXISTING, 0, NULL);
- if(hfile != INVALID_HANDLE_VALUE) {
- curl_off_t converted = ((curl_off_t)filetime * 10000000) +
- CURL_OFF_T_C(116444736000000000);
- FILETIME ft;
- ft.dwLowDateTime = (DWORD)(converted & 0xFFFFFFFF);
- ft.dwHighDateTime = (DWORD)(converted >> 32);
- if(!SetFileTime(hfile, NULL, &ft, &ft)) {
- fprintf(error_stream,
- "Failed to set filetime %ld on outfile: "
- "SetFileTime failed: GetLastError %u\n",
- filetime, GetLastError());
- }
- CloseHandle(hfile);
- }
- else {
- fprintf(error_stream,
- "Failed to set filetime %ld on outfile: "
- "CreateFile failed: GetLastError %u\n",
- filetime, GetLastError());
- }
-
-#elif defined(HAVE_UTIMES)
- struct timeval times[2];
- times[0].tv_sec = times[1].tv_sec = filetime;
- times[0].tv_usec = times[1].tv_usec = 0;
- if(utimes(filename, times)) {
- fprintf(error_stream,
- "Failed to set filetime %ld on outfile: errno %d\n",
- filetime, errno);
- }
-
-#elif defined(HAVE_UTIME)
- struct utimbuf times;
- times.actime = (time_t)filetime;
- times.modtime = (time_t)filetime;
- if(utime(filename, &times)) {
- fprintf(error_stream,
- "Failed to set filetime %ld on outfile: errno %d\n",
- filetime, errno);
- }
-#endif
- }
-}
-#endif /* defined(HAVE_UTIME) || \
- (defined(WIN32) && (SIZEOF_CURL_OFF_T >= 8)) */
-
#define BUFFER_SIZE (100*1024)
static CURLcode operate_do(struct GlobalConfig *global,
@@ -710,7 +632,7 @@ static CURLcode operate_do(struct GlobalConfig *global,
* to be considered with one appended if implied CC
*/
#ifdef __VMS
- /* Calculate the real upload site for VMS */
+ /* Calculate the real upload size for VMS */
infd = -1;
if(stat(uploadfile, &fileinfo) == 0) {
fileinfo.st_size = VmsSpecialSize(uploadfile, &fileinfo);
@@ -1232,7 +1154,7 @@ static CURLcode operate_do(struct GlobalConfig *global,
#endif
my_setopt_enum(curl, CURLOPT_TIMECONDITION, (long)config->timecond);
- my_setopt(curl, CURLOPT_TIMEVALUE, (long)config->condtime);
+ my_setopt(curl, CURLOPT_TIMEVALUE_LARGE, config->condtime);
my_setopt_str(curl, CURLOPT_CUSTOMREQUEST, config->customrequest);
customrequest_helper(config, config->httpreq, config->customrequest);
my_setopt(curl, CURLOPT_STDERR, global->errors);
@@ -1518,6 +1440,11 @@ static CURLcode operate_do(struct GlobalConfig *global,
if(config->tftp_no_options)
my_setopt(curl, CURLOPT_TFTP_NO_OPTIONS, 1L);
+ /* new in 7.59.0 */
+ if(config->happy_eyeballs_timeout_ms != CURL_HET_DEFAULT)
+ my_setopt(curl, CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS,
+ config->happy_eyeballs_timeout_ms);
+
/* initialize retry vars for loop below */
retry_sleep_default = (config->retry_delay) ?
config->retry_delay*1000L : RETRY_SLEEP_DEFAULT; /* ms */
@@ -1841,18 +1768,13 @@ static CURLcode operate_do(struct GlobalConfig *global,
}
#endif
-#if defined(HAVE_UTIME) || \
- (defined(WIN32) && (SIZEOF_CURL_OFF_T >= 8))
/* File time can only be set _after_ the file has been closed */
if(!result && config->remote_time && outs.s_isreg && outs.filename) {
/* Ask libcurl if we got a remote file time */
- long filetime = -1;
- curl_easy_getinfo(curl, CURLINFO_FILETIME, &filetime);
- if(filetime >= 0)
- setfiletime(filetime, outs.filename, config->global->errors);
+ curl_off_t filetime = -1;
+ curl_easy_getinfo(curl, CURLINFO_FILETIME_T, &filetime);
+ setfiletime(filetime, outs.filename, config->global->errors);
}
-#endif /* defined(HAVE_UTIME) || \
- (defined(WIN32) && (SIZEOF_CURL_OFF_T >= 8)) */
#ifdef USE_METALINK
if(!metalink && config->use_metalink && result == CURLE_OK) {
diff --git a/src/tool_version.h b/src/tool_version.h
index d5424dfe..6b0b55e5 100644
--- a/src/tool_version.h
+++ b/src/tool_version.h
@@ -25,7 +25,7 @@
#define CURL_NAME "curl"
#define CURL_COPYRIGHT LIBCURL_COPYRIGHT
-#define CURL_VERSION "7.58.0"
+#define CURL_VERSION "7.59.0"
#define CURL_VERSION_MAJOR LIBCURL_VERSION_MAJOR
#define CURL_VERSION_MINOR LIBCURL_VERSION_MINOR
#define CURL_VERSION_PATCH LIBCURL_VERSION_PATCH
diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc
index 9635d12a..97daf00c 100644
--- a/tests/data/Makefile.inc
+++ b/tests/data/Makefile.inc
@@ -55,8 +55,11 @@ test280 test281 test282 test283 test284 test285 test286 test287 test288 \
test289 test290 test291 test292 test293 test294 test295 test296 test297 \
test298 test299 test300 test301 test302 test303 test304 test305 test306 \
test307 test308 test309 test310 test311 test312 test313 test314 test315 \
-test316 test317 test318 test320 test321 test322 test323 test324 \
-test325 \
+test316 test317 test318 test319 test320 test321 test322 test323 test324 \
+test325 test326 \
+\
+test340 \
+\
test350 test351 test352 test353 test354 \
test393 test394 test395 \
\
@@ -80,7 +83,7 @@ test617 test618 test619 test620 test621 test622 test623 test624 test625 \
test626 test627 test628 test629 test630 test631 test632 test633 test634 \
test635 test636 test637 test638 test639 test640 test641 test642 \
test643 test644 test645 test646 test647 test648 test649 test650 test651 \
-test652 test653 test654 \
+test652 test653 test654 test655 \
\
test700 test701 test702 test703 test704 test705 test706 test707 test708 \
test709 test710 test711 test712 test713 test714 test715 \
@@ -103,7 +106,7 @@ test909 test910 test911 test912 test913 test914 test915 test916 test917 \
test918 test919 test920 test921 test922 test923 test924 test925 test926 \
test927 test928 test929 test930 test931 test932 test933 test934 test935 \
test936 test937 test938 test939 test940 test941 test942 test943 test944 \
-test945 test946 test947 test948 test949 test950 \
+test945 test946 test947 test948 test949 test950 test951 test952 \
\
test1000 test1001 test1002 test1003 test1004 test1005 test1006 test1007 \
test1008 test1009 test1010 test1011 test1012 test1013 test1014 test1015 \
@@ -124,9 +127,10 @@ test1120 test1121 test1122 test1123 test1124 test1125 test1126 test1127 \
test1128 test1129 test1130 test1131 test1132 test1133 test1134 test1135 \
test1136 test1137 test1138 test1139 test1140 test1141 test1142 test1143 \
test1144 test1145 test1146 test1147 test1148 test1149 test1150 test1151 \
-test1152 test1153 \
+test1152 test1153 test1154 \
\
test1160 test1161 test1162 test1163 \
+test1170 test1171 \
test1200 test1201 test1202 test1203 test1204 test1205 test1206 test1207 \
test1208 test1209 test1210 test1211 test1212 test1213 test1214 test1215 \
test1216 test1217 test1218 test1219 \
@@ -135,10 +139,10 @@ test1228 test1229 test1230 test1231 test1232 test1233 test1234 test1235 \
test1236 test1237 test1238 test1239 test1240 test1241 test1242 test1243 \
test1244 test1245 test1246 test1247 test1248 test1249 test1250 test1251 \
test1252 test1253 test1254 test1255 test1256 test1257 test1258 test1259 \
-test1260 test1261 test1262 test1263 test1264 \
+test1260 test1261 test1262 test1263 test1264 test1265 \
\
test1280 test1281 test1282 test1283 test1284 test1285 test1286 test1287 \
-test1288 test1289 test1290 test1291 \
+test1288 test1289 test1290 test1291 test1292 \
test1298 test1299 \
test1300 test1301 test1302 test1303 test1304 test1305 test1306 test1307 \
test1308 test1309 test1310 test1311 test1312 test1313 test1314 test1315 \
@@ -171,8 +175,8 @@ test1520 test1521 \
test1525 test1526 test1527 test1528 test1529 test1530 test1531 test1532 \
test1533 test1534 test1535 test1536 test1537 test1538 \
test1540 \
-test1550 test1551 test1552 test1553 test1554 \
-test1600 test1601 test1602 test1603 test1604 test1605 test1606 \
+test1550 test1551 test1552 test1553 test1554 test1555 test1556 \
+test1600 test1601 test1602 test1603 test1604 test1605 test1606 test1607 \
\
test1700 test1701 test1702 \
\
diff --git a/tests/data/test1154 b/tests/data/test1154
new file mode 100644
index 00000000..cb056d1a
--- /dev/null
+++ b/tests/data/test1154
@@ -0,0 +1,57 @@
+<testcase>
+<info>
+<keywords>
+HTTP
+HTTP GET
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<data>
+HTTP/1.1 200 OK
+Date: Thu, 09 Nov 2010 14:49:00 GMT
+Server: test-server/fake
+Content-Length: 6
+Connection: close
+Long: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+-foo-
+</data>
+<datacheck>
+</datacheck>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+http
+</server>
+ <name>
+HTTP GET
+ </name>
+ <command>
+http://%HOSTIP:%HTTPPORT/1154
+</command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<strip>
+^User-Agent:.*
+</strip>
+<protocol>
+GET /1154 HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+Accept: */*
+
+</protocol>
+# 27 == CURLE_OUT_OF_MEMORY
+<errorcode>
+27
+</errorcode>
+</verify>
+</testcase>
diff --git a/tests/data/test1170 b/tests/data/test1170
new file mode 100644
index 00000000..a4d9eb84
--- /dev/null
+++ b/tests/data/test1170
@@ -0,0 +1,70 @@
+<testcase>
+<info>
+<keywords>
+HTTP
+HTTP GET
+compressed
+Transfer-Encoding
+</keywords>
+</info>
+#
+# Server-side
+<reply>
+<data base64="yes">
+SFRUUC8xLjEgMjAwIE9LDQpEYXRlOiBNb24sIDI5IE5vdiAyMDA0IDIxOjU2OjUzIEdNVA0KU2Vy
+dmVyOiBBcGFjaGUvMS4zLjMxIChEZWJpYW4gR05VL0xpbnV4KSBtb2RfZ3ppcC8xLjMuMjYuMWEg
+UEhQLzQuMy45LTEgbW9kX3NzbC8yLjguMjAgT3BlblNTTC8wLjkuN2QgbW9kX3BlcmwvMS4yOQ0K
+VmFyeTogQWNjZXB0LUVuY29kaW5nDQpDb250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1J
+U08tODg1OS0xDQpUcmFuc2Zlci1FbmNvZGluZzogZ3ppcA0KQ29udGVudC1MZW5ndGg6IDQ0DQoN
+Ch+LCAh5nqtBAANsYWxhbGEAy8nMS1Uw5FLIAdFGXAoQhjEXAAoCcWAYAAAA
+</data>
+
+<datacheck>
+HTTP/1.1 200 OK
+Date: Mon, 29 Nov 2004 21:56:53 GMT
+Server: Apache/1.3.31 (Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.9-1 mod_ssl/2.8.20 OpenSSL/0.9.7d mod_perl/1.29
+Vary: Accept-Encoding
+Content-Type: text/html; charset=ISO-8859-1
+Transfer-Encoding: gzip
+Content-Length: 44
+
+line 1
+ line 2
+ line 3
+</datacheck>
+
+</reply>
+
+#
+# Client-side
+<client>
+<features>
+libz
+</features>
+<server>
+http
+</server>
+ <name>
+HTTP GET transfer-encoding with removed Connection:
+ </name>
+ <command>
+http://%HOSTIP:%HTTPPORT/1170 --tr-encoding -H "Connection:"
+</command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<strip>
+^User-Agent:.*
+</strip>
+<protocol>
+GET /1170 HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+Accept: */*
+Connection: TE
+TE: gzip
+
+</protocol>
+</verify>
+</testcase>
diff --git a/tests/data/test1171 b/tests/data/test1171
new file mode 100644
index 00000000..0f7ee90d
--- /dev/null
+++ b/tests/data/test1171
@@ -0,0 +1,70 @@
+<testcase>
+<info>
+<keywords>
+HTTP
+HTTP GET
+compressed
+Transfer-Encoding
+</keywords>
+</info>
+#
+# Server-side
+<reply>
+<data base64="yes">
+SFRUUC8xLjEgMjAwIE9LDQpEYXRlOiBNb24sIDI5IE5vdiAyMDA0IDIxOjU2OjUzIEdNVA0KU2Vy
+dmVyOiBBcGFjaGUvMS4zLjMxIChEZWJpYW4gR05VL0xpbnV4KSBtb2RfZ3ppcC8xLjMuMjYuMWEg
+UEhQLzQuMy45LTEgbW9kX3NzbC8yLjguMjAgT3BlblNTTC8wLjkuN2QgbW9kX3BlcmwvMS4yOQ0K
+VmFyeTogQWNjZXB0LUVuY29kaW5nDQpDb250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1J
+U08tODg1OS0xDQpUcmFuc2Zlci1FbmNvZGluZzogZ3ppcA0KQ29udGVudC1MZW5ndGg6IDQ0DQoN
+Ch+LCAh5nqtBAANsYWxhbGEAy8nMS1Uw5FLIAdFGXAoQhjEXAAoCcWAYAAAA
+</data>
+
+<datacheck>
+HTTP/1.1 200 OK
+Date: Mon, 29 Nov 2004 21:56:53 GMT
+Server: Apache/1.3.31 (Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.9-1 mod_ssl/2.8.20 OpenSSL/0.9.7d mod_perl/1.29
+Vary: Accept-Encoding
+Content-Type: text/html; charset=ISO-8859-1
+Transfer-Encoding: gzip
+Content-Length: 44
+
+line 1
+ line 2
+ line 3
+</datacheck>
+
+</reply>
+
+#
+# Client-side
+<client>
+<features>
+libz
+</features>
+<server>
+http
+</server>
+ <name>
+HTTP GET transfer-encoding with blanked Connection:
+ </name>
+ <command>
+http://%HOSTIP:%HTTPPORT/1171 --tr-encoding -H "Connection;"
+</command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<strip>
+^User-Agent:.*
+</strip>
+<protocol>
+GET /1171 HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+Accept: */*
+Connection: TE
+TE: gzip
+
+</protocol>
+</verify>
+</testcase>
diff --git a/tests/data/test1265 b/tests/data/test1265
new file mode 100644
index 00000000..5d3ef6dc
--- /dev/null
+++ b/tests/data/test1265
@@ -0,0 +1,53 @@
+<testcase>
+<info>
+<keywords>
+HTTP
+HTTP proxy
+NO_PROXY
+noproxy
+</keywords>
+</info>
+
+# Server-side
+<reply>
+<data>
+HTTP/1.1 200 OK
+Date: Thu, 09 Nov 2010 14:49:00 GMT
+Server: test-server/fake
+Content-Length: 4
+Content-Type: text/html
+
+foo
+</data>
+</reply>
+
+# Client-side
+<client>
+<server>
+http-ipv6
+</server>
+<name>
+NO_PROXY with IPv6 numerical address
+</name>
+<setenv>
+http_proxy=http://%HOSTIP:%HTTPPORT
+NO_PROXY=::1
+</setenv>
+<command>
+http://%HOST6IP:%HTTP6PORT/1265
+</command>
+</client>
+
+# Verify data after the test has been "shot"
+<verify>
+<strip>
+^User-Agent:.*
+</strip>
+<protocol>
+GET /1265 HTTP/1.1
+Host: %HOST6IP:%HTTP6PORT
+Accept: */*
+
+</protocol>
+</verify>
+</testcase>
diff --git a/tests/data/test1292 b/tests/data/test1292
new file mode 100644
index 00000000..880a4b46
--- /dev/null
+++ b/tests/data/test1292
@@ -0,0 +1,50 @@
+<testcase>
+<info>
+<keywords>
+HTTP
+HTTP GET
+HTTP added headers
+HTTP replaced headers
+</keywords>
+</info>
+#
+# Server-side
+<reply>
+<data>
+HTTP/1.1 200 OK
+Date: Thu, 09 Nov 2010 14:49:00 GMT
+Server: test-server/fake swsclose
+Content-Type: text/html
+Funny-head: yesyes
+
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+http
+</server>
+ <name>
+Replaced internal headers with a blank one
+ </name>
+ <command>
+ -H "Host;" -H "Accept;" http://%HOSTIP:%HTTPPORT/1292
+</command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<strip>
+^User-Agent:.*
+</strip>
+<protocol>
+GET /1292 HTTP/1.1
+Host:
+Accept:
+
+</protocol>
+</verify>
+</testcase>
diff --git a/tests/data/test1538 b/tests/data/test1538
index 25b39a6f..b084dac6 100644
--- a/tests/data/test1538
+++ b/tests/data/test1538
@@ -125,7 +125,8 @@ e89: The max connection limit is reached
e90: SSL public key does not match pinned public key
e91: SSL server certificate status verification FAILED
e92: Stream error in the HTTP/2 framing layer
-e93: Unknown error
+e93: API function called from within callback
+e94: Unknown error
m-1: Please call curl_multi_perform() soon
m0: No error
m1: Invalid multi handle
@@ -135,7 +136,8 @@ m4: Internal error
m5: Invalid socket argument
m6: Unknown option
m7: The easy handle is already added to a multi handle
-m8: Unknown error
+m8: API function called from within callback
+m9: Unknown error
s0: No error
s1: Unknown share option
s2: Share currently in use
diff --git a/tests/data/test1555 b/tests/data/test1555
new file mode 100644
index 00000000..19512c5f
--- /dev/null
+++ b/tests/data/test1555
@@ -0,0 +1,50 @@
+<testcase>
+<info>
+<keywords>
+RECURSIVE_API_CALL
+</keywords>
+</info>
+
+# Server-side
+<reply>
+<data nocheck="yes">
+HTTP/1.1 204 PARTIAL
+X-Comment: partial response to keep the client waiting
+</data>
+<postcmd>
+wait 10
+</postcmd>
+</reply>
+
+# Client-side
+<client>
+<server>
+http
+</server>
+<tool>
+lib1555
+</tool>
+ <name>
+verify api is protected against calls from callbacks
+ </name>
+
+# this server/host won't be used for real
+ <command>
+http://%HOSTIP:%HTTPPORT/1555
+</command>
+</client>
+
+# Verify data after the test has been "shot"
+<verify>
+<protocol>
+</protocol>
+# 42 == CURLE_ABORTED_BY_CALLBACK
+<errorcode>
+42
+</errorcode>
+<stdout>
+curl_easy_recv returned 93
+curl_easy_send returned 93
+</stdout>
+</verify>
+</testcase>
diff --git a/tests/data/test1556 b/tests/data/test1556
new file mode 100644
index 00000000..0f99abd8
--- /dev/null
+++ b/tests/data/test1556
@@ -0,0 +1,63 @@
+<testcase>
+<info>
+<keywords>
+HTTP
+HTTP GET
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<data nocheck="yes">
+HTTP/1.1 200 OK
+Date: Thu, 09 Nov 2010 14:49:00 GMT
+Server: test-server/fake
+Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
+ETag: "21025-dc7-39462498"
+Accept-Ranges: bytes
+Content-Length: 6
+Connection: close
+Content-Type: text/html
+Funny-head: yesyes
+Long: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+-foo-
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+http
+</server>
+<tool>
+lib1556
+</tool>
+ <name>
+send long HTTP headers to header callback
+ </name>
+ <command>
+http://%HOSTIP:%HTTPPORT/1556
+</command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<strip>
+^User-Agent:.*
+</strip>
+<protocol>
+GET /1556 HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+Accept: */*
+
+</protocol>
+<stdout>
+-foo-
+Max: 100008
+</stdout>
+</verify>
+</testcase>
diff --git a/tests/data/test1607 b/tests/data/test1607
new file mode 100644
index 00000000..9628324e
--- /dev/null
+++ b/tests/data/test1607
@@ -0,0 +1,26 @@
+<testcase>
+<info>
+<keywords>
+unittest
+CURLOPT_RESOLVE
+</keywords>
+</info>
+
+#
+# Client-side
+<client>
+<server>
+none
+</server>
+<features>
+unittest
+</features>
+ <name>
+CURLOPT_RESOLVE parsing
+ </name>
+<tool>
+unit1607
+</tool>
+</client>
+
+</testcase>
diff --git a/tests/data/test319 b/tests/data/test319
new file mode 100644
index 00000000..6a61a143
--- /dev/null
+++ b/tests/data/test319
@@ -0,0 +1,57 @@
+<testcase>
+<info>
+<keywords>
+HTTP
+HTTP GET
+compressed
+</keywords>
+</info>
+#
+# Server-side
+<reply>
+<data base64="yes">
+SFRUUC8xLjEgMjAwIE9LDQpEYXRlOiBNb24sIDI5IE5vdiAyMDA0IDIxOjU2OjUzIEdNVA0KU2Vy
+dmVyOiBBcGFjaGUvMS4zLjMxIChEZWJpYW4gR05VL0xpbnV4KSBtb2RfZ3ppcC8xLjMuMjYuMWEg
+UEhQLzQuMy45LTEgbW9kX3NzbC8yLjguMjAgT3BlblNTTC8wLjkuN2QgbW9kX3BlcmwvMS4yOQ0K
+Q29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMQ0KVHJhbnNmZXItRW5j
+b2Rpbmc6IGd6aXANCkNvbnRlbnQtTGVuZ3RoOiA0NA0KDQofiwgIeZ6rQQADbGFsYWxhAMvJzEtV
+MORSyAHRRlwKEIYxFwAKAnFgGAAAAA==
+</data>
+
+<datacheck base64="yes">
+H4sICHmeq0EAA2xhbGFsYQDLycxLVTDkUsgB0UZcChCGMRcACgJxYBgAAAA=
+</datacheck>
+
+</reply>
+
+#
+# Client-side
+<client>
+<features>
+libz
+</features>
+<server>
+http
+</server>
+ <name>
+HTTP GET gzip transfer-encoded data in raw mode
+ </name>
+ <command option="no-include">
+http://%HOSTIP:%HTTPPORT/319 --raw
+ </command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<strip>
+^User-Agent:.*
+</strip>
+<protocol>
+GET /319 HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+Accept: */*
+
+</protocol>
+</verify>
+</testcase>
diff --git a/tests/data/test326 b/tests/data/test326
new file mode 100644
index 00000000..1a4aae5f
--- /dev/null
+++ b/tests/data/test326
@@ -0,0 +1,66 @@
+<testcase>
+<info>
+<keywords>
+HTTP
+HTTP GET
+</keywords>
+</info>
+#
+# Server-side
+<reply>
+<data>
+HTTP/1.1 200 OK
+Date: Mon, 29 Nov 2004 21:56:53 GMT
+Server: Apache/1.3.31 (Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.9-1 mod_ssl/2.8.20 OpenSSL/0.9.7d mod_perl/1.29
+Content-Type: text/html; charset=ISO-8859-1
+Transfer-Encoding: chunked
+
+18
+line 1
+ line 2
+ line 3
+
+0
+
+</data>
+
+<datacheck>
+18
+line 1
+ line 2
+ line 3
+
+0
+
+</datacheck>
+
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+http
+</server>
+ <name>
+HTTP GET chunked data in raw mode
+ </name>
+ <command option="no-include">
+http://%HOSTIP:%HTTPPORT/326 --raw
+ </command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<strip>
+^User-Agent:.*
+</strip>
+<protocol>
+GET /326 HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+Accept: */*
+
+</protocol>
+</verify>
+</testcase>
diff --git a/tests/data/test340 b/tests/data/test340
new file mode 100644
index 00000000..d834d767
--- /dev/null
+++ b/tests/data/test340
@@ -0,0 +1,40 @@
+<testcase>
+<info>
+<keywords>
+FTP
+PASV
+CWD
+--ftp-method
+singlecwd
+</keywords>
+</info>
+#
+# Server-side
+<reply>
+</reply>
+
+# Client-side
+<client>
+<server>
+ftp
+</server>
+ <name>
+FTP using %00 in path with singlecwd
+ </name>
+ <command>
+--ftp-method singlecwd ftp://%HOSTIP:%FTPPORT/%00first/second/third/340
+</command>
+</client>
+
+# Verify data after the test has been "shot"
+<verify>
+<protocol>
+USER anonymous
+PASS ftp@example.com
+PWD
+</protocol>
+<errorcode>
+3
+</errorcode>
+</verify>
+</testcase>
diff --git a/tests/data/test517 b/tests/data/test517
index 513634f1..f58f4eda 100644
--- a/tests/data/test517
+++ b/tests/data/test517
@@ -32,96 +32,6 @@ nothing
# Verify data after the test has been "shot"
<verify>
<stdout>
-0: Sun, 06 Nov 1994 08:49:37 GMT => 784111777
-1: Sunday, 06-Nov-94 08:49:37 GMT => 784111777
-2: Sun Nov 6 08:49:37 1994 => 784111777
-3: 06 Nov 1994 08:49:37 GMT => 784111777
-4: 06-Nov-94 08:49:37 GMT => 784111777
-5: Nov 6 08:49:37 1994 => 784111777
-6: 06 Nov 1994 08:49:37 => 784111777
-7: 06-Nov-94 08:49:37 => 784111777
-8: 1994 Nov 6 08:49:37 => 784111777
-9: GMT 08:49:37 06-Nov-94 Sunday => 784111777
-10: 94 6 Nov 08:49:37 => 784111777
-11: 1994 Nov 6 => 784080000
-12: 06-Nov-94 => 784080000
-13: Sun Nov 6 94 => 784080000
-14: 1994.Nov.6 => 784080000
-15: Sun/Nov/6/94/GMT => 784080000
-16: Sun, 06 Nov 1994 08:49:37 CET => 784108177
-17: 06 Nov 1994 08:49:37 EST => 784129777
-18: Sun, 12 Sep 2004 15:05:58 -0700 => 1095026758
-19: Sat, 11 Sep 2004 21:32:11 +0200 => 1094931131
-20: 20040912 15:05:58 -0700 => 1095026758
-21: 20040911 +0200 => 1094853600
-22: Thu, 01-Jan-1970 00:59:59 GMT => 3599
-23: Thu, 01-Jan-1970 01:00:00 GMT => 3600
-24: Sat, 15-Apr-17 21:01:22 GMT => 1492290082
-25: Thu, 19-Apr-2007 16:00:00 GMT => 1176998400
-26: Wed, 25 Apr 2007 21:02:13 GMT => 1177534933
-27: Thu, 19/Apr\2007 16:00:00 GMT => 1176998400
-28: Fri, 1 Jan 2010 01:01:50 GMT => 1262307710
-29: Wednesday, 1-Jan-2003 00:00:00 GMT => 1041379200
-30: , 1-Jan-2003 00:00:00 GMT => 1041379200
-31: 1-Jan-2003 00:00:00 GMT => 1041379200
-32: 1-Jan-2003 00:00:00 GMT => 1041379200
-33: Wed,18-Apr-07 22:50:12 GMT => 1176936612
-34: WillyWonka , 18-Apr-07 22:50:12 GMT => -1
-35: WillyWonka , 18-Apr-07 22:50:12 => -1
-36: WillyWonka , 18-apr-07 22:50:12 => -1
-37: Mon, 18-Apr-1977 22:50:13 GMT => 230251813
-38: Mon, 18-Apr-77 22:50:13 GMT => 230251813
-39: "Sat, 15-Apr-17\"21:01:22\"GMT" => 1492290082
-40: Partyday, 18- April-07 22:50:12 => -1
-41: Partyday, 18 - Apri-07 22:50:12 => -1
-42: Wednes, 1-Januar-2003 00:00:00 GMT => -1
-43: Sat, 15-Apr-17 21:01:22 => 1492290082
-44: Sat, 15-Apr-17 21:01:22 GMT-2 => 1492290082
-45: Sat, 15-Apr-17 21:01:22 GMT BLAH => 1492290082
-46: Sat, 15-Apr-17 21:01:22 GMT-0400 => 1492290082
-47: Sat, 15-Apr-17 21:01:22 GMT-0400 (EDT) => 1492290082
-48: Sat, 15-Apr-17 21:01:22 DST => -1
-49: Sat, 15-Apr-17 21:01:22 -0400 => 1492304482
-50: Sat, 15-Apr-17 21:01:22 (hello there) => -1
-51: Sat, 15-Apr-17 21:01:22 11:22:33 => -1
-52: Sat, 15-Apr-17 ::00 21:01:22 => -1
-53: Sat, 15-Apr-17 boink:z 21:01:22 => -1
-54: Sat, 15-Apr-17 91:22:33 21:01:22 => -1
-55: Thu Apr 18 22:50:12 2007 GMT => 1176936612
-56: 22:50:12 Thu Apr 18 2007 GMT => 1176936612
-57: Thu 22:50:12 Apr 18 2007 GMT => 1176936612
-58: Thu Apr 22:50:12 18 2007 GMT => 1176936612
-59: Thu Apr 18 22:50:12 2007 GMT => 1176936612
-60: Thu Apr 18 2007 22:50:12 GMT => 1176936612
-61: Thu Apr 18 2007 GMT 22:50:12 => 1176936612
-62: Sat, 15-Apr-17 21:01:22 GMT => 1492290082
-63: 15-Sat, Apr-17 21:01:22 GMT => 1492290082
-64: 15-Sat, Apr 21:01:22 GMT 17 => 1492290082
-65: 15-Sat, Apr 21:01:22 GMT 2017 => 1492290082
-66: 15 Apr 21:01:22 2017 => 1492290082
-67: 15 17 Apr 21:01:22 => 1492290082
-68: Apr 15 17 21:01:22 => 1492290082
-69: Apr 15 21:01:22 17 => 1492290082
-70: 2017 April 15 21:01:22 => -1
-71: 15 April 2017 21:01:22 => -1
-72: 98 April 17 21:01:22 => -1
-73: Thu, 012-Aug-2008 20:49:07 GMT => 1218574147
-74: Thu, 999999999999-Aug-2007 20:49:07 GMT => -1
-75: Thu, 12-Aug-2007 20:61:99999999999 GMT => -1
-76: IAintNoDateFool => -1
-77: Thu Apr 18 22:50 2007 GMT => 1176936600
-78: 20110623 12:34:56 => 1308832496
-79: 20110632 12:34:56 => -1
-80: 20110623 56:34:56 => -1
-81: 20111323 12:34:56 => -1
-82: 20110623 12:34:79 => -1
-83: Wed, 31 Dec 2008 23:59:60 GMT => 1230768000
-84: 20110623 12:3 => 1308830580
-85: 20110623 1:3 => 1308790980
-86: 20110623 1:30 => 1308792600
-87: 20110623 12:12:3 => 1308831123
-88: 20110623 01:12:3 => 1308791523
-89: 20110623 01:99:30 => -1
</stdout>
# This test case previously tested an overflow case ("2094 Nov 6 =>
diff --git a/tests/data/test555 b/tests/data/test555
index 3aa2ef14..18bbc43c 100644
--- a/tests/data/test555
+++ b/tests/data/test555
@@ -106,10 +106,6 @@ chkhostname curlhost
<strip>
^User-Agent: curl/.*
</strip>
-<strippart>
-# remove CR that CURLOPT_TRANSFERTEXT added, when CharConv enabled:
-s/^(this is the blurb we want to upload)\r\n/$1\n/ if($has_charconv)
-</strippart>
<protocol>
POST http://test.remote.example.com/path/555 HTTP/1.1
Host: test.remote.example.com
diff --git a/tests/data/test655 b/tests/data/test655
new file mode 100644
index 00000000..d98729c0
--- /dev/null
+++ b/tests/data/test655
@@ -0,0 +1,50 @@
+<testcase>
+<info>
+<keywords>
+HTTP
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<data>
+HTTP/1.1 200 OK
+Date: Thu, 09 Nov 2010 14:49:00 GMT
+Server: test-server/fake swsclose
+Connection: close
+Content-Type: text/html
+
+hello
+</data>
+<datacheck>
+hello
+</datacheck>
+</reply>
+
+# Client-side
+<client>
+<server>
+http
+</server>
+# tool is what to use instead of 'curl'
+<tool>
+lib655
+</tool>
+
+ <name>
+resolver start callback
+ </name>
+ <command>
+http://%HOSTIP:%HTTPPORT/655
+</command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<errorcode>
+0
+</errorcode>
+</verify>
+</testcase>
diff --git a/tests/data/test911 b/tests/data/test911
index cc87349b..f4c54583 100644
--- a/tests/data/test911
+++ b/tests/data/test911
@@ -40,7 +40,6 @@ DATA
QUIT
</protocol>
<upload>
-
.
</upload>
</verify>
diff --git a/tests/data/test951 b/tests/data/test951
new file mode 100644
index 00000000..7d2e17b1
--- /dev/null
+++ b/tests/data/test951
@@ -0,0 +1,45 @@
+<testcase>
+<info>
+<keywords>
+SMTP
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+smtp
+</server>
+ <name>
+SMTP data with dot as first character
+ </name>
+<stdin>
+.This first line starts with a dot
+</stdin>
+<command>
+smtp://%HOSTIP:%SMTPPORT/951 --mail-rcpt recipient@example.com --mail-from sender@example.com -T -
+</command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<protocol>
+EHLO 951
+MAIL FROM:<sender@example.com>
+RCPT TO:<recipient@example.com>
+DATA
+QUIT
+</protocol>
+<upload>
+..This first line starts with a dot
+.
+</upload>
+</verify>
+</testcase>
diff --git a/tests/data/test952 b/tests/data/test952
new file mode 100644
index 00000000..54334b21
--- /dev/null
+++ b/tests/data/test952
@@ -0,0 +1,45 @@
+<testcase>
+<info>
+<keywords>
+SMTP
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+smtp
+</server>
+ <name>
+SMTP data with single dot-only line
+ </name>
+<stdin>
+.
+</stdin>
+<command>
+smtp://%HOSTIP:%SMTPPORT/952 --mail-rcpt recipient@example.com --mail-from sender@example.com -T -
+</command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<protocol>
+EHLO 952
+MAIL FROM:<sender@example.com>
+RCPT TO:<recipient@example.com>
+DATA
+QUIT
+</protocol>
+<upload>
+..
+.
+</upload>
+</verify>
+</testcase>
diff --git a/tests/ftpserver.pl b/tests/ftpserver.pl
index 95627588..97f7b8ea 100755
--- a/tests/ftpserver.pl
+++ b/tests/ftpserver.pl
@@ -6,7 +6,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2014, 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
@@ -920,7 +920,7 @@ sub DATA_smtp {
print FILE $line if(!$nosave);
$raw .= $line;
- if($raw =~ /\x0d\x0a\x2e\x0d\x0a/) {
+ if($raw =~ /(?:^|\x0d\x0a)\x2e\x0d\x0a/) {
# end of data marker!
$eob = 1;
}
@@ -2708,7 +2708,7 @@ sub datasockf_state {
}
#**********************************************************************
-# nodataconn_str returns string of efective nodataconn command. Notice
+# nodataconn_str returns string of effective nodataconn command. Notice
# that $nodataconn may be set alone or in addition to a $nodataconnXXX.
#
sub nodataconn_str {
@@ -2934,7 +2934,7 @@ while(@ARGV) {
}
#***************************************************************************
-# Initialize command line option dependant variables
+# Initialize command line option dependent variables
#
if(!$srcdir) {
diff --git a/tests/libtest/Makefile.am b/tests/libtest/Makefile.am
index a4e85ef0..0b8ebe9a 100644
--- a/tests/libtest/Makefile.am
+++ b/tests/libtest/Makefile.am
@@ -5,7 +5,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
@@ -49,6 +49,8 @@ test1022.pl Makefile.inc notexists.pl CMakeLists.txt mk-lib1521.pl
CFLAG_CURL_SYMBOL_HIDING = @CFLAG_CURL_SYMBOL_HIDING@
+CFLAGS += @CURL_CFLAG_EXTRAS@
+
# Prevent LIBS from being used for all link targets
LIBS = $(BLANK_AT_MAKETIME)
diff --git a/tests/libtest/Makefile.inc b/tests/libtest/Makefile.inc
index d8a55e21..e7e8c486 100644
--- a/tests/libtest/Makefile.inc
+++ b/tests/libtest/Makefile.inc
@@ -20,14 +20,14 @@ noinst_PROGRAMS = chkhostname libauthretry libntlmconnect \
lib559 lib560 lib562 lib564 lib565 lib566 lib567 lib568 lib569 lib570 \
lib571 lib572 lib573 lib574 lib575 lib576 lib578 lib579 lib582 \
lib583 lib585 lib586 lib587 lib589 lib590 lib591 lib597 lib598 lib599 \
- lib643 lib644 lib645 lib650 lib651 lib652 lib653 lib654 \
+ lib643 lib644 lib645 lib650 lib651 lib652 lib653 lib654 lib655 \
lib1500 lib1501 lib1502 lib1503 lib1504 lib1505 lib1506 lib1507 lib1508 \
lib1509 lib1510 lib1511 lib1512 lib1513 lib1514 lib1515 lib1517 \
lib1520 lib1521 \
lib1525 lib1526 lib1527 lib1528 lib1529 lib1530 lib1531 lib1532 lib1533 \
lib1534 lib1535 lib1536 lib1537 lib1538 \
lib1540 \
- lib1550 lib1551 lib1552 lib1553 lib1554 \
+ lib1550 lib1551 lib1552 lib1553 lib1554 lib1555 lib1556 \
lib1900 \
lib2033
@@ -327,6 +327,9 @@ lib653_CPPFLAGS = $(AM_CPPFLAGS)
lib654_SOURCES = lib654.c $(SUPPORTFILES)
lib654_CPPFLAGS = $(AM_CPPFLAGS)
+lib655_SOURCES = lib655.c $(SUPPORTFILES)
+lib655_CPPFLAGS = $(AM_CPPFLAGS)
+
lib1500_SOURCES = lib1500.c $(SUPPORTFILES) $(TESTUTIL)
lib1500_LDADD = $(TESTUTIL_LIBS)
lib1500_CPPFLAGS = $(AM_CPPFLAGS)
@@ -477,6 +480,14 @@ lib1553_CPPFLAGS = $(AM_CPPFLAGS)
lib1554_SOURCES = lib1554.c $(SUPPORTFILES)
lib1554_CPPFLAGS = $(AM_CPPFLAGS)
+lib1555_SOURCES = lib1555.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
+lib1555_LDADD = $(TESTUTIL_LIBS)
+lib1555_CPPFLAGS = $(AM_CPPFLAGS) -DLIB1555
+
+lib1556_SOURCES = lib1556.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
+lib1556_LDADD = $(TESTUTIL_LIBS)
+lib1556_CPPFLAGS = $(AM_CPPFLAGS) -DLIB1556
+
lib1900_SOURCES = lib1900.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib1900_LDADD = $(TESTUTIL_LIBS)
lib1900_CPPFLAGS = $(AM_CPPFLAGS)
diff --git a/tests/libtest/lib1521.c b/tests/libtest/lib1521.c
index 2852b865..905e33b7 100644
--- a/tests/libtest/lib1521.c
+++ b/tests/libtest/lib1521.c
@@ -38,7 +38,7 @@ struct data {
/* Unexpected error.
CURLE_NOT_BUILT_IN - means disabled at build
CURLE_UNKNOWN_OPTION - means no such option (anymore?)
- CURLE_SSL_ENGINE_NOTFOUND - set unkown ssl engine
+ CURLE_SSL_ENGINE_NOTFOUND - set unknown ssl engine
CURLE_UNSUPPORTED_PROTOCOL - set bad HTTP version
CURLE_BAD_FUNCTION_ARGUMENT - unsupported value
*/
@@ -99,6 +99,7 @@ static curl_chunk_end_callback chunk_end_cb;
static curl_fnmatch_callback fnmatch_cb;
static curl_closesocket_callback closesocketcb;
static curl_xferinfo_callback xferinfocb;
+static curl_resolver_start_callback resolver_start_cb;
int test(char *URL)
{
@@ -2352,6 +2353,40 @@ int test(char *URL)
res = curl_easy_setopt(curl, CURLOPT_MIMEPOST, NULL);
if(UNEX(res)) {
err("MIMEPOST", res, __LINE__); goto test_cleanup; }
+ res = curl_easy_setopt(curl, CURLOPT_TIMEVALUE_LARGE, OFF_NO);
+ if(UNEX(res)) {
+ err("TIMEVALUE_LARGE", res, __LINE__); goto test_cleanup; }
+ res = curl_easy_setopt(curl, CURLOPT_TIMEVALUE_LARGE, OFF_HI);
+ if(UNEX(res)) {
+ err("TIMEVALUE_LARGE", res, __LINE__); goto test_cleanup; }
+ res = curl_easy_setopt(curl, CURLOPT_TIMEVALUE_LARGE, OFF_LO);
+ if(UNEX(res)) {
+ err("TIMEVALUE_LARGE", res, __LINE__); goto test_cleanup; }
+ res = curl_easy_setopt(curl, CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS, 0L);
+ if(UNEX(res)) {
+ err("HAPPY_EYEBALLS_TIMEOUT_MS", res, __LINE__); goto test_cleanup; }
+ res = curl_easy_setopt(curl, CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS, 22L);
+ if(UNEX(res)) {
+ err("HAPPY_EYEBALLS_TIMEOUT_MS", res, __LINE__); goto test_cleanup; }
+ res = curl_easy_setopt(curl, CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS, LO);
+ if(UNEX(res)) {
+ err("HAPPY_EYEBALLS_TIMEOUT_MS", res, __LINE__); goto test_cleanup; }
+ res = curl_easy_setopt(curl, CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS, HI);
+ if(UNEX(res)) {
+ err("HAPPY_EYEBALLS_TIMEOUT_MS", res, __LINE__); goto test_cleanup; }
+ res = curl_easy_setopt(curl, CURLOPT_RESOLVER_START_FUNCTION,
+ resolver_start_cb);
+ if(UNEX(res)) {
+ err("RESOLVER_START_FUNCTION", res, __LINE__); goto test_cleanup; }
+ res = curl_easy_setopt(curl, CURLOPT_RESOLVER_START_FUNCTION, NULL);
+ if(UNEX(res)) {
+ err("RESOLVER_START_FUNCTION", res, __LINE__); goto test_cleanup; }
+ res = curl_easy_setopt(curl, CURLOPT_RESOLVER_START_DATA, &object);
+ if(UNEX(res)) {
+ err("RESOLVER_START_DATA", res, __LINE__); goto test_cleanup; }
+ res = curl_easy_setopt(curl, CURLOPT_RESOLVER_START_DATA, NULL);
+ if(UNEX(res)) {
+ err("RESOLVER_START_DATA", res, __LINE__); goto test_cleanup; }
res = curl_easy_getinfo(curl, CURLINFO_EFFECTIVE_URL, &charp);
if(UNEX(res)) {
geterr("EFFECTIVE_URL", res, __LINE__); goto test_cleanup; }
@@ -2406,6 +2441,9 @@ int test(char *URL)
res = curl_easy_getinfo(curl, CURLINFO_FILETIME, &val);
if(UNEX(res)) {
geterr("FILETIME", res, __LINE__); goto test_cleanup; }
+ res = curl_easy_getinfo(curl, CURLINFO_FILETIME_T, &oval);
+ if(UNEX(res)) {
+ geterr("FILETIME_T", res, __LINE__); goto test_cleanup; }
res = curl_easy_getinfo(curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD, &dval);
if(UNEX(res)) {
geterr("CONTENT_LENGTH_DOWNLOAD", res, __LINE__); goto test_cleanup; }
diff --git a/tests/libtest/lib1555.c b/tests/libtest/lib1555.c
new file mode 100644
index 00000000..e4f2255a
--- /dev/null
+++ b/tests/libtest/lib1555.c
@@ -0,0 +1,77 @@
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2015, 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+/*
+ * Verify that some API functions are locked from being called inside callback
+ */
+
+#include "test.h"
+
+#include "memdebug.h"
+
+static CURL *curl;
+
+static int progressCallback(void *arg,
+ double dltotal,
+ double dlnow,
+ double ultotal,
+ double ulnow)
+{
+ CURLcode res = 0;
+ (void)arg;
+ (void)dltotal;
+ (void)dlnow;
+ (void)ultotal;
+ (void)ulnow;
+ res = curl_easy_recv(curl, NULL, 0, NULL);
+ printf("curl_easy_recv returned %d\n", res);
+ res = curl_easy_send(curl, NULL, 0, NULL);
+ printf("curl_easy_send returned %d\n", res);
+
+ return 1;
+}
+
+int test(char *URL)
+{
+ int res = 0;
+
+ global_init(CURL_GLOBAL_ALL);
+
+ easy_init(curl);
+
+ easy_setopt(curl, CURLOPT_URL, URL);
+ easy_setopt(curl, CURLOPT_TIMEOUT, (long)7);
+ easy_setopt(curl, CURLOPT_NOSIGNAL, (long)1);
+ easy_setopt(curl, CURLOPT_PROGRESSFUNCTION, progressCallback);
+ easy_setopt(curl, CURLOPT_PROGRESSDATA, NULL);
+ easy_setopt(curl, CURLOPT_NOPROGRESS, (long)0);
+
+ res = curl_easy_perform(curl);
+
+test_cleanup:
+
+ /* undocumented cleanup sequence - type UA */
+
+ curl_easy_cleanup(curl);
+ curl_global_cleanup();
+
+ return res;
+}
diff --git a/tests/libtest/lib1556.c b/tests/libtest/lib1556.c
new file mode 100644
index 00000000..fa0e60e2
--- /dev/null
+++ b/tests/libtest/lib1556.c
@@ -0,0 +1,78 @@
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "test.h"
+
+#include "testutil.h"
+#include "warnless.h"
+#include "memdebug.h"
+
+struct headerinfo {
+ size_t largest;
+};
+
+static size_t header(void *ptr, size_t size, size_t nmemb, void *stream)
+{
+ size_t headersize = size * nmemb;
+ struct headerinfo *info = (struct headerinfo *)stream;
+ (void)ptr;
+
+ if(headersize > info->largest)
+ /* remember the longest header */
+ info->largest = headersize;
+
+ return nmemb * size;
+}
+
+int test(char *URL)
+{
+ CURLcode code;
+ CURL *curl = NULL;
+ int res = 0;
+ struct headerinfo info = {0};
+
+ global_init(CURL_GLOBAL_ALL);
+
+ easy_init(curl);
+
+ easy_setopt(curl, CURLOPT_HEADERFUNCTION, header);
+ easy_setopt(curl, CURLOPT_HEADERDATA, &info);
+ easy_setopt(curl, CURLOPT_VERBOSE, 1L);
+ easy_setopt(curl, CURLOPT_URL, URL);
+
+ code = curl_easy_perform(curl);
+ if(CURLE_OK != code) {
+ fprintf(stderr, "%s:%d curl_easy_perform() failed, "
+ "with code %d (%s)\n",
+ __FILE__, __LINE__, (int)code, curl_easy_strerror(code));
+ res = TEST_ERR_MAJOR_BAD;
+ goto test_cleanup;
+ }
+
+ printf("Max: %ld\n", (long)info.largest);
+
+test_cleanup:
+
+ curl_easy_cleanup(curl);
+ curl_global_cleanup();
+
+ return res;
+}
diff --git a/tests/libtest/lib517.c b/tests/libtest/lib517.c
index af7b2aa7..e7451907 100644
--- a/tests/libtest/lib517.c
+++ b/tests/libtest/lib517.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -23,117 +23,141 @@
#include "memdebug.h"
-static const char * const dates[]={
- "Sun, 06 Nov 1994 08:49:37 GMT",
- "Sunday, 06-Nov-94 08:49:37 GMT",
- "Sun Nov 6 08:49:37 1994",
- "06 Nov 1994 08:49:37 GMT",
- "06-Nov-94 08:49:37 GMT",
- "Nov 6 08:49:37 1994",
- "06 Nov 1994 08:49:37",
- "06-Nov-94 08:49:37",
- "1994 Nov 6 08:49:37",
- "GMT 08:49:37 06-Nov-94 Sunday",
- "94 6 Nov 08:49:37",
- "1994 Nov 6",
- "06-Nov-94",
- "Sun Nov 6 94",
- "1994.Nov.6",
- "Sun/Nov/6/94/GMT",
- "Sun, 06 Nov 1994 08:49:37 CET",
- "06 Nov 1994 08:49:37 EST",
- "Sun, 12 Sep 2004 15:05:58 -0700",
- "Sat, 11 Sep 2004 21:32:11 +0200",
- "20040912 15:05:58 -0700",
- "20040911 +0200",
- "Thu, 01-Jan-1970 00:59:59 GMT",
- "Thu, 01-Jan-1970 01:00:00 GMT",
-/* "2094 Nov 6", See ../data/test517 for details */
- "Sat, 15-Apr-17 21:01:22 GMT",
- "Thu, 19-Apr-2007 16:00:00 GMT",
- "Wed, 25 Apr 2007 21:02:13 GMT",
- "Thu, 19/Apr\\2007 16:00:00 GMT",
- "Fri, 1 Jan 2010 01:01:50 GMT",
- "Wednesday, 1-Jan-2003 00:00:00 GMT",
- ", 1-Jan-2003 00:00:00 GMT",
- " 1-Jan-2003 00:00:00 GMT",
- "1-Jan-2003 00:00:00 GMT",
- "Wed,18-Apr-07 22:50:12 GMT",
- "WillyWonka , 18-Apr-07 22:50:12 GMT",
- "WillyWonka , 18-Apr-07 22:50:12",
- "WillyWonka , 18-apr-07 22:50:12",
- "Mon, 18-Apr-1977 22:50:13 GMT",
- "Mon, 18-Apr-77 22:50:13 GMT",
- "\"Sat, 15-Apr-17\\\"21:01:22\\\"GMT\"",
- "Partyday, 18- April-07 22:50:12",
- "Partyday, 18 - Apri-07 22:50:12",
- "Wednes, 1-Januar-2003 00:00:00 GMT",
- "Sat, 15-Apr-17 21:01:22",
- "Sat, 15-Apr-17 21:01:22 GMT-2",
- "Sat, 15-Apr-17 21:01:22 GMT BLAH",
- "Sat, 15-Apr-17 21:01:22 GMT-0400",
- "Sat, 15-Apr-17 21:01:22 GMT-0400 (EDT)",
- "Sat, 15-Apr-17 21:01:22 DST",
- "Sat, 15-Apr-17 21:01:22 -0400",
- "Sat, 15-Apr-17 21:01:22 (hello there)",
- "Sat, 15-Apr-17 21:01:22 11:22:33",
- "Sat, 15-Apr-17 ::00 21:01:22",
- "Sat, 15-Apr-17 boink:z 21:01:22",
- "Sat, 15-Apr-17 91:22:33 21:01:22",
- "Thu Apr 18 22:50:12 2007 GMT",
- "22:50:12 Thu Apr 18 2007 GMT",
- "Thu 22:50:12 Apr 18 2007 GMT",
- "Thu Apr 22:50:12 18 2007 GMT",
- "Thu Apr 18 22:50:12 2007 GMT",
- "Thu Apr 18 2007 22:50:12 GMT",
- "Thu Apr 18 2007 GMT 22:50:12",
- "Sat, 15-Apr-17 21:01:22 GMT",
- "15-Sat, Apr-17 21:01:22 GMT",
- "15-Sat, Apr 21:01:22 GMT 17",
- "15-Sat, Apr 21:01:22 GMT 2017",
- "15 Apr 21:01:22 2017",
- "15 17 Apr 21:01:22",
- "Apr 15 17 21:01:22",
- "Apr 15 21:01:22 17",
- "2017 April 15 21:01:22",
- "15 April 2017 21:01:22",
- "98 April 17 21:01:22",
- "Thu, 012-Aug-2008 20:49:07 GMT",
+struct dcheck {
+ const char *input;
+ time_t output;
+};
+
+static struct dcheck dates[] = {
+ {"Sun, 06 Nov 1994 08:49:37 GMT", 784111777 },
+ {"Sunday, 06-Nov-94 08:49:37 GMT", 784111777 },
+ {"Sun Nov 6 08:49:37 1994", 784111777 },
+ {"06 Nov 1994 08:49:37 GMT", 784111777 },
+ {"06-Nov-94 08:49:37 GMT", 784111777 },
+ {"Nov 6 08:49:37 1994", 784111777 },
+ {"06 Nov 1994 08:49:37", 784111777 },
+ {"06-Nov-94 08:49:37", 784111777 },
+ {"1994 Nov 6 08:49:37", 784111777 },
+ {"GMT 08:49:37 06-Nov-94 Sunday", 784111777 },
+ {"94 6 Nov 08:49:37", 784111777 },
+ {"1994 Nov 6", 784080000 },
+ {"06-Nov-94", 784080000 },
+ {"Sun Nov 6 94", 784080000 },
+ {"1994.Nov.6", 784080000 },
+ {"Sun/Nov/6/94/GMT", 784080000 },
+ {"Sun, 06 Nov 1994 08:49:37 CET", 784108177 },
+ {"06 Nov 1994 08:49:37 EST", 784129777 },
+ {"Sun, 12 Sep 2004 15:05:58 -0700", 1095026758 },
+ {"Sat, 11 Sep 2004 21:32:11 +0200", 1094931131 },
+ {"20040912 15:05:58 -0700", 1095026758 },
+ {"20040911 +0200", 1094853600 },
+ {"Thu, 01-Jan-1970 00:59:59 GMT", 3599 },
+ {"Thu, 01-Jan-1970 01:00:00 GMT", 3600 },
+ {"Sat, 15-Apr-17 21:01:22 GMT", 1492290082 },
+ {"Thu, 19-Apr-2007 16:00:00 GMT", 1176998400 },
+ {"Wed, 25 Apr 2007 21:02:13 GMT", 1177534933 },
+ {"Thu, 19/Apr\\2007 16:00:00 GMT", 1176998400 },
+ {"Fri, 1 Jan 2010 01:01:50 GMT", 1262307710 },
+ {"Wednesday, 1-Jan-2003 00:00:00 GMT", 1041379200 },
+ {", 1-Jan-2003 00:00:00 GMT", 1041379200 },
+ {"1-Jan-2003 00:00:00 GMT", 1041379200 },
+ {"1-Jan-2003 00:00:00 GMT", 1041379200 },
+ {"Wed,18-Apr-07 22:50:12 GMT", 1176936612 },
+ {"WillyWonka , 18-Apr-07 22:50:12 GMT", -1 },
+ {"WillyWonka , 18-Apr-07 22:50:12", -1 },
+ {"WillyWonka , 18-apr-07 22:50:12", -1 },
+ {"Mon, 18-Apr-1977 22:50:13 GMT", 230251813 },
+ {"Mon, 18-Apr-77 22:50:13 GMT", 230251813 },
+ {"Sat, 15-Apr-17\"21:01:22\"GMT", 1492290082 },
+ {"Partyday, 18- April-07 22:50:12", -1 },
+ {"Partyday, 18 - Apri-07 22:50:12", -1 },
+ {"Wednes, 1-Januar-2003 00:00:00 GMT", -1 },
+ {"Sat, 15-Apr-17 21:01:22", 1492290082 },
+ {"Sat, 15-Apr-17 21:01:22 GMT-2", 1492290082 },
+ {"Sat, 15-Apr-17 21:01:22 GMT BLAH", 1492290082 },
+ {"Sat, 15-Apr-17 21:01:22 GMT-0400", 1492290082 },
+ {"Sat, 15-Apr-17 21:01:22 GMT-0400 (EDT)", 1492290082 },
+ {"Sat, 15-Apr-17 21:01:22 DST", -1 },
+ {"Sat, 15-Apr-17 21:01:22 -0400", 1492304482 },
+ {"Sat, 15-Apr-17 21:01:22 (hello there)", -1 },
+ {"Sat, 15-Apr-17 21:01:22 11:22:33", -1 },
+ {"Sat, 15-Apr-17 ::00 21:01:22", -1 },
+ {"Sat, 15-Apr-17 boink:z 21:01:22", -1 },
+ {"Sat, 15-Apr-17 91:22:33 21:01:22", -1 },
+ {"Thu Apr 18 22:50:12 2007 GMT", 1176936612 },
+ {"22:50:12 Thu Apr 18 2007 GMT", 1176936612 },
+ {"Thu 22:50:12 Apr 18 2007 GMT", 1176936612 },
+ {"Thu Apr 22:50:12 18 2007 GMT", 1176936612 },
+ {"Thu Apr 18 22:50:12 2007 GMT", 1176936612 },
+ {"Thu Apr 18 2007 22:50:12 GMT", 1176936612 },
+ {"Thu Apr 18 2007 GMT 22:50:12", 1176936612 },
+ {"Sat, 15-Apr-17 21:01:22 GMT", 1492290082 },
+ {"15-Sat, Apr-17 21:01:22 GMT", 1492290082 },
+ {"15-Sat, Apr 21:01:22 GMT 17", 1492290082 },
+ {"15-Sat, Apr 21:01:22 GMT 2017", 1492290082 },
+ {"15 Apr 21:01:22 2017", 1492290082 },
+ {"15 17 Apr 21:01:22", 1492290082 },
+ {"Apr 15 17 21:01:22", 1492290082 },
+ {"Apr 15 21:01:22 17", 1492290082 },
+ {"2017 April 15 21:01:22", -1 },
+ {"15 April 2017 21:01:22", -1 },
+ {"98 April 17 21:01:22", -1 },
+ {"Thu, 012-Aug-2008 20:49:07 GMT", 1218574147 },
+ {"Thu, 999999999999-Aug-2007 20:49:07 GMT", -1 },
+ {"Thu, 12-Aug-2007 20:61:99999999999 GMT", -1 },
+ {"IAintNoDateFool", -1 },
+ {"Thu Apr 18 22:50 2007 GMT", 1176936600 },
+ {"20110623 12:34:56", 1308832496 },
+ {"20110632 12:34:56", -1 },
+ {"20110623 56:34:56", -1 },
+ {"20111323 12:34:56", -1 },
+ {"20110623 12:34:79", -1 },
+ {"Wed, 31 Dec 2008 23:59:60 GMT", 1230768000 },
+ {"20110623 12:3", 1308830580 },
+ {"20110623 1:3", 1308790980 },
+ {"20110623 1:30", 1308792600 },
+ {"20110623 12:12:3", 1308831123 },
+ {"20110623 01:12:3", 1308791523 },
+ {"20110623 01:99:30", -1 },
+ {"Thu, 01-Jan-1970 00:00:00 GMT", 0 },
+ {"Thu, 31-Dec-1969 23:59:58 GMT", -2 },
+ {"Thu, 31-Dec-1969 23:59:59 GMT", 0 }, /* avoids -1 ! */
+#if SIZEOF_TIME_T > 4
+ {"Sun, 06 Nov 2044 08:49:37 GMT", 2362034977 },
+ {"Sun, 06 Nov 3144 08:49:37 GMT", 37074617377 },
+#ifndef HAVE_TIME_T_UNSIGNED
#if 0
- /* leaving out these strings since they differ between 32 and 64 bit
- archs and the test suite has no good way to support two different outputs
- like that */
- "Thu, 12-Aug-31841 20:49:07 GMT",
- "Thu, 12-Aug-9999999999 20:49:07 GMT",
+ /* causes warning on MSVC */
+ {"Sun, 06 Nov 1900 08:49:37 GMT", -2182259423 },
+#endif
+ {"Sun, 06 Nov 1800 08:49:37 GMT", -5337933023 },
+ {"Thu, 01-Jan-1583 00:00:00 GMT", -12212553600 },
+#endif
+ {"Thu, 01-Jan-1499 00:00:00 GMT", -1 },
+#else
+ {"Sun, 06 Nov 2044 08:49:37 GMT", -1 },
+#endif
+#ifndef HAVE_TIME_T_UNSIGNED
+ {"Sun, 06 Nov 1968 08:49:37 GMT", -36342623 },
#endif
- "Thu, 999999999999-Aug-2007 20:49:07 GMT",
- "Thu, 12-Aug-2007 20:61:99999999999 GMT",
- "IAintNoDateFool",
- "Thu Apr 18 22:50 2007 GMT", /* without seconds */
- "20110623 12:34:56",
- "20110632 12:34:56",
- "20110623 56:34:56",
- "20111323 12:34:56",
- "20110623 12:34:79",
- "Wed, 31 Dec 2008 23:59:60 GMT", /* leap second */
- "20110623 12:3",
- "20110623 1:3",
- "20110623 1:30",
- "20110623 12:12:3",
- "20110623 01:12:3",
- "20110623 01:99:30",
- NULL
+ { NULL, 0 }
};
int test(char *URL)
{
int i;
+ int error = 0;
(void)URL; /* not used */
- for(i = 0; dates[i]; i++) {
- printf("%d: %s => %ld\n", i, dates[i], (long)curl_getdate(dates[i], NULL));
+ for(i = 0; dates[i].input; i++) {
+ time_t out = curl_getdate(dates[i].input, NULL);
+ if(out != dates[i].output) {
+ printf("WRONGLY %s => %ld (instead of %ld)\n",
+ dates[i].input, out, dates[i].output);
+ error++;
+ }
}
- return 0;
+ return error;
}
diff --git a/tests/libtest/lib544.c b/tests/libtest/lib544.c
index 1f832d2a..cb1aefc8 100644
--- a/tests/libtest/lib544.c
+++ b/tests/libtest/lib544.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -26,9 +26,12 @@
static char teststring[] =
#ifdef CURL_DOES_CONVERSIONS
/* ASCII representation with escape sequences for non-ASCII platforms */
- "\x54\x68\x69\x73\x00\x20\x69\x73\x20\x74\x65\x73\x74\x20\x62\x69\x6e\x61"
- "\x72\x79\x20\x64\x61\x74\x61\x20\x77\x69\x74\x68\x20\x61\x6e\x20\x65\x6d"
- "\x62\x65\x64\x64\x65\x64\x20\x4e\x55\x4c\x20\x62\x79\x74\x65\x0a";
+{ '\x54', '\x68', '\x69', '\x73', '\x00', '\x20', '\x69', '\x73', '\x20',
+ '\x74', '\x65', '\x73', '\x74', '\x20', '\x62', '\x69', '\x6e', '\x61',
+ '\x72', '\x79', '\x20', '\x64', '\x61', '\x74', '\x61', '\x20', '\x77',
+ '\x69', '\x74', '\x68', '\x20', '\x61', '\x6e', '\x20', '\x65', '\x6d',
+ '\x62', '\x65', '\x64', '\x64', '\x65', '\x64', '\x20', '\x4e', '\x55',
+ '\x4c'};
#else
{ 'T', 'h', 'i', 's', '\0', ' ', 'i', 's', ' ', 't', 'e', 's', 't', ' ',
'b', 'i', 'n', 'a', 'r', 'y', ' ', 'd', 'a', 't', 'a', ' ',
diff --git a/tests/libtest/lib555.c b/tests/libtest/lib555.c
index fc71bb64..c887b56f 100644
--- a/tests/libtest/lib555.c
+++ b/tests/libtest/lib555.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -35,7 +35,15 @@
#define TEST_HANG_TIMEOUT 60 * 1000
-#define UPLOADTHIS "this is the blurb we want to upload\n"
+static const char uploadthis[] =
+#ifdef CURL_DOES_CONVERSIONS
+ /* ASCII representation with escape sequences for non-ASCII platforms */
+ "\x74\x68\x69\x73\x20\x69\x73\x20\x74\x68\x65\x20\x62\x6c\x75\x72"
+ "\x62\x20\x77\x65\x20\x77\x61\x6e\x74\x20\x74\x6f\x20\x75\x70\x6c"
+ "\x6f\x61\x64\x0a";
+#else
+ "this is the blurb we want to upload\n";
+#endif
static size_t readcallback(void *ptr,
size_t size,
@@ -51,10 +59,10 @@ static size_t readcallback(void *ptr,
}
(*counter)++; /* bump */
- if(size * nmemb > strlen(UPLOADTHIS)) {
+ if(size * nmemb > strlen(uploadthis)) {
fprintf(stderr, "READ!\n");
- strcpy(ptr, UPLOADTHIS);
- return strlen(UPLOADTHIS);
+ strcpy(ptr, uploadthis);
+ return strlen(uploadthis);
}
fprintf(stderr, "READ NOT FINE!\n");
return 0;
@@ -98,13 +106,9 @@ int test(char *URL)
easy_setopt(curl, CURLOPT_READDATA, &counter);
/* We CANNOT do the POST fine without setting the size (or choose
chunked)! */
- easy_setopt(curl, CURLOPT_POSTFIELDSIZE, (long)strlen(UPLOADTHIS));
+ easy_setopt(curl, CURLOPT_POSTFIELDSIZE, (long)strlen(uploadthis));
easy_setopt(curl, CURLOPT_POST, 1L);
-#ifdef CURL_DOES_CONVERSIONS
- /* Convert the POST data to ASCII. */
- easy_setopt(curl, CURLOPT_TRANSFERTEXT, 1L);
-#endif
easy_setopt(curl, CURLOPT_PROXY, libtest_arg2);
easy_setopt(curl, CURLOPT_PROXYUSERPWD, libtest_arg3);
easy_setopt(curl, CURLOPT_PROXYAUTH,
diff --git a/tests/libtest/lib560.c b/tests/libtest/lib560.c
index 0093ea11..16045e6d 100644
--- a/tests/libtest/lib560.c
+++ b/tests/libtest/lib560.c
@@ -31,7 +31,7 @@
* Simply download a HTTPS file!
*
* This test was added after the HTTPS-using-multi-interface with OpenSSL
- * regression of 7.19.1 to hopefully prevent this embarassing mistake from
+ * regression of 7.19.1 to hopefully prevent this embarrassing mistake from
* appearing again... Unfortunately the bug wasn't triggered by this test,
* which presumably is because the connect to a local server is too
* fast/different compared to the real/distant servers we saw the bug happen
diff --git a/tests/libtest/lib655.c b/tests/libtest/lib655.c
new file mode 100644
index 00000000..8777b99e
--- /dev/null
+++ b/tests/libtest/lib655.c
@@ -0,0 +1,112 @@
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "test.h"
+
+#include "memdebug.h"
+
+static const char *TEST_DATA_STRING = "Test data";
+static int cb_count = 0;
+
+static int
+resolver_alloc_cb_fail(void *resolver_state, void *reserved, void *userdata)
+{
+ (void)resolver_state;
+ (void)reserved;
+
+ cb_count++;
+ if(strcmp(userdata, TEST_DATA_STRING)) {
+ fprintf(stderr, "Invalid test data received");
+ exit(1);
+ }
+
+ return 1;
+}
+
+static int
+resolver_alloc_cb_pass(void *resolver_state, void *reserved, void *userdata)
+{
+ (void)resolver_state;
+ (void)reserved;
+
+ cb_count++;
+ if(strcmp(userdata, TEST_DATA_STRING)) {
+ fprintf(stderr, "Invalid test data received");
+ exit(1);
+ }
+
+ return 0;
+}
+
+int test(char *URL)
+{
+ CURL *curl;
+ CURLcode res = CURLE_OK;
+
+ if(curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) {
+ fprintf(stderr, "curl_global_init() failed\n");
+ return TEST_ERR_MAJOR_BAD;
+ }
+ curl = curl_easy_init();
+ if(!curl) {
+ fprintf(stderr, "curl_easy_init() failed\n");
+ res = TEST_ERR_MAJOR_BAD;
+ goto test_cleanup;
+ }
+
+ /* First set the URL that is about to receive our request. */
+ test_setopt(curl, CURLOPT_URL, URL);
+
+ test_setopt(curl, CURLOPT_RESOLVER_START_DATA, TEST_DATA_STRING);
+ test_setopt(curl, CURLOPT_RESOLVER_START_FUNCTION, resolver_alloc_cb_fail);
+
+ /* this should fail */
+ res = curl_easy_perform(curl);
+ if(res != CURLE_COULDNT_RESOLVE_HOST) {
+ fprintf(stderr, "curl_easy_perform should have returned "
+ "CURLE_COULDNT_RESOLVE_HOST but instead returned error %d\n", res);
+ if(res == CURLE_OK)
+ res = TEST_ERR_FAILURE;
+ goto test_cleanup;
+ }
+
+ test_setopt(curl, CURLOPT_RESOLVER_START_FUNCTION, resolver_alloc_cb_pass);
+
+ /* this should succeed */
+ res = curl_easy_perform(curl);
+ if(res) {
+ fprintf(stderr, "curl_easy_perform failed.\n");
+ goto test_cleanup;
+ }
+
+ if(cb_count != 2) {
+ fprintf(stderr, "Unexpected number of callbacks: %d\n", cb_count);
+ res = TEST_ERR_FAILURE;
+ goto test_cleanup;
+ }
+
+test_cleanup:
+ /* always cleanup */
+ curl_easy_cleanup(curl);
+ curl_global_cleanup();
+
+ return (int)res;
+}
diff --git a/tests/libtest/mk-lib1521.pl b/tests/libtest/mk-lib1521.pl
index 6ded4722..9771cf57 100644
--- a/tests/libtest/mk-lib1521.pl
+++ b/tests/libtest/mk-lib1521.pl
@@ -71,7 +71,7 @@ struct data {
/* Unexpected error.
CURLE_NOT_BUILT_IN - means disabled at build
CURLE_UNKNOWN_OPTION - means no such option (anymore?)
- CURLE_SSL_ENGINE_NOTFOUND - set unkown ssl engine
+ CURLE_SSL_ENGINE_NOTFOUND - set unknown ssl engine
CURLE_UNSUPPORTED_PROTOCOL - set bad HTTP version
CURLE_BAD_FUNCTION_ARGUMENT - unsupported value
*/
@@ -132,6 +132,7 @@ static curl_chunk_end_callback chunk_end_cb;
static curl_fnmatch_callback fnmatch_cb;
static curl_closesocket_callback closesocketcb;
static curl_xferinfo_callback xferinfocb;
+static curl_resolver_start_callback resolver_start_cb;
int test(char *URL)
{
diff --git a/tests/nroff-scan.pl b/tests/nroff-scan.pl
index 393068cd..6121d4c8 100644
--- a/tests/nroff-scan.pl
+++ b/tests/nroff-scan.pl
@@ -69,7 +69,7 @@ sub file {
if($str =~ /((libcurl|curl)([^ ]*))\(3\)/i) {
my $man = "$1.3";
if(!manpresent($man)) {
- print STDERR "error: $f:$line: refering to non-existing man page $man\n";
+ print STDERR "error: $f:$line: referring to non-existing man page $man\n";
$errors++;
}
if($pre ne "I") {
@@ -87,7 +87,7 @@ sub file {
while($i =~ s/((lib|)curl([^ ]*)) *\"\(3\)(,|) *\" *//i ) {
my $man = "$1.3";
if(!manpresent($man)) {
- print STDERR "error: $f:$line: refering to non-existing man page $man\n";
+ print STDERR "error: $f:$line: referring to non-existing man page $man\n";
$errors++;
}
}
diff --git a/tests/pathhelp.pm b/tests/pathhelp.pm
index 10a87aaf..bd91c91b 100644
--- a/tests/pathhelp.pm
+++ b/tests/pathhelp.pm
@@ -451,7 +451,7 @@ sub build_sys_abs_path {
return $path;
}
elsif(should_use_cygpath()) {
- # 'cygpath' is avalable - use it.
+ # 'cygpath' is available - use it.
my $has_final_slash = ($path =~ m{[\\/]$});
diff --git a/tests/python_dependencies/impacket/spnego.py b/tests/python_dependencies/impacket/spnego.py
index f177d18f..43e65fb5 100644
--- a/tests/python_dependencies/impacket/spnego.py
+++ b/tests/python_dependencies/impacket/spnego.py
@@ -226,7 +226,7 @@ class SPNEGO_NegTokenResp:
raise Exception('OID tag not found %x' % next_byte)
decode_data2 = decode_data2[1:]
item, total_bytes2 = asn1decode(decode_data2)
- self['SuportedMech'] = item
+ self['SupportedMech'] = item
decode_data = decode_data[1:]
decode_data = decode_data[total_bytes:]
diff --git a/tests/runtests.1 b/tests/runtests.1
index f0a36866..cd7d3848 100644
--- a/tests/runtests.1
+++ b/tests/runtests.1
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH runtests.pl 1 "May 05, 2017" "Curl 7.58.0" "runtests"
+.TH runtests.pl 1 "May 05, 2017" "Curl 7.59.0" "runtests"
.SH NAME
runtests.pl \- run one or more test cases
diff --git a/tests/runtests.pl b/tests/runtests.pl
index d68c20f1..d6aa5cac 100755
--- a/tests/runtests.pl
+++ b/tests/runtests.pl
@@ -2772,6 +2772,7 @@ sub checksystem {
}
if ($libcurl =~ /winssl/i) {
$has_winssl=1;
+ $has_sslpinning=1;
$ssllib="WinSSL";
}
elsif ($libcurl =~ /openssl/i) {
diff --git a/tests/server/CMakeLists.txt b/tests/server/CMakeLists.txt
index cfc1434c..73841027 100644
--- a/tests/server/CMakeLists.txt
+++ b/tests/server/CMakeLists.txt
@@ -20,7 +20,7 @@ function(SETUP_EXECUTABLE TEST_NAME) # ARGN are the files in the test
target_link_libraries(${TEST_NAME} ${CURL_LIBS})
# Test servers simply are standalone programs that do not use libcurl
- # library. For convinience and to ease portability of these servers,
+ # library. For convenience and to ease portability of these servers,
# some source code files from the libcurl subdirectory are also used
# to build the servers. In order to achieve proper linkage of these
# files on Win32 targets it is necessary to build the test servers
diff --git a/tests/server/Makefile.inc b/tests/server/Makefile.inc
index 208aa0fc..c6233aff 100644
--- a/tests/server/Makefile.inc
+++ b/tests/server/Makefile.inc
@@ -4,13 +4,15 @@ CURLX_SRCS = \
../../lib/mprintf.c \
../../lib/nonblock.c \
../../lib/strtoofft.c \
- ../../lib/warnless.c
+ ../../lib/warnless.c \
+ ../../lib/curl_ctype.c
CURLX_HDRS = \
../../lib/curlx.h \
../../lib/nonblock.h \
../../lib/strtoofft.h \
- ../../lib/warnless.h
+ ../../lib/warnless.h \
+ ../../lib/curl_ctype.h
USEFUL = \
getpart.c \
diff --git a/tests/server/sockfilt.c b/tests/server/sockfilt.c
index ceb04d8e..40f5bdb4 100644
--- a/tests/server/sockfilt.c
+++ b/tests/server/sockfilt.c
@@ -1050,7 +1050,7 @@ static bool juggle(curl_socket_t *sockfdp,
Commands:
- DATA - plain pass-thru data
+ DATA - plain pass-through data
*/
if(!read_stdin(buffer, 5))
diff --git a/tests/server/sws.c b/tests/server/sws.c
index 1d47375a..10a87746 100644
--- a/tests/server/sws.c
+++ b/tests/server/sws.c
@@ -1347,7 +1347,7 @@ static curl_socket_t connect_to(const char *ipaddr, unsigned short port)
serverfd = socket(socket_domain, SOCK_STREAM, 0);
if(CURL_SOCKET_BAD == serverfd) {
error = SOCKERRNO;
- logmsg("Error creating socket for server conection: (%d) %s",
+ logmsg("Error creating socket for server connection: (%d) %s",
error, strerror(error));
return CURL_SOCKET_BAD;
}
@@ -1358,7 +1358,7 @@ static curl_socket_t connect_to(const char *ipaddr, unsigned short port)
curl_socklen_t flag = 1;
if(0 != setsockopt(serverfd, IPPROTO_TCP, TCP_NODELAY,
(void *)&flag, sizeof(flag)))
- logmsg("====> TCP_NODELAY for server conection failed");
+ logmsg("====> TCP_NODELAY for server connection failed");
}
#endif
@@ -1423,7 +1423,7 @@ static curl_socket_t connect_to(const char *ipaddr, unsigned short port)
* either end.
*
* When doing FTP through a CONNECT proxy, we expect that the data connection
- * will be setup while the first connect is still being kept up. Therefor we
+ * will be setup while the first connect is still being kept up. Therefore we
* must accept a new connection and deal with it appropriately.
*/
@@ -1567,7 +1567,7 @@ static void http_connect(curl_socket_t *infdp,
curl_socklen_t flag = 1;
if(0 != setsockopt(datafd, IPPROTO_TCP, TCP_NODELAY,
(void *)&flag, sizeof(flag)))
- logmsg("====> TCP_NODELAY for client DATA conection failed");
+ logmsg("====> TCP_NODELAY for client DATA connection failed");
}
#endif
req2.pipelining = FALSE;
diff --git a/tests/testcurl.1 b/tests/testcurl.1
index 4ba7a7ae..31970974 100644
--- a/tests/testcurl.1
+++ b/tests/testcurl.1
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH testcurl.pl 1 "October 22, 2016" "Curl 7.58.0" "testcurl"
+.TH testcurl.pl 1 "October 22, 2016" "Curl 7.59.0" "testcurl"
.SH NAME
testcurl.pl \- (automatically) test curl
diff --git a/tests/unit/Makefile.am b/tests/unit/Makefile.am
index 61b72c0d..fab82d2b 100644
--- a/tests/unit/Makefile.am
+++ b/tests/unit/Makefile.am
@@ -5,7 +5,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
@@ -50,6 +50,8 @@ endif
EXTRA_DIST = Makefile.inc CMakeLists.txt
+CFLAGS += @CURL_CFLAG_EXTRAS@
+
# Prevent LIBS from being used for all link targets
LIBS = $(BLANK_AT_MAKETIME)
diff --git a/tests/unit/Makefile.inc b/tests/unit/Makefile.inc
index bfb5c4d4..9a19f51d 100644
--- a/tests/unit/Makefile.inc
+++ b/tests/unit/Makefile.inc
@@ -9,7 +9,7 @@ UNITPROGS = unit1300 unit1301 unit1302 unit1303 unit1304 unit1305 unit1307 \
unit1308 unit1309 unit1323 \
unit1330 unit1394 unit1395 unit1396 unit1397 unit1398 \
unit1399 \
- unit1600 unit1601 unit1602 unit1603 unit1604 unit1605 unit1606
+ unit1600 unit1601 unit1602 unit1603 unit1604 unit1605 unit1606 unit1607
unit1300_SOURCES = unit1300.c $(UNITFILES)
unit1300_CPPFLAGS = $(AM_CPPFLAGS)
@@ -85,3 +85,6 @@ unit1605_CPPFLAGS = $(AM_CPPFLAGS)
unit1606_SOURCES = unit1606.c $(UNITFILES)
unit1606_CPPFLAGS = $(AM_CPPFLAGS)
+
+unit1607_SOURCES = unit1607.c $(UNITFILES)
+unit1607_CPPFLAGS = $(AM_CPPFLAGS)
diff --git a/tests/unit/unit1307.c b/tests/unit/unit1307.c
index 266eed39..0d2257bf 100644
--- a/tests/unit/unit1307.c
+++ b/tests/unit/unit1307.c
@@ -25,7 +25,6 @@
#define MATCH CURL_FNMATCH_MATCH
#define NOMATCH CURL_FNMATCH_NOMATCH
-#define RE_ERR CURL_FNMATCH_FAIL
struct testcase {
const char *pattern;
@@ -36,8 +35,8 @@ struct testcase {
static const struct testcase tests[] = {
/* brackets syntax */
{ "\\[", "[", MATCH },
- { "[", "[", RE_ERR },
- { "[]", "[]", RE_ERR },
+ { "[", "[", MATCH },
+ { "[]", "[]", MATCH },
{ "[][]", "[", MATCH },
{ "[][]", "]", MATCH },
{ "[[]", "[", MATCH },
@@ -49,6 +48,8 @@ static const struct testcase tests[] = {
{ "[][[[]", "[", MATCH },
{ "[[]", "]", NOMATCH },
+ { "[a@]", "a", MATCH },
+
{ "[a-z]", "a", MATCH },
{ "[a-z]", "A", NOMATCH },
{ "?[a-z]", "?Z", NOMATCH },
@@ -77,6 +78,7 @@ static const struct testcase tests[] = {
{ "[][?*-]", "*", MATCH },
{ "[][?*-]", "-", MATCH },
{ "[]?*-]", "-", MATCH },
+ { "[\xFF]", "\xFF", MATCH },
{ "?/b/c", "a/b/c", MATCH },
{ "^_{}~", "^_{}~", MATCH },
{ "!#%+,-./01234567889", "!#%+,-./01234567889", MATCH },
@@ -97,8 +99,10 @@ static const struct testcase tests[] = {
{ "*[^a].t?t", "a.txt", NOMATCH },
{ "*[^a].t?t", "ba.txt", NOMATCH },
{ "*[^a].t?t", "ab.txt", MATCH },
- { "*[^a]", "", MATCH },
- { "[!ΓΏ]", "", MATCH },
+ { "*[^a]", "", NOMATCH },
+ { "[!\xFF]", "", NOMATCH },
+ { "[!\xFF]", "\xFF", NOMATCH },
+ { "[!\xFF]", "a", MATCH },
{ "[!?*[]", "?", NOMATCH },
{ "[!!]", "!", NOMATCH },
{ "[!!]", "x", MATCH },
@@ -130,6 +134,8 @@ static const struct testcase tests[] = {
{ "[^[:blank:]]", "\t", NOMATCH },
{ "[^[:print:]]", "\10", MATCH },
{ "[[:lower:]][[:lower:]]", "ll", MATCH },
+ { "[[:foo:]]", "bar", NOMATCH },
+ { "[[:foo:]]", "f]", MATCH },
{ "Curl[[:blank:]];-)", "Curl ;-)", MATCH },
{ "*[[:blank:]]*", " ", MATCH },
@@ -167,7 +173,7 @@ static const struct testcase tests[] = {
{ "x", "", NOMATCH },
/* backslash */
- { "\\", "\\", RE_ERR },
+ { "\\", "\\", MATCH },
{ "\\\\", "\\", MATCH },
{ "\\\\", "\\\\", NOMATCH },
{ "\\?", "?", MATCH },
diff --git a/tests/unit/unit1309.c b/tests/unit/unit1309.c
index c53cbcbc..9a07c933 100644
--- a/tests/unit/unit1309.c
+++ b/tests/unit/unit1309.c
@@ -22,6 +22,7 @@
#include "curlcheck.h"
#include "splay.h"
+#include "warnless.h"
static CURLcode unit_setup(void)
@@ -86,7 +87,8 @@ UNITTEST_START
key.tv_usec = (541*i)%1023;
payload = (size_t) key.tv_usec;
- nodes[i].payload = (void *)payload; /* for simplicity */
+ /* for simplicity */
+ nodes[i].payload = CURLX_INTEGER_TO_POINTER_CAST(payload);
root = Curl_splayinsert(key, root, &nodes[i]);
}
@@ -98,7 +100,7 @@ UNITTEST_START
printf("Tree look:\n");
splayprint(root, 0, 1);
printf("remove pointer %d, payload %ld\n", rem,
- (long)(nodes[rem].payload));
+ CURLX_POINTER_TO_INTEGER_CAST(nodes[rem].payload));
rc = Curl_splayremovebyaddr(root, &nodes[rem], &root);
if(rc) {
/* failed! */
@@ -119,7 +121,8 @@ UNITTEST_START
/* add some nodes with the same key */
for(j = 0; j <= i % 3; j++) {
size_t payload = key.tv_usec*10 + j;
- nodes[i * 3 + j].payload = (void *)payload; /* for simplicity */
+ /* for simplicity */
+ nodes[i * 3 + j].payload = CURLX_INTEGER_TO_POINTER_CAST(payload);
root = Curl_splayinsert(key, root, &nodes[i * 3 + j]);
}
}
@@ -130,8 +133,9 @@ UNITTEST_START
tv_now.tv_usec = i;
root = Curl_splaygetbest(tv_now, root, &removed);
while(removed != NULL) {
- printf("removed payload %ld[%ld]\n", (long)(removed->payload) / 10,
- (long)(removed->payload) % 10);
+ printf("removed payload %ld[%ld]\n",
+ CURLX_POINTER_TO_INTEGER_CAST(removed->payload) / 10,
+ CURLX_POINTER_TO_INTEGER_CAST(removed->payload) % 10);
root = Curl_splaygetbest(tv_now, root, &removed);
}
}
diff --git a/tests/unit/unit1607.c b/tests/unit/unit1607.c
new file mode 100644
index 00000000..71c59939
--- /dev/null
+++ b/tests/unit/unit1607.c
@@ -0,0 +1,213 @@
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "curlcheck.h"
+
+#include "urldata.h"
+#include "connect.h"
+#include "share.h"
+
+#include "memdebug.h" /* LAST include file */
+
+static struct Curl_easy *easy;
+static struct curl_hash *hostcache;
+
+static void unit_stop(void)
+{
+ curl_easy_cleanup(easy);
+ curl_global_cleanup();
+}
+
+static CURLcode unit_setup(void)
+{
+ int res = CURLE_OK;
+
+ global_init(CURL_GLOBAL_ALL);
+
+ easy = curl_easy_init();
+ if(!easy) {
+ curl_global_cleanup();
+ return CURLE_OUT_OF_MEMORY;
+ }
+
+ hostcache = Curl_global_host_cache_init();
+ if(!hostcache) {
+ unit_stop();
+ return CURLE_OUT_OF_MEMORY;
+ }
+
+ return res;
+}
+
+struct testcase {
+ /* host:port:address[,address]... */
+ const char *optval;
+
+ /* lowercase host and port to retrieve the addresses from hostcache */
+ const char *host;
+ int port;
+
+ /* 0 to 9 addresses expected from hostcache */
+ const char *address[10];
+};
+
+
+/* In builds without IPv6 support CURLOPT_RESOLVE should skip over those
+ addresses, so we have to do that as well. */
+static const char skip = 0;
+#ifdef ENABLE_IPV6
+#define IPV6ONLY(x) x
+#else
+#define IPV6ONLY(x) &skip
+#endif
+
+/* CURLOPT_RESOLVE address parsing tests */
+static const struct testcase tests[] = {
+ /* spaces aren't allowed, for now */
+ { "test.com:80:127.0.0.1, 127.0.0.2",
+ "test.com", 80, { NULL, }
+ },
+ { "TEST.com:80:,,127.0.0.1,,,127.0.0.2,,,,::1,,,",
+ "test.com", 80, { "127.0.0.1", "127.0.0.2", IPV6ONLY("::1"), }
+ },
+ { "test.com:80:::1,127.0.0.1",
+ "test.com", 80, { IPV6ONLY("::1"), "127.0.0.1", }
+ },
+ { "test.com:80:[::1],127.0.0.1",
+ "test.com", 80, { IPV6ONLY("::1"), "127.0.0.1", }
+ },
+ { "test.com:80:::1",
+ "test.com", 80, { IPV6ONLY("::1"), }
+ },
+ { "test.com:80:[::1]",
+ "test.com", 80, { IPV6ONLY("::1"), }
+ },
+ { "test.com:80:127.0.0.1",
+ "test.com", 80, { "127.0.0.1", }
+ },
+ { "test.com:80:,127.0.0.1",
+ "test.com", 80, { "127.0.0.1", }
+ },
+ { "test.com:80:127.0.0.1,",
+ "test.com", 80, { "127.0.0.1", }
+ },
+ { "test.com:0:127.0.0.1",
+ "test.com", 0, { "127.0.0.1", }
+ },
+};
+
+UNITTEST_START
+ int i;
+ int testnum = sizeof(tests) / sizeof(struct testcase);
+
+ for(i = 0; i < testnum; ++i, curl_easy_reset(easy)) {
+ int j;
+ int addressnum = sizeof tests[i].address / sizeof *tests[i].address;
+ struct Curl_addrinfo *addr;
+ struct Curl_dns_entry *dns;
+ struct curl_slist *list;
+ void *entry_id;
+ bool problem = false;
+
+ Curl_hostcache_clean(easy, hostcache);
+ easy->dns.hostcache = hostcache;
+ easy->dns.hostcachetype = HCACHE_GLOBAL;
+
+ list = curl_slist_append(NULL, tests[i].optval);
+ if(!list)
+ goto unit_test_abort;
+ curl_easy_setopt(easy, CURLOPT_RESOLVE, list);
+
+ Curl_loadhostpairs(easy);
+
+ entry_id = (void *)aprintf("%s:%d", tests[i].host, tests[i].port);
+ if(!entry_id) {
+ curl_slist_free_all(list);
+ goto unit_test_abort;
+ }
+ dns = Curl_hash_pick(easy->dns.hostcache, entry_id, strlen(entry_id) + 1);
+ free(entry_id);
+ entry_id = NULL;
+
+ addr = dns ? dns->addr : NULL;
+
+ for(j = 0; j < addressnum; ++j) {
+ long port = 0;
+ char ipaddress[MAX_IPADR_LEN] = {0};
+
+ if(!addr && !tests[i].address[j])
+ break;
+
+ if(tests[i].address[j] == &skip)
+ continue;
+
+ if(addr && !Curl_getaddressinfo(addr->ai_addr,
+ ipaddress, &port)) {
+ fprintf(stderr, "%s:%d tests[%d] failed. getaddressinfo failed.\n",
+ __FILE__, __LINE__, i);
+ problem = true;
+ break;
+ }
+
+ if(addr && !tests[i].address[j]) {
+ fprintf(stderr, "%s:%d tests[%d] failed. the retrieved addr "
+ "is %s but tests[%d].address[%d] is NULL.\n",
+ __FILE__, __LINE__, i, ipaddress, i, j);
+ problem = true;
+ break;
+ }
+
+ if(!addr && tests[i].address[j]) {
+ fprintf(stderr, "%s:%d tests[%d] failed. the retrieved addr "
+ "is NULL but tests[%d].address[%d] is %s.\n",
+ __FILE__, __LINE__, i, i, j, tests[i].address[j]);
+ problem = true;
+ break;
+ }
+
+ if(!curl_strequal(ipaddress, tests[i].address[j])) {
+ fprintf(stderr, "%s:%d tests[%d] failed. the retrieved addr "
+ "%s is not equal to tests[%d].address[%d] %s.\n",
+ __FILE__, __LINE__, i, ipaddress, i, j, tests[i].address[j]);
+ problem = true;
+ break;
+ }
+
+ if(port != tests[i].port) {
+ fprintf(stderr, "%s:%d tests[%d] failed. the retrieved port "
+ "for tests[%d].address[%d] is %ld but tests[%d].port is %d.\n",
+ __FILE__, __LINE__, i, i, j, port, i, tests[i].port);
+ problem = true;
+ break;
+ }
+
+ addr = addr->ai_next;
+ }
+
+ Curl_hostcache_clean(easy, easy->dns.hostcache);
+ curl_slist_free_all(list);
+
+ if(problem) {
+ unitfail++;
+ continue;
+ }
+ }
+UNITTEST_STOP
diff --git a/winbuild/Makefile.vc b/winbuild/Makefile.vc
index cec9b14e..46919fc2 100644
--- a/winbuild/Makefile.vc
+++ b/winbuild/Makefile.vc
@@ -248,12 +248,12 @@ $(MODE):
@SET DIROBJ=$(LIBCURL_DIROBJ)
@SET MACRO_NAME=LIBCURL_OBJS
@SET OUTFILE=LIBCURL_OBJS.inc
- @gen_resp_file.bat $(LIBCURL_OBJS)
+ @CALL gen_resp_file.bat $(LIBCURL_OBJS)
@SET DIROBJ=$(CURL_DIROBJ)
@SET MACRO_NAME=CURL_OBJS
@SET OUTFILE=CURL_OBJS.inc
- @gen_resp_file.bat $(CURL_OBJS)
+ @CALL gen_resp_file.bat $(CURL_OBJS)
@SET CONFIG_NAME_LIB=$(CONFIG_NAME_LIB)
@SET MACHINE=$(MACHINE)
diff --git a/winbuild/MakefileBuild.vc b/winbuild/MakefileBuild.vc
index 32790ff8..28500aeb 100644
--- a/winbuild/MakefileBuild.vc
+++ b/winbuild/MakefileBuild.vc
@@ -45,6 +45,11 @@
CFGSET=FALSE
WINBUILD_DIR=`cd`
+
+# Utilities.
+# If a path is required that contains characters such as space, quote the path.
+MT = mt.exe
+RC = rc.exe
ZIP = zip.exe
# Allow changing C compiler via environment variable CC (default cl.exe)
@@ -68,7 +73,7 @@ LNKDLL = link.exe /DLL
LNKLIB = link.exe /lib
CFLAGS_PDB = /Zi
-LFLAGS_PDB = /incremental:no /opt:ref,icf
+LFLAGS_PDB = /incremental:no /opt:ref,icf /DEBUG
CFLAGS_LIBCURL_STATIC = /DCURL_STATICLIB
@@ -176,12 +181,26 @@ CARES = static
CARES_CFLAGS = /DUSE_ARES /I"$(DEVEL_INCLUDE)/cares"
!ENDIF
+# Depending on how zlib is built the libraries have different names, we
+# try to handle them all.
!IF "$(WITH_ZLIB)"=="dll"
+!IF EXISTS("$(DEVEL_LIB)\zlibwapi.lib")
+ZLIB_LIBS = zlibwapi.lib
+!ELSEIF EXISTS("$(DEVEL_LIB)\zdll.lib")
+ZLIB_LIBS = zdll.lib
+!ELSE
ZLIB_LIBS = zlib.lib
+!ENDIF
USE_ZLIB = true
ZLIB = dll
!ELSEIF "$(WITH_ZLIB)"=="static"
+!IF EXISTS("$(DEVEL_LIB)\zlibstat.lib")
+ZLIB_LIBS = zlibstat.lib
+!ELSEIF EXISTS("$(DEVEL_LIB)\zlib.lib")
+ZLIB_LIBS = zlib.lib
+!ELSE
ZLIB_LIBS = zlib_a.lib
+!ENDIF
USE_ZLIB = true
ZLIB = static
!ENDIF
@@ -267,7 +286,7 @@ GEN_PDB = true
!IFDEF EMBED_MANIFEST
-MANIFESTTOOL = mt -manifest $(DIRDIST)\bin\$(PROGRAM_NAME).manifest -outputresource:$(DIRDIST)\bin\$(PROGRAM_NAME);1
+MANIFESTTOOL = $(MT) -manifest $(DIRDIST)\bin\$(PROGRAM_NAME).manifest -outputresource:$(DIRDIST)\bin\$(PROGRAM_NAME);1
!ENDIF
# Runtime library configuration
@@ -496,7 +515,7 @@ $(CURL_DIROBJ):
$(CURL_CC) $(CFLAGS) /Fo"$@" $<
$(LIB_DIROBJ)\libcurl.res: $(LIBCURL_SRC_DIR)\libcurl.rc
- rc $(RC_FLAGS)
+ $(RC) $(RC_FLAGS)
#
# curl.exe
@@ -520,7 +539,8 @@ CURL_LIBCURL_LIBNAME=$(LIB_NAME_IMP)
CURL_FROM_LIBCURL=$(CURL_DIROBJ)\tool_hugehelp.obj \
$(CURL_DIROBJ)\nonblock.obj \
$(CURL_DIROBJ)\strtoofft.obj \
- $(CURL_DIROBJ)\warnless.obj
+ $(CURL_DIROBJ)\warnless.obj \
+ $(CURL_DIROBJ)\curl_ctype.obj
$(PROGRAM_NAME): $(CURL_DIROBJ) $(CURL_FROM_LIBCURL) $(EXE_OBJS)
$(CURL_LINK) $(CURL_LFLAGS) $(CURL_LIBCURL_LIBNAME) $(WIN_LIBS) $(CURL_FROM_LIBCURL) $(EXE_OBJS)
@@ -537,6 +557,8 @@ $(CURL_DIROBJ)\strtoofft.obj: ../lib/strtoofft.c
$(CURL_CC) $(CURL_CFLAGS) /Fo"$@" ../lib/strtoofft.c
$(CURL_DIROBJ)\warnless.obj: ../lib/warnless.c
$(CURL_CC) $(CURL_CFLAGS) /Fo"$@" ../lib/warnless.c
+$(CURL_DIROBJ)\curl_ctype.obj: ../lib/curl_ctype.c
+ $(CURL_CC) $(CURL_CFLAGS) /Fo"$@" ../lib/curl_ctype.c
$(CURL_DIROBJ)\curl.res: $(CURL_SRC_DIR)\curl.rc
rc $(CURL_RC_FLAGS)