summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRamakrishnan Muthukrishnan <vu3rdd@gmail.com>2010-12-15 23:38:37 +0530
committerRamakrishnan Muthukrishnan <vu3rdd@gmail.com>2010-12-15 23:38:37 +0530
commit1a52155bfb95577aabe5a7daad115a9fa8b2937b (patch)
tree38f3b47ec5f58c9a38fe9d95dc1c027c75365c51
parente19352611af78808a2709e0dc8c1ab1d692ac989 (diff)
Imported Upstream version 7.21.3
-rw-r--r--CHANGES1219
-rw-r--r--Makefile22
-rw-r--r--RELEASE-NOTES96
-rw-r--r--acinclude.m441
-rwxr-xr-xbuildconf7
-rwxr-xr-xconfigure314
-rw-r--r--configure.ac49
-rw-r--r--docs/FAQ5
-rw-r--r--docs/THANKS10
-rw-r--r--docs/curl-config.pdfbin5991 -> 5991 bytes
-rw-r--r--docs/curl.126
-rw-r--r--docs/curl.html16
-rw-r--r--docs/curl.pdfbin82603 -> 83314 bytes
-rw-r--r--docs/examples/Makefile.in20
-rw-r--r--docs/examples/Makefile.inc6
-rw-r--r--docs/examples/chkspeed.c2
-rw-r--r--docs/examples/fopen.c746
-rw-r--r--docs/examples/multi-app.c8
-rw-r--r--docs/examples/multi-post.c1
-rw-r--r--docs/examples/smooth-gtk-thread.c217
-rw-r--r--docs/examples/smtp-multi.c192
-rwxr-xr-xdocs/examples/version-check.pl105
-rw-r--r--docs/libcurl/curl_easy_cleanup.pdfbin3895 -> 3895 bytes
-rw-r--r--docs/libcurl/curl_easy_duphandle.pdfbin4005 -> 4005 bytes
-rw-r--r--docs/libcurl/curl_easy_escape.pdfbin3985 -> 3985 bytes
-rw-r--r--docs/libcurl/curl_easy_getinfo.pdfbin16489 -> 16489 bytes
-rw-r--r--docs/libcurl/curl_easy_init.pdfbin4041 -> 4041 bytes
-rw-r--r--docs/libcurl/curl_easy_pause.pdfbin6260 -> 6260 bytes
-rw-r--r--docs/libcurl/curl_easy_perform.pdfbin4373 -> 4373 bytes
-rw-r--r--docs/libcurl/curl_easy_recv.pdfbin5209 -> 5209 bytes
-rw-r--r--docs/libcurl/curl_easy_reset.pdfbin3659 -> 3659 bytes
-rw-r--r--docs/libcurl/curl_easy_send.pdfbin4966 -> 4966 bytes
-rw-r--r--docs/libcurl/curl_easy_setopt.372
-rw-r--r--docs/libcurl/curl_easy_setopt.html40
-rw-r--r--docs/libcurl/curl_easy_setopt.pdfbin116001 -> 119264 bytes
-rw-r--r--docs/libcurl/curl_easy_strerror.pdf16
-rw-r--r--docs/libcurl/curl_easy_unescape.pdfbin4116 -> 4116 bytes
-rw-r--r--docs/libcurl/curl_escape.pdfbin3991 -> 3991 bytes
-rw-r--r--docs/libcurl/curl_formadd.pdfbin12118 -> 12118 bytes
-rw-r--r--docs/libcurl/curl_formfree.pdfbin3391 -> 3391 bytes
-rw-r--r--docs/libcurl/curl_formget.pdfbin4058 -> 4058 bytes
-rw-r--r--docs/libcurl/curl_free.pdfbin3260 -> 3260 bytes
-rw-r--r--docs/libcurl/curl_getdate.pdfbin6912 -> 6912 bytes
-rw-r--r--docs/libcurl/curl_getenv.pdfbin4165 -> 4165 bytes
-rw-r--r--docs/libcurl/curl_global_cleanup.pdfbin3836 -> 3836 bytes
-rw-r--r--docs/libcurl/curl_global_init.pdfbin4721 -> 4721 bytes
-rw-r--r--docs/libcurl/curl_global_init_mem.pdfbin4050 -> 4050 bytes
-rw-r--r--docs/libcurl/curl_mprintf.pdfbin5902 -> 5902 bytes
-rw-r--r--docs/libcurl/curl_multi_add_handle.pdfbin4074 -> 4074 bytes
-rw-r--r--docs/libcurl/curl_multi_assign.pdf16
-rw-r--r--docs/libcurl/curl_multi_cleanup.pdfbin3766 -> 3766 bytes
-rw-r--r--docs/libcurl/curl_multi_fdset.pdfbin4472 -> 4472 bytes
-rw-r--r--docs/libcurl/curl_multi_info_read.pdfbin4892 -> 4892 bytes
-rw-r--r--docs/libcurl/curl_multi_init.pdfbin3400 -> 3400 bytes
-rw-r--r--docs/libcurl/curl_multi_perform.pdfbin5412 -> 5412 bytes
-rw-r--r--docs/libcurl/curl_multi_remove_handle.pdfbin3852 -> 3852 bytes
-rw-r--r--docs/libcurl/curl_multi_setopt.pdfbin7292 -> 7292 bytes
-rw-r--r--docs/libcurl/curl_multi_socket.pdfbin9379 -> 9379 bytes
-rw-r--r--docs/libcurl/curl_multi_socket_action.pdfbin8732 -> 8732 bytes
-rw-r--r--docs/libcurl/curl_multi_strerror.pdfbin3410 -> 3410 bytes
-rw-r--r--docs/libcurl/curl_multi_timeout.pdfbin4586 -> 4586 bytes
-rw-r--r--docs/libcurl/curl_share_cleanup.pdfbin3604 -> 3604 bytes
-rw-r--r--docs/libcurl/curl_share_init.pdfbin3796 -> 3796 bytes
-rw-r--r--docs/libcurl/curl_share_setopt.pdfbin4687 -> 4687 bytes
-rw-r--r--docs/libcurl/curl_share_strerror.pdfbin3410 -> 3410 bytes
-rw-r--r--docs/libcurl/curl_slist_append.pdfbin3794 -> 3794 bytes
-rw-r--r--docs/libcurl/curl_slist_free_all.pdf16
-rw-r--r--docs/libcurl/curl_strequal.pdfbin4125 -> 4125 bytes
-rw-r--r--docs/libcurl/curl_unescape.pdfbin3954 -> 3954 bytes
-rw-r--r--docs/libcurl/curl_version.pdfbin3200 -> 3200 bytes
-rw-r--r--docs/libcurl/curl_version_info.pdfbin8204 -> 8204 bytes
-rw-r--r--docs/libcurl/libcurl-easy.pdfbin4207 -> 4207 bytes
-rw-r--r--docs/libcurl/libcurl-errors.pdfbin15530 -> 15530 bytes
-rw-r--r--docs/libcurl/libcurl-multi.pdfbin9163 -> 9163 bytes
-rw-r--r--docs/libcurl/libcurl-share.pdfbin4828 -> 4828 bytes
-rw-r--r--docs/libcurl/libcurl-tutorial.pdfbin69734 -> 69734 bytes
-rw-r--r--docs/libcurl/libcurl.pdfbin12665 -> 12665 bytes
-rw-r--r--docs/libcurl/symbols-in-versions186
-rw-r--r--include/curl/Makefile.in4
-rw-r--r--include/curl/curl.h6
-rw-r--r--include/curl/curlver.h8
-rw-r--r--lib/Makefile.Watcom88
-rw-r--r--lib/Makefile.am6
-rw-r--r--lib/Makefile.in6
-rw-r--r--lib/Makefile.m322
-rw-r--r--lib/Makefile.netware4
-rw-r--r--lib/Makefile.riscos232
-rw-r--r--lib/config-amigaos.h1
-rw-r--r--lib/config-dos.h (renamed from lib/config.dos)3
-rw-r--r--lib/config-mac.h1
-rw-r--r--lib/config-os400.h3
-rw-r--r--lib/config-riscos.h3
-rw-r--r--lib/config-vms.h (renamed from packages/vms/config-vms.h)3
-rw-r--r--lib/config-win32.h7
-rw-r--r--lib/config-win32ce.h7
-rw-r--r--lib/connect.c170
-rw-r--r--lib/connect.h2
-rw-r--r--lib/cookie.c4
-rw-r--r--lib/curl_addrinfo.c83
-rw-r--r--lib/curl_addrinfo.h2
-rw-r--r--lib/curl_config.h.in15
-rw-r--r--lib/curl_rtmp.c6
-rw-r--r--lib/easy.c164
-rw-r--r--lib/file.c2
-rw-r--r--lib/formdata.c76
-rw-r--r--lib/formdata.h12
-rw-r--r--lib/ftp.c87
-rw-r--r--lib/getinfo.c16
-rw-r--r--lib/gopher.c3
-rw-r--r--lib/gtls.c65
-rw-r--r--lib/hmac.c6
-rw-r--r--lib/hostares.c17
-rw-r--r--lib/hostip.c13
-rw-r--r--lib/hostip.h2
-rw-r--r--lib/hostip4.c4
-rw-r--r--lib/hostip6.c6
-rw-r--r--lib/hostthre.c2
-rw-r--r--lib/http.c41
-rw-r--r--lib/http_chunks.c1
-rw-r--r--lib/http_digest.c2
-rw-r--r--lib/imap.c6
-rw-r--r--lib/inet_pton.c8
-rw-r--r--lib/krb4.c35
-rw-r--r--lib/krb4.h17
-rw-r--r--lib/krb5.c12
-rw-r--r--lib/ldap.c2
-rw-r--r--lib/libcurl.plist6
-rw-r--r--lib/makefile.dj2
-rw-r--r--lib/multi.c65
-rw-r--r--lib/openldap.c15
-rw-r--r--lib/parsedate.c3
-rw-r--r--lib/pingpong.c9
-rw-r--r--lib/polarssl.c4
-rw-r--r--lib/pop3.c6
-rw-r--r--lib/rtsp.c4
-rw-r--r--lib/rtsp.h2
-rw-r--r--lib/security.c67
-rw-r--r--lib/sendf.c2
-rw-r--r--lib/smtp.c14
-rw-r--r--lib/ssh.c65
-rw-r--r--lib/ssluse.c8
-rw-r--r--lib/tftp.c7
-rw-r--r--lib/transfer.c49
-rw-r--r--lib/url.c237
-rw-r--r--lib/url.h2
-rw-r--r--lib/urldata.h70
-rw-r--r--lib/warnless.c134
-rw-r--r--lib/warnless.h10
-rw-r--r--m4/curl-compilers.m42
-rw-r--r--m4/curl-confopts.m42
-rw-r--r--m4/curl-functions.m4998
-rw-r--r--packages/AIX/Makefile.in4
-rw-r--r--packages/AIX/RPM/Makefile.in4
-rw-r--r--packages/Linux/Makefile.in4
-rw-r--r--packages/Linux/RPM/Makefile.in4
-rw-r--r--packages/Makefile.in4
-rw-r--r--packages/Solaris/Makefile.in4
-rw-r--r--packages/Symbian/group/curl.mmp2
-rw-r--r--packages/Win32/Makefile.in4
-rw-r--r--packages/Win32/cygwin/Makefile.in4
-rw-r--r--packages/vms/Makefile.am1
-rw-r--r--packages/vms/Makefile.in5
-rw-r--r--packages/vms/build_vms.com2
-rw-r--r--src/Makefile.Watcom64
-rw-r--r--src/Makefile.am2
-rw-r--r--src/Makefile.in11
-rw-r--r--src/Makefile.inc5
-rw-r--r--src/Makefile.m322
-rw-r--r--src/Makefile.netware4
-rw-r--r--src/Makefile.riscos64
-rw-r--r--src/Makefile.vc1030
-rw-r--r--src/Makefile.vc630
-rw-r--r--src/Makefile.vc830
-rw-r--r--src/Makefile.vc930
-rw-r--r--src/curl_config.h.in15
-rw-r--r--src/hugehelp.c5590
-rw-r--r--src/main.c103
-rw-r--r--src/makefile.dj4
-rw-r--r--src/vc6curlsrc.dsp8
-rw-r--r--src/version.h2
-rw-r--r--src/xattr.c75
-rw-r--r--src/xattr.h26
-rw-r--r--tests/FILEFORMAT5
-rw-r--r--tests/Makefile.am4
-rw-r--r--tests/Makefile.in8
-rw-r--r--tests/data/Makefile.am2
-rw-r--r--tests/data/Makefile.in6
-rw-r--r--tests/data/test10571
-rw-r--r--tests/data/test111855
-rw-r--r--tests/data/test111924
-rw-r--r--tests/data/test112044
-rw-r--r--tests/data/test12032
-rw-r--r--tests/data/test1351
-rw-r--r--tests/data/test1912
-rwxr-xr-xtests/ftpserver.pl2
-rw-r--r--tests/libtest/first.c5
-rw-r--r--tests/libtest/lib521.c2
-rw-r--r--tests/libtest/lib562.c2
-rwxr-xr-xtests/runtests.pl52
-rw-r--r--tests/server/Makefile.in4
-rw-r--r--tests/server/Makefile.inc4
-rw-r--r--tests/server/rtspd.c32
-rw-r--r--tests/server/server_sockaddr.h33
-rw-r--r--tests/server/sockfilt.c79
-rw-r--r--tests/server/sws.c34
-rw-r--r--tests/server/tftpd.c149
-rw-r--r--tests/symbol-scan.pl162
-rwxr-xr-xtests/testcurl.pl7
208 files changed, 8198 insertions, 5156 deletions
diff --git a/CHANGES b/CHANGES
index a792aa5f..1b8e3ece 100644
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,731 @@
Changelog
+Daniel Stenberg (15 Dec 2010)
+- RELEASE-NOTES: synced with a865bd9fbaaa43e5c
+
+- IsPipeliningPossible: only for HTTP
+
+ The function that checks if pipelining is possible now requires the HTTP
+ bit to be set so that it doesn't mistakenly tries to do it for other
+ protocols.
+
+ Bug: http://curl.haxx.se/mail/lib-2010-12/0152.html
+ Reported by: Dmitri Shubin
+
+- multi_runsingle: don't timeout completed handles
+
+ The generic timeout code must not check easy handles that are already
+ completed. Going to completed (again) within there risked decreasing the
+ number of alive handles again and thus it could go negative.
+
+ This regression bug was added in 7.21.2 in commit ca10e28f06f1
+
+- symbols-in-versions: CURLOPT_KEYPASSWD fixed
+
+ It was added in 7.17.0 and is not deprecated
+
+- RELEASE-NOTES: synced with c28443c551825
+
+Dan Fandrich (8 Dec 2010)
+- Mention that using other libraries can affect app licensing
+
+Yang Tse (7 Dec 2010)
+- easy: fix compiler warning: end-of-loop code not reached
+
+Daniel Stenberg (6 Dec 2010)
+- disconnect: pass on the dead_connection argument
+
+ Cleanup fix after Kamil's commit 5c7c9a768d0093
+
+Yang Tse (6 Dec 2010)
+- sws: fix compier warning: external definition with no prior declaration
+
+Daniel Stenberg (6 Dec 2010)
+- [Heinrich Ko brought this change]
+
+ ossl_connect_common: detect connection re-use
+
+ ossl_connect_common() now checks whether or not 'struct
+ connectdata->state' is equal 'ssl_connection_complete' and if so, will
+ return CURLE_OK with 'done' set to 'TRUE'. This check prevents
+ ossl_connect_common() from creating a new ssl connection on an existing
+ ssl session which causes openssl to fail when it tries to parse an
+ encrypted TLS packet since the cipher data was effectively thrown away
+ when the new ssl connection was created.
+
+ Bug: http://curl.haxx.se/mail/lib-2010-11/0169.html
+
+Kamil Dudka (6 Dec 2010)
+- url: provide dead_connection flag in Curl_handler::disconnect
+
+ It helps to prevent a hangup with some FTP servers in case idle session
+ timeout has exceeded. But it may be useful also for other protocols
+ that send any quit message on disconnect. Currently used by FTP, POP3,
+ IMAP and SMTP.
+
+Yang Tse (6 Dec 2010)
+- ssh: fix a download resume point calculation
+
+Daniel Stenberg (5 Dec 2010)
+- Curl_wait_for_resolv: correct timeout
+
+ When looping in this function and checking for the timeout being
+ expired, it was not updating the reference time when calculating the
+ timediff since previous round which made it think each subsequent loop
+ to have taken longer than it actually did.
+
+ I also modified the function to use the generic Curl_timeleft() function
+ instead of the custom logic.
+
+ Bug: http://curl.haxx.se/bug/view.cgi?id=3112579
+
+- Curl_send/recv_plain: return errno on failure
+
+ When send() and recv() fail, we now store the errno value to allow the
+ app to access it.
+
+ Bug: http://curl.haxx.se/bug/view.cgi?id=3128121
+ Reported by: Yuri
+
+Guenter Knauf (5 Dec 2010)
+- Updated OpenSSL version.
+
+Yang Tse (4 Dec 2010)
+- fix compiler warning: conversion may lose significant bits
+
+- fix compiler warning: assignment within conditional expression
+
+- fix getinfo CURLINFO_LOCAL* for reused connections (take 2) follow-up
+
+ - Show address string from proper buffer in case of connection failure.
+
+ - Try next address when inet_ntop() fails.
+
+Daniel Stenberg (3 Dec 2010)
+- version-check: added brief documentation
+
+ and the traditional source header
+
+Yang Tse (3 Dec 2010)
+- build: provide SIZEOF_SIZE_T DOS definition
+
+- build: lib/config.dos renamed to lib/config-dos.h
+
+- build: provide SIZEOF_SIZE_T VMS definition
+
+- build: move config-vms.h from subdir 'packages/vms' into 'lib'
+
+- build: provide SIZEOF_SIZE_T definition for non-configure builds
+
+- build: provide SIZEOF_SIZE_T netware definition
+
+- configure: undo using autobuilds to temporarily verify strict aliasing warnings.
+
+- fix compiler warning: rounding, sign extension, or loss of accuracy may result
+
+- fix compiler warning: statement is not reachable
+
+- fix compiler warning: conversion may lose significant bits
+
+- connect: fix compiler warning: unused variable
+
+- fix getinfo CURLINFO_LOCAL* for reused connections (take 2)
+
+- fix getinfo CURLINFO_LOCAL* for reused connections follow-up
+
+ Reinstate IPV6 build variable that got removed.
+
+- fix getinfo CURLINFO_LOCAL* for reused connections
+
+ Failed to commit this file changes along with the others.
+
+- fix getinfo CURLINFO_LOCAL* for reused connections
+
+- atoi: remove atoi usage
+
+- multi: fix compiler warning: conversion may lose significant bits follow-up
+
+- ftp: fix 'bool' data type implementation dependant usage
+
+- multi: fix compiler warning: conversion may lose significant bits
+
+- multi: fix compiler warning: enumerated type mixed with another type
+
+- hostip: edit comment
+
+- xattr: fix compiler warning: enumerated type mixed with another type
+
+- s/isspace/ISSPACE
+
+- symbol-scan: use configure script knowledge about how to run the C preprocessor
+
+- ignore file generated by configure
+
+- curl_multi_info_read: fix compiler warning: conversion may lose significant bits
+
+- inet_pton: fix compiler warning
+
+ warning C4146: unary minus operator applied to unsigned type, result still unsigned
+
+- Curl_getaddrinfo_ex: sanitize function results follow-up.
+
+- Curl_getaddrinfo_ex: sanitize function results.
+
+ Ensure that spurious results from system's getaddrinfo() ares not propagated
+ by Curl_getaddrinfo_ex() into the library.
+
+ Also ensure that the ai_addrlen member of Curl_getaddrinfo_ex()'s output linked
+ list of Curl_addrinfo structures has appropriate family-specific address size.
+
+Kamil Dudka (22 Nov 2010)
+- openldap: use remote port in URL passed to ldap_init_fd()
+
+ ... not the proxy port. It makes no difference unless a proxy is used.
+
+Yang Tse (20 Nov 2010)
+- gtls: define and use gtls_EAGAIN, gtls_EINTR and gtls_EIO.
+
+ Winsock builds clobber some errno.h defines in setup_once.
+
+Dan Fandrich (19 Nov 2010)
+- Added a couple examples that were missing from the tar ball
+
+- Check for errors while preprocessing curl.h in test 1119
+
+ This showed a problem when running the test out-of-tree, so
+ an include path is now being added to pick up the generated
+ curlbuild.h file.
+
+- Use the 3-argument open for compatibility with older perls
+
+- [Matthias Bolte brought this change]
+
+ Detect socket errors in GnuTLS on Windows
+
+ On Windows, translate WSAGetLastError() to errno values as GNU
+ TLS does it internally, too. This is necessary because send() and
+ recv() on Windows don't set errno when they fail but GNU TLS
+ expects a proper errno value.
+
+ Bug: http://curl.haxx.se/bug/view.cgi?id=3110991
+
+Yang Tse (19 Nov 2010)
+- test servers: fix strict aliasing compiler warnings
+
+- configure: use autobuilds to temporarily verify strict aliasing warnings.
+
+ Temporarily, When cross-compiling with gcc 3.0 or later, enable strict aliasing
+ rules and warnings. Given that cross-compiled targets autobuilds do not run the
+
+Julien Chaffraix (17 Nov 2010)
+- configure: Prevent link errors with --librtmp.
+
+ If --librtmp was specified but pkg-config could not find the librtmp
+ file, we would have undefined symbols when linking curl.
+
+ We prevent this error by disabling this case as suggested on the mailing
+ list.
+
+Daniel Stenberg (15 Nov 2010)
+- RELEASE-NOTES: synced with cbf4961bf3e4
+
+- gnutls->handshake: improved timeout handling
+
+ When no timeout is set, we call the socket_ready function with a timeout
+ value of 0 during handshake, which makes it loop too much/fast in this
+ function. It also made this function return CURLE_OPERATION_TIMEDOUT
+ wrongly on a slow handshake.
+
+ However, the particular bug report that highlighted this problem is not
+ solved by this fix, as this fix only makes the more proper error get
+ reported instead.
+
+ Bug: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=594150
+ Reported by: Johannes Ernst
+
+Julien Chaffraix (13 Nov 2010)
+- urldata: Capitalize enum protect_level values.
+
+ This makes it easier to spot the enum values from the variables.
+ Removed some unneeded DEBUGASSERT added in the previous commit.
+
+- security: tighten enum protection_level usage.
+
+ While changing Curl_sec_read_msg to accept an enum protection_level
+ instead of an int, I went ahead and fixed the usage of the associated
+ fields.
+
+ Some code was assuming that prot_clear == 0. Fixed those to use the
+ proper value. Added assertions prior to any code that would set the
+ protection level.
+
+Yang Tse (13 Nov 2010)
+- configure: fix autoconf 2.68 warning: no AC_LANG_SOURCE call detected in body
+
+Daniel Stenberg (12 Nov 2010)
+- curl.1: "a file", not an
+
+- version-check.pl: display version number for symbols
+
+ This script is the start of a helper tool that scans a source code and
+ outputs the most recent libcurl version it finds symbols for. Meaning
+ that if there's no conditions in the code, that's the earliest libcurl
+ version the scanned code requires.
+
+ It is not added to the Makefile.am yet as it is still a bit crude, but
+ I'm committing it to keep it and allow us to work on it.
+
+- [Adam Light brought this change]
+
+ Makefile.vc6: fixed the xattr.c compile
+
+Julien Chaffraix (12 Nov 2010)
+- krb5: Use GSS_ERROR to check for error.
+
+ This is the advised way of checking for errors in the GSS-API RFC.
+ Also added some '\n' to the error message so that they are not mixed
+ with other outputs.
+
+- security: Pass the right parameter to init.
+
+ init is expecting app_data. Passing it the struct connecdata would make
+ us crash later.
+
+Daniel Stenberg (11 Nov 2010)
+- HTTP Auth: Add CURLAUTH_ONLY
+
+ This is a meta symbol. OR this value together with a single specific
+ auth value to force libcurl to probe for un-restricted auth and if not,
+ only that single auth algorithm is acceptable.
+
+ For example you can use CURLAUTH_DIGEST|CURLAUTH_ONLY to make libcurl
+ first probe for what method to use, but yet only consider Digest to be
+ acceptable.
+
+ Using _only_ CURLAUTH_DIGEST without the CURLAUTH_ONLY field, will make
+ libcurl explicitly use Digest right away and not do any probing.
+
+- ip_version: moved to connection struct
+
+ The IP version choice was previously only in the UserDefined struct
+ within the SessionHandle, but since we sometimes alter that option
+ during a request we need to have it on a per-connection basis.
+
+ I also moved more "init conn" code into the allocate_conn() function
+ which is designed for that purpose more or less.
+
+Yang Tse (11 Nov 2010)
+- buildconf: MAC OS X requires libtool version 1.5.26 or newer
+
+ MAC OS X requires libtool version 1.5.26 or newer, otherwise
+ configure will mishandle *.dSYM directories when it runs.
+
+- configure: remove temporary autobuilds exercising of xattr function tests
+
+- configure: use autobuilds to temporarily exercise xattr function tests
+
+- xattr: portability fix
+
+- curl-functions: provide xattr function tests that also check number of arguments
+
+Daniel Stenberg (10 Nov 2010)
+- test1120: verify FTP response 421
+
+ curl mustn't try to use the control connection after the 421 is received
+
+- ftpserver.pl: spellfix comment
+
+- [Rutger Hofman brought this change]
+
+ TFTP: resend the correct data
+
+ I found a bug in tftp_tx() in tftp.c. If a data resend is done after
+ reception of an ACK/OACK, the call to sendto is wrong.
+
+- [Stefan Tomanek brought this change]
+
+ write extended attributes by using fsetxattr
+
+ Instead of reopening the downloaded file, fsetxattr uses the (already
+ open) file descriptor to attach extended attributes. This makes the
+ procedure more robust against errors caused by moved or deleted files.
+
+Dan Fandrich (9 Nov 2010)
+- Check for getinfo errors before setting attributes
+
+Kamil Dudka (9 Nov 2010)
+- ftp: treat server's response 421 as CURLE_OPERATION_TIMEDOUT
+
+ Bug: https://bugzilla.redhat.com/650255
+ Reported by: Simon H.
+
+Daniel Stenberg (9 Nov 2010)
+- symbols-in-version: add CURL_SOCKET_BAD
+
+ I also documented the filtering logic in the symbol-scan.pl function to
+ clarify why not all CURL_* symbols are included.
+
+Yang Tse (9 Nov 2010)
+- serial number bump
+
+Kamil Dudka (8 Nov 2010)
+- ftp: close connection as soon as ABOR has been sent
+
+ ... and do not send ABOR unless really necessary.
+
+ Bug: https://bugzilla.redhat.com/649347
+ Reported by: Simon H.
+
+Daniel Stenberg (8 Nov 2010)
+- RELEASE-NOTES: synced with fc6c4c10f9faab08
+
+ I also recounted and updated the command line and libcurl options.
+
+- help: indent the --xattr option like the others
+
+- curl.1: --resolve documented
+
+- CURLOPT_RESOLVE: documented
+
+- CURLOPT_USE_SSL: move from FTP options to connection options
+
+- xattr-check: correct the comment as well
+
+- xattr: use const char * for const strings
+
+- setxattr: fix the checks
+
+ My copy and paste job was a little too much copy and I missed to adjust
+ it properly to sys/xattr.h all over and this is a fix to cure that.
+
+- CURLOPT_RESOLVE: added
+
+ CURLOPT_RESOLVE is a new option that sends along a curl_slist with
+ name:port:address sets that will populate the DNS cache with entries so
+ that request can be "fooled" to use another host than what otherwise
+ would've been used. Previously we've encouraged the use of Host: for
+ that when dealing with HTTP, but this new feature has the added bonus
+ that it allows the name from the URL to be used for TLS SNI and server
+ certificate name checks as well.
+
+ This is a first change. Surely more will follow to make it decent.
+
+Yang Tse (8 Nov 2010)
+- fix compiler warning
+
+Dan Fandrich (7 Nov 2010)
+- Added os-specific.c and xattr.c to the Symbian build files
+
+Yang Tse (7 Nov 2010)
+- xattr: fix VisualStudio builds
+
+- fix snapshot generation
+
+Daniel Stenberg (5 Nov 2010)
+- --libcurl: simplify output
+
+ Removed the code that was needed for libcurl before 7.19.0 which now is
+ more than two years old.
+
+ Simplified the top comment and corrected the URL.
+
+- [Alfred Gebert brought this change]
+
+ LDAP: detect non-binary attributes properly
+
+ If the query result has a binary attribute, the binary attribute is
+ base64 encoded. But all following non binary attributes are also base64
+ encoded which is wrong.
+
+ This is a test (LDAP server is public).
+
+ curl
+ ldap://x500.bund.de:389/o=Bund,c=DE?userCertificate,certificateSerialNumber?sub
+ ?cn=*Woehleke*
+
+- xattr: add configure check and #ifdefs
+
+ setxattr is a glibc call to set extended attributes, so configure now
+ checks for it and the code is adapted to only build when the
+ functionality is present.
+
+- [Stefan Tomanek brought this change]
+
+ save metadata to extended file attributes
+
+ It is often convinient to track back the source of a once downloaded
+ file; this patch makes curl store the source URL and other metadata
+ alongside the retrieved file by using the extended attributes (if
+ supported by the file system and enabled by --xattr).
+
+- test: remove test 580
+
+ Test 580 is removed again for two reasons:
+
+ 1) Some compilers aren't satisfied by just a data variable called 'test'
+ when first.o wants a function called 'test'. The Solaris compiler says
+ "ld: warning: symbol `test' has differing types:" while the AIX compiler
+ downright rejects it.
+
+ 2) Test case 1119 that was added after this test is way more complete
+ and cover everything test 580 does and more without introducing the same
+ problems.
+
+- Revert: use Host: name for SNI and cert name checks
+
+ This reverts commit b0fd03f5b8d4520dd232a9d13567d16bd0ad8951,
+ 4b2fbe1e97891f, afecd1aa13b4f, 68cde058f66b3
+
+- TODO-RELEASE: "TLS SNI use Host:" is done
+
+ 262 - Manual setting of TLS Server Name Indication - use Host:
+
+- RELEASE-NOTES: synced with 7b823badbcab9d330
+
+- curl.1: added a few missing exit codes
+
+- certcheck: use the custom Host: name for checks
+
+ If you use a custom Host: name in a request to a SSL server, libcurl
+ will now use that given name when it verifies the server certificate to
+ be correct rather than using the host name used in the actual URL.
+
+- SNI: simplify the custom host name use
+
+ The redirect check is already done at the position where the customhost
+ field is assigned so there's no point in doing that a second time.
+
+- host: get the custom Host: name more genericly
+
+ When given a custom host name in a Host: header, we can use it for
+ several different purposes other than just cookies, so we rename it and
+ use it for SSL SNI etc.
+
+- [Hongli Lai (Phusion) brought this change]
+
+ SNI: set name to custom Host header
+
+ OpenSSL SNI host name should be set to the custom Host header, if the
+ user provided one.
+
+- fopen.c: re-indented, fixed previous mistake
+
+ I've made the code intended using curl-style now to look more like other
+ examples.
+
+ My previous "fix" was a bit too invasive but is now fixed again.
+
+- multi use: call multi_perform even on select() timeouts
+
+- example: add smtp-multi.c
+
+ An example application source code sending SMTP mail with the multi
+ interface. It is based on the code Alona Rossen provided, which in turn
+ is based on existing example/test code, and I converted it even more
+ into a decent example with a fair multi API use, put the info required
+ to edit at the top and I added some comments.
+
+- CURLOPT_NOSIGNAL: add blurb about SIGPIPE
+
+Dan Fandrich (3 Nov 2010)
+- Allow building test 580 out of tree
+
+Daniel Stenberg (3 Nov 2010)
+- dist: add symbol-scan.pl to the tarball
+
+- test1119: verify symbols-in-versions
+
+- runtests: allow tests written as perl scripts
+
+ If a command is set type="perl", it can now specify a perl program that will
+ be run instead of an ordinary curl or built tool.
+
+ A perl test automatically disables memory and valgrind debugging.
+
+- symbol-scan: verifies symbols-in-versions
+
+ This new script scans for all enums and #defines used by the curl/curl.h
+ and curl/multi.h headers. Then it reads all symbols mentioned in
+ symbols-in-vesions and make sure that there's no entries missing in
+ there. It then proceeds to verify that the entries that
+ symbols-in-vesions mentions but aren't found in the sources are truly
+ documented as removed.
+
+ This script is used in the new test case 1119
+
+- symbols-in-versions: added 119 missing symbols
+
+ I've developed a script I call symbol-scan.pl that scans the curl.h and
+ multi.h header files and compare the symbols it finds in there with the
+ symbols symbols-in-versions documents and outputs a report on the
+ differences. Using this I've dug through the history to fill up
+ symbols-in-versions with all the symbols my script found mismatches for.
+
+ I will commit symbol-scan.pl separatly and think of a way to put it to
+ use in the build/tests so that we from now on will get this in-sync
+ check automatically.
+
+Dan Fandrich (2 Nov 2010)
+- Added mk580.pl to the tar ball
+
+Daniel Stenberg (2 Nov 2010)
+- symbols-in-versions: added missing symbols
+
+- ignore: lib580.c is generated by mk580.pl
+
+- test: added test 580 - verifies symbols-in-versions
+
+ The new perl script mk580.pl generates a C table in a fresh source file
+ named lib580.c and if that compiles fine we know that the file
+ docs/libcurl/symbols-in-versions at least doesn't include any symbols
+ that are misspelled.
+
+ An additional feature would be to somehow scan curl/curl.h and compare
+ with symbols-in-versions to see if there are symbols missing.
+
+- spellfix: CURLOPT_TFTP_BLKSIZE it is
+
+Kamil Dudka (29 Oct 2010)
+- ftp: prevent server from hanging on closed data connection
+
+ Some FTP servers (e.g. Pure-ftpd) end up hanging if we close the data
+ connection before transferring all the requested data. If we send ABOR
+ in that case, it prevents the server from hanging.
+
+ Bug: https://bugzilla.redhat.com/643656
+ Reported by: Pasi Karkkainen, Patrick Monnerat
+
+Dan Fandrich (28 Oct 2010)
+- Removed a leftover mention of FTP in an error message
+
+- Removed the native Makefile.riscos files
+
+ These haven't worked in at least 8 years due to missing source
+ files, and most active RiscOS developers these days apparently
+ cross-compile anyway.
+
+ Signed-off-by: James Bursa <james@zamez.org>
+
+- Lightened the stack in wc_statemach to permit deeper recursion
+
+ Also, added a few hints to help compilers to perform tail call
+ recursion optimization.
+
+Daniel Stenberg (20 Oct 2010)
+- SSH: use libssh2_session_handshake()
+
+ In libssh2 1.2.8, libssh2_session_handshake() replaces
+ libssh2_session_startup() to fix the previous portability problem with
+ the socket type that was too small for win64 and thus easily could cause
+ crashes and more.
+
+- SSH: avoid using the libssh2_ prefix
+
+ It is a bad idea to use the public prefix used by another library and
+ now we realize that libssh2 introduces a symbol in the upcoming version
+ 1.2.8 that conflicts with our static function named libssh2_free.
+
+- formdata: provide error message
+
+ When failing to build form post due to an error, the code now does a
+ proper failf(). Previously libcurl would report an error like "failed
+ creating formpost data" when a file wasn't possible to open which was
+ not easy for users to figure out.
+
+ I also lower cased a function name to be named more curl-style and
+ removed some unnecessary code.
+
+- URL-parsing: consider ? a divider
+
+ The URL parser got a little stricter as it now considers a ? to be a
+ host name divider so that the slightly sloppier URLs work too. The
+ problem that made me do this change was the reported problem with an URL
+ like: www.example.com?email=name@example.com This form of URL is not
+ really a legal URL (due to the missing slash after the host name) but is
+ widely accepted by all major browsers and libcurl also already accepted
+ it, it was just the '@' letter that triggered the problem now.
+
+ The side-effect of this change is that now libcurl no longer accepts the
+ ? letter as part of user-name or password when given in the URL, which
+ it used to accept (and is tested in test 191). That letter is however
+ mentioned in RFC3986 to be required to be percent encoded since it is
+ used as a divider.
+
+ Bug: http://curl.haxx.se/bug/view.cgi?id=3090268
+
+- curl_easy_setopt.3: spellfix
+
+- curl_easy_setopt.3: CURLOPT_USE_SSL is not just for FTP
+
+ It is for FTP, SMTP, POP3, IMAP at least.
+
+- krb4.h: removed unused prototypes
+
+- krb4: make a few functions static
+
+- TODO-RELEASE: cleanup for 7.21.3 works
+
+ "SFTP resume with 4GB file does not work" is now removed as I'm sure
+ this is really a libssh2 bug and not a libcurl bug.
+
+ 7.21.2 is released already
+
+- RELEASE-NOTES: sync with 09a2d93a0f17ca
+
+- http_chunks: remove debug output
+
+ Accidentally left in there during my previous debugging of this
+
+- Curl_setopt: disallow CURLOPT_USE_SSL without SSL support
+
+ In order to avoid for example the pingpong protocols to issue STARTTLS
+ (or equivalent) even though there's no SSL support built-in.
+
+ Reported by: Sune Ahlgren
+ Bug: http://curl.haxx.se/mail/archive-2010-10/0045.html
+
+- options: check for features for some options
+
+ Some options, such as the automatic decompression and some SSL related
+ ones now will bail out if the underlying libcurl doesn't have support
+ for the particular feature needed.
+
+Dan Fandrich (14 Oct 2010)
+- Fixed the IPv6 host address in test1203
+
+ Reported by: Christian Weisgerber
+ Bug: http://curl.haxx.se/bug/view.cgi?id=3087479
+
+Daniel Stenberg (14 Oct 2010)
+- curl_easy_setopt.3: clarify CURLOPT_CRLF
+
+ The option takes a parameter that should be 1 or 0 to enable or disable
+ the feature.
+
+ URL: http://curl.haxx.se/bug/view.cgi?id=3086428
+
+Guenter Knauf (14 Oct 2010)
+- Some more small Watcom makefile fixes.
+
+- Added --noconfigure switch to testcurl.pl.
+
+- Modified Watcom makefiles to work on Linux too.
+
+- Added MingW32 rtmp target; changed Watcom targets.
+
+ Modified Watcom targets to avoid backslashs so that they can
+ work on Linux too.
+
+Daniel Stenberg (13 Oct 2010)
+- gitignore: ignore Makefile.vc10.dist made by maketgz
+
+- curlver.h: start over at 7.21.3
+
+- RELEASE-NOTES: start over towards 7.21.3
+
+- THANKS: added contributors from 7.21.2
+
Version 7.21.2 (12 Oct 2010)
Daniel Stenberg (12 Oct 2010)
@@ -3986,497 +4711,3 @@ Yang Tse (12 Jan 2010)
- Fix tftp and sftp supported protocols in servername_str()
- Make sockfilter kill messages look alike server ones
-
-- Adjust vor VPATH builds
-
-Daniel Stenberg (11 Jan 2010)
-- - Gil Weber reported a peculiar flaw with the multi interface when doing SFTP
- transfers: curl_multi_fdset() would return -1 and not set and file
- descriptors several times during a transfer of a single file. It turned out
- to be due to two different flaws now fixed. Gil's excellent recipe helped me
- nail this.
-
-- ssh_statemach_act() is now modified to loop over the switch() to perform as
- much as possible in one go, as long as it doesn't block and hasn't reached the
- end of the state machine.
- This avoids spurious -1 returns from curl_multi_fdset() simply because
- previously it would return from this function without anything in EWOUDLBLOCK
- and thus basically it wasn't actually waiting for anything!!
-
-- After the TCP connect is confirmed in CURLM_STATE_WAITCONNECT and it changes
- state, we return CURLM_CALL_MULTI_PERFORM unconditionally then so that we
- can act faster like in the case the protocol-specific connect doesn't block
- on anything and we can just persue on the next action immediately. It also
- then avoids a case where curl_multi_fdset() would return -1.
-
-- progress callback called repeatedly during slow connects
-
-- - Made sure that the progress callback is repeatedly called at a regular
- interval even during very slow connects.
-
-- - The tests/runtests.pl script now checks to see if the test case that runs is
- present in the tests/data/Makefile.am and outputs a notice message on the
- screen if not. Each test file has to be included in that Makefile.am to get
- included in release archives and forgetting to add files there is a common
- mistake. This is an attempt to make it harder to forget.
-
-Yang Tse (11 Jan 2010)
-- secureserver.pl is now the test harness script used for SSL/TLS.
-
-- secureserver.pl is now the test harness script used for SSL/TLS.
-
- Start using the centralized pidfile and logfile name generation
- subroutines for https and ftps test suite servers.
-
-- Update error message to include port number
-
-- Previous commit adjustments
-
-- Start using the centralized pidfile and logfile name generation
- subroutines for ftp, pop3, imap and smtp test suite servers.
-
-Daniel Stenberg (9 Jan 2010)
-- struct Curl_sh_entry's 'inuse' member was no longer used and is now removed
-
-- - Johan van Selst found and fixed a OpenSSL session ref count leak:
-
- ossl_connect_step3() increments an SSL session handle reference counter on
- each call. When sessions are re-used this reference counter may be
- incremented many times, but it will be decremented only once when done (by
- Curl_ossl_session_free()); and the internal OpenSSL data will not be freed
- if this reference count remains positive. When a session is re-used the
- reference counter should be corrected by explicitly calling
- SSL_SESSION_free() after each consecutive SSL_get1_session() to avoid
- introducing a memory leak.
-
- (http://curl.haxx.se/bug/view.cgi?id=2926284)
-
-Yang Tse (8 Jan 2010)
-- Start using the centralized pidfile and logfile name generation
- subroutines for http and tftp test suite servers.
-
-- Remove extra line feed
-
-- Use '_stunnel.log' ending also for https test server log
-
-- sws and tftpd command line option naming adjustments
-
-Daniel Stenberg (7 Jan 2010)
-- removed a parameter from the Curl_http_readwrite_headers() prototype to remove
- the need for the struct forward declaration from http.h which caused problems
- with gcc 2.96 and quite frankly the parameter wasn't necessary anyway
-
-Claes Jakobsson (7 Jan 2010)
-- List fragment tests in Makefile.am and better provide better names
-
-Daniel Stenberg (7 Jan 2010)
-- removed Curl_http_header_append() prototype as it isn't used anymore, the
- function was moved to http.c and was made static and renamed
-
-- - Make sure the progress callback is called repeatedly even during very slow
- name resolves when c-ares is used for resolving.
-
-Yang Tse (6 Jan 2010)
-- Disable tests 802 and 803
-
-- Prevent detection of stdint.h on IRIX systems, even when available.
-
- IRIX MIPSpro 7.4 C++ compiler does not tolerate inclusion of stdint.h
-
-Claes Jakobsson (6 Jan 2010)
-- Julien Chaffraix fixed so that the fragment part in an URL is not sent to the server anymore
-
-Daniel Stenberg (4 Jan 2010)
-- use the modern name for this option
-
-Kamil Dudka (3 Jan 2010)
-- - Julien Chaffraix eliminated a duplicated initialization in singlesocket().
-
-Daniel Stenberg (2 Jan 2010)
-- - Make curl support --ssl and --ssl-reqd instead of the previous FTP-specific
- versions --ftp-ssl and --ftp-ssl-reqd as these options are now used to
- control SSL/TLS for IMAP, POP3 and SMTP as well in addition to FTP. The old
- option names are still working but the new ones are the prefered ones
- (listed and documented).
-
-- stop at once if the EOB marker shows up, even if something else might get
- sent afterwards
-
-- update copyright year since we are in 2010 now
-
-- added CURLOPT_FTP_USE_PRET
-
-- - Ingmar Runge enhanced libcurl's FTP engine to support the PRET command. This
- command is a special "hack" used by the drftpd server, but even though it is
- a custom extension I've deemed it fine to add to libcurl since this server
- seems to survive and people keep using it and want libcurl to support
- it. The new libcurl option is named CURLOPT_FTP_USE_PRET, and it is also
- usable from the curl tool with --ftp-pret. Using this option on a server
- that doesn't support this command will make libcurl fail.
-
-- added descriptions for CURLOPT_MAIL_FROM and CURLOPT_MAIL_RCPT
-
-- --mail-rcpt and --mail-from are starting to settle and work like this...
-
-- turned CURLOPT_MAIL_RCPT into a curl_slist list instead to support multiple
- receivers, and made the command line tool thus support the option specified
- many times
-
-Yang Tse (31 Dec 2009)
-- Use '_stunnel.log' file name ending for stunneled server logs
-
-- VMS adjustments by Steven M. Schweda
-
-- Subs for refactoring purposes
-
-Daniel Stenberg (30 Dec 2009)
-- CURLOPT_HEADERDATA was added in 7.10
-
-- s/CURLOPT_WRITEHEADER/CURLOPT_HEADERDATA simply because it is a better name
-
-- modified to get the EHLO domain from the path part of the URL instead of the
- user name
-
-- moved the SMTP payload escape function into Curl_smtp_escape_eob and put
- it in smtp.c
-
-- (SMTP) support DATA better in the server and make sure to "escape" CRLF.CRLF
- sequences in uploaded data. The test server doesn't "decode" escaped dot-lines
- but instead test cases must be written to take them into account. Added test
- case 803 to verify dot-escaping.
-
-Yang Tse (30 Dec 2009)
-- Oops, should have removed 'not' in previous commit.
-
-- VMS build system enhancements by Steven M. Schweda and Craig A. Berry
-
-- VMS specific preprocessor symbol checking adjustments
-
-- VMS specific preprocessor symbol definition adjustments
-
-- Replaced stricmp() usage with our portable strequal()
-
-Daniel Stenberg (29 Dec 2009)
-- move HTTP-specific functions to http.c where they belong
-
-- test 802 is the first SMTP test, although not strictly SMTP yet...
-
-Yang Tse (29 Dec 2009)
-- Mention last changes
-
-- - Fix configure_socket() to use ares_socket_t instead of int data type.
-
-- - Where run-time error checks enabling compiler option /GZ was used it is now
- replaced with equivalent /RTCsu for Visual Studio 2003 and newer versions.
-
- - Compiler option /GX is now replaced with equivalent /EHsc for all versions.
-
-- Leftover from previous commit
-
-- Initial refactoring step for server name strings centralized generation
-
-Daniel Stenberg (27 Dec 2009)
-- Julien Chaffraix's clarifications
-
-Yang Tse (27 Dec 2009)
-- Adjust FreeBSD version check to follow FreeBSD Porter's Handbook
-
- http://www.freebsd.org/doc/en/books/porters-handbook/porting-versions.html
-
-Daniel Stenberg (26 Dec 2009)
-- symbols added in the CVS version meant for 7.20.0
-
-Yang Tse (26 Dec 2009)
-- global variables reordering/refactoring/commenting
-
-Daniel Stenberg (25 Dec 2009)
-- add pointer to the bug report
-
-- - Renato Botelho and Peter Pentchev brought a patch that makes the libcurl
- headers work correctly even on FreeBSD systems before v8.
-
-- first shot at actually doing the SMTP upload as well, not doing the proper
- end-of-body treatment
-
-- When verifying the SMTP server I had to add some hackery since SMTP in itself
- doesn't really return any body data to check so I made SMTP check "headers"
- as well.
-
-- first basic SMTP support
-
-Yang Tse (24 Dec 2009)
-- Adjust test number mismatch
-
-- Enable warnings
-
-- Fix warnings
-
-- Fix warnings
-
-- Back out some pingpong server stopping changes introduced last week in
- order to re-use 'classic' stopping and allow taking test-suite run time
- references from this state.
-
-- use Time::HiRes whenever available, independently of perl version
-
-- log a message when continuing once sleep time is over
-
-- - Ingmar Runge noticed that Windows config-win32.h configuration file
- did not include a definition for HAVE_CLOSESOCKET which resulted in
- function close() being inappropriately used to close sockets.
-
-- Make 'classic' output end of a test-suite run become again the end
- of output, even when run time statistics are shown.
-
-- Move stopping of servers instructed by test definition, after the removal of
- server logs advisor read lock and before test results verifications are done.
-
- When stopping a pingpong server, stop server before its slaves.
-
-Daniel Stenberg (21 Dec 2009)
-- test 566 was missing
-
-Yang Tse (21 Dec 2009)
-- dead_child_handler also takes care of reaping pingpong server dead child processes
-
-- Reap processes dead children ASAP without blocking
-
-- Reinstate hi resolution time logging since this is not what is
- now adding 90 extra seconds to the total time some autobuilds
- need to make a full test-run.
-
-Patrick Monnerat (21 Dec 2009)
-- Take new SMTP definitions into account in OS400 wrapper and RPG binding
-
-Daniel Stenberg (21 Dec 2009)
-- first small steps towards smtp
-
-Yang Tse (21 Dec 2009)
-- Replaced tabs with spaces
-
-Daniel Stenberg (20 Dec 2009)
-- remove some unused code
-
-Yang Tse (20 Dec 2009)
-- Improve delay command interruptability
-
-Daniel Stenberg (20 Dec 2009)
-- revert that, we already had a function named like that!
-
-- rename the verifyftp function to verifyserver since it is used to verify
- a wide variety of protocol servers
-
-- free the allocated mailbox name at disconnect
-
-- introducing the first IMAP FETCH test
-
-Yang Tse (20 Dec 2009)
-- - Attempt to fix script compilation failure on versions older than 5.007003,
- corelist -a Time::HiRes lists this as the first version released with it.
-
- - Ensure ftp check delay timer is always an integral number.
-
-Daniel Stenberg (19 Dec 2009)
-- support IMAP select and LOGOUT
-
-- fix the ftp check delay timer to never be set below 1 to work correctly
- in cases like test 190
-
-- fixed a precaution check in the cookie code, pointed out by Julien Chaffraix
-
-Yang Tse (19 Dec 2009)
-- Slack time reduction
-
-- Added runtests.pl '-r' option for run time statistics
-
-- server start and verification time as well as test preparation time
- data is required in order to closer match total test execution time.
-
-- Added test harness simple time execution stats
-
-- Comment out hi resolution time logging to verify if this is what might
- be contributing 90 additional seconds to the total time some autobuilds
- now need to make a full test-run.
-
-- Fix compilation failure
-
-- Test harness process control enhancements
-
-Daniel Stenberg (17 Dec 2009)
-- uh, assign the bool it points to properly
-
-- Stop overloading the conn->protocol field with the PROT_MISSING bit. It
- really didn't belong there and had no real point.
-
-- Remove pointless storing of the protocol as a string within the connectdata
- struct, and instead use the already stored string in the handler struct.
-
-- - David Byron fixed Curl_ossl_cleanup to actually call ENGINE_cleanup when
- available.
-
-Yang Tse (17 Dec 2009)
-- gettimeofday() requires perl version newer than 5.6
-
-Daniel Stenberg (16 Dec 2009)
-- Follow-up fix for the proxy fix I did for Jon Nelson's bug. It turned out I
- was a bit too quick and broke test case 1101 with that change. The order of
- some of the setups is sensitive. I now changed it slightly again.
-
-Yang Tse (16 Dec 2009)
-- Test harness process control enhancements
-
-- Test #1106 needs an ftp enabled client
-
-- Test harness process control enhancements
-
-Daniel Stenberg (14 Dec 2009)
-- - Jon Nelson found a regression that turned out to be a flaw in how libcurl
- detects and uses proxies based on the environment variables. If the proxy
- was given as an explicit option it worked, but due to the setup order
- mistake proxies would not be used fine for a few protocols when picked up
- from '[protocol]_proxy'. Obviously this broke after 7.19.4. I now also added
- test case 1106 that verifies this functionality.
-
- (http://curl.haxx.se/bug/view.cgi?id=2913886)
-
-Yang Tse (14 Dec 2009)
-- Fix compiler warning
-
-- Prevent perl script dying messages in output, since tearing down the pinpong
- server in this way, upon sysread failures, is part of the expected behavior.
-
-- Adjust uppercase protocol string usage
-
-- Fix compiler warnings
-
-- Fix compiler warnings
-
-- signal handling to cleanup on SIGINT and SIGTERM, followup
-
-- reapply diff between revisions 1.103 and 1.102
-
-Daniel Stenberg (12 Dec 2009)
-- updated with the new protocols
-
-- might as well output all supported protocols at the end of configure to
- make it more obvious how the output will be
-
-- show POP3S, IMAPS and SMTPS as protocols if SSL is enabled
-
-- support disabling POP3, IMAP and SMTP and now they also appear in curl-config
- --protocols output
-
-- split out more protocol-specific structs from urldata.h into their own
- protocol-specific header files
-
-- IMAP, POP3 and SMTP support
-
-- introducing IMAP, POP3 and SMTP support (still lots of polish left to do)
-
-Yang Tse (11 Dec 2009)
-- Prevent rewinding unless pipelining.
-
- See http://curl.haxx.se/mail/lib-2009-12/0107.html
-
-- Removed function prototype without implementation
-
-Daniel Stenberg (10 Dec 2009)
-- - Siegfried Gyuricsko found out that the curl manual said --retry would retry
- on FTP errors in the transient 5xx range. Transient FTP errors are in the
- 4xx range. The code itself only tried on 5xx errors that occured _at login_.
- Now the retry code retries on all FTP transfer failures that ended with a
- 4xx response.
-
- (http://curl.haxx.se/bug/view.cgi?id=2911279)
-
-- argh, use the correct bug id
-
-- - Constantine Sapuntzakis figured out a case which would lead to libcurl
- accessing alredy freed memory and thus crash when using HTTPS (with
- OpenSSL), multi interface and the CURLOPT_DEBUGFUNCTION and a certain order
- of cleaning things up. I fixed it.
-
- (http://curl.haxx.se/bug/view.cgi?id=2891591)
-
-- minor indent change
-
-Yang Tse (10 Dec 2009)
-- - Fixed curl erroneously reporting output stream write failures with disabled buffering
-
-- signal handling to cleanup on SIGINT and SIGTERM, followup
-
-Daniel Stenberg (7 Dec 2009)
-- - Martin Storsjo made libcurl use the Expect: 100-continue header for posts
- with unknown size. Previously it was only used for posts with a known size
- larger than 1024 bytes.
-
-- 74. The HTTP spec allows headers to be merged and become comma-separated
- instead of being repeated several times. This also include Authenticate: and
- Proxy-Authenticate: headers and while this hardly every happens in real life
- it will confuse libcurl which does not properly support it for all headers -
- like those Authenticate headers.
-
-Yang Tse (3 Dec 2009)
-- Fix 'uploaded' file descriptor leak
-
-- signal handling to cleanup on SIGINT and SIGTERM
-
-Kamil Dudka (2 Dec 2009)
-- lib/nss.c: avoid use of uninitialized value
-
-Yang Tse (2 Dec 2009)
-- signal handling to cleanup on SIGINT and SIGTERM
-
-- Set socket option SO_REUSEADDR=true on stunnel accept'ing port
-
-Daniel Stenberg (1 Dec 2009)
-- - If the Expect: 100-continue header has been set by the application through
- curl_easy_setopt with CURLOPT_HTTPHEADER, the library should set
- data->state.expect100header accordingly - the current code (in 7.19.7 at
- least) doesn't handle this properly. Martin Storsjo provided the fix!
-
-- start working on 1.7.1
-
-Yang Tse (30 Nov 2009)
-- - In order to better reflect that the returned pid is extracted from the
- given file, serverpid sub is renamed to pidfromfile. In addition it is
- enhanced to make sure that it always returns zero unless a numerical
- positive value is returned.
-
- - To better reflect that only process existance is actually checked,
- checkserver sub is renamed to processexists. In addition it is enhanced
- making it remove the given pid file when the extracted pid is no longer
- alive.
-
-Daniel Stenberg (29 Nov 2009)
-- #71 "TFTP block size / better integration in transfer" is now expected to
- have been fixed!
-
-- a binding for Falcon
-
-Yang Tse (28 Nov 2009)
-- - Added Diffie-Hellman parameters to several test harness certificate files in
- PEM format. Required by several stunnel versions used by our test harness.
-
-- Use different log files for each protocol
-
-- s/socklen_t/curl_socklen_t/g
-
-- Fix compiler warning: unused variable `data'
-
-Daniel Stenberg (27 Nov 2009)
-- 7.20.0 is the planned next version number
-
-- document --tftp-blksize
-
-- - Markus Koetter provided a polished and updated version of Chad Monroe's TFTP
- rework patch that now integrates TFTP properly into libcurl so that it can
- be used non-blocking with the multi interface and more. BLKSIZE also works.
-
- The --tftp-blksize option was added to allow setting the TFTP BLKSIZE from
- the command line.
-
-Yang Tse (27 Nov 2009)
-- Attempt to enhance stunnel 3.X logging
-
-- Prevent running stunnel unless its version can be determined.
diff --git a/Makefile b/Makefile
index 1ad2c664..29f13af1 100644
--- a/Makefile
+++ b/Makefile
@@ -55,22 +55,16 @@ borland-clean:
make -f Makefile.b32 clean
watcom: .SYMBOLIC
- cd lib
- wmake -u -f Makefile.Watcom
- cd ..\src
- wmake -u -f Makefile.Watcom
+ cd lib && $(MAKE) -u -f Makefile.Watcom
+ cd src && $(MAKE) -u -f Makefile.Watcom
watcom-clean: .SYMBOLIC
- cd lib
- wmake -u -f Makefile.Watcom clean
- cd ..\src
- wmake -u -f Makefile.Watcom clean
+ cd lib && $(MAKE) -u -f Makefile.Watcom clean
+ cd src && $(MAKE) -u -f Makefile.Watcom clean
watcom-vclean: .SYMBOLIC
- cd lib
- wmake -u -f Makefile.Watcom vclean
- cd ..\src
- wmake -u -f Makefile.Watcom vclean
+ cd lib && $(MAKE) -u -f Makefile.Watcom vclean
+ cd src && $(MAKE) -u -f Makefile.Watcom vclean
mingw32:
$(MAKE) -C lib -f Makefile.m32
@@ -92,6 +86,10 @@ mingw32-ssh2-ssl-sspi-zlib:
$(MAKE) -C lib -f Makefile.m32 SSH2=1 SSL=1 SSPI=1 ZLIB=1
$(MAKE) -C src -f Makefile.m32 SSH2=1 SSL=1 SSPI=1 ZLIB=1
+mingw32-rtmp-ssh2-ssl-sspi-zlib:
+ $(MAKE) -C lib -f Makefile.m32 RTMP=1 SSH2=1 SSL=1 SSPI=1 ZLIB=1
+ $(MAKE) -C src -f Makefile.m32 RTMP=1 SSH2=1 SSL=1 SSPI=1 ZLIB=1
+
mingw32-clean:
$(MAKE) -C lib -f Makefile.m32 clean
$(MAKE) -C src -f Makefile.m32 clean
diff --git a/RELEASE-NOTES b/RELEASE-NOTES
index 0d1896dc..70ac0dc9 100644
--- a/RELEASE-NOTES
+++ b/RELEASE-NOTES
@@ -1,61 +1,51 @@
-Curl and libcurl 7.21.2
+Curl and libcurl 7.21.3
- Public curl releases: 118
- Command line options: 138
- curl_easy_setopt() options: 180
+ Public curl releases: 119
+ Command line options: 143
+ curl_easy_setopt() options: 185
Public functions in libcurl: 58
Known libcurl bindings: 39
- Contributors: 817
+ Contributors: 827
This release includes the following changes:
- o curl -T: ignore file size of special files
- o Added GOPHER protocol support
- o Added mk-ca-bundle.vbs script
- o c-ares build now requires c-ares >= 1.6.0
+ o Added --noconfigure switch to testcurl.pl
+ o Added --xattr option
+ o Added CURLOPT_RESOLVE and --resolve
+ o Added CURLAUTH_ONLY
+ o Added version-check.pl to the examples dir
This release includes the following bugfixes:
- o --remote-header-name security vulnerability fixed:
- http://curl.haxx.se/docs/adv_20101013.html
-
- o multi: support the timeouts correctly, fixes known bug #62
- o multi: use timeouts properly for MAX_RECV/SEND_SPEED
- o negotiation: Wrong proxy authorization
- o multi: avoid sending multiple complete messages
- o cmdline: make -F type= accept ;charset=
- o RESUME_FROM: clarify what ftp uploads do
- o http: handle trailer headers in all chunked responses
- o Curl_is_connected: use correct errno
- o Added SSPI build to Watcom makefile
- o progress: callback for POSTs less than MAX_INITIAL_POST_SIZE
- o linking problem on Fedora 13
- o Link curl and the test apps with -lrt explicitly when necessary
- o chunky parser: only rewind stream internally if needed
- o remote-header-name: don't output filename when NULL
- o Curl_timeleft: avoid returning "no timeout" by mistake
- o timeout: use the correct start value as offset
- o FTP: fix wrong timeout trigger
- o buildconf got better output on failures
- o rtsp: avoid SIGSEGV on malformed header
- o LDAP: Support for tunnelling queries through HTTP proxy
- o configure's --enable-werror had a bashism
- o test565: Don't hardcode IP:PORT
- o configure: check for gcrypt if using GnuTLS
- o configure: don't enable RTMP if the lib detect fails
- o curl_easy_duphandle: clone the c-ares handle correctly
- o MacOSX-Framework: updates for Snowleopard
- o support URL containing colon without trailing port number
- o parsedate: allow time specified without seconds
- o curl_easy_escape: don't escape "unreserved" characters
- o SFTP: avoid downloading negative sizes
- o Lots of GSS/KRB FTP fixes
- o TFTP: Work around tftpd-hpa upload bug
- o libcurl.m4: several fixes
- o HTTP: remove special case for 416
- o examples: use example.com in example URLs
- o globbing: fix crash on unballanced open brace
- o cmake: build fixed
+ o check for libcurl features for some command line options
+ o Curl_setopt: disallow CURLOPT_USE_SSL without SSL support
+ o http_chunks: remove debug output
+ o URL-parsing: consider ? a divider
+ o SSH: avoid using the libssh2_ prefix
+ o SSH: use libssh2_session_handshake() to work on win64
+ o ftp: prevent server from hanging on closed data connection when stopping
+ a transfer before the end of the full transfer (ranges)
+ o LDAP: detect non-binary attributes properly
+ o ftp: treat server's response 421 as CURLE_OPERATION_TIMEDOUT
+ o gnutls->handshake: improved timeout handling
+ o security: Pass the right parameter to init
+ o krb5: Use GSS_ERROR to check for error
+ o TFTP: resend the correct data
+ o configure: fix autoconf 2.68 warning: no AC_LANG_SOURCE call detected
+ o GnuTLS: now detects socket errors on Windows
+ o symbols-in-versions: updated en masse
+ o added a couple examples that were missing from the tar ball
+ o Curl_send/recv_plain: return errno on failure
+ o Curl_wait_for_resolv (for c-ares): correct timeout
+ o ossl_connect_common: detect connection re-use
+ o configure: Prevent link errors with --librtmp
+ o openldap: use remote port in URL passed to ldap_init_fd()
+ o url: provide dead_connection flag in Curl_handler::disconnect
+ o lots of compiler warning fixes
+ o ssh: fix a download resume point calculation
+ o fix getinfo CURLINFO_LOCAL* for reused connections
+ o multi: the returned running handles conuter could turn negative
+ o multi: only ever consider pipelining for connections doing HTTP(S)
This release includes the following known bugs:
@@ -64,10 +54,8 @@ 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:
- Kamil Dudka, Ben Greear, Cameron Kaiser, Dan Fandrich, Dirk Manske,
- Guenter Knauf, Julien Chaffraix, Quanah Gibson-Mount, Tor Arntsen,
- Peter Pentchev, James Bursa, Fabian Keil, Michal Gorny, Mauro Iorio,
- Hendrik Visage, Ning Dong, David McCreedy, Patrick Monnerat,
- Tim Newsome, Dan Locks, Vlad Ureche, Dimitre Dimitrov
+ Dan Fandrich, Guenter Knauf, Pat Ray, Hongli Lai, Kamil Dudka,
+ Stefan Tomanek, Alfred Gebert, Yang Tse, Julien Chaffraix, Adam Light,
+ Rutger Hofman, Matthias Bolte, Heinrich Ko, Dmitri Shubin
Thanks! (and sorry if I forgot to mention someone)
diff --git a/acinclude.m4 b/acinclude.m4
index 225fb9d1..9f790522 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -3246,3 +3246,44 @@ AC_DEFUN([CURL_CHECK_PKGCONFIG], [
fi
fi
])
+
+
+dnl CURL_GENERATE_CONFIGUREHELP_PM
+dnl -------------------------------------------------
+dnl Generate test harness configurehelp.pm module, defining and
+dnl initializing some perl variables with values which are known
+dnl when the configure script runs. For portability reasons, test
+dnl harness needs information on how to run the C preprocessor.
+
+AC_DEFUN([CURL_GENERATE_CONFIGUREHELP_PM], [
+ AC_REQUIRE([AC_PROG_CPP])dnl
+ tmp_cpp=`eval echo "$ac_cpp" 2>/dev/null`
+ if test -z "$tmp_cpp"; then
+ tmp_cpp='cpp'
+ fi
+ cat >./tests/configurehelp.pm <<_EOF
+[@%:@] This is a generated file. Do not edit.
+
+package configurehelp;
+
+use strict;
+use warnings;
+use Exporter;
+
+use vars qw(
+ @ISA
+ @EXPORT_OK
+ \$Cpreprocessor
+ );
+
+@ISA = qw(Exporter);
+
+@EXPORT_OK = qw(
+ \$Cpreprocessor
+ );
+
+\$Cpreprocessor = '$tmp_cpp';
+
+1;
+_EOF
+])
diff --git a/buildconf b/buildconf
index 76e310e0..f77ed766 100755
--- a/buildconf
+++ b/buildconf
@@ -293,6 +293,7 @@ for fname in .deps \
config.status \
config.sub \
configure \
+ configurehelp.pm \
curl-config \
curlbuild.h \
depcomp \
@@ -364,6 +365,12 @@ if test ! -f ./config.guess; then
else
buildhost=`./config.guess 2>/dev/null|head -n 1`
case $buildhost in
+ *-*-darwin*)
+ need_lt_major=1
+ need_lt_minor=5
+ need_lt_patch=26
+ need_lt_check="yes"
+ ;;
*-*-hpux*)
need_lt_major=1
need_lt_minor=5
diff --git a/configure b/configure
index 576e62f5..a730b0a1 100755
--- a/configure
+++ b/configure
@@ -18639,34 +18639,35 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if argv can be written to" >&5
$as_echo_n "checking if argv can be written to... " >&6; }
-if test "${curl_cv_writable_argv+set}" = set; then :
- $as_echo_n "(cached) " >&6
-else
-
if test "$cross_compiling" = yes; then :
+
curl_cv_writable_argv=cross
+
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
+
int main(int argc, char ** argv) {
- argv[0][0] = ' ';
- return (argv[0][0] == ' ')?0:1;
+ argv[0][0] = ' ';
+ return (argv[0][0] == ' ')?0:1;
}
+
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
+
curl_cv_writable_argv=yes
+
else
+
curl_cv_writable_argv=no
+
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
-fi
-
case $curl_cv_writable_argv in
yes)
@@ -21093,8 +21094,8 @@ done
if test "$LIBSSH2_ENABLED" = "1"; then
if test -n "$DIR_SSH2"; then
- for ac_func in libssh2_version libssh2_init libssh2_exit \
- libssh2_scp_send64
+ for ac_func in libssh2_version libssh2_init libssh2_exit \
+ libssh2_scp_send64 libssh2_session_handshake
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
@@ -21256,6 +21257,8 @@ $as_echo "found" >&6; }
CPP_RTMP=`$PKGCONFIG --cflags-only-I librtmp`
version=`$PKGCONFIG --modversion librtmp`
DIR_RTMP=`echo $LD_RTMP | $SED -e 's/-L//'`
+ else
+ as_fn_error $? "--librtmp was specified but could not find librtmp pkgconfig file." "$LINENO" 5
fi
;;
@@ -22468,16 +22471,30 @@ if test "xyes" = "x$longlong"; then
$as_echo_n "checking if numberLL works... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-long long val = 1000LL;
+
+
+
+int main (void)
+{
+
+ long long val = 1000LL;
+
+ ;
+ return 0;
+}
+
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
$as_echo "#define HAVE_LL 1" >>confdefs.h
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
@@ -25801,6 +25818,240 @@ $as_echo "no" >&6; }
fi
+curl_includes_sys_xattr="\
+/* includes start */
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_XATTR_H
+# include <sys/xattr.h>
+#endif
+/* includes end */"
+ for ac_header in sys/types.h sys/xattr.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_sys_xattr
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+ #
+ tst_links_fsetxattr="unknown"
+ tst_proto_fsetxattr="unknown"
+ tst_compi_fsetxattr="unknown"
+ tst_allow_fsetxattr="unknown"
+ tst_nargs_fsetxattr="unknown"
+ #
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fsetxattr can be linked" >&5
+$as_echo_n "checking if fsetxattr can be linked... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+
+#define fsetxattr innocuous_fsetxattr
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+#undef fsetxattr
+#ifdef __cplusplus
+extern "C"
+#endif
+char fsetxattr ();
+#if defined __stub_fsetxattr || defined __stub___fsetxattr
+choke me
+#endif
+
+int main (void)
+{
+return fsetxattr ();
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ tst_links_fsetxattr="yes"
+
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ tst_links_fsetxattr="no"
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ #
+ if test "$tst_links_fsetxattr" = "yes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fsetxattr is prototyped" >&5
+$as_echo_n "checking if fsetxattr is prototyped... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ $curl_includes_sys_xattr
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "fsetxattr" >/dev/null 2>&1; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ tst_proto_fsetxattr="yes"
+
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ tst_proto_fsetxattr="no"
+
+fi
+rm -f conftest*
+
+ fi
+ #
+ if test "$tst_proto_fsetxattr" = "yes"; then
+ if test "$tst_nargs_fsetxattr" = "unknown"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fsetxattr takes 5 args." >&5
+$as_echo_n "checking if fsetxattr takes 5 args.... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+
+ $curl_includes_sys_xattr
+
+int main (void)
+{
+
+ if(0 != fsetxattr(0, 0, 0, 0, 0))
+ return 1;
+
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ tst_compi_fsetxattr="yes"
+ tst_nargs_fsetxattr="5"
+
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ tst_compi_fsetxattr="no"
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ if test "$tst_nargs_fsetxattr" = "unknown"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fsetxattr takes 6 args." >&5
+$as_echo_n "checking if fsetxattr takes 6 args.... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+
+ $curl_includes_sys_xattr
+
+int main (void)
+{
+
+ if(0 != fsetxattr(0, 0, 0, 0, 0, 0))
+ return 1;
+
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ tst_compi_fsetxattr="yes"
+ tst_nargs_fsetxattr="6"
+
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ tst_compi_fsetxattr="no"
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fsetxattr is compilable" >&5
+$as_echo_n "checking if fsetxattr is compilable... " >&6; }
+ if test "$tst_compi_fsetxattr" = "yes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ fi
+ fi
+ #
+ if test "$tst_compi_fsetxattr" = "yes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fsetxattr usage allowed" >&5
+$as_echo_n "checking if fsetxattr usage allowed... " >&6; }
+ if test "x$curl_disallow_fsetxattr" != "xyes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ tst_allow_fsetxattr="yes"
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ tst_allow_fsetxattr="no"
+ fi
+ fi
+ #
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fsetxattr might be used" >&5
+$as_echo_n "checking if fsetxattr might be used... " >&6; }
+ if test "$tst_links_fsetxattr" = "yes" &&
+ test "$tst_proto_fsetxattr" = "yes" &&
+ test "$tst_compi_fsetxattr" = "yes" &&
+ test "$tst_allow_fsetxattr" = "yes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_FSETXATTR 1
+_ACEOF
+
+ #
+ if test "$tst_nargs_fsetxattr" -eq "5"; then
+
+$as_echo "#define HAVE_FSETXATTR_5 1" >>confdefs.h
+
+ elif test "$tst_nargs_fsetxattr" -eq "6"; then
+
+$as_echo "#define HAVE_FSETXATTR_6 1" >>confdefs.h
+
+ fi
+ #
+ ac_cv_func_fsetxattr="yes"
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ ac_cv_func_fsetxattr="no"
+ fi
+
+
#
tst_links_ftruncate="unknown"
tst_proto_ftruncate="unknown"
@@ -33444,7 +33695,6 @@ $as_echo "no" >&6; }
fi
-
case $host in
*msdosdjgpp)
ac_cv_func_pipe=no
@@ -37275,6 +37525,38 @@ $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
fi
+
+ tmp_cpp=`eval echo "$ac_cpp" 2>/dev/null`
+ if test -z "$tmp_cpp"; then
+ tmp_cpp='cpp'
+ fi
+ cat >./tests/configurehelp.pm <<_EOF
+# This is a generated file. Do not edit.
+
+package configurehelp;
+
+use strict;
+use warnings;
+use Exporter;
+
+use vars qw(
+ @ISA
+ @EXPORT_OK
+ \$Cpreprocessor
+ );
+
+@ISA = qw(Exporter);
+
+@EXPORT_OK = qw(
+ \$Cpreprocessor
+ );
+
+\$Cpreprocessor = '$tmp_cpp';
+
+1;
+_EOF
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: Configured to build curl/libcurl:
curl version: ${VERSION}
diff --git a/configure.ac b/configure.ac
index 28a19557..c75f4d15 100644
--- a/configure.ac
+++ b/configure.ac
@@ -955,16 +955,19 @@ dnl Check if the operating system allows programs to write to their own argv[]
dnl **********************************************************************
AC_MSG_CHECKING([if argv can be written to])
-AC_CACHE_VAL(curl_cv_writable_argv, [
-AC_RUN_IFELSE([[
+AC_RUN_IFELSE([
+ AC_LANG_SOURCE([[
int main(int argc, char ** argv) {
- argv[0][0] = ' ';
- return (argv[0][0] == ' ')?0:1;
+ argv[0][0] = ' ';
+ return (argv[0][0] == ' ')?0:1;
}
- ]],
- curl_cv_writable_argv=yes,
- curl_cv_writable_argv=no,
- curl_cv_writable_argv=cross)
+ ]])
+],[
+ curl_cv_writable_argv=yes
+],[
+ curl_cv_writable_argv=no
+],[
+ curl_cv_writable_argv=cross
])
case $curl_cv_writable_argv in
yes)
@@ -2019,8 +2022,9 @@ if test X"$OPT_LIBSSH2" != Xno; then
dnl libssh2_version is a post 1.0 addition
dnl libssh2_init and libssh2_exit were added in 1.2.5
dnl libssh2_scp_send64 was added in 1.2.6
+ dnl libssh2_session_handshake was added in 1.2.8
AC_CHECK_FUNCS( libssh2_version libssh2_init libssh2_exit \
- libssh2_scp_send64 )
+ libssh2_scp_send64 libssh2_session_handshake)
LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$DIR_SSH2"
export LD_LIBRARY_PATH
@@ -2062,6 +2066,10 @@ if test X"$OPT_LIBRTMP" != Xno; then
CPP_RTMP=`$PKGCONFIG --cflags-only-I librtmp`
version=`$PKGCONFIG --modversion librtmp`
DIR_RTMP=`echo $LD_RTMP | $SED -e 's/-L//'`
+ else
+ dnl To avoid link errors, we do not allow --librtmp without
+ dnl a pkgconfig file
+ AC_MSG_ERROR([--librtmp was specified but could not find librtmp pkgconfig file.])
fi
;;
@@ -2277,11 +2285,17 @@ AC_CHECK_TYPE(long long,
if test "xyes" = "x$longlong"; then
AC_MSG_CHECKING([if numberLL works])
- AC_COMPILE_IFELSE([long long val = 1000LL;],
- [AC_DEFINE(HAVE_LL, 1, [if your compiler supports LL])]
- AC_MSG_RESULT(yes),
- AC_MSG_RESULT(no)
- )
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
+ ]],[[
+ long long val = 1000LL;
+ ]])
+ ],[
+ AC_MSG_RESULT([yes])
+ AC_DEFINE(HAVE_LL, 1, [if your compiler supports LL])
+ ],[
+ AC_MSG_RESULT([no])
+ ])
fi
@@ -2328,6 +2342,7 @@ CURL_CHECK_FUNC_FCNTL
CURL_CHECK_FUNC_FDOPEN
CURL_CHECK_FUNC_FREEADDRINFO
CURL_CHECK_FUNC_FREEIFADDRS
+CURL_CHECK_FUNC_FSETXATTR
CURL_CHECK_FUNC_FTRUNCATE
CURL_CHECK_FUNC_GETADDRINFO
CURL_CHECK_FUNC_GETHOSTBYADDR
@@ -2368,10 +2383,6 @@ CURL_CHECK_FUNC_STRTOK_R
CURL_CHECK_FUNC_STRTOLL
CURL_CHECK_FUNC_WRITEV
-dnl Checks for library functions.
-dnl AC_PROG_GCC_TRADITIONAL
-
-dnl AC_FUNC_VPRINTF
case $host in
*msdosdjgpp)
ac_cv_func_pipe=no
@@ -2862,6 +2873,8 @@ AC_CONFIG_FILES([Makefile \
])
AC_OUTPUT
+CURL_GENERATE_CONFIGUREHELP_PM
+
AC_MSG_NOTICE([Configured to build curl/libcurl:
curl version: ${VERSION}
diff --git a/docs/FAQ b/docs/FAQ
index 2e35dd67..bed125e5 100644
--- a/docs/FAQ
+++ b/docs/FAQ
@@ -1284,7 +1284,10 @@ FAQ
this section was much enhanced by Bjorn Reese.)
We are not lawyers and this is not legal advice. You should probably consult
- one if you want true and accurate legal insights without our prejudice.
+ one if you want true and accurate legal insights without our prejudice. Note
+ especially that this section concerns the libcurl license only; compiling in
+ features of libcurl that depend on other libraries (e.g. OpenSSL) may affect
+ the licensing obligations of your application.
6.1 I have a GPL program, can I use the libcurl library?
diff --git a/docs/THANKS b/docs/THANKS
index a85f488b..edcd513e 100644
--- a/docs/THANKS
+++ b/docs/THANKS
@@ -102,6 +102,7 @@ Brock Noland
Bruce Mitchener
Bryan Henderson
Bryan Kemp
+Cameron Kaiser
Camille Moncelier
Caolan McNamara
Carsten Lange
@@ -147,6 +148,7 @@ Damien Adant
Dan Becker
Dan C
Dan Fandrich
+Dan Locks
Dan Nelson
Dan Petitt
Dan Torop
@@ -192,6 +194,7 @@ Detlef Schmier
Didier Brisebourg
Diego Casorran
Dima Barsky
+Dimitre Dimitrov
Dimitris Sarris
Dinar
Dirk Eddelbuettel
@@ -304,6 +307,7 @@ Hardeep Singh
Harshal Pradhan
Hauke Duden
Heikki Korpela
+Hendrik Visage
Henrik Storner
Hidemoto Nakada
Hoi-Ho Chan
@@ -519,6 +523,7 @@ Matt Wixson
Matthew Blain
Matthew Clarke
Maurice Barnum
+Mauro Iorio
Max Katsev
Maxim Ivanov
Maxim Perenesenko
@@ -536,6 +541,7 @@ Michael Smith
Michael Stillwell
Michael Wallner
Michal Bonino
+Michal Gorny
Michal Marek
Michele Bini
Mihai Ionescu
@@ -572,6 +578,7 @@ Nikita Schmidt
Nikitinskit Dmitriy
Niklas Angebrand
Nikolai Kondrashov
+Ning Dong
Nir Soffer
Nis Jorgensen
Nodak Sodak
@@ -632,6 +639,7 @@ Pooyan McSporran
Pramod Sharma
Puneet Pawaia
Quagmire
+Quanah Gibson-Mount
Rafa Muyo
Rafael Sagula
Rainer Canavan
@@ -761,6 +769,7 @@ Tim Baker
Tim Bartley
Tim Chen
Tim Costello
+Tim Newsome
Tim Sneddon
Tobias Rundström
Toby Peterson
@@ -799,6 +808,7 @@ Vincent Le Normand
Vincent Penquerc'h
Vincent Sanders
Vlad Grachov
+Vlad Ureche
Vladimir Lazarenko
Vojtech Janota
Vojtech Minarik
diff --git a/docs/curl-config.pdf b/docs/curl-config.pdf
index 074e1ca8..e159a94b 100644
--- a/docs/curl-config.pdf
+++ b/docs/curl-config.pdf
Binary files differ
diff --git a/docs/curl.1 b/docs/curl.1
index 2acd7b7e..95614c6e 100644
--- a/docs/curl.1
+++ b/docs/curl.1
@@ -526,8 +526,8 @@ or
\fBcurl\fP -F "name=daniel;type=text/foo" url.com
-You can also explicitly change the name field of an file upload part by
-setting filename=, like this:
+You can also explicitly change the name field of a file upload part by setting
+filename=, like this:
\fBcurl\fP -F "file=@localfile;filename=nameinpost" url.com
@@ -1142,6 +1142,18 @@ encodings and instead makes them passed on unaltered, raw. (Added in 7.16.2)
When used, this will make libcurl attempt to figure out the timestamp of the
remote file, and if that is available make the local file get that same
timestamp.
+.IP "--resolve <host:port: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
+/etc/hosts alternative provided on the command line. The port number should be
+the number used for the specific protocol the host will be used for. It means
+you need several entries if you want to provide address for the same host but
+different ports.
+
+This option can be used many times to add many host names to resolve.
+
+(Added in 7.21.3)
.IP "--retry <num>"
If a transient error is returned when curl tries to perform a transfer, it
will retry this number of times before giving up. Setting the number to 0
@@ -1751,6 +1763,16 @@ Failed to shut down the SSL connection.
Could not load CRL file, missing or wrong format (added in 7.19.0).
.IP 83
Issuer check failed (added in 7.19.0).
+.IP 84
+The FTP PRET command failed
+.IP 85
+RTSP: mismatch of CSeq numbers
+.IP 86
+RTSP: mismatch of Session Identifiers
+.IP 87
+unable to parse FTP file list
+.IP 88
+FTP chunk callback reported error
.IP XX
More error codes will appear here in future releases. The existing ones
are meant to never change.
diff --git a/docs/curl.html b/docs/curl.html
index c578011b..fb8f4b4b 100644
--- a/docs/curl.html
+++ b/docs/curl.html
@@ -226,7 +226,7 @@ p.roffit {
<p class="level1"><span Class="bold">curl</span> -F "web=@index.html;type=text/html" url.com
<p class="level1">or
<p class="level1"><span Class="bold">curl</span> -F "name=daniel;type=text/foo" url.com
-<p class="level1">You can also explicitly change the name field of an file upload part by setting filename=, like this:
+<p class="level1">You can also explicitly change the name field of a file upload part by setting filename=, like this:
<p class="level1"><span Class="bold">curl</span> -F "file=@localfile;filename=nameinpost" url.com
<p class="level1">See further examples and details in the MANUAL.
<p class="level1">This option can be used multiple times.
@@ -486,6 +486,10 @@ p.roffit {
<p class="level1">When used, it disables all internal HTTP decoding of content or transfer encodings and instead makes them passed on unaltered, raw. (Added in 7.16.2)
<p class="level0"><a name="-R--remote-time"></a><span class="nroffip">-R/--remote-time</span>
<p class="level1">When used, this will make libcurl attempt to figure out the timestamp of the remote file, and if that is available make the local file get that same timestamp.
+<p class="level0"><a name="--resolve"></a><span class="nroffip">--resolve &lt;host:port:address&gt;</span>
+<p class="level1">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 /etc/hosts alternative provided on the command line. The port number should be the number used for the specific protocol the host will be used for. It means you need several entries if you want to provide address for the same host but different ports.
+<p class="level1">This option can be used many times to add many host names to resolve.
+<p class="level1">(Added in 7.21.3)
<p class="level0"><a name="--retry"></a><span class="nroffip">--retry &lt;num&gt;</span>
<p class="level1">If a transient error is returned when curl tries to perform a transfer, it will retry this number of times before giving up. Setting the number to 0 makes curl do no retries (which is the default). Transient error means either: a timeout, an FTP 4xx response code or an HTTP 5xx response code.
<p class="level1">When curl is about to retry a transfer, it will first wait one second and then for all forthcoming retries it will double the waiting time until it reaches 10 minutes which then will be the delay between the rest of the retries. By using <a class="emphasis" href="#--retry-delay">--retry-delay</a> you disable this exponential backoff algorithm. See also <a class="emphasis" href="#--retry-max-time">--retry-max-time</a> to limit the total time allowed for retries. (Added in 7.12.3)
@@ -823,6 +827,16 @@ p.roffit {
<p class="level1">Could not load CRL file, missing or wrong format (added in 7.19.0).
<p class="level0"><a name="83"></a><span class="nroffip">83</span>
<p class="level1">Issuer check failed (added in 7.19.0).
+<p class="level0"><a name="84"></a><span class="nroffip">84</span>
+<p class="level1">The FTP PRET command failed
+<p class="level0"><a name="85"></a><span class="nroffip">85</span>
+<p class="level1">RTSP: mismatch of CSeq numbers
+<p class="level0"><a name="86"></a><span class="nroffip">86</span>
+<p class="level1">RTSP: mismatch of Session Identifiers
+<p class="level0"><a name="87"></a><span class="nroffip">87</span>
+<p class="level1">unable to parse FTP file list
+<p class="level0"><a name="88"></a><span class="nroffip">88</span>
+<p class="level1">FTP chunk callback reported error
<p class="level0"><a name="XX"></a><span class="nroffip">XX</span>
<p class="level1">More error codes will appear here in future releases. The existing ones are meant to never change. <a name="AUTHORS"></a><h2 class="nroffsh">AUTHORS / CONTRIBUTORS</h2>
<p class="level0">Daniel Stenberg is the main author, but the whole list of contributors is found in the separate THANKS file. <a name="WWW"></a><h2 class="nroffsh">WWW</h2>
diff --git a/docs/curl.pdf b/docs/curl.pdf
index d0e7ce29..efb5ee1f 100644
--- a/docs/curl.pdf
+++ b/docs/curl.pdf
Binary files differ
diff --git a/docs/examples/Makefile.in b/docs/examples/Makefile.in
index aba3989b..1c768222 100644
--- a/docs/examples/Makefile.in
+++ b/docs/examples/Makefile.in
@@ -51,7 +51,8 @@ check_PROGRAMS = 10-at-a-time$(EXEEXT) anyauthput$(EXEEXT) \
post-callback$(EXEEXT) postit2$(EXEEXT) sepheaders$(EXEEXT) \
simple$(EXEEXT) simplepost$(EXEEXT) simplessl$(EXEEXT) \
sendrecv$(EXEEXT) httpcustomheader$(EXEEXT) certinfo$(EXEEXT) \
- chkspeed$(EXEEXT) ftpgetinfo$(EXEEXT) ftp-wildcard$(EXEEXT)
+ chkspeed$(EXEEXT) ftpgetinfo$(EXEEXT) ftp-wildcard$(EXEEXT) \
+ smtp-multi$(EXEEXT)
subdir = docs/examples
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
@@ -198,6 +199,10 @@ simplessl_SOURCES = simplessl.c
simplessl_OBJECTS = simplessl.$(OBJEXT)
simplessl_LDADD = $(LDADD)
simplessl_DEPENDENCIES = $(LIBDIR)/libcurl.la
+smtp_multi_SOURCES = smtp-multi.c
+smtp_multi_OBJECTS = smtp-multi.$(OBJEXT)
+smtp_multi_LDADD = $(LDADD)
+smtp_multi_DEPENDENCIES = $(LIBDIR)/libcurl.la
DEFAULT_INCLUDES =
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
@@ -215,14 +220,16 @@ SOURCES = 10-at-a-time.c anyauthput.c certinfo.c chkspeed.c \
getinmemory.c http-post.c httpcustomheader.c httpput.c https.c \
multi-app.c multi-debugcallback.c multi-double.c multi-post.c \
multi-single.c persistant.c post-callback.c postit2.c \
- sendrecv.c sepheaders.c simple.c simplepost.c simplessl.c
+ sendrecv.c sepheaders.c simple.c simplepost.c simplessl.c \
+ smtp-multi.c
DIST_SOURCES = 10-at-a-time.c anyauthput.c certinfo.c chkspeed.c \
cookie_interface.c debug.c fileupload.c fopen.c ftp-wildcard.c \
ftpget.c ftpgetinfo.c ftpgetresp.c ftpupload.c getinfo.c \
getinmemory.c http-post.c httpcustomheader.c httpput.c https.c \
multi-app.c multi-debugcallback.c multi-double.c multi-post.c \
multi-single.c persistant.c post-callback.c postit2.c \
- sendrecv.c sepheaders.c simple.c simplepost.c simplessl.c
+ sendrecv.c sepheaders.c simple.c simplepost.c simplessl.c \
+ smtp-multi.c
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -437,7 +444,8 @@ LDADD = $(LIBDIR)/libcurl.la
# available on POSIX systems, so don't bother attempting to compile them here.
COMPLICATED_EXAMPLES = curlgtk.c curlx.c htmltitle.cc cacertinmem.c \
ftpuploadresume.c ghiper.c hiperfifo.c htmltidy.c multithread.c \
- opensslthreadlock.c sampleconv.c synctime.c threaded-ssl.c evhiperfifo.c
+ opensslthreadlock.c sampleconv.c synctime.c threaded-ssl.c evhiperfifo.c \
+ smooth-gtk-thread.c version-check.pl
all: all-am
@@ -575,6 +583,9 @@ simplepost$(EXEEXT): $(simplepost_OBJECTS) $(simplepost_DEPENDENCIES)
simplessl$(EXEEXT): $(simplessl_OBJECTS) $(simplessl_DEPENDENCIES)
@rm -f simplessl$(EXEEXT)
$(LINK) $(simplessl_LDFLAGS) $(simplessl_OBJECTS) $(simplessl_LDADD) $(LIBS)
+smtp-multi$(EXEEXT): $(smtp_multi_OBJECTS) $(smtp_multi_DEPENDENCIES)
+ @rm -f smtp-multi$(EXEEXT)
+ $(LINK) $(smtp_multi_LDFLAGS) $(smtp_multi_OBJECTS) $(smtp_multi_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@@ -614,6 +625,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simplepost.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simplessl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smtp-multi.Po@am__quote@
.c.o:
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
diff --git a/docs/examples/Makefile.inc b/docs/examples/Makefile.inc
index 78d31266..34c1c0f1 100644
--- a/docs/examples/Makefile.inc
+++ b/docs/examples/Makefile.inc
@@ -3,10 +3,12 @@ check_PROGRAMS = 10-at-a-time anyauthput cookie_interface debug fileupload \
fopen ftpget ftpgetresp ftpupload getinfo getinmemory http-post httpput \
https multi-app multi-debugcallback multi-double multi-post multi-single \
persistant post-callback postit2 sepheaders simple simplepost simplessl \
- sendrecv httpcustomheader certinfo chkspeed ftpgetinfo ftp-wildcard
+ sendrecv httpcustomheader certinfo chkspeed ftpgetinfo ftp-wildcard \
+ smtp-multi
# These examples require external dependencies that may not be commonly
# available on POSIX systems, so don't bother attempting to compile them here.
COMPLICATED_EXAMPLES = curlgtk.c curlx.c htmltitle.cc cacertinmem.c \
ftpuploadresume.c ghiper.c hiperfifo.c htmltidy.c multithread.c \
- opensslthreadlock.c sampleconv.c synctime.c threaded-ssl.c evhiperfifo.c
+ opensslthreadlock.c sampleconv.c synctime.c threaded-ssl.c evhiperfifo.c \
+ smooth-gtk-thread.c version-check.pl
diff --git a/docs/examples/chkspeed.c b/docs/examples/chkspeed.c
index d802469b..00db5bf1 100644
--- a/docs/examples/chkspeed.c
+++ b/docs/examples/chkspeed.c
@@ -71,7 +71,7 @@ int main(int argc, char *argv[])
} else if (strncasecmp(*argv, "-T", 2) == 0) {
prttime = 1;
} else if (strncasecmp(*argv, "-M=", 3) == 0) {
- int m = atoi(*argv + 3);
+ long m = strtol(argv+3, NULL, 10);
switch(m) {
case 1: url = URL_1M;
break;
diff --git a/docs/examples/fopen.c b/docs/examples/fopen.c
index 1310993b..e4505bf5 100644
--- a/docs/examples/fopen.c
+++ b/docs/examples/fopen.c
@@ -53,20 +53,24 @@
#include <curl/curl.h>
-enum fcurl_type_e { CFTYPE_NONE=0, CFTYPE_FILE=1, CFTYPE_CURL=2 };
+enum fcurl_type_e {
+ CFTYPE_NONE=0,
+ CFTYPE_FILE=1,
+ CFTYPE_CURL=2
+};
struct fcurl_data
{
- enum fcurl_type_e type; /* type of handle */
- union {
- CURL *curl;
- FILE *file;
- } handle; /* handle */
-
- char *buffer; /* buffer to store cached data*/
- int buffer_len; /* currently allocated buffers length */
- int buffer_pos; /* end of data in buffer*/
- int still_running; /* Is background url fetch still in progress */
+ enum fcurl_type_e type; /* type of handle */
+ union {
+ CURL *curl;
+ FILE *file;
+ } handle; /* handle */
+
+ char *buffer; /* buffer to store cached data*/
+ int buffer_len; /* currently allocated buffers length */
+ int buffer_pos; /* end of data in buffer*/
+ int still_running; /* Is background url fetch still in progress */
};
typedef struct fcurl_data URL_FILE;
@@ -83,491 +87,441 @@ void url_rewind(URL_FILE *file);
CURLM *multi_handle;
/* curl calls this routine to get more data */
-static size_t
-write_callback(char *buffer,
- size_t size,
- size_t nitems,
- void *userp)
+static size_t write_callback(char *buffer,
+ size_t size,
+ size_t nitems,
+ void *userp)
{
- char *newbuff;
- int rembuff;
-
- URL_FILE *url = (URL_FILE *)userp;
- size *= nitems;
-
- rembuff=url->buffer_len - url->buffer_pos; /* remaining space in buffer */
-
- if(size > rembuff)
- {
- /* not enough space in buffer */
- newbuff=realloc(url->buffer,url->buffer_len + (size - rembuff));
- if(newbuff==NULL)
- {
- fprintf(stderr,"callback buffer grow failed\n");
- size=rembuff;
- }
- else
- {
- /* realloc suceeded increase buffer size*/
- url->buffer_len+=size - rembuff;
- url->buffer=newbuff;
-
- /*printf("Callback buffer grown to %d bytes\n",url->buffer_len);*/
- }
- }
+ char *newbuff;
+ int rembuff;
+
+ URL_FILE *url = (URL_FILE *)userp;
+ size *= nitems;
- memcpy(&url->buffer[url->buffer_pos], buffer, size);
- url->buffer_pos += size;
+ rembuff=url->buffer_len - url->buffer_pos; /* remaining space in buffer */
+
+ if(size > rembuff) {
+ /* not enough space in buffer */
+ newbuff=realloc(url->buffer,url->buffer_len + (size - rembuff));
+ if(newbuff==NULL) {
+ fprintf(stderr,"callback buffer grow failed\n");
+ size=rembuff;
+ }
+ else {
+ /* realloc suceeded increase buffer size*/
+ url->buffer_len+=size - rembuff;
+ url->buffer=newbuff;
+ }
+ }
- /*fprintf(stderr, "callback %d size bytes\n", size);*/
+ memcpy(&url->buffer[url->buffer_pos], buffer, size);
+ url->buffer_pos += size;
- return size;
+ return size;
}
/* use to attempt to fill the read buffer up to requested number of bytes */
-static int
-fill_buffer(URL_FILE *file,int want,int waittime)
+static int fill_buffer(URL_FILE *file,int want,int waittime)
{
- fd_set fdread;
- fd_set fdwrite;
- fd_set fdexcep;
- struct timeval timeout;
- int rc;
-
- /* only attempt to fill buffer if transactions still running and buffer
- * doesnt exceed required size already
- */
- if((!file->still_running) || (file->buffer_pos > want))
- return 0;
-
- /* attempt to fill buffer */
- do
- {
- int maxfd = -1;
- long curl_timeo = -1;
-
- FD_ZERO(&fdread);
- FD_ZERO(&fdwrite);
- FD_ZERO(&fdexcep);
-
- /* set a suitable timeout to fail on */
- timeout.tv_sec = 60; /* 1 minute */
- timeout.tv_usec = 0;
-
- curl_multi_timeout(multi_handle, &curl_timeo);
- if(curl_timeo >= 0) {
- timeout.tv_sec = curl_timeo / 1000;
- if(timeout.tv_sec > 1)
- timeout.tv_sec = 1;
- else
- timeout.tv_usec = (curl_timeo % 1000) * 1000;
- }
-
- /* get file descriptors from the transfers */
- curl_multi_fdset(multi_handle, &fdread, &fdwrite, &fdexcep, &maxfd);
-
- /* In a real-world program you OF COURSE check the return code of the
- function calls. On success, the value of maxfd is guaranteed to be
- greater or equal than -1. We call select(maxfd + 1, ...), specially
- in case of (maxfd == -1), we call select(0, ...), which is basically
- equal to sleep. */
-
- rc = select(maxfd+1, &fdread, &fdwrite, &fdexcep, &timeout);
-
- switch(rc) {
- case -1:
- /* select error */
- break;
-
- case 0:
- break;
-
- default:
- /* timeout or readable/writable sockets */
- curl_multi_perform(multi_handle, &file->still_running);
- break;
- }
- } while(file->still_running && (file->buffer_pos < want));
- return 1;
-}
+ fd_set fdread;
+ fd_set fdwrite;
+ fd_set fdexcep;
+ struct timeval timeout;
+ int rc;
+
+ /* only attempt to fill buffer if transactions still running and buffer
+ * doesnt exceed required size already
+ */
+ if((!file->still_running) || (file->buffer_pos > want))
+ return 0;
-/* use to remove want bytes from the front of a files buffer */
-static int
-use_buffer(URL_FILE *file,int want)
-{
- /* sort out buffer */
- if((file->buffer_pos - want) <=0)
- {
- /* ditch buffer - write will recreate */
- if(file->buffer)
- free(file->buffer);
-
- file->buffer=NULL;
- file->buffer_pos=0;
- file->buffer_len=0;
+ /* attempt to fill buffer */
+ do {
+ int maxfd = -1;
+ long curl_timeo = -1;
+
+ FD_ZERO(&fdread);
+ FD_ZERO(&fdwrite);
+ FD_ZERO(&fdexcep);
+
+ /* set a suitable timeout to fail on */
+ timeout.tv_sec = 60; /* 1 minute */
+ timeout.tv_usec = 0;
+
+ curl_multi_timeout(multi_handle, &curl_timeo);
+ if(curl_timeo >= 0) {
+ timeout.tv_sec = curl_timeo / 1000;
+ if(timeout.tv_sec > 1)
+ timeout.tv_sec = 1;
+ else
+ timeout.tv_usec = (curl_timeo % 1000) * 1000;
}
- else
- {
- /* move rest down make it available for later */
- memmove(file->buffer,
- &file->buffer[want],
- (file->buffer_pos - want));
-
- file->buffer_pos -= want;
+
+ /* get file descriptors from the transfers */
+ curl_multi_fdset(multi_handle, &fdread, &fdwrite, &fdexcep, &maxfd);
+
+ /* In a real-world program you OF COURSE check the return code of the
+ function calls. On success, the value of maxfd is guaranteed to be
+ greater or equal than -1. We call select(maxfd + 1, ...), specially
+ in case of (maxfd == -1), we call select(0, ...), which is basically
+ equal to sleep. */
+
+ rc = select(maxfd+1, &fdread, &fdwrite, &fdexcep, &timeout);
+
+ switch(rc) {
+ case -1:
+ /* select error */
+ break;
+
+ case 0:
+ default:
+ /* timeout or readable/writable sockets */
+ curl_multi_perform(multi_handle, &file->still_running);
+ break;
}
- return 0;
+ } while(file->still_running && (file->buffer_pos < want));
+ return 1;
}
+/* use to remove want bytes from the front of a files buffer */
+static int use_buffer(URL_FILE *file,int want)
+{
+ /* sort out buffer */
+ if((file->buffer_pos - want) <=0) {
+ /* ditch buffer - write will recreate */
+ if(file->buffer)
+ free(file->buffer);
+
+ file->buffer=NULL;
+ file->buffer_pos=0;
+ file->buffer_len=0;
+ }
+ else {
+ /* move rest down make it available for later */
+ memmove(file->buffer,
+ &file->buffer[want],
+ (file->buffer_pos - want));
+
+ file->buffer_pos -= want;
+ }
+ return 0;
+}
-
-URL_FILE *
-url_fopen(const char *url,const char *operation)
+URL_FILE *url_fopen(const char *url,const char *operation)
{
- /* this code could check for URLs or types in the 'url' and
- basicly use the real fopen() for standard files */
+ /* this code could check for URLs or types in the 'url' and
+ basicly use the real fopen() for standard files */
- URL_FILE *file;
- (void)operation;
+ URL_FILE *file;
+ (void)operation;
- file = malloc(sizeof(URL_FILE));
- if(!file)
- return NULL;
+ file = malloc(sizeof(URL_FILE));
+ if(!file)
+ return NULL;
- memset(file, 0, sizeof(URL_FILE));
+ memset(file, 0, sizeof(URL_FILE));
- if((file->handle.file=fopen(url,operation)))
- {
- file->type = CFTYPE_FILE; /* marked as URL */
- }
- else
- {
- file->type = CFTYPE_CURL; /* marked as URL */
- file->handle.curl = curl_easy_init();
+ if((file->handle.file=fopen(url,operation)))
+ file->type = CFTYPE_FILE; /* marked as URL */
+
+ else {
+ file->type = CFTYPE_CURL; /* marked as URL */
+ file->handle.curl = curl_easy_init();
- curl_easy_setopt(file->handle.curl, CURLOPT_URL, url);
- curl_easy_setopt(file->handle.curl, CURLOPT_WRITEDATA, file);
- curl_easy_setopt(file->handle.curl, CURLOPT_VERBOSE, 0L);
- curl_easy_setopt(file->handle.curl, CURLOPT_WRITEFUNCTION, write_callback);
+ curl_easy_setopt(file->handle.curl, CURLOPT_URL, url);
+ curl_easy_setopt(file->handle.curl, CURLOPT_WRITEDATA, file);
+ curl_easy_setopt(file->handle.curl, CURLOPT_VERBOSE, 0L);
+ curl_easy_setopt(file->handle.curl, CURLOPT_WRITEFUNCTION, write_callback);
- if(!multi_handle)
- multi_handle = curl_multi_init();
+ if(!multi_handle)
+ multi_handle = curl_multi_init();
- curl_multi_add_handle(multi_handle, file->handle.curl);
+ curl_multi_add_handle(multi_handle, file->handle.curl);
- /* lets start the fetch */
- curl_multi_perform(multi_handle, &file->still_running);
+ /* lets start the fetch */
+ curl_multi_perform(multi_handle, &file->still_running);
- if((file->buffer_pos == 0) && (!file->still_running))
- {
- /* if still_running is 0 now, we should return NULL */
+ if((file->buffer_pos == 0) && (!file->still_running)) {
+ /* if still_running is 0 now, we should return NULL */
- /* make sure the easy handle is not in the multi handle anymore */
- curl_multi_remove_handle(multi_handle, file->handle.curl);
+ /* make sure the easy handle is not in the multi handle anymore */
+ curl_multi_remove_handle(multi_handle, file->handle.curl);
- /* cleanup */
- curl_easy_cleanup(file->handle.curl);
+ /* cleanup */
+ curl_easy_cleanup(file->handle.curl);
- free(file);
+ free(file);
- file = NULL;
- }
+ file = NULL;
}
- return file;
+ }
+ return file;
}
-int
-url_fclose(URL_FILE *file)
+int url_fclose(URL_FILE *file)
{
- int ret=0;/* default is good return */
+ int ret=0;/* default is good return */
- switch(file->type)
- {
- case CFTYPE_FILE:
- ret=fclose(file->handle.file); /* passthrough */
- break;
+ switch(file->type) {
+ case CFTYPE_FILE:
+ ret=fclose(file->handle.file); /* passthrough */
+ break;
- case CFTYPE_CURL:
- /* make sure the easy handle is not in the multi handle anymore */
- curl_multi_remove_handle(multi_handle, file->handle.curl);
+ case CFTYPE_CURL:
+ /* make sure the easy handle is not in the multi handle anymore */
+ curl_multi_remove_handle(multi_handle, file->handle.curl);
- /* cleanup */
- curl_easy_cleanup(file->handle.curl);
- break;
+ /* cleanup */
+ curl_easy_cleanup(file->handle.curl);
+ break;
- default: /* unknown or supported type - oh dear */
- ret=EOF;
- errno=EBADF;
- break;
+ default: /* unknown or supported type - oh dear */
+ ret=EOF;
+ errno=EBADF;
+ break;
+ }
- }
+ if(file->buffer)
+ free(file->buffer);/* free any allocated buffer space */
- if(file->buffer)
- free(file->buffer);/* free any allocated buffer space */
+ free(file);
- free(file);
-
- return ret;
+ return ret;
}
-int
-url_feof(URL_FILE *file)
+int url_feof(URL_FILE *file)
{
- int ret=0;
-
- switch(file->type)
- {
- case CFTYPE_FILE:
- ret=feof(file->handle.file);
- break;
-
- case CFTYPE_CURL:
- if((file->buffer_pos == 0) && (!file->still_running))
- ret = 1;
- break;
- default: /* unknown or supported type - oh dear */
- ret=-1;
- errno=EBADF;
- break;
- }
- return ret;
+ int ret=0;
+
+ switch(file->type) {
+ case CFTYPE_FILE:
+ ret=feof(file->handle.file);
+ break;
+
+ case CFTYPE_CURL:
+ if((file->buffer_pos == 0) && (!file->still_running))
+ ret = 1;
+ break;
+
+ default: /* unknown or supported type - oh dear */
+ ret=-1;
+ errno=EBADF;
+ break;
+ }
+ return ret;
}
-size_t
-url_fread(void *ptr, size_t size, size_t nmemb, URL_FILE *file)
+size_t url_fread(void *ptr, size_t size, size_t nmemb, URL_FILE *file)
{
- size_t want;
+ size_t want;
- switch(file->type)
- {
- case CFTYPE_FILE:
- want=fread(ptr,size,nmemb,file->handle.file);
- break;
+ switch(file->type) {
+ case CFTYPE_FILE:
+ want=fread(ptr,size,nmemb,file->handle.file);
+ break;
- case CFTYPE_CURL:
- want = nmemb * size;
+ case CFTYPE_CURL:
+ want = nmemb * size;
- fill_buffer(file,want,1);
+ fill_buffer(file,want,1);
- /* check if theres data in the buffer - if not fill_buffer()
- * either errored or EOF */
- if(!file->buffer_pos)
- return 0;
+ /* check if theres data in the buffer - if not fill_buffer()
+ * either errored or EOF */
+ if(!file->buffer_pos)
+ return 0;
- /* ensure only available data is considered */
- if(file->buffer_pos < want)
- want = file->buffer_pos;
+ /* ensure only available data is considered */
+ if(file->buffer_pos < want)
+ want = file->buffer_pos;
- /* xfer data to caller */
- memcpy(ptr, file->buffer, want);
+ /* xfer data to caller */
+ memcpy(ptr, file->buffer, want);
- use_buffer(file,want);
+ use_buffer(file,want);
- want = want / size; /* number of items - nb correct op - checked
- * with glibc code*/
+ want = want / size; /* number of items */
+ break;
- /*printf("(fread) return %d bytes %d left\n", want,file->buffer_pos);*/
- break;
+ default: /* unknown or supported type - oh dear */
+ want=0;
+ errno=EBADF;
+ break;
- default: /* unknown or supported type - oh dear */
- want=0;
- errno=EBADF;
- break;
-
- }
- return want;
+ }
+ return want;
}
-char *
-url_fgets(char *ptr, int size, URL_FILE *file)
+char *url_fgets(char *ptr, int size, URL_FILE *file)
{
- int want = size - 1;/* always need to leave room for zero termination */
- int loop;
-
- switch(file->type)
- {
- case CFTYPE_FILE:
- ptr = fgets(ptr,size,file->handle.file);
+ int want = size - 1;/* always need to leave room for zero termination */
+ int loop;
+
+ switch(file->type) {
+ case CFTYPE_FILE:
+ ptr = fgets(ptr,size,file->handle.file);
+ break;
+
+ case CFTYPE_CURL:
+ fill_buffer(file,want,1);
+
+ /* check if theres data in the buffer - if not fill either errored or
+ * EOF */
+ if(!file->buffer_pos)
+ return NULL;
+
+ /* ensure only available data is considered */
+ if(file->buffer_pos < want)
+ want = file->buffer_pos;
+
+ /*buffer contains data */
+ /* look for newline or eof */
+ for(loop=0;loop < want;loop++) {
+ if(file->buffer[loop] == '\n') {
+ want=loop+1;/* include newline */
break;
+ }
+ }
- case CFTYPE_CURL:
- fill_buffer(file,want,1);
-
- /* check if theres data in the buffer - if not fill either errored or
- * EOF */
- if(!file->buffer_pos)
- return NULL;
-
- /* ensure only available data is considered */
- if(file->buffer_pos < want)
- want = file->buffer_pos;
+ /* xfer data to caller */
+ memcpy(ptr, file->buffer, want);
+ ptr[want]=0;/* allways null terminate */
- /*buffer contains data */
- /* look for newline or eof */
- for(loop=0;loop < want;loop++)
- {
- if(file->buffer[loop] == '\n')
- {
- want=loop+1;/* include newline */
- break;
- }
- }
+ use_buffer(file,want);
- /* xfer data to caller */
- memcpy(ptr, file->buffer, want);
- ptr[want]=0;/* allways null terminate */
+ break;
- use_buffer(file,want);
+ default: /* unknown or supported type - oh dear */
+ ptr=NULL;
+ errno=EBADF;
+ break;
+ }
- /*printf("(fgets) return %d bytes %d left\n", want,file->buffer_pos);*/
- break;
-
- default: /* unknown or supported type - oh dear */
- ptr=NULL;
- errno=EBADF;
- break;
- }
-
- return ptr;/*success */
+ return ptr;/*success */
}
-void
-url_rewind(URL_FILE *file)
+void url_rewind(URL_FILE *file)
{
- switch(file->type)
- {
- case CFTYPE_FILE:
- rewind(file->handle.file); /* passthrough */
- break;
-
- case CFTYPE_CURL:
- /* halt transaction */
- curl_multi_remove_handle(multi_handle, file->handle.curl);
-
- /* restart */
- curl_multi_add_handle(multi_handle, file->handle.curl);
+ switch(file->type) {
+ case CFTYPE_FILE:
+ rewind(file->handle.file); /* passthrough */
+ break;
- /* ditch buffer - write will recreate - resets stream pos*/
- if(file->buffer)
- free(file->buffer);
+ case CFTYPE_CURL:
+ /* halt transaction */
+ curl_multi_remove_handle(multi_handle, file->handle.curl);
- file->buffer=NULL;
- file->buffer_pos=0;
- file->buffer_len=0;
+ /* restart */
+ curl_multi_add_handle(multi_handle, file->handle.curl);
- break;
+ /* ditch buffer - write will recreate - resets stream pos*/
+ if(file->buffer)
+ free(file->buffer);
- default: /* unknown or supported type - oh dear */
- break;
+ file->buffer=NULL;
+ file->buffer_pos=0;
+ file->buffer_len=0;
- }
+ break;
+ default: /* unknown or supported type - oh dear */
+ break;
+ }
}
-
/* Small main program to retrive from a url using fgets and fread saving the
* output to two test files (note the fgets method will corrupt binary files if
* they contain 0 chars */
-int
-main(int argc, char *argv[])
+int main(int argc, char *argv[])
{
- URL_FILE *handle;
- FILE *outf;
+ URL_FILE *handle;
+ FILE *outf;
+
+ int nread;
+ char buffer[256];
+ const char *url;
+
+ if(argc < 2)
+ url="http://192.168.7.3/testfile";/* default to testurl */
+ else
+ url=argv[1];/* use passed url */
+
+ /* copy from url line by line with fgets */
+ outf=fopen("fgets.test","w+");
+ if(!outf) {
+ perror("couldn't open fgets output file\n");
+ return 1;
+ }
- int nread;
- char buffer[256];
- const char *url;
+ handle = url_fopen(url, "r");
+ if(!handle) {
+ printf("couldn't url_fopen() %s\n", url);
+ fclose(outf);
+ return 2;
+ }
- if(argc < 2)
- {
- url="http://192.168.7.3/testfile";/* default to testurl */
- }
- else
- {
- url=argv[1];/* use passed url */
- }
+ while(!url_feof(handle)) {
+ url_fgets(buffer,sizeof(buffer),handle);
+ fwrite(buffer,1,strlen(buffer),outf);
+ }
- /* copy from url line by line with fgets */
- outf=fopen("fgets.test","w+");
- if(!outf)
- {
- perror("couldn't open fgets output file\n");
- return 1;
- }
+ url_fclose(handle);
- handle = url_fopen(url, "r");
- if(!handle)
- {
- printf("couldn't url_fopen() %s\n", url);
- fclose(outf);
- return 2;
- }
+ fclose(outf);
- while(!url_feof(handle))
- {
- url_fgets(buffer,sizeof(buffer),handle);
- fwrite(buffer,1,strlen(buffer),outf);
- }
- url_fclose(handle);
+ /* Copy from url with fread */
+ outf=fopen("fread.test","w+");
+ if(!outf) {
+ perror("couldn't open fread output file\n");
+ return 1;
+ }
+ handle = url_fopen("testfile", "r");
+ if(!handle) {
+ printf("couldn't url_fopen() testfile\n");
fclose(outf);
+ return 2;
+ }
+ do {
+ nread = url_fread(buffer, 1,sizeof(buffer), handle);
+ fwrite(buffer,1,nread,outf);
+ } while(nread);
- /* Copy from url with fread */
- outf=fopen("fread.test","w+");
- if(!outf)
- {
- perror("couldn't open fread output file\n");
- return 1;
- }
+ url_fclose(handle);
- handle = url_fopen("testfile", "r");
- if(!handle) {
- printf("couldn't url_fopen() testfile\n");
- fclose(outf);
- return 2;
- }
+ fclose(outf);
- do {
- nread = url_fread(buffer, 1,sizeof(buffer), handle);
- fwrite(buffer,1,nread,outf);
- } while(nread);
- url_fclose(handle);
+ /* Test rewind */
+ outf=fopen("rewind.test","w+");
+ if(!outf) {
+ perror("couldn't open fread output file\n");
+ return 1;
+ }
+ handle = url_fopen("testfile", "r");
+ if(!handle) {
+ printf("couldn't url_fopen() testfile\n");
fclose(outf);
+ return 2;
+ }
+ nread = url_fread(buffer, 1,sizeof(buffer), handle);
+ fwrite(buffer,1,nread,outf);
+ url_rewind(handle);
- /* Test rewind */
- outf=fopen("rewind.test","w+");
- if(!outf)
- {
- perror("couldn't open fread output file\n");
- return 1;
- }
+ buffer[0]='\n';
+ fwrite(buffer,1,1,outf);
- handle = url_fopen("testfile", "r");
- if(!handle) {
- printf("couldn't url_fopen() testfile\n");
- fclose(outf);
- return 2;
- }
+ nread = url_fread(buffer, 1,sizeof(buffer), handle);
+ fwrite(buffer,1,nread,outf);
- nread = url_fread(buffer, 1,sizeof(buffer), handle);
- fwrite(buffer,1,nread,outf);
- url_rewind(handle);
- buffer[0]='\n';
- fwrite(buffer,1,1,outf);
+ url_fclose(handle);
- nread = url_fread(buffer, 1,sizeof(buffer), handle);
- fwrite(buffer,1,nread,outf);
-
-
- url_fclose(handle);
-
- fclose(outf);
+ fclose(outf);
- return 0;/* all done */
+ return 0;/* all done */
}
diff --git a/docs/examples/multi-app.c b/docs/examples/multi-app.c
index 09b91b72..6ba13183 100644
--- a/docs/examples/multi-app.c
+++ b/docs/examples/multi-app.c
@@ -101,12 +101,8 @@ int main(int argc, char **argv)
case -1:
/* select error */
break;
- case 0:
- /* timeout, do something else */
- break;
- default:
- /* one or more of curl's file descriptors say there's data to read
- or write */
+ case 0: /* timeout */
+ default: /* action */
curl_multi_perform(multi_handle, &still_running);
break;
}
diff --git a/docs/examples/multi-post.c b/docs/examples/multi-post.c
index d2daf70a..8b4f03e9 100644
--- a/docs/examples/multi-post.c
+++ b/docs/examples/multi-post.c
@@ -112,7 +112,6 @@ int main(int argc, char *argv[])
/* select error */
break;
case 0:
- printf("timeout!\n");
default:
/* timeout or readable/writable sockets */
printf("perform!\n");
diff --git a/docs/examples/smooth-gtk-thread.c b/docs/examples/smooth-gtk-thread.c
new file mode 100644
index 00000000..5b60ded3
--- /dev/null
+++ b/docs/examples/smooth-gtk-thread.c
@@ -0,0 +1,217 @@
+/*****************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ *
+ * This is a multi threaded application that uses a progress bar to show
+ * status. It uses Gtk+ to make a smooth pulse.
+ *
+ * Written by Jud Bishop after studying the other examples provided with
+ * libcurl.
+ *
+ * To compile (on a single line):
+ * gcc -ggdb `pkg-config --cflags --libs gtk+-2.0` -lcurl -lssl -lcrypto
+ * -lgthread-2.0 -dl smooth-gtk-thread.c -o smooth-gtk-thread
+ */
+
+#include <stdio.h>
+#include <gtk/gtk.h>
+#include <glib.h>
+#include <unistd.h>
+#include <pthread.h>
+
+#include <curl/curl.h>
+#include <curl/types.h> /* new for v7 */
+#include <curl/easy.h> /* new for v7 */
+
+#define NUMT 4
+
+pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
+int j = 0;
+gint num_urls = 9; /* Just make sure this is less than urls[]*/
+const char * const urls[]= {
+ "90022",
+ "90023",
+ "90024",
+ "90025",
+ "90026",
+ "90027",
+ "90028",
+ "90029",
+ "90030"
+};
+
+size_t write_file(void *ptr, size_t size, size_t nmemb, FILE *stream)
+{
+ /* printf("write_file\n"); */
+ return fwrite(ptr, size, nmemb, stream);
+}
+
+/* http://xoap.weather.com/weather/local/46214?cc=*&dayf=5&unit=i */
+void *pull_one_url(void *NaN)
+{
+ CURL *curl;
+ CURLcode res;
+ gchar *http;
+ FILE *outfile;
+
+ /* Stop threads from entering unless j is incremented */
+ pthread_mutex_lock(&lock);
+ while ( j < num_urls )
+ {
+ printf("j = %d\n", j);
+
+ http =
+ g_strdup_printf("xoap.weather.com/weather/local/%s?cc=*&dayf=5&unit=i\n",
+ urls[j]);
+
+ printf( "http %s", http );
+
+ curl = curl_easy_init();
+ if(curl)
+ {
+
+ outfile = fopen(urls[j], "w");
+ /* printf("fopen\n"); */
+
+ /* Set the URL and transfer type */
+ curl_easy_setopt(curl, CURLOPT_URL, http);
+
+ /* Write to the file */
+ curl_easy_setopt(curl, CURLOPT_WRITEDATA, outfile);
+ curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_file);
+
+ j++; /* critical line */
+ pthread_mutex_unlock(&lock);
+
+ res = curl_easy_perform(curl);
+
+ fclose(outfile);
+ printf("fclose\n");
+
+ curl_easy_cleanup(curl);
+ }
+ g_free (http);
+
+ /* Adds more latency, testing the mutex.*/
+ sleep(1);
+
+ } /* end while */
+ return NULL;
+}
+
+
+gboolean pulse_bar(gpointer data)
+{
+ gdk_threads_enter();
+ gtk_progress_bar_pulse (GTK_PROGRESS_BAR (data));
+ gdk_threads_leave();
+
+ /* Return true so the function will be called again;
+ * returning false removes this timeout function.
+ */
+ return TRUE;
+}
+
+void *create_thread(void *progress_bar)
+{
+ pthread_t tid[NUMT];
+ int i;
+ int error;
+
+ /* Make sure I don't create more threads than urls. */
+ for(i=0; i < NUMT && i < num_urls ; i++) {
+ error = pthread_create(&tid[i],
+ NULL, /* default attributes please */
+ pull_one_url,
+ NULL);
+ if(0 != error)
+ fprintf(stderr, "Couldn't run thread number %d, errno %d\n", i, error);
+ else
+ fprintf(stderr, "Thread %d, gets %s\n", i, urls[i]);
+ }
+
+ /* Wait for all threads to terminate. */
+ for(i=0; i < NUMT && i < num_urls; i++) {
+ error = pthread_join(tid[i], NULL);
+ fprintf(stderr, "Thread %d terminated\n", i);
+ }
+
+ /* This stops the pulsing if you have it turned on in the progress bar
+ section */
+ g_source_remove(GPOINTER_TO_INT(g_object_get_data(G_OBJECT(progress_bar),
+ "pulse_id")));
+
+ /* This destroys the progress bar */
+ gtk_widget_destroy(progress_bar);
+
+ /* [Un]Comment this out to kill the program rather than pushing close. */
+ /* gtk_main_quit(); */
+
+
+ return NULL;
+
+}
+
+static gboolean cb_delete(GtkWidget *window, gpointer data)
+{
+ gtk_main_quit();
+ return FALSE;
+}
+
+int main(int argc, char **argv)
+{
+ GtkWidget *top_window, *outside_frame, *inside_frame, *progress_bar;
+
+ /* Must initialize libcurl before any threads are started */
+ curl_global_init(CURL_GLOBAL_ALL);
+
+ /* Init thread */
+ g_thread_init(NULL);
+ gdk_threads_init ();
+ gdk_threads_enter ();
+
+ gtk_init(&argc, &argv);
+
+ /* Base window */
+ top_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+
+ /* Frame */
+ outside_frame = gtk_frame_new(NULL);
+ gtk_frame_set_shadow_type(GTK_FRAME(outside_frame), GTK_SHADOW_OUT);
+ gtk_container_add(GTK_CONTAINER(top_window), outside_frame);
+
+ /* Frame */
+ inside_frame = gtk_frame_new(NULL);
+ gtk_frame_set_shadow_type(GTK_FRAME(inside_frame), GTK_SHADOW_IN);
+ gtk_container_set_border_width(GTK_CONTAINER(inside_frame), 5);
+ gtk_container_add(GTK_CONTAINER(outside_frame), inside_frame);
+
+ /* Progress bar */
+ progress_bar = gtk_progress_bar_new();
+ gtk_progress_bar_pulse (GTK_PROGRESS_BAR (progress_bar));
+ /* Make uniform pulsing */
+ gint pulse_ref = g_timeout_add (300, pulse_bar, progress_bar);
+ g_object_set_data(G_OBJECT(progress_bar), "pulse_id",
+ GINT_TO_POINTER(pulse_ref));
+ gtk_container_add(GTK_CONTAINER(inside_frame), progress_bar);
+
+ gtk_widget_show_all(top_window);
+ printf("gtk_widget_show_all\n");
+
+ g_signal_connect(G_OBJECT (top_window), "delete-event",
+ G_CALLBACK(cb_delete), NULL);
+
+ if (!g_thread_create(&create_thread, progress_bar, FALSE, NULL) != 0)
+ g_warning("can't create the thread");
+
+ gtk_main();
+ gdk_threads_leave();
+ printf("gdk_threads_leave\n");
+
+ return 0;
+}
+
diff --git a/docs/examples/smtp-multi.c b/docs/examples/smtp-multi.c
new file mode 100644
index 00000000..239172ba
--- /dev/null
+++ b/docs/examples/smtp-multi.c
@@ -0,0 +1,192 @@
+/*****************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ *
+ * This is an example application source code sending SMTP mail using the
+ * multi interface.
+ */
+
+#include <string.h>
+#include <curl/curl.h>
+
+/*
+ * This is the list of basic details you need to tweak to get things right.
+ */
+#define USERNAME "user@example.com"
+#define PASSWORD "123qwerty"
+#define SMTPSERVER "smtp.example.com"
+#define SMTPPORT ":587" /* it is a colon+port string, but you can set it
+ to "" to use the default port */
+#define RECEPIENT "receipient@example.com"
+#define MAILFROM "<realuser@example.com>"
+
+#define MULTI_PERFORM_HANG_TIMEOUT 60 * 1000
+
+/* Note that you should include the actual meta data headers here as well if
+ you want the mail to have a Subject, another From:, show a To: or whatever
+ you think your mail should feature! */
+static const char *text[]={
+ "one\n",
+ "two\n",
+ "three\n",
+ " Hello, this is CURL email SMTP\n",
+ NULL
+};
+
+struct WriteThis {
+ int counter;
+};
+
+static size_t read_callback(void *ptr, size_t size, size_t nmemb, void *userp)
+{
+ struct WriteThis *pooh = (struct WriteThis *)userp;
+ const char *data;
+
+ if(size*nmemb < 1)
+ return 0;
+
+ data = text[pooh->counter];
+
+ if(data) {
+ size_t len = strlen(data);
+ memcpy(ptr, data, len);
+ pooh->counter++; /* advance pointer */
+ return len;
+ }
+ return 0; /* no more data left to deliver */
+}
+
+static struct timeval tvnow(void)
+{
+ /*
+ ** time() returns the value of time in seconds since the Epoch.
+ */
+ struct timeval now;
+ now.tv_sec = (long)time(NULL);
+ now.tv_usec = 0;
+ return now;
+}
+
+static long tvdiff(struct timeval newer, struct timeval older)
+{
+ return (newer.tv_sec-older.tv_sec)*1000+
+ (newer.tv_usec-older.tv_usec)/1000;
+}
+
+int main(void)
+{
+ CURL *curl;
+ CURLM *mcurl;
+ int still_running = 1;
+ struct timeval mp_start;
+ char mp_timedout = 0;
+ struct WriteThis pooh;
+ struct curl_slist* rcpt_list = NULL;
+
+ pooh.counter = 0;
+
+ curl_global_init(CURL_GLOBAL_DEFAULT);
+
+ curl = curl_easy_init();
+ if(!curl)
+ return 1;
+
+ mcurl = curl_multi_init();
+ if(!mcurl)
+ return 2;
+
+ rcpt_list = curl_slist_append(rcpt_list, RECEPIENT);
+ /* more addresses can be added here
+ rcpt_list = curl_slist_append(rcpt_list, "others@example.com");
+ */
+
+ curl_easy_setopt(curl, CURLOPT_URL, "smtp://" SMTPSERVER SMTPPORT);
+ curl_easy_setopt(curl, CURLOPT_USERNAME, USERNAME);
+ curl_easy_setopt(curl, CURLOPT_PASSWORD, PASSWORD);
+ curl_easy_setopt(curl, CURLOPT_READFUNCTION, read_callback);
+ curl_easy_setopt(curl, CURLOPT_MAIL_FROM, MAILFROM);
+ curl_easy_setopt(curl, CURLOPT_MAIL_RCPT, rcpt_list);
+ curl_easy_setopt(curl, CURLOPT_USE_SSL, CURLUSESSL_ALL);
+ curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER,0);
+ curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0);
+ curl_easy_setopt(curl, CURLOPT_READDATA, &pooh);
+ curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);
+ curl_easy_setopt(curl, CURLOPT_SSLVERSION, 0);
+ curl_easy_setopt(curl, CURLOPT_SSL_SESSIONID_CACHE, 0);
+ curl_multi_add_handle(mcurl, curl);
+
+ mp_timedout = 0;
+ mp_start = tvnow();
+
+ /* we start some action by calling perform right away */
+ curl_multi_perform(mcurl, &still_running);
+
+ while(still_running) {
+ struct timeval timeout;
+ int rc; /* select() return code */
+
+ fd_set fdread;
+ fd_set fdwrite;
+ fd_set fdexcep;
+ int maxfd = -1;
+
+ long curl_timeo = -1;
+
+ FD_ZERO(&fdread);
+ FD_ZERO(&fdwrite);
+ FD_ZERO(&fdexcep);
+
+ /* set a suitable timeout to play around with */
+ timeout.tv_sec = 1;
+ timeout.tv_usec = 0;
+
+ curl_multi_timeout(mcurl, &curl_timeo);
+ if(curl_timeo >= 0) {
+ timeout.tv_sec = curl_timeo / 1000;
+ if(timeout.tv_sec > 1)
+ timeout.tv_sec = 1;
+ else
+ timeout.tv_usec = (curl_timeo % 1000) * 1000;
+ }
+
+ /* get file descriptors from the transfers */
+ curl_multi_fdset(mcurl, &fdread, &fdwrite, &fdexcep, &maxfd);
+
+ /* In a real-world program you OF COURSE check the return code of the
+ function calls. On success, the value of maxfd is guaranteed to be
+ greater or equal than -1. We call select(maxfd + 1, ...), specially in
+ case of (maxfd == -1), we call select(0, ...), which is basically equal
+ to sleep. */
+
+ rc = select(maxfd+1, &fdread, &fdwrite, &fdexcep, &timeout);
+
+ if (tvdiff(tvnow(), mp_start) > MULTI_PERFORM_HANG_TIMEOUT) {
+ fprintf(stderr, "ABORTING TEST, since it seems "
+ "that it would have run forever.\n");
+ break;
+ }
+
+ switch(rc) {
+ case -1:
+ /* select error */
+ break;
+ case 0: /* timeout */
+ default: /* action */
+ curl_multi_perform(mcurl, &still_running);
+ break;
+ }
+ }
+
+ curl_slist_free_all(rcpt_list);
+ curl_multi_remove_handle(mcurl, curl);
+ curl_multi_cleanup(mcurl);
+ curl_easy_cleanup(curl);
+ curl_global_cleanup();
+ return 0;
+}
+
+
diff --git a/docs/examples/version-check.pl b/docs/examples/version-check.pl
new file mode 100755
index 00000000..9b6a2684
--- /dev/null
+++ b/docs/examples/version-check.pl
@@ -0,0 +1,105 @@
+#!/usr/bin/env perl
+#***************************************************************************
+# _ _ ____ _
+# Project ___| | | | _ \| |
+# / __| | | | |_) | |
+# | (__| |_| | _ <| |___
+# \___|\___/|_| \_\_____|
+#
+# Copyright (C) 1998 - 2010, 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 http://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.
+#
+###########################################################################
+
+# This script accepts a source file as input on the command line.
+#
+# It first loads the 'symbols-in-versions' document and stores a lookup
+# table for all known symbols for which version they were introduced.
+#
+# It then scans the given source file to dig up all symbols starting with CURL.
+# Finally, it sorts the internal list of found symbols (using the version
+# number as sort key) and then it outputs the most recent version number and
+# the symbols from that version that are used.
+#
+# Usage:
+#
+# version-check.pl [source file]
+#
+
+open(S, "<../libcurl/symbols-in-versions") || die;
+
+my %doc;
+my %rem;
+while(<S>) {
+ if(/(^CURL[^ \n]*) *(.*)/) {
+ my ($sym, $rest)=($1, $2);
+ my @a=split(/ +/, $rest);
+
+ $doc{$sym}=$a[0]; # when it was introduced
+
+ if($a[2]) {
+ # this symbol is documented to have been present the last time
+ # in this release
+ $rem{$sym}=$a[2];
+ }
+ }
+
+}
+
+close(S);
+
+sub age {
+ my ($ver)=@_;
+
+ my @s=split(/\./, $ver);
+ return $s[0]*10000+$s[1]*100+$s[2];
+}
+
+my %used;
+open(C, "<$ARGV[0]") || die;
+
+while(<C>) {
+ if(/\W(CURL[_A-Z0-9v]+)\W/) {
+ #print "$1\n";
+ $used{$1}++;
+ }
+}
+
+close(C);
+
+sub sortversions {
+ my $r = age($doc{$a}) <=> age($doc{$b});
+ if(!$r) {
+ $r = $a cmp $b;
+ }
+ return $r;
+}
+
+my @recent = reverse sort sortversions keys %used;
+
+# the most recent symbol
+my $newsym = $recent[0];
+# the most recent version
+my $newver = $doc{$newsym};
+
+print "The scanned source uses these symbols introduced in $newver:\n";
+
+for my $w (@recent) {
+ if($doc{$w} eq $newver) {
+ printf " $w\n";
+ next;
+ }
+ last;
+}
+
+
diff --git a/docs/libcurl/curl_easy_cleanup.pdf b/docs/libcurl/curl_easy_cleanup.pdf
index 404b42f0..76a03062 100644
--- a/docs/libcurl/curl_easy_cleanup.pdf
+++ b/docs/libcurl/curl_easy_cleanup.pdf
Binary files differ
diff --git a/docs/libcurl/curl_easy_duphandle.pdf b/docs/libcurl/curl_easy_duphandle.pdf
index 342d3bb5..b8fcc8b7 100644
--- a/docs/libcurl/curl_easy_duphandle.pdf
+++ b/docs/libcurl/curl_easy_duphandle.pdf
Binary files differ
diff --git a/docs/libcurl/curl_easy_escape.pdf b/docs/libcurl/curl_easy_escape.pdf
index 7945390d..0f44f224 100644
--- a/docs/libcurl/curl_easy_escape.pdf
+++ b/docs/libcurl/curl_easy_escape.pdf
Binary files differ
diff --git a/docs/libcurl/curl_easy_getinfo.pdf b/docs/libcurl/curl_easy_getinfo.pdf
index 0a89a844..53e77f86 100644
--- a/docs/libcurl/curl_easy_getinfo.pdf
+++ b/docs/libcurl/curl_easy_getinfo.pdf
Binary files differ
diff --git a/docs/libcurl/curl_easy_init.pdf b/docs/libcurl/curl_easy_init.pdf
index 6ddd4831..c7bd250d 100644
--- a/docs/libcurl/curl_easy_init.pdf
+++ b/docs/libcurl/curl_easy_init.pdf
Binary files differ
diff --git a/docs/libcurl/curl_easy_pause.pdf b/docs/libcurl/curl_easy_pause.pdf
index ddc8dfd2..383834c3 100644
--- a/docs/libcurl/curl_easy_pause.pdf
+++ b/docs/libcurl/curl_easy_pause.pdf
Binary files differ
diff --git a/docs/libcurl/curl_easy_perform.pdf b/docs/libcurl/curl_easy_perform.pdf
index 5b3ee661..537da2d6 100644
--- a/docs/libcurl/curl_easy_perform.pdf
+++ b/docs/libcurl/curl_easy_perform.pdf
Binary files differ
diff --git a/docs/libcurl/curl_easy_recv.pdf b/docs/libcurl/curl_easy_recv.pdf
index 1ed0a943..2a968c5b 100644
--- a/docs/libcurl/curl_easy_recv.pdf
+++ b/docs/libcurl/curl_easy_recv.pdf
Binary files differ
diff --git a/docs/libcurl/curl_easy_reset.pdf b/docs/libcurl/curl_easy_reset.pdf
index cd44d768..0be6286e 100644
--- a/docs/libcurl/curl_easy_reset.pdf
+++ b/docs/libcurl/curl_easy_reset.pdf
Binary files differ
diff --git a/docs/libcurl/curl_easy_send.pdf b/docs/libcurl/curl_easy_send.pdf
index dc5922c6..a6afb67a 100644
--- a/docs/libcurl/curl_easy_send.pdf
+++ b/docs/libcurl/curl_easy_send.pdf
Binary files differ
diff --git a/docs/libcurl/curl_easy_setopt.3 b/docs/libcurl/curl_easy_setopt.3
index 9da53792..3d76b661 100644
--- a/docs/libcurl/curl_easy_setopt.3
+++ b/docs/libcurl/curl_easy_setopt.3
@@ -84,6 +84,13 @@ If this option is set and libcurl has been built with the standard name
resolver, timeouts will not occur while the name resolve takes place.
Consider building libcurl with c-ares support to enable asynchronous DNS
lookups, which enables nice timeouts for name resolves without signals.
+
+Setting \fICURLOPT_NOSIGNAL\fP to 1 makes libcurl NOT ask the system to ignore
+SIGPIPE signals, which otherwise are sent by the system when trying to send
+data to a socket which is closed in the other end. libcurl makes an effort to
+never cause such SIGPIPEs to trigger, but some operating systems have no way
+to avoid them and even on those that have there are some corner cases when
+they may still happen, contrary to our desire.
.IP CURLOPT_WILDCARDMATCH
Set this option to 1 if you want to transfer multiple files according to a
file name pattern. The pattern can be specified as part of the
@@ -858,6 +865,10 @@ secure.
This is a convenience macro that sets all bits except Basic and thus makes
libcurl pick any it finds suitable. libcurl will automatically select the one
it finds most secure.
+.IP CURLAUTH_ONLY
+This is a meta symbol. Or this value together with a single specific auth
+value to force libcurl to probe for un-restricted auth and if not, only that
+single auth algorithm is acceptable. (Added in 7.21.3)
.RE
.IP CURLOPT_PROXYAUTH
Pass a long as parameter, which is set to a bitmask, to tell libcurl which
@@ -1337,22 +1348,6 @@ it already uses for the control connection. But it will use the port number
from the 227-response. (Added in 7.14.2)
This option has no effect if PORT, EPRT or EPSV is used instead of PASV.
-.IP CURLOPT_USE_SSL
-Pass a long using one of the values from below, to make libcurl use your
-desired level of SSL for the FTP transfer. (Added in 7.11.0)
-
-(This option was known as CURLOPT_FTP_SSL up to 7.16.4, and the constants
-were known as CURLFTPSSL_*)
-.RS
-.IP CURLUSESSL_NONE
-Don't attempt to use SSL.
-.IP CURLUSESSL_TRY
-Try using SSL, proceed as normal otherwise.
-.IP CURLUSESSL_CONTROL
-Require SSL for the control connection or fail with \fICURLE_USE_SSL_FAILED\fP.
-.IP CURLUSESSL_ALL
-Require SSL for all communication or fail with \fICURLE_USE_SSL_FAILED\fP.
-.RE
.IP CURLOPT_FTPSSLAUTH
Pass a long using one of the values from below, to alter how libcurl issues
\&"AUTH TLS" or "AUTH SSL" when FTP over SSL is activated (see
@@ -1524,7 +1519,9 @@ to 0 (zero, the default), \fICURLOPT_TRANSFERTEXT\fP has no effect when doing
FTP via a proxy. Beware that not all proxies support this feature. (Added in
7.18.0)
.IP CURLOPT_CRLF
-Convert Unix newlines to CRLF newlines on transfers.
+Pass a long. If the value is set to 1 (one), libcurl converts Unix newlines to
+CRLF newlines on transfers. Disable this option again by setting the value to
+0 (zero).
.IP CURLOPT_RANGE
Pass a char * as parameter, which should contain the specified range you
want. It should be in the format "X-Y", where X or Y may be left out. HTTP
@@ -1763,6 +1760,47 @@ This option is useful with the \fICURLINFO_LASTSOCKET\fP option to
\fIcurl_easy_getinfo(3)\fP. The library can set up the connection and then the
application can obtain the most recently used socket for special data
transfers. (Added in 7.15.2)
+.IP CURLOPT_USE_SSL
+Pass a long using one of the values from below, to make libcurl use your
+desired level of SSL for the transfer. (Added in 7.11.0)
+
+This is for enabling SSL/TLS when you use FTP, SMTP, POP3, IMAP etc.
+
+(This option was known as CURLOPT_FTP_SSL up to 7.16.4, and the constants
+were known as CURLFTPSSL_*)
+.RS
+.IP CURLUSESSL_NONE
+Don't attempt to use SSL.
+.IP CURLUSESSL_TRY
+Try using SSL, proceed as normal otherwise.
+.IP CURLUSESSL_CONTROL
+Require SSL for the control connection or fail with \fICURLE_USE_SSL_FAILED\fP.
+.IP CURLUSESSL_ALL
+Require SSL for all communication or fail with \fICURLE_USE_SSL_FAILED\fP.
+.RE
+.IP CURLOPT_RESOLVE
+Pass a pointer to a linked list of strings with host name resolve information
+to use for requests with this handle. The linked list should be a fully valid
+list of \fBstruct curl_slist\fP structs properly filled in. Use
+\fIcurl_slist_append(3)\fP to create the list and \fIcurl_slist_free_all(3)\fP
+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.
+
+This option effectively pre-populates the DNS cache with entries for the
+host+port pair so redirects and everything that operations against the
+HOST+PORT will instead use your provided ADDRESS.
+
+You can remove names from the DNS cache again, to stop providing these fake
+resolves, by including a string in the linked list that uses the format
+\&"-HOST:PORT". The host name must be prefixed with a dash, and the host name
+and port number must exactly match what was already added previously.
+
+(Added in 7.12.3)
.SH SSL and SECURITY OPTIONS
.IP CURLOPT_SSLCERT
Pass a pointer to a zero terminated string as parameter. The string should be
diff --git a/docs/libcurl/curl_easy_setopt.html b/docs/libcurl/curl_easy_setopt.html
index 6b49b961..396c61b0 100644
--- a/docs/libcurl/curl_easy_setopt.html
+++ b/docs/libcurl/curl_easy_setopt.html
@@ -64,6 +64,7 @@ p.roffit {
<p class="level0"><a name="CURLOPTNOSIGNAL"></a><span class="nroffip">CURLOPT_NOSIGNAL</span>
<p class="level1">Pass a long. If it is 1, libcurl will not use any functions that install signal handlers or any functions that cause signals to be sent to the process. This option is mainly here to allow multi-threaded unix applications to still set/use all timeout options etc, without risking getting signals. (Added in 7.10)
<p class="level1">If this option is set and libcurl has been built with the standard name resolver, timeouts will not occur while the name resolve takes place. Consider building libcurl with c-ares support to enable asynchronous DNS lookups, which enables nice timeouts for name resolves without signals.
+<p class="level1">Setting <a class="emphasis" href="#CURLOPTNOSIGNAL">CURLOPT_NOSIGNAL</a> to 1 makes libcurl NOT ask the system to ignore SIGPIPE signals, which otherwise are sent by the system when trying to send data to a socket which is closed in the other end. libcurl makes an effort to never cause such SIGPIPEs to trigger, but some operating systems have no way to avoid them and even on those that have there are some corner cases when they may still happen, contrary to our desire.
<p class="level0"><a name="CURLOPTWILDCARDMATCH"></a><span class="nroffip">CURLOPT_WILDCARDMATCH</span>
<p class="level1">Set this option to 1 if you want to transfer multiple files according to a file name pattern. The pattern can be specified as part of the <a class="emphasis" href="#CURLOPTURL">CURLOPT_URL</a> option, using an fnmatch-like pattern (Shell Pattern Matching) in the last part of URL (file name).
<p class="level1">By default, libcurl uses its internal wildcard matching implementation. You can provide your own matching function by the <a class="emphasis" href="#CURLOPTFNMATCHFUNCTION">CURLOPT_FNMATCH_FUNCTION</a> option.
@@ -332,6 +333,8 @@ p.roffit {
<p class="level2">This is a convenience macro that sets all bits and thus makes libcurl pick any it finds suitable. libcurl will automatically select the one it finds most secure.
<p class="level1"><a name="CURLAUTHANYSAFE"></a><span class="nroffip">CURLAUTH_ANYSAFE</span>
<p class="level2">This is a convenience macro that sets all bits except Basic and thus makes libcurl pick any it finds suitable. libcurl will automatically select the one it finds most secure.
+<p class="level1"><a name="CURLAUTHONLY"></a><span class="nroffip">CURLAUTH_ONLY</span>
+<p class="level2">This is a meta symbol. Or this value together with a single specific auth value to force libcurl to probe for un-restricted auth and if not, only that single auth algorithm is acceptable. (Added in 7.21.3)
<p class="level1">
<p class="level0"><a name="CURLOPTPROXYAUTH"></a><span class="nroffip">CURLOPT_PROXYAUTH</span>
<p class="level1">Pass a long as parameter, which is set to a bitmask, to tell libcurl which authentication method(s) you want it to use for your proxy authentication. If more than one bit is set, libcurl will first query the site to see what authentication methods it supports and then pick the best one you allow it to use. For some methods, this will induce an extra network round-trip. Set the actual name and password with the <a class="emphasis" href="#CURLOPTPROXYUSERPWD">CURLOPT_PROXYUSERPWD</a> option. The bitmask can be constructed by or'ing together the bits listed above for the <a class="emphasis" href="#CURLOPTHTTPAUTH">CURLOPT_HTTPAUTH</a> option. As of this writing, only Basic, Digest and NTLM work. (Added in 7.10.7) <a name="HTTP"></a><h2 class="nroffsh">HTTP OPTIONS</h2>
@@ -490,19 +493,6 @@ p.roffit {
<p class="level0"><a name="CURLOPTFTPSKIPPASVIP"></a><span class="nroffip">CURLOPT_FTP_SKIP_PASV_IP</span>
<p class="level1">Pass a long. If set to 1, it instructs libcurl to not use the IP address the server suggests in its 227-response to libcurl's PASV command when libcurl connects the data connection. Instead libcurl will re-use the same IP address it already uses for the control connection. But it will use the port number from the 227-response. (Added in 7.14.2)
<p class="level1">This option has no effect if PORT, EPRT or EPSV is used instead of PASV.
-<p class="level0"><a name="CURLOPTUSESSL"></a><span class="nroffip">CURLOPT_USE_SSL</span>
-<p class="level1">Pass a long using one of the values from below, to make libcurl use your desired level of SSL for the FTP transfer. (Added in 7.11.0)
-<p class="level1">(This option was known as CURLOPT_FTP_SSL up to 7.16.4, and the constants were known as CURLFTPSSL_*)
-<p class="level2">
-<p class="level1"><a name="CURLUSESSLNONE"></a><span class="nroffip">CURLUSESSL_NONE</span>
-<p class="level2">Don't attempt to use SSL.
-<p class="level1"><a name="CURLUSESSLTRY"></a><span class="nroffip">CURLUSESSL_TRY</span>
-<p class="level2">Try using SSL, proceed as normal otherwise.
-<p class="level1"><a name="CURLUSESSLCONTROL"></a><span class="nroffip">CURLUSESSL_CONTROL</span>
-<p class="level2">Require SSL for the control connection or fail with <span Class="emphasis">CURLE_USE_SSL_FAILED</span>.
-<p class="level1"><a name="CURLUSESSLALL"></a><span class="nroffip">CURLUSESSL_ALL</span>
-<p class="level2">Require SSL for all communication or fail with <span Class="emphasis">CURLE_USE_SSL_FAILED</span>.
-<p class="level1">
<p class="level0"><a name="CURLOPTFTPSSLAUTH"></a><span class="nroffip">CURLOPT_FTPSSLAUTH</span>
<p class="level1">Pass a long using one of the values from below, to alter how libcurl issues "AUTH TLS" or "AUTH SSL" when FTP over SSL is activated (see <a class="emphasis" href="#CURLOPTUSESSL">CURLOPT_USE_SSL</a>). (Added in 7.12.2)
<p class="level2">
@@ -581,7 +571,7 @@ p.roffit {
<p class="level0"><a name="CURLOPTPROXYTRANSFERMODE"></a><span class="nroffip">CURLOPT_PROXY_TRANSFER_MODE</span>
<p class="level1">Pass a long. If the value is set to 1 (one), it tells libcurl to set the transfer mode (binary or ASCII) for FTP transfers done via an HTTP proxy, by appending ;type=a or ;type=i to the URL. Without this setting, or it being set to 0 (zero, the default), <a class="emphasis" href="#CURLOPTTRANSFERTEXT">CURLOPT_TRANSFERTEXT</a> has no effect when doing FTP via a proxy. Beware that not all proxies support this feature. (Added in 7.18.0)
<p class="level0"><a name="CURLOPTCRLF"></a><span class="nroffip">CURLOPT_CRLF</span>
-<p class="level1">Convert Unix newlines to CRLF newlines on transfers.
+<p class="level1">Pass a long. If the value is set to 1 (one), libcurl converts Unix newlines to CRLF newlines on transfers. Disable this option again by setting the value to 0 (zero).
<p class="level0"><a name="CURLOPTRANGE"></a><span class="nroffip">CURLOPT_RANGE</span>
<p class="level1">Pass a char * as parameter, which should contain the specified range you want. It should be in the format "X-Y", where X or Y may be left out. HTTP transfers also support several intervals, separated with commas as in <span Class="emphasis">"X-Y,N-M"</span>. Using this kind of multiple intervals will cause the HTTP server to send the response document in pieces (using standard MIME separation techniques). For RTSP, the formatting of a range should follow RFC 2326 Section 12.29. For RTSP, byte ranges are <span Class="bold">not</span> permitted. Instead, ranges should be given in npt, utc, or smpte formats.
<p class="level1">Pass a NULL to this option to disable the use of ranges.
@@ -668,7 +658,27 @@ p.roffit {
<p class="level1">
<p class="level0"><a name="CURLOPTCONNECTONLY"></a><span class="nroffip">CURLOPT_CONNECT_ONLY</span>
<p class="level1">Pass a long. If the parameter equals 1, it tells the library to perform all the required proxy authentication and connection setup, but no data transfer. This option is useful only on HTTP URLs.
-<p class="level1">This option is useful with the <span Class="emphasis">CURLINFO_LASTSOCKET</span> option to <a class="emphasis" href="./curl_easy_getinfo.html">curl_easy_getinfo(3)</a>. The library can set up the connection and then the application can obtain the most recently used socket for special data transfers. (Added in 7.15.2) <a name="SSL"></a><h2 class="nroffsh">SSL and SECURITY OPTIONS</h2>
+<p class="level1">This option is useful with the <span Class="emphasis">CURLINFO_LASTSOCKET</span> option to <a class="emphasis" href="./curl_easy_getinfo.html">curl_easy_getinfo(3)</a>. The library can set up the connection and then the application can obtain the most recently used socket for special data transfers. (Added in 7.15.2)
+<p class="level0"><a name="CURLOPTUSESSL"></a><span class="nroffip">CURLOPT_USE_SSL</span>
+<p class="level1">Pass a long using one of the values from below, to make libcurl use your desired level of SSL for the transfer. (Added in 7.11.0)
+<p class="level1">This is for enabling SSL/TLS when you use FTP, SMTP, POP3, IMAP etc.
+<p class="level1">(This option was known as CURLOPT_FTP_SSL up to 7.16.4, and the constants were known as CURLFTPSSL_*)
+<p class="level2">
+<p class="level1"><a name="CURLUSESSLNONE"></a><span class="nroffip">CURLUSESSL_NONE</span>
+<p class="level2">Don't attempt to use SSL.
+<p class="level1"><a name="CURLUSESSLTRY"></a><span class="nroffip">CURLUSESSL_TRY</span>
+<p class="level2">Try using SSL, proceed as normal otherwise.
+<p class="level1"><a name="CURLUSESSLCONTROL"></a><span class="nroffip">CURLUSESSL_CONTROL</span>
+<p class="level2">Require SSL for the control connection or fail with <span Class="emphasis">CURLE_USE_SSL_FAILED</span>.
+<p class="level1"><a name="CURLUSESSLALL"></a><span class="nroffip">CURLUSESSL_ALL</span>
+<p class="level2">Require SSL for all communication or fail with <span Class="emphasis">CURLE_USE_SSL_FAILED</span>.
+<p class="level1">
+<p class="level0"><a name="CURLOPTRESOLVE"></a><span class="nroffip">CURLOPT_RESOLVE</span>
+<p class="level1">Pass a pointer to a linked list of strings with host name resolve information to use for requests with this handle. The linked list should be a fully valid list of <span Class="bold">struct curl_slist</span> structs properly filled in. Use <a class="emphasis" href="./curl_slist_append.html">curl_slist_append(3)</a> to create the list and <a class="emphasis" href="./curl_slist_free_all.html">curl_slist_free_all(3)</a> to clean up an entire list.
+<p class="level1">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.
+<p class="level1">This option effectively pre-populates the DNS cache with entries for the host+port pair so redirects and everything that operations against the HOST+PORT will instead use your provided ADDRESS.
+<p class="level1">You can remove names from the DNS cache again, to stop providing these fake resolves, by including a string in the linked list that uses the format "-HOST:PORT". The host name must be prefixed with a dash, and the host name and port number must exactly match what was already added previously.
+<p class="level1">(Added in 7.12.3) <a name="SSL"></a><h2 class="nroffsh">SSL and SECURITY OPTIONS</h2>
<p class="level0">
<p class="level0"><a name="CURLOPTSSLCERT"></a><span class="nroffip">CURLOPT_SSLCERT</span>
<p class="level1">Pass a pointer to a zero terminated string as parameter. The string should be the file name of your certificate. The default format is "PEM" and can be changed with <a class="emphasis" href="#CURLOPTSSLCERTTYPE">CURLOPT_SSLCERTTYPE</a>.
diff --git a/docs/libcurl/curl_easy_setopt.pdf b/docs/libcurl/curl_easy_setopt.pdf
index 9723fb1b..9c1d9e9f 100644
--- a/docs/libcurl/curl_easy_setopt.pdf
+++ b/docs/libcurl/curl_easy_setopt.pdf
Binary files differ
diff --git a/docs/libcurl/curl_easy_strerror.pdf b/docs/libcurl/curl_easy_strerror.pdf
index ae50e6e5..04635280 100644
--- a/docs/libcurl/curl_easy_strerror.pdf
+++ b/docs/libcurl/curl_easy_strerror.pdf
@@ -65,12 +65,12 @@ endobj
<?adobe-xap-filters esc="CRLF"?>
<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-<rdf:Description rdf:about='3542fb5a-0e69-11eb-0000-1db77fb63b0c' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 8.71'/>
-<rdf:Description rdf:about='3542fb5a-0e69-11eb-0000-1db77fb63b0c' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2010-10-13T00:04:18+02:00</xmp:ModifyDate>
-<xmp:CreateDate>2010-10-13T00:04:18+02:00</xmp:CreateDate>
+<rdf:Description rdf:about='411e613c-4071-11eb-0000-1db77fb63b0c' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 8.71'/>
+<rdf:Description rdf:about='411e613c-4071-11eb-0000-1db77fb63b0c' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2010-12-15T15:07:52+01:00</xmp:ModifyDate>
+<xmp:CreateDate>2010-12-15T15:07:52+01:00</xmp:CreateDate>
<xmp:CreatorTool>groff version 1.20.1</xmp:CreatorTool></rdf:Description>
-<rdf:Description rdf:about='3542fb5a-0e69-11eb-0000-1db77fb63b0c' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='3542fb5a-0e69-11eb-0000-1db77fb63b0c'/>
-<rdf:Description rdf:about='3542fb5a-0e69-11eb-0000-1db77fb63b0c' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
+<rdf:Description rdf:about='411e613c-4071-11eb-0000-1db77fb63b0c' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='411e613c-4071-11eb-0000-1db77fb63b0c'/>
+<rdf:Description rdf:about='411e613c-4071-11eb-0000-1db77fb63b0c' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
</rdf:RDF>
</x:xmpmeta>
@@ -80,8 +80,8 @@ endstream
endobj
2 0 obj
<</Producer(GPL Ghostscript 8.71)
-/CreationDate(D:20101013000418+02'00')
-/ModDate(D:20101013000418+02'00')
+/CreationDate(D:20101215150752+01'00')
+/ModDate(D:20101215150752+01'00')
/Creator(groff version 1.20.1)>>endobj
xref
0 14
@@ -101,7 +101,7 @@ xref
0000001429 00000 n
trailer
<< /Size 14 /Root 1 0 R /Info 2 0 R
-/ID [<EEB2A5763C0B6FFAD180418B9853F3B5><EEB2A5763C0B6FFAD180418B9853F3B5>]
+/ID [<789BAA4163F8E84DA0A4AE16415DCB0D><789BAA4163F8E84DA0A4AE16415DCB0D>]
>>
startxref
2981
diff --git a/docs/libcurl/curl_easy_unescape.pdf b/docs/libcurl/curl_easy_unescape.pdf
index 9c06ecd5..11effc78 100644
--- a/docs/libcurl/curl_easy_unescape.pdf
+++ b/docs/libcurl/curl_easy_unescape.pdf
Binary files differ
diff --git a/docs/libcurl/curl_escape.pdf b/docs/libcurl/curl_escape.pdf
index f8b8613a..03e801cc 100644
--- a/docs/libcurl/curl_escape.pdf
+++ b/docs/libcurl/curl_escape.pdf
Binary files differ
diff --git a/docs/libcurl/curl_formadd.pdf b/docs/libcurl/curl_formadd.pdf
index b5b31a85..d406931b 100644
--- a/docs/libcurl/curl_formadd.pdf
+++ b/docs/libcurl/curl_formadd.pdf
Binary files differ
diff --git a/docs/libcurl/curl_formfree.pdf b/docs/libcurl/curl_formfree.pdf
index f03fae9c..da460c02 100644
--- a/docs/libcurl/curl_formfree.pdf
+++ b/docs/libcurl/curl_formfree.pdf
Binary files differ
diff --git a/docs/libcurl/curl_formget.pdf b/docs/libcurl/curl_formget.pdf
index 20120311..a810f8ce 100644
--- a/docs/libcurl/curl_formget.pdf
+++ b/docs/libcurl/curl_formget.pdf
Binary files differ
diff --git a/docs/libcurl/curl_free.pdf b/docs/libcurl/curl_free.pdf
index 202b34ae..a3c5ea08 100644
--- a/docs/libcurl/curl_free.pdf
+++ b/docs/libcurl/curl_free.pdf
Binary files differ
diff --git a/docs/libcurl/curl_getdate.pdf b/docs/libcurl/curl_getdate.pdf
index 4499afe8..3222f7fc 100644
--- a/docs/libcurl/curl_getdate.pdf
+++ b/docs/libcurl/curl_getdate.pdf
Binary files differ
diff --git a/docs/libcurl/curl_getenv.pdf b/docs/libcurl/curl_getenv.pdf
index 2c371ffc..98e477b6 100644
--- a/docs/libcurl/curl_getenv.pdf
+++ b/docs/libcurl/curl_getenv.pdf
Binary files differ
diff --git a/docs/libcurl/curl_global_cleanup.pdf b/docs/libcurl/curl_global_cleanup.pdf
index aae973a4..9ea39d8d 100644
--- a/docs/libcurl/curl_global_cleanup.pdf
+++ b/docs/libcurl/curl_global_cleanup.pdf
Binary files differ
diff --git a/docs/libcurl/curl_global_init.pdf b/docs/libcurl/curl_global_init.pdf
index 9e5af529..9ec6bb59 100644
--- a/docs/libcurl/curl_global_init.pdf
+++ b/docs/libcurl/curl_global_init.pdf
Binary files differ
diff --git a/docs/libcurl/curl_global_init_mem.pdf b/docs/libcurl/curl_global_init_mem.pdf
index 79f78a7b..d5b35448 100644
--- a/docs/libcurl/curl_global_init_mem.pdf
+++ b/docs/libcurl/curl_global_init_mem.pdf
Binary files differ
diff --git a/docs/libcurl/curl_mprintf.pdf b/docs/libcurl/curl_mprintf.pdf
index 544b5c14..77b04288 100644
--- a/docs/libcurl/curl_mprintf.pdf
+++ b/docs/libcurl/curl_mprintf.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_add_handle.pdf b/docs/libcurl/curl_multi_add_handle.pdf
index 9fd8fd47..4eb18c39 100644
--- a/docs/libcurl/curl_multi_add_handle.pdf
+++ b/docs/libcurl/curl_multi_add_handle.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_assign.pdf b/docs/libcurl/curl_multi_assign.pdf
index 06d204a2..84b1ad94 100644
--- a/docs/libcurl/curl_multi_assign.pdf
+++ b/docs/libcurl/curl_multi_assign.pdf
@@ -73,12 +73,12 @@ endobj
<?adobe-xap-filters esc="CRLF"?>
<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-<rdf:Description rdf:about='370cbeda-0e69-11eb-0000-cb573b64c622' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 8.71'/>
-<rdf:Description rdf:about='370cbeda-0e69-11eb-0000-cb573b64c622' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2010-10-13T00:04:21+02:00</xmp:ModifyDate>
-<xmp:CreateDate>2010-10-13T00:04:21+02:00</xmp:CreateDate>
+<rdf:Description rdf:about='42e824bc-4071-11eb-0000-cb573b64c622' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 8.71'/>
+<rdf:Description rdf:about='42e824bc-4071-11eb-0000-cb573b64c622' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2010-12-15T15:07:55+01:00</xmp:ModifyDate>
+<xmp:CreateDate>2010-12-15T15:07:55+01:00</xmp:CreateDate>
<xmp:CreatorTool>groff version 1.20.1</xmp:CreatorTool></rdf:Description>
-<rdf:Description rdf:about='370cbeda-0e69-11eb-0000-cb573b64c622' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='370cbeda-0e69-11eb-0000-cb573b64c622'/>
-<rdf:Description rdf:about='370cbeda-0e69-11eb-0000-cb573b64c622' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
+<rdf:Description rdf:about='42e824bc-4071-11eb-0000-cb573b64c622' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='42e824bc-4071-11eb-0000-cb573b64c622'/>
+<rdf:Description rdf:about='42e824bc-4071-11eb-0000-cb573b64c622' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
</rdf:RDF>
</x:xmpmeta>
@@ -88,8 +88,8 @@ endstream
endobj
2 0 obj
<</Producer(GPL Ghostscript 8.71)
-/CreationDate(D:20101013000421+02'00')
-/ModDate(D:20101013000421+02'00')
+/CreationDate(D:20101215150755+01'00')
+/ModDate(D:20101215150755+01'00')
/Creator(groff version 1.20.1)>>endobj
xref
0 15
@@ -110,7 +110,7 @@ xref
0000002565 00000 n
trailer
<< /Size 15 /Root 1 0 R /Info 2 0 R
-/ID [<EC7A968ED9EE001D56172FED80DF0731><EC7A968ED9EE001D56172FED80DF0731>]
+/ID [<CBEEFE7DCFFF0EF58EAE480EB54EB9F8><CBEEFE7DCFFF0EF58EAE480EB54EB9F8>]
>>
startxref
4117
diff --git a/docs/libcurl/curl_multi_cleanup.pdf b/docs/libcurl/curl_multi_cleanup.pdf
index 2d55d43d..88f18d1e 100644
--- a/docs/libcurl/curl_multi_cleanup.pdf
+++ b/docs/libcurl/curl_multi_cleanup.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_fdset.pdf b/docs/libcurl/curl_multi_fdset.pdf
index 86fa5ebf..df1efa29 100644
--- a/docs/libcurl/curl_multi_fdset.pdf
+++ b/docs/libcurl/curl_multi_fdset.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_info_read.pdf b/docs/libcurl/curl_multi_info_read.pdf
index 0a145991..bccf1063 100644
--- a/docs/libcurl/curl_multi_info_read.pdf
+++ b/docs/libcurl/curl_multi_info_read.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_init.pdf b/docs/libcurl/curl_multi_init.pdf
index 67f10ed2..a3533017 100644
--- a/docs/libcurl/curl_multi_init.pdf
+++ b/docs/libcurl/curl_multi_init.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_perform.pdf b/docs/libcurl/curl_multi_perform.pdf
index 70f138bf..13ed1064 100644
--- a/docs/libcurl/curl_multi_perform.pdf
+++ b/docs/libcurl/curl_multi_perform.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_remove_handle.pdf b/docs/libcurl/curl_multi_remove_handle.pdf
index 5a549413..7e0591af 100644
--- a/docs/libcurl/curl_multi_remove_handle.pdf
+++ b/docs/libcurl/curl_multi_remove_handle.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_setopt.pdf b/docs/libcurl/curl_multi_setopt.pdf
index 53ce9521..0b354a76 100644
--- a/docs/libcurl/curl_multi_setopt.pdf
+++ b/docs/libcurl/curl_multi_setopt.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_socket.pdf b/docs/libcurl/curl_multi_socket.pdf
index edbe43c3..5e93029f 100644
--- a/docs/libcurl/curl_multi_socket.pdf
+++ b/docs/libcurl/curl_multi_socket.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_socket_action.pdf b/docs/libcurl/curl_multi_socket_action.pdf
index c40e8d65..d6ca6b03 100644
--- a/docs/libcurl/curl_multi_socket_action.pdf
+++ b/docs/libcurl/curl_multi_socket_action.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_strerror.pdf b/docs/libcurl/curl_multi_strerror.pdf
index 12a9cf71..b2cebb15 100644
--- a/docs/libcurl/curl_multi_strerror.pdf
+++ b/docs/libcurl/curl_multi_strerror.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_timeout.pdf b/docs/libcurl/curl_multi_timeout.pdf
index 90d744cd..1e1afbd0 100644
--- a/docs/libcurl/curl_multi_timeout.pdf
+++ b/docs/libcurl/curl_multi_timeout.pdf
Binary files differ
diff --git a/docs/libcurl/curl_share_cleanup.pdf b/docs/libcurl/curl_share_cleanup.pdf
index 74cab9cc..300b15c3 100644
--- a/docs/libcurl/curl_share_cleanup.pdf
+++ b/docs/libcurl/curl_share_cleanup.pdf
Binary files differ
diff --git a/docs/libcurl/curl_share_init.pdf b/docs/libcurl/curl_share_init.pdf
index 02bf1c69..f8ff5b98 100644
--- a/docs/libcurl/curl_share_init.pdf
+++ b/docs/libcurl/curl_share_init.pdf
Binary files differ
diff --git a/docs/libcurl/curl_share_setopt.pdf b/docs/libcurl/curl_share_setopt.pdf
index 5cf89589..37e49f29 100644
--- a/docs/libcurl/curl_share_setopt.pdf
+++ b/docs/libcurl/curl_share_setopt.pdf
Binary files differ
diff --git a/docs/libcurl/curl_share_strerror.pdf b/docs/libcurl/curl_share_strerror.pdf
index 9ee77986..5de438a8 100644
--- a/docs/libcurl/curl_share_strerror.pdf
+++ b/docs/libcurl/curl_share_strerror.pdf
Binary files differ
diff --git a/docs/libcurl/curl_slist_append.pdf b/docs/libcurl/curl_slist_append.pdf
index 9aa31a6f..38c1db91 100644
--- a/docs/libcurl/curl_slist_append.pdf
+++ b/docs/libcurl/curl_slist_append.pdf
Binary files differ
diff --git a/docs/libcurl/curl_slist_free_all.pdf b/docs/libcurl/curl_slist_free_all.pdf
index a48fb6f9..693f895d 100644
--- a/docs/libcurl/curl_slist_free_all.pdf
+++ b/docs/libcurl/curl_slist_free_all.pdf
@@ -64,12 +64,12 @@ endobj
<?adobe-xap-filters esc="CRLF"?>
<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-<rdf:Description rdf:about='32480ada-0e69-11eb-0000-0d90648fa894' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 8.71'/>
-<rdf:Description rdf:about='32480ada-0e69-11eb-0000-0d90648fa894' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2010-10-13T00:04:13+02:00</xmp:ModifyDate>
-<xmp:CreateDate>2010-10-13T00:04:13+02:00</xmp:CreateDate>
+<rdf:Description rdf:about='3e2370bc-4071-11eb-0000-0d90648fa894' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 8.71'/>
+<rdf:Description rdf:about='3e2370bc-4071-11eb-0000-0d90648fa894' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2010-12-15T15:07:47+01:00</xmp:ModifyDate>
+<xmp:CreateDate>2010-12-15T15:07:47+01:00</xmp:CreateDate>
<xmp:CreatorTool>groff version 1.20.1</xmp:CreatorTool></rdf:Description>
-<rdf:Description rdf:about='32480ada-0e69-11eb-0000-0d90648fa894' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='32480ada-0e69-11eb-0000-0d90648fa894'/>
-<rdf:Description rdf:about='32480ada-0e69-11eb-0000-0d90648fa894' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
+<rdf:Description rdf:about='3e2370bc-4071-11eb-0000-0d90648fa894' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='3e2370bc-4071-11eb-0000-0d90648fa894'/>
+<rdf:Description rdf:about='3e2370bc-4071-11eb-0000-0d90648fa894' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
</rdf:RDF>
</x:xmpmeta>
@@ -79,8 +79,8 @@ endstream
endobj
2 0 obj
<</Producer(GPL Ghostscript 8.71)
-/CreationDate(D:20101013000413+02'00')
-/ModDate(D:20101013000413+02'00')
+/CreationDate(D:20101215150747+01'00')
+/ModDate(D:20101215150747+01'00')
/Creator(groff version 1.20.1)>>endobj
xref
0 14
@@ -100,7 +100,7 @@ xref
0000001255 00000 n
trailer
<< /Size 14 /Root 1 0 R /Info 2 0 R
-/ID [<A9D90A968C5A2CABC7D7A610A03C900F><A9D90A968C5A2CABC7D7A610A03C900F>]
+/ID [<D43E949F03B6608F551A21E4ED709EA6><D43E949F03B6608F551A21E4ED709EA6>]
>>
startxref
2807
diff --git a/docs/libcurl/curl_strequal.pdf b/docs/libcurl/curl_strequal.pdf
index e48fc084..89827bbe 100644
--- a/docs/libcurl/curl_strequal.pdf
+++ b/docs/libcurl/curl_strequal.pdf
Binary files differ
diff --git a/docs/libcurl/curl_unescape.pdf b/docs/libcurl/curl_unescape.pdf
index ebce79b8..b1085c51 100644
--- a/docs/libcurl/curl_unescape.pdf
+++ b/docs/libcurl/curl_unescape.pdf
Binary files differ
diff --git a/docs/libcurl/curl_version.pdf b/docs/libcurl/curl_version.pdf
index ba9bc8c5..0f058b09 100644
--- a/docs/libcurl/curl_version.pdf
+++ b/docs/libcurl/curl_version.pdf
Binary files differ
diff --git a/docs/libcurl/curl_version_info.pdf b/docs/libcurl/curl_version_info.pdf
index 356a0b4d..0ade732b 100644
--- a/docs/libcurl/curl_version_info.pdf
+++ b/docs/libcurl/curl_version_info.pdf
Binary files differ
diff --git a/docs/libcurl/libcurl-easy.pdf b/docs/libcurl/libcurl-easy.pdf
index b26357e8..9a2b9ddb 100644
--- a/docs/libcurl/libcurl-easy.pdf
+++ b/docs/libcurl/libcurl-easy.pdf
Binary files differ
diff --git a/docs/libcurl/libcurl-errors.pdf b/docs/libcurl/libcurl-errors.pdf
index bcd53f26..0566c367 100644
--- a/docs/libcurl/libcurl-errors.pdf
+++ b/docs/libcurl/libcurl-errors.pdf
Binary files differ
diff --git a/docs/libcurl/libcurl-multi.pdf b/docs/libcurl/libcurl-multi.pdf
index 1fd4af69..a897e93b 100644
--- a/docs/libcurl/libcurl-multi.pdf
+++ b/docs/libcurl/libcurl-multi.pdf
Binary files differ
diff --git a/docs/libcurl/libcurl-share.pdf b/docs/libcurl/libcurl-share.pdf
index a4ba4cb7..dc2b3657 100644
--- a/docs/libcurl/libcurl-share.pdf
+++ b/docs/libcurl/libcurl-share.pdf
Binary files differ
diff --git a/docs/libcurl/libcurl-tutorial.pdf b/docs/libcurl/libcurl-tutorial.pdf
index 9ed755e6..c538d193 100644
--- a/docs/libcurl/libcurl-tutorial.pdf
+++ b/docs/libcurl/libcurl-tutorial.pdf
Binary files differ
diff --git a/docs/libcurl/libcurl.pdf b/docs/libcurl/libcurl.pdf
index 6974679a..0f777df0 100644
--- a/docs/libcurl/libcurl.pdf
+++ b/docs/libcurl/libcurl.pdf
Binary files differ
diff --git a/docs/libcurl/symbols-in-versions b/docs/libcurl/symbols-in-versions
index a02ead45..e22b6251 100644
--- a/docs/libcurl/symbols-in-versions
+++ b/docs/libcurl/symbols-in-versions
@@ -18,18 +18,26 @@ CURLAUTH_BASIC 7.10.6
CURLAUTH_DIGEST 7.10.6
CURLAUTH_DIGEST_IE 7.19.3
CURLAUTH_GSSNEGOTIATE 7.10.6
+CURLAUTH_NONE 7.10.6
CURLAUTH_NTLM 7.10.6
+CURLAUTH_ONLY 7.21.3
CURLCLOSEPOLICY_CALLBACK 7.7
CURLCLOSEPOLICY_LEAST_RECENTLY_USED 7.7
CURLCLOSEPOLICY_LEAST_TRAFFIC 7.7
+CURLCLOSEPOLICY_NONE 7.7
CURLCLOSEPOLICY_OLDEST 7.7
CURLCLOSEPOLICY_SLOWEST 7.7
CURLE_ABORTED_BY_CALLBACK 7.1
CURLE_AGAIN 7.18.2
+CURLE_ALREADY_COMPLETE 7.7.2
CURLE_BAD_CALLING_ORDER 7.1 7.17.0
CURLE_BAD_CONTENT_ENCODING 7.10
+CURLE_BAD_DOWNLOAD_RESUME 7.10
CURLE_BAD_FUNCTION_ARGUMENT 7.1
CURLE_BAD_PASSWORD_ENTERED - 7.17.0
+CURLE_CHUNK_FAILED 7.20.1
+CURLE_CONV_FAILED 7.15.4
+CURLE_CONV_REQD 7.15.4
CURLE_COULDNT_CONNECT 7.1
CURLE_COULDNT_RESOLVE_HOST 7.1
CURLE_COULDNT_RESOLVE_PROXY 7.1
@@ -37,7 +45,9 @@ CURLE_FAILED_INIT 7.1
CURLE_FILESIZE_EXCEEDED 7.10.8
CURLE_FILE_COULDNT_READ_FILE 7.1
CURLE_FTP_ACCESS_DENIED 7.1
+CURLE_FTP_BAD_DOWNLOAD_RESUME 7.1
CURLE_FTP_BAD_DOWNLOAD_RESUME 7.1 7.1
+CURLE_FTP_BAD_FILE_LIST 7.20.1
CURLE_FTP_CANT_GET_HOST 7.1
CURLE_FTP_CANT_RECONNECT 7.1 7.17.0
CURLE_FTP_COULDNT_GET_SIZE 7.1 7.17.0
@@ -65,11 +75,13 @@ CURLE_HTTP_NOT_FOUND 7.1
CURLE_HTTP_PORT_FAILED - 7.12.0
CURLE_HTTP_POST_ERROR 7.1
CURLE_HTTP_RANGE_ERROR 7.1 7.17.0
+CURLE_HTTP_RETURNED_ERROR 7.10.3
CURLE_INTERFACE_FAILED 7.12.0
CURLE_LDAP_CANNOT_BIND 7.1
CURLE_LDAP_INVALID_URL 7.10.8
CURLE_LDAP_SEARCH_FAILED 7.1
CURLE_LIBRARY_NOT_FOUND 7.1 7.17.0
+CURLE_LOGIN_DENIED 7.13.1
CURLE_MALFORMAT_USER 7.1 7.17.0
CURLE_OK 7.1
CURLE_OPERATION_TIMEDOUT 7.17.0
@@ -83,12 +95,16 @@ CURLE_READ_ERROR 7.1
CURLE_RECV_ERROR 7.13.0
CURLE_REMOTE_ACCESS_DENIED 7.17.0
CURLE_REMOTE_DISK_FULL 7.17.0
+CURLE_REMOTE_FILE_EXISTS 7.17.0
+CURLE_REMOTE_FILE_NOT_FOUND 7.16.1
CURLE_RTSP_CSEQ_ERROR 7.20.0
CURLE_RTSP_SESSION_ERROR 7.20.0
CURLE_SEND_ERROR 7.13.0
+CURLE_SEND_FAIL_REWIND 7.12.3
CURLE_SHARE_IN_USE - 7.17.0
CURLE_SSH 7.16.1
CURLE_SSL_CACERT 7.10
+CURLE_SSL_CACERT_BADFILE 7.16.0
CURLE_SSL_CERTPROBLEM 7.10
CURLE_SSL_CIPHER 7.10
CURLE_SSL_CONNECT_ERROR 7.1
@@ -104,20 +120,59 @@ CURLE_TFTP_DISKFULL 7.15.0 7.17.0
CURLE_TFTP_EXISTS 7.15.0 7.17.0
CURLE_TFTP_ILLEGAL 7.15.0
CURLE_TFTP_NOSUCHUSER 7.15.0
+CURLE_TFTP_NOTFOUND 7.15.0
+CURLE_TFTP_PERM 7.15.0
CURLE_TFTP_UNKNOWNID 7.15.0
CURLE_TOO_MANY_REDIRECTS 7.5
CURLE_UNKNOWN_TELNET_OPTION 7.7
CURLE_UNSUPPORTED_PROTOCOL 7.1
+CURLE_UPLOAD_FAILED 7.16.3
CURLE_URL_MALFORMAT 7.1
CURLE_URL_MALFORMAT_USER 7.1 7.17.0
CURLE_USE_SSL_FAILED 7.17.0
CURLE_WRITE_ERROR 7.1
+CURLFILETYPE_DEVICE_BLOCK 7.21.0
+CURLFILETYPE_DEVICE_CHAR 7.21.0
+CURLFILETYPE_DIRECTORY 7.21.0
+CURLFILETYPE_DOOR 7.21.0
+CURLFILETYPE_FILE 7.21.0
+CURLFILETYPE_NAMEDPIPE 7.21.0
+CURLFILETYPE_SOCKET 7.21.0
+CURLFILETYPE_SYMLINK 7.21.0
+CURLFILETYPE_UNKNOWN 7.21.0
+CURLFINFOFLAG_KNOWN_FILENAME 7.21.0
+CURLFINFOFLAG_KNOWN_FILETYPE 7.21.0
+CURLFINFOFLAG_KNOWN_GID 7.21.0
+CURLFINFOFLAG_KNOWN_HLINKCOUNT 7.21.0
+CURLFINFOFLAG_KNOWN_PERM 7.21.0
+CURLFINFOFLAG_KNOWN_SIZE 7.21.0
+CURLFINFOFLAG_KNOWN_TIME 7.21.0
+CURLFINFOFLAG_KNOWN_UID 7.21.0
+CURLFORM_ARRAY 7.9.1
+CURLFORM_BUFFER 7.9.8
+CURLFORM_BUFFERLENGTH 7.9.8
+CURLFORM_BUFFERPTR 7.9.8
+CURLFORM_CONTENTHEADER 7.9.3
+CURLFORM_CONTENTSLENGTH 7.9.1
+CURLFORM_CONTENTTYPE 7.9.1
+CURLFORM_COPYCONTENTS 7.9.1
+CURLFORM_COPYNAME 7.9.1
+CURLFORM_END 7.9.1
+CURLFORM_FILE 7.9.1
+CURLFORM_FILECONTENT 7.9.1
+CURLFORM_FILENAME 7.9.6
+CURLFORM_NAMELENGTH 7.9.1
+CURLFORM_NOTHING 7.9.1
+CURLFORM_PTRCONTENTS 7.9.1
+CURLFORM_PTRNAME 7.9.1
+CURLFORM_STREAM 7.18.2
CURLFTPAUTH_DEFAULT 7.12.2
CURLFTPAUTH_DEFAULT 7.12.2
CURLFTPAUTH_SSL 7.12.2
CURLFTPAUTH_SSL 7.12.2
CURLFTPAUTH_TLS 7.12.2
CURLFTPAUTH_TLS 7.12.2
+CURLFTPMETHOD_DEFAULT 7.15.1
CURLFTPMETHOD_MULTICWD 7.15.1
CURLFTPMETHOD_NOCWD 7.15.1
CURLFTPMETHOD_SINGLECWD 7.15.1
@@ -141,7 +196,9 @@ CURLINFO_CONTENT_TYPE 7.9.4
CURLINFO_COOKIELIST 7.14.1
CURLINFO_DATA_IN 7.9.6
CURLINFO_DATA_OUT 7.9.6
+CURLINFO_DOUBLE 7.4.1
CURLINFO_EFFECTIVE_URL 7.3
+CURLINFO_END 7.4.1
CURLINFO_FILETIME 7.5
CURLINFO_FTP_ENTRY_PATH 7.15.4
CURLINFO_HEADER_IN 7.9.6
@@ -150,10 +207,14 @@ CURLINFO_HEADER_SIZE 7.4.1
CURLINFO_HTTPAUTH_AVAIL 7.10.8
CURLINFO_HTTP_CODE 7.4.1 7.10.8
CURLINFO_HTTP_CONNECTCODE 7.10.7
+CURLINFO_LASTONE 7.4.1
CURLINFO_LASTSOCKET 7.15.2
CURLINFO_LOCAL_IP 7.21.0
CURLINFO_LOCAL_PORT 7.21.0
+CURLINFO_LONG 7.4.1
+CURLINFO_MASK 7.4.1
CURLINFO_NAMELOOKUP_TIME 7.4.1
+CURLINFO_NONE 7.4.1
CURLINFO_NUM_CONNECTS 7.12.3
CURLINFO_OS_ERRNO 7.12.2
CURLINFO_PRETRANSFER_TIME 7.4.1
@@ -167,23 +228,61 @@ CURLINFO_REDIRECT_TIME 7.9.7
CURLINFO_REDIRECT_URL 7.18.2
CURLINFO_REQUEST_SIZE 7.4.1
CURLINFO_RESPONSE_CODE 7.10.8
+CURLINFO_RTSP_CLIENT_CSEQ 7.20.0
+CURLINFO_RTSP_CSEQ_RECV 7.20.0
+CURLINFO_RTSP_SERVER_CSEQ 7.20.0
+CURLINFO_RTSP_SESSION_ID 7.20.0
CURLINFO_SIZE_DOWNLOAD 7.4.1
CURLINFO_SIZE_UPLOAD 7.4.1
+CURLINFO_SLIST 7.12.3
CURLINFO_SPEED_DOWNLOAD 7.4.1
CURLINFO_SPEED_UPLOAD 7.4.1
+CURLINFO_SSL_DATA_IN 7.12.1
+CURLINFO_SSL_DATA_OUT 7.12.1
CURLINFO_SSL_ENGINES 7.12.3
CURLINFO_SSL_VERIFYRESULT 7.5
CURLINFO_STARTTRANSFER_TIME 7.9.2
+CURLINFO_STRING 7.4.1
CURLINFO_TEXT 7.9.6
CURLINFO_TOTAL_TIME 7.4.1
+CURLINFO_TYPEMASK 7.4.1
+CURLIOCMD_NOP 7.12.3
+CURLIOCMD_RESTARTREAD 7.12.3
+CURLIOE_FAILRESTART 7.12.3
+CURLIOE_OK 7.12.3
+CURLIOE_UNKNOWNCMD 7.12.3
+CURLKHMATCH_MISMATCH 7.19.6
+CURLKHMATCH_MISSING 7.19.6
+CURLKHMATCH_OK 7.19.6
+CURLKHSTAT_DEFER 7.19.6
+CURLKHSTAT_FINE 7.19.6
+CURLKHSTAT_FINE_ADD_TO_FILE 7.19.6
+CURLKHSTAT_REJECT 7.19.6
+CURLKHTYPE_DSS 7.19.6
+CURLKHTYPE_RSA 7.19.6
+CURLKHTYPE_RSA1 7.19.6
+CURLKHTYPE_UNKNOWN 7.19.6
+CURLMOPT_MAXCONNECTS 7.16.3
+CURLMOPT_PIPELINING 7.16.0
+CURLMOPT_SOCKETDATA 7.15.4
+CURLMOPT_SOCKETFUNCTION 7.15.4
+CURLMOPT_TIMERDATA 7.16.0
+CURLMOPT_TIMERFUNCTION 7.16.0
CURLMSG_DONE 7.9.6
+CURLMSG_NONE 7.9.6
CURLM_BAD_EASY_HANDLE 7.9.6
CURLM_BAD_HANDLE 7.9.6
+CURLM_BAD_SOCKET 7.15.4
CURLM_CALL_MULTI_PERFORM 7.9.6
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_UNKNOWN_OPTION 7.15.4
+CURLOPTTYPE_FUNCTIONPOINT 7.1
+CURLOPTTYPE_LONG 7.1
+CURLOPTTYPE_OBJECTPOINT 7.1
+CURLOPTTYPE_OFF_T 7.11.0
CURLOPT_ADDRESS_SCOPE 7.19.0
CURLOPT_APPEND 7.16.4
CURLOPT_AUTOREFERER 7.1
@@ -268,7 +367,7 @@ CURLOPT_IOCTLDATA 7.12.3
CURLOPT_IOCTLFUNCTION 7.12.3
CURLOPT_IPRESOLVE 7.10.8
CURLOPT_ISSUERCERT 7.19.0
-CURLOPT_KEYPASSWD - 7.17.0
+CURLOPT_KEYPASSWD 7.17.0
CURLOPT_KRB4LEVEL 7.3 7.17.0
CURLOPT_KRBLEVEL 7.17.0
CURLOPT_LOCALPORT 7.15.2
@@ -328,8 +427,10 @@ CURLOPT_READDATA 7.9.7
CURLOPT_READFUNCTION 7.1
CURLOPT_REDIR_PROTOCOLS 7.19.4
CURLOPT_REFERER 7.1
+CURLOPT_RESOLVE 7.21.3
CURLOPT_RESUME_FROM 7.1
CURLOPT_RESUME_FROM_LARGE 7.11.0
+CURLOPT_RTSPHEADER 7.20.0
CURLOPT_RTSP_CLIENT_CSEQ 7.20.0
CURLOPT_RTSP_REQUEST 7.20.0
CURLOPT_RTSP_SERVER_CSEQ 7.20.0
@@ -338,6 +439,7 @@ CURLOPT_RTSP_STREAM_URI 7.20.0
CURLOPT_RTSP_TRANSPORT 7.20.0
CURLOPT_SEEKDATA 7.18.1
CURLOPT_SEEKFUNCTION 7.18.1
+CURLOPT_SERVER_RESPONSE_TIMEOUT 7.20.0
CURLOPT_SHARE 7.10
CURLOPT_SOCKOPTDATA 7.16.0
CURLOPT_SOCKOPTFUNCTION 7.16.0
@@ -353,6 +455,9 @@ CURLOPT_SOURCE_URL 7.13.0 - 7.15.4
CURLOPT_SOURCE_USERPWD 7.12.1 - 7.15.4
CURLOPT_SSH_AUTH_TYPES 7.16.1
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 7.17.1
+CURLOPT_SSH_KEYDATA 7.19.6
+CURLOPT_SSH_KEYFUNCTION 7.19.6
+CURLOPT_SSH_KNOWNHOSTS 7.19.6
CURLOPT_SSH_PRIVATE_KEYFILE 7.16.1
CURLOPT_SSH_PUBLIC_KEYFILE 7.16.1
CURLOPT_SSLCERT 7.1
@@ -374,7 +479,7 @@ CURLOPT_SSL_VERIFYPEER 7.4.2
CURLOPT_STDERR 7.1
CURLOPT_TCP_NODELAY 7.11.2
CURLOPT_TELNETOPTIONS 7.7
-CURLOPT_TFTPBLKSIZE 7.19.4
+CURLOPT_TFTP_BLKSIZE 7.19.4
CURLOPT_TIMECONDITION 7.1
CURLOPT_TIMEOUT 7.1
CURLOPT_TIMEOUT_MS 7.16.2
@@ -392,11 +497,19 @@ CURLOPT_WILDCARDMATCH 7.21.0
CURLOPT_WRITEDATA 7.9.7
CURLOPT_WRITEFUNCTION 7.1
CURLOPT_WRITEHEADER 7.1
+CURLOPT_WRITEINFO 7.1
+CURLPAUSE_ALL 7.18.0
+CURLPAUSE_CONT 7.18.0
+CURLPAUSE_RECV 7.18.0
+CURLPAUSE_RECV_CONT 7.18.0
+CURLPAUSE_SEND 7.18.0
+CURLPAUSE_SEND_CONT 7.18.0
CURLPROTO_ALL 7.19.4
CURLPROTO_DICT 7.19.4
CURLPROTO_FILE 7.19.4
CURLPROTO_FTP 7.19.4
CURLPROTO_FTPS 7.19.4
+CURLPROTO_GOPHER 7.21.2
CURLPROTO_HTTP 7.19.4
CURLPROTO_HTTPS 7.19.4
CURLPROTO_IMAP 7.20.0
@@ -424,6 +537,19 @@ CURLPROXY_SOCKS4 7.10
CURLPROXY_SOCKS4A 7.18.0
CURLPROXY_SOCKS5 7.10
CURLPROXY_SOCKS5_HOSTNAME 7.18.0
+CURLSHE_BAD_OPTION 7.10.3
+CURLSHE_INVALID 7.10.3
+CURLSHE_IN_USE 7.10.3
+CURLSHE_NOMEM 7.10.3
+CURLSHE_OK 7.10.3
+CURLSHOPT_LOCKFUNC 7.10.3
+CURLSHOPT_NONE 7.10.3
+CURLSHOPT_SHARE 7.10.3
+CURLSHOPT_UNLOCKFUNC 7.10.3
+CURLSHOPT_UNSHARE 7.10.3
+CURLSHOPT_USERDATA 7.10.3
+CURLSOCKTYPE_IPCXN 7.15.6
+CURLSSH_AUTH_ANY 7.16.1
CURLSSH_AUTH_DEFAULT 7.16.1
CURLSSH_AUTH_HOST 7.16.1
CURLSSH_AUTH_KEYBOARD 7.16.1
@@ -439,6 +565,7 @@ CURLUSESSL_NONE 7.17.0
CURLUSESSL_TRY 7.17.0
CURLUSESSL_TRY 7.17.0
CURLVERSION_FIRST 7.10
+CURLVERSION_FOURTH 7.16.1
CURLVERSION_NOW 7.10
CURLVERSION_SECOND 7.11.1
CURLVERSION_THIRD 7.12.0
@@ -447,21 +574,74 @@ CURL_CHUNK_BGN_FUNC_OK 7.21.0
CURL_CHUNK_BGN_FUNC_SKIP 7.21.0
CURL_CHUNK_END_FUNC_FAIL 7.21.0
CURL_CHUNK_END_FUNC_OK 7.21.0
+CURL_CSELECT_ERR 7.16.3
+CURL_CSELECT_IN 7.16.3
+CURL_CSELECT_OUT 7.16.3
+CURL_ERROR_SIZE 7.1
CURL_FNMATCHFUNC_FAIL 7.21.0
CURL_FNMATCHFUNC_MATCH 7.21.0
CURL_FNMATCHFUNC_NOMATCH 7.21.0
+CURL_FORMADD_DISABLED 7.12.1
+CURL_FORMADD_ILLEGAL_ARRAY 7.9.8
+CURL_FORMADD_INCOMPLETE 7.9.8
+CURL_FORMADD_MEMORY 7.9.8
+CURL_FORMADD_NULL 7.9.8
+CURL_FORMADD_OK 7.9.8
+CURL_FORMADD_OPTION_TWICE 7.9.8
+CURL_FORMADD_UNKNOWN_OPTION 7.9.8
+CURL_GLOBAL_ALL 7.8
+CURL_GLOBAL_DEFAULT 7.8
+CURL_GLOBAL_NOTHING 7.8
+CURL_GLOBAL_SSL 7.8
+CURL_GLOBAL_WIN32 7.8.1
CURL_HTTP_VERSION_1_0 7.9.1
CURL_HTTP_VERSION_1_1 7.9.1
CURL_HTTP_VERSION_NONE 7.9.1
CURL_IPRESOLVE_V4 7.10.8
CURL_IPRESOLVE_V6 7.10.8
CURL_IPRESOLVE_WHATEVER 7.10.8
+CURL_LOCK_ACCESS_NONE 7.10.3
+CURL_LOCK_ACCESS_SHARED 7.10.3
+CURL_LOCK_ACCESS_SINGLE 7.10.3
+CURL_LOCK_DATA_CONNECT 7.10.3
+CURL_LOCK_DATA_COOKIE 7.10.3
+CURL_LOCK_DATA_DNS 7.10.3
+CURL_LOCK_DATA_NONE 7.10.3
+CURL_LOCK_DATA_SHARE 7.10.4
+CURL_LOCK_DATA_SSL_SESSION 7.10.3
+CURL_MAX_HTTP_HEADER 7.19.7
+CURL_MAX_WRITE_SIZE 7.9.7
CURL_NETRC_IGNORED 7.9.8
CURL_NETRC_OPTIONAL 7.9.8
CURL_NETRC_REQUIRED 7.9.8
+CURL_POLL_IN 7.14.0
+CURL_POLL_INOUT 7.14.0
+CURL_POLL_NONE 7.14.0
+CURL_POLL_OUT 7.14.0
+CURL_POLL_REMOVE 7.14.0
+CURL_READFUNC_ABORT 7.12.1
+CURL_READFUNC_PAUSE 7.18.0
+CURL_REDIR_GET_ALL 7.19.1
+CURL_REDIR_POST_301 7.19.1
+CURL_REDIR_POST_302 7.19.1
+CURL_REDIR_POST_ALL 7.19.1
+CURL_RTSPREQ_ANNOUNCE 7.20.0
+CURL_RTSPREQ_DESCRIBE 7.20.0
+CURL_RTSPREQ_GET_PARAMETER 7.20.0
+CURL_RTSPREQ_NONE 7.20.0
+CURL_RTSPREQ_OPTIONS 7.20.0
+CURL_RTSPREQ_PAUSE 7.20.0
+CURL_RTSPREQ_PLAY 7.20.0
+CURL_RTSPREQ_RECEIVE 7.20.0
+CURL_RTSPREQ_RECORD 7.20.0
+CURL_RTSPREQ_SETUP 7.20.0
+CURL_RTSPREQ_SET_PARAMETER 7.20.0
+CURL_RTSPREQ_TEARDOWN 7.20.0
CURL_SEEKFUNC_CANTSEEK 7.19.5
CURL_SEEKFUNC_FAIL 7.19.5
CURL_SEEKFUNC_OK 7.19.5
+CURL_SOCKET_BAD 7.14.0
+CURL_SOCKET_TIMEOUT 7.14.0
CURL_SSLVERSION_DEFAULT 7.9.2
CURL_SSLVERSION_SSLv2 7.9.2
CURL_SSLVERSION_SSLv3 7.9.2
@@ -469,6 +649,7 @@ CURL_SSLVERSION_TLSv1 7.9.2
CURL_TIMECOND_IFMODSINCE 7.9.7
CURL_TIMECOND_IFUNMODSINCE 7.9.7
CURL_TIMECOND_LASTMOD 7.9.7
+CURL_TIMECOND_NONE 7.9.7
CURL_VERSION_ASYNCHDNS 7.10.7
CURL_VERSION_CONV 7.15.4
CURL_VERSION_CURLDEBUG 7.19.6
@@ -483,3 +664,4 @@ CURL_VERSION_NTLM 7.10.6
CURL_VERSION_SPNEGO 7.10.8
CURL_VERSION_SSL 7.10
CURL_VERSION_SSPI 7.13.2
+CURL_WRITEFUNC_PAUSE 7.18.0
diff --git a/include/curl/Makefile.in b/include/curl/Makefile.in
index 0b90bab2..7edaf460 100644
--- a/include/curl/Makefile.in
+++ b/include/curl/Makefile.in
@@ -285,9 +285,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/curl/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/curl/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --foreign include/curl/Makefile
+ $(AUTOMAKE) --gnu include/curl/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
diff --git a/include/curl/curl.h b/include/curl/curl.h
index cb9d0fbf..fbd0d9b0 100644
--- a/include/curl/curl.h
+++ b/include/curl/curl.h
@@ -585,6 +585,9 @@ typedef enum {
#define CURLAUTH_GSSNEGOTIATE (1<<2) /* GSS-Negotiate */
#define CURLAUTH_NTLM (1<<3) /* NTLM */
#define CURLAUTH_DIGEST_IE (1<<4) /* Digest with IE flavour */
+#define CURLAUTH_ONLY (1<<31) /* used together with a single other
+ type to force no auth or just that
+ single type */
#define CURLAUTH_ANY (~CURLAUTH_DIGEST_IE) /* all fine types set */
#define CURLAUTH_ANYSAFE (~(CURLAUTH_BASIC|CURLAUTH_DIGEST_IE))
@@ -1436,6 +1439,9 @@ typedef enum {
/* FNMATCH_FUNCTION user pointer */
CINIT(FNMATCH_DATA, OBJECTPOINT, 202),
+ /* send linked-list of name:port:address sets */
+ CINIT(RESOLVE, OBJECTPOINT, 203),
+
CURLOPT_LASTENTRY /* the last unused */
} CURLoption;
diff --git a/include/curl/curlver.h b/include/curl/curlver.h
index e345f56d..7c3ccc90 100644
--- a/include/curl/curlver.h
+++ b/include/curl/curlver.h
@@ -30,13 +30,13 @@
/* This is the version number of the libcurl package from which this header
file origins: */
-#define LIBCURL_VERSION "7.21.2"
+#define LIBCURL_VERSION "7.21.3"
/* The numeric version number is also available "in parts" by using these
defines: */
#define LIBCURL_VERSION_MAJOR 7
#define LIBCURL_VERSION_MINOR 21
-#define LIBCURL_VERSION_PATCH 2
+#define LIBCURL_VERSION_PATCH 3
/* This is the numeric version of the libcurl version number, meant for easier
parsing and comparions by programs. The LIBCURL_VERSION_NUM define will
@@ -53,7 +53,7 @@
and it is always a greater number in a more recent release. It makes
comparisons with greater than and less than work.
*/
-#define LIBCURL_VERSION_NUM 0x071502
+#define LIBCURL_VERSION_NUM 0x071503
/*
* This is the date and time when the full source package was created. The
@@ -64,6 +64,6 @@
*
* "Mon Feb 12 11:35:33 UTC 2007"
*/
-#define LIBCURL_TIMESTAMP "Tue Oct 12 22:03:31 UTC 2010"
+#define LIBCURL_TIMESTAMP "Wed Dec 15 14:07:08 UTC 2010"
#endif /* __CURL_CURLVER_H */
diff --git a/lib/Makefile.Watcom b/lib/Makefile.Watcom
index a611be60..7af368ba 100644
--- a/lib/Makefile.Watcom
+++ b/lib/Makefile.Watcom
@@ -5,9 +5,6 @@
!ifndef %watcom
!error WATCOM environment variable not set!
-!else
-SYS_INCL = -I$(%watcom)\h\nt -I$(%watcom)\h
-SYS_LIBS = $(%watcom)\lib386\nt;$(%watcom)\lib386
!endif
!ifdef %libname
@@ -33,18 +30,30 @@ RC = wrc
! endif
!endif
-!if $(__VERSION__) < 1250
-RM = del /q /f 2>NUL
-!else
-RM = rm -f
-!endif
+!ifdef __LINUX__
+DS = /
+CP = cp
+MD = mkdir -p
+RD = rmdir -p
+RM = rm -f
+!else
+DS = $(X)\$(X)
+CP = copy 2>NUL
MD = mkdir
RD = rmdir /q /s 2>NUL
-CP = copy
+!if $(__VERSION__) < 1250
+RM = del /q /f 2>NUL
+!else
+RM = rm -f
+!endif
+!endif
+
+SYS_INCL = -I$(%watcom)$(DS)h$(DS)nt -I$(%watcom)$(DS)h
+SYS_LIBS = $(%watcom)$(DS)lib386$(DS)nt;$(%watcom)$(DS)lib386
CFLAGS = -3r -mf -hc -zff -zgf -zq -zm -zc -s -fr=con -w2 -fpi -oilrtfm &
-wcd=201 -bt=nt -d+ -dWIN32 -dCURL_WANTS_CA_BUNDLE_ENV &
- -dBUILDING_LIBCURL -dHAVE_SPNEGO=1 -I. -I..\include $(SYS_INCL)
+ -dBUILDING_LIBCURL -dHAVE_SPNEGO=1 -I. -I..$(DS)include $(SYS_INCL)
!ifdef %debug
DEBUG = -dDEBUG=1 -dDEBUGBUILD
@@ -67,31 +76,31 @@ CFLAGS += -dUSE_WINDOWS_SSPI
!ifdef %zlib_root
ZLIB_ROOT = $(%zlib_root)
!else
-ZLIB_ROOT = ..\..\zlib-1.2.5
+ZLIB_ROOT = ..$(DS)..$(DS)zlib-1.2.5
!endif
!ifdef %libssh2_root
LIBSSH2_ROOT = $(%libssh2_root)
!else
-LIBSSH2_ROOT = ..\..\libssh2-1.2.7
+LIBSSH2_ROOT = ..$(DS)..$(DS)libssh2-1.2.7
!endif
!ifdef %librtmp_root
LIBRTMP_ROOT = $(%librtmp_root)
!else
-LIBRTMP_ROOT = ..\..\librtmp-2.3
+LIBRTMP_ROOT = ..$(DS)..$(DS)rtmpdump-2.3
!endif
!ifdef %openssl_root
OPENSSL_ROOT = $(%openssl_root)
!else
-OPENSSL_ROOT = ..\..\openssl-0.9.8o
+OPENSSL_ROOT = ..$(DS)..$(DS)openssl-0.9.8q
!endif
!ifdef %ares_root
ARES_ROOT = $(%ares_root)
!else
-ARES_ROOT = ..\ares
+ARES_ROOT = ..$(DS)ares
!endif
!ifdef %use_zlib
@@ -103,11 +112,11 @@ CFLAGS += -dUSE_LIBRTMP -I$(LIBRTMP_ROOT)
!endif
!ifdef %use_ssh2
-CFLAGS += -DUSE_LIBSSH2 -DHAVE_LIBSSH2_H -I$(LIBSSH2_ROOT)\include -I$(LIBSSH2_ROOT)\win32
+CFLAGS += -DUSE_LIBSSH2 -DHAVE_LIBSSH2_H -I$(LIBSSH2_ROOT)$(DS)include -I$(LIBSSH2_ROOT)$(DS)win32
!endif
!ifdef %use_ssl
-CFLAGS += -wcd=138 -dUSE_OPENSSL -dUSE_SSLEAY -I$(OPENSSL_ROOT)\inc32
+CFLAGS += -wcd=138 -dUSE_OPENSSL -dUSE_SSLEAY -I$(OPENSSL_ROOT)$(DS)inc32
!endif
!ifdef %use_ares
@@ -115,12 +124,12 @@ CFLAGS += -dUSE_ARES -I$(ARES_ROOT)
!endif
!ifdef %use_watt32
-CFLAGS += -dUSE_WATT32 -I$(%watt_root)\inc
+CFLAGS += -dUSE_WATT32 -I$(%watt_root)$(DS)inc
!endif
OBJ_BASE = WC_Win32.obj
-LINK_ARG = $(OBJ_BASE)\dyn\wlink.arg
-LIB_ARG = $(OBJ_BASE)\stat\wlib.arg
+LINK_ARG = $(OBJ_BASE)$(DS)dyn$(DS)wlink.arg
+LIB_ARG = $(OBJ_BASE)$(DS)stat$(DS)wlib.arg
# In order to process Makefile.inc wmake must be called with -u switch!
!ifndef %MAKEFLAGS
@@ -130,19 +139,24 @@ LIB_ARG = $(OBJ_BASE)\stat\wlib.arg
!endif
OBJS = $(CSOURCES:.c=.obj)
+!ifdef __LINUX__
+OBJS = $OBJ_DIR/$(OBJS: = $OBJ_DIR/)
+
+!else
OBJS = $OBJ_DIR\$(OBJS: = $OBJ_DIR\)
+!endif
#
# Use $(OBJS) as a template to generate $(OBJS_STAT) and $(OBJS_DYN).
#
-OBJ_DIR = $(OBJ_BASE)\stat
+OBJ_DIR = $(OBJ_BASE)$(DS)stat
OBJS_STAT = $+ $(OBJS) $-
-OBJ_DIR = $(OBJ_BASE)\dyn
+OBJ_DIR = $(OBJ_BASE)$(DS)dyn
OBJS_DYN = $+ $(OBJS) $-
-CURLBUILDH = ..\include\curl\curlbuild.h
-RESOURCE = $(OBJ_BASE)\dyn\libcurl.res
+CURLBUILDH = ..$(DS)include$(DS)curl$(DS)curlbuild.h
+RESOURCE = $(OBJ_BASE)$(DS)dyn$(DS)libcurl.res
all: $(CURLBUILDH) $(OBJ_BASE) $(TARGETS) .SYMBOLIC
@echo Welcome to libcurl
@@ -154,14 +168,14 @@ clean: .SYMBOLIC
vclean distclean: clean .SYMBOLIC
-$(RM) $(TARGETS) $(LIBNAME).map $(LIBNAME).sym
- -$(RD) $(OBJ_BASE)\stat
- -$(RD) $(OBJ_BASE)\dyn
+ -$(RD) $(OBJ_BASE)$(DS)stat
+ -$(RD) $(OBJ_BASE)$(DS)dyn
-$(RD) $(OBJ_BASE)
$(OBJ_BASE):
-$(MD) $^@
- -$(MD) $^@\stat
- -$(MD) $^@\dyn
+ -$(MD) $^@$(DS)stat
+ -$(MD) $^@$(DS)dyn
$(CURLBUILDH): .EXISTSONLY
$(CP) $^@.dist $^@
@@ -174,14 +188,14 @@ $(LIBNAME).lib: $(OBJS_STAT) $(LIB_ARG)
.ERASE
$(RESOURCE): libcurl.rc
- $(RC) $(DEBUG) -q -r -zm -I..\include $(SYS_INCL) $[@ -fo=$^@
+ $(RC) $(DEBUG) -q -r -zm -bt=nt -I..$(DS)include $(SYS_INCL) $[@ -fo=$^@
.ERASE
-.c{$(OBJ_BASE)\dyn}.obj:
+.c{$(OBJ_BASE)$(DS)dyn}.obj:
$(CC) $(CFLAGS) -bd -br $[@ -fo=$^@
.ERASE
-.c{$(OBJ_BASE)\stat}.obj:
+.c{$(OBJ_BASE)$(DS)stat}.obj:
$(CC) $(CFLAGS) -DCURL_STATICLIB $[@ -fo=$^@
$(LINK_ARG): $(__MAKEFILES__)
@@ -196,24 +210,24 @@ $(LINK_ARG): $(__MAKEFILES__)
@%append $^@ res=$(RESOURCE) libpath $(SYS_LIBS)
@%append $^@ library wldap32.lib
!ifdef %use_watt32
- @%append $^@ library $(%watt_root)\lib\wattcpw_imp.lib
+ @%append $^@ library $(%watt_root)$(DS)lib$(DS)wattcpw_imp.lib
!else
@%append $^@ library ws2_32.lib
!endif
!ifdef %use_zlib
- @%append $^@ library $(ZLIB_ROOT)\zlib.lib
+ @%append $^@ library $(ZLIB_ROOT)$(DS)zlib.lib
!endif
!ifdef %use_rtmp
- @%append $^@ library $(LIBRTMP_ROOT)\librtmp\librtmp.lib
+ @%append $^@ library $(LIBRTMP_ROOT)$(DS)librtmp$(DS)librtmp.lib
!endif
!ifdef %use_ssh2
- @%append $^@ library $(LIBSSH2_ROOT)\win32\libssh2.lib
+ @%append $^@ library $(LIBSSH2_ROOT)$(DS)win32$(DS)libssh2.lib
!endif
!ifdef %use_ssl
- @%append $^@ library $(OPENSSL_ROOT)\out32\libeay32.lib, $(OPENSSL_ROOT)\out32\ssleay32.lib
+ @%append $^@ library $(OPENSSL_ROOT)$(DS)out32$(DS)libeay32.lib, $(OPENSSL_ROOT)$(DS)out32$(DS)ssleay32.lib
!endif
!ifdef %use_ares
- @%append $^@ library $(ARES_ROOT)\cares.lib
+ @%append $^@ library $(ARES_ROOT)$(DS)cares.lib
!endif
$(LIB_ARG): $(__MAKEFILES__)
diff --git a/lib/Makefile.am b/lib/Makefile.am
index 9a603320..4a35c72c 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -30,15 +30,15 @@ DOCS = README.encoding README.memoryleak README.ares README.curlx \
CMAKE_DIST = CMakeLists.txt curl_config.h.cmake
-EXTRA_DIST = Makefile.b32 Makefile.m32 Makefile.vc6 Makefile.riscos $(DSP) \
+EXTRA_DIST = Makefile.b32 Makefile.m32 Makefile.vc6 $(DSP) \
vc6libcurl.dsw config-win32.h config-win32ce.h config-riscos.h \
- config-mac.h curl_config.h.in makefile.dj config.dos libcurl.plist \
+ config-mac.h curl_config.h.in makefile.dj config-dos.h libcurl.plist \
libcurl.rc config-amigaos.h amigaos.c amigaos.h makefile.amiga \
Makefile.netware nwlib.c nwos.c libcurl.imp msvcproj.head msvcproj.foot \
config-win32ce.h config-os400.h setup-os400.h config-symbian.h \
Makefile.Watcom config-tpf.h $(DOCS) $(VCPROJ) mk-ca-bundle.pl \
mk-ca-bundle.vbs firefox-db2pem.sh $(CMAKE_DIST) config-vxworks.h \
- Makefile.vxworks
+ Makefile.vxworks config-vms.h
CLEANFILES = $(DSP) $(VCPROJ)
diff --git a/lib/Makefile.in b/lib/Makefile.in
index a4beebe8..1a868210 100644
--- a/lib/Makefile.in
+++ b/lib/Makefile.in
@@ -325,15 +325,15 @@ DOCS = README.encoding README.memoryleak README.ares README.curlx \
README.curl_off_t README.pingpong
CMAKE_DIST = CMakeLists.txt curl_config.h.cmake
-EXTRA_DIST = Makefile.b32 Makefile.m32 Makefile.vc6 Makefile.riscos $(DSP) \
+EXTRA_DIST = Makefile.b32 Makefile.m32 Makefile.vc6 $(DSP) \
vc6libcurl.dsw config-win32.h config-win32ce.h config-riscos.h \
- config-mac.h curl_config.h.in makefile.dj config.dos libcurl.plist \
+ config-mac.h curl_config.h.in makefile.dj config-dos.h libcurl.plist \
libcurl.rc config-amigaos.h amigaos.c amigaos.h makefile.amiga \
Makefile.netware nwlib.c nwos.c libcurl.imp msvcproj.head msvcproj.foot \
config-win32ce.h config-os400.h setup-os400.h config-symbian.h \
Makefile.Watcom config-tpf.h $(DOCS) $(VCPROJ) mk-ca-bundle.pl \
mk-ca-bundle.vbs firefox-db2pem.sh $(CMAKE_DIST) config-vxworks.h \
- Makefile.vxworks
+ Makefile.vxworks config-vms.h
CLEANFILES = $(DSP) $(VCPROJ)
lib_LTLIBRARIES = libcurl.la
diff --git a/lib/Makefile.m32 b/lib/Makefile.m32
index 08b665b8..04b6450a 100644
--- a/lib/Makefile.m32
+++ b/lib/Makefile.m32
@@ -20,7 +20,7 @@ ZLIB_PATH = ../../zlib-1.2.5
endif
# Edit the path below to point to the base of your OpenSSL package.
ifndef OPENSSL_PATH
-OPENSSL_PATH = ../../openssl-0.9.8o
+OPENSSL_PATH = ../../openssl-0.9.8q
endif
# Edit the path below to point to the base of your LibSSH2 package.
ifndef LIBSSH2_PATH
diff --git a/lib/Makefile.netware b/lib/Makefile.netware
index 655c7e3e..bce429e6 100644
--- a/lib/Makefile.netware
+++ b/lib/Makefile.netware
@@ -19,7 +19,7 @@ endif
# Edit the path below to point to the base of your OpenSSL package.
ifndef OPENSSL_PATH
-OPENSSL_PATH = ../../openssl-0.9.8o
+OPENSSL_PATH = ../../openssl-0.9.8q
endif
# Edit the path below to point to the base of your LibSSH2 package.
@@ -424,6 +424,7 @@ ifeq ($(LIBARCH),CLIB)
@echo $(DL)#define SEND_TYPE_ARG3 int$(DL) >> $@
@echo $(DL)#define SEND_TYPE_ARG4 int$(DL) >> $@
@echo $(DL)#define SEND_TYPE_RETV int$(DL) >> $@
+ @echo $(DL)#define SIZEOF_SIZE_T 4$(DL) >> $@
@echo $(DL)#define pressanykey PressAnyKeyToContinue$(DL) >> $@
else
@echo $(DL)#define OS "i586-pc-libc-NetWare"$(DL) >> $@
@@ -459,6 +460,7 @@ else
@echo $(DL)#define SEND_TYPE_ARG4 int$(DL) >> $@
@echo $(DL)#define SEND_TYPE_RETV ssize_t$(DL) >> $@
@echo $(DL)#define SIZEOF_OFF_T 8$(DL) >> $@
+ @echo $(DL)#define SIZEOF_SIZE_T 8$(DL) >> $@
@echo $(DL)#define _LARGEFILE 1$(DL) >> $@
ifdef ENABLE_IPV6
@echo $(DL)#define ENABLE_IPV6 1$(DL) >> $@
diff --git a/lib/Makefile.riscos b/lib/Makefile.riscos
deleted file mode 100644
index 8c919878..00000000
--- a/lib/Makefile.riscos
+++ /dev/null
@@ -1,232 +0,0 @@
-# Makefile for project libcurl
-
-# Project objects:
-objs = o.base64 o.connect o.cookie o.dict \
- o.dllinit o.easy o.escape o.file \
- o.formdata o.ftp o.getenv o.gopher \
- o.getinfo o.getpass o.hostip \
- o.hostip4 o.hostsyn o.http \
- o.http_chunks o.inet_ntop o.inet_pton o.if2ip o.krb4 o.ldap \
- o.curl_fnmatch o.fileinfo o.ftplistparser o.wildcard \
- o.memdebug o.mprintf o.netrc o.parsedate o.progress \
- o.security o.select o.sendf o.speedcheck o.ssluse \
- o.strequal o.strtok o.telnet o.timeval \
- o.transfer o.url o.version o.strtoofft o.sslgen o.gtls \
- o.rawstr o.curl_addrinfo o.slist o.nonblock o.curl_rand \
- o.curl_memrchr o.imap o.pop3 o.smtp o.pingpong o.rtsp \
- o.curl_threads o.warnless o.hmac o.md5 o.curl_rtmp \
- o.openldap o.polarssl o.md4 o.curl_gethostname
-
-
-# Compile options:
-linkopts = -o libcurl
-compileropts = -mpoke-function-name -IUtilLib: -mthrowback
-
-# Project target:
-libcurl: $(objs)
- makealf $(linkopts) $(objs)
-
-# Static dependancies:
-o.base64: c.base64
- gcc $(compileropts) -c -o base64.o c.base64
-
-o.connect: c.connect
- gcc $(compileropts) -c -o connect.o c.connect
-
-o.cookie: c.cookie
- gcc $(compileropts) -c -o cookie.o c.cookie
-
-o.curl_addrinfo: c.curl_addrinfo
- gcc $(compileropts) -c -o curl_addrinfo.o c.curl_addrinfo
-
-o.curl_gethostname: c.curl_gethostname
- gcc $(compileropts) -c -o curl_gethostname.o c.curl_gethostname
-
-o.curl_memrchr: c.curl_memrchr
- gcc $(compileropts) -c -o curl_memrchr.o c.curl_memrchr
-
-o.curl_rand: c.curl_rand
- gcc $(compileropts) -c -o curl_rand.o c.curl_rand
-
-o.curl_rtmp: c.curl_rtmp
- gcc $(compileropts) -c -o curl_rtmp.o c.curl_rtmp
-
-o.curl_threads: c.curl_threads
- gcc $(compileropts) -c -o curl_threads.o c.curl_threads
-
-o.dict: c.dict
- gcc $(compileropts) -c -o dict.o c.dict
-
-o.dllinit: c.dllinit
- gcc $(compileropts) -c -o dllinit.o c.dllinit
-
-o.easy: c.easy
- gcc $(compileropts) -c -o easy.o c.easy
-
-o.escape: c.escape
- gcc $(compileropts) -c -o escape.o c.escape
-
-o.file: c.file
- gcc $(compileropts) -c -o file.o c.file
-
-o.formdata: c.formdata
- gcc $(compileropts) -c -o formdata.o c.formdata
-
-o.ftp: c.ftp
- gcc $(compileropts) -c -o ftp.o c.ftp
-
-o.getenv: c.getenv
- gcc $(compileropts) -c -o getenv.o c.getenv
-
-o.getinfo: c.getinfo
- gcc $(compileropts) -c -o getinfo.o c.getinfo
-
-o.getpass: c.getpass
- gcc $(compileropts) -c -o getpass.o c.getpass
-
-o.gopher: c.gopher
- gcc $(compileropts) -c -o gopher.o c.gopher
-
-o.hmac: c.hmac
- gcc $(compileropts) -c -o hmac.o c.hmac
-
-o.hostip: c.hostip
- gcc $(compileropts) -c -o hostip.o c.hostip
-
-o.hostip4: c.hostip4
- gcc $(compileropts) -c -o hostip4.o c.hostip4
-
-o.hostsyn: c.hostsyn
- gcc $(compileropts) -c -o hostsyn.o c.hostsyn
-
-o.http: c.http
- gcc $(compileropts) -c -o http.o c.http
-
-o.http_chunks: c.http_chunks
- gcc $(compileropts) -c -o http_chunks.o c.http_chunks
-
-o.if2ip: c.if2ip
- gcc $(compileropts) -c -o if2ip.o c.if2ip
-
-o.imap: c.imap
- gcc $(compileropts) -c -o imap.o c.imap
-
-o.inet_ntop: c.inet_ntop
- gcc $(compileropts) -c -o inet_ntop.o c.inet_ntop
-
-o.inet_pton: c.inet_pton
- gcc $(compileropts) -c -o inet_pton.o c.inet_pton
-
-o.krb4: c.krb4
- gcc $(compileropts) -c -o krb4.o c.krb4
-
-o.ldap: c.ldap
- gcc $(compileropts) -IOpenLDAP: -c -o ldap.o c.ldap
-
-o.md4: c.md4
- gcc $(compileropts) -c -o md4.o c.md4
-
-o.md5: c.md5
- gcc $(compileropts) -c -o md5.o c.md5
-
-o.memdebug: c.memdebug
- gcc $(compileropts) -c -o memdebug.o c.memdebug
-
-o.mprintf: c.mprintf
- gcc $(compileropts) -c -o mprintf.o c.mprintf
-
-o.netrc: c.netrc
- gcc $(compileropts) -c -o netrc.o c.netrc
-
-o.openldap: c.openldap
- gcc $(compileropts) -c -o openldap.o c.openldap
-
-o.parsedate: c.parsedate
- gcc $(compileropts) -c -o parsedate.o c.parsedate
-
-o.pingpong: c.pingpong
- gcc $(compileropts) -c -o pingpong.o c.pingpong
-
-o.polarssl: c.polarssl
- gcc $(compileropts) -c -o polarssl.o c.polarssl
-
-o.pop3: c.pop3
- gcc $(compileropts) -c -o pop3.o c.pop3
-
-o.progress: c.progress
- gcc $(compileropts) -c -o progress.o c.progress
-
-o.rtsp: c.rtsp
- gcc $(compileropts) -c -o rtsp.o c.rtsp
-
-o.security: c.security
- gcc $(compileropts) -c -o security.o c.security
-
-o.select: c.select
- gcc $(compileropts) -c -o select.o c.select
-
-o.sendf: c.sendf
- gcc $(compileropts) -c -o sendf.o c.sendf
-
-o.slist: c.slist
- gcc $(compileropts) -c -o slist.o c.slist
-
-o.smtp: c.smtp
- gcc $(compileropts) -c -o smtp.o c.smtp
-
-o.speedcheck: c.speedcheck
- gcc $(compileropts) -c -o speedcheck.o c.speedcheck
-
-o.gtls: c.gtls
- gcc $(compileropts) -c -o gtls.o c.gtls
-
-o.sslgen: c.sslgen
- gcc $(compileropts) -c -o sslgen.o c.sslgen
-
-o.ssluse: c.ssluse
- gcc $(compileropts) -c -o ssluse.o c.ssluse
-
-o.nonblock: c.nonblock
- gcc $(compileropts) -c -o nonblock.o c.nonblock
-
-o.rawstr: c.rawstr
- gcc $(compileropts) -c -o rawstr.o c.rawstr
-
-o.strequal: c.strequal
- gcc $(compileropts) -c -o strequal.o c.strequal
-
-o.strtok: c.strtok
- gcc $(compileropts) -c -o strtok.o c.strtok
-
-o.strtoofft: c.strtoofft
- gcc $(compileropts) -c -o strtoofft.o c.strtoofft
-
-o.telnet: c.telnet
- gcc $(compileropts) -c -o telnet.o c.telnet
-
-o.timeval: c.timeval
- gcc $(compileropts) -c -o timeval.o c.timeval
-
-o.transfer: c.transfer
- gcc $(compileropts) -c -o transfer.o c.transfer
-
-o.url: c.url
- gcc $(compileropts) -c -o url.o c.url
-
-o.version: c.version
- gcc $(compileropts) -c -o version.o c.version
-
-o.warnless: c.warnless
- gcc $(compileropts) -c -o warnless.o c.warnless
-
-o.curl_fnmatch: c.curl_fnmatch
- gcc $(compileropts) -c -o curl_fnmatch.o c.curl_fnmatch
-
-o.fileinfo: c.fileinfo
- gcc $(compileropts) -c -o fileinfo.o c.fileinfo
-
-o.ftplistparser: c.ftplistparser
- gcc $(compileropts) -c -o ftplistparser.o c.ftplistparser
-
-o.wildcard: c.wildcard
- gcc $(compileropts) -c -o wildcard.o c.wildcard
diff --git a/lib/config-amigaos.h b/lib/config-amigaos.h
index a9fd5677..99b96d65 100644
--- a/lib/config-amigaos.h
+++ b/lib/config-amigaos.h
@@ -86,6 +86,7 @@
#define SIZEOF_INT 4
#define SIZEOF_SHORT 2
+#define SIZEOF_SIZE_T 4
#define USE_OPENSSL 1
#define USE_SSLEAY 1
diff --git a/lib/config.dos b/lib/config-dos.h
index 78f0c6b6..bb0315e2 100644
--- a/lib/config.dos
+++ b/lib/config-dos.h
@@ -3,7 +3,7 @@
/* ================================================================ */
-/* lib/config.dos - Hand crafted config file for DOS */
+/* lib/config-dos.h - Hand crafted config file for DOS */
/* ================================================================ */
#if defined(DJGPP)
@@ -67,6 +67,7 @@
#define SIZEOF_INT 4
#define SIZEOF_LONG_DOUBLE 16
#define SIZEOF_SHORT 2
+#define SIZEOF_SIZE_T 4
#define STDC_HEADERS 1
#define TIME_WITH_SYS_TIME 1
diff --git a/lib/config-mac.h b/lib/config-mac.h
index 740f1d97..1f7950ab 100644
--- a/lib/config-mac.h
+++ b/lib/config-mac.h
@@ -61,6 +61,7 @@
#define SIZEOF_INT 4
#define SIZEOF_SHORT 2
+#define SIZEOF_SIZE_T 4
#define HAVE_GETNAMEINFO 1
#define GETNAMEINFO_QUAL_ARG1 const
diff --git a/lib/config-os400.h b/lib/config-os400.h
index dad4d0c3..370fc113 100644
--- a/lib/config-os400.h
+++ b/lib/config-os400.h
@@ -364,6 +364,9 @@
/* The size of `short', as computed by sizeof. */
#define SIZEOF_SHORT 2
+/* The size of `size_t', as computed by sizeof. */
+#define SIZEOF_SIZE_T 8
+
/* Whether long long constants must be suffixed by LL. */
#define HAVE_LL
diff --git a/lib/config-riscos.h b/lib/config-riscos.h
index 98bb7880..84683aa2 100644
--- a/lib/config-riscos.h
+++ b/lib/config-riscos.h
@@ -350,6 +350,9 @@
/* The size of `short', as computed by sizeof. */
#define SIZEOF_SHORT 2
+/* The size of `size_t', as computed by sizeof. */
+#define SIZEOF_SIZE_T 4
+
/* Define if you have the ANSI C header files. */
#undef STDC_HEADERS
diff --git a/packages/vms/config-vms.h b/lib/config-vms.h
index 461001c1..73ef5c02 100644
--- a/packages/vms/config-vms.h
+++ b/lib/config-vms.h
@@ -41,6 +41,9 @@
/* The size of `short', as computed by sizeof. */
#define SIZEOF_SHORT 2
+/* The size of `size_t', as computed by sizeof. */
+#define SIZEOF_SIZE_T 4
+
/* Define if you have the alarm function. */
#define HAVE_ALARM 1
diff --git a/lib/config-win32.h b/lib/config-win32.h
index 5ee76065..67bfec3c 100644
--- a/lib/config-win32.h
+++ b/lib/config-win32.h
@@ -345,6 +345,13 @@
/* The size of `short', as computed by sizeof. */
#define SIZEOF_SHORT 2
+/* The size of `size_t', as computed by sizeof. */
+#if defined(_WIN64)
+# define SIZEOF_SIZE_T 8
+#else
+# define SIZEOF_SIZE_T 4
+#endif
+
/* ---------------------------------------------------------------- */
/* STRUCT RELATED */
/* ---------------------------------------------------------------- */
diff --git a/lib/config-win32ce.h b/lib/config-win32ce.h
index 1f417825..3a5913e9 100644
--- a/lib/config-win32ce.h
+++ b/lib/config-win32ce.h
@@ -322,6 +322,13 @@
/* The size of `short', as computed by sizeof. */
#define SIZEOF_SHORT 2
+/* The size of `size_t', as computed by sizeof. */
+#if defined(_WIN64)
+# define SIZEOF_SIZE_T 8
+#else
+# define SIZEOF_SIZE_T 4
+#endif
+
/* ---------------------------------------------------------------- */
/* STRUCT RELATED */
/* ---------------------------------------------------------------- */
diff --git a/lib/connect.c b/lib/connect.c
index e178633d..7638854b 100644
--- a/lib/connect.c
+++ b/lib/connect.c
@@ -310,20 +310,20 @@ static CURLcode bindlocal(struct connectdata *conn,
* of the connection. The resolve functions should really be changed
* to take a type parameter instead.
*/
- long ipver = data->set.ip_version;
+ long ipver = conn->ip_version;
int rc;
if (af == AF_INET)
- data->set.ip_version = CURL_IPRESOLVE_V4;
+ conn->ip_version = CURL_IPRESOLVE_V4;
#ifdef ENABLE_IPV6
else if (af == AF_INET6)
- data->set.ip_version = CURL_IPRESOLVE_V6;
+ conn->ip_version = CURL_IPRESOLVE_V6;
#endif
rc = Curl_resolv(conn, dev, 0, &h);
if(rc == CURLRESOLV_PENDING)
(void)Curl_wait_for_resolv(conn, &h);
- data->set.ip_version = ipver;
+ conn->ip_version = ipver;
if(h) {
/* convert the resolved address, sizeof myhost >= INET_ADDRSTRLEN */
@@ -532,6 +532,16 @@ static CURLcode trynextip(struct connectdata *conn,
return CURLE_COULDNT_CONNECT;
}
+/* Copies connection info into the session handle to make it available
+ when the session handle is no longer associated with a connection. */
+void Curl_persistconninfo(struct connectdata *conn)
+{
+ memcpy(conn->data->info.conn_primary_ip, conn->primary_ip, MAX_IPADR_LEN);
+ memcpy(conn->data->info.conn_local_ip, conn->local_ip, MAX_IPADR_LEN);
+ conn->data->info.conn_primary_port = conn->primary_port;
+ conn->data->info.conn_local_port = conn->local_port;
+}
+
/* retrieves ip address and port from a sockaddr structure */
static bool getaddressinfo(struct sockaddr* sa, char* addr,
long* port)
@@ -541,31 +551,46 @@ static bool getaddressinfo(struct sockaddr* sa, char* addr,
#ifdef ENABLE_IPV6
struct sockaddr_in6* si6 = NULL;
#endif
+#if defined(HAVE_SYS_UN_H) && defined(AF_UNIX)
+ struct sockaddr_un* su = NULL;
+#endif
switch (sa->sa_family) {
case AF_INET:
si = (struct sockaddr_in*) sa;
if(Curl_inet_ntop(sa->sa_family, &si->sin_addr,
- addr, MAX_IPADR_LEN) == NULL)
- return FALSE;
- us_port = ntohs(si->sin_port);
- *port = us_port;
+ addr, MAX_IPADR_LEN)) {
+ us_port = ntohs(si->sin_port);
+ *port = us_port;
+ return TRUE;
+ }
break;
#ifdef ENABLE_IPV6
case AF_INET6:
si6 = (struct sockaddr_in6*)sa;
if(Curl_inet_ntop(sa->sa_family, &si6->sin6_addr,
- addr, MAX_IPADR_LEN) == NULL)
- return FALSE;
- us_port = ntohs(si6->sin6_port);
- *port = us_port;
+ addr, MAX_IPADR_LEN)) {
+ us_port = ntohs(si6->sin6_port);
+ *port = us_port;
+ return TRUE;
+ }
break;
#endif
- default:
- addr[0] = '\0';
+#if defined(HAVE_SYS_UN_H) && defined(AF_UNIX)
+ case AF_UNIX:
+ su = (struct sockaddr_un*)sa;
+ snprintf(addr, MAX_IPADR_LEN, "%s", su->sun_path);
*port = 0;
+ return TRUE;
+#endif
+ default:
+ break;
}
- return TRUE;
+
+ addr[0] = '\0';
+ *port = 0;
+
+ return FALSE;
}
/* retrieves the start/end point information of a socket of an established
@@ -577,43 +602,45 @@ void Curl_updateconninfo(struct connectdata *conn, curl_socket_t sockfd)
struct Curl_sockaddr_storage ssrem;
struct Curl_sockaddr_storage ssloc;
struct SessionHandle *data = conn->data;
- struct PureInfo *info = &conn->data->info;
- if(conn->bits.reuse)
- /* reusing same connection */
- return;
+ if(!conn->bits.reuse) {
- len = sizeof(struct Curl_sockaddr_storage);
- if(getpeername(sockfd, (struct sockaddr*) &ssrem, &len)) {
- error = SOCKERRNO;
- failf(data, "getpeername() failed with errno %d: %s",
- error, Curl_strerror(conn, error));
- return;
- }
+ len = sizeof(struct Curl_sockaddr_storage);
+ if(getpeername(sockfd, (struct sockaddr*) &ssrem, &len)) {
+ error = SOCKERRNO;
+ failf(data, "getpeername() failed with errno %d: %s",
+ error, Curl_strerror(conn, error));
+ return;
+ }
- len = sizeof(struct Curl_sockaddr_storage);
- if(getsockname(sockfd, (struct sockaddr*) &ssloc, &len)) {
- error = SOCKERRNO;
- failf(data, "getsockname() failed with errno %d: %s",
- error, Curl_strerror(conn, error));
- return;
- }
+ len = sizeof(struct Curl_sockaddr_storage);
+ if(getsockname(sockfd, (struct sockaddr*) &ssloc, &len)) {
+ error = SOCKERRNO;
+ failf(data, "getsockname() failed with errno %d: %s",
+ error, Curl_strerror(conn, error));
+ return;
+ }
- if(!getaddressinfo((struct sockaddr*)&ssrem,
- info->ip, &info->port)) {
- error = ERRNO;
- failf(data, "ssrem inet_ntop() failed with errno %d: %s",
- error, Curl_strerror(conn, error));
- return;
- }
+ if(!getaddressinfo((struct sockaddr*)&ssrem,
+ conn->primary_ip, &conn->primary_port)) {
+ error = ERRNO;
+ failf(data, "ssrem inet_ntop() failed with errno %d: %s",
+ error, Curl_strerror(conn, error));
+ return;
+ }
+
+ if(!getaddressinfo((struct sockaddr*)&ssloc,
+ conn->local_ip, &conn->local_port)) {
+ error = ERRNO;
+ failf(data, "ssloc inet_ntop() failed with errno %d: %s",
+ error, Curl_strerror(conn, error));
+ return;
+ }
- if(!getaddressinfo((struct sockaddr*)&ssloc,
- info->localip, &info->localport)) {
- error = ERRNO;
- failf(data, "ssloc inet_ntop() failed with errno %d: %s",
- error, Curl_strerror(conn, error));
- return;
}
+
+ /* persist connection info in session handle */
+ Curl_persistconninfo(conn);
}
/*
@@ -795,16 +822,13 @@ singleipconnect(struct connectdata *conn,
bool *connected)
{
struct Curl_sockaddr_ex addr;
- char addr_buf[128];
int rc;
int error;
bool isconnected;
struct SessionHandle *data = conn->data;
curl_socket_t sockfd;
CURLcode res = CURLE_OK;
- const void *iptoprint;
- struct sockaddr_in * const sa4 = (void *)&addr.sa_addr;
-#ifdef ENABLE_IPV6
+#if defined(ENABLE_IPV6) && defined(HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID)
struct sockaddr_in6 * const sa6 = (void *)&addr.sa_addr;
#endif
@@ -855,37 +879,25 @@ singleipconnect(struct connectdata *conn,
sa6->sin6_scope_id = conn->scope;
#endif
- /* FIXME: do we have Curl_printable_address-like with struct sockaddr* as
- argument? */
-#if defined(HAVE_SYS_UN_H) && defined(AF_UNIX)
- if(addr.family == AF_UNIX) {
- infof(data, " Trying %s... ",
- ((const struct sockaddr_un*)(&addr.sa_addr))->sun_path);
- snprintf(data->info.ip, MAX_IPADR_LEN, "%s",
- ((const struct sockaddr_un*)(&addr.sa_addr))->sun_path);
- strcpy(conn->ip_addr_str, data->info.ip);
+ /* store remote address and port used in this connection attempt */
+ if(!getaddressinfo((struct sockaddr*)&addr.sa_addr,
+ conn->primary_ip, &conn->primary_port)) {
+ /* malformed address or bug in inet_ntop, try next address */
+ error = ERRNO;
+ failf(data, "sa_addr inet_ntop() failed with errno %d: %s",
+ error, Curl_strerror(conn, error));
+ sclose(sockfd);
+ return CURLE_OK;
}
- else
-#endif
- {
+ memcpy(conn->ip_addr_str, conn->primary_ip, MAX_IPADR_LEN);
+ infof(data, " Trying %s... ", conn->ip_addr_str);
+
+ Curl_persistconninfo(conn);
+
#ifdef ENABLE_IPV6
- if(addr.family == AF_INET6) {
- iptoprint = &sa6->sin6_addr;
- conn->bits.ipv6 = TRUE;
- }
- else
+ if(addr.family == AF_INET6)
+ conn->bits.ipv6 = TRUE;
#endif
- {
- iptoprint = &sa4->sin_addr;
- }
-
- if(Curl_inet_ntop(addr.family, iptoprint, addr_buf,
- sizeof(addr_buf)) != NULL) {
- infof(data, " Trying %s... ", addr_buf);
- snprintf(data->info.ip, MAX_IPADR_LEN, "%s", addr_buf);
- strcpy(conn->ip_addr_str, data->info.ip);
- }
- }
if(data->set.tcp_nodelay)
tcpnodelay(conn, sockfd);
@@ -945,7 +957,7 @@ singleipconnect(struct connectdata *conn,
default:
/* unknown error, fallthrough and try another address! */
failf(data, "Failed to connect to %s: %s",
- addr_buf, Curl_strerror(conn,error));
+ conn->ip_addr_str, Curl_strerror(conn,error));
data->state.os_errno = error;
break;
}
diff --git a/lib/connect.h b/lib/connect.h
index 2c6b10a3..6cc403d9 100644
--- a/lib/connect.h
+++ b/lib/connect.h
@@ -69,4 +69,6 @@ void Curl_sndbufset(curl_socket_t sockfd);
void Curl_updateconninfo(struct connectdata *conn, curl_socket_t sockfd);
+void Curl_persistconninfo(struct connectdata *conn);
+
#endif
diff --git a/lib/cookie.c b/lib/cookie.c
index 21617adc..c6460a10 100644
--- a/lib/cookie.c
+++ b/lib/cookie.c
@@ -353,8 +353,8 @@ Curl_cookie_add(struct SessionHandle *data,
break;
}
co->expires =
- atoi((*co->maxage=='\"')?&co->maxage[1]:&co->maxage[0]) +
- (long)now;
+ strtol((*co->maxage=='\"')?&co->maxage[1]:&co->maxage[0],NULL,10)
+ + (long)now;
}
else if(Curl_raw_equal("expires", name)) {
strstore(&co->expirestr, whatptr);
diff --git a/lib/curl_addrinfo.c b/lib/curl_addrinfo.c
index 5098fa43..6feccf2d 100644
--- a/lib/curl_addrinfo.c
+++ b/lib/curl_addrinfo.c
@@ -49,6 +49,7 @@
#endif
#include "curl_addrinfo.h"
+#include "inet_pton.h"
#define _MPRINTF_REPLACE /* use our functions only */
#include <curl/mprintf.h>
@@ -117,12 +118,12 @@ Curl_getaddrinfo_ex(const char *nodename,
const struct addrinfo *hints,
Curl_addrinfo **result)
{
- const struct addrinfo *ainext;
const struct addrinfo *ai;
struct addrinfo *aihead;
Curl_addrinfo *cafirst = NULL;
Curl_addrinfo *calast = NULL;
Curl_addrinfo *ca;
+ size_t ss_size;
int error;
*result = NULL; /* assume failure */
@@ -131,7 +132,28 @@ Curl_getaddrinfo_ex(const char *nodename,
if(error)
return error;
- for(ai = aihead; ai != NULL; ai = ainext) {
+ /* traverse the addrinfo list */
+
+ for(ai = aihead; ai != NULL; ai = ai->ai_next) {
+
+ /* ignore elements with unsupported address family, */
+ /* settle family-specific sockaddr structure size. */
+ if(ai->ai_family == AF_INET)
+ ss_size = sizeof(struct sockaddr_in);
+#ifdef ENABLE_IPV6
+ else if(ai->ai_family == AF_INET6)
+ ss_size = sizeof(struct sockaddr_in6);
+#endif
+ else
+ continue;
+
+ /* ignore elements without required address info */
+ if((ai->ai_addr == NULL) || !(ai->ai_addrlen > 0))
+ continue;
+
+ /* ignore elements with bogus address size */
+ if((size_t)ai->ai_addrlen < ss_size)
+ continue;
if((ca = malloc(sizeof(Curl_addrinfo))) == NULL) {
error = EAI_MEMORY;
@@ -139,35 +161,28 @@ Curl_getaddrinfo_ex(const char *nodename,
}
/* copy each structure member individually, member ordering, */
- /* size, or padding might be different for each structure. */
+ /* size, or padding might be different for each platform. */
ca->ai_flags = ai->ai_flags;
ca->ai_family = ai->ai_family;
ca->ai_socktype = ai->ai_socktype;
ca->ai_protocol = ai->ai_protocol;
- ca->ai_addrlen = 0;
+ ca->ai_addrlen = (curl_socklen_t)ss_size;
ca->ai_addr = NULL;
ca->ai_canonname = NULL;
ca->ai_next = NULL;
- if((ai->ai_addrlen > 0) && (ai->ai_addr != NULL)) {
- /* typecast below avoid warning on at least win64:
- conversion from 'size_t' to 'curl_socklen_t', possible loss of data
- */
- ca->ai_addrlen = (curl_socklen_t)ai->ai_addrlen;
- if((ca->ai_addr = malloc(ca->ai_addrlen)) == NULL) {
- error = EAI_MEMORY;
- free(ca);
- break;
- }
- memcpy(ca->ai_addr, ai->ai_addr, ca->ai_addrlen);
+ if((ca->ai_addr = malloc(ss_size)) == NULL) {
+ error = EAI_MEMORY;
+ free(ca);
+ break;
}
+ memcpy(ca->ai_addr, ai->ai_addr, ss_size);
if(ai->ai_canonname != NULL) {
if((ca->ai_canonname = strdup(ai->ai_canonname)) == NULL) {
error = EAI_MEMORY;
- if(ca->ai_addr)
- free(ca->ai_addr);
+ free(ca->ai_addr);
free(ca);
break;
}
@@ -182,8 +197,6 @@ Curl_getaddrinfo_ex(const char *nodename,
calast->ai_next = ca;
calast = ca;
- /* fetch next element fom the addrinfo list */
- ainext = ai->ai_next;
}
/* destroy the addrinfo list */
@@ -195,6 +208,18 @@ Curl_getaddrinfo_ex(const char *nodename,
Curl_freeaddrinfo(cafirst);
cafirst = NULL;
}
+ else if(!cafirst) {
+#ifdef EAI_NONAME
+ /* rfc3493 conformant */
+ error = EAI_NONAME;
+#else
+ /* rfc3493 obsoleted */
+ error = EAI_NODATA;
+#endif
+#ifdef USE_WINSOCK
+ SET_SOCKERRNO(error);
+#endif
+ }
*result = cafirst;
@@ -434,6 +459,26 @@ Curl_ip2addr(int af, const void *inaddr, const char *hostname, int port)
return ai;
}
+/*
+ * Given an IPv4 or IPv6 dotted string address, this converts it to a proper
+ * allocated Curl_addrinfo struct and returns it.
+ */
+Curl_addrinfo *Curl_str2addr(char *address, int port)
+{
+ struct in_addr in;
+ if(Curl_inet_pton(AF_INET, address, &in) > 0)
+ /* This is a dotted IP address 123.123.123.123-style */
+ return Curl_ip2addr(AF_INET, &in, address, port);
+#ifdef ENABLE_IPV6
+ else {
+ struct in6_addr in6;
+ if(Curl_inet_pton(AF_INET6, address, &in6) > 0)
+ /* This is a dotted IPv6 address ::1-style */
+ return Curl_ip2addr(AF_INET6, &in6, address, port);
+ }
+#endif
+ return NULL; /* bad input format */
+}
#if defined(CURLDEBUG) && defined(HAVE_FREEADDRINFO)
/*
diff --git a/lib/curl_addrinfo.h b/lib/curl_addrinfo.h
index 63159cc4..11c33947 100644
--- a/lib/curl_addrinfo.h
+++ b/lib/curl_addrinfo.h
@@ -80,6 +80,8 @@ Curl_he2ai(const struct hostent *he, int port);
Curl_addrinfo *
Curl_ip2addr(int af, const void *inaddr, const char *hostname, int port);
+Curl_addrinfo *Curl_str2addr(char *dotted, int port);
+
#if defined(CURLDEBUG) && defined(HAVE_FREEADDRINFO)
void
curl_dofreeaddrinfo(struct addrinfo *freethis,
diff --git a/lib/curl_config.h.in b/lib/curl_config.h.in
index 15ea387f..aaea103f 100644
--- a/lib/curl_config.h.in
+++ b/lib/curl_config.h.in
@@ -177,6 +177,15 @@
/* Define to 1 if you have the freeifaddrs function. */
#undef HAVE_FREEIFADDRS
+/* Define to 1 if you have the fsetxattr function. */
+#undef HAVE_FSETXATTR
+
+/* fsetxattr() takes 5 args */
+#undef HAVE_FSETXATTR_5
+
+/* fsetxattr() takes 6 args */
+#undef HAVE_FSETXATTR_6
+
/* Define to 1 if you have the ftruncate function. */
#undef HAVE_FTRUNCATE
@@ -397,6 +406,9 @@
/* Define to 1 if you have the `libssh2_scp_send64' function. */
#undef HAVE_LIBSSH2_SCP_SEND64
+/* Define to 1 if you have the `libssh2_session_handshake' function. */
+#undef HAVE_LIBSSH2_SESSION_HANDSHAKE
+
/* Define to 1 if you have the `libssh2_version' function. */
#undef HAVE_LIBSSH2_VERSION
@@ -701,6 +713,9 @@
/* Define to 1 if you have the <sys/utime.h> header file. */
#undef HAVE_SYS_UTIME_H
+/* Define to 1 if you have the <sys/xattr.h> header file. */
+#undef HAVE_SYS_XATTR_H
+
/* Define to 1 if you have the <termios.h> header file. */
#undef HAVE_TERMIOS_H
diff --git a/lib/curl_rtmp.c b/lib/curl_rtmp.c
index df30dc1f..bc1769e6 100644
--- a/lib/curl_rtmp.c
+++ b/lib/curl_rtmp.c
@@ -51,7 +51,7 @@ static CURLcode rtmp_setup(struct connectdata *conn);
static CURLcode rtmp_do(struct connectdata *conn, bool *done);
static CURLcode rtmp_done(struct connectdata *conn, CURLcode, bool premature);
static CURLcode rtmp_connect(struct connectdata *conn, bool *done);
-static CURLcode rtmp_disconnect(struct connectdata *conn);
+static CURLcode rtmp_disconnect(struct connectdata *conn, bool dead_connection);
static Curl_recv rtmp_recv;
static Curl_send rtmp_send;
@@ -236,9 +236,11 @@ static CURLcode rtmp_done(struct connectdata *conn, CURLcode status,
return CURLE_OK;
}
-static CURLcode rtmp_disconnect(struct connectdata *conn)
+static CURLcode rtmp_disconnect(struct connectdata *conn,
+ bool dead_connection)
{
RTMP *r = conn->proto.generic;
+ (void)dead_connection;
if (r) {
conn->proto.generic = NULL;
RTMP_Close(r);
diff --git a/lib/easy.c b/lib/easy.c
index 1f839fe2..6f553475 100644
--- a/lib/easy.c
+++ b/lib/easy.c
@@ -626,125 +626,117 @@ CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ...)
*/
CURL *curl_easy_duphandle(CURL *incurl)
{
- bool fail = TRUE;
struct SessionHandle *data=(struct SessionHandle *)incurl;
struct SessionHandle *outcurl = calloc(1, sizeof(struct SessionHandle));
-
if(NULL == outcurl)
- return NULL; /* failure */
+ goto fail;
- do {
+ /*
+ * We setup a few buffers we need. We should probably make them
+ * get setup on-demand in the code, as that would probably decrease
+ * the likeliness of us forgetting to init a buffer here in the future.
+ */
+ outcurl->state.headerbuff = malloc(HEADERSIZE);
+ if(!outcurl->state.headerbuff)
+ goto fail;
+ outcurl->state.headersize = HEADERSIZE;
- /*
- * We setup a few buffers we need. We should probably make them
- * get setup on-demand in the code, as that would probably decrease
- * the likeliness of us forgetting to init a buffer here in the future.
- */
- outcurl->state.headerbuff = malloc(HEADERSIZE);
- if(!outcurl->state.headerbuff) {
- break;
- }
- outcurl->state.headersize=HEADERSIZE;
+ /* copy all userdefined values */
+ if(Curl_dupset(outcurl, data) != CURLE_OK)
+ goto fail;
- /* copy all userdefined values */
- if(Curl_dupset(outcurl, data) != CURLE_OK)
- break;
-
- /* the connection cache is setup on demand */
- outcurl->state.connc = NULL;
+ /* the connection cache is setup on demand */
+ outcurl->state.connc = NULL;
- outcurl->state.lastconnect = -1;
+ outcurl->state.lastconnect = -1;
- outcurl->progress.flags = data->progress.flags;
- outcurl->progress.callback = data->progress.callback;
+ outcurl->progress.flags = data->progress.flags;
+ outcurl->progress.callback = data->progress.callback;
#if !defined(CURL_DISABLE_HTTP) && !defined(CURL_DISABLE_COOKIES)
- if(data->cookies) {
- /* If cookies are enabled in the parent handle, we enable them
- in the clone as well! */
- outcurl->cookies = Curl_cookie_init(data,
- data->cookies->filename,
- outcurl->cookies,
- data->set.cookiesession);
- if(!outcurl->cookies) {
- break;
- }
- }
+ if(data->cookies) {
+ /* If cookies are enabled in the parent handle, we enable them
+ in the clone as well! */
+ outcurl->cookies = Curl_cookie_init(data,
+ data->cookies->filename,
+ outcurl->cookies,
+ data->set.cookiesession);
+ if(!outcurl->cookies)
+ goto fail;
+ }
#endif /* CURL_DISABLE_HTTP */
- /* duplicate all values in 'change' */
+ /* duplicate all values in 'change' */
#if !defined(CURL_DISABLE_HTTP) && !defined(CURL_DISABLE_COOKIES)
- if(data->change.cookielist) {
- outcurl->change.cookielist =
- Curl_slist_duplicate(data->change.cookielist);
-
- if (!outcurl->change.cookielist)
- break;
- }
+ if(data->change.cookielist) {
+ outcurl->change.cookielist =
+ Curl_slist_duplicate(data->change.cookielist);
+ if(!outcurl->change.cookielist)
+ goto fail;
+ }
#endif /* CURL_DISABLE_HTTP */
- if(data->change.url) {
- outcurl->change.url = strdup(data->change.url);
- if(!outcurl->change.url)
- break;
- outcurl->change.url_alloc = TRUE;
- }
+ if(data->change.url) {
+ outcurl->change.url = strdup(data->change.url);
+ if(!outcurl->change.url)
+ goto fail;
+ outcurl->change.url_alloc = TRUE;
+ }
- if(data->change.referer) {
- outcurl->change.referer = strdup(data->change.referer);
- if(!outcurl->change.referer)
- break;
- outcurl->change.referer_alloc = TRUE;
- }
+ if(data->change.referer) {
+ outcurl->change.referer = strdup(data->change.referer);
+ if(!outcurl->change.referer)
+ goto fail;
+ outcurl->change.referer_alloc = TRUE;
+ }
#ifdef USE_ARES
- /* If we use ares, we clone the ares channel for the new handle */
- if(ARES_SUCCESS != ares_dup(&outcurl->state.areschannel,
- data->state.areschannel))
- break;
+ /* If we use ares, we clone the ares channel for the new handle */
+ if(ARES_SUCCESS != ares_dup(&outcurl->state.areschannel,
+ data->state.areschannel))
+ goto fail;
#endif
#if defined(CURL_DOES_CONVERSIONS) && defined(HAVE_ICONV)
- outcurl->inbound_cd = iconv_open(CURL_ICONV_CODESET_OF_HOST,
- CURL_ICONV_CODESET_OF_NETWORK);
- outcurl->outbound_cd = iconv_open(CURL_ICONV_CODESET_OF_NETWORK,
- CURL_ICONV_CODESET_OF_HOST);
- outcurl->utf8_cd = iconv_open(CURL_ICONV_CODESET_OF_HOST,
- CURL_ICONV_CODESET_FOR_UTF8);
+ outcurl->inbound_cd = iconv_open(CURL_ICONV_CODESET_OF_HOST,
+ CURL_ICONV_CODESET_OF_NETWORK);
+ outcurl->outbound_cd = iconv_open(CURL_ICONV_CODESET_OF_NETWORK,
+ CURL_ICONV_CODESET_OF_HOST);
+ outcurl->utf8_cd = iconv_open(CURL_ICONV_CODESET_OF_HOST,
+ CURL_ICONV_CODESET_FOR_UTF8);
#endif
- Curl_easy_initHandleData(outcurl);
+ Curl_easy_initHandleData(outcurl);
+
+ outcurl->magic = CURLEASY_MAGIC_NUMBER;
- outcurl->magic = CURLEASY_MAGIC_NUMBER;
+ /* we reach this point and thus we are OK */
- fail = FALSE; /* we reach this point and thus we are OK */
+ return outcurl;
- } while(0);
+ fail:
- if(fail) {
- if(outcurl) {
- if(outcurl->state.connc &&
- (outcurl->state.connc->type == CONNCACHE_PRIVATE))
- Curl_rm_connc(outcurl->state.connc);
- if(outcurl->state.headerbuff)
- free(outcurl->state.headerbuff);
+ if(outcurl) {
+ if(outcurl->state.connc &&
+ (outcurl->state.connc->type == CONNCACHE_PRIVATE))
+ Curl_rm_connc(outcurl->state.connc);
+ if(outcurl->state.headerbuff)
+ free(outcurl->state.headerbuff);
#if !defined(CURL_DISABLE_HTTP) && !defined(CURL_DISABLE_COOKIES)
- if(outcurl->change.cookielist)
- curl_slist_free_all(outcurl->change.cookielist);
+ if(outcurl->change.cookielist)
+ curl_slist_free_all(outcurl->change.cookielist);
#endif
- if(outcurl->change.url)
- free(outcurl->change.url);
- if(outcurl->change.referer)
- free(outcurl->change.referer);
- Curl_freeset(outcurl);
- free(outcurl); /* free the memory again */
- outcurl = NULL;
- }
+ if(outcurl->change.url)
+ free(outcurl->change.url);
+ if(outcurl->change.referer)
+ free(outcurl->change.referer);
+ Curl_freeset(outcurl);
+ free(outcurl);
}
- return outcurl;
+ return NULL;
}
/*
diff --git a/lib/file.c b/lib/file.c
index 91176aa1..8e4ee075 100644
--- a/lib/file.c
+++ b/lib/file.c
@@ -146,7 +146,7 @@ static CURLcode file_range(struct connectdata *conn)
if(data->state.use_range && data->state.range) {
from=curlx_strtoofft(data->state.range, &ptr, 0);
- while(*ptr && (isspace((int)*ptr) || (*ptr=='-')))
+ while(*ptr && (ISSPACE(*ptr) || (*ptr=='-')))
ptr++;
to=curlx_strtoofft(ptr, &ptr2, 0);
if(ptr == ptr2) {
diff --git a/lib/formdata.c b/lib/formdata.c
index c98246e2..5ec3e384 100644
--- a/lib/formdata.c
+++ b/lib/formdata.c
@@ -123,6 +123,7 @@ Content-Disposition: form-data; name="FILECONTENT"
#include "curl_rand.h"
#include "strequal.h"
#include "curl_memory.h"
+#include "sendf.h"
#define _MPRINTF_REPLACE /* use our functions only */
#include <curl/mprintf.h>
@@ -975,7 +976,7 @@ int curl_formget(struct curl_httppost *form, void *arg,
curl_off_t size;
struct FormData *data, *ptr;
- rc = Curl_getFormData(&data, form, NULL, &size);
+ rc = Curl_getformdata(NULL, &data, form, NULL, &size);
if(rc != CURLE_OK)
return (int)rc;
@@ -1105,15 +1106,20 @@ static char *strippath(const char *fullfile)
}
/*
- * Curl_getFormData() converts a linked list of "meta data" into a complete
+ * Curl_getformdata() converts a linked list of "meta data" into a complete
* (possibly huge) multipart formdata. The input list is in 'post', while the
* output resulting linked lists gets stored in '*finalform'. *sizep will get
* the total size of the whole POST.
* A multipart/form_data content-type is built, unless a custom content-type
* is passed in 'custom_content_type'.
+ *
+ * This function will not do a failf() for the potential memory failures but
+ * should for all other errors it spots. Just note that this function MAY get
+ * a NULL pointer in the 'data' argument.
*/
-CURLcode Curl_getFormData(struct FormData **finalform,
+CURLcode Curl_getformdata(struct SessionHandle *data,
+ struct FormData **finalform,
struct curl_httppost *post,
const char *custom_content_type,
curl_off_t *sizep)
@@ -1271,23 +1277,6 @@ CURLcode Curl_getFormData(struct FormData **finalform,
return result;
}
-#if 0
- /* The header Content-Transfer-Encoding: seems to confuse some receivers
- * (like the built-in PHP engine). While I can't see any reason why it
- * should, I can just as well skip this to the benefit of the users who
- * are using such confused receivers.
- */
-
- if(file->contenttype &&
- !checkprefix("text/", file->contenttype)) {
- /* this is not a text content, mention our binary encoding */
- result = AddFormDataf(&form, &size,
- "\r\nContent-Transfer-Encoding: binary");
- if(result)
- break;
- }
-#endif
-
result = AddFormDataf(&form, &size, "\r\n\r\n");
if(result)
break;
@@ -1327,50 +1316,31 @@ CURLcode Curl_getFormData(struct FormData **finalform,
break;
}
}
-
- if(result) {
- Curl_formclean(&firstform);
- free(boundary);
- return result;
- }
-
}
else {
-#ifdef _FORM_DEBUG
- fprintf(stderr,
- "\n==> Curl_getFormData couldn't open/read \"%s\"\n",
- file->contents);
-#endif
- Curl_formclean(&firstform);
- free(boundary);
+ if(data)
+ failf(data, "couldn't open file \"%s\"\n", file->contents);
*finalform = NULL;
- return CURLE_READ_ERROR;
+ result = CURLE_READ_ERROR;
}
-
}
- else if(post->flags & HTTPPOST_BUFFER) {
+ else if(post->flags & HTTPPOST_BUFFER)
/* include contents of buffer */
result = AddFormData(&form, FORM_CONTENT, post->buffer,
post->bufferlength, &size);
- if(result)
- break;
- }
- else if(post->flags & HTTPPOST_CALLBACK) {
+ else if(post->flags & HTTPPOST_CALLBACK)
/* the contents should be read with the callback and the size
is set with the contentslength */
result = AddFormData(&form, FORM_CALLBACK, post->userp,
post->contentslength, &size);
- if(result)
- break;
- }
- else {
+ else
/* include the contents we got */
result = AddFormData(&form, FORM_CONTENT, post->contents,
post->contentslength, &size);
- if(result)
- break;
- }
- } while((file = file->more) != NULL); /* for each specified file for this field */
+
+ file = file->more;
+ } while(file && !result); /* for each specified file for this field */
+
if(result) {
Curl_formclean(&firstform);
free(boundary);
@@ -1666,25 +1636,25 @@ int main(int argc, argv_item_t argv[])
CURLFORM_END))
++errors;
- rc = Curl_getFormData(&form, httppost, NULL, &size);
+ rc = Curl_getformdata(NULL, &form, httppost, NULL, &size);
if(rc != CURLE_OK) {
if(rc != CURLE_READ_ERROR) {
const char *errortext = curl_easy_strerror(rc);
- fprintf(stdout, "\n==> Curl_getFormData error: %s\n", errortext);
+ fprintf(stdout, "\n==> Curl_getformdata error: %s\n", errortext);
}
return 0;
}
Curl_FormInit(&formread, form);
- do {
+ for(;;) {
nread = Curl_FormReader(buffer, 1, sizeof(buffer),
(FILE *)&formread);
if(nread < 1)
break;
fwrite(buffer, nread, 1, stdout);
- } while(1);
+ }
fprintf(stdout, "size: ");
fprintf(stdout, "%" FORMAT_OFF_T, size);
diff --git a/lib/formdata.h b/lib/formdata.h
index 0c9db442..22f504bb 100644
--- a/lib/formdata.h
+++ b/lib/formdata.h
@@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2010, 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
@@ -70,11 +70,11 @@ typedef struct FormInfo {
int Curl_FormInit(struct Form *form, struct FormData *formdata );
-CURLcode
-Curl_getFormData(struct FormData **,
- struct curl_httppost *post,
- const char *custom_contenttype,
- curl_off_t *size);
+CURLcode Curl_getformdata(struct SessionHandle *data,
+ struct FormData **,
+ struct curl_httppost *post,
+ const char *custom_contenttype,
+ curl_off_t *size);
/* fread() emulation */
size_t Curl_FormReader(char *buffer,
diff --git a/lib/ftp.c b/lib/ftp.c
index 60d95172..8e370c5d 100644
--- a/lib/ftp.c
+++ b/lib/ftp.c
@@ -136,7 +136,7 @@ static CURLcode ftp_do(struct connectdata *conn, bool *done);
static CURLcode ftp_done(struct connectdata *conn,
CURLcode, bool premature);
static CURLcode ftp_connect(struct connectdata *conn, bool *done);
-static CURLcode ftp_disconnect(struct connectdata *conn);
+static CURLcode ftp_disconnect(struct connectdata *conn, bool dead_connection);
static CURLcode ftp_nextconnect(struct connectdata *conn);
static CURLcode ftp_multi_statemach(struct connectdata *conn, bool *done);
static int ftp_getsock(struct connectdata *conn,
@@ -379,7 +379,7 @@ static int ftp_endofresp(struct pingpong *pp,
size_t len = pp->nread_resp;
if((len > 3) && LASTLINE(line)) {
- *code = atoi(line);
+ *code = curlx_sltosi(strtol(line, NULL, 10));
return 1;
}
return 0;
@@ -405,13 +405,13 @@ static CURLcode ftp_readresp(curl_socket_t sockfd,
/* FIXME: some errorchecking perhaps... ***/
switch(code) {
case 631:
- code = Curl_sec_read_msg(conn, buf, prot_safe);
+ code = Curl_sec_read_msg(conn, buf, PROT_SAFE);
break;
case 632:
- code = Curl_sec_read_msg(conn, buf, prot_private);
+ code = Curl_sec_read_msg(conn, buf, PROT_PRIVATE);
break;
case 633:
- code = Curl_sec_read_msg(conn, buf, prot_confidential);
+ code = Curl_sec_read_msg(conn, buf, PROT_CONFIDENTIAL);
break;
default:
/* normal ftp stuff we pass through! */
@@ -425,6 +425,12 @@ static CURLcode ftp_readresp(curl_socket_t sockfd,
if(ftpcode)
*ftpcode = code;
+ if(421 == code)
+ /* 421 means "Service not available, closing control connection." and FTP
+ * servers use it to signal that idle session timeout has been exceeded.
+ * If we ignored the response, it could end up hanging in some cases. */
+ return CURLE_OPERATION_TIMEDOUT;
+
return result;
}
@@ -1360,18 +1366,16 @@ static CURLcode ftp_state_ul_setup(struct connectdata *conn,
else {
curl_off_t passed=0;
do {
- curl_off_t readthisamountnow = (data->state.resume_from - passed);
- curl_off_t actuallyread;
-
- if(readthisamountnow > BUFSIZE)
- readthisamountnow = BUFSIZE;
+ size_t readthisamountnow =
+ (data->state.resume_from - passed > CURL_OFF_T_C(BUFSIZE)) ?
+ BUFSIZE : curlx_sotouz(data->state.resume_from - passed);
- actuallyread = (curl_off_t)
- conn->fread_func(data->state.buffer, 1, (size_t)readthisamountnow,
+ size_t actuallyread =
+ conn->fread_func(data->state.buffer, 1, readthisamountnow,
conn->fread_in);
passed += actuallyread;
- if((actuallyread <= 0) || (actuallyread > readthisamountnow)) {
+ if((actuallyread == 0) || (actuallyread > readthisamountnow)) {
/* this checks for greater-than only to make sure that the
CURL_READFUNC_ABORT return code still aborts */
failf(data, "Failed to read data");
@@ -3083,6 +3087,10 @@ static CURLcode ftp_done(struct connectdata *conn, CURLcode status,
#endif
if(conn->sock[SECONDARYSOCKET] != CURL_SOCKET_BAD) {
+ if(!result && ftpc->dont_check && data->req.maxdownload > 0)
+ /* partial download completed */
+ result = Curl_pp_sendf(pp, "ABOR");
+
if(conn->ssl[SECONDARYSOCKET].use) {
/* The secondary socket is using SSL so we must close down that part
first before we close the socket for real */
@@ -3097,7 +3105,7 @@ static CURLcode ftp_done(struct connectdata *conn, CURLcode status,
}
}
- if((ftp->transfer == FTPTRANSFER_BODY) && ftpc->ctl_valid &&
+ if(!result && (ftp->transfer == FTPTRANSFER_BODY) && ftpc->ctl_valid &&
pp->pending_resp && !premature) {
/*
* Let's see what the server says about the transfer we just performed,
@@ -3123,6 +3131,14 @@ static CURLcode ftp_done(struct connectdata *conn, CURLcode status,
if(result)
return result;
+ if(ftpc->dont_check && data->req.maxdownload > 0) {
+ /* we have just sent ABOR and there is no reliable way to check if it was
+ * successful or not; we have to close the connection now */
+ infof(data, "partial download completed, closing connection\n");
+ conn->bits.close = TRUE; /* mark for closure */
+ return result;
+ }
+
if(!ftpc->dont_check) {
/* 226 Transfer complete, 250 Requested file action okay, completed. */
if((ftpcode != 226) && (ftpcode != 250)) {
@@ -3562,14 +3578,12 @@ static CURLcode init_wc_data(struct connectdata *conn)
return CURLE_OK;
}
+/* This is called recursively */
static CURLcode wc_statemach(struct connectdata *conn)
{
- struct ftp_conn *ftpc = &conn->proto.ftpc;
- struct WildcardData *wildcard = &(conn->data->wildcard);
- struct ftp_wc_tmpdata *ftp_tmp = wildcard->tmp;
- char *tmp_path;
+ struct WildcardData * const wildcard = &(conn->data->wildcard);
CURLcode ret = CURLE_OK;
- long userresponse = 0;
+
switch (wildcard->state) {
case CURLWC_INIT:
ret = init_wc_data(conn);
@@ -3580,10 +3594,10 @@ static CURLcode wc_statemach(struct connectdata *conn)
wildcard->state = ret ? CURLWC_ERROR : CURLWC_MATCHING;
break;
- case CURLWC_MATCHING:
+ case CURLWC_MATCHING: {
/* In this state is LIST response successfully parsed, so lets restore
previous WRITEFUNCTION callback and WRITEDATA pointer */
- ftp_tmp = wildcard->tmp;
+ struct ftp_wc_tmpdata *ftp_tmp = wildcard->tmp;
conn->data->set.fwrite_func = ftp_tmp->backup.write_function;
conn->data->set.out = ftp_tmp->backup.file_descriptor;
wildcard->state = CURLWC_DOWNLOADING;
@@ -3598,13 +3612,14 @@ static CURLcode wc_statemach(struct connectdata *conn)
wildcard->state = CURLWC_CLEAN;
return CURLE_REMOTE_FILE_NOT_FOUND;
}
- ret = wc_statemach(conn);
- break;
+ return wc_statemach(conn);
+ }
case CURLWC_DOWNLOADING: {
/* filelist has at least one file, lets get first one */
+ struct ftp_conn *ftpc = &conn->proto.ftpc;
struct curl_fileinfo *finfo = wildcard->filelist->head->ptr;
- tmp_path = malloc(strlen(conn->data->state.path) +
+ char *tmp_path = malloc(strlen(conn->data->state.path) +
strlen(finfo->filename) + 1);
if(!tmp_path) {
return CURLE_OUT_OF_MEMORY;
@@ -3623,7 +3638,7 @@ static CURLcode wc_statemach(struct connectdata *conn)
infof(conn->data, "Wildcard - START of \"%s\"\n", finfo->filename);
if(conn->data->set.chunk_bgn) {
- userresponse = conn->data->set.chunk_bgn(
+ long userresponse = conn->data->set.chunk_bgn(
finfo, wildcard->customptr, (int)wildcard->filelist->size);
switch(userresponse) {
case CURL_CHUNK_BGN_FUNC_SKIP:
@@ -3666,16 +3681,17 @@ static CURLcode wc_statemach(struct connectdata *conn)
Curl_llist_remove(wildcard->filelist, wildcard->filelist->head, NULL);
wildcard->state = (wildcard->filelist->size == 0) ?
CURLWC_CLEAN : CURLWC_DOWNLOADING;
- ret = wc_statemach(conn);
- } break;
+ return wc_statemach(conn);
+ }
- case CURLWC_CLEAN:
+ case CURLWC_CLEAN: {
+ struct ftp_wc_tmpdata *ftp_tmp = wildcard->tmp;
ret = CURLE_OK;
if(ftp_tmp) {
ret = Curl_ftp_parselist_geterror(ftp_tmp->parser);
}
wildcard->state = ret ? CURLWC_ERROR : CURLWC_DONE;
- break;
+ } break;
case CURLWC_DONE:
case CURLWC_ERROR:
@@ -3766,11 +3782,12 @@ CURLcode Curl_ftpsendf(struct connectdata *conn,
for(;;) {
#if defined(HAVE_KRB4) || defined(HAVE_GSSAPI)
- conn->data_prot = prot_cmd;
+ conn->data_prot = PROT_CMD;
#endif
res = Curl_write(conn, conn->sock[FIRSTSOCKET], sptr, write_len,
&bytes_written);
#if defined(HAVE_KRB4) || defined(HAVE_GSSAPI)
+ DEBUGASSERT(data_sec > PROT_NONE && data_sec < PROT_LAST);
conn->data_prot = data_sec;
#endif
@@ -3823,7 +3840,7 @@ static CURLcode ftp_quit(struct connectdata *conn)
* Disconnect from an FTP server. Cleanup protocol-specific per-connection
* resources. BLOCKING.
*/
-static CURLcode ftp_disconnect(struct connectdata *conn)
+static CURLcode ftp_disconnect(struct connectdata *conn, bool dead_connection)
{
struct ftp_conn *ftpc= &conn->proto.ftpc;
struct pingpong *pp = &ftpc->pp;
@@ -3835,6 +3852,8 @@ static CURLcode ftp_disconnect(struct connectdata *conn)
ftp_quit() will check the state of ftp->ctl_valid. If it's ok it
will try to send the QUIT command, otherwise it will just return.
*/
+ if(dead_connection)
+ ftpc->ctl_valid = FALSE;
/* The FTP session may or may not have been allocated/setup at this point! */
(void)ftp_quit(conn); /* ignore errors on the QUIT */
@@ -3959,9 +3978,9 @@ CURLcode ftp_parse_url_path(struct connectdata *conn)
else {
/* parse the URL path into separate path components */
while((slash_pos = strchr(cur_pos, '/')) != NULL) {
- /* 1 or 0 to indicate absolute directory */
- bool absolute_dir = (bool)((cur_pos - data->state.path > 0) &&
- (ftpc->dirdepth == 0));
+ /* 1 or 0 pointer offset to indicate absolute directory */
+ ssize_t absolute_dir = ((cur_pos - data->state.path > 0) &&
+ (ftpc->dirdepth == 0))?1:0;
/* seek out the next path component */
if(slash_pos-cur_pos) {
diff --git a/lib/getinfo.c b/lib/getinfo.c
index c00e675e..94668628 100644
--- a/lib/getinfo.c
+++ b/lib/getinfo.c
@@ -67,10 +67,10 @@ CURLcode Curl_initinfo(struct SessionHandle *data)
info->request_size = 0;
info->numconnects = 0;
- info->ip[0] = 0;
- info->port = 0;
- info->localip[0] = 0;
- info->localport = 0;
+ info->conn_primary_ip[0] = '\0';
+ info->conn_local_ip[0] = '\0';
+ info->conn_primary_port = 0;
+ info->conn_local_port = 0;
return CURLE_OK;
}
@@ -238,20 +238,20 @@ CURLcode Curl_getinfo(struct SessionHandle *data, CURLINFO info, ...)
break;
case CURLINFO_PRIMARY_IP:
/* Return the ip address of the most recent (primary) connection */
- *param_charp = data->info.ip;
+ *param_charp = data->info.conn_primary_ip;
break;
case CURLINFO_PRIMARY_PORT:
/* Return the (remote) port of the most recent (primary) connection */
- *param_longp = data->info.port;
+ *param_longp = data->info.conn_primary_port;
break;
case CURLINFO_LOCAL_IP:
/* Return the source/local ip address of the most recent (primary)
connection */
- *param_charp = data->info.localip;
+ *param_charp = data->info.conn_local_ip;
break;
case CURLINFO_LOCAL_PORT:
/* Return the local port of the most recent (primary) connection */
- *param_longp = data->info.localport;
+ *param_longp = data->info.conn_local_port;
break;
case CURLINFO_CERTINFO:
/* Return the a pointer to the certinfo struct. Not really an slist
diff --git a/lib/gopher.c b/lib/gopher.c
index aa9c45b0..3d8fcffd 100644
--- a/lib/gopher.c
+++ b/lib/gopher.c
@@ -78,6 +78,7 @@
#include "rawstr.h"
#include "select.h"
#include "url.h"
+#include "warnless.h"
#define _MPRINTF_REPLACE /* use our functions only */
#include <curl/mprintf.h>
@@ -156,7 +157,7 @@ static CURLcode gopher_do(struct connectdata *conn, bool *done)
/* We use Curl_write instead of Curl_sendf to make sure the entire buffer is
sent, which could be sizeable with long selectors. */
- k = strlen(sel);
+ k = curlx_uztosz(strlen(sel));
for(;;) {
result = Curl_write(conn, sockfd, sel, k, &amount);
diff --git a/lib/gtls.c b/lib/gtls.c
index 99be073a..845dbbb1 100644
--- a/lib/gtls.c
+++ b/lib/gtls.c
@@ -78,6 +78,7 @@ static void tls_log_func(int level, const char *str)
}
#endif
static bool gtls_inited = FALSE;
+
/*
* Custom push and pull callback functions used by GNU TLS to read and write
* to the socket. These functions are simple wrappers to send() and recv()
@@ -85,15 +86,54 @@ static bool gtls_inited = FALSE;
* We use custom functions rather than the GNU TLS defaults because it allows
* us to get specific about the fourth "flags" argument, and to use arbitrary
* private data with gnutls_transport_set_ptr if we wish.
+ *
+ * When these custom push and pull callbacks fail, GNU TLS checks its own
+ * session-specific error variable, and when not set also its own global
+ * errno variable, in order to take appropriate action. GNU TLS does not
+ * require that the transport is actually a socket. This implies that for
+ * Windows builds these callbacks should ideally set the session-specific
+ * error variable using function gnutls_transport_set_errno or as a last
+ * resort global errno variable using gnutls_transport_set_global_errno,
+ * with a transport agnostic error value. This implies that some winsock
+ * error translation must take place in these callbacks.
*/
+
+#ifdef USE_WINSOCK
+# define gtls_EINTR 4
+# define gtls_EIO 5
+# define gtls_EAGAIN 11
+static int gtls_mapped_sockerrno(void)
+{
+ switch(SOCKERRNO) {
+ case WSAEWOULDBLOCK:
+ return gtls_EAGAIN;
+ case WSAEINTR:
+ return gtls_EINTR;
+ default:
+ break;
+ }
+ return gtls_EIO;
+}
+#endif
+
static ssize_t Curl_gtls_push(void *s, const void *buf, size_t len)
{
- return swrite(GNUTLS_POINTER_TO_INT_CAST(s), buf, len);
+ ssize_t ret = swrite(GNUTLS_POINTER_TO_INT_CAST(s), buf, len);
+#ifdef USE_WINSOCK
+ if(ret < 0)
+ gnutls_transport_set_global_errno(gtls_mapped_sockerrno());
+#endif
+ return ret;
}
static ssize_t Curl_gtls_pull(void *s, void *buf, size_t len)
{
- return sread(GNUTLS_POINTER_TO_INT_CAST(s), buf, len);
+ ssize_t ret = sread(GNUTLS_POINTER_TO_INT_CAST(s), buf, len);
+#ifdef USE_WINSOCK
+ if(ret < 0)
+ gnutls_transport_set_global_errno(gtls_mapped_sockerrno());
+#endif
+ return ret;
}
/* Curl_gtls_init()
@@ -196,7 +236,7 @@ static CURLcode handshake(struct connectdata *conn,
int rc;
int what;
- while(1) {
+ for(;;) {
/* check allowed time left */
timeout_ms = Curl_timeleft(conn, NULL, duringconnect);
@@ -216,19 +256,18 @@ static CURLcode handshake(struct connectdata *conn,
connssl->connecting_state?sockfd:CURL_SOCKET_BAD;
what = Curl_socket_ready(readfd, writefd,
- nonblocking?0:(int)timeout_ms);
+ nonblocking?0:(int)timeout_ms?1000:timeout_ms);
if(what < 0) {
/* fatal error */
failf(data, "select/poll on SSL socket, errno: %d", SOCKERRNO);
return CURLE_SSL_CONNECT_ERROR;
}
else if(0 == what) {
- if(nonblocking) {
+ if(nonblocking)
return CURLE_OK;
- }
- else {
+ else if(timeout_ms) {
/* timeout */
- failf(data, "SSL connection timeout");
+ failf(data, "SSL connection timeout at %ld", timeout_ms);
return CURLE_OPERATION_TIMEDOUT;
}
}
@@ -241,12 +280,14 @@ static CURLcode handshake(struct connectdata *conn,
connssl->connecting_state =
gnutls_record_get_direction(session)?
ssl_connect_2_writing:ssl_connect_2_reading;
- if(nonblocking) {
+ if(nonblocking)
return CURLE_OK;
- }
- } else if (rc < 0) {
+ }
+ else if (rc < 0) {
failf(data, "gnutls_handshake() failed: %s", gnutls_strerror(rc));
- } else {
+ return CURLE_SSL_CONNECT_ERROR;
+ }
+ else {
/* Reset our connect state machine */
connssl->connecting_state = ssl_connect_1;
return CURLE_OK;
diff --git a/lib/hmac.c b/lib/hmac.c
index 0c01d118..8cb5f2ea 100644
--- a/lib/hmac.c
+++ b/lib/hmac.c
@@ -60,7 +60,7 @@ Curl_HMAC_init(const HMAC_params * hashparams,
/* Create HMAC context. */
i = sizeof *ctxt + 2 * hashparams->hmac_ctxtsize + hashparams->hmac_resultlen;
- ctxt = (HMAC_context *) malloc(i);
+ ctxt = malloc(i);
if(!ctxt)
return ctxt;
@@ -85,9 +85,9 @@ Curl_HMAC_init(const HMAC_params * hashparams,
(*hashparams->hmac_hinit)(ctxt->hmac_hashctxt2);
for (i = 0; i < keylen; i++) {
- b = *key ^ hmac_ipad;
+ b = (unsigned char)(*key ^ hmac_ipad);
(*hashparams->hmac_hupdate)(ctxt->hmac_hashctxt1, &b, 1);
- b = *key++ ^ hmac_opad;
+ b = (unsigned char)(*key++ ^ hmac_opad);
(*hashparams->hmac_hupdate)(ctxt->hmac_hashctxt2, &b, 1);
}
diff --git a/lib/hostares.c b/lib/hostares.c
index a00fefa0..97cb27ab 100644
--- a/lib/hostares.c
+++ b/lib/hostares.c
@@ -224,17 +224,12 @@ CURLcode Curl_wait_for_resolv(struct connectdata *conn,
long timeout;
struct timeval now = Curl_tvnow();
- /* now, see if there's a connect timeout or a regular timeout to
- use instead of the default one */
- if(conn->data->set.connecttimeout)
- timeout = conn->data->set.connecttimeout;
- else if(conn->data->set.timeout)
- timeout = conn->data->set.timeout;
- else
+ timeout = Curl_timeleft(conn, &now, TRUE);
+ if(!timeout)
timeout = CURL_TIMEOUT_RESOLVE * 1000; /* default name resolve timeout */
/* Wait for the name resolve query to complete. */
- while(1) {
+ for(;;) {
struct timeval *tvp, tv, store;
long timediff;
int itimeout;
@@ -265,8 +260,10 @@ CURLcode Curl_wait_for_resolv(struct connectdata *conn,
timeout = -1; /* trigger the cancel below */
}
else {
- timediff = Curl_tvdiff(Curl_tvnow(), now); /* spent time */
+ struct timeval now2 = Curl_tvnow();
+ timediff = Curl_tvdiff(now2, now); /* spent time */
timeout -= timediff?timediff:1; /* always deduct at least 1 */
+ now = now2; /* for next loop */
}
if(timeout < 0) {
/* our timeout, so we cancel the ares operation */
@@ -378,7 +375,7 @@ Curl_addrinfo *Curl_getaddrinfo(struct connectdata *conn,
return Curl_ip2addr(AF_INET6, &in6, hostname, port);
}
- switch(data->set.ip_version) {
+ switch(conn->ip_version) {
default:
#if ARES_VERSION >= 0x010601
family = PF_UNSPEC; /* supported by c-ares since 1.6.1, so for older
diff --git a/lib/hostip.c b/lib/hostip.c
index 8f6a52e4..3db5b496 100644
--- a/lib/hostip.c
+++ b/lib/hostip.c
@@ -67,6 +67,7 @@
#include "strerror.h"
#include "url.h"
#include "inet_ntop.h"
+#include "warnless.h"
#define _MPRINTF_REPLACE /* use our functions only */
#include <curl/mprintf.h>
@@ -366,7 +367,7 @@ Curl_cache_addr(struct SessionHandle *data,
dns = dns2;
dns->inuse++; /* mark entry as in-use */
- /* free the allocated entry_id again */
+ /* free the allocated entry_id */
free(entry_id);
return dns;
@@ -421,6 +422,9 @@ int Curl_resolv(struct connectdata *conn,
/* See if its already in our dns cache */
dns = Curl_hash_pick(data->dns.hostcache, entry_id, entry_len+1);
+ /* free the allocated entry_id again */
+ free(entry_id);
+
/* See whether the returned entry is stale. Done before we release lock */
if( remove_entry_if_stale(data, dns) )
dns = NULL; /* the memory deallocation is being handled by the hash */
@@ -433,9 +437,6 @@ int Curl_resolv(struct connectdata *conn,
if(data->share)
Curl_share_unlock(data, CURL_LOCK_DATA_DNS);
- /* free the allocated entry_id again */
- free(entry_id);
-
if(!dns) {
/* The entry was not in the cache. Resolve it to IP address */
@@ -444,7 +445,7 @@ int Curl_resolv(struct connectdata *conn,
/* Check what IP specifics the app has requested and if we can provide it.
* If not, bail out. */
- if(!Curl_ipvalid(data))
+ if(!Curl_ipvalid(conn))
return CURLRESOLV_ERROR;
/* If Curl_getaddrinfo() returns NULL, 'respwait' might be set to a
@@ -597,7 +598,7 @@ int Curl_resolv_timeout(struct connectdata *conn,
/* alarm() makes a signal get sent when the timeout fires off, and that
will abort system calls */
- prev_alarm = alarm((unsigned int) (timeout/1000L));
+ prev_alarm = alarm(curlx_sltoui(timeout/1000L));
/* This allows us to time-out from the name resolver, as the timeout
will generate a signal and we will siglongjmp() from that here.
diff --git a/lib/hostip.h b/lib/hostip.h
index 33e573cd..2f8d4b56 100644
--- a/lib/hostip.h
+++ b/lib/hostip.h
@@ -111,7 +111,7 @@ int Curl_resolv_timeout(struct connectdata *conn, const char *hostname,
* Curl_ipvalid() checks what CURL_IPRESOLVE_* requirements that might've
* been set and returns TRUE if they are OK.
*/
-bool Curl_ipvalid(struct SessionHandle *data);
+bool Curl_ipvalid(struct connectdata *conn);
/*
* Curl_getaddrinfo() is the generic low-level name resolve API within this
diff --git a/lib/hostip4.c b/lib/hostip4.c
index 05dd73e0..6dc52576 100644
--- a/lib/hostip4.c
+++ b/lib/hostip4.c
@@ -77,9 +77,9 @@
* Curl_ipvalid() checks what CURL_IPRESOLVE_* requirements that might've
* been set and returns TRUE if they are OK.
*/
-bool Curl_ipvalid(struct SessionHandle *data)
+bool Curl_ipvalid(struct connectdata *conn)
{
- if(data->set.ip_version == CURL_IPRESOLVE_V6)
+ if(conn->ip_version == CURL_IPRESOLVE_V6)
/* an ipv6 address was requested and we can't get/use one */
return FALSE;
diff --git a/lib/hostip6.c b/lib/hostip6.c
index 7d0a9122..ca028079 100644
--- a/lib/hostip6.c
+++ b/lib/hostip6.c
@@ -112,9 +112,9 @@ int curl_dogetnameinfo(GETNAMEINFO_QUAL_ARG1 GETNAMEINFO_TYPE_ARG1 sa,
* Curl_ipvalid() checks what CURL_IPRESOLVE_* requirements that might've
* been set and returns TRUE if they are OK.
*/
-bool Curl_ipvalid(struct SessionHandle *data)
+bool Curl_ipvalid(struct connectdata *conn)
{
- if(data->set.ip_version == CURL_IPRESOLVE_V6) {
+ if(conn->ip_version == CURL_IPRESOLVE_V6) {
/* see if we have an IPv6 stack */
curl_socket_t s = socket(PF_INET6, SOCK_DGRAM, 0);
if(s == CURL_SOCKET_BAD)
@@ -174,7 +174,7 @@ Curl_addrinfo *Curl_getaddrinfo(struct connectdata *conn,
/*
* Check if a limited name resolve has been requested.
*/
- switch(data->set.ip_version) {
+ switch(conn->ip_version) {
case CURL_IPRESOLVE_V4:
pf = PF_INET;
break;
diff --git a/lib/hostthre.c b/lib/hostthre.c
index e8dfa540..d45a8993 100644
--- a/lib/hostthre.c
+++ b/lib/hostthre.c
@@ -518,7 +518,7 @@ Curl_addrinfo *Curl_getaddrinfo(struct connectdata *conn,
/*
* Check if a limited name resolve has been requested.
*/
- switch(data->set.ip_version) {
+ switch(conn->ip_version) {
case CURL_IPRESOLVE_V4:
pf = PF_INET;
break;
diff --git a/lib/http.c b/lib/http.c
index 413ef3d8..e35437f1 100644
--- a/lib/http.c
+++ b/lib/http.c
@@ -98,6 +98,7 @@
#include "rawstr.h"
#include "content_encoding.h"
#include "rtsp.h"
+#include "warnless.h"
#define _MPRINTF_REPLACE /* use our functions only */
#include <curl/mprintf.h>
@@ -2375,19 +2376,15 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
#endif /* CURL_DISABLE_PROXY */
if(HTTPREQ_POST_FORM == httpreq) {
- /* we must build the whole darned post sequence first, so that we have
- a size of the whole shebang before we start to send it */
- result = Curl_getFormData(&http->sendit, data->set.httppost,
- Curl_checkheaders(data, "Content-Type:"),
- &http->postsize);
- if(CURLE_OK != result) {
- /* Curl_getFormData() doesn't use failf() */
- failf(data, "failed creating formpost data");
- return result;
- }
+ /* we must build the whole post sequence first, so that we have a size of
+ the whole transfer before we start to send it */
+ result = Curl_getformdata(data, &http->sendit, data->set.httppost,
+ Curl_checkheaders(data, "Content-Type:"),
+ &http->postsize);
+ if(result)
+ return result;
}
-
http->p_accept = Curl_checkheaders(data, "Accept:")?NULL:"Accept: */*\r\n";
if(( (HTTPREQ_POST == httpreq) ||
@@ -2428,27 +2425,25 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
/* when seekerr == CURL_SEEKFUNC_CANTSEEK (can't seek to offset) */
else {
curl_off_t passed=0;
-
do {
- size_t readthisamountnow = (size_t)(data->state.resume_from -
- passed);
- size_t actuallyread;
-
- if(readthisamountnow > BUFSIZE)
- readthisamountnow = BUFSIZE;
+ size_t readthisamountnow =
+ (data->state.resume_from - passed > CURL_OFF_T_C(BUFSIZE)) ?
+ BUFSIZE : curlx_sotouz(data->state.resume_from - passed);
- actuallyread = data->set.fread_func(data->state.buffer, 1,
- (size_t)readthisamountnow,
- data->set.in);
+ size_t actuallyread =
+ data->set.fread_func(data->state.buffer, 1, readthisamountnow,
+ data->set.in);
passed += actuallyread;
- if(actuallyread != readthisamountnow) {
+ if((actuallyread == 0) || (actuallyread > readthisamountnow)) {
+ /* this checks for greater-than only to make sure that the
+ CURL_READFUNC_ABORT return code still aborts */
failf(data, "Could only read %" FORMAT_OFF_T
" bytes from the input",
passed);
return CURLE_READ_ERROR;
}
- } while(passed != data->state.resume_from); /* loop until done */
+ } while(passed < data->state.resume_from);
}
}
diff --git a/lib/http_chunks.c b/lib/http_chunks.c
index 0d41979a..56d8248f 100644
--- a/lib/http_chunks.c
+++ b/lib/http_chunks.c
@@ -342,7 +342,6 @@ CHUNKcode Curl_httpchunk_read(struct connectdata *conn,
return CHUNKE_OUT_OF_MEMORY;
conn->trailer = ptr;
}
- fprintf(stderr, "MOO: %c\n", *datap);
conn->trailer[conn->trlPos++]=*datap;
}
datap++;
diff --git a/lib/http_digest.c b/lib/http_digest.c
index be40fc7f..45d8aeba 100644
--- a/lib/http_digest.c
+++ b/lib/http_digest.c
@@ -158,7 +158,7 @@ CURLdigest Curl_input_digest(struct connectdata *conn,
/* clear off any former leftovers and init to defaults */
Curl_digest_cleanup_one(d);
- while(1) {
+ for(;;) {
char value[MAX_VALUE_LENGTH];
char content[MAX_CONTENT_LENGTH];
diff --git a/lib/imap.c b/lib/imap.c
index cdadd171..9c39625b 100644
--- a/lib/imap.c
+++ b/lib/imap.c
@@ -100,7 +100,7 @@ static CURLcode imap_do(struct connectdata *conn, bool *done);
static CURLcode imap_done(struct connectdata *conn,
CURLcode, bool premature);
static CURLcode imap_connect(struct connectdata *conn, bool *done);
-static CURLcode imap_disconnect(struct connectdata *conn);
+static CURLcode imap_disconnect(struct connectdata *conn, bool dead_connection);
static CURLcode imap_multi_statemach(struct connectdata *conn, bool *done);
static int imap_getsock(struct connectdata *conn,
curl_socket_t *socks,
@@ -877,13 +877,13 @@ static CURLcode imap_logout(struct connectdata *conn)
* Disconnect from an IMAP server. Cleanup protocol-specific per-connection
* resources. BLOCKING.
*/
-static CURLcode imap_disconnect(struct connectdata *conn)
+static CURLcode imap_disconnect(struct connectdata *conn, bool dead_connection)
{
struct imap_conn *imapc= &conn->proto.imapc;
/* The IMAP session may or may not have been allocated/setup at this
point! */
- if (imapc->pp.conn)
+ if(!dead_connection && imapc->pp.conn)
(void)imap_logout(conn); /* ignore errors on the LOGOUT */
Curl_pp_disconnect(&imapc->pp);
diff --git a/lib/inet_pton.c b/lib/inet_pton.c
index db4f3930..967e30fb 100644
--- a/lib/inet_pton.c
+++ b/lib/inet_pton.c
@@ -218,14 +218,14 @@ inet_pton6(const char *src, unsigned char *dst)
* Since some memmove()'s erroneously fail to handle
* overlapping regions, we'll do the shift by hand.
*/
- const size_t n = tp - colonp;
- size_t i;
+ const ssize_t n = tp - colonp;
+ ssize_t i;
if(tp == endp)
return (0);
for (i = 1; i <= n; i++) {
- endp[- i] = colonp[n - i];
- colonp[n - i] = 0;
+ *(endp - i) = *(colonp + n - i);
+ *(colonp + n - i) = 0;
}
tp = endp;
}
diff --git a/lib/krb4.c b/lib/krb4.c
index 2b59fec8..2895ceda 100644
--- a/lib/krb4.c
+++ b/lib/krb4.c
@@ -7,7 +7,7 @@
*
* Copyright (c) 1995, 1996, 1997, 1998, 1999 Kungliga Tekniska Högskolan
* (Royal Institute of Technology, Stockholm, Sweden).
- * Copyright (c) 2004 - 2009 Daniel Stenberg
+ * Copyright (c) 2004 - 2010 Daniel Stenberg
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -106,7 +106,7 @@ static int
krb4_check_prot(void *app_data, int level)
{
app_data = NULL; /* prevent compiler warning */
- if(level == prot_confidential)
+ if(level == PROT_CONFIDENTIAL)
return -1;
return 0;
}
@@ -119,7 +119,7 @@ krb4_decode(void *app_data, void *buf, int len, int level,
int e;
struct krb4_data *d = app_data;
- if(level == prot_safe)
+ if(level == PROT_SAFE)
e = krb_rd_safe(buf, len, &d->key,
(struct sockaddr_in *)REMOTE_ADDR,
(struct sockaddr_in *)LOCAL_ADDR, &m);
@@ -154,14 +154,14 @@ krb4_encode(void *app_data, const void *from, int length, int level, void **to,
*to = malloc(length + 31);
if(!*to)
return -1;
- if(level == prot_safe)
+ if(level == PROT_SAFE)
/* NOTE that the void* cast is safe, krb_mk_safe/priv don't modify the
* input buffer
*/
return krb_mk_safe((void*)from, *to, length, &d->key,
(struct sockaddr_in *)LOCAL_ADDR,
(struct sockaddr_in *)REMOTE_ADDR);
- else if(level == prot_private)
+ else if(level == PROT_PRIVATE)
return krb_mk_priv((void*)from, *to, length, d->schedule, &d->key,
(struct sockaddr_in *)LOCAL_ADDR,
(struct sockaddr_in *)REMOTE_ADDR);
@@ -315,6 +315,15 @@ struct Curl_sec_client_mech Curl_krb4_client_mech = {
krb4_decode
};
+static enum protection_level
+krb4_set_command_prot(struct connectdata *conn, enum protection_level level)
+{
+ enum protection_level old = conn->command_prot;
+ DEBUGASSERT(level > PROT_NONE && level < PROT_LAST);
+ conn->command_prot = level;
+ return old;
+}
+
CURLcode Curl_krb_kauth(struct connectdata *conn)
{
des_cblock key;
@@ -325,11 +334,11 @@ CURLcode Curl_krb_kauth(struct connectdata *conn)
char passwd[100];
size_t tmp;
ssize_t nread;
- int save;
+ enum protection_level save;
CURLcode result;
unsigned char *ptr;
- save = Curl_set_command_prot(conn, prot_private);
+ save = krb4_set_command_prot(conn, PROT_PRIVATE);
result = Curl_ftpsendf(conn, "SITE KAUTH %s", conn->user);
@@ -341,14 +350,14 @@ CURLcode Curl_krb_kauth(struct connectdata *conn)
return result;
if(conn->data->state.buffer[0] != '3'){
- Curl_set_command_prot(conn, save);
+ krb4_set_command_prot(conn, save);
return CURLE_FTP_WEIRD_SERVER_REPLY;
}
p = strstr(conn->data->state.buffer, "T=");
if(!p) {
Curl_failf(conn->data, "Bad reply from server");
- Curl_set_command_prot(conn, save);
+ krb4_set_command_prot(conn, save);
return CURLE_FTP_WEIRD_SERVER_REPLY;
}
@@ -360,7 +369,7 @@ CURLcode Curl_krb_kauth(struct connectdata *conn)
}
if(!tmp || !ptr) {
Curl_failf(conn->data, "Failed to decode base64 in reply");
- Curl_set_command_prot(conn, save);
+ krb4_set_command_prot(conn, save);
return CURLE_FTP_WEIRD_SERVER_REPLY;
}
memcpy((char *)tkt.dat, ptr, tmp);
@@ -371,7 +380,7 @@ CURLcode Curl_krb_kauth(struct connectdata *conn)
p = strstr(conn->data->state.buffer, "P=");
if(!p) {
Curl_failf(conn->data, "Bad reply from server");
- Curl_set_command_prot(conn, save);
+ krb4_set_command_prot(conn, save);
return CURLE_FTP_WEIRD_SERVER_REPLY;
}
name = p + 2;
@@ -400,7 +409,7 @@ CURLcode Curl_krb_kauth(struct connectdata *conn)
if(Curl_base64_encode(conn->data, (char *)tktcopy.dat, tktcopy.length, &p)
< 1) {
failf(conn->data, "Out of memory base64-encoding.");
- Curl_set_command_prot(conn, save);
+ krb4_set_command_prot(conn, save);
return CURLE_OUT_OF_MEMORY;
}
memset (tktcopy.dat, 0, tktcopy.length);
@@ -413,7 +422,7 @@ CURLcode Curl_krb_kauth(struct connectdata *conn)
result = Curl_GetFTPResponse(&nread, conn, NULL);
if(result)
return result;
- Curl_set_command_prot(conn, save);
+ krb4_set_command_prot(conn, save);
return CURLE_OK;
}
diff --git a/lib/krb4.h b/lib/krb4.h
index 5da1dc6e..b3b5ea76 100644
--- a/lib/krb4.h
+++ b/lib/krb4.h
@@ -47,24 +47,9 @@ extern struct Curl_sec_client_mech Curl_krb5_client_mech;
#endif
CURLcode Curl_krb_kauth(struct connectdata *conn);
-int Curl_sec_fprintf (struct connectdata *, FILE *, const char *, ...);
-int Curl_sec_getc (struct connectdata *conn, FILE *);
-int Curl_sec_putc (struct connectdata *conn, int, FILE *);
-int Curl_sec_read_msg (struct connectdata *conn, char *, int);
-
-int Curl_sec_vfprintf(struct connectdata *, FILE *, const char *, va_list);
-int Curl_sec_fprintf2(struct connectdata *conn, FILE *f, const char *fmt, ...);
-int Curl_sec_vfprintf2(struct connectdata *conn, FILE *, const char *, va_list);
-
+int Curl_sec_read_msg (struct connectdata *conn, char *, enum protection_level);
void Curl_sec_end (struct connectdata *);
CURLcode Curl_sec_login (struct connectdata *);
-void Curl_sec_prot (int, char **);
int Curl_sec_request_prot (struct connectdata *conn, const char *level);
-int Curl_sec_set_protection_level(struct connectdata *conn);
-void Curl_sec_status (void);
-
-enum protection_level Curl_set_command_prot(struct connectdata *,
- enum protection_level);
-
#endif
diff --git a/lib/krb5.c b/lib/krb5.c
index 2530395d..cedab165 100644
--- a/lib/krb5.c
+++ b/lib/krb5.c
@@ -88,7 +88,7 @@ static int
krb5_check_prot(void *app_data, int level)
{
(void)app_data; /* unused */
- if(level == prot_confidential)
+ if(level == PROT_CONFIDENTIAL)
return -1;
return 0;
}
@@ -150,7 +150,7 @@ krb5_encode(void *app_data, const void *from, int length, int level, void **to,
dec.value = (void*)from;
dec.length = length;
maj = gss_seal(&min, *context,
- level == prot_private,
+ level == PROT_PRIVATE,
GSS_C_QOP_DEFAULT,
&dec, &state, &enc);
@@ -259,8 +259,8 @@ krb5_auth(void *app_data, struct connectdata *conn)
gssresp = NULL;
}
- if(maj != GSS_S_COMPLETE && maj != GSS_S_CONTINUE_NEEDED) {
- Curl_infof(data, "Error creating security context");
+ if(GSS_ERROR(maj)) {
+ Curl_infof(data, "Error creating security context\n");
ret = AUTH_ERROR;
break;
}
@@ -268,7 +268,7 @@ krb5_auth(void *app_data, struct connectdata *conn)
if(output_buffer.length != 0) {
if(Curl_base64_encode(data, (char *)output_buffer.value,
output_buffer.length, &p) < 1) {
- Curl_infof(data, "Out of memory base64-encoding");
+ Curl_infof(data, "Out of memory base64-encoding\n");
ret = AUTH_CONTINUE;
break;
}
@@ -299,7 +299,7 @@ krb5_auth(void *app_data, struct connectdata *conn)
_gssresp.length = Curl_base64_decode(p + 5, (unsigned char **)
&_gssresp.value);
if(_gssresp.length < 1) {
- Curl_failf(data, "Out of memory base64-encoding");
+ Curl_failf(data, "Out of memory base64-encoding\n");
ret = AUTH_CONTINUE;
break;
}
diff --git a/lib/ldap.c b/lib/ldap.c
index d6556c90..529e4521 100644
--- a/lib/ldap.c
+++ b/lib/ldap.c
@@ -473,7 +473,7 @@ static void _ldap_trace (const char *fmt, ...)
if(do_trace == -1) {
const char *env = getenv("CURL_TRACE");
- do_trace = (env && atoi(env) > 0);
+ do_trace = (env && strtol(env, NULL, 10) > 0);
}
if(!do_trace)
return;
diff --git a/lib/libcurl.plist b/lib/libcurl.plist
index 0ea606f6..7c3c3555 100644
--- a/lib/libcurl.plist
+++ b/lib/libcurl.plist
@@ -15,7 +15,7 @@
<string>com.libcurl.libcurl</string>
<key>CFBundleVersion</key>
- <string>7.21.2</string>
+ <string>7.21.3</string>
<key>CFBundleName</key>
<string>libcurl</string>
@@ -27,9 +27,9 @@
<string>????</string>
<key>CFBundleShortVersionString</key>
- <string>libcurl 7.21.2</string>
+ <string>libcurl 7.21.3</string>
<key>CFBundleGetInfoString</key>
- <string>libcurl.plist 7.21.2</string>
+ <string>libcurl.plist 7.21.3</string>
</dict>
</plist> \ No newline at end of file
diff --git a/lib/makefile.dj b/lib/makefile.dj
index 90faf337..d9f159d3 100644
--- a/lib/makefile.dj
+++ b/lib/makefile.dj
@@ -21,7 +21,7 @@ all: $(OBJ_DIR) curl_config.h $(CURL_LIB)
$(CURL_LIB): $(OBJECTS)
ar rs $@ $?
-curl_config.h: config.dos
+curl_config.h: config-dos.h
$(COPY) $^ $@
# clean generated files
diff --git a/lib/multi.c b/lib/multi.c
index 875e136e..ff4bf861 100644
--- a/lib/multi.c
+++ b/lib/multi.c
@@ -41,6 +41,7 @@
#include "sendf.h"
#include "timeval.h"
#include "http.h"
+#include "warnless.h"
#define _MPRINTF_REPLACE /* use our functions only */
#include <curl/mprintf.h>
@@ -67,24 +68,25 @@ struct Curl_message {
well!
*/
typedef enum {
- CURLM_STATE_INIT, /* start in this state */
- CURLM_STATE_CONNECT, /* resolve/connect has been sent off */
- CURLM_STATE_WAITRESOLVE, /* awaiting the resolve to finalize */
- CURLM_STATE_WAITCONNECT, /* awaiting the connect to finalize */
- CURLM_STATE_WAITPROXYCONNECT, /* awaiting proxy CONNECT to finalize */
- CURLM_STATE_PROTOCONNECT, /* completing the protocol-specific connect phase */
- CURLM_STATE_WAITDO, /* wait for our turn to send the request */
- CURLM_STATE_DO, /* start send off the request (part 1) */
- CURLM_STATE_DOING, /* sending off the request (part 1) */
- CURLM_STATE_DO_MORE, /* send off the request (part 2) */
- CURLM_STATE_DO_DONE, /* done sending off request */
- CURLM_STATE_WAITPERFORM, /* wait for our turn to read the response */
- CURLM_STATE_PERFORM, /* transfer data */
- CURLM_STATE_TOOFAST, /* wait because limit-rate exceeded */
- CURLM_STATE_DONE, /* post data transfer operation */
- CURLM_STATE_COMPLETED, /* operation complete */
- CURLM_STATE_MSGSENT, /* the operation complete message is sent */
- CURLM_STATE_LAST /* not a true state, never use this */
+ CURLM_STATE_INIT, /* 0 - start in this state */
+ CURLM_STATE_CONNECT, /* 1 - resolve/connect has been sent off */
+ CURLM_STATE_WAITRESOLVE, /* 2 - awaiting the resolve to finalize */
+ CURLM_STATE_WAITCONNECT, /* 3 - awaiting the connect to finalize */
+ CURLM_STATE_WAITPROXYCONNECT, /* 4 - awaiting proxy CONNECT to finalize */
+ CURLM_STATE_PROTOCONNECT, /* 5 - completing the protocol-specific connect
+ phase */
+ CURLM_STATE_WAITDO, /* 6 - wait for our turn to send the request */
+ CURLM_STATE_DO, /* 7 - start send off the request (part 1) */
+ CURLM_STATE_DOING, /* 8 - sending off the request (part 1) */
+ CURLM_STATE_DO_MORE, /* 9 - send off the request (part 2) */
+ CURLM_STATE_DO_DONE, /* 10 - done sending off request */
+ CURLM_STATE_WAITPERFORM, /* 11 - wait for our turn to read the response */
+ CURLM_STATE_PERFORM, /* 12 - transfer data */
+ CURLM_STATE_TOOFAST, /* 13 - wait because limit-rate exceeded */
+ CURLM_STATE_DONE, /* 14 - post data transfer operation */
+ CURLM_STATE_COMPLETED, /* 15 - operation complete */
+ CURLM_STATE_MSGSENT, /* 16 - the operation complete message is sent */
+ CURLM_STATE_LAST /* 17 - not a true state, never use this */
} CURLMstate;
/* we support N sockets per easy handle. Set the corresponding bit to what
@@ -976,12 +978,15 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
/* Make sure we set the connection's current owner */
easy->easy_conn->data = data;
- if(easy->easy_conn && (easy->state >= CURLM_STATE_CONNECT)) {
- /* we need to wait for the connect state as only then is the
- start time stored */
+ if(easy->easy_conn &&
+ (easy->state >= CURLM_STATE_CONNECT) &&
+ (easy->state < CURLM_STATE_COMPLETED)) {
+ /* we need to wait for the connect state as only then is the start time
+ stored, but we must not check already completed handles */
timeout_ms = Curl_timeleft(easy->easy_conn, &now,
- easy->state <= CURLM_STATE_WAITDO);
+ (easy->state <= CURLM_STATE_WAITDO)?
+ TRUE:FALSE);
if(timeout_ms < 0) {
/* Handle timed out */
@@ -1632,7 +1637,8 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
}
if(disconnect_conn) {
- Curl_disconnect(easy->easy_conn); /* disconnect properly */
+ /* disconnect properly */
+ Curl_disconnect(easy->easy_conn, /* dead_connection */ FALSE);
/* This is where we make sure that the easy_conn pointer is reset.
We don't have to do this in every case block above where a
@@ -1757,7 +1763,7 @@ CURLMcode curl_multi_cleanup(CURLM *multi_handle)
for(i=0; i< multi->connc->num; i++) {
if(multi->connc->connects[i] &&
multi->connc->connects[i]->protocol & PROT_CLOSEACTION) {
- Curl_disconnect(multi->connc->connects[i]);
+ Curl_disconnect(multi->connc->connects[i], /* dead_connection */ FALSE);
multi->connc->connects[i] = NULL;
}
}
@@ -1836,7 +1842,7 @@ CURLMsg *curl_multi_info_read(CURLM *multi_handle, int *msgs_in_queue)
/* remove the extracted entry */
Curl_llist_remove(multi->msglist, e, NULL);
- *msgs_in_queue = (int)Curl_llist_count(multi->msglist);
+ *msgs_in_queue = curlx_uztosi(Curl_llist_count(multi->msglist));
return &msg->extmsg;
}
@@ -2139,7 +2145,7 @@ static CURLMcode multi_socket(struct Curl_multi *multi,
now.tv_usec += 40000; /* compensate for bad precision timers that might've
triggered too early */
- if(now.tv_usec > 1000000) {
+ if(now.tv_usec >= 1000000) {
now.tv_sec++;
now.tv_usec -= 1000000;
}
@@ -2566,15 +2572,12 @@ void Curl_expire(struct SessionHandle *data, long milli)
}
else {
struct timeval set;
- int rest;
set = Curl_tvnow();
set.tv_sec += milli/1000;
set.tv_usec += (milli%1000)*1000;
- rest = (int)(set.tv_usec - 1000000);
- if(rest > 0) {
- /* bigger than a full microsec */
+ if(set.tv_usec >= 1000000) {
set.tv_sec++;
set.tv_usec -= 1000000;
}
@@ -2666,7 +2669,7 @@ static void multi_connc_remove_handle(struct Curl_multi *multi,
data->state.shared_conn = multi;
else {
/* out of memory - so much for graceful shutdown */
- Curl_disconnect(conn);
+ Curl_disconnect(conn, /* dead_connection */ FALSE);
multi->connc->connects[i] = NULL;
}
}
diff --git a/lib/openldap.c b/lib/openldap.c
index 4d5db4a5..7010da6c 100644
--- a/lib/openldap.c
+++ b/lib/openldap.c
@@ -61,7 +61,7 @@ static CURLcode ldap_do(struct connectdata *conn, bool *done);
static CURLcode ldap_done(struct connectdata *conn, CURLcode, bool);
static CURLcode ldap_connect(struct connectdata *conn, bool *done);
static CURLcode ldap_connecting(struct connectdata *conn, bool *done);
-static CURLcode ldap_disconnect(struct connectdata *conn);
+static CURLcode ldap_disconnect(struct connectdata *conn, bool dead_connection);
static Curl_recv ldap_recv;
@@ -188,7 +188,7 @@ static CURLcode ldap_connect(struct connectdata *conn, bool *done)
if (conn->protocol & PROT_SSL)
*ptr++ = 's';
snprintf(ptr, sizeof(hosturl)-(ptr-hosturl), "://%s:%d",
- conn->host.name, conn->port);
+ conn->host.name, conn->remote_port);
rc = ldap_init_fd(conn->sock[FIRSTSOCKET], li->proto, hosturl, &li->ld);
if (rc) {
@@ -344,9 +344,10 @@ retry:
return CURLE_OK;
}
-static CURLcode ldap_disconnect(struct connectdata *conn)
+static CURLcode ldap_disconnect(struct connectdata *conn, bool dead_connection)
{
ldapconninfo *li = conn->proto.generic;
+ (void) dead_connection;
if (li) {
if (li->ld) {
@@ -499,6 +500,8 @@ static ssize_t ldap_recv(struct connectdata *conn, int sockindex, char *buf,
if (bv.bv_len > 7 && !strncmp(bv.bv_val + bv.bv_len - 7, ";binary", 7))
binary = 1;
+ else
+ binary = 0;
for (i=0; bvals[i].bv_val != NULL; i++) {
int binval = 0;
@@ -509,14 +512,14 @@ static ssize_t ldap_recv(struct connectdata *conn, int sockindex, char *buf,
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])) {
+ if (ISSPACE(bvals[i].bv_val[0]) ||
+ ISSPACE(bvals[i].bv_val[bvals[i].bv_len-1])) {
binval = 1;
} else {
/* check for unprintable characters */
unsigned int j;
for (j=0; j<bvals[i].bv_len; j++)
- if (!isprint(bvals[i].bv_val[j])) {
+ if (!ISPRINT(bvals[i].bv_val[j])) {
binval = 1;
break;
}
diff --git a/lib/parsedate.c b/lib/parsedate.c
index 5d8af269..3e003db3 100644
--- a/lib/parsedate.c
+++ b/lib/parsedate.c
@@ -83,6 +83,7 @@
#include <curl/curl.h>
#include "rawstr.h"
+#include "warnless.h"
#include "parsedate.h"
const char * const Curl_wkday[] =
@@ -378,7 +379,7 @@ int Curl_parsedate(const char *date, time_t *output)
secnum = 0;
}
else {
- val = (int)strtol(date, &end, 10);
+ val = curlx_sltosi(strtol(date, &end, 10));
if((tzoff == -1) &&
((end - date) == 4) &&
diff --git a/lib/pingpong.c b/lib/pingpong.c
index 876a6a21..81f804f8 100644
--- a/lib/pingpong.c
+++ b/lib/pingpong.c
@@ -217,11 +217,12 @@ CURLcode Curl_pp_vsendf(struct pingpong *pp,
#endif /* CURL_DOES_CONVERSIONS */
#if defined(HAVE_KRB4) || defined(HAVE_GSSAPI)
- conn->data_prot = prot_cmd;
+ conn->data_prot = PROT_CMD;
#endif
res = Curl_write(conn, conn->sock[FIRSTSOCKET], sptr, write_len,
&bytes_written);
#if defined(HAVE_KRB4) || defined(HAVE_GSSAPI)
+ DEBUGASSERT(data_sec > PROT_NONE && data_sec < PROT_LAST);
conn->data_prot = data_sec;
#endif
@@ -331,13 +332,13 @@ CURLcode Curl_pp_readresp(curl_socket_t sockfd,
int res;
#if defined(HAVE_KRB4) || defined(HAVE_GSSAPI)
enum protection_level prot = conn->data_prot;
-
- conn->data_prot = 0;
+ conn->data_prot = PROT_CLEAR;
#endif
DEBUGASSERT((ptr+BUFSIZE-pp->nread_resp) <= (buf+BUFSIZE+1));
res = Curl_read(conn, sockfd, ptr, BUFSIZE-pp->nread_resp,
&gotbytes);
#if defined(HAVE_KRB4) || defined(HAVE_GSSAPI)
+ DEBUGASSERT(prot > PROT_NONE && prot < PROT_LAST);
conn->data_prot = prot;
#endif
if(res == CURLE_AGAIN)
@@ -362,7 +363,7 @@ CURLcode Curl_pp_readresp(curl_socket_t sockfd,
else if(gotbytes <= 0) {
keepon = FALSE;
result = CURLE_RECV_ERROR;
- failf(data, "FTP response reading failed");
+ failf(data, "response reading failed");
}
else {
/* we got a whole chunk of data, which can be anything from one
diff --git a/lib/polarssl.c b/lib/polarssl.c
index e81e6609..bed76354 100644
--- a/lib/polarssl.c
+++ b/lib/polarssl.c
@@ -221,7 +221,7 @@ Curl_polarssl_connect(struct connectdata *conn,
ssl_set_dbg(&conn->ssl[sockindex].ssl, polarssl_debug, data);
#endif
- do {
+ for(;;) {
if (!(ret = ssl_handshake(&conn->ssl[sockindex].ssl))) {
break;
} else if(ret != POLARSSL_ERR_NET_TRY_AGAIN) {
@@ -250,7 +250,7 @@ Curl_polarssl_connect(struct connectdata *conn,
break;
}
}
- } while (1);
+ }
infof(data, "PolarSSL: Handshake complete, cipher is %s\n",
ssl_get_cipher(&conn->ssl[sockindex].ssl));
diff --git a/lib/pop3.c b/lib/pop3.c
index 9609b624..9f674436 100644
--- a/lib/pop3.c
+++ b/lib/pop3.c
@@ -101,7 +101,7 @@ static CURLcode pop3_do(struct connectdata *conn, bool *done);
static CURLcode pop3_done(struct connectdata *conn,
CURLcode, bool premature);
static CURLcode pop3_connect(struct connectdata *conn, bool *done);
-static CURLcode pop3_disconnect(struct connectdata *conn);
+static CURLcode pop3_disconnect(struct connectdata *conn, bool dead_connection);
static CURLcode pop3_multi_statemach(struct connectdata *conn, bool *done);
static int pop3_getsock(struct connectdata *conn,
curl_socket_t *socks,
@@ -817,7 +817,7 @@ static CURLcode pop3_quit(struct connectdata *conn)
* Disconnect from an POP3 server. Cleanup protocol-specific per-connection
* resources. BLOCKING.
*/
-static CURLcode pop3_disconnect(struct connectdata *conn)
+static CURLcode pop3_disconnect(struct connectdata *conn, bool dead_connection)
{
struct pop3_conn *pop3c= &conn->proto.pop3c;
@@ -828,7 +828,7 @@ static CURLcode pop3_disconnect(struct connectdata *conn)
/* The POP3 session may or may not have been allocated/setup at this
point! */
- if(pop3c->pp.conn)
+ if(!dead_connection && pop3c->pp.conn)
(void)pop3_quit(conn); /* ignore errors on the LOGOUT */
diff --git a/lib/rtsp.c b/lib/rtsp.c
index 1254c738..066e10fe 100644
--- a/lib/rtsp.c
+++ b/lib/rtsp.c
@@ -117,7 +117,9 @@ CURLcode Curl_rtsp_connect(struct connectdata *conn, bool *done)
return httpStatus;
}
-CURLcode Curl_rtsp_disconnect(struct connectdata *conn) {
+CURLcode Curl_rtsp_disconnect(struct connectdata *conn, bool dead_connection)
+{
+ (void) dead_connection;
Curl_safefree(conn->proto.rtspc.rtp_buf);
return CURLE_OK;
}
diff --git a/lib/rtsp.h b/lib/rtsp.h
index c3f8bd74..82e07068 100644
--- a/lib/rtsp.h
+++ b/lib/rtsp.h
@@ -43,7 +43,7 @@ CURLcode Curl_rtsp_rtp_readwrite(struct SessionHandle *data,
CURLcode Curl_rtsp(struct connectdata *conn, bool *done);
CURLcode Curl_rtsp_done(struct connectdata *conn, CURLcode, bool premature);
CURLcode Curl_rtsp_connect(struct connectdata *conn, bool *done);
-CURLcode Curl_rtsp_disconnect(struct connectdata *conn);
+CURLcode Curl_rtsp_disconnect(struct connectdata *conn, bool dead_connection);
CURLcode Curl_rtsp_parseheader(struct connectdata *conn, char *header);
diff --git a/lib/security.c b/lib/security.c
index 73a55401..1aa28068 100644
--- a/lib/security.c
+++ b/lib/security.c
@@ -72,10 +72,10 @@ static const struct {
enum protection_level level;
const char *name;
} level_names[] = {
- { prot_clear, "clear" },
- { prot_safe, "safe" },
- { prot_confidential, "confidential" },
- { prot_private, "private" }
+ { PROT_CLEAR, "clear" },
+ { PROT_SAFE, "safe" },
+ { PROT_CONFIDENTIAL, "confidential" },
+ { PROT_PRIVATE, "private" }
};
static enum protection_level
@@ -85,22 +85,22 @@ name_to_level(const char *name)
for(i = 0; i < (int)sizeof(level_names)/(int)sizeof(level_names[0]); i++)
if(checkprefix(name, level_names[i].name))
return level_names[i].level;
- return (enum protection_level)-1;
+ return PROT_NONE;
}
/* Convert a protocol |level| to its char representation.
We take an int to catch programming mistakes. */
static char level_to_char(int level) {
switch(level) {
- case prot_clear:
+ case PROT_CLEAR:
return 'C';
- case prot_safe:
+ case PROT_SAFE:
return 'S';
- case prot_confidential:
+ case PROT_CONFIDENTIAL:
return 'E';
- case prot_private:
+ case PROT_PRIVATE:
return 'P';
- case prot_cmd:
+ case PROT_CMD:
/* Fall through */
default:
/* Those 2 cases should not be reached! */
@@ -247,7 +247,7 @@ static ssize_t sec_recv(struct connectdata *conn, int sockindex,
*err = CURLE_OK;
/* Handle clear text response. */
- if(conn->sec_complete == 0 || conn->data_prot == prot_clear)
+ if(conn->sec_complete == 0 || conn->data_prot == PROT_CLEAR)
return read(fd, buffer, len);
if(conn->in_buffer.eof_flag) {
@@ -288,11 +288,13 @@ static void do_sec_send(struct connectdata *conn, curl_socket_t fd,
char *buffer;
char *cmd_buffer;
enum protection_level prot_level = conn->data_prot;
- bool iscmd = prot_level == prot_cmd;
+ bool iscmd = prot_level == PROT_CMD;
+
+ DEBUGASSERT(prot_level > PROT_NONE && prot_level < PROT_LAST);
if(iscmd) {
if(!strncmp(from, "PASS ", 5) || !strncmp(from, "ACCT ", 5))
- prot_level = prot_private;
+ prot_level = PROT_PRIVATE;
else
prot_level = conn->command_prot;
}
@@ -303,14 +305,14 @@ static void do_sec_send(struct connectdata *conn, curl_socket_t fd,
if(bytes > 0) {
static const char *enc = "ENC ";
static const char *mic = "MIC ";
- if(prot_level == prot_private)
+ if(prot_level == PROT_PRIVATE)
socket_write(conn, fd, enc, 4);
else
socket_write(conn, fd, mic, 4);
socket_write(conn, fd, cmd_buffer, bytes);
socket_write(conn, fd, "\r\n", 2);
- infof(conn->data, "Send: %s%s\n", prot_level == prot_private?enc:mic,
+ infof(conn->data, "Send: %s%s\n", prot_level == PROT_PRIVATE?enc:mic,
cmd_buffer);
free(cmd_buffer);
}
@@ -355,8 +357,8 @@ static ssize_t sec_send(struct connectdata *conn, int sockindex,
return sec_write(conn, fd, buffer, len);
}
-/* FIXME: |level| should not be an int but a struct protection_level */
-int Curl_sec_read_msg(struct connectdata *conn, char *buffer, int level)
+int Curl_sec_read_msg(struct connectdata *conn, char *buffer,
+ enum protection_level level)
{
/* decoded_len should be size_t or ssize_t but conn->mech->decode returns an
int */
@@ -364,6 +366,8 @@ int Curl_sec_read_msg(struct connectdata *conn, char *buffer, int level)
char *buf;
int ret_code;
+ DEBUGASSERT(level > PROT_NONE && level < PROT_LAST);
+
decoded_len = Curl_base64_decode(buffer + 4, (unsigned char **)&buf);
if(decoded_len <= 0) {
free(buf);
@@ -399,22 +403,16 @@ int Curl_sec_read_msg(struct connectdata *conn, char *buffer, int level)
return ret_code;
}
-enum protection_level
-Curl_set_command_prot(struct connectdata *conn, enum protection_level level)
-{
- enum protection_level old = conn->command_prot;
- conn->command_prot = level;
- return old;
-}
-
/* FIXME: The error code returned here is never checked. */
-int Curl_sec_set_protection_level(struct connectdata *conn)
+static int sec_set_protection_level(struct connectdata *conn)
{
int code;
char* pbsz;
static unsigned int buffer_size = 1 << 20; /* 1048576 */
enum protection_level level = conn->request_data_prot;
+ DEBUGASSERT(level > PROT_NONE && level < PROT_LAST);
+
if(!conn->sec_complete) {
infof(conn->data, "Trying to change the protection level after the"
"completion of the data exchange.\n");
@@ -457,7 +455,7 @@ int Curl_sec_set_protection_level(struct connectdata *conn)
}
conn->data_prot = level;
- if(level == prot_private)
+ if(level == PROT_PRIVATE)
conn->command_prot = level;
return 0;
@@ -466,10 +464,11 @@ int Curl_sec_set_protection_level(struct connectdata *conn)
int
Curl_sec_request_prot(struct connectdata *conn, const char *level)
{
- int l = name_to_level(level);
- if(l == -1)
+ enum protection_level l = name_to_level(level);
+ if(l == PROT_NONE)
return -1;
- conn->request_data_prot = (enum protection_level)l;
+ DEBUGASSERT(l > PROT_NONE && l < PROT_LAST);
+ conn->request_data_prot = l;
return 0;
}
@@ -498,7 +497,7 @@ static CURLcode choose_mech(struct connectdata *conn)
conn->app_data = tmp_allocation;
if((*mech)->init) {
- ret = (*mech)->init(conn);
+ ret = (*mech)->init(conn->app_data);
if(ret != 0) {
infof(data, "Failed initialization for %s. Skipping it.\n", mech_name);
continue;
@@ -548,10 +547,10 @@ static CURLcode choose_mech(struct connectdata *conn)
conn->send[FIRSTSOCKET] = sec_send;
conn->recv[SECONDARYSOCKET] = sec_recv;
conn->send[SECONDARYSOCKET] = sec_send;
- conn->command_prot = prot_safe;
+ conn->command_prot = PROT_SAFE;
/* Set the requested protection level */
/* BLOCKING */
- Curl_sec_set_protection_level(conn);
+ (void)sec_set_protection_level(conn);
break;
}
@@ -583,7 +582,7 @@ Curl_sec_end(struct connectdata *conn)
conn->in_buffer.eof_flag = 0;
}
conn->sec_complete = 0;
- conn->data_prot = (enum protection_level)0;
+ conn->data_prot = PROT_CLEAR;
conn->mech = NULL;
}
diff --git a/lib/sendf.c b/lib/sendf.c
index b73c2243..d04371f8 100644
--- a/lib/sendf.c
+++ b/lib/sendf.c
@@ -301,6 +301,7 @@ ssize_t Curl_send_plain(struct connectdata *conn, int num,
} else {
failf(conn->data, "Send failure: %s",
Curl_strerror(conn, err));
+ conn->data->state.os_errno = err;
*code = CURLE_SEND_ERROR;
}
}
@@ -355,6 +356,7 @@ ssize_t Curl_recv_plain(struct connectdata *conn, int num, char *buf,
} else {
failf(conn->data, "Recv failure: %s",
Curl_strerror(conn, err));
+ conn->data->state.os_errno = err;
*code = CURLE_RECV_ERROR;
}
}
diff --git a/lib/smtp.c b/lib/smtp.c
index 55e03d5a..82621a42 100644
--- a/lib/smtp.c
+++ b/lib/smtp.c
@@ -92,6 +92,7 @@
#include "curl_md5.h"
#include "curl_hmac.h"
#include "curl_gethostname.h"
+#include "warnless.h"
#define _MPRINTF_REPLACE /* use our functions only */
#include <curl/mprintf.h>
@@ -106,7 +107,7 @@ static CURLcode smtp_do(struct connectdata *conn, bool *done);
static CURLcode smtp_done(struct connectdata *conn,
CURLcode, bool premature);
static CURLcode smtp_connect(struct connectdata *conn, bool *done);
-static CURLcode smtp_disconnect(struct connectdata *conn);
+static CURLcode smtp_disconnect(struct connectdata *conn, bool dead_connection);
static CURLcode smtp_multi_statemach(struct connectdata *conn, bool *done);
static int smtp_getsock(struct connectdata *conn,
curl_socket_t *socks,
@@ -225,8 +226,8 @@ static int smtp_endofresp(struct pingpong *pp, int *resp)
if(len < 4 || !ISDIGIT(line[0]) || !ISDIGIT(line[1]) || !ISDIGIT(line[2]))
return FALSE; /* Nothing for us. */
- if((result = line[3] == ' '))
- *resp = atoi(line);
+ if((result = (line[3] == ' ')) != 0)
+ *resp = curlx_sltosi(strtol(line, NULL, 10));
line += 4;
len -= 4;
@@ -676,7 +677,8 @@ static CURLcode smtp_state_authcram_resp(struct connectdata *conn,
if(++l) {
chlg64[l] = '\0';
- if(!(chlglen = Curl_base64_decode(chlg64, &chlg)))
+ chlglen = Curl_base64_decode(chlg64, &chlg);
+ if(!chlglen)
return CURLE_OUT_OF_MEMORY;
}
}
@@ -1308,7 +1310,7 @@ static CURLcode smtp_quit(struct connectdata *conn)
* Disconnect from an SMTP server. Cleanup protocol-specific per-connection
* resources. BLOCKING.
*/
-static CURLcode smtp_disconnect(struct connectdata *conn)
+static CURLcode smtp_disconnect(struct connectdata *conn, bool dead_connection)
{
struct smtp_conn *smtpc= &conn->proto.smtpc;
@@ -1319,7 +1321,7 @@ static CURLcode smtp_disconnect(struct connectdata *conn)
/* The SMTP session may or may not have been allocated/setup at this
point! */
- if(smtpc->pp.conn)
+ if(!dead_connection && smtpc->pp.conn)
(void)smtp_quit(conn); /* ignore errors on the LOGOUT */
Curl_pp_disconnect(&smtpc->pp);
diff --git a/lib/ssh.c b/lib/ssh.c
index 314d8984..ffcb48b4 100644
--- a/lib/ssh.c
+++ b/lib/ssh.c
@@ -101,6 +101,7 @@
#include "strtoofft.h"
#include "multiif.h"
#include "select.h"
+#include "warnless.h"
#define _MPRINTF_REPLACE /* use our functions only */
#include <curl/mprintf.h>
@@ -116,9 +117,9 @@
/* Local functions: */
static const char *sftp_libssh2_strerror(unsigned long err);
-static LIBSSH2_ALLOC_FUNC(libssh2_malloc);
-static LIBSSH2_REALLOC_FUNC(libssh2_realloc);
-static LIBSSH2_FREE_FUNC(libssh2_free);
+static LIBSSH2_ALLOC_FUNC(my_libssh2_malloc);
+static LIBSSH2_REALLOC_FUNC(my_libssh2_realloc);
+static LIBSSH2_FREE_FUNC(my_libssh2_free);
static CURLcode get_pathname(const char **cpp, char **path);
@@ -134,13 +135,13 @@ static CURLcode scp_done(struct connectdata *conn,
CURLcode, bool premature);
static CURLcode scp_doing(struct connectdata *conn,
bool *dophase_done);
-static CURLcode scp_disconnect(struct connectdata *conn);
+static CURLcode scp_disconnect(struct connectdata *conn, bool dead_connection);
static CURLcode sftp_done(struct connectdata *conn,
CURLcode, bool premature);
static CURLcode sftp_doing(struct connectdata *conn,
bool *dophase_done);
-static CURLcode sftp_disconnect(struct connectdata *conn);
+static CURLcode sftp_disconnect(struct connectdata *conn, bool dead_connection);
static
CURLcode sftp_perform(struct connectdata *conn,
bool *connected,
@@ -301,19 +302,19 @@ static CURLcode libssh2_session_error_to_CURLE(int err)
return CURLE_SSH;
}
-static LIBSSH2_ALLOC_FUNC(libssh2_malloc)
+static LIBSSH2_ALLOC_FUNC(my_libssh2_malloc)
{
(void)abstract; /* arg not used */
return malloc(count);
}
-static LIBSSH2_REALLOC_FUNC(libssh2_realloc)
+static LIBSSH2_REALLOC_FUNC(my_libssh2_realloc)
{
(void)abstract; /* arg not used */
return realloc(ptr, count);
}
-static LIBSSH2_FREE_FUNC(libssh2_free)
+static LIBSSH2_FREE_FUNC(my_libssh2_free)
{
(void)abstract; /* arg not used */
free(ptr);
@@ -497,6 +498,13 @@ static int sshkeycallback(CURL *easy,
#endif
/*
+ * libssh2 1.2.8 fixed the problem with 32bit ints used for sockets on win64.
+ */
+#ifdef HAVE_LIBSSH2_SESSION_HANDSHAKE
+#define libssh2_session_startup(x,y) libssh2_session_handshake(x,y)
+#endif
+
+/*
* ssh_statemach_act() runs the SSH state machine as far as it can without
* blocking and without reaching the end. The data the pointer 'block' points
* to will be set to TRUE if the libssh2 function returns LIBSSH2_ERROR_EAGAIN
@@ -1431,7 +1439,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block)
if(data->state.resume_from != 0) {
LIBSSH2_SFTP_ATTRIBUTES attrs;
- if(data->state.resume_from< 0) {
+ if(data->state.resume_from < 0) {
rc = libssh2_sftp_stat_ex(sshc->sftp_session, sftp_scp->path,
(unsigned int)strlen(sftp_scp->path),
LIBSSH2_SFTP_STAT, &attrs);
@@ -1534,21 +1542,17 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block)
/* seekerr == CURL_SEEKFUNC_CANTSEEK (can't seek to offset) */
else {
curl_off_t passed=0;
- curl_off_t readthisamountnow;
- curl_off_t actuallyread;
do {
- readthisamountnow = (data->state.resume_from - passed);
-
- if(readthisamountnow > BUFSIZE)
- readthisamountnow = BUFSIZE;
+ size_t readthisamountnow =
+ (data->state.resume_from - passed > CURL_OFF_T_C(BUFSIZE)) ?
+ BUFSIZE : curlx_sotouz(data->state.resume_from - passed);
- actuallyread =
- (curl_off_t) conn->fread_func(data->state.buffer, 1,
- (size_t)readthisamountnow,
- conn->fread_in);
+ size_t actuallyread =
+ conn->fread_func(data->state.buffer, 1, readthisamountnow,
+ conn->fread_in);
passed += actuallyread;
- if((actuallyread <= 0) || (actuallyread > readthisamountnow)) {
+ if((actuallyread == 0) || (actuallyread > readthisamountnow)) {
/* this checks for greater-than only to make sure that the
CURL_READFUNC_ABORT return code still aborts */
failf(data, "Failed to read data");
@@ -1559,7 +1563,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block)
}
/* now, decrease the size of the read */
- if(data->set.infilesize>0) {
+ if(data->set.infilesize > 0) {
data->set.infilesize -= data->state.resume_from;
data->req.size = data->set.infilesize;
Curl_pgrsSetUploadSize(data, data->set.infilesize);
@@ -1567,7 +1571,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block)
SFTP_SEEK(sshc->sftp_handle, data->state.resume_from);
}
- if(data->set.infilesize>0) {
+ if(data->set.infilesize > 0) {
data->req.size = data->set.infilesize;
Curl_pgrsSetUploadSize(data, data->set.infilesize);
}
@@ -1928,7 +1932,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block)
char *ptr2;
from=curlx_strtoofft(conn->data->state.range, &ptr, 0);
- while(*ptr && (isspace((int)*ptr) || (*ptr=='-')))
+ while(*ptr && (ISSPACE(*ptr) || (*ptr=='-')))
ptr++;
to=curlx_strtoofft(ptr, &ptr2, 0);
if((ptr == ptr2) /* no "to" value given */
@@ -1962,7 +1966,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block)
/* We can resume if we can seek to the resume position */
if(data->state.resume_from) {
- if(data->state.resume_from< 0) {
+ if(data->state.resume_from < 0) {
/* We're supposed to download the last abs(from) bytes */
if((curl_off_t)attrs.filesize < -data->state.resume_from) {
failf(data, "Offset (%"
@@ -1971,7 +1975,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block)
return CURLE_BAD_DOWNLOAD_RESUME;
}
/* download from where? */
- data->state.resume_from = attrs.filesize - data->state.resume_from;
+ data->state.resume_from += attrs.filesize;
}
else {
if((curl_off_t)attrs.filesize < data->state.resume_from) {
@@ -2543,8 +2547,9 @@ static CURLcode ssh_connect(struct connectdata *conn, bool *done)
sock = conn->sock[FIRSTSOCKET];
#endif /* CURL_LIBSSH2_DEBUG */
- ssh->ssh_session = libssh2_session_init_ex(libssh2_malloc, libssh2_free,
- libssh2_realloc, conn);
+ ssh->ssh_session = libssh2_session_init_ex(my_libssh2_malloc,
+ my_libssh2_free,
+ my_libssh2_realloc, conn);
if(ssh->ssh_session == NULL) {
failf(data, "Failure initialising ssh session");
return CURLE_FAILED_INIT;
@@ -2684,10 +2689,11 @@ static CURLcode ssh_do(struct connectdata *conn, bool *done)
/* BLOCKING, but the function is using the state machine so the only reason
this is still blocking is that the multi interface code has no support for
disconnecting operations that takes a while */
-static CURLcode scp_disconnect(struct connectdata *conn)
+static CURLcode scp_disconnect(struct connectdata *conn, bool dead_connection)
{
CURLcode result = CURLE_OK;
struct ssh_conn *ssh = &conn->proto.sshc;
+ (void) dead_connection;
Curl_safefree(conn->data->state.proto.ssh);
conn->data->state.proto.ssh = NULL;
@@ -2848,9 +2854,10 @@ static CURLcode sftp_doing(struct connectdata *conn,
/* BLOCKING, but the function is using the state machine so the only reason
this is still blocking is that the multi interface code has no support for
disconnecting operations that takes a while */
-static CURLcode sftp_disconnect(struct connectdata *conn)
+static CURLcode sftp_disconnect(struct connectdata *conn, bool dead_connection)
{
CURLcode result = CURLE_OK;
+ (void) dead_connection;
DEBUGF(infof(conn->data, "SSH DISCONNECT starts now\n"));
diff --git a/lib/ssluse.c b/lib/ssluse.c
index 474bc9a3..d8f77601 100644
--- a/lib/ssluse.c
+++ b/lib/ssluse.c
@@ -1049,7 +1049,7 @@ static int asn1_output(const ASN1_UTCTIME *tm,
static int hostmatch(const char *hostname, const char *pattern)
{
- while(1) {
+ for(;;) {
char c = *pattern++;
if(c == '\0')
@@ -2371,6 +2371,12 @@ ossl_connect_common(struct connectdata *conn,
long timeout_ms;
int what;
+ /* check if the connection has already been established */
+ if(ssl_connection_complete == connssl->state) {
+ *done = TRUE;
+ return CURLE_OK;
+ }
+
if(ssl_connect_1==connssl->connecting_state) {
/* Find out how much more time we're allowed */
timeout_ms = Curl_timeleft(conn, NULL, TRUE);
diff --git a/lib/tftp.c b/lib/tftp.c
index 782bb736..fc741c94 100644
--- a/lib/tftp.c
+++ b/lib/tftp.c
@@ -166,7 +166,7 @@ typedef struct tftp_state_data {
static CURLcode tftp_rx(tftp_state_data_t *state, tftp_event_t event) ;
static CURLcode tftp_tx(tftp_state_data_t *state, tftp_event_t event) ;
static CURLcode tftp_connect(struct connectdata *conn, bool *done);
-static CURLcode tftp_disconnect(struct connectdata *conn);
+static CURLcode tftp_disconnect(struct connectdata *conn, bool dead_connection);
static CURLcode tftp_do(struct connectdata *conn, bool *done);
static CURLcode tftp_done(struct connectdata *conn,
CURLcode, bool premature);
@@ -738,7 +738,7 @@ static CURLcode tftp_tx(tftp_state_data_t *state, tftp_event_t event)
}
else {
/* Re-send the data packet */
- sbytes = sendto(state->sockfd, (void *)&state->spacket,
+ sbytes = sendto(state->sockfd, (void *)&state->spacket.data,
4+state->sbytes, SEND_4TH_ARG,
(struct sockaddr *)&state->remote_addr,
state->remote_addrlen);
@@ -925,9 +925,10 @@ static CURLcode tftp_state_machine(tftp_state_data_t *state,
* The disconnect callback
*
**********************************************************/
-static CURLcode tftp_disconnect(struct connectdata *conn)
+static CURLcode tftp_disconnect(struct connectdata *conn, bool dead_connection)
{
tftp_state_data_t *state = conn->proto.tftpc;
+ (void) dead_connection;
/* done, free dynamically allocated pkt buffers */
if(state) {
diff --git a/lib/transfer.c b/lib/transfer.c
index 754f6e62..e4e3405d 100644
--- a/lib/transfer.c
+++ b/lib/transfer.c
@@ -1382,6 +1382,46 @@ Transfer(struct connectdata *conn)
return CURLE_OK;
}
+static void loadhostpairs(struct SessionHandle *data)
+{
+ struct curl_slist *hostp;
+ char hostname[256];
+ char address[256];
+ int port;
+
+ for(hostp = data->change.resolve; hostp; hostp = hostp->next ) {
+ if(!hostp->data)
+ continue;
+ if(hostp->data[0] == '-') {
+ /* mark an entry for removal */
+ }
+ else if(3 == sscanf(hostp->data, "%255[^:]:%d:%255s", hostname, &port,
+ address)) {
+ struct Curl_dns_entry *dns;
+ Curl_addrinfo *addr;
+
+ addr = Curl_str2addr(address, port);
+ if(!addr) {
+ infof(data, "Resolve %s found illegal!\n", hostp->data);
+ continue;
+ }
+ infof(data, "Added %s:%d:%s to DNS cache\n",
+ hostname, port, address);
+
+ if(data->share)
+ Curl_share_lock(data, CURL_LOCK_DATA_DNS, CURL_LOCK_ACCESS_SINGLE);
+
+ /* put this host in the cache */
+ dns = Curl_cache_addr(data, addr, hostname, port);
+
+ if(data->share)
+ Curl_share_unlock(data, CURL_LOCK_DATA_DNS);
+ }
+ }
+ data->change.resolve = NULL; /* dealt with now */
+}
+
+
/*
* Curl_pretransfer() is called immediately before a transfer starts.
*/
@@ -1415,9 +1455,12 @@ CURLcode Curl_pretransfer(struct SessionHandle *data)
data->info.wouldredirect = NULL;
/* If there is a list of cookie files to read, do it now! */
- if(data->change.cookielist) {
+ if(data->change.cookielist)
Curl_cookie_loadfiles(data);
- }
+
+ /* If there is a list of host pairs to deal with */
+ if(data->change.resolve)
+ loadhostpairs(data);
/* Allow data->set.use_port to set which port to use. This needs to be
* disabled for example when we follow Location: headers to URLs using
@@ -1916,7 +1959,7 @@ connect_host(struct SessionHandle *data,
res = Curl_async_resolved(*conn, &protocol_done);
else
/* if we can't resolve, we kill this "connection" now */
- (void)Curl_disconnect(*conn);
+ (void)Curl_disconnect(*conn, /* dead_connection */ FALSE);
}
return res;
diff --git a/lib/url.c b/lib/url.c
index 1b65a923..8511ffe4 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -651,7 +651,7 @@ CURLcode Curl_ch_connc(struct SessionHandle *data,
close handles not in use.
*/
for(i=newamount; i< c->num; i++)
- Curl_disconnect(c->connects[i]);
+ Curl_disconnect(c->connects[i], /* dead_connection */ FALSE);
/* If the most recent connection is no longer valid, mark it
invalid. */
@@ -1006,7 +1006,21 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
* An FTP option that modifies an upload to create missing directories on
* the server.
*/
- data->set.ftp_create_missing_dirs = (int)va_arg(param, long);
+ switch(va_arg(param, long)) {
+ case 0:
+ data->set.ftp_create_missing_dirs = 0;
+ break;
+ case 1:
+ data->set.ftp_create_missing_dirs = 1;
+ break;
+ case 2:
+ data->set.ftp_create_missing_dirs = 2;
+ break;
+ default:
+ /* reserve other values for future use */
+ result = CURLE_FAILED_INIT;
+ break;
+ }
break;
case CURLOPT_SERVER_RESPONSE_TIMEOUT:
/*
@@ -1750,6 +1764,20 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
*/
data->set.quote = va_arg(param, struct curl_slist *);
break;
+ case CURLOPT_RESOLVE:
+ /*
+ * List of NAME:[address] names to populate the DNS cache with
+ * Prefix the NAME with dash (-) to _remove_ the name from the cache.
+ *
+ * Names added with this API will remain in the cache until explicitly
+ * removed or the handle is cleaned up.
+ *
+ * This API can remove any name from the DNS cache, but only entries
+ * that aren't actually in use right now will be pruned immediately.
+ */
+ data->set.resolve = va_arg(param, struct curl_slist *);
+ data->change.resolve = data->set.resolve;
+ break;
case CURLOPT_PROGRESSFUNCTION:
/*
* Progress callback function
@@ -1987,13 +2015,13 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
/*
* Set what local port to bind the socket to when performing an operation.
*/
- data->set.localport = (unsigned short) va_arg(param, long);
+ data->set.localport = curlx_sltous(va_arg(param, long));
break;
case CURLOPT_LOCALPORTRANGE:
/*
* Set number of local ports to try, starting with CURLOPT_LOCALPORT.
*/
- data->set.localportrange = (int) va_arg(param, long);
+ data->set.localportrange = curlx_sltosi(va_arg(param, long));
break;
case CURLOPT_KRBLEVEL:
/*
@@ -2166,13 +2194,14 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
data->set.max_filesize = va_arg(param, long);
break;
+#ifdef USE_SSL
case CURLOPT_USE_SSL:
/*
* Make transfers attempt to use SSL/TLS.
*/
data->set.ftp_ssl = (curl_usessl)va_arg(param, long);
break;
-
+#endif
case CURLOPT_FTPSSLAUTH:
/*
* Set a specific auth for FTP-SSL transfers.
@@ -2181,7 +2210,7 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
break;
case CURLOPT_IPRESOLVE:
- data->set.ip_version = va_arg(param, long);
+ data->set.ipver = va_arg(param, long);
break;
case CURLOPT_MAXFILESIZE_LARGE:
@@ -2341,7 +2370,7 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
* know that an unsigned int will always hold the value so we blindly
* typecast to this type
*/
- data->set.scope = (unsigned int) va_arg(param, long);
+ data->set.scope = curlx_sltoui(va_arg(param, long));
break;
case CURLOPT_PROTOCOLS:
@@ -2558,7 +2587,7 @@ static void conn_free(struct connectdata *conn)
free(conn); /* free all the connection oriented data */
}
-CURLcode Curl_disconnect(struct connectdata *conn)
+CURLcode Curl_disconnect(struct connectdata *conn, bool dead_connection)
{
struct SessionHandle *data;
if(!conn)
@@ -2618,7 +2647,7 @@ CURLcode Curl_disconnect(struct connectdata *conn)
if(conn->handler->disconnect)
/* This is set if protocol-specific cleanups should be made */
- conn->handler->disconnect(conn);
+ conn->handler->disconnect(conn, dead_connection);
if(-1 != conn->connectindex) {
/* unlink ourselves! */
@@ -2709,12 +2738,14 @@ static bool RTSPConnIsDead(struct connectdata *check)
}
#endif /* CURL_DISABLE_RTSP */
-static bool IsPipeliningPossible(const struct SessionHandle *handle)
+static bool IsPipeliningPossible(const struct SessionHandle *handle,
+ const struct connectdata *conn)
{
- if(handle->multi && Curl_multi_canPipeline(handle->multi) &&
- (handle->set.httpreq == HTTPREQ_GET ||
- handle->set.httpreq == HTTPREQ_HEAD) &&
- handle->set.httpversion != CURL_HTTP_VERSION_1_0)
+ if((conn->handler->protocol & PROT_HTTP) &&
+ handle->multi && Curl_multi_canPipeline(handle->multi) &&
+ (handle->set.httpreq == HTTPREQ_GET ||
+ handle->set.httpreq == HTTPREQ_HEAD) &&
+ handle->set.httpversion != CURL_HTTP_VERSION_1_0)
return TRUE;
return FALSE;
@@ -2731,13 +2762,6 @@ bool Curl_isPipeliningEnabled(const struct SessionHandle *handle)
CURLcode Curl_addHandleToPipeline(struct SessionHandle *data,
struct curl_llist *pipeline)
{
-#ifdef DEBUGBUILD
- if(!IsPipeliningPossible(data)) {
- /* when not pipelined, there MUST be no handle in the list already */
- if(pipeline->head)
- infof(data, "PIPE when no PIPE supposed!\n");
- }
-#endif
if(!Curl_llist_insert_next(pipeline, pipeline->tail, data))
return CURLE_OUT_OF_MEMORY;
return CURLE_OK;
@@ -2847,7 +2871,7 @@ ConnectionExists(struct SessionHandle *data,
{
long i;
struct connectdata *check;
- bool canPipeline = IsPipeliningPossible(data);
+ bool canPipeline = IsPipeliningPossible(data, needle);
for(i=0; i< data->state.connc->num; i++) {
bool match = FALSE;
@@ -2886,7 +2910,8 @@ ConnectionExists(struct SessionHandle *data,
check->data = data;
infof(data, "Connection #%ld seems to be dead!\n", i);
- Curl_disconnect(check); /* disconnect resources */
+ /* disconnect resources */
+ Curl_disconnect(check, /* dead_connection */ TRUE);
data->state.connc->connects[i]=NULL; /* nothing here */
continue;
@@ -2898,11 +2923,11 @@ ConnectionExists(struct SessionHandle *data,
struct SessionHandle* sh = gethandleathead(check->send_pipe);
struct SessionHandle* rh = gethandleathead(check->recv_pipe);
if(sh) {
- if(!IsPipeliningPossible(sh))
+ if(!IsPipeliningPossible(sh, check))
continue;
}
else if(rh) {
- if(!IsPipeliningPossible(rh))
+ if(!IsPipeliningPossible(rh, check))
continue;
}
@@ -3073,7 +3098,7 @@ ConnectionKillOne(struct SessionHandle *data)
conn->data = data;
/* the winner gets the honour of being disconnected */
- (void)Curl_disconnect(conn);
+ (void)Curl_disconnect(conn, /* dead_connection */ FALSE);
/* clean the array entry */
data->state.connc->connects[connindex] = NULL;
@@ -3440,14 +3465,19 @@ static void fix_hostname(struct SessionHandle *data,
#endif
}
+static void llist_dtor(void *user, void *element)
+{
+ (void)user;
+ (void)element;
+ /* Do nothing */
+}
+
/*
* Allocate and initialize a new connectdata object.
*/
-static struct connectdata *allocate_conn(void)
+static struct connectdata *allocate_conn(struct SessionHandle *data)
{
- struct connectdata *conn;
-
- conn = calloc(1, sizeof(struct connectdata));
+ struct connectdata *conn = calloc(1, sizeof(struct connectdata));
if(!conn)
return NULL;
@@ -3470,7 +3500,70 @@ static struct connectdata *allocate_conn(void)
/* Store creation time to help future close decision making */
conn->created = Curl_tvnow();
+ conn->data = data; /* Setup the association between this connection
+ and the SessionHandle */
+
+ conn->proxytype = data->set.proxytype; /* type */
+
+#ifdef CURL_DISABLE_PROXY
+
+ conn->bits.proxy = FALSE;
+ conn->bits.httpproxy = FALSE;
+ conn->bits.proxy_user_passwd = FALSE;
+ conn->bits.tunnel_proxy = FALSE;
+
+#else /* CURL_DISABLE_PROXY */
+
+ conn->bits.proxy = (bool)(data->set.str[STRING_PROXY] &&
+ *data->set.str[STRING_PROXY]);
+ conn->bits.httpproxy = (bool)(conn->bits.proxy &&
+ (conn->proxytype == CURLPROXY_HTTP ||
+ conn->proxytype == CURLPROXY_HTTP_1_0));
+ conn->bits.proxy_user_passwd =
+ (bool)(NULL != data->set.str[STRING_PROXYUSERNAME]);
+ conn->bits.tunnel_proxy = data->set.tunnel_thru_httpproxy;
+
+#endif /* CURL_DISABLE_PROXY */
+
+ conn->bits.user_passwd = (bool)(NULL != data->set.str[STRING_USERNAME]);
+ conn->bits.ftp_use_epsv = data->set.ftp_use_epsv;
+ conn->bits.ftp_use_eprt = data->set.ftp_use_eprt;
+
+ conn->verifypeer = data->set.ssl.verifypeer;
+ conn->verifyhost = data->set.ssl.verifyhost;
+
+ conn->ip_version = data->set.ipver;
+
+ if(data->multi && Curl_multi_canPipeline(data->multi) &&
+ !conn->master_buffer) {
+ /* Allocate master_buffer to be used for pipelining */
+ conn->master_buffer = calloc(BUFSIZE, sizeof (char));
+ if(!conn->master_buffer)
+ goto error;
+ }
+
+ /* Initialize the pipeline lists */
+ conn->send_pipe = Curl_llist_alloc((curl_llist_dtor) llist_dtor);
+ conn->recv_pipe = Curl_llist_alloc((curl_llist_dtor) llist_dtor);
+ conn->pend_pipe = Curl_llist_alloc((curl_llist_dtor) llist_dtor);
+ conn->done_pipe = Curl_llist_alloc((curl_llist_dtor) llist_dtor);
+ if(!conn->send_pipe || !conn->recv_pipe || !conn->pend_pipe ||
+ !conn->done_pipe)
+ goto error;
+
+#if defined(HAVE_KRB4) || defined(HAVE_GSSAPI)
+ conn->data_prot = PROT_CLEAR;
+#endif
+
return conn;
+ error:
+ Curl_llist_destroy(conn->send_pipe, NULL);
+ Curl_llist_destroy(conn->recv_pipe, NULL);
+ Curl_llist_destroy(conn->pend_pipe, NULL);
+ Curl_llist_destroy(conn->done_pipe, NULL);
+ Curl_safefree(conn->master_buffer);
+ Curl_safefree(conn);
+ return NULL;
}
static CURLcode findprotocol(struct SessionHandle *data,
@@ -3596,7 +3689,7 @@ static CURLcode parseurlandfillconn(struct SessionHandle *data,
path[0]=0;
if(2 > sscanf(data->change.url,
- "%15[^\n:]://%[^\n/]%[^\n]",
+ "%15[^\n:]://%[^\n/?]%[^\n]",
protobuf,
conn->host.name, path)) {
@@ -3604,7 +3697,7 @@ static CURLcode parseurlandfillconn(struct SessionHandle *data,
* The URL was badly formatted, let's try the browser-style _without_
* protocol specified like 'http://'.
*/
- rc = sscanf(data->change.url, "%[^\n/]%[^\n]", conn->host.name, path);
+ rc = sscanf(data->change.url, "%[^\n/?]%[^\n]", conn->host.name, path);
if(1 > rc) {
/*
* We couldn't even get this format.
@@ -3736,13 +3829,6 @@ static CURLcode parseurlandfillconn(struct SessionHandle *data,
return findprotocol(data, conn, protop);
}
-static void llist_dtor(void *user, void *element)
-{
- (void)user;
- (void)element;
- /* Do nothing */
-}
-
/*
* If we're doing a resumed transfer, we need to setup our stuff
* properly.
@@ -4079,7 +4165,7 @@ static CURLcode parse_proxy(struct SessionHandle *data,
*prox_portno = 0x0; /* cut off number from host name */
prox_portno ++;
/* now set the local port number */
- conn->port = atoi(prox_portno);
+ conn->port = strtol(prox_portno, NULL, 10);
}
else {
/* without a port number after the host name, some people seem to use
@@ -4523,6 +4609,9 @@ static void reuse_conn(struct connectdata *old_conn,
else
free(old_conn->host.rawalloc); /* free the newly allocated name buffer */
+ /* persist connection info in session handle */
+ Curl_persistconninfo(conn);
+
/* re-use init */
conn->bits.reuse = TRUE; /* yes, we're re-using here */
@@ -4580,66 +4669,16 @@ static CURLcode create_conn(struct SessionHandle *data,
parts for checking against the already present connections. In order
to not have to modify everything at once, we allocate a temporary
connection data struct and fill in for comparison purposes. */
+ conn = allocate_conn(data);
- conn = allocate_conn();
+ if(!conn)
+ return CURLE_OUT_OF_MEMORY;
/* We must set the return variable as soon as possible, so that our
parent can cleanup any possible allocs we may have done before
any failure */
*in_connect = conn;
- if(!conn)
- return CURLE_OUT_OF_MEMORY;
-
- conn->data = data; /* Setup the association between this connection
- and the SessionHandle */
-
- conn->proxytype = data->set.proxytype; /* type */
-
-#ifdef CURL_DISABLE_PROXY
-
- conn->bits.proxy = FALSE;
- conn->bits.httpproxy = FALSE;
- conn->bits.proxy_user_passwd = FALSE;
- conn->bits.tunnel_proxy = FALSE;
-
-#else /* CURL_DISABLE_PROXY */
-
- conn->bits.proxy = (bool)(data->set.str[STRING_PROXY] &&
- *data->set.str[STRING_PROXY]);
- conn->bits.httpproxy = (bool)(conn->bits.proxy &&
- (conn->proxytype == CURLPROXY_HTTP ||
- conn->proxytype == CURLPROXY_HTTP_1_0));
- conn->bits.proxy_user_passwd =
- (bool)(NULL != data->set.str[STRING_PROXYUSERNAME]);
- conn->bits.tunnel_proxy = data->set.tunnel_thru_httpproxy;
-
-#endif /* CURL_DISABLE_PROXY */
-
- conn->bits.user_passwd = (bool)(NULL != data->set.str[STRING_USERNAME]);
- conn->bits.ftp_use_epsv = data->set.ftp_use_epsv;
- conn->bits.ftp_use_eprt = data->set.ftp_use_eprt;
-
- conn->verifypeer = data->set.ssl.verifypeer;
- conn->verifyhost = data->set.ssl.verifyhost;
-
- if(data->multi && Curl_multi_canPipeline(data->multi) &&
- !conn->master_buffer) {
- /* Allocate master_buffer to be used for pipelining */
- conn->master_buffer = calloc(BUFSIZE, sizeof (char));
- if(!conn->master_buffer)
- return CURLE_OUT_OF_MEMORY;
- }
-
- /* Initialize the pipeline lists */
- conn->send_pipe = Curl_llist_alloc((curl_llist_dtor) llist_dtor);
- conn->recv_pipe = Curl_llist_alloc((curl_llist_dtor) llist_dtor);
- conn->pend_pipe = Curl_llist_alloc((curl_llist_dtor) llist_dtor);
- conn->done_pipe = Curl_llist_alloc((curl_llist_dtor) llist_dtor);
- if(!conn->send_pipe || !conn->recv_pipe || !conn->pend_pipe ||
- !conn->done_pipe)
- return CURLE_OUT_OF_MEMORY;
-
/* This initing continues below, see the comment "Continue connectdata
* initialization here" */
@@ -4899,12 +4938,6 @@ static CURLcode create_conn(struct SessionHandle *data,
infof(data, "Re-using existing connection! (#%ld) with host %s\n",
conn->connectindex,
conn->proxy.name?conn->proxy.dispname:conn->host.dispname);
- /* copy this IP address to the common buffer for the easy handle so that
- the address can actually survice the removal of this connection. strcpy
- is safe since the target buffer is big enough to hold the largest
- possible IP address */
- strcpy(data->info.ip, conn->ip_addr_str);
-
}
else {
/*
@@ -5079,7 +5112,7 @@ CURLcode Curl_connect(struct SessionHandle *data,
if(code && *in_connect) {
/* We're not allowed to return failure with memory left allocated
in the connectdata struct, free those here */
- Curl_disconnect(*in_connect); /* close the connection */
+ Curl_disconnect(*in_connect, FALSE); /* close the connection */
*in_connect = NULL; /* return a NULL */
}
@@ -5107,7 +5140,7 @@ CURLcode Curl_async_resolved(struct connectdata *conn,
if(code)
/* We're not allowed to return failure with memory left allocated
in the connectdata struct, free those here */
- Curl_disconnect(conn); /* close the connection */
+ Curl_disconnect(conn, FALSE); /* close the connection */
return code;
#else
@@ -5199,7 +5232,7 @@ CURLcode Curl_done(struct connectdata **connp,
*/
if(data->set.reuse_forbid || conn->bits.close || premature ||
(-1 == conn->connectindex)) {
- CURLcode res2 = Curl_disconnect(conn); /* close the connection */
+ CURLcode res2 = Curl_disconnect(conn, FALSE); /* close the connection */
/* If we had an error already, make sure we return that one. But
if we got a new error, return that. */
diff --git a/lib/url.h b/lib/url.h
index 63d7f2c4..241dc28c 100644
--- a/lib/url.h
+++ b/lib/url.h
@@ -42,7 +42,7 @@ CURLcode Curl_async_resolved(struct connectdata *conn,
CURLcode Curl_do(struct connectdata **, bool *done);
CURLcode Curl_do_more(struct connectdata *);
CURLcode Curl_done(struct connectdata **, CURLcode, bool premature);
-CURLcode Curl_disconnect(struct connectdata *);
+CURLcode Curl_disconnect(struct connectdata *, bool dead_connection);
CURLcode Curl_protocol_connect(struct connectdata *conn, bool *done);
CURLcode Curl_protocol_connecting(struct connectdata *conn, bool *done);
CURLcode Curl_protocol_doing(struct connectdata *conn, bool *done);
diff --git a/lib/urldata.h b/lib/urldata.h
index 4d605915..f4f67862 100644
--- a/lib/urldata.h
+++ b/lib/urldata.h
@@ -199,12 +199,15 @@ struct krb4buffer {
size_t index;
int eof_flag;
};
+
enum protection_level {
- prot_clear,
- prot_safe,
- prot_confidential,
- prot_private,
- prot_cmd
+ PROT_NONE, /* first in list */
+ PROT_CLEAR,
+ PROT_SAFE,
+ PROT_CONFIDENTIAL,
+ PROT_PRIVATE,
+ PROT_CMD,
+ PROT_LAST /* last in list */
};
#endif
@@ -643,9 +646,11 @@ struct Curl_handler {
int numsocks);
/* This function *MAY* be set to a protocol-dependent function that is run
- * by the curl_disconnect(), as a step in the disconnection.
+ * by the curl_disconnect(), as a step in the disconnection. If the handler
+ * is called because the connection has been considered dead, dead_connection
+ * is set to TRUE.
*/
- CURLcode (*disconnect)(struct connectdata *);
+ CURLcode (*disconnect)(struct connectdata *, bool dead_connection);
long defport; /* Default port. */
long protocol; /* PROT_* flags concerning the protocol set */
@@ -754,6 +759,23 @@ struct connectdata {
unsigned short remote_port; /* what remote port to connect to,
not the proxy port! */
+ /* 'primary_ip' and 'primary_port' get filled with peer's numerical
+ ip address and port number whenever an outgoing connection is
+ *attemted* from the primary socket to a remote address. When more
+ than one address is tried for a connection these will hold data
+ for the last attempt. When the connection is actualy established
+ these are updated with data which comes directly from the socket. */
+
+ char primary_ip[MAX_IPADR_LEN];
+ long primary_port;
+
+ /* 'local_ip' and 'local_port' get filled with local's numerical
+ ip address and port number whenever an outgoing connection is
+ **established** from the primary socket to a remote address. */
+
+ char local_ip[MAX_IPADR_LEN];
+ long local_port;
+
char *user; /* user name string, allocated */
char *passwd; /* password string, allocated */
@@ -779,6 +801,8 @@ struct connectdata {
const struct Curl_handler * handler; /* Connection's protocol handler. */
+ long ip_version; /* copied from the SessionHandle at creation time */
+
/**** curl_get() phase fields */
curl_socket_t sockfd; /* socket to read from or CURL_SOCKET_BAD */
@@ -909,15 +933,21 @@ struct PureInfo {
long numconnects; /* how many new connection did libcurl created */
char *contenttype; /* the content type of the object */
char *wouldredirect; /* URL this would've been redirected to if asked to */
- char ip[MAX_IPADR_LEN]; /* this buffer gets the numerical ip version stored
- at the connect *attempt* so it will get the last
- tried connect IP even on failures */
- long port; /* the remote port the last connection was established to */
- char localip[MAX_IPADR_LEN]; /* this buffer gets the numerical (local) ip
- stored from where the last connection was
- established */
- long localport; /* the local (src) port the last connection
- originated from */
+
+ /* PureInfo members 'conn_primary_ip', 'conn_primary_port', 'conn_local_ip'
+ and, 'conn_local_port' are copied over from the connectdata struct in
+ order to allow curl_easy_getinfo() to return this information even when
+ the session handle is no longer associated with a connection, and also
+ allow curl_easy_reset() to clear this information from the session handle
+ without disturbing information which is still alive, and that might be
+ reused, in the connection cache. */
+
+ char conn_primary_ip[MAX_IPADR_LEN];
+ long conn_primary_port;
+
+ char conn_local_ip[MAX_IPADR_LEN];
+ long conn_local_port;
+
struct curl_certinfo certs; /* info about the certs, only populated in
OpenSSL builds. Asked for with
CURLOPT_CERTINFO / CURLINFO_CERTINFO */
@@ -1186,6 +1216,8 @@ struct DynamicStatic {
bool referer_alloc; /* referer sting is malloc()ed */
struct curl_slist *cookielist; /* list of cookie files set by
curl_easy_setopt(COOKIEFILE) calls */
+ struct curl_slist *resolve; /* set to point to the set.resolve list when
+ this should be dealt with in pretransfer */
};
/*
@@ -1332,6 +1364,8 @@ struct UserDefined {
struct curl_slist *source_postquote; /* in 3rd party transfer mode - after
the transfer on source host */
struct curl_slist *telnet_options; /* linked list of telnet options */
+ struct curl_slist *resolve; /* list of names to add/remove from
+ DNS cache */
curl_TimeCond timecondition; /* kind of time/date comparison */
time_t timevalue; /* what time to compare with */
Curl_HttpReq httpreq; /* what kind of HTTP request (if any) is this */
@@ -1351,8 +1385,8 @@ struct UserDefined {
struct curl_slist *http200aliases; /* linked list of aliases for http200 */
- long ip_version; /* the CURL_IPRESOLVE_* defines in the public header file
- 0 - whatever, 1 - v2, 2 - v6 */
+ long ipver; /* the CURL_IPRESOLVE_* defines in the public header file
+ 0 - whatever, 1 - v2, 2 - v6 */
curl_off_t max_filesize; /* Maximum file size to download */
diff --git a/lib/warnless.c b/lib/warnless.c
index 4f42dd07..bc29d28d 100644
--- a/lib/warnless.c
+++ b/lib/warnless.c
@@ -37,7 +37,7 @@
# define CURL_MASK_SSHORT 0x7FFFFFFFFFFFFFFF
# define CURL_MASK_USHORT 0xFFFFFFFFFFFFFFFF
#else
-# error "SIZEOF_SHORT not defined"
+# error "SIZEOF_SHORT not defined"
#endif
#if (SIZEOF_INT == 2)
@@ -53,7 +53,7 @@
# define CURL_MASK_SINT 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
# define CURL_MASK_UINT 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
#else
-# error "SIZEOF_INT not defined"
+# error "SIZEOF_INT not defined"
#endif
#if (CURL_SIZEOF_LONG == 2)
@@ -69,7 +69,39 @@
# define CURL_MASK_SLONG 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFL
# define CURL_MASK_ULONG 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFUL
#else
-# error "SIZEOF_LONG not defined"
+# error "CURL_SIZEOF_LONG not defined"
+#endif
+
+#if (CURL_SIZEOF_CURL_OFF_T == 2)
+# define CURL_MASK_SCOFFT CURL_OFF_T_C(0x7FFF)
+# define CURL_MASK_UCOFFT CURL_OFF_TU_C(0xFFFF)
+#elif (CURL_SIZEOF_CURL_OFF_T == 4)
+# define CURL_MASK_SCOFFT CURL_OFF_T_C(0x7FFFFFFF)
+# define CURL_MASK_UCOFFT CURL_OFF_TU_C(0xFFFFFFFF)
+#elif (CURL_SIZEOF_CURL_OFF_T == 8)
+# define CURL_MASK_SCOFFT CURL_OFF_T_C(0x7FFFFFFFFFFFFFFF)
+# define CURL_MASK_UCOFFT CURL_OFF_TU_C(0xFFFFFFFFFFFFFFFF)
+#elif (CURL_SIZEOF_CURL_OFF_T == 16)
+# define CURL_MASK_SCOFFT CURL_OFF_T_C(0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)
+# define CURL_MASK_UCOFFT CURL_OFF_TU_C(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)
+#else
+# error "CURL_SIZEOF_CURL_OFF_T not defined"
+#endif
+
+#if (SIZEOF_SIZE_T == SIZEOF_SHORT)
+# define CURL_MASK_SSIZE_T CURL_MASK_SSHORT
+# define CURL_MASK_USIZE_T CURL_MASK_USHORT
+#elif (SIZEOF_SIZE_T == SIZEOF_INT)
+# define CURL_MASK_SSIZE_T CURL_MASK_SINT
+# define CURL_MASK_USIZE_T CURL_MASK_UINT
+#elif (SIZEOF_SIZE_T == CURL_SIZEOF_LONG)
+# define CURL_MASK_SSIZE_T CURL_MASK_SLONG
+# define CURL_MASK_USIZE_T CURL_MASK_ULONG
+#elif (SIZEOF_SIZE_T == CURL_SIZEOF_CURL_OFF_T)
+# define CURL_MASK_SSIZE_T CURL_MASK_SCOFFT
+# define CURL_MASK_USIZE_T CURL_MASK_UCOFFT
+#else
+# error "SIZEOF_SIZE_T not defined"
#endif
/*
@@ -109,7 +141,7 @@ unsigned char curlx_ultouc(unsigned long ulnum)
}
/*
-** size_t to signed int
+** unsigned size_t to signed int
*/
int curlx_uztosi(size_t uznum)
@@ -125,3 +157,97 @@ int curlx_uztosi(size_t uznum)
# pragma warning(pop)
#endif
}
+
+/*
+** signed long to signed int
+*/
+
+int curlx_sltosi(long slnum)
+{
+#ifdef __INTEL_COMPILER
+# pragma warning(push)
+# pragma warning(disable:810) /* conversion may lose significant bits */
+#endif
+
+ DEBUGASSERT(slnum >= 0);
+ return (int)(slnum & (long) CURL_MASK_SINT);
+
+#ifdef __INTEL_COMPILER
+# pragma warning(pop)
+#endif
+}
+
+/*
+** signed long to unsigned int
+*/
+
+unsigned int curlx_sltoui(long slnum)
+{
+#ifdef __INTEL_COMPILER
+# pragma warning(push)
+# pragma warning(disable:810) /* conversion may lose significant bits */
+#endif
+
+ DEBUGASSERT(slnum >= 0);
+ return (unsigned int)(slnum & (long) CURL_MASK_UINT);
+
+#ifdef __INTEL_COMPILER
+# pragma warning(pop)
+#endif
+}
+
+/*
+** signed long to unsigned short
+*/
+
+unsigned short curlx_sltous(long slnum)
+{
+#ifdef __INTEL_COMPILER
+# pragma warning(push)
+# pragma warning(disable:810) /* conversion may lose significant bits */
+#endif
+
+ DEBUGASSERT(slnum >= 0);
+ return (unsigned short)(slnum & (long) CURL_MASK_USHORT);
+
+#ifdef __INTEL_COMPILER
+# pragma warning(pop)
+#endif
+}
+
+/*
+** unsigned size_t to signed ssize_t
+*/
+
+ssize_t curlx_uztosz(size_t uznum)
+{
+#ifdef __INTEL_COMPILER
+# pragma warning(push)
+# pragma warning(disable:810) /* conversion may lose significant bits */
+#endif
+
+ return (ssize_t)(uznum & (size_t) CURL_MASK_SSIZE_T);
+
+#ifdef __INTEL_COMPILER
+# pragma warning(pop)
+#endif
+}
+
+/*
+** signed curl_off_t to unsigned size_t
+*/
+
+size_t curlx_sotouz(curl_off_t sonum)
+{
+#ifdef __INTEL_COMPILER
+# pragma warning(push)
+# pragma warning(disable:810) /* conversion may lose significant bits */
+#endif
+
+ DEBUGASSERT(sonum >= 0);
+ return (size_t)(sonum & (curl_off_t) CURL_MASK_USIZE_T);
+
+#ifdef __INTEL_COMPILER
+# pragma warning(pop)
+#endif
+}
diff --git a/lib/warnless.h b/lib/warnless.h
index ac654fbc..7b9bd3c7 100644
--- a/lib/warnless.h
+++ b/lib/warnless.h
@@ -28,4 +28,14 @@ unsigned char curlx_ultouc(unsigned long ulnum);
int curlx_uztosi(size_t uznum);
+int curlx_sltosi(long slnum);
+
+unsigned int curlx_sltoui(long slnum);
+
+unsigned short curlx_sltous(long slnum);
+
+ssize_t curlx_uztosz(size_t uznum);
+
+size_t curlx_sotouz(curl_off_t sonum);
+
#endif /* HEADER_CURL_WARNLESS_H */
diff --git a/m4/curl-compilers.m4 b/m4/curl-compilers.m4
index 1ea4d17e..413293b1 100644
--- a/m4/curl-compilers.m4
+++ b/m4/curl-compilers.m4
@@ -21,7 +21,7 @@
#***************************************************************************
# File version for 'aclocal' use. Keep it a single number.
-# serial 55
+# serial 56
dnl CURL_CHECK_COMPILER
diff --git a/m4/curl-confopts.m4 b/m4/curl-confopts.m4
index bb25bb92..30fb025f 100644
--- a/m4/curl-confopts.m4
+++ b/m4/curl-confopts.m4
@@ -21,7 +21,7 @@
#***************************************************************************
# File version for 'aclocal' use. Keep it a single number.
-# serial 13
+# serial 14
dnl CURL_CHECK_OPTION_THREADED_RESOLVER
dnl -------------------------------------------------
diff --git a/m4/curl-functions.m4 b/m4/curl-functions.m4
index 36bd31c4..6067abf9 100644
--- a/m4/curl-functions.m4
+++ b/m4/curl-functions.m4
@@ -21,7 +21,7 @@
#***************************************************************************
# File version for 'aclocal' use. Keep it a single number.
-# serial 64
+# serial 65
dnl CURL_INCLUDES_ARPA_INET
@@ -416,6 +416,26 @@ curl_includes_sys_uio="\
])
+dnl CURL_INCLUDES_SYS_XATTR
+dnl -------------------------------------------------
+dnl Set up variable with list of headers that must be
+dnl included when sys/xattr.h is to be included.
+
+AC_DEFUN([CURL_INCLUDES_SYS_XATTR], [
+curl_includes_sys_xattr="\
+/* includes start */
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_XATTR_H
+# include <sys/xattr.h>
+#endif
+/* includes end */"
+ AC_CHECK_HEADERS(
+ sys/types.h sys/xattr.h,
+ [], [], [$curl_includes_sys_xattr])
+])
+
dnl CURL_INCLUDES_TIME
dnl -------------------------------------------------
dnl Set up variable with list of headers that must be
@@ -1230,6 +1250,250 @@ AC_DEFUN([CURL_CHECK_FUNC_FDOPEN], [
])
+dnl CURL_CHECK_FUNC_FGETXATTR
+dnl -------------------------------------------------
+dnl Verify if fgetxattr is available, prototyped, and
+dnl can be compiled. If all of these are true, and
+dnl usage has not been previously disallowed with
+dnl shell variable curl_disallow_fgetxattr, then
+dnl HAVE_FGETXATTR will be defined.
+
+AC_DEFUN([CURL_CHECK_FUNC_FGETXATTR], [
+ AC_REQUIRE([CURL_INCLUDES_SYS_XATTR])dnl
+ #
+ tst_links_fgetxattr="unknown"
+ tst_proto_fgetxattr="unknown"
+ tst_compi_fgetxattr="unknown"
+ tst_allow_fgetxattr="unknown"
+ tst_nargs_fgetxattr="unknown"
+ #
+ AC_MSG_CHECKING([if fgetxattr can be linked])
+ AC_LINK_IFELSE([
+ AC_LANG_FUNC_LINK_TRY([fgetxattr])
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_links_fgetxattr="yes"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_links_fgetxattr="no"
+ ])
+ #
+ if test "$tst_links_fgetxattr" = "yes"; then
+ AC_MSG_CHECKING([if fgetxattr is prototyped])
+ AC_EGREP_CPP([fgetxattr],[
+ $curl_includes_sys_xattr
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_proto_fgetxattr="yes"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_proto_fgetxattr="no"
+ ])
+ fi
+ #
+ if test "$tst_proto_fgetxattr" = "yes"; then
+ if test "$tst_nargs_fgetxattr" = "unknown"; then
+ AC_MSG_CHECKING([if fgetxattr takes 4 args.])
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
+ $curl_includes_sys_xattr
+ ]],[[
+ if(0 != fgetxattr(0, 0, 0, 0))
+ return 1;
+ ]])
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_compi_fgetxattr="yes"
+ tst_nargs_fgetxattr="4"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_compi_fgetxattr="no"
+ ])
+ fi
+ if test "$tst_nargs_fgetxattr" = "unknown"; then
+ AC_MSG_CHECKING([if fgetxattr takes 6 args.])
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
+ $curl_includes_sys_xattr
+ ]],[[
+ if(0 != fgetxattr(0, 0, 0, 0, 0, 0))
+ return 1;
+ ]])
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_compi_fgetxattr="yes"
+ tst_nargs_fgetxattr="6"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_compi_fgetxattr="no"
+ ])
+ fi
+ AC_MSG_CHECKING([if fgetxattr is compilable])
+ if test "$tst_compi_fgetxattr" = "yes"; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ fi
+ fi
+ #
+ if test "$tst_compi_fgetxattr" = "yes"; then
+ AC_MSG_CHECKING([if fgetxattr usage allowed])
+ if test "x$curl_disallow_fgetxattr" != "xyes"; then
+ AC_MSG_RESULT([yes])
+ tst_allow_fgetxattr="yes"
+ else
+ AC_MSG_RESULT([no])
+ tst_allow_fgetxattr="no"
+ fi
+ fi
+ #
+ AC_MSG_CHECKING([if fgetxattr might be used])
+ if test "$tst_links_fgetxattr" = "yes" &&
+ test "$tst_proto_fgetxattr" = "yes" &&
+ test "$tst_compi_fgetxattr" = "yes" &&
+ test "$tst_allow_fgetxattr" = "yes"; then
+ AC_MSG_RESULT([yes])
+ AC_DEFINE_UNQUOTED(HAVE_FGETXATTR, 1,
+ [Define to 1 if you have the fgetxattr function.])
+ dnl AC_DEFINE_UNQUOTED(FGETXATTR_ARGS, $tst_nargs_fgetxattr,
+ dnl [Specifies the number of arguments to fgetxattr])
+ #
+ if test "$tst_nargs_fgetxattr" -eq "4"; then
+ AC_DEFINE(HAVE_FGETXATTR_4, 1, [fgetxattr() takes 4 args])
+ elif test "$tst_nargs_fgetxattr" -eq "6"; then
+ AC_DEFINE(HAVE_FGETXATTR_6, 1, [fgetxattr() takes 6 args])
+ fi
+ #
+ ac_cv_func_fgetxattr="yes"
+ else
+ AC_MSG_RESULT([no])
+ ac_cv_func_fgetxattr="no"
+ fi
+])
+
+
+dnl CURL_CHECK_FUNC_FLISTXATTR
+dnl -------------------------------------------------
+dnl Verify if flistxattr is available, prototyped, and
+dnl can be compiled. If all of these are true, and
+dnl usage has not been previously disallowed with
+dnl shell variable curl_disallow_flistxattr, then
+dnl HAVE_FLISTXATTR will be defined.
+
+AC_DEFUN([CURL_CHECK_FUNC_FLISTXATTR], [
+ AC_REQUIRE([CURL_INCLUDES_SYS_XATTR])dnl
+ #
+ tst_links_flistxattr="unknown"
+ tst_proto_flistxattr="unknown"
+ tst_compi_flistxattr="unknown"
+ tst_allow_flistxattr="unknown"
+ tst_nargs_flistxattr="unknown"
+ #
+ AC_MSG_CHECKING([if flistxattr can be linked])
+ AC_LINK_IFELSE([
+ AC_LANG_FUNC_LINK_TRY([flistxattr])
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_links_flistxattr="yes"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_links_flistxattr="no"
+ ])
+ #
+ if test "$tst_links_flistxattr" = "yes"; then
+ AC_MSG_CHECKING([if flistxattr is prototyped])
+ AC_EGREP_CPP([flistxattr],[
+ $curl_includes_sys_xattr
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_proto_flistxattr="yes"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_proto_flistxattr="no"
+ ])
+ fi
+ #
+ if test "$tst_proto_flistxattr" = "yes"; then
+ if test "$tst_nargs_flistxattr" = "unknown"; then
+ AC_MSG_CHECKING([if flistxattr takes 3 args.])
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
+ $curl_includes_sys_xattr
+ ]],[[
+ if(0 != flistxattr(0, 0, 0))
+ return 1;
+ ]])
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_compi_flistxattr="yes"
+ tst_nargs_flistxattr="3"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_compi_flistxattr="no"
+ ])
+ fi
+ if test "$tst_nargs_flistxattr" = "unknown"; then
+ AC_MSG_CHECKING([if flistxattr takes 4 args.])
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
+ $curl_includes_sys_xattr
+ ]],[[
+ if(0 != flistxattr(0, 0, 0, 0))
+ return 1;
+ ]])
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_compi_flistxattr="yes"
+ tst_nargs_flistxattr="4"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_compi_flistxattr="no"
+ ])
+ fi
+ AC_MSG_CHECKING([if flistxattr is compilable])
+ if test "$tst_compi_flistxattr" = "yes"; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ fi
+ fi
+ #
+ if test "$tst_compi_flistxattr" = "yes"; then
+ AC_MSG_CHECKING([if flistxattr usage allowed])
+ if test "x$curl_disallow_flistxattr" != "xyes"; then
+ AC_MSG_RESULT([yes])
+ tst_allow_flistxattr="yes"
+ else
+ AC_MSG_RESULT([no])
+ tst_allow_flistxattr="no"
+ fi
+ fi
+ #
+ AC_MSG_CHECKING([if flistxattr might be used])
+ if test "$tst_links_flistxattr" = "yes" &&
+ test "$tst_proto_flistxattr" = "yes" &&
+ test "$tst_compi_flistxattr" = "yes" &&
+ test "$tst_allow_flistxattr" = "yes"; then
+ AC_MSG_RESULT([yes])
+ AC_DEFINE_UNQUOTED(HAVE_FLISTXATTR, 1,
+ [Define to 1 if you have the flistxattr function.])
+ dnl AC_DEFINE_UNQUOTED(FLISTXATTR_ARGS, $tst_nargs_flistxattr,
+ dnl [Specifies the number of arguments to flistxattr])
+ #
+ if test "$tst_nargs_flistxattr" -eq "3"; then
+ AC_DEFINE(HAVE_FLISTXATTR_3, 1, [flistxattr() takes 3 args])
+ elif test "$tst_nargs_flistxattr" -eq "4"; then
+ AC_DEFINE(HAVE_FLISTXATTR_4, 1, [flistxattr() takes 4 args])
+ fi
+ #
+ ac_cv_func_flistxattr="yes"
+ else
+ AC_MSG_RESULT([no])
+ ac_cv_func_flistxattr="no"
+ fi
+])
+
+
dnl CURL_CHECK_FUNC_FREEADDRINFO
dnl -------------------------------------------------
dnl Verify if freeaddrinfo is available, prototyped,
@@ -1410,6 +1674,250 @@ AC_DEFUN([CURL_CHECK_FUNC_FREEIFADDRS], [
])
+dnl CURL_CHECK_FUNC_FREMOVEXATTR
+dnl -------------------------------------------------
+dnl Verify if fremovexattr is available, prototyped, and
+dnl can be compiled. If all of these are true, and
+dnl usage has not been previously disallowed with
+dnl shell variable curl_disallow_fremovexattr, then
+dnl HAVE_FREMOVEXATTR will be defined.
+
+AC_DEFUN([CURL_CHECK_FUNC_FREMOVEXATTR], [
+ AC_REQUIRE([CURL_INCLUDES_SYS_XATTR])dnl
+ #
+ tst_links_fremovexattr="unknown"
+ tst_proto_fremovexattr="unknown"
+ tst_compi_fremovexattr="unknown"
+ tst_allow_fremovexattr="unknown"
+ tst_nargs_fremovexattr="unknown"
+ #
+ AC_MSG_CHECKING([if fremovexattr can be linked])
+ AC_LINK_IFELSE([
+ AC_LANG_FUNC_LINK_TRY([fremovexattr])
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_links_fremovexattr="yes"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_links_fremovexattr="no"
+ ])
+ #
+ if test "$tst_links_fremovexattr" = "yes"; then
+ AC_MSG_CHECKING([if fremovexattr is prototyped])
+ AC_EGREP_CPP([fremovexattr],[
+ $curl_includes_sys_xattr
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_proto_fremovexattr="yes"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_proto_fremovexattr="no"
+ ])
+ fi
+ #
+ if test "$tst_proto_fremovexattr" = "yes"; then
+ if test "$tst_nargs_fremovexattr" = "unknown"; then
+ AC_MSG_CHECKING([if fremovexattr takes 2 args.])
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
+ $curl_includes_sys_xattr
+ ]],[[
+ if(0 != fremovexattr(0, 0))
+ return 1;
+ ]])
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_compi_fremovexattr="yes"
+ tst_nargs_fremovexattr="2"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_compi_fremovexattr="no"
+ ])
+ fi
+ if test "$tst_nargs_fremovexattr" = "unknown"; then
+ AC_MSG_CHECKING([if fremovexattr takes 3 args.])
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
+ $curl_includes_sys_xattr
+ ]],[[
+ if(0 != fremovexattr(0, 0, 0))
+ return 1;
+ ]])
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_compi_fremovexattr="yes"
+ tst_nargs_fremovexattr="3"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_compi_fremovexattr="no"
+ ])
+ fi
+ AC_MSG_CHECKING([if fremovexattr is compilable])
+ if test "$tst_compi_fremovexattr" = "yes"; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ fi
+ fi
+ #
+ if test "$tst_compi_fremovexattr" = "yes"; then
+ AC_MSG_CHECKING([if fremovexattr usage allowed])
+ if test "x$curl_disallow_fremovexattr" != "xyes"; then
+ AC_MSG_RESULT([yes])
+ tst_allow_fremovexattr="yes"
+ else
+ AC_MSG_RESULT([no])
+ tst_allow_fremovexattr="no"
+ fi
+ fi
+ #
+ AC_MSG_CHECKING([if fremovexattr might be used])
+ if test "$tst_links_fremovexattr" = "yes" &&
+ test "$tst_proto_fremovexattr" = "yes" &&
+ test "$tst_compi_fremovexattr" = "yes" &&
+ test "$tst_allow_fremovexattr" = "yes"; then
+ AC_MSG_RESULT([yes])
+ AC_DEFINE_UNQUOTED(HAVE_FREMOVEXATTR, 1,
+ [Define to 1 if you have the fremovexattr function.])
+ dnl AC_DEFINE_UNQUOTED(FREMOVEXATTR_ARGS, $tst_nargs_fremovexattr,
+ dnl [Specifies the number of arguments to fremovexattr])
+ #
+ if test "$tst_nargs_fremovexattr" -eq "2"; then
+ AC_DEFINE(HAVE_FREMOVEXATTR_2, 1, [fremovexattr() takes 2 args])
+ elif test "$tst_nargs_fremovexattr" -eq "3"; then
+ AC_DEFINE(HAVE_FREMOVEXATTR_3, 1, [fremovexattr() takes 3 args])
+ fi
+ #
+ ac_cv_func_fremovexattr="yes"
+ else
+ AC_MSG_RESULT([no])
+ ac_cv_func_fremovexattr="no"
+ fi
+])
+
+
+dnl CURL_CHECK_FUNC_FSETXATTR
+dnl -------------------------------------------------
+dnl Verify if fsetxattr is available, prototyped, and
+dnl can be compiled. If all of these are true, and
+dnl usage has not been previously disallowed with
+dnl shell variable curl_disallow_fsetxattr, then
+dnl HAVE_FSETXATTR will be defined.
+
+AC_DEFUN([CURL_CHECK_FUNC_FSETXATTR], [
+ AC_REQUIRE([CURL_INCLUDES_SYS_XATTR])dnl
+ #
+ tst_links_fsetxattr="unknown"
+ tst_proto_fsetxattr="unknown"
+ tst_compi_fsetxattr="unknown"
+ tst_allow_fsetxattr="unknown"
+ tst_nargs_fsetxattr="unknown"
+ #
+ AC_MSG_CHECKING([if fsetxattr can be linked])
+ AC_LINK_IFELSE([
+ AC_LANG_FUNC_LINK_TRY([fsetxattr])
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_links_fsetxattr="yes"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_links_fsetxattr="no"
+ ])
+ #
+ if test "$tst_links_fsetxattr" = "yes"; then
+ AC_MSG_CHECKING([if fsetxattr is prototyped])
+ AC_EGREP_CPP([fsetxattr],[
+ $curl_includes_sys_xattr
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_proto_fsetxattr="yes"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_proto_fsetxattr="no"
+ ])
+ fi
+ #
+ if test "$tst_proto_fsetxattr" = "yes"; then
+ if test "$tst_nargs_fsetxattr" = "unknown"; then
+ AC_MSG_CHECKING([if fsetxattr takes 5 args.])
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
+ $curl_includes_sys_xattr
+ ]],[[
+ if(0 != fsetxattr(0, 0, 0, 0, 0))
+ return 1;
+ ]])
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_compi_fsetxattr="yes"
+ tst_nargs_fsetxattr="5"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_compi_fsetxattr="no"
+ ])
+ fi
+ if test "$tst_nargs_fsetxattr" = "unknown"; then
+ AC_MSG_CHECKING([if fsetxattr takes 6 args.])
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
+ $curl_includes_sys_xattr
+ ]],[[
+ if(0 != fsetxattr(0, 0, 0, 0, 0, 0))
+ return 1;
+ ]])
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_compi_fsetxattr="yes"
+ tst_nargs_fsetxattr="6"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_compi_fsetxattr="no"
+ ])
+ fi
+ AC_MSG_CHECKING([if fsetxattr is compilable])
+ if test "$tst_compi_fsetxattr" = "yes"; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ fi
+ fi
+ #
+ if test "$tst_compi_fsetxattr" = "yes"; then
+ AC_MSG_CHECKING([if fsetxattr usage allowed])
+ if test "x$curl_disallow_fsetxattr" != "xyes"; then
+ AC_MSG_RESULT([yes])
+ tst_allow_fsetxattr="yes"
+ else
+ AC_MSG_RESULT([no])
+ tst_allow_fsetxattr="no"
+ fi
+ fi
+ #
+ AC_MSG_CHECKING([if fsetxattr might be used])
+ if test "$tst_links_fsetxattr" = "yes" &&
+ test "$tst_proto_fsetxattr" = "yes" &&
+ test "$tst_compi_fsetxattr" = "yes" &&
+ test "$tst_allow_fsetxattr" = "yes"; then
+ AC_MSG_RESULT([yes])
+ AC_DEFINE_UNQUOTED(HAVE_FSETXATTR, 1,
+ [Define to 1 if you have the fsetxattr function.])
+ dnl AC_DEFINE_UNQUOTED(FSETXATTR_ARGS, $tst_nargs_fsetxattr,
+ dnl [Specifies the number of arguments to fsetxattr])
+ #
+ if test "$tst_nargs_fsetxattr" -eq "5"; then
+ AC_DEFINE(HAVE_FSETXATTR_5, 1, [fsetxattr() takes 5 args])
+ elif test "$tst_nargs_fsetxattr" -eq "6"; then
+ AC_DEFINE(HAVE_FSETXATTR_6, 1, [fsetxattr() takes 6 args])
+ fi
+ #
+ ac_cv_func_fsetxattr="yes"
+ else
+ AC_MSG_RESULT([no])
+ ac_cv_func_fsetxattr="no"
+ fi
+])
+
+
dnl CURL_CHECK_FUNC_FTRUNCATE
dnl -------------------------------------------------
dnl Verify if ftruncate is available, prototyped, and
@@ -2535,6 +3043,128 @@ AC_DEFUN([CURL_CHECK_FUNC_GETSERVBYPORT_R], [
])
+dnl CURL_CHECK_FUNC_GETXATTR
+dnl -------------------------------------------------
+dnl Verify if getxattr is available, prototyped, and
+dnl can be compiled. If all of these are true, and
+dnl usage has not been previously disallowed with
+dnl shell variable curl_disallow_getxattr, then
+dnl HAVE_GETXATTR will be defined.
+
+AC_DEFUN([CURL_CHECK_FUNC_GETXATTR], [
+ AC_REQUIRE([CURL_INCLUDES_SYS_XATTR])dnl
+ #
+ tst_links_getxattr="unknown"
+ tst_proto_getxattr="unknown"
+ tst_compi_getxattr="unknown"
+ tst_allow_getxattr="unknown"
+ tst_nargs_getxattr="unknown"
+ #
+ AC_MSG_CHECKING([if getxattr can be linked])
+ AC_LINK_IFELSE([
+ AC_LANG_FUNC_LINK_TRY([getxattr])
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_links_getxattr="yes"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_links_getxattr="no"
+ ])
+ #
+ if test "$tst_links_getxattr" = "yes"; then
+ AC_MSG_CHECKING([if getxattr is prototyped])
+ AC_EGREP_CPP([getxattr],[
+ $curl_includes_sys_xattr
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_proto_getxattr="yes"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_proto_getxattr="no"
+ ])
+ fi
+ #
+ if test "$tst_proto_getxattr" = "yes"; then
+ if test "$tst_nargs_getxattr" = "unknown"; then
+ AC_MSG_CHECKING([if getxattr takes 4 args.])
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
+ $curl_includes_sys_xattr
+ ]],[[
+ if(0 != getxattr(0, 0, 0, 0))
+ return 1;
+ ]])
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_compi_getxattr="yes"
+ tst_nargs_getxattr="4"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_compi_getxattr="no"
+ ])
+ fi
+ if test "$tst_nargs_getxattr" = "unknown"; then
+ AC_MSG_CHECKING([if getxattr takes 6 args.])
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
+ $curl_includes_sys_xattr
+ ]],[[
+ if(0 != getxattr(0, 0, 0, 0, 0, 0))
+ return 1;
+ ]])
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_compi_getxattr="yes"
+ tst_nargs_getxattr="6"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_compi_getxattr="no"
+ ])
+ fi
+ AC_MSG_CHECKING([if getxattr is compilable])
+ if test "$tst_compi_getxattr" = "yes"; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ fi
+ fi
+ #
+ if test "$tst_compi_getxattr" = "yes"; then
+ AC_MSG_CHECKING([if getxattr usage allowed])
+ if test "x$curl_disallow_getxattr" != "xyes"; then
+ AC_MSG_RESULT([yes])
+ tst_allow_getxattr="yes"
+ else
+ AC_MSG_RESULT([no])
+ tst_allow_getxattr="no"
+ fi
+ fi
+ #
+ AC_MSG_CHECKING([if getxattr might be used])
+ if test "$tst_links_getxattr" = "yes" &&
+ test "$tst_proto_getxattr" = "yes" &&
+ test "$tst_compi_getxattr" = "yes" &&
+ test "$tst_allow_getxattr" = "yes"; then
+ AC_MSG_RESULT([yes])
+ AC_DEFINE_UNQUOTED(HAVE_GETXATTR, 1,
+ [Define to 1 if you have the getxattr function.])
+ dnl AC_DEFINE_UNQUOTED(GETXATTR_ARGS, $tst_nargs_getxattr,
+ dnl [Specifies the number of arguments to getxattr])
+ #
+ if test "$tst_nargs_getxattr" -eq "4"; then
+ AC_DEFINE(HAVE_GETXATTR_4, 1, [getxattr() takes 4 args])
+ elif test "$tst_nargs_getxattr" -eq "6"; then
+ AC_DEFINE(HAVE_GETXATTR_6, 1, [getxattr() takes 6 args])
+ fi
+ #
+ ac_cv_func_getxattr="yes"
+ else
+ AC_MSG_RESULT([no])
+ ac_cv_func_getxattr="no"
+ fi
+])
+
+
dnl CURL_CHECK_FUNC_GMTIME_R
dnl -------------------------------------------------
dnl Verify if gmtime_r is available, prototyped, can
@@ -3574,6 +4204,128 @@ AC_DEFUN([CURL_CHECK_FUNC_IOCTLSOCKET_CAMEL_FIONBIO], [
])
+dnl CURL_CHECK_FUNC_LISTXATTR
+dnl -------------------------------------------------
+dnl Verify if listxattr is available, prototyped, and
+dnl can be compiled. If all of these are true, and
+dnl usage has not been previously disallowed with
+dnl shell variable curl_disallow_listxattr, then
+dnl HAVE_LISTXATTR will be defined.
+
+AC_DEFUN([CURL_CHECK_FUNC_LISTXATTR], [
+ AC_REQUIRE([CURL_INCLUDES_SYS_XATTR])dnl
+ #
+ tst_links_listxattr="unknown"
+ tst_proto_listxattr="unknown"
+ tst_compi_listxattr="unknown"
+ tst_allow_listxattr="unknown"
+ tst_nargs_listxattr="unknown"
+ #
+ AC_MSG_CHECKING([if listxattr can be linked])
+ AC_LINK_IFELSE([
+ AC_LANG_FUNC_LINK_TRY([listxattr])
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_links_listxattr="yes"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_links_listxattr="no"
+ ])
+ #
+ if test "$tst_links_listxattr" = "yes"; then
+ AC_MSG_CHECKING([if listxattr is prototyped])
+ AC_EGREP_CPP([listxattr],[
+ $curl_includes_sys_xattr
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_proto_listxattr="yes"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_proto_listxattr="no"
+ ])
+ fi
+ #
+ if test "$tst_proto_listxattr" = "yes"; then
+ if test "$tst_nargs_listxattr" = "unknown"; then
+ AC_MSG_CHECKING([if listxattr takes 3 args.])
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
+ $curl_includes_sys_xattr
+ ]],[[
+ if(0 != listxattr(0, 0, 0))
+ return 1;
+ ]])
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_compi_listxattr="yes"
+ tst_nargs_listxattr="3"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_compi_listxattr="no"
+ ])
+ fi
+ if test "$tst_nargs_listxattr" = "unknown"; then
+ AC_MSG_CHECKING([if listxattr takes 4 args.])
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
+ $curl_includes_sys_xattr
+ ]],[[
+ if(0 != listxattr(0, 0, 0, 0))
+ return 1;
+ ]])
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_compi_listxattr="yes"
+ tst_nargs_listxattr="4"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_compi_listxattr="no"
+ ])
+ fi
+ AC_MSG_CHECKING([if listxattr is compilable])
+ if test "$tst_compi_listxattr" = "yes"; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ fi
+ fi
+ #
+ if test "$tst_compi_listxattr" = "yes"; then
+ AC_MSG_CHECKING([if listxattr usage allowed])
+ if test "x$curl_disallow_listxattr" != "xyes"; then
+ AC_MSG_RESULT([yes])
+ tst_allow_listxattr="yes"
+ else
+ AC_MSG_RESULT([no])
+ tst_allow_listxattr="no"
+ fi
+ fi
+ #
+ AC_MSG_CHECKING([if listxattr might be used])
+ if test "$tst_links_listxattr" = "yes" &&
+ test "$tst_proto_listxattr" = "yes" &&
+ test "$tst_compi_listxattr" = "yes" &&
+ test "$tst_allow_listxattr" = "yes"; then
+ AC_MSG_RESULT([yes])
+ AC_DEFINE_UNQUOTED(HAVE_LISTXATTR, 1,
+ [Define to 1 if you have the listxattr function.])
+ dnl AC_DEFINE_UNQUOTED(LISTXATTR_ARGS, $tst_nargs_listxattr,
+ dnl [Specifies the number of arguments to listxattr])
+ #
+ if test "$tst_nargs_listxattr" -eq "3"; then
+ AC_DEFINE(HAVE_LISTXATTR_3, 1, [listxattr() takes 3 args])
+ elif test "$tst_nargs_listxattr" -eq "4"; then
+ AC_DEFINE(HAVE_LISTXATTR_4, 1, [listxattr() takes 4 args])
+ fi
+ #
+ ac_cv_func_listxattr="yes"
+ else
+ AC_MSG_RESULT([no])
+ ac_cv_func_listxattr="no"
+ fi
+])
+
+
dnl CURL_CHECK_FUNC_LOCALTIME_R
dnl -------------------------------------------------
dnl Verify if localtime_r is available, prototyped, can
@@ -3924,6 +4676,128 @@ AC_DEFUN([CURL_CHECK_FUNC_POLL], [
])
+dnl CURL_CHECK_FUNC_REMOVEXATTR
+dnl -------------------------------------------------
+dnl Verify if removexattr is available, prototyped, and
+dnl can be compiled. If all of these are true, and
+dnl usage has not been previously disallowed with
+dnl shell variable curl_disallow_removexattr, then
+dnl HAVE_REMOVEXATTR will be defined.
+
+AC_DEFUN([CURL_CHECK_FUNC_REMOVEXATTR], [
+ AC_REQUIRE([CURL_INCLUDES_SYS_XATTR])dnl
+ #
+ tst_links_removexattr="unknown"
+ tst_proto_removexattr="unknown"
+ tst_compi_removexattr="unknown"
+ tst_allow_removexattr="unknown"
+ tst_nargs_removexattr="unknown"
+ #
+ AC_MSG_CHECKING([if removexattr can be linked])
+ AC_LINK_IFELSE([
+ AC_LANG_FUNC_LINK_TRY([removexattr])
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_links_removexattr="yes"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_links_removexattr="no"
+ ])
+ #
+ if test "$tst_links_removexattr" = "yes"; then
+ AC_MSG_CHECKING([if removexattr is prototyped])
+ AC_EGREP_CPP([removexattr],[
+ $curl_includes_sys_xattr
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_proto_removexattr="yes"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_proto_removexattr="no"
+ ])
+ fi
+ #
+ if test "$tst_proto_removexattr" = "yes"; then
+ if test "$tst_nargs_removexattr" = "unknown"; then
+ AC_MSG_CHECKING([if removexattr takes 2 args.])
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
+ $curl_includes_sys_xattr
+ ]],[[
+ if(0 != removexattr(0, 0))
+ return 1;
+ ]])
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_compi_removexattr="yes"
+ tst_nargs_removexattr="2"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_compi_removexattr="no"
+ ])
+ fi
+ if test "$tst_nargs_removexattr" = "unknown"; then
+ AC_MSG_CHECKING([if removexattr takes 3 args.])
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
+ $curl_includes_sys_xattr
+ ]],[[
+ if(0 != removexattr(0, 0, 0))
+ return 1;
+ ]])
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_compi_removexattr="yes"
+ tst_nargs_removexattr="3"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_compi_removexattr="no"
+ ])
+ fi
+ AC_MSG_CHECKING([if removexattr is compilable])
+ if test "$tst_compi_removexattr" = "yes"; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ fi
+ fi
+ #
+ if test "$tst_compi_removexattr" = "yes"; then
+ AC_MSG_CHECKING([if removexattr usage allowed])
+ if test "x$curl_disallow_removexattr" != "xyes"; then
+ AC_MSG_RESULT([yes])
+ tst_allow_removexattr="yes"
+ else
+ AC_MSG_RESULT([no])
+ tst_allow_removexattr="no"
+ fi
+ fi
+ #
+ AC_MSG_CHECKING([if removexattr might be used])
+ if test "$tst_links_removexattr" = "yes" &&
+ test "$tst_proto_removexattr" = "yes" &&
+ test "$tst_compi_removexattr" = "yes" &&
+ test "$tst_allow_removexattr" = "yes"; then
+ AC_MSG_RESULT([yes])
+ AC_DEFINE_UNQUOTED(HAVE_REMOVEXATTR, 1,
+ [Define to 1 if you have the removexattr function.])
+ dnl AC_DEFINE_UNQUOTED(REMOVEXATTR_ARGS, $tst_nargs_removexattr,
+ dnl [Specifies the number of arguments to removexattr])
+ #
+ if test "$tst_nargs_removexattr" -eq "2"; then
+ AC_DEFINE(HAVE_REMOVEXATTR_2, 1, [removexattr() takes 2 args])
+ elif test "$tst_nargs_removexattr" -eq "3"; then
+ AC_DEFINE(HAVE_REMOVEXATTR_3, 1, [removexattr() takes 3 args])
+ fi
+ #
+ ac_cv_func_removexattr="yes"
+ else
+ AC_MSG_RESULT([no])
+ ac_cv_func_removexattr="no"
+ fi
+])
+
+
dnl CURL_CHECK_FUNC_SETSOCKOPT
dnl -------------------------------------------------
dnl Verify if setsockopt is available, prototyped, and
@@ -4075,6 +4949,128 @@ AC_DEFUN([CURL_CHECK_FUNC_SETSOCKOPT_SO_NONBLOCK], [
])
+dnl CURL_CHECK_FUNC_SETXATTR
+dnl -------------------------------------------------
+dnl Verify if setxattr is available, prototyped, and
+dnl can be compiled. If all of these are true, and
+dnl usage has not been previously disallowed with
+dnl shell variable curl_disallow_setxattr, then
+dnl HAVE_SETXATTR will be defined.
+
+AC_DEFUN([CURL_CHECK_FUNC_SETXATTR], [
+ AC_REQUIRE([CURL_INCLUDES_SYS_XATTR])dnl
+ #
+ tst_links_setxattr="unknown"
+ tst_proto_setxattr="unknown"
+ tst_compi_setxattr="unknown"
+ tst_allow_setxattr="unknown"
+ tst_nargs_setxattr="unknown"
+ #
+ AC_MSG_CHECKING([if setxattr can be linked])
+ AC_LINK_IFELSE([
+ AC_LANG_FUNC_LINK_TRY([setxattr])
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_links_setxattr="yes"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_links_setxattr="no"
+ ])
+ #
+ if test "$tst_links_setxattr" = "yes"; then
+ AC_MSG_CHECKING([if setxattr is prototyped])
+ AC_EGREP_CPP([setxattr],[
+ $curl_includes_sys_xattr
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_proto_setxattr="yes"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_proto_setxattr="no"
+ ])
+ fi
+ #
+ if test "$tst_proto_setxattr" = "yes"; then
+ if test "$tst_nargs_setxattr" = "unknown"; then
+ AC_MSG_CHECKING([if setxattr takes 5 args.])
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
+ $curl_includes_sys_xattr
+ ]],[[
+ if(0 != setxattr(0, 0, 0, 0, 0))
+ return 1;
+ ]])
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_compi_setxattr="yes"
+ tst_nargs_setxattr="5"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_compi_setxattr="no"
+ ])
+ fi
+ if test "$tst_nargs_setxattr" = "unknown"; then
+ AC_MSG_CHECKING([if setxattr takes 6 args.])
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
+ $curl_includes_sys_xattr
+ ]],[[
+ if(0 != setxattr(0, 0, 0, 0, 0, 0))
+ return 1;
+ ]])
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_compi_setxattr="yes"
+ tst_nargs_setxattr="6"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_compi_setxattr="no"
+ ])
+ fi
+ AC_MSG_CHECKING([if setxattr is compilable])
+ if test "$tst_compi_setxattr" = "yes"; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ fi
+ fi
+ #
+ if test "$tst_compi_setxattr" = "yes"; then
+ AC_MSG_CHECKING([if setxattr usage allowed])
+ if test "x$curl_disallow_setxattr" != "xyes"; then
+ AC_MSG_RESULT([yes])
+ tst_allow_setxattr="yes"
+ else
+ AC_MSG_RESULT([no])
+ tst_allow_setxattr="no"
+ fi
+ fi
+ #
+ AC_MSG_CHECKING([if setxattr might be used])
+ if test "$tst_links_setxattr" = "yes" &&
+ test "$tst_proto_setxattr" = "yes" &&
+ test "$tst_compi_setxattr" = "yes" &&
+ test "$tst_allow_setxattr" = "yes"; then
+ AC_MSG_RESULT([yes])
+ AC_DEFINE_UNQUOTED(HAVE_SETXATTR, 1,
+ [Define to 1 if you have the setxattr function.])
+ dnl AC_DEFINE_UNQUOTED(SETXATTR_ARGS, $tst_nargs_setxattr,
+ dnl [Specifies the number of arguments to setxattr])
+ #
+ if test "$tst_nargs_setxattr" -eq "5"; then
+ AC_DEFINE(HAVE_SETXATTR_5, 1, [setxattr() takes 5 args])
+ elif test "$tst_nargs_setxattr" -eq "6"; then
+ AC_DEFINE(HAVE_SETXATTR_6, 1, [setxattr() takes 6 args])
+ fi
+ #
+ ac_cv_func_setxattr="yes"
+ else
+ AC_MSG_RESULT([no])
+ ac_cv_func_setxattr="no"
+ fi
+])
+
+
dnl CURL_CHECK_FUNC_SIGACTION
dnl -------------------------------------------------
dnl Verify if sigaction is available, prototyped, and
diff --git a/packages/AIX/Makefile.in b/packages/AIX/Makefile.in
index fe45453f..09d13857 100644
--- a/packages/AIX/Makefile.in
+++ b/packages/AIX/Makefile.in
@@ -262,9 +262,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign packages/AIX/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu packages/AIX/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --foreign packages/AIX/Makefile
+ $(AUTOMAKE) --gnu packages/AIX/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
diff --git a/packages/AIX/RPM/Makefile.in b/packages/AIX/RPM/Makefile.in
index 42f73d77..7c4a5554 100644
--- a/packages/AIX/RPM/Makefile.in
+++ b/packages/AIX/RPM/Makefile.in
@@ -253,9 +253,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign packages/AIX/RPM/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu packages/AIX/RPM/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --foreign packages/AIX/RPM/Makefile
+ $(AUTOMAKE) --gnu packages/AIX/RPM/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
diff --git a/packages/Linux/Makefile.in b/packages/Linux/Makefile.in
index af05429d..cc2a0271 100644
--- a/packages/Linux/Makefile.in
+++ b/packages/Linux/Makefile.in
@@ -261,9 +261,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign packages/Linux/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu packages/Linux/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --foreign packages/Linux/Makefile
+ $(AUTOMAKE) --gnu packages/Linux/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
diff --git a/packages/Linux/RPM/Makefile.in b/packages/Linux/RPM/Makefile.in
index 22989473..46b69554 100644
--- a/packages/Linux/RPM/Makefile.in
+++ b/packages/Linux/RPM/Makefile.in
@@ -253,9 +253,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign packages/Linux/RPM/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu packages/Linux/RPM/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --foreign packages/Linux/RPM/Makefile
+ $(AUTOMAKE) --gnu packages/Linux/RPM/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
diff --git a/packages/Makefile.in b/packages/Makefile.in
index 9114470c..da71578b 100644
--- a/packages/Makefile.in
+++ b/packages/Makefile.in
@@ -291,9 +291,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign packages/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu packages/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --foreign packages/Makefile
+ $(AUTOMAKE) --gnu packages/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
diff --git a/packages/Solaris/Makefile.in b/packages/Solaris/Makefile.in
index 56809cad..951ac0cb 100644
--- a/packages/Solaris/Makefile.in
+++ b/packages/Solaris/Makefile.in
@@ -259,9 +259,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign packages/Solaris/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu packages/Solaris/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --foreign packages/Solaris/Makefile
+ $(AUTOMAKE) --gnu packages/Solaris/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
diff --git a/packages/Symbian/group/curl.mmp b/packages/Symbian/group/curl.mmp
index b25013c3..706cba68 100644
--- a/packages/Symbian/group/curl.mmp
+++ b/packages/Symbian/group/curl.mmp
@@ -9,7 +9,7 @@ UID 0x00000000 0xF0206442
SOURCEPATH ../../../src
SOURCE \
main.c hugehelp.c urlglob.c writeout.c writeenv.c \
- getpass.c homedir.c curlutil.c
+ getpass.c homedir.c curlutil.c os-specific.c xattr.c
SOURCEPATH ../../../lib
SOURCE \
diff --git a/packages/Win32/Makefile.in b/packages/Win32/Makefile.in
index eab258a4..a4e19309 100644
--- a/packages/Win32/Makefile.in
+++ b/packages/Win32/Makefile.in
@@ -262,9 +262,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign packages/Win32/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu packages/Win32/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --foreign packages/Win32/Makefile
+ $(AUTOMAKE) --gnu packages/Win32/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
diff --git a/packages/Win32/cygwin/Makefile.in b/packages/Win32/cygwin/Makefile.in
index 6a9f1665..ebcb34da 100644
--- a/packages/Win32/cygwin/Makefile.in
+++ b/packages/Win32/cygwin/Makefile.in
@@ -269,9 +269,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign packages/Win32/cygwin/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu packages/Win32/cygwin/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --foreign packages/Win32/cygwin/Makefile
+ $(AUTOMAKE) --gnu packages/Win32/cygwin/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
diff --git a/packages/vms/Makefile.am b/packages/vms/Makefile.am
index b6f09398..848b6274 100644
--- a/packages/vms/Makefile.am
+++ b/packages/vms/Makefile.am
@@ -1,5 +1,4 @@
EXTRA_DIST = build_vms.com \
- config-vms.h \
curlmsg.h \
curlmsg.msg \
curlmsg.sdl \
diff --git a/packages/vms/Makefile.in b/packages/vms/Makefile.in
index 3e83ae5d..65ea195f 100644
--- a/packages/vms/Makefile.in
+++ b/packages/vms/Makefile.in
@@ -240,7 +240,6 @@ subdirs = @subdirs@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
EXTRA_DIST = build_vms.com \
- config-vms.h \
curlmsg.h \
curlmsg.msg \
curlmsg.sdl \
@@ -269,9 +268,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign packages/vms/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu packages/vms/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --foreign packages/vms/Makefile
+ $(AUTOMAKE) --gnu packages/vms/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
diff --git a/packages/vms/build_vms.com b/packages/vms/build_vms.com
index 68d9f002..276e767d 100644
--- a/packages/vms/build_vms.com
+++ b/packages/vms/build_vms.com
@@ -426,7 +426,7 @@ $ define curl 'top_dev_dir'.include.curl]
$!
$! Copy the VMS-specific config file into the product directory.
$!
-$ call MoveIfDiff 'proc_dev_dir'config-vms.h 'objdir'curl_config.h
+$ call MoveIfDiff 'top_dev_dir'.lib]config-vms.h 'objdir'curl_config.h
$!
$ on control_y then goto Common_Exit
$!
diff --git a/src/Makefile.Watcom b/src/Makefile.Watcom
index 3d42303b..eb2e766b 100644
--- a/src/Makefile.Watcom
+++ b/src/Makefile.Watcom
@@ -5,9 +5,6 @@
!ifndef %watcom
!error WATCOM environment variable not set!
-!else
-SYS_INCL = -I$(%watcom)\h\nt -I$(%watcom)\h
-SYS_LIBS = $(%watcom)\lib386\nt;$(%watcom)\lib386
!endif
!ifdef %libname
@@ -33,18 +30,30 @@ RC = wrc
! endif
!endif
+!ifdef __LINUX__
+DS = /
+CP = cp
+MD = mkdir -p
+RD = rmdir -p
+RM = rm -f
+!else
+DS = $(X)\$(X)
+CP = copy 2>NUL
+MD = mkdir
+RD = rmdir /q /s 2>NUL
!if $(__VERSION__) < 1250
RM = del /q /f 2>NUL
!else
RM = rm -f
!endif
-MD = mkdir
-RD = rmdir /q /s 2>NUL
-CP = copy
+!endif
+
+SYS_INCL = -I$(%watcom)$(DS)h$(DS)nt -I$(%watcom)$(DS)h
+SYS_LIBS = $(%watcom)$(DS)lib386$(DS)nt;$(%watcom)$(DS)lib386
CFLAGS = -3r -mf -hc -zff -zgf -zq -zm -s -fr=con -w2 -fpi -oilrtfm &
-wcd=201 -bt=nt -bc -d+ -dWIN32 -dHAVE_STRTOLL &
- -I..\include -I..\lib $(SYS_INCL)
+ -I..$(DS)include -I..$(DS)lib $(SYS_INCL)
!ifdef %debug
DEBUG = -dDEBUG=1 -dDEBUGBUILD
@@ -63,39 +72,39 @@ CFLAGS += -d_WIN32_WINNT=0x0501 -dENABLE_IPV6
!ifdef %zlib_root
ZLIB_ROOT = $(%zlib_root)
!else
-ZLIB_ROOT = ..\..\zlib-1.2.5
+ZLIB_ROOT = ..$(DS)..$(DS)zlib-1.2.5
!endif
!ifdef %libssh2_root
LIBSSH2_ROOT = $(%libssh2_root)
!else
-LIBSSH2_ROOT = ..\..\libssh2-1.2.7
+LIBSSH2_ROOT = ..$(DS)..$(DS)libssh2-1.2.7
!endif
!ifdef %librtmp_root
LIBRTMP_ROOT = $(%librtmp_root)
!else
-LIBRTMP_ROOT = ..\..\librtmp-2.3
+LIBRTMP_ROOT = ..$(DS)..$(DS)rtmpdump-2.3
!endif
!ifdef %openssl_root
OPENSSL_ROOT = $(%openssl_root)
!else
-OPENSSL_ROOT = ..\..\openssl-0.9.8o
+OPENSSL_ROOT = ..$(DS)..$(DS)openssl-0.9.8q
!endif
!ifdef %ares_root
ARES_ROOT = $(%ares_root)
!else
-ARES_ROOT = ..\ares
+ARES_ROOT = ..$(DS)ares
!endif
!ifdef %use_ssl
-CFLAGS += -wcd=138 -dUSE_OPENSSL -dUSE_SSLEAY -I$(OPENSSL_ROOT)\inc32
+CFLAGS += -wcd=138 -dUSE_OPENSSL -dUSE_SSLEAY -I$(OPENSSL_ROOT)$(DS)inc32
!endif
OBJ_DIR = WC_Win32.obj
-LINK_ARG = $(OBJ_DIR)\wlink.arg
+LINK_ARG = $(OBJ_DIR)$(DS)wlink.arg
# In order to process Makefile.inc wmake must be called with -u switch!
!ifndef %MAKEFLAGS
@@ -114,9 +123,14 @@ CFLAGS += -DCURL_STATICLIB
CFLAGS += -br
OBJS += $(CURLX_SOURCES:.c=.obj)
!endif
+!ifdef __LINUX__
+OBJS = $OBJ_DIR/$(OBJS: = $OBJ_DIR/)
+
+!else
OBJS = $OBJ_DIR\$(OBJS: = $OBJ_DIR\)
+!endif
-RESOURCE = $(OBJ_DIR)\curl.res
+RESOURCE = $(OBJ_DIR)$(DS)curl.res
all: hugehelp.c $(OBJ_DIR) curl.exe .SYMBOLIC
@echo Welcome to cURL
@@ -142,10 +156,10 @@ curl.exe: $(OBJS) $(RESOURCE) $(LINK_ARG)
$(LD) name $^@ @$]@
$(RESOURCE): curl.rc
- $(RC) $(DEBUG) -q -r -zm -I..\include $(SYS_INCL) $[@ -fo=$^@
+ $(RC) $(DEBUG) -q -r -zm -bt=nt -I..$(DS)include $(SYS_INCL) $[@ -fo=$^@
# suffix search path - vpath-like hack
-.c: ..\lib
+.c: ..$(DS)lib
.ERASE
.c{$(OBJ_DIR)}.obj:
@@ -163,27 +177,27 @@ $(LINK_ARG): $(__MAKEFILES__)
@%append $^@ res=$(RESOURCE) libpath $(SYS_LIBS)
!ifdef %curl_static
@%append $^@ library wldap32.lib
- @%append $^@ library ..\lib\$(LIBNAME).lib
+ @%append $^@ library ..$(DS)lib$(DS)$(LIBNAME).lib
!ifdef %use_zlib
- @%append $^@ library $(ZLIB_ROOT)\zlib.lib
+ @%append $^@ library $(ZLIB_ROOT)$(DS)zlib.lib
!endif
!ifdef %use_rtmp
- @%append $^@ library $(LIBRTMP_ROOT)\librtmp\librtmp.lib, winmm.lib
+ @%append $^@ library $(LIBRTMP_ROOT)$(DS)librtmp$(DS)librtmp.lib, winmm.lib
!endif
!ifdef %use_ssh2
- @%append $^@ library $(LIBSSH2_ROOT)\win32\libssh2.lib
+ @%append $^@ library $(LIBSSH2_ROOT)$(DS)win32$(DS)libssh2.lib
!endif
!ifdef %use_ssl
- @%append $^@ library $(OPENSSL_ROOT)\out32\libeay32.lib, $(OPENSSL_ROOT)\out32\ssleay32.lib
+ @%append $^@ library $(OPENSSL_ROOT)$(DS)out32$(DS)libeay32.lib, $(OPENSSL_ROOT)$(DS)out32$(DS)ssleay32.lib
!endif
!ifdef %use_ares
- @%append $^@ library $(ARES_ROOT)\cares.lib
+ @%append $^@ library $(ARES_ROOT)$(DS)cares.lib
!endif
!else
- @%append $^@ library ..\lib\$(LIBNAME)_imp.lib
+ @%append $^@ library ..$(DS)lib$(DS)$(LIBNAME)_imp.lib
!endif
!ifeq USE_WATT32 1
- @%append $^@ library $(%watt_root)\lib\wattcpw_imp.lib
+ @%append $^@ library $(%watt_root)$(DS)lib$(DS)wattcpw_imp.lib
!else
@%append $^@ library ws2_32.lib
!endif
diff --git a/src/Makefile.am b/src/Makefile.am
index f2b4c8c6..8b3c0b6b 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -58,7 +58,7 @@ CLEANFILES = hugehelp.c
NROFF=env LC_ALL=C @NROFF@ @MANOPT@ # figured out by the configure script
EXTRA_DIST = mkhelp.pl makefile.dj Makefile.vc6 Makefile.b32 Makefile.m32 \
- Makefile.riscos curl_config.h.in macos/curl.mcp.xml.sit.hqx \
+ curl_config.h.in macos/curl.mcp.xml.sit.hqx \
macos/MACINSTALL.TXT macos/src/curl_GUSIConfig.cpp vc6curlsrc.dsp \
macos/src/macos_main.cpp config-amigaos.h makefile.amiga curl.rc \
Makefile.netware Makefile.inc Makefile.Watcom vc6curlsrc.dsw \
diff --git a/src/Makefile.in b/src/Makefile.in
index 962ac87a..eadbe48c 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -70,7 +70,8 @@ binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
PROGRAMS = $(bin_PROGRAMS)
am__objects_1 = main.$(OBJEXT) hugehelp.$(OBJEXT) urlglob.$(OBJEXT) \
writeout.$(OBJEXT) writeenv.$(OBJEXT) getpass.$(OBJEXT) \
- homedir.$(OBJEXT) curlutil.$(OBJEXT) os-specific.$(OBJEXT)
+ homedir.$(OBJEXT) curlutil.$(OBJEXT) os-specific.$(OBJEXT) \
+ xattr.$(OBJEXT)
am__objects_2 = strtoofft.$(OBJEXT) strdup.$(OBJEXT) rawstr.$(OBJEXT) \
nonblock.$(OBJEXT)
am__objects_3 =
@@ -331,11 +332,12 @@ CURLX_ONES = $(top_srcdir)/lib/strtoofft.c \
$(top_srcdir)/lib/nonblock.c
CURL_CFILES = main.c hugehelp.c urlglob.c writeout.c writeenv.c \
- getpass.c homedir.c curlutil.c os-specific.c
+ getpass.c homedir.c curlutil.c os-specific.c xattr.c
CURL_HFILES = hugehelp.h setup.h config-win32.h config-mac.h \
config-riscos.h urlglob.h version.h os-specific.h \
- writeout.h writeenv.h getpass.h homedir.h curlutil.h
+ writeout.h writeenv.h getpass.h homedir.h curlutil.h \
+ xattr.h
curl_SOURCES = $(CURL_CFILES) $(CURLX_ONES) $(CURL_HFILES)
curl_LDADD = $(top_builddir)/lib/libcurl.la @CURL_LIBS@
@@ -343,7 +345,7 @@ curl_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
BUILT_SOURCES = hugehelp.c
CLEANFILES = hugehelp.c
EXTRA_DIST = mkhelp.pl makefile.dj Makefile.vc6 Makefile.b32 Makefile.m32 \
- Makefile.riscos curl_config.h.in macos/curl.mcp.xml.sit.hqx \
+ curl_config.h.in macos/curl.mcp.xml.sit.hqx \
macos/MACINSTALL.TXT macos/src/curl_GUSIConfig.cpp vc6curlsrc.dsp \
macos/src/macos_main.cpp config-amigaos.h makefile.amiga curl.rc \
Makefile.netware Makefile.inc Makefile.Watcom vc6curlsrc.dsw \
@@ -455,6 +457,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/urlglob.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/writeenv.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/writeout.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xattr.Po@am__quote@
.c.o:
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
diff --git a/src/Makefile.inc b/src/Makefile.inc
index 34dfd45a..058c6d28 100644
--- a/src/Makefile.inc
+++ b/src/Makefile.inc
@@ -15,11 +15,12 @@ CURLX_ONES = $(top_srcdir)/lib/strtoofft.c \
$(top_srcdir)/lib/nonblock.c
CURL_CFILES = main.c hugehelp.c urlglob.c writeout.c writeenv.c \
- getpass.c homedir.c curlutil.c os-specific.c
+ getpass.c homedir.c curlutil.c os-specific.c xattr.c
CURL_HFILES = hugehelp.h setup.h config-win32.h config-mac.h \
config-riscos.h urlglob.h version.h os-specific.h \
- writeout.h writeenv.h getpass.h homedir.h curlutil.h
+ writeout.h writeenv.h getpass.h homedir.h curlutil.h \
+ xattr.h
curl_SOURCES = $(CURL_CFILES) $(CURLX_ONES) $(CURL_HFILES)
diff --git a/src/Makefile.m32 b/src/Makefile.m32
index dfe80927..f7d0d92d 100644
--- a/src/Makefile.m32
+++ b/src/Makefile.m32
@@ -20,7 +20,7 @@ ZLIB_PATH = ../../zlib-1.2.5
endif
# Edit the path below to point to the base of your OpenSSL package.
ifndef OPENSSL_PATH
-OPENSSL_PATH = ../../openssl-0.9.8o
+OPENSSL_PATH = ../../openssl-0.9.8q
endif
# Edit the path below to point to the base of your LibSSH2 package.
ifndef LIBSSH2_PATH
diff --git a/src/Makefile.netware b/src/Makefile.netware
index 3f5802ce..81482891 100644
--- a/src/Makefile.netware
+++ b/src/Makefile.netware
@@ -19,7 +19,7 @@ endif
# Edit the path below to point to the base of your OpenSSL package.
ifndef OPENSSL_PATH
-OPENSSL_PATH = ../../openssl-0.9.8o
+OPENSSL_PATH = ../../openssl-0.9.8q
endif
# Edit the path below to point to the base of your LibSSH2 package.
@@ -418,6 +418,7 @@ ifeq ($(LIBARCH),CLIB)
@echo $(DL)#define SEND_TYPE_ARG3 int$(DL) >> $@
@echo $(DL)#define SEND_TYPE_ARG4 int$(DL) >> $@
@echo $(DL)#define SEND_TYPE_RETV int$(DL) >> $@
+ @echo $(DL)#define SIZEOF_SIZE_T 4$(DL) >> $@
@echo $(DL)#define pressanykey PressAnyKeyToContinue$(DL) >> $@
else
@echo $(DL)#define OS "i586-pc-libc-NetWare"$(DL) >> $@
@@ -453,6 +454,7 @@ else
@echo $(DL)#define SEND_TYPE_ARG4 int$(DL) >> $@
@echo $(DL)#define SEND_TYPE_RETV ssize_t$(DL) >> $@
@echo $(DL)#define SIZEOF_OFF_T 8$(DL) >> $@
+ @echo $(DL)#define SIZEOF_SIZE_T 8$(DL) >> $@
@echo $(DL)#define _LARGEFILE 1$(DL) >> $@
ifdef ENABLE_IPV6
@echo $(DL)#define ENABLE_IPV6 1$(DL) >> $@
diff --git a/src/Makefile.riscos b/src/Makefile.riscos
deleted file mode 100644
index 35a194ff..00000000
--- a/src/Makefile.riscos
+++ /dev/null
@@ -1,64 +0,0 @@
-# Makefile for project cURL
-# Generated on Sun,13 Jan 2002.17:11:10 by EasyGCC (0.1.3 [beta 2] (3 Jan 2002))
-# Manually updated
-# Contact: easygcc@melotech.co.uk
-
-# Project objects:
-objs = o.hugehelp o.main o.urlglob o.writeout o.writeenv o.rawstr o.nonblock
-
-
-# Compile options:
-linkopts = ../lib/libcurl openldap:libraries/libldap/libldap -o curl
-compileropts = -mpoke-function-name -IUtilLib: -mthrowback
-
-# Project target:
-curl: $(objs)
- gcc $(linkopts) $(objs)
-
-# Static dependancies:
-o.hugehelp: c.hugehelp
- gcc $(compileropts) -c -o hugehelp.o c.hugehelp
-
-o.main: c.main
- gcc $(compileropts) -c -o main.o c.main
-
-o.os-specific: c.os-specific
- gcc $(compileropts) -c -o os-specific.o c.os-specific
-
-o.urlglob: c.urlglob
- gcc $(compileropts) -c -o urlglob.o c.urlglob
-
-o.writeout: c.writeout
- gcc $(compileropts) -c -o writeout.o c.writeout
-
-o.writeenv: c.writeenv
- gcc $(compileropts) -c -o writeenv.o c.writeenv
-
-o.rawstr: ../lib/c.rawstr
- gcc $(compileropts) -c -o rawstr.o ../lib/c.rawstr
-
-o.nonblock: ../lib/c.nonblock
- gcc $(compileropts) -c -o nonblock.o ../lib/c.nonblock
-
-# Dynamic dependancies:
-o.hugehelp: c.hugehelp
-
-o.main: c.main
-o.main: h.setup
-o.main: h.os-specific
-o.main: h.urlglob
-o.main: h.writeout
-o.main: h.version
-
-o.os-specific: c.os-specific
-o.os-specific: h.setup
-o.os-specific: h.os-specific
-
-o.urlglob: c.urlglob
-o.urlglob: h.setup
-o.urlglob: h.os-specific
-o.urlglob: h.urlglob
-
-o.writeout: c.writeout
-o.writeout: h.writeout
-
diff --git a/src/Makefile.vc10 b/src/Makefile.vc10
index 24d1b93d..ebabb1ab 100644
--- a/src/Makefile.vc10
+++ b/src/Makefile.vc10
@@ -91,31 +91,33 @@ CFLAGS = $(CFLAGS) /DUSE_WINDOWS_SSPI /I$(WINDOWS_SDK_PATH)\include
!ENDIF
RELEASE_OBJS= \
- hugehelpr.obj \
- writeoutr.obj \
- urlglobr.obj \
+ curlutilr.obj \
getpassr.obj \
homedirr.obj \
- curlutilr.obj \
- os-specificr.obj \
+ hugehelpr.obj \
+ mainr.obj \
nonblockr.obj \
+ os-specificr.obj \
rawstrr.obj \
strtoofftr.obj \
- mainr.obj \
+ urlglobr.obj \
+ writeoutr.obj \
+ xattrr.obj \
curlr.res
DEBUG_OBJS= \
- hugehelpd.obj \
- writeoutd.obj \
- urlglobd.obj \
+ curlutild.obj \
getpassd.obj \
homedird.obj \
- curlutild.obj \
- os-specificd.obj \
+ hugehelpd.obj \
+ maind.obj \
nonblockd.obj \
+ os-specificd.obj \
rawstrd.obj \
strtoofftd.obj \
- maind.obj \
+ urlglobd.obj \
+ writeoutd.obj \
+ xattrd.obj \
curld.res
#################################################
@@ -258,6 +260,8 @@ rawstrr.obj: ../lib/rawstr.c
$(CCR) $(CFLAGS) /Fo"$@" ../lib/rawstr.c
strtoofftr.obj: ../lib/strtoofft.c
$(CCR) $(CFLAGS) /Fo"$@" ../lib/strtoofft.c
+xattrr.obj: xattr.c
+ $(CCR) $(CFLAGS) /Fo"$@" xattr.c
mainr.obj: main.c
$(CCR) $(CFLAGS) /Fo"$@" main.c
curlr.res : curl.rc
@@ -284,6 +288,8 @@ rawstrd.obj: ../lib/rawstr.c
$(CCD) $(CFLAGS) /Fo"$@" ../lib/rawstr.c
strtoofftd.obj: ../lib/strtoofft.c
$(CCD) $(CFLAGS) /Fo"$@" ../lib/strtoofft.c
+xattrd.obj: xattr.c
+ $(CCD) $(CFLAGS) /Fo"$@" xattr.c
maind.obj: main.c
$(CCD) $(CFLAGS) /Fo"$@" main.c
curld.res : curl.rc
diff --git a/src/Makefile.vc6 b/src/Makefile.vc6
index 4a3480d2..da7a2a35 100644
--- a/src/Makefile.vc6
+++ b/src/Makefile.vc6
@@ -91,31 +91,33 @@ CFLAGS = $(CFLAGS) /DUSE_WINDOWS_SSPI /I$(WINDOWS_SDK_PATH)\include
!ENDIF
RELEASE_OBJS= \
- hugehelpr.obj \
- writeoutr.obj \
- urlglobr.obj \
+ curlutilr.obj \
getpassr.obj \
homedirr.obj \
- curlutilr.obj \
- os-specificr.obj \
+ hugehelpr.obj \
+ mainr.obj \
nonblockr.obj \
+ os-specificr.obj \
rawstrr.obj \
strtoofftr.obj \
- mainr.obj \
+ urlglobr.obj \
+ writeoutr.obj \
+ xattrr.obj \
curlr.res
DEBUG_OBJS= \
- hugehelpd.obj \
- writeoutd.obj \
- urlglobd.obj \
+ curlutild.obj \
getpassd.obj \
homedird.obj \
- curlutild.obj \
- os-specificd.obj \
+ hugehelpd.obj \
+ maind.obj \
nonblockd.obj \
+ os-specificd.obj \
rawstrd.obj \
strtoofftd.obj \
- maind.obj \
+ urlglobd.obj \
+ writeoutd.obj \
+ xattrd.obj \
curld.res
#################################################
@@ -258,6 +260,8 @@ rawstrr.obj: ../lib/rawstr.c
$(CCR) $(CFLAGS) /Fo"$@" ../lib/rawstr.c
strtoofftr.obj: ../lib/strtoofft.c
$(CCR) $(CFLAGS) /Fo"$@" ../lib/strtoofft.c
+xattrr.obj: xattr.c
+ $(CCR) $(CFLAGS) /Fo"$@" xattr.c
mainr.obj: main.c
$(CCR) $(CFLAGS) /Fo"$@" main.c
curlr.res : curl.rc
@@ -284,6 +288,8 @@ rawstrd.obj: ../lib/rawstr.c
$(CCD) $(CFLAGS) /Fo"$@" ../lib/rawstr.c
strtoofftd.obj: ../lib/strtoofft.c
$(CCD) $(CFLAGS) /Fo"$@" ../lib/strtoofft.c
+xattrd.obj: xattr.c
+ $(CCD) $(CFLAGS) /Fo"$@" xattr.c
maind.obj: main.c
$(CCD) $(CFLAGS) /Fo"$@" main.c
curld.res : curl.rc
diff --git a/src/Makefile.vc8 b/src/Makefile.vc8
index ffcb05f4..8ede3fe4 100644
--- a/src/Makefile.vc8
+++ b/src/Makefile.vc8
@@ -91,31 +91,33 @@ CFLAGS = $(CFLAGS) /DUSE_WINDOWS_SSPI /I$(WINDOWS_SDK_PATH)\include
!ENDIF
RELEASE_OBJS= \
- hugehelpr.obj \
- writeoutr.obj \
- urlglobr.obj \
+ curlutilr.obj \
getpassr.obj \
homedirr.obj \
- curlutilr.obj \
- os-specificr.obj \
+ hugehelpr.obj \
+ mainr.obj \
nonblockr.obj \
+ os-specificr.obj \
rawstrr.obj \
strtoofftr.obj \
- mainr.obj \
+ urlglobr.obj \
+ writeoutr.obj \
+ xattrr.obj \
curlr.res
DEBUG_OBJS= \
- hugehelpd.obj \
- writeoutd.obj \
- urlglobd.obj \
+ curlutild.obj \
getpassd.obj \
homedird.obj \
- curlutild.obj \
- os-specificd.obj \
+ hugehelpd.obj \
+ maind.obj \
nonblockd.obj \
+ os-specificd.obj \
rawstrd.obj \
strtoofftd.obj \
- maind.obj \
+ urlglobd.obj \
+ writeoutd.obj \
+ xattrd.obj \
curld.res
#################################################
@@ -258,6 +260,8 @@ rawstrr.obj: ../lib/rawstr.c
$(CCR) $(CFLAGS) /Fo"$@" ../lib/rawstr.c
strtoofftr.obj: ../lib/strtoofft.c
$(CCR) $(CFLAGS) /Fo"$@" ../lib/strtoofft.c
+xattrr.obj: xattr.c
+ $(CCR) $(CFLAGS) /Fo"$@" xattr.c
mainr.obj: main.c
$(CCR) $(CFLAGS) /Fo"$@" main.c
curlr.res : curl.rc
@@ -284,6 +288,8 @@ rawstrd.obj: ../lib/rawstr.c
$(CCD) $(CFLAGS) /Fo"$@" ../lib/rawstr.c
strtoofftd.obj: ../lib/strtoofft.c
$(CCD) $(CFLAGS) /Fo"$@" ../lib/strtoofft.c
+xattrd.obj: xattr.c
+ $(CCD) $(CFLAGS) /Fo"$@" xattr.c
maind.obj: main.c
$(CCD) $(CFLAGS) /Fo"$@" main.c
curld.res : curl.rc
diff --git a/src/Makefile.vc9 b/src/Makefile.vc9
index 5dd44f89..2d93e8b1 100644
--- a/src/Makefile.vc9
+++ b/src/Makefile.vc9
@@ -91,31 +91,33 @@ CFLAGS = $(CFLAGS) /DUSE_WINDOWS_SSPI /I$(WINDOWS_SDK_PATH)\include
!ENDIF
RELEASE_OBJS= \
- hugehelpr.obj \
- writeoutr.obj \
- urlglobr.obj \
+ curlutilr.obj \
getpassr.obj \
homedirr.obj \
- curlutilr.obj \
- os-specificr.obj \
+ hugehelpr.obj \
+ mainr.obj \
nonblockr.obj \
+ os-specificr.obj \
rawstrr.obj \
strtoofftr.obj \
- mainr.obj \
+ urlglobr.obj \
+ writeoutr.obj \
+ xattrr.obj \
curlr.res
DEBUG_OBJS= \
- hugehelpd.obj \
- writeoutd.obj \
- urlglobd.obj \
+ curlutild.obj \
getpassd.obj \
homedird.obj \
- curlutild.obj \
- os-specificd.obj \
+ hugehelpd.obj \
+ maind.obj \
nonblockd.obj \
+ os-specificd.obj \
rawstrd.obj \
strtoofftd.obj \
- maind.obj \
+ urlglobd.obj \
+ writeoutd.obj \
+ xattrd.obj \
curld.res
#################################################
@@ -258,6 +260,8 @@ rawstrr.obj: ../lib/rawstr.c
$(CCR) $(CFLAGS) /Fo"$@" ../lib/rawstr.c
strtoofftr.obj: ../lib/strtoofft.c
$(CCR) $(CFLAGS) /Fo"$@" ../lib/strtoofft.c
+xattrr.obj: xattr.c
+ $(CCR) $(CFLAGS) /Fo"$@" xattr.c
mainr.obj: main.c
$(CCR) $(CFLAGS) /Fo"$@" main.c
curlr.res : curl.rc
@@ -284,6 +288,8 @@ rawstrd.obj: ../lib/rawstr.c
$(CCD) $(CFLAGS) /Fo"$@" ../lib/rawstr.c
strtoofftd.obj: ../lib/strtoofft.c
$(CCD) $(CFLAGS) /Fo"$@" ../lib/strtoofft.c
+xattrd.obj: xattr.c
+ $(CCD) $(CFLAGS) /Fo"$@" xattr.c
maind.obj: main.c
$(CCD) $(CFLAGS) /Fo"$@" main.c
curld.res : curl.rc
diff --git a/src/curl_config.h.in b/src/curl_config.h.in
index 15ea387f..aaea103f 100644
--- a/src/curl_config.h.in
+++ b/src/curl_config.h.in
@@ -177,6 +177,15 @@
/* Define to 1 if you have the freeifaddrs function. */
#undef HAVE_FREEIFADDRS
+/* Define to 1 if you have the fsetxattr function. */
+#undef HAVE_FSETXATTR
+
+/* fsetxattr() takes 5 args */
+#undef HAVE_FSETXATTR_5
+
+/* fsetxattr() takes 6 args */
+#undef HAVE_FSETXATTR_6
+
/* Define to 1 if you have the ftruncate function. */
#undef HAVE_FTRUNCATE
@@ -397,6 +406,9 @@
/* Define to 1 if you have the `libssh2_scp_send64' function. */
#undef HAVE_LIBSSH2_SCP_SEND64
+/* Define to 1 if you have the `libssh2_session_handshake' function. */
+#undef HAVE_LIBSSH2_SESSION_HANDSHAKE
+
/* Define to 1 if you have the `libssh2_version' function. */
#undef HAVE_LIBSSH2_VERSION
@@ -701,6 +713,9 @@
/* Define to 1 if you have the <sys/utime.h> header file. */
#undef HAVE_SYS_UTIME_H
+/* Define to 1 if you have the <sys/xattr.h> header file. */
+#undef HAVE_SYS_XATTR_H
+
/* Define to 1 if you have the <termios.h> header file. */
#undef HAVE_TERMIOS_H
diff --git a/src/hugehelp.c b/src/hugehelp.c
index 0c1728ab..34bc3013 100644
--- a/src/hugehelp.c
+++ b/src/hugehelp.c
@@ -2,7 +2,7 @@
#ifndef HAVE_LIBZ
/*
* NEVER EVER edit this manually, fix the mkhelp.pl script instead!
- * Generation time: Wed Oct 6 19:13:33 2010
+ * Generation time: Wed Dec 15 15:06:02 2010
*/
#include "setup.h"
#ifdef USE_MANUAL
@@ -745,7 +745,7 @@ void hugehelp(void)
"\n"
, stdout);
fputs(
-" You can also explicitly change the name field of an 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\" url.com\n"
@@ -1616,21 +1616,40 @@ void hugehelp(void)
" timestamp of the remote file, and if that is available make the\n"
" local file get that same timestamp.\n"
"\n"
-" --retry <num>\n"
-" If a transient error is returned when curl tries to perform a\n"
+" --resolve <host:port:address>\n"
+" Provide a custom address for a specific host and port pair.\n"
+, stdout);
+ fputs(
+" Using this, you can make the curl requests(s) use a specified\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"
, stdout);
fputs(
+" same host but different ports.\n"
+"\n"
+" This option can be used many times to add many host names to\n"
+" resolve.\n"
+"\n"
+" (Added in 7.21.3)\n"
+"\n"
+" --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"
+, stdout);
+ fputs(
" default). Transient error means either: a timeout, an FTP 4xx\n"
" response code or an HTTP 5xx response code.\n"
"\n"
" When curl is about to retry a transfer, it will first wait one\n"
" second and then for all forthcoming retries it will double the\n"
-, stdout);
- fputs(
" 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"
+, stdout);
+ fputs(
" you disable this exponential backoff algorithm. See also\n"
" --retry-max-time to limit the total time allowed for retries.\n"
" (Added in 7.12.3)\n"
@@ -1639,31 +1658,31 @@ void hugehelp(void)
" decide the amount.\n"
"\n"
" --retry-delay <seconds>\n"
-, stdout);
- fputs(
" Make curl sleep this amount of time before each retry when a\n"
" transfer has failed with a transient error (it changes the\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. (Added in\n"
" 7.12.3)\n"
"\n"
" If this option is used multiple times, the last occurrence\n"
-, stdout);
- fputs(
" determines the amount.\n"
"\n"
" --retry-max-time <seconds>\n"
" The retry timer is reset before the first transfer attempt.\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"
-, stdout);
- fputs(
" single request's maximum time, use -m/--max-time. Set this\n"
" option to zero to not timeout retries. (Added in 7.12.3)\n"
"\n"
+, stdout);
+ fputs(
" If this option is used multiple times, the last occurrence\n"
" determines the amount.\n"
"\n"
@@ -1672,13 +1691,13 @@ void hugehelp(void)
" sages. Makes Curl mute.\n"
"\n"
" -S/--show-error\n"
-, stdout);
- fputs(
" When used with -s it makes curl show an error message if it\n"
" fails.\n"
"\n"
" --socks4 <host[:port]>\n"
" Use the specified SOCKS4 proxy. If the port number is not speci-\n"
+, stdout);
+ fputs(
" fied, it is assumed at port 1080. (Added in 7.15.2)\n"
"\n"
" This option overrides any previous use of -x/--proxy, as they\n"
@@ -1686,12 +1705,12 @@ void hugehelp(void)
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
-, stdout);
- fputs(
" --socks4a <host[:port]>\n"
" Use the specified SOCKS4a proxy. If the port number is not spec-\n"
" ified, it is assumed at port 1080. (Added in 7.18.0)\n"
"\n"
+, stdout);
+ fputs(
" This option overrides any previous use of -x/--proxy, as they\n"
" are mutually exclusive.\n"
"\n"
@@ -1699,11 +1718,11 @@ void hugehelp(void)
"\n"
" --socks5-hostname <host[:port]>\n"
" Use the specified SOCKS5 proxy (and let the proxy resolve the\n"
-, stdout);
- fputs(
" host name). If the port number is not specified, it is assumed\n"
" at port 1080. (Added in 7.18.0)\n"
"\n"
+, stdout);
+ fputs(
" This option overrides any previous use of -x/--proxy, as they\n"
" are mutually exclusive.\n"
"\n"
@@ -1712,9 +1731,9 @@ void hugehelp(void)
" --socks without the number appended.)\n"
"\n"
" --socks5 <host[:port]>\n"
+" Use the specified SOCKS5 proxy - but resolve the host name\n"
, stdout);
fputs(
-" Use the specified SOCKS5 proxy - but resolve the host name\n"
" locally. If the port number is not specified, it is assumed at\n"
" port 1080.\n"
"\n"
@@ -1723,10 +1742,10 @@ void hugehelp(void)
"\n"
" If this option is used several times, the last one will be used.\n"
" (This option was previously wrongly documented and used as\n"
-, stdout);
- fputs(
" --socks without the number appended.)\n"
"\n"
+, stdout);
+ fputs(
" This option (as well as --socks4) does not work with IPV6, FTPS\n"
" or LDAP.\n"
"\n"
@@ -1737,9 +1756,9 @@ void hugehelp(void)
" Examples:\n"
" --socks5 proxy-name --socks5-gssapi-service sockd would use\n"
" sockd/proxy-name\n"
+" --socks5 proxy-name --socks5-gssapi-service sockd/real-name\n"
, stdout);
fputs(
-" --socks5 proxy-name --socks5-gssapi-service sockd/real-name\n"
" would use sockd/real-name for cases where the proxy-name does\n"
" not match the princpal name.\n"
" (Added in 7.19.4).\n"
@@ -1748,9 +1767,9 @@ void hugehelp(void)
" As part of the gssapi negotiation a protection mode is negoti-\n"
" ated. The rfc1961 says in section 4.3/4.4 it should be pro-\n"
" tected, but the NEC reference implementation does not. The\n"
+" option --socks5-gssapi-nec allows the unprotected exchange of\n"
, stdout);
fputs(
-" option --socks5-gssapi-nec allows the unprotected exchange of\n"
" the protection mode negotiation. (Added in 7.19.4).\n"
"\n"
" --stderr <file>\n"
@@ -1759,11 +1778,11 @@ void hugehelp(void)
" This option has no point when you're using a shell with decent\n"
" redirecting capabilities.\n"
"\n"
-, stdout);
- fputs(
" If this option is used several times, the last one will be used.\n"
"\n"
" --tcp-nodelay\n"
+, stdout);
+ fputs(
" Turn on the TCP_NODELAY option. See the curl_easy_setopt(3) man\n"
" page for details about this option. (Added in 7.11.2)\n"
"\n"
@@ -1774,11 +1793,11 @@ void hugehelp(void)
"\n"
" XDISPLOC=<X display> Sets the X display location.\n"
"\n"
-, stdout);
- fputs(
" NEW_ENV=<var,val> Sets an environment variable.\n"
"\n"
" --tftp-blksize <value>\n"
+, stdout);
+ fputs(
" (TFTP) Set TFTP BLKSIZE option (must be >512). This is the block\n"
" size that curl will try to use when tranferring data to or from\n"
" a TFTP server. By default 512 bytes will be used.\n"
@@ -1788,28 +1807,28 @@ void hugehelp(void)
" (Added in 7.20.0)\n"
"\n"
" -T/--upload-file <file>\n"
+" This transfers the specified local file to the remote URL. If\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"
" 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 a HTTP(S) server, the PUT command will\n"
" be used.\n"
"\n"
+, stdout);
+ fputs(
" Use the file name \"-\" (a single dash) to use stdin instead of a\n"
" given file. Alternately, the file name \".\" (a single period)\n"
" 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"
+" You can specify one -T for each URL on the command line. Each -T\n"
, stdout);
fputs(
-" You can specify one -T for each URL on the command line. Each -T\n"
" + URL pair specifies what to upload and to where. curl also sup-\n"
" ports \"globbing\" of the -T argument, meaning that you can upload\n"
" multiple files to a single URL by using the same URL globbing\n"
@@ -1819,11 +1838,11 @@ void hugehelp(void)
"\n"
" or even\n"
"\n"
-, stdout);
- fputs(
" curl -T \"img[1-1000].png\" ftp://ftp.picturemania.com/upload/\n"
"\n"
" --trace <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"
@@ -1831,21 +1850,21 @@ void hugehelp(void)
" This option overrides previous uses of -v/--verbose or --trace-\n"
" ascii.\n"
"\n"
-, stdout);
- fputs(
" If this option is used several times, the last one will be used.\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"
" 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"
-, stdout);
- fputs(
" that might be easier to read for untrained humans.\n"
"\n"
+, stdout);
+ fputs(
" This option overrides previous uses of -v/--verbose or --trace.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
@@ -1856,10 +1875,10 @@ void hugehelp(void)
"\n"
" -u/--user <user:password>\n"
" Specify the user name and password to use for server authentica-\n"
-, stdout);
- fputs(
" tion. Overrides -n/--netrc and --netrc-optional.\n"
"\n"
+, stdout);
+ fputs(
" If you just give the user name (without entering a colon) curl\n"
" will prompt for a password.\n"
"\n"
@@ -1868,10 +1887,10 @@ void hugehelp(void)
" from your environment by simply specifying a single colon with\n"
" this option: \"-u :\".\n"
"\n"
-, stdout);
- fputs(
" If this option is used several times, the last one will be used.\n"
"\n"
+, stdout);
+ fputs(
" -U/--proxy-user <user:password>\n"
" Specify the user name and password to use for proxy authentica-\n"
" tion.\n"
@@ -1881,10 +1900,10 @@ void hugehelp(void)
" from your environment by simply specifying a single colon with\n"
" this option: \"-U :\".\n"
"\n"
-, stdout);
- fputs(
" If this option is used several times, the last one will be used.\n"
"\n"
+, stdout);
+ fputs(
" --url <URL>\n"
" Specify a URL to fetch. This option is mostly handy when you\n"
" want to specify URL(s) in a config file.\n"
@@ -1894,9 +1913,9 @@ void hugehelp(void)
" options.\n"
"\n"
" -v/--verbose\n"
+" Makes the fetching more verbose/talkative. Mostly useful for\n"
, stdout);
fputs(
-" Makes the fetching more verbose/talkative. Mostly useful for\n"
" debugging. A line starting with '>' means \"header data\" sent by\n"
" curl, '<' means \"header data\" received by curl that is hidden in\n"
" normal cases, and a line starting with '*' means additional info\n"
@@ -1905,9 +1924,9 @@ void hugehelp(void)
" Note that if you only want HTTP headers in the output,\n"
" -i/--include might be the option you're looking for.\n"
"\n"
+" If you think this option still doesn't give you enough details,\n"
, stdout);
fputs(
-" If you think this option still doesn't give you enough details,\n"
" consider using --trace or --trace-ascii instead.\n"
"\n"
" This option overrides previous uses of --trace-ascii or --trace.\n"
@@ -1917,10 +1936,10 @@ void hugehelp(void)
" -V/--version\n"
" Displays information about curl and the libcurl version it uses.\n"
" The first line includes the full version of curl, libcurl and\n"
-, stdout);
- fputs(
" 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"
@@ -2450,7 +2469,19 @@ void hugehelp(void)
"\n"
" 83 Issuer check failed (added in 7.19.0).\n"
"\n"
+" 84 The FTP PRET command failed\n"
+"\n"
+" 85 RTSP: mismatch of CSeq numbers\n"
+"\n"
+" 86 RTSP: mismatch of Session Identifiers\n"
+"\n"
+" 87 unable to parse FTP file list\n"
+"\n"
+" 88 FTP chunk callback reported error\n"
+"\n"
" XX More error codes will appear here in future releases. The exist-\n"
+, stdout);
+ fputs(
" ing ones are meant to never change.\n"
"\n"
"AUTHORS / CONTRIBUTORS\n"
@@ -2461,8 +2492,6 @@ void hugehelp(void)
" http://curl.haxx.se\n"
"\n"
"FTP\n"
-, stdout);
- fputs(
" ftp://ftp.sunet.se/pub/www/utilities/curl/\n"
"\n"
"SEE ALSO\n"
@@ -2477,6 +2506,8 @@ void hugehelp(void)
"\n"
"SIMPLE USAGE\n"
"\n"
+, stdout);
+ fputs(
" Get the main page from Netscape's web-server:\n"
"\n"
" curl http://www.netscape.com/\n"
@@ -2485,8 +2516,6 @@ void hugehelp(void)
"\n"
" curl ftp://ftp.funet.fi/README\n"
"\n"
-, stdout);
- fputs(
" Get a web page from a server using port 8000:\n"
"\n"
" curl http://www.weirdserver.com:8000/\n"
@@ -2501,14 +2530,14 @@ void hugehelp(void)
"\n"
" Fetch two documents at once:\n"
"\n"
+, stdout);
+ fputs(
" curl ftp://cool.haxx.se/ http://www.weirdserver.com:8000/\n"
"\n"
" Get a file off an FTPS server:\n"
"\n"
" curl ftps://files.are.secure.com/secrets.txt\n"
"\n"
-, stdout);
- fputs(
" or use the more appropriate FTPS way to get the same file:\n"
"\n"
" curl --ftp-ssl ftp://files.are.secure.com/secrets.txt\n"
@@ -2519,13 +2548,13 @@ void hugehelp(void)
"\n"
" Get a file from an SSH server using SCP using a private key to authenticate:\n"
"\n"
+, stdout);
+ fputs(
" curl -u username: --key ~/.ssh/id_dsa --pubkey ~/.ssh/id_dsa.pub \\\n"
" scp://shell.example.com/~/personal.txt\n"
"\n"
" Get the main page from an IPv6 web server:\n"
"\n"
-, stdout);
- fputs(
" curl -g \"http://[2001:1890:1112:1::20]/\"\n"
"\n"
"DOWNLOAD TO A FILE\n"
@@ -2536,14 +2565,14 @@ void hugehelp(void)
"\n"
" Get a web page and store in a local file, make the local file get the name\n"
" of the remote document (if no file name part is specified in the URL, this\n"
+, stdout);
+ fputs(
" will fail):\n"
"\n"
" curl -O http://www.netscape.com/index.html\n"
"\n"
" Fetch two files and store them with their remote names:\n"
"\n"
-, stdout);
- fputs(
" curl -O www.haxx.se/index.html -O curl.haxx.se/download.html\n"
"\n"
"USING PASSWORDS\n"
@@ -2560,11 +2589,11 @@ void hugehelp(void)
"\n"
" FTPS\n"
"\n"
+, stdout);
+ fputs(
" It is just like for FTP, but you may also want to specify and use\n"
" SSL-specific options for certificates etc.\n"
"\n"
-, stdout);
- fputs(
" Note that using FTPS:// as prefix is the \"implicit\" way as described in the\n"
" standards while the recommended \"explicit\" way is done by using FTP:// and\n"
" the --ftp-ssl option.\n"
@@ -2573,10 +2602,10 @@ void hugehelp(void)
"\n"
" This is similar to FTP, but you can specify a private key to use instead of\n"
" a password. Note that the private key may itself be protected by a password\n"
-" that is unrelated to the login password of the remote system. If you\n"
-" provide a private key file you must also provide a public key file.\n"
, stdout);
fputs(
+" that is unrelated to the login password of the remote system. If you\n"
+" provide a private key file you must also provide a public key file.\n"
"\n"
" HTTP\n"
"\n"
@@ -2589,16 +2618,18 @@ void hugehelp(void)
"\n"
" curl -u name:passwd http://machine.domain/full/path/to/file\n"
"\n"
-" HTTP offers many different methods of authentication and curl supports\n"
-" several: Basic, Digest, NTLM and Negotiate. Without telling which method to\n"
, stdout);
fputs(
+" HTTP offers many different methods of authentication and curl supports\n"
+" several: Basic, Digest, NTLM and Negotiate. Without telling which method to\n"
" use, curl defaults to Basic. You can also ask curl to pick the most secure\n"
" ones out of the ones that the server accepts for the given URL, by using\n"
" --anyauth.\n"
"\n"
" NOTE! Since HTTP URLs don't support user and password, you can't use that\n"
" style when using Curl via a proxy. You _must_ use the -u style fetch\n"
+, stdout);
+ fputs(
" during such circumstances.\n"
"\n"
" HTTPS\n"
@@ -2607,8 +2638,6 @@ void hugehelp(void)
"\n"
"PROXY\n"
"\n"
-, stdout);
- fputs(
" Get an ftp file using a proxy named my-proxy that uses port 888:\n"
"\n"
" curl -x my-proxy:888 ftp://ftp.leachsite.com/README\n"
@@ -2620,10 +2649,10 @@ void hugehelp(void)
"\n"
" Some proxies require special authentication. Specify by using -U as above:\n"
"\n"
-" curl -U user:passwd -x my-proxy:888 http://www.get.this/\n"
-"\n"
, stdout);
fputs(
+" curl -U user:passwd -x my-proxy:888 http://www.get.this/\n"
+"\n"
" A comma-separated list of hosts and domains which do not use the proxy can\n"
" be specified as:\n"
"\n"
@@ -2634,13 +2663,13 @@ void hugehelp(void)
"\n"
" curl also supports SOCKS4 and SOCKS5 proxies with --socks4 and --socks5.\n"
"\n"
+, stdout);
+ fputs(
" See also the environment variables Curl support that offer further proxy\n"
" control.\n"
"\n"
"RANGES\n"
"\n"
-, stdout);
- fputs(
" With HTTP 1.1 byte-ranges were introduced. Using this, a client can request\n"
" to get only one or more subparts of a specified document. Curl supports\n"
" this with the -r flag.\n"
@@ -2653,11 +2682,11 @@ void hugehelp(void)
"\n"
" curl -r -500 http://www.get.this/\n"
"\n"
+, stdout);
+ fputs(
" Curl also supports simple ranges for FTP files as well. Then you can only\n"
" specify start and stop position.\n"
"\n"
-, stdout);
- fputs(
" Get the first 100 bytes of a document using FTP:\n"
"\n"
" curl -r 0-99 ftp://www.get.this/README\n"
@@ -2674,11 +2703,11 @@ void hugehelp(void)
"\n"
" curl -T uploadfile -u user:passwd ftp://ftp.upload.com/myfile\n"
"\n"
+, stdout);
+ fputs(
" Upload a local file to the remote site, and use the local file name remote\n"
" too:\n"
"\n"
-, stdout);
- fputs(
" curl -T uploadfile -u user:passwd ftp://ftp.upload.com/\n"
"\n"
" Upload a local file to get appended to the remote file:\n"
@@ -2689,14 +2718,14 @@ void hugehelp(void)
" configured to allow that kind of tunneling. If it does, you can run curl in\n"
" a fashion similar to:\n"
"\n"
+, stdout);
+ fputs(
" curl --proxytunnel -x proxy:port -T localfile ftp.upload.com\n"
"\n"
" HTTP\n"
"\n"
" Upload all data on stdin to a specified http site:\n"
"\n"
-, stdout);
- fputs(
" curl -T - http://www.upload.com/myfile\n"
"\n"
" Note that the http server must have been configured to accept PUT before\n"
@@ -2707,10 +2736,10 @@ void hugehelp(void)
"VERBOSE / DEBUG\n"
"\n"
" If curl fails where it isn't supposed to, if the servers don't let you in,\n"
-" if you can't understand the responses: use the -v flag to get verbose\n"
-" fetching. Curl will output lots of info and what it sends and receives in\n"
, stdout);
fputs(
+" if you can't understand the responses: use the -v flag to get verbose\n"
+" fetching. Curl will output lots of info and what it sends and receives in\n"
" order to let the user see all client-server interaction (but it won't show\n"
" you the actual data).\n"
"\n"
@@ -2723,11 +2752,11 @@ void hugehelp(void)
" curl --trace trace.txt www.haxx.se\n"
"\n"
"\n"
+, stdout);
+ fputs(
"DETAILED INFORMATION\n"
"\n"
" Different protocols provide different ways of getting detailed information\n"
-, stdout);
- fputs(
" about specific files/documents. To get curl to show detailed information\n"
" about a single file, you should use -I/--head option. It displays all\n"
" available info on a single file for HTTP and FTP. The HTTP information is a\n"
@@ -2735,9 +2764,9 @@ void hugehelp(void)
"\n"
" For HTTP, you can get the header information (the same as -I would show)\n"
" shown before the data by using -i/--include. Curl understands the\n"
-" -D/--dump-header option when getting files from both FTP and HTTP, and it\n"
, stdout);
fputs(
+" -D/--dump-header option when getting files from both FTP and HTTP, and it\n"
" will then store the headers in the specified file.\n"
"\n"
" Store the HTTP headers in a separate file (headers.txt in the example):\n"
@@ -2750,11 +2779,11 @@ void hugehelp(void)
"\n"
"POST (HTTP)\n"
"\n"
+, stdout);
+ fputs(
" It's easy to post data using curl. This is done using the -d <data>\n"
" option. The post data must be urlencoded.\n"
"\n"
-, stdout);
- fputs(
" Post a simple \"name\" and \"phone\" guestbook.\n"
"\n"
" curl -d \"name=Rafael%20Sagula&phone=3320780\" \\\n"
@@ -2765,25 +2794,25 @@ void hugehelp(void)
" 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"
"\n"
+, stdout);
+ fputs(
" 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"
-, stdout);
- fputs(
" <variable1>=<data1>&<variable2>=<data2>&...\n"
"\n"
" 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"
" write weird letters with %XX where XX is the hexadecimal representation of\n"
+, stdout);
+ fputs(
" the letter's ASCII code.\n"
"\n"
" Example:\n"
"\n"
" (page located at http://www.formpost.com/getthis/\n"
"\n"
-, stdout);
- fputs(
" <form action=\"post.cgi\" method=\"post\">\n"
" <input name=user size=10>\n"
" <input name=pass type=password size=10>\n"
@@ -2795,21 +2824,21 @@ void hugehelp(void)
"\n"
" To post to this, you enter a curl command line like:\n"
"\n"
+, stdout);
+ fputs(
" curl -d \"user=foobar&pass=12345&id=blablabla&ding=submit\" (continues)\n"
" http://www.formpost.com/getthis/post.cgi\n"
"\n"
"\n"
-, stdout);
- fputs(
" While -d uses the application/x-www-form-urlencoded mime-type, generally\n"
" understood by CGI's and similar, curl also supports the more capable\n"
" multipart/form-data type. This latter type supports things like file upload.\n"
"\n"
" -F accepts parameters like -F \"name=contents\". If you want the contents to\n"
-" be read from a file, use <@filename> as contents. When specifying a file,\n"
-" you can also specify the file content type by appending ';type=<mime type>'\n"
, stdout);
fputs(
+" be read from a file, use <@filename> as contents. When specifying a file,\n"
+" you can also specify the file content type by appending ';type=<mime type>'\n"
" to the file name. You can also post the contents of several files in one\n"
" field. For example, the field name 'coolfiles' is used to send three files,\n"
" with different content types using the following syntax:\n"
@@ -2817,25 +2846,27 @@ void hugehelp(void)
" curl -F \"coolfiles=@fil1.gif;type=image/gif,fil2.txt,fil3.html\" \\\n"
" http://www.post.com/postit.cgi\n"
"\n"
-" If the content-type is not specified, curl will try to guess from the file\n"
-" extension (it only knows a few), or use the previously specified type (from\n"
, stdout);
fputs(
+" If the content-type is not specified, curl will try to guess from the file\n"
+" extension (it only knows a few), or use the previously specified type (from\n"
" an earlier file if several files are specified in a list) or else it will\n"
" using the default type 'text/plain'.\n"
"\n"
" Emulate a fill-in form with -F. Let's say you fill in three fields in a\n"
" form. One field is a file name which to post, one field is your name and one\n"
+, stdout);
+ fputs(
" field is a file description. We want to post the file we have written named\n"
" \"cooltext.txt\". To let curl do the posting of this data instead of your\n"
" favourite browser, you have to read the HTML source of the form page and\n"
-, stdout);
- fputs(
" find the names of the input fields. In our example, the input field names\n"
" are 'file', 'yourname' and 'filedescription'.\n"
"\n"
" curl -F \"file=@cooltext.txt\" -F \"yourname=Daniel\" \\\n"
" -F \"filedescription=Cool text file with cool text inside\" \\\n"
+, stdout);
+ fputs(
" http://www.post.com/postit.cgi\n"
"\n"
" To send two files in one post you can do it in two ways:\n"
@@ -2844,14 +2875,14 @@ void hugehelp(void)
"\n"
" curl -F \"pictures=@dog.gif,cat.gif\"\n"
"\n"
-, stdout);
- fputs(
" 2. Send two fields with two field names:\n"
"\n"
" curl -F \"docpicture=@dog.gif\" -F \"catpicture=@cat.gif\"\n"
"\n"
" To send a field value literally without interpreting a leading '@'\n"
" or '<', or an embedded ';type=', use --form-string instead of\n"
+, stdout);
+ fputs(
" -F. This is recommended when the value is obtained from a user or\n"
" some other unpredictable source. Under these circumstances, using\n"
" -F instead of --form-string would allow a user to trick curl into\n"
@@ -2859,11 +2890,11 @@ void hugehelp(void)
"\n"
"REFERRER\n"
"\n"
-, stdout);
- fputs(
" A HTTP request has the option to include information about which address\n"
" that referred to actual page. Curl allows you to specify the\n"
" referrer to be used on the command line. It is especially useful to\n"
+, stdout);
+ fputs(
" fool or trick stupid servers or CGI scripts that rely on that information\n"
" being available or contain certain data.\n"
"\n"
@@ -2873,11 +2904,11 @@ void hugehelp(void)
"\n"
"USER AGENT\n"
"\n"
-, stdout);
- fputs(
" A HTTP request has the option to include information about the browser\n"
" that generated the request. Curl allows it to be specified on the command\n"
" line. It is especially useful to fool or trick stupid servers or CGI\n"
+, stdout);
+ fputs(
" scripts that only accept certain browsers.\n"
"\n"
" Example:\n"
@@ -2887,49 +2918,49 @@ void hugehelp(void)
" Other common strings:\n"
" 'Mozilla/3.0 (Win95; I)' Netscape Version 3 for Windows 95\n"
" 'Mozilla/3.04 (Win95; U)' Netscape Version 3 for Windows 95\n"
-, stdout);
- fputs(
" 'Mozilla/2.02 (OS/2; U)' Netscape Version 2 for OS/2\n"
" 'Mozilla/4.04 [en] (X11; U; AIX 4.2; Nav)' NS for AIX\n"
" 'Mozilla/4.05 [en] (X11; U; Linux 2.0.32 i586)' NS for Linux\n"
"\n"
+, stdout);
+ fputs(
" Note that Internet Explorer tries hard to be compatible in every way:\n"
" 'Mozilla/4.0 (compatible; MSIE 4.01; Windows 95)' MSIE for W95\n"
"\n"
" Mozilla is not the only possible User-Agent name:\n"
" 'Konqueror/1.0' KDE File Manager desktop client\n"
-, stdout);
- fputs(
" 'Lynx/2.7.1 libwww-FM/2.14' Lynx command line browser\n"
"\n"
"COOKIES\n"
"\n"
" Cookies are generally used by web servers to keep state information at the\n"
" client's side. The server sets cookies by sending a response line in the\n"
+, stdout);
+ fputs(
" headers that looks like 'Set-Cookie: <data>' where the data part then\n"
" typically contains a set of NAME=VALUE pairs (separated by semicolons ';'\n"
" like \"NAME1=VALUE1; NAME2=VALUE2;\"). The server can also specify for what\n"
-, stdout);
- fputs(
" path the \"cookie\" should be used for (by specifying \"path=value\"), when the\n"
" cookie should expire (\"expire=DATE\"), for what domain to use it\n"
" (\"domain=NAME\") and if it should be used on secure connections only\n"
" (\"secure\").\n"
"\n"
+, stdout);
+ fputs(
" If you've received a page from a server that contains a header like:\n"
" Set-Cookie: sessionid=boo123; path=\"/foo\";\n"
"\n"
" it means the server wants that first pair passed on when we get anything in\n"
" a path beginning with \"/foo\".\n"
"\n"
-, stdout);
- fputs(
" Example, get a page that wants my name passed in a cookie:\n"
"\n"
" curl -b \"name=Daniel\" www.sillypage.com\n"
"\n"
" Curl also has the ability to use previously received cookies in following\n"
" sessions. If you get cookies from a server and store them in a file in a\n"
+, stdout);
+ fputs(
" manner similar to:\n"
"\n"
" curl --dump-header headers www.example.com\n"
@@ -2939,36 +2970,36 @@ void hugehelp(void)
"\n"
" curl -b headers www.example.com\n"
"\n"
-, stdout);
- fputs(
" While saving headers to a file is a working way to store cookies, it is\n"
" however error-prone and not the preferred way to do this. Instead, make curl\n"
" save the incoming cookies using the well-known netscape cookie format like\n"
" this:\n"
"\n"
+, stdout);
+ fputs(
" curl -c cookies.txt www.example.com\n"
"\n"
" Note that by specifying -b you enable the \"cookie awareness\" and with -L\n"
" you can make curl follow a location: (which often is used in combination\n"
-, stdout);
- fputs(
" with cookies). So that if a site sends cookies and a location, you can\n"
" use a non-existing file to trigger the cookie awareness like:\n"
"\n"
" curl -L -b empty.txt www.example.com\n"
"\n"
" The file to read cookies from must be formatted using plain HTTP headers OR\n"
+, stdout);
+ fputs(
" as netscape's cookie file. Curl will determine what kind it is based on the\n"
" file contents. In the above command, curl will parse the header and store\n"
" the cookies received from www.example.com. curl will send to the server the\n"
-, stdout);
- fputs(
" stored cookies which match the request as it follows the location. The\n"
" file \"empty.txt\" may be a nonexistent file.\n"
"\n"
" Alas, to both read and write cookies from a netscape cookie file, you can\n"
" set both -b and -c to use the same file:\n"
"\n"
+, stdout);
+ fputs(
" curl -b cookies.txt -c cookies.txt www.example.com\n"
"\n"
"PROGRESS METER\n"
@@ -2976,31 +3007,29 @@ void hugehelp(void)
" The progress meter exists to show a user that something actually is\n"
" happening. The different fields in the output have the following meaning:\n"
"\n"
-, stdout);
- fputs(
" % Total % Received % Xferd Average Speed Time Curr.\n"
" Dload Upload Total Current Left Speed\n"
" 0 151M 0 38608 0 0 9406 0 4:41:43 0:00:04 4:41:39 9287\n"
"\n"
" From left-to-right:\n"
+, stdout);
+ fputs(
" % - percentage completed of the whole transfer\n"
" Total - total size of the whole expected transfer\n"
" % - percentage completed of the download\n"
" Received - currently downloaded amount of bytes\n"
-, stdout);
- fputs(
" % - percentage completed of the upload\n"
" Xferd - currently uploaded amount of bytes\n"
" Average Speed\n"
" Dload - the average transfer speed of the download\n"
" Average Speed\n"
" Upload - the average transfer speed of the upload\n"
+, stdout);
+ fputs(
" Time Total - expected time to complete the operation\n"
" Time Current - time passed since the invoke\n"
" Time Left - expected time left to completion\n"
" Curr.Speed - the average transfer speed the last 5 seconds (the first\n"
-, stdout);
- fputs(
" 5 seconds of a transfer is based on less time of course.)\n"
"\n"
" The -# option will display a totally different progress bar that doesn't\n"
@@ -3008,32 +3037,34 @@ void hugehelp(void)
"\n"
"SPEED LIMIT\n"
"\n"
+, stdout);
+ fputs(
" Curl allows the user to set the transfer speed conditions that must be met\n"
" to let the transfer keep going. By using the switch -y and -Y you\n"
" can make curl abort transfers if the transfer speed is below the specified\n"
" lowest limit for a specified time.\n"
"\n"
-, stdout);
- fputs(
" To have curl abort the download if the speed is slower than 3000 bytes per\n"
" second for 1 minute, run:\n"
"\n"
" curl -Y 3000 -y 60 www.far-away-site.com\n"
"\n"
" This can very well be used in combination with the overall time limit, so\n"
+, stdout);
+ fputs(
" that the above operation must be completed in whole within 30 minutes:\n"
"\n"
" curl -m 1800 -Y 3000 -y 60 www.far-away-site.com\n"
"\n"
" Forcing curl not to transfer data faster than a given rate is also possible,\n"
-, stdout);
- fputs(
" which might be useful if you're using a limited bandwidth connection and you\n"
" don't want your transfer to use all of it (sometimes referred to as\n"
" \"bandwidth throttle\").\n"
"\n"
" Make curl transfer data no faster than 10 kilobytes per second:\n"
"\n"
+, stdout);
+ fputs(
" curl --limit-rate 10K www.far-away-site.com\n"
"\n"
" or\n"
@@ -3044,11 +3075,11 @@ void hugehelp(void)
"\n"
" curl -T upload --limit-rate 1M ftp://uploadshereplease.com\n"
"\n"
-, stdout);
- fputs(
" When using the --limit-rate option, the transfer rate is regulated on a\n"
" per-second basis, which will cause the total transfer speed to become lower\n"
" than the given number. Sometimes of course substantially lower, if your\n"
+, stdout);
+ fputs(
" transfer stalls during periods.\n"
"\n"
"CONFIG FILE\n"
@@ -3057,19 +3088,17 @@ void hugehelp(void)
" systems) from the user's home dir on startup.\n"
"\n"
" The config file could be made up with normal command line switches, but you\n"
-, stdout);
- fputs(
" can also specify the long options without the dashes to make it more\n"
" readable. You can separate the options and the parameter with spaces, or\n"
" with = or :. Comments can be used within the file. If the first letter on a\n"
+, stdout);
+ fputs(
" line is a '#'-symbol the rest of the line is treated as a comment.\n"
"\n"
" If you want the parameter to contain spaces, you must enclose the entire\n"
" parameter within double quotes (\"). Within those quotes, you specify a\n"
" quote as \\\".\n"
"\n"
-, stdout);
- fputs(
" NOTE: You must specify options and their arguments on the same line.\n"
"\n"
" Example, set default time out and proxy in a config file:\n"
@@ -3077,14 +3106,14 @@ void hugehelp(void)
" # We want a 30 minute timeout:\n"
" -m 1800\n"
" # ... and we use a proxy for all accesses:\n"
+, stdout);
+ fputs(
" proxy = proxy.our.domain.com:8080\n"
"\n"
" White spaces ARE significant at the end of lines, but all white spaces\n"
" leading up to the first characters of each line are ignored.\n"
"\n"
" Prevent curl from reading the default file by using -q as the first command\n"
-, stdout);
- fputs(
" line parameter, like:\n"
"\n"
" curl -q www.thatsite.com\n"
@@ -3093,13 +3122,13 @@ void hugehelp(void)
" without URL by making a config file similar to:\n"
"\n"
" # default url to get\n"
+, stdout);
+ fputs(
" url = \"http://help.with.curl.com/curlhelp.html\"\n"
"\n"
" You can specify another config file to be read by using the -K/--config\n"
" flag. If you set config file name to \"-\" it'll read the config from stdin,\n"
" which can be handy if you want to hide options from being visible in process\n"
-, stdout);
- fputs(
" tables etc:\n"
"\n"
" echo \"user = user:passwd\" | curl -K - http://that.secret.site.com\n"
@@ -3107,6 +3136,8 @@ void hugehelp(void)
"EXTRA HEADERS\n"
"\n"
" When using curl in your own very special programs, you may end up needing\n"
+, stdout);
+ fputs(
" to pass on your own custom headers when getting a web page. You can do\n"
" this by using the -H flag.\n"
"\n"
@@ -3116,10 +3147,10 @@ void hugehelp(void)
" curl -H \"X-you-and-me: yes\" www.love.com\n"
"\n"
" This can also be useful in case you want curl to send a different text in a\n"
-, stdout);
- fputs(
" header than it normally does. The -H header you specify then replaces the\n"
" header curl would normally send. If you replace an internal header with an\n"
+, stdout);
+ fputs(
" empty one, you prevent that header from being sent. To prevent the Host:\n"
" header from being used:\n"
"\n"
@@ -3131,11 +3162,11 @@ void hugehelp(void)
" relative the directory you enter. To get the file 'README' from your home\n"
" directory at your ftp site, do:\n"
"\n"
-, stdout);
- fputs(
" curl ftp://user:passwd@my.site.com/README\n"
"\n"
" But if you want the README file from the root directory of that very same\n"
+, stdout);
+ fputs(
" site, you need to specify the absolute file name:\n"
"\n"
" curl ftp://user:passwd@my.site.com//README\n"
@@ -3146,37 +3177,37 @@ void hugehelp(void)
"\n"
" With sftp: and scp: URLs, the path name given is the absolute name on the\n"
" server. To access a file relative to the remote user's home directory,\n"
-, stdout);
- fputs(
" prefix the file with /~/ , such as:\n"
"\n"
" curl -u $USER sftp://home.example.com/~/.bashrc\n"
"\n"
"FTP and firewalls\n"
"\n"
+, stdout);
+ fputs(
" The FTP protocol requires one of the involved parties to open a second\n"
" connection as soon as data is about to get transfered. There are two ways to\n"
" do this.\n"
"\n"
" The default way for curl is to issue the PASV command which causes the\n"
" server to open another port and await another connection performed by the\n"
-, stdout);
- fputs(
" client. This is good if the client is behind a firewall that don't allow\n"
" incoming connections.\n"
"\n"
" curl ftp.download.com\n"
"\n"
+, stdout);
+ fputs(
" If the server for example, is behind a firewall that don't allow connections\n"
" on other ports than 21 (or if it just doesn't support the PASV command), the\n"
" other way to do it is to use the PORT command and instruct the server to\n"
" connect to the client on the given (as parameters to the PORT command) IP\n"
" number and port.\n"
"\n"
-, stdout);
- fputs(
" The -P flag to curl supports a few different options. Your machine may have\n"
" several IP-addresses and/or network interfaces and curl allows you to select\n"
+, stdout);
+ fputs(
" which of them to use. Default address can also be used:\n"
"\n"
" curl -P - ftp.download.com\n"
@@ -3188,14 +3219,14 @@ void hugehelp(void)
"\n"
" Download with PORT but use 192.168.0.10 as our IP address to use:\n"
"\n"
-, stdout);
- fputs(
" curl -P 192.168.0.10 ftp.download.com\n"
"\n"
"NETWORK INTERFACE\n"
"\n"
" Get a web page from a server using a specified port for the interface:\n"
"\n"
+, stdout);
+ fputs(
" curl --interface eth0:1 http://www.netscape.com/\n"
"\n"
" or\n"
@@ -3210,30 +3241,30 @@ void hugehelp(void)
"\n"
" Example:\n"
"\n"
-, stdout);
- fputs(
" curl https://www.secure-site.com\n"
"\n"
" Curl is also capable of using your personal certificates to get/post files\n"
+, stdout);
+ fputs(
" from sites that require valid certificates. The only drawback is that the\n"
" certificate needs to be in PEM-format. PEM is a standard and open format to\n"
" store certificates with, but it is not used by the most commonly used\n"
" browsers (Netscape and MSIE both use the so called PKCS#12 format). If you\n"
-, stdout);
- fputs(
" want curl to use the certificates you use with your (favourite) browser, you\n"
" may need to download/compile a converter that can convert your browser's\n"
+, stdout);
+ fputs(
" formatted certificates to PEM formatted ones. This kind of converter is\n"
" included in recent versions of OpenSSL, and for older versions Dr Stephen\n"
" N. Henson has written a patch for SSLeay that adds this functionality. You\n"
" can get his patch (that requires an SSLeay installation) from his site at:\n"
" http://www.drh-consultancy.demon.co.uk/\n"
-, stdout);
- fputs(
"\n"
" Example on how to automatically retrieve a document using a certificate with\n"
" a personal password:\n"
"\n"
+, stdout);
+ fputs(
" curl -E /path/to/cert.pem:password https://secure.site.com/\n"
"\n"
" If you neglect to specify the password on the command line, you will be\n"
@@ -3241,10 +3272,10 @@ void hugehelp(void)
"\n"
" Many older SSL-servers have problems with SSLv3 or TLS, that newer versions\n"
" of OpenSSL etc is using, therefore it is sometimes useful to specify what\n"
-, stdout);
- fputs(
" SSL-version curl should use. Use -3, -2 or -1 to specify that exact SSL\n"
" version to use (for SSLv3, SSLv2 or TLSv1 respectively):\n"
+, stdout);
+ fputs(
"\n"
" curl -2 https://secure.site.com/\n"
"\n"
@@ -3256,12 +3287,12 @@ void hugehelp(void)
"\n"
" You start with hitting the 'security' menu button in netscape.\n"
"\n"
-, stdout);
- fputs(
" Select 'certificates->yours' and then pick a certificate in the list\n"
"\n"
" Press the 'export' button\n"
"\n"
+, stdout);
+ fputs(
" enter your PIN code for the certs\n"
"\n"
" select a proper place to save it\n"
@@ -3275,12 +3306,12 @@ void hugehelp(void)
"RESUMING FILE TRANSFERS\n"
"\n"
" To continue a file transfer where it was previously aborted, curl supports\n"
-, stdout);
- fputs(
" resume on http(s) downloads as well as ftp uploads and downloads.\n"
"\n"
" Continue downloading a document:\n"
"\n"
+, stdout);
+ fputs(
" curl -C - -o file ftp://ftp.server.com/path/file\n"
"\n"
" Continue uploading a document(*1):\n"
@@ -3294,11 +3325,11 @@ void hugehelp(void)
" (*1) = This requires that the ftp server supports the non-standard command\n"
" SIZE. If it doesn't, curl will say so.\n"
"\n"
-, stdout);
- fputs(
" (*2) = This requires that the web server supports at least HTTP/1.1. If it\n"
" doesn't, curl will say so.\n"
"\n"
+, stdout);
+ fputs(
"TIME CONDITIONS\n"
"\n"
" HTTP allows a client to specify a time condition for the document it\n"
@@ -3308,11 +3339,11 @@ void hugehelp(void)
" For example, you can easily make a download that only gets performed if the\n"
" remote file is newer than a local copy. It would be made like:\n"
"\n"
-, stdout);
- fputs(
" curl -z local.html http://remote.server.com/remote.html\n"
"\n"
" Or you can download a file only if the local file is newer than the remote\n"
+, stdout);
+ fputs(
" one. Do this by prepending the date string with a '-', as in:\n"
"\n"
" curl -z -local.html http://remote.server.com/remote.html\n"
@@ -3322,8 +3353,6 @@ void hugehelp(void)
"\n"
" curl -z \"Jan 12 2012\" http://remote.server.com/remote.html\n"
"\n"
-, stdout);
- fputs(
" Curl will then accept a wide range of date formats. You always make the date\n"
" check the other way around by prepending it with a dash '-'.\n"
"\n"
@@ -3331,6 +3360,8 @@ void hugehelp(void)
"\n"
" For fun try\n"
"\n"
+, stdout);
+ fputs(
" curl dict://dict.org/m:curl\n"
" curl dict://dict.org/d:heisenbug:jargon\n"
" curl dict://dict.org/d:daniel:web1913\n"
@@ -3340,14 +3371,14 @@ void hugehelp(void)
"\n"
" curl dict://dict.org/find:curl\n"
"\n"
-, stdout);
- fputs(
" Commands that break the URL description of the RFC (but not the DICT\n"
" protocol) are\n"
"\n"
" curl dict://dict.org/show:db\n"
" curl dict://dict.org/show:strat\n"
"\n"
+, stdout);
+ fputs(
" Authentication is still missing (but this is not required by the RFC)\n"
"\n"
"LDAP\n"
@@ -3356,13 +3387,13 @@ void hugehelp(void)
" and offer ldap:// support.\n"
"\n"
" LDAP is a complex thing and writing an LDAP query is not an easy task. I do\n"
-, stdout);
- fputs(
" advice you to dig up the syntax description for that elsewhere. Two places\n"
" that might suit you are:\n"
"\n"
" Netscape's \"Netscape Directory SDK 3.0 for C Programmer's Guide Chapter 10:\n"
" Working with LDAP URLs\":\n"
+, stdout);
+ fputs(
" http://developer.netscape.com/docs/manuals/dirsdk/csdk30/url.htm\n"
"\n"
" RFC 2255, \"The LDAP URL Format\" http://curl.haxx.se/rfc/rfc2255.txt\n"
@@ -3370,8 +3401,6 @@ void hugehelp(void)
" To show you an example, this is now I can get all people from my local LDAP\n"
" server that has a certain sub-domain in their email address:\n"
"\n"
-, stdout);
- fputs(
" curl -B \"ldap://ldap.frontec.se/o=frontec??sub?mail=*sth.frontec.se\"\n"
"\n"
" If I want the same info in HTML format, I can get it by not using the -B\n"
@@ -3379,6 +3408,8 @@ void hugehelp(void)
"\n"
"ENVIRONMENT VARIABLES\n"
"\n"
+, stdout);
+ fputs(
" Curl reads and understands the following environment variables:\n"
"\n"
" http_proxy, HTTPS_PROXY, FTP_PROXY\n"
@@ -3389,13 +3420,13 @@ void hugehelp(void)
" ALL_PROXY\n"
"\n"
" A comma-separated list of host names that shouldn't go through any proxy is\n"
-, stdout);
- fputs(
" set in (only an asterisk, '*' matches all hosts)\n"
"\n"
" NO_PROXY\n"
"\n"
" If the host name matches one of these strings, or the host is within the\n"
+, stdout);
+ fputs(
" domain of one of these strings, transactions with that node will not be\n"
" proxied.\n"
"\n"
@@ -3406,10 +3437,10 @@ void hugehelp(void)
"\n"
" Unix introduced the .netrc concept a long time ago. It is a way for a user\n"
" to specify name and password for commonly visited ftp sites in a file so\n"
-, stdout);
- fputs(
" that you don't have to type them in each time you visit those sites. You\n"
" realize this is a big security risk if someone else gets hold of your\n"
+, stdout);
+ fputs(
" passwords, so therefore most unix programs won't read this file unless it is\n"
" only readable by yourself (curl doesn't care though).\n"
"\n"
@@ -3417,14 +3448,14 @@ void hugehelp(void)
" --netrc-optional options). This is not restricted to only ftp,\n"
" but curl can use it for all protocols where authentication is used.\n"
"\n"
-, stdout);
- fputs(
" A very simple .netrc file could look something like:\n"
"\n"
" machine curl.haxx.se login iamdaniel password mysecret\n"
"\n"
"CUSTOM OUTPUT\n"
"\n"
+, stdout);
+ fputs(
" To better allow script programmers to get to know about the progress of\n"
" curl, the -w/--write-out option was introduced. Using this, you can specify\n"
" what information from the previous transfer you want to extract.\n"
@@ -3432,13 +3463,13 @@ void hugehelp(void)
" To display the amount of bytes downloaded together with some text and an\n"
" ending newline:\n"
"\n"
-, stdout);
- fputs(
" curl -w 'We downloaded %{size_download} bytes\\n' www.download.com\n"
"\n"
"KERBEROS FTP TRANSFER\n"
"\n"
" Curl supports kerberos4 and kerberos5/GSSAPI for FTP transfers. You need\n"
+, stdout);
+ fputs(
" the kerberos package installed and used at curl build time for it to be\n"
" used.\n"
"\n"
@@ -3447,13 +3478,13 @@ void hugehelp(void)
"\n"
" curl --krb private ftp://krb4site.com -u username:fakepwd\n"
"\n"
-, stdout);
- fputs(
" There's no use for a password on the -u switch, but a blank one will make\n"
" curl ask for one and you already entered the real password to kinit/kauth.\n"
"\n"
"TELNET\n"
"\n"
+, stdout);
+ fputs(
" The curl telnet support is basic and very easy to use. Curl passes all data\n"
" passed to it on stdin to the remote server. Connect to a remote telnet\n"
" server using a command line similar to:\n"
@@ -3461,13 +3492,13 @@ void hugehelp(void)
" curl telnet://remote.server.com\n"
"\n"
" And enter the data to pass to the server on stdin. The result will be sent\n"
-, stdout);
- fputs(
" to stdout or to the file you specify with -o.\n"
"\n"
" You might want the -N/--no-buffer option to switch off the buffered output\n"
" for slow connections or similar.\n"
"\n"
+, stdout);
+ fputs(
" Pass options to the telnet protocol negotiation, by using the -t option. To\n"
" tell the server we use a vt100 terminal, try something like:\n"
"\n"
@@ -3477,11 +3508,11 @@ void hugehelp(void)
"\n"
" - XDISPLOC=<X display> Sets the X display location.\n"
"\n"
-, stdout);
- fputs(
" - NEW_ENV=<var,val> Sets an environment variable.\n"
"\n"
" NOTE: the telnet protocol does not specify any way to login with a specified\n"
+, stdout);
+ fputs(
" user and password so curl can't do that automatically. To do that, you need\n"
" to track when the login prompt is received and send the username and\n"
" password accordingly.\n"
@@ -3491,20 +3522,20 @@ void hugehelp(void)
" Specifying multiple files on a single command line will make curl transfer\n"
" all of them, one after the other in the specified order.\n"
"\n"
-, stdout);
- fputs(
" libcurl will attempt to use persistent connections for the transfers so that\n"
" the second transfer to the same host can use the same connection that was\n"
+, stdout);
+ fputs(
" already initiated and was left open in the previous transfer. This greatly\n"
" decreases connection time for all but the first transfer and it makes a far\n"
" better use of the network.\n"
"\n"
" Note that curl cannot use persistent connections for transfers that are used\n"
" in subsequence curl invokes. Try to stuff as many URLs as possible on the\n"
-, stdout);
- fputs(
" same command line if they are using the same host, as that'll make the\n"
" transfers faster. If you use a http proxy for file transfers, practically\n"
+, stdout);
+ fputs(
" all transfers will be persistent.\n"
"\n"
"MULTIPLE TRANSFERS WITH A SINGLE COMMAND LINE\n"
@@ -3512,12 +3543,12 @@ void hugehelp(void)
" As is mentioned above, you can download multiple files with one command line\n"
" by simply adding more URLs. If you want those to get saved to a local file\n"
" instead of just printed to stdout, you need to add one save option for each\n"
-, stdout);
- fputs(
" URL you specify. Note that this also goes for the -O option (but not\n"
" --remote-name-all).\n"
"\n"
" For example: get two files and use -O for the first and a custom file\n"
+, stdout);
+ fputs(
" name for the second:\n"
"\n"
" curl -O http://url.com/file.txt ftp://ftp.com/moo.exe -o moo.jpg\n"
@@ -3529,21 +3560,21 @@ void hugehelp(void)
"IPv6\n"
"\n"
" curl will connect to a server with IPv6 when a host lookup returns an IPv6\n"
-, stdout);
- fputs(
" address and fall back to IPv4 if the connection fails. The --ipv4 and --ipv6\n"
" options can specify which address to use when both are available. IPv6\n"
+, stdout);
+ fputs(
" addresses can also be specified directly in URLs using the syntax:\n"
"\n"
" http://[2001:1890:1112:1::20]/overview.html\n"
"\n"
" When this style is used, the -g option must be given to stop curl from\n"
" interpreting the square brackets as special globbing characters. Link local\n"
-, stdout);
- fputs(
" and site local addresses including a scope identifier, such as fe80::1234%1,\n"
" may also be used, but the scope portion must be numeric and the percent\n"
" character must be URL escaped. The previous example in an SFTP URL might\n"
+, stdout);
+ fputs(
" look like:\n"
"\n"
" sftp://[fe80::1234%251]/\n"
@@ -3555,14 +3586,14 @@ void hugehelp(void)
"MAILING LISTS\n"
"\n"
" For your convenience, we have several open mailing lists to discuss curl,\n"
-, stdout);
- fputs(
" its development and things relevant to this. Get all info at\n"
" http://curl.haxx.se/mail/. Some of the lists available are:\n"
"\n"
" curl-users\n"
"\n"
" Users of the command line tool. How to use it, what doesn't work, new\n"
+, stdout);
+ fputs(
" features, related tools, questions, news, installations, compilations,\n"
" running, porting etc.\n"
"\n"
@@ -3572,8 +3603,6 @@ void hugehelp(void)
"\n"
" curl-announce\n"
"\n"
-, stdout);
- fputs(
" Low-traffic. Only receives announcements of new public versions. At worst,\n"
" that makes something like one or two mails per month, but usually only one\n"
" mail every second month.\n"
@@ -3581,6 +3610,8 @@ void hugehelp(void)
" curl-and-php\n"
"\n"
" Using the curl functions in PHP. Everything curl with a PHP angle. Or PHP\n"
+, stdout);
+ fputs(
" with a curl angle.\n"
"\n"
" curl-and-python\n"
@@ -3588,8 +3619,6 @@ void hugehelp(void)
" Python hackers using curl with or without the python binding pycurl.\n"
"\n"
" Please direct curl questions, feature requests and trouble reports to one of\n"
-, stdout);
- fputs(
" these mailing lists instead of mailing any individual.\n"
, stdout) ;
}
@@ -3597,7 +3626,7 @@ void hugehelp(void)
#else
/*
* NEVER EVER edit this manually, fix the mkhelp.pl script instead!
- * Generation time: Wed Oct 6 19:13:33 2010
+ * Generation time: Wed Dec 15 15:06:02 2010
*/
#include "setup.h"
#ifdef USE_MANUAL
@@ -3607,8 +3636,8 @@ void hugehelp(void)
#include <zlib.h>
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 shrunk from 132605
- to 40864 bytes. You can disable the use of compressed help
+ Thanks to this operation, the size of this data shrunk from 133613
+ to 41166 bytes. You can disable the use of compressed help
texts by NOT passing -c to the mkhelp.pl tool. */
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0xed, 0xbd,
0x69, 0x7b, 0x23, 0xc7, 0x91, 0x2e, 0xfa, 0x9d, 0xbf, 0xa2, 0x0c, 0x5d,
@@ -4447,2575 +4476,2600 @@ static const unsigned char hugehelpgz[] = {
0xbb, 0xf0, 0x9d, 0xfb, 0x64, 0xf4, 0xea, 0x0b, 0x0e, 0x39, 0x7c, 0x00,
0xbc, 0xab, 0xe0, 0x3c, 0x33, 0x0d, 0x6e, 0xf3, 0x9f, 0x9d, 0x88, 0x23,
0x4e, 0x5a, 0xd6, 0x9d, 0xb8, 0xf8, 0xba, 0x16, 0x03, 0x44, 0x94, 0xa0,
- 0xb5, 0xab, 0x2c, 0x5b, 0xdb, 0x98, 0x2b, 0x09, 0x88, 0xc5, 0x08, 0x92,
- 0x7a, 0x24, 0xc7, 0xc6, 0x53, 0xa1, 0x50, 0x1e, 0xef, 0xe2, 0x5c, 0xc1,
- 0xa5, 0x70, 0x0a, 0xdb, 0x90, 0x04, 0x46, 0x2b, 0x57, 0x39, 0xc2, 0xb2,
- 0x8a, 0x5f, 0xf5, 0xa4, 0xfa, 0x29, 0x2b, 0xab, 0xeb, 0x17, 0x84, 0x9f,
- 0x7e, 0xf5, 0x05, 0xd0, 0xca, 0xf8, 0xd7, 0x3f, 0xbb, 0xb7, 0xf9, 0x1f,
- 0xa2, 0x62, 0x62, 0x04, 0x6b, 0x27, 0xc2, 0xa2, 0xc8, 0xd5, 0x32, 0x87,
- 0x98, 0x91, 0xc8, 0x91, 0x94, 0xc2, 0x60, 0x06, 0x45, 0xac, 0xdc, 0xe4,
- 0xcd, 0xc1, 0xdb, 0x77, 0x07, 0xa7, 0x8f, 0xe6, 0xdc, 0x84, 0x96, 0x52,
- 0x17, 0x6b, 0x06, 0xc3, 0x65, 0x45, 0x70, 0xe4, 0xf3, 0xa8, 0x01, 0xff,
- 0x72, 0x13, 0x3e, 0x5e, 0x85, 0xc6, 0xe3, 0x50, 0xe8, 0xf5, 0x19, 0x82,
- 0x78, 0x78, 0x38, 0x21, 0xcb, 0x21, 0x50, 0x65, 0xa8, 0x35, 0x42, 0x1c,
- 0x8e, 0xcd, 0x3c, 0x96, 0xa2, 0x5c, 0xce, 0x8c, 0x31, 0x4d, 0x4b, 0x36,
- 0xb1, 0x32, 0x56, 0xe4, 0xa9, 0x16, 0xd9, 0xec, 0x7e, 0xd1, 0xc5, 0x1a,
- 0x74, 0x5f, 0x76, 0x79, 0x43, 0xf3, 0x78, 0xdc, 0x92, 0x2f, 0x53, 0xb8,
- 0x50, 0x8f, 0xa8, 0x2b, 0x54, 0xd3, 0xb5, 0x41, 0xe8, 0x9a, 0xc9, 0xc8,
- 0x10, 0xea, 0x31, 0xcf, 0x22, 0x75, 0x14, 0xc3, 0xa8, 0xd9, 0xe2, 0xa1,
- 0x02, 0xa4, 0x99, 0xcb, 0xf7, 0x95, 0x8a, 0x58, 0xb8, 0x16, 0xfc, 0xcc,
- 0x45, 0x03, 0xc9, 0x99, 0x63, 0x70, 0x24, 0x85, 0x40, 0x4b, 0xb6, 0x45,
- 0x87, 0xb8, 0xb5, 0xd1, 0xf1, 0xc8, 0x40, 0x38, 0x72, 0x87, 0x6e, 0xe5,
- 0x94, 0xc3, 0x74, 0x61, 0xe9, 0xa5, 0x2f, 0xaf, 0xaf, 0x35, 0x23, 0x19,
- 0x73, 0x06, 0x7e, 0x03, 0x4d, 0xba, 0x81, 0x6f, 0xa9, 0xf5, 0x6c, 0x89,
- 0x8c, 0xeb, 0xe0, 0x53, 0xfd, 0x6b, 0x12, 0x6b, 0xae, 0xa7, 0xd9, 0x28,
- 0xbb, 0xba, 0x7a, 0x84, 0x36, 0x24, 0x7f, 0x0c, 0x4d, 0x08, 0x5b, 0xee,
- 0x70, 0xe6, 0x08, 0xbf, 0x37, 0x92, 0x34, 0x3f, 0x54, 0x4b, 0x18, 0x88,
- 0x95, 0x53, 0x21, 0x4b, 0x1b, 0x93, 0x0a, 0x7c, 0x9c, 0xab, 0x5a, 0x81,
- 0x50, 0x94, 0x04, 0x15, 0x85, 0x47, 0xc3, 0x1d, 0x3d, 0xe8, 0x0c, 0x89,
- 0x36, 0x7f, 0xff, 0xc7, 0x8f, 0x3f, 0xb5, 0x80, 0x34, 0xb1, 0xeb, 0xc2,
- 0xc2, 0xfa, 0x39, 0xac, 0x59, 0xd3, 0x91, 0xe0, 0x24, 0x60, 0x83, 0x95,
- 0x87, 0x67, 0xd4, 0x92, 0x37, 0x41, 0xe8, 0x76, 0xf3, 0xc2, 0x28, 0x7c,
- 0x87, 0x56, 0x57, 0x55, 0xc3, 0x36, 0xa6, 0xc9, 0x75, 0x0c, 0xdc, 0x06,
- 0x7f, 0x79, 0xba, 0xdc, 0x57, 0x65, 0xd5, 0x4d, 0x00, 0x38, 0x97, 0xdb,
- 0x1e, 0x0a, 0x52, 0x30, 0x27, 0x5f, 0x9c, 0x38, 0x97, 0x4d, 0xb0, 0x11,
- 0x5f, 0xf1, 0x46, 0x34, 0x56, 0xcd, 0x03, 0x24, 0xf6, 0xea, 0xc1, 0xe6,
- 0x21, 0x2c, 0x01, 0xa0, 0x74, 0x05, 0x34, 0xa0, 0x0a, 0x0b, 0xb4, 0x16,
- 0x64, 0x2c, 0xcb, 0x6b, 0x38, 0x44, 0x22, 0x72, 0x79, 0x28, 0x46, 0x97,
- 0x39, 0xf7, 0xd5, 0xf1, 0x65, 0x64, 0xc0, 0x6f, 0x0d, 0xba, 0x0f, 0xca,
- 0xe6, 0x38, 0x08, 0x02, 0x87, 0x12, 0x27, 0x78, 0x15, 0xae, 0x70, 0xdf,
- 0x7d, 0x58, 0xbe, 0xa3, 0x4d, 0x09, 0x51, 0xc8, 0x21, 0xd1, 0xea, 0x0c,
- 0x8e, 0xc0, 0x2f, 0xdb, 0xa9, 0x41, 0xc3, 0x74, 0xff, 0xa3, 0xeb, 0xd1,
- 0x5f, 0xda, 0x22, 0x90, 0x2c, 0xc1, 0xad, 0x91, 0x76, 0xdf, 0x3f, 0xe9,
- 0x39, 0x40, 0x08, 0x5d, 0x2f, 0x59, 0x46, 0x37, 0x93, 0x51, 0x0b, 0xc0,
- 0xdb, 0xba, 0x71, 0x7c, 0x7d, 0x7c, 0x70, 0x64, 0x93, 0xfd, 0x1f, 0xc8,
- 0x9c, 0x77, 0x3e, 0xd0, 0x51, 0x22, 0xa0, 0x76, 0xcb, 0xb9, 0x95, 0x57,
- 0xc2, 0x9e, 0x39, 0xc3, 0x4d, 0x4b, 0xc4, 0x18, 0x89, 0x6c, 0x8c, 0x76,
- 0x2d, 0x9a, 0x1c, 0x4a, 0x04, 0x99, 0x83, 0x59, 0xa2, 0x2a, 0xdd, 0x7a,
- 0x84, 0x9e, 0xa1, 0xc0, 0xab, 0xd2, 0x5a, 0xff, 0x28, 0x28, 0x06, 0x18,
- 0x10, 0xf6, 0x0d, 0x52, 0xe2, 0xa6, 0x8b, 0x46, 0x6e, 0x54, 0x7c, 0xcd,
- 0x29, 0x97, 0xd3, 0x45, 0xf0, 0x6c, 0x90, 0x3e, 0xf7, 0x52, 0x7e, 0xae,
- 0xb9, 0x57, 0x8e, 0x01, 0x75, 0xa5, 0x8f, 0x86, 0x49, 0xa2, 0xd7, 0x41,
- 0xf1, 0x26, 0x92, 0x34, 0xf8, 0xca, 0xb8, 0x66, 0xa3, 0x2d, 0x6e, 0x7c,
- 0x62, 0xa1, 0xf5, 0x75, 0x08, 0x2a, 0x14, 0xfb, 0x0a, 0xe0, 0x49, 0xd0,
- 0x7a, 0x25, 0xdd, 0x4a, 0x93, 0xd7, 0xac, 0x6c, 0xd1, 0xa4, 0x51, 0x53,
- 0x86, 0xb8, 0x4d, 0x51, 0x92, 0x14, 0x68, 0x23, 0xe3, 0x97, 0x6e, 0xe2,
- 0x00, 0xd0, 0x4f, 0x20, 0x1c, 0xc4, 0xd3, 0xec, 0x8f, 0x8d, 0xf9, 0x35,
- 0x9b, 0x95, 0x3b, 0x9c, 0x62, 0xa7, 0xc0, 0x71, 0x4b, 0x6c, 0x1b, 0x84,
- 0x6d, 0x4e, 0xf6, 0xe7, 0x97, 0x34, 0xb1, 0x4f, 0xbb, 0x0c, 0xa3, 0xe9,
- 0xd6, 0x1c, 0x57, 0x15, 0xad, 0x9d, 0x33, 0x95, 0xc3, 0x09, 0x2a, 0x86,
- 0x13, 0x9e, 0xa3, 0xa5, 0x11, 0x22, 0x69, 0x0f, 0xa5, 0xdc, 0x1b, 0xb7,
- 0x1e, 0x5f, 0xc3, 0x45, 0xb9, 0xbc, 0xc2, 0x2c, 0x38, 0xcc, 0x46, 0x1c,
- 0x22, 0x18, 0xa8, 0xaf, 0x8d, 0x9a, 0xa1, 0x08, 0xb9, 0xad, 0x99, 0xe9,
- 0xfd, 0xf1, 0x78, 0x9d, 0x6f, 0x57, 0xa7, 0xe3, 0xab, 0xcf, 0x38, 0x56,
- 0xcf, 0xf6, 0x34, 0x29, 0x2b, 0x9e, 0xe4, 0xec, 0xe0, 0x60, 0x1b, 0x9b,
- 0x20, 0x7f, 0xdf, 0x37, 0x39, 0xba, 0xd6, 0xd8, 0x91, 0x44, 0x74, 0x2e,
- 0xe6, 0xc0, 0x76, 0x32, 0x49, 0x36, 0xd4, 0x69, 0xeb, 0x82, 0xd1, 0x15,
- 0x71, 0x9d, 0xde, 0x59, 0x59, 0x32, 0x8c, 0xac, 0x25, 0xe3, 0xcd, 0x06,
- 0x61, 0xb2, 0xbe, 0xfa, 0xf6, 0x05, 0x8e, 0x21, 0xe2, 0xec, 0xd8, 0x60,
- 0x3b, 0xc7, 0xd9, 0x14, 0xf8, 0x0d, 0x31, 0x5c, 0x09, 0xfb, 0x4c, 0xd8,
- 0x75, 0x3f, 0xdc, 0xd7, 0x24, 0xd5, 0xed, 0x77, 0xd6, 0xc4, 0xbb, 0x87,
- 0xac, 0xbd, 0x58, 0xe6, 0x56, 0x5d, 0x10, 0x41, 0x2a, 0x3a, 0x6a, 0xa0,
- 0xe2, 0x4f, 0x26, 0xdb, 0x3a, 0x62, 0x0b, 0xe6, 0x6a, 0x83, 0x32, 0xd4,
- 0x6c, 0x8d, 0x05, 0x82, 0x1a, 0x27, 0xfd, 0xec, 0xaa, 0x8f, 0x2a, 0x8d,
- 0x5c, 0x21, 0x8f, 0xd5, 0xb2, 0x80, 0xa0, 0x91, 0xba, 0x8b, 0x94, 0xc2,
- 0xc9, 0xa4, 0xed, 0x96, 0xd4, 0xc0, 0xf8, 0xdc, 0x59, 0xec, 0x74, 0x30,
- 0xba, 0x28, 0xfb, 0x6c, 0xe5, 0xb1, 0xd7, 0x1d, 0x40, 0x1b, 0xa3, 0x79,
- 0xc7, 0x79, 0x9e, 0xd2, 0x39, 0x6c, 0x80, 0x1a, 0x23, 0x8a, 0xb1, 0x27,
- 0x37, 0xa9, 0x84, 0x84, 0xb1, 0xaf, 0x67, 0x26, 0x4e, 0x3e, 0x38, 0x6a,
- 0x96, 0x0b, 0x88, 0x84, 0x9c, 0xb0, 0xdd, 0x26, 0xfb, 0xfa, 0x64, 0xb7,
- 0x5a, 0x89, 0x44, 0xf8, 0x2f, 0xc2, 0xdc, 0xe0, 0x75, 0x08, 0x27, 0xeb,
- 0x44, 0xe0, 0x20, 0xdf, 0x02, 0xac, 0x5a, 0x73, 0x01, 0xfc, 0x92, 0x6f,
- 0x8b, 0xe9, 0xb5, 0x2d, 0x16, 0x89, 0xdf, 0x32, 0xee, 0x11, 0xc8, 0xce,
- 0x5c, 0xc9, 0x7a, 0xb1, 0x1c, 0xcd, 0x26, 0xcf, 0xa2, 0x97, 0xf4, 0xcf,
- 0xe7, 0x2d, 0xbe, 0x73, 0x49, 0x2a, 0x57, 0x59, 0x58, 0x65, 0x21, 0xfc,
- 0xfe, 0x64, 0x8f, 0x4f, 0xc4, 0x03, 0xb5, 0x39, 0x4e, 0x11, 0x4a, 0x3a,
- 0x49, 0xaf, 0xd3, 0xb2, 0xd0, 0x34, 0x42, 0xbc, 0xb0, 0xb6, 0x5c, 0x16,
- 0xaf, 0xcf, 0xee, 0xde, 0x67, 0xd1, 0x28, 0x2d, 0xa3, 0x37, 0x47, 0xcf,
- 0xa4, 0xe0, 0x5e, 0xb1, 0x9c, 0xf9, 0xc2, 0xac, 0x00, 0x04, 0x46, 0xa5,
- 0xed, 0x2e, 0xc3, 0xf4, 0x2d, 0x47, 0xd3, 0x46, 0xed, 0x9b, 0xdb, 0x64,
- 0x55, 0x2b, 0x2a, 0xce, 0xb0, 0x63, 0x45, 0x52, 0xb7, 0xb3, 0x3b, 0x92,
- 0x43, 0xdd, 0x6e, 0xf5, 0xda, 0x37, 0x05, 0x7a, 0x9a, 0x3f, 0x8d, 0xa0,
- 0xb0, 0x6a, 0x5d, 0xb5, 0xe4, 0x7f, 0x90, 0x01, 0xef, 0xfb, 0xf0, 0xf0,
- 0x5c, 0xdc, 0x39, 0x08, 0xdd, 0x0b, 0x30, 0x24, 0x1e, 0xc3, 0xbe, 0xfd,
- 0xb4, 0x6a, 0x5a, 0x95, 0xb2, 0x9b, 0x86, 0x59, 0xd4, 0x27, 0xe5, 0xea,
- 0x7a, 0x5d, 0x2d, 0xc5, 0xe8, 0x04, 0xcf, 0xea, 0x31, 0x36, 0x8d, 0xf8,
- 0x14, 0x6f, 0x04, 0xa9, 0xcf, 0x72, 0xed, 0xf2, 0x41, 0x48, 0xc7, 0x5c,
- 0xd2, 0xb6, 0x81, 0xbe, 0xba, 0xf4, 0xf0, 0xc6, 0x56, 0xe0, 0x33, 0x5f,
- 0x0a, 0xa0, 0xf9, 0xc1, 0x82, 0xcd, 0x3c, 0xd1, 0xee, 0xe0, 0xa1, 0x17,
- 0x56, 0x17, 0x53, 0x00, 0x7c, 0x94, 0x11, 0x6b, 0x78, 0xa0, 0x10, 0x8e,
- 0x51, 0x1b, 0x0d, 0xb7, 0x2d, 0xf6, 0xb5, 0x29, 0x87, 0x27, 0xe5, 0xc2,
- 0x82, 0xf7, 0x88, 0x97, 0x5d, 0xc7, 0xc0, 0x5f, 0x0f, 0x28, 0x2f, 0xa5,
- 0x73, 0xa0, 0x90, 0x66, 0xeb, 0xe6, 0x2d, 0xdf, 0x06, 0xa0, 0xbe, 0x76,
- 0x0f, 0xab, 0x2c, 0x2e, 0xc1, 0xbd, 0x42, 0x6e, 0xc1, 0xd7, 0xcd, 0x22,
- 0x68, 0xdc, 0x8c, 0x3b, 0xbd, 0xd0, 0x7e, 0x65, 0x05, 0xfa, 0x7c, 0xf3,
- 0xf5, 0x22, 0xd4, 0x45, 0x77, 0x8c, 0xd2, 0x47, 0x35, 0x4b, 0xa3, 0xcd,
- 0x20, 0xfe, 0xc2, 0xea, 0xf8, 0x72, 0xa8, 0xd3, 0x60, 0x10, 0x1e, 0x27,
- 0x30, 0xf2, 0x2b, 0x66, 0x7e, 0xad, 0xb9, 0xdc, 0xe7, 0x82, 0x59, 0x18,
- 0x55, 0xeb, 0x53, 0x6b, 0xcd, 0xa9, 0x40, 0x4c, 0x76, 0xcd, 0x0c, 0x9c,
- 0x89, 0x24, 0xe1, 0x8f, 0xda, 0xae, 0x27, 0xf4, 0x26, 0x13, 0x09, 0xe2,
- 0x11, 0x68, 0x27, 0x5c, 0x91, 0xfa, 0x41, 0x74, 0x30, 0x37, 0x4d, 0x3c,
- 0xd2, 0x4a, 0x61, 0x48, 0xdc, 0x69, 0x54, 0x77, 0xb9, 0x4d, 0x1a, 0x26,
- 0x01, 0xb5, 0x09, 0x04, 0x33, 0x23, 0xb9, 0x6a, 0x67, 0x7f, 0x37, 0xac,
- 0x0b, 0x34, 0xd7, 0xf2, 0x11, 0x28, 0x96, 0xf3, 0xdb, 0x45, 0xdf, 0x9f,
- 0xa8, 0x24, 0xd6, 0x46, 0x2f, 0x0c, 0xbb, 0xbd, 0xfd, 0xfa, 0xe4, 0xf4,
- 0x78, 0x2b, 0x7a, 0x9d, 0x00, 0x57, 0xa4, 0x4a, 0x14, 0x38, 0xbe, 0xbf,
- 0x93, 0x4f, 0x8c, 0xfc, 0x55, 0x09, 0x6d, 0x8b, 0x1f, 0x51, 0x87, 0x05,
- 0xa4, 0x69, 0x39, 0x11, 0x98, 0x83, 0x64, 0x66, 0x65, 0x30, 0x5c, 0x1a,
- 0xb2, 0x3a, 0xc4, 0xd5, 0x00, 0xf4, 0xa3, 0xa5, 0xb8, 0x53, 0x1c, 0x85,
- 0xb5, 0x70, 0x3c, 0xde, 0x05, 0x93, 0x91, 0xc5, 0x01, 0xf3, 0xd8, 0xd5,
- 0x2a, 0x57, 0xa9, 0x8b, 0xbe, 0xae, 0x68, 0x5e, 0x91, 0xfe, 0x2c, 0xd1,
- 0xe8, 0x58, 0xb5, 0x59, 0x36, 0x71, 0xf8, 0x92, 0x52, 0xb2, 0x86, 0xe7,
- 0x1b, 0xac, 0xdd, 0x5f, 0x69, 0xed, 0xfe, 0xba, 0x9c, 0xdf, 0xf6, 0xb5,
- 0x34, 0xa1, 0x02, 0x7a, 0x14, 0xed, 0x67, 0xef, 0x3b, 0x17, 0x83, 0x82,
- 0xc0, 0x60, 0x31, 0x74, 0x36, 0x6b, 0xf4, 0xc5, 0x01, 0xbc, 0x5c, 0xef,
- 0xb1, 0x02, 0x3f, 0xa1, 0xf0, 0xc0, 0x91, 0xa3, 0x34, 0xb9, 0x31, 0x87,
- 0x25, 0xb3, 0x8e, 0xd8, 0xb1, 0x62, 0x89, 0xda, 0x74, 0x67, 0xe0, 0xb1,
- 0x15, 0x1b, 0x90, 0xb5, 0x85, 0xa6, 0x9d, 0xdd, 0x58, 0x8d, 0x3b, 0x08,
- 0xb0, 0x1a, 0x5b, 0x42, 0xa2, 0x40, 0xca, 0xb6, 0x4d, 0xba, 0xe6, 0x5d,
- 0x05, 0x46, 0x09, 0x4e, 0x64, 0x04, 0x59, 0x26, 0xa5, 0xda, 0x35, 0x2b,
- 0x09, 0x81, 0x91, 0x21, 0x7f, 0x17, 0x1e, 0xef, 0xc7, 0x06, 0x18, 0xd5,
- 0x06, 0x27, 0x02, 0x3d, 0xcb, 0x06, 0xdd, 0x06, 0xe1, 0x8c, 0xa7, 0x99,
- 0x54, 0x3d, 0xba, 0x0f, 0xdd, 0x9a, 0xff, 0x89, 0xfb, 0x9e, 0x2f, 0x33,
- 0xa5, 0xc4, 0x7e, 0x4b, 0x84, 0x7c, 0x08, 0x99, 0x6a, 0x18, 0x6b, 0xc8,
- 0x3a, 0x82, 0x18, 0x71, 0xe6, 0x9b, 0x98, 0x07, 0x25, 0xbf, 0x55, 0xc5,
- 0x58, 0x5b, 0x6c, 0xa8, 0x1f, 0x54, 0xf3, 0x70, 0x9c, 0xfa, 0x88, 0xc8,
- 0x2a, 0x2b, 0x52, 0xd9, 0x16, 0x67, 0x14, 0x0c, 0xf5, 0xe6, 0x66, 0x84,
- 0xb8, 0x81, 0x1b, 0xb8, 0xe4, 0x78, 0x17, 0x7a, 0x65, 0xda, 0x67, 0x30,
- 0xdf, 0x5b, 0xf0, 0xf5, 0xa2, 0x2d, 0x6e, 0x4c, 0xd3, 0xa9, 0x82, 0x49,
- 0x06, 0x56, 0x4e, 0x15, 0xf3, 0x2d, 0x6c, 0xc7, 0xe0, 0x5d, 0x49, 0x2c,
- 0xb5, 0xd6, 0x3a, 0xcd, 0xa0, 0x91, 0x10, 0x69, 0x40, 0x4c, 0x67, 0x1e,
- 0xd0, 0xe9, 0x80, 0x68, 0xab, 0xf1, 0x08, 0xe7, 0x6d, 0x48, 0xe4, 0x7a,
- 0xd2, 0x52, 0xa7, 0x9b, 0x61, 0xb8, 0x69, 0x8b, 0x2c, 0xb0, 0xc1, 0x95,
- 0x03, 0x6c, 0x49, 0xcc, 0xd3, 0x3c, 0x4b, 0x59, 0xb7, 0x98, 0xdd, 0x67,
- 0x75, 0x5a, 0x5d, 0xb9, 0x80, 0x50, 0x17, 0x28, 0x2b, 0xbe, 0x10, 0x2d,
- 0x08, 0xe4, 0x47, 0x15, 0xe0, 0xf2, 0xaf, 0x9d, 0x2c, 0x2a, 0xd3, 0x58,
- 0xbc, 0x61, 0xb8, 0xc6, 0xcd, 0x70, 0xc3, 0x40, 0x14, 0x8d, 0x7c, 0x81,
- 0x37, 0xe2, 0x07, 0x80, 0x6c, 0x40, 0x00, 0x9a, 0x54, 0x2e, 0x51, 0xa7,
- 0x28, 0x9c, 0xf2, 0x62, 0xae, 0x95, 0xfc, 0x1e, 0x58, 0x69, 0xd7, 0x94,
- 0x81, 0x43, 0xf2, 0xe5, 0x4d, 0xfc, 0xf0, 0x30, 0x28, 0x12, 0xa9, 0x8b,
- 0x56, 0x14, 0x53, 0x24, 0x7a, 0x56, 0xeb, 0xbf, 0x71, 0x9a, 0x7f, 0xb2,
- 0x88, 0xa7, 0x88, 0x76, 0x64, 0x7e, 0xb4, 0xae, 0xce, 0x56, 0x35, 0x5a,
- 0x41, 0x2a, 0x00, 0x4a, 0xb9, 0xf4, 0x54, 0xea, 0xc3, 0x04, 0x72, 0x1c,
- 0x03, 0x43, 0x15, 0xc2, 0x8a, 0x38, 0x04, 0x2b, 0x4a, 0x27, 0x0d, 0xa7,
- 0x93, 0x86, 0x76, 0xb1, 0xfb, 0x87, 0x77, 0xce, 0x0d, 0x82, 0xb5, 0x8d,
- 0x91, 0xda, 0xa1, 0x11, 0x59, 0xc2, 0xad, 0x9b, 0x77, 0x8c, 0xd1, 0x06,
- 0x48, 0xdd, 0x9a, 0x2c, 0x1b, 0xda, 0x6e, 0xfd, 0x7d, 0x2b, 0xb2, 0x1b,
- 0xe4, 0x5e, 0x80, 0xf7, 0xf0, 0x13, 0x99, 0xbb, 0xd3, 0x01, 0xc9, 0x8b,
- 0xea, 0x8d, 0x8d, 0xcb, 0xe0, 0x4a, 0x50, 0x38, 0x64, 0x8a, 0x97, 0x87,
- 0xe7, 0xef, 0xbf, 0x39, 0x3e, 0x3e, 0x3f, 0x39, 0x22, 0xde, 0x2f, 0x32,
- 0xa5, 0xfb, 0xe8, 0xed, 0xe5, 0xb7, 0xa7, 0x06, 0xcc, 0x61, 0xeb, 0xd3,
- 0xe0, 0xd6, 0x6c, 0xf8, 0x45, 0x73, 0xa7, 0xe9, 0x7c, 0xf9, 0xd0, 0x43,
- 0x79, 0x29, 0x52, 0x34, 0x0e, 0x4e, 0xbe, 0xef, 0x45, 0x5f, 0x9f, 0xf7,
- 0xdf, 0x7d, 0xdf, 0x48, 0x9e, 0xaa, 0x04, 0xe5, 0xd5, 0xcf, 0xb9, 0x0b,
- 0xd1, 0x03, 0x62, 0x98, 0x9f, 0xbb, 0x91, 0x58, 0x0b, 0xb8, 0xf2, 0xc7,
- 0x5d, 0xf6, 0x55, 0xdb, 0x7d, 0x78, 0xdb, 0x3b, 0xe3, 0x92, 0xec, 0x7d,
- 0xcb, 0x6d, 0x17, 0xcf, 0x38, 0xd1, 0x68, 0x10, 0x12, 0xd6, 0x2a, 0x7a,
- 0x49, 0xff, 0xb4, 0x65, 0x6b, 0x6e, 0x73, 0x91, 0xfa, 0xe8, 0x3c, 0x80,
- 0xae, 0x70, 0x0e, 0xac, 0x81, 0xc5, 0x2d, 0xa9, 0x25, 0x41, 0xd3, 0x8f,
- 0xd4, 0x49, 0x98, 0x37, 0xc0, 0x29, 0x5d, 0x0b, 0xbe, 0xa8, 0x2f, 0xcc,
- 0x7b, 0x49, 0xbb, 0xf3, 0xf1, 0x57, 0x4c, 0x53, 0xa5, 0x4e, 0x3f, 0x08,
- 0x88, 0xd0, 0x98, 0x22, 0x3f, 0x3a, 0x70, 0x80, 0x30, 0x2a, 0xb3, 0x70,
- 0x23, 0x98, 0x9f, 0xa2, 0x6e, 0xb4, 0xe0, 0xb0, 0x0b, 0x60, 0x82, 0x43,
- 0xf6, 0x40, 0x83, 0x34, 0xfa, 0x01, 0xa3, 0x23, 0xf4, 0x04, 0x27, 0x21,
- 0xc4, 0x48, 0x70, 0x38, 0x40, 0x5a, 0x9d, 0xac, 0x6c, 0x35, 0x5e, 0x01,
- 0xc8, 0xe4, 0xdf, 0x87, 0x8d, 0x70, 0x9b, 0x8f, 0xa2, 0x97, 0x08, 0xf8,
- 0x6b, 0x0f, 0xa4, 0xd6, 0xba, 0xb1, 0xdf, 0x24, 0xf9, 0x28, 0xc9, 0xb3,
- 0xa2, 0x9e, 0x43, 0xa7, 0x39, 0xf7, 0x5a, 0x9f, 0x93, 0x9b, 0x51, 0x68,
- 0xff, 0x86, 0xe1, 0x15, 0x42, 0x78, 0x22, 0x1e, 0xec, 0x46, 0xb6, 0x50,
- 0x17, 0xb1, 0x73, 0xdd, 0x5e, 0xd4, 0xe5, 0x4c, 0x41, 0xfe, 0x49, 0xac,
- 0xeb, 0x0a, 0xbe, 0x91, 0x34, 0x9e, 0x76, 0x7b, 0x4d, 0x78, 0xc4, 0xae,
- 0xae, 0x7a, 0x97, 0x36, 0x4e, 0x5a, 0xb3, 0x42, 0xaa, 0xb1, 0x8e, 0x43,
- 0x10, 0x5d, 0xd2, 0x42, 0x41, 0x17, 0x43, 0x0b, 0x5d, 0xd1, 0xc0, 0xb2,
- 0x72, 0xcd, 0x55, 0x53, 0xb5, 0xd6, 0xd5, 0x66, 0xa9, 0x72, 0x5e, 0x0d,
- 0x8d, 0x84, 0xb6, 0x6f, 0xe9, 0xec, 0x92, 0xf0, 0x0e, 0xed, 0xf9, 0x56,
- 0xd7, 0xee, 0x29, 0xcb, 0xaa, 0x5f, 0x0d, 0x87, 0x07, 0xe7, 0x27, 0xf5,
- 0xa5, 0xa6, 0x4f, 0xfb, 0x6f, 0xad, 0x46, 0xfc, 0x96, 0x51, 0x8a, 0xd7,
- 0x4d, 0x79, 0x06, 0xc8, 0x3c, 0x62, 0xe9, 0x9a, 0x43, 0x45, 0x04, 0x8a,
- 0xea, 0x5b, 0xba, 0xcc, 0xd6, 0x44, 0x38, 0x2a, 0xf8, 0x90, 0x9a, 0x38,
- 0xf3, 0xa8, 0x52, 0x7b, 0x92, 0x04, 0xc9, 0xdf, 0x90, 0xa6, 0xbe, 0x91,
- 0x7a, 0x66, 0x57, 0xe9, 0x35, 0x07, 0xe9, 0xe3, 0x67, 0x1b, 0x0e, 0x93,
- 0x03, 0x60, 0xd2, 0x12, 0xb0, 0xfe, 0x49, 0x2f, 0x31, 0x03, 0xf3, 0x4c,
- 0x73, 0xcc, 0x44, 0x70, 0x1e, 0x58, 0x4d, 0x89, 0x06, 0x4a, 0x94, 0xbd,
- 0x9c, 0x06, 0x21, 0x13, 0xd3, 0xc4, 0x47, 0xe4, 0x98, 0x62, 0x82, 0xbb,
- 0xdc, 0x37, 0x0a, 0x0d, 0xb1, 0x49, 0xae, 0x56, 0x07, 0x4f, 0x5f, 0x16,
- 0x3b, 0x7a, 0x38, 0x61, 0x15, 0x99, 0xc5, 0xd6, 0xc5, 0x4e, 0x7f, 0x7b,
- 0x23, 0x6b, 0x03, 0x1b, 0x20, 0x19, 0x90, 0xe1, 0x9a, 0xc3, 0x31, 0x0c,
- 0xa2, 0xb3, 0x45, 0x20, 0x7d, 0xdd, 0x24, 0x69, 0xee, 0x1d, 0xa2, 0x3e,
- 0x9f, 0x1d, 0x5c, 0xa1, 0x39, 0x59, 0x66, 0x3c, 0x59, 0xb5, 0x20, 0x8f,
- 0xae, 0xa0, 0x4c, 0x5b, 0xca, 0xa7, 0x18, 0xdf, 0x85, 0xe7, 0x8c, 0x66,
- 0x52, 0x26, 0xc5, 0x82, 0xf4, 0xd0, 0x46, 0xf5, 0x4f, 0x31, 0x70, 0x02,
- 0xf9, 0x80, 0x61, 0xa5, 0x0b, 0x04, 0xe1, 0x44, 0xc0, 0xe2, 0x5f, 0x55,
- 0xdc, 0x2e, 0xf0, 0x78, 0xd2, 0x29, 0xda, 0x54, 0xfc, 0xc2, 0xd6, 0x02,
- 0x85, 0xe2, 0x33, 0xe0, 0xc3, 0x1e, 0xa0, 0xfa, 0x5b, 0x79, 0x39, 0xdf,
- 0xbe, 0x87, 0xe1, 0xf1, 0x7e, 0xe0, 0xb4, 0x25, 0x6b, 0xda, 0x41, 0xa6,
- 0x04, 0x13, 0x70, 0xb0, 0x5d, 0xce, 0x81, 0x6c, 0x6c, 0x07, 0x40, 0xe8,
- 0xa2, 0x4e, 0x28, 0xf6, 0x43, 0x03, 0x0b, 0x2a, 0x03, 0xc8, 0xca, 0x77,
- 0x02, 0x0c, 0x31, 0xc9, 0x96, 0xcc, 0xe0, 0xe4, 0xd3, 0xba, 0x03, 0x27,
- 0x91, 0xd2, 0x8e, 0x05, 0x3b, 0x85, 0xd8, 0x8b, 0xd3, 0x52, 0x7c, 0xc2,
- 0x41, 0x33, 0xec, 0x47, 0x7f, 0xf9, 0x4b, 0x2f, 0xfa, 0x4b, 0x87, 0xfe,
- 0x2b, 0xe9, 0x3f, 0x5a, 0xcf, 0xbf, 0x48, 0x2d, 0x83, 0xbf, 0xdc, 0xd1,
- 0xfd, 0x19, 0x71, 0x49, 0xc2, 0x62, 0xca, 0x20, 0x02, 0x1e, 0xa7, 0xbe,
- 0x05, 0x5a, 0x43, 0x42, 0x0c, 0xb5, 0x3e, 0x07, 0x1f, 0x7e, 0x58, 0xb0,
- 0x26, 0x6e, 0xa9, 0x24, 0xb5, 0x86, 0x36, 0x6c, 0x39, 0x9b, 0x4b, 0x38,
- 0x8a, 0x6e, 0x3b, 0xc8, 0xba, 0xa1, 0x45, 0xc6, 0x51, 0xf7, 0x13, 0xf3,
- 0x9a, 0x97, 0x96, 0xda, 0x1a, 0x06, 0x69, 0xe2, 0x35, 0xa3, 0xeb, 0x52,
- 0xeb, 0x40, 0x4a, 0x9c, 0x52, 0x5b, 0xbc, 0xa6, 0xa8, 0xe1, 0x67, 0x73,
- 0xd8, 0xea, 0x01, 0x11, 0xaa, 0x8c, 0x55, 0x59, 0x21, 0x5b, 0xa5, 0x17,
- 0x37, 0x2b, 0xe8, 0x9a, 0x3a, 0x24, 0x57, 0xcb, 0x99, 0x46, 0xd9, 0x52,
- 0x56, 0xa4, 0x29, 0x7c, 0x5b, 0xe1, 0x52, 0x55, 0xd7, 0xad, 0x42, 0x66,
- 0xc8, 0x57, 0x68, 0x80, 0xdd, 0x7e, 0xb7, 0x8a, 0x8d, 0x68, 0x61, 0x3c,
- 0x6d, 0x75, 0x6e, 0x82, 0xa2, 0x34, 0x8d, 0xda, 0x98, 0xb0, 0x95, 0x2a,
- 0xfc, 0x97, 0x80, 0xec, 0x0b, 0xd0, 0x46, 0xe6, 0xbd, 0x49, 0xf0, 0x12,
- 0x56, 0x26, 0xa2, 0x7a, 0x3b, 0xb1, 0xd6, 0x46, 0x2d, 0x12, 0x05, 0x7e,
- 0xd3, 0x77, 0xd3, 0x32, 0x50, 0x84, 0xfa, 0x7d, 0xa9, 0x9c, 0xa9, 0x78,
- 0xd0, 0x90, 0x5a, 0x71, 0x39, 0xb1, 0xc6, 0x53, 0xa4, 0xb3, 0x45, 0xc3,
- 0xf2, 0xc8, 0x6b, 0xec, 0x85, 0x5e, 0x1e, 0x06, 0x70, 0xf0, 0xb9, 0x9a,
- 0xce, 0xfd, 0x5c, 0xd9, 0xc8, 0x30, 0x03, 0x8a, 0x80, 0x18, 0xa7, 0x00,
- 0x2a, 0xe3, 0xe3, 0x76, 0x5a, 0xbc, 0xf6, 0x0d, 0x33, 0x15, 0x8f, 0xe9,
- 0x55, 0xd4, 0x59, 0xab, 0xa5, 0x74, 0xea, 0x2f, 0x9c, 0x32, 0xec, 0x8b,
- 0xee, 0xb8, 0x60, 0xfd, 0x8d, 0x61, 0x94, 0x13, 0x7c, 0xb6, 0x29, 0x10,
- 0x49, 0xb4, 0x76, 0xa1, 0x4b, 0x8a, 0x0c, 0x99, 0xd3, 0x1a, 0x5f, 0x8c,
- 0x38, 0xb1, 0x04, 0x3a, 0x52, 0x4f, 0x25, 0x57, 0x42, 0x5d, 0x07, 0x7b,
- 0x6a, 0x36, 0x16, 0xce, 0xe1, 0xbf, 0x55, 0xf4, 0x37, 0xb5, 0x41, 0x6c,
- 0x9a, 0xb6, 0xf7, 0x37, 0xbb, 0xc7, 0xb6, 0xd4, 0x4a, 0x2e, 0x79, 0xa9,
- 0x6b, 0xa0, 0x5b, 0xc2, 0x2b, 0xc8, 0x81, 0x09, 0xa5, 0x90, 0xea, 0xe9,
- 0xbd, 0xe5, 0x7c, 0xe2, 0xc2, 0x04, 0x0d, 0xeb, 0x65, 0x2d, 0x55, 0x43,
- 0xd1, 0xe1, 0x1e, 0x15, 0x74, 0x4e, 0x89, 0xc7, 0x73, 0x16, 0xf8, 0x1c,
- 0x0a, 0x27, 0x20, 0x67, 0x39, 0x29, 0xb1, 0x8d, 0x9d, 0xd9, 0xdd, 0x72,
- 0x71, 0xa0, 0xa8, 0xeb, 0x27, 0x85, 0x1e, 0x55, 0x0d, 0xeb, 0xdc, 0x64,
- 0x02, 0xf7, 0xd3, 0xd9, 0x67, 0xcd, 0x4a, 0x19, 0x83, 0x9f, 0x65, 0xf3,
- 0x28, 0x00, 0x4c, 0xe9, 0xeb, 0xb3, 0x37, 0xc7, 0x2e, 0xe3, 0x55, 0x4c,
- 0x7d, 0xfc, 0x49, 0x2b, 0xc4, 0xe3, 0x00, 0xf9, 0x04, 0x86, 0x00, 0xd1,
- 0x6b, 0xd6, 0xe8, 0x94, 0x25, 0xba, 0x4e, 0xca, 0xc5, 0xfd, 0x32, 0x9d,
- 0x6c, 0x02, 0xa4, 0xe3, 0xdd, 0xdb, 0x93, 0xef, 0xfb, 0x62, 0x29, 0x16,
- 0x45, 0xce, 0x70, 0x2a, 0x0c, 0xe5, 0x42, 0xbc, 0x09, 0xb3, 0x16, 0x4c,
- 0x16, 0xa5, 0x1a, 0x1c, 0x33, 0x45, 0x25, 0x42, 0xae, 0x5f, 0x3a, 0x17,
- 0x21, 0x46, 0x1a, 0xa4, 0x7b, 0xe3, 0x6c, 0x4e, 0xec, 0x1b, 0x58, 0x4b,
- 0x02, 0xa0, 0xd1, 0x92, 0xbd, 0x5b, 0x5d, 0x89, 0xe8, 0xe0, 0xfc, 0xfc,
- 0xe8, 0xe0, 0xf2, 0xc0, 0xcd, 0x0d, 0xe0, 0x46, 0xe0, 0x73, 0x10, 0x67,
- 0x58, 0xb1, 0xd7, 0x4a, 0x49, 0xdd, 0xdf, 0x73, 0x86, 0x60, 0x9d, 0xf3,
- 0x9d, 0x5f, 0x9c, 0xb1, 0x99, 0xf1, 0xf7, 0x7f, 0x39, 0xf0, 0x15, 0xe2,
- 0x50, 0x0a, 0xa9, 0x59, 0xa8, 0x6b, 0x6f, 0x8b, 0xc7, 0x77, 0xef, 0xc6,
- 0xa7, 0x71, 0x42, 0x22, 0xc7, 0x45, 0xef, 0x79, 0x43, 0xf3, 0xb1, 0x13,
- 0x4e, 0x6c, 0x35, 0xb0, 0x00, 0xbd, 0x96, 0xdc, 0xb2, 0x60, 0x22, 0x99,
- 0xe7, 0xa7, 0x86, 0xf5, 0x64, 0x8b, 0x35, 0x8d, 0x92, 0x87, 0x64, 0xbc,
- 0x2c, 0xc1, 0xbb, 0xd8, 0x9b, 0xc1, 0xf4, 0x35, 0xe1, 0x95, 0xaa, 0x3b,
- 0xea, 0xeb, 0xdb, 0xe3, 0x61, 0x13, 0x85, 0x03, 0x49, 0x4a, 0x67, 0x26,
- 0x55, 0x31, 0x06, 0x3a, 0x5a, 0x5f, 0x17, 0xa3, 0x71, 0x76, 0x04, 0x48,
- 0x91, 0xe8, 0xdc, 0xe8, 0xb1, 0xb1, 0x20, 0x9f, 0x10, 0xe3, 0xeb, 0x5b,
- 0x88, 0xa9, 0x4c, 0x9c, 0x3e, 0x68, 0x3c, 0x54, 0xba, 0x1a, 0x0f, 0x2c,
- 0x26, 0x35, 0xbd, 0x9f, 0xca, 0xa7, 0x42, 0x06, 0x55, 0x37, 0xf5, 0x28,
- 0x64, 0x8c, 0x3e, 0x05, 0xa8, 0x62, 0x44, 0x21, 0x36, 0xfd, 0x39, 0xe6,
- 0x58, 0xa4, 0x47, 0x49, 0x2a, 0x26, 0x11, 0x97, 0xff, 0xda, 0xde, 0x1d,
- 0xec, 0x74, 0x9a, 0xa3, 0x47, 0xe2, 0x19, 0x2c, 0xe3, 0xf1, 0x5c, 0xee,
- 0x67, 0x01, 0xe6, 0xcd, 0x3e, 0x3c, 0x40, 0xe1, 0xa0, 0x24, 0xf3, 0x21,
- 0x6e, 0xa1, 0x6d, 0x2c, 0xfd, 0xb3, 0x86, 0x77, 0x48, 0x3c, 0x9c, 0x9e,
- 0x25, 0xcf, 0x33, 0x84, 0x95, 0xc6, 0x6c, 0x2c, 0x83, 0x9f, 0xa0, 0xd3,
- 0xbe, 0xc0, 0xf3, 0x89, 0x44, 0x3b, 0xd4, 0xd6, 0xf9, 0x51, 0xdd, 0x65,
- 0x7d, 0x98, 0xa0, 0xa3, 0x01, 0xf7, 0xf1, 0x5a, 0x6e, 0x57, 0x71, 0x8b,
- 0x5a, 0xa1, 0xfb, 0x56, 0xf0, 0xd5, 0x03, 0xc1, 0x3f, 0x0e, 0x35, 0x0d,
- 0xce, 0x83, 0xe3, 0xea, 0x81, 0x1c, 0x55, 0xc5, 0x9a, 0x93, 0xe6, 0x6f,
- 0xce, 0x2a, 0x65, 0x00, 0xf1, 0x7b, 0xf3, 0xb6, 0xad, 0x94, 0x8d, 0x8e,
- 0xb4, 0xe7, 0xbe, 0x5c, 0xb8, 0x6a, 0xa9, 0x43, 0x15, 0x96, 0xa0, 0x44,
- 0xb6, 0xf3, 0x02, 0xac, 0x81, 0x07, 0x31, 0x29, 0x95, 0xd4, 0xc1, 0xa9,
- 0xc0, 0xa9, 0x48, 0x40, 0xad, 0x68, 0x51, 0x32, 0x2c, 0xf1, 0xb8, 0x7b,
- 0x2f, 0x14, 0xbf, 0xf7, 0xbb, 0xb6, 0xa2, 0xdb, 0xfb, 0x8a, 0xcf, 0x92,
- 0x25, 0xa2, 0xc3, 0x89, 0xdf, 0x9e, 0x43, 0x22, 0x34, 0x51, 0xa9, 0xff,
- 0xda, 0x99, 0xd5, 0xcc, 0xee, 0xc6, 0x3a, 0x2a, 0x2d, 0x79, 0x13, 0x24,
- 0x54, 0x80, 0x2c, 0xd8, 0xb2, 0x8b, 0xd2, 0x60, 0x3d, 0x36, 0x71, 0x09,
- 0x3b, 0xc8, 0x18, 0x62, 0x21, 0x36, 0xe8, 0x3b, 0x3d, 0x04, 0xd4, 0xd7,
- 0x35, 0x49, 0xc7, 0x6b, 0x42, 0xaa, 0x0d, 0x64, 0xc4, 0xd7, 0xd7, 0x65,
- 0xef, 0x40, 0x61, 0x99, 0xb5, 0xef, 0x81, 0x9f, 0x35, 0x99, 0x6c, 0x3e,
- 0xd9, 0x12, 0x23, 0x86, 0xab, 0x9c, 0x0d, 0xc7, 0xdd, 0xbf, 0xa8, 0x3c,
- 0xaa, 0x70, 0xe0, 0x4b, 0x10, 0xb6, 0x6d, 0xab, 0x8b, 0x2c, 0x7b, 0x2c,
- 0xcf, 0x66, 0x4a, 0x92, 0x4e, 0xd9, 0x87, 0x69, 0xe9, 0x25, 0x89, 0x5c,
- 0xc9, 0x64, 0xad, 0x96, 0x29, 0xd0, 0x0c, 0xf1, 0x43, 0x3a, 0x5b, 0xce,
- 0xbc, 0xe7, 0x99, 0x71, 0x79, 0xcb, 0xa4, 0x59, 0xe1, 0x50, 0x6d, 0x1a,
- 0x0d, 0x79, 0x5a, 0xfd, 0x5e, 0x3a, 0x43, 0x20, 0x13, 0x4b, 0x0c, 0x11,
- 0xbc, 0x2a, 0xac, 0xfe, 0xd3, 0x78, 0x38, 0x8b, 0x3f, 0x5d, 0x88, 0x0c,
- 0xc1, 0x71, 0x2b, 0x13, 0x71, 0x9c, 0x32, 0x05, 0xd5, 0x37, 0xd5, 0x86,
- 0x81, 0x0a, 0x06, 0xe2, 0x94, 0x90, 0x60, 0xa0, 0x79, 0xc9, 0xa9, 0x72,
- 0x23, 0x6a, 0xe2, 0x3e, 0x9d, 0x94, 0x37, 0xed, 0x78, 0x83, 0xb2, 0x8e,
- 0x98, 0x77, 0x24, 0x08, 0x25, 0x1c, 0x5e, 0x82, 0xa5, 0x82, 0xcf, 0x78,
- 0x5b, 0x0c, 0xc7, 0x2e, 0xdb, 0x3e, 0x26, 0xba, 0xbb, 0xe2, 0xf4, 0x88,
- 0xa6, 0x9e, 0xa0, 0x61, 0x71, 0x03, 0x3b, 0xa2, 0x08, 0xbc, 0xbd, 0xed,
- 0xf2, 0x2d, 0xd9, 0xfd, 0x46, 0xad, 0x22, 0x02, 0x5b, 0x84, 0x60, 0x6a,
- 0xad, 0x0e, 0xce, 0x11, 0x31, 0xb7, 0xe9, 0xb4, 0x59, 0x20, 0x71, 0x05,
- 0x65, 0x2a, 0xea, 0xce, 0x24, 0x8c, 0xf5, 0x4d, 0x57, 0x0d, 0xf8, 0x28,
- 0x84, 0xac, 0x1e, 0xed, 0x9e, 0xa4, 0x3e, 0x44, 0xdd, 0x6b, 0xe9, 0xe6,
- 0x2b, 0xff, 0x50, 0xad, 0x39, 0xef, 0x04, 0xb7, 0x5b, 0xa4, 0xd8, 0x8f,
- 0xf6, 0x76, 0x76, 0xbe, 0xe9, 0x45, 0x4f, 0xa4, 0x74, 0xec, 0xee, 0x57,
- 0xad, 0x2b, 0x24, 0x0b, 0x84, 0x2d, 0x56, 0xfd, 0x33, 0xbe, 0x03, 0xaf,
- 0xd7, 0x45, 0xc3, 0x8c, 0x58, 0x53, 0x9c, 0x2c, 0x03, 0xdb, 0xb2, 0x2c,
- 0xfe, 0x9a, 0xad, 0x82, 0x19, 0xbb, 0x0e, 0x85, 0x30, 0x43, 0xdc, 0x10,
- 0xef, 0xde, 0x0d, 0xfd, 0xc6, 0xde, 0x7b, 0xdb, 0x58, 0xf4, 0xd3, 0x92,
- 0xcf, 0x5e, 0xdc, 0xf0, 0xf1, 0x1f, 0x2d, 0x73, 0x9c, 0x64, 0x76, 0x84,
- 0x4a, 0x39, 0x22, 0xb6, 0xad, 0x43, 0x67, 0x90, 0x5a, 0xd2, 0xbe, 0x74,
- 0x6a, 0x59, 0x99, 0xce, 0xa0, 0xbd, 0xde, 0x23, 0xe2, 0x67, 0x5c, 0x41,
- 0xd8, 0x1f, 0x48, 0x61, 0x42, 0xff, 0x72, 0x4c, 0xbc, 0xe2, 0x21, 0xda,
- 0x4e, 0xe8, 0x61, 0xac, 0x4f, 0x96, 0xb5, 0x2a, 0xd1, 0x53, 0x61, 0x60,
- 0x86, 0x29, 0x1c, 0x73, 0x64, 0xfc, 0xb4, 0x85, 0x96, 0xe9, 0xe1, 0x81,
- 0x48, 0xd3, 0xe0, 0xb7, 0x53, 0x7e, 0x60, 0xba, 0xea, 0x35, 0xd5, 0x0e,
- 0x0e, 0x0b, 0x84, 0x3f, 0xc0, 0x14, 0xa1, 0x70, 0x54, 0x9c, 0x3e, 0x3b,
- 0x46, 0x89, 0x1a, 0x8e, 0xec, 0xfa, 0xed, 0xcc, 0x52, 0x53, 0xc6, 0xe3,
- 0x4f, 0x8b, 0xb2, 0xcf, 0xee, 0xdd, 0xf5, 0xa8, 0x5d, 0x9a, 0x53, 0x6e,
- 0xe8, 0x5d, 0x13, 0x8f, 0x86, 0x29, 0x96, 0x6c, 0x29, 0xbd, 0x81, 0x28,
- 0x4a, 0x68, 0xc9, 0xcc, 0xbe, 0xfa, 0x8d, 0x40, 0x3f, 0xd6, 0x8f, 0xef,
- 0xd2, 0xe4, 0x9e, 0xd3, 0xb2, 0x8f, 0x3d, 0x28, 0x59, 0x95, 0x67, 0x58,
- 0xf5, 0x8b, 0x59, 0x3c, 0xbe, 0xa1, 0x0b, 0xa5, 0x8f, 0xb8, 0xeb, 0x16,
- 0x19, 0x2b, 0xac, 0xa0, 0x5a, 0x1f, 0x16, 0x83, 0xe1, 0xb8, 0x34, 0x2c,
- 0xc3, 0xa5, 0x0b, 0x90, 0x14, 0x79, 0x10, 0x6b, 0x40, 0xb0, 0xc4, 0x58,
- 0xea, 0x70, 0xae, 0xa0, 0x39, 0x66, 0xb9, 0x41, 0xc9, 0x7e, 0x48, 0x6c,
- 0x90, 0x2c, 0x35, 0x43, 0xe3, 0x7a, 0x7b, 0x3a, 0xf4, 0x18, 0x01, 0xa5,
- 0x56, 0x52, 0x80, 0xad, 0x60, 0xc8, 0x52, 0xe1, 0xeb, 0x35, 0x55, 0xa5,
- 0x0b, 0x01, 0xcc, 0x97, 0xf8, 0x20, 0x44, 0xbf, 0x88, 0x78, 0x9b, 0xe6,
- 0x15, 0xac, 0x07, 0x6e, 0xfd, 0xcf, 0x1a, 0xa0, 0x3d, 0x91, 0x2a, 0x3a,
- 0xed, 0x91, 0x2a, 0x9c, 0x51, 0x17, 0x16, 0x42, 0x87, 0xb1, 0x19, 0x49,
- 0x5e, 0x44, 0x62, 0x74, 0x69, 0xdf, 0x56, 0x25, 0x15, 0xce, 0xd1, 0x10,
- 0x64, 0x98, 0x97, 0xc4, 0xd1, 0x3e, 0xff, 0xb1, 0x4f, 0xff, 0xfe, 0xd4,
- 0xf0, 0x05, 0x96, 0x82, 0x27, 0xa3, 0x26, 0x2d, 0x0b, 0x2b, 0xcd, 0x3d,
- 0x3c, 0xbe, 0x54, 0xa6, 0x47, 0x3b, 0xf2, 0x6d, 0x11, 0x14, 0x16, 0x68,
- 0x0d, 0x91, 0x30, 0xb7, 0xdc, 0x66, 0xc1, 0x50, 0x40, 0x01, 0x00, 0xb9,
- 0x44, 0x0d, 0x59, 0x2b, 0xb0, 0x0b, 0xcc, 0xe5, 0xc6, 0x91, 0xd2, 0x1d,
- 0x75, 0xd5, 0x95, 0x5d, 0xed, 0xe3, 0xc4, 0xfb, 0x25, 0x7d, 0x7d, 0xc7,
- 0x11, 0x03, 0xc4, 0x14, 0x2b, 0x86, 0x7a, 0x12, 0x71, 0xae, 0xc8, 0x5c,
- 0x42, 0x0b, 0x28, 0x19, 0xc3, 0x6f, 0x3a, 0x72, 0x19, 0x8d, 0x48, 0xa2,
- 0x33, 0x48, 0xc0, 0xa5, 0xce, 0xf3, 0x3c, 0xbb, 0xb7, 0xb3, 0xaf, 0x61,
- 0xc9, 0x81, 0xcc, 0xe0, 0x1d, 0x8c, 0xd4, 0xf6, 0x72, 0xd1, 0xe2, 0x79,
- 0xe5, 0x54, 0x85, 0x06, 0x90, 0x48, 0x98, 0x89, 0x19, 0xd6, 0xc9, 0x68,
- 0x0d, 0x4f, 0x01, 0x92, 0xfc, 0x96, 0x47, 0x51, 0x75, 0xa5, 0x4d, 0xc4,
- 0x96, 0xed, 0xd2, 0x2b, 0x34, 0x74, 0x1b, 0x18, 0x3a, 0x1c, 0x8b, 0xdc,
- 0x28, 0x3d, 0x2e, 0xa9, 0xd5, 0xc0, 0x5d, 0xb0, 0xb8, 0xeb, 0x32, 0x72,
- 0x25, 0x3a, 0x36, 0xd9, 0x93, 0x39, 0x86, 0xfd, 0x4b, 0x03, 0xc2, 0xeb,
- 0x65, 0x32, 0xda, 0x70, 0x09, 0x88, 0x03, 0x3c, 0xf9, 0xfe, 0xfb, 0x00,
- 0x9a, 0x84, 0xe5, 0xcd, 0xad, 0x5e, 0x85, 0x69, 0xd5, 0x2a, 0x46, 0x12,
- 0x15, 0x65, 0x2d, 0xa7, 0xdc, 0xc2, 0xec, 0x35, 0x14, 0x95, 0x23, 0x31,
- 0xa0, 0xc4, 0x0d, 0x5c, 0x08, 0xbc, 0x15, 0xb8, 0xd6, 0xe0, 0xf7, 0x20,
- 0x0c, 0xac, 0xa5, 0x7e, 0x94, 0x0b, 0xf9, 0xe9, 0xf9, 0xd8, 0x5b, 0x89,
- 0x3c, 0x41, 0x78, 0x5a, 0xb8, 0x54, 0x85, 0xa3, 0x18, 0xba, 0x95, 0xee,
- 0xe7, 0x83, 0xb6, 0xca, 0x26, 0x4d, 0xec, 0x44, 0xc9, 0x62, 0xc0, 0x8c,
- 0x70, 0x7e, 0xa5, 0x1a, 0x0f, 0x9b, 0xa6, 0xc6, 0x79, 0xa2, 0x9e, 0x9b,
- 0xc2, 0x95, 0x96, 0x6f, 0x9c, 0x57, 0xb1, 0xf3, 0x20, 0xd2, 0x4a, 0xc0,
- 0xc2, 0x39, 0x5c, 0x57, 0xce, 0x2e, 0xae, 0x1f, 0x1f, 0xcf, 0x10, 0xee,
- 0x16, 0x3f, 0xde, 0x6b, 0x0a, 0x08, 0xf7, 0x28, 0x3f, 0x12, 0x98, 0xee,
- 0x10, 0x72, 0xa5, 0x99, 0x49, 0x82, 0x79, 0xf3, 0xa7, 0x6a, 0x91, 0x3d,
- 0xcd, 0x9b, 0x13, 0xd2, 0x6b, 0xab, 0x24, 0xd8, 0x2f, 0xf3, 0x25, 0x56,
- 0x88, 0x37, 0x84, 0x41, 0xdc, 0x58, 0x32, 0xb6, 0x74, 0x32, 0x76, 0xf2,
- 0x59, 0x74, 0x99, 0xdc, 0x62, 0xde, 0xdd, 0xda, 0x0c, 0x02, 0xb1, 0x79,
- 0x59, 0xda, 0x3a, 0xa7, 0xa9, 0x57, 0x02, 0x24, 0xfa, 0x7d, 0x12, 0x4c,
- 0xfb, 0x78, 0xac, 0x68, 0x54, 0x76, 0x68, 0xd8, 0xbc, 0xa4, 0x85, 0x22,
- 0x5c, 0x30, 0xd3, 0x21, 0x8c, 0x86, 0xd4, 0x65, 0x14, 0x33, 0x05, 0xb1,
- 0x09, 0xee, 0xab, 0xe3, 0xcb, 0xfa, 0xd1, 0x02, 0x74, 0x84, 0xaa, 0x8a,
- 0xc8, 0x9f, 0xa0, 0xbf, 0xcf, 0xdf, 0x5d, 0x6e, 0x79, 0x73, 0xc0, 0x24,
- 0xab, 0xd9, 0xac, 0xac, 0xf5, 0x96, 0x4c, 0x14, 0xc9, 0x51, 0x50, 0x50,
- 0x06, 0x24, 0x9a, 0xb8, 0x03, 0xc1, 0x28, 0x0a, 0x4f, 0x76, 0x76, 0x49,
- 0x54, 0xdb, 0xd9, 0x83, 0xd5, 0xe5, 0xc9, 0xce, 0x13, 0x67, 0xce, 0xb6,
- 0xa7, 0x1a, 0x37, 0x1e, 0xd3, 0x34, 0xf0, 0x17, 0x50, 0xcc, 0x56, 0xb4,
- 0xee, 0xe8, 0xc9, 0xc3, 0x03, 0xbe, 0xea, 0x55, 0xb1, 0x7a, 0x8a, 0x44,
- 0xa7, 0xef, 0x86, 0xba, 0xe6, 0x68, 0xf9, 0x15, 0x87, 0xf9, 0x64, 0x39,
- 0x97, 0xd8, 0x2f, 0x56, 0x7d, 0x91, 0xf1, 0x50, 0xbf, 0x1c, 0x42, 0x3a,
- 0x78, 0x8c, 0x35, 0x9d, 0xb2, 0x78, 0x5f, 0x61, 0x64, 0x3d, 0x8f, 0x4c,
- 0x22, 0x70, 0xbf, 0xa6, 0xdd, 0x59, 0x2a, 0x62, 0xad, 0xb9, 0x3f, 0x05,
- 0x28, 0x9f, 0x52, 0x20, 0x05, 0xa4, 0x1e, 0x70, 0x37, 0x54, 0xbc, 0xe2,
- 0xa4, 0x31, 0x7f, 0x4a, 0x32, 0x75, 0x10, 0x36, 0xf3, 0x20, 0xb2, 0x1c,
- 0x8f, 0x4a, 0xd2, 0x7f, 0x99, 0x67, 0x93, 0xe5, 0x18, 0x77, 0x3d, 0x87,
- 0xbd, 0x70, 0x21, 0xbf, 0x91, 0xa0, 0x3e, 0x1a, 0x88, 0x06, 0x37, 0xed,
- 0x89, 0xb4, 0xa9, 0x66, 0x2b, 0x6c, 0x3a, 0x9e, 0x73, 0x69, 0xbb, 0xac,
- 0xd9, 0xb0, 0xd1, 0xc8, 0x65, 0x0b, 0xd7, 0x59, 0xc4, 0xfc, 0x2a, 0x53,
- 0xd3, 0x5f, 0x13, 0xa4, 0x17, 0x74, 0x09, 0x27, 0x9d, 0x99, 0xd5, 0x63,
- 0x29, 0x46, 0x07, 0xda, 0xf9, 0x92, 0x83, 0xd5, 0x6a, 0xed, 0x55, 0x60,
- 0x58, 0x67, 0x0c, 0x2a, 0x9b, 0x8f, 0xe9, 0x78, 0xbf, 0xd4, 0xa8, 0xcd,
- 0xa6, 0xab, 0x1f, 0xa0, 0x23, 0x43, 0x67, 0xc2, 0x57, 0xac, 0x48, 0x0f,
- 0x3a, 0xa5, 0xeb, 0x2a, 0x32, 0xf5, 0x4c, 0xe0, 0x87, 0x35, 0x69, 0xa6,
- 0x99, 0xb8, 0x05, 0x64, 0x55, 0xbf, 0xe2, 0x1f, 0xcc, 0xb1, 0x0c, 0x5d,
- 0x00, 0x2d, 0x68, 0x91, 0xb4, 0xd0, 0xe9, 0x82, 0x41, 0xbe, 0x9a, 0xb6,
- 0xed, 0xf5, 0x18, 0x25, 0x3a, 0x6d, 0x30, 0xf1, 0x7f, 0xe7, 0xb4, 0xe1,
- 0x76, 0xfd, 0x65, 0xc3, 0x7c, 0x40, 0x91, 0x1a, 0xc4, 0x59, 0xbe, 0x84,
- 0xe2, 0xf6, 0x91, 0x6a, 0x39, 0xde, 0xd8, 0x34, 0xf5, 0x75, 0xcb, 0xe7,
- 0x5b, 0x0b, 0xe6, 0x84, 0x00, 0x3a, 0x31, 0xf3, 0x58, 0x17, 0xda, 0xe9,
- 0x2f, 0xb6, 0xb4, 0x1a, 0x49, 0x8d, 0xfb, 0x18, 0x99, 0x97, 0xbd, 0x2a,
- 0x3c, 0xce, 0xba, 0x7a, 0x82, 0x08, 0x7c, 0x04, 0x63, 0x0d, 0x79, 0x0d,
- 0xe0, 0x8f, 0x71, 0xfd, 0x26, 0x0f, 0xf0, 0xb9, 0x10, 0x9f, 0x7a, 0xfe,
- 0x64, 0xd0, 0x6e, 0xfb, 0x11, 0x25, 0xdd, 0x87, 0x9c, 0x1a, 0x57, 0x16,
- 0x27, 0x85, 0xc0, 0xc9, 0x2c, 0x72, 0x86, 0x96, 0x0d, 0x66, 0xd7, 0x6b,
- 0xc1, 0xcd, 0x43, 0xe0, 0x39, 0x83, 0x80, 0x8b, 0x8c, 0x5c, 0x36, 0xa2,
- 0x91, 0x2c, 0xfe, 0xc8, 0x4a, 0x72, 0x79, 0x23, 0x17, 0x4f, 0xb3, 0xe1,
- 0x3d, 0xe6, 0x69, 0xe3, 0xb6, 0x06, 0x5a, 0x96, 0xa4, 0x59, 0x36, 0x16,
- 0x4b, 0x28, 0x04, 0xb7, 0x9b, 0x41, 0x53, 0x64, 0xa4, 0x6a, 0xe4, 0x8d,
- 0x50, 0x2a, 0xe4, 0xaf, 0xb3, 0x12, 0x80, 0xb0, 0xdf, 0xcb, 0x4a, 0x6d,
- 0x48, 0x4f, 0x15, 0xb3, 0x6d, 0x21, 0x8c, 0x47, 0x23, 0xda, 0xde, 0x28,
- 0x21, 0x88, 0x1a, 0x3c, 0x57, 0x78, 0x61, 0x25, 0x5b, 0x51, 0x70, 0x0d,
- 0xe3, 0x85, 0xb8, 0x50, 0x06, 0xc4, 0x5a, 0x67, 0x85, 0x6b, 0x71, 0x77,
- 0x91, 0x1c, 0x31, 0x08, 0x60, 0x54, 0x83, 0x38, 0x7e, 0x2d, 0x11, 0x9c,
- 0x5a, 0x01, 0x83, 0x11, 0x8a, 0x9c, 0xff, 0x35, 0x1b, 0xa9, 0x94, 0xc4,
- 0x37, 0x7d, 0x1b, 0x72, 0xed, 0x15, 0xa2, 0xc3, 0x49, 0x6d, 0x8f, 0x26,
- 0x4b, 0x71, 0x12, 0xf2, 0x80, 0xe6, 0x49, 0xc9, 0x0a, 0x2c, 0x62, 0xc7,
- 0x45, 0xcf, 0xa0, 0xd3, 0x24, 0xd8, 0x8e, 0x88, 0x69, 0x95, 0x98, 0xc2,
- 0x06, 0x68, 0x9c, 0xab, 0xec, 0xa4, 0x72, 0x34, 0x16, 0x87, 0x5d, 0x61,
- 0x6b, 0x64, 0x80, 0x5f, 0x4f, 0x19, 0x7e, 0x83, 0xdd, 0x98, 0x37, 0xa3,
- 0xf6, 0xde, 0xe0, 0xc3, 0x01, 0x57, 0xac, 0xe4, 0x18, 0x6a, 0x71, 0x4f,
- 0x2c, 0x35, 0xb5, 0x4f, 0x8a, 0x21, 0xfb, 0x56, 0xe6, 0xdb, 0x5c, 0x9e,
- 0xb8, 0xcc, 0xc7, 0x8d, 0x46, 0x6e, 0x7d, 0xa6, 0x5b, 0x81, 0x00, 0x0b,
- 0x6c, 0xd9, 0x00, 0x0f, 0x13, 0xf3, 0x78, 0xaf, 0xbf, 0x64, 0xce, 0x8f,
- 0xb3, 0x15, 0x3a, 0x44, 0x5a, 0xcc, 0xf5, 0xdd, 0xc2, 0xf9, 0x17, 0x54,
- 0xb5, 0xe5, 0x9d, 0x00, 0xf4, 0x56, 0x5b, 0x1d, 0x65, 0x87, 0x27, 0xbb,
- 0x5a, 0x34, 0x82, 0x27, 0x24, 0x0c, 0x5a, 0x96, 0xee, 0x4a, 0x0a, 0x54,
- 0x99, 0xdf, 0xca, 0xcb, 0xda, 0xae, 0x86, 0x55, 0x28, 0x6b, 0x08, 0x38,
- 0x4a, 0xcb, 0xe8, 0x1a, 0xf5, 0xaa, 0x59, 0xc4, 0xc4, 0x1c, 0x37, 0x9f,
- 0x6e, 0x41, 0xa9, 0x2e, 0x17, 0x9b, 0xbb, 0x5b, 0x82, 0xbb, 0xa6, 0xa9,
- 0xfc, 0x16, 0xbe, 0xd1, 0xe6, 0x3d, 0xf4, 0xf5, 0xaf, 0x82, 0xda, 0xaa,
- 0xcc, 0x3b, 0x00, 0x09, 0x8b, 0xf8, 0xcd, 0x2b, 0x39, 0x14, 0x78, 0xdc,
- 0x34, 0x7a, 0x36, 0x42, 0xb6, 0x70, 0x46, 0xc9, 0x6a, 0x5b, 0xb0, 0x9f,
- 0xa6, 0x10, 0xc8, 0xf5, 0xcd, 0xb4, 0x0c, 0x33, 0xf8, 0x38, 0xbf, 0x59,
- 0x2a, 0x89, 0xd0, 0xea, 0x4d, 0x27, 0x7d, 0x90, 0xf1, 0x75, 0x9e, 0x35,
- 0x11, 0xc2, 0xd8, 0xc9, 0xce, 0x6b, 0xb0, 0x65, 0xae, 0xd0, 0xd6, 0x4a,
- 0x19, 0x1d, 0x76, 0x29, 0x76, 0xc2, 0x3a, 0x68, 0xe6, 0xb5, 0xac, 0x1b,
- 0x86, 0x2a, 0x5b, 0xda, 0xa0, 0xf7, 0x83, 0xe8, 0x6f, 0xcb, 0x74, 0x7c,
- 0x8b, 0xbd, 0x45, 0xf8, 0x13, 0x3c, 0x54, 0x89, 0x93, 0x5b, 0xe9, 0x7a,
- 0x60, 0xc9, 0x5c, 0x2a, 0x62, 0xb1, 0xfe, 0x09, 0x31, 0xc5, 0xa8, 0xac,
- 0xa5, 0x4a, 0x0d, 0x9f, 0x55, 0xa7, 0x57, 0x00, 0x25, 0x4a, 0x4e, 0xa0,
- 0x5a, 0x60, 0x44, 0x1b, 0x99, 0x64, 0x1c, 0x21, 0xcb, 0x8e, 0x16, 0xa1,
- 0x82, 0x75, 0xd8, 0xec, 0xdd, 0xd9, 0x8a, 0xb3, 0xd0, 0xbb, 0x15, 0xd2,
- 0x8b, 0xba, 0xc4, 0xb3, 0xe8, 0x9e, 0xe8, 0xda, 0xfa, 0xd6, 0x1c, 0xf2,
- 0x4d, 0xb4, 0xeb, 0x35, 0x5d, 0x0b, 0x69, 0x4b, 0x17, 0xbe, 0x75, 0x69,
- 0x3c, 0xb8, 0x6b, 0x31, 0xd7, 0xbe, 0xf9, 0xde, 0x6b, 0x6d, 0x7f, 0xab,
- 0x6b, 0xe6, 0x31, 0x1b, 0xf0, 0xb8, 0xd5, 0x7a, 0xf6, 0x9c, 0x44, 0xec,
- 0xae, 0xbc, 0x12, 0xb6, 0x78, 0xcb, 0xa2, 0x99, 0xe0, 0xe7, 0x2a, 0xb0,
- 0xf1, 0x84, 0x99, 0x6e, 0xd8, 0xda, 0x13, 0x5b, 0x6d, 0x19, 0xe1, 0x64,
- 0xf2, 0xba, 0x36, 0xcb, 0x74, 0x39, 0xa8, 0x0c, 0x56, 0x43, 0xdc, 0xd6,
- 0xa4, 0x2d, 0x59, 0x25, 0xf8, 0xa8, 0x12, 0x0f, 0xd7, 0x52, 0x0c, 0x3e,
- 0xa9, 0x3e, 0xd1, 0x9e, 0xbe, 0xcc, 0xea, 0xc3, 0x24, 0xe1, 0x48, 0x23,
- 0x89, 0x7f, 0x7a, 0x93, 0x8e, 0xf3, 0xac, 0xc8, 0xae, 0xe4, 0x56, 0xf7,
- 0xb8, 0x99, 0x6a, 0x70, 0xe2, 0xf4, 0xe2, 0x98, 0x9d, 0xbb, 0x4d, 0x7e,
- 0xa1, 0xe5, 0xf8, 0xd8, 0xf2, 0x8b, 0x80, 0x42, 0xba, 0xb4, 0x67, 0x44,
- 0xeb, 0xcc, 0x45, 0xd8, 0x12, 0x5c, 0x8a, 0x21, 0x3c, 0x8e, 0x9c, 0x5b,
- 0x87, 0xcf, 0xb9, 0x85, 0x4c, 0x3e, 0x7b, 0x5c, 0x93, 0xe6, 0xad, 0xd0,
- 0x2a, 0x2e, 0x66, 0xbd, 0x9d, 0x68, 0x65, 0x1d, 0xc5, 0x44, 0x12, 0xe5,
- 0xc7, 0x5e, 0x6b, 0x1f, 0x9d, 0x29, 0x30, 0xc0, 0x2f, 0x87, 0xd1, 0x38,
- 0xac, 0x98, 0xc8, 0x81, 0x80, 0x27, 0xc7, 0x97, 0xaf, 0xa3, 0x49, 0x1e,
- 0xd3, 0xf4, 0xf1, 0x6f, 0x9f, 0x74, 0x80, 0x9f, 0xe3, 0x46, 0x16, 0x70,
- 0xb1, 0xe0, 0x4d, 0xea, 0xb3, 0xe7, 0xb1, 0xbf, 0xf3, 0x74, 0x50, 0x3e,
- 0xb4, 0x46, 0x0a, 0x86, 0xd6, 0x4b, 0xad, 0xac, 0xe1, 0xb7, 0x4b, 0x13,
- 0x3c, 0x73, 0xc4, 0xcc, 0x3e, 0xac, 0x1a, 0x20, 0x87, 0x6d, 0xa0, 0xc0,
- 0xa8, 0x57, 0xdc, 0xc7, 0xf3, 0x9e, 0x4a, 0x3e, 0x36, 0xec, 0xb2, 0x35,
- 0xea, 0x52, 0x02, 0x2d, 0xab, 0xa1, 0x94, 0x4d, 0x3d, 0xa4, 0x35, 0xb0,
- 0xd2, 0xe2, 0x2a, 0xdb, 0xe2, 0x28, 0xed, 0xe3, 0x35, 0xe8, 0x89, 0x45,
- 0x95, 0x30, 0xdb, 0xb5, 0x78, 0x5f, 0x5b, 0xa6, 0x86, 0xa1, 0x81, 0x18,
- 0x36, 0x50, 0x81, 0x45, 0x58, 0x93, 0xf4, 0xcb, 0x76, 0xa3, 0xfe, 0x52,
- 0xd3, 0x61, 0xdb, 0x93, 0x84, 0xac, 0x10, 0xb4, 0x61, 0xbb, 0xd5, 0x48,
- 0x0c, 0x52, 0xaa, 0xb9, 0x1e, 0x07, 0x52, 0x3b, 0x57, 0xc2, 0xcf, 0xea,
- 0x1c, 0xad, 0xbf, 0x8c, 0xa2, 0xfd, 0xae, 0x10, 0x79, 0x32, 0xe7, 0x9a,
- 0x1a, 0x42, 0xda, 0xb8, 0xbd, 0x1d, 0x1f, 0xac, 0x32, 0x3c, 0x97, 0xcc,
- 0xd2, 0x5f, 0xb6, 0x8f, 0x2e, 0xce, 0x13, 0xbe, 0x9c, 0x24, 0x04, 0x52,
- 0x4b, 0x88, 0x0d, 0xfe, 0x1d, 0x88, 0xdb, 0x55, 0x7c, 0x05, 0xcf, 0x87,
- 0xde, 0x6e, 0x23, 0x48, 0x7f, 0xb4, 0xe4, 0xef, 0x5a, 0x2b, 0x75, 0x2b,
- 0x33, 0x94, 0x27, 0xd4, 0x29, 0x1b, 0xb8, 0x56, 0x0b, 0x0e, 0x94, 0x9b,
- 0x31, 0x72, 0xb0, 0x99, 0xdc, 0x59, 0xfa, 0x63, 0xfd, 0xb8, 0x4e, 0x13,
- 0x4b, 0xe1, 0x1d, 0xa1, 0x10, 0x51, 0x33, 0xbb, 0x4b, 0x1f, 0xb0, 0x33,
- 0x49, 0xe3, 0xda, 0x7a, 0xd4, 0xe6, 0xa0, 0x46, 0x03, 0x2e, 0x81, 0x4b,
- 0x85, 0x7e, 0x81, 0x32, 0x50, 0x6b, 0x83, 0x36, 0xe2, 0xd0, 0xd8, 0x19,
- 0x36, 0xe3, 0x66, 0x49, 0x02, 0x69, 0xaf, 0xc5, 0x6a, 0x6e, 0x86, 0xdc,
- 0x14, 0x85, 0x30, 0x62, 0xa4, 0xe0, 0x5b, 0x96, 0x96, 0xbc, 0xce, 0x99,
- 0xde, 0x77, 0x40, 0x3b, 0xb4, 0x52, 0x46, 0x8f, 0x14, 0xe8, 0x12, 0xab,
- 0x91, 0x56, 0x98, 0xc7, 0xa8, 0xdc, 0x02, 0x3e, 0x1e, 0x76, 0x67, 0x50,
- 0xf8, 0x62, 0xf7, 0xbc, 0x86, 0x0d, 0x36, 0x88, 0x2f, 0x73, 0x19, 0x80,
- 0xec, 0x9f, 0x54, 0xb3, 0x5b, 0x83, 0x89, 0x48, 0x65, 0x11, 0x62, 0x22,
- 0xd2, 0xa7, 0x70, 0x26, 0x0f, 0x76, 0xd1, 0x32, 0x92, 0x6a, 0xa6, 0xc6,
- 0x63, 0x74, 0xb0, 0x14, 0xdb, 0x84, 0xcf, 0xea, 0xe0, 0x94, 0x76, 0x18,
- 0x4e, 0xd5, 0x58, 0x7b, 0x79, 0x78, 0x1e, 0xd8, 0xc2, 0x49, 0x85, 0x2b,
- 0x9a, 0x29, 0x4d, 0x2e, 0xca, 0x0c, 0xc1, 0x3a, 0x73, 0xd7, 0xfa, 0xec,
- 0xdf, 0xb8, 0x36, 0x7e, 0x06, 0xc1, 0xf2, 0xb8, 0x0f, 0x6b, 0x4b, 0xa3,
- 0xf9, 0x7b, 0xe9, 0xa4, 0x35, 0x8b, 0x42, 0x17, 0xc8, 0x70, 0xb8, 0x75,
- 0x89, 0x38, 0x6b, 0xcc, 0xd2, 0x24, 0x4f, 0x8e, 0x68, 0x30, 0x2c, 0xdc,
- 0x5c, 0x13, 0xf9, 0x7c, 0xe9, 0x73, 0xba, 0x9a, 0x52, 0x59, 0x90, 0x09,
- 0x0e, 0x37, 0x07, 0x6a, 0x37, 0x79, 0x63, 0x1d, 0xb7, 0x92, 0x84, 0xb8,
- 0x1d, 0xe2, 0x37, 0xd6, 0x2c, 0xd2, 0xf6, 0x3c, 0x79, 0x14, 0x57, 0xe7,
- 0xc0, 0x90, 0x9b, 0xa5, 0x80, 0x79, 0x69, 0xee, 0x9a, 0xc3, 0x6a, 0xcf,
- 0x13, 0x64, 0x00, 0xf2, 0x80, 0x83, 0x11, 0x17, 0x2d, 0xb7, 0x13, 0x72,
- 0xa2, 0x92, 0x99, 0xba, 0xb5, 0x46, 0x79, 0x76, 0x4b, 0x27, 0x84, 0xdf,
- 0x83, 0x30, 0xca, 0x6b, 0x2f, 0x87, 0xdc, 0x4c, 0x59, 0x74, 0x0c, 0x14,
- 0xee, 0xb5, 0x69, 0x98, 0x33, 0xbc, 0x6b, 0x4d, 0xa4, 0xf1, 0x87, 0x45,
- 0x80, 0xa6, 0x10, 0x06, 0x68, 0x17, 0x28, 0xae, 0x1e, 0xae, 0x80, 0x04,
- 0xb7, 0xbc, 0x18, 0x5c, 0x1a, 0x1a, 0x69, 0x03, 0x9a, 0xf7, 0x37, 0xa7,
- 0x21, 0x47, 0x16, 0x21, 0x0d, 0xb5, 0xec, 0x79, 0x85, 0x98, 0x44, 0x12,
- 0x78, 0x49, 0x54, 0x25, 0x77, 0x3c, 0xbb, 0xfd, 0xea, 0xca, 0x3f, 0xa0,
- 0x4e, 0xfb, 0x3e, 0x64, 0x5d, 0x5c, 0x83, 0x57, 0x6a, 0x08, 0x15, 0xa3,
- 0xe3, 0xc4, 0xa3, 0xc8, 0xc7, 0x22, 0x5e, 0xf4, 0x50, 0x06, 0x92, 0x75,
- 0xdd, 0xe6, 0xed, 0xee, 0x53, 0x6a, 0x54, 0x5d, 0x81, 0xa3, 0x82, 0xf7,
- 0x07, 0x19, 0xaa, 0x69, 0x50, 0x43, 0xe6, 0x8f, 0x61, 0x90, 0x74, 0x9b,
- 0xd1, 0x12, 0xc8, 0x06, 0x49, 0xe1, 0x4d, 0xb3, 0x12, 0x17, 0xe3, 0x72,
- 0xd8, 0x18, 0x1b, 0x25, 0xe4, 0x19, 0x18, 0xdc, 0x20, 0x3a, 0x66, 0x3b,
- 0x6b, 0x8b, 0xf2, 0x90, 0xba, 0x5a, 0x87, 0x52, 0x32, 0x3c, 0x55, 0xec,
- 0x04, 0x89, 0xbe, 0x56, 0x6d, 0x8c, 0xeb, 0x84, 0x21, 0x5b, 0xcf, 0xa5,
- 0x48, 0x48, 0xe9, 0xb6, 0x36, 0x45, 0xaa, 0x28, 0x25, 0x91, 0x5d, 0xe3,
- 0x1d, 0xed, 0x03, 0x07, 0x95, 0xf5, 0xda, 0xdb, 0xfb, 0x7b, 0x91, 0xb8,
- 0x2c, 0xa1, 0x67, 0x08, 0xc0, 0x4b, 0xdb, 0x64, 0xa3, 0xe0, 0xb1, 0xf0,
- 0x95, 0xfd, 0xcf, 0x76, 0x2c, 0x22, 0x8b, 0x33, 0xd8, 0xc3, 0x67, 0x90,
- 0xd0, 0xdd, 0xbc, 0x67, 0x90, 0xe8, 0x9e, 0x95, 0xee, 0xc9, 0x3a, 0x34,
- 0xeb, 0x8b, 0xc1, 0xd3, 0x8a, 0x79, 0x77, 0x5e, 0x4e, 0x67, 0x0e, 0x1a,
- 0xc8, 0x74, 0x82, 0xb7, 0x97, 0xa7, 0x6f, 0xa2, 0x86, 0x2e, 0x20, 0x5a,
- 0x68, 0xdb, 0x77, 0xff, 0x8a, 0x52, 0x40, 0x5f, 0x9c, 0x9c, 0x0c, 0xa1,
- 0x12, 0xa8, 0xa3, 0xba, 0x11, 0x70, 0x51, 0x0a, 0xf9, 0xb0, 0x58, 0x95,
- 0xa7, 0xa4, 0xd2, 0x93, 0x0c, 0x49, 0xbf, 0x97, 0xd9, 0x38, 0x9b, 0x72,
- 0x32, 0x21, 0xbf, 0x93, 0x68, 0xa9, 0x78, 0x5c, 0xef, 0x0c, 0x5d, 0x36,
- 0x05, 0x57, 0x22, 0x4d, 0xbc, 0x11, 0x30, 0xb3, 0xd0, 0x90, 0x63, 0xc7,
- 0x52, 0x14, 0xf1, 0x8a, 0xef, 0x0a, 0x2e, 0x50, 0x39, 0xd1, 0x9b, 0x26,
- 0x05, 0xde, 0x37, 0x0b, 0x9a, 0x6a, 0xe3, 0xb8, 0x4d, 0x11, 0xf5, 0xd7,
- 0x48, 0xe5, 0xd4, 0x9a, 0x55, 0x35, 0x25, 0x7f, 0x3e, 0xc9, 0x72, 0xb8,
- 0xed, 0x02, 0x94, 0x18, 0x40, 0x9b, 0x2d, 0x11, 0x14, 0x03, 0xae, 0xb9,
- 0x6a, 0x1e, 0xa5, 0xfb, 0x9b, 0x4c, 0x43, 0x7d, 0x65, 0xa5, 0x99, 0x31,
- 0x49, 0x1c, 0x04, 0xdc, 0x73, 0x02, 0x30, 0x22, 0x38, 0x85, 0x8e, 0x93,
- 0x04, 0xbb, 0xd1, 0xe6, 0x5e, 0x73, 0x55, 0xe2, 0x24, 0xd3, 0xaa, 0x27,
- 0xf6, 0x4d, 0xda, 0x9c, 0xa3, 0xf4, 0x7a, 0x0d, 0xfe, 0x56, 0x9b, 0xd2,
- 0xc1, 0xa3, 0x71, 0xfa, 0x46, 0xbb, 0xba, 0xd1, 0x1a, 0x1d, 0x5c, 0xd1,
- 0x37, 0x88, 0xda, 0x7e, 0x41, 0x86, 0x97, 0xaf, 0x58, 0x2a, 0xda, 0x86,
- 0xa8, 0x1b, 0xb8, 0xf8, 0x4c, 0xd7, 0x78, 0xd7, 0x70, 0x68, 0x3d, 0xa6,
- 0x52, 0x54, 0x53, 0xb3, 0x78, 0x4a, 0xff, 0xa3, 0xd2, 0x71, 0x46, 0x23,
- 0x55, 0x29, 0xb2, 0x35, 0x84, 0xf3, 0x3b, 0xa4, 0x7d, 0x98, 0x9c, 0x99,
- 0xe9, 0x43, 0x21, 0x1a, 0x55, 0x51, 0x4e, 0x32, 0x06, 0x17, 0xb1, 0xa0,
- 0xa4, 0xdc, 0x2e, 0xf3, 0xbf, 0xff, 0xa3, 0xe9, 0xa7, 0xfe, 0xf1, 0x27,
- 0xd8, 0x87, 0x10, 0x5e, 0xeb, 0x7c, 0x28, 0x46, 0x46, 0x85, 0xc7, 0x16,
- 0xe4, 0x1d, 0xe3, 0x5c, 0x16, 0x9d, 0xa1, 0x55, 0x06, 0xaf, 0xab, 0x30,
- 0x16, 0x99, 0x66, 0x89, 0x07, 0x3a, 0x3a, 0xbb, 0x08, 0x80, 0xf7, 0x12,
- 0xd4, 0xf1, 0x0d, 0x8a, 0x07, 0x48, 0xc4, 0xf4, 0x3a, 0xc4, 0x25, 0x8b,
- 0x47, 0x57, 0x30, 0x1f, 0x0b, 0x2b, 0xe7, 0x40, 0x60, 0xb1, 0x9f, 0x63,
- 0x06, 0x7c, 0xd1, 0xc0, 0x19, 0x98, 0xce, 0x9b, 0x68, 0x20, 0xb2, 0xd1,
- 0x1a, 0xd3, 0xfb, 0x77, 0x3a, 0x65, 0xbd, 0xf2, 0x3e, 0xfb, 0xc7, 0x80,
- 0xbd, 0x6a, 0xe0, 0xc4, 0xfd, 0x4c, 0xc0, 0x43, 0xdf, 0x7f, 0xb2, 0xcb,
- 0x7a, 0x77, 0xa7, 0x09, 0x99, 0x8a, 0x45, 0xb0, 0x4d, 0x77, 0x51, 0xfa,
- 0x6b, 0xc0, 0x47, 0xaa, 0xdd, 0x71, 0x2f, 0x3d, 0xbe, 0x14, 0xfe, 0x31,
- 0xe0, 0x7f, 0x7f, 0xdc, 0xed, 0x3f, 0xfb, 0xc9, 0xf5, 0xfa, 0xc9, 0xee,
- 0xfb, 0x4f, 0xf6, 0x3a, 0x6d, 0xa8, 0xaa, 0x6c, 0x99, 0x58, 0x1a, 0x12,
- 0xa6, 0xe9, 0x73, 0x5a, 0x3b, 0x54, 0x1c, 0x5d, 0x6a, 0xf9, 0xf1, 0x68,
- 0x6b, 0x00, 0x7f, 0x6c, 0x71, 0x22, 0xb2, 0xda, 0xd2, 0x9e, 0x69, 0xaf,
- 0x10, 0xb6, 0x62, 0x09, 0xf7, 0xa5, 0x00, 0x03, 0xed, 0x56, 0x2b, 0xe3,
- 0xc1, 0xb2, 0x8d, 0x60, 0x1b, 0xb5, 0x19, 0x36, 0xcc, 0x93, 0x1c, 0xf4,
- 0x33, 0x59, 0xd1, 0xc5, 0x27, 0x60, 0x17, 0x2e, 0xab, 0xd7, 0x44, 0x49,
- 0xab, 0x29, 0x2a, 0xf9, 0x43, 0x9b, 0xb1, 0x15, 0x13, 0x8b, 0x90, 0x6a,
- 0xb2, 0xd5, 0xa6, 0xd0, 0x78, 0x1d, 0xc2, 0xd3, 0xfc, 0x28, 0x71, 0xf5,
- 0x45, 0x95, 0xd8, 0xfd, 0xf9, 0xa9, 0x41, 0x4e, 0xb4, 0x9e, 0x9e, 0xa0,
- 0xa9, 0x58, 0x67, 0x14, 0xd4, 0x7a, 0x56, 0x90, 0x59, 0x87, 0xe4, 0x84,
- 0xaf, 0xee, 0x81, 0x2b, 0xdd, 0x00, 0x4a, 0x42, 0x2a, 0x96, 0x73, 0xf7,
- 0x84, 0x60, 0x5e, 0xe1, 0xcb, 0x2e, 0x5c, 0x43, 0xb2, 0xed, 0x88, 0xa6,
- 0x51, 0xcf, 0x68, 0x59, 0x36, 0x93, 0xec, 0x07, 0x5b, 0xad, 0xa1, 0xa6,
- 0x06, 0x2a, 0xe5, 0x63, 0x76, 0xa3, 0x20, 0xc8, 0x29, 0x2a, 0x04, 0xb6,
- 0x93, 0x01, 0xc4, 0x05, 0xf1, 0x22, 0xf1, 0x86, 0x81, 0x46, 0x30, 0xa7,
- 0x16, 0xdb, 0xeb, 0x39, 0x1c, 0x98, 0x64, 0x5a, 0x24, 0x83, 0x7f, 0x2b,
- 0xf9, 0x55, 0xb6, 0xa8, 0x1f, 0x37, 0x3c, 0x80, 0x15, 0xf6, 0x2f, 0x61,
- 0x1f, 0xd5, 0x2a, 0x7c, 0x52, 0x59, 0xc0, 0x95, 0xb9, 0x73, 0x93, 0x2a,
- 0x84, 0x3c, 0x1a, 0x59, 0x12, 0xb1, 0xd9, 0xa5, 0x24, 0x6d, 0xb4, 0x01,
- 0x4c, 0x82, 0x14, 0x52, 0xe7, 0x92, 0x80, 0x77, 0x3e, 0x93, 0xe4, 0x2e,
- 0x96, 0x6f, 0x9b, 0x60, 0x78, 0xee, 0x26, 0xac, 0xe8, 0xdb, 0x52, 0x4d,
- 0x5c, 0x99, 0xdd, 0x18, 0xdc, 0x49, 0x6a, 0x35, 0x54, 0xe7, 0xdb, 0xa2,
- 0x81, 0xb9, 0xd2, 0xa2, 0x4b, 0x27, 0x1f, 0x48, 0x46, 0x25, 0xb4, 0xa4,
- 0x4e, 0x9f, 0x63, 0x65, 0x3a, 0x02, 0x49, 0x0b, 0xe5, 0x30, 0x68, 0xee,
- 0x51, 0xf0, 0xae, 0x17, 0x55, 0xd7, 0x30, 0x5b, 0x8d, 0xa2, 0x97, 0x8b,
- 0x9b, 0x9c, 0x64, 0x9a, 0x47, 0x40, 0x08, 0xe8, 0x29, 0x79, 0xc6, 0x31,
- 0xda, 0x85, 0x4f, 0xda, 0xff, 0x0d, 0xb3, 0xe1, 0x39, 0xb0, 0xfe, 0xc9,
- 0xce, 0x6e, 0xa3, 0x0a, 0x89, 0x2f, 0x3c, 0xae, 0xba, 0x23, 0x2f, 0x31,
- 0x2d, 0xce, 0xc5, 0xeb, 0xc3, 0x28, 0xda, 0x7b, 0xbe, 0xfb, 0x7c, 0x7b,
- 0x77, 0x67, 0xf0, 0x64, 0xb0, 0x17, 0x39, 0xd3, 0x38, 0xc9, 0xea, 0x5c,
- 0xe6, 0x07, 0xa1, 0x35, 0xed, 0xd1, 0x28, 0xac, 0xf0, 0x51, 0x63, 0x1c,
- 0x37, 0xe3, 0x3e, 0x81, 0xf1, 0xc5, 0x5f, 0xe1, 0x31, 0x07, 0xce, 0xb8,
- 0xc8, 0x0c, 0xb3, 0x7d, 0x37, 0x9c, 0xd5, 0xf3, 0x3e, 0xc6, 0xa1, 0x42,
- 0xdf, 0x52, 0xd0, 0x94, 0xa3, 0xe5, 0x28, 0x25, 0xa1, 0xa5, 0xe4, 0x22,
- 0x78, 0xac, 0x41, 0x90, 0x28, 0x6b, 0x58, 0x3d, 0x3d, 0x8e, 0x05, 0x74,
- 0x55, 0x12, 0xdb, 0x03, 0x14, 0x4d, 0x56, 0x09, 0x0c, 0x17, 0x88, 0x54,
- 0x4d, 0x35, 0x17, 0x17, 0xc0, 0x2b, 0x74, 0xe3, 0x4b, 0xd9, 0x99, 0xaf,
- 0x5d, 0x36, 0x70, 0xdc, 0x1a, 0xe7, 0x09, 0xac, 0x4e, 0xaf, 0xfd, 0x72,
- 0x51, 0x29, 0x0e, 0x39, 0xf2, 0x70, 0x24, 0xfa, 0x81, 0x10, 0xab, 0x88,
- 0x82, 0x98, 0x77, 0x1b, 0x74, 0x5a, 0xea, 0x6a, 0x25, 0xf8, 0x1d, 0x57,
- 0x34, 0x0f, 0xf6, 0xee, 0x8a, 0x8e, 0x27, 0x46, 0x65, 0x14, 0xc7, 0x7e,
- 0x2c, 0xc0, 0xf0, 0x11, 0x9c, 0x39, 0xa1, 0x85, 0xbd, 0xff, 0x2f, 0xd1,
- 0xc2, 0xde, 0xff, 0x4f, 0x0b, 0xff, 0x26, 0x5a, 0x78, 0x51, 0xa3, 0x05,
- 0xd6, 0xec, 0x88, 0x6f, 0xa9, 0x82, 0xd7, 0x44, 0xe2, 0x11, 0xaa, 0x08,
- 0xc8, 0xc2, 0xd7, 0x8f, 0x63, 0xfd, 0x5e, 0x60, 0x42, 0xf4, 0x65, 0x85,
- 0x0e, 0x42, 0x45, 0x3b, 0x8d, 0x83, 0x6c, 0x22, 0x69, 0x72, 0xc1, 0x3e,
- 0xf6, 0xc3, 0x9f, 0xbb, 0xb7, 0x58, 0x8c, 0xe6, 0xcf, 0x96, 0x62, 0x1c,
- 0x49, 0xae, 0xb0, 0x0b, 0xf0, 0xed, 0xf6, 0xf0, 0x25, 0xc2, 0xaf, 0x39,
- 0xe3, 0xbe, 0xc1, 0xdf, 0x61, 0x4f, 0x31, 0x9d, 0x1d, 0xed, 0x48, 0xcd,
- 0x5f, 0x1b, 0x92, 0x96, 0x68, 0xc8, 0xa3, 0x2e, 0x5d, 0x05, 0x8c, 0xb6,
- 0xe1, 0x53, 0x79, 0x5b, 0xca, 0x38, 0x5f, 0xa5, 0x0f, 0xa2, 0xcf, 0xfe,
- 0x9c, 0xe4, 0x59, 0x64, 0xfe, 0x26, 0x0d, 0xa5, 0x03, 0x7c, 0x94, 0xa5,
- 0xc4, 0xfb, 0x0f, 0xb9, 0xd7, 0x86, 0x88, 0xfa, 0x27, 0xa0, 0xfa, 0x49,
- 0xf4, 0x24, 0xc7, 0x84, 0xd9, 0x68, 0x98, 0x06, 0x26, 0x93, 0xd4, 0x84,
- 0x3f, 0xbf, 0x70, 0x56, 0x66, 0x0f, 0xae, 0xec, 0xb2, 0xa5, 0xa2, 0x2c,
- 0xaf, 0xcc, 0x66, 0xd9, 0x52, 0x34, 0x37, 0xbd, 0x92, 0x6c, 0x0a, 0x19,
- 0x8e, 0xcb, 0x0a, 0x6e, 0x08, 0x1d, 0xfd, 0x28, 0x3a, 0x4a, 0xe6, 0x2b,
- 0xb3, 0xcd, 0x78, 0x8d, 0x5e, 0x2a, 0x33, 0x41, 0xc6, 0x29, 0xbd, 0xcb,
- 0xc3, 0x4c, 0x54, 0x6e, 0x88, 0xcd, 0x21, 0x55, 0xc7, 0x5c, 0xb6, 0xb8,
- 0x3e, 0x5e, 0xb9, 0x65, 0xc8, 0x44, 0x98, 0x0b, 0xd7, 0x62, 0x13, 0x00,
- 0x00, 0x26, 0xbe, 0xa2, 0x3f, 0x6b, 0xf1, 0xd1, 0x65, 0xd8, 0x82, 0xde,
- 0x2b, 0x1e, 0x9c, 0x62, 0x39, 0xfa, 0x2b, 0x58, 0x14, 0x13, 0x26, 0xd7,
- 0xad, 0xe1, 0x33, 0x18, 0xa2, 0xde, 0x71, 0xad, 0x83, 0xe5, 0x48, 0x50,
- 0x0e, 0xca, 0x66, 0x73, 0xf4, 0x21, 0x04, 0x6b, 0x97, 0x01, 0xaf, 0x74,
- 0x16, 0xd8, 0xe9, 0x1a, 0x93, 0x0a, 0xcc, 0x4d, 0x8d, 0x7d, 0xb7, 0xf3,
- 0xc4, 0x55, 0x92, 0x0a, 0x35, 0x2c, 0x84, 0x9b, 0xe5, 0x56, 0x53, 0x1c,
- 0xd5, 0xce, 0xac, 0xc6, 0x8f, 0xaf, 0x6d, 0x8b, 0xa8, 0xb5, 0xc7, 0xca,
- 0x4e, 0xd1, 0xfb, 0x13, 0xff, 0x68, 0xaf, 0x96, 0x5b, 0x49, 0xd0, 0x30,
- 0x1b, 0x3c, 0x3f, 0x8e, 0xa3, 0x81, 0xd7, 0xd7, 0x75, 0xf0, 0x8a, 0xbf,
- 0x95, 0x1e, 0x1e, 0x6f, 0x1b, 0xda, 0xcc, 0x2f, 0xe8, 0xe0, 0xdd, 0xdc,
- 0x22, 0xc1, 0x8c, 0xcc, 0x17, 0x2e, 0x60, 0x93, 0xa4, 0xbc, 0x7c, 0x2e,
- 0x06, 0x74, 0x91, 0x48, 0x63, 0xab, 0x1f, 0xc7, 0x79, 0x38, 0xc0, 0xfb,
- 0xaa, 0x07, 0x39, 0x30, 0x80, 0xce, 0x14, 0xfc, 0x95, 0xfe, 0xe5, 0xbd,
- 0x85, 0x76, 0x6a, 0x71, 0xd1, 0x26, 0x2d, 0x2e, 0xb2, 0x52, 0x22, 0xb4,
- 0xd9, 0x6c, 0xc9, 0xd2, 0x6d, 0xce, 0x77, 0x43, 0x0b, 0xc6, 0x91, 0x6d,
- 0x84, 0x25, 0xe9, 0x73, 0xb3, 0xdc, 0xe0, 0x72, 0x21, 0x4e, 0x50, 0x49,
- 0x58, 0xd0, 0x32, 0x0f, 0xc8, 0x60, 0x30, 0xca, 0x95, 0x9e, 0xeb, 0x86,
- 0x29, 0x98, 0x4c, 0x70, 0xd9, 0xb9, 0xf0, 0xee, 0xbb, 0x2c, 0x9d, 0xa0,
- 0x04, 0x6e, 0x9e, 0xb7, 0xe0, 0xbf, 0x7f, 0x5c, 0xbc, 0x65, 0x2f, 0xc0,
- 0x79, 0x89, 0x8b, 0xd0, 0x3d, 0xd6, 0xb4, 0x0a, 0xbb, 0xf8, 0xdf, 0x58,
- 0x42, 0xda, 0x88, 0x88, 0xe7, 0x71, 0x69, 0x47, 0xcc, 0x6f, 0x03, 0x46,
- 0x29, 0x29, 0xd7, 0xec, 0xad, 0x1b, 0x27, 0x2d, 0xf8, 0x7e, 0x50, 0x0b,
- 0xdb, 0x83, 0xb5, 0x6a, 0x11, 0x92, 0x7b, 0x8d, 0xfb, 0x44, 0x02, 0xbe,
- 0x3f, 0x7c, 0xab, 0xb4, 0x5c, 0x2a, 0x7a, 0xa7, 0x04, 0x9c, 0x51, 0x2a,
- 0xb2, 0x39, 0xf9, 0x60, 0xd0, 0x12, 0x6f, 0x66, 0x94, 0x2c, 0x21, 0x6c,
- 0xf7, 0xe1, 0xdb, 0x39, 0x0c, 0x20, 0x24, 0xca, 0x88, 0x13, 0xe0, 0x17,
- 0x4e, 0xe5, 0x61, 0xd5, 0x27, 0x85, 0x8c, 0xcd, 0x6e, 0xad, 0x13, 0xb0,
- 0x8d, 0x5e, 0x20, 0x94, 0x87, 0x88, 0x26, 0x95, 0x2c, 0xf5, 0x9a, 0x97,
- 0xda, 0x0c, 0xb4, 0x5a, 0x59, 0x77, 0x36, 0x5b, 0xd6, 0x69, 0x71, 0x6e,
- 0xb5, 0x7c, 0x45, 0x93, 0x0a, 0x6b, 0xb7, 0x9b, 0xb9, 0xdd, 0xd0, 0x02,
- 0x05, 0xc7, 0x5b, 0x12, 0x56, 0x40, 0x5b, 0xac, 0x95, 0xb6, 0xcb, 0x5e,
- 0xdb, 0x2e, 0x52, 0x3d, 0x67, 0x8c, 0x87, 0x3e, 0xf1, 0xba, 0x45, 0x2d,
- 0x61, 0xe5, 0x49, 0xdb, 0x94, 0x81, 0xa8, 0xf9, 0xe8, 0x84, 0xb9, 0xf3,
- 0xb5, 0xf1, 0xcc, 0x51, 0x38, 0x53, 0x9b, 0xd9, 0x3a, 0xeb, 0x93, 0x4c,
- 0x52, 0xe7, 0xf8, 0x4e, 0xdc, 0x9c, 0x68, 0x13, 0xca, 0x22, 0xb3, 0x19,
- 0x5e, 0x96, 0xa0, 0x2f, 0x51, 0x35, 0x1b, 0x13, 0x86, 0x0e, 0x2f, 0x29,
- 0x17, 0xf2, 0x9c, 0x1e, 0x07, 0x8f, 0x68, 0x51, 0x1f, 0xa4, 0xee, 0x0a,
- 0xe6, 0xd4, 0xb4, 0xa1, 0x16, 0xd2, 0x11, 0x0f, 0x2c, 0xad, 0x86, 0xfa,
- 0xc8, 0x1a, 0x4d, 0x60, 0xcc, 0x7d, 0x84, 0xac, 0xc3, 0x55, 0x12, 0xcb,
- 0x6f, 0x7d, 0x04, 0x52, 0xd3, 0xf7, 0x9f, 0x5c, 0x24, 0xe9, 0xbf, 0x65,
- 0x95, 0xb4, 0xaf, 0xd6, 0x4c, 0x86, 0x70, 0x99, 0x1a, 0x33, 0x5a, 0x17,
- 0xc2, 0xb4, 0x66, 0xe7, 0xd7, 0x05, 0x31, 0xd5, 0xa7, 0xd5, 0x16, 0x6a,
- 0xda, 0x3e, 0x31, 0x85, 0xfe, 0xf2, 0x03, 0x51, 0xee, 0xeb, 0xe6, 0x87,
- 0x8e, 0xeb, 0xde, 0x40, 0xf7, 0xb0, 0xa6, 0x36, 0x55, 0x48, 0xe1, 0x51,
- 0x2d, 0xc8, 0x99, 0xc8, 0x3f, 0x86, 0x39, 0xc9, 0x9c, 0xd9, 0x28, 0xff,
- 0x6b, 0xee, 0x22, 0xdc, 0x41, 0x95, 0x3d, 0x44, 0x17, 0x95, 0xa9, 0xb4,
- 0xf8, 0xc3, 0x1a, 0x9b, 0xb7, 0x3b, 0xd8, 0x01, 0xb7, 0x7d, 0x58, 0xc1,
- 0x04, 0xba, 0xcf, 0x77, 0xd7, 0x4f, 0x9f, 0x37, 0x0a, 0x59, 0xb8, 0xc2,
- 0xcf, 0x1e, 0x03, 0x56, 0x4a, 0xa7, 0xf0, 0xfb, 0x36, 0x32, 0x43, 0xae,
- 0xf2, 0x49, 0x7f, 0x1a, 0x4e, 0xb4, 0x1e, 0xd4, 0x2f, 0x2d, 0x03, 0x4c,
- 0x3f, 0xce, 0xcb, 0xc3, 0xcb, 0xbb, 0x3b, 0x9f, 0xed, 0xb4, 0xe6, 0x2e,
- 0x43, 0x84, 0x08, 0x0a, 0xd2, 0x39, 0xc4, 0x4d, 0x11, 0x4d, 0xb5, 0x2a,
- 0x6e, 0x62, 0x83, 0x53, 0xe7, 0x47, 0x6b, 0x60, 0xc6, 0x66, 0xff, 0x61,
- 0x5b, 0xd7, 0x80, 0xe5, 0xc2, 0x54, 0x03, 0xaa, 0xd5, 0x25, 0xee, 0xb2,
- 0x15, 0x0f, 0xcf, 0xde, 0xbe, 0x3d, 0x3e, 0x24, 0x55, 0xec, 0x26, 0x87,
- 0xe0, 0xe8, 0xdc, 0x98, 0x6d, 0x66, 0x51, 0x5f, 0x6a, 0x43, 0x06, 0xc0,
- 0x8b, 0x13, 0x48, 0xf0, 0xce, 0x19, 0x50, 0xe3, 0x2f, 0x2d, 0xc4, 0xb9,
- 0x3b, 0xd8, 0x0d, 0xb6, 0x6a, 0x61, 0x23, 0x2d, 0x39, 0xd1, 0x70, 0xda,
- 0x1a, 0x3f, 0x65, 0x7d, 0xca, 0x9c, 0xcd, 0xe0, 0x53, 0x9d, 0x65, 0x23,
- 0x01, 0x0f, 0x97, 0x41, 0x8b, 0xbe, 0x6c, 0x2d, 0x99, 0x72, 0x86, 0x64,
- 0x17, 0x59, 0x19, 0xcd, 0x5e, 0xc3, 0x40, 0x22, 0xb7, 0x2c, 0x0a, 0x3d,
- 0xd6, 0xb2, 0x30, 0x61, 0x01, 0x9d, 0x59, 0x02, 0x09, 0x4c, 0xf4, 0xce,
- 0xb4, 0xd4, 0xa2, 0x99, 0x00, 0xd1, 0x86, 0x7d, 0xd7, 0xc5, 0xad, 0x2b,
- 0xe8, 0x3f, 0xf5, 0xd2, 0xb8, 0xef, 0xa8, 0xd7, 0x78, 0x41, 0x1d, 0x21,
- 0x57, 0xa7, 0x10, 0x80, 0x5d, 0x77, 0x50, 0x2a, 0xdb, 0x6e, 0x5b, 0xe7,
- 0x52, 0x9d, 0x5a, 0xb2, 0x08, 0x9c, 0x13, 0xcb, 0x25, 0x81, 0xc8, 0xcb,
- 0x2a, 0x53, 0x6a, 0x56, 0x91, 0x86, 0xb1, 0x58, 0x64, 0xac, 0x32, 0x8a,
- 0x96, 0xc2, 0xd3, 0x4a, 0xf5, 0x12, 0xd8, 0x14, 0xcf, 0x85, 0x8c, 0x74,
- 0xad, 0x1c, 0x05, 0x65, 0x95, 0x43, 0xb8, 0x1c, 0x3d, 0x02, 0x40, 0xca,
- 0x76, 0x3f, 0x71, 0x24, 0x3e, 0x8a, 0x3d, 0xea, 0x42, 0xe3, 0x2c, 0xc6,
- 0x70, 0x4d, 0x75, 0x83, 0x7f, 0x3b, 0xf6, 0xe8, 0xf9, 0xb6, 0xd6, 0x56,
- 0x47, 0x3e, 0xf1, 0xba, 0xfc, 0x9c, 0xd7, 0x5a, 0x0a, 0x19, 0xfe, 0xe1,
- 0xa2, 0x76, 0x3a, 0xb4, 0xf8, 0x69, 0x96, 0x6f, 0x43, 0xc0, 0xe3, 0x12,
- 0x7c, 0x79, 0x36, 0x35, 0xe8, 0xec, 0x16, 0xd0, 0x43, 0x04, 0x1c, 0xd9,
- 0x55, 0x41, 0x4d, 0xab, 0x2d, 0x44, 0x9d, 0xb3, 0x33, 0x9f, 0x46, 0x29,
- 0xa2, 0xa3, 0x16, 0x5a, 0xb5, 0xca, 0xe7, 0x27, 0xf3, 0x06, 0x70, 0x1f,
- 0x3f, 0x01, 0x78, 0x3d, 0xe5, 0xeb, 0x38, 0x6e, 0x82, 0xa7, 0xad, 0x4c,
- 0xd1, 0x95, 0x80, 0x35, 0x42, 0x61, 0x60, 0x3b, 0xa5, 0x96, 0x06, 0xaa,
- 0x37, 0xa7, 0x38, 0x75, 0x8b, 0x80, 0x93, 0x5a, 0x1e, 0x92, 0x40, 0x8a,
- 0xe4, 0xa5, 0x61, 0x40, 0x54, 0x0a, 0xd6, 0xc6, 0xc5, 0x6d, 0xb1, 0x16,
- 0x9a, 0xbb, 0x1a, 0xed, 0x4d, 0xa3, 0x0b, 0x90, 0xfb, 0xad, 0x55, 0x81,
- 0xdc, 0x2a, 0xc3, 0x51, 0x32, 0x25, 0x56, 0x9b, 0x73, 0x5b, 0xd4, 0x80,
- 0x23, 0x6d, 0x28, 0xac, 0x0e, 0xc0, 0xbf, 0x5d, 0xf3, 0x4b, 0x07, 0x49,
- 0xd4, 0x61, 0x68, 0xff, 0x4e, 0x98, 0xf6, 0x25, 0xda, 0x88, 0x7b, 0x95,
- 0x2b, 0x71, 0xd0, 0x50, 0xdd, 0x58, 0x5b, 0x5c, 0x14, 0xc6, 0x5e, 0xd5,
- 0xb2, 0xcf, 0x5b, 0xb6, 0xf9, 0x6e, 0x9e, 0x3e, 0xe0, 0x2a, 0x68, 0xe2,
- 0x05, 0xbb, 0x79, 0x3f, 0x32, 0xaa, 0xdd, 0x17, 0x7b, 0x83, 0xdd, 0xe7,
- 0x9f, 0x0d, 0x76, 0x77, 0x06, 0xbb, 0x95, 0xd1, 0x41, 0x41, 0xe2, 0x90,
- 0xbf, 0xb0, 0x9d, 0x96, 0x4b, 0xb4, 0x2d, 0x76, 0x25, 0xec, 0x60, 0xb6,
- 0x1a, 0x04, 0x91, 0xeb, 0x8d, 0x2e, 0x34, 0xba, 0xbd, 0xc5, 0xcc, 0xe2,
- 0xfc, 0xd0, 0x4a, 0x6a, 0xd0, 0x0e, 0x9c, 0x6a, 0x16, 0x6c, 0xaa, 0x84,
- 0x37, 0x7a, 0xe3, 0x4f, 0x4b, 0x25, 0xa4, 0x20, 0x4d, 0xaa, 0x52, 0x78,
- 0xda, 0x45, 0xe4, 0xb9, 0xfe, 0xff, 0x85, 0xe3, 0xae, 0x68, 0x34, 0x1c,
- 0xf8, 0xe6, 0x8e, 0x21, 0xf4, 0x18, 0x17, 0x1d, 0x0b, 0xbe, 0x7f, 0x7e,
- 0x76, 0x71, 0xa9, 0x09, 0xda, 0xc2, 0x0e, 0xe2, 0xe2, 0x6e, 0xe0, 0xa2,
- 0xe5, 0x10, 0x9d, 0xab, 0x97, 0x4b, 0xe9, 0xa0, 0x3a, 0xac, 0xb9, 0xe3,
- 0xf3, 0x0b, 0x8f, 0xa2, 0x10, 0xdc, 0xa1, 0x68, 0xd3, 0x65, 0x0c, 0xb3,
- 0x58, 0x8b, 0xd6, 0xfa, 0xa4, 0xb2, 0x71, 0x8e, 0x08, 0x5e, 0x83, 0x9d,
- 0x97, 0x56, 0x68, 0xea, 0xc1, 0x2d, 0xf8, 0xb5, 0x3f, 0xfd, 0xc9, 0xb3,
- 0xa8, 0x21, 0xa7, 0xb4, 0x69, 0x45, 0x44, 0xd8, 0x38, 0x9f, 0x79, 0xf7,
- 0xba, 0x00, 0xc0, 0x44, 0x9d, 0xfd, 0x1f, 0x91, 0xf8, 0xf6, 0x53, 0xff,
- 0x47, 0xfa, 0xf3, 0xa7, 0x8e, 0xbb, 0x06, 0xa0, 0x50, 0x89, 0x67, 0xd1,
- 0x4d, 0x5e, 0x36, 0x08, 0x35, 0x63, 0x51, 0x7f, 0x54, 0xae, 0x02, 0xde,
- 0x2e, 0x8e, 0x87, 0xc4, 0x41, 0x14, 0x8c, 0x04, 0x0f, 0xa8, 0x13, 0x1b,
- 0x76, 0x8a, 0x14, 0x29, 0x23, 0x4a, 0x71, 0x6b, 0x89, 0x74, 0xc0, 0xd8,
- 0x20, 0x10, 0xf0, 0x62, 0xcf, 0x70, 0xc7, 0xd8, 0x49, 0x7a, 0x2f, 0x6c,
- 0x27, 0x36, 0x88, 0x15, 0xb9, 0x7f, 0x18, 0x5a, 0x53, 0x5d, 0xb8, 0xf2,
- 0xc1, 0x86, 0x4b, 0x09, 0xe7, 0x7c, 0x2c, 0x52, 0xf1, 0xb9, 0xa4, 0x94,
- 0x1a, 0x92, 0x10, 0x3c, 0x96, 0xb8, 0x80, 0xd9, 0x74, 0xce, 0x7e, 0x65,
- 0xb3, 0x3e, 0xe5, 0x69, 0x71, 0xcb, 0x33, 0x54, 0xd0, 0x82, 0x48, 0x90,
- 0x35, 0x36, 0x02, 0x45, 0x1f, 0x23, 0xb3, 0xbc, 0x5a, 0x8e, 0xd7, 0x37,
- 0x3b, 0x67, 0x70, 0x0b, 0xfc, 0xcd, 0xc8, 0x4c, 0xcb, 0x0e, 0xa9, 0x7f,
- 0x52, 0xd0, 0xf9, 0x3c, 0x5c, 0x69, 0x36, 0xaf, 0x14, 0xcb, 0x10, 0x94,
- 0x2b, 0x83, 0x72, 0x6b, 0xe4, 0x53, 0x85, 0xc0, 0x84, 0x2e, 0x15, 0x08,
- 0x41, 0x0b, 0xf1, 0xc4, 0x90, 0x0a, 0x35, 0xaf, 0x1d, 0xb4, 0x18, 0x42,
- 0x65, 0xb6, 0x60, 0x50, 0x58, 0x06, 0x92, 0x0e, 0xa2, 0x0d, 0xfe, 0xb0,
- 0x48, 0xe2, 0x9c, 0xb8, 0x17, 0xbb, 0x8a, 0x83, 0xc9, 0xfd, 0x2f, 0x6a,
- 0x16, 0x40, 0xa9, 0x0c, 0xec, 0x8b, 0x91, 0xb7, 0xdd, 0x6f, 0xdb, 0x43,
- 0xb9, 0xe4, 0x38, 0xcc, 0x1c, 0x2c, 0x3a, 0xce, 0x47, 0x69, 0x99, 0xc7,
- 0x1a, 0x65, 0xaf, 0x08, 0x21, 0x81, 0x70, 0xa1, 0x65, 0x3c, 0x86, 0xeb,
- 0x50, 0x42, 0x06, 0xd1, 0xff, 0x42, 0xa7, 0xfa, 0xb6, 0xd8, 0x2b, 0x90,
- 0x9a, 0xfa, 0xe5, 0xf1, 0xeb, 0xb3, 0x8b, 0xe3, 0x6a, 0x42, 0xa7, 0x80,
- 0x07, 0x44, 0x6d, 0x35, 0xc9, 0x36, 0x51, 0x3a, 0x59, 0x8d, 0x25, 0x56,
- 0xaa, 0x4d, 0x80, 0x08, 0xce, 0xbf, 0x3b, 0x0a, 0x4e, 0x9e, 0xc1, 0xac,
- 0x58, 0xa3, 0xbd, 0x56, 0xaf, 0x2e, 0xf8, 0xe7, 0x16, 0x8a, 0x61, 0x0b,
- 0xba, 0x83, 0x8d, 0x4f, 0xe0, 0x73, 0x50, 0xc8, 0xcb, 0x0c, 0x33, 0x08,
- 0xe4, 0x2c, 0x0a, 0x76, 0x4a, 0xb8, 0x46, 0x5b, 0x60, 0x73, 0x89, 0xd9,
- 0x4b, 0xed, 0x4b, 0x35, 0x71, 0xc4, 0x12, 0x98, 0xc0, 0xd1, 0x0a, 0x83,
- 0xa8, 0xd9, 0x91, 0xc2, 0xac, 0x48, 0x2f, 0x8d, 0x92, 0x34, 0x82, 0xc3,
- 0xc6, 0x9e, 0x5d, 0xf1, 0x60, 0x9b, 0xc2, 0xa0, 0x58, 0x3b, 0x51, 0x08,
- 0x6e, 0x23, 0x55, 0xa5, 0xad, 0x06, 0x40, 0xcb, 0xed, 0xeb, 0xd6, 0x57,
- 0x3b, 0xdf, 0x2c, 0xb6, 0x2a, 0xd5, 0xb6, 0x6d, 0xf1, 0xac, 0xa8, 0xe3,
- 0x9f, 0xba, 0xde, 0x12, 0xdf, 0x82, 0xb8, 0xe3, 0xc0, 0xd0, 0x2d, 0x05,
- 0x6f, 0x6b, 0xe0, 0x3c, 0xfe, 0xed, 0x55, 0xfc, 0xdc, 0xac, 0x01, 0x17,
- 0xd1, 0x5a, 0xce, 0x5b, 0x05, 0x04, 0x03, 0x9a, 0xb4, 0x93, 0x6c, 0xd0,
- 0x89, 0x1a, 0x18, 0x61, 0xed, 0x28, 0xe0, 0x71, 0x1b, 0xd8, 0x93, 0x4f,
- 0x2a, 0x75, 0xf5, 0x2b, 0x47, 0x0a, 0xdd, 0xfe, 0x83, 0x79, 0xc6, 0x91,
- 0xf8, 0x1e, 0x15, 0xab, 0x79, 0x09, 0xa1, 0x49, 0x92, 0x0a, 0xc7, 0x59,
- 0x9e, 0x37, 0x8d, 0x8e, 0x28, 0x76, 0xe5, 0x36, 0x0d, 0x19, 0x15, 0x17,
- 0xaf, 0x0f, 0x5f, 0x3c, 0x7b, 0x01, 0xd1, 0x0f, 0x65, 0xd5, 0x34, 0x1f,
- 0x4d, 0xa3, 0x0d, 0x11, 0xc6, 0xe9, 0x87, 0xdc, 0x60, 0x07, 0xda, 0x92,
- 0x9a, 0x01, 0x47, 0xc9, 0x54, 0xf0, 0x29, 0x86, 0x41, 0x13, 0x83, 0x56,
- 0xd3, 0x69, 0xdb, 0xed, 0xb9, 0xae, 0x3a, 0xb0, 0xdd, 0x1a, 0x18, 0x7d,
- 0x2a, 0xb1, 0x6f, 0x5a, 0x5d, 0xd4, 0xd4, 0x25, 0xd2, 0xd0, 0xe7, 0xd0,
- 0x66, 0x74, 0x13, 0x7b, 0x8e, 0xea, 0x5c, 0xd5, 0xd6, 0xa2, 0xad, 0xb9,
- 0xbf, 0x55, 0xcf, 0x73, 0xad, 0xf2, 0x04, 0x0e, 0x40, 0xa5, 0xda, 0xf8,
- 0x00, 0x1e, 0x05, 0xd6, 0x03, 0xda, 0x0c, 0x25, 0x6a, 0xc4, 0x32, 0x67,
- 0x0c, 0x87, 0x33, 0x78, 0xf2, 0x6a, 0xe9, 0xaf, 0x59, 0xbb, 0xf9, 0xe6,
- 0x3a, 0x5f, 0x48, 0xc2, 0x63, 0x1b, 0x40, 0x6d, 0x18, 0x07, 0x23, 0x8f,
- 0x1a, 0xb1, 0xa3, 0xe6, 0x06, 0xac, 0x16, 0x78, 0xf7, 0xe4, 0xc8, 0xd5,
- 0x39, 0xf7, 0xd1, 0x3c, 0xa3, 0x55, 0x7b, 0x73, 0xee, 0x31, 0x10, 0x9b,
- 0x67, 0x8a, 0xae, 0x29, 0x2f, 0x35, 0x8f, 0x2c, 0x51, 0x1e, 0xdf, 0xb5,
- 0x37, 0xa7, 0xad, 0x88, 0x32, 0x29, 0x6d, 0x58, 0xc3, 0x08, 0x54, 0xb5,
- 0x4a, 0x73, 0xbc, 0x31, 0x9c, 0xe8, 0x6d, 0xdd, 0x34, 0x6b, 0x16, 0xde,
- 0x90, 0x10, 0x2e, 0x82, 0xf8, 0x07, 0xd7, 0x62, 0x06, 0xd3, 0xa0, 0x61,
- 0x35, 0xaa, 0x7b, 0xad, 0x08, 0xeb, 0x9f, 0xa3, 0x9d, 0x51, 0x2a, 0xe0,
- 0x55, 0x4d, 0x52, 0xae, 0x5b, 0x49, 0x44, 0x49, 0x43, 0xf3, 0x78, 0x33,
- 0x9c, 0xc2, 0x3c, 0xca, 0xc6, 0x65, 0x30, 0x03, 0x7e, 0xa0, 0xbd, 0x39,
- 0x15, 0x0d, 0x9a, 0x33, 0x63, 0x3f, 0x0b, 0xd2, 0x98, 0x1e, 0x9f, 0x99,
- 0x3c, 0xd8, 0xd8, 0x64, 0xfa, 0x50, 0x58, 0x51, 0x63, 0x87, 0xd7, 0xcf,
- 0xac, 0x6d, 0x87, 0x31, 0x82, 0xfa, 0x06, 0xfb, 0x14, 0x2b, 0x3c, 0xde,
- 0x6f, 0x6f, 0xce, 0xed, 0x30, 0x9e, 0x7c, 0x74, 0x83, 0xb5, 0x97, 0xc6,
- 0x2a, 0x4c, 0xe7, 0x0a, 0x8d, 0xf9, 0x5e, 0x10, 0x02, 0x38, 0xef, 0xbf,
- 0x7c, 0xff, 0xf8, 0x82, 0x4c, 0xe7, 0x06, 0xa5, 0xc5, 0xc9, 0xed, 0xfe,
- 0xe0, 0x6a, 0x5c, 0x5e, 0x5c, 0x05, 0xd9, 0x8a, 0xc4, 0xbc, 0xb0, 0x86,
- 0xec, 0x7d, 0x7f, 0x1e, 0x7b, 0x69, 0x91, 0xa5, 0x92, 0x8b, 0xaf, 0x68,
- 0x41, 0x51, 0x65, 0x88, 0x51, 0x1b, 0x46, 0x4f, 0x10, 0x4b, 0xdc, 0x98,
- 0xe2, 0xec, 0x96, 0x1d, 0x2b, 0xee, 0x76, 0x7b, 0xbf, 0x5e, 0x87, 0x01,
- 0x1d, 0xcb, 0xe3, 0x9e, 0x8e, 0x65, 0x56, 0x4e, 0x39, 0x77, 0x19, 0xe7,
- 0x1f, 0xde, 0xed, 0x6a, 0x97, 0xee, 0x4c, 0xd6, 0xc7, 0xb7, 0xb8, 0x9f,
- 0x58, 0xe7, 0xfc, 0xab, 0x75, 0x1c, 0x02, 0x24, 0xc7, 0xa3, 0x22, 0x9b,
- 0x2e, 0x4b, 0x89, 0xd6, 0x93, 0xc6, 0xae, 0x4c, 0x40, 0x5c, 0xb3, 0x14,
- 0x88, 0x4f, 0xb5, 0xbb, 0x7d, 0x7d, 0x52, 0x75, 0x2e, 0x88, 0xea, 0x06,
- 0x18, 0x86, 0xed, 0x58, 0xbf, 0x38, 0xfa, 0xb4, 0x1f, 0xa2, 0x00, 0x7e,
- 0x7b, 0xe6, 0x95, 0xb7, 0x2c, 0xd0, 0x7a, 0x86, 0xa7, 0xbd, 0xd6, 0x0e,
- 0xc4, 0x24, 0x61, 0xcc, 0x3d, 0x25, 0x05, 0x8e, 0x4e, 0xd4, 0xfa, 0xf0,
- 0xca, 0xf7, 0x1e, 0x23, 0xa4, 0xb5, 0x6b, 0x9c, 0xcf, 0x3e, 0x70, 0xc8,
- 0xe9, 0x01, 0x3f, 0x2b, 0x86, 0x06, 0x0b, 0x66, 0xd5, 0x38, 0x99, 0x7a,
- 0x8c, 0xd7, 0xac, 0xfc, 0xba, 0x11, 0x54, 0xa8, 0xf0, 0xb1, 0x91, 0xf0,
- 0x83, 0x6d, 0x83, 0x09, 0x80, 0xfc, 0xd8, 0x09, 0xbf, 0x0a, 0x38, 0x65,
- 0x7b, 0x73, 0x3a, 0x5c, 0xff, 0x9e, 0x2e, 0x4f, 0xcf, 0xcc, 0x66, 0x13,
- 0x35, 0x43, 0xb3, 0x06, 0xda, 0xa4, 0x0d, 0x3b, 0xe0, 0xbf, 0x88, 0x41,
- 0xb0, 0xda, 0x31, 0x9d, 0x57, 0x62, 0x2b, 0xa9, 0xc7, 0x6c, 0x06, 0x0c,
- 0x98, 0xf6, 0x18, 0x72, 0x49, 0x21, 0x0b, 0x91, 0xfe, 0xdd, 0xb6, 0x0b,
- 0x5a, 0x80, 0xa0, 0x0d, 0x5b, 0xb9, 0xd4, 0xfb, 0x10, 0xd5, 0xae, 0xc5,
- 0x0c, 0x66, 0x25, 0xc0, 0x62, 0xa0, 0xda, 0x51, 0xd7, 0x48, 0x5e, 0x14,
- 0x46, 0x29, 0x59, 0x90, 0x85, 0xe9, 0x63, 0x62, 0x3c, 0x72, 0xa2, 0xb0,
- 0x3c, 0xde, 0x28, 0x55, 0xc3, 0x59, 0x1b, 0x52, 0xb0, 0xb4, 0x5a, 0x05,
- 0x6d, 0x50, 0x2f, 0x53, 0xdb, 0x4f, 0xae, 0x27, 0x7d, 0x25, 0x8e, 0x2a,
- 0x2b, 0xea, 0xe7, 0xdb, 0x58, 0x08, 0x52, 0x7f, 0x5f, 0xe2, 0xc7, 0xe7,
- 0x6b, 0x6b, 0x2f, 0x0e, 0x7d, 0x01, 0xc6, 0xe8, 0x42, 0x42, 0x7f, 0x98,
- 0xa7, 0x32, 0x06, 0x8e, 0x2a, 0xd0, 0x9b, 0x6c, 0x6b, 0x91, 0x5a, 0xbd,
- 0x82, 0x8e, 0x3f, 0x5e, 0xb6, 0x95, 0x66, 0xd8, 0xb2, 0xda, 0x82, 0x68,
- 0x7a, 0x77, 0xb0, 0xdb, 0x33, 0xdd, 0x4a, 0xa5, 0x38, 0x93, 0x90, 0xf9,
- 0x93, 0x58, 0x53, 0x7a, 0x22, 0xd4, 0x4f, 0xac, 0x5b, 0xc7, 0x2e, 0x24,
- 0xe4, 0x55, 0xc5, 0xc6, 0xb0, 0xbc, 0x26, 0x57, 0x09, 0x74, 0x42, 0x39,
- 0x23, 0xd9, 0x34, 0xa8, 0x68, 0xa7, 0xff, 0xf4, 0xc5, 0x8b, 0xca, 0xbd,
- 0x1e, 0x2a, 0xc1, 0xcf, 0x76, 0x76, 0x04, 0xde, 0xa7, 0xfe, 0x1a, 0x7d,
- 0xd1, 0x7f, 0x81, 0x17, 0xab, 0xaf, 0x09, 0x08, 0xcc, 0xfa, 0xf7, 0xfa,
- 0xfc, 0x4d, 0x4b, 0x77, 0xb0, 0xe0, 0xac, 0x7d, 0xeb, 0x05, 0x77, 0xd7,
- 0xf2, 0x16, 0x1e, 0x96, 0x75, 0xcc, 0xae, 0xae, 0xb8, 0x74, 0x35, 0x3f,
- 0x29, 0x18, 0xe0, 0x59, 0x7e, 0x1f, 0xe7, 0x93, 0xe6, 0x74, 0x77, 0x7a,
- 0xfd, 0xdd, 0x75, 0xd3, 0x75, 0x75, 0x26, 0xb1, 0x9d, 0xac, 0x09, 0x6d,
- 0xfe, 0x71, 0x6b, 0xf3, 0xeb, 0xad, 0xb6, 0xd9, 0x7f, 0xba, 0xb3, 0xd3,
- 0x7b, 0xce, 0x3f, 0x5f, 0xbc, 0x58, 0x1b, 0x63, 0xe2, 0xfb, 0x78, 0x62,
- 0x53, 0xab, 0x8c, 0x96, 0xda, 0x69, 0x69, 0x7d, 0x97, 0x5a, 0xdd, 0x7d,
- 0xf1, 0xa2, 0xc7, 0xbd, 0x3c, 0xfb, 0xa8, 0xd6, 0xcb, 0xfb, 0xcc, 0x9b,
- 0xce, 0xf9, 0x75, 0x4f, 0x8e, 0x45, 0x6d, 0x06, 0xf4, 0x27, 0xa2, 0x98,
- 0x18, 0xf5, 0x28, 0x32, 0xef, 0x82, 0x96, 0xa1, 0x54, 0x1f, 0x7c, 0x80,
- 0xdb, 0x88, 0x40, 0xbf, 0x05, 0xf2, 0xf0, 0xa0, 0x29, 0x8a, 0xfa, 0x11,
- 0x7b, 0xff, 0x82, 0xf9, 0xe3, 0x3d, 0xa2, 0xf6, 0x99, 0xb8, 0xc2, 0xae,
- 0x19, 0x71, 0xc9, 0xb2, 0xf4, 0x8a, 0x68, 0x93, 0xc8, 0x65, 0x0b, 0xb6,
- 0x80, 0xbb, 0x78, 0x9a, 0x1a, 0x92, 0x43, 0xd4, 0x85, 0x01, 0x4b, 0x50,
- 0x39, 0xe8, 0xf7, 0x6c, 0xd1, 0x45, 0xbd, 0x9c, 0xe9, 0xc4, 0x69, 0x22,
- 0xe6, 0x95, 0x92, 0x27, 0xfb, 0xf2, 0x8c, 0x1c, 0x34, 0xa8, 0x73, 0x0f,
- 0x03, 0xc1, 0x23, 0x64, 0xef, 0x50, 0xad, 0xd7, 0xc8, 0x01, 0x23, 0x79,
- 0x44, 0x5f, 0x81, 0xc2, 0x85, 0xb9, 0xca, 0x4f, 0xb3, 0x5b, 0x04, 0x08,
- 0x78, 0xe6, 0x30, 0x98, 0x07, 0xde, 0xc0, 0x49, 0x62, 0x30, 0xcb, 0x35,
- 0x1c, 0x18, 0xf7, 0xbe, 0xd8, 0x63, 0x96, 0xa2, 0x88, 0xfa, 0x43, 0xf6,
- 0x03, 0x2c, 0x67, 0x9a, 0xbb, 0x25, 0xa9, 0x13, 0xac, 0x9f, 0xde, 0xc7,
- 0x79, 0x62, 0x59, 0xa7, 0xa4, 0x37, 0x1b, 0x07, 0x70, 0x40, 0xab, 0x9a,
- 0x39, 0xa9, 0xc9, 0xe3, 0x1e, 0x0b, 0xc1, 0x10, 0xad, 0x25, 0x58, 0x69,
- 0x82, 0x78, 0x50, 0x4d, 0xb2, 0x65, 0xdb, 0x3f, 0xec, 0x74, 0x15, 0x77,
- 0x98, 0xa1, 0xad, 0x9b, 0x85, 0x4e, 0x70, 0xe0, 0x36, 0x6a, 0x2e, 0x30,
- 0x7e, 0x0a, 0xc9, 0xb0, 0x40, 0x69, 0x72, 0x25, 0x5c, 0xdd, 0x2c, 0xc0,
- 0x8e, 0x78, 0x8b, 0xc0, 0x98, 0x64, 0xf1, 0x0d, 0x02, 0x4b, 0x0b, 0x46,
- 0x5b, 0x74, 0x91, 0x40, 0xd4, 0x01, 0xf0, 0xa5, 0xb2, 0x63, 0xb4, 0x57,
- 0x8e, 0x09, 0xd2, 0xa6, 0x45, 0x9b, 0x41, 0xd8, 0x22, 0x68, 0x2b, 0xd0,
- 0xf9, 0x0d, 0x51, 0x35, 0x93, 0x18, 0xbc, 0xad, 0x81, 0x0c, 0x00, 0x46,
- 0x5b, 0xd9, 0x09, 0x00, 0xf2, 0x84, 0x5b, 0x9a, 0x3c, 0x94, 0x80, 0xc4,
- 0xc6, 0x93, 0x76, 0x39, 0x0f, 0x4f, 0xfe, 0xf7, 0xf1, 0xe0, 0xd7, 0xb0,
- 0x26, 0xd7, 0x23, 0xcf, 0xf3, 0xf8, 0xde, 0xa3, 0x43, 0xa8, 0xb7, 0xd8,
- 0x05, 0xbe, 0xc5, 0xd3, 0xa9, 0xaf, 0x73, 0x0f, 0xbf, 0x1f, 0x09, 0xfb,
- 0x99, 0xa1, 0xc5, 0xbb, 0x1a, 0xf6, 0x6b, 0xd1, 0xc5, 0x39, 0xc3, 0x6f,
- 0x82, 0x0a, 0xce, 0xa1, 0x61, 0xd9, 0x81, 0xbe, 0xcc, 0xe0, 0x7e, 0xb1,
- 0x8a, 0x52, 0x4b, 0xea, 0x04, 0xa5, 0xda, 0xea, 0xf6, 0x29, 0x1a, 0x62,
- 0x03, 0x8c, 0x3d, 0x8c, 0x8b, 0xb9, 0xf0, 0x29, 0x0d, 0x3c, 0xf3, 0x35,
- 0xc8, 0x17, 0x08, 0x44, 0x15, 0x17, 0x76, 0x58, 0xda, 0xd6, 0xec, 0x06,
- 0x81, 0x71, 0x1c, 0xc4, 0x8f, 0xac, 0x9b, 0x36, 0x73, 0x14, 0xaf, 0x6d,
- 0x19, 0xcf, 0x16, 0x2d, 0xe9, 0x2e, 0x92, 0x99, 0x6b, 0x08, 0x49, 0xac,
- 0x1c, 0xf9, 0x80, 0x54, 0x74, 0xd6, 0x6c, 0x2e, 0xc8, 0xc1, 0x11, 0xca,
- 0xa5, 0x17, 0xe1, 0x88, 0x70, 0xfd, 0x54, 0x73, 0x47, 0x58, 0x16, 0x03,
- 0x66, 0x70, 0xd3, 0x9d, 0xc8, 0x67, 0x03, 0x2b, 0x9f, 0x02, 0x33, 0x10,
- 0x51, 0x6d, 0x3c, 0x08, 0x91, 0xee, 0x13, 0x8d, 0x70, 0x92, 0x48, 0x11,
- 0x84, 0x55, 0x72, 0x68, 0x94, 0x56, 0x6c, 0x8d, 0xd7, 0xec, 0xa0, 0x07,
- 0xe5, 0x94, 0xae, 0xb1, 0x7e, 0xfe, 0x16, 0x96, 0x54, 0x18, 0xb3, 0xdd,
- 0x11, 0x7f, 0x82, 0x75, 0x6f, 0xb9, 0x18, 0x34, 0xb1, 0x8c, 0x83, 0x6a,
- 0x42, 0xfa, 0x3e, 0x75, 0xbf, 0x13, 0xba, 0x0a, 0xc1, 0x28, 0x34, 0x04,
- 0xd9, 0xd5, 0x6e, 0x49, 0x8b, 0xd6, 0xda, 0x1f, 0x30, 0x1c, 0xb3, 0x05,
- 0xd4, 0xcd, 0x57, 0xa6, 0x2b, 0x36, 0x7e, 0xc9, 0x62, 0xde, 0xe7, 0x72,
- 0x6c, 0x82, 0x6b, 0xd6, 0xf3, 0x80, 0xd1, 0xd1, 0xd3, 0x87, 0x87, 0x86,
- 0x62, 0x12, 0x40, 0xe8, 0x4a, 0xf1, 0x31, 0x21, 0xf6, 0x67, 0x0f, 0x0f,
- 0xd5, 0x2f, 0xd7, 0xc0, 0xaa, 0x88, 0x23, 0x89, 0xf7, 0x7b, 0x94, 0x49,
- 0x72, 0x95, 0xac, 0x56, 0xdc, 0xb2, 0x8e, 0x72, 0x39, 0xdf, 0xc7, 0x88,
- 0xba, 0x6d, 0x7a, 0x1a, 0x21, 0x71, 0xb8, 0x2a, 0x39, 0x96, 0xe5, 0xc3,
- 0x89, 0xb7, 0x37, 0xc4, 0x0a, 0x04, 0x0c, 0x55, 0x83, 0x62, 0xb5, 0x41,
- 0x2b, 0x59, 0xd4, 0xb2, 0x4e, 0xdc, 0x8b, 0x2c, 0x7b, 0x0a, 0xd4, 0xd1,
- 0x32, 0x9d, 0xf2, 0x6b, 0xc0, 0xe0, 0xa4, 0x16, 0x76, 0x69, 0xf9, 0xd3,
- 0xf9, 0xb2, 0x4c, 0x0a, 0x57, 0x2f, 0x3b, 0xa8, 0x35, 0xd7, 0xb6, 0xec,
- 0x53, 0xe0, 0x05, 0x49, 0x38, 0x48, 0xbd, 0xa0, 0x97, 0x8e, 0x4b, 0x21,
- 0x17, 0x14, 0x69, 0x46, 0x49, 0xb6, 0x8f, 0x57, 0x5b, 0x92, 0x89, 0x22,
- 0x17, 0x18, 0xaa, 0x47, 0x33, 0x79, 0xa0, 0xd5, 0x96, 0x08, 0xd1, 0x08,
- 0x1e, 0x5e, 0x92, 0x2e, 0xf8, 0xb6, 0xb9, 0xce, 0x72, 0xda, 0xd4, 0xd9,
- 0x20, 0xc8, 0xdc, 0x6b, 0x44, 0x19, 0x4a, 0x57, 0x0e, 0xeb, 0x8f, 0xcb,
- 0x88, 0x38, 0x88, 0xdc, 0x32, 0x2b, 0x95, 0x31, 0x6a, 0x2c, 0x2b, 0x73,
- 0x1d, 0xc4, 0x2f, 0xd9, 0xb8, 0x1f, 0x8b, 0xca, 0xdf, 0x1b, 0x3c, 0x69,
- 0x2b, 0x9b, 0x5a, 0xc1, 0x24, 0x89, 0x02, 0x61, 0xdf, 0x59, 0x36, 0x1f,
- 0x29, 0x9e, 0xda, 0x58, 0xdc, 0x31, 0x07, 0x17, 0x84, 0xd5, 0x53, 0x6b,
- 0xe7, 0x5e, 0x16, 0xf1, 0x11, 0x08, 0x43, 0xc3, 0x79, 0x2e, 0xa6, 0x49,
- 0xb2, 0x90, 0xb1, 0x39, 0x64, 0x60, 0x2b, 0x9e, 0x2b, 0x27, 0x15, 0x61,
- 0xf8, 0x4a, 0xa4, 0x7a, 0xdf, 0xae, 0xe3, 0x00, 0x11, 0xec, 0xf8, 0x30,
- 0x69, 0x5b, 0x65, 0xbb, 0x76, 0x4e, 0xb3, 0x29, 0xe2, 0x8a, 0x25, 0xac,
- 0xad, 0x29, 0x75, 0x65, 0x5b, 0x8a, 0xe1, 0xb8, 0x6d, 0x75, 0x44, 0xa5,
- 0x9b, 0x51, 0xab, 0x7c, 0xdb, 0x2c, 0x1b, 0x21, 0x40, 0xf7, 0xb8, 0x9a,
- 0x12, 0x81, 0xcd, 0x47, 0x05, 0x5c, 0x99, 0x11, 0x7c, 0xb6, 0x8a, 0x68,
- 0x35, 0x70, 0xbc, 0x47, 0x0a, 0xa2, 0x60, 0x09, 0x1b, 0xb1, 0xcb, 0x48,
- 0x28, 0xa8, 0xa1, 0x65, 0x9b, 0xf4, 0xe8, 0x22, 0x88, 0x1c, 0x35, 0xf2,
- 0xd8, 0x07, 0x9e, 0x44, 0x9a, 0x35, 0x16, 0xfe, 0x5d, 0x14, 0xa3, 0x15,
- 0x90, 0x8a, 0x47, 0xa9, 0xe6, 0x83, 0xd8, 0x97, 0x97, 0x7a, 0x78, 0x25,
- 0xb3, 0x51, 0xaf, 0x0c, 0x96, 0xe8, 0x43, 0xa7, 0x4c, 0xa4, 0x8c, 0x2b,
- 0xa0, 0x0b, 0xbd, 0x31, 0x1b, 0x0a, 0x9c, 0xf2, 0x27, 0xe3, 0x23, 0xc8,
- 0x57, 0x8d, 0x59, 0x42, 0xe1, 0x42, 0x94, 0x9b, 0x9c, 0x80, 0xae, 0x43,
- 0xdb, 0xe2, 0x8f, 0x01, 0x38, 0xa6, 0xce, 0x4a, 0xf4, 0xdf, 0x48, 0x9f,
- 0x04, 0xc2, 0xa0, 0xf0, 0xac, 0x49, 0x0b, 0x42, 0xe8, 0xdb, 0x8c, 0x23,
- 0x47, 0xf4, 0xca, 0xbd, 0xf2, 0xed, 0xe8, 0x9b, 0x4d, 0x1c, 0x41, 0xb4,
- 0x63, 0x29, 0x32, 0xd4, 0x44, 0xaf, 0x82, 0x60, 0x6d, 0xc3, 0x46, 0xcc,
- 0x13, 0xfc, 0x4a, 0x12, 0x27, 0x22, 0x17, 0x65, 0x8b, 0x17, 0x00, 0xac,
- 0x9d, 0xbd, 0x47, 0x70, 0xbe, 0xf1, 0x74, 0x5a, 0xd0, 0x4c, 0xb1, 0x01,
- 0xd4, 0x46, 0xca, 0x50, 0x69, 0x97, 0xc6, 0x98, 0x9a, 0x89, 0x4a, 0x9a,
- 0x13, 0xac, 0x83, 0xe9, 0x16, 0x61, 0xe5, 0x98, 0x94, 0x51, 0x36, 0x44,
- 0x72, 0xac, 0x80, 0x9a, 0x0e, 0xa4, 0x56, 0x40, 0xd9, 0xc4, 0x19, 0xf3,
- 0x79, 0xcc, 0x20, 0xf0, 0x52, 0x24, 0x71, 0xc3, 0xfa, 0x74, 0x0c, 0xfb,
- 0x63, 0x58, 0x5d, 0x4d, 0xdc, 0x5c, 0x47, 0xb5, 0xba, 0xac, 0x4c, 0xb7,
- 0xff, 0x3c, 0xe1, 0x16, 0x5c, 0x3e, 0x84, 0x0b, 0x30, 0xd6, 0x37, 0x6f,
- 0x88, 0x0f, 0xc5, 0x8a, 0xf0, 0xb7, 0x65, 0xca, 0x24, 0x2a, 0x11, 0x45,
- 0x47, 0x80, 0x61, 0x2f, 0x34, 0xb8, 0xfc, 0x1a, 0xe1, 0x1b, 0xea, 0xef,
- 0xce, 0x9d, 0x64, 0xd0, 0x80, 0xa3, 0x05, 0x92, 0xd2, 0xc0, 0x50, 0x43,
- 0x01, 0x78, 0x39, 0x5b, 0x86, 0xd8, 0x69, 0xfd, 0x21, 0x8f, 0x84, 0x5a,
- 0xed, 0xa3, 0x8d, 0xb6, 0xbb, 0xdf, 0x63, 0x76, 0xf6, 0xa5, 0xc8, 0x8c,
- 0x97, 0x67, 0x30, 0x1c, 0xc8, 0x1d, 0x32, 0x02, 0x03, 0x6f, 0x12, 0xdc,
- 0x98, 0x06, 0x94, 0x3c, 0x73, 0xd8, 0x4a, 0x24, 0x33, 0xd7, 0x11, 0x2f,
- 0x9e, 0x46, 0x2f, 0x3f, 0x10, 0x33, 0xaa, 0x65, 0x4d, 0xd4, 0x4c, 0x32,
- 0x3c, 0x3b, 0xfc, 0x66, 0xf8, 0xf4, 0x83, 0xc1, 0xa2, 0xeb, 0xab, 0xbb,
- 0x3e, 0x1a, 0x2e, 0xfa, 0x48, 0x39, 0x85, 0x96, 0xac, 0x09, 0x2e, 0x2c,
- 0x93, 0xd3, 0xa5, 0x56, 0xc0, 0xa1, 0xca, 0xc0, 0xb7, 0x69, 0xb6, 0x74,
- 0x88, 0x4d, 0x91, 0x8f, 0x9a, 0xec, 0x39, 0xb0, 0xb7, 0x55, 0x23, 0x83,
- 0x2c, 0xe1, 0x3d, 0x11, 0xfc, 0xb6, 0xe4, 0x61, 0x3c, 0x5d, 0x16, 0xe9,
- 0xdd, 0x6f, 0x5a, 0xc8, 0x5b, 0x56, 0x3d, 0xfe, 0xa7, 0x96, 0x3d, 0xfe,
- 0xb8, 0x75, 0x6f, 0x30, 0x91, 0x5f, 0xb8, 0xee, 0x6d, 0x45, 0xdc, 0xff,
- 0xef, 0x58, 0xf7, 0x67, 0x7d, 0x07, 0x1f, 0xf4, 0xf2, 0x97, 0x86, 0x4a,
- 0x63, 0x0b, 0x9e, 0x69, 0x68, 0xe9, 0x26, 0xac, 0x5f, 0x49, 0x18, 0x6d,
- 0xca, 0xa5, 0x4a, 0xa6, 0x77, 0xc9, 0x1a, 0x0c, 0x23, 0x98, 0x80, 0xb7,
- 0x3e, 0x78, 0x62, 0xdc, 0x4e, 0x89, 0x5f, 0x5a, 0xf6, 0xaa, 0xbe, 0x76,
- 0xff, 0xc4, 0xce, 0x39, 0x89, 0xc0, 0xef, 0x5d, 0xeb, 0xe6, 0x85, 0x7b,
- 0x27, 0x97, 0xe6, 0xff, 0xd4, 0xce, 0xd5, 0xa4, 0xe5, 0xea, 0x2c, 0x50,
- 0x40, 0xc1, 0xc6, 0x2e, 0x25, 0x7b, 0xe9, 0x5e, 0x9c, 0xa2, 0x8a, 0x8e,
- 0xc3, 0xe9, 0x71, 0x01, 0x44, 0x4d, 0xd4, 0x3a, 0x25, 0x87, 0x4a, 0x85,
- 0x56, 0xdd, 0x0d, 0x57, 0x30, 0x6c, 0xab, 0x41, 0x3c, 0xff, 0xcc, 0x99,
- 0x35, 0x82, 0xe1, 0xc8, 0x40, 0x80, 0x48, 0x19, 0x99, 0x08, 0x7d, 0x81,
- 0x34, 0xda, 0x42, 0x11, 0xa1, 0xb7, 0x03, 0xd4, 0xd2, 0xaa, 0xc3, 0x7c,
- 0x90, 0x64, 0x2a, 0x87, 0xbb, 0x05, 0xc2, 0x73, 0x5d, 0x44, 0xfe, 0xff,
- 0x91, 0x07, 0xbb, 0x8d, 0x3c, 0x2c, 0x28, 0xfe, 0xa3, 0x89, 0xc3, 0x85,
- 0xb2, 0xfd, 0x4b, 0xe4, 0xd1, 0x76, 0xce, 0x36, 0x35, 0x3e, 0x8f, 0x97,
- 0xc9, 0x78, 0xfe, 0x96, 0x2f, 0x97, 0x08, 0x54, 0x4d, 0xdc, 0xea, 0x27,
- 0xe7, 0xdf, 0x3e, 0x87, 0x33, 0x63, 0xd8, 0x04, 0xc5, 0x39, 0x3d, 0x3a,
- 0x38, 0x6f, 0x61, 0x61, 0xd7, 0x74, 0xcb, 0x2f, 0xd2, 0x3e, 0xdb, 0x3f,
- 0x59, 0x30, 0x7d, 0xa9, 0xbf, 0x30, 0x11, 0xb5, 0x89, 0xde, 0xa6, 0x5f,
- 0xd8, 0xf3, 0xe0, 0x7e, 0x8a, 0xa7, 0x81, 0x59, 0xaa, 0xf9, 0x9a, 0xc5,
- 0xf2, 0xf1, 0x6c, 0xb2, 0x2d, 0x7f, 0xf6, 0xaf, 0xfe, 0x36, 0x99, 0x0f,
- 0x1e, 0xa1, 0x95, 0xb8, 0x12, 0xbc, 0xae, 0x05, 0x64, 0xd2, 0x66, 0xbe,
- 0xac, 0xab, 0x6b, 0x57, 0x37, 0xcd, 0xbb, 0x53, 0x15, 0x69, 0x2a, 0x0e,
- 0xa0, 0x57, 0xd6, 0xcd, 0x92, 0x3f, 0x9d, 0x44, 0x0a, 0xea, 0x16, 0x35,
- 0x13, 0x1e, 0xf0, 0xfd, 0xb6, 0x6f, 0xe9, 0x5f, 0xeb, 0xcd, 0xda, 0xe3,
- 0xb0, 0xd3, 0xb6, 0xe6, 0x64, 0x14, 0x22, 0x2b, 0xd7, 0x9e, 0x14, 0xad,
- 0x5f, 0x8a, 0x56, 0xa2, 0xba, 0xa9, 0xbf, 0x22, 0xfa, 0x8a, 0x49, 0xd8,
- 0x80, 0x23, 0x10, 0xc8, 0xe9, 0x72, 0x6c, 0x99, 0x29, 0xe9, 0x7c, 0xbc,
- 0x88, 0x25, 0x79, 0xbd, 0xbe, 0x05, 0x8f, 0xe3, 0xcb, 0x55, 0x67, 0x33,
- 0x4f, 0xea, 0xf1, 0x96, 0x07, 0x45, 0x05, 0x49, 0x47, 0x9e, 0x8b, 0x2c,
- 0xe3, 0x0a, 0xdb, 0x8a, 0x10, 0x28, 0x2d, 0x7d, 0x85, 0x48, 0x15, 0xdc,
- 0x44, 0xf2, 0x48, 0x23, 0xff, 0xbe, 0x74, 0x00, 0x84, 0x51, 0x7e, 0x35,
- 0xde, 0x7d, 0xf1, 0x7c, 0x97, 0xa5, 0xde, 0x55, 0x21, 0x30, 0x55, 0x85,
- 0x36, 0xf3, 0x74, 0xf0, 0x64, 0xfb, 0xe9, 0xe0, 0x69, 0xe4, 0xb1, 0xd9,
- 0x47, 0x49, 0x6b, 0x4a, 0x6e, 0x32, 0x46, 0x3a, 0xff, 0x48, 0x8f, 0xdc,
- 0xdb, 0xe3, 0x43, 0xab, 0x1a, 0x8b, 0x24, 0xd5, 0x2a, 0x2c, 0xa5, 0x56,
- 0x35, 0xe5, 0xc5, 0x93, 0x52, 0x08, 0xed, 0xa8, 0xde, 0xad, 0xcb, 0xe2,
- 0xf3, 0x8d, 0x11, 0xb6, 0x32, 0xd7, 0x39, 0xd3, 0xba, 0x12, 0xcb, 0xba,
- 0xd1, 0xf2, 0x67, 0x2d, 0x91, 0x78, 0xf5, 0xb5, 0x09, 0x56, 0x6e, 0xf0,
- 0x81, 0x9d, 0x29, 0x27, 0xc4, 0x5b, 0xdb, 0x9d, 0xc6, 0x17, 0xae, 0xda,
- 0x11, 0x31, 0x0c, 0x14, 0x9f, 0x2f, 0x14, 0x80, 0x89, 0x5f, 0xb1, 0x78,
- 0xb1, 0x4a, 0x24, 0x91, 0xd9, 0xba, 0xd7, 0x86, 0x0c, 0x06, 0x70, 0x46,
- 0x02, 0xe7, 0x07, 0x70, 0xfd, 0x6e, 0xbf, 0x6b, 0x57, 0x85, 0x19, 0xcb,
- 0x83, 0x0a, 0xb2, 0x86, 0xf8, 0xb4, 0xfe, 0xd0, 0x6b, 0x51, 0x0e, 0x44,
- 0xb5, 0x88, 0x5d, 0x87, 0x9d, 0x24, 0x0e, 0x06, 0x8d, 0x38, 0xca, 0x0d,
- 0x33, 0x3d, 0xb5, 0xe2, 0x4c, 0x92, 0x71, 0x53, 0xc7, 0x72, 0x40, 0x1f,
- 0xf4, 0xfc, 0x38, 0x5e, 0xc4, 0xa3, 0x74, 0x9a, 0x96, 0x69, 0x4b, 0x78,
- 0xde, 0xaf, 0x28, 0xfb, 0x95, 0xe3, 0x45, 0x7f, 0x9e, 0xb5, 0xd9, 0x08,
- 0x2f, 0xb9, 0xec, 0x49, 0x00, 0x76, 0xfb, 0xfe, 0xed, 0xd9, 0xd1, 0xf1,
- 0xe9, 0xc1, 0x0f, 0xe6, 0xf5, 0x76, 0xa1, 0xc7, 0xa8, 0x1d, 0x9b, 0xc4,
- 0xc5, 0xea, 0x7d, 0x91, 0x94, 0xf4, 0xe5, 0xe6, 0x93, 0x2d, 0xf6, 0x47,
- 0xd5, 0xaf, 0x59, 0x56, 0xbf, 0xc2, 0x5a, 0x08, 0x6a, 0xb0, 0xf5, 0xf3,
- 0xa8, 0x91, 0xc9, 0x6e, 0xc5, 0xd1, 0x50, 0xd2, 0xfd, 0x5a, 0x26, 0xd3,
- 0x79, 0x52, 0x2a, 0xf0, 0x7d, 0xf4, 0xf2, 0xec, 0xfc, 0xf2, 0xd5, 0x5d,
- 0x3c, 0xad, 0x93, 0x0c, 0x03, 0x09, 0x69, 0x8b, 0x85, 0x51, 0x88, 0xbc,
- 0x19, 0x84, 0x30, 0x0e, 0x5d, 0xac, 0xa0, 0x3d, 0xd9, 0x06, 0x56, 0x71,
- 0x79, 0xf9, 0xc3, 0xf9, 0xf1, 0xab, 0x97, 0xac, 0x32, 0x7f, 0xce, 0x8a,
- 0xbe, 0x9a, 0x4a, 0xa0, 0x41, 0xf3, 0x3a, 0xaf, 0x16, 0xcd, 0xeb, 0xfb,
- 0xfb, 0xa3, 0x93, 0xe1, 0xf9, 0xe9, 0xd9, 0xe1, 0xab, 0x97, 0xdf, 0xb3,
- 0x81, 0x95, 0x0b, 0x6a, 0x04, 0xef, 0xba, 0xcf, 0x5c, 0x1c, 0x54, 0x13,
- 0x09, 0xf8, 0xf8, 0xbb, 0xf7, 0xc7, 0x6f, 0xbf, 0x7d, 0xf5, 0xf2, 0x2e,
- 0xce, 0x7b, 0x3c, 0x3f, 0x79, 0x9b, 0x13, 0x9a, 0x5b, 0xea, 0x2e, 0x54,
- 0xf6, 0x92, 0x73, 0x0f, 0x46, 0xd3, 0x5b, 0xa9, 0xc1, 0x83, 0xc2, 0x37,
- 0x8d, 0x00, 0x84, 0x4b, 0xc4, 0x69, 0xb3, 0xd1, 0x82, 0x7f, 0x8b, 0xbe,
- 0x3c, 0xfd, 0x86, 0xdd, 0x5b, 0xee, 0x6e, 0x46, 0x94, 0x2b, 0x91, 0xc9,
- 0xe7, 0xcf, 0x76, 0xf7, 0xb6, 0x82, 0x92, 0x1a, 0xec, 0x24, 0xa7, 0x11,
- 0xdf, 0x36, 0x8c, 0x26, 0x3f, 0x1b, 0xe2, 0xac, 0x07, 0xbb, 0xd6, 0x5a,
- 0xe2, 0x7c, 0x03, 0x08, 0xb0, 0x74, 0x1e, 0xcf, 0xb9, 0x90, 0x22, 0x42,
- 0x94, 0x38, 0x32, 0xa3, 0x04, 0x82, 0x08, 0x3b, 0xb0, 0x1b, 0x79, 0xb8,
- 0x97, 0x3e, 0x9a, 0x75, 0xc0, 0xc6, 0x6c, 0xbb, 0xa1, 0x69, 0x38, 0xea,
- 0xf7, 0x6e, 0x27, 0xe4, 0x5f, 0xfb, 0x60, 0xb4, 0x27, 0xc1, 0x87, 0xb0,
- 0x56, 0x97, 0x8c, 0xce, 0xbe, 0x60, 0xd7, 0xe5, 0x23, 0x31, 0x2f, 0x58,
- 0x3f, 0x8f, 0x73, 0x5c, 0x65, 0x56, 0x81, 0xff, 0x49, 0xc9, 0xd4, 0x21,
- 0xae, 0xbd, 0xbb, 0x38, 0x5d, 0xc3, 0xbe, 0x5c, 0x4d, 0x79, 0x8f, 0xfd,
- 0x66, 0xd5, 0xe1, 0x5d, 0xc3, 0xc0, 0x59, 0x3b, 0x74, 0xfb, 0x11, 0x5b,
- 0xfd, 0xed, 0x47, 0x1c, 0x60, 0x92, 0x75, 0x07, 0x67, 0xbe, 0xab, 0xbb,
- 0x03, 0x5a, 0x10, 0xd4, 0x5d, 0x9a, 0x42, 0x8a, 0x24, 0xdc, 0x6d, 0x63,
- 0x08, 0xbc, 0x7e, 0x1b, 0x6b, 0x02, 0xe1, 0x22, 0x71, 0xc3, 0x28, 0x96,
- 0x4c, 0x26, 0xc8, 0xd3, 0x18, 0x8f, 0x65, 0x21, 0x56, 0x67, 0xa1, 0x48,
- 0x34, 0x1b, 0x2d, 0x50, 0x86, 0x42, 0x50, 0x37, 0x1c, 0x9f, 0x54, 0xba,
- 0x8a, 0xdc, 0xd8, 0xbb, 0x6a, 0x04, 0x9a, 0x11, 0x69, 0xe0, 0x11, 0xac,
- 0x0b, 0x12, 0x1a, 0x67, 0xe4, 0x93, 0x52, 0xc4, 0xe8, 0xcc, 0x5a, 0x06,
- 0x87, 0x33, 0x4f, 0x57, 0x41, 0xd8, 0x82, 0x6c, 0x6c, 0x10, 0x12, 0xde,
- 0x30, 0x5b, 0xb3, 0xc9, 0x68, 0xe0, 0xe8, 0xcd, 0x08, 0x0d, 0x52, 0x02,
- 0xfb, 0xaf, 0x36, 0x87, 0x5b, 0x4a, 0xc6, 0x42, 0x6e, 0xe7, 0xef, 0x7c,
- 0x92, 0x4f, 0x5b, 0xf5, 0xa9, 0x75, 0x04, 0xe8, 0xd4, 0x6d, 0xbf, 0x50,
- 0x9d, 0x7e, 0x87, 0x41, 0x0c, 0xd5, 0x5e, 0x09, 0x08, 0x43, 0x3b, 0x6e,
- 0x74, 0x4b, 0x71, 0x99, 0x18, 0x9f, 0x44, 0x14, 0xb7, 0xe2, 0xf0, 0x49,
- 0xbc, 0x6d, 0x74, 0x30, 0x85, 0x77, 0x99, 0x78, 0xe3, 0xaa, 0x57, 0xef,
- 0x63, 0xd0, 0x89, 0x2a, 0x48, 0x89, 0x62, 0x3f, 0xdd, 0x6a, 0x60, 0x8a,
- 0xae, 0x30, 0xf4, 0xd0, 0x16, 0x10, 0xe6, 0xc3, 0xf2, 0x50, 0x6b, 0x43,
- 0x43, 0x80, 0x05, 0x58, 0x49, 0x33, 0x1f, 0x1c, 0x72, 0x03, 0x52, 0x71,
- 0xa5, 0x68, 0x0b, 0xa7, 0xba, 0xc0, 0x95, 0xe5, 0x42, 0x98, 0x14, 0x2d,
- 0x5f, 0xec, 0xc2, 0xda, 0x26, 0x84, 0xb0, 0x36, 0xdc, 0x11, 0xd9, 0xc4,
- 0x96, 0x45, 0xb5, 0x2a, 0x8e, 0x96, 0x73, 0xc0, 0x6c, 0xa0, 0x7f, 0xe9,
- 0x41, 0xf8, 0x18, 0x42, 0xaf, 0x25, 0x59, 0x47, 0x81, 0x9d, 0xfb, 0x97,
- 0x0d, 0x48, 0x23, 0x7e, 0x61, 0x11, 0xa7, 0x79, 0x10, 0x4a, 0x83, 0xf0,
- 0x35, 0x9e, 0xbb, 0x50, 0x92, 0x06, 0x3e, 0x42, 0xea, 0x1d, 0x08, 0x69,
- 0xc3, 0x4f, 0xb2, 0xb6, 0xa4, 0x44, 0xe7, 0x7a, 0x9a, 0x8d, 0x46, 0x34,
- 0xa9, 0x8e, 0x49, 0xa4, 0x34, 0xc2, 0x38, 0xbf, 0x86, 0x92, 0xd6, 0x33,
- 0xbc, 0x2b, 0x7f, 0x58, 0x01, 0x97, 0x8a, 0xbe, 0xd6, 0x45, 0xfa, 0x6b,
- 0x1d, 0xb1, 0xcc, 0xe3, 0x5f, 0x03, 0xc8, 0x34, 0xac, 0x49, 0x29, 0xee,
- 0x6f, 0x7c, 0x1e, 0x59, 0xff, 0x75, 0x8e, 0x5f, 0xae, 0x38, 0x56, 0xd2,
- 0x5d, 0x9f, 0xca, 0x7c, 0xc0, 0x72, 0x14, 0xc3, 0x32, 0x6d, 0x09, 0xb6,
- 0xe7, 0x09, 0xd3, 0x04, 0x3a, 0x7f, 0xe7, 0x51, 0xec, 0xf6, 0xf8, 0xdf,
- 0xbd, 0x7f, 0x74, 0x0c, 0xa9, 0x94, 0xb1, 0xa2, 0x65, 0xf0, 0x25, 0xa3,
- 0x43, 0x16, 0x06, 0x8f, 0xda, 0x82, 0x86, 0xca, 0x15, 0xbc, 0xd6, 0xb6,
- 0x9e, 0xce, 0xae, 0x7f, 0xdc, 0xed, 0xef, 0xee, 0xec, 0xec, 0xfc, 0x34,
- 0x58, 0xf0, 0xd2, 0x5d, 0xa1, 0x79, 0xfa, 0x77, 0xb0, 0x48, 0xc7, 0x1c,
- 0xf2, 0x42, 0x9b, 0x99, 0xc6, 0xdc, 0xf4, 0xb6, 0xf4, 0xb7, 0x1d, 0x5e,
- 0x9f, 0x39, 0x27, 0xef, 0xb4, 0xf2, 0x71, 0x07, 0x48, 0x4d, 0x47, 0xe2,
- 0x6a, 0xa9, 0xe0, 0xf5, 0x2c, 0x77, 0x4f, 0x96, 0x12, 0x8d, 0x20, 0xd1,
- 0x1a, 0xea, 0x26, 0xe6, 0xcd, 0x26, 0x52, 0x95, 0x62, 0x60, 0x7c, 0xe3,
- 0xf5, 0x5a, 0x2b, 0x17, 0xe3, 0xdb, 0x44, 0x50, 0x7d, 0x38, 0x0f, 0x36,
- 0xa8, 0xde, 0xd2, 0x73, 0x89, 0x01, 0x38, 0xb0, 0x4a, 0xf7, 0x72, 0x6e,
- 0x9b, 0x40, 0xc3, 0x7c, 0xcc, 0x48, 0xfa, 0xe4, 0xaf, 0x8d, 0xcb, 0xb9,
- 0x7a, 0x11, 0x56, 0xbd, 0x22, 0x91, 0xfc, 0xd2, 0x3a, 0x72, 0x69, 0x9b,
- 0x82, 0xee, 0x4d, 0x1d, 0xa1, 0x99, 0x03, 0xc1, 0xfc, 0xfd, 0x3b, 0x81,
- 0x34, 0x1e, 0x65, 0x05, 0xbc, 0xf5, 0xba, 0x68, 0x0d, 0xe5, 0xa7, 0x18,
- 0xa7, 0xe9, 0x6f, 0x2a, 0xb5, 0xa2, 0x57, 0x74, 0xf3, 0xf8, 0x86, 0xc5,
- 0xb2, 0x5d, 0xb2, 0x5b, 0xe1, 0x66, 0xf9, 0xdd, 0x12, 0x73, 0x87, 0xdb,
- 0xaf, 0xff, 0x83, 0x36, 0x8c, 0xab, 0x1b, 0x36, 0xaa, 0x3d, 0x61, 0xaa,
- 0xa2, 0x28, 0x4e, 0x93, 0x98, 0x83, 0x8a, 0xcd, 0x4c, 0x73, 0x93, 0x3c,
- 0x88, 0xc0, 0xd0, 0x84, 0x09, 0x10, 0x9f, 0x2e, 0x7b, 0x4d, 0x54, 0xef,
- 0x3b, 0x18, 0x1e, 0x9e, 0x9c, 0x54, 0x14, 0x62, 0x5e, 0xbc, 0x01, 0x43,
- 0xa0, 0x8b, 0x9b, 0xa5, 0x98, 0xd1, 0x2a, 0xb2, 0x93, 0x07, 0xc3, 0x6d,
- 0xc8, 0x29, 0x1c, 0x92, 0x86, 0xf4, 0x51, 0x46, 0x20, 0x8f, 0x8b, 0xd4,
- 0x62, 0x00, 0x63, 0xc9, 0xfd, 0x5a, 0xce, 0x59, 0xa2, 0xe0, 0xc0, 0x98,
- 0x9b, 0x25, 0x1d, 0xc9, 0xe2, 0x23, 0x4d, 0x6f, 0x1f, 0x4b, 0x8f, 0xbf,
- 0x3d, 0xe9, 0xb5, 0x04, 0x3b, 0x9d, 0xe7, 0x1a, 0x53, 0x26, 0xa1, 0x2f,
- 0x91, 0x44, 0x2a, 0x31, 0x6e, 0x39, 0xdf, 0x1a, 0x42, 0x81, 0x19, 0x8a,
- 0x09, 0x61, 0xb4, 0xb8, 0x52, 0x0c, 0x40, 0xab, 0x05, 0x69, 0x47, 0xf5,
- 0x84, 0xa2, 0x8e, 0x9b, 0xff, 0xb4, 0x22, 0x85, 0x5a, 0x8d, 0xa0, 0xe8,
- 0x25, 0xff, 0xbb, 0x6f, 0x05, 0x7a, 0xd6, 0x95, 0xde, 0x74, 0x99, 0x28,
- 0xcd, 0x92, 0x3e, 0x21, 0xb0, 0xaf, 0x5c, 0xb7, 0x8f, 0x83, 0xb9, 0x0f,
- 0xa2, 0x33, 0xb7, 0x2f, 0xbe, 0x28, 0x20, 0xda, 0xac, 0x57, 0x28, 0x5b,
- 0x07, 0xec, 0x8e, 0xf4, 0xc3, 0xeb, 0x54, 0x09, 0xdf, 0x8f, 0x6b, 0xd3,
- 0x8c, 0x8b, 0x6c, 0x8f, 0xcc, 0x45, 0x7b, 0xa6, 0x9b, 0x78, 0x9a, 0xcd,
- 0xb7, 0x5a, 0x97, 0x0a, 0x5b, 0x45, 0x82, 0x26, 0xc7, 0x90, 0x89, 0xf5,
- 0xce, 0x15, 0x05, 0x6c, 0x8b, 0x03, 0x40, 0xf0, 0x0b, 0xe4, 0x5a, 0x2e,
- 0xe9, 0x71, 0x7e, 0xd2, 0xd7, 0x30, 0x48, 0x45, 0xde, 0x97, 0x6c, 0x37,
- 0x01, 0xb6, 0xaf, 0xe3, 0xda, 0xb4, 0x2d, 0x84, 0xcf, 0xa7, 0x16, 0xd4,
- 0xe8, 0x0a, 0xf4, 0xd5, 0x72, 0x51, 0x9b, 0x9b, 0x70, 0x1b, 0x1b, 0x5f,
- 0x5d, 0xa8, 0x44, 0xe2, 0xb3, 0x60, 0x5c, 0x84, 0xca, 0xde, 0x48, 0xab,
- 0xe0, 0xb9, 0x34, 0x49, 0xb5, 0x28, 0xc8, 0x35, 0x8e, 0x95, 0x69, 0x83,
- 0x35, 0x0a, 0x48, 0x7e, 0x9f, 0x78, 0xce, 0x32, 0xda, 0xef, 0xfc, 0x86,
- 0x27, 0xe3, 0x9d, 0x59, 0xc0, 0x7f, 0x7d, 0x82, 0x6c, 0x80, 0xfc, 0xb7,
- 0x12, 0xe4, 0xff, 0xbf, 0xd7, 0x7e, 0xaf, 0xdf, 0xfd, 0xb6, 0x7b, 0xdd,
- 0xe7, 0x79, 0xbf, 0x24, 0xa1, 0x6f, 0xdd, 0xbe, 0xc6, 0x10, 0x22, 0x0d,
- 0xe4, 0xbf, 0x01, 0xd7, 0x0a, 0xb5, 0x8b, 0xaf, 0x9c, 0x1b, 0x5a, 0x22,
- 0x17, 0x07, 0xd5, 0x44, 0xc7, 0x30, 0x58, 0x0c, 0x93, 0xd4, 0xa9, 0xd1,
- 0xcd, 0x62, 0x4b, 0x12, 0x12, 0x82, 0xd4, 0xf5, 0x0f, 0x54, 0x72, 0x30,
- 0x35, 0x45, 0x1c, 0x5e, 0x95, 0x04, 0x63, 0x49, 0x7f, 0xe5, 0xb0, 0x10,
- 0x03, 0x90, 0x80, 0x88, 0xde, 0xb6, 0xb8, 0x3c, 0x21, 0x0e, 0x70, 0x17,
- 0xa3, 0x60, 0xcf, 0x05, 0x29, 0x85, 0xc5, 0x13, 0x14, 0x8c, 0xe2, 0x03,
- 0x78, 0xf0, 0x6a, 0x72, 0x0a, 0xd6, 0x33, 0xb8, 0xc6, 0xda, 0xcb, 0xaa,
- 0x8a, 0xe1, 0x92, 0xd7, 0x12, 0x32, 0x0a, 0xd0, 0x57, 0xed, 0x2a, 0xd9,
- 0x2e, 0xe3, 0xe9, 0x6d, 0xcc, 0x12, 0xc9, 0x20, 0x7a, 0x23, 0xeb, 0xea,
- 0x8b, 0xde, 0x36, 0xe2, 0x3f, 0x46, 0xcb, 0xeb, 0x6b, 0xa0, 0x4b, 0x1e,
- 0xc8, 0x0d, 0x54, 0x18, 0x40, 0x04, 0x0c, 0x93, 0xdd, 0xcf, 0xbb, 0x1a,
- 0xc8, 0xd9, 0xb9, 0xa1, 0xcb, 0x9a, 0x16, 0x89, 0xc5, 0xa1, 0x8e, 0xd6,
- 0xc2, 0x6e, 0x64, 0x79, 0x31, 0xfd, 0xf7, 0xa2, 0xee, 0xcb, 0xf6, 0x97,
- 0x48, 0x41, 0x4f, 0x68, 0x54, 0x52, 0x07, 0xc5, 0xa9, 0xff, 0xb4, 0x86,
- 0x37, 0x29, 0x5d, 0x68, 0xf3, 0x66, 0xf0, 0x96, 0x16, 0x56, 0x83, 0x87,
- 0x40, 0x02, 0x7a, 0xe3, 0xd6, 0x41, 0xfe, 0xd1, 0xfa, 0x33, 0xc8, 0x58,
- 0xa4, 0x40, 0x5e, 0x65, 0x8d, 0xe4, 0x7a, 0x4d, 0x7f, 0xd2, 0xfe, 0x1f,
- 0x2d, 0xba, 0x95, 0x1a, 0xb7, 0x10, 0x59, 0x08, 0x94, 0xa7, 0x78, 0x4b,
- 0x32, 0xa9, 0xc2, 0x17, 0x98, 0x50, 0xa9, 0xa7, 0x2e, 0x25, 0xf6, 0x53,
- 0xda, 0x46, 0x11, 0x15, 0x13, 0x2f, 0xfe, 0x78, 0xb8, 0x48, 0xb3, 0x08,
- 0x73, 0x79, 0x50, 0x2d, 0x28, 0xb1, 0xee, 0x6a, 0x34, 0x93, 0x87, 0x3f,
- 0x35, 0x45, 0x89, 0x4a, 0x6b, 0x5a, 0xf5, 0x15, 0xb7, 0x26, 0x3f, 0x68,
- 0x15, 0xfb, 0xd4, 0xaa, 0xda, 0x6b, 0xa2, 0x48, 0x20, 0x51, 0xca, 0xc1,
- 0x88, 0x38, 0x39, 0xa4, 0x2a, 0x44, 0x9b, 0xcd, 0xfc, 0x9f, 0x95, 0xc3,
- 0x2a, 0x8d, 0x3d, 0x22, 0x88, 0x01, 0xdc, 0x6d, 0xe8, 0x82, 0x8c, 0x04,
- 0x53, 0xda, 0xc2, 0xfe, 0x10, 0x57, 0x14, 0x9c, 0x8a, 0xa0, 0x7e, 0x4a,
- 0xb3, 0x52, 0x1b, 0x84, 0xa3, 0x4a, 0xc5, 0x4b, 0x31, 0x28, 0x8b, 0x6e,
- 0x2d, 0xf6, 0x2e, 0x17, 0x61, 0x6e, 0x68, 0xd6, 0x29, 0x0c, 0x5a, 0xc5,
- 0xa0, 0xad, 0xda, 0x81, 0x06, 0xd9, 0x89, 0x58, 0xa6, 0xbb, 0xa8, 0x49,
- 0x3d, 0xac, 0x42, 0x58, 0x13, 0x1c, 0x7c, 0x0f, 0xaa, 0x77, 0xd1, 0xeb,
- 0x4d, 0x69, 0x1a, 0x85, 0x9c, 0x9e, 0xe4, 0x13, 0x08, 0xd0, 0x2b, 0x2d,
- 0x1e, 0x93, 0xa2, 0x6a, 0xc7, 0xfc, 0xd6, 0x82, 0x96, 0x24, 0xdf, 0x20,
- 0x19, 0x2f, 0xcb, 0xaa, 0x1d, 0x37, 0x18, 0x93, 0xc6, 0x24, 0x63, 0x48,
- 0x9b, 0x38, 0x03, 0x0a, 0xbe, 0xd8, 0x71, 0x10, 0xd1, 0xfb, 0x9d, 0x2d,
- 0x93, 0xdb, 0xa1, 0xd6, 0xac, 0x43, 0x25, 0x06, 0x91, 0xdb, 0x90, 0x49,
- 0x52, 0x85, 0x91, 0x01, 0xc5, 0xc6, 0xa4, 0x7e, 0x4d, 0x5b, 0xf7, 0x44,
- 0x7e, 0x79, 0x6b, 0xef, 0xaf, 0x25, 0x7f, 0x24, 0xe8, 0xdc, 0x95, 0x1f,
- 0xd0, 0xd4, 0x92, 0x62, 0x0d, 0x30, 0x45, 0xd0, 0x73, 0xc6, 0x28, 0x77,
- 0x21, 0x70, 0xb4, 0xbd, 0x6a, 0x8b, 0xbf, 0xdf, 0x44, 0x3f, 0xba, 0x7b,
- 0x1e, 0x98, 0x6f, 0x98, 0x01, 0xe3, 0x23, 0x5d, 0xce, 0xb4, 0xa9, 0x46,
- 0xdc, 0xe6, 0xa3, 0xa7, 0xf4, 0xe3, 0x1b, 0xfe, 0x61, 0x65, 0x9f, 0x19,
- 0x2b, 0xcb, 0xcc, 0x17, 0x4d, 0xe0, 0x03, 0x2e, 0x0d, 0x27, 0xe7, 0x7e,
- 0x08, 0x2a, 0x7a, 0x8d, 0x5f, 0xf2, 0xe4, 0x91, 0x77, 0x68, 0x6e, 0x3f,
- 0xb3, 0x03, 0x71, 0x59, 0x66, 0x4c, 0x89, 0x63, 0x24, 0x6a, 0xcc, 0x18,
- 0x59, 0xd5, 0x11, 0x8c, 0xfe, 0xa9, 0x1e, 0xaa, 0x02, 0x47, 0x49, 0x99,
- 0x4b, 0xba, 0x06, 0xca, 0x69, 0x7d, 0x7f, 0x52, 0xf8, 0xaa, 0x15, 0x72,
- 0xf1, 0xd1, 0xb9, 0x3d, 0x56, 0x3e, 0xb7, 0x81, 0x19, 0x59, 0x6b, 0x98,
- 0x97, 0x82, 0x16, 0xf3, 0xd9, 0xc7, 0xad, 0xe2, 0x11, 0xdf, 0x32, 0x76,
- 0x0b, 0x3b, 0x2c, 0x32, 0x2d, 0xda, 0x2a, 0x92, 0x97, 0x2f, 0xda, 0x8a,
- 0x87, 0x55, 0x42, 0x50, 0xf4, 0xe4, 0xf6, 0xc1, 0xe1, 0xd2, 0x43, 0x3c,
- 0x1f, 0x98, 0xcb, 0xad, 0x99, 0x5a, 0x66, 0x74, 0xd1, 0xe6, 0x2b, 0x7f,
- 0xb5, 0x45, 0x74, 0x4d, 0x0e, 0x04, 0x8d, 0x1a, 0x9d, 0xaf, 0x49, 0xe0,
- 0x9d, 0x90, 0xd8, 0x33, 0x65, 0x0b, 0xaf, 0xa4, 0x1e, 0xfd, 0xae, 0x51,
- 0x88, 0xba, 0x58, 0xcd, 0xc7, 0x37, 0x47, 0x6f, 0x87, 0xeb, 0x92, 0x78,
- 0xd3, 0xc2, 0x45, 0x2b, 0x73, 0x78, 0x09, 0x3f, 0x4d, 0x42, 0x1c, 0xb3,
- 0x45, 0x48, 0x7f, 0x1a, 0xcd, 0xd2, 0x02, 0xae, 0x71, 0xfe, 0xf6, 0xf8,
- 0xab, 0x33, 0xfb, 0xb1, 0x76, 0xc9, 0x1f, 0x5d, 0xe1, 0x53, 0x4e, 0xd0,
- 0x7d, 0x2c, 0xd7, 0xd9, 0x06, 0xe7, 0x6a, 0x4c, 0x79, 0x2f, 0x04, 0x11,
- 0xe4, 0x94, 0x5f, 0x17, 0x5a, 0xec, 0x29, 0x49, 0xe2, 0xa3, 0x7c, 0x5d,
- 0x16, 0x37, 0x1d, 0xb7, 0xbd, 0xaf, 0xbe, 0x6c, 0xde, 0x56, 0x47, 0x6f,
- 0xd7, 0x74, 0xc7, 0xdf, 0xf4, 0x2d, 0x81, 0x49, 0xaf, 0x68, 0x2d, 0x6c,
- 0x87, 0x6c, 0xf2, 0x96, 0x93, 0x77, 0x7e, 0x62, 0x3f, 0x2a, 0x53, 0xb7,
- 0x2b, 0x91, 0x8f, 0xbb, 0xd0, 0xbc, 0xe0, 0x33, 0x00, 0x9a, 0x64, 0x1a,
- 0xd3, 0x35, 0x19, 0xb5, 0x54, 0xc9, 0x0d, 0xac, 0xfe, 0x0e, 0xd9, 0x4e,
- 0xbc, 0x21, 0x7e, 0x95, 0x15, 0x58, 0xd1, 0x0a, 0x72, 0x21, 0x97, 0x5e,
- 0x2a, 0xbb, 0xcf, 0xd7, 0xa4, 0x5a, 0x37, 0xf5, 0xca, 0xfe, 0x3d, 0x5d,
- 0x52, 0x70, 0x4c, 0xb3, 0x0c, 0x18, 0xbd, 0x94, 0xeb, 0xe8, 0xf3, 0xc6,
- 0x81, 0x10, 0xc4, 0x17, 0xb3, 0x0a, 0x9b, 0x13, 0x10, 0xf7, 0x3a, 0x1b,
- 0x78, 0x1c, 0x66, 0x10, 0x8a, 0xbd, 0x27, 0xa8, 0xa5, 0xc6, 0xd3, 0x14,
- 0x04, 0xa1, 0x46, 0xb0, 0x28, 0xc9, 0x76, 0xde, 0x39, 0x61, 0x61, 0x06,
- 0xd2, 0x75, 0xa4, 0x25, 0x0e, 0xcb, 0xdc, 0xd9, 0x87, 0x59, 0xfe, 0xd5,
- 0xcc, 0x6a, 0x71, 0x76, 0x37, 0x82, 0x0b, 0x1e, 0xd8, 0x5c, 0xf3, 0x60,
- 0x37, 0x53, 0x55, 0x44, 0x76, 0x35, 0xa7, 0x24, 0xb7, 0x5a, 0x1b, 0x0e,
- 0x92, 0x84, 0x5b, 0x63, 0x2a, 0x11, 0x05, 0xd5, 0x91, 0x87, 0x3b, 0xb0,
- 0x8e, 0x71, 0x8e, 0x95, 0x18, 0x80, 0x24, 0x5f, 0x19, 0x89, 0xcd, 0xe3,
- 0x25, 0x1b, 0xae, 0xe0, 0x78, 0x40, 0x79, 0xba, 0xd6, 0xe6, 0x56, 0x7c,
- 0x6f, 0x77, 0xbe, 0x30, 0x73, 0x59, 0xc7, 0xac, 0xe9, 0x1e, 0x80, 0x4c,
- 0xab, 0x72, 0xc4, 0x16, 0x5c, 0x6e, 0x4b, 0xd1, 0xe2, 0x63, 0x14, 0xa7,
- 0x01, 0xaa, 0xe9, 0xa0, 0x2c, 0x53, 0xe7, 0x8b, 0x7e, 0xa7, 0xf5, 0xf6,
- 0x0b, 0x8a, 0x6d, 0x45, 0x0a, 0x93, 0x6d, 0xd6, 0x6e, 0x33, 0xef, 0x49,
- 0x2f, 0xa6, 0x23, 0x31, 0x9c, 0x7e, 0x99, 0x96, 0xcb, 0xb2, 0x11, 0x96,
- 0xa8, 0x19, 0xfa, 0xf0, 0xc8, 0x42, 0x47, 0xe0, 0x05, 0xf7, 0x5e, 0x53,
- 0x08, 0x7b, 0x6c, 0x0e, 0x2c, 0x11, 0x59, 0xa8, 0x36, 0xc6, 0x11, 0xd0,
- 0x10, 0x18, 0xe6, 0xa7, 0x2e, 0xae, 0x1c, 0xf0, 0x45, 0xef, 0x47, 0x87,
- 0xdb, 0xc9, 0xa3, 0x2d, 0x16, 0xd1, 0xef, 0xff, 0x6e, 0x5f, 0x02, 0x92,
- 0xe2, 0x1f, 0xb6, 0x5e, 0x56, 0x08, 0xab, 0x5d, 0xea, 0xfe, 0xbd, 0xb7,
- 0xc9, 0xc8, 0xca, 0x20, 0x4b, 0x90, 0x9b, 0xfb, 0xbd, 0xab, 0x10, 0xea,
- 0x9a, 0x88, 0xe6, 0xc9, 0xbd, 0x48, 0x4a, 0x0d, 0x9d, 0x40, 0x24, 0xcd,
- 0xbf, 0x70, 0x45, 0x5c, 0x7a, 0x85, 0x24, 0x46, 0x76, 0xfc, 0x4b, 0x22,
- 0x9c, 0x90, 0xd7, 0x5f, 0x72, 0x15, 0xed, 0x49, 0xf0, 0xa1, 0x81, 0xb3,
- 0x3c, 0x2a, 0x9f, 0x37, 0xa5, 0x10, 0x76, 0x48, 0xee, 0x63, 0x37, 0x7e,
- 0xdf, 0x17, 0xb8, 0x11, 0xa5, 0x6e, 0x9e, 0x2e, 0x8d, 0xd9, 0x3e, 0xb3,
- 0x22, 0xac, 0xf3, 0x27, 0x7b, 0xfd, 0x40, 0x99, 0xee, 0x35, 0x6a, 0x1a,
- 0xb2, 0xe7, 0x91, 0xe5, 0xa4, 0xa0, 0x4e, 0x1e, 0xd3, 0xf8, 0xef, 0x23,
- 0xad, 0x7c, 0xc4, 0xce, 0x2c, 0x49, 0xea, 0x9a, 0x98, 0x56, 0x1a, 0x14,
- 0xee, 0x6e, 0xd5, 0xe3, 0x5a, 0x89, 0x27, 0xd8, 0x1d, 0x27, 0xdf, 0x58,
- 0x8a, 0xb4, 0x84, 0x88, 0xb4, 0xc5, 0x1b, 0x20, 0x90, 0xc2, 0x8a, 0x8b,
- 0x4a, 0x43, 0x50, 0xa3, 0xe1, 0xad, 0x64, 0x83, 0xb1, 0xd4, 0x9b, 0x83,
- 0x7a, 0xee, 0x9d, 0xf3, 0x70, 0x61, 0xb2, 0x3e, 0xd4, 0x7f, 0xbc, 0x48,
- 0x81, 0xd6, 0x47, 0x91, 0x12, 0x84, 0x5d, 0x78, 0x65, 0xa7, 0x93, 0xe0,
- 0xfc, 0x48, 0xdd, 0x99, 0xc8, 0x45, 0x26, 0xec, 0x3f, 0xde, 0x9c, 0x6a,
- 0x45, 0x8d, 0xe9, 0xb3, 0x4f, 0xe7, 0x3d, 0xd2, 0xf9, 0xdc, 0x6a, 0x10,
- 0x33, 0x49, 0x72, 0x86, 0xcb, 0xaa, 0xe5, 0xfb, 0xf9, 0x89, 0x31, 0x0a,
- 0xbb, 0x6e, 0xe3, 0xe3, 0xbd, 0xc2, 0x32, 0xa1, 0xb5, 0x52, 0x68, 0x25,
- 0xcc, 0xd7, 0x8a, 0xbc, 0x04, 0x92, 0x4b, 0xd8, 0x3a, 0xe0, 0xae, 0xba,
- 0x36, 0xb8, 0xd3, 0xa8, 0x91, 0x2e, 0xf4, 0x19, 0x97, 0xed, 0x41, 0x32,
- 0xc4, 0x34, 0x8d, 0x7d, 0x06, 0xb7, 0x4c, 0x81, 0x07, 0x17, 0xc3, 0xfa,
- 0xca, 0xb2, 0x32, 0x89, 0xba, 0x8f, 0x37, 0xe7, 0xb0, 0x2c, 0x59, 0x2f,
- 0x59, 0xb7, 0x32, 0x02, 0x4e, 0x5a, 0x5f, 0x99, 0xea, 0x82, 0xe8, 0x8a,
- 0x78, 0x8d, 0xb3, 0xc5, 0xdf, 0x1e, 0xad, 0x49, 0xa5, 0x8c, 0xa2, 0x4d,
- 0x43, 0x50, 0x14, 0xcb, 0xd9, 0x96, 0x02, 0x1c, 0xdb, 0x3d, 0xa8, 0xc0,
- 0xc1, 0x1f, 0x6a, 0x0e, 0x79, 0x30, 0x8d, 0x14, 0x95, 0xa7, 0x8d, 0xe8,
- 0x4e, 0xb6, 0xa1, 0xbc, 0x97, 0x24, 0x3f, 0xa7, 0x39, 0xb8, 0x94, 0x3f,
- 0x14, 0x69, 0xd0, 0xec, 0xa7, 0x9e, 0x47, 0x21, 0x16, 0x27, 0x1a, 0xae,
- 0xb0, 0x0f, 0x50, 0x2d, 0x64, 0x21, 0x9e, 0x7d, 0xa2, 0x28, 0x48, 0x30,
- 0xae, 0xbb, 0x0c, 0x27, 0xb9, 0x48, 0xed, 0xe6, 0x9a, 0xa5, 0xd3, 0x0f,
- 0x34, 0x37, 0x4d, 0x55, 0xa9, 0x82, 0x78, 0xb6, 0x6c, 0x3d, 0xc0, 0x98,
- 0x10, 0x73, 0x4e, 0x56, 0xd4, 0x97, 0x1f, 0x28, 0x2b, 0x62, 0x43, 0xaa,
- 0x4e, 0x14, 0x71, 0xea, 0x25, 0xbd, 0x6e, 0x86, 0x3e, 0x71, 0xaf, 0x96,
- 0x71, 0xfe, 0x81, 0x5d, 0x94, 0x4c, 0x51, 0x44, 0xd5, 0x7a, 0x21, 0x12,
- 0x96, 0x0f, 0x54, 0xae, 0x50, 0xe1, 0xa0, 0x7d, 0xc8, 0x55, 0xd2, 0xb2,
- 0xac, 0x25, 0x0d, 0x37, 0xac, 0x8f, 0xcb, 0xd5, 0xb3, 0xf9, 0x45, 0x83,
- 0x0a, 0x8a, 0x9e, 0x47, 0x1e, 0xb8, 0xc9, 0xc2, 0x56, 0x24, 0x64, 0x7b,
- 0x33, 0xcb, 0x1f, 0x6f, 0x4e, 0x89, 0xf2, 0x23, 0x66, 0x14, 0x2f, 0x16,
- 0xda, 0xdb, 0x87, 0x37, 0xe1, 0x37, 0x99, 0xaf, 0x96, 0xa7, 0xdb, 0x26,
- 0xc6, 0x1b, 0xd9, 0xc4, 0xb7, 0xd9, 0x68, 0x59, 0xdc, 0x48, 0x56, 0x79,
- 0x16, 0x7d, 0x98, 0x67, 0x05, 0xc0, 0xfb, 0xb5, 0x49, 0x3f, 0x52, 0x37,
- 0x2f, 0x5c, 0x06, 0xc6, 0xd4, 0x53, 0x9e, 0xf6, 0x3f, 0xb4, 0x0e, 0x12,
- 0xa5, 0x64, 0xf9, 0x87, 0x3c, 0x09, 0x08, 0x0a, 0x2e, 0xe9, 0x9a, 0xce,
- 0x22, 0xa9, 0x5e, 0x83, 0x0f, 0x8d, 0x2e, 0x2d, 0xbc, 0x65, 0x25, 0x86,
- 0xd3, 0x26, 0xe9, 0xd7, 0x41, 0x26, 0x05, 0xb0, 0x80, 0xc3, 0x47, 0x3f,
- 0xc8, 0x19, 0xb4, 0x06, 0xbb, 0x00, 0xdb, 0x7b, 0x29, 0x68, 0x6c, 0xce,
- 0xd8, 0x40, 0xc4, 0x6c, 0x89, 0xa9, 0xad, 0x37, 0xc7, 0x66, 0x13, 0xb1,
- 0x2e, 0xdf, 0xb1, 0xe2, 0xb6, 0x86, 0x24, 0x2d, 0x48, 0x73, 0xdd, 0xc9,
- 0x07, 0x04, 0x35, 0xaf, 0xb3, 0xe6, 0x8f, 0x07, 0xd5, 0xdb, 0x1e, 0xef,
- 0x9f, 0x38, 0xdc, 0xc2, 0x2d, 0x8f, 0x9c, 0x7e, 0xe1, 0x3f, 0x3d, 0x47,
- 0x79, 0x3d, 0x48, 0xa2, 0x1f, 0x47, 0x0a, 0x52, 0x2b, 0xc0, 0x65, 0x8c,
- 0xd6, 0xf2, 0x49, 0x11, 0xbe, 0xc8, 0x5f, 0x6a, 0x4d, 0xcb, 0xfb, 0xb8,
- 0xf8, 0xd0, 0xe8, 0x62, 0xd1, 0xc6, 0xaa, 0x8b, 0x20, 0xd6, 0x1f, 0x8d,
- 0x94, 0x01, 0x51, 0x47, 0x62, 0xd4, 0xfa, 0x18, 0xae, 0xae, 0x39, 0xe1,
- 0x48, 0x05, 0x77, 0x61, 0x2a, 0xc1, 0x7a, 0x85, 0xf9, 0x91, 0x1f, 0xbc,
- 0xc6, 0xdb, 0x92, 0x27, 0x31, 0x56, 0x8c, 0xfc, 0xe3, 0x8f, 0xcf, 0xaf,
- 0xce, 0xcb, 0x03, 0x5c, 0x20, 0xc0, 0xe9, 0x34, 0x0f, 0xcf, 0x48, 0x8f,
- 0xd6, 0x07, 0xd6, 0x8c, 0x63, 0x28, 0xe5, 0x12, 0x0c, 0x8f, 0x51, 0x9d,
- 0x41, 0x58, 0xc5, 0xb7, 0x66, 0x96, 0x7e, 0x8b, 0xac, 0xa2, 0x3b, 0x50,
- 0x41, 0x52, 0x9d, 0x27, 0xc9, 0xc4, 0x50, 0xb3, 0x48, 0x30, 0xe1, 0xe3,
- 0x53, 0x26, 0x1f, 0xc3, 0xe4, 0x0a, 0xda, 0xc2, 0x26, 0xba, 0x58, 0xfa,
- 0x73, 0xf2, 0xde, 0x40, 0x5e, 0x42, 0xe1, 0xc0, 0xa7, 0xc7, 0x4b, 0x5c,
- 0xa7, 0x88, 0x3e, 0x2c, 0x9f, 0xdb, 0xd3, 0x2d, 0x27, 0x10, 0xad, 0x69,
- 0x48, 0x55, 0xf4, 0x71, 0xad, 0xad, 0x8d, 0x02, 0x43, 0x5b, 0xea, 0xaf,
- 0x78, 0xb4, 0x2d, 0x0b, 0x80, 0x70, 0xc3, 0x82, 0xe8, 0xfb, 0x81, 0xcd,
- 0x6a, 0x93, 0x8c, 0xd1, 0xa3, 0x2b, 0xd6, 0xa0, 0xcc, 0x5a, 0xe4, 0xa6,
- 0xf5, 0xe3, 0x0f, 0xf4, 0xce, 0xc7, 0x7b, 0x84, 0x39, 0xd1, 0xa4, 0xb6,
- 0x8d, 0x66, 0x49, 0x92, 0x64, 0xe2, 0xf7, 0x81, 0xbb, 0x8e, 0xd9, 0xeb,
- 0x17, 0x20, 0xf0, 0xc8, 0x33, 0x81, 0x5a, 0x4a, 0x2a, 0x45, 0xb1, 0xcc,
- 0x05, 0xad, 0xf7, 0xc3, 0xa4, 0xe4, 0xce, 0xbf, 0xb5, 0xc7, 0xf1, 0xbb,
- 0x3c, 0x95, 0x05, 0x57, 0x74, 0xc4, 0x59, 0x5a, 0x33, 0x2a, 0xb7, 0x9f,
- 0x58, 0x10, 0x1b, 0x96, 0x45, 0xce, 0xfd, 0x4a, 0xa3, 0x92, 0xd6, 0x3e,
- 0x62, 0x4c, 0x8a, 0xac, 0xf3, 0x9e, 0x83, 0xbb, 0x75, 0x4c, 0x87, 0xf2,
- 0x51, 0xff, 0x92, 0x3f, 0x52, 0x6a, 0xb0, 0x95, 0xe6, 0x93, 0x62, 0xb9,
- 0x53, 0xbd, 0x96, 0xb2, 0xbd, 0x51, 0x5b, 0x04, 0x2f, 0xb4, 0x8a, 0x79,
- 0x13, 0x8a, 0x8f, 0xb4, 0x01, 0x13, 0xe2, 0xb8, 0xb2, 0xe4, 0x5b, 0xad,
- 0x6b, 0x4e, 0x5d, 0x92, 0xba, 0x1d, 0xb9, 0x6f, 0x90, 0x1f, 0x9f, 0x1a,
- 0x0c, 0xc8, 0x18, 0x7e, 0x94, 0x8f, 0xe3, 0x1f, 0x1f, 0x91, 0x70, 0xce,
- 0x63, 0x30, 0x1e, 0x5c, 0xb8, 0x31, 0xd0, 0x10, 0xfc, 0x87, 0xe2, 0x30,
- 0x03, 0x75, 0x06, 0x95, 0xd9, 0xd3, 0xf9, 0x47, 0x89, 0x42, 0xed, 0x5a,
- 0x45, 0x73, 0x1c, 0xd6, 0xdd, 0x7b, 0xa8, 0x2c, 0x92, 0xf1, 0x1d, 0x57,
- 0x88, 0x1c, 0xcb, 0xe8, 0xea, 0xa3, 0x30, 0x2f, 0xed, 0x8b, 0xcb, 0x19,
- 0x43, 0xfa, 0xd0, 0x38, 0x74, 0x32, 0x5a, 0x34, 0xa6, 0x5a, 0x1b, 0x1e,
- 0xe9, 0xe3, 0x50, 0x09, 0xc7, 0x9c, 0xae, 0xc7, 0x4a, 0xf8, 0x07, 0x2e,
- 0x5b, 0xd7, 0xa0, 0xe6, 0x3f, 0x01, 0x90, 0x40, 0x12, 0xc0, 0x1a, 0x79,
- 0xa8, 0xcd, 0xcc, 0xed, 0x2b, 0xd2, 0x0b, 0x81, 0xf5, 0xf8, 0x1e, 0x90,
- 0x88, 0x4c, 0x73, 0x86, 0x51, 0x8e, 0x0f, 0xcc, 0x6a, 0x2e, 0xd8, 0x54,
- 0xcb, 0x85, 0x14, 0xbe, 0x63, 0x1c, 0x86, 0x0c, 0x16, 0xef, 0x0f, 0x15,
- 0x3e, 0x6c, 0xc1, 0x5e, 0xb7, 0x18, 0xfb, 0x5a, 0x56, 0x79, 0x53, 0xbb,
+ 0xb5, 0xab, 0x2c, 0x5b, 0xdb, 0x98, 0x2f, 0x09, 0x88, 0xd5, 0x08, 0xb2,
+ 0x7a, 0x24, 0xc9, 0xc6, 0x93, 0xa1, 0x90, 0x9e, 0xdb, 0x46, 0x3d, 0x85,
+ 0x6d, 0x48, 0x02, 0xa3, 0x95, 0xab, 0x1c, 0x61, 0x59, 0xc5, 0xaf, 0x7a,
+ 0x52, 0xfd, 0x94, 0x95, 0xd5, 0xf5, 0x0b, 0xc2, 0x4f, 0xbf, 0xfa, 0x02,
+ 0x68, 0x65, 0xfc, 0xeb, 0x9f, 0xdd, 0xdb, 0xfc, 0x0f, 0x51, 0x31, 0x31,
+ 0x82, 0xb5, 0x13, 0x61, 0x51, 0xe4, 0x6a, 0x99, 0x43, 0xcc, 0x48, 0xe4,
+ 0x48, 0x4a, 0x61, 0x30, 0x83, 0x22, 0x56, 0x6e, 0xf2, 0xe6, 0xe0, 0xed,
+ 0xbb, 0x83, 0xd3, 0x47, 0x73, 0x6e, 0x42, 0x4b, 0xa9, 0x8b, 0x35, 0x83,
+ 0xe1, 0xb2, 0x22, 0x38, 0xf2, 0x79, 0xd4, 0x80, 0x7f, 0xb9, 0x09, 0x1f,
+ 0xaf, 0x42, 0xe3, 0x71, 0x28, 0xf4, 0xfa, 0x0c, 0x41, 0x3c, 0x3c, 0x9c,
+ 0x90, 0xe5, 0x10, 0xa8, 0x32, 0xd4, 0x1a, 0x21, 0x0e, 0xc7, 0x66, 0x1e,
+ 0x4b, 0x51, 0x2e, 0x67, 0xc6, 0x98, 0xa6, 0x25, 0x9b, 0x58, 0x19, 0x2b,
+ 0xf2, 0x54, 0x8b, 0x6c, 0x76, 0xbf, 0xe8, 0x62, 0x0d, 0xba, 0x2f, 0xbb,
+ 0xbc, 0x9f, 0x79, 0x3c, 0x6e, 0xc9, 0x97, 0x29, 0x5c, 0xa8, 0x47, 0xd4,
+ 0x15, 0xaa, 0xe9, 0xda, 0x20, 0x74, 0xcd, 0x64, 0x64, 0x08, 0xf5, 0x98,
+ 0x67, 0x91, 0x3a, 0x8a, 0x61, 0xd4, 0x6c, 0xf1, 0x50, 0x01, 0xd2, 0xcc,
+ 0xe5, 0xfb, 0x4a, 0x45, 0x2c, 0x5c, 0x0b, 0x7e, 0xe6, 0xa2, 0x81, 0xe4,
+ 0xcc, 0x31, 0x38, 0x92, 0x42, 0xa0, 0x25, 0xdb, 0xa2, 0x43, 0xdc, 0xda,
+ 0xe8, 0x78, 0x64, 0x20, 0x1c, 0xb9, 0x43, 0xb7, 0x72, 0xca, 0x61, 0xba,
+ 0xb0, 0xf4, 0xd2, 0x97, 0xd7, 0xd7, 0x9a, 0x91, 0x8c, 0x39, 0x03, 0xbf,
+ 0x81, 0x26, 0xdd, 0xc0, 0xb7, 0xd4, 0x7a, 0xb6, 0x44, 0xc5, 0x75, 0xf0,
+ 0xa9, 0xfe, 0x35, 0x89, 0x35, 0xd7, 0xd3, 0x6c, 0x94, 0x5d, 0x5d, 0x3d,
+ 0x42, 0x1b, 0x92, 0x3f, 0x86, 0x26, 0x84, 0x2d, 0x77, 0x38, 0x73, 0x84,
+ 0xdf, 0x1b, 0x49, 0x9a, 0x1f, 0xaa, 0x25, 0x0c, 0xc4, 0xca, 0xa9, 0x90,
+ 0xa5, 0x8d, 0x49, 0x05, 0x3e, 0xce, 0x55, 0xad, 0x40, 0x28, 0x4a, 0x82,
+ 0x8a, 0xc2, 0xa3, 0xe1, 0x8e, 0x1e, 0x74, 0x86, 0x44, 0x9b, 0xbf, 0xff,
+ 0xe3, 0xc7, 0x9f, 0x5a, 0x40, 0x9a, 0xd8, 0x75, 0x61, 0x61, 0xfd, 0x1c,
+ 0xd6, 0xac, 0xe9, 0x48, 0x70, 0x12, 0xb0, 0xc1, 0xca, 0xc3, 0x33, 0x6a,
+ 0xc9, 0x9b, 0x20, 0x74, 0xbb, 0x79, 0x61, 0x14, 0xbe, 0x43, 0xab, 0xab,
+ 0xaa, 0x61, 0x1b, 0xd3, 0xe4, 0x3a, 0x06, 0x6e, 0x83, 0xbf, 0x3c, 0x5d,
+ 0xee, 0xab, 0xb2, 0xea, 0x26, 0x00, 0x9c, 0xcb, 0x6d, 0x0f, 0x05, 0x29,
+ 0x98, 0x93, 0x2f, 0x4e, 0x9c, 0xcb, 0x26, 0xd8, 0x88, 0xaf, 0x78, 0x23,
+ 0x1a, 0xab, 0xe6, 0x01, 0x12, 0x7b, 0xf5, 0x60, 0xf3, 0x10, 0x96, 0x00,
+ 0x50, 0xba, 0x02, 0x1a, 0x50, 0x85, 0x05, 0x5a, 0x0b, 0x32, 0x96, 0xe5,
+ 0x35, 0x1c, 0x22, 0x11, 0xb9, 0x3c, 0x14, 0xa3, 0xcb, 0x9c, 0xfb, 0xea,
+ 0xf8, 0x32, 0x32, 0xe0, 0xb7, 0x06, 0xdd, 0x07, 0x65, 0x73, 0x1c, 0x04,
+ 0x81, 0x43, 0x89, 0x13, 0xbc, 0x0a, 0x57, 0xb8, 0xef, 0x3e, 0x2c, 0xdf,
+ 0xd1, 0xa6, 0x84, 0x28, 0xe4, 0x90, 0x68, 0x75, 0x06, 0x47, 0xe0, 0x97,
+ 0xed, 0xd4, 0xa0, 0x61, 0xba, 0xff, 0xd1, 0xf5, 0xe8, 0x2f, 0x6d, 0x11,
+ 0x48, 0x96, 0xe0, 0xd6, 0x48, 0xbb, 0xef, 0x9f, 0xf4, 0x1c, 0x20, 0x84,
+ 0xae, 0x97, 0x2c, 0xa3, 0x9b, 0xc9, 0xa8, 0x05, 0xe0, 0x6d, 0xdd, 0x38,
+ 0xbe, 0x3e, 0x3e, 0x38, 0xb2, 0xc9, 0xfe, 0x0f, 0x64, 0xce, 0x3b, 0x1f,
+ 0xe8, 0x28, 0x11, 0x50, 0xbb, 0xe5, 0xdc, 0xca, 0x2b, 0x61, 0xcf, 0x9c,
+ 0xe1, 0xa6, 0x25, 0x62, 0x8c, 0x44, 0x36, 0x46, 0xbb, 0x16, 0x4d, 0x0e,
+ 0x25, 0x82, 0xcc, 0xc1, 0x2c, 0x51, 0x95, 0x6e, 0x3d, 0x42, 0xcf, 0x50,
+ 0xe0, 0x55, 0x69, 0xad, 0x7f, 0x14, 0x14, 0x03, 0x0c, 0x08, 0xfb, 0x06,
+ 0x29, 0x71, 0xd3, 0x45, 0x23, 0x37, 0x2a, 0xbe, 0xe6, 0x94, 0xcb, 0xe9,
+ 0x22, 0x78, 0x36, 0x48, 0x9f, 0x7b, 0x29, 0x3f, 0xd7, 0xdc, 0x2b, 0xc7,
+ 0x80, 0xba, 0xd2, 0x47, 0xc3, 0x24, 0xd1, 0xeb, 0xa0, 0x78, 0x13, 0x49,
+ 0x1a, 0x7c, 0x65, 0x5c, 0xb3, 0xd1, 0x16, 0x37, 0x3e, 0xb1, 0xd0, 0xfa,
+ 0x3a, 0x04, 0x15, 0x8a, 0x7d, 0x05, 0xf0, 0x24, 0x68, 0xbd, 0x92, 0x6e,
+ 0xa5, 0xc9, 0x6b, 0x56, 0xb6, 0x68, 0xd2, 0xa8, 0x29, 0x43, 0xdc, 0xa6,
+ 0x28, 0x49, 0x0a, 0xb4, 0x91, 0xf1, 0x4b, 0x37, 0x71, 0x00, 0xe8, 0x27,
+ 0x10, 0x0e, 0xe2, 0x69, 0xf6, 0xc7, 0xc6, 0xfc, 0x9a, 0xcd, 0xca, 0x1d,
+ 0x4e, 0xb1, 0x53, 0xe0, 0xb8, 0x25, 0xb6, 0x0d, 0xc2, 0x36, 0x27, 0xfb,
+ 0xf3, 0x4b, 0x9a, 0xd8, 0xa7, 0x5d, 0x86, 0xd1, 0x74, 0x6b, 0x8e, 0xab,
+ 0x8a, 0xd6, 0xce, 0x99, 0xca, 0xe1, 0x04, 0x15, 0xc3, 0x09, 0xcf, 0xd1,
+ 0xd2, 0x08, 0x91, 0xb4, 0x87, 0x52, 0xee, 0x8d, 0x5b, 0x8f, 0xaf, 0xe1,
+ 0xa2, 0x5c, 0x5e, 0x61, 0x16, 0x2c, 0x4c, 0x89, 0x43, 0x04, 0x03, 0xf5,
+ 0xb5, 0x51, 0x33, 0x14, 0x21, 0xb7, 0x35, 0x33, 0xbd, 0x3f, 0x1e, 0xaf,
+ 0xf3, 0xed, 0xea, 0x74, 0x7c, 0xf5, 0x19, 0xc7, 0xea, 0xd9, 0x9e, 0x26,
+ 0x65, 0xc5, 0x93, 0x9c, 0x1d, 0x1c, 0x6c, 0x63, 0x13, 0xe4, 0xef, 0xfb,
+ 0x26, 0x47, 0xd7, 0x1a, 0x3b, 0x92, 0x88, 0xce, 0xc5, 0x1c, 0xd8, 0x4e,
+ 0x26, 0xc9, 0x86, 0x3a, 0x6d, 0x5d, 0x30, 0xba, 0x22, 0xae, 0xd3, 0x3b,
+ 0x2b, 0x4b, 0x86, 0x91, 0xb5, 0x64, 0xbc, 0xd9, 0x20, 0x4c, 0xd6, 0x57,
+ 0xdf, 0xbe, 0xc0, 0x31, 0x44, 0x9c, 0x1d, 0x1b, 0x6c, 0xe7, 0x38, 0x9b,
+ 0x02, 0xbf, 0x21, 0x86, 0x2b, 0x61, 0x9f, 0x09, 0xbb, 0xee, 0x87, 0xfb,
+ 0x9a, 0xa4, 0xba, 0xfd, 0xce, 0x9a, 0x78, 0xf7, 0x90, 0xb5, 0x17, 0xcb,
+ 0xdc, 0xaa, 0x0b, 0x22, 0x48, 0x45, 0x47, 0x0d, 0x54, 0xfc, 0xc9, 0x64,
+ 0x5b, 0x47, 0x6c, 0xc1, 0x5c, 0x6d, 0x50, 0x86, 0x9a, 0xad, 0xb1, 0x40,
+ 0x50, 0xe3, 0xa4, 0x9f, 0x5d, 0xf5, 0x51, 0xa5, 0x91, 0x2b, 0xe4, 0xb1,
+ 0x5a, 0x16, 0x10, 0x34, 0x52, 0x77, 0x91, 0x52, 0x38, 0x99, 0xb4, 0xdd,
+ 0x92, 0x1a, 0x18, 0x9f, 0x3b, 0x8b, 0x9d, 0x0e, 0x46, 0x17, 0x65, 0x9f,
+ 0xad, 0x3c, 0xf6, 0xba, 0x03, 0x68, 0x63, 0x34, 0xef, 0x38, 0xcf, 0x53,
+ 0x3a, 0x87, 0x0d, 0x50, 0x63, 0x44, 0x31, 0xf6, 0xe4, 0x26, 0x95, 0x90,
+ 0x30, 0xf6, 0xf5, 0xcc, 0xc4, 0xc9, 0x07, 0x47, 0xcd, 0x72, 0x01, 0x91,
+ 0x90, 0x13, 0xb6, 0xdb, 0x64, 0x5f, 0x9f, 0xec, 0x56, 0x2b, 0x91, 0x08,
+ 0xff, 0x45, 0x98, 0x1b, 0xbc, 0x0e, 0xe1, 0x64, 0x9d, 0x08, 0x1c, 0xe4,
+ 0x5b, 0x80, 0x55, 0x6b, 0x2e, 0x80, 0x5f, 0xf2, 0x6d, 0x31, 0xbd, 0xb6,
+ 0xc5, 0x22, 0xf1, 0x5b, 0xc6, 0x3d, 0x02, 0xd9, 0x99, 0x2b, 0x59, 0x2f,
+ 0x96, 0xa3, 0xd9, 0xe4, 0x59, 0xf4, 0x92, 0xfe, 0xf9, 0xbc, 0xc5, 0x77,
+ 0x2e, 0x49, 0xe5, 0x2a, 0x0b, 0xab, 0x2c, 0x84, 0xdf, 0x9f, 0xec, 0xf1,
+ 0x89, 0x78, 0xa0, 0x36, 0xc7, 0x29, 0x42, 0x49, 0x27, 0xe9, 0x75, 0x5a,
+ 0x16, 0x9a, 0x46, 0x88, 0x17, 0xd6, 0x96, 0xcb, 0xe2, 0xf5, 0xd9, 0xdd,
+ 0xfb, 0x2c, 0x1a, 0xa5, 0x65, 0xf4, 0xe6, 0xe8, 0x99, 0x14, 0xdc, 0x2b,
+ 0x96, 0x33, 0x5f, 0x98, 0x15, 0x80, 0xc0, 0xa8, 0xb4, 0xdd, 0x65, 0x98,
+ 0xbe, 0xe5, 0x68, 0xda, 0xa8, 0x7d, 0x73, 0x9b, 0xac, 0x6a, 0x45, 0xc5,
+ 0x19, 0x76, 0xac, 0x48, 0xea, 0x76, 0x76, 0x47, 0x72, 0xa8, 0xdb, 0xad,
+ 0x5e, 0xfb, 0xa6, 0x40, 0x4f, 0xf3, 0xa7, 0x11, 0x14, 0x56, 0xad, 0xab,
+ 0x96, 0xfc, 0x0f, 0x32, 0xe0, 0x7d, 0x1f, 0x1e, 0x9e, 0x8b, 0x3b, 0x07,
+ 0xa1, 0x7b, 0x01, 0x86, 0xc4, 0x63, 0xd8, 0xb7, 0x9f, 0x56, 0x4d, 0xab,
+ 0x52, 0x76, 0xd3, 0x30, 0x8b, 0xfa, 0xa4, 0x5c, 0x5d, 0xaf, 0xab, 0xa5,
+ 0x18, 0x9d, 0xe0, 0x59, 0x3d, 0xc6, 0xa6, 0x11, 0x9f, 0xe2, 0x8d, 0x20,
+ 0xf5, 0x59, 0xae, 0x5d, 0x3e, 0x08, 0xe9, 0x98, 0x4b, 0xda, 0x36, 0xd0,
+ 0x57, 0x97, 0x1e, 0xde, 0xd8, 0x0a, 0x7c, 0xe6, 0x4b, 0x01, 0x34, 0x3f,
+ 0x58, 0xb0, 0x99, 0x27, 0xda, 0x1d, 0x3c, 0xf4, 0xc2, 0xea, 0x62, 0x0a,
+ 0x80, 0x8f, 0x32, 0x62, 0x0d, 0x0f, 0x14, 0xc2, 0x31, 0x6a, 0xa3, 0xe1,
+ 0xb6, 0xc5, 0xbe, 0x36, 0xe5, 0xf0, 0xa4, 0x5c, 0x58, 0xf0, 0x1e, 0xf1,
+ 0xb2, 0xeb, 0x18, 0xf8, 0xeb, 0x01, 0xe5, 0xa5, 0x74, 0x0e, 0x14, 0xd2,
+ 0x6c, 0xdd, 0xbc, 0xe5, 0xdb, 0x00, 0xd4, 0xd7, 0xee, 0x61, 0x95, 0xc5,
+ 0x25, 0xb8, 0x57, 0xc8, 0x2d, 0xf8, 0xba, 0x59, 0x04, 0x8d, 0x9b, 0x71,
+ 0xa7, 0x17, 0xda, 0xaf, 0xac, 0x40, 0x9f, 0x6f, 0xbe, 0x5e, 0x84, 0xba,
+ 0xe8, 0x8e, 0x51, 0xfa, 0xa8, 0x66, 0x69, 0xb4, 0x19, 0xc4, 0x5f, 0x58,
+ 0x1d, 0x5f, 0x0e, 0x75, 0x1a, 0x0c, 0xc2, 0xe3, 0x04, 0x46, 0x7e, 0xc5,
+ 0xcc, 0xaf, 0x35, 0x97, 0xfb, 0x5c, 0x30, 0x0b, 0xa3, 0x6a, 0x7d, 0x6a,
+ 0xad, 0x39, 0x15, 0x88, 0xc9, 0xae, 0x99, 0x81, 0x33, 0x91, 0x24, 0xfc,
+ 0x51, 0xdb, 0xf5, 0x84, 0xde, 0x64, 0x22, 0x41, 0x3c, 0x02, 0xed, 0x84,
+ 0x2b, 0x52, 0x3f, 0x88, 0x0e, 0xe6, 0xa6, 0x89, 0x47, 0x5a, 0x29, 0x0c,
+ 0x89, 0x3b, 0x8d, 0xea, 0x2e, 0xb7, 0x49, 0xc3, 0x24, 0xa0, 0x36, 0x81,
+ 0x60, 0x66, 0x24, 0x57, 0xed, 0xec, 0xef, 0x86, 0x75, 0x81, 0xe6, 0x5a,
+ 0x3e, 0x02, 0xc5, 0x72, 0x7e, 0xbb, 0xe8, 0xfb, 0x13, 0x95, 0xc4, 0xda,
+ 0xe8, 0x85, 0x61, 0xb7, 0xb7, 0x5f, 0x9f, 0x9c, 0x1e, 0x6f, 0x45, 0xaf,
+ 0x13, 0xe0, 0x8a, 0x54, 0x89, 0x02, 0xc7, 0xf7, 0x77, 0xf2, 0x89, 0x91,
+ 0xbf, 0x2a, 0xa1, 0x6d, 0xf1, 0x23, 0xea, 0xb0, 0x80, 0x34, 0x2d, 0x27,
+ 0x02, 0x73, 0x90, 0xcc, 0xac, 0x0c, 0x86, 0x4b, 0x43, 0x56, 0x87, 0xb8,
+ 0x1a, 0x80, 0x7e, 0xb4, 0x14, 0x77, 0x8a, 0xa3, 0xb0, 0x16, 0x8e, 0xc7,
+ 0xbb, 0x60, 0x32, 0xb2, 0x38, 0x60, 0x1e, 0xbb, 0x5a, 0xe5, 0x2a, 0x75,
+ 0xd1, 0xd7, 0x15, 0xcd, 0x2b, 0xd2, 0x9f, 0x25, 0x1a, 0x1d, 0xab, 0x36,
+ 0xcb, 0x26, 0x0e, 0x5f, 0x52, 0x4a, 0xd6, 0xf0, 0x7c, 0x83, 0xb5, 0xfb,
+ 0x2b, 0xad, 0xdd, 0x5f, 0x97, 0xf3, 0xdb, 0xbe, 0x96, 0x26, 0x54, 0x40,
+ 0x8f, 0xa2, 0xfd, 0xec, 0x7d, 0xe7, 0x62, 0x50, 0x10, 0x18, 0x2c, 0x86,
+ 0xce, 0x66, 0x8d, 0xbe, 0x38, 0x80, 0x97, 0xeb, 0x3d, 0x56, 0xe0, 0x27,
+ 0x14, 0x1e, 0x38, 0x72, 0x94, 0x26, 0x37, 0xe6, 0xb0, 0x64, 0xd6, 0x11,
+ 0x3b, 0x56, 0x2c, 0x51, 0x9b, 0xee, 0x0c, 0x3c, 0xb6, 0x62, 0x03, 0xb2,
+ 0xb6, 0xd0, 0xb4, 0xb3, 0x1b, 0xab, 0x71, 0x07, 0x01, 0x56, 0x63, 0x4b,
+ 0x48, 0x14, 0x48, 0xd9, 0x28, 0x46, 0xd7, 0xbc, 0xab, 0xc0, 0x28, 0xc1,
+ 0x89, 0x8c, 0x20, 0xcb, 0xa4, 0x54, 0xbb, 0x66, 0x25, 0x21, 0x30, 0x32,
+ 0xe4, 0xef, 0xc2, 0xe3, 0xfd, 0xd8, 0x00, 0xa3, 0xda, 0xe0, 0x44, 0xa0,
+ 0x67, 0xd9, 0xa0, 0xdb, 0x20, 0x9c, 0xf1, 0x34, 0x93, 0xaa, 0x47, 0xf7,
+ 0xa1, 0x5b, 0xf3, 0x3f, 0x71, 0xdf, 0xf3, 0x65, 0xa6, 0x94, 0xd8, 0x6f,
+ 0x89, 0x90, 0x0f, 0x21, 0x53, 0x0d, 0x63, 0x0d, 0x59, 0x47, 0x10, 0x23,
+ 0xce, 0x7c, 0x13, 0xf3, 0xa0, 0xe4, 0xb7, 0xaa, 0x18, 0x6b, 0x8b, 0x0d,
+ 0xf5, 0x83, 0x6a, 0x1e, 0x8e, 0x53, 0x1f, 0x11, 0x59, 0x65, 0x45, 0x2a,
+ 0xdb, 0xe2, 0x8c, 0x82, 0xa1, 0xde, 0xdc, 0x8c, 0x10, 0x37, 0x70, 0x03,
+ 0x97, 0x1c, 0xef, 0x42, 0xaf, 0x4c, 0xfb, 0x0c, 0xe6, 0x7b, 0x0b, 0xbe,
+ 0x5e, 0xb4, 0xc5, 0x8d, 0x69, 0x3a, 0x55, 0x30, 0xc9, 0xc0, 0xc8, 0xa9,
+ 0x62, 0xbe, 0x85, 0xed, 0x18, 0xbc, 0x2b, 0x89, 0xa5, 0xd6, 0x5a, 0xa7,
+ 0x19, 0x34, 0x12, 0x22, 0x0d, 0x88, 0xe9, 0xcc, 0x03, 0x3a, 0x1d, 0x10,
+ 0x6d, 0x35, 0x1e, 0xe1, 0xbc, 0x0d, 0x89, 0x5c, 0x4f, 0x5a, 0xea, 0x74,
+ 0x33, 0x0c, 0x37, 0x6d, 0x91, 0x05, 0x36, 0xb8, 0x72, 0x80, 0x2d, 0x89,
+ 0x79, 0x9a, 0x67, 0x29, 0xeb, 0x16, 0xb3, 0xfb, 0xac, 0x4e, 0xab, 0x2b,
+ 0x17, 0x10, 0xea, 0x02, 0x65, 0xc5, 0x17, 0xa2, 0x05, 0x81, 0xfc, 0xa8,
+ 0x02, 0x5c, 0xfe, 0xb5, 0x93, 0x45, 0x65, 0x1a, 0x8b, 0x37, 0x0c, 0xd7,
+ 0xb8, 0x19, 0x6e, 0x18, 0x88, 0xa2, 0x91, 0x2f, 0xf0, 0x46, 0xfc, 0x00,
+ 0x90, 0x0d, 0x08, 0x40, 0x93, 0xca, 0x25, 0xea, 0x14, 0x85, 0x53, 0x5e,
+ 0xcc, 0xb5, 0x92, 0xdf, 0x03, 0x2b, 0xed, 0x9a, 0x32, 0x70, 0x48, 0xbe,
+ 0xbc, 0x89, 0x1f, 0x1e, 0x06, 0x45, 0x22, 0x75, 0xd1, 0x8a, 0x62, 0x8a,
+ 0x44, 0xcf, 0x6a, 0xfd, 0x37, 0x4e, 0xf3, 0x4f, 0x16, 0xf1, 0x14, 0xd1,
+ 0x8e, 0xcc, 0x8f, 0xd6, 0xd5, 0xd9, 0xaa, 0x46, 0x2b, 0x48, 0x05, 0x40,
+ 0x29, 0x97, 0x9e, 0x4a, 0x7d, 0x98, 0x40, 0x8e, 0x63, 0x60, 0xa8, 0x42,
+ 0x58, 0x11, 0x87, 0x60, 0x45, 0xe9, 0xa4, 0xe1, 0x74, 0xd2, 0xd0, 0x2e,
+ 0x76, 0xff, 0xf0, 0xce, 0xb9, 0x41, 0xb0, 0xb6, 0x31, 0x52, 0x3b, 0x34,
+ 0x22, 0x4b, 0xb8, 0x75, 0xf3, 0x8e, 0x31, 0xda, 0x00, 0xa9, 0x5b, 0x93,
+ 0x65, 0x43, 0xdb, 0xad, 0xbf, 0x6f, 0x45, 0x76, 0x83, 0xdc, 0x0b, 0xf0,
+ 0x1e, 0x7e, 0x22, 0x73, 0x77, 0x3a, 0x20, 0x79, 0x51, 0xbd, 0xb1, 0x71,
+ 0x19, 0x5c, 0x09, 0x0a, 0x87, 0x4c, 0xf1, 0xf2, 0xf0, 0xfc, 0xfd, 0x37,
+ 0xc7, 0xc7, 0xe7, 0x27, 0x47, 0xc4, 0xfb, 0x45, 0xa6, 0x74, 0x1f, 0xbd,
+ 0xbd, 0xfc, 0xf6, 0xd4, 0x80, 0x39, 0x6c, 0x7d, 0x1a, 0xdc, 0x9a, 0x0d,
+ 0xbf, 0x68, 0xee, 0x34, 0x9d, 0x2f, 0x1f, 0x7a, 0x28, 0x2f, 0x45, 0x8a,
+ 0xc6, 0xc1, 0xc9, 0xf7, 0xbd, 0xe8, 0xeb, 0xf3, 0xfe, 0xbb, 0xef, 0x1b,
+ 0xc9, 0x53, 0x95, 0xa0, 0xbc, 0xfa, 0x39, 0x77, 0x21, 0x7a, 0x40, 0x0c,
+ 0xf3, 0x73, 0x37, 0x12, 0x6b, 0x01, 0x57, 0xfe, 0xb8, 0xcb, 0xbe, 0x6a,
+ 0xbb, 0x0f, 0x6f, 0x7b, 0x67, 0x5c, 0x92, 0xbd, 0x6f, 0xb9, 0xed, 0xe2,
+ 0x19, 0x27, 0x1a, 0x0d, 0x42, 0xc2, 0x5a, 0x45, 0x2f, 0xe9, 0x9f, 0xb6,
+ 0x6c, 0xcd, 0x6d, 0x2e, 0x52, 0x1f, 0x9d, 0x07, 0xd0, 0x15, 0xce, 0x81,
+ 0x35, 0xb0, 0xb8, 0x25, 0xb5, 0x24, 0x68, 0xfa, 0x91, 0x3a, 0x09, 0xf3,
+ 0x06, 0x38, 0xa5, 0x6b, 0xc1, 0x17, 0xf5, 0x85, 0x79, 0x2f, 0x69, 0x77,
+ 0x3e, 0xfe, 0x8a, 0x69, 0xaa, 0xd4, 0xe9, 0x07, 0x01, 0x11, 0x1a, 0x53,
+ 0xe4, 0x47, 0x07, 0x0e, 0x10, 0x46, 0x65, 0x16, 0x6e, 0x04, 0xf3, 0x53,
+ 0xd4, 0x8d, 0x16, 0x1c, 0x76, 0x01, 0x4c, 0x70, 0xc8, 0x1e, 0x68, 0x90,
+ 0x46, 0x3f, 0x60, 0x74, 0x84, 0x9e, 0xe0, 0x24, 0x84, 0x18, 0x09, 0x0e,
+ 0x07, 0x48, 0xab, 0x93, 0x95, 0xad, 0xc6, 0x2b, 0x00, 0x99, 0xfc, 0xfb,
+ 0xb0, 0x11, 0x6e, 0xf3, 0x51, 0xf4, 0x12, 0x01, 0x7f, 0xed, 0x81, 0xd4,
+ 0x5a, 0x37, 0xf6, 0x9b, 0x24, 0x1f, 0x25, 0x79, 0x56, 0xd4, 0x73, 0xe8,
+ 0x34, 0xe7, 0x5e, 0xeb, 0x73, 0x72, 0x33, 0x0a, 0xed, 0xdf, 0x30, 0xbc,
+ 0x42, 0x08, 0x4f, 0xc4, 0x83, 0xdd, 0xc8, 0x16, 0xea, 0x22, 0x76, 0xae,
+ 0xdb, 0x8b, 0xba, 0x9c, 0x29, 0xc8, 0x3f, 0x89, 0x75, 0x5d, 0xc1, 0x37,
+ 0x92, 0xc6, 0xd3, 0x6e, 0xaf, 0x09, 0x8f, 0xd8, 0xd5, 0x55, 0xef, 0xd2,
+ 0xc6, 0x49, 0x6b, 0x56, 0x48, 0x35, 0xd6, 0x71, 0x08, 0xa2, 0x4b, 0x5a,
+ 0x28, 0xe8, 0x62, 0x68, 0xa1, 0x2b, 0x1a, 0x58, 0x56, 0xae, 0xb9, 0x6a,
+ 0xaa, 0xd6, 0xba, 0xda, 0x2c, 0x55, 0xce, 0xab, 0xa1, 0x91, 0xd0, 0xf6,
+ 0x2d, 0x9d, 0x5d, 0x12, 0xde, 0xa1, 0x3d, 0xdf, 0xea, 0xda, 0x3d, 0x65,
+ 0x59, 0xf5, 0xab, 0xe1, 0xf0, 0xe0, 0xfc, 0xa4, 0xbe, 0xd4, 0xf4, 0x69,
+ 0xff, 0xad, 0xd5, 0x88, 0xdf, 0x32, 0x4a, 0xf1, 0xba, 0x29, 0xcf, 0x00,
+ 0x99, 0x47, 0x2c, 0x5d, 0x73, 0xa8, 0x88, 0x40, 0x51, 0x7d, 0x4b, 0x97,
+ 0xd9, 0x9a, 0x08, 0x47, 0x05, 0x1f, 0x52, 0x13, 0x67, 0x1e, 0x55, 0x6a,
+ 0x4f, 0x92, 0x20, 0xf9, 0x1b, 0xd2, 0xd4, 0x37, 0x52, 0xcf, 0xec, 0x2a,
+ 0xbd, 0xe6, 0x20, 0x7d, 0xfc, 0x6c, 0xc3, 0x61, 0x72, 0x00, 0x4c, 0x5a,
+ 0x02, 0xd6, 0x3f, 0xe9, 0x25, 0x66, 0x60, 0x9e, 0x69, 0x8e, 0x99, 0x08,
+ 0xce, 0x03, 0xab, 0x29, 0xd1, 0x40, 0x89, 0xb2, 0x97, 0xd3, 0x20, 0x64,
+ 0x62, 0x9a, 0xf8, 0x88, 0x1c, 0x53, 0x4c, 0x70, 0x97, 0xfb, 0x46, 0xc5,
+ 0x6f, 0xdc, 0x20, 0x57, 0xab, 0x83, 0xa7, 0x2f, 0x8b, 0x1d, 0x3d, 0x9c,
+ 0xb0, 0x8a, 0xcc, 0x62, 0xeb, 0x62, 0xa7, 0xbf, 0xbd, 0x91, 0xb5, 0x81,
+ 0x0d, 0x90, 0x0c, 0xc8, 0x70, 0xcd, 0xe1, 0x18, 0x06, 0xd1, 0xd9, 0x22,
+ 0x90, 0xbe, 0x6e, 0x92, 0x34, 0xf7, 0x0e, 0x51, 0x9f, 0xcf, 0x0e, 0xae,
+ 0xd0, 0x9c, 0x2c, 0x33, 0x9e, 0xac, 0x5a, 0x90, 0x47, 0x57, 0x50, 0xa6,
+ 0x2d, 0xe5, 0x53, 0x8c, 0xef, 0xc2, 0x73, 0x46, 0x33, 0x29, 0x93, 0x62,
+ 0x41, 0x7a, 0x68, 0xa3, 0xfa, 0xa7, 0x18, 0x38, 0x81, 0x7c, 0xc0, 0xb0,
+ 0xd2, 0x05, 0x82, 0x70, 0x22, 0x60, 0xf1, 0xaf, 0x2a, 0x6e, 0x17, 0x78,
+ 0x3c, 0xe9, 0x14, 0x6d, 0x2a, 0x7e, 0x61, 0x6b, 0x81, 0x42, 0xf1, 0x19,
+ 0xf0, 0x61, 0x0f, 0x50, 0xfd, 0xad, 0xbc, 0x9c, 0x6f, 0xdf, 0xc3, 0xf0,
+ 0x78, 0x3f, 0x70, 0xda, 0x92, 0x35, 0xed, 0x20, 0x53, 0x82, 0x09, 0x38,
+ 0xd8, 0x2e, 0xe7, 0x40, 0x36, 0xb6, 0x03, 0x20, 0x74, 0x51, 0x27, 0x14,
+ 0xfb, 0xa1, 0x81, 0x05, 0x95, 0x01, 0x64, 0xe5, 0x3b, 0x01, 0x86, 0x98,
+ 0x64, 0x4b, 0x66, 0x70, 0xf2, 0x69, 0xdd, 0x81, 0x93, 0x48, 0x69, 0xc7,
+ 0x82, 0x9d, 0x42, 0xec, 0xc5, 0x69, 0x29, 0x3e, 0xe1, 0xa0, 0x19, 0xf6,
+ 0xa3, 0xbf, 0xfc, 0xa5, 0x17, 0xfd, 0xa5, 0x43, 0xff, 0x95, 0xf4, 0x1f,
+ 0xad, 0xe7, 0x5f, 0xa4, 0x96, 0xc1, 0x5f, 0xee, 0xe8, 0xfe, 0x8c, 0xb8,
+ 0x24, 0x61, 0x31, 0x65, 0x10, 0x01, 0x8f, 0x53, 0xdf, 0x02, 0xad, 0x21,
+ 0x21, 0x86, 0x5a, 0x9f, 0x83, 0x0f, 0x3f, 0x2c, 0x58, 0x13, 0xb7, 0x54,
+ 0x92, 0x5a, 0x43, 0x1b, 0xb6, 0x9c, 0xcd, 0x25, 0x8e, 0x41, 0xb7, 0x1d,
+ 0x64, 0xdd, 0xd0, 0x22, 0xe3, 0xa8, 0xfb, 0x89, 0x79, 0xcd, 0x4b, 0x4b,
+ 0x6d, 0x0d, 0x83, 0x34, 0xf1, 0x9a, 0xd1, 0x75, 0xa9, 0x75, 0x20, 0x25,
+ 0x4e, 0xa9, 0x2d, 0x5e, 0x53, 0xd4, 0xf0, 0xb3, 0x39, 0x6c, 0xf5, 0x80,
+ 0x08, 0x55, 0xc6, 0xaa, 0xac, 0x90, 0xad, 0xd2, 0x8b, 0x9b, 0x15, 0x74,
+ 0x4d, 0x1d, 0x92, 0xab, 0xe5, 0x4c, 0xa3, 0x6c, 0x29, 0x2b, 0xd2, 0x14,
+ 0xbe, 0xad, 0x70, 0xa9, 0xaa, 0xeb, 0x56, 0x21, 0x33, 0xe4, 0x2b, 0x34,
+ 0xc0, 0x6e, 0xbf, 0x5b, 0xc5, 0x46, 0xb4, 0x30, 0x9e, 0xb6, 0x3a, 0x37,
+ 0x41, 0x51, 0x9a, 0x46, 0x6d, 0x4c, 0xd8, 0x4a, 0x15, 0xfe, 0x4b, 0x40,
+ 0xf6, 0x05, 0x68, 0x23, 0xf3, 0xde, 0x24, 0x78, 0x09, 0x2b, 0x13, 0x51,
+ 0xbd, 0x9d, 0x58, 0x6b, 0xa3, 0x16, 0x89, 0x02, 0xbf, 0xe9, 0xbb, 0x69,
+ 0x19, 0x28, 0x42, 0xfd, 0xbe, 0x54, 0xce, 0x54, 0x3c, 0x68, 0x48, 0xad,
+ 0xb8, 0x9c, 0x58, 0xe3, 0x29, 0xd2, 0xd9, 0xa2, 0x61, 0x79, 0xe4, 0x35,
+ 0xf6, 0x42, 0x2f, 0x0f, 0x03, 0x38, 0xf8, 0x5c, 0x4d, 0xe7, 0x7e, 0xae,
+ 0x6c, 0x64, 0x98, 0x01, 0x45, 0x40, 0x8c, 0x53, 0x00, 0x95, 0xf1, 0x71,
+ 0x3b, 0x2d, 0x5e, 0xfb, 0x86, 0x99, 0x8a, 0xc7, 0xf4, 0x2a, 0xea, 0xac,
+ 0xd5, 0x52, 0x3a, 0xf5, 0x17, 0x4e, 0x19, 0xf6, 0x45, 0x77, 0x5c, 0xb0,
+ 0xfe, 0xc6, 0x30, 0xca, 0x09, 0x3e, 0xdb, 0x14, 0x88, 0x24, 0x5a, 0xbb,
+ 0xd0, 0x25, 0x45, 0x86, 0xcc, 0x69, 0x8d, 0x2f, 0x46, 0x9c, 0x58, 0x02,
+ 0x1d, 0xa9, 0xa7, 0x92, 0x2b, 0xa1, 0xae, 0x83, 0x3d, 0x35, 0x1b, 0x0b,
+ 0xe7, 0xf0, 0xdf, 0x2a, 0xfa, 0x9b, 0xda, 0x20, 0x36, 0x4d, 0xdb, 0xfb,
+ 0x9b, 0xdd, 0x63, 0x5b, 0x6a, 0x25, 0x97, 0xbc, 0xd4, 0x35, 0xd0, 0x2d,
+ 0xe1, 0x15, 0xe4, 0xc0, 0x84, 0x52, 0x48, 0xf5, 0xf4, 0xde, 0x72, 0x3e,
+ 0x71, 0x61, 0x82, 0x86, 0xf5, 0xb2, 0x96, 0xaa, 0xa1, 0xe8, 0x70, 0x8f,
+ 0x0a, 0x3a, 0xa7, 0xc4, 0xe3, 0x39, 0x0b, 0x7c, 0x0e, 0x85, 0x13, 0x90,
+ 0xb3, 0x9c, 0x94, 0xd8, 0xc6, 0xce, 0xec, 0x6e, 0xb9, 0x38, 0x50, 0xd4,
+ 0xf5, 0x93, 0x42, 0x8f, 0xaa, 0x86, 0x75, 0x6e, 0x32, 0x81, 0xfb, 0xe9,
+ 0xec, 0xb3, 0x66, 0xa5, 0x8c, 0xc1, 0xcf, 0xb2, 0x79, 0x14, 0x00, 0xa6,
+ 0xf4, 0xf5, 0xd9, 0x9b, 0x63, 0x97, 0xf1, 0x2a, 0xa6, 0x3e, 0xfe, 0xa4,
+ 0x15, 0xe2, 0x71, 0x80, 0x7c, 0x02, 0x43, 0x80, 0xe8, 0x35, 0x6b, 0x74,
+ 0xca, 0x12, 0x5d, 0x27, 0xe5, 0xe2, 0x7e, 0x99, 0x4e, 0x36, 0x01, 0xd2,
+ 0xf1, 0xee, 0xed, 0xc9, 0xf7, 0x7d, 0xb1, 0x14, 0x8b, 0x22, 0x67, 0x38,
+ 0x15, 0x86, 0x72, 0x21, 0xde, 0x84, 0x59, 0x0b, 0x26, 0x8b, 0x52, 0x0d,
+ 0x8e, 0x99, 0xa2, 0x12, 0x21, 0xd7, 0x2f, 0x9d, 0x8b, 0x10, 0x23, 0x0d,
+ 0xd2, 0xbd, 0x71, 0x36, 0x27, 0xf6, 0x0d, 0xac, 0x25, 0x01, 0xd0, 0x68,
+ 0xc9, 0xde, 0xad, 0xae, 0x44, 0x74, 0x70, 0x7e, 0x7e, 0x74, 0x70, 0x79,
+ 0xe0, 0xe6, 0x06, 0x70, 0x23, 0xf0, 0x39, 0x88, 0x33, 0xac, 0xd8, 0x6b,
+ 0xa5, 0xa4, 0xee, 0xef, 0x39, 0x43, 0xb0, 0xce, 0xf9, 0xce, 0x2f, 0xce,
+ 0xd8, 0xcc, 0xf8, 0xfb, 0xbf, 0x1c, 0xf8, 0x0a, 0x71, 0x28, 0x85, 0xd4,
+ 0x2c, 0xd4, 0xb5, 0xb7, 0xc5, 0xe3, 0xbb, 0x77, 0xe3, 0xd3, 0x38, 0x21,
+ 0x91, 0xe3, 0xa2, 0xf7, 0xbc, 0xa1, 0xf9, 0xd8, 0x09, 0x27, 0xb6, 0x1a,
+ 0x58, 0x80, 0x5e, 0x4b, 0x6e, 0x59, 0x30, 0x91, 0xcc, 0xf3, 0x53, 0xc3,
+ 0x7a, 0xb2, 0xc5, 0x9a, 0x46, 0xc9, 0x43, 0x32, 0x5e, 0x96, 0xe0, 0x5d,
+ 0xec, 0xcd, 0x60, 0xfa, 0x9a, 0xf0, 0x4a, 0xd5, 0x1d, 0xf5, 0xf5, 0xed,
+ 0xf1, 0xb0, 0x89, 0xc2, 0x81, 0x24, 0xa5, 0x33, 0x93, 0xaa, 0x18, 0x03,
+ 0x1d, 0xad, 0xaf, 0x8b, 0xd1, 0x38, 0x3b, 0x02, 0xa4, 0x48, 0x74, 0x6e,
+ 0xf4, 0xd8, 0x58, 0x90, 0x4f, 0x88, 0xf1, 0xf5, 0x2d, 0xc4, 0x54, 0x26,
+ 0x4e, 0x1f, 0x34, 0x1e, 0x2a, 0x5d, 0x8d, 0x07, 0x16, 0x93, 0x9a, 0xde,
+ 0x4f, 0xe5, 0x53, 0x21, 0x83, 0xaa, 0x9b, 0x7a, 0x14, 0x32, 0x46, 0x9f,
+ 0x02, 0x54, 0x31, 0xa2, 0x10, 0x9b, 0xfe, 0x1c, 0x73, 0x2c, 0xd2, 0xa3,
+ 0x24, 0x15, 0x93, 0x88, 0xcb, 0x7f, 0x6d, 0xef, 0x0e, 0x76, 0x3a, 0xcd,
+ 0xd1, 0x23, 0xf1, 0x0c, 0x96, 0xf1, 0x78, 0x2e, 0xf7, 0xb3, 0x00, 0xf3,
+ 0x66, 0x1f, 0x1e, 0xa0, 0x70, 0x50, 0x92, 0xf9, 0x10, 0xb7, 0xd0, 0x36,
+ 0x96, 0xfe, 0x59, 0xc3, 0x3b, 0x24, 0x1e, 0x4e, 0xcf, 0x92, 0xe7, 0x19,
+ 0xc2, 0x4a, 0x63, 0x36, 0x96, 0xc1, 0x4f, 0xd0, 0x69, 0x5f, 0xe0, 0xf9,
+ 0x44, 0xa2, 0x1d, 0x6a, 0xeb, 0xfc, 0xa8, 0xee, 0xb2, 0x3e, 0x4c, 0xd0,
+ 0xd1, 0x80, 0xfb, 0x78, 0x2d, 0xb7, 0xab, 0xb8, 0x45, 0xad, 0xd0, 0x7d,
+ 0x2b, 0xf8, 0xea, 0x81, 0xe0, 0x1f, 0x87, 0x9a, 0x06, 0xe7, 0xc1, 0x71,
+ 0xf5, 0x40, 0x8e, 0xaa, 0x62, 0xcd, 0x49, 0xf3, 0x37, 0x67, 0x95, 0x32,
+ 0x80, 0xf8, 0xbd, 0x79, 0xdb, 0x56, 0xca, 0x46, 0x47, 0xda, 0x73, 0x5f,
+ 0x2e, 0x5c, 0xb5, 0xd4, 0xa1, 0x0a, 0x4b, 0x50, 0x22, 0xdb, 0x79, 0x01,
+ 0xd6, 0xc0, 0x83, 0x98, 0x94, 0x4a, 0xea, 0xe0, 0x54, 0xe0, 0x54, 0x24,
+ 0xa0, 0x56, 0xb4, 0x28, 0x19, 0x96, 0x78, 0xdc, 0xbd, 0x17, 0x8a, 0xdf,
+ 0xfb, 0x5d, 0x5b, 0xd1, 0xed, 0x7d, 0xc5, 0x67, 0xc9, 0x12, 0xd1, 0xe1,
+ 0xc4, 0x6f, 0xcf, 0x21, 0x11, 0x9a, 0xa8, 0xd4, 0x7f, 0xed, 0xcc, 0x6a,
+ 0x66, 0x77, 0x63, 0x1d, 0x95, 0x96, 0xbc, 0x09, 0x12, 0x2a, 0x40, 0x16,
+ 0x6c, 0xd9, 0x45, 0x69, 0xb0, 0x1e, 0x9b, 0xb8, 0x84, 0x1d, 0x64, 0x0c,
+ 0xb1, 0x10, 0x1b, 0xf4, 0x9d, 0x1e, 0x02, 0xea, 0xeb, 0x9a, 0xa4, 0xe3,
+ 0x35, 0x21, 0xd5, 0x06, 0x32, 0xe2, 0xeb, 0xeb, 0xb2, 0x77, 0xa0, 0xb0,
+ 0xcc, 0xda, 0xf7, 0xc0, 0xcf, 0x9a, 0x4c, 0x36, 0x9f, 0x6c, 0x89, 0x11,
+ 0xc3, 0x55, 0xce, 0x86, 0xe3, 0xee, 0x5f, 0x54, 0x1e, 0x55, 0x38, 0xf0,
+ 0x25, 0x08, 0xdb, 0xb6, 0xd5, 0x45, 0x96, 0x3d, 0x96, 0x67, 0x33, 0x25,
+ 0x49, 0xa7, 0xec, 0xc3, 0xb4, 0xf4, 0x92, 0x44, 0xae, 0x64, 0xb2, 0x56,
+ 0xcb, 0x14, 0x68, 0x86, 0xf8, 0x21, 0x9d, 0x2d, 0x67, 0xde, 0xf3, 0xcc,
+ 0xb8, 0xbc, 0x65, 0xd2, 0xac, 0x70, 0xa8, 0x36, 0x8d, 0x86, 0x3c, 0xad,
+ 0x7e, 0x2f, 0x9d, 0x21, 0x90, 0x89, 0x25, 0x86, 0x08, 0x5e, 0x15, 0x56,
+ 0xff, 0x69, 0x3c, 0x9c, 0xc5, 0x9f, 0x2e, 0x44, 0x86, 0xe0, 0xb8, 0x95,
+ 0x89, 0x38, 0x4e, 0x99, 0x82, 0xea, 0x9b, 0x6a, 0xc3, 0x40, 0x05, 0x03,
+ 0x71, 0x4a, 0x48, 0x30, 0xd0, 0xbc, 0xe4, 0x54, 0xb9, 0x11, 0x35, 0x71,
+ 0x9f, 0x4e, 0xca, 0x9b, 0x76, 0xbc, 0x41, 0x59, 0x47, 0xcc, 0x3b, 0x12,
+ 0x84, 0x12, 0x0e, 0x2f, 0xc1, 0x52, 0xc1, 0x67, 0xbc, 0x2d, 0x86, 0x63,
+ 0x97, 0x6d, 0x1f, 0x13, 0xdd, 0x5d, 0x71, 0x7a, 0x44, 0x53, 0x4f, 0xd0,
+ 0xb0, 0xb8, 0x81, 0x1d, 0x51, 0x04, 0xde, 0xde, 0x76, 0xf9, 0x96, 0xec,
+ 0x7e, 0xa3, 0x56, 0x11, 0x81, 0x2d, 0x42, 0x2c, 0xb5, 0x56, 0x07, 0xe7,
+ 0x88, 0x98, 0xdb, 0x74, 0xda, 0x2c, 0x90, 0xb8, 0x82, 0x32, 0x15, 0x75,
+ 0x67, 0x12, 0xc6, 0xfa, 0xa6, 0xab, 0x06, 0x7c, 0x14, 0x42, 0x56, 0x8f,
+ 0x76, 0x4f, 0x52, 0x1f, 0xa2, 0xee, 0xb5, 0x74, 0xf3, 0x95, 0x7f, 0xa8,
+ 0xd6, 0x9c, 0x77, 0x82, 0xdb, 0x2d, 0x52, 0xec, 0x47, 0x7b, 0x3b, 0x3b,
+ 0xdf, 0xf4, 0xa2, 0x27, 0x52, 0x3a, 0x76, 0xf7, 0xab, 0xd6, 0x15, 0x92,
+ 0x05, 0xc2, 0x16, 0xab, 0xfe, 0x19, 0xdf, 0x81, 0xd7, 0xeb, 0xa2, 0x61,
+ 0x46, 0xac, 0x29, 0x4e, 0x96, 0x81, 0x6d, 0x59, 0x16, 0x7f, 0xcd, 0x56,
+ 0xc1, 0x8c, 0x5d, 0x87, 0x42, 0x98, 0x21, 0x6e, 0x88, 0x77, 0xef, 0x86,
+ 0x7e, 0x63, 0xef, 0xbd, 0x6d, 0x2c, 0xfa, 0x69, 0xc9, 0x67, 0x2f, 0x6e,
+ 0xf8, 0xf8, 0x8f, 0x96, 0x39, 0x4e, 0x32, 0x3b, 0x42, 0xa5, 0x1c, 0x11,
+ 0xdb, 0xd6, 0xa1, 0x33, 0x48, 0x2d, 0x69, 0x5f, 0x3a, 0xb5, 0xac, 0x4c,
+ 0x67, 0xd0, 0x5e, 0xef, 0x11, 0xf1, 0x33, 0xae, 0x20, 0xec, 0x0f, 0xa4,
+ 0x30, 0xa1, 0x7f, 0x39, 0x26, 0x5e, 0xf1, 0x10, 0x6d, 0x27, 0xf4, 0x30,
+ 0xd6, 0x27, 0xcb, 0x5a, 0x95, 0xe8, 0xa9, 0x30, 0x30, 0xc3, 0x14, 0x8e,
+ 0x39, 0x32, 0x7e, 0xda, 0x42, 0xcb, 0xf4, 0xf0, 0x40, 0xa4, 0x69, 0xf0,
+ 0xdb, 0x29, 0x3f, 0x30, 0x5d, 0xf5, 0x9a, 0x6a, 0x07, 0x87, 0x05, 0xc2,
+ 0x1f, 0x60, 0x8a, 0x50, 0x38, 0x2a, 0x4e, 0x9f, 0x1d, 0xa3, 0x44, 0x0d,
+ 0x47, 0x76, 0xfd, 0x76, 0x66, 0xa9, 0x29, 0xe3, 0xf1, 0xa7, 0x45, 0xd9,
+ 0x67, 0xf7, 0xee, 0x7a, 0xd4, 0x2e, 0xcd, 0x29, 0x37, 0xf4, 0xae, 0x89,
+ 0x47, 0xc3, 0x14, 0x4b, 0xb6, 0x94, 0xde, 0x40, 0x14, 0x25, 0xb4, 0x64,
+ 0x66, 0x5f, 0xfd, 0x46, 0xa0, 0x1f, 0xeb, 0xc7, 0x77, 0x69, 0x72, 0xcf,
+ 0x69, 0xd9, 0xc7, 0x1e, 0x94, 0xac, 0xca, 0x33, 0xac, 0xfa, 0xc5, 0x2c,
+ 0x1e, 0xdf, 0xd0, 0x85, 0xd2, 0x47, 0xdc, 0x75, 0x8b, 0x8c, 0x15, 0x56,
+ 0x50, 0xad, 0x0f, 0x8b, 0xc1, 0x70, 0x5c, 0x1a, 0x96, 0xe1, 0xd2, 0x05,
+ 0x48, 0x8a, 0x3c, 0x88, 0x35, 0x20, 0x58, 0x62, 0x2c, 0x75, 0x38, 0x57,
+ 0xd0, 0x1c, 0xb3, 0xdc, 0xa0, 0x64, 0x3f, 0x24, 0x36, 0x48, 0x96, 0x9a,
+ 0xa1, 0x71, 0xbd, 0x3d, 0x1d, 0x7a, 0x8c, 0x80, 0x52, 0x2b, 0x29, 0xc0,
+ 0x56, 0x30, 0x64, 0xa9, 0xf0, 0xf5, 0x9a, 0xaa, 0xd2, 0x85, 0x00, 0xe6,
+ 0x4b, 0x7c, 0x10, 0xa2, 0x5f, 0x44, 0xbc, 0x4d, 0xf3, 0x0a, 0xd6, 0x03,
+ 0xb7, 0xfe, 0x67, 0x0d, 0xd0, 0x9e, 0x48, 0x15, 0x9d, 0xf6, 0x48, 0x15,
+ 0xce, 0xa8, 0x0b, 0x0b, 0xa1, 0xc3, 0xd8, 0x8c, 0x24, 0x2f, 0x22, 0x31,
+ 0xba, 0xb4, 0x6f, 0xab, 0x92, 0x0a, 0xe7, 0x68, 0x08, 0x32, 0xcc, 0x4b,
+ 0xe2, 0x68, 0x9f, 0xff, 0xd8, 0xa7, 0x7f, 0x7f, 0x6a, 0xf8, 0x02, 0x4b,
+ 0xc1, 0x93, 0x51, 0x93, 0x96, 0x85, 0x95, 0xe6, 0x1e, 0x1e, 0x5f, 0x2a,
+ 0xd3, 0xa3, 0x1d, 0xf9, 0xb6, 0x08, 0x0a, 0x0b, 0xb4, 0x86, 0x48, 0x98,
+ 0x5b, 0x6e, 0xb3, 0x60, 0x28, 0xa0, 0x00, 0x80, 0x5c, 0xa2, 0x86, 0xac,
+ 0x15, 0xd8, 0x05, 0xe6, 0x72, 0xe3, 0x48, 0xe9, 0x8e, 0xba, 0xea, 0xca,
+ 0xae, 0xf6, 0x71, 0xe2, 0xfd, 0x92, 0xbe, 0xbe, 0xe3, 0x88, 0x01, 0x62,
+ 0x8a, 0x15, 0x43, 0x3d, 0x89, 0x38, 0x57, 0x64, 0x2e, 0xa1, 0x05, 0x94,
+ 0x8c, 0xe1, 0x37, 0x1d, 0xb9, 0x8c, 0x46, 0x24, 0xd1, 0x19, 0x24, 0xe0,
+ 0x52, 0xe7, 0x79, 0x9e, 0xdd, 0xdb, 0xd9, 0xd7, 0xb0, 0xe4, 0x40, 0x66,
+ 0xf0, 0x0e, 0x46, 0x6a, 0x7b, 0xb9, 0x68, 0xf1, 0xbc, 0x72, 0xaa, 0x42,
+ 0x03, 0x48, 0x24, 0xcc, 0xc4, 0x0c, 0xeb, 0x64, 0xb4, 0x86, 0xa7, 0x00,
+ 0x49, 0x7e, 0xcb, 0xa3, 0xa8, 0xba, 0xd2, 0x26, 0x62, 0xcb, 0x76, 0xe9,
+ 0x15, 0x1a, 0xba, 0x0d, 0x0c, 0x1d, 0x8e, 0x45, 0x6e, 0x94, 0x1e, 0x97,
+ 0xd4, 0x6a, 0xe0, 0x2e, 0x58, 0xdc, 0x75, 0x19, 0xb9, 0x12, 0x1d, 0x9b,
+ 0xec, 0xc9, 0x1c, 0xc3, 0xfe, 0xa5, 0x01, 0xe1, 0xf5, 0x32, 0x19, 0x6d,
+ 0xb8, 0x04, 0xc4, 0x01, 0x9e, 0x7c, 0xff, 0x7d, 0x00, 0x4d, 0xc2, 0xf2,
+ 0xe6, 0x56, 0xaf, 0xc2, 0xb4, 0x6a, 0x15, 0x23, 0x89, 0x8a, 0xb2, 0x96,
+ 0x53, 0x6e, 0x61, 0xf6, 0x1a, 0x8a, 0xca, 0x91, 0x18, 0x50, 0xe2, 0x06,
+ 0x2e, 0x04, 0xde, 0x0a, 0x5c, 0x6b, 0xf0, 0x7b, 0x10, 0x06, 0xd6, 0x52,
+ 0x3f, 0xca, 0x85, 0xfc, 0xf4, 0x7c, 0xec, 0xad, 0x44, 0x9e, 0x20, 0x3c,
+ 0x2d, 0x5c, 0xaa, 0xc2, 0x51, 0x0c, 0xdd, 0x4a, 0xf7, 0xf3, 0x41, 0x5b,
+ 0x65, 0x93, 0x26, 0x76, 0xa2, 0x64, 0x31, 0x60, 0x46, 0x38, 0xbf, 0x52,
+ 0x8d, 0x87, 0x4d, 0x53, 0xe3, 0x3c, 0x51, 0xcf, 0x4d, 0xe1, 0x4a, 0xcb,
+ 0x37, 0xce, 0xab, 0xd8, 0x79, 0x10, 0x69, 0x25, 0x60, 0xe1, 0x1c, 0xae,
+ 0x2b, 0x67, 0x17, 0xd7, 0x8f, 0x8f, 0x67, 0x08, 0x77, 0x8b, 0x1f, 0xef,
+ 0x35, 0x05, 0x84, 0x7b, 0x94, 0x1f, 0x09, 0x4c, 0x77, 0x08, 0xb9, 0xd2,
+ 0xcc, 0x24, 0xc1, 0xbc, 0xf9, 0x53, 0xb5, 0xc8, 0x9e, 0xe6, 0xcd, 0x09,
+ 0xe9, 0xb5, 0x55, 0x12, 0xec, 0x97, 0xf9, 0x12, 0x2b, 0xc4, 0x1b, 0xc2,
+ 0x20, 0x6e, 0x2c, 0x19, 0x5b, 0x36, 0x19, 0x3b, 0xf9, 0x2c, 0xba, 0x4c,
+ 0x6e, 0x31, 0xef, 0x6e, 0x6d, 0x06, 0x81, 0xd8, 0xbc, 0x2c, 0x6d, 0x9d,
+ 0xd3, 0xd4, 0x2b, 0x01, 0x12, 0xfd, 0x3e, 0x09, 0xa6, 0x7d, 0x3c, 0x56,
+ 0x34, 0x2a, 0x3b, 0x34, 0x6c, 0x5e, 0xd2, 0x42, 0x11, 0x2e, 0x98, 0xe9,
+ 0x10, 0x46, 0x43, 0xea, 0x32, 0x8a, 0x99, 0x82, 0xd8, 0x04, 0xf7, 0xd5,
+ 0xf1, 0x65, 0xfd, 0x68, 0x01, 0x3a, 0x42, 0x55, 0x45, 0xe4, 0x4f, 0xd0,
+ 0xdf, 0xe7, 0xef, 0x2e, 0xb7, 0xbc, 0x39, 0x60, 0x92, 0xd5, 0x6c, 0x56,
+ 0xd6, 0x7a, 0x4b, 0x26, 0x8a, 0xe4, 0x28, 0x28, 0x28, 0x03, 0x12, 0x4d,
+ 0xdc, 0x81, 0x60, 0x14, 0x85, 0x27, 0x3b, 0xbb, 0x24, 0xaa, 0xed, 0xec,
+ 0xc1, 0xea, 0xf2, 0x64, 0xe7, 0x89, 0x33, 0x67, 0xdb, 0x53, 0x8d, 0x1b,
+ 0x8f, 0x69, 0x1a, 0xf8, 0x0b, 0x28, 0x66, 0x2b, 0x5a, 0x77, 0xf4, 0xe4,
+ 0xe1, 0x01, 0x5f, 0xf5, 0xaa, 0x58, 0x3d, 0x45, 0xa2, 0xd3, 0x77, 0x43,
+ 0x5d, 0x73, 0xb4, 0xfc, 0x8a, 0xc3, 0x7c, 0xb2, 0x9c, 0x4b, 0xec, 0x17,
+ 0xab, 0xbe, 0xc8, 0x78, 0xa8, 0x5f, 0x0e, 0x21, 0x1d, 0x3c, 0xc6, 0x9a,
+ 0x4e, 0x59, 0xbc, 0xaf, 0x30, 0xb2, 0x9e, 0x47, 0x26, 0x11, 0xb8, 0x5f,
+ 0xd3, 0xee, 0x2c, 0x13, 0xb1, 0xd6, 0xdc, 0x9f, 0x02, 0x94, 0x4f, 0x29,
+ 0x90, 0x02, 0x52, 0x0f, 0xb8, 0x1b, 0x2a, 0x5e, 0x71, 0xd2, 0x98, 0x3f,
+ 0x25, 0x99, 0x3a, 0x08, 0x9b, 0x79, 0x10, 0x59, 0x8e, 0x47, 0x25, 0xe9,
+ 0xbf, 0xcc, 0xb3, 0xc9, 0x72, 0x8c, 0xbb, 0x9e, 0xc3, 0x5e, 0xb8, 0x90,
+ 0xdf, 0x48, 0x50, 0x1f, 0x0d, 0x44, 0x83, 0x9b, 0xf6, 0x44, 0xda, 0x54,
+ 0xb3, 0x15, 0x36, 0x1d, 0xcf, 0xb9, 0xb4, 0x5d, 0xd6, 0x6c, 0xd8, 0x68,
+ 0xe4, 0xb2, 0x85, 0xeb, 0x2c, 0x62, 0x7e, 0x95, 0xa9, 0xe9, 0xaf, 0x09,
+ 0xd2, 0x0b, 0xba, 0x84, 0x93, 0xce, 0xcc, 0xea, 0xb1, 0x14, 0xa3, 0x03,
+ 0xed, 0x7c, 0xc9, 0xc1, 0x6a, 0xb5, 0xf6, 0x2a, 0x30, 0xac, 0x33, 0x06,
+ 0x95, 0xcd, 0xc7, 0x74, 0xbc, 0x5f, 0x6a, 0xd4, 0x66, 0xd3, 0xd5, 0x0f,
+ 0xd0, 0x91, 0xa1, 0x33, 0xe1, 0x2b, 0x56, 0xa4, 0x07, 0x9d, 0xd2, 0x75,
+ 0x15, 0x99, 0x7a, 0x26, 0xf0, 0xc3, 0x9a, 0x34, 0xd3, 0x4c, 0xdc, 0x02,
+ 0xb2, 0xaa, 0x5f, 0xf1, 0x0f, 0xe6, 0x58, 0x86, 0x2e, 0x80, 0x16, 0xb4,
+ 0x48, 0x5a, 0xe8, 0x74, 0xc1, 0x20, 0x5f, 0x4d, 0xdb, 0xf6, 0x7a, 0x8c,
+ 0x12, 0x9d, 0x36, 0x98, 0xf8, 0xbf, 0x73, 0xda, 0x70, 0xbb, 0xfe, 0xb2,
+ 0x61, 0x3e, 0xa0, 0x48, 0x0d, 0xe2, 0x2c, 0x5f, 0x42, 0x71, 0xfb, 0x48,
+ 0xb5, 0x1c, 0x6f, 0x6c, 0x9a, 0xfa, 0xba, 0x15, 0x24, 0xea, 0x02, 0x73,
+ 0x42, 0x00, 0x9d, 0x98, 0x79, 0xac, 0x0b, 0xed, 0xf4, 0x17, 0x5b, 0x5a,
+ 0x8d, 0xa4, 0xc6, 0x7d, 0x8c, 0xcc, 0xcb, 0x5e, 0x15, 0x1e, 0x67, 0x5d,
+ 0x3d, 0x41, 0x04, 0x3e, 0x82, 0xb1, 0x86, 0xbc, 0x06, 0xf0, 0xc7, 0xb8,
+ 0x7e, 0x93, 0x07, 0xf8, 0x5c, 0x88, 0x4f, 0x3d, 0x7f, 0x32, 0x68, 0xb7,
+ 0xfd, 0x88, 0x92, 0xee, 0x43, 0x4e, 0x8d, 0x2b, 0x8b, 0x93, 0x42, 0xe0,
+ 0x64, 0x16, 0x39, 0x43, 0xcb, 0x06, 0xb3, 0xeb, 0xb5, 0xe0, 0xe6, 0x21,
+ 0xf0, 0x9c, 0x41, 0xc0, 0x45, 0x46, 0x2e, 0x1b, 0xd1, 0x48, 0x16, 0x7f,
+ 0x64, 0x25, 0xb9, 0xbc, 0x91, 0x8b, 0xa7, 0xd9, 0xf0, 0x1e, 0xf3, 0xb4,
+ 0x71, 0x5b, 0x03, 0x2d, 0x4b, 0xd2, 0x2c, 0x1b, 0x8b, 0x25, 0x14, 0x82,
+ 0xdb, 0xcd, 0xa0, 0x29, 0x32, 0x52, 0x35, 0xf2, 0x46, 0x28, 0x15, 0xf2,
+ 0xd7, 0x59, 0x09, 0x40, 0xd8, 0xef, 0x65, 0xa5, 0x36, 0xa4, 0xa7, 0x8a,
+ 0xd9, 0xb6, 0x10, 0xc6, 0xa3, 0x11, 0x6d, 0x6f, 0x94, 0x10, 0x44, 0x0d,
+ 0x9e, 0x2b, 0xbc, 0xb0, 0x92, 0xad, 0x28, 0xb8, 0x86, 0xf1, 0x42, 0x5c,
+ 0x28, 0x03, 0x62, 0xad, 0xb3, 0xc2, 0xb5, 0xb8, 0xbb, 0x48, 0x8e, 0x18,
+ 0x04, 0x30, 0xaa, 0x41, 0x1c, 0xbf, 0x96, 0x08, 0x4e, 0xad, 0x80, 0xc1,
+ 0x08, 0x45, 0xce, 0xff, 0x9a, 0x8d, 0x54, 0x4a, 0xe2, 0x9b, 0xbe, 0x0d,
+ 0xb9, 0xf6, 0x0a, 0xd1, 0xe1, 0xa4, 0xb6, 0x47, 0x93, 0xa5, 0x38, 0x09,
+ 0x79, 0x40, 0xf3, 0xa4, 0x64, 0x05, 0x16, 0xb1, 0xe3, 0xa2, 0x67, 0xd0,
+ 0x69, 0x12, 0x6c, 0x47, 0xc4, 0xb4, 0x4a, 0x4c, 0x61, 0x03, 0x34, 0xce,
+ 0x55, 0x76, 0x52, 0x39, 0x1a, 0x8b, 0xc3, 0xae, 0xb0, 0x35, 0x32, 0xc0,
+ 0xaf, 0xa7, 0x0c, 0xbf, 0xc1, 0x6e, 0xcc, 0x9b, 0x51, 0x7b, 0x6f, 0xf0,
+ 0xe1, 0x80, 0x2b, 0x56, 0x72, 0x0c, 0xb5, 0xb8, 0x27, 0x96, 0x9a, 0xda,
+ 0x27, 0xc5, 0x90, 0x7d, 0x2b, 0xf3, 0x6d, 0x2e, 0x4f, 0x5c, 0xe6, 0xe3,
+ 0x46, 0x23, 0xb7, 0x3e, 0xd3, 0xad, 0x40, 0x80, 0x05, 0xb6, 0x6c, 0x80,
+ 0x87, 0x89, 0x79, 0xbc, 0xd7, 0x5f, 0x32, 0xe7, 0xc7, 0xd9, 0x0a, 0x1d,
+ 0x22, 0x2d, 0xe6, 0xfa, 0x6e, 0xe1, 0xfc, 0x0b, 0xaa, 0xda, 0xf2, 0x4e,
+ 0x00, 0x7a, 0xab, 0xad, 0x8e, 0xb2, 0xc3, 0x93, 0x5d, 0x2d, 0x1a, 0xc1,
+ 0x13, 0x12, 0x06, 0x2d, 0x4b, 0x77, 0x25, 0x05, 0xaa, 0xcc, 0x6f, 0xe5,
+ 0x65, 0x6d, 0x57, 0xc3, 0x2a, 0x94, 0x35, 0x04, 0x1c, 0xa5, 0x65, 0x74,
+ 0x8d, 0x7a, 0xd5, 0x2c, 0x62, 0x62, 0x8e, 0x9b, 0x4f, 0xb7, 0xa0, 0x54,
+ 0x97, 0x8b, 0xcd, 0xdd, 0x2d, 0xc1, 0x5d, 0xd3, 0x54, 0x7e, 0x0b, 0xdf,
+ 0x68, 0xf3, 0x1e, 0xfa, 0xfa, 0x57, 0x41, 0x6d, 0x55, 0xe6, 0x1d, 0x80,
+ 0x84, 0x45, 0xfc, 0xe6, 0x95, 0x1c, 0x0a, 0x3c, 0x6e, 0x1a, 0x3d, 0x1b,
+ 0x21, 0x5b, 0x38, 0xa3, 0x64, 0xb5, 0x2d, 0xd8, 0x4f, 0x53, 0x08, 0xe4,
+ 0xfa, 0x66, 0x5a, 0x86, 0x19, 0x7c, 0x9c, 0xdf, 0x2c, 0x95, 0x44, 0x68,
+ 0xf5, 0xa6, 0x93, 0x3e, 0xc8, 0xf8, 0x3a, 0xcf, 0x9a, 0x08, 0x61, 0xec,
+ 0x64, 0xe7, 0x35, 0xd8, 0x32, 0x57, 0x68, 0x6b, 0xa5, 0x8c, 0x0e, 0xbb,
+ 0x14, 0x3b, 0x61, 0x1d, 0x34, 0xf3, 0x5a, 0xd6, 0x0d, 0x43, 0x95, 0x2d,
+ 0x6d, 0xd0, 0xfb, 0x41, 0xf4, 0xb7, 0x65, 0x3a, 0xbe, 0xc5, 0xde, 0x22,
+ 0xfc, 0x09, 0x1e, 0xaa, 0xc4, 0xc9, 0xad, 0x74, 0x3d, 0xb0, 0x64, 0x2e,
+ 0x15, 0xb1, 0x58, 0xff, 0x84, 0x98, 0x62, 0x54, 0xd6, 0x52, 0xa5, 0x86,
+ 0xcf, 0xaa, 0xd3, 0x2b, 0x80, 0x12, 0x25, 0x27, 0x50, 0x2d, 0x30, 0xa2,
+ 0x8d, 0x4c, 0x32, 0x8e, 0x90, 0x65, 0x47, 0x8b, 0x50, 0xc1, 0x3a, 0x6c,
+ 0xf6, 0xee, 0x6c, 0xc5, 0x59, 0xe8, 0xdd, 0x0a, 0xe9, 0x45, 0x5d, 0xe2,
+ 0x59, 0x74, 0x4f, 0x74, 0x6d, 0x7d, 0x6b, 0x0e, 0xf9, 0x26, 0xda, 0xf5,
+ 0x9a, 0xae, 0x85, 0xb4, 0xa5, 0x0b, 0xdf, 0xba, 0x34, 0x1e, 0xdc, 0xb5,
+ 0x98, 0x6b, 0xdf, 0x7c, 0xef, 0xb5, 0xb6, 0xbf, 0xd5, 0x35, 0xf3, 0x98,
+ 0x0d, 0x78, 0xdc, 0x6a, 0x3d, 0x7b, 0x4e, 0x22, 0x76, 0x57, 0x5e, 0x09,
+ 0x5b, 0xbc, 0x65, 0xd1, 0x4c, 0xf0, 0x73, 0x15, 0xd8, 0x78, 0xc2, 0x4c,
+ 0x37, 0x6c, 0xed, 0x89, 0xad, 0xb6, 0x8c, 0x70, 0x32, 0x79, 0x5d, 0x9b,
+ 0x65, 0xba, 0x1c, 0x54, 0x06, 0xab, 0x21, 0x6e, 0x6b, 0xd2, 0x96, 0xac,
+ 0x12, 0x7c, 0x54, 0x89, 0x87, 0x6b, 0x29, 0x06, 0x9f, 0x54, 0x9f, 0x68,
+ 0x4f, 0x5f, 0x66, 0xf5, 0x61, 0x92, 0x70, 0xa4, 0x91, 0xc4, 0x3f, 0xbd,
+ 0x49, 0xc7, 0x79, 0x56, 0x64, 0x57, 0x72, 0xab, 0x7b, 0xdc, 0x4c, 0x35,
+ 0x38, 0x71, 0x7a, 0x71, 0xcc, 0xce, 0xdd, 0x26, 0xbf, 0xd0, 0x72, 0x7c,
+ 0x6c, 0xf9, 0x45, 0x40, 0x21, 0x5d, 0xda, 0x33, 0xa2, 0x75, 0xe6, 0x22,
+ 0x6c, 0x09, 0x2e, 0xc5, 0x10, 0x1e, 0x47, 0xce, 0xad, 0xc3, 0xe7, 0xdc,
+ 0x42, 0x26, 0x9f, 0x3d, 0xae, 0x49, 0xf3, 0x56, 0x68, 0x15, 0x17, 0xb3,
+ 0xde, 0x4e, 0xb4, 0xb2, 0x8e, 0x62, 0x22, 0x89, 0xf2, 0x63, 0xaf, 0xb5,
+ 0x8f, 0xce, 0x14, 0x18, 0xe0, 0x97, 0xc3, 0x68, 0x1c, 0x56, 0x4c, 0xe4,
+ 0x40, 0xc0, 0x93, 0xe3, 0xcb, 0xd7, 0xd1, 0x24, 0x8f, 0x69, 0xfa, 0xf8,
+ 0xb7, 0x4f, 0x3a, 0xc0, 0xcf, 0x71, 0x23, 0x0b, 0xb8, 0x58, 0xf0, 0x26,
+ 0xf5, 0xd9, 0xf3, 0xd8, 0xdf, 0x79, 0x3a, 0x28, 0x1f, 0x5a, 0x23, 0x05,
+ 0x43, 0xeb, 0xa5, 0x56, 0xd6, 0xf0, 0xdb, 0xa5, 0x09, 0x9e, 0x39, 0x62,
+ 0x66, 0x1f, 0x56, 0x0d, 0x90, 0xc3, 0x36, 0x50, 0x60, 0xd4, 0x2b, 0xee,
+ 0xe3, 0x79, 0x4f, 0x25, 0x1f, 0x1b, 0x76, 0xd9, 0x1a, 0x75, 0x29, 0x81,
+ 0x96, 0xd5, 0x50, 0xca, 0xa6, 0x1e, 0xd2, 0x1a, 0x58, 0x69, 0x71, 0x95,
+ 0x6d, 0x71, 0x94, 0xf6, 0xf1, 0x1a, 0xf4, 0xc4, 0xa2, 0x4a, 0x98, 0xed,
+ 0x5a, 0xbc, 0xaf, 0x2d, 0x53, 0xc3, 0xd0, 0x40, 0x0c, 0x1b, 0xa8, 0xc0,
+ 0x22, 0xac, 0x49, 0xfa, 0x65, 0xbb, 0x51, 0x7f, 0xa9, 0xe9, 0xb0, 0xed,
+ 0x49, 0x42, 0x56, 0x08, 0xda, 0xb0, 0xdd, 0x6a, 0x24, 0x06, 0x29, 0xd5,
+ 0x5c, 0x8f, 0x03, 0xa9, 0x9d, 0x2b, 0xe1, 0x67, 0x75, 0x8e, 0xd6, 0x5f,
+ 0x46, 0xd1, 0x7e, 0x57, 0x88, 0x3c, 0x99, 0x73, 0x4d, 0x0d, 0x21, 0x6d,
+ 0xdc, 0xde, 0x8e, 0x0f, 0x56, 0x19, 0x9e, 0x4b, 0x66, 0xe9, 0x2f, 0xdb,
+ 0x47, 0x17, 0xe7, 0x09, 0x5f, 0x4e, 0x12, 0x02, 0xa9, 0x25, 0xc4, 0x06,
+ 0xff, 0x0e, 0xc4, 0xed, 0x2a, 0xbe, 0x82, 0xe7, 0x43, 0x6f, 0xb7, 0x11,
+ 0xa4, 0x3f, 0x5a, 0xf2, 0x77, 0xad, 0x95, 0xba, 0x95, 0x19, 0xca, 0x13,
+ 0xea, 0x94, 0x0d, 0x5c, 0xab, 0x05, 0x07, 0xca, 0xcd, 0x18, 0x39, 0xd8,
+ 0x4c, 0xee, 0x2c, 0xfd, 0xb1, 0x7e, 0x5c, 0xa7, 0x89, 0xa5, 0xf0, 0x8e,
+ 0x50, 0x88, 0xa8, 0x99, 0xdd, 0xa5, 0x0f, 0xd8, 0x99, 0xa4, 0x71, 0x6d,
+ 0x3d, 0x6a, 0x73, 0x50, 0xa3, 0x01, 0x97, 0xc0, 0xa5, 0x42, 0xbf, 0x40,
+ 0x19, 0xa8, 0xb5, 0x41, 0x1b, 0x71, 0x68, 0xec, 0x0c, 0x9b, 0x71, 0xb3,
+ 0x24, 0x81, 0xb4, 0xd7, 0x62, 0x35, 0x37, 0x43, 0x6e, 0x8a, 0x42, 0x18,
+ 0x31, 0x52, 0xf0, 0x2d, 0x4b, 0x4b, 0x5e, 0xe7, 0x4c, 0xef, 0x3b, 0xa0,
+ 0x1d, 0x5a, 0x29, 0xa3, 0x47, 0x0a, 0x74, 0x89, 0xd5, 0x48, 0x2b, 0xcc,
+ 0x63, 0x54, 0x6e, 0x01, 0x1f, 0x0f, 0xbb, 0x33, 0x28, 0x7c, 0xb1, 0x7b,
+ 0x5e, 0xc3, 0x06, 0x1b, 0xc4, 0x97, 0xb9, 0x0c, 0x40, 0xf6, 0x4f, 0xaa,
+ 0xd9, 0xad, 0xc1, 0x44, 0xa4, 0xb2, 0x08, 0x31, 0x11, 0xe9, 0x53, 0x38,
+ 0x93, 0x07, 0xbb, 0x68, 0x19, 0x49, 0x35, 0x53, 0xe3, 0x31, 0x3a, 0x58,
+ 0x8a, 0x6d, 0xc2, 0x67, 0x75, 0x70, 0x4a, 0x3b, 0x0c, 0xa7, 0x6a, 0xac,
+ 0xbd, 0x3c, 0x3c, 0x0f, 0x6c, 0xe1, 0xa4, 0xc2, 0x15, 0xcd, 0x94, 0x26,
+ 0x17, 0x65, 0x86, 0x60, 0x9d, 0xb9, 0x6b, 0x7d, 0xf6, 0x6f, 0x5c, 0x1b,
+ 0x3f, 0x83, 0x60, 0x79, 0xdc, 0x87, 0xb5, 0xa5, 0xd1, 0xfc, 0xbd, 0x74,
+ 0xd2, 0x9a, 0x45, 0xa1, 0x0b, 0x64, 0x38, 0xdc, 0xba, 0x44, 0x9c, 0x35,
+ 0x66, 0x69, 0x92, 0x27, 0x47, 0x34, 0x18, 0x16, 0x6e, 0xae, 0x89, 0x7c,
+ 0xbe, 0xf4, 0x39, 0x5d, 0x4d, 0xa9, 0x2c, 0xc8, 0x04, 0x87, 0x9b, 0x03,
+ 0xb5, 0x9b, 0xbc, 0xb1, 0x8e, 0x5b, 0x49, 0x42, 0xdc, 0x0e, 0xf1, 0x1b,
+ 0x6b, 0x16, 0x69, 0x7b, 0x9e, 0x3c, 0x8a, 0xab, 0x73, 0x60, 0xc8, 0xcd,
+ 0x52, 0xc0, 0xbc, 0x34, 0x77, 0xcd, 0x61, 0xb5, 0xe7, 0x09, 0x32, 0x00,
+ 0x79, 0xc0, 0xc1, 0x88, 0x8b, 0x96, 0xdb, 0x09, 0x39, 0x51, 0xc9, 0x4c,
+ 0xdd, 0x5a, 0xa3, 0x3c, 0xbb, 0xa5, 0x13, 0xc2, 0xef, 0x41, 0x18, 0xe5,
+ 0xb5, 0x97, 0x43, 0x6e, 0xa6, 0x2c, 0x3a, 0x06, 0x0a, 0xf7, 0xda, 0x34,
+ 0xcc, 0x19, 0xde, 0xb5, 0x26, 0xd2, 0xf8, 0xc3, 0x22, 0x40, 0x53, 0x08,
+ 0x03, 0xb4, 0x0b, 0x14, 0x57, 0x0f, 0x57, 0x40, 0x82, 0x5b, 0x5e, 0x0c,
+ 0x2e, 0x0d, 0x8d, 0xb4, 0x01, 0xcd, 0xfb, 0x9b, 0xd3, 0x90, 0x23, 0x8b,
+ 0x90, 0x86, 0x5a, 0xf6, 0xbc, 0x42, 0x4c, 0x22, 0x09, 0xbc, 0x24, 0xaa,
+ 0x92, 0x3b, 0x9e, 0xdd, 0x7e, 0x75, 0xe5, 0x1f, 0x50, 0xa7, 0x7d, 0x1f,
+ 0xb2, 0x2e, 0xae, 0xc1, 0x2b, 0x35, 0x84, 0x8a, 0xd1, 0x71, 0xe2, 0x51,
+ 0xe4, 0x63, 0x11, 0x2f, 0x7a, 0x28, 0x03, 0xc9, 0xba, 0x6e, 0xf3, 0x76,
+ 0xf7, 0x29, 0x35, 0xaa, 0xae, 0xc0, 0x51, 0xc1, 0xfb, 0x83, 0x0c, 0xd5,
+ 0x34, 0xa8, 0x21, 0xf3, 0xc7, 0x30, 0x48, 0xba, 0xcd, 0x68, 0x09, 0x64,
+ 0x83, 0xa4, 0xf0, 0xa6, 0x59, 0x89, 0x8b, 0x71, 0x39, 0x6c, 0x8c, 0x8d,
+ 0x12, 0xf2, 0x0c, 0x0c, 0x6e, 0x10, 0x1d, 0xb3, 0x9d, 0xb5, 0x45, 0x79,
+ 0x48, 0x5d, 0xad, 0x43, 0x29, 0x19, 0x9e, 0x2a, 0x76, 0x82, 0x44, 0x5f,
+ 0xab, 0x36, 0xc6, 0x75, 0xc2, 0x90, 0xad, 0xe7, 0x52, 0x24, 0xa4, 0x74,
+ 0x5b, 0x9b, 0x22, 0x55, 0x94, 0x92, 0xc8, 0xae, 0xf1, 0x8e, 0xf6, 0x81,
+ 0x83, 0xca, 0x7a, 0xed, 0xed, 0xfd, 0xbd, 0x48, 0x5c, 0x96, 0xd0, 0x33,
+ 0x04, 0xe0, 0xa5, 0x6d, 0xb2, 0x51, 0xf0, 0x58, 0xf8, 0xca, 0xfe, 0x67,
+ 0x3b, 0x16, 0x91, 0xc5, 0x19, 0xec, 0xe1, 0x33, 0x48, 0xe8, 0x6e, 0xde,
+ 0x33, 0x48, 0x74, 0xcf, 0x4a, 0xf7, 0x64, 0x1d, 0x9a, 0xf5, 0xc5, 0xe0,
+ 0x69, 0xc5, 0xbc, 0x3b, 0x2f, 0xa7, 0x33, 0x07, 0x0d, 0x64, 0x3a, 0xc1,
+ 0xdb, 0xcb, 0xd3, 0x37, 0x51, 0x43, 0x17, 0x10, 0x2d, 0xb4, 0xed, 0xbb,
+ 0x7f, 0x45, 0x29, 0xa0, 0x2f, 0x4e, 0x4e, 0x86, 0x50, 0x09, 0xd4, 0x51,
+ 0xdd, 0x08, 0xb8, 0x28, 0x85, 0x7c, 0x58, 0xac, 0xca, 0x53, 0x52, 0xe9,
+ 0x49, 0x86, 0xa4, 0xdf, 0xcb, 0x6c, 0x9c, 0x4d, 0x39, 0x99, 0x90, 0xdf,
+ 0x49, 0xb4, 0x54, 0x3c, 0xae, 0x77, 0x86, 0x2e, 0x9b, 0x82, 0x2b, 0x91,
+ 0x26, 0xde, 0x08, 0x98, 0x59, 0x68, 0xc8, 0xb1, 0x63, 0x29, 0x8a, 0x78,
+ 0xc5, 0x77, 0x05, 0x17, 0xa8, 0x9c, 0xe8, 0x4d, 0x93, 0x02, 0xef, 0x9b,
+ 0x05, 0x4d, 0xb5, 0x71, 0xdc, 0xa6, 0x88, 0xfa, 0x6b, 0xa4, 0x72, 0x6a,
+ 0xcd, 0xaa, 0x9a, 0x92, 0x3f, 0x9f, 0x64, 0x39, 0xdc, 0x76, 0x01, 0x4a,
+ 0x0c, 0xa0, 0xcd, 0x96, 0x08, 0x8a, 0x01, 0xd7, 0x5c, 0x35, 0x8f, 0xd2,
+ 0xfd, 0x4d, 0xa6, 0xa1, 0xbe, 0xb2, 0xd2, 0xcc, 0x98, 0x24, 0x0e, 0x02,
+ 0xee, 0x39, 0x01, 0x18, 0x11, 0x9c, 0x42, 0xc7, 0x49, 0x82, 0xdd, 0x68,
+ 0x73, 0xaf, 0xb9, 0x2a, 0x71, 0x92, 0x69, 0xd5, 0x13, 0xfb, 0x26, 0x6d,
+ 0xce, 0x51, 0x7a, 0xbd, 0x06, 0x7f, 0xab, 0x4d, 0xe9, 0xe0, 0xd1, 0x38,
+ 0x7d, 0xa3, 0x5d, 0xdd, 0x68, 0x8d, 0x0e, 0xae, 0xe8, 0x1b, 0x44, 0x6d,
+ 0xbf, 0x20, 0xc3, 0xcb, 0x57, 0x2c, 0x15, 0x6d, 0x43, 0xd4, 0x0d, 0x5c,
+ 0x7c, 0xa6, 0x6b, 0xbc, 0x6b, 0x38, 0xb4, 0x1e, 0x53, 0x29, 0xaa, 0xa9,
+ 0x59, 0x3c, 0xa5, 0xff, 0x51, 0xe9, 0x38, 0xa3, 0x91, 0xaa, 0x14, 0xd9,
+ 0x1a, 0xc2, 0xf9, 0x1d, 0xd2, 0x3e, 0x4c, 0xce, 0xcc, 0xf4, 0xa1, 0x10,
+ 0x8d, 0xaa, 0x28, 0x27, 0x19, 0x83, 0x8b, 0x58, 0x50, 0x52, 0x6e, 0x97,
+ 0xf9, 0xdf, 0xff, 0xd1, 0xf4, 0x53, 0xff, 0xf8, 0x13, 0xec, 0x43, 0x08,
+ 0xaf, 0x75, 0x3e, 0x14, 0x23, 0xa3, 0xc2, 0x63, 0x0b, 0xf2, 0x8e, 0x71,
+ 0x2e, 0x8b, 0xce, 0xd0, 0x2a, 0x83, 0xd7, 0x55, 0x18, 0x8b, 0x4c, 0xb3,
+ 0xc4, 0x03, 0x1d, 0x9d, 0x5d, 0x04, 0xc0, 0x7b, 0x09, 0xea, 0xf8, 0x06,
+ 0xc5, 0x03, 0x24, 0x62, 0x7a, 0x1d, 0xe2, 0x92, 0xc5, 0xa3, 0x2b, 0x98,
+ 0x8f, 0x85, 0x95, 0x73, 0x20, 0xb0, 0xd8, 0xcf, 0x31, 0x03, 0xbe, 0x68,
+ 0xe0, 0x0c, 0x4c, 0xe7, 0x4d, 0x34, 0x10, 0xd9, 0x68, 0x8d, 0xe9, 0xfd,
+ 0x3b, 0x9d, 0xb2, 0x5e, 0x79, 0x9f, 0xfd, 0x63, 0xc0, 0x5e, 0x35, 0x70,
+ 0xe2, 0x7e, 0x26, 0xe0, 0xa1, 0xef, 0x3f, 0xd9, 0x65, 0xbd, 0xbb, 0xd3,
+ 0x84, 0x4c, 0xc5, 0x22, 0xd8, 0xa6, 0xbb, 0x28, 0xfd, 0x35, 0xe0, 0x23,
+ 0xd5, 0xee, 0xb8, 0x97, 0x1e, 0x5f, 0x0a, 0xff, 0x18, 0xf0, 0xbf, 0x3f,
+ 0xee, 0xf6, 0x9f, 0xfd, 0xe4, 0x7a, 0xfd, 0x64, 0xf7, 0xfd, 0x27, 0x7b,
+ 0x9d, 0x36, 0x54, 0x55, 0xb6, 0x4c, 0x2c, 0x0d, 0x09, 0xd3, 0xf4, 0x39,
+ 0xad, 0x1d, 0x2a, 0x8e, 0x2e, 0xb5, 0xfc, 0x78, 0xb4, 0x35, 0x80, 0x3f,
+ 0xb6, 0x38, 0x11, 0x59, 0x6d, 0x69, 0xcf, 0xb4, 0x57, 0x08, 0x5b, 0xb1,
+ 0x84, 0xfb, 0x52, 0x80, 0x81, 0x76, 0xab, 0x95, 0xf1, 0x60, 0xd9, 0x46,
+ 0xb0, 0x8d, 0xda, 0x0c, 0x1b, 0xe6, 0x49, 0x0e, 0xfa, 0x99, 0xac, 0xe8,
+ 0xe2, 0x13, 0xb0, 0x0b, 0x97, 0xd5, 0x6b, 0xa2, 0xa4, 0xd5, 0x14, 0x95,
+ 0xfc, 0xa1, 0xcd, 0xd8, 0x8a, 0x89, 0x45, 0x48, 0x35, 0xd9, 0x6a, 0x53,
+ 0x68, 0xbc, 0x0e, 0xe1, 0x69, 0x7e, 0x94, 0xb8, 0xfa, 0xa2, 0x4a, 0xec,
+ 0xfe, 0xfc, 0xd4, 0x20, 0x27, 0x5a, 0x4f, 0x4f, 0xd0, 0x54, 0xac, 0x33,
+ 0x0a, 0x6a, 0x3d, 0x2b, 0xc8, 0xac, 0x43, 0x72, 0xc2, 0x57, 0xf7, 0xc0,
+ 0x95, 0x6e, 0x00, 0x25, 0x21, 0x15, 0xcb, 0xb9, 0x7b, 0x42, 0x30, 0xaf,
+ 0xf0, 0x65, 0x17, 0xae, 0x21, 0xd9, 0x76, 0x44, 0xd3, 0xa8, 0x67, 0xb4,
+ 0x2c, 0x9b, 0x49, 0xf6, 0x83, 0xad, 0xd6, 0x50, 0x53, 0x03, 0x95, 0xf2,
+ 0x31, 0xbb, 0x51, 0x10, 0xe4, 0x14, 0x15, 0x02, 0xdb, 0xc9, 0x00, 0xe2,
+ 0x82, 0x78, 0x91, 0x78, 0xc3, 0x40, 0x23, 0x98, 0x53, 0x8b, 0xed, 0xf5,
+ 0x1c, 0x0e, 0x4c, 0x32, 0x2d, 0x92, 0xc1, 0xbf, 0x95, 0xfc, 0x2a, 0x5b,
+ 0xd4, 0x8f, 0x1b, 0x1e, 0xc0, 0x0a, 0xfb, 0x97, 0xb0, 0x8f, 0x6a, 0x15,
+ 0x3e, 0xa9, 0x2c, 0xe0, 0xca, 0xdc, 0xb9, 0x49, 0x15, 0x42, 0x1e, 0x8d,
+ 0x2c, 0x89, 0xd8, 0xec, 0x52, 0x92, 0x36, 0xda, 0x00, 0x26, 0x41, 0x0a,
+ 0xa9, 0x73, 0x49, 0xc0, 0x3b, 0x9f, 0x49, 0x72, 0x17, 0xcb, 0xb7, 0x4d,
+ 0x30, 0x3c, 0x77, 0x13, 0x56, 0xf4, 0x6d, 0xa9, 0x26, 0xae, 0xcc, 0x6e,
+ 0x0c, 0xee, 0x24, 0xb5, 0x1a, 0xaa, 0xf3, 0x6d, 0xd1, 0xc0, 0x5c, 0x69,
+ 0xd1, 0xa5, 0x93, 0x0f, 0x24, 0xa3, 0x12, 0x5a, 0x52, 0xa7, 0xcf, 0xb1,
+ 0x32, 0x1d, 0x81, 0xa4, 0x85, 0x72, 0x18, 0x34, 0xf7, 0x28, 0x78, 0xd7,
+ 0x8b, 0xaa, 0x6b, 0x98, 0xad, 0x46, 0xd1, 0xcb, 0xc5, 0x4d, 0x4e, 0x32,
+ 0xcd, 0x23, 0x20, 0x04, 0xf4, 0x94, 0x3c, 0xe3, 0x18, 0xed, 0xc2, 0x27,
+ 0xed, 0xff, 0x86, 0xd9, 0xf0, 0x1c, 0x58, 0xff, 0x64, 0x67, 0xb7, 0x51,
+ 0x85, 0xc4, 0x17, 0x1e, 0x57, 0xdd, 0x91, 0x97, 0x98, 0x16, 0xe7, 0xe2,
+ 0xf5, 0x61, 0x14, 0xed, 0x3d, 0xdf, 0x7d, 0xbe, 0xbd, 0xbb, 0x33, 0x78,
+ 0x32, 0xd8, 0x8b, 0x9c, 0x69, 0x9c, 0x64, 0x75, 0x2e, 0xf3, 0x83, 0xd0,
+ 0x9a, 0xf6, 0x68, 0x14, 0x56, 0xf8, 0xa8, 0x31, 0x8e, 0x9b, 0x71, 0x9f,
+ 0xc0, 0xf8, 0xe2, 0xaf, 0xf0, 0x98, 0x03, 0x67, 0x5c, 0x64, 0x86, 0xd9,
+ 0xbe, 0x1b, 0xce, 0xea, 0x79, 0x1f, 0xe3, 0x50, 0xa1, 0x6f, 0x29, 0x68,
+ 0xca, 0xd1, 0x72, 0x94, 0x92, 0xd0, 0x52, 0x72, 0x11, 0x3c, 0xd6, 0x20,
+ 0x48, 0x94, 0x35, 0xac, 0x9e, 0x1e, 0xc7, 0x02, 0xba, 0x2a, 0x89, 0xed,
+ 0x01, 0x8a, 0x26, 0xab, 0x04, 0x86, 0x0b, 0x44, 0xaa, 0xa6, 0x9a, 0x8b,
+ 0x0b, 0xe0, 0x15, 0xba, 0xf1, 0xa5, 0xec, 0xcc, 0xd7, 0x2e, 0x1b, 0x38,
+ 0x6e, 0x8d, 0xf3, 0x04, 0x56, 0xa7, 0xd7, 0x7e, 0xb9, 0xa8, 0x14, 0x87,
+ 0x1c, 0x79, 0x38, 0x12, 0xfd, 0x40, 0x88, 0x55, 0x44, 0x41, 0xcc, 0xbb,
+ 0x0d, 0x3a, 0x2d, 0x75, 0xb5, 0x12, 0xfc, 0x8e, 0x2b, 0x9a, 0x07, 0x7b,
+ 0x77, 0x45, 0xc7, 0x13, 0xa3, 0x32, 0x8a, 0x63, 0x3f, 0x16, 0x60, 0xf8,
+ 0x08, 0xce, 0x9c, 0xd0, 0xc2, 0xde, 0xff, 0x97, 0x68, 0x61, 0xef, 0xff,
+ 0xa7, 0x85, 0x7f, 0x13, 0x2d, 0xbc, 0xa8, 0xd1, 0x02, 0x6b, 0x76, 0xc4,
+ 0xb7, 0x54, 0xc1, 0x6b, 0x22, 0xf1, 0x08, 0x55, 0x04, 0x64, 0xe1, 0xeb,
+ 0xc7, 0xb1, 0x7e, 0x2f, 0x30, 0x21, 0xfa, 0xb2, 0x42, 0x07, 0xa1, 0xa2,
+ 0x9d, 0xc6, 0x41, 0x36, 0x91, 0x34, 0xb9, 0x60, 0x1f, 0xfb, 0xe1, 0xcf,
+ 0xdd, 0x5b, 0x2c, 0x46, 0xf3, 0x67, 0x4b, 0x31, 0x8e, 0x24, 0x57, 0xd8,
+ 0x05, 0xf8, 0x76, 0x7b, 0xf8, 0x12, 0xe1, 0xd7, 0x9c, 0x71, 0xdf, 0xe0,
+ 0xef, 0xb0, 0xa7, 0x98, 0xce, 0x8e, 0x76, 0xa4, 0xe6, 0xaf, 0x0d, 0x49,
+ 0x4b, 0x34, 0xe4, 0x51, 0x97, 0xae, 0x02, 0x46, 0xdb, 0xf0, 0xa9, 0xbc,
+ 0x2d, 0x65, 0x9c, 0xaf, 0xd2, 0x07, 0xd1, 0x67, 0x7f, 0x4e, 0xf2, 0x2c,
+ 0x32, 0x7f, 0x93, 0x86, 0xd2, 0x01, 0x3e, 0xca, 0x52, 0xe2, 0xfd, 0x87,
+ 0xdc, 0x6b, 0x43, 0x44, 0xfd, 0x13, 0x50, 0xfd, 0x24, 0x7a, 0x92, 0x63,
+ 0xc2, 0x6c, 0x34, 0x4c, 0x03, 0x93, 0x49, 0x6a, 0xc2, 0x9f, 0x5f, 0x38,
+ 0x2b, 0xb3, 0x07, 0x57, 0x76, 0xd9, 0x52, 0x51, 0x96, 0x57, 0x66, 0xb3,
+ 0x6c, 0x29, 0x9a, 0x9b, 0x5e, 0x49, 0x36, 0x85, 0x0c, 0xc7, 0x65, 0x05,
+ 0x37, 0x84, 0x8e, 0x7e, 0x14, 0x1d, 0x25, 0xf3, 0x95, 0xd9, 0x66, 0xbc,
+ 0x46, 0x2f, 0x95, 0x99, 0x20, 0xe3, 0x94, 0xde, 0xe5, 0x61, 0x26, 0x2a,
+ 0x37, 0xc4, 0xe6, 0x90, 0xaa, 0x63, 0x2e, 0x5b, 0x5c, 0x1f, 0xaf, 0xdc,
+ 0x32, 0x64, 0x22, 0xcc, 0x85, 0x6b, 0xb1, 0x09, 0x00, 0x00, 0x13, 0x5f,
+ 0xd1, 0x9f, 0xb5, 0xf8, 0xe8, 0x32, 0x6c, 0x41, 0xef, 0x15, 0x0f, 0x4e,
+ 0xb1, 0x1c, 0xfd, 0x15, 0x2c, 0x8a, 0x09, 0x93, 0xeb, 0xd6, 0xf0, 0x19,
+ 0x0c, 0x51, 0xef, 0xb8, 0xd6, 0xc1, 0x72, 0x24, 0x28, 0x07, 0x65, 0xb3,
+ 0x39, 0xfa, 0x10, 0x82, 0xb5, 0xcb, 0x80, 0x57, 0x3a, 0x0b, 0xec, 0x74,
+ 0x8d, 0x49, 0x05, 0xe6, 0xa6, 0xc6, 0xbe, 0xdb, 0x79, 0xe2, 0x2a, 0x49,
+ 0x85, 0x1a, 0x16, 0xc2, 0xcd, 0x72, 0xab, 0x29, 0x8e, 0x6a, 0x67, 0x56,
+ 0xe3, 0xc7, 0xd7, 0xb6, 0x45, 0xd4, 0xda, 0x63, 0x65, 0xa7, 0xe8, 0xfd,
+ 0x89, 0x7f, 0xb4, 0x57, 0xcb, 0xad, 0x24, 0x68, 0x98, 0x0d, 0x9e, 0x1f,
+ 0xc7, 0xd1, 0xc0, 0xeb, 0xeb, 0x3a, 0x78, 0xc5, 0xdf, 0x4a, 0x0f, 0x8f,
+ 0xb7, 0x0d, 0x6d, 0xe6, 0x17, 0x74, 0xf0, 0x6e, 0x6e, 0x91, 0x60, 0x46,
+ 0xe6, 0x0b, 0x17, 0xb0, 0x49, 0x52, 0x5e, 0x3e, 0x17, 0x03, 0xba, 0x48,
+ 0xa4, 0xb1, 0xd5, 0x8f, 0xe3, 0x3c, 0x1c, 0xe0, 0x7d, 0xd5, 0x83, 0x1c,
+ 0x18, 0x40, 0x67, 0x0a, 0xfe, 0x4a, 0xff, 0xf2, 0xde, 0x42, 0x3b, 0xb5,
+ 0xb8, 0x68, 0x93, 0x16, 0x17, 0x59, 0x29, 0x11, 0xda, 0x6c, 0xb6, 0x64,
+ 0xe9, 0x36, 0xe7, 0xbb, 0xa1, 0x05, 0xe3, 0xc8, 0x36, 0xc2, 0x92, 0xf4,
+ 0xb9, 0x59, 0x6e, 0x70, 0xb9, 0x10, 0x27, 0xa8, 0x24, 0x2c, 0x68, 0x99,
+ 0x07, 0x64, 0x30, 0x18, 0xe5, 0x4a, 0xcf, 0x75, 0xc3, 0x14, 0x4c, 0x26,
+ 0xb8, 0xec, 0x5c, 0x78, 0xf7, 0x5d, 0x96, 0x4e, 0x50, 0x02, 0x37, 0xcf,
+ 0x5b, 0xf0, 0xdf, 0x3f, 0x2e, 0xde, 0xb2, 0x17, 0xe0, 0xbc, 0xc4, 0x45,
+ 0xe8, 0x1e, 0x6b, 0x5a, 0x85, 0x5d, 0xfc, 0x6f, 0x2c, 0x21, 0x6d, 0x44,
+ 0xc4, 0xf3, 0xb8, 0xb4, 0x23, 0xe6, 0xb7, 0x01, 0xa3, 0x94, 0x94, 0x6b,
+ 0xf6, 0xd6, 0x8d, 0x93, 0x16, 0x7c, 0x3f, 0xa8, 0x85, 0xed, 0xc1, 0x5a,
+ 0xb5, 0x08, 0xc9, 0xbd, 0xc6, 0x7d, 0x22, 0x01, 0xdf, 0x1f, 0xbe, 0x55,
+ 0x5a, 0x2e, 0x15, 0xbd, 0x53, 0x02, 0xce, 0x28, 0x15, 0xd9, 0x9c, 0x7c,
+ 0x30, 0x68, 0x89, 0x37, 0x33, 0x4a, 0x96, 0x10, 0xb6, 0xfb, 0xf0, 0xed,
+ 0x1c, 0x06, 0x10, 0x12, 0x65, 0xc4, 0x09, 0xf0, 0x0b, 0xa7, 0xf2, 0xb0,
+ 0xea, 0x93, 0x42, 0xc6, 0x66, 0xb7, 0xd6, 0x09, 0xd8, 0x46, 0x2f, 0x10,
+ 0xca, 0x43, 0x44, 0x93, 0x4a, 0x96, 0x7a, 0xcd, 0x4b, 0x6d, 0x06, 0x5a,
+ 0xad, 0xac, 0x3b, 0x9b, 0x2d, 0xeb, 0xb4, 0x38, 0xb7, 0x5a, 0xbe, 0xa2,
+ 0x49, 0x85, 0xb5, 0xdb, 0xcd, 0xdc, 0x6e, 0x68, 0x81, 0x82, 0xe3, 0x2d,
+ 0x09, 0x2b, 0xa0, 0x2d, 0xd6, 0x4a, 0xdb, 0x65, 0xaf, 0x6d, 0x17, 0xa9,
+ 0x9e, 0x33, 0xc6, 0x43, 0x9f, 0x78, 0xdd, 0xa2, 0x96, 0xb0, 0xf2, 0xa4,
+ 0x6d, 0xca, 0x40, 0xd4, 0x7c, 0x74, 0xc2, 0xdc, 0xf9, 0xda, 0x78, 0xe6,
+ 0x28, 0x9c, 0xa9, 0xcd, 0x6c, 0x9d, 0xf5, 0x49, 0x26, 0xa9, 0x73, 0x7c,
+ 0x27, 0x6e, 0x4e, 0xb4, 0x09, 0x65, 0x91, 0xd9, 0x0c, 0x2f, 0x4b, 0xd0,
+ 0x97, 0xa8, 0x9a, 0x8d, 0x09, 0x43, 0x87, 0x97, 0x94, 0x0b, 0x79, 0x4e,
+ 0x8f, 0x83, 0x47, 0xb4, 0xa8, 0x0f, 0x52, 0x77, 0x05, 0x73, 0x6a, 0xda,
+ 0x50, 0x0b, 0xe9, 0x88, 0x07, 0x96, 0x56, 0x43, 0x7d, 0x64, 0x8d, 0x26,
+ 0x30, 0xe6, 0x3e, 0x42, 0xd6, 0xe1, 0x2a, 0x89, 0xe5, 0xb7, 0x3e, 0x02,
+ 0xa9, 0xe9, 0xfb, 0x4f, 0x2e, 0x92, 0xf4, 0xdf, 0xb2, 0x4a, 0xda, 0x57,
+ 0x6b, 0x26, 0x43, 0xb8, 0x4c, 0x8d, 0x19, 0xad, 0x0b, 0x61, 0x5a, 0xb3,
+ 0xf3, 0xeb, 0x82, 0x98, 0xea, 0xd3, 0x6a, 0x0b, 0x35, 0x6d, 0x9f, 0x98,
+ 0x42, 0x7f, 0xf9, 0x81, 0x28, 0xf7, 0x75, 0xf3, 0x43, 0xc7, 0x75, 0x6f,
+ 0xa0, 0x7b, 0x58, 0x53, 0x9b, 0x2a, 0xa4, 0xf0, 0xa8, 0x16, 0xe4, 0x4c,
+ 0xe4, 0x1f, 0xc3, 0x9c, 0x64, 0xce, 0x6c, 0x94, 0xff, 0x35, 0x77, 0x11,
+ 0xee, 0xa0, 0xca, 0x1e, 0xa2, 0x8b, 0xca, 0x54, 0x5a, 0xfc, 0x61, 0x8d,
+ 0xcd, 0xdb, 0x1d, 0xec, 0x80, 0xdb, 0x3e, 0xac, 0x60, 0x02, 0xdd, 0xe7,
+ 0xbb, 0xeb, 0xa7, 0xcf, 0x1b, 0x85, 0x2c, 0x5c, 0xe1, 0x67, 0x8f, 0x01,
+ 0x2b, 0xa5, 0x53, 0xf8, 0x7d, 0x1b, 0x99, 0x21, 0x57, 0xf9, 0xa4, 0x3f,
+ 0x0d, 0x27, 0x5a, 0x0f, 0xea, 0x97, 0x96, 0x01, 0xa6, 0x1f, 0xe7, 0xe5,
+ 0xe1, 0xe5, 0xdd, 0x9d, 0xcf, 0x76, 0x5a, 0x73, 0x97, 0x21, 0x42, 0x04,
+ 0x05, 0xe9, 0x1c, 0xe2, 0xa6, 0x88, 0xa6, 0x5a, 0x15, 0x37, 0xb1, 0xc1,
+ 0xa9, 0xf3, 0xa3, 0x35, 0x30, 0x63, 0xb3, 0xff, 0xb0, 0xad, 0x6b, 0xc0,
+ 0x72, 0x61, 0xaa, 0x01, 0xd5, 0xea, 0x12, 0x77, 0xd9, 0x8a, 0x87, 0x67,
+ 0x6f, 0xdf, 0x1e, 0x1f, 0x92, 0x2a, 0x76, 0x93, 0x43, 0x70, 0x74, 0x6e,
+ 0xcc, 0x36, 0xb3, 0xa8, 0x2f, 0xb5, 0x21, 0x03, 0xe0, 0xc5, 0x09, 0x24,
+ 0x78, 0xe7, 0x0c, 0xa8, 0xf1, 0x97, 0x16, 0xe2, 0xdc, 0x1d, 0xec, 0x06,
+ 0x5b, 0xb5, 0xb0, 0x91, 0x96, 0x9c, 0x68, 0x38, 0x6d, 0x8d, 0x9f, 0xb2,
+ 0x3e, 0x65, 0xce, 0x66, 0xf0, 0xa9, 0xce, 0xb2, 0x91, 0x80, 0x87, 0xcb,
+ 0xa0, 0x45, 0x5f, 0xb6, 0x96, 0x4c, 0x39, 0x43, 0xb2, 0x8b, 0xac, 0x8c,
+ 0x66, 0xaf, 0x61, 0x20, 0x91, 0x5b, 0x16, 0x85, 0x1e, 0x6b, 0x59, 0x98,
+ 0xb0, 0x80, 0xce, 0x2c, 0x81, 0x04, 0x26, 0x7a, 0x67, 0x5a, 0x6a, 0xd1,
+ 0x4c, 0x80, 0x68, 0xc3, 0xbe, 0xeb, 0xe2, 0xd6, 0x15, 0xf4, 0x9f, 0x7a,
+ 0x69, 0xdc, 0x77, 0xd4, 0x6b, 0xbc, 0xa0, 0x8e, 0x90, 0xab, 0x53, 0x08,
+ 0xc0, 0xae, 0x3b, 0x28, 0x95, 0x6d, 0xb7, 0xad, 0x73, 0xa9, 0x4e, 0x2d,
+ 0x59, 0x04, 0xce, 0x89, 0xe5, 0x92, 0x40, 0xe4, 0x65, 0x95, 0x29, 0x35,
+ 0xab, 0x48, 0xc3, 0x58, 0x2c, 0x32, 0x56, 0x19, 0x45, 0x4b, 0xe1, 0x69,
+ 0xa5, 0x7a, 0x09, 0x6c, 0x8a, 0xe7, 0x42, 0x46, 0xba, 0x56, 0x8e, 0x82,
+ 0xb2, 0xca, 0x21, 0x5c, 0x8e, 0x1e, 0x01, 0x20, 0x65, 0xbb, 0x9f, 0x38,
+ 0x12, 0x1f, 0xc5, 0x1e, 0x75, 0xa1, 0x71, 0x16, 0x63, 0xb8, 0xa6, 0xba,
+ 0xc1, 0xbf, 0x1d, 0x7b, 0xf4, 0x7c, 0x5b, 0x6b, 0xab, 0x23, 0x9f, 0x78,
+ 0x5d, 0x7e, 0xce, 0x6b, 0x2d, 0x85, 0x0c, 0xff, 0x70, 0x51, 0x3b, 0x1d,
+ 0x5a, 0xfc, 0x34, 0xcb, 0xb7, 0x21, 0xe0, 0x71, 0x09, 0xbe, 0x3c, 0x9b,
+ 0x1a, 0x74, 0x76, 0x0b, 0xe8, 0x21, 0x02, 0x8e, 0xec, 0xaa, 0xa0, 0xa6,
+ 0xd5, 0x16, 0xa2, 0xce, 0xd9, 0x99, 0x4f, 0xa3, 0x14, 0xd1, 0x51, 0x0b,
+ 0xad, 0x5a, 0xe5, 0xf3, 0x93, 0x79, 0x03, 0xb8, 0x8f, 0x9f, 0x00, 0xbc,
+ 0x9e, 0xf2, 0x75, 0x1c, 0x37, 0xc1, 0xd3, 0x56, 0xa6, 0xe8, 0x4a, 0xc0,
+ 0x1a, 0xa1, 0x30, 0xb0, 0x9d, 0x52, 0x4b, 0x03, 0xd5, 0x9b, 0x53, 0x9c,
+ 0xba, 0x45, 0xc0, 0x49, 0x2d, 0x0f, 0x49, 0x20, 0x45, 0xf2, 0xd2, 0x30,
+ 0x20, 0x2a, 0x05, 0x6b, 0xe3, 0xe2, 0xb6, 0x58, 0x0b, 0xcd, 0x5d, 0x8d,
+ 0xf6, 0xa6, 0xd1, 0x05, 0xc8, 0xfd, 0xd6, 0xaa, 0x40, 0x6e, 0x95, 0xe1,
+ 0x28, 0x99, 0x12, 0xab, 0xcd, 0xb9, 0x2d, 0x6a, 0xc0, 0x91, 0x36, 0x14,
+ 0x56, 0x07, 0xe0, 0xdf, 0xae, 0xf9, 0xa5, 0x83, 0x24, 0xea, 0x30, 0xb4,
+ 0x7f, 0x27, 0x4c, 0xfb, 0x12, 0x6d, 0xc4, 0xbd, 0xca, 0x95, 0x38, 0x68,
+ 0xa8, 0x6e, 0xac, 0x2d, 0x2e, 0x0a, 0x63, 0xaf, 0x6a, 0xd9, 0xe7, 0x2d,
+ 0xdb, 0x7c, 0x37, 0x4f, 0x1f, 0x70, 0x15, 0x34, 0xf1, 0x82, 0xdd, 0xbc,
+ 0x1f, 0x19, 0xd5, 0xee, 0x8b, 0xbd, 0xc1, 0xee, 0xf3, 0xcf, 0x06, 0xbb,
+ 0x3b, 0x83, 0xdd, 0xca, 0xe8, 0xa0, 0x20, 0x71, 0xc8, 0x5f, 0xd8, 0x4e,
+ 0xcb, 0x25, 0xda, 0x16, 0xbb, 0x12, 0x76, 0x30, 0x5b, 0x0d, 0x82, 0xc8,
+ 0xf5, 0x46, 0x17, 0x1a, 0xdd, 0xde, 0x62, 0x66, 0x71, 0x7e, 0x68, 0x25,
+ 0x35, 0x68, 0x07, 0x4e, 0x35, 0x0b, 0x36, 0x55, 0xc2, 0x1b, 0xbd, 0xf1,
+ 0xa7, 0xa5, 0x12, 0x52, 0x90, 0x26, 0x55, 0x29, 0x3c, 0xed, 0x22, 0xf2,
+ 0x5c, 0xff, 0xff, 0xc2, 0x71, 0x57, 0x34, 0x1a, 0x0e, 0x7c, 0x73, 0xc7,
+ 0x10, 0x7a, 0x8c, 0x8b, 0x8e, 0x05, 0xdf, 0x3f, 0x3f, 0xbb, 0xb8, 0xd4,
+ 0x04, 0x6d, 0x61, 0x07, 0x71, 0x71, 0x37, 0x70, 0xd1, 0x72, 0x88, 0xce,
+ 0xd5, 0xcb, 0xa5, 0x74, 0x50, 0x1d, 0xd6, 0xdc, 0xf1, 0xf9, 0x85, 0x47,
+ 0x51, 0x08, 0xee, 0x50, 0xb4, 0xe9, 0x32, 0x86, 0x59, 0xac, 0x45, 0x6b,
+ 0x7d, 0x52, 0xd9, 0x38, 0x47, 0x04, 0xaf, 0xc1, 0xce, 0x4b, 0x2b, 0x34,
+ 0xf5, 0xe0, 0x16, 0xfc, 0xda, 0x9f, 0xfe, 0xe4, 0x59, 0xd4, 0x90, 0x53,
+ 0xda, 0xb4, 0x22, 0x22, 0x6c, 0x9c, 0xcf, 0xbc, 0x7b, 0x5d, 0x00, 0x60,
+ 0xa2, 0xce, 0xfe, 0x8f, 0x48, 0x7c, 0xfb, 0xa9, 0xff, 0x23, 0xfd, 0xf9,
+ 0x53, 0xc7, 0x5d, 0x03, 0x50, 0xa8, 0xc4, 0xb3, 0xe8, 0x26, 0x2f, 0x1b,
+ 0x84, 0x9a, 0xb1, 0xa8, 0x3f, 0x2a, 0x57, 0x01, 0x6f, 0x17, 0xc7, 0x43,
+ 0xe2, 0x20, 0x0a, 0x46, 0x82, 0x07, 0xd4, 0x89, 0x0d, 0x3b, 0x45, 0x8a,
+ 0x94, 0x11, 0xa5, 0xb8, 0xb5, 0x44, 0x3a, 0x60, 0x6c, 0x10, 0x08, 0x78,
+ 0xb1, 0x67, 0xb8, 0x63, 0xec, 0x24, 0xbd, 0x17, 0xb6, 0x13, 0x1b, 0xc4,
+ 0x8a, 0xdc, 0x3f, 0x0c, 0xad, 0xa9, 0x2e, 0x5c, 0xf9, 0x60, 0xc3, 0xa5,
+ 0x84, 0x73, 0x3e, 0x16, 0xa9, 0xf8, 0x5c, 0x52, 0x4a, 0x0d, 0x49, 0x08,
+ 0x1e, 0x4b, 0x5c, 0xc0, 0x6c, 0x3a, 0x67, 0xbf, 0xb2, 0x59, 0x9f, 0xf2,
+ 0xb4, 0xb8, 0xe5, 0x19, 0x2a, 0x68, 0x41, 0x24, 0xc8, 0x1a, 0x1b, 0x81,
+ 0xa2, 0x8f, 0x91, 0x59, 0x5e, 0x2d, 0xc7, 0xeb, 0x9b, 0x9d, 0x33, 0xb8,
+ 0x05, 0xfe, 0x66, 0x64, 0xa6, 0x65, 0x87, 0xd4, 0x3f, 0x29, 0xe8, 0x7c,
+ 0x1e, 0xae, 0x34, 0x9b, 0x57, 0x8a, 0x65, 0x08, 0xca, 0x95, 0x41, 0xb9,
+ 0x35, 0xf2, 0xa9, 0x42, 0x60, 0x42, 0x97, 0x0a, 0x84, 0xa0, 0x85, 0x78,
+ 0x62, 0x48, 0x85, 0x9a, 0xd7, 0x0e, 0x5a, 0x0c, 0xa1, 0x32, 0x5b, 0x30,
+ 0x28, 0x2c, 0x03, 0x49, 0x07, 0xd1, 0x06, 0x7f, 0x58, 0x24, 0x71, 0x4e,
+ 0xdc, 0x8b, 0x5d, 0xc5, 0xc1, 0xe4, 0xfe, 0x17, 0x35, 0x0b, 0xa0, 0x54,
+ 0x06, 0xf6, 0xc5, 0xc8, 0xdb, 0xee, 0xb7, 0xed, 0xa1, 0x5c, 0x72, 0x1c,
+ 0x66, 0x0e, 0x16, 0x1d, 0xe7, 0xa3, 0xb4, 0xcc, 0x63, 0x8d, 0xb2, 0x57,
+ 0x84, 0x90, 0x40, 0xb8, 0xd0, 0x32, 0x1e, 0xc3, 0x75, 0x28, 0x21, 0x83,
+ 0xe8, 0x7f, 0xa1, 0x53, 0x7d, 0x5b, 0xec, 0x15, 0x48, 0x4d, 0xfd, 0xf2,
+ 0xf8, 0xf5, 0xd9, 0xc5, 0x71, 0x35, 0xa1, 0x53, 0xc0, 0x03, 0xa2, 0xb6,
+ 0x9a, 0x64, 0x9b, 0x28, 0x9d, 0xac, 0xc6, 0x12, 0x2b, 0xd5, 0x26, 0x40,
+ 0x04, 0xe7, 0xdf, 0x1d, 0x05, 0x27, 0xcf, 0x60, 0x56, 0xac, 0xd1, 0x5e,
+ 0xab, 0x57, 0x17, 0xfc, 0x73, 0x0b, 0xc5, 0xb0, 0x05, 0xdd, 0xc1, 0xc6,
+ 0x27, 0xf0, 0x39, 0x28, 0xe4, 0x65, 0x86, 0x19, 0x04, 0x72, 0x16, 0x05,
+ 0x3b, 0x25, 0x5c, 0xa3, 0x2d, 0xb0, 0xb9, 0xc4, 0xec, 0xa5, 0xf6, 0xa5,
+ 0x9a, 0x38, 0x62, 0x09, 0x4c, 0xe0, 0x68, 0x85, 0x41, 0xd4, 0xec, 0x48,
+ 0x61, 0x56, 0xa4, 0x97, 0x46, 0x49, 0x1a, 0xc1, 0x61, 0x63, 0xcf, 0xae,
+ 0x78, 0xb0, 0x4d, 0x61, 0x50, 0xac, 0x9d, 0x28, 0x04, 0xb7, 0x91, 0xaa,
+ 0xd2, 0x56, 0x03, 0xa0, 0xe5, 0xf6, 0x75, 0xeb, 0xab, 0x9d, 0x6f, 0x16,
+ 0x5b, 0x95, 0x6a, 0xdb, 0xb6, 0x78, 0x56, 0xd4, 0xf1, 0x4f, 0x5d, 0x6f,
+ 0x89, 0x6f, 0x41, 0xdc, 0x71, 0x60, 0xe8, 0x96, 0x82, 0xb7, 0x35, 0x70,
+ 0x1e, 0xff, 0xf6, 0x2a, 0x7e, 0x6e, 0xd6, 0x80, 0x8b, 0x68, 0x2d, 0xe7,
+ 0xad, 0x02, 0x82, 0x01, 0x4d, 0xda, 0x49, 0x36, 0xe8, 0x44, 0x0d, 0x8c,
+ 0xb0, 0x76, 0x14, 0xf0, 0xb8, 0x0d, 0xec, 0xc9, 0x27, 0x95, 0xba, 0xfa,
+ 0x95, 0x23, 0x85, 0x6e, 0xff, 0xc1, 0x3c, 0xe3, 0x48, 0x7c, 0x8f, 0x8a,
+ 0xd5, 0xbc, 0x84, 0xd0, 0x24, 0x49, 0x85, 0xe3, 0x2c, 0xcf, 0x9b, 0x46,
+ 0x47, 0x14, 0xbb, 0x72, 0x9b, 0x86, 0x8c, 0x8a, 0x8b, 0xd7, 0x87, 0x2f,
+ 0x9e, 0xbd, 0x80, 0xe8, 0x87, 0xb2, 0x6a, 0x9a, 0x8f, 0xa6, 0xd1, 0x86,
+ 0x08, 0xe3, 0xf4, 0x43, 0x6e, 0xb0, 0x03, 0x6d, 0x49, 0xcd, 0x80, 0xa3,
+ 0x64, 0x2a, 0xf8, 0x14, 0xc3, 0xa0, 0x89, 0x41, 0xab, 0xe9, 0xb4, 0xed,
+ 0xf6, 0x5c, 0x57, 0x1d, 0xd8, 0x6e, 0x0d, 0x8c, 0x3e, 0x95, 0xd8, 0x37,
+ 0xad, 0x2e, 0x6a, 0xea, 0x12, 0x69, 0xe8, 0x73, 0x68, 0x33, 0xba, 0x89,
+ 0x3d, 0x47, 0x75, 0xae, 0x6a, 0x6b, 0xd1, 0xd6, 0xdc, 0xdf, 0xaa, 0xe7,
+ 0xb9, 0x56, 0x79, 0x02, 0x07, 0xa0, 0x52, 0x6d, 0x7c, 0x00, 0x8f, 0x02,
+ 0xeb, 0x01, 0x6d, 0x86, 0x12, 0x35, 0x62, 0x99, 0x33, 0x86, 0xc3, 0x19,
+ 0x3c, 0x79, 0xb5, 0xf4, 0xd7, 0xac, 0xdd, 0x7c, 0x73, 0x9d, 0x2f, 0x24,
+ 0xe1, 0xb1, 0x0d, 0xa0, 0x36, 0x8c, 0x83, 0x91, 0x47, 0x8d, 0xd8, 0x51,
+ 0x73, 0x03, 0x56, 0x0b, 0xbc, 0x7b, 0x72, 0xe4, 0xea, 0x9c, 0xfb, 0x68,
+ 0x9e, 0xd1, 0xaa, 0xbd, 0x39, 0xf7, 0x18, 0x88, 0xcd, 0x33, 0x45, 0xd7,
+ 0x94, 0x97, 0x9a, 0x47, 0x96, 0x28, 0x8f, 0xef, 0xda, 0x9b, 0xd3, 0x56,
+ 0x44, 0x99, 0x94, 0x36, 0xac, 0x61, 0x04, 0xaa, 0x5a, 0xa5, 0x39, 0xde,
+ 0x18, 0x4e, 0xf4, 0xb6, 0x6e, 0x9a, 0x35, 0x0b, 0x6f, 0x48, 0x08, 0x17,
+ 0x41, 0xfc, 0x83, 0x6b, 0x31, 0x83, 0x69, 0xd0, 0xb0, 0x1a, 0xd5, 0xbd,
+ 0x56, 0x84, 0xf5, 0xcf, 0xd1, 0xce, 0x28, 0x15, 0xf0, 0xaa, 0x26, 0x29,
+ 0xd7, 0xad, 0x24, 0xa2, 0xa4, 0xa1, 0x79, 0xbc, 0x19, 0x4e, 0x61, 0x1e,
+ 0x65, 0xe3, 0x32, 0x98, 0x01, 0x3f, 0xd0, 0xde, 0x9c, 0x8a, 0x06, 0xcd,
+ 0x99, 0xb1, 0x9f, 0x05, 0x69, 0x4c, 0x8f, 0xcf, 0x4c, 0x1e, 0x6c, 0x6c,
+ 0x32, 0x7d, 0x28, 0xac, 0xa8, 0xb1, 0xc3, 0xeb, 0x67, 0xd6, 0xb6, 0xc3,
+ 0x18, 0x41, 0x7d, 0x83, 0x7d, 0x8a, 0x15, 0x1e, 0xef, 0xb7, 0x37, 0xe7,
+ 0x76, 0x18, 0x4f, 0x3e, 0xba, 0xc1, 0xda, 0x4b, 0x63, 0x15, 0xa6, 0x73,
+ 0x85, 0xc6, 0x7c, 0x2f, 0x08, 0x01, 0x9c, 0xf7, 0x5f, 0xbe, 0x7f, 0x7c,
+ 0x41, 0xa6, 0x73, 0x83, 0xd2, 0xe2, 0xe4, 0x76, 0x7f, 0x70, 0x35, 0x2e,
+ 0x2f, 0xae, 0x82, 0x6c, 0x45, 0x62, 0x5e, 0x58, 0x43, 0xf6, 0xbe, 0x3f,
+ 0x8f, 0xbd, 0xb4, 0xc8, 0x52, 0xc9, 0xc5, 0x57, 0xb4, 0xa0, 0xa8, 0x32,
+ 0xc4, 0xa8, 0x0d, 0xa3, 0x27, 0x88, 0x25, 0x6e, 0x4c, 0x71, 0x76, 0xcb,
+ 0x8e, 0x15, 0x77, 0xbb, 0xbd, 0x5f, 0xaf, 0xc3, 0x80, 0x8e, 0xe5, 0x71,
+ 0x4f, 0xc7, 0x32, 0x2b, 0xa7, 0x9c, 0xbb, 0x8c, 0xf3, 0x0f, 0xef, 0x76,
+ 0xb5, 0x4b, 0x77, 0x26, 0xeb, 0xe3, 0x5b, 0xdc, 0x4f, 0xac, 0x73, 0xfe,
+ 0xd5, 0x3a, 0x0e, 0x01, 0x92, 0xe3, 0x51, 0x91, 0x4d, 0x97, 0xa5, 0x44,
+ 0xeb, 0x49, 0x63, 0x57, 0x26, 0x20, 0xae, 0x59, 0x0a, 0xc4, 0xa7, 0xda,
+ 0xdd, 0xbe, 0x3e, 0xa9, 0x3a, 0x17, 0x44, 0x75, 0x03, 0x0c, 0xc3, 0x76,
+ 0xac, 0x5f, 0x1c, 0x7d, 0xda, 0x0f, 0x51, 0x00, 0xbf, 0x3d, 0xf3, 0xca,
+ 0x5b, 0x16, 0x68, 0x3d, 0xc3, 0xd3, 0x5e, 0x6b, 0x07, 0x62, 0x92, 0x30,
+ 0xe6, 0x9e, 0x92, 0x02, 0x47, 0x27, 0x6a, 0x7d, 0x78, 0xe5, 0x7b, 0x8f,
+ 0x11, 0xd2, 0xda, 0x35, 0xce, 0x67, 0x1f, 0x38, 0xe4, 0xf4, 0x80, 0x9f,
+ 0x15, 0x43, 0x83, 0x05, 0xb3, 0x6a, 0x9c, 0x4c, 0x3d, 0xc6, 0x6b, 0x56,
+ 0x7e, 0xdd, 0x08, 0x2a, 0x54, 0xf8, 0xd8, 0x48, 0xf8, 0xc1, 0xb6, 0xc1,
+ 0x04, 0x40, 0x7e, 0xec, 0x84, 0x5f, 0x05, 0x9c, 0xb2, 0xbd, 0x39, 0x1d,
+ 0xae, 0x7f, 0x4f, 0x97, 0xa7, 0x67, 0x66, 0xb3, 0x89, 0x9a, 0xa1, 0x59,
+ 0x03, 0x6d, 0xd2, 0x86, 0x1d, 0xf0, 0x5f, 0xc4, 0x20, 0x58, 0xed, 0x98,
+ 0xce, 0x2b, 0xb1, 0x95, 0xd4, 0x63, 0x36, 0x03, 0x06, 0x4c, 0x7b, 0x0c,
+ 0xb9, 0xa4, 0x90, 0x85, 0x48, 0xff, 0x6e, 0xdb, 0x05, 0x2d, 0x40, 0xd0,
+ 0x86, 0xad, 0x5c, 0xea, 0x7d, 0x88, 0x6a, 0xd7, 0x62, 0x06, 0xb3, 0x12,
+ 0x60, 0x31, 0x50, 0xed, 0xa8, 0x6b, 0x24, 0x2f, 0x0a, 0xa3, 0x94, 0x2c,
+ 0xc8, 0xc2, 0xf4, 0x31, 0x31, 0x1e, 0x39, 0x51, 0x58, 0x1e, 0x6f, 0x94,
+ 0xaa, 0xe1, 0xac, 0x0d, 0x29, 0x58, 0x5a, 0xad, 0x82, 0x36, 0xa8, 0x97,
+ 0xa9, 0xed, 0x27, 0xd7, 0x93, 0xbe, 0x12, 0x47, 0x95, 0x15, 0xf5, 0xf3,
+ 0x6d, 0x2c, 0x04, 0xa9, 0xbf, 0x2f, 0xf1, 0xe3, 0xf3, 0xb5, 0xb5, 0x17,
+ 0x87, 0xbe, 0x00, 0x63, 0x74, 0x21, 0xa1, 0x3f, 0xcc, 0x53, 0x19, 0x03,
+ 0x47, 0x15, 0xe8, 0x4d, 0xb6, 0xb5, 0x48, 0xad, 0x5e, 0x41, 0xc7, 0x1f,
+ 0x2f, 0xdb, 0x4a, 0x33, 0x6c, 0x59, 0x6d, 0x41, 0x34, 0xbd, 0x3b, 0xd8,
+ 0xed, 0x99, 0x6e, 0xa5, 0x52, 0x9c, 0x49, 0xc8, 0xfc, 0x49, 0xac, 0x29,
+ 0x3d, 0x11, 0xea, 0x27, 0xd6, 0xad, 0x63, 0x17, 0x12, 0xf2, 0xaa, 0x62,
+ 0x63, 0x58, 0x5e, 0x93, 0xab, 0x04, 0x3a, 0xa1, 0x9c, 0x91, 0x6c, 0x1a,
+ 0x54, 0xb4, 0xd3, 0x7f, 0xfa, 0xe2, 0x45, 0xe5, 0x5e, 0x0f, 0x95, 0xe0,
+ 0x67, 0x3b, 0x3b, 0x02, 0xef, 0x53, 0x7f, 0x8d, 0xbe, 0xe8, 0xbf, 0xc0,
+ 0x8b, 0xd5, 0xd7, 0x04, 0x04, 0x66, 0xfd, 0x7b, 0x7d, 0xfe, 0xa6, 0xa5,
+ 0x3b, 0x58, 0x70, 0xd6, 0xbe, 0xf5, 0x82, 0xbb, 0x6b, 0x79, 0x0b, 0x0f,
+ 0xcb, 0x3a, 0x66, 0x57, 0x57, 0x5c, 0xba, 0x9a, 0x9f, 0x14, 0x0c, 0xf0,
+ 0x2c, 0xbf, 0x8f, 0xf3, 0x49, 0x73, 0xba, 0x3b, 0xbd, 0xfe, 0xee, 0xba,
+ 0xe9, 0xba, 0x3a, 0x93, 0xd8, 0x4e, 0xd6, 0x84, 0x36, 0xff, 0xb8, 0xb5,
+ 0xf9, 0xf5, 0x56, 0xdb, 0xec, 0x3f, 0xdd, 0xd9, 0xe9, 0x3d, 0xe7, 0x9f,
+ 0x2f, 0x5e, 0xac, 0x8d, 0x31, 0xf1, 0x7d, 0x3c, 0xb1, 0xa9, 0x55, 0x46,
+ 0x4b, 0xed, 0xb4, 0xb4, 0xbe, 0x4b, 0xad, 0xee, 0xbe, 0x78, 0xd1, 0xe3,
+ 0x5e, 0x9e, 0x7d, 0x54, 0xeb, 0xe5, 0x7d, 0xe6, 0x4d, 0xe7, 0xfc, 0xba,
+ 0x27, 0xc7, 0xa2, 0x36, 0x03, 0xfa, 0x13, 0x51, 0x4c, 0x8c, 0x7a, 0x14,
+ 0x99, 0x77, 0x41, 0xcb, 0x50, 0xaa, 0x0f, 0x3e, 0xc0, 0x6d, 0x44, 0xa0,
+ 0xdf, 0x02, 0x79, 0x78, 0xd0, 0x14, 0x45, 0xfd, 0x88, 0xbd, 0x7f, 0xc1,
+ 0xfc, 0xf1, 0x1e, 0x51, 0xfb, 0x4c, 0x5c, 0x61, 0xd7, 0x8c, 0xb8, 0x64,
+ 0x59, 0x7a, 0x45, 0xb4, 0x49, 0xe4, 0xb2, 0x05, 0x5b, 0xc0, 0x5d, 0x3c,
+ 0x4d, 0x0d, 0xc9, 0x21, 0xea, 0xc2, 0x80, 0x25, 0xa8, 0x1c, 0xf4, 0x7b,
+ 0xb6, 0xe8, 0xa2, 0x5e, 0xce, 0x74, 0xe2, 0x34, 0x11, 0xf3, 0x4a, 0xc9,
+ 0x93, 0x7d, 0x79, 0x46, 0x0e, 0x1a, 0xd4, 0xb9, 0x87, 0x81, 0xe0, 0x11,
+ 0xb2, 0x77, 0xa8, 0xd6, 0x6b, 0xe4, 0x80, 0x91, 0x3c, 0xa2, 0xaf, 0x40,
+ 0xe1, 0xc2, 0x5c, 0xe5, 0xa7, 0xd9, 0x2d, 0x02, 0x04, 0x3c, 0x73, 0x18,
+ 0xcc, 0x03, 0x6f, 0xe0, 0x24, 0x31, 0x98, 0xe5, 0x1a, 0x0e, 0x8c, 0x7b,
+ 0x5f, 0xec, 0x31, 0x4b, 0x51, 0x44, 0xfd, 0x21, 0xfb, 0x01, 0x96, 0x33,
+ 0xcd, 0xdd, 0x92, 0xd4, 0x09, 0xd6, 0x4f, 0xef, 0xe3, 0x3c, 0xb1, 0xac,
+ 0x53, 0xd2, 0x9b, 0x8d, 0x03, 0x38, 0xa0, 0x55, 0xcd, 0x9c, 0xd4, 0xe4,
+ 0x71, 0x8f, 0x85, 0x60, 0x88, 0xd6, 0x12, 0xac, 0x34, 0x41, 0x3c, 0xa8,
+ 0x26, 0xd9, 0xb2, 0xed, 0x1f, 0x76, 0xba, 0x8a, 0x3b, 0xcc, 0xd0, 0xd6,
+ 0xcd, 0x42, 0x27, 0x38, 0x70, 0x1b, 0x35, 0x17, 0x18, 0x3f, 0x85, 0x64,
+ 0x58, 0xa0, 0x34, 0xb9, 0x12, 0xae, 0x6e, 0x16, 0x60, 0x47, 0xbc, 0x45,
+ 0x60, 0x4c, 0xb2, 0xf8, 0x06, 0x81, 0xa5, 0x05, 0xa3, 0x2d, 0xba, 0x48,
+ 0x20, 0xea, 0x00, 0xf8, 0x52, 0xd9, 0x31, 0xda, 0x2b, 0xc7, 0x04, 0x69,
+ 0xd3, 0xa2, 0xcd, 0x20, 0x6c, 0x11, 0xb4, 0x15, 0xe8, 0xfc, 0x86, 0xa8,
+ 0x9a, 0x49, 0x0c, 0xde, 0xd6, 0x40, 0x06, 0x00, 0xa3, 0xad, 0xec, 0x04,
+ 0x00, 0x79, 0xc2, 0x2d, 0x4d, 0x1e, 0x4a, 0x40, 0x62, 0xe3, 0x49, 0xbb,
+ 0x9c, 0x87, 0x27, 0xff, 0xfb, 0x78, 0xf0, 0x6b, 0x58, 0x93, 0xeb, 0x91,
+ 0xe7, 0x79, 0x7c, 0xef, 0xd1, 0x21, 0xd4, 0x5b, 0xec, 0x02, 0xdf, 0xe2,
+ 0xe9, 0xd4, 0xd7, 0xb9, 0x87, 0xdf, 0x8f, 0x84, 0xfd, 0xcc, 0xd0, 0xe2,
+ 0x5d, 0x0d, 0xfb, 0xb5, 0xe8, 0xe2, 0x9c, 0xe1, 0x37, 0x41, 0x05, 0xe7,
+ 0xd0, 0xb0, 0xec, 0x40, 0x5f, 0x66, 0x70, 0xbf, 0x58, 0x45, 0xa9, 0x25,
+ 0x75, 0x82, 0x52, 0x6d, 0x75, 0xfb, 0x14, 0x0d, 0xb1, 0x01, 0xc6, 0x1e,
+ 0xc6, 0xc5, 0x5c, 0xf8, 0x94, 0x06, 0x9e, 0xf9, 0x1a, 0xe4, 0x0b, 0x04,
+ 0xa2, 0x8a, 0x0b, 0x3b, 0x2c, 0x6d, 0x6b, 0x76, 0x83, 0xc0, 0x38, 0x0e,
+ 0xe2, 0x47, 0xd6, 0x4d, 0x9b, 0x39, 0x8a, 0xd7, 0xb6, 0x8c, 0x67, 0x8b,
+ 0x96, 0x74, 0x17, 0xc9, 0xcc, 0x35, 0x84, 0x24, 0x56, 0x8e, 0x7c, 0x40,
+ 0x2a, 0x3a, 0x6b, 0x36, 0x17, 0xe4, 0xe0, 0x08, 0xe5, 0xd2, 0x8b, 0x70,
+ 0x44, 0xb8, 0x7e, 0xaa, 0xb9, 0x23, 0x24, 0x9c, 0xd3, 0x39, 0x7a, 0xc9,
+ 0xae, 0x0f, 0x84, 0x11, 0xec, 0xaf, 0xf1, 0xf7, 0x9d, 0x9b, 0xb3, 0x92,
+ 0xeb, 0x29, 0x2d, 0x89, 0x6e, 0x67, 0x81, 0x07, 0xe8, 0x4a, 0xae, 0x61,
+ 0x97, 0xae, 0x01, 0x7f, 0x8b, 0xf3, 0x61, 0x2d, 0x62, 0x2e, 0xa5, 0x51,
+ 0x0f, 0x4e, 0x30, 0xf8, 0x5e, 0x6f, 0xb9, 0xc7, 0x94, 0x5c, 0x15, 0x10,
+ 0x0b, 0x1f, 0xdf, 0x2c, 0xb6, 0xcc, 0xe9, 0xb7, 0x5e, 0x68, 0x74, 0x23,
+ 0x81, 0xda, 0xa3, 0x90, 0x68, 0xa2, 0xea, 0x72, 0xfe, 0xf1, 0x7d, 0x5a,
+ 0x24, 0x0a, 0x70, 0x31, 0x5d, 0x45, 0x3a, 0x69, 0xef, 0xc3, 0x6b, 0x84,
+ 0x1e, 0x3a, 0xc4, 0xfe, 0x43, 0xad, 0xca, 0x8a, 0x92, 0x3c, 0x11, 0x2a,
+ 0xab, 0xd0, 0x2e, 0x6d, 0x27, 0xe5, 0x78, 0x5b, 0x92, 0xb9, 0x23, 0x90,
+ 0x18, 0x4b, 0xfc, 0x77, 0x89, 0xf3, 0xe8, 0x4e, 0x1a, 0x28, 0xda, 0xae,
+ 0x76, 0x50, 0x58, 0x35, 0xed, 0xb2, 0x16, 0x76, 0xe1, 0xbd, 0x77, 0x41,
+ 0x22, 0x50, 0x8b, 0x99, 0xcb, 0xbc, 0x43, 0x6e, 0xb9, 0x5d, 0xb4, 0x82,
+ 0x2b, 0x6f, 0x5f, 0xa9, 0xef, 0xc6, 0x2f, 0x28, 0xe6, 0x0f, 0x5c, 0x16,
+ 0x2d, 0x39, 0x38, 0x52, 0xed, 0xc9, 0x8e, 0xbb, 0x0b, 0x93, 0xad, 0xa6,
+ 0xaa, 0x3a, 0x28, 0x17, 0x5d, 0xb6, 0xf6, 0xda, 0x3c, 0x20, 0x36, 0x0c,
+ 0x42, 0x42, 0x5e, 0x0d, 0xf0, 0x16, 0x49, 0xa1, 0x1f, 0x1f, 0x14, 0xe9,
+ 0x13, 0xa3, 0xd8, 0x55, 0x32, 0x61, 0xa3, 0x0c, 0x00, 0x54, 0xd1, 0xb2,
+ 0x16, 0x6b, 0x6a, 0x6e, 0x9c, 0x6e, 0xed, 0xe3, 0x71, 0x7f, 0xbb, 0x83,
+ 0x27, 0x5b, 0x95, 0x33, 0xc0, 0xfa, 0x08, 0x70, 0xb3, 0x9b, 0x2e, 0x75,
+ 0x26, 0x3a, 0x70, 0x9f, 0x14, 0xb8, 0x99, 0x88, 0xec, 0xe4, 0x83, 0x28,
+ 0x1a, 0x6e, 0xa2, 0x51, 0x7e, 0x12, 0x2d, 0x85, 0x35, 0xe3, 0x75, 0xd2,
+ 0xaa, 0xc5, 0xf1, 0x1a, 0x2e, 0xe6, 0x81, 0x69, 0xa5, 0x6b, 0xf0, 0x10,
+ 0x2f, 0x89, 0xca, 0xac, 0xcd, 0x7e, 0x4d, 0x77, 0x34, 0x2c, 0xdc, 0xcb,
+ 0xc5, 0xa0, 0x89, 0xe7, 0x1d, 0x54, 0xd4, 0xd2, 0xf7, 0xa9, 0xfb, 0x9d,
+ 0xd0, 0x5d, 0x8e, 0xcb, 0x52, 0xc3, 0xf0, 0x5d, 0xfd, 0xa2, 0xb4, 0x68,
+ 0xad, 0x7f, 0x03, 0xe7, 0x09, 0x7b, 0x01, 0xdc, 0x7c, 0x65, 0xba, 0xe2,
+ 0xe7, 0x92, 0x4c, 0xfe, 0x7d, 0x2e, 0x49, 0x28, 0xd8, 0x7e, 0x3d, 0x0f,
+ 0x9a, 0x1e, 0x3d, 0x7d, 0x78, 0x68, 0xee, 0x84, 0x87, 0x91, 0x96, 0x02,
+ 0x7c, 0xc2, 0xf0, 0x9f, 0x3d, 0x3c, 0x54, 0xbf, 0x5c, 0x03, 0x2d, 0x24,
+ 0xce, 0x54, 0xe6, 0x79, 0xa3, 0x4c, 0x12, 0x0c, 0x65, 0xb5, 0xe2, 0x96,
+ 0x75, 0x14, 0x01, 0xf5, 0x3e, 0x46, 0xe4, 0x79, 0xd3, 0xdb, 0x0e, 0xa9,
+ 0xdb, 0x55, 0x8a, 0xb2, 0x4c, 0x37, 0x4e, 0x3e, 0xbf, 0xa1, 0x13, 0x29,
+ 0x80, 0xc0, 0x4a, 0xf1, 0xda, 0xa0, 0x95, 0xed, 0x6a, 0x59, 0x27, 0xee,
+ 0x45, 0x96, 0x3d, 0x05, 0xf2, 0x6e, 0x99, 0x4e, 0xf9, 0x35, 0xe0, 0xd0,
+ 0x52, 0x0b, 0xbb, 0xb4, 0xfc, 0xe9, 0x7c, 0x59, 0x26, 0x85, 0xab, 0x19,
+ 0x1f, 0xd4, 0x5b, 0x6c, 0x5b, 0xf6, 0x29, 0x30, 0xb3, 0x24, 0x24, 0xaa,
+ 0x5e, 0xd4, 0x4e, 0xc7, 0xa5, 0xb0, 0x23, 0x8a, 0xb6, 0xa4, 0x24, 0xdb,
+ 0xc7, 0xab, 0x6d, 0x87, 0xd9, 0x05, 0x47, 0xeb, 0xf5, 0x94, 0x3c, 0xd0,
+ 0x6a, 0x4b, 0x94, 0x74, 0x84, 0x28, 0x07, 0x92, 0xb0, 0x99, 0x73, 0x5d,
+ 0x67, 0x39, 0x6d, 0xea, 0x6c, 0x10, 0x64, 0xaf, 0x36, 0x22, 0x6d, 0xa5,
+ 0x2b, 0x87, 0x77, 0xc9, 0xa5, 0x74, 0x1c, 0x4c, 0x74, 0x99, 0x95, 0x2a,
+ 0x1c, 0x68, 0x3c, 0xb7, 0x32, 0x9b, 0xc8, 0x8d, 0xfb, 0xb1, 0xcc, 0x94,
+ 0xbd, 0xf0, 0x18, 0x06, 0x27, 0xae, 0xac, 0x24, 0xac, 0x7b, 0x85, 0xd7,
+ 0x59, 0xf7, 0x1f, 0x29, 0x20, 0xdc, 0x58, 0xdc, 0x31, 0x33, 0xac, 0xb0,
+ 0x82, 0x70, 0xed, 0xdc, 0xcb, 0x22, 0x3e, 0x02, 0xe3, 0x69, 0x58, 0xe7,
+ 0xc5, 0x34, 0x49, 0x16, 0x32, 0x36, 0x87, 0x8e, 0x6d, 0x05, 0xa4, 0xe5,
+ 0xa4, 0x22, 0x15, 0x45, 0x89, 0x54, 0x65, 0xce, 0x75, 0x1c, 0x20, 0x82,
+ 0x2f, 0x0b, 0x6e, 0x1d, 0xab, 0xee, 0xd8, 0xce, 0x69, 0x36, 0x45, 0x64,
+ 0xb7, 0xa4, 0xcd, 0x35, 0xe5, 0xde, 0x6c, 0x4b, 0x31, 0x1c, 0xb7, 0xad,
+ 0x8e, 0xa8, 0x74, 0x33, 0x6a, 0xd5, 0x9f, 0x9b, 0xa5, 0x53, 0xa4, 0xd8,
+ 0x03, 0xc4, 0xb3, 0x44, 0x4a, 0x47, 0xa0, 0x0a, 0xb4, 0xcc, 0x08, 0x71,
+ 0x0b, 0x8a, 0xea, 0x36, 0x70, 0xbc, 0x47, 0x8a, 0x02, 0x61, 0x09, 0x1b,
+ 0xbc, 0x18, 0x49, 0x35, 0x35, 0xc4, 0x78, 0xd3, 0xa0, 0x5c, 0x14, 0x9d,
+ 0xa3, 0x46, 0x1e, 0xfb, 0xc0, 0x93, 0x48, 0xb3, 0xce, 0xc8, 0xbf, 0x8b,
+ 0x62, 0xb4, 0x0a, 0x58, 0xf1, 0x28, 0xd5, 0x7c, 0x10, 0xff, 0xf5, 0x52,
+ 0x0f, 0xaf, 0x5c, 0x62, 0x7a, 0x65, 0xb0, 0x56, 0x1b, 0x3a, 0x26, 0x23,
+ 0x65, 0x5c, 0x01, 0x5d, 0xa8, 0xd4, 0xd8, 0x30, 0x62, 0x28, 0x7f, 0x32,
+ 0x3e, 0x82, 0x9c, 0xed, 0x98, 0xa5, 0x74, 0x2e, 0xc6, 0xba, 0xc9, 0x20,
+ 0x0c, 0x3a, 0xb4, 0x2d, 0xfe, 0x18, 0xa0, 0x7b, 0xea, 0xb0, 0x47, 0xff,
+ 0x8d, 0x14, 0x62, 0xa0, 0x6c, 0x0a, 0xcf, 0x9a, 0xb4, 0xa0, 0xe4, 0xbe,
+ 0xcd, 0x38, 0x7a, 0x4a, 0xc5, 0xce, 0x2b, 0xdf, 0x8e, 0xbe, 0xd9, 0xc4,
+ 0xd2, 0x44, 0x3b, 0x96, 0x26, 0x46, 0x4d, 0xf4, 0x2a, 0x28, 0xee, 0x36,
+ 0x6c, 0xc4, 0xfd, 0xc1, 0xb7, 0x2a, 0xb1, 0x52, 0x72, 0x51, 0xb6, 0x78,
+ 0xc2, 0xc0, 0xda, 0xd9, 0x83, 0x0a, 0x07, 0x34, 0x4f, 0xa7, 0x05, 0xd1,
+ 0x17, 0x1b, 0x40, 0x6d, 0xa4, 0x0c, 0x17, 0x78, 0x69, 0x8c, 0xa9, 0x99,
+ 0xac, 0xa7, 0x79, 0xf1, 0x3a, 0x18, 0x0e, 0x5f, 0xf2, 0xd5, 0x93, 0x52,
+ 0x46, 0x9a, 0x11, 0xf1, 0xb2, 0x02, 0xec, 0x3b, 0x90, 0x7a, 0x19, 0x65,
+ 0x13, 0x6b, 0xcf, 0xe7, 0xf2, 0x83, 0xc0, 0x4b, 0xd1, 0x46, 0x0d, 0xef,
+ 0xd6, 0x31, 0xec, 0x8f, 0x61, 0x75, 0x35, 0x95, 0x6b, 0x1d, 0xd5, 0xea,
+ 0xb2, 0x32, 0xdd, 0xfe, 0xf3, 0x84, 0x5b, 0x70, 0x09, 0x1d, 0x2e, 0x42,
+ 0x5a, 0xdf, 0xbc, 0x21, 0x3e, 0x14, 0x4b, 0xda, 0xdf, 0x96, 0x29, 0x93,
+ 0xa8, 0x44, 0xd5, 0x1d, 0xa1, 0x14, 0x41, 0xa1, 0x09, 0x16, 0xd7, 0x10,
+ 0xf9, 0x34, 0xe6, 0x23, 0x77, 0x92, 0x41, 0x03, 0x92, 0x19, 0x68, 0x62,
+ 0x03, 0x43, 0xce, 0x05, 0xe8, 0xeb, 0x6c, 0x19, 0xe2, 0x07, 0xf6, 0x87,
+ 0x3c, 0x12, 0x6a, 0xb5, 0x8f, 0x36, 0xda, 0xee, 0x7e, 0x8f, 0x5b, 0xdb,
+ 0x97, 0x42, 0x4b, 0x5e, 0x9e, 0xc1, 0x70, 0x20, 0x77, 0xc8, 0x08, 0x0c,
+ 0xc0, 0x4c, 0xb0, 0x93, 0x1a, 0xe5, 0x14, 0x98, 0xc3, 0x56, 0xa2, 0xf9,
+ 0x8b, 0x6c, 0x7c, 0x5b, 0x3c, 0x15, 0x7d, 0xe7, 0x91, 0xb8, 0xe9, 0x40,
+ 0xbc, 0x66, 0xcf, 0xeb, 0xd9, 0xe1, 0x37, 0xc3, 0xa7, 0x1f, 0x0c, 0x98,
+ 0x5e, 0x5f, 0xe1, 0xf8, 0xd1, 0x90, 0xe9, 0x47, 0x4a, 0x8a, 0xb4, 0x08,
+ 0xc9, 0x5c, 0x5c, 0x29, 0xa7, 0x4b, 0xad, 0x40, 0x50, 0x01, 0x6b, 0x3a,
+ 0x69, 0xb6, 0x74, 0xa8, 0x65, 0x91, 0x8f, 0x1c, 0xee, 0x39, 0xc0, 0xc3,
+ 0x55, 0x23, 0x8b, 0x32, 0xe1, 0x3d, 0x11, 0x0c, 0xc3, 0xe4, 0x61, 0x3c,
+ 0x5d, 0x16, 0xe9, 0xdd, 0x6f, 0x5a, 0xcc, 0x5e, 0x56, 0x3d, 0xfe, 0xa7,
+ 0x96, 0x3d, 0xfe, 0xb8, 0x75, 0x6f, 0x30, 0x91, 0x5f, 0xb8, 0xee, 0x9f,
+ 0xb5, 0x40, 0x8f, 0xfd, 0xdf, 0xb1, 0xee, 0xcf, 0xfa, 0x0e, 0x42, 0xeb,
+ 0xe5, 0x2f, 0x4d, 0x17, 0xc0, 0x16, 0x3c, 0xd3, 0xf0, 0xea, 0x4d, 0xa8,
+ 0xae, 0x49, 0x18, 0x71, 0x6d, 0xf6, 0x83, 0x76, 0x1c, 0x2f, 0xa8, 0x69,
+ 0x5b, 0x1f, 0x3c, 0x31, 0x6e, 0xa7, 0x24, 0x36, 0x43, 0xf6, 0xaa, 0xbe,
+ 0x76, 0xff, 0xc4, 0xce, 0x39, 0x89, 0xc0, 0xef, 0x5d, 0xeb, 0xe6, 0x85,
+ 0x7b, 0x27, 0x97, 0xe6, 0xff, 0xd4, 0xce, 0xd5, 0xa4, 0xe5, 0xea, 0x2c,
+ 0x50, 0x44, 0xc4, 0xc6, 0x2e, 0x65, 0xab, 0xe9, 0x5e, 0x9c, 0xa2, 0x92,
+ 0x94, 0xc3, 0xaa, 0x72, 0x41, 0x74, 0x4d, 0xe4, 0x46, 0x25, 0x87, 0x4a,
+ 0x95, 0x62, 0xdd, 0x0d, 0x57, 0x34, 0x6f, 0xab, 0x41, 0x3c, 0xff, 0xcc,
+ 0x99, 0x35, 0x82, 0xe1, 0xe8, 0x58, 0x00, 0xa9, 0x19, 0x99, 0x08, 0x7d,
+ 0x79, 0x15, 0xbe, 0xcd, 0x76, 0x05, 0x60, 0x57, 0xab, 0x90, 0xf4, 0x41,
+ 0x92, 0xa9, 0x1c, 0xee, 0x16, 0x18, 0xdb, 0x75, 0x59, 0x29, 0xff, 0x47,
+ 0x1e, 0xec, 0x36, 0xf2, 0xb0, 0xc4, 0x90, 0x8f, 0x26, 0x0e, 0x17, 0xce,
+ 0xf9, 0x2f, 0x91, 0x47, 0xdb, 0x39, 0xdb, 0xd4, 0x18, 0x55, 0x5e, 0x26,
+ 0xe3, 0xf9, 0x5b, 0xbe, 0x64, 0x28, 0x90, 0x65, 0x71, 0xab, 0x9f, 0x9c,
+ 0x7f, 0xfb, 0x1c, 0x0e, 0xbd, 0x61, 0x13, 0x18, 0xea, 0xf4, 0xe8, 0xe0,
+ 0xbc, 0x85, 0x85, 0x5d, 0xd3, 0x2d, 0xbf, 0x48, 0xfb, 0xec, 0x03, 0x60,
+ 0xc1, 0xf4, 0xa5, 0xfe, 0xc2, 0x44, 0xd4, 0x26, 0x7a, 0x9b, 0x7e, 0x61,
+ 0xcf, 0x83, 0xfb, 0x29, 0xa6, 0x0c, 0x66, 0xa9, 0x2e, 0x1c, 0x16, 0xcb,
+ 0xc7, 0xb3, 0xc9, 0xb6, 0xfc, 0xd9, 0xbf, 0xfa, 0xdb, 0x64, 0x3e, 0x78,
+ 0x84, 0x56, 0xe2, 0x4a, 0x02, 0x87, 0x16, 0x51, 0x4a, 0x9b, 0x39, 0xe3,
+ 0xae, 0xb6, 0x63, 0xdd, 0x3d, 0xe5, 0x4e, 0x55, 0xa4, 0xe9, 0x68, 0x80,
+ 0x1f, 0x5a, 0x37, 0x4b, 0xfe, 0x74, 0x12, 0x29, 0xb0, 0x61, 0xd4, 0x4c,
+ 0xfa, 0xc1, 0xf7, 0xdb, 0xbe, 0xa5, 0x7f, 0xad, 0x37, 0x6b, 0x8f, 0x43,
+ 0xaf, 0xdb, 0x9a, 0x93, 0x51, 0x88, 0xac, 0x5c, 0x7b, 0x52, 0xb4, 0x7e,
+ 0x29, 0xdc, 0x8a, 0x0a, 0xbf, 0xfe, 0x8a, 0xe8, 0x2b, 0x2e, 0x67, 0x03,
+ 0x92, 0x43, 0x60, 0xd7, 0xcb, 0xb1, 0x65, 0x67, 0xa5, 0xf3, 0xf1, 0x22,
+ 0x16, 0x00, 0x87, 0xfa, 0x16, 0x3c, 0x8e, 0xb1, 0x58, 0x9d, 0xcd, 0x3c,
+ 0xa9, 0xc7, 0x1c, 0x1f, 0x14, 0x15, 0x34, 0x29, 0x79, 0x2e, 0xb2, 0xac,
+ 0x43, 0x6c, 0x2b, 0x2c, 0xa8, 0x5a, 0xfe, 0x0d, 0xd1, 0x5a, 0xb8, 0x89,
+ 0xe4, 0x91, 0x06, 0x06, 0x45, 0xe9, 0x40, 0x38, 0xa3, 0xfc, 0x6a, 0xbc,
+ 0xfb, 0xe2, 0xf9, 0x2e, 0x4b, 0xbd, 0xab, 0x42, 0xa0, 0xda, 0x0a, 0x6d,
+ 0xe6, 0xe9, 0xe0, 0xc9, 0xf6, 0xd3, 0xc1, 0xd3, 0xc8, 0xd7, 0x27, 0x18,
+ 0x25, 0xad, 0x69, 0xe9, 0xc9, 0x18, 0x90, 0x16, 0x23, 0x3d, 0x72, 0x6f,
+ 0x8f, 0x0f, 0xad, 0x72, 0x32, 0x12, 0xb5, 0xab, 0xd0, 0xac, 0x5a, 0xd9,
+ 0x97, 0x17, 0x4f, 0xca, 0x81, 0xb4, 0x23, 0xdb, 0xb7, 0x2e, 0x8b, 0xcf,
+ 0xb9, 0x47, 0xe8, 0xd6, 0x5c, 0xe7, 0x4c, 0xeb, 0x4a, 0x2c, 0xeb, 0x46,
+ 0x4b, 0x00, 0xb6, 0x44, 0xa3, 0xd6, 0xd7, 0x26, 0x58, 0xb9, 0xc1, 0x07,
+ 0x76, 0xa6, 0x9c, 0x10, 0x6f, 0x6d, 0x0f, 0x9c, 0xb8, 0x70, 0x15, 0xbf,
+ 0x88, 0x61, 0x70, 0x55, 0x63, 0x2d, 0x35, 0x24, 0xaf, 0x58, 0xcc, 0x64,
+ 0x25, 0x9a, 0xce, 0xfc, 0x3d, 0x6b, 0xc3, 0x66, 0x03, 0x48, 0x2f, 0x81,
+ 0xb4, 0x44, 0x81, 0x89, 0x6e, 0xbf, 0x6b, 0x57, 0x85, 0x39, 0x8c, 0x82,
+ 0x2a, 0xca, 0x86, 0x7a, 0xb6, 0xfe, 0xd0, 0x6b, 0x61, 0x1a, 0x44, 0x76,
+ 0x89, 0x5d, 0x87, 0x1d, 0x85, 0x0e, 0x0a, 0x90, 0x38, 0xca, 0x0d, 0x33,
+ 0x3d, 0xb5, 0xe2, 0x4c, 0x92, 0x71, 0x53, 0xc7, 0x72, 0x60, 0x37, 0xf4,
+ 0xfc, 0x38, 0x5e, 0xc4, 0xa3, 0x74, 0x9a, 0x96, 0x69, 0x4b, 0x88, 0xea,
+ 0xaf, 0x28, 0xfb, 0x95, 0xe3, 0x45, 0x7f, 0x9e, 0xb5, 0xd9, 0x08, 0x2f,
+ 0xb9, 0xf4, 0x4f, 0x00, 0xf8, 0xfc, 0xfe, 0xed, 0xd9, 0xd1, 0xf1, 0xe9,
+ 0xc1, 0x0f, 0x16, 0xf9, 0xe1, 0xc2, 0xef, 0x51, 0x3f, 0x39, 0x89, 0x8b,
+ 0xd5, 0xfb, 0x22, 0x29, 0xe9, 0xcb, 0xcd, 0x27, 0x5b, 0x6c, 0x85, 0xaf,
+ 0x5f, 0xb3, 0xac, 0x7e, 0x85, 0xf5, 0x40, 0xd4, 0x60, 0xeb, 0xe7, 0x51,
+ 0x23, 0x93, 0xdd, 0x8a, 0xb3, 0xad, 0xa4, 0xfb, 0xb5, 0x4c, 0xa6, 0xf3,
+ 0xa4, 0xd4, 0xe2, 0x0f, 0xd1, 0xcb, 0xb3, 0xf3, 0xcb, 0x57, 0x77, 0xf1,
+ 0xb4, 0xe1, 0x82, 0x62, 0xc8, 0x2d, 0x79, 0xa6, 0x30, 0x0a, 0x91, 0x37,
+ 0x83, 0x30, 0xde, 0xa1, 0x8b, 0x97, 0xb5, 0x27, 0xdb, 0x00, 0x5b, 0x2e,
+ 0x2f, 0x7f, 0x38, 0x3f, 0x7e, 0xf5, 0x92, 0x55, 0xe6, 0xcf, 0x59, 0xd1,
+ 0x57, 0x53, 0x09, 0x34, 0x68, 0x5e, 0xe7, 0xd5, 0xa2, 0x79, 0x7d, 0x7f,
+ 0x7f, 0x74, 0x32, 0x3c, 0x3f, 0x3d, 0x3b, 0x7c, 0xf5, 0xf2, 0x7b, 0x36,
+ 0xb0, 0x72, 0x51, 0x99, 0xe0, 0x5d, 0xf7, 0x99, 0x8b, 0x05, 0x6c, 0xa2,
+ 0x61, 0x1f, 0x7f, 0xf7, 0xfe, 0xf8, 0xed, 0xb7, 0xaf, 0x5e, 0xde, 0xc5,
+ 0x79, 0x8f, 0xe7, 0x27, 0x6f, 0x73, 0x52, 0x7f, 0x4b, 0xed, 0x91, 0xca,
+ 0x5e, 0x72, 0xfe, 0xcd, 0x68, 0x7a, 0x2b, 0x75, 0xa8, 0x50, 0xfc, 0xa9,
+ 0x11, 0x84, 0x73, 0x89, 0x5c, 0x05, 0x36, 0x5a, 0xf0, 0x6f, 0xd1, 0x97,
+ 0xa7, 0xdf, 0xb0, 0x8b, 0xd7, 0xdd, 0xcd, 0x88, 0xf4, 0x26, 0x32, 0xf9,
+ 0xfc, 0xd9, 0xee, 0xde, 0x56, 0x50, 0x56, 0x86, 0x03, 0x45, 0x68, 0xc4,
+ 0xb7, 0x0d, 0xa3, 0xc9, 0xcf, 0x86, 0xba, 0xec, 0x01, 0xdf, 0x61, 0xce,
+ 0x92, 0x5c, 0x1f, 0x01, 0x57, 0xcf, 0xe3, 0x39, 0x17, 0x13, 0x45, 0x98,
+ 0x1e, 0x47, 0x27, 0x95, 0x40, 0xd1, 0xe1, 0x20, 0x8e, 0x46, 0x2e, 0xfa,
+ 0xa5, 0x8f, 0xe8, 0x1e, 0xb0, 0x31, 0xdb, 0x6e, 0x68, 0x1a, 0x8e, 0xc6,
+ 0x7e, 0xb4, 0x13, 0xf2, 0xaf, 0x7d, 0x30, 0xda, 0x81, 0x20, 0x42, 0x68,
+ 0xb7, 0x4b, 0xae, 0x50, 0xb0, 0x60, 0xf7, 0xfd, 0x23, 0x71, 0x5f, 0x58,
+ 0x3f, 0x8f, 0xf5, 0x5d, 0x65, 0x56, 0x81, 0x0f, 0x56, 0xc9, 0xd4, 0xa1,
+ 0x0e, 0xbe, 0xbb, 0x38, 0x5d, 0xc3, 0xbe, 0x72, 0x2d, 0xab, 0x15, 0xe0,
+ 0x1f, 0x6a, 0x1c, 0x88, 0x6f, 0x18, 0x58, 0x83, 0x87, 0x6e, 0x3f, 0x62,
+ 0xab, 0x41, 0xff, 0x88, 0x13, 0x58, 0x32, 0x4f, 0x11, 0xd0, 0xe2, 0x6a,
+ 0x4f, 0x81, 0x16, 0x04, 0x79, 0x9a, 0xa6, 0x90, 0x22, 0x11, 0x7d, 0xdb,
+ 0x18, 0x02, 0xaf, 0xdf, 0xc6, 0x9a, 0x60, 0xd0, 0x48, 0xdc, 0x30, 0x8a,
+ 0xa7, 0x94, 0x09, 0xfa, 0x3a, 0xc6, 0x63, 0x99, 0xb8, 0xd5, 0x59, 0x28,
+ 0x1a, 0xd3, 0x46, 0x0b, 0x9c, 0xa7, 0x10, 0xd4, 0x0d, 0xc7, 0xe8, 0x95,
+ 0xae, 0x2a, 0x3d, 0xf6, 0xae, 0x1a, 0x85, 0x69, 0x44, 0x1a, 0x78, 0xc5,
+ 0xeb, 0x82, 0x84, 0xc6, 0xda, 0xf9, 0xc4, 0x2c, 0x31, 0x3a, 0xb3, 0x96,
+ 0xc1, 0x21, 0xfd, 0xd3, 0x55, 0x10, 0xba, 0x23, 0x1b, 0x1b, 0xa4, 0x45,
+ 0x34, 0xcc, 0xd6, 0x6c, 0x32, 0x1a, 0x38, 0x7a, 0x33, 0x42, 0x83, 0x94,
+ 0xc0, 0xfe, 0xab, 0xcd, 0xe1, 0x96, 0x92, 0xb1, 0x90, 0xdb, 0xf9, 0x3b,
+ 0x9f, 0xe8, 0xd6, 0x56, 0x81, 0x6d, 0x1d, 0x01, 0x3a, 0x75, 0xdb, 0x2f,
+ 0x54, 0xa7, 0xdf, 0x61, 0x20, 0x4f, 0xb5, 0x57, 0x02, 0xc6, 0xd3, 0x8e,
+ 0x1b, 0xdd, 0x52, 0x5c, 0x2a, 0xc9, 0x27, 0xd2, 0xc5, 0xad, 0x58, 0x94,
+ 0x12, 0x73, 0x1e, 0x1d, 0xa8, 0x4f, 0x3a, 0x41, 0x0d, 0xeb, 0x6a, 0x1f,
+ 0x83, 0x4e, 0x54, 0x41, 0x0b, 0x15, 0xfb, 0xe9, 0x56, 0x03, 0x57, 0x77,
+ 0x85, 0xa1, 0x87, 0xb6, 0x80, 0x30, 0x27, 0x9c, 0x87, 0x5a, 0x1b, 0x1a,
+ 0x82, 0x8c, 0xc0, 0x4a, 0x9a, 0x98, 0x08, 0x90, 0x1b, 0x90, 0x8e, 0x2e,
+ 0x85, 0x8b, 0x38, 0xdd, 0x0b, 0xae, 0x2c, 0x17, 0xc6, 0xa7, 0x15, 0x23,
+ 0xc4, 0x2e, 0xac, 0x6d, 0x42, 0x08, 0x6b, 0xc3, 0xde, 0x91, 0x4d, 0x6c,
+ 0x59, 0x54, 0xab, 0x64, 0x6a, 0x79, 0x37, 0xcc, 0x06, 0xfa, 0x97, 0x1e,
+ 0x88, 0x92, 0x61, 0x24, 0x5b, 0x12, 0xd6, 0x14, 0xdc, 0xbc, 0x7f, 0xd9,
+ 0x80, 0xf5, 0xe2, 0x17, 0x38, 0x7c, 0x21, 0x08, 0x27, 0x43, 0x08, 0x27,
+ 0xcf, 0x5d, 0x28, 0x49, 0x83, 0x7f, 0x21, 0xf5, 0x0e, 0x84, 0xb4, 0xe1,
+ 0x27, 0x59, 0x5b, 0x56, 0xa5, 0x73, 0x3d, 0xcd, 0x46, 0x23, 0x9a, 0x54,
+ 0xc7, 0x24, 0x52, 0x1a, 0x61, 0x9c, 0x5f, 0x43, 0x49, 0xeb, 0x19, 0xe6,
+ 0x9b, 0x3f, 0xac, 0x80, 0x0c, 0x46, 0x5f, 0xeb, 0xb2, 0x5d, 0xb4, 0x96,
+ 0x5e, 0xe6, 0x31, 0xe0, 0x01, 0xe6, 0x1b, 0xd6, 0x65, 0x15, 0xaf, 0x3c,
+ 0x3e, 0x8f, 0xac, 0xff, 0x3a, 0xc7, 0x2f, 0x57, 0x1c, 0x2f, 0xec, 0xae,
+ 0x4f, 0x65, 0x3e, 0x60, 0x39, 0x8a, 0xe3, 0x9a, 0xb6, 0x24, 0x9c, 0xf0,
+ 0x84, 0x69, 0x02, 0x9d, 0xbf, 0xf3, 0x28, 0x76, 0x7b, 0xfc, 0xef, 0xde,
+ 0x3f, 0x3a, 0x86, 0xd6, 0xcb, 0x78, 0xe9, 0x32, 0xf8, 0x92, 0x11, 0x52,
+ 0x0b, 0x83, 0x08, 0x6e, 0x41, 0x04, 0xe6, 0x90, 0x8d, 0xb5, 0xad, 0xa7,
+ 0xb3, 0xeb, 0x1f, 0x77, 0xfb, 0xbb, 0x3b, 0x3b, 0x3b, 0x3f, 0x0d, 0x16,
+ 0xbc, 0x74, 0x57, 0x68, 0x9e, 0xfe, 0x1d, 0x2c, 0xd2, 0x31, 0x87, 0x7d,
+ 0xd1, 0x66, 0xa6, 0x31, 0x37, 0xbd, 0x2d, 0xfd, 0x6d, 0x87, 0xd7, 0x67,
+ 0xce, 0x09, 0x6c, 0xad, 0x7c, 0xdc, 0x81, 0xb2, 0xd3, 0x91, 0xb8, 0x5a,
+ 0x6a, 0x01, 0x07, 0x96, 0xbb, 0x27, 0x4b, 0x89, 0xc8, 0x91, 0x88, 0x25,
+ 0x75, 0x13, 0xf3, 0x66, 0x13, 0xa9, 0x4a, 0x41, 0x3c, 0xbe, 0xf1, 0x7a,
+ 0xad, 0xd5, 0xbb, 0xf1, 0x6d, 0x22, 0xc8, 0x56, 0x1c, 0x17, 0x12, 0x54,
+ 0x30, 0xea, 0xb9, 0xe4, 0x18, 0x1c, 0x58, 0xa5, 0x7b, 0x39, 0xb7, 0x4d,
+ 0xb0, 0x6d, 0x3e, 0x66, 0x24, 0x7d, 0xf2, 0xd7, 0xc6, 0xe5, 0x5c, 0xcd,
+ 0x14, 0xab, 0xe0, 0x92, 0x48, 0x70, 0x46, 0x1d, 0xbd, 0xb7, 0x4d, 0x41,
+ 0xf7, 0xa6, 0x8e, 0xd0, 0xcc, 0x81, 0x84, 0x96, 0xfe, 0x9d, 0xc0, 0x7a,
+ 0x8f, 0xb2, 0x02, 0xde, 0x7a, 0x5d, 0xb4, 0x86, 0xf2, 0x53, 0x8c, 0xd3,
+ 0xf4, 0x37, 0x95, 0x5a, 0xd1, 0x2b, 0xba, 0x79, 0x7c, 0xc3, 0x62, 0xd9,
+ 0x2e, 0xd9, 0xad, 0x70, 0xb3, 0xfc, 0x6e, 0x89, 0xb9, 0xc3, 0xed, 0xd7,
+ 0xff, 0x41, 0x1b, 0xc6, 0x15, 0x3e, 0x1b, 0x15, 0xcf, 0x30, 0x55, 0x51,
+ 0x14, 0xa7, 0x49, 0xcc, 0x81, 0xf5, 0x66, 0xa6, 0xb9, 0x49, 0x1e, 0x44,
+ 0x60, 0x68, 0x42, 0x65, 0x88, 0x4f, 0x97, 0xbd, 0x26, 0xaa, 0xf7, 0x1d,
+ 0x0c, 0x0f, 0x4f, 0x4e, 0x2a, 0x0a, 0x31, 0x2f, 0xde, 0x80, 0xa3, 0x83,
+ 0xc4, 0xcd, 0x52, 0x70, 0x90, 0x14, 0x3b, 0x79, 0x30, 0xdc, 0x86, 0x9c,
+ 0xc2, 0x61, 0x99, 0x48, 0xa1, 0x66, 0x14, 0xfe, 0xb8, 0x48, 0x2d, 0x0e,
+ 0x36, 0x96, 0xfc, 0xc7, 0xe5, 0x9c, 0x25, 0x0a, 0x0e, 0x8c, 0xb9, 0x59,
+ 0xd2, 0x91, 0x2c, 0x3e, 0xd2, 0xf4, 0xf6, 0xb1, 0xf4, 0xf8, 0xdb, 0x93,
+ 0x5e, 0x4b, 0xc0, 0xdf, 0x79, 0xae, 0x71, 0x95, 0x12, 0xfa, 0x12, 0x49,
+ 0xb4, 0x1e, 0x63, 0xf7, 0xf3, 0xad, 0x21, 0x14, 0x98, 0xa1, 0xa0, 0x16,
+ 0x46, 0x8b, 0x2b, 0xc5, 0x40, 0xe4, 0x5a, 0xd0, 0xa6, 0x54, 0x4f, 0x28,
+ 0xea, 0xb5, 0x23, 0x9e, 0x56, 0xa4, 0x50, 0xab, 0x93, 0x15, 0xbd, 0xe4,
+ 0x7f, 0xf7, 0xad, 0x48, 0xd5, 0xba, 0xf2, 0xb3, 0x2e, 0x1b, 0xab, 0x59,
+ 0xd6, 0x2a, 0x04, 0xb7, 0x96, 0xeb, 0xf6, 0xf1, 0x82, 0x06, 0x83, 0xe8,
+ 0xcc, 0xed, 0x8b, 0x2f, 0x8c, 0x89, 0x36, 0xeb, 0x55, 0xfa, 0xd6, 0x15,
+ 0x37, 0x40, 0x0a, 0xee, 0x75, 0xaa, 0x84, 0xef, 0xc7, 0xb5, 0x69, 0xc6,
+ 0x45, 0xb6, 0x47, 0xe6, 0xa2, 0x3d, 0xd3, 0x4d, 0x3c, 0xcd, 0xe6, 0x5b,
+ 0xad, 0x4b, 0x85, 0xad, 0x22, 0x41, 0x93, 0xe3, 0x28, 0xc5, 0x7a, 0xe7,
+ 0x0a, 0x63, 0xb6, 0xc5, 0x01, 0x20, 0xf8, 0x05, 0x72, 0x2d, 0x97, 0xb5,
+ 0x39, 0x3f, 0xe9, 0x6b, 0x28, 0xb0, 0x56, 0x9f, 0x90, 0x8c, 0x4f, 0x29,
+ 0xee, 0x50, 0xc7, 0x76, 0x6a, 0x5b, 0x08, 0x1f, 0x99, 0x28, 0xc8, 0xe9,
+ 0x15, 0xf8, 0xb7, 0xe5, 0xa2, 0x36, 0x37, 0x0d, 0x3d, 0xd4, 0xf1, 0xd5,
+ 0x85, 0x4a, 0x24, 0xff, 0x0b, 0xce, 0x4b, 0xa8, 0xec, 0x8d, 0xb4, 0x12,
+ 0xa4, 0x4b, 0x15, 0x56, 0x8b, 0x82, 0x5c, 0xe3, 0x58, 0x99, 0x36, 0x68,
+ 0xaf, 0x80, 0xe4, 0xf7, 0x89, 0xe7, 0x2c, 0xa3, 0xfd, 0xce, 0x6f, 0x78,
+ 0x32, 0xde, 0x99, 0x05, 0xfc, 0xd7, 0x27, 0xc8, 0x46, 0xa1, 0x8b, 0x56,
+ 0x82, 0xfc, 0xff, 0xf7, 0xda, 0xef, 0xf5, 0xbb, 0xdf, 0x76, 0xaf, 0xfb,
+ 0x3c, 0xef, 0x97, 0x24, 0xf4, 0xad, 0xdb, 0xd7, 0x18, 0x42, 0xa4, 0x15,
+ 0xba, 0x68, 0x40, 0x16, 0x43, 0xed, 0xe2, 0x2b, 0xe7, 0x86, 0x96, 0xc8,
+ 0xc5, 0x41, 0x35, 0x11, 0x62, 0x2c, 0xa6, 0xd4, 0x24, 0x75, 0x6a, 0x94,
+ 0x03, 0x7d, 0x91, 0x94, 0x13, 0xc0, 0x37, 0x7c, 0xa0, 0x9a, 0x89, 0xa9,
+ 0x29, 0xe2, 0xf0, 0xaa, 0x24, 0xd9, 0x4b, 0x0a, 0x38, 0x87, 0x85, 0x18,
+ 0x88, 0x0a, 0x44, 0xf4, 0xb6, 0xc5, 0xe5, 0x09, 0x71, 0x92, 0x87, 0x18,
+ 0x05, 0x7b, 0x2e, 0x48, 0x29, 0x2c, 0x20, 0xa2, 0x21, 0xb7, 0x1f, 0xa8,
+ 0x89, 0xa0, 0x26, 0xa7, 0x60, 0x3d, 0x83, 0x6b, 0xac, 0xbd, 0xb4, 0xb0,
+ 0x18, 0x2e, 0x79, 0x2d, 0x21, 0xa3, 0x00, 0x81, 0xd8, 0xae, 0x92, 0xed,
+ 0x32, 0x9e, 0xde, 0x22, 0xb4, 0x78, 0x10, 0xbd, 0x91, 0x75, 0xf5, 0x85,
+ 0x9f, 0x1b, 0xf1, 0x1f, 0xa3, 0xe5, 0xf5, 0x35, 0x10, 0x56, 0x0f, 0xe4,
+ 0x06, 0x2a, 0x0c, 0x24, 0x05, 0x86, 0xc9, 0xee, 0xe7, 0x5d, 0x0d, 0xe4,
+ 0xec, 0xdc, 0xd0, 0x65, 0x4d, 0x8b, 0xc4, 0xe2, 0x50, 0x47, 0xeb, 0xc1,
+ 0x37, 0x32, 0x1d, 0x99, 0xfe, 0x7b, 0x51, 0xf7, 0x65, 0xfb, 0x4b, 0xa4,
+ 0xa0, 0x27, 0xe9, 0x9d, 0xd6, 0x02, 0x72, 0xea, 0x3f, 0xad, 0xe1, 0x4d,
+ 0x4a, 0x17, 0xda, 0xbc, 0x19, 0xbc, 0xa5, 0xc5, 0x05, 0xe1, 0x21, 0x90,
+ 0xa0, 0xf6, 0xb8, 0x75, 0x90, 0x7f, 0xb4, 0xfe, 0x0c, 0x36, 0x19, 0x69,
+ 0xc0, 0x57, 0x59, 0x03, 0x60, 0x42, 0x53, 0x00, 0xb5, 0xff, 0x47, 0x0b,
+ 0xcf, 0xa5, 0xc6, 0x2d, 0x44, 0x16, 0x02, 0xe5, 0x29, 0xe6, 0x98, 0x4c,
+ 0xaa, 0xf0, 0x45, 0x56, 0x54, 0xea, 0xa9, 0x4b, 0x89, 0xfd, 0x94, 0xb6,
+ 0x51, 0x44, 0xc5, 0xc4, 0x8b, 0x3f, 0x1e, 0x32, 0xd5, 0x2c, 0xc2, 0x5c,
+ 0x22, 0x57, 0x8b, 0xaa, 0xac, 0xbb, 0x1a, 0xcd, 0xe4, 0xe1, 0x4f, 0x4d,
+ 0x51, 0xa2, 0xda, 0xa0, 0x56, 0x3e, 0xc6, 0xad, 0xc9, 0x0f, 0x5a, 0xd5,
+ 0x4a, 0xb5, 0xaa, 0xf6, 0x9a, 0x48, 0x2a, 0x12, 0x99, 0x6e, 0x50, 0x3a,
+ 0x4e, 0x0e, 0xa9, 0x0a, 0xd1, 0x66, 0x33, 0xff, 0x67, 0xe5, 0xb0, 0x4a,
+ 0x63, 0x8f, 0x08, 0x62, 0x00, 0x38, 0x1c, 0xba, 0x20, 0x23, 0xc1, 0x55,
+ 0xb7, 0xb0, 0x3f, 0xc4, 0x15, 0x05, 0xa7, 0x22, 0xa8, 0x21, 0xd4, 0xac,
+ 0x56, 0x08, 0xe1, 0xa8, 0x52, 0xf5, 0x55, 0x0c, 0xca, 0xa2, 0x5b, 0x8b,
+ 0xbd, 0xcb, 0x65, 0x59, 0x18, 0xa2, 0x7b, 0x0a, 0x83, 0x56, 0x31, 0x68,
+ 0xab, 0xf8, 0xa1, 0x41, 0x76, 0x22, 0x96, 0xe9, 0x2e, 0x6a, 0x62, 0x1b,
+ 0xab, 0x10, 0xd6, 0x04, 0x27, 0xa0, 0x80, 0xea, 0x5d, 0x06, 0x47, 0x53,
+ 0x9a, 0x46, 0x31, 0xb3, 0x27, 0xf9, 0x04, 0x02, 0xf4, 0x4a, 0x0b, 0x28,
+ 0xa5, 0xa8, 0x5c, 0x33, 0xbf, 0xb5, 0xa0, 0x25, 0xc9, 0xb9, 0x49, 0xc6,
+ 0xcb, 0xb2, 0x6a, 0xc7, 0x0d, 0xc6, 0xa4, 0x31, 0xc9, 0x18, 0xd2, 0x26,
+ 0xce, 0x80, 0x02, 0x90, 0x76, 0x1c, 0x4c, 0xfa, 0x7e, 0x67, 0xcb, 0xe4,
+ 0x76, 0xa8, 0x35, 0xeb, 0x90, 0xb9, 0x41, 0xe4, 0x36, 0x64, 0x92, 0x54,
+ 0x61, 0x64, 0x40, 0xc1, 0x3d, 0xa9, 0xe1, 0xd4, 0xd6, 0x3d, 0x91, 0x5f,
+ 0xde, 0xda, 0xfb, 0x6b, 0xc9, 0xa1, 0x0a, 0x3a, 0x77, 0x49, 0x06, 0x9a,
+ 0x5e, 0x55, 0xac, 0x01, 0x67, 0x09, 0x7a, 0xce, 0x38, 0xe4, 0x3f, 0x04,
+ 0x4f, 0xb7, 0x57, 0x6d, 0xf1, 0xf7, 0x9b, 0x08, 0x60, 0x77, 0xcf, 0x03,
+ 0xf3, 0x0d, 0x33, 0x60, 0x7c, 0xa4, 0xcb, 0x99, 0x36, 0xd5, 0x88, 0xdb,
+ 0x7c, 0xf4, 0x94, 0x7e, 0x7c, 0xc3, 0x3f, 0xac, 0xf4, 0x39, 0xe3, 0xc5,
+ 0x99, 0xf9, 0xa2, 0x09, 0xfe, 0xc1, 0xe5, 0x11, 0xe5, 0xdc, 0x0f, 0x41,
+ 0x45, 0xaf, 0xf1, 0x4b, 0x9e, 0x3c, 0xf2, 0x0e, 0xcd, 0xed, 0x67, 0x76,
+ 0x20, 0x2e, 0xcb, 0x8c, 0x29, 0x71, 0x8c, 0x64, 0xa5, 0x19, 0xa3, 0x0b,
+ 0x3b, 0x82, 0xd1, 0x3f, 0xd5, 0x43, 0x55, 0xe0, 0x28, 0x29, 0x73, 0x49,
+ 0xd7, 0xc0, 0x99, 0xad, 0xef, 0x4f, 0x8a, 0xbf, 0xb5, 0xc2, 0x8e, 0x3e,
+ 0x3a, 0xb7, 0xc7, 0x4a, 0x48, 0x37, 0x70, 0x53, 0x6b, 0x0d, 0xf3, 0x52,
+ 0xd0, 0x62, 0x3e, 0xfb, 0xb8, 0x55, 0x3c, 0xe2, 0x5b, 0xc6, 0x6e, 0x61,
+ 0x87, 0xc7, 0xa7, 0x85, 0x8b, 0x45, 0xf2, 0xf2, 0x85, 0x8b, 0xf1, 0xb0,
+ 0x4a, 0x08, 0x8a, 0x20, 0xde, 0x3e, 0x38, 0x5c, 0x7a, 0x88, 0xe7, 0x03,
+ 0x73, 0xb9, 0x35, 0x53, 0xcb, 0x8c, 0x2e, 0xda, 0x7c, 0xe5, 0xaf, 0xb6,
+ 0x88, 0xae, 0xc9, 0x81, 0x20, 0xb2, 0xa3, 0xf3, 0x35, 0x49, 0xec, 0x13,
+ 0x12, 0x7b, 0xa6, 0x6c, 0xe1, 0x95, 0xf4, 0xbb, 0xdf, 0x35, 0x8a, 0xb1,
+ 0x17, 0xab, 0xf9, 0xf8, 0xe6, 0xe8, 0xed, 0x70, 0x5d, 0x22, 0x7b, 0x5a,
+ 0xb8, 0x68, 0x65, 0x0e, 0x2f, 0xe1, 0xa7, 0x49, 0x88, 0x63, 0xb6, 0x08,
+ 0xe9, 0x4f, 0xa3, 0x59, 0x5a, 0x00, 0x66, 0xce, 0xdf, 0x1e, 0x7f, 0x75,
+ 0x66, 0x3f, 0xd6, 0x2e, 0xf9, 0xa3, 0x2b, 0x7c, 0xca, 0x49, 0xea, 0x8f,
+ 0xe5, 0xfb, 0xdb, 0xe0, 0x5c, 0x9d, 0x35, 0xef, 0x85, 0x20, 0x82, 0x9c,
+ 0xf2, 0xeb, 0x42, 0x8b, 0x3d, 0x25, 0x49, 0x7c, 0x94, 0xaf, 0x43, 0x32,
+ 0xa0, 0xe3, 0xb6, 0xf7, 0xd5, 0x97, 0xcd, 0xdb, 0xea, 0xe8, 0xed, 0x9a,
+ 0xee, 0xf8, 0x9b, 0xbe, 0x25, 0xf1, 0xe9, 0x15, 0xad, 0xc5, 0x1d, 0x91,
+ 0x95, 0xd3, 0x72, 0xf2, 0xce, 0x4f, 0xec, 0x47, 0x65, 0xea, 0x76, 0x25,
+ 0xf2, 0x71, 0x17, 0x9a, 0x17, 0x8c, 0x12, 0xc0, 0xf3, 0x4c, 0x63, 0xba,
+ 0x26, 0xa3, 0x96, 0x4a, 0xd1, 0x81, 0xd5, 0xdf, 0xa1, 0x3b, 0x8a, 0x37,
+ 0xc4, 0xaf, 0xb2, 0x82, 0x8b, 0x5a, 0x51, 0x3a, 0xe4, 0x1f, 0x41, 0x7a,
+ 0x6f, 0xb2, 0x74, 0xe7, 0xc4, 0xac, 0xeb, 0x95, 0xfd, 0x7b, 0xba, 0xa4,
+ 0xe0, 0x98, 0x66, 0x19, 0x30, 0x7a, 0x29, 0xd7, 0xd1, 0xe7, 0x8d, 0x03,
+ 0x21, 0xa8, 0x47, 0x66, 0x15, 0x36, 0x27, 0x20, 0xee, 0x75, 0x36, 0xf0,
+ 0x38, 0xdc, 0x2c, 0x66, 0x15, 0xd3, 0x04, 0xf5, 0x04, 0x79, 0x9a, 0x82,
+ 0xa2, 0xd5, 0x08, 0x16, 0x25, 0xd9, 0xce, 0x3b, 0x27, 0x2c, 0xcc, 0x40,
+ 0xba, 0x8e, 0xb4, 0xcc, 0x67, 0x99, 0x3b, 0xfb, 0x30, 0xcb, 0xbf, 0x8a,
+ 0x2e, 0x20, 0xce, 0xee, 0x46, 0x70, 0xc1, 0x03, 0x9b, 0x6b, 0x1e, 0xec,
+ 0x66, 0xaa, 0x8a, 0xc8, 0xae, 0xee, 0x9a, 0xa4, 0xa2, 0x69, 0xc3, 0x41,
+ 0xa2, 0x7c, 0x6b, 0x4c, 0x25, 0xa2, 0xa0, 0x3a, 0xf2, 0x70, 0x07, 0xd6,
+ 0x31, 0xce, 0x33, 0x14, 0x03, 0x90, 0xe4, 0xec, 0x23, 0xb9, 0x7f, 0xbc,
+ 0x64, 0xc3, 0x15, 0x1c, 0x0f, 0x28, 0xd1, 0xd8, 0xda, 0xdc, 0x8a, 0xef,
+ 0xed, 0xce, 0x17, 0x66, 0x2e, 0xeb, 0x98, 0x35, 0xdd, 0x83, 0xf0, 0x69,
+ 0x65, 0x9a, 0xd8, 0x82, 0xcb, 0x6d, 0x29, 0x5a, 0x7c, 0x8c, 0xe2, 0x34,
+ 0x40, 0xc2, 0x1a, 0x4a, 0x93, 0x75, 0xbe, 0xe8, 0x77, 0x5a, 0x6f, 0xbf,
+ 0xa0, 0xe0, 0x5c, 0xa4, 0x50, 0xf1, 0x66, 0xed, 0x36, 0xf3, 0x9e, 0xf4,
+ 0x62, 0x3a, 0x12, 0x97, 0x94, 0x28, 0xd3, 0x72, 0x59, 0x36, 0xc2, 0x12,
+ 0x15, 0xa5, 0x02, 0x1e, 0x59, 0xe8, 0x08, 0xbc, 0xe0, 0xde, 0x6b, 0x0a,
+ 0x61, 0x8f, 0xcd, 0x81, 0x25, 0x22, 0x0b, 0xd5, 0xc6, 0x38, 0x02, 0x22,
+ 0x08, 0x43, 0x5d, 0xd5, 0xc5, 0x95, 0x03, 0xbe, 0xe8, 0xfd, 0xe8, 0x70,
+ 0x3b, 0x79, 0xc4, 0xd1, 0x22, 0xfa, 0xfd, 0xdf, 0xed, 0x4b, 0xc0, 0xb2,
+ 0xfc, 0xc3, 0xd6, 0xcb, 0x8a, 0xc1, 0xb5, 0x4b, 0xdd, 0xbf, 0xf7, 0x36,
+ 0x19, 0x59, 0x19, 0x64, 0xca, 0x72, 0x73, 0xbf, 0x77, 0x55, 0x72, 0x5d,
+ 0x13, 0xd1, 0x3c, 0xb9, 0x17, 0x49, 0xa9, 0xa1, 0x13, 0x88, 0xa4, 0xf9,
+ 0x17, 0xae, 0x0a, 0x4d, 0xaf, 0x90, 0xc4, 0xc8, 0x8e, 0x7f, 0x49, 0x84,
+ 0x13, 0xf2, 0xfa, 0x4b, 0xae, 0xa2, 0x3d, 0x09, 0x3e, 0x34, 0x70, 0x96,
+ 0x47, 0xe5, 0xf3, 0xa6, 0x14, 0xc2, 0x0e, 0xc9, 0x7d, 0xec, 0xc6, 0xef,
+ 0xfb, 0x02, 0xb9, 0xa3, 0xd4, 0xcd, 0xd3, 0xa5, 0x31, 0xdb, 0x67, 0x56,
+ 0x88, 0x78, 0xfe, 0x64, 0xaf, 0x1f, 0x28, 0xd3, 0xbd, 0x46, 0x5d, 0x4f,
+ 0xf6, 0x3c, 0xb2, 0x9c, 0x14, 0xd4, 0x8a, 0x64, 0x1a, 0xff, 0x7d, 0xa4,
+ 0xd5, 0xbf, 0xd8, 0x99, 0x25, 0x49, 0x5d, 0x13, 0xd3, 0x4a, 0x83, 0xe2,
+ 0xf5, 0xad, 0x7a, 0x5c, 0x2b, 0xf1, 0x04, 0xbb, 0xe3, 0xe4, 0x1b, 0x83,
+ 0x09, 0x90, 0x10, 0x91, 0xb6, 0x78, 0x03, 0x04, 0x52, 0x58, 0x81, 0x5d,
+ 0x69, 0x08, 0x6a, 0x34, 0xbc, 0x95, 0x6c, 0x30, 0x96, 0x9a, 0x8b, 0x50,
+ 0xcf, 0xbd, 0x73, 0x1e, 0x2e, 0x4c, 0xd6, 0x87, 0xfa, 0x8f, 0x17, 0xea,
+ 0xd0, 0x1a, 0x41, 0x92, 0xae, 0xd9, 0x85, 0x57, 0x76, 0x3a, 0x09, 0xce,
+ 0x8f, 0xd4, 0x5e, 0x8a, 0x5c, 0x64, 0xc2, 0xfe, 0xe3, 0xcd, 0xa9, 0x56,
+ 0xd4, 0x98, 0x3e, 0xfb, 0x74, 0xde, 0x23, 0x9d, 0xcf, 0xad, 0x06, 0x31,
+ 0x93, 0x24, 0x67, 0xc8, 0xb8, 0x5a, 0xbe, 0x9f, 0x9f, 0x18, 0x57, 0x22,
+ 0xd0, 0x6d, 0x7c, 0xbc, 0x57, 0x58, 0x26, 0xb4, 0x5e, 0x10, 0xad, 0x84,
+ 0xf9, 0x5a, 0x91, 0x97, 0x40, 0x72, 0x09, 0xd2, 0x80, 0xed, 0xaa, 0x6b,
+ 0x83, 0xfc, 0x8d, 0x1a, 0xe9, 0x42, 0x9f, 0x71, 0xe9, 0x2a, 0x24, 0x43,
+ 0x4c, 0xd3, 0xd8, 0xa3, 0x18, 0xc8, 0x14, 0x78, 0x70, 0x31, 0xac, 0xaf,
+ 0x2c, 0x2b, 0x93, 0xa8, 0xfb, 0x78, 0x73, 0x0e, 0xcf, 0x95, 0xf5, 0x92,
+ 0x75, 0x2b, 0x23, 0x00, 0xbd, 0xf5, 0x95, 0xa9, 0x2e, 0x88, 0xae, 0x88,
+ 0xd7, 0x38, 0x5b, 0xfc, 0xed, 0xd1, 0x9a, 0x54, 0xca, 0x28, 0xda, 0x34,
+ 0x14, 0x51, 0xb1, 0x9c, 0x6d, 0x29, 0xc8, 0xb7, 0xdd, 0x83, 0x0a, 0x9e,
+ 0xfd, 0xa1, 0xe6, 0x90, 0x07, 0xd3, 0x48, 0x51, 0x79, 0xda, 0x88, 0xee,
+ 0x64, 0x1b, 0xca, 0x7b, 0x49, 0xf2, 0x73, 0x9a, 0x83, 0x4b, 0xf9, 0x43,
+ 0xa1, 0x12, 0xcd, 0x7e, 0xea, 0x79, 0x24, 0x6e, 0x71, 0xa2, 0xe1, 0x0a,
+ 0xfb, 0x00, 0xd5, 0x42, 0x16, 0xe2, 0xd9, 0x27, 0x8a, 0x04, 0x06, 0xe3,
+ 0xba, 0xcb, 0x70, 0x92, 0x8b, 0xd4, 0x6e, 0xae, 0x59, 0x3a, 0xfd, 0x40,
+ 0x73, 0xd3, 0x54, 0x95, 0x2a, 0x88, 0x67, 0xcb, 0xd6, 0x03, 0x8c, 0x09,
+ 0x31, 0xe7, 0x64, 0x45, 0x7d, 0xf9, 0x81, 0xd2, 0x3a, 0x36, 0xa4, 0xea,
+ 0x44, 0x11, 0xa7, 0x5e, 0xd2, 0xeb, 0x66, 0xe8, 0x13, 0xf7, 0x6a, 0x19,
+ 0xe7, 0x1f, 0xd8, 0x45, 0xc9, 0x14, 0x45, 0x54, 0xad, 0x17, 0x22, 0x61,
+ 0xf9, 0x40, 0xf5, 0x16, 0x15, 0x0e, 0xda, 0x87, 0x5c, 0x25, 0x2d, 0xcb,
+ 0x5a, 0xd2, 0x70, 0xc3, 0xfa, 0xb8, 0x5c, 0x4d, 0xa7, 0x5f, 0x34, 0x28,
+ 0x06, 0xba, 0x75, 0xdd, 0x38, 0xf0, 0x32, 0x0b, 0x5b, 0x91, 0x90, 0xed,
+ 0xcd, 0x2c, 0x7f, 0xbc, 0x39, 0x25, 0xca, 0x8f, 0x98, 0x51, 0xbc, 0x58,
+ 0x68, 0x6f, 0x1f, 0xde, 0x84, 0xdf, 0x64, 0xbe, 0x5a, 0xa2, 0x91, 0x53,
+ 0xf9, 0x23, 0x9b, 0xf8, 0x36, 0x1b, 0x2d, 0x8b, 0x1b, 0x41, 0x56, 0xc8,
+ 0xa2, 0x0f, 0xf3, 0xac, 0xa0, 0xf8, 0x44, 0x6d, 0xd2, 0x8f, 0xd4, 0x8e,
+ 0x0c, 0x97, 0x81, 0x71, 0x25, 0x95, 0xa7, 0xfd, 0x0f, 0xad, 0x83, 0x44,
+ 0x29, 0x59, 0xfe, 0x21, 0x4f, 0x02, 0x82, 0x82, 0x4b, 0xba, 0xa6, 0xb3,
+ 0x48, 0xaa, 0xd7, 0xe0, 0x43, 0xa3, 0x4b, 0x0b, 0x6f, 0x59, 0x89, 0xe1,
+ 0xb4, 0x49, 0xfa, 0x75, 0xa0, 0x55, 0x01, 0xed, 0xe0, 0xf0, 0xd1, 0x0f,
+ 0x72, 0x86, 0x58, 0x83, 0xfc, 0x50, 0xdc, 0x21, 0x0f, 0xa0, 0x0e, 0xd4,
+ 0x19, 0x1b, 0x88, 0x98, 0x2d, 0x31, 0xb5, 0xf5, 0xe6, 0xd8, 0x6c, 0x22,
+ 0xd6, 0xe5, 0x3b, 0x00, 0x3f, 0xb4, 0x93, 0xa4, 0x05, 0x69, 0xae, 0x3b,
+ 0xf9, 0x80, 0x61, 0xe7, 0x75, 0xd6, 0xfc, 0xf1, 0xa0, 0x82, 0xe1, 0xe3,
+ 0xfd, 0x13, 0x87, 0x5b, 0xb8, 0xe5, 0x91, 0xd3, 0x2f, 0xfc, 0xa7, 0xe7,
+ 0x28, 0xaf, 0x07, 0x49, 0xf4, 0xe3, 0x48, 0x41, 0xea, 0x65, 0xb8, 0x8c,
+ 0xd1, 0x5a, 0x3e, 0x29, 0xc2, 0x17, 0xf9, 0x4b, 0xad, 0xeb, 0x7a, 0x1f,
+ 0x17, 0x1f, 0x1a, 0x5d, 0x2c, 0xda, 0x58, 0x75, 0x11, 0xc4, 0xfa, 0xa3,
+ 0x91, 0x32, 0x20, 0xea, 0x48, 0x8c, 0x5a, 0x1f, 0xc3, 0xd5, 0x35, 0x27,
+ 0x1c, 0xa9, 0xe0, 0x2e, 0x4c, 0x25, 0x58, 0xaf, 0x30, 0x3f, 0xf2, 0x83,
+ 0xd7, 0x78, 0x5b, 0xf2, 0x24, 0xc6, 0x8a, 0x91, 0x7f, 0xfc, 0xf1, 0xf9,
+ 0xd5, 0x79, 0x79, 0x80, 0x8d, 0x05, 0x48, 0xa9, 0xe6, 0xe1, 0x19, 0xe9,
+ 0xd1, 0xfa, 0xc0, 0x9a, 0x71, 0x0c, 0xa5, 0x5c, 0x82, 0xe1, 0x31, 0xaa,
+ 0x33, 0x08, 0xab, 0x7a, 0xd8, 0xcc, 0xd2, 0x6f, 0x91, 0x55, 0x74, 0x07,
+ 0x2a, 0x68, 0xc2, 0x8c, 0xf1, 0x61, 0xc8, 0x71, 0x24, 0x98, 0xf0, 0xf1,
+ 0x29, 0x93, 0x8f, 0x61, 0x72, 0x05, 0x6d, 0x61, 0x13, 0x61, 0x2f, 0xfd,
+ 0x39, 0x79, 0x6f, 0x40, 0x47, 0xa1, 0x70, 0xe0, 0xd3, 0xe3, 0x25, 0xae,
+ 0x53, 0x44, 0x1f, 0x96, 0xcf, 0xed, 0xe9, 0x96, 0x13, 0x88, 0xd6, 0x34,
+ 0xa4, 0x2a, 0xfa, 0xb8, 0xd6, 0xd6, 0x46, 0x81, 0xa1, 0x2d, 0xf5, 0x57,
+ 0x3c, 0xda, 0x96, 0x05, 0x40, 0xb8, 0x61, 0x41, 0xf4, 0xfd, 0xc0, 0x66,
+ 0xb5, 0x49, 0xc6, 0xe8, 0xd1, 0x15, 0x2c, 0x51, 0x66, 0x2d, 0x72, 0xd3,
+ 0xfa, 0xf1, 0x07, 0x7a, 0xe7, 0xe3, 0x3d, 0xc2, 0x9c, 0x68, 0x52, 0xdb,
+ 0x46, 0xb3, 0x2c, 0x4f, 0x32, 0xf1, 0xfb, 0xc0, 0x5d, 0xc7, 0xec, 0xf5,
+ 0x0b, 0x50, 0xa8, 0xe4, 0x99, 0x40, 0x2d, 0x25, 0x95, 0xa2, 0x58, 0xe6,
+ 0x82, 0x58, 0xfd, 0x61, 0x52, 0x72, 0xe7, 0xdf, 0xda, 0xe3, 0xf8, 0x5d,
+ 0x9e, 0xca, 0x82, 0x31, 0x6b, 0x70, 0x96, 0xd6, 0x8c, 0xca, 0xed, 0x27,
+ 0x16, 0xc4, 0x86, 0x65, 0x91, 0x73, 0xbf, 0xd2, 0xa8, 0xa4, 0xb5, 0x8f,
+ 0x18, 0x93, 0xa2, 0x4b, 0xbd, 0xe7, 0xe0, 0x6e, 0x1d, 0xd3, 0xa1, 0x7c,
+ 0xd4, 0xbf, 0xe4, 0x8f, 0x94, 0x1a, 0x6c, 0xa5, 0xf9, 0xa4, 0x58, 0xee,
+ 0x54, 0xaf, 0xa5, 0x74, 0x75, 0xd4, 0x16, 0xc1, 0x0b, 0xad, 0x62, 0xde,
+ 0x84, 0xa3, 0x24, 0x6d, 0xc0, 0x84, 0x38, 0xae, 0xae, 0xfa, 0x56, 0x6c,
+ 0x30, 0xdc, 0x25, 0xa9, 0xdb, 0x91, 0xfb, 0x06, 0xf9, 0xf1, 0xa9, 0xc1,
+ 0x80, 0x8c, 0xe1, 0x47, 0xf9, 0x38, 0xfe, 0xf1, 0x11, 0x09, 0xe7, 0x3c,
+ 0x06, 0xe3, 0xc1, 0x85, 0x1b, 0x03, 0x0d, 0xc1, 0x7f, 0x28, 0x0e, 0x33,
+ 0x50, 0xa7, 0x2a, 0x8d, 0x89, 0x57, 0x55, 0xfe, 0x39, 0xad, 0xa2, 0x39,
+ 0x0e, 0xeb, 0xee, 0x3d, 0x54, 0x16, 0xc9, 0xf8, 0x8e, 0x2b, 0x44, 0x8e,
+ 0x65, 0x74, 0x35, 0x82, 0x98, 0x97, 0xf6, 0xc5, 0xe5, 0x8c, 0x21, 0x7d,
+ 0x68, 0x1c, 0x3a, 0x19, 0x2d, 0x9c, 0x64, 0xfa, 0xba, 0xd6, 0x7a, 0xe2,
+ 0xf4, 0x71, 0xa8, 0x84, 0x63, 0x4e, 0xd7, 0x63, 0x25, 0xfc, 0x03, 0x97,
+ 0xad, 0x6b, 0x50, 0xf3, 0x9f, 0x00, 0x48, 0x20, 0x09, 0x60, 0x8d, 0x3c,
+ 0xd4, 0x66, 0xe6, 0xf6, 0x15, 0xe9, 0x85, 0xc0, 0x3b, 0x7d, 0x0f, 0x58,
+ 0x50, 0xa6, 0x39, 0xc3, 0xe9, 0xc7, 0x07, 0x66, 0x35, 0x17, 0x7c, 0xb6,
+ 0xe5, 0x42, 0x8a, 0x3f, 0x32, 0x0e, 0x43, 0x06, 0x8b, 0xf7, 0x87, 0x8a,
+ 0x7f, 0xb6, 0xd4, 0x1f, 0xb0, 0x18, 0xfb, 0x5a, 0x56, 0x79, 0x53, 0xbb,
0x2b, 0x8a, 0xe9, 0x7b, 0x7a, 0x32, 0xbd, 0x5a, 0xbd, 0x17, 0x16, 0xff,
0xe1, 0x2b, 0x54, 0x9e, 0xb3, 0x93, 0xc2, 0x2e, 0x15, 0x3a, 0xc3, 0x24,
0xdf, 0x25, 0x24, 0x8d, 0x5d, 0x89, 0xe1, 0x35, 0x42, 0x93, 0xe9, 0xf8,
0xa3, 0xb4, 0x3f, 0xa7, 0x15, 0xbb, 0x33, 0x37, 0x60, 0xf8, 0x22, 0x78,
- 0x80, 0x61, 0x57, 0xd3, 0xb6, 0x3e, 0x2c, 0x63, 0x71, 0x23, 0x1e, 0x95,
- 0xfd, 0x31, 0xf1, 0xfb, 0xd7, 0x8b, 0x95, 0x70, 0x99, 0xa1, 0x1f, 0x57,
- 0x87, 0xaa, 0x1a, 0xca, 0xef, 0x4b, 0x1e, 0xad, 0xcb, 0x8f, 0x46, 0x86,
- 0xdc, 0x3f, 0x89, 0x29, 0xf0, 0xd1, 0xf9, 0xd0, 0xc9, 0x43, 0x2a, 0x50,
- 0x2f, 0x6d, 0x29, 0x28, 0xca, 0x10, 0x8a, 0xa4, 0x6c, 0x4f, 0x0b, 0x7b,
- 0x58, 0xb9, 0xb8, 0x7b, 0x99, 0x42, 0xce, 0x85, 0x51, 0xd6, 0xe4, 0xb3,
- 0xa0, 0xcc, 0x8b, 0x20, 0x27, 0xc5, 0x1b, 0x2d, 0x6a, 0xa3, 0x8f, 0xc0,
- 0x29, 0x24, 0xa1, 0x47, 0x5a, 0xef, 0x20, 0xd0, 0xdc, 0x46, 0xdc, 0x96,
- 0x6c, 0x19, 0xfa, 0xfa, 0xe3, 0x69, 0x68, 0x3f, 0x0f, 0x14, 0x08, 0x85,
- 0x1a, 0xe1, 0x48, 0x7e, 0x44, 0xc0, 0x05, 0xeb, 0xdf, 0x16, 0x73, 0x06,
- 0xae, 0x4b, 0x4a, 0x06, 0x4d, 0x60, 0xba, 0x52, 0x9c, 0x52, 0xae, 0xfa,
- 0x2c, 0xe6, 0x22, 0x7e, 0x57, 0x22, 0x26, 0x41, 0xa9, 0x16, 0xea, 0x47,
- 0xdf, 0x37, 0x4d, 0xf0, 0xae, 0x8a, 0x96, 0x53, 0x61, 0x82, 0xe1, 0x49,
- 0x28, 0x41, 0xa3, 0x00, 0x85, 0x33, 0x00, 0x36, 0x2b, 0x90, 0xe1, 0xea,
- 0xe3, 0x9a, 0x98, 0x62, 0xec, 0xc3, 0x7a, 0xd5, 0xcb, 0x34, 0xd9, 0xe6,
- 0xc0, 0xe6, 0x0c, 0xa4, 0x18, 0x5f, 0x62, 0xb1, 0x1e, 0xd8, 0x50, 0x2b,
- 0xd0, 0xb5, 0xce, 0xf2, 0xe9, 0x8a, 0x8d, 0x48, 0x4b, 0x88, 0x56, 0xdc,
- 0xed, 0x05, 0x74, 0x00, 0x15, 0xb8, 0x81, 0x2f, 0xea, 0xea, 0xd2, 0x34,
- 0x40, 0x42, 0xd8, 0xd2, 0x13, 0xaf, 0x0c, 0xa3, 0x46, 0xda, 0x68, 0x25,
- 0xc1, 0x5e, 0x10, 0xa2, 0x6b, 0xa5, 0xba, 0x5a, 0xcb, 0x9a, 0x5a, 0xf9,
- 0x82, 0x4d, 0x0d, 0x3d, 0xdf, 0x72, 0xb1, 0x02, 0x09, 0x9d, 0x28, 0x70,
- 0x03, 0xb8, 0x80, 0xfe, 0xf4, 0x68, 0x0c, 0xe1, 0xaf, 0xc4, 0x1a, 0xbe,
- 0x47, 0x98, 0x90, 0x5c, 0x66, 0x6b, 0xab, 0x6b, 0x30, 0x19, 0x19, 0x6e,
- 0x6e, 0x0a, 0x27, 0xea, 0x98, 0xb4, 0x07, 0xd2, 0x43, 0xec, 0x4d, 0x2d,
- 0xd7, 0x18, 0xa6, 0x5c, 0x7d, 0x64, 0x91, 0x41, 0x50, 0xb7, 0x43, 0xdb,
- 0xbf, 0xac, 0x70, 0x1e, 0x27, 0xa7, 0x0a, 0xd2, 0xd9, 0x9a, 0x3a, 0x02,
- 0x61, 0xb6, 0x87, 0x2c, 0xbc, 0x8e, 0x06, 0x31, 0x10, 0xf7, 0x69, 0xa1,
- 0x51, 0x57, 0x0a, 0x29, 0xa7, 0xe9, 0x5c, 0xf0, 0xff, 0x7f, 0x75, 0x7c,
- 0xb9, 0xd5, 0x04, 0x30, 0x8a, 0x27, 0x7e, 0x64, 0x80, 0xb2, 0xd4, 0xf3,
- 0x20, 0x3e, 0x51, 0xa8, 0x8a, 0x96, 0x40, 0x28, 0x8a, 0x4e, 0xf2, 0xb0,
- 0x98, 0xc6, 0x73, 0xad, 0xaa, 0x56, 0x6b, 0xee, 0x90, 0x96, 0x81, 0x39,
- 0x59, 0x10, 0x26, 0xa4, 0x5e, 0x77, 0x57, 0x71, 0xdd, 0x29, 0xdc, 0x48,
- 0xd1, 0xe1, 0x16, 0x8f, 0x8e, 0x4f, 0x8f, 0x2f, 0x8f, 0x11, 0x41, 0xdd,
- 0x10, 0x49, 0xa6, 0x28, 0x7e, 0x5c, 0x26, 0xe3, 0x9b, 0x79, 0x46, 0x77,
- 0xaf, 0x84, 0x74, 0xd0, 0x4d, 0xff, 0x5d, 0x32, 0x3a, 0x3a, 0xf8, 0x56,
- 0x42, 0x1a, 0x8a, 0xe8, 0xfc, 0xe2, 0xec, 0xfc, 0xf5, 0xc9, 0xdb, 0xa3,
- 0x5e, 0x74, 0x78, 0x76, 0xfe, 0x43, 0x2f, 0x7a, 0x73, 0xf6, 0xed, 0x71,
- 0x8b, 0x4f, 0x91, 0xfd, 0xd9, 0xcd, 0x8c, 0xb3, 0xd7, 0x6b, 0x76, 0x3b,
- 0x44, 0xa4, 0xd4, 0xad, 0x0e, 0x12, 0x7d, 0x4e, 0x4f, 0x86, 0x97, 0xd8,
- 0xfa, 0x7a, 0xbc, 0x17, 0x62, 0xda, 0x05, 0x78, 0x3d, 0x2d, 0x2c, 0x80,
- 0x83, 0xab, 0x86, 0xfd, 0x76, 0x54, 0xbd, 0xe2, 0xf0, 0x1e, 0x96, 0xda,
- 0x15, 0xfb, 0x8a, 0xff, 0x6d, 0xc1, 0x4c, 0x8c, 0xbd, 0xe6, 0xc1, 0xfe,
- 0x5e, 0x2d, 0xf6, 0x73, 0x23, 0x79, 0x39, 0xf4, 0xb2, 0xe0, 0x34, 0x8d,
- 0x6a, 0xf2, 0x7a, 0x34, 0x59, 0xe6, 0x4d, 0x89, 0x27, 0x8e, 0x82, 0x0e,
- 0x25, 0x57, 0xa9, 0x57, 0x51, 0xda, 0xd8, 0xfb, 0x58, 0xf8, 0x82, 0x1e,
- 0xd4, 0x7d, 0xf0, 0x42, 0xc3, 0xb1, 0x23, 0x88, 0x95, 0x21, 0x02, 0x59,
- 0x38, 0x24, 0x9b, 0xf6, 0x2e, 0x29, 0xf8, 0x53, 0x86, 0x3b, 0xe2, 0x9b,
- 0x48, 0x70, 0x88, 0x7e, 0x78, 0xbc, 0x94, 0xb1, 0x84, 0x18, 0x86, 0xbe,
- 0x78, 0x61, 0x3e, 0x4b, 0x07, 0x8c, 0x89, 0xcb, 0x3c, 0x86, 0x0b, 0x28,
- 0xc2, 0x9a, 0x34, 0xb5, 0x13, 0xd5, 0x0e, 0x24, 0xc8, 0x21, 0x48, 0x40,
- 0x43, 0x44, 0x24, 0xdd, 0x2e, 0x72, 0x4a, 0x88, 0xeb, 0xf7, 0x24, 0x13,
- 0x13, 0x90, 0xd5, 0xfa, 0x5e, 0xbf, 0xc5, 0x40, 0xc2, 0x82, 0xf3, 0x1a,
- 0x7e, 0xfe, 0xeb, 0xd1, 0xc4, 0x0f, 0x8e, 0x26, 0x64, 0x0d, 0x5f, 0xe2,
- 0x8f, 0x5f, 0x44, 0x15, 0x01, 0xa4, 0x97, 0xe8, 0x84, 0x9b, 0xe9, 0xbc,
- 0x4a, 0x1e, 0xfd, 0x46, 0x56, 0xc3, 0x64, 0x4b, 0xcd, 0x4b, 0xc1, 0x6e,
- 0xab, 0x5d, 0x87, 0xe5, 0xa2, 0x2a, 0x51, 0x54, 0x28, 0xa2, 0x45, 0x9c,
- 0x91, 0x2d, 0x96, 0x70, 0xe1, 0x94, 0xa1, 0x98, 0xa5, 0xc2, 0x3c, 0x24,
- 0x9f, 0xdf, 0x70, 0xe9, 0x7e, 0xe6, 0xcc, 0x67, 0x7a, 0xbc, 0x0f, 0xf2,
- 0x7f, 0x39, 0x61, 0xf1, 0x99, 0x98, 0x9e, 0x86, 0x17, 0xad, 0x45, 0x18,
- 0xdf, 0x22, 0x66, 0x2a, 0x1c, 0x3c, 0x56, 0xeb, 0x2d, 0x8b, 0x1f, 0x9c,
- 0xa5, 0x3e, 0x62, 0xb4, 0x3f, 0xad, 0xdb, 0x31, 0xd1, 0xda, 0xf0, 0x58,
- 0xe1, 0x96, 0x9b, 0x5f, 0x2b, 0x2d, 0x2b, 0x78, 0x23, 0x1f, 0x3f, 0x7a,
- 0xdc, 0x55, 0xaa, 0x59, 0xd3, 0xa4, 0xda, 0x1a, 0xf9, 0xdb, 0x16, 0x7a,
- 0x73, 0x10, 0xed, 0xe1, 0x34, 0x4c, 0x28, 0x40, 0x1d, 0x17, 0x04, 0x90,
- 0x10, 0x53, 0xc3, 0x33, 0x12, 0x42, 0x50, 0x70, 0x97, 0x0d, 0xe5, 0x9a,
- 0x0d, 0x73, 0x16, 0x11, 0xa9, 0x28, 0x11, 0x08, 0x5e, 0xf0, 0xc0, 0xb9,
- 0x34, 0x4a, 0xb5, 0xc9, 0x1a, 0xec, 0xaa, 0x81, 0x14, 0xb7, 0x64, 0x70,
- 0x68, 0x60, 0x82, 0x4f, 0x92, 0xd4, 0x30, 0x6e, 0xe5, 0xb3, 0xbf, 0x53,
- 0x00, 0x4c, 0x5c, 0x73, 0x48, 0x7a, 0xa7, 0xb6, 0x78, 0x8c, 0x9c, 0xf0,
- 0xbe, 0x26, 0xe3, 0xbd, 0x90, 0x94, 0xf7, 0xda, 0x64, 0xf5, 0x06, 0x6b,
- 0x97, 0x9f, 0x84, 0xef, 0xd4, 0xde, 0x50, 0xdc, 0x6c, 0xd4, 0x85, 0xda,
- 0xec, 0x6f, 0xb9, 0xb8, 0x49, 0x40, 0x8a, 0xca, 0x36, 0x37, 0xed, 0x21,
- 0xb1, 0xb3, 0x4c, 0xb8, 0xc8, 0xdb, 0x6c, 0x3a, 0xf1, 0xe7, 0xc9, 0xb2,
- 0x95, 0xb8, 0xb3, 0x6d, 0xb1, 0x7b, 0xba, 0xaa, 0x94, 0x45, 0x53, 0xfe,
- 0x6e, 0x34, 0x36, 0x4f, 0xee, 0xc3, 0xc6, 0xbc, 0xec, 0xe0, 0x1a, 0xfc,
- 0x2d, 0x43, 0xd0, 0x19, 0x83, 0x0f, 0x5a, 0x77, 0xd1, 0x8a, 0xca, 0xcb,
- 0x29, 0xee, 0x01, 0x84, 0x9f, 0x69, 0x4c, 0x10, 0x54, 0x02, 0x1b, 0x73,
- 0x5f, 0xac, 0x05, 0x20, 0x31, 0x43, 0x27, 0x6d, 0x4b, 0xbd, 0xee, 0x9f,
- 0xd2, 0x31, 0x74, 0xb5, 0x4b, 0x74, 0xdc, 0xd5, 0x8a, 0xb3, 0x61, 0xa5,
- 0x7a, 0x29, 0x5a, 0xca, 0xc9, 0x8a, 0xed, 0xd9, 0x3d, 0x20, 0x35, 0xd7,
- 0x75, 0xc5, 0xe8, 0x1d, 0x75, 0x38, 0xbc, 0x7d, 0x54, 0x2c, 0xf3, 0xc9,
- 0x72, 0xd6, 0x09, 0xb3, 0xe0, 0x75, 0x61, 0x98, 0x81, 0x36, 0x2b, 0xdc,
- 0xf3, 0x25, 0x44, 0xbd, 0x3e, 0xdb, 0xa9, 0x59, 0xd0, 0x0d, 0x9f, 0x30,
- 0x40, 0x24, 0xec, 0xef, 0x86, 0xf4, 0x43, 0xed, 0x35, 0x84, 0xc4, 0x92,
- 0xef, 0xb5, 0xdf, 0x70, 0xf3, 0x76, 0x68, 0x31, 0x59, 0x00, 0xdf, 0x1d,
- 0xec, 0xb4, 0x8b, 0xbb, 0x1c, 0xbd, 0x37, 0x4e, 0x7c, 0x71, 0xed, 0x94,
- 0xd4, 0x57, 0x1e, 0x6d, 0xe1, 0x25, 0x37, 0x89, 0xcb, 0x70, 0x75, 0x88,
- 0xf5, 0x90, 0xd6, 0xaf, 0x80, 0x2b, 0x57, 0x8d, 0xb7, 0x70, 0x5c, 0x01,
- 0x69, 0xe9, 0x89, 0x98, 0xd3, 0xf7, 0x9d, 0xa8, 0x19, 0x0c, 0x6f, 0x97,
- 0x59, 0xee, 0xb4, 0xb8, 0xdb, 0x6d, 0x2d, 0x61, 0x51, 0x1b, 0x1a, 0x4b,
- 0x62, 0x97, 0xa7, 0x43, 0x17, 0x20, 0xbc, 0x2b, 0x22, 0xb8, 0xc3, 0x3f,
- 0xf1, 0xb5, 0xeb, 0xd7, 0xd4, 0x66, 0xe7, 0x97, 0x55, 0x08, 0xf7, 0x43,
- 0xd8, 0xe3, 0x0b, 0xb3, 0x98, 0xde, 0xed, 0xb5, 0x0e, 0xc1, 0xc6, 0x50,
- 0x19, 0x04, 0x1b, 0x5a, 0x6c, 0x10, 0x7b, 0xcd, 0x41, 0x3c, 0x56, 0x1e,
- 0x9e, 0x5f, 0x6d, 0x0c, 0xe1, 0x89, 0x0e, 0xe1, 0xc9, 0xc7, 0xae, 0x42,
- 0x38, 0x80, 0x27, 0xbf, 0x74, 0x15, 0x5a, 0x87, 0xf0, 0x94, 0x03, 0xea,
- 0x17, 0x77, 0x4f, 0x5b, 0x32, 0x7b, 0xcc, 0x26, 0x06, 0x56, 0x05, 0xb4,
- 0x94, 0xa9, 0x14, 0xe3, 0xf4, 0x2e, 0x73, 0x2e, 0x43, 0x68, 0x05, 0x45,
- 0x33, 0xef, 0x61, 0x3a, 0xa9, 0x57, 0x1c, 0xd4, 0x31, 0x7b, 0xe0, 0x6b,
- 0x41, 0x81, 0xb9, 0xd2, 0x5f, 0x38, 0xc6, 0xb8, 0xaf, 0x3d, 0xd4, 0x8a,
- 0x4c, 0x4b, 0x99, 0xdc, 0x35, 0xb1, 0xce, 0x48, 0x78, 0x14, 0x44, 0x33,
- 0x2d, 0xa0, 0x93, 0x71, 0x5b, 0x4f, 0x6d, 0x50, 0x89, 0x04, 0x9e, 0x06,
- 0xd3, 0x7d, 0x2e, 0xd3, 0x7d, 0xfe, 0x7f, 0xd3, 0x74, 0x9f, 0xaf, 0x9f,
- 0xee, 0x27, 0x62, 0x55, 0x00, 0x66, 0x68, 0x7f, 0x14, 0xe7, 0x6b, 0x51,
- 0x95, 0x2d, 0x5c, 0xd2, 0x01, 0x8c, 0x56, 0xc2, 0xfe, 0x0b, 0x41, 0x66,
- 0x92, 0x6f, 0xa8, 0x99, 0xf5, 0xac, 0xa0, 0x22, 0xd1, 0x33, 0x54, 0x52,
- 0x51, 0xa6, 0x63, 0xe6, 0x73, 0x5c, 0x0d, 0xc5, 0xc5, 0xf9, 0xfe, 0xf7,
- 0xf6, 0xa0, 0xb5, 0x22, 0xe7, 0x51, 0xb3, 0x66, 0x66, 0x2f, 0x02, 0xa6,
- 0x6e, 0x50, 0x7a, 0x33, 0x40, 0xb8, 0xa1, 0x76, 0x8f, 0xdf, 0x7e, 0x7b,
- 0x72, 0x71, 0xf6, 0xf6, 0xcd, 0xf1, 0x5b, 0x17, 0x6d, 0x73, 0x89, 0xfa,
- 0x83, 0x6d, 0x56, 0xb4, 0xb6, 0xba, 0x2b, 0x22, 0xff, 0xc2, 0x94, 0xc3,
- 0x69, 0xb3, 0x8b, 0x85, 0xfe, 0x35, 0x08, 0x9b, 0x0b, 0x1e, 0xb2, 0xe3,
- 0xc7, 0x42, 0xd9, 0x82, 0x7d, 0x03, 0x13, 0x8e, 0x71, 0x1b, 0x48, 0xe8,
- 0x91, 0x2b, 0x9d, 0xce, 0xb6, 0xb7, 0x87, 0x71, 0xb2, 0xb0, 0xf5, 0xf3,
- 0xf7, 0x89, 0x16, 0x6e, 0x0c, 0xa2, 0xd6, 0x2a, 0x83, 0xf0, 0x9b, 0x17,
- 0x34, 0xf8, 0xa3, 0x19, 0xaf, 0xf6, 0xb7, 0xb7, 0x7f, 0x02, 0x0e, 0xe0,
- 0xe7, 0x6a, 0xdf, 0x6c, 0x5e, 0xc9, 0xa1, 0x21, 0xc7, 0xd7, 0x06, 0xb1,
- 0x3c, 0x3f, 0x58, 0xcc, 0x36, 0x02, 0x7f, 0xd6, 0xf0, 0x3d, 0xe9, 0xd2,
- 0xdf, 0xff, 0xf0, 0x2b, 0x77, 0x31, 0xac, 0x94, 0xa4, 0xf8, 0xd5, 0xbb,
- 0xa8, 0x68, 0xd7, 0x07, 0xa7, 0xa7, 0xbf, 0x6a, 0x07, 0x50, 0x39, 0xbc,
- 0xbd, 0xb0, 0xef, 0xec, 0x85, 0x96, 0x24, 0xd9, 0x50, 0x66, 0x2b, 0xda,
- 0xc9, 0xdb, 0x33, 0x1d, 0x8d, 0x98, 0x9b, 0xfa, 0x56, 0xed, 0x65, 0xe2,
- 0x2a, 0x29, 0xf2, 0xc0, 0x1a, 0x38, 0xd5, 0xf8, 0x12, 0xa2, 0x93, 0x03,
- 0xec, 0x34, 0xab, 0x2f, 0x50, 0xcb, 0x90, 0x92, 0x94, 0x39, 0xdb, 0xa2,
- 0x40, 0x24, 0x9a, 0xd1, 0xba, 0xc5, 0x30, 0xcc, 0x20, 0x14, 0x1c, 0xd2,
- 0x85, 0xfa, 0xbb, 0x9c, 0xce, 0xc5, 0x44, 0xa7, 0x68, 0xce, 0x25, 0x00,
- 0xf2, 0x59, 0x11, 0xc0, 0x50, 0xf8, 0x14, 0x7d, 0x7f, 0x72, 0x19, 0x1d,
- 0x9e, 0x1d, 0xf9, 0x23, 0x7a, 0x29, 0x81, 0x9c, 0x39, 0x4a, 0x26, 0x2d,
- 0xe7, 0xc4, 0xc4, 0x58, 0x5d, 0x48, 0xaf, 0x80, 0x87, 0xe6, 0x60, 0xd1,
- 0x11, 0x53, 0x67, 0x76, 0x22, 0x5a, 0x50, 0x29, 0xf8, 0x96, 0x4b, 0xa0,
- 0xdc, 0x24, 0xb0, 0x22, 0x54, 0x41, 0x82, 0x9d, 0xa9, 0x96, 0xe3, 0xa6,
- 0x19, 0x3c, 0x87, 0x58, 0x8a, 0x58, 0x1d, 0x88, 0xbb, 0x70, 0xe5, 0xb6,
- 0xb9, 0x58, 0x93, 0x48, 0xb8, 0x3a, 0xf0, 0xba, 0x44, 0x80, 0x8a, 0x26,
- 0x85, 0x70, 0x72, 0x14, 0x00, 0xd0, 0x82, 0xa3, 0x0f, 0x8c, 0xd0, 0x8e,
- 0xd1, 0x54, 0xe2, 0x3e, 0x77, 0xd5, 0xee, 0x3f, 0xf7, 0x80, 0x1a, 0x1e,
- 0xa3, 0x0a, 0xa6, 0x03, 0x4e, 0x94, 0x98, 0x58, 0xd2, 0x91, 0x81, 0x8c,
- 0x59, 0x95, 0x14, 0x29, 0x7e, 0xdd, 0xd8, 0x71, 0xd7, 0x84, 0xeb, 0x67,
- 0x4f, 0xa9, 0x5d, 0x90, 0xe4, 0x59, 0x9e, 0x12, 0xf7, 0x52, 0xfa, 0x73,
- 0x70, 0xa4, 0x9f, 0xe8, 0x60, 0x2e, 0x4e, 0x69, 0xe6, 0x53, 0xb1, 0x83,
- 0x6b, 0xcc, 0x37, 0x2a, 0xe4, 0xc0, 0x7b, 0xc2, 0xfa, 0xae, 0x16, 0x3c,
- 0xf5, 0x6f, 0x3e, 0x33, 0x73, 0x9b, 0x92, 0x82, 0x47, 0xf2, 0x54, 0x2a,
- 0x10, 0xd7, 0xae, 0x2a, 0x93, 0x4a, 0xa8, 0x12, 0x2c, 0x36, 0x86, 0xbb,
- 0x4c, 0x6c, 0xdb, 0xcd, 0xda, 0x10, 0xb5, 0x38, 0x9c, 0xe7, 0xb5, 0x7e,
- 0xac, 0x1b, 0x54, 0x23, 0x97, 0x22, 0x98, 0xe8, 0xa2, 0x1e, 0x70, 0xc5,
- 0xcd, 0x37, 0x5b, 0xfb, 0xb4, 0xbe, 0x28, 0xbe, 0x6e, 0xbc, 0xb4, 0xe8,
- 0x9e, 0xfc, 0xcc, 0x31, 0x8b, 0xe8, 0x3e, 0xe1, 0x9c, 0x28, 0x3d, 0x93,
- 0xa8, 0x69, 0x64, 0xb3, 0xb3, 0xf8, 0x09, 0x49, 0x95, 0x04, 0xd0, 0x95,
- 0xc6, 0x5b, 0x8e, 0x75, 0xbc, 0x0d, 0xfd, 0x30, 0x0f, 0x39, 0xea, 0x0b,
- 0xdf, 0x49, 0x14, 0xc3, 0x45, 0xc5, 0xa6, 0xce, 0x79, 0xea, 0x36, 0x41,
- 0xda, 0x97, 0x8f, 0xd8, 0xf3, 0x47, 0x9c, 0x39, 0x73, 0x7f, 0xeb, 0x1b,
- 0x0d, 0x9c, 0xa2, 0x5a, 0x18, 0x14, 0xaf, 0x82, 0x54, 0xe3, 0x0b, 0x6b,
- 0xf8, 0x21, 0x1a, 0x3e, 0x9e, 0xab, 0xdf, 0x42, 0x80, 0xda, 0x19, 0x9c,
- 0x3b, 0x6b, 0xc4, 0x9c, 0x66, 0x57, 0xa5, 0xab, 0x10, 0xc4, 0x2a, 0xf5,
- 0x24, 0x40, 0xb8, 0xc4, 0xa9, 0xf6, 0x8d, 0xe2, 0x0c, 0x99, 0x76, 0x0e,
- 0x07, 0x52, 0xd4, 0x70, 0xcf, 0x05, 0xd5, 0x5e, 0xfd, 0x99, 0xd8, 0xad,
- 0x2d, 0xf6, 0xf9, 0xc1, 0x70, 0x68, 0x4b, 0x0d, 0x14, 0x29, 0x5b, 0x4f,
- 0x59, 0x41, 0xf5, 0x6c, 0x22, 0x63, 0x5a, 0x53, 0x0a, 0x5b, 0x0c, 0x19,
- 0xda, 0x48, 0x2d, 0x3a, 0x62, 0xf7, 0x89, 0x5f, 0x73, 0xd7, 0xd9, 0xb7,
- 0xd2, 0x5a, 0xef, 0x23, 0x3b, 0x6b, 0xed, 0xeb, 0xdb, 0x96, 0xbe, 0x9e,
- 0xd6, 0xe6, 0xb5, 0xb7, 0xf7, 0xa9, 0xa6, 0x10, 0xd0, 0x5a, 0x1f, 0x56,
- 0x28, 0x45, 0x89, 0x43, 0x6d, 0x0d, 0xf4, 0x60, 0xdf, 0xd0, 0x22, 0x92,
- 0xd6, 0x6a, 0xd9, 0x18, 0x4c, 0xd0, 0xd5, 0x33, 0x3f, 0x2d, 0x92, 0x2a,
- 0xb8, 0x3d, 0x36, 0x7b, 0xc8, 0x31, 0x69, 0x9c, 0x1e, 0x60, 0x83, 0xf0,
- 0x51, 0x39, 0xe1, 0x91, 0x11, 0x1f, 0x5f, 0x13, 0x6f, 0x62, 0xc3, 0x08,
- 0xfa, 0xf9, 0xd4, 0xf5, 0xe3, 0x46, 0xce, 0x7a, 0xa8, 0xe4, 0xd5, 0x0f,
- 0x42, 0x8e, 0xa0, 0x34, 0x12, 0x44, 0xa4, 0xa9, 0xa3, 0xa0, 0x49, 0xb2,
- 0xfa, 0xb6, 0xef, 0x45, 0x8e, 0xdf, 0xb9, 0x16, 0xc2, 0x13, 0x50, 0x15,
- 0x94, 0x07, 0x8b, 0x2b, 0x08, 0x25, 0x52, 0x2a, 0x3d, 0xf6, 0xe6, 0xd5,
- 0x3c, 0x3c, 0xed, 0xbb, 0x2f, 0x82, 0x35, 0xb1, 0x61, 0x99, 0xad, 0x71,
- 0xdb, 0x8e, 0x8f, 0x63, 0x21, 0x22, 0xdd, 0xf1, 0xdf, 0x17, 0xc7, 0x97,
- 0x17, 0x1c, 0xd3, 0x0a, 0x98, 0x95, 0xba, 0xa6, 0x4c, 0x67, 0x6a, 0xcb,
- 0x99, 0xe5, 0xa5, 0x50, 0x47, 0xc0, 0x75, 0x3d, 0x25, 0x4b, 0x31, 0x62,
- 0xdc, 0x33, 0x9c, 0x79, 0x5d, 0xa9, 0x4d, 0xec, 0xab, 0x04, 0xc9, 0x3d,
- 0xe4, 0x23, 0x34, 0xf5, 0x64, 0xb8, 0xf5, 0xf7, 0x71, 0x3e, 0x40, 0x53,
- 0x14, 0xb6, 0xa6, 0xa1, 0xf0, 0x03, 0x75, 0xbd, 0xbb, 0xa8, 0x14, 0x49,
- 0x79, 0x8a, 0xcd, 0x43, 0xac, 0x01, 0xe5, 0x0d, 0x23, 0x91, 0xeb, 0x9c,
- 0xae, 0x49, 0x49, 0x5c, 0xb5, 0xeb, 0xd0, 0x79, 0x03, 0xa5, 0x4b, 0xf9,
- 0x14, 0x61, 0xea, 0x40, 0xdb, 0x8a, 0x9e, 0xee, 0xec, 0x34, 0x9b, 0x8b,
- 0x47, 0xd9, 0x9d, 0xb9, 0x26, 0x35, 0xe9, 0x43, 0x4a, 0xfb, 0x60, 0xbf,
- 0x70, 0x99, 0x42, 0xd7, 0xe8, 0x5f, 0x91, 0xcc, 0xcc, 0x0b, 0x66, 0x66,
- 0x84, 0x60, 0xd9, 0xe4, 0x50, 0x7e, 0x87, 0x24, 0x14, 0x5d, 0xb2, 0xea,
- 0x51, 0x94, 0xfc, 0x14, 0xc3, 0x12, 0x8c, 0xad, 0xa6, 0x21, 0x12, 0xd9,
- 0x56, 0x34, 0xfb, 0x59, 0xcb, 0x3c, 0x15, 0x24, 0x27, 0xe8, 0xe6, 0x59,
- 0x0b, 0x41, 0x44, 0xc3, 0xcb, 0xb3, 0x8b, 0x28, 0xa8, 0x48, 0x5c, 0xe5,
- 0xba, 0x88, 0x67, 0xe0, 0x27, 0x9c, 0x77, 0xb6, 0xd7, 0xe2, 0x3a, 0x70,
- 0x49, 0x92, 0x12, 0x74, 0xc4, 0xd9, 0xf6, 0xbe, 0xd7, 0xe7, 0xde, 0xd1,
- 0xa5, 0x73, 0xfb, 0x96, 0x34, 0x00, 0xce, 0x1a, 0x34, 0xb8, 0x33, 0xba,
- 0x1f, 0x49, 0xf0, 0x9e, 0x05, 0xf6, 0x97, 0x3d, 0x39, 0x67, 0x67, 0x4b,
- 0xd0, 0xba, 0xe4, 0x3b, 0x32, 0x19, 0x69, 0xe6, 0x23, 0x9b, 0xad, 0xd4,
- 0x30, 0xe5, 0x8c, 0x81, 0x75, 0x52, 0x94, 0x33, 0x74, 0xe6, 0x01, 0xed,
- 0xc4, 0xf2, 0x3f, 0xa8, 0x79, 0xfd, 0xf0, 0x39, 0x32, 0xd9, 0xd4, 0x8d,
- 0xa2, 0x24, 0xa4, 0xb5, 0x3b, 0xea, 0x9b, 0x3d, 0x26, 0x51, 0x60, 0xa2,
- 0x35, 0x7c, 0x25, 0xdc, 0xca, 0xc9, 0x46, 0x5e, 0xac, 0xd8, 0xf1, 0xeb,
- 0x7c, 0x7e, 0x76, 0x71, 0x69, 0x05, 0x6d, 0xf4, 0xde, 0xc4, 0x47, 0xb5,
- 0x13, 0xc4, 0xce, 0x7a, 0x48, 0x80, 0x41, 0x6d, 0xf3, 0xf6, 0x5a, 0xf2,
- 0x02, 0xae, 0x87, 0x56, 0xb5, 0x0d, 0x2e, 0x84, 0x91, 0xaf, 0xcc, 0xf3,
- 0xe5, 0xca, 0xe5, 0x80, 0xe5, 0x68, 0x2a, 0x0f, 0xf3, 0xe7, 0x76, 0x3f,
- 0xa6, 0x4f, 0x02, 0x7d, 0xb2, 0xdb, 0x42, 0x1d, 0x2c, 0x80, 0x5f, 0x1c,
- 0x0f, 0x2f, 0x65, 0xd5, 0xf8, 0xb7, 0xc6, 0xc8, 0x25, 0x15, 0x52, 0x3f,
- 0x6c, 0x75, 0x2c, 0x81, 0x3a, 0x38, 0x44, 0x66, 0xa6, 0x75, 0xe6, 0x9c,
- 0x37, 0x28, 0x58, 0xb3, 0x27, 0x41, 0x48, 0x1f, 0x18, 0xa7, 0xd2, 0xca,
- 0xa5, 0xd5, 0x1d, 0x8c, 0x3a, 0xda, 0x49, 0x87, 0xae, 0x5c, 0x39, 0x14,
- 0x59, 0x7e, 0x1b, 0xb4, 0xf0, 0x34, 0x60, 0x16, 0xcc, 0xdc, 0xb5, 0x81,
- 0x13, 0xb3, 0x8c, 0xf3, 0x87, 0xce, 0xf9, 0x7c, 0x9d, 0xcc, 0x8d, 0x30,
- 0xe4, 0x39, 0xdf, 0xce, 0x33, 0x97, 0x17, 0x6d, 0xe2, 0x51, 0x30, 0x14,
- 0xfe, 0xd8, 0xa2, 0xe1, 0xe1, 0x68, 0xac, 0x91, 0xdd, 0x93, 0xe7, 0x6e,
- 0x15, 0x59, 0x74, 0x76, 0xae, 0x1d, 0x99, 0x7e, 0x70, 0x17, 0xb1, 0x6b,
- 0x2c, 0x9d, 0x2f, 0x13, 0x2d, 0xda, 0x11, 0xe7, 0xd3, 0x14, 0xa1, 0xac,
- 0xe2, 0x9b, 0x69, 0x18, 0xa2, 0x35, 0xc2, 0xd0, 0xf7, 0xa3, 0x17, 0x11,
- 0xa9, 0xf1, 0x7e, 0xb7, 0x24, 0xd9, 0x10, 0x27, 0xd9, 0xcb, 0x78, 0x74,
- 0x70, 0xe7, 0xee, 0xb6, 0x18, 0x44, 0xe7, 0x8c, 0xe5, 0x0a, 0x13, 0x7b,
- 0xf1, 0x1f, 0xbe, 0x35, 0x39, 0x2c, 0x8c, 0x31, 0xce, 0xd7, 0x27, 0x84,
- 0xd3, 0x94, 0x8b, 0x70, 0xe3, 0x13, 0xfe, 0x35, 0x40, 0x86, 0x6c, 0x4c,
- 0xf9, 0x85, 0x7f, 0xb9, 0xa0, 0x89, 0x90, 0x6e, 0x52, 0x7f, 0xe4, 0xa9,
- 0xd2, 0x16, 0x29, 0x2e, 0x68, 0x82, 0x3b, 0x00, 0x7b, 0xe6, 0x33, 0xcd,
- 0x5b, 0x92, 0x72, 0x7c, 0x23, 0x5a, 0xb8, 0xb2, 0x67, 0x4c, 0x8c, 0x95,
- 0xe7, 0x7c, 0x53, 0x72, 0x27, 0x1c, 0xc8, 0x3a, 0x01, 0xe8, 0x82, 0xce,
- 0x0d, 0x97, 0x4b, 0xa2, 0xb6, 0xe6, 0xcc, 0x70, 0xa7, 0xe6, 0x3b, 0xf7,
- 0xd9, 0x5e, 0xcc, 0x33, 0x47, 0x76, 0x78, 0xda, 0x0a, 0x8f, 0xd7, 0x80,
- 0x69, 0x9f, 0x0a, 0x35, 0x3a, 0xd2, 0x71, 0xd7, 0x58, 0x65, 0x74, 0xdc,
- 0xb1, 0xcb, 0x20, 0xc5, 0x76, 0xb3, 0x6a, 0x89, 0x52, 0x30, 0x41, 0x53,
- 0xcf, 0x7c, 0x53, 0x57, 0x9c, 0xf9, 0xe7, 0xda, 0xf2, 0x3c, 0xc8, 0x43,
- 0xb1, 0xa5, 0xee, 0x31, 0xd5, 0x13, 0xe4, 0x2a, 0x6b, 0x68, 0x0a, 0xd5,
- 0xfb, 0xe3, 0xa9, 0x10, 0xc3, 0x65, 0x96, 0x49, 0x59, 0x4c, 0x17, 0xeb,
- 0x37, 0x90, 0x28, 0xc2, 0xa6, 0xd9, 0xbd, 0xe8, 0xa9, 0x7a, 0xa5, 0x15,
- 0xcb, 0xd8, 0x6b, 0xd0, 0xa8, 0xb5, 0xbb, 0x9c, 0x35, 0xca, 0xe5, 0x3c,
- 0xfd, 0x4c, 0xd5, 0xb7, 0xdb, 0x39, 0x17, 0x8f, 0xbf, 0x3c, 0x3e, 0x7d,
- 0x7b, 0x7c, 0xe9, 0x00, 0x3b, 0x6c, 0x42, 0xc1, 0xf3, 0x2f, 0xd4, 0xb0,
- 0xa5, 0xda, 0x95, 0xe1, 0x12, 0xd7, 0xdd, 0xaf, 0xcf, 0x76, 0x9d, 0x6d,
- 0x87, 0x23, 0xe7, 0xba, 0x85, 0x9c, 0xbf, 0x20, 0x7e, 0x0e, 0x65, 0x8a,
- 0xbf, 0x8e, 0xde, 0x1c, 0x3d, 0xe3, 0x60, 0xfe, 0xeb, 0x24, 0x67, 0x64,
- 0x74, 0xaf, 0xec, 0x64, 0x01, 0x27, 0x78, 0xb6, 0x17, 0xe0, 0x49, 0xc8,
- 0x65, 0x96, 0xea, 0xf9, 0x60, 0x31, 0x96, 0x56, 0x88, 0xf3, 0x4f, 0x49,
- 0x51, 0x15, 0x6b, 0x20, 0x34, 0x6b, 0xb1, 0x32, 0x2a, 0x76, 0x88, 0xc8,
- 0x06, 0xf5, 0x7a, 0xc9, 0x55, 0x36, 0xf1, 0xec, 0x89, 0x67, 0x13, 0xf9,
- 0x6a, 0xc1, 0xa8, 0x67, 0x52, 0x50, 0xb9, 0x85, 0x66, 0x9f, 0x09, 0x6b,
- 0x3a, 0x94, 0x93, 0xc5, 0xf2, 0x62, 0xf3, 0x35, 0x0e, 0x49, 0x12, 0x73,
- 0x5b, 0xf0, 0xde, 0xb3, 0x50, 0x5f, 0x2b, 0xb4, 0x92, 0x2a, 0xad, 0x1f,
- 0x4a, 0x06, 0xa0, 0xfa, 0xb3, 0x7f, 0xf6, 0xb9, 0x7b, 0x96, 0xeb, 0x49,
- 0xa6, 0x73, 0x05, 0xa3, 0x79, 0xe4, 0x0d, 0x95, 0x32, 0xe5, 0xf2, 0xf5,
- 0x31, 0x32, 0x22, 0x5b, 0x04, 0x6b, 0x1f, 0xbc, 0xf2, 0xa2, 0xaa, 0x8e,
- 0x02, 0xe7, 0xd4, 0xd7, 0xb8, 0xe0, 0x49, 0xa5, 0x8b, 0x9b, 0x90, 0xfc,
- 0x9f, 0xcb, 0x5d, 0x78, 0xce, 0xe1, 0x90, 0x95, 0xfd, 0x34, 0x36, 0x53,
- 0x41, 0x01, 0xb0, 0xd3, 0x24, 0xd4, 0x75, 0x78, 0x60, 0x6f, 0xd4, 0x49,
- 0x93, 0x1f, 0x0d, 0x2e, 0x8f, 0xe7, 0xbb, 0x4a, 0x95, 0x34, 0xe5, 0xec,
- 0x7a, 0x4e, 0x3a, 0xfe, 0xa4, 0x59, 0x16, 0x34, 0x78, 0x7c, 0x4f, 0x8f,
- 0xa4, 0x54, 0xd4, 0x05, 0xdb, 0x61, 0xfc, 0x61, 0xff, 0xc0, 0x13, 0xa5,
- 0x5a, 0x71, 0xa5, 0x49, 0xb1, 0x74, 0x06, 0x7e, 0x66, 0x1b, 0x62, 0x52,
- 0x09, 0xad, 0x7f, 0xfe, 0x54, 0xa5, 0x1b, 0x93, 0x42, 0x99, 0xf3, 0xf3,
- 0x42, 0x4c, 0x19, 0x6c, 0xa1, 0xc1, 0x08, 0x9f, 0xeb, 0xe5, 0xa2, 0x5b,
- 0x59, 0x5a, 0xe9, 0x6e, 0xe5, 0x81, 0x05, 0xe2, 0x6a, 0xef, 0xd3, 0xb9,
- 0xc6, 0x7f, 0x37, 0x5e, 0x7f, 0xbe, 0xc6, 0xaa, 0xa1, 0xbe, 0x88, 0x63,
- 0xd0, 0x52, 0xf0, 0xfc, 0xa7, 0xee, 0x24, 0x38, 0x90, 0xae, 0x9e, 0x8b,
- 0xf3, 0x82, 0x57, 0xdb, 0xa0, 0x14, 0xed, 0x20, 0x41, 0xaf, 0x5e, 0xf8,
- 0xaa, 0x18, 0x6d, 0xae, 0x3c, 0xd7, 0x3d, 0xe9, 0xe4, 0x51, 0x1a, 0x1c,
- 0xe3, 0xe7, 0x42, 0x52, 0xaf, 0xe1, 0x49, 0xb6, 0x73, 0xc0, 0xe1, 0xb8,
- 0x21, 0xca, 0xb5, 0x7f, 0xfa, 0x85, 0xd2, 0x86, 0xdd, 0x48, 0x26, 0x08,
- 0xae, 0x7d, 0xe3, 0xd3, 0x9d, 0x50, 0x2c, 0x9c, 0xb0, 0x2d, 0x4d, 0xd2,
- 0xa9, 0xd7, 0xbe, 0x20, 0x94, 0x71, 0x42, 0x8c, 0xfa, 0x9a, 0x88, 0x1a,
- 0xcf, 0x78, 0x18, 0x01, 0xff, 0xd8, 0x5e, 0x95, 0xad, 0x85, 0x42, 0x4a,
- 0x74, 0x72, 0x14, 0x3c, 0xf8, 0xc4, 0x4f, 0x30, 0x9e, 0xf2, 0x7d, 0xbb,
- 0x12, 0x4d, 0xbf, 0x50, 0xa0, 0xf1, 0xe0, 0xd1, 0xa7, 0x1a, 0x85, 0xc9,
- 0xf1, 0xb7, 0x37, 0xb2, 0xfe, 0x8d, 0x67, 0x84, 0x1c, 0x0e, 0x5d, 0xe1,
- 0x65, 0x09, 0xa7, 0x2c, 0xda, 0xae, 0xd9, 0x4f, 0x9f, 0x3f, 0xf2, 0xac,
- 0x5e, 0x4b, 0x85, 0xbb, 0x4c, 0x83, 0xf7, 0x3e, 0x6d, 0x1e, 0x73, 0x13,
- 0xbc, 0x2d, 0x5a, 0x59, 0x4f, 0x5a, 0xb4, 0xc9, 0xc1, 0xd7, 0xff, 0x61,
- 0xa6, 0x95, 0x9c, 0xa3, 0x30, 0x8b, 0xff, 0x08, 0xc7, 0xfb, 0x59, 0x18,
- 0xf2, 0x2c, 0x76, 0x15, 0x57, 0x93, 0x21, 0x84, 0xc6, 0xf5, 0xd5, 0x4d,
- 0xb0, 0x3a, 0x41, 0x0b, 0xb2, 0xe7, 0x74, 0x53, 0x07, 0x75, 0xa2, 0x55,
- 0xd3, 0xd2, 0x14, 0x75, 0x8b, 0x78, 0xd2, 0xd1, 0x7d, 0x4d, 0x9b, 0x0a,
- 0xea, 0x08, 0xac, 0x53, 0x3b, 0xb5, 0x63, 0x50, 0xdc, 0x2c, 0x45, 0xb5,
- 0x75, 0x33, 0xf2, 0xe5, 0xec, 0x83, 0xd7, 0xf6, 0x3c, 0xf7, 0xd2, 0x8b,
- 0x55, 0xf2, 0x30, 0x0e, 0x19, 0xfe, 0x57, 0xf4, 0xdf, 0x08, 0xa4, 0xc8,
- 0x57, 0x31, 0x0d, 0x08, 0xb5, 0x62, 0x0c, 0xf4, 0x60, 0x33, 0x6e, 0x4f,
- 0xcc, 0xd2, 0x38, 0xea, 0xa0, 0x1b, 0x15, 0x1e, 0xd8, 0x81, 0x4b, 0xbb,
- 0x74, 0x93, 0x8c, 0x6f, 0xed, 0xc8, 0xb8, 0x36, 0x9a, 0x6f, 0x7d, 0xff,
- 0xbd, 0xf0, 0x1c, 0x07, 0xf9, 0xa2, 0xd6, 0x53, 0x07, 0x68, 0x4e, 0x67,
- 0x54, 0x60, 0xc4, 0x79, 0xbb, 0x51, 0xcc, 0x3a, 0x4f, 0xa6, 0x09, 0x03,
- 0x87, 0x89, 0x64, 0x8a, 0x85, 0x6e, 0x0b, 0x7e, 0xe4, 0x88, 0x10, 0x29,
- 0xc5, 0x93, 0x28, 0xb8, 0xdc, 0x9c, 0xfd, 0xd7, 0x6a, 0xa0, 0xa0, 0x11,
- 0x1c, 0xbc, 0xbb, 0xfc, 0xfa, 0xec, 0x62, 0x18, 0x6d, 0x73, 0x9e, 0xf4,
- 0xe5, 0xc5, 0xc9, 0x97, 0xef, 0x48, 0xe1, 0x73, 0x96, 0xe7, 0xa3, 0x98,
- 0x14, 0xc1, 0x29, 0x87, 0x6a, 0x24, 0xf3, 0x51, 0x92, 0x5f, 0x1b, 0xf0,
- 0x38, 0x90, 0x4d, 0x98, 0x77, 0x67, 0xb9, 0xaf, 0xd2, 0x21, 0x85, 0xb0,
- 0xcd, 0xb2, 0x8e, 0xf0, 0xaf, 0x94, 0xbe, 0xcb, 0xbc, 0x36, 0x93, 0x56,
- 0x73, 0xdf, 0x7d, 0xf5, 0xf5, 0xcb, 0xaf, 0x0f, 0xde, 0x7e, 0x33, 0x34,
- 0x74, 0xbb, 0xef, 0xbe, 0xfb, 0x2e, 0x74, 0xbc, 0xec, 0x6f, 0x6f, 0x03,
- 0xcf, 0xec, 0x26, 0x7e, 0x78, 0x18, 0x14, 0xc9, 0xc6, 0x06, 0x9d, 0xa3,
- 0x0d, 0x9f, 0x4b, 0xa0, 0x90, 0xc7, 0xc5, 0x92, 0x6e, 0x3a, 0xfa, 0x7a,
- 0x7b, 0xb1, 0x1c, 0x31, 0xc4, 0xf2, 0xf6, 0xb2, 0xd4, 0x82, 0x12, 0x78,
- 0x7b, 0x7b, 0x63, 0x63, 0x78, 0x7c, 0x1c, 0x1d, 0x9c, 0x0e, 0xcf, 0x82,
- 0x77, 0x37, 0x77, 0xb7, 0x48, 0x12, 0xb8, 0x4e, 0x4a, 0xfa, 0x65, 0x63,
- 0xe3, 0xf4, 0xe0, 0x92, 0x95, 0x9c, 0x6f, 0x8f, 0x2f, 0x86, 0x27, 0x67,
- 0x6f, 0x79, 0x77, 0x18, 0x08, 0x22, 0x9e, 0xde, 0x33, 0xf6, 0xd6, 0x55,
- 0x8a, 0x3c, 0xcd, 0x7b, 0x2b, 0xe5, 0xc0, 0xe0, 0x26, 0x24, 0xaa, 0x88,
- 0xec, 0x26, 0x8e, 0x25, 0xab, 0xf3, 0x23, 0x31, 0x01, 0x25, 0xab, 0x1a,
- 0xe6, 0x7d, 0xdc, 0x88, 0xbc, 0xa1, 0x43, 0xa0, 0xde, 0x93, 0x91, 0x84,
- 0xcc, 0xf4, 0x04, 0x81, 0x00, 0xc1, 0xea, 0x01, 0x44, 0x42, 0xeb, 0xc4,
- 0x87, 0x27, 0x6f, 0xce, 0x49, 0xe6, 0x7f, 0x37, 0x3c, 0xf8, 0xea, 0x98,
- 0x1f, 0xfd, 0x2a, 0x29, 0xfd, 0x76, 0x48, 0xc9, 0x09, 0xee, 0xe4, 0x6d,
- 0x52, 0x16, 0xe3, 0x78, 0xc1, 0x71, 0xe7, 0xd4, 0x4d, 0x5f, 0xf8, 0x62,
- 0xd0, 0xb6, 0x48, 0x7f, 0x1e, 0x8c, 0x7a, 0xae, 0xcf, 0x03, 0x29, 0x3a,
- 0x6c, 0xf7, 0xe2, 0xf8, 0xe0, 0xe8, 0xcd, 0xb1, 0x05, 0x54, 0xc9, 0x3d,
- 0x42, 0x8d, 0xde, 0x64, 0x5c, 0xbd, 0xc6, 0x99, 0x3e, 0xf9, 0xae, 0xe2,
- 0xc5, 0xa7, 0x6f, 0xb8, 0x24, 0x43, 0x7b, 0x77, 0x7e, 0xa3, 0xf0, 0xec,
- 0xe0, 0x2a, 0xdd, 0x96, 0xd6, 0xad, 0xbf, 0xd8, 0x2d, 0x89, 0x45, 0x26,
- 0xa9, 0xfc, 0x26, 0x6a, 0x2c, 0xd4, 0xdf, 0xcf, 0x76, 0x76, 0x76, 0x1e,
- 0x99, 0x07, 0x0c, 0x8d, 0x7a, 0x0b, 0xd0, 0x54, 0xf6, 0xf9, 0xf1, 0x6d,
- 0xdf, 0xbe, 0x51, 0x66, 0x68, 0xb6, 0xe5, 0x3f, 0xe7, 0xa2, 0x78, 0xa7,
- 0x65, 0xd2, 0x3e, 0xe8, 0x71, 0x96, 0xb9, 0x3d, 0xa8, 0x2c, 0xcf, 0x84,
- 0x71, 0x6e, 0xd2, 0x32, 0xc0, 0x49, 0xb3, 0xa1, 0x4f, 0x52, 0xb0, 0x9f,
- 0x38, 0x5f, 0xd5, 0x9b, 0xe4, 0x6f, 0xa8, 0x4d, 0xfe, 0x31, 0xc8, 0xf2,
- 0xeb, 0xed, 0xd9, 0x3e, 0x2e, 0x59, 0x7a, 0xe8, 0x75, 0x82, 0xba, 0x3f,
- 0xf7, 0x99, 0x0b, 0x3d, 0x2a, 0x78, 0x69, 0x39, 0xca, 0xf1, 0x23, 0xc6,
- 0xf5, 0x0b, 0xd6, 0x01, 0xdb, 0xc9, 0xf5, 0x65, 0x65, 0xe6, 0x16, 0x8e,
- 0xd1, 0xd2, 0x49, 0xc1, 0x5b, 0xc6, 0x66, 0xa6, 0x01, 0xb1, 0x10, 0xea,
- 0x85, 0x3e, 0x17, 0x22, 0xa1, 0x5f, 0x73, 0x22, 0x9a, 0x41, 0xf9, 0x50,
- 0xf2, 0x5b, 0xec, 0xac, 0x55, 0x6b, 0x31, 0x60, 0xab, 0x88, 0x65, 0xe5,
- 0x19, 0xc9, 0xe8, 0xb1, 0xa4, 0xdf, 0x0c, 0x11, 0xd6, 0x1e, 0x44, 0xa3,
- 0x21, 0xd4, 0x9d, 0x1b, 0xae, 0xf7, 0xd9, 0xef, 0x83, 0x82, 0x0a, 0x47,
- 0x2f, 0x1f, 0xd1, 0x79, 0x30, 0x29, 0x59, 0xfd, 0xb9, 0x5e, 0x1c, 0x01,
- 0xf5, 0x0c, 0x69, 0x14, 0x8d, 0xbe, 0x00, 0xb2, 0x94, 0x23, 0xe8, 0xad,
- 0x90, 0xee, 0x50, 0xb4, 0x66, 0x90, 0x48, 0xa1, 0x2a, 0xf4, 0x45, 0x7b,
- 0xb2, 0x8d, 0x68, 0x9c, 0x8f, 0xee, 0xe9, 0xf0, 0xdc, 0xd5, 0xc0, 0xa1,
- 0x15, 0xb8, 0xe3, 0x25, 0xb8, 0x4d, 0x30, 0xfb, 0x50, 0xd6, 0x7d, 0x64,
- 0x30, 0xfb, 0xb4, 0x0a, 0xfc, 0xc6, 0x7f, 0x6f, 0x0f, 0x8a, 0xe2, 0x66,
- 0x3b, 0x9d, 0xbc, 0x9f, 0x14, 0x31, 0x7d, 0x46, 0x7c, 0xad, 0xf1, 0xf1,
- 0x80, 0x3e, 0x8c, 0xfe, 0x52, 0xe1, 0xfb, 0xc5, 0xb8, 0x7d, 0x26, 0xff,
- 0xbd, 0xcd, 0xe0, 0x5f, 0x00, 0x28, 0x0e, 0x16, 0xae, 0x85, 0x7b, 0xd0,
- 0xac, 0x04, 0x67, 0x8e, 0x8e, 0x63, 0x3b, 0x65, 0xf4, 0xaf, 0xa3, 0x8e,
- 0x92, 0xdb, 0x8f, 0x7b, 0x3b, 0x3b, 0xbb, 0xfb, 0xbb, 0x9f, 0xbd, 0xd8,
- 0xd9, 0xdf, 0xdd, 0xdd, 0xdd, 0xdb, 0xdf, 0xdd, 0xdf, 0xdf, 0xdb, 0xf9,
- 0x69, 0xbb, 0xb3, 0xb1, 0x71, 0x74, 0xf6, 0xdd, 0xdb, 0xd3, 0xb3, 0x83,
- 0xa3, 0xe8, 0xf2, 0x8c, 0xf4, 0x5d, 0xb6, 0x55, 0xb4, 0x9c, 0x74, 0xa0,
- 0x3e, 0x95, 0x99, 0xdc, 0x6c, 0x71, 0x50, 0xa2, 0xa3, 0xd1, 0x65, 0x06,
- 0xa1, 0x98, 0x5f, 0x1a, 0xdc, 0x94, 0xb3, 0x0f, 0xb3, 0xaf, 0x8f, 0xe9,
- 0xa4, 0x27, 0x51, 0x61, 0x5e, 0xef, 0xc1, 0xd6, 0x1a, 0x91, 0x2a, 0x94,
- 0xa9, 0x2b, 0x3a, 0x0e, 0x27, 0x9b, 0x8b, 0x0a, 0xdc, 0x14, 0xd7, 0xb4,
- 0x8f, 0x9b, 0x94, 0xe2, 0x24, 0x45, 0x35, 0xa0, 0xc1, 0x15, 0x0b, 0x50,
- 0xbf, 0xa5, 0x14, 0x66, 0x27, 0x79, 0x60, 0xab, 0x31, 0xc1, 0xb3, 0xb5,
- 0x53, 0xa2, 0x8b, 0x27, 0x79, 0xc0, 0xac, 0xab, 0x6c, 0x42, 0x90, 0xcc,
- 0xfc, 0xec, 0x80, 0x60, 0x64, 0x9a, 0x5c, 0x9a, 0xdb, 0x90, 0xe1, 0xbe,
- 0x6e, 0xe9, 0x8e, 0xfb, 0x31, 0xee, 0xe1, 0xbb, 0xe0, 0x6f, 0xc2, 0x4b,
- 0x67, 0xdb, 0x99, 0x9f, 0x64, 0x00, 0xef, 0x86, 0x27, 0x6f, 0xbf, 0x82,
- 0x7f, 0xe9, 0xbb, 0xb3, 0x8b, 0xa3, 0x21, 0x35, 0xcb, 0xb7, 0xf1, 0x06,
- 0x2c, 0x10, 0x7c, 0x68, 0x75, 0x54, 0x72, 0x04, 0xb8, 0xeb, 0x3f, 0x41,
- 0xe3, 0x98, 0xf4, 0x5c, 0xea, 0x01, 0x86, 0x19, 0x48, 0x8b, 0x9c, 0x52,
- 0xd0, 0xce, 0xe0, 0x70, 0x1a, 0xe4, 0xf5, 0x2f, 0x66, 0x31, 0x83, 0xc1,
- 0x26, 0x03, 0x41, 0x55, 0x43, 0x24, 0xc1, 0x36, 0xc3, 0xaa, 0x6c, 0xb3,
- 0xd4, 0xba, 0x5d, 0x66, 0x60, 0x15, 0x68, 0x25, 0xcb, 0x1d, 0x80, 0x6e,
- 0x65, 0x45, 0xf8, 0x8c, 0x5d, 0x4d, 0xe3, 0x6b, 0x74, 0xd8, 0x3c, 0x7e,
- 0x41, 0x67, 0xda, 0xfd, 0xc7, 0x76, 0x89, 0x9a, 0x7d, 0xdc, 0xde, 0x09,
- 0x08, 0x00, 0xd9, 0xee, 0xc8, 0x93, 0x50, 0xc3, 0xb8, 0x48, 0x48, 0xa8,
- 0x31, 0xc3, 0x2e, 0x76, 0x2e, 0x84, 0x51, 0x47, 0xfa, 0xd5, 0x02, 0x95,
- 0x1b, 0x62, 0x54, 0xe8, 0x07, 0x69, 0x51, 0x22, 0xd9, 0xa3, 0x92, 0x9c,
- 0x57, 0xa0, 0x0b, 0xc4, 0xc3, 0xa3, 0x4f, 0x24, 0x7a, 0x41, 0x5f, 0x94,
- 0x25, 0xe7, 0xc1, 0xd0, 0xd8, 0x23, 0x89, 0x88, 0xe1, 0xdc, 0x1f, 0x15,
- 0xd9, 0x3a, 0x0c, 0xb3, 0x9c, 0x8e, 0xd3, 0xb2, 0x63, 0x49, 0x46, 0x1e,
- 0x78, 0xcb, 0x3b, 0xc0, 0x8a, 0x92, 0x86, 0x12, 0xd3, 0xed, 0xa1, 0x55,
- 0x47, 0x34, 0xe9, 0x36, 0x9b, 0xcd, 0x24, 0x1b, 0xb3, 0xc3, 0x09, 0x28,
- 0xbe, 0x95, 0x54, 0x73, 0xa9, 0x5c, 0x5d, 0x0d, 0xe6, 0xb3, 0xdc, 0xbb,
- 0xa4, 0x7f, 0x48, 0x34, 0xbe, 0xb1, 0x74, 0x6f, 0xf7, 0x61, 0x76, 0x4c,
- 0x12, 0x27, 0xf1, 0x4a, 0xa1, 0x1c, 0x8d, 0xe9, 0x0f, 0x90, 0xfd, 0x2b,
- 0xcb, 0x16, 0x56, 0x2f, 0x69, 0x70, 0xd5, 0x6a, 0x6a, 0xc8, 0x06, 0x02,
- 0x81, 0x5d, 0x32, 0x53, 0xb0, 0x3c, 0x5a, 0x50, 0xcf, 0xbd, 0xca, 0x7b,
- 0x91, 0x96, 0x45, 0x32, 0xbd, 0xd2, 0x22, 0x74, 0x5a, 0xf7, 0x6d, 0xb4,
- 0x0a, 0x1a, 0x90, 0x49, 0x48, 0xfc, 0xef, 0x72, 0xee, 0x32, 0x62, 0x32,
- 0xe5, 0x19, 0xd7, 0x60, 0x9c, 0x8a, 0xe0, 0x5d, 0x65, 0x14, 0xe2, 0x99,
- 0x19, 0x18, 0xc4, 0xed, 0x46, 0xe4, 0x00, 0x7a, 0x6b, 0x53, 0x70, 0x68,
- 0x70, 0x80, 0xe4, 0x02, 0x75, 0x04, 0x0f, 0x2e, 0x47, 0xb4, 0xda, 0xee,
- 0x39, 0x5e, 0x3b, 0xb6, 0x71, 0x63, 0xd5, 0x0e, 0xc3, 0xb2, 0x2a, 0x02,
- 0x43, 0x68, 0x70, 0x7e, 0x7e, 0x50, 0x34, 0x40, 0x18, 0xc5, 0xe9, 0xa0,
- 0x21, 0x58, 0x75, 0x59, 0xb8, 0x15, 0x05, 0x8a, 0x77, 0xec, 0x8a, 0x07,
- 0xb5, 0x1d, 0x43, 0xe5, 0x48, 0xeb, 0xcf, 0xe1, 0x87, 0x8f, 0x60, 0x73,
- 0x48, 0x26, 0xf4, 0x4f, 0x57, 0x72, 0x4a, 0xd2, 0xf9, 0xe3, 0x87, 0x51,
- 0x07, 0xf1, 0x51, 0x1d, 0x63, 0xae, 0x9a, 0x97, 0x04, 0x6b, 0xa8, 0x8f,
- 0x92, 0x11, 0x07, 0x2c, 0x22, 0xed, 0x5b, 0xd0, 0x3e, 0x2b, 0x70, 0x8e,
- 0x38, 0x08, 0x12, 0xe6, 0xbb, 0x1f, 0x7d, 0x19, 0x17, 0xe9, 0xb8, 0x17,
- 0x1d, 0xa5, 0x24, 0xab, 0x97, 0x3d, 0x8f, 0xc9, 0xe8, 0x90, 0x2c, 0x07,
- 0xd1, 0x77, 0x56, 0x1d, 0x94, 0xee, 0x5c, 0xc4, 0x9e, 0xc2, 0xb4, 0xe8,
- 0x12, 0xd5, 0x36, 0xc4, 0x66, 0xab, 0x56, 0xd7, 0x30, 0x29, 0x0c, 0x6d,
- 0x7b, 0xb8, 0x39, 0x6c, 0x66, 0x5c, 0xdc, 0x56, 0x81, 0xd6, 0x45, 0xaa,
- 0x2a, 0xd8, 0x76, 0xc8, 0x22, 0x10, 0xd6, 0x77, 0xae, 0x85, 0x2e, 0x94,
- 0xe6, 0xb2, 0xb9, 0x05, 0x28, 0x79, 0x47, 0xaa, 0xda, 0x72, 0x0a, 0x0d,
- 0x9b, 0x31, 0x4f, 0x2f, 0x6e, 0x23, 0x3b, 0xae, 0x1b, 0x08, 0x2d, 0xa7,
- 0x75, 0xe2, 0x15, 0x51, 0x7e, 0x72, 0x76, 0x79, 0xfc, 0xbb, 0x68, 0x98,
- 0x72, 0x9d, 0x45, 0x47, 0x39, 0x7c, 0xc8, 0xd9, 0xd9, 0xad, 0x5e, 0xa8,
- 0xc6, 0x9e, 0xba, 0x34, 0x55, 0x35, 0x0b, 0x5a, 0x2e, 0x84, 0x94, 0xcf,
- 0xb9, 0x97, 0xf2, 0xe5, 0xbc, 0x32, 0xa0, 0xd9, 0xbb, 0x34, 0x8e, 0x5c,
- 0x01, 0x6b, 0x9e, 0xfb, 0x7b, 0x26, 0xfd, 0xf7, 0x1e, 0x62, 0x7c, 0xa9,
- 0x2f, 0x02, 0x00, 0x8e, 0xdb, 0x51, 0x9b, 0x00, 0x6c, 0x29, 0xe3, 0x34,
- 0xa7, 0x2b, 0x98, 0xf9, 0xd4, 0x58, 0xcc, 0x80, 0x88, 0x71, 0xc3, 0xd8,
- 0xd9, 0xcc, 0x11, 0x8f, 0x88, 0xae, 0xb0, 0x5c, 0x63, 0xa4, 0xc3, 0x09,
- 0x3c, 0xb8, 0x9a, 0x16, 0xed, 0xdc, 0x85, 0xac, 0x14, 0x09, 0xa1, 0x48,
- 0xab, 0x43, 0x85, 0x0e, 0x85, 0x20, 0xdc, 0x40, 0xdc, 0x18, 0xb5, 0x0a,
- 0x59, 0x62, 0xee, 0x6e, 0xb6, 0x40, 0xb6, 0xe3, 0xb0, 0x1e, 0xa6, 0xd3,
- 0x49, 0x34, 0x5b, 0x69, 0xca, 0xb3, 0xf2, 0x61, 0xce, 0xd1, 0x81, 0xba,
- 0xf2, 0xd9, 0x67, 0x8d, 0x7b, 0xf7, 0xc1, 0x3d, 0xbd, 0x4f, 0x5f, 0x07,
- 0x6a, 0xd1, 0x94, 0x7d, 0x8e, 0x56, 0x0a, 0xc8, 0xeb, 0x46, 0x0d, 0x99,
- 0x33, 0x4c, 0x63, 0x94, 0x0e, 0x9d, 0xfd, 0xb0, 0x65, 0x5f, 0x5c, 0xb5,
- 0xa3, 0x0d, 0x11, 0xba, 0x65, 0x9c, 0x71, 0x21, 0x9e, 0xeb, 0x35, 0x52,
- 0xa8, 0x9d, 0xbc, 0xfa, 0x60, 0x03, 0x01, 0x85, 0x84, 0xa4, 0x01, 0xcb,
- 0x34, 0x2c, 0x6f, 0x0d, 0x33, 0x6d, 0x98, 0x73, 0x4e, 0x74, 0x30, 0x0e,
- 0xb3, 0xb0, 0x7a, 0xd6, 0x06, 0x0e, 0x32, 0xdf, 0xdd, 0x18, 0xfd, 0x77,
- 0xeb, 0x87, 0xf3, 0xee, 0x9f, 0x19, 0xce, 0x41, 0xf4, 0x68, 0xb0, 0x9f,
- 0xd6, 0x3f, 0x60, 0x26, 0x52, 0xe8, 0x49, 0x9d, 0x64, 0x30, 0x08, 0x19,
- 0xfd, 0xc9, 0x1a, 0x8d, 0xd9, 0x09, 0x30, 0xaa, 0x62, 0x4d, 0x36, 0xd5,
- 0x95, 0x79, 0x26, 0x4f, 0x43, 0x7e, 0xe4, 0xf6, 0x7b, 0x36, 0x94, 0x8f,
- 0x1d, 0xae, 0xe5, 0xb9, 0x5b, 0xb4, 0xaa, 0xef, 0x4f, 0x32, 0xb0, 0xa4,
- 0x85, 0x20, 0xe6, 0x5f, 0x10, 0xc8, 0xe5, 0x79, 0xc6, 0x1e, 0x7f, 0x40,
- 0xe0, 0x06, 0x0d, 0xd6, 0x97, 0x90, 0xe3, 0x99, 0x20, 0x33, 0xaa, 0xf6,
- 0x9a, 0x7e, 0xb6, 0x2b, 0x70, 0x4d, 0xc4, 0x1e, 0x15, 0x1b, 0x8f, 0xf4,
- 0x4c, 0xba, 0xac, 0x16, 0x08, 0x3f, 0xac, 0x96, 0xeb, 0x92, 0x7b, 0x45,
- 0x8a, 0xce, 0x63, 0xe5, 0x82, 0x5a, 0xd6, 0x28, 0xfc, 0x25, 0x63, 0x94,
- 0xba, 0xc6, 0x5a, 0x0e, 0x45, 0x8a, 0xac, 0xe2, 0x9e, 0x4f, 0x12, 0x69,
- 0xa9, 0x5c, 0x1b, 0x06, 0x7c, 0x18, 0x30, 0x5e, 0x21, 0x67, 0xb0, 0xef,
- 0xe8, 0x6a, 0x99, 0x23, 0x3c, 0x43, 0xb3, 0xd1, 0x35, 0x99, 0x90, 0x1a,
- 0xbd, 0x38, 0x78, 0xfb, 0xd5, 0x31, 0xce, 0x3b, 0xb3, 0x5d, 0x9f, 0x3a,
- 0xcb, 0xb9, 0x71, 0x7d, 0x38, 0x8b, 0x0b, 0x01, 0xeb, 0x48, 0xf9, 0x8d,
- 0xc9, 0x72, 0xcc, 0x7e, 0xea, 0x77, 0x7a, 0x0c, 0xd2, 0x02, 0x38, 0x9d,
- 0xd3, 0x94, 0x07, 0xc1, 0x2c, 0x57, 0x5d, 0xc2, 0x1b, 0x91, 0xa9, 0xa7,
- 0xe0, 0x18, 0x2c, 0xd2, 0xd0, 0x0a, 0x41, 0x97, 0x2d, 0x96, 0xa3, 0x45,
- 0xac, 0x29, 0x5a, 0x71, 0x98, 0xf5, 0xa3, 0x9a, 0xc0, 0xa0, 0x32, 0x05,
- 0xbe, 0x3b, 0x24, 0x20, 0xd2, 0x49, 0x9d, 0x39, 0xa4, 0xce, 0x41, 0xa8,
- 0x71, 0x09, 0x3e, 0xd2, 0xee, 0xce, 0x8e, 0xc7, 0xdc, 0xf1, 0xd9, 0x4b,
- 0x0d, 0x22, 0xcb, 0xa3, 0x9d, 0xfe, 0x8b, 0x17, 0xeb, 0xe8, 0xc7, 0x35,
- 0x8a, 0x2c, 0x94, 0x67, 0x1f, 0xdd, 0x66, 0x9f, 0x1f, 0x5d, 0xd7, 0x66,
- 0x8b, 0x6c, 0x81, 0x32, 0x1d, 0xea, 0x8e, 0x2f, 0x5c, 0xcc, 0x87, 0xea,
- 0x20, 0x62, 0xfb, 0x82, 0x2d, 0x72, 0xee, 0x04, 0x0c, 0x5e, 0xca, 0x8d,
- 0xc8, 0x49, 0x02, 0x80, 0x90, 0x32, 0x75, 0x65, 0xc1, 0x1e, 0xf9, 0xd4,
- 0x99, 0x68, 0x3f, 0x6a, 0x61, 0x02, 0x11, 0x73, 0xcd, 0x12, 0x5d, 0x35,
- 0x67, 0x63, 0x8c, 0xf4, 0xdd, 0x39, 0x2b, 0xa3, 0xa4, 0xbb, 0x88, 0xc0,
- 0x4e, 0xd2, 0x27, 0x0c, 0x13, 0xdb, 0x35, 0x59, 0xf4, 0x9d, 0x16, 0xb0,
- 0xe3, 0xe2, 0x03, 0xec, 0x9b, 0x11, 0xc8, 0xe2, 0x74, 0xae, 0x95, 0xe4,
- 0xdc, 0xee, 0xaf, 0x51, 0x8c, 0x2f, 0xa3, 0x7e, 0xc0, 0xd2, 0x15, 0x85,
- 0x87, 0xf9, 0xf9, 0x6c, 0x65, 0x32, 0x8a, 0xf6, 0x80, 0xd6, 0xcd, 0xd0,
- 0x55, 0xa9, 0xe8, 0xdb, 0x53, 0xc1, 0x12, 0x14, 0xd4, 0x60, 0xe9, 0x2d,
- 0x5d, 0x4a, 0x37, 0xb8, 0x22, 0x6a, 0x0c, 0xfc, 0xe3, 0x86, 0x12, 0xb7,
- 0xd4, 0xe6, 0x34, 0x29, 0x36, 0xe5, 0xfc, 0x47, 0xd5, 0x4e, 0xea, 0x8a,
- 0xb2, 0x42, 0x36, 0xf2, 0x83, 0x38, 0x3f, 0xd9, 0xbf, 0x3e, 0xb6, 0x47,
- 0x46, 0xc5, 0x87, 0xd3, 0x6a, 0xae, 0xd7, 0x46, 0xd9, 0x6a, 0x30, 0xb8,
- 0x94, 0xf7, 0xa5, 0xeb, 0xb8, 0xbd, 0x3b, 0x79, 0xdf, 0x96, 0xa3, 0x85,
- 0xe8, 0xf9, 0xda, 0x57, 0x64, 0x26, 0x17, 0xed, 0x6d, 0x38, 0x12, 0xac,
- 0x9d, 0x80, 0x5b, 0xa4, 0x55, 0x0e, 0xbe, 0x11, 0x69, 0xce, 0x04, 0x70,
- 0x9b, 0x98, 0x6e, 0x00, 0x34, 0x0b, 0xde, 0x76, 0x8b, 0x68, 0x8a, 0x2b,
- 0x45, 0xa7, 0x40, 0x61, 0x92, 0x13, 0x64, 0xa2, 0xb0, 0xcb, 0xc4, 0x83,
- 0x7d, 0xe4, 0xcb, 0xb9, 0xcc, 0x02, 0x0e, 0x07, 0x1a, 0x7c, 0x5c, 0xdc,
- 0xc0, 0xc9, 0xee, 0x14, 0xa4, 0xe6, 0x4d, 0x14, 0x02, 0x56, 0xd0, 0xd5,
- 0x23, 0xf7, 0x0e, 0xb8, 0x6a, 0x65, 0x29, 0xaa, 0x2b, 0x10, 0xe8, 0x13,
- 0x1f, 0x4b, 0xf9, 0xcc, 0x32, 0x5a, 0x8d, 0xa5, 0x20, 0xfe, 0x46, 0x89,
- 0xc3, 0x1a, 0xc9, 0x55, 0xf5, 0x31, 0x69, 0x4b, 0x44, 0x19, 0xa8, 0x3f,
- 0xa8, 0x0b, 0x87, 0xf4, 0xda, 0xda, 0x12, 0x42, 0x96, 0x05, 0x68, 0x81,
- 0xa4, 0xdb, 0x1a, 0x9b, 0xd5, 0x2c, 0x12, 0x28, 0xa1, 0x1e, 0xea, 0x46,
- 0xf3, 0x6e, 0x18, 0x13, 0x5f, 0x82, 0xfc, 0x60, 0xc1, 0x67, 0x24, 0xf2,
- 0x4c, 0xfa, 0xc4, 0x0c, 0x65, 0x80, 0x92, 0xd4, 0x22, 0x81, 0x55, 0xc3,
- 0x4b, 0x57, 0xaa, 0xdc, 0xe4, 0xc0, 0x6f, 0x8f, 0x2f, 0xbe, 0x3c, 0x1b,
- 0x1e, 0x13, 0x87, 0x38, 0x3a, 0xfe, 0xf2, 0x1d, 0x73, 0x0f, 0xde, 0x31,
- 0x31, 0x52, 0x00, 0x97, 0x41, 0x50, 0x96, 0x91, 0x4c, 0xe4, 0x64, 0x64,
- 0xc9, 0x89, 0xec, 0x19, 0x65, 0x68, 0x4c, 0x97, 0x4a, 0xd1, 0xd3, 0x44,
- 0xb4, 0xda, 0x14, 0xd1, 0x74, 0x1e, 0xb2, 0x84, 0x65, 0xe7, 0x39, 0x63,
- 0x0c, 0x97, 0x86, 0xd1, 0x61, 0x18, 0xb7, 0xc5, 0xbe, 0x97, 0x8d, 0xef,
- 0xc4, 0x86, 0xa1, 0x07, 0xc2, 0x57, 0xd1, 0xb1, 0x6a, 0x39, 0x83, 0xa0,
- 0x14, 0xae, 0xc2, 0x57, 0x4f, 0x33, 0xb9, 0xbd, 0x38, 0x8d, 0x08, 0x67,
- 0x19, 0xb8, 0xec, 0x29, 0xaa, 0xee, 0x29, 0xfe, 0xa4, 0xd6, 0xae, 0x29,
- 0x84, 0xe0, 0x88, 0xcd, 0x48, 0x0a, 0xc6, 0x54, 0xd9, 0x32, 0xb8, 0x50,
- 0x91, 0x48, 0xc2, 0xb2, 0xdc, 0x9e, 0x6a, 0xe6, 0x97, 0xa0, 0x15, 0x85,
- 0x55, 0xdc, 0xe4, 0x23, 0xc1, 0x90, 0x01, 0xa2, 0x2d, 0x08, 0x7e, 0xb0,
- 0xd4, 0x77, 0x71, 0xe0, 0x52, 0xbc, 0xf2, 0x81, 0xe7, 0x4b, 0x49, 0xe7,
- 0x6e, 0x3d, 0x3b, 0xb8, 0x94, 0x99, 0x72, 0x72, 0xa9, 0x5c, 0xc8, 0xae,
- 0xa2, 0x36, 0xfc, 0x48, 0x3e, 0x33, 0x8a, 0x03, 0x73, 0x1c, 0x6e, 0x9a,
- 0x9c, 0x27, 0x0e, 0x8d, 0x0b, 0x24, 0xe0, 0xf5, 0x05, 0x61, 0xcc, 0xce,
- 0xa2, 0xe1, 0x3c, 0xf5, 0x9c, 0x68, 0xf5, 0x76, 0xf3, 0x96, 0xc2, 0x78,
- 0x14, 0xd5, 0xeb, 0x7e, 0xea, 0x19, 0x94, 0xd6, 0xa5, 0x16, 0x4c, 0xf9,
- 0x50, 0x86, 0x26, 0xb6, 0x8d, 0x8d, 0x8d, 0xa3, 0xe3, 0xcb, 0x83, 0x93,
- 0xd3, 0xe3, 0xa3, 0xe8, 0xe4, 0xed, 0xeb, 0xb3, 0x8b, 0x37, 0x07, 0x97,
- 0xea, 0x64, 0x3a, 0x72, 0x3a, 0xaa, 0x2b, 0x67, 0xe2, 0x4c, 0x00, 0x5e,
- 0x7f, 0x05, 0x09, 0xd3, 0x2e, 0x5e, 0x2b, 0x60, 0x90, 0x2c, 0x43, 0x52,
- 0x59, 0x83, 0x8d, 0x48, 0x9d, 0x53, 0xbe, 0x40, 0x09, 0xdf, 0xcf, 0xdb,
- 0xce, 0xa1, 0x30, 0xb0, 0xe5, 0x34, 0x0d, 0x13, 0xd8, 0x5f, 0x8f, 0x36,
- 0xe5, 0x8a, 0x71, 0xc9, 0xdd, 0x04, 0xdc, 0x7a, 0x64, 0xc1, 0x80, 0x26,
- 0xfb, 0x27, 0x9c, 0xdb, 0x0a, 0xf1, 0x52, 0xab, 0x9a, 0x9f, 0x94, 0xae,
- 0x98, 0x1f, 0x93, 0x0b, 0xb7, 0x13, 0x64, 0x57, 0x11, 0x05, 0xa2, 0x6a,
- 0x70, 0xd0, 0xa6, 0x4b, 0x54, 0xb2, 0x0a, 0x24, 0xe2, 0xd2, 0xc4, 0x27,
- 0xe1, 0xfe, 0x72, 0x26, 0xd7, 0x06, 0x7b, 0x6d, 0x4b, 0xad, 0x8d, 0xf1,
- 0x50, 0x26, 0xf3, 0x82, 0xeb, 0x40, 0xd9, 0x59, 0xe7, 0x57, 0x3c, 0x13,
- 0x35, 0x3b, 0xae, 0x82, 0x1e, 0x86, 0x4d, 0x6d, 0x3a, 0x27, 0x04, 0x49,
- 0x2e, 0xfd, 0x13, 0x45, 0x31, 0xe3, 0xb5, 0xe0, 0x9a, 0xbf, 0xfc, 0x73,
- 0xee, 0xd3, 0xfa, 0x35, 0x4a, 0xc3, 0x2b, 0x2c, 0x41, 0xdd, 0x23, 0x3d,
- 0x6d, 0xfe, 0xdc, 0x16, 0x46, 0x69, 0x47, 0xf4, 0x10, 0x17, 0x91, 0xec,
- 0x6b, 0xf7, 0x1a, 0x26, 0x05, 0x5d, 0xd8, 0xb6, 0x50, 0x84, 0x27, 0x08,
- 0x01, 0xa3, 0x4c, 0x80, 0x4a, 0xb0, 0x06, 0x32, 0x0f, 0xd0, 0x77, 0x69,
- 0x46, 0x63, 0x16, 0xf1, 0xbd, 0x9d, 0xd7, 0x15, 0x69, 0x6a, 0x54, 0xc3,
- 0x76, 0x05, 0xc2, 0x86, 0xee, 0x59, 0xac, 0x64, 0xf0, 0x42, 0xec, 0xfd,
- 0xae, 0x58, 0xff, 0x4d, 0xc3, 0x36, 0x67, 0x92, 0xd5, 0x06, 0xd5, 0x73,
- 0xd0, 0x34, 0x53, 0x57, 0x26, 0x15, 0xbe, 0x58, 0xf5, 0x54, 0x86, 0x9c,
- 0xde, 0xba, 0xc6, 0xe8, 0x27, 0x6d, 0x23, 0x50, 0x2e, 0x8e, 0xf2, 0x9e,
- 0x5a, 0xcc, 0x2b, 0x86, 0xc7, 0x8e, 0xd1, 0x1a, 0x36, 0x14, 0x90, 0x41,
- 0x39, 0x25, 0x4c, 0xa7, 0x61, 0x1e, 0xee, 0x98, 0xeb, 0x4b, 0x71, 0x8d,
- 0x4e, 0xad, 0x27, 0x17, 0xc4, 0x92, 0x8b, 0x47, 0x5d, 0x91, 0x47, 0xc1,
- 0xf4, 0xe6, 0x1b, 0x86, 0x94, 0x68, 0x2f, 0x59, 0x9c, 0x00, 0xb8, 0xbf,
- 0xe4, 0x63, 0x83, 0xc9, 0xb3, 0x3b, 0x33, 0x89, 0x0b, 0xd8, 0x18, 0x11,
- 0x52, 0x2a, 0x77, 0x06, 0x48, 0x00, 0x73, 0x75, 0x66, 0x4b, 0x5c, 0x3e,
- 0xbe, 0xac, 0x70, 0x5f, 0x60, 0x2b, 0x62, 0xce, 0x2a, 0xb3, 0x43, 0x21,
- 0xc1, 0x6d, 0xae, 0x15, 0xab, 0x3b, 0x4f, 0xcd, 0x20, 0x42, 0x49, 0x43,
- 0x36, 0xce, 0xb3, 0x42, 0xce, 0x1b, 0x24, 0xed, 0x8e, 0xaf, 0xfe, 0xd0,
- 0x59, 0xdc, 0x50, 0x1f, 0x9d, 0xe8, 0x9a, 0x75, 0x95, 0x51, 0x16, 0xc6,
- 0xbb, 0xe9, 0xb6, 0x4c, 0xe4, 0xf1, 0x57, 0x17, 0xf1, 0x55, 0x9c, 0x4c,
- 0x7f, 0xbf, 0xb7, 0x33, 0x8c, 0xaf, 0x97, 0xd3, 0xf8, 0x0f, 0x78, 0xf1,
- 0xd5, 0x93, 0x27, 0x7b, 0x3b, 0x9f, 0x7e, 0xb6, 0xd3, 0xa9, 0xb9, 0x8a,
- 0x02, 0x3f, 0x33, 0xdc, 0x86, 0x28, 0xd7, 0xcc, 0x7c, 0x17, 0xfd, 0x0c,
- 0xc6, 0xd7, 0x29, 0x77, 0xf3, 0x35, 0x0b, 0x2f, 0xba, 0x06, 0x31, 0x02,
- 0x22, 0x84, 0x4d, 0x6a, 0x5d, 0x28, 0xba, 0x71, 0x89, 0xae, 0x3f, 0xd9,
- 0xdd, 0x17, 0x56, 0x76, 0x0d, 0xbb, 0x54, 0x2c, 0x14, 0x1b, 0xbd, 0x4c,
- 0xe7, 0x74, 0x03, 0x7d, 0x1e, 0x95, 0xf1, 0xb5, 0xa3, 0x55, 0xb4, 0xe0,
- 0x2a, 0x39, 0x9b, 0x25, 0xfc, 0x2a, 0x45, 0x4d, 0xe1, 0x41, 0xb4, 0x79,
- 0x29, 0x90, 0x69, 0x10, 0x7c, 0x16, 0x49, 0x3e, 0x95, 0x6c, 0xd7, 0x78,
- 0x66, 0x21, 0x97, 0xfc, 0x3e, 0x3b, 0xe3, 0x07, 0x8b, 0xa9, 0xab, 0x5b,
- 0x0d, 0x0d, 0x2c, 0xf5, 0x04, 0x37, 0x5d, 0x14, 0xbe, 0x4e, 0x92, 0x5c,
- 0x37, 0x21, 0x18, 0x1b, 0x2d, 0x16, 0xaa, 0x40, 0x74, 0x30, 0xab, 0x9e,
- 0x2b, 0xb8, 0xd2, 0x9f, 0xd8, 0x4c, 0x07, 0xf8, 0x1d, 0xd5, 0xe8, 0xb4,
- 0xa8, 0x6e, 0x67, 0x21, 0xf9, 0x41, 0xae, 0xc8, 0x87, 0xa6, 0x13, 0x57,
- 0xe6, 0x15, 0x97, 0x7e, 0x63, 0x5e, 0x9a, 0x92, 0xbb, 0xfb, 0xf9, 0x2b,
- 0x10, 0xc4, 0xee, 0xe7, 0x7f, 0x70, 0x9f, 0xed, 0xe9, 0x67, 0x7b, 0x9f,
- 0xff, 0x61, 0x30, 0xc0, 0xf8, 0x98, 0x42, 0xba, 0xf6, 0x75, 0x57, 0x93,
- 0x0e, 0x63, 0x3d, 0xc2, 0xf2, 0x97, 0x43, 0xde, 0x91, 0xbd, 0xee, 0x58,
- 0xcf, 0xe1, 0x2a, 0xf7, 0xd4, 0xf6, 0xee, 0xf8, 0x56, 0x6a, 0x80, 0xc5,
- 0x40, 0xf5, 0x2c, 0xda, 0x16, 0xdd, 0x99, 0x08, 0xd1, 0x4e, 0xe1, 0x20,
- 0x4b, 0xe2, 0xe8, 0x8f, 0x4c, 0xa9, 0x7f, 0xdc, 0x88, 0xd4, 0x44, 0xce,
- 0xdb, 0x81, 0xb2, 0x84, 0x91, 0x91, 0xad, 0xd4, 0x96, 0x17, 0xc8, 0x37,
- 0x6e, 0x99, 0xa3, 0x2c, 0xf9, 0x0e, 0x0c, 0x0a, 0x5d, 0xfc, 0x49, 0x61,
- 0x7f, 0x64, 0xc3, 0x99, 0x9f, 0x21, 0x9f, 0x41, 0xb2, 0x82, 0x48, 0xc2,
- 0x28, 0x99, 0x37, 0xe0, 0xc9, 0xdf, 0x7f, 0xff, 0xbd, 0x8a, 0x53, 0xf4,
- 0x8b, 0x8e, 0xfb, 0x86, 0x38, 0xd1, 0x84, 0x98, 0xdb, 0x0c, 0xe5, 0x14,
- 0xb4, 0x32, 0x89, 0x5e, 0xf8, 0x57, 0x3a, 0x4f, 0x69, 0x84, 0x36, 0x56,
- 0xea, 0xf8, 0xf2, 0xc8, 0xb0, 0xa4, 0xc7, 0xc2, 0xc4, 0x40, 0x99, 0x9b,
- 0x70, 0x05, 0xfa, 0x50, 0x8b, 0x90, 0xf0, 0x79, 0xe7, 0xb0, 0xe9, 0xa0,
- 0x7d, 0x6a, 0xcc, 0xd4, 0x60, 0xdd, 0x48, 0x50, 0xac, 0xc8, 0x38, 0xaf,
- 0x3a, 0xf2, 0xe0, 0x75, 0xda, 0x51, 0x03, 0xaf, 0x7c, 0xd2, 0xf1, 0x39,
- 0xa4, 0xb2, 0x1b, 0xd8, 0xb2, 0x57, 0x22, 0x38, 0xa5, 0x3f, 0x27, 0xaf,
- 0x76, 0x77, 0xda, 0x9f, 0x60, 0x6d, 0x28, 0x62, 0xf4, 0xd5, 0x57, 0xde,
- 0x40, 0xfe, 0xd8, 0xf3, 0xe9, 0x44, 0x9e, 0xd6, 0xa2, 0x82, 0x28, 0xb2,
- 0xf2, 0xaa, 0x33, 0xe2, 0xfb, 0x95, 0xff, 0x7f, 0xcd, 0x38, 0x10, 0xf0,
- 0xa5, 0xcf, 0x16, 0xcb, 0xd1, 0x2c, 0xad, 0x0c, 0x78, 0x9b, 0x27, 0xf8,
- 0x39, 0x4c, 0x2a, 0x89, 0xa3, 0x0d, 0x54, 0xa3, 0x15, 0xc9, 0xaf, 0x7b,
- 0x95, 0x65, 0xa3, 0x38, 0xef, 0xaa, 0x11, 0xd5, 0xc6, 0xd9, 0xdd, 0xdd,
- 0x7b, 0xf2, 0xf4, 0x59, 0x77, 0xa0, 0x52, 0x1a, 0x18, 0x04, 0x14, 0xb3,
- 0x54, 0x55, 0x19, 0x69, 0x22, 0x96, 0xe3, 0x19, 0xd6, 0x96, 0x6f, 0x75,
- 0x36, 0x30, 0x0f, 0xe3, 0xee, 0x5e, 0x49, 0x6f, 0x7f, 0xe0, 0x7e, 0x5e,
- 0xa1, 0x8b, 0x3f, 0xa4, 0x93, 0x57, 0x6e, 0x86, 0x7f, 0xe0, 0xb9, 0xbc,
- 0xd2, 0x49, 0xd0, 0xbe, 0x5a, 0x2c, 0x7d, 0xb1, 0xb5, 0xd1, 0xca, 0xd5,
- 0x5a, 0x37, 0xd7, 0x36, 0x71, 0x03, 0x93, 0x86, 0xa7, 0xab, 0x3f, 0x11,
- 0xcb, 0x2d, 0x64, 0x55, 0x1f, 0x48, 0xbe, 0xfd, 0xd0, 0xa7, 0x56, 0xfa,
- 0xdc, 0x4a, 0xdf, 0xb3, 0xeb, 0x68, 0xc6, 0x89, 0x23, 0xbc, 0x11, 0x3d,
- 0xcd, 0x26, 0x98, 0xc2, 0xd6, 0xa1, 0x82, 0x40, 0x96, 0xc1, 0x8f, 0x74,
- 0xf8, 0xd5, 0x49, 0x57, 0x1d, 0xb4, 0xa2, 0xb8, 0xf5, 0xda, 0x8c, 0x6b,
- 0x2e, 0x6a, 0x42, 0x51, 0x08, 0x36, 0x0c, 0x1e, 0x3c, 0x66, 0x7f, 0x23,
- 0xf7, 0x2b, 0xa9, 0x3f, 0xd4, 0x99, 0xde, 0x39, 0x53, 0x36, 0xd7, 0xe5,
- 0xf8, 0x24, 0x6c, 0x06, 0xa8, 0x2e, 0xe2, 0x78, 0x84, 0xa5, 0x7a, 0xe1,
- 0xb2, 0x06, 0xfa, 0xaf, 0x9d, 0x37, 0xc0, 0x45, 0xa9, 0xeb, 0xa3, 0xf4,
- 0x95, 0x70, 0x13, 0x63, 0x10, 0x1d, 0x57, 0x82, 0x4a, 0x28, 0x21, 0xe4,
- 0x1d, 0xf0, 0x65, 0x8c, 0x92, 0x4a, 0x61, 0x23, 0x11, 0x0b, 0x99, 0x7b,
- 0xbe, 0x74, 0x35, 0x8b, 0x3e, 0x8f, 0x80, 0xfb, 0x2f, 0x6f, 0x69, 0x1c,
- 0x7a, 0xa5, 0xbe, 0x2b, 0x5e, 0x52, 0xe5, 0xc0, 0x79, 0x3e, 0x02, 0xaf,
- 0xad, 0x8a, 0x05, 0xd2, 0x82, 0x4c, 0x74, 0xb4, 0x52, 0xf5, 0x9f, 0x5b,
- 0xe8, 0xfe, 0x19, 0x87, 0xe0, 0x25, 0x6f, 0x03, 0xbe, 0xfe, 0xbc, 0x2b,
- 0x26, 0x3c, 0xf7, 0x2e, 0x0f, 0xa3, 0xe6, 0x59, 0x11, 0x02, 0x0d, 0xe7,
- 0x93, 0x5d, 0x39, 0x38, 0x17, 0x91, 0xc5, 0x38, 0xc9, 0x74, 0x0e, 0x75,
- 0x2a, 0x4d, 0xa6, 0x13, 0x2d, 0xab, 0xa6, 0xb2, 0x50, 0x4f, 0x1b, 0x4f,
- 0x38, 0x83, 0x97, 0x65, 0xc7, 0x2e, 0x07, 0xe0, 0xe0, 0xbd, 0xae, 0x43,
- 0x87, 0x61, 0x91, 0x3a, 0x01, 0xbb, 0xcb, 0x13, 0x2b, 0x39, 0xb6, 0xa1,
- 0xc9, 0x65, 0x5e, 0x96, 0x0f, 0x27, 0x56, 0x04, 0xa2, 0x83, 0x8f, 0xd5,
- 0x97, 0x1c, 0xe4, 0xc6, 0x11, 0x79, 0xcd, 0x89, 0x30, 0xda, 0xe9, 0x2b,
- 0x5e, 0xee, 0xdd, 0xc1, 0x75, 0x7a, 0x25, 0x8b, 0x41, 0x2c, 0xf2, 0x3a,
- 0xd9, 0xa6, 0x3f, 0x7b, 0xf4, 0xf9, 0x1e, 0xcb, 0x64, 0xfc, 0xcb, 0x13,
- 0xf8, 0xed, 0xc3, 0x9b, 0x3f, 0x38, 0x1b, 0xee, 0x5c, 0xf0, 0x2f, 0xa9,
- 0xbb, 0xf1, 0xd5, 0x24, 0xad, 0xa3, 0x04, 0x99, 0x2b, 0xf0, 0xa6, 0x17,
- 0x34, 0x7b, 0x81, 0xb9, 0x19, 0xc0, 0x6b, 0x19, 0xa4, 0x93, 0xc2, 0x87,
- 0xb9, 0xa9, 0x63, 0x51, 0xc5, 0x74, 0x96, 0xba, 0x53, 0x35, 0x98, 0x70,
- 0xa0, 0x2d, 0xee, 0xd5, 0xe4, 0x7e, 0xab, 0x17, 0x06, 0x0f, 0x59, 0xa5,
- 0x4d, 0x57, 0x0e, 0x18, 0x59, 0x68, 0xdc, 0xfd, 0xa6, 0xd6, 0xb6, 0x62,
- 0x2c, 0x07, 0x4d, 0x97, 0xc1, 0x36, 0xa7, 0xf5, 0x1d, 0xac, 0x96, 0x87,
- 0x92, 0x80, 0x8f, 0xb4, 0x28, 0xb7, 0xb8, 0x9b, 0x64, 0x5a, 0x40, 0x53,
- 0xe7, 0x41, 0x6f, 0x44, 0xc1, 0xba, 0x1b, 0x4a, 0x06, 0xba, 0xea, 0x72,
- 0xbd, 0xaa, 0x6d, 0xf8, 0x83, 0x84, 0xb7, 0x1d, 0xcf, 0x04, 0x14, 0x1e,
- 0x64, 0x3b, 0xed, 0xcb, 0x7d, 0xa9, 0x42, 0x50, 0xff, 0xf5, 0x20, 0x3a,
- 0x45, 0xe8, 0x5b, 0x11, 0x4b, 0x66, 0xb1, 0xdd, 0xa9, 0x46, 0x01, 0x44,
- 0x2e, 0x22, 0x75, 0x6f, 0x48, 0xa1, 0x2e, 0x4e, 0xe6, 0x34, 0x32, 0x02,
- 0x8e, 0x9d, 0x57, 0x33, 0x45, 0xa2, 0x50, 0x09, 0xa4, 0x07, 0x2b, 0xb4,
- 0x7b, 0x0e, 0x65, 0xdb, 0x5c, 0xd9, 0xe8, 0x80, 0x48, 0x83, 0x46, 0xc4,
- 0xa1, 0xaf, 0x22, 0x67, 0xc0, 0xca, 0x1d, 0xe1, 0x4b, 0xce, 0x68, 0x22,
- 0x66, 0x16, 0x2d, 0xed, 0x2b, 0x3e, 0x2c, 0x6a, 0x0d, 0x94, 0xc5, 0x73,
- 0x67, 0xd2, 0xe9, 0x40, 0x53, 0x9c, 0x26, 0x4e, 0x9d, 0x56, 0x30, 0x5e,
- 0xc1, 0xc5, 0xcd, 0x14, 0x1a, 0x49, 0x04, 0x0c, 0xef, 0x5f, 0xe0, 0x41,
- 0xf2, 0xb8, 0xe2, 0x3b, 0xfa, 0x85, 0x2f, 0xf9, 0x51, 0x4e, 0x3b, 0x9d,
- 0xe4, 0x72, 0x1d, 0xa0, 0x57, 0xe0, 0xa6, 0x38, 0xd8, 0xcb, 0x37, 0xa7,
- 0x91, 0x65, 0x68, 0x5f, 0x79, 0xe1, 0xd0, 0xa2, 0x76, 0x30, 0x45, 0xb5,
- 0x85, 0x88, 0x04, 0xa4, 0x4f, 0xc9, 0xcd, 0x26, 0x6b, 0xcb, 0x49, 0x5e,
- 0x11, 0x2f, 0x4e, 0xe5, 0x98, 0x06, 0x4f, 0xc8, 0xab, 0x4c, 0x3b, 0x44,
- 0x1a, 0x5d, 0x5e, 0x82, 0x6e, 0x2f, 0xea, 0xf2, 0x50, 0xf9, 0x8b, 0x2e,
- 0xd6, 0x13, 0x1f, 0x07, 0xcb, 0xd7, 0x1d, 0xb4, 0x9c, 0x3c, 0x7e, 0xe6,
- 0xd5, 0x17, 0x95, 0x55, 0xc2, 0xe7, 0xd6, 0xd4, 0x2b, 0x89, 0x96, 0x6d,
- 0x48, 0xd9, 0xf6, 0x6e, 0xd0, 0xfe, 0xab, 0x43, 0x6a, 0x45, 0x0a, 0xa3,
- 0xc9, 0x9e, 0x40, 0xa0, 0x76, 0x9f, 0xa5, 0x48, 0x45, 0x69, 0x34, 0xf4,
- 0xe1, 0x93, 0x7b, 0x69, 0xec, 0xc7, 0x85, 0x07, 0x09, 0x47, 0x13, 0x12,
- 0x30, 0x6e, 0x4b, 0xbb, 0x99, 0x8a, 0xa6, 0x77, 0x9f, 0xc1, 0xae, 0x00,
- 0x3e, 0xb3, 0x3b, 0x40, 0x6a, 0x82, 0x87, 0xd2, 0x71, 0x0d, 0x38, 0x75,
- 0xbd, 0x83, 0x05, 0xed, 0x98, 0x99, 0xc4, 0x29, 0xf1, 0xb6, 0xca, 0x6d,
- 0xfc, 0x6a, 0x91, 0x8e, 0x51, 0xe7, 0xf4, 0xd5, 0x17, 0x93, 0xec, 0x9a,
- 0xb9, 0x55, 0x8f, 0x2e, 0x56, 0xfe, 0xd9, 0xe1, 0x87, 0xf7, 0xb4, 0x53,
- 0x19, 0x30, 0xce, 0x8a, 0xc8, 0xed, 0xf6, 0xf7, 0x9a, 0xf0, 0x25, 0x6a,
- 0x78, 0x92, 0x8d, 0xb5, 0x6d, 0xd7, 0xb4, 0xec, 0x07, 0xb5, 0xef, 0xbe,
- 0x08, 0xfb, 0xb2, 0xc5, 0x89, 0xb5, 0x65, 0x29, 0x50, 0x37, 0x4d, 0x4b,
- 0xb9, 0xbe, 0x1d, 0xae, 0x3a, 0x4c, 0x5a, 0x5c, 0x63, 0x42, 0xee, 0xaa,
- 0xa9, 0xc6, 0xcb, 0x77, 0xbf, 0xe8, 0x4a, 0xa8, 0x63, 0xf7, 0x65, 0x17,
- 0x5c, 0x8b, 0x79, 0x91, 0xa1, 0xe8, 0xea, 0x85, 0xd4, 0x95, 0x9b, 0xb0,
- 0x2f, 0xf2, 0x82, 0x16, 0x0f, 0xac, 0x44, 0xa7, 0x30, 0xc3, 0x30, 0xc5,
- 0x31, 0x0c, 0xac, 0x81, 0x61, 0xc0, 0x97, 0xcd, 0x63, 0x64, 0x9a, 0x51,
- 0x29, 0x2e, 0x69, 0xbd, 0x68, 0x21, 0x8a, 0x21, 0xd1, 0xb7, 0x60, 0x87,
- 0xab, 0x18, 0x36, 0x97, 0xf3, 0x05, 0xa7, 0x75, 0x8d, 0x51, 0x55, 0x57,
- 0xcf, 0xd2, 0x20, 0x7a, 0x37, 0x17, 0xdc, 0xbb, 0x84, 0xd5, 0xe3, 0xd0,
- 0x5f, 0xde, 0x73, 0x7e, 0x7f, 0x5a, 0xa8, 0x8a, 0x3f, 0x31, 0x1c, 0xb0,
- 0x98, 0x43, 0xc4, 0x6c, 0xad, 0xfd, 0xf2, 0xd5, 0x9a, 0x73, 0x34, 0x82,
- 0x9a, 0xa5, 0x21, 0x09, 0xb8, 0x84, 0x5f, 0x65, 0x40, 0xec, 0x9d, 0x3b,
- 0x7e, 0x7d, 0x7c, 0x71, 0x71, 0x7c, 0xc1, 0xeb, 0x7d, 0x50, 0xc5, 0xaf,
- 0xbf, 0xd1, 0xc8, 0x68, 0x8f, 0xcc, 0x66, 0x11, 0x61, 0xcd, 0xb2, 0xc6,
- 0xc2, 0x09, 0x15, 0x4a, 0x69, 0x23, 0x32, 0x3f, 0xb7, 0x64, 0xb9, 0x8b,
- 0x41, 0x18, 0xd6, 0x44, 0xc4, 0x03, 0x3a, 0xcb, 0xfd, 0x94, 0xaf, 0x15,
- 0x81, 0xa1, 0x0f, 0x85, 0x89, 0x8d, 0xc8, 0x5e, 0xcd, 0xb5, 0xfe, 0x08,
- 0xae, 0x6a, 0xd3, 0x1d, 0x03, 0xb9, 0x74, 0xa0, 0x21, 0x5c, 0x89, 0x7a,
- 0xaf, 0x7d, 0x6d, 0x71, 0xcc, 0xf7, 0x8a, 0x0f, 0x28, 0xab, 0x4a, 0x58,
- 0x89, 0xa2, 0x5c, 0x2e, 0xd2, 0x89, 0x33, 0xee, 0xd2, 0xe7, 0x24, 0xef,
- 0x45, 0x72, 0xc4, 0x0b, 0x1b, 0x31, 0x9c, 0x89, 0x66, 0x7b, 0x08, 0x8d,
- 0x6b, 0x92, 0x54, 0xee, 0x4d, 0x63, 0x88, 0xf9, 0x97, 0xa2, 0x95, 0x8a,
- 0x99, 0x5d, 0xcb, 0xd8, 0x52, 0xc2, 0x4f, 0x60, 0x54, 0x64, 0x56, 0x61,
- 0xb1, 0x02, 0x21, 0x5b, 0x60, 0xd3, 0xd5, 0xcc, 0x07, 0x42, 0xfa, 0x82,
- 0x82, 0x17, 0x48, 0xd4, 0xc8, 0xf7, 0xa3, 0x1f, 0x8b, 0x74, 0xfc, 0x93,
- 0xbf, 0x39, 0x10, 0xc2, 0xec, 0x63, 0x15, 0x25, 0xb6, 0x80, 0x26, 0xaf,
- 0x0b, 0xa5, 0xba, 0xaf, 0x24, 0x48, 0xbd, 0x1b, 0x1e, 0x5f, 0x44, 0x07,
- 0x5f, 0x31, 0xba, 0xd3, 0xbf, 0xb6, 0xbb, 0xfc, 0x9c, 0xde, 0x0c, 0xb6,
- 0xb7, 0x9a, 0x92, 0x9b, 0x98, 0xe1, 0x5b, 0xeb, 0x26, 0x84, 0x1b, 0x9b,
- 0x5a, 0xf5, 0x98, 0x20, 0x77, 0xb2, 0xb2, 0x85, 0x1b, 0xd1, 0x07, 0x37,
- 0xf1, 0x63, 0xb6, 0x90, 0x0f, 0x58, 0xb8, 0x89, 0x92, 0xcb, 0x2f, 0x0e,
- 0x08, 0xdb, 0x1a, 0x1d, 0x7d, 0xd1, 0x50, 0x33, 0x65, 0x93, 0x0e, 0xa2,
- 0xee, 0x9b, 0xec, 0x67, 0x12, 0x04, 0xe2, 0xed, 0x27, 0x83, 0x9d, 0x68,
- 0xf3, 0xbb, 0x74, 0xfe, 0xe2, 0xd9, 0x9f, 0xa3, 0x93, 0xad, 0x6e, 0x25,
- 0xc8, 0x53, 0x60, 0x9c, 0x47, 0xf1, 0xfc, 0xd6, 0xed, 0xd8, 0x19, 0x4e,
- 0xb5, 0x84, 0xae, 0x18, 0x18, 0xa8, 0x54, 0x26, 0x5c, 0xdb, 0x22, 0x12,
- 0x8d, 0x34, 0x5e, 0x34, 0xfa, 0xd6, 0x01, 0xd2, 0xb1, 0x4e, 0x4f, 0x4f,
- 0x4d, 0x78, 0xe9, 0x5e, 0x3c, 0x6b, 0x34, 0xf1, 0xd4, 0xb5, 0xf1, 0x4e,
- 0xda, 0xf8, 0x85, 0x4d, 0xec, 0x0d, 0x76, 0xf6, 0xa2, 0xcd, 0xb3, 0xe1,
- 0xf6, 0x9e, 0x6b, 0xa1, 0xd9, 0xc4, 0x1e, 0x9a, 0xe0, 0x87, 0xaa, 0x2f,
- 0x3f, 0xe5, 0xfe, 0x7f, 0x4c, 0xe6, 0x3f, 0x45, 0x9b, 0xdf, 0xef, 0xee,
- 0x52, 0x03, 0x7f, 0x8e, 0x0e, 0x4e, 0xbe, 0x8f, 0x9e, 0x0e, 0xa8, 0xb1,
- 0xb7, 0xf1, 0x9d, 0x36, 0xa7, 0x18, 0x4e, 0x43, 0x34, 0x42, 0xdf, 0x37,
- 0xda, 0x78, 0x56, 0x6b, 0xe3, 0x94, 0xf4, 0xc0, 0x07, 0xba, 0x52, 0x76,
- 0x06, 0x4f, 0xf6, 0xa2, 0xf4, 0xd9, 0x67, 0xcf, 0xad, 0x21, 0x6d, 0x03,
- 0xdf, 0x57, 0x6d, 0x93, 0x92, 0xe5, 0x4b, 0x62, 0xce, 0xf1, 0x03, 0x31,
- 0x33, 0x70, 0x08, 0x40, 0xa7, 0xde, 0xc4, 0xf9, 0x44, 0xc9, 0x8d, 0x8b,
- 0xaa, 0xd0, 0x4e, 0x29, 0x3a, 0x58, 0x02, 0x23, 0x25, 0x5d, 0x9a, 0xfb,
- 0x8d, 0xe1, 0xb0, 0x2e, 0x6a, 0x8f, 0xfe, 0x39, 0x7a, 0x33, 0x3c, 0x39,
- 0xa6, 0x19, 0xed, 0xd0, 0xd0, 0xfc, 0x1a, 0xca, 0x80, 0xf0, 0x15, 0x16,
- 0x97, 0x56, 0x75, 0x83, 0xf3, 0x7e, 0xd0, 0x86, 0xc9, 0xd8, 0x12, 0xd1,
- 0xc5, 0xb0, 0x8d, 0x59, 0x51, 0xa0, 0xdf, 0x77, 0x44, 0x6b, 0xfd, 0x83,
- 0x6b, 0x56, 0x19, 0xe4, 0x9a, 0x45, 0xd7, 0xdf, 0x64, 0x73, 0x3a, 0x26,
- 0x79, 0x96, 0x73, 0x98, 0x47, 0xb7, 0x22, 0x29, 0x7c, 0x73, 0x74, 0x2c,
- 0x79, 0x6a, 0x6f, 0xe2, 0x39, 0xb1, 0x48, 0x46, 0x74, 0x28, 0x6e, 0xd9,
- 0xeb, 0x2e, 0xce, 0x1b, 0x79, 0xff, 0x74, 0x35, 0x7f, 0xa0, 0x7d, 0xfc,
- 0x74, 0xb0, 0xcb, 0xa8, 0x76, 0xac, 0xe5, 0xbe, 0x7e, 0x43, 0x7f, 0xef,
- 0x3e, 0xed, 0x46, 0xfc, 0x55, 0x55, 0x63, 0xb7, 0xf3, 0xba, 0x71, 0x78,
- 0x76, 0xf6, 0xcd, 0x89, 0x04, 0x60, 0x1c, 0xaa, 0x11, 0x95, 0x05, 0x2b,
- 0xa7, 0x05, 0x0b, 0x73, 0x25, 0x6d, 0xcd, 0xc7, 0x8f, 0xc3, 0xf5, 0x76,
- 0x9b, 0x24, 0x0b, 0xc0, 0xd0, 0xd5, 0x38, 0x42, 0xa9, 0x2c, 0x5a, 0x46,
- 0xc6, 0x82, 0x74, 0x3a, 0xa9, 0xa2, 0x51, 0x14, 0x8c, 0x10, 0x66, 0x06,
- 0xdb, 0xd1, 0xca, 0xe5, 0xc2, 0xc6, 0xbe, 0x08, 0x24, 0x86, 0xe8, 0xa2,
- 0x58, 0xcd, 0xe0, 0x2c, 0x55, 0xe0, 0xe9, 0x45, 0xd5, 0x75, 0xbb, 0xc3,
- 0xa4, 0xec, 0xcb, 0xa0, 0xf7, 0xd5, 0x46, 0xdb, 0x55, 0x83, 0x93, 0x33,
- 0x97, 0x2d, 0x14, 0x93, 0x16, 0x86, 0xe2, 0xd5, 0x82, 0x8b, 0x55, 0x4e,
- 0x5d, 0x3d, 0x61, 0x14, 0x63, 0x4d, 0x10, 0x4b, 0xf4, 0xf6, 0xe0, 0xcd,
- 0xf1, 0xab, 0x6f, 0x0f, 0x4e, 0xdf, 0x1d, 0xd3, 0x2b, 0x8c, 0xca, 0xba,
- 0xe9, 0xe3, 0x8d, 0x30, 0xc6, 0x59, 0x3a, 0xce, 0xa6, 0xec, 0x53, 0xea,
- 0xfe, 0xb9, 0xbb, 0x21, 0xe1, 0x95, 0x51, 0x87, 0xdf, 0xda, 0x95, 0xd7,
- 0x88, 0x2e, 0xf8, 0xaf, 0x3d, 0xf9, 0x6b, 0xef, 0xcf, 0x9d, 0xad, 0xca,
- 0xa4, 0x1b, 0x5a, 0x31, 0xd3, 0xcb, 0xbd, 0xc4, 0xd5, 0xa1, 0x4a, 0x0a,
- 0x62, 0x7a, 0x65, 0x55, 0x3a, 0xe6, 0x91, 0xb1, 0xab, 0x8d, 0x9f, 0xdd,
- 0x1c, 0xad, 0x42, 0x9d, 0xbb, 0xc3, 0x2f, 0xbd, 0x82, 0x70, 0xd1, 0xe1,
- 0x9c, 0x27, 0x15, 0x37, 0xe0, 0xac, 0xe6, 0x36, 0xac, 0x89, 0xe4, 0x61,
- 0xc1, 0xe1, 0x5b, 0x9b, 0x1d, 0xf9, 0xe5, 0xd5, 0xd1, 0xc1, 0xe5, 0x31,
- 0xbf, 0x60, 0xdd, 0x5b, 0x59, 0x6b, 0x8b, 0xbc, 0xe5, 0xf1, 0x6c, 0x76,
- 0xe4, 0xc3, 0x57, 0x3c, 0xa1, 0x8e, 0xd4, 0x18, 0x10, 0x80, 0xc5, 0xda,
- 0xb8, 0xb2, 0xb9, 0x06, 0x31, 0x06, 0x29, 0x7a, 0x85, 0xc5, 0x89, 0x6c,
- 0x76, 0xe4, 0xbb, 0x8e, 0xb3, 0xd7, 0x6a, 0xe1, 0x56, 0x75, 0x4e, 0x4e,
- 0x10, 0x97, 0xdb, 0x48, 0x0f, 0x92, 0x5a, 0x49, 0x7e, 0x7f, 0xd4, 0x35,
- 0x21, 0x16, 0xa6, 0x00, 0x64, 0xce, 0x6d, 0xbc, 0x66, 0x14, 0xb2, 0x4d,
- 0x29, 0xcb, 0x76, 0xf7, 0x9e, 0xfc, 0x19, 0xeb, 0xf9, 0xaa, 0xb3, 0x4d,
- 0x77, 0x43, 0xe7, 0xcf, 0xdc, 0x75, 0x5a, 0x06, 0xe5, 0x56, 0xb4, 0x1b,
- 0xd6, 0xa5, 0x94, 0xa2, 0x24, 0x48, 0x85, 0x77, 0x1d, 0xb6, 0x30, 0x99,
- 0x17, 0x16, 0xf4, 0x5e, 0xb2, 0x07, 0x2c, 0xc9, 0xdc, 0xdc, 0xf7, 0xd8,
- 0x2f, 0x94, 0x0c, 0x9c, 0x3b, 0x68, 0x52, 0xe9, 0x2e, 0xbc, 0x3f, 0x7a,
- 0xf2, 0xae, 0xcc, 0x51, 0x8b, 0xc0, 0x70, 0x9f, 0xb3, 0x95, 0x25, 0x18,
- 0xa0, 0x2f, 0xc8, 0xe3, 0xb2, 0x67, 0x0d, 0xa9, 0x78, 0xa4, 0xb6, 0x1c,
- 0x53, 0x44, 0x20, 0x12, 0x10, 0x6b, 0x59, 0x41, 0x4e, 0x12, 0x7f, 0x7f,
- 0x10, 0xe6, 0x60, 0x77, 0x76, 0x3c, 0xe2, 0x4c, 0x39, 0x17, 0x4d, 0x1d,
- 0x68, 0xe1, 0x6e, 0xe9, 0xed, 0xf8, 0xa5, 0x01, 0xa0, 0x00, 0x5f, 0x94,
- 0xb2, 0x96, 0x85, 0xb3, 0x19, 0xc1, 0xb7, 0xa8, 0xcf, 0x56, 0xf7, 0xa9,
- 0x96, 0xa7, 0x80, 0x69, 0x88, 0x0a, 0x2f, 0xba, 0x31, 0xb1, 0x9a, 0x79,
- 0x92, 0x3f, 0x1a, 0xe2, 0xd0, 0xe2, 0x7a, 0xc2, 0x14, 0x83, 0x34, 0x17,
- 0x7e, 0x67, 0x30, 0x18, 0xf8, 0x32, 0x20, 0xbc, 0x2d, 0xea, 0x71, 0x02,
- 0xa2, 0x78, 0x80, 0x7a, 0x86, 0x35, 0xde, 0x84, 0x20, 0x0f, 0x61, 0x7a,
- 0x4b, 0xc3, 0x5d, 0xd4, 0x1a, 0xe1, 0x8e, 0x46, 0x60, 0xd3, 0xe8, 0x6a,
- 0xb7, 0x5d, 0x2b, 0x32, 0x70, 0xdb, 0xb6, 0x09, 0x8f, 0x8c, 0x4d, 0x6c,
- 0x8d, 0x45, 0x8c, 0xd4, 0x7c, 0xc7, 0xa7, 0x32, 0xb7, 0x16, 0x4c, 0xc1,
- 0x9c, 0xae, 0x2f, 0x35, 0x50, 0xb1, 0x25, 0xb2, 0x68, 0x3a, 0x14, 0x2d,
- 0x70, 0xc3, 0x4c, 0x2e, 0xbb, 0x47, 0x26, 0x27, 0xf2, 0x45, 0x39, 0xfa,
- 0x63, 0x2e, 0xa6, 0x01, 0xbb, 0x41, 0x1c, 0xe6, 0xaf, 0xb5, 0x33, 0x11,
- 0xd3, 0x2c, 0xeb, 0xcb, 0x90, 0xfb, 0x35, 0xfb, 0x45, 0x73, 0xbc, 0x8b,
- 0x58, 0xb1, 0xb1, 0x48, 0x6c, 0xcb, 0x66, 0x70, 0x72, 0xe9, 0xe4, 0xbd,
- 0x99, 0x84, 0x63, 0xbc, 0xfa, 0x92, 0x25, 0x6d, 0x09, 0x2a, 0xc6, 0x3d,
- 0x34, 0x4f, 0xf6, 0x31, 0xef, 0xf8, 0xd8, 0x5a, 0x74, 0xae, 0xf1, 0xda,
- 0xda, 0xf8, 0x5b, 0xb9, 0xca, 0xba, 0x68, 0x45, 0xc5, 0x9a, 0x0c, 0x41,
- 0x39, 0xe0, 0x7b, 0x51, 0x7c, 0xcf, 0xd5, 0x68, 0x88, 0x06, 0xc5, 0x4d,
- 0x26, 0x16, 0x99, 0xd3, 0xc0, 0xae, 0xe8, 0x66, 0x68, 0xe5, 0x9e, 0x63,
- 0x5f, 0xef, 0xd9, 0x00, 0x61, 0x05, 0xe4, 0xcd, 0x0c, 0x78, 0x29, 0xca,
- 0x89, 0x30, 0x28, 0x97, 0x0a, 0xea, 0xa6, 0x9a, 0xf3, 0xc8, 0x89, 0x45,
- 0x0f, 0x95, 0x6e, 0x52, 0x44, 0x03, 0xb2, 0x8d, 0x43, 0xa2, 0x28, 0x6c,
- 0xb5, 0xa4, 0xd6, 0xb7, 0x75, 0xe2, 0xbc, 0xd1, 0x30, 0x37, 0xb1, 0x3c,
- 0x3d, 0xcf, 0xe6, 0x7d, 0x57, 0x5f, 0xc8, 0x45, 0x5c, 0xe5, 0xe9, 0xf5,
- 0xb5, 0x68, 0x6c, 0x51, 0x7d, 0x6a, 0xed, 0x44, 0x76, 0xca, 0xab, 0xc2,
- 0x21, 0x9b, 0xab, 0x75, 0xab, 0x79, 0xe9, 0xea, 0x98, 0xaa, 0xc5, 0xa5,
- 0x42, 0xcc, 0xe6, 0x81, 0x94, 0x7d, 0x2b, 0x51, 0x07, 0x06, 0x69, 0x96,
- 0x6c, 0xf6, 0xaa, 0x7a, 0x8c, 0xcf, 0x2e, 0x36, 0x50, 0xde, 0x7e, 0xee,
- 0xb3, 0x4a, 0x6d, 0xd3, 0x01, 0x2a, 0xe3, 0xe3, 0x4d, 0x26, 0x6c, 0x57,
- 0x9e, 0xf1, 0x55, 0x7c, 0xef, 0x82, 0x9d, 0x04, 0x65, 0x77, 0x14, 0x7b,
- 0x8d, 0x6b, 0x23, 0xaa, 0x58, 0x77, 0x0b, 0xd4, 0xad, 0x56, 0x3e, 0x94,
- 0xdd, 0x25, 0x1e, 0xd9, 0xc8, 0x1b, 0x18, 0x3d, 0x18, 0x9d, 0x9e, 0x7e,
- 0xc7, 0x4c, 0x6a, 0xee, 0x5c, 0xc7, 0xaf, 0x30, 0xc9, 0xda, 0xaa, 0x0c,
- 0xa2, 0xa0, 0x49, 0x31, 0x93, 0x64, 0x21, 0x8b, 0x97, 0xb1, 0xa9, 0x97,
- 0xda, 0x5a, 0xd4, 0x58, 0x7e, 0xa0, 0xed, 0x07, 0xaa, 0x89, 0xe0, 0xc8,
- 0x2a, 0x55, 0x15, 0x2e, 0x32, 0xce, 0x7b, 0x7b, 0x6d, 0x96, 0x1d, 0xb7,
- 0x49, 0x1d, 0xa4, 0x9c, 0x8c, 0x94, 0x08, 0x40, 0x03, 0x2c, 0xd0, 0x39,
- 0x87, 0xfd, 0xc1, 0x34, 0xe6, 0x90, 0x95, 0x4c, 0x62, 0x01, 0xb0, 0x65,
- 0x20, 0x6a, 0x18, 0xd2, 0x6a, 0x3c, 0xb5, 0x71, 0xfc, 0x5c, 0x6c, 0x86,
- 0xd0, 0x1a, 0x60, 0xe9, 0xb8, 0x19, 0xa2, 0x12, 0x04, 0xe5, 0x8e, 0x8d,
- 0xb9, 0x3f, 0x9e, 0x7e, 0x39, 0xaa, 0x9c, 0xd1, 0x0f, 0x1d, 0xd9, 0xf3,
- 0x8b, 0xb3, 0xaf, 0x2e, 0x8e, 0x87, 0xc3, 0xe8, 0xcd, 0xf1, 0xa5, 0xa8,
- 0xfc, 0x97, 0x12, 0x07, 0x27, 0xe0, 0xc4, 0x70, 0x33, 0x18, 0x42, 0x82,
- 0xc5, 0x9a, 0x98, 0x3d, 0x01, 0x68, 0xaa, 0x19, 0xbb, 0xd0, 0x20, 0xca,
- 0x41, 0x9d, 0x9f, 0x6a, 0xf8, 0xdc, 0x0d, 0x0c, 0xfd, 0x08, 0x66, 0x82,
- 0x27, 0xd2, 0xd9, 0xcd, 0xbd, 0x35, 0x15, 0x32, 0xb2, 0x84, 0x37, 0xdd,
- 0x18, 0xe7, 0xf2, 0xd6, 0x73, 0xbe, 0xbd, 0xe9, 0x27, 0xa6, 0xf7, 0xfb,
- 0xe8, 0xd2, 0x8a, 0x75, 0xff, 0x9e, 0xd4, 0x60, 0xa5, 0x8f, 0xdf, 0x47,
- 0xdf, 0x53, 0x9b, 0x13, 0x5a, 0x75, 0x2d, 0xc0, 0x38, 0x44, 0x91, 0x0d,
- 0x5f, 0xc8, 0x04, 0x25, 0x20, 0xc2, 0xe2, 0x3a, 0xcb, 0x3c, 0xff, 0x40,
- 0xc1, 0x5f, 0x24, 0xcc, 0x0b, 0xa8, 0x80, 0x06, 0xd3, 0xb9, 0x9e, 0xf9,
- 0x6d, 0x00, 0x65, 0x9e, 0x26, 0x57, 0x25, 0x04, 0x12, 0xee, 0x8e, 0x9a,
- 0xdb, 0x61, 0xf8, 0xc2, 0xdd, 0x37, 0xfc, 0xd1, 0x4e, 0xf4, 0xe4, 0xb3,
- 0xe7, 0x3b, 0x9f, 0xc9, 0xaf, 0xf6, 0xef, 0x8b, 0xa7, 0x3b, 0x0a, 0x03,
- 0x4a, 0x7f, 0x3d, 0xdd, 0x7f, 0xba, 0xbb, 0xcf, 0xf0, 0x44, 0x3b, 0xfb,
- 0x3b, 0xf4, 0xff, 0x4f, 0xf5, 0x13, 0xc6, 0x60, 0x7a, 0xb1, 0xf7, 0xd9,
- 0xa7, 0x08, 0x83, 0x61, 0xfa, 0x98, 0x52, 0x27, 0xfd, 0x32, 0xeb, 0x03,
- 0xc3, 0x01, 0x42, 0xd0, 0xef, 0xab, 0x06, 0x49, 0xf6, 0xab, 0x73, 0x21,
- 0x45, 0x9e, 0xb8, 0x2b, 0xcf, 0x6c, 0xc6, 0x55, 0x49, 0xe3, 0x0f, 0x4b,
- 0xc8, 0xba, 0x69, 0xe8, 0xdb, 0x52, 0xc5, 0x13, 0xa0, 0x28, 0x95, 0x77,
- 0x48, 0x64, 0x94, 0x1c, 0xaa, 0xf0, 0xe5, 0x5f, 0xd2, 0xb5, 0xe5, 0x1a,
- 0x6e, 0x00, 0x55, 0x45, 0xb7, 0x4a, 0xdf, 0x1b, 0xcb, 0x12, 0x12, 0x8d,
- 0x04, 0xa5, 0x49, 0x6b, 0x85, 0x44, 0x7f, 0x69, 0x7f, 0x62, 0xc0, 0xe2,
- 0xb7, 0x94, 0x1a, 0xa2, 0x66, 0x6f, 0x56, 0x51, 0xb5, 0xad, 0xaf, 0x0a,
- 0xf1, 0x6c, 0xf8, 0xed, 0xf7, 0x2b, 0x15, 0x54, 0x1e, 0x75, 0x98, 0x22,
- 0x52, 0xcf, 0xa5, 0x65, 0xca, 0x8d, 0xe6, 0xde, 0x2d, 0xc2, 0xf6, 0x3e,
- 0xa6, 0x39, 0x3f, 0x23, 0x50, 0xb0, 0xdb, 0xb9, 0x7e, 0xb0, 0x39, 0xa9,
- 0x44, 0xb4, 0xb9, 0x62, 0xa1, 0x86, 0x8b, 0xe5, 0x2a, 0x0a, 0xe2, 0x55,
- 0x47, 0xb2, 0x7d, 0x79, 0x43, 0xc5, 0xcf, 0x02, 0x99, 0x41, 0x22, 0x28,
- 0xdc, 0x65, 0xb8, 0xed, 0xe5, 0x79, 0xa3, 0xec, 0x46, 0x57, 0x4c, 0x8d,
- 0x41, 0x7f, 0xda, 0x07, 0xce, 0x93, 0x3b, 0x74, 0x8f, 0x4e, 0xcd, 0x07,
- 0xb7, 0xbb, 0x6a, 0x36, 0x9b, 0x2e, 0x58, 0xbc, 0xed, 0x48, 0xfa, 0xe7,
- 0x10, 0x3f, 0xee, 0x9a, 0x0b, 0x2f, 0x22, 0x94, 0x32, 0x52, 0x24, 0x63,
- 0x86, 0xdb, 0x62, 0x70, 0xda, 0x2d, 0x63, 0x61, 0xfd, 0x4f, 0x5c, 0xbc,
- 0x16, 0xee, 0x35, 0x05, 0x64, 0x8f, 0x85, 0xf2, 0xa7, 0x61, 0x5a, 0x59,
- 0x05, 0x8a, 0x3d, 0x04, 0x81, 0xdd, 0x90, 0xda, 0xc2, 0x74, 0xd3, 0xd2,
- 0xcd, 0x11, 0x94, 0xed, 0xfa, 0xdd, 0xc6, 0xc6, 0xf0, 0xfc, 0xf8, 0xf8,
- 0x28, 0x3a, 0x3d, 0x79, 0x73, 0x72, 0x19, 0x08, 0xe4, 0xee, 0x22, 0x31,
- 0x83, 0x6b, 0x61, 0xb5, 0x5b, 0xaa, 0xcb, 0xe1, 0x51, 0x07, 0xa5, 0x3f,
- 0xbb, 0xca, 0x67, 0x89, 0xa6, 0x31, 0x4c, 0xeb, 0xef, 0x41, 0xf5, 0x06,
- 0x50, 0x05, 0xea, 0x6b, 0x78, 0x81, 0xae, 0x20, 0xe1, 0x66, 0xec, 0xaa,
- 0xfc, 0xf4, 0x7f, 0xd0, 0x00, 0x8d, 0xaa, 0xe4, 0xa4, 0xe0, 0x69, 0xae,
- 0x88, 0x93, 0x06, 0xb5, 0xd6, 0x46, 0xc5, 0x6b, 0x9b, 0x4c, 0xb5, 0x90,
- 0xa8, 0xb3, 0xd0, 0x21, 0x5e, 0xef, 0x3e, 0x41, 0x42, 0xec, 0x2c, 0x15,
- 0x08, 0xe7, 0x30, 0x98, 0xd8, 0x55, 0x4d, 0xb9, 0xcc, 0x84, 0x8f, 0x87,
- 0x3d, 0x86, 0x05, 0xad, 0x2c, 0x92, 0xd6, 0xfa, 0x0a, 0x4b, 0x25, 0x3d,
- 0xd9, 0x71, 0xf9, 0x02, 0x0b, 0xf0, 0x1c, 0x15, 0xf5, 0xb9, 0xb3, 0xdd,
- 0x88, 0xe4, 0x91, 0x25, 0x4b, 0xf5, 0xf9, 0x72, 0xde, 0xb8, 0xee, 0x7e,
- 0x90, 0x77, 0x69, 0xfe, 0xcf, 0x77, 0x70, 0xbd, 0x5d, 0xc5, 0x79, 0x9f,
- 0x24, 0xaf, 0x55, 0xdf, 0x8c, 0xab, 0x42, 0x11, 0x1a, 0x68, 0x2c, 0xa6,
- 0x9f, 0xc4, 0xd7, 0xf8, 0xa8, 0x49, 0x8b, 0x3e, 0xe9, 0x23, 0x83, 0x4b,
- 0x72, 0xaa, 0x07, 0x80, 0xa7, 0xde, 0x8b, 0x50, 0xa1, 0xda, 0x85, 0x3e,
- 0x8b, 0xac, 0xe3, 0x81, 0xf5, 0x6c, 0x17, 0x3d, 0x8f, 0x42, 0xd5, 0xd3,
- 0x4c, 0x9d, 0x43, 0x29, 0x4f, 0x53, 0xe7, 0xd2, 0x14, 0xad, 0x67, 0xd1,
- 0xee, 0x67, 0x3c, 0x8f, 0x8f, 0x9b, 0x0f, 0xd7, 0xb2, 0xb0, 0x28, 0x36,
- 0x51, 0x17, 0x32, 0xbf, 0x9b, 0x92, 0x97, 0x00, 0xb4, 0x72, 0x59, 0x5d,
- 0x8b, 0x86, 0x45, 0xb4, 0x1e, 0xeb, 0x27, 0xea, 0x4a, 0x87, 0x65, 0x0a,
- 0xbe, 0x6d, 0x91, 0x90, 0x50, 0xb5, 0x51, 0xd6, 0x85, 0x6d, 0xad, 0x12,
- 0xad, 0xd7, 0xcd, 0x7d, 0xc6, 0x1c, 0x96, 0x81, 0xad, 0x23, 0x44, 0x6b,
- 0xf7, 0xe9, 0x04, 0x52, 0xb5, 0x19, 0x01, 0x40, 0x7f, 0x42, 0x7c, 0x12,
- 0x24, 0x0d, 0xd7, 0x25, 0x7c, 0x9e, 0x6e, 0x64, 0x2a, 0xc0, 0xf0, 0xb2,
- 0x66, 0x30, 0x2e, 0x6c, 0x42, 0x7e, 0xe0, 0x32, 0x2c, 0x55, 0xd7, 0x00,
- 0xb3, 0xe6, 0x8e, 0xef, 0x85, 0x03, 0xf7, 0xcb, 0x72, 0x6a, 0x76, 0x05,
- 0x5f, 0x67, 0xa1, 0x3a, 0x67, 0x4e, 0xe6, 0x0f, 0xa6, 0xbd, 0xbb, 0x43,
- 0xf2, 0xeb, 0x34, 0xab, 0x17, 0x64, 0x6b, 0x2a, 0xa5, 0x98, 0x56, 0x1f,
- 0xab, 0xb3, 0xbb, 0xf3, 0xcd, 0xfa, 0x55, 0x07, 0x48, 0xeb, 0xa3, 0x2f,
- 0xef, 0x3d, 0x7d, 0x64, 0xd3, 0xce, 0x72, 0x57, 0x61, 0xc7, 0x03, 0x8d,
- 0x78, 0x07, 0x4c, 0x63, 0xdb, 0x88, 0xf0, 0x93, 0xeb, 0x18, 0x25, 0xd8,
- 0x1f, 0x19, 0xbd, 0x25, 0x68, 0xd4, 0x86, 0xf2, 0x46, 0xc3, 0xb1, 0xe5,
- 0xcb, 0x82, 0x2d, 0x64, 0x0b, 0xc0, 0x0d, 0x79, 0x35, 0xd6, 0xa5, 0x74,
- 0x4a, 0x8e, 0x77, 0xf0, 0xb6, 0x70, 0xce, 0x5e, 0x95, 0x49, 0x18, 0xf5,
- 0xe4, 0xc9, 0xf5, 0x52, 0x92, 0xa8, 0x33, 0x51, 0xfb, 0x19, 0x8f, 0x51,
- 0xcf, 0x2b, 0xf1, 0x66, 0x8e, 0x1c, 0x12, 0x7a, 0x02, 0xe3, 0x1d, 0xc7,
- 0x26, 0xb2, 0x8a, 0xc8, 0x51, 0xbf, 0x18, 0xd8, 0x3e, 0x3b, 0x66, 0x67,
- 0x18, 0xb8, 0x81, 0x1c, 0xaf, 0xb0, 0xd4, 0x93, 0x54, 0x41, 0x1a, 0x20,
- 0x43, 0x51, 0x08, 0xc5, 0x31, 0x7b, 0xce, 0xeb, 0x62, 0xa7, 0x58, 0x29,
- 0x1e, 0x02, 0x34, 0xd0, 0x53, 0xaa, 0x45, 0x4b, 0xae, 0x2b, 0xe6, 0xf8,
- 0x85, 0xa5, 0xa0, 0x0a, 0x4c, 0x2c, 0xdb, 0xfd, 0x0f, 0xcf, 0xde, 0xbe,
- 0x3e, 0xf9, 0xca, 0x01, 0x5b, 0x08, 0x13, 0x5f, 0x96, 0x19, 0xdb, 0x35,
- 0xc5, 0x68, 0xe8, 0x8a, 0x70, 0x39, 0x87, 0xb7, 0x56, 0xda, 0xd0, 0xb0,
- 0x5b, 0x62, 0x4f, 0xef, 0xc3, 0x0f, 0xc0, 0x40, 0xe6, 0x4f, 0xd8, 0x56,
- 0x2e, 0xd9, 0xe3, 0xc5, 0x96, 0xb7, 0x3c, 0xd4, 0xa0, 0x77, 0x24, 0x3d,
- 0x23, 0xce, 0xcb, 0xe5, 0xc2, 0x45, 0x0f, 0x06, 0x95, 0x3a, 0x14, 0x40,
- 0x92, 0x6f, 0x05, 0xae, 0x18, 0xbd, 0x5c, 0x08, 0x6b, 0x92, 0xa8, 0xc7,
- 0xaa, 0x61, 0x57, 0xee, 0x00, 0xb6, 0x2c, 0x68, 0xba, 0xbd, 0x5e, 0x00,
- 0x8d, 0x90, 0x9c, 0x29, 0xe3, 0x61, 0x85, 0x81, 0xf2, 0xe6, 0xca, 0xe1,
- 0x32, 0x5d, 0x32, 0x51, 0x2b, 0xb2, 0x34, 0x13, 0xcd, 0x8c, 0xe7, 0x2d,
- 0xb5, 0x5b, 0x7f, 0x70, 0x55, 0x6c, 0x35, 0xec, 0xd7, 0xbb, 0x8a, 0x0a,
- 0x57, 0x92, 0xd4, 0x85, 0x26, 0xc9, 0x60, 0x11, 0x42, 0x58, 0xf4, 0xc4,
- 0xe5, 0x89, 0x4f, 0x5e, 0xb1, 0x87, 0x66, 0x7f, 0x80, 0x42, 0x97, 0x88,
- 0xdf, 0x09, 0x6b, 0x50, 0x29, 0x97, 0xf4, 0x60, 0xa7, 0x27, 0x57, 0x41,
- 0x4a, 0x99, 0x84, 0x08, 0x1a, 0xd1, 0x89, 0xb9, 0x98, 0x6d, 0x2d, 0xdd,
- 0x4f, 0xba, 0xfd, 0x62, 0x35, 0x1b, 0x65, 0x53, 0xcb, 0xb8, 0x70, 0x49,
- 0xd5, 0xf6, 0x50, 0x49, 0xd3, 0x40, 0xcc, 0xa0, 0x14, 0x1d, 0x44, 0xd7,
- 0x81, 0x85, 0xd2, 0x87, 0x49, 0xf9, 0xf1, 0x0b, 0xba, 0x3e, 0x3c, 0x45,
- 0x36, 0x0b, 0x97, 0xe1, 0x9f, 0xcc, 0xc7, 0xd3, 0x4c, 0xa9, 0x9a, 0x13,
- 0x63, 0xb1, 0x52, 0xd5, 0xa9, 0xb3, 0xef, 0x2f, 0x5b, 0xb2, 0xb1, 0x03,
- 0xc8, 0xd9, 0x24, 0xee, 0xb0, 0x71, 0xf8, 0x3b, 0x9b, 0x20, 0xbf, 0x2d,
- 0x5f, 0x68, 0x38, 0xbe, 0x41, 0x23, 0x50, 0x43, 0x02, 0xb5, 0x4d, 0x43,
- 0xfd, 0x8b, 0xd8, 0x16, 0xc5, 0x03, 0xf8, 0x83, 0x75, 0x6e, 0x8f, 0xd6,
- 0x96, 0x9e, 0xe8, 0x29, 0xce, 0xaf, 0x15, 0x73, 0x48, 0x9d, 0x6a, 0x50,
- 0x12, 0x1d, 0x00, 0xba, 0xb3, 0x51, 0xb2, 0x50, 0xe2, 0xc2, 0x65, 0x20,
- 0x3e, 0x2d, 0x25, 0xa9, 0x4f, 0xd3, 0x9f, 0xc4, 0x3a, 0xe9, 0x08, 0x31,
- 0xe0, 0x38, 0x9f, 0xb8, 0x90, 0x94, 0xd8, 0xdf, 0x65, 0x86, 0xcc, 0xec,
- 0x4d, 0xb5, 0x7a, 0x99, 0x05, 0xaf, 0xb1, 0x3d, 0x0f, 0x9a, 0x70, 0xa2,
- 0x36, 0x14, 0xe9, 0x0a, 0xb2, 0x04, 0x03, 0x6e, 0x21, 0xeb, 0x27, 0x29,
- 0x7c, 0x13, 0xf2, 0xfd, 0x2b, 0x4d, 0x31, 0xa7, 0xf3, 0xac, 0xa0, 0x01,
- 0x0a, 0x86, 0xf4, 0xd9, 0x8e, 0x5a, 0xe2, 0x4a, 0x8d, 0x53, 0x2d, 0xa2,
- 0x83, 0x8b, 0x63, 0x92, 0x6c, 0xaf, 0xe7, 0x48, 0x0a, 0xe7, 0x11, 0x96,
- 0xba, 0x3f, 0x10, 0xac, 0x79, 0x15, 0xf4, 0x7c, 0x70, 0x87, 0xf7, 0xc1,
- 0x9b, 0x4c, 0x4c, 0x1a, 0x1f, 0x40, 0x87, 0xcc, 0x05, 0xa0, 0x31, 0xc9,
- 0x8d, 0x0d, 0xac, 0x0f, 0x5c, 0x87, 0xb3, 0xbb, 0x85, 0xa4, 0xd8, 0x5b,
- 0x42, 0x5d, 0x65, 0x06, 0xd4, 0x77, 0xde, 0x60, 0xeb, 0x21, 0x42, 0x9f,
- 0xad, 0x35, 0x4e, 0xb5, 0xcf, 0x41, 0xf8, 0x9b, 0xe1, 0x8c, 0x69, 0x5f,
- 0x15, 0x0f, 0xa8, 0x27, 0xa7, 0x5e, 0xbb, 0xf5, 0xe8, 0x6f, 0xb8, 0x67,
- 0x58, 0x16, 0xa9, 0xcb, 0x05, 0x89, 0x0b, 0xad, 0x17, 0x43, 0xf6, 0x24,
- 0x10, 0x7e, 0x25, 0x1f, 0x8f, 0x83, 0xab, 0xc5, 0x46, 0xcd, 0xc2, 0x4f,
- 0x5c, 0x24, 0x56, 0x51, 0x09, 0xea, 0xc0, 0x44, 0xcf, 0x2a, 0x53, 0x05,
- 0xc7, 0x09, 0x8f, 0x18, 0x68, 0xe3, 0x56, 0x04, 0x80, 0x90, 0x3f, 0xb5,
- 0x9a, 0x79, 0x3f, 0x71, 0xb3, 0xf5, 0x63, 0x70, 0x5f, 0xf2, 0x47, 0xaf,
- 0x1c, 0xee, 0x10, 0x8f, 0x62, 0xc0, 0x1d, 0x81, 0xa5, 0xc2, 0x7d, 0xca,
- 0xbf, 0xe0, 0x63, 0x04, 0xbc, 0x19, 0x7a, 0x5b, 0x05, 0x3b, 0x44, 0x21,
- 0xdf, 0xc3, 0x81, 0x88, 0x8f, 0x0f, 0x1c, 0x7a, 0x14, 0x8a, 0xc6, 0x41,
- 0x95, 0x23, 0x36, 0xe5, 0x70, 0x06, 0xaf, 0x1d, 0xf8, 0x22, 0xa9, 0x54,
- 0x45, 0x72, 0x29, 0x42, 0x9d, 0x7e, 0x87, 0xd6, 0xa2, 0x3b, 0x9d, 0x7a,
- 0x86, 0x6f, 0x8f, 0xf1, 0xae, 0x22, 0x9b, 0xce, 0x0b, 0x4c, 0xca, 0xbb,
- 0x18, 0x4f, 0x7a, 0x55, 0xc9, 0x6d, 0xe0, 0x7a, 0x1c, 0x9c, 0xfa, 0xe3,
- 0xb0, 0x5f, 0x90, 0x1f, 0x82, 0x70, 0x81, 0xbb, 0xb4, 0x30, 0x3f, 0x24,
- 0xd1, 0xf6, 0x58, 0x63, 0x23, 0x24, 0x91, 0x3a, 0x29, 0xc7, 0xc1, 0x52,
- 0x26, 0xe3, 0x9b, 0x4c, 0xc2, 0x69, 0x69, 0xd1, 0x82, 0xb4, 0xcb, 0x4e,
- 0xf4, 0x5f, 0x4a, 0x03, 0xdf, 0xf8, 0x6c, 0x3d, 0x26, 0x84, 0x81, 0xa0,
- 0x6a, 0x0d, 0x3c, 0x41, 0x1c, 0x7f, 0x7f, 0x79, 0x71, 0x10, 0x7d, 0x7d,
- 0x7c, 0x70, 0x74, 0x7c, 0x31, 0xac, 0x5d, 0xfa, 0x1a, 0x05, 0x22, 0x12,
- 0x1a, 0xdb, 0x83, 0x21, 0x1a, 0x5b, 0xce, 0xbf, 0x06, 0xec, 0x1b, 0xd7,
- 0x8b, 0x57, 0x38, 0x48, 0x74, 0x3e, 0x58, 0x21, 0x12, 0xc7, 0x01, 0x47,
- 0xa5, 0x71, 0xe4, 0x73, 0x16, 0xb4, 0xa1, 0xa5, 0x7f, 0x9d, 0xf5, 0x3c,
- 0x4c, 0x95, 0xf1, 0x70, 0x4e, 0xfe, 0x32, 0x99, 0x64, 0x96, 0x05, 0x58,
- 0xdd, 0xb9, 0xaf, 0x7d, 0xc2, 0x75, 0xc0, 0xb6, 0xf4, 0x92, 0x51, 0x03,
- 0x62, 0xe7, 0xfb, 0x3e, 0xf5, 0xdb, 0xa7, 0xc5, 0xef, 0x33, 0xe2, 0xd6,
- 0x2a, 0x29, 0x3a, 0x35, 0x6b, 0x60, 0xb5, 0xfb, 0x0d, 0x29, 0x70, 0xd9,
- 0x38, 0x49, 0x5f, 0xb7, 0xb6, 0xc4, 0xa7, 0x6b, 0xca, 0x95, 0x01, 0xea,
- 0x1a, 0x04, 0x2e, 0xd5, 0x40, 0x48, 0xd6, 0x13, 0xd4, 0xc8, 0x6b, 0xd1,
- 0x38, 0x25, 0xaf, 0x66, 0x6a, 0x58, 0x18, 0x06, 0xa2, 0x53, 0x80, 0xac,
- 0x93, 0x96, 0x7a, 0xa9, 0xc3, 0x2e, 0x62, 0x70, 0x90, 0x34, 0x2c, 0x7d,
- 0x28, 0xbc, 0x1f, 0xe0, 0x0b, 0xd1, 0x00, 0xfd, 0xa2, 0xe2, 0x2a, 0x55,
- 0xbb, 0xa8, 0x16, 0xa7, 0xd1, 0xe6, 0x78, 0x0c, 0x8e, 0xe6, 0x2d, 0xae,
- 0x9f, 0xbb, 0x34, 0x60, 0x6c, 0x7d, 0x57, 0x82, 0xc1, 0x58, 0xa9, 0x87,
- 0xa9, 0x93, 0xc3, 0xcd, 0x64, 0xe3, 0x4d, 0x5e, 0x0d, 0x92, 0x80, 0x42,
- 0x62, 0x46, 0x11, 0x0f, 0x04, 0x8e, 0xbb, 0xe7, 0x92, 0xe8, 0xeb, 0xac,
- 0xc0, 0x5d, 0xd0, 0x7c, 0x9c, 0x2f, 0xf9, 0xb6, 0xe5, 0xc7, 0x1b, 0xea,
- 0xea, 0x72, 0x90, 0x77, 0xc0, 0x88, 0x04, 0xfb, 0x3a, 0x3f, 0xb8, 0xfc,
- 0x1a, 0x8e, 0x56, 0x90, 0xf0, 0x11, 0x90, 0x1e, 0xcc, 0xbd, 0xd6, 0xcc,
- 0xc5, 0x72, 0x0a, 0x9c, 0xc8, 0xbf, 0x86, 0xdd, 0x65, 0xf2, 0x24, 0x1c,
- 0x79, 0x30, 0x51, 0x02, 0x0a, 0x28, 0x55, 0xc3, 0x63, 0xb5, 0xb4, 0x0c,
- 0xa2, 0xde, 0x5d, 0xa2, 0x9d, 0x0b, 0xbb, 0xec, 0x4a, 0x26, 0x7a, 0x57,
- 0xe6, 0x04, 0xa2, 0x67, 0x61, 0x8e, 0x35, 0x9e, 0x10, 0x49, 0x11, 0x5f,
- 0x5c, 0x69, 0x8a, 0x6d, 0x8f, 0xf6, 0xb4, 0x1d, 0x1a, 0x2b, 0x38, 0xd2,
- 0x5f, 0xcc, 0x56, 0x83, 0x26, 0x6e, 0x48, 0xf4, 0xe5, 0xb2, 0xac, 0xb2,
- 0x95, 0x1a, 0x9e, 0xa3, 0x93, 0x2c, 0xf3, 0x2c, 0x2b, 0xab, 0x88, 0x88,
- 0x58, 0x1d, 0x39, 0xd1, 0x82, 0x81, 0x26, 0x63, 0xe1, 0xa6, 0xe6, 0x2a,
- 0x77, 0x87, 0x82, 0x61, 0x3c, 0x2a, 0xb2, 0xe9, 0xb2, 0x0c, 0x02, 0xaf,
- 0x7f, 0xd9, 0x98, 0x83, 0x41, 0x6f, 0x9e, 0x0c, 0x12, 0x23, 0x28, 0x8e,
- 0x1c, 0xce, 0x63, 0xd2, 0xf4, 0xb9, 0x0a, 0x2c, 0xfb, 0x1d, 0xf3, 0x6c,
- 0x5e, 0xad, 0x7e, 0x82, 0x18, 0xef, 0xad, 0x8d, 0x8d, 0xa1, 0x6d, 0x36,
- 0x83, 0xef, 0x35, 0x37, 0x1d, 0x38, 0x11, 0x40, 0xf8, 0x13, 0xbf, 0xc1,
- 0x98, 0x7e, 0x31, 0x3c, 0xa4, 0x44, 0xf6, 0x14, 0x2c, 0x5c, 0xf6, 0x38,
- 0x2d, 0xaa, 0x93, 0xc2, 0x57, 0xce, 0x73, 0x61, 0x89, 0x65, 0x97, 0x99,
- 0x01, 0xe5, 0xaa, 0xe7, 0xce, 0x13, 0x44, 0x25, 0x35, 0xbd, 0x15, 0x31,
- 0x93, 0x2f, 0x01, 0x05, 0xe7, 0xf2, 0x51, 0xb9, 0x3c, 0xc8, 0xed, 0xff,
- 0xde, 0x8e, 0x7a, 0x02, 0x73, 0xd3, 0x02, 0x36, 0xb2, 0x8c, 0xfe, 0x1f,
- 0x84, 0x60, 0x29, 0x58, 0x21, 0xb7, 0x59, 0x43, 0xf8, 0x1b, 0x90, 0x0a,
- 0x75, 0x93, 0x8f, 0x3d, 0xf5, 0x93, 0x74, 0x90, 0xdc, 0xb3, 0xfe, 0x62,
- 0x3a, 0x02, 0x7f, 0x61, 0x59, 0xa6, 0x1e, 0x38, 0x06, 0x78, 0x17, 0x57,
- 0xce, 0xaa, 0xc7, 0x85, 0xa3, 0xa4, 0x8c, 0x92, 0x88, 0xf5, 0xa8, 0x22,
- 0x60, 0x1e, 0xd4, 0x8d, 0xa8, 0xa2, 0xb7, 0x17, 0x51, 0x91, 0xc9, 0x4f,
- 0xcb, 0x36, 0xd2, 0x18, 0x2f, 0x25, 0x7f, 0x55, 0xa3, 0xb4, 0x62, 0x8b,
- 0x96, 0x31, 0xb3, 0xb8, 0x53, 0x09, 0xab, 0x33, 0xc7, 0xa4, 0x8d, 0xd1,
- 0x84, 0x00, 0xf6, 0x5b, 0x02, 0xf8, 0x0c, 0x97, 0x4d, 0xe1, 0x0b, 0xa3,
- 0x22, 0x59, 0x9b, 0xab, 0x0e, 0x99, 0x22, 0x63, 0x37, 0xaa, 0x25, 0x70,
- 0xb8, 0x8d, 0xf2, 0xa3, 0xd7, 0xab, 0x1f, 0x09, 0xf1, 0xf0, 0xd1, 0xdd,
- 0xc7, 0x69, 0x19, 0x4a, 0x04, 0x36, 0x23, 0xd2, 0xf0, 0x14, 0xae, 0x7e,
- 0xb4, 0xaa, 0x84, 0xa6, 0xf8, 0xb8, 0xcd, 0x6b, 0xce, 0xef, 0x50, 0x8b,
- 0x94, 0x62, 0x89, 0xc0, 0xfc, 0x75, 0x93, 0x6a, 0x74, 0xa9, 0x2c, 0xba,
- 0x99, 0x03, 0xd9, 0x9e, 0x01, 0xf3, 0x1e, 0x87, 0x16, 0x78, 0xef, 0xaa,
- 0x0b, 0x80, 0x18, 0x34, 0x4f, 0xcb, 0xc0, 0xa1, 0xee, 0xe9, 0x0d, 0x72,
- 0x12, 0x66, 0x92, 0x63, 0x55, 0x5c, 0xb8, 0xf3, 0x47, 0x75, 0x1d, 0xf6,
- 0xc7, 0x51, 0xac, 0xf3, 0xc8, 0xaf, 0x47, 0x21, 0x57, 0xc9, 0xde, 0x2e,
- 0x54, 0x52, 0x09, 0xdc, 0x00, 0x88, 0x9d, 0x95, 0xb3, 0xaa, 0x54, 0x1f,
- 0x09, 0xd6, 0x1d, 0xf5, 0x32, 0x81, 0x91, 0x68, 0x49, 0xf6, 0xea, 0x67,
- 0x16, 0x89, 0x30, 0xf0, 0x38, 0x55, 0xca, 0x9e, 0x48, 0xe2, 0x76, 0x51,
- 0xe6, 0xcb, 0x71, 0x05, 0xb0, 0x0a, 0xc4, 0x50, 0xf1, 0xcf, 0xbb, 0xe5,
- 0xcd, 0x42, 0xad, 0x7e, 0x33, 0xae, 0xa4, 0xb1, 0xe8, 0x93, 0x61, 0x17,
- 0x5b, 0x52, 0x06, 0x54, 0x8b, 0x20, 0x43, 0x3b, 0xa1, 0xf1, 0x3b, 0x02,
- 0xeb, 0x9f, 0xbb, 0x24, 0xfa, 0x0a, 0xee, 0x97, 0xa4, 0x24, 0x04, 0xb7,
- 0xae, 0x8a, 0x60, 0x10, 0x39, 0xf2, 0x48, 0x11, 0xc8, 0x20, 0xd0, 0xb0,
- 0xb1, 0x72, 0xc3, 0xa1, 0x84, 0x51, 0x77, 0x7d, 0x5f, 0xf7, 0x93, 0xfa,
- 0xdb, 0xa6, 0x85, 0x34, 0xe0, 0x7d, 0x57, 0xd6, 0xa1, 0xf0, 0x48, 0x63,
- 0xb5, 0x58, 0xd5, 0x64, 0x4a, 0x53, 0x76, 0x92, 0xa1, 0x9c, 0xc4, 0x99,
- 0xae, 0xdf, 0xc0, 0x55, 0xe2, 0xb4, 0x72, 0xa7, 0x35, 0x41, 0xa2, 0x79,
- 0x2b, 0x9e, 0x0b, 0x0a, 0x49, 0x83, 0x88, 0x8e, 0xcc, 0x9a, 0x0a, 0x66,
- 0x83, 0x05, 0x63, 0x9d, 0xc6, 0x36, 0xe9, 0xe4, 0xdc, 0x75, 0x41, 0x43,
- 0xe0, 0x19, 0x77, 0xa7, 0xc9, 0x4e, 0x37, 0xa8, 0x4b, 0xb1, 0x29, 0x51,
- 0xff, 0x19, 0xf4, 0x1e, 0xb6, 0x1c, 0x62, 0x82, 0x62, 0xb7, 0xe0, 0x08,
- 0xb7, 0xad, 0x96, 0xa1, 0x50, 0x13, 0xbf, 0x74, 0x30, 0xbb, 0x2f, 0xf6,
- 0x06, 0xbb, 0xcf, 0x3f, 0x1b, 0xec, 0x0c, 0x76, 0x77, 0x98, 0xb3, 0xf0,
- 0x50, 0x82, 0xc1, 0xc9, 0xba, 0xb4, 0x74, 0x55, 0x79, 0xaf, 0xd9, 0xe7,
- 0xdb, 0xe3, 0xcb, 0xef, 0xce, 0x2e, 0xbe, 0x89, 0x4e, 0xde, 0x5e, 0x1e,
- 0x5f, 0xbc, 0x3e, 0x38, 0xfc, 0x58, 0xe8, 0xe1, 0xd0, 0x60, 0x1d, 0x14,
- 0x22, 0x4c, 0xfc, 0xc2, 0x34, 0xad, 0x82, 0x7e, 0xcd, 0x92, 0xf2, 0x66,
- 0x67, 0x7f, 0xf7, 0x51, 0xbc, 0xd2, 0x16, 0xc3, 0xa0, 0x7f, 0xdf, 0x26,
- 0xb5, 0xcb, 0x93, 0x5a, 0xdf, 0x8a, 0x43, 0x41, 0x1b, 0x4a, 0x80, 0x95,
- 0x0b, 0xce, 0x05, 0x83, 0x47, 0x51, 0x82, 0x74, 0x94, 0xc7, 0x66, 0x92,
- 0x1a, 0x09, 0x68, 0xa2, 0x64, 0xd4, 0x2a, 0xbe, 0x8b, 0x06, 0xa1, 0x2b,
- 0xbb, 0xe5, 0x18, 0xe5, 0x65, 0x3a, 0x2d, 0xd5, 0x90, 0x22, 0x18, 0x88,
- 0x13, 0x08, 0x77, 0xc6, 0x90, 0xad, 0x30, 0x2f, 0xea, 0xf2, 0xa2, 0x30,
- 0x97, 0x14, 0xe6, 0x9d, 0xb8, 0x44, 0x11, 0x07, 0x3c, 0x50, 0x49, 0xb7,
- 0xc1, 0x58, 0xab, 0x75, 0x1b, 0xc3, 0x18, 0xda, 0x1a, 0x00, 0x61, 0x61,
- 0xb1, 0xcd, 0x98, 0x58, 0xc5, 0x28, 0x7a, 0xa8, 0x03, 0xc1, 0x69, 0x08,
- 0x46, 0x23, 0x5d, 0x41, 0x94, 0x32, 0xd0, 0xdb, 0x2a, 0x7c, 0xa6, 0xdc,
- 0x4e, 0x48, 0x9e, 0x10, 0xc9, 0xcf, 0xf0, 0xb9, 0xb9, 0xf5, 0xa2, 0x02,
- 0xab, 0x16, 0x49, 0xa1, 0x88, 0xf0, 0x75, 0x11, 0xb2, 0x11, 0xa2, 0x39,
- 0xc9, 0xe3, 0x7b, 0xae, 0x3f, 0x23, 0x62, 0x83, 0x0f, 0x66, 0x0c, 0x8a,
- 0x5d, 0xb0, 0xc8, 0xe4, 0xd7, 0x3c, 0x3a, 0x3f, 0x7e, 0xd3, 0xb7, 0x3a,
- 0x78, 0xf4, 0xbb, 0x98, 0xa1, 0x0c, 0x76, 0x53, 0x92, 0x7b, 0x16, 0xc9,
- 0xdc, 0x02, 0x6a, 0xc0, 0x13, 0x35, 0x02, 0x28, 0x9c, 0x00, 0x1f, 0x1a,
- 0xb1, 0x48, 0x08, 0xaf, 0x55, 0xfc, 0x32, 0xbb, 0xb4, 0x5a, 0x10, 0xf0,
- 0x78, 0x3f, 0x35, 0x6a, 0x39, 0xda, 0x74, 0x91, 0xba, 0xdc, 0x1f, 0xc2,
- 0x51, 0x11, 0x2d, 0xe0, 0x02, 0x04, 0x32, 0x4b, 0xb6, 0x3e, 0xff, 0xe6,
- 0x70, 0xf8, 0xc9, 0xee, 0x9e, 0x0e, 0x67, 0x6b, 0xe0, 0xe1, 0x2c, 0x1b,
- 0x79, 0xf8, 0x60, 0xd7, 0xe1, 0x18, 0x2d, 0xab, 0x1a, 0x07, 0x1c, 0x9b,
- 0xb1, 0xe9, 0x32, 0x83, 0xb6, 0x2a, 0xa9, 0x41, 0x1b, 0x52, 0x7d, 0xd4,
- 0x84, 0x4b, 0x57, 0xa7, 0x8e, 0x9d, 0x21, 0xa8, 0xb6, 0xa0, 0xf5, 0x0e,
- 0x4a, 0x17, 0xef, 0x17, 0xcf, 0xed, 0x23, 0x69, 0x59, 0x5b, 0x43, 0xda,
- 0xb8, 0x8f, 0x69, 0xa9, 0xef, 0x39, 0xaf, 0xb7, 0xff, 0x96, 0x51, 0x13,
- 0xf5, 0x52, 0x37, 0x5c, 0x1e, 0xdf, 0x0d, 0x0e, 0x80, 0x86, 0xb0, 0x4f,
- 0xac, 0xa2, 0xca, 0xdc, 0x03, 0xba, 0xf3, 0xd3, 0x67, 0xb4, 0x51, 0x74,
- 0xb2, 0x04, 0xaa, 0x81, 0x99, 0x42, 0x36, 0x65, 0xa5, 0xc5, 0x3d, 0x72,
- 0x94, 0x33, 0x70, 0xfe, 0x42, 0x82, 0x49, 0xdf, 0x0e, 0xa2, 0xaf, 0x93,
- 0x79, 0xa1, 0xd5, 0x8a, 0x2d, 0xf9, 0x0a, 0xc1, 0x81, 0x5c, 0x34, 0x09,
- 0x25, 0x6e, 0x4e, 0x93, 0x58, 0x41, 0x04, 0x89, 0xd7, 0x15, 0xa2, 0xdb,
- 0x5a, 0x79, 0x87, 0x98, 0x43, 0xf4, 0x70, 0x13, 0xa9, 0x81, 0x16, 0x35,
- 0x0e, 0xd3, 0x42, 0x1b, 0xd8, 0xac, 0x42, 0x01, 0x02, 0x9a, 0x1a, 0xcd,
- 0xe9, 0x31, 0x87, 0x97, 0x49, 0xed, 0xc9, 0x37, 0xc0, 0x5a, 0x65, 0x3b,
- 0xa1, 0xe8, 0x5a, 0x9e, 0xa9, 0x4c, 0xf2, 0x1b, 0x36, 0x7a, 0x14, 0x74,
- 0xdd, 0xc4, 0xf3, 0xf1, 0x6a, 0x30, 0x21, 0x29, 0x96, 0xcd, 0x66, 0x83,
- 0xe5, 0xed, 0x76, 0x70, 0x4c, 0x99, 0xe5, 0xdf, 0x08, 0x2c, 0x40, 0xd5,
- 0xe4, 0x6d, 0xf5, 0xf9, 0x9a, 0xa8, 0x5d, 0x71, 0xe5, 0x4c, 0x30, 0x49,
- 0x58, 0x82, 0xbf, 0x1c, 0xcf, 0xb5, 0xf8, 0x56, 0xc7, 0x91, 0x83, 0xf9,
- 0xe4, 0x16, 0x06, 0x8b, 0x64, 0xb6, 0xef, 0x52, 0x90, 0x8d, 0x3f, 0x28,
- 0x3a, 0xb8, 0x53, 0x29, 0x02, 0xf3, 0xec, 0x3c, 0xb9, 0x9e, 0xaa, 0x40,
- 0x11, 0x2a, 0x2d, 0x1e, 0xb6, 0xb5, 0x99, 0x06, 0x22, 0xaa, 0x0e, 0x3c,
- 0x10, 0x28, 0xbe, 0x44, 0x9c, 0x6a, 0x86, 0xaa, 0x28, 0xc6, 0xf8, 0xb5,
- 0x24, 0xac, 0x6f, 0x44, 0xc1, 0x42, 0x80, 0x38, 0xca, 0x62, 0xb0, 0x1a,
- 0x77, 0x2c, 0x1c, 0x49, 0x1d, 0x4f, 0xf4, 0xad, 0x50, 0x08, 0x30, 0x7e,
- 0x35, 0x34, 0x1a, 0x6e, 0x4f, 0x2b, 0x82, 0x27, 0x67, 0x85, 0xbe, 0xbe,
- 0x7b, 0xc2, 0xb6, 0xee, 0xcb, 0xd3, 0x61, 0x4f, 0xe8, 0x61, 0x9e, 0xdc,
- 0x07, 0x94, 0x25, 0xb0, 0xd4, 0x4a, 0x7e, 0x6c, 0xf9, 0x91, 0xf0, 0x35,
- 0x2b, 0xc0, 0x9b, 0xcb, 0x68, 0x84, 0x33, 0x78, 0x27, 0x99, 0xcf, 0x82,
- 0xb0, 0x85, 0xd0, 0x78, 0x62, 0x1e, 0x8e, 0x55, 0x13, 0x11, 0x81, 0xc8,
- 0x01, 0xbc, 0x30, 0x74, 0x1e, 0x09, 0x4c, 0x4f, 0x7a, 0x51, 0x7f, 0x0f,
- 0xb0, 0x39, 0xbb, 0xd5, 0x85, 0x8c, 0xb9, 0xc8, 0x47, 0x3c, 0x46, 0x51,
- 0xa3, 0x0d, 0x57, 0x6c, 0xdd, 0x58, 0xc2, 0xa6, 0x92, 0xf5, 0x1d, 0xbd,
- 0xcf, 0x3f, 0xf6, 0x74, 0x52, 0x77, 0xbb, 0x08, 0xdd, 0x66, 0x79, 0xf4,
- 0x2e, 0x99, 0xae, 0x9a, 0x62, 0xc3, 0xde, 0xa3, 0x3b, 0x8b, 0x24, 0x89,
- 0xfb, 0xd4, 0x41, 0xaa, 0x0a, 0xaa, 0x36, 0x0c, 0xa1, 0x0a, 0x64, 0x68,
- 0x03, 0xa0, 0x65, 0x54, 0x13, 0xf7, 0x3c, 0xba, 0xdb, 0x33, 0x4f, 0x33,
- 0x7f, 0x63, 0x8b, 0x27, 0xa6, 0x7a, 0xcf, 0x48, 0x1a, 0xb9, 0x8b, 0x1c,
- 0xee, 0x16, 0x50, 0x2e, 0xa7, 0x3e, 0x11, 0xdd, 0x12, 0x27, 0xa9, 0x70,
- 0x1a, 0xd6, 0xa0, 0x4a, 0x87, 0x3e, 0xc4, 0xdb, 0x0f, 0xc4, 0x57, 0x92,
- 0x85, 0x7d, 0x90, 0x13, 0x42, 0xc0, 0x71, 0xa6, 0x49, 0x82, 0x2d, 0x96,
- 0x33, 0xad, 0xce, 0x04, 0x46, 0xdc, 0xc3, 0x75, 0x5b, 0x46, 0xc4, 0x89,
- 0x53, 0x09, 0xf9, 0x9b, 0x42, 0x98, 0x86, 0x80, 0xa5, 0xc6, 0x52, 0xbf,
- 0x50, 0x6c, 0x01, 0x13, 0x38, 0x3d, 0xd0, 0xcb, 0x4d, 0x2a, 0x36, 0x0c,
- 0x44, 0xa8, 0x62, 0xc1, 0x88, 0x55, 0x74, 0x23, 0x3a, 0x7d, 0x4b, 0x6e,
- 0xb4, 0xcc, 0x10, 0x02, 0xeb, 0x04, 0x06, 0x69, 0x63, 0x08, 0xa1, 0x33,
- 0xea, 0x86, 0x3c, 0xb2, 0xff, 0x39, 0xaf, 0x41, 0xd1, 0xf5, 0x8b, 0xa6,
- 0x20, 0xc1, 0xd5, 0x15, 0x50, 0xf7, 0x48, 0xa1, 0x60, 0x17, 0xe7, 0xb9,
- 0x15, 0x13, 0xed, 0x26, 0x0f, 0x2c, 0x20, 0x75, 0xb5, 0x57, 0xf9, 0x5a,
- 0x50, 0x00, 0xb0, 0xb8, 0xe7, 0x27, 0x6f, 0xa5, 0x3e, 0xa6, 0x3b, 0x48,
- 0x09, 0x43, 0x26, 0x6e, 0x48, 0x69, 0x57, 0x8c, 0x27, 0x56, 0x9c, 0x89,
- 0x48, 0xec, 0x4d, 0x4c, 0x6c, 0x7c, 0x40, 0x52, 0xed, 0xeb, 0x62, 0x29,
- 0xbd, 0x77, 0xf9, 0x92, 0x2c, 0x8a, 0x69, 0xb7, 0x56, 0xf4, 0xcd, 0x6d,
- 0x66, 0xed, 0x36, 0x72, 0x86, 0xac, 0xf1, 0x24, 0xac, 0x62, 0xab, 0xad,
- 0x54, 0x98, 0x64, 0xaf, 0x96, 0x27, 0x19, 0x5a, 0xd0, 0x3f, 0x89, 0x06,
- 0xdb, 0xd4, 0x61, 0xb1, 0x6d, 0x2f, 0x2e, 0x6e, 0xc7, 0x05, 0x5d, 0x8f,
- 0x9c, 0x14, 0xfc, 0xa3, 0x43, 0x72, 0xe6, 0x11, 0x4f, 0x7e, 0x8a, 0xfa,
- 0xe3, 0x29, 0xe6, 0x17, 0xa1, 0xc2, 0xe4, 0x8f, 0x44, 0x32, 0xfc, 0xc4,
- 0x4f, 0x1b, 0x9c, 0x25, 0x37, 0x7c, 0xf7, 0x86, 0x71, 0xd4, 0x51, 0xc2,
- 0xef, 0xf2, 0xe2, 0xe0, 0xed, 0xf0, 0xb5, 0x18, 0x59, 0x2f, 0x33, 0x5f,
- 0x1c, 0x50, 0x2d, 0x0b, 0xce, 0x13, 0xe9, 0x90, 0xc6, 0xee, 0x05, 0xdc,
- 0xdb, 0x82, 0xb4, 0xb5, 0x6c, 0x60, 0xaf, 0x0e, 0x62, 0x2c, 0x65, 0x07,
- 0xc1, 0xab, 0xe9, 0x30, 0x6d, 0x16, 0x5b, 0xee, 0x62, 0x2d, 0xc2, 0x6a,
- 0x25, 0x1e, 0xe3, 0xce, 0xb0, 0x51, 0xf5, 0x21, 0x26, 0x94, 0x43, 0x1b,
- 0x8c, 0x7d, 0x2a, 0xbc, 0x7c, 0x2d, 0xae, 0xe4, 0x21, 0xa9, 0x1e, 0x7d,
- 0x85, 0xc5, 0x0f, 0x6a, 0xb3, 0x38, 0xc3, 0x9c, 0xf0, 0x72, 0x45, 0x83,
- 0x73, 0x8d, 0x87, 0x89, 0x84, 0xd6, 0xf4, 0xe6, 0x1f, 0x77, 0xb7, 0xda,
- 0x9b, 0xbf, 0xfc, 0xa5, 0xcd, 0xb7, 0x8f, 0xdd, 0x64, 0x7d, 0x9f, 0xa7,
- 0xb2, 0xf9, 0xc7, 0xbd, 0xad, 0x47, 0x67, 0x14, 0x66, 0xda, 0xf9, 0x3e,
- 0xe9, 0x0d, 0x1e, 0x6c, 0xf4, 0xca, 0xea, 0xc0, 0xea, 0x1d, 0xec, 0x62,
- 0x3d, 0xae, 0x3c, 0xca, 0x5d, 0x05, 0xf5, 0x81, 0x63, 0x81, 0x9d, 0xe4,
- 0xe7, 0x5d, 0x38, 0x9a, 0xb2, 0x70, 0xf2, 0xbf, 0x8f, 0x43, 0x74, 0x40,
- 0x52, 0xc4, 0x43, 0x76, 0xc7, 0xe9, 0xe6, 0x45, 0x36, 0x40, 0xdf, 0x7b,
- 0x8f, 0xf4, 0xed, 0x67, 0x17, 0xa8, 0xb9, 0xec, 0x0f, 0xe5, 0x80, 0x2a,
- 0xc3, 0x83, 0xd5, 0x7e, 0x36, 0x7c, 0xc9, 0xc9, 0xf5, 0xfd, 0x5d, 0x9e,
- 0xbc, 0x39, 0x66, 0xdc, 0xd8, 0xa3, 0x13, 0xc6, 0x2f, 0x1b, 0x2a, 0x82,
- 0xa0, 0x69, 0xb4, 0x0e, 0x5c, 0x35, 0x04, 0xb7, 0x17, 0x47, 0xa1, 0x8b,
- 0x5b, 0x72, 0xa7, 0xdf, 0xed, 0x04, 0x77, 0xad, 0x81, 0xb5, 0x85, 0xa5,
- 0xef, 0x9d, 0x5c, 0xf5, 0xdf, 0x64, 0x13, 0x68, 0x5d, 0x7d, 0x81, 0xa3,
- 0xa6, 0xb7, 0xe8, 0xc3, 0x77, 0xf3, 0x59, 0xe5, 0xe3, 0x30, 0x49, 0x50,
- 0x15, 0xea, 0x8d, 0x75, 0x05, 0x00, 0x7e, 0xde, 0xee, 0xf7, 0x51, 0xf2,
- 0x55, 0xe2, 0x83, 0xd4, 0x4b, 0x50, 0xc1, 0x78, 0xb0, 0xb3, 0x4f, 0xeb,
- 0x93, 0x4e, 0x57, 0xe2, 0xd1, 0x8e, 0x7d, 0x1c, 0x92, 0xcf, 0x08, 0xbc,
- 0xe6, 0xac, 0x24, 0x6f, 0x2c, 0x12, 0x73, 0xd0, 0x46, 0x08, 0x49, 0x09,
- 0xb9, 0x3c, 0xb9, 0xf7, 0x81, 0x34, 0x5a, 0x5c, 0x2f, 0x5b, 0xac, 0x30,
- 0xc9, 0xfb, 0x8a, 0x8f, 0xbe, 0xd5, 0x51, 0xf7, 0xb3, 0xbc, 0x53, 0x29,
- 0x79, 0x21, 0x3d, 0x84, 0x04, 0xa8, 0x9f, 0x68, 0x85, 0x88, 0xb3, 0x3c,
- 0x60, 0x60, 0x3a, 0x6c, 0x2b, 0xfa, 0x12, 0xc0, 0x55, 0x06, 0xe8, 0x9a,
- 0xd5, 0x71, 0x7a, 0xeb, 0xe5, 0x06, 0x5f, 0x6b, 0x03, 0x36, 0x9a, 0x9b,
- 0x97, 0x85, 0xb8, 0xce, 0xa2, 0x5a, 0xbe, 0x2e, 0x89, 0x2c, 0x69, 0x58,
- 0x72, 0xc2, 0xbb, 0xfd, 0x2e, 0x10, 0xb5, 0xd3, 0x79, 0xcb, 0x64, 0xfa,
- 0xbf, 0x7c, 0x36, 0x0d, 0x1f, 0x5e, 0xd4, 0xb9, 0x62, 0x60, 0x05, 0x76,
- 0x88, 0x74, 0x64, 0x00, 0x82, 0x35, 0x22, 0xb4, 0x45, 0xf2, 0x3c, 0xb3,
- 0x35, 0xd3, 0x4b, 0x44, 0x47, 0x73, 0x21, 0x96, 0xce, 0xda, 0x2a, 0x46,
- 0x2e, 0xe6, 0xa3, 0xcb, 0xc5, 0x04, 0xde, 0x7d, 0x89, 0x6b, 0xfc, 0xcf,
- 0x78, 0xbe, 0x8c, 0xf3, 0x55, 0xb4, 0xbb, 0xd7, 0x8b, 0xf6, 0x76, 0x76,
- 0xf7, 0x5a, 0xe6, 0xd0, 0xf9, 0x4f, 0x8e, 0xae, 0xd9, 0xc3, 0xd7, 0x9d,
- 0x8f, 0x9d, 0x85, 0x8f, 0x91, 0xc7, 0xad, 0xaa, 0xd9, 0xa4, 0xc4, 0x7b,
- 0xd8, 0xd1, 0x27, 0x15, 0x6e, 0xb9, 0xa6, 0x1d, 0x00, 0xd1, 0x20, 0x53,
- 0x88, 0xcd, 0xc9, 0x6a, 0x4f, 0xb9, 0x32, 0x25, 0xfc, 0xc4, 0x86, 0x96,
- 0x15, 0x43, 0x08, 0x85, 0x33, 0xbc, 0xc5, 0x39, 0x0a, 0x6b, 0x55, 0xf7,
- 0x28, 0x2d, 0x6d, 0x5b, 0x38, 0x46, 0x83, 0xf7, 0x86, 0xe8, 0xfd, 0xe8,
- 0xe4, 0xf0, 0xd2, 0x10, 0xf3, 0xae, 0xf8, 0x3a, 0xcd, 0x57, 0x1f, 0x57,
- 0xa3, 0xe8, 0xd1, 0x67, 0x26, 0xfb, 0x37, 0x09, 0x49, 0x64, 0xf3, 0xd1,
- 0xf2, 0x7a, 0xff, 0xaf, 0x71, 0x7e, 0x9d, 0xcd, 0x3f, 0xf4, 0xfc, 0x04,
- 0x49, 0x4a, 0xfb, 0xc4, 0xa0, 0x76, 0x5f, 0xec, 0x3e, 0x91, 0x08, 0xf8,
- 0x94, 0x4b, 0x9a, 0x81, 0x3f, 0x74, 0x67, 0x5d, 0x01, 0x6c, 0x40, 0xe8,
- 0xbd, 0x43, 0x69, 0x98, 0x4f, 0xba, 0xa2, 0x6e, 0xc5, 0xe1, 0xb3, 0x13,
- 0x7d, 0x56, 0xb2, 0x99, 0xbb, 0x1b, 0x52, 0xbe, 0xb0, 0xcb, 0xa9, 0x7f,
- 0xcb, 0x45, 0x77, 0x50, 0x39, 0xe1, 0x1f, 0x98, 0x2b, 0x77, 0xe1, 0x4a,
- 0x32, 0x1d, 0x0a, 0x4f, 0x56, 0x76, 0x3a, 0xca, 0x93, 0xf8, 0xd6, 0x17,
- 0xb9, 0xf3, 0x68, 0x0e, 0x66, 0x3b, 0xbf, 0x78, 0x7d, 0x28, 0x18, 0x98,
- 0x96, 0x83, 0x83, 0xa5, 0x8e, 0x9c, 0xa5, 0x63, 0x8b, 0x47, 0xf9, 0x81,
- 0xfe, 0x39, 0x48, 0x7e, 0x7f, 0x32, 0xfa, 0x88, 0x87, 0xe8, 0xdc, 0x09,
- 0xdc, 0xd8, 0x41, 0xb5, 0x9c, 0x01, 0xcb, 0xfc, 0x25, 0x93, 0x9a, 0x55,
- 0xb3, 0xdb, 0x94, 0x02, 0x6d, 0x62, 0xbb, 0x96, 0x2a, 0xea, 0x5a, 0x74,
- 0x57, 0x8d, 0x05, 0x34, 0x6e, 0xae, 0x7e, 0x76, 0x74, 0x70, 0x1e, 0xe8,
- 0x4d, 0xd0, 0x4b, 0xbc, 0x8d, 0x88, 0x9f, 0x63, 0x99, 0x19, 0x05, 0x33,
- 0xc5, 0x94, 0xb4, 0xea, 0x79, 0x69, 0xb7, 0x04, 0x9f, 0x9c, 0xdc, 0xc5,
- 0x12, 0x69, 0x9d, 0xe9, 0x75, 0x02, 0x73, 0x06, 0xf0, 0xbc, 0xa7, 0x93,
- 0x18, 0x1e, 0x35, 0xbd, 0x84, 0x20, 0x84, 0xa2, 0xad, 0x54, 0xc3, 0x6a,
- 0x68, 0x6f, 0x1e, 0x22, 0xcd, 0x06, 0xd0, 0xb4, 0x07, 0xf9, 0x5d, 0x1e,
- 0xe3, 0x4c, 0xd7, 0x95, 0x4d, 0x40, 0xf8, 0x33, 0x0d, 0x3e, 0x2e, 0x6e,
- 0x89, 0x95, 0x8a, 0x27, 0x98, 0x7a, 0x4f, 0xc7, 0x89, 0xd9, 0x54, 0x27,
- 0xa9, 0x44, 0x64, 0xb0, 0x35, 0x03, 0x58, 0x3a, 0x95, 0x0d, 0x93, 0x1b,
- 0x88, 0x95, 0x97, 0x69, 0x91, 0x08, 0xee, 0x5d, 0x74, 0x79, 0x9f, 0x89,
- 0xd0, 0xe9, 0x00, 0x07, 0x24, 0xa6, 0xb1, 0x58, 0xa6, 0x02, 0x9d, 0x41,
- 0x9b, 0x07, 0x7e, 0x10, 0x94, 0x57, 0xeb, 0x38, 0x43, 0xca, 0x91, 0x73,
- 0xa0, 0x0d, 0x8f, 0xbe, 0x89, 0x38, 0x47, 0x9b, 0xfb, 0x38, 0xe4, 0x9a,
- 0x04, 0xec, 0x0b, 0x9f, 0x41, 0x91, 0xf8, 0x6a, 0xc9, 0xe7, 0xfd, 0xf0,
- 0x26, 0x5e, 0xb0, 0x48, 0xbc, 0xbb, 0xc3, 0xda, 0xf7, 0x77, 0x96, 0xed,
- 0xc5, 0x07, 0xd5, 0xca, 0x91, 0x16, 0x9d, 0x40, 0x31, 0x9f, 0x70, 0x35,
- 0x51, 0x96, 0x89, 0xab, 0x36, 0x3f, 0xba, 0x3d, 0x8b, 0xed, 0x19, 0x33,
- 0xac, 0x69, 0x41, 0xa4, 0x91, 0x17, 0x93, 0xdb, 0xed, 0x31, 0xfd, 0xf3,
- 0x64, 0x67, 0x1b, 0x50, 0x8c, 0x25, 0x4c, 0x64, 0x4c, 0x93, 0x7b, 0x7b,
- 0xcf, 0x9e, 0xf5, 0xa2, 0x0e, 0x1b, 0xad, 0xac, 0x03, 0x3e, 0x12, 0x74,
- 0xb2, 0x3a, 0x6d, 0x75, 0xe6, 0xb6, 0xf3, 0xab, 0x31, 0xff, 0xc7, 0xaf,
- 0x59, 0xad, 0xa8, 0x4b, 0x4d, 0xdf, 0xc0, 0x3a, 0xcc, 0x43, 0xac, 0x15,
- 0x23, 0xab, 0x7b, 0xda, 0x07, 0x33, 0x4b, 0xb0, 0x07, 0x62, 0x91, 0x64,
- 0x0b, 0x73, 0x33, 0xce, 0x14, 0x20, 0x1f, 0xdd, 0x07, 0xce, 0x19, 0x38,
- 0x86, 0x25, 0xae, 0x4a, 0x13, 0xeb, 0x8b, 0xe5, 0xa8, 0xaf, 0x19, 0xa6,
- 0xa2, 0x67, 0xa4, 0x74, 0x72, 0xe9, 0xcf, 0xa9, 0x59, 0x7f, 0x1b, 0x1c,
- 0xf9, 0xcb, 0xa8, 0xa3, 0xb4, 0xc5, 0x3f, 0x06, 0xf0, 0x12, 0x26, 0x63,
- 0x9e, 0x46, 0xf6, 0x4a, 0xff, 0xf8, 0x8f, 0xff, 0xa0, 0x66, 0xff, 0x83,
- 0x5b, 0x79, 0xf5, 0xc7, 0xa2, 0xbc, 0x09, 0x9e, 0xe9, 0x28, 0xc1, 0x9f,
- 0x78, 0x1f, 0x29, 0xe2, 0x9e, 0x00, 0x54, 0x8a, 0x44, 0xa8, 0x37, 0xa7,
- 0xca, 0x91, 0x7b, 0xc1, 0xfc, 0x52, 0xa4, 0xa8, 0x89, 0xcd, 0xcd, 0x85,
- 0x1d, 0x7c, 0xc9, 0xfe, 0xcb, 0x84, 0x53, 0x9b, 0x89, 0x0a, 0x81, 0x44,
- 0xb7, 0x65, 0x22, 0xc6, 0xf1, 0xdb, 0x6f, 0x4f, 0x2e, 0xce, 0xde, 0xbe,
- 0x39, 0x7e, 0x7b, 0x19, 0x7d, 0x7b, 0x70, 0x71, 0x72, 0xf0, 0xe5, 0xa9,
- 0x66, 0x50, 0xf3, 0x14, 0x38, 0x5a, 0x44, 0x44, 0xef, 0x1a, 0x8e, 0x68,
- 0x90, 0xd1, 0xd2, 0x0a, 0x9e, 0x5f, 0x2b, 0x17, 0xf8, 0x5e, 0x81, 0xa9,
- 0x61, 0x5e, 0x7d, 0x8f, 0x02, 0x16, 0x3d, 0x76, 0xf8, 0xbd, 0xb7, 0x5a,
- 0x16, 0x6c, 0xb6, 0x5c, 0x05, 0x39, 0xb9, 0x1c, 0xc8, 0xc2, 0x54, 0x6a,
- 0xfc, 0xc9, 0xd7, 0x1d, 0x52, 0x78, 0xff, 0x41, 0xf4, 0x95, 0xa4, 0x75,
- 0x6b, 0x48, 0x95, 0x7b, 0x55, 0x53, 0x8c, 0x60, 0xc6, 0x71, 0x63, 0x38,
- 0x38, 0x3d, 0xf5, 0x5d, 0x3d, 0x5e, 0x85, 0x41, 0xe1, 0x7c, 0x24, 0x0b,
- 0xe8, 0xc6, 0x2a, 0x0a, 0x5f, 0x67, 0x1e, 0x65, 0x7b, 0xbe, 0x0a, 0x01,
- 0xb5, 0xb9, 0x33, 0xda, 0x8e, 0x4d, 0xc1, 0x62, 0x60, 0x77, 0x23, 0x1d,
- 0xa0, 0xb4, 0xb8, 0xed, 0x45, 0xdd, 0x3f, 0x76, 0x25, 0x3b, 0x2b, 0x01,
- 0xdc, 0xac, 0xd4, 0x78, 0xd8, 0xf2, 0x83, 0x7a, 0x7b, 0xe6, 0xc7, 0xa4,
- 0x4e, 0x34, 0x37, 0x00, 0xf7, 0xa2, 0xf7, 0x7f, 0x16, 0x26, 0xcf, 0x20,
- 0xf0, 0xd0, 0x3f, 0xae, 0x88, 0xfe, 0x2e, 0xc5, 0x5c, 0x69, 0x94, 0xfd,
- 0x24, 0xad, 0xef, 0x42, 0x69, 0x8b, 0xc7, 0x01, 0xaa, 0xb0, 0x98, 0x71,
- 0x58, 0xf9, 0x85, 0x1c, 0x20, 0xf5, 0x8f, 0xe5, 0x72, 0x78, 0x90, 0xb2,
- 0xd9, 0x1b, 0x56, 0xac, 0x57, 0x39, 0x28, 0xa8, 0xea, 0x61, 0xdb, 0x6a,
- 0x3d, 0xc0, 0x65, 0xc5, 0x81, 0xe5, 0x79, 0x3a, 0x51, 0x9c, 0xba, 0x56,
- 0xaa, 0x18, 0xc0, 0xd3, 0x71, 0x71, 0x08, 0x50, 0xef, 0x39, 0x17, 0x80,
- 0x72, 0x85, 0x10, 0x24, 0x08, 0x95, 0xb8, 0x48, 0xce, 0x99, 0x5d, 0x73,
- 0x15, 0x42, 0x10, 0xd8, 0x09, 0x11, 0x3d, 0xbe, 0xce, 0x4c, 0xfc, 0x8e,
- 0x9d, 0xfb, 0x55, 0x32, 0xb6, 0x24, 0x66, 0xc7, 0xa4, 0x30, 0x07, 0x44,
- 0xe5, 0x2c, 0x60, 0x70, 0xd4, 0x9a, 0xbd, 0x99, 0xe3, 0x94, 0x60, 0x2f,
- 0xd3, 0x38, 0x86, 0x22, 0x48, 0xf7, 0xf5, 0x61, 0xf0, 0xcc, 0x4b, 0xc4,
- 0x45, 0x69, 0xc8, 0x50, 0xc0, 0xdf, 0xb2, 0xf4, 0x60, 0x44, 0xcc, 0x61,
- 0x58, 0xfc, 0x20, 0x9a, 0xd4, 0xe0, 0x47, 0x34, 0x69, 0xa6, 0x50, 0x3a,
- 0x3d, 0x53, 0xce, 0x44, 0x32, 0x4e, 0x14, 0x47, 0xa3, 0xf4, 0x3a, 0x32,
- 0x2b, 0x48, 0xc4, 0x54, 0x02, 0x94, 0xb0, 0x6c, 0x96, 0xf0, 0x56, 0x01,
- 0x03, 0x0c, 0xb2, 0xfb, 0x0d, 0x57, 0x88, 0xf7, 0xa0, 0x55, 0x36, 0x93,
- 0x82, 0x23, 0xf5, 0x03, 0x2b, 0x1a, 0x2c, 0xe9, 0x4b, 0x5e, 0x47, 0x0b,
- 0x6b, 0x52, 0x7c, 0x6b, 0x0d, 0xf2, 0x62, 0x13, 0x2d, 0xe0, 0xf6, 0xe6,
- 0x48, 0x29, 0xb1, 0xf4, 0x5c, 0xac, 0x83, 0x05, 0xc0, 0x32, 0xb7, 0x80,
- 0x65, 0x85, 0xab, 0x4d, 0x6d, 0x3a, 0x80, 0x6a, 0x6e, 0x65, 0x2c, 0x10,
- 0x9f, 0x4c, 0xf4, 0x12, 0x9f, 0x5e, 0xa9, 0x26, 0x61, 0x9b, 0xa5, 0x50,
- 0x4c, 0x57, 0x52, 0xd6, 0x9e, 0xc6, 0xb7, 0x19, 0x30, 0x9e, 0x39, 0x91,
- 0x88, 0x3c, 0x26, 0xfa, 0xa3, 0xfe, 0xd5, 0x17, 0xef, 0x65, 0x6c, 0x85,
- 0xb7, 0x8a, 0x2d, 0xef, 0xc1, 0x16, 0x29, 0x80, 0xa9, 0x75, 0xac, 0x05,
- 0xad, 0x30, 0x5e, 0xda, 0x2f, 0x33, 0x44, 0x85, 0x76, 0xac, 0xc8, 0x32,
- 0x37, 0xa6, 0xd3, 0x00, 0xa2, 0x5a, 0xcc, 0x11, 0x71, 0x43, 0xf8, 0x70,
- 0xe5, 0xe9, 0x0f, 0x34, 0x86, 0x44, 0xe0, 0x6c, 0x83, 0x99, 0x68, 0x74,
- 0x32, 0x8b, 0x67, 0x35, 0xf3, 0x58, 0xc0, 0xd1, 0xcc, 0xdb, 0x1a, 0xde,
- 0x4c, 0x5a, 0x19, 0x21, 0x8d, 0x67, 0x22, 0x3c, 0x7a, 0xf2, 0x9b, 0xad,
- 0x24, 0x7e, 0x6d, 0x63, 0xe3, 0xf0, 0xdd, 0xf0, 0xf2, 0xec, 0x4d, 0x74,
- 0xf6, 0xee, 0xf2, 0xfc, 0xdd, 0xa5, 0x5e, 0x5d, 0x23, 0x89, 0xfe, 0x15,
- 0x1d, 0x51, 0xa4, 0x00, 0xdb, 0xcd, 0x99, 0xba, 0x90, 0x11, 0xac, 0x90,
- 0x01, 0x9a, 0x2e, 0x40, 0xa9, 0x71, 0xd9, 0x3d, 0xc0, 0x6e, 0x12, 0xc4,
- 0x5b, 0xac, 0xf9, 0x3d, 0xad, 0x39, 0x32, 0x33, 0x61, 0xdb, 0xb1, 0x64,
- 0x21, 0xe8, 0x3d, 0xed, 0x55, 0x47, 0x6a, 0x75, 0xcc, 0xe0, 0xec, 0xad,
- 0x82, 0x02, 0xf9, 0x88, 0x1c, 0xb3, 0xed, 0x78, 0xd3, 0x4f, 0x18, 0x1c,
- 0x88, 0xb0, 0x98, 0x71, 0x69, 0xc6, 0x4c, 0x8b, 0xcf, 0x44, 0xd0, 0x4a,
- 0x35, 0x45, 0x2d, 0xcc, 0x94, 0x2b, 0x33, 0x9a, 0xe1, 0x8d, 0x8b, 0xad,
- 0xe6, 0x78, 0x14, 0xc4, 0x94, 0x89, 0x43, 0x9e, 0x83, 0xb7, 0xac, 0xc0,
- 0xfc, 0x3d, 0x9b, 0xc0, 0x1b, 0xd7, 0xec, 0x7d, 0xd4, 0xfd, 0x2e, 0x09,
- 0x1b, 0xfc, 0xfd, 0xdf, 0x39, 0x01, 0xf0, 0xbd, 0x7d, 0xf2, 0x0f, 0xe9,
- 0xf2, 0x2f, 0xf3, 0x2e, 0x42, 0xb1, 0xaa, 0x9e, 0xd7, 0x6f, 0x8e, 0x2f,
- 0xbe, 0x3c, 0xbe, 0x38, 0x1b, 0x22, 0xfc, 0xc4, 0xcc, 0x5d, 0x4d, 0x62,
- 0xbf, 0x4d, 0xf2, 0x51, 0x92, 0x67, 0x5a, 0x48, 0xc6, 0xfe, 0x7a, 0xb6,
- 0xfd, 0xd5, 0x70, 0x78, 0x70, 0x7e, 0xe2, 0x6a, 0x8e, 0xb8, 0x54, 0x24,
- 0xd1, 0x91, 0xe6, 0x92, 0x2c, 0xc7, 0xf3, 0xb7, 0x57, 0x88, 0x2e, 0xc6,
- 0xb7, 0x12, 0xa2, 0xda, 0xf0, 0x71, 0x9a, 0x8d, 0x96, 0x9d, 0x9b, 0x9a,
- 0xa1, 0xc6, 0x0d, 0x1b, 0xba, 0x90, 0x24, 0x6a, 0x0b, 0x01, 0xbf, 0x66,
- 0x93, 0x72, 0xcf, 0x85, 0x71, 0xdd, 0xe6, 0xa3, 0x3e, 0x11, 0xfa, 0xad,
- 0xd5, 0x87, 0x94, 0x60, 0x7a, 0x62, 0x93, 0x12, 0x65, 0xeb, 0xed, 0x0c,
- 0xb7, 0x5c, 0x15, 0x76, 0xfb, 0x96, 0x8f, 0x06, 0x97, 0xc5, 0x98, 0x0e,
- 0x84, 0xb3, 0xcb, 0x59, 0xb2, 0xd0, 0x49, 0x66, 0xaf, 0x8f, 0x81, 0x1d,
- 0x50, 0x6f, 0xae, 0x5e, 0x95, 0x98, 0xba, 0xe8, 0x93, 0xa7, 0x0e, 0xf4,
- 0x29, 0x2c, 0x18, 0x7a, 0x45, 0xc2, 0xf7, 0xe2, 0x7e, 0xa2, 0x17, 0x08,
- 0x20, 0x8e, 0xe7, 0x62, 0xe5, 0x16, 0xfe, 0x5d, 0xf7, 0x75, 0x70, 0x81,
- 0x2d, 0x44, 0xfd, 0x6b, 0x4c, 0x73, 0x34, 0x9a, 0xc6, 0xf3, 0x5b, 0xdc,
- 0x64, 0xb8, 0x9b, 0x58, 0xdd, 0x34, 0x2c, 0x23, 0x2e, 0x47, 0x06, 0xd7,
- 0x96, 0xc2, 0x0b, 0x40, 0x00, 0xb4, 0xe2, 0xe7, 0x6c, 0xd9, 0x75, 0x90,
- 0x4d, 0x81, 0x13, 0x07, 0x27, 0xc9, 0x2f, 0x02, 0x5b, 0x8d, 0x8e, 0x4f,
- 0xe9, 0x52, 0x72, 0x99, 0x0a, 0x50, 0xcf, 0x93, 0x29, 0x03, 0xef, 0x58,
- 0x70, 0x89, 0x24, 0xe7, 0xa5, 0x60, 0x62, 0xc2, 0x38, 0x0c, 0x7d, 0x1b,
- 0x6e, 0x08, 0x50, 0x0a, 0x72, 0x10, 0x0b, 0x57, 0xa3, 0x42, 0xb9, 0xb6,
- 0x30, 0x30, 0x80, 0x4b, 0xfa, 0x92, 0x15, 0x61, 0x11, 0x13, 0x8d, 0xd9,
- 0x3a, 0xf4, 0xa1, 0x25, 0xb1, 0x7d, 0x27, 0x83, 0xf0, 0x22, 0xa9, 0x73,
- 0x56, 0x55, 0x52, 0x24, 0xd6, 0x6e, 0x93, 0xbc, 0xde, 0x66, 0x00, 0x00,
- 0x03, 0xa4, 0x06, 0xc4, 0xfa, 0xed, 0xe0, 0x65, 0x2c, 0xee, 0xb5, 0x1a,
- 0x6b, 0x6a, 0x03, 0x1f, 0x58, 0x75, 0x75, 0x84, 0x3f, 0x89, 0xff, 0x09,
- 0x71, 0x92, 0x7a, 0xfb, 0x96, 0x13, 0x70, 0x9b, 0xbc, 0x82, 0x74, 0x1a,
- 0x86, 0x78, 0x0a, 0x02, 0x02, 0xcc, 0x82, 0x12, 0xf4, 0x0f, 0x0d, 0xc6,
- 0xc9, 0xb6, 0xfd, 0xb7, 0x7c, 0x55, 0x64, 0xfd, 0xd1, 0x12, 0x3a, 0x99,
- 0xc7, 0xea, 0xd2, 0x44, 0x40, 0x2e, 0x0a, 0x0c, 0x70, 0x2e, 0x7c, 0xcf,
- 0x6e, 0x0d, 0xa4, 0x58, 0x8b, 0xa7, 0x03, 0x39, 0x77, 0x55, 0xe0, 0x16,
- 0x07, 0xd7, 0x21, 0x81, 0xec, 0x08, 0xe8, 0xd5, 0xa8, 0x65, 0x1d, 0xa1,
- 0x6e, 0xb2, 0x0b, 0x39, 0x9b, 0x6b, 0xd5, 0x3c, 0xd8, 0xd9, 0xab, 0x61,
- 0xbb, 0xa5, 0x43, 0x4b, 0xbf, 0x84, 0x88, 0x90, 0x28, 0x86, 0xb8, 0xc5,
- 0xe3, 0x5a, 0xf4, 0xff, 0x5d, 0xc9, 0xf5, 0x81, 0x04, 0x69, 0x20, 0x9e,
- 0x4a, 0x91, 0x87, 0xb5, 0xb7, 0x88, 0x1c, 0xa6, 0xf2, 0xf2, 0xf2, 0x87,
- 0xf3, 0xe3, 0x57, 0xf6, 0xe6, 0x63, 0x7b, 0x26, 0x00, 0x5c, 0x08, 0xbf,
- 0x48, 0x14, 0xec, 0x32, 0xa8, 0xc1, 0x49, 0x44, 0xd6, 0x2f, 0xcd, 0x2d,
- 0x2c, 0xdd, 0xf4, 0xa3, 0xef, 0x8f, 0x4e, 0x86, 0xe7, 0xa7, 0x67, 0x87,
- 0xaf, 0x5e, 0x7e, 0x6f, 0xdc, 0xf8, 0x73, 0x46, 0x9c, 0x11, 0x19, 0xcd,
- 0x7d, 0xe6, 0x01, 0x02, 0xf4, 0xbd, 0xb7, 0xc7, 0xdf, 0xbd, 0x27, 0xcd,
- 0xe0, 0x15, 0x83, 0x82, 0xf7, 0xee, 0xe2, 0xa9, 0xbe, 0xc4, 0xea, 0x55,
- 0x8b, 0x5c, 0x17, 0xa4, 0x73, 0xb4, 0x2d, 0x2c, 0xcb, 0x13, 0x01, 0x42,
- 0xeb, 0x0a, 0x12, 0xb4, 0x46, 0x64, 0x05, 0xf5, 0x84, 0xe2, 0x4a, 0x6e,
- 0x66, 0x4b, 0x71, 0xc6, 0xcc, 0xdd, 0xfc, 0xdd, 0x52, 0x22, 0xf3, 0xd8,
- 0x1b, 0x1d, 0x3a, 0x79, 0x11, 0xfc, 0xa8, 0xdf, 0xf8, 0xa0, 0x50, 0x85,
- 0xdf, 0xcd, 0x39, 0x16, 0xc2, 0x61, 0x19, 0x6a, 0x85, 0x4c, 0xb8, 0x4f,
- 0x15, 0xf0, 0x50, 0x91, 0x7c, 0x38, 0x0e, 0xd3, 0x42, 0xb2, 0x5d, 0x15,
- 0x66, 0x11, 0x5f, 0xdc, 0x58, 0xe2, 0xf1, 0x98, 0x7e, 0x30, 0xc6, 0x24,
- 0x97, 0x73, 0x39, 0xe7, 0xaa, 0xec, 0xc3, 0x4b, 0x56, 0xa1, 0xb4, 0x6a,
- 0x99, 0x9a, 0x9f, 0xad, 0xa4, 0x1c, 0x12, 0xff, 0xab, 0xd8, 0x95, 0x61,
- 0xa9, 0x89, 0xca, 0x89, 0x76, 0x6c, 0xae, 0x9a, 0x09, 0xc8, 0x56, 0x04,
- 0x49, 0x2f, 0x64, 0x21, 0x54, 0x10, 0x58, 0xe3, 0x2b, 0x3b, 0xc0, 0x99,
- 0x92, 0x46, 0xad, 0xe2, 0x02, 0xaa, 0xa5, 0x60, 0x77, 0xa6, 0xe9, 0xc8,
- 0x1b, 0xcc, 0x6b, 0x9e, 0x48, 0x76, 0x74, 0x2b, 0xe2, 0x43, 0x78, 0x84,
- 0xcc, 0x14, 0xee, 0xd3, 0x6b, 0x8b, 0xcc, 0xca, 0x27, 0x0a, 0xf1, 0xc3,
- 0x54, 0x1d, 0x26, 0x41, 0x3a, 0x25, 0x15, 0x8a, 0x89, 0x89, 0x68, 0xee,
- 0xd3, 0x20, 0x94, 0x51, 0x41, 0x84, 0x80, 0x7d, 0xaa, 0x2c, 0x1b, 0xf5,
- 0xca, 0x25, 0x9d, 0x89, 0x8d, 0x2c, 0x24, 0xb0, 0x20, 0x3d, 0x1b, 0x21,
- 0x27, 0x3a, 0xb3, 0x86, 0xf4, 0xa1, 0x62, 0xe3, 0x35, 0xe7, 0x41, 0x01,
- 0xa9, 0x69, 0xc2, 0xa2, 0x16, 0xac, 0x6f, 0x61, 0x67, 0x76, 0x93, 0xf2,
- 0x0a, 0x8e, 0x96, 0x61, 0x3d, 0x2f, 0x37, 0x7a, 0x29, 0x69, 0x81, 0x85,
- 0x47, 0xb0, 0x5d, 0x9c, 0x03, 0x09, 0xb1, 0x54, 0xa4, 0x71, 0x53, 0x7a,
- 0x34, 0x72, 0x6e, 0x50, 0x05, 0x85, 0x31, 0xba, 0xb4, 0x52, 0x7d, 0x8f,
- 0xad, 0xa8, 0x5b, 0x4d, 0x21, 0xdf, 0x3c, 0xb1, 0x10, 0x18, 0x31, 0x31,
- 0x14, 0xec, 0x6b, 0x98, 0x8f, 0xdd, 0x65, 0xcc, 0x99, 0x2b, 0x1c, 0x0a,
- 0x92, 0x2b, 0xe0, 0xce, 0x92, 0x8b, 0xa3, 0x6b, 0x05, 0x51, 0xd4, 0xbf,
- 0x64, 0x87, 0x9b, 0x81, 0xb1, 0xf9, 0x58, 0x60, 0x59, 0xee, 0x80, 0xac,
- 0xc4, 0xb4, 0xbe, 0xd2, 0x0e, 0x5d, 0x96, 0xb5, 0x6d, 0x56, 0x4f, 0x92,
- 0x76, 0x62, 0xe4, 0x88, 0x98, 0x4d, 0x37, 0xc8, 0x35, 0x2c, 0x34, 0x83,
- 0xd3, 0x39, 0x2b, 0x85, 0xe1, 0xa1, 0x62, 0x91, 0xcf, 0x79, 0xaa, 0x38,
- 0x05, 0x49, 0xb2, 0x5c, 0xa0, 0xfc, 0xce, 0x58, 0x11, 0xc8, 0x11, 0xfc,
- 0xe9, 0xda, 0xb3, 0x3b, 0xc4, 0xaf, 0x15, 0x2d, 0xea, 0x9b, 0x77, 0xa7,
- 0x97, 0x27, 0xe7, 0xa1, 0xe3, 0x31, 0xfa, 0xee, 0xe4, 0xf2, 0x6b, 0x92,
- 0xd7, 0xb9, 0xb6, 0xf3, 0x29, 0x7b, 0x77, 0xde, 0xbc, 0x39, 0x78, 0xcb,
- 0x19, 0xea, 0x6f, 0x11, 0x23, 0x77, 0x00, 0x9d, 0x81, 0xb9, 0x11, 0xad,
- 0x30, 0x93, 0x0e, 0xe7, 0x2e, 0xf7, 0x9a, 0x5e, 0x86, 0xda, 0xe9, 0x03,
- 0xc3, 0xe1, 0x23, 0x14, 0xae, 0x11, 0x6f, 0xb8, 0xea, 0x04, 0x2b, 0xb6,
- 0xe9, 0xe0, 0xd4, 0xb2, 0x9e, 0xc5, 0xeb, 0x5c, 0x87, 0x1e, 0x47, 0x9e,
- 0x9c, 0xc8, 0xe6, 0xf0, 0xa9, 0xca, 0xd5, 0xed, 0x3d, 0x17, 0xd8, 0x50,
- 0x07, 0x62, 0x8a, 0x98, 0x55, 0x12, 0x99, 0xe6, 0xaa, 0xd2, 0xc8, 0x75,
- 0x59, 0x8d, 0x5b, 0xa7, 0x1e, 0x31, 0x24, 0x38, 0x95, 0x33, 0x6f, 0x0c,
- 0x64, 0x65, 0x93, 0xf5, 0xe5, 0x8b, 0xd3, 0xf0, 0x3e, 0xad, 0xd6, 0x0f,
- 0xb6, 0x40, 0xb3, 0xeb, 0x2c, 0xf1, 0x07, 0xb7, 0x7f, 0x66, 0xcd, 0x98,
- 0xe5, 0x17, 0x1a, 0x98, 0xdc, 0x2d, 0x7d, 0x66, 0x6b, 0x7d, 0xda, 0x92,
- 0x2d, 0x57, 0xa3, 0x46, 0x2d, 0x67, 0xfb, 0x22, 0x55, 0x56, 0xaa, 0x78,
- 0x03, 0x39, 0xf6, 0xcc, 0xb5, 0xac, 0x01, 0x0d, 0x88, 0xeb, 0xd5, 0xd4,
- 0x18, 0x9d, 0x33, 0x98, 0xa5, 0x3d, 0x56, 0xc9, 0xec, 0xad, 0x95, 0x12,
- 0xb7, 0xd4, 0x28, 0x24, 0x44, 0x32, 0x84, 0x8b, 0xf7, 0x99, 0xa2, 0x2c,
- 0x57, 0x96, 0x0d, 0x92, 0x87, 0x84, 0xdd, 0x9b, 0xfc, 0xeb, 0x5f, 0x17,
- 0xd7, 0x61, 0xd6, 0x14, 0xe6, 0xaa, 0xe9, 0xc1, 0xed, 0x98, 0xc0, 0x22,
- 0x15, 0x69, 0x71, 0xb2, 0xca, 0x08, 0xb4, 0xe2, 0xd8, 0xee, 0xba, 0x0e,
- 0xf5, 0xfb, 0xbd, 0xe6, 0xf7, 0x7b, 0x62, 0x71, 0xe4, 0x0a, 0xf4, 0x0e,
- 0x4f, 0x53, 0x72, 0x81, 0x43, 0xe9, 0xcd, 0x64, 0x02, 0xa6, 0x30, 0x29,
- 0x56, 0x0f, 0xb7, 0x8a, 0xb0, 0x44, 0x31, 0xfb, 0x73, 0x2c, 0xd2, 0x32,
- 0x47, 0x8e, 0x23, 0x1e, 0x81, 0x85, 0x58, 0x02, 0x48, 0x11, 0xae, 0x05,
- 0x36, 0xc5, 0xb7, 0x15, 0x35, 0x48, 0xdf, 0x3f, 0x75, 0x01, 0xdd, 0x9e,
- 0xa5, 0xa1, 0xc0, 0x97, 0x66, 0xd4, 0xf4, 0xd3, 0xc5, 0x9d, 0x15, 0xb8,
- 0xa4, 0x5f, 0x9f, 0xbb, 0xe2, 0x2e, 0x45, 0xc5, 0x3d, 0x55, 0x01, 0xae,
- 0x35, 0xde, 0x8f, 0xc1, 0x21, 0xc0, 0x8e, 0x19, 0x83, 0xc3, 0x7c, 0x1d,
- 0xd4, 0xc6, 0x95, 0x54, 0x43, 0x7b, 0x83, 0x52, 0x93, 0xb0, 0x2d, 0x4f,
- 0x91, 0x5d, 0x09, 0x76, 0x14, 0xf0, 0x96, 0x10, 0x27, 0x5e, 0x77, 0xfd,
- 0xc7, 0xbd, 0x9d, 0x9d, 0xdd, 0xfd, 0xdd, 0xcf, 0x5e, 0xec, 0xec, 0xef,
- 0xee, 0xee, 0xee, 0xed, 0xef, 0xee, 0xef, 0xef, 0xed, 0xfc, 0xb4, 0xcd,
- 0xa6, 0xa3, 0xbb, 0x34, 0xb9, 0x77, 0x95, 0xe4, 0xbf, 0x93, 0x6b, 0x1a,
- 0xfe, 0x82, 0x95, 0xb8, 0x01, 0x99, 0x4b, 0xaa, 0x86, 0x6b, 0x82, 0x8f,
- 0x43, 0x26, 0x90, 0xe0, 0x6b, 0x01, 0x24, 0x5b, 0xf8, 0x6c, 0x45, 0x9c,
- 0xc1, 0x00, 0x30, 0x19, 0xa3, 0xfa, 0xdb, 0x92, 0x67, 0x3a, 0x62, 0x69,
- 0x00, 0x22, 0x4d, 0xe1, 0x72, 0xc3, 0xae, 0xa7, 0xd9, 0x68, 0x84, 0x00,
- 0x78, 0x97, 0x1e, 0x39, 0x88, 0x18, 0x99, 0xf3, 0x56, 0x48, 0x42, 0x9d,
- 0x06, 0x08, 0x4f, 0x93, 0x83, 0xee, 0x57, 0x47, 0xe4, 0x2e, 0x0d, 0xc9,
- 0x1d, 0x67, 0x8c, 0x4a, 0x3f, 0x61, 0xa6, 0x44, 0x8b, 0x94, 0xbb, 0xb4,
- 0x89, 0xe8, 0x2a, 0xf9, 0x6c, 0x67, 0x7f, 0x9f, 0x0b, 0x47, 0xfc, 0x7e,
- 0xb7, 0xa7, 0x91, 0x85, 0x61, 0xb8, 0x74, 0xcf, 0xdd, 0x4e, 0xd2, 0x06,
- 0x6b, 0x1f, 0xe1, 0x3c, 0xe7, 0xcb, 0x59, 0x92, 0xab, 0x1e, 0x82, 0xfb,
- 0x50, 0x00, 0x64, 0x98, 0x18, 0x6d, 0xc8, 0xee, 0x59, 0x94, 0x42, 0x81,
- 0x49, 0x5e, 0xf2, 0x1b, 0xfc, 0xe5, 0xa9, 0xe7, 0x1c, 0x47, 0x65, 0x2e,
- 0x45, 0x26, 0xf9, 0x61, 0x08, 0xe4, 0x40, 0xc5, 0xc8, 0x6e, 0x43, 0x59,
- 0x55, 0x73, 0x3a, 0x7e, 0x0c, 0x06, 0xbf, 0xf7, 0x6c, 0xf7, 0x27, 0x09,
- 0x64, 0x63, 0x02, 0xf7, 0xab, 0xa0, 0xa5, 0xc1, 0x26, 0x2a, 0x8f, 0x48,
- 0x1a, 0x98, 0x12, 0xc6, 0x66, 0x32, 0xb8, 0x1e, 0x98, 0x90, 0xa0, 0x86,
- 0xc3, 0x5e, 0x18, 0x4e, 0x2c, 0x08, 0xd6, 0x52, 0x93, 0x1d, 0x6a, 0x97,
- 0xd9, 0x86, 0xcc, 0xb6, 0x2b, 0x76, 0xc9, 0x4a, 0x8d, 0x97, 0x0d, 0xba,
- 0x32, 0x0e, 0x4e, 0x4e, 0x39, 0x5e, 0xe5, 0x94, 0x24, 0xb0, 0xa1, 0xb1,
- 0x32, 0x84, 0xf4, 0x20, 0xde, 0x66, 0x9e, 0xf2, 0x6d, 0xda, 0x73, 0xd0,
- 0xf2, 0x16, 0x16, 0x0f, 0xb1, 0x82, 0xed, 0xee, 0x22, 0x99, 0x2b, 0x0e,
- 0x14, 0xc9, 0xc3, 0xc4, 0xcf, 0x0a, 0x31, 0xa7, 0x00, 0x6e, 0x91, 0x71,
- 0x88, 0xe1, 0xe3, 0x80, 0xc4, 0x2b, 0x0b, 0x8f, 0x6a, 0x16, 0x79, 0x32,
- 0x4d, 0xee, 0xd4, 0xee, 0x21, 0xe0, 0x75, 0x5f, 0xa9, 0x7b, 0x41, 0x8a,
- 0xd9, 0x95, 0xde, 0x4b, 0x52, 0xf1, 0x60, 0x70, 0x9f, 0xdb, 0x92, 0xf7,
- 0xef, 0xd3, 0xb9, 0x51, 0xfc, 0xd7, 0x01, 0x2e, 0x9b, 0x37, 0x87, 0xdf,
- 0xeb, 0xb3, 0x08, 0xaa, 0x71, 0x48, 0xef, 0x0a, 0xcd, 0xd8, 0xad, 0x47,
- 0x05, 0x8a, 0x2a, 0x6f, 0xe5, 0x90, 0xc4, 0x2c, 0xd6, 0x33, 0x4c, 0x4c,
- 0x31, 0xe6, 0xb1, 0xd4, 0xd2, 0x63, 0x13, 0x0a, 0x5a, 0xba, 0x22, 0x79,
- 0x89, 0x91, 0xcf, 0x7b, 0x91, 0x2f, 0x1c, 0x9f, 0x4d, 0xe9, 0x4f, 0x04,
- 0x3a, 0xf0, 0xaa, 0xe3, 0x59, 0xc6, 0xf4, 0x0b, 0xc2, 0x8f, 0xe8, 0x4f,
- 0x09, 0x7b, 0xd5, 0xbf, 0xd0, 0x54, 0xbe, 0x04, 0x74, 0x64, 0x4f, 0x88,
- 0x95, 0xfd, 0x01, 0xe5, 0x78, 0xe0, 0x46, 0xaf, 0xee, 0x38, 0x19, 0xff,
- 0x91, 0x79, 0x8b, 0x8c, 0x4d, 0x64, 0xb9, 0xad, 0xae, 0xec, 0xc2, 0x48,
- 0xaa, 0x57, 0x7d, 0xb9, 0x64, 0x3b, 0xb5, 0xab, 0xce, 0xc0, 0xa3, 0x98,
- 0x31, 0x69, 0x25, 0x52, 0x28, 0xce, 0x35, 0xce, 0x02, 0xd7, 0x92, 0x76,
- 0x57, 0x5a, 0x3f, 0xcd, 0xee, 0xb9, 0xca, 0xdd, 0xd5, 0x15, 0xd7, 0x2d,
- 0x3f, 0x9b, 0x7b, 0x88, 0x48, 0xe6, 0xaa, 0xf2, 0xe0, 0xcc, 0x4a, 0x6b,
- 0xd0, 0xdc, 0xac, 0x80, 0xbd, 0x05, 0x2e, 0x0e, 0xa2, 0x03, 0xac, 0x12,
- 0xc9, 0x42, 0x68, 0x4e, 0xdc, 0x6c, 0x10, 0x07, 0x6b, 0x71, 0x72, 0x5a,
- 0x82, 0x97, 0x6f, 0xc8, 0x19, 0xca, 0xfd, 0x71, 0x4c, 0xd8, 0x2c, 0x9b,
- 0x5b, 0xd8, 0xf3, 0xb2, 0x10, 0xc0, 0x30, 0xab, 0xd7, 0xbb, 0x21, 0x36,
- 0xc3, 0x74, 0xaa, 0x08, 0xbd, 0x2a, 0x38, 0xe3, 0x8d, 0x70, 0x32, 0x93,
- 0xfe, 0xe2, 0x66, 0x61, 0x3b, 0x6d, 0xfc, 0x4a, 0x98, 0x99, 0x06, 0xda,
- 0xe2, 0x7a, 0x3b, 0xff, 0xfa, 0x7c, 0x10, 0x1d, 0x73, 0x4b, 0x32, 0x26,
- 0xbd, 0x87, 0xa0, 0x41, 0xd1, 0x77, 0x34, 0xd9, 0x6b, 0x66, 0xe0, 0x67,
- 0x39, 0xff, 0x85, 0xd6, 0xf4, 0x4b, 0x31, 0x9a, 0xe0, 0xdb, 0x6a, 0xaf,
- 0xd4, 0x90, 0x45, 0xc4, 0x9d, 0xe3, 0x77, 0x3a, 0x2a, 0xc4, 0x1d, 0xdd,
- 0x36, 0xf9, 0x1e, 0xb2, 0xbc, 0x02, 0xaf, 0x20, 0x6f, 0x46, 0xc4, 0x34,
- 0xc1, 0xfa, 0x16, 0x2b, 0xec, 0x1f, 0x14, 0x6e, 0x60, 0x72, 0xe8, 0xf5,
- 0x20, 0x0d, 0x04, 0xa4, 0xa5, 0xe4, 0xe7, 0x02, 0x6b, 0xe4, 0x5c, 0xe5,
- 0x02, 0x2c, 0x90, 0x27, 0x1a, 0x86, 0x94, 0xa9, 0x03, 0x43, 0xf4, 0x8d,
- 0x22, 0xa9, 0x1d, 0xd7, 0x40, 0xbc, 0xb2, 0x2f, 0x58, 0x28, 0xe6, 0xb1,
- 0x10, 0x13, 0xa2, 0x2d, 0x18, 0x6c, 0xfc, 0xbf, 0xe1, 0xec, 0xb1, 0x7d,
- 0xfd, 0x05, 0x02, 0x00,
+ 0x80, 0x61, 0x57, 0xd3, 0xb6, 0x3e, 0x2c, 0x63, 0x71, 0x23, 0xbe, 0x32,
+ 0xc1, 0x63, 0xe2, 0xf7, 0xaf, 0x17, 0x2b, 0xe1, 0x32, 0x43, 0x3f, 0xae,
+ 0x16, 0x5b, 0x35, 0x94, 0xdf, 0x97, 0xfd, 0x5a, 0x97, 0x1f, 0x8d, 0x0c,
+ 0xb9, 0x7f, 0x12, 0x53, 0xe0, 0xa3, 0xf3, 0xa1, 0x93, 0x87, 0x54, 0xa0,
+ 0x5e, 0xda, 0x52, 0x50, 0x94, 0x21, 0x14, 0x49, 0xd9, 0x9e, 0x16, 0xf6,
+ 0xb0, 0x72, 0x71, 0xf7, 0x32, 0x85, 0x9c, 0x8b, 0x03, 0xad, 0xc9, 0x67,
+ 0x41, 0xa9, 0x23, 0x41, 0x4e, 0x8a, 0x37, 0x5a, 0xd4, 0x46, 0x1f, 0x81,
+ 0x53, 0x48, 0x42, 0x8f, 0xb4, 0xde, 0x41, 0xa0, 0xb9, 0x8d, 0xb8, 0x2d,
+ 0xd9, 0x32, 0xf4, 0xf5, 0xc7, 0xd3, 0xd0, 0x7e, 0x1e, 0x28, 0x10, 0x0a,
+ 0x35, 0xc2, 0x91, 0xfc, 0x88, 0x80, 0x0b, 0xd6, 0xbf, 0x2d, 0xe6, 0x0c,
+ 0x5c, 0x97, 0x94, 0x0c, 0x9a, 0xc0, 0x74, 0xa5, 0x58, 0xbd, 0x5c, 0xf9,
+ 0x5c, 0xcc, 0x45, 0xfc, 0xae, 0x44, 0x4c, 0x82, 0x52, 0x2d, 0xd4, 0x8f,
+ 0xbe, 0x6f, 0x9a, 0xe0, 0x1d, 0x36, 0x9b, 0x53, 0x61, 0x82, 0xe1, 0x49,
+ 0x28, 0x41, 0xa3, 0x08, 0x8b, 0x33, 0x00, 0x36, 0xab, 0xf0, 0xe1, 0xea,
+ 0xe3, 0xba, 0xb0, 0x8a, 0xcd, 0xc6, 0xeb, 0x55, 0x2f, 0x55, 0x66, 0x9b,
+ 0x03, 0x9b, 0x33, 0x90, 0x62, 0x7c, 0x99, 0xd1, 0x7a, 0x60, 0x43, 0xad,
+ 0x48, 0xdd, 0x3a, 0xcb, 0xa7, 0x2b, 0xb8, 0x23, 0x2d, 0x21, 0x5a, 0x71,
+ 0xb7, 0x17, 0xd0, 0x01, 0x54, 0xe0, 0x06, 0xc6, 0xae, 0xab, 0xcd, 0xd4,
+ 0x86, 0x11, 0x77, 0x1f, 0xaf, 0x0c, 0xa3, 0x46, 0xda, 0x68, 0x25, 0xc1,
+ 0x5e, 0x10, 0xa2, 0x6b, 0xe5, 0xea, 0x5a, 0x4b, 0xfb, 0x5a, 0x09, 0x8f,
+ 0x4d, 0x0d, 0x3d, 0xdf, 0x72, 0xb1, 0x02, 0x09, 0x9d, 0x28, 0x70, 0x03,
+ 0xb8, 0x80, 0xfe, 0xf4, 0x68, 0x0c, 0xe1, 0xaf, 0xc4, 0x1a, 0xbe, 0x47,
+ 0x98, 0x90, 0x5c, 0x66, 0x6b, 0x2b, 0xcc, 0x30, 0x19, 0x19, 0x76, 0x74,
+ 0x0a, 0x27, 0xaa, 0x02, 0x2b, 0xda, 0x9b, 0x5a, 0xb2, 0x34, 0x4c, 0xb9,
+ 0xfa, 0xc8, 0x42, 0x9b, 0xa0, 0x6e, 0x57, 0x71, 0xe2, 0xb2, 0xc2, 0x79,
+ 0x9c, 0x9c, 0x2a, 0x48, 0x67, 0x6b, 0x6a, 0x69, 0x84, 0xd9, 0x1e, 0xb2,
+ 0xf0, 0x3a, 0x1a, 0x0f, 0xa8, 0x28, 0xb5, 0x0a, 0x05, 0xe5, 0x4c, 0xd3,
+ 0xb9, 0xe0, 0xff, 0xff, 0xea, 0xf8, 0x72, 0xab, 0x09, 0x60, 0x14, 0x4f,
+ 0xfc, 0xc8, 0x00, 0xe7, 0xaa, 0xe7, 0x41, 0x7c, 0xa2, 0x50, 0x15, 0x2d,
+ 0x81, 0x50, 0x14, 0x9d, 0xe4, 0x61, 0x31, 0x8d, 0xe7, 0x5a, 0x59, 0xb0,
+ 0xd6, 0xdc, 0x21, 0x2d, 0x03, 0x73, 0xb2, 0x20, 0x4c, 0x48, 0xbd, 0xee,
+ 0x06, 0x1b, 0xe9, 0x22, 0x3d, 0x22, 0xa4, 0xe8, 0x70, 0x8b, 0x47, 0xc7,
+ 0xa7, 0xc7, 0x97, 0xc7, 0x88, 0xa0, 0x6e, 0x88, 0x24, 0x53, 0x14, 0x00,
+ 0x2f, 0x93, 0xf1, 0xcd, 0x3c, 0xa3, 0xbb, 0x57, 0x42, 0x3a, 0xe8, 0xa6,
+ 0xff, 0x2e, 0x19, 0x1d, 0x1d, 0x7c, 0x2b, 0x21, 0x0d, 0x45, 0x74, 0x7e,
+ 0x71, 0x76, 0xfe, 0xfa, 0xe4, 0xed, 0x51, 0x2f, 0x3a, 0x3c, 0x3b, 0xff,
+ 0xa1, 0x17, 0xbd, 0x39, 0xfb, 0xf6, 0xb8, 0xc5, 0xa7, 0xc8, 0xfe, 0xec,
+ 0x66, 0xc6, 0xd9, 0xeb, 0x35, 0xbb, 0x1d, 0xa2, 0xb2, 0xea, 0x56, 0x07,
+ 0x89, 0x3e, 0xa7, 0x27, 0xc3, 0x4b, 0x6c, 0x7d, 0x3d, 0xde, 0x0b, 0x31,
+ 0xed, 0x52, 0x7c, 0x20, 0x2d, 0x2c, 0x80, 0x83, 0x2b, 0xe7, 0xfd, 0x76,
+ 0x54, 0xbd, 0xe2, 0xf0, 0x1e, 0x96, 0xda, 0x15, 0xfb, 0x8a, 0xff, 0x6d,
+ 0xc1, 0x4c, 0x8c, 0xbd, 0xe6, 0xc1, 0xfe, 0x5e, 0x2d, 0x78, 0x75, 0x23,
+ 0x79, 0x39, 0xf4, 0xb2, 0xe0, 0x34, 0x8d, 0x6a, 0xf2, 0x7a, 0x34, 0x59,
+ 0xe6, 0x4d, 0x89, 0x27, 0x8e, 0x82, 0x0e, 0x25, 0x57, 0xa9, 0x57, 0x51,
+ 0xda, 0xd8, 0xfb, 0x58, 0xf8, 0xa2, 0x36, 0xd4, 0x7d, 0xf0, 0x42, 0xc3,
+ 0xb1, 0x23, 0xa8, 0xad, 0x21, 0x02, 0x59, 0x38, 0x24, 0x9b, 0xf6, 0x2e,
+ 0x29, 0xf8, 0x53, 0x86, 0x3b, 0xe2, 0x9b, 0x48, 0x70, 0x88, 0x7e, 0x78,
+ 0x1c, 0xb9, 0x52, 0x42, 0x0c, 0x43, 0x5f, 0xbc, 0x30, 0x9f, 0xa5, 0x03,
+ 0x87, 0xc5, 0x65, 0x1e, 0xc3, 0x05, 0x14, 0x61, 0x4d, 0x9a, 0xda, 0x89,
+ 0x6a, 0x07, 0x12, 0xe4, 0x10, 0x24, 0xa0, 0x21, 0x22, 0x92, 0x6e, 0x17,
+ 0x39, 0x25, 0xc4, 0xf5, 0x7b, 0x92, 0x89, 0x09, 0xd8, 0x76, 0x7d, 0xaf,
+ 0xdf, 0x62, 0x20, 0x61, 0xc1, 0x79, 0x0d, 0x3f, 0xff, 0xf5, 0x68, 0xe2,
+ 0x07, 0x47, 0x13, 0xb2, 0x86, 0x2f, 0xf1, 0xc7, 0x2f, 0xa2, 0x8a, 0x00,
+ 0xd2, 0x4b, 0x74, 0xc2, 0x4d, 0x12, 0xdb, 0x2a, 0xe4, 0xd1, 0x6f, 0x64,
+ 0x35, 0x4c, 0xb6, 0xd4, 0xbc, 0x14, 0xec, 0xb6, 0xda, 0x75, 0x58, 0x2e,
+ 0xaa, 0x12, 0x45, 0x85, 0x22, 0x5a, 0xc4, 0x19, 0xd9, 0x62, 0x09, 0x17,
+ 0x4e, 0x19, 0x8e, 0x9c, 0x6f, 0x57, 0x60, 0x8d, 0x24, 0xe5, 0x6f, 0xb8,
+ 0x74, 0x3f, 0x73, 0xe6, 0x33, 0x3d, 0xde, 0x07, 0xf9, 0xbf, 0x9c, 0xb0,
+ 0xf8, 0x4c, 0x4c, 0x4f, 0xc3, 0x8b, 0xd6, 0xa2, 0xec, 0x6f, 0x11, 0x33,
+ 0x15, 0x0e, 0x1e, 0xab, 0xf5, 0x96, 0xc5, 0x0f, 0xce, 0x52, 0x1f, 0x31,
+ 0xda, 0x9f, 0xd6, 0xae, 0x61, 0x5f, 0x62, 0x69, 0x2b, 0xdc, 0x72, 0xf3,
+ 0x6b, 0xb5, 0x71, 0x05, 0x6f, 0xe4, 0xe3, 0x47, 0x8f, 0xbb, 0x6a, 0x4d,
+ 0x6b, 0x9a, 0x54, 0x5b, 0x23, 0x7f, 0xdb, 0x42, 0x6f, 0xae, 0x4c, 0x41,
+ 0x38, 0x0d, 0x13, 0x0a, 0x50, 0xcb, 0x08, 0x01, 0x24, 0xc4, 0xd4, 0xf0,
+ 0x8c, 0x84, 0x10, 0x14, 0xdc, 0x65, 0x43, 0xb9, 0x66, 0xc3, 0x9c, 0x45,
+ 0x44, 0x2a, 0x4a, 0x04, 0x82, 0x17, 0x3c, 0x78, 0x34, 0x8d, 0x52, 0x6d,
+ 0xb2, 0x06, 0xbb, 0x6a, 0x40, 0xdd, 0x2d, 0x19, 0x1c, 0x1a, 0x98, 0xe0,
+ 0x93, 0x24, 0x35, 0x8c, 0x5b, 0xf9, 0xec, 0xef, 0x14, 0x00, 0x53, 0x30,
+ 0x7a, 0xd9, 0x57, 0x4b, 0x6d, 0xf1, 0x18, 0x39, 0xe1, 0x7d, 0x4d, 0xc6,
+ 0xbb, 0xc0, 0xdf, 0xd6, 0x27, 0xab, 0x37, 0x58, 0xbb, 0xfc, 0x24, 0x7c,
+ 0xa7, 0xf6, 0x86, 0x62, 0xc7, 0xa3, 0x36, 0xda, 0x66, 0x7f, 0xcb, 0xc5,
+ 0x4d, 0x02, 0x52, 0x54, 0xb6, 0xb9, 0x69, 0x0f, 0x89, 0x9d, 0x65, 0xc2,
+ 0x45, 0xde, 0x66, 0xd3, 0x89, 0x3f, 0x4f, 0x96, 0xad, 0xc4, 0x9d, 0x6d,
+ 0x8b, 0xdd, 0xd3, 0x55, 0x66, 0x2d, 0x9a, 0xf2, 0x77, 0xa3, 0xb1, 0x79,
+ 0x72, 0x1f, 0x36, 0xe6, 0x65, 0x07, 0xd7, 0xe0, 0x6f, 0x19, 0x82, 0xce,
+ 0x18, 0x7c, 0xd0, 0xba, 0x8b, 0x56, 0x54, 0x5e, 0x4e, 0x71, 0x0f, 0x20,
+ 0xfc, 0x4c, 0x63, 0x82, 0xa0, 0x12, 0xd8, 0x98, 0xfb, 0x62, 0x2d, 0x00,
+ 0x89, 0x19, 0x3a, 0x69, 0x5b, 0xea, 0x75, 0xff, 0x94, 0x8e, 0xa1, 0xab,
+ 0xdf, 0xa3, 0xe3, 0xae, 0x56, 0x5d, 0x0e, 0x81, 0x89, 0xa5, 0x70, 0xaf,
+ 0xe0, 0x4b, 0xb7, 0xa5, 0xac, 0x80, 0xd4, 0x5c, 0xd7, 0x15, 0xa3, 0x77,
+ 0xd4, 0xe1, 0xf0, 0xf6, 0x51, 0xb1, 0xcc, 0x27, 0xcb, 0x59, 0x27, 0xcc,
+ 0x82, 0xd7, 0x85, 0x61, 0x06, 0x5a, 0x3f, 0x08, 0x72, 0x09, 0x51, 0xaf,
+ 0xcf, 0x76, 0x6a, 0x16, 0x74, 0xc3, 0x27, 0x0c, 0x10, 0x09, 0xfb, 0xbb,
+ 0x21, 0xfd, 0x50, 0x7b, 0x0d, 0x21, 0xb1, 0xe4, 0x7b, 0xed, 0x37, 0xdc,
+ 0xbc, 0x1d, 0x5a, 0x4c, 0x16, 0xc0, 0x77, 0x07, 0x3b, 0xed, 0xe2, 0x2e,
+ 0x47, 0xef, 0x8d, 0x13, 0x5f, 0x60, 0x3e, 0x25, 0xf5, 0x95, 0x47, 0x5b,
+ 0x78, 0xc9, 0x4d, 0xe2, 0x32, 0x5c, 0x2d, 0x6e, 0x3d, 0xa4, 0xf5, 0x2b,
+ 0xe0, 0xca, 0x55, 0xa4, 0x2e, 0x1c, 0x57, 0x40, 0x5a, 0x7a, 0x22, 0xe6,
+ 0xf4, 0x7d, 0x27, 0x6a, 0x06, 0xc3, 0xdb, 0x65, 0x96, 0x3b, 0x2d, 0xee,
+ 0x76, 0x5b, 0xcb, 0xb8, 0xd4, 0x86, 0xc6, 0x92, 0xd8, 0xe5, 0xe9, 0xd0,
+ 0x05, 0x08, 0xef, 0x8a, 0x08, 0xee, 0xf0, 0x4f, 0x9c, 0x3a, 0xd4, 0x38,
+ 0x50, 0x6a, 0x8e, 0xe1, 0x97, 0x55, 0x08, 0xf7, 0x43, 0xd8, 0xe3, 0x0b,
+ 0xb3, 0x98, 0xde, 0xed, 0xb5, 0x0e, 0xc1, 0xc6, 0x50, 0x19, 0x04, 0x1b,
+ 0x5a, 0x6c, 0x10, 0x7b, 0xcd, 0x41, 0x08, 0x0b, 0x69, 0x1f, 0x02, 0xbf,
+ 0xda, 0x18, 0xc2, 0x13, 0x1d, 0xc2, 0x93, 0x8f, 0x5d, 0x85, 0x70, 0x00,
+ 0x4f, 0x7e, 0xe9, 0x2a, 0xb4, 0x0e, 0xe1, 0x29, 0x07, 0xd4, 0x2f, 0xee,
+ 0x9e, 0xb6, 0x64, 0xf6, 0x98, 0x4d, 0x0c, 0xac, 0x0a, 0x68, 0x29, 0x53,
+ 0x29, 0x48, 0xeb, 0x5d, 0xe6, 0x5c, 0x8a, 0xd3, 0x61, 0xb7, 0x7b, 0x0f,
+ 0xd3, 0x49, 0xbd, 0xea, 0xa6, 0x8e, 0xd9, 0x03, 0x5f, 0x0b, 0x0a, 0xcc,
+ 0x95, 0xfe, 0xc2, 0x31, 0xc6, 0x7d, 0xed, 0xa1, 0x56, 0x68, 0x5d, 0x4a,
+ 0x45, 0xaf, 0x89, 0x75, 0x46, 0xc2, 0xa3, 0x20, 0x9a, 0x69, 0x11, 0xa9,
+ 0x8c, 0xdb, 0x7a, 0x6a, 0x83, 0x4a, 0x24, 0xf0, 0x34, 0x98, 0xee, 0x73,
+ 0x99, 0xee, 0xf3, 0xff, 0x9b, 0xa6, 0xfb, 0x7c, 0xfd, 0x74, 0x3f, 0x11,
+ 0xab, 0x02, 0x30, 0x43, 0xfb, 0xa3, 0x38, 0x5f, 0x8b, 0xaa, 0x6c, 0xe1,
+ 0x92, 0x0e, 0x60, 0xb4, 0x12, 0xf6, 0x5f, 0x08, 0x32, 0x93, 0x7c, 0x43,
+ 0xcd, 0xac, 0x67, 0x05, 0x15, 0x89, 0x9e, 0xa1, 0x92, 0x8a, 0x32, 0x1d,
+ 0x33, 0x9f, 0xe3, 0x8a, 0x40, 0x2e, 0xce, 0xf7, 0xbf, 0xb7, 0x07, 0xad,
+ 0x55, 0x69, 0x8f, 0x9a, 0x75, 0x63, 0x7b, 0x11, 0x30, 0x75, 0x83, 0xf2,
+ 0xb3, 0x01, 0xc2, 0x0d, 0xb5, 0x7b, 0xfc, 0xf6, 0xdb, 0x93, 0x8b, 0xb3,
+ 0xb7, 0x6f, 0x8e, 0xdf, 0xba, 0x68, 0x9b, 0x4b, 0xd4, 0xe0, 0x6c, 0xb3,
+ 0xa2, 0xb5, 0xd5, 0x1e, 0x12, 0xf9, 0x17, 0xa6, 0x1c, 0x4e, 0x9b, 0x5d,
+ 0x2c, 0xf4, 0xaf, 0x41, 0xd8, 0x5c, 0xf0, 0x90, 0x1d, 0x3f, 0x16, 0xca,
+ 0x16, 0xec, 0x1b, 0x98, 0x70, 0x8c, 0xdb, 0x40, 0x42, 0x8f, 0xc4, 0x7e,
+ 0x22, 0xa5, 0x05, 0x93, 0x87, 0x71, 0xb2, 0xb0, 0xf5, 0xf3, 0xf7, 0x89,
+ 0x16, 0x2f, 0x0d, 0xa2, 0xd6, 0x2a, 0x83, 0xf0, 0x9b, 0x17, 0x34, 0xf8,
+ 0xa3, 0x19, 0xaf, 0xf6, 0xb7, 0xb7, 0x7f, 0x02, 0x0e, 0xe0, 0xe7, 0x6a,
+ 0xdf, 0x6c, 0x5e, 0xc9, 0xa1, 0x21, 0xc7, 0xd7, 0xc7, 0xb1, 0x3c, 0x3f,
+ 0x58, 0xcc, 0x36, 0x02, 0x7f, 0xd6, 0xf0, 0x3d, 0xe9, 0xd2, 0xdf, 0xff,
+ 0xf0, 0x2b, 0x77, 0x31, 0xac, 0x94, 0x65, 0xf9, 0xd5, 0xbb, 0xa8, 0x68,
+ 0xd7, 0x07, 0xa7, 0xa7, 0xbf, 0x6a, 0x07, 0x50, 0x39, 0xbc, 0xbd, 0xb0,
+ 0xef, 0xec, 0x85, 0x96, 0x24, 0xd9, 0x50, 0x66, 0x2b, 0xda, 0xc9, 0xdb,
+ 0x33, 0x1d, 0x8d, 0x98, 0x9b, 0xfa, 0x56, 0xf1, 0x68, 0xe2, 0xaa, 0x89,
+ 0xa2, 0x60, 0xc5, 0xe7, 0x8d, 0x33, 0x0e, 0x54, 0xe1, 0xab, 0x00, 0xb0,
+ 0xd3, 0xac, 0xbe, 0x40, 0x2d, 0x43, 0x4a, 0x52, 0xe6, 0x6c, 0x8b, 0x02,
+ 0x91, 0x68, 0x46, 0xeb, 0x16, 0xc3, 0x30, 0x83, 0x50, 0x70, 0x48, 0x17,
+ 0x6a, 0x50, 0x73, 0x3a, 0x17, 0x13, 0x9d, 0xa2, 0x39, 0x97, 0x00, 0xc8,
+ 0x67, 0x45, 0x00, 0x43, 0xe1, 0x53, 0xf4, 0xfd, 0xc9, 0x65, 0x74, 0x78,
+ 0x76, 0xe4, 0x8f, 0xe8, 0xa5, 0x04, 0x72, 0xe6, 0x28, 0x1b, 0xb6, 0x9c,
+ 0x13, 0x13, 0x63, 0x75, 0xc1, 0x15, 0x91, 0x30, 0xd4, 0x5f, 0x8e, 0xa9,
+ 0x33, 0x3b, 0x11, 0x2d, 0xa8, 0x14, 0x3d, 0xcc, 0x25, 0x50, 0x6e, 0x12,
+ 0x58, 0x11, 0xaa, 0x20, 0xc1, 0xce, 0x54, 0xcb, 0x71, 0xd3, 0x0c, 0x9e,
+ 0x43, 0x2c, 0x45, 0xac, 0x0e, 0xc4, 0x5d, 0xb8, 0x7a, 0xe1, 0x5c, 0xac,
+ 0x49, 0x24, 0x5c, 0x1d, 0x78, 0x5d, 0x22, 0x40, 0x45, 0x93, 0x62, 0x50,
+ 0x39, 0x0a, 0x00, 0x68, 0xd1, 0xdd, 0x07, 0x46, 0x68, 0xc7, 0x68, 0x2a,
+ 0x71, 0x9f, 0xbb, 0x6a, 0xf7, 0x9f, 0x7b, 0x40, 0x0d, 0x8f, 0x51, 0x05,
+ 0xd3, 0x01, 0x27, 0x4a, 0x4c, 0x2c, 0xe9, 0xc8, 0x40, 0xc6, 0xac, 0x52,
+ 0x90, 0x94, 0xd6, 0x68, 0xec, 0xb8, 0x6b, 0xc2, 0xf5, 0xb3, 0xa7, 0xd4,
+ 0x2e, 0x48, 0xf2, 0x2c, 0x4f, 0x89, 0x7b, 0x29, 0xfd, 0x39, 0x38, 0xd2,
+ 0x4f, 0x74, 0x30, 0x17, 0xa7, 0x34, 0xf3, 0xa9, 0xd8, 0xc1, 0x35, 0xe6,
+ 0x1b, 0x55, 0xa2, 0xe0, 0x3d, 0x61, 0x7d, 0x57, 0x8b, 0xfe, 0xfa, 0x37,
+ 0x9f, 0x99, 0xb9, 0x4d, 0x49, 0xc1, 0x23, 0x79, 0x2a, 0x15, 0x88, 0x6b,
+ 0x57, 0x95, 0x49, 0x25, 0x54, 0x09, 0x16, 0x1b, 0xc3, 0x5d, 0x26, 0xb6,
+ 0xed, 0xf6, 0x2a, 0x1d, 0x81, 0xdc, 0xf8, 0xbc, 0xd6, 0x8f, 0x75, 0xc3,
+ 0x4d, 0x69, 0x21, 0x58, 0x74, 0x51, 0x0f, 0xb8, 0xe2, 0xe6, 0x9b, 0xad,
+ 0x7d, 0x5a, 0x5f, 0x14, 0x0b, 0x6c, 0x63, 0x38, 0x86, 0x2c, 0x74, 0xa2,
+ 0x7f, 0xe6, 0x98, 0x45, 0x74, 0x9f, 0x70, 0x4e, 0x94, 0x9e, 0x49, 0xd4,
+ 0xf5, 0xb2, 0xd9, 0x59, 0xfc, 0x84, 0xa4, 0x4a, 0x02, 0xe8, 0x4a, 0xe3,
+ 0x2d, 0xc7, 0x3a, 0xde, 0x86, 0x7e, 0x98, 0x87, 0x1c, 0xf5, 0x85, 0xef,
+ 0x24, 0x8a, 0xe1, 0xa2, 0x62, 0x53, 0xe7, 0x3c, 0x75, 0x9b, 0x20, 0xed,
+ 0xcb, 0x47, 0xec, 0xf9, 0x23, 0xce, 0x9c, 0xb9, 0xbf, 0xf5, 0x8d, 0x06,
+ 0x4e, 0x51, 0x2d, 0x0c, 0x8a, 0x57, 0x41, 0x2a, 0x52, 0x86, 0x75, 0x2c,
+ 0xad, 0x7c, 0x8b, 0x2a, 0x2e, 0x00, 0x6a, 0x67, 0x70, 0xee, 0xac, 0x11,
+ 0x73, 0x9a, 0x5d, 0x95, 0xae, 0x4a, 0x16, 0xab, 0xd4, 0x93, 0x00, 0xe1,
+ 0x12, 0xa7, 0xda, 0x37, 0x8a, 0x33, 0x64, 0xda, 0x39, 0x1c, 0x48, 0x51,
+ 0xc3, 0x3d, 0x17, 0x54, 0x3c, 0xf6, 0x67, 0x62, 0xb7, 0xb6, 0xd8, 0xe7,
+ 0x07, 0xc3, 0xa1, 0x2d, 0x35, 0x50, 0xa4, 0x6c, 0x3d, 0x65, 0x05, 0xd5,
+ 0xb3, 0x89, 0x8c, 0x69, 0x4d, 0x29, 0x6c, 0x31, 0x64, 0x68, 0x23, 0xb5,
+ 0xe8, 0x88, 0xdd, 0x27, 0x7e, 0xcd, 0x5d, 0x67, 0xdf, 0x4a, 0x6b, 0xbd,
+ 0x8f, 0xec, 0xac, 0xb5, 0xaf, 0x6f, 0x5b, 0xfa, 0x7a, 0x5a, 0x9b, 0xd7,
+ 0xde, 0xde, 0xa7, 0x9a, 0x42, 0x40, 0x6b, 0x7d, 0x58, 0xa1, 0x14, 0x25,
+ 0x0e, 0xb5, 0x35, 0xd0, 0x83, 0x7d, 0x43, 0x8b, 0x48, 0x5a, 0x2b, 0xc6,
+ 0x63, 0x30, 0x41, 0x57, 0xcf, 0xfc, 0xb4, 0x48, 0xaa, 0xe0, 0xf6, 0xd8,
+ 0xec, 0x21, 0xc7, 0xa4, 0x71, 0x7a, 0x5c, 0x39, 0xa0, 0x13, 0x1e, 0x19,
+ 0xf1, 0xf1, 0x35, 0xf1, 0x26, 0x36, 0x8c, 0xa0, 0x9f, 0x4f, 0x5d, 0x3f,
+ 0x6e, 0xe4, 0xac, 0x87, 0x4a, 0x5e, 0xfd, 0x20, 0xe4, 0x08, 0x4a, 0x23,
+ 0x41, 0x44, 0x9a, 0x3a, 0x0a, 0x5a, 0xca, 0x2a, 0xc9, 0xdb, 0xbe, 0x17,
+ 0x39, 0x7e, 0xe7, 0x5a, 0x0c, 0x52, 0x40, 0x55, 0x50, 0x22, 0x2f, 0xae,
+ 0x20, 0x94, 0xc0, 0x62, 0xc3, 0xc7, 0xdd, 0xfa, 0xc8, 0xc3, 0xd3, 0xbe,
+ 0xfb, 0x22, 0x58, 0x13, 0x1b, 0x96, 0xd9, 0x1a, 0xb7, 0xed, 0xf8, 0x38,
+ 0x16, 0x22, 0xd2, 0x1d, 0xff, 0x7d, 0x71, 0x7c, 0x79, 0xc1, 0x31, 0xad,
+ 0x80, 0x59, 0xa9, 0x6b, 0xca, 0x74, 0xa6, 0xb6, 0x9c, 0x59, 0x5e, 0x0a,
+ 0x75, 0x04, 0x5c, 0xd7, 0x53, 0xb2, 0x14, 0xe4, 0xc6, 0x3d, 0xc3, 0x99,
+ 0xd7, 0x95, 0xfa, 0xdc, 0xbe, 0x4a, 0x90, 0xdc, 0x43, 0x3e, 0x42, 0x53,
+ 0x4f, 0x86, 0x5b, 0x7f, 0x1f, 0xe7, 0x03, 0x34, 0x45, 0x61, 0x6b, 0x1a,
+ 0x0a, 0x3f, 0x50, 0xd7, 0xbb, 0x8b, 0x4a, 0x91, 0x94, 0xa7, 0xd8, 0x3c,
+ 0xc4, 0x1a, 0x50, 0xde, 0x30, 0x12, 0xb9, 0xce, 0xe9, 0x9a, 0x94, 0xc4,
+ 0x55, 0xbb, 0x0e, 0x9d, 0x37, 0x50, 0xba, 0x94, 0x4f, 0x11, 0xa6, 0x0e,
+ 0xb4, 0xad, 0xe8, 0xe9, 0xce, 0x4e, 0xb3, 0xb9, 0x78, 0x94, 0xdd, 0x99,
+ 0x6b, 0x52, 0x93, 0x3e, 0xa4, 0xb4, 0x0f, 0xf6, 0x0b, 0x97, 0x29, 0x74,
+ 0x8d, 0xfe, 0x15, 0xc9, 0xcc, 0xbc, 0x60, 0x66, 0x46, 0x08, 0x96, 0x4d,
+ 0x0e, 0xe5, 0x77, 0x48, 0x42, 0xd1, 0x25, 0xab, 0x1e, 0x45, 0xc9, 0x4f,
+ 0x31, 0x2c, 0xc1, 0xd8, 0xea, 0x7a, 0x22, 0x91, 0x6d, 0x45, 0xb3, 0x9f,
+ 0xb5, 0xcc, 0x53, 0x41, 0x72, 0x82, 0x6e, 0x9e, 0xb5, 0x10, 0x44, 0x34,
+ 0xbc, 0x3c, 0xbb, 0x88, 0x82, 0xaa, 0xdc, 0x55, 0xae, 0x8b, 0x78, 0x06,
+ 0x7e, 0xc2, 0x79, 0x67, 0x7b, 0x2d, 0xae, 0x03, 0x97, 0x24, 0x29, 0x41,
+ 0x47, 0x9c, 0x6d, 0xef, 0x7b, 0x7d, 0xee, 0x1d, 0x5d, 0x3a, 0xb7, 0x6f,
+ 0x49, 0x03, 0xe0, 0xac, 0x41, 0x83, 0x3b, 0xa3, 0xfb, 0x91, 0x04, 0xef,
+ 0x59, 0x60, 0x7f, 0xd9, 0x93, 0x73, 0x76, 0xb6, 0x04, 0xad, 0x4b, 0xbe,
+ 0x23, 0x93, 0x91, 0x66, 0x3e, 0xb2, 0xd9, 0x4a, 0x0d, 0x53, 0xce, 0x18,
+ 0x58, 0x27, 0x45, 0x39, 0x43, 0x67, 0x1e, 0xd0, 0x4e, 0x2c, 0xff, 0x83,
+ 0x9a, 0xd7, 0x0f, 0x9f, 0x23, 0x93, 0x4d, 0xdd, 0x28, 0x4a, 0x42, 0x5a,
+ 0xbb, 0xa3, 0xbe, 0xd9, 0x63, 0x12, 0x05, 0x26, 0x5a, 0xc7, 0x5a, 0xc2,
+ 0xad, 0x9c, 0x6c, 0xe4, 0xc5, 0x8a, 0x1d, 0xbf, 0xce, 0xe7, 0x67, 0x17,
+ 0x97, 0x56, 0xd0, 0x46, 0xef, 0x4d, 0x7c, 0x54, 0x3b, 0x41, 0xec, 0xac,
+ 0x87, 0x04, 0xe8, 0x23, 0x55, 0x1a, 0x52, 0x6d, 0x50, 0x2c, 0x51, 0x5a,
+ 0xd5, 0x36, 0xb8, 0x10, 0x46, 0xbe, 0x32, 0xcf, 0x97, 0x2b, 0x97, 0x03,
+ 0x96, 0xa3, 0xa9, 0x3c, 0xcc, 0x9f, 0xdb, 0xfd, 0x98, 0x3e, 0x09, 0xf4,
+ 0xc9, 0x6e, 0x0b, 0x75, 0xb0, 0x00, 0x7e, 0x71, 0x3c, 0xbc, 0x94, 0x55,
+ 0xe3, 0xdf, 0x1a, 0x23, 0x97, 0x54, 0x48, 0xfd, 0xb0, 0xd5, 0xb1, 0x04,
+ 0xea, 0xe0, 0x10, 0x99, 0x99, 0xd6, 0x5a, 0x74, 0xde, 0xa0, 0x60, 0xcd,
+ 0x9e, 0x04, 0x21, 0x7d, 0x60, 0x9c, 0x4a, 0x2b, 0x97, 0x56, 0x7b, 0x33,
+ 0xea, 0x68, 0x27, 0x1d, 0xba, 0x72, 0xe5, 0x50, 0x64, 0xf9, 0x6d, 0xd0,
+ 0xc2, 0xd3, 0x80, 0x59, 0x30, 0x73, 0xd7, 0x06, 0x4e, 0xcc, 0x32, 0xce,
+ 0x1f, 0x3a, 0xe7, 0xf3, 0x75, 0x32, 0x37, 0xc2, 0x90, 0xe7, 0x7c, 0x3b,
+ 0xcf, 0x5c, 0x5e, 0xb4, 0x89, 0x47, 0xc1, 0x50, 0xf8, 0x63, 0x8b, 0x86,
+ 0x87, 0xa3, 0xb1, 0x46, 0x76, 0x4f, 0x9e, 0xbb, 0x55, 0x64, 0xd1, 0xd9,
+ 0xb9, 0x76, 0x64, 0xfa, 0xc1, 0x5d, 0xc4, 0xae, 0xb1, 0x74, 0xbe, 0x4c,
+ 0xb4, 0x68, 0x47, 0x9c, 0x4f, 0x53, 0x84, 0xb2, 0x8a, 0x6f, 0xa6, 0x61,
+ 0x88, 0xd6, 0x08, 0x43, 0xdf, 0x8f, 0x5e, 0x44, 0xa4, 0xc6, 0xfb, 0xdd,
+ 0x92, 0x64, 0x43, 0x9c, 0x64, 0x2f, 0xe3, 0xd1, 0xc1, 0x9d, 0xbb, 0xdb,
+ 0x62, 0x10, 0x9d, 0x33, 0x96, 0x2b, 0x4c, 0xec, 0xc5, 0x7f, 0xf8, 0xd6,
+ 0xe4, 0xb0, 0x30, 0xc6, 0x38, 0x5f, 0x9f, 0x10, 0x4e, 0x53, 0x2e, 0x44,
+ 0x8f, 0x4f, 0xf8, 0xd7, 0x00, 0x19, 0xb2, 0x31, 0xe5, 0x17, 0xfe, 0xe5,
+ 0x82, 0x26, 0x42, 0xba, 0x49, 0xfd, 0x91, 0xa7, 0x4a, 0x5b, 0xa4, 0xb8,
+ 0xa0, 0x09, 0xee, 0x00, 0xec, 0x99, 0xcf, 0x34, 0x6f, 0x49, 0xca, 0xf1,
+ 0x8d, 0x68, 0xe1, 0xca, 0x9e, 0x31, 0x31, 0x56, 0x9e, 0xf3, 0x4d, 0xc9,
+ 0x9d, 0x70, 0x20, 0xeb, 0x04, 0xa0, 0x0b, 0x3a, 0x37, 0x5c, 0x2e, 0x89,
+ 0xda, 0x9a, 0x33, 0xc3, 0x9d, 0x9a, 0xef, 0xdc, 0x67, 0x7b, 0x31, 0xcf,
+ 0x1c, 0xd9, 0xe1, 0xe1, 0x99, 0x34, 0xc1, 0xab, 0x2b, 0xde, 0xc0, 0xa7,
+ 0x42, 0x8d, 0x8e, 0x74, 0xdc, 0x35, 0x56, 0x19, 0x1d, 0x77, 0xec, 0x32,
+ 0x48, 0xb1, 0xdd, 0xac, 0x5a, 0xa2, 0x14, 0x4c, 0xd0, 0xd4, 0x33, 0xdf,
+ 0xd4, 0x15, 0x67, 0xfe, 0xb9, 0xb6, 0x3c, 0x0f, 0xf2, 0x50, 0x6c, 0xa9,
+ 0x7b, 0x4c, 0xf5, 0x04, 0xb9, 0xca, 0x1a, 0x9a, 0x42, 0xf5, 0xfe, 0x78,
+ 0x2a, 0xc4, 0x70, 0x99, 0x65, 0x52, 0x0c, 0xd0, 0xc5, 0xfa, 0x0d, 0x24,
+ 0x8a, 0xb0, 0x69, 0x76, 0x2f, 0x7a, 0xaa, 0x5e, 0x69, 0xc5, 0x32, 0xf6,
+ 0x1a, 0x34, 0xea, 0x4d, 0x2f, 0x67, 0x8d, 0x72, 0x39, 0x4f, 0x3f, 0x53,
+ 0xf5, 0xed, 0x76, 0x4e, 0x24, 0x19, 0x5d, 0x1e, 0x9f, 0xbe, 0x3d, 0xbe,
+ 0x74, 0x80, 0x1d, 0x36, 0xa1, 0xe0, 0xf9, 0x17, 0x6a, 0xd8, 0x52, 0xed,
+ 0xca, 0x70, 0x89, 0xeb, 0xee, 0xd7, 0x67, 0xbb, 0xce, 0xb6, 0xc3, 0x91,
+ 0x73, 0xdd, 0x42, 0xce, 0x5f, 0x10, 0x3f, 0x87, 0x52, 0xdd, 0x5f, 0x47,
+ 0x6f, 0x8e, 0x9e, 0x71, 0x30, 0xff, 0x75, 0x92, 0x33, 0x32, 0xba, 0x57,
+ 0x76, 0xb2, 0x80, 0x13, 0x3c, 0xdb, 0x0b, 0xf0, 0x24, 0xe4, 0x32, 0x4b,
+ 0xf5, 0x7c, 0xb0, 0x18, 0x4b, 0x2b, 0xc4, 0xf9, 0xa7, 0xa4, 0xa8, 0x8a,
+ 0x35, 0x10, 0x9a, 0xb5, 0x58, 0x19, 0x15, 0x3b, 0x44, 0x64, 0x83, 0x7a,
+ 0xcd, 0xf0, 0x2a, 0x9b, 0x78, 0xf6, 0xc4, 0xb3, 0x89, 0x7c, 0xb5, 0x60,
+ 0xd4, 0x33, 0x29, 0x2a, 0xde, 0x42, 0xb3, 0xcf, 0x84, 0x35, 0x1d, 0xca,
+ 0xc9, 0x62, 0x79, 0xb1, 0xf9, 0x1a, 0x87, 0x24, 0x89, 0xb9, 0x2d, 0x78,
+ 0xef, 0x59, 0xa8, 0xaf, 0x15, 0x5a, 0x4d, 0x98, 0xd6, 0x0f, 0x25, 0x03,
+ 0x50, 0x01, 0xdd, 0x3f, 0xfb, 0xdc, 0x3d, 0xcb, 0x35, 0x55, 0xd3, 0xb9,
+ 0x82, 0xd1, 0x3c, 0xf2, 0x86, 0x4a, 0x99, 0x72, 0xf9, 0xfa, 0x18, 0x19,
+ 0x91, 0x2d, 0x82, 0xb5, 0x0f, 0x5e, 0x79, 0x51, 0x55, 0x47, 0x81, 0x73,
+ 0xea, 0x6b, 0x5c, 0xf0, 0xa4, 0xd2, 0xc5, 0x4d, 0x48, 0xfe, 0xcf, 0xe5,
+ 0x2e, 0x3c, 0xe7, 0x70, 0xc8, 0xca, 0x7e, 0x1a, 0x9b, 0xa9, 0xa0, 0x00,
+ 0xd8, 0x69, 0x12, 0xea, 0x3a, 0x3c, 0xb0, 0x37, 0xea, 0xa4, 0xc9, 0x8f,
+ 0x06, 0x97, 0xc7, 0xf3, 0x5d, 0xa5, 0x4a, 0x9a, 0x72, 0x76, 0x3d, 0x27,
+ 0x1d, 0x7f, 0xd2, 0x2c, 0x8d, 0x1b, 0x3c, 0xbe, 0xa7, 0x47, 0x52, 0xaa,
+ 0x4a, 0x83, 0xed, 0x30, 0xfe, 0xb0, 0x7f, 0xe0, 0x89, 0x52, 0xad, 0xb8,
+ 0xd2, 0x20, 0x66, 0x03, 0xf8, 0x99, 0x6d, 0x88, 0x49, 0x25, 0xb4, 0xfe,
+ 0xf9, 0x53, 0x95, 0x6e, 0x4c, 0x0a, 0x65, 0xce, 0xcf, 0x0b, 0x31, 0x65,
+ 0xb0, 0x85, 0x06, 0x23, 0x7c, 0xae, 0x97, 0x8b, 0x6e, 0x65, 0x69, 0xe5,
+ 0xeb, 0x95, 0x07, 0x16, 0x88, 0xab, 0xbd, 0x4f, 0xe7, 0x1a, 0xff, 0xdd,
+ 0x78, 0xfd, 0xf9, 0x1a, 0xab, 0x86, 0xfa, 0x22, 0x8e, 0x41, 0x4b, 0xc1,
+ 0xf3, 0x9f, 0xba, 0x93, 0xe0, 0x40, 0xba, 0x7a, 0x2e, 0xce, 0x0b, 0x5e,
+ 0x6d, 0x83, 0x52, 0xb4, 0x83, 0x04, 0xbd, 0x7a, 0xe1, 0xab, 0x62, 0xb4,
+ 0xb9, 0xf2, 0x5c, 0xf7, 0xa4, 0x93, 0x47, 0x69, 0x70, 0x8c, 0x9f, 0x0b,
+ 0x49, 0xbd, 0x86, 0x27, 0xd9, 0xce, 0x01, 0x87, 0xe3, 0x86, 0x28, 0xd7,
+ 0xfe, 0xe9, 0x17, 0x4a, 0x1b, 0x76, 0x23, 0x99, 0x20, 0xb8, 0xf6, 0x8d,
+ 0x4f, 0x77, 0x42, 0xb1, 0x70, 0xc2, 0xb6, 0x34, 0x49, 0xa7, 0x5e, 0xfb,
+ 0x82, 0x50, 0xc6, 0x09, 0x31, 0xea, 0x6b, 0x22, 0x6a, 0x3c, 0xe3, 0x61,
+ 0x04, 0xfc, 0x63, 0x7b, 0x55, 0xb6, 0x16, 0x0a, 0x29, 0xd1, 0xc9, 0x51,
+ 0xf0, 0xe0, 0x13, 0x3f, 0xc1, 0x78, 0xca, 0xf7, 0xed, 0x4a, 0x34, 0xfd,
+ 0x42, 0x81, 0xc6, 0x83, 0x47, 0x9f, 0x6a, 0x14, 0x26, 0xc7, 0xdf, 0xde,
+ 0xc8, 0xfa, 0x37, 0x9e, 0x11, 0x72, 0x38, 0x74, 0xc5, 0xc7, 0x25, 0x9c,
+ 0xb2, 0x68, 0xbb, 0x66, 0x3f, 0x7d, 0xfe, 0xc8, 0xb3, 0x7a, 0x2d, 0x15,
+ 0xee, 0x32, 0x0d, 0xde, 0xfb, 0xb4, 0x79, 0xcc, 0x4d, 0xf0, 0xb6, 0x68,
+ 0x65, 0x3d, 0x69, 0xd1, 0x26, 0x07, 0x5f, 0xff, 0x87, 0x99, 0x56, 0x72,
+ 0x8e, 0xc2, 0x2c, 0xfe, 0x23, 0x1c, 0xef, 0x67, 0x61, 0xc8, 0xb3, 0xd8,
+ 0x55, 0x5c, 0x4d, 0x86, 0x10, 0x1a, 0xd7, 0x57, 0x37, 0xc1, 0xea, 0x04,
+ 0x2d, 0xc8, 0x9e, 0xd3, 0x4d, 0x1d, 0xd4, 0x4a, 0x57, 0x4d, 0x4b, 0x53,
+ 0xd4, 0x2d, 0xe2, 0x49, 0x47, 0xf7, 0x35, 0x6d, 0x2a, 0xa8, 0x23, 0xb0,
+ 0x4e, 0xed, 0xd4, 0x8e, 0x41, 0x71, 0xb3, 0x14, 0xd5, 0xd6, 0xcd, 0x48,
+ 0x45, 0xb7, 0xea, 0x6b, 0x7b, 0x9e, 0x7b, 0xe9, 0xc5, 0x2a, 0x79, 0x18,
+ 0x87, 0x0c, 0xff, 0x2b, 0xfa, 0x6f, 0x04, 0x52, 0xe4, 0xab, 0x98, 0x06,
+ 0x84, 0x5a, 0x31, 0x06, 0x7a, 0xb0, 0x19, 0xb7, 0x27, 0x66, 0x69, 0x1c,
+ 0x75, 0xd0, 0x8d, 0x0a, 0x0f, 0xec, 0xc0, 0xa5, 0x5d, 0xba, 0x49, 0xc6,
+ 0xb7, 0x76, 0x64, 0x5c, 0x1b, 0x2d, 0x6f, 0x3d, 0x75, 0x4b, 0xcb, 0xd4,
+ 0x77, 0x4e, 0x4a, 0x78, 0x4d, 0xd4, 0xf6, 0x8f, 0x0a, 0xd5, 0x5c, 0x5c,
+ 0x0e, 0xcf, 0xf7, 0x79, 0xbc, 0x12, 0x07, 0x42, 0x07, 0xe2, 0x70, 0x98,
+ 0xfc, 0xcd, 0x0a, 0xa1, 0xfb, 0xa7, 0x9f, 0xaf, 0x79, 0x7a, 0xa8, 0x91,
+ 0x16, 0x27, 0x13, 0xe6, 0xbe, 0xb4, 0x0f, 0xe1, 0x4b, 0x9f, 0x6a, 0x3e,
+ 0x17, 0x3c, 0x22, 0x8c, 0xf7, 0x07, 0xeb, 0x0c, 0x8f, 0xcc, 0x85, 0xd6,
+ 0xf9, 0x87, 0x3f, 0xf3, 0x46, 0x91, 0x9b, 0xe5, 0xfc, 0xd6, 0x49, 0x64,
+ 0x0a, 0x7e, 0x64, 0x1b, 0xec, 0x5e, 0xf8, 0xfe, 0x7b, 0xe1, 0xaf, 0x0e,
+ 0xde, 0x46, 0x2d, 0xc5, 0x0e, 0xbc, 0x9d, 0xf8, 0x91, 0x40, 0xa6, 0x33,
+ 0x69, 0xa3, 0x78, 0x7d, 0x9e, 0x4c, 0x13, 0x06, 0x49, 0x13, 0x29, 0x1c,
+ 0x44, 0xd5, 0x16, 0xe8, 0xc9, 0xd1, 0x2f, 0x52, 0x76, 0x28, 0x51, 0x20,
+ 0xbd, 0x39, 0xfb, 0xea, 0xd5, 0x18, 0x43, 0xab, 0x7d, 0xf0, 0xee, 0xf2,
+ 0xeb, 0xb3, 0x8b, 0x61, 0xb4, 0xcd, 0x39, 0xe1, 0x97, 0x17, 0x27, 0x5f,
+ 0xbe, 0x23, 0xe5, 0xd6, 0x59, 0xd9, 0x8f, 0x62, 0x52, 0x7a, 0xa7, 0x1c,
+ 0x96, 0x92, 0xcc, 0x69, 0x11, 0xaf, 0x0d, 0x64, 0x1d, 0x28, 0x2e, 0x7c,
+ 0x4f, 0x65, 0xb9, 0xaf, 0x48, 0x22, 0x85, 0xef, 0xcd, 0x8b, 0x80, 0x50,
+ 0xb7, 0x94, 0xbe, 0xcb, 0xbc, 0xe6, 0x96, 0x56, 0xf3, 0xfc, 0x23, 0xf3,
+ 0x3d, 0x44, 0x97, 0x5f, 0x1f, 0xbc, 0xfd, 0x66, 0x68, 0x48, 0x7e, 0xdf,
+ 0x7d, 0xf7, 0x5d, 0xe8, 0x64, 0xda, 0xdf, 0xde, 0x06, 0x76, 0xdb, 0x4d,
+ 0xfc, 0xf0, 0x30, 0x28, 0x92, 0x8d, 0x0d, 0x5a, 0xd8, 0x0d, 0x9f, 0x37,
+ 0xa1, 0xf0, 0xce, 0xc5, 0x92, 0x6e, 0x75, 0xfa, 0x7a, 0x7b, 0xb1, 0x1c,
+ 0x31, 0x9c, 0xf4, 0xf6, 0xb2, 0xd4, 0xe2, 0x19, 0x78, 0x7b, 0x7b, 0x63,
+ 0x63, 0x78, 0x7c, 0x1c, 0x1d, 0x9c, 0x0e, 0xcf, 0x82, 0x77, 0x37, 0x77,
+ 0xb7, 0x48, 0xea, 0xb9, 0x4e, 0x4a, 0xfa, 0x65, 0x63, 0xe3, 0xf4, 0xe0,
+ 0x92, 0x15, 0xba, 0x6f, 0x8f, 0x2f, 0x86, 0x27, 0x67, 0x6f, 0x79, 0x77,
+ 0x18, 0xf4, 0x22, 0x9e, 0xde, 0x33, 0xce, 0xd8, 0x55, 0x8a, 0x9c, 0xd4,
+ 0x7b, 0x2b, 0x5b, 0xc1, 0x40, 0x2e, 0x24, 0x96, 0x89, 0x9c, 0x2a, 0x4e,
+ 0x34, 0xab, 0x69, 0x24, 0xf1, 0x0f, 0x25, 0xab, 0x55, 0xe6, 0x69, 0xdd,
+ 0x88, 0xbc, 0x51, 0x47, 0x60, 0xed, 0x93, 0x91, 0x84, 0x07, 0xf5, 0x04,
+ 0x6d, 0x01, 0x81, 0xf9, 0x01, 0x1c, 0x44, 0xeb, 0xc4, 0x87, 0x27, 0x6f,
+ 0xce, 0x49, 0xbf, 0x79, 0x37, 0x3c, 0xf8, 0xea, 0x98, 0x1f, 0xfd, 0x2a,
+ 0x29, 0xfd, 0x76, 0x48, 0x79, 0x0d, 0xee, 0xe4, 0x6d, 0x52, 0x16, 0xe3,
+ 0x78, 0xc1, 0x31, 0xf6, 0xd4, 0x4d, 0x5f, 0xee, 0x80, 0xa0, 0x6d, 0x91,
+ 0x74, 0x3d, 0xf0, 0xf6, 0x5c, 0x9f, 0x07, 0x2a, 0x76, 0xd8, 0xee, 0xc5,
+ 0xf1, 0xc1, 0xd1, 0x9b, 0x63, 0x0b, 0x1e, 0x93, 0x3b, 0x93, 0x1a, 0xbd,
+ 0xc9, 0xb8, 0x52, 0x8f, 0x33, 0xf3, 0xf2, 0xbd, 0xcc, 0x8b, 0x4f, 0xdf,
+ 0x70, 0xf9, 0x89, 0xf6, 0xee, 0xfc, 0x46, 0xe1, 0xd9, 0xc1, 0x55, 0xba,
+ 0x2d, 0xad, 0x5b, 0x7f, 0xb1, 0x5b, 0x12, 0x8b, 0xc2, 0x52, 0x59, 0x55,
+ 0x54, 0x76, 0xa8, 0xfa, 0x9f, 0xed, 0xec, 0xec, 0x3c, 0x32, 0x0f, 0x18,
+ 0x55, 0xf5, 0xc6, 0xa3, 0xa9, 0xec, 0xf3, 0xe3, 0xdb, 0xbe, 0x7d, 0xa3,
+ 0xcc, 0xd0, 0x44, 0xcd, 0x7f, 0xce, 0xc5, 0xc8, 0x90, 0x96, 0x49, 0xfb,
+ 0xa0, 0xc7, 0x59, 0xe6, 0xf6, 0xa0, 0xb2, 0x3c, 0x13, 0xc6, 0xf4, 0x49,
+ 0xcb, 0x00, 0x13, 0xce, 0x86, 0x3e, 0x49, 0xc1, 0x6a, 0xe3, 0x7c, 0x55,
+ 0x6f, 0x92, 0xbf, 0xa1, 0x36, 0xf9, 0xc7, 0x20, 0xcb, 0xaf, 0xb7, 0x67,
+ 0xfb, 0x10, 0x28, 0xe8, 0xa1, 0xd7, 0x09, 0x6a, 0x1c, 0xdd, 0x67, 0x2e,
+ 0xcc, 0xaa, 0xe0, 0xa5, 0xe5, 0x88, 0xce, 0x8f, 0x18, 0xd7, 0x2f, 0x58,
+ 0x07, 0x6c, 0x27, 0xd7, 0xd2, 0x95, 0x99, 0x5b, 0xe8, 0x49, 0x4b, 0x27,
+ 0x05, 0x6f, 0x19, 0x9b, 0xd4, 0x06, 0xc4, 0x42, 0xa8, 0x17, 0xfa, 0x5c,
+ 0x88, 0x84, 0x7e, 0xcd, 0x89, 0x68, 0x06, 0xe5, 0x03, 0xb8, 0x5e, 0x96,
+ 0x3b, 0x2c, 0x4c, 0x40, 0x74, 0x11, 0xcb, 0xca, 0x33, 0xd2, 0x47, 0x62,
+ 0x49, 0x35, 0x1a, 0x22, 0x84, 0x3f, 0x88, 0xbc, 0x43, 0x58, 0x3f, 0x37,
+ 0x5c, 0xef, 0xb3, 0xdf, 0x07, 0x05, 0x15, 0x8e, 0x5e, 0x3e, 0xa2, 0xf3,
+ 0x60, 0x52, 0xb2, 0xfa, 0x73, 0xbd, 0x24, 0x03, 0xea, 0x19, 0xd2, 0x28,
+ 0x1a, 0x7d, 0x01, 0x50, 0x2a, 0x47, 0x80, 0x5f, 0x21, 0xdd, 0xa1, 0x40,
+ 0xcf, 0x20, 0x91, 0xa2, 0x5c, 0xe8, 0x8b, 0xf6, 0x64, 0x1b, 0x91, 0x47,
+ 0x1f, 0xdd, 0xd3, 0xe1, 0xb9, 0xab, 0xf7, 0x43, 0x2b, 0x70, 0xc7, 0x4b,
+ 0x70, 0x9b, 0x60, 0xf6, 0xa1, 0x5c, 0xff, 0xc8, 0x60, 0xf6, 0x69, 0x15,
+ 0xf8, 0x8d, 0xff, 0xde, 0x1e, 0x14, 0xc5, 0xcd, 0x76, 0x3a, 0x79, 0x3f,
+ 0x29, 0x62, 0xfa, 0x8c, 0xf8, 0x5a, 0xe3, 0xe3, 0x01, 0x7d, 0x18, 0xfd,
+ 0xa5, 0xc2, 0xf7, 0x8b, 0x71, 0xfb, 0x4c, 0xfe, 0x7b, 0x9b, 0x81, 0xce,
+ 0x00, 0xc6, 0x1c, 0x2c, 0x5c, 0x0b, 0xf7, 0xa0, 0x59, 0x09, 0xa6, 0x1e,
+ 0x1d, 0xc7, 0x76, 0xca, 0xe8, 0x5f, 0x47, 0x1d, 0x25, 0xb7, 0x1f, 0xf7,
+ 0x76, 0x76, 0x76, 0xf7, 0x77, 0x3f, 0x7b, 0xb1, 0xb3, 0xbf, 0xbb, 0xbb,
+ 0xbb, 0xb7, 0xbf, 0xbb, 0xbf, 0xbf, 0xb7, 0xf3, 0xd3, 0x76, 0x67, 0x63,
+ 0xe3, 0xe8, 0xec, 0xbb, 0xb7, 0xa7, 0x67, 0x07, 0x47, 0xd1, 0xe5, 0x19,
+ 0xe9, 0xf6, 0x6c, 0x97, 0x69, 0x39, 0xe9, 0x40, 0xb8, 0x2a, 0x33, 0xb9,
+ 0xd9, 0xe2, 0xa0, 0x1c, 0x49, 0xa3, 0xcb, 0x0c, 0x0a, 0x00, 0xbf, 0x34,
+ 0xb8, 0x29, 0x67, 0x1f, 0x66, 0x5f, 0x1f, 0xd3, 0x49, 0x4f, 0x22, 0xe0,
+ 0xbc, 0x8e, 0x87, 0xad, 0x35, 0x22, 0x55, 0xd8, 0x56, 0x57, 0x60, 0x1d,
+ 0x0e, 0x45, 0x17, 0x01, 0xb9, 0x29, 0x6e, 0x78, 0x1f, 0x23, 0x2a, 0x85,
+ 0x58, 0x8a, 0x6a, 0xf0, 0x86, 0x2b, 0x8c, 0xa0, 0x3e, 0x5a, 0x29, 0x42,
+ 0x4f, 0xd2, 0xcb, 0x56, 0x63, 0x82, 0x67, 0x6b, 0xa7, 0x44, 0x17, 0x4f,
+ 0xf2, 0x80, 0x59, 0x57, 0xd9, 0x84, 0xa0, 0xb6, 0xf9, 0xd9, 0x01, 0xad,
+ 0xc9, 0xb4, 0xd6, 0x34, 0xb7, 0x21, 0xc3, 0x55, 0xdf, 0xd2, 0x1d, 0xf7,
+ 0x63, 0xdc, 0xc3, 0x77, 0xc1, 0xdf, 0x84, 0x97, 0xce, 0xb6, 0x33, 0xb5,
+ 0xc9, 0x00, 0xde, 0x0d, 0x4f, 0xde, 0x7e, 0x05, 0x5f, 0xda, 0x77, 0x67,
+ 0x17, 0x47, 0x43, 0x6a, 0x96, 0x6f, 0xe3, 0x0d, 0x58, 0x5b, 0xf8, 0xd0,
+ 0xea, 0xa8, 0xe4, 0x08, 0x70, 0xd7, 0x7f, 0x82, 0x76, 0x35, 0xe9, 0xb9,
+ 0x34, 0x0b, 0x0c, 0x33, 0x90, 0x8c, 0x39, 0x7d, 0xa2, 0x9d, 0xc1, 0xe1,
+ 0x34, 0xc8, 0xeb, 0x5f, 0xcc, 0x62, 0x06, 0xbe, 0x4d, 0x06, 0x82, 0x20,
+ 0x87, 0xa8, 0x89, 0x6d, 0x86, 0x90, 0xd9, 0x66, 0x09, 0x7d, 0xbb, 0xcc,
+ 0xc0, 0x2a, 0xd0, 0x4a, 0x96, 0x3b, 0xb0, 0xe0, 0xca, 0x8a, 0xf0, 0x19,
+ 0xbb, 0x9a, 0xc6, 0xd7, 0xe8, 0xb0, 0x79, 0xfc, 0x82, 0xce, 0xb4, 0xfb,
+ 0x8f, 0xed, 0x12, 0xf5, 0x09, 0xb9, 0xbd, 0x13, 0x10, 0x00, 0x32, 0xfb,
+ 0x91, 0x13, 0xa2, 0x4e, 0x00, 0x91, 0x90, 0x50, 0x4f, 0x87, 0xc3, 0x09,
+ 0xb8, 0xe8, 0x47, 0x1d, 0xd5, 0x58, 0x8b, 0x71, 0x6e, 0x88, 0x01, 0xa5,
+ 0x1f, 0xa4, 0x80, 0x89, 0x16, 0x83, 0xaa, 0x79, 0xde, 0x58, 0x50, 0x20,
+ 0xf6, 0x1f, 0x7d, 0x22, 0xa9, 0x0d, 0xba, 0xb1, 0x2c, 0x39, 0x0f, 0x86,
+ 0xc6, 0x1e, 0x49, 0xf4, 0x0f, 0xe7, 0x39, 0xa9, 0xc8, 0xd6, 0x61, 0x48,
+ 0xe9, 0x74, 0x9c, 0x96, 0x1d, 0x4b, 0xa8, 0xf2, 0x20, 0x63, 0xde, 0xd9,
+ 0x57, 0x94, 0x34, 0x94, 0x98, 0x6e, 0x0f, 0xad, 0xb0, 0xa2, 0x09, 0xc6,
+ 0x24, 0x77, 0x4b, 0xe6, 0x69, 0x87, 0x93, 0x6d, 0x7c, 0x2b, 0xa9, 0xe6,
+ 0x8d, 0xb9, 0x1a, 0x22, 0xcc, 0x67, 0xb9, 0x77, 0x49, 0x75, 0x91, 0xcc,
+ 0x03, 0x63, 0xe9, 0xde, 0xc6, 0xc5, 0xec, 0x98, 0x24, 0x4e, 0xe2, 0x95,
+ 0x42, 0x39, 0x9a, 0xbf, 0x10, 0x54, 0x31, 0xa8, 0x2c, 0x5b, 0x58, 0xa9,
+ 0xa5, 0xc1, 0x55, 0xab, 0x69, 0x30, 0x1b, 0x08, 0x7a, 0x76, 0x89, 0x5b,
+ 0xc1, 0xf2, 0x68, 0xf1, 0x40, 0xf7, 0x2a, 0xef, 0x45, 0x5a, 0x16, 0xc9,
+ 0xf4, 0x4a, 0x0b, 0xee, 0x69, 0x8d, 0xbb, 0xd1, 0x2a, 0x68, 0x40, 0x26,
+ 0x21, 0xb1, 0xce, 0xcb, 0xb9, 0xcb, 0xfe, 0xc9, 0x94, 0x67, 0x5c, 0x83,
+ 0x71, 0x2a, 0x5a, 0x79, 0x95, 0x51, 0x88, 0x17, 0x6a, 0x60, 0x70, 0xbe,
+ 0x1b, 0x91, 0x03, 0x23, 0xae, 0x4d, 0xc1, 0x21, 0xdf, 0x01, 0x7e, 0x0c,
+ 0xd4, 0x11, 0x3c, 0xb8, 0x1c, 0xd1, 0x6a, 0xbb, 0xe7, 0x78, 0xed, 0xd8,
+ 0x9e, 0x8f, 0x55, 0x3b, 0x0c, 0x4b, 0xc8, 0x08, 0xe4, 0xa2, 0x41, 0x17,
+ 0xfa, 0x41, 0xd1, 0x00, 0xe1, 0x00, 0xa0, 0x83, 0x86, 0xc0, 0xdc, 0x65,
+ 0xe1, 0x56, 0x14, 0x88, 0xe5, 0xb1, 0x2b, 0x94, 0xd4, 0x76, 0x0c, 0x95,
+ 0x23, 0xad, 0x3f, 0x87, 0x1f, 0x3e, 0x82, 0xcd, 0x21, 0x99, 0xd0, 0x3f,
+ 0x5d, 0xc9, 0x29, 0x49, 0xe7, 0x8f, 0x1f, 0x46, 0x1d, 0xc4, 0x47, 0x75,
+ 0x8c, 0xb9, 0x6a, 0x0e, 0x16, 0x2c, 0xbf, 0x3e, 0x22, 0x48, 0x9c, 0xcd,
+ 0xc8, 0x2a, 0x68, 0x41, 0x36, 0xad, 0x40, 0x57, 0xe2, 0x20, 0x48, 0x48,
+ 0xf3, 0x7e, 0xf4, 0x65, 0x5c, 0xa4, 0xe3, 0x5e, 0x74, 0x94, 0x92, 0xac,
+ 0x5e, 0xf6, 0x3c, 0xfe, 0xa4, 0x43, 0xed, 0x1c, 0x44, 0xdf, 0x59, 0x25,
+ 0x54, 0xba, 0x73, 0x11, 0x67, 0x0b, 0x33, 0xaa, 0x4b, 0xca, 0xdb, 0x10,
+ 0xfb, 0xb4, 0x5a, 0x98, 0xc3, 0x04, 0x38, 0xb4, 0xed, 0xa1, 0xf5, 0xb0,
+ 0x99, 0x71, 0x71, 0x5b, 0x05, 0x95, 0x17, 0xa9, 0xaa, 0x60, 0x3b, 0x29,
+ 0x8b, 0x40, 0x58, 0xdf, 0xb9, 0x16, 0xf5, 0x50, 0x9a, 0xcb, 0xe6, 0x16,
+ 0x8c, 0xe5, 0x9d, 0xc6, 0x6a, 0xb7, 0x2a, 0x34, 0x44, 0xc8, 0xbc, 0xda,
+ 0xb8, 0x8d, 0xec, 0xb8, 0x6e, 0x20, 0x8c, 0x9e, 0xd6, 0x89, 0x57, 0x44,
+ 0xf9, 0xc9, 0xd9, 0xe5, 0xf1, 0xef, 0xa2, 0x61, 0xca, 0x35, 0x25, 0x1d,
+ 0xe5, 0xf0, 0x21, 0x67, 0xc7, 0xbe, 0x7a, 0xdc, 0x1a, 0x7b, 0xea, 0x52,
+ 0x72, 0xd5, 0x04, 0x6a, 0x79, 0x1f, 0x52, 0x2a, 0xe8, 0x5e, 0x4a, 0xb5,
+ 0xf3, 0xca, 0x80, 0x66, 0xef, 0xd2, 0x38, 0x72, 0xc5, 0xba, 0x79, 0xee,
+ 0xef, 0x99, 0xf4, 0xdf, 0x7b, 0x38, 0xf5, 0xa5, 0xbe, 0x08, 0xb0, 0x3b,
+ 0x6e, 0x47, 0xed, 0x1f, 0xb0, 0x1b, 0x8d, 0xd3, 0x9c, 0xae, 0x60, 0xe6,
+ 0x53, 0x63, 0x31, 0x79, 0x22, 0x9e, 0x0f, 0x63, 0x67, 0x93, 0x0e, 0xe9,
+ 0xe7, 0x2b, 0x59, 0xae, 0x31, 0x52, 0xff, 0x04, 0x0a, 0x5d, 0xcd, 0xa8,
+ 0x76, 0xee, 0x42, 0x56, 0x8a, 0xe4, 0x57, 0xa4, 0x10, 0xa2, 0x1a, 0x89,
+ 0xc2, 0x2d, 0x6e, 0x20, 0x46, 0x8e, 0x5a, 0x85, 0x2c, 0x31, 0x77, 0x37,
+ 0x5b, 0x20, 0xdb, 0x71, 0x08, 0x13, 0xd3, 0xe9, 0x24, 0x9a, 0xad, 0x34,
+ 0xbd, 0x5b, 0xf9, 0x30, 0xe7, 0x23, 0x41, 0x5d, 0xf9, 0xec, 0xb3, 0xc6,
+ 0xbd, 0xfb, 0xe0, 0x9e, 0xde, 0xa7, 0xaf, 0x03, 0xb5, 0x68, 0xca, 0xfe,
+ 0x55, 0x2b, 0x7b, 0xe4, 0x75, 0xa3, 0x86, 0xcc, 0x19, 0xa6, 0x6c, 0x4a,
+ 0x87, 0xce, 0x56, 0xda, 0xb2, 0x2f, 0xae, 0xb2, 0xd3, 0x86, 0x08, 0xdd,
+ 0x32, 0xce, 0xb8, 0x10, 0x2f, 0xfd, 0x1a, 0x29, 0xd4, 0x4e, 0x5e, 0x7d,
+ 0xb0, 0x81, 0x80, 0x42, 0x42, 0xd2, 0x80, 0x65, 0x1a, 0x96, 0xb7, 0x86,
+ 0x99, 0x36, 0xcc, 0xf9, 0x35, 0x3a, 0x18, 0x87, 0xcf, 0x58, 0x3d, 0x6b,
+ 0x03, 0x57, 0x1e, 0xc0, 0xdd, 0x18, 0xfd, 0x77, 0xeb, 0x87, 0xf3, 0xee,
+ 0x9f, 0x19, 0xce, 0x41, 0xf4, 0x68, 0x60, 0xa3, 0xd6, 0x7a, 0x60, 0x26,
+ 0x52, 0xe8, 0x49, 0x9d, 0x64, 0x30, 0x7e, 0x19, 0xfd, 0xc9, 0x1a, 0x8d,
+ 0xd9, 0xe1, 0x31, 0xaa, 0xe2, 0x6a, 0x36, 0xd5, 0x95, 0x79, 0x26, 0x4f,
+ 0x43, 0x7e, 0xe4, 0xf6, 0x7b, 0x36, 0x94, 0x8f, 0x1d, 0xae, 0xe5, 0xf4,
+ 0x5b, 0x64, 0xae, 0xef, 0x4f, 0xb2, 0xcd, 0xa4, 0x85, 0x20, 0xbf, 0x41,
+ 0xd0, 0xd6, 0xe5, 0x79, 0xc6, 0x59, 0x7f, 0x40, 0x90, 0x0a, 0x0d, 0xd6,
+ 0x97, 0xcb, 0xe3, 0x99, 0x20, 0x0b, 0xac, 0xf6, 0x9a, 0x7e, 0xb6, 0x2b,
+ 0xd0, 0x54, 0xc4, 0x1e, 0x15, 0x07, 0x90, 0xf4, 0x4c, 0xba, 0xac, 0x16,
+ 0x08, 0xb5, 0xac, 0x96, 0x26, 0x93, 0x7b, 0x05, 0xc5, 0xba, 0x9f, 0x62,
+ 0xe5, 0x82, 0xba, 0xdd, 0x28, 0x72, 0x26, 0x63, 0x94, 0x1a, 0xce, 0x5a,
+ 0xfa, 0x45, 0x0a, 0xca, 0xe2, 0x9e, 0x4f, 0x12, 0x69, 0xa9, 0x5c, 0x1b,
+ 0xf2, 0x7c, 0x18, 0x30, 0x5e, 0x21, 0x67, 0xb0, 0xef, 0xe8, 0x6a, 0x99,
+ 0x23, 0x14, 0x45, 0x33, 0xef, 0x35, 0x71, 0x92, 0x1a, 0xbd, 0x38, 0x78,
+ 0xfb, 0xd5, 0x31, 0xce, 0x3b, 0xb3, 0x5d, 0x9f, 0x26, 0xcc, 0x79, 0x80,
+ 0x7d, 0x38, 0xc6, 0x0b, 0x01, 0x26, 0x49, 0xf9, 0x8d, 0xc9, 0x72, 0xcc,
+ 0x3e, 0xf9, 0x77, 0x7a, 0x0c, 0xd2, 0x02, 0x98, 0xa4, 0xd3, 0x94, 0x07,
+ 0xc1, 0x2c, 0x57, 0xdd, 0xdf, 0x1b, 0x91, 0xa9, 0xa7, 0xe0, 0x18, 0x2c,
+ 0xd2, 0xd0, 0x0a, 0x41, 0x97, 0x2d, 0x96, 0xa3, 0x45, 0xac, 0xe9, 0x68,
+ 0x71, 0x98, 0xe1, 0xa4, 0x9a, 0xc0, 0xa0, 0x32, 0x05, 0xbe, 0x3b, 0x24,
+ 0xf8, 0xd3, 0x49, 0x9d, 0x39, 0xa4, 0xce, 0x41, 0xa8, 0x71, 0x09, 0x16,
+ 0xd4, 0xee, 0xce, 0x8e, 0xc7, 0x17, 0xf2, 0x99, 0x5a, 0x0d, 0x22, 0xcb,
+ 0xa3, 0x9d, 0xfe, 0x8b, 0x17, 0xeb, 0xe8, 0xc7, 0x35, 0x8a, 0x8c, 0x9b,
+ 0x67, 0x1f, 0xdd, 0x66, 0x9f, 0x1f, 0x5d, 0xd7, 0x66, 0x8b, 0x6c, 0x81,
+ 0x92, 0x24, 0x1a, 0x7a, 0x50, 0xb8, 0xf8, 0x16, 0xd5, 0x41, 0xc4, 0xf6,
+ 0x05, 0x5b, 0xe4, 0xdc, 0x09, 0x18, 0xbc, 0x94, 0x1b, 0x91, 0x93, 0x04,
+ 0x00, 0x97, 0x65, 0xea, 0xca, 0x82, 0xa3, 0x0f, 0x52, 0x67, 0x8e, 0xfe,
+ 0xa8, 0x85, 0x09, 0x44, 0xcc, 0x35, 0x4b, 0x74, 0xd5, 0x9c, 0x8d, 0x31,
+ 0xd2, 0x77, 0xe7, 0xac, 0x8c, 0x92, 0xee, 0x22, 0x02, 0x3b, 0x49, 0x9f,
+ 0x30, 0x4c, 0x6c, 0xd7, 0x64, 0xd1, 0x77, 0x5a, 0xac, 0x8f, 0x0b, 0x2d,
+ 0xb0, 0x1f, 0x4a, 0xe0, 0x99, 0xd3, 0xb9, 0x56, 0xcd, 0x73, 0xbb, 0xbf,
+ 0x46, 0x31, 0xbe, 0x8c, 0xfa, 0x01, 0x4b, 0x57, 0xc4, 0x21, 0xe6, 0xe7,
+ 0xb3, 0x95, 0xc9, 0x28, 0xda, 0x03, 0x5a, 0x37, 0x43, 0x57, 0xa5, 0x7a,
+ 0x71, 0x4f, 0x05, 0x4b, 0x50, 0x50, 0x83, 0xa5, 0xb7, 0x74, 0x29, 0xdd,
+ 0xe0, 0x8a, 0xa8, 0x31, 0xf0, 0x8f, 0x1b, 0x4a, 0xdc, 0x52, 0x87, 0xd4,
+ 0xa4, 0xd8, 0x94, 0x73, 0x3d, 0x55, 0x3b, 0xa9, 0x2b, 0xca, 0x0a, 0x4f,
+ 0xc9, 0x0f, 0xe2, 0xfc, 0x64, 0xff, 0xfa, 0xd8, 0x1e, 0x19, 0x15, 0x1f,
+ 0x4e, 0xab, 0x2f, 0x5f, 0x1b, 0x65, 0xab, 0xc1, 0xe0, 0x52, 0xde, 0x97,
+ 0xae, 0xe3, 0xf6, 0xee, 0xe4, 0x7d, 0x5b, 0x8e, 0x16, 0xa2, 0xe7, 0x6b,
+ 0x5f, 0x51, 0xa8, 0x5c, 0x64, 0xbb, 0x61, 0x66, 0xb0, 0x76, 0x02, 0x6e,
+ 0x91, 0x56, 0x39, 0xf8, 0x46, 0xa4, 0xf9, 0x21, 0xc0, 0xa8, 0x62, 0xba,
+ 0x01, 0xa8, 0x2e, 0x78, 0xdb, 0x2d, 0x22, 0x47, 0xae, 0x14, 0x89, 0x03,
+ 0x45, 0x58, 0x4e, 0x90, 0x75, 0xc3, 0xee, 0x21, 0x0f, 0x6c, 0x92, 0x2f,
+ 0xe7, 0x32, 0x0b, 0x38, 0x57, 0x68, 0xf0, 0x71, 0x71, 0x83, 0x80, 0x02,
+ 0xa7, 0x20, 0x35, 0x6f, 0xa2, 0x10, 0x9c, 0x83, 0xae, 0x1e, 0xb9, 0x77,
+ 0xc0, 0x55, 0x2b, 0x4b, 0x51, 0x5d, 0x81, 0x40, 0x9f, 0xf8, 0x58, 0xca,
+ 0x67, 0x96, 0xd1, 0x6a, 0x2c, 0x05, 0xf1, 0x37, 0xca, 0x39, 0xd6, 0x48,
+ 0xae, 0xaa, 0x8f, 0x49, 0x5b, 0x22, 0xca, 0x40, 0xfd, 0x41, 0x0d, 0x3c,
+ 0xa4, 0x12, 0xd7, 0x96, 0x10, 0xb2, 0x2c, 0x00, 0x1a, 0x24, 0xb5, 0xd8,
+ 0xd8, 0xac, 0x66, 0xcc, 0x40, 0x09, 0xf5, 0xb0, 0x3e, 0x9a, 0x63, 0xc4,
+ 0xf8, 0xff, 0x12, 0xd0, 0x08, 0x0b, 0x3e, 0xa3, 0xae, 0x67, 0xd2, 0x27,
+ 0x66, 0x28, 0x03, 0x94, 0x04, 0x1e, 0x09, 0x22, 0x1b, 0x5e, 0xba, 0xb2,
+ 0xec, 0x26, 0x07, 0x7e, 0x7b, 0x7c, 0xf1, 0xe5, 0xd9, 0xf0, 0x98, 0x38,
+ 0xc4, 0xd1, 0xf1, 0x97, 0xef, 0x98, 0x7b, 0xf0, 0x8e, 0x89, 0x91, 0x02,
+ 0x18, 0x14, 0x82, 0x28, 0x8d, 0xc4, 0x29, 0x27, 0x23, 0x4b, 0xfe, 0x67,
+ 0xcf, 0x28, 0x43, 0xe3, 0xd7, 0x54, 0x8a, 0x9e, 0x26, 0xa2, 0xd5, 0xa6,
+ 0x88, 0x1c, 0xf4, 0xf0, 0x2c, 0x2c, 0x3b, 0xcf, 0x19, 0x4f, 0xb9, 0x34,
+ 0x3c, 0x12, 0xc3, 0xf3, 0x2d, 0xf6, 0xbd, 0x6c, 0x7c, 0x27, 0x36, 0x0c,
+ 0x3d, 0x10, 0xbe, 0x62, 0x90, 0x55, 0x06, 0x1a, 0x04, 0x65, 0x7f, 0x15,
+ 0xaa, 0x7b, 0x9a, 0xc9, 0xed, 0xc5, 0x29, 0x53, 0x38, 0xcb, 0xc0, 0xa0,
+ 0x4f, 0x51, 0x61, 0x50, 0xb1, 0x36, 0xb5, 0x4e, 0x4f, 0x21, 0x04, 0x47,
+ 0x6c, 0x46, 0xd2, 0x4d, 0xa6, 0xca, 0x96, 0xc1, 0x85, 0x8a, 0x44, 0x92,
+ 0xb3, 0xe5, 0xf6, 0x54, 0x33, 0xbf, 0x04, 0xe8, 0x28, 0x84, 0xe4, 0x26,
+ 0x1f, 0x09, 0x86, 0x47, 0x10, 0x6d, 0x41, 0xb0, 0x92, 0xa5, 0x96, 0x8d,
+ 0x03, 0xd2, 0xe2, 0x95, 0x0f, 0xbc, 0x7c, 0x4a, 0x3a, 0x77, 0xeb, 0xd9,
+ 0xc1, 0xa5, 0xcc, 0x94, 0x13, 0x69, 0xe5, 0x42, 0x76, 0xd5, 0xc3, 0xe1,
+ 0x47, 0xf2, 0x59, 0x60, 0x1c, 0x84, 0xe4, 0x30, 0xe2, 0xe4, 0x3c, 0x71,
+ 0x18, 0x60, 0x20, 0x01, 0xaf, 0x2f, 0x7e, 0x63, 0x76, 0x16, 0x0d, 0x5d,
+ 0xaa, 0xe7, 0x7f, 0xab, 0x67, 0x9f, 0xb7, 0x14, 0xc6, 0xa3, 0xa8, 0x5e,
+ 0xe3, 0x54, 0xcf, 0xa0, 0xb4, 0x2e, 0x75, 0x6f, 0xca, 0x87, 0x32, 0x34,
+ 0xb1, 0x6d, 0x6c, 0x6c, 0x1c, 0x1d, 0x5f, 0x1e, 0x9c, 0x9c, 0x1e, 0x1f,
+ 0x45, 0x27, 0x6f, 0x5f, 0x9f, 0x5d, 0xbc, 0x39, 0xb8, 0x54, 0x27, 0xd3,
+ 0x91, 0xd3, 0x51, 0x5d, 0xe9, 0x16, 0x67, 0x02, 0xf0, 0xfa, 0x2b, 0x48,
+ 0x98, 0x76, 0xf1, 0x5a, 0xc1, 0x91, 0x64, 0x19, 0x92, 0xca, 0x1a, 0x6c,
+ 0x44, 0xea, 0x9c, 0xf2, 0xc5, 0x58, 0xf8, 0x7e, 0xde, 0x76, 0x0e, 0x85,
+ 0x81, 0x2d, 0xa7, 0x69, 0x98, 0xc0, 0x39, 0x7b, 0xb4, 0x29, 0x57, 0x78,
+ 0x4c, 0xee, 0x26, 0x60, 0xf4, 0x23, 0xe3, 0x07, 0x34, 0xd9, 0x3f, 0xe1,
+ 0x3c, 0x5e, 0x88, 0x97, 0x5a, 0xc1, 0xfd, 0xa4, 0x74, 0x85, 0x0b, 0x99,
+ 0x5c, 0xb8, 0x9d, 0x20, 0x93, 0x8c, 0x28, 0x10, 0x15, 0x92, 0x83, 0x36,
+ 0x5d, 0x52, 0x96, 0x55, 0x5b, 0x11, 0x97, 0x26, 0x3e, 0x09, 0xf7, 0x97,
+ 0xb3, 0xd6, 0x36, 0xd8, 0x43, 0x5d, 0x6a, 0x1d, 0x90, 0x87, 0x32, 0x99,
+ 0x17, 0x5c, 0xf3, 0xca, 0xce, 0x3a, 0xbf, 0xe2, 0x99, 0xa8, 0xd9, 0x71,
+ 0x15, 0xe0, 0x31, 0x6c, 0x6a, 0xd3, 0x39, 0x21, 0x48, 0x72, 0xe9, 0x9f,
+ 0x28, 0x62, 0x1b, 0xaf, 0x05, 0xd7, 0x37, 0xe6, 0x9f, 0x73, 0x0f, 0x61,
+ 0xa0, 0x11, 0x29, 0x5e, 0x61, 0x09, 0x6a, 0x3c, 0xe9, 0x69, 0xf3, 0xe7,
+ 0xb6, 0x30, 0x4a, 0x3b, 0xa2, 0x87, 0xb8, 0x60, 0x66, 0x5f, 0xbb, 0xd7,
+ 0x90, 0x30, 0xe8, 0xc2, 0xb6, 0x85, 0x22, 0x3c, 0x41, 0x08, 0x18, 0x65,
+ 0x02, 0xca, 0x82, 0x35, 0x90, 0x79, 0x80, 0xbe, 0x4b, 0x33, 0x1a, 0xb3,
+ 0x88, 0xef, 0xed, 0xbc, 0xae, 0x20, 0x55, 0xa3, 0xf2, 0xb7, 0x2b, 0x86,
+ 0x36, 0x74, 0xcf, 0x62, 0x25, 0x83, 0x17, 0x62, 0xef, 0x77, 0xc5, 0xfa,
+ 0x6f, 0x1a, 0x8e, 0x3b, 0x93, 0xac, 0x36, 0xa8, 0x9e, 0x83, 0xa6, 0x99,
+ 0xba, 0x32, 0xa9, 0xf0, 0xc5, 0xaa, 0xa7, 0x32, 0xe4, 0xf4, 0xd6, 0x35,
+ 0x46, 0x3f, 0x69, 0x1b, 0x81, 0x72, 0x71, 0x94, 0x32, 0xd5, 0xc2, 0x65,
+ 0x31, 0x3c, 0x76, 0x8c, 0x4c, 0xb1, 0xa1, 0xe0, 0x13, 0xca, 0x29, 0x61,
+ 0x3a, 0x0d, 0x73, 0x8e, 0xc7, 0x5c, 0x4b, 0x8b, 0xeb, 0x91, 0x6a, 0xed,
+ 0xbc, 0x20, 0x6e, 0x5e, 0x3c, 0xea, 0x8a, 0xb2, 0x0a, 0xa6, 0x37, 0xdf,
+ 0x30, 0x54, 0x48, 0x7b, 0xc9, 0x62, 0x22, 0xc0, 0xfd, 0x25, 0xf7, 0x1c,
+ 0x4c, 0x9e, 0xdd, 0x99, 0x49, 0x5c, 0xc0, 0xc6, 0x88, 0xf0, 0x59, 0xb9,
+ 0x33, 0x40, 0x02, 0x98, 0xab, 0x33, 0x5b, 0xe2, 0xf2, 0xf1, 0x25, 0x94,
+ 0xfb, 0x02, 0xd1, 0x11, 0x73, 0x06, 0x9d, 0x1d, 0x0a, 0x09, 0xe4, 0x73,
+ 0xad, 0xe0, 0xae, 0xe3, 0x9c, 0xf8, 0x7c, 0x8a, 0x68, 0x2c, 0x0d, 0x4f,
+ 0x39, 0xcf, 0x0a, 0x39, 0x6f, 0x90, 0xb4, 0x3b, 0xbe, 0xd2, 0x45, 0x67,
+ 0x71, 0x43, 0x7d, 0x74, 0xa2, 0x6b, 0xd6, 0x55, 0x46, 0x59, 0x18, 0xdb,
+ 0xa7, 0xdb, 0x32, 0x91, 0xc7, 0x5f, 0x5d, 0xc4, 0x57, 0x71, 0x32, 0xfd,
+ 0xfd, 0xde, 0xce, 0x30, 0xbe, 0x5e, 0x4e, 0xe3, 0x3f, 0xe0, 0xc5, 0x57,
+ 0x4f, 0x9e, 0xec, 0xed, 0x7c, 0xfa, 0xd9, 0x4e, 0xa7, 0xe6, 0x2a, 0x0a,
+ 0xfc, 0xcc, 0x70, 0x1b, 0xa2, 0x34, 0x35, 0xf3, 0x5d, 0xf4, 0x33, 0x18,
+ 0x5f, 0xa7, 0xdc, 0xcd, 0xd7, 0x2c, 0xbc, 0xe8, 0x1a, 0xc4, 0x08, 0xfe,
+ 0x10, 0x36, 0xa9, 0x35, 0xb0, 0xe8, 0xc6, 0x25, 0xba, 0xfe, 0x64, 0x77,
+ 0x5f, 0x58, 0xd9, 0x35, 0xec, 0x52, 0xb1, 0x50, 0x6c, 0xf4, 0x32, 0x9d,
+ 0xd3, 0x0d, 0xf4, 0x79, 0x54, 0xc6, 0xd7, 0x8e, 0x56, 0xd1, 0x82, 0xab,
+ 0x5a, 0x6d, 0x96, 0xf0, 0xab, 0x14, 0xf5, 0x93, 0x07, 0xd1, 0xe6, 0xa5,
+ 0xc0, 0xc3, 0x41, 0xf0, 0x59, 0x24, 0xf9, 0x54, 0x32, 0x7b, 0xe3, 0x99,
+ 0x85, 0x97, 0xf2, 0xfb, 0xec, 0x8c, 0x1f, 0x2c, 0xa6, 0xae, 0x46, 0x37,
+ 0x34, 0xb0, 0xd4, 0x13, 0xdc, 0x74, 0x51, 0xf8, 0x9a, 0x50, 0x72, 0xdd,
+ 0x84, 0xc0, 0x73, 0xb4, 0x58, 0xa8, 0x78, 0xd1, 0xc1, 0xac, 0x7a, 0xae,
+ 0xb8, 0x4c, 0x7f, 0x62, 0x33, 0x1d, 0xe0, 0x77, 0x54, 0xde, 0xd3, 0x02,
+ 0xc2, 0x9d, 0x85, 0xe4, 0x42, 0xb9, 0x82, 0x26, 0x9a, 0x3a, 0x5d, 0x99,
+ 0x57, 0xec, 0x83, 0x40, 0xa2, 0x97, 0xa6, 0xe4, 0xee, 0x7e, 0xfe, 0x0a,
+ 0x04, 0xb1, 0xfb, 0xf9, 0x1f, 0xdc, 0x67, 0x7b, 0xfa, 0xd9, 0xde, 0xe7,
+ 0x7f, 0x18, 0x0c, 0x30, 0x3e, 0xa6, 0x90, 0xae, 0x7d, 0xdd, 0xd5, 0x04,
+ 0xcb, 0x58, 0x8f, 0xb0, 0xfc, 0xe5, 0x50, 0x86, 0x64, 0xaf, 0x3b, 0xd6,
+ 0x73, 0xb8, 0xca, 0x3d, 0xb5, 0xbd, 0x3b, 0xbe, 0x95, 0x1a, 0x38, 0x33,
+ 0x10, 0x4c, 0x8b, 0xb6, 0x45, 0x77, 0x26, 0x42, 0xb4, 0x53, 0x38, 0x78,
+ 0x96, 0x38, 0xfa, 0x23, 0x53, 0xea, 0x1f, 0x37, 0x22, 0x35, 0x91, 0xf3,
+ 0x76, 0xa0, 0x04, 0x63, 0x64, 0x64, 0x4b, 0x8f, 0xc6, 0x06, 0x6f, 0xc7,
+ 0x2d, 0x73, 0x44, 0x29, 0xdf, 0x81, 0x41, 0x51, 0x8f, 0x3f, 0x29, 0xc4,
+ 0x91, 0x6c, 0x38, 0xf3, 0x33, 0xe4, 0x6e, 0x48, 0x06, 0x14, 0x49, 0x18,
+ 0x25, 0xf3, 0x06, 0x3c, 0xf9, 0xfb, 0xef, 0xbf, 0x57, 0x71, 0x8a, 0x7e,
+ 0xd1, 0x71, 0xdf, 0x10, 0x27, 0x9a, 0x10, 0x73, 0x9b, 0xa1, 0x74, 0x84,
+ 0x56, 0x61, 0xd1, 0x0b, 0xff, 0x4a, 0xe7, 0x29, 0x8d, 0xd0, 0xc6, 0x4a,
+ 0xcd, 0x62, 0x1e, 0x19, 0x96, 0xf4, 0x58, 0x98, 0x18, 0x28, 0x73, 0x13,
+ 0xae, 0x40, 0x1f, 0x6a, 0x11, 0x12, 0x3e, 0xef, 0x1c, 0x36, 0x1d, 0xb4,
+ 0x4f, 0x8d, 0x99, 0x1a, 0xac, 0x1b, 0x09, 0x8a, 0x15, 0x19, 0xe7, 0x55,
+ 0x47, 0x1e, 0xbc, 0x4e, 0x3b, 0x6a, 0xe0, 0x95, 0x4f, 0x3a, 0x3e, 0x5f,
+ 0x56, 0x76, 0x03, 0x5b, 0xf6, 0x4a, 0x04, 0xa7, 0xf4, 0xe7, 0xe4, 0xd5,
+ 0xee, 0x4e, 0xfb, 0x13, 0xac, 0x0d, 0x45, 0x8c, 0x34, 0xfb, 0xca, 0x1b,
+ 0xc8, 0x1f, 0x7b, 0x3e, 0x9d, 0xc8, 0xd3, 0x5a, 0x40, 0x11, 0x05, 0x65,
+ 0x5e, 0x75, 0x46, 0x7c, 0xbf, 0xf2, 0xff, 0xaf, 0x19, 0x07, 0x82, 0xdb,
+ 0xf4, 0xd9, 0x62, 0x39, 0x9a, 0xa5, 0x95, 0x01, 0x6f, 0xf3, 0x04, 0x3f,
+ 0x87, 0x49, 0x25, 0x71, 0xb4, 0x81, 0xca, 0xbb, 0x22, 0xf9, 0x75, 0xaf,
+ 0xb2, 0x6c, 0x14, 0xe7, 0x5d, 0x35, 0xa2, 0xda, 0x38, 0xbb, 0xbb, 0x7b,
+ 0x4f, 0x9e, 0x3e, 0xeb, 0x0e, 0x54, 0x4a, 0x03, 0x83, 0x80, 0x62, 0x96,
+ 0xaa, 0x2a, 0x23, 0x4d, 0xc4, 0x72, 0x3c, 0x2d, 0x76, 0x0b, 0x69, 0x6c,
+ 0x6d, 0xce, 0x06, 0xe6, 0x61, 0xdc, 0xdd, 0x2b, 0xe9, 0xed, 0x0f, 0xdc,
+ 0xcf, 0x2b, 0x74, 0xf1, 0x87, 0x74, 0xf2, 0xca, 0xcd, 0xf0, 0x0f, 0x3c,
+ 0x97, 0x57, 0x3a, 0x09, 0xda, 0x57, 0xcb, 0x1b, 0x28, 0xb6, 0x36, 0x5a,
+ 0xb9, 0x5a, 0xeb, 0xe6, 0xda, 0x26, 0x6e, 0x60, 0xd2, 0xf0, 0x74, 0xf5,
+ 0x27, 0x62, 0xb9, 0x85, 0xac, 0xea, 0x83, 0xe6, 0xb7, 0x1f, 0xfa, 0xd4,
+ 0x4a, 0x9f, 0x5b, 0xe9, 0x7b, 0x76, 0x1d, 0xcd, 0x38, 0x49, 0x86, 0x37,
+ 0xa2, 0xa7, 0x99, 0x13, 0x53, 0xd8, 0x3a, 0x54, 0x10, 0xc8, 0x32, 0xf8,
+ 0x91, 0x0e, 0xbf, 0x3a, 0xe9, 0xaa, 0x83, 0x56, 0x14, 0xb7, 0x5e, 0x9b,
+ 0x71, 0xcd, 0x45, 0x4d, 0x28, 0xe2, 0xc2, 0x86, 0x41, 0xa1, 0xc7, 0xec,
+ 0x6f, 0xe4, 0x7e, 0x25, 0xcd, 0x89, 0x3a, 0xd3, 0x3b, 0x67, 0xca, 0xe6,
+ 0xba, 0x1c, 0x9f, 0x84, 0xcd, 0x00, 0xc1, 0x46, 0x1c, 0x8f, 0xb0, 0x54,
+ 0x2f, 0x5c, 0x86, 0x44, 0xff, 0xb5, 0xf3, 0x06, 0xb8, 0x88, 0x7c, 0x7d,
+ 0x94, 0xbe, 0x12, 0x6e, 0x62, 0x0c, 0xa2, 0xe3, 0xca, 0x6d, 0x09, 0x25,
+ 0x84, 0xbc, 0x03, 0xbe, 0x8c, 0x51, 0x52, 0x29, 0xe2, 0x24, 0x62, 0x21,
+ 0x73, 0xcf, 0x97, 0xae, 0x3e, 0xd3, 0xe7, 0x11, 0x6a, 0x1c, 0xc8, 0x5b,
+ 0x1a, 0x73, 0x5f, 0xa9, 0x65, 0x8b, 0x97, 0x54, 0x39, 0x70, 0x9e, 0x8f,
+ 0xc0, 0x6b, 0xab, 0x62, 0x81, 0xb4, 0x20, 0x13, 0x1d, 0xad, 0x54, 0xfd,
+ 0xe7, 0x16, 0xba, 0x7f, 0xc6, 0x21, 0x78, 0xc9, 0xdb, 0x80, 0xaf, 0x3f,
+ 0xef, 0x8a, 0x09, 0xcf, 0xbd, 0xcb, 0xc3, 0xa8, 0x79, 0x56, 0x84, 0x40,
+ 0xc3, 0xf9, 0x64, 0x57, 0x0e, 0xba, 0x46, 0x64, 0x31, 0x4e, 0xa8, 0x9d,
+ 0x43, 0x9d, 0x4a, 0x93, 0xe9, 0x44, 0x4b, 0xc8, 0xa9, 0x2c, 0xd4, 0xd3,
+ 0xc6, 0x13, 0xce, 0x56, 0x66, 0xd9, 0xb1, 0xcb, 0x01, 0x38, 0x78, 0xaf,
+ 0xeb, 0x90, 0x70, 0x58, 0xa4, 0x4e, 0xc0, 0xee, 0xf2, 0xc4, 0xca, 0xab,
+ 0x6d, 0x68, 0x22, 0x9d, 0x97, 0xe5, 0xc3, 0x89, 0x15, 0x81, 0xe8, 0xe0,
+ 0xf3, 0x12, 0x24, 0xdf, 0xba, 0x71, 0x44, 0x5e, 0x73, 0xd2, 0x8f, 0x76,
+ 0xfa, 0x8a, 0x97, 0x7b, 0x77, 0x70, 0x9d, 0x5e, 0xc9, 0x62, 0x10, 0x8b,
+ 0xbc, 0x4e, 0xb6, 0xe9, 0xcf, 0x1e, 0x7d, 0xbe, 0xc7, 0x32, 0x19, 0xff,
+ 0xf2, 0x04, 0x7e, 0xfb, 0xf0, 0xe6, 0x0f, 0xce, 0x86, 0x3b, 0x17, 0xfc,
+ 0x4b, 0xea, 0x6e, 0x7c, 0x35, 0x49, 0xeb, 0x28, 0x41, 0xe6, 0x0a, 0x32,
+ 0xea, 0x05, 0xcd, 0x5e, 0x60, 0x6e, 0x06, 0xc8, 0x5c, 0x06, 0xe9, 0xa4,
+ 0xf0, 0x61, 0x6e, 0xea, 0x58, 0x54, 0x31, 0x9d, 0xa5, 0xee, 0x54, 0x0d,
+ 0x26, 0x1c, 0x54, 0x8c, 0x7b, 0x35, 0xb9, 0xdf, 0xea, 0x85, 0xc1, 0x43,
+ 0x56, 0x55, 0xd4, 0x95, 0x3e, 0x46, 0xc6, 0x1d, 0x77, 0xbf, 0xa9, 0x75,
+ 0xbc, 0x18, 0xb7, 0x42, 0x53, 0x83, 0xb0, 0xcd, 0x69, 0x7d, 0x07, 0xab,
+ 0xa5, 0xb0, 0x24, 0xe0, 0x23, 0x2d, 0xca, 0x2d, 0xee, 0x26, 0x99, 0x16,
+ 0xd0, 0xd4, 0x79, 0xd0, 0x1b, 0x51, 0xb0, 0xee, 0x86, 0x08, 0x82, 0xae,
+ 0xba, 0x5c, 0x9b, 0x6b, 0x1b, 0xfe, 0x20, 0xe1, 0x6d, 0xc7, 0x33, 0x01,
+ 0xc0, 0x07, 0xd9, 0x4e, 0xfb, 0x72, 0x5f, 0xaa, 0x10, 0xd4, 0x7f, 0x3d,
+ 0x88, 0x4e, 0x11, 0xfa, 0x56, 0xc4, 0x92, 0x45, 0x6d, 0x77, 0xaa, 0x51,
+ 0x00, 0x91, 0x8b, 0x48, 0xdd, 0x1b, 0x52, 0x94, 0x8c, 0x13, 0x57, 0x8d,
+ 0x8c, 0x80, 0xd9, 0xe7, 0xd5, 0x4c, 0x91, 0x28, 0x54, 0x02, 0xe9, 0xc1,
+ 0x0a, 0xed, 0x9e, 0x43, 0x89, 0x3a, 0x57, 0x22, 0x3b, 0x20, 0xd2, 0xa0,
+ 0x11, 0x71, 0xe8, 0xab, 0xc8, 0x19, 0xb0, 0x72, 0x47, 0xf8, 0x92, 0x1f,
+ 0x9b, 0x88, 0x99, 0x45, 0xcb, 0x18, 0x8b, 0x0f, 0x8b, 0x5a, 0x03, 0x65,
+ 0xf1, 0xdc, 0x99, 0x74, 0x3a, 0xd0, 0x14, 0xa7, 0x89, 0x53, 0xa7, 0x15,
+ 0x78, 0x58, 0x30, 0x80, 0x33, 0x85, 0x81, 0x12, 0x01, 0xc3, 0xfb, 0x17,
+ 0x78, 0x90, 0x3c, 0xae, 0xf8, 0x8e, 0x7e, 0xe1, 0x4b, 0x7e, 0x94, 0xd3,
+ 0x4e, 0x27, 0xb9, 0x5c, 0x07, 0xe8, 0x15, 0x18, 0x31, 0x0e, 0xe2, 0xf3,
+ 0xcd, 0x69, 0x64, 0xd9, 0xe8, 0x57, 0x5e, 0x38, 0xb4, 0xa8, 0x1d, 0x4c,
+ 0x51, 0x6d, 0x21, 0x22, 0x01, 0xe9, 0x53, 0x72, 0xb3, 0xc9, 0xda, 0x72,
+ 0x42, 0x5b, 0xc4, 0x8b, 0x53, 0x39, 0xa6, 0xc1, 0x13, 0xf2, 0x2a, 0xd3,
+ 0x0e, 0x91, 0x46, 0x97, 0x97, 0xa0, 0xdb, 0x8b, 0xba, 0x3c, 0x54, 0xfe,
+ 0xa2, 0x8b, 0xf5, 0xc4, 0xc7, 0xc1, 0xf2, 0x75, 0x07, 0x2d, 0x27, 0x8f,
+ 0x9f, 0x79, 0xf5, 0x45, 0x65, 0x95, 0xf0, 0xb9, 0x35, 0xf5, 0x4a, 0xa2,
+ 0x65, 0x1b, 0x52, 0xb6, 0xbd, 0x1b, 0xb4, 0xff, 0xea, 0x90, 0x5a, 0x91,
+ 0x22, 0x70, 0xb2, 0x27, 0x10, 0xa8, 0xdd, 0x67, 0x29, 0xd2, 0x6e, 0x1a,
+ 0x0d, 0x7d, 0xf8, 0xe4, 0x5e, 0x1a, 0xfb, 0x71, 0xe1, 0x41, 0xc2, 0xd1,
+ 0x84, 0x04, 0x8c, 0xdb, 0xd2, 0x6e, 0xa6, 0xa2, 0xe9, 0xdd, 0x67, 0xb0,
+ 0x2b, 0x80, 0xcf, 0xec, 0x0e, 0x90, 0x86, 0xe1, 0x61, 0x83, 0x5c, 0x03,
+ 0x4e, 0x5d, 0xef, 0x60, 0x41, 0x3b, 0x66, 0x26, 0x71, 0x4a, 0xbc, 0xad,
+ 0x72, 0x1b, 0xbf, 0x5a, 0xa4, 0x63, 0xd4, 0x74, 0x7d, 0xf5, 0xc5, 0x24,
+ 0xbb, 0x66, 0x6e, 0xd5, 0xa3, 0x8b, 0x95, 0x7f, 0x76, 0xf8, 0xe1, 0x3d,
+ 0xed, 0x54, 0x06, 0x8c, 0xb3, 0x22, 0x72, 0xbb, 0xfd, 0xbd, 0x26, 0x7c,
+ 0x89, 0x1a, 0x9e, 0x64, 0x63, 0x6d, 0xdb, 0x35, 0x2d, 0xfb, 0x41, 0xed,
+ 0xbb, 0x2f, 0xc2, 0xbe, 0x6c, 0x71, 0x62, 0x6d, 0x59, 0x8a, 0xf1, 0x4d,
+ 0xd3, 0x52, 0xae, 0x6f, 0x87, 0x21, 0x0f, 0x93, 0x16, 0xd7, 0xd3, 0x90,
+ 0xbb, 0x6a, 0xaa, 0xb9, 0x01, 0xdd, 0x2f, 0xba, 0x12, 0xea, 0xd8, 0x7d,
+ 0xd9, 0x05, 0xd7, 0x62, 0x5e, 0x64, 0x88, 0xc1, 0x7a, 0x21, 0x75, 0xe5,
+ 0x26, 0xec, 0x8b, 0xbc, 0xa0, 0x85, 0x12, 0x2b, 0xd1, 0x29, 0xcc, 0x30,
+ 0x4c, 0x71, 0x0c, 0x03, 0x6b, 0x60, 0x18, 0xf0, 0x25, 0x02, 0x19, 0x85,
+ 0x67, 0x54, 0x8a, 0x4b, 0x5a, 0x2f, 0x5a, 0x88, 0x62, 0x48, 0x6a, 0x2e,
+ 0xd8, 0xe1, 0x2a, 0x86, 0xcd, 0xe5, 0x7c, 0xc1, 0x29, 0x6c, 0x63, 0x54,
+ 0x10, 0xd6, 0xb3, 0x34, 0x88, 0xde, 0xcd, 0x05, 0xe3, 0x2f, 0x61, 0xf5,
+ 0x38, 0xf4, 0x97, 0xf7, 0x9c, 0xdf, 0x9f, 0x16, 0xaa, 0xe2, 0x4f, 0x0c,
+ 0x07, 0x2c, 0xe6, 0x10, 0x31, 0x5b, 0x6b, 0xbf, 0x7c, 0xb5, 0xe6, 0x1c,
+ 0x8d, 0xa0, 0x66, 0x69, 0x48, 0x02, 0x2e, 0xb9, 0x59, 0x19, 0x10, 0x7b,
+ 0xe7, 0x8e, 0x5f, 0x1f, 0x5f, 0x5c, 0x1c, 0x5f, 0xf0, 0x7a, 0x1f, 0x54,
+ 0xb1, 0xfa, 0x6f, 0x34, 0x32, 0xda, 0xa3, 0xd0, 0x59, 0x44, 0x58, 0xb3,
+ 0x84, 0xb3, 0x70, 0x42, 0x85, 0x8d, 0xda, 0x88, 0xcc, 0xcf, 0x2d, 0x19,
+ 0xfd, 0x62, 0x10, 0x86, 0x35, 0x11, 0xf1, 0x80, 0xce, 0x72, 0x3f, 0xe5,
+ 0x6b, 0x45, 0x20, 0xf7, 0x43, 0x61, 0x62, 0x23, 0xb2, 0x57, 0x73, 0xad,
+ 0xb5, 0x82, 0xab, 0xda, 0x74, 0xc7, 0x40, 0x2e, 0x1d, 0x68, 0x08, 0x57,
+ 0xa2, 0xde, 0x6b, 0x5f, 0x47, 0x1d, 0xf3, 0xbd, 0xe2, 0x03, 0xca, 0xaa,
+ 0x12, 0x56, 0xa2, 0x28, 0x97, 0x8b, 0x74, 0xe2, 0x8c, 0xbb, 0xf4, 0x39,
+ 0xc9, 0x7b, 0x91, 0x1c, 0xf1, 0xc2, 0x46, 0x0c, 0x67, 0xa2, 0xd9, 0x1e,
+ 0x42, 0xe3, 0x9a, 0x24, 0xd0, 0x7b, 0xd3, 0x18, 0x62, 0xfe, 0xa5, 0x40,
+ 0xa7, 0xe2, 0x83, 0xd7, 0xb2, 0xd3, 0x94, 0xf0, 0x13, 0x18, 0x15, 0x99,
+ 0x55, 0x58, 0xac, 0x40, 0xc8, 0x16, 0xd8, 0x74, 0x35, 0xf3, 0x81, 0x90,
+ 0xbe, 0x78, 0xe2, 0x05, 0x92, 0x52, 0xf2, 0xfd, 0xe8, 0xc7, 0x22, 0x1d,
+ 0xff, 0xe4, 0x6f, 0x0e, 0x84, 0x30, 0xfb, 0x58, 0x45, 0x89, 0x2d, 0xa0,
+ 0xc9, 0xeb, 0x42, 0xa9, 0xee, 0x2b, 0xc9, 0x60, 0xef, 0x86, 0xc7, 0x17,
+ 0xd1, 0xc1, 0x57, 0x8c, 0x64, 0xf5, 0xaf, 0xed, 0x2e, 0x3f, 0xa7, 0x37,
+ 0x83, 0xed, 0xad, 0xa6, 0x1f, 0x27, 0x66, 0xf8, 0xd6, 0x1a, 0x11, 0xe1,
+ 0xc6, 0xa6, 0x56, 0x29, 0x27, 0xc8, 0x13, 0xad, 0x6c, 0xe1, 0x46, 0xf4,
+ 0xc1, 0x4d, 0xfc, 0x98, 0x2d, 0xe4, 0x03, 0x16, 0x6e, 0xa2, 0xe0, 0x16,
+ 0x88, 0x03, 0xc2, 0xb6, 0x46, 0x47, 0x5f, 0x34, 0xd4, 0x4c, 0xd9, 0xa4,
+ 0x83, 0xa8, 0xfb, 0x26, 0xfb, 0x99, 0x04, 0x81, 0x78, 0xfb, 0xc9, 0x60,
+ 0x27, 0xda, 0xfc, 0x2e, 0x9d, 0xbf, 0x78, 0xf6, 0xe7, 0xe8, 0x64, 0xab,
+ 0x5b, 0x09, 0xf2, 0x14, 0xc8, 0xea, 0x51, 0x3c, 0xbf, 0x75, 0x3b, 0x76,
+ 0x86, 0x53, 0x2d, 0xa1, 0x2b, 0x06, 0x7c, 0x2a, 0x55, 0x18, 0xd7, 0xb6,
+ 0x88, 0xa4, 0x2a, 0x8d, 0x17, 0x8d, 0xbe, 0x75, 0xe0, 0x7b, 0xac, 0xd3,
+ 0xd3, 0x53, 0x13, 0x5e, 0xba, 0x17, 0xcf, 0x1a, 0x4d, 0x3c, 0x75, 0x6d,
+ 0xbc, 0x93, 0x36, 0x7e, 0x61, 0x13, 0x7b, 0x83, 0x9d, 0xbd, 0x68, 0xf3,
+ 0x6c, 0xb8, 0xbd, 0xe7, 0x5a, 0x68, 0x36, 0xb1, 0x87, 0x26, 0xf8, 0xa1,
+ 0xea, 0xcb, 0x4f, 0xb9, 0xff, 0x1f, 0x93, 0xf9, 0x4f, 0xd1, 0xe6, 0xf7,
+ 0xbb, 0xbb, 0xd4, 0xc0, 0x9f, 0xa3, 0x83, 0x93, 0xef, 0xa3, 0xa7, 0x03,
+ 0x6a, 0xec, 0x6d, 0x7c, 0xa7, 0xcd, 0x29, 0x5e, 0xd5, 0x10, 0x8d, 0xd0,
+ 0xf7, 0x8d, 0x36, 0x9e, 0xd5, 0xda, 0x38, 0x25, 0x3d, 0xf0, 0x81, 0xae,
+ 0x94, 0x9d, 0xc1, 0x93, 0xbd, 0x28, 0x7d, 0xf6, 0xd9, 0x73, 0x6b, 0x48,
+ 0xdb, 0xc0, 0xf7, 0x55, 0xdb, 0xa4, 0x64, 0x34, 0x93, 0x98, 0x73, 0xfc,
+ 0x40, 0xcc, 0x0c, 0x1c, 0x02, 0x30, 0xb1, 0x37, 0x71, 0x3e, 0x51, 0x72,
+ 0xe3, 0x02, 0x32, 0xb4, 0x53, 0x8a, 0x84, 0x96, 0xc0, 0x48, 0x49, 0x97,
+ 0xe6, 0x7e, 0x63, 0x38, 0xac, 0x8b, 0xda, 0xa3, 0x7f, 0x8e, 0xde, 0x0c,
+ 0x4f, 0x8e, 0x69, 0x46, 0x3b, 0x34, 0x34, 0xbf, 0x86, 0x32, 0x20, 0x7c,
+ 0x85, 0xc5, 0xa5, 0x55, 0xdd, 0xe0, 0xbc, 0x1f, 0xb4, 0x61, 0x32, 0xb6,
+ 0x44, 0x74, 0x31, 0x44, 0x65, 0x56, 0x14, 0xe8, 0xf7, 0x1d, 0xd1, 0x5a,
+ 0xff, 0xe0, 0x9a, 0x55, 0x06, 0xb9, 0x66, 0xd1, 0xf5, 0x37, 0xd9, 0x9c,
+ 0x8e, 0x49, 0x9e, 0xe5, 0x1c, 0xe6, 0xd1, 0xad, 0x48, 0x0a, 0xdf, 0x1c,
+ 0x1d, 0x4b, 0x4e, 0xde, 0x9b, 0x78, 0x4e, 0x2c, 0x92, 0xd1, 0x2b, 0x8a,
+ 0x5b, 0xf6, 0xba, 0x8b, 0xf3, 0x46, 0xde, 0x3f, 0x5d, 0xcd, 0x1f, 0x68,
+ 0x1f, 0x3f, 0x1d, 0xec, 0x32, 0x82, 0x1f, 0x6b, 0xb9, 0xaf, 0xdf, 0xd0,
+ 0xdf, 0xbb, 0x4f, 0xbb, 0x11, 0x7f, 0x55, 0xd5, 0xd8, 0xed, 0xbc, 0x6e,
+ 0x1c, 0x9e, 0x9d, 0x7d, 0x73, 0x22, 0x01, 0x18, 0x87, 0x6a, 0x44, 0x65,
+ 0xc1, 0xca, 0x69, 0xc1, 0xc2, 0x5c, 0x49, 0x5b, 0xf3, 0xf1, 0xe3, 0x70,
+ 0xbd, 0xdd, 0x26, 0xc9, 0x02, 0x90, 0x7b, 0x35, 0x8e, 0x50, 0x2a, 0x8b,
+ 0x96, 0x91, 0xb1, 0x20, 0x9d, 0x4e, 0xaa, 0xc8, 0x1b, 0x05, 0xa3, 0xa1,
+ 0x99, 0xc1, 0x76, 0xb4, 0x72, 0x79, 0xbf, 0xb1, 0x2f, 0x78, 0x89, 0x21,
+ 0xba, 0x28, 0x56, 0x33, 0x38, 0x4b, 0xc5, 0x7b, 0x7a, 0x51, 0x75, 0xdd,
+ 0xee, 0x30, 0x29, 0xfb, 0x32, 0xe8, 0x7d, 0xb5, 0xd1, 0x76, 0xd5, 0xe0,
+ 0xe4, 0xcc, 0x65, 0x0b, 0xc5, 0xdf, 0x85, 0xa1, 0x78, 0xb5, 0xe0, 0xc2,
+ 0x9c, 0x53, 0x57, 0x3b, 0x19, 0x85, 0x67, 0x13, 0xc4, 0x12, 0xbd, 0x3d,
+ 0x78, 0x73, 0xfc, 0xea, 0xdb, 0x83, 0xd3, 0x77, 0xc7, 0xf4, 0x0a, 0x23,
+ 0xd0, 0x6e, 0xfa, 0x78, 0x23, 0x8c, 0x71, 0x96, 0x8e, 0xb3, 0x29, 0xfb,
+ 0x94, 0xba, 0x7f, 0xee, 0x6e, 0x48, 0x78, 0x65, 0xd4, 0xe1, 0xb7, 0x76,
+ 0xe5, 0x35, 0xa2, 0x0b, 0xfe, 0x6b, 0x4f, 0xfe, 0xda, 0xfb, 0x73, 0x67,
+ 0xab, 0x32, 0xe9, 0x86, 0x56, 0xcc, 0xf4, 0x72, 0x2f, 0x71, 0x75, 0xa8,
+ 0x08, 0x83, 0x98, 0x5e, 0x59, 0x95, 0x8e, 0x79, 0x64, 0xec, 0x6a, 0xe3,
+ 0x67, 0x37, 0x47, 0xab, 0x50, 0xe7, 0xee, 0xf0, 0x4b, 0xaf, 0x20, 0x5c,
+ 0x74, 0x38, 0xe7, 0x49, 0xc5, 0x0d, 0x38, 0xab, 0xb9, 0x0d, 0x6b, 0x22,
+ 0x79, 0x58, 0x70, 0xf8, 0xd6, 0x66, 0x47, 0x7e, 0x79, 0x75, 0x74, 0x70,
+ 0x79, 0xcc, 0x2f, 0x58, 0xf7, 0x56, 0xc2, 0xdb, 0x22, 0x6f, 0x79, 0x3c,
+ 0x9b, 0x1d, 0xf9, 0xf0, 0x15, 0x4f, 0xa8, 0x23, 0xf5, 0x14, 0x04, 0x4c,
+ 0xb2, 0x36, 0xae, 0x6c, 0xae, 0x41, 0x8c, 0x41, 0x3a, 0x62, 0x61, 0x71,
+ 0x22, 0x9b, 0x1d, 0xf9, 0xae, 0xe3, 0xec, 0xb5, 0x5a, 0xa4, 0x56, 0x9d,
+ 0x93, 0x13, 0xc4, 0xe5, 0x36, 0xd2, 0x83, 0xa4, 0x2e, 0x94, 0xdf, 0x1f,
+ 0x75, 0x4d, 0x88, 0x85, 0x29, 0x00, 0xd4, 0x73, 0x1b, 0xaf, 0xd9, 0x93,
+ 0x6c, 0x53, 0xca, 0xb2, 0xdd, 0xbd, 0x27, 0x7f, 0xc6, 0x7a, 0xbe, 0xea,
+ 0x6c, 0xd3, 0xdd, 0xd0, 0xf9, 0x33, 0x77, 0x9d, 0x96, 0x41, 0x69, 0x19,
+ 0xed, 0x86, 0x75, 0x29, 0xa5, 0x28, 0x09, 0x52, 0xe1, 0x5d, 0x87, 0x2d,
+ 0x4c, 0xe6, 0x85, 0x05, 0xbd, 0x97, 0xec, 0x01, 0x4b, 0xa8, 0x37, 0xf7,
+ 0x3d, 0xf6, 0x0b, 0xe5, 0x11, 0xe7, 0x0e, 0x86, 0x55, 0xba, 0x0b, 0xef,
+ 0x8f, 0x9e, 0xbc, 0x2b, 0x73, 0xd4, 0x82, 0x37, 0xdc, 0xe7, 0x6c, 0x65,
+ 0x09, 0x06, 0xe8, 0x0b, 0xf2, 0xb8, 0xec, 0x59, 0x43, 0x2a, 0x1e, 0xa9,
+ 0x2d, 0xc7, 0x14, 0x11, 0x88, 0x04, 0xc4, 0x5a, 0x56, 0x90, 0x93, 0xc4,
+ 0xdf, 0x1f, 0x84, 0x39, 0xd8, 0x9d, 0x1d, 0x8f, 0x38, 0x53, 0xce, 0x45,
+ 0x53, 0x07, 0x5a, 0xb8, 0x5b, 0x7a, 0x3b, 0x7e, 0x69, 0x00, 0x9e, 0xc0,
+ 0x17, 0xa5, 0xac, 0x65, 0xe1, 0x6c, 0x46, 0xf0, 0x2d, 0xea, 0xb3, 0xd5,
+ 0x7d, 0xaa, 0xe5, 0x29, 0x60, 0x1a, 0xa2, 0xc2, 0x8b, 0x6e, 0x4c, 0xac,
+ 0x66, 0x9e, 0xe4, 0x8f, 0x86, 0x38, 0xb4, 0xb8, 0x9e, 0x30, 0xc5, 0x20,
+ 0xcd, 0x85, 0xdf, 0x19, 0x0c, 0x06, 0xbe, 0xe4, 0x09, 0x6f, 0x8b, 0x7a,
+ 0x9c, 0x80, 0x9e, 0x1e, 0x20, 0xbc, 0x61, 0x8d, 0x37, 0x21, 0xc8, 0x43,
+ 0x98, 0xde, 0xd2, 0x70, 0x17, 0xb5, 0x46, 0xb8, 0xa3, 0x11, 0xd8, 0x34,
+ 0xba, 0xda, 0x6d, 0xd7, 0xb2, 0x3e, 0x6f, 0xdb, 0x36, 0xe1, 0x91, 0xb1,
+ 0x89, 0xad, 0xb1, 0x88, 0x01, 0x43, 0xe0, 0xf8, 0x54, 0xe6, 0xd6, 0x82,
+ 0x29, 0x98, 0xa1, 0x09, 0xa4, 0xde, 0x2b, 0xb6, 0x44, 0x16, 0x4d, 0x87,
+ 0xa2, 0xc5, 0x7c, 0x98, 0xc9, 0x65, 0xf7, 0xc8, 0xe4, 0x44, 0xbe, 0x28,
+ 0x47, 0x7f, 0xcc, 0xc5, 0x34, 0x60, 0x37, 0x88, 0xc3, 0x37, 0xb6, 0x76,
+ 0x26, 0x62, 0x9a, 0x65, 0x7d, 0x19, 0x72, 0xbf, 0x66, 0xbf, 0x68, 0x3e,
+ 0x7b, 0x11, 0x2b, 0x0e, 0x18, 0x89, 0x6d, 0xd9, 0x0c, 0x4e, 0x2e, 0x9d,
+ 0xbc, 0x37, 0x93, 0x70, 0x8c, 0x57, 0x5f, 0x32, 0xc2, 0x2d, 0x41, 0xc5,
+ 0xb8, 0x87, 0xe6, 0x04, 0x3f, 0xe6, 0x1d, 0x1f, 0x5b, 0x8b, 0xce, 0x35,
+ 0x5e, 0x5b, 0x1b, 0x7f, 0x2b, 0x57, 0x59, 0x17, 0xad, 0xa8, 0x58, 0x93,
+ 0x25, 0xf7, 0xd6, 0xf3, 0xbd, 0x28, 0xbe, 0xe7, 0xca, 0x3b, 0x44, 0x83,
+ 0xe2, 0x26, 0x13, 0x8b, 0xcc, 0x69, 0x60, 0x57, 0x74, 0x33, 0xb4, 0xd2,
+ 0xd6, 0xb1, 0xaf, 0x6d, 0x6d, 0xe0, 0xb7, 0x02, 0x68, 0x67, 0x06, 0xbc,
+ 0x14, 0xa5, 0x53, 0x18, 0x80, 0x4c, 0x05, 0x75, 0x53, 0xcd, 0x79, 0xe4,
+ 0xc4, 0xa2, 0x87, 0x4a, 0x37, 0x29, 0xa2, 0x01, 0xd9, 0xc6, 0x21, 0x51,
+ 0x14, 0xb6, 0x5a, 0x52, 0xd7, 0xdc, 0x3a, 0x71, 0xde, 0x68, 0x98, 0x9b,
+ 0x58, 0x9e, 0x9e, 0x67, 0xf3, 0xbe, 0xab, 0xa5, 0xe4, 0x22, 0xae, 0xf2,
+ 0xf4, 0xfa, 0x5a, 0x34, 0xb6, 0xa8, 0x3e, 0xb5, 0x76, 0x22, 0x3b, 0xe5,
+ 0x55, 0xe1, 0x90, 0xcd, 0xd5, 0xba, 0xd5, 0xbc, 0x74, 0x35, 0x5b, 0xd5,
+ 0xe2, 0x52, 0x21, 0x66, 0xf3, 0x40, 0xca, 0xbe, 0x95, 0xa8, 0x79, 0x83,
+ 0x34, 0x4b, 0x36, 0x7b, 0x55, 0x3d, 0xc6, 0x67, 0x17, 0xcc, 0xc4, 0x0a,
+ 0xb7, 0xe5, 0xdd, 0xc2, 0x6d, 0x3a, 0x00, 0x74, 0x7c, 0xbc, 0xc9, 0x84,
+ 0xed, 0xca, 0x33, 0xbe, 0x8a, 0xef, 0x5d, 0xb0, 0x93, 0x20, 0x0a, 0x8f,
+ 0x62, 0xaf, 0x71, 0x6d, 0x44, 0x15, 0xeb, 0x6e, 0x81, 0x1a, 0xdd, 0xca,
+ 0x87, 0xb2, 0xbb, 0xc4, 0xa3, 0x38, 0x79, 0x03, 0xa3, 0x07, 0xde, 0xd3,
+ 0xd3, 0xef, 0x98, 0x49, 0xcd, 0x9d, 0xeb, 0xf8, 0x15, 0x26, 0x59, 0x5b,
+ 0x95, 0x41, 0x14, 0x34, 0x29, 0x66, 0x92, 0x2c, 0x64, 0xf1, 0x32, 0x36,
+ 0xf5, 0x52, 0x5b, 0x8b, 0x1a, 0xcb, 0x8f, 0x1c, 0xf1, 0x40, 0x35, 0x11,
+ 0xcc, 0x5c, 0xa5, 0xaa, 0xc2, 0x45, 0xc6, 0x79, 0x6f, 0xaf, 0xcd, 0xb2,
+ 0xe3, 0x36, 0xa9, 0x83, 0x94, 0x93, 0x91, 0x12, 0x01, 0x68, 0x80, 0x05,
+ 0x3a, 0xe7, 0xb0, 0x3f, 0x98, 0xc6, 0x1c, 0xb2, 0x92, 0x49, 0x2c, 0x00,
+ 0xb6, 0x0c, 0x44, 0x0d, 0x43, 0x5a, 0x8d, 0xa7, 0x36, 0x8e, 0x9f, 0x8b,
+ 0xcd, 0x10, 0x5a, 0x03, 0x04, 0x1f, 0x37, 0x43, 0x54, 0x82, 0xa0, 0xdc,
+ 0xb1, 0x31, 0xf7, 0xc7, 0xd3, 0x2f, 0x47, 0x95, 0x33, 0xfa, 0xa1, 0x23,
+ 0x7b, 0x7e, 0x71, 0xf6, 0xd5, 0xc5, 0xf1, 0x70, 0x18, 0xbd, 0x39, 0xbe,
+ 0x14, 0x95, 0xff, 0x52, 0xe2, 0xe0, 0x04, 0x88, 0x19, 0x6e, 0x06, 0x43,
+ 0x83, 0xb0, 0x58, 0x13, 0xb3, 0x27, 0x00, 0x39, 0x36, 0x63, 0x17, 0x1a,
+ 0x44, 0x39, 0xa8, 0xf3, 0x53, 0x0d, 0x9f, 0xbb, 0x81, 0xa1, 0x1f, 0xc1,
+ 0x4c, 0xf0, 0x44, 0x3a, 0xbb, 0xb9, 0xb7, 0xa6, 0x42, 0x46, 0x96, 0xf0,
+ 0xa6, 0x1b, 0xe3, 0x5c, 0xde, 0x7a, 0xce, 0xb7, 0x37, 0xfd, 0xc4, 0xf4,
+ 0x7e, 0x1f, 0x5d, 0x5a, 0x61, 0xf2, 0xdf, 0x93, 0x1a, 0xac, 0xf4, 0xf1,
+ 0xfb, 0xe8, 0x7b, 0x6a, 0x73, 0x42, 0xab, 0xae, 0xc5, 0x26, 0x87, 0x28,
+ 0x28, 0xe2, 0x8b, 0xb6, 0xa0, 0xdc, 0x45, 0x58, 0x48, 0x68, 0x99, 0xe7,
+ 0x1f, 0x28, 0x6e, 0x8c, 0x84, 0x79, 0x01, 0x50, 0xd0, 0x60, 0x3a, 0xd7,
+ 0x33, 0xbf, 0x0d, 0x50, 0xd0, 0xd3, 0xe4, 0xaa, 0x84, 0x40, 0xc2, 0xdd,
+ 0x51, 0x73, 0x3b, 0x0c, 0xd5, 0xb8, 0xfb, 0x86, 0x3f, 0xda, 0x89, 0x9e,
+ 0x7c, 0xf6, 0x7c, 0xe7, 0x33, 0xf9, 0xd5, 0xfe, 0x7d, 0xf1, 0x74, 0x47,
+ 0x21, 0x4f, 0xe9, 0xaf, 0xa7, 0xfb, 0x4f, 0x77, 0xf7, 0x19, 0x8a, 0x69,
+ 0x67, 0x7f, 0x87, 0xfe, 0xff, 0xa9, 0x7e, 0xc2, 0x78, 0x53, 0x2f, 0xf6,
+ 0x3e, 0xfb, 0x14, 0x61, 0x30, 0x4c, 0x1f, 0x53, 0xea, 0xa4, 0x5f, 0x66,
+ 0x7d, 0xe0, 0x55, 0x40, 0x08, 0xfa, 0x7d, 0xd5, 0x20, 0xc9, 0x7e, 0x75,
+ 0x2e, 0x1a, 0xc9, 0x13, 0x77, 0xa5, 0xa8, 0xcd, 0xb8, 0x2a, 0x69, 0xfc,
+ 0x61, 0xb9, 0x5c, 0x37, 0x0d, 0x7d, 0x5b, 0x2a, 0x96, 0x02, 0x00, 0xa6,
+ 0xf2, 0x0e, 0x89, 0x8c, 0x92, 0x43, 0x15, 0xbe, 0xfc, 0x4b, 0xba, 0xb6,
+ 0x5c, 0xc3, 0x0d, 0x20, 0xc8, 0xe8, 0x56, 0xe9, 0x7b, 0x63, 0x59, 0x42,
+ 0xa2, 0x91, 0xa0, 0x0c, 0x6b, 0xad, 0x68, 0xea, 0x2f, 0xed, 0x4f, 0x0c,
+ 0x58, 0xfc, 0x96, 0x52, 0x43, 0xd4, 0xec, 0xcd, 0xaa, 0xc7, 0xb6, 0xf5,
+ 0x55, 0x21, 0x9e, 0x0d, 0xbf, 0xfd, 0x7e, 0xa5, 0x82, 0x2a, 0xab, 0x0e,
+ 0x3f, 0x45, 0x6a, 0xd7, 0xb4, 0x4c, 0xb9, 0xd1, 0xdc, 0xbb, 0x45, 0xd8,
+ 0xde, 0xc7, 0x34, 0xe7, 0x67, 0x04, 0x0a, 0x76, 0x3b, 0xd7, 0x0f, 0x36,
+ 0x27, 0x95, 0x88, 0x36, 0x57, 0x18, 0xd5, 0x30, 0xc0, 0x5c, 0xf5, 0x44,
+ 0xbc, 0xea, 0x48, 0xb6, 0x2f, 0x6f, 0xa8, 0xf8, 0x59, 0x20, 0x33, 0x48,
+ 0x04, 0x85, 0xbb, 0x0c, 0xb7, 0xbd, 0x3c, 0x6f, 0x94, 0xdd, 0xe8, 0x8a,
+ 0xa9, 0x31, 0xe8, 0x4f, 0xfb, 0xc0, 0x79, 0x72, 0x87, 0xee, 0xd1, 0xa9,
+ 0xf9, 0xe0, 0x76, 0x57, 0xb9, 0x67, 0xd3, 0x05, 0x8b, 0xb7, 0x1d, 0x49,
+ 0xff, 0x1c, 0xe2, 0xc7, 0x5d, 0x73, 0xe1, 0x45, 0x84, 0xb2, 0x4d, 0x8a,
+ 0xda, 0xcc, 0xd0, 0x62, 0x0c, 0xc4, 0xbb, 0x65, 0x2c, 0xac, 0xff, 0x89,
+ 0x8b, 0xd7, 0xc2, 0xbd, 0xa6, 0xe0, 0xf3, 0xb1, 0x50, 0xfe, 0x34, 0x4c,
+ 0x2b, 0xab, 0xc0, 0xce, 0x87, 0x80, 0xb7, 0x1b, 0x52, 0x47, 0x99, 0x6e,
+ 0x5a, 0xba, 0x39, 0x82, 0x12, 0x65, 0xbf, 0xdb, 0xd8, 0x18, 0x9e, 0x1f,
+ 0x1f, 0x1f, 0x45, 0xa7, 0x27, 0x6f, 0x4e, 0x2e, 0x03, 0x81, 0xdc, 0x5d,
+ 0x24, 0x66, 0x70, 0x2d, 0xac, 0x4e, 0x4d, 0x75, 0x39, 0x3c, 0xc2, 0xa2,
+ 0xf4, 0x67, 0x57, 0xf9, 0x2c, 0xd1, 0x34, 0x86, 0x69, 0xfd, 0x3d, 0xa8,
+ 0xde, 0x00, 0xaa, 0x40, 0x2d, 0x11, 0x2f, 0xd0, 0x15, 0x24, 0xdc, 0x8c,
+ 0x5d, 0x45, 0xa3, 0xfe, 0x0f, 0x1a, 0xa0, 0x51, 0x95, 0x9c, 0x14, 0x28,
+ 0xce, 0x15, 0xac, 0xd2, 0xa0, 0xd6, 0xda, 0xa8, 0x78, 0x6d, 0x93, 0xa9,
+ 0x16, 0x4d, 0x75, 0x16, 0x3a, 0xc4, 0xeb, 0xdd, 0x27, 0x48, 0x88, 0x9d,
+ 0xa5, 0x02, 0x57, 0x1d, 0x06, 0x13, 0xbb, 0x0a, 0x31, 0x97, 0x99, 0xf0,
+ 0xf1, 0xb0, 0xc7, 0xb0, 0x78, 0x97, 0x45, 0xd2, 0x5a, 0x5f, 0x61, 0x59,
+ 0xa8, 0x27, 0x3b, 0x2e, 0x5f, 0x60, 0x01, 0x9e, 0xa3, 0xa2, 0x3e, 0x77,
+ 0xb6, 0x1b, 0x91, 0x3c, 0xb2, 0x64, 0xa9, 0x3e, 0x5f, 0xce, 0x1b, 0xd7,
+ 0xdd, 0x0f, 0xf2, 0x2e, 0xcd, 0xff, 0xf9, 0x0e, 0xae, 0xb7, 0xab, 0x38,
+ 0xef, 0x93, 0xe4, 0xb5, 0xea, 0x9b, 0x71, 0x55, 0x28, 0x42, 0x03, 0x8d,
+ 0xc5, 0xf4, 0x93, 0xf8, 0x7a, 0x26, 0x35, 0x69, 0xd1, 0x27, 0x7d, 0x64,
+ 0x70, 0x49, 0x4e, 0xf5, 0x00, 0xf0, 0xd4, 0x7b, 0x11, 0xaa, 0x71, 0xbb,
+ 0xd0, 0x67, 0x91, 0x75, 0x3c, 0x88, 0xa0, 0xed, 0xa2, 0xe7, 0x51, 0xa8,
+ 0xf0, 0x9a, 0xa9, 0x73, 0x28, 0xe5, 0x69, 0xea, 0x5c, 0x9a, 0xa2, 0xf5,
+ 0x2c, 0xda, 0xfd, 0x8c, 0xe7, 0xf1, 0x71, 0xf3, 0xe1, 0xba, 0x1d, 0x16,
+ 0xc5, 0x26, 0xea, 0x42, 0xe6, 0x77, 0x53, 0xf2, 0x12, 0x80, 0xcc, 0x2e,
+ 0xab, 0x6b, 0xd1, 0xb0, 0x88, 0xd6, 0x63, 0xfd, 0x44, 0x5d, 0xe9, 0xb0,
+ 0x4c, 0xc1, 0xb7, 0x2d, 0x12, 0x12, 0x2a, 0x54, 0xca, 0xba, 0xb0, 0xad,
+ 0x55, 0xa2, 0xf5, 0xba, 0xb9, 0xcf, 0x98, 0xc3, 0x32, 0xb0, 0x75, 0x84,
+ 0x68, 0xed, 0x3e, 0x9d, 0x40, 0xaa, 0x36, 0x23, 0x00, 0xe8, 0x4f, 0x88,
+ 0x4f, 0x82, 0xa4, 0xe1, 0xba, 0x84, 0xcf, 0xd3, 0x8d, 0x4c, 0x05, 0x18,
+ 0x5e, 0xd6, 0x0c, 0xc6, 0x85, 0x4d, 0xc8, 0x0f, 0x5c, 0x72, 0xa6, 0xea,
+ 0x1a, 0x60, 0xd6, 0xdc, 0xf1, 0xbd, 0x70, 0xe0, 0x7e, 0x59, 0x4e, 0xcd,
+ 0xae, 0xe0, 0x6b, 0x4a, 0x54, 0xe7, 0xcc, 0xc9, 0xfc, 0xc1, 0xb4, 0x77,
+ 0x77, 0x48, 0x7e, 0x9d, 0x66, 0xf5, 0xe2, 0x73, 0x4d, 0xa5, 0x14, 0xd3,
+ 0xea, 0x63, 0x75, 0x76, 0x77, 0xbe, 0x59, 0xbf, 0xea, 0x00, 0xa4, 0x7d,
+ 0xf4, 0xe5, 0xbd, 0xa7, 0x8f, 0x6c, 0xda, 0x59, 0xee, 0xaa, 0x09, 0x79,
+ 0xa0, 0x11, 0xef, 0x80, 0x69, 0x6c, 0x1b, 0x11, 0x7e, 0x72, 0x1d, 0xa3,
+ 0xdc, 0xfc, 0x23, 0xa3, 0xb7, 0x04, 0x8d, 0xda, 0x50, 0xde, 0x68, 0x38,
+ 0xb6, 0x7c, 0x59, 0xb0, 0x85, 0x6c, 0x01, 0xb8, 0x21, 0xaf, 0xc6, 0xba,
+ 0x94, 0x4e, 0xc9, 0xf1, 0x0e, 0xde, 0x16, 0xce, 0xd9, 0xab, 0x32, 0x09,
+ 0xa3, 0x9e, 0x3c, 0xb9, 0x5e, 0x4a, 0x12, 0x75, 0x26, 0x6a, 0x3f, 0x63,
+ 0x4f, 0xea, 0x79, 0x25, 0xde, 0xcc, 0x91, 0x43, 0x42, 0x4f, 0x60, 0xbc,
+ 0xe3, 0xd8, 0x44, 0x56, 0x11, 0x39, 0xea, 0x17, 0x03, 0xdb, 0x67, 0xc7,
+ 0xec, 0x0c, 0x03, 0x37, 0x90, 0xe3, 0x15, 0x96, 0xb5, 0x12, 0xe8, 0xa7,
+ 0x01, 0x32, 0x14, 0x85, 0x50, 0x1c, 0xb3, 0xe7, 0xbc, 0x2e, 0x76, 0x8a,
+ 0x95, 0xe2, 0x21, 0x40, 0x03, 0x3d, 0xa5, 0x5a, 0xb4, 0xe4, 0xba, 0x62,
+ 0x8e, 0x5f, 0x58, 0x0a, 0xaa, 0x40, 0xe2, 0xb2, 0xdd, 0xff, 0xf0, 0xec,
+ 0xed, 0xeb, 0x93, 0xaf, 0x1c, 0xb0, 0x85, 0x30, 0xf1, 0x65, 0x99, 0xb1,
+ 0x5d, 0x53, 0x8c, 0x86, 0xae, 0xe0, 0x98, 0x73, 0x78, 0x6b, 0x55, 0x11,
+ 0x0d, 0xbb, 0x25, 0xf6, 0xf4, 0x3e, 0xfc, 0x00, 0x0c, 0x64, 0xfe, 0x84,
+ 0x6d, 0xe5, 0x92, 0x3d, 0x5e, 0x6c, 0x79, 0xcb, 0x43, 0x0d, 0x7a, 0x47,
+ 0xd2, 0x33, 0xe2, 0xbc, 0x5c, 0x2e, 0x5c, 0xf4, 0x60, 0x50, 0x95, 0x44,
+ 0xc1, 0x32, 0xf9, 0x56, 0xe0, 0xea, 0xd8, 0xcb, 0x85, 0xb0, 0x26, 0x89,
+ 0x7a, 0xac, 0x1a, 0x76, 0xe5, 0x0e, 0x60, 0xcb, 0x82, 0xa6, 0xdb, 0xeb,
+ 0x05, 0xd0, 0x08, 0xc9, 0x99, 0x32, 0xf6, 0x57, 0x18, 0x28, 0x6f, 0xae,
+ 0x1c, 0x2e, 0x49, 0x26, 0x13, 0xb5, 0x82, 0x52, 0x33, 0xd1, 0xcc, 0x78,
+ 0xde, 0x52, 0xa7, 0xf6, 0x07, 0x57, 0xb1, 0x57, 0xc3, 0x7e, 0xbd, 0xab,
+ 0xa8, 0x70, 0xe5, 0x57, 0x5d, 0x68, 0x92, 0x0c, 0x16, 0x21, 0x84, 0x45,
+ 0x4f, 0x5c, 0x9e, 0xf8, 0xe4, 0x15, 0x7b, 0x68, 0xf6, 0x07, 0x28, 0xea,
+ 0x89, 0xf8, 0x9d, 0xb0, 0xde, 0x96, 0x72, 0x49, 0x0f, 0xec, 0x7a, 0x72,
+ 0x15, 0xa4, 0x94, 0x49, 0x88, 0xa0, 0x11, 0x9d, 0x98, 0x8b, 0xd9, 0xd6,
+ 0xd2, 0xfd, 0xa4, 0xdb, 0x2f, 0x56, 0xb3, 0x51, 0x36, 0xb5, 0x8c, 0x0b,
+ 0x97, 0x54, 0x6d, 0x0f, 0x95, 0x34, 0x0d, 0xc4, 0x0c, 0x4a, 0x81, 0x45,
+ 0x74, 0x1d, 0x58, 0x28, 0x7d, 0x98, 0x94, 0x1f, 0xbf, 0x54, 0x12, 0x80,
+ 0xa7, 0xc8, 0x66, 0xe1, 0x32, 0xfc, 0x93, 0xf9, 0x78, 0x9a, 0x29, 0x55,
+ 0x73, 0x62, 0x2c, 0x56, 0xaa, 0x3a, 0x75, 0xf6, 0xfd, 0x65, 0x4b, 0x36,
+ 0x76, 0x00, 0x25, 0x9c, 0xc4, 0x1d, 0x36, 0x0e, 0x7f, 0x67, 0x13, 0xe4,
+ 0xb7, 0xe5, 0x0b, 0x0d, 0xc7, 0x37, 0x68, 0x04, 0x6a, 0x48, 0x60, 0xc5,
+ 0x69, 0xa8, 0x7f, 0x11, 0xdb, 0xa2, 0x78, 0x00, 0x7f, 0xb0, 0xce, 0xed,
+ 0xd1, 0xda, 0xd2, 0x13, 0x3d, 0xc5, 0xf9, 0xb5, 0x62, 0x0e, 0xa9, 0x53,
+ 0x0d, 0x4a, 0xa2, 0x03, 0x7b, 0x77, 0x36, 0x4a, 0x16, 0x4a, 0x5c, 0xb8,
+ 0x0c, 0xc4, 0xa7, 0xa5, 0x24, 0xf5, 0x69, 0xfa, 0x93, 0x58, 0x27, 0x1d,
+ 0x21, 0x06, 0x1c, 0xe7, 0x13, 0x17, 0x92, 0x12, 0xfb, 0xbb, 0xcc, 0x50,
+ 0xa8, 0xbd, 0xa9, 0x56, 0x2f, 0xb3, 0xe0, 0x35, 0xb6, 0xe7, 0x41, 0x13,
+ 0x4e, 0xd4, 0x86, 0x22, 0x5d, 0x41, 0x96, 0x60, 0xc0, 0x2d, 0x64, 0xfd,
+ 0x24, 0x85, 0x6f, 0x42, 0xbe, 0x7f, 0xa5, 0x29, 0xe6, 0x74, 0x9e, 0x15,
+ 0x34, 0x40, 0xc1, 0x90, 0x3e, 0xdb, 0x51, 0x4b, 0x5c, 0xa9, 0x71, 0xaa,
+ 0x45, 0x74, 0x70, 0x71, 0x4c, 0x92, 0xed, 0xf5, 0x1c, 0x49, 0xe1, 0x3c,
+ 0xc2, 0x52, 0xf7, 0x07, 0x82, 0x35, 0xaf, 0x82, 0x9e, 0x0f, 0xee, 0xf0,
+ 0x3e, 0x78, 0x93, 0x89, 0x49, 0xe3, 0x03, 0xe8, 0x90, 0xb9, 0x00, 0x34,
+ 0x26, 0xb9, 0xb1, 0x01, 0x13, 0x82, 0xeb, 0x70, 0x76, 0xb7, 0x90, 0x14,
+ 0x7b, 0x4b, 0xa8, 0xab, 0xcc, 0x40, 0x09, 0xcf, 0x1b, 0x6c, 0x3d, 0x44,
+ 0x23, 0xb4, 0xb5, 0xc6, 0xa9, 0xf6, 0x39, 0x08, 0x7f, 0x33, 0x9c, 0x31,
+ 0xed, 0xab, 0xe2, 0x01, 0xf5, 0xe4, 0xd4, 0x6b, 0xb7, 0x1e, 0xfd, 0x0d,
+ 0xf7, 0x0c, 0xcb, 0x22, 0x75, 0xb9, 0x20, 0x71, 0xa1, 0xf5, 0x62, 0xc8,
+ 0x9e, 0x04, 0xc2, 0xaf, 0xe4, 0xe3, 0x71, 0x70, 0xb5, 0xd8, 0xa8, 0x59,
+ 0xf8, 0x89, 0x8b, 0xc4, 0xaa, 0x47, 0x41, 0x1d, 0x98, 0xe8, 0x59, 0x65,
+ 0xaa, 0xe0, 0x38, 0xe1, 0x11, 0x03, 0x6d, 0xdc, 0x8a, 0x00, 0x10, 0xf2,
+ 0xa7, 0x56, 0x33, 0xef, 0x27, 0x6e, 0xb6, 0x7e, 0x0c, 0xee, 0x4b, 0xfe,
+ 0xe8, 0x95, 0xc3, 0x1d, 0xe2, 0x51, 0x0c, 0xb8, 0x23, 0xb0, 0x54, 0xb8,
+ 0x4f, 0xf9, 0x17, 0x7c, 0x8c, 0x80, 0x37, 0x43, 0x6f, 0xab, 0x60, 0x87,
+ 0x28, 0xbc, 0x7d, 0x38, 0x10, 0xf1, 0xf1, 0x81, 0x43, 0x8f, 0x42, 0xd1,
+ 0x38, 0xa8, 0xe8, 0xc4, 0xa6, 0x1c, 0xce, 0xe0, 0xb5, 0x03, 0x5f, 0x24,
+ 0x95, 0x0a, 0x50, 0x2e, 0x45, 0xa8, 0xd3, 0xef, 0xd0, 0x5a, 0x74, 0xa7,
+ 0x53, 0xcf, 0xf0, 0xed, 0x31, 0xde, 0x55, 0x64, 0xd3, 0x79, 0x81, 0x49,
+ 0x79, 0x17, 0x63, 0x67, 0xaf, 0x2a, 0xb9, 0x0d, 0x5c, 0x7b, 0x84, 0x53,
+ 0x7f, 0x1c, 0xf6, 0x0b, 0xf2, 0x43, 0x10, 0x2e, 0x70, 0x97, 0x16, 0xe6,
+ 0x87, 0x24, 0xda, 0x1e, 0x6b, 0x6c, 0x84, 0x24, 0x52, 0x27, 0xe5, 0x38,
+ 0x58, 0xca, 0x64, 0x7c, 0x93, 0x49, 0x38, 0x2d, 0x2d, 0x5a, 0x90, 0x76,
+ 0xd9, 0x89, 0xfe, 0x4b, 0x69, 0xe0, 0x1b, 0x9f, 0xad, 0xc7, 0x84, 0x30,
+ 0x10, 0x54, 0xad, 0x81, 0x27, 0x88, 0xe3, 0xef, 0x2f, 0x2f, 0x0e, 0xa2,
+ 0xaf, 0x8f, 0x0f, 0x8e, 0x8e, 0x2f, 0x86, 0xb5, 0x4b, 0x5f, 0xa3, 0x40,
+ 0x44, 0x42, 0x63, 0x7b, 0x30, 0x44, 0x63, 0xcb, 0xf9, 0xd7, 0x80, 0x7d,
+ 0xe3, 0x7a, 0xf1, 0x0a, 0x07, 0x89, 0xce, 0x07, 0x2b, 0x44, 0xe2, 0x38,
+ 0x00, 0x82, 0x62, 0x01, 0x66, 0xe3, 0xda, 0xd0, 0x32, 0xc7, 0xce, 0x7a,
+ 0x1e, 0xa6, 0xca, 0x78, 0x38, 0x27, 0x7f, 0x99, 0x4c, 0x32, 0xcb, 0x02,
+ 0xac, 0xee, 0xdc, 0xd7, 0x3e, 0xe1, 0x3a, 0x60, 0x5b, 0x7a, 0xc9, 0xa8,
+ 0x01, 0xb1, 0xf3, 0x7d, 0x9f, 0xfa, 0xed, 0xd3, 0xe2, 0xf7, 0x19, 0x71,
+ 0x6b, 0x95, 0x14, 0x9d, 0x9a, 0x35, 0xb0, 0xda, 0xfd, 0x86, 0x14, 0xf3,
+ 0x6c, 0x9c, 0xa4, 0xaf, 0x5b, 0x5b, 0xe2, 0xd3, 0x35, 0xe5, 0x2a, 0x08,
+ 0x75, 0x0d, 0x02, 0x97, 0x6a, 0x20, 0x24, 0xeb, 0x09, 0x6a, 0xe4, 0xb5,
+ 0x68, 0x9c, 0x92, 0x57, 0x33, 0x35, 0x2c, 0x0c, 0x03, 0xd1, 0x29, 0x40,
+ 0xd6, 0x49, 0x4b, 0xbd, 0xd4, 0x61, 0x17, 0x31, 0x38, 0x48, 0x1a, 0x96,
+ 0x3e, 0x14, 0xde, 0x0f, 0xf0, 0x85, 0x68, 0x80, 0x7e, 0x51, 0x71, 0x95,
+ 0xaa, 0x5d, 0x54, 0x0b, 0xf1, 0x68, 0x73, 0x3c, 0x06, 0x47, 0xf3, 0x16,
+ 0xd7, 0xcf, 0x5d, 0x1a, 0x08, 0xb8, 0xbe, 0x2b, 0xc1, 0x60, 0xac, 0xd4,
+ 0xc3, 0xd4, 0xc9, 0xe1, 0x66, 0xb2, 0xf1, 0x26, 0xaf, 0x06, 0x49, 0x40,
+ 0x21, 0x31, 0xa3, 0x60, 0x09, 0x02, 0xc7, 0xdd, 0x73, 0x49, 0xf4, 0x75,
+ 0x56, 0xe0, 0x2e, 0x68, 0x3e, 0xce, 0x97, 0x7c, 0xdb, 0xf2, 0xe3, 0x0d,
+ 0x75, 0x75, 0x39, 0xc8, 0x3b, 0x60, 0x44, 0x82, 0x7d, 0x9d, 0x1f, 0x5c,
+ 0x7e, 0x0d, 0x47, 0x2b, 0x48, 0xf8, 0x08, 0x48, 0x0f, 0xe6, 0x5e, 0x6b,
+ 0xe6, 0x62, 0x39, 0x05, 0x4e, 0xe4, 0x5f, 0xc3, 0xee, 0x32, 0x79, 0x12,
+ 0x8e, 0x3c, 0x98, 0x28, 0x01, 0x05, 0x94, 0xaa, 0xe1, 0xb1, 0x5a, 0x46,
+ 0x07, 0x51, 0xef, 0x2e, 0xd1, 0xce, 0x85, 0x5d, 0x76, 0x25, 0x13, 0xbd,
+ 0x2b, 0x73, 0x02, 0xd1, 0xb3, 0x30, 0xc7, 0x1a, 0x4f, 0x88, 0xa4, 0x88,
+ 0x2f, 0xae, 0x34, 0xc5, 0xb6, 0x47, 0x7b, 0xda, 0x0e, 0x8d, 0x15, 0x1c,
+ 0xe9, 0x2f, 0x66, 0xab, 0x41, 0x13, 0x37, 0x24, 0xfa, 0x72, 0x59, 0x56,
+ 0xd9, 0x4a, 0x0d, 0xcf, 0xd1, 0x49, 0x96, 0x79, 0x96, 0x95, 0x55, 0x44,
+ 0x44, 0xac, 0x8e, 0x9c, 0x68, 0xc1, 0x40, 0x93, 0xb1, 0x70, 0x53, 0x73,
+ 0x95, 0xbb, 0x43, 0xc1, 0x30, 0x1e, 0x15, 0xd9, 0x74, 0x59, 0x06, 0x81,
+ 0xd7, 0xbf, 0x6c, 0xcc, 0xc1, 0xa0, 0x37, 0x4f, 0x06, 0x89, 0x11, 0x14,
+ 0x47, 0x0e, 0xe7, 0x31, 0x69, 0xfa, 0x5c, 0xf1, 0x96, 0xfd, 0x8e, 0x79,
+ 0x36, 0xaf, 0x56, 0x7a, 0x41, 0x8c, 0xf7, 0xd6, 0xc6, 0xc6, 0xd0, 0x36,
+ 0x9b, 0xc1, 0xf7, 0x9a, 0x9b, 0x0e, 0x9c, 0x08, 0x20, 0xfc, 0x89, 0xdf,
+ 0x60, 0x4c, 0xbf, 0x18, 0x1e, 0x52, 0x22, 0x7b, 0x0a, 0x16, 0x2e, 0x7b,
+ 0x9c, 0x16, 0xd5, 0x49, 0xe1, 0x2b, 0xe7, 0xb9, 0xb0, 0xc4, 0xb2, 0xcb,
+ 0xcc, 0x40, 0x81, 0xd5, 0x73, 0xe7, 0x09, 0xa2, 0x92, 0x9a, 0xde, 0x8a,
+ 0x98, 0xc9, 0x97, 0x80, 0x82, 0x73, 0xf9, 0xa8, 0x5c, 0x1e, 0xe4, 0xf6,
+ 0x7f, 0x6f, 0x47, 0x3d, 0x81, 0xb9, 0x69, 0x01, 0x1b, 0x59, 0x46, 0xff,
+ 0x0f, 0x42, 0xb0, 0x14, 0xac, 0x90, 0xdb, 0xac, 0x21, 0xfc, 0x0d, 0x48,
+ 0x85, 0xba, 0xc9, 0xc7, 0x9e, 0xfa, 0x49, 0x3a, 0x48, 0xee, 0x59, 0x7f,
+ 0x31, 0x1d, 0x81, 0xbf, 0xb0, 0x2c, 0x53, 0x0f, 0x1c, 0x03, 0xbc, 0x8b,
+ 0x2b, 0x67, 0xd5, 0xe3, 0x22, 0x59, 0x52, 0x32, 0x4a, 0xc4, 0x7a, 0x54,
+ 0x4c, 0x30, 0x0f, 0xea, 0x46, 0x54, 0xd1, 0xdb, 0x8b, 0xa8, 0xc8, 0xe4,
+ 0xa7, 0x65, 0x1b, 0x69, 0x8c, 0x97, 0x92, 0xbf, 0xaa, 0x51, 0x5a, 0x9d,
+ 0x46, 0x4b, 0xb6, 0x59, 0xdc, 0xa9, 0x84, 0xd5, 0x99, 0x63, 0xd2, 0xc6,
+ 0x68, 0x42, 0x00, 0xfb, 0x2d, 0x01, 0x7c, 0x86, 0xcb, 0xa6, 0xf0, 0x45,
+ 0x60, 0x91, 0xac, 0xcd, 0x15, 0x96, 0x4c, 0x91, 0xb1, 0x1b, 0xd5, 0x12,
+ 0x38, 0xdc, 0x46, 0xf9, 0xd1, 0xeb, 0xd5, 0x8f, 0x84, 0x78, 0xf8, 0xe8,
+ 0xee, 0xe3, 0xb4, 0x0c, 0x25, 0x02, 0x9b, 0x11, 0x69, 0x78, 0x0a, 0xcd,
+ 0x3f, 0x5a, 0x55, 0x42, 0x53, 0x7c, 0xdc, 0xe6, 0x35, 0xe7, 0x77, 0xa8,
+ 0x45, 0x4a, 0xb1, 0x44, 0x60, 0xfe, 0xba, 0x49, 0x35, 0xba, 0x54, 0x16,
+ 0xdd, 0xcc, 0x81, 0x6c, 0xcf, 0x80, 0x79, 0x8f, 0x43, 0x0b, 0xbc, 0x77,
+ 0xd5, 0x05, 0x40, 0x0c, 0x9a, 0xa7, 0x65, 0xe0, 0x50, 0xf7, 0xf4, 0x06,
+ 0x39, 0x09, 0x33, 0xc9, 0xb1, 0x2a, 0x2e, 0xdc, 0xf9, 0xa3, 0xba, 0x0e,
+ 0xfb, 0xe3, 0x28, 0xd6, 0x79, 0xe4, 0xd7, 0xa3, 0x90, 0xab, 0x64, 0x6f,
+ 0x17, 0x2a, 0xa9, 0x04, 0x6e, 0x00, 0xc4, 0xce, 0x4a, 0x77, 0x55, 0x2a,
+ 0xad, 0x04, 0xeb, 0x8e, 0xda, 0xa0, 0xc0, 0x48, 0xb4, 0x24, 0x7b, 0xf5,
+ 0x33, 0x8b, 0x44, 0x18, 0x78, 0x9c, 0x2a, 0x25, 0x5e, 0x24, 0x71, 0xbb,
+ 0x28, 0xf3, 0xe5, 0xb8, 0x02, 0x58, 0x05, 0x62, 0xa8, 0xf8, 0xe7, 0xdd,
+ 0xf2, 0x66, 0xa1, 0x56, 0xbf, 0x19, 0x57, 0xd2, 0x58, 0xf4, 0xc9, 0xb0,
+ 0x8b, 0x2d, 0x29, 0x79, 0xaa, 0x05, 0x9f, 0xa1, 0x9d, 0xd0, 0xf8, 0x1d,
+ 0x81, 0xf5, 0xcf, 0x5d, 0x12, 0x7d, 0x05, 0xf7, 0x4b, 0x52, 0x12, 0x82,
+ 0x5b, 0x57, 0x45, 0x30, 0x88, 0x1c, 0x79, 0xa4, 0x08, 0x64, 0x10, 0x68,
+ 0xd8, 0x58, 0xb9, 0xe1, 0x50, 0xc2, 0xa8, 0xbb, 0xbe, 0xaf, 0x71, 0x4a,
+ 0xfd, 0x6d, 0xd3, 0x42, 0x5a, 0x91, 0x01, 0x57, 0xc2, 0xa2, 0xf0, 0x48,
+ 0x63, 0xb5, 0x58, 0xd5, 0x64, 0x4a, 0x53, 0x76, 0x92, 0xa1, 0x9c, 0xc4,
+ 0x99, 0xae, 0xdf, 0xc0, 0x55, 0x1d, 0xb5, 0xd2, 0xae, 0x35, 0x41, 0xa2,
+ 0x79, 0x2b, 0x9e, 0x0b, 0x0a, 0x49, 0x83, 0x88, 0x8e, 0xcc, 0x9a, 0x0a,
+ 0x66, 0x83, 0x05, 0x63, 0x9d, 0xc6, 0x36, 0xe9, 0xe4, 0xdc, 0x75, 0x41,
+ 0x43, 0xe0, 0x19, 0x77, 0xa7, 0xc9, 0x4e, 0x37, 0xa8, 0xc1, 0xb1, 0x29,
+ 0x51, 0xff, 0x19, 0xf4, 0x1e, 0xb6, 0x1c, 0x62, 0x82, 0x62, 0xb7, 0xe0,
+ 0x08, 0xb7, 0xad, 0x96, 0xa1, 0x50, 0x13, 0xbf, 0x74, 0x30, 0xbb, 0x2f,
+ 0xf6, 0x06, 0xbb, 0xcf, 0x3f, 0x1b, 0xec, 0x0c, 0x76, 0x77, 0x98, 0xb3,
+ 0xf0, 0x50, 0x82, 0xc1, 0xc9, 0xba, 0xb4, 0x74, 0x55, 0x79, 0xaf, 0xd9,
+ 0xe7, 0xdb, 0xe3, 0xcb, 0xef, 0xce, 0x2e, 0xbe, 0x89, 0x4e, 0xde, 0x5e,
+ 0x1e, 0x5f, 0xbc, 0x3e, 0x38, 0xfc, 0x58, 0xe8, 0xe1, 0xd0, 0x60, 0x1d,
+ 0x14, 0x5d, 0x4c, 0xfc, 0xc2, 0x34, 0xad, 0x82, 0x7e, 0xcd, 0x92, 0xf2,
+ 0x66, 0x67, 0x7f, 0xf7, 0x51, 0xbc, 0xd2, 0x16, 0xc3, 0xa0, 0x7f, 0xdf,
+ 0x26, 0xb5, 0xcb, 0x93, 0x5a, 0xdf, 0x8a, 0x43, 0x41, 0x1b, 0x4a, 0x80,
+ 0x95, 0x0b, 0xce, 0x05, 0x83, 0x47, 0x01, 0x86, 0x74, 0x94, 0xc7, 0x66,
+ 0x92, 0x1a, 0x09, 0x68, 0xa2, 0x64, 0xd4, 0x2a, 0xbe, 0x8b, 0x06, 0xa1,
+ 0x2b, 0xbb, 0xe5, 0x18, 0xe5, 0x65, 0x3a, 0x2d, 0xd5, 0x90, 0x22, 0x18,
+ 0x88, 0x13, 0x08, 0x77, 0xc6, 0x90, 0xad, 0x08, 0x31, 0x6a, 0x10, 0xa3,
+ 0x08, 0x99, 0x14, 0x21, 0x9e, 0xb8, 0x44, 0x11, 0x07, 0x3c, 0x50, 0x49,
+ 0xb7, 0xc1, 0x58, 0xab, 0x35, 0x2a, 0xc3, 0x18, 0xda, 0x1a, 0x00, 0x61,
+ 0x61, 0xb1, 0xcd, 0x98, 0x58, 0xc5, 0x28, 0x7a, 0xa8, 0x03, 0xc1, 0x69,
+ 0x08, 0x46, 0x23, 0x5d, 0x41, 0x94, 0x32, 0xd0, 0xdb, 0x2a, 0x7c, 0xa6,
+ 0xdc, 0x4e, 0x48, 0x9e, 0x10, 0xc9, 0xcf, 0xf0, 0xb9, 0xb9, 0xf5, 0xa2,
+ 0x02, 0xab, 0x16, 0x49, 0x51, 0x8c, 0xf0, 0x75, 0x11, 0xb2, 0x11, 0xa2,
+ 0x39, 0xc9, 0xe3, 0x7b, 0x20, 0xbb, 0xa7, 0x1e, 0x80, 0x6f, 0xa3, 0x5a,
+ 0xd8, 0x83, 0x45, 0x26, 0xbf, 0xe6, 0xd1, 0xf9, 0xf1, 0x9b, 0xbe, 0xd5,
+ 0xfc, 0xa3, 0xdf, 0xc5, 0x0c, 0x65, 0xb0, 0x9b, 0x92, 0xdc, 0xb3, 0x48,
+ 0xe6, 0x16, 0x50, 0x03, 0x9e, 0xa8, 0x11, 0x40, 0xe1, 0x04, 0xf8, 0xd0,
+ 0x88, 0x45, 0x42, 0x78, 0xad, 0xe2, 0x97, 0xd9, 0xa5, 0xd5, 0x82, 0x80,
+ 0xc7, 0xfb, 0xa9, 0x51, 0xcb, 0xd1, 0xa6, 0x8b, 0xd4, 0xe5, 0xfe, 0x10,
+ 0x8e, 0x8a, 0x68, 0x01, 0x17, 0x20, 0x90, 0x59, 0xb2, 0xf5, 0xf9, 0x37,
+ 0x87, 0xc3, 0x4f, 0x76, 0xf7, 0x74, 0x38, 0x5b, 0x03, 0x0f, 0x67, 0xd9,
+ 0xc8, 0xc3, 0x07, 0xbb, 0x0e, 0xc7, 0x68, 0x59, 0xd5, 0x38, 0xe0, 0xd8,
+ 0x8c, 0x4d, 0x97, 0x19, 0xb4, 0x55, 0x49, 0x0d, 0xda, 0x90, 0x4a, 0xab,
+ 0x26, 0x5c, 0xba, 0x9a, 0x7c, 0xec, 0x0c, 0x41, 0x65, 0x09, 0xad, 0xed,
+ 0x50, 0xba, 0x78, 0xbf, 0x78, 0x6e, 0x1f, 0x49, 0xcb, 0xda, 0x1a, 0xd2,
+ 0xc6, 0x7d, 0x4c, 0x4b, 0x7d, 0xcf, 0x79, 0xbd, 0xfd, 0xb7, 0x8c, 0x9a,
+ 0xa8, 0x97, 0xba, 0xe1, 0xf2, 0xf8, 0x6e, 0x70, 0x00, 0x34, 0x84, 0x7d,
+ 0x62, 0xd5, 0x63, 0xe6, 0x1e, 0xd0, 0x9d, 0x9f, 0x3e, 0xa3, 0x8d, 0xa2,
+ 0x93, 0x25, 0x50, 0x0d, 0xcc, 0x14, 0xb2, 0x29, 0x2b, 0x2d, 0xee, 0x91,
+ 0xa3, 0x9c, 0x81, 0xf3, 0x17, 0x12, 0x4c, 0xfa, 0x76, 0x10, 0x7d, 0x9d,
+ 0xcc, 0x0b, 0xad, 0xcc, 0x6c, 0xc9, 0x57, 0x08, 0x0e, 0xe4, 0x02, 0x51,
+ 0x28, 0xe7, 0x73, 0x9a, 0xc4, 0x0a, 0x22, 0x48, 0xbc, 0xae, 0x10, 0xdd,
+ 0xd6, 0x4a, 0x59, 0xc4, 0x1c, 0xa2, 0x87, 0x9b, 0x48, 0x0d, 0xb4, 0xa8,
+ 0xe7, 0x98, 0x16, 0xda, 0xc0, 0x66, 0x15, 0x0a, 0x10, 0xd0, 0xd4, 0x68,
+ 0x4e, 0x8f, 0x39, 0xbc, 0x4c, 0x6a, 0x4f, 0xbe, 0x01, 0xd6, 0x2a, 0xdb,
+ 0x09, 0x45, 0xd7, 0xf2, 0x4c, 0x65, 0x92, 0xdf, 0xb0, 0xd1, 0xa3, 0xa0,
+ 0xeb, 0x26, 0x9e, 0x8f, 0x57, 0x83, 0x09, 0x49, 0xb1, 0x6c, 0x36, 0x1b,
+ 0x2c, 0x6f, 0xb7, 0x83, 0x63, 0xca, 0x2c, 0xff, 0x46, 0x60, 0x01, 0xaa,
+ 0x26, 0x6f, 0xab, 0x45, 0xd8, 0x44, 0xed, 0x8a, 0x2b, 0x67, 0x82, 0x49,
+ 0xc2, 0x12, 0xfc, 0xe5, 0x78, 0xae, 0xc5, 0xb7, 0x3a, 0x8e, 0x1c, 0xcc,
+ 0x27, 0xb7, 0x30, 0x58, 0x24, 0xb3, 0x7d, 0x97, 0x82, 0x6c, 0xfc, 0x41,
+ 0xd1, 0xc1, 0x9d, 0x4a, 0x11, 0x98, 0x67, 0xe7, 0xc9, 0xf5, 0x54, 0x05,
+ 0x8a, 0x50, 0x69, 0xf1, 0xb0, 0xad, 0xcd, 0x34, 0x10, 0x51, 0x75, 0xe0,
+ 0x81, 0x40, 0xa1, 0x29, 0xe2, 0x54, 0x33, 0x54, 0x80, 0x31, 0xc6, 0xaf,
+ 0xe5, 0x6f, 0x7d, 0x23, 0x0a, 0x16, 0x02, 0xc4, 0x51, 0x16, 0x83, 0xd5,
+ 0xb8, 0x63, 0xe1, 0x48, 0xea, 0x78, 0xa2, 0x6f, 0x85, 0x42, 0x80, 0xf1,
+ 0xab, 0xa1, 0xd1, 0x70, 0x7b, 0x5a, 0xc1, 0x3f, 0x39, 0x2b, 0xf4, 0xf5,
+ 0xdd, 0x13, 0xb6, 0x75, 0x5f, 0x9e, 0x0e, 0x7b, 0x42, 0x0f, 0xf3, 0xe4,
+ 0x3e, 0xa0, 0x2c, 0x81, 0xa5, 0x56, 0xf2, 0x63, 0xcb, 0x8f, 0x84, 0xaf,
+ 0x59, 0xb1, 0xe1, 0x5c, 0x46, 0x23, 0x9c, 0xc1, 0x3b, 0xc9, 0x7c, 0x16,
+ 0x84, 0x2d, 0x84, 0xc6, 0x13, 0xf3, 0x70, 0xac, 0x72, 0x8a, 0x08, 0x44,
+ 0x0e, 0xe0, 0x85, 0xa1, 0xf3, 0x48, 0x60, 0x7a, 0xd2, 0x8b, 0xfa, 0x7b,
+ 0x80, 0xcd, 0xd9, 0xad, 0x2e, 0x64, 0xcc, 0x05, 0x4d, 0xe2, 0x31, 0x0a,
+ 0x38, 0x6d, 0xb8, 0xc2, 0xf2, 0xc6, 0x12, 0x36, 0x95, 0xac, 0xef, 0xe8,
+ 0x7d, 0xfe, 0xb1, 0xa7, 0x93, 0xba, 0xdb, 0x45, 0xe8, 0x36, 0xcb, 0xa3,
+ 0x77, 0xc9, 0x74, 0xd5, 0x14, 0x1b, 0xf6, 0x1e, 0xdd, 0x59, 0x24, 0x49,
+ 0xdc, 0xa7, 0x0e, 0x52, 0x55, 0x50, 0xb5, 0x61, 0x08, 0x55, 0x20, 0x43,
+ 0x1b, 0x00, 0x2d, 0xa3, 0x9a, 0xb8, 0xe7, 0xd1, 0xdd, 0x9e, 0x79, 0x9a,
+ 0xf9, 0x1b, 0x5b, 0x3c, 0x31, 0xd5, 0x7b, 0x46, 0xd2, 0xc8, 0x5d, 0xe4,
+ 0x70, 0xb7, 0x80, 0x72, 0x39, 0xf5, 0x89, 0xe8, 0x96, 0x38, 0x49, 0x85,
+ 0xd3, 0xb0, 0x06, 0x55, 0x3a, 0xf4, 0x21, 0xde, 0x7e, 0x20, 0xbe, 0x92,
+ 0x2c, 0xec, 0x83, 0x9c, 0x10, 0x02, 0x8e, 0x33, 0x4d, 0x12, 0x6c, 0xb1,
+ 0x9c, 0x69, 0x25, 0x2a, 0x30, 0xe2, 0x1e, 0xae, 0xdb, 0x32, 0x22, 0x4e,
+ 0x9c, 0x4a, 0xc8, 0xdf, 0x14, 0xc2, 0x34, 0x04, 0x2c, 0x35, 0x96, 0xfa,
+ 0x85, 0x62, 0x0b, 0x98, 0xc0, 0xe9, 0x81, 0x5e, 0x6e, 0x52, 0xb1, 0x61,
+ 0x20, 0x42, 0x15, 0x0b, 0x46, 0xac, 0xa2, 0x1b, 0xd1, 0xe9, 0x5b, 0x72,
+ 0xa3, 0x65, 0x86, 0x10, 0x58, 0x27, 0x30, 0x48, 0x1b, 0x43, 0x08, 0x9d,
+ 0x51, 0x37, 0xe4, 0x91, 0xfd, 0xcf, 0x79, 0x0d, 0x8a, 0xae, 0x5f, 0x34,
+ 0x05, 0x09, 0xae, 0xae, 0x80, 0xba, 0x47, 0xac, 0xe2, 0xc9, 0x79, 0x6e,
+ 0x85, 0x53, 0xbb, 0xc9, 0x03, 0x0b, 0x48, 0x5d, 0xed, 0x55, 0xbe, 0x16,
+ 0x14, 0x00, 0x2c, 0xee, 0xf9, 0xc9, 0x5b, 0xa9, 0x05, 0xea, 0x0e, 0x52,
+ 0xc2, 0x90, 0x89, 0x1b, 0x52, 0xc6, 0x16, 0xe3, 0x89, 0x15, 0x67, 0x22,
+ 0x12, 0x7b, 0x13, 0x13, 0x1b, 0x1f, 0x90, 0x54, 0xfb, 0xba, 0x58, 0x4a,
+ 0xef, 0x5d, 0xbe, 0x24, 0x8b, 0x62, 0xda, 0xad, 0x15, 0xb8, 0x73, 0x9b,
+ 0x59, 0xbb, 0x8d, 0x9c, 0x21, 0x6b, 0x3c, 0x09, 0x2b, 0xf6, 0x6a, 0x2b,
+ 0x15, 0x26, 0xd9, 0xab, 0xe5, 0x49, 0x86, 0x16, 0xf4, 0x4f, 0xa2, 0xc1,
+ 0x36, 0x75, 0x58, 0x6c, 0xdb, 0x8b, 0x8b, 0xdb, 0x71, 0x41, 0xd7, 0x23,
+ 0x27, 0x05, 0xff, 0xe8, 0x90, 0x9c, 0x79, 0xc4, 0x93, 0x9f, 0xa2, 0xfe,
+ 0x78, 0x8a, 0xf9, 0x45, 0xa8, 0xa6, 0xf9, 0x23, 0x91, 0x0c, 0x3f, 0xf1,
+ 0xd3, 0x06, 0x67, 0xc9, 0x0d, 0xdf, 0xbd, 0x61, 0x1c, 0x75, 0x94, 0x2b,
+ 0xbc, 0xbc, 0x38, 0x78, 0x3b, 0x7c, 0x2d, 0x46, 0xd6, 0xcb, 0xcc, 0x17,
+ 0x42, 0x54, 0xcb, 0x82, 0xf3, 0x44, 0x3a, 0xa4, 0xb1, 0x7b, 0x01, 0xf7,
+ 0xb6, 0x20, 0x6d, 0x2d, 0x91, 0xd8, 0xab, 0x83, 0x18, 0x4b, 0x89, 0x45,
+ 0xf0, 0x6a, 0x3a, 0x4c, 0x9b, 0xc5, 0x96, 0xbb, 0x58, 0x8b, 0xb0, 0x5a,
+ 0x89, 0xc7, 0xb8, 0x33, 0x6c, 0x54, 0x7d, 0x88, 0x09, 0xe5, 0xd0, 0x06,
+ 0x63, 0x9f, 0x0a, 0x2f, 0x5f, 0x8b, 0x2b, 0x79, 0x48, 0xaa, 0x47, 0x5f,
+ 0x61, 0xf1, 0x83, 0xda, 0x2c, 0xce, 0x30, 0x27, 0xbc, 0x5c, 0xd1, 0xe0,
+ 0x5c, 0xe3, 0x61, 0x22, 0xa1, 0x35, 0xbd, 0xf9, 0xc7, 0xdd, 0xad, 0xf6,
+ 0xe6, 0x2f, 0x7f, 0x69, 0xf3, 0xed, 0x63, 0x37, 0x59, 0xdf, 0xe7, 0xa9,
+ 0x6c, 0xfe, 0x71, 0x6f, 0xeb, 0xd1, 0x19, 0x85, 0x99, 0x76, 0xbe, 0x4f,
+ 0x7a, 0x83, 0x07, 0x1b, 0xbd, 0xb2, 0x9a, 0xb7, 0x7a, 0x07, 0xbb, 0x58,
+ 0x8f, 0x2b, 0x8f, 0x72, 0x57, 0x41, 0x7d, 0xe0, 0x58, 0x60, 0x27, 0xf9,
+ 0x79, 0x17, 0x8e, 0xa6, 0x2c, 0x9c, 0xfc, 0xef, 0xe3, 0x10, 0x1d, 0x90,
+ 0x14, 0xf1, 0x90, 0xdd, 0x71, 0xba, 0x79, 0x91, 0x0d, 0xd0, 0xf7, 0xde,
+ 0x23, 0x7d, 0xfb, 0xd9, 0x05, 0x6a, 0x2e, 0xfb, 0x43, 0x39, 0xa0, 0xca,
+ 0xf0, 0x60, 0xb5, 0x9f, 0x0d, 0x5f, 0x5e, 0x73, 0x7d, 0x7f, 0x97, 0x27,
+ 0x6f, 0x8e, 0x19, 0x37, 0xf6, 0xe8, 0x84, 0xf1, 0xcb, 0x86, 0x8a, 0x20,
+ 0x68, 0x1a, 0xad, 0x03, 0x57, 0x0d, 0xc1, 0xed, 0xc5, 0x51, 0xe8, 0xe2,
+ 0x96, 0xdc, 0xe9, 0x77, 0x3b, 0xc1, 0x5d, 0x6b, 0x60, 0x6d, 0x61, 0xe9,
+ 0x7b, 0x27, 0x57, 0xfd, 0x37, 0xd9, 0x04, 0x5a, 0x57, 0x5f, 0xe0, 0xa8,
+ 0xe9, 0x2d, 0xfa, 0xf0, 0xdd, 0x7c, 0x56, 0xf9, 0x38, 0x4c, 0x12, 0x54,
+ 0x85, 0x7a, 0x63, 0x5d, 0x01, 0x80, 0x9f, 0xb7, 0xfb, 0x7d, 0x94, 0xb7,
+ 0x95, 0xf8, 0x20, 0xf5, 0x12, 0x54, 0x30, 0x1e, 0xec, 0xec, 0xd3, 0xfa,
+ 0xa4, 0xd3, 0x95, 0x78, 0xb4, 0x63, 0x1f, 0x87, 0xe4, 0x33, 0x02, 0xaf,
+ 0x39, 0x2b, 0xc9, 0x1b, 0x8b, 0xc4, 0x1c, 0xb4, 0x11, 0x42, 0x52, 0x42,
+ 0x2e, 0x4f, 0xee, 0x7d, 0x20, 0x8d, 0x16, 0x12, 0xcc, 0x16, 0x2b, 0x4c,
+ 0xf2, 0xbe, 0xe2, 0xa3, 0x6f, 0x75, 0xd4, 0xfd, 0x2c, 0xef, 0x54, 0x4a,
+ 0x5e, 0x48, 0x0f, 0x21, 0x01, 0xea, 0x27, 0x5a, 0x21, 0xe2, 0x2c, 0x0f,
+ 0x18, 0x98, 0x0e, 0xdb, 0x8a, 0xbe, 0x04, 0x70, 0x95, 0x01, 0xba, 0x66,
+ 0x75, 0x9c, 0xde, 0x7a, 0xb9, 0xc1, 0xd7, 0xda, 0x80, 0x8d, 0xe6, 0xe6,
+ 0x65, 0x21, 0xae, 0xb3, 0xa8, 0x96, 0xea, 0x4b, 0x22, 0x4b, 0x1a, 0x96,
+ 0x9c, 0xf0, 0x6e, 0xbf, 0x0b, 0x44, 0xed, 0x74, 0xde, 0x32, 0x99, 0xfe,
+ 0x2f, 0x9f, 0x4d, 0xc3, 0x87, 0x17, 0x75, 0xae, 0x18, 0x58, 0x81, 0x1d,
+ 0x22, 0x1d, 0x19, 0x80, 0x60, 0x8d, 0x08, 0x6d, 0x91, 0x3c, 0xcf, 0x6c,
+ 0xcd, 0xf4, 0x12, 0xd1, 0xd1, 0x5c, 0x88, 0xa5, 0xb3, 0xb6, 0x8a, 0x91,
+ 0x8b, 0xf9, 0xe8, 0x72, 0x31, 0x81, 0x77, 0x5f, 0xe2, 0x1a, 0xff, 0x33,
+ 0x9e, 0x2f, 0xe3, 0x7c, 0x15, 0xed, 0xee, 0xf5, 0xa2, 0xbd, 0x9d, 0xdd,
+ 0xbd, 0x96, 0x39, 0x74, 0xfe, 0x93, 0xa3, 0x6b, 0xf6, 0xf0, 0x75, 0xe7,
+ 0x63, 0x67, 0xe1, 0x63, 0xe4, 0x71, 0xab, 0x6a, 0x36, 0x29, 0xf1, 0x1e,
+ 0x76, 0xf4, 0x49, 0x35, 0x5f, 0xae, 0xdf, 0x07, 0x40, 0x34, 0xc8, 0x14,
+ 0x62, 0x73, 0xb2, 0xda, 0x53, 0xae, 0x4c, 0x09, 0x3f, 0xb1, 0xa1, 0x25,
+ 0xd4, 0x10, 0x42, 0xe1, 0x0c, 0x6f, 0x71, 0x8e, 0xc2, 0x5a, 0xd5, 0x3d,
+ 0x4a, 0x4b, 0xdb, 0x16, 0x8e, 0xd1, 0xe0, 0xbd, 0x21, 0x7a, 0x3f, 0x3a,
+ 0x39, 0xbc, 0x34, 0xc4, 0xbc, 0x2b, 0xbe, 0x4e, 0xf3, 0xd5, 0xc7, 0xd5,
+ 0x28, 0x7a, 0xf4, 0x99, 0xc9, 0xfe, 0x4d, 0x42, 0x12, 0xd9, 0x7c, 0xb4,
+ 0xbc, 0xde, 0xff, 0x6b, 0x9c, 0x5f, 0x67, 0xf3, 0x0f, 0x3d, 0x3f, 0x41,
+ 0x92, 0xd2, 0x3e, 0x31, 0xa8, 0xdd, 0x17, 0xbb, 0x4f, 0x24, 0x02, 0x3e,
+ 0xe5, 0x92, 0x66, 0xe0, 0x0f, 0xdd, 0x59, 0x57, 0x00, 0x1b, 0x10, 0x7a,
+ 0xef, 0x50, 0x1a, 0xe6, 0x93, 0xae, 0xa8, 0x5b, 0x71, 0xf8, 0xec, 0x44,
+ 0x9f, 0x95, 0x6c, 0xe6, 0xee, 0x86, 0x94, 0x6a, 0xec, 0x72, 0xea, 0xdf,
+ 0x72, 0xd1, 0x1d, 0x54, 0x4e, 0xf8, 0x07, 0xe6, 0xca, 0x5d, 0xb8, 0x92,
+ 0x4c, 0x87, 0xc2, 0x93, 0x95, 0x9d, 0x8e, 0xf2, 0x24, 0xbe, 0xf5, 0x05,
+ 0xfd, 0x3c, 0x9a, 0x83, 0xd9, 0xce, 0x2f, 0x5e, 0x1f, 0x0a, 0x06, 0xa6,
+ 0xe5, 0xe0, 0x60, 0xa9, 0x23, 0x67, 0xe9, 0xd8, 0xe2, 0x51, 0x7e, 0xa0,
+ 0x7f, 0x0e, 0x92, 0xdf, 0x9f, 0x8c, 0x3e, 0xe2, 0x21, 0x3a, 0x77, 0x02,
+ 0x37, 0x76, 0x50, 0x2d, 0x67, 0xc0, 0x32, 0x7f, 0xc9, 0xa4, 0x66, 0x95,
+ 0xfb, 0x36, 0xa5, 0x40, 0x9b, 0xd8, 0xae, 0xa5, 0x62, 0xbc, 0x16, 0x18,
+ 0x56, 0x63, 0x01, 0x8d, 0x9b, 0xab, 0x9f, 0x1d, 0x1d, 0x9c, 0x07, 0x7a,
+ 0x13, 0xf4, 0x12, 0x6f, 0x23, 0xe2, 0xe7, 0x58, 0x66, 0x46, 0x71, 0x50,
+ 0x31, 0x25, 0xad, 0x7a, 0x5e, 0xda, 0x2d, 0xc1, 0x27, 0x27, 0x77, 0xb1,
+ 0x44, 0x5a, 0x67, 0x7a, 0x9d, 0xc0, 0x9c, 0x01, 0x3c, 0xef, 0xe9, 0x24,
+ 0x86, 0x47, 0x4d, 0x2f, 0x21, 0x08, 0xa1, 0x68, 0x2b, 0xd5, 0xb0, 0x1a,
+ 0xda, 0x9b, 0x87, 0x48, 0xb3, 0x01, 0x34, 0xed, 0x41, 0x7e, 0x97, 0xc7,
+ 0x38, 0xd3, 0x75, 0x65, 0x13, 0x10, 0xfe, 0x4c, 0x83, 0x8f, 0x8b, 0x5b,
+ 0x62, 0xa5, 0xe2, 0x09, 0xa6, 0xde, 0xd3, 0x71, 0x62, 0x36, 0xd5, 0x49,
+ 0x2a, 0x11, 0x19, 0x6c, 0xcd, 0x00, 0x96, 0x4e, 0x65, 0xc3, 0xe4, 0x06,
+ 0x62, 0xe5, 0x65, 0x5a, 0x24, 0x82, 0x7b, 0x17, 0x5d, 0xde, 0x67, 0x22,
+ 0x74, 0x3a, 0xc0, 0x01, 0x89, 0x69, 0x2c, 0x96, 0xa9, 0x40, 0x67, 0xd0,
+ 0xe6, 0x81, 0x1f, 0x04, 0xe5, 0xd5, 0x3a, 0xce, 0x90, 0x72, 0xe4, 0x1c,
+ 0x68, 0xc3, 0xa3, 0x6f, 0x22, 0xce, 0xd1, 0xe6, 0x3e, 0x0e, 0xb9, 0x26,
+ 0x01, 0xfb, 0xc2, 0x67, 0x50, 0x24, 0xbe, 0x5a, 0xf2, 0x79, 0x3f, 0xbc,
+ 0x89, 0x17, 0x2c, 0x12, 0xef, 0xee, 0xb0, 0xf6, 0xfd, 0x9d, 0x65, 0x7b,
+ 0xf1, 0x41, 0xb5, 0xd2, 0xab, 0x45, 0x27, 0x50, 0xcc, 0x27, 0x5c, 0x39,
+ 0x95, 0x65, 0xe2, 0xaa, 0xcd, 0x8f, 0x6e, 0xcf, 0x62, 0x7b, 0xc6, 0x0c,
+ 0x6b, 0x5a, 0x10, 0x69, 0xe4, 0xc5, 0xe4, 0x76, 0x7b, 0x4c, 0xff, 0x3c,
+ 0xd9, 0xd9, 0x06, 0x14, 0x63, 0x09, 0x13, 0x19, 0xd3, 0xe4, 0xde, 0xde,
+ 0xb3, 0x67, 0xbd, 0xa8, 0xc3, 0x46, 0x2b, 0xeb, 0x80, 0x8f, 0x04, 0x9d,
+ 0xac, 0x4e, 0x5b, 0x9d, 0xb9, 0xed, 0xfc, 0x6a, 0xcc, 0xff, 0xf1, 0x6b,
+ 0x56, 0x2b, 0xea, 0x52, 0xd3, 0x37, 0xb0, 0x0e, 0xf3, 0x10, 0x6b, 0xc5,
+ 0xc8, 0xea, 0x9e, 0xf6, 0xc1, 0xcc, 0x12, 0xec, 0x81, 0x58, 0x24, 0xd9,
+ 0xc2, 0xdc, 0x8c, 0x33, 0x05, 0xc8, 0x47, 0xf7, 0x81, 0x73, 0x06, 0x8e,
+ 0x61, 0x89, 0xab, 0xd2, 0xc4, 0xfa, 0x62, 0x39, 0xea, 0x6b, 0x86, 0xa9,
+ 0xe8, 0x19, 0x29, 0x9d, 0x5c, 0xfa, 0x73, 0x6a, 0xd6, 0xdf, 0x06, 0x47,
+ 0xfe, 0x32, 0xea, 0x28, 0x6d, 0xf1, 0x8f, 0x01, 0xbc, 0x84, 0xc9, 0x98,
+ 0xa7, 0x91, 0xbd, 0xd2, 0x3f, 0xfe, 0xe3, 0x3f, 0xa8, 0xd9, 0xff, 0xe0,
+ 0x56, 0x5e, 0xfd, 0xb1, 0x28, 0x6f, 0x82, 0x67, 0x3a, 0x4a, 0xf0, 0x27,
+ 0xde, 0x47, 0x8a, 0xb8, 0x27, 0x00, 0x95, 0x22, 0x11, 0xea, 0xcd, 0xa9,
+ 0x72, 0xe4, 0x5e, 0x30, 0xbf, 0x14, 0x29, 0x6a, 0x62, 0x73, 0x73, 0x61,
+ 0x07, 0x5f, 0xb2, 0xff, 0x32, 0xe1, 0xd4, 0x66, 0xa2, 0x42, 0x20, 0xd1,
+ 0x6d, 0x99, 0x88, 0x71, 0xfc, 0xf6, 0xdb, 0x93, 0x8b, 0xb3, 0xb7, 0x6f,
+ 0x8e, 0xdf, 0x5e, 0x46, 0xdf, 0x1e, 0x5c, 0x9c, 0x1c, 0x7c, 0x79, 0xaa,
+ 0x19, 0xd4, 0x3c, 0x05, 0x8e, 0x16, 0x11, 0xd1, 0xbb, 0x86, 0x23, 0x1a,
+ 0x64, 0xb4, 0xb4, 0x82, 0xe7, 0xd7, 0xca, 0x05, 0xbe, 0x57, 0x60, 0x6a,
+ 0x98, 0x57, 0xdf, 0xa3, 0x80, 0x45, 0x8f, 0x1d, 0x7e, 0xef, 0xad, 0x96,
+ 0x05, 0x9b, 0x2d, 0x57, 0x41, 0x4e, 0x2e, 0x07, 0xb2, 0x30, 0x95, 0x1a,
+ 0x7f, 0xf2, 0x75, 0x87, 0x14, 0xde, 0x7f, 0x10, 0x7d, 0x25, 0x69, 0xdd,
+ 0x1a, 0x52, 0xe5, 0x5e, 0xd5, 0x14, 0x23, 0x98, 0x71, 0xdc, 0x18, 0x0e,
+ 0x4e, 0x4f, 0x7d, 0x57, 0x8f, 0x57, 0x61, 0x50, 0x38, 0x1f, 0xc9, 0x02,
+ 0xba, 0xb1, 0xea, 0xc9, 0xd7, 0x99, 0x47, 0xd9, 0x9e, 0xaf, 0x42, 0x40,
+ 0x6d, 0xee, 0x8c, 0xb6, 0x63, 0x53, 0xb0, 0x18, 0xd8, 0xdd, 0x48, 0x07,
+ 0x28, 0x2d, 0x6e, 0x7b, 0x51, 0xf7, 0x8f, 0x5d, 0xc9, 0xce, 0x4a, 0x00,
+ 0x37, 0x2b, 0x35, 0x1e, 0xb6, 0xfc, 0xa0, 0xde, 0x9e, 0xf9, 0x31, 0xa9,
+ 0x13, 0xcd, 0x0d, 0xc0, 0xbd, 0xe8, 0xfd, 0x9f, 0x85, 0xc9, 0x33, 0x08,
+ 0x3c, 0xf4, 0x8f, 0x2b, 0xa2, 0xbf, 0x4b, 0x31, 0x57, 0x1a, 0x65, 0x3f,
+ 0x49, 0xeb, 0xbb, 0x50, 0xda, 0xe2, 0x71, 0x80, 0x2a, 0x2c, 0x66, 0x1c,
+ 0x56, 0x7e, 0x21, 0x07, 0x48, 0xad, 0x67, 0xb9, 0x1c, 0x1e, 0xa4, 0x44,
+ 0xf8, 0x86, 0x15, 0x26, 0x56, 0x0e, 0x0a, 0xaa, 0x7a, 0xd8, 0xb6, 0x5a,
+ 0x0f, 0x70, 0x59, 0x71, 0x60, 0x79, 0x9e, 0x4e, 0x14, 0xa7, 0xae, 0x95,
+ 0x2a, 0x06, 0xf0, 0x74, 0x5c, 0x1c, 0x02, 0xd4, 0x7b, 0xce, 0x05, 0xa0,
+ 0x5c, 0x21, 0x04, 0x09, 0x42, 0x25, 0x2e, 0x92, 0x73, 0x66, 0xd7, 0x5c,
+ 0x85, 0x10, 0x04, 0x76, 0x42, 0x44, 0x8f, 0xaf, 0x33, 0x13, 0xbf, 0x63,
+ 0xe7, 0x7e, 0x95, 0x8c, 0x2d, 0x89, 0xd9, 0x31, 0x29, 0xcc, 0x01, 0x51,
+ 0x39, 0x0b, 0x18, 0x1c, 0xb5, 0x66, 0x6f, 0xe6, 0x38, 0x25, 0xd8, 0xcb,
+ 0x34, 0x8e, 0xa1, 0x08, 0xd2, 0x7d, 0x7d, 0x18, 0x3c, 0xf3, 0x12, 0x71,
+ 0x51, 0x1a, 0x32, 0x14, 0xf0, 0xb7, 0x2c, 0x3d, 0x18, 0x11, 0x73, 0x18,
+ 0x16, 0x3f, 0x88, 0x26, 0x35, 0xf8, 0x11, 0x4d, 0x9a, 0x29, 0x94, 0x4e,
+ 0xcf, 0x94, 0x33, 0x91, 0x8c, 0x13, 0xc5, 0xd1, 0x28, 0xbd, 0x8e, 0xcc,
+ 0x0a, 0x12, 0x31, 0x95, 0x00, 0x25, 0x2c, 0x9b, 0x25, 0xbc, 0x55, 0xc0,
+ 0x00, 0x83, 0xec, 0x7e, 0x93, 0x4d, 0x43, 0xd0, 0x2a, 0x9b, 0x49, 0xc1,
+ 0x91, 0xfa, 0x81, 0x15, 0x0d, 0x96, 0xf4, 0x25, 0xaf, 0xa3, 0x85, 0x35,
+ 0x29, 0xbe, 0xb5, 0x06, 0x79, 0xb1, 0x89, 0x16, 0x70, 0x7b, 0x73, 0xa4,
+ 0x94, 0x58, 0x7a, 0x2e, 0xd6, 0xc1, 0x02, 0x60, 0x99, 0x5b, 0xc0, 0xb2,
+ 0xc2, 0xd5, 0xa6, 0x36, 0x1d, 0x40, 0x35, 0xb7, 0x32, 0x16, 0x88, 0x4f,
+ 0x26, 0x7a, 0x89, 0x4f, 0xaf, 0x54, 0x93, 0xb0, 0xcd, 0x52, 0x28, 0x26,
+ 0xa2, 0x09, 0x1e, 0x34, 0x8d, 0x6f, 0x33, 0x60, 0x3c, 0x73, 0x22, 0x11,
+ 0x79, 0x4c, 0xf4, 0x47, 0xfd, 0xab, 0x2f, 0xde, 0xcb, 0xd8, 0x0a, 0x6f,
+ 0x15, 0x5b, 0xde, 0x83, 0x2d, 0x52, 0x00, 0x53, 0xeb, 0x58, 0x0b, 0x5a,
+ 0x61, 0xbc, 0xb4, 0x5f, 0x66, 0x88, 0x0a, 0xed, 0x58, 0x91, 0x65, 0x6e,
+ 0x4c, 0xa7, 0x01, 0x44, 0xb5, 0x98, 0x23, 0xe2, 0x86, 0xf0, 0xc1, 0xce,
+ 0x06, 0x49, 0x68, 0xd4, 0x18, 0x12, 0x81, 0xb3, 0x0d, 0x66, 0xa2, 0xd1,
+ 0xc9, 0x2c, 0x9e, 0xd5, 0xcc, 0x63, 0x01, 0x47, 0x33, 0x6f, 0x6b, 0x78,
+ 0x33, 0x69, 0x65, 0x84, 0x34, 0x9e, 0x89, 0xf0, 0xe8, 0xc9, 0x6f, 0xb6,
+ 0x92, 0xf8, 0xb5, 0x8d, 0x8d, 0xc3, 0x77, 0xc3, 0xcb, 0xb3, 0x37, 0xd1,
+ 0xd9, 0xbb, 0xcb, 0xf3, 0x77, 0x97, 0x7a, 0x75, 0x8d, 0x24, 0xfa, 0x57,
+ 0x74, 0x44, 0x91, 0x02, 0x6c, 0x37, 0x67, 0xea, 0x42, 0x46, 0xb0, 0x42,
+ 0x06, 0x68, 0xba, 0x00, 0xa5, 0xc6, 0x65, 0xf7, 0x00, 0xbb, 0x49, 0x10,
+ 0x6f, 0xb1, 0xe6, 0xf7, 0xb4, 0xe6, 0xc8, 0xcc, 0x84, 0x6d, 0xc7, 0x92,
+ 0x85, 0xa0, 0xf7, 0xb4, 0x57, 0x1d, 0xa9, 0xd5, 0x31, 0x83, 0xb3, 0xb7,
+ 0x0a, 0x0a, 0xe4, 0x23, 0x72, 0xcc, 0xb6, 0xe3, 0x4d, 0x3f, 0x61, 0x70,
+ 0x20, 0xc2, 0x62, 0xc6, 0xa5, 0x19, 0x33, 0x2d, 0x3e, 0x13, 0x41, 0x2b,
+ 0xd5, 0x14, 0xb5, 0x30, 0x53, 0xae, 0xcc, 0x68, 0x86, 0x37, 0x2e, 0xb6,
+ 0x9a, 0xe3, 0x51, 0x10, 0x53, 0x26, 0x0e, 0x79, 0x0e, 0xde, 0x12, 0x95,
+ 0x81, 0x14, 0x41, 0x36, 0x81, 0x37, 0xae, 0xd9, 0xfb, 0xa8, 0xfb, 0x5d,
+ 0x12, 0x36, 0xf8, 0xfb, 0xbf, 0x73, 0x02, 0xe0, 0x7b, 0xfb, 0xe4, 0x1f,
+ 0xd2, 0xe5, 0x5f, 0xe6, 0x5d, 0x84, 0x62, 0x55, 0x3d, 0xaf, 0xdf, 0x1c,
+ 0x5f, 0x7c, 0x79, 0x7c, 0x71, 0x36, 0x44, 0xf8, 0x89, 0x99, 0xbb, 0x9a,
+ 0xc4, 0x7e, 0x9b, 0xe4, 0xa3, 0x24, 0xcf, 0xb4, 0x90, 0x8c, 0xfd, 0xf5,
+ 0x6c, 0xfb, 0xab, 0xe1, 0xf0, 0xe0, 0xfc, 0xc4, 0xd5, 0x1c, 0x71, 0xa9,
+ 0x48, 0xa2, 0x23, 0xcd, 0x25, 0x59, 0x8e, 0xe7, 0x6f, 0xaf, 0x10, 0x5d,
+ 0x8c, 0x6f, 0x25, 0x44, 0xb5, 0xe1, 0xe3, 0x34, 0x1b, 0x2d, 0x3b, 0x37,
+ 0x35, 0x43, 0x8d, 0x1b, 0x36, 0x74, 0x21, 0x49, 0xd4, 0x16, 0x02, 0x7e,
+ 0xcd, 0x26, 0xe5, 0x9e, 0x0b, 0xe3, 0xba, 0xcd, 0x47, 0x7d, 0x22, 0xf4,
+ 0x5b, 0xab, 0x0f, 0x29, 0xc1, 0xf4, 0xc4, 0x26, 0x25, 0xca, 0xd6, 0xdb,
+ 0x19, 0x6e, 0xb9, 0x2a, 0xec, 0xf6, 0x2d, 0x1f, 0x0d, 0x2e, 0x8b, 0x31,
+ 0x1d, 0x08, 0x67, 0x97, 0xb3, 0x64, 0xa1, 0x93, 0xcc, 0x5e, 0x1f, 0x03,
+ 0x3b, 0xa0, 0xde, 0x5c, 0xbd, 0x2a, 0x31, 0x75, 0xd1, 0x27, 0x4f, 0x1d,
+ 0xe8, 0x53, 0x58, 0x30, 0xf4, 0x8a, 0x84, 0xef, 0xc5, 0xfd, 0x44, 0x2f,
+ 0x10, 0x40, 0x1c, 0xcf, 0xc5, 0xca, 0x2d, 0xfc, 0xbb, 0xee, 0xeb, 0xe0,
+ 0x02, 0x5b, 0x88, 0xfa, 0xd7, 0x98, 0xe6, 0x68, 0x34, 0x8d, 0xe7, 0xb7,
+ 0xb8, 0xc9, 0x70, 0x37, 0xb1, 0xba, 0x69, 0x58, 0x46, 0x5c, 0x8e, 0x0c,
+ 0xae, 0x2d, 0x85, 0x17, 0x80, 0x00, 0x68, 0x85, 0xde, 0xd9, 0xb2, 0xeb,
+ 0x20, 0x9b, 0x02, 0x27, 0x0e, 0x4e, 0x92, 0x5f, 0x04, 0xb6, 0x1a, 0x1d,
+ 0x9f, 0xd2, 0xa5, 0xe4, 0x32, 0x15, 0xa0, 0x9e, 0x27, 0x53, 0x06, 0xde,
+ 0xb1, 0xe0, 0x12, 0x49, 0xce, 0x4b, 0xc1, 0xc4, 0x84, 0x71, 0x18, 0xfa,
+ 0x36, 0xdc, 0x10, 0xa0, 0x14, 0xe4, 0x20, 0x16, 0xae, 0x46, 0x85, 0x72,
+ 0x6d, 0x61, 0x60, 0x00, 0x97, 0xf4, 0x25, 0x2b, 0xc2, 0x22, 0x26, 0x1a,
+ 0xb3, 0x75, 0xe8, 0x43, 0x4b, 0x62, 0xfb, 0x4e, 0x06, 0xe1, 0x45, 0x52,
+ 0xe7, 0xac, 0xaa, 0xa4, 0x48, 0xac, 0xdd, 0x26, 0x79, 0xbd, 0xcd, 0x00,
+ 0x00, 0x06, 0x48, 0x0d, 0x88, 0xf5, 0xdb, 0xc1, 0xcb, 0x58, 0xdc, 0x6b,
+ 0x35, 0xd6, 0xd4, 0x06, 0x3e, 0xb0, 0x4a, 0xf2, 0x08, 0x7f, 0x12, 0xff,
+ 0x13, 0xe2, 0x24, 0xf5, 0xf6, 0x2d, 0x27, 0xe0, 0x36, 0x79, 0x05, 0xe9,
+ 0x34, 0x0c, 0xf1, 0x14, 0x04, 0x04, 0x98, 0x05, 0x25, 0xe8, 0x1f, 0x1a,
+ 0x8c, 0x93, 0x6d, 0xfb, 0x6f, 0xf9, 0xaa, 0xc8, 0xfa, 0xa3, 0x25, 0x74,
+ 0x32, 0x8f, 0xd5, 0xa5, 0x89, 0x80, 0x5c, 0x14, 0x18, 0xe0, 0x5c, 0xf8,
+ 0x9e, 0xdd, 0x1a, 0x48, 0xb1, 0x16, 0x4f, 0x07, 0x72, 0xee, 0xaa, 0xc0,
+ 0x2d, 0x0e, 0xae, 0x43, 0x02, 0xd9, 0x11, 0xd0, 0xab, 0x51, 0xcb, 0x3a,
+ 0x42, 0xdd, 0x64, 0x17, 0x72, 0x36, 0xd7, 0xaa, 0x79, 0xb0, 0xb3, 0x57,
+ 0xc3, 0x76, 0x4b, 0x87, 0x96, 0x7e, 0x09, 0x11, 0x21, 0x51, 0x0c, 0x71,
+ 0x8b, 0xc7, 0xb5, 0xe8, 0xff, 0xbb, 0x92, 0xeb, 0x03, 0x09, 0xd2, 0x40,
+ 0x3c, 0x95, 0x22, 0x0f, 0x6b, 0x6f, 0x11, 0x39, 0x4c, 0xe5, 0xe5, 0xe5,
+ 0x0f, 0xe7, 0xc7, 0xaf, 0xec, 0xcd, 0xc7, 0xf6, 0x4c, 0x00, 0xb8, 0x10,
+ 0x7e, 0x91, 0x28, 0xd8, 0x65, 0x50, 0x83, 0x93, 0x88, 0xac, 0x5f, 0x9a,
+ 0x5b, 0x58, 0xba, 0xe9, 0x47, 0xdf, 0x1f, 0x9d, 0x0c, 0xcf, 0x4f, 0xcf,
+ 0x0e, 0x5f, 0xbd, 0xfc, 0xde, 0xb8, 0xf1, 0xe7, 0x8c, 0x38, 0x23, 0x32,
+ 0x9a, 0xfb, 0xcc, 0x03, 0x04, 0xe8, 0x7b, 0x6f, 0x8f, 0xbf, 0x7b, 0x4f,
+ 0x9a, 0xc1, 0x2b, 0x06, 0x05, 0xef, 0xdd, 0xc5, 0x53, 0x7d, 0x89, 0xd5,
+ 0xab, 0x16, 0xb9, 0x2e, 0x48, 0xe7, 0x68, 0x5b, 0x58, 0x96, 0x27, 0x02,
+ 0x84, 0xd6, 0x15, 0x24, 0x68, 0x8d, 0xc8, 0x0a, 0xea, 0x09, 0xc5, 0x95,
+ 0xdc, 0xcc, 0x96, 0xe2, 0x8c, 0x99, 0xbb, 0xf9, 0xbb, 0xa5, 0x44, 0xe6,
+ 0xb1, 0x37, 0x3a, 0x74, 0xf2, 0x22, 0xf8, 0x51, 0xbf, 0xf1, 0x41, 0xa1,
+ 0x0a, 0xbf, 0x9b, 0x73, 0x2c, 0x84, 0xc3, 0x32, 0xd4, 0x0a, 0x99, 0x70,
+ 0x9f, 0x2a, 0xe0, 0xa1, 0x22, 0xf9, 0x70, 0x1c, 0xa6, 0x85, 0x64, 0xbb,
+ 0x2a, 0xcc, 0x22, 0xbe, 0xb8, 0xb1, 0xc4, 0xe3, 0x31, 0xfd, 0x60, 0x8c,
+ 0x49, 0x2e, 0xe7, 0x72, 0xce, 0x55, 0xd9, 0x87, 0x97, 0xac, 0x42, 0x69,
+ 0xd5, 0x32, 0x35, 0x3f, 0x5b, 0x49, 0x39, 0x24, 0xfe, 0x57, 0xb1, 0x2b,
+ 0xc3, 0x52, 0x13, 0x95, 0x13, 0xed, 0xd8, 0x5c, 0x35, 0x13, 0x90, 0xad,
+ 0x08, 0x92, 0x5e, 0xc8, 0x42, 0xa8, 0x20, 0xb0, 0xc6, 0x57, 0x76, 0x80,
+ 0x33, 0x25, 0x8d, 0x5a, 0xc5, 0x05, 0x54, 0x4b, 0xc1, 0xee, 0x4c, 0xd3,
+ 0x91, 0x37, 0x98, 0xd7, 0x3c, 0x91, 0xec, 0xe8, 0x56, 0xc4, 0x87, 0xf0,
+ 0x08, 0x99, 0x29, 0xdc, 0xa7, 0xd7, 0x16, 0x99, 0x95, 0x4f, 0x14, 0xe2,
+ 0x87, 0xa9, 0x3a, 0x4c, 0x82, 0x74, 0x4a, 0x2a, 0x14, 0x13, 0x13, 0xd1,
+ 0xdc, 0xa7, 0x41, 0x28, 0xa3, 0x82, 0x08, 0x01, 0xfb, 0x54, 0x59, 0x36,
+ 0xea, 0x95, 0x4b, 0x3a, 0x13, 0x1b, 0x59, 0x48, 0x60, 0x41, 0x7a, 0x36,
+ 0x42, 0x4e, 0x74, 0x66, 0x0d, 0xe9, 0x43, 0xc5, 0xc6, 0x6b, 0xce, 0x83,
+ 0x02, 0x52, 0xd3, 0x84, 0x45, 0x2d, 0x58, 0xdf, 0xc2, 0xce, 0xec, 0x26,
+ 0xe5, 0x15, 0x1c, 0x2d, 0xc3, 0x7a, 0x5e, 0x6e, 0xf4, 0x52, 0xd2, 0x02,
+ 0x0b, 0x8f, 0x60, 0xbb, 0x38, 0x07, 0x12, 0x62, 0xa9, 0x48, 0xe3, 0xa6,
+ 0xf4, 0x68, 0xe4, 0xdc, 0xa0, 0x0a, 0x0a, 0x63, 0x74, 0x69, 0xa5, 0xfa,
+ 0x1e, 0x5b, 0x51, 0xb7, 0x9a, 0x42, 0xbe, 0x79, 0x62, 0x21, 0x30, 0x62,
+ 0x62, 0x28, 0xd8, 0xd7, 0x30, 0x1f, 0xbb, 0xcb, 0x98, 0x33, 0x57, 0x38,
+ 0x14, 0x24, 0x57, 0xc0, 0x9d, 0x25, 0x17, 0x47, 0xd7, 0x0a, 0xa2, 0xa8,
+ 0x7f, 0xc9, 0x0e, 0x37, 0x03, 0x63, 0xf3, 0xb1, 0xc0, 0xb2, 0xdc, 0x01,
+ 0x59, 0x89, 0x69, 0x7d, 0xa5, 0x1d, 0xba, 0x2c, 0x6b, 0xdb, 0xac, 0x9e,
+ 0x24, 0xed, 0xc4, 0xc8, 0x11, 0x31, 0x9b, 0x6e, 0x90, 0x6b, 0x58, 0x68,
+ 0x06, 0xa7, 0x73, 0x56, 0x0a, 0xc3, 0x43, 0xc5, 0x22, 0x9f, 0xf3, 0x54,
+ 0x71, 0x0a, 0x92, 0x64, 0xb9, 0x40, 0xf9, 0x9d, 0xb1, 0x22, 0x90, 0x23,
+ 0xf8, 0xd3, 0xb5, 0x67, 0x77, 0x88, 0x5f, 0x2b, 0x5a, 0xd4, 0x37, 0xef,
+ 0x4e, 0x2f, 0x4f, 0xce, 0x43, 0xc7, 0x63, 0xf4, 0xdd, 0xc9, 0xe5, 0xd7,
+ 0x24, 0xaf, 0x73, 0x6d, 0xe7, 0x53, 0xf6, 0xee, 0xbc, 0x79, 0x73, 0xf0,
+ 0x96, 0x33, 0xd4, 0xdf, 0x22, 0x46, 0xee, 0x00, 0x3a, 0x03, 0x73, 0x23,
+ 0x5a, 0x61, 0x26, 0x1d, 0xce, 0x5d, 0xee, 0x35, 0xbd, 0x0c, 0xb5, 0xd3,
+ 0x07, 0x86, 0xc3, 0x47, 0x28, 0x5c, 0x23, 0xde, 0x70, 0xd5, 0x09, 0x56,
+ 0x6c, 0xd3, 0xc1, 0xa9, 0x65, 0x3d, 0x8b, 0xd7, 0xb9, 0x0e, 0x3d, 0x8e,
+ 0x3c, 0x39, 0x91, 0xcd, 0xe1, 0x53, 0x95, 0xab, 0xdb, 0x7b, 0x2e, 0xb0,
+ 0xa1, 0x0e, 0xc4, 0x14, 0x31, 0xab, 0x24, 0x32, 0xcd, 0x55, 0xa5, 0x91,
+ 0xeb, 0xb2, 0x1a, 0xb7, 0x4e, 0x3d, 0x62, 0x48, 0x70, 0x2a, 0x67, 0xde,
+ 0x18, 0xc8, 0xca, 0x26, 0xeb, 0xcb, 0x17, 0xa7, 0xe1, 0x7d, 0x5a, 0xad,
+ 0x1f, 0x6c, 0x81, 0x66, 0xd7, 0x59, 0xe2, 0x0f, 0x6e, 0xff, 0xcc, 0x9a,
+ 0x31, 0xcb, 0x2f, 0x34, 0x30, 0xb9, 0x5b, 0xfa, 0xcc, 0xd6, 0xfa, 0xb4,
+ 0x25, 0x5b, 0xae, 0x46, 0x8d, 0x5a, 0xce, 0xf6, 0x45, 0xaa, 0xac, 0x54,
+ 0xf1, 0x06, 0x72, 0xec, 0x99, 0x6b, 0x59, 0x03, 0x1a, 0x10, 0xd7, 0xab,
+ 0xa9, 0x31, 0x3a, 0x67, 0x30, 0x4b, 0x7b, 0xac, 0x92, 0xd9, 0x5b, 0x2b,
+ 0x25, 0x6e, 0xa9, 0x51, 0x48, 0x88, 0x64, 0x08, 0x17, 0xef, 0x33, 0x45,
+ 0x59, 0xae, 0x2c, 0x1b, 0x24, 0x0f, 0x09, 0xbb, 0x37, 0xf9, 0xd7, 0xbf,
+ 0x2e, 0xae, 0xc3, 0xac, 0x29, 0xcc, 0x55, 0xd3, 0x83, 0xdb, 0x31, 0x81,
+ 0x45, 0x2a, 0xd2, 0xe2, 0x64, 0x95, 0x11, 0x68, 0xc5, 0xb1, 0xdd, 0x75,
+ 0x1d, 0xea, 0xf7, 0x7b, 0xcd, 0xef, 0xf7, 0xc4, 0xe2, 0xc8, 0x15, 0xe8,
+ 0x1d, 0x9e, 0xa6, 0xe4, 0x02, 0x87, 0xd2, 0x9b, 0xc9, 0x04, 0x4c, 0x61,
+ 0x52, 0xac, 0x1e, 0x6e, 0x15, 0x61, 0x89, 0x62, 0xf6, 0xe7, 0x58, 0xa4,
+ 0x65, 0x8e, 0x1c, 0x47, 0x3c, 0x02, 0x0b, 0xb1, 0x04, 0x90, 0x22, 0x5c,
+ 0x0b, 0x6c, 0x8a, 0x6f, 0x2b, 0x6a, 0x90, 0xbe, 0x7f, 0xea, 0x02, 0xba,
+ 0x3d, 0x4b, 0x43, 0x81, 0x2f, 0xcd, 0xa8, 0xe9, 0xa7, 0x8b, 0x3b, 0x2b,
+ 0x70, 0x49, 0xbf, 0x3e, 0x77, 0xc5, 0x5d, 0x8a, 0x8a, 0x7b, 0xaa, 0x02,
+ 0x5c, 0x6b, 0xbc, 0x1f, 0x83, 0x43, 0x80, 0x1d, 0x33, 0x06, 0x87, 0xf9,
+ 0x3a, 0xa8, 0x8d, 0x2b, 0xa9, 0x86, 0xf6, 0x06, 0xa5, 0x26, 0x61, 0x5b,
+ 0x9e, 0x22, 0xbb, 0x12, 0xec, 0x28, 0xe0, 0x2d, 0x21, 0x4e, 0xbc, 0xee,
+ 0xfa, 0x8f, 0x7b, 0x3b, 0x3b, 0xbb, 0xfb, 0xbb, 0x9f, 0xbd, 0xd8, 0xd9,
+ 0xdf, 0xdd, 0xdd, 0xdd, 0xdb, 0xdf, 0xdd, 0xdf, 0xdf, 0xdb, 0xf9, 0x69,
+ 0x9b, 0x4d, 0x47, 0x77, 0x69, 0x72, 0xef, 0x2a, 0xc9, 0x7f, 0x27, 0xd7,
+ 0x34, 0xfc, 0x05, 0x2b, 0x71, 0x03, 0x32, 0x97, 0x54, 0x0d, 0xd7, 0x04,
+ 0x1f, 0x87, 0x4c, 0x20, 0xc1, 0xd7, 0x02, 0x48, 0xb6, 0xf0, 0xd9, 0x8a,
+ 0x38, 0x83, 0x01, 0x60, 0x32, 0x46, 0xf5, 0xb7, 0x25, 0xcf, 0x74, 0xc4,
+ 0xd2, 0x00, 0x44, 0x9a, 0xc2, 0xe5, 0x86, 0x5d, 0x4f, 0xb3, 0xd1, 0x08,
+ 0x01, 0xf0, 0x2e, 0x3d, 0x72, 0x10, 0x31, 0x32, 0xe7, 0xad, 0x90, 0x84,
+ 0x3a, 0x0d, 0x10, 0x9e, 0x26, 0x07, 0xdd, 0xaf, 0x8e, 0xc8, 0x5d, 0x1a,
+ 0x92, 0x3b, 0xce, 0x18, 0x95, 0x7e, 0xc2, 0x4c, 0x89, 0x16, 0x29, 0x77,
+ 0x69, 0x13, 0xd1, 0x55, 0xf2, 0xd9, 0xce, 0xfe, 0x3e, 0x17, 0x8e, 0xf8,
+ 0xfd, 0x6e, 0x4f, 0x23, 0x0b, 0xc3, 0x70, 0xe9, 0x9e, 0xbb, 0x9d, 0xa4,
+ 0x0d, 0xd6, 0x3e, 0xc2, 0x79, 0xce, 0x97, 0xb3, 0x24, 0x57, 0x3d, 0x04,
+ 0xf7, 0xa1, 0x00, 0xc8, 0x30, 0x31, 0xda, 0x90, 0xdd, 0xb3, 0x28, 0x85,
+ 0x02, 0x93, 0xbc, 0xe4, 0x37, 0xf8, 0xcb, 0x53, 0xcf, 0x39, 0x8e, 0xca,
+ 0x5c, 0x8a, 0x4c, 0xf2, 0xc3, 0x10, 0xc8, 0x81, 0x8a, 0x91, 0xdd, 0x86,
+ 0xb2, 0xaa, 0xe6, 0x74, 0xfc, 0x18, 0x0c, 0x7e, 0xef, 0xd9, 0xee, 0x4f,
+ 0x12, 0xc8, 0xc6, 0x04, 0xee, 0x57, 0x41, 0x4b, 0x83, 0x4d, 0x54, 0x1e,
+ 0x91, 0x34, 0x30, 0x25, 0x8c, 0xcd, 0x64, 0x70, 0x3d, 0x30, 0x21, 0x41,
+ 0x0d, 0x87, 0xbd, 0x30, 0x9c, 0x58, 0x10, 0xac, 0xa5, 0x26, 0x3b, 0xd4,
+ 0x2e, 0xb3, 0x0d, 0x99, 0x6d, 0x57, 0xec, 0x92, 0x95, 0x1a, 0x2f, 0x1b,
+ 0x74, 0x65, 0x1c, 0x9c, 0x9c, 0x72, 0xbc, 0xca, 0x29, 0x49, 0x60, 0x43,
+ 0x63, 0x65, 0x08, 0xe9, 0x41, 0xbc, 0xcd, 0x3c, 0xe5, 0xdb, 0xb4, 0xe7,
+ 0xa0, 0xe5, 0x2d, 0x2c, 0x1e, 0x62, 0x05, 0xdb, 0xdd, 0x45, 0x32, 0x57,
+ 0x1c, 0x28, 0x92, 0x87, 0x89, 0x9f, 0x15, 0x62, 0x4e, 0x01, 0xdc, 0x22,
+ 0xe3, 0x10, 0xc3, 0xc7, 0x01, 0x89, 0x57, 0x16, 0x1e, 0xd5, 0x2c, 0xf2,
+ 0x64, 0x9a, 0xdc, 0xa9, 0xdd, 0x43, 0xc0, 0xeb, 0xbe, 0x52, 0xf7, 0x82,
+ 0x14, 0xb3, 0x2b, 0xbd, 0x97, 0xa4, 0xe2, 0xc1, 0xe0, 0x3e, 0xb7, 0x25,
+ 0xef, 0xdf, 0xa7, 0x73, 0xa3, 0xf8, 0xaf, 0x03, 0x5c, 0x36, 0x6f, 0x0e,
+ 0xbf, 0xd7, 0x67, 0x11, 0x54, 0xe3, 0x90, 0xde, 0x15, 0x9a, 0xb1, 0x5b,
+ 0x8f, 0x0a, 0x14, 0x55, 0xde, 0xca, 0x21, 0x89, 0x59, 0xac, 0x67, 0x98,
+ 0x98, 0x62, 0xcc, 0x63, 0xa9, 0xa5, 0xc7, 0x26, 0x14, 0xb4, 0x74, 0x45,
+ 0xf2, 0x12, 0x23, 0x9f, 0xf7, 0x22, 0x5f, 0x38, 0x3e, 0x9b, 0xd2, 0x9f,
+ 0x08, 0x74, 0xe0, 0x55, 0xc7, 0xb3, 0x8c, 0xe9, 0x17, 0x84, 0x1f, 0xd1,
+ 0x9f, 0x12, 0xf6, 0xaa, 0x7f, 0xa1, 0xa9, 0x7c, 0x09, 0xe8, 0xc8, 0x9e,
+ 0x10, 0x2b, 0xfb, 0x03, 0xca, 0xf1, 0xc0, 0x8d, 0x5e, 0xdd, 0x71, 0x32,
+ 0xfe, 0x23, 0xf3, 0x16, 0x19, 0x9b, 0xc8, 0x72, 0x5b, 0x5d, 0xd9, 0x85,
+ 0x91, 0x54, 0xaf, 0xfa, 0x72, 0xc9, 0x76, 0x6a, 0x57, 0x9d, 0x81, 0x47,
+ 0x31, 0x63, 0xd2, 0x4a, 0xa4, 0x50, 0x9c, 0x6b, 0x9c, 0x05, 0xae, 0x25,
+ 0xed, 0xae, 0xb4, 0x7e, 0x9a, 0xdd, 0x73, 0x95, 0xbb, 0xab, 0x2b, 0xae,
+ 0x5b, 0x7e, 0x36, 0xf7, 0x10, 0x91, 0xcc, 0x55, 0xe5, 0xc1, 0x99, 0x95,
+ 0xd6, 0xa0, 0xb9, 0x59, 0x01, 0x7b, 0x0b, 0x5c, 0x1c, 0x44, 0x07, 0x58,
+ 0x25, 0x92, 0x85, 0xd0, 0x9c, 0xb8, 0xd9, 0x20, 0x0e, 0xd6, 0xe2, 0xe4,
+ 0xb4, 0x04, 0x2f, 0xdf, 0x90, 0x33, 0x94, 0xfb, 0xe3, 0x98, 0xb0, 0x59,
+ 0x36, 0xb7, 0xb0, 0xe7, 0x65, 0x21, 0x80, 0x61, 0x56, 0xaf, 0x77, 0x43,
+ 0x6c, 0x86, 0xe9, 0x54, 0x11, 0x7a, 0x55, 0x70, 0xc6, 0x1b, 0xe1, 0x64,
+ 0x26, 0xfd, 0xc5, 0xcd, 0xc2, 0x76, 0xda, 0xf8, 0x95, 0x30, 0x33, 0x0d,
+ 0xb4, 0xc5, 0xf5, 0x76, 0xfe, 0xf5, 0xf9, 0x20, 0x3a, 0xe6, 0x96, 0x64,
+ 0x4c, 0x7a, 0x0f, 0x41, 0x83, 0xa2, 0xef, 0x68, 0xb2, 0xd7, 0xcc, 0xc0,
+ 0xcf, 0x72, 0xfe, 0x0b, 0xad, 0xe9, 0x97, 0x62, 0x34, 0xc1, 0xb7, 0xd5,
+ 0x5e, 0xa9, 0x21, 0x8b, 0x88, 0x3b, 0xc7, 0xef, 0x74, 0x54, 0x88, 0x3b,
+ 0xba, 0x6d, 0xf2, 0x3d, 0x64, 0x79, 0x05, 0x5e, 0x41, 0xde, 0x8c, 0x88,
+ 0x69, 0x82, 0xf5, 0x2d, 0x56, 0xd8, 0x3f, 0x28, 0xdc, 0xc0, 0xe4, 0xd0,
+ 0xeb, 0x41, 0x1a, 0x08, 0x48, 0x4b, 0xc9, 0xcf, 0x05, 0xd6, 0xc8, 0xb9,
+ 0xca, 0x05, 0x58, 0x20, 0x4f, 0x34, 0x0c, 0x29, 0x53, 0x07, 0x86, 0xe8,
+ 0x1b, 0x45, 0x52, 0x3b, 0xae, 0x81, 0x78, 0x65, 0x5f, 0xb0, 0x50, 0xcc,
+ 0x63, 0x21, 0x26, 0x44, 0x5b, 0x30, 0xd8, 0xf8, 0x7f, 0x01, 0xee, 0x5f,
+ 0x84, 0x44, 0xed, 0x09, 0x02, 0x00,
};
#define BUF_SIZE 0x10000
/* Decompress and send to stdout a gzip-compressed buffer */
diff --git a/src/main.c b/src/main.c
index 95b47ea3..a38ad621 100644
--- a/src/main.c
+++ b/src/main.c
@@ -51,6 +51,8 @@
#endif
#include "rawstr.h"
+#include "xattr.h"
+
#define CURLseparator "--_curl_--"
#ifdef NETWARE
@@ -579,6 +581,7 @@ struct Configurable {
struct curl_httppost *httppost;
struct curl_httppost *last_post;
struct curl_slist *telnet_options;
+ struct curl_slist *resolve;
HttpReq httpreq;
/* for bandwidth limiting features: */
@@ -621,6 +624,7 @@ struct Configurable {
int default_node_flags; /* default flags to seach for each 'node', which is
basically each given URL to transfer */
struct OutStruct *outs;
+ bool xattr; /* store metadata in extended attributes */
};
#define WARN_PREFIX "Warning: "
@@ -866,6 +870,7 @@ static void help(void)
" --remote-name-all Use the remote file name for all URLs",
" -R/--remote-time Set the remote file's time on the local output",
" -X/--request <command> Specify request command to use",
+ " --resolve <host:port:address> Force resolve of HOST:PORT to ADDRESS",
" --retry <num> Retry request <num> times if transient problems occur",
" --retry-delay <seconds> When retrying, wait this many seconds between each",
" --retry-max-time <seconds> Retry only within this period",
@@ -906,6 +911,7 @@ static void help(void)
" --wdebug Turn on Watt-32 debugging",
#endif
" -w/--write-out <format> What to output after completion",
+ " --xattr Store metadata in extended file attributes",
" -q If used as the first parameter disables .curlrc",
NULL
};
@@ -1138,7 +1144,7 @@ static int formparse(struct Configurable *config,
char *sep2;
if((1 == sscanf(input, "%255[^=]=", name)) &&
- (contp = strchr(input, '='))) {
+ ((contp = strchr(input, '=')) != NULL)) {
/* the input was using the correct format */
/* Allocate the contents */
@@ -1503,12 +1509,15 @@ static void cleanarg(char *str)
static int str2num(long *val, const char *str)
{
- int retcode = 0;
- if(str && ISDIGIT(*str))
- *val = atoi(str);
- else
- retcode = 1; /* badness */
- return retcode;
+ if(str && ISDIGIT(*str)) {
+ char *endptr;
+ long num = strtol(str, &endptr, 10);
+ if((endptr != str) && (endptr == str + strlen(str))) {
+ *val = num;
+ return 0; /* Ok */
+ }
+ }
+ return 1; /* badness */
}
/*
@@ -1877,6 +1886,7 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
{"$C", "ftp-pret", FALSE},
{"$D", "proto", TRUE},
{"$E", "proto-redir", TRUE},
+ {"$F", "resolve", TRUE},
{"0", "http1.0", FALSE},
{"1", "tlsv1", FALSE},
{"2", "sslv2", FALSE},
@@ -1953,6 +1963,7 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
{"y", "speed-time", TRUE},
{"z", "time-cond", TRUE},
{"#", "progress-bar",FALSE},
+ {"~", "xattr",FALSE},
};
if(('-' != flag[0]) ||
@@ -2116,6 +2127,8 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
break;
case 'j': /* --compressed */
+ if(toggle && !(curlinfo->features & CURL_VERSION_LIBZ))
+ return PARAM_LIBCURL_DOESNT_SUPPORT;
config->encoding = toggle;
break;
@@ -2233,7 +2246,7 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
default: /* the URL! */
{
struct getout *url;
- if(config->url_get || (config->url_get=config->url_list)) {
+ if(config->url_get || ((config->url_get = config->url_list) != NULL)) {
/* there's a node here, if it already is filled-in continue to find
an "empty" node */
while(config->url_get && (config->url_get->flags&GETOUT_URL))
@@ -2260,6 +2273,8 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
case '$': /* more options without a short option */
switch(subletter) {
case 'a': /* --ftp-ssl */
+ if(toggle && !(curlinfo->features & CURL_VERSION_SSL))
+ return PARAM_LIBCURL_DOESNT_SUPPORT;
config->ftp_ssl = toggle;
break;
case 'b': /* --ftp-pasv */
@@ -2351,12 +2366,16 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
GetStr(&config->ftp_alternative_to_user, nextarg);
break;
case 'v': /* --ftp-ssl-reqd */
+ if(toggle && !(curlinfo->features & CURL_VERSION_SSL))
+ return PARAM_LIBCURL_DOESNT_SUPPORT;
config->ftp_ssl_reqd = toggle;
break;
case 'w': /* --no-sessionid */
config->disable_sessionid = (bool)(!toggle);
break;
case 'x': /* --ftp-ssl-control */
+ if(toggle && !(curlinfo->features & CURL_VERSION_SSL))
+ return PARAM_LIBCURL_DOESNT_SUPPORT;
config->ftp_ssl_control = toggle;
break;
case 'y': /* --ftp-ssl-ccc */
@@ -2429,6 +2448,9 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
if(proto2num(config, &config->proto_redir, nextarg))
return PARAM_BAD_USE;
break;
+ case 'F': /* --resolve */
+ err = add2list(&config->resolve, nextarg);
+ break;
}
break;
case '#': /* --progress-bar */
@@ -2437,6 +2459,9 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
else
config->progressmode = CURL_PROGRESS_STATS;
break;
+ case '~': /* --xattr */
+ config->xattr = toggle;
+ break;
case '0':
/* HTTP version 1.0 */
config->httpversion = CURL_HTTP_VERSION_1_0;
@@ -2879,7 +2904,7 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
/* output file */
{
struct getout *url;
- if(config->url_out || (config->url_out=config->url_list)) {
+ if(config->url_out || ((config->url_out = config->url_list) != NULL)) {
/* there's a node here, if it already is filled-in continue to find
an "empty" node */
while(config->url_out && (config->url_out->flags&GETOUT_OUTFILE))
@@ -3007,7 +3032,7 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
/* we are uploading */
{
struct getout *url;
- if(config->url_out || (config->url_out=config->url_list)) {
+ if(config->url_out || ((config->url_out = config->url_list) != NULL)) {
/* there's a node here, if it already is filled-in continue to find
an "empty" node */
while(config->url_out && (config->url_out->flags&GETOUT_UPLOAD))
@@ -3689,7 +3714,12 @@ void progressbarinit(struct ProgressData *bar,
* we're using our own way to determine screen width */
colp = curlx_getenv("COLUMNS");
if(colp != NULL) {
- bar->width = atoi(colp);
+ char *endptr;
+ long num = strtol(colp, &endptr, 10);
+ if((endptr != colp) && (endptr == colp + strlen(colp)) && (num > 0))
+ bar->width = (int)num;
+ else
+ bar->width = 79;
curl_free(colp);
}
else
@@ -4027,6 +4057,7 @@ static void free_config_fields(struct Configurable *config)
curl_slist_free_all(config->headers);
curl_slist_free_all(config->telnet_options);
curl_slist_free_all(config->mail_rcpt);
+ curl_slist_free_all(config->resolve);
if(config->easy)
curl_easy_cleanup(config->easy);
@@ -4172,15 +4203,9 @@ static CURLcode _my_setopt(CURL *curl, bool str, struct Configurable *config,
static const char * const srchead[]={
"/********* Sample code generated by the curl command line tool **********",
- " * Add error code checking where appropriate!",
- " * Compile this with a suitable header include path. Then link with ",
- " * libcurl.",
- " * If you use any *_LARGE options, make sure your compiler figure",
- " * out the correct size for the curl_off_t variable.",
- " * Read the details for all curl_easy_setopt() options online on:",
- " * http://curlm.haxx.se/libcurl/c/curl_easy_setopt.html",
+ " * All curl_easy_setopt() options are documented at:",
+ " * http://curl.haxx.se/libcurl/c/curl_easy_setopt.html",
" ************************************************************************/",
- "[m]",
"#include <curl/curl.h>",
"",
"int main(int argc, char *argv[])",
@@ -4209,17 +4234,8 @@ static void dumpeasycode(struct Configurable *config)
int i;
const char *c;
- for(i=0; (c = srchead[i]); i++) {
- if(!memcmp((char *)c, "[m]", 3)) {
-#if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS > 32)
- fprintf(out, "#define _FILE_OFFSET_BITS %d "
- "/* for pre libcurl 7.19.0 curl_off_t magic */\n",
- _FILE_OFFSET_BITS);
-#endif
- }
- else
- fprintf(out, "%s\n", c);
- }
+ for(i=0; ((c = srchead[i]) != '\0'); i++)
+ fprintf(out, "%s\n", c);
ptr = easycode;
while(ptr) {
@@ -4505,7 +4521,10 @@ operate(struct Configurable *config, int argc, argv_item_t argv[])
}
env = curlx_getenv("CURL_MEMLIMIT");
if(env) {
- curl_memlimit(atoi(env));
+ char *endptr;
+ long num = strtol(env, &endptr, 10);
+ if((endptr != env) && (endptr == env + strlen(env)) && (num > 0))
+ curl_memlimit(num);
curl_free(env);
}
#endif
@@ -4777,9 +4796,9 @@ operate(struct Configurable *config, int argc, argv_item_t argv[])
single globbed string. If no upload, we enter the loop once anyway. */
for(up = 0;
(!up && !infiles) ||
- (uploadfile = inglob?
+ ((uploadfile = inglob?
glob_next_url(inglob):
- (!up?strdup(infiles):NULL));
+ (!up?strdup(infiles):NULL)) != NULL);
up++) {
int separator = 0;
long retry_numretries;
@@ -4802,7 +4821,7 @@ operate(struct Configurable *config, int argc, argv_item_t argv[])
/* Here's looping around each globbed URL */
for(i = 0;
- (url = urls?glob_next_url(urls):(i?NULL:strdup(url)));
+ ((url = urls?glob_next_url(urls):(i?NULL:strdup(url))) != NULL);
i++) {
/* NOTE: In the condition expression in the for() statement above, the
'url' variable is only ever strdup()ed if(i == 0) and thus never
@@ -5437,6 +5456,10 @@ operate(struct Configurable *config, int argc, argv_item_t argv[])
my_setopt(curl, CURLOPT_HEADERDATA, &outs);
}
+ if(config->resolve)
+ /* new in 7.21.3 */
+ my_setopt(curl, CURLOPT_RESOLVE, config->resolve);
+
retry_numretries = config->req_retry;
retrystart = cutil_tvnow();
@@ -5621,9 +5644,17 @@ operate(struct Configurable *config, int argc, argv_item_t argv[])
}
}
}
-
if(outfile && !curlx_strequal(outfile, "-") && outs.stream) {
- int rc = fclose(outs.stream);
+ int rc;
+
+ if(config->xattr) {
+ rc = fwrite_xattr(curl, fileno(outs.stream) );
+ if(rc)
+ warnf(config, "Error setting extended attributes: %s\n",
+ strerror(errno) );
+ }
+
+ rc = fclose(outs.stream);
if(!res && rc) {
/* something went wrong in the writing process */
res = CURLE_WRITE_ERROR;
diff --git a/src/makefile.dj b/src/makefile.dj
index fc3ae16d..49929085 100644
--- a/src/makefile.dj
+++ b/src/makefile.dj
@@ -46,9 +46,9 @@ $(PROGRAM): $(OBJECTS) ../lib/libcurl.a
curl_config.h:
ifeq ($(IS_UNIX_SHELL),1)
- @echo '#include "../lib/config.dos"' > $@
+ @echo '#include "../lib/config-dos.h"' > $@
else
- @echo #include "../lib/config.dos" > $@
+ @echo #include "../lib/config-dos.h" > $@
endif
#
diff --git a/src/vc6curlsrc.dsp b/src/vc6curlsrc.dsp
index 642cd5d3..1fb1d7bf 100644
--- a/src/vc6curlsrc.dsp
+++ b/src/vc6curlsrc.dsp
@@ -185,6 +185,10 @@ SOURCE=.\writeenv.c
SOURCE=.\writeout.c
# End Source File
+# Begin Source File
+
+SOURCE=.\xattr.c
+# End Source File
# End Group
# Begin Group "Header Files"
@@ -245,6 +249,10 @@ SOURCE=.\writeenv.h
SOURCE=.\writeout.h
# End Source File
+# Begin Source File
+
+SOURCE=.\xattr.h
+# End Source File
# End Group
# Begin Group "Resource Files"
diff --git a/src/version.h b/src/version.h
index 676102fa..31140cea 100644
--- a/src/version.h
+++ b/src/version.h
@@ -26,7 +26,7 @@
#define CURL_NAME "curl"
#define CURL_COPYRIGHT LIBCURL_COPYRIGHT
-#define CURL_VERSION "7.21.2"
+#define CURL_VERSION "7.21.3"
#define CURL_VERSION_MAJOR LIBCURL_VERSION_MAJOR
#define CURL_VERSION_MINOR LIBCURL_VERSION_MINOR
#define CURL_VERSION_PATCH LIBCURL_VERSION_PATCH
diff --git a/src/xattr.c b/src/xattr.c
new file mode 100644
index 00000000..3af3282a
--- /dev/null
+++ b/src/xattr.c
@@ -0,0 +1,75 @@
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 2010, 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 http://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.
+ *
+ ***************************************************************************/
+
+/* client-local setup.h */
+#include "setup.h"
+#include <curl/curl.h>
+#include "xattr.h"
+
+#ifdef HAVE_FSETXATTR
+#include <sys/types.h>
+#include <string.h>
+#include <sys/xattr.h> /* include header from libc, not from libattr */
+
+/* mapping table of curl metadata to extended attribute names */
+static const struct xattr_mapping {
+ const char *attr; /* name of the xattr */
+ CURLINFO info;
+} mappings[] = {
+ /* mappings proposed by
+ * http://freedesktop.org/wiki/CommonExtendedAttributes
+ */
+ { "user.xdg.origin.url", CURLINFO_EFFECTIVE_URL },
+ { "user.mime_type", CURLINFO_CONTENT_TYPE },
+ { NULL, CURLINFO_NONE } /* last element, abort loop here */
+};
+
+/* store metadata from the curl request alongside the downloaded
+ * file using extended attributes
+ */
+int fwrite_xattr(CURL *curl, int fd)
+{
+ int i = 0;
+ int err = 0;
+ /* loop through all xattr-curlinfo pairs and abort on a set error */
+ while ( err == 0 && mappings[i].attr != NULL ) {
+ char *value = NULL;
+ CURLcode rc = curl_easy_getinfo(curl, mappings[i].info, &value);
+ if ( rc == CURLE_OK && value ) {
+#ifdef HAVE_FSETXATTR_6
+ err = fsetxattr( fd, mappings[i].attr, value, strlen(value), 0, 0 );
+#elif defined(HAVE_FSETXATTR_5)
+ err = fsetxattr( fd, mappings[i].attr, value, strlen(value), 0 );
+#endif
+ }
+ i++;
+ }
+ return err;
+}
+#else
+int fwrite_xattr(CURL *curl, int fd)
+{
+ (void)curl;
+ (void)fd;
+ return 0;
+}
+#endif
diff --git a/src/xattr.h b/src/xattr.h
new file mode 100644
index 00000000..fea98f18
--- /dev/null
+++ b/src/xattr.h
@@ -0,0 +1,26 @@
+#ifndef __XATTR_H
+#define __XATTR_H
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 2010, 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 http://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 fwrite_xattr(CURL *curl, int fd);
+
+#endif
diff --git a/tests/FILEFORMAT b/tests/FILEFORMAT
index fb162a35..6a61dd00 100644
--- a/tests/FILEFORMAT
+++ b/tests/FILEFORMAT
@@ -224,7 +224,7 @@ command is run. They are cleared again after the command has been run.
Variables are first substituted as in the <command> section.
</setenv>
-<command [option="no-output"] [timeout="secs"] [delay="secs"]>
+<command [option="no-output"] [timeout="secs"] [delay="secs"] [type="perl"]>
command line to run, there's a bunch of %variables that get replaced
accordingly.
@@ -237,6 +237,9 @@ If a CONNECT is used to the server (to emulate HTTPS etc over proxy), the port
number given in the CONNECT request will be used to identify which test that
is being run, if the proxy host name is said to start with 'test'.
+Set type="perl" to write the test case as a perl script. It implies that
+there's no memory debugging and valgrind gets shut off for this test.
+
Set option="no-output" to prevent the test script to slap on the --output
argument that directs the output to a file. The --output is also not added if
the verify/stdout section is used.
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 1d5a4afa..78450b10 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -5,7 +5,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2010, 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,7 +27,7 @@ EXTRA_DIST = ftpserver.pl httpserver.pl secureserver.pl runtests.pl getpart.pm \
FILEFORMAT README stunnel.pem memanalyze.pl testcurl.pl valgrind.pm ftp.pm \
sshserver.pl sshhelp.pm testcurl.1 runtests.1 $(HTMLPAGES) $(PDFPAGES) \
CMakeLists.txt certs/scripts/*.sh certs/Server* certs/EdelCurlRoot* \
- serverhelp.pm tftpserver.pl rtspserver.pl directories.pm
+ serverhelp.pm tftpserver.pl rtspserver.pl directories.pm symbol-scan.pl
SUBDIRS = data server libtest
diff --git a/tests/Makefile.in b/tests/Makefile.in
index a944800b..b37dd417 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -21,7 +21,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2010, 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,7 +276,7 @@ EXTRA_DIST = ftpserver.pl httpserver.pl secureserver.pl runtests.pl getpart.pm \
FILEFORMAT README stunnel.pem memanalyze.pl testcurl.pl valgrind.pm ftp.pm \
sshserver.pl sshhelp.pm testcurl.1 runtests.1 $(HTMLPAGES) $(PDFPAGES) \
CMakeLists.txt certs/scripts/*.sh certs/Server* certs/EdelCurlRoot* \
- serverhelp.pm tftpserver.pl rtspserver.pl directories.pm
+ serverhelp.pm tftpserver.pl rtspserver.pl directories.pm symbol-scan.pl
SUBDIRS = data server libtest
PERLFLAGS = -I$(srcdir)
@@ -303,9 +303,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --foreign tests/Makefile
+ $(AUTOMAKE) --gnu tests/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am
index 93709741..d4fa32ab 100644
--- a/tests/data/Makefile.am
+++ b/tests/data/Makefile.am
@@ -68,7 +68,7 @@ EXTRA_DIST = test1 test108 test117 test127 test20 test27 test34 test46 \
test1108 test1109 test1110 test1111 test1112 test129 test567 test568 \
test569 test570 test571 test572 test804 test805 test806 test807 test573 \
test313 test1115 test578 test579 test1116 test1200 test1201 test1202 \
- test1203 test1117
+ test1203 test1117 test1118 test1119 test1120
filecheck:
@mkdir test-place; \
diff --git a/tests/data/Makefile.in b/tests/data/Makefile.in
index 435b126c..26522c3e 100644
--- a/tests/data/Makefile.in
+++ b/tests/data/Makefile.in
@@ -305,7 +305,7 @@ EXTRA_DIST = test1 test108 test117 test127 test20 test27 test34 test46 \
test1108 test1109 test1110 test1111 test1112 test129 test567 test568 \
test569 test570 test571 test572 test804 test805 test806 test807 test573 \
test313 test1115 test578 test579 test1116 test1200 test1201 test1202 \
- test1203 test1117
+ test1203 test1117 test1118 test1119 test1120
all: all-am
@@ -319,9 +319,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/data/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/data/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --foreign tests/data/Makefile
+ $(AUTOMAKE) --gnu tests/data/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
diff --git a/tests/data/test1057 b/tests/data/test1057
index cfb88f2c..b4ef20c8 100644
--- a/tests/data/test1057
+++ b/tests/data/test1057
@@ -45,6 +45,7 @@ TYPE I
SIZE 1057
REST 52
RETR 1057
+ABOR
QUIT
</protocol>
</verify>
diff --git a/tests/data/test1118 b/tests/data/test1118
new file mode 100644
index 00000000..bc776aff
--- /dev/null
+++ b/tests/data/test1118
@@ -0,0 +1,55 @@
+<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
+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
+
+-foo-
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+http
+</server>
+ <name>
+URL without slash and @-letter in query
+ </name>
+ <command>
+http://%HOSTIP:%HTTPPORT?email=name@example.com/1118
+</command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<strip>
+^User-Agent:.*
+</strip>
+<protocol>
+GET /?email=name@example.com/1118 HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+Accept: */*
+
+</protocol>
+</verify>
+</testcase>
diff --git a/tests/data/test1119 b/tests/data/test1119
new file mode 100644
index 00000000..4b5a9ec7
--- /dev/null
+++ b/tests/data/test1119
@@ -0,0 +1,24 @@
+<testcase>
+<info>
+<keywords>
+symbols-in-versions
+</keywords>
+</info>
+
+#
+# Client-side
+<client>
+<server>
+none
+</server>
+
+ <name>
+Verify that symbols-in-versions and headers are in sync
+ </name>
+
+<command type="perl">
+%SRCDIR/symbol-scan.pl %SRCDIR/.. ../include/curl
+</command>
+</client>
+
+</testcase>
diff --git a/tests/data/test1120 b/tests/data/test1120
new file mode 100644
index 00000000..ddec00a0
--- /dev/null
+++ b/tests/data/test1120
@@ -0,0 +1,44 @@
+<testcase>
+<info>
+<keywords>
+FTP
+PORT
+RETR
+421
+</keywords>
+</info>
+# Server-side
+<reply>
+<servercmd>
+REPLY CWD 421 Timeout!
+</server>
+</reply>
+
+# Client-side
+<client>
+<server>
+ftp
+</server>
+ <name>
+FTP with 421 timeout response
+ </name>
+ <command>
+ftp://%HOSTIP:%FTPPORT/a/path/1120
+</command>
+</client>
+
+# Verify data after the test has been "shot"
+<verify>
+# Strip all valid kinds of PORT and EPRT that curl can send
+<protocol>
+USER anonymous
+PASS ftp@example.com
+PWD
+CWD a
+</protocol>
+# CURLE_OPERATION_TIMEDOUT is 28
+<errorcode>
+28
+</errorcode>
+</verify>
+</testcase>
diff --git a/tests/data/test1203 b/tests/data/test1203
index 3cb83be1..02d094da 100644
--- a/tests/data/test1203
+++ b/tests/data/test1203
@@ -29,7 +29,7 @@ gopher-ipv6
Gopher IPv6 index
</name>
<command>
--g gopher://%HOSTIP:%GOPHER6PORT/1/moo/1203
+-g gopher://%HOST6IP:%GOPHER6PORT/1/moo/1203
</command>
</client>
diff --git a/tests/data/test135 b/tests/data/test135
index a051dba2..10eb0eac 100644
--- a/tests/data/test135
+++ b/tests/data/test135
@@ -47,6 +47,7 @@ TYPE I
SIZE 135
REST 4
RETR 135
+ABOR
QUIT
</protocol>
</verify>
diff --git a/tests/data/test191 b/tests/data/test191
index 090d4c5b..2c56cc82 100644
--- a/tests/data/test191
+++ b/tests/data/test191
@@ -15,7 +15,7 @@ ftp
FTP URL with ?-letters in username and password
</name>
<command>
-"ftp://use?r:pass?word@%HOSTIP:%FTPPORT/191"
+"ftp://use%3fr:pass%3fword@%HOSTIP:%FTPPORT/191"
</command>
</client>
diff --git a/tests/ftpserver.pl b/tests/ftpserver.pl
index ed2a8326..bbbf7be2 100755
--- a/tests/ftpserver.pl
+++ b/tests/ftpserver.pl
@@ -26,7 +26,7 @@
# In December 2009 we started remaking the server to support more protocols
# that are similar in spirit. Like POP3, IMAP and SMTP in addition to the FTP
# it already supported since a long time. Note that it still only supports one
-# protocol per invoke. You need to start mulitple servers to support multiple
+# protocol per invoke. You need to start multiple servers to support multiple
# protocols simultaneously.
#
# It is meant to exercise curl, it is not meant to be a fully working
diff --git a/tests/libtest/first.c b/tests/libtest/first.c
index 770f9d52..a0e713f4 100644
--- a/tests/libtest/first.c
+++ b/tests/libtest/first.c
@@ -59,7 +59,10 @@ int main(int argc, char **argv)
/* this enables the fail-on-alloc-number-N functionality */
env = curl_getenv("CURL_MEMLIMIT");
if(env) {
- curl_memlimit(atoi(env));
+ char *endptr;
+ long num = strtol(env, &endptr, 10);
+ if((endptr != env) && (endptr == env + strlen(env)) && (num > 0))
+ curl_memlimit(num);
curl_free(env);
}
#endif
diff --git a/tests/libtest/lib521.c b/tests/libtest/lib521.c
index a4ae5558..9e79cb41 100644
--- a/tests/libtest/lib521.c
+++ b/tests/libtest/lib521.c
@@ -28,7 +28,7 @@ int test(char *URL)
}
test_setopt(curl, CURLOPT_URL, URL);
- test_setopt(curl, CURLOPT_PORT, atoi(libtest_arg2));
+ test_setopt(curl, CURLOPT_PORT, strtol(libtest_arg2, NULL, 10));
test_setopt(curl, CURLOPT_USERPWD, "xxx:yyy");
test_setopt(curl, CURLOPT_VERBOSE, 1L);
diff --git a/tests/libtest/lib562.c b/tests/libtest/lib562.c
index d78ecce2..acdd79aa 100644
--- a/tests/libtest/lib562.c
+++ b/tests/libtest/lib562.c
@@ -57,7 +57,7 @@ int test(char *URL)
test_setopt(curl, CURLOPT_VERBOSE, 1L);
/* set port number */
- test_setopt(curl, CURLOPT_PORT, atoi(libtest_arg2) );
+ test_setopt(curl, CURLOPT_PORT, strtol(libtest_arg2, NULL, 10));
/* specify target */
test_setopt(curl,CURLOPT_URL, URL);
diff --git a/tests/runtests.pl b/tests/runtests.pl
index 347adf7e..2eb65fd9 100755
--- a/tests/runtests.pl
+++ b/tests/runtests.pl
@@ -2246,6 +2246,7 @@ sub singletest {
my $why;
my %feature;
my $cmd;
+ my $disablevalgrind;
# copy test number to a global scope var, this allows
# testnum checking when starting test harness servers.
@@ -2485,9 +2486,6 @@ sub singletest {
@reply=@replycheck;
}
- # curl command to run
- my @curlcmd= fixarray ( getpart("client", "command") );
-
# this is the valid protocol blurb curl should generate
my @protocol= fixarray ( getpart("verify", "protocol") );
@@ -2541,12 +2539,12 @@ sub singletest {
my @blaha;
($cmd, @blaha)= getpart("client", "command");
- # make some nice replace operations
- $cmd =~ s/\n//g; # no newlines please
-
- # substitute variables in the command line
- subVariables \$cmd;
-
+ if($cmd) {
+ # make some nice replace operations
+ $cmd =~ s/\n//g; # no newlines please
+ # substitute variables in the command line
+ subVariables \$cmd;
+ }
if($curl_debug) {
unlink($memdump);
}
@@ -2597,14 +2595,31 @@ sub singletest {
}
}
+ my $CMDLINE;
my $cmdargs;
- if(!$tool) {
+ my $cmdtype = $cmdhash{'type'} || "default";
+ if($cmdtype eq "perl") {
+ # run the command line prepended with "perl"
+ $cmdargs ="$cmd";
+ $CMDLINE = "perl ";
+ $tool=$CMDLINE;
+ $disablevalgrind=1;
+ }
+ elsif(!$tool) {
# run curl, add --verbose for debug information output
$cmdargs ="$out --include --verbose --trace-time $cmd";
}
else {
$cmdargs = " $cmd"; # $cmd is the command line for the test file
$CURLOUT = $STDOUT; # sends received data to stdout
+
+ $CMDLINE="$LIBDIR/$tool";
+ if(! -f $CMDLINE) {
+ print "The tool set in the test case for this: '$tool' does not exist\n";
+ timestampskippedevents($testnum);
+ return -1;
+ }
+ $DBGCURL=$CMDLINE;
}
my @stdintest = getpart("client", "stdin");
@@ -2615,23 +2630,13 @@ sub singletest {
$cmdargs .= " <$stdinfile";
}
- my $CMDLINE;
if(!$tool) {
$CMDLINE="$CURL";
}
- else {
- $CMDLINE="$LIBDIR/$tool";
- if(! -f $CMDLINE) {
- print "The tool set in the test case for this: '$tool' does not exist\n";
- timestampskippedevents($testnum);
- return -1;
- }
- $DBGCURL=$CMDLINE;
- }
my $usevalgrind;
- if($valgrind) {
+ if($valgrind && !$disablevalgrind) {
my @valgrindoption = getpart("verify", "valgrind");
if((!@valgrindoption) || ($valgrindoption[0] !~ /disable/)) {
$usevalgrind = 1;
@@ -3069,7 +3074,8 @@ sub singletest {
if($curl_debug) {
if(! -f $memdump) {
- logmsg "\n** ALERT! memory debugging with no output file?\n";
+ logmsg "\n** ALERT! memory debugging with no output file?\n"
+ if(!$cmdtype eq "perl");
}
else {
my @memdata=`$memanalyze $memdump`;
@@ -3131,7 +3137,7 @@ sub singletest {
$ok .= "v";
}
else {
- if(!$short) {
+ if(!$short && !$disablevalgrind) {
logmsg " valgrind SKIPPED\n";
}
$ok .= "-"; # skipped
diff --git a/tests/server/Makefile.in b/tests/server/Makefile.in
index 69907fda..a998155d 100644
--- a/tests/server/Makefile.in
+++ b/tests/server/Makefile.in
@@ -410,22 +410,26 @@ resolve_SOURCES = $(CURLX_SRCS) $(CURLX_HDRS) $(USEFUL) $(UTIL) \
resolve_LDADD = @TEST_SERVER_LIBS@
resolve_CFLAGS = $(AM_CFLAGS)
rtspd_SOURCES = $(CURLX_SRCS) $(CURLX_HDRS) $(USEFUL) $(UTIL) \
+ server_sockaddr.h \
rtspd.c
rtspd_LDADD = @TEST_SERVER_LIBS@
rtspd_CFLAGS = $(AM_CFLAGS)
sockfilt_SOURCES = $(CURLX_SRCS) $(CURLX_HDRS) $(USEFUL) $(UTIL) \
+ server_sockaddr.h \
sockfilt.c \
$(top_srcdir)/lib/inet_pton.c
sockfilt_LDADD = @TEST_SERVER_LIBS@
sockfilt_CFLAGS = $(AM_CFLAGS)
sws_SOURCES = $(CURLX_SRCS) $(CURLX_HDRS) $(USEFUL) $(UTIL) \
+ server_sockaddr.h \
sws.c
sws_LDADD = @TEST_SERVER_LIBS@
sws_CFLAGS = $(AM_CFLAGS)
tftpd_SOURCES = $(CURLX_SRCS) $(CURLX_HDRS) $(USEFUL) $(UTIL) \
+ server_sockaddr.h \
tftpd.c \
tftp.h
diff --git a/tests/server/Makefile.inc b/tests/server/Makefile.inc
index c73a8515..be3f0680 100644
--- a/tests/server/Makefile.inc
+++ b/tests/server/Makefile.inc
@@ -39,22 +39,26 @@ resolve_LDADD = @TEST_SERVER_LIBS@
resolve_CFLAGS = $(AM_CFLAGS)
rtspd_SOURCES = $(CURLX_SRCS) $(CURLX_HDRS) $(USEFUL) $(UTIL) \
+ server_sockaddr.h \
rtspd.c
rtspd_LDADD = @TEST_SERVER_LIBS@
rtspd_CFLAGS = $(AM_CFLAGS)
sockfilt_SOURCES = $(CURLX_SRCS) $(CURLX_HDRS) $(USEFUL) $(UTIL) \
+ server_sockaddr.h \
sockfilt.c \
$(top_srcdir)/lib/inet_pton.c
sockfilt_LDADD = @TEST_SERVER_LIBS@
sockfilt_CFLAGS = $(AM_CFLAGS)
sws_SOURCES = $(CURLX_SRCS) $(CURLX_HDRS) $(USEFUL) $(UTIL) \
+ server_sockaddr.h \
sws.c
sws_LDADD = @TEST_SERVER_LIBS@
sws_CFLAGS = $(AM_CFLAGS)
tftpd_SOURCES = $(CURLX_SRCS) $(CURLX_HDRS) $(USEFUL) $(UTIL) \
+ server_sockaddr.h \
tftpd.c \
tftp.h
tftpd_LDADD = @TEST_SERVER_LIBS@
diff --git a/tests/server/rtspd.c b/tests/server/rtspd.c
index 788d61c3..5c06729e 100644
--- a/tests/server/rtspd.c
+++ b/tests/server/rtspd.c
@@ -58,6 +58,7 @@
#include "curlx.h" /* from the private lib dir */
#include "getpart.h"
#include "util.h"
+#include "server_sockaddr.h"
/* include memdebug.h last */
#include "memdebug.h"
@@ -530,8 +531,8 @@ static int ProcessRequest(struct httprequest *req)
/* if the host name starts with test, the port number used in the
CONNECT line will be used as test number! */
char *portp = strchr(doc, ':');
- if(portp)
- req->testno = atoi(portp+1);
+ if(portp && (*(portp+1) != '\0') && ISDIGIT(*(portp+1)))
+ req->testno = strtol(portp+1, NULL, 10);
else
req->testno = DOCNUMBER_CONNECT;
}
@@ -797,7 +798,7 @@ static int get_request(curl_socket_t sock, struct httprequest *req)
while(!done_processing && (req->offset < REQBUFSIZ-1)) {
if(pipereq_length && pipereq) {
memmove(reqbuf, pipereq, pipereq_length);
- got = pipereq_length;
+ got = curlx_uztosz(pipereq_length);
pipereq_length = 0;
}
else {
@@ -1169,10 +1170,7 @@ static int send_doc(curl_socket_t sock, struct httprequest *req)
int main(int argc, char *argv[])
{
- struct sockaddr_in me;
-#ifdef ENABLE_IPV6
- struct sockaddr_in6 me6;
-#endif /* ENABLE_IPV6 */
+ srvr_sockaddr_union_t me;
curl_socket_t sock = CURL_SOCKET_BAD;
curl_socket_t msgsock = CURL_SOCKET_BAD;
int wrotepidfile = 0;
@@ -1294,19 +1292,19 @@ int main(int argc, char *argv[])
#ifdef ENABLE_IPV6
if(!use_ipv6) {
#endif
- memset(&me, 0, sizeof(me));
- me.sin_family = AF_INET;
- me.sin_addr.s_addr = INADDR_ANY;
- me.sin_port = htons(port);
- rc = bind(sock, (struct sockaddr *) &me, sizeof(me));
+ memset(&me.sa4, 0, sizeof(me.sa4));
+ me.sa4.sin_family = AF_INET;
+ me.sa4.sin_addr.s_addr = INADDR_ANY;
+ me.sa4.sin_port = htons(port);
+ rc = bind(sock, &me.sa, sizeof(me.sa4));
#ifdef ENABLE_IPV6
}
else {
- memset(&me6, 0, sizeof(me6));
- me6.sin6_family = AF_INET6;
- me6.sin6_addr = in6addr_any;
- me6.sin6_port = htons(port);
- rc = bind(sock, (struct sockaddr *) &me6, sizeof(me6));
+ memset(&me.sa6, 0, sizeof(me.sa6));
+ me.sa6.sin6_family = AF_INET6;
+ me.sa6.sin6_addr = in6addr_any;
+ me.sa6.sin6_port = htons(port);
+ rc = bind(sock, &me.sa, sizeof(me.sa6));
}
#endif /* ENABLE_IPV6 */
if(0 != rc) {
diff --git a/tests/server/server_sockaddr.h b/tests/server/server_sockaddr.h
new file mode 100644
index 00000000..e2c059a2
--- /dev/null
+++ b/tests/server/server_sockaddr.h
@@ -0,0 +1,33 @@
+#ifndef HEADER_SERVER_SOCKADDR_H
+#define HEADER_SERVER_SOCKADDR_H
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2010, 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 http://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.
+ *
+ ***************************************************************************/
+
+typedef union {
+ struct sockaddr sa;
+ struct sockaddr_in sa4;
+#ifdef ENABLE_IPV6
+ struct sockaddr_in6 sa6;
+#endif
+} srvr_sockaddr_union_t;
+
+#endif /* HEADER_SERVER_SOCKADDR_H */
diff --git a/tests/server/sockfilt.c b/tests/server/sockfilt.c
index 714d6fcd..90ce9d91 100644
--- a/tests/server/sockfilt.c
+++ b/tests/server/sockfilt.c
@@ -109,6 +109,7 @@
#include "getpart.h"
#include "inet_pton.h"
#include "util.h"
+#include "server_sockaddr.h"
/* include memdebug.h last */
#include "memdebug.h"
@@ -688,10 +689,7 @@ static curl_socket_t sockdaemon(curl_socket_t sock,
unsigned short *listenport)
{
/* passive daemon style */
- struct sockaddr_in me;
-#ifdef ENABLE_IPV6
- struct sockaddr_in6 me6;
-#endif /* ENABLE_IPV6 */
+ srvr_sockaddr_union_t listener;
int flag;
int rc;
int totdelay = 0;
@@ -742,19 +740,19 @@ static curl_socket_t sockdaemon(curl_socket_t sock,
#ifdef ENABLE_IPV6
if(!use_ipv6) {
#endif
- memset(&me, 0, sizeof(me));
- me.sin_family = AF_INET;
- me.sin_addr.s_addr = INADDR_ANY;
- me.sin_port = htons(*listenport);
- rc = bind(sock, (struct sockaddr *) &me, sizeof(me));
+ memset(&listener.sa4, 0, sizeof(listener.sa4));
+ listener.sa4.sin_family = AF_INET;
+ listener.sa4.sin_addr.s_addr = INADDR_ANY;
+ listener.sa4.sin_port = htons(*listenport);
+ rc = bind(sock, &listener.sa, sizeof(listener.sa4));
#ifdef ENABLE_IPV6
}
else {
- memset(&me6, 0, sizeof(me6));
- me6.sin6_family = AF_INET6;
- me6.sin6_addr = in6addr_any;
- me6.sin6_port = htons(*listenport);
- rc = bind(sock, (struct sockaddr *) &me6, sizeof(me6));
+ memset(&listener.sa6, 0, sizeof(listener.sa6));
+ listener.sa6.sin6_family = AF_INET6;
+ listener.sa6.sin6_addr = in6addr_any;
+ listener.sa6.sin6_port = htons(*listenport);
+ rc = bind(sock, &listener.sa, sizeof(listener.sa6));
}
#endif /* ENABLE_IPV6 */
if(rc) {
@@ -769,36 +767,30 @@ static curl_socket_t sockdaemon(curl_socket_t sock,
/* The system was supposed to choose a port number, figure out which
port we actually got and update the listener port value with it. */
curl_socklen_t la_size;
- struct sockaddr *localaddr;
- struct sockaddr_in localaddr4;
+ srvr_sockaddr_union_t localaddr;
#ifdef ENABLE_IPV6
- struct sockaddr_in6 localaddr6;
- if(!use_ipv6) {
+ if(!use_ipv6)
#endif
- la_size = sizeof(localaddr4);
- localaddr = (struct sockaddr *)&localaddr4;
+ la_size = sizeof(localaddr.sa4);
#ifdef ENABLE_IPV6
- }
- else {
- la_size = sizeof(localaddr6);
- localaddr = (struct sockaddr *)&localaddr6;
- }
+ else
+ la_size = sizeof(localaddr.sa6);
#endif
- memset(localaddr, 0, (size_t)la_size);
- if(getsockname(sock, localaddr, &la_size) < 0) {
+ memset(&localaddr.sa, 0, (size_t)la_size);
+ if(getsockname(sock, &localaddr.sa, &la_size) < 0) {
error = SOCKERRNO;
logmsg("getsockname() failed with error: (%d) %s",
error, strerror(error));
sclose(sock);
return CURL_SOCKET_BAD;
}
- switch (localaddr->sa_family) {
+ switch (localaddr.sa.sa_family) {
case AF_INET:
- *listenport = ntohs(localaddr4.sin_port);
+ *listenport = ntohs(localaddr.sa4.sin_port);
break;
#ifdef ENABLE_IPV6
case AF_INET6:
- *listenport = ntohs(localaddr6.sin6_port);
+ *listenport = ntohs(localaddr.sa6.sin6_port);
break;
#endif
default:
@@ -831,10 +823,7 @@ static curl_socket_t sockdaemon(curl_socket_t sock,
int main(int argc, char *argv[])
{
- struct sockaddr_in me;
-#ifdef ENABLE_IPV6
- struct sockaddr_in6 me6;
-#endif /* ENABLE_IPV6 */
+ srvr_sockaddr_union_t me;
curl_socket_t sock = CURL_SOCKET_BAD;
curl_socket_t msgsock = CURL_SOCKET_BAD;
int wrotepidfile = 0;
@@ -970,26 +959,26 @@ int main(int argc, char *argv[])
#ifdef ENABLE_IPV6
if(!use_ipv6) {
#endif
- memset(&me, 0, sizeof(me));
- me.sin_family = AF_INET;
- me.sin_port = htons(connectport);
- me.sin_addr.s_addr = INADDR_ANY;
+ memset(&me.sa4, 0, sizeof(me.sa4));
+ me.sa4.sin_family = AF_INET;
+ me.sa4.sin_port = htons(connectport);
+ me.sa4.sin_addr.s_addr = INADDR_ANY;
if (!addr)
addr = "127.0.0.1";
- Curl_inet_pton(AF_INET, addr, &me.sin_addr);
+ Curl_inet_pton(AF_INET, addr, &me.sa4.sin_addr);
- rc = connect(sock, (struct sockaddr *) &me, sizeof(me));
+ rc = connect(sock, &me.sa, sizeof(me.sa4));
#ifdef ENABLE_IPV6
}
else {
- memset(&me6, 0, sizeof(me6));
- me6.sin6_family = AF_INET6;
- me6.sin6_port = htons(connectport);
+ memset(&me.sa6, 0, sizeof(me.sa6));
+ me.sa6.sin6_family = AF_INET6;
+ me.sa6.sin6_port = htons(connectport);
if (!addr)
addr = "::1";
- Curl_inet_pton(AF_INET6, addr, &me6.sin6_addr);
+ Curl_inet_pton(AF_INET6, addr, &me.sa6.sin6_addr);
- rc = connect(sock, (struct sockaddr *) &me6, sizeof(me6));
+ rc = connect(sock, &me.sa, sizeof(me.sa6));
}
#endif /* ENABLE_IPV6 */
if(rc) {
diff --git a/tests/server/sws.c b/tests/server/sws.c
index a4c040bd..949831d6 100644
--- a/tests/server/sws.c
+++ b/tests/server/sws.c
@@ -59,6 +59,7 @@
#include "curlx.h" /* from the private lib dir */
#include "getpart.h"
#include "util.h"
+#include "server_sockaddr.h"
/* include memdebug.h last */
#include "memdebug.h"
@@ -162,7 +163,7 @@ enum {
DOCNUMBER_404 = -1
};
-const char *end_of_headers = END_OF_HEADERS;
+static const char *end_of_headers = END_OF_HEADERS;
/* sent as reply to a QUIT */
static const char *docquit =
@@ -466,8 +467,8 @@ static int ProcessRequest(struct httprequest *req)
/* if the host name starts with test, the port number used in the
CONNECT line will be used as test number! */
char *portp = strchr(doc, ':');
- if(portp)
- req->testno = atoi(portp+1);
+ if(portp && (*(portp+1) != '\0') && ISDIGIT(*(portp+1)))
+ req->testno = strtol(portp+1, NULL, 10);
else
req->testno = DOCNUMBER_CONNECT;
}
@@ -761,7 +762,7 @@ static int get_request(curl_socket_t sock, struct httprequest *req)
while(!done_processing && (req->offset < REQBUFSIZ-1)) {
if(pipereq_length && pipereq) {
memmove(reqbuf, pipereq, pipereq_length);
- got = pipereq_length;
+ got = curlx_uztosz(pipereq_length);
pipereq_length = 0;
}
else {
@@ -1116,10 +1117,7 @@ static int send_doc(curl_socket_t sock, struct httprequest *req)
int main(int argc, char *argv[])
{
- struct sockaddr_in me;
-#ifdef ENABLE_IPV6
- struct sockaddr_in6 me6;
-#endif /* ENABLE_IPV6 */
+ srvr_sockaddr_union_t me;
curl_socket_t sock = CURL_SOCKET_BAD;
curl_socket_t msgsock = CURL_SOCKET_BAD;
int wrotepidfile = 0;
@@ -1260,19 +1258,19 @@ int main(int argc, char *argv[])
#ifdef ENABLE_IPV6
if(!use_ipv6) {
#endif
- memset(&me, 0, sizeof(me));
- me.sin_family = AF_INET;
- me.sin_addr.s_addr = INADDR_ANY;
- me.sin_port = htons(port);
- rc = bind(sock, (struct sockaddr *) &me, sizeof(me));
+ memset(&me.sa4, 0, sizeof(me.sa4));
+ me.sa4.sin_family = AF_INET;
+ me.sa4.sin_addr.s_addr = INADDR_ANY;
+ me.sa4.sin_port = htons(port);
+ rc = bind(sock, &me.sa, sizeof(me.sa4));
#ifdef ENABLE_IPV6
}
else {
- memset(&me6, 0, sizeof(me6));
- me6.sin6_family = AF_INET6;
- me6.sin6_addr = in6addr_any;
- me6.sin6_port = htons(port);
- rc = bind(sock, (struct sockaddr *) &me6, sizeof(me6));
+ memset(&me.sa6, 0, sizeof(me.sa6));
+ me.sa6.sin6_family = AF_INET6;
+ me.sa6.sin6_addr = in6addr_any;
+ me.sa6.sin6_port = htons(port);
+ rc = bind(sock, &me.sa, sizeof(me.sa6));
}
#endif /* ENABLE_IPV6 */
if(0 != rc) {
diff --git a/tests/server/tftpd.c b/tests/server/tftpd.c
index 0adcd496..b9a0562e 100644
--- a/tests/server/tftpd.c
+++ b/tests/server/tftpd.c
@@ -96,6 +96,7 @@
#include "curlx.h" /* from the private lib dir */
#include "getpart.h"
#include "util.h"
+#include "server_sockaddr.h"
/* include memdebug.h last */
#include "memdebug.h"
@@ -127,6 +128,11 @@ struct errmsg {
const char *e_msg;
};
+typedef union {
+ struct tftphdr hdr;
+ char storage[PKTSIZE];
+} tftphdr_storage_t;
+
/*
* bf.counter values in range [-1 .. SEGSIZE] represents size of data in the
* bf.buf buffer. Additionally it can also hold flags BF_ALLOC or BF_FREE.
@@ -134,7 +140,7 @@ struct errmsg {
struct bf {
int counter; /* size of data in buffer, or flag */
- char buf[PKTSIZE]; /* room for data packet */
+ tftphdr_storage_t buf; /* room for data packet */
};
#define BF_ALLOC -3 /* alloc'd but not yet filled */
@@ -190,10 +196,10 @@ static int current; /* index of buffer in use */
static int newline = 0; /* fillbuf: in middle of newline expansion */
static int prevchar = -1; /* putbuf: previous char (cr check) */
-static char buf[PKTSIZE];
-static char ackbuf[PKTSIZE];
+static tftphdr_storage_t buf;
+static tftphdr_storage_t ackbuf;
-static struct sockaddr_in from;
+static srvr_sockaddr_union_t from;
static curl_socklen_t fromlen;
static curl_socket_t peer = CURL_SOCKET_BAD;
@@ -435,7 +441,7 @@ static struct tftphdr *rw_init(int x)
current = 0;
bfs[1].counter = BF_FREE;
nextone = x; /* ahead or behind? */
- return (struct tftphdr *)bfs[0].buf;
+ return &bfs[0].buf.hdr;
}
static struct tftphdr *w_init(void)
@@ -463,7 +469,7 @@ static int readit(struct testcase *test, struct tftphdr **dpp,
if (b->counter == BF_FREE) /* if it's empty */
read_ahead(test, convert); /* fill it */
- *dpp = (struct tftphdr *)b->buf; /* set caller's ptr */
+ *dpp = &b->buf.hdr; /* set caller's ptr */
return b->counter;
}
@@ -485,7 +491,7 @@ static void read_ahead(struct testcase *test,
return;
nextone = !nextone; /* "incr" next buffer ptr */
- dp = (struct tftphdr *)b->buf;
+ dp = &b->buf.hdr;
if (convert == 0) {
/* The former file reading code did this:
@@ -539,7 +545,7 @@ static int writeit(struct testcase *test, struct tftphdr **dpp,
if (bfs[current].counter != BF_FREE) /* if not free */
write_behind(test, convert); /* flush it */
bfs[current].counter = BF_ALLOC; /* mark as alloc'd */
- *dpp = (struct tftphdr *)bfs[current].buf;
+ *dpp = &bfs[current].buf.hdr;
return ct; /* this is a lie of course */
}
@@ -575,7 +581,7 @@ static ssize_t write_behind(struct testcase *test, int convert)
count = b->counter; /* remember byte count */
b->counter = BF_FREE; /* reset flag */
- dp = (struct tftphdr *)b->buf;
+ dp = &b->buf.hdr;
nextone = !nextone; /* incr for next time */
writebuf = dp->th_data;
@@ -627,7 +633,7 @@ static int synchnet(curl_socket_t f /* socket to flush */)
#endif
int j = 0;
char rbuf[PKTSIZE];
- struct sockaddr_in fromaddr;
+ srvr_sockaddr_union_t fromaddr;
curl_socklen_t fromaddrlen;
for (;;) {
@@ -638,9 +644,16 @@ static int synchnet(curl_socket_t f /* socket to flush */)
#endif
if (i) {
j++;
- fromaddrlen = sizeof(fromaddr);
- (void)recvfrom(f, rbuf, sizeof(rbuf), 0,
- (struct sockaddr *)&fromaddr, &fromaddrlen);
+#ifdef ENABLE_IPV6
+ if(!use_ipv6)
+#endif
+ fromaddrlen = sizeof(fromaddr.sa4);
+#ifdef ENABLE_IPV6
+ else
+ fromaddrlen = sizeof(fromaddr.sa6);
+#endif
+ (void) recvfrom(f, rbuf, sizeof(rbuf), 0,
+ &fromaddr.sa, &fromaddrlen);
}
else
break;
@@ -650,11 +663,7 @@ static int synchnet(curl_socket_t f /* socket to flush */)
int main(int argc, char **argv)
{
- struct sockaddr_in me;
-#ifdef ENABLE_IPV6
- struct sockaddr_in6 me6;
-#endif /* ENABLE_IPV6 */
-
+ srvr_sockaddr_union_t me;
struct tftphdr *tp;
ssize_t n = 0;
int arg = 1;
@@ -778,19 +787,19 @@ int main(int argc, char **argv)
#ifdef ENABLE_IPV6
if(!use_ipv6) {
#endif
- memset(&me, 0, sizeof(me));
- me.sin_family = AF_INET;
- me.sin_addr.s_addr = INADDR_ANY;
- me.sin_port = htons(port);
- rc = bind(sock, (struct sockaddr *) &me, sizeof(me));
+ memset(&me.sa4, 0, sizeof(me.sa4));
+ me.sa4.sin_family = AF_INET;
+ me.sa4.sin_addr.s_addr = INADDR_ANY;
+ me.sa4.sin_port = htons(port);
+ rc = bind(sock, &me.sa, sizeof(me.sa4));
#ifdef ENABLE_IPV6
}
else {
- memset(&me6, 0, sizeof(me6));
- me6.sin6_family = AF_INET6;
- me6.sin6_addr = in6addr_any;
- me6.sin6_port = htons(port);
- rc = bind(sock, (struct sockaddr *) &me6, sizeof(me6));
+ memset(&me.sa6, 0, sizeof(me.sa6));
+ me.sa6.sin6_family = AF_INET6;
+ me.sa6.sin6_addr = in6addr_any;
+ me.sa6.sin6_port = htons(port);
+ rc = bind(sock, &me.sa, sizeof(me.sa6));
}
#endif /* ENABLE_IPV6 */
if(0 != rc) {
@@ -811,8 +820,16 @@ int main(int argc, char **argv)
for (;;) {
fromlen = sizeof(from);
- n = (ssize_t)recvfrom(sock, buf, sizeof(buf), 0,
- (struct sockaddr *)&from, &fromlen);
+#ifdef ENABLE_IPV6
+ if(!use_ipv6)
+#endif
+ fromlen = sizeof(from.sa4);
+#ifdef ENABLE_IPV6
+ else
+ fromlen = sizeof(from.sa6);
+#endif
+ n = (ssize_t)recvfrom(sock, &buf.storage[0], sizeof(buf.storage), 0,
+ &from.sa, &fromlen);
if(got_exit_signal)
break;
if (n < 0) {
@@ -824,23 +841,42 @@ int main(int argc, char **argv)
set_advisor_read_lock(SERVERLOGS_LOCK);
serverlogslocked = 1;
- from.sin_family = AF_INET;
-
- peer = socket(AF_INET, SOCK_DGRAM, 0);
- if(CURL_SOCKET_BAD == peer) {
- logmsg("socket");
- result = 2;
- break;
+#ifdef ENABLE_IPV6
+ if(!use_ipv6) {
+#endif
+ from.sa4.sin_family = AF_INET;
+ peer = socket(AF_INET, SOCK_DGRAM, 0);
+ if(CURL_SOCKET_BAD == peer) {
+ logmsg("socket");
+ result = 2;
+ break;
+ }
+ if(connect(peer, &from.sa, sizeof(from.sa4)) < 0) {
+ logmsg("connect: fail");
+ result = 1;
+ break;
+ }
+#ifdef ENABLE_IPV6
}
-
- if (connect(peer, (struct sockaddr *)&from, sizeof(from)) < 0) {
- logmsg("connect: fail");
- result = 1;
- break;
+ else {
+ from.sa6.sin6_family = AF_INET6;
+ peer = socket(AF_INET6, SOCK_DGRAM, 0);
+ if(CURL_SOCKET_BAD == peer) {
+ logmsg("socket");
+ result = 2;
+ break;
+ }
+ if (connect(peer, &from.sa, sizeof(from.sa6)) < 0) {
+ logmsg("connect: fail");
+ result = 1;
+ break;
+ }
}
+#endif
+
maxtimeout = 5*TIMEOUT;
- tp = (struct tftphdr *)buf;
+ tp = &buf.hdr;
tp->th_opcode = ntohs(tp->th_opcode);
if (tp->th_opcode == opcode_RRQ || tp->th_opcode == opcode_WRQ) {
memset(&test, 0, sizeof(test));
@@ -935,7 +971,7 @@ static int do_tftp(struct testcase *test, struct tftphdr *tp, ssize_t size)
cp = (char *)&tp->th_stuff;
filename = cp;
again:
- while (cp < buf + size) {
+ while (cp < &buf.storage[size]) {
if (*cp == '\0')
break;
cp++;
@@ -1089,7 +1125,7 @@ static void sendtftp(struct testcase *test, struct formats *pf)
mysignal(SIGALRM, timer);
#endif
sdp = r_init();
- sap = (struct tftphdr *)ackbuf;
+ sap = &ackbuf.hdr;
do {
size = readit(test, &sdp, pf->f_convert);
if (size < 0) {
@@ -1112,7 +1148,7 @@ static void sendtftp(struct testcase *test, struct formats *pf)
#ifdef HAVE_ALARM
alarm(rexmtval); /* read the ack */
#endif
- n = sread(peer, ackbuf, sizeof (ackbuf));
+ n = sread(peer, &ackbuf.storage[0], sizeof(ackbuf.storage));
#ifdef HAVE_ALARM
alarm(0);
#endif
@@ -1157,7 +1193,7 @@ static void recvtftp(struct testcase *test, struct formats *pf)
mysignal(SIGALRM, timer);
#endif
rdp = w_init();
- rap = (struct tftphdr *)ackbuf;
+ rap = &ackbuf.hdr;
do {
timeout = 0;
rap->th_opcode = htons((u_short)opcode_ACK);
@@ -1167,7 +1203,7 @@ static void recvtftp(struct testcase *test, struct formats *pf)
(void) sigsetjmp(timeoutbuf, 1);
#endif
send_ack:
- if (swrite(peer, ackbuf, 4) != 4) {
+ if (swrite(peer, &ackbuf.storage[0], 4) != 4) {
logmsg("write: fail\n");
goto abort;
}
@@ -1214,21 +1250,22 @@ send_ack:
rap->th_opcode = htons((u_short)opcode_ACK); /* send the "final" ack */
rap->th_block = htons((u_short)recvblock);
- (void) swrite(peer, ackbuf, 4);
+ (void) swrite(peer, &ackbuf.storage[0], 4);
#if defined(HAVE_ALARM) && defined(SIGALRM)
mysignal(SIGALRM, justtimeout); /* just abort read on timeout */
alarm(rexmtval);
#endif
- n = sread(peer, buf, sizeof(buf)); /* normally times out and quits */
+ /* normally times out and quits */
+ n = sread(peer, &buf.storage[0], sizeof(buf.storage));
#ifdef HAVE_ALARM
alarm(0);
#endif
if(got_exit_signal)
goto abort;
- if (n >= 4 && /* if read some data */
- rdp->th_opcode == opcode_DATA && /* and got a data block */
- recvblock == rdp->th_block) { /* then my last ack was lost */
- (void) swrite(peer, ackbuf, 4); /* resend final ack */
+ if (n >= 4 && /* if read some data */
+ rdp->th_opcode == opcode_DATA && /* and got a data block */
+ recvblock == rdp->th_block) { /* then my last ack was lost */
+ (void) swrite(peer, &ackbuf.storage[0], 4); /* resend final ack */
}
abort:
return;
@@ -1244,7 +1281,7 @@ static void nak(int error)
int length;
struct errmsg *pe;
- tp = (struct tftphdr *)buf;
+ tp = &buf.hdr;
tp->th_opcode = htons((u_short)opcode_ERROR);
tp->th_code = htons((u_short)error);
for (pe = errmsgs; pe->e_code >= 0; pe++)
@@ -1258,6 +1295,6 @@ static void nak(int error)
length = (int)strlen(pe->e_msg);
tp->th_msg[length] = '\0';
length += 5;
- if (swrite(peer, buf, length) != length)
+ if (swrite(peer, &buf.storage[0], length) != length)
logmsg("nak: fail\n");
}
diff --git a/tests/symbol-scan.pl b/tests/symbol-scan.pl
new file mode 100644
index 00000000..cda9b738
--- /dev/null
+++ b/tests/symbol-scan.pl
@@ -0,0 +1,162 @@
+#!/usr/bin/env perl
+#***************************************************************************
+# _ _ ____ _
+# Project ___| | | | _ \| |
+# / __| | | | |_) | |
+# | (__| |_| | _ <| |___
+# \___|\___/|_| \_\_____|
+#
+# Copyright (C) 2010, 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 http://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.
+#
+###########################################################################
+#
+# This script grew out of help from Przemyslaw Iskra and Balint Szilakszi
+# a late evening in the #curl IRC channel on freenode.
+#
+
+use strict;
+use warnings;
+
+#
+# configurehelp perl module is generated by configure script
+#
+use configurehelp qw(
+ $Cpreprocessor
+ );
+
+# we may get the dir root pointed out
+my $root=$ARGV[0] || ".";
+
+# need an include directory when building out-of-tree
+my $i = ($ARGV[1]) ? "-I$ARGV[1] " : '';
+
+my $h = "$root/include/curl/curl.h";
+my $mh = "$root/include/curl/multi.h";
+
+my $verbose=0;
+my $summary=0;
+my $misses=0;
+
+my @syms;
+my %doc;
+my %rem;
+
+open H_IN, "-|", "$Cpreprocessor $i$h" || die "Cannot preprocess curl.h";
+while ( <H_IN> ) {
+ if ( /enum\s+(\S+\s+)?{/ .. /}/ ) {
+ s/^\s+//;
+ next unless /^CURL/;
+ chomp;
+ s/[,\s].*//;
+ push @syms, $_;
+ }
+}
+close H_IN || die "Error preprocessing curl.h";
+
+sub scanheader {
+ my ($f)=@_;
+ open H, "<$f";
+ while(<H>) {
+ if (/^#define (CURL[A-Za-z0-9_]*)/) {
+ push @syms, $1;
+ }
+ }
+ close H;
+}
+
+scanheader($h);
+scanheader($mh);
+
+open S, "<$root/docs/libcurl/symbols-in-versions";
+while(<S>) {
+ if(/(^CURL[^ \n]*) *(.*)/) {
+ my ($sym, $rest)=($1, $2);
+ $doc{$sym}=$sym;
+ my @a=split(/ +/, $rest);
+ if($a[2]) {
+ # this symbol is documented to have been present the last time
+ # in this release
+ $rem{$sym}=$a[2];
+ }
+ }
+}
+close S;
+
+my $ignored=0;
+for my $e (sort @syms) {
+ # OBSOLETE - names that are just placeholders for a position where we
+ # previously had a name, that is now removed. The OBSOLETE names should
+ # never be used for anything.
+ #
+ # CURL_EXTERN - is a define used for libcurl functions that are external,
+ # public. No app or other code should ever use it.
+ #
+ # *_LAST and *_LASTENTRY are just prefix for the placeholders used for the
+ # last entry in many enum series.
+ #
+
+ if($e =~ /(OBSOLETE|^CURL_EXTERN|_LAST\z|_LASTENTRY\z)/) {
+ $ignored++;
+ next;
+ }
+ if($doc{$e}) {
+ if($verbose) {
+ print $e."\n";
+ }
+ $doc{$e}="used";
+ next;
+ }
+ else {
+ print $e."\n";
+ $misses++;
+ }
+}
+
+#
+# now scan through all symbols that were present in the symbols-in-versions
+# but not in the headers
+#
+# If the symbols were marked 'removed' in symbols-in-versions we don't output
+# anything about it since that is perfectly fine.
+#
+
+my $anyremoved;
+
+for my $e (sort keys %doc) {
+ if(($doc{$e} ne "used") && !$rem{$e}) {
+
+ if(!$anyremoved++) {
+ print "Missing symbols mentioned in symbols-in-versions\n";
+ print "Add them to a header, or mark them as removed.\n";
+ }
+
+ print "$e\n";
+ $misses++;
+ }
+}
+
+if($summary) {
+ print "Summary:\n";
+ printf "%d symbols in headers (out of which %d are ignored)\n", scalar(@syms),
+ $ignored;
+ printf "%d symbols in headers are interesting\n",
+ scalar(@syms)- $ignored;
+ printf "%d symbols are listed in symbols-in-versions\n (out of which %d are listed as removed)\n", scalar(keys %doc), scalar(keys %rem);
+ printf "%d symbols in symbols-in-versions should match the ones in headers\n", scalar(keys %doc) - scalar(keys %rem);
+
+}
+
+if($misses) {
+ exit 2; # there are stuff to attend to!
+}
diff --git a/tests/testcurl.pl b/tests/testcurl.pl
index a0fd889b..27f188f2 100755
--- a/tests/testcurl.pl
+++ b/tests/testcurl.pl
@@ -49,6 +49,7 @@
# --nocvsup Don't pull from git even though it is a git tree
# --nogitpull Don't pull from git even though it is a git tree
# --nobuildconf Don't run buildconf
+# --noconfigure Don't run configure
# --runtestopts=[options] Options to pass to runtests.pl
# --setup=[file name] File name to read setup from (deprecated)
# --target=[your os] Specify your target environment.
@@ -84,6 +85,7 @@ if (-f ".git/config") {
$git=1;
$setupfile = 'setup';
+$configurebuild = 1;
while ($ARGV[0]) {
if ($ARGV[0] =~ /--target=/) {
$targetos = (split(/=/, shift @ARGV))[1];
@@ -117,6 +119,10 @@ while ($ARGV[0]) {
$nobuildconf=1;
shift @ARGV;
}
+ elsif ($ARGV[0] =~ /--noconfigure/) {
+ $configurebuild=0;
+ shift @ARGV;
+ }
elsif ($ARGV[0] =~ /--crosscompile/) {
$crosscompile=1;
shift @ARGV;
@@ -131,7 +137,6 @@ while ($ARGV[0]) {
}
# Do the platform-specific stuff here
-$configurebuild = 1;
$confheader = 'curl_config.h';
$binext = '';
$libext = '.la'; # .la since both libcurl and libcares are made with libtool